From 34ceb35223c3603daa8071fe1fda49095bb9ac4a Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 29 Jan 2024 11:28:24 +0000 Subject: [PATCH] deploy to github pages --- .buildinfo | 4 + .nojekyll | 0 CNAME | 1 + _sources/associated-items.rst.txt | 200 + _sources/attributes.rst.txt | 2083 +++++ _sources/concurrency.rst.txt | 145 + _sources/entities-and-resolution.rst.txt | 1860 ++++ _sources/exceptions-and-errors.rst.txt | 87 + _sources/expressions.rst.txt | 5042 +++++++++++ _sources/ffi.rst.txt | 248 + _sources/functions.rst.txt | 197 + _sources/general.rst.txt | 430 + _sources/generics.rst.txt | 465 + _sources/glossary.rst.txt | 7653 +++++++++++++++++ _sources/implementations.rst.txt | 270 + _sources/index.rst.txt | 47 + _sources/inline-assembly.rst.txt | 1696 ++++ _sources/items.rst.txt | 51 + _sources/lexical-elements.rst.txt | 1449 ++++ _sources/licenses.rst.txt | 302 + _sources/macros.rst.txt | 1115 +++ _sources/ownership-and-deconstruction.rst.txt | 734 ++ _sources/patterns.rst.txt | 1574 ++++ .../program-structure-and-compilation.rst.txt | 226 + _sources/statements.rst.txt | 198 + _sources/types-and-traits.rst.txt | 3373 ++++++++ _sources/undefined-behavior.rst.txt | 16 + _sources/unsafety.rst.txt | 49 + _sources/values.rst.txt | 284 + _static/basic.css | 903 ++ _static/doctools.js | 156 + _static/documentation_options.js | 14 + _static/favicon.svg | 12 + _static/ferrocene.css | 693 ++ _static/ferrocene.svg | 17 + _static/file.png | Bin 0 -> 286 bytes _static/fonts/raleway-400-italic.ttf | Bin 0 -> 161432 bytes _static/fonts/raleway-400-italic.ttf.license | 2 + _static/fonts/raleway-400-italic.woff2 | Bin 0 -> 61528 bytes .../fonts/raleway-400-italic.woff2.license | 2 + _static/fonts/raleway-400.ttf | Bin 0 -> 163392 bytes _static/fonts/raleway-400.ttf.license | 2 + _static/fonts/raleway-400.woff2 | Bin 0 -> 60524 bytes _static/fonts/raleway-400.woff2.license | 2 + _static/fonts/raleway-700-italic.ttf | Bin 0 -> 161484 bytes _static/fonts/raleway-700-italic.ttf.license | 2 + _static/fonts/raleway-700-italic.woff2 | Bin 0 -> 63996 bytes .../fonts/raleway-700-italic.woff2.license | 2 + _static/fonts/raleway-700.ttf | Bin 0 -> 163276 bytes _static/fonts/raleway-700.ttf.license | 2 + _static/fonts/raleway-700.woff2 | Bin 0 -> 63196 bytes _static/fonts/raleway-700.woff2.license | 2 + _static/fonts/roboto-mono-400-italic.ttf | Bin 0 -> 93904 bytes .../fonts/roboto-mono-400-italic.ttf.license | 2 + _static/fonts/roboto-mono-400-italic.woff2 | Bin 0 -> 44480 bytes .../roboto-mono-400-italic.woff2.license | 2 + _static/fonts/roboto-mono-400.ttf | Bin 0 -> 86908 bytes _static/fonts/roboto-mono-400.ttf.license | 2 + _static/fonts/roboto-mono-400.woff2 | Bin 0 -> 40752 bytes _static/fonts/roboto-mono-400.woff2.license | 2 + _static/fonts/roboto-mono-700-italic.ttf | Bin 0 -> 94148 bytes .../fonts/roboto-mono-700-italic.ttf.license | 2 + _static/fonts/roboto-mono-700-italic.woff2 | Bin 0 -> 44804 bytes .../roboto-mono-700-italic.woff2.license | 2 + _static/fonts/roboto-mono-700.ttf | Bin 0 -> 87008 bytes _static/fonts/roboto-mono-700.ttf.license | 2 + _static/fonts/roboto-mono-700.woff2 | Bin 0 -> 40716 bytes _static/fonts/roboto-mono-700.woff2.license | 2 + _static/language_data.js | 199 + _static/minus.png | Bin 0 -> 90 bytes _static/plus.png | Bin 0 -> 90 bytes _static/pygments.css | 7 + _static/searchtools.js | 566 ++ _static/sphinx_highlight.js | 144 + associated-items.html | 260 + attributes.html | 1648 ++++ concurrency.html | 231 + entities-and-resolution.html | 1617 ++++ exceptions-and-errors.html | 167 + expressions.html | 4047 +++++++++ ffi.html | 285 + functions.html | 257 + general.html | 429 + generics.html | 465 + genindex.html | 109 + glossary.html | 5158 +++++++++++ implementations.html | 319 + index.html | 294 + inline-assembly.html | 1763 ++++ items.html | 142 + lexical-elements.html | 1308 +++ licenses.html | 351 + macros.html | 991 +++ objects.inv | Bin 0 -> 293246 bytes ownership-and-deconstruction.html | 663 ++ paragraph-ids.json | 1 + patterns.html | 1340 +++ program-structure-and-compilation.html | 264 + search.html | 120 + searchindex.js | 1 + statements.html | 248 + types-and-traits.html | 2900 +++++++ undefined-behavior.html | 138 + unsafety.html | 138 + values.html | 306 + 105 files changed, 58502 insertions(+) create mode 100644 .buildinfo create mode 100644 .nojekyll create mode 100644 CNAME create mode 100644 _sources/associated-items.rst.txt create mode 100644 _sources/attributes.rst.txt create mode 100644 _sources/concurrency.rst.txt create mode 100644 _sources/entities-and-resolution.rst.txt create mode 100644 _sources/exceptions-and-errors.rst.txt create mode 100644 _sources/expressions.rst.txt create mode 100644 _sources/ffi.rst.txt create mode 100644 _sources/functions.rst.txt create mode 100644 _sources/general.rst.txt create mode 100644 _sources/generics.rst.txt create mode 100644 _sources/glossary.rst.txt create mode 100644 _sources/implementations.rst.txt create mode 100644 _sources/index.rst.txt create mode 100644 _sources/inline-assembly.rst.txt create mode 100644 _sources/items.rst.txt create mode 100644 _sources/lexical-elements.rst.txt create mode 100644 _sources/licenses.rst.txt create mode 100644 _sources/macros.rst.txt create mode 100644 _sources/ownership-and-deconstruction.rst.txt create mode 100644 _sources/patterns.rst.txt create mode 100644 _sources/program-structure-and-compilation.rst.txt create mode 100644 _sources/statements.rst.txt create mode 100644 _sources/types-and-traits.rst.txt create mode 100644 _sources/undefined-behavior.rst.txt create mode 100644 _sources/unsafety.rst.txt create mode 100644 _sources/values.rst.txt create mode 100644 _static/basic.css create mode 100644 _static/doctools.js create mode 100644 _static/documentation_options.js create mode 100644 _static/favicon.svg create mode 100644 _static/ferrocene.css create mode 100644 _static/ferrocene.svg create mode 100644 _static/file.png create mode 100644 _static/fonts/raleway-400-italic.ttf create mode 100644 _static/fonts/raleway-400-italic.ttf.license create mode 100644 _static/fonts/raleway-400-italic.woff2 create mode 100644 _static/fonts/raleway-400-italic.woff2.license create mode 100644 _static/fonts/raleway-400.ttf create mode 100644 _static/fonts/raleway-400.ttf.license create mode 100644 _static/fonts/raleway-400.woff2 create mode 100644 _static/fonts/raleway-400.woff2.license create mode 100644 _static/fonts/raleway-700-italic.ttf create mode 100644 _static/fonts/raleway-700-italic.ttf.license create mode 100644 _static/fonts/raleway-700-italic.woff2 create mode 100644 _static/fonts/raleway-700-italic.woff2.license create mode 100644 _static/fonts/raleway-700.ttf create mode 100644 _static/fonts/raleway-700.ttf.license create mode 100644 _static/fonts/raleway-700.woff2 create mode 100644 _static/fonts/raleway-700.woff2.license create mode 100644 _static/fonts/roboto-mono-400-italic.ttf create mode 100644 _static/fonts/roboto-mono-400-italic.ttf.license create mode 100644 _static/fonts/roboto-mono-400-italic.woff2 create mode 100644 _static/fonts/roboto-mono-400-italic.woff2.license create mode 100644 _static/fonts/roboto-mono-400.ttf create mode 100644 _static/fonts/roboto-mono-400.ttf.license create mode 100644 _static/fonts/roboto-mono-400.woff2 create mode 100644 _static/fonts/roboto-mono-400.woff2.license create mode 100644 _static/fonts/roboto-mono-700-italic.ttf create mode 100644 _static/fonts/roboto-mono-700-italic.ttf.license create mode 100644 _static/fonts/roboto-mono-700-italic.woff2 create mode 100644 _static/fonts/roboto-mono-700-italic.woff2.license create mode 100644 _static/fonts/roboto-mono-700.ttf create mode 100644 _static/fonts/roboto-mono-700.ttf.license create mode 100644 _static/fonts/roboto-mono-700.woff2 create mode 100644 _static/fonts/roboto-mono-700.woff2.license create mode 100644 _static/language_data.js create mode 100644 _static/minus.png create mode 100644 _static/plus.png create mode 100644 _static/pygments.css create mode 100644 _static/searchtools.js create mode 100644 _static/sphinx_highlight.js create mode 100644 associated-items.html create mode 100644 attributes.html create mode 100644 concurrency.html create mode 100644 entities-and-resolution.html create mode 100644 exceptions-and-errors.html create mode 100644 expressions.html create mode 100644 ffi.html create mode 100644 functions.html create mode 100644 general.html create mode 100644 generics.html create mode 100644 genindex.html create mode 100644 glossary.html create mode 100644 implementations.html create mode 100644 index.html create mode 100644 inline-assembly.html create mode 100644 items.html create mode 100644 lexical-elements.html create mode 100644 licenses.html create mode 100644 macros.html create mode 100644 objects.inv create mode 100644 ownership-and-deconstruction.html create mode 100644 paragraph-ids.json create mode 100644 patterns.html create mode 100644 program-structure-and-compilation.html create mode 100644 search.html create mode 100644 searchindex.js create mode 100644 statements.html create mode 100644 types-and-traits.html create mode 100644 undefined-behavior.html create mode 100644 unsafety.html create mode 100644 values.html diff --git a/.buildinfo b/.buildinfo new file mode 100644 index 00000000..140c23a4 --- /dev/null +++ b/.buildinfo @@ -0,0 +1,4 @@ +# Sphinx build info version 1 +# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. +config: bb8bca55e9a8f31c4b2370cff6323aaa +tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 00000000..e69de29b diff --git a/CNAME b/CNAME new file mode 100644 index 00000000..b9bb96f8 --- /dev/null +++ b/CNAME @@ -0,0 +1 @@ +spec.ferrocene.dev diff --git a/_sources/associated-items.rst.txt b/_sources/associated-items.rst.txt new file mode 100644 index 00000000..71b20f06 --- /dev/null +++ b/_sources/associated-items.rst.txt @@ -0,0 +1,200 @@ +.. SPDX-License-Identifier: MIT OR Apache-2.0 + SPDX-FileCopyrightText: The Ferrocene Developers + +.. default-domain:: spec + +.. _fls_l21tjqjkkaa0: + +Associated Items +================ + +.. rubric:: Syntax + +.. syntax:: + + AssociatedItem ::= + OuterAttributeOrDoc* (AssociatedItemWithVisibility | TerminatedMacroInvocation) + + AssociatedItemWithVisibility ::= + VisibilityModifier? ( + ConstantDeclaration + | FunctionDeclaration + | TypeAliasDeclaration + ) + +.. rubric:: Legality Rules + +:dp:`fls_ckzd25qd213t` +An :t:`associated item` is an :t:`item` that appears within an +:t:`implementation` or a :t:`trait`. + +:dp:`fls_5y6ae0xqux57` +An :t:`associated constant` is a :t:`constant` that appears as an +:t:`associated item`. + +:dp:`fls_lj7492aq7fzo` +An :t:`associated function` is a :t:`function` that appears as an +:t:`associated item`. + +:dp:`fls_8cz4rdrklaj4` +An :t:`associated type` is a :t:`type alias` that appears as an +:t:`associated item`. + +:dp:`fls_w8nu8suy7t5` +An :t:`associated type` shall not be used in the :t:`path expression` of a +:t:`struct expression`. + +:dp:`fls_wasocqdnuzd1` +An :t:`associated type` with a :s:`TypeBoundList` shall appear only as an +:t:`associated trait type`. + +:dp:`fls_PeD0DzjK57be` +A :t:`generic associated type` is an :t:`associated type` with +:t:`[generic parameter]s`. + +:dp:`fls_3foYUch29ZtF` +A :t:`lifetime parameter` of a :t:`generic associated type` requires a +:t:`bound` of the form ``T: 'lifetime``, where ``T`` is a :t:`type parameter` +or :c:`Self` and ``'lifetime`` is the :t:`lifetime parameter`, when + +* :dp:`fls_SnQc0zZS57Cz` + The :t:`generic associated type` is used in an :t:`associated function` of + the same :t:`trait`, and + +* :dp:`fls_6Z05BK2JSzpP` + The corresponding :t:`lifetime argument` in the use is not the ``'static`` + :t:`lifetime` and has either an explicit :t:`bound` or an :t:`implicit bound` + that constrains the :t:`type parameter`, and + +* :dp:`fls_AtItgS1UvwiX` + The intersection of all such uses is not empty. + +:dp:`fls_l3iwn56n1uz8` +An :t:`associated implementation constant` is an :t:`associated constant` that +appears within an :t:`implementation`. + +:dp:`fls_4ftfefcotb4g` +An :t:`associated implementation constant` shall have a :t:`constant +initializer`. + +:dp:`fls_qb5qpfe0uwk` +An :t:`associated implementation function` is an :t:`associated function` that +appears within an :t:`implementation`. + +:dp:`fls_1zlkeb6fz10j` +An :t:`associated implementation function` shall have a :t:`function body`. + +:dp:`fls_tw8u0cc5867l` +An :t:`associated implementation type` is an :t:`associated type` that appears +within an :t:`implementation`. + +:dp:`fls_bx7931x4155h` +An :t:`associated implementation type` shall have an :t:`initialization type`. + +:dp:`fls_bnTcCbDvdp94` +An :t:`associated trait item` is an :t:`associated item` that appears +within a :t:`trait`. + +:dp:`fls_N3cdn4lCZ2Bf` +An :t:`associated trait implementation item` is an :t:`associated item` that +appears within a :t:`trait implementation`. + +:dp:`fls_x564isbhobym` +An :t:`associated trait constant` is an :t:`associated constant` that appears +within a :t:`trait`. + +:dp:`fls_b6nns7oqvdpm` +An :t:`associated trait function` is an :t:`associated function` that appears +within a :t:`trait`. + +:dp:`fls_yyhebj4qyk34` +An :t:`associated trait type` is an :t:`associated type` that appears within +a :t:`trait`. + +:dp:`fls_kl9p3ycl5mzf` +An :t:`associated trait type` shall not have an :t:`initialization type`. + +:dp:`fls_a5prbmuruma4` +An :t:`associated trait type` has an implicit :std:`core::marker::Sized` +:t:`bound`. + +:dp:`fls_vp2ov6ykueue` +An :t:`associated trait type` of the form + +.. code-block:: rust + + trait T { + type X: Bound; + } + +:dp:`fls_5uf74nvdm64o` +is equivalent to a :t:`where clause` of the following form: + +.. code-block:: rust + + trait T where Self::X: Bound { + type X; + } + +:dp:`fls_oy92gzxgc273` +A :t:`method` is an :t:`associated function` with a :t:`self parameter`. + +:dp:`fls_WXnCWfJGoQx3` +The type of a :t:`self parameter` shall be one of the following: + +* :dp:`fls_OaszUw4IFobz` + A :t:`type specification` resolving to the :t:`implementing type` of the + related :t:`implementation`, or + +* :dp:`fls_Wd2FZRomB5yn` + ``&T`` where ``T`` is one of the the :t:`[type]s` listed in this enumeration, + or + +* :dp:`fls_lcEyToYIlcmf` + ``&mut T`` where ``T`` is one of the the :t:`[type]s` listed in this + enumeration, or + +* :dp:`fls_IKSPR7ZQMErU` + :std:`core::pin::Pin ` where ``T`` is one of the the :t:`[type]s` listed in this + enumeration. + +:dp:`fls_oHxzyaiT7Qm6` +The :t:`visibility modifier` of an :t:`associated trait item` or :t:`associated +trait implementation item` is rejected, but may still be consumed by +:t:`[macro]s`. + +.. rubric:: Examples + +.. code-block:: rust + + trait Greeter { + const MAX_GREETINGS: i32; + + fn greet(self, message: &str); + } + + struct Implementor { + delivered_greetings: i32 + } + + impl Greeter for Implementor { + const MAX_GREETINGS: i32 = 42; + + fn greet(mut self, message: &str) { + if self.delivered_greetings < Self::MAX_GREETINGS { + self.delivered_greetings += 1; + println!("{}", message); + } + } + } + +:dp:`fls_znfADVeOvXHD` +Generic associated type with lifetime bound. + +.. code-block:: rust + + trait LendingIterator { + type Item<'x> where Self: 'x; + + fn next<'a>(&'a mut self) -> Self::Item<'a>; + } diff --git a/_sources/attributes.rst.txt b/_sources/attributes.rst.txt new file mode 100644 index 00000000..62163634 --- /dev/null +++ b/_sources/attributes.rst.txt @@ -0,0 +1,2083 @@ +.. SPDX-License-Identifier: MIT OR Apache-2.0 + SPDX-FileCopyrightText: The Ferrocene Developers + +.. default-domain:: spec + +.. _fls_gvwd0kf72jt: + +Attributes +========== + +.. rubric:: Syntax + +.. syntax:: + + InnerAttributeOrDoc ::= + InnerAttribute + | InnerBuiltinAttribute + | InnerBlockDoc + | InnerLineDoc + + InnerAttribute ::= + $$#![$$ AttributeContent $$]$$ + + OuterAttributeOrDoc ::= + OuterAttribute + | OuterBuiltinAttribute + | OuterBlockDoc + | OuterLineDoc + + OuterAttribute ::= + $$#[$$ AttributeContent $$]$$ + + AttributeContent ::= + SimplePath AttributeInput? + + AttributeInput ::= + $$($$ TokenTree* $$)$$ + | $$=$$ Expression + + AttributeContentList ::= + AttributeContent (, AttributeContent)* ,? + +.. rubric:: Legality Rules + +:dp:`fls_rnzxj1t0hehl` +An :t:`attribute` is a general, free-form metadatum that is interpreted based on +its :t:`name`, convention, language, and tool. + +:dp:`fls_yd0ehw5csaur` +An :t:`inner attribute` is an :t:`attribute` that applies to an enclosing +:t:`item`. + +:dp:`fls_8o6vmzbw1b1j` +An :t:`outer attribute` is an :t:`attribute` that applies to a subsequent +:t:`item`. + +:dp:`fls_9TMRVlQwAdTB` +An :t:`attribute content` is a :t:`construct` that provides the content of +an :t:`attribute`. + +.. rubric:: Examples + +.. code-block:: rust + + #[cfg[target_os = "linux"]] + mod linux_only_module { + #![allow(unused_variables)] + + let unused = (); + } + +.. _fls_i52cujixq9qs: + +Attribute Properties +-------------------- + +.. rubric:: Legality Rules + +:dp:`fls_p4potvq7x532` +An :t:`active attribute` is an :t:`attribute` that is removed from the :t:`item` +it decorates. + +:dp:`fls_xk7lb2g02sy7` +An :t:`inert attribute` is an :t:`attribute` that remains with the :t:`item` +it decorates. + +:dp:`fls_q8wl7pidx2za` +The following :t:`[attribute]s` are :t:`[active attribute]s`: + +* :dp:`fls_jottio69o9e7` + :t:`[Attribute macro]s`. + +* :dp:`fls_gzyx9lfi5pvd` + :t:`Attribute` :c:`cfg`. + +* :dp:`fls_elsfqsiqor1y` + :t:`Attribute` :c:`cfg_attr`. + +:dp:`fls_4xu1rwecd9au` +:t:`Attribute` :c:`test` is an :t:`inert attribute` when compiling for testing +purposes, otherwise it is an :t:`active attribute`. + +:dp:`fls_n3737i320qum` +All remaining :t:`[attribute]s` are :t:`[inert attribute]s`. + +.. _fls_ahmnqhm8anlb: + +Built-in Attributes +------------------- + +.. rubric:: Syntax + +.. syntax:: + + InnerBuiltinAttribute ::= + $$#![$$ BuiltinAttributeContent $$]$$ + + OuterBuiltinAttribute ::= + $$#[$$ BuiltinAttributeContent $$]$$ + + BuiltinAttributeContent ::= + AutomaticallyDerivedContent + | CfgAttrContent + | CfgContent + | ColdContent + | CrateNameContent + | CrateTypeContent + | DeriveContent + | DocContent + | ExportNameContent + | GlobalAllocatorContent + | InlineContent + | IgnoreContent + | LinkContent + | LinkNameContent + | LinkSectionContent + | LinkOrdinalContent + | MacroExportContent + | MacroUseContent + | NoBinutilsContent + | NoImplicitPreludeContent + | NoLinkContent + | NoMainContent + | NoMangleContent + | NonExhaustiveContent + | NoStdContent + | PanicHandlerContent + | PathContent + | ProcMacroAttributeContent + | ProcMacroContent + | ProcMacroDeriveContent + | RecursionLimitContent + | ReprContent + | ShouldPanicContent + | TargetFeatureContent + | TestContent + | TrackCallerContent + | TypeLengthLimitContent + | UsedContent + | WindowsSubsystemContent + +.. rubric:: Legality Rules + +:dp:`fls_92tqo8uas8kd` +A :t:`built-in attribute` is a language-defined :t:`attribute`. + +:dp:`fls_bxucstrfcco8` +The following :t:`[built-in attribute]s` are :dt:`[code generation attribute]s`: + +* :dp:`fls_wle815gb9ai2` + :t:`Attribute` :c:`cold`. + +* :dp:`fls_tvn08dtuilue` + :t:`Attribute` :c:`inline`. + +* :dp:`fls_q4c023zdsfgn` + :t:`Attribute` :c:`no_builtins`. + +* :dp:`fls_xtu3p0kzwn7b` + :t:`Attribute` :c:`target_feature`. + +* :dp:`fls_gxxbf6eag3et` + :t:`Attribute` :c:`track_caller`. + +:dp:`fls_87o6n9et9jio` +The following :t:`[built-in attribute]s` are +:dt:`[conditional compilation attribute]s`: + +* :dp:`fls_ui0i3rpt5v5u` + :t:`Attribute` :c:`cfg`. + +* :dp:`fls_6utorag4adlv` + :t:`Attribute` :c:`cfg_attr`. + +:dp:`fls_d8spdkjzp496` +The following :t:`[built-in attribute]s` are :dt:`[derivation attribute]s`: + +* :dp:`fls_vidbcv25dyud` + :t:`Attribute` :c:`automatically_derived`. + +* :dp:`fls_d0298bmlyuu4` + :t:`Attribute` :c:`derive`. + +:dp:`fls_dtb3t5ht5ngf` +The following :t:`[built-in attribute]s` are :dt:`[diagnostics attribute]s`: + +* :dp:`fls_c5n4gzgs79vv` + :t:`Attribute` ``allow``. + +* :dp:`fls_xheohvupr8kb` + :t:`Attribute` ``deny``. + +* :dp:`fls_s5z2q5pl14p4` + :t:`Attribute` ``deprecated``. + +* :dp:`fls_5ko0q9jnxv5a` + :t:`Attribute` ``forbid``. + +* :dp:`fls_rgjf5ibhurda` + :t:`Attribute` ``must_use``. + +* :dp:`fls_29y8icoou1gx` + :t:`Attribute` ``warn``. + +:dp:`fls_3fxhz0olhbcy` +The following :t:`[built-in attribute]s` are :dt:`[documentation attribute]s`: + +* :dp:`fls_oexj0952o05u` + :t:`Attribute` :c:`doc`. + +:dp:`fls_q579e97n1m8j` +The following :t:`[built-in attribute]s` are +:dt:`[foreign function interface attribute]s`: + +* :dp:`fls_sn43rofpq6ld` + :t:`Attribute` :c:`crate_name`. + +* :dp:`fls_56d70gkmin4p` + :t:`Attribute` :c:`crate_type`. + +* :dp:`fls_mgb1xipm0qwo` + :t:`Attribute` :c:`export_name`. + +* :dp:`fls_rmhlssasdtkj` + :t:`Attribute` :c:`link`. + +* :dp:`fls_josaywt6g3rq` + :t:`Attribute` :c:`link_name`. + +* :dp:`fls_qk4vkn42c2jh` + :t:`Attribute` :c:`link_section`. + +* :dp:`fls_f21azsygoovw` + :t:`Attribute` :c:`no_link`. + +* :dp:`fls_4d31lwzblg91` + :t:`Attribute` :c:`no_main`. + +* :dp:`fls_muucfla1s8yn` + :t:`Attribute` :c:`no_mangle`. + +* :dp:`fls_wbdtpntjr95w` + :t:`Attribute` :c:`repr`. + +* :dp:`fls_lglwcbsvi9yj` + :t:`Attribute` :c:`used`. + +:dp:`fls_1gyg8hfb13n7` +The following :t:`[built-in attribute]s` are :dt:`[limits attribute]s`: + +* :dp:`fls_6005g57evfbp` + :t:`Attribute` :c:`recursion_limit`. + +* :dp:`fls_3y4o8kq58dt8` + :t:`Attribute` :c:`type_length_limit`. + +:dp:`fls_vsix3pqf519x` +The following :t:`[built-in attribute]s` are :dt:`[macro attribute]s`: + +* :dp:`fls_c8uqw8p0qrh5` + :t:`Attribute` :c:`macro_export`. + +* :dp:`fls_b3jobjxmqppy` + :t:`Attribute` :c:`macro_use`. + +* :dp:`fls_xyhoxm30i7wn` + :t:`Attribute` :c:`proc_macro`. + +* :dp:`fls_nowfw1ffhupd` + :t:`Attribute` :c:`proc_macro_attribute`. + +* :dp:`fls_5i27houut1mu` + :t:`Attribute` :c:`proc_macro_derive`. + +:dp:`fls_1v9p4vr1nszn` +The following :t:`[built-in attribute]s` are :dt:`[modules attribute]s`: + +* :dp:`fls_jvkgtnulrqgh` + :t:`Attribute` :c:`path`. + +:dp:`fls_k9p2xrs3dotn` +The following :t:`[built-in attribute]s` are :dt:`[prelude attribute]s`: + +* :dp:`fls_73n30xdcx8e` + :t:`Attribute` :c:`no_implicit_prelude`. + +* :dp:`fls_e7zusnfka5dt` + :t:`Attribute` :c:`no_std`. + +:dp:`fls_85ul6x76ew9` +The following :t:`[built-in attribute]s` are :dt:`[runtime attribute]s`: + +* :dp:`fls_xkhm1sht2ju5` + :t:`Attribute` :c:`global_allocator`. + +* :dp:`fls_w9za4moh6gb3` + :t:`Attribute` :c:`panic_handler`. + +* :dp:`fls_3vubhygy9jje` + :t:`Attribute` :c:`windows_subsystem`. + +:dp:`fls_mhaplbf40j02` +The following :t:`[built-in attribute]s` are :dt:`[testing attribute]s`: + +* :dp:`fls_23huzf3c4arx` + :t:`Attribute` :c:`ignore`. + +* :dp:`fls_i63y9xnnwq2z` + :t:`Attribute` :c:`should_panic`. + +* :dp:`fls_yic8ksed28no` + :t:`Attribute` :c:`test`. + +:dp:`fls_p1ugiol1e5v5` +The following :t:`[built-in attribute]s` are :dt:`[type attribute]s`: + +* :dp:`fls_7xh2iphiteam` + :t:`Attribute` :c:`non_exhaustive`. + +.. _fls_h4k49eadninz: + +Code Generation Attributes +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. _fls_kpwbpp5hc00s: + +Attribute ``cold`` +^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + ColdContent ::= + $$cold$$ + +.. rubric:: Legality Rules + +:dp:`fls_x860jl4103p` +:t:`Attribute` :c:`cold` shall apply to :t:`[function]s`. + +:dp:`fls_8zdexi5lgm2f` +:t:`Attribute` :dc:`cold` indicates that its related :t:`function` is unlikely +to be called. + +.. rubric:: Examples + +.. code-block:: rust + + #[cold] + fn rarely_called_function () {} + +.. _fls_ypio6boj3pwf: + +Attribute ``inline`` +^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + InlineContent ::= + $$inline$$ InlineHint? + + InlineHint ::= + $$($$ ($$always$$ | $$never$$) $$)$$ + +.. rubric:: Legality Rules + +:dp:`fls_jwyhky49ssup` +:t:`Attribute` :c:`inline` shall apply to :t:`[closure expression]s` and +:t:`[function]s`. + +:dp:`fls_s7bf7tf9206d` +:t:`Attribute` :dc:`inline` marks its related :t:`function` as :dt:`inlined`. +The process of replacing a :t:`call expression` to an :t:`inlined` :t:`function` +with the :t:`function body` is referred to as :dt:`inlining`. + +:dp:`fls_930o6urn669w` +:t:`Attribute` :c:`inline` without an :s:`InlineHint` suggests to a tool that +:t:`inlining` should be performed. + +:dp:`fls_z7ufiqqujgdh` +:t:`Attribute` :c:`inline` with :s:`InlineHint` ``always`` suggests to a tool +that :t:`inlining` should always be performed. + +:dp:`fls_f0n4g5uky9tp` +:t:`Attribute` :c:`inline` with :s:`InlineHint` ``never`` suggests to a tool +that :t:`inlining` should never be performed. + +:dp:`fls_r3p4din7rjz8` +A tool is not obliged to perform :t:`inlining`. + +.. rubric:: Examples + +.. code-block:: rust + + #[inline] + fn suggests_inlining() {} + + #[inline(always)] + fn requests_consistent_inlining() {} + + #[inline(never)] + fn requests_suppressed_inlining() {} + +.. _fls_zakwockktml8: + +Attribute ``no_builtins`` +^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + NoBinutilsContent ::= + $$no_builtins$$ + +.. rubric:: Legality Rules + +:dp:`fls_x36c6j1ivbvp` +:t:`Attribute` :c:`no_builtins` shall apply to the :t:`crate root module`. + +:dp:`fls_k2k10qtn6f0g` +:t:`Attribute` :dc:`no_builtins` prevents the tool from replacing certain code +patterns with calls to intrinsic functions. + +.. rubric:: Examples + +.. syntax:: + + $$#![no_builtins]$$ + +.. _fls_spdmit5fy7el: + +Attribute ``target_feature`` +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + TargetFeatureContent ::= + $$target_feature$$ $$($$ $$enable$$ $$=$$ $$"$$ FeatureList $$"$$ $$)$$ + + FeatureList ::= + Feature (, Feature)* + + Feature ::= + $$adx$$ + | $$aes$$ + | $$avx$$ + | $$avx2$$ + | $$bmi1$$ + | $$bmi2$$ + | $$fma$$ + | $$fxsr$$ + | $$lzcnt$$ + | $$pclmulqdq$$ + | $$popcnt$$ + | $$rdrand$$ + | $$rdseed$$ + | $$sha$$ + | $$sse$$ + | $$sse2$$ + | $$sse3$$ + | $$sse4.1$$ + | $$sse4.2$$ + | $$ssse3$$ + | $$xsave$$ + | $$xsavec$$ + | $$xsaveopt$$ + | $$xsaves$$ + +.. rubric:: Legality Rules + +:dp:`fls_3qj3jvmtxvx6` +:t:`Attribute` :c:`target_feature` shall apply to :t:`[unsafe function]s`. + +:dp:`fls_agpkz1v3c281` +:t:`Attribute` :dc:`target_feature` enables target architecture features for its +related :t:`function`. + +:dp:`fls_91b7nd6qslsb` +The target architecture features are as follows: + +.. list-table:: + + * - :dp:`fls_yz4itbk700ot` + - **Feature** + - **implicitly enables** + - **Description** + * - :dp:`fls_pdyotoq8uqi2` + - adx + - + - Intel Multi-Precision Add-Cary Instruction Extensions + * - :dp:`fls_vdbjoy6gbk7l` + - aes + - sse2 + - Advanced Encryption Standard + * - :dp:`fls_k3szii6nviza` + - avx + - sse4.2 + - Advanced Vector Extensions + * - :dp:`fls_xsdkkfgv0pz6` + - avx2 + - avx + - Advanced Vector Extensions 2 + * - :dp:`fls_eglaup5zyfsk` + - bmi1 + - + - Bit Manipulation Instruction Sets + * - :dp:`fls_tkayqh7li81o` + - bmi2 + - + - Bit Manipulation Instruction Sets 2 + * - :dp:`fls_vv8o31s0zmli` + - fma + - avx + - Three-operand fused multiply-add + * - :dp:`fls_g0762ekvl2ah` + - fxsr + - + - Save and restore x87 FPU, MMX technology, and SSE state + * - :dp:`fls_406ltkru11tk` + - lzcnt + - + - Leading zeros count + * - :dp:`fls_4mhyvwj8pbpk` + - pclmulqdq + - sse2 + - Packed carry-less multiplication quadword + * - :dp:`fls_ijsmqk7pgyiz` + - popcnt + - + - Count of bits set to 1 + * - :dp:`fls_a1jggfetycxh` + - rdrand + - + - Read random number + * - :dp:`fls_rmbadmoeaoxu` + - rdseed + - + - Read random seed + * - :dp:`fls_f9ydn049isbv` + - sha + - sse2 + - Secure Hash Algorithm + * - :dp:`fls_7c31e21g6bdj` + - sse + - + - Streaming SIMD Extensions + * - :dp:`fls_6d5a375j2775` + - sse2 + - sse + - Streaming SIMD Extensions 2 + * - :dp:`fls_xthidh2nyrno` + - sse3 + - sse2 + - Streaming SIMD Extensions 3 + * - :dp:`fls_w02pk6kf9w9e` + - sse4.1 + - sse3 + - Streaming SIMD Extensions 4.1 + * - :dp:`fls_lzl1gpco3osx` + - sse4.2. + - sse4.1 + - Streaming SIMD Extensions 4.2 + * - :dp:`fls_9x2on8w44k4f` + - ssse3 + - sse3 + - Supplemental Streaming SIMD Extensions 3 + * - :dp:`fls_rilqwazchfpp` + - xsave + - + - Save processor extended status + * - :dp:`fls_f0of1395z9pn` + - xsavec + - + - Save processor extended status with compaction + * - :dp:`fls_v9gf6selc17l` + - xsaveopt + - + - Save processor extended states optimized + * - :dp:`fls_jyb5s2r8w1po` + - xsaves + - + - Save processor extended states supervizor + +.. rubric:: Undefined Behavior + +:dp:`fls_xx51fjkbgg5g` +It is undefined behavior to execute a program compiled with target architecture +features that are not supported. + +.. rubric:: Examples + +.. code-block:: rust + + #[target_feature(enable="bmi1,sse4.1")] + fn requires_target_architecture_features () {} + +.. _fls_6qj249hphj1s: + +Attribute ``track_caller`` +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + TrackCallerContent ::= + $$track_caller$$ + +.. rubric:: Legality Rules + +:dp:`fls_h8yepgchjxv9` +:t:`Attribute` :c:`track_caller` shall apply to :t:`non-[main function]s` with +:t:`ABI` "Rust". + +:dp:`fls_w1pxtzp7acty` +:t:`Attribute` :dc:`track_caller` allows the :t:`function body` of its +related :t:`function` to obtain a :std:`core::panic::Location` which indicates +the topmost untracked caller that ultimately led to the invocation of the +:t:`function`. + +:dp:`fls_zch43jpetmdu` +A tool is not required to implement this indication in an effective manner. + +:dp:`fls_y1e258p4rby5` +When applied to an :t:`associated trait function`, :t:`attribute` +:c:`track_caller` applies to all :t:`[associated function]s` of the +:t:`implemented trait`. If the :t:`associated trait function` has a default +:t:`implementation`, then the :t:`attribute` applies to all overriding +:t:`[function]s`. + +.. rubric:: Undefined Behavior + +:dp:`fls_vkz8t751gfhk` +It is undefined behavior when :t:`attribute` :c:`track_caller` applies to an +:t:`external function` but does not apply to all linked :t:`[implementation]s`. + +:dp:`fls_ddg0u5lej74x` +It is undefined behavior when :t:`attribute` :c:`track_caller` is applied to +an :t:`exported function` but the :t:`external function` it links to is missing +the :t:`attribute`. + +.. rubric:: Examples + +.. code-block:: rust + + #[track_caller] + fn who_called_me () {} + +.. _fls_cdx9zb1yxcc8: + +Conditional Compilation Attributes +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. _fls_fymvsy6ig99a: + +Attribute ``cfg`` +^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + CfgContent ::= + $$cfg$$ $$($$ ConfigurationPredicate $$)$$ + + ConfigurationPredicate ::= + ConfigurationOption + | ConfigurationPredicateAll + | ConfigurationPredicateAny + | ConfigurationPredicateNot + + ConfigurationOption ::= + ConfigurationOptionName ConfigurationOptionValue? + + ConfigurationOptionName ::= + Identifier + + ConfigurationOptionValue ::= + $$=$$ StringLiteral + + ConfigurationPredicateAll ::= + $$all$$ $$($$ ConfigurationPredicateList? $$)$$ + + ConfigurationPredicateAny ::= + $$any$$ $$($$ ConfigurationPredicateList? $$)$$ + + ConfigurationPredicateNot ::= + $$not$$ $$($$ ConfigurationPredicate $$)$$ + + ConfigurationPredicateList ::= + ConfigurationPredicate ($$,$$ ConfigurationPredicate)* $$,$$? + +.. rubric:: Legality Rules + +:dp:`fls_xrjp7xw9jutz` +:t:`Attribute` :dc:`cfg` enables :t:`conditional compilation`. + +:dp:`fls_l96kyix5xsof` +A :t:`configuration predicate` is a :t:`construct` that evaluates statically +to either ``true`` or ``false``, and controls :t:`conditional compilation`. + +:dp:`fls_y1MUhnKCxK6T` +An :t:`all configuration predicate` is a :t:`configuration predicate` that +models existential quantifier ALL. + +:dp:`fls_tncxxsyutppf` +An :t:`all configuration predicate` evaluates statically to ``true`` when either +all nested configuration predicates evaluate to ``true``, or there are no nested +configuration predicates. + +:dp:`fls_Rp73YEE3aFdI` +An :t:`any configuration predicate` is a :t:`configuration predicate` that +models existential quantifier ANY. + +:dp:`fls_m0zxktz168e0` +An :t:`any configuration predicate` evaluates statically to ``true`` when any +nested configuration predicate evaluates to ``true``. + +:dp:`fls_XsxeOd32JI8x` +A :t:`not configuration predicate` is a :t:`configuration predicate` that +negates the Boolean :t:`value` of its nested :t:`configuration predicate`. + +:dp:`fls_tvsadfy9uibu` +A :t:`not configuration predicate` evaluates statically to ``true`` when its +nested configuration predicate evaluates to ``false``. + +:dp:`fls_jbl9xyynjo0g` +The :t:`evaluation` of a configuration option is tool-defined. + +.. rubric:: Examples + +.. code-block:: rust + + #[cfg(all(unix, target_pointer_width = "32"))] + fn on_32bit_unix() {} + +.. _fls_dd9xh3wdjudo: + +Attribute ``cfg_attr`` +^^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + CfgAttrContent ::= + $$cfg_attr$$ $$($$ ConfigurationPredicate $$,$$ AttributeContentList $$)$$ + +.. rubric:: Legality Rules + +:dp:`fls_r66jhict6rlq` +:t:`Attribute` :dc:`cfg_attr` enables :t:`conditional compilation`. + +:dp:`fls_rzw12sagm585` +An :t:`attribute` :c:`cfg_attr` where the related +:t:`configuration predicate` evaluates to ``true`` is replaced with a new +:t:`attribute` for each :s:`AttributeContent` enumerated in the +:t:`[attribute]'s` :s:`AttributeContentList`. + +.. rubric:: Examples + +.. code-block:: rust + + #[cfg_attr(windows, path="windows.rs")] + mod os; + +.. _fls_wednba84zi3y: + +Derivation Attributes +~~~~~~~~~~~~~~~~~~~~~ + +.. _fls_bqw87nz4qbrb: + +Attribute ``automatically_derived`` +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + AutomaticallyDerivedContent ::= + $$automatically_derived$$ + +.. rubric:: Legality Rules + +:dp:`fls_5u1e0lkt0ab1` +:t:`Attribute` :dc:`automatically_derived` is automatically added to +:t:`[implementation]s` that are created by :t:`attribute` :c:`derive` for +:t:`[built-in trait]s`. + +.. _fls_r6gj1p4gajnq: + +Attribute ``derive`` +^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + DeriveContent ::= + $$derive$$ $$($$ SimplePathList? $$)$$ + +.. rubric:: Legality Rules + +:dp:`fls_4btm6zwf445a` +:t:`Attribute` :c:`derive` shall apply to :t:`[abstract data type]s`. + +:dp:`fls_pjmbmj2b35y8` +:t:`Attribute` :dc:`derive` lists :t:`[derive macro]s` for automatic +implementation by a tool. + +.. rubric:: Examples + +.. code-block:: rust + + #[derive(PartialEq)] + struct S { + field: T + } + +:dp:`fls_xtty2ino4vwc` +Attribute ``derive`` causes trait :std:`core::cmp::PartialEq` to be +automatically implemented for struct ``S`` as follows: + +.. code-block:: rust + + impl core::cmp::PartialEq for S { + fn eq(&self, other: &S) -> bool { + self.field == other.field + } + + fn ne(&self, other: &S) -> bool { + self.field != other.field + } + } + +.. _fls_t2590yyvclgb: + +Diagnostics Attributes +~~~~~~~~~~~~~~~~~~~~~~ + +.. informational-section:: + +:dp:`fls_ghumzt9ybtit` +Diagnostic :t:`[attribute]s` are related to linting, and are not defined in +this document. + +.. _fls_8wcliky2svcs: + +Documentation Attributes +~~~~~~~~~~~~~~~~~~~~~~~~ + +.. _fls_63v1fqedzwfd: + +Attribute ``doc`` +^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + DocContent ::= + $$doc$$ DocInput + + DocInput ::= + $$=$$ MacroInvocation + | $$=$$ StringLiteral + | $$($$ TokenTree* $$)$$ + +.. rubric:: Legality Rules + +:dp:`fls_1ee9qjcgbwme` +:t:`Attribute` :dc:`doc` associates documentation with a :t:`construct`. + +.. rubric:: Examples + +.. code-block:: rust + + #![doc = "This is a doc comment written as an attribute."] + +.. _fls_pgp7ezcc9lh8: + +Foreign Function Interface Attributes +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. _fls_sun645voqex6: + +Attribute ``crate_name`` +^^^^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + CrateNameContent ::= + $$crate_name$$ $$=$$ StringLiteral + +.. rubric:: Legality Rules + +:dp:`fls_tsdk8jyajcg` +:t:`Attribute` :c:`crate_name` shall apply to the :t:`crate root module`. + +:dp:`fls_6riphqysh0gd` +:t:`Attribute` :dc:`crate_name` shall specify the name of the related +:t:`crate`. + +.. rubric:: Examples + +.. code-block:: rust + + #![crate_name = "factories"] + +.. _fls_ujig607lmwbm: + +Attribute ``crate_type`` +^^^^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + CrateTypeContent ::= + $$crate_type$$ $$=$$ $$"$$ CrateType $$"$$ + + CrateType ::= + $$bin$$ + | $$cdylib$$ + | $$dylib$$ + | $$lib$$ + | $$proc-macro$$ + | $$rlib$$ + | $$staticlib$$ + +.. rubric:: Legality Rules + +:dp:`fls_2i2g55nqqpc1` +:t:`Attribute` :c:`crate_type` shall apply to the :t:`crate root module`. + +:dp:`fls_1zziddjuzjeq` +:t:`Attribute` :dc:`crate_type` shall specify the linkage :t:`type` of the +:t:`crate` it appears in. + +.. rubric:: Examples + +.. code-block:: rust + + #![crate_type = "cdylib"] + +.. _fls_olzilmy8n0nl: + +Attribute ``export_name`` +^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + ExportNameContent ::= + $$export_name$$ $$=$$ StringLiteral + +.. rubric:: Legality Rules + +:dp:`fls_r3fwpuuaoeie` +:t:`Attribute` :c:`export_name` shall apply to :t:`[function]s` and +:t:`[static]s`. + +:dp:`fls_spwr6gf7kpds` +:t:`Attribute` :dc:`export_name` shall specify the exported symbol of the +related :t:`function` or :t:`static`. + +.. rubric:: Examples + +.. code-block:: rust + + #[export_name = "exported_symbol"] + pub fn rust_name() {} + +.. _fls_o0f9ae22ug1x: + +Attribute ``link`` +^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + LinkContent ::= + $$link$$ $$($$ LinkOption $$)$$ + + LinkOption ::= + NativeLibraryName + | NativeLibraryNameWithKind + | WebAssemblyModuleName + + NativeLibraryName ::= + $$name$$ $$=$$ StringLiteral + + NativeLibraryNameWithKind ::= + NativeLibraryName , NativeLibrayKind + + WebAssemblyModuleName ::= + $$wasm_import_module$$ $$=$$ StringLiteral + + NativeLibrayKind ::= + $$kind$$ $$=$$ " NativeLibrayKindType " + + NativeLibrayKindType ::= + $$dylib$$ + | $$raw-dylib$$ + | $$framework$$ + | $$static$$ + +.. rubric:: Legality Rules + +:dp:`fls_yslpkdngo8hj` +:t:`Attribute` :c:`link` shall apply to :t:`[external block]s`. + +:dp:`fls_6rohnk4swj6c` +:t:`Attribute` :dc:`link` shall specify the name of a native library that a tool +should link with. + +:dp:`fls_o83pf3bcrzma` +The following native library kinds are available: + +.. list-table:: + + * - :dp:`fls_5541q1qoxdpf` + - **Native Library Kind** + - **Description** + * - :dp:`fls_wpqawdpevkj6` + - dylib + - Dynamic library + * - :dp:`fls_HPl6poXGiAqV` + - raw-dylib + - Dynamic library + * - :dp:`fls_h9dfs6kzmobp` + - framework + - macOS framework + * - :dp:`fls_3a3r4jf7hzqr` + - static + - Static library + +:dp:`fls_1tdheukgm6ai` +When :t:`attribute` :c:`link` appears without a native library kind, its native +library kind defaults to ``dylib``. Native library kind framework is only valid +on macOS targets. + +:dp:`fls_3i9ijypnh8nx` +If :t:`attribute` :c:`link` appears without a WebAssembly module name, then the +WebAssembly module name defaults to ``env``. + +:dp:`fls_iDjcQczFQknm` +When :t:`attribute` :c:`link` appears with ``raw-dylib`` as the native library +kind, the supplied name must include the file extension. + +:dp:`fls_rcERq1PfKPJI` +When :t:`attribute` :c:`link` appears with ``raw-dylib`` as the native library +kind, the :t:`[external function]s` and :t:`[external static]s` of the related +:t:`external block` shall not be subject to :t:`attribute` :c:`no_mangle`. + +.. rubric:: Examples + +.. code-block:: rust + + #[link(name = "CoreFoundation", kind = "framework")] + extern {} + +.. _fls_p44fky7fifc: + +Attribute ``link_name`` +^^^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + LinkNameContent ::= + $$link_name$$ $$=$$ StringLiteral + +.. rubric:: Legality Rules + +:dp:`fls_g09jhukl0ez2` +:t:`Attribute` :c:`link_name` shall apply to :t:`[external function]s` and +:t:`[external static]s`. + +:dp:`fls_d00wni4edi8f` +:t:`Attribute` :dc:`link_name` shall specify the linking symbol of the related +:t:`external function` or :t:`external static`. + +:dp:`fls_0Athv8KFA5FO` +:t:`Attribute` :c:`link_name` shall not be applied to :t:`[external function]s` +and :t:`[external static]s` that are annotated with :t:`Attribute` +:c:`link_ordinal`. + +.. rubric:: Examples + +.. code-block:: rust + + extern { + #[link_name = "linking_symbol"] + pub fn rust_name() {} + } + +.. _fls_hffpo88r61rh: + +Attribute ``link_section`` +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + LinkSectionContent ::= + $$link_section$$ $$=$$ StringLiteral + +.. rubric:: Legality Rules + +:dp:`fls_5loqzajiz34m` +:t:`Attribute` :c:`link_section` shall apply to :t:`[function]s` and +:t:`[static]s`. + +:dp:`fls_cyxk12wuicml` +:t:`Attribute` :dc:`link_section` specifies the object file section where the +symbol of the related :t:`function` or :t:`static` will be placed. + +.. rubric:: Examples + +.. code-block:: rust + + #[link_section = ".example_section"] + pub static THE_ANSWER: u32 = 42; + +.. _fls_Obik2w9gvhLN: + +Attribute ``link_ordinal`` +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + LinkOrdinalContent ::= + $$link_ordinal$$ $$($$ DecimalLiteral $$)$$ + +.. rubric:: Legality Rules + +:dp:`fls_fuv29BIqcawW` +:t:`Attribute` :c:`link_ordinal` shall apply to :t:`[external function]s` and +:t:`[external static]s`. + +:dp:`fls_qh5sXG4znAXa` +The related :t:`extern block` of the :t:`[external function]` or +:t:`[external static]` shall be subject to :t:`attribute` :c:`link` with +``raw-dylib`` as the native library kind. + +:dp:`fls_ASnJJiXWGlKI` +:t:`Attribute` :dc:`link_ordinal` shall specify the linking symbol of the +related :t:`external function` or :t:`external static` by ordinal number. + +.. rubric:: Examples + +.. code-block:: rust + + #[link(name = "lib.dll", kind = "raw-dylib")] + extern "system" { + #[link_ordinal(16)] + fn function(); + } + +.. _fls_ch9nkxkloozv: + +Attribute ``no_link`` +^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + NoLinkContent ::= + $$no_link$$ + +.. rubric:: Legality Rules + +:dp:`fls_ayhn6g6sgt3h` +:t:`Attribute` :c:`no_link` shall apply to :t:`[crate import]s`. + +:dp:`fls_76ox8n3eef5` +:t:`Attribute` :dc:`no_link` indicates that the imported external :t:`crate` +will not be linked into the resulting binary or library. + +.. rubric:: Examples + +.. code-block:: rust + + #[no_link] + extern crate do_not_link; + +.. _fls_fh27ljezn3qz: + +Attribute ``no_main`` +^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + NoMainContent ::= + $$no_main$$ + +.. rubric:: Legality Rules + +:dp:`fls_84a9k0fzmnfk` +:t:`Attribute` :c:`no_main` shall apply to the :t:`crate root module`. + +:dp:`fls_6qig3s3qpj0i` +:t:`Attribute` :dc:`no_main` indicates that the symbols of the +:t:`main function` will not be present in a binary. + +.. rubric:: Examples + +.. code-block:: rust + + #![no_main] + +.. _fls_mvd7nz8k3wcy: + +Attribute ``no_mangle`` +^^^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + NoMangleContent ::= + $$no_mangle$$ + +.. rubric:: Legality Rules + +:dp:`fls_q5swm5meafmx` +:t:`Attribute` :c:`no_mangle` has no effect on :t:`[construct]s` other than +:t:`[function]s` and :t:`[static]s`. + +:dp:`fls_esaew4fqk8mm` +:t:`Attribute` :dc:`no_mangle` indicates that the :t:`name` of the related +:t:`function` or :t:`static` will be used as the symbol for that :t:`function` +or :t:`static`. + +:dp:`fls_lvnclpxbye9u` +:t:`Attribute` :c:`no_mangle` causes the related :t:`function` or :t:`static` to +be publicly exported from the produced library or object file. + +:dp:`fls_VKuSiswPMll7` +An :t:`exported function` is a :t:`function` subject to :t:`attribute` +:c:`no_mangle`. + +:dp:`fls_I029Rvr5BX5P` +An :t:`exported static` is a :t:`static` subject to :t:`attribute` +:c:`no_mangle`. + +.. rubric:: Examples + +.. code-block:: rust + + #[no_mangle] + pub fn symbol_name() {} + +.. _fls_aibb2quva4mn: + +Attribute ``repr`` +^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + ReprContent ::= + $$repr$$ $$($$ Representation $$)$$ + + Representation ::= + RepresentationKind Alignment? + + RepresentationKind ::= + PrimitiveRepresentation + | $$C$$ + | $$transparent$$ + + Alignment ::= + AlignmentDecrease + | AlignmentIncrease + + PrimitiveRepresentation ::= + $$i8$$ + | $$i16$$ + | $$i32$$ + | $$i64$$ + | $$i128$$ + | $$isize$$ + | $$u8$$ + | $$u16$$ + | $$u32$$ + | $$u64$$ + | $$u128$$ + | $$usize$$ + + AlignmentDecrease ::= + $$packed$$ + + AlignmentIncrease ::= + $$align$$ $$($$ DecimalLiteral $$)$$ + +.. rubric:: Legality Rules + +:dp:`fls_vetjq9sw84qc` +:t:`Attribute` :c:`repr` shall apply to :t:`[abstract data type]s`. + +:dp:`fls_is2esjz1sy36` +:t:`Attribute` :dc:`repr` shall indicate the :t:`type representation` of the +related :t:`type`. + +.. rubric:: Examples + +.. code-block:: rust + + #[repr(C, align(8))] + struct c_struct { + first_field: i16, + second_field: i8 + } + +.. _fls_7skf24auayqy: + +Attribute ``used`` +^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + UsedContent ::= + $$used$$ + +.. rubric:: Legality Rules + +:dp:`fls_s4ii078wgpk` +:t:`Attribute` :c:`used` shall apply to :t:`[static]s`. + +:dp:`fls_k293nzcffks4` +:t:`Attribute` :dc:`used` forces a tool to keep the related :t:`static` in the +output object file even if the :t:`static` is not used or referenced by other +:t:`[item]s` in the :t:`crate`. + +.. rubric:: Examples + +.. code-block:: rust + + #[used] + pub static THE_ANSWER: u32 = 42; + +.. _fls_cjq792yj6vft: + +Limits Attributes +~~~~~~~~~~~~~~~~~ + +.. _fls_u2hzlzpzh7yy: + +Attribute ``recursion_limit`` +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + RecursionLimitContent ::= + $$recursion_limit$$ $$=$$ $$"$$ DecimalLiteral $$"$$ + +.. rubric:: Legality Rules + +:dp:`fls_o55cxc67sya7` +:t:`Attribute` :c:`recursion_limit` shall apply to the :t:`crate root module`. + +:dp:`fls_o9p8fa8zhe15` +:t:`Attribute` :dc:`recursion_limit` sets the maximum depth of +:t:`macro expansion` and :t:`auto-dereferencing`. + +.. rubric:: Examples + +.. code-block:: rust + + #![recursion_limit = "42"] + +.. _fls_tdjjuwbr7mkg: + +Attribute ``type_length_limit`` +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + TypeLengthLimitContent ::= + $$type_length_limit$$ $$=$$ $$"$$ DecimalLiteral $$"$$ + +.. rubric:: Legality Rules + +:dp:`fls_dfnkzj8ob3uq` +:t:`Attribute` :c:`type_length_limit` shall apply to the +:t:`crate root module`. + +:dp:`fls_61vt1r8g51nh` +:t:`Attribute` :dc:`type_length_limit` sets the maximum number of +:t:`[generic substitution]s` for :t:`[type parameter]s` when constructing a +:t:`concrete type`. + +.. rubric:: Examples + +.. code-block:: rust + + #![type_length_limit = "42"] + +.. _fls_2084b06dr0wz: + +Macros Attributes +~~~~~~~~~~~~~~~~~ + +.. _fls_e0a96eb6ux3y: + +Attribute ``macro_export`` +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + MacroExportContent ::= + $$macro_export$$ + +.. rubric:: Legality Rules + +:dp:`fls_3ma7zkk6john` +:t:`Attribute` :c:`macro_export` shall apply to :t:`[declarative macro]s`. + +:dp:`fls_h26iw5wh4lla` +:t:`Attribute` :dc:`macro_export` changes the :t:`visibility` of the related +:t:`declarative macro` to :t:`public visibility` and introduces the :t:`name` +of the :t:`declarative macro` into the :t:`item scope` of the +:t:`crate root module`. + +.. rubric:: Examples + +.. code-block:: rust + + #[macro_export] + macro_rules! m { + () => {}; + } + +.. _fls_qxjy0f758x5s: + +Attribute ``macro_use`` +^^^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + MacroUseContent ::= + $$macro_use$$ ImportedMacroList? + + ImportedMacroList ::= + $$($$ IdentifierList $$)$$ + +.. rubric:: Legality Rules + +:dp:`fls_uua0nthq9id` +:t:`Attribute` :c:`macro_use` shall apply to :t:`[crate import]s` and +:t:`[module]s`. + +:dp:`fls_oq4kyo5z5tj5` +An :s:`ImportedMacroList` enumerates macros-to-import. A macro-to-import shall +be subject to attribute :c:`macro_export`. + +:dp:`fls_skexvtpbjknn` +When applied to a :t:`crate import`, :t:`attribute` :dc:`macro_use` +imports from the related :t:`crate` either: + +* :dp:`fls_v03924dr0u0z` + The enumerated macros-to-import, or + +* :dp:`fls_eha2hoey857x` + If no macros-to-import have been specified, all :t:`[macro]s` subject to + :t:`attribute` :c:`macro_export`. + +:dp:`fls_p6jlgmn2sg7j` +When applied to a :t:`module`, :t:`attribute` :c:`macro_use` extends the +:t:`textual macro scope` of the related :t:`macro`. + +.. rubric:: Examples + +.. code-block:: rust + + #[macro_use(first_macro, second_macro)] + extern crate macros; + #[macro_use] + mod module {} + +.. _fls_qkmkev85o5jf: + +Attribute ``proc_macro`` +^^^^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + ProcMacroContent ::= + $$proc_macro$$ + +.. rubric:: Legality Rules + +:dp:`fls_u48dtmh97g` +:t:`Attribute` :c:`proc_macro` shall apply to public :t:`[function]s` in the +:t:`crate root module` of a :t:`proc-macro crate`. + +:dp:`fls_t4ez0zg1m569` +:t:`Attribute` :dc:`proc_macro` turns the related :t:`function` into a +:t:`function-like macro`. + +.. rubric:: Examples + +.. code-block:: rust + + #[proc_macro] + pub fn make_answer_to_life(_items: TokenStream) -> TokenStream { + "fn answer_to_life() -> u32 { 42 }".parse().unwrap() + } + +.. _fls_ejhlylrcajo: + +Attribute ``proc_macro_attribute`` +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. syntax:: + + ProcMacroAttributeContent ::= + $$proc_macro_attribute$$ + +.. rubric:: Legality Rules + +:dp:`fls_huznzmkuhdky` +:t:`Attribute` :c:`proc_macro_attribute` shall apply to public :t:`[function]s` +in the :t:`crate root module` of a :t:`proc-macro crate`. + +:dp:`fls_gc3ly8fsodf1` +:t:`Attribute` :dc:`proc_macro_attribute` turns the related :t:`function` into +an :t:`attribute macro`. + +.. rubric:: Examples + +.. code-block:: rust + + #[proc_macro_attribute] + pub fn output_and_return_item + (attr: TokenStream, item: TokenStream) -> TokenStream + { + println!("attr: \"{}\"", attr.to_string()); + println!("item: \"{}\"", item.to_string()); + item + } + +.. _fls_q6qecp6e413: + +Attribute ``proc_macro_derive`` +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + ProcMacroDeriveContent ::= + $$proc_macro_derive$$ $$($$ DeriveName ($$,$$ HelperAttributeList)? $$)$$ + + DeriveName ::= + Name + + HelperAttributeList ::= + $$attributes$$ $$($$ IdentifierList $$)$$ + +.. rubric:: Legality Rules + +:dp:`fls_l82yswg0k3px` +:t:`Attribute` :c:`proc_macro_derive` shall apply to public :t:`[function]s` in +the :t:`crate root module` of a :t:`proc-macro crate`. + +:dp:`fls_ir9i4i2x5gyx` +:t:`Attribute` :dc:`proc_macro_derive` turns the related :t:`function` into a +:t:`derive macro`, where :s:`DeriveName` defines the :t:`name` of the +:t:`derive macro` available to :t:`attribute` :c:`derive`. + +:dp:`fls_NydVxyb43TH6` +The :s:`HelperAttributeList` declares the :t:`[derive helper attribute]s` of +the :t:`derive macro`. + +.. rubric:: Examples + +.. code-block:: rust + + #[proc_macro_derive(Answer, attributes(marker))] + pub fn derive_answer_to_life(_items: TokenStream) -> TokenStream { + "fn answer_to_life() -> u32 { 42 }".parse().unwrap() + } + + #[derive(Answer)] + struct S { + #[marker] field: () + } + +.. _fls_7bb5ua4g06k8: + +Modules Attributes +~~~~~~~~~~~~~~~~~~ + +.. _fls_1zbaajz5prpn: + +Attribute ``path`` +^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + PathContent ::= + $$path$$ $$=$$ StringLiteral + +.. rubric:: Legality Rules + +:dp:`fls_lht4pcezmbxw` +:t:`Attribute` :c:`path` shall apply to :t:`[module]s`. + +:dp:`fls_qb6anohvc03k` +:t:`Attribute` :dc:`path` specifies the :dt:`module path` of the respective +:t:`module` as a :t:`string literal`. + +:dp:`fls_18tcecx4p2wp` +A tool is free to define the format of a :t:`module path`. + +.. rubric:: Examples + +.. code-block:: rust + + #[path = "path/to/inline_module"] + mod inline_module { + #[path = "path/to/outline_module"] + mod outline_module; + } + +.. _fls_go457hpaf7ov: + +Prelude Attributes +~~~~~~~~~~~~~~~~~~ + +.. _fls_iikmhqsp1r5a: + +Attribute ``no_implicit_prelude`` +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + NoImplicitPreludeContent ::= + $$no_implicit_prelude$$ + +.. rubric:: Legality Rules + +:dp:`fls_tki5k5uo74gw` +The :t:`inner attribute` version of :t:`attribute` :c:`no_implicit_prelude` +shall apply to the :t:`crate root module` or to :t:`[module]s`. + +:dp:`fls_cmrqxc5oax4r` +The :t:`outer attribute` version of :t:`attribute` :c:`no_implicit_prelude` +shall apply to :t:`[module]s`. + +:dp:`fls_c7v2hbdb7g2d` +:t:`Attribute` :dc:`no_implicit_prelude` prevents the import of the +:t:`external prelude`, the standard library :t:`prelude`, and the tool +:t:`prelude`. + +.. rubric:: Examples + +.. code-block:: rust + + #[no_implicit_prelude] + mod module {} + +.. _fls_9xnaxd7qbakp: + +Attribute ``no_std`` +^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + NoStdContent ::= + $$no_std$$ + +.. rubric:: Legality Rules + +:dp:`fls_qnxihxsvkyf6` +:t:`Attribute` :c:`no_std` shall apply to the :t:`crate root module`. + +:dp:`fls_kxav9vw59ts4` +:t:`Attribute` :dc:`no_std` has the following effects: + +* :dp:`fls_ve1shwjq09pl` + Prevents the import of the standard library :t:`prelude`. + +* :dp:`fls_wgwsn7laoju7` + Imports the :t:`core prelude`. + +* :dp:`fls_lxkd6hdboav4` + Imports all :t:`[declarative macro]s` subject to :t:`attribute` + :c:`macro_export` of the ``core`` :t:`crate` into the :t:`macro_use prelude`. + +.. rubric:: Examples + +.. code-block:: rust + + #![no_std] + +.. _fls_nbbvukrdngev: + +Runtime Attributes +~~~~~~~~~~~~~~~~~~ + +.. _fls_fs0lcfllamj: + +Attribute ``global_allocator`` +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + GlobalAllocatorContent ::= + $$global_allocator$$ + +.. rubric:: Legality Rules + +:dp:`fls_5b8aewlgeon8` +:t:`Attribute` :c:`global_allocator` shall apply to :t:`[static]s` whose +:t:`[type]s` implement the :std:`core::alloc::GlobalAlloc` :t:`trait`. + +:dp:`fls_homoidh8mu1r` +:t:`Attribute` :dc:`global_allocator` sets the global allocator to the related +:t:`static`. + +.. rubric:: Examples + +.. code-block:: rust + + #[global_allocator] + pub static THE_ANSWER: u32 = 42; + +.. _fls_ls5eryuoxlp9: + +Attribute ``panic_handler`` +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + PanicHandlerContent ::= + $$panic_handler$$ + +.. rubric:: Legality Rules + +:dp:`fls_ryz8qy1wdnma` +:t:`Attribute` :c:`panic_handler` shall apply to :t:`[function]s` with the +following restrictions: + +* :dp:`fls_ncyod5gegMqL` + It lacks :t:`[function qualifier]s`, + +* :dp:`fls_jzIHzPkJqVm8` + Its :t:`ABI` is Rust, + +* :dp:`fls_qXii07xWRUoT` + It lacks :t:`[generic parameter]s`, + +* :dp:`fls_ZEjvn4mmfSct` + It has a single :t:`function parameter` whose :t:`type` is ``&`` + :std:`core::panic::PanicInfo`, + +* :dp:`fls_iWPw0QFE5TrP` + It has the :t:`never type` as its :t:`return type`, + +* :dp:`fls_WirXqd7UV4M0` + It lacks a :t:`where clause`, + +* :dp:`fls_5CGTQTuT0I5v` + It has a :t:`function body`. + +:dp:`fls_8gqun8lma9wz` +:t:`Attribute` :dc:`panic_handler` indicates that its related :t:`function` +defines the behavior of :t:`[panic]s`. + +:dp:`fls_ka66jcu8gir7` +A :t:`crate` graph shall contain exactly one :t:`function` subject to +:t:`attribute` :c:`panic_handler`. + +.. rubric:: Examples + +.. code-block:: rust + + #[panic_handler] + fn panic(info: &core::panic::PanicInfo) -> ! {} + +.. _fls_1l4mnlfk5rr2: + +Attribute ``windows_subsystem`` +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + WindowsSubsystemContent ::= + $$windows_subsystem$$ $$=$$ $$"$$ SubsystemKind $$"$$ + + SubsystemKind ::= + $$console$$ + | $$windows$$ + +.. rubric:: Legality Rules + +:dp:`fls_7mzjahvdzpy5` +:t:`Attribute` :c:`windows_subsystem` shall apply to the :t:`crate root module` +of a :t:`binary crate`. + +:dp:`fls_t3c0t3lcnebk` +:t:`Attribute` :dc:`windows_subsystem` specifies the subsystem on Windows. + +:dp:`fls_go7pfkgpjk2t` +If :t:`attribute` :c:`windows_subsystem` is missing, the subsystem of the +related :t:`binary crate` defaults to ``console``. + +.. rubric:: Examples + +.. code-block:: rust + + #![windows_subsystem = "console"] + +.. _fls_riyi0gy48fxw: + +Testing Attributes +~~~~~~~~~~~~~~~~~~ + +.. _fls_x849a4u7h82j: + +Attribute ``ignore`` +^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + IgnoreContent ::= + $$ignore$$ IgnoreReason? + + IgnoreReason ::= + $$=$$ StringLiteral + +.. rubric:: Legality Rules + +:dp:`fls_qmdylxse9yhu` +:t:`Attribute` :c:`ignore` shall apply to :t:`[testing function]s`. + +:dp:`fls_9m8e59fc1tyh` +:t:`Attribute` :dc:`ignore` prevents the execution of its related +:t:`testing function`. + +.. rubric:: Examples + +.. code-block:: rust + + #[test] + #[ignore = "not implemented yet"] + fn unit_testing_function() {} + +.. _fls_aes2d94g12b9: + +Attribute ``should_panic`` +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + ShouldPanicContent ::= + $$should_panic$$ ExpectedPanicMessage? + + ExpectedPanicMessage ::= + $$($$ $$expected$$ $$=$$ StringLiteral $$)$$ + +.. rubric:: Legality Rules + +:dp:`fls_w7dq8gnzel36` +:t:`Attribute` :c:`should_panic` shall apply to :t:`[testing function]s`. + +:dp:`fls_bm5x846zfnb8` +:t:`Attribute` :dc:`should_panic` indicates that for the related +:t:`testing function` to pass, it should :t:`panic`. + +:dp:`fls_bcoq5aus8nkr` +If :s:`ExpectedPanicMessage` is specified, then the related +:t:`testing function` passes only when the :t:`panic` message contains the +:s:`ExpectedPanicMessage`. + +.. rubric:: Examples + +.. code-block:: rust + + #[test] + #[should_panic(expected = "did not get meaning of life")] + fn test_meaning_of_life() { + assert_eq!(meaning_of_life(), 42, "did not get meaning of life"); + } + +.. _fls_dv2j1fvvnk1t: + +Attribute ``test`` +^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + TestContent ::= + $$test$$ + +.. rubric:: Legality Rules + +:dp:`fls_o2elhg5w1rj9` +:t:`Attribute` :c:`test` shall apply to :t:`[function]s` that: + +* :dp:`fls_ert22u8rvkxt` + Is not an :t:`async function`, and + +* :dp:`fls_c9ckjrq6emdj` + Is not an :t:`unsafe function`, and + +* :dp:`fls_4uykzqpq6svl` + Lacks :t:`[generic parameter]s`, and + +* :dp:`fls_aqzd30s267pt` + Lacks :t:`[function parameter]s`, and + +* :dp:`fls_n3hjhh3d7tyx` + Its :t:`return type` is the :t:`unit type`. + +:dp:`fls_ze6cs75y9aft` +:t:`Attribute` :dc:`test` indicates that the respective :t:`function` is a +:dt:`testing function`. + +:dp:`fls_pcs0prrh23y3` +A :t:`testing function` that returns the :t:`unit type` passes when it +terminates and does not :t:`panic`. + +:dp:`fls_niky8lbkvej9` +A :t:`testing function` that returns ``core::result::Result<(), E>`` passes when +it returns ``core::result::Result::OK(())``. + +:dp:`fls_qfuntdm2g184` +A :t:`testing function` that does not terminate shall pass and fail according to +the tool. + +.. rubric:: Examples + +.. code-block:: rust + + #[test] + fn test_the_thing() -> core::result::Result<()> { + let input = create_input()?; + do_the_thing(&input)?; + core::result::Result::Ok(()); + } + +.. _fls_r3zwgf9sg1xp: + +Type Attributes +~~~~~~~~~~~~~~~ + +.. _fls_9tmvuqrmk3ug: + +Attribute ``non_exhaustive`` +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + NonExhaustiveContent ::= + $$non_exhaustive$$ + +.. rubric:: Legality Rules + +:dp:`fls_szvrd79cgzsg` +:t:`Attribute` :c:`non_exhaustive` shall apply to :t:`[enum type]s`, +:t:`[enum variant]s`, and :t:`[struct type]s`. + +:dp:`fls_1of56vl2ewq0` +:t:`Attribute` :dc:`non_exhaustive` indicates that the related +:t:`abstract data type` or :t:`enum variant` may have more :t:`[field]s` or +:t:`[enum variant]s` added in the future. A :t:`type` subject to :t:`attribute` +:c:`non_exhaustive` is referred to as a :dt:`non-exhaustive type`. + +:dp:`fls_hkyzdmmdyoin` +A :t:`non-exhaustive type` shall not be constructed outside of its defining +:t:`crate`. + +:dp:`fls_7b0fvwrmz0mh` +An :t:`enum variant` subject to :t:`attribute` :c:`non_exhaustive` is referred +to as a :dt:`non-exhaustive variant`. + +:dp:`fls_oqfrg9tqgaj8` +A :t:`non-exhaustive variant` shall not be constructed outside of its defining +:t:`crate`. + +:dp:`fls_aql3c89840ix` +:t:`Pattern matching` a :t:`non-exhaustive variant` shall require a +:t:`struct pattern` with a :t:`rest pattern` outside its defining :t:`crate`. + +:dp:`fls_cez7yxfc376c` +:t:`Pattern matching` a :t:`non-exhaustive variant` does not contribute towards +the exhaustiveness of :t:`[match arm]s`. + +.. rubric:: Examples + +.. code-block:: rust + + #[non_exhaustive] + enum enum_with_future_variants { + Variant + } + + enum enum_variants_with_future_fields { + #[non_exhaustive] Send { from: u32, to: u32 }, + #[non_exhaustive] Quit + } + + #[non_exhaustive] + struct struct_with_future_fields { + field: u32 + } + diff --git a/_sources/concurrency.rst.txt b/_sources/concurrency.rst.txt new file mode 100644 index 00000000..aa6a0f8a --- /dev/null +++ b/_sources/concurrency.rst.txt @@ -0,0 +1,145 @@ +.. SPDX-License-Identifier: MIT OR Apache-2.0 + SPDX-FileCopyrightText: The Ferrocene Developers + +.. default-domain:: spec + +.. _fls_3v733mnewssy: + +Concurrency +=========== + +:dp:`fls_opt7v0mopxc8` +The Rust programming language provides features for concurrent programming +without :t:`[data race]s`, whose rules are presented in this chapter. + +.. rubric:: Legality Rules + +:dp:`fls_tx4b8r6i93n4` +A :t:`data race` is a scenario where two or more threads access a shared memory +location concurrently without any synchronization, where one of the accesses is +a modification. + +.. rubric:: Undefined Behavior + +:dp:`fls_isypweqewe78` +It is undefined behavior if two or more threads engage in a :t:`data race`. + +.. _fls_eiw4by8z75di: + +Send and Sync +------------- + +.. rubric:: Legality Rules + +:dp:`fls_n5l17mlglq11` +The Rust programming language provides the :std:`core::marker::Send` and +:std:`core::marker::Sync` :t:`[trait]s` for preventing data races at the +:t:`type` level. + +:dp:`fls_2jujsujpjp3w` +A :t:`send type` is a :t:`type` that implements the :std:`core::marker::Send` +:t:`trait`. + +:dp:`fls_cax6fe4em23k` +An :t:`abstract data type` automatically implements the +:std:`core::marker::Send` :t:`trait` if the :t:`[type]s` of all its +:t:`[field]s` are :t:`[send type]s`. + +:dp:`fls_4ypqdehn7b0v` +A :t:`send type` shall have :t:`[value]s` that are safe to transfer across +thread boundaries. + +:dp:`fls_dekskhk4g895` +A :t:`sync type` is a :t:`type` that implements the :std:`core::marker::Sync` +:t:`trait`. + +:dp:`fls_y0iqr5ibnbfe` +An :t:`abstract data type` automatically implements the +:std:`core::marker::Sync` :t:`trait` if the :t:`[type]s` of all its +:t:`[field]s` are :t:`[sync type]s`. + +:dp:`fls_zgemofbs5q2x` +A :t:`sync type` shall have :t:`[value]s` that are allowed to be shared across +multiple threads at any given time without incurring data races. + +.. _fls_vyc9vcuamlph: + +Atomics +------- + +.. rubric:: Legality Rules + +:dp:`fls_3pjla9s93mhd` +An :t:`atomic type` is a :t:`type` defined in :t:`module` +:std:`core::sync::atomic`. :t:`[Atomic type]s` provide primitive shared-memory +communication between threads. + +:dp:`fls_wn4ynaio8u47` +:t:`[Atomic type]s` are related to :t:`[type]s` as follows: + +.. list-table:: + + * - :dp:`fls_q7mn6pdd8bix` + - **Type** + - **Atomic Type** + * - :dp:`fls_jx0784jzxy00` + - :c:`bool` + - :std:`core::sync::atomic::AtomicBool` + * - :dp:`fls_vzuwnpx7mt08` + - :c:`i8` + - :std:`core::sync::atomic::AtomicI8` + * - :dp:`fls_cpcd0vexfbhj` + - :c:`i16` + - :std:`core::sync::atomic::AtomicI16` + * - :dp:`fls_jt7rfq9atbiv` + - :c:`i32` + - :std:`core::sync::atomic::AtomicI32` + * - :dp:`fls_2hqmfwswc6k` + - :c:`i64` + - :std:`core::sync::atomic::AtomicI64` + * - :dp:`fls_5ab2sw3gwmt3` + - :c:`isize` + - :std:`core::sync::atomic::AtomicIsize` + * - :dp:`fls_w2mw833g28eb` + - ``*mut T`` + - :std:`core::sync::atomic::AtomicPtr` + * - :dp:`fls_mjq1l1y0vmz4` + - :c:`u8` + - :std:`core::sync::atomic::AtomicU8` + * - :dp:`fls_906978wtss6n` + - :c:`u16` + - :std:`core::sync::atomic::AtomicU16` + * - :dp:`fls_4urmnh4mfehl` + - :c:`u32` + - :std:`core::sync::atomic::AtomicU32` + * - :dp:`fls_2qkrcd5eovpe` + - :c:`u64` + - :std:`core::sync::atomic::AtomicU64` + * - :dp:`fls_cry1e78gp19q` + - :c:`usize` + - :std:`core::sync::atomic::AtomicUsize` + +.. _fls_mtuwzinpfvkl: + +Asynchronous Computation +------------------------ + +.. rubric:: Legality Rules + +:dp:`fls_g40xp4andj5g` +The Rust programming language provides asynchronous computation through +:t:`module` :std:`core::task` and the :std:`core::future::Future` :t:`trait`. + +:dp:`fls_fte085hi1yqj` +A :t:`future` represents a :t:`value` of a :t:`type` that implements the +:std:`core::future::Future` :t:`trait` which may not have finished computing +yet. + +:dp:`fls_7muubin2wn1v` +The computed :t:`value` of a :t:`future` is obtained by using an +:t:`await expression` or by invoking :std:`core::future::Future::poll`. + +:dp:`fls_ftzey2156ha` +:std:`core::future::Future::poll` shall not be invoked on a :t:`future` that has +already returned :std:`core::task::Poll::Ready`. + diff --git a/_sources/entities-and-resolution.rst.txt b/_sources/entities-and-resolution.rst.txt new file mode 100644 index 00000000..5307db6b --- /dev/null +++ b/_sources/entities-and-resolution.rst.txt @@ -0,0 +1,1860 @@ +.. SPDX-License-Identifier: MIT OR Apache-2.0 + SPDX-FileCopyrightText: The Ferrocene Developers + +.. default-domain:: spec + +.. _fls_gdeyap4or1db: + +Entities and Resolution +======================= + +.. _fls_151r19d7xbgz: + +Entities +-------- + +.. rubric:: Syntax + +.. syntax:: + + Name ::= + Identifier + +.. rubric:: Legality Rules + +:dp:`fls_x7j6wcigqt7u` +An :t:`entity` is a :t:`construct` that can be referred to within program text, +usually via a :t:`field access expression` or a :t:`path`. + +:dp:`fls_40d2g0hvq2il` +A :t:`name` is an :t:`identifier` that refers to an :t:`entity`. + +:dp:`fls_lcca91wjwnpx` +A :t:`declaration` is a :t:`construct` that introduces a :t:`name` for an +:t:`entity`. + +:dp:`fls_94l2d7ti0hjw` +An :t:`explicitly declared entity` is an :t:`entity` that has a +:t:`declaration`. The following :t:`entities ` are +:t:`explicitly declared entities `: + +* :dp:`fls_kvdqmo8gmdxi` + :t:`[Associated item]s`, + +* :dp:`fls_b3cdg74utyvo` + :t:`[Binding]s`, + +* :dp:`fls_njcmeqxzvfsa` + :t:`[Constant]s`, + +* :dp:`fls_63ul8sgf6dgr` + :t:`[Declarative macro]s`, + +* :dp:`fls_6hxf0rn9j1sr` + :t:`[Enum type]s`, + +* :dp:`fls_2qitjk5ssaau` + :t:`[Enum variant]s`, + +* :dp:`fls_4li2c5qc31c7` + :t:`[Field]s`, + +* :dp:`fls_nq8n7w2s3bja` + :t:`[Function]s`, + +* :dp:`fls_jv7qi34flit0` + :t:`[Generic parameter]s`, + +* :dp:`fls_rutlgmzh3tnz` + :t:`[Implementation]s`, + +* :dp:`fls_1owx5ch7sidm` + :t:`[Label]s`, + +* :dp:`fls_8ldy7lec9bcd` + :t:`[Module]s`, + +* :dp:`fls_3mt2p4ssqt0a` + :t:`[Static]s`, + +* :dp:`fls_qqwu3e98lktb` + :t:`[Struct type]s`, + +* :dp:`fls_fup6984lxdfy` + :t:`[Trait]s`, + +* :dp:`fls_ji9iem1c7ekq` + :t:`[Type alias]es`, + +* :dp:`fls_v7w8ptbyxv9w` + :t:`[Union type]s`. + +:dp:`fls_ig1l38gpy5gy` +An :t:`implicitly declared entity` is an :t:`entity` that lacks an explicit +:t:`declaration`. The following :t:`entities ` are +:t:`implicitly declared entities `: + +* :dp:`fls_ed0t6u7fo3fi` + :t:`[Built-in attribute]s`. + +* :dp:`fls_gjps01c8l6aa` + :t:`Language prelude` :t:`entities `. + +.. _fls_jdknpu3kf865: + +Visibility +---------- + +.. rubric:: Syntax + +.. syntax:: + + VisibilityModifier ::= + CratePublicModifier + | SelfPublicModifier + | SimplePathPublicModifier + | SimplePublicModifier + | SuperPublicModifier + + CratePublicModifier ::= + $$pub$$ $$($$ $$crate$$ $$)$$ + + SelfPublicModifier ::= + $$pub$$ $$($$ $$self$$ $$)$$ + + SimplePathPublicModifier ::= + $$pub$$ $$($$ $$in$$ SimplePath $$)$$ + + SimplePublicModifier ::= + $$pub$$ + + SuperPublicModifier ::= + $$pub$$ $$($$ $$super$$ $$)$$ + +.. rubric:: Legality Rules + +:dp:`fls_7kpepal8ghuj` +:t:`Visibility` is a property of :t:`[field]s` and :t:`[item]s` that determines +which :t:`[module]s` can refer to the :t:`name` of the :t:`field` or :t:`item`. + +:dp:`fls_qo0itr5il1kk` +:t:`Public visibility` is a kind of :t:`visibility` that allows for a :t:`name` +to be referred to from arbitrary :t:`module` ``M`` as long as the ancestor +:t:`[module]s` of the related :t:`entity` can be referred to from ``M``. + +:dp:`fls_knjruq5wppv` +:t:`Private visibility` is a kind of :t:`visibility` that allows a :t:`name` +to be referred to only by the current :t:`module` of the :t:`entity`, and its +descendant :t:`[module]s`. + +:dp:`fls_t7i4n19qdgn4` +A :t:`visibility modifier` sets the :t:`visibility` of a :t:`name`. + +:dp:`fls_aa4f3rvir9lm` +A :t:`crate public modifier` is a :t:`visibility modifier` that grants a +:t:`name` :t:`public visibility` within the current :t:`crate` only. + +:dp:`fls_tnh7o3pb4e22` +A :t:`self public modifier` is a :t:`visibility modifier` that grants a +:t:`name` :t:`private visibility`. A :t:`self public modifier` is equivalent +to a :t:`simple path public modifier` where the :t:`simple path` denotes +:t:`keyword` ``self``. + +:dp:`fls_yymgpyi67dty` +A :t:`simple path public modifier` is a :t:`visibility modifier` that grants a +:t:`name` :t:`public visibility` within the provided :t:`simple path` only. + +:dp:`fls_hc121mxknq03` +The :t:`simple path` of a :t:`simple path public modifier` shall start +with a :t:`path segment` expressed by either :t:`keyword` ``crate``, +:t:`keyword` ``self``, or :t:`keyword` ``super``. + +:dp:`fls_icztzxjpm1du` +The :t:`simple path` of a :t:`simple path public modifier` shall resolve to +an ancestor :t:`module` of the current :t:`module` or the current :t:`module` +itself. + +:dp:`fls_np8aghofjqhm` +A :t:`simple public modifier` is a :t:`visibility modifier` that grants a +:t:`name` :t:`public visibility`. + +:dp:`fls_quzvhzpr0124` +A :t:`super public modifier` is a :t:`visibility modifier` that grants a +:t:`name` :t:`public visibility` within the parent :t:`module` only. A +:t:`super public modifier` is equivalent to a :t:`simple path public modifier` +where the :t:`simple path` denotes :t:`keyword` ``super``. + +:dp:`fls_utgjx6l5zwfl` +An external :t:`item`, a :t:`field`, or an :t:`item` that appears without a +:t:`visibility modifier` has :t:`private visibility` by default. + +:dp:`fls_jifg2st5bfd6` +An :t:`associated item` of a :t:`trait` has the same :t:`visibility` as the +:t:`trait`. + +:dp:`fls_dm0xr424ine1` +An :t:`enum variant` and its :t:`[field]s` have the same :t:`visibility` as the +containing :t:`enum type`. + +.. rubric:: Examples + +.. code-block:: rust + + pub mod outer_module { + pub mod inner_module { + pub(crate) fn crate_visible_function() {} + + pub(self) fn inner_module_visible_function() {} + + pub(super) fn outer_module_visible_function() {} + + pub fn visible_function() {} + + fn caller() { + crate_visible_function(); + inner_module_visible_function(); + visible_function(); + } + } + + fn caller() { + inner_module::crate_visible_function(); + inner_module::outer_module_visible_function(); + inner_module::visible_function(); + } + } + + fn caller() { + outer_module::inner_module::crate_visible_function(); + outer_module::inner_module::visible_function(); + } + +.. _fls_9i5msiuuyihf: + +Paths +----- + +.. rubric:: Syntax + +.. syntax:: + + SimplePath ::= + $$::$$? SimplePathSegment ($$::$$ SimplePathSegment)* + + SimplePathSegment ::= + Identifier + | $$crate$$ + | $$$crate$$ + | $$self$$ + | $$super$$ + + SimplePathList ::= + SimplePath ($$,$$ SimplePath)* $$,$$? + + QualifiedType ::= + $$<$$ TypeSpecification QualifyingTrait? $$>$$ + + QualifyingTrait ::= + $$as$$ TypePath + + UnqualifiedPathExpression ::= + $$::$$? PathExpressionSegment ($$::$$ PathExpressionSegment)* + + PathExpressionSegment ::= + PathSegment ($$::$$ GenericArgumentList)? + + PathSegment ::= + SimplePathSegment + | $$Self$$ + + QualifiedPathExpression ::= + QualifiedType ($$::$$ PathExpressionSegment)+ + + TypePath ::= + $$::$$? TypePathSegment ($$::$$ TypePathSegment)* + + TypePathSegment ::= + PathSegment $$::$$? (GenericArgumentList | QualifiedFnTrait)? + + QualifiedFnTrait ::= + $$($$ TypeSpecificationList? $$)$$ ReturnType? + + QualifiedTypePath ::= + QualifiedType ($$::$$ TypePathSegment)+ + +.. rubric:: Legality Rules + +:dp:`fls_klcltwcwrw6i` +A :t:`path` is a sequence of :t:`[path segment]s` logically separated by +:t:`namespace qualifier` ``::`` that resolves to an :t:`entity`. + +:dp:`fls_y1z7kougmahd` +A :t:`path segment` is an element of a :t:`path`. + +:dp:`fls_8q8nqfpSz7Ly` +A :t:`path` is subject to :t:`path resolution`. + +:dp:`fls_opn5n5t2mo3m` +If a :t:`path segment` is expressed as either :t:`keyword` ``crate``, +:t:`keyword` ``$crate``, :t:`keyword` ``self``, or :t:`keyword` ``Self``, then +the :t:`path segment` shall be the first :t:`path segment` of a :t:`path`. + +:dp:`fls_774uryecc2sx` +A :t:`path` that starts with a :t:`path segment` that is expressed as +:t:`keyword` ``$crate`` shall appear only within a :t:`macro transcriber`. + +:dp:`fls_7k88ypcgaoff` +If a :t:`path segment` is expressed as :t:`keyword` ``super``, then the +:t:`path segment` shall either be the first :t:`path segment` of a :t:`path`, +or the previous :t:`path segment` of the :t:`path` shall also be expressed as +:t:`keyword` ``super``. + +:dp:`fls_7kb6ltajgiou` +A :t:`global path` is a :t:`path` that starts with :t:`namespace qualifier` +``::``. + +:dp:`fls_n77icl6idazp` +A :t:`simple path` is a :t:`path` whose :t:`[path segment]s` consist of either +:t:`[identifier]s` or certain :t:`[keyword]s` as defined in the syntax rules +above. + +:dp:`fls_YnUsdSM4x9eq` +A :dt:`path prefix` is a :t:`path` with its last :t:`path segment` and +:t:`namespace qualifier` ``::`` stripped. + +:dp:`fls_iuzvtr3oax1o` +If a :t:`simple path` appears in a :t:`use import` and starts with a +:t:`path segment` expressed as either :t:`keyword` ``crate``, :t:`keyword` +``$crate``, :t:`keyword` ``self``, or :t:`keyword` ``super``, then the +:t:`path` shall be the :t:`simple path prefix` of a :t:`glob import` or a +:t:`nesting import`, or the :t:`simple path` of a :t:`simple import`. + +:dp:`fls_cw006jhlboa` +If a :t:`simple path` appears in a :t:`use import` and starts with a +:t:`path segment` expressed as :t:`keyword` ``self``, then the :t:`path` shall +be part of the :s:`UseImportContent` of a :t:`nesting import` as long as the +:t:`path` is a :t:`single segment path`. + +:dp:`fls_kv5bpq8rf1j9` +A :t:`simple path` is subject to :t:`simple path resolution`. + +:dp:`fls_chtj3hcfe3ap` +A :t:`single segment path` is a :t:`path` consisting of exactly one +:t:`path segment`. + +:dp:`fls_wm61yeclairz` +A :t:`multi segment path` is a :t:`path` consisting of more than one +:t:`path segment`. + +:dp:`fls_nRgjCLYZL3iX` +An :t:`unqualified path expression` is a :t:`path expression` without a :t:`qualified type`. + +:dp:`fls_tvvycup09b51` +A :t:`path expression` is subject to :t:`path expression resolution`. + +:dp:`fls_h2zikgmazoxx` +A :t:`type path` is a :t:`path` that acts as a :t:`type specification`. + +:dp:`fls_nj7s6xmzx55f` +A :t:`type path` is subject to :t:`type path resolution`. + +:dp:`fls_e65q3iz50j6a` +A :t:`qualifying trait` is a :t:`trait` that imposes a restriction on a +:t:`qualified type`. + +:dp:`fls_Ai1jN5a8h3Dz` +A :t:`qualifying trait` shall resolve to a :t:`trait`. + +:dp:`fls_ybv0tdu7dnj5` +A :t:`qualified type` is a :t:`type` that is restricted to a set of +:t:`[implementation]s` that exhibit :t:`implementation conformance` to a +:t:`qualifying trait`. + +:dp:`fls_qkYF2J7GVah8` +A :t:`qualified type` shall resolve to a :t:`type`. + +:dp:`fls_QjNQbQhUcRTT` +A :t:`qualified type` shall implement its related :t:`qualifying trait`. + +:dp:`fls_7sm3206va03c` +A :t:`qualified path expression` is a :t:`path expression` that resolves +through a :t:`qualified type`. + +:dp:`fls_huynsyx13gsz` +A :t:`qualified type path` is a :t:`type path` that resolves through a +:t:`qualified type`. + +:dp:`fls_RZvIsApi4WQm` +An :t:`associated type projection` is a :t:`qualified type path` of the form +``::associated_type``, where ``type`` is a :t:`type`, ``trait`` +is a :t:`qualifying trait`, and ``associated type`` is an :t:`associated type`. + +:dp:`fls_f1ciozzetj5a` +A :dt:`qualified fn trait` is a :t:`construct` that refers to the +:std:`core::ops::Fn`, :std:`core::ops::FnMut`, or :std:`core::ops::FnOnce` +:t:`trait`. + +:dp:`fls_cy7vza3flqi9` +If a :t:`path` contains a :t:`path segment` with a :t:`qualified fn trait`, +then the :t:`path segment` shall be the last :t:`path segment` of the +:t:`path`. + +.. rubric:: Examples + +:dp:`fls_cul31g1kkz5c` +The following is a simple path. See :p:`14.2. ` for the +declaration of ``crate_visible_function``. + +.. code-block:: rust + + crate::outer_module::inner_module::crate_visible_function(); + +:dp:`fls_no853u27p4f3` +The following is an :t:`unqualified path expression`` with a generic argument. + +.. code-block:: rust + + Vec::::with_capacity(42); + +:dp:`fls_28c21rzc6rsp` +The following is a type path with a generic argument. + +.. code-block:: rust + + std::boxed::Box size>; + + struct S; + impl S { + fn f() { println!("f of S"); } + } + trait T { + fn f() { println!("f of T"); } + } + impl T for S {} + +:dp:`fls_4s2n95h4rd1q` +The following is a :t:`qualified path expression`. The :t:`call expression` +invokes the :t:`associated function` of ``S``'s :t:`trait implementation` of +:t:`trait` ``T``. + +.. code-block:: rust + + ::f(); + +:dp:`fls_ojdntg5i79pb` +The following is a :t:`qualified type path`. It resolves to the :t:`associated +type` of ``S``'s :t:`trait implementation` of :t:`trait` ``T``. + +.. code-block:: rust + + type T = ::Assoc; + + +.. _fls_izl8iuhoz9e0: + +Scopes +------ + +.. rubric:: Legality Rules + +:dp:`fls_5x5xykocwyiy` +A :t:`scope` is a region of program text where an :t:`entity` can be referred +to. An :t:`entity` is :t:`in scope` when it can be referred to. + +.. _fls_6ozthochxz1i: + +Binding Scopes +~~~~~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_ncg9etb3x7k0` +A :t:`binding scope` is a :t:`scope` for :t:`[binding]s`. + +:dp:`fls_u52mx4xw8zod` +The :t:`binding` of a :t:`closure parameter` is :t:`in scope` within the +related :t:`closure body`. + +:dp:`fls_t9mk8kasobea` +The :t:`binding` of a :t:`function parameter` is :t:`in scope` within the +related :t:`function body`. + +:dp:`fls_h9cvs854ae34` +The :t:`binding` of a :t:`for loop` or a :t:`while let loop` is :t:`in scope` +within the related :t:`loop body`. + +:dp:`fls_vl1qk0odouyb` +The :t:`binding` of an :t:`if let expression` is :t:`in scope` within the +related :t:`block expression`. + +:dp:`fls_74nk389rk075` +The :t:`binding` of a :t:`let statement` is :t:`in scope` after the related +:t:`let statement`, until the end of the :t:`block expression` where the +related :t:`let statement` appears. + +:dp:`fls_xbnki64un70v` +The :t:`binding` of a :t:`match arm` is :t:`in scope` within its related +:t:`[expression]s` and related :t:`match arm guard`. + +.. _fls_ftphlagzd2te: + +Generic Parameter Scope +~~~~~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_amoh8r4gghyj` +A :t:`generic parameter scope` is a :t:`scope` for :t:`[generic parameter]s`. + +:dp:`fls_6o38qhbna46z` +A :t:`generic parameter` is :t:`in scope` of a :s:`GenericParameterList`. + +:dp:`fls_jqevvpndxzdz` +A :t:`generic parameter` of an :t:`enum type` is :t:`in scope` within the +related :t:`[enum variant]s` and :t:`where clause`. + +:dp:`fls_t9ztg017itkp` +A :t:`generic parameter` of a :t:`function pointer type` is :t:`in scope` +within the related :t:`type specification`. + +:dp:`fls_pmo939jw9m1m` +A :t:`generic parameter` of an :t:`implementation` is :t:`in scope` within the +related :t:`implementation body` and :t:`where clause`. + +:dp:`fls_67dtv1z3arbl` +A :t:`generic parameter` of a :t:`struct type` is :t:`in scope` within the +related :t:`[field]s` and :t:`where clause`. + +:dp:`fls_y8j4isk9libl` +A :t:`generic parameter` of a :t:`trait` is :t:`in scope` within the related +:t:`trait body` and :t:`where clause`. + +:dp:`fls_ow5ih7q3xxfx` +A :t:`generic parameter` of a :t:`trait bound` is :t:`in scope` within the +related :t:`[generic parameter]s` or the related :t:`type path`. + +:dp:`fls_h9rpwxpz72v0` +A :t:`generic parameter` of a :t:`type alias` is :t:`in scope` within the +related :t:`initialization type` and :t:`where clause`. + +:dp:`fls_3qm3vh97bvpb` +A :t:`generic parameter` of a :t:`type bound predicate` is :t:`in scope` within +the related :s:`TypeBoundList`. + +:dp:`fls_xuxbpv5b2ym9` +A :t:`generic parameter` of a :t:`union type` is :t:`in scope` within the +related :t:`[field]s` and :t:`where clause`. + +:dp:`fls_95z5mytvfjia` +A :t:`generic parameter` is not :t:`in scope` within nested :t:`[item]s`, +except within :t:`[associated item]s`. + +.. _fls_m0z7omni9hp0: + +Item Scope +~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_p5o243hhe1y3` +An :t:`item scope` is a :t:`scope` for :t:`[item]s`. + +:dp:`fls_huvo0mp2i6fb` +An :t:`item` declared within the :t:`block expression` of an +:t:`expression-with-block` is :t:`in scope` within the related +:t:`block expression`. + +:dp:`fls_x8r0oppuc1t6` +An :t:`item` declared within a :t:`module` is :t:`in scope` within the +related :t:`module`. Such an :t:`item` is not :t:`in scope` within nested +:t:`[module]s`. + +.. _fls_769b4p8v3cwu: + +Label Scope +~~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_96kczd4zhpco` +A :t:`label scope` is a :t:`scope` for :t:`[label]s`. + +:dp:`fls_8sevg1sa82h4` +A :t:`label` is :t:`in scope` within the :t:`block expression` of the related +:t:`loop expression`. + +:dp:`fls_ep5smja1rxdv` +A :t:`label` is not :t:`in scope` within nested :t:`[async block]s`, +:t:`[closure expression]s`, :t:`[constant context]s`, and :t:`[item]s`. + +.. _fls_kgbi26212eof: + +Self Scope +~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_kgt81m4f72ne` +A :t:`Self scope` is a :t:`scope` for :c:`Self`. + +:dp:`fls_kxdwq4b136tl` +:c:`Self` of an :t:`enum type` is :t:`in scope` within the related +:t:`[enum variant]s`, :t:`[generic parameter]s`, and :t:`where clause`. + +:dp:`fls_nf4g82gi12ij` +:c:`Self` of an :t:`implementation` is :t:`in scope` within the related +:t:`[generic parameter]s`, :t:`implementation body`, and :t:`where clause`. + +:dp:`fls_dy4gyepebe7b` +:c:`Self` of a :t:`struct type` is :t:`in scope` within the related +:t:`[field]s`, :t:`[generic parameter]s`, and :t:`where clause`. + +:dp:`fls_cha4ddwfqwvj` +:c:`Self` of a :t:`trait` is :t:`in scope` within the related +:t:`[generic parameter]s`, :t:`trait body`, and :t:`where clause`. + +:dp:`fls_ql4i021ut2n8` +:c:`Self` of a :t:`union type` is :t:`in scope` within the related +:t:`[field]s`, :t:`[generic parameter]s`, and :t:`where clause`. + +:dp:`fls_mj9vlxnf44oi` +:c:`Self` is not :t:`in scope` within :t:`[attribute]s`. + +.. _fls_octf6sf7yso: + +Textual Macro Scope +~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_xkh8cqubhxad` +A :t:`textual macro scope` is a :t:`scope` for :t:`[declarative macro]s`. + +:dp:`fls_iec3otx863yp` +A :t:`declarative macro` is :t:`in scope` after the related :t:`macro` +declaration, until the end of the :t:`block expression` or the enclosing +:t:`module` where the :t:`macro` declaration appears. + +:dp:`fls_cbfuh9y87y6i` +If the :t:`textual macro scope` is introduced by a :t:`module` and the +:t:`module` is subject to :t:`attribute` :c:`macro_use`, then the +:t:`textual macro scope` extends until the end of the :t:`scope` introduced by +the enclosing :t:`block expression` or :t:`module`. + +.. _fls_lnpyb285qdiy: + +Scope Hierarchy +~~~~~~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_4o7vfo6v39l7` +The :t:`scope hierarchy` reflects the nesting of :t:`[scope]s` as introduced +by :t:`[scoping construct]s`. An inner :t:`scope` introduced by a nested +:t:`scoping construct` is the child of an outer :t:`scope` introduced by an +enclosing :t:`scoping construct`. + +:dp:`fls_ns4eog3od4kw` +A :dt:`scoping construct` is a :t:`construct` that introduces :t:`[scope]s` +into the :t:`scope hierarchy`. The following :t:`[construct]s` are +:t:`[scoping construct]s`: + +* :dp:`fls_kqmykyzdb1k6` + :t:`[Block expression]s`, + +* :dp:`fls_g86d5v14sxxv` + :t:`[Closure expression]s`, + +* :dp:`fls_ldwencd8zp9a` + :t:`[Declarative macro]s`, + +* :dp:`fls_jz7hgkvocc9r` + :t:`Enum type` :t:`[declaration]s`, + +* :dp:`fls_p4g8sxba7at9` + :t:`Function` :t:`[declaration]s`, + +* :dp:`fls_d1cp5pt5wn0z` + :t:`Function pointer type` :t:`specifications `, + +* :dp:`fls_ibmm8y748z4` + :t:`[If let expression]s`, + +* :dp:`fls_39011vsy2vxx` + :t:`Implementation` :t:`[declaration]s`, + +* :dp:`fls_m81hyd154yun` + :t:`[Let statement]s`, + +* :dp:`fls_fvgzmsaox4z3` + :t:`[Loop expression]s`, + +* :dp:`fls_rj8uld11o1br` + :t:`[Match arm]s`, + +* :dp:`fls_hyp4dnpqe620` + :t:`Module` :t:`[declaration]s`, + +* :dp:`fls_zgied4qysk2a` + :t:`Struct type` :t:`[declaration]s`, + +* :dp:`fls_cn6dzmrxdp1w` + :t:`[Trait bound]s`, + +* :dp:`fls_9n7m0tv7w2np` + :t:`Trait` :t:`[declaration]s`, + +* :dp:`fls_sj2ivbf2l2dp` + :t:`Type alias` :t:`[declaration]s`, + +* :dp:`fls_cejfio3ddy0j` + :t:`[Type bound predicate]s`, + +* :dp:`fls_j3rot386teec` + :t:`Union type` :t:`[declaration]s`. + +:dp:`fls_nuobrpnymym1` +A :t:`closure expression` introduces a :t:`binding scope` into the +:t:`scope hierarchy`. + +:dp:`fls_r0x9sw7dwnww` +A :t:`declarative macro` introduces a :t:`textual macro scope` into the +:t:`scope hierarchy`. + +:dp:`fls_ve7svuy7xvh0` +The :t:`declaration` of an :t:`enum type` introduces a +:t:`generic parameter scope` and a :t:`Self scope` into the +:t:`scope hierarchy`. + +:dp:`fls_pvfqhtts3qsa` +The :t:`declaration` of a :t:`function` introduces a :t:`binding scope` and a +:t:`generic parameter scope` into the :t:`scope hierarchy`. + +:dp:`fls_9k9hourczbv7` +The :t:`type specification` of a :t:`function pointer type` introduces a +:t:`generic parameter scope` into the :t:`scope hierarchy`. + +:dp:`fls_p6wiuhkeypzs` +An :t:`if let expression` introduces a :t:`binding scope` into the +:t:`scope hierarchy`. + +:dp:`fls_34usianesmf6` +The :t:`declaration` of an :t:`implementation` introduces a +:t:`generic parameter scope` and a :t:`Self scope` into the +:t:`scope hierarchy`. + +:dp:`fls_n1a41d8i0rot` +A :t:`let statement` introduces a :t:`binding scope` into the +:t:`scope hierarchy`. + +:dp:`fls_amhi3d9dd3i3` +A :t:`for loop expression` or a :t:`while let loop expression` introduces a +:t:`binding scope` and a :t:`label scope` into the :t:`scope hierarchy`. + +:dp:`fls_nu8xj3vza55j` +An :t:`infinite loop expression` or a :t:`while loop expression` introduces a +:t:`label scope` into the :t:`scope hierarchy`. + +:dp:`fls_fiyj50u6cg2n` +A :t:`match arm` introduces a :t:`binding scope` into the +:t:`scope hierarchy`. + +:dp:`fls_azjx3y5yezoi` +The :t:`declaration` of a :t:`module` introduces an :t:`item scope` into the +:t:`scope hierarchy`. + +:dp:`fls_puly43s4x360` +The :t:`declaration` of a :t:`struct type` introduces a +:t:`generic parameter scope` and a :t:`Self scope` into the +:t:`scope hierarchy`. + +:dp:`fls_pxtlu7ud6w2h` +The :t:`declaration` of a :t:`trait` introduces a :t:`generic parameter scope` +and a :t:`Self scope` into the :t:`scope hierarchy`. + +:dp:`fls_ddxxt11u0yal` +A :t:`trait bound` introduces a :t:`generic parameter scope` into the +:t:`scope hierarchy`. + +:dp:`fls_qofr9vme46wp` +The :t:`declaration` of a :t:`type alias` introduces a +:t:`generic parameter scope`. + +:dp:`fls_gjvfty9m84a9` +A :t:`type bound predicate` introduces a :t:`generic parameter scope` into the +:t:`scope hierarchy`. + +:dp:`fls_xr9wors6oa7w` +The :t:`declaration` of a :t:`union type` introduces a +:t:`generic parameter scope` and a :t:`Self scope` into the +:t:`scope hierarchy`. + +.. _fls_dq403wq5yrs: + +Namespaces +---------- + +.. rubric:: Legality Rules + +:dp:`fls_1d4jm61qnt4l` +A :t:`namespace` is a logical grouping of :t:`[name]s` such that the occurrence +of a :t:`name` in one :t:`namespace` does not conflict with an occurrence of +the same :t:`name` in another :t:`namespace`. + +:dp:`fls_avsua7bho205` +:t:`[Name]s` are segregated into one of five :t:`[namespace]s` based on the +kind of :t:`entity` the :t:`name` refers to. + +:dp:`fls_9e3xeza853wx` +A :dt:`label namespace` contains :t:`[label]s`. + +:dp:`fls_w625tk3ogdui` +A :dt:`lifetime namespace` contains the :t:`[name]s` of +:t:`[lifetime parameter]s`. + +:dp:`fls_crwfafrmydr7` +A :dt:`macro namespace` contains the :t:`[name]s` of the following kinds of +:t:`entities `: + +* :dp:`fls_t8fcpm8ldv1y` + :t:`[Attribute macro]s`, + +* :dp:`fls_7pkex797rkeu` + :t:`[Built-in attribute]s`, + +* :dp:`fls_v32f2evgqt5q` + :t:`[Declarative macro]s`, + +* :dp:`fls_f6yrzwu6yi30` + :t:`[Derive macro]s`, + +* :dp:`fls_nk0swexy2ztm` + :t:`[Function-like macro]s`. + +:dp:`fls_ckptn88o6lla` +A :dt:`type namespace` contains the :t:`[name]s` of the following kinds of +:t:`entities `: + +* :dp:`fls_3ma5v1fop98p` + :t:`[Associated type]s`, + +* :dp:`fls_nj7sep7ht7lg` + :c:`bool` :t:`[type]s`, + +* :dp:`fls_g8h6t5x6yprm` + :t:`[Enum type]s`, + +* :dp:`fls_2l1o7vqfr4m7` + :t:`[Enum variant]s`, + +* :dp:`fls_6q8rjv1jmu84` + :t:`[Module]s`, + +* :dp:`fls_lx2tx1jt8t3a` + :t:`[Numeric type]s`, + +* :dp:`fls_mo00df28t7c1` + :c:`Self`, + +* :dp:`fls_8o3izim4zf8t` + :t:`[Struct type]s`, + +* :dp:`fls_fweohszgbuj4` + :t:`[Textual type]s`, + +* :dp:`fls_ry02dzisxz3h` + :t:`[Trait]s`, + +* :dp:`fls_dcz1bxjjfsq` + :t:`[Type alias]es`, + +* :dp:`fls_wt9kgsi6n6ep` + :t:`[Type parameter]s`, + +* :dp:`fls_w29t5njbe46s` + :t:`[Union type]s`. + +:dp:`fls_u1533bngb0yv` +A :dt:`value namespace` contains the :t:`[name]s` of the following kinds of +:t:`entities `: + +* :dp:`fls_e8v4g45v5ry2` + :t:`[Associated constant]s`, + +* :dp:`fls_pq8bzav84q3z` + :t:`[Associated function]s`, + +* :dp:`fls_ttr6v8ca4av0` + :t:`[Binding]s`, + +* :dp:`fls_aivi97hhfxy2` + :t:`[Constant]s`, + +* :dp:`fls_pie4ltdtzkl3` + :t:`[Constant parameter]s`, + +* :dp:`fls_qmf7lk6h96sv` + :t:`Enum variant` constructors, + +* :dp:`fls_ufp3btk8pet5` + :t:`[Function]s`, + +* :dp:`fls_t3bnpkfazw4z` + :c:`Self` constructors, + +* :dp:`fls_y0shlli54n5y` + :t:`[Static]s`, + +* :dp:`fls_tghgxcju5u2t` + :t:`Struct` constructors. + +:dp:`fls_yesesxynpq6s` +The :t:`[name]s` of the following kinds of :t:`entities ` are not part +of any :t:`namespace`: + +* :dp:`fls_40o8y6exr3df` + :t:`[Enum field]s`, + +* :dp:`fls_y76o5ug7dtv` + :t:`[Struct field]s`, + +* :dp:`fls_3np518s1su4w` + :t:`[Union field]s`. + +.. _fls_ld0ize96cm6m: + +Preludes +-------- + +.. rubric:: Legality Rules + +:dp:`fls_po4gw6t2ptwu` +A :t:`prelude` is a collection of :t:`entities ` that are automatically +brought :t:`in scope` of every :t:`module` in a :t:`crate`. Such +:t:`entities ` are referred to as +:t:`prelude entities `. The :t:`name` of a :t:`prelude entity` +is referred to as a :t:`prelude name`. + +:dp:`fls_n4102qskkmz2` +The :dt:`core prelude` is a :t:`prelude` that brings :t:`in scope` of every +:t:`module` all re-exported :t:`entities ` from the +:std:`core::prelude::rust_2021` :t:`module`. + +:dp:`fls_atvnwly4w8g2` +An :dt:`external prelude` is a :t:`prelude` that brings :t:`in scope` of the +:t:`crate root module` the :t:`entities ` of the :t:`[crate]s` imported +using external :t:`[crate import]s` or supplied by a tool. If the external +:t:`crate import` uses a :t:`renaming`, then the :t:`identifier` of the +:t:`renaming` is instead added to the :t:`external prelude`. The core +:t:`crate` is always added to the :t:`external prelude` unless the :t:`crate +root` is subject to :t:`attribute` ``no_core``. + +:dp:`fls_pbc7ktlu0pl` +The :dt:`language prelude` is a :t:`prelude` that brings :t:`in scope` of every +:t:`module` the following :t:`entities `: + +* :dp:`fls_frjv68kqqxfh` + Boolean type :c:`bool`. + +* :dp:`fls_rf6a2ae3y7vu` + :t:`[Built-in attribute]s`. + +* :dp:`fls_sxnnkzmuvexa` + :t:`[Floating-point type]s` :c:`f32` and :c:`f64`. + +* :dp:`fls_qsyorqjkdh2t` + :t:`[Integer type]s` :c:`i8`, :c:`i16`, :c:`i32`, :c:`i64`, :c:`i128`, + :c:`isize`, :c:`u8`, :c:`u16`, :c:`u32`, :c:`u64`, :c:`u128`, and :c:`usize`. + +* :dp:`fls_aolj6abvp9sa` + :t:`[Textual type]s` :c:`char` and :c:`str`. + +:dp:`fls_of4n3vv15l5z` +The :dt:`macro_use prelude` is a :t:`prelude` that brings :t:`in scope` of the +:t:`crate root module` the :t:`entities ` of :t:`[macro]s` from +external :t:`[crate]s` that were imported using an external :t:`crate import`. + +.. _fls_9gprp17h6t1q: + +Use Imports +----------- + +.. rubric:: Syntax + +.. syntax:: + + UseImport ::= + $$use$$ UseImportContent $$;$$ + + UseImportContent ::= + GlobImport + | NestingImport + | SimpleImport + + GlobImport ::= + SimplePathPrefix? $$*$$ + + NestingImport ::= + SimplePathPrefix? $${$$ UseImportContentList? $$}$$ + + SimpleImport ::= + SimplePath Renaming? + + SimplePathPrefix ::= + SimplePath? $$::$$ + + UseImportContentList ::= + UseImportContent ($$,$$ UseImportContent)* $$,$$? + +.. rubric:: Legality Rules + +:dp:`fls_lyw4t098sxrj` +A :t:`use import` brings :t:`entities ` :t:`in scope` within the +:t:`block expression` of an :t:`expression-with-block` or :t:`module` where the +:t:`use import` resides. + +:dp:`fls_sxo1jb25pl8a` +A :t:`simple path prefix` is the leading :t:`simple path` of a :t:`glob import` +or a :t:`nesting import`. + +:dp:`fls_WAA4WmohGu6T` +An :dt:`import path prefix` is the fully constructed :t:`path` prefix of a +:t:`use import`. An :t:`import path prefix` for a given +:t:`simple import` or :t:`glob import` is constructed as follows: + +#. :dp:`fls_IPYvldMqduf4` + Start the :t:`import path prefix` as follows: + + * :dp:`fls_MOXId37fcNPY` + If the :t:`use import` is a :t:`simple import` then start with the + :t:`[path segment]s` of the :t:`simple import`'s :t:`simple path` + :t:`path prefix`. + + * :dp:`fls_2UyFcB6Our1v` + If the :t:`use import` is a :t:`glob import` then start with the + :t:`[path segment]s` of the :t:`glob import`'s :t:`simple path prefix`. + + * :dp:`fls_irdKqoYzBM0M` + If the :t:`use import` is a :t:`nesting import` then start with the + :t:`[path segment]s` of the :t:`nesting import`'s :t:`simple path prefix`. + +#. :dp:`fls_gAWsqibl4GLq` + Then if the current :t:`use import` is the child of a :t:`nesting import`, + prepend the :t:`nesting import`'s :t:`simple path prefix` to the + :t:`import path prefix`. Repeat this step with the :t:`nesting import` as + the current :t:`use import`. + +:dp:`fls_2bkcn83smy2y` +A :t:`simple import` is a :t:`use import` that brings all :t:`entities ` +it refers to into scope, optionally with a different +:t:`name` than they are declared with by using a :t:`renaming`. + +:dp:`fls_v3a6y2ze44v2` +A :t:`glob import` is a :t:`use import` that brings all :t:`entities ` +exported by the :t:`module` or :t:`enum` its :t:`import path prefix` resolves to +into :t:`scope`. + +:dp:`fls_JHU0ersYB6eL` +An :t:`import path prefix` shall resolve to a :t:`module` or :t:`enum`. + +:dp:`fls_jlNKxkuhsvX4` +A :t:`glob import` brings :t:`[name]s` into :t:`scope` as follows: + +* :dp:`fls_q0KFfNALMslq` + If the :t:`import path prefix` resolves to a :t:`module`, bring all + :t:`[name]s` in the :t:`module` that are visible from the location of the + :t:`glob import` into :t:`scope`. + +* :dp:`fls_Hy17LzOFGfOp` + If the :t:`import path prefix` resolves to an :t:`enum`, bring the + :t:`[name]s` of all of the :t:`enum`'s :t:`[enum variant]s` into :t:`scope`. + +:dp:`fls_90hQvSh7Bfyg` +A :dt:`simple import path` is the :t:`path` constructed by appending the last +:t:`path segment` of a :t:`simple import`'s :t:`simple path` to the +:t:`import path prefix`. + +:dp:`fls_wRmvtgQkFA6w` +A :t:`simple import` brings :t:`[name]s` into :t:`scope` as follows: + +* :dp:`fls_kz2Gij5wHXnl` + If the :t:`simple path` is keyword ``self`` and: + + * :dp:`fls_yY58pFpkig9o` + The :t:`simple import` is in a :t:`nesting import`, then bring the + :t:`entity` in :t:`type namespace` that the :t:`import path prefix` resolves + to into :t:`scope`. + + * :dp:`fls_ar03D5rxjzy0` + Otherwise bring the containing :t:`module` into :t:`scope`. + +* :dp:`fls_ce73bg0BqV1X` + Otherwise bring all :t:`entities ` that the :t:`simple import path` + resolves to that are visible from the location of the + :t:`simple import` into :t:`scope`. + +:dp:`fls_FILuR3pfwjw3` +An :t:`Entity` imported by a :t:`simple import` subject to a +:t:`renaming` with :t:`identifier` is brought into :t:`scope` under the +:t:`name` declared by the :t:`renaming`. + +:dp:`fls_iQOgxNihUEr7` +A :t:`trait` imported by a :t:`simple import` subject to a +:t:`renaming` with character underscore ``_`` is added into :t:`scope` without +a :t:`name`. + +:dp:`fls_ldr7tsuqw34s` +A :t:`nesting import` is a :t:`use import` that provides a common +:t:`simple path prefix` for its nested :t:`[use import]s`. + +:dp:`fls_iNUBX5fJAI1N` +A :t:`glob import` outside of a :t:`nesting import` without a :t:`simple path +prefix` is rejected, but may still be consumed by :t:`[macro]s`. + +:dp:`fls_RUiFQ17bmRLt` +A :t:`simple import` with a :t:`simple path` with a single :t:`path segment` of +keyword ``self`` shall be subject to the following: + +* :dp:`fls_hv3xT2CjZuxc` + It shall either appear in a :t:`nesting import` with a non-empty + :t:`import path prefix`, or + +* :dp:`fls_Pxc0Ts8Y7pfW` + It shall be subject to a :t:`renaming`. + +:dp:`fls_wB3fVglLOqbZ` +It is a static error if two :t:`[glob import]s` import the same :t:`name` in the +same :t:`namespace` but refer to different :t:`entities ` if the +:t:`name` is used or :t:`shadowed `. + +:dp:`fls_zmYSBW995kSN` +If two :t:`[glob import]s` import the same :t:`entity` under the same :t:`name`, +the :t:`visibility` of the :t:`name` is the most permissive one. + +.. rubric:: Examples + +:dp:`fls_5dlnffim6fso` +The following is a glob import. See :p:`14.2. ` +for the declaration of modules and functions. The imported functions +are ``create_visible_function``, ``outer_module_visible_function``, +``visible_function``. + +.. code-block:: rust + + use outer_module::inner_module::*; + +:dp:`fls_9rhflreuubhq` +The following is a renaming import. The imported function is +``visible_function`` under the name ``f``. + +.. code-block:: rust + + use outer_module::inner_module::visible_function as f; + +:dp:`fls_s86dgrdpl1w4` +The following is a selective import. The imported functions are +``crate_visible_function`` and ``visible_function``. + +.. code-block:: rust + + use outer_module::inner_module + {crate_visible_function, visible_function} + +.. rubric:: Legality Rules + +.. _fls_ydmnb7qnmzzq: + +Shadowing +--------- + +.. rubric:: Legality Rules + +:dp:`fls_ob0riinmitkl` +:t:`Shadowing` is a property of :t:`[name]s`. A :t:`name` is said to be +:t:`shadowed` when another :t:`name` with the same characters is introduced +in the same :t:`scope` within the same :t:`namespace`, effectively hiding it. +A :t:`name` cannot be referred to by any means once it is :t:`shadowed`. + +:dp:`fls_fslg89a70e3n` +No :t:`name` shall be :t:`shadowed` except for + +* :dp:`fls_hp3f4r3399kt` + :t:`[Prelude name]s`, + +* :dp:`fls_z8qjpskt13yq` + The :t:`[name]s` of :t:`[macro]s` within :t:`textual macro scope`, + +* :dp:`fls_i0gp1y38lr73` + The :t:`[name]s` of :t:`[variable]s`. + +:dp:`fls_7pif12rt4s4s` +A :t:`prelude name` shadows other :t:`[prelude name]s` depending on which +:t:`[prelude]s` are included in a :t:`module`. The order of shadowing is as +follows, where a later :t:`prelude name` shadows earlier :t:`prelude name`: + +#. :dp:`fls_are9qz67p7b6` + :t:`Language prelude` :t:`names `. + +#. :dp:`fls_4tis5syofyg0` + Standard library :t:`prelude` :t:`names `. + +#. :dp:`fls_u0tsnkhacr06` + :t:`macro_use prelude` :t:`names `. + +#. :dp:`fls_iaklf84guczc` + Tool :t:`prelude` :t:`names `. + +#. :dp:`fls_a0zovslu2v4u` + :t:`External prelude` :t:`names `. + +.. _fls_40xoego2thsp: + +Resolution +---------- + +.. rubric:: Legality Rules + +:dp:`fls_ho4kem1slcxg` +:t:`Resolution` is the process of finding a unique interpretation for a +:t:`field access expression`, a :t:`method call expression`, a :t:`call +expression` or a :t:`path`. + +:dp:`fls_7le2vcdbtxbq` +A :t:`construct` that is being resolved is said to be :t:`under resolution`. + +:dp:`fls_x3alg07yd7hx` +A :t:`dereference type` is either a :t:`reference type` or a :t:`type` that +implements the :std:`core::ops::Deref` :t:`trait`. + +:dp:`fls_4hulwazdu20i` +A :t:`dereference type chain` is a sequence of :t:`[dereference type]s`. A +:t:`dereference type chain` starts with an initial :t:`dereference type`. From +then on, the :t:`dereference type chain` continues as follows: + +* :dp:`fls_ptocwx5p25lj` + If the previous :t:`dereference type` is a :t:`reference type`, then the + :t:`dereference type chain` continues with the inner :t:`type` of the + previous :t:`dereference type`. + +* :dp:`fls_ygam5nisv98c` + Otherwise the :t:`dereference type chain` continues with :t:`type` + :std:`core::ops::Deref::Target` of the previous :t:`dereference type`. + +.. _fls_xcwfotmq2e5d: + +Field Resolution +~~~~~~~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_1nxknwjdp0am` +:t:`Field resolution` is a form of :t:`resolution` that applies to a +:t:`field access expression`. + +:dp:`fls_j1bip4w30q8` +A :dt:`candidate container type` is the :t:`type` of the :t:`container operand` +of a :t:`field access expression` :t:`under resolution`. + +:dp:`fls_jrk3gzqvqr8e` +A :dt:`candidate container type chain` is a sequence of +:t:`[candidate container type]s`. The :t:`candidate container type chain` +starts with the :t:`type` of the :t:`container operand` of the +:t:`field access expression` :t:`under resolution`. From then on, the +:t:`candidate container type chain` is treated as a +:t:`dereference type chain`. + +:dp:`fls_asn20qx16sr6` +A :dt:`candidate field` is a :t:`field` of a :t:`candidate container type` +that is visible from the location of the :t:`field access expression` +:t:`under resolution`. + +:dp:`fls_jzoon4x89zp7` +A :dt:`candidate indexed field` is a :t:`candidate field` whose position in the +:t:`type` of the :t:`container operand` matches the index of an +:t:`indexed field selector`. + +:dp:`fls_r80pixfoe5hk` +A :dt:`candidate named field` is a :t:`candidate field` whose :t:`name` matches +the characters of a :t:`named field selector`. + +:dp:`fls_40oa0j6aiop3` +:t:`Field resolution` of a :t:`field access expression` with an +:t:`indexed field selector` proceeds as follows: + +#. :dp:`fls_2bp1zs7qaz7o` + For each :t:`candidate container type` of the + :t:`candidate container type chain` + + #. :dp:`fls_s14fegwhwnc8` + Try to locate a :t:`candidate indexed field` of the + :t:`candidate container type`. + + #. :dp:`fls_tfjm27ydiake` + If such a :t:`candidate indexed field` exists and is visible at the point + of the :t:`field access expression`, then the :t:`field access expression` + resolves to that :t:`candidate indexed field` and :t:`field resolution` + stops. + +:dp:`fls_p6hgoqo0kcx` +:t:`Field resolution` of a :t:`field access expression` with a +:t:`named field selector` proceeds as follows: + +#. :dp:`fls_e7sj392ohvbd` + For each :t:`candidate container type` of the + :t:`candidate container type chain` + + #. :dp:`fls_z6qt9obbhhcg` + Try to locate a :t:`candidate named field` of the + :t:`candidate container type`. + + #. :dp:`fls_ljnjxex3u5o` + If such a :t:`candidate named field` exists and is visible at the point + of the :t:`field access expression`, then the :t:`field access expression` + resolves to that :t:`candidate named field` and :t:`field resolution` + stops. + +:dp:`fls_nm06mru40tyg` +A :t:`field access expression` shall resolve to exactly one :t:`field`. + +.. _fls_wqazkzle0ix9: + +Method Resolution +~~~~~~~~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_e5a5z5yht26l` +:t:`Method resolution` is a kind of :t:`resolution` that applies to a +:t:`method call expression`. + +:dp:`fls_mbdS0xiNlj92` +A :dt:`receiver type` is the :t:`type` of the :t:`receiver operand` +of a :t:`method call expression`. + +:dp:`fls_z80ylmlu1f3q` +A :dt:`candidate receiver type` is the :t:`type` of the :t:`receiver operand` +of a :t:`method call expression` :t:`under resolution`. + +:dp:`fls_e1029pvq706h` +A :dt:`candidate receiver type chain` is a sequence of +:t:`[candidate receiver type]s`. The :t:`candidate receiver type chain` starts +with the :t:`type` of the :t:`receiver operand` of the +:t:`method call expression` :t:`under resolution`. From then on, the +:t:`candidate receiver type chain` is treated as a :t:`dereference type chain`. + +:dp:`fls_w3ik83d43fr1` +A :dt:`candidate method` is a method of a :t:`candidate receiver type` that +is visible from the location of the :t:`method call expression` +:t:`under resolution`. + +:dp:`fls_pybv4krsvktv` +:t:`Method resolution` proceeds as follows: + +#. :dp:`fls_m2njj6no0p1i` + For each :t:`candidate receiver type` of the + :t:`candidate receiver type chain` + + #. :dp:`fls_16l2q1wpcnbp` + Perform :t:`method resolution receiver candidate lookup` for the + :t:`candidate receiver type`. + + #. :dp:`fls_fcnahkqxomuo` + If the last :t:`candidate receiver type` is an :t:`array type`, then + perform :t:`method resolution receiver candidate lookup` for a + :t:`slice type` where the :t:`slice type` has the same :t:`element type` + as the :t:`array type`. + +:dp:`fls_ii0fdpekn1qt` +:dt:`Method resolution receiver candidate lookup` for a :t:`receiver type` +proceeds as follows: + +#. :dp:`fls_ohjmxhbw3nx3` + Perform :t:`method resolution implementation candidate lookup` for the + :t:`receiver type`. + +#. :dp:`fls_lgpdicxxwq13` + Perform :t:`method resolution implementation candidate lookup` for the + :t:`immutable borrow` of the :t:`receiver type`. + +#. :dp:`fls_ugl3x4y3lli2` + Perform :t:`method resolution implementation candidate lookup` for the + :t:`mutable borrow` of the :t:`receiver type`. + +:dp:`fls_bb4cbmvui8fk` +:dt:`Method resolution implementation candidate lookup` for a +:t:`receiver type` proceeds as follows: + +#. :dp:`fls_5wny1yxbyuz0` + Perform :t:`method resolution inherent implementation candidate lookup` for + the :t:`receiver type`. + +#. :dp:`fls_gsc8pt4tlsqv` + Perform :t:`method resolution trait implementation candidate lookup` for the + :t:`receiver type`. + +:dp:`fls_tfglce1wuq5q` +:dt:`Method resolution inherent implementation candidate lookup` for a +:t:`receiver type` proceeds as follows: + +#. :dp:`fls_64bfcn9okeve` + Construct the :t:`dereference type chain` for the :t:`receiver type`. + +#. :dp:`fls_om90v9re8b2l` + For each :t:`dereference type` in the :t:`dereference type chain` + + #. :dp:`fls_bsf4hy9x7c2e` + For each :t:`inherent implementation` in the set of + :t:`[inherent implementation]s` of the :t:`dereference type` where the + :t:`implementing type` :t:`unifies ` with the + :t:`dereference type` + + #. :dp:`fls_cnn5hkf1z5q4` + Try to locate a :t:`candidate method` in the :t:`inherent + implementation`, where the :t:`type` of the :t:`self parameter` + :t:`unifies ` with the :t:`receiver type`. + + #. :dp:`fls_j9ho6xc2fj0w` + If such a :t:`candidate method` exists, then the + :t:`method call expression` resolves to that :t:`candidate method` and + :t:`method resolution` stops. + +:dp:`fls_1y94elgpg0uk` +:dt:`Method resolution trait implementation candidate lookup` for a +:t:`receiver type` proceeds as follows: + +#. :dp:`fls_npsdxrtcslcf` + Construct the :t:`dereference type chain` for the :t:`receiver type`. + +#. :dp:`fls_yv5l823lwdsv` + For each :t:`dereference type` in the :t:`dereference type chain` + + #. :dp:`fls_ckdoyvbaybe0` + For each :t:`trait implementation` of the :t:`dereference type` where the + :t:`implemented trait` is :t:`in scope` + + #. :dp:`fls_1azkiu20r0e4` + Try to locate a :t:`candidate method` in the + :t:`trait implementation`, where the :t:`type` of the + :t:`self parameter` :t:`unifies ` with the :t:`receiver type`. + + #. :dp:`fls_ose5m4bhkg57` + If such a :t:`candidate method` exists, then the + :t:`method call expression` resolves to that :t:`candidate method` and + :t:`method resolution` stops. + +:dp:`fls_jw2yv23cduu4` +A :t:`method call expression` shall resolve to exactly one :t:`method`. + +.. _fls_TelBKNKodx3d: + +Call Resolution +~~~~~~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_ZjJ7y9r6QQMW` +:t:`Call resolution` is a form of :t:`resolution` that applies to a +:t:`call expression`. + +:dp:`fls_zBSloU2Gjv7x` +A :dt:`candidate callee type` is the :t:`type` of the :t:`call operand` +of a :t:`call expression` :t:`under resolution`. + +:dp:`fls_XBakDylF7aOG` +A :dt:`candidate callee type chain` is a sequence of :t:`[candidate callee type]s`. +The :t:`candidate callee type chain` starts with the :t:`type` of the :t:`call +operand` of the:t:`call expression` :t:`under resolution`. From then on, the +:t:`candidate callee type chain` is treated as a :t:`dereference type chain`. + +:dp:`fls_kzovwqIw7ghc` +:t:`Call resolution` of a :t:`call expression` proceeds as follows: + +#. :dp:`fls_4iBdtE0Ji4Tf` + For each :t:`candidate callee type` of the + :t:`candidate callee type chain` + + #. :dp:`fls_TWR5GIUxPcaJ` + If the :t:`candidate callee type` is a :t:`callee type`, then the :t:`callee + type` of the :t:`call expression` is that :t:`candidate callee type` and + :t:`call resolution` stops. + +.. _fls_i6qzga6dyaee: + +Path Resolution +~~~~~~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_8slvisr3jfja` +:t:`Path resolution` is a form of :t:`resolution` that applies to a :t:`path`. + +:dp:`fls_nmev0tnzgw35` +:t:`Path resolution` resolves a :t:`path` by resolving individual +:t:`[path segment]s` in sequence, starting from the leftmost :t:`path segment`. + +:dp:`fls_p23q1ob2qitz` +A :t:`path segment` shall resolve to exactly one :t:`entity`. + +:dp:`fls_e9rv8dfa0arl` +A :dt:`candidate direct entity` is an :t:`entity` that is visible from the +location of a :t:`path` :t:`under resolution` and is located by first examining +:t:`[textual macro scope]s`, followed by examining the :t:`scope hierarchy` +from the innermost :t:`scope` enclosing the :t:`path` to the outermost +:t:`scope`, followed by examining :t:`[prelude]s`. + +:dp:`fls_yule33qm1ok` +A :dt:`candidate external prelude entity` is an :t:`entity` that is visible +from the location of a :t:`path` :t:`under resolution` and is located by +examining the :t:`external prelude`. + +:dp:`fls_7xmhm2lf2h8f` +A :dt:`candidate selected entity` is an :t:`entity` that is visible from +the location of a :t:`path` :t:`under resolution` and is located within a +:t:`resolution context`. + +:dp:`fls_ec4wo8odusqp` +A :dt:`namespace context` is a set of :t:`[namespace]s` where the :t:`[name]s` +of :t:`candidate selected entities ` reside. + +:dp:`fls_9tedg9lpewqa` +A :dt:`resolution context` is a set of :t:`entities ` that informs +:t:`path resolution` by restricting the number of +:t:`candidate selected entities `. + +:dp:`fls_mvymlhp7192e` +The resolution of the leftmost :t:`path segment` of a :t:`path` proceeds as +follows: + +* :dp:`fls_cs485plo4z49` + If the leftmost :t:`path segment` is expressed as :t:`keyword` ``crate``, + then what the leftmost :t:`path segment` resolves to and its + :t:`resolution context` is the :t:`entity` of the current :t:`crate`. + +* :dp:`fls_yrpem8vhxpr5` + If the leftmost :t:`path segment` is expressed as :t:`keyword` ``$crate``, + then what the leftmost :t:`path segment` resolves to and its + :t:`resolution context` is the :t:`entity` of the :t:`crate` that declares + the :t:`macro` that is being expanded. + +* :dp:`fls_ri50nc2dg7c4` + If the leftmost :t:`path segment` is expressed as :t:`keyword` ``self``, + then what the leftmost :t:`path segment` resolves to and its + :t:`resolution context` is the :t:`entity` of the current :t:`module`. + +* :dp:`fls_to52oma1bvx3` + If the leftmost :t:`path segment` is expressed as :t:`keyword` ``Self``, + then what the leftmost :t:`path segment` resolves to and its + :t:`resolution context` is + + * :dp:`fls_kpn2y7xb3s8q` + The :t:`entity` of the :t:`abstract data type`, if the :t:`path` appears + within an :t:`abstract data type`, or + + * :dp:`fls_z71op1vdnazq` + The :t:`entity` of the :t:`implementing type`, if the :t:`path` appears + within an :t:`implementation`, or + + * :dp:`fls_2km29ekj9464` + The :t:`entity` of the :t:`trait`, if the :t:`path` appears within a + :t:`trait`. + +* :dp:`fls_l2y464skbuta` + If the leftmost :t:`path segment` is expressed as :t:`keyword` ``super``, + then what the leftmost :t:`path segment` resolves to and its + :t:`resolution context` is the :t:`entity` of the parent :t:`module` of the + current :t:`module`. + +* :dp:`fls_n2x13sg5szbl` + If the leftmost :t:`path segment` is an :t:`identifier`, then + + * :dp:`fls_53kd7eb1qzuz` + If the :t:`path` is a :t:`global path`, then try to find a + :t:`candidate external prelude entity` whose :t:`name` matches the + characters of the leftmost :t:`path segment`. What the leftmost + :t:`path segment` resolves to and its :t:`resolution context` is that + :t:`candidate external prelude entity`. + + * :dp:`fls_3spnlz9tqnhj` + Otherwise try to find a :t:`candidate direct entity` whose :t:`name` + matches the characters of the leftmost :t:`path segment` and + + * :dp:`fls_Mt6xKI08viYw` + If the :t:`candidate direct entity` is a :t:`module`, and the + :t:`namespace context` is the :t:`type namespace` or the :t:`path` has + more than one :t:`[path segment]s`, and the :t:`identifier` is a :t:`name` + of a :t:`type` of the :t:`language prelude`, then resolution of the + leftmost :t:`path segment` and its :t:`resolution context` is the + :t:`type` of the :t:`language prelude`. + + * :dp:`fls_7hK059djudGN` + Otherwise the resolution of the leftmost :t:`path segment` and its + :t:`resolution context` is that :t:`candidate direct entity`. + +* :dp:`fls_lxa7uhmdoy9d` + If the leftmost :t:`path segment` starts with a :t:`qualified type`, then + + * :dp:`fls_EcaZauRXEGcs` + The leftmost :t:`path segment` resolves to the :t:`qualified type`, and + + * :dp:`fls_xujlscsir05f` + If the :t:`qualified type` is subject to a :t:`qualifying trait`, then the + :t:`resolution context` of the leftmost :t:`path segment` consists of the + :t:`entities ` of all :t:`[implementation]s` of the + :t:`qualified type` that implement the :t:`qualifying trait`. + + * :dp:`fls_wypnvfklnmc1` + Otherwise the :t:`resolution context` of the leftmost :t:`path segment` + consists of the :t:`entity` of the :t:`qualified type`, the + :t:`entities ` of all its :t:`[inherent implementation]s`, and the + :t:`entities ` of all its :t:`[trait implementation]s` of + :t:`[trait]s` that are :t:`in scope`. + +:dp:`fls_zi46lmwsn4rg` +The resolution of the rightmost :t:`path segment` is determined based on the +:t:`path resolution` kind, where the :t:`name` of the +:t:`candidate selected entity` is restricted by the :t:`namespace context`. + +:dp:`fls_bATFGtxjKq0B` +It is a static error if the leftmost :t:`path segment` is an :t:`identifier` +introduced by the :t:`external prelude` that is also :t:`shadowed `. + +.. _fls_bbso3c45kr9z: + +Simple Path Resolution +^^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Legality Rules + +:dp:`fls_uml24jw5jo7a` +:t:`Simple path resolution` is a kind of :t:`path resolution` that applies to +a :t:`simple path`. + +:dp:`fls_59wd7loxst43` +The :t:`namespace context` of :t:`simple path resolution` is determined as +follows: + +* :dp:`fls_mk0ufkeggot6` + If the :t:`simple path` is part of an :t:`attribute` or a + :t:`macro invocation`, then the :t:`namespace context` is the + :t:`macro namespace`. + +* :dp:`fls_ayv8okec9fwb` + If the :t:`simple path` is part of a :t:`use import`, then the + :t:`namespace context` consists of the :t:`macro namespace`, the + :t:`type namespace`, and the :t:`value namespace`. + +* :dp:`fls_ppoc6wcplab6` + If the :t:`simple path` is part of a :t:`visibility modifier`, then the + :t:`namespace context` consists of the :t:`type namespace`. + +:dp:`fls_dc0yv4306p82` +The leftmost :t:`path segment` of a :t:`simple path` is resolved using general +:t:`path resolution`. The remaining :t:`[path segment]s` are resolved in +left-to-right order, as follows: + +* :dp:`fls_jhivcca0xcqj` + If the current :t:`path segment` is expressed as :t:`keyword` ``super``, then + what the current :t:`path segment` resolves to and its + :t:`resolution context` is the :t:`entity` of the parent :t:`module` of the + previous :t:`[path segment]'s` :t:`resolution context`. + +* :dp:`fls_tfsgutcpube2` + Otherwise try to find a :t:`candidate selected entity` whose :t:`name` + matches the characters of the current :t:`path segment` within the previous + :t:`[path segment]'s` :t:`resolution context`, where if the current + :t:`path segment` is not the rightmost :t:`path segment`, the + :t:`resolution context` is restricted to the :t:`entities ` of + :t:`[module]s`. What the current :t:`path segment` resolves to and its + :t:`resolution context` is that :t:`candidate selected entity`. + +.. _fls_o9u2h5m17kpz: + +Path Expression Resolution +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Legality Rules + +:dp:`fls_akjlqm3a2lb1` +:t:`Path expression resolution` is a form of :t:`path resolution` that applies +to a :t:`unqualified path expression`. + +:dp:`fls_xyzdajtf4u2t` +The :t:`namespace context` of :t:`path expression resolution` is the +:t:`value namespace`. + +:dp:`fls_d45vu3iazi3` +The leftmost :t:`path segment` of a :t:`unqualified path expression` is resolved using +general :t:`path resolution`. The remaining :t:`[path segment]s` are resolved +in left-to-right order, as follows: + +* :dp:`fls_9pjhok9rctty` + If the current :t:`path segment` is expressed as :t:`keyword` ``super``, then + what the current :t:`path segment` resolves to and its + :t:`resolution context` is the :t:`entity` of the parent :t:`module` of the + previous :t:`[path segment]'s` :t:`resolution context`. + +* :dp:`fls_2wbpr9lvz5yq` + If the current :t:`path segment` is the rightmost :t:`path segment`, then + + * :dp:`fls_u5nyv6ii1g2l` + If the previous :t:`[path segment]'s` :t:`resolution context` is an + :t:`enum type`, then try to find a :t:`candidate selected entity` whose + :t:`name` matches the characters of the current :t:`path segment`, where + the :t:`resolution context` is restricted to the :t:`entities ` of + the :t:`[enum variant]s` of that :t:`enum type`. What the current + :t:`path segment` resolves to and its :t:`resolution context` is that + :t:`candidate selected entity`. + + * :dp:`fls_bscg48os5otx` + If the previous :t:`[path segment]'s` :t:`resolution context` is a + :t:`module`, then try to find a :t:`candidate selected entity` whose + :t:`name` matches the characters of the current :t:`path segment` within + that :t:`module`. What the current :t:`path segment` resolves to and its + :t:`resolution context` is that :t:`candidate selected entity`. + + * :dp:`fls_qbmp0blpoxx9` + If the previous :t:`[path segment]'s` :t:`resolution context` is a + :t:`trait` or a :t:`type`, then perform + :t:`path expression resolution implementation candidate lookup` for the + current :t:`path segment` and that :t:`trait` or :t:`type`. + +* :dp:`fls_ydni5laqv6gp` + Otherwise + + * :dp:`fls_lsxbl6ep3150` + If the previous :t:`[path segment]'s` :t:`resolution context` is a + :t:`module`, then try to find a :t:`candidate selected entity` whose + :t:`name` matches the characters of the current :t:`path segment` within + that :t:`module`, where the :t:`resolution context` is restricted to the + :t:`entities ` whose :t:`[name]s` reside in the + :t:`type namespace`. What the current :t:`path segment` resolves to and its + :t:`resolution context` is that :t:`candidate selected entity`. + + * :dp:`fls_x1n7w8w6lwm` + If the previous :t:`[path segment]'s` :t:`resolution context` is a + :t:`trait`, then try to find a :t:`candidate selected entity` whose + :t:`name` matches the characters of the current :t:`path segment` within + that :t:`trait`, where the :t:`resolution context` is restricted to the + :t:`entities ` of all :t:`[associated item]s` of that :t:`trait`. + What the current :t:`path segment` resolves to and its + :t:`resolution context` is that :t:`candidate selected entity`. + + * :dp:`fls_v1h4frnbqruu` + If the previous :t:`[path segment]'s` :t:`resolution context` is a + :t:`type`, then try to find a :t:`candidate selected entity` whose + :t:`name` matches the characters of the current :t:`path segment` within + that :t:`type`, where the :t:`resolution context` is restricted to the + :t:`entities ` of all :t:`[associated item]s` from its + :t:`[inherent implementation]s`, and the :t:`entities ` of all its + :t:`[trait implementation]s` of :t:`[trait]s` that are :t:`in scope`. What + the current :t:`path segment` resolves to and its :t:`resolution context` + is that :t:`candidate selected entity`. + +:dp:`fls_utfpnwlo0v99` +:dt:`Path expression resolution implementation candidate lookup` for a +:t:`path segment` and a :t:`trait` or :t:`type` proceeds as follows: + +#. :dp:`fls_1p8ocf1w5bp4` + Perform + :t:`path expression resolution inherent implementation candidate lookup` for + the :t:`path segment` and the :t:`trait` or :t:`type`. + +#. :dp:`fls_qb5yo7j5gnvf` + Perform + :t:`path expression resolution trait implementation candidate lookup` for + the :t:`path segment` and the :t:`trait` or :t:`type`. + +:dp:`fls_o1g0forw6xw` +:dt:`Path expression resolution inherent implementation candidate lookup` for a +:t:`path segment` and a :t:`trait` or :t:`type` proceeds as follows: + +#. :dp:`fls_bcqe13q696zg` + For each :t:`inherent implementation` in the set of + :t:`[inherent implementation]s` of the :t:`trait` or :t:`type` where the + :t:`implementing type` :t:`unifies ` with the :t:`trait` or :t:`type` + + #. :dp:`fls_3sceutaqpqha` + Try to locate a visible :t:`constant` or a visible :t:`function` in the + :t:`inherent implementation` whose :t:`name` matches the characters of + the :t:`path segment`. + + #. :dp:`fls_6q9cwqlvxmd1` + If such a :t:`constant` or :t:`function` exists, then the + :t:`path segment` resolves to that :t:`constant` or :t:`function` and + :t:`path expression resolution` stops. + +:dp:`fls_qeym3vbi36iv` +:dt:`Path expression resolution trait implementation candidate lookup` for a +:t:`path segment` and a :t:`trait` or :t:`type` proceeds as follows: + +#. :dp:`fls_8x0pqwpm80sj` + For each :t:`trait implementation` of the :t:`trait` or :t:`type` where the + :t:`implemented trait` is :t:`in scope` + + #. :dp:`fls_pp09gmrnasjp` + Try to locate a visible :t:`constant` or a visible :t:`function` in the + :t:`trait implementation` whose :t:`name` matches the characters of the + :t:`path segment`. + + #. :dp:`fls_q0jt6n2j1hsx` + If such a :t:`constant` or :t:`function` exists, then the + :t:`path segment` resolves to that :t:`constant` or :t:`function` and + :t:`path expression resolution` stops. + +.. _fls_1h0olpc7vbui: + +Type Path Resolution +^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Legality Rules + +:dp:`fls_2zuncql8ir5k` +:t:`Type path resolution` is a form of :t:`path resolution` that applies to +a :t:`type path`. + +:dp:`fls_bv5cj918dqqe` +The :t:`namespace context` of :t:`type path resolution` is the +:t:`type namespace`. + +:dp:`fls_bsakzuteuh5s` +The leftmost :t:`path segment` of a :t:`type path` is resolved using general +:t:`path resolution`. The remaining :t:`[path segment]s` are resolved in +left-to-right order, as follows: + +* :dp:`fls_j1ewjisx0mc2` + If the current :t:`path segment` is expressed as :t:`keyword` ``super``, then + what the current :t:`path segment` resolves to and its + :t:`resolution context` is the :t:`entity` of the parent :t:`module` of the + previous :t:`[path segment]'s` :t:`resolution context`. + +* :dp:`fls_o4snu1him277` + If the previous :t:`[path segment]'s` :t:`resolution context` is a + :t:`module`, then try to find a :t:`candidate selected entity` whose + :t:`name` matches the characters of the current :t:`path segment` within + that :t:`module`. What the current :t:`path segment` resolves to and its + :t:`resolution context` is that :t:`candidate selected entity`. + +* :dp:`fls_goe8q52toik2` + If the previous :t:`[path segment]'s` :t:`resolution context` is a + :t:`trait`, then try to find a :t:`candidate selected entity` whose :t:`name` + matches the characters of the current :t:`path segment` within that + :t:`trait`, where the :t:`resolution context` is restricted to the + :t:`entities ` of all :t:`[associated item]s` of that :t:`trait`. + What the current :t:`path segment` resolves to and its + :t:`resolution context` is that :t:`candidate selected entity`. + +* :dp:`fls_4rs35f6ydckj` + If the previous :t:`[path segment]'s` :t:`resolution context` is a :t:`type`, + then try to find a :t:`candidate selected entity` whose :t:`name` matches + the characters of the current :t:`path segment` within that :t:`type`, + where the :t:`resolution context` is restricted to the :t:`entities ` + of all :t:`[associated item]s` from its :t:`[inherent implementation]s`, and + the :t:`entities ` of all its :t:`[trait implementation]s` of + :t:`[trait]s` that are :t:`in scope`. What the current :t:`path segment` + resolves to and its :t:`resolution context` is that + :t:`candidate selected entity`. + +* :dp:`fls_jh4db1p7or0x` + If the current :t:`path segment` has a :t:`qualified fn trait`, then the + current :t:`path segment` shall resolve to either the :std:`core::ops::Fn`, + :std:`core::ops::FnMut`, or :std:`core::ops::FnOnce` :t:`trait`. diff --git a/_sources/exceptions-and-errors.rst.txt b/_sources/exceptions-and-errors.rst.txt new file mode 100644 index 00000000..d9b354fc --- /dev/null +++ b/_sources/exceptions-and-errors.rst.txt @@ -0,0 +1,87 @@ +.. SPDX-License-Identifier: MIT OR Apache-2.0 + SPDX-FileCopyrightText: The Ferrocene Developers + +.. default-domain:: spec + +.. _fls_dzq9cdz4ibsz: + +Exceptions and Errors +===================== + +.. rubric:: Legality Rules + +:dp:`fls_vsk4vhnuiyyz` +The Rust programming language lacks exceptions and exception handlers. Instead, +the language uses the following tiered error handling scheme: + +* :dp:`fls_ebangxc36t74` + A possibly absent :t:`value` is usually represented using :t:`enum` + :std:`core::option::Option`. + +* :dp:`fls_ckeitwiv326r` + The result of a possibly erroneous computation is usually represented using + :t:`enum` :std:`core::result::Result`. + +* :dp:`fls_eg0orgibg98m` + Erroneous behavior is signaled using :t:`macro` :std:`core::panic`. + +:dp:`fls_ko1x0gp9e7y3` +:t:`Enum` :std:`core::option::Option` indicates whether a :t:`value` is +either present using :std:`core::option::Option::Some` or absent using +:std:`core::option::Option::None`. + +:dp:`fls_gwu4cn4ziabe` +:t:`Enum` :std:`core::result::Result` indicates whether a computation completed +successfully and produced a :t:`value` using :std:`core::result::Result::Ok` or +the computation failed with an error using :std:`core::result::Result::Err`. + +.. _fls_k02nt1m5fq1z: + +Panic +----- + +.. rubric:: Legality Rules + +:dp:`fls_a554v4n0khye` +A :t:`panic` is an abnormal program state caused by invoking :t:`macro` +:std:`core::panic`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_i9njhpte5l0t` +Invoking :t:`macro` :std:`core::panic` has the following runtime effects: + +#. :dp:`fls_n6q7bksyn1m` + Control flow halts the execution of the current thread. + +#. :dp:`fls_xmtt04lw517w` + Control flow of the current thread resumes execution by invoking the + :t:`function` subject to :t:`attribute` :c:`panic_handler`. + +.. rubric:: Examples + +.. code-block:: rust + + panic!("This was a terrible mistake!"); + +.. _fls_hi1iz0gbnksi: + +Abort +----- + +.. rubric:: Legality Rules + +:dp:`fls_9a1izu3omkbn` +:t:`Abort` is the immediate termination of a program. + +.. rubric:: Dynamic Semantics + +:dp:`fls_iq6olct3rw4u` +:t:`Abort` has the following runtime effects: + +#. :dp:`fls_wd2q6ft9yzrg` + Control flow halts the execution of all threads. + +#. :dp:`fls_7bnrbjb0pq5n` + The program terminates. + diff --git a/_sources/expressions.rst.txt b/_sources/expressions.rst.txt new file mode 100644 index 00000000..198db0e2 --- /dev/null +++ b/_sources/expressions.rst.txt @@ -0,0 +1,5042 @@ +.. SPDX-License-Identifier: MIT OR Apache-2.0 + SPDX-FileCopyrightText: The Ferrocene Developers + +.. default-domain:: spec + +.. _fls_ckvjj4tt1hh2: + +Expressions +=========== + +.. rubric:: Syntax + +.. syntax:: + + Expression ::= + ExpressionWithBlock + | ExpressionWithoutBlock + + ExpressionWithBlock ::= + OuterAttributeOrDoc* ( + AsyncBlockExpression + | BlockExpression + | IfExpression + | IfLetExpression + | LoopExpression + | MatchExpression + | UnsafeBlockExpression + | NamedBlockExpression + ) + + ExpressionWithoutBlock ::= + OuterAttributeOrDoc* ( + ArrayExpression + | AwaitExpression + | BreakExpression + | CallExpression + | ClosureExpression + | ContinueExpression + | FieldAccessExpression + | IndexExpression + | LiteralExpression + | MethodCallExpression + | MacroInvocation + | OperatorExpression + | ParenthesizedExpression + | PathExpression + | RangeExpression + | ReturnExpression + | StructExpression + | TupleExpression + | UnderscoreExpression + ) + + ExpressionList ::= + Expression ($$,$$ Expression)* $$,$$? + + Operand ::= + Expression + + LeftOperand ::= + Operand + + RightOperand ::= + Operand + +:dp:`fls_pwut2jbmk66k` +A :ds:`SubjectExpression` is any expression in category :s:`Expression`, except +:s:`StructExpression`. + +:dp:`fls_361q9ljc6ybz` +A :ds:`SubjectLetExpression` is any expression in category +:s:`SubjectExpression`, except :s:`LazyBooleanExpression`. + +.. rubric:: Legality Rules + +:dp:`fls_h5o6tgul4yor` +An :t:`expression` is a :t:`construct` that produces a :t:`value`, and may have +side effects at run-time. + +:dp:`fls_xmklb3070sp` +An :t:`expression-with-block` is an :t:`expression` whose structure involves a +:t:`block expression`. + +:dp:`fls_p15oeage4j0e` +An :t:`expression-without-block` is an :t:`expression` whose structure does not +involve a :t:`block expression`. + +:dp:`fls_gwgttltgjma4` +An :t:`operand` is an :t:`expression` nested within an :t:`expression`. + +:dp:`fls_1r29rtnjlkql` +A :t:`left operand` is an :t:`operand` that appears on the left-hand side of a +:t:`binary operator`. + +:dp:`fls_qxdpyf4u3hbz` +A :t:`right operand` is an :t:`operand` that appears on the right-hand side of a +:t:`binary operator`. + +:dp:`fls_2j132xueobfv` +A :t:`subject expression` is an :t:`expression` that controls :t:`[for loop]s`, +:t:`[if expression]s`, and :t:`[match expression]s`. + +:dp:`fls_a243nclqqjlu` +A :t:`subject let expression` is an :t:`expression` that controls +:t:`[if let expression]s` and :t:`[while let loop]s`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_1223lwh4nq49` +:t:`Evaluation` is the process by which an :t:`expression` achieves its runtime +effects. + +.. _fls_isyftqu120l: + +Expression Classification +------------------------- + +.. _fls_3ut3biyra4r9: + +Assignee Expressions +~~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_oqj7s9fi3j3j` +An :t:`assignee expression` is an :t:`expression` that appears as the +:t:`left operand` of an :t:`assignment expression`. The following +:t:`[expression]s` are :t:`[assignee expression]s`: + +* :dp:`fls_skopz71arbwa` + :t:`[Place expression]s`, + +* :dp:`fls_vxrg6preh46x` + :t:`[Underscore expression]s`, + +* :dp:`fls_yso6dmog0an2` + :t:`[Array expression]s` of :t:`[assignee expression]s`, + +* :dp:`fls_1tsdlpgkgb2u` + :t:`[Struct expression]s` of :t:`[assignee expression]s`. + +* :dp:`fls_hier3b8knpuq` + :t:`[Tuple expression]s` of :t:`[assignee expression]s`, + +* :dp:`fls_horl3qcfdb0k` + :t:`[Tuple struct call expression]s` of :t:`[assignee expression]s`, + +:dp:`fls_1smb3tj9pxsq` +:t:`[Parenthesized expression]s` are allowed to appear anywhere in +:t:`[assignee expression]s`. + +.. _fls_66m4rnbssgig: + +Constant Expressions +~~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_1ji7368ieg0b` +A :t:`constant expression` is an :t:`expression` that can be evaluated +statically. The following :t:`[construct]s` are :t:`[constant expression]s` as +long as their :t:`[operand]s` are also :t:`[constant expression]s` and do not +involve :t:`[type]s` that require :t:`destruction`: + +* :dp:`fls_y6ore0iwx7e0` + :t:`[Arithmetic expression]s` of :t:`[scalar type]s`, + +* :dp:`fls_xguga84v3j8u` + :t:`[Array expression]s`, + +* :dp:`fls_idxf02p7jogu` + :t:`[Assignment expression]s`, + +* :dp:`fls_6z45ss502alt` + :t:`[Bit expression]s` of :t:`[scalar type]s`, + +* :dp:`fls_wqs0792nud4e` + :t:`[Block expression]s`, + +* :dp:`fls_490a1b74fut6` + :t:`[Call expression]s` where the callee is a :t:`constant function`, + +* :dp:`fls_8nyu6phm1nji` + :t:`[Closure expression]s` that do not :t:`capture `, + +* :dp:`fls_8wux08bmpse` + :t:`[Comparison expression]s` of :t:`[scalar type]s`, + +* :dp:`fls_v1bnk7neb82a` + :t:`[Compound assignment expression]s`, + +* :dp:`fls_6fq6bvxxvhsr` + :t:`[Constant parameter]s`, + +* :dp:`fls_to4e7imq2c0w` + :t:`[Dereference expression]s` when the :t:`operand` is not of a + :t:`raw pointer type`, + +* :dp:`fls_krtbrpwf3mh0` + :t:`[Expression statement]s`, + +* :dp:`fls_3etom5uu8y4u` + :t:`[Field access expression]s` that do not invoke the :std:`core::ops::Deref` + :t:`trait`, + +* :dp:`fls_qls0wj8bmupz` + :t:`[If expression]s`, + +* :dp:`fls_b5fraqx07wuo` + :t:`[If let expression]s`, + +* :dp:`fls_6g7c1kjrmfnr` + :t:`[Immutable borrow expression]s` where the borrowed :t:`type` is not + subject to :t:`interior mutability`. + +* :dp:`fls_rpapnm3afan8` + :t:`[Index expression]s`, + +* :dp:`fls_fc62yaqyjpl2` + :t:`[Infinite loop expression]s`, + +* :dp:`fls_kwg8a351vc7` + :t:`[Lazy boolean expression]s` of :t:`[scalar type]s`, + +* :dp:`fls_7mjv1xd45qr4` + :t:`[Let statement]s`, + +* :dp:`fls_g7hoyfqy9mu1` + :t:`[Literal expression]s`, + +* :dp:`fls_br4g7qwfczig` + :t:`[Match expression]s`, + +* :dp:`fls_w4lpq9bs8tsc` + :t:`[Method call expression]s` where the callee is a :t:`constant function` or + do not invoke the :std:`core::ops::Deref` :t:`trait`, + +* :dp:`fls_y1ezabo61nyk` + :t:`[Negation expression]s` of :t:`[scalar type]s`, + +* :dp:`fls_6tb74n6lu0wf` + :t:`[Parenthesized expression]s`, + +* :dp:`fls_axwrv7b3zt55` + :t:`[Path expression]s` that resolve to :t:`[associated constant]s`, + :t:`[constant]s`, :t:`[constant parameter]s`, :t:`[function]s`, + :t:`[static]s`, :t:`[tuple struct]s`, and :t:`[unit struct]s`, + +* :dp:`fls_3bucpdj828bq` + :t:`[Range expression]s`, + +* :dp:`fls_hkbwa8xx2fwx` + :t:`[Shared borrow]s` that do not involve :t:`[type]s` with + :t:`interior mutability`, + +* :dp:`fls_fobs8ebt7dhc` + :t:`[Struct expression]s`, + +* :dp:`fls_dyo3o1h3keqr` + :t:`[Tuple expression]s`, + +* :dp:`fls_e0a1e8ddph7` + :t:`[Type cast expression]s` that are not :t:`[pointer-to-address cast]s`, + :t:`[function-pointer-to-address cast]s`, and :t:`[unsized coercion]s` that + involve a :t:`trait object type`, + +* :dp:`fls_zcuzhw7qkzkr` + :t:`[Unsafe block expression]s`, + +* :dp:`fls_pbpzkfo1fgtz` + :t:`[While let loop expression]s`, + +* :dp:`fls_qvofy4wkql0s` + :t:`[While loop expression]s`. + +:dp:`fls_3i7efddbsmn0` +An :t:`expression` is not considered a :t:`constant expression` when it +explicitly invokes an :t:`associated trait function` or uses +:t:`[arithmetic operator]s` of non-builtin :t:`[type]s` that invoke +:std:`core::ops` :t:`[trait]s`. + +:dp:`fls_9mrrosm8jnn7` +An :t:`arithmetic expression` that operates with :t:`[floating-point value]s` is +not considered a :t:`constant expression` when it appears inside the +:t:`function body` of a :t:`constant function`. + +:dp:`fls_fmqar6o1bwqk` +It is a static error if the :t:`size operand` of an +:t:`array repetition constructor` or an :t:`array type` depends on +:t:`[generic parameter]s`. + +:dp:`fls_kjhma680hz3g` +A :t:`constant context` is a :t:`construct` that requires a +:t:`constant expression`. The following :t:`[construct]s` are +:t:`[constant context]s`: + +* :dp:`fls_ljc6jq5ksbcs` + The :t:`constant initializer` of an :t:`associated constant` or a + :t:`constant`, + +* :dp:`fls_3of516eo0kkx` + The :t:`constant argument` for a :t:`constant parameter`, + +* :dp:`fls_yiks5bvojncc` + The default :t:`value` of a :t:`constant parameter`, + +* :dp:`fls_66m2hwkju0vv` + The :t:`discriminant initializer` of an :t:`enum variant`, + +* :dp:`fls_fsn32kmwg65u` + The :t:`size operand` of an :t:`array repetition constructor`, + +* :dp:`fls_j6kffhbxdm7o` + The :t:`size operand` of an :t:`array type`, + +* :dp:`fls_ib8p7dfwddx2` + The :t:`static initializer` of a :t:`static`. + +:dp:`fls_ox6sgl9n43g2` +It is a static error to create a :t:`mutable reference` in a +:t:`constant context`. + +:dp:`fls_od0h3v40kjp6` +An invocation of the :std:`core::ptr::addr_of` :t:`macro` expands to a +:t:`constant expression` allowed in any :t:`constant context` and +:t:`constant function`, subject to the same restrictions as a +:t:`immutable borrow expression`. + +:dp:`fls_6sc556tz4oxd` +An invocation of the :std:`core::panic` :t:`macro` expands to a +:t:`constant expression` allowed in any :t:`constant context` and +:t:`constant function`, as long as the :t:`macro` is either invoked without +arguments, or with a single :t:`string literal` that does not +:t:`capture ` formatting arguments. + +:dp:`fls_b1vfpvsdv38` +A :t:`constant expression` is evaluated statically whenever its :t:`value` is +needed. + +:dp:`fls_b46nyamfqxdu` +The :t:`evaluation` of a :t:`constant expression` that results in +:t:`arithmetic overflow` :t:`[panic]s`. + +:dp:`fls_ms9vey2wymqp` +It is a static error if a :t:`constant expression` either :t:`[panic]s` or +control reaches the invocation of :t:`macro` :std:`core::panic`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_tg0kya5125jt` +The invocation of a :t:`constant function` follows the dynamic semantics of a +:t:`non-[constant function]` invocation. + +.. _fls_zJOAmSr3Dbqk: + +Diverging Expressions +~~~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_oth9vFtcb9l4` +A :t:`diverging expression` is an :t:`expression` whose :t:`evaluation` causes +program flow to diverge from the normal :t:`evaluation` order. + +:dp:`fls_cmBVodJMjZi7` +:t:`[Diverging expression]s` are: + +* :dp:`fls_xsOgdiIzysP1` + :t:`[Break expression]s`, + +* :dp:`fls_xqxdHziqgWf5` + :t:`[Return expression]s`, + +* :dp:`fls_fU91m6DCB0ip` + :t:`[Loop expression]s` that are not the target of any + :t:`[break expression]s`, + +* :dp:`fls_4wDpAHhnWZAB` + :t:`[Call expression]s` and :t:`[method call expression]s` if the :t:`return + type` of the :t:`call operand` is the :t:`never type`, + +* :dp:`fls_7HA5UThwjbQj` + Invocations of the :std:`core::panic` :t:`macro`, + +* :dp:`fls_pdDr8Lk1GQ0T` + Any :t:`expression` whose :t:`evaluation` requires the :t:`evaluation` of a + diverging :t:`subexpression` on all reachable control flow paths. + +.. _fls_6ydylimiv553: + +Place Expressions +~~~~~~~~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_qbrcg3cl9td` +A :t:`place expression` is an :t:`expression` that represents a memory +location. The following :t:`[expression]s` are :t:`[place expression]s`: + +* :dp:`fls_jpmhibm4omm7` + :t:`[Dereference expression]s`, + +* :dp:`fls_none1dykbn8c` + :t:`[Field access expression]s`, + +* :dp:`fls_lj7x5dgbmg9i` + :t:`[Index expression]s`, + +* :dp:`fls_anzidgx02lly` + :t:`[Parenthesized expression]s` where the :t:`operand` is a + :t:`place expression`, + +* :dp:`fls_ya05djl1d154` + :t:`[Path expression]s` that resolve to a :t:`static` or a :t:`variable`. + +* :dp:`fls_gv4M0DE3OMwk` + A :t:`temporary`. + +:dp:`fls_ku38h562vfyl` +A :t:`mutable place expression` is a :t:`place expression` whose memory +location can be modified. The following :t:`[place expression]s` are +:t:`[mutable place expression]s`: + +* :dp:`fls_1tq2o2huda9l` + A :t:`dereference expression` whose :t:`operand`'s :t:`type` implements the + :std:`core::ops::DerefMut` :t:`trait`, + +* :dp:`fls_6b4rwkrc1ap6` + A :t:`dereference expression` whose :t:`operand`'s :t:`type` is a + :t:`mutable raw pointer type`, + +* :dp:`fls_s4bhrpykzmm7` + A :t:`dereference expression` whose :t:`operand`'s :t:`type` is a + :t:`mutable reference type`, + +* :dp:`fls_xm0gm2q27x2e` + A :t:`field access expression` where the :t:`container operand` is a + :t:`mutable place expression`, + +* :dp:`fls_bt50fltfqcvn` + An :t:`index expression` whose :t:`type` implements the + :std:`core::ops::IndexMut` :t:`trait`, + +* :dp:`fls_Sgfxp186GMvz` + :t:`[Parenthesized expression]s` where the :t:`operand` is a + :t:`mutable place expression`, + +* :dp:`fls_ilaqmj3hc5uv` + A :t:`path expression` that resolves to a :t:`mutable static`, + +* :dp:`fls_m0gbw9myylv2` + A :t:`path expression` that resolves to a :t:`mutable variable` that is not + currently borrowed, + +* :dp:`fls_dcm3yr3y9y0a` + A :t:`temporary`. + +:dp:`fls_cPEMHZtPkctX` +An :t:`immutable place expression` is a :t:`place expression` whose memory +location cannot be modified. All :t:`[place expression]s` that are not +:t:`[mutable place expression]s` are :t:`[immutable place expression]s`. + +:dp:`fls_4vxi1ji93dxb` +A :t:`place expression context` is a :t:`construct` that may evaluate its +:t:`operand` as a memory location. + +:dp:`fls_fzsrdrHnndRd` +The following :t:`[construct]s` are :t:`[place expression context]s`: + +* :dp:`fls_ZED5wJQVO6nf` + The :t:`assignee operand` of an :t:`assignment expression` or a + :t:`compound assignment expression`, + +* :dp:`fls_Ufz9W5vyZkv3` + The :t:`operand` of a :t:`borrow expression`, + +* :dp:`fls_KxWIzoh9WwK7` + The :t:`operand` of a :t:`dereference expression`, + +* :dp:`fls_oV9Hd6OiFAZX` + The :t:`container operand` of a :t:`field access expression`, + +* :dp:`fls_NnGiNsH6Zgmp` + The initialization :t:`expression` of a :t:`let statement`, + +* :dp:`fls_jLZlxIHr4w2v` + The :t:`operand` of an :t:`implicit borrow`, + +* :dp:`fls_giZ7w1G02JSg` + The :t:`indexed operand` of an :t:`index expression`, + +* :dp:`fls_5yXuTLQOQ3cc` + The :t:`subject let expression` of an :t:`if let expression` or a + :t:`while let loop expression`, + +* :dp:`fls_nman7mJVSQlm` + The :t:`subject expression` of a :t:`match expression`, + +* :dp:`fls_JBfZuFDQg3mU` + The :t:`base initializer` of a :t:`struct expression`. + +:dp:`fls_wxGAOWEVT77u` +A :t:`mutable place expression context` is a :t:`place expression context` that +may evaluate its :t:`operand` as a mutable memory location. The following +:t:`[construct]s` are :t:`[mutable place expression context]s`: + +* :dp:`fls_qytgkbhqr5ln` + The :t:`indexed operand` of an :t:`index expression` if evaluated in a + :t:`mutable place expression context`, + +* :dp:`fls_5gy92rsi2mqm` + The :t:`assignee operand` of an :t:`assignment expression` or a + :t:`compound assignment expression`, + +* :dp:`fls_u80htrnr2ebz` + The :t:`operand` of a mutable :t:`borrow expression`, + +* :dp:`fls_o0feajus3jtu` + The :t:`operand` of a :t:`dereference expression` if evaluated in a + :t:`mutable place expression context`, + +* :dp:`fls_ffjx1d5dseo4` + The :t:`container operand` of :t:`field access expression` if evaluated in a + :t:`mutable place expression context`, + +* :dp:`fls_9r7dopqf1nzl` + The :t:`subject let expression` of an :t:`if let expression` or a + :t:`while let loop expression`, + +* :dp:`fls_o76QXHyrrJPG` + The :t:`operand` of a mutable :t:`implicit borrow`, + +* :dp:`fls_ka5b87tkf8t6` + The initialization :t:`expression` of a :t:`let statement`, + +* :dp:`fls_brwv1zwu37e8` + The :t:`subject expression` of a :t:`match expression`, + +:dp:`fls_4axr4V0icdBP` +A :t:`place expression` that is evaluated in a :t:`value expression context` +or bound :t:`by value` in a :t:`pattern` denotes the :t:`value` held in the +memory location of the :t:`place expression`. Such an evaluation is subject to +:t:`[passing convention]s`. + +.. _fls_e7zgqroy2qxn: + +Value Expressions +~~~~~~~~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_7q4hrt6yfr9b` +A :t:`value expression` is an :t:`expression` that represents a :t:`value`. +All :t:`[expression]s` that are not :t:`[place expression]s` are +:t:`[value expression]s`. + +:dp:`fls_pB6xlp4uAg37` +A :t:`value expression context` is an expression context that is not a +:t:`place expression context`. + +:dp:`fls_8uhfwqurbyqf` +The evaluation of a :t:`value expression` in a :t:`place expression context` +shall evaluate the :t:`value expression` as a :t:`temporary` and then use the +:t:`temporary` in the :t:`place expression context`. + +.. _fls_h0dvogc64tfh: + +Literal Expressions +------------------- + +.. rubric:: Syntax + +.. syntax:: + + LiteralExpression ::= + Literal + +.. rubric:: Legality Rules + +:dp:`fls_rbwwczom3agt` +A :t:`literal expression` is an :t:`expression` that denotes a :t:`literal`. + +:dp:`fls_w30su9x4q13r` +The :t:`type` of a :t:`literal expression` is the :t:`type` of the corresponding +:t:`literal`. + +:dp:`fls_wdpbg5xzgmwu` +The :t:`value` of a :t:`literal expression` is the :t:`value` of the +corresponding :t:`literal`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_g061yzws1m45` +The :t:`evaluation` of a :t:`literal expression` has no effect. + +.. rubric:: Examples + +.. code-block:: rust + + 5 + 'a' + "hello" + +.. _fls_6l60b5hwnjbm: + +Path Expressions +---------------- + +.. rubric:: Syntax + +.. syntax:: + + PathExpression ::= + UnqualifiedPathExpression + | QualifiedPathExpression + +.. rubric:: Legality Rules + +:dp:`fls_gvanx4874ycy` +A :t:`path expression` is an :t:`expression` that denotes a :t:`path`. + +:dp:`fls_EOkrcIj9CuhV` +A :t:`path expression` shall resolve to either a :t:`constant parameter`, a +:t:`constant`, a :t:`function`, a :t:`static`, a :t:`tuple enum variant`, a +:t:`tuple struct`, a :t:`unit enum variant`, a :t:`unit struct`, or a +:t:`variable`. + +:dp:`fls_gz67ju6l7uhn` +A :t:`path expression` that resolves to a :t:`mutable static` shall require +:t:`unsafe context`. + +:dp:`fls_cjywisyiyti6` +The :t:`type` of a :t:`path expression` is the :t:`type` of the :t:`entity` that +it resolved to. + +:dp:`fls_5ifai8nkp5ek` +The :t:`value` of a :t:`path expression` is the :t:`entity` that it resolved to. + +.. rubric:: Examples + +.. code-block:: rust + + globals::STATIC_VARIABLE + Vec::::push + +.. _fls_hndm19t57wby: + +Block Expressions +----------------- + +.. rubric:: Syntax + +.. syntax:: + + BlockExpression ::= + $${$$ + InnerAttributeOrDoc* + StatementList + $$}$$ + + StatementList ::= + Statement* Expression? + +.. rubric:: Legality Rules + +:dp:`fls_nf65p0l0v0gr` +A :t:`block expression` is an :t:`expression` that sequences :t:`[expression]s` +and :t:`[statement]s`. + +:dp:`fls_tn3hj7k2lliu` +A :t:`tail expression` is the last :t:`expression` within a :t:`block +expression`. + +:dp:`fls_DfCne8YWevLE` +When the remaining :t:`[lexical element]s` of a :s:`StatementList` match either +an :s:`Expression` or :s:`Statement` they are interpreted as an :s:`Expression`. + +:dp:`fls_u4gj2lnkq9ub` +The :t:`type` of a :t:`block expression` is determined as follows: + +* :dp:`fls_ltEygvWDtHXE` + If the :t:`block expression` contains at least one :t:`break expression` and + has a :t:`tail expression`, then the :t:`type` is the :t:`unified type` of + the :t:`break types` of all :t:`[break expression]s` and the :t:`type` of the + :t:`tail expression`. + +* :dp:`fls_97v4fnekrRXI` + Otherwise, if the :t:`block expression` contains at least one + :t:`break expression`, then the :t:`type` is the :t:`unified type` of the + :t:`break types` of all :t:`[break expression]s`. + +* :dp:`fls_ob76y2ymdd27` + Otherwise, if the :t:`block expression` has a :t:`tail expression`, then the + :t:`type` is the :t:`type` of the :t:`tail expression`. + +* :dp:`fls_u0avbm147nyh` + Otherwise the :t:`type` is the :t:`unit type`. + +:dp:`fls_1hzup0sf8l7l` +The :t:`value` of a :t:`block expression` is determined as follows: + +* :dp:`fls_kKZPKvJ902cw` + If the :t:`block expression` contains at least one :t:`break expression` and + a :t:`break expression` broke out the :t:`block expression`, then the + :t:`value` is the :t:`break value` of the :t:`break expression` that + broke out of the :t:`block expression`. + +* :dp:`fls_9nmssjseq3jt` + Otherwise, if the :t:`block expression` has a :t:`tail expression`, then the + :t:`value` is the :t:`value` of the :t:`tail expression`. + +* :dp:`fls_a3ulnvyc1ut` + Otherwise the :t:`value` is the :t:`unit value`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_elcl73psruxw` +The :t:`evaluation` of a :t:`block expression` proceeds as follows: + +#. :dp:`fls_13b5n127rj92` + Each :t:`statement` is executed in declarative order. + +#. :dp:`fls_nzdpw59plr2g` + The :t:`tail expression` is evaluated. + +.. rubric:: Examples + +.. code-block:: rust + + { + fn_call(); + 42 + } + +.. _fls_aadan19t5006: + +Async Blocks +~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + AsyncBlockExpression ::= + $$async$$ $$move$$? BlockExpression + +.. rubric:: Legality Rules + +:dp:`fls_hhidi5ukxo` +An :t:`async block expression` is a :t:`block expression` that is specified +with :t:`keyword` ``async`` and encapsulates behavior which is executed in +an asynchronous manner. + +:dp:`fls_oisws5qykedi` +An :t:`async block expression` denotes a new :t:`async control flow boundary`. + +:dp:`fls_tzclkasinpoq` +An :t:`async block expression` is subject to :t:`capturing`. + +:dp:`fls_ncd0wkgtldem` +The :t:`type` of an :t:`async block expression` is a unique anonymous :t:`type` +that implement the :std:`core::future::Future` trait. + +:dp:`fls_pvnofoomgwl5` +The :t:`value` of an :t:`async block expression` is a :t:`value` of the +:t:`async block expression`'s :t:`type`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_9ghp5yet75y6` +The :t:`evaluation` of an :t:`async block expression` produces a :t:`value` of +the :t:`type` of the :t:`async block expression` that :t:`captures ` +the :t:`[capture target]s` of the :t:`async block expression`. + +.. rubric:: Examples + +.. code-block:: rust + + async { + 42 + } + +.. _fls_0ybsR1hEo7wV: + +Named Blocks +~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + NamedBlockExpression ::= + Label BlockExpression + +.. rubric:: Legality Rules + +:dp:`fls_J8wJNfcSAYrS` +A :t:`named block expression` is a :t:`block expression` with a :t:`label`. + +:dp:`fls_B4NBv2jfZLuy` +The :t:`type` of the :t:`named block expression` is the :t:`type` of its +:t:`block expression`. + +:dp:`fls_YxvAUUYAPkaq` +The :t:`value` of the :t:`named block expression` is the :t:`value` of its +:t:`block expression`. + +.. rubric:: Examples + +.. code-block:: rust + + 'block: { + break 'block 1; + 3 + } + +.. _fls_8wnyln2nmg4y: + +Unsafe Blocks +~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + UnsafeBlockExpression ::= + $$unsafe$$ BlockExpression + +.. rubric:: Legality Rules + +:dp:`fls_2az5huhcxzzy` +An :t:`unsafe block expression` is a :t:`block expression` that is specified +with :t:`keyword` ``unsafe``. + +:dp:`fls_5ucvvja4dzoc` +An :t:`unsafe block expression` allows :t:`unsafety`. + +:dp:`fls_j3mmg317q442` +The :t:`type` of the :t:`unsafe block expression` is the :t:`type` of its +:t:`block expression`. + +:dp:`fls_nygurv3x3wq6` +The :t:`value` of the :t:`unsafe block expression` is the :t:`value` of its +:t:`block expression`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_pv5gcy3tbjwo` +The :t:`evaluation` of an :t:`unsafe block expression` evaluates its +:t:`block expression`. + +.. rubric:: Examples + +.. code-block:: rust + + unsafe { + unsafe_fn_call() + } + +.. _fls_izdv9i4spokw: + +Operator Expressions +-------------------- + +.. rubric:: Syntax + +.. syntax:: + + OperatorExpression ::= + ArithmeticExpression + | AssignmentExpression + | BitExpression + | BorrowExpression + | ComparisonExpression + | CompoundAssignmentExpression + | DereferenceExpression + | ErrorPropagationExpression + | LazyBooleanExpression + | NegationExpression + | TypeCastExpression + +.. rubric:: Legality Rules + +:dp:`fls_ursc5ynymoy` +An :t:`operator expression` is an :t:`expression` that involves an operator. + +.. _fls_qztk0bkju9u: + +Borrow Expression +~~~~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + BorrowExpression ::= + $$&$$ $$mut$$? Operand + +.. rubric:: Legality Rules + +:dp:`fls_nnqfkl228hjx` +A :t:`borrow expression` is an :t:`expression` that borrows the :t:`value` of +its :t:`operand` and creates a :t:`reference` to the memory location of its +:t:`operand`. + +:dp:`fls_r7ix8webgqlm` +An :t:`immutable borrow expression` is a :t:`borrow expression` that lacks +:t:`keyword` ``mut``. + +:dp:`fls_50j167r4v61b` +A :t:`mutable borrow expression` is a :t:`borrow expression` that has +:t:`keyword` ``mut``. + +:dp:`fls_ya77l2zgtilp` +When the :t:`operand` of a :t:`borrow expression` is a :t:`place expression`, +the :t:`borrow expression` produces a :t:`reference` to the memory location +indicated by the :t:`operand`. The memory location is placed in a borrowed +state, or simply :t:`borrowed`. + +:dp:`fls_chr03xll75d` +The :t:`type` of a :t:`borrow expression` is determined as follows: + +* :dp:`fls_5b2x5ri2w54r` + If the :t:`borrow expression` denotes a :t:`shared reference`, then the + :t:`type` is ``&T``, where ``T`` is the :t:`type` of the :t:`operand`. + +* :dp:`fls_agl09ia869rk` + If the :t:`borrow expression` denotes a :t:`mutable reference`, then the + :t:`type` is ``&mut T``, where ``T`` is the :t:`type` of the :t:`operand`. + +:dp:`fls_8cvmee9bzs40` +The :t:`value` of a :t:`borrow expression` is the address of its :t:`operand`. + +:dp:`fls_LuaPBicDlDTT` +It is a static error if a :t:`borrow expression` would create an unaligned +reference to a :t:`field` in an :t:`abstract data type` subject to +:t:`attribute` :c:`repr`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_2jd0mgw4zja4` +The :t:`evaluation` of a :t:`borrow expression` evaluates its :t:`operand`. + +.. rubric:: Examples + +.. code-block:: rust + + let mut answer = 42; + +:dp:`fls_350qejoq9i23` +Mutable borrow. + +.. syntax:: + + let ref_answer = &mut answer; + +.. _fls_5cm4gkt55hjh: + +Dereference Expression +~~~~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + DereferenceExpression ::= + $$*$$ Operand + +.. rubric:: Legality Rules + +:dp:`fls_f6wktzofzdn1` +A :t:`dereference expression` is an :t:`expression` that obtains the pointed-to +memory location of its :t:`operand`. + +:dp:`fls_aeh5pzpcjveq` +When the :t:`operand` of a :t:`dereference expression` is of a :t:`pointer +type`, the :t:`dereference expression` denotes the pointed-to memory location of +the :t:`operand`, or the :t:`dereference` of the :t:`operand`. + +:dp:`fls_9cc0ml2sru6x` +The :t:`dereference` is assignable when the :t:`dereference expression` is a +:t:`mutable place expression`. + +:dp:`fls_8i4jzksxlrw0` +Dereferencing a :t:`raw pointer` shall require :t:`unsafe context`. + +:dp:`fls_d68ddlse4zp` +If the context of a :t:`dereference expression` is an +:t:`immutable place expression context`, then the :t:`dereference expression` +is equivalent to :t:`expression` ``*core::ops::Deref::deref(&operand)``. + +:dp:`fls_g73vguanbs1x` +If the context of a :t:`dereference expression` is a +:t:`mutable place expression context`, then the :t:`dereference expression` +is equivalent to :t:`expression` +``*core::ops::DerefMut::deref_mut(&mut operand)``. + +:dp:`fls_8ibfqxtnahzx` +The :t:`type` of a :t:`dereference expression` is determined as follows: + +* :dp:`fls_7e7tka4f2f1a` + If the :t:`type` of the :t:`operand` is ``&mut T``, ``&T``, ``*mut T``, or + ``*const T``, then the :t:`type` is ``T``. + +* :dp:`fls_y9bc691kkh6v` + Otherwise the :t:`type` is :t:`associated type` + :std:`core::ops::Deref::Target`. + +:dp:`fls_gw49nukfveib` +The :t:`value` of a :t:`dereference expression` is determined as follows: + +* :dp:`fls_jjf3sz9ddfhy` + If the :t:`type` of the :t:`operand` is ``&mut T``, ``&T``, ``*mut T``, or + ``*const T``, then the :t:`value` is the pointed-to :t:`value`. + +* :dp:`fls_fyend8kkpqq4` + Otherwise the :t:`value` is the result of evaluating :t:`expression` + ``*core::ops::Deref::deref(&operand)`` or :t:`expression` + ``*core::ops::DerefMut::deref_mut(&mut operand)`` respectively. + +.. rubric:: Dynamic Semantics + +:dp:`fls_72bpdsxxbgeq` +The :t:`evaluation` of a :t:`dereference expression` evaluates its :t:`operand`. + +.. rubric:: Undefined Behavior + +:dp:`fls_9wgldua1u8yt` +It is undefined behavior to dereference a :t:`raw pointer` that is either +:t:`dangling` or unaligned. + +.. rubric:: Examples + +:dp:`fls_9ifaterm8nop` +See :p:`6.4.1. ` for the declaration of ``ref_answer``. + +.. code-block:: rust + + let deref_asnwer = *ref_answer; + +.. _fls_pocsh1neugpc: + +Error Propagation Expression +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + ErrorPropagationExpression ::= + Operand $$?$$ + +.. rubric:: Legality Rules + +:dp:`fls_8q59wbumrt5s` +An :t:`error propagation expression` is an :t:`expression` that either evaluates +to a :t:`value` of its :t:`operand` or returns a value to the enclosing control +flow boundary. + +:dp:`fls_mq2h4seoxah` +An :t:`error propagation expression` shall appear within a :t:`control flow +boundary`. + +:dp:`fls_ab4vhq4nwn7f` +The :t:`type` of an :t:`error propagation expression` is :t:`associated type` +:std:`core::ops::Try::Output`. + +:dp:`fls_z4zikxy2b1em` +The :t:`value` of an :t:`error propagation expression` is determined as follows: + +* :dp:`fls_a09614kgsspt` + If the :t:`evaluation` of the :t:`error propagation expression` executed + :std:`core::ops::Try::branch`, then the :t:`value` is the :t:`value` of + the :std:`core::ops::ControlFlow::Continue` variant. + +* :dp:`fls_8df018q7y6g` + Otherwise control flow is returned to the end of the enclosing :t:`control + flow boundary`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_alk4qvfprnvy` +The :t:`evaluation` of an :t:`error propagation expression` of the form + +.. code-block:: rust + + expression? + +:dp:`fls_1nnhjcgy8kdh` +is equivalent to the :t:`evaluation` the following :t:`expression`: + +.. code-block:: rust + + match core::ops::Try::branch(expression) { + core::ops::ControlFlow::Continue(value) => + value, + + core::ops::ControlFlow::Break(value) => + core::ops::FromResidual::from_residual(value), + } + +.. rubric:: Examples + +.. code-block:: rust + + fn try_to_parse() -> Result { + "42".parse()? + } + + fn try_some() -> Option { + let val = Some(42)?; + Some(val) + } + +.. _fls_wrecura8u5ar: + +Negation Expression +~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + NegationExpression ::= + NegationOperator Operand + + NegationOperator ::= + BitwiseNegationOperator + | SignNegationOperator + + BitwiseNegationOperator ::= + $$!$$ + + SignNegationOperator ::= + $$-$$ + +.. rubric:: Legality Rules + +:dp:`fls_pfa81kv2mru8` +A :t:`negation expression` is an :t:`expression` that negates its :t:`operand`. + +:dp:`fls_plcut8vzdwox` +The :t:`type` of the :t:`operand` of a :t:`negation expression` with a +:s:`BitwiseNegationOperator` shall implement the :std:`core::ops::Not` +:t:`trait`. + +:dp:`fls_ohu0kljfexd3` +The :t:`type` of a :t:`negation expression` with a :s:`BitwiseNegationOperator` +is :t:`associated type` :std:`core::ops::Not::Output`. + +:dp:`fls_ghqvj8q71o97` +The :t:`value` of a :t:`negation expression` with a :s:`BitwiseNegationOperator` +is the result of ``core::ops::Not::not(operand)``. + +:dp:`fls_3m4mgqnzqhri` +The :t:`type` of the :t:`operand` of a :t:`negation expression` with a +:s:`SignNegationOperator` shall implement the :std:`core::ops::Neg` :t:`trait`. + +:dp:`fls_u7gzm6n75rzm` +The :t:`type` of a :t:`negation expression` with a :s:`SignNegationOperator` +shall be :t:`associated type` :std:`core::ops::Neg::Output`. + +:dp:`fls_9rmq7iaf092d` +The :t:`value` of a :t:`negation expression` with a :s:`SignNegationOperator` is +the result of ``core::ops::Neg::neg(operand)``. + +.. rubric:: Dynamic Semantics + +:dp:`fls_yzt6pcsvj3a` +The :t:`evaluation` of a :t:`negation expression` with a +:s:`BitwiseNegationOperator` proceeds as follows: + +#. :dp:`fls_8tgxtprtifrr` + The :t:`operand` is evaluated. + +#. :dp:`fls_rFFlt33a5RsZ` + If the type of the :t:`operand` is an :t:`integer type`, then the + :t:`negation expression` evaluates to the bitwise negation of the + :t:`operand`. + +#. :dp:`fls_h7pIl1WZ8Y2t` + If the type of the :t:`operand` is :c:`bool`, then the result is computed as + follows, depending on the :t:`value` of the :t:`operand`: + + .. list-table:: + + * - :dp:`fls_yfK3pGHzUo3x` + - **Operand** + - **Result** + * - :dp:`fls_dcNtgLq2hRZb` + - ``true`` + - ``false`` + * - :dp:`fls_sxLwuITs62sN` + - ``false`` + - ``true`` + +#. :dp:`fls_gn3dnuxm2h8m` + If the type of :t:`operand` is neither an :t:`integer type` nor + :c:`bool`, then ``core::ops::Not::not(operand)`` is invoked. + +:dp:`fls_tsou6yz4mfte` +The :t:`evaluation` of a :t:`negation expression` with a +:s:`SignNegationOperator` proceeds as follows: + +#. :dp:`fls_zdfgqky85r1f` + The :t:`operand` is evaluated. + +#. :dp:`fls_CutpaCFCGHQs` + If the type of the :t:`operand` is an :t:`integer type`, then the + :t:`negation expression` evaluates to the :t:`value` of the :t:`operand`, + with its sign inverted. If the result of the :t:`negation expression` does + not fit within the range of the :t:`operand` type, then + :t:`arithmetic overflow` occurs. + +#. :dp:`fls_B2eKGWaJhFKD` + If the type of the :t:`operand` is a :t:`floating-point type`, then the + :t:`negation expression` evaluates to the :t:`value` of the :t:`operand`, + with its sign inverted. No :t:`arithmetic overflow` is possible. + +#. :dp:`fls_uldh10k77sng` + If the type of the :t:`operand` is neither an :t:`integer type` nor a + :t:`floating-point type`, then ``core::ops::Neg::neg(operand)`` is invoked. + +.. rubric:: Examples + +:dp:`fls_uo6vv2yf8usx` +Sign negation. + +.. code-block:: rust + + -42 + +:dp:`fls_hbrg0d98jak5` +Bitwise negation. + +.. code-block:: rust + + !42 + +:dp:`fls_kqtr9c3jorvg` +Logical negation. + +.. code-block:: rust + + !false + +.. _fls_1k9mkv7rbezi: + +Arithmetic Expressions +~~~~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + ArithmeticExpression ::= + AdditionExpression + | DivisionExpression + | MultiplicationExpression + | RemainderExpression + | SubtractionExpression + + AdditionExpression ::= + LeftOperand $$+$$ RightOperand + + DivisionExpression ::= + LeftOperand $$/$$ RightOperand + + MultiplicationExpression ::= + LeftOperand $$*$$ RightOperand + + RemainderExpression ::= + LeftOperand $$%$$ RightOperand + + SubtractionExpression ::= + LeftOperand $$-$$ RightOperand + +.. rubric:: Legality Rules + +:dp:`fls_asibqpe3z95h` +An :t:`arithmetic expression` is an :t:`expression` that computes a :t:`value` +from two :t:`[operand]s` using arithmetic. + +:dp:`fls_kr8Opj3c7uvb` +An :t:`addition expression` is an :t:`arithmetic expression` that uses addition. + +:dp:`fls_8imzo7agyx0k` +The :t:`type` of the :t:`left operand` of an :t:`addition expression` shall +implement the :std:`core::ops::Add` :t:`trait` with the :t:`type` of the +:t:`right operand` as the :t:`trait implementation` :t:`type parameter`. + +:dp:`fls_vk17mfv47wk9` +The :t:`type` of an :t:`addition expression` is :t:`associated type` +:std:`core::ops::Add::Output`. + +:dp:`fls_ryzhdpxgm7ii` +The :t:`value` of an :t:`addition expression` is the result of +``core::ops::Add::add(left_operand, right_operand)``. + +:dp:`fls_dstca76y08ge` +A :t:`division expression` is an :t:`arithmetic expression` that uses division. + +:dp:`fls_f1puss9t4btz` +The :t:`type` of the :t:`left operand` of a :t:`division expression` shall +implement the :std:`core::ops::Div` :t:`trait` where the :t:`type` of the +:t:`right operand` is the :t:`trait implementation` :t:`type parameter`. + +:dp:`fls_5rdrkvspw57z` +The :t:`type` of a :t:`division expression` is :t:`associated type` +:std:`core::ops::Div::Output`. + +:dp:`fls_thyq4h55mx55` +The :t:`value` of a :t:`division expression` is the result of +``core::ops::Div::div(left_operand, right_operand)``. + +:dp:`fls_kf41bphvlse3` +A :t:`multiplication expression` is an :t:`arithmetic expression` that uses +multiplication. + +:dp:`fls_hrml95g2txcj` +The :t:`type` of the :t:`left operand` of a :t:`multiplication expression` +shall implement the :std:`core::ops::Mul` :t:`trait` where the :t:`type` of the +:t:`right operand` is the :t:`trait implementation` :t:`type parameter`. + +:dp:`fls_ittf4yggk7do` +The :t:`type` of a :t:`multiplication expression` is :t:`associated type` +:std:`core::ops::Mul::Output`. + +:dp:`fls_ylqm6wucq2sw` +The :t:`value` of a :t:`multiplication expression` is the result of +``core::ops::Mul::mul(left_operand, right_operand)``. + +:dp:`fls_3de9ulyzuoa` +A :t:`remainder expression` is an :t:`arithmetic expression` that uses remainder +division. + +:dp:`fls_8fbhreyynhid` +The :t:`type` of the :t:`left operand` of a :t:`remainder expression` shall +implement the :std:`core::ops::Rem` :t:`trait` where the :t:`type` of the +:t:`right operand` is the :t:`trait implementation` :t:`type parameter`. + +:dp:`fls_u3jwnrqun5kl` +The :t:`type` of a :t:`remainder expression` is :t:`associated type` +:std:`core::ops::Rem::Output`. + +:dp:`fls_2ude3wrxji2p` +The :t:`value` of a :t:`remainder expression` is the result of +``core::ops::Rem::rem(left_operand, right_operand)``. + +:dp:`fls_aalxhbvu8kdi` +A :t:`subtraction expression` is an :t:`arithmetic expression` that uses +subtraction. + +:dp:`fls_fjcv1nm8tlgf` +The :t:`type` of the :t:`left operand` of a :t:`subtraction expression` shall +implement the :std:`core::ops::Sub` :t:`trait` where the :t:`type` of the +:t:`right operand` is the :t:`trait implementation` :t:`type parameter`. + +:dp:`fls_9x2i1zlsm364` +The :t:`type` of a :t:`subtraction expression` is :t:`associated type` +:std:`core::ops::Sub::Output`. + +:dp:`fls_v8vekngd27sz` +The :t:`value` of a :t:`subtraction expression` is the result of +``core::ops::Sub::sub(left_operand, right_operand)``. + +.. rubric:: Dynamic Semantics + +:dp:`fls_5nsa9zefz9cv` +The :t:`evaluation` of an :t:`addition expression` proceeds as follows: + +#. :dp:`fls_u3pstd6xe43y` + The :t:`left operand` is evaluated. + +#. :dp:`fls_jjmc1xgny77` + The :t:`right operand` is evaluated. + +#. :dp:`fls_NcLf4o1dpniS` + If the :t:`type` of both :t:`[operand]s` is the same :t:`integer type` or + :t:`floating-point type`, then the :t:`addition expression` evaluates to the + sum of the :t:`[operand]s`, following the rules of unsigned integer addition + for :t:`[unsigned integer type]s`, two's complement addition for + :t:`[signed integer type]s`, or floating-point addition for + :t:`[floating-point type]s`. If unsigned integer addition or two's + complement addition is performed, then the operation may result in an + :t:`arithmetic overflow`. + +#. :dp:`fls_cayhj5hcuhcg` + Otherwise, ``core::ops::Add::add(left_operand, right_operand)`` is invoked. + +:dp:`fls_43knkymqpj7t` +The :t:`evaluation` of a :t:`division expression` proceeds as follows: + +#. :dp:`fls_62gpbubfj30w` + The :t:`left operand` is evaluated. + +#. :dp:`fls_bveocgaagk1n` + The :t:`right operand` is evaluated. + +#. :dp:`fls_zLroZh43MOtN` + If the :t:`type` of both :t:`[operand]s` is the same :t:`integer type` or + :t:`floating-point type`, then the :t:`division expression` evaluates to the + quotient of the :t:`[operand]s`, following the rules of unsigned integer + division for :t:`[unsigned integer type]s`, two's complement division for + :t:`[signed integer type]s`, or floating-point division for + :t:`[floating-point type]s`. + + #. :dp:`fls_Q9dhNiICGIfr` + If unsigned integer division is performed and the :t:`right operand` is + 0, then the operation results in a :t:`panic`. + + #. :dp:`fls_albbLSTYtmyq` + If two's complement division is performed and the :t:`right operand` is 0 + or the result does not fit in the target type, then the operation results + in a :t:`panic`. + +#. :dp:`fls_qd6ggdgq2hob` + Otherwise, ``core::ops::Div::div(left_operand, right_operand)`` is invoked. + +:dp:`fls_lr2a21v5en59` +The :t:`evaluation` of a :t:`multiplication expression` proceeds as follows: + +#. :dp:`fls_kpbxcdaflb06` + The :t:`left operand` is evaluated. + +#. :dp:`fls_b94ojbfukhvd` + The :t:`right operand` is evaluated. + +#. :dp:`fls_Et5gp1I7VqBX` + If the :t:`type` of both :t:`[operand]s` is the same :t:`integer type` or + :t:`floating-point type`, then the :t:`multiplication expression` evaluates + to the product of the :t:`[operand]s`, following the rules of unsigned + integer multiplication for :t:`[unsigned integer type]s`, two's complement + multiplication for :t:`[signed integer type]s`, or floating-point + multiplication for :t:`[floating-point type]s`. If unsigned integer + multiplication or two's complement multiplication is performed, then the + operation may result in an :t:`arithmetic overflow`. + +#. :dp:`fls_blyr18iao20n` + Otherwise, ``core::ops::Mul::mul(left_operand, right_operand)`` is invoked. + +:dp:`fls_g28igfbnwfe0` +The :t:`evaluation` of a :t:`remainder expression` proceeds as follows: + +#. :dp:`fls_thcumw8n8xbw` + The :t:`left operand` is evaluated. + +#. :dp:`fls_gld1u9fnsj6d` + The :t:`right operand` is evaluated. + +#. :dp:`fls_Kdr6fLrRj0Du` + If the :t:`type` of both :t:`[operand]s` is the same :t:`integer type` or + :t:`floating-point type`, then the :t:`remainder expression` evaluates to + the remainder of the division of the :t:`left operand` by the + :t:`right operand`, following the rules of unsigned integer division for + :t:`[unsigned integer type]s`, two's complement division for + :t:`[signed integer type]s`, or floating-point division for + :t:`[floating-point type]s`. + + #. :dp:`fls_FxLnXeGT2n9u` + If unsigned integer division is performed and the :t:`right operand` is + 0, then the operation results in a :t:`panic`. + + #. :dp:`fls_kN0HnldvDXSg` + If two's complement division is performed and the :t:`right operand` is 0 + or the resulting remainder does not fit in the target type, then the + operation results in a :t:`panic`. + +#. :dp:`fls_k7lmxvpkxtub` + Otherwise, ``core::ops::Rem::rem(left_operand, right_operand)`` is invoked. + +:dp:`fls_bndpd66973ev` +The :t:`evaluation` of a :t:`subtraction expression` proceeds as follows: + +#. :dp:`fls_izmfimd4yg27` + The :t:`left operand` is evaluated. + +#. :dp:`fls_ad9tc6ki8vcq` + The :t:`right operand` is evaluated. + +#. :dp:`fls_Vy0DyZqfy7Iv` + If the :t:`type` of both :t:`[operand]s` is the same :t:`integer type` or + :t:`floating-point type`, then the :t:`subtraction expression` evaluates to + the difference of the :t:`[operand]s`, following the rules of unsigned + integer subtraction for :t:`[unsigned integer type]s`, two's complement + subtraction for :t:`[signed integer type]s`, or floating-point subtraction + for :t:`[floating-point type]s`. If unsigned integer subtraction or two's + complement subtraction is performed, then the operation may result in an + :t:`arithmetic overflow`. + +#. :dp:`fls_b9g0r9vc4rou` + Otherwise, ``core::ops::Sub::sub(left_operand, right_operand)`` is invoked. + +.. rubric:: Examples + +.. code-block:: rust + + 1 + 2 + 4.0 / 3.29 + 8.4 * 5.3 + 10 % 4 + 3 - 2 + +.. _fls_abp6tjbz8tpn: + +Bit Expressions +~~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + BitExpression ::= + BitAndExpression + | BitOrExpression + | BitXOrExpression + | ShiftLeftExpression + | ShiftRightExpression + + BitAndExpression ::= + LeftOperand $$&$$ RightOperand + + BitOrExpression ::= + LeftOperand $$|$$ RightOperand + + BitXorExpression ::= + LeftOperand $$^$$ RightOperand + + ShiftLeftExpression ::= + LeftOperand $$<<$$ RightOperand + + ShiftRightExpression ::= + LeftOperand $$>>$$ RightOperand + +.. rubric:: Legality Rules + +:dp:`fls_3zd59yuywz6l` +A :t:`bit expression` is an :t:`expression` that computes a :t:`value` from two +:t:`[operand]s` using bit arithmetic. + +:dp:`fls_f6mmva3lbj1i` +A :t:`bit and expression` is a :t:`bit expression` that uses bit and arithmetic. + +:dp:`fls_cmowpfrcelke` +The :t:`type` of the :t:`left operand` of a :t:`bit and expression` shall +implement the :std:`core::ops::BitAnd` :t:`trait` where the :t:`type` of the +:t:`right operand` is the :t:`trait implementation` :t:`type parameter`. + +:dp:`fls_kchprk9z6xun` +The :t:`type` of a :t:`bit and expression` is :t:`associated type` +:std:`core::ops::BitAnd::Output`. + +:dp:`fls_dimu987fw4kg` +The :t:`value` of a :t:`bit and expression` is the result of +``core::ops::BitAnd::bitand(left_operand, right_operand)``. + +:dp:`fls_3136k1y6x3cu` +A :t:`bit or expression` is a :t:`bit expression` that uses bit or arithmetic. + +:dp:`fls_oo2ynd8e1ys6` +The :t:`type` of the :t:`left operand` of a :t:`bit or expression` shall +implement the :std:`core::ops::BitOr` :t:`trait` where the :t:`type` of the +:t:`right operand` is the :t:`trait implementation` :t:`type parameter`. + +:dp:`fls_s6hkt5fg598y` +The :t:`type` of a :t:`bit or expression` is :t:`associated type` +:std:`core::ops::BitOr::Output`. + +:dp:`fls_osfse0t6ua8a` +The :t:`value` of a :t:`bit or expression` is the result of +``core::ops::BitOr::bitor(left_operand, right_operand)``. + +:dp:`fls_j7ujcuthga1i` +A :t:`bit xor expression` is a :t:`bit expression` that uses bit exclusive or +arithmetic. + +:dp:`fls_fnywefl9nty2` +The :t:`type` of the :t:`left operand` of a :t:`bit xor expression` shall +implement the :std:`core::ops::BitXor` :t:`trait` where the :t:`type` of the +:t:`right operand` is the :t:`trait implementation` :t:`type parameter`. + +:dp:`fls_4f24nyx0ix0j` +The :t:`type` of a :t:`bit xor expression` is :t:`associated type` +:std:`core::ops::BitXor::Output`. + +:dp:`fls_8tb22c6zbp3` +The :t:`value` of a :t:`bit xor expression` is the result of +``core::ops::BitXor::bitxor(left_operand, right_operand)``. + +:dp:`fls_caxn774ij8lk` +A :t:`shift left expression` is a :t:`bit expression` that uses bit shift left +arithmetic. + +:dp:`fls_1f4pc612f2a8` +The :t:`type` of the :t:`left operand` of a :t:`shift left expression` shall +implement the :std:`core::ops::Shl` :t:`trait` where the :t:`type` of the +:t:`right operand` is the :t:`trait implementation` :t:`type parameter`. + +:dp:`fls_8trozue35xe4` +The :t:`type` of a :t:`shift left expression` is :t:`associated type` +:std:`core::ops::Shl::Output`. + +:dp:`fls_kqntxbwnc58v` +The :t:`value` of a :t:`shift left expression` is the result of +``core::ops::Shl::shl(left_operand, right_operand)``. + +:dp:`fls_t709sl4co3al` +A :t:`shift right expression` is a :t:`bit expression` that uses bit shift right +arithmetic. + +:dp:`fls_onutb0b9p9zj` +The :t:`type` of the :t:`left operand` of a :t:`shift right expression` shall +implement the :std:`core::ops::Shr` :t:`trait` where the :t:`type` of the +:t:`right operand` is the :t:`trait implementation` :t:`type parameter`. + +:dp:`fls_yq8rtwfp3nv0` +The :t:`type` of a :t:`shift right expression` is :t:`associated type` +:std:`core::ops::Shr::Output`. + +:dp:`fls_fbazfgd5m1ot` +The :t:`value` of a :t:`shift right expression` is the result of +``core::ops::Shr::shr(left_operand, right_operand)``. + +.. rubric:: Dynamic Semantics + +:dp:`fls_f4o8xlu67okn` +The :t:`evaluation` of a :t:`bit and expression` proceeds as follows: + +#. :dp:`fls_kp747xqekyrr` + The :t:`left operand` is evaluated. + +#. :dp:`fls_m0pdk78dah6n` + The :t:`right operand` is evaluated. + +#. :dp:`fls_m2hsk41hwm2j` + ``core::ops::BitAnd::bitand(left_operand, right_operand)`` is invoked. + +:dp:`fls_p9rlmjhbnbao` +The :t:`evaluation` of a :t:`bit or expression` proceeds as follows: + +#. :dp:`fls_vprp53kv64q6` + The :t:`left operand` is evaluated. + +#. :dp:`fls_d456ummq6vrk` + The :t:`right operand` is evaluated. + +#. :dp:`fls_n269ufyesndz` + ``core::ops::BitOr::bitor(left_operand, right_operand)`` is invoked. + +:dp:`fls_i9iqtobheivu` +The :t:`evaluation` of a :t:`bit xor expression` proceeds as follows: + +#. :dp:`fls_htw2tpujktwt` + The :t:`left operand` is evaluated. + +#. :dp:`fls_gf9tyu1idpjk` + The :t:`right operand` is evaluated. + +#. :dp:`fls_u5irwqswbsvu` + ``core::ops::BitXor::bitxor(left_operand, right_operand)`` is invoked. + +:dp:`fls_2kkpr955i4lm` +The :t:`evaluation` of a :t:`shift left expression` proceeds as follows: + +#. :dp:`fls_7p64lgnjxylz` + The :t:`left operand` is evaluated. + +#. :dp:`fls_ieh1itrkcnf6` + The :t:`right operand` is evaluated. + +#. :dp:`fls_f0p70y92k14f` + ``core::ops::Shl::shl(left_operand, right_operand)`` is invoked. + +:dp:`fls_303r0u6ug215` +The :t:`evaluation` of a :t:`shift right expression` proceeds as follows: + +#. :dp:`fls_4gxj18t6cnzq` + The :t:`left operand` is evaluated. + +#. :dp:`fls_gurl2ve58drz` + The :t:`right operand` is evaluated. + +#. :dp:`fls_xkyj83mcb9d5` + ``core::ops::Shr::shr(left_operand, right_operand)`` is invoked. + +.. rubric:: Examples + +.. code-block:: rust + + 0b1010 & 0b1100 + 0b1010 | 0b0011 + 0b1010 ^ 0b1001 + 13 << 3 + -10 >> 2 + +.. _fls_nsvzzbldhq53: + +Comparison Expressions +~~~~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + ComparisonExpression ::= + EqualsExpression + | GreaterThanExpression + | GreaterThanOrEqualsExpression + | LessThanExpression + | LessThanOrEqualsExpression + | NotEqualsExpression + + EqualsExpression ::= + LeftOperand $$==$$ RightOperand + + GreaterThanExpression ::= + LeftOperand $$>$$ RightOperand + + GreaterThanOrEqualsExpression ::= + LeftOperand $$>=$$ RightOperand + + LessThanExpression ::= + LeftOperand $$<$$ RightOperand + + LessThanOrEqualsExpression ::= + LeftOperand $$<=$$ RightOperand + + NotEqualsExpression ::= + LeftOperand $$!=$$ RightOperand + +.. rubric:: Legality Rules + +:dp:`fls_yzuceqx6nxwa` +A :t:`comparison expression` is an :t:`expression` that compares the +:t:`[value]s` of two :t:`[operand]s`. + +:dp:`fls_asfrqemqviad` +A :t:`comparison expression` implicitly takes :t:`[shared borrow]s` of its +:t:`[operand]s`. + +:dp:`fls_9s4re3ujnfis` +The :t:`type` of a :t:`comparison expression` is :t:`type` :c:`bool`. + +:dp:`fls_ruyho6cu7rxg` +An :t:`equals expression` is a :t:`comparison expression` that tests equality. + +:dp:`fls_8echqk9po1cf` +The :t:`type` of the :t:`left operand` of an :t:`equals expression` shall +implement the :std:`core::cmp::PartialEq` :t:`trait` where the :t:`type` of the +:t:`right operand` is the :t:`trait implementation` :t:`type parameter`. + +:dp:`fls_d62qfloqk2ub` +The :t:`value` of an :t:`equals expression` is the result of +``core::cmp::PartialEq::eq(&left_operand, &right_operand)``. + +:dp:`fls_wapl0ir7uvbp` +A :t:`greater-than expression` is a :t:`comparison expression` that tests for a +greater-than relationship. + +:dp:`fls_x2s6ydvj5zyd` +The :t:`type` of the :t:`left operand` of a :t:`greater-than expression` shall +implement the :std:`core::cmp::PartialOrd` :t:`trait` where the :t:`type` of the +:t:`right operand` is the :t:`trait implementation` :t:`type parameter`. + +:dp:`fls_pso38dowbk91` +The :t:`value` of a :t:`greater-than expression` is the result of +``core::cmp::PartialOrd::gt(&left_operand, &right_operand)``. + +:dp:`fls_7n5gol6a8lod` +A :t:`greater-than-or-equals expression` is a :t:`comparison expression` that +tests for a greater-than-or-equals relationship. + +:dp:`fls_hholzcbp5u3n` +The :t:`type` of the :t:`left operand` of a +:t:`greater-than-or-equals expression` shall implement the +:std:`core::cmp::PartialOrd` :t:`trait` where the :t:`type` of the +:t:`right operand` is the :t:`trait implementation` :t:`type parameter`. + +:dp:`fls_wytygse41vzm` +The :t:`value` of a :t:`greater-than-or-equals expression` is the result of +``core::cmp::PartialOrd::ge(&left_operand, &right_operand)``. + +:dp:`fls_yd4qqi39w248` +A :t:`less-than expression` is a :t:`comparison expression` that tests for a +less-than relationship. + +:dp:`fls_ynibdcke3etb` +The :t:`type` of the :t:`left operand` of a :t:`less-than expression` shall +implement the :std:`core::cmp::PartialOrd` :t:`trait` where the :t:`type` of +the :t:`right operand` is the :t:`trait implementation` :t:`type parameter`. + +:dp:`fls_xmtxkit3qpw7` +The :t:`value` of a :t:`less-than expression` is the result of +``core::cmp::PartialOrd::lt(&left_operand, &right_operand)``. + +:dp:`fls_yxwe1o27u6ns` +A :t:`less-than-or-equals expression` is a :t:`comparison expression` that tests +for a less-than-or-equals relationship. + +:dp:`fls_6dgfieyxdan0` +The :t:`type` of the :t:`left operand` of a :t:`less-than-or-equals expression` +shall implement the :std:`core::cmp::PartialOrd` :t:`trait` where the :t:`type` +of the :t:`right operand` is the :t:`trait implementation` :t:`type parameter`. + +:dp:`fls_7pfsqby2saag` +The :t:`value` of a :t:`less-than-or-equals expression` is the result of +``core::cmp::PartialOrd::le(&left_operand, &right_operand)``. + +:dp:`fls_w71j7i3n1kit` +A :t:`not-equals expression` is a :t:`comparison expression` that tests for +inequality. + +:dp:`fls_qzo1torhv5i3` +The :t:`type` of the :t:`left operand` of a :t:`not-equals expression` shall +implement the :std:`core::cmp::PartialEq` :t:`trait` where the :t:`type` of the +:t:`right operand` is the :t:`trait implementation` :t:`type parameter`. + +:dp:`fls_kodwkh58hmdv` +The :t:`value` of a :t:`not-equals expression` is the result of +``core::cmp::PartialEq::ne(&left_operand, &right_operand)``. + +.. rubric:: Dynamic Semantics + +:dp:`fls_ydt9zvh0h5ex` +The :t:`evaluation` of an :t:`equals expression` proceeds as follows: + +#. :dp:`fls_4vbrc31r0o60` + The :t:`left operand` is evaluated. + +#. :dp:`fls_hyy974ksbbrq` + The :t:`right operand` is evaluated. + +#. :dp:`fls_htrjqxiv3avh` + ``core::cmp::PartialEq::eq(&left_operand, &right_operand)`` is invoked. + +:dp:`fls_1udbc4aom6ok` +The :t:`evaluation` of a :t:`greater-than expression` proceeds as follows: + +#. :dp:`fls_96mt7gx5ogo0` + The :t:`left operand` is evaluated. + +#. :dp:`fls_or0i2cqxwl8o` + The :t:`right operand` is evaluated. + +#. :dp:`fls_udnhkbxpk83m` + ``core::cmp::PartialOrd::gt(&left_operand, &right_operand)`` is invoked. + +:dp:`fls_mab6yirx77zl` +The :t:`evaluation` of a :t:`greater-than-or-equals expression` proceeds as +follows: + +#. :dp:`fls_2ggb7a7nhrk9` + The :t:`left operand` is evaluated. + +#. :dp:`fls_ukm97arfzsk1` + The :t:`right operand` is evaluated. + +#. :dp:`fls_wrftg7onlkmm` + ``core::cmp::PartialOrd::ge(&left_operand, &right_operand)`` is invoked. + +:dp:`fls_irlqykpbtvd` +The :t:`evaluation` of a :t:`less-than expression` proceeds as follows: + +#. :dp:`fls_udonl4c7f6pz` + The :t:`left operand` is evaluated. + +#. :dp:`fls_ebvyhqbb921g` + The :t:`right operand` is evaluated. + +#. :dp:`fls_rfomib80bnn2` + ``core::cmp::PartialOrd::lt(&left_operand, &right_operand)`` is invoked. + +:dp:`fls_6cb4wg59wmef` +The :t:`evaluation` of a :t:`less-than-or-equals expression` proceeds as +follows: + +#. :dp:`fls_dkbjn7noq8n2` + The :t:`left operand` is evaluated. + +#. :dp:`fls_kezynx2xc1q7` + The :t:`right operand` is evaluated. + +#. :dp:`fls_8luq5sellcaq` + ``core::cmp::PartialOrd::le(&left_operand, &right_operand)`` is invoked. + +:dp:`fls_c93pacid548a` +The :t:`evaluation` of a :t:`not-equals expression` proceeds as follows: + +#. :dp:`fls_gqy6uuowij9e` + The :t:`left operand` is evaluated. + +#. :dp:`fls_s6sq6p8th5nt` + The :t:`right operand` is evaluated. + +#. :dp:`fls_kdga59xx4nx3` + ``core::cmp::PartialEq::ne(&left_operand, &right_operand)`` is invoked. + +.. rubric:: Examples + +.. code-block:: rust + + 12 == 12 + 42 > 12 + 42 >= 35 + 42 < 109 + 42 <= 42 + 12 != 42 + +.. _fls_lstusiu2c8lu: + +Lazy Boolean Expressions +~~~~~~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + LazyBooleanExpression ::= + LazyAndExpression + | LazyOrExpression + + LazyAndExpression ::= + LeftOperand $$&&$$ RightOperand + + LazyOrExpression ::= + LeftOperand $$||$$ RightOperand + +.. rubric:: Legality Rules + +:dp:`fls_gpbvus89iy4c` +A :t:`lazy boolean expression` is an :t:`expression` that performs short circuit +Boolean arithmetic. + +:dp:`fls_40jya46h62yi` +A :t:`lazy and expression` is a :t:`lazy boolean expression` that uses short +circuit and arithmetic. + +:dp:`fls_k8u77ow5bb6c` +A :t:`lazy or expression` is a :t:`lazy boolean expression` that uses short +circuit or arithmetic. + +:dp:`fls_u0gwo0s2l0tn` +The :t:`[type]s` of the :t:`[operand]s` of a :t:`lazy boolean expression` shall +be :t:`type` :c:`bool`. + +:dp:`fls_zas0lizgq2hn` +The :t:`type` of a :t:`lazy boolean expression` is :t:`type` :c:`bool`. + +:dp:`fls_xdgvrd58nkoa` +The :t:`value` of a :t:`lazy boolean expression` is either ``true`` or +``false``. + +.. rubric:: Dynamic Semantics + +:dp:`fls_ufre0ko2cwh2` +The :t:`evaluation` of a :t:`lazy and expression` proceeds as follows: + +#. :dp:`fls_jugckad775kq` + The :t:`left operand` is evaluated. + +#. :dp:`fls_tmfmu3syxp2q` + If the :t:`left operand` evaluated to ``true``, then the :t:`right operand` + is evaluated and returned as the :t:`[lazy and expression]'s` :t:`value`. + +#. :dp:`fls_srfv1d4idxy9` + Otherwise the :t:`lazy and expression` evaluates to ``false``. + +:dp:`fls_tflikh8cmxvc` +The :t:`evaluation` of a :t:`lazy or expression` proceeds as follows: + +#. :dp:`fls_p0rafjsridre` + The :t:`left operand` is evaluated. + +#. :dp:`fls_yg1348rlziw3` + If the :t:`left operand` evaluated to ``false``, then the :t:`right operand` + is evaluated and returned as the :t:`[lazy or expression]'s` :t:`value`. + +#. :dp:`fls_yffozo2vq5xz` + Otherwise the :t:`lazy or expression` evaluates to ``true``. + +.. rubric:: Examples + +.. code-block:: rust + + false && panic!() + this || that + +.. _fls_1qhsun1vyarz: + +Type Cast Expressions +~~~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + TypeCastExpression ::= + Operand $$as$$ TypeSpecificationWithoutBounds + +.. rubric:: Legality Rules + +:dp:`fls_ltioqbhl14g0` +A :t:`type cast expression` is an :t:`expression` that changes the :t:`type` of +an :t:`operand`. + +:dp:`fls_99kvyh4puy57` +:t:`Cast` or :t:`casting` is the process of changing the :t:`type` of an +:t:`expression`. + +:dp:`fls_a6midh2m0w0b` +The ``TypeSpecificationWithoutBounds`` describes the :dt:`target type` of the +:t:`type cast expression`. + +:dp:`fls_otaxe9okhdr1` +A :t:`type cast expression` with the following characteristics performs a +:dt:`specialized cast`: + +* :dp:`fls_4s69s9pcvbn7` + An :t:`operand` of a :t:`numeric type` and a target :t:`numeric type` perform + a :t:`numeric cast`. + +* :dp:`fls_le6bchl25ewz` + An :t:`operand` of an :t:`enum type` and a target :t:`integer type` + perform :t:`enum cast`. An :dt:`enum cast` converts the :t:`operand` to its + :t:`discriminant`, followed by a :t:`numeric cast`. + +* :dp:`fls_pcromhosmnf0` + An operand of :t:`type` :c:`bool` or :t:`type` :c:`char` and a + target :t:`integer type` perform :t:`primitive-to-integer cast`. A + :dt:`primitive-to-integer cast` + + * :dp:`fls_al9f1t7vlsxi` + Converts an :t:`operand` of :t:`type` :c:`bool` with :t:`value` ``false`` + to zero. + + * :dp:`fls_jea17f39fmsg` + Converts an :t:`operand` of :t:`type` :c:`bool` with :t:`value` ``true`` + to one. + + * :dp:`fls_eb00s8fxlvjb` + Convert an :t:`operand` of :t:`type` :c:`char` to the :t:`value` of the + corresponding :t:`code point`, followed by a :t:`numeric cast`. + +* :dp:`fls_qk5trk8wkvxb` + An :t:`operand` of :t:`type` :c:`u8` and a target :t:`type` :c:`char` performs + :t:`u8-to-char cast`. A :dt:`u8-to-char cast` converts an :t:`operand` of + :t:`type` :c:`u8` to the :t:`value` of the corresponding :t:`code point`. + +* :dp:`fls_t16yzaxro5ew` + An :t:`operand` of :t:`type` ``*const T`` or ``*mut T`` and a + :t:`target type` ``*const V`` or ``*mut V`` where ``V`` implements the + :std:`core::marker::Sized` :t:`trait` performs pointer-to-pointer cast. + +* :dp:`fls_i4zsbbmfa2fl` + An :t:`operand` of :t:`type` ``*const T`` or ``*mut T`` where ``T`` implements + the :std:`core::marker::Sized` :t:`trait` and a target :t:`integer type` + perform :t:`pointer-to-address cast`. A :dt:`pointer-to-address cast` produces + an integer that represents the machine address of the referenced memory. If + the :t:`integer type` is smaller than the :t:`type` of the :t:`operand`, the + address is truncated. + +* :dp:`fls_59mpteeczzo` + An :t:`operand` of :t:`integer type` and :t:`target type` ``*const V`` or + ``*mut V`` where ``V`` implements the :std:`core::marker::Sized` :t:`trait` + perform :t:`address-to-pointer cast`. An :dt:`address-to-pointer cast` + produces a :t:`pointer` that interprets the integer as a machine address. + +* :dp:`fls_8ccwlliqw9jx` + An :t:`operand` of :t:`type` ``&mut [T; N]`` and a :t:`target type` + ``*const T`` perform array-to-pointer cast. + +* :dp:`fls_i8txki3htx92` + An :t:`operand` of a :t:`function item type` and a :t:`target type` + ``*const V`` or ``*mut V`` where ``V`` implements the + :std:`core::marker::Sized` :t:`trait` perform function-item-to-pointer cast. + +* :dp:`fls_6hbkvbb1c8aj` + An :t:`operand` of a :t:`function item type` and a target :t:`integer type` + perform function-to-address cast. + +* :dp:`fls_133j6xw8k4qe` + An :t:`operand` of a :t:`function pointer type` and a :t:`target type` + ``*const V`` or ``*mut V`` where ``V`` implements the + :std:`core::marker::Sized` :t:`trait` perform + :dt:`function-pointer-to-pointer cast`. + +* :dp:`fls_bhw2j9wjpf2x` + An :t:`operand` of a :t:`function pointer type` and a target :t:`integer type` + perform :t:`function-pointer-to-address` cast. A + :dt:`function-pointer-to-address cast` produces an integer that represents the + machine address of the referenced :t:`function`. If the :t:`integer type` is + smaller than the size of the :t:`function pointer type`, the address is + truncated. + +:dp:`fls_3ww5gbk9w4ys` +A :t:`cast` is legal when it either performs :t:`type coercion` or is a +:t:`specialized cast`. + +:dp:`fls_hhxawo12cndy` +The :t:`type` of a :t:`type cast expression` is the :t:`target type`. + +:dp:`fls_uuayaksl8059` +The :t:`value` of a :t:`type cast expression` is the :t:`value` of the +:t:`operand` after the :t:`cast`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_syk2li8ft3rx` +The :t:`evaluation` of a :t:`type cast expression` evaluates its :t:`operand`. + +:dp:`fls_uqv32nthva6y` +The :t:`evaluation` of a :dt:`numeric cast` proceeds as follows: + +* :dp:`fls_kc3gwj9x3jnr` + Casting an :t:`operand` of an :t:`integer type` to a target :t:`integer type` + of the same :t:`size` has no effect. + +* :dp:`fls_76eq3bd6birr` + Casting an :t:`operand` of an :t:`integer type` to a target :t:`integer type` + with smaller :t:`size` truncates the :t:`value` of the :t:`operand`. + +* :dp:`fls_ldiritt32h2w` + Casting an :t:`operand` of an :t:`integer type` to a target :t:`integer type` + with a larger :t:`size` either + + * :dp:`fls_h9sxg3pxn7i2` + Zero-extends the :t:`operand` if the :t:`[operand]'s` :t:`type` is + unsigned, or + + * :dp:`fls_shy6e0e30bco` + Sign-extends the :t:`operand` if the :t:`[operand]'s` :t:`type` is signed. + +* :dp:`fls_4xldaoj5ac6t` + Casting an :t:`operand` of a :t:`floating-point type` to a target + :t:`integer type` rounds the :t:`value` of the :t:`operand` towards zero. In + addition, the :t:`type cast expression` + + * :dp:`fls_50714cvaqkfv` + Returns zero if the :t:`operand` denotes :std:`f32::NaN` or :std:`f64::NaN` + respectively. + + * :dp:`fls_g3xbmp8zx1yh` + Saturates the :t:`value` of the :t:`operand` to the maximum :t:`value` + of the target :t:`integer type` if the :t:`[operand]'s` :t:`value` + exceeds the maximum :t:`value` of the target :t:`integer type` or denotes + :std:`f32::INFINITY` or :std:`f64::INFINITY` respectively. + + * :dp:`fls_hcc5odh52bk7` + Saturates the :t:`value` of the :t:`operand` to the minimum :t:`value` + of the target :t:`integer type` if the :t:`[operand]'s` :t:`value` + exceeds the minimum :t:`value` of the target :t:`integer type` or denotes + :std:`f32::NEG_INFINITY` or :std:`f64::NEG_INFINITY` respectively. + +* :dp:`fls_o2ep4b6t287z` + Casting an :t:`operand` of an :t:`integer type` to a target + :t:`floating-point type` produces the closest possible floating-point + :t:`value`. In addition, the :t:`type cast expression` + + * :dp:`fls_vfofk2aagsj5` + Rounds the :t:`value` of the :t:`operand` preferring the :t:`value` with an + even least significant digit if exactly halfway between two floating-point + numbers. + + * :dp:`fls_cx86k8yfjhht` + Produces :std:`f32::INFINITY` or :std:`f64::INFINITY` of the same sign as + the :t:`value` of the :t:`operand` when the :t:`value` of the :t:`operand` + causes :t:`arithmetic overflow`. + +* :dp:`fls_gzmdwibl5s4w` + Casting an :t:`operand` of :t:`type` :c:`f32` to a :t:`target type` :c:`f64` + is perfect and lossless. + +* :dp:`fls_mjqvjt7v8a25` + Casting an :t:`operand` of :t:`type` :c:`f64` to :t:`target type` :c:`f32` + produces the closest possible :c:`f32` :t:`value`. In addition, the + :t:`type cast expression` + + * :dp:`fls_4fd5vkh0jt4` + Prefers the nearest :t:`value` with an even least significant digit if + exactly halfway between two floating-point numbers. + + * :dp:`fls_2etd73f8jg2n` + Produces :std:`f32::INFINITY` of the same sign as the :t:`value` of the + :t:`operand` when the :t:`value` of the :t:`operand` causes + :t:`arithmetic overflow`. + +.. rubric:: Examples + +:dp:`fls_vdxkpvmpwl3s` +See :p:`6.4.1. ` for the declaration of ``answer``. + +.. code-block:: rust + + answer as f64 + +.. _fls_y4by2i8dl05o: + +Assignment Expressions +~~~~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + AssignmentExpression ::= + AssigneeOperand $$=$$ ValueOperand + + AssigneeOperand ::= + Operand + + ValueOperand ::= + Operand + +.. rubric:: Legality Rules + +:dp:`fls_nhgexeu2h6wi` +An :t:`assignment expression` is an :t:`expression` that assigns the :t:`value` +of a :t:`value operand` to an :t:`assignee operand`. + +:dp:`fls_bsjw6f4a3wol` +An :t:`assignee operand` is the target :t:`operand` of an +:t:`assignment expression`. + +:dp:`fls_uinh05sslxeo` +A :t:`value operand` is an :t:`operand` that supplies the :t:`value` that is +assigned to an :t:`assignee operand` by an :t:`assignment expression`. + +:dp:`fls_qengy157fa4a` +The :t:`type` of an :t:`assignment expression` is the :t:`unit type`. + +:dp:`fls_bwwtgqprbxrm` +The :t:`value` of an :t:`assignment expression` is the :t:`unit value`. + +.. _fls_nnqlae9zp80s: + +Basic Assignment +^^^^^^^^^^^^^^^^ + +.. rubric:: Legality Rules + +:dp:`fls_uhcodvq75nlr` +A :t:`basic assignment` is an :t:`assignment expression` that is not a +:t:`destructuring assignment`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_esn5ceoldta` +The :t:`evaluation` of a :t:`basic assignment` proceeds as follows: + +#. :dp:`fls_t8eqzc64ivin` + The :t:`value operand` is evaluated. + +#. :dp:`fls_b0mqcn5fejhk` + The :t:`assignee operand` is evaluated. + +#. :dp:`fls_9i0ctuo099bp` + The :t:`value` denoted by the :t:`assignee operand` is :t:`dropped`, unless + the :t:`assignee operand` denotes an uninitialized :t:`variable` or an + uninitialized :t:`field` of a :t:`variable`. + +#. :dp:`fls_hc01gtvlxba` + The :t:`value` of the :t:`value operand` is :t:`passed ` + into the :t:`place` of the :t:`assignee operand`. + +.. rubric:: Examples + +.. code-block:: rust + + this = 42 + +.. _fls_9beohh5475s2: + +Destructuring Assignment +^^^^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Legality Rules + +:dp:`fls_2eheo4yo2orm` +A :t:`destructuring assignment` is an :t:`assignment expression` where +the :t:`assignee operand` is either an :t:`array expression`, a :t:`struct +expression`, a :t:`tuple expression` or a :t:`tuple struct call expression`. + +:dp:`fls_z8c3b9s9de3x` +The :t:`assignee operand` of a :t:`destructuring assignment` is treated as an +:dt:`assignee pattern` depending on its kind, as follows: + +* :dp:`fls_vqb89rkkjw81` + An :t:`array expression` corresponds to a :t:`slice pattern` with all the + :t:`[subexpression]s` lowered to their corresponding :t:`[pattern]s`. + +* :dp:`fls_vqj7ljrrd7wi` + A :t:`full range expression` corresponds to a :t:`rest pattern` if inside an + :t:`array expression`, otherwise this is a static error. + +* :dp:`fls_du5eybf8mocy` + A :t:`place expression` corresponds to an :t:`identifier pattern` with a + unique :t:`identifier` and without :t:`keyword` ``ref``, keyword ``mut``, or + a :t:`bound pattern`. + +* :dp:`fls_hj6srmzbobid` + A :t:`struct expression` corresponds to a :t:`struct pattern` with all the + :t:`[subexpression]s` lowered to their corresponding :t:`[pattern]s`. + +* :dp:`fls_uydzlfc4hjbx` + A :t:`tuple expression` corresponds to a :t:`tuple pattern` with all the + :t:`[subexpression]s` lowered to their corresponding :t:`[pattern]s`. + +* :dp:`fls_fa14yfvxsbx3` + A :t:`tuple struct call expression` corresponds to a + :t:`tuple struct pattern` with all the :t:`[subexpression]s` lowered to their + corresponding :t:`[pattern]s`. + +* :dp:`fls_q90ikfi7ewoi` + An :t:`underscore expression` corresponds to an :t:`underscore pattern`. + +:dp:`fls_4bb07tn28ivw` +The :t:`pattern` that corresponds to a :t:`destructuring assignment` shall be +an :t:`irrefutable pattern`. + +:dp:`fls_g80a92tr2ser` +A :t:`destructuring assignment` is equivalent to a :t:`block expression` of the +following form: + +* :dp:`fls_u0iqhbw37xvq` + The first :t:`statement` is a :t:`let statement` with its :t:`pattern` + equivalent to the lowered :t:`assignee pattern` and its + :t:`initialization expression` equivalent to the :t:`value operand`. + +* :dp:`fls_wsfhd3udt6fq` + Then each bound :t:`identifier` of the :t:`assignee pattern` is an + :t:`assignment expression` used as a :t:`statement`, as follows: + +* :dp:`fls_ll6h6qcaos65` + The bound :t:`identifier` becomes the :t:`value operand` of the new + :t:`assignment expression`, and + +* :dp:`fls_ajbdn54qe6wc` + The corresponding :t:`expression` from the :t:`assignee operand` of the + :t:`destructuring assignment` becomes the :t:`assignee operand` of the new + :t:`assignment expression`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_l4u5hhw8tnvs` +The :t:`evaluation` of a :t:`destructuring assignment` proceeds as follows: + +#. :dp:`fls_dd62w8c9n9sd` + The :t:`value operand` is evaluated. + +#. :dp:`fls_jqu2u6mdccgi` + The :t:`assignee operand` is evaluated by evaluating its :t:`[operand]s` in + a left-to-right order. + +#. :dp:`fls_n7nuj1lvpspc` + Each :t:`value` denoted by the :t:`assignee operand` is :t:`dropped` + in left-to-right order, unless the :t:`assignee operand` denotes an + uninitialized :t:`variable` or an uninitialized field of a :t:`variable`. + +#. :dp:`fls_qb8u5skn8bc4` + The :t:`value` of the :t:`value operand` is :t:`passed ` + into the :t:`place` of the :t:`assignee operand`. + +.. rubric:: Examples + +.. code-block:: rust + + (four, two) = (4, 2) + +.. _fls_290jmzfh7x4e: + +Compound Assignment Expressions +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + CompoundAssignmentExpression ::= + AdditionAssignmentExpression + | BitAndAssignmentExpression + | BitOrAssignmentExpression + | BitXorAssignmentExpression + | DivisionAssignmentExpression + | MultiplicationAssignmentExpression + | RemainderAssignmentExpression + | ShiftLeftAssignmentExpression + | ShiftRightAssignmentExpression + | SubtractionAssignmentExpression + + AdditionAssignmentExpression ::= + AssignedOperand $$+=$$ ModifyingOperand + + BitAndAssignmentExpression ::= + AssignedOperand $$&=$$ ModifyingOperand + + BitOrAssignmentExpression ::= + AssignedOperand $$|=$$ ModifyingOperand + + BitXorAssignmentExpression ::= + AssignedOperand $$^=$$ ModifyingOperand + + DivisionAssignmentExpression ::= + AssignedOperand $$/=$$ ModifyingOperand + + MultiplicationAssignmentExpression ::= + AssignedOperand $$*=$$ ModifyingOperand + + RemainderAssignmentExpression ::= + AssignedOperand $$%=$$ ModifyingOperand + + ShiftLeftAssignmentExpression ::= + AssignedOperand $$<<=$$ ModifyingOperand + + ShiftRightAssignmentExpression ::= + AssignedOperand $$>>=$$ ModifyingOperand + + SubtractionAssignmentExpression ::= + AssignedOperand $$-=$$ ModifyingOperand + + AssignedOperand ::= + Operand + + ModifyingOperand ::= + Operand + +.. rubric:: Legality Rules + +:dp:`fls_3bu3g8o5nopc` +A :t:`compound assignment expression` is an expression that first computes +a :t:`value` from two :t:`[operand]s` and then assigns the value to an +:t:`assigned operand`. + +:dp:`fls_w2hbhb989yr4` +A :t:`bit and assignment expression` is a :t:`compound assignment expression` +that uses bit and arithmetic. + +:dp:`fls_ak4g5112jkl` +A :t:`bit or assignment expression` is a :t:`compound assignment expression` +that uses bit or arithmetic. + +:dp:`fls_lkjwyy78m2vx` +A :t:`bit xor assignment expression` is a :t:`compound assignment expression` +that uses bit exclusive or arithmetic. + +:dp:`fls_pkzj0uigfcgm` +A :t:`division assignment expression` is a :t:`compound assignment expression` +that uses division. + +:dp:`fls_ndlv3k9uclz2` +A :t:`multiplication assignment expression` is a +:t:`compound assignment expression` that uses multiplication. + +:dp:`fls_fbp5dojti27r` +A :t:`remainder assignment expression` is a :t:`compound assignment expression` +that uses remainder division. + +:dp:`fls_oy9ur11k78t` +A :t:`shift left assignment expression` is a :t:`compound assignment expression` +that uses bit shift left arithmetic. + +:dp:`fls_s7rey2bndfei` +A :t:`shift right assignment expression` is a +:t:`compound assignment expression` that uses bit shift right arithmetic. + +:dp:`fls_7l7v7vigw3fu` +A :t:`subtraction assignment expression` is a +:t:`compound assignment expression` that uses subtraction. + +:dp:`fls_dvy201zd6oym` +An :t:`assigned operand` is the target :t:`operand` of a +:t:`compound assignment expression`. + +:dp:`fls_9v09ayi2azpe` +A :t:`modifying operand` is an :t:`operand` that supplies the :t:`value` that +is used in the calculation of a :t:`compound assignment expression`. + +:dp:`fls_row7saf53vwd` +An :t:`assigned operand` shall denote a :t:`mutable assignee expression`. + +:dp:`fls_xmgcdw9yhb55` +The :t:`type` of a :t:`compound assignment` is the :t:`unit type`. + +:dp:`fls_yeh6mvyvb4dp` +The :t:`value` of a :t:`compound assignment` is the :t:`unit value`. + +:dp:`fls_657knnsobdyu` +The :t:`type` of the :t:`assigned operand` of an :t:`addition assignment` shall +implement the :std:`core::ops::AddAssign` trait where the type of the right +operand is the trait implementation type parameter. + +:dp:`fls_m942dwwmr2cl` +The :t:`type` of the :t:`assigned operand` of a :t:`bit and assignment` shall +implement the :std:`core::ops::BitAndAssign` :t:`trait` where the :t:`type` of +the :t:`modifying operand` is the :t:`trait implementation` :t:`type parameter`. + +:dp:`fls_np33oqrz33mp` +The :t:`type` of the :t:`assigned operand` of a :t:`bit or assignment` shall +implement the :std:`core::ops::BitOrAssign` :t:`trait` where the :t:`type` of +the :t:`modifying operand` is the :t:`trait implementation` :t:`type parameter`. + +:dp:`fls_atdpr8be2o2r` +The :t:`type` of the :t:`assigned operand` of a :t:`bit xor assignment` shall +implement the :std:`core::ops::BitXorAssign` :t:`trait` where the :t:`type` of +the :t:`modifying operand` is the :t:`trait implementation` :t:`type parameter`. + +:dp:`fls_fbgwb3pdfgz` +The :t:`type` of the :t:`assigned operand` of a :t:`division assignment` shall +implement the :std:`core::ops::DivAssign` :t:`trait` where the :t:`type` of the +:t:`modifying operand` is the :t:`trait implementation` :t:`type parameter`. + +:dp:`fls_8tbxq95x06yt` +The :t:`type` of the :t:`assigned operand` of a :t:`multiplication assignment` +shall implement the :std:`core::ops::MulAssign` :t:`trait` where the :t:`type` +of the :t:`modifying operand` is the :t:`trait implementation` +:t:`type parameter`. + +:dp:`fls_9oy9zo3x3fy3` +The :t:`type` of the :t:`assigned operand` of a :t:`remainder assignment` shall +implement the :std:`core::ops::RemAssign` :t:`trait` where the :t:`type` of the +:t:`modifying operand` is the :t:`trait implementation` :t:`type parameter`. + +:dp:`fls_pdgj2xekdead` +The :t:`type` of the :t:`assigned operand` of a :t:`shift left assignment` shall +implement the :std:`core::ops::ShlAssign` :t:`trait` where the :t:`type` of the +:t:`modifying operand` is the :t:`trait implementation` :t:`type parameter`. + +:dp:`fls_4uoi6k8r7mvc` +The :t:`type` of the :t:`assigned operand` of a :t:`shift right assignment` +shall implement the :std:`core::ops::ShrAssign` :t:`trait` where the :t:`type` +of the :t:`modifying operand` is the :t:`trait implementation` +:t:`type parameter`. + +:dp:`fls_fjaz4m90cagr` +The :t:`type` of the :t:`assigned operand` of a :t:`subtraction assignment` +shall implement the :std:`core::ops::SubAssign` :t:`trait` where the :t:`type` +of the :t:`modifying operand` is the :t:`trait implementation` +:t:`type parameter`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_eesn9kuylim` +The :t:`evaluation` of a :t:`compound assignment` proceeds as follows: + +#. :dp:`fls_4nnqz4etisgw` + If the :t:`[type]s` of both :t:`[operand]s` are :t:`[integer type]s` or :t:`[floating-point type]s`, then + + #. :dp:`fls_a2g4hs15jpiu` + The :t:`modifying operand` is evaluated. + + #. :dp:`fls_kuet16jp6ps9` + The :t:`assigned operand` is evaluated. + + #. :dp:`fls_hovju0sni9gr` + The appropriate :t:`function` is invoked as indicated below. + +#. :dp:`fls_ngimpabunzis` + Otherwise + + #. :dp:`fls_4sbpfi12frwe` + The :t:`assigned operand` is evaluated. + + #. :dp:`fls_n5ds6ydgckvo` + The :t:`modifying operand` is evaluated. + + #. :dp:`fls_xjdu0y1slsg9` + The appropriate :t:`function` is invoked as indicated below. + +:dp:`fls_ijfmnnrdlu8n` +For an :t:`addition assignment`, +``core::ops::AddAssign::add_assign(&mut assigned_operand, modifying_operand)`` +is invoked. + +:dp:`fls_6x7j9x354pkb` +For a :t:`bit and assignment`, +``core::ops::BitAndAssign::bitand_assign(&mut assigned_operand, modifying_operand)`` +is invoked. + +:dp:`fls_h2cpbz2t74hy` +For a :t:`bit or assignment`, +``core::ops::BitOrAssign::bitor_assign(&mut assigned_operand, modifying_operand)`` +is invoked. + +:dp:`fls_whj50spxz3bh` +For a :t:`bit xor assignment`, +``core::ops::BitXorAssign::bitxor_assign(&mut assigned_operand, modifying_operand)`` +is invoked. + +:dp:`fls_d1cxq1zbt5fq` +For a :t:`division assignment`, +``core::ops::DivAssign::div_assign(&mut assigned_operand, modifying_operand)`` +is invoked. + +:dp:`fls_48i245an2449` +For a :t:`multiplication assignment`, +``core::ops::MulAssign::mul_assign(&mut assigned_operand, modifying_operand)`` +is invoked. + +:dp:`fls_69wr03rt0ali` +For a :t:`remainder assignment`, +``core::ops::RemAssign::rem_assign(&mut assigned_operand, modifying_operand)`` +is invoked. + +:dp:`fls_9d970yfwmj2d` +For a :t:`shift left assignment`, +``core::ops::ShlAssign::shl_assign(&mut assigned_operand, modifying_operand)`` +is invoked. + +:dp:`fls_p9687v3xckps` +For a :t:`shift right assignment`, +``core::ops::ShrAssign::shr_assign(&mut assigned_operand, modifying_operand)`` +is invoked. + +:dp:`fls_8j408kckzzud` +For a :t:`subtraction assignment`, +``core::ops::SubAssign::sub_assign(&mut assigned_operand, modifying_operand)`` +is invoked. + +.. rubric:: Examples + +.. code-block:: rust + + let mut result = 42; + result += 1 + result &= 59 + result /= 3 + result ^= 2 + result *= 81 + result |= 9402 + result %= 7 + result <<= 2 + result >>= 3 + result -= 0 + +.. _fls_tpwp86mronn2: + +Underscore Expressions +---------------------- + +.. rubric:: Syntax + +.. syntax:: + + UnderscoreExpression ::= + $$_$$ + +.. rubric:: Legality Rules + +:dp:`fls_pydmv629vfuu` +An :t:`underscore expression` is an :t:`expression` that acts as a placeholder +in a :t:`destructuring assignment`. + +:dp:`fls_wms3dbwjwyu4` +An :t:`underscore expression` shall appear in the :t:`assigned operand` of a +:t:`destructuring assignment`. + +.. rubric:: Examples + +.. code-block:: rust + + let pair = (1, 2); + let mut second = 0; + (_, second) = pair; + +.. _fls_g0uyl7qw4c7w: + +Parenthesized Expressions +------------------------- + +.. rubric:: Syntax + +.. syntax:: + + ParenthesizedExpression ::= + $$($$ Operand $$)$$ + +.. rubric:: Legality Rules + +:dp:`fls_jhazc75w5vj` +A :t:`parenthesized expression` is an :t:`expression` that groups other +:t:`[expression]s`. + +:dp:`fls_5d66h7naoup6` +The :t:`type` of a :t:`parenthesized expression` is the :t:`type` of its +:t:`operand`. + +:dp:`fls_xp9whcj2obk8` +The :t:`value` of a :t:`parenthesized expression` is the :t:`value` of its +:t:`operand`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_2po52gv0m021` +The :t:`evaluation` of a :t:`parenthesized expression` evaluates its +:t:`operand`. + +.. rubric:: Examples + +.. code-block:: rust + + (1 + 2) * 3 + +.. _fls_xinykul167l: + +Array Expressions +----------------- + +.. rubric:: Syntax + +.. syntax:: + + ArrayExpression ::= + $$[$$ ArrayElementExpression? $$]$$ + + ArrayElementExpression ::= + ArrayElementConstructor + | ArrayRepetitionConstructor + + ArrayElementConstructor ::= + ExpressionList + + ArrayRepetitionConstructor ::= + RepeatOperand $$;$$ SizeOperand + + RepeatOperand ::= + Operand + + SizeOperand ::= + Operand + +.. rubric:: Legality Rules + +:dp:`fls_ya9res33oxt6` +An :t:`array expression` is an :t:`expression` that constructs an :t:`array`. + +:dp:`fls_fwtd3b10veiw` +An :t:`array element constructor` is an :t:`array expression` that lists all +elements of the :t:`array` being constructed. + +:dp:`fls_81jf78m5uga4` +An :t:`array repetition constructor` is an :t:`array expression` that specifies +how many times an element is repeated in the :t:`array` being constructed. + +:dp:`fls_3y69y9ga4at7` +A :t:`repeat operand` is an :t:`operand` that specifies the element being +repeated in an :t:`array repetition constructor`. + +:dp:`fls_2l9objtb23zn` +A :t:`size operand` is an :t:`operand` that specifies the size of an :t:`array` +or an :t:`array type`. + +:dp:`fls_9gmnjvs83d8o` +The :t:`size operand` shall be a :t:`constant expression`. + +:dp:`fls_by21pey7k423` +The :t:`[type]s` of the :t:`[operand]s` of an :t:`array element constructor` +shall be :t:`unifiable`. + +:dp:`fls_x2xu2pynxy1u` +If the :t:`size operand` is greater than one, then the :t:`type` of the +:t:`repeat operand` shall implement the :std:`core::copy::Copy` :t:`trait` +or the :t:`repeat operand` shall be a :t:`path expression` resolving to a +:t:`constant`. + +:dp:`fls_qplsh3pdqitq` +The :t:`type` of the :t:`size operand` shall be :t:`type` :c:`usize`. + +:dp:`fls_wmsekin1gd2y` +The :t:`type` of an :t:`array expression` is ``[T; N]``, where ``T`` is the +:t:`element type` and ``N`` is the size of the array. The :t:`size` of an +:t:`array` is determined as follows: + +* :dp:`fls_2gto5kp9bjw8` + If the :t:`array expression` appears with an :t:`array element constructor`, + then the :t:`size` is the number of :t:`[operand]s` in the + :t:`array element constructor`. + +* :dp:`fls_guop34ayjw2` + Otherwise the :t:`size` is the :t:`value` of :t:`size operand`. + +:dp:`fls_aj6tbe54v5jl` +The :t:`value` of an :t:`array expression` is the constructed :t:`array`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_t52in1kkyli3` +The :t:`evaluation` of an :t:`array expression` with an +:t:`array element constructor` evaluates its :t:`[operand]s` in left-to-right +order. + +:dp:`fls_1kj8nlc5eb8a` +The :t:`evaluation` of an :t:`array expression` with an +:t:`array repetition constructor` proceeds as follows: + +#. :dp:`fls_f3izbkm8607z` + If the :t:`value` of the :t:`size operand` is greater than zero, then: + + #. :dp:`fls_qbyysx30pjzs` + If the :t:`repeat operand` denotes a :t:`constant`, the + :t:`repeat operand` is evaluated once and its :t:`value` is + :t:`passed ` :t:`by copy` :t:`[size operand]'s` + :t:`value` times. + + #. :dp:`fls_1m0laldldh7j` + Otherwise the :t:`repeat operand` is evaluated :t:`[size operand]'s` + :t:`value` times. + +#. :dp:`fls_5cs68nm54l31` + Otherwise the :t:`repeat operand` is evaluated once. + +.. rubric:: Examples + +.. code-block:: rust + + [1, 2, 3] + ["one", "two", "three",] + +:dp:`fls_p7hcqryal5cm` +Two dimensional array. + +.. syntax:: + + [[0, 0], [0, 1], [1, 0], [1, 1]] + +:dp:`fls_izlpt6100gvk` +An array of nine 42s. + +.. syntax:: + + [42; 9] + +.. _fls_sxcr4aa098i6: + +Indexing Expressions +-------------------- + +.. rubric:: Syntax + +.. syntax:: + + IndexExpression ::= + IndexedOperand $$[$$ IndexingOperand $$]$$ + + IndexedOperand ::= + Operand + + IndexingOperand ::= + Operand + +.. rubric:: Legality Rules + +:dp:`fls_X9kdEAPTqsAe` +A :t:`indexable type` is a :t:`type` that implements the +:std:`core::ops::Index` :t:`trait`. + +:dp:`fls_42ijvuqqqlvh` +An :t:`index expression` is an :t:`expression` that indexes into a :t:`value` +of an :t:`indexable type`. + +:dp:`fls_pc0c22asgzvw` +An :t:`indexed operand` is an :t:`operand` which indicates the :t:`value` +being indexed into by an :t:`index expression`. + +:dp:`fls_ff3sgpldn52o` +An :t:`indexing operand` is an :t:`operand` which specifies the index of an +:t:`index expression`. + +:dp:`fls_w96p9oyv5mqt` +An :t:`index expression` is a :t:`constant expression` if the +:t:`indexing operand` and :t:`indexed operand` are :t:`[constant expression]s`. + +:dp:`fls_u9sl7h4i8hqu` +The :t:`type` of the :t:`indexing operand` is the :t:`generic parameter` of the +:std:`core::ops::Index` :t:`implementation` of the :t:`type` of the +:t:`indexed operand`. + +:dp:`fls_98qeczwv7fmy` +If the :t:`indexed operand` is evaluated in a :t:`value expression context`, +then + +* :dp:`fls_sb2b8gszzaxq` + The :t:`type` of the :t:`indexed operand` shall implement the + :std:`core::ops::Index` :t:`trait`. + +* :dp:`fls_issaykiuha75` + The :t:`type` of the :t:`index expression` is ``&T``, where ``T`` is + :t:`associated type` :std:`core::ops::Index::Output`. + +:dp:`fls_y3sduoma6q9v` +If the :t:`indexed operand` is :t:`mutable` and the :t:`index expression` is +evaluated in a :t:`mutable place expression context`, then + +* :dp:`fls_ld7lbvqms5i6` + The :t:`type` of the :t:`indexed operand` shall implement the + :std:`core::ops::IndexMut` :t:`trait`. + +* :dp:`fls_nw705fpon79b` + The :t:`type` of the :t:`index expression` is ``&mut T``, where ``T`` is + the element type of the :t:`indexed operand`'s :t:`type`. + +:dp:`fls_fouu0z3jwoad` +The :t:`value` of an :t:`index expression` is the indexed memory location. + +.. rubric:: Dynamic Semantics + +:dp:`fls_6sgj0ltt21i` +The :t:`evaluation` of an :t:`index expression` proceeds as follows: + +#. :dp:`fls_e5l4y3dy69xi` + The :t:`indexed operand` is evaluated. + +#. :dp:`fls_fza3omn8yw7s` + The :t:`indexing operand` is evaluated. + +#. :dp:`fls_ehamppbq4gmg` + If the :t:`index expression` is evaluated in a :t:`mutable place + expression context`, then :t:`expression` + ``*core::ops::IndexMut::index_mut(&mut indexed_operand, indexing_operand)`` + is evaluated. + +#. :dp:`fls_i68oxj659hc1` + Otherwise :t:`expression` ``*core::ops::Index::index(&indexed_operand, + indexing_operand)`` is evaluated. + +.. rubric:: Examples + +.. code-block:: rust + + let a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]; + a[1][2] + +:dp:`fls_esvpmh6razg3` +Evaluates to 6. + +.. _fls_k64tfywtn0g8: + +Tuple Expressions +----------------- + +.. rubric:: Syntax + +.. syntax:: + + TupleExpression ::= + $$($$ TupleInitializerList? $$)$$ + + TupleInitializerList ::= + ExpressionList + +.. rubric:: Legality Rules + +:dp:`fls_87rp1hfwvjel` +A :t:`tuple expression` is an :t:`expression` that constructs a :t:`tuple`. + +:dp:`fls_581y6jq1eyn8` +A :t:`tuple initializer` is an :t:`operand` that provides the :t:`value` of a +:t:`tuple field` in a :t:`tuple expression`. + +:dp:`fls_ljz3sxmfzflm` +The :t:`type` of a :t:`tuple expression` is ``(T1, T2, ..., TN)``, where ``T1`` +is the :t:`type` of the first :t:`tuple initializer`, ``T2`` is the :t:`type` of +the second :t:`tuple initializer`, and ``TN`` is the :t:`type` of the ``N``-th +:t:`tuple initializer`. + +:dp:`fls_k2aznqo9j49p` +The :t:`value` of a :t:`tuple expression` is ``(V1, V2, ..., VN)``, where ``V1`` +is the :t:`value` of the first :t:`tuple initializer`, ``V2`` is the :t:`value` +of the second :t:`tuple initializer`, and ``VN`` is the :t:`value` of the +``N``-th :t:`tuple initializer`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_waf55yd3mpsq` +The :t:`evaluation` of a :t:`tuple expression` evaluates its +:t:`[tuple initializer]s` in left-to-right order. + +.. rubric:: Examples + +.. code-block:: rust + + () + (1.2, 3.4) + ("hello", 42i16, true) + +.. _fls_8tsynkj2cufj: + +Struct Expressions +------------------ + +.. rubric:: Syntax + +.. syntax:: + + StructExpression ::= + Constructee $${$$ StructExpressionContent? $$}$$ + + Constructee ::= + PathExpression + + StructExpressionContent ::= + BaseInitializer + | FieldInitializerList ($$,$$ BaseInitializer | $$,$$?) + + BaseInitializer ::= + $$..$$ Operand + + FieldInitializerList ::= + FieldInitializer ($$,$$ FieldInitializer)* + + FieldInitializer ::= + IndexedInitializer + | NamedInitializer + | ShorthandInitializer + + IndexedInitializer ::= + FieldIndex : Expression + + NamedInitializer ::= + Identifier : Expression + + ShorthandInitializer ::= + Identifier + +.. rubric:: Legality Rules + +:dp:`fls_ij8rebvupb85` +A :t:`struct expression` is an :t:`expression` that constructs an +:t:`enum value`, a :t:`struct value`, or a :t:`union value`. + +:dp:`fls_4z91ymz3ciup` +A :t:`constructee` indicates the :t:`enum variant`, :t:`struct`, or :t:`union` +whose value is being constructed by a :t:`struct expression`. + +:dp:`fls_uib1ml41mfrn` +A :t:`base initializer` is a :t:`construct` that specifies an :t:`enum value`, +a :t:`struct value`, or a :t:`union value` to be used as a base for +construction in a :t:`struct expression`. + +:dp:`fls_gfu267bpl9ql` +The :t:`type` of a :t:`base initializer` is the :t:`type` of its :t:`operand`. +The :t:`type` of a :t:`base initializer` shall be the same as the :t:`type` of +the :t:`constructee`. + +:dp:`fls_ph7fsphbpbv4` +An :t:`indexed initializer` is a :t:`construct` that specifies the index and +initial :t:`value` of a :t:`field` in a :t:`struct expression`. + +:dp:`fls_y3p6rtm7ek3l` +An :t:`indexed initializer` matches a :t:`field` of the :t:`constructee` +when the :t:`field index` of the :t:`indexed initializer` resolves to a valid +position of a :t:`field` in the :t:`constructee`. Such an +:t:`indexed initializer` is a :dt:`matched indexed initializer`. + +:dp:`fls_dfajs3xaxbv` +The :t:`type` of the :t:`operand` of an :t:`indexed initializer` and the +:t:`type` of the matched :t:`field` shall be :t:`unifiable`. + +:dp:`fls_e5b9n910z1cp` +The :t:`value` of an :t:`indexed initializer` is the :t:`value` of its +:t:`operand`. + +:dp:`fls_lwyq3vyc91rn` +A :t:`named initializer` is a :t:`construct` that specifies the name and +initial :t:`value` of a :t:`field` in a :t:`struct expression`. + +:dp:`fls_qed1pps827dv` +A :t:`named initializer` matches a :t:`field` of the :t:`constructee` when +its :t:`identifier` and the :t:`name` of the :t:`field` are the same. Such a +:t:`named initializer` is a :dt:`matched named initializer`. + +:dp:`fls_b60omrhc7t73` +The :t:`type` of a :t:`named initializer` and the :t:`type` of the matched +:t:`field` shall be :t:`unifiable`. + +:dp:`fls_z3gj1v6g605r` +The :t:`value` of a :t:`named initializer` is the :t:`value` of its +:t:`expression`. + +:dp:`fls_57t368kema7h` +A :t:`shorthand initializer` is a :t:`construct` that specifies the :t:`name` +of a :t:`field` in a :t:`struct expression`. + +:dp:`fls_sm2hx8sh4agb` +A :t:`shorthand initializer` is equivalent to a :t:`named initializer` where +both the :t:`identifier` and the :t:`expression` of the :t:`named initializer` +denote the :t:`identifier` of the :t:`shorthand initializer`. + +:dp:`fls_yjx1t3x6qpfg` +A :t:`shorthand initializer` matches a :t:`field` of the :t:`constructee` +when its :t:`identifier` and the :t:`name` of the :t:`field` are the same. Such +a :t:`shorthand initializer` is a :dt:`matched shorthand initializer`. + +:dp:`fls_2dajkhq58cdp` +The :t:`type` of a :t:`shorthand initializer` and the :t:`type` of the matched +:t:`field` shall be :t:`unifiable`. + +:dp:`fls_9s4znhi0u3ys` +The :t:`value` of a :t:`shorthand initializer` is the :t:`value` its +:t:`identifier` resolves to. + +:dp:`fls_i31rodt42m0z` +The :t:`type` of a :t:`struct expression` is the :t:`type` of the +:t:`constructee`. + +:dp:`fls_sjwd8o5mknjo` +The :t:`value` of a :t:`struct expression` is the :t:`enum value`, +:t:`struct value`, or :t:`union value` in construction. + +:dp:`fls_ccqomsereni2` +If the :t:`constructee` is a :t:`record enum variant` or a :t:`record struct`, +then + +* :dp:`fls_pivpdyr4seez` + For each :t:`field` of the :t:`constructee`, the :t:`struct expression` shall + either: + + * :dp:`fls_bbmm5vir9xos` + Contain at most one :t:`matched named initializer`, or + + * :dp:`fls_9370n5xkkzce` + Contain at most one :t:`matched shorthand initializer`, or + + * :dp:`fls_rclgwzdhfjj` + Have exactly one :t:`base initializer`. + +* :dp:`fls_lmxz5768v5d8` + A :t:`base initializer` is allowed even if all :t:`[field]s` of the + :t:`constructee` have been matched. + +:dp:`fls_939cugbxju5e` +If the :t:`constructee` is a :t:`tuple enum variant` or a :t:`tuple struct`, +then + +* :dp:`fls_c34qwhaq2asm` + For each :t:`field` of the :t:`constructee`, the :t:`struct expression` shall + either: + + * :dp:`fls_j2kmp1fee0g4` + Contain at most one :t:`matched indexed initializer`, or + + * :dp:`fls_90q7krxazc6u` + Have exactly one :t:`base initializer`. + +* :dp:`fls_qo05owpmtag0` + A :t:`base initializer` is allowed even if all :t:`[field]s` of the + :t:`constructee` have been matched. + +:dp:`fls_ywh3nk6emwmw` +If the :t:`constructee` is a :t:`union type`, then + +* :dp:`fls_5w9lj5dc84p` + The :t:`struct expression` shall not contain a :t:`base initializer`. + +* :dp:`fls_5zceer19mhdu` + For the single :t:`field` of the :t:`constructee`, the :t:`struct expression` + shall either: + + * :dp:`fls_mq80i8fof7sx` + Contain exactly one :t:`matched named initializer`, or + + * :dp:`fls_raon1c1vrhx7` + Contain exactly one :t:`matched shorthand initializer`. + +:dp:`fls_njder5r7y5fg` +If the :t:`constructee` is a :t:`unit enum variant` or a :t:`unit struct`, then +the :t:`struct expression` shall have at most one :t:`base initializer`. + +:dp:`fls_w7x9wy6t0qcp` +If a :t:`base initializer` is supplied, then for each :t:`field` that was not +matched in the :t:`struct expression` the :t:`value` of the corresponding +:t:`field` of the :t:`base initializer` is :t:`passed ` to +the :t:`field` of the :t:`constructee`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_vsxsbqps64o` +The :t:`evaluation` of a :t:`struct expression` evaluates its :t:`[operand]s` in +a left-to-right order. + +.. rubric:: Examples + +.. code-block:: rust + + enum Occupation { + Engineer, + Gardener + } + + struct Employee { + name: String, + age: u16, + occupation: Occupation + compensation: u32 + } + + let alice = Employee { + name: "Alice".to_string(), + age: 23, + occupation: Occupation::Engineer + compensation: 250_000 + }; + + let age = 45; + + let bob = Employee { + name: "Bob".to_string(), // matched named initializer + age, // matched shorthand initializer + .. alice // equivalent to alice.occupation, alice.compensation + }; + + union Union { + int: u32, + float: f32 + } + + let u1 = Union { int: 0 }; + let u2 = Union { float: 0.0 }; + +.. _fls_mjVXiDQRIAzU: + +Invocation Expressions +---------------------- + +.. _fls_xa4nbfas01cj: + +Call Expressions +~~~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + CallExpression ::= + CallOperand $$($$ ArgumentOperandList? $$)$$ + + CallOperand ::= + Operand + + ArgumentOperandList ::= + ExpressionList + +.. rubric:: Legality Rules + +:dp:`fls_fvgfx17ossd9` +A :t:`call expression` is an :t:`expression` that invokes a :t:`function` or +constructs a :t:`tuple enum variant value` or a :t:`tuple struct value`. + +:dp:`fls_jvz5z3eqxb39` +An :t:`argument operand` is an :t:`operand` which is used as an argument in a +:t:`call expression` or a :t:`method call expression`. + +:dp:`fls_7ql1c71eidg8` +A :t:`call operand` is the :t:`function` being invoked or the +:t:`tuple enum variant value` or the :t:`tuple struct value` being constructed +by a :t:`call expression`. + +:dp:`fls_QpBu34U6hXn9` +A :t:`tuple struct call expression` is a :t:`call expression` where the +:t:`call operand` resolves to a :t:`tuple struct`. + +:dp:`fls_4t6imtiw6kzt` +A :t:`callee type` is either a :t:`function item type`, a +:t:`function pointer type`, a :t:`tuple enum variant`, a +:t:`tuple struct type`, or a :t:`type` that implements any of the +:std:`core::ops::Fn`, :std:`core::ops::FnMut`, or :std:`core::ops::FnOnce` +:t:`[trait]s`. + +:dp:`fls_bu6i3mcvnbin` +The :t:`type` of a :t:`call expression` is the :t:`return type` of the invoked +:t:`function`, the :t:`type` of the :t:`tuple enum variant` or the +:t:`tuple struct` being constructed, or :t:`associated type` +:std:`core::ops::FnOnce::Output`. + +:dp:`fls_8ljrgdept7s8` +A :t:`call expression` whose :t:`callee type` is either an +:t:`external function item type`, an :t:`unsafe function item type`, or an +:t:`unsafe function pointer type` shall require :t:`unsafe context`. + +:dp:`fls_7p6zrjbpj0kl` +The :t:`value` of a :t:`call expression` is determined as follows: + +* :dp:`fls_yrr1s0tucgvh` + If the :t:`callee type` is a :t:`function item type` or a + :t:`function pointer type`, then the :t:`value` is the result of invoking the + corresponding :t:`function` with the :t:`[argument operand]s`. + +* :dp:`fls_RZjFs9koNOk8` + If the :t:`callee type` is a :t:`tuple enum variant` or a + :t:`tuple struct type`, then the :t:`value` is the result of constructing + the :t:`tuple enum variant` or the :t:`tuple struct` with the + :t:`[argument operand]s`. + +* :dp:`fls_s3q3sej1hgho` + If the :t:`callee type` implements the :std:`core::ops::Fn` :t:`trait`, then + the :t:`value` is the result of invoking + ``core::ops::Fn::call(adjusted_call_operand, argument_operand_tuple)``, + where ``adjusted_call_operand`` is the :t:`adjusted call operand`, and + ``argument_operand_tuple`` is a :t:`tuple` that wraps the + :t:`[argument operand]s`. + +* :dp:`fls_cu2ubdm3tfwb` + If the :t:`call operand` implements the :std:`core::ops::FnMut` :t:`trait`, + then the :t:`value` is the result of invoking + ``core::ops::FnMut::call_mut(adjusted_call_operand, argument_operand_tuple),`` + where ``adjusted_call_operand`` is the :t:`adjusted call operand`, and + ``argument_operand_tuple`` is a :t:`tuple` that wraps the + :t:`[argument operand]s`. + +* :dp:`fls_9bbewx1l7h5h` + If the :t:`call operand` implements the :std:`core::ops::FnOnce` :t:`trait`, + then the :t:`value` is the result of invoking + ``core::ops::FnOnce::call_once(adjusted_call_operand, argument_operand_tuple),`` + where ``adjusted_call_operand`` is the :t:`adjusted call operand`, and + ``argument_operand_tuple`` is a :t:`tuple` that wraps the + :t:`[argument operand]s`. + +:dp:`fls_ZSkcro52q097` +A :t:`call expression` is subject to :t:`call resolution`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_ggr5i91vur0r` +The :t:`evaluation` of a :t:`call expression` proceeds as follows: + +#. :dp:`fls_hwalzgdidbfz` + The :t:`call operand` is evaluated. + +#. :dp:`fls_p52mfvpadu7w` + The :t:`[argument operand]s` are evaluated in left-to-right order. + +#. :dp:`fls_1cyo5qhbl1j9` + If the :t:`adjusted call operand` is a :t:`function item type` or + :t:`function pointer type`, then corresponding :t:`function` is invoked. + +#. :dp:`fls_nb0eqky2akzt` + If the :t:`type` of the :t:`call operand` implements the + :std:`core::ops::Fn` :t:`trait`, then + ``core::ops::Fn::call(adjusted_call_operand, argument_operand_tuple)`` is + invoked. + +#. :dp:`fls_9lt4wh9ql5ae` + If the :t:`type` of the :t:`call operand` implements the + :std:`core::ops::FnMut` :t:`trait`, then + ``core::ops::FnMut::call_mut(adjusted_call_operand, argument_operand_tuple)`` + is invoked. + +#. :dp:`fls_ixebnlcccmit` + If the :t:`type` of the :t:`call operand` implements the + :std:`core::ops::FnOnce` :t:`trait`, then + ``core::ops::FnOnce::call_once(adjusted_call_operand, argument_operand_tuple)`` + is invoked. + +.. rubric:: Undefined Behavior + +:dp:`fls_5yeq4oah58dl` +It is undefined behavior to call a :t:`function` with an :t:`ABI` other than the +:t:`ABI` the :t:`function` was defined with. + +.. rubric:: Examples + +.. code-block:: rust + + let three: i32 = add(1, 2); + +.. _fls_z7q8kbjwdc7g: + +Method Call Expressions +~~~~~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + MethodCallExpression ::= + ReceiverOperand $$.$$ MethodOperand $$($$ ArgumentOperandList? $$)$$ + + ReceiverOperand ::= + Operand + + MethodOperand ::= + PathExpressionSegment + +.. rubric:: Legality Rules + +:dp:`fls_b7i26954j1hc` +A :t:`method call expression` is an :t:`expression` that invokes a :t:`method` +of a :t:`variable`. + +:dp:`fls_jx3ryre0xs88` +A :t:`receiver operand` is an :t:`operand` that denotes the :t:`value` whose +:t:`method` is being invoked by a :t:`method call expression`. + +:dp:`fls_3AQUOBo7akXu` +A :t:`method operand` is an :t:`operand` that denotes the :t:`method` being +invoked by a :t:`method call expression`. + +:dp:`fls_11glzggtbgb3` +The :t:`type` of a :t:`method call expression` is the :t:`return type` of the +invoked :t:`method`. + +:dp:`fls_ljvj1f9fv085` +The :t:`value` of a :t:`method call expression` is the :t:`value` returned by +the invoked :t:`method`. + +:dp:`fls_y7bj7y6davlh` +A :t:`method call expression` is subject to :t:`method resolution`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_oxxk3snd7ya0` +The :t:`evaluation` of a :t:`method call expression` proceeds as follows: + +#. :dp:`fls_gmpq15g77o20` + The :t:`receiver operand` is evaluated. + +#. :dp:`fls_pu0n9hakkym2` + The :t:`[argument operand]s` are evaluated in left-to-right order. + +#. :dp:`fls_cawdkgvvd1x6` + The :t:`method` is invoked. + +.. rubric:: Examples + +.. code-block:: rust + + trait Command { + fn execute(&self); + } + + struct ClickCommand { ... } + + impl ClickCommand for Command { + fn execute(&self) { + println!("Someone clicked me!") + } + } + + let click = ClickCommand { ... }; + click.execute(); + +.. _fls_8gPCPVc99pXJ: + +Call Conformance +~~~~~~~~~~~~~~~~ + +:dp:`fls_tsn6SUUG9LvW` +A :t:`method call expression` is equivalent to a :t:`call expression` where the +:t:`call operand` is the resolved :t:`method` and the adjusted +:t:`receiver operand` is prepended to the :t:`[argument operand]s`. + +:dp:`fls_c40C6rg6rGv6` +An :t:`argument operand` matches a :t:`function parameter` or :t:`field` of the +:t:`callee type` when its position and the position of the +:t:`function parameter` or :t:`field` are the same. Such an +:t:`argument operand` is a :dt:`matched argument operand`. + +:dp:`fls_Gr1ixJ9vFjUm` +The :t:`type` of a :t:`matched argument operand` and the :t:`type` of the +corresponding :t:`function parameter` or :t:`field` shall be :t:`unifiable`. + +:dp:`fls_jTMQa6AJSMpE` +The number of :t:`[argument operand]s` shall be equal to the number of +:t:`[field]s` or :t:`[function parameter]s` of the :t:`callee type`. + +.. _fls_18k3uajrgq5f: + +Field Access Expressions +------------------------ + +.. rubric:: Syntax + +.. syntax:: + + FieldAccessExpression ::= + ContainerOperand $$.$$ FieldSelector + + ContainerOperand ::= + Operand + + FieldSelector ::= + IndexedFieldSelector + | NamedFieldSelector + + IndexedFieldSelector ::= + DecimalLiteral + + NamedFieldSelector ::= + Identifier + +.. rubric:: Legality Rules + +:dp:`fls_hr8qvwlhd9ts` +A :t:`field access expression` is an :t:`expression` that accesses a :t:`field` +of a :t:`value`. + +:dp:`fls_s2vpn4ihenpe` +A :t:`container operand` is an :t:`operand` that indicates the :t:`value` whose +:t:`field` is selected in a :t:`field access expression`. + +:dp:`fls_yeuayil6uxzx` +A :t:`field selector` is a :t:`construct` that selects the :t:`field` to be +accessed in a :t:`field access expression`. + +:dp:`fls_qqrconpa92i3` +A :t:`selected field` is a :t:`field` that is selected by a +:t:`field access expression`. + +:dp:`fls_fovs9il2h9xg` +The :t:`type` of a :t:`field access expression` is the :t:`type` of the +:t:`selected field`. + +:dp:`fls_r1b4n12i93pg` +The :t:`value` of a :t:`field access expression` is the :t:`value` of the +:t:`selected field`. + +:dp:`fls_kddnnz8uc15b` +Reading the :t:`selected field` of a :t:`union` shall require +:t:`unsafe context`. + +:dp:`fls_an3no949lvfw` +Writing to the :t:`selected field` of a :t:`union` where the :t:`type` of the +:t:`selected field` implements the :std:`core::marker::Copy` :t:`trait` or the +:std:`core::mem::ManuallyDrop` :t:`trait` shall not require :t:`unsafe context`. + +:dp:`fls_t6xmsm2nk1bc` +Writing to and then reading from the :t:`selected field` of a :t:`union` +subject to :t:`attribute` :c:`repr` is equivalent to invoking :t:`function` +``core::mem::transmute(field_bits)`` where ``write_type`` +is the :t:`type` used at the time of writing the :t:`selected field`, +``read_type`` is the :t:`type` used at the time of reading the +:t:`selected field`, and ``field_bits`` is the bit representation of the +:t:`selected field`. + +:dp:`fls_jjnyuU9KIaGy` +A :t:`field access expression` is subject to :t:`field resolution`. + +.. rubric:: Undefined Behavior + +:dp:`fls_Vani4665hiJY` +It is undefined behavior reading the :t:`selected field` of a +:t:`union type` when it contains data that is invalid for the :t:`selected +field`'s type. + +.. rubric:: Dynamic Semantics + +:dp:`fls_6uzouesw2sod` +The :t:`evaluation` of a :t:`field access expression` evaluates its +:t:`container operand`. + +.. rubric:: Examples + +:dp:`fls_x27yayh4z787` +See :p:`6.8.1. ` for the declaration of ``alice``. + +.. code-block:: rust + + alice.name + +:dp:`fls_dimto84ifanr` +The following indexed field access evaluates to ``42``. + +.. code-block:: rust + + ("hello", 42i16, true).1 + +.. _fls_tjyexqrx0fx5: + +Closure Expressions +------------------- + +.. rubric:: Syntax + +.. syntax:: + + ClosureExpression ::= + $$move$$? $$|$$ ClosureParameterList? $$|$$ + (ClosureBody | ClosureBodyWithReturnType) + + ClosureBody ::= + Expression + + ClosureBodyWithReturnType ::= + ReturnTypeWithoutBounds BlockExpression + + ReturnTypeWithoutBounds ::= + $$->$$ TypeSpecificationWithoutBounds + + ClosureParameterList ::= + ClosureParameter ($$,$$ ClosureParameter)* $$,$$? + + ClosureParameter ::= + OuterAttributeOrDoc* PatternWithoutAlternation TypeAscription? + +.. rubric:: Legality Rules + +:dp:`fls_2d141c9a0yui` +A :t:`closure expression` is an :t:`expression` that defines a +:t:`closure type` and constructs a value of that :t:`type`. + +:dp:`fls_UgJgur0z6d4a` +The :t:`return type` of a :t:`closure type` is determined as follows: + +* :dp:`fls_af1WL2mBKMfW` + If the :t:`closure expression` specifies a :s:`ClosureBodyWithReturnType`, then the :t:`return type` is the specified :s:`ReturnTypeWithoutBounds`. + +* :dp:`fls_wLVeE6cNG8oa` + Otherwise the :t:`return type` is the :t:`type` of the :t:`closure body`. + +:dp:`fls_srbl7ptknjyk` +A :t:`closure body` is a :t:`construct` that represents the executable portion +of a :t:`closure expression`. + +:dp:`fls_oey0ivaiu1l` +A :t:`closure body` denotes a new :t:`control flow boundary`. + +:dp:`fls_fg8lx0yyt6oq` +A :t:`closure body` is subject to :t:`capturing`. + +:dp:`fls_c3rzwUxjmBMY` +A :t:`closure parameter` is a :t:`construct` that yields a set of +:t:`[binding]s` that bind matched input :t:`[value]s` to :t:`[name]s` at the +site of a :t:`call expression` or a :t:`method call expression`. + +:dp:`fls_r6gWLoNR7JMR` +The :t:`pattern` of a :t:`closure parameter` shall be an +:t:`irrefutable pattern`. + +:dp:`fls_qPeOL6ZhXsgH` +The :t:`[binding]s` of all :t:`[pattern]s` of all :t:`[closure parameter]s` of a :t:`closure expression` shall not shadow another. + +:dp:`fls_yn30xuejcfxo` +The :t:`type` of a :t:`closure expression` is the unique anonymous +:t:`closure type` defined by it. + +:dp:`fls_sje6cdvifgv5` +The :t:`value` of a :t:`closure expression` is the :t:`value` of the unique +anonymous :t:`closure type` instantiated with the selected +:t:`[capture target]s`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_f59fw17gsasn` +The :t:`evaluation` of a :t:`closure expression` proceeds as follows: + +#. :dp:`fls_7w15ccc1zzxl` + An anonymous :t:`value` of an unique anonymous :t:`closure type` is created. + +.. rubric:: Examples + +.. code-block:: rust + + fn do_ten_times(consumer: F) where F: Fn(i32) { + for times in 0 .. 10 { + consumer(times); + } + } + + do_ten_times(|value: i32| { println!("value: {}", value)}); + +.. _fls_rr908hgunja7: + +Loop Expressions +---------------- + +.. rubric:: Syntax + +.. syntax:: + + LoopExpression ::= + Label? LoopContent + + Label ::= + $$'$$ NonKeywordIdentifier $$:$$ + + LoopContent ::= + ForLoopExpression + | InfiniteLoopExpression + | WhileLetLoopExpression + | WhileLoopExpression + + LoopBody ::= + BlockExpression + +.. rubric:: Legality Rules + +:dp:`fls_y1d8kd1bdlmx` +A :t:`loop expression` is an :t:`expression` that evaluates a :t:`block +expression` continuously as long as some criterion holds true. + +:dp:`fls_BjZjuiFnPtFd` +A :t:`loop body` is the :t:`block expression` of a :t:`loop expression`. + +:dp:`fls_XEc0cIkpkyzJ` +The :t:`type` of the :t:`loop body` shall be the :t:`unit type`. + +:dp:`fls_eg93m93gvwal` +An :t:`anonymous loop expression` is a :t:`loop expression` without a +:t:`label`. + +:dp:`fls_phpoq9ho8f1v` +A :t:`named loop expression` is a :t:`loop expression` with a :t:`label`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_aw6qczl4zpko` +A :t:`loop expression` is :t:`terminated` when its :t:`block expression` is no +longer evaluated. + +.. _fls_onfyolkcbeh3: + +For Loops +~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + ForLoopExpression ::= + $$for$$ Pattern $$in$$ SubjectExpression LoopBody + +.. rubric:: Legality Rules + +:dp:`fls_1bh2alh37frz` +A :t:`for loop expression` is a :t:`loop expression` that continues to evaluate +its :t:`loop body` as long as its :t:`subject expression` yields a :t:`value`. + +:dp:`fls_fkgbin6ydkm4` +The :t:`type` of a :t:`subject expression` shall implement the +:std:`core::iter::IntoIterator` :t:`trait`. + +:dp:`fls_bmTjhKdpfgCB` +The :t:`type` of an :t:`for loop expression` is the :t:`unit type`. + +:dp:`fls_FkxLf91WKiIo` +The :t:`value` of an :t:`for loop expression` is the :t:`unit value`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_kuxo0on3vit6` +The :t:`evaluation` of a :t:`for loop expression` of the form + +.. code-block:: rust + + 'label: for pattern in subject_expression { + /* loop body */ + } + +:dp:`fls_2lrzrtjhsdes` +is equivalent to the :t:`evaluation` of the following :t:`block expression`: + +.. code-block:: rust + + { + let result = + match core::iter::IntoIterator::into_iter + (subject_expression) + { + mut iter => 'label: loop { + let mut next_value; + match core::iter::Iterator::next(&mut iter) { + Option::Some(value) => next_value = value, + Option::None => break + }; + let pattern = next_value; + let () = { /* loop body */ }; + } + }; + result + } + +.. rubric:: Examples + +.. code-block:: rust + + let favorite_fruits = &["apples", "pears", "strawberries"]; + + for fruit in favorite_fruits { + println!("I like eating {}.", fruit); + } + +.. _fls_sf4qnd43z2wc: + +Infinite Loops +~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + InfiniteLoopExpression ::= + $$loop$$ LoopBody + +.. rubric:: Legality Rules + +:dp:`fls_p11qw6mtxlda` +An :t:`infinite loop expression` is a :t:`loop expression` that continues to +evaluate its :t:`loop body` indefinitely. + +:dp:`fls_b314wjbv0zwe` +The :t:`type` of a :t:`infinite loop expression` is determined as follows: + +* :dp:`fls_rpedapxnv8w3` + If the :t:`infinite loop expression` does not contain a :t:`break expression`, + then the :t:`type` is the :t:`never type`. + +* :dp:`fls_wf11yp1jwf53` + If the :t:`infinite loop expression` contains at least one + :t:`break expression`, then the :t:`type` is the :t:`unified type` of the + :t:`[break type]s` of all :t:`[break expression]s`. + +:dp:`fls_q3qpcf2fz7h` +The :t:`value` of a :t:`infinite loop expression` is determined as follows: + +* :dp:`fls_2ulbzmuuny3g` + If the :t:`infinite loop expression` does not contain a :t:`break expression`, + then the :t:`value` is the :t:`unit value`. + +* :dp:`fls_99imks9hj3kp` + If the :t:`infinite loop expression` contains at least one + :t:`break expression`, then the :t:`value` is the :t:`break value` of the + :t:`break expression` that broke out of the :t:`loop expression`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_w4tj5gofwih1` +The :t:`evaluation` of an :t:`infinite loop expression` proceeds as follows: + +#. :dp:`fls_pg3r6nyl865` + The :t:`block expression` is evaluated. + +#. :dp:`fls_lp15ilkul2uv` + Control restarts the :t:`evaluation` of the :t:`infinite loop expression`. + +.. rubric:: Examples + +.. code-block:: rust + + loop { + println!("I am alive!"); + } + +.. _fls_5jjm1kt43axd: + +While Loops +~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + WhileLoopExpression ::= + $$while$$ IterationExpression LoopBody + + IterationExpression ::= + Expression + +.. rubric:: Legality Rules + +:dp:`fls_ajby242tnu7c` +A :t:`while loop expression` is a :t:`loop expression` that continues to +evaluate its :t:`loop body` as long as its :t:`iteration expression` holds +true. + +:dp:`fls_13hmhzqz82v6` +An :t:`iteration expression` is an :t:`expression` that provides the criterion +of a :t:`while loop expression`. + +:dp:`fls_d7ofrq3777kq` +The :t:`type` of an :t:`iteration expression` shall be :t:`type` :c:`bool`. + +:dp:`fls_P8iyTN6KZCVA` +The :t:`type` of an :t:`while loop expression` is the :t:`unit type`. + +:dp:`fls_s6hRa5spz64w` +The :t:`value` of an :t:`while loop expression` is the :t:`unit value`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_1i7hm645h7ox` +The :t:`evaluation` of a :t:`while loop expression` proceeds as follows: + +#. :dp:`fls_5x0du3u1jwd3` + The :t:`iteration expression` is evaluated. + +#. :dp:`fls_23uluvhhoct6` + If the :t:`iteration expression` evaluated to ``true``, then: + + #. :dp:`fls_k7g4cac93617` + The :t:`block expression` is evaluated. + + #. :dp:`fls_j08k3brdpgno` + Control restarts the :t:`evaluation` of the :t:`while loop expression`. + +.. rubric:: Examples + +.. code-block:: rust + + let mut counter = 0; + + while counter < 5 { + counter += 1; + println("iteration {}", counter); + } + +.. _fls_m6kd5i9dy8dx: + +While Let Loops +~~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + WhileLetLoopExpression ::= + $$while$$ $$let$$ Pattern $$=$$ SubjectLetExpression LoopBody + +.. rubric:: Legality Rules + +:dp:`fls_fmdlyp9r9zl7` +A :t:`while let loop expression` is a :t:`loop expression` that continues to +evaluate its :t:`loop body` as long as its :t:`subject let expression` yields +a :t:`value` that can be matched against its :t:`pattern`. + +:dp:`fls_gTfSLePwHTES` +The :t:`type` of an :t:`while let loop expression` is the :t:`unit type`. + +:dp:`fls_pTq4LIGIoAtN` +The :t:`value` of an :t:`while let loop expression` is the :t:`unit value`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_z2ht5iaat5ag` +The :t:`evaluation` of a :t:`while let loop expression` of the form + +.. code-block:: rust + + 'label: let pattern = subject_let_expression { + /* loop body */ + } + +:dp:`fls_pacf1uavh1qt` +shall be equivalent to the :t:`evaluation` the following :t:`infinite loop`: + +.. code-block:: rust + + 'label: loop { + match subject_let_expression { + pattern => { /* loop body */ }, + _ => break + } + } + +.. rubric:: Examples + +.. code-block:: rust + + let mut favorite_animals = vec!["cats", "dogs", "otters"]; + + while let Some(animal) = favorite_animals.pop() { + println!("I like petting {}", animal); + } + +.. _fls_uusi0zej55is: + +Loop Labels +~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + LabelIndication ::= + $$'$$ NonKeywordIdentifier + +.. rubric:: Legality Rules + +:dp:`fls_tx5u743391h7` +A :t:`label indication` is a :t:`construct` that indicates a :t:`label`. + +:dp:`fls_7hc8yboeaho0` +A :t:`label indication` shall indicate a :t:`label` of an enclosing +:t:`named block expression` or :t:`named loop expression` that does not pass a +:t:`control flow boundary` in order to reach the enclosing +:t:`named block expression` or :t:`named loop expression`. + +.. _fls_jr4tpuyksr75: + +Break Expressions +~~~~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + BreakExpression ::= + $$break$$ LabelIndication? Operand? + +.. rubric:: Legality Rules + +:dp:`fls_i5ko1t2wbgxe` +A :t:`break expression` is an :t:`expression` that terminates a +:t:`loop expression` or a :t:`named block expression`. + +:dp:`fls_jiykbp51909f` +A :t:`break expression` shall appear within a :t:`loop body` or a +:t:`named block expression`. + +:dp:`fls_gnupTkuafKNi` +If a :t:`break expression` appears within a :t:`named block expression`, then +the :t:`break expression` shall have a :t:`label indication`. + +:dp:`fls_7frvr2nm2mcj` +The :t:`label indication` of a :t:`break expression` shall resolve to the +:t:`label` of an enclosing :t:`named block expression` or +:t:`named loop expression`. + +:dp:`fls_54d5uydc87td` +A :t:`break expression` with a :t:`label indication` is associated with the +:t:`named block expression` or :t:`named loop expression` whose :t:`label` is +indicated by the :t:`label indication`. + +:dp:`fls_ghxns2nggffj` +A :t:`break expression` without a :t:`label indication` is associated with the +innermost enclosing :t:`loop expression`. + +:dp:`fls_3hI7FU42sVyX` +If a :t:`break expression` appears within a :t:`loop expression`, then the +:t:`break expression` shall have an :t:`operand` only when it is associated +with an :t:`infinite loop`. + +:dp:`fls_dnnq1zym8ii0` +The :t:`type` of a :t:`break expression` is the :t:`never type`. + +:dp:`fls_1wdybpfldj7q` +:t:`Break type` is the :t:`type` of the :t:`operand` of a :t:`break expression`. + +:dp:`fls_8yore99adr22` +The :t:`break type` is determined as follows: + +* :dp:`fls_60imbzwg3e2x` + If the :t:`break expression` lacks an :t:`operand`, then the :t:`break type` + is the :t:`unit type`. + +* :dp:`fls_l0c05wa9q97w` + If the :t:`break expression` has an :t:`operand`, then the :t:`break type` is + the :t:`type` of its :t:`operand`. + +:dp:`fls_bgd7d5q69q0g` +:t:`Break value` is the :t:`value` of the :t:`operand` of a +:t:`break expression`. + +:dp:`fls_yb8jv4mkmki0` +The :t:`break value` is determined as follows: + +* :dp:`fls_d7l1y2qbe8br` + If the :t:`break expression` lacks an :t:`operand`, then the :t:`break value` + is the :t:`unit value`. + +* :dp:`fls_56szfyilc06` + If the :t:`break expression` has an :t:`operand`, then the :t:`break value` is + the :t:`value` of its :t:`operand`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_jnpx8mx1oa7n` +If a :t:`break expression` appears within a :t:`loop expression`, then the +:t:`evaluation` of the :t:`break expression` proceeds as follows: + +#. :dp:`fls_l2kp8mw6bjj0` + The :t:`operand` is evaluated. + +#. :dp:`fls_2nmadhe3ismj` + All enclosing :t:`[loop expression]s` upto and including the associated + :t:`loop expression` are :t:`terminated`. + +:dp:`fls_XpFLrL78QMe1` +If a :t:`break expression` appears within a :t:`named block expression`, then +the :t:`evaluation` of the :t:`break expression` proceeds as follows: + +#. :dp:`fls_WFAW1PG1YXdM` + The :t:`operand` is evaluated. + +#. :dp:`fls_AurifMM8RpDp` + All enclosing :t:`[named block expression]s` upto and including the + associated :t:`named block expression` are terminated. + +.. rubric:: Examples + +:dp:`fls_32fwis9pxh77` +The following break expression terminates both the inner and the outer loop. + +.. code-block:: rust + + 'outer: loop { + 'inner: loop { + break 'outer; + } + } + +.. _fls_sjwrlwvpulp: + +Continue Expressions +~~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + ContinueExpression ::= + $$continue$$ LabelIndication? + +.. rubric:: Legality Rules + +:dp:`fls_wzs6kz9ffqzt` +A :t:`continue expression` shall appear within a :t:`loop expression`. + +:dp:`fls_r5ke7b9n7k3s` +A :t:`continue expression` without a :t:`label indication` is associated with +the innermost enclosing :t:`loop expression`. + +:dp:`fls_ckm6i9c3s6j8` +A :t:`continue expression` with a :t:`label indication` is associated with a +:t:`named loop expression` whose :t:`label` is indicated by the +:t:`label indication`. + +:dp:`fls_d0bmw8xiw5nk` +The :t:`type` of a :t:`continue expression` is the :t:`never type`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_vmyuuptfnwek` +The :t:`evaluation` of a :t:`continue expression` proceeds as follows: + +#. :dp:`fls_gm74eo754rq9` + If the :t:`continue expression` appears with a :t:`label indication`, then + all enclosing :t:`[loop expression]s` upto and including the associated + :t:`loop expression` are :t:`terminated`. + +#. :dp:`fls_gvuesa5ekeif` + The :t:`evaluation` of the associated :t:`loop expression` is restarted. + +.. rubric:: Examples + +:dp:`fls_767gv7zhqamh` +The following continue expression terminates and restarts ``game_loop``. + +.. code-block:: rust + + 'game_loop: loop { + if is_paused() { + continue; + } + . . . + } + +.. _fls_18swodqqzadj: + +Range Expressions +----------------- + +.. rubric:: Syntax + +.. syntax:: + + RangeExpression ::= + RangeFromExpression + | RangeFromToExpression + | RangeFullExpression + | RangeInclusiveExpression + | RangeToExpression + | RangeToInclusiveExpression + + RangeFromExpression ::= + RangeExpressionLowBound $$..$$ + + RangeFromToExpression ::= + RangeExpressionLowBound $$..$$ RangeExpressionHighBound + + RangeFullExpression ::= + $$..$$ + + RangeInclusiveExpression ::= + RangeExpressionLowBound $$..=$$ RangeExpressionHighBound + + RangeToExpression ::= + $$..$$ RangeExpressionHighBound + + RangeToInclusiveExpression ::= + $$..=$$ RangeExpressionHighBound + + RangeExpressionLowBound ::= + Operand + + RangeExpressionHighBound ::= + Operand + +.. rubric:: Legality Rules + +:dp:`fls_bi82rusji8g0` +A :t:`range expression` is an :t:`expression` that constructs a range. + +:dp:`fls_msyv4oyk5zp9` +A :t:`range expression low bound` is an :t:`operand` that specifies the start of +a range. + +:dp:`fls_f648uuxxh4vk` +A :t:`range expression high bound` is an :t:`operand` that specifies the end of +a range. + +:dp:`fls_9pl4629t54yq` +If a :t:`range expression` has two :t:`[operand]s`, then the :t:`[type]s` of the +:t:`[operand]s` shall be :t:`unifiable`. + +:dp:`fls_xaumwogwbv3g` +A :t:`range-from expression` is a :t:`range expression` that specifies an +included :t:`range expression low bound`. + +:dp:`fls_exa2ufugnpgc` +The :t:`type` of a :t:`range-from expression` is :std:`core::ops::RangeFrom`. + +:dp:`fls_jqy0p155btca` +The :t:`value` of a :t:`range-from expression` is +``core::ops::RangeFrom { start: range_expression_low_bound }``. + +:dp:`fls_ppustuqdji7b` +A :t:`range-from-to expression` is a :t:`range expression` that specifies an +included :t:`range expression low bound` and an excluded +:t:`range expression high bound`. + +:dp:`fls_ke2fpgodq84u` +The :t:`type` of a :t:`range-from-to expression` is :std:`core::ops::Range`. + +:dp:`fls_zb6jk6qykun6` +The :t:`value` of a :t:`range-from-to expression` is +``core::ops::Range { start: range_expression_low_bound, end: range_expression_high_bound }``. + +:dp:`fls_x67xo25n0qlz` +A :t:`range-full expression` is a :t:`range expression` that covers the whole +range of a :t:`type`. + +:dp:`fls_m6n0gvg3ct1b` +The :t:`type` of a :t:`range-full expression` is :std:`core::ops::RangeFull`. + +:dp:`fls_yvh5cdgzevni` +The :t:`value` of a :t:`range-full expression` is ``core::ops::RangeFull {}``. + +:dp:`fls_lh9my7g8oflq` +A :t:`range-inclusive expression` is a :t:`range expression` that specifies an +included :t:`range expression low bound` and an included +:t:`range expression high bound`. + +:dp:`fls_livflk52xaj9` +The :t:`type` of a :t:`range-inclusive expression` is +:std:`core::ops::RangeInclusive`. + +:dp:`fls_vj213j9bj61y` +The :t:`value` of a :t:`range-inclusive expression` is +``core::ops::RangeInclusive::new(range_expression_low_bound, range_expression_high_bound)``. + +:dp:`fls_5a1uivj19kob` +A :t:`range-to expression` is a :t:`range expression` that specifies an excluded +:t:`range expression high bound`. + +:dp:`fls_k611yoc8hk0n` +The :t:`type` of a :t:`range-to expression` is :std:`core::ops::RangeTo`. + +:dp:`fls_m0slikrulnvd` +The :t:`value` of a :t:`range-to expression` is +``core::ops::RangeTo { end: range_expression_high_bound }``. + +:dp:`fls_1gc436ee1nzm` +A :t:`range-to-inclusive expression` is a :t:`range expression` that specifies +an included :t:`range expression high bound`. + +:dp:`fls_8sfjw83irpre` +The :t:`type` of a :t:`range-to-inclusive expression` is +:std:`core::ops::RangeToInclusive`. + +:dp:`fls_5xw4opkbxhsc` +The :t:`value` of a :t:`range-to-inclusive expression` is +``core::ops::RangeToInclusive { end: range_expression_high_bound }``. + +.. rubric:: Dynamic Semantics + +:dp:`fls_ehseim1p479z` +The :t:`evaluation` of a :t:`range expression` evaluates its :t:`[operand]s` in +left-to-right order. + +.. rubric:: Examples + +.. code-block:: rust + + 1 .. + 42 .. 86 + .. + dawn ..= dusk + ..= 5 + +.. _fls_nlzksiu8y3z9: + +If and If Let Expressions +------------------------- + +.. _fls_mkut7gut49gi: + +If Expressions +~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + IfExpression ::= + $$if$$ SubjectExpression BlockExpression ElseExpression? + + ElseExpression ::= + $$else$$ (BlockExpression | IfExpression | IfLetExpression) + +.. rubric:: Legality Rules + +:dp:`fls_2i4fbxbbvpf1` +An :t:`if expression` is an :t:`expression` that evaluates either a +:t:`block expression` or an :t:`else expression` depending on the :t:`value` of +its :t:`subject expression`. + +:dp:`fls_5azwlk7hav1k` +An :t:`else expression` is an :t:`expression` that represents either a +:t:`block expression`, an :t:`if expression`, or an :t:`if let expression`. + +:dp:`fls_r7gzxo16esri` +The :t:`type` of the :t:`subject expression` of an :t:`if expression` shall be +:t:`type` :c:`bool`. + +:dp:`fls_iv9t4nfs4f6w` +The :t:`type` of an :t:`if expression` is the :t:`type` of its +:t:`block expression`. + +:dp:`fls_i9sxf2q5jjqt` +The :t:`value` of an :t:`if expression` is the :t:`value` of its +:t:`block expression`. + +:dp:`fls_1e8qer6bh2f3` +The :t:`type` of an :t:`else expression` is the :t:`type` of its +:t:`block expression`, :t:`if expression`, or :t:`if let expression`. + +:dp:`fls_p5pjxk5xfcbx` +The :t:`value` of an :t:`else expression` is the :t:`value` of its +:t:`block expression`, :t:`if expression`, or :t:`if let expression`. + +:dp:`fls_mpq7gicosgkt` +The :t:`type` of an :t:`if expression` and the :t:`type` of an +:t:`else expression` shall be :t:`unifiable`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_yhlyzef9h97q` +The :t:`evaluation` of an :t:`if expression` proceeds as follows: + +#. :dp:`fls_w7lq4dkoyuf7` + The :t:`subject expression` is evaluated. + +#. :dp:`fls_5udx9zyeg5ga` + If the :t:`subject expression` evaluated to ``true``, then the + :t:`block expression` is evaluated. + +#. :dp:`fls_67l4j48n6p7o` + If the :t:`subject expression` evaluated to ``false`` and the + :t:`if expression` has an :t:`else expression`, then the :t:`else expression` + is evaluated. + +:dp:`fls_e8gd5lzcaifw` +The :t:`evaluation` of an :t:`else expression` evaluates its +:t:`block expression`, :t:`if expression`, or :t:`if let expression`. + +.. rubric:: Examples + +.. code-block:: rust + + if age <= 14 { + println!("child"); + } else if age <= 24 { + println!("youth"); + } else if age <=64 { + println!("adult"); + } else { + println!("senior"); + } + +.. _fls_p0t1ch115tra: + +If Let Expressions +~~~~~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + IfLetExpression ::= + $$if$$ $$let$$ Pattern $$=$$ SubjectLetExpression BlockExpression + ElseExpression? + +.. rubric:: Legality Rules + +:dp:`fls_dsrjup2umr9` +An :t:`if let expression` is an :t:`expression` that evaluates either a +:t:`block expression` or an :t:`else expression` depending on whether its +:t:`pattern` can be matched against its :t:`subject let expression`. + +:dp:`fls_4vyrufo4qdeg` +The :t:`type` of an :t:`if let expression` is the :t:`type` of its +:t:`block expression`. + +:dp:`fls_qfnwwvzxsl3` +The :t:`value` of an :t:`if let expression` is the :t:`value` of its +:t:`block expression`. + +:dp:`fls_lEr4iqwdBcbA` +The :t:`type` of an :t:`if let expression` and the :t:`type` of an +:t:`else expression` shall be :t:`unifiable`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_ijo73wtz1sy` +The :t:`evaluation` of an :t:`if let expression` of the form + +.. code-block:: rust + + if let pattern = subject_let_expression { + /* body */ + } + +:dp:`fls_qeho5iqiy59` +is equivalent to the :t:`evaluation` of the following :t:`match expression`: + +.. code-block:: rust + + match subject_let_expression { + pattern => { /* body */ }, + _ => () + } + +:dp:`fls_nhngr8y850dt` +The :t:`evaluation` of an :t:`if let expression` of the form + +.. code-block:: rust + + if let pattern = subject_let_expression { + /* body */ + } else { + /* else */ + } + +:dp:`fls_8fg2ufaxjkv5` +is equivalent to the :t:`evaluation` of the following :t:`match expression`: + +.. code-block:: rust + + match subject_let_expression { + pattern => { /* body */ }, + _ => { /* else */ } + } + +.. rubric:: Examples + +.. code-block:: rust + + let dish = ("Ham", "Eggs"); + + if let ("Ham", side) = dish { + println!("Ham is served with {}", side); + } + +.. _fls_e5td0fa92fay: + +Match Expressions +----------------- + +.. rubric:: Syntax + +.. syntax:: + + MatchExpression ::= + $$match$$ SubjectExpression $${$$ + InnerAttributeOrDoc* + MatchArmList? + $$}$$ + + MatchArmList ::= + IntermediateMatchArm* FinalMatchArm + + IntermediateMatchArm ::= + MatchArmMatcher $$=>$$ + $$($$ ExpressionWithBlock $$,$$? | ExpressionWithoutBlock $$,$$ $$)$$ + + FinalMatchArm ::= + MatchArmMatcher $$=>$$ Operand $$,$$? + + MatchArmMatcher ::= + OuterAttributeOrDoc* Pattern MatchArmGuard? + + MatchArmGuard ::= + $$if$$ Operand + +.. rubric:: Legality Rules + +:dp:`fls_ei4pbeksd1v8` +A :t:`match expression` is an :t:`expression` that tries to match one of its +multiple :t:`[pattern]s` against its :t:`subject expression` and if it succeeds, +evaluates an :t:`operand`. + +:dp:`fls_l45i24ikfavm` +A :t:`match arm` is a :t:`construct` that consists of a :t:`match arm matcher` +and a :t:`match arm body`. + +:dp:`fls_d9gerg12hm2d` +An :t:`intermediate match arm` is any :t:`non-[final match arm]` of a +:t:`match expression`. + +:dp:`fls_oj8dg28xw5yp` +A :t:`final match arm` is the last :t:`match arm` of a :t:`match expression`. + +:dp:`fls_lrdrtedyz28i` +A :t:`match arm matcher` is a :t:`construct` that consists of a :t:`pattern` and +a :t:`match arm guard`. + +:dp:`fls_8wjdichfxp0y` +A :t:`match arm body` is the :t:`operand` of a :t:`match arm`. + +:dp:`fls_hs1rr54hu18w` +A :t:`match arm guard` is a :t:`construct` that provides additional filtering to +a :t:`match arm matcher`. + +:dp:`fls_RPMOAaZ6lflI` +:t:`[Binding]s` introduced in the :t:`pattern` of a :t:`match arm matcher` are +:t:`immutable` in the :t:`match arm guard`. + +:dp:`fls_knv1affr2o8t` +The :t:`type` of the :t:`subject expression` and the :t:`[type]s` of all +:t:`[pattern]s` of all :t:`[match arm matcher]s` shall be :t:`unifiable`. + +:dp:`fls_bzhz5wjd90ii` +The :t:`type` of the :t:`operand` of a :t:`match arm guard` shall be :t:`type` +:c:`bool`. + +:dp:`fls_17ag0wzdbxv6` +The :t:`[type]s` of all :t:`match arm bodies ` shall be +:t:`unifiable`. + +:dp:`fls_5w964phrru82` +The :t:`type` of a :t:`match expression` is the :t:`unified type` of the +:t:`[type]s` of the :t:`[operand]s` of all :t:`[match arm]s`. + +:dp:`fls_g6xyz0beps3o` +A :t:`match arm` is selected when its :t:`pattern` matches the +:t:`subject expression` and its :t:`match arm guard` (if any) evaluates to +``true``. + +:dp:`fls_8dba4o5qg8js` +:t:`Match arm` selection happens in declarative order. + +:dp:`fls_e02um1gb89d0` +The :t:`[pattern]s` of all :t:`[match arm]s` taken together shall exhaustively +match the :t:`[subject expression]'s` :t:`type`. + +:dp:`fls_4sh2yrslszvb` +The :t:`value` of a :t:`match expression` is the :t:`value` of the :t:`operand` +of the selected :t:`match arm`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_g551l8r8yh6d` +The :t:`evaluation` of a :t:`match expression` proceeds as follows: + +#. :dp:`fls_y44jzkbv74bv` + The :t:`subject expression` is evaluated. + +#. :dp:`fls_jwxykea99psw` + Each :t:`match arm` is evaluated in declarative order as follows: + + #. :dp:`fls_pgulnjeoxwtj` + The :t:`match arm matcher` of the :t:`match arm` is evaluated. + + #. :dp:`fls_2dg7wl68z7ar` + If the :t:`match arm matcher` succeeds, then + + #. :dp:`fls_yv11febo0kyb` + The :t:`operand` of the :t:`match arm` is evaluated. + + #. :dp:`fls_mvi9z1x836qu` + Control stops the :t:`evaluation` of the :t:`match expression`. + + #. :dp:`fls_81nnizrxgrsm` + Otherwise control proceeds with the :t:`evaluation` of the next + :t:`match arm`. + +:dp:`fls_4dv7x9nh2h4e` +The :t:`evaluation` of a :t:`match arm matcher` proceeds as follows: + +#. :dp:`fls_k7kliy101m0f` + The :t:`pattern` of the :t:`match arm matcher` is evaluated. + +#. :dp:`fls_k68zkb6jv0vz` + If the :t:`pattern` succeeds, then + + #. :dp:`fls_gbb6wbmher5z` + If the :t:`match arm matcher` has a :t:`match arm guard`, then + + #. :dp:`fls_jl4av757yx8j` + The :t:`match arm guard` is evaluated. + + #. :dp:`fls_wkh5wztauwhu` + If the :t:`match arm guard` evaluates to ``true``, then the + :t:`match arm matcher` succeeds. + + #. :dp:`fls_f5f0x8jstp1g` + Otherwise the :t:`match arm matcher` fails. + +#. :dp:`fls_yk8l9zjh7i0d` + Otherwise the :t:`match arm matcher` fails. + +:dp:`fls_sbtx1l6n2tp2` +The :t:`evaluation` of a :t:`match arm guard` evaluates its :t:`operand`. A +:t:`match arm guard` evaluates to ``true`` when its :t:`operand` evaluates to +``true``, otherwise it evaluates to ``false``. + +.. rubric:: Examples + +.. code-block:: rust + + fn quantify(number_of_things: i32) { + match number_of_things { + 0 | 1 => println!("not many"), + 2 ..= 9 => println!("a few"), + _ if number_of_things < 0 => println!("you owe me"), + _ => println!("lots") + } + } + +.. _fls_8l74abhlxzdl: + +Return Expressions +------------------ + +.. rubric:: Syntax + +.. syntax:: + + ReturnExpression ::= + $$return$$ Expression? + +.. rubric:: Legality Rules + +:dp:`fls_u7jk4j8gkho` +A :t:`return expression` is an :t:`expression` that optionally yields a +:t:`value` and causes control flow to return to the end of the enclosing +:t:`control flow boundary`. + +:dp:`fls_5v3j5ghhw8j8` +A :t:`return expression` shall appear within a :t:`control flow boundary`. + +:dp:`fls_7Ck4LMQMeQCv` +The :t:`type` of a :t:`return expression` is the :t:`never type`. + +:dp:`fls_r610t5vsi7bx` +The :t:`value` returned by a :t:`return expression` is determined as follows: + +* :dp:`fls_njndlx2rps2k` + If the :t:`return expression` has an :t:`operand`, then the :t:`value` is the + :t:`value` of the :t:`operand`. + +* :dp:`fls_tjksia7prao1` + If the :t:`return expression` does not have an :t:`operand`, then the + :t:`value` is the :t:`unit value`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_bqmwlona6l5w` +The :t:`evaluation` of a :t:`return expression` proceeds as follows: + +#. :dp:`fls_d9avvfi548t7` + If the :t:`return expression` has an :t:`operand`, then + + #. :dp:`fls_o3fc1z2mn8zc` + The :t:`operand` is evaluated. + + #. :dp:`fls_bbf54ukld7j9` + The :t:`value` of the :t:`operand` is :t:`passed ` + :t:`by move` into the designated output location of the enclosing + :t:`control flow boundary`. + +#. :dp:`fls_99ea30a5mulj` + Control destroys the current activation frame. + +#. :dp:`fls_ubwj8uj6sbgt` + Control is transferred to the caller frame. + +.. rubric:: Examples + +.. code-block:: rust + + fn max(left: i32, right: i32) -> i32 { + if left > right { + return left; + } + return right; + } + +.. _fls_hyrbmfmf6r8g: + +Await Expressions +----------------- + +.. rubric:: Syntax + +.. syntax:: + + AwaitExpression ::= + FutureOperand $$.$$ $$await$$ + + FutureOperand ::= + Operand + +.. rubric:: Legality Rules + +:dp:`fls_sjz5s71hwm7l` +An :t:`await expression` is an :t:`expression` that polls a :t:`future`, +suspending the :t:`execution` of the :t:`future` until the :t:`future` is ready. + +:dp:`fls_vhchgab59jvd` +A :t:`future operand` is an :t:`operand` whose :t:`future` is being awaited by +an :t:`await expression`. + +:dp:`fls_k9pncajmhgk1` +An :t:`await expression` shall appear within an +:t:`async control flow boundary`. Only the innermost :t:`control flow boundary` +shall be considered. + +:dp:`fls_9uw5pd7kbrx3` +The :t:`type` of a :t:`future operand` shall implement the +:std:`core::future::IntoFuture` :t:`trait`. + +:dp:`fls_c6mxfzef2qop` +The :t:`type` of an :t:`await expression` is +``<_ as core::future::IntoFuture>::Output``. + +:dp:`fls_l396mo6k9ox7` +The :t:`value` of an :t:`await expression` is the :t:`value` held by +:std:`core::task::Poll::Ready`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_1ppywe40s62c` +The :t:`evaluation` of an :t:`await expression` proceeds as follows: + +#. :dp:`fls_eymcs2rgv3qw` + The :t:`future operand` is evaluated to a :t:`temporary` by invoking + :std:`core::future::IntoFuture::into_future` with the :t:`future operand`. + +#. :dp:`fls_qshnnpirkasz` + The :t:`temporary` is pinned using :std:`core::pin::Pin::new_unchecked`. + +#. :dp:`fls_umevprl99y6c` + The pinned :t:`temporary` is polled using :std:`core::future::Future::poll`, + passing in the :std:`core::task::Context` of the current task. + +#. :dp:`fls_k76d8ady623m` + If :std:`core::future::Future::poll` returns + :std:`core::task::Poll::Pending`, then the current :t:`future` yields. + +#. :dp:`fls_frwtufwe8dya` + If :std:`core::future::Future::poll` returns :std:`core::task::Poll::Ready`, + then + + #. :dp:`fls_u72ylhlmqge3` + The :t:`value` held within is unwrapped. + + #. :dp:`fls_tn3vwidct3ks` + Control stops the evaluation of the :t:`await expression`. + +.. rubric:: Examples + +.. code-block:: rust + + let future = async { expensive_function() }; + future.await; + +.. _fls_kw25194gpael: + +Expression Precedence +--------------------- + +.. rubric:: Legality Rules + +:dp:`fls_cwt7afsbgs7w` +Certain :t:`[expression]s` are subject to :t:`precedence` and +:t:`associativity`. + +:dp:`fls_ya23jjg5wjl` +:t:`Precedence` is the order by which :t:`[expression]s` are evaluated in the +presence of other :t:`[expression]s`. + +:dp:`fls_bezkcuwp5qol` +:t:`Associativity` is the order by which :t:`[operand]s` are evaluated within a +single :t:`expression`. + +:dp:`fls_48br7odx6nke` +The :t:`precedence` and :t:`associativity` of qualifying :t:`[expression]s` are +as follows: + +.. list-table:: + + * - :dp:`fls_mk2yk99p6nvp` + - **Expression** + - **Precedence** + - **Associativity** + * - :dp:`fls_jtdnf0vmn6xt` + - :t:`Array expression` + + :t:`Block expression` + + :t:`Continue expression` + + :t:`If expression` + + :t:`If let expression` + + :t:`Literal expression` + + :t:`Loop expression` + + :t:`Match expression` + + :t:`Parenthesized expression` + + :t:`Path expression` + + :t:`Struct expression` + + :t:`Tuple expression` + + :t:`Underscore expression` + - highest + - none + * - :dp:`fls_qurz25skmryg` + - :t:`Method call expression` + - + - none + * - :dp:`fls_ywqn5nixelkz` + - :t:`Await expression` + + :t:`Field access expression` + - + - left-to-right + * - :dp:`fls_k3ohh8k888c` + - :t:`Call expression` + + :t:`Index expression` + - + - none + * - :dp:`fls_41n6z85h1z47` + - :t:`Error propagation expression` + - + - none + * - :dp:`fls_f39rzauxrlcl` + - :t:`Borrow expression` + + :t:`Dereference expression` + + :t:`Negation expression` + - + - none + * - :dp:`fls_djphr5mk0t6f` + - :t:`Type cast expression` + - + - left-to-right + * - :dp:`fls_sif2aqky96j6` + - :t:`Division expression` + + :t:`Multiplication expression` + + :t:`Remainder expression` + - + - left-to-right + * - :dp:`fls_d7x817v8xzea` + - :t:`Addition expression` + + :t:`Subtraction expression` + - + - left-to-right + * - :dp:`fls_1f5ibdkz3l51` + - :t:`Shift left expression` + + :t:`Shift right expression` + - + - left-to-right + * - :dp:`fls_t1zqnab8a752` + - :t:`Bit and expression` + - + - left-to-right + * - :dp:`fls_f6in3h5cj8i6` + - :t:`Bit xor expression` + - + - left-to-right + * - :dp:`fls_hxa1avitfvrq` + - :t:`Bit or expression` + - + - left-to-right + * - :dp:`fls_sy2xzzq06i0x` + - :t:`Comparison expression` + - + - requires parentheses + * - :dp:`fls_hish3qfmawd` + - :t:`Lazy and expression` + - + - left-to-right + * - :dp:`fls_ruy7e6yccsqk` + - :t:`Lazy or expression` + - + - left-to-right + * - :dp:`fls_9qcm0dx9rolw` + - :t:`Range expression` + - + - requires parentheses + * - :dp:`fls_1l3rgtm6o54s` + - :t:`Assignment expression` + + :t:`Compound assignment expression` + - + - right-to-left + * - :dp:`fls_hr4kokysrjop` + - :t:`Break expression` + + :t:`Closure expression` + + :t:`Return expression` + - lowest + - none + +.. _fls_jmjn8jkbzujm: + +Capturing +--------- + +.. rubric:: Legality Rules + +:dp:`fls_iamnzlm430ef` +A :t:`capturing expression` is either an :t:`async block expression` or a +:t:`closure expression`. + +:dp:`fls_eca6tl7j0afx` +A :t:`capture target` is either a :t:`variable` or a :t:`field` of a +:t:`variable`. + +:dp:`fls_e70ywb8191h` +The :t:`capturing environment` of a :t:`capturing expression` consists of the +:t:`[value]s` of all :t:`captured` :t:`[capture target]s`. + +:dp:`fls_1y2ttb466m9c` +:t:`Capturing` is the process of saving the :t:`[capture target]s` of a +:t:`[capturing expression]'s` :t:`capturing environment`. + +:dp:`fls_ip81lt2mm940` +A :t:`capture target` requires :t:`capturing` when it is used by +the :t:`capturing expression` and it is defined outside of the +:t:`capturing expression`. Such a :t:`capture target` is said to be +:dt:`captured`. + +:dp:`fls_y9n1i4hbq8sf` +:t:`Capture mode` is the mechanism by which a :t:`capture target` is captured. + +:dp:`fls_O6WYL8AUyPje` +A :t:`captured` :t:`capture target` with :t:`capture mode` :dt:`by value capture` +:t:`passes ` the :t:`value` of the :t:`capture target` into +the :t:`capturing environment`. + +:dp:`fls_aCxt2Ovmb5He` +A :t:`captured` :t:`capture target` with :t:`capture mode` +:dt:`by immutable reference capture` binds an :t:`immutable reference` to the +:t:`capture target` and passes the :t:`immutable reference` into the +:t:`capturing environment`. + +:dp:`fls_xTNFfkxHm5yy` +A :t:`captured` :t:`capture target` with :t:`capture mode` +:dt:`by mutable reference capture` binds a :t:`mutable reference` to the +:t:`capture target` and passes the :t:`mutable reference` into the +:t:`capturing environment`. + +:dp:`fls_8HLaLAIZgYfs` +A :t:`captured` :t:`capture target` with :t:`capture mode` +:dt:`by unique immutable reference capture` binds a +:t:`unique immutable reference` to the :t:`capture target` and passes the +:t:`mutable reference` into the :t:`capturing environment`. + +:dp:`fls_t695ps4lfh6z` +The :t:`capture mode` is determined based on the use of the :t:`capture target` +within the :t:`capturing expression`, as follows: + +#. :dp:`fls_6j8cr7d5zs1l` + If the :t:`capturing expression` is subject to :t:`keyword` ``move``, then + the :t:`capture mode` is :t:`by value capture`. + +#. :dp:`fls_l8e98pyhm08g` + Otherwise the :t:`capture mode` is determined based on the following + precedence: + + #. :dp:`fls_33hfay24hx8u` + :t:`By immutable reference capture`. + + #. :dp:`fls_wmxsd0i2yemf` + :t:`By unique immutable reference capture` mode, if the + :t:`capture target` is a :t:`mutable reference` that is being modified. + + #. :dp:`fls_lu779ufqhggl` + :t:`By mutable reference capture` mode. + + #. :dp:`fls_uqy5w9uc8gla` + :t:`By value capture`. + +:dp:`fls_wvob7114tfat` +A tool selects the first :t:`capture mode` that is compatible with the use of +the :t:`capture target`. + +.. _fls_ZfIBiJMf8qE1: + +Arithmetic Overflow +------------------- + +:dp:`fls_oFIRXBPXu6Zv` +An :t:`arithmetic overflow` occurs when an :t:`arithmetic expression` or a +:t:`negation expression` computes a :t:`value` of a :t:`scalar type` that lies +outside of the range of valid :t:`[value]s` for the :t:`scalar type`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_8fU3h8PLasqA` +There are two allowed behaviors for :t:`arithmetic overflow`: + +#. :dp:`fls_R48VKcEIbfXC` + :t:`Evaluation` of the :t:`expression` may result in a :t:`panic`. + +#. :dp:`fls_QMpI8K43K2yU` + The resulting :t:`value` of the :t:`expression` may be truncated, discarding + the most significant bits that do not fit in the target :t:`type`. diff --git a/_sources/ffi.rst.txt b/_sources/ffi.rst.txt new file mode 100644 index 00000000..a9ba5871 --- /dev/null +++ b/_sources/ffi.rst.txt @@ -0,0 +1,248 @@ +.. SPDX-License-Identifier: MIT OR Apache-2.0 + SPDX-FileCopyrightText: The Ferrocene Developers + +.. default-domain:: spec + +.. _fls_osd6c4utyjb3: + +FFI +=== + +.. rubric:: Legality Rules + +:dp:`fls_djlglv2eaihl` +:t:`Foreign Function Interface` or :t:`FFI` employs :t:`ABI`, +:t:`[attribute]s`, :t:`[external block]s`, :t:`[external function]s`, linkage, +and :t:`type` :t:`layout` to interface a Rust program with foreign code. + +:dp:`fls_k1hiwghzxtfa` +The following :t:`[attribute]s` affect :t:`FFI`: + +* :dp:`fls_3cgtdk4698hm` + :t:`Attribute` :c:`export_name`. + +* :dp:`fls_shzmgci4f7o5` + :t:`Attribute` :c:`link`. + +* :dp:`fls_m7x5odt4nb23` + :t:`Attribute` :c:`link_section` + +* :dp:`fls_4akfvpq1yg4g` + :t:`Attribute` :c:`no_mangle`. + +* :dp:`fls_9d8v0xeyi0f` + :t:`Attribute` :c:`used`. + +.. _fls_usgd0xlijoxv: + +ABI +--- + +.. rubric:: Syntax + +.. syntax:: + + AbiSpecification ::= + $$extern$$ AbiKind? + + AbiKind ::= + RawStringLiteral + | StringLiteral + +.. rubric:: Legality Rules + +:dp:`fls_xangrq3tfze0` +:t:`Application Binary Interface` or :t:`ABI` is a set of conventions that +dictate how data and computation cross language boundaries. + +:dp:`fls_2w0xi6rxw3uz` +The :t:`ABI kind` indicates the :t:`ABI` of a :t:`construct`. + +:dp:`fls_9zitf1fvvfk8` +The following :t:`[ABI]s` are supported: + +* :dp:`fls_x7ct9k82fpgn` + ``extern "C"`` - The default :t:`ABI` of :t:`C` code, referred to as + :dt:`extern C ABI`. + +* :dp:`fls_LfjvLXvI6TFL` + ``extern "C-unwind"`` - The same as ``extern "C"`` with the addition that + unwinding across FFI is permitted. + +* :dp:`fls_a2d8ltpgtvn6` + ``extern "Rust"`` - The default :t:`ABI` of a Rust program, referred to as + :dt:`Rust ABI`. + +* :dp:`fls_8m7pc3riokst` + ``extern "system"`` - The operating system-dependent :t:`ABI`, referred to as + :dt:`external system ABI`. + +:dp:`fls_r2drzo3dixe4` +A :t:`function` without an explicit :t:`ABI` has implicit :t:`Rust ABI`, unless +it appears within an :t:`external block`. + +:dp:`fls_z2kzyin8dyr7` +A :t:`function` with an :t:`ABI` but without a specified :t:`ABI kind` has +implicit :t:`extern C ABI`. + +.. rubric:: Implementation Permissions + +:dp:`fls_j6pqchx27ast` +A tool is allowed to specify additional :t:`[ABI]s`. These :t:`[ABI]s` may +include, but may not be limited to, the following: + +* :dp:`fls_dbbfqaqa80r8` + ``extern "aapcs"`` - The ARM :t:`ABI`. + +* :dp:`fls_36qrs2fxxvi7` + ``extern "cdecl"`` - The x86_32 :t:`ABI` of :t:`C` code. + +* :dp:`fls_6rtj6rwqxojh` + ``extern "fastcall"`` - The ``fastcall`` :t:`ABI` that corresponds to MSVC's + ``__fastcall`` and GCC and clang's ``__attribute__((fastcall))``. + +* :dp:`fls_d3nmpc5mtg27` + ``extern "stdcall"`` - The x86_32 :t:`ABI` of the Win32 API. + +* :dp:`fls_7t7yxh94wnbl` + ``extern "sysv64"`` - The x86_64 non-Windows :t:`ABI` of :t:`C` code. + +* :dp:`fls_sxj4vy39sj4g` + ``extern "vectorcall"`` - The ``vectorcall`` :t:`ABI` that corresponds to + MSVC's ``__vectorcall`` and clang's ``__attribute__((vectorcall))``. + +* :dp:`fls_tyjs1x4j8ovp` + ``extern "win64"`` - The x86_64 Windows :t:`ABI` of :t:`C` code. + +.. rubric:: Undefined Behavior + +:dp:`fls_M4LqHf8hbPA8` +It is undefined behavior when a foreign exception crosses a +:t:`foreign function interface` boundary with an :t:`ABI` other than +``extern "C-unwind"``. + +.. rubric:: Examples + +.. code-block:: rust + + extern + extern "C" + +.. _fls_tmoh3y9oyqsy: + +External Blocks +--------------- + +.. rubric:: Syntax + +.. syntax:: + + ExternalBlock ::= + $$unsafe$$? $$extern$$ AbiKind? $${$$ + InnerAttributeOrDoc* + ExternItem* + $$}$$ + + ExternItem ::= + OuterAttributeOrDoc* (ExternalItemWithVisibility | TerminatedMacroInvocation) + + ExternalItemWithVisibility ::= + VisibilityModifier? ( + FunctionDeclaration + | StaticDeclaration + ) + +.. rubric:: Legality Rules + +:dp:`fls_4dje9t5y2dia` +An :t:`external block` is a :t:`construct` that provides the declarations of +foreign :t:`[function]s` as unchecked imports. + +:dp:`fls_Nz0l16hMxqTd` +The :t:`ABI` of a :t:`extern block` is determined as follows: + +* :dp:`fls_4XOoiFloXM7t` + If the :t:`extern block` specifies an :s:`AbiKind`, then the :t:`ABI` is the specified :s:`AbiKind`. + +* :dp:`fls_PBsepNHImJKH` + Otherwise the :t:`ABI` is the :t:`extern C ABI`. + +:dp:`fls_iaimuqcclstl` +The ``unsafe`` :t:`keyword` of an :t:`external block` is rejected, but may +still be consumed by :t:`[macro]s`. + +.. rubric:: Examples + +.. code-block:: rust + + extern "C" { + static MAX_LENGTH: size_t; + + fn compress + (input: *const u8, + input_length: size_t, + compressed: *mut u8, + compressed_length: *mut size_t) -> c_int; + fn log(msg: *const c_char, ...); + } + +.. _fls_yztwtek0y34v: + +External Functions +------------------ + +.. rubric:: Legality Rules + +:dp:`fls_v24ino4hix3m` +An :t:`external function` is an unchecked import of a foreign :t:`function`. + +:dp:`fls_l88r9fj82650` +An :t:`external function` shall be invoked from an :t:`unsafe context`. + +:dp:`fls_qwchgvvnp0qe` +An :t:`external function` shall not specify a :s:`FunctionQualifierList`. + +:dp:`fls_w00qi1gx204e` +An :t:`external function` inherits the :t:`ABI` of its enclosing +:t:`external block`. + +:dp:`fls_m7tu4w4lk8v` +An :t:`external function` shall not specify a :s:`GenericParameterList` +containing :t:`[constant parameter]s` or :t:`[type parameter]s`. + +:dp:`fls_rdu4723vp0oo` +An :t:`external function` shall not specify a :s:`FunctionBody`. + +:dp:`fls_9div9yusw64h` +An :t:`external function` shall not specify :t:`[pattern]s` other than +:t:`[identifier pattern]s` and :t:`[underscore pattern]s`. + +:dp:`fls_juob30rst11r` +Only the last parameter :s:`FunctionParameter` of an :t:`external function` may +specify a :s:`FunctionParameterVariadicPart`. + +.. _fls_s4yt19sptl7d: + +External Statics +---------------- + +.. rubric:: Legality Rules + +:dp:`fls_8ddsytjr4il6` +An :t:`external static` is an import of a foreign :t:`variable`. + +:dp:`fls_H0cg9XMaGz0y` +An :t:`external static` inherits the :t:`ABI` of its enclosing +:t:`external block`. + +:dp:`fls_fo9with6xumo` +An :t:`external static` shall be referenced from an :t:`unsafe context`. + +:dp:`fls_tr7purzcldn0` +An :t:`external static` shall not specify a :t:`static initializer`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_en2h09ehj0j3` +An :t:`immutable` :t:`external static` shall be initialized before Rust code +is executed. diff --git a/_sources/functions.rst.txt b/_sources/functions.rst.txt new file mode 100644 index 00000000..d4f4a2fc --- /dev/null +++ b/_sources/functions.rst.txt @@ -0,0 +1,197 @@ +.. SPDX-License-Identifier: MIT OR Apache-2.0 + SPDX-FileCopyrightText: The Ferrocene Developers + +.. default-domain:: spec + +.. _fls_qcb1n9c0e5hz: + +Functions +========= + +.. rubric:: Syntax + +.. syntax:: + + FunctionDeclaration ::= + FunctionQualifierList $$fn$$ Name GenericParameterList? $$($$ FunctionParameterList? $$)$$ ReturnType? WhereClause? (FunctionBody | ;) + + FunctionQualifierList ::= + $$const$$? $$async$$? $$unsafe$$? AbiSpecification? + + FunctionParameterList ::= + (FunctionParameter ($$,$$ FunctionParameter)* $$,$$?) + | (SelfParameter ($$,$$ FunctionParameter)* $$,$$?) + + FunctionParameter ::= + OuterAttributeOrDoc* (FunctionParameterPattern | FunctionParameterVariadicPart | TypeSpecification) + + FunctionParameterPattern ::= + PatternWithoutAlternation (TypeAscription | ($$:$$ FunctionParameterVariadicPart)) + + FunctionParameterVariadicPart ::= + $$...$$ + + ReturnType ::= + $$->$$ TypeSpecification + + FunctionBody ::= + BlockExpression + + SelfParameter ::= + OuterAttributeOrDoc* (ShorthandSelf | TypedSelf) + + ShorthandSelf ::= + ($$&$$ LifetimeIndication?)? $$mut$$? $$self$$ + + TypedSelf ::= + $$mut$$? $$self$$ TypeAscription + +.. rubric:: Legality Rules + +:dp:`fls_gn1ngtx2tp2s` +A :t:`function` is a :t:`value` of a :t:`function type` that models a behavior. + +:dp:`fls_bdx9gnnjxru3` +A :t:`function` declares a unique :t:`function item type` for itself. + +:dp:`fls_87jnkimc15gi` +A :t:`function qualifier` is a :t:`construct` that determines the role of +a :t:`function`. + +:dp:`fls_nwywh1vjt6rr` +A :t:`function` shall not be subject to both :t:`keyword` ``async`` and +:t:`keyword` ``const``. + +:dp:`fls_uwuthzfgslif` +A :t:`function parameter` is a :t:`construct` that yields a set of +:t:`[binding]s` that bind matched input :t:`[value]s` to :t:`[name]s` at the +site of a :t:`call expression` or a :t:`method call expression`. + +:dp:`fls_ymeo93t4mz4` +A :t:`self parameter` is a :t:`function parameter` expressed by :t:`keyword` +``self``. + +:dp:`fls_ijbt4tgnl95n` +A :t:`function` shall not specify a :t:`self parameter` unless it is an +:t:`associated function`. + +:dp:`fls_icdzs1mjh0n4` +A :t:`function` shall not specify a :s:`FunctionParameterVariadicPart` unless +it is an :t:`external function`. + +:dp:`fls_lxzinvqveuqh` +The :t:`pattern` of a :t:`function parameter` shall be an :t:`irrefutable +pattern`. + +:dp:`fls_PGDKWK7nPvgw` +The :t:`[binding]s` of all :t:`[pattern]s` of all :t:`[function parameter]s` of a :t:`function` shall not shadow another. + +:dp:`fls_vljy4mm0zca2` +A :t:`return type` is the :t:`type` of the result a :t:`function`, :t:`closure type` or :t:`function pointer type` returns. + +:dp:`fls_EqJb3Jl3vK8K` +The :t:`return type` of a :t:`function` is determined as follows: + +* :dp:`fls_C7dvzcXcpQCy` + If the :s:`FunctionDeclaration` specifies a :s:`ReturnType`, then the :t:`return type` is the specified :s:`ReturnType`. + +* :dp:`fls_J8X8ahnJLrMo` + Otherwise the :t:`return type` is the :t:`unit type`. + +:dp:`fls_927nfm5mkbsp` +A :t:`function body` is the :t:`block expression` of a :t:`function`. + +:dp:`fls_yfm0jh62oaxr` +A :t:`function` shall have a :t:`function body` unless it is an +:t:`associated trait function` or an :t:`external function`. + +:dp:`fls_bHwy8FLzEUi3` +A :t:`function body` denotes a :t:`control flow boundary`. + +:dp:`fls_5Q861wb08DU3` +A :t:`function body` of an :t:`async function` denotes an +:t:`async control flow boundary`. + +:dp:`fls_owdlsaaygtho` +A :t:`function signature` is a unique identification of a :t:`function` +that encompasses of its :t:`[function qualifier]s`, :t:`name`, +:t:`[generic parameter]s`, :t:`[function parameter]s`, :t:`return type`, and +:t:`where clause`. + +:dp:`fls_2049qu3ji5x7` +A :t:`constant function` is a :t:`function` subject to :t:`keyword` ``const``. + +:dp:`fls_7mlanuh5mvpn` +The :t:`function body` of a :t:`constant function` shall be a +:t:`constant expression`. + +:dp:`fls_otr3hgp8lj1q` +A :t:`constant function` shall be callable from a :t:`constant context`. + +:dp:`fls_m3jiunibqj81` +An :t:`async function` is a :t:`function` subject to :t:`keyword` ``async``. An +:t:`async function` of the form + +.. code-block:: rust + + async fn async_fn(param: ¶m_type) -> return_type { + /* tail expression */ + } + +:dp:`fls_7vogmqyd87ey` +is equivalent to :t:`function` + +.. code-block:: rust + + fn async_fn<'a>(param: &'a param_type) -> impl Future + 'a { + async move { + /* tail expression */ + } + } + +:dp:`fls_7ucwmzqtittv` +An :t:`unsafe function` is a :t:`function` subject to :t:`keyword` ``unsafe``. + +:dp:`fls_5hn8fkf7rcvz` +The invocation of an :t:`unsafe function` shall require :t:`unsafe context`. + +:dp:`fls_nw49shkqx40b` +A :t:`main function` is a :t:`function` that acts as an entry point into a +program. A :t:`main function` is subject to the following restrictions: + +* :dp:`fls_o4fxok23134r` + It lacks :t:`[function qualifier]s` ``async`` and ``unsafe``, + +* :dp:`fls_bk755pvc1l53` + Its :t:`ABI` is Rust, + +* :dp:`fls_5j2vbkt2hitj` + Its :t:`name` is the word ``main``, + +* :dp:`fls_a3je4wc53bmo` + It lacks :t:`[generic parameter]s`, + +* :dp:`fls_w8q15zp7kyl0` + It lacks :t:`[function parameter]s`, + +* :dp:`fls_4psnfphsgdek` + It lacks a :t:`return type`, + +* :dp:`fls_m7xfrhqif74` + It lacks a :t:`where clause`, + +* :dp:`fls_qq9fzrw4aykd` + It has a :t:`function body`. + +.. rubric:: Examples + +.. code-block:: rust + + fn eucledian_distance(left: &Point, right: &Point) -> f64 { + let x_delta_squared: f64 = (right.x - left.x).powi(2); + let y_delta_squared: f64 = (right.y - left.y).powi(2); + + (x_delta_squared + y_delta_squared).sqrt() + } + + fn main() {} diff --git a/_sources/general.rst.txt b/_sources/general.rst.txt new file mode 100644 index 00000000..5d64db3e --- /dev/null +++ b/_sources/general.rst.txt @@ -0,0 +1,430 @@ +.. SPDX-License-Identifier: MIT OR Apache-2.0 + SPDX-FileCopyrightText: The Ferrocene Developers + +.. default-domain:: spec + +.. informational-page:: + +.. _fls_48qldfwwh493: + +General +======= + +:dp:`fls_c4ry0kgmvk9z` +This document is influenced by the `Ada Reference Manual +`_ +Ada 202x edition, as well as the `Rust Language Reference +`_, the `Rust +Guidebook `_, and the `Rustonomicon +`_. + +:dp:`fls_gxqbj0qoiaio` +Parts of these documents have been copied, in whole or in part, in particular +but not limited to: + +* :dp:`fls_u8k9zr8da30` + The outline and structure of the documents; + +* :dp:`fls_8mt9iigoboba` + The title, outline, organization, and numbering of chapters; + +* :dp:`fls_suhf2g3fatfa` + The structure, formality, wording, and numbering of paragraphs; + +* :dp:`fls_jjr5kbn0wuco` + The definitions and uses of terms; + +* :dp:`fls_4dfcjyprkzbx` + The categories of syntactic and semantic rules. + +:dp:`fls_tq9jcv5ddvwn` +Consult :doc:`licenses` for the relevant copyright notices and licenses. + +.. _fls_fo1c7pg2mw1: + +Scope +----- + +:dp:`fls_srdq4mota5pr` +This document specifies the form and meaning of programs written in the +programming language Rust, as implemented by the :t:`rustc` compiler shipped +with Ferrocene. It documents the current understanding for the purposes of +compiler validation. As such, given any doubt, it prefers documenting behavior +of :t:`rustc` as included in the associated Ferrocene release over claiming +correctness as a specification. + +:dp:`fls_dv1qish8svc` +This document is made available for contribution and review as it is useful +outside of the Ferrocene effort and can be a place of shared understanding. It +is not intended as a discussion ground for language evolution. It is also not +intended as a document enabling conformance between compilers. + +:dp:`fls_osh9tiwpnsn1` +Contribution and review is managed by the Ferrocene project developers. + +.. _fls_10yukmkhl0ng: + +Extent +~~~~~~ + +:dp:`fls_x78yd1sszydv` +This document specifies: + +* :dp:`fls_9e032738udnb` + The form of a program written in Rust; + +* :dp:`fls_jk7scu5xs17z` + The effect of translating and executing such a program; + +* :dp:`fls_jiryupa5fxgf` + The manner in which :t:`[crate]s` and :t:`[module]s` may be combined to form + Rust programs; + +* :dp:`fls_sph1a3sapinh` + The language-defined libraries that a conforming tool is required to supply; + +* :dp:`fls_7tm19jxtffc8` + The violations that a conforming tool is required to detect, and the effect of + attempting to translate or execute a program containing such violations; + +* :dp:`fls_5pbrl8lhuth1` + The violations that a conforming tool is not required to detect. + +:dp:`fls_o8fc3e53vp7g` +This document does not specify: + +* :dp:`fls_rw0y5t13y6gs` + The means by which a Rust program is transformed into object code executable + by a processor; + +* :dp:`fls_x7c3o621qj9z` + The means by which translation or execution of Rust programs is invoked and + the executing units are controlled; + +* :dp:`fls_5y2b6yjcl1vz` + The size or speed of the object code, or the relative execution speed of + different language constructs; + +* :dp:`fls_8dennhk2dha` + The form or contents of any listings produced by a tool; in particular, the + form or contents of error or warning messages; + +* :dp:`fls_j2gs3hrbxtyx` + The effect of undefined behavior; + +* :dp:`fls_gy2c7vfwkd8j` + The size of a program or program unit that will exceed the capacity of a + conforming tool. + +.. _fls_xscgklvg1wd2: + +Structure +~~~~~~~~~ + +:dp:`fls_6lrqailxjb02` +This document contains 21 chapters, 2 appendices, and an index. + +:dp:`fls_tys7ciqnp8bn` +The specification of the Rust language is separated into: + +* :dp:`fls_3ubhkaheu8i1` + Chapters 1 through 21, + +* :dp:`fls_xw3grr2g5zgi` + :doc:`licenses` + +* :dp:`fls_k6obg07c1i71` + :doc:`glossary` + +:dp:`fls_6srbinvnyd54` +The specification is normative, except for the material in each of the items +listed below, which is informative: + +* :dp:`fls_ciixfg9jhv42` + Text under an "Examples" heading. + +* :dp:`fls_ej94lm2682kg` + Each subchapter whose title starts with the word "Example" or "Examples". + +:dp:`fls_xgk91jrbpyoc` +The following appendices are informative: + +* :dp:`fls_enkvrkfqwyt8` + :doc:`licenses` + +* :dp:`fls_yfyiaipc9omp` + :doc:`glossary` + +:dp:`fls_jc4upf6685bw` +Each chapter is divided into subchapters that have a common structure. Each +chapter and subchapter is then organized to include the following segments as is +relevant to the topic: + +.. rubric:: Syntax + +:dp:`fls_oxzjqxgejx9t` +The syntax representation of a :t:`construct`. + +.. rubric:: Legality Rules + +:dp:`fls_gmx688d6ek1o` +Compile-time rules and facts for each :t:`construct`. A :t:`construct` is legal +if it obeys all of the Legality Rules. + +:dp:`fls_5zdjikp1jhc` +Legality Rules are verified after :t:`macro expansion` takes place. + +.. rubric:: Dynamic Semantics + +:dp:`fls_as5bhc5t285g` +Run-time effects of each :t:`construct`. + +.. rubric:: Undefined Behavior + +:dp:`fls_70qjvaqoz007` +Situations that result in unbounded errors. + +.. rubric:: Implementation Requirements + +:dp:`fls_o4rdsbc7u98` +Additional requirements for conforming tools. + +.. rubric:: Examples + +:dp:`fls_w8j575w2hmc8` +Examples illustrating the possible forms of a :t:`construct`. This material +is informative. + +.. _fls_99b7xi1bkgih: + +Conformity +~~~~~~~~~~ + +.. rubric:: Implementation Requirements + +:dp:`fls_kdyqtnc6loam` +A conforming tool shall: + +* :dp:`fls_ctwsz8sl7lbq` + Translate and correctly execute legal programs written in Rust, provided that + they are not so large as to exceed the capacity of the tool, + +* :dp:`fls_bvpekhdaxctq` + Identify all programs or program units that are so large as to exceed the + capacity of the tool (or raise an appropriate exception at run time), + +* :dp:`fls_kfs8gsd36d91` + Identify all programs or program units that contain errors whose detection is + required by this document, + +* :dp:`fls_k5sozk8jhrmg` + Supply all language-defined library units required by this document, + +* :dp:`fls_nwx1fdq6b4mg` + Contain no variations except those explicitly permitted by this document, or + those that are impossible or impractical to avoid given the tool's execution + environment, + +* :dp:`fls_n3ypaile1a36` + Specify all such variations in the manner prescribed by this document. + +:dp:`fls_nnmx2qsu14ft` +The external effect of the execution of a Rust program is defined in terms of +its interactions with its external environment. The following are defined as +external interactions: + +* :dp:`fls_gu3331rmv2ho` + Any call on an foreign :t:`function`, including any :t:`[argument operand]s` + passed to it; + +* :dp:`fls_3iekobt8qqi` + Any result returned or :t:`panic` propagated from a :t:`main function` or an + :t:`exported function` to an external caller; + +* :dp:`fls_qx9fxf4py0j0` + The imported and exported :t:`[value]s` at the time of any other interaction + with the external environment. + +:dp:`fls_pl0fyjcwslqm` +A tool that conforms to this document shall produce for the execution of a given +Rust program a set of interactions with the external environment whose order and +timing are consistent with the definitions and requirements of this document for +the semantics of the given program. + +:dp:`fls_lkdm0mdghppv` +A tool that conforms to this document shall support each capability required by +the language as specified. + +:dp:`fls_d07x1mbhgpsd` +A tool that conforms to this document may provide additional :t:`[attribute]s` +as long as their names are not the same as the names of :t:`[built-in +attribute]s`. + +.. _fls_79rl6ylmct07: + +Method of Description and Syntax Notation +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +:dp:`fls_mc4a28do6kcp` +The form of a Rust program is described by means of a context-free syntax +together with context-dependent requirements expressed by narrative rules. + +:dp:`fls_ioyp4wux6skt` +The meaning of a Rust program is described by means of narrative rules defining +both the effects of each construct and the composition rules for constructs. + +:dp:`fls_jsflt7691ye4` +The context-free syntax of Rust is described using a simple variant of the +Backus-Naur form. In particular: + +* :dp:`fls_98fm7z04lq9` + A ``monospaced`` font is used to denote Rust syntax. + +* :dp:`fls_ceb5a8t6cakr` + Words in PascalCase font are used to denote a syntactic category, for example: + +.. syntax:: + + FloatExponent + +* :dp:`fls_pts29mb5ld68` + Words in **bold** font are used to indicate literal words and :t:`[keyword]s`, + for example: + +.. syntax:: + + $$crate$$ + $$proc_macro_derive$$ + $$Self$$ + $$tt$$ + +* :dp:`fls_gqjo5oh7vn3b` + Characters in **bold** font are used to indicate literal characters and + literal punctuation, for example: + +.. syntax:: + + $$1$$ + $$F$$ + $${$$ + $$&&$$ + $$>>=$$ + +* :dp:`fls_1dz634xp8xp5` + A character preceded by ``\`` (bold reverse solidus) is used to denote an + :t:`escaped character`, for example: + +.. syntax:: + + $$\t$$ + $$\\$$ + +* :dp:`fls_pp9vtjlyblrl` + A prefix followed by ``?`` (question mark) is used to denote an optional + prefix, for example: + +.. syntax:: + + IntegerSuffix? + +* :dp:`fls_6e2vd9fvhsmk` + A prefix followed by ``*`` (asterisk) is used to denote zero or more + repetitions of the prefix, for example: + +.. syntax:: + + OuterAttributeOrDoc* + +* :dp:`fls_4onq0kkrt6qv` + A prefix followed by ``+`` (plus sign) is used to denote one or more + repetitions of the prefix, for example: + +.. syntax:: + + MacroMatch+ + +* :dp:`fls_qu4rsmnq659w` + A prefix followed by ``L-H`` is used to denote the number of repetitions of + the prefix within the range from L to H, inclusive. For example: + +.. syntax:: + + HexadecimalDigit1-6 + +* :dp:`fls_rllu7aksf17e` + ``[ ]`` (square brackets) indicate any character within, for example: + +.. syntax:: + + [$$8$$ $$a$$ $$\r$$ $$:$$] + +* :dp:`fls_blvsfqeevosr` + ``~[ ]`` (square brackets preceded by tilde) indicate any character except the + characters within, for example: + +.. syntax:: + + ~[$$8$$ $$a$$ $$\r$$ $$:$$] + +* :dp:`fls_lwcjq3wzjyvb` + ``[ - ]`` indicates any character within the specified range, inclusive. For + example: + +.. syntax:: + + [$$a$$-$$f$$] + +* :dp:`fls_v7wd5yk00im6` + A ``|`` (vertical line) separates alternative items, for example: + +.. syntax:: + + $$self$$ | Identifier | $$_$$ + +* :dp:`fls_nf8alga8uz6c` + ``( )`` (parentheses) are used to group items, for example: + +.. syntax:: + + ($$,$$ ConfigurationPredicate) + +.. _fls_9cd746qe40ag: + +Versioning +---------- + +:dp:`fls_l80e3kdwnldc` +Ferrocene is a qualified compiler and this is the accompanying language +specification for the qualified version of the compiler. This document will +be updated with each qualification to accurately reflect the behavior of the +compiler qualified under that version of Ferrocene. + +.. _fls_ijzgf4h0mp3c: + +Definitions +----------- + +:dp:`fls_sm2kexes5pr7` +Terms are defined throughout this document, indicated by *italic* type. Terms +explicitly defined in this document are not to be presumed to refer implicitly +to similar terms defined elsewhere. + +:dp:`fls_2o98zw29xc46` +Mathematical terms not defined in this document are to be interpreted according +to the CRC Concise Encyclopedia of Mathematics, Second Edition. + +:dp:`fls_lon5qffd65fi` +Other terms not defined in this document are to be interpreted according to the +Webster's Third New International Dictionary of the English Language. + +:dp:`fls_qeolgxvcy75` +The definitions of terms are available in :doc:`glossary`. + +:dp:`fls_h2m244agxaxs` +A *rule* is a requirement imposed on the programmer, stated in normative +language such as "shall", "shall not", "must", "must not", except for text +under Implementation Requirements heading. + +:dp:`fls_47svine904xk` +A *fact* is a requirement imposed on a conforming tool, stated in informative +language such as "is", "is not", "can", "cannot". diff --git a/_sources/generics.rst.txt b/_sources/generics.rst.txt new file mode 100644 index 00000000..9224ee93 --- /dev/null +++ b/_sources/generics.rst.txt @@ -0,0 +1,465 @@ +.. SPDX-License-Identifier: MIT OR Apache-2.0 + SPDX-FileCopyrightText: The Ferrocene Developers + +.. default-domain:: spec + +.. _fls_y2k5paj8m8ug: + +Generics +======== + +.. _fls_vhpwge5123cm: + +Generic Parameters +------------------ + +.. rubric:: Syntax + +.. syntax:: + + GenericParameterList ::= + $$<$$ (GenericParameter ($$,$$ GenericParameter)* $$,$$?)? $$>$$ + + GenericParameter ::= + OuterAttributeOrDoc* ( + ConstantParameter + | LifetimeParameter + | TypeParameter + ) + + ConstantParameter ::= + $$const$$ Name TypeAscription ($$=$$ ConstantParameterInitializer)? + + ConstantParameterInitializer ::= + BlockExpression + | Identifier + | $$-$$? LiteralExpression + + LifetimeParameter ::= + Lifetime ($$:$$ LifetimeIndicationList)? + + TypeParameter ::= + Name ($$:$$ TypeBoundList?)? ($$=$$ TypeParameterInitializer)? + + TypeParameterInitializer ::= + TypeSpecification + +.. rubric:: Legality Rules + +:dp:`fls_sye3d17l9bf5` +A :t:`generic parameter` is a placeholder for a :t:`constant`, a :t:`lifetime`, +or a :t:`type`, whose :t:`constant`, :t:`lifetime`, or :t:`type` is supplied +statically by a :t:`generic argument`. + +:dp:`fls_dalqke3rznrb` +All :s:`[LifetimeParameter]s` in a :s:`GenericParameterList` shall precede all +:s:`[ConstantParameter]s` and :s:`[TypeParameter]s`. + +:dp:`fls_pi6eukz7kc99` +A :t:`generic enum` is an :t:`enum` with :t:`[generic parameter]s`. + +:dp:`fls_ixmgqupxvf73` +A :t:`generic function` is a :t:`function` with :t:`[generic parameter]s`. + +:dp:`fls_z311nxou9yi3` +A :t:`generic implementation` is an :t:`implementation` with +:t:`[generic parameter]s`. + +:dp:`fls_wmcp0n36jlbr` +A :t:`generic struct` is a :t:`struct` with :t:`[generic parameter]s`. + +:dp:`fls_h42kg56vsefx` +A :t:`generic trait` is a :t:`trait` with :t:`[generic parameter]s`. + +:dp:`fls_372h3oevejih` +A :t:`generic type alias` is a :t:`type alias` with :t:`[generic parameter]s`. + +:dp:`fls_u8mqct93yimd` +A :t:`generic union` is a :t:`union` with :t:`[generic parameter]s`. + +:dp:`fls_vpcqgec83ybt` +A :t:`constant parameter` is a :t:`generic parameter` for a :t:`constant`. + +:dp:`fls_3SjMBlc0b7qo` +A :t:`constant parameter initializer` is a :t:`construct` that provides the +default :t:`value` of its related :t:`constant parameter`. + +:dp:`fls_p4yb8EAXlRU0` +A :t:`constant parameter initializer` shall be a :t:`constant expression`. + +:dp:`fls_4a2qshaf5se7` +It is a static error to use a :t:`generic parameter` in the +:t:`discriminant initializer` of an :t:`enum variant`. + +:dp:`fls_s0nrjwqg2wox` +A :t:`lifetime parameter` is a :t:`generic parameter` for a :t:`lifetime`. + +:dp:`fls_2grtygcj8o3` +A :t:`lifetime parameter` shall not be used within a :t:`constant context`, +except for the ``'static`` :t:`lifetime`. + +:dp:`fls_95eooah0vcqx` +A :t:`type parameter` is a :t:`generic parameter` for a :t:`type`. + +:dp:`fls_ahCqtkh0m5sR` +A :t:`type parameter initializer` is a :t:`construct` that provides the +default :t:`value` of its related :t:`type parameter`. + +:dp:`fls_3qZRBp9j26w3` +The :t:`type` of the :t:`type parameter initializer` of a :t:`type parameter` +shall satisfy the :t:`[trait bound]s` of the :t:`type parameter`. + +:dp:`fls_x4s7p2v981r6` +A :t:`generic enum` shall use all of its :t:`[type parameter]s` and +:t:`[lifetime parameter]s` at least once in at least one of its +:t:`[enum variant]s`. + +:dp:`fls_jzfk9fspzqja` +A :t:`generic struct` shall use all of its :t:`[type parameter]s` and +:t:`[lifetime parameter]s` at least once in at least one of its :t:`[field]s`. + +:dp:`fls_6j616ydf2mnh` +A :t:`generic union` shall use all of its :t:`[type parameter]s` and +:t:`[lifetime parameter]s` at least once in at least one of its :t:`[field]s`. + +:dp:`fls_hyi2jnp38v1n` +A :t:`generic parameter` is said to constrain an :t:`implementation` if the +:t:`generic parameter` appears at least once in one of the following: + +* :dp:`fls_sseo6u6pbcki` + As a :t:`binding argument` in the :t:`[trait bound]s` of a :t:`type` that + contains another :t:`generic parameter` that constrains the + :t:`implementation`, or + +* :dp:`fls_62b59qvom3nm` + The :t:`implemented trait`, or + +* :dp:`fls_oq76uff9gp0k` + The :t:`implementing type`. + +:dp:`fls_ua3w16qo9o4` +It is a static error if a :t:`constant parameter` or a :t:`type parameter` of +an :t:`implementation` does not constrain the :t:`implementation`. + +:dp:`fls_w9ol06mldwb` +It is a static error if a :t:`lifetime parameter` of an :t:`implementation` +is used in an :t:`associated type` without constraining the +:t:`implementation`. + +:dp:`fls_g2pfrqhmeys8` +The :t:`type` of a :t:`constant parameter` shall be a :t:`scalar type`. + +:dp:`fls_56jq9k9l31rt` +A :t:`constant parameter` shall be used in the following contexts: + +* :dp:`fls_sh669lnc5o1b` + As a :t:`constant argument` in the signature and :t:`[field]s` of an + :t:`item`. + +* :dp:`fls_h6kx8dxh5u96` + In the :t:`constant initializer` of an :t:`associated constant`. + +* :dp:`fls_5r7ontjlmgwj` + As a :t:`constant argument` of an :t:`[associated type]'s` + :s:`InitializationType`. + +* :dp:`fls_prbwj1pmng6k` + As a :t:`constant argument` of any :t:`type` used within a :t:`function body`. + +* :dp:`fls_byqjs5fvy2bj` + As a :t:`value` of any :t:`expression` within a :t:`function body`. + +:dp:`fls_hidfwkwr2r73` +A :t:`type parameter` has an implicit :std:`core::marker::Sized` :t:`bound`, +unless an :t:`opt-out trait bound` for the :std:`core::marker::Sized` :t:`trait` +is present. + +:dp:`fls_yaYedRNaxhTe` +A :t:`type parameter` of an :t:`abstract data type` has implicit +:t:`[lifetime bound]s` depending on its usage in the :t:`[field]s` of the +:t:`abstract data type` as follows: + +* :dp:`fls_axMVssU7an8p` + If the :t:`type parameter` is used in a :t:`reference type`, then the + :t:`type parameter` has an implicit :t:`lifetime bound` for the + :t:`lifetime` of the :t:`reference type`, + +* :dp:`fls_iAnCoxISuxxb` + If the :t:`type parameter` is used as a :t:`generic argument` of an + :t:`abstract data type`, the :t:`type parameter` inherits all the + :t:`[lifetime bound]s` from the corresponding :t:`generic parameter` of + the :t:`generic argument`. + +:dp:`fls_wUwJEGzjCUAT` +A :t:`type parameter` of a :t:`function` has implicit :t:`[lifetime bound]s` +depending on its usages in the :t:`[function parameter]s` and :t:`return type` +as follows: + +* :dp:`fls_BN5nUuvq9AwY` + If the :t:`type parameter` is used in a :t:`reference type`, then the + :t:`type parameter` has an implicit :t:`lifetime bound` for the :t:`lifetime` + of the :t:`reference type`, + +* :dp:`fls_ouOm2TQKNsP3` + If the :t:`type parameter` is used as a :t:`generic argument` of an + :t:`abstract data type`, the :t:`type parameter` inherits all the + :t:`[lifetime bound]s` from the corresponding :t:`generic parameter` of + the :t:`generic argument`. + +:dp:`fls_m0bzw4jap6sg` +A :t:`generic parameter` with a :t:`bound` of the form + +.. code-block:: rust + + + +:dp:`fls_vo7mgm34hwg2` +is equivalent to the :t:`generic parameter` without the bound and a +:t:`where clause` of the following form: + +.. code-block:: rust + + where X: Bound + +.. rubric:: Examples + +.. code-block:: rust + + struct Array([T; N]) + + fn generic_function<'a, T>() {} + + struct Reference<'a, T: 'a> { + the_reference: &'a T + } + +.. _fls_7nv8ualeaqe3: + +Where Clauses +------------- + +.. rubric:: Syntax + +.. syntax:: + + WhereClause ::= + $$where$$ WhereClausePredicateList + + WhereClausePredicateList ::= + WhereClausePredicate (, WhereClausePredicate)* $$,$$? + + WhereClausePredicate ::= + LifetimeBoundPredicate + | TypeBoundPredicate + + LifetimeBoundPredicate ::= + LifetimeIndication $$:$$ LifetimeIndicationList? + + TypeBoundPredicate ::= + ForGenericParameterList? TypeSpecification $$:$$ TypeBoundList? + +.. rubric:: Legality Rules + +:dp:`fls_3nqb7p5ifvio` +A :t:`where clause` is a :t:`construct` that specifies :t:`[bound]s` on +:t:`[lifetime parameter]s` and :t:`[type]s` that have +to hold for the :t:`construct` subject to the :t:`where clause` to be valid. + +:dp:`fls_fhy4rsmmbvyy` +A :t:`where clause predicate` is either a :t:`lifetime bound predicate` or a +:t:`type bound predicate`. + +:dp:`fls_V4PKFqtCsAv6` +A :t:`lifetime bound predicate` is a :t:`construct` that specifies +:t:`[lifetime bound]s` on a :t:`lifetime parameter`. + +:dp:`fls_cslGPmVjujHD` +A :t:`type bound predicate` is a :t:`construct` that specifies +:t:`[lifetime bound]s` and :t:`[trait bound]s` on a :t:`type`. + +:dp:`fls_ytk74dyxuy6d` +A :t:`construct` is valid when all of its :t:`[where clause predicate]s` hold +true for the supplied :t:`[generic argument]s`. + +:dp:`fls_1xgw1dq60quz` +A :t:`trivial predicate` is a :t:`where clause predicate` that does not use +the :t:`[generic parameter]s` or :t:`[higher-ranked trait bound]s` of the related +:t:`construct`. + +:dp:`fls_47s8i7pzb9gg` +It is a static error to create a :t:`trivial predicate` that does not hold. + +.. rubric:: Examples + +.. code-block:: rust + + struct Clause where T: Iterator { + field: T + } + +.. _fls_utuu8mdbuyxm: + +Generic Arguments +----------------- + +.. rubric:: Syntax + +.. syntax:: + + GenericArgumentList ::= + $$<$$ ( GenericArgument ($$,$$ GenericArgument)* $$,$$? )? $$>$$ + + GenericArgument ::= + BindingArgument + | ConstantArgument + | LifetimeArgument + | TypeArgument + + BindingArgument ::= + Identifier $$=$$ TypeSpecification + + ConstantArgument ::= + BlockExpression + | $$-$$? LiteralExpression + | Identifier + + LifetimeArgument ::= + LifetimeIndication + + TypeArgument ::= + TypeSpecification + +.. rubric:: Legality Rules + +:dp:`fls_3x6qd8vt5uus` +A :t:`generic argument` supplies a static input for an +:t:`associated trait type` or a :t:`generic parameter`. + +:dp:`fls_ky39fb2vcom6` +A :s:`BindingArgument` shall follow :s:`[ConstantArgument]s`, +:s:`[LifetimeArgument]s`, and :s:`[TypeArgument]s` in a +:s:`GenericArgumentList`. + +:dp:`fls_9n1ejjili06h` +A :s:`LifetimeArgument` shall precede :s:`[BindingArgument]s`, +:s:`[ConstantArgument]s`, and :s:`[TypeArgument]s` in a +:s:`GenericArgumentList`. + +:dp:`fls_9pda3ja0ihks` +A :t:`binding argument` is a :t:`generic argument` that supplies the :t:`type` +of an :t:`associated trait type`. + +:dp:`fls_i3z9ueoe99zd` +A :t:`constant argument` is a :t:`generic argument` that supplies the +:t:`value` of a :t:`constant parameter`. + +:dp:`fls_al4dhmqodvwc` +A :t:`constant argument` may only appear as a single segment +:t:`path expression`, optionally encapsulated in a :t:`block expression`, within +an :t:`array repetition constructor` or a :t:`type`. + +:dp:`fls_10k9gdxlpuls` +A :t:`lifetime argument` is a :t:`generic argument` that supplies the +:t:`lifetime` of a :t:`lifetime parameter`. + +:dp:`fls_d4vdvpihoeb1` +A :t:`type argument` is a :t:`generic argument` that supplies the :t:`type` of +a :t:`type parameter`. + +:dp:`fls_ukarc98ceesz` +:t:`[Generic argument]s` are subject to :t:`generic conformance`. + +.. rubric:: Examples + +.. code-block:: rust + + trait Trait { + type Assoc; + } + +:dp:`fls_l88o2snx9qbt` +The following is a generic function with a binding argument. + +.. code-block:: rust + + fn func<'lifetime, T, const C: usize>() where T: Trait {} + +:dp:`fls_thpj9io9tyuy` +The following are generic arguments for ``func``. + +.. syntax:: + + func::<'static, u32, 0>(); + +.. _fls_i7g2n7hfg3ch: + +Generic Conformance +------------------- + +.. rubric:: Legality Rules + +:dp:`fls_CBWyxBJeYeb2` +:t:`Generic conformance` measures the compatibility between a set of +:t:`[generic parameter]s` and a set of :t:`[generic argument]s`. + +:dp:`fls_ltch5eivxgaa` +A :t:`binding argument` is conformant with an :t:`associated type` when the +supplied :t:`type` of the :t:`binding argument` fulfills the required +:t:`[trait bound]s` of the :t:`associated type`. + +:dp:`fls_gb3mpt5rxjoa` +A :t:`constant argument` is conformant with a :t:`constant parameter` when +the :t:`[type]s` of the :t:`constant argument` and the :t:`constant parameter` +are :t:`unifiable`. + +:dp:`fls_kdeltu9dsd0d` +A :t:`lifetime argument` is conformant with a :t:`lifetime parameter` when it +outlives the :t:`lifetime` specified by the :t:`lifetime parameter`. + +:dp:`fls_ws1h57fk1mkh` +A :t:`type argument` is conformant with a :t:`type parameter` when the +:t:`type` of the :t:`type argument` fulfills the required :t:`[trait bound]s` +of the :t:`type parameter`. + +:dp:`fls_w0ozotuwtr9` +:t:`[Generic argument]s` are conformant with :t:`[generic parameter]s` when + +* :dp:`fls_91bylteu35bi` + The :t:`[generic argument]s` consist only of conformant + :t:`[binding argument]s`, conformant :t:`[constant argument]s`, conformant + :t:`[lifetime argument]s`, and conformant :t:`[type argument]s`, and + +* :dp:`fls_j6xtrxc6aik` + Any remaining :t:`[generic parameter]s` without corresponding conformant + :t:`[generic argument]s` are :t:`[constant parameter]s` with + :t:`[constant parameter initializer]s`, :t:`[lifetime parameter]s` with + either inferred :t:`[lifetime argument]s` or :t:`[elided lifetime]s`, + :t:`[type parameter]s` with :t:`[type parameter initializer]s` or inferred + :t:`[type argument]s`, and + +* :dp:`fls_us7d30cbwgpz` + All :t:`[lifetime argument]s` come first, followed by + :t:`[constant argument]s` and :t:`[type argument]s` in the order defined by + the :t:`[generic parameter]s`, followed by :t:`[binding argument]s`, and + +* :dp:`fls_dp3hpvf0fmr8` + All :t:`[constant argument]s`, :t:`[lifetime argument]s`, and + :t:`[type argument]s` have a corresponding :t:`generic parameter`. + +:dp:`fls_mg45zcguxxg5` +:t:`[Generic argument]s` shall be conformant. + +:dp:`fls_mDgq5XjzKAl3` +The :t:`value` of a :t:`constant parameter` is determined as follows: + +* :dp:`fls_YufUgB25ovh3` + If the :t:`constant parameter` has a conformant :t:`constant argument`, then + the :t:`value` is that of the :t:`constant argument`. + +* :dp:`fls_OhVxhJ23x7W2` + Otherwise, if the :t:`constant parameter` has a + :t:`constant parameter initializer`, then the :t:`value` is that of the + :t:`constant parameter initializer`. + +* :dp:`fls_Kyar0jH9BqeW` + Otherwise this is a static error. diff --git a/_sources/glossary.rst.txt b/_sources/glossary.rst.txt new file mode 100644 index 00000000..7a9debec --- /dev/null +++ b/_sources/glossary.rst.txt @@ -0,0 +1,7653 @@ +.. SPDX-License-Identifier: MIT OR Apache-2.0 + SPDX-FileCopyrightText: The Ferrocene Developers + +.. default-domain:: spec + +.. informational-page:: + +.. _fls_bc2qwbfibrcs: + +Glossary +======== + +.. _fls_m98yg554tj9s: + +ABI +^^^ + +:dp:`fls_4ko8qcah0f9k` +For :dt:`ABI`, see :t:`Application Binary Interface`. + +.. _fls_zOdDwoObYHC0: + +ABI clobber +^^^^^^^^^^^ + +:dp:`fls_OVX4RFcWKfP9` +An :dt:`ABI clobber` is an argument to :t:`macro` :std:`core::arch::asm` which +indicates that the :t:`[value]s` of selected :t:`[register]s` might be +overwritten during the :t:`execution` of an :t:`assembly code block`. + +:dp:`fls_pMNTKjDMCHia` +See :s:`AbiClobber`. + +.. _fls_g791aj7w5iz1: + +ABI kind +^^^^^^^^ + +:dp:`fls_qo9itrt0n3h8` +The :dt:`ABI kind` indicates the :t:`ABI` of a :t:`construct`. + +:dp:`fls_rd4kpubxygie` +See :s:`AbiKind`. + +.. _fls_ymnz0mt7i4m8: + +abort +^^^^^ + +:dp:`fls_u4o7tda3ilv0` +:dt:`Abort` is the immediate termination of a program. + +.. _fls_g40une2uudez: + +abstract data type +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_64drmro2fcfo` +An :dt:`abstract data type` is a collection of other :t:`[type]s`. + +.. _fls_5fu0ncvnjyna: + +active attribute +^^^^^^^^^^^^^^^^ + +:dp:`fls_r8rzj8mtxtp1` +An :dt:`active attribute` is an :t:`attribute` that is removed from the +:t:`item` it decorates. + +.. _fls_xqZapSv9tM1F: + +addition assignment +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_FVgKeCXlmuPe` +For :dt:`addition assignment`, see :t:`addition assignment expression`. + +.. _fls_iw30dqjaeqle: + +addition assignment expression +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_w83tf9m7vu67` +An :dt:`addition assignment expression` is a +:t:`compound assignment expression` that uses addition. + +:dp:`fls_hihh97p0rnt8` +See :s:`AdditionAssignmentExpression`. + +.. _fls_mcabdigrqv21: + +addition expression +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_ylfdtuajmi0t` +An :dt:`addition expression` is an :t:`arithmetic expression` that uses +addition. + +:dp:`fls_5bgx5dyi817x` +See :s:`AdditionExpression`. + +.. _fls_wbdlbe61de3t: + +adjusted call operand +^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_mchqbc64iu0u` +An :dt:`adjusted call operand` is a :t:`call operand` with possible +:t:`auto dereferencing` adjustments. + +.. _fls_j775guurkgo4: + +alignment +^^^^^^^^^ + +:dp:`fls_c0hbatn5o8x3` +The :dt:`alignment` of a :t:`value` specifies which addresses are valid for +storing the value. + +.. _fls_jZKpckU1t2lR: + +all configuration predicate +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_IyMZWiTnkYPv` +An :dt:`all configuration predicate` is a :t:`configuration predicate` that +models existential quantifier ALL. + +:dp:`fls_0fEw9Bx8xX8q` +See :s:`ConfigurationPredicateAll`. + +.. _fls_du8uevac5q7j: + +anonymous loop expression +^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_csss2a8yk52k` +An :dt:`anonymous loop expression` is a :t:`loop expression` without a +:t:`label`. + +.. _fls_dgxkklxcrrl0: + +anonymous return type +^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_z6t6lbwwztuf` +An :dt:`anonymous return type` is an :t:`impl trait type` ascribed to a +:t:`function` return type. + +.. _fls_8oepaq6ang93: + +anonymous type parameter +^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_brqaq0736o09` +An :dt:`anonymous type parameter` is an :t:`impl trait type` ascribed to a +:t:`function parameter`. + +.. _fls_jrzM6C5B6AMt: + +any configuration predicate +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_0nWHML8eoozG` +An :dt:`any configuration predicate` is a :t:`configuration predicate` that +models existential quantifier ANY. + +:dp:`fls_xhhXonDldWQY` +See :s:`ConfigurationPredicateAny`. + +.. _fls_pcum2wpmgskk: + +Application Binary Interface +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_ew4babc9467c` +:dt:`Application Binary Interface` is a set of conventions that dictate how +data and computation cross language boundaries. + +:dp:`fls_8dgmmsp34lgc` +See :s:`AbiSpecification`. + +.. _fls_dd008npswhij: + +argument operand +^^^^^^^^^^^^^^^^ + +:dp:`fls_ljuwr88k92vp` +An :dt:`argument operand` is an :t:`operand` which is used as an argument in a +:t:`call expression` or a :t:`method call expression`. + +.. _fls_kf81ozijral2: + +arithmetic expression +^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_u3z2r1fw89xo` +An :dt:`arithmetic expression` is an :t:`expression` that computes a :t:`value` +from two :t:`[operand]s` using arithmetic. + +:dp:`fls_in59ccg4g3we` +See :s:`ArithmeticExpression`. + +.. _fls_kSuc3Gi7cdly: + +arithmetic operator +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_Qf7DckakqvRq` +An :dt:`arithmetic operator` is the operator of an :t:`arithmetic expression`. + +.. _fls_vZ1H57x9OFSZ: + +arithmetic overflow +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_jbytOQvIddAl` +An :dt:`arithmetic overflow` occurs if an :t:`arithmetic expression` or a +:t:`negation expression` computes a :t:`value` of a :t:`scalar type` that lies +outside of the range of valid :t:`[value]s` for the :t:`scalar type`. + +.. _fls_9aice4qbiqxf: + +arity +^^^^^ + +:dp:`fls_dl2gkip00bua` +An :dt:`arity` is the number of :t:`[tuple field]s` in a :t:`tuple type`. + +.. _fls_bn1regeucxqi: + +array +^^^^^ + +:dp:`fls_metry7a5prpt` +An :dt:`array` is a :t:`value` of an :t:`array type`. + +.. _fls_2d9fee2o9: + +array element constructor +^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_cmx9ls5zoazp` +An :dt:`array element constructor` is an :t:`array expression` that lists all +elements of the :t:`array` being constructed. + +:dp:`fls_9bwte7cmszl1` +See :s:`ArrayElementConstructor`. + +.. _fls_yvzpqb192pci: + +array expression +^^^^^^^^^^^^^^^^ + +:dp:`fls_pyjkjbvqarto` +An :dt:`array expression` is an :t:`expression` that constructs an :t:`array`. + +:dp:`fls_vua1xy4y9irp` +See :s:`ArrayExpression`. + +.. _fls_6jkgj61m49vg: + +array repetition constructor +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_st1kw8mor2zk` +An :dt:`array repetition constructor` is an :t:`array expression` that +specifies how many times an element is repeated in the :t:`array` being +constructed. + +:dp:`fls_1zr997qwsal2` +See :s:`ArrayRepetitionConstructor`. + +.. _fls_15gzlmwuu4pk: + +array type +^^^^^^^^^^ + +:dp:`fls_muddb5qxdc4k` +An :dt:`array type` is a :t:`sequence type` that represents a fixed sequence of +elements. + +:dp:`fls_wre34hexlv6s` +See :s:`ArrayTypeSpecification`. + +.. _fls_et0NKXAYyDmh: + +assembly code block +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_d1ojwFwKpvm3` +An :dt:`assembly code block` is a sequence of :t:`[assembly instruction]s`. + +:dp:`fls_gXVUuW6iyNhZ` +See :s:`AssemblyCodeBlock`. + +.. _fls_iUnmWXxcuzif: + +assembly directive +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_FP2KbO6c3cpq` +An :dt:`assembly directive` is a request to the assembler to perform a +particular action or change a setting. + +.. _fls_HliSgbSzPO2r: + +assembly instruction +^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_VLu28hOvCy2o` +An :dt:`assembly instruction` is a :t:`string literal` that represents a +low-level assembly operation or an :t:`assembly directive`. + +:dp:`fls_EYHuB5cCldbm` +See :s:`AssemblyInstruction`. + +.. _fls_1iVIUoVDsYph: + +assembly option +^^^^^^^^^^^^^^^ + +:dp:`fls_F5I3okDKIYnE` +An :dt:`assembly option` is used to specify a characteristic of or a restriction +on the related :t:`assembly code block`. + +:dp:`fls_31NQgPGb73Hy` +See :s:`AssemblyOption`. + +.. _fls_l78iam7w8w38: + +assigned operand +^^^^^^^^^^^^^^^^ + +:dp:`fls_g714mnh7s7fx` +An :dt:`assigned operand` is the target :t:`operand` of a +:t:`compound assignment expression`. + +:dp:`fls_z0amfuj9vsqe` +See :s:`AssignedOperand`. + +.. _fls_m1mim5qdzf2u: + +assignee expression +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_wpmcexvbynbu` +An :dt:`assignee expression` is an :t:`expression` that appears as the +:t:`left operand` of an :t:`assignment expression`. + +.. _fls_3hs9hqsthil1: + +assignee operand +^^^^^^^^^^^^^^^^ + +:dp:`fls_4tgf0wu2mr3l` +An :dt:`assignee operand` is the target :t:`operand` of an +:t:`assignment expression`. + +:dp:`fls_df0j0vnnq20a` +See :s:`AssigneeOperand`. + +.. _fls_f6ztsofr6xa9: + +assignment +^^^^^^^^^^ + +:dp:`fls_j9pyuucyplmi` +See :t:`assignment expression`. + +.. _fls_2d2elg5eukv4: + +assignment expression +^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_6jkc6a6me3zr` +An :dt:`assignment expression` is an :t:`expression` that assigns the +:t:`value` of a :t:`value operand` to an :t:`assignee operand`. + +:dp:`fls_njw68i3bp9qq` +See :s:`AssignmentExpression`. + +.. _fls_pjb22ylz5swp: + +associated constant +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_hi9qa0k2nujb` +An :dt:`associated constant` is a :t:`constant` that appears as an +:t:`associated item`. + +.. _fls_vxiitesidcc2: + +associated function +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_zcy5pat39bq7` +An :dt:`associated function` is a :t:`function` that appears as an +:t:`associated item`. + +.. _fls_9mcx6h6irrlx: + +associated implementation constant +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_rfaxcrrrb5q9` +An :dt:`associated implementation constant` is an :t:`associated constant` that +appears within an :t:`implementation`. + +.. _fls_n85fwe75ku60: + +associated implementation function +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_7xbmvl3jrc27` +An :dt:`associated implementation function` is an :t:`associated function` that +appears within an :t:`implementation`. + +.. _fls_c0hekhwpznyq: + +associated implementation type +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_6g5t81gx9ayx` +An :dt:`associated implementation type` is an :t:`associated type` that appears +within an :t:`implementation`. + +.. _fls_f3ferow5ugp: + +associated item +^^^^^^^^^^^^^^^ + +:dp:`fls_o5ysjk7l91ni` +An :dt:`associated item` is an :t:`item` that appears within an +:t:`implementation` or a :t:`trait`. + +:dp:`fls_44vtqu7tvhi2` +See :s:`AssociatedItem`. + +.. _fls_8p8teeamua55: + +associated trait constant +^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_xhhsej8db74y` +An :dt:`associated trait constant` is an :t:`associated constant` that appears +within a :t:`trait`. + +.. _fls_4h7s8u1zumnq: + +associated trait function +^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_r927r0pdkb6h` +An :dt:`associated trait function` is an :t:`associated function` that appears +within a :t:`trait`. + +.. _fls_47xtji9Pk8Lw: + +associated trait implementation item +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_PaENehzTVgfB` +An :dt:`associated trait implementation item` is an :t:`associated item` that +appears within a :t:`trait implementation`. + +.. _fls_J946yIcmlAyV: + +associated trait item +^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_IlRrVLm05GTf` +An :dt:`associated trait item` is an :t:`associated item` that appears +within a :t:`trait`. + +.. _fls_azz308k3ra99: + +associated trait type +^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_dndsgkiq9r7i` +An :dt:`associated trait type` is an :t:`associated type` that appears within +a :t:`trait`. + +.. _fls_zfs68g3yk0uw: + +associated type +^^^^^^^^^^^^^^^ + +:dp:`fls_rs0n72c2d8f` +An :dt:`associated type` is a :t:`type alias` that appears as an +:t:`associated item`. + +.. _fls_zOe783MlE9i9: + +associated type projection +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_4moFUY6epk0v` +An :dt:`associated type projection` is a :t:`qualified type path` of the form +``::associated_type``, where ``type`` is a :t:`type`, ``trait`` +is a :t:`qualifying trait`, and ``associated type`` is an :t:`associated type`. + +.. _fls_fczijre8123c: + +associativity +^^^^^^^^^^^^^ + +:dp:`fls_7i7o23mi2i33` +:dt:`Associativity` is the order by which :t:`[operand]s` are evaluated within +a single :t:`expression`. + +.. _fls_9speqyus5ku3: + +async block +^^^^^^^^^^^ + +:dp:`fls_pf6lrmcjywoj` +For :dt:`async block`, see :t:`async block expression`. + +.. _fls_n5m58be9jnjj: + +async block expression +^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_p6nvfs7bfoxd` +An :dt:`async block expression` is a :t:`block expression` that is specified +with :t:`keyword` ``async`` and encapsulates behavior which is executed in +an asynchronous manner. + +:dp:`fls_je689rormhd6` +See :s:`AsyncBlockExpression`. + +.. _fls_lYrTaCM1LcXU: + +async control flow boundary +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_EXoGOkCRsfKK` +An :dt:`async control flow boundary` is a :t:`control flow boundary` that +additionally allows the suspension of execution via :t:`[await expression]s`. + +.. _fls_nlafxy2z1moc: + +async function +^^^^^^^^^^^^^^ + +:dp:`fls_gv9wl1cbaw1g` +An :dt:`async function` is a :t:`function` subject to :t:`keyword` ``async``. + +.. _fls_yikjq8yn3nnh: + +atomic +^^^^^^ + +:dp:`fls_9xd3m2qvqzk` +See :t:`atomic type`. + +.. _fls_197vnaw2zbnc: + +atomic type +^^^^^^^^^^^ + +:dp:`fls_cycpv4fopgx2` +An :dt:`atomic type` is a :t:`type` defined in :t:`module` +:std:`core::sync::atomic`. + +.. _fls_w1plocebd7kg: + +attribute +^^^^^^^^^ + +:dp:`fls_o74rfpe6zo6a` +An :dt:`attribute` is a general, free-form metadatum that is interpreted based +on its name, convention, language, and tool. + +.. _fls_SsMRqkHLDAgG: + +attribute content +^^^^^^^^^^^^^^^^^ + +:dp:`fls_sn0GvVmM3o38` +An :dt:`attribute content` is a :t:`construct` that provides the content of +an :t:`attribute`. + +:dp:`fls_YwyrWC8fcmRm` +See :s:`AttributeContent`. + +.. _fls_x1fafbpo0mlu: + +attribute macro +^^^^^^^^^^^^^^^ + +:dp:`fls_mtqr4d817ikn` +An :dt:`attribute macro` is a :t:`procedural macro` that consumes two streams +of :t:`[token]s` to produce a stream of tokens, and defines a new +:t:`outer attribute` that can be attached to :t:`[item]s`. + +.. _fls_24iVIlHhvnVO: + +auto trait +^^^^^^^^^^ + +:dp:`fls_d84nTOR4pZq5` +An :dt:`auto trait` is a :t:`trait` that is implicitly and automatically +implemented by a :t:`type` when the types of its constituent :t:`[field]s` +implement the :t:`trait`. + +.. _fls_n4oo89apywk4: + +await expression +^^^^^^^^^^^^^^^^ + +:dp:`fls_psbc3b8pec47` +An :dt:`await expression` is an :t:`expression` that polls a :t:`future`, +suspending the execution of the future until the future is ready. + +:dp:`fls_29gkp9bpo1hi` +See :s:`AwaitExpression`. + +.. _fls_a8tavqxuvaju: + +base initializer +^^^^^^^^^^^^^^^^ + +:dp:`fls_dnuwn2tnvtgy` +A :dt:`base initializer` is a :t:`construct` that specifies an :t:`enum value`, +a :t:`struct value`, or a :t:`union value` to be used as a base for +construction in a :t:`struct expression`. + +:dp:`fls_mprzem71zlhy` +See :s:`BaseInitializer`. + +.. _fls_bii5eu1wznzk: + +basic assignment +^^^^^^^^^^^^^^^^ + +:dp:`fls_byq9e2jf8r22` +A :dt:`basic assignment` is an :t:`assignment expression` that is not a +:t:`destructuring assignment`. + +.. _fls_kahj3y4rvmvb: + +binary crate +^^^^^^^^^^^^ + +:dp:`fls_8gfe7hajxkd7` +A :dt:`binary crate` is a :t:`crate` that contains a :t:`main function`. + +.. _fls_or4o65fyt28y: + +binary literal +^^^^^^^^^^^^^^ + +:dp:`fls_hy54uj6u3nqw` +A :dt:`binary literal` is an :t:`integer literal` in base 2. + +:dp:`fls_693r7vs2s7o7` +See :s:`BinaryLiteral`. + +.. _fls_xydujcfvvb8p: + +binary operator +^^^^^^^^^^^^^^^ + +:dp:`fls_v0he0zp9ph7a` +A :dt:`binary operator` is an operator that operates on two :t:`[operand]s`. + +.. _fls_jrelzibadg7b: + +binding +^^^^^^^ + +:dp:`fls_89qi3unjvwd7` +A :dt:`binding` of a :t:`binding pattern` binds a matched :t:`value` to a +:t:`name`. + +:dp:`fls_lujdci4bphek` +See :s:`Binding`. + +.. _fls_glblhx8vzd3z: + +binding argument +^^^^^^^^^^^^^^^^ + +:dp:`fls_9lzcasl4tw7k` +A :dt:`binding argument` is a :t:`generic argument` that supplies the :t:`type` +of an :t:`associated trait type`. + +.. _fls_bv1k866tai6j: + +binding mode +^^^^^^^^^^^^ + +:dp:`fls_e3uvvvvyzq8h` +:dt:`Binding mode` is the mechanism by which a matched :t:`value` is bound to a +:t:`binding` of a :t:`pattern`. + +.. _fls_1nw19qc14zg6: + +binding pattern +^^^^^^^^^^^^^^^ + +:dp:`fls_ancqgz8pybbe` +A :dt:`binding pattern` is either an :t:`identifier pattern` or a +:t:`shorthand deconstructor`. + +.. _fls_5ep4xSGZwtoL: + +binding scope +^^^^^^^^^^^^^ + +:dp:`fls_6qPYH5NJ8usI` +A :dt:`binding scope` is a :t:`scope` for :t:`[binding]s`. + +.. _fls_clut5DWMQin8: + +bit and assignment +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_wIl0K7O6lTXJ` +For :dt:`bit and assignment`, see :t:`bit and assignment expression`. + +.. _fls_y72vyr2tmdyb: + +bit and assignment expression +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_dvqotpte0pc2` +A :dt:`bit and assignment expression` is a :t:`compound assignment expression` +that uses bit and arithmetic. + +:dp:`fls_ix9ecb5olcx` +See :s:`BitAndAssignmentExpression`. + +.. _fls_h6sh4im3gjys: + +bit and expression +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_c1g5gljnr9kz` +A :dt:`bit and expression` is a :t:`bit expression` that uses bit and +arithmetic. + +:dp:`fls_vbsvu0troqci` +See :s:`BitAndExpression`. + +.. _fls_ed6yltkt0gb1: + +bit expression +^^^^^^^^^^^^^^ + +:dp:`fls_b3p5xqsfolqo` +A :dt:`bit expression` is an :t:`expression` that computes a :t:`value` from +two :t:`[operand]s` using bit arithmetic. + +:dp:`fls_iw1k2cfwfjou` +See :s:`BitExpression`. + +.. _fls_90E3eiBYgicI: + +bit or assignment +^^^^^^^^^^^^^^^^^ + +:dp:`fls_21iFIDCu7Pk4` +For :dt:`bit or assignment`, see :t:`bit or assignment expression`. + +.. _fls_ehorb0lul906: + +bit or assignment expression +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_tu1owkfk0lu0` +A :dt:`bit or assignment expression` is a :t:`compound assignment expression` +that uses bit or arithmetic. + +:dp:`fls_utjcsfz8up88` +See :s:`BitOrAssignmentExpression`. + +.. _fls_m33m8nd2rnf8: + +bit or expression +^^^^^^^^^^^^^^^^^ + +:dp:`fls_183aem60of9o` +A :dt:`bit or expression` is a :t:`bit expression` that uses bit or arithmetic. + +:dp:`fls_ctqsjp653tbt` +See :s:`BitOrExpression`. + +.. _fls_jEnv7RjEUZvm: + +bit xor assignment +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_VJpCPVCuszs1` +For :dt:`bit xor assignment`, see :t:`bit xor assignment expression`. + +.. _fls_u3fcq7jjyxux: + +bit xor assignment expression +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_ma980ujltab2` +A :dt:`bit xor assignment expression` is a :t:`compound assignment expression` +that uses bit exclusive or arithmetic. + +:dp:`fls_lcrd0birf0un` +See :s:`BitXorAssignmentExpression`. + +.. _fls_ixw1601j8u39: + +bit xor expression +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_kccsvtzfhbp1` +A :dt:`bit xor expression` is a :t:`bit expression` that uses bit exclusive or +arithmetic. + +:dp:`fls_6qulwlo43w6m` +See :s:`BitXorExpression`. + +.. _fls_aa980vviqjue: + +block comment +^^^^^^^^^^^^^ + +:dp:`fls_a0ejcfs7y5uy` +A :dt:`block comment` is a :t:`comment` that spans one or more :t:`[line]s`. + +:dp:`fls_21r4tblk8awi` +See :s:`BlockComment`. + +.. _fls_c5qn7wjk0mnx: + +block expression +^^^^^^^^^^^^^^^^ + +:dp:`fls_gvjvzxi2xps4` +A :dt:`block expression` is an :t:`expression` that sequences expressions and +:t:`[statement]s`. + +:dp:`fls_h8j9t2xq2i1u` +See :s:`BlockExpression`. + +.. _fls_n485t6wcgx07: + +bool +^^^^ + +:dp:`fls_wtmaf5amvleh` +:dc:`bool` is a :t:`type` whose :t:`[value]s` denote the truth values of logic +and Boolean algebra. + +.. _fls_oz4tdyp3rvm4: + +boolean literal +^^^^^^^^^^^^^^^ + +:dp:`fls_5mrxdqh474vk` +A :dt:`boolean literal` is a :t:`literal` that denotes the truth :t:`[value]s` +of logic and Boolean algebra. + +:dp:`fls_i13qcchm9vkk` +See :s:`BooleanLiteral`. + +.. _fls_7ef4c6ss7m6i: + +borrow +^^^^^^ + +:dp:`fls_2tpbdddvrl2f` +A :dt:`borrow` is a :t:`reference` produced by :t:`borrowing`. + +.. _fls_u0hymkjwyur7: + +borrow expression +^^^^^^^^^^^^^^^^^ + +:dp:`fls_2f55piwg78ru` +A :dt:`borrow expression` is an :t:`expression` that borrows the :t:`value` +of its :t:`operand` and creates a :t:`reference` to the memory location of its +operand. + +:dp:`fls_c3hydbp2exok` +See :s:`BorrowExpression`. + +.. _fls_gl84828b074a: + +borrowed +^^^^^^^^ + +:dp:`fls_3gnps2s95ck4` +A memory location is :dt:`borrowed` when a :t:`reference` pointing to it is +:t:`active`. + +.. _fls_95c5cbc2jvpc: + +borrowing +^^^^^^^^^ + +:dp:`fls_2epblwd2slp8` +:dt:`Borrowing` is the process of temporarily associating a :t:`reference` with +a :t:`value` without transferring :t:`ownership` permanently. + +.. _fls_ehfvcdpo3l4a: + +bound +^^^^^ + +:dp:`fls_q6mxhn1fxjs6` +A :dt:`bound` imposes a constraint on a :t:`generic parameter` by limiting the +set of possible :t:`[generic substitution]s`. + +:dp:`fls_rxabhhigp5uy` +See :s:`TypeBound`. + +.. _fls_jlfqyn3enrsi: + +bound pattern +^^^^^^^^^^^^^ + +:dp:`fls_uusfbosjwyd1` +A :dt:`bound pattern` is a :t:`pattern` that imposes a constraint on a related +:t:`identifier pattern`. + +:dp:`fls_oszhit2crxzc` +See :s:`BoundPattern`. + +.. _fls_xki2cerozblt: + +break expression +^^^^^^^^^^^^^^^^ + +:dp:`fls_8ys8hlqgizoa` +A :dt:`break expression` is an :t:`expression` that terminates a +:t:`loop expression` or a :t:`named block expression`. + +:dp:`fls_fd1xpst5fki2` +See :s:`BreakExpression`. + +.. _fls_ff2zt3ww2yw3: + +break type +^^^^^^^^^^ + +:dp:`fls_jvm1vsqmslxn` +:dt:`Break type` is the :t:`type` of the :t:`operand` of a +:t:`break expression`. + +.. _fls_owtptuvleeb: + +break value +^^^^^^^^^^^ + +:dp:`fls_kpka4jf2qr5l` +:dt:`Break value` is the :t:`value` of the :t:`operand` of a +:t:`break expression`. + +.. _fls_82ev7wknxqmk: + +built-in attribute +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_a40rclur4orm` +A :dt:`built-in attribute` is a language-defined :t:`attribute`. + +:dp:`fls_ooq5g8zffyfb` +See :s:`InnerBuiltinAttribute`, :s:`OuterBuiltinAttribute`. + +.. _fls_QzAif2NyVJbk: + +built-in trait +^^^^^^^^^^^^^^ + +:dp:`fls_IgzD9l8o6R50` +A :dt:`built-in trait` is a language-defined :t:`trait`. + +.. _fls_e8rokiw23i9t: + +byte literal +^^^^^^^^^^^^ + +:dp:`fls_l67oo0u12zjb` +A :dt:`byte literal` is a :t:`literal` that denotes a fixed byte :t:`value`. + +:dp:`fls_iu9twvm648dx` +See :s:`ByteLiteral`. + +.. _fls_uwe7iomhvgtp: + +byte string literal +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_my4r1l3ilyt2` +A :dt:`byte string literal` is a :t:`literal` that consists of multiple +:s:`[AsciiCharacter]s`. + +:dp:`fls_4yhag19z61bl` +See :s:`ByteStringLiteral`. + +.. _fls_lfjgrkwra22i: + +C +^ + +:dp:`fls_d4q2ro4nsnop` +:dt:`C` is the programming language described in the ISO/IEC 9899:2018 +International Standard. + +.. _fls_wenn1wdsicfz: + +C representation +^^^^^^^^^^^^^^^^ + +:dp:`fls_g9pdb06m5fto` +:dt:`C representation` is a :t:`type representation` that lays out :t:`[type]s` +such that they are interoperable with the :t:`C` language. + +.. _fls_fls_J0xUy4Mcxoe6: + +C signed int type +^^^^^^^^^^^^^^^^^ + +:dp:`fls_8QIcvapJehqY` +:dt:`C signed int type` is the `signed int` :t:`type` of the :t:`C` language. + +.. _fls_Egfa8tdbqllA: + +Call conformance +^^^^^^^^^^^^^^^^ + +:dp:`fls_Jr1gUX7Ju4Oh` +:dt:`Call conformance` measures the compatibility between a set of +:t:`[argument operand]s` and a set if :t:`[function parameter]s` or +:t:`[field]s`. + +.. _fls_xeo59ol6uh5i: + +call expression +^^^^^^^^^^^^^^^ + +:dp:`fls_a9ap0tyk2eou` +A :dt:`call expression` is an :t:`expression` that invokes a :t:`function` or +constructs a :t:`tuple struct value` or :t:`tuple enum variant value`. + +:dp:`fls_aibti9uqrmmd` +See :s:`CallExpression`. + +.. _fls_ezk9xkst7gfj: + +call operand +^^^^^^^^^^^^ + +:dp:`fls_cqnko94y4xbs` +A :dt:`call operand` is the :t:`function` being invoked or the +:t:`tuple struct value` or :t:`tuple enum variant value` being constructed by a +:t:`call expression`. + +:dp:`fls_w6wu4wi6srjj` +See :s:`CallOperand`. + +.. _fls_zSh4enFjxeaN: + +call resolution +^^^^^^^^^^^^^^^ + +:dp:`fls_fS1ZjGGypvbn` +:dt:`Call resolution` is a kind of :t:`resolution` that applies to a +:t:`call expression`. + + +.. _fls_AK8mL1LeftO0: + +call site hygiene +^^^^^^^^^^^^^^^^^ + +:dp:`fls_YTQmXotFOXWU` +:dt:`Call site hygiene` is a type of :t:`hygiene` which resolves to the +:s:`MacroInvocation` site. :t:`[Identifier]s` with :t:`call site hygiene` can +reference the environment of the :s:`MacroRulesDeclaration`, can reference the +environment of the :s:`MacroInvocation`, and are considered :t:`unhygienic`. + +.. _fls_luuc01g4ffog: + +callee type +^^^^^^^^^^^ + +:dp:`fls_o21myf6wnnn6` +A :dt:`callee type` is either a :t:`function item type`, a +:t:`function pointer type`, a :t:`tuple struct type`, a :t:`tuple enum variant` +or a :t:`type` that implements any of the :std:`core::ops::Fn`, +:std:`core::ops::FnMut`, or :std:`core::ops::FnOnce` :t:`[trait]s`. + +.. _fls_s78gd8yxx2yv: + +capture mode +^^^^^^^^^^^^ + +:dp:`fls_beer0d7wva1d` +:dt:`Capture mode` is the mechanism by which a :t:`capture target` is captured. + +.. _fls_c6qwfwsyizya: + +capture target +^^^^^^^^^^^^^^ + +:dp:`fls_xmhcp4x8wblz` +A :dt:`capture target` is either a :t:`binding` or a :t:`field` of a +:t:`binding`. + +.. _fls_kvu447p6j61k: + +capturing +^^^^^^^^^ + +:dp:`fls_4achbk2ewyyb` +:dt:`Capturing` is the process of saving the :t:`[capture target]s` of a +:t:`[capturing expression]'s` :t:`capturing environment`. + +.. _fls_yfk2xfifltxy: + +capturing environment +^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_7br4azaay3wu` +The :dt:`capturing environment` of a :t:`capturing expression` consists of all +:t:`[capture target]s` that are defined outside the :t:`capturing expression`. + +.. _fls_cl3lpsfgt5eb: + +capturing expression +^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_awtny282gtud` +A :dt:`capturing expression` is either an :t:`async block expression` or a +:t:`closure expression`. + +.. _fls_pcaygpx7db24: + +cast +^^^^ + +:dp:`fls_e5hvszhcrtmj` +:dt:`Cast` or :dt:`casting` is the process of changing the :t:`type` of an +:t:`expression`. + +.. _fls_xl2zlpw070dy: + +char +^^^^ + +:dp:`fls_vx0dss1yplw1` +:dc:`char` is a :t:`type` whose :t:`[value]s` denote :t:`Unicode` characters. + +.. _fls_cfphqaml82ik: + +character literal +^^^^^^^^^^^^^^^^^ + +:dp:`fls_8oah1cf8p0lb` +A :dt:`character literal` is a :t:`literal` that denotes a fixed :t:`Unicode` +character. + +:dp:`fls_sup0h5mvibzs` +See :s:`CharacterLiteral`. + +.. _fls_5vm5cijnucsr: + +closure body +^^^^^^^^^^^^ + +:dp:`fls_vgnycw6dykwo` +A :dt:`closure body` is a :t:`construct` that represents the executable portion +of a :t:`closure expression`. + +:dp:`fls_zefhg4auut8d` +See :s:`ClosureBody`, :s:`ClosureBodyWithReturnType`. + +.. _fls_mrwle2ediywb: + +closure expression +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_x87rhn9ikz00` +A :dt:`closure expression` is an :t:`expression` that defines a +:t:`closure type` and constructs a value of that :t:`type`. + +:dp:`fls_psd18dkzplf6` +See :s:`ClosureExpression`. + +.. _fls_f5RBXj9g5iab: + +closure parameter +^^^^^^^^^^^^^^^^^ + +:dp:`fls_yQBZHBLhPswn` +A :dt:`closure parameter` is a :t:`construct` that yields a set of +:t:`[binding]s` that bind matched input :t:`[value]s` to :t:`[name]s` at the +site of a :t:`call expression` or a :t:`method call expression`. + +:dp:`fls_Dus3fBU3TwR4` +See :s:`ClosureParameter`. + +.. _fls_xjudl8ykbisi: + +closure type +^^^^^^^^^^^^ + +:dp:`fls_wp4kues3nbvn` +A :dt:`closure type` is a unique anonymous :t:`function type` that encapsulates +all :t:`[capture target]s` of a :t:`closure expression`. + +.. _fls_aqovhozevngd: + +code point +^^^^^^^^^^ + +:dp:`fls_6xw8jtiomc2n` +In :t:`Unicode`, a :dt:`code point` is a numeric :t:`value` that maps to a +character. + +.. _fls_2moavfyeit0m: + +comment +^^^^^^^ + +:dp:`fls_3xhoz9f7xy1t` +A :dt:`comment` is a :t:`lexical element` that acts as an annotation or an +explanation in program text. + +:dp:`fls_pi32rhfqghma` +See :s:`Comment`. + +.. _fls_hjxuoe1hwlhm: + +comparison expression +^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_394p7gdruvk7` +A :dt:`comparison expression` is an :t:`expression` that compares the +:t:`[value]s` of two :t:`[operand]s`. + +:dp:`fls_1jk0s7389mt0` +See :s:`ComparisonExpression`. + +.. _fls_riwule1euzlj: + +compilation root +^^^^^^^^^^^^^^^^ + +:dp:`fls_stwsfyvov2fx` +A :dt:`compilation root` is an input to a compilation performed by a tool. + +.. _fls_pTMrfPXETibe: + +compound assignment +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_lGV9QvCmYGcH` +For :dt:`compound assignment`, see :t:`compound assignment expression`. + +.. _fls_iktiir89xbo2: + +compound assignment expression +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_mkxpk2jhe5s0` +A :dt:`compound assignment expression` is an expression that first computes +a :t:`value` from two :t:`[operand]s` and then assigns the value to an +:t:`assigned operand`. + +:dp:`fls_55abuw8symub` +See :s:`CompoundAssignmentExpression`. + +.. _fls_qyfn5u5cl5l1: + +concrete type +^^^^^^^^^^^^^ + +:dp:`fls_l0lr3ybgccjc` +A :dt:`concrete type` is a :t:`type` described by a :t:`type specification`. + +.. _fls_lmacvq89lj2j: + +conditional compilation +^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_xymops69eer3` +:dt:`Conditional compilation` is the process of compiling +:t:`conditionally-compiled source code`. + +.. _fls_bqq013n2cy4t: + +conditionally-compiled source code +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_hs4lnrdxpj2g` +:dt:`Conditionally-compiled source code` is source code that may or may not be +considered a part of a Rust program depending on certain conditions. + +.. _fls_vRjPmHYEVVAf: + +configuration predicate +^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_TyKIUQMxO9Si` +A :dt:`configuration predicate` is a :t:`construct` that evaluates statically +to either ``true`` or ``false``, and controls :t:`conditional compilation`. + +:dp:`fls_99ioki0M64fD` +See :s:`ConfigurationPredicate`. + +.. _fls_yw57di94gwpf: + +constant +^^^^^^^^ + +:dp:`fls_p8rjw2qok85b` +A :dt:`constant` is an immutable :t:`value` whose uses are substituted by the +:t:`value`. + +:dp:`fls_hlouedpdg1zd` +See :s:`ConstantDeclaration`. + +.. _fls_n7z4cl1fsk6l: + +constant argument +^^^^^^^^^^^^^^^^^ + +:dp:`fls_sz10vgh260xo` +A :dt:`constant argument` is a :t:`generic argument` that supplies the +:t:`value` of a :t:`constant parameter`. + +:dp:`fls_dz9x6gf3yzc6` +See :s:`ConstantArgument`. + +.. _fls_mtbhv6e9izzm: + +constant context +^^^^^^^^^^^^^^^^ + +:dp:`fls_9j6mc4i1t73z` +A :dt:`constant context` is a :t:`construct` that requires a +:t:`constant expression`. + +.. _fls_iofbib2gavnv: + +constant expression +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_rmn8w4rh3juf` +A :dt:`constant expression` is an :t:`expression` that can be evaluated +statically. + +.. _fls_6j1wluj8sku8: + +constant function +^^^^^^^^^^^^^^^^^ + +:dp:`fls_4glkwg11p5ml` +A :dt:`constant function` is a :t:`function` subject to :t:`keyword` ``const``. + +.. _fls_mf022jo05ziu: + +constant initializer +^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_2ge48v1kmw8` +A :dt:`constant initializer` is a :t:`construct` that provides the :t:`value` +of its related :t:`constant`. + +:dp:`fls_h86eg26z19r2` +See :s:`ConstantInitializer`. + +.. _fls_pj0f0p4avbyw: + +constant parameter +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_z7e491m3dx4u` +A :dt:`constant parameter` is a :t:`generic parameter` for a :t:`constant`. + +:dp:`fls_9093wziwxk1g` +See :s:`ConstantParameter`. + +.. _fls_sIvXMhYaZVjD: + +constant parameter initializer +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_OXD2YaOkfjcI` +A :dt:`constant parameter initializer` is a :t:`construct` that provides the +default `:t:`value` of its related :t:`constant parameter`. + +:dp:`fls_CMsyUCxGm8Xs` +See :s:`ConstantParameterInitializer`. + +.. _fls_f95c9hrk7t2p: + +constant promotion +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_ku2md8lnei12` +:dt:`Constant promotion` is the process of converting a :t:`value expression` +into a :t:`constant`. + +.. _fls_x4niicvxxv9k: + +constrain +^^^^^^^^^ + +:dp:`fls_fna0ch8ucyhv` +A :t:`generic parameter` is said to :dt:`constrain` an :t:`implementation` if +it makes the :t:`[implementation]'s` applicability more narrow. + +.. _fls_4305i29nt5d6: + +construct +^^^^^^^^^ + +:dp:`fls_10tvzeo8xex0` +A :dt:`construct` is a piece of program text that is an instance of a +:t:`syntactic category`. + +.. _fls_fBGjoTVhYvUe: + +constructee +^^^^^^^^^^^ + +:dp:`fls_Twbu94uGW4Cb` +A :dt:`constructee` indicates the :t:`enum variant`, :t:`struct` or :t:`union` +whose value is being constructed by a :t:`struct expression`. + +.. _fls_39s6od9hj4g6: + +container operand +^^^^^^^^^^^^^^^^^ + +:dp:`fls_stjmobac6wyd` +A :dt:`container operand` is an :t:`operand` that indicates the :t:`value` +whose :t:`field` is selected in a :t:`field access expression`. + +:dp:`fls_hgm1ssicc8j4` +See :s:`ContainerOperand`. + +.. _fls_doazu99vos8x: + +continue expression +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_waxam3m9plfj` +A :dt:`continue expression` is an :t:`expression` that first terminates and +then restarts a :t:`loop expression`. + +:dp:`fls_smwcz2xw9o1f` +See :s:`ContinueExpression`. + +.. _fls_nC4Knv4tpenW: + +control flow boundary +^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_SmipZJDp02ij` +A :dt:`control flow boundary` is a :t:`construct` that limits control flow from +returning beyond the :t:`construct`, and acts as the target of control flow +returning operations. + +.. _fls_lnwxm6ffy15w: + +copy type +^^^^^^^^^ + +:dp:`fls_j7r33ecacyh` +A :dt:`copy type` is a :t:`type` that implements the +:std:`core::marker::Copy` :t:`trait`. + +.. _fls_kf8yukhxudw8: + +crate +^^^^^ + +:dp:`fls_qplsjzb2uyim` +A :dt:`crate` is a unit of compilation and linking that contains a tree of +nested :t:`[module]s`. + +.. _fls_xwbmmcbbowtu: + +crate import +^^^^^^^^^^^^ + +:dp:`fls_y91ja1a87g7a` +A :dt:`crate import` specifies a dependency on an external :t:`crate`. + +:dp:`fls_nmdxagg39hz6` +See :s:`ExternalCrateImport`. + +.. _fls_CXvNvsO10pLL: + +crate indication +^^^^^^^^^^^^^^^^ + +:dp:`fls_XUSFUErxQRRA` +A :dt:`crate indication` is a :t:`construct` that indicates a :t:`crate`. + +:dp:`fls_s1eFklbzjLxQ` +See :s:`CrateIndication`. + +.. _fls_yf9yjzzhw0rn: + +crate public modifier +^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_dj7fmrqhbhsv` +A :dt:`crate public modifier` is a :t:`visibility modifier` that grants a +:t:`name` :t:`public visibility` within the current :t:`crate` only. + +:dp:`fls_wjfupeyeczp0` +See :s:`CratePublicModifier`. + +.. _fls_hv9zyxb72soh: + +crate root +^^^^^^^^^^ + +:dp:`fls_yxcgiuybqqy8` +A :dt:`crate root` is an entry point into a :t:`crate`. + +.. _fls_iucxone5ta26: + +crate root module +^^^^^^^^^^^^^^^^^ + +:dp:`fls_oo4nmqv78wno` +A :dt:`crate root module` is the root of the nested :t:`module` tree of a +:t:`crate`. + +.. _fls_76cj65bptdpn: + +dangling +^^^^^^^^ + +:dp:`fls_lq2urzh7bzxx` +A :t:`value` of an :t:`indirection type` is :dt:`dangling` if it is either +:c:`null` or not all of the bytes at the referred memory location are part of +the same allocation. + +.. _fls_9meaofgcpvx6: + +data race +^^^^^^^^^ + +:dp:`fls_v2s1b57e3r7n` +A :dt:`data race` is a scenario where two or more threads access a shared +memory location concurrently. + +.. _fls_128iunbbiuql: + +decimal literal +^^^^^^^^^^^^^^^ + +:dp:`fls_lwv823lih69m` +A :dt:`decimal literal` is an :t:`integer literal` in base 10. + +:dp:`fls_pxiba4se64y4` +See :s:`DecimalLiteral`. + +.. _fls_9qgy7x6w5ro5: + +declaration +^^^^^^^^^^^ + +:dp:`fls_kct7ducpli6k` +A :dt:`declaration` is a :t:`construct` that introduces a :t:`name` for an +:t:`entity`. + +.. _fls_5944xn0lz8e: + +declarative macro +^^^^^^^^^^^^^^^^^ + +:dp:`fls_pe12lfffaoqt` +A :dt:`declarative macro` is a :t:`macro` that associates a :t:`name` with a +set of syntactic transformation rules. + +:dp:`fls_1te2kfi9lt6c` +See :s:`MacroRulesDeclaration`. + +.. _fls_GAlaslkO8gLG: + +deconstructee +^^^^^^^^^^^^^ + +:dp:`fls_QsvWOdoFWtUO` +A :dt:`deconstructee` indicates the :t:`enum variant` or :t:`type` that is +being deconstructed by a :t:`struct pattern`. + +:dp:`fls_TkFjmV7AR7lp` +See :s:`Deconstructee`. + +.. _fls_g9v8ubx8m1sq: + +default representation +^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_e85fsp10acnh` +:dt:`Default representation` is a :t:`type representation` that does not make +any guarantees about :t:`layout`. + +.. _fls_FrfnICpg81sr: + +definition site hygiene +^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_2Y1Dpw5ZEqT3` +:dt:`Definition site hygiene` is a type of :t:`hygiene` which resolves to the +:s:`MacroRulesDeclaration` site. :t:`[Identifier]s` with +:t:`definition site hygiene` cannot reference the environment of the +:s:`MacroRulesDeclaration`, cannot be referenced by the environment of a +:s:`MacroInvocation`, and are considered :t:`hygienic`. + +.. _fls_127n1n5ssk2b: + +dereference +^^^^^^^^^^^ + +:dp:`fls_hk97pb1qt04y` +A :dt:`dereference` is the memory location produced by evaluating a +:t:`dereference expression`. + +.. _fls_o588wfq878rm: + +dereference expression +^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_3cuyhbh2llei` +A :dt:`dereference expression` is an :t:`expression` that obtains the +pointed-to memory location of its :t:`operand`. + +:dp:`fls_hx0jwahdb1nf` +See :s:`DereferenceExpression`. + +.. _fls_xbN0GtcH8emc: + +dereference type +^^^^^^^^^^^^^^^^ + +:dp:`fls_HfuUQ7IaoI5j` +A :dt:`dereference type` is either a :t:`reference type` or a :t:`type` that +implements the :std:`core::ops::Deref` :t:`trait`. + +.. _fls_T380NdEsFxIp: + +dereference type chain +^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_kIzoAEf069HE` +A :dt:`dereference type chain` is a sequence of :t:`[dereference type]s`. + +.. _fls_7ipdj78o7ln: + +derive macro +^^^^^^^^^^^^ + +:dp:`fls_jrrjhl9hocrm` +A :dt:`derive macro` is a :t:`procedural macro` that consumes a stream of +:t:`[token]s` and produces a stream of tokens, and is invoked via attribute +:c:`derive`. + +.. _fls_7b3fsp356e9l: + +destruction +^^^^^^^^^^^ + +:dp:`fls_58i2nfhxze3j` +:dt:`Destruction` is the process of recovering resources associated with a +:t:`value` as it goes out of scope. + +.. _fls_kwxpy451gtc: + +destructor +^^^^^^^^^^ + +:dp:`fls_79pp7o1xooja` +A :dt:`destructor` is a :t:`function` that is invoked immediately before the +:t:`destruction` of a :t:`value` of a :t:`drop type`. + +.. _fls_2fuu3zr9rn2q: + +destructuring assignment +^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_7jienn9uzn5k` +A :dt:`destructuring assignment` is an :t:`assignment expression` where +the :t:`assignee operand` is either an :t:`array expression`, a +:t:`struct expression`, or a :t:`tuple expression`. + +.. _fls_ugIFZlAzDK6H: + +direction modifier +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_8DY7xPVX4nXx` +A :dt:`direction modifier` is a :t:`construct` that indicates whether a +:t:`register argument` initializes a :t:`register`, assigns the :t:`value` of a +:t:`register` to an :t:`expression`, or both. + +:dp:`fls_lRKEzY3fQ3B2` +See :s:`DirectionModifier`. + +.. _fls_7vg56eeo0zlg: + +discriminant +^^^^^^^^^^^^ + +:dp:`fls_dfegy9y6awx` +A :dt:`discriminant` is an opaque integer that identifies an :t:`enum variant`. + +.. _fls_xayj37ocbqjn: + +discriminant initializer +^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_o7hihgcqmnyc` +A :dt:`discriminant initializer` provides the :t:`value` of a :t:`discriminant`. + +:dp:`fls_g5obc23vigng` +See :s:`DiscriminantInitializer`. + +.. _fls_a0ezuPLtENme: + +discriminant type +^^^^^^^^^^^^^^^^^ + +:dp:`fls_t4yeovFm83Wo` +A :dt:`discriminant type` is the :t:`type` of a :t:`discriminant`. + +.. _fls_gDFsAj1Bvx7A: + +diverging expression +^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_fLlNzmB34cj9` +A :dt:`diverging expression` is an :t:`expression` whose :t:`evaluation` causes +program flow to diverge from the normal :t:`evaluation` order. + +.. _fls_9DuaIn6cRbXf: + +diverging type variable +^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_sxyL7yOp3H9s` +A :dt:`diverging type variable` is a :t:`type variable` that can refer to any +:t:`type` and originates from a :t:`diverging expression`. + +.. _fls_0lpT9Ncj7S9X: + +division assignment +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_kvQskrzE1y97` +For :dt:`division assignment`, see :t:`division assignment expression`. + +.. _fls_ccv27fji08ou: + +division assignment expression +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_lzuz5fkveikk` +A :dt:`division assignment expression` is a :t:`compound assignment expression` +that uses division. + +:dp:`fls_cdxt76aqwtkq` +See :s:`DivisionAssignmentExpression`. + +.. _fls_vxd5q8nekkn0: + +division expression +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_du05yp205f4y` +A :dt:`division expression` is an :t:`arithmetic expression` that uses division. + +:dp:`fls_d3vwk4autyd` +See :s:`DivisionExpression`. + +.. _fls_4nm1r57ntecm: + +doc comment +^^^^^^^^^^^ + +:dp:`fls_wkc1w2xk7ebh` +A :dt:`doc comment` is a :t:`comment` class that includes +:t:`[inner block doc]s`, :t:`[inner line doc]s`, :t:`[outer block doc]s`, +and :t:`[outer line doc]s`. + +.. _fls_nw0qr4xy3zxq: + +drop construct +^^^^^^^^^^^^^^ + +:dp:`fls_odg2asgj28m` +A :dt:`drop construct` is a :t:`construct` that employs a :t:`drop scope`. + +.. _fls_j12e358828h: + +drop order +^^^^^^^^^^ + +:dp:`fls_qddkiabu6swt` +:dt:`Drop order` is the order by which :t:`[value]s` are :t:`dropped` when a +:t:`drop scope` is left. + +.. _fls_foszri7hdym0: + +drop scope +^^^^^^^^^^ + +:dp:`fls_6bu8x0g9q0er` +A :dt:`drop scope` is a region of program text that governs the :t:`dropping` +of :t:`[value]s`. + +.. _fls_qp3ksd2lxm8: + +drop scope extension +^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_pmdh8kkrwkd0` +:dt:`Drop scope extension` is the process of extending a :t:`drop scope` +associated with a :t:`temporary` to prevent the premature :t:`dropping` of the +:t:`temporary`. + +.. _fls_4v6vsuw4g89l: + +drop type +^^^^^^^^^ + +:dp:`fls_ot3e31kwixil` +A :dt:`drop type` is a :t:`type` that implements the :std:`core::ops::Drop` +:t:`trait` or contains a :t:`field` that has a :t:`destructor`. + +.. _fls_68cl4paduzx2: + +dropping +^^^^^^^^ + +:dp:`fls_k4mguykh8ey` +:dt:`Dropping` a :t:`value` is the act of invoking the :t:`destructor` of the +related :t:`type`. + +.. _fls_6uovyjjzh6km: + +dynamically sized type +^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_eeyxu730z2pw` +A :dt:`dynamically sized type` is a :t:`type` that does not implement the +:std:`core::marker::Sized` :t:`trait`. + +.. _fls_2sja3okj27ne: + +elaboration +^^^^^^^^^^^ + +:dp:`fls_xoahzmwu1std` +:dt:`Elaboration` is the process by which a :t:`declaration` achieves its +runtime effects. + +.. _fls_bxm4njfo2h58: + +element type +^^^^^^^^^^^^ + +:dp:`fls_3bndijf8g9os` +An :dt:`element type` is the :t:`type` of the elements of an :t:`array type` or +a :t:`slice type`. + +:dp:`fls_pvyl887dn016` +See :s:`ElementType`. + +.. _fls_vygjg858yxej: + +elided +^^^^^^ + +:dp:`fls_lo3c3n9wy6qz` +For :dt:`elided`, see :t:`elided lifetime`. + +.. _fls_l2181y5566ck: + +elided lifetime +^^^^^^^^^^^^^^^ + +:dp:`fls_9q28407ev0a6` +An :dt:`elided lifetime` is either an :t:`unnamed lifetime` or a :t:`lifetime` +that has been explicitly omitted from a :t:`function signature` or an +:t:`implementation`. + +.. _fls_ff5zp7m9d5ot: + +else expression +^^^^^^^^^^^^^^^ + +:dp:`fls_inp7luoqkjc5` +An :dt:`else expression` is an :t:`expression` that represents either a +:t:`block expression`, an :t:`if expression`, or an :t:`if let expression`. + +:dp:`fls_2jniy6bkq1hn` +See :s:`ElseExpression`. + +.. _fls_iwed9n4jz6b8: + +empty statement +^^^^^^^^^^^^^^^ + +:dp:`fls_irw5gwuvj3nn` +An :dt:`empty statement` is a :t:`statement` expressed as character 0x3B +(semicolon). + +.. _fls_1qu1t74ga8aa: + +entity +^^^^^^ + +:dp:`fls_mdbck557k8sy` +An :dt:`entity` is a :t:`construct` that can be referred to within program +text, usually via a :t:`field access expression` or a :t:`path`. + +.. _fls_xnhj9fqlfs2p: + +enum +^^^^ + +:dp:`fls_9o0ig19xh2f5` +An :dt:`enum` is an :t:`item` that declares an :t:`enum type`. + +.. _fls_zrRydWZgm03k: + +enum field +^^^^^^^^^^ + +:dp:`fls_J8udq05QGiEj` +An :dt:`enum field` is a :t:`field` of an :t:`enum variant`. + +.. _fls_grlluqa4ucp3: + +enum type +^^^^^^^^^ + +:dp:`fls_idwrgo87ub3i` +An :dt:`enum type` is an :t:`abstract data type` that contains +:t:`[enum variant]s`. + +:dp:`fls_o6ih6n1z1566` +See :s:`EnumDeclaration`. + +.. _fls_H6aUAUjNlx6z: + +enum value +^^^^^^^^^^ + +:dp:`fls_QdBTdVLB2xHk` +An :dt:`enum value` is a :t:`value` of an :t:`enum type`. + +.. _fls_klwlx5jixwud: + +enum variant +^^^^^^^^^^^^ + +:dp:`fls_9jq4keg9y94u` +An :dt:`enum variant` is a :t:`construct` that declares one of the +possible variations of an :t:`enum`. + +:dp:`fls_tj2s55onen6b` +See :s:`EnumVariant`. + +.. _fls_mKxBWCojhnWu: + +enum variant value +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_VQRqNPFFWmDp` +An :dt:`enum variant value` is the :t:`enum value` of the corresponding +:t:`enum` of the :t:`enum variant`. + +.. _fls_alifv570nx7q: + +equals expression +^^^^^^^^^^^^^^^^^ + +:dp:`fls_mn1g2hijtd6f` +An :dt:`equals expression` is a :t:`comparison expression` that tests equality. + +:dp:`fls_j32l4do0xw4d` +See :s:`EqualsExpression`. + +.. _fls_kz7tgpi8xkt4: + +error propagation expression +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_5kebgodxtqqt` +An :dt:`error propagation expression` is an :t:`expression` that either +evaluates to a :t:`value` of its :t:`operand` or returns a value to the next +control flow boundary. + +:dp:`fls_agyqvyda3rcj` +See :s:`ErrorPropagationExpression`. + +.. _fls_9hw559b548m0: + +escaped character +^^^^^^^^^^^^^^^^^ + +:dp:`fls_7yvnbakmo7y5` +An :dt:`escaped character` is the textual representation for a character with +special meaning. An escaped character consists of character 0x5C (reverse +solidus), followed by the single character encoding of the special meaning +character. For example, ``\t`` is the escaped character for 0x09 (horizontal +tabulation). + +.. _fls_pefe9ng1mm81: + +evaluated +^^^^^^^^^ + +:dp:`fls_769tm6hn9g5e` +See :t:`evaluation`. + +.. _fls_p3gre0895k2u: + +evaluation +^^^^^^^^^^ + +:dp:`fls_8zmtio6razl1` +:dt:`Evaluation` is the process by which an :t:`expression` achieves its +runtime effects. + +.. _fls_nw0eg7gwayrg: + +executed +^^^^^^^^ + +:dp:`fls_kelmsc68lyf7` +See :t:`execution`. + +.. _fls_q0ur239s8uv: + +execution +^^^^^^^^^ + +:dp:`fls_e5jbii84hd5g` +:dt:`Execution` is the process by which a :t:`statement` achieves its runtime +effects. + +.. _fls_B1qkkSvc69J4: + +explicit register argument +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_2o6S1WGDrMh3` +An :dt:`explicit register argument` is a :t:`register argument` that uses an +:t:`explicit register name`. + +.. _fls_uc7PnSbVVd9X: + +explicit register name +^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_UcMk6RRLrkB5` +An :dt:`explicit register name` is a target-specific string that identifies +a :t:`register`. + +:dp:`fls_Z3WDh75VpSUU` +See :s:`ExplicitRegisterName`. + +.. _fls_lqxcnZqvwcsH: + +explicitly declared entity +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_shpNJ0JCSCwa` +An :dt:`explicitly declared entity` is an :t:`entity` that has a +:t:`declaration`. + +.. _fls_5oQllRM7Wjsg: + +exported function +^^^^^^^^^^^^^^^^^ + +:dp:`fls_QotMF1iaEYod` +An :dt:`exported function` is an export of a :t:`function`. + +.. _fls_zkq5ZkJwsyoD: + +exported static +^^^^^^^^^^^^^^^^^ + +:dp:`fls_aolCSvb349ZU` +An :dt:`exported static` is an export of a :t:`static`. + +.. _fls_q8ofwncggngd: + +expression +^^^^^^^^^^ + +:dp:`fls_f7iuwgbs1lql` +An :dt:`expression` is a :t:`construct` that produces a :t:`value`, and may +have side effects at run-time. + +:dp:`fls_8l9hru1x586q` +See :s:`Expression`. + +.. _fls_a1rorkjt3vpc: + +expression statement +^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_ds0pspiqk4am` +An :dt:`expression statement` is an :t:`expression` whose result is ignored. + +:dp:`fls_41jt1h3audzv` +See :s:`ExpressionStatement`. + +.. _fls_u6huewic8650: + +expression-with-block +^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_ujlm50le5dnj` +An :dt:`expression-with-block` is an :t:`expression` whose structure involves a +:t:`block expression`. + +:dp:`fls_iwheys965ml3` +See :s:`ExpressionWithBlock`. + +.. _fls_378e2xhxzk26: + +expression-without-block +^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_xfh9xmsphzqb` +An :dt:`expression-without-block` is an :t:`expression` whose structure does +not involve a :t:`block expression`. + +:dp:`fls_miaphjnikd51` +See :s:`ExpressionWithoutBlock`. + +.. _fls_9k6jcsljghab: + +external block +^^^^^^^^^^^^^^ + +:dp:`fls_z2ebcp7kjpuy` +An :dt:`external block` is a :t:`construct` that provides the declarations of +foreign :t:`[function]s` as unchecked imports. + +:dp:`fls_dm2wz1th2haz` +See :s:`ExternalBlock`. + +.. _fls_8ffbgzkbsf9r: + +external function +^^^^^^^^^^^^^^^^^ + +:dp:`fls_ngz5fqwrf86e` +An :dt:`external function` is an unchecked import of a foreign :t:`function`. + +.. _fls_ug2kags0o6is: + +external function item type +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_dwlovqly44dj` +An :dt:`external function item type` is a :t:`function item type` where the +related :t:`function` is an :t:`external function`. + +.. _fls_c89migfc2m6e: + +external static +^^^^^^^^^^^^^^^ + +:dp:`fls_bqq6cncstzeg` +An :dt:`external static` is an import of a foreign :t:`variable`. + +.. _fls_4w6garmjhrd9: + +f32 +^^^ + +:dp:`fls_4w5rqj7zdemu` +:dc:`f32` is a :t:`floating-point type` equivalent to the IEEE 754-2008 +binary32 :t:`type`. + +.. _fls_pj450h99yo28: + +f64 +^^^ + +:dp:`fls_ly6p0i6lsibh` +:dc:`f64` is a :t:`floating-point type` equivalent to the IEEE 754-2008 +binary64 :t:`type`. + +.. _fls_nkf9z4pqg8x1: + +fat pointer +^^^^^^^^^^^ + +:dp:`fls_knbc2jv5c5ds` +A :dt:`fat pointer` is a :t:`value` of a :t:`fat pointer type`. + +.. _fls_trvkbidlsss8: + +fat pointer type +^^^^^^^^^^^^^^^^ + +:dp:`fls_l8ew6udd79hh` +A :dt:`fat pointer type` is an :t:`indirection type` that refers to a +:t:`dynamically sized type`. + +.. _fls_qi21fdknzez6: + +FFI +^^^ + +:dp:`fls_z363fu89mj1c` +For :dt:`FFI`, see :t:`Foreign Function Interface`. + +.. _fls_7gCAbHnGEIl6: + +field +^^^^^ + +:dp:`fls_uAkrgfFTK2YV` +A :dt:`field` is an element of an :t:`abstract data type`. + +.. _fls_yipl7ajrbs6y: + +field access expression +^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_gdl348a04d15` +A :dt:`field access expression` is an :t:`expression` that accesses a +:t:`field` of a :t:`value`. + +:dp:`fls_luetyuwu54d6` +See :s:`FieldAccessExpression`. + +.. _fls_6uwwat9j4x7y: + +field index +^^^^^^^^^^^ + +:dp:`fls_6061r871qgbj` +A :dt:`field index` is the position of a :t:`field` within a +:t:`tuple struct type` or :t:`tuple enum variant`. The first :t:`field` has a +:t:`field index` of zero, the Nth :t:`field` has a :t:`field index` of N-1. + +:dp:`fls_IDYKXUIL845x` +See :s:`FieldIndex`. + +.. _fls_8qLL14WfXXNN: + +field list +^^^^^^^^^^ + +:dp:`fls_xMZsrxMc9Cni` +A :dt:`field list` is a :s:`RecordStructFieldList` or :s:`TupleStructFieldList`. + +.. _fls_BlZwxp6H62sS: + +field resolution +^^^^^^^^^^^^^^^^ + +:dp:`fls_nL8UuclgxfGL` +:dt:`Field resolution` is a form of :t:`resolution` that applies to a +:t:`field access expression`. + +.. _fls_kqbata8slp1y: + +field selector +^^^^^^^^^^^^^^ + +:dp:`fls_aq1yg9cp1uof` +A :dt:`field selector` is a :t:`construct` that selects the :t:`field` to be +accessed in a :t:`field access expression`. + +:dp:`fls_x8swot8e1j32` +See :s:`FieldSelector`. + +.. _fls_mj9mmkar8c6f: + +final match arm +^^^^^^^^^^^^^^^ + +:dp:`fls_btoz8jioisx9` +A :dt:`final match arm` is the last :t:`match arm` of a :t:`match expression`. + +:dp:`fls_v7ockjwbeel1` +See :s:`FinalMatchArm`. + +.. _fls_rljxa45tleq3: + +fixed sized type +^^^^^^^^^^^^^^^^ + +:dp:`fls_eadiywl20jo4` +A :dt:`fixed sized type` is a :t:`type` that implements the +:std:`core::marker::Sized` :t:`trait`. + +.. _fls_achdyw3nbme3: + +float literal +^^^^^^^^^^^^^ + +:dp:`fls_53o8dio9vpjh` +A :dt:`float literal` is a :t:`numeric literal` that denotes a fractional +number. + +:dp:`fls_hqeaakhsqxok` +See :s:`FloatLiteral`. + +.. _fls_wgylj1n4wrqe: + +float suffix +^^^^^^^^^^^^ + +:dp:`fls_vka2z7frq9j8` +A :dt:`float suffix` is a component of a :t:`float literal` that specifies an +explicit :t:`floating-point type`. + +:dp:`fls_2k1ddqhsgxqk` +See :s:`FloatSuffix`. + +.. _fls_k32g8cd9friu: + +floating-point type +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_1w5yjiffah1u` +A :dt:`floating-point type` is a :t:`numeric type` whose :t:`[value]s` denote +fractional numbers. + +.. _fls_8ih3gh6hoy78: + +floating-point type variable +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_ls41emhkrxdi` +A :dt:`floating-point type variable` is a :t:`type variable` that can refer +only to :t:`[floating-point type]s`. + +.. _fls_nE6SWuVH7X68: + +floating-point value +^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_rx8cvWPlvel5` +A :dt:`floating-point value` is a :t:`value` of a :t:`floating-point type`. + +.. _fls_dwnvkq8n94h1: + +for loop +^^^^^^^^ + +:dp:`fls_gmhh56arsbw8` +For :dt:`for loop`, see :t:`for loop expression`. + +.. _fls_vfkqbovqbw86: + +for loop expression +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_f0gp7qxoc4o4` +A :dt:`for loop expression` is a :t:`loop expression` that continues to +evaluate its :t:`loop body` as long as its :t:`subject expression` yields a +:t:`value`. + +:dp:`fls_yn4d35pvmn87` +See :s:`ForLoopExpression`. + +.. _fls_fo7vyxs4l3yh: + +Foreign Function Interface +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_240yj1kym1kh` +:dt:`Foreign Function Interface` employs :t:`ABI`, :t:`[attribute]s`, +:t:`external block`, :t:`[external function]s`, linkage, and :t:`type` +:t:`layout` to interface a Rust program with foreign code. + +.. _fls_pi7j0t7h1y86: + +fragment specifier +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_6lhwep7ulpr0` +A :dt:`fragment specifier` is a :t:`construct` that indicates the :t:`type` of +a :t:`metavariable`. + +:dp:`fls_drfn9yqrihgx` +See ``MacroFragmentSpecifier``. + +.. _fls_tWp1PLe8m83K: + +full range expression +^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_NIb9UOIRjMqa` +A :dt:`full range expression` is a :t:`range expression` that covers the full +range of a :t:`type`. + +.. _fls_yllg093syzdi: + +function +^^^^^^^^ + +:dp:`fls_ni14pcm4ap9l` +A :dt:`function` is a :t:`value` of a :t:`function type` that models a behavior. + +:dp:`fls_hn01vvw2fx9m` +See :s:`FunctionDeclaration`. + +.. _fls_vjgkg8kfi93: + +function body +^^^^^^^^^^^^^ + +:dp:`fls_y5ha4123alik` +A :dt:`function body` is the :t:`block expression` of a :t:`function`. + +:dp:`fls_r0g0i730x6x4` +See :s:`FunctionBody`. + +.. _fls_ayuia853po0a: + +function item type +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_rfvfo8x42dh8` +A :dt:`function item type` is a unique anonymous :t:`function type` that +identifies a :t:`function`. + +.. _fls_WMaE58yv1joW: + +function lifetime elision +^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_tZMmRHua1S8K` +:dt:`Function lifetime elision` is a form of :t:`lifetime elision` that applies +to :t:`[function]s`, :t:`[function pointer type parameter]s` and :t:`[path]s` +resolving to one of the :std:`core::ops::Fn`, :std:`core::ops::FnMut`, and +:std:`core::ops::FnOnce` :t:`[trait]s`. + +.. _fls_xn800gcjnln1: + +function parameter +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_2feq1ky9pla1` +A :dt:`function parameter` is a :t:`construct` that yields a set of +:t:`[binding]s` that bind matched input :t:`[value]s` to :t:`[name]s` at the +site of a :t:`call expression` or a :t:`method call expression`. + +:dp:`fls_4tf20svi3rjx` +See :s:`FunctionParameter`. + +.. _fls_fqwzlg78k503: + +function pointer type +^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_lcawg25xhblx` +A :dt:`function pointer type` is an :t:`indirection type` that refers to a +:t:`function`. + +:dp:`fls_t50umpk5abjy` +See :s:`FunctionPointerTypeSpecification`. + +.. _fls_v3V6K4S5UhIF: + +function pointer type parameter +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_nF1k90JJWq2K` +A :dt:`function pointer type parameter` is a :t:`function parameter` of a +:t:`function pointer type`. + +:dp:`fls_vvy6qogy0xnb` +See :s:`FunctionPointerTypeParameter`. + +.. _fls_2uvom1x42dcs: + +function qualifier +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_8cux22275v8r` +A :dt:`function qualifier` is a :t:`construct` that determines the role of +a :t:`function`. + +:dp:`fls_3td9tztnj2jq` +See :s:`FunctionQualifierList`. + +.. _fls_hz3zunp8lrfl: + +function signature +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_ndld48kg6o8d` +A :dt:`function signature` is a unique identification of a :t:`function` +that encompasses of its :t:`[function qualifier]s`, :t:`name`, +:t:`[generic parameter]s`, :t:`[function parameter]s`, :t:`return type`, and +:t:`where clause`. + +.. _fls_yo2x1llt9ejy: + +function type +^^^^^^^^^^^^^ + +:dp:`fls_4e19116glgtv` +A :dt:`function type` is either a :t:`closure type` or a +:t:`function item type`. + +.. _fls_gzybxk1gosm6: + +function-like macro +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_psnab9cuq4bu` +A :dt:`function-like macro` is a :t:`procedural macro` that consumes a stream +of :t:`[token]s` and produces a stream of tokens, and is invoked directly. + +.. _fls_OFMoUA3eFtuC: + +fundamental +^^^^^^^^^^^ + +:dp:`fls_e0dRD4NTE0UP` +A :t:`trait` or :t:`type` is :dt:`fundamental` when its +:t:`implementation coherence` rules are relaxed and the :t:`trait` or :t:`type` +is always treated as if it was a :t:`local trait` or a :t:`local type`. + +.. _fls_yxzpexco8ag3: + +future +^^^^^^ + +:dp:`fls_pvigospl4n3g` +A :dt:`future` represents a :t:`value` of a :t:`type` that implements the +:std:`core::future::Future` :t:`trait` which may not have finished computing +yet. + +.. _fls_dvk8ccb46abk: + +future operand +^^^^^^^^^^^^^^ + +:dp:`fls_fold1inh5jev` +A :dt:`future operand` is an :t:`operand` whose :t:`future` is being awaited by +an :t:`await expression`. + +:dp:`fls_tbfpowv90u5w` +See :s:`FutureOperand`. + +.. _fls_j1cyhud0h65t: + +generic argument +^^^^^^^^^^^^^^^^ + +:dp:`fls_meimxi20p51a` +A :dt:`generic argument` supplies a static input for an +:t:`associated trait type` or a :t:`generic parameter`. + +:dp:`fls_8bvdmdgbu17l` +See :s:`GenericArgumentList`. + +.. _fls_nooYIxMnV8Ps: + +generic associated type +^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_O4wckPZPmree` +A :dt:`generic associated type` is an :t:`associated type` with +:t:`[generic parameter]s`. + +.. _fls_3uFg0NK5fYQ6: + +generic conformance +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_PfvELNsNySLT` +:dt:`Generic conformance` measures the compatibility between a set of +:t:`[generic parameter]s` and a set of :t:`[generic argument]s`. + +.. _fls_3tj3i83eoi36: + +generic enum +^^^^^^^^^^^^ + +:dp:`fls_pnu8w26uexaq` +A :dt:`generic enum` is an :t:`enum` with :t:`[generic parameter]s`. + +.. _fls_votx8gvy5utg: + +generic function +^^^^^^^^^^^^^^^^ + +:dp:`fls_rfkbc967d48h` +A :dt:`generic function` is a :t:`function` with :t:`[generic parameter]s`. + +.. _fls_1xjbrp376niw: + +generic implementation +^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_jic937ujpnar` +A :dt:`generic implementation` is an :t:`implementation` with +:t:`[generic parameter]s`. + +.. _fls_s2syghgn74e2: + +generic parameter +^^^^^^^^^^^^^^^^^ + +:dp:`fls_61e6br8jy1v2` +A :dt:`generic parameter` is a placeholder for a :t:`constant`, a +:t:`lifetime`, or a :t:`type` whose :t:`value` is supplied statically by a +:t:`generic argument`. + +:dp:`fls_jvxpoob39632` +See :s:`GenericParameterList`. + +.. _fls_CzudKdaYbfBF: + +generic parameter scope +^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_e2tICijmLkj4` +A :dt:`generic parameter scope` is a :t:`scope` for :t:`[generic parameter]s`. + +.. _fls_cgtu4v2vxvh: + +generic struct +^^^^^^^^^^^^^^ + +:dp:`fls_mcb2mlklith8` +A :dt:`generic struct` is a :t:`struct` with :t:`[generic parameter]s`. + +.. _fls_VBEBshUrAOKE: + +generic substitution +^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_Led1Nxfcd70K` +A :dt:`generic substitution` is the replacement of a :t:`generic parameter` +with a :t:`generic argument`. + +.. _fls_hppo1v3ia4wu: + +generic trait +^^^^^^^^^^^^^ + +:dp:`fls_h515f11akr91` +A :dt:`generic trait` is a :t:`trait` with :t:`[generic parameter]s`. + +.. _fls_3Ss6jDgtF1of: + +generic type +^^^^^^^^^^^^ + +:dp:`fls_Zn2pIsMZoTry` +A :dt:`generic type` is a :t:`type` with a :t:`generic parameter`. + +.. _fls_18ow0q8at1pi: + +generic type alias +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_zgxsqq4vu7e3` +A :dt:`generic type alias` is a :t:`type alias` with :t:`[generic parameter]s`. + +.. _fls_xn9mla1vm6iv: + +generic union +^^^^^^^^^^^^^ + +:dp:`fls_93rxr0yjx1e7` +A :dt:`generic union` is a :t:`union` with :t:`[generic parameter]s`. + +.. _fls_euukteybsbi: + +glob import +^^^^^^^^^^^ + +:dp:`fls_90qsib7g8e9j` +A :dt:`glob import` is a :t:`use import` that brings all :t:`[name]s` with +:t:`public visibility` prefixed by its :t:`path` prefix into :t:`scope`. + +:dp:`fls_n4plc55cij0j` +See :s:`GlobImport`. + +.. _fls_g6g8c58bilen: + +global path +^^^^^^^^^^^ + +:dp:`fls_msg8jw9momfw` +A :dt:`global path` is a :t:`path` that starts with :t:`namespace qualifier` +``::``. + +.. _fls_hy1clqvaewnp: + +global type variable +^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_pvt4nayq006s` +A :dt:`global type variable` is a :t:`type variable` that can refer to any +:t:`type`. + +.. _fls_g4n20dy3utzy: + +greater-than expression +^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_j7x5qii6rhwj` +A :dt:`greater-than expression` is a :t:`comparison expression` that tests for +a greater-than relationship. + +:dp:`fls_yni50ba3ufvs` +See :s:`GreaterThanExpression`. + +.. _fls_mxz589rq4hiy: + +greater-than-or-equals expression +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_wvspqc2otn6v` +A :dt:`greater-than-or-equals expression` is a :t:`comparison expression` that +tests for a greater-than-or-equals relationship. + +:dp:`fls_9azbvj9xux6y` +See :s:`GreaterThanOrEqualsExpression`. + +.. _fls_fquvoglio1jz: + +half-open range pattern +^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_tymjispfgp7u` +A :dt:`half-open range pattern` is a :t:`range pattern` with only a +:t:`range pattern low bound`. + +:dp:`fls_evm3nxwswk00` +See :s:`HalfOpenRangePattern`. + +.. _fls_5uiij8eqln5g: + +hexadecimal literal +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_8b6njsi8g68i` +A :dt:`hexadecimal literal` is an :t:`integer literal` in base 16. + +:dp:`fls_vssa4z5wcgaa` +See :s:`HexadecimalLiteral`. + +.. _fls_h87i5nbeuxky: + +higher-ranked trait bound +^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_lpyc4omcthv` +A :dt:`higher-ranked trait bound` is a :t:`bound` that specifies an infinite +list of :t:`[bound]s` for all possible :t:`[lifetime]s`. + +:dp:`fls_m3nrsdvxxg6j` +See :s:`ForGenericParameterList`. + +.. _fls_GuMMjhEMMLvF: + +hygiene +^^^^^^^ + +:dp:`fls_AQg0MqAQZqkz` +:dt:`Hygiene` is a property of :t:`[macro]s` and :t:`[identifier]s`` that +appear within them, which aims to eliminate the syntactic interference between +a :t:`macro` and its environment. + +.. _fls_95h0aWZ7xx6U: + +hygienic +^^^^^^^^ + +:dp:`fls_hiDddAkNH5Ms` +An :t:`identifier` is :dt:`hygienic` when it has :t:`definition site hygiene`. + +.. _fls_obiv2a6ywfhh: + +i8 +^^ + +:dp:`fls_1y9ulxnz8qba` +:dc:`i8` is a :t:`signed integer type` whose :t:`[value]s` range from - (2\ +:sup:`7`) to 2\ :sup:`7` - 1, all inclusive. + +.. _fls_rvcjp656gzlm: + +i16 +^^^ + +:dp:`fls_ci9jl55wxwdg` +:dc:`i16` is a :t:`signed integer type` whose :t:`[value]s` range from - (2\ +:sup:`15`) to 2\ :sup:`15` - 1, all inclusive. + +.. _fls_l1h9g4ntf3c: + +i32 +^^^ + +:dp:`fls_yh8wzhhso4xc` +:dc:`i32` is a :t:`signed integer type` whose :t:`[value]s` range from - (2\ +:sup:`31`) to 2\ :sup:`31` - 1, all inclusive. + +.. _fls_tid10guzn9sq: + +i64 +^^^ + +:dp:`fls_4bpatxp8yelv` +:dc:`i64` is a :t:`signed integer type` whose :t:`[value]s` range from - (2\ +:sup:`63`) to 2\ :sup:`63` - 1, all inclusive. + +.. _fls_py2whbcrndmz: + +i128 +^^^^ + +:dp:`fls_p75kpbtonb8z` +:dc:`i128` is a :t:`signed integer type` whose :t:`[value]s` range from - (2\ +:sup:`127`) to 2\ :sup:`127` - 1, all inclusive. + +.. _fls_kpsyz8yopova: + +identifier +^^^^^^^^^^ + +:dp:`fls_14zc5bcm9d8o` +An :dt:`identifier` is a :t:`lexical element` that refers to a :t:`name`. + +:dp:`fls_oddu2wzhczvq` +See :s:`Identifier`. + +.. _fls_1g9xxx8s498u: + +identifier pattern +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_f2va67gvpqe0` +An :dt:`identifier pattern` is a :t:`pattern` that binds the :t:`value` it +matches to a :t:`binding`. + +:dp:`fls_nxa1gvqgitgk` +See :s:`IdentifierPattern`. + +.. _fls_al9gtcy5b5og: + +if expression +^^^^^^^^^^^^^ + +:dp:`fls_rk0661mtdvsi` +An :dt:`if expression` is an :t:`expression` that evaluates either a +:t:`block expression` or an :t:`else expression` depending on the :t:`value` +of its :t:`subject expression`. + +:dp:`fls_gdsufx2ns8bl` +See :s:`IfExpression`. + +.. _fls_j9wb2wtqp5u8: + +if let expression +^^^^^^^^^^^^^^^^^ + +:dp:`fls_ky6ng7jy1g6z` +An :dt:`if let expression` is an :t:`expression` that evaluates either a +:t:`block expression` or an :t:`else expression` depending on whether its +:t:`pattern` can be matched against its :t:`subject let expression`. + +:dp:`fls_kczg3c6n3psu` +See :s:`IfLetExpression`. + +.. _fls_xiocbknerufq: + +immutable +^^^^^^^^^ + +:dp:`fls_sttdfynyqr5h` +A :t:`value` is :dt:`immutable` when it cannot be modified. + +.. _fls_utucrvtzjhoc: + +immutable borrow +^^^^^^^^^^^^^^^^ + +:dp:`fls_p0abqkiuk7y9` +An :dt:`immutable borrow` is an :t:`immutable reference` produced by +:t:`borrowing`. + +.. _fls_pqunxp6io1n9: + +immutable borrow expression +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_dojod5pg4r7l` +An :dt:`immutable borrow expression` is a :t:`borrow expression` that lacks +:t:`keyword` ``mut``. + +.. _fls_TXQzFM77s4uj: + +immutable place expression +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_MXBEZjzBxw5Z` +An :dt:`immutable place expression` is a :t:`place expression` whose memory +location cannot be modified. + + +.. _fls_O0924m8mSfIa: + +immutable place expression context +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_UvrQ49dSoQGc` +An :dt:`immutable place expression context` is a :t:`place expression context` +whose memory location cannot be modified. + +.. _fls_RghQKP3lsXEb: + +immutable raw pointer type +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_2GzYItDXvMhB` +An :dt:`immutable raw pointer type` is a :t:`raw pointer type` subject to +:t:`keyword` ``const``. + +.. _fls_bhx0l676dmgc: + +immutable reference +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_u9kne5zfmhoe` +An :dt:`immutable reference` is a :t:`value` of a :t:`shared reference type`, +and prevents the mutation of its :t:`referent`. + +.. _fls_my7jjwi0ncen: + +immutable static +^^^^^^^^^^^^^^^^ + +:dp:`fls_eonlhz79ur3d` +An :dt:`immutable static` is a :t:`static` whose :t:`value` cannot be modified. + +.. _fls_8xrhfwgep3nk: + +immutable variable +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_sdg35i92taip` +An :dt:`immutable variable` is a :t:`variable` whose :t:`value` cannot be +modified. + +.. _fls_L9XTxPSujx4v: + +impl header lifetime elision +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_PvYGu85UAyFb` +:dt:`Impl header lifetime elision` is a form of :t:`lifetime elision` that +applies to the :t:`implementing type` and :t:`implemented trait` (if any) of an +:t:`implementation`. + +.. _fls_l20o3hutbfpf: + +impl trait type +^^^^^^^^^^^^^^^ + +:dp:`fls_rdctgmnfncnd` +An :dt:`impl trait type` is a :t:`type` that implements a :t:`trait`, where the +:t:`type` is known at compile time. + +:dp:`fls_704soar15v8v` +See :s:`ImplTraitTypeSpecification`, :s:`ImplTraitTypeSpecificationOneBound`. + +.. _fls_bj1u4k3akecp: + +implementation +^^^^^^^^^^^^^^ + +:dp:`fls_pjulppit1r6` +An :dt:`implementation` is an :t:`item` that supplements an +:t:`implementing type` by extending its functionality. + +:dp:`fls_z4ij5skptoay` +See :s:`Implementation`. + +.. _fls_vofxuHcXpt6X: + +implementation body +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_1iS30Nv9myEd` +An :dt:`implementation body` is a :t:`construct` that encapsulates the +:t:`[associated item]s`, :t:`[inner attribute]s`, and +:t:`[inner doc comment]s` of an :t:`implementation`. + +:dp:`fls_u75iHi53PnNP` +See :s:`ImplementationBody`. + +.. _fls_41GLrzVxcOV6: + +implementation coherence +^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_hAmKcuYT9hHi` +A :t:`trait implementation` exhibits :dt:`implementation coherence` when it is +valid and does not overlap with another :t:`trait implementation`. + +.. _fls_SBkTVa8bzGDx: + +implementation conformance +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_Gpq4EP1SsYJR` +:dt:`Implementation conformance` measures the compatibility between a +:t:`trait implementation` and the :t:`implemented trait`. + +.. _fls_c0xxvivt8t1u: + +implemented trait +^^^^^^^^^^^^^^^^^ + +:dp:`fls_7twlizi3v8cb` +An :dt:`implemented trait` is a :t:`trait` whose functionality has been +implemented by an :t:`implementing type`. + +:dp:`fls_2brvfx5wmvkf` +See :s:`ImplementedTrait`. + +.. _fls_ow4b5iqas115: + +implementing type +^^^^^^^^^^^^^^^^^ + +:dp:`fls_vs5ia3uupdcc` +An :dt:`implementing type` is the :t:`type` that the :t:`[associated item]s` of +an :t:`implementation` are associated with. + +:dp:`fls_9ixcwh6to74g` +See :s:`ImplementingType`. + +.. _fls_wa7t6cqgjksd: + +implicit borrow +^^^^^^^^^^^^^^^ + +:dp:`fls_q2v9ejpcvtwg` +An :dt:`implicit borrow` is a :t:`borrow` that is not present syntactically in +program text. + +.. _fls_i3iB9xP8h8Ci: + +implicitly declared entity +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_VQs1jd4Nx3qR` +An :dt:`implicitly declared entity` is an :t:`entity` that lacks an explicit +:t:`declaration`. + +.. _fls_43CCrG952l5i: + +implied bound +^^^^^^^^^^^^^ + +:dp:`fls_t77d8xwG1l9Q` +An :dt:`implied bound` is a :t:`bound` that is not expressed in syntax, but is +is the byproduct of relations between :t:`[lifetime parameter]s` and +:t:`[function parameter]s`, between :t:`[lifetime parameter]s` and a +:t:`return type`, and between :t:`[lifetime parameter]s` and :t:`[field]s`. + +.. _fls_3lo8ygoyxxyf: + +in scope +^^^^^^^^ + +:dp:`fls_sy380geqvf2l` +A :t:`name` is :dt:`in scope` when it can be referred to. + +.. _fls_nscfxu6huw6q: + +inclusive range pattern +^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_olfeuvwkosse` +An :dt:`inclusive range pattern` is a :t:`range pattern` with both a +:t:`range pattern low bound` and a :t:`range pattern high bound`. + +:dp:`fls_9bdxsn6nasjr` +See :s:`InclusiveRangePattern`. + +.. _fls_j44ow2k5va3s: + +incomplete associated constant +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_bq48gl84bul0` +An :dt:`incomplete associated constant` is an :t:`associated constant` without +a :t:`constant initializer`. + +.. _fls_ga2n4nbm1pkk: + +incomplete associated function +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_iboondra204w` +An :dt:`incomplete associated function` is an :t:`associated function` without +a :t:`function body`. + +.. _fls_n99acc2tr9qm: + +incomplete associated type +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_tka0gth8rc9x` +An :dt:`incomplete associated type` is an :t:`associated type` without an +:t:`initialization type`. + +.. _fls_6tysvlg2ifr3: + +index expression +^^^^^^^^^^^^^^^^ + +:dp:`fls_1f7e9q8n431n` +An :dt:`index expression` is an :t:`expression` that indexes into a :t:`value` +of a :t:`type`. + +:dp:`fls_xm2er7vuo07g` +See :s:`IndexExpression`. + +.. _fls_S0pnJKPJPU0i: + +indexable type +^^^^^^^^^^^^^^ + +:dp:`fls_AdVGyKZFvvUS` +A :dt:`indexable type` is a :t:`type` that implements the +:std:`core::ops::Index` :t:`trait`. + +.. _fls_qs654p61ivpx: + +indexed deconstructor +^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_q7eta38vw0ig` +An :dt:`indexed deconstructor` is a :t:`construct` that matches the position of +a :t:`tuple field`. + +:dp:`fls_gryv4audvann` +See :s:`IndexedDeconstructor`. + +.. _fls_bu46dg60o8us: + +indexed field selector +^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_u6mh5yediub` +An :dt:`indexed field selector` is a :t:`field selector` where the selected +:t:`field` is indicated by an index. + +:dp:`fls_wbbyf2szc8a7` +See :s:`IndexedFieldSelector`. + +.. _fls_rua2ni3p9qz2: + +indexed initializer +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_oonqolgqyrq1` +An :dt:`indexed initializer` is a :t:`construct` that specifies the index and +initial :t:`value` of a :t:`field` in a :t:`struct expression`. + +:dp:`fls_werlw98l3ra0` +See :s:`IndexedInitializer`. + +.. _fls_irp9ive4e66r: + +indexed operand +^^^^^^^^^^^^^^^ + +:dp:`fls_dvmm47wnl33e` +An :dt:`indexed operand` is an :t:`operand` which indicates the :t:`value` of a +:t:`type` implementing :std:`core::ops::Index` being indexed into by an +:t:`index expression`. + +:dp:`fls_je8eh3a02riq` +See :s:`IndexedOperand`. + +.. _fls_a350zwl1or4g: + +indexing operand +^^^^^^^^^^^^^^^^ + +:dp:`fls_ipw4tfrserbu` +An :dt:`indexing operand` is an :t:`operand` which specifies the index for the +:t:`indexed operand` being indexed into by an :t:`index expression`. + +:dp:`fls_t2j8vzlrlvb0` +See :s:`IndexingOperand`. + +.. _fls_k9kuxgte6vxn: + +indirection type +^^^^^^^^^^^^^^^^ + +:dp:`fls_8so1phpdjyk8` +An :dt:`indirection type` is a :t:`type` whose :t:`[value]s` refer to memory +locations. + +.. _fls_gccnknktzp7g: + +inert attribute +^^^^^^^^^^^^^^^ + +:dp:`fls_o4e3tyjz7l1h` +An :dt:`inert attribute` is an :t:`attribute` that remains with the :t:`item` +it decorates. + +.. _fls_z5593p7wfab: + +inferred type +^^^^^^^^^^^^^ + +:dp:`fls_9xgfexeqr4ed` +An :dt:`inferred type` is a placeholder for a :t:`type` deduced by +:t:`type inference`. + +:dp:`fls_z2p8378sd93z` +See :s:`InferredType`. + +.. _fls_kg9aeyrw822m: + +infinite loop +^^^^^^^^^^^^^ + +:dp:`fls_xpm53i3rkuu0` +For :dt:`infinite loop`, see :t:`infinite loop expression`. + +.. _fls_o2eei5aqgds6: + +infinite loop expression +^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_mvplpa4t1f2p` +An :dt:`infinite loop expression` is a :t:`loop expression` that continues to +evaluate its :t:`loop body` indefinitely. + +:dp:`fls_2gipk6b62hme` +See :s:`InfiniteLoopExpression`. + +.. _fls_o57p4yhjci61: + +inherent implementation +^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_6fpicw8ss4h3` +An :dt:`inherent implementation` is an :t:`implementation` that adds direct +functionality. + +:dp:`fls_s8zjk7hms1o0` +See :s:`InherentImplementation`. + +.. _fls_c1wbumq0bumj: + +initialization +^^^^^^^^^^^^^^ + +:dp:`fls_xi07ycze6mo0` +:dt:`Initialization` is the act of supplying an initial :t:`value` to a +:t:`constant`, a :t:`static`, or a :t:`variable`. + +.. _fls_ctusGvpQvJue: + +initialization expression +^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_KUeiSByPUc4w` +An :dt:`initialization expression` is either a :t:`constant initializer` or a +:t:`static initializer`. + +.. _fls_pd30dl2envjn: + +initialization type +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_crn87nne7k38` +An :dt:`initialization type` is the :t:`type` a :t:`type alias` defines a +:t:`name` for. + +:dp:`fls_3r85y1lh1oxo` +See :s:`InitializationType`. + +.. _fls_lbL2b9wyg6es: + +inline assembly +^^^^^^^^^^^^^^^ + +:dp:`fls_1MtaLEA7YfSv` +:dt:`Inline assembly` is hand-written assembly code that is integrated into a +Rust program. + +.. _fls_c54lmkluwbwr: + +inline module +^^^^^^^^^^^^^ + +:dp:`fls_tbldwtisl9vc` +An :dt:`inline module` is a :t:`module` with an :s:`InlineModuleSpecification`. + +:dp:`fls_8bmjz8o3xu60` +See :s:`InlineModuleSpecification`. + +.. _fls_joxepyv84ajz: + +inner attribute +^^^^^^^^^^^^^^^ + +:dp:`fls_l7kxkav42l5d` +An :dt:`inner attribute` is an :t:`attribute` that applies to an enclosing +:t:`item`. + +:dp:`fls_umkk8xwktat1` +See :s:`InnerAttribute`. + +.. _fls_chbp2je32okc: + +inner block doc +^^^^^^^^^^^^^^^ + +:dp:`fls_f4nqkybpwj1a` +An :dt:`inner block doc` is a :t:`block comment` that applies to an enclosing +:t:`non-[comment]` :t:`construct`. + +:dp:`fls_lmpaznk198ga` +See :s:`InnerBlockDoc`. + +.. _fls_vR1ucGTBKjlH: + +inner doc comment +^^^^^^^^^^^^^^^^^ + +:dp:`fls_6KunKwZf9QaF` +An :dt:`inner doc comment` is either an :t:`inner block doc` or an +:t:`inner line doc`. + +.. _fls_xgm53126q9c4: + +inner line doc +^^^^^^^^^^^^^^ + +:dp:`fls_vtwavwjhgvlz` +An :dt:`inner line doc` is a :t:`line comment` that applies to an enclosing +:t:`non-[comment]` :t:`construct`. + +:dp:`fls_8cnikewkqs7` +See :s:`InnerLineDoc`. + +.. _fls_DTb5xegDqm9S: + +input register +^^^^^^^^^^^^^^ + +:dp:`fls_dTvdQaFpncCj` +An :dt:`input register` is a :t:`register` whose :t:`register name` is used in +a :t:`register argument` subject to :t:`direction modifier` ``in``, ``inout``, +or ``inlateout``. + +.. _fls_Tmju2kXErYhJ: + +input register expression +^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_rvbuHSgg2RHt` +An :dt:`input register expression` is an :t:`expression` that provides the +initial :t:`value` of a :t:`register`. + +:dp:`fls_NqjRr9khzpl2` +See :s:`InputRegisterExpression`. + +.. _fls_y9EOkstHPckB: + +input-output register expression +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_lLQw3EFl7x5z` +An :dt:`input-output register expression` is a :t:`construct` that specifies +both an :t:`input register expression` and an :t:`output register expression`. + +:dp:`fls_FnMGXi2nPgUH` +See :s:`InputOutputRegisterExpression`. + +.. _fls_e2kizieowvuh: + +integer literal +^^^^^^^^^^^^^^^ + +:dp:`fls_23a1fjpf15qv` +An :dt:`integer literal` is a :t:`numeric literal` that denotes a whole number. + +:dp:`fls_6qpj0nr0jpjr` +See :s:`IntegerLiteral`. + +.. _fls_bhvh8qwqy8ve: + +integer suffix +^^^^^^^^^^^^^^ + +:dp:`fls_qazh8f8rs528` +An :dt:`integer suffix` is a component of an :t:`integer literal` that +specifies an explicit :t:`integer type`. + +:dp:`fls_jqagv350kw2m` +See ``IntegerSuffix.`` + +.. _fls_nu1cnk2b9qx5: + +integer type +^^^^^^^^^^^^ + +:dp:`fls_nhfqdhf26ym3` +An :dt:`integer type` is a :t:`numeric type` whose :t:`[value]s` denote whole +numbers. + +.. _fls_ctuvilpb30gq: + +integer type variable +^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_e3ed1tyrjsy4` +An :dt:`integer type variable` is a :t:`type variable` that can refer only to +:t:`[integer type]s`. + +.. _fls_mb3xnplwdw9l: + +interior mutability +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_e0173dd09znl` +:dt:`Interior mutability` is a property of :t:`[type]s` whose :t:`[value]s` can +be modified through :t:`[immutable reference]s`. + +.. _fls_7rj914fhginh: + +intermediate match arm +^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_l6pemxmdllvl` +An :dt:`intermediate match arm` is any :t:`non-[final match arm]` of a +:t:`match expression`. + +:dp:`fls_8713j5lrwqvs` +See :s:`IntermediateMatchArm`. + +.. _fls_fgmvmcw2kw5i: + +irrefutable constant +^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_hd02jah50qzl` +An :dt:`irrefutable constant` is a :t:`constant` of a :t:`type` that has at most +one :t:`value`. + + +.. _fls_ckz7pujdnuo5: + +irrefutable pattern +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_y421hdrbs6ak` +An :dt:`irrefutable pattern` is a :t:`pattern` that always matches the +:t:`value` it is being matched against. + +.. _fls_vt44bvhm4duk: + +isize +^^^^^ + +:dp:`fls_6x617i9zcj7o` +:dc:`isize` is a :t:`signed integer type` with the same number of bits as the +platform's :t:`pointer type`, and is at least 16-bits wide. + +.. _fls_yh2a7e3d3894: + +item +^^^^ + +:dp:`fls_2ghaujiqkhyy` +An :dt:`item` is the most basic semantic element in program text. An item +defines the compile- and run-time semantics of a program. + +:dp:`fls_xd997kd2i73a` +See :s:`Item`. + +.. _fls_wojJZZ4gYGfl: + +item scope +^^^^^^^^^^ + +:dp:`fls_mW7IwWGSjrl2` +An :dt:`item scope` is a :t:`scope` for :t:`[item]s`. + +.. _fls_yaurxo4ogfsh: + +item statement +^^^^^^^^^^^^^^ + +:dp:`fls_r0crucpuhtj` +An :dt:`item statement` is a :t:`statement` that is expressed as an :t:`item`. + +.. _fls_orde7iunolyx: + +iteration expression +^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_suz163n1x1xm` +An :dt:`iteration expression` is an :t:`expression` that provides the criterion +of a :t:`while loop expression`. + +:dp:`fls_jw5lj2hgjl8v` +See :s:`IterationExpression`. + +.. _fls_yjs58mp5fkxz: + +keyword +^^^^^^^ + +:dp:`fls_z3825koc9c1w` +A :dt:`keyword` is a word in program text that has special meaning. + +:dp:`fls_yvnf2mu4pr75` +See :s:`Keyword`. + +.. _fls_uVUoHmNtPRtS: + +label +^^^^^ + +:dp:`fls_iAAf2rLmgmGQ` +A :dt:`label` is the :t:`name` of a :t:`loop expression`. + +:dp:`fls_HicurdHIiLX2` +See :s:`Label`. + +.. _fls_dw5s7jhk4v8s: + +label indication +^^^^^^^^^^^^^^^^ + +:dp:`fls_sso322p7adt0` +A :dt:`label indication` is a :t:`construct` that indicates a :t:`label`. + +:dp:`fls_g6iqfqooz8th` +See :s:`LabelIndication`. + +.. _fls_P0on44EAB3cn: + +label scope +^^^^^^^^^^^ + +:dp:`fls_2H6HkQ102hVS` +A :dt:`label scope` is a :t:`scope` for :t:`[label]s`. + +.. _fls_w5gslebevlya: + +layout +^^^^^^ + +:dp:`fls_qk602dmhc0d6` +:dt:`Layout` specifies the :t:`alignment`, :t:`size`, and the relative offset +of :t:`[field]s` in a :t:`type`. + +.. _fls_bputdgkeezfs: + +lazy and expression +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_v2e6t73uk6nt` +A :dt:`lazy and expression` is a :t:`lazy boolean expression` that uses short +circuit and arithmetic. + +:dp:`fls_rkthjuvems6v` +See :s:`LazyAndExpression`. + +.. _fls_4a6yhxj783a1: + +lazy boolean expression +^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_jpv7l86sdh6i` +A :dt:`lazy boolean expression` is an :t:`expression` that performs short +circuit Boolean arithmetic. + +:dp:`fls_9tu5x810ztbg` +See :s:`LazyBooleanExpression`. + +.. _fls_9mvrfhsegwp0: + +lazy or expression +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_aln8bbvx9kzm` +A :dt:`lazy or expression` is a :t:`lazy boolean expression` that uses short +circuit or arithmetic. + +:dp:`fls_jiv7e3mr86kf` +See :s:`LazyOrExpression`. + +.. _fls_x6vo9pysmex2: + +left operand +^^^^^^^^^^^^ + +:dp:`fls_m821x5195ac9` +A :dt:`left operand` is an :t:`operand` that appears on the left-hand side of a +:t:`binary operator`. + +:dp:`fls_ghlbsklg7wdb` +See :s:`LeftOperand`. + +.. _fls_ulmspewtlo57: + +less-than expression +^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_9ttxqxt9ui4t` +A :dt:`less-than expression` is a :t:`comparison expression` that tests for a +less-than relationship. + +:dp:`fls_rhnbdyo2l4kp` +See :s:`LessThanExpression`. + +.. _fls_es169x7ars9a: + +less-than-or-equals expression +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_8pya58ug180j` +A :dt:`less-than-or-equals expression` is a :t:`comparison expression` that +tests for a less-than-or-equals relationship. + +:dp:`fls_ft5aeo4ilgwc` +See :s:`LessThanOrEqualsExpression`. + +.. _fls_hqj80jHcxEBB: + +let initializer +^^^^^^^^^^^^^^^ + +:dp:`fls_jtTpBZ4ujZRc` +A :dt:`let initializer` is a :t:`construct` that provides the :t:`value` of +the :t:`[binding]s` of the :t:`let statement` using an :t:`expression`, or +alternatively executes a :t:`block expression`. + +:dp:`fls_GmHsJb6FICfA` +See :s:`LetInitializer`. + +.. _fls_39k0ebr7snb0: + +let statement +^^^^^^^^^^^^^ + +:dp:`fls_yh7hn6jjv3ur` +A :dt:`let statement` is a :t:`statement` that introduces new :t:`[variable]s` +given by the :t:`[binding]s` produced by its :t:`pattern-without-alternation` +that are optionally initialized to a :t:`value`. + +:dp:`fls_tsem3c6zqmh4` +See :s:`LetStatement`. + +.. _fls_h2tqtmm5686y: + +lexical element +^^^^^^^^^^^^^^^ + +:dp:`fls_nrxnbkatn63n` +A :dt:`lexical element` is the most basic syntactic element in program +text. + +.. _fls_r1sk7vdgckym: + +library crate +^^^^^^^^^^^^^ + +:dp:`fls_3m8lg4mdc2x0` +A :dt:`library crate` is either a :t:`crate` without a :t:`main function` or a +:t:`crate` subject to :t:`attribute` :c:`no_main`. + +.. _fls_vdhaa61g6kah: + +lifetime +^^^^^^^^ + +:dp:`fls_il3n0w4m084b` +A :dt:`lifetime` specifies the expected longevity of a :t:`reference`. + +:dp:`fls_2nywjifee7q` +See :s:`Lifetime`. + +.. _fls_d0s6bk7ljqrb: + +lifetime argument +^^^^^^^^^^^^^^^^^ + +:dp:`fls_oaf87yjb3xjs` +A :dt:`lifetime argument` is a :t:`generic argument` that supplies the +:t:`value` of a :t:`lifetime parameter`. + +:dp:`fls_la8lbv14zj28` +See :s:`LifetimeArgument`. + +.. _fls_ca9pu348r9jm: + +lifetime bound +^^^^^^^^^^^^^^ + +:dp:`fls_u6xfs8fg558` +A :dt:`lifetime bound` is a :t:`bound` that imposes a constraint on the +:t:`[lifetime]s` of :t:`[generic parameter]s`. + +:dp:`fls_ivcjmp54hdej` +See :s:`LifetimeIndication`. + +.. _fls_fV8sP0roRyBN: + +lifetime bound predicate +^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_AHftLKgSP9Xk` +A :dt:`lifetime bound predicate` is a :t:`construct` that specifies +:t:`[lifetime bound]s` on a :t:`lifetime parameter`. + +:dp:`fls_8WIod9Rm5IXa` +See :s:`LifetimeBoundPredicate`. + +.. _fls_al39r9uz2zmy: + +lifetime elision +^^^^^^^^^^^^^^^^ + +:dp:`fls_dq5wkd61ry3l` +:dt:`Lifetime elision` is a set of rules that automatically insert +:t:`[lifetime parameter]s` and/or :t:`[lifetime argument]s` when they are +elided in the source code. + +.. _fls_md7ii59zobrc: + +lifetime parameter +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_7g0iu68nrsd4` +A :dt:`lifetime parameter` is a :t:`generic parameter` for a :t:`lifetime`. + +:dp:`fls_z1wl2uiwip98` +See :s:`LifetimeParameter`. + +.. _fls_joDjnHu1L9Lp: + +lifetime variable +^^^^^^^^^^^^^^^^^ + +:dp:`fls_ucZnCBWxXl6n` +A :dt:`lifetime variable` is a placeholder used during :t:`type inference` to +stand in for an undetermined :t:`lifetime` of a :t:`type`. + + +.. _fls_8qputmx0i7ku: + +line +^^^^ + +:dp:`fls_oqf2439j3y7b` +A :dt:`line` is a sequence of zero or more characters followed by an end of +line. + +.. _fls_k5ycqijslkxh: + +line comment +^^^^^^^^^^^^ + +:dp:`fls_3e7asah7lkqj` +A :dt:`line comment` is a :t:`comment` that spans exactly one :t:`line`. + +:dp:`fls_8j5j777dv2jm` +See :s:`LineComment`. + +.. _fls_z850pyf9r1f4: + +literal +^^^^^^^ + +:dp:`fls_ckbyt11pku9j` +A :dt:`literal` is a fixed :t:`value` in program text. + +:dp:`fls_h1g46cevrqjv` +See :s:`Literal`. + +.. _fls_b57clq8jhw5w: + +literal expression +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_otaauusc24v5` +A :dt:`literal expression` is an :t:`expression` that denotes a :t:`literal`. + +:dp:`fls_7po7zobtlhzn` +See :s:`LiteralExpression`. + +.. _fls_bo2tv8ky1jc: + +literal pattern +^^^^^^^^^^^^^^^ + +:dp:`fls_5s9b4bza13xf` +A :dt:`literal pattern` is a :t:`pattern` that matches a :t:`literal`. + +:dp:`fls_o7q7wfjulc24` +See :s:`LiteralPattern`. + +.. _fls_bYpBl5zfTibF: + +local trait +^^^^^^^^^^^ + +:dp:`fls_I9JaKZelMiby` +A :dt:`local trait` is a :t:`trait` that is defined in the current :t:`crate`. + +.. _fls_cexgUIGUUKS4: + +local type +^^^^^^^^^^ + +:dp:`fls_HvGPB3CsN4Ah` +A :dt:`local type` is a :t:`type` that is defined in the current :t:`crate`. + +.. _fls_lkxiws55xhpq: + +local variable +^^^^^^^^^^^^^^ + +:dp:`fls_3inlcyi6444u` +For :dt:`local variable`, see :t:`variable`. + +.. _fls_kdqa8zs8tk6g: + +loop +^^^^ + +:dp:`fls_omjnvxva07z2` +For :dt:`loop`, see :t:`loop expression`. + +.. _fls_5vt0Ph5BfDnU: + +loop body +^^^^^^^^^ + +:dp:`fls_fRWcWPeKgx9g` +A :dt:`loop body` is the :t:`block expression` of a :t:`loop expression`. + +:dp:`fls_vWuR2TET712r` +See :s:`LoopBody`. + +.. _fls_an1s2hnapd59: + +loop expression +^^^^^^^^^^^^^^^ + +:dp:`fls_2yypq3m1kquj` +A :dt:`loop expression` is an :t:`expression` that evaluates a +:t:`block expression` continuously as long as some criterion holds true. + +:dp:`fls_o2dyznhq7rez` +See :s:`LoopExpression`. + +.. _fls_sdkcn1exc9da: + +macro +^^^^^ + +:dp:`fls_bt16qi8g2js5` +A :dt:`macro` is a custom definition that extends Rust by defining callable +syntactic transformations. + +.. _fls_td4jm76u9m03: + +macro expansion +^^^^^^^^^^^^^^^ + +:dp:`fls_t383uo1l4h8x` +:dt:`Macro expansion` is the process of statically executing a +:t:`macro invocation` and replacing it with the produced output of the +:t:`macro invocation`. + +.. _fls_o5jy1u64nyiy: + +macro implementation function +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_xy4t1suhrn46` +A :dt:`macro implementation function` is the :t:`function` that encapsulates +the syntactic transformations of a :t:`procedural macro`. + +.. _fls_20x9eqa7xeui: + +macro invocation +^^^^^^^^^^^^^^^^ + +:dp:`fls_5qtwcp5ns5vz` +A :dt:`macro invocation` is a call of a :t:`declarative macro` or +:t:`function-like macro` that is expanded statically and replaced with the +result of the :t:`macro`. + +:dp:`fls_IgzL0OJ9Ja7y` +See :s:`MacroInvocation`. + +.. _fls_boanb1ipzc9: + +macro match +^^^^^^^^^^^ + +:dp:`fls_q0ve6nd287ta` +A :dt:`macro match` is the most basic form of a satisfied :t:`macro matcher`. + +:dp:`fls_dww6sqbj2vin` +See :s:`MacroMatch`. + +.. _fls_4h4snjd4thsv: + +macro matcher +^^^^^^^^^^^^^ + +:dp:`fls_sqncf88chnsy` +A :dt:`macro matcher` is a :t:`construct` that describes a syntactic pattern +that a :t:`macro` must match. + +:dp:`fls_ioyegc6ggd7o` +See :s:`MacroMatcher`. + +.. _fls_ao7GhE0C8MQO: + +macro matching +^^^^^^^^^^^^^^ + +:dp:`fls_RrDmFXuZrhFT` +:dt:`Macro matching` is the process of performing :t:`rule matching` and +:t:`token matching`. + +.. _fls_kddW7EirSn0g: + +macro repetition +^^^^^^^^^^^^^^^^ + +:dp:`fls_sDomcFWIeUAT` +A :dt:`macro repetition` is either a :t:`macro repetition in matching` or a +:t:`macro repetition in transcription`. + +.. _fls_a5j2hztrjfv5: + +macro repetition in matching +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_wio0e9qzstjh` +A :dt:`macro repetition in matching` allows for a syntactic pattern to be +matched zero or multiple times during :t:`macro matching`. + +:dp:`fls_potk1y850zer` +See :s:`MacroRepetitionMatch`. + +.. _fls_sqv126lwdz23: + +macro repetition in transcription +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_ex9vd3w0t4wo` +A :dt:`macro repetition in transcription` allows for a syntactic pattern to be +transcribed zero or multiple times during :t:`macro transcription`. + +:dp:`fls_5wdiqbwgr9nt` +See :s:`MacroRepetitionTranscriber`. + +.. _fls_gw31cagmzx26: + +macro rule +^^^^^^^^^^ + +:dp:`fls_7gfdqggs33id` +A :dt:`macro rule` is a :t:`construct` that consists of a :t:`macro matcher` +and a :t:`macro transcriber`. + +:dp:`fls_qv68aj43mz5m` +See :s:`MacroRule`. + +.. _fls_i4yf4lt8qvkt: + +macro statement +^^^^^^^^^^^^^^^ + +:dp:`fls_yhh9k9epv3g6` +A :dt:`macro statement` is a :t:`statement` expressed as a +:t:`terminated macro invocation`. + +.. _fls_76o6rjh6lrqd: + +macro transcriber +^^^^^^^^^^^^^^^^^ + +:dp:`fls_ug79qf3p693h` +A :dt:`macro transcriber` is a :t:`construct` that describes the replacement +syntax of a :t:`macro`. + +:dp:`fls_myubuihvjl4s` +See :s:`MacroTranscriber`. + +.. _fls_vdq3cphhpxmg: + +macro transcription +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_nouiggbpipg` +:dt:`Macro transcription` is the process of producing the expansion of a +:t:`declarative macro`. + +.. _fls_dz192n9muwpg: + +main function +^^^^^^^^^^^^^ + +:dp:`fls_au3ovrkenr59` +A :dt:`main function` is a :t:`function` that acts as an entry point into +a program. + +.. _fls_fizf1byuspv2: + +match arm +^^^^^^^^^ + +:dp:`fls_z5qsy5z2zak3` +A :dt:`match arm` is a :t:`construct` that consists of a :t:`match arm matcher` +and a :t:`match arm body`. + +.. _fls_q7lcdtxuy1ac: + +match arm body +^^^^^^^^^^^^^^ + +:dp:`fls_33e7oefx0xqm` +A :dt:`match arm body` is the :t:`operand` of a :t:`match arm`. + +.. _fls_aa1x6ajl4zid: + +match arm guard +^^^^^^^^^^^^^^^ + +:dp:`fls_uhn07jmvv9ea` +A :dt:`match arm guard` is a :t:`construct` that provides additional filtering +to a :t:`match arm matcher`. + +:dp:`fls_ykf70vbng54n` +See :s:`MatchArmGuard`. + +.. _fls_i3omadaygum2: + +match arm matcher +^^^^^^^^^^^^^^^^^ + +:dp:`fls_paz9358w4cpu` +A :dt:`match arm matcher` is a :t:`construct` that consists of a :t:`pattern` +and a :t:`match arm guard`. + +:dp:`fls_j7i2bjvzz1tx` +See :s:`MatchArmMatcher`. + +.. _fls_w15uouo0sjao: + +match expression +^^^^^^^^^^^^^^^^ + +:dp:`fls_2ohrphptjny6` +A :dt:`match expression` is an :t:`expression` that tries to match one of +its multiple :t:`[pattern]s` against its :t:`subject expression` and if it +succeeds, evaluates an :t:`operand`. + +:dp:`fls_wkalvzkmp95y` +See :s:`MatchExpression`. + +.. _fls_xo9uyazcfuq3: + +metavariable +^^^^^^^^^^^^ + +:dp:`fls_fu1esz5i9mt` +A :dt:`metavariable` is a :t:`macro match` that describes a :t:`variable`. + +:dp:`fls_k4xaw93z8x33` +See :s:`MacroMetavariable`. + +.. _fls_5P2594jy7uDE: + +metavariable indication +^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_r1FxbWffC9Wt` +A :dt:`metavariable indication` is a :t:`construct` that indicates a +:t:`metavariable`. + +:dp:`fls_bcMO2a0e0gXJ` +See :s:`MacroMetavariableIndication`. + +.. _fls_bi3g8xkk9ekf: + +method +^^^^^^ + +:dp:`fls_n4opbiofu9q6` +A :dt:`method` is an :t:`associated function` with a :t:`self parameter`. + +.. _fls_l4wel2551cw9: + +method call expression +^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_367sod24edts` +A :dt:`method call expression` is an :t:`expression` that invokes a :t:`method` +of a :t:`variable`. + +:dp:`fls_ohhcvxcaqv11` +See :s:`MethodCallExpression`. + +.. _fls_l6eJxvmplLqQ: + +method operand +^^^^^^^^^^^^^^ + +:dp:`fls_VLLAFjAxCfkE` +A :dt:`method operand` is an :t:`operand` that denotes the :t:`method` being +invoked by a :t:`method call expression`. + +:dp:`fls_Pkgr4fJQZpJ6` +See :s:`MethodOperand`. + +.. _fls_05yFh5Ud0YkW: + +method resolution +^^^^^^^^^^^^^^^^^ + +:dp:`fls_LbW4z6OTuD1l` +:dt:`Method resolution` is a kind of :t:`resolution` that applies to a +:t:`method call expression`. + +.. _fls_2FFRdj5cO0ks: + +mixed site hygiene +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_hjJpNmKiZxlT` +:dt:`Mixed site hygiene` is a type of :t:`hygiene` which resolves to the +:s:`MacroRulesDeclaration` site for :t:`[variable]s`, :t:`[label]s`, and the +``$crate`` :t:`metavariable`, and to the :s:`MacroInvocation` site otherwise, +and is considered :t:`partially hygienic`. + +.. _fls_5hoe1v960xfi: + +modifying operand +^^^^^^^^^^^^^^^^^ + +:dp:`fls_9wt2l5gg06pb` +A :dt:`modifying operand` is an :t:`operand` that supplies the :t:`value` that +is used in the calculation of a :t:`compound assignment expression`. + +:dp:`fls_qnwbrwdnv7n0` +See :s:`ModifyingOperand`. + +.. _fls_kbxk78vm564e: + +module +^^^^^^ + +:dp:`fls_ujlsg58bskl5` +A :dt:`module` is a container for zero or more :t:`[item]s`. + +:dp:`fls_os60q6vvm71c` +See :s:`ModuleDeclaration`. + +.. _fls_gnucgrytswa4: + +move type +^^^^^^^^^ + +:dp:`fls_ri37ez31gai8` +A :dt:`move type` is a :t:`type` that implements the :std:`core::marker::Sized` +:t:`trait` and that is not a :t:`copy type`. + +.. _fls_iw2vYgmLhlsg: + +multi segment path +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_T4Xd6W6EqPSb` +A :dt:`multi segment path` is a :t:`path` consisting of more than one +:t:`path segment`. + +.. _fls_lpSCLhnaxeCg: + +multiplication assignment +^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_llUb5VHKjwW4` +For :dt:`multiplication assignment`, see +:t:`multiplication assignment expression`. + +.. _fls_yo4k6lk0tizn: + +multiplication assignment expression +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_eo9gx05n5ru3` +A :dt:`multiplication assignment expression` is a +:t:`compound assignment expression` that uses multiplication. + +:dp:`fls_b0dc5lec1mdc` +See :s:`MultiplicationAssignmentExpression`. + +.. _fls_bgtznqqgtmd8: + +multiplication expression +^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_324qh8wz474b` +A :dt:`multiplication expression` is an :t:`arithmetic expression` that uses +multiplication. + +:dp:`fls_34bkl5i75q5` +See :s:`MultiplicationExpression`. + +.. _fls_yM11Bcxn4p7c: + +mutability +^^^^^^^^^^ + +:dp:`fls_lBrXj9lo4s6o` +:dt:`Mutability` determines whether a :t:`construct` can modify a :t:`value`. + +.. _fls_wvejcadmzt5p: + +mutable +^^^^^^^ + +:dp:`fls_dqm58deu1orn` +A :t:`value` is :dt:`mutable` when it can be modified. + +.. _fls_TEVPHHiCMByO: + +mutable assignee expression +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_0RSlFbwrB3gp` +A :dt:`mutable assignee expression` is an :t:`assignee expression` whose +:t:`value` can be modified. + +.. _fls_ntaA0NtJ9z5h: + +mutable binding +^^^^^^^^^^^^^^^ + +:dp:`fls_v2pGKVaQjtcl` +A :dt:`mutable binding` is a :t:`binding` whose :t:`value` can be modified. + +.. _fls_iku91jwdtdr1: + +mutable borrow +^^^^^^^^^^^^^^ + +:dp:`fls_5knwbyz4fd9z` +A :dt:`mutable borrow` is a :t:`mutable reference` produced by :t:`borrowing`. + +.. _fls_kw3oiotr98tt: + +mutable borrow expression +^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_80kcc4y21hu6` +A :dt:`mutable borrow expression` is a :t:`borrow expression` that has +:t:`keyword` ``mut``. + +.. _fls_7eyza445ew53: + +mutable place expression +^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_kq877s3vij70` +A :dt:`mutable place expression` is a :t:`place expression` whose memory +location can be modified. + +.. _fls_x5BKVLc4KDlK: + +mutable place expression context +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_2ixH8LWGHi3k` +A :dt:`mutable place expression context` is a :t:`place expression context` +that may evaluate its :t:`operand` as a mutable memory location. + +.. _fls_wOvlW47jKEWF: + +mutable raw pointer type +^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_86SFxSDRcC06` +A :dt:`mutable raw pointer type` is a :t:`raw pointer type` subject to +:t:`keyword` ``mut``. + +.. _fls_jtzj092hyjkz: + +mutable reference +^^^^^^^^^^^^^^^^^ + +:dp:`fls_wujjrhm1d338` +A :dt:`mutable reference` is a :t:`value` of a :t:`mutable reference type`, and +allows the mutation of its :t:`referent`. + +.. _fls_8iq0wcczl465: + +mutable reference type +^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_q06p9tclwaaw` +A :dt:`mutable reference type` is a :t:`reference type` subject to :t:`keyword` +``mut``. + +.. _fls_omgyj7yxwgua: + +mutable static +^^^^^^^^^^^^^^ + +:dp:`fls_3ss4bokujaby` +A :dt:`mutable static` is a :t:`static` whose :t:`value` can be modified. + +.. _fls_n7h4xr40xwgb: + +mutable variable +^^^^^^^^^^^^^^^^ + +:dp:`fls_kjjv9jvdpf2o` +A :dt:`mutable variable` is a :t:`variable` whose :t:`value` can be modified. + +.. _fls_kad7fzn94x4d: + +name +^^^^ + +:dp:`fls_jjpzrs38vs3y` +A :dt:`name` is an :t:`identifier` that refers to an :t:`entity`. + +:dp:`fls_yrzevg5kd4bi` +See :s:`Name`. + +.. _fls_CxzbzLu4pWPY: + +named block expression +^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_ivFb8uAMVY3Q` +A :dt:`named block expression` is a :t:`block expression` with a :t:`label`. + +.. _fls_dgs9y3nan69v: + +named deconstructor +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_g3k1hy3j4qn9` +A :dt:`named deconstructor` is a :t:`construct` that matches the :t:`name` of +a :t:`field`. + +:dp:`fls_ujreg07979g8` +See :s:`NamedDeconstructor`. + +.. _fls_cvxdoycoytc5: + +named field selector +^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_cczpgxqdyh1e` +A :dt:`named field selector` is a :t:`field selector` where the selected +:t:`field` is indicated by an :t:`identifier`. + +:dp:`fls_hpw0n89ez5nw` +See :s:`NamedFieldSelector`. + +.. _fls_kp0mbopkbjer: + +named initializer +^^^^^^^^^^^^^^^^^ + +:dp:`fls_xwvz8i4jim7a` +A :dt:`named initializer` is a :t:`construct` that specifies the name and +initial :t:`value` of a :t:`field` in a :t:`struct expression`. + +:dp:`fls_aueznbw3lohl` +See :s:`NamedInitializer`. + +.. _fls_biwn3hxza37n: + +named loop expression +^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_440dr5qix3ns` +A :dt:`named loop expression` is a :t:`loop expression` with a :t:`label`. + +.. _fls_WT1ZdxTZwUUE: + +named register argument +^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_QBWHppNO8FPk` +A :dt:`named register argument` is a :t:`register argument` whose configuration +is bound to an :t:`identifier`. + +.. _fls_GesmsWSVhv3f: + +namespace +^^^^^^^^^ + +:dp:`fls_er8lcvnEqxa5` +A :dt:`namespace` is a logical grouping of :t:`[name]s` such that the +occurrence of a :t:`name` in one :t:`namespace` does not conflict with an +occurrence of the same :t:`name` in another :t:`namespace`. + +.. _fls_z3lxbjF4gaqV: + +NaN-boxing +^^^^^^^^^^ + +:dp:`fls_s956sJGwOa6z` +:dt:`NaN-boxing` is a technique for encoding :t:`[value]s` using the low order +bits of the mantissa of a 64-bit IEEE floating-point ``NaN``. + +.. _fls_3sp4twvfvb32: + +negation expression +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_pmn6cjamdt0a` +A :dt:`negation expression` is an :t:`expression` that negates its :t:`operand`. + +:dp:`fls_o1f35ud4klvv` +See :s:`NegationExpression`. + +.. _fls_6rlvd0u4w6h2: + +nesting import +^^^^^^^^^^^^^^ + +:dp:`fls_nhkqkdqo32xs` +A :dt:`nesting import` is a :t:`use import` that provides a common :t:`path` +prefix for its nested :t:`[use import]s`. + +:dp:`fls_z4d611glen13` +See :s:`NestingImport`. + +.. _fls_cwcbtnzbqmq2: + +never type +^^^^^^^^^^ + +:dp:`fls_m9v5j6detob4` +The :dt:`never type` is a :t:`type` that represents the result of a computation +that never completes. + +:dp:`fls_k5z1vjxepnfj` +See :s:`NeverType`. + +.. _fls_3vhflvajgqzd: + +non-reference pattern +^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_tejled5izyue` +A :dt:`non-reference pattern` is any :t:`pattern` except +:t:`non-[binding pattern]s`, :t:`[path pattern]s`, :t:`[reference pattern]s`, +and :t:`[underscore pattern]s`. + +.. _fls_5u8ihVDp4mdb: + +not configuration predicate +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_BVMlBterkFYq` +A :dt:`not configuration predicate` is a :t:`configuration predicate` that +negates the Boolean :t:`value` of its nested :t:`configuration predicate`. + +:dp:`fls_9j9AaNcv0VNA` +See :s:`ConfigurationPredicateNot`. + +.. _fls_shgatqvpdqkg: + +not-equals expression +^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_2hmynl94uusk` +A :dt:`not-equals expression` is a :t:`comparison expression` that tests for +inequality. + +:dp:`fls_5d6vvr9m35n2` +See :s:`NotEqualsExpression`. + +.. _fls_gqw1bzwexxt0: + +null +^^^^ + +:dp:`fls_8sh17t37b2ml` +A :dc:`null` :t:`value` denotes a tool-defined address. + +.. _fls_a0qsojiymgjy: + +numeric literal +^^^^^^^^^^^^^^^ + +:dp:`fls_978ndaqdv4r` +A :dt:`numeric literal` is a :t:`literal` that denotes a number. + +:dp:`fls_swue4tma9fmf` +See ``NumericLiteral.`` + +.. _fls_rayjriyofmpa: + +numeric type +^^^^^^^^^^^^ + +:dp:`fls_cpdsj94l57af` +A :dt:`numeric type` is a :t:`type` whose :t:`[value]s` denote numbers. + +.. _fls_a226qzrb4iq9: + +object safe +^^^^^^^^^^^ + +:dp:`fls_oa2jiklr5nl2` +A :t:`trait` is :dt:`object safe` when it can be used as a +:t:`trait object type`. + +.. _fls_vomlqv7i1fc4: + +object safety +^^^^^^^^^^^^^ + +:dp:`fls_vqmng1l9ab8a` +:dt:`Object safety` is the process of determining whether a :t:`trait` can be +used as a :t:`trait object type`. + +.. _fls_bo889w63y7oi: + +obsolete range pattern +^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_ave42vwb45zb` +An :dt:`obsolete range pattern` is a :t:`range pattern` that uses obsolete +syntax to express an :t:`inclusive range pattern`. + +:dp:`fls_ta0wa8ta9ol4` +See :s:`ObsoleteRangePattern`. + +.. _fls_q47u2zq6clon: + +octal literal +^^^^^^^^^^^^^ + +:dp:`fls_pf4341vnqiin` +An :dt:`octal literal` is an :t:`integer literal` in base 8. + +:dp:`fls_8u0n6xu0mizm` +See ``OctalLiteral.`` + +.. _fls_pv4lok5qcn8y: + +operand +^^^^^^^ + +:dp:`fls_3mnn1au9ob6q` +An :dt:`operand` is an :t:`expression` nested within an expression. + +:dp:`fls_8299xfhdsd1` +See :s:`Operand`. + +.. _fls_smk8mi72lt57: + +operator expression +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_6ev01xwcfow1` +An :dt:`operator expression` is an :t:`expression` that involves an operator. + +:dp:`fls_qdszbyeuo7w1` +See :s:`OperatorExpression`. + +.. _fls_C5DiCsvsaBsj: + +opt-out trait bound +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_wS4EzN0N1GDP` +An :dt:`opt-out trait bound` is a :t:`trait bound` with :s:`Punctuation` ``?`` +that nullifies an implicitly added :t:`trait bound`. + +.. _fls_gllzixm9yt9w: + +outer attribute +^^^^^^^^^^^^^^^ + +:dp:`fls_gffxnbilsqly` +An :dt:`outer attribute` is an :t:`attribute` that applies to a subsequent +:t:`item`. + +:dp:`fls_ty6ihy6x3kf` +See :s:`OuterAttribute`. + +.. _fls_toncretg92qh: + +outer block doc +^^^^^^^^^^^^^^^ + +:dp:`fls_531ggn1f8f6u` +An :dt:`outer block doc` is a :t:`block comment` that applies to a subsequent +:t:`non-[comment]` :t:`construct`. + +:dp:`fls_ddy9a66tpytp` +See :s:`OuterBlockDoc`. + +.. _fls_PuTD100sWO5N: + +outer doc comment +^^^^^^^^^^^^^^^^^ + +:dp:`fls_mgSEUNUPcPBs` +An :dt:`outer doc comment` is either an :t:`outer block doc` or an +:t:`outer line doc`. + +.. _fls_eqjbv8sovvfl: + +outer line doc +^^^^^^^^^^^^^^ + +:dp:`fls_m3u30fu8uac3` +An :dt:`outer line doc` is a :t:`line comment` that applies to a subsequent +:t:`non-[comment]` :t:`construct`. + +:dp:`fls_1ppwidw7szk5` +See :s:`OuterLineDoc`. + +.. _fls_de935b1pzd28: + +outline module +^^^^^^^^^^^^^^ + +:dp:`fls_xhe5gmr0r9zn` +An :dt:`outline module` is a :t:`module` with an +:s:`OutlineModuleSpecification`. + +:dp:`fls_wu5wqylzx9ke` +See :s:`OutlineModuleSpecification`. + +.. _fls_5LhIr1kOIEO5: + +outlives bound +^^^^^^^^^^^^^^ + +:dp:`fls_J5dt34II7Pm6` +An :dt:`outlives bound` is a :t:`trait bound` which requires that a +:t:`generic parameter` outlives a :t:`lifetime parameter`. + +.. _fls_XsGnaA47Nen0: + +output register +^^^^^^^^^^^^^^^ + +:dp:`fls_4METI8qE9JiY` +An :dt:`output register` is a :t:`register` whose :t:`register name` is +used in a :t:`register argument` subject to :t:`direction modifier` ``out``, +``lateout``, ``inout``, or ``inlateout``. + +.. _fls_t79aKPilX8jk: + +output register expression +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_w95YRZ4JjBxl` +An :dt:`output register expression` is an :t:`expression` that is assigned the +:t:`value` of a :t:`register`. + +:dp:`fls_8B3ldFZVy7PA` +See :s:`OutputRegisterExpression`. + +.. _fls_nhamq7xtz384: + +overlap +^^^^^^^ + +:dp:`fls_itkz9y19923k` +Two :t:`[value]s` :dt:`overlap` when their memory locations overlap, or both +values are elements of the same :t:`array`. + +.. _fls_ke52l9lsvyu2: + +owner +^^^^^ + +:dp:`fls_7vwwhberexeb` +An :dt:`owner` is a :t:`variable` that holds a :t:`value`. + +.. _fls_1gmetz8qtr0l: + +ownership +^^^^^^^^^ + +:dp:`fls_tu4zt8twucsz` +:dt:`Ownership` is a property of :t:`[value]s` that is central to the resource +management model of Rust. + +.. _fls_wzpivxkhpln: + +panic +^^^^^ + +:dp:`fls_t3kpbnmohtp6` +A :dt:`panic` is an abnormal program state caused by invoking :t:`macro` +:std:`core::panic`. + +.. _fls_fl56jfxbj0f: + +parenthesized expression +^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_yu1x2rr7cewa` +A :dt:`parenthesized expression` is an :t:`expression` that groups other +expressions. + +:dp:`fls_p9exa6fpplfu` +See :s:`ParenthesizedExpression`. + +.. _fls_ww6nyinsw1lr: + +parenthesized pattern +^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_7j12dwsx9ghg` +A :dt:`parenthesized pattern` is a :t:`pattern` that controls the precedence of +its :t:`[subpattern]s`. + +:dp:`fls_rwt31e8m694i` +See :s:`ParenthesizedPattern`. + +.. _fls_gilx8zikdq9k: + +parenthesized type +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_pamypc7t7l5n` +A :dt:`parenthesized type` is a :t:`type` that disambiguates the interpretation +of :t:`[lexical element]s`. + +:dp:`fls_lovkvqoni3xs` +See :s:`ParenthesizedTypeSpecification`. + +.. _fls_fULM1oCKSakS: + +partially hygienic +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_Qh8V0Y08dNoa` +An :t:`identifier` is :dt:`partially hygienic` when it has +:t:`mixed site hygiene`. + +.. _fls_wqbd5lxki2al: + +passing convention +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_eqgsg8j9btic` +A :dt:`passing convention` is the mechanism that defines how a :t:`value` is +transferred between :t:`[place]s`. + +.. _fls_9zl72vtkgkuo: + +path +^^^^ + +:dp:`fls_u3jyud6mhy1f` +A :dt:`path` is a sequence of :t:`[path segment]s` logically separated by +:dt:`namespace qualifier` ``::`` that resolves to an :t:`entity`. + +.. _fls_1xdj34py8zc3: + +path expression +^^^^^^^^^^^^^^^ + +:dp:`fls_4ik66nmvx5hn` +A :dt:`path expression` is a :t:`path` that acts as an :t:`expression`. + +:dp:`fls_3qjpjqm0legc` +See :s:`PathExpression`. + +.. _fls_EIFtIeLGZNy5: + +path expression resolution +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_WYcEVyc3SHuK` +:dt:`Path expression resolution` is a form of :t:`path resolution` that applies +to a :t:`path expression`. + +.. _fls_ptikwcw3b20l: + +path pattern +^^^^^^^^^^^^ + +:dp:`fls_vacvk3t26ctg` +A :dt:`path pattern` is a :t:`pattern` that matches a :t:`constant`, a +:t:`unit enum variant`, or a :t:`unit struct constant` indicated by a +:t:`path`. + +:dp:`fls_9fudbxoyq8k4` +See :s:`PathPattern`. + +.. _fls_J8kiBhcawvnj: + +path resolution +^^^^^^^^^^^^^^^ + +:dp:`fls_uy9Ai9vwTkjB` +:dt:`Path resolution` is a form of :t:`resolution` that applies to a :t:`path`. + +.. _fls_xb54s9cs7h08: + +path segment +^^^^^^^^^^^^ + +:dp:`fls_gsumebjc2bsp` +A :dt:`path segment` is a constituent of a :t:`path`. + +:dp:`fls_m067uq7fo66i` +See :s:`PathSegment`, :s:`SimplePathSegment`, :s:`TypePathSegment`. + +.. _fls_uj1o721im5lb: + +pattern +^^^^^^^ + +:dp:`fls_9wwt9k1xlm6n` +A :dt:`pattern` is a :t:`construct` that matches a :t:`value` which satisfies +all the criteria of the pattern. + +:dp:`fls_9va04w9jgdyp` +See :s:`Pattern`. + +.. _fls_48mv0zecb0un: + +pattern matching +^^^^^^^^^^^^^^^^ + +:dp:`fls_y3oputy9e0sz` +:dt:`Pattern matching` is the process of matching a :t:`pattern` against a +:t:`value`. + +.. _fls_cptagvgpgnze: + +pattern-without-alternation +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_brussjs3wo6r` +A :dt:`pattern-without-alternation` is a :t:`pattern` that cannot be alternated. + +:dp:`fls_fmysn3eezr54` +See :s:`PatternWithoutAlternation`. + +.. _fls_yeQOZKPoNzw3: + +pattern-without-range +^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_LSEOvAwUM7g6` +A :dt:`pattern-without-range` is a :t:`pattern-without-alternation` that +excludes :t:`[range pattern]s`. + +:dp:`fls_Rj8ir4k0K811` +See :s:`PatternWithoutRange`. + +.. _fls_5zjHBZMsCqJZ: + +place +^^^^^ + +:dp:`fls_uCTiUBWHMPY9` +A :dt:`place` is a location where a :t:`value` resides. + +.. _fls_7x6jhh0sz2f: + +place expression +^^^^^^^^^^^^^^^^ + +:dp:`fls_z6mgu2mk142r` +A :dt:`place expression` is an :t:`expression` that represents a memory +location. + +.. _fls_tshbqttxdox1: + +place expression context +^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_fqcx8suiy5k` +A :dt:`place expression context` is a :t:`construct` that may evaluate its +operand as a memory location. + +.. _fls_dr6wbsqjd2qm: + +plane +^^^^^ + +:dp:`fls_x1wbguoqdsf9` +In :t:`Unicode`, a :dt:`plane` is a continuous group of 65,536 +:t:`[code point]s`. + +.. _fls_HnJEHyUiTpb1: + +pointer +^^^^^^^ + +:dp:`fls_DRjhMWo9mjoF` +A :dt:`pointer` is a :t:`value` of a :t:`pointer type`. + +.. _fls_o5o1ssqqD7Jg: + +pointer type +^^^^^^^^^^^^ + +:dp:`fls_F2dUxEa4nheL` +A :dt:`pointer type` is a :t:`type` whose values indicate memory locations. + +.. _fls_Q0r8JkqAP6Of: + +positional register argument +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_GJd6i52P3KM3` +A :dt:`positional register argument` is a :t:`register argument` whose +configuration is not bound to an :t:`identifier`. + +.. _fls_ukvdoqo68y5b: + +precedence +^^^^^^^^^^ + +:dp:`fls_sz93844rqc4r` +:dt:`Precedence` is the order by which :t:`[expression]s` are evaluated in the +presence of other expressions. + +.. _fls_8Gn72FJBarfb: + +prelude +^^^^^^^ + +:dp:`fls_D0PJioOZjKNN` +A :dt:`prelude` is a collection of :t:`entities ` that are +automatically brought :t:`in scope` of every :t:`module` in a :t:`crate`. + +.. _fls_AWySDxPgypiw: + +prelude entity +^^^^^^^^^^^^^^ + +:dp:`fls_2lU7RUjzFlsz` +A :dt:`prelude entity` is an :t:`entity` declared in a :t:`prelude`. + +.. _fls_FYn5JqPOhiIs: + +prelude name +^^^^^^^^^^^^ + +:dp:`fls_6Jk7fUAK122A` +A :dt:`prelude name` is a :t:`name` of a :t:`prelude entity`. + +.. _fls_fikexts17v7a: + +primitive representation +^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_bydly1rt63pf` +:dt:`Primitive representation` is the :t:`type representation` of +:t:`[integer type]s`. + +.. _fls_v1u1mevpj0kj: + +private visibility +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_duop22hyaweq` +:dt:`Private visibility` is a kind of :t:`visibility` that allows a :t:`name` +to be referred to only by the current :t:`module` of the :t:`entity`, and its +descendant :t:`[module]s`. + +.. _fls_kCA6SW8bUq5x: + +proc-macro crate +^^^^^^^^^^^^^^^^ + +.. _fls_AjjdLZWiL9Tq: + +:dp:`fls_DfTszT1PjV7o` +A :dt:`proc-macro crate` is a :t:`crate` that contains :t:`[procedural macro]s`. + +.. _fls_sp5wdsxwmxf: + +procedural macro +^^^^^^^^^^^^^^^^ + +:dp:`fls_u4utpx4zgund` +A :dt:`procedural macro` is a :t:`macro` that encapsulates syntactic +transformations in a :t:`function`. + +.. _fls_v2rjlovqsdyr: + +public visibility +^^^^^^^^^^^^^^^^^ + +:dp:`fls_6cfxqtl921ko` +:dt:`Public visibility` is a kind of :t:`visibility` that allows a :t:`name` +to be referred to from arbitrary :t:`module` ``M`` as long as the ancestor +:t:`[module]s` of the related :t:`entity` can be referred to from ``M``. + +.. _fls_hdwmw3jbwefi: + +punctuator +^^^^^^^^^^ + +:dp:`fls_gwqgi0b7jxmu` +A :dt:`punctuator` is a character or a sequence of characters in category +:s:`Punctuation`. + +.. _fls_sgwvmnoio1ql: + +pure identifier +^^^^^^^^^^^^^^^ + +:dp:`fls_6pez8fyiew0k` +A :dt:`pure identifier` is an :t:`identifier` that does not include +:t:`[weak keyword]s`. + +.. _fls_O6CFtnpN3UEE: + +qualified path expression +^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_wKAS6FxqGmTf` +A :dt:`qualified path expression` is a :t:`path expression` that resolves +through a :t:`qualified type`. + +:dp:`fls_MXxJn64eJpC5` +See :s:`QualifiedPathExpression`. + +.. _fls_Qv0UvhSfwBuM: + +qualified type +^^^^^^^^^^^^^^ + +:dp:`fls_e7YyZXOFo6ei` +A :dt:`qualified type` is a :t:`type` that is restricted to a set of +:t:`[implementation]s` that exhibit :t:`implementation conformance` to a +:t:`qualifying trait`. + +:dp:`fls_a4heXjzO3jem` +See :s:`QualifiedType`. + +.. _fls_koVlQq8aPdPv: + +qualified type path +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_S0QT9ib38i8E` +A :dt:`qualified type path` is a :t:`type path` that resolves through a +:t:`qualified type`. + +:dp:`fls_RR8fFLD7Rxlt` +See :s:`QualifiedTypePath`. + +.. _fls_B0m82A8jIerQ: + +qualifying trait +^^^^^^^^^^^^^^^^ + +:dp:`fls_zKY1dWBMrqXZ` +A :dt:`qualifying trait` is a :t:`trait` that imposes a restriction on a +:t:`qualified type`. + +:dp:`fls_z6OeUWBnec90` +See :s:`QualifyingTrait`. + +.. _fls_tbvugpuvcluj: + +range expression +^^^^^^^^^^^^^^^^ + +:dp:`fls_bffrbucfwu7` +A :dt:`range expression` is an :t:`expression` that constructs a range. + +:dp:`fls_1jk43yvxa8ks` +See :s:`RangeExpression`. + +.. _fls_mdvdxr6u13fw: + +range expression high bound +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_c70pj8w15nmc` +A :dt:`range expression high bound` is an :t:`operand` that specifies the end +of a range. + +:dp:`fls_yxem0ckicxav` +See :s:`RangeExpressionHighBound`. + +.. _fls_smvgd160eynr: + +range expression low bound +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_t10o1p950u00` +A :dt:`range expression low bound` is an :t:`operand` that specifies the start +of a range. + +:dp:`fls_vmb2z7oh6gzm` +See :s:`RangeExpressionLowBound`. + +.. _fls_6pxg401r6juc: + +range pattern +^^^^^^^^^^^^^ + +:dp:`fls_vf42zdyq23lc` +A :dt:`range pattern` is a :t:`pattern` that matches :t:`[value]s` which fall +within a range. + +:dp:`fls_r36uf3y2denr` +See ``RangePattern.`` + +.. _fls_3ls9xlgt8ei1: + +range pattern bound +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_l9xq96bjs4o2` +A :dt:`range pattern bound` is a constraint on the range of a +:t:`range pattern`. + +:dp:`fls_80736cs3axo4` +See :s:`RangePatternBound`. + +.. _fls_y4rv5cbowvwg: + +range pattern high bound +^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_arp7y7yme7yp` +A :dt:`range pattern high bound` is a :t:`range pattern bound` that specifies +the end of a range. + +:dp:`fls_dnwqcswftw71` +See :s:`RangePatternHighBound`. + +.. _fls_laev4lmmv0cw: + +range pattern low bound +^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_rt7q0msh3op4` +A :dt:`range pattern low bound` is a :t:`range pattern bound` that specifies +the start of a range. + +:dp:`fls_j695o93wsu3i` +See :s:`RangePatternLowBound`. + +.. _fls_iqpxlg7w3cvf: + +range-from expression +^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_6enyv2oa4abq` +A :dt:`range-from expression` is a :t:`range expression` that specifies an +included :t:`range expression low bound`. + +:dp:`fls_e1smn0b478ik` +See :s:`RangeFromExpression`. + +.. _fls_125h4p4zt86q: + +range-from-to expression +^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_nzf6y64jz83f` +A :dt:`range-from-to expression` is a :t:`range expression` that specifies an +included :t:`range expression low bound` and an excluded +:t:`range expression high bound`. + +:dp:`fls_mjbxfjulryt` +See :s:`RangeFromToExpression`. + +.. _fls_8z8nrblarxrv: + +range-full expression +^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_6mchm7kb7i41` +A :dt:`range-full expression` is a :t:`range expression` that covers the whole +range of a :t:`type`. + +:dp:`fls_u7kd8w5g2icd` +See :s:`RangeFullExpression`. + +.. _fls_tie80ejz8s19: + +range-inclusive expression +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_9vja0wev84a7` +A :dt:`range-inclusive expression` is a :t:`range expression` that specifies an +included :t:`range expression low bound` and an included +:t:`range expression high bound`. + +:dp:`fls_lpcsb8dtldk3` +See :s:`RangeInclusiveExpression`. + +.. _fls_etvgkb8zcfpd: + +range-to expression +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_urnfp1j9d5v4` +A :dt:`range-to expression` is a :t:`range expression` that specifies an +excluded :t:`range expression high bound`. + +:dp:`fls_lft9cd7h8cfv` +See :s:`RangeToExpression`. + +.. _fls_ap5754dfltt5: + +range-to-inclusive expression +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_t4fjanjvkd69` +A :dt:`range-to-inclusive expression` is a :t:`range expression` that specifies +an included :t:`range expression high bound`. + +:dp:`fls_krei7lc6lo8q` +See :s:`RangeToInclusiveExpression`. + +.. _fls_ipeh92kh17ze: + +raw byte string literal +^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_8v5k3wemy4tl` +A :dt:`raw byte string literal` is a :t:`simple byte string literal` that does +not recognize :t:`[escaped character]s`. + +:dp:`fls_5x71i3ay3na2` +See ``RawByteStringLiteral.`` + +.. _fls_uv4dyt4gi32x: + +raw pointer +^^^^^^^^^^^ + +:dp:`fls_rbdilcmt2cns` +A :dt:`raw pointer` is a pointer of a :t:`raw pointer type`. + +.. _fls_9los8hwh60z0: + +raw pointer type +^^^^^^^^^^^^^^^^ + +:dp:`fls_wspawcoqxfbh` +A :dt:`raw pointer type` is an :t:`indirection type` without safety and +liveness guarantees. + +:dp:`fls_ctksliaxhzo9` +See :s:`RawPointerTypeSpecification`. + +.. _fls_echjohx6fjc: + +raw string literal +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_48t4v316951j` +A :dt:`raw string literal` is a :t:`simple string literal` that does not +recognize :t:`[escaped character]s`. + +:dp:`fls_26ol7lrnux94` +See :s:`RawStringLiteral`. + +.. _fls_sAe1HaaVSPvP: + +reachable control flow path +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_IxrvzuBg8j3E` +A :dt:`reachable control flow path` is a control flow path that can be +taken by the execution of a program between two given points in the program. + +.. _fls_nfb3ciarl50w: + +receiver operand +^^^^^^^^^^^^^^^^ + +:dp:`fls_odbg4bizvqxq` +A :dt:`receiver operand` is an :t:`operand` that denotes the :t:`value` whose +:t:`method` is being invoked by a :t:`method call expression`. + +:dp:`fls_4rme1x6romeg` +See :s:`ReceiverOperand`. + +.. _fls_Kpkm0J40xq5J: + +receiver type +^^^^^^^^^^^^^ + +:dp:`fls_vgQmMlpFas5t` +A :dt:`receiver type` is the :t:`type` of a :t:`receiver operand`. + +.. _fls_nG6ikjLsCW7m: + +record enum variant +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_NWyvPQmOIjo2` +A :dt:`record enum variant` is an :t:`enum variant` with a +:s:`RecordStructFieldList`. + +.. _fls_jdd6h8pdp30x: + +record struct +^^^^^^^^^^^^^ + +:dp:`fls_qyd7kqnpjs2` +A :dt:`record struct` is a :t:`struct` with a :s:`RecordStructFieldList`. + +:dp:`fls_rqs5rdnhkwnx` +See :s:`RecordStructDeclaration`. + +.. _fls_hzkwzbk5wp54: + +record struct field +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_lb0t10evec6z` +A :dt:`record struct field` is a :t:`field` of a :t:`record struct type`. + +:dp:`fls_bjwmhxf3ae14` +See :s:`RecordStructField`. + +.. _fls_at2caaqlpva1: + +record struct pattern +^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_q7njznxhmmw` +A :dt:`record struct pattern` is a :t:`pattern` that matches a +:t:`enum variant value`, a :t:`struct value`, or a :t:`union value`. + +:dp:`fls_viwieu1p3hds` +See :s:`RecordStructPattern`. + +.. _fls_uthd12hz3h4v: + +record struct type +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_mgrz3o51gbis` +A :dt:`record struct type` is the :t:`type` of a :t:`record struct`. + +.. _fls_cPs5C1chWmce: + +record struct value +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_SMBIc0JMck1H` +A :dt:`record struct value` is a :t:`value` of a :t:`record struct type`. + +.. _fls_94fkxohlnq9i: + +recursive type +^^^^^^^^^^^^^^ + +:dp:`fls_2t8qom6dhcjb` +A :dt:`recursive type` is a :t:`type` that may define other types within its +:t:`type specification`. + +.. _fls_onv3cs5tckgo: + +reference +^^^^^^^^^ + +:dp:`fls_s82y4hsuytiq` +A :dt:`reference` is a :t:`value` of a :t:`reference type`. + +.. _fls_1XGsXRZIFnqL: + +reference identifier pattern +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_jQs6oJ4RFBPN` +A :dt:`reference identifier pattern` is an :t:`identifier pattern` with +:t:`keyword` ``ref``. + +.. _fls_kiy6b1wbn0a3: + +reference pattern +^^^^^^^^^^^^^^^^^ + +:dp:`fls_ebshqnhmwgow` +A :dt:`reference pattern` is a :t:`pattern` that dereferences a :t:`pointer` +that is being matched. + +:dp:`fls_rghv5drrqxs1` +See :s:`ReferencePattern`. + +.. _fls_uw32xmrfgzcd: + +reference type +^^^^^^^^^^^^^^ + +:dp:`fls_l3knopsdlyf2` +A :dt:`reference type` is an :t:`indirection type` with :t:`ownership`. + +:dp:`fls_jzjatdpxqt9u` +See :s:`ReferenceTypeSpecification`. + +.. _fls_h8x0u32wfz8v: + +referent +^^^^^^^^ + +:dp:`fls_78ipj8avpwzl` +A :dt:`referent` is the :t:`value` pointed-to by a :t:`reference`. + +.. _fls_bkwy183h9ygt: + +refutability +^^^^^^^^^^^^ + +:dp:`fls_gzjrfx19fg40` +:dt:`Refutability` is a property of :t:`[pattern]s` that expresses the ability +to match all possible :t:`[value]s` of a :t:`type`. + +.. _fls_v99joc4m6cup: + +refutable constant +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_mc6hsomq08uu` +A :dt:`refutable constant` is a :t:`constant` of a :t:`refutable type`. + +.. _fls_srdcx5oi4dcp: + +refutable pattern +^^^^^^^^^^^^^^^^^ + +:dp:`fls_re7qz78koman` +A :dt:`refutable pattern` is a :t:`pattern` that has a possibility of not +matching the :t:`value` it is being matched against. + +.. _fls_dkq1h6p9yaar: + +refutable type +^^^^^^^^^^^^^^ + +:dp:`fls_l2yz6jeehm52` +A :dt:`refutable type` is a :t:`type` that has more than one :t:`value`. + +.. _fls_T84qaJMZzMbb: + +register +^^^^^^^^ + +:dp:`fls_fVdSybu8DW8w` +A :dt:`register` is a hardware component capable of holding data that can be +read and written. + +.. _fls_ISWWmgKjfYwt: + +register argument +^^^^^^^^^^^^^^^^^ + +:dp:`fls_rNoFdCKbVmRC` +A :dt:`register argument` is a :t:`construct` that configures the input +and output of a :t:`register`, and optionally binds the configuration to an +:t:`identifier`. + +:dp:`fls_aof7O9XREo2S` +See :s:`RegisterArgument`. + +.. _fls_2qKUiHcfmZQ6: + +register class +^^^^^^^^^^^^^^ + +:dp:`fls_2H0OYS733VJl` +A :dt:`register class` represents a set of :t:`[register]s`. + +.. _fls_8gC17CgCS9n1: + +register class argument +^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_ksLXAyPLx9IL` +A :dt:`register class argument` is a :t:`register argument` that uses a +:t:`register class name`. + +.. _fls_xZTkANlRsKRt: + +register class name +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_QsSFoL0UyRRB` +A :dt:`register class name` is a target-specific string that identifies a +:t:`register class`. + +:dp:`fls_Y1ZpiFAV2c1A` +See :s:`RegisterClassName`. + +.. _fls_7KIReJZLKdeK: + +register expression +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_2cVy6XfOQ4QG` +A :dt:`register expression` is either an :t:`input-output register expression` +or a :t:`simple register expression`. + +:dp:`fls_YEzo09cqWUUy` +See :s:`RegisterExpression`. + +.. _fls_kbBK666iBS2X: + +register name +^^^^^^^^^^^^^ + +:dp:`fls_U5r8Ypnjah5E` +A :dt:`register name` is either the :t:`explicit register name` of a +:t:`register`, or the :t:`register class name` of the :t:`register class` a +:t:`register` belongs to. + +:dp:`fls_WeyiFrnGgWPn` +See :s:`RegisterName`. + +.. _fls_foh6xELWBsY9: + +register parameter +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_JicHMIj5dlxJ` +A :dt:`register parameter` is a substring delimited by characters 0x7B (left +curly bracket) and 0x7D (right curly bracket) that is substituted with a +:t:`register argument` in an :t:`assembly instruction`. + +.. _fls_NDpKXnlmnN7M: + +register parameter modifier +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_8BdOnxHZS0Qi` +A :dt:`register parameter modifier` is a substring that starts with character +0x3A (colon), follows a :t:`register parameter`, and changes the formatting of +the related :t:`register parameter`. + +.. _fls_JnhUWipah0nO: + +remainder assignment +^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_58eDC2XtQcaR` +For :dt:`remainder assignment`, see :t:`remainder assignment expression`. + +.. _fls_mio7pagghcks: + +remainder assignment expression +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_en7ytqvefw7j` +A :dt:`remainder assignment expression` is a +:t:`compound assignment expression` that uses remainder division. + +:dp:`fls_rkk80quk8uzc` +See :s:`RemainderAssignmentExpression`. + +.. _fls_f15h4919ln3k: + +remainder expression +^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_l6muwnclm1do` +A :dt:`remainder expression` is an :t:`arithmetic expression` that uses +remainder division. + +:dp:`fls_h98qlby2uiru` +See :s:`RemainderExpression`. + +.. _fls_8ibsdx4dx6s7: + +renaming +^^^^^^^^ + +:dp:`fls_cp8u9kq44o8a` +A :dt:`renaming` provides an alternative :t:`name` for an existing name. + +:dp:`fls_8inznqig2ibr` +See :s:`Renaming`. + +.. _fls_b35oy3nnzixm: + +repeat operand +^^^^^^^^^^^^^^ + +:dp:`fls_ol2y1og2jwss` +A :dt:`repeat operand` is an :t:`operand` that specifies the element being +repeated in an :t:`array repetition constructor`. + +:dp:`fls_r4acyux78txu` +See :s:`RepeatOperand`. + +.. _fls_r2yjjhrvr9qi: + +repetition operator +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_67907pk7uogl` +A :dt:`repetition operator` is a :t:`construct` that indicates the number +of times a :t:`macro repetition in matching` or a +:t:`macro repetition in transcription` can be repeated. + +:dp:`fls_hiasmmpr2jks` +See :s:`MacroRepetitionOperator`. + +.. _fls_o34kkn5pi0sh: + +representation +^^^^^^^^^^^^^^ + +:dp:`fls_69j7pq2o1iu` +See :t:`type representation`. + +.. _fls_TSbBt6WzropN: + +representation modifier +^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_BCvXL7HkXqdZ` +A :dt:`representation modifier` is a :t:`construct` that modifies the +:t:`alignment` of a :t:`type`. + +:dp:`fls_TAVyjj66UBUo` +See :s:`Alignment`. + +.. _fls_x7yd6o4akrrg: + +reserved keyword +^^^^^^^^^^^^^^^^ + +:dp:`fls_b67hj7fdbq4s` +A :dt:`reserved keyword` is a :t:`keyword` that is not yet in use. + +:dp:`fls_hp9iqdrkt0cg` +See :s:`ReservedKeyword`. + +.. _fls_O5iuGATZgyBu: + +resolution +^^^^^^^^^^ + +:dp:`fls_PQjEvLs5cE4y` +:dt:`Resolution` is the process of finding a unique interpretation for a +:t:`field access expression`, a :t:`method call expression`, or a :t:`path`. + +.. _fls_uuo1qvrz1i0k: + +rest pattern +^^^^^^^^^^^^ + +:dp:`fls_xngp3h1znw9o` +A :dt:`rest pattern` is a :t:`pattern` that matches zero or more elements that +have not already been matched. + +:dp:`fls_rnmhg04u0oga` +See :s:`RestPattern`. + +.. _fls_7tl9qo8yj8xh: + +return expression +^^^^^^^^^^^^^^^^^ + +:dp:`fls_vnupfc6s0s7b` +A :dt:`return expression` is an :t:`expression` that optionally yields a +:t:`value` and causes control flow to return to the caller. + +:dp:`fls_phd8zrsyuzu7` +See :s:`ReturnExpression`. + +.. _fls_b8dbm1bs65kw: + +return type +^^^^^^^^^^^ + +:dp:`fls_cwucgbmmhnnm` +A :dt:`return type` is the :t:`type` of the result a :t:`function` returns. + +:dp:`fls_utuprsem6n58` +See :s:`ReturnType`. + +.. _fls_76o7m8vny72n: + +right operand +^^^^^^^^^^^^^ + +:dp:`fls_e1j9s4odze9b` +A :dt:`right operand` is an :t:`operand` that appears on the right-hand side of +a :t:`binary operator`. + +:dp:`fls_hq7x1t5dmdlp` +See :s:`RightOperand`. + +.. _fls_9u67noriaxfe: + +rule matching +^^^^^^^^^^^^^ + +:dp:`fls_dux9js5oixjd` +:dt:`Rule matching` is the process of consuming a :s:`TokenTree` in an attempt +to fully satisfy the :t:`macro matcher` of a :t:`macro rule` that belongs to a +resolved :t:`declarative macro`. + +.. _fls_fki32ns69q4j: + +rustc +^^^^^ + +:dp:`fls_zdgbeixirjfm` +Rust-c (or :dt:`rustc`) is a compiler that implements the Ferrocene Language +Specification. + +.. _fls_Q4MRIo7cWv5K: + +safety invariant +^^^^^^^^^^^^^^^^ + +:dp:`fls_wRZfAmTmMGTX` +A :dt:`safety invariant` is an invariant that when violated may result in +:t:`undefined behavior`. + +.. _fls_XeMNghZZOBqL: + +scalar type +^^^^^^^^^^^ + +:dp:`fls_GgBqFW2NywoA` +A :dt:`scalar type` is either a :c:`bool` :t:`type`, a :c:`char` :t:`type`, or +a :t:`numeric type`. + +.. _fls_fj8mdxi967px: + +scope +^^^^^ + +:dp:`fls_fachaj550cq1` +A :dt:`scope` is a region of program text where a :t:`name` can be referred to. + +.. _fls_xZUiNkBN5e00: + +scope hierarchy +^^^^^^^^^^^^^^^ + +:dp:`fls_Spcc3L9X939d` +The :dt:`scope hierarchy` reflects the nesting of :t:`[scope]s` as introduced +by :t:`[scoping construct]s`. + +.. _fls_rfk06mm3pdxg: + +selected field +^^^^^^^^^^^^^^ + +:dp:`fls_8otlvwlqrd4e` +A :dt:`selected field` is a :t:`field` that is selected by a +:t:`field access expression`. + +.. _fls_9o2hcy6t7dac: + +Self +^^^^ + +:dp:`fls_q6whqbfusswf` +:dc:`Self` is either an implicit :t:`type parameter` in :t:`[trait]s` or an +implicit :t:`type alias` in :t:`[implementation]s`. :c:`Self` refers to the +:t:`type` that implements a :t:`trait`. + +.. _fls_6wjlbzmlx9n4: + +self parameter +^^^^^^^^^^^^^^ + +:dp:`fls_ksne48eip15` +A :dt:`self parameter` is a :t:`function parameter` expressed by :t:`keyword` +``self``. + +.. _fls_jq213cesxhyp: + +self public modifier +^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_ln3bzqgctfym` +A :dt:`self public modifier` is a :t:`visibility modifier` that grants a +:t:`name` :t:`private visibility`. + +:dp:`fls_21cvbfjpckkt` +See :s:`SelfPublicModifier`. + +.. _fls_exMZlNMxQvP7: + +Self scope +^^^^^^^^^^ + +:dp:`fls_pSvqWGRmFmH0` +A :dt:`Self scope` is a :t:`scope` for :c:`Self`. + +.. _fls_8spw41g0dbqw: + +send type +^^^^^^^^^ + +:dp:`fls_qfkng98dw6yy` +A :dt:`send type` is a :t:`type` that implements the :std:`core::marker::Send` +:t:`trait`. + +.. _fls_at8q1svh3isg: + +separator +^^^^^^^^^ + +:dp:`fls_128xny4qfcj5` +A :dt:`separator` is a character or a string that separates adjacent +:t:`[lexical element]s`. + +.. _fls_rtgis2k7by2r: + +sequence type +^^^^^^^^^^^^^ + +:dp:`fls_lk1oslxh8h9p` +A :dt:`sequence type` represents a sequence of elements. + +.. _fls_HUklMSWzx8Mg: + +shadowing +^^^^^^^^^ + +:dp:`fls_li3NXOPEH9cL` +:dt:`Shadowing` is a property of :t:`[name]s`. A :t:`name` is said to be +:dt:`shadowed` when another :t:`name` with the same characters is introduced +in the same :t:`scope` within the same :t:`namespace`, effectively hiding it. + +.. _fls_c9xwhhg639u5: + +shared borrow +^^^^^^^^^^^^^ + +:dp:`fls_gmbskxin90zi` +A :dt:`shared borrow` is a :t:`borrow` produced by evaluating an +:t:`immutable borrow expression`. + +.. _fls_18xazs7sp4: + +shared reference +^^^^^^^^^^^^^^^^ + +:dp:`fls_cspa4c5mscnw` +A :dt:`shared reference` is a :t:`value` of a :t:`shared reference type`. + +.. _fls_antrblstppyf: + +shared reference type +^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_8z9wb3eu5yp1` +A :dt:`shared reference type` is a :t:`reference type` not subject to +:t:`keyword` ``mut``. + +.. _fls_o8EVuKgr0Y98: + +shift left assignment +^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_6adWrtvab6Tw` +For :dt:`shift left assignment`, see :t:`shift left assignment expression`. + +.. _fls_29n0oe4d7lwa: + +shift left assignment expression +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_j15ke2p8cjfp` +A :dt:`shift left assignment expression` is a +:t:`compound assignment expression` that uses bit shift left arithmetic. + +:dp:`fls_ozu74fsakomn` +See :s:`ShiftLeftAssignmentExpression`. + +.. _fls_sru4wi5jomoe: + +shift left expression +^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_phiv6k4emauc` +A :dt:`shift left expression` is a :t:`bit expression` that uses bit shift left +arithmetic. + +:dp:`fls_56lu9kenzig9` +See :s:`ShiftLeftExpression`. + +.. _fls_V5LMAe8ijiMQ: + +shift right assignment +^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_XuwcHjwHdyA8` +For :dt:`shift right assignment`, see :t:`shift right assignment expression`. + +.. _fls_cqfzbsasnd1t: + +shift right assignment expression +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_1jpnp7hatlmu` +A :dt:`shift right assignment expression` is a +:t:`compound assignment expression` that uses bit shift right arithmetic. + +:dp:`fls_naqzlebew1uf` +See :s:`ShiftRightAssignmentExpression`. + +.. _fls_dj6epbraptqn: + +shift right expression +^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_j6itily0u0k9` +A :dt:`shift right expression` is a :t:`bit expression` that uses bit shift +right arithmetic. + +:dp:`fls_ex1mopil8w1p` +See :s:`ShiftRightExpression`. + +.. _fls_5sxhx0w3d63z: + +shorthand deconstructor +^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_22yxrde244w8` +A :dt:`shorthand deconstructor` is a :t:`construct` that matches the :t:`name` +of a :t:`field` and binds the :t:`value` of the matched :t:`field` to a +:t:`binding`. + +:dp:`fls_rlo4237bgbwt` +See :s:`ShorthandDeconstructor`. + +.. _fls_oa4p10yles30: + +shorthand initializer +^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_bgxxg48snck1` +A :dt:`shorthand initializer` is a :t:`construct` that specifies the :t:`name` +of a :t:`field` in a :t:`struct expression`. + +:dp:`fls_qc08ydgmqudi` +See :s:`ShorthandInitializer`. + +.. _fls_nmw95nc951iu: + +signed integer type +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_vcronf7l2bhy` +A :dt:`signed integer type` is an :t:`integer type` whose :t:`[value]s` denote +negative whole numbers, zero, and positive whole numbers. + +.. _fls_4GvXiDfcPlRD: + +simple byte string literal +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_XpbU4Up0Aza8` +A :dt:`simple byte string literal` is a :t:`byte string literal` that consists +of multiple :s:`[AsciiCharacter]s`. + +:dp:`fls_OfI70zK68TnQ` +See :s:`SimpleByteStringLiteral`. + +.. _fls_6mcm7xdcyn40: + +simple import +^^^^^^^^^^^^^ + +:dp:`fls_jrlzpoauui9g` +A :dt:`simple import` is a :t:`use import` that binds a :t:`simple path` to a +local :t:`name` by using an optional :t:`renaming`. + +:dp:`fls_ta5t4h25unsw` +See :s:`SimpleImport`. + +.. _fls_o5kv9lrtz4fq: + +simple path +^^^^^^^^^^^ + +:dp:`fls_db91duoug4eb` +A :dt:`simple path` is a :t:`path` whose :t:`[path segment]s` consist of either +:t:`[identifier]s` or certain :t:`[keyword]s`. + +:dp:`fls_cm7ysyfrdwom` +See :s:`SimplePath`. + +.. _fls_23G6TAntJXqa: + +simple path prefix +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_ijc2yHQuIltY` +A :dt:`simple path prefix` is the leading :t:`simple path` of a +:t:`glob import` or a :t:`nesting import`. + +:dp:`fls_ImHceyHhK6OZ` +See :s:`SimplePathPrefix`. + +.. _fls_sgy9q06yt6cl: + +simple path public modifier +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_mby9r0jm6uyv` +A :dt:`simple path public modifier` is a :t:`visibility modifier` that grants a +:t:`name` :t:`public visibility` within the provided :t:`simple path` only. + +:dp:`fls_mud4hw74kuh6` +See :s:`SimplePathPublicModifier`. + +.. _fls_gT5rZ4qC3pHo: + +simple path resolution +^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_CQlepoN6PmKq` +:dt:`Simple path resolution` is a kind of :t:`path resolution` that applies to +a :t:`simple path`. + +.. _fls_k5uqt5oj7wvl: + +simple public modifier +^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_ce1ounn1g68` +A :dt:`simple public modifier` is a :t:`visibility modifier` that grants a +:t:`name` :t:`public visibility`. + +:dp:`fls_rd68vm2f2qy5` +See :s:`SelfPublicModifier`. + +.. _fls_JDB3eBO0DY4o: + +simple register expression +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_4Yp4R7gXucL2` +A :dt:`simple register expression` is either an :t:`expression` or an +:t:`underscore expression`. + +:dp:`fls_kKaqHDxPTTUC` +See :s:`SimpleRegisterExpression`. + +.. _fls_dpod2gc7a0u: + +simple string literal +^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_p6qyyptz8w8w` +A :dt:`simple string literal` is a :t:`string literal` where the characters are +:t:`Unicode` characters. + +:dp:`fls_osj0c4dmr6e0` +See :s:`SimpleStringLiteral`. + +.. _fls_JS91BDzd03Qj: + +single segment path +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_Hun5BCZsqd6k` +A :dt:`single segment path` is a :t:`path` consisting of exactly one +:t:`path segment`. + +.. _fls_oy5xy5pm1enx: + +size +^^^^ + +:dp:`fls_3obnilqhkjux` +The :dt:`size` of a :t:`value` is the offset in bytes between successive +elements in an :t:`array type` with the same :t:`element type`, including any +padding for :t:`alignment`. + +.. _fls_2y5oyon3y1za: + +size operand +^^^^^^^^^^^^ + +:dp:`fls_srajsqi5i3py` +A :dt:`size operand` is an :t:`operand` that specifies the size of an +:t:`array` or an :t:`array type`. + +:dp:`fls_228ioayvdguv` +See :s:`SizeOperand`. + +.. _fls_oiaoWEQQDE7I: + +sized type +^^^^^^^^^^ + +:dp:`fls_pwcgsRCNSwKn` +A :dt:`sized type` is a :t:`type` with statically known size. + +.. _fls_srkftses9sxn: + +slice +^^^^^ + +:dp:`fls_p1sv01ml2ark` +A :dt:`slice` is a :t:`value` of a :t:`slice type`. + +.. _fls_1s3a31o9zx1a: + +slice pattern +^^^^^^^^^^^^^ + +:dp:`fls_7613qu4igwiw` +A :dt:`slice pattern` is a :t:`pattern` that matches :t:`[array]s` of fixed +size and :t:`[slice]s` of dynamic size. + +:dp:`fls_3qey00280x27` +See :s:`SlicePattern`. + +.. _fls_x3kr88m5gvwv: + +slice type +^^^^^^^^^^ + +:dp:`fls_bvpszep1w90g` +A :dt:`slice type` is a :t:`sequence type` that provides a view into a sequence +of elements. + +:dp:`fls_y7gscwf29htg` +See :s:`SliceTypeSpecification`. + +.. _fls_wlwwxzpnhk6i: + +source file +^^^^^^^^^^^ + +:dp:`fls_nh737q4mn27u` +A :dt:`source file` contains the program text of :t:`[inner attribute]s`, +:t:`[inner doc comment]s`, and :t:`[item]s`. + +:dp:`fls_zgh1m5357ex1` +See :s:`SourceFile`. + +.. _fls_e7cvo0usw86i: + +statement +^^^^^^^^^ + +:dp:`fls_faijgwg4lhp9` +A :dt:`statement` is a component of a block expression. + +:dp:`fls_th7edvxml3mn` +See :s:`Statement`. + +.. _fls_tpazbmuq9hag: + +static +^^^^^^ + +:dp:`fls_srx4v1e20yxa` +A :dt:`static` is a :t:`value` that is associated with a specific memory +location. + +:dp:`fls_1b7gpk8e98pw` +See :s:`StaticDeclaration`. + +.. _fls_x331kxllyzim: + +static initializer +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_6jjbfni87tax` +A :dt:`static initializer` is a :t:`construct` that provides the :t:`value` of +its related :t:`static`. + +:dp:`fls_igbl5uv0dlhl` +See :s:`StaticInitializer`. + +.. _fls_jCqiKgW9g8n5: + +static lifetime elision +^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_NbVewjYRnQPF` +:dt:`Static lifetime elision` is a form of :t:`lifetime elision` that applies +to :t:`[constant]s` and :t:`[static]s`. + +.. _fls_1ricdj86o457: + +str +^^^ + +:dp:`fls_6977zxb0resa` +:dc:`str` is a :t:`sequence type` that represents a :t:`slice` of 8-bit +unsigned bytes. + +.. _fls_bzhaq3q378ay: + +strict keyword +^^^^^^^^^^^^^^ + +:dp:`fls_hza9spr6behn` +A :dt:`strict keyword` is a :t:`keyword` that always holds its special meaning. + +:dp:`fls_67pzayd9qzzs` +See :s:`StrictKeyword`. + +.. _fls_cck2tmyzmpja: + +string literal +^^^^^^^^^^^^^^ + +:dp:`fls_dphk5br0ag35` +A :dt:`string literal` is a :t:`literal` that consists of multiple characters. + +:dp:`fls_z0t3ae24h5h5` +See :s:`StringLiteral`. + +.. _fls_yphnf56fa58r: + +struct +^^^^^^ + +:dp:`fls_rufylj7qxs1w` +A :dt:`struct` is an :t:`item` that declares a :t:`struct type`. + +.. _fls_dxfyejkbiz3p: + +struct expression +^^^^^^^^^^^^^^^^^ + +:dp:`fls_m8n9e0sxyb95` +A :dt:`struct expression` is an :t:`expression` that constructs an +:t:`enum value`, a :t:`struct value`, or a :t:`union value`. + +:dp:`fls_odm68rhu2j1` +See :s:`StructExpression`. + +.. _fls_OT6dJ7CWkSTG: + +struct field +^^^^^^^^^^^^ + +:dp:`fls_8Z9YWMnrHXJS` +A :dt:`struct field` is a :t:`field` of a :t:`struct type`. + +.. _fls_ook43xes5t34: + +struct pattern +^^^^^^^^^^^^^^ + +:dp:`fls_xbtoiwegp8gu` +A :dt:`struct pattern` is a :t:`pattern` that matches an :t:`enum value`, a +:t:`struct value`, or a :t:`union value`. + +:dp:`fls_pn8e50ep2fln` +See :s:`StructPattern`. + +.. _fls_pzj88ust6qrq: + +struct type +^^^^^^^^^^^ + +:dp:`fls_7v4dhh3nl8h9` +A :dt:`struct type` is an :t:`abstract data type` that is a product of other +:t:`[type]s`. + +:dp:`fls_dhlww4yrnb2v` +See :s:`StructDeclaration`. + + +.. _fls_GOnQHAsYw1oi: + +struct value +^^^^^^^^^^^^ + +:dp:`fls_YmZfW9kWlbIX` +A :dt:`struct value` is a :t:`value` of a :t:`struct type`. + +.. _fls_P7920ALJisrH: + +structurally equal +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_glRZUKhmaWmP` +A :t:`type` is :dt:`structurally equal` when its :t:`[value]s` can be compared +for equality by structure. + +.. _fls_feZ3iDff05Cb: + +subexpression +^^^^^^^^^^^^^ + +:dp:`fls_bNSHwD4Kpfm0` +A :dt:`subexpression` is an :t:`expression` nested within another +:t:`expression`. + +.. _fls_wee9stfk0abp: + +subject expression +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_xisqke87ert` +A :dt:`subject expression` is an :t:`expression` that controls +:t:`[for loop]s`, :t:`[if expression]s`, and :t:`[match expression]s`. + +:dp:`fls_gph5doham4js` +See :s:`SubjectExpression`. + +.. _fls_dc5ibvnnhs7e: + +subject let expression +^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_b3ckv6zgnaeb` +A :dt:`subject let expression` is an :t:`expression` that controls +:t:`[if let expression]s` and :t:`[while let loop]s`. + +:dp:`fls_vnzaargh5yok` +See :s:`SubjectLetExpression`. + +.. _fls_k7ro8n23wtdc: + +subpattern +^^^^^^^^^^ + +:dp:`fls_942ulj9qsdes` +A :dt:`subpattern` is a :t:`pattern` nested within another :t:`pattern`. + +.. _fls_0hf1gNf90qKr: + +subtraction assignment +^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_75Eyk2YXO2j4` +For :dt:`subtraction assignment`, see :t:`subtraction assignment`. + +.. _fls_a4iu72zn4h0: + +subtraction assignment expression +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_4pb85nl4r7vs` +A :dt:`subtraction assignment expression` is a +:t:`compound assignment expression` that uses subtraction. + +:dp:`fls_mye9yj5tc8hr` +See :s:`SubtractionAssignmentExpression`. + +.. _fls_25ru96mfdcsn: + +subtraction expression +^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_caamjgpw59id` +A :dt:`subtraction expression` is an :t:`arithmetic expression` that uses +subtraction. + +:dp:`fls_mx3olnbntpye` +See :s:`SubtractionExpression`. + +.. _fls_qw3fn1116se9: + +subtrait +^^^^^^^^ + +:dp:`fls_wnj95vozis6n` +A :dt:`subtrait` is a :t:`trait` with a :t:`supertrait`. + +.. _fls_pu4zqJ1tGrfH: + +subtype +^^^^^^^ + +:dp:`fls_pmkjOWsieQog` +A :dt:`subtype` is a :t:`type` with additional constraints. + +.. _fls_f5dxz8pvs1kz: + +subtyping +^^^^^^^^^ + +:dp:`fls_bo5xzjsdd3lj` +:dt:`Subtyping` is a property of :t:`[type]s`, allowing one :t:`type` to be +used where another :t:`type` is expected. + +.. _fls_qar9v52smi9j: + +suffixed float +^^^^^^^^^^^^^^ + +:dp:`fls_7reb4jp0x1wf` +A :dt:`suffixed float` is a :t:`float literal` with a :t:`float suffix`. + +.. _fls_bmbu11ycjpor: + +suffixed integer +^^^^^^^^^^^^^^^^ + +:dp:`fls_ltzetxu3sq7k` +A :dt:`suffixed integer` is an :t:`integer literal` with an :t:`integer suffix`. + +.. _fls_12bluakt0jnj: + +super public modifier +^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_vry5mhs3a5wv` +A :dt:`super public modifier` is a :t:`visibility modifier` that grants a +:t:`name` :t:`public visibility` within the parent :t:`module` only. + +:dp:`fls_4a1s9bcrk5oy` +See :s:`SuperPublicModifier`. + +.. _fls_1axcyv628aov: + +supertrait +^^^^^^^^^^ + +:dp:`fls_s4chur1wutwh` +A :dt:`supertrait` is a transitive :t:`trait` that a :t:`type` must +additionally implement. + +.. _fls_r4eoz3ohvpdi: + +sync type +^^^^^^^^^ + +:dp:`fls_rpc0c8qx3nbo` +A :dt:`sync type` is a :t:`type` that implements the :std:`core::marker::Sync` +:t:`trait`. + +.. _fls_44djv0wocacs: + +syntactic category +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_f981e3m7kq50` +A :dt:`syntactic category` is a nonterminal in the Backus-Naur Form grammar +definition of the Rust programming language. + +.. _fls_psd2ll10ixs: + +tail expression +^^^^^^^^^^^^^^^ + +:dp:`fls_6k873f1knasi` +A :dt:`tail expression` is the last :t:`expression` within a +:t:`block expression`. + +.. _fls_4omay4i65dwz: + +temporary +^^^^^^^^^ + +:dp:`fls_fathkxu9kxvw` +A :dt:`temporary` is an anonymous :t:`variable` produced by some intermediate +computation. + +.. _fls_ihv02usuziw8: + +terminated +^^^^^^^^^^ + +:dp:`fls_med1l8vheb83` +A :t:`loop expression` is :dt:`terminated` when its :t:`block expression` is no +longer evaluated. + +.. _fls_ef03n3ehz372: + +terminated macro invocation +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_542es82wfzco` +A :dt:`terminated macro invocation` is a :t:`macro invocation` that may be used +as a :t:`statement`. + +:dp:`fls_tcvfi2zgdm58` +See :s:`TerminatedMacroInvocation`. + +.. _fls_AVZGZPd6WXXO: + +textual macro scope +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_xyeYk6vrmlWp` +A :dt:`textual macro scope` is a :t:`scope` for :t:`[declarative macro]s`. + +.. _fls_mdcbhy96hrau: + +textual type +^^^^^^^^^^^^ + +:dp:`fls_lv1pdtzf6f58` +A :dt:`textual type` is a :t:`type` class that includes type :c:`char` and type +:c:`str`. + +.. _fls_lfsgf6u142yb: + +thin pointer +^^^^^^^^^^^^ + +:dp:`fls_i2j0u4v5o1bs` +A :dt:`thin pointer` is a :t:`value` of a :t:`thin pointer type`. + +.. _fls_7ksqpi9j8ba9: + +thin pointer type +^^^^^^^^^^^^^^^^^ + +:dp:`fls_33rka3kyxgrk` +A :dt:`thin pointer type` is an :t:`indirection type` that refers to a +:t:`fixed sized type`. + +.. _fls_tzoko74t5t6n: + +token matching +^^^^^^^^^^^^^^ + +:dp:`fls_a19q6lhvakcm` +:dt:`Token matching` is the process of consuming a :s:`TokenTree` in an attempt +to fully satisfy a :t:`macro match` of a selected :t:`macro matcher` that +belongs to a resolved :t:`declarative macro`. + +.. _fls_ma3vs7yoj285: + +tokens +^^^^^^ + +:dp:`fls_v23kqvyvscd7` +:dt:`[Token]s` are a subset of :t:`[lexical element]s` consumed by +:t:`[macro]s`. + +.. _fls_cad25qns4164: + +trait +^^^^^ + +:dp:`fls_mf4x9g70o5z6` +A :dt:`trait` is an :t:`item` that describes an interface a :t:`type` can +implement. + +:dp:`fls_ypjhwvuyrns` +See :s:`TraitDeclaration`. + +.. _fls_5hNydsQDrICq: + +trait body +^^^^^^^^^^ + +:dp:`fls_u221Me58aZmY` +A :dt:`trait body` is a :t:`construct` that encapsulates the +:t:`[associated item]s`, :t:`[inner attribute]s`, and +:t:`[inner doc comment]s` of a :t:`trait`. + +:dp:`fls_dITFx04TB4h0` +See :s:`TraitBody`. + +.. _fls_868cgnb1soeh: + +trait bound +^^^^^^^^^^^ + +:dp:`fls_95zx8unuxxpq` +A :dt:`trait bound` is a :t:`bound` that imposes a constraint on the +:t:`[trait]s` of :t:`[generic parameter]s`. + +:dp:`fls_bkbym8v4t6oh` +See :s:`TraitBound`. + +.. _fls_kflieu6uottg: + +trait implementation +^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_5v7kbg144pr8` +A :dt:`trait implementation` is an :t:`implementation` that adds functionality +specified by a :t:`trait`. + +:dp:`fls_rytylyyxh27f` +See :s:`TraitImplementation`. + +.. _fls_TCIzYoMeGtub: + +trait object lifetime elision +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_rALP9b6qjlp9` +:dt:`Trait object lifetime elision` is a form of :t:`lifetime elision` that +applies to :t:`[trait object type]s`. + +.. _fls_7qtbro7ipndr: + +trait object type +^^^^^^^^^^^^^^^^^ + +:dp:`fls_lo2fzzdwxy1l` +A :dt:`trait object type` is a :t:`type` that implements a :t:`trait`, where +the :t:`type` is not known at compile time. + +:dp:`fls_d632mc5c8qwt` +See :s:`TraitObjectTypeSpecification`, +:s:`TraitObjectTypeSpecificationOneBound`. + +.. _fls_nfdfeFVZRC5F: + +trait type +^^^^^^^^^^ + +:dp:`fls_JQsQnQ0dTHlS` +A :dt:`trait type` is either an :t:`impl trait type` or a +:t:`trait object type`. + +.. _fls_sl62718i1kkn: + +transparent representation +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_hb3e72rhzpnv` +:dt:`Transparent representation` is a :t:`type representation` that applies +only to an :t:`enum type` with a single :t:`enum variant` or a :t:`struct type` +where the :t:`struct type` or :t:`enum variant` has a single :t:`field` of +non-zero :t:`size` and any number of :t:`[field]s` of :t:`size` zero and +:t:`alignment` one. + +.. _fls_soqkluvirlsd: + +trivial predicate +^^^^^^^^^^^^^^^^^ + +:dp:`fls_db5njwrjolhs` +A :dt:`trivial predicate` is a :t:`where clause predicate` that does not use +the :t:`[generic parameter]s` or :t:`[higher-ranked lifetime]s` of the related +:t:`construct`. + +.. _fls_si70t19ox07e: + +tuple +^^^^^ + +:dp:`fls_yhcfqz6p0059` +A :dt:`tuple` is a :t:`value` of a :t:`tuple type`. + +.. _fls_1XEHpJOK9DKB: + +tuple enum variant +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_eduQhUYBEkVx` +A :dt:`tuple enum variant` is an :t:`enum variant` with a +:s:`TupleStructFieldList`. + +.. _fls_sP7uHoLxGfRO: + +tuple enum variant value +^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_ORURxipGqNrZ` +A :dt:`tuple enum variant value` is a :t:`value` of a :t:`tuple enum variant`. + +.. _fls_udl6ujjg1jae: + +tuple expression +^^^^^^^^^^^^^^^^ + +:dp:`fls_x7m4u1dx4eli` +A :dt:`tuple expression` is an :t:`expression` that constructs a :t:`tuple`. + +:dp:`fls_qawnvcddgyxx` +See :s:`TupleExpression`. + +.. _fls_bf1v4e1s5xj6: + +tuple field +^^^^^^^^^^^ + +:dp:`fls_8rq1gbzij5tk` +A :dt:`tuple field` is a :t:`field` of a :t:`tuple type`. + +.. _fls_zfvvbf7ncrhj: + +tuple initializer +^^^^^^^^^^^^^^^^^ + +:dp:`fls_94hg6re11zl5` +A :dt:`tuple initializer` is an :t:`operand` that provides the :t:`value` of a +:t:`tuple field` in a :t:`tuple expression`. + +.. _fls_7f2sx37kg4ca: + +tuple pattern +^^^^^^^^^^^^^ + +:dp:`fls_al2q3vh1rg6e` +A :dt:`tuple pattern` is a :t:`pattern` that matches a :t:`tuple` which +satisfies all criteria defined by its :t:`[subpattern]s`. + +:dp:`fls_bevmt5t0238j` +See :s:`TuplePattern`. + +.. _fls_245idp9hpqf6: + +tuple struct +^^^^^^^^^^^^ + +:dp:`fls_pdcpmapiq491` +A :dt:`tuple struct` is a :t:`struct` with a :s:`TupleStructFieldList`. + +:dp:`fls_1tj4p05m4wdf` +See :s:`TupleStructDeclaration`. + +.. _fls_UYCpeq4Z87My: + +tuple struct call expression +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_DQaCUkskfXzk` +A :dt:`tuple struct call expression` is a :t:`call expression` where the +:t:`call operand` resolves to a :t:`tuple struct`. + +.. _fls_xx4slbg8s63e: + +tuple struct field +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_ndeb1a2hm9d8` +A :dt:`tuple struct field` is a :t:`field` of a :t:`tuple struct type`. + +:dp:`fls_v4eq8xg608d5` +See :s:`TupleStructField`. + +.. _fls_u2j18nl1t12f: + +tuple struct pattern +^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_gu1mfurivnfz` +A :dt:`tuple struct pattern` is a :t:`pattern` that matches a +:t:`tuple enum variant value` or a :t:`tuple struct value`. + +:dp:`fls_3jx5683mdm10` +See :s:`TupleStructPattern`. + +.. _fls_qx8j2lvqigqk: + +tuple struct type +^^^^^^^^^^^^^^^^^ + +:dp:`fls_hhikx5ajx3bl` +A :dt:`tuple struct type` is the :t:`type` of a :t:`tuple struct`. + +.. _fls_x4ALCJKhVDZF: + +tuple struct value +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_xz1p4pss2Ocn` +A :dt:`tuple struct value` is a :t:`value` of a :t:`tuple struct type`. + +.. _fls_k4yz7i2pf9wp: + +tuple type +^^^^^^^^^^ + +:dp:`fls_q0ulqfvnxwni` +A :dt:`tuple type` is a :t:`sequence type` that represents a heterogeneous list +of other :t:`[type]s`. + +:dp:`fls_rkugxsau1w78` +See :s:`TupleTypeSpecification`. + +.. _fls_wzupssn435n: + +type +^^^^ + +:dp:`fls_nhlh7vvgsbwo` +A :dt:`type` defines a set of :t:`[value]s` and a set of operations that act on +those :t:`[value]s`. + +.. _fls_vaklivoy2ix2: + +type alias +^^^^^^^^^^ + +:dp:`fls_8pcsxodv1xp5` +A :dt:`type alias` is an :t:`item` that defines a :t:`name` for a :t:`type`. + +:dp:`fls_qfzskp1t3h5w` +See :s:`TypeAliasDeclaration`. + +.. _fls_89ollsdjx3uy: + +type argument +^^^^^^^^^^^^^ + +:dp:`fls_152lk7hrtd11` +A :dt:`type argument` is a :t:`generic argument` that supplies the :t:`value` +of a :t:`type parameter`. + +:dp:`fls_91tqk65qiygf` +See :s:`TypeArgument`. + +.. _fls_1n50v16et5e6: + +type ascription +^^^^^^^^^^^^^^^ + +:dp:`fls_pm5jytclqn7y` +A :dt:`type ascription` specifies the :t:`type` of a :t:`construct`. + +:dp:`fls_c3xtiputfxea` +See :s:`TypeAscription`. + +.. _fls_zDdXv5I4bW9H: + +type bound predicate +^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_j6WKoybB4cep` +A :dt:`type bound predicate` is a :t:`construct` that specifies +:t:`[lifetime bound]s` and :t:`[trait bound]s` on a :t:`type`. + +:dp:`fls_oMlPNgoDjnoW` +See :s:`TypeBoundPredicate`. + +.. _fls_k24jb967nu1q: + +type cast expression +^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_j6zo3rir1x76` +A :dt:`type cast expression` is an :t:`expression` that changes the :t:`type` +of an :t:`operand`. + +:dp:`fls_dvh1xy9w74ch` +See :s:`TypeCastExpression`. + +.. _fls_6j08yuafv0vl: + +type coercion +^^^^^^^^^^^^^ + +:dp:`fls_mt36qehtqova` +:dt:`Type coercion` is an implicit operation that changes the :t:`type` of +a :t:`value`. + +.. _fls_7fpvb2gvqng8: + +type inference +^^^^^^^^^^^^^^ + +:dp:`fls_ky8epvf9834e` +:dt:`Type inference` is the process of deducing the expected :t:`type` of an +arbitrary :t:`value`. + +.. _fls_0jri0m3F1fAT: + +type inference root +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_hLI7lCixs48z` +A :dt:`type inference root` is a :t:`construct` whose inner :t:`[expression]s` +and :t:`[pattern]s` are subject to :t:`type inference` independently of other +:t:`[type inference root]s`. + +.. _fls_uv2damik654e: + +type parameter +^^^^^^^^^^^^^^ + +:dp:`fls_5t6510wkb67x` +A :dt:`type parameter` is a :t:`generic parameter` for a :t:`type`. + +:dp:`fls_vquy0tsvd93x` +See :s:`TypeParameter`. + +.. _fls_Fq2zTHYRpK2V: + +type parameter initializer +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_Xpz47JLNsOXI` +A :dt:`type parameter initializer` is a :t:`construct` that provides the +default :t:`value` of its related :t:`type parameter`. + +:dp:`fls_6Ap26AcSadP8` +See :s:`TypeParameterInitializer`. + +.. _fls_HghjWqvyj5bN: + +type parameter type +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_EuHHxwHd0RHV` +A :dt:`type parameter type` is a placeholder :t:`type` of a :t:`type parameter` +to be substituted by :t:`generic substitution`. + +.. _fls_QDCiXh7uSj9r: + +type path +^^^^^^^^^ + +:dp:`fls_UBR5czHrMTrx` +A :dt:`type path` is a :t:`path` that acts as a :t:`type specification`. + +:dp:`fls_7CbNAZYSZayW` +See :s:`TypePath`. + +.. _fls_wa3biT0rQ102: + +type path resolution +^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_Xv6JbfdIyvA3` +:dt:`Type path resolution` is a form of :t:`path resolution` that applies to +a :t:`type path`. + +.. _fls_u1zkh2m8p92: + +type representation +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_rv80nyxwj2z8` +:dt:`Type representation` specifies the :t:`layout` of :t:`[field]s` of +:t:`[abstract data type]s`. + +.. _fls_ukua6gbye6ot: + +type specification +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_tdjhjg9zhnv5` +A :dt:`type specification` describes the structure of a :t:`type`. + +:dp:`fls_a3sqjp1l8po6` +See :s:`TypeSpecification`. + +.. _fls_qoehu9p00q56: + +type unification +^^^^^^^^^^^^^^^^ + +:dp:`fls_3vyodut341b5` +:dt:`Type unification` is the process by which :t:`type inference` propagates +known :t:`[type]s` across the :t:`type inference root` and assigns concrete +:t:`[type]s` to :t:`[type variable]s`, as well as a general mechanism to check +for compatibility between two :t:`[type]s` during :t:`method resolution`. + +.. _fls_6zhffgxtytku: + +type variable +^^^^^^^^^^^^^ + +:dp:`fls_j9eusnwze4rz` +A :dt:`type variable` is a placeholder used during :t:`type inference` to stand +in for an undetermined :t:`type` of an :t:`expression` or a :t:`pattern`. + +.. _fls_44uvj9l7q98z: + +u8 +^^ + +:dp:`fls_umf9zfeghy6` +:dc:`u8` is an :t:`unsigned integer type` whose :t:`[value]s` range from 0 to +2\ :sup:`8` - 1, all inclusive. + +.. _fls_eh24kdjdze5j: + +u16 +^^^ + +:dp:`fls_8vi7bm2895y0` +:dc:`u16` is an :t:`unsigned integer type` whose :t:`[value]s` range from 0 to +2\ :sup:`16` - 1, all inclusive. + +.. _fls_jybcgdujzpqy: + +u32 +^^^ + +:dp:`fls_pw90erui8vkk` +:dc:`u32` is an :t:`unsigned integer type` whose :t:`[value]s` range from 0 to +2\ :sup:`32` - 1, all inclusive. + +.. _fls_1z1e3chuejzz: + +u64 +^^^ + +:dp:`fls_pbcmhznqft9m` +:dc:`u64` is an :t:`unsigned integer type` whose :t:`[value]s` range from 0 to +2\ :sup:`64` - 1, all inclusive. + +.. _fls_5hn9e3ce1smp: + +u128 +^^^^ + +:dp:`fls_8yv891ur2av5` +:dc:`u128` is an :t:`unsigned integer type` whose :t:`[value]s` range from 0 to +2\ :sup:`128` - 1, all inclusive. + +.. _fls_p032easjag3d: + +unary operator +^^^^^^^^^^^^^^ + +:dp:`fls_p6mk2zrwgwem` +A :dt:`unary operator` operates on one :t:`operand`. + +.. _fls_WuLL4SvSKavZ: + +undefined behavior +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_WpwmltUMQGZa` +:dt:`Undefined behavior` is a situation that results in an unbounded error. + +.. _fls_X6XjWwYeTnVR: + +under resolution +^^^^^^^^^^^^^^^^ + +:dp:`fls_BppwXSVUWtEu` +A :t:`construct` that is being resolved is said to be :dt:`under resolution`. + +.. _fls_57kis2vnt3cv: + +underscore expression +^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_ukl1sefb99gj` +An :dt:`underscore expression` is an :t:`expression` that acts as a placeholder +in a :t:`destructuring assignment`. + +:dp:`fls_qbo267kdjcgs` +See :s:`UnderscoreExpression`. + +.. _fls_fhwqe6afup2o: + +underscore pattern +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_f6yroesif1q4` +An :dt:`underscore pattern` is a :t:`pattern` that matches any single +:t:`value`. + +:dp:`fls_bktuchv7o4dd` +See :s:`UnderscorePattern`. + +.. _fls_HpUSWMvNS5f4: + +unhygienic +^^^^^^^^^^ + +:dp:`fls_0t4lFZLkNieR` +An :t:`identifier` is :dt:`unhygienic` when it has :t:`call site hygiene`. + +.. _fls_kafgmevvzl5t: + +Unicode +^^^^^^^ + +:dp:`fls_y7gwku7pe1f4` +:dt:`Unicode` is the colloquial name for the ISO/IEC 10646:2017 Universal Coded +Character Set standard. + +.. _fls_y7m6AentM6Ik: + +unifiable +^^^^^^^^^ + +:dp:`fls_01BNTCL4u8Gn` +For :dt:`unifiable`, see :t:`unify`. + +.. _fls_u03p4rvz1jhs: + +unifiable types +^^^^^^^^^^^^^^^ + +:dp:`fls_jsbggfitv9xk` +Two :t:`[type]s` that :t:`unify` are said to be :dt:`[unifiable type]s`. + +.. _fls_9RfuDiI6qrzZ: + +unified type +^^^^^^^^^^^^ + +:dp:`fls_tqRwIe6z3a4j` +A :dt:`unified type` is a :t:`type` produced by :t:`type unification`. + +.. _fls_da6ssnmmsevo: + +unify +^^^^^ + +:dp:`fls_mango4gffb9e` +A :t:`type` is said to :dt:`unify` with another type when the domains, ranges, +and structures of both :t:`[type]s` are compatible. + +.. _fls_8qljy9e1jjcb: + +union +^^^^^ + +:dp:`fls_x3oibk39dvem` +A :dt:`union` is an :t:`item` that declares a :t:`union type`. + +.. _fls_71xvazpwi8p0: + +union field +^^^^^^^^^^^ + +:dp:`fls_6t2fbnlndz8y` +A :dt:`union field` is a :t:`field` of a :t:`union type`. + +.. _fls_nrgyga1rztb3: + +union type +^^^^^^^^^^ + +:dp:`fls_af2sscrep7mc` +A :dt:`union type` is an :t:`abstract data type` similar to a :t:`C`-like union. + +:dp:`fls_fgvjogfz8ink` +See :s:`UnionDeclaration`. + +.. _fls_2QRQMeA3OSVl: + +union value +^^^^^^^^^^^ + +:dp:`fls_9BPrxky3a4nE` +A :dt:`union value` is a :t:`value` of a :t:`union type`. + +.. _fls_Is9hWLC6Q0g5: + +unique immutable reference +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_eXrivAmNxzmv` +A :dt:`unique immutable reference` is an :t:`immutable reference` produced by +:t:`capturing` what is asserted to be the only live :t:`reference` to a +:t:`value` while the :t:`reference` exists. + +.. _fls_Rwtgq904NoaL: + +unit enum variant +^^^^^^^^^^^^^^^^^ + +:dp:`fls_y6fI5L3Tghie` +A :dt:`unit enum variant` is an :t:`enum variant` without a :t:`field list`. + +.. _fls_f3hmx9qya258: + +unit struct +^^^^^^^^^^^ + +:dp:`fls_9t7fu8fcak6k` +A :dt:`unit struct` is a :t:`struct` without a :t:`field list`. + +:dp:`fls_mSuiysAVczPx` +See :s:`UnitStructDeclaration`. + +.. _fls_jdvEnl8F7I8R: + +unit struct constant +^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_lLGn4JqddeAg`: +A :dt:`unit struct constant` is a :t:`constant` implicitly created by a +:t:`unit struct`. + +.. _fls_6j2wnOmBILJa: + +unit struct type +^^^^^^^^^^^^^^^^ + +:dp:`fls_oIzmvACNeQpE` +A :dt:`unit struct type` is the :t:`type` of a :t:`unit struct`. + +.. _fls_CXp8fgPrBVUe: + +unit struct value +^^^^^^^^^^^^^^^^^ + +:dp:`fls_Kr9nGIjx3N4R` +A :dt:`unit struct value` is a :t:`value` of a :t:`unit struct type`. + +.. _fls_wmn9mcqae88q: + +unit tuple +^^^^^^^^^^ + +:dp:`fls_vo1jw6rmu4yy` +A :dt:`unit tuple` is a :t:`value` of the :t:`unit type`. + +.. _fls_t32yfzmpid5a: + +unit type +^^^^^^^^^ + +:dp:`fls_jtdtv3q2ls05` +The :dt:`unit type` is a :t:`tuple type` of zero :t:`arity`. + +.. _fls_vxt0ifseehv9: + +unit value +^^^^^^^^^^ + +:dp:`fls_ycdv4nvsdyx` +The :dt:`unit value` is the :t:`value` of a :t:`unit type`. + +.. _fls_u78ng1tleh0w: + +unnamed constant +^^^^^^^^^^^^^^^^ + +:dp:`fls_ufj01cxxsv1w` +An :dt:`unnamed constant` is a :t:`constant` declared with character 0x5F (low +line). + +.. _fls_r8567aozbyxl: + +unnamed lifetime +^^^^^^^^^^^^^^^^ + +:dp:`fls_4iy6zpq66mit` +An :dt:`unnamed lifetime` is a :t:`lifetime` declared with character 0x5F (low +line). + +.. _fls_cDVmvrVhUBmr: + +unqualified path expression +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_9xKgP8uVsOaR` +An :dt:`unqualified path expression` is a :t:`path expression` without a :t:`qualified type`. + +.. _fls_6349nvapfj9d: + +unsafe block +^^^^^^^^^^^^ + +:dp:`fls_8tkolhmd6xfp` +For :dt:`unsafe block`, see :t:`unsafe block expression`. + +.. _fls_u8sdp2fxz9pn: + +unsafe block expression +^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_et2h89jyivhs` +An :dt:`unsafe block expression` is a :t:`block expression` that is specified +with :t:`keyword` ``unsafe``. + +:dp:`fls_c94rudunhp5b` +See :s:`UnsafeBlockExpression`. + +.. _fls_5m85wlr2qw78: + +unsafe context +^^^^^^^^^^^^^^ + +:dp:`fls_qn1s845ejbu0` +An :dt:`unsafe context` is either an :t:`unsafe block` or an +:t:`unsafe function`. + +.. _fls_ua64pv82skaw: + +unsafe function +^^^^^^^^^^^^^^^ + +:dp:`fls_2ht13dgtxi1o` +An :dt:`unsafe function` is a :t:`function` subject to :t:`keyword` ``unsafe``. + +.. _fls_y1iruf62p856: + +unsafe function item type +^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_r91tuwi55nu7` +An :dt:`unsafe function item type` is a :t:`function item type` where the +related :t:`function` is an :t:`unsafe function`. + +.. _fls_bokqlokua059: + +unsafe function pointer type +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_tiluwa2v4l6d` +An :dt:`unsafe function pointer type` is a function pointer type subject to +:t:`keyword` ``unsafe``. + +.. _fls_e2wyfbem6vwn: + +unsafe operation +^^^^^^^^^^^^^^^^ + +:dp:`fls_34h60ubicgsj` +An :dt:`unsafe operation` is an operation that may result in +:t:`undefined behavior` that is not diagnosed as a static error. +:t:`[Unsafe operation]s` are referred to as :t:`unsafe Rust`. + +.. _fls_4f6mppoenj3b: + +unsafe Rust +^^^^^^^^^^^ + +:dp:`fls_30asi010yf1a` +For :dt:`unsafe Rust`, see :t:`[unsafe operation]s`. + +.. _fls_38ae1t48h9cb: + +unsafe trait +^^^^^^^^^^^^ + +:dp:`fls_w6zlsf2ye457` +An :dt:`unsafe trait` is a :t:`trait` subject to :t:`keyword` ``unsafe`` + +.. _fls_h62dfjfyqcbn: + +unsafe trait implementation +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_kqwcv076dzie` +An :dt:`unsafe trait implementation` is a :t:`trait implementation` subject to +:t:`keyword` ``unsafe``. + +.. _fls_pst7yov6vnr9: + +unsafety +^^^^^^^^ + +:dp:`fls_742ycx5181n` +:dt:`Unsafety` is the presence of :t:`[unsafe operation]s` in program text. + +.. _fls_4jc74lz245z3: + +unsigned integer type +^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_dxnf79qemlg6` +An :dt:`unsigned integer type` is an :t:`integer type` whose :t:`[value]s` +denote zero and positive whole numbers. + +.. _fls_pjup0piqlxe3: + +unsized coercion +^^^^^^^^^^^^^^^^ + +:dp:`fls_olt5qhyvhmtq` +An :dt:`unsized coercion` is a :t:`type coercion` that converts a +:t:`sized type` into an :t:`unsized type`. + +.. _fls_KiVgO7I3UUhh: + +unsized type +^^^^^^^^^^^^ + +:dp:`fls_M9NpzBH8Wf4z` +An :dt:`unsized type` is a :t:`type` with statically unknown size. + +.. _fls_4ph9cact2scc: + +unsuffixed float +^^^^^^^^^^^^^^^^ + +:dp:`fls_7wp6y0xeqqve` +An :dt:`unsuffixed float` is a :t:`float literal` without a :t:`float suffix`. + +.. _fls_d18nctsj8wu5: + +unsuffixed integer +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_t419z3zder0q` +An :dt:`unsuffixed integer` is an :t:`integer literal` without an +:t:`integer suffix`. + +.. _fls_fow1bnvduafi: + +use import +^^^^^^^^^^ + +:dp:`fls_uccv9zthh5vt` +A :dt:`use import` brings :t:`entities ` :t:`in scope` within the +:t:`block expression` of an :t:`expression-with-block` or :t:`module` where the +:t:`use import` resides. + +:dp:`fls_ib5wf62j4uhr` +See :s:`UseImport`. + +.. _fls_gvjm5mms9ahz: + +usize +^^^^^ + +:dp:`fls_r22k1l8799k6` +:dc:`usize` is an :t:`unsigned integer type` with the same number of bits as +the platform's :t:`pointer type`, and is at least 16-bits wide. + +.. _fls_A5K8aOBsI3BG: + +validity invariant +^^^^^^^^^^^^^^^^^^ + +:dp:`fls_3ebC3l839ajF` +A :dt:`validity invariant` is an invariant that when violated results in +immediate :t:`undefined behavior`. + +.. _fls_tg866bc926ms: + +value +^^^^^ + +:dp:`fls_h8jn338b51yu` +A :dt:`value` is either a :t:`literal` or the result of a computation, that may +be stored in a memory location, and interpreted based on some :t:`type`. + +.. _fls_h03noz6jzpyl: + +value expression +^^^^^^^^^^^^^^^^ + +:dp:`fls_mn6tcuz5j3p` +A :dt:`value expression` is an :t:`expression` that represents a :t:`value`. + +.. _fls_7xiaXXSwy4GP: + +value expression context +^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_NGGZEbmoLRbD` +A :dt:`value expression context` is an expression context that is not a +:t:`place expression context`. + +.. _fls_a5xof9jlpc2e: + +value operand +^^^^^^^^^^^^^ + +:dp:`fls_x4seemjknk2z` +A :dt:`value operand` is an :t:`operand` that supplies the :t:`value` that is +assigned to an :t:`assignee operand` by an :t:`assignment expression`. + +:dp:`fls_cl4fakfkpscp` +See :s:`ValueOperand`. + +.. _fls_donq6w1906lw: + +variable +^^^^^^^^ + +:dp:`fls_9ab12k4vwsio` +A :dt:`variable` is a placeholder for a :t:`value` that is allocated on the +stack. + +.. _fls_RIe80XOF8VlA: + +variadic part +^^^^^^^^^^^^^ + +:dp:`fls_ePnTyLoqJ1i7` +A :dt:`variadic part` indicates the presence of :t:`C`-like optional +parameters. + +:dp:`fls_z9D86gBFbKB5` +See :s:`VariadicPart`. + +.. _fls_q0xplb4tbzpq: + +variance +^^^^^^^^ + +:dp:`fls_il0krrsf09f8` +:dt:`Variance` is a property of :t:`[lifetime parameter]s` and +:t:`[type parameter]s` that describes the circumstances under which a +:t:`generic type` is a :t:`subtype` of an instantiation of itself with +different :t:`[generic argument]s`. + +.. _fls_svx87y4p8fdx: + +visibility +^^^^^^^^^^ + +:dp:`fls_sadmsqhptlho` +:dt:`Visibility` is a property of :t:`[field]s` and :t:`[item]s` that determines +which :t:`[module]s` can refer to the :t:`name` of the :t:`field` or :t:`item`. + +.. _fls_xqjk8avt7t51: + +visibility modifier +^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_ze7befho4jhs` +A :dt:`visibility modifier` sets the :t:`visibility` of the :t:`name` of an +:t:`item`. + +.. _fls_iplp3gvfbcpw: + +weak keyword +^^^^^^^^^^^^ + +:dp:`fls_4hiznltf5wlu` +A :dt:`weak keyword` is a :t:`keyword` whose special meaning depends on the +context. + +:dp:`fls_psah573fsrig` +See :s:`WeakKeyword`. + +.. _fls_ew2gsg72rjxk: + +where clause +^^^^^^^^^^^^ + +:dp:`fls_prljyrhontzn` +A :dt:`where clause` is a :t:`construct` that specifies :t:`[bound]s` on +:t:`[lifetime parameter]s` and :t:`[type parameter]s`. + +:dp:`fls_k32hnug33eo9` +See :s:`WhereClause`. + +.. _fls_myNeYCm4VI0R: + +where clause predicate +^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_0LACQVmZpDQF` +A :dt:`where clause predicate` is either a :t:`lifetime bound predicate` or a +:t:`type bound predicate`. + +:dp:`fls_Jk7V1SOKE4Gm` +See :s:`WhereClausePredicate`. + +.. _fls_8hcsablipi17: + +while let loop +^^^^^^^^^^^^^^ + +:dp:`fls_ovutw52qtx71` +For :dt:`while let loop`, see :t:`while let loop expression`. + +.. _fls_gme4odk59x6d: + +while let loop expression +^^^^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_g35gn7n88acp` +A :dt:`while let loop expression` is a :t:`loop expression` that continues to +evaluate its :t:`loop body` as long as its :t:`subject let expression` yields a +:t:`value` that can be matched against its :t:`pattern`. + +:dp:`fls_q3jcb4nodqba` +See :s:`WhileLetLoopExpression`. + +.. _fls_od59yim9kasi: + +while loop +^^^^^^^^^^ + +:dp:`fls_ug9cxoml9ged` +For :dt:`while loop`, see :t:`while loop expression`. + +.. _fls_1qxi3h3qmgso: + +while loop expression +^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_fq0zyup4djyh` +A :dt:`while loop expression` is a :t:`loop expression` that continues to +evaluate its :t:`loop body` as long as its :t:`iteration expression` holds +true. + +:dp:`fls_7htwpbmyq83u` +See :s:`WhileLoopExpression`. + +.. _fls_cxm8nw6qiryr: + +whitespace string +^^^^^^^^^^^^^^^^^ + +:dp:`fls_nljkmadklwdp` +A :dt:`whitespace string` is a string that consists of one or more +:t:`[whitespace character]s`. + +.. _fls_a5lrxgucl3be: + +zero-sized type +^^^^^^^^^^^^^^^ + +:dp:`fls_rmd6pearrhr8` +A :dt:`zero-sized type` is a :t:`fixed sized type` with :t:`size` zero. + +.. _fls_pix563lfbpm: + +zero-variant enum type +^^^^^^^^^^^^^^^^^^^^^^ + +:dp:`fls_84gqz3vwi5mj` +A :dt:`zero-variant enum type` is an :t:`enum type` without any +:t:`[enum variant]s`. diff --git a/_sources/implementations.rst.txt b/_sources/implementations.rst.txt new file mode 100644 index 00000000..a0dbc818 --- /dev/null +++ b/_sources/implementations.rst.txt @@ -0,0 +1,270 @@ +.. SPDX-License-Identifier: MIT OR Apache-2.0 + SPDX-FileCopyrightText: The Ferrocene Developers + +.. default-domain:: spec + +.. _fls_fk2m2irwpeof: + +Implementations +=============== + +.. rubric:: Syntax + +.. syntax:: + + Implementation ::= + InherentImplementation + | TraitImplementation + + InherentImplementation ::= + $$impl$$ GenericParameterList? ImplementingType WhereClause? ImplementationBody + + TraitImplementation ::= + $$unsafe$$? $$impl$$ GenericParameterList? $$!$$? ImplementedTrait $$for$$ ImplementingType WhereClause? ImplementationBody + + ImplementingType ::= + TypeSpecification + + ImplementedTrait ::= + TypePath + + ImplementationBody ::= + $${$$ + InnerAttributeOrDoc* + AssociatedItem* + $$}$$ + +.. rubric:: Legality Rules + +:dp:`fls_ivxpoxggy7s6` +An :t:`implementation` is an :t:`item` that supplements an +:t:`implementing type` by extending its functionality. + +:dp:`fls_yopmjbnw8tbl` +An :t:`implementing type` is the :t:`type` that the :t:`[associated item]s` of +an :t:`implementation` are associated with. + +:dp:`fls_eIHc8Y9fBtr0` +Within an :t:`implementation`, the :t:`type` :c:`Self` acts as a :t:`type alias` +for the :t:`implementing type`. + +:dp:`fls_Mcpdzzcw43M7` +An :t:`implementation body` is a :t:`construct` that encapsulates the +:t:`[associated item]s`, :t:`[inner attribute]s`, and +:t:`[inner doc comment]s` of an :t:`implementation`. + +:dp:`fls_v0n0bna40dqr` +An :t:`inherent implementation` is an :t:`implementation` that adds direct +functionality. + +:dp:`fls_797etpdk5dyb` +:t:`[Inherent implementation]s` of the same :t:`implementing type` shall be +defined within the same :t:`crate`. + +:dp:`fls_ry3an0mwb63g` +A :t:`trait implementation` is an :t:`implementation` that adds functionality +specified by a :t:`trait`. + +:dp:`fls_8pwr7ibvhmhu` +An :t:`unsafe trait implementation` is a :t:`trait implementation` subject to +:t:`keyword` ``unsafe``. + +:dp:`fls_47x0ep8of8wr` +An :t:`implemented trait` is a :t:`trait` whose functionality has been +implemented by an :t:`implementing type`. + +:dp:`fls_agitlryvyc16` +The :t:`type path` of a :t:`trait implementation` shall resolve to a :t:`trait`. + +:dp:`fls_mx5xjcejwa6u` +A :t:`trait implementation` shall be an :t:`unsafe trait implementation` if and +only if it implements an :t:`unsafe trait`. + +:dp:`fls_z78dg261oob6` +:t:`[Trait implementation]s` are subject to :t:`implementation coherence` and +:t:`implementation conformance`. + +:dp:`fls_89yNjGNB7KI3` +:t:`[Inherent implementation]s` of the same :t:`implementing type` shall not +define more than one :t:`associated item` with the same :t:`name` in the same +:t:`namespace`. + +.. rubric:: Examples + +.. code-block:: rust + + trait Shape { + fn area(self) -> f64; + } + +:dp:`fls_yuyesijndu9n` +``Circle`` is an implementing type. + +.. code-block:: rust + + struct Circle { + radius: f64 + } + +:dp:`fls_o62i75sjzp9y` +The following is an inherent implementation: + +.. code-block:: rust + + impl Circle { + fn set_radius(mut self, new_radius: f64) { + self.radius = new_radius; + } + } + +:dp:`fls_a2utf0tmuhy4` +The following is a trait implementation: + +.. code-block:: rust + + impl Shape for Circle { + fn area(self) -> f64 { + self.radius.powi(2) * std::f64::consts::PI + } + } + +.. _fls_46ork6fz5o2e: + +Implementation Coherence +------------------------ + +.. rubric:: Legality Rules + +:dp:`fls_fv1l4yjuut7p` +A :t:`trait implementation` exhibits :t:`implementation coherence` when it is +valid and does not overlap with another :t:`trait implementation`. + +:dp:`fls_swdusjwzgksx` +Two :t:`[trait implementation]s` of the same :t:`implemented trait` overlap when +the intersection of the :t:`[implementing type]s` is non-empty. + +:dp:`fls_ir7hp941ky8t` +Given :t:`trait implementation` +``impl Trait for T0``, the +:t:`trait implementation` is considered valid when + +* :dp:`fls_3tbm20k2ixol` + ``Trait`` is :t:`fundamental` or a :t:`local trait`, or + +* :dp:`fls_lscc9ileg3gm` + All of + + * :dp:`fls_9klwbsh3vlxu` + At least one of :t:`[type]s` ``T0, T1, .., TN`` is :T:`fundamental` or a + :t:`local type`, and + + * :dp:`fls_9gmc1tcscq9v` + No :t:`type parameter` of ``P1, P2, .., PN`` that is not used in another + :t:`type` may appear in the :t:`non-[local type]s` and + :t:`non-[fundamental]` :t:`[type]s` of ``T0, T1, .., TN``. + +:dp:`fls_UkQhjEWSJpDq` +A :t:`trait` or :t:`type` is :t:`fundamental` when its +:t:`implementation coherence` rules are relaxed and the :t:`trait` or :t:`type` +is always treated as if it was a :t:`local trait` or a :t:`local type`. + +:dp:`fls_fSybUG40hA5r` +The following :t:`[type]s` are :t:`fundamental`: + +* :dp:`fls_z8APl0CEF7a0` + :t:`[reference type]s` + +* :dp:`fls_RJJafhpVsi6M` + :std:`core::pin::Pin` + +.. + also `alloc::boxed::Box` + +:dp:`fls_dtUJxhNkl8Ty` +The following :t:`[trait]s` are :t:`fundamental`: + +* :dp:`fls_zJKovQrXQWdU` + :std:`core::ops::Fn` + +* :dp:`fls_V6R8yQtsqNyv` + :std:`core::ops::FnMut` + +* :dp:`fls_CpC6XQN1iWqU` + :std:`core::ops::FnOnce` + +* :dp:`fls_dj7YGw4e4i4H` + :std:`core::marker::Sized` + +:dp:`fls_koy70k770ayu` +A :t:`trait implementation` shall be coherent. + +.. _fls_e1pgdlv81vul: + +Implementation Conformance +-------------------------- + +.. rubric:: Legality Rules + +:dp:`fls_YyUSuAYG4lX6` +A :t:`trait implementation` exhibits :t:`implementation conformance` when it +satisfies the constraints of its :t:`implemented trait`. + +:dp:`fls_v31idwjau90d` +An :t:`associated trait constant` is conformant with an :t:`associated constant` +of an :t:`implemented trait` when + +* :dp:`fls_k3wfh5japmyw` + The :t:`[name]s` of both :t:`[associated constant]s` are the same, and + +* :dp:`fls_11qrqfuc3rmh` + The :t:`type` of the :t:`associated constant` in the :t:`implementation` is a + :t:`subtype` of the :t:`type` of the :t:`associated trait constant`. + +:dp:`fls_qmhduwunxww0` +An :t:`associated trait function` is conformant with an :t:`associated function` +of an :t:`implemented trait` when + +* :dp:`fls_2500ivh0cc3y` + The :t:`function signature` of the :t:`associated function` of the + :t:`implemented trait` is a :t:`subtype` of the :t:`function signature` of + the :t:`associated trait function`, and + +* :dp:`fls_18gimgfy0kw9` + The :t:`[bound]s` of the :t:`associated function` of the + :t:`implemented trait` are more general that the :t:`[bound]s` of the + :t:`associated trait function`. + +:dp:`fls_fi4qmauirlsm` +An :t:`associated type` of a :t:`trait implementation` is conformant with an +:t:`associated type` of an :t:`implemented trait` when + +* :dp:`fls_2s8lh3k4rw6u` + The :t:`[name]s` of both :t:`[type]s` are the same, and + +* :dp:`fls_bb874uu2alt3` + The :t:`type specification` of the :t:`associated type` of the + :t:`implemented trait` conforms to the :t:`[bound]s` of the + :t:`associated type` of the :t:`trait implementation`. + +:dp:`fls_so8em6rphkhv` +A :t:`trait implementation` is conformant with an :t:`implemented trait` when: + +* :dp:`fls_ldu9bmb9cy10` + The :t:`trait implementation` has a conformant :t:`associated constant` + for each :t:`associated constant` of the :t:`implemented trait`, unless the + :t:`associated constant` of the :t:`implemented trait` has a default value, + and + +* :dp:`fls_5cr6un2gzdft` + The :t:`trait implementation` has a conformant :t:`associated function` + for each :t:`associated function` of the :t:`implemented trait`, unless + the :t:`associated function` of the :t:`implemented trait` has a default + implementation in the :t:`implemented trait`, and + +* :dp:`fls_pshfe3ioh0mg` + The :t:`trait implementation` has a conformant :t:`associated type` for each + :t:`associated type` of the :t:`implemented trait`. + +:dp:`fls_8yq1g7nzv9px` +A :t:`trait implementation` shall be conformant. + diff --git a/_sources/index.rst.txt b/_sources/index.rst.txt new file mode 100644 index 00000000..51edad6a --- /dev/null +++ b/_sources/index.rst.txt @@ -0,0 +1,47 @@ +.. SPDX-License-Identifier: MIT OR Apache-2.0 + SPDX-FileCopyrightText: The Ferrocene Developers + +Ferrocene Language Specification +================================ + +.. toctree:: + :numbered: + :maxdepth: 2 + :caption: Contents: + + general + lexical-elements + items + types-and-traits + patterns + expressions + values + statements + functions + associated-items + implementations + generics + attributes + entities-and-resolution + ownership-and-deconstruction + exceptions-and-errors + concurrency + program-structure-and-compilation + unsafety + macros + ffi + inline-assembly + +.. appendices:: + :numbered: + :maxdepth: 1 + :caption: Appendices: + + licenses + glossary + undefined-behavior + +Indices and tables +------------------ + +* :ref:`search` diff --git a/_sources/inline-assembly.rst.txt b/_sources/inline-assembly.rst.txt new file mode 100644 index 00000000..9754da23 --- /dev/null +++ b/_sources/inline-assembly.rst.txt @@ -0,0 +1,1696 @@ +.. SPDX-License-Identifier: MIT OR Apache-2.0 + SPDX-FileCopyrightText: The Ferrocene Developers + +.. default-domain:: spec + +.. _fls_z1il3w9nulzy: + +Inline Assembly +=============== + +.. informational-section:: + +.. rubric:: Legality Rules + +:dp:`fls_leamdp1r3hez` +:t:`Inline assembly` is hand-written assembly code that is integrated into a +Rust program. + +:dp:`fls_3fg60jblx0xb` +:t:`Inline assembly` is written as an :t:`assembly code block` that is +wrapped inside a :t:`macro invocation` of :t:`macro` :std:`core::arch::asm` or +:t:`macro` :std:`core::arch::global_asm`. + +:dp:`fls_helnk2iz8qhp` +:t:`Inline assembly` is available on the following architectures: + +* :dp:`fls_vanmt2dv7hzd` + AArch64 + +* :dp:`fls_g8fuy1qnebxe` + ARM + +* :dp:`fls_2n9el98anp8c` + RISC-V + +* :dp:`fls_pnoh31rvu9a6` + x86 and x86-64 + +.. _fls_j9l8wn6wgm06: + +Registers +--------- + +.. rubric:: Syntax + +.. syntax:: + + RegisterName ::= + $$"$$ ExplicitRegisterName $$"$$ + | RegisterClassName + + ExplicitRegisterName ::= + $$a$$[$$0$$-$$31$$] + | $$ah$$ | $$al$$ | $$ax$$ + | $$b$$[$$0$$-$$31$$] + | $$bh$$ | $$bl$$ | $$bp$$ | $$bpl$$ | $$bx$$ + | $$ch$$ | $$cl$$ | $$cx$$ + | $$d$$[$$0$$-$$31$$] + | $$dh$$ | $$di$$ | $$dil$$ | $$dl$$ | $$dx$$ + | $$eax$$ | $$ebp$$ | $$ebx$$ | $$ecx$$ | $$edi$$ | $$edx$$ | $$eip$$ | $$esi$$ + | $$esp$$ + | $$f$$[$$0$$-$$31$$] + | $$fa$$[$$0$$-$$7$$] + | $$ffr$$ | $$fp$$ + | $$fs$$[$$0$$-$$11$$] + | $$ft$$[$$0$$-$$11$$] + | $$gp$$ + | $$h$$[$$0$$-$$31$$] + | $$ip$$ + | $$k$$[$$0$$-$$7$$] + | $$lr$$ + | $$m$$[$$0$$-$$7$$] + | $$p$$[$$0$$-$$15$$] + | $$pc$$ + | $$q$$[$$0$$-$$31$$] + | $$r$$[$$0$$-$$15$$] + | $$r$$[$$8$$-$$15$$]$$d$$ + | $$r$$[$$8$$-$$15$$]$$w$$ + | $$ra$$ | $$rax$$ + | $$rb$$[$$8$$-$$15$$] + | $$rbp$$ | $$rbx$$ | $$rcx$$ + | $$rdi$$ | $$rdx$$ | $$rfp$$ | $$rip$$ | $$rsi$$ | $$rsp$$ + | $$s$$[$$0$$-$$31$$] + | $$si$$ | $$sil$$ | $$sl$$ | $$sp$$ | $$spl$$ + | $$st($$[$$0$$-$$7$$]$$)$$ + | $$t$$[$$0$$-$$6$$] + | $$tmm$$[$$0$$-$$7$$] + | $$tp$$ + | $$v$$[$$0$$-$$31$$] + | $$w$$[$$0$$-$$31$$] + | $$wsp$$ | $$wzr$$ + | $$x$$[$$0$$-$$31$$] + | $$xmm$$[$$0$$-$$31$$] + | $$xzr$$ + | $$ymm$$[$$0$$-$$31$$] + | $$zero$$ + | $$zmm$$[$$0$$-$$31$$] + +.. rubric:: Legality Rules + +:dp:`fls_w5a6rybvptn6` +A :t:`register` is a hardware component capable of holding data that can be +read and written. + +:dp:`fls_rr8rsy7oilf0` +An :t:`input register` is a :t:`register` whose :t:`register name` is used in +a :t:`register argument` subject to :t:`direction modifier` ``in``, ``inout``, +or ``inlateout``. + +:dp:`fls_5ruu8n6r9mvp` +An :t:`output register` is a :t:`register` whose :t:`register name` is +used in a :t:`register argument` subject to :t:`direction modifier` ``out``, +``lateout``, ``inout``, or ``inlateout``. + +:dp:`fls_HV3Y1A2xn0zr` +A :t:`register` that is not specified as an :t:`output register` shall have the +same :t:`value` upon exit from an :t:`assembly code block` as it did upon entry +into the :t:`assembly code block`. + +:dp:`fls_vesfzh8h6qzu` +A :t:`register name` is either the :t:`explicit register name` of a +:t:`register`, or the :t:`register class name` of the :t:`register class` a +:t:`register` belongs to. + +:dp:`fls_ffwqxlh60i5w` +An :t:`explicit register name` is a target-specific string that identifies +a :t:`register`. + +:dp:`fls_3p8akc7gcsnx` +An :t:`explicit register name` may be aliased as follows: + +.. list-table:: + + * - :dp:`fls_7dlx7nt77xk` + - **Architecture** + - **Explicit register name** + - **Aliases** + * - :dp:`fls_w4z7yh5qyyed` + - AArch64 + - ``sp`` + - ``wsp`` + * - :dp:`fls_rzp8eg6z6x3q` + - AArch64 + - ``v[0-31]`` + - ``b[0-31]``, ``d[0-31]``, ``h[0-31]``, ``q[0-31]``, ``s[0-31]`` + * - :dp:`fls_e1w41918j49` + - AArch64 + - ``x[0-30]`` + - ``w[0-30]`` + * - :dp:`fls_q0s90h7xmnn4` + - AArch64 + - ``x29`` + - ``fp`` + * - :dp:`fls_3pt63w76isay` + - AArch64 + - ``x30`` + - ``lr`` + * - :dp:`fls_f3clxd3vidhh` + - AArch64 + - ``xzr`` + - ``wzr`` + * - :dp:`fls_vyeczg1cjxys` + - ARM + - ``r[0-3]`` + - ``a[1-4]`` + * - :dp:`fls_h5t153uhzoq3` + - ARM + - ``r[4-9]`` + - ``v[1-6]`` + * - :dp:`fls_jhph577nqds1` + - ARM + - ``r9`` + - ``rfp`` + * - :dp:`fls_mobj1y67vxvb` + - ARM + - ``r10`` + - ``sl`` + * - :dp:`fls_9ke412je1hqn` + - ARM + - ``r11`` + - ``fp`` + * - :dp:`fls_hndlas58937e` + - ARM + - ``r12`` + - ``ip`` + * - :dp:`fls_5x0yvjil3z8p` + - ARM + - ``r13`` + - ``sp`` + * - :dp:`fls_gxvlvnqs436h` + - ARM + - ``r14`` + - ``lr`` + * - :dp:`fls_mra7zuu7uzmb` + - ARM + - ``r15`` + - ``pc`` + * - :dp:`fls_maa7w0jwvat2` + - RISC-V + - ``f[0-7]`` + - ``ft[0-7]`` + * - :dp:`fls_az7kcaq70h4d` + - RISC-V + - ``f[8-9]`` + - ``fs[0-1]`` + * - :dp:`fls_xudmsflrhvo3` + - RISC-V + - ``f[10-17]`` + - ``fa[0-7]`` + * - :dp:`fls_px77cr1k8coy` + - RISC-V + - ``f[18-27]`` + - ``fs[2-11]`` + * - :dp:`fls_y1m7tlqk2dv7` + - RISC-V + - ``f[28-31]`` + - ``ft[8-11]`` + * - :dp:`fls_3dqq9319okv5` + - RISC-V + - ``x0`` + - ``zero`` + * - :dp:`fls_5l9qo5c0gek8` + - RISC-V + - ``x1`` + - ``ra`` + * - :dp:`fls_1m68zqsxjuyp` + - RISC-V + - ``x2`` + - ``sp`` + * - :dp:`fls_bck9slu4hsn1` + - RISC-V + - ``x3`` + - ``gp`` + * - :dp:`fls_3x72q39c8iwt` + - RISC-V + - ``x4`` + - ``tp`` + * - :dp:`fls_yfbrla8c801g` + - RISC-V + - ``x[5-7]`` + - ``t[0-2]`` + * - :dp:`fls_3nuf1gcldamv` + - RISC-V + - ``x8`` + - ``fp``, ``s0`` + * - :dp:`fls_nquf1uaoezx6` + - RISC-V + - ``x9`` + - ``s1`` + * - :dp:`fls_91oeyxc75vu5` + - RISC-V + - ``x[10-17]`` + - ``a[0-7]`` + * - :dp:`fls_r5btazdpwqtw` + - RISC-V + - ``x[18-27]`` + - ``s[2-11]`` + * - :dp:`fls_vpibsan8aful` + - RISC-V + - ``x[28-31]`` + - ``t[3-6]`` + * - :dp:`fls_lj6xcaaecokk` + - x86 + - ``ax`` + - ``eax``, ``rax`` + * - :dp:`fls_bb1qjfin4zjc` + - x86 + - ``bp`` + - ``bpl``, ``ebp``, ``rbp`` + * - :dp:`fls_7qj6pxuq2x9e` + - x86 + - ``bx`` + - ``ebx``, ``rbx`` + * - :dp:`fls_2xkw4nqt1s5a` + - x86 + - ``cx`` + - ``ecx``, ``rcx`` + * - :dp:`fls_dpzi4ygox7jw` + - x86 + - ``di`` + - ``edi``, ``rdi`` + * - :dp:`fls_yr5ztipvgezk` + - x86 + - ``dx`` + - ``edx``, ``rdx`` + * - :dp:`fls_n8ccafjut1yd` + - x86 + - ``ip`` + - ``eip``, ``rip`` + * - :dp:`fls_iv23mcgw6l3r` + - x86 + - ``r[8-15]`` + - ``r[8-15]b``, ``r[8-15]d``, ``r[8-15]w`` + * - :dp:`fls_yr7bac5k3uk7` + - x86 + - ``si`` + - ``esi``, ``rsi`` + * - :dp:`fls_gvb2zcrseqci` + - x86 + - ``sp`` + - ``esp``, ``rsp``, ``spl`` + * - :dp:`fls_z1b9nf49nbjh` + - x86 + - ``st(0)`` + - ``st`` + * - :dp:`fls_etfkcesnrlwt` + - x86 + - ``xmm[0-31]`` + - ``ymm[0-31]``, ``zmm[0-31]`` + +:dp:`fls_8sqzva4ibf0i` +Certain :t:`[explicit register name]s` are not supported on selected +architectures, as follows: + +.. list-table:: + + * - :dp:`fls_8bo9p6mybuzi` + - **Architecture** + - **Explicit register name** + - **Reason** + * - :dp:`fls_dk4z9dracvps` + - all + - ``sp`` + - The stack pointer must be restored to its original value on exit from an + :t:`assembly code block`. + * - :dp:`fls_7c7lgvw8gbkb` + - AArch64 + - ``x18`` + - OS-reserved register on some AArch64 targets. + * - :dp:`fls_sb0ffx31gul9` + - AArch64 + - ``x19`` + - Internally used by LLVM as a base pointer for :t:`[function]s` with + complex stack frames. + * - :dp:`fls_f9psgjl6ervm` + - AArch64 + - ``x29`` + - The frame pointer cannot be used as an input or output. + * - :dp:`fls_3y3b7znxznzu` + - AArch64 + - ``xzr`` + - The constant zero :t:`register` cannot be modified. + * - :dp:`fls_7y201ev5b0mq` + - ARM + - ``pc`` + - The program counter cannot be modified. + * - :dp:`fls_r2aoetnwhjkf` + - ARM + - ``r6`` + - Internally used by LLVM as a base pointer for :t:`[function]s` with + complex stack frames. + * - :dp:`fls_54n4ie3frc39` + - ARM + - ``r7``, ``r11`` + - The frame pointer cannot be used as an input or output. + * - :dp:`fls_iok8gc906tc8` + - ARM + - ``r9`` + - OS-reserved :t:`register` on some ARM targets. + * - :dp:`fls_2mgjkyngbmbr` + - RISC-V + - ``gp``, ``tp`` + - Reserved :t:`[register]s`. + * - :dp:`fls_6tlnpguf23y3` + - RISC-V + - ``x0`` + - The constant zero :t:`register` cannot be modified. + * - :dp:`fls_bz5xyv89i5m7` + - RISC-V + - ``x8`` + - The frame pointer cannot be used as an input or output. + * - :dp:`fls_soitzjqze3rf` + - RISC-V + - ``x9`` + - Internally used by LLVM as a base pointer for :t:`[function]s` with + complex stack frames. + * - :dp:`fls_b2c02r5y6zm9` + - x86 + - ``bp`` + - The frame pointer cannot be used as an input or output. + * - :dp:`fls_2ufm8y5ttcxf` + - x86 + - ``ip`` + - The program counter cannot be modified. + * - :dp:`fls_ub321ic94bbl` + - x86-32 + - ``si`` + - Internally used by LLVM as a base pointer for :t:`[function]s` with + complex stack frames. + * - :dp:`fls_gtwmwsmyrdxe` + - x86-64 + - ``bx`` + - Internally used by LLVM as a base pointer for :t:`[function]s` with + complex stack frames. + +:dp:`fls_vy8alu9yuza9` +It is a static error to use an unsupported :t:`explicit register name`. + +.. rubric:: Undefined Behavior + +:dp:`fls_zEtLZ5KjQcHS` +It is undefined behavior if a :t:`register` that is not specified as an +:t:`output register` has a different :t:`value` upon exit from an +:t:`assembly code block` from the :t:`value` it had upon entry into the +:t:`assembly code block`. + +.. _fls_pz2ioqchjtym: + +Register Classes +---------------- + +.. rubric:: Syntax + +.. syntax:: + + RegisterClassName ::= + $$dreg$$ + | $$dreg_low16$$ + | $$dreg_low8$$ + | $$freg$$ + | $$kreg$$ + | $$kreg0$$ + | $$mmx_reg$$ + | $$preg$$ + | $$qreg$$ + | $$qreg_low4$$ + | $$qreg_low8$$ + | $$reg$$ + | $$reg_abcd$$ + | $$reg_byte$$ + | $$sreg$$ + | $$sreg_low16$$ + | $$tmm_reg$$ + | $$vreg$$ + | $$vreg_low16$$ + | $$x86_reg$$ + | $$xmm_reg$$ + | $$ymm_reg$$ + | $$zmm_reg$$ + +.. rubric:: Legality Rules + +:dp:`fls_7gxb7ztpuofj` +A :t:`register class` represents a set of :t:`[register]s`. + +:dp:`fls_on0i2cpk254y` +A :t:`register class name` is a target-specific string that identifies a +:t:`register class`. + +:dp:`fls_40ksem5g5xx9` +:t:`[Register]s` are organized into :t:`[register class]es` as follows: + +.. list-table:: + + * - :dp:`fls_fqvjk6caipq` + - **Architecture** + - **Register class name** + - **Explicit register names** + * - :dp:`fls_u0ie66ep3glg` + - AArch64 + - ``preg`` + - ``p[0-15]``, ``ffr`` + * - :dp:`fls_wcvcansd88je` + - AArch64 + - ``reg`` + - ``x[0-30]`` + * - :dp:`fls_sbllpky4d7ka` + - AArch64 + - ``vreg`` + - ``v[0-31]`` + * - :dp:`fls_nmx5xs829ms` + - AArch64 + - ``vreg_low16`` + - ``v[0-15]`` + * - :dp:`fls_nars4y8tv2w6` + - ARM / Thumb2 + - ``reg`` + - ``r[0-12]``, ``r14`` + * - :dp:`fls_b5juxguclqjs` + - ARM / Thumb1 + - ``reg`` + - ``r[0-7]`` + * - :dp:`fls_vmigixoxm5uf` + - ARM + - ``dreg`` + - ``d[0-31]`` + * - :dp:`fls_vdqtbc4t69v2` + - ARM + - ``dreg_low8`` + - ``d[0-8]`` + * - :dp:`fls_t2d77dazjyjo` + - ARM + - ``dreg_low16`` + - ``d[0-15]`` + * - :dp:`fls_jh02uk3ypett` + - ARM + - ``qreg`` + - ``q[0-15]`` + * - :dp:`fls_rjk5laiyqagy` + - ARM + - ``qreg_low4`` + - ``q[0-3]`` + * - :dp:`fls_26bq6wbwznx` + - ARM + - ``qreg_low8`` + - ``q[0-8]`` + * - :dp:`fls_6d25i0lkzd7u` + - ARM + - ``sreg`` + - ``s[0-31]`` + * - :dp:`fls_y52suhleyid2` + - ARM + - ``sreg_low16`` + - ``s[0-15]`` + * - :dp:`fls_7b7c8xtm8fr7` + - RISC-V + - ``freg`` + - ``f[0-31]`` + * - :dp:`fls_ue0se3dcop6w` + - RISC-V + - ``reg`` + - ``x1``, ``x[0-7]``, ``x[9-15]``, ``x[16-31]`` (on non-RV32E) + * - :dp:`fls_2m49cyfqffvo` + - RISC-V + - ``vreg`` + - ``v[0-31]`` + * - :dp:`fls_mj1t0f9lp6v8` + - x86 + - ``kreg`` + - ``k[1-7]`` + * - :dp:`fls_tpkkubhjt7lk` + - x86 + - ``kreg0`` + - ``k0`` + * - :dp:`fls_ivq874v4lmga` + - x86 + - ``mmx_reg`` + - ``mm[0-7]`` + * - :dp:`fls_2wdcrocczwyi` + - x86 + - ``reg`` + - ``ax``, ``bp``, ``bx``, ``cx``, ``di``, ``dx``, ``r[8-15]``, ``si`` + * - :dp:`fls_v04te7p28dth` + - x86 + - ``reg_abcd`` + - ``ax``, ``bx``, ``cx``, ``dx`` + * - :dp:`fls_uypct69j2h6a` + - x86 + - ``x87_reg`` + - ``st([0-7])`` + * - :dp:`fls_gyet9huf6nr` + - x86 + - ``xmm_reg`` + - ``xmm[0-7]``, ``xmm[8-15]`` (on 64bit only) + * - :dp:`fls_5ekbq9hacho9` + - x86 + - ``ymm_reg`` + - ``ymm[0-7]``, ``ymm[8-15]`` (on 64bit only) + * - :dp:`fls_furnyxmwqn09` + - x86 + - ``zmm_reg`` + - ``zmm[0-7]``, ``zmm[8-15]`` (on 64bit only) + * - :dp:`fls_1c4ts991vkpq` + - x86-32 + - ``reg_byte`` + - ``ah``, ``al``, ``bh``, ``bl``, ``ch``, ``cl``, ``dh``, ``dl`` + * - :dp:`fls_iwnb72jb9iwj` + - x86-64 + - ``reg_byte`` + - ``al``, ``bl``, ``bpl``, ``cl``, ``dil``, ``dl``, ``sil``, ``r[8-15]b`` + * - :dp:`fls_mw3axoixjgnq` + - x86-64 + - ``tmm_reg`` + - ``tmm[0-7]`` + +:dp:`fls_mnzt6bxhycv9` +If a :t:`value` has a smaller size than the :t:`register` it is allocated in, +then + +* :dp:`fls_drg7v8hxb5ca` + On RISC-V architectures, if the :t:`register` belongs to :t:`register class` + ``freg``, then :c:`f32` :t:`[value]s` are :t:`NaN-boxed `. in a + :c:`f64` :t:`value`. + +* :dp:`fls_78gb8z1fyluc` + Otherwise, for an :t:`input register`, the upper bits of the :t:`register` + have an undefined :t:`value`. + +* :dp:`fls_7dii7lee457t` + Otherwise, for an :t:`output register`, the upper bits are ignored. + +:dp:`fls_ujhjocg1361b` +If a :t:`register argument` has :t:`direction modifier` ``inout`` and an +:t:`input-output register expression`, then the :t:`input register expression` +and the :t:`output register expression` shall have the same :t:`type`. + +.. _fls_hejgghwzblf: + +Register Arguments +------------------ + +.. rubric:: Syntax + +.. syntax:: + + RegisterArgument ::= + (Identifier $$=$$)? DirectionModifier $$($$ RegisterName $$)$$ RegisterExpression + + DirectionModifier ::= + $$in$$ + | $$inlateout$$ + | $$inout$$ + | $$lateout$$ + | $$out$$ + + RegisterExpression ::= + InputOutputRegisterExpression + | SimpleRegisterExpression + + InputOutputRegisterExpression ::= + InputRegisterExpression $$=>$$ OutputRegisterExpression + | InputRegisterExpression $$=>$$ UnderscoreExpression + + InputRegisterExpression ::= + Expression + + OutputRegisterExpression ::= + Expression + + SimpleRegisterExpression ::= + Expression + | UnderscoreExpression + +.. rubric:: Legality Rules + +:dp:`fls_455dmnp4cxqv` +A :t:`register argument` is a :t:`construct` that configures the input +and output of a :t:`register`, and optionally binds the configuration to an +:t:`identifier`. + +:dp:`fls_6bv3s8be5xif` +A :t:`register argument` shall be used within an :t:`assembly instruction`. + +:dp:`fls_uddjvkz4g899` +A :t:`named register argument` is a :t:`register argument` whose configuration +is bound to an :t:`identifier`. + +:dp:`fls_sqs5to20p0te` +A :t:`positional register argument` is a :t:`register argument` whose +configuration is not bound to an :t:`identifier`. + +:dp:`fls_dzlycyk24euk` +A :t:`named register argument` shall appear after a +:t:`positional register argument`. + +:dp:`fls_ics6gdzww1p` +An :t:`explicit register argument` is a :t:`register argument` that uses an +:t:`explicit register name`. + +:dp:`fls_mmc1w8jjr55r` +An :t:`explicit register argument` shall appear after a +:t:`named register argument`. + +:dp:`fls_9hhtcey2d4t6` +A :t:`register class argument` is a :t:`register argument` that uses a +:t:`register class name`. + +:dp:`fls_8aynifgq02gt` +A :t:`register class argument` causes an assembler to select a suitable +:t:`register` from the related :t:`register class`. + +:dp:`fls_5a3vfresnv5z` +A :t:`direction modifier` is a :t:`construct` that indicates whether a +:t:`register argument` initializes a :t:`register`, assigns the :t:`value` of a +:t:`register` to an :t:`expression`, or both. + +:dp:`fls_fta1gb5tzi3a` +An :t:`input register expression` is an :t:`expression` that provides the +initial :t:`value` of a :t:`register`. + +:dp:`fls_sopiivuae0x7` +An :t:`output register expression` is an :t:`expression` that is assigned the +:t:`value` of a :t:`register`. + +:dp:`fls_kkrcyk96w8x1` +An :t:`input-output register expression` is a :t:`construct` that specifies +both an :t:`input register expression` and an :t:`output register expression`. + +:dp:`fls_aniw4ehsn2kb` +A :t:`simple register expression` is either an :t:`expression` or an +:t:`underscore expression`. + +:dp:`fls_vu30cuq4y0ht` +A :t:`register expression` is either an :t:`input-output register expression` +or a :t:`simple register expression`. + +:dp:`fls_66owmltvhnu4` +The :t:`type` of an :t:`input register expression`, +:t:`output register expression`, or :t:`simple register expression` shall +depend on the architecture and the target feature in effect, as follows: + +.. list-table:: + + * - :dp:`fls_72p8e4bo6pns` + - **Architecture** + - **Register class name** + - **Target feature** + - **Allowed types** + * - :dp:`fls_z0dbmmp5yblf` + - AArch64 + - ``preg`` + - n/a + - Only clobbers + * - :dp:`fls_4jdnt8uap95i` + - AArch64 + - ``reg`` + - none + - :c:`i8`, :c:`i16`, :c:`i32`, :c:`f32`, :c:`i64`, :c:`f64` + * - :dp:`fls_wd2hzsbzdg2y` + - AArch64 + - ``vreg`` + - ``neon`` + - :c:`i8`, :c:`i16`, :c:`i32`, :c:`f32`, :c:`i64`, :c:`f64` + * - :dp:`fls_sqy00lg5j7c6` + - ARM + - ``dreg`` + - ``vfp2`` + - :c:`i64`, :c:`f64` + * - :dp:`fls_vxba1ttvz6hh` + - ARM + - ``reg`` + - none + - :c:`i8`, :c:`i16`, :c:`i32`, :c:`f32` + * - :dp:`fls_xkbnla2avrn0` + - ARM + - ``sreg`` + - ``vfp2`` + - :c:`i32`, :c:`f32` + * - :dp:`fls_w6jhcv616l9o` + - RISC-V + - ``freg`` + - ``f`` + - :c:`f32` + * - :dp:`fls_xweobiwapog1` + - RISC-V + - ``freg`` + - ``d`` + - :c:`f64` + * - :dp:`fls_4matyejw6cls` + - RISC-V + - ``vreg`` + - n/a + - Only clobbers + * - :dp:`fls_hklqabav1jju` + - RISC-V32 + - ``reg`` + - none + - :c:`i8`, :c:`i16`, :c:`i32`, :c:`f32` + * - :dp:`fls_nq22h8gragil` + - RISC-V64 + - ``reg`` + - none + - :c:`i8`, :c:`i16`, :c:`i32`, :c:`f32`, :c:`i64`, :c:`f64` + * - :dp:`fls_uxgcrs57bznk` + - x86 + - ``kreg`` + - ``avx512f`` + - :c:`i8`, :c:`i16` + * - :dp:`fls_ym05938ejwng` + - x86 + - ``kreg`` + - ``avx512bw`` + - :c:`i32`, :c:`i64` + * - :dp:`fls_5l77g8h8et2o` + - x86 + - ``mmx_reg`` + - n/a + - Only clobbers + * - :dp:`fls_xlcliuums5b0` + - x86 + - ``reg_byte`` + - none + - :c:`i8` + * - :dp:`fls_5p4hyl7mxgai` + - x86 + - ``tmm_reg`` + - n/a + - Only clobbers + * - :dp:`fls_ilepg263w5o7` + - x86 + - ``x87_reg`` + - n/a + - Only clobbers + * - :dp:`fls_tubmavru8wvn` + - x86 + - ``xmm_reg`` + - ``sse`` + - :c:`i32`, :c:`f32`, :c:`i64`, :c:`f64` + * - :dp:`fls_b1xi3u9k4pdl` + - x86 + - ``ymm_reg`` + - ``avx`` + - :c:`i32`, :c:`f32`, :c:`i64`, :c:`f64` + * - :dp:`fls_i9ds6724tv20` + - x86 + - ``zmm_reg`` + - ``avx512f`` + - :c:`i32`, :c:`f32`, :c:`i64`, :c:`f64` + * - :dp:`fls_trldyekxxlzx` + - x86-32 + - ``reg`` + - none + - :c:`i16`, :c:`i32`, :c:`f32` + * - :dp:`fls_efmpbyi4qjmf` + - x86-64 + - ``reg`` + - none + - :c:`i16`, :c:`i32`, :c:`f32`, :c:`i64`, :c:`f64` + +:dp:`fls_4x3w50w7qm8w` +If a :t:`register argument` has :t:`direction modifier` ``in`` and a +:t:`simple register expression`, then + +* :dp:`fls_6cne58tlquze` + Upon entry of an :t:`assembly code block`, the :t:`register` contains the + :t:`value` of the :t:`simple register expression`. + +* :dp:`fls_5w718fne9jsh` + On exit from an :t:`assembly code block`, the :t:`register` shall contain + the same :t:`value`, unless the :t:`register` is subject to + :t:`direction modifier` ``lateout``. + +:dp:`fls_tel7kogaqytg` +If a :t:`register argument` has :t:`direction modifier` ``out`` and a +:t:`simple register expression`, then + +* :dp:`fls_aw61psz5drg8` + Upon entry of an :t:`assembly code block`, the :t:`register` contains an + undefined :t:`value`. + +* :dp:`fls_sv2x3x81b32j` + On exit from an :t:`assembly code block`, the :t:`value` of the :t:`register` + is assigned to the :t:`simple register expression`. The + :t:`simple register expression` shall be a :t:`place expression`. + +* :dp:`fls_nebb0nhxf5ix` + If the :t:`simple register expression` is an :t:`underscore expression`, then + the :t:`value` of the :t:`register` is discarded. + +:dp:`fls_j0pxc8g8kcxm` +If a :t:`register argument` has :t:`direction modifier` ``lateout`` and a +:t:`simple register expression`, then the :t:`register argument` behaves as a +:t:`register argument` with :t:`direction modifier` ``out``, except that the +:t:`register` can be reused with :t:`direction modifier` ``in``. + +:dp:`fls_wwh6xyclxwqj` +If a :t:`register argument` has :t:`direction modifier` ``inout`` and a +:t:`simple register expression`, then + +* :dp:`fls_qcb47z1ap9dz` + Upon entry of an :t:`assembly code block`, the :t:`register` contains the + :t:`value` of the :t:`simple register expression`. + +* :dp:`fls_h01au4vk8mjd` + On exit from an :t:`assembly code block`, the :t:`value` of the :t:`register` + is assigned to the place indicated by the :t:`simple register expression`. + The :t:`simple register expression` shall be a :t:`mutable place expression`. + +:dp:`fls_92ijsf4p6yn` +If a :t:`register argument` has :t:`direction modifier` ``inout`` and an +:t:`input-output register expression`, then + +* :dp:`fls_xkui7j3gnfg0` + Upon entry of an :t:`assembly code block`, the :t:`register` contains the + :t:`value` of the :t:`input register expression`. + +* :dp:`fls_eahyqniqs2pn` + On exit from an :t:`assembly code block`, the :t:`value` of the :t:`register` + is assigned to the place indicated by the :t:`output register expression`. + The :t:`output register expression` shall be a :t:`place expression`. + +* :dp:`fls_5g7p2zo07gfe` + If the :t:`output register expression` is an :t:`underscore expression`, then + the :t:`value` of the :t:`register` is discarded. + +:dp:`fls_dobbatnjs0yt` +If a :t:`register argument` has :t:`direction modifier` ``inlateout`` and a +:t:`simple register expression`, then the :t:`register argument` behaves as a +:t:`register argument` with :t:`direction modifier` ``inout``, except that the +:t:`register` can be reused with :t:`direction modifier` ``in``. + +:dp:`fls_ax8t4uta34ym` +If a :t:`register argument` has :t:`direction modifier` ``inlateout`` and an +:t:`input-output register expression`, then the :t:`register argument` behaves +as a :t:`register argument` with :t:`direction modifier` ``inout``, except that +the :t:`register` can be reused with :t:`direction modifier` ``in``. + +:dp:`fls_dvft4ha00wj3` +It is a static error to specify a :t:`register argument` with +:t:`direction modifier` and :t:`register expression` other than the +combinations listed above. + +.. rubric:: Dynamic Semantics + +:dp:`fls_2ekwpx2bwj1b` +The :t:`evaluation` of a :t:`register argument` proceeds as follows: + +* :dp:`fls_3s2n9dlrlhz9` + If a :t:`register argument` has an :t:`input-output register expression`, + then + + #. :dp:`fls_nbkkz6krcngi` + The :t:`input register expression` is evaluated. + + #. :dp:`fls_utrvenwrettz` + The :t:`output register expression` is evaluated. + +* :dp:`fls_n85sjh925x` + If a :t:`register argument` has a :t:`simple register expression`, then the + :t:`simple register expression` is evaluated. + +.. rubric:: Examples + +.. code-block:: rust + + let mut left_value: i32 = 1; + let right_value: i32 = 2; + + unsafe { + asm!( + "add {left} {right}", + left = inout(reg) left_value, + right = in(reg) right_value, + ); + } + +.. _fls_e0896uk0mdyl: + +Assembly Instructions +--------------------- + +.. rubric:: Syntax + +.. syntax:: + + AssemblyCodeBlock ::= + AssemblyInstruction ($$,$$ AssemblyInstruction)* + + AssemblyInstruction ::= + StringLiteral + +.. rubric:: Legality Rules + +:dp:`fls_4jr7eg6e0g4w` +An :t:`assembly instruction` is a :t:`string literal` that represents a +low-level assembly operation or an :t:`assembly directive`. + +:dp:`fls_ihjhpy4osl53` +An :t:`assembly instruction` shall use the syntax of format strings as +defined in :t:`module` :std:`std::fmt`, and contain zero or more +:t:`[register parameter]s`. + +:dp:`fls_2d05gcixjrzt` +An :t:`assembly code block` is a sequence of :t:`[assembly instruction]s`. + +:dp:`fls_z64f094aivp6` +When an :t:`assembly code block` contains multiple :t:`[assembly instruction]s`, +the :t:`[assembly instruction]s` are treated as concatenated into a single +:t:`string literal`, with character 0x0A (new line) between them. + +:dp:`fls_u8lifqig90gq` +The set of memory locations that an :t:`assembly code block` is allowed to +read and write are the same as those for an :t:`external function`, excluding +the memory locations that are private to the :t:`assembly code block`. + +:dp:`fls_lfeun3er5sc9` +A tool is not required to guarantee that an :t:`assembly code block` appears +exactly once in the final assembly output. + +:dp:`fls_mmdmymljq8a3` +A tool is not required to guarantee that two :t:`[assembly code block]s` +appear in the same declarative order in the final assembly output, or appear +contiguously in successive addresses. + +:dp:`fls_xugsn2ghh73c` +A :t:`register parameter` is a substring delimited by characters 0x7B (left +curly bracket) and 0x7D (right curly bracket) that is substituted with a +:t:`register argument` in an :t:`assembly instruction`. + +:dp:`fls_opnxq5kyw9jo` +On x86 architectures, direction flag ``DF`` in :t:`register` ``EFLAGS`` shall +be cleared on exit from an :t:`assembly code block`. + +.. rubric:: Undefined Behavior + +:dp:`fls_wydu9yft7a3r` +On x86 architectures, it is undefined behavior if direction flag ``DF`` in +:t:`register` ``EFLAGS`` remains set on exit from an :t:`assembly code block`. + +.. rubric:: Examples + +.. code-block:: rust + + "shl {value} 2" + +.. _fls_lv19xysy1f7e: + +Register Parameter Modifiers +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_2xilifichdqu` +A :t:`register parameter modifier` is a substring that starts with character +0x3A (colon), follows a :t:`register parameter`, and changes the formatting of +the related :t:`register parameter`. + +:dp:`fls_o3fx9397ib74` +The effects of a :t:`register parameter modifier` depends on the architecture +and :t:`register class`, as follows: + +.. list-table:: + + * - :dp:`fls_3atrad53m22a` + - **Architecture** + - **Register class** + - **Modifier** + - **Example output** + * - :dp:`fls_5zaqgz9jc8gy` + - AArch64 + - ``reg`` + - none + - ``x0`` + * - :dp:`fls_erjczjotwqc3` + - AArch64 + - ``reg`` + - **:w** + - ``w0`` + * - :dp:`fls_z8m45i9xqkct` + - AArch64 + - ``reg`` + - **:x** + - ``x0`` + * - :dp:`fls_adaavz3olha3` + - AArch64 + - ``vreg`` + - none + - ``v0`` + * - :dp:`fls_u5dzca5f2pfm` + - AArch64 + - ``vreg`` + - **:b** + - ``b0`` + * - :dp:`fls_6542a2hi5yhc` + - AArch64 + - ``vreg`` + - **:d** + - ``d0`` + * - :dp:`fls_94thqwabspw2` + - AArch64 + - ``vreg`` + - **:h** + - ``h0`` + * - :dp:`fls_xhp8xu8xvvgd` + - AArch64 + - ``vreg`` + - **:q** + - ``q0`` + * - :dp:`fls_g0p2ebuffnxb` + - AArch64 + - ``vreg`` + - **:s** + - ``s0`` + * - :dp:`fls_d0e2weni8q87` + - AArch64 + - ``vreg`` + - **:v** + - ``v0`` + * - :dp:`fls_bq3p4k42tzh8` + - ARM + - ``dreg`` + - none + - ``d0`` + * - :dp:`fls_l5mkfdot97fz` + - ARM + - ``qreg`` + - none + - ``q0`` + * - :dp:`fls_sarl1hoq0lco` + - ARM + - ``qreg`` + - **:e**, **:f** + - ``d0``, ``d1`` + * - :dp:`fls_f4q9a0jrs4ek` + - ARM + - ``reg`` + - none + - ``r0`` + * - :dp:`fls_w0hn6vkpuvpc` + - ARM + - ``sreg`` + - none + - ``s0`` + * - :dp:`fls_a7bvkyh5otx5` + - RISC-V + - ``freg`` + - none + - ``f0`` + * - :dp:`fls_klthi4cczkem` + - RISC-V + - ``reg`` + - none + - ``x1`` + * - :dp:`fls_pizgnxvcnj46` + - x86 + - ``kreg`` + - none + - ``k1`` + * - :dp:`fls_pvzfiuxka6wg` + - x86 + - ``reg`` + - **:e** + - ``eax`` + * - :dp:`fls_pf8yj3m81wk4` + - x86 + - ``reg`` + - **:x** + - ``ax`` + * - :dp:`fls_2bf3ady2idq1` + - x86 + - ``reg_abcd`` + - **:h** + - ``ah`` + * - :dp:`fls_x1se4r75v58o` + - x86 + - ``reg_byte`` + - none + - ``al`` / ``ah`` + * - :dp:`fls_rgovn5r3caif` + - x86 + - ``xmm_reg`` + - none + - ``xmm0`` + * - :dp:`fls_faxm8xkhruvz` + - x86 + - ``ymm_reg`` + - none + - ``ymm0`` + * - :dp:`fls_x1kkkvugpkyd` + - x86 + - ``zmm_reg`` + - none + - ``zmm0`` + * - :dp:`fls_uonqmj16oqxe` + - x86 + - ``xmm_reg``, ``ymm_reg``, ``zmm_reg`` + - **:x** + - ``xmm0`` + * - :dp:`fls_ydhwlp56vmrz` + - x86 + - ``xmm_reg``, ``ymm_reg``, ``zmm_reg`` + - **:y** + - ``ymm0`` + * - :dp:`fls_yolqzfqbfjoh` + - x86 + - ``xmm_reg``, ``ymm_reg``, ``zmm_reg`` + - **:z** + - ``zmm0`` + * - :dp:`fls_ojzzhoed6t9l` + - x86-32 + - ``reg`` + - none + - ``eax`` + * - :dp:`fls_gw56ok8llid3` + - x86-32 + - ``reg_abcd`` + - **:l** + - ``al`` + * - :dp:`fls_ry7qoosmjrev` + - x86-64 + - ``reg`` + - none + - ``rax`` + * - :dp:`fls_i0ax45x2wskd` + - x86-64 + - ``reg`` + - **:l** + - ``al`` + * - :dp:`fls_op4dx1rqwhsf` + - x86-64 + - ``reg`` + - **:r** + - ``rax`` + +.. rubric:: Examples + +.. code-block:: rust + + let mut left_value: i32 = 1; + let right_value: i32 = 2; + + unsafe { + asm!( + "add {left}:e {right}:x", + left = inout(reg) left_value, + right = in(reg) right_value, + ); + } + +.. _fls_6momhvgx4w21: + +Directive Support +~~~~~~~~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_4tfod2vgz2m6` +An :t:`assembly directive` is a request to the assembler to perform a +particular action or change a setting. + +:dp:`fls_3b0ab1nlo641` +If an :t:`assembly code block` contains stateful :t:`[assembly directive]s` +that modify how subsequent assembly code is processed, then the +:t:`assembly code block` shall undo the effects of the stateful +:t:`[assembly directive]s` before the :t:`assembly code block` is completed. + +:dp:`fls_caqznttql5p8` +The common :t:`[assembly directive]s` are as follows: + +#. :dp:`fls_bcheqswo7a1` + ``.2byte``, ``.4byte``, ``.8byte`` + +#. :dp:`fls_qxcl999rdwam` + ``.align``, ``.ascii``, ``.asciz``, ``.alt_entry`` + +#. :dp:`fls_2yi7kjnhkfme` + ``.balign``, ``.balignl``, ``.balignw``, ``.balign``, ``.balignl``, + ``.balignw``, ``.bss``, ``.byte`` + +#. :dp:`fls_q0jp60aj81nv` + ``.comm`` + +#. :dp:`fls_akny3esj88yy` + ``.data``, ``.def``, ``.double`` + +#. :dp:`fls_9jajt7jn9cxk` + ``.endef``, ``.equ``, ``.equiv``, ``.eqv`` + +#. :dp:`fls_i7dr87fyrei8` + ``.fill``, ``.float`` + +#. :dp:`fls_rjzgpxt8z8x` + ``.globl``, ``.global`` + +#. :dp:`fls_iqrjkvgae5k` + ``.inst`` + +#. :dp:`fls_tzb5diegx3d5` + ``.lcomm``, ``.long`` + +#. :dp:`fls_82nia9oagat` + ``.octa``, ``.option`` + +#. :dp:`fls_qg6wt4plwnw6` + ``.private_extern``, ``.p2align``, ``.pushsection``, ``.popsection`` + +#. :dp:`fls_8ci8ukk25nz3` + ``.quad`` + +#. :dp:`fls_ysbaz052rjg4` + ``.scl``, ``.section``, ``.set``, ``.short``, ``.size``, ``.skip``, + ``.sleb128``, ``.space``, ``.string`` + +#. :dp:`fls_lbazk0g9r350` + ``.text``, ``.type`` + +#. :dp:`fls_2dui79hn30o7` + ``.uleb128`` + +#. :dp:`fls_qzwyjj6xxwc2` + ``.word`` + +:dp:`fls_9flwdfh5crsk` +The following :t:`[assembly directive]s` are relevant on ELF targets that +support DWARF unwind info. + +#. :dp:`fls_u1c09ssrllil` + ``.cfi_adjust_cfa_offset`` + +#. :dp:`fls_tx58qbvh3jz3` + ``.cfi_def_cfa``, ``.cfi_def_cfa_offset``, ``.cfi_def_cfa_register`` + +#. :dp:`fls_anwe21ypcjws` + ``.cfi_endproc``, ``.cfi_escape`` + +#. :dp:`fls_43rchr5ffxsv` + ``.cfi_lsda`` + +#. :dp:`fls_rscmbo3kbrsm` + ``.cfi_offset`` + +#. :dp:`fls_hnol9houwn1f` + ``.cfi_personality`` + +#. :dp:`fls_es1lo6siw702` + ``.cfi_register``, ``.cfi_rel_offset``, ``.cfi_remember_state``, + ``.cfi_restore``, ``.cfi_restore_state``, ``.cfi_return_column`` + +#. :dp:`fls_xlk7kd26j2rm` + ``.cfi_same_value``, ``.cfi_sections``, ``.cfi_signal_frame``, + ``.cfi_startproc`` + +#. :dp:`fls_x9kaplz9g1z9` + ``.cfi_undefined`` + +#. :dp:`fls_928ermlgde11` + ``.cfi_window_save`` + +:dp:`fls_49bkqmxwl0d2` +The following :t:`[assembly directive]s` are relevant on targets with +structured exception handling. + +#. :dp:`fls_xlvkpe975b58` + ``.seh_endproc``, ``.seh_endprologue`` + +#. :dp:`fls_k3sy1ph0kvy` + ``.seh_proc``, ``.seh_pushreg`` + +#. :dp:`fls_ku6noqc0poxq` + ``.seh_savereg``, ``.seh_setframe``, ``.seh_stackalloc`` + +:dp:`fls_hny0patop479` +The following :t:`[assembly directive]s` are relevant on ARM targets. + +#. :dp:`fls_jm61m237cww` + ``.code`` + +#. :dp:`fls_wvje5eua16xm` + ``.even`` + +#. :dp:`fls_frxn2f6v584d` + ``.fnstart``, ``.fnend`` + +#. :dp:`fls_x6azw3td92b3` + ``.movsp`` + +#. :dp:`fls_twerrggztho5` + ``.save`` + +#. :dp:`fls_s4cbxrc4ijyp` + ``.thumb``, ``.thumb_func`` + +:dp:`fls_2hdsgqko25l5` +The following :t:`[assembly directive]s` are relevant on x86 targets. + +#. :dp:`fls_5tzwwove8mgq` + ``.code16``, ``.code32``, ``.code64`` + +#. :dp:`fls_e6nvq9xygvh` + ``.nops`` + +.. _fls_a3joqzqp1v9d: + +ABI Clobbers +------------ + +.. rubric:: Syntax + +.. syntax:: + + AbiClobber ::= + $$clobber_abi$$ $$($$ AbiKindList $$)$$ + + AbiKindList ::= + AbiKind ($$,$$ AbiKind)* $$,$$? + +.. rubric:: Legality Rules + +:dp:`fls_xa11ggykg0sh` +An :t:`ABI clobber` is an argument to :t:`macro` :std:`core::arch::asm` which +indicates that the :t:`[value]s` of selected :t:`[register]s` might be +overwritten during the :t:`execution` of an :t:`assembly code block`. + +:dp:`fls_e43sj9inlsym` +Multiple :t:`[ABI clobber]s` may be specified for an :t:`assembly code block`. +Clobber constraints are applied for all unique :t:`[register]s` in the union of +all specified :t:`[ABI]s`. + +:dp:`fls_gq2khxl1hixg` +The effects of an :t:`ABI clobber` depend on the :t:`ABI` in effect, as follows: + +.. list-table:: + + * - :dp:`fls_o2qn842y0vvc` + - **Architecture** + - :s:`AbiKind` + - **Clobbered registers** + * - :dp:`fls_msysjt5m2941` + - AArch64 + - ``"C"``, ``"efiapi"``, ``"system"`` + - ``ffr``, ``p[0-15]``, ``v[0-31]``, ``x[0-17]``, ``x18`` (when not + reserved), ``x30`` + * - :dp:`fls_vyhl5po6pl4x` + - ARM + - ``"aapcs"``, ``"C"``, ``"efiapi"``, ``"system"`` + - ``d[0-7]``, ``d[16-31]``, ``r[0-3]``, ``r12``, ``r14``, ``s[0-15]`` + * - :dp:`fls_d1be48ik4a8` + - RISC-V + - ``"C"``, ``"efiapi"``, ``"system"`` + - ``f[0-7]``, ``f[10-17]``, ``f[28-31]``, ``v[0-31]``, ``x1``, ``x[5-7]``, + ``x[10-17]``, ``x[28-31]`` + * - :dp:`fls_49pus6qqmf72` + - x86-32 + - ``"C"``, ``"cdecl"``, ``"efiapi"``, ``"fastcall"``, ``"stdcall"``, + ``"system"`` + - ``ax``, ``cx``, ``dx``, ``k[0-7]``, ``mm[0-7]``, ``st([0-7])``, + ``xmm[0-7]`` + * - :dp:`fls_tc727ietnawz` + - x86-64 + - ``"C"``, ``"efiapi"``, ``"system"`` (on Windows), ``"win64"`` + - ``ax``, ``cx``, ``dx``, ``k[0-7]``, ``mm[0-7]``, ``st([0-7])``, + ``r[8-11]``, ``tmm[0-7]``, ``xmm[0-31]`` + * - :dp:`fls_6jgsmfvww667` + - x86-64 + - ``"C"``, ``"system"`` (on non-Windows), ``"sysv64"`` + - ``ax``, ``cx``, ``di``, ``dx``, ``k[0-7]``, ``mm[0-7]``, ``r[8-11]``, + ``si``, ``st([0-7])``, ``tmm[0-7]``, ``xmm[0-31]`` + +:dp:`fls_gvzoq5mqwjx` +On x86 architectures, the x87 floating-point :t:`register` stack shall remain +unchanged unless all ``st(``\ [``0``-``7``]\ ``)`` :t:`[register]s` have been +clobbered. + +:dp:`fls_bnwzzpcmiero` +On x86 architectures, if all x87 :t:`[register]s` are clobbered, then the x87 +:t:`register` stack is presumed empty upon entry of an :t:`assembly code block`. +The x87 :t:`register` stack shall be empty on exit from an +:t:`assembly code block`. + +.. rubric:: Examples + +.. code-block:: rust + + clobber_abi("C", "system") + +.. _fls_ylli0ortyegk: + +Assembly Options +---------------- + +.. rubric:: Syntax + +.. syntax:: + + AssemblyOption ::= + $$options$$ $$($$ OptionList $$)$$ + + OptionList ::= + Option ($$,$$ Option)* $$,$$? + + Option ::= + $$att_syntax$$ + | $$nomem$$ + | $$noreturn$$ + | $$nostack$$ + | $$preserves_flags$$ + | $$pure$$ + | $$raw$$ + | $$readonly$$ + +.. rubric:: Legality Rules + +:dp:`fls_i21l6t3vn95t` +An :t:`assembly option` is used to specify a characteristic of or a restriction +on the related :t:`assembly code block`. + +:dp:`fls_g09kmp2a04g9` +:t:`Assembly option` ``att_syntax`` is applicable only to x86 architectures +and causes the assembler to use the ``.att_syntax`` prefix mode which prefixes +:t:`[register]s` with ``%``. + +:dp:`fls_quer8ltdwnf2` +:t:`Assembly option` ``nomem`` indicates that the :t:`assembly code block` does +not read or write memory. + +:dp:`fls_5wpgqpcm1v40` +:t:`Assembly option` ``noreturn`` indicates that the :t:`assembly code block` +does not return, preventing the :t:`dropping` of :t:`[variable]s`. + +:dp:`fls_ejuap3kkvs57` +:t:`Assembly option` ``nostack`` indicates that the :t:`assembly code block` +does not push on the stack, or write to the stack red-zone (if supported). + +:dp:`fls_1nopbk5bkeqm` +If :t:`assembly option` ``nostack`` is not in effect, then an +:t:`assembly code block` is allowed to use stack space below the stack pointer. +Upon entry of an :t:`assembly code block`, the stack pointer is suitably +aligned according to the target :t:`ABI` for :t:`[call expression]s`. The stack +pointer shall be restored to its original :t:`value` on exit from the +:t:`assembly code block`. + +:dp:`fls_e5b1mp3byll2` +:t:`Assembly option` ``preserves_flags`` indicates that the +:t:`assembly code block` does not modify the flags :t:`register`. + +:dp:`fls_2gf4wemrzaae` +If :t:`assembly option` ``preserves_flags`` is in effect, then the :t:`[value]s` +of the following flags :t:`[register]s` shall be restored on exit from an +:t:`assembly code block`: + +.. list-table:: + + * - :dp:`fls_5ebifab8dhy` + - **Architecture** + - **Flag registers** + * - :dp:`fls_ae2x4ho3i0zr` + - AArch64 + - Floating-point status ``FPRS`` :t:`register` + + Condition flags ``NZCV`` :t:`register` + * - :dp:`fls_188ib65a1z36` + - ARM + - Condition flags ``C``, ``N``, ``V``, ``Z`` in :t:`register` ``CPSR`` + + Condition flags ``C``, ``N``, ``V``, ``Z`` in :t:`register` ``FPSCR`` + + Floating-point exception flags ``DZC``, ``IDC``, ``IOC``, ``IXC``, + ``OFC``, ``UFC`` in :t:`register` ``FPSCR`` + + Greater than or equal flag ``GE`` in :t:`register` ``CPRS`` + + Saturation flag ``Q`` in :t:`register` ``CPRS`` + + Saturation flag ``QC`` in :t:`register` ``FPSCR`` + * - :dp:`fls_ia3cg424d601` + - RISC-V + - Floating-point exception flags ``fflags`` in :t:`register` ``fcsr`` + + Vector extension state ``vcsr``, ``vl``, ``vtype`` + * - :dp:`fls_j09bo53i5n69` + - x86 + - Status flags ``AF``, ``CF``, ``OF``, ``PF``, ``SF``, ``ZF`` in + :t:`register` ``EFLAGS`` + + Floating-point exception flags ``DE``, ``IE``, ``OE``, ``PE``, ``UE``, + ``ZE`` in :t:`register` ``MXCSR`` + + Floating-point status word + +:dp:`fls_eka6chp3hapa` +:t:`Assembly option` ``pure`` indicates that the :t:`assembly code block` has no +side effects, and its outputs depend only on direct inputs. + +:dp:`fls_nszx1gllufi2` +:t:`Assembly option` ``raw`` causes :t:`[assembly instruction]s` to be parsed +raw, without any special handling of :t:`[register parameter]s`. + +:dp:`fls_d169ppna563c` +:t:`Assembly option` ``readonly`` indicates that the :t:`assembly code block` +does not write memory. + +:dp:`fls_h8549stij7pj` +:t:`[Assembly option]s` ``att_syntax`` and ``raw`` shall appear only in +:s:`GlobalAsmArguments`. + +:dp:`fls_2drikpht6md9` +:t:`[Assembly option]s` ``nomem`` and ``readonly`` shall not be used together. + +:dp:`fls_x66j1cn6zi6p` +:t:`Assembly option` ``noreturn`` shall not be specified on an +:t:`assembly code block` that has :t:`[output register]s`. + +:dp:`fls_ikwbu1ho33is` +:t:`Assembly option` ``pure`` shall appear with either :t:`assembly option` +``nomem`` or :t:`assembly option` ``readonly``. + +:dp:`fls_nf0h9crdzhfg` +:t:`Assembly option` ``pure`` shall not be specified on an +:t:`assembly code block` that either lacks :t:`[output register]s` or all +:t:`[register expression]s` of :t:`[output register]s` are +:t:`[underscore expression]s`. + +.. rubric:: Undefined Behavior + +:dp:`fls_wh0wasawjj5s` +It is undefined behavior if an :t:`assembly code block` subject to +:t:`assembly option` ``pure`` has side effects other than its direct outputs. + +:dp:`fls_s0ivlbjefh1u` +It is undefined behavior if control reaches the end of an +:t:`assembly code block` subject to :t:`assembly option` ``noreturn``. + +.. rubric:: Examples + +.. code-block:: rust + + options(nomem, pure) + +.. _fls_qezwyridmjob: + +Macros asm and global_asm +------------------------- + +.. rubric:: Syntax + +.. syntax:: + + AsmArguments ::= + $$($$ AssemblyCodeBlock ($$,$$ RegisterArgument)* ($$,$$ AbiClobber)* ($$,$$ AssemblyOption)* $$,$$? $$)$$ + + GlobalAsmArguments ::= + $$($$ AssemblyCodeBlock ($$,$$ RegisterArgument)* ($$,$$ AssemblyOption)* $$,$$? $$)$$ + +.. rubric:: Legality Rules + +:dp:`fls_ecteot716j8j` +:t:`[Assembly code block]s` are embedded within Rust source code using +:t:`[macro]s` :std:`core::arch::asm` and :std:`core::arch::global_asm`. + +:dp:`fls_1ikzov7cxic1` +When invoking :t:`macro` :std:`core::arch::asm`, the :s:`DelimitedTokenTree` of +the related :t:`macro invocation` shall follow the syntax of :s:`AsmArguments`. + +:dp:`fls_4lb6yh12w1cv` +Invoking :t:`macro` :std:`core::arch::asm` causes the related +:t:`assembly code block` to be integrated into the generated assembly of the +:t:`function` where the :t:`macro invocation` took place. A tool is free to +encapsulate the :t:`assembly code block` in a separate :t:`function` and +generate a :t:`call expression` to it. + +:dp:`fls_tgzga1lanfuo` +When invoking :t:`macro` :std:`core::arch::global_asm`, the +:s:`DelimitedTokenTree` of the related :t:`macro invocation` shall follow the +syntax of :s:`GlobalAsmArguments`. + +:dp:`fls_nfkbvs86d6kz` +Invoking :t:`macro` :std:`core::arch::global_asm` causes the related +:t:`assembly code block` to be emitted outside the :t:`function` where the +:t:`macro invocation` took place. + +.. rubric:: Dynamic Semantics + +:dp:`fls_98vyqh9bzigx` +The :t:`evaluation` of a :t:`macro invocation` to :t:`macro` +:std:`core::arch::asm` or :t:`macro` :std:`core::arch::global_asm` evaluates +:t:`[register argument]s` in declarative order. + +:dp:`fls_ppnj8bcncdp9` +The :t:`execution` of an :t:`assembly code block` produced by +:t:`inline assembly` proceeds as follows: + +#. :dp:`fls_wmay1vd8u0da` + All :t:`[input register]s` are initialized to the :t:`[value]s` provided by + the respective :t:`[register argument]s`, in an undefined order. + +#. :dp:`fls_e613hpr50t9` + The :t:`[assembly instruction]s` of the :t:`assembly code block` are executed + in declarative order. + +#. :dp:`fls_bic6iyd1nvfm` + The :t:`[value]s` of all :t:`[output register]s` are assigned to the + :t:`[register expression]s` provided by the respective + :t:`[register argument]s`, in an undefined order. + +.. rubric:: Examples + +.. code-block:: rust + + fn asm_example() -> u32 { + let basepri; + unsafe { + asm!(" + mrs {}, BASEPRI + ", + out(reg) basepri, + options(nomem, nostack, preserves_flags)) + } + basepri + } + + global_asm!(" + do_nothing: + push {r7, lr} + mov r7, sp + pop {r7, pc} + ", + options(raw) + ); + + fn global_asm_example() { + extern "C" { + fn do_nothing(); + } + + unsafe { do_nothing() } + } diff --git a/_sources/items.rst.txt b/_sources/items.rst.txt new file mode 100644 index 00000000..b037c22b --- /dev/null +++ b/_sources/items.rst.txt @@ -0,0 +1,51 @@ +.. SPDX-License-Identifier: MIT OR Apache-2.0 + SPDX-FileCopyrightText: The Ferrocene Developers + +.. default-domain:: spec + +.. _fls_wb86edg02t6a: + +Items +===== + +.. rubric:: Syntax + +.. syntax:: + + Item ::= + OuterAttributeOrDoc* (ItemWithVisibility | MacroItem) + + ItemWithVisibility ::= + VisibilityModifier? ( + ConstantDeclaration + | EnumDeclaration + | ExternalBlock + | ExternalCrateImport + | FunctionDeclaration + | Implementation + | ModuleDeclaration + | StaticDeclaration + | StructDeclaration + | TraitDeclaration + | TypeAliasDeclaration + | UnionDeclaration + | UseImport + ) + + MacroItem ::= + MacroRulesDeclaration + | TerminatedMacroInvocation + +.. rubric:: Legality Rules + +:dp:`fls_s3b1cba9lfj5` +The :t:`macro expansion` of a :t:`terminated macro invocation` is treated as +zero or more :t:`[item]s` if the :t:`terminated macro invocation` appears as +an :t:`item`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_hil5f7y4xdhe` +:t:`Elaboration` is the process by which a :t:`declaration` achieves its runtime +effects. + diff --git a/_sources/lexical-elements.rst.txt b/_sources/lexical-elements.rst.txt new file mode 100644 index 00000000..646c4d6e --- /dev/null +++ b/_sources/lexical-elements.rst.txt @@ -0,0 +1,1449 @@ +.. SPDX-License-Identifier: MIT OR Apache-2.0 + SPDX-FileCopyrightText: The Ferrocene Developers + +.. default-domain:: spec + +.. _fls_411up5z0b6n6: + +Lexical Elements +================ + +.. informational-section:: + +:dp:`fls_pqwpf87b84tr` +The text of a Rust program consists of :t:`[module]s` organized into :t:`[source +file]s`. The text of a :t:`source file` is a sequence of :t:`[lexical +element]s`, each composed of characters, whose rules are presented in this +chapter. + +.. _fls_2i089jvv8j5g: + +Character Set +------------- + +:dp:`fls_itcth8292ud6` +The program text of a Rust program is written using the :t:`Unicode` character +set. + +.. rubric:: Syntax + +:dp:`fls_vfx8byq5zo8t` +A character is defined by this document for each cell in the coding space +described by :t:`Unicode`, regardless of whether or not :t:`Unicode` allocates a +character to that cell. + +:dp:`fls_pvslhm3chtlb` +A :dt:`whitespace character` is one of the following characters: + +* :dp:`fls_a5ec9cpn4sc8` + 0x09 (horizontal tabulation) + +* :dp:`fls_dgyrj49y3c7c` + 0x0A (new line) + +* :dp:`fls_5ocmngyur7by` + 0x0B (vertical tabulation) + +* :dp:`fls_1aj0rgi9kpib` + 0x0C (form feed) + +* :dp:`fls_bfzdxsbq2c2q` + 0x0D (carriage return) + +* :dp:`fls_vw0kq2y1o63m` + 0x20 (space) + +* :dp:`fls_ao296bmamwzh` + 0x85 (next line) + +* :dp:`fls_6kymhq7embdh` + 0x200E (left-to-right mark) + +* :dp:`fls_8mxmrxvhn3by` + 0x200F (right-to-left mark) + +* :dp:`fls_bc6D1ATvmJJr` + 0x2028 (line separator) + +* :dp:`fls_zfs15iel08y0` + 0x2029 (paragraph separator) + +:dp:`fls_7eifv4ksunu1` +A :t:`whitespace string` is a string that consists of one or more +:t:`[whitespace character]s`. + +:dp:`fls_PIDKEm8GiLNL` +An :ds:`AsciiCharacter` is any :t:`Unicode` character in the range 0x00 - 0x7F, both inclusive. + +.. rubric:: Legality Rules + +:dp:`fls_2brw13n9ldgy` +The coded representation of a character is tool-defined. + +.. _fls_fgnllgz5k3e6: + +Lexical Elements, Separators, and Punctuation +--------------------------------------------- + +.. rubric:: Syntax + +.. syntax:: + + LexicalElement ::= + Comment + | Identifier + | Keyword + | Literal + | Punctuation + + Punctuation ::= + Delimiter + | $$+$$ + | $$-$$ + | $$*$$ + | $$/$$ + | $$%$$ + | $$^$$ + | $$!$$ + | $$&$$ + | $$|$$ + | $$&&$$ + | $$||$$ + | $$<<$$ + | $$>>$$ + | $$+=$$ + | $$-=$$ + | $$*=$$ + | $$/=$$ + | $$%=$$ + | $$^=$$ + | $$&=$$ + | $$|=$$ + | $$<<=$$ + | $$>>=$$ + | $$=$$ + | $$==$$ + | $$!=$$ + | $$>$$ + | $$<$$ + | $$>=$$ + | $$<=$$ + | $$@$$ + | $$_$$ + | $$.$$ + | $$..$$ + | $$...$$ + | $$..=$$ + | $$,$$ + | $$;$$ + | $$:$$ + | $$::$$ + | $$->$$ + | $$=>$$ + | $$#$$ + | $$$$$ + | $$?$$ + + Delimiter ::= + $${$$ + | $$}$$ + | $$[$$ + | $$]$$ + | $$($$ + | $$)$$ + +.. rubric:: Legality Rules + +:dp:`fls_d4nvxsvxj537` +The text of a :t:`source file` is a sequence of separate :t:`[lexical +element]s`. The meaning of a program depends only on the particular sequence of +:t:`[lexical element]s`, excluding :t:`non-[doc comment]s`. + +:dp:`fls_a1zylpqha73x` +A :t:`lexical element` is the most basic syntactic element in program text. + +:dp:`fls_jy6wifn5r2bu` +The text of a :t:`source file` is divided into :t:`[line]s`. + +:dp:`fls_efdfq9nhpmp5` +A :t:`line` is a sequence of zero or more characters followed by an end of +line. + +:dp:`fls_go25sisi5fdp` +The representation of an end of line is tool-defined. + +:dp:`fls_a6t53o8h1vdk` +A :t:`separator` is a character or a string that separates adjacent :t:`[lexical +element]s`. A :t:`whitespace string` is a :t:`separator`. + +:dp:`fls_8fv63w6f4udl` +A :dt:`simple punctuator` is one of the following special characters: + +.. syntax:: + + $$+$$ + $$-$$ + $$*$$ + $$/$$ + $$%$$ + $$^$$ + $$!$$ + $$&$$ + $$|$$ + $$=$$ + $$>$$ + $$<$$ + $$@$$ + $$_$$ + $$.$$ + $$,$$ + $$;$$ + $$:$$ + $$#$$ + $$$$$ + $$?$$ + $${$$ + $$}$$ + $$[$$ + $$]$$ + $$($$ + $$)$$ + +:dp:`fls_es0tz1q9cmoo` +A :dt:`compound punctuator` is one of the following two or more adjacent special +characters: + +.. syntax:: + + $$&&$$ + $$||$$ + $$<<$$ + $$>>$$ + $$+=$$ + $$-=$$ + $$*=$$ + $$/=$$ + $$%=$$ + $$^=$$ + $$&=$$ + $$|=$$ + $$<<=$$ + $$>>=$$ + $$==$$ + $$!=$$ + $$>=$$ + $$<=$$ + $$..$$ + $$...$$ + $$..=$$ + $$::$$ + $$->$$ + $$=>$$ + +:dp:`fls_vm86olkeecer` +The following :t:`[compound punctuator]s` are :dt:`[flexible compound +punctuator]s`. + +.. syntax:: + + $$&&$$ + $$||$$ + $$<<$$ + $$>>$$ + +:dp:`fls_5zxdgxy8tjrq` +A :t:`flexible compound punctuator` may be treated as a single :t:`compound +punctuator` or two adjacent :t:`[simple punctuator]s`. + +:dp:`fls_x89vkq9rwlyt` +Each of the special characters listed for single character :t:`punctuator` +is a :t:`simple punctuator` except if this character is used as a character +of a :t:`compound punctuator`, or a character of a :t:`character literal`, a +:t:`comment`, a :t:`numeric literal`, or a :t:`string literal`. + +:dp:`fls_bo3xh8r60ji1` +The following names are used when referring to :t:`[punctuator]s`: + +.. list-table:: + + * - :dp:`fls_sslkjuxjnteu` + - **punctuator** + - **name** + * - :dp:`fls_9g1godm0jp0z` + - ``+`` + - Plus + * - :dp:`fls_6oith9q0soot` + - ``-`` + - Minus + * - :dp:`fls_1dledwdc8fa6` + - ``*`` + - Star + * - :dp:`fls_lunw7ucj5ius` + - ``/`` + - Slash + * - :dp:`fls_a4oiuhz95uiv` + - ``%`` + - Percent + * - :dp:`fls_137x9s6guj6h` + - ``^`` + - Caret + * - :dp:`fls_y0wdb09cpp1w` + - ``!`` + - Not + * - :dp:`fls_48b7mepiuupz` + - ``&`` + - And + * - :dp:`fls_g9h9bsvrsmk1` + - ``|`` + - Or + * - :dp:`fls_fxne2xd0zzzo` + - ``&&`` + - And and, lazy boolean and + * - :dp:`fls_il7zv5x3aw0q` + - ``||`` + - Or or, lazy boolean or + * - :dp:`fls_ovcs1qm86ss9` + - ``<<`` + - Shift left + * - :dp:`fls_wmhlvjm0b0j9` + - ``>>`` + - Shift right + * - :dp:`fls_gg42klb2gn9v` + - ``+=`` + - Plus equals + * - :dp:`fls_icahptg5enj4` + - ``-=`` + - Minus equals + * - :dp:`fls_baawlxoi7yd4` + - ``*=`` + - Star equals + * - :dp:`fls_m7gt3wfbtm81` + - ``/=`` + - Slash equals + * - :dp:`fls_6ewl7gn3sjm2` + - ``%=`` + - Percent equals + * - :dp:`fls_nb8q6oq8txv3` + - ``^=`` + - Caret equals + * - :dp:`fls_4nnky9ansr9j` + - ``&=`` + - And equals + * - :dp:`fls_h1gvudehmnn9` + - ``|=`` + - Or equals + * - :dp:`fls_6yj1c3lh691s` + - ``<<=`` + - Shift left equals + * - :dp:`fls_2d3oo9nou9vv` + - ``>>=`` + - Shift right equals + * - :dp:`fls_st2vhcy14ud9` + - ``=`` + - Equals + * - :dp:`fls_9gdyw71dl25` + - ``==`` + - Equals equals, logical equality + * - :dp:`fls_sp8ufz28l9w3` + - ``!=`` + - Not equals + * - :dp:`fls_7kdr8biodxvz` + - ``>`` + - Greater than + * - :dp:`fls_pf92l9bkte2u` + - ``<`` + - Less than + * - :dp:`fls_ui40thspgyav` + - ``>=`` + - Greater than equals, greater than or equal to + * - :dp:`fls_h33qzachmimc` + - ``<=`` + - Less than equals, less than or equal to + * - :dp:`fls_13ud1clgdnyv` + - ``@`` + - At + * - :dp:`fls_7fosi8l2ktz2` + - ``_`` + - Underscore + * - :dp:`fls_9qitp6r75ia6` + - ``.`` + - Dot + * - :dp:`fls_g0umao9roi2l` + - ``..`` + - Dot dot, exclusive range + * - :dp:`fls_lamrpdpko48` + - ``...`` + - Dot dot dot, ellipsis + * - :dp:`fls_s4lte9onbmqb` + - ``..=`` + - Dot dot equals, inclusive range + * - :dp:`fls_ywc297y8s0dt` + - ``,`` + - Comma + * - :dp:`fls_ijb0fws4gshu` + - ``;`` + - Semicolon + * - :dp:`fls_c25ur4xwbpk0` + - ``:`` + - Colon + * - :dp:`fls_9dd9479zzq30` + - ``::`` + - Colon colon, path separator + * - :dp:`fls_kwsu9d3ppv3f` + - ``->`` + - Right arrow + * - :dp:`fls_oh62j9unw4mg` + - ``=>`` + - Fat arrow, Hashrocket + * - :dp:`fls_g0tltt8qmbum` + - ``#`` + - Pound + * - :dp:`fls_ounkw8b8tk4f` + - ``$`` + - Dollar sign + * - :dp:`fls_8ywv8gftsfr1` + - ``?`` + - Question mark + * - :dp:`fls_hsn6zc29ifyx` + - ``{`` + - Left curly brace + * - :dp:`fls_o3amqe3ca82d` + - ``}`` + - Right curly brace + * - :dp:`fls_lkevfpj7sqd3` + - ``[`` + - Left square bracket + * - :dp:`fls_ff05ge2189z` + - ``]`` + - Right square bracket + * - :dp:`fls_nplkudde6oxf` + - ``(`` + - Left parenthesis + * - :dp:`fls_qwnrklmbz0b` + - ``)`` + - Right parenthesis + +.. _fls_21vnag69kbwe: + +Identifiers +----------- + +.. rubric:: Syntax + +.. syntax:: + + Identifier ::= + NonKeywordIdentifier + | RawIdentifier + + IdentifierList ::= + Identifier ($$,$$ Identifier)* $$,$$? + + NonKeywordIdentifier ::= + PureIdentifier + | WeakKeyword + + RawIdentifier ::= + $$r#$$ (PureIdentifier | RawIdentifierKeyword) + + PureIdentifier ::= + XID_Start XID_Continue* + | $$_$$ XID_Continue+ + + IdentifierOrUnderscore ::= + Identifier + | $$_$$ + + Renaming ::= + $$as$$ IdentifierOrUnderscore + +:dp:`fls_ls7ymvgd5kfa` +A :ds:`RawIdentifierKeyword` is any :t:`keyword` in category :s:`Keyword`, +except ``crate``, ``self``, ``Self``, and ``super``. + +:dp:`fls_aqj9aguczgqs` +:ds:`XID_Start` and :ds:`XID_Continue` are defined in Unicode Standard Annex +#31. + +.. rubric:: Legality Rules + +:dp:`fls_xsdmun5uqy4c` +An :t:`identifier` is a :t:`lexical element` that refers to a :t:`name`. + +:dp:`fls_ktnf6zkrdy45` +A :t:`pure identifier` is an :t:`identifier` that does not include :t:`[weak +keyword]s`. + +:dp:`fls_jpecw46eh061` +A :t:`pure identifier` shall follow the specification in Unicode Standard Annex +#31 for :t:`Unicode` version 13.0, with the following profile: + +* :dp:`fls_lwcflgezgs5z` + ``Start`` = ``XID_Start``, plus character 0x5F (low line). + +* :dp:`fls_uts0hywaw1rq` + ``Continue`` = ``XID_Continue`` + +* :dp:`fls_lju1avcn0pfd` + ``Medial`` = empty + +:dp:`fls_cs6cbw625np1` +Characters 0x200C (zero width non-joiner) and 0x200D (zero width joiner) shall +not appear in a :t:`pure identifier`. + +:dp:`fls_irwcldiotei2` +A :t:`pure identifier` shall be restricted to characters in category +:s:`AsciiCharacter` in the following contexts: + +* :dp:`fls_g72rxs2z5960` + :t:`[Crate import]s`, + +* :dp:`fls_w473jevurlt1` + :t:`[Name]s` of external :t:`[crate]s` represented in a :t:`simple path`, when + the :t:`simple path` starts with namespace qualifier ``::``, + +* :dp:`fls_mt1u4m3simhc` + :t:`[Name]s` of :t:`[outline module]s` that lack :t:`attribute` :c:`path`, + +* :dp:`fls_e2v58o233lvd` + :t:`[Name]s` of :t:`[item]s` that are subject to :t:`attribute` + :c:`no_mangle`, + +* :dp:`fls_op0lp1i065di` + :t:`[Name]s` of :t:`[item]s` within :t:`[external block]s`. + +:dp:`fls_vde7gev5rz4q` +:t:`[Identifier]s` are normalized using Normalization Form C as defined in +Unicode Standard Annex #15. + +:dp:`fls_j9yh8j8jgdeu` +Two :t:`[identifier]s` are considered the same if they consist of the same +sequence of characters after performing normalization. + +:dp:`fls_jejt5z8m1yew` +:t:`[Declarative macro]s` and :t:`[procedural macro]s` shall receive normalized +:t:`[identifier]s` in their input. + +.. rubric:: Examples + +.. code-block:: text + + foo + _identifier + r#true + Москва + 東京 + +.. _fls_nrkd5wpi64oo: + +Literals +-------- + +.. rubric:: Syntax + +.. syntax:: + + Literal ::= + BooleanLiteral + | ByteLiteral + | ByteStringLiteral + | CharacterLiteral + | NumericLiteral + | StringLiteral + +.. rubric:: Legality Rules + +:dp:`fls_s76un78zyd0j` +A :t:`literal` is a fixed :t:`value` in program text. + +.. _fls_2ifjqwnw03ms: + +Byte Literals +~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + ByteLiteral ::= + $$b'$$ ByteContent $$'$$ + + ByteContent ::= + ByteCharacter + | ByteEscape + + ByteEscape ::= + | $$\0$$ + | $$\"$$ + | $$\'$$ + | $$\t$$ + | $$\n$$ + | $$\r$$ + | $$\\$$ + | $$\x$$ OctalDigit HexadecimalDigit + +:dp:`fls_3hpzf12h60u4` +A :ds:`ByteCharacter` is any character in category :s:`AsciiCharacter` +except characters 0x09 (horizontal tabulation), 0x0A (new line), 0x0D (carriage +return), 0x27 (apostrophe), and 0x5C (reverse solidus). + +.. rubric:: Legality Rules + +:dp:`fls_q0qwr83frszx` +A :t:`byte literal` is a :t:`literal` that denotes a fixed byte :t:`value`. + +:dp:`fls_fggytrv5jvw0` +The :t:`type` of a :t:`byte literal` is :c:`u8`. + +.. rubric:: Examples + +.. code-block:: rust + + b'h' + b'\n' + b'\x1B' + +.. _fls_fqaffyrjob7v: + +Byte String Literals +~~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + ByteStringLiteral ::= + RawByteStringLiteral + | SimpleByteStringLiteral + +.. rubric:: Legality Rules + +:dp:`fls_t63zfv5JdUhj` +A :t:`byte string literal` is a :t:`literal` that consists of multiple +:s:`[AsciiCharacter]s`. + +:dp:`fls_Xd6LnfzMb7t7` +The character sequence 0x0D 0xCA (carriage return, new line) is replaced by 0xCA +(new line) inside of a :t:`byte string literal`. + +.. _fls_msbaxfC09VkK: + +Simple Byte String Literals +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + SimpleByteStringLiteral ::= + $$b"$$ SimpleByteStringContent* $$"$$ + + SimpleByteStringContent ::= + ByteEscape + | SimpleByteStringCharacter + | StringContinuation + +:dp:`fls_3dcqhuosqb84` +A :ds:`SimpleByteStringCharacter` is any character in category :s:`AsciiCharacter` +except characters 0x0D (carriage return), 0x22 (quotation mark), and 0x5C +(reverse solidus). + +.. rubric:: Legality Rules + +:dp:`fls_moe3zfx39ox2` +A :t:`simple byte string literal` is a :t:`byte string literal` that consists of multiple +:s:`[AsciiCharacter]s`. + +:dp:`fls_vffxb6arj9jf` +The :t:`type` of a :t:`simple byte string literal` of size ``N`` is ``&'static [u8; +N]``. + +.. rubric:: Examples + +.. code-block:: rust + + b"" + b"a\tb" + b"Multi\ + line" + +.. _fls_jps9102q0qfi: + +Raw Byte String Literals +^^^^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + RawByteStringLiteral ::= + $$br$$ RawByteStringContent + + RawByteStringContent ::= + NestedRawByteStringContent + | $$"$$ AsciiCharacter* $$"$$ + + NestedRawByteStringContent ::= + $$#$$ RawByteStringContent $$#$$ + +.. rubric:: Legality Rules + +:dp:`fls_yyw7nv651580` +A :t:`raw byte string literal` is a :t:`simple byte string literal` that does not +recognize :t:`[escaped character]s`. + +:dp:`fls_5ybq0euwya42` +The :t:`type` of a :t:`raw byte string literal` of size ``N`` is ``&'static +[u8; N]``. + +.. rubric:: Examples + +.. code-block:: rust + + br"" + br#""# + br##"left #"# right"## + +.. _fls_hv9jtycp0o1y: + +Numeric Literals +~~~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + NumericLiteral ::= + FloatLiteral + | IntegerLiteral + +.. rubric:: Legality Rules + +:dp:`fls_fqpqnku27v99` +A :t:`numeric literal` is a :t:`literal` that denotes a number. + +.. _fls_2ed4axpsy9u0: + +Integer Literals +^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + IntegerLiteral ::= + IntegerContent IntegerSuffix? + + IntegerContent ::= + BinaryLiteral + | DecimalLiteral + | HexadecimalLiteral + | OctalLiteral + + BinaryLiteral ::= + $$0b$$ BinaryDigitOrUnderscore* BinaryDigit BinaryDigitOrUnderscore* + + BinaryDigitOrUnderscore ::= + BinaryDigit + | $$_$$ + + BinaryDigit ::= + [$$0$$-$$1$$] + + DecimalLiteral ::= + DecimalDigit DecimalDigitOrUnderscore* + + DecimalDigitOrUnderscore ::= + DecimalDigit + | $$_$$ + + DecimalDigit ::= + [$$0$$-$$9$$] + + HexadecimalLiteral ::= + $$0x$$ HexadecimalDigitOrUnderscore* HexadecimalDigit HexadecimalDigitOrUnderscore* + + HexadecimalDigitOrUnderscore ::= + HexadecimalDigit + | $$_$$ + + HexadecimalDigit ::= + [$$0$$-$$9$$ $$a$$-$$f$$ $$A$$-$$F$$] + + OctalLiteral ::= + $$0o$$ OctalDigitOrUnderscore* OctalDigit OctalDigitOrUnderscore* + + OctalDigitOrUnderscore ::= + OctalDigit + | $$_$$ + + OctalDigit ::= + [$$0$$-$$7$$] + + IntegerSuffix ::= + SignedIntegerSuffix + | UnsignedIntegerSuffix + + SignedIntegerSuffix ::= + $$i8$$ + | $$i16$$ + | $$i32$$ + | $$i64$$ + | $$i128$$ + | $$isize$$ + + UnsignedIntegerSuffix ::= + $$u8$$ + | $$u16$$ + | $$u32$$ + | $$u64$$ + | $$u128$$ + | $$usize$$ + +.. rubric:: Legality Rules + +:dp:`fls_vkk2krfn93ry` +An :t:`integer literal` is a :t:`numeric literal` that denotes a whole number. + +:dp:`fls_nxqncu5yq4eu` +A :t:`binary literal` is an :t:`integer literal` in base 2. + +:dp:`fls_rn8xfd66yvst` +A :t:`decimal literal` is an :t:`integer literal` in base 10. + +:dp:`fls_2268lchxkzjp` +A :t:`hexadecimal literal` is an :t:`integer literal` in base 16. + +:dp:`fls_4v7awnutbpoe` +An :t:`octal literal` is an :t:`integer literal` in base 8. + +:dp:`fls_f1e29aj0sqvl` +An :t:`integer suffix` is a component of an :t:`integer literal` that specifies +an explicit :t:`integer type`. + +:dp:`fls_u83mffscqm6` +A :t:`suffixed integer` is an :t:`integer literal` with an :t:`integer suffix`. + +:dp:`fls_g10nuv14q4jn` +An :t:`unsuffixed integer` is an :t:`integer literal` without an :t:`integer +suffix`. + +:dp:`fls_hpkkvuj1z1ez` +The :t:`type` of a :t:`suffixed integer` is determined by its :t:`integer +suffix` as follows: + +* :dp:`fls_7yq2fep848ky` + Suffix ``i8`` specifies type :c:`i8`. + +* :dp:`fls_bzm8lwq3qlat` + Suffix ``i16`` specifies type :c:`i16`. + +* :dp:`fls_l4cx36brc1r5` + Suffix ``i32`` specifies type :c:`i32`. + +* :dp:`fls_wthchinwx996` + Suffix ``i64`` specifies type :c:`i64`. + +* :dp:`fls_7uoaet2pm3am` + Suffix ``i128`` specifies type :c:`i128`. + +* :dp:`fls_p4rw583o2qbi` + Suffix ``isize`` specifies type :c:`isize`. + +* :dp:`fls_xrv4q56lmoo3` + Suffix ``u8`` specifies type :c:`u8`. + +* :dp:`fls_66e3q5um6cwc` + Suffix ``u16`` specifies type :c:`u16`. + +* :dp:`fls_5asyk66y7c9d` + Suffix ``u32`` specifies type :c:`u32`. + +* :dp:`fls_76fifqjka0lx` + Suffix ``u64`` specifies type :c:`u64`. + +* :dp:`fls_fsaimo419gf0` + Suffix ``u128`` specifies type :c:`u128`. + +* :dp:`fls_hvzacbu7yiwc` + Suffix ``usize`` specifies type :c:`usize`. + +:dp:`fls_50qipwqi3arw` +The :t:`type` of an :t:`unsuffixed integer` is determined by :t:`type inference` +as follows: + +* :dp:`fls_idzhusp2l908` + If an :t:`integer type` can be uniquely determined from the surrounding + program context, then the :t:`unsuffixed integer` has that :t:`type`. + +* :dp:`fls_qqrqyc6uhol` + If the program context under-constrains the :t:`type`, then the :t:`inferred + type` is :c:`i32`. + +* :dp:`fls_pexi5jazthq6` + If the program context over-constrains the :t:`type`, then this is considered + a static error. + +.. rubric:: Examples + +.. code-block:: rust + + 0b0010_1110_u8 + 1___2_3 + 0x4D8a + 0o77_52i128 + +.. _fls_29tlg1vyqay2: + +Float Literals +^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + FloatLiteral ::= + DecimalLiteral $$.$$ + | DecimalLiteral FloatExponent + | DecimalLiteral $$.$$ DecimalLiteral FloatExponent? + | DecimalLiteral ($$.$$ DecimalLiteral)? FloatExponent? FloatSuffix + + FloatExponent ::= + ExponentLetter ExponentSign? ExponentMagnitude + + ExponentLetter ::= + $$e$$ + | $$E$$ + + ExponentSign ::= + $$+$$ + | $$-$$ + + ExponentMagnitude ::= + DecimalDigitOrUnderscore* DecimalDigit DecimalDigitOrUnderscore* + + FloatSuffix ::= + $$f32$$ + | $$f64$$ + +.. rubric:: Legality Rules + +:dp:`fls_rzi7oeqokd6e` +A :t:`float literal` is a :t:`numeric literal` that denotes a fractional number. + +:dp:`fls_2ru1zyrykd37` +A :t:`float suffix` is a component of a :t:`float literal` that specifies an +explicit :t:`floating-point type`. + +:dp:`fls_21mhnhplzam7` +A :t:`suffixed float` is a :t:`float literal` with a :t:`float suffix`. + +:dp:`fls_drqh80k0sfkb` +An :t:`unsuffixed float` is a :t:`float literal` without a :t:`float suffix`. + +:dp:`fls_cbs7j9pjpusw` +The :t:`type` of a :t:`suffixed float` is determined by the :t:`float suffix` +as follows: + +* :dp:`fls_b9w7teaw1f8f` + Suffix ``f32`` specifies type :c:`f32`. + +* :dp:`fls_eawxng4ndhv0` + Suffix ``f64`` specifies type :c:`f64`. + +:dp:`fls_yuhza1muo7o` +The :t:`type` of an :t:`unsuffixed float` is determined by :t:`type inference` +as follows: + +* :dp:`fls_4sxt1ct7fyen` + If a :t:`floating-point type` can be uniquely determined from the surrounding + program context, then the :t:`unsuffixed float` has that :t:`type`. + +* :dp:`fls_wa72rssp0jnt` + If the program context under-constrains the :t:`type`, then the :t:`inferred + type` is :c:`f64`. + +* :dp:`fls_x2cw7g8g56f8` + If the program context over-constrains the :t:`type`, then this is considered + a static error. + +.. rubric:: Examples + +.. code-block:: rust + + 45. + 8E+1_820 + 3.14e5 + 8_031.4_e-12f64 + +.. _fls_ypa86oqxhn9u: + +Character Literals +~~~~~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + CharacterLiteral ::= + $$'$$ CharacterContent $$'$$ + + CharacterContent ::= + AsciiEscape + | CharacterLiteralCharacter + | UnicodeEscape + + AsciiEscape ::= + | $$\0$$ + | $$\"$$ + | $$\'$$ + | $$\t$$ + | $$\n$$ + | $$\r$$ + | $$\\$$ + | $$\x$$ OctalDigit HexadecimalDigit + +:dp:`fls_j9q9ton57rvl` +A :ds:`CharacterLiteralCharacter` is any :t:`Unicode` character except +characters 0x09 (horizontal tabulation), 0x0A (new line), 0x0D (carriage +return), 0x27 (apostrophe), and 0x5c (reverse solidus). + +:dp:`fls_5v9gx22g5wPm` +A :ds:`UnicodeEscape` starts with a ``\u{`` literal, followed by 1 to 6 +instances of a :s:`HexadecimalDigit`, inclusive, followed by a ``}`` character. +It can represent any :t:`Unicode` codepoint between U+00000 and U+10FFFF, +inclusive, except :t:`Unicode` surrogate codepoints, which exist between +the range of U+D800 and U+DFFF, inclusive. + +.. rubric:: Legality Rules + +:dp:`fls_vag2oy4q7d4n` +A :t:`character literal` is a :t:`literal` that denotes a fixed :t:`Unicode` +character. + +:dp:`fls_n8z6p6g564r2` +The :t:`type` of a :t:`character literal` is :c:`char`. + +.. rubric:: Examples + +.. code-block:: text + + 'a' + '\t' + '\x1b' + '\u{1F30}' + +.. _fls_boyhlu5srp6u: + +String Literals +~~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + StringLiteral ::= + RawStringLiteral + | SimpleStringLiteral + +.. rubric:: Legality Rules + +:dp:`fls_7fuctvtvdi7x` +A :t:`string literal` is a :t:`literal` that consists of multiple characters. + +:dp:`fls_NyiCpU2tzJlQ` +The character sequence 0x0D 0xCA (carriage return, new line) is replaced by 0xCA +(new line) inside of a :t:`string literal`. + +.. _fls_hucd52suu6it: + +Simple String Literals +^^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + SimpleStringLiteral ::= + $$"$$ SimpleStringContent* $$"$$ + + SimpleStringContent ::= + AsciiEscape + | SimpleStringCharacter + | StringContinuation + | UnicodeEscape + +:dp:`fls_1pdzwkt5txfj` +A :ds:`SimpleStringCharacter` is any :t:`Unicode` character except characters +0x0D (carriage return), 0x22 (quotation mark), and 0x5C (reverse solidus). + +:dp:`fls_wawtu6j3fiqn` +:ds:`StringContinuation` is the character sequence 0x5C 0x0A (reverse solidus, +new line). + +.. rubric:: Legality Rules + +:dp:`fls_ycy5ee6orjx` +A :t:`simple string literal` is a :t:`string literal` where the characters are +:t:`Unicode` characters. + +:dp:`fls_6nt5kls21xes` +The :t:`type` of a :t:`simple string literal` is ``&'static str``. + +.. rubric:: Examples + +.. code-block:: rust + + "" + "cat" + "\tcol\nrow" + "bell\x07" + "\uB80a" + "\ + multi\ + line\ + string" + +.. _fls_usr6iuwpwqqh: + +Raw String Literals +^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Syntax + +.. syntax:: + + RawStringLiteral ::= + $$r$$ RawStringContent + + RawStringContent ::= + NestedRawStringContent + | $$"$$ ~[$$\r$$]* $$"$$ + + NestedRawStringContent ::= + $$#$$ RawStringContent $$#$$ + +.. rubric:: Legality Rules + +:dp:`fls_36suwhbwmq1t` +A :t:`raw string literal` is a :t:`simple string literal` that does not +recognize :t:`[escaped character]s`. + +:dp:`fls_ms43w1towz40` +The :t:`type` of a :t:`raw string literal` is ``&'static str``. + +.. rubric:: Examples + +.. code-block:: rust + + r"" + r#""# + r##"left #"# right"## + +.. _fls_jkab8eevzbte: + +Boolean Literals +~~~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + BooleanLiteral ::= + $$false$$ + | $$true$$ + +.. rubric:: Legality Rules + +:dp:`fls_1lll64ftupjd` +A :t:`boolean literal` is a :t:`literal` that denotes the truth :t:`[value]s` of +logic and Boolean algebra. + +:dp:`fls_pgngble3ilyx` +The :t:`type` of a :t:`boolean literal` is :c:`bool`. + +.. rubric:: Examples + +.. code-block:: rust + + true + +.. _fls_q8l2jza7d9xa: + +Comments +-------- + +.. rubric:: Syntax + +.. syntax:: + + Comment ::= + BlockCommentOrDoc + | LineCommentOrDoc + + BlockCommentOrDoc ::= + BlockComment + | InnerBlockDoc + | OuterBlockDoc + + LineCommentOrDoc ::= + LineComment + | InnerLineDoc + | OuterLineDoc + + LineComment ::= + $$//$$ + | $$//$$ (~[$$!$$ $$/$$] | $$//$$) ~[$$\n$$]* + + BlockComment ::= + $$/*$$ (~[$$!$$ $$*$$] | $$**$$ | BlockCommentOrDoc) (BlockCommentOrDoc | ~[$$*/$$])* $$*/$$ + | $$/**/$$ + | $$/***/$$ + + InnerBlockDoc ::= + $$/*!$$ (BlockCommentOrDoc | ~[$$*/$$ $$\r$$])* $$*/$$ + + InnerLineDoc ::= + $$//!$$ ~[$$\n$$ $$\r$$]* + + OuterBlockDoc ::= + $$/**$$ (~[$$*$$] | BlockCommentOrDoc) (BlockCommentOrDoc | ~[$$*/$$ $$\r$$])* $$*/$$ + + OuterLineDoc ::= + $$///$$ (~[$$/$$] ~[$$\n$$ $$\r$$]*)? + +.. rubric:: Legality Rules + +:dp:`fls_8obn3dtzpe5f` +A :t:`comment` is a :t:`lexical element` that acts as an annotation or an +explanation in program text. + +:dp:`fls_qsbnl11be35s` +A :t:`block comment` is a :t:`comment` that spans one or more :t:`[line]s`. + +:dp:`fls_nayisy85kyq2` +A :t:`line comment` is a :t:`comment` that spans exactly one :t:`line`. + +:dp:`fls_k3hj30hjkdhw` +An :t:`inner block doc` is a :t:`block comment` that applies to an enclosing +:t:`non-[comment]` :t:`construct`. + +:dp:`fls_tspijl68lduc` +An :t:`inner line doc` is a :t:`line comment` that applies to an enclosing +:t:`non-[comment]` :t:`construct`. + +:dp:`fls_KZp0yiFLTqxb` +An :t:`inner doc comment` is either an :t:`inner block doc` or an +:t:`inner line doc`. + +:dp:`fls_63gzofa9ktic` +An :t:`outer block doc` is a :t:`block comment` that applies to a subsequent +:t:`non-[comment]` :t:`construct`. + +:dp:`fls_scko7crha0um` +An :t:`outer line doc` is a :t:`line comment` that applies to a subsequent +:t:`non-[comment]` :t:`construct`. + +:dp:`fls_RYVL9KgaxKvl` +An :t:`outer doc comment` is either an :t:`outer block doc` or an +:t:`outer line doc`. + +:dp:`fls_7n6d3jx61ose` +A :t:`doc comment` is a :t:`comment` class that includes :t:`[inner block +doc]s`, :t:`[inner line doc]s`, :t:`[outer block doc]s`, and :t:`[outer line +doc]s`. + +:dp:`fls_6fxcs17n4kw` +Character 0x0D (carriage return) shall not appear in a :t:`comment`. + +:dp:`fls_uze7l7cxonk1` +:t:`[Block comment]s`, :t:`[inner block doc]s`, and :t:`[outer block doc]s` +shall extend one or more :t:`[line]s`. + +:dp:`fls_gy23lwlqw2mc` +:t:`[Line comment]s`, :t:`[inner line doc]s`, and :t:`[outer line doc]s` shall +extend exactly one :t:`line`. + +:dp:`fls_w7d0skpov1is` +:t:`[Outer block doc]s` and :t:`[outer line doc]s` shall apply to a subsequent +:t:`non-[comment]` :t:`construct`. + +:dp:`fls_32ncjvj2kn7z` +:t:`[Inner block doc]s` and :t:`[inner line doc]s` shall apply to an enclosing +:t:`non-[comment]` :t:`construct`. + +:dp:`fls_ok0zvo9vcmzo` +:t:`[Inner block doc]s` and :t:`[inner line doc]s` are equivalent to +:t:`attribute` :c:`doc` of the form ``#![doc = content]``, where ``content`` +is a :t:`string literal` form of the :t:`comment` without the leading ``//!``, +``/*!`` amd trailing ``*/`` characters. + +:dp:`fls_nWtKuPi8Fw6v` +:t:`[Outer block doc]s` and :t:`[outer line doc]s` are equivalent to +:t:`attribute` :c:`doc` of the form ``#[doc = content]``, where ``content`` +is a :t:`string literal` form of the :t:`comment` without the leading ``///``, +``/**`` and trailing ``*/`` characters. + +.. rubric:: Examples + +.. code-block:: rust + + // This is a stand-alone line comment. So is the next line. + + //// + + /* This is a stand-alone + block comment. */ + + /* + /* This is a nested block comment */ + */ + + /// This outer line comment applies to commented_module. + + /** This outer block comment applies to commented_module, + and is considered documentation. */ + + pub mod commented_module { + + //! This inner line comment applies to commented_mode. + + /*! This inner block comment applies to commented_module, + and is considered documentation. */ + } + +.. _fls_lish33a1naw5: + +Keywords +-------- + +.. rubric:: Syntax + +.. syntax:: + + Keyword ::= + ReservedKeyword + | StrictKeyword + | WeakKeyword + +.. rubric:: Legality Rules + +:dp:`fls_dti0uu7rz81w` +A :t:`keyword` is a word in program text that has special meaning. + +:dp:`fls_sxg1o4oxql51` +:t:`[Keyword]s` are case sensitive. + +.. _fls_mec5cg5aptf8: + +Strict Keywords +~~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + StrictKeyword ::= + $$as$$ + | $$async$$ + | $$await$$ + | $$break$$ + | $$const$$ + | $$continue$$ + | $$crate$$ + | $$dyn$$ + | $$enum$$ + | $$extern$$ + | $$false$$ + | $$fn$$ + | $$for$$ + | $$if$$ + | $$impl$$ + | $$in$$ + | $$let$$ + | $$loop$$ + | $$match$$ + | $$mod$$ + | $$move$$ + | $$mut$$ + | $$pub$$ + | $$ref$$ + | $$return$$ + | $$self$$ + | $$Self$$ + | $$static$$ + | $$struct$$ + | $$super$$ + | $$trait$$ + | $$true$$ + | $$type$$ + | $$unsafe$$ + | $$use$$ + | $$where$$ + | $$while$$ + +.. rubric:: Legality Rules + +:dp:`fls_bsh7qsyvox21` +A :t:`strict keyword` is a :t:`keyword` that always holds its special meaning. + +.. _fls_cbsgp6k0qa82: + +Reserved Keywords +~~~~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + ReservedKeyword ::= + $$abstract$$ + | $$become$$ + | $$box$$ + | $$do$$ + | $$final$$ + | $$macro$$ + | $$override$$ + | $$priv$$ + | $$try$$ + | $$typeof$$ + | $$unsized$$ + | $$virtual$$ + | $$yield$$ + +.. rubric:: Legality Rules + +:dp:`fls_w4b97ewwnql` +A :t:`reserved keyword` is a :t:`keyword` that is not yet in use. + +.. _fls_9kjpxri0axvg: + +Weak Keywords +~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + WeakKeyword ::= + $$macro_rules$$ + | $$'static$$ + | $$union$$ + +.. rubric:: Legality Rules + +:dp:`fls_bv87t1gvj7bz` +A :t:`weak keyword` is a :t:`keyword` whose special meaning depends on the +context. + +:dp:`fls_bl55g03jmayf` +Word ``macro_rules`` acts as a :t:`keyword` only when used in the context of a +:s:`MacroRulesDefinition`. + +:dp:`fls_c354oryv513p` +Word ``'static`` acts as a :t:`keyword` only when used in the context of a +:s:`LifetimeIndication`. + +:dp:`fls_r9fhuiq1ys1p` +Word ``union`` acts as a :t:`keyword` only when used in the context of a +:s:`UnionDeclaration`. + diff --git a/_sources/licenses.rst.txt b/_sources/licenses.rst.txt new file mode 100644 index 00000000..9da250ef --- /dev/null +++ b/_sources/licenses.rst.txt @@ -0,0 +1,302 @@ +.. SPDX-License-Identifier: MIT OR Apache-2.0 + SPDX-FileCopyrightText: The Ferrocene Developers + +.. default-domain:: spec + +.. informational-page:: + +.. _fls_kd7fcvfrwks0: + +Licenses +======== + +.. _fls_mwoe9jy6l7er: + +Ada Reference Manual Copyright Notice +------------------------------------- + +:dp:`fls_9rpvtm5tjrpp` +**Fourth Edition (Ada** 202x\ **)** + +:dp:`fls_7uhb9t9x8r0c` +Copyright © 2016, 2017, 2018, 2019, 2020, 2021 AXE Consultants. All Rights +Reserved. + +:dp:`fls_ej4g7lz5eqm8` +This document may be copied, in whole or in part, in any form or by any means, +as is, or with alterations, provided that (1) alterations are clearly marked as +alterations and (2) this copyright notice is included unmodified in any copy. +Any other use or distribution of this document is prohibited without the prior +express permission of AXE. + +:dp:`fls_l9uu4q48v1co` +You use this document on the condition that you indemnify and hold harmless +AXE, its board, officers, agents, and employees, from any and all liability or +damages to yourself or your hardware or software, or third parties, including +attorneys' fees, court costs, and other related costs and expenses, arising out +of your use of this document irrespective of the cause of said liability. + +:dp:`fls_3j7jx4qsqucs` +AXE MAKES THIS DOCUMENT AVAILABLE ON AN "AS IS" BASIS AND MAKES NO WARRANTY, +EXPRESS OR IMPLIED, AS TO THE ACCURACY, CAPABILITY, EFFICIENCY MERCHANTABILITY, +OR FUNCTIONING OF THIS DOCUMENT. IN NO EVENT WILL AXE BE LIABLE FOR ANY GENERAL, +CONSEQUENTIAL, INDIRECT, INCIDENTAL, EXEMPLARY, OR SPECIAL DAMAGES, EVEN IF AXE +HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +.. _fls_w6b35kn6la40: + +Rust Reference Apache License +----------------------------- + +:dp:`fls_wn4kcs3skqra` +Apache License + +:dp:`fls_mtcsb64efiw1` +Version 2.0, January 2004 + +:dp:`fls_9tssu3wp22cz` +http://www.apache.org/licenses/ + +:dp:`fls_4pclfuqukw5o` +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +:dp:`fls_rgn86bsd9tl5` +1. Definitions. + +:dp:`fls_n6ash4u0e838` +"License" shall mean the terms and conditions for use, reproduction, and +distribution as defined by Sections 1 through 9 of this document. + +:dp:`fls_4z50m2plw8lg` +"Licensor" shall mean the copyright owner or entity authorized by the copyright +owner that is granting the License. + +:dp:`fls_bmx87il86j77` +"Legal Entity" shall mean the union of the acting entity and all other entities +that control, are controlled by, or are under common control with that entity. +For the purposes of this definition, "control" means (i) the power, direct +or indirect, to cause the direction or management of such entity, whether by +contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the +outstanding shares, or (iii) beneficial ownership of such entity. + +:dp:`fls_467b9ucekcv3` +"You" (or "Your") shall mean an individual or Legal Entity exercising +permissions granted by this License. + +:dp:`fls_9ws2rqie234r` +"Source" form shall mean the preferred form for making modifications, including +but not limited to software source code, documentation source, and configuration +files. + +:dp:`fls_j075fx75s7wg` +"Object" form shall mean any form resulting from mechanical transformation or +translation of a Source form, including but not limited to compiled object code, +generated documentation, and conversions to other media types. + +:dp:`fls_akjks1czkd7n` +"Work" shall mean the work of authorship, whether in Source or Object form, made +available under the License, as indicated by a copyright notice that is included +in or attached to the work (an example is provided in the Appendix below). + +:dp:`fls_6n4t2e7lxq3` +"Derivative Works" shall mean any work, whether in Source or Object form, that +is based on (or derived from) the Work and for which the editorial revisions, +annotations, elaborations, or other modifications represent, as a whole, an +original work of authorship. For the purposes of this License, Derivative Works +shall not include works that remain separable from, or merely link (or bind by +name) to the interfaces of, the Work and Derivative Works thereof. + +:dp:`fls_g0gyduo0wc55` +"Contribution" shall mean any work of authorship, including the original version +of the Work and any modifications or additions to that Work or Derivative +Works thereof, that is intentionally submitted to Licensor for inclusion in the +Work by the copyright owner or by an individual or Legal Entity authorized to +submit on behalf of the copyright owner. For the purposes of this definition, +"submitted" means any form of electronic, verbal, or written communication +sent to the Licensor or its representatives, including but not limited to +communication on electronic mailing lists, source code control systems, and +issue tracking systems that are managed by, or on behalf of, the Licensor for +the purpose of discussing and improving the Work, but excluding communication +that is conspicuously marked or otherwise designated in writing by the copyright +owner as "Not a Contribution." + +:dp:`fls_w8npkgeox7u5` +"Contributor" shall mean Licensor and any individual or Legal Entity on +behalf of whom a contribution has been received by Licensor and subsequently +incorporated within the Work. + +:dp:`fls_iygftblnws72` +2. Grant of Copyright License. Subject to the terms and conditions of this +License, each Contributor hereby grants to You a perpetual, worldwide, +non-exclusive, no-charge, royalty-free, irrevocable copyright license to +reproduce, prepare Derivative Works of, publicly display, publicly perform, +sublicense, and distribute the Work and such Derivative Works in Source or +Object form. + +:dp:`fls_s32i8ovj5nqu` +3. Grant of Patent License. Subject to the terms and conditions of this License, +each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, +no-charge, royalty-free, irrevocable (except as stated in this section) +patent license to make, have made, use, offer to sell, sell, import, and +otherwise transfer the Work, where such license applies only to those patent +claims licensable by such Contributor that are necessarily infringed by their +Contribution(s) alone or by combination of their Contribution(s) with the +Work to which such Contribution(s) was submitted. If You institute patent +litigation against any entity (including a cross-claim or counterclaim in a +lawsuit) alleging that the Work or a Contribution incorporated within the Work +constitutes direct or contributory patent infringement, then any patent licenses +granted to You under this License for that Work shall terminate as of the date +such litigation is filed. + +:dp:`fls_c673i0mbecb9` +4. Redistribution. You may reproduce and distribute copies of the Work or +Derivative Works thereof in any medium, with or without modifications, and in +Source or Object form, provided that You meet the following conditions: + +:dp:`fls_pwpt8rg76oj3` +(a) You must give any other recipients of the Work or Derivative Works a copy of +this License; and + +:dp:`fls_yu3hgzo57bvm` +(b) You must cause any modified files to carry prominent notices stating that +You changed the files; and + +:dp:`fls_37aibo9w67e8` +(c) You must retain, in the Source form of any Derivative Works that You +distribute, all copyright, patent, trademark, and attribution notices from the +Source form of the Work, excluding those notices that do not pertain to any part +of the Derivative Works; and + +:dp:`fls_py9om9jvbulw` +(d) If the Work includes a "NOTICE" text file as part of its distribution, then +any Derivative Works that You distribute must include a readable copy of the +attribution notices contained within such NOTICE file, excluding those notices +that do not pertain to any part of the Derivative Works, in at least one of +the following places: within a NOTICE text file distributed as part of the +Derivative Works; within the Source form or documentation, if provided along +with the Derivative Works; or, within a display generated by the Derivative +Works, if and wherever such third-party notices normally appear. The contents +of the NOTICE file are for informational purposes only and do not modify the +License. You may add Your own attribution notices within Derivative Works +that You distribute, alongside or as an addendum to the NOTICE text from the +Work, provided that such additional attribution notices cannot be construed as +modifying the License. + +:dp:`fls_wkf26wyy0ndr` +You may add Your own copyright statement to Your modifications and may provide +additional or different license terms and conditions for use, reproduction, or +distribution of Your modifications, or for any such Derivative Works as a whole, +provided Your use, reproduction, and distribution of the Work otherwise complies +with the conditions stated in this License. + +:dp:`fls_qsvzdiicam4f` +5. Submission of Contributions. Unless You explicitly state otherwise, any +Contribution intentionally submitted for inclusion in the Work by You to the +Licensor shall be under the terms and conditions of this License, without any +additional terms or conditions. Notwithstanding the above, nothing herein shall +supersede or modify the terms of any separate license agreement you may have +executed with Licensor regarding such Contributions. + +:dp:`fls_n4zpph83hza1` +6. Trademarks. This License does not grant permission to use the trade names, +trademarks, service marks, or product names of the Licensor, except as required +for reasonable and customary use in describing the origin of the Work and +reproducing the content of the NOTICE file. + +:dp:`fls_6gvjqsyyk3sg` +7. Disclaimer of Warranty. Unless required by applicable law or agreed to +in writing, Licensor provides the Work (and each Contributor provides its +Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +ANY KIND, either express or implied, including, without limitation, any +warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or +FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining +the appropriateness of using or redistributing the Work and assume any risks +associated with Your exercise of permissions under this License. + +:dp:`fls_evwltjyhvhz` +8. Limitation of Liability. In no event and under no legal theory, whether +in tort (including negligence), contract, or otherwise, unless required by +applicable law (such as deliberate and grossly negligent acts) or agreed to +in writing, shall any Contributor be liable to You for damages, including any +direct, indirect, special, incidental, or consequential damages of any character +arising as a result of this License or out of the use or inability to use the +Work (including but not limited to damages for loss of goodwill, work stoppage, +computer failure or malfunction, or any and all other commercial damages or +losses), even if such Contributor has been advised of the possibility of such +damages. + +:dp:`fls_xj0b5mrjgdbt` +9. Accepting Warranty or Additional Liability. While redistributing the +Work or Derivative Works thereof, You may choose to offer, and charge a +fee for, acceptance of support, warranty, indemnity, or other liability +obligations and/or rights consistent with this License. However, in accepting +such obligations, You may act only on Your own behalf and on Your sole +responsibility, not on behalf of any other Contributor, and only if You agree to +indemnify, defend, and hold each Contributor harmless for any liability incurred +by, or claims asserted against, such Contributor by reason of your accepting any +such warranty or additional liability. + +:dp:`fls_ecitsmzb8l28` +END OF TERMS AND CONDITIONS + +:dp:`fls_wx0hv6f68i4f` +APPENDIX: How to apply the Apache License to your work. + +:dp:`fls_fgjjzdwbw1t8` +To apply the Apache License to your work, attach the following boilerplate +notice, with the fields enclosed by brackets "[]" replaced with your own +identifying information. (Don't include the brackets!) The text should +be enclosed in the appropriate comment syntax for the file format. We also +recommend that a file or class name and description of purpose be included on +the same "printed page" as the copyright notice for easier identification within +third-party archives. + +:dp:`fls_hnxekf2ahnif` +Copyright [yyyy] [name of copyright owner] + +:dp:`fls_e0ytxo6b451` +Licensed under the Apache License, Version 2.0 (the "License"); + +:dp:`fls_145e22m6bw47` +you may not use this file except in compliance with the License. + +:dp:`fls_9o0wr812ggf2` +You may obtain a copy of the License at + +:dp:`fls_cqaian5c7mwr` +http://www.apache.org/licenses/LICENSE-2.0 + +:dp:`fls_eil4b7ffojqa` +Unless required by applicable law or agreed to in writing, software distributed +under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR +CONDITIONS OF ANY KIND, either express or implied. See the License for the +specific language governing permissions and limitations under the License. + +.. _fls_un9oqipiretc: + +Rust Reference MIT License +-------------------------- + +:dp:`fls_bkxw1o1hanmk` +**Copyright (c) 2010 The Rust Project Developers** + +:dp:`fls_yc3wyw3plm1s` +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: + +:dp:`fls_ypomxdgiswq8` +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +:dp:`fls_q6rhvbuhxa21` +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/_sources/macros.rst.txt b/_sources/macros.rst.txt new file mode 100644 index 00000000..75f01596 --- /dev/null +++ b/_sources/macros.rst.txt @@ -0,0 +1,1115 @@ +.. SPDX-License-Identifier: MIT OR Apache-2.0 + SPDX-FileCopyrightText: The Ferrocene Developers + +.. default-domain:: spec + +.. _fls_83182bfa9uqb: + +Macros +====== + +.. rubric:: Legality Rules + +:dp:`fls_j1jc83erljo0` +A :t:`macro` is a custom definition that extends Rust by defining callable +syntactic transformations. The effects of a :t:`macro` are realized through +:t:`[macro invocation]s` or :t:`attribute` use. :t:`[Macro]s` come in two +distinct forms: + +* :dp:`fls_23eapx3ckymf` + :t:`[Declarative macro]s` define rules for recognizing syntactic patterns and + generating direct syntax. + +* :dp:`fls_a5uemz2hnbi8` + :t:`[Procedural macro]s` define augmented :t:`[function]s` that operate on and + return a stream of :t:`[lexical element]s`. + +:dp:`fls_rnty1c8l5495` +:t:`[Token]s` are a subset of :t:`[lexical element]s` consumed by :t:`[macro]s`. + +.. _fls_xa7lp0zg1ol2: + +Declarative Macros +------------------ + +.. rubric:: Syntax + +.. syntax:: + + MacroRulesDeclaration ::= + $$macro_rules$$ $$!$$ Name MacroRulesDefinition + + MacroRulesDefinition ::= + $$($$ MacroRuleList $$)$$ $$;$$ + | $$[$$ MacroRuleList $$]$$ $$;$$ + | $${$$ MacroRuleList $$}$$ + + MacroRuleList ::= + MacroRule ($$;$$ MacroRule)* $$;$$? + + MacroRule ::= + MacroMatcher $$=>$$ MacroTranscriber + + MacroMatcher ::= + $$($$ MacroMatch* $$)$$ + | $$[$$ MacroMatch* $$]$$ + | $${$$ MacroMatch* $$}$$ + + MacroTranscriber ::= + DelimitedTokenTree + + MacroMatch ::= + MacroMatcher + | MacroMatchToken + | MacroMetavariableMatch + | MacroRepetitionMatch + +:dp:`fls_ikzjsq8heyk6` +A :ds:`MacroMatchToken` is any :t:`lexical element` in category +:s:`LexicalElement`, except punctuation ``$`` and category :s:`Delimiter`. + +.. rubric:: Legality Rules + +:dp:`fls_w44hav7mw3ao` +A :t:`declarative macro` is a :t:`macro` that associates a :t:`name` with a set +of syntactic transformation :t:`[macro rule]s`. + +:dp:`fls_dw1nq4r9ghhd` +A :t:`macro rule` is a :t:`construct` that consists of a :t:`macro matcher` and +a :t:`macro transcriber`. + +:dp:`fls_oq4xn8guos8f` +A :t:`macro matcher` is a :t:`construct` that describes a syntactic pattern that +a :t:`macro` must match. + +:dp:`fls_cdaf8viwmdfe` +A :t:`macro match` is the most basic form of a satisfied :t:`macro matcher`. + +:dp:`fls_ljavs0w61z3j` +A :t:`macro transcriber` is a :t:`construct` that describes the replacement +syntax of a :t:`macro`. + +:dp:`fls_3jspk8obv7sd` +A :t:`declarative macro` is invoked using a :t:`macro invocation`. + +.. rubric:: Examples + +.. code-block:: rust + + macro_rules! answer_to_life { + () => { 42 }; + } + +.. _fls_8nzypdu9j3ge: + +Metavariables +~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + MacroMetavariableMatch ::= + $$$$$ MacroMetavariable $$:$$ MacroFragmentSpecifier + + MacroMetavariable ::= + Keyword + | NonKeywordIdentifier + + MacroFragmentSpecifier ::= + $$block$$ + | $$expr$$ + | $$ident$$ + | $$item$$ + | $$lifetime$$ + | $$literal$$ + | $$meta$$ + | $$pat$$ + | $$pat_param$$ + | $$path$$ + | $$stmt$$ + | $$tt$$ + | $$ty$$ + | $$vis$$ + + MacroMetavariableIndication ::= + $$$$$ MacroMetavariable + +.. rubric:: Legality Rules + +:dp:`fls_g93r3teei8wo` +:t:`[Declarative macro]s` employ :t:`[metavariable]s` to match a :t:`token` of +a particular kind and bind its :t:`value` to a name for use during +:t:`macro transcription`. + +:dp:`fls_4zdait30exvn` +A :t:`metavariable` is a :t:`macro match` that describes a :t:`variable`. + +:dp:`fls_2HguXbL7DjKH` +A :t:`metavariable` is visible in the :t:`macro transcriber` of the +:t:`macro rule` of the :t:`macro matcher` it is declared in. + +:dp:`fls_8zypylq60zba` +A :t:`fragment specifier` is a :t:`construct` that indicates the :t:`type` of +a :t:`metavariable`. + +:dp:`fls_8o9mcV2KrKac` +:t:`Fragment specifier` kinds impose the following +:dt:`[fragment specifier restriction]s` on the :t:`[token]s` that follow them: + +* :dp:`fls_PxR9vNHsaFnI` + ``expr`` shall only be followed by ``=>``, ``,``, or ``;``. + +* :dp:`fls_ePyoTeJJ11N0` + ``pat`` shall only be followed by ``=>``, ``,``, ``=``, ``|``, ``if``, or + ``in``. + +* :dp:`fls_0j7VOV4ewfeY` + ``path`` shall only be followed by ``=>``, ``,``, ``=``, ``|``, ``;``, ``:``, + ``>``, ``>>``, ``[``, ``{``, ``as``, ``where``, or a :t:`metavariable` with + the ``block`` :t:`fragment specifier` kind. + +* :dp:`fls_80cOMpIMU2gx` + ``pat_param`` shall only be followed by ``=>``, ``,``, ``=``, ``|``, ``if``, + or ``in``. + +* :dp:`fls_DFMRwsWI8e5z` + ``stmt`` shall only be followed by ``=>``, ``,``, or ``;``. + +* :dp:`fls_BoIGgrFdyhwH` + ``ty`` shall only be followed by ``=>``, ``,``, ``=``, ``|``, ``;``, ``:``, + ``>``, ``>>``, ``[``, ``{``, ``as``, ``where``, or a :t:`metavariable` with + the ``block`` :t:`fragment specifier` kind. + +* :dp:`fls_NBbygZwUxjFp` + ``vis`` shall only be followed by ``,``, an :t:`identifier` except for + ``priv``, any token that may begin a :s:`TypeSpecification`, or a + :t:`metavariable` with the ``ident``, ``ty`` or ``block`` + :t:`fragment specifier` kind. + +* :dp:`fls_lZ8F1zUJju33` + Any other kind may be followed by any token. + +:dp:`fls_ephlmLsGTMgw` +A :t:`metavariable indication` is a :t:`construct` that indicates a +:t:`metavariable`. + +.. rubric:: Examples + +.. code-block:: rust + + macro_rules! square { + ($e:expr) => { $e * $e }; + } + +.. _fls_k01lsksqtq1r: + +Repetition +~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + MacroRepetitionMatch ::= + $$$$$ $$($$ MacroRepetitionMatchContent $$)$$ MacroRepetitionSeparator? MacroRepetitionOperator + + MacroRepetitionMatchContent ::= + MacroMatch* + + MacroRepetitionTranscriber ::= + $$$$$ $$($$ TokenTree* $$)$$ MacroRepetitionSeparator? MacroRepetitionOperator + + MacroRepetitionOperator ::= + $$+$$ + | $$*$$ + | $$?$$ + +:dp:`fls_4ps4x4513xau` +A :ds:`MacroRepetitionSeparator` is any :t:`lexical element` in category +:s:`LexicalElement`, except punctuation ``+``, ``*``, ``?``, and category +:s:`Delimiter`. + +.. rubric:: Legality Rules + +:dp:`fls_8byjmlgum2f3` +A :t:`macro repetition in matching` allows for a syntactic pattern to be matched +zero or multiple times during :t:`macro matching`. + +:dp:`fls_ltdp3zs60dzr` +A :t:`macro repetition in transcription` allows for a syntactic pattern to be +transcribed zero or multiple times during :t:`macro transcription`. + +:dp:`fls_V1WRuzZUWUGj` +A :t:`macro repetition` is either a :t:`macro repetition in matching` or a +:t:`macro repetition in transcription`. + +:dp:`fls_u86j0zm2jshf` +A :t:`repetition operator` is a :t:`construct` that indicates the number +of times a :t:`macro repetition in matching` or a +:t:`macro repetition in transcription` can be repeated. + +:dp:`fls_h5f8x4jdnvbu` +The effects of a :t:`repetition operator` are as follows: + +* :dp:`fls_hf4gj5pfl437` + ``*`` - Zero or more repetitions. + +* :dp:`fls_tm0w0680wf4x` + ``+`` - One or more repetitions. + +* :dp:`fls_10lsg5212ffb` + ``?`` - Zero or one repetition. + +:dp:`fls_UnfvR9NB1Nze` +A :t:`macro repetition` has the following additional restrictions: + +* :dp:`fls_Sm4qVsHKYLY2` + If the :t:`macro repetition` has a :t:`separator`, the :t:`separator` shall + be allowed by the :s:`MacroRepetitionMatchContent`'s + :t:`[fragment specifier restriction]s`. + +* :dp:`fls_Rdvs8Dz6OUU7` + If the :t:`repetition operator` is ``*`` or ``+``, then the + possible beginnings of the :s:`MacroRepetitionMatchContent` shall be allowed + by its :s:`MacroRepetitionMatchContent`'s + :t:`[fragment specifier restriction]s`. + +* :dp:`fls_UIlj6Csow81w` + If the :t:`repetition operator` is ``?`` or ``*``, then the succeeding + :s:`MacroMatch` must be allowed by the preceding :s:`MacroMatch`'s + :t:`[fragment specifier restriction]s`. + +* :dp:`fls_yp2XxDv4DzEi` + The possible beginnings of the :s:`MacroRepetitionMatchContent` must be + allowed by the preceding :s:`MacroMatch`'s + :t:`[fragment specifier restriction]s`. + +* :dp:`fls_n5TkJKWiDhCD` + The succeeding :s:`MacroMatch` must be allowed by the possible endings of the + :s:`MacroRepetitionMatchContent`'s :t:`[fragment specifier restriction]s`. + +.. rubric:: Examples + +.. code-block:: rust + + macro_rules! generate_pairs { + ( $( $first:ident )* ; $( &second:ident )* ) + => + { $( $first, $second )* }; + } + +.. _fls_wn1i6hzg2ff7: + +Procedural Macros +----------------- + +.. rubric:: Legality Rules + +:dp:`fls_ejbddhggstd2` +A :t:`procedural macro` is a :t:`macro` that encapsulates syntactic +transformations in a :t:`function`. :t:`[Procedural macro]s` consume one or more +streams of :t:`[token]s` and produce a stream of :t:`[token]s`. + +:dp:`fls_pcce9gmjpxba` +:t:`[Procedural macro]s` shall be defined in a :t:`crate` subject to +:t:`attribute` :c:`crate_type` where the type is ``proc-macro``. + +:dp:`fls_vtzuplb1p3s` +A :t:`macro implementation function` is the :t:`function` that encapsulates the +syntactic transformations of a :t:`procedural macro`. + +:dp:`fls_mewfehvgm16r` +A :t:`macro implementation function` enters the :t:`name` of the +:t:`procedural macro` into the :t:`macro namespace`. + +.. _fls_2d6bqnpy6tvs: + +Function-like Macros +~~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_utd3zqczix` +A :t:`function-like macro` is a :t:`procedural macro` that consumes a stream of +:t:`[token]s` and produces a stream of :t:`[token]s`. + +:dp:`fls_ojr30lf6jfx0` +The :t:`macro implementation function` of a :t:`function-like macro` shall be +subject to the following restrictions: + +* :dp:`fls_ljkjmegynhiy` + It shall be subject to :t:`attribute` :c:`proc_macro`, + +* :dp:`fls_8a8qhzjw5hax` + It shall be subject to :t:`visibility modifier` ``pub``, + +* :dp:`fls_ofzql79i9if` + It shall lack :t:`[function qualifier]s`, + +* :dp:`fls_j1wsyzip2qb3` + It shall lack :t:`[generic parameter]s`, + +* :dp:`fls_etyo9bmzxby6` + It shall have a single :t:`function parameter` whose :t:`type specification` + indicates :t:`type` :std:`proc_macro::TokenStream`, + +* :dp:`fls_mkl9b38m0sf1` + It shall have a :t:`return type` whose :t:`type specification` indicates + :t:`type` :std:`proc_macro::TokenStream`. + +:dp:`fls_lfmb22bfnrye` +A :t:`function-like macro` is invoked using a :t:`macro invocation`. + +:dp:`fls_fbgal48cgj44` +The sole parameter of the :t:`macro implementation function` captures the +:t:`token` stream produced from the :s:`DelimitedTokenTree` of the +:t:`macro invocation`, excluding outer :s:`[Delimiter]s`. + +.. rubric:: Examples + +.. code-block:: rust + + #[proc_macro] + pub fn make_answer_to_life(_items: TokenStream) -> TokenStream { + "fn answer_to_life() -> u32 { 42 }".parse().unwrap() + } + +.. _fls_o8s3r7m90q59: + +Derive Macros +~~~~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_e5x92q2rq8a0` +A :t:`derive macro` is a :t:`procedural macro` that consumes a stream of +:t:`[token]s` and produces a stream of :t:`[token]s`. :t:`[Derive macro]s` are +used to construct new syntax for :t:`[abstract data type]s`. + +:dp:`fls_ldw75sy5uj7p` +The :t:`macro implementation function` of a :t:`derive macro` shall be subject +to the following restrictions: + +* :dp:`fls_7gcnui9beky` + It shall be subject to :t:`attribute` :c:`proc_macro_derive`, + +* :dp:`fls_ef30ropg7dhx` + It shall be subject to :t:`visibility modifier` ``pub``, + +* :dp:`fls_mo00vqm9xfqc` + It shall lack :t:`[function qualifier]s`, + +* :dp:`fls_gr9wugeqyb3b` + It shall lack :t:`[generic parameter]s`, + +* :dp:`fls_npnze2cg8ae` + It shall have a single :t:`function parameter` whose :t:`type specification` + indicates :t:`type` :std:`proc_macro::TokenStream`, + +* :dp:`fls_w2h4lk6bmht` + It shall have a :t:`return type` whose :t:`type specification` indicates + :t:`type` :std:`proc_macro::TokenStream`. + +:dp:`fls_x96a0xzcyrko` +A :t:`derive macro` is invoked using :t:`attribute` :c:`derive`. + +:dp:`fls_caa16usjxryg` +The sole parameter of the :t:`macro implementation function` captures +the :t:`token` stream produced from the related :s:`EnumDeclaration`, +:s:`StructDeclaration`, or :s:`UnionDeclaration`. + +:dp:`fls_H5ipqqlH3pJh` +A :t:`derive macro` adds all its declared :t:`[derive helper attribute]s` into +the :t:`derive helper attribute scope` of the :t:`abstract data type` the +:t:`attribute` is attached to. + +:dp:`fls_mobky5ck1mi` +A :dt:`derive helper attribute` is an :t:`inert attribute` that acts as a +hint to :t:`attribute` :c:`derive`. + +.. rubric:: Examples + +.. code-block:: rust + + #[proc_macro_derive(Answer)] + pub fn derive_answer_to_life(_items: TokenStream) -> TokenStream { + "fn answer_to_life() -> u32 { 42 }".parse().unwrap() + } + +.. _fls_4vjbkm4ceymk: + +Attribute Macros +~~~~~~~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_l3epi1dqpi8o` +An :t:`attribute macro` is a :t:`procedural macro` that consumes two streams +of :t:`[token]s` to produce a single stream of :t:`[token]s`, and defines a +new :t:`outer attribute` that can be attached to :t:`[item]s`. +:t:`[Attribute macro]s` are used to replace :t:`[item]s` with other +:t:`[item]s`. + +:dp:`fls_3sublbi9bz7k` +The :t:`macro implementation function` of an :t:`attribute macro` shall be +subject to the following restrictions: + +* :dp:`fls_eb8jxl70wmeh` + It shall be subject to :t:`attribute` :c:`proc_macro_attribute`, + +* :dp:`fls_7ugtmobgb2t9` + It shall be subject to :t:`visibility modifier` ``pub``, + +* :dp:`fls_y700oif45wum` + It shall lack :t:`[function qualifier]s`, + +* :dp:`fls_hhsf1a9p6o55` + It shall lack :t:`[generic parameter]s`, + +* :dp:`fls_4g932k8ueyqp` + It shall have two :t:`[function parameter]s` whose :t:`[type specification]s` + indicate :t:`type` :std:`proc_macro::TokenStream`, + +* :dp:`fls_f5qy1pnlbpng` + It shall have a :t:`return type` whose :t:`type specification` indicates type + :std:`proc_macro::TokenStream`. + +:dp:`fls_rzn48xylk4yj` +An :t:`attribute macro` is invoked using an :t:`attribute` of the form + +* :dp:`fls_78400zh02sdq` + ``#[SimplePath]``, or + +* :dp:`fls_eyesmvuwpjn1` + ``#[SimplePath DelimitedTokenTree]`` + +:dp:`fls_fku5beu3mr4c` +The first :t:`function parameter` of the :t:`macro implementation function` +captures the :t:`token` stream produced from the :s:`DelimitedTokenTree` +of the invoking :t:`attribute`, excluding outer :s:`[Delimiter]s`. If no +:s:`DelimitedTokenTree` is provided, then the :t:`token` stream is considered +empty. + +:dp:`fls_knjsslplv5ri` +The second :t:`function parameter` of the :t:`macro implementation function` +captures the :t:`token` stream produced from the related :t:`item`, including +all :t:`[outer attribute]s` that apply to that :t:`item`. + +.. rubric:: Examples + +.. code-block:: rust + + #[proc_macro_attribute] + pub fn output_and_return_item + (attr: TokenStream, item: TokenStream) -> TokenStream + { + println!("attr: \"{}\"", attr.to_string()); + println!("item: \"{}\"", item.to_string()); + item + } + +.. _fls_vnvt40pa48n8: + +Macro Invocation +---------------- + +.. rubric:: Syntax + +.. syntax:: + + MacroInvocation ::= + SimplePath $$!$$ DelimitedTokenTree + + DelimitedTokenTree ::= + $$($$ TokenTree* $$)$$ + | $$[$$ TokenTree* $$]$$ + | $${$$ TokenTree* $$}$$ + + TokenTree ::= + DelimitedTokenTree + | NonDelimitedToken + + TerminatedMacroInvocation ::= + SimplePath $$!$$ $$($$ TokenTree* $$)$$ $$;$$ + | SimplePath $$!$$ $$[$$ TokenTree* $$]$$ $$;$$ + | SimplePath $$!$$ $${$$ TokenTree* $$}$$ + +:dp:`fls_wushtmw9qt3y` +A :ds:`NonDelimitedToken` is any :t:`lexical element` in category +:s:`LexicalElement`, except category :s:`Delimiter`. + +.. rubric:: Legality Rules + +:dp:`fls_snpxxcqhtjfv` +A :t:`macro invocation` is a call of a :t:`declarative macro` or +:t:`function-like macro` that is expanded statically and replaced with the +result of the :t:`macro`. + +:dp:`fls_6v06zvi1ctub` +A :t:`terminated macro invocation` is a :t:`macro invocation` that may be used +as a :t:`statement`. + +.. rubric:: Examples + +:dp:`fls_338rmbazl67o` +See :p:`20.1. ` for the declaration of ``answer_to_life``. + +.. code-block:: rust + + answer_to_life!(); + +:dp:`fls_lrr7gg8tian` +See :p:`20.1.1. ` for the declaration of ``square``. + +.. code-block:: rust + + square!(5); + +:dp:`fls_8qxwwf4trnl` +See :p:`20.1.2. ` for the declaration of ``generate_pairs``. + +.. code-block:: rust + + generate_pairs!(1, 2, 3; 9, 8, 7); + +:dp:`fls_8z1sgtvchhhw` +See :p:`20.2.1. ` for the declaration of +``make_answer_to_life``. + +.. code-block:: rust + + make_answer_to_life!(); + +:dp:`fls_d9w3dn2yn7mo` +See :p:`20.2.2. ` for the declaration of ``Answer``. + +.. code-block:: rust + + #[derive(Answer)] + struct derive_macro_invoker; + +:dp:`fls_1tftbd91yfpd` +See :p:`20.2.3. ` for the declaration of +``output_and_return_item``. + +.. code-block:: rust + + #[output_and_return_item] + fn attribute_macro_invoker() {} + +.. _fls_wjldgtio5o75: + +Macro Expansion +--------------- + +.. rubric:: Legality Rules + +:dp:`fls_xscdaxvs4wx4` +:t:`Macro expansion` is the process of statically executing a +:t:`macro invocation` and replacing it with the produced output of the +:t:`macro invocation`. + +:dp:`fls_nz5stwcc41gk` +:t:`Macro expansion` of :t:`[declarative macro]s` proceeds as follows: + +#. :dp:`fls_40xq8Ri1OMZZ` + The :s:`TokenTree` of the :t:`macro invocation` has all + :t:`[outer block doc]s` and :t:`[outer line doc]s` contained within replaced + by their equivalent :t:`attribute` :c:`doc` representation. + +#. :dp:`fls_76prdp6k1fga` + The :s:`TokenTree` of the :t:`macro invocation` is matched against the + :t:`[macro rule]s` of the resolved :t:`macro` by considering individual + :t:`[macro matcher]s`. It is a static error if no :t:`macro matcher` is + satisfied. + +#. :dp:`fls_76u274l4kew8` + The :t:`macro transcriber` of the satisfied :t:`macro rule` produces its + result, with all :t:`[metavariable indication]s` resolved. It is a static + error if the :t:`macro transcriber` fails to produce its result. + +#. :dp:`fls_lakpily1zwfl` + The :t:`macro invocation` is replaced with the result of the + :t:`macro transcriber`. It is a static error if the result cannot be parsed + according to the expected expansion syntax of the context where the + :t:`macro invocation` resides. The expected expansion syntax is as follows: + + #. :dp:`fls_y20pmwo3v3uu` + If the :t:`macro invocation` appears as part of an :t:`associated item`, + an :t:`item` within an :t:`external block`, or another + :t:`macro invocation`, the output is required to constitute zero or more + :t:`[item]s`. + + #. :dp:`fls_nsh2vwx8oiw` + If the :t:`macro invocation` appears as part of an + :t:`expression-without-block`, the output is required to constitute an + :t:`expression`. + + #. :dp:`fls_tu6kmwm4v9nj` + If the :t:`macro invocation` appears as part of a + :t:`pattern-without-range`, the output is required to constitute zero or + more :t:`[pattern]s`. + + #. :dp:`fls_3zn4dz19nyvq` + If the :t:`macro invocation` appears as part of a :t:`statement`, the + output is required to constitute zero or more :t:`[statement]s`. + + #. :dp:`fls_t89sw6az99z7` + If the :t:`macro invocation` appears as part of a + :t:`type specification` without :t:`[bound]s`, the output is required to + constitute a :t:`type`. + +:dp:`fls_417hvhvj2554` +:t:`Macro expansion` of :t:`[function-like macro]s` proceeds as follows: + +#. :dp:`fls_nNrs4EC3ff5T` + The :s:`TokenTree` of the :t:`macro invocation` has all :t:`[outer block + doc]s` and :t:`[outer line doc]s` contained within replaced by their + equivalent :t:`attribute` :c:`doc` representation. + +#. :dp:`fls_srtqkdceaz5t` + The :s:`TokenTree` of the :t:`macro invocation` is transformed into a + corresponding :std:`proc_macro::TokenStream`. + +#. :dp:`fls_mi92etjtpamu` + The :t:`macro implementation function` is called with the + :std:`proc_macro::TokenStream` as its sole argument. It is a static error + if the :t:`macro implementation function` call fails. + +#. :dp:`fls_n8beqlt54rhy` + The :t:`macro invocation` is replaced with the returned + :std:`proc_macro::TokenStream` of the :t:`macro implementation function` + call. It is a static error if the result can not be parsed according + to the expected expansion syntax of the context where the :t:`macro + invocation` resides. The expected expansion syntax is as follows: + + #. :dp:`fls_vd3dzvr6re19` + If the :t:`macro invocation` appears as part of an :t:`associated item`, + an :t:`item` within an :t:`external block`, or another + :t:`macro invocation`, the output is required to constitute zero or more + :t:`[item]s`. + + #. :dp:`fls_l8j2jiuuao4f` + If the :t:`macro invocation` appears as part of an + :t:`expression-without-block`, the output is required to constitute an + :t:`expression`. + + #. :dp:`fls_xvemyqj5gc6g` + If the :t:`macro invocation` appears as part of a + :t:`pattern-without-range`, the output is required to constitute zero or + more :t:`[pattern]s`. + + #. :dp:`fls_stseor6tln22` + If the :t:`macro invocation` appears as part of a :t:`statement`, the + output is required to constitute zero or more :t:`[statement]s`. + + #. :dp:`fls_u11o90szy68s` + If the :t:`macro invocation` appears as part of a + :t:`type specification` without :t:`[bound]s`, the output is required to + constitute a :t:`type`. + +:dp:`fls_qi5kyvj1e8th` +:t:`Macro expansion` of :t:`[derive macro]s` proceeds as follows: + +#. :dp:`fls_vqIZaEl4EKu5` + The :t:`item` subject to the :t:`derive macro` has all + :t:`[outer block doc]s` and :t:`[outer line doc]s` contained within replaced + by their equivalent :t:`attribute` :c:`doc` representation. + +#. :dp:`fls_grtiwf7q8jah` + The :t:`item` subject to the :t:`derive macro` is transformed into a + corresponding :std:`proc_macro::TokenStream` without the + invoking :c:`derive` :t:`attribute` as well as any preceding :c:`derive` + :t:`[attribute]s`. + +#. :dp:`fls_tbe2qq7whq10` + The :t:`macro implementation function` is called with the + :std:`proc_macro::TokenStream` as its sole argument. It is a static error + if the :t:`macro implementation function` call fails. + +#. :dp:`fls_my93neopj9x0` + The returned :std:`proc_macro::TokenStream` of the + :t:`macro implementation function` call is appended to the enclosing + :t:`block expression` or :t:`module` where the related :s:`EnumDeclaration`, + :s:`StructDeclaration`, or :s:`UnionDeclaration` resides. It is a static + error if the output :std:`proc_macro::TokenStream` does not constitute zero + or more :t:`[item]s`. + +:dp:`fls_zat7kwi5vc5c` +:t:`Macro expansion` of :t:`[attribute macro]s` proceeds as follows: + +#. :dp:`fls_tjn92evtlflq` + The :s:`DelimitedTokenTree` of the invoking :t:`attribute macro` is + transformed into a corresponding :std:`proc_macro::TokenStream` without + the outer :s:`[Delimiter]s`. If no :s:`DelimitedTokenTree` is provided, + and empty :std:`proc_macro::TokenStream` is used. This + :std:`proc_macro::TokenStream` constitutes the first :t:`function parameter` + of the :t:`macro implementation function`. + +#. :dp:`fls_AJmPrhHfZo6J` + The :t:`item` subject to the :t:`attribute macro` has all + :t:`[outer block doc]s` and :t:`[outer line doc]s` contained within replaced + by their equivalent :t:`attribute` :c:`doc` representation. + +#. :dp:`fls_mpgh22bi8caz` + The :t:`item` subject to the :t:`attribute macro` is transformed into a + corresponding :std:`proc_macro::TokenStream` without the invoking + :t:`attribute`. This :std:`proc_macro::TokenStream` constitutes the second + :t:`function parameter` of the :t:`macro implementation function`. + +#. :dp:`fls_ul7nhfyvyzh` + The :t:`macro implementation function` is called with the two + :std:`[proc_macro::TokenStream]s` as the two arguments. It is a static error + if the :t:`macro implementation function` call fails. + +#. :dp:`fls_z6xfhf71w10a` + The :t:`item` subject to the :t:`attribute macro` is replaced with the + returned :std:`proc_macro::TokenStream` of the + :t:`macro implementation function` call. It is a static error if the output + :std:`proc_macro::TokenStream` does not constitute zero or more :t:`[item]s`. + +.. _fls_4apk1exafxii: + +Macro Matching +~~~~~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_ZmQZ8HQWv77L` +:t:`Macro matching` is the process of performing :t:`rule matching` and +:t:`token matching`. + +.. _fls_n3ktmjqf87qb: + +Rule Matching +^^^^^^^^^^^^^ + +.. rubric:: Legality Rules + +:dp:`fls_77ucvwu6idms` +:t:`Rule matching` is the process of consuming a :s:`TokenTree` in an attempt +to fully satisfy the :t:`macro matcher` of a :t:`macro rule` that belongs to a +resolved :t:`declarative macro`. + +:dp:`fls_6h1jqhxzku5v` +:t:`Rule matching` proceeds as follows: + +#. :dp:`fls_r6i1ykrhb49j` + The :t:`[macro matcher]s` of all :t:`[macro rule]s` that belong to a resolved + :t:`macro` are tried against the :s:`TokenTree` of the :t:`macro invocation`, + in declarative order. In the event of a static error, no further attempts at + selecting a subsequent :t:`macro matcher` are made. + +#. :dp:`fls_3qzes4lr8yuv` + The :t:`macro match` of a candidate :t:`macro matcher` is tried against + the :s:`TokenTree` of the :t:`macro invocation` by matching individual + :t:`[token]s`, in left-to-right order. Matching does not employ lookahead. + It is a static error if matching a candidate :t:`macro matcher` is ambiguous. + Matching does not employ backtracking. It is a static error if matching a + candidate :t:`macro matcher` fails while parsing into a :t:`metavariable` and + having consumed at least one :t:`token` while parsing the :t:`metavariable`. + +#. :dp:`fls_r878ysvsy4jb` + It is a static error if no :t:`macro matcher` is selected. + +.. _fls_qpx6lgapce57: + +Token Matching +^^^^^^^^^^^^^^ + +.. rubric:: Legality Rules + +:dp:`fls_k6a24sbon5v9` +:t:`Token matching` is the process of consuming a :s:`TokenTree` in an attempt +to fully satisfy a :t:`macro match` of a selected :t:`macro matcher` that +belongs to a resolved :t:`declarative macro`. + +:dp:`fls_6uuxv91xgmfz` +:t:`Token matching` proceeds as follows: + +:dp:`fls_g1rml9tavh8v` +The outer :s:`[Delimiter]s` of a :t:`macro matcher` match any outer +:s:`[Delimiter]s` in the :t:`macro invocation`. + +:dp:`fls_h7x3tc208zpk` +A :t:`metavariable` in a :t:`macro matcher` is matched against a sequence of +:t:`[token]s` in the :t:`macro invocation` based on its :t:`fragment specifier`: + +* :dp:`fls_p9eqa17d3dx` + :t:`Fragment specifier` **block** requires a :t:`block expression`. + +* :dp:`fls_k00bck2k8tde` + :t:`Fragment specifier` **expr** requires an :t:`expression`. + +* :dp:`fls_pf0qrz5nadl2` + :t:`Fragment specifier` **ident** requires a :t:`pure identifier`. + +* :dp:`fls_9fioah171ojx` + :t:`Fragment specifier` **item** requires an :t:`item`. + +* :dp:`fls_j2o0f52zyvyb` + :t:`Fragment specifier` **lifetime** requires character sequence 0x27 + 0x5F (apostrophe, low line), or character 0x27 (apostrophe) followed by an + :t:`identifier`. + +* :dp:`fls_w5dzv3z4zd5a` + :t:`Fragment specifier` **literal** requires optional character 0x2D + (hyphen-minus), followed by a :t:`literal expression`. + +* :dp:`fls_wtol98rrqka5` + :t:`Fragment specifier` **meta** requires an :t:`attribute content`. + +* :dp:`fls_iorqt9q4ie9j` + :t:`Fragment specifier` **pat** requires a :t:`pattern`. + +* :dp:`fls_2zjed913qpvi` + :t:`Fragment specifier` **pat_param** requires a + :t:`pattern-without-alternation`. + +* :dp:`fls_3zdts0fsa36u` + :t:`Fragment specifier` **path** requires a :t:`type path`. + +* :dp:`fls_mb3yr1j7npv5` + :t:`Fragment specifier` **stmt** requires a :t:`statement` without trailing + character 0x3B (semicolon), excluding :t:`[item]s` that require character + 0x3B (semicolon). + +* :dp:`fls_xbuixjt9pum6` + :t:`Fragment specifier` **tt** requires a :s:`TokenTree`. + +* :dp:`fls_6annifhk6cd8` + :t:`Fragment specifier` **ty** requires a :t:`type specification`. + +* :dp:`fls_2zu22efr6ncy` + :t:`Fragment specifier` **vis** requires a possibly empty visibility modifier. + +:dp:`fls_dqroklsaayzb` +Once a :t:`metavariable` is matched, the matching sequence of :t:`[token]s` is +bound to that :t:`metavariable`. + +:dp:`fls_ghqjk6xj85ng` +Repetition in a :t:`macro matcher` is matched based on how many times the +:t:`pattern` appears consecutively optionally separated by a :t:`separator` in +the :s:`TokenTree` of the :t:`macro invocation`, as follows: + +* :dp:`fls_lzwl4en5wcw0` + If the repeated :t:`pattern` includes a :t:`separator`, then the + :t:`separator` must be able to follow the repeated :t:`pattern`. + +* :dp:`fls_cz44evkjzv29` + If the repeated :t:`pattern` can appear multiple times, then the repeated + :t:`pattern` must be able to follow itself. + +* :dp:`fls_o2exsai4m0gy` + If the repeated :t:`pattern` can appear zero times, then the preceding + :t:`pattern` must be able to follow the succeeding :t:`pattern`. + +* :dp:`fls_1ch299zp8h7` + The repeated :t:`pattern` must be able to follow the preceding :t:`pattern`. + +* :dp:`fls_55ptfjlvoo8o` + The succeeding :t:`pattern` must be able to follow the repeated :t:`pattern`. + +:dp:`fls_finzfb5ljkf8` +A :dt:`repetition index` is a monotonically increasing number that is +initialized to zero, and incremented by one. + +:dp:`fls_s1ccs6jocsgr` +Once a :t:`metavariable` is matched, the matching sequence of :t:`[token]s` is +treated as follows: + +#. :dp:`fls_wpi2i6hoj3li` + The matching sequence of :t:`[token]s` is stored in an ordered collection at + the current :t:`repetition index`. + +#. :dp:`fls_uuey421a8n96` + The current :t:`repetition index` is incremented by one. + +:dp:`fls_b5u47tuu136r` +Each matched :t:`metavariable` in a :t:`macro repetition in matching` is bound +separately, where the matches are stored in an ordered collection. + +:dp:`fls_rb1tu4e7dpma` +Any other :t:`token` in a :t:`macro matcher` is matched literally against the +:s:`TokenTree` of the :t:`macro invocation`. + +:dp:`fls_c76sdvos5xeo` +It is a static error if the :s:`TokenTree` of the :t:`macro invocation` contains +leftover :t:`[token]s` after :t:`macro matching`. + +.. _fls_ym00b6ewf4n3: + +Macro Transcription +~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_y21i8062mft0` +:t:`Macro transcription` is the process of producing the expansion of a +:t:`declarative macro`. + +:dp:`fls_n2dx4ug5nd5w` +:t:`Macro transcription` proceeds as follows: + +:dp:`fls_iw7322ycvhkc` +Every :t:`metavariable indication` found in the :s:`DelimitedTokenTree` of the +:t:`macro transcriber` that belongs to a matched :t:`macro rule` is replaced by +the matched sequence of :t:`[token]s` of the :t:`metavariable`. + +:dp:`fls_jgitbqmyixem` +Unresolved :t:`[metavariable indication]s` are kept as :t:`[token]s` in the +output verbatim. + +:dp:`fls_ihcwl6taptas` +Every :t:`macro repetition in transcription` found in the +:s:`DelimitedTokenTree` of the :t:`macro transcriber` shall be transcribed by +repeatedly transcribing the :t:`[token]s` inside of it. + +:dp:`fls_g3dtpw4rtgdr` +The number of transcription repetitions for a +:t:`macro repetition in transcription` shall depend on its +:t:`repetition operator`, as follows: + +* :dp:`fls_pvp6dxykuv66` + A :t:`repetition operator` denoted by ``+`` shall require one or more + repetitions. + +* :dp:`fls_bd673n5awwbz` + A :t:`repetition operator` denoted by ``*`` shall require zero or more + repetitions. + +* :dp:`fls_zbtwrtcy7pzf` + A :t:`repetition operator` denoted by ``?`` shall require zero or one + repetition. + +:dp:`fls_eacyb6jap9ru` +A :t:`metavariable indication` that is matched inside of a +:t:`macro repetition` shall not be used outside of a +:t:`macro repetition in transcription`. + +:dp:`fls_y4podc7ee8lf` +A :t:`metavariable indication` shall be used in a +:t:`macro repetition in transcription` of the same nesting depth as its +corresponding :t:`metavariable` appears in the :t:`macro matcher`. + +:dp:`fls_wbys0m4a1omg` +A :t:`metavariable indication` within a :t:`macro repetition in transcription` +shall repeat the same number of times in its matching :t:`macro repetition` if +the :t:`macro repetition` occurs at the same nesting depth. + +:dp:`fls_g445ovedgo4q` +Multiple transcribed :t:`[metavariable indication]s` in the same :t:`macro +repetition in transcription` shall repeat the same number of times. + +:dp:`fls_ctzthi6keit2` +When transcribing a :t:`metavariable indication` in a +:t:`macro repetition in transcription`, the :t:`metavariable indication` is +replaced with the matched sequence of :t:`[token]s` of the corresponding +iteration of the repetition :t:`metavariable` taken from the ordered collection. + +:dp:`fls_9n46ugmcqmix` +A :t:`metavariable indication` in a :t:`macro repetition in transcription` shall +be transcribed to the matched :t:`[token]s` in order, as follows: + +.. code-block:: rust + + macro_rules! foo { + ( $($expr:expr)* ) => { + $( $expr ; )* + // $expr is an error + }; + ( $( $( $expr:expr )* )* ) => { + $($($expr)*)* + } + } + + foo! { + 0 + 1 + 2 + } + +:dp:`fls_JinrPA0pMZCr` +yields ``0;1;2;`` + +:dp:`fls_95rn4cvgznmd` +Given a :t:`macro invocation` with ``N`` :t:`metavariable` arguments, a +:t:`macro` of the form + +.. code-block:: rust + + macro_rules! m { + ( $(param: expr)* ) => { + $( $param )* + } + } + +:dp:`fls_yg4c9x7049y4` +is equivalent to a :t:`macro` of the form + +.. code-block:: rust + + macro_rules! m { + ( $param_1: expr $param_2: expr ... $param_N: expr) => { + $param_1 $param_2 ... $param_N + } + } + +:dp:`fls_o9rwz9z0a2h4` +where the :t:`metavariable` of the :t:`macro repetition in matching` are +repeated ``N`` times, and the :t:`[metavariable indication]s` of the +:t:`macro repetition in transcription` are repeated ``N`` times. Invoking such +a :t:`macro` relates the first :t:`metavariable` argument of the +:t:`macro invocation` with the first :t:`metavariable` of the +:t:`macro repetition in matching`, the second :t:`metavariable` argument with +the second :t:`metavariable`, and so on. + +.. _fls_xlfo7di0gsqz: + +Hygiene +------- + +:dp:`fls_7ezc7ncs678f` +:t:`Hygiene` is a property of :t:`[macro]s` and :t:`[identifier]s` that appear +within them, which aims to eliminate the syntactic interference between a +:t:`macro` and its environment. + +.. rubric:: Legality Rules + +:dp:`fls_3axjf28xb1nt` +:t:`Hygiene` is categorized as follows: + +* :dp:`fls_dz2mvodl818d` + :t:`Definition site hygiene`, which resolves to a :s:`MacroRulesDeclaration` + site. :t:`[Identifier]s` with :t:`definition site hygiene` cannot reference + the environment of the :s:`MacroRulesDeclaration`, cannot be referenced by the + environment of a :s:`MacroInvocation`, and are considered :t:`hygienic`. + +* :dp:`fls_puqhytfzfsg6` + :t:`Call site hygiene`, which resolves to a :s:`MacroInvocation` site. + :t:`[Identifier]s` with :t:`call site hygiene` can reference the environment + of the :s:`MacroRulesDeclaration`, can reference the environment of the + :s:`MacroInvocation`, and are considered :t:`unhygienic`. + +* :dp:`fls_uyvnq88y9gk3` + :t:`Mixed site hygiene`, which resolves to a :s:`MacroRulesDeclaration` + site for :t:`[label]s`, :t:`[variable]s`, and the ``$crate`` + :t:`metavariable`, and to the :s:`MacroInvocation` site otherwise, and is + considered :dt:`partially hygienic`. + +:dp:`fls_yxqcr19dig18` +Every :t:`macro` has associated :t:`hygiene` that depends on its kind: + +* :dp:`fls_kx25olky1jov` + :t:`[Declarative macro]s` have :t:`mixed site hygiene`. + +* :dp:`fls_v46v0t2vh6x4` + :t:`[Procedural macro]s` have :t:`call site hygiene` and + :t:`mixed site hygiene` depending on the implementation of the + :t:`procedural macro`. + +:dp:`fls_7eqqk2cj0clr` +The :t:`metavariable` ``$crate`` in a :t:`declarative macro`'s expansion refers +to the crate the :t:`declarative macro` was declared in. + diff --git a/_sources/ownership-and-deconstruction.rst.txt b/_sources/ownership-and-deconstruction.rst.txt new file mode 100644 index 00000000..9465b125 --- /dev/null +++ b/_sources/ownership-and-deconstruction.rst.txt @@ -0,0 +1,734 @@ +.. SPDX-License-Identifier: MIT OR Apache-2.0 + SPDX-FileCopyrightText: The Ferrocene Developers + +.. default-domain:: spec + +.. _fls_ronnwodjjjsh: + +Ownership and Destruction +========================= + +.. _fls_svkx6szhr472: + +Ownership +--------- + +.. rubric:: Legality Rules + +:dp:`fls_wt81sbsecmu0` +:t:`Ownership` is a property of :t:`[value]s` that is central to the resource +management model of Rust. + +:dp:`fls_ckcnkbb6y3cq` +An :t:`owner` is a :t:`variable` that holds a :t:`value`. + +:dp:`fls_ze0u9gfylmhn` +A :t:`value` shall have only one :t:`owner`. + +.. _fls_3xvm61x0t251: + +Initialization +-------------- + +.. rubric:: Legality Rules + +:dp:`fls_drfzu02bo7oe` +:t:`Initialization` is the act of supplying an initial :t:`value` to a +:t:`variable`. + +:dp:`fls_wnhci8phdu4m` +When a :t:`variable` holds a :t:`value`, the :t:`variable` is considered to be +:dt:`initialized`. + +:dp:`fls_ch2lvm50olqd` +When a :t:`variable` lacks a :t:`value` or its :t:`value` has been +:t:`passed ` :t:`by move`, the :t:`variable` is considered +to be :dt:`uninitialized`. + +:dp:`fls_46910buiwvv9` +A :t:`variable` shall be :t:`initialized` before it is accessed. + +.. rubric:: Runtime Semantics + +:dp:`fls_caufcwkpz689` +All memory starts as uninitialized. + +.. rubric:: Examples + +:dp:`fls_4lg92b9yima6` +Variable ``a`` is initialized. + +.. code-block:: rust + + let a: i32 = 42; + +:dp:`fls_xn1au0blioa3` +Variable ``b`` starts off as uninitialized, but is later initialized by virtue +of the assignment statement. + +.. code-block:: rust + + let b: i32; + b = 42; + +:dp:`fls_jmcjboopvytb` +Variable ``c`` starts off initialized, but is later uninitialized by virtue of a +transfer by move. + +.. code-block:: rust + + use core::sync::atomic::AtomicI32; + + let c: AtomicI32 = AtomicI32::new(42); + let d: AtomicI32 = c; + +.. _fls_v5x85lt5ulva: + +References +---------- + +.. rubric:: Legality Rules + +:dp:`fls_7x9pi2o7pee7` +A :t:`reference` is a :t:`value` of a :t:`reference type`. A :t:`reference` +can be obtained explicitly by using a :t:`borrow expression` or implicitly in +certain scenarios. + +:dp:`fls_tsqvr3fmcel` +A :t:`referent` is the :t:`value` pointed-to by a :t:`reference`. + +:dp:`fls_ev4a82fdhwr8` +A :t:`reference` shall point to an :t:`initialized` :t:`referent`. + +:dp:`fls_cckf6dtkgwb4` +The :t:`lifetime` of a :t:`referent` shall be at least as long as the +:t:`lifetime` of its :t:`reference`. + +:dp:`fls_8kqb8754e6p4` +A :t:`reference` is :dt:`active` from the point of obtaining its :t:`referent` +upto the last use of the :t:`reference`, prior to another assignment to the +:t:`reference` or the end of the :t:`scope` of the :t:`reference`. + +:dp:`fls_v69rptdjao42` +A :t:`referent` shall not be :t:`passed ` :t:`by move` while +a :t:`reference` to it is :t:`active`. + +:dp:`fls_vg9h6tz6z37w` +A :t:`referent` shall not be modified while a :t:`reference` to it is +:t:`active`. + +:dp:`fls_wcf5mxrzbujn` +An :t:`immutable reference` is a :t:`value` of a :t:`shared reference type`, and +prevents the mutation of its :t:`referent`. + +:dp:`fls_fckoj1jh5mrc` +A :t:`mutable reference` is a :t:`value` of a :t:`mutable reference type`, and +allows the mutation of its :t:`referent`. + +:dp:`fls_hqxsuyn285he` +The :t:`referent` of an :t:`immutable reference` shall be mutated only when the +:t:`type` of the :t:`referent` is subject to :t:`interior mutability`. + +:dp:`fls_i1ny0k726a4a` +While a :t:`mutable reference` is :t:`active`, no other :t:`reference` shall +refer to a :t:`value` that :t:`[overlap]s` with the :t:`referent` of the +:t:`mutable reference`. + +.. rubric:: Undefined Behavior + +:dp:`fls_eT1hnLOx6vxk` +It is undefined behavior to access a :t:`value` through aliasing +:t:`[mutable reference]s` from :t:`unsafe context`. + +.. rubric:: Examples + +.. code-block:: rust + + let immutable_reference: &i32 = &42; + let mutable_reference: &mut i32 = &mut 42; + +.. _fls_a14slch83hzn: + +Borrowing +--------- + +.. rubric:: Legality Rules + +:dp:`fls_c02flohk54pc` +:t:`Borrowing` is the process of temporarily associating a :t:`reference` with a +:t:`value` without transferring :t:`ownership` permanently. + +:dp:`fls_j9kof0px3l7s` +A :t:`borrow` is a :t:`reference` produced by :t:`borrowing`. + +:dp:`fls_zepwytjwy049` +An :t:`implicit borrow` is a :t:`borrow` that is not present syntactically in +program text. An :t:`implicit borrow` occurs in the following contexts: + +* :dp:`fls_nordokzfy36d` + The :t:`call operand` of a :t:`call expression`, + +* :dp:`fls_bjf3futso849` + The :t:`[operand]s` of a :t:`comparison expression`, + +* :dp:`fls_yfmy4v5zlgw9` + The :t:`assigned operand` of a :t:`compound assignment expression`, + +* :dp:`fls_jv18y618j2s3` + The :t:`operand` of a :t:`field access expression`, + +* :dp:`fls_g4i0jb27iryr` + The :t:`operand` of a :t:`dereference expression`, + +* :dp:`fls_kky9ufexrvaw` + The :t:`indexed operand` of an :t:`index expression`, + +* :dp:`fls_o5oq4jfswr4q` + The :t:`receiver operand` of a :t:`method call expression`. + +:dp:`fls_MT69AGRXH9pS`` +An :t:`implicit borrow` may be an :t:`immutable borrow` or a :t:`mutable borrow` +if required. + +:dp:`fls_hyl4bdjbuzbw` +An :t:`immutable borrow` is an :t:`immutable reference` produced by +:t:`borrowing`. + +:dp:`fls_pu19i4sj6yg0` +A :t:`mutable borrow` is a :t:`mutable reference` produced by :t:`borrowing`. + +:dp:`fls_kxws4zmaahj6` +:t:`Borrowing` a :t:`field` of a :t:`union type` borrows all remaining +:t:`[field]s` using the same :t:`lifetime`. + +:dp:`fls_kup2ou22nwyl` +Immutably :t:`borrowing` a :t:`value` proceeds as follows: + +#. :dp:`fls_5bf2x4sm5ei` + **???** (**this should describe the order of borrowing and when the borrow + is returned**) + +#. :dp:`fls_8q5ly4x104ai` + An :t:`immutable borrow` of :t:`type` ``&'a T`` is created, where + :t:`lifetime` ``'a`` is replaced by a :t:`lifetime variable`, and + ``T`` is replaced by the borrowed :t:`type`. + +#. :dp:`fls_yhchu2bpil4m` + Lifetime inference is performed. + +#. :dp:`fls_568o7nyihndd` + The :t:`immutable borrow` is checked against other :t:`[borrow]s` and + :t:`by move` passing within the enclosing :t:`item`. + +#. :dp:`fls_Z2n7EJiLY5CT` + An :t:`immutable reference` to the borrowed :t:`value` is produced. + +#. :dp:`fls_ibi9mqGeHNLp` + The :t:`immutable borrow` is released immediately after the last usage of its + related :t:`immutable reference`. + +:dp:`fls_f9we73i8vwq3` +Mutably :t:`borrowing` a :t:`value` proceeds as follows: + +#. :dp:`fls_w5bjgaov8w60` + A :t:`mutable borrow` of :t:`type` ``&'a mut T`` is created, where + :t:`lifetime` ``'a`` is replaced by a :t:`lifetime variable`, and + ``T`` is replaced by the borrowed :t:`type`. + +#. :dp:`fls_gbqizu6gu6kk` + Lifetime inference is performed. + +#. :dp:`fls_ovkkxeybumvt` + The :t:`mutable borrow` is checked against other :t:`[borrow]s` and + :t:`by move` passing within the enclosing :t:`item`. + +#. :dp:`fls_7Kzu0qXiBUCb` + A :t:`mutable reference` to the borrowed :t:`value` is produced. + +#. :dp:`fls_VDHBP4oAoqT5` + The :t:`mutable borrow` is released immediately after the last usage of its + related :t:`mutable reference`. + +.. rubric:: Examples + +.. code-block:: rust + + let mutable_borrow = &mut 42; + let immutable_borrow = &42; + +.. _fls_77scxuomlbgs: + +Passing Conventions +------------------- + +.. rubric:: Legality Rules + +:dp:`fls_fvwx2ufeyzcs` +A :t:`passing convention` is the mechanism that defines how a :t:`value` is +transferred between :t:`[place]s`. + +:dp:`fls_h2pgsij1rbms` +A :t:`copy type` is a :t:`type` that implements the :std:`core::marker::Copy` +:t:`trait`. + +:dp:`fls_yx2knbby70fy` +A :t:`value` of a :t:`copy type` is :t:`passed ` +:dt:`by copy`. Passing :t:`by copy` does not change the :t:`owner` of the +:t:`value`. + +:dp:`fls_6ul3f6v0foma` +A :t:`move type` is a :t:`type` that implements the :std:`core::marker::Sized` +:t:`trait` and is not a :t:`copy type`. + +:dp:`fls_3ztdz02efeoc` +A :t:`value` of a :t:`move type` is :t:`passed ` +:dt:`by move`. Passing :t:`by move` changes the :t:`owner` of the :t:`value`. + +:dp:`fls_konzgoybhfqm` +A :t:`value` of a :t:`place expression` shall be +:t:`passed ` :t:`by move` only when it denotes: + +* :dp:`fls_4bnbv7mqod57` + A :t:`field` of a :t:`place expression` that can be + :t:`passed ` :t:`by move` and whose :t:`type` does not + implement the :std:`core::ops::Drop` :t:`trait`, or + +* :dp:`fls_3xk3p1unbjy5` + A :t:`temporary`, or + +* :dp:`fls_vk1xhvdaakh0` + A :t:`variable` which is not currently :t:`borrowed`. + +:dp:`fls_vveEJn7lngT8` +A :t:`value` of a :t:`value expression` is always +:t:`passed ` :t:`by move`. + +:dp:`fls_gq35gqagw35` +A :t:`value` not subject to :t:`by copy` or :t:`by move` :t:`passing convention` +shall not be :t:`passed ` between :t:`[place]s`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_cfqzpmnfeh8h` +Passing a :t:`value` :t:`by copy` from a source :t:`owner` to a target +:t:`owner` proceeds as follows: + +#. :dp:`fls_go9gdlk5d3km` + The :t:`value` of the source :t:`owner` is copied. + +#. :dp:`fls_459xx6febmf0` + The copy is assigned to the target :t:`owner`. + +:dp:`fls_3xyq50abdiv6` +Passing a :t:`value` :t:`by move` from a source :t:`owner` to a target +:t:`owner` proceeds as follows: + +#. :dp:`fls_7kcx3u8gvl1d` + The :t:`value` is unassigned from the source :t:`owner`. + +#. :dp:`fls_i4hrifsb9msr` + The :t:`value` is assigned to the target :t:`owner`. + +.. rubric:: Examples + +:dp:`fls_7tadh1zel0fc` +Type ``i32`` is a copy type. By the end of the second let statement, ``x`` is +the owner of the original ``42`` and ``y`` is the owner of a cloned ``42``. + +.. code-block:: rust + + let x: i32 = 42; + let y: i32 = x; + +:dp:`fls_ywt328hcieka` +Type :std:`core::sync::atomic::AtomicI32` is a move type. By the end of the +second let statement, ``x`` is uninitialized and ``y`` is the sole owner of the +atomic ``42``. + +.. code-block:: rust + + use core::sync::atomic::AtomicI32; + + let x: AtomicI32 = AtomicI32::new(42); + let y: AtomicI32 = x; + +.. _fls_4jiw35pan7vn: + +Destruction +----------- + +.. rubric:: Legality Rules + +:dp:`fls_e7ucq87s806d` +:t:`Destruction` is the process of recovering resources associated with a +:t:`value` as it goes out of scope. + +.. _fls_u2mzjgiwbkz0: + +Destructors +----------- + +.. rubric:: Legality Rules + +:dp:`fls_9m0gszdle0qb` +A :t:`drop type` is a :t:`type` that implements the :std:`core::ops::Drop` +:t:`trait` or contains a :t:`field` that has a :t:`drop type`. + +:dp:`fls_4nkzidytpi6` +A :t:`destructor` is a :t:`function` that is invoked immediately before the +:t:`destruction` of a :t:`value` of a :t:`drop type`. + +:dp:`fls_wzuwapjqtyyy` +:t:`Dropping` a :t:`value` is the act of invoking the :t:`destructor` of the +related :t:`type`. Such an object is said to be :dt:`dropped`. + +:dp:`fls_gfvm70iqu1l4` +An :t:`uninitialized` :t:`variable` is not :t:`dropped`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_l2xkdjeydqtx` +:t:`Dropping` an :t:`initialized` :t:`variable` proceeds as follows: + +#. :dp:`fls_bync24y6gp93` + If the :t:`drop type` implements the :std:`core::ops::Drop` :t:`trait`, then + ``core::ops::Drop::drop`` of the :t:`drop type` is invoked. + +#. :dp:`fls_jzancf72i95f` + If the :t:`drop type` is an :t:`array type`, then its elements are + :t:`dropped` from the first element to the last element. + +#. :dp:`fls_gjn2jnsal9gs` + Otherwise, if the :t:`drop type` is a :t:`closure type`, then all + :t:`[capture target]s` whose :t:`capture mode` is :t:`by move mode` are + :t:`dropped` in unspecified order. + +#. :dp:`fls_ol2w2292frfi` + Otherwise, if the :t:`drop type` is an :t:`enum type`, then the :t:`[field]s` + of the active :t:`enum variant` are :t:`dropped` in declaration order. + +#. :dp:`fls_6ii5o68vuymj` + Otherwise, if the :t:`drop type` is a :t:`slice type`, then its elements are + :t:`dropped` from the first element to the last element. + +#. :dp:`fls_sup43es8ps8r` + Otherwise, if the :t:`drop type` is a :t:`struct type`, then its + :t:`[field]s` are :t:`dropped` in declaration order. + +#. :dp:`fls_y9q0eqr865b3` + Otherwise, if the :t:`drop type` is a :t:`trait object type`, then the + :t:`destructor` of the underlying :t:`type` is invoked. + +#. :dp:`fls_kdqng6eovxns` + Otherwise, if the :t:`drop type` is a :t:`tuple type`, then its :t:`[field]s` + are :t:`dropped` in declaration order. + +#. :dp:`fls_ag249y74jg6c` + Otherwise, :t:`dropping` has no effect. + +.. rubric:: Examples + +.. code-block:: rust + + struct PrintOnDrop(&'static str); + + impl core::ops::Drop for PrintOnDrop { + fn drop(&mut self) { + println!("{}", self.0); + } + } + +:dp:`fls_tw36n3g32a0y` +When object ``array`` is dropped, its destructor drops the first element, then +the second element. + +.. code-block:: rust + + let array = [PrintOnDrop("first element to be dropped"), + PrintOnDrop("second element to be dropped")]; + +:dp:`fls_fmn33zhorkf` +Object ``uninitialized`` is not dropped. + +.. code-block:: rust + + let uninitialized: PrintOnDrop; + +.. _fls_rm4ncoopcdvj: + +Drop Scopes +----------- + +.. rubric:: Legality Rules + +:dp:`fls_7uav7vkcv4pz` +A :t:`drop scope` is a region of program text that governs the :t:`dropping` of +:t:`[value]s`. When control flow leaves a :t:`drop scope`, all :t:`[value]s` +associated with that :t:`drop scope` are :t:`dropped` based on a +:t:`drop order`. + +:dp:`fls_txvxrn6wbyql` +A :t:`drop construct` is a :t:`construct` that employs a :t:`drop scope`. The +following :t:`[construct]s` are :t:`[drop construct]s`: + +* :dp:`fls_n6y6brm6pghr` + :t:`[Expression]s`, + +* :dp:`fls_gdh6wwvi7ci6` + :t:`[Function]s`, + +* :dp:`fls_owqk2fcpvc4s` + A :t:`match arm` of a :t:`match expression`, + +* :dp:`fls_ckh8wkq0y5ja` + :t:`[Statement]s`. + +:dp:`fls_2zwwnzepgmje` +:t:`[Drop scope]s` are nested within one another as follows: + +* :dp:`fls_vlbx5ukw5c8l` + The :t:`drop scope` of a :t:`function` is the outermost :t:`drop scope`. + +* :dp:`fls_d5yg6w8gv6aq` + The parent :t:`drop scope` of a :t:`function body` is the :t:`drop scope` of + its related :t:`function`. + +* :dp:`fls_qidma4fpkhb0` + The parent :t:`drop scope` of an :t:`operand` in an :t:`expression statement` + is the :t:`drop scope` of the :t:`expression statement`. + +* :dp:`fls_1o9ye6cwoyiq` + The parent :t:`drop scope` of the :t:`expression` of a :t:`let statement` is + the :t:`drop scope` of the :t:`let statement`. + +* :dp:`fls_16htxf824xbk` + The parent :t:`drop scope` of a :t:`statement` is the :t:`drop scope` of the + :t:`block expression` that contains the :t:`statement`. + +* :dp:`fls_lbsfhg42yiqy` + The parent :t:`drop scope` of the :t:`operand` of a :t:`match arm guard` is + the :t:`drop scope` of the :t:`match arm` that contains the + :t:`match arm guard`. + +* :dp:`fls_5m3u3k6f00bd` + The parent :t:`drop scope` of the :t:`operand` of a :t:`match arm` is the + :t:`drop scope` of the :t:`match arm` that contains the :t:`operand`. + +* :dp:`fls_m86ljncnmo7j` + The parent :t:`drop scope` of a :t:`match arm` is the :t:`drop scope` of the + related :t:`match expression`. + +* :dp:`fls_bewcu5xceu8i` + The parent :t:`drop scope` of all other :t:`[drop scope]s` is the + :t:`drop scope` of the immediately enclosing :t:`expression`. + +:dp:`fls_iHHhlxCiqNWZ` +A :t:`binding` declared in a :t:`for loop expression` is associated with +the :t:`drop scope` of the :t:`block expression` of the +:t:`for loop expression`. + +:dp:`fls_swXXkbZGLPKa` +A :t:`binding` declared in an :t:`if let expression` is associated with the +:t:`drop scope` of the :t:`block expression` of the :t:`if let expression`. + +:dp:`fls_vrqgac634wpr` +A :t:`binding` declared in a :t:`let statement` is associated with the +:t:`drop scope` of the :t:`block expression` that contains the +:t:`let statement`. + +:dp:`fls_fnvr5w2wzxns` +A :t:`binding` declared in a :t:`match expression` is associated with the +:t:`drop scope` of the :t:`match arm` of the :t:`match expression`. + +:dp:`fls_1vZFa5mDEbXW` +A :t:`binding` declared in a :t:`while let loop expression` is associated with +the :t:`drop scope` of the :t:`block expression` of the +:t:`while let loop expression`. + +:dp:`fls_3jtU8grRaMM9` +A :t:`value` or :t:`binding` of a :t:`function parameter` is associated with the +:t:`drop scope` of the :t:`function` of the :t:`function parameter`. + +:dp:`fls_8r39duatupxw` +A :t:`temporary` that is not subject to :t:`constant promotion` is associated +with the innermost :t:`drop scope` that contains the :t:`expression` which +produced the :t:`temporary`, taking into account :t:`drop scope extension`. The +possible :t:`[drop scope]s` are as follows: + +* :dp:`fls_2peq1tihglnr` + The :t:`drop scope` of a :t:`function body`. + +* :dp:`fls_il09n7sq0a3k` + The :t:`drop scope` of a :t:`statement`. + +* :dp:`fls_s1wbqld139gz` + The :t:`drop scope` of a :t:`block expression` of an :t:`if expression`, an + :t:`infinite loop expression`, or a :t:`while loop expression`. + +* :dp:`fls_asvuef2pc3m0` + The :t:`drop scope` of an :t:`else expression`. + +* :dp:`fls_560437qmeqtr` + The :t:`drop scope` of the :t:`subject expression` of an :t:`if expression`. + +* :dp:`fls_8cunkfc6x24q` + The :t:`drop scope` of the :t:`iteration expression` of a + :t:`while loop expression`. + +* :dp:`fls_n108lvc4otoc` + The :t:`drop scope` of the :t:`operand` of a :t:`match arm`. + +* :dp:`fls_ptk6yibqyfzi` + The :t:`drop scope` of the :t:`operand` of a :t:`match arm guard`. + +* :dp:`fls_dltmd8e8c5ia` + The :t:`drop scope` of the :t:`right operand` of a + :t:`lazy boolean expression`. + +.. _fls_5eima0pd31c0: + +Drop Scope Extension +~~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_kflqez2mtbit` +:t:`Drop scope extension` is the process of extending a :t:`drop scope` +associated with a :t:`temporary` to prevent the premature :t:`dropping` of the +:t:`temporary`. + +:dp:`fls_xjw82bujm148` +An :dt:`extending pattern` is either + +* :dp:`fls_965wt48ooqyw` + A :t:`reference identifier pattern`, or + +* :dp:`fls_r8nt0zp8dnyp` + A :t:`slice pattern`, a :t:`struct pattern`, :t:`tuple pattern` or a + :t:`tuple struct pattern` that contains at least one :t:`subpattern` that is + an :t:`extending pattern`. + +:dp:`fls_3ycn4u1fe9h` +If the :t:`pattern-without-alternation` of a :t:`let statement` is an +:t:`extending pattern`, then the :t:`drop scope` of the :t:`expression` of +the :t:`let statement` is extended to the :t:`drop scope` of the +:t:`block expression` that contains the :t:`let statement`. + +:dp:`fls_wyzau8hhq74d` +An :dt:`extending expression` is either + +* :dp:`fls_ju7cpftd8r2g` + The :t:`expression` of a :t:`let statement`, or + +* :dp:`fls_gjd1ow3l7swe` + The :t:`operand` of an :t:`extending expression` that is an + :t:`array expression`, a :t:`borrow expression`, a :t:`struct expression`, a + :t:`tuple expression`, or a :t:`type cast expression`, or + +* :dp:`fls_iqw0d1l1lj3i` + The :t:`tail expression` of a :t:`block expression` that is an + :t:`extending expression`. + +:dp:`fls_aq01wjpkxhq9` +The :t:`drop scope` of the :t:`operand` of a :t:`borrow expression` that is an +:t:`extending expression` is extended to the :t:`drop scope` of the +:t:`block expression` that contains the :t:`let statement`. + +:dp:`fls_VDPi1dJzJMUb` +The :t:`drop scope` of the :t:`operand` of a :t:`borrow expression`, a +:t:`dereference expression`, or a :t:`field access expression` that has an +extended :t:`drop scope` is extended to the :t:`drop scope` of the +:t:`expression`. + +:dp:`fls_elGH7HSawMRb` +The :t:`drop scope` of the :t:`indexed operand` of an :t:`index expression` that +has an extended :t:`drop scope` is extended to the :t:`drop scope` of the +:t:`expression`. + +.. rubric:: Examples + +:dp:`fls_29y59x8bmw75` +See :p:`15.6.1. ` for the declaration of ``PrintOnDrop``. + +:dp:`fls_subo2w7ln43q` +The drop scope of the temporary created for expression ``AtomicI32::new(42)`` is +extended to the drop scope of the block expression. + +.. code-block:: rust + + use core::sync::atomic::AtomicI32; + + { + let ref mut a = AtomicI32::new(42); + println!("{}", a); + } + +.. _fls_afafmafz4hf2: + +Drop Order +---------- + +.. rubric:: Legality Rules + +:dp:`fls_n6o1xzjiz8cv` +:t:`Drop order` is the order by which :t:`[value]s` are :t:`dropped` when a +:t:`drop scope` is left. + +:dp:`fls_jwofws3022ar` +When a :t:`drop scope` is left, all :t:`[value]s` associated with that +:t:`drop scope` are :t:`dropped` as follows: + +* :dp:`fls_g07zq3n55094` + :t:`[Binding]s` are :t:`dropped` in reverse declaration order. + +* :dp:`fls_a5tmilqxdb6f` + :t:`Temporaries ` are :t:`dropped` in reverse creation order. + +:dp:`fls_zQGkVGWIzMQ7` +When a :t:`drop scope` of a :t:`function` is left, then each +:t:`function parameter` is :t:`dropped` from right to left as follows: + +#. :dp:`fls_K8whhUwAUVqR` + All :t:`[binding]s` introduced by the :t:`pattern` of the + :t:`function parameter` are :t:`dropped` in reverse declaration order, + +#. :dp:`fls_NpCrm4t03oQg` + The :t:`value` of the :t:`function parameter` is :t:`dropped`. + +:dp:`fls_3i348l3pbtrx` +When multiple :t:`[drop scope]s` are left at once, the :t:`[value]s` are +:t:`dropped` from the innermost :t:`drop scope` to the outermost +:t:`drop scope`. + +.. rubric:: Examples + +:dp:`fls_oe8l81y0wnao` +See :p:`15.6.1. ` for the declaration of ``PrintOnDrop``. + +:dp:`fls_4sgca9wcl8h0` +The drop order of the following variables is ``b``, ``c``, ``a``. Dropping +proceeds as follows: + +#. :dp:`fls_a2m4ibzhgupa` + The scope of the block expression is left first because it is an inner scope. + +#. :dp:`fls_go3bvd23vzi9` + ``b`` is dropped. + +#. :dp:`fls_7rwo0he8x143` + The outer scope is left. + +#. :dp:`fls_43yqlxjr3a10` + ``c`` is dropped because dropping occurs in reverse declarative order. + +#. :dp:`fls_a7lsq2kkzkk4` + ``a`` is dropped. + +.. code-block:: rust + + let a = PrintOnDrop("3"); + { + let b = PrintOnDrop("1"); + } + let c = PrintOnDrop("2"); + diff --git a/_sources/patterns.rst.txt b/_sources/patterns.rst.txt new file mode 100644 index 00000000..586d4680 --- /dev/null +++ b/_sources/patterns.rst.txt @@ -0,0 +1,1574 @@ +.. SPDX-License-Identifier: MIT OR Apache-2.0 + SPDX-FileCopyrightText: The Ferrocene Developers + +.. default-domain:: spec + +.. _fls_xgqh0ju6bmbn: + +Patterns +======== + +.. rubric:: Syntax + +.. syntax:: + + Pattern ::= + $$|$$? PatternWithoutAlternation ($$|$$ PatternWithoutAlternation)* + + PatternList ::= + Pattern ($$,$$ Pattern)* $$,$$? + + PatternWithoutAlternation ::= + PatternWithoutRange + | RangePattern + + PatternWithoutRange ::= + IdentifierPattern + | LiteralPattern + | MacroInvocation + | ParenthesizedPattern + | PathPattern + | ReferencePattern + | RestPattern + | SlicePattern + | StructPattern + | TuplePattern + | UnderscorePattern + +.. rubric:: Legality Rules + +:dp:`fls_imegtsi224ts` +A :t:`pattern` is a :t:`construct` that matches a :t:`value` which satisfies all +the criteria of the :t:`pattern`. + +:dp:`fls_mp6i4blzexnu` +A :t:`pattern-without-alternation` is a :t:`pattern` that cannot be alternated. + +:dp:`fls_JJ1fJa1SsaWh` +A :t:`pattern-without-range` is a :t:`pattern-without-alternation` that +excludes :t:`[range pattern]s`. + +:dp:`fls_6xx34zr069bj` +A :t:`subpattern` is a :t:`pattern` nested within another pattern. + +:dp:`fls_8xzjb0yzftkd` +A :t:`pattern` has a :t:`type`, with the exception of the :t:`rest pattern` if +it is not the inner :t:`pattern` of a :t:`slice pattern` or the :t:`pattern` of +a possibly nested :t:`identifier pattern` of a :t:`slice pattern`\ ``.`` + +:dp:`fls_cma5t8waon0x` +The :t:`expected type` of a :t:`pattern` is the :t:`type` of the :t:`value` the +:t:`pattern` is being matched against. + +:dp:`fls_TUanRT7WU14E` +It is a static error when :t:`[lexical element]s` match multiple alternations +of a :t:`pattern-without-range`, except for when the :t:`pattern` is ``&mut`` +:s:`Identifier`. Such a :t:`pattern` is interpreted as a :t:`reference pattern` +with :t:`keyword` ``mut`` containing an :t:`identifier pattern`. + +:dp:`fls_8luyomzppck` +Any two :t:`[pattern-without-alternation]s` that are or-ed using character 0x7C +(vertical line) are subject to the following restrictions: + +* :dp:`fls_rpvdfmy3n05a` + The :t:`[type]s` of the two :t:`[pattern-without-alternation]s` shall be + :t:`unifiable`. + +* :dp:`fls_kv533rntni1x` + The :t:`[binding]s` of the two :t:`[pattern-without-alternation]s` shall + be the same, shall have :t:`[unifiable type]s`, and shall have the same + :t:`[binding mode]s`. + +.. _fls_uh76pw6ykd57: + +Refutability +------------ + +.. rubric:: Legality Rules + +:dp:`fls_9ntc4qmjmo90` +:t:`Refutability` is a property of :t:`[pattern]s` that expresses the ability to +match all possible values of a :t:`type`. + +:dp:`fls_9fjspnefoyvz` +An :t:`irrefutable pattern` is a :t:`pattern` that always matches the :t:`value` +it is being matched against. + +:dp:`fls_uq7ftuuq1sig` +A :t:`refutable pattern` is a :t:`pattern` that has a possibility of not +matching the :t:`value` it is being matched against. + +:dp:`fls_mnbyt7jfYAZ9` +A :t:`pattern` that is not an :t:`irrefutable pattern` is a +:t:`refutable pattern`. + +:dp:`fls_l76ycteulo8e` +An :t:`irrefutable constant` is a :t:`constant` of a :t:`type` that has at most +one :t:`value`. + +:dp:`fls_lh0d85tl4qvy` +A :t:`refutable constant` is a :t:`constant` of a :t:`refutable type`. + +.. rubric:: Examples + +:dp:`fls_sgu9bnp7xajv` +``x`` is an :t:`irrefutable pattern` because it always matches ``42``. + +.. code-block:: rust + + let x = 42; + +:dp:`fls_cl1g4fxfa020` +``y`` is a :t:`refutable pattern` because it does not match ``value`` when +``value`` denotes :std:`core::option::Option::None`. + +.. code-block:: rust + + if let core::option::Option::Some(y) = value { + +.. _fls_7bxv8lybxm18: + +Identifier Patterns +~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + IdentifierPattern ::= + $$ref$$? $$mut$$? Binding BoundPattern? + + BoundPattern ::= + $$@$$ Pattern + +.. rubric:: Legality Rules + +:dp:`fls_uljdw9rf7ies` +An :t:`identifier pattern` is a :t:`pattern` that binds the :t:`value` it +matches to a :t:`binding`. + +:dp:`fls_vy9uw586wy0d` +A :t:`bound pattern` is a :t:`pattern` that imposes a constraint on a related +:t:`identifier pattern`. + +:dp:`fls_hqwt3fvr063y` +An :t:`identifier pattern` yields a :t:`binding`. An :t:`identifier pattern` +with :t:`keyword` ``mut`` yields a :t:`mutable binding`. + +:dp:`fls_joIQdDn44oIT` +An :t:`identifier pattern` with :t:`keyword` ``ref`` is a +:t:`reference identifier pattern`. + +:dp:`fls_24c95c56tugl` +The :t:`identifier pattern` enters its :t:`binding` into :t:`binding scope` in +the :t:`value namespace` if it does not resolve to a :t:`constant`, a +:t:`unit struct constant` or a :t:`unit enum variant`. + +:dp:`fls_twcavjk7iquy` +It is a static error if the :t:`identifier pattern` consists of anything other +than a :t:`binding` when the :t:`binding` resolves to a :t:`constant`, a +:t:`unit struct constant`, or a :t:`unit enum variant`. + +:dp:`fls_k1yBTstX7jEE` +It is a static error if the :t:`binding` of an :t:`identifier pattern` resolves +to a :t:`tuple struct` or a :t:`tuple enum variant`. + +:dp:`fls_hw26hy33guk5` +An :t:`identifier pattern` is an :t:`irrefutable pattern` when: + +* :dp:`fls_svfxwz4yy5i` + It has a :t:`bound pattern` and the :t:`bound pattern` is an + :t:`irrefutable pattern`, or + +* :dp:`fls_x6f6q22b5jpc` + It does not have a :t:`bound pattern` and its :t:`binding` resolves to an + :t:`irrefutable constant`. + +* :dp:`fls_r2mb8v2lh3x0` + It does not have a :t:`bound pattern` and its :t:`binding` does not resolve to + a :t:`constant`, a :t:`unit struct constant`, or a :t:`unit enum variant`. + +:dp:`fls_7oioaitb075g` +If the :t:`identifier pattern` does not have a :t:`bound pattern`, then the +:t:`type` of its :t:`binding` is determined as follows: + +* :dp:`fls_40qin0ss5sqd` + If the :t:`identifier pattern` has only :t:`keyword` ``ref``, then the + :t:`type` is ``& inferred_type``, where ``inferred_type`` is the :t:`type` + determined by :t:`type inference`. + +* :dp:`fls_pivz0v7ey6sw` + If the :t:`identifier pattern` has :t:`[keyword]s` ``ref`` ``mut``, then the + :t:`type` is ``&mut inferred_type``, where ``inferred_type`` is the :t:`type` + determined by :t:`type inference`. + +* :dp:`fls_2ahkrddxwj1n` + Otherwise the :t:`type` is ``inferred_type``, where ``inferred_type`` is the + :t:`type` determined by :t:`type inference`. + +:dp:`fls_eucnafj3uedy` +If the :t:`identifier pattern` has a :t:`bound pattern`, then the :t:`type` of +its :t:`binding` is determined as follows: + +* :dp:`fls_f8zo4scodhcr` + If the :t:`identifier pattern` has only :t:`keyword` ``ref``, then the + :t:`type` ``& bound_pattern_type``, where ``bound_pattern_type`` is the + :t:`type` of the :t:`bound pattern`. + +* :dp:`fls_d3fs2h7oqjl0` + If the :t:`identifier pattern` has :t:`[keyword]s` ``ref mut``, then the + :t:`type` is ``&mut bound_pattern_type``, where ``bound_pattern_type`` is the + :t:`type` of the :t:`bound pattern`. + +* :dp:`fls_exo8asevh5x1` + Otherwise the :t:`type` is ``inferred_type``, where ``inferred_type`` is the + :t:`type` determined by :t:`type inference`. + +.. rubric:: Examples + +:dp:`fls_sfyfdxhvhk44` +An identifier pattern in the context of a let expression. + +.. code-block:: rust + + let x = 42; + +:dp:`fls_as0pqqmo1des` +An identifier pattern with a bound pattern in the context of a match expression. + +.. code-block:: rust + + match x { + small @ 1 ..= 5 => (), + _ => (), + } + +.. _fls_2krxnq8q9ef1: + +Literal Patterns +~~~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + LiteralPattern ::= + BooleanLiteral + | ByteLiteral + | ByteStringLiteral + | CharacterLiteral + | $$-$$? NumericLiteral + | RawByteStringLiteral + | RawStringLiteral + | SimpleStringLiteral + +.. rubric:: Legality Rules + +:dp:`fls_pah15qa54irs` +A :t:`literal pattern` is a :t:`pattern` that matches a :t:`literal`. + +:dp:`fls_co60bzvwashg` +The :t:`type` of a :t:`literal pattern` is the :t:`type` of the specified +:t:`literal`. + +.. rubric:: Examples + +:dp:`fls_fqclaznjgtb1` +Two literal patterns in the context of a match expression. See :p:`5.1.1. +` for the declaration of ``x``. + +.. code-block:: rust + + match x { + -2 => (), + 36 => (), + _ => (), + } + +.. _fls_1xit18et4ohh: + +Parenthesized Patterns +~~~~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + ParenthesizedPattern ::= + $$($$ Pattern $$)$$ + +.. rubric:: Legality Rules + +:dp:`fls_kvqzmt7my5dh` +A :t:`parenthesized pattern` is a :t:`pattern` that controls the precedence of +its :t:`[subpattern]s`. + +:dp:`fls_mrjhpiq5refe` +A :t:`parenthesized pattern` is an :t:`irrefutable pattern` when its nested +:t:`pattern` is an :t:`irrefutable pattern`. + +:dp:`fls_pe5kh8y8u664` +The :t:`type` of a :t:`parenthesized pattern` is the :t:`type` of its nested +:t:`pattern`. + +.. rubric:: Examples + +:dp:`fls_2xq8852gihn9` +See :p:`5.1.1. ` for the declaration of ``x``. + +.. code-block:: rust + + let ref_x = &x; + +:dp:`fls_2dmeukyjqz9y` +A parenthesized pattern inside a reference pattern in the context of a match +expression. + +.. code-block:: rust + + match ref_x { + &(1 ..= 5) => (), + _ => (), + } + +.. _fls_uloyjbaso8pz: + +Path Patterns +~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + PathPattern ::= + PathExpression + | QualifiedPathExpression + +.. rubric:: Legality Rules + +:dp:`fls_1crq0mexo5r1` +A :t:`path pattern` is a :t:`pattern` that matches a :t:`constant`, a +:t:`unit enum variant`, or a :t:`unit struct constant` indicated by a :t:`path`. + +:dp:`fls_xz5otkhogn31` +A :t:`path pattern` expressed as a :t:`path expression` shall refer to either +an :t:`associated constant`, or a :t:`constant`. + +:dp:`fls_t8sjzsif2ilf` +When a :t:`path pattern` refers to an :t:`associated constant` or a +:t:`constant`, the :t:`associated constant` or :t:`constant` shall not be of a +:t:`union type`. + +:dp:`fls_zCswsyuitexI` +When a :t:`path pattern` refers to an :t:`associated constant` or a +:t:`constant`, the :t:`type` of the :t:`associated constant` or :t:`constant` +shall be :t:`structurally equal`. + +:dp:`fls_hF19K8sWU8FF` +When the type of the :t:`path pattern` is of an :t:`enum type` or +:t:`struct type`, then the :t:`enum type` or :t:`struct type` shall be subject +to :t:`attribute` :c:`derive` with arguments :std:`core::cmp::Eq` and +:std:`core::cmp::PartialEq`. + +:dp:`fls_bv9psmitxfuw` +A :t:`path pattern` expressed as a :t:`qualified path expression` shall refer +to an :t:`associated constant`. + +:dp:`fls_sl47k9oj5p7t` +A :t:`path pattern` is an :t:`irrefutable pattern` when it refers to: + +* :dp:`fls_cfoy86mkmqa4` + A :t:`constant` whose :t:`type` is an :t:`irrefutable pattern`, or + +* :dp:`fls_rnppz6y5z8pi` + An :t:`enum variant` of an :t:`enum type` with a single :t:`enum variant` + where the :t:`[type]s` of all :t:`[field]s` are :t:`[irrefutable pattern]s`, + or + +* :dp:`fls_ag6m4mvpturw` + A :t:`struct` where the :t:`[type]s` of all :t:`[field]s` are + :t:`[irrefutable pattern]s`. + +:dp:`fls_pedy2pqrvnx7` +The :t:`type` of a :t:`path pattern` is the :t:`type` of the :t:`constant`, +:t:`unit enum variant`, or :t:`unit struct constant` the :t:`path` resolved to. + +.. rubric:: Examples + +.. code-block:: rust + + mod module { + pub const ZERO: i32 = 0; + } + + enum Enum { Variant } + +:dp:`fls_u59rilepu8z9` +See :p:`5.1.1. ` for the declaration of ``x``. + +.. code-block:: rust + + match x { + module::ZERO => (), + Enum::Variant => (), + _ => (), + } + +.. _fls_6tl1fx99yn6c: + +Range Patterns +~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + RangePattern ::= + HalfOpenRangePattern + | InclusiveRangePattern + | ObsoleteRangePattern + + HalfOpenRangePattern ::= + RangePatternLowBound $$..$$ + + InclusiveRangePattern ::= + RangePatternLowBound $$..=$$ RangePatternHighBound + + ObsoleteRangePattern ::= + RangePatternLowBound $$...$$ RangePatternHighBound + + RangePatternLowBound ::= + RangePatternBound + + RangePatternHighBound ::= + RangePatternBound + + RangePatternBound ::= + ByteLiteral + | CharacterLiteral + | $$-$$? NumericLiteral + | PathExpression + | QualifiedPathExpression + +.. rubric:: Legality Rules + +:dp:`fls_okupyoav13rm` +A :t:`range pattern` is a :t:`pattern` that matches :t:`[value]s` which fall +within a range. + +:dp:`fls_jhchm7dy927k` +A :t:`half-open range pattern` is a :t:`range pattern` with only a +:t:`range pattern low bound`. + +:dp:`fls_q86j23iiqv8w` +An :t:`inclusive range pattern` is a :t:`range pattern` with both a +:t:`range pattern low bound` and a :t:`range pattern high bound`. + +:dp:`fls_akf9x5r6e0ta` +An :t:`obsolete range pattern` is a :t:`range pattern` that uses obsolete syntax +to express an :t:`inclusive range pattern`. + +:dp:`fls_vrpr6ttpfpal` +A :t:`range pattern bound` is a constraint on the range of a :t:`range pattern`. + +:dp:`fls_nk48gregn3me` +A :t:`range pattern low bound` is a :t:`range pattern bound` that specifies the +start of a range. + +:dp:`fls_83v1xqbebs58` +A :t:`range pattern high bound` is a :t:`range pattern bound` that specifies the +end of a range. + +:dp:`fls_2hpuccwh2xml` +A :t:`half-open range pattern` shall appear within a :t:`parenthesized pattern` +when the context is a :t:`slice pattern`. + +:dp:`fls_9kk81isk0mlp` +The :t:`range pattern low bound` of an :t:`inclusive range pattern` shall be +less than or equal to its :t:`range pattern high bound`. + +:dp:`fls_s2b5n4snc4d7` +An :t:`obsolete range pattern` is equivalent to an :t:`inclusive range pattern`. + +:dp:`fls_4o4ge6x9a8rs` +A :t:`range pattern` is an :t:`irrefutable pattern` only when it spans the +entire set of possible :t:`[value]s` of a :t:`type`. + +:dp:`fls_6o995ak4hywq` +The :t:`[type]s` of the :t:`range pattern low bound` and the +:t:`range pattern high bound` of a :t:`range pattern` shall be :t:`unifiable`. + +:dp:`fls_3js1645tgh31` +The :t:`type` of a :t:`range pattern` is determined as follows: + +* :dp:`fls_wfqrbwrogjnq` + If the :t:`range pattern` is expressed as an :t:`inclusive range pattern` or + an :t:`obsolete range pattern`, then the :t:`type` is the :t:`unified type` of + the :t:`[type]s` of the :t:`range pattern low bound` and the + :t:`range pattern high bound`. + +* :dp:`fls_rgr7t33s0m7m` + Otherwise the :t:`type` is the :t:`type` of the :t:`range pattern low bound`. + +:dp:`fls_5ey5mj8t8knd` +A :t:`path expression` of a :t:`range pattern` shall refer to a :t:`constant` +of a :t:`scalar type`. + +:dp:`fls_z4js96mchcsv` +A :t:`qualified path expression` of a :t:`range pattern` shall refer to an +:t:`associated constant` of a :t:`scalar type`. + +.. rubric:: Examples + +:dp:`fls_3wwpq8i6mo2a` +Two range patterns in the context of a match expression. See :p:`5.1.1. +` for the declaration of ``x``. + +.. code-block:: rust + + match x { + -30 ..= 2 => (), + 57 .. => (), + _ => (), + } + +.. _fls_d2sc9hl3v0mk: + +Reference Patterns +~~~~~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + ReferencePattern ::= + $$&$$ $$mut$$? PatternWithoutRange + +.. rubric:: Legality Rules + +:dp:`fls_fhahcc1mz2qh` +A :t:`reference pattern` is a :t:`pattern` that dereferences a :t:`pointer` that +is being matched. + +:dp:`fls_x0bmzl1315gq` +A :t:`reference pattern` is an :t:`irrefutable pattern`. + +:dp:`fls_fedo8zhgpla5` +The :t:`type` of a :t:`reference pattern` is determined as follows: + +* :dp:`fls_30u9ij164ww3` + If the :t:`reference pattern` appears with :t:`keyword` ``mut``, + then the :t:`type` is ``&mut pattern_without_range_type``, + where ``pattern_without_range_type`` is the :t:`type` of the + :s:`PatternWithoutRange`. + +* :dp:`fls_d1kc73hpncpo` + If the :t:`reference pattern` appears without :t:`keyword` + ``mut``, then the :t:`type` is ``& pattern_without_range_type``, + where ``pattern_without_range_type`` is the :t:`type` of the + :s:`PatternWithoutRange`. + +.. rubric:: Examples + +:dp:`fls_mpeuhov0umfa` +A reference pattern in the context of a match expression. See :p:`5.1.3. +` for the declaration of ``ref_x``. + +.. code-block:: rust + + match ref_x { + &23 => (), + _ => (), + } + +.. _fls_7wpgnp4kjq82: + +Rest Patterns +~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + RestPattern ::= + $$..$$ + +.. rubric:: Legality Rules + +:dp:`fls_eso51epfofxb` +A :t:`rest pattern` is a :t:`pattern` that matches zero or more elements that +have not already been matched. + +:dp:`fls_5a75a2y43uev` +A :t:`rest pattern` shall appear at most once within a :t:`slice pattern`, an +:t:`identifier pattern` of a :t:`slice pattern`, a :t:`tuple pattern`, and a +:t:`tuple struct pattern`. + +:dp:`fls_rsqyza99vl3x` +A :t:`rest pattern` is an :t:`irrefutable pattern`. + +:dp:`fls_w1pw40phsv2o` +If a :t:`rest pattern` appears within a :t:`slice pattern` or the +:t:`identifier pattern` of a :t:`slice pattern`, then the :t:`type` of the +:t:`rest pattern` is determined as follows: + +* :dp:`fls_x8ylgxrf9ca` + If the :t:`type` of the :t:`slice pattern` is an :t:`array type`, then the + :t:`type` is ``[T; N]`` where ``T`` is the :t:`element type` of the + :t:`array type`, and ``N`` is the :t:`[array type]'s` size minus the number + of matched elements of the :t:`slice pattern`. + +* :dp:`fls_zgoke73xrhk3` + If the :t:`type` of the :t:`slice pattern` is a :t:`slice type`, then the + :t:`type` is that :t:`slice type`. + +.. rubric:: Examples + +:dp:`fls_bdcv6rwx0fsv` +A rest pattern in an identifier pattern of a slice pattern, followed by a rest +pattern in a slice pattern. + +.. code-block:: rust + + match slice { + [1, 5, .., 7] => (), + [start, end @ ..] => (), + } + +:dp:`fls_qz9guhlg19j3` +Rest patterns in tuple patterns. + +.. syntax:: + + match tuple { + (1, .., y) => (), + (.., 5) => (), + (..) => (), + } + +.. _fls_qte70mgzpras: + +Slice Patterns +~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + SlicePattern ::= + $$[$$ PatternList? $$]$$ + +.. rubric:: Legality Rules + +:dp:`fls_qqiu594hki8g` +A :t:`slice pattern` is a :t:`pattern` that matches :t:`[array]s` of fixed size +and :t:`[slice]s` of dynamic size. + +:dp:`fls_h6x9xlxi7y5n` +A :t:`slice pattern` is an :t:`irrefutable pattern` when it refers to: + +* :dp:`fls_jbmxu7y5fnm6` + An :t:`array`, where each :t:`subpattern` is an :t:`irrefutable pattern`, or + +* :dp:`fls_r78zzw7yyg34` + A :t:`slice`, where the :s:`PatternList` consists of a single + :t:`rest pattern`, or a single possibly nested :t:`identifier pattern` whose + last :t:`bound pattern` is a :t:`rest pattern`. + +:dp:`fls_ndor56nou676` +The :t:`type` of a :t:`slice pattern` is the same as the :t:`expected type`. + +.. rubric:: Examples + +.. syntax:: + + let v = vec![1, 2, 3]; + +:dp:`fls_9yuobz1jsehf` +A slice pattern in the context of a match expression. + +.. syntax:: + + match v { + [a, b, c] => (), + _ => () + } + +.. _fls_7dbd5t2750ce: + +Struct Patterns +--------------- + +.. rubric:: Syntax + +.. syntax:: + + StructPattern ::= + RecordStructPattern + | TupleStructPattern + + Deconstructee ::= + PathExpression + +.. rubric:: Legality Rules + +:dp:`fls_vjdkpr3zml51` +A :t:`struct pattern` is a :t:`pattern` that matches an :t:`enum value`, a +:t:`struct value`, or a :t:`union value`. + +:dp:`fls_6o3x101wo478` +A :t:`deconstructee` indicates the :t:`enum variant` or :t:`type` that is being +deconstructed by a :t:`struct pattern`. + +:dp:`fls_k9zih9s0oe5h` +A :t:`struct pattern` is interpreted based on the :t:`deconstructee`. It is a +static error if a :t:`struct pattern` cannot be interpreted. + +:dp:`fls_r8rat3qmc4hy` +A :t:`struct pattern` is an :t:`irrefutable pattern` if + +* :dp:`fls_hUX723DmLg2a` + All of its :t:`[subpattern]s` are :t:`[irrefutable pattern]s`, and + +* :dp:`fls_p4OplpUvS04l` + The :t:`deconstructree` is either: + + * :dp:`fls_pre3YwAv01FE` + A :t:`struct type` or a :t:`union type`, or + + * :dp:`fls_MK83WE0iDqNf` + An :t:`enum variant` of an :t:`enum` with a single :t:`enum variant`. + +.. _fls_nruvg0es3kx7: + +Record Struct Patterns +~~~~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + RecordStructPattern ::= + Deconstructee $${$$ RecordStructPatternContent? $$}$$ + + RecordStructPatternContent ::= + RecordStructRestPattern + | FieldDeconstructorList (, RecordStructRestPattern | ,?) + + RecordStructRestPattern ::= + OuterAttributeOrDoc* RestPattern + + FieldDeconstructorList ::= + FieldDeconstructor (, FieldDeconstructor)* + + FieldDeconstructor ::= + OuterAttributeOrDoc* ( + IndexedDeconstructor + | NamedDeconstructor + | ShorthandDeconstructor + ) + + IndexedDeconstructor ::= + FieldIndex $$:$$ Pattern + + NamedDeconstructor ::= + Identifier $$:$$ Pattern + + ShorthandDeconstructor ::= + $$ref$$? $$mut$$? Binding + + FieldIndex ::= + DecimalLiteral + +.. rubric:: Legality Rules + +:dp:`fls_g6dytd6aq62d` +A :t:`record struct pattern` is a :t:`pattern` that matches a +:t:`enum variant value`, a :t:`struct value`, or a :t:`union value`. + +:dp:`fls_3px4oiweg9dm` +The :t:`deconstructee` of a :t:`record struct pattern` shall resolve to an +:t:`enum variant`, a :t:`struct type`, or a :t:`union type`. + +:dp:`fls_mnh35ehva8tx` +An :t:`indexed deconstructor` is a :t:`construct` that matches the position of +a :t:`field`. + +:dp:`fls_p2rjnlbvifaa` +An :t:`indexed deconstructor` matches a :t:`field` of the :t:`deconstructee` +when its :t:`field index` and the position of the :t:`field` in the +:t:`deconstructee` are the same. Such an :t:`indexed deconstructor` is a +:dt:`matched indexed deconstructor`. + +:dp:`fls_23be2x50at14` +The :t:`type` of a :t:`matched indexed deconstructor` and the :t:`type` of the +matched :t:`field` shall be :t:`unifiable`. + +:dp:`fls_46u4ddj0yf93` +A :t:`named deconstructor` is a :t:`construct` that matches the :t:`name` of +a :t:`field`. + +:dp:`fls_qu3dvfdq6oy7` +A :t:`named deconstructor` matches a :t:`field` of the :t:`deconstructee` when +its :t:`identifier` and the :t:`name` of the :t:`field` are the same. Such a +:t:`named deconstructor` is a :dt:`matched named deconstructor`. + +:dp:`fls_4b2hchdzv30u` +The :t:`type` of a :t:`matched named deconstructor` and the :t:`type` of the +matched :t:`field` shall be :t:`unifiable`. + +:dp:`fls_9wfizujx0szd` +A :t:`shorthand deconstructor` is a :t:`construct` that matches the :t:`name` +of a :t:`field` and binds the :t:`value` of the matched :t:`field` to a +:t:`binding`. + +:dp:`fls_jTh9Hur0qsIb` +A :t:`shorthand deconstructor` with :t:`keyword` ``mut`` yields a +:t:`mutable binding`. + +:dp:`fls_as54u97xis8z` +It is a static error if a :t:`shorthand deconstructor` has only :t:`keyword` +``ref`` or :t:`[keyword]s` ``ref`` ``mut``, and its :t:`binding` shadows a +:t:`constant`, a :t:`unit enum variant`, or a :t:`unit struct constant`. + +:dp:`fls_8364ueejn5y3` +A :t:`shorthand deconstructor` is equivalent to a :t:`named deconstructor` where +the :t:`name` of the :t:`shorthand deconstructor` denotes the :t:`identifier` +of the :t:`named deconstructor` and the entire content of the :t:`shorthand +deconstructor` denotes the :t:`pattern` of the :t:`named deconstructor`. + +:dp:`fls_7t0be1w2hq3c` +A :t:`shorthand deconstructor` matches a :t:`field` of the :t:`deconstructee` +when its :t:`name` and the :t:`name` of the :t:`field` are the same. Such a +:t:`shorthand deconstructor` is a :dt:`matched shorthand deconstructor`. + +:dp:`fls_3vgmkm2mzwwy` +The :t:`type` of a :t:`matched shorthand deconstructor` and the :t:`type` of the +matched :t:`field` shall be :t:`unifiable`. + +:dp:`fls_m91ith3rjy79` +If the :t:`deconstructee` of a :t:`record struct pattern` is a +:t:`record enum variant` or a :t:`record struct`, then + +* :dp:`fls_c09jf2vpcr58` + For each :t:`field` of the :t:`deconstructee`, the :t:`record struct pattern` + shall either: + + * :dp:`fls_4h00oqypa8qg` + Contain at most one :t:`matched named deconstructor`, or + + * :dp:`fls_195mqijyrnam` + Contain at most one :t:`matched shorthand deconstructor`, or + + * :dp:`fls_ta0vdoqmt2k1` + Have exactly one :s:`RecordStructRestPattern`. + +* :dp:`fls_f0u0j4q90lpl` + A :s:`RecordStructRestPattern` is allowed even if all :t:`[field]s` of the + :t:`deconstructee` have been matched. + +:dp:`fls_8bi8q3usubby` +If the :t:`deconstructee` of a :t:`record struct pattern` is a +:t:`tuple enum variant` or a :t:`tuple struct type`, then + +* :dp:`fls_1x0o71kxj3yq` + For each :t:`field` of the :t:`deconstructee`, the :t:`record struct pattern` + shall either: + + * :dp:`fls_1thgpx95lfg5` + Contain at most one :t:`matched indexed deconstructor`, or + + * :dp:`fls_rpo1wimbmzhc` + Have exactly one ``RecordStructRestPattern.`` + +* :dp:`fls_brhtaaxt1s3s` + A :s:`RecordStructRestPattern` is allowed even if all :t:`[field]s` of the + :t:`deconstructee` have been matched. + +:dp:`fls_jwz3arnfkxwn` +If the :t:`deconstructee` of a :t:`record struct pattern` is a :t:`union type`, +then + +* :dp:`fls_pfz8xlwezbw1` + The :s:`RecordStructPatternContent` of the :t:`record struct + pattern` shall contain exactly one :s:`FieldDeconstructor`. + +* :dp:`fls_XFKBJZe6k1o2` + The :t:`record struct pattern` shall not contain a + :s:`RecordStructRestPattern`. + +* :dp:`fls_mu166csowj71` + For the single :t:`field` of the :t:`deconstructee`, the + :t:`record struct pattern` shall either: + + * :dp:`fls_y09fygnglu3n` + Contain exactly one :t:`matched named deconstructor`, or + + * :dp:`fls_2tadaatmauzk` + Contain exactly one :t:`matched shorthand deconstructor`. + +* :dp:`fls_oq30xkmvyz72` + The :t:`record struct pattern` shall require :t:`unsafe context`. + +:dp:`fls_9y1gbv47z23o` +If the :t:`deconstructee` of a :t:`record struct pattern` is a +:t:`unit enum variant` or a :t:`unit struct`, then the +:t:`record struct pattern` shall have at most one :s:`RecordStructRestPattern`. + +.. rubric:: Undefined Behavior + +:dp:`fls_dHtV2BPRFVBB` +It is undefined behavior reading the :t:`field` of a :t:`deconstructee` that is +a :t:`union type` when the :t:`field` contains data that is invalid for the +:t:`field`'s type. + +.. rubric:: Examples + +.. code-block:: rust + + struct RecordStruct { + first : u32, + second: u32, + } + + let record_struct_value = RecordStruct { first: 11, second: 22 }; + + match record_struct_value { + RecordStruct { second: 33, ref first } => (), + RecordStruct { first: 44, .. } => (), + RecordStruct { .. } => (), + } + + struct TupleStruct ( + u32, + u32, + ); + + let tuple_struct_value = TupleStruct { 0: 11, 1: 22 }; + + match tuple_struct_value { + TupleStruct { 1: 33, 0: 44 } => (), + TupleStruct { 0: 55, .. } => (), + TupleStruct { .. } => (), + } + + union Union { + first : u32, + second: u32, + } + + let union_value = Union { second: 11 }; + + unsafe { + match union_value { + Union { first: 22 } => (), + Union { second: 33 } => (), + _ => (), + } + } + +.. _fls_vlrto778v49m: + +Tuple Struct Patterns +~~~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + TupleStructPattern ::= + Deconstructee $$($$ PatternList? $$)$$ + +.. rubric:: Legality Rules + +:dp:`fls_ks6y1syab2bp` +A :t:`tuple struct pattern` is a :t:`pattern` that matches a +:t:`tuple enum variant value`, or a :t:`tuple struct value`. + +:dp:`fls_t1mrijw16k9a` +The :t:`deconstructee` of a :t:`tuple struct pattern` shall resolve to a +:t:`tuple enum variant` or a :t:`tuple struct type`. + +:dp:`fls_ryfcrqrkp28y` +A :t:`subpattern` of a :t:`tuple struct pattern` matches a :t:`field` of the +:t:`deconstructee` when its position and the position of the :t:`field` in +the :t:`deconstructee` are the same. Such a :t:`subpattern` is a +:dt:`matched tuple struct subpattern`. + +:dp:`fls_ehf9r6halgh1` +The position of a :t:`subpattern` is determined as follows: + +* :dp:`fls_5lo1hs8wzz0t` + If the :t:`tuple struct pattern` has a :s:`RecordStructRestPattern`, then + + * :dp:`fls_gwuc2xffosu` + If the :t:`subpattern` precedes the :s:`RecordStructRestPattern`, then its + position is the position within the :s:`PatternList` in left-to-right order, + starting from zero. + + * :dp:`fls_w369n8lmwr7g` + If the :t:`subpattern` succeeds the :s:`RecordStructRestPattern`, then its + position is the position within the :s:`PatternList` list in right-to-left + order, starting from the :t:`arity` of the :t:`deconstructee` minus one. + +* :dp:`fls_4is6h95jj3gd` + Otherwise the position is the position within the :s:`PatternList` in + left-to-right order, starting from zero. + +:dp:`fls_budf0rpsa4lx` +The :t:`type` of the :t:`subpattern` of a :t:`tuple struct pattern` and the +:t:`type` of the matched :t:`field` shall be :t:`unifiable`. + +:dp:`fls_vo6mtauh4qhb` +For each :t:`field` of the :t:`deconstructee`, the :t:`tuple struct pattern` +shall either: + +* :dp:`fls_rco3fwlx2a76` + Contain at most one :t:`matched tuple struct subpattern`, or + +* :dp:`fls_4vrnxslad09e` + Have exactly one :s:`RecordStructRestPattern`. + +:dp:`fls_qgilaqy5zx7q` +A :s:`RecordStructRestPattern` is allowed even if all :t:`[field]s` of the +:t:`deconstructee` have been matched. + +.. rubric:: Examples + +:dp:`fls_2u99arsbnlnk` +See :p:`5.1.9.1. ` for the declarations of ``TupleStruct`` and +``tuple_struct_value``. + +.. code-block:: rust + + match tuple_struct_value { + TupleStruct ( 11, 22 ) => (), + TupleStruct ( 33, .., 44 ) => (), + TupleStruct ( .., 55 ) => (), + TupleStruct ( 66, .. ) => (), + TupleStruct ( .. ) => (), + } + +.. _fls_urbr5rg9206v: + +Tuple Patterns +~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + TuplePattern ::= + $$($$ PatternList? $$)$$ + +.. rubric:: Legality Rules + +:dp:`fls_e2manugp4e0b` +A :t:`tuple pattern` is a :t:`pattern` that matches a :t:`tuple` which satisfies +all criteria defined by its :t:`[subpattern]s`. + +:dp:`fls_xk8udu4k61kj` +A :t:`tuple pattern` is an :t:`irrefutable pattern` when all of its +:t:`[subpattern]s` are :t:`[irrefutable pattern]s`. + +:dp:`fls_yhcaz6v49ub2` +The :t:`type` of a :t:`tuple pattern` is the :t:`type` of the :t:`tuple` being +destructured. + +:dp:`fls_6WCm0Ra8NQl4` +A :t:`subpattern` of a :t:`tuple pattern` matches a :t:`tuple field` of the +:t:`tuple type` when its position and the position of the :t:`tuple field` in +the :t:`tuple type` are the same. Such a :t:`subpattern` is a +:dt:`matched tuple subpattern`. + +:dp:`fls_a3qvQjyilORx` +The position of a :t:`subpattern` is determined as follows: + +* :dp:`fls_KmIHFxlBYelZ` + If the :t:`tuple pattern` has a :s:`RestPattern`, then + + * :dp:`fls_5bXqIaKiFcLg` + If the :t:`subpattern` precedes the :s:`RestPattern`, then its + position is the position within the :s:`PatternList` in left-to-right order, + starting from zero. + + * :dp:`fls_soHCAVfGlv5f` + If the :t:`subpattern` succeeds the :s:`RestPattern`, then its + position is the position within the :s:`PatternList` list in right-to-left + order, starting from the :t:`arity` of the :t:`tuple type` minus one. + +* :dp:`fls_iiKvYs61959S` + Otherwise the position is the position within the :s:`PatternList` in + left-to-right order, starting from zero. + +:dp:`fls_F4k6ljuP8Amf` +The :t:`type` of the :t:`subpattern` of a :t:`tuple pattern` and the +:t:`type` of the matched :t:`tuple field` shall be :t:`unifiable`. + +:dp:`fls_GjjCDkVJPQS8` +For each :t:`tuple field` of the :t:`tuple type`, the :t:`tuple pattern` shall +either: + +* :dp:`fls_9Qw9N87swwNe` + Contain at most one :t:`matched tuple subpattern`, or + +* :dp:`fls_CQ84wkLyrAJv` + Have exactly one :s:`RestPattern`. + +:dp:`fls_cC6ohNuiltfL` +A :s:`RestPattern` is allowed even if all :t:`[tuple field]s` of the +:t:`tuple type` have been matched. + +.. rubric:: Examples + +:dp:`fls_8r81vtv5hnrd` +A tuple pattern in the context of a let statement. + +.. code-block:: rust + + let pair = (1, "two"); + let (first, second) = pair; + +.. _fls_qfsfnql1t7m: + +Underscore Patterns +~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + UnderscorePattern ::= + $$_$$ + +.. rubric:: Legality Rules + +:dp:`fls_dreny9e0ei6r` +An :t:`underscore pattern` is a :t:`pattern` that matches any single :t:`value`. + +:dp:`fls_42fye1v0th8l` +An :t:`underscore pattern` is an :t:`irrefutable pattern`. + +:dp:`fls_b87mvrcc13f2` +The :t:`type` of an :t:`underscore pattern` is the :t:`type` of the :t:`value` +it matches. + +.. rubric:: Examples + +:dp:`fls_j3u6x1ensrbe` +An underscore pattern in the context of a let statement. See :p:`5.1.10. +` for the declaration of ``pair``. + +.. code-block:: rust + + let (first, _) = pair; + +.. _fls_qssijtofa9i8: + +Binding Modes +------------- + +.. rubric:: Syntax + +.. syntax:: + + Binding ::= + Name + +.. rubric:: Legality Rules + +:dp:`fls_7xby6d1903kw` +A :t:`binding pattern` is either an :t:`identifier pattern` or a +:t:`shorthand deconstructor`. + +:dp:`fls_vnh9wfrvumdz` +A :t:`binding` of a :t:`binding pattern` binds a matched :t:`value` to a +:t:`name`. + +:dp:`fls_RViC5UEZPQUV` +A :t:`binding` with :t:`binding mode` :dt:`by value` binds the matched +:t:`value` by :t:`passing ` the :t:`value` to the :t:`place` +indicated by the :t:`name`. + +:dp:`fls_6lXtoxebD5It` +A :t:`binding` with :t:`binding mode` :dt:`by reference` binds an +:t:`immutable reference` to the matched :t:`value` to the :t:`name`. + +:dp:`fls_xNxQN8sgpZ3O` +A :t:`binding` with :t:`binding mode` :dt:`by mutable reference` binds a +:t:`mutable reference` to the matched :t:`value` to the :t:`name`. + +:dp:`fls_dqe75i8h2fie` +A :t:`non-reference pattern` is any :t:`pattern` except +:t:`non-[binding pattern]s`, :t:`[path pattern]s`, :t:`[reference pattern]s`, +and :t:`[underscore pattern]s`. + +:dp:`fls_y3wuvj1y5j20` +If a :t:`binding pattern` does not explicitly specify :t:`keyword` ``ref``, +:t:`keyword` ``mut``, or :t:`[keyword]s` ``ref mut``, then its :t:`binding mode` +uses the current :t:`binding mode` of :t:`pattern matching`. + +:dp:`fls_55jtzh6a292x` +Initially, the :t:`binding mode` of a :t:`binding` is :t:`by value`. + +:dp:`fls_qcaf2kup7zn0` +During the process of :t:`pattern matching`, each time a :t:`reference` +is matched against a :t:`non-[reference pattern]`, the :t:`reference` is +dereferenced and the :t:`binding mode` is updated as follows: + +* :dp:`fls_6acdqz8rwnn` + If the :t:`reference` is an :t:`immutable reference`, then the + :t:`binding mode` is updated to :t:`by reference`. + +* :dp:`fls_tv0avib387bv` + If the :t:`reference` is a :t:`mutable reference` and the :t:`binding mode` + is :t:`by value`, then the :t:`binding mode` is updated to + :t:`by mutable reference`. + +:dp:`fls_dbgmwldye42e` +The process repeats if the dereferenced :t:`value` is a :t:`reference`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_t34oqarwcusu` +A :t:`[binding pattern]s` binds its :t:`binding` to a matched :t:`value` as +follows: + +* :dp:`fls_7gxb74u1np36` + If the :t:`binding mode` is :t:`by reference` or the :t:`binding pattern` + appears only with :t:`keyword` ``ref``, then the :t:`binding` is bound to a + :t:`reference` of the matched :t:`value`. + +* :dp:`fls_7y56d0ulxomf` + If the :t:`binding mode` is :t:`by mutable reference` or the :t:`binding + pattern` appears with keywords ``ref`` ``mut``, then the :t:`binding` is bound + to a :t:`mutable reference` of the matched :t:`value`. + +* :dp:`fls_pxvtqxke1enp` + If the :t:`binding mode` is :t:`by value`, then the :t:`binding` is + bound to a copy of the matched :t:`value` if its :t:`type` implements the + :std:`core::marker::Copy` :t:`trait`, otherwise the :t:`binding` is bound to + the move of the matched :t:`value`. + +.. _fls_jm6l7b90h6wa: + +Pattern Matching +---------------- + +.. rubric:: Dynamic Semantics + +:dp:`fls_tlwr4u7bjhh5` +:t:`Pattern matching` that involves a :t:`pattern` and a context :t:`value` +proceeds as follows: + +#. :dp:`fls_67ajub7d2b4c` + For each :t:`pattern-without-alternation` of the :t:`pattern`: + + #. :dp:`fls_62626ws222op` + If the :t:`pattern-without-alternation` is an :t:`identifier pattern`, + then perform :t:`identifier pattern matching`. + + #. :dp:`fls_q0z46h1gnzez` + If the :t:`pattern-without-alternation` is a :t:`literal pattern`, then + perform :t:`literal pattern matching`. + + #. :dp:`fls_1r0vm6rg13o9` + If the :t:`pattern-without-alternation` is a :t:`parenthesized pattern`, + then perform :t:`parenthesized pattern matching`. + + #. :dp:`fls_am5h8r887bz5` + If the :t:`pattern-without-alternation` is a :t:`path pattern`, then + perform :t:`path pattern matching`. + + #. :dp:`fls_eppmiloh7bgg` + If the :t:`pattern-without-alternation` is a :t:`range pattern`, then + perform :t:`range pattern matching`. + + #. :dp:`fls_gwc08xayno7q` + If the :t:`pattern-without-alternation` is a :t:`reference pattern`, then + perform :t:`reference pattern matching`. + + #. :dp:`fls_19iygu12s315` + If the :t:`pattern-without-alternation` is a :t:`slice pattern`, then + perform :t:`slice pattern matching`. + + #. :dp:`fls_r307spfk6cs9` + If the :t:`pattern-without-alternation` is a :t:`record struct pattern`, + then perform :t:`record struct pattern matching`. + + #. :dp:`fls_qhdofvbso3gl` + If the :t:`pattern-without-alternation` is a :t:`tuple struct pattern`, + then perform :t:`tuple struct pattern matching`. + + #. :dp:`fls_drb114dtvlpt` + If the :t:`pattern-without-alternation` is a :t:`tuple pattern`, then + perform :t:`tuple pattern matching`. + + #. :dp:`fls_uxysntb3u03j` + If the :t:`pattern-without-alternation` is an :t:`underscore pattern`, + then perform :t:`underscore pattern matching`. + + #. :dp:`fls_wh201rmh6u6d` + Otherwise :t:`pattern matching` fails. + +:dp:`fls_vstdqifqipbh` +Only the :t:`[binding]s` of a matched :t:`pattern-without-alternation` are +introduced into a :t:`binding scope`. + +.. _fls_vnai6ag4qrdb: + +Identifier Pattern Matching +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_4f3lzw64myhk` +An :t:`identifier pattern` with :t:`keyword` ``mut`` shall require that the +context :t:`value` is a :t:`mutable place expression`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_wauqwmdbcpna` +:dt:`Identifier pattern matching` proceeds as follows: + +#. :dp:`fls_3jyog8n6x2aa` + If the :t:`identifier pattern` has a :t:`bound pattern`, then + + #. :dp:`fls_w637uvlbzsyo` + Performed :t:`pattern matching` with the :t:`bound pattern` and the same + context :t:`value`. + + #. :dp:`fls_arz8ik3gf6u4` + If matching the :t:`bound pattern` fails, then matching fails. + +#. :dp:`fls_u6o5ndnezwbe` + The context :t:`value` is bound to the :t:`binding` of the + :t:`identifier pattern` according to the :t:`binding mode`. + +#. :dp:`fls_h1er04t0yta7` + Matching succeeds. + +.. _fls_azzf1llv3wf: + +Literal Pattern Matching +~~~~~~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Dynamic Semantics + +:dp:`fls_fqkhhgushje9` +:dt:`Literal pattern matching` proceeds as follows: + +#. :dp:`fls_m01eo9sa55s` + If the :t:`literal` of the :t:`literal pattern` and the context :t:`value` + are equal, then matching succeeds. + +#. :dp:`fls_294jtwbfq3p9` + Otherwise matching fails. + +.. _fls_5loglxds6zik: + +Parenthesized Pattern Matching +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Dynamic Semantics + +:dp:`fls_jajvvwoy3399` +:dt:`Parenthesized pattern matching` performs :t:`pattern matching` with its +:t:`subpattern` and the same context :t:`value`. + +.. _fls_d44aflefat88: + +Path Pattern Matching +~~~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Dynamic Semantics + +:dp:`fls_4faltss0xbn4` +:dt:`Path pattern matching` proceeds as follows: + +#. :dp:`fls_fqt5w3qsykca` + If the :t:`constant`, :t:`unit enum variant` or :t:`unit struct` the + :t:`path` of the :t:`path pattern` resolved to and the context :t:`value` + are equal, then matching succeeds. + +#. :dp:`fls_h3y8r4298s53` + Otherwise matching fails. + +.. _fls_fyskeih6twyb: + +Range Pattern Matching +~~~~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Dynamic Semantics + +:dp:`fls_mrh9vfdek5fi` +:dt:`Range pattern matching` proceeds as follows: + +#. :dp:`fls_7nxkgls0a5os` + If the :t:`range pattern` is expressed as a :t:`half-open range pattern` and + the context :t:`value` is in the inclusive range from the + :t:`range pattern low bound` to the maximum :t:`value` of the + :t:`range pattern low bound`'s :t:`type`, then matching succeeds. + +#. :dp:`fls_6kgj2fjccoig` + If the :t:`range pattern` is expressed as either an :t:`inclusive range + pattern` or an :t:`obsolete range pattern` and the context :t:`value` is in + the inclusive range from the :t:`range pattern low bound` to the + :t:`range pattern high bound`, then matching succeeds. + +#. :dp:`fls_n4t3xah1pk7i` + Otherwise matching fails. + +.. _fls_org6hqv397fp: + +Reference Pattern Matching +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Dynamic Semantics + +:dp:`fls_ysfgdzaiww8z` +:dt:`Reference pattern matching` proceeds as follows: + +#. :dp:`fls_7rxnxd4ybxbt` + Dereference the context :t:`value`. + +#. :dp:`fls_l2nwz166curc` + Perform :t:`pattern matching` with its :t:`subpattern` and the dereferenced + :t:`value`. + +.. _fls_57ic33pwdvp3: + +Slice Pattern Matching +~~~~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Dynamic Semantics + +:dp:`fls_hzyv4ofu0ny` +:dt:`Slice pattern matching` proceeds as follows: + +#. :dp:`fls_x10AKxoXXbs8` + If the expected :t:`type` is a :t:`slice type` then, + + #. :dp:`fls_69bnxrtj0nar` + If the number of :t:`[subpattern]s` of the :t:`slice pattern` is greater + than the length of the context :t:`value`, then matching fails. + + #. :dp:`fls_twhwiy213ibf` + If the number of :t:`[subpattern]s` of the :t:`slice pattern` is less than + the size of the context :t:`value` and one of those :t:`[subpattern]s` is + not a :t:`rest pattern`, then matching fails. + + #. :dp:`fls_ei7y4ul6n6hu` + For each :t:`subpattern` of the :t:`slice pattern`: + + #. :dp:`fls_ad2jud5h1rfp` + Perform :t:`pattern matching` with the :t:`subpattern` and the + corresponding :t:`value` from the context :t:`value`, ignoring + :t:`[rest pattern]s`. + + #. :dp:`fls_pc97m47p34wq` + If matching the :t:`subpattern` fails, then matching fails. + +#. :dp:`fls_kwQyiSoyAwZ8` + Otherwise, if the expected :t:`type` is an :t:`array type`, then + + #. :dp:`fls_zAdtysiuUwBX` + For each :t:`subpattern` of the :t:`slice pattern`: + + #. :dp:`fls_SezcYXcSlEq7` + Perform :t:`pattern matching` with the :t:`subpattern` and the + corresponding :t:`value` from the context :t:`value`, ignoring + :t:`[rest pattern]s`. + + #. :dp:`fls_6xRXEt2pGnZi` + If matching the :t:`subpattern` fails, then matching fails. + +.. _fls_asj8rgccvkoe: + +Record Struct Pattern Matching +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Dynamic Semantics + +:dp:`fls_evuhau2rwm8i` +:dt:`Record struct pattern matching` proceeds as follows: + +#. :dp:`fls_bde1hpvrosui` + If the number of :t:`[subpattern]s` of the :t:`record struct pattern` is less + than the number of :t:`[field]s` of the context :t:`value` and one of those + :t:`[subpattern]s` is not a :t:`rest pattern`, then matching fails. + +#. :dp:`fls_447s4hc07ozn` + For each :t:`subpattern` of the :t:`struct pattern` + + #. :dp:`fls_vfdb1i5l41yk` + If the :t:`subpattern` is a :t:`shorthand deconstructor`, then the + corresponding :t:`field` of the context :t:`value` is bound to the + :t:`binding` of the :t:`shorthand deconstructor` according to the + :t:`binding mode`. + + #. :dp:`fls_yfk52fr7trw3` + Otherwise perform :t:`pattern matching` with the :t:`subpattern` and the + corresponding :t:`field` from the context :t:`value`, ignoring :t:`[rest + pattern]s`. + + #. :dp:`fls_6sdcykdrpe5d` + If matching the :t:`subpattern` fails, then matching fails. + +.. _fls_eexupzdsu7f: + +Tuple Struct Pattern Matching +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Dynamic Semantics + +:dp:`fls_dexg9g9cct30` +:dt:`Tuple struct pattern matching` proceeds as follows: + +#. :dp:`fls_boc7juqj69hw` + For each :t:`subpattern` of the :t:`tuple struct pattern` + + #. :dp:`fls_4dr1stiw82v9` + Otherwise perform :t:`pattern matching` with the :t:`subpattern` and the + corresponding :t:`field` from the context :t:`value`, ignoring + :t:`[rest pattern]s`. + + #. :dp:`fls_h14emtt6iyk3` + If matching the :t:`subpattern` fails, then matching fails. + +.. _fls_rce8bb7nz2jy: + +Tuple Pattern Matching +~~~~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Dynamic Semantics + +:dp:`fls_w4xypnrnhycb` +:dt:`Tuple pattern matching` proceeds as follows: + +#. :dp:`fls_vnx1bpval595` + For each :t:`subpattern` of the :t:`tuple pattern` + + #. :dp:`fls_dzf32f40y7fr` + Perform :t:`pattern matching` with the :t:`subpattern` and the + corresponding :t:`field` from the context :t:`value`, ignoring + :t:`[rest pattern]s`. + + #. :dp:`fls_krl32txvxxkz` + If matching the :t:`subpattern` fails, then matching fails. + +.. _fls_yc4xm4hrfyw7: + +Underscore Pattern Matching +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Dynamic Semantics + +:dp:`fls_dvk7r1gf7pwp` +:dt:`Underscore pattern matching` proceeds as follows: + +#. :dp:`fls_e0uprihqn1y6` + The context :t:`value` is matched unconditionally. + +#. :dp:`fls_ljcq2vyo052q` + Matching succeeds. diff --git a/_sources/program-structure-and-compilation.rst.txt b/_sources/program-structure-and-compilation.rst.txt new file mode 100644 index 00000000..ff5f02bb --- /dev/null +++ b/_sources/program-structure-and-compilation.rst.txt @@ -0,0 +1,226 @@ +.. SPDX-License-Identifier: MIT OR Apache-2.0 + SPDX-FileCopyrightText: The Ferrocene Developers + +.. default-domain:: spec + +.. _fls_hdwwrsyunir: + +Program Structure and Compilation +================================= + +.. _fls_s35hob3i7lr: + +Source Files +------------ + +.. rubric:: Syntax + +.. syntax:: + + SourceFile ::= + ZeroWidthNoBreakSpace? + Shebang? + InnerAttributeOrDoc* + Item* + + ZeroWidthNoBreakSpace ::= + $$\u{FEFF}$$ + + Shebang ::= + $$#!$$ ~[NewLine]* + + NewLine ::= + $$\n$$ + +.. rubric:: Legality Rules + +:dp:`fls_4vicosdeaqmp` +A :t:`source file` contains the program text consisting of :t:`[inner +attribute]s`, :t:`[inner doc comment]s`, and :t:`[item]s`. The location of a +:t:`source file` is tool defined. + +:dp:`fls_ann3cha1xpek` +A :s:`Shebang` does not have an effect on the compilation. + +.. _fls_e9hwvqsib5d5: + +Modules +------- + +.. rubric:: Syntax + +.. syntax:: + + ModuleDeclaration ::= + $$unsafe$$? $$mod$$ Name ModuleSpecification + + ModuleSpecification ::= + InlineModuleSpecification + | OutlineModuleSpecification + + InlineModuleSpecification ::= + $${$$ + InnerAttributeOrDoc* + Item* + $$}$$ + + OutlineModuleSpecification ::= + $$;$$ + +.. rubric:: Legality Rules + +:dp:`fls_odd1hj3y1mgu` +A :t:`module` is a container for zero or more :t:`[item]s`. + +:dp:`fls_whgv72emrm47` +The ``unsafe`` :t:`keyword` of an :t:`module` is rejected, but may still +be consumed by :t:`[macro]s`. + +:dp:`fls_qypjjpcf8uwq` +An :t:`inline module` is a :t:`module` with an :s:`InlineModuleSpecification`. + +:dp:`fls_cavwpr1ybk37` +An :t:`outline module` is a :t:`module` with an :s:`OutlineModuleSpecification`. + +:dp:`fls_plepew2319g4` +An :t:`outline module` loads a :t:`source file` and considers the text of the +:t:`source file` to be inlined within the context of the :t:`outline module`. + +:dp:`fls_1aruwps62c4p` +The location of a :t:`module` :t:`source file` can be specified using +:t:`attribute` :c:`path`. + +.. rubric:: Examples + +.. code-block:: rust + + #[path = "path/to/module"] + pub mod module { + #![allow(dead_code)] + + struct Struct; + pub mod other; + } + +.. _fls_maw4u1o8q37u: + +Crates +------ + +.. rubric:: Legality Rules + +:dp:`fls_qwghk79ok5h0` +A :t:`crate` is a unit of compilation and linking that contains a tree of +nested :t:`[module]s`. + +:dp:`fls_9ub6ks8qrang` +A :t:`binary crate` is a :t:`crate` that contains a :t:`main function`. A tool +can compile a :t:`binary crate` to an executable. + +:dp:`fls_d9nn4yuiw1ja` +A :t:`library crate` is either a :t:`crate` without a :t:`main function` or a +:t:`crate` subject to :t:`attribute` :c:`no_main`. A tool is free to compile a +:t:`library crate` to a shared library. + +:dp:`fls_Mf62VqAhoZ3c` +A :t:`proc-macro crate` is a :t:`crate` that contains :t:`[procedural macro]s`. +A tool is free to compile a :t:`proc-macro crate` to a shared library. + +:dp:`fls_cXLyCjs9T3Mj` +A :t:`proc-macro crate` shall not declare :t:`[item]s` with +:t:`public visibility` unless the :t:`item` is a :t:`procedural macro`. + +:dp:`fls_h93C3wfbAoz1` +Only a :t:`proc-macro crate` shall declare :t:`[procedural macro]s`. + +.. _fls_gklst7joeo33: + +Crate Imports +------------- + +.. rubric:: Syntax + +.. syntax:: + + ExternalCrateImport ::= + $$extern$$ $$crate$$ CrateIndication Renaming? $$;$$ + + CrateIndication ::= + Identifier + | $$self$$ + +.. rubric:: Legality Rules + +:dp:`fls_d0pa807s5d5h` +A :t:`crate import` specifies a required dependency on an external :t:`crate`. + +:dp:`fls_vfam3wzeAiah` +A :t:`crate indication` is a :t:`construct` that indicates a :t:`crate`. + +:dp:`fls_ft860vkz0lkc` +A :t:`crate import` binds an external :t:`crate` to its :t:`crate indication`. + +:dp:`fls_k90qtnf8kgu1` +:t:`Crate indication` ``self`` shall require a :t:`renaming`. + +:dp:`fls_siv8bl6s2ndu` +A :t:`crate import` with a :t:`renaming` with an :t:`identifier` binds the +external :t:`crate` to a local :t:`name` and introduces the local :t:`name` into +the enclosing :t:`scope`. + +:dp:`fls_7vz5n3x6jo1s` +If a :t:`crate import` appears at the :t:`crate root module`, then the +:t:`crate indication` is added to the :t:`external prelude`. + +:dp:`fls_3bgpc8m8yk4p` +A :t:`crate indication` shall resolve to an external :t:`crate`. The process of +resolving a :t:`crate indication` to an external :t:`crate` is tool-defined. + +.. _fls_5w50kf83oo1u: + +Compilation Roots +----------------- + +.. rubric:: Legality Rules + +:dp:`fls_fhiqvgdamq5` +A :t:`crate root module` is the root of the nested :t:`module` tree of a +:t:`crate`. + +:dp:`fls_tk8tl2e0a34` +A tool can define a :t:`crate root module` for a single :t:`crate`. + +:dp:`fls_bsyfxdk3ap1t` +A :t:`compilation root` is an input to a compilation performed by a tool. A +:t:`crate root module` is a :t:`compilation root`. + +.. _fls_u1afezy1ye99: + +Conditional Compilation +----------------------- + +.. rubric:: Legality Rules + +:dp:`fls_9stc6nul6vq9` +:t:`Conditionally-compiled source code` is source code that may or may +not be considered a part of a Rust program depending on +:t:`[configuration predicate]s`. + +:dp:`fls_a0u9nnaf6drz` +:t:`Conditional compilation` is the process of compiling +:t:`conditionally-compiled source code`. + +:dp:`fls_pf1v89h7pjhh` +A :t:`construct` subject to :t:`attribute` :c:`cfg` where the related +:t:`configuration predicate` evaluates to ``false`` is not considered part of a +Rust program. + +:dp:`fls_y56RGw3cbFex` +A :t:`crate root module` subject to :t:`attribute` :c:`cfg` where the related +:t:`configuration predicate` evaluates to ``false`` is considered empty except +for all :t:`[attribute]s` up to the invoked :t:`attribute` :c:`cfg`. + +:dp:`fls_h6b1fuw4nvi1` +An :t:`attribute` :c:`cfg_attr` where the related :t:`configuration predicate` +evaluates to ``false`` is not considered part of a Rust program. + diff --git a/_sources/statements.rst.txt b/_sources/statements.rst.txt new file mode 100644 index 00000000..1e84ceba --- /dev/null +++ b/_sources/statements.rst.txt @@ -0,0 +1,198 @@ +.. SPDX-License-Identifier: MIT OR Apache-2.0 + SPDX-FileCopyrightText: The Ferrocene Developers + +.. default-domain:: spec + +.. _fls_wdicg3sqa98e: + +Statements +========== + +.. rubric:: Syntax + +.. syntax:: + + Statement ::= + ExpressionStatement + | Item + | LetStatement + | TerminatedMacroInvocation + | $$;$$ + +.. rubric:: Legality Rules + +:dp:`fls_7zh6ziglo5iy` +An :t:`expression statement` is an :t:`expression` whose result is ignored. + +:dp:`fls_kdxe1ukmgl1` +An :t:`item statement` is a :t:`statement` that is expressed as an :t:`item`. + +:dp:`fls_fftdnwe22xrb` +An :t:`empty statement` is a :t:`statement` expressed as character 0x3B +(semicolon). + +:dp:`fls_or125cqtxg9j` +A :t:`macro statement` is a :t:`statement` expressed as a +:t:`terminated macro invocation`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_estqu395zxgk` +:t:`Execution` is the process by which a :t:`statement` achieves its runtime +effects. + +:dp:`fls_dl763ssb54q1` +The :t:`execution` of an :t:`empty statement` has no effect. + +.. _fls_yivm43r5wnp1: + +Let Statements +-------------- + +.. rubric:: Syntax + +.. syntax:: + + LetStatement ::= + OuterAttributeOrDoc* $$let$$ PatternWithoutAlternation TypeAscription? LetInitializer? $$;$$ + + LetInitializer ::= + $$=$$ Expression ($$else$$ BlockExpression)? + +.. rubric:: Legality Rules + +:dp:`fls_ct7pp7jnfr86` +A :t:`let statement` is a :t:`statement` that introduces new :t:`[binding]s` +produced by its :t:`pattern-without-alternation` that are optionally +initialized to a :t:`value`. + +:dp:`fls_SR3dIgR5K0Kq` +A :t:`let initializer` is a :t:`construct` that provides the :t:`value` of +the :t:`[binding]s` of the :t:`let statement` using an :t:`expression`, or +alternatively executes a :t:`block expression`. + +:dp:`fls_iqar7vvtw22c` +If a :t:`let statement` lacks a :t:`block expression`, then the :t:`pattern` of +the :t:`let statement` shall be an :t:`irrefutable pattern`. + +:dp:`fls_1prqh1trybwz` +The :t:`type` of a :t:`binding` introduced by a :t:`let statement` is +determined as follows: + +* :dp:`fls_djkm8r2iuu6u` + If the :t:`let statement` appears with a :t:`type ascription`, then the + :t:`type` is the :t:`type` specified by the :t:`type ascription`. + +* :dp:`fls_ppj9gvhp8wcj` + If the :t:`let statement` lacks a :t:`type ascription`, then the :t:`type` is + inferred using :t:`type inference`. + +:dp:`fls_1eBQDZdBuDsN` +The :t:`type` of the :t:`block expression` of a :t:`let statement` shall be the +:t:`never type`. + +:dp:`fls_m8a7gesa4oim` +The :t:`value` of a :t:`binding` introduced by a :t:`let statement` is +determined as follows: + +* :dp:`fls_oaxnre7m9s10` + If the :t:`let statement` appears with a :t:`let initializer`, then the + :t:`value` is the :t:`value` of the :t:`expression` of the + :t:`let initializer`. + +* :dp:`fls_t5bjwluyv8za` + Otherwise the :t:`binding` is uninitialized. + +.. rubric:: Dynamic Semantics + +:dp:`fls_4j9riqyf4p9` +The :t:`execution` of a :t:`let statement` with a :t:`let initializer` proceeds +as follows: + +#. :dp:`fls_t53g5hlabqw1` + The :t:`expression` of the :t:`let initializer` is evaluated. + +#. :dp:`fls_7j4qlwg72ege` + If the :t:`value` of the :t:`expression` is matched successfully against the + :t:`pattern` of the :t:`let statement`, then the :t:`value` is assigned to + each :t:`binding` introduced by the :t:`let statement`. + +#. :dp:`fls_ea9bRFZjH8Im` + Otherwise the :t:`block expression` of the :t:`let initializer` is evaluated. + +.. rubric:: Examples + +.. code-block:: rust + + let local = 0; + let local: u32; + let (a, b) = (0, 0); + let Some(value) = vector.pop() else { + panic!(); + }; + +.. _fls_1pg5ig740tg1: + +Expression Statements +--------------------- + +.. rubric:: Syntax + +.. syntax:: + + ExpressionStatement ::= + ExpressionWithBlock $$;$$? + | ExpressionWithoutBlock $$;$$ + +.. rubric:: Legality Rules + +:dp:`fls_xmdj8uj7ixoe` +An :t:`expression statement` is an :t:`expression` whose result is ignored. + +:dp:`fls_gzzmudc1hl6s` +The :t:`expected type` of an :t:`expression statement` without character 0x3B +(semicolon) is the :t:`unit type`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_kc99n8qrszxh` +The :t:`execution` of an :t:`expression statement` proceeds as follows: + +#. :dp:`fls_r8poocwqaglf` + The :t:`operand` is evaluated. + +#. :dp:`fls_88e6s3erk8tj` + The :t:`value` of the :t:`operand` is :t:`dropped`. + +.. rubric:: Examples + +.. code-block:: rust + + let mut values = vec![1, 2, 3]; + +:dp:`fls_4q90jb39apwr` +The following expression statement ignores the result from ``pop()``. + +.. code-block:: rust + + values.pop(); + +:dp:`fls_xqtztcu8ibwq` +The following expression statement does not require a semicolon. + +.. code-block:: rust + + if values.is_empty() { + values.push(42); + } + else { + values.remove(0); + } + +:dp:`fls_2p9xnt519nbw` +The following expression statement is not an index expression. + +.. code-block:: rust + + [42]; + diff --git a/_sources/types-and-traits.rst.txt b/_sources/types-and-traits.rst.txt new file mode 100644 index 00000000..b918cc56 --- /dev/null +++ b/_sources/types-and-traits.rst.txt @@ -0,0 +1,3373 @@ +.. SPDX-License-Identifier: MIT OR Apache-2.0 + SPDX-FileCopyrightText: The Ferrocene Developers + +.. default-domain:: spec + +.. _fls_vgb6ev541b2r: + +Types and Traits +================ + +.. _fls_kwsBxMQNTRnL: + +Types +----- + +.. rubric:: Syntax + +.. syntax:: + + TypeSpecification ::= + ImplTraitTypeSpecification + | TraitObjectTypeSpecification + | TypeSpecificationWithoutBounds + + TypeSpecificationList ::= + TypeSpecification (, TypeSpecification)* $$,$$? + + TypeSpecificationWithoutBounds ::= + ArrayTypeSpecification + | FunctionPointerTypeSpecification + | ImplTraitTypeSpecificationOneBound + | InferredType + | MacroInvocation + | NeverType + | ParenthesizedTypeSpecification + | QualifiedTypePath + | RawPointerTypeSpecification + | ReferenceTypeSpecification + | SliceTypeSpecification + | TraitObjectTypeSpecificationOneBound + | TupleTypeSpecification + | TypePath + + TypeAscription ::= + $$:$$ TypeSpecification + +.. rubric:: Legality Rules + +:dp:`fls_4rhjpdu4zfqj` +A :t:`type` defines a set of :t:`[value]s` and a set of operations that act on +those :t:`[value]s`. + +:dp:`fls_0yaYKnFrJkhG` +A :t:`local type` is a :t:`type` that is defined in the current :t:`crate`. + +.. _fls_963gsjp2jas2: + +Type Classification +------------------- + +.. informational-section:: + +.. rubric:: Legality Rules + +:dp:`fls_c4xe3pkn0n3o` +:t:`[Type]s` are organized in the following categories: + +* :dp:`fls_69zyas59o8ff` + :t:`[Scalar type]s` + + * :dp:`fls_65hcyqizo1da` + :c:`Bool` :t:`type` + + * :dp:`fls_zge99l49az8w` + :c:`Char` :t:`type` + + * :dp:`fls_vizoconv3ir` + :t:`[Numeric type]s` + + * :dp:`fls_ne6bgnh1eyrj` + :t:`Floating-point type` + + * :dp:`fls_jvj8l8366kl2` + :t:`Integer type` + +* :dp:`fls_eek1jn1rwjh9` + :t:`[Sequence type]s` + + * :dp:`fls_s0aduyvz4i7f` + :t:`[Array type]s` + + * :dp:`fls_zb5e79ai7w5i` + :t:`[Slice type]s` + + * :dp:`fls_yjp19vt46asy` + :c:`Str` :t:`type` + + * :dp:`fls_xflj5df6upc7` + :t:`[Tuple type]s` + +* :dp:`fls_u43jnp9jnw29` + :t:`[Abstract data type]s` + + * :dp:`fls_lric8bf631nw` + :t:`[Enum type]s` + + * :dp:`fls_98djh9avlqc0` + :t:`[Struct type]s` + + * :dp:`fls_b3ymsm8dmo4` + :t:`[Union type]s` + +* :dp:`fls_9x5atvhdq0j2` + :t:`[Function type]s` + + * :dp:`fls_n5rgqgnxk9to` + :t:`[Closure type]s` + + * :dp:`fls_s7ndqc5sizdy` + :t:`[Function item type]s` + +* :dp:`fls_jrohsv7hx7yw` + :t:`[Indirection type]s` + + * :dp:`fls_1kg1mknf4yx7` + :t:`[Function pointer type]s` + + * :dp:`fls_bw8zutjcteki` + :t:`[Raw pointer type]s` + + * :dp:`fls_nqezuc9u6wpn` + :t:`[Reference type]s` + +* :dp:`fls_lh52q6f6snfh` + :t:`[Trait type]s` + + * :dp:`fls_qqg0uixrd1a4` + :t:`[Impl trait type]s` + + * :dp:`fls_b8ecqp2argmn` + :t:`[Trait object type]s` + +* :dp:`fls_m5vtcars8aga` + Other :t:`[type]s` + + * :dp:`fls_lw38557rqikt` + :t:`[Inferred type]s` + + * :dp:`fls_jxn63ow9xby3` + :t:`Never type` + + * :dp:`fls_a81tweobvm0p` + :t:`[Parenthesized type]s` + +.. _fls_id66vnaqw0zt: + +Scalar Types +------------ + +.. _fls_tiqp1gxf116z: + +Bool Type +~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_h5994su1yft3` +:c:`Bool` is a :t:`type` whose :t:`[value]s` denote the truth :t:`[value]s` of +logic and Boolean algebra. + +:dp:`fls_v8atmrwz6wzk` +:t:`Type` :c:`bool` appears in the :t:`language prelude` under the name +``bool``. + +:dp:`fls_iye7ho2ynyhn` +Boolean :t:`value` ``false`` has bit pattern ``0x00``. Boolean :t:`value` +``true`` has bit pattern ``0x01``. + +:dp:`fls_7nd5tixyqir8` +The following operations are defined on :t:`type` :c:`bool`: + +:dp:`fls_w2dzqq54fjhb` +**Logical not** + +.. list-table:: + + * - :dp:`fls_ufmd38hi9t9y` + - **a** + - **!a** + * - :dp:`fls_5allcjkjnon2` + - ``true`` + - ``false`` + * - :dp:`fls_3bibysz95ktn` + - ``false`` + - ``true`` + +:dp:`fls_fxq19dqtmifj` +**Logical and** + +.. list-table:: + + * - :dp:`fls_drhpcwoblcux` + - **a** + - **b** + - **a & b** + * - :dp:`fls_v86qrsqcs3nd` + - ``true`` + - ``true`` + - ``true`` + * - :dp:`fls_dd49lb2k3erc` + - ``true`` + - ``false`` + - ``false`` + * - :dp:`fls_t6ef5x4x5poi` + - ``false`` + - ``true`` + - ``false`` + * - :dp:`fls_kqtgjgn1hqrj` + - ``false`` + - ``false`` + - ``false`` + +:dp:`fls_ws15ilzf8n6z` +**Logical or** + +.. list-table:: + + * - :dp:`fls_ni4mgq3mouek` + - **a** + - **b** + - **a | b** + * - :dp:`fls_6c9ax4qsr1gy` + - ``true`` + - ``true`` + - ``true`` + * - :dp:`fls_sqcgvpr4egtx` + - ``true`` + - ``false`` + - ``true`` + * - :dp:`fls_9ys0itbp4okd` + - ``false`` + - ``true`` + - ``true`` + * - :dp:`fls_b46gbyid15zx` + - ``false`` + - ``false`` + - ``false`` + +:dp:`fls_f8ag276ecbze` +**Logical exclusive or (xor)** + +.. list-table:: + + * - :dp:`fls_twwjcrcfirdi` + - **a** + - **b** + - **a ^ b** + * - :dp:`fls_wovu7330vdrq` + - ``true`` + - ``true`` + - ``false`` + * - :dp:`fls_7xopdco6iy74` + - ``true`` + - ``false`` + - ``true`` + * - :dp:`fls_nb5cb6en2p5w` + - ``false`` + - ``true`` + - ``true`` + * - :dp:`fls_gd28wfcfs2pv` + - ``false`` + - ``false`` + - ``false`` + +:dp:`fls_67a7p57nzbul` +**Equality** + +.. list-table:: + + * - :dp:`fls_cq0qunw51m94` + - **a** + - **b** + - **a == b** + * - :dp:`fls_o1e4tnh7v3db` + - ``true`` + - ``true`` + - ``true`` + * - :dp:`fls_6vnv3ygisjr` + - ``true`` + - ``false`` + - ``false`` + * - :dp:`fls_s6m9abmmtc9i` + - ``false`` + - ``true`` + - ``false`` + * - :dp:`fls_s19vu65z96y5` + - ``false`` + - ``false`` + - ``true`` + +:dp:`fls_2d4aqspw0wlt` +**Greater than** + +.. list-table:: + + * - :dp:`fls_msjo2zd67zn1` + - **a** + - **b** + - **a > b** + * - :dp:`fls_w1oti03tm1y6` + - ``true`` + - ``true`` + - ``false`` + * - :dp:`fls_9gqd7eevbknt` + - ``true`` + - ``false`` + - ``true`` + * - :dp:`fls_r4o2rmhqg4br` + - ``false`` + - ``true`` + - ``false`` + * - :dp:`fls_1n7p6ij1dpm` + - ``false`` + - ``false`` + - ``false`` + +:dp:`fls_4x27kfiodb8` +Operation ``a != b`` is equivalent to ``!(a == b)``. + +:dp:`fls_me6bf9m2ypt` +Operation ``a >= b`` is equivalent to ``a == b | a > b``. + +:dp:`fls_2j659ns8wop4` +Operation ``a < b`` is equivalent to ``!(a >= b)``. + +:dp:`fls_d09l2rl0161l` +Operation ``a <= b`` is equivalent to ``a == b | a < b``. + +.. rubric:: Undefined Behavior + +:dp:`fls_2sd39mj05mb9` +It is a :t:`validity invariant` for a :t:`value` of :t:`type` :c:`bool` to have +a bit pattern of ``0x00`` and ``0x01``. + +.. _fls_wrvjizrqf3po: + +Char Type +~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_vnwbs0exbwcn` +:c:`Char` is a :t:`type` whose :t:`[value]s` are represented as a 32-bit +unsigned word in the 0x000 - 0xD7FF or the 0xE000 - 0x10FFFF inclusive ranges +of :t:`Unicode`. + +.. rubric:: Undefined Behavior + +:dp:`fls_juysxea25owj` +It is a :t:`validity invariant` for a :t:`value` of :t:`type` :c:`char` to be +inside the 0x000 - 0xD7FF or the 0xE000 - 0x10FFFF inclusive ranges of +:t:`Unicode`. + +.. _fls_qwljwqr07slp: + +Numeric Types +~~~~~~~~~~~~~ + +.. _fls_b4xporvr64s: + +Floating Point Types +^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Legality Rules + +:dp:`fls_30yny2xb9b6b` +:t:`Type` :c:`f32` is equivalent to the IEEE 754-2008 binary32 :t:`type`. + +:dp:`fls_yqflrq9s6p6n` +:t:`Type` :c:`f64` is equivalent to the IEEE 754-2008 binary64 :t:`type`. + +.. _fls_3qnpv2z7yjil: + +Integer Types +^^^^^^^^^^^^^ + +.. rubric:: Legality Rules + +:dp:`fls_cokwseo3nnr` +:t:`[Unsigned integer type]s` define the following inclusive ranges over the +domain of whole numbers: + +.. list-table:: + + * - :dp:`fls_vk1skn6ek36u` + - **Type** + - **Minimum** + - **Maximum** + * - :dp:`fls_iikexw8ps6mk` + - :c:`u8` + - 0 + - 2\ :sup:`8` - 1 + * - :dp:`fls_cavasxxlgs7g` + - :c:`u16` + - 0 + - 2\ :sup:`16` - 1 + * - :dp:`fls_7sx92xsjx3pl` + - :c:`u32` + - 0 + - 2\ :sup:`32` - 1 + * - :dp:`fls_q9f95uet7gq4` + - :c:`u64` + - 0 + - 2\ :sup:`64` - 1 + * - :dp:`fls_yjb3kzijd19v` + - :c:`u128` + - 0 + - 2\ :sup:`128` - 1 + +:dp:`fls_75lntwhg20l` +:t:`Type` :c:`usize` has the same number of bits as the platform's +:t:`pointer type`, and is at least 16-bits wide. + +:dp:`fls_p2shoji3xg5a` +:t:`[Signed integer type]s` define the following inclusive ranges over the +domain of whole numbers: + +.. list-table:: + + * - :dp:`fls_fsyt05u9y4sl` + - **Type** + - **Minimum** + - **Maximum** + * - :dp:`fls_p9ffvtajr832` + - :c:`i8` + - \- (2\ :sup:`7`) + - 2\ :sup:`7` - 1 + * - :dp:`fls_j6xan9f8udw7` + - :c:`i16` + - \- (2\ :sup:`15`) + - 2\ :sup:`15` - 1 + * - :dp:`fls_4t39p3ibkzu7` + - :c:`i32` + - \- (2\ :sup:`31`) + - 2\ :sup:`31` - 1 + * - :dp:`fls_egfoxke0lzje` + - :c:`i64` + - \- (2\ :sup:`63`) + - 2\ :sup:`63` - 1 + * - :dp:`fls_4c4qpel1tbqs` + - :c:`i128` + - \- (2\ :sup:`127`) + - 2\ :sup:`127` - 1 + +:dp:`fls_t9oyfmgqka6u` +:t:`Type` :c:`isize` has the same number of bits as the platform's +:t:`pointer type`, and is at least 16-bits wide. + +.. _fls_fbchw64p6n2x: + +Sequence Types +-------------- + +.. _fls_uj0kpjwyld60: + +Array Types +~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + ArrayTypeSpecification ::= + $$[$$ ElementType $$;$$ SizeOperand $$]$$ + + ElementType ::= + TypeSpecification + +.. rubric:: Legality Rules + +:dp:`fls_fx7b3qv3ghca` +An :t:`array type` is a :t:`sequence type` that represents a fixed sequence +of elements. + +:dp:`fls_pkts1p2dnxo` +The :t:`element type` shall be a :t:`fixed sized type`. + +:dp:`fls_imr2jx6cbuzq` +The :t:`size operand` shall be a :t:`constant expression`. + +:dp:`fls_r8nqxry2dlww` +The :t:`type` of the :t:`size operand` is :t:`type` :c:`usize`. + +.. rubric:: Examples + +:dp:`fls_9vjijqi9w8wn` +An array type in the context of a let statement: + +.. code-block:: rust + + let array: [i32; 3] = [1, 2, 3]; + +.. _fls_vpbikb73dw4k: + +Slice Types +~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + SliceTypeSpecification ::= + $$[$$ ElementType $$]$$ + +.. rubric:: Legality Rules + +:dp:`fls_ftvua2hlvr08` +A :t:`slice type` is a :t:`sequence type` that provides a view into a sequence +of elements. + +:dp:`fls_acgtczhk8ci0` +The :t:`element type` shall be a :t:`fixed sized type`. + +:dp:`fls_5gl67ftc3m21` +A :t:`slice type` is a :t:`dynamically sized type`. + +.. rubric:: Examples + +:dp:`fls_nsny832ap4v1` +A slice type in the context of a let statement: + +.. code-block:: rust + + let array: [i32; 3] = [1, 2, 3]; + let slice: &[i32] = &array[0..1]; + +.. _fls_4agmmu5al6gt: + +Str Type +~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_wlnoq1qoq2kr` +:c:`Str` is a :t:`sequence type` that represents a :t:`slice` of 8-bit unsigned +bytes. + +:dp:`fls_1xa6fas6laha` +:t:`Type` :c:`str` is a :t:`dynamically sized type`. + +:dp:`fls_yu7r2077n9m7` +A :t:`value` of :t:`type` :c:`str` shall denote a valid UTF-8 sequence of +characters. + +.. rubric:: Undefined Behavior + +:dp:`fls_wacoqrtzvrwu` +It is a :t:`safety invariant` for a :t:`value` of :t:`type` :c:`str` to denote +a valid UTF-8 sequence of characters. + +.. _fls_4ckl3n2ko3i4: + +Tuple Types +~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + TupleTypeSpecification ::= + $$($$ TupleFieldList? $$)$$ + + TupleFieldList ::= + TupleField (, TupleField)* ,? + + TupleField ::= + TypeSpecification + +.. rubric:: Legality Rules + +:dp:`fls_bn7wmf681ngt` +A :t:`tuple type` is a :t:`sequence type` that represents a heterogeneous list +of other :t:`[type]s`. + +:dp:`fls_s9a36zsrfqew` +If the :t:`type` of a :t:`tuple field` is a :t:`dynamically-sized type`, then +the :t:`tuple field` shall be the last :t:`tuple field` in the +:s:`TupleFieldList`. + +.. rubric:: Examples + +.. code-block:: rust + + () + (char,) + (i32, f64, Vec) + +.. _fls_wdec78luqh5b: + +Abstract Data Types +------------------- + +.. _fls_szibmtfv117b: + +Enum Types +~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + EnumDeclaration ::= + $$enum$$ Name GenericParameterList? WhereClause? $${$$ EnumVariantList? $$}$$ + + EnumVariantList ::= + EnumVariant ($$,$$ EnumVariant)* $$,$$? + + EnumVariant ::= + OuterAttributeOrDoc* VisibilityModifier? Name EnumVariantKind? + + EnumVariantKind ::= + DiscriminantInitializer + | RecordStructFieldList + | TupleStructFieldList + + DiscriminantInitializer ::= + $$=$$ Expression + +.. rubric:: Legality Rules + +:dp:`fls_gbdd37seqoab` +An :t:`enum type` is an :t:`abstract data type` that contains +:t:`[enum variant]s`. + +:dp:`fls_il9a1olqmu38` +A :t:`zero-variant enum type` has no :t:`[value]s`. + +:dp:`fls_wQTFwl88VujQ` +An :t:`enum variant` is a :t:`construct` that declares one of the +possible variations of an :t:`enum`. + +:dp:`fls_g5qle7xzaoif` +The :t:`name` of an :t:`enum variant` shall be unique within the related +:s:`EnumDeclaration`. + +:dp:`fls_t4yeovFm83Wo` +A :t:`discriminant` is an opaque integer that identifies an :t:`enum variant`. + +:dp:`fls_hp5frc752dam` +A :t:`discriminant initializer` shall be specified only when all :t:`[enum +variant]s` appear without an :s:`EnumVariantKind`. + +:dp:`fls_pijczoq4k9ij` +The :t:`type` of the :t:`expression` of a :t:`discriminant initializer` shall +be either: + +* :dp:`fls_x7nh42on06bg` + The :t:`type` of the :t:`primitive representation` specified by :t:`attribute` + :c:`repr`, or + +* :dp:`fls_duqbzvpuehvv` + :t:`Type` :c:`isize`. + +:dp:`fls_ly183pj4fkgh` +The :t:`value` of the :t:`expression` of a :t:`discriminant initializer` shall +be a :t:`constant expression`. + +:dp:`fls_w7sggezgq9o4` +The :t:`value` of a :t:`discriminant` of an :t:`enum variant` is determined +as follows: + +#. :dp:`fls_93l5o6qar5p2` + If the :t:`enum variant` contains a :t:`discriminant initializer`, then the + :t:`value` is the value of its :t:`expression`. + +#. :dp:`fls_t36rk3wikq28` + Otherwise, if the :t:`enum variant` is the first :t:`enum variant` in the + :s:`EnumVariantList`, then the :t:`value` is zero. + +#. :dp:`fls_8ajw5trd23wi` + Otherwise the :t:`value` is one greater than the :t:`value` of the + :t:`discriminant` of the previous :t:`enum variant`. + +:dp:`fls_w9xj26ej869w` +It is a static error if two :t:`[enum variant]s` have :t:`[discriminant]s` +with the same :t:`value`. + +:dp:`fls_wqbuof7kxsrg` +It is a static error if the :t:`value` of a :t:`discriminant` exceeds the +maximum :t:`value` of the :t:`type` of the :t:`expression` of a :t:`discriminant +initializer`. + +.. rubric:: Undefined Behavior + +:dp:`fls_f046du2fkgr6` +It is a :t:`validity invariant` for a :t:`value` of an :t:`enum type` to have a +:t:`discriminant` specified by the :t:`enum type`. + +.. rubric:: Examples + +.. code-block:: rust + + enum ZeroVariantEnumType {} + + enum Animal { + Cat, + Dog(String), + Otter { name: String, weight: f64, age: u8 } + } + + enum Discriminants { + First, // The discriminant is 0. + Second, // The discriminant is 1. + Third = 12, // The discriminant is 12. + Fourth, // The discriminant is 13. + Fifth = 34, // The discriminant is 34. + Sixth // The discriminant is 35. + } + +.. _fls_9ucqbbd0s2yo: + +Struct Types +~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + StructDeclaration ::= + RecordStructDeclaration + | TupleStructDeclaration + | UnitStructDeclaration + + RecordStructDeclaration ::= + $$struct$$ Name GenericParameterList? WhereClause? RecordStructFieldList + + RecordStructFieldList ::= + $${$$ (RecordStructField ($$,$$ RecordStructField)* $$,$$?)? $$}$$ + + RecordStructField ::= + OuterAttributeOrDoc* VisibilityModifier? Name TypeAscription + + TupleStructDeclaration ::= + $$struct$$ Name GenericParameterList? TupleStructFieldList WhereClause? $$;$$ + + TupleStructFieldList ::= + $$($$ (TupleStructField ($$,$$ TupleStructField)* $$,$$?)? $$)$$ + + TupleStructField ::= + OuterAttributeOrDoc* VisibilityModifier? TypeSpecification + + UnitStructDeclaration ::= + $$struct$$ Name GenericParameterList? WhereClause? $$;$$ + +.. rubric:: Legality Rules + +:dp:`fls_g1azfj548136` +A :t:`struct type` is an :t:`abstract data type` that is a product of other +:t:`[type]s`. + +:dp:`fls_r885av95eivp` +The :t:`name` of a :t:`record struct field` shall be unique within the +related :s:`RecordStructDeclaration`. + +:dp:`fls_auurdv1zvzb` +If the :t:`type` of a :t:`record struct field` is a :t:`dynamically sized type`, +then the :t:`record struct field` shall be the last :t:`record struct field` in +the :s:`RecordStructFieldList`. + +:dp:`fls_vce7w0904du5` +If the :t:`type` of a :t:`tuple struct field` is a :t:`dynamically sized type`, +then the :t:`tuple struct field` shall be the last :t:`tuple struct field` in +the :s:`TupleStructFieldList`. + +.. rubric:: Examples + +.. code-block:: rust + + struct UnitStruct; + + struct AnimalRecordStruct { + name: String, + weight: f64, + age: u8 + } + + struct AnimalTupleStruct ( + String, + f64, + u8 + ); + +.. _fls_fmdn7n7s413d: + +Union Types +~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + UnionDeclaration ::= + $$union$$ Name GenericParameterList? WhereClause? RecordStructFieldList + +.. rubric:: Legality Rules + +:dp:`fls_nskmnzq95yqm` +A :t:`union type` is an :t:`abstract data type` that is a sum of other +:t:`types`. + +:dp:`fls_1caus8ybmfli` +The :t:`name` of a :t:`union field` shall be unique within the related +:s:`RecordStructDeclaration`. + +:dp:`fls_ZJG2Q6lJYXhY` +The :t:`type` of a :t:`union field` shall be either: + +* :dp:`fls_hLTnHnZuaHve` + A :t:`copy type`, or + +* :dp:`fls_JWgSckDtN13c` + A :t:`mutable reference type`, or + +* :dp:`fls_sXZknxozJxtC` + :std:`core::mem::ManuallyDrop`, or + +* :dp:`fls_vgNK01SXacnx` + A :t:`tuple type` whose :t:`[tuple field]s`' :t:`[type]s` are all valid + :t:`union field` :t:`[type]s`, or + +* :dp:`fls_bQhh3zHAKjSu` + An :t:`array type` whose :t:`element type` is a valid :t:`union field` + :t:`[type]s`. + +.. rubric:: Examples + +.. code-block:: rust + + union LeafNode { + int: i32, + float: f32, + double: f64 + } + +.. _fls_hbbek3z4wtcs: + +Function Types +-------------- + +.. _fls_xd2oxlebhs14: + +Closure Types +~~~~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_bsykgnbatpmi` +A :t:`closure type` is a unique anonymous :t:`function type` that encapsulates +all :t:`[capture target]s` of a :t:`closure expression`. + +:dp:`fls_zfj4l8bigdg0` +A :t:`closure type` implements the :std:`core::ops::FnOnce` :t:`trait`. + +:dp:`fls_bn0ueivujnqk` +A :t:`closure type` that does not move out its :t:`[capture target]s` +implements the :std:`core::ops::FnMut` :t:`trait`. + +:dp:`fls_u01kt5glbuz8` +A :t:`closure type` that does not move out or mutate its :t:`[capture target]s` +implements the :std:`core::ops::Fn` :t:`trait`. + +:dp:`fls_3jeootwe6ucu` +A :t:`closure type` that does not encapsulate :t:`[capture target]s` is +coercible to a :t:`function pointer type`. + +:dp:`fls_63jqtyw0rz8c` +A :t:`closure type` implicitly implements the :std:`core::marker::Copy` +:t:`trait` if all the :t:`[type]s` of the :t:`[value]s` of the +:t:`capturing environment` implement the :std:`core::marker::Copy` :t:`trait`. + +:dp:`fls_3c4g9njja5s5` +A :t:`closure type` implicitly implements the :std:`core::clone::Clone` +:t:`trait` if all the :t:`[type]s` of the :t:`[value]s` of the +:t:`capturing environment` implement the :std:`core::clone::Clone` :t:`trait`. + +:dp:`fls_2nuhy0ujgq18` +A :t:`closure type` implicitly implements the :std:`core::marker::Send` +:t:`trait` if all the :t:`[type]s` of the :t:`[value]s` of the +:t:`capturing environment` implement the :std:`core::marker::Send` :t:`trait`. + +:dp:`fls_5jh07heok8sy` +A :t:`closure type` implicitly implements the :std:`core::marker::Sync` +:t:`trait` if all the :t:`[type]s` of the :t:`[value]s` of the :t:`capturing +environment` implement the :std:`core::marker::Send` :t:`trait`. + +.. _fls_airvr79xkcag: + +Function Item Types +~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_t24iojx7yc23` +A :t:`function item type` is a unique anonymous :t:`function type` that +identifies a :t:`function`. + +:dp:`fls_sas3ahcshnrh` +An :t:`external function item type` is a :t:`function item type` where the +related :t:`function` is an :t:`external function`. + +:dp:`fls_liwnzwu1el1i` +An :t:`unsafe function item type` is a :t:`function item type` where the related +:t:`function` is an :t:`unsafe function`. + +:dp:`fls_e9x4f7qxvvjv` +A :t:`function item type` is coercible to a :t:`function pointer type`. + +:dp:`fls_1941wid94hlg` +A :t:`function item type` implements the :std:`core::clone::Clone` :t:`trait`, +the :std:`core::marker::Copy` :t:`trait`, the :std:`core::ops::Fn` :t:`trait`, +the :std:`core::ops::FnMut` :t:`trait`, the :std:`core::ops::FnOnce` :t:`trait`, +the :std:`core::marker::Send` :t:`trait`, and the :std:`core::marker::Sync` +:t:`trait`. + +.. _fls_3i4ou0dq64ny: + +Indirection Types +----------------- + +.. _fls_xztr1kebz8bo: + +Function Pointer Types +~~~~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + FunctionPointerTypeSpecification ::= + ForGenericParameterList? FunctionPointerTypeQualifierList $$fn$$ + $$($$ FunctionPointerTypeParameterList? $$)$$ ReturnTypeWithoutBounds? + + FunctionPointerTypeQualifierList ::= + $$unsafe$$? AbiSpecification? + + FunctionPointerTypeParameterList ::= + FunctionPointerTypeParameter ($$,$$ FunctionPointerTypeParameter)* + ($$,$$ VariadicPart | $$,$$?) + + VariadicPart ::= + OuterAttributeOrDoc* $$...$$ + + FunctionPointerTypeParameter ::= + OuterAttributeOrDoc* (IdentifierOrUnderscore $$:$$)? TypeSpecification + +.. rubric:: Legality Rules + +:dp:`fls_v2wrytr3t04h` +A :t:`function pointer type` is an :t:`indirection type` that refers to a +:t:`function`. + +:dp:`fls_5dd7icjcl3nt` +An :t:`unsafe function pointer type` is a function pointer type subject to +:t:`keyword` ``unsafe``. + +:dp:`fls_B0SMXRqQMS1E` +A :t:`variadic part` indicates the presence of :t:`C`-like optional +parameters. + +:dp:`fls_hbn1l42xmr3h` +A :t:`variadic part` shall be specified only when the :t:`ABI` of the +:t:`function pointer type` is either ``extern "C"`` or ``extern "cdecl"``. + +:dp:`fls_g1iYVw7upBnH` +The :t:`return type` of a :t:`function pointer type` is determined as follows: + +* :dp:`fls_8gpvNJfVlyaD` + If the :t:`function pointer type` specifies a :s:`ReturnTypeWithoutBounds`, then the :t:`return type` is the specified :s:`ReturnTypeWithoutBounds`. + +* :dp:`fls_KcI6yK0P8Onn` + Otherwise the :t:`return type` is the :t:`unit type`. + +.. rubric:: Undefined Behavior + +:dp:`fls_52thmi9hnoks` +It is a :t:`validity invariant` for a :t:`value` of a :t:`function pointer type` +to be not :c:`null`. + +.. rubric:: Examples + +.. code-block:: rust + + unsafe extern "C" fn (value: i32, ...) -> f64 + +.. _fls_ppd1xwve3tr7: + +Raw Pointer Types +~~~~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + RawPointerTypeSpecification ::= + $$*$$ ($$const$$ | $$mut$$) TypeSpecificationWithoutBounds + +.. rubric:: Legality Rules + +:dp:`fls_rpbhr0xukbx9` +A :t:`raw pointer type` is an :t:`indirection type` without validity guarantees. + +:dp:`fls_bYWfGDAQcWfA` +A :t:`mutable raw pointer type` is a :t:`raw pointer type` subject to +:t:`keyword` ``mut``. + +:dp:`fls_8uWfFAsZeRCs` +An :t:`immutable raw pointer type` is a :t:`raw pointer type` subject to +:t:`keyword` ``const``. + +:dp:`fls_hrum767l6dte` +Comparing two :t:`[value]s` of :t:`[raw pointer type]s` compares the addresses +of the :t:`[value]s`. + +:dp:`fls_k6ues2936pjq` +Comparing a :t:`value` of a :t:`raw pointer type` to a :t:`value` of a +:t:`dynamically sized type` compares the data being pointed to. + +.. rubric:: Examples + +.. code-block:: rust + + *const i128 + *mut bool + +.. _fls_142vncdktbin: + +Reference Types +~~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + ReferenceTypeSpecification ::= + $$&$$ LifetimeIndication? $$mut$$? TypeSpecificationWithoutBounds + +.. rubric:: Legality Rules + +:dp:`fls_twhq24s8kchh` +A :t:`reference type` is an :t:`indirection type` with :t:`ownership`. + +:dp:`fls_w4NbA7WhZfR2` +A :t:`shared reference type` is a :t:`reference type` not subject to +:t:`keyword` ``mut``. + +:dp:`fls_ie0avzljmxfm` +A :t:`shared reference type` prevents the direct mutation of a referenced +:t:`value`. + +:dp:`fls_15zdiqsm1q3p` +A :t:`shared reference type` implements the :std:`core::marker::Copy` +:t:`trait`. Copying a :t:`shared reference` performs a shallow copy. + +:dp:`fls_csdjfwczlzfd` +Releasing a :t:`shared reference` has no effect on the :t:`value` it refers to. + +:dp:`fls_GUZuiST7ucib` +A :t:`mutable reference type` is a :t:`reference type` subject to :t:`keyword` +``mut``. + +:dp:`fls_vaas9kns4zo6` +A :t:`mutable reference type` allows the direct mutation of a referenced +:t:`value`. + +:dp:`fls_n6ffcms5pr0r` +A :t:`mutable reference type` does not implement the :std:`copy::marker::Copy` +:t:`trait`. + +.. rubric:: Undefined Behavior + +:dp:`fls_ezh8aq6fmdvz` +It is :t:`validity invariant` for a :t:`value` of a :t:`reference type` to be +not :c:`null`. + +.. rubric:: Examples + +.. code-block:: rust + + &i16 + &'a mut f32 + +.. _fls_1ompd93w7c9f: + +Trait Types +----------- + +.. _fls_3xqobbu7wfsf: + +Impl Trait Types +~~~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + ImplTraitTypeSpecification ::= + $$impl$$ TypeBoundList + + ImplTraitTypeSpecificationOneBound ::= + $$impl$$ TraitBound + +.. rubric:: Legality Rules + +:dp:`fls_a6zlvyxpgsew` +An :t:`impl trait type` is a :t:`type` that implements a :t:`trait`, where the +:t:`type` is known at compile time. + +:dp:`fls_ieyqx5vzas2m` +An :t:`impl trait type` shall appear only within a :t:`function parameter` or +the :t:`return type` of a :t:`function`. + +:dp:`fls_ECjhEI7eCwAj` +An :t:`impl trait type` shall not contain :t:`[opt-out trait bound]s`. + +.. rubric:: Examples + +.. code-block:: rust + + fn anonymous_type_parameter + (arg: impl Copy + Send + Sync) { ... } + + fn anonymous_return_type () -> impl MyTrait { ... } + +.. _fls_qa98qdi42orq: + +Trait Object Types +~~~~~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + TraitObjectTypeSpecification ::= + $$dyn$$ TypeBoundList + + TraitObjectTypeSpecificationOneBound ::= + $$dyn$$ TraitBound + +.. rubric:: Legality Rules + +:dp:`fls_sgrvona1nb6h` +A :t:`trait object type` is a :t:`type` that implements a :t:`trait`, where the +:t:`type` is not known at compile time. + +:dp:`fls_9z8oleh0wdel` +The first :t:`trait bound` of a :t:`trait object type` shall denote an +:t:`object safe` :t:`trait`. Any subsequent :t:`[trait bound]s` shall denote +:t:`[auto trait]s`. + +:dp:`fls_s0oy2c8t4yz9` +A :t:`trait object type` shall not contain :t:`[opt-out trait bound]s`. + +:dp:`fls_CcoUug6b9ohU` +A :t:`trait object type` shall contain at most one :t:`lifetime bound`. + +:dp:`fls_88b9bmhra55f` +A :t:`trait object type` is a :t:`dynamically sized type`. A +:t:`trait object type` permits late binding of :t:`[method]s`. A :t:`method` +invoked via a :t:`trait object type` involves dynamic dispatching. + +.. rubric:: Examples + +.. code-block:: rust + + dyn MyTrait + dyn MyTrait + Send + dyn MyTrait + 'static + Copy + +.. _fls_3pbipk8ki18d: + +Other Types +----------- + +.. _fls_s45k21yn4qur: + +Inferred Types +~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + InferredType ::= + $$_$$ + +.. rubric:: Legality Rules + +:dp:`fls_xdtgr5toulpb` +An :t:`inferred type` is a placeholder for a :t:`type` deduced by +:t:`type inference`. + +:dp:`fls_3abhsuaa8nas` +An :t:`inferred type` shall not appear in the following positions: + +* :dp:`fls_hBXlJhbhuoHY` + Within the :s:`InitializationType` of a :s:`TypeAliasDeclaration`, + +* :dp:`fls_Vxlr9ZcqiOvY` + Within the :s:`ReturnType` of a :s:`FunctionDeclaration`, + +* :dp:`fls_gE9VC8JXrl1N` + Within the :s:`TypeAscription` of a :s:`ConstantDeclaration`, a + :s:`ConstantParameter`, a :s:`FunctionParameterPattern`, a + :s:`RecordStructField`, a :s:`StaticDeclaration`, or a :s:`TypedSelf`, + +* :dp:`fls_ybyQjFamI1Q5` + Within the :s:`TypeSpecification` of a :s:`FunctionParameter`, an + :s:`ImplementingType`, a :s:`TupleStructField`, a :s:`TypeBoundPredicate`, or + a :s:`TypeParameter`. + +:dp:`fls_9d8wbugmar1m` +An :t:`inferred type` forces a tool to deduce a :t:`type`, if possible. + +.. rubric:: Examples + +.. code-block:: rust + + let values: Vec<_> = (0 .. 10).collect(); + +.. _fls_XJCXBAJHzP3D: + +Type Parameters +~~~~~~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_dCIIVXGhXDlO` +A :t:`type parameter type` is a placeholder :t:`type` of a :t:`type parameter` +to be substituted by :t:`generic substitution`. + +.. rubric:: Examples + +.. code-block:: rust + + fn type_parameter(parameter: T) {} + +.. _fls_98lnexk53ru4: + +Never Type +~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + NeverType ::= + $$!$$ + +.. rubric:: Legality Rules + +:dp:`fls_4u0v5uy95pyf` +The :t:`never type` is a :t:`type` that represents the result of a computation +that never completes. + +:dp:`fls_xmtc10qzw0ui` +The :t:`never type` has no :t:`[value]s`. + +.. rubric:: Undefined Behavior + +:dp:`fls_22e8quna7ed5` +It is :t:`validity invariant` to not have a :t:`value` of the :t:`never type`. + +.. rubric:: Examples + +.. code-block:: rust + + let never_completes: ! = panic!(); + +.. _fls_olbj67eyxz2k: + +Parenthesized Types +~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + ParenthesizedTypeSpecification ::= + $$($$ TypeSpecification $$)$$ + +.. rubric:: Legality Rules + +:dp:`fls_1dvo1epstrdv` +A :t:`parenthesized type` is a :t:`type` that disambiguates the interpretation +of :t:`[lexical element]s`. + +.. rubric:: Examples + +.. code-block:: rust + + &'a (dyn MyTrait + Send) + +.. _fls_kgvleup5mdhq: + +Type Aliases +------------ + +.. rubric:: Syntax + +.. syntax:: + + TypeAliasDeclaration ::= + $$type$$ Name GenericParameterList? ($$:$$ TypeBoundList)? WhereClause? + ($$=$$ InitializationType WhereClause?)? $$;$$ + + InitializationType ::= + TypeSpecification + +.. rubric:: Legality Rules + +:dp:`fls_bibigic4jjad` +A :t:`type alias` is an :t:`item` that defines a :t:`name` for a :t:`type`. + +:dp:`fls_rosdkeck5ax2` +A :t:`type alias` shall not have a :s:`TypeBoundList` unless it is an +:t:`associated item`. + +:dp:`fls_drxl7u3etfp9` +The last :t:`where clause` is rejected, but may still be consumed by +:t:`[macro]s`. + +.. rubric:: Examples + +.. code-block:: rust + + type Point = (f64, f64); + +.. _fls_7pby13muw48o: + +Representation +-------------- + +.. _fls_g1z6bpyjqxkz: + +Type Layout +~~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_kdbq02iguzgl` +All :t:`[value]s` have an :t:`alignment` and a :t:`size`. + +:dp:`fls_muxfn9soi47l` +The :t:`alignment` of a :t:`value` specifies which addresses are valid for +storing the :t:`value`. :t:`Alignment` is measured in bytes, is at least one, +and always a power of two. A :t:`value` of :t:`alignment` ``N`` is stored at an +address that is a multiple of ``N``. + +:dp:`fls_1pbwigq6f3ha` +The :t:`size` of a :t:`type` is the offset in bytes between successive elements +in :t:`array type` ``[T, N]`` where ``T`` is the :t:`type` of the :t:`value`, +including any padding for :t:`alignment`. :t:`Size` is a multiple of the +:t:`alignment`. + +:dp:`fls_bk3nm2n47afu` +The :t:`size` of :t:`[scalar type]s` is as follows: + +.. list-table:: + + * - :dp:`fls_z3i758jshvhx` + - **Type** + - **Size** + * - :dp:`fls_uixe1ruv52be` + - :c:`bool` + - 1 + * - :dp:`fls_7at60xlxm9u4` + - :c:`u8`, :c:`i8` + - 1 + * - :dp:`fls_395247pkxv48` + - :c:`u16`, :c:`i16` + - 2 + * - :dp:`fls_tbe9sc75timc` + - :c:`u32`, :c:`i32` + - 4 + * - :dp:`fls_7jaqx33re3hg` + - :c:`u64`, :c:`i64` + - 8 + * - :dp:`fls_asys0iz6m0md` + - :c:`u128`, :c:`i128` + - 16 + * - :dp:`fls_wfv5vcxl2lc7` + - :c:`f32` + - 4 + * - :dp:`fls_x8dfw50z9c` + - :c:`f64` + - 8 + * - :dp:`fls_nyxnnlwmt5gu` + - :c:`char` + - 4 + +:dp:`fls_lwmrljw9m0pb` +Types :c:`usize` and :c:`isize` have :t:`size` big enough to contain every +address on the target platform. + +:dp:`fls_pzi6izljfv0f` +For :t:`type` :c:`str`, the :t:`layout` is that of :t:`slice type` +``[u8]``. + +:dp:`fls_7cjbxleo998q` +For :t:`array type` ``[T; N]`` where ``T`` is the :t:`element type` and ``N`` +is :t:`size operand`, the :t:`alignment` is that of ``T``, and the :t:`size` is +calculated as ``core::mem::size_of::() * N``. + +:dp:`fls_veotnstzigw2` +For a :t:`slice type`, the :t:`layout` is that of the :t:`array type` it slices. + +:dp:`fls_nmoqk7jo1kzf` +For a :t:`tuple type`, the :t:`layout` is tool-defined. For a :t:`unit tuple`, +the :t:`size` is zero and the :t:`alignment` is one. + +:dp:`fls_gd7wozpn2ecp` +For a :t:`closure type`, the :t:`layout` is tool-defined. + +:dp:`fls_18ke90udyp67` +For a :t:`thin pointer`, the :t:`size` and :t:`alignment` are those of :t:`type` +:c:`usize`. + +:dp:`fls_nrqG8i3fmpm4` +For a :t:`function pointer type`, the :t:`size` and :t:`alignment` are those of +a :c:`thin pointer`. + +:dp:`fls_e5hivr6m5s3h` +For a :t:`fat pointer`, the :t:`size` and :t:`alignment` are tool-defined, but +are at least those of a :t:`thin pointer`. + +:dp:`fls_hlbsjggfxnt2` +For a :t:`trait object type`, the :t:`layout` is the same as the :t:`value` +being coerced into the :t:`trait object type` at runtime. + +:dp:`fls_sdrb0k2r18my` +For a :t:`struct type`, the memory layout is undefined, unless the +:t:`struct type` is subject to :t:`attribute` :c:`repr`. + +:dp:`fls_gt3tkbn4bsa6` +For a :t:`union type`, the memory layout is undefined, unless the +:t:`union type` is subject to :t:`attribute` :c:`repr`. All :t:`[union field]s` +share a common storage. + +:dp:`fls_njvdevz0xqc0` +The :t:`size` of a :t:`recursive type` shall be finite. + +.. _fls_ohhsmifo0urd: + +Type Representation +~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_mpqlyi3lgrfv` +:t:`Type representation` specifies the :t:`layout` of :t:`[field]s` of +:t:`[abstract data type]s`. :t:`Type representation` changes the bit padding +between :t:`[field]s` of :t:`[abstract data type]s` as well as their order, but +does not change the :t:`layout` of the :t:`[field]s` themselves. + +:dp:`fls_9dhnanv21y9z` +:t:`Type representation` is classified into: + +* :dp:`fls_3dwtkr7vzha0` + :t:`C representation`, + +* :dp:`fls_q465p1xuzxi` + :t:`Default representation`, + +* :dp:`fls_hrsdn21jmgx2` + :t:`Primitive representation`, + +* :dp:`fls_ergdb18tpx25` + :t:`Transparent representation`. + +:dp:`fls_8s1vddh8vdhy` +:t:`C representation` lays out a :t:`type` such that the :t:`type` is +interoperable with the :t:`C` language. + +:dp:`fls_b005bktrkrxy` +:t:`Default representation` makes no guarantees about the :t:`layout`. + +:dp:`fls_7plbkqlmed0r` +:t:`Primitive representation` is the :t:`type representation` of individual +:t:`[integer type]s`. :t:`Primitive representation` applies only to an +:t:`enum type` that is not a :t:`zero-variant enum type`. It is possible to +combine :t:`C representation` and :t:`primitive representation`. + +:dp:`fls_ml4khttq3w5k` +:t:`Transparent representation` applies only to an :t:`enum type` with a +single :t:`enum variant` or a :t:`struct type` where the :t:`struct type` or +:t:`enum variant` has a single :t:`field` of non-zero :t:`size` and any number +of :t:`[field]s` of :t:`size` zero and :t:`alignment` one. + +:dp:`fls_9q2iqzbup8oy` +:t:`[Type]s` subject to :t:`transparent representation` have the same +:t:`type representation` as the :t:`type` of their :t:`field` with non-zero +:t:`size`. + +:dp:`fls_fsbf6ist38ix` +:t:`Type representation` may be specified using :t:`attribute` :c:`repr`. An +:t:`enum type`, a :t:`struct type`, or a :t:`union type` that is not subject to +:t:`attribute` :c:`repr` has :t:`default representation`. + +:dp:`fls_qkkc8x2oghst` +:t:`Type representation` may be specified using :t:`attribute` :c:`[repr]` and +modified further using :t:`attribute` :c:`[repr]`'s :s:`Alignment` +:t:`[representation modifier]s`. A :t:`representation modifier` shall apply only +to a :t:`struct type` or a :t:`union type` subject to :t:`C representation` or +:t:`default representation`. + +.. _fls_xc1hof4qbf6p: + +Enum Type Representation +^^^^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Legality Rules + +:dp:`fls_p0c62ejo1u1t` +:t:`[Zero-variant enum type]s` shall not be subject to :t:`C representation`. + +:dp:`fls_efp1kfgkpba8` +The :t:`size` and :t:`alignment` of an :t:`enum type` without :t:`[field]s` +subject to :t:`C representation`, :t:`default representation`, or +:t:`primitive representation` are those of its :t:`discriminant`. + +:dp:`fls_s9c0a0lg6c0p` +The :t:`discriminant type` of an :t:`enum type` with :t:`C representation` is +the corresponding :t:`c signed int type` for the target platform's :t:`C` +:t:`ABI`. + +:dp:`fls_slhvf3gmqz4h` +The :t:`discriminant type` of an :t:`enum type` with :t:`default representation` +is tool-defined. + +:dp:`fls_u1zy06510m56` +The :t:`discriminant type` of an :t:`enum type` with +:t:`primitive representation` is the :t:`integer type` specified by the +:t:`primitive representation`. + +:dp:`fls_ryvqkcx48u74` +It is a static error if the :t:`discriminant type` cannot hold all the +:t:`discriminant` :t:`[value]s` of an :t:`enum type`. + +:dp:`fls_zhle0rb0vhpc` +An :t:`enum type` subject to :t:`transparent representation` shall have a single +:t:`enum variant` with + +* :dp:`fls_45f57s1gmmh5` + a single :t:`field` of non-zero :t:`size`, or + +* :dp:`fls_hz012yus6b4g` + any number of :t:`[field]s` of zero :t:`size` and :t:`alignment` one. + +:dp:`fls_q5akku2idrwh` +An :t:`enum type` subject to :t:`C representation` or :t:`primitive +representation` has the same :t:`type representation` as a :t:`union type` with +:t:`C representation` that is laid out as follows: + +* :dp:`fls_r6o1wv76yw6m` + Each :t:`enum variant` corresponds to a :t:`struct` whose :t:`struct type` is + subject to :t:`C representation` and laid out as follows: + + * :dp:`fls_3k1tcfxp0g63` + The :t:`type` of the first :t:`field` of the :t:`struct type` is the + :t:`discriminant type` of the :t:`enum type`. + + * :dp:`fls_ebs77rxvk9st` + The remaining :t:`[field]s` of the :t:`struct type` are the :t:`[field]s` of + the :t:`enum variant`, in the same declarative order. + +:dp:`fls_k907i6w83s2` +An :t:`enum type` subject to :t:`transparent representation` has the same +:t:`type representation` as the single :t:`field` of non-zero :t:`size` of its +:t:`enum variant` if one is present, otherwise the :t:`enum type` has :t:`size` +zero and :t:`alignment` one. + +.. _fls_rjxpof29a3nl: + +Struct Type Representation +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Legality Rules + +:dp:`fls_jr9dykj6rydn` +The :t:`alignment` of a :t:`struct type` subject to :t:`C representation` is +the :t:`alignment` of the most-aligned :t:`field` in it. + +:dp:`fls_6ck71twmnbg5` +The :t:`size` of a :t:`struct type` subject to :t:`C representation` is +determined as follows: + +#. :dp:`fls_hydq3pvm00bn` + Initialize a current offset to zero. + +#. :dp:`fls_yzcdffahxcz` + For each :t:`field` of the :t:`struct type` in declarative order: + + #. :dp:`fls_t2yqmphfd6he` + Calculate the :t:`size` and :t:`alignment` of the :t:`field`. + + #. :dp:`fls_fa5nkvu07jlp` + If the current offset is not a multiple of the :t:`[field]'s` + :t:`alignment`, add byte padding to the current offset until it is a + multiple of the :t:`alignment`. The offset of the :t:`field` is the + current offset. + + #. :dp:`fls_x2pkmgbp63xx` + Increase the current offset by the :t:`size` of the :t:`field`. + + #. :dp:`fls_y6dwc1ndm395` + Proceed with the next :t:`field`. + +#. :dp:`fls_2npku94ookdn` + Round up the current offset to the nearest multiple of the :t:`[struct + type]'s` :t:`alignment`. + +#. :dp:`fls_h7nvs25rsi0y` + The :t:`size` of the :t:`struct type` is the current offset. + +:dp:`fls_iu93vpyihrpj` +A :t:`struct type` subject to :t:`transparent representation` shall have: + +* :dp:`fls_7sjkej5otxo` + A single :t:`field` of non-zero :t:`size`, or + +* :dp:`fls_gwhceoy0m3or` + Any number of :t:`[field]s` of :t:`size` zero and :t:`alignment` one. + +:dp:`fls_hvkalvr4e2v0` +A :t:`struct type` subject to :t:`transparent representation` has the same +:t:`type representation` as the single :t:`field` of non-zero :t:`size` if one +is present, otherwise the :t:`struct type` has :t:`size` zero and :t:`alignment` +one. + +.. _fls_cmq8ogs84ivh: + +Union Type Representation +^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Legality Rules + +:dp:`fls_opz1p1neldsg` +The :t:`size` of a :t:`union type` subject to :t:`C representation` is +the maximum of the :t:`[size]s` of all its :t:`[field]s`, rounded up to +:t:`alignment` of the :t:`union type`. + +:dp:`fls_y5qtvbx5m90g` +The :t:`alignment` of a :t:`union type` subject to :t:`C representation` is the +maximum of the :t:`[alignment]s` of all of its :t:`[field]s`. + +.. _fls_j02707n615z0: + +Type Model +---------- + +.. _fls_3gapgqys3ceb: + +Recursive Types +~~~~~~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_z22std1crl49` +A :t:`recursive type` is a :t:`type` whose contained :t:`[type]s` refer back to +the containing :t:`type`, either directly or by referring to another :t:`type` +which refers back to the original :t:`recursive type`. + +:dp:`fls_eddnwlr0rz59` +A :t:`type` that is not an :t:`abstract data type` shall not be recursive. + +.. rubric:: Examples + +.. code-block:: rust + + enum List { + Nil, + Cons(T, Box>) + } + +.. _fls_exe4zodlwfez: + +Type Unification +~~~~~~~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_ryvdhkgm7vzj` +:t:`Type unification` is the process by which :t:`type inference` propagates +known :t:`[type]s` across the :t:`type inference root` and assigns concrete +:t:`[type]s` to :t:`[type variable]s`, as well as a general mechanism to check +for compatibility between two :t:`[type]s` during :t:`method resolution`. + +:dp:`fls_67VZrx6dw68H` +A :t:`type` is said to :t:`unify` with another :t:`type` when the domains, +ranges, and structures of both :t:`[type]s` are compatible according to the +rules detailed below. + +:dp:`fls_aie0tr62vhw5` +Two types that :t:`unify` are said to be :t:`[unifiable type]s`. + +:dp:`fls_3U7Ue6Xzuv9M` +:t:`Type unification` is a symmetric operation. If :t:`type` ``A`` unifies +with :t:`type` ``B``, then ``B`` also unifies with ``A`` and such +:t:`type unification` results in the same observable effects. + +:dp:`fls_tIiw5WkTRNf7` +If one of the two :t:`[type]s` is a :t:`type variable`, :t:`type unification` +proceeds as follows: + +#. :dp:`fls_EoEbldkKBQW0` + If either :t:`type` is a :t:`global type variable`, the + :t:`global type variable` is assigned the :t:`type` of the other unification + operand. + +#. :dp:`fls_16ZDp8PaKi5P` + Otherwise, if either :t:`type` is a :t:`diverging type variable`, the + :t:`diverging type variable` is assigned the :t:`type` of the other + unification operand. + +#. :dp:`fls_pGRLTACDvzv2` + Otherwise, if one :t:`type` ``T`` is an :t:`integer type variable`, behavior + depends on the other :t:`type` ``U``: + + #. :dp:`fls_fTy3FVt0fK9g` + If ``U`` is an :t:`integer type` or an :t:`integer type variable`, the + :t:`integer type variable` ``T`` is assigned :t:`type` ``U``. + + #. :dp:`fls_7IsrfUoPXSZU` + Otherwise, :t:`type unification` fails. + +#. :dp:`fls_Hb95CPyUpCmc` + Otherwise, if one :t:`type` ``T`` is an :t:`floating-point type variable`, + behavior depends on the other :t:`type` ``U``: + + #. :dp:`fls_jEZVWlfVPevb` + If ``U`` is an :t:`floating-point type` or an + :t:`floating-point type variable`, the :t:`floating-point type variable` + ``T`` is assigned :t:`type` ``U``. + + #. :dp:`fls_nKcqFo7yIDBe` + Otherwise, :t:`type unification` fails. + +#. :dp:`fls_jkaiBnApJAtt` + Otherwise, neither :t:`type` is a :t:`type variable`, and the rules below + are in effect. + +:dp:`fls_dhksyjrvx9a` +A :t:`scalar type` is unifiable only with itself. + +:dp:`fls_hf0cfkrmt655` +The :t:`never type` is unifiable with any other :t:`type`. + +:dp:`fls_k9dag68qpe93` +An :t:`array type` is unifiable only with another :t:`array type` when + +* :dp:`fls_m6d9qj9q9u1i` + The :t:`[element type]s` of both :t:`[array type]s` are unifiable, and + +* :dp:`fls_gg3x25qvymmq` + The sizes of both :t:`[array type]s` are the same. + +:dp:`fls_ni296ev8x9v9` +A :t:`slice type` is unifiable only with another :t:`slice type` when the +:t:`[element type]s` of both :t:`[slice type]s` are unifiable. + +:dp:`fls_i1m41c4wkfc0` +:t:`Type` :c:`str` is unifiable only with itself. + +:dp:`fls_mpq64eal9jo3` +A :t:`tuple type` is unifiable only with another :t:`tuple type` when: + +* :dp:`fls_kcr8npsmy0e5` + The :t:`arity` of both :t:`[tuple type]s` is the same, and + +* :dp:`fls_kq3lv1zbangz` + The :t:`[type]s` of the corresponding :t:`[tuple field]s` are unifiable. + +:dp:`fls_so2cgqmawlm7` +An :t:`abstract data type` is unifiable only with another +:t:`abstract data type` when: + +* :dp:`fls_vsax8w6y794m` + The two :t:`[abstract data type]s` are the same :t:`type`, and + +* :dp:`fls_1j1wc3uxs7h6` + The corresponding :t:`[generic substitution]s` are unifiable. + +:dp:`fls_9dpea9ty0c2l` +A :t:`closure type` is unifiable only with another :t:`closure type` when: + +* :dp:`fls_42oj1ekjihq1` + The two :t:`[closure type]s` are the same closure, and + +* :dp:`fls_gebpqqqvvklf` + The corresponding :t:`[generic substitution]s` are unifiable. + +:dp:`fls_i221hm7rssik` +A :t:`function item type` is unifiable only with another :t:`function item type` +when: + +* :dp:`fls_74cug5zfv2wv` + The two :t:`[function item type]s` are the same function, and + +* :dp:`fls_keezxl8v4snf` + The corresponding :t:`[generic substitution]s` are unifiable. + +:dp:`fls_wz2etmkpvxed` +A :t:`function pointer type` is unifiable only with another +:t:`function pointer type` when: + +* :dp:`fls_rmqcbb5ja4va` + The :t:`[lifetime]s` are :t:`variance`-conformant, and + +* :dp:`fls_uu8je75y5pss` + The :t:`unsafety` is the same, and + +* :dp:`fls_oksjiq3nmq2k` + The :t:`ABI` is the same, and + +* :dp:`fls_52ymp79ert2` + The number of :t:`[function parameter]s` is the same, and + +* :dp:`fls_g2u1dfhphrrg` + The :t:`[type]s` of the corresponding :t:`[function parameter]s` are + unifiable, and + +* :dp:`fls_2xgq66qp3h95` + The presence of a :t:`variadic part` is the same, and + +* :dp:`fls_5dh8c5gg0hmk` + The :t:`[return type]s` are unifiable. + +:dp:`fls_ismr7wwvek4q` +A :t:`raw pointer type` is unifiable only with another :t:`raw pointer type` +when: + +* :dp:`fls_x9933rjecrna` + The :t:`mutability` is the same, and + +* :dp:`fls_mizmcykgdisb` + The :t:`[target type]s` are unifiable. + +:dp:`fls_paoh0wttde2z` +A :t:`reference type` is unifiable only with another :t:`reference type` when: + +* :dp:`fls_akko4dmp4nkw` + The :t:`mutability` is the same, and + +* :dp:`fls_8gldjjxbyyb4` + The :t:`[target type]s` are unifiable. + +:dp:`fls_8jad1ztcuxha` +An :t:`anonymous return type` is unifiable with another :t:`type` when: + +* :dp:`fls_j3w9ap9zaqud` + The :t:`[lifetime]s` are :t:`variance`-conformant, and + +* :dp:`fls_yvllot5qnc4s` + The other :t:`type` implements all :t:`[trait]s` specified by the + :t:`anonymous return type`. + +:dp:`fls_hza5n5eb18ta` +An :t:`impl trait type` is unifiable only with itself. + +:dp:`fls_ww16urcjrj6i` +A :t:`trait object type` is unifiable only with another :t:`trait object type` +when: + +* :dp:`fls_bnp6or49voxp` + The :t:`[bound]s` are unifiable, and + +* :dp:`fls_hdo4c849q3lo` + The :t:`[lifetime]s` are unifiable. + +:dp:`fls_w9dx5h7m31sj` +A :t:`type alias` is unifiable with another :t:`type` when the aliased :t:`type` +is unifiable with the other :t:`type`. + +.. _fls_dw33yt5g6m0k: + +Type Coercion +~~~~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_w5pjcj9qmgbv` +:t:`Type coercion` is an implicit operation that changes the :t:`type` of a +:t:`value`. Any implicit conversion allowed by :t:`type coercion` can be made +explicit using a :t:`type cast expression`. + +:dp:`fls_5v0n2a32bk95` +A :t:`type coercion` takes place at a :t:`coercion site` or within a +:t:`coercion-propagating expression`. + +:dp:`fls_j3kbaf43sgpj` +The following :t:`[construct]s` constitute a :dt:`coercion site`: + +* :dp:`fls_wxrugvlazy6v` + The :t:`[argument operand]s` of a :t:`call expression` or a + :t:`method call expression`. + +* :dp:`fls_bhzmble1itog` + A :t:`constant` declaration. + +* :dp:`fls_eu4bt3dw1b8c` + A :t:`field` of an :t:`abstract data type`. + +* :dp:`fls_apstt4elv2k7` + A :t:`function` result. + +* :dp:`fls_sp794uzfiofr` + A :t:`let statement` with an explicit :t:`type specification`. + +* :dp:`fls_xfqny6bwzsu9` + A :t:`static` declaration. + +:dp:`fls_u0e42y7nvn7e` +The following :t:`[expression]s` constitute a +:dt:`coercion-propagating expression`: + +* :dp:`fls_p8hp5y506nam` + Each :t:`operand` of an :t:`array expression`. + +* :dp:`fls_fjc9xev8rcu6` + The :t:`tail expression` of a :t:`block expression`. + +* :dp:`fls_n1kh3z8d4q8y` + The :t:`operand` of a :t:`parenthesized expression`. + +* :dp:`fls_dgoypa3hcxc0` + Each :t:`operand` of a :t:`tuple expression`. + +:dp:`fls_h8dkehit8rza` +:t:`Type coercion` from a source :t:`type` to a target :t:`type` is allowed to +occur when: + +* :dp:`fls_z00wtlna6grk` + The source :t:`type` is a :t:`subtype` of the target :t:`type`. + +* :dp:`fls_rfjdh79k0wou` + The source :t:`type` ``T`` coerces to intermediate :t:`type` ``W``, and + intermediate :t:`type` ``W`` coerces to target :t:`type` ``U``. + +* :dp:`fls_e3lgrtqb7jwe` + The source :t:`type` is ``&T`` and the target :t:`type` is ``*const T``. + +* :dp:`fls_fwy2z11c1sji` + The source :t:`type` is ``&T`` and the target :t:`type` is ``&U``, where ``T`` + implements the ``core::ops::Deref`` :t:`trait`. + +* :dp:`fls_aujb44849tq1` + The source :t:`type` is ``&mut T`` and the target :t:`type` is ``&T``. + +* :dp:`fls_p3ym3ycrnd5m` + The source :t:`type` is ``&mut T`` and the target :t:`type` is ``*mut T``. + +* :dp:`fls_jmo42qgix5uw` + The source :t:`type` is ``&mut T`` and the target :t:`type` is ``&U``, where + ``T`` implements the ``core::ops::Deref`` :t:`trait`. + +* :dp:`fls_tbt4236igdzb` + The source :t:`type` is ``&mut T`` and the target :t:`type` is ``&mut U``, + where ``T`` implements the ``core::ops::DerefMut`` :t:`trait`. + +* :dp:`fls_7ri4jk2dydfn` + The source :t:`type` is ``*mut T`` and the target :t:`type` is ``*const T``. + +* :dp:`fls_6r3kn0nk5b8o` + The source :t:`type` is ``type_constructor(T)`` and the target :t:`type` is + ``type_constructor(U)``, where ``type_constructor`` is one of ``&W``, + ``&mut W``, ``*const W``, or ``*mut W``, and ``U`` can be obtained from ``T`` + using :t:`unsized coercion`. + +* :dp:`fls_ulcdetwp6x96` + The source :t:`type` is a :t:`function item type`, the target :t:`type` is + a :t:`function pointer type` and the source's :t:`function signature` is a :t:`subtype` of the target's :t:`function signature`. + +* :dp:`fls_2uv1r0gni1fk` + The source :t:`type` is a non-capturing :t:`closure type`, the target + :t:`type` is a :t:`function pointer type` and the source's :t:`function signature` is a :t:`subtype` of the target's :t:`function signature`. + +* :dp:`fls_sf0c3fbx8z57` + The source :t:`type` is the :t:`never type` and the target :t:`type` is any + :t:`type`. + +:dp:`fls_iiiu2q7pym4p` +An :t:`unsized coercion` is a :t:`type coercion` that converts a :t:`sized type` +into an :t:`unsized type`. :t:`Unsized coercion` from a source :t:`type` to a +target :t:`type` is allowed to occur when: + +* :dp:`fls_jte6n2js32af` + The source :t:`type` is :t:`array type` ``[T; N]`` and the target :t:`type` is + :t:`slice type` ``[T]``. + +* :dp:`fls_20pvqqayzqra` + The source :t:`type` is ``T`` and the target :t:`type` is ``dyn U``, where + ``T`` implements ``U + core::marker::Sized``, and ``U`` is :t:`object safe`. + +* :dp:`fls_j8rcy0xvd155` + The source type is + +.. code-block:: rust + + S<..., T, ...> { + ... + last_field: X + } + +:dp:`fls_wuka4uyo3oj7` +where + +* :dp:`fls_w15yo8yvuxq3` + ``S`` is a :t:`struct type`, + +* :dp:`fls_7aw3ifbvfgbd` + ``T`` implements ``core::marker::Unsize``, + +* :dp:`fls_cnkth59djwgl` + ``last_field`` is a :t:`struct field` of ``S``, + +* :dp:`fls_4wbk7pqj010i` + The :t:`type` of ``last_field`` involves ``T`` and if the :t:`type` of + ``last_field`` is ``W``, then ``W`` implements + ``core::marker::Unsize>``, + +* :dp:`fls_47u0039t0l8f` + ``T`` is not part of any other :t:`struct field` of ``S``. + +:dp:`fls_bmh6g3jju7eq` +and the target ``type`` is ``S<..., U, ...>``. + +:dp:`fls_da4w32rsrwxc` +:dt:`Least upper bound coercion` is a :t:`multi-[type coercion]` that is used in +the following scenarios: + +* :dp:`fls_zi5311z1w7re` + To find the common :t:`type` of multiple :t:`if expression` branches. + +* :dp:`fls_zst5pa29rpt` + To find the common :t:`type` of multiple :t:`if let expression` branches. + +* :dp:`fls_agw1aej616vf` + To find the common :t:`type` for multiple :t:`match expression` + :t:`[match arm]s`. + +* :dp:`fls_tnbga5dl4gz8` + To find the common :t:`type` of :t:`array expression` :t:`[operand]s`. + +* :dp:`fls_yoreux8tn65x` + To find the :t:`return type` of a :t:`closure expression` with multiple + :t:`[return expression]s`. + +* :dp:`fls_r11shke69uu6` + To find the :t:`return type` of a :t:`function` with multiple + :t:`[return expression]s`. + +:dp:`fls_ky7ykpufb95t` +:t:`Least upper bound coercion` considers a set of source :t:`[type]s` ``T1``, +``T2``, ``...``, ``TN`` and target :t:`type` ``U``. The target :t:`type` is +obtained as follows: + +#. :dp:`fls_8kvme0u4u8r6` + Initialize target :t:`type` ``U`` to source :t:`type` ``T1``. + +#. :dp:`fls_rl9yrdfwnu03` + For each current source :t:`type` ``TC`` in the inclusive range ``T1`` to + ``TN`` + + #. :dp:`fls_iqtmhn8flws7` + If ``TC`` can be coerced to ``U``, then continue with the next source + :t:`type`. + + #. :dp:`fls_sr8d5har4s03` + Otherwise, if ``U`` can be coerced to ``TC``, make ``TC`` the target + :t:`type` ``U``. + + #. :dp:`fls_92pwnd1xbp5r` + Otherwise, if ``TC`` and ``U`` are non-capturing :t:`[closure type]s`, + :t:`[function item type]s`, :t:`[function pointer type]s`, or a + combination of those :t:`[type]s`, and a :t:`function pointer type` exists + that both ``TC`` and ``U`` can coerce to, make that + :t:`function pointer type` be target :t:`type` ``U``. + + #. :dp:`fls_bWHQIL4DSN4S` + Otherwise, no coercion is performed. + + #. :dp:`fls_ju4ypa5ysga0` + Continue with the next source :t:`type`. + + +.. _fls_wsfw8xF3vniL: + +Structural Equality +~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_uVTpA7gbLCYX` +A :t:`type` is :t:`structurally equal` when its :t:`[value]s` can be compared +for equality by structure. + +:dp:`fls_2DZAP6JJjJ9h` +The following :t:`[type]s` are :t:`structurally equal`: + +* :dp:`fls_emcNJzl2tHSA` + :c:`Bool`, :c:`char`, :t:`[function pointer type]s`, :t:`[integer type]s`, + :c:`str`, and :t:`[raw pointer type]s`. + +* :dp:`fls_HpWSAfaTA1Dz` + An :t:`abstract data type`, if it implements the + :std:`core::cmp::Eq` and :std:`core::cmp::PartialEq` :t:`[trait]s` using + :t:`[derive macro]s` :std:`core::cmp::Eq` and :std:`core::cmp::PartialEq`. + +* :dp:`fls_5RcnETrW6f9m` + :t:`[Array type]s` and :t:`[slice type]s`, if the :t:`[element type]` is + :t:`structurally equal`. + +* :dp:`fls_jMeWhn4sNTPF` + :t:`[Reference type]s`, if their inner :t:`type` is :t:`structurally equal`. + +* :dp:`fls_hBFlaUrrhqZ6` + :t:`[Tuple type]s`, if the :t:`[type]s` of the :t:`[tuple field]s` are + :t:`structurally equal`. + +.. _fls_omaq7psg83n3: + +Interior Mutability +~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_khy2e23i9o7z` +:t:`Interior mutability` is a property of :t:`[type]s` whose :t:`[value]s` can +be modified through :t:`[immutable reference]s`. + +:dp:`fls_sWiU26n2xS3r` +A :t:`type` is subject to :t:`interior mutability` when it contains a +:std:`core::cell::UnsafeCell`. + +.. _fls_lv7w7aalpwm5: + +Type Inference +~~~~~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_h8sedxew0d4u` +:t:`Type inference` is the process of automatically determining the :t:`type` of +:t:`[expression]s` and :t:`[pattern]s` within a :t:`type inference root`. + +:dp:`fls_ybvrhh96fc7y` +A :t:`type inference root` is an :t:`expression` whose inner :t:`[expression]s` +and :t:`[pattern]s` are subject to :t:`type inference` independently of those +found in other :t:`[type inference root]s`. + +:dp:`fls_EWBilpepaDcX` +The following :t:`[expression]s` are considered :t:`[type inference root]s`: + +* :dp:`fls_NYSzcvf5nQpi` + A :t:`constant argument`. + +* :dp:`fls_htLp5J5ObgNh` + The :t:`expression` of a :t:`constant initializer`. + +* :dp:`fls_cPlCLGCcl7EK` + The :t:`expression` of a :t:`static initializer`. + +* :dp:`fls_KphY5qHev0Dc` + The :t:`expression` of a :t:`discriminant initializer`. + +* :dp:`fls_67Bf5kR5OtYW` + The :t:`expression` of a :t:`constant parameter initializer`. + +* :dp:`fls_sAS3vQpkjksr` + The :t:`expression` of a :t:`constant argument`. + +* :dp:`fls_Sowatt1V988J` + A :t:`function body`. + +* :dp:`fls_A1NVYkepoaMk` + The :t:`size operand` of an :t:`array expression` or an :t:`array type`. + +:dp:`fls_J77VeAlD8rsv` +A :t:`type inference root` imposes an :dt:`expected type` on its :t:`expression` +depending on the :t:`type inference root` as follows: + +* :dp:`fls_P9uiamxA4HE3` + The :t:`expected type` of a :t:`constant argument` is the :t:`type ascription` + of the :t:`constant parameter`. + +* :dp:`fls_5d4hw3gj4w4n` + The :t:`expected type` of the :t:`expression` of a :t:`constant initializer` + is the :t:`type` specified by the :t:`type ascription` of the related + :t:`constant`. + +* :dp:`fls_qlovdtcj1v1b` + The :t:`expected type` of the :t:`expression` of a :t:`static initializer` is + the :t:`type` specified by the :t:`type ascription` of the related + :t:`static`. + +* :dp:`fls_Z5gKFjZW5rRA` + The :t:`expected type` of the :t:`expression` of a + :t:`discriminant initializer` is determined as follows: + + * :dp:`fls_vYvumjTQH9Xg` + If the :t:`enum type` that contains the :t:`discriminant` is subject to + :t:`attribute` :c:`repr` that specifies a :t:`primitive representation`, the + :t:`expected type` is the specified :t:`integer type`. + + * :dp:`fls_QaGKt99CmvF6` + Otherwise, the :t:`expected type` is :c:`isize`. + +* :dp:`fls_RJIeW597XRvS` + The :t:`expected type` of a :t:`function body` is the :t:`return type` of the + :t:`function`. + +* :dp:`fls_veG2D64fIXvo` + The :t:`expected type` of a :t:`size operand` of an :t:`array expression` or + an :t:`array type` is :c:`usize`. + +:dp:`fls_uvvn4usfsbhr` +A :t:`type variable` is a placeholder used during :t:`type inference` to stand +in for an undetermined :t:`type` of an :t:`expression` or a :t:`pattern`. + +:dp:`fls_gDalJm1XS0mi` +A :t:`global type variable` is a :t:`type variable` that can refer to any +:t:`type`. + +:dp:`fls_7ov36fpd9mwe` +An :t:`integer type variable` is a :t:`type variable` that can refer only to +:t:`[integer type]s`. + +:dp:`fls_3hv3wxkhjjp1` +A :t:`floating-point type variable` is a :t:`type variable` that can refer only +to :t:`[floating-point type]s`. + +:dp:`fls_bXQ63GYYDuMp` +A :t:`diverging type variable` is a :t:`type variable` that can refer to any +:t:`type` and originates from a :t:`diverging expression`. + +:dp:`fls_JryXiKBIFvF3` +A :dt:`lifetime variable` is a placeholder used during :t:`type inference` to +stand in for an undetermined :t:`lifetime` of a :t:`type`. + +:dp:`fls_rvj3XspFZ1u3` +The :t:`type inference` algorithm uses :t:`type unification` to propagate known +:t:`[type]s` of :t:`[expression]s` and :t:`[pattern]s` across the +:t:`type inference root` being inferred. In the rules detailed below, a static +error occurs when :t:`type unification` fails. + +:dp:`fls_6GrNr2izovRN` +Performing :t:`type inference` may introduce a requirement that some :t:`type` +must implement a :t:`trait`, or that a :t:`type` or :t:`lifetime` must outlive +some other :t:`lifetime`. Such requirements are referred to as +:dt:`[obligation]s` and are detailed in the inference rules below. + +:dp:`fls_9dSltJ6U98Fo` +If insufficient :t:`type` information is available at the time an +:t:`obligation` is introduced, it may be deferred to be resolved later. +Any time new :t:`type` information is derived during :t:`type inference`, the +tool attempts to resolve all outstanding :t:`[obligation]s` and propagate +any resulting :t:`type` information via :t:`type unification`. + +:dp:`fls_v5dWGuBKvQSJ` +When an :t:`associated type` ``::Assoc`` is referenced within a +:t:`type inference root` (either explicitly within the source code, or via the +inferece rules below), an :t:`obligation` requiring that ``Type`` implements +``Trait`` is introduced. + +:dp:`fls_SZgixDCAx6PQ` +:t:`Type inference` for a :t:`type inference root` proceeds as follows: + +#. :dp:`fls_XYY1U9h9HlAa` + Recursively process all :t:`[expression]s` and :t:`[statement]s` in the + :t:`type inference root` in program order. + + #. :dp:`fls_1rnssw39aRWn` + For each :t:`statement`, apply the :t:`statement` inference rules outlined below. + + #. :dp:`fls_aYJaZXcOVVyk` + For each :t:`expression`, apply the :t:`expression` inference rules outlined below. + +#. :dp:`fls_X8kLC7JwiF0A` + If there are any remaining :t:`[integer type variable]s` that have not been + unified with a concrete :t:`integer type`, perform integer type fallback by + unifying them with :c:`i32`. + +#. :dp:`fls_ZFQhOxO3jpby` + If there are any remaining :t:`[floating-point type variable]s` that have not + been unified with a concrete :t:`floating-point type`, perform floating-point + type fallback by unifying them with :c:`f64`. + +#. :dp:`fls_l1G52a0qqEes` + If there are any remaining :t:`[diverging type variable]s` that have not been + unified with a concrete :t:`type`, unify them with the :t:`unit type`. + +#. :dp:`fls_Tx4Sx4Qy8y2d` + If there are any remaining :t:`[global type variable]s` that have not been + unified with a concrete :t:`type`, raise a static error. + +#. :dp:`fls_Nbdth8N0PSRq` + If there are any remaining :t:`[obligation]s` that do not hold or cannot be + resolved with the available :t:`type` information, raise a static error. + +:dp:`fls_hISRWZUuqE4Q` +The :t:`type inference` rules for :t:`[statement]s` are as follows: + +* :dp:`fls_ygi1ACJ0RkfS` + :t:`[Item statement]s` are not subject to :t:`type inference`. + +* :dp:`fls_97Fxlv2KN6QF` + :t:`[Expression statement]s` apply the :t:`expression` inference rules outlined below + to the related :t:`expression`, with the :t:`expected type` set to the + :t:`unit type` if the :t:`expression statement` lacks the character 0x3B + (semicolon), unset otherwise. + +* :dp:`fls_hzXqj6YT1mFr` + :t:`[Let statement]s` are inferred as follows: + + #. :dp:`fls_Kv0dzoMODtdy` + If the :t:`let statement` has a :t:`type ascription`, :t:`unify` that + :t:`type` with the :t:`type` of the :t:`pattern`. + + #. :dp:`fls_5v6TR7oqOwFM` + If the :t:`let statement` has a :t:`let initializer`, apply the + :t:`expression` inference rules outlined below to the contained :t:`expression`, + with the :t:`expected type` set to the type of the :t:`pattern`. + + #. :dp:`fls_Gwx0Kfx68DXL` + If the :t:`let statement` has a :t:`let initializer` with a + :t:`block expression`, apply the :t:`expression` inference rules outlined below to + the contained :t:`block expression`, with the :t:`expected type` set to + the :t:`never type`. + +:dp:`fls_J6ydUCCJp1Sn` +:t:`Type inference` of :t:`[expression]s` may incorporate an :t:`expected type`, +derived from the context the :t:`expression` appears in. If the :t:`expression` +is a :t:`coercion site` or a :t:`coercion-propagating expression`, the :t:`type` +derived via :t:`type inference` may be coerced to the :t:`expected type`. If no +:t:`type coercion` to the :t:`expected type` is possible, or the :t:`expression` +is not a :t:`coercion site` or a :t:`coercion-propagating expression`, the +inferred :t:`expression` :t:`type` is unified with the :t:`expected type`. + +:dp:`fls_FSQqHs8T4bUx` +The :t:`type inference` rules for :t:`[expression]s` are as follows: + +* :dp:`fls_0HHC1iOk5dwz` + An :t:`if expression` is inferred by inferring its :t:`subject expression` + with an :t:`expected type` of :c:`bool`, then inferring its + :t:`block expression` with the :t:`expected type` of the :t:`if expression`. + Then, if the :t:`if expression` has an :t:`else expression`, apply the + inference rules below to it. + +* :dp:`fls_QZWTS0Giy3I3` + An :t:`if let expression` is inferred by inferring its + :t:`subject let expression` with the :t:`expected type` set to the :t:`type` + of its :t:`pattern`, then inferring its :t:`block expression` with the + :t:`expected type` of the :t:`if-let expression`. If the + :t:`if let expression` has an :t:`else expression`, apply the inference rules + below to it. + +* :dp:`fls_KJsIu1lgVZxP` + An :t:`else expression` that is part of an :t:`if expression` or + :t:`if let expression` is inferred as follows: + + * :dp:`fls_KRQxdSav1KBA` + If the :t:`else expression` has a :t:`block expression`, infer the + :t:`block expression` with the :t:`expected type` of the :t:`if expression` + or :t:`if let expression`. + + * :dp:`fls_Mcpwyvz47SoG` + If the :t:`else expression` has an :t:`if expression`, infer that nested + :t:`if expression` with the :t:`expected type` of the original + :t:`if expression`, then :t:`unify` its :t:`type` with the :t:`type` of + the original :t:`if expression` or :t:`if let expression`. + + * :dp:`fls_34AQ9g7xhdUj` + Otherwise, the :t:`else expression` has an :t:`if let expression`. Infer + that nested :t:`if let expression` with the :t:`expected type` of the + original :t:`if expression`, then :t:`unify` its :t:`type` with the + :t:`type` of the original :t:`if expression` or :t:`if let expression`. + +* :dp:`fls_4ZT35povCL04` + A :t:`match expression` is inferred as follows: + + #. :dp:`fls_62OcWZaVN9hh` + :t:`Unify` the :t:`[type]s` of the :t:`[pattern]s` of every :t:`match arm`, + then infer the :t:`subject expression` with the :t:`expected type` set to + the :t:`type` of the :t:`[pattern]s`. + + #. :dp:`fls_st9onPgDrc8y` + Infer the :t:`[operand]s` of all :t:`[match arm guard]s` with + :t:`expected type` :c:`bool`. + + #. :dp:`fls_F999gqcBfff9` + Infer the :t:`match arm body` of every :t:`match arm` with the + :t:`expected type` of the :t:`match expression`. + +* :dp:`fls_Esa4ST7lLp8T` + A :t:`for loop expression` is inferred by unifying the :t:`type` of its + :t:`pattern` with the :t:`type` ``::Item``, + where ``T`` is the :t:`type` of the :t:`subject expression`, and then + inferring its :t:`loop body`. + +* :dp:`fls_9GDElCkL1UbH` + A :t:`while let loop expression` is inferred by unifying the :t:`type` of its + :t:`subject let expression` with the :t:`type` of its :t:`pattern`, and then + inferring its :t:`loop body`. + +* :dp:`fls_0eATa6RtDNtA` + An :t:`array expression` using an :t:`array element constructor` is inferred + by attempting a :t:`least upper bound coercion` from each element :t:`type` to + the :t:`expected type`. If no such :t:`type coercion` is possible, all element + :t:`[type]s` are unified instead. + +* :dp:`fls_q1JZZMxqWXCk` + A :t:`negation expression` is inferred as follows: + + #. :dp:`fls_hH58ftCxBYzm` + Determine the :t:`trait` corresponding to the operator according to the + following table: + + .. list-table:: + + * - :dp:`fls_aiSI99pbAYqT` + - **Operator** + - **Trait** + * - :dp:`fls_zRdxowO4eDMN` + - ``!`` + - :std:`core::ops::Not` + * - :dp:`fls_IoceMi7HfqsK` + - ``-`` + - :std:`core::ops::Neg` + + #. :dp:`fls_lDkPMB5UI58B` + Infer the :t:`type` of the :t:`expression` to be the :t:`associated type` + ``::Output``, where ``T`` is the :t:`type` of the + :t:`operand`, and ``Trait`` is the operator :t:`trait` determined from + the table above. + +* :dp:`fls_JKZHF3ZDHshw` + A :t:`bit expression` or :t:`arithmetic expression` is inferred as follows: + + #. :dp:`fls_rT6zpG3cYhaF` + Determine the :t:`trait` corresponding to the operator according to the + following table: + + .. list-table:: + + * - :dp:`fls_UFMyHzk6ucsT` + - **Operator** + - **Trait** + * - :dp:`fls_hPZmcfQiNasT` + - ``+`` + - :std:`core::ops::Add` + * - :dp:`fls_rgC3Iea5p9Kr` + - ``-`` + - :std:`core::ops::Sub` + * - :dp:`fls_5jDBPymVKzDv` + - ``*`` + - :std:`core::ops::Mul` + * - :dp:`fls_f21GNntBOxaz` + - ``/`` + - :std:`core::ops::Div` + * - :dp:`fls_NpwLzJJH9cGw` + - ``%`` + - :std:`core::ops::Mod` + * - :dp:`fls_56J8BlLOuvr4` + - ``&`` + - :std:`core::ops::BitAnd` + * - :dp:`fls_jK2pIVxOmtJ8` + - ``|`` + - :std:`core::ops::BitOr` + * - :dp:`fls_fjV22WcosNnt` + - ``^`` + - :std:`core::ops::BitXor` + * - :dp:`fls_h3OVuCdsKPhV` + - ``<<`` + - :std:`core::ops::Shl` + * - :dp:`fls_be2djziKJw3I` + - ``>>`` + - :std:`core::ops::Shr` + + #. :dp:`fls_nHt0LVSiwTB3` + If the :t:`expression` is a :t:`shift left expression` or a + :t:`shift right expression`, and the :t:`expected type` is an + :t:`integer type`, :t:`unify` the :t:`type` of the :t:`left operand` with + the :t:`expected type`. + + #. :dp:`fls_sLCBZ3vG1AWs` + If the :t:`expression` is neither a :t:`shift left expression` nor a + :t:`shift right expression`, and the :t:`expected type` is a + :t:`numeric type`, :t:`unify` the :t:`[type]s` of both :t:`[operand]s` with + the :t:`expected type`. + + #. :dp:`fls_mCISAdm7sjRs` + Infer the :t:`type` of the :t:`expression` to be the :t:`associated type` + ``>::Output``, where ``L`` is the :t:`type` of the + :t:`left operand`, ``Trait`` is the operator :t:`trait` determined from + the table above, and ``R`` is the :t:`type` of the :t:`right operand`. + +* :dp:`fls_Fv8fj9R8prUV` + A :t:`compound assignment expression` is inferred as follows: + + #. :dp:`fls_QDWVv2nTufX7` + Determine the :t:`trait` corresponding to the operator according to the + following table: + + .. list-table:: + + * - :dp:`fls_O2r51Xrmmj38` + - **Operator** + - **Trait** + * - :dp:`fls_b96Zca6oFn82` + - ``+=`` + - :std:`core::ops::AddAssign` + * - :dp:`fls_07AIc06bGnZt` + - ``-=`` + - :std:`core::ops::SubAssign` + * - :dp:`fls_A36NBOl1FTCb` + - ``*=`` + - :std:`core::ops::MulAssign` + * - :dp:`fls_h3mmmIBR72kV` + - ``/=`` + - :std:`core::ops::DivAssign` + * - :dp:`fls_8edzBBIo7jF7` + - ``%=`` + - :std:`core::ops::ModAssign` + * - :dp:`fls_lUg26vFuSePP` + - ``&=`` + - :std:`core::ops::BitAndAssign` + * - :dp:`fls_21ay7EUUUmhx` + - ``|=`` + - :std:`core::ops::BitOrAssign` + * - :dp:`fls_8VgAhOgDOk0y` + - ``^=`` + - :std:`core::ops::BitXorAssign` + * - :dp:`fls_OVVY9CE0pGtJ` + - ``<<=`` + - :std:`core::ops::ShlAssign` + * - :dp:`fls_FojOvB6l3lAh` + - ``>>=`` + - :std:`core::ops::ShrAssign` + + #. :dp:`fls_CVfHkJq1PixR` + Introduce an :t:`obligation` ``L: $Trait``, where ``L`` is the + :t:`type` of the :t:`assigned operand`, ``Trait`` is the operator + :t:`trait` determined from the table above, and ``R`` is the :t:`type` of + the :t:`modifying operand`. + + #. :dp:`fls_0RZ7w0YqmzE3` + The :t:`type` of the :t:`expression` is the :t:`unit type`. + +* :dp:`fls_YppNCEPMYqWJ` + A :t:`comparison expression` is inferred by introducing an :t:`obligation` + ``L: PartialEq``, where ``L`` is the :t:`type` of the :t:`left operand`, + and ``R`` is the :t:`type` of the :t:`right operand`. The :t:`type` of the + :t:`expression` is :c:`bool`. + +* :dp:`fls_SZmiJjI43fQL` + An :t:`assignment expression` is inferred by unifying the :t:`type` of its + :t:`assignee operand` with the :t:`type` of its :t:`value operand`. + +* :dp:`fls_ipWTrhF4xakC` + A :t:`closure expression` is inferred by deducing its signature from the + surrounding context, unifying the deduced :t:`closure parameter` :t:`[type]s` + and return :t:`type` with the user-written :t:`closure parameter` + :t:`[pattern]s` and :t:`[type ascription]s` and return :t:`type`, and then + inferring the :t:`closure body` with the :t:`expected type` set to the + closure's return :t:`type`. The closure signature is deduced as follows: + + * :dp:`fls_zgRFKbfdI6ro` + If the :t:`expected type` is a :t:`function pointer type`, the closure + signature is the signature of that :t:`function pointer type`. + + * :dp:`fls_z2UkZX5Qdmws` + Otherwise, if there is a pending :t:`obligation` requiring that the + :t:`expected type` implements :std:`core::ops::FnOnce` or a :t:`trait` that + has :std:`core::ops::FnOnce` as one of its :t:`[supertrait]s`, derive the + closure signature from the parameters and return :t:`type` of the + :std:`core::ops::FnOnce` :t:`bound` or :t:`supertrait`. + + * :dp:`fls_U46IXItEKMCB` + Otherwise, the closure signature remains undeduced. No outside type + information is provided and the parameter :t:`[type]s` and return :t:`type` + are subject to regular :t:`type inference`. + +* :dp:`fls_TAJ3JJwIeDbQ` + Other :t:`[expression]s` are inferred by applying the typing rules specified + in the section for that :t:`expression`. + +:dp:`fls_VrpaTruoBwtF` +If an :t:`expression` is a :t:`diverging expression`, its :t:`type` is a new +:t:`diverging type variable`. + +.. _fls_85vx1qfa061i: + +Traits +------ + +.. rubric:: Syntax + +.. syntax:: + + TraitDeclaration ::= + $$unsafe$$? $$trait$$ Name GenericParameterList? ($$:$$ SupertraitList?)? WhereClause? TraitBody + + SupertraitList ::= + TypeBoundList + + TraitBody ::= + $${$$ + InnerAttributeOrDoc* + AssociatedItem* + $$}$$ + +.. rubric:: Legality Rules + +:dp:`fls_tani6lesan9u` +A :t:`trait` is an :t:`item` that describes an interface a :t:`type` can +implement. + +:dp:`fls_PiAR1B26SoZV` +A :t:`trait body` is a :t:`construct` that encapsulates the +:t:`[associated item]s`, :t:`[inner attribute]s`, and +:t:`[inner doc comment]s` of a :t:`trait`. + +:dp:`fls_Y28596CVBzDG` +Within a :t:`trait`, the :t:`type` :c:`Self` acts as a placeholder for a +:t:`type` implementing the :t:`trait`, and behaves like a :t:`type parameter`. + +:dp:`fls_AdbbUZZgMEsQ` +A :t:`local trait` is a :t:`trait` that is defined in the current :t:`crate`. + +:dp:`fls_I9JaKZelMiby` +A :t:`subtrait` is a :t:`trait` with a :t:`supertrait`. + +:dp:`fls_CYtxPjK3zq2T` +A :t:`supertrait` is a transitive :t:`trait` that a :t:`type` must additionally +implement. + +:dp:`fls_ytn5cdonytyn` +A :t:`subtrait` shall not be its own :t:`supertrait`. + +:dp:`fls_vucd1u38sq7i` +A :t:`trait` of the form + +.. code-block:: rust + + trait T: Bound {} + +:dp:`fls_kyr81mi01me2` +is equivalent to a :t:`where clause` of the following form: + +.. code-block:: rust + + trait T where Self: Bound {} + +:dp:`fls_YynbrIceKmsJ` +An :t:`auto trait` is a :t:`trait` that is implicitly and automatically +implemented by a :t:`type` when the types of its constituent :t:`[field]s` +implement the :t:`trait`. + +:dp:`fls_Bd4HwdrRuXMm` +A :t:`type` that has no :t:`[field]s` implements all :t:`[auto trait]s`. + +:dp:`fls_UzfG5ic8PUIH` +If determining whether a :t:`type` ``T`` implements an :t:`auto trait` +would recursively depend on whether ``T`` implements said :t:`auto trait`, this +requirement is ignored and assumed to hold. + +:dp:`fls_02D6ku4Sd6yL` +The following :t:`[trait]s` are :t:`[auto trait]s`: + +* :dp:`fls_RLFIzQeAPhG6` + :std:`core::marker::Send` + +* :dp:`fls_avSxO0LEka2x` + :std:`core::marker::Sync` + +* :dp:`fls_ft8axGGOe3aL` + :std:`core::marker::Unpin` + +* :dp:`fls_M4EoT1NMyxJS` + :std:`core::panic::UnwindSafe` + +* :dp:`fls_Tir2kpKNP1KC` + :std:`core::panic::RefUnwindSafe` + +:dp:`fls_WxHiKr8BGGvz` +No other :t:`[trait]s` are :t:`[auto trait]s`. + +.. rubric:: Examples + +.. code-block:: rust + + trait Sequence { + fn length(&self) -> u32; + fn element_at(&self, position: u32) -> T; + } + +:dp:`fls_mjg7yrq66hh0` +Shape is a supertrait of Circle. + +.. code-block:: rust + + trait Shape { + fn area(&self) -> f64; + } + +:dp:`fls_ydowwijzirmm` +Circle is a subtrait of Shape. + +.. code-block:: rust + + trait Circle: Shape { + fn radius(&self) -> f64; + } + +.. _fls_4ikc07mfrez5: + +Object Safety +~~~~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_lrdki56hpc3k` +A :t:`trait` is :t:`object safe` when: + +* :dp:`fls_5wlltclogfkw` + Its :t:`[supertrait]s` are :t:`object safe`, and + +* :dp:`fls_droy0w5gtqaw` + :std:`core::marker::Sized` is not a :t:`supertrait`, and + +* :dp:`fls_46gd1q80c6bn` + It lacks :t:`[associated constant]s`, and + +* :dp:`fls_kwo4cknx0yat` + Its :t:`[associated function]s` are :t:`object safe`, and + +* :dp:`fls_vmLLL82EQasI` + Its :t:`[associated type alias]es` specify a :std:`core::marker::Sized` + :t:`[trait bound]` for :c:`Self` in a :t:`type bound predicate`. + +:dp:`fls_uixekv82g2e5` +An :t:`associated function` is :t:`object safe` when it is either an +:t:`object safe` dispatchable :t:`function` or an :t:`object safe` +non-dispatchable :t:`function`. + +:dp:`fls_72tvfoemwpyy` +A dispatchable :t:`function` is :t:`object safe` when: + +* :dp:`fls_j7nb34o87l1z` + It lacks :t:`[generic parameter]s`, and + +* :dp:`fls_k1vc9vd8at92` + Is a :t:`method` that does not use :c:`Self` in its :t:`function signature` + except in the :t:`type` of its :t:`self parameter` or as the :t:`type` of a + :t:`type bound predicate`, and + +* :dp:`fls_kqylg31sm5wv` + It lacks :t:`[type bound predicate]s` with :c:`Self` as the predicate's + :t:`type` and :t:`[trait]s` as the predicate's :t:`[trait bound]s` other than + :std:`core::marker::Send`, :std:`core::marker::Sync` and + :std:`core::marker::Unpin` + +:dp:`fls_aer3gaur7avp` +A :t:`function` is :t:`object safe` when it specifies a +:std:`core::marker::Sized` :t:`[trait bound]` for :c:`Self` in a +:t:`type bound predicate`. + +.. _fls_jeoas4n6su4: + +Trait and Lifetime Bounds +------------------------- + +.. rubric:: Syntax + +.. syntax:: + + TypeBoundList ::= + TypeBound ($$+$$ TypeBound)* $$+$$? + + TypeBound ::= + LifetimeIndication + | ParenthesizedTraitBound + | TraitBound + + LifetimeIndication ::= + Lifetime + | $$'_$$ + | $$'static$$ + + LifetimeIndicationList ::= + LifetimeIndication ($$+$$ LifetimeIndication)* $$+$$? + + ParenthesizedTraitBound ::= + $$($$ TraitBound $$)$$ + + TraitBound ::= + $$?$$? ForGenericParameterList? TypePath + + ForGenericParameterList ::= + $$for$$ GenericParameterList + +.. rubric:: Legality Rules + +:dp:`fls_5g508z6c7q5f` +A :t:`bound` imposes a constraint on a :t:`generic parameter` by limiting the +set of possible :t:`[generic substitution]s`. + +:dp:`fls_BqLPVaSyyXRG` +A :t:`bound` does not impose a constraint on a :t:`generic parameter` of a +:t:`type alias` unless it is an :t:`associated item`. + +:dp:`fls_grby8tmmd8sb` +A :t:`lifetime bound` is a :t:`bound` that imposes a constraint on the +:t:`[lifetime]s` of :t:`[generic parameter]s`. + +:dp:`fls_knut10hoz6wc` +A :t:`trait bound` is a :t:`bound` that imposes a constraint on the +:t:`[trait]s` of :t:`[generic parameter]s`. + +:dp:`fls_sf6zg0ez9hbb` +A :s:`ForGenericParameterList` shall not specify :s:`[ConstantParameter]s` or +:s:`[TypeParameter]s`. + +:dp:`fls_vujl3fblz6x2` +A :t:`higher-ranked trait bound` is a :t:`bound` that specifies an infinite +list of :t:`[bound]s` for all possible :t:`[lifetime]s` specified by the +:s:`ForGenericParameterList`. + +:dp:`fls_AzuZmR9DXSQh` +An :t:`opt-out trait bound` is a :t:`trait bound` with :s:`Punctuation` ``?`` +that nullifies an implicitly added :t:`trait bound`. + +:dp:`fls_1Sm2Yq1Ow76f` +An :t:`outlives bound` is a :t:`trait bound` which requires that a +:t:`lifetime parameter` or :t:`type` outlives a :t:`lifetime parameter`. + +:dp:`fls_tx4uspewnk7w` +:t:`Outlives bound` ``'a: 'b`` indicates that ``'a`` outlives ``'b``. + +:dp:`fls_5kj8bmvb8xfc` +:t:`Outlives bound` ``T: 'a`` indicates that all :t:`[lifetime parameter]s` of +``T`` outlive ``'a``. + +:dp:`fls_J9DEsd06Ttu9` +An :t:`implied bound` is a :t:`bound` that is not expressed in syntax, but is +is the byproduct of relations between :t:`[lifetime parameter]s` and +:t:`[function parameter]s`, between :t:`[lifetime parameter]s` and a +:t:`return type`, and between :t:`[lifetime parameter]s` and :t:`[field]s`. + +:dp:`fls_IfHRxSasGAih` +A :t:`reference` of the form ``&'a T``, where ``'a`` is a +:t:`lifetime parameter` and ``T`` is a :t:`type`, yields :t:`implied bound` +``T: 'a``. + +:dp:`fls_K8nPGP5xbLb7` +If an :t:`outlives bound` applies to the :t:`type` of a :t:`field`, then this +bound also applies to the related :t:`abstract data type` as an +:t:`implied bound`. + +:dp:`fls_Uw6y5ZlaK6RY` +If an :t:`outlives bound` applies to the :t:`type` of a :t:`function parameter` +or to a :t:`return type`, then this bound also applies to the related +:t:`function` as an :t:`implied bound`. + +.. rubric:: Examples + +.. code-block:: rust + + fn draw(shape: T) { ... } + +.. _fls_yqcygq3y6m5j: + +Lifetimes +~~~~~~~~~ + +.. rubric:: Syntax + +.. syntax:: + + Lifetime ::= + $$'$$ NonKeywordIdentifier + + AttributedLifetime ::= + OuterAttributeOrDoc* Lifetime + + AttributedLifetimeList ::= + AttributedLifetime ($$,$$ AttributedLifetime)* $$,$$? + +.. rubric:: Legality Rules + +:dp:`fls_nne91at3143t` +A :t:`lifetime` specifies the expected longevity of a :t:`value`. + +:dp:`fls_vbclxg9dq4yo` +A :t:`lifetime bound` shall apply to :t:`[type]s` and other :t:`[lifetime]s`. + +.. rubric:: Examples + +.. code-block:: rust + + &'a i32 + &'static Shape + +:dp:`fls_gcszhqg6hnva` +See :p:`4.12. ` for the declaration of Shape. + +.. _fls_ikfvbeewame7: + +Subtyping and Variance +~~~~~~~~~~~~~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_atq2cltx487m` +:t:`Subtyping` is a property of :t:`[type]s`, allowing one :t:`type` to be used +where another :t:`type` is expected. + +:dp:`fls_df87d44kgwcv` +:t:`Variance` is a property of :t:`[lifetime parameter]s` and +:t:`[type parameter]s` that describes the circumstances under which a +:t:`generic type` is a :t:`subtype` of an instantiation of itself with +different :t:`[generic argument]s`. + +:dp:`fls_7ex941yysuhq` +A :t:`type` is its own :t:`subtype`. + +:dp:`fls_7qud6i05ze2` +``F`` is said to be + +* :dp:`fls_wpm0p0gtctvi` + :dt:`Covariant` over ``T``, when ``T`` being a :t:`subtype` of ``U`` implies + that ``F`` is a :t:`subtype` of ``F``, or + +* :dp:`fls_3rfs58i2kg6l` + :dt:`Contravariant` over ``T``, when ``T`` being a :t:`subtype` of ``U`` + implies that ``F`` is a :t:`subtype` of ``F``, or + +* :dp:`fls_kbo3e3bosr0m` + :dt:`Invariant` over ``T``. + +:dp:`fls_n36p6w2a75sm` +:t:`Variance` is determined as follows: + +.. list-table:: + + * - :dp:`fls_xw7eo3us0ow4` + - **Type** + - **Variance in 'a** + - **Variance in T** + * - :dp:`fls_qc6jma5g9vpn` + - ``&'a T`` + - :t:`covariant` + - :t:`covariant` + * - :dp:`fls_hpiiwxzg16rj` + - ``&'a mut T`` + - :t:`covariant` + - :t:`invariant` + * - :dp:`fls_aspdlqluwh9w` + - ``*const T`` + - + - :t:`covariant` + * - :dp:`fls_8ohuze7hqtc1` + - ``*mut T`` + - + - :t:`invariant` + * - :dp:`fls_7pkqgxabojkn` + - ``[T]`` + - + - :t:`covariant` + * - :dp:`fls_ln9pqd4xu5e` + - ``[T; N]`` + - + - :t:`covariant` + * - :dp:`fls_z4jo3ojkcu9v` + - ``fn() -> T`` + - + - :t:`covariant` + * - :dp:`fls_67w6yslr3e25` + - ``fn(T) -> ()`` + - + - :t:`contravariant` + * - :dp:`fls_ojal3qytkqql` + - ``fn(T) -> T`` + - + - :t:`invariant` + * - :dp:`fls_owp42z12l4lc` + - ``core::call::UnsafeCell`` + - + - :t:`invariant` + * - :dp:`fls_i1vuix3gj9ej` + - ``core::marker::PhantomData`` + - + - :t:`covariant` + * - :dp:`fls_mlf39pl0b931` + - ``dyn Trait + 'a`` + - :t:`covariant` + - :t:`invariant` + +:dp:`fls_yknymnlsasyw` +A :t:`trait` is :t:`invariant` in all inputs, including the :c:`Self` parameter. + +:dp:`fls_xkzo7nj40rbn` +:t:`[Lifetime parameter]s` and :t:`[type parameter]s` are subject to +:t:`variance`. + +:dp:`fls_abn5ycx11zpm` +The :t:`variance` of a :t:`generic parameter` of an :t:`abstract data type` or +an :t:`tuple type` is determined as follows: + +#. :dp:`fls_hvfyog9ygn6q` + For each :t:`generic parameter` ``G``: + + #. :dp:`fls_mduolmcawb30` + Initialize :t:`variance` ``V`` of the :t:`generic parameter` to ``any``. + + #. :dp:`fls_y81gmqweqc9w` + For each :t:`field` of the :t:`abstract data type` or the + :t:`tuple type`: + + #. :dp:`fls_etgfvgvymn8o` + If :t:`field` :t:`type` ``T`` uses ``G``, then + + #. :dp:`fls_4kjxxrsk1igf` + If ``V`` is ``any``, set ``V`` to the :t:`variance` of ``T`` over + ``G``. + + #. :dp:`fls_y4zmb3vrym7p` + Otherwise if ``V`` and the :t:`variance` of ``T`` over ``G`` differ, + set ``V`` to :t:`invariant`. + + #. :dp:`fls_9ae3idezsths` + It is a static error if :t:`variance` ``V`` is ``any``. + +:dp:`fls_WD6uyTCziRac` +:t:`[Expression]s` and :t:`[statement]s` may impose :t:`subtyping` requirements +on their :t:`[subexpression]s`. Such requirements are applied after +:t:`type inference`, on the :t:`[inferred type]s` of the respective +:t:`[expression]s` and :t:`[pattern]s`. + +:dp:`fls_xURR0owesaIE` +It is a static error if any :t:`subtyping` requirements are not met. + +:dp:`fls_CvZNYIfnOUcc` +The :t:`subtyping` requirements for :t:`[statement]s` are as follows: + +* :dp:`fls_xrLYQX7W9OnR` + :t:`[Item statement]s` impose no additional :t:`subtyping` requirements. + +* :dp:`fls_DWPN8DRysgMa` + :t:`[Let statement]s` require that the :t:`type` of the :t:`expression` of the + :t:`let initializer` (if any) is a :t:`subtype` of the :t:`type` of the + :t:`let statement`'s :t:`pattern`. + +* :dp:`fls_tOn5oKtp300J` + :t:`[Expression statement]s` impose the :t:`subtyping` requirements for the + contained :t:`expression`, as outlined below. + +:dp:`fls_HqXTVi7gr9wR` +The :t:`subtyping` requirements for :t:`[expression]s` are as follows: + +* :dp:`fls_lxfPvK7NDNlj` + The requirements for any :t:`arithmetic expression`, :t:`bit expression`, + :t:`comparison expression`, :t:`compound assignment expression`, + :t:`index expression`, or :t:`negation expression` are the same requirements + as for an explicit invocation of the corresponding operator :t:`trait` + :t:`method`. + +* :dp:`fls_awJeqcAHn5O3` + An :t:`assignment expression` requires that the :t:`type` of its + :t:`value operand` is a :t:`subtype` of the :t:`type` of its + :t:`assignee operand`. + +* :dp:`fls_AD1IXzsnlwyg` + A :t:`type cast expression` requires that the :t:`type` of its :t:`operand` is + a :t:`subtype` of its :t:`target type`. + +* :dp:`fls_p2II8E6cc9zt` + A :t:`call expression` or :t:`method call expression` requires that the + :t:`[type]s` of its :t:`[argument operand]s` are :t:`[subtype]s` of the + :t:`[type]s` of the corresponding parameter. + +* :dp:`fls_pN5C4FHWEWdK` + A :t:`return expression` requires that the :t:`type` of its :t:`operand` is + a :t:`subtype` of the :t:`return type` of the containing :t:`function` or + :t:`closure expression`. + +* :dp:`fls_RdqV0hI8h8BI` + A :t:`break expression` requires that its :t:`break type` is a :t:`subtype` of + the :t:`type` of the :t:`block expression` or :t:`loop expression` that the + :t:`break expression` breaks out of. + +* :dp:`fls_Uv5CcMHPX79J` + Other :t:`[expression]s` do not impose any additional :t:`subtyping` + requirements. + +:dp:`fls_LyvV4pOG7E4l` +Any :t:`type coercion` resulting in a :t:`method` invocation imposes the same +:t:`subtyping` requirements as an explicit invocation of that :t:`method` would. + +.. _fls_l9ebxrlxyawd: + +Lifetime Elision +~~~~~~~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_9wtuclhm7yz5` +:t:`Lifetime elision` is a set of rules that automatically insert +:t:`[lifetime parameter]s` and/or :t:`[lifetime argument]s` when they are +elided in the source code. + +:dp:`fls_JmP6O9zj8fkV` +A :t:`lifetime` may be elided either implicitly or explicitly. + +:dp:`fls_5ZAQ9p7jQuc2` +A :t:`lifetime` is elided explicitly if it is the ``'_`` :t:`lifetime`. + +:dp:`fls_YmUQ8ZiQuycp` +A :t:`lifetime` is elided implicitly if it is absent. + +:dp:`fls_sIMN6Sd8xUZz` +:t:`Lifetime elision` rules are introduced by certain :t:`[construct]s` and may +be nested. + +:dp:`fls_dIyisjNIx9dC` +An elided :t:`lifetime` is subject to the set of :t:`lifetime elision` rules +introduced by the innermost :t:`construct` containing the elided :t:`lifetime`. + +:dp:`fls_cD0ZYi23VqWg` +It is a static error to elide a :t:`lifetime` in a position where no +:t:`lifetime elision` rules are active. + +:dp:`fls_sA4Lqc5o6cX3` +:t:`[Lifetime]s` cannot be implicitly elided within :t:`[impl trait type]s`. +If no :t:`lifetime bound` is present, the :t:`impl trait type` is not considered +to be bound by any :t:`lifetime`. + +.. _fls_HEtHxXBcg7JA: + +Function Lifetime Elision +^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Legality Rules + +:dp:`fls_lAdIRCFFlydD` +:t:`Function lifetime elision` is a form of :t:`lifetime elision` that applies +to :t:`[function]s`, :t:`[function pointer type parameter]s`, and :t:`[path]s` +that resolve to one of the :std:`core::ops::Fn`, :std:`core::ops::FnMut`, and +:std:`core::ops::FnOnce` :t:`[trait]s`. + +:dp:`fls_dpudys82dhdc` +An :dt:`input lifetime` is one of the following :t:`[lifetime]s`: + +* :dp:`fls_pjil71kk0r25` + Any :t:`lifetime` related to a :t:`function parameter`. + +* :dp:`fls_1jnn9bsb71k7` + Any :t:`lifetime` related to a :t:`function pointer type parameter`. + +* :dp:`fls_2p29p1fvi182` + Any :t:`lifetime` related to the :t:`[function parameter]s` of the + :std:`core::ops::Fn`, :std:`core::ops::FnMut`, and :std:`core::ops::FnOnce` + :t:`[trait]s`. + +* :dp:`fls_ks8wlufmhz6d` + Any :t:`lifetime` related to an :t:`implementing type` and an + :t:`implemented trait` of an :t:`implementation`. + +:dp:`fls_hsg9kfyvh35m` +An :dt:`output lifetime` is one of the following :t:`[lifetime]s`: + +* :dp:`fls_ofqy10q4a9jk` + Any :t:`lifetime` related to the :t:`return type` of a :t:`function`. + +* :dp:`fls_yofbo96tjppf` + Any :t:`lifetime` related to the :t:`return type` of a + :t:`function pointer type`. + +* :dp:`fls_vf7cxiir91ps` + Any :t:`lifetime` related to the :t:`[return type]s` of the + :std:`core::ops::Fn`, :std:`core::ops::FnMut`, and :std:`core::ops::FnOnce` + :t:`[trait]s`. + +:dp:`fls_g56br27hq2zj` +:t:`Lifetime elision` proceeds as follows: + +#. :dp:`fls_1j204m1wy333` + Each :t:`elided` :t:`input lifetime` is a distinct :t:`lifetime parameter` in + its related :t:`construct`. + +#. :dp:`fls_6km3cbchuxr2` + If a :t:`construct` has exactly one :t:`input lifetime`, then that + :t:`lifetime` is assigned to all :t:`elided` :t:`[output lifetime]s`. + +#. :dp:`fls_crb6m6b3cdwh` + If a :t:`function` has a :t:`self parameter` of the form ``&self``, + ``&mut self``, or ``self: T`` where ``T`` is a :t:`type` with a + :t:`lifetime`, then the :t:`lifetime` of the :t:`self parameter` is assigned + to all :t:`elided` :t:`[output lifetime]s`. + +#. :dp:`fls_ac9tdlfwp5et` + Otherwise this is a static error. + +.. rubric:: Examples + +:dp:`fls_qtjc7334wzhj` +Given :t:`function` ``f`` of the form + +.. code-block:: rust + + fn f <'a, 'b, T: ToCStr>(&'a mut self, args: &'b [T]) -> &'a mut Command; + +:dp:`fls_vcmmkp9uruhr` +its :t:`lifetime` :t:`elided` form is + +.. code-block:: rust + + fn f (&mut self, args: &[T]) -> &mut Command; + +.. _fls_u5lQkU2rS6uV: + +Static Lifetime Elision +^^^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Legality Rules + +:dp:`fls_l4RDXaFwnQZ6` +:t:`Static lifetime elision` is a form of :t:`lifetime elision` that applies to +the :t:`type ascription` of :t:`[constant]s` and :t:`[static]s`. + +:dp:`fls_8irr97rZWfSC` +An :t:`elided` :t:`lifetime` of a :t:`reference type` or :t:`path` in the +:t:`type specification` of a :t:`constant` or :t:`static` is inferred to be the +``'static'`` lifetime. + +:dp:`fls_37udexenqv3p` +The :t:`lifetime` of an :t:`associated implementation constant` shall not be +:t:`elided`. + +:dp:`fls_xi86he5vvill` +The :t:`lifetime` of an :t:`associated trait constant` shall not be :t:`elided`. + +.. rubric:: Examples + +:dp:`fls_2GKCEI9MwMn9` +Given :t:`static` ``S`` of the form + +.. code-block:: rust + + static S: &[&usize] = &[]; + +:dp:`fls_f3yZ31dRuTPG` +its :t:`lifetime` :t:`elided` form is + +.. code-block:: rust + + static S: &'static [&'static usize] = &[]; + +.. _fls_XTBOhK2Yk4lA: + +Trait Object Lifetime Elision +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Legality Rules + +:dp:`fls_fuBYWRrgxlbQ` +:t:`Trait object lifetime elision` is a form of :t:`lifetime elision` that +applies to :t:`[trait object type]s`. + +:dp:`fls_URl9CeIVsiWs` +An :t:`elided` :t:`lifetime` of a :t:`trait object type` is inferred as follows: + +* :dp:`fls_SHhw6lYHeYyQ` + If the :t:`trait object type` is used as the :t:`type specification` of a + :t:`reference type`, then the :t:`lifetime` of the :t:`reference type` is the + :t:`elided` :t:`lifetime`, + +* :dp:`fls_lC2rwdPLRwaf` + If the :t:`trait object type` is used as a :t:`generic argument` and + + * :dp:`fls_e36Hh4oJvfhv` + if the corresponding :t:`generic parameter` has exactly one + :t:`lifetime bound`, then the :t:`lifetime` of that :t:`bound` is the + :t:`elided` :t:`lifetime`, + + * :dp:`fls_ptejalcnIQtm` + Otherwise it is a static error to infer the :t:`lifetime` :t:`bound`. + +* :dp:`fls_rGbdKtTijby4` + If the :t:`trait` of the :t:`trait object type` has exactly one + :t:`lifetime bound` specified, then the :t:`lifetime` of that :t:`bound` is + the inferred :t:`lifetime`, + +* :dp:`fls_JhmQpUoExiNZ` + If the :t:`trait` of the :t:`trait object type` has no :t:`[lifetime bound]s` + specified, then the :t:`elided` :t:`lifetime` is the ``'static`` + :t:`lifetime` unless it is :t:`elided` in :t:`[expression]s` where it is + instead inferred, + +* :dp:`fls_cglZigwAnASl` + Otherwise it is a static error to infer the :t:`lifetime bound`. + +.. rubric:: Examples + +:dp:`fls_MipY2emZFF6d` +Given :t:`type alias` ``T`` of the form + +.. code-block:: rust + + type T<'a> = &'a dyn Trait; + +:dp:`fls_YPesUZqYHVUX` +its :t:`lifetime` :t:`elided` form is + +.. code-block:: rust + + type T<'a> = &'a (dyn Trait + 'a); + +.. _fls_ZQPv1ybdDsE1: + +Impl Header Lifetime Elision +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. rubric:: Legality Rules + +:dp:`fls_FUdsmzN0T8XP` +:t:`Impl header lifetime elision` is a form of :t:`lifetime elision` that +applies to the :t:`implementing type` and :t:`implemented trait` (if any) of an +:t:`implementation`. + +:dp:`fls_3p5BdLn3JbKz` +The :t:`impl header lifetime elision` rules are as follows: + +* :dp:`fls_PfS5AlkN6ANl` + Every explicitly elided :t:`lifetime` is replaced with a new + :t:`lifetime parameter` defined on the :t:`implementation`. + +* :dp:`fls_QV6zE5Mdor5E` + An implicitly elided :t:`lifetime` of a :t:`reference` is also replaced with a + new :t:`lifetime parameter` defined on the :t:`implementation`. + +* :dp:`fls_P2V1DqrdCjCi` + An implicitly elided :t:`lifetime` in any other :t:`type` is a static error. + +.. rubric:: Examples + +:dp:`fls_MBa35hfS8J9l` +Given an :t:`implementation` of the form + +.. code-block:: rust + + impl Trait<&u8, Strukt<'_>> for &i32 {} + +:dp:`fls_w0vwdmO8qV9j` +its :t:`lifetime` :t:`elided` form is + +.. code-block:: rust + + impl<'a, 'b, 'c> Trait<&'a u8, Strukt<'b>> for &'c i32 {} + +:dp:`fls_vImY3BrpNvNY` +where ``'a``, ``'b``, and ``'c`` are anonymous :t:`[lifetime parameter]s` that +cannot be named by user-written code. diff --git a/_sources/undefined-behavior.rst.txt b/_sources/undefined-behavior.rst.txt new file mode 100644 index 00000000..5ecc9956 --- /dev/null +++ b/_sources/undefined-behavior.rst.txt @@ -0,0 +1,16 @@ +.. SPDX-License-Identifier: MIT OR Apache-2.0 + SPDX-FileCopyrightText: The Ferrocene Developers + +.. default-domain:: spec +.. informational-page:: + +.. _fls_EBwqH60SUHiN: + +List of undefined behavior +========================== + +:dp:`fls_f9mkI99mzPxY` +The following sections of the Ferrocene Language Specification document +undefined behavior: + +.. items-with-rubric:: Undefined Behavior diff --git a/_sources/unsafety.rst.txt b/_sources/unsafety.rst.txt new file mode 100644 index 00000000..1ede11bd --- /dev/null +++ b/_sources/unsafety.rst.txt @@ -0,0 +1,49 @@ +.. SPDX-License-Identifier: MIT OR Apache-2.0 + SPDX-FileCopyrightText: The Ferrocene Developers + +.. default-domain:: spec + +.. _fls_jep7p27kaqlp: + +Unsafety +======== + +.. rubric:: Legality Rules + +:dp:`fls_8kqo952gjhaf` +:t:`Unsafety` is the presence of :t:`[unsafe operation]s` and :t:`[unsafe trait +implementation]s` in program text. + +:dp:`fls_ovn9czwnwxue` +An :t:`unsafe operation` is an operation that may result in +:t:`undefined behavior` that is not diagnosed as a static error. +:t:`[Unsafe operation]s` are referred to as :t:`unsafe Rust`. + +:dp:`fls_pfhmcafsjyf7` +The :t:`[unsafe operation]s` are: + +* :dp:`fls_jd1inwz7ulyw` + Dereferencing a :t:`value` of a :t:`raw pointer type`. + +* :dp:`fls_3ra8s1v1vbek` + Reading or writing an :t:`external static`. + +* :dp:`fls_6ipl0xo5qjyl` + Reading or writing a :t:`mutable static`. + +* :dp:`fls_ucghxcnpaq2t` + Accessing a :t:`field` of a :t:`union`, other than to assign to it. + +* :dp:`fls_ljocmnaz2m49` + Calling an :t:`unsafe function`. + +* :dp:`fls_s5nfhBFOk8Bu` + Calling :t:`macro` :std:`core::arch::asm`. + +:dp:`fls_jb6krd90tjmc` +An :t:`unsafe context` is either an :t:`unsafe block` or an +:t:`unsafe function`. + +:dp:`fls_ybnpe7ppq1vh` +An :t:`unsafe operation` shall be used only within an :t:`unsafe context`. + diff --git a/_sources/values.rst.txt b/_sources/values.rst.txt new file mode 100644 index 00000000..f3849f8c --- /dev/null +++ b/_sources/values.rst.txt @@ -0,0 +1,284 @@ +.. SPDX-License-Identifier: MIT OR Apache-2.0 + SPDX-FileCopyrightText: The Ferrocene Developers + +.. default-domain:: spec + +.. _fls_94a8v54bufn8: + +Values +====== + +.. rubric:: Legality Rules + +:dp:`fls_buyaqara7am4` +A :t:`value` is either a :t:`literal` or the result of a computation, that may +be stored in a memory location, and interpreted based on some :t:`type`. + +:dp:`fls_rixdyyc525xp` +Two :t:`[value]s` :t:`overlap` when + +* :dp:`fls_m6ctqq70vcxr` + Both :t:`[value]s` are the same, or + +* :dp:`fls_s231d18x5eay` + One :t:`value` is of an :t:`abstract data type` and the other denotes a + :t:`field` of the same :t:`value`, or + +* :dp:`fls_dfr4yqo93fsn` + One :t:`value` denotes an :t:`array` and the other denotes an element of the + same :t:`value`, or + +* :dp:`fls_eoak5mdl6ma` + Both :t:`[value]s` are elements of the same :t:`array`. + +.. rubric:: Undefined Behavior + +:dp:`fls_6lg0oaaopc26` +It is undefined behavior to create a :t:`value` from uninitialized memory unless +the :t:`type` of the :t:`value` is a :t:`union type`. + +.. _fls_ixjc5jaamx84: + +Constants +--------- + +.. rubric:: Syntax + +.. syntax:: + + ConstantDeclaration ::= + $$const$$ (Name | $$_$$) TypeAscription ConstantInitializer? $$;$$ + + ConstantInitializer ::= + $$=$$ Expression + +.. rubric:: Legality Rules + +:dp:`fls_5o5iu4j8in4l` +A :t:`constant` is an :t:`immutable` :t:`value` whose uses are substituted by +the :t:`value`. + +:dp:`fls_3mhj0kkupwuz` +An :t:`unnamed constant` is a :t:`constant` declared with character 0x5F (low +line). + +:dp:`fls_ka4y2yd100dx` +The :t:`type specification` of a :t:`constant` shall have ``'static`` +:t:`lifetime`. + +:dp:`fls_vt9tlkd676ql` +The :t:`type` of a :t:`constant` shall implement the :std:`core::marker::Sized` +:t:`trait`. + +:dp:`fls_ndmfqxjpvsqy` +A :t:`constant initializer` is a :t:`construct` that provides the :t:`value` of +its related :t:`constant`. + +:dp:`fls_6rxwbbhf5tc5` +A :t:`constant` shall have a :t:`constant initializer`, unless it is an +:t:`associated trait constant`. + +:dp:`fls_vnc3ttnid1qr` +The :t:`expression` of a :t:`constant initializer` shall be a +:t:`constant expression`. + +:dp:`fls_deuo1pn8cjd6` +The value of a :t:`constant` is determined by evaluating its +:t:`constant initializer`. + +:dp:`fls_5x0jv4cgbolx` +A use of a :t:`constant` is a :t:`value expression` and creates a copy of the +constant's value. + +.. rubric:: Dynamic Semantics + +:dp:`fls_xezt9hl069h4` +The :t:`elaboration` of a :t:`constant` evaluates its :t:`constant initializer`. + +:dp:`fls_ndobth7s92if` +A :t:`path` that refers to a :t:`constant` is replaced with the :t:`value` of +the :t:`constant`. + +.. rubric:: Examples + +.. code-block:: rust + + const ZERO: u32 = 0; + +.. _fls_xdvdl2ssnhlo: + +Statics +------- + +.. rubric:: Syntax + +.. syntax:: + + StaticDeclaration ::= + $$static$$ $$mut$$? Name TypeAscription StaticInitializer? $$;$$ + + StaticInitializer ::= + $$=$$ Expression + +.. rubric:: Legality Rules + +:dp:`fls_ibrmiwfypldh` +A :t:`static` is a :t:`value` that is associated with a specific memory +location. + +:dp:`fls_mt94jvoot9dx` +A :t:`static` defined within a :t:`generic function` exists once in the +output executable or library. + +:dp:`fls_k0r2c6uq29tu` +The :t:`type specification` of a :t:`static` shall have ``'static`` +:t:`lifetime`. + +:dp:`fls_b6ods85htuyn` +The :t:`type` of a :t:`static` shall implement the :std:`core::marker::Sized` +:t:`trait`. + +:dp:`fls_doi4z6u55bi7` +A :t:`mutable static` is a :t:`static` with :t:`keyword` ``mut`` whose +:t:`value` can be modified. + +:dp:`fls_74hp208pto22` +Access to a :t:`mutable static` shall require :t:`unsafe context`. + +:dp:`fls_jfde2vg6mtww` +An :t:`immutable static` is a :t:`static` whose :t:`value` cannot be modified. + +:dp:`fls_k4tyqb1j6zjo` +The type of an :t:`immutable static` shall implement the +:std:`core::marker::Sync` :t:`trait`. + +:dp:`fls_t17h5h6a6v4c` +A :t:`static initializer` is a :t:`construct` that provides the :t:`value` of +its related :t:`static`. + +:dp:`fls_yq0hpy4jx2qb` +A :t:`static` shall have a :t:`static initializer`, unless it is an +:t:`external static`. + +:dp:`fls_vgidvfwzm4ks` +The :t:`expression` of a :t:`static initializer` shall be a +:t:`constant expression`. + +:dp:`fls_8dcldbvu7lav` +A use of a :t:`static` is a :t:`place expression` referring to the unique +location of the :t:`static`. + +.. rubric:: Dynamic Semantics + +:dp:`fls_w0nb0mphho7b` +The :t:`elaboration` of a :t:`static` evaluates its :t:`static initializer`. + +:dp:`fls_eeocxst9vafn` +All :t:`[path]s` that refer to a :t:`static` refer to the same memory location. + +:dp:`fls_47khd5ljsxeq` +A :t:`static` is not :t:`dropped` during :t:`destruction`. + +:dp:`fls_dowxbphqvk3n` +A :t:`mutable static` whose :t:`type` is not subject to +:t:`interior mutability` may reside in read-only memory. + +.. rubric:: Undefined Behavior + +:dp:`fls_b5wsmii7vz3v` +It is undefined behavior to mutate an :t:`immutable static` whose :t:`type` is +not subject to :t:`interior mutability`. + +.. rubric:: Examples + +.. code-block:: rust + + static mut GLOBAL: u32 = 0; + +.. _fls_cleoffpn5ew6: + +Temporaries +----------- + +.. rubric:: Legality Rules + +:dp:`fls_awpw61yofckz` +A :t:`temporary` is an anonymous :t:`variable` produced by some intermediate +computation. + +.. _fls_gho955gmob73: + +Variables +--------- + +.. rubric:: Legality Rules + +:dp:`fls_hl5tnd9yy252` +A :t:`variable` is a placeholder for a :t:`value` that is allocated on the +stack. + +:dp:`fls_vgi0gh5zmoiu` +The following :t:`[construct]s` are :t:`[variable]s`: + +* :dp:`fls_81dlbula47nu` + A :t:`binding`. + +* :dp:`fls_3p0sb9ppmg3w` + A :t:`temporary`. + +:dp:`fls_r9km9f969bu8` +A :t:`variable` shall be used only after it has been initialized through all +:t:`[reachable control flow path]s` up to the point of its usage. + +.. rubric:: Dynamic Semantics + +:dp:`fls_g8etd5lsgn9j` +A :t:`variable` is not initialized when allocated. + +.. _fls_wttihxen35as: + +Constant Promotion +~~~~~~~~~~~~~~~~~~ + +.. rubric:: Legality Rules + +:dp:`fls_udn9lyf3m0z6` +:t:`Constant promotion` is the process of converting a :t:`value expression` +into a :t:`constant`. + +:dp:`fls_yvkdcs4pmxjf` +:t:`Constant promotion` is possible only when + +* :dp:`fls_n570za6a9nqd` + The :t:`value expression` is a :t:`constant expression`, and + +* :dp:`fls_tms5r9f5ogcb` + The :t:`type` of the :t:`value expression` does not have a :t:`destructor`, + and + +* :dp:`fls_bysv5r7iuf5j` + The :t:`value expression` does not employ a :t:`struct expression` + constructing a :std:`core::cell::UnsafeCell`, and + +* :dp:`fls_3h5vr7xk2rrt` + The :t:`value expression` only consists of operations that will always succeed + evaluation, and + +* :dp:`fls_3BGncWvMumEt` + The :t:`value expression` is the :t:`operand` of an + :t:`immutable borrow expression`. + +:dp:`fls_m690b8qg9d9r` +:t:`Constant promotion` is always possible for :t:`expression` ``&mut []``, +promoting the produced :t:`mutable borrow` to have ``'static`` :t:`lifetime`. + +:dp:`fls_uf0sg25awre6` +:t:`Constant promotion` proceeds as follows: + +#. :dp:`fls_o7cqfdnr253y` + An anonymous :t:`constant` is created, whose :t:`constant initializer` holds + the result of the :t:`value expression`. + +#. :dp:`fls_ap85svxyuhvg` + The :t:`value` of the anonymous :t:`constant` is :t:`borrowed` with + ``'static`` :t:`lifetime`. diff --git a/_static/basic.css b/_static/basic.css new file mode 100644 index 00000000..7577acb1 --- /dev/null +++ b/_static/basic.css @@ -0,0 +1,903 @@ +/* + * basic.css + * ~~~~~~~~~ + * + * Sphinx stylesheet -- basic theme. + * + * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/* -- main layout ----------------------------------------------------------- */ + +div.clearer { + clear: both; +} + +div.section::after { + display: block; + content: ''; + clear: left; +} + +/* -- relbar ---------------------------------------------------------------- */ + +div.related { + width: 100%; + font-size: 90%; +} + +div.related h3 { + display: none; +} + +div.related ul { + margin: 0; + padding: 0 0 0 10px; + list-style: none; +} + +div.related li { + display: inline; +} + +div.related li.right { + float: right; + margin-right: 5px; +} + +/* -- sidebar --------------------------------------------------------------- */ + +div.sphinxsidebarwrapper { + padding: 10px 5px 0 10px; +} + +div.sphinxsidebar { + float: left; + width: 230px; + margin-left: -100%; + font-size: 90%; + word-wrap: break-word; + overflow-wrap : break-word; +} + +div.sphinxsidebar ul { + list-style: none; +} + +div.sphinxsidebar ul ul, +div.sphinxsidebar ul.want-points { + margin-left: 20px; + list-style: square; +} + +div.sphinxsidebar ul ul { + margin-top: 0; + margin-bottom: 0; +} + +div.sphinxsidebar form { + margin-top: 10px; +} + +div.sphinxsidebar input { + border: 1px solid #98dbcc; + font-family: sans-serif; + font-size: 1em; +} + +div.sphinxsidebar #searchbox form.search { + overflow: hidden; +} + +div.sphinxsidebar #searchbox input[type="text"] { + float: left; + width: 80%; + padding: 0.25em; + box-sizing: border-box; +} + +div.sphinxsidebar #searchbox input[type="submit"] { + float: left; + width: 20%; + border-left: none; + padding: 0.25em; + box-sizing: border-box; +} + + +img { + border: 0; + max-width: 100%; +} + +/* -- search page ----------------------------------------------------------- */ + +ul.search { + margin: 10px 0 0 20px; + padding: 0; +} + +ul.search li { + padding: 5px 0 5px 20px; + background-image: url(file.png); + background-repeat: no-repeat; + background-position: 0 7px; +} + +ul.search li a { + font-weight: bold; +} + +ul.search li p.context { + color: #888; + margin: 2px 0 0 30px; + text-align: left; +} + +ul.keywordmatches li.goodmatch a { + font-weight: bold; +} + +/* -- index page ------------------------------------------------------------ */ + +table.contentstable { + width: 90%; + margin-left: auto; + margin-right: auto; +} + +table.contentstable p.biglink { + line-height: 150%; +} + +a.biglink { + font-size: 1.3em; +} + +span.linkdescr { + font-style: italic; + padding-top: 5px; + font-size: 90%; +} + +/* -- general index --------------------------------------------------------- */ + +table.indextable { + width: 100%; +} + +table.indextable td { + text-align: left; + vertical-align: top; +} + +table.indextable ul { + margin-top: 0; + margin-bottom: 0; + list-style-type: none; +} + +table.indextable > tbody > tr > td > ul { + padding-left: 0em; +} + +table.indextable tr.pcap { + height: 10px; +} + +table.indextable tr.cap { + margin-top: 10px; + background-color: #f2f2f2; +} + +img.toggler { + margin-right: 3px; + margin-top: 3px; + cursor: pointer; +} + +div.modindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +div.genindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +/* -- domain module index --------------------------------------------------- */ + +table.modindextable td { + padding: 2px; + border-collapse: collapse; +} + +/* -- general body styles --------------------------------------------------- */ + +div.body { + min-width: 360px; + max-width: 800px; +} + +div.body p, div.body dd, div.body li, div.body blockquote { + -moz-hyphens: auto; + -ms-hyphens: auto; + -webkit-hyphens: auto; + hyphens: auto; +} + +a.headerlink { + visibility: hidden; +} + +h1:hover > a.headerlink, +h2:hover > a.headerlink, +h3:hover > a.headerlink, +h4:hover > a.headerlink, +h5:hover > a.headerlink, +h6:hover > a.headerlink, +dt:hover > a.headerlink, +caption:hover > a.headerlink, +p.caption:hover > a.headerlink, +div.code-block-caption:hover > a.headerlink { + visibility: visible; +} + +div.body p.caption { + text-align: inherit; +} + +div.body td { + text-align: left; +} + +.first { + margin-top: 0 !important; +} + +p.rubric { + margin-top: 30px; + font-weight: bold; +} + +img.align-left, figure.align-left, .figure.align-left, object.align-left { + clear: left; + float: left; + margin-right: 1em; +} + +img.align-right, figure.align-right, .figure.align-right, object.align-right { + clear: right; + float: right; + margin-left: 1em; +} + +img.align-center, figure.align-center, .figure.align-center, object.align-center { + display: block; + margin-left: auto; + margin-right: auto; +} + +img.align-default, figure.align-default, .figure.align-default { + display: block; + margin-left: auto; + margin-right: auto; +} + +.align-left { + text-align: left; +} + +.align-center { + text-align: center; +} + +.align-default { + text-align: center; +} + +.align-right { + text-align: right; +} + +/* -- sidebars -------------------------------------------------------------- */ + +div.sidebar, +aside.sidebar { + margin: 0 0 0.5em 1em; + border: 1px solid #ddb; + padding: 7px; + background-color: #ffe; + width: 40%; + float: right; + clear: right; + overflow-x: auto; +} + +p.sidebar-title { + font-weight: bold; +} + +nav.contents, +aside.topic, +div.admonition, div.topic, blockquote { + clear: left; +} + +/* -- topics ---------------------------------------------------------------- */ + +nav.contents, +aside.topic, +div.topic { + border: 1px solid #ccc; + padding: 7px; + margin: 10px 0 10px 0; +} + +p.topic-title { + font-size: 1.1em; + font-weight: bold; + margin-top: 10px; +} + +/* -- admonitions ----------------------------------------------------------- */ + +div.admonition { + margin-top: 10px; + margin-bottom: 10px; + padding: 7px; +} + +div.admonition dt { + font-weight: bold; +} + +p.admonition-title { + margin: 0px 10px 5px 0px; + font-weight: bold; +} + +div.body p.centered { + text-align: center; + margin-top: 25px; +} + +/* -- content of sidebars/topics/admonitions -------------------------------- */ + +div.sidebar > :last-child, +aside.sidebar > :last-child, +nav.contents > :last-child, +aside.topic > :last-child, +div.topic > :last-child, +div.admonition > :last-child { + margin-bottom: 0; +} + +div.sidebar::after, +aside.sidebar::after, +nav.contents::after, +aside.topic::after, +div.topic::after, +div.admonition::after, +blockquote::after { + display: block; + content: ''; + clear: both; +} + +/* -- tables ---------------------------------------------------------------- */ + +table.docutils { + margin-top: 10px; + margin-bottom: 10px; + border: 0; + border-collapse: collapse; +} + +table.align-center { + margin-left: auto; + margin-right: auto; +} + +table.align-default { + margin-left: auto; + margin-right: auto; +} + +table caption span.caption-number { + font-style: italic; +} + +table caption span.caption-text { +} + +table.docutils td, table.docutils th { + padding: 1px 8px 1px 5px; + border-top: 0; + border-left: 0; + border-right: 0; + border-bottom: 1px solid #aaa; +} + +th { + text-align: left; + padding-right: 5px; +} + +table.citation { + border-left: solid 1px gray; + margin-left: 1px; +} + +table.citation td { + border-bottom: none; +} + +th > :first-child, +td > :first-child { + margin-top: 0px; +} + +th > :last-child, +td > :last-child { + margin-bottom: 0px; +} + +/* -- figures --------------------------------------------------------------- */ + +div.figure, figure { + margin: 0.5em; + padding: 0.5em; +} + +div.figure p.caption, figcaption { + padding: 0.3em; +} + +div.figure p.caption span.caption-number, +figcaption span.caption-number { + font-style: italic; +} + +div.figure p.caption span.caption-text, +figcaption span.caption-text { +} + +/* -- field list styles ----------------------------------------------------- */ + +table.field-list td, table.field-list th { + border: 0 !important; +} + +.field-list ul { + margin: 0; + padding-left: 1em; +} + +.field-list p { + margin: 0; +} + +.field-name { + -moz-hyphens: manual; + -ms-hyphens: manual; + -webkit-hyphens: manual; + hyphens: manual; +} + +/* -- hlist styles ---------------------------------------------------------- */ + +table.hlist { + margin: 1em 0; +} + +table.hlist td { + vertical-align: top; +} + +/* -- object description styles --------------------------------------------- */ + +.sig { + font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace; +} + +.sig-name, code.descname { + background-color: transparent; + font-weight: bold; +} + +.sig-name { + font-size: 1.1em; +} + +code.descname { + font-size: 1.2em; +} + +.sig-prename, code.descclassname { + background-color: transparent; +} + +.optional { + font-size: 1.3em; +} + +.sig-paren { + font-size: larger; +} + +.sig-param.n { + font-style: italic; +} + +/* C++ specific styling */ + +.sig-inline.c-texpr, +.sig-inline.cpp-texpr { + font-family: unset; +} + +.sig.c .k, .sig.c .kt, +.sig.cpp .k, .sig.cpp .kt { + color: #0033B3; +} + +.sig.c .m, +.sig.cpp .m { + color: #1750EB; +} + +.sig.c .s, .sig.c .sc, +.sig.cpp .s, .sig.cpp .sc { + color: #067D17; +} + + +/* -- other body styles ----------------------------------------------------- */ + +ol.arabic { + list-style: decimal; +} + +ol.loweralpha { + list-style: lower-alpha; +} + +ol.upperalpha { + list-style: upper-alpha; +} + +ol.lowerroman { + list-style: lower-roman; +} + +ol.upperroman { + list-style: upper-roman; +} + +:not(li) > ol > li:first-child > :first-child, +:not(li) > ul > li:first-child > :first-child { + margin-top: 0px; +} + +:not(li) > ol > li:last-child > :last-child, +:not(li) > ul > li:last-child > :last-child { + margin-bottom: 0px; +} + +ol.simple ol p, +ol.simple ul p, +ul.simple ol p, +ul.simple ul p { + margin-top: 0; +} + +ol.simple > li:not(:first-child) > p, +ul.simple > li:not(:first-child) > p { + margin-top: 0; +} + +ol.simple p, +ul.simple p { + margin-bottom: 0; +} + +aside.footnote > span, +div.citation > span { + float: left; +} +aside.footnote > span:last-of-type, +div.citation > span:last-of-type { + padding-right: 0.5em; +} +aside.footnote > p { + margin-left: 2em; +} +div.citation > p { + margin-left: 4em; +} +aside.footnote > p:last-of-type, +div.citation > p:last-of-type { + margin-bottom: 0em; +} +aside.footnote > p:last-of-type:after, +div.citation > p:last-of-type:after { + content: ""; + clear: both; +} + +dl.field-list { + display: grid; + grid-template-columns: fit-content(30%) auto; +} + +dl.field-list > dt { + font-weight: bold; + word-break: break-word; + padding-left: 0.5em; + padding-right: 5px; +} + +dl.field-list > dd { + padding-left: 0.5em; + margin-top: 0em; + margin-left: 0em; + margin-bottom: 0em; +} + +dl { + margin-bottom: 15px; +} + +dd > :first-child { + margin-top: 0px; +} + +dd ul, dd table { + margin-bottom: 10px; +} + +dd { + margin-top: 3px; + margin-bottom: 10px; + margin-left: 30px; +} + +dl > dd:last-child, +dl > dd:last-child > :last-child { + margin-bottom: 0; +} + +dt:target, span.highlighted { + background-color: #fbe54e; +} + +rect.highlighted { + fill: #fbe54e; +} + +dl.glossary dt { + font-weight: bold; + font-size: 1.1em; +} + +.versionmodified { + font-style: italic; +} + +.system-message { + background-color: #fda; + padding: 5px; + border: 3px solid red; +} + +.footnote:target { + background-color: #ffa; +} + +.line-block { + display: block; + margin-top: 1em; + margin-bottom: 1em; +} + +.line-block .line-block { + margin-top: 0; + margin-bottom: 0; + margin-left: 1.5em; +} + +.guilabel, .menuselection { + font-family: sans-serif; +} + +.accelerator { + text-decoration: underline; +} + +.classifier { + font-style: oblique; +} + +.classifier:before { + font-style: normal; + margin: 0 0.5em; + content: ":"; + display: inline-block; +} + +abbr, acronym { + border-bottom: dotted 1px; + cursor: help; +} + +/* -- code displays --------------------------------------------------------- */ + +pre { + overflow: auto; + overflow-y: hidden; /* fixes display issues on Chrome browsers */ +} + +pre, div[class*="highlight-"] { + clear: both; +} + +span.pre { + -moz-hyphens: none; + -ms-hyphens: none; + -webkit-hyphens: none; + hyphens: none; + white-space: nowrap; +} + +div[class*="highlight-"] { + margin: 1em 0; +} + +td.linenos pre { + border: 0; + background-color: transparent; + color: #aaa; +} + +table.highlighttable { + display: block; +} + +table.highlighttable tbody { + display: block; +} + +table.highlighttable tr { + display: flex; +} + +table.highlighttable td { + margin: 0; + padding: 0; +} + +table.highlighttable td.linenos { + padding-right: 0.5em; +} + +table.highlighttable td.code { + flex: 1; + overflow: hidden; +} + +.highlight .hll { + display: block; +} + +div.highlight pre, +table.highlighttable pre { + margin: 0; +} + +div.code-block-caption + div { + margin-top: 0; +} + +div.code-block-caption { + margin-top: 1em; + padding: 2px 5px; + font-size: small; +} + +div.code-block-caption code { + background-color: transparent; +} + +table.highlighttable td.linenos, +span.linenos, +div.highlight span.gp { /* gp: Generic.Prompt */ + user-select: none; + -webkit-user-select: text; /* Safari fallback only */ + -webkit-user-select: none; /* Chrome/Safari */ + -moz-user-select: none; /* Firefox */ + -ms-user-select: none; /* IE10+ */ +} + +div.code-block-caption span.caption-number { + padding: 0.1em 0.3em; + font-style: italic; +} + +div.code-block-caption span.caption-text { +} + +div.literal-block-wrapper { + margin: 1em 0; +} + +code.xref, a code { + background-color: transparent; + font-weight: bold; +} + +h1 code, h2 code, h3 code, h4 code, h5 code, h6 code { + background-color: transparent; +} + +.viewcode-link { + float: right; +} + +.viewcode-back { + float: right; + font-family: sans-serif; +} + +div.viewcode-block:target { + margin: -1px -10px; + padding: 0 10px; +} + +/* -- math display ---------------------------------------------------------- */ + +img.math { + vertical-align: middle; +} + +div.body div.math p { + text-align: center; +} + +span.eqno { + float: right; +} + +span.eqno a.headerlink { + position: absolute; + z-index: 1; +} + +div.math:hover a.headerlink { + visibility: visible; +} + +/* -- printout stylesheet --------------------------------------------------- */ + +@media print { + div.document, + div.documentwrapper, + div.bodywrapper { + margin: 0 !important; + width: 100%; + } + + div.sphinxsidebar, + div.related, + div.footer, + #top-link { + display: none; + } +} \ No newline at end of file diff --git a/_static/doctools.js b/_static/doctools.js new file mode 100644 index 00000000..d06a71d7 --- /dev/null +++ b/_static/doctools.js @@ -0,0 +1,156 @@ +/* + * doctools.js + * ~~~~~~~~~~~ + * + * Base JavaScript utilities for all Sphinx HTML documentation. + * + * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ +"use strict"; + +const BLACKLISTED_KEY_CONTROL_ELEMENTS = new Set([ + "TEXTAREA", + "INPUT", + "SELECT", + "BUTTON", +]); + +const _ready = (callback) => { + if (document.readyState !== "loading") { + callback(); + } else { + document.addEventListener("DOMContentLoaded", callback); + } +}; + +/** + * Small JavaScript module for the documentation. + */ +const Documentation = { + init: () => { + Documentation.initDomainIndexTable(); + Documentation.initOnKeyListeners(); + }, + + /** + * i18n support + */ + TRANSLATIONS: {}, + PLURAL_EXPR: (n) => (n === 1 ? 0 : 1), + LOCALE: "unknown", + + // gettext and ngettext don't access this so that the functions + // can safely bound to a different name (_ = Documentation.gettext) + gettext: (string) => { + const translated = Documentation.TRANSLATIONS[string]; + switch (typeof translated) { + case "undefined": + return string; // no translation + case "string": + return translated; // translation exists + default: + return translated[0]; // (singular, plural) translation tuple exists + } + }, + + ngettext: (singular, plural, n) => { + const translated = Documentation.TRANSLATIONS[singular]; + if (typeof translated !== "undefined") + return translated[Documentation.PLURAL_EXPR(n)]; + return n === 1 ? singular : plural; + }, + + addTranslations: (catalog) => { + Object.assign(Documentation.TRANSLATIONS, catalog.messages); + Documentation.PLURAL_EXPR = new Function( + "n", + `return (${catalog.plural_expr})` + ); + Documentation.LOCALE = catalog.locale; + }, + + /** + * helper function to focus on search bar + */ + focusSearchBar: () => { + document.querySelectorAll("input[name=q]")[0]?.focus(); + }, + + /** + * Initialise the domain index toggle buttons + */ + initDomainIndexTable: () => { + const toggler = (el) => { + const idNumber = el.id.substr(7); + const toggledRows = document.querySelectorAll(`tr.cg-${idNumber}`); + if (el.src.substr(-9) === "minus.png") { + el.src = `${el.src.substr(0, el.src.length - 9)}plus.png`; + toggledRows.forEach((el) => (el.style.display = "none")); + } else { + el.src = `${el.src.substr(0, el.src.length - 8)}minus.png`; + toggledRows.forEach((el) => (el.style.display = "")); + } + }; + + const togglerElements = document.querySelectorAll("img.toggler"); + togglerElements.forEach((el) => + el.addEventListener("click", (event) => toggler(event.currentTarget)) + ); + togglerElements.forEach((el) => (el.style.display = "")); + if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) togglerElements.forEach(toggler); + }, + + initOnKeyListeners: () => { + // only install a listener if it is really needed + if ( + !DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS && + !DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS + ) + return; + + document.addEventListener("keydown", (event) => { + // bail for input elements + if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; + // bail with special keys + if (event.altKey || event.ctrlKey || event.metaKey) return; + + if (!event.shiftKey) { + switch (event.key) { + case "ArrowLeft": + if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; + + const prevLink = document.querySelector('link[rel="prev"]'); + if (prevLink && prevLink.href) { + window.location.href = prevLink.href; + event.preventDefault(); + } + break; + case "ArrowRight": + if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; + + const nextLink = document.querySelector('link[rel="next"]'); + if (nextLink && nextLink.href) { + window.location.href = nextLink.href; + event.preventDefault(); + } + break; + } + } + + // some keyboard layouts may need Shift to get / + switch (event.key) { + case "/": + if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break; + Documentation.focusSearchBar(); + event.preventDefault(); + } + }); + }, +}; + +// quick alias for translations +const _ = Documentation.gettext; + +_ready(Documentation.init); diff --git a/_static/documentation_options.js b/_static/documentation_options.js new file mode 100644 index 00000000..b57ae3b8 --- /dev/null +++ b/_static/documentation_options.js @@ -0,0 +1,14 @@ +var DOCUMENTATION_OPTIONS = { + URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), + VERSION: '', + LANGUAGE: 'en', + COLLAPSE_INDEX: false, + BUILDER: 'html', + FILE_SUFFIX: '.html', + LINK_SUFFIX: '.html', + HAS_SOURCE: true, + SOURCELINK_SUFFIX: '.txt', + NAVIGATION_WITH_KEYS: false, + SHOW_SEARCH_SUMMARY: true, + ENABLE_SEARCH_SHORTCUTS: true, +}; \ No newline at end of file diff --git a/_static/favicon.svg b/_static/favicon.svg new file mode 100644 index 00000000..50b673c8 --- /dev/null +++ b/_static/favicon.svg @@ -0,0 +1,12 @@ + + + + + + + + + diff --git a/_static/ferrocene.css b/_static/ferrocene.css new file mode 100644 index 00000000..99fcde62 --- /dev/null +++ b/_static/ferrocene.css @@ -0,0 +1,693 @@ +/* SPDX-License-Identifier: MIT OR Apache-2.0 */ +/* SPDX-FileCopyrightText: Ferrous Systems and AdaCore */ + +/************* + * Fonts * + *************/ + +@font-face { + font-family: 'Raleway'; + font-weight: 400; + font-style: normal; + src: url('fonts/raleway-400.ttf') format('truetype'), url('fonts/raleway-400.woff2') format('woff2'); +} + +@font-face { + font-family: 'Raleway'; + font-weight: 400; + font-style: italic; + src: url('fonts/raleway-400-italic.ttf') format('truetype'), url('fonts/raleway-400-italic.woff2') format('woff2'); +} + +@font-face { + font-family: 'Raleway'; + font-weight: 700; + font-style: normal; + src: url('fonts/raleway-700.ttf') format('truetype'), url('fonts/raleway-700.woff2') format('woff2'); +} + +@font-face { + font-family: 'Raleway'; + font-weight: 700; + font-style: italic; + src: url('fonts/raleway-700-italic.ttf') format('truetype'), url('fonts/raleway-700-italic.woff2') format('woff2'); +} + +@font-face { + font-family: 'Roboto Mono'; + font-weight: 400; + font-style: normal; + src: url('fonts/roboto-mono-400.ttf') format('truetype'), url('fonts/roboto-mono-400.woff2') format('woff2'); +} + +@font-face { + font-family: 'Roboto Mono'; + font-weight: 400; + font-style: italic; + src: url('fonts/roboto-mono-400-italic.ttf') format('truetype'), url('fonts/roboto-mono-400-italic.woff2') format('woff2'); +} + +@font-face { + font-family: 'Roboto Mono'; + font-weight: 700; + font-style: normal; + src: url('fonts/roboto-mono-700.ttf') format('truetype'), url('fonts/roboto-mono-700.woff2') format('woff2'); +} + +@font-face { + font-family: 'Roboto Mono'; + font-weight: 700; + font-style: italic; + src: url('fonts/roboto-mono-700-italic.ttf') format('truetype'), url('fonts/roboto-mono-700-italic.woff2') format('woff2'); +} + +/********************* + * Basic styling * + *********************/ + +:root { + --text-fg: #1b1b1b; + --link-fg: #3168b0; + --inline-code-bg: #fafafa; + --inline-code-border: #ebebeb; + --code-block-bg: #f7f7f7; + --focus-border: #68a4e8; + --table-border: #dbdbdb; + + --body-bg: #fff; + --header-fg: #194e80; + + --sidebar-width: 21rem; + --sidebar-bg: #f7f7f7; + --sidebar-inactive-fg: var(--text-fg); + --sidebar-active-fg: var(--link-fg); + + --sidebar-search-border: #dbdbdb; + --sidebar-search-bg: #fff; + --sidebar-search-placeholder-fg: #5f5f5f; + --sidebar-search-button-fg: var(--text-fg); + --sidebar-search-button-hover-fg: #194e80; + + --footer-fg: #747474; + + --admonition-green-border: #7ddd83; + --admonition-blue-border: #88cff0; + --admonition-yellow-border: #ffe033; + --admonition-red-border: #ee7f68; + + --numbers-width: 5.5rem; + --numbers-fg: #747474; + + --blockquote-border: #dbdbdb; + + --content-width: 50rem; + + --spec-error-fg: #f00; + --spec-syntax-literal-bg: #dbdbdb; + + /* Vertical offset for the page. Defaults to 0, but can be set to an higher + * value by additional CSS files. */ + --header-offset: 0rem; +} + +* { + box-sizing: border-box; +} + +html { + /* Ensure we always scroll to the right position, even when there is a + * fixed header at the top of the page */ + scroll-padding-top: var(--header-offset); +} + +body { + font-family: 'Raleway', sans-serif; + color: var(--text-fg); + background: var(--body-bg); + margin: 0; +} + +:focus { + outline: 2px solid var(--focus-border); +} + +/************ + * Text * + ************/ + +a { + color: var(--link-fg); + text-decoration: none; +} + +a:hover { + text-decoration: underline; +} + +p { + margin: 1em 0; + line-height: 1.5em; +} + +a { + color: var(--link-fg); + text-decoration: none; +} + +a:hover { + text-decoration: underline; +} + +/**************** + * Headings * + ****************/ + +h1, h2, h3, h4, h5, h6 { + margin: 2.5em 0 1em 0; +} + +h1 span.section-number, h2 span.section-number, h3 span.section-number, h4 span.section-number, h5 span.section-number, h6 span.section-number { + display: block; + position: absolute; + left: 0; + + color: var(--numbers-fg); + width: var(--numbers-width); + padding-right: 1rem; + text-align: right; +} + +a.headerlink { + display: none; +} + +a.headerlink:hover { + text-decoration: none; +} + +h1:hover a.headerlink, h2:hover a.headerlink, h3:hover a.headerlink, h4:hover a.headerlink, h5:hover a.headerlink, h6:hover a.headerlink { + display: inline-block; + margin-left: 1rem; + color: var(--link-fg); +} + +p.rubric { + margin: 2em 0 1em 0; + font-weight: 700; +} + +h1 + p.rubric, h2 + p.rubric, h3 + p.rubric, h4 + p.rubric, h5 + p.rubric, h6 + p.rubric { + margin-top: 1rem; +} + +/* Prevent too much margin with one header after the other */ +/* I am sorry, browser's CSS engine */ +section > h1:first-child + section > h2:first-child, +section > h2:first-child + section > h3:first-child, +section > h3:first-child + section > h4:first-child, +section > h4:first-child + section > h5:first-child, +section > h5:first-child + section > h6:first-child, +section > h1:first-child + section > span[id]:first-child + h2, +section > h2:first-child + section > span[id]:first-child + h3, +section > h3:first-child + section > span[id]:first-child + h4, +section > h4:first-child + section > span[id]:first-child + h5, +section > h5:first-child + section > span[id]:first-child + h6, +section > span[id]:first-child + h1 + section > h2:first-child, +section > span[id]:first-child + h2 + section > h3:first-child, +section > span[id]:first-child + h3 + section > h4:first-child, +section > span[id]:first-child + h4 + section > h5:first-child, +section > span[id]:first-child + h5 + section > h6:first-child, +section > span[id]:first-child + h1 + section > span[id]:first-child + h2, +section > span[id]:first-child + h2 + section > span[id]:first-child + h3, +section > span[id]:first-child + h3 + section > span[id]:first-child + h4, +section > span[id]:first-child + h4 + section > span[id]:first-child + h5, +section > span[id]:first-child + h5 + section > span[id]:first-child + h6 { + margin-top: 0; +} + +/******************************** + * Code snippets and blocks * + ********************************/ + +pre, code { + font-family: 'Roboto Mono', monospace; +} + +pre { + background: var(--code-block-bg); + padding: 1rem; + border-radius: 0.3rem; + line-height: 1.5em; + font-size: 0.9rem; + overflow-y: scroll; +} + +code { + display: inline-block; + background: var(--inline-code-bg); + padding: 0 0.2em; + border-radius: 0.2em; + outline: 0.1em solid var(--inline-code-border); +} + +pre code { + background: transparent; + padding: 0; + border-radius: 0; + outline: none; +} + +a:hover code { + text-decoration: underline; +} + +/************* + * Lists * + *************/ + +li { + margin: 0.5em 0; +} + +/* Sphinx generates a

inside each

  • . */ +li > p:first-child { + margin-top: 0; +} + +li > p:last-child { + margin-bottom: 0; +} + +/************** + * Layout * + **************/ + +div.wrapper { + margin-top: var(--header-offset); +} + +@media (max-width: 55rem) { + + div.wrapper div.sidebar div.toctree { + display: none; + } + + div.wrapper div.sidebar input#toggle-toctree:checked + div.toctree { + display: block; + } +} + +@media (min-width: 55rem) { + div.wrapper { + display: flex; + min-height: calc(100vh - var(--header-offset)); + } + + div.wrapper div.sidebar { + position: sticky; + top: var(--header-offset); + width: var(--sidebar-width); + max-height: calc(100vh - var(--header-offset)); + overflow-y: scroll; + flex-shrink: 0; + } + + div.wrapper div.sidebar label.toggle { + display: none; + } + + div.wrapper div.content { + flex: 1; + min-width: 0; + } + + div.wrapper div.content div.page { + max-width: calc(var(--numbers-width) + var(--content-width)); + } +} + +div.wrapper div.content { + display: flex; + flex-direction: column; +} + +div.wrapper div.content div.page { + width: 100%; + flex: 1; +} + +input#toggle-toctree { + display: none; +} + +/********************** + * Header styling * + **********************/ + +header a { + display: block; + padding: 1.25rem; +} + +header a:hover { + text-decoration: none; +} + +header img { + display: block; + height: 2.25em; + margin: auto; +} + +header h1 { + color: var(--header-fg); + font-size: 1.25rem; + font-weight: 400; + text-align: center; + margin: 0.4rem 0 0 0; +} + +/************************** + * Search box styling * + **************************/ + +form.side-search { + display: flex; + margin: 0 1rem; +} + +form.side-search input { + flex: 1; + padding: 0.5rem 1rem; + + border: 1px solid var(--sidebar-search-border); + border-right: 0; + border-top-left-radius: 1rem; + border-bottom-left-radius: 1rem; + background: var(--sidebar-search-bg); +} + +form.side-search input::placeholder { + color: var(--sidebar-search-placeholder-fg); + opacity: 1; +} + +form.side-search button { + padding: 0.5rem 1rem 0.5rem 0.75rem; + + background: var(--sidebar-search-bg); + border: 1px solid var(--sidebar-search-border); + border-left: 0; + border-top-right-radius: 1rem; + border-bottom-right-radius: 1rem; +} + +form.side-search button svg { + height: 1rem; + fill: var(--sidebar-search-button-fg); +} + +form.side-search button:hover { + cursor: pointer; +} + +form.side-search button:hover svg { + fill: var(--sidebar-search-button-hover-fg); +} + +/*********************** + * Sidebar styling * + ***********************/ + +div.sidebar { + background: var(--sidebar-bg); +} + +/************************** + * Navigation styling * + **************************/ + +nav label.toggle { + display: block; + cursor: pointer; + text-align: center; + padding: 1rem; +} + +nav label.toggle:hover { + color: var(--sidebar-active-fg); +} + +nav div.toctree { + padding: 1.25rem 0 1rem 0; +} + +nav p.caption { + font-weight: 700; + margin: 1.25rem 1rem 0.5rem 1rem; +} + +nav p.caption:first-child { + margin-top: 0; +} + +nav ul { + margin: 0; + padding: 0; +} + +nav li { + margin: 0; + list-style: none; +} + +nav a { + color: var(--sidebar-inactive-fg); + text-decoration: none; + padding: 0.35rem 1rem; + display: block; +} + +nav a:hover, +nav a.current { + color: var(--sidebar-active-fg); + text-decoration: none; +} + +/******************** + * Page styling * + ********************/ + +div.page { + padding: 2rem 1rem 1rem var(--numbers-width); + position: relative; +} + +div.page > :first-child, div.page > section:first-child > :first-child { + margin-top: 0; +} + +div.page > :last-child, div.page > section:last-child > :last-child { + margin-bottom: 0; +} + +/************** + * Footer * + **************/ + +footer { + color: var(--footer-fg); + padding: 1rem; + text-align: center; +} + +footer p { + margin: 0.3em 0; +} + +footer :first-child { + margin-top: 0; +} + +footer :last-child { + margin-bottom: 0; +} + +/**************** + * TocTrees * + ****************/ + +div.toctree-wrapper p.caption { + font-weight: 700; +} + +/************** + * Tables * + **************/ + +table { + border-collapse: collapse; + + /* Let the table overflow on the right */ + white-space: nowrap; + overflow-x: visible; +} + +table .hide-inside-tables { + display: none; +} + +table caption { + text-align: left; + font-weight: bold; + padding-left: 0.4em; +} + +table td, table th { + padding: 0.4em; + border-bottom: 1px solid var(--table-border); + text-align: left; +} + +table tr:last-child td { + border: 0; +} + +td > :first-child, th > :first-child { + margin-top: 0; +} + +td > :last-child, th > :last-child { + margin-bottom: 0; +} + +td span.spec-paragraph-id, th span.spec-paragraph-id { + margin-top: -0.8em; +} + +/******************* + * Admonitions * + *******************/ + +div.admonition { + margin: 1em 0; + padding-left: 1em; + border-left: 0.2rem solid transparent; +} + +div.admonition.tip, div.admonition.hint { + border-color: var(--admonition-green-border); +} + +div.admonition.note { + border-color: var(--admonition-blue-border); +} + +div.admonition.warning, div.admonition.caution, div.admonition.important { + border-color: var(--admonition-yellow-border); +} + +div.admonition.danger, div.admonition.error { + border-color: var(--admonition-red-border); +} + +div.admonition p { + margin: 0.5em 0 0 0; +} + +div.admonition p.admonition-title { + font-size: 0.8em; + font-weight: 700; + text-transform: uppercase; + margin: 0 0 -0.25em 0; +} + +/* Fix margin when admonitions are added at the top of the page */ +div.page > div.admonition:first-child + section h1 { + margin-top: 1.5em; +} + +/******************* + * Definitions * + *******************/ + +dl dt { + margin-top: 1.5em; + font-weight: 700; +} + +dl dt:first-child { + margin-top: 0; +} + +dl dd { + margin-left: 0; +} + +dl dd > p:first-child { + margin-top: 0.25em; +} + +dl dd > p:last-child { + margin-bottom: 0; +} + +/*************** + * Figures * + ***************/ + +figure { + margin: 1.5em 0; +} + +figure img { + max-width: 100%; +} + +figure figcaption { + font-style: italic; +} + +/******************* + * Blockquotes * + *******************/ + +blockquote { + margin: 1em 0; + padding-left: 1.5em; + border-left: 0.3rem solid var(--blockquote-border); + font-style: italic; +} + +blockquote code { + font-style: normal; +} + +/************************************************** + * Ferrocene Language Specification extension * + **************************************************/ + +span.spec-paragraph-id { + display: block; + position: absolute; + left: 0; + + color: var(--numbers-fg); + width: var(--numbers-width); + padding-right: 1rem; + text-align: right; +} + +span.spec-paragraph-id { + font-size: 0.8em; +} + +.spec-missing-ref { + color: var(--spec-error-fg); +} + +pre.spec-syntax .spec-syntax-literal { + font-weight: 700; + background: var(--spec-syntax-literal-bg); + border-radius: 0.2em; +} diff --git a/_static/ferrocene.svg b/_static/ferrocene.svg new file mode 100644 index 00000000..f4f992ab --- /dev/null +++ b/_static/ferrocene.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/_static/file.png b/_static/file.png new file mode 100644 index 0000000000000000000000000000000000000000..a858a410e4faa62ce324d814e4b816fff83a6fb3 GIT binary patch literal 286 zcmV+(0pb3MP)s`hMrGg#P~ix$^RISR_I47Y|r1 z_CyJOe}D1){SET-^Amu_i71Lt6eYfZjRyw@I6OQAIXXHDfiX^GbOlHe=Ae4>0m)d(f|Me07*qoM6N<$f}vM^LjV8( literal 0 HcmV?d00001 diff --git a/_static/fonts/raleway-400-italic.ttf b/_static/fonts/raleway-400-italic.ttf new file mode 100644 index 0000000000000000000000000000000000000000..ba0598a9ebfbb4723c66fab53896991932fa0da1 GIT binary patch literal 161432 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

    &Gtj8o_N-qSE`2KBm&{xp@g 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 literal 0 HcmV?d00001 diff --git a/_static/fonts/raleway-400-italic.woff2.license b/_static/fonts/raleway-400-italic.woff2.license new file mode 100644 index 00000000..fe7b9195 --- /dev/null +++ b/_static/fonts/raleway-400-italic.woff2.license @@ -0,0 +1,2 @@ +SPDX-License-Identifier: OFL-1.1 +SPDX-FileCopyrightText: The Raleway Project Authors (impallari@gmail.com) diff --git a/_static/fonts/raleway-400.ttf b/_static/fonts/raleway-400.ttf new file mode 100644 index 0000000000000000000000000000000000000000..5428c9c6dd788af7e626be91d6986d07cf6ae1b6 GIT binary patch literal 163392 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 literal 0 HcmV?d00001 diff --git a/_static/fonts/raleway-400.ttf.license b/_static/fonts/raleway-400.ttf.license new file mode 100644 index 00000000..fe7b9195 --- /dev/null +++ b/_static/fonts/raleway-400.ttf.license @@ -0,0 +1,2 @@ +SPDX-License-Identifier: OFL-1.1 +SPDX-FileCopyrightText: The Raleway Project Authors (impallari@gmail.com) diff --git a/_static/fonts/raleway-400.woff2 b/_static/fonts/raleway-400.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..5a8a2617cf7d586eb10cf4f989c699df220a6be1 GIT binary patch literal 60524 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

    f^DRtTWCn>rD|WcG1zFpe~qX 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�!ST!WD2;qp* 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 ZY3`JnVzn`Gw6e?Z#v3QQ3l95{@V|o*x|jd} literal 0 HcmV?d00001 diff --git a/_static/fonts/raleway-700-italic.ttf.license b/_static/fonts/raleway-700-italic.ttf.license new file mode 100644 index 00000000..fe7b9195 --- /dev/null +++ b/_static/fonts/raleway-700-italic.ttf.license @@ -0,0 +1,2 @@ +SPDX-License-Identifier: OFL-1.1 +SPDX-FileCopyrightText: The Raleway Project Authors (impallari@gmail.com) diff --git a/_static/fonts/raleway-700-italic.woff2 b/_static/fonts/raleway-700-italic.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..4c9eb87309be7500ab5de1758151370434823499 GIT binary patch literal 63996 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 literal 0 HcmV?d00001 diff --git a/_static/fonts/raleway-700.ttf.license b/_static/fonts/raleway-700.ttf.license new file mode 100644 index 00000000..fe7b9195 --- /dev/null +++ b/_static/fonts/raleway-700.ttf.license @@ -0,0 +1,2 @@ +SPDX-License-Identifier: OFL-1.1 +SPDX-FileCopyrightText: The Raleway Project Authors (impallari@gmail.com) diff --git a/_static/fonts/raleway-700.woff2 b/_static/fonts/raleway-700.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..c9a77e65ce22911b3b50133392fcbef9e63c875f GIT binary patch literal 63196 zcmZ^~19WB07BzZe8y(xWI<{@wwmY_M+qUg=Y}-zE)OqRe-tYeZdt0(`~uCII>C2eAL@*R{ic?)|<0{|>AmY3#r?OPowkaD6@{WdUVj zK$0q?KQvS>DiS1gP(NbeISx#mIsk|bm;@xB29y9S0Rv(b9ySn1YeBj}P-SGj=AiQr zG6NEePPnP(B2+_gM|q2e)V*s_2lDiU z#72Skcv7><`&jc8&ZjSoEd*d2%pMCy4XPwO>2yx|DTcG~~#x>~c=MNUT)UqZbCJ$7p4>h?-jLRmz$tD!-B6DN7c99Z@L$fql=Q zzs8AR$(EcaS~NYqDXOt!LT3qO>3k34y#MFkot?f#&7-Csk}4Ztd98A&T`tJqQj_#9 zzm8&(3Rh6M6e@Mr7jd-meV|JP0^P>lkbAAQ>#*U^0SD?F>ULN#8~0&KU8mYTm-5aW zB10;1$!_w&^tq~W&@C}FsP_cAP5O`Voqf$ct4BkQ@dKPfAytW|g6&7J8PBfE%4cAF zhY`t^^9ax7@@8?Y6|3gXh-S&EUPNvQ3HR05Fi4W}@|d@H+7OjF&X zqTWhphF`~dtZW<22-0B=VW-|vrWv1daPX+rO^pM*D|<(b0Ww-P=~}`rBFV}U$uvaN z?1>>Z@yEQU$~JD6Sclk#9-&TeO6g(OKb%wQw=3;vo}YIAsL3aw3d946~fxD$AZL4?OV`8SP)}1eO^>(Rp5Z@99L% zOLCXtC=*A1M-^MbQBP>~qX=c>`W>1fC7gtA^L^rJogn4}`wB>z_dbxmya8sBopapJmN&pA+5Et}^ z{G8aZfCJ)*{Wmk9;DO=l%cgnL<^^e(h9>suvrF2m%ck_%@{dm+lZTAw+&^lcD$@w{ z5qBkZgkD!Jnm3k56dL^mQkbB~AVh~iWQ-tT73zQZerxcYZ2mIlc3tH(juJy|Kt}{B zLQDXtK_UW?n9`u4r}pH(70&c*qiCcUr&Gin#4$UVLq530hNYgL!Piy9ZJeKfyk)7* zeqxKd?yD}+#$>|+=>c8!Z%tb;*7c3<8T;{Lae zBw~P&3HV1Sh?}=+n$6_2d#-N2#zT$$;S(1db&_ysBEhw~&a`kpuEK^393&qH1*ax| zR{2QXt3vgbbRau#?DVoQC zrTL7tjb3bUIs=L+vIYmbtKFv!WT6gMGZVe)n zBdo3oisBhlePgcG8cK-YCvVtWzsPO6#_OR5`at4D))s&o>f8=~=$85->qjtv3O7^G zv5v%8Q%3LneCqgU-N|_QHo^+;x^3e!*<)3xCL?Jo)7J>YrFL-?ay{0 ze*avov48N-G+_|I>uT~VVEty|ViX7gHWl5*Su$#5sKG=jPnGXNF$AYXrw21J>)!3c zC@hZT?)x@wReK4KX2_afnSGBcDAj zE?En>bnp4Ar6v$;5=5BZGxZYto?dQ=WQc0>m7l2(*?XXWewEe_ka_(VoL%DQt4GvD zJfTn<6%{BSMUfIYVc+Xov{*noUdYw6#<$-CZqpw=z_UMoMMLzuXw{mYIpJj1v%sA~ z_)SJQ@!DsGnTET6_U2YJf9@S90KmixNIb`9m=#h~GK$GbhZUBaGkr!oZ*;i3KL3F9 zeL@8TAmf24LkSAgK#PTosu*v9#sMVMP1a@IQr0=8Cl)--22gV;CQpwup|3vFyU}ydzj15Z z5aa>Y?uLU{cS9Q34Rppp_kF$P$E{9av8?tX+27?_ud50UO61X*5&ZH-=fa-np)!Jn za*oI%WbKO}!|oNG$0XqiU7=yoQ?ok8)E>`uR_R)IBdiMceikd;!|*6;Hg-#eGXy?NQ{qL`4tBEco}fdv3@n&ycu zU^R7;b5D>q@4C%RN4r+2V=9MR3OD5i0c%a2Go+W=o#n1TQv+O}(g9}WhgENKntix-a0{$JH97<;9zZSmDR}`RaX_G|c@%!Vl_XS#HkO~L_sfX2p z96#qq1hi6mKj(sW$|!=?OEY3HV;CuxaKAE}iC&LwTx17O^dqc<=|?dV!3jX_@$7Ve z9N&C?FemOmy3A;8A`ICEG!qdK5mtpD&NKLU7k7V~NHsmY*6x;C6?9a2Lvdh2`9Gq zA_%abfm@EmM_T3d3Bb(Oa6JNnZKwJy@YEPOKPbbtRfbmlk&ALh4Cn&_*v85OGL1nQ z133h=3Bn1=3DOC&1v&zpAt-^)5EP*sP>pHF=;8tiR0y63TKVw;-Y?}}*kPIM$M#U- z^Q0jsD@cfyt@0IvCy=P*%47wj(JU+EVS+U&7X|WTU|b~2urY0)vb?&FEGoM$nQvYt zjrd;HP2cDA%rnCDp(2y)DM|t?&reGgq9AS1)+wFyei90bL1vRU*Zk}brbF{o4ry3o z^2H&mi7!WCFp`@_12`9OYO~7w@@A#Ng6k~_&w=}j(ewUoNHMy-!fj{F?(Zc%_?6-uTwP(f*&|R z;&0!?o#R$JncG4x@DaY5_dEaI6@5r9!r$aT(SWniAMF#LGCK6&z##tJ54}JzFjx$& zM^S7U`B$lQ8*OPTiErH&t+M$T6aGoTzRyq4pId0=Ra82|C*S?N#izO}pQ|; zi)jqO`M1g-7tfPen^FDeS7&AT==YD6@hgJC-=*B8sdLk!cE5${x-C5%2Qo4N^AZHpp_sdc|_;*tSj~H zxS?fB)^aGf7tsmDz2U=9ATeU{nBw^40_H7=eRb`f`_XhV7&89o>01Rp@(TFbji7s{ zYHxlUzDtS4qdiv{k^{*eK~5~kz<;-0i;!&$nT9t9#VAov>@fA)8eMvWB?wt2fe`(& zbwnDW*tt}*DNB4OdoDpE6*t~$4wu%CmQ&unTzn*dLWFVnkQ#VpkI>38l09_{R-0-o zPBwky=No=ry`$9&q|gyxY?=bL4pJG(H!E3JUlfai-NT}yT~vGy&F@-j>g3SI1vRzT zIVSd4zJ8TZ)8%3-Vuph|#w(iF>VBSRi78-}p2N>9#uYkF@S4L3zK=yLoSGkPgAfu}0gPHk&tD+qG}s z*Q<0VZ&6w6?0DusNnW@p^vSg!TxtS37VJ+15ngy%uJ+#vP zs(0&l5}9Vvg@|ef?Znsjs<1kz?>g24z`7XzorF+&I<)(Tv8jBC{st7RPrCwFH zVMK*CSAGLEzYAJ@q3fjc=LSWYCK|2_vum~@3>S)E^DcILNToZeIdVRXH%xFlfo>%8ANiciu_HLY3(a%R)*LVuws%n;X!#0%5w4R%6Y2kHU zudNM?!MIFA3HknFP_*z%l=Gr%j?VJ7(kho@P9|37KA{~e{p8?=VJFpCU!Z{^nAKmw z!YPiRB^1_3EW=_wQP%U>G%kKH-S}Mnc#SLG=lM@$QetBKgDaQhA38MUx(-2TxArk2 z9qJ186{BIt(x&+>+FtKp)KxzNC8;0kD%x@uMJLsw+=g*%eNjko6L>N*FTqX`-uff z67Y_3$MBwY$8rZOnj9xiws-F{wZ(;c?vvjD$#(Jr;J71K6du7tmRNb&! zgspf{^|SWRm$GDw^OhV|uJGwz`Bt=Pvdcj_U{t(rrCFcPr98r{rq zlL4v!7d0QsHn)FXdt{vR$a&VOuN`^u8o@sY1DDQqIXh;I`33| z+eknT6s-A0DLp7JXg3HEico+85i1DDK!5`gPa9gUE}U(AT-KptA?q48R(dSJddy#Y z>|tgFtV90WnW0XB7Bm4Y0W<-;A8^{kz5nkByY{tl5_U&&gnJ6Pd!n1iY(N20HU=m- zsy#tJw5xpp_B&z-#SkId8j&7qq@x1ud7x-h0ZMmTSn_I+4o8quoA6H{v^2h~IEtVF zihu$N(ft&`xZB8>(}*1YUr>2*lIo-d$SUFGLzu|0ta+O9lBWgpq{UW}2a+g~iIU81 zYFJKK4_MS#l~`6-7a4$pN8zgPztJUS)f`hJ@JJo|oN&1Pl$qi@^`tCKVhrQ%GK$^b z;@XMok?WaSBDmxcD`AM&(u?b3U@D$J7)a$McasPd14sno^CTEZ)RA$Za)NfPg!PpC z%LknMod>f(otUO%7}y6lp`Ea&t{7PLlzy>xGx#ukFn}=hhQ6RoDKUmJuutGjY+_IO_;=D*xDv~uoSW(~mlm0_WoX%Dn{5T;ZwsPQbqt`^ zh>L`Wn-3A7(-aZnzEB8Lu2Kl0Rj729W1mCJ^x$4PM z5Av_Vyy^4d1o>k49oQqw4q|e^43eOTdviw z;)L4nPwdP#>2#mQ`c?e7<5K$9T9|PlSs+|Ud&E3Q5=-&fdU$v_3aB{BxfKkCH5@!X z|KNflpW&E<#EJ64xpUZ(9GA&8%f`+&Pxs?O-UP-Q#m(%zyne`Qh*cd!rTudnrx^Jq zm%R{{h4cl|ZdrVg!Khz30Ne`y8_-)9!($0B1w}HDB~iSwBG-2=usQU2I?T)p zI9cX_q%#+Z*EmkB5+l+kMybp)t%&2vt5v(q;^Dg+Cnp$vT<|8L5yrNn-5#8!OYh+P zNDBIG-i9ty5$|H{q5{d_+ldMMx|p>Db=)IAavx2QmO+021mTR6;>0k~kbIYimek%TX8Pvk z*bre>`SQ8+(HKW(N#>V|UhVhhsZmS<=RU8EsVGcDRuR@3dsN z+LtUiZg3&&N$b%rmw){2o6-+}AA(`$`4#CQE>%F?%1^O{&w`e&4RBlpVQv+7FJ zWZ6g>mD(EKt*+=6`m0OE35G}*#DoEji~NG}CukY+<~S+!h@rETbWTt5^^2fOAc$zoT~WEMqFc%s5t}0CK{@#*EKR zO}`Xmzm5uM0D$3-fZhDNrV^c0s~+_#HgTvJy40cLCA^{w*O4-4@>JH$oK+b zHEHqs{UND18k@AjO{fkfGxi6ANLtUj#-8Fe!YB9X|uYu6x7xatfDVE2SHrZ|l&%fN#u z23&}|W=CA>x<(x<_Oh4N+3E9kVH2Y<-IY>bkxLNNw4d+St763h$uqty^2P0KW~m{1GR zBh$qn$c7C`1gP8x0MVc*l_nOKnjo6NF4$|Yk!&iDaV~arg_|6k@Ff$6`Rr4@1#i@X zG4EC}KtcZ7@%*+9bW7QrPC?J6=G&&$b@$r`6k@F&YzG-cyp&=_g+yU5e*mtx$B_{a zy<#jg%5oQxYn5ltost1J!<`VrjiqW5qxECuGjBavh&kGea&TPDx$+Kn8Hynf7G|tb zc-uMjAI@)-u7pf9Vu{el%jP*-K@z!McfQ#1v>9VJ9+K^w&Ul(gTH&>7WUBsZFa_Xl z0oz-WR!T;Y0R-s(3Ee2=;yz%AT`1u=;r#iDgECLgY5fu4uezu1oYD{3MU&U5X|3Zg zw@C(3gC&&Ak}qei{6In!3bF{Xfp7;^kQG=8vrS9MyrLQ0*cBtggkfXHdl&mNwF)y< z3EZODxB^9Pp<3TIP9FwOwj?U1Cb#pmjcf=2`L$C0%{?ex;c)8kA|{cgppxSh)#aAA zUyI17eg23P`jF^s@N~R{NDfkH#t}Hsk`?(GQpBajg=U7d*nKno1|z35lY z$VU6G^mhZthW3*x@)lroA0rFJllO4s{cnX3W8fsC-UJ#HbOv)vP}-(^DnLDp&vSJqS@(U?s-IDRcvG72gVw-+ zs7qxaVzRiLt_MtXUXs<(*x>t6!U)0zi<3t!o*rFc(`XyKvxDs@QsPkacrnMQSEI7L~ z_p+9C8}}db?Qo?Adx_?O^01(D3RMQDE9aj}3+ya4P_%#`eb8b1fTB~->#&x#gfb;m zOvn6-%>=aNmO-AJAdgV*fA%VKC}5$wItTkZsPM2*#V}an(!3(93InX5l$f0G zW@{Q(c-fl#4W8JRjccEMA4E$`XGB`O*wKSC_fhu4hnEoV9wpu{`f-STU%KLfK>Au2 zeocAV*zg4|Xna&YvPGfoq09LF0s$ff3PP`V-$(bLNSl?*q^Ge!$T9~H$Qk@89NbXi zDLF0NEG?S20?SWgjxO{5O`Vc#qoA*?k7yQ|w2L|>EpBQ!33alm1#`;!DY=;QP$@%+ zELj$f^{H!B>t}=i@#l>vAHwd+&?dP^Z88Ie2*(Jf|am(I~?E*}D?n;HrrZDZ@pkf6Z+eKFIfjibWMA~3i-C>LzAa>a_p0ZI_Q zn#d{Q;c-DC!g5AIRbuj%7S}hn;m8wKJh*G98;$6tCm8d}y;PrHC_^3;nU!Z}hi2HH zJgJF9si2lozk&1Lg4`NU%2Jl4jaD^dc%q^CUqRNSV6fp53m<9}1j!9wN&i!iCK;9? zHZ8A``tUDF$4L^!N+L2ozVWn;O;yD!UY=?RNi^wk0VgpR1@*kKE;C%6Db`UVQMW0& zG_35_<5VyD#u~>MnsY`70>cYeyX{@9+jZPz!EzDrZxMZ(pIBBV*!Q$Lu>d{wY&sqN=!}B3k<(#%rd_g}q93COe*njt$3G;LcF)ATo6C1xsC z_wRqlzGLo!ovScv6<;lR(2lwnbvXBIc_8Z1mIXT)xY*Fxtb^R@Hp*&kj#>CtI zP8Pyw)G!<=q6BsMKRBH8g|1COS(2huuq@HivP`cE$b9eB5~Wdz#LTFk&o?8U{@f0h z(hr0RahHG}NqjLbM;{I+M?OKiL|E@@5S-lKLD3_S-5iUFSh1>S^v^x4IkjwDzo{Y2 zddvFcY5x$1awEE@Q5g9CjYOn4dTJSMG|O93X`*OfSwU$QM$BDGDC0-&MK@C4+mLj^ z{tC1#csU&EScmHr7nct21)1nBFJ5LHtSRR77wG1*NaJLWVxcylnisu5U;R%pByqrZ zUO@wJsXS?J!heBL|HL&YJY97!U_ytEg=Lc&4$(_M%?*g*3?f zTFDS2h7vRdHChap)@ON>(cqZ|{?L!IcG?THLu>JYuofbZI^g7b_!A<9x)~;OAWJau z(F=_0BCwKE-fRp6B4RC2DHjC*Q*UY#WjHluDZCee{K>)@ML{J=CkF#SBXrC9YZp_Q zi)&!Au6LSb4=r(EoL*#0>YrX-_;?TQ<8(RWR3Fc(gf868chb@zEQX_Gf+S|(ZU5oB z@gz9v!J}{4wo^kJCr&Ec>XY}@5G{V6>cSlTa#Qoyus{cQChSkZ87fQ`VG8~#4xey)LE^m4c`(@50}z!oeSNVA~< z#&E^707IRQrT!=op@5TF*i~sZ&7temS)^gUa}!f?W%)3u4 z_uiz}9p#DQ=h48suXHuN>=@~(N4Pf4bloJweS@-Y`XV*^A(f7%9Rb{K< zi%&{~a^7xWh{Ay*V2qSNU9iYro#y;;)W#jNPJ|8!@QnH$=5(G|+84!Clq(fFc@%z3 z8eg+`>}%h%z<3?2@FowFMK7CUftB6!k%)Q7cqPw?ijaES0YmwQG$nYFY?&!e=kZRN-~MK4PzD4*=vnbYBWy z-ZBgs(vVuYpEvKjd@g)y_Qj1L6fTY1a~a@~N8@{5C?s$WjGy_C0|_kw=9R#d%2mSU zOh;786{@AWiN{9o)D;9^3ClUP_MKEH)z_RJ5J8Xk&R=H<{M9 zg`ys)qKY{>kjD(odKy299OAg)8mq;lOejH@N@S8*;+6(b>3 zyn79%-$Zp7{&;wD1>uiP4+^4mLZ{KFHyupjK_)k@*=&2*9glQVz&M$V<*UeBl*g6N zHNtzPJAWgbQNz3Dy>#pIV?@~|&HaU#ZD+7=SYQY-i`>}CvTbrpFC}Pl$}yoK!ucl? z{op6u;Q_9rPorxV`3K?qtiea)%C@$54g%nT9Ik1epIz_|E_G{K$p5!4hPijgskc!@ z?!8~`#L%4EL|21wF8a=y20IG=)W(0(=vwZ-9xA)6l6Ud z6UalUW83pZ$%K_OxKsyK+7*p25sK|;ATH{3ihVh^?SWgL>|CFvT&?y*qrTm#Y*PX{ zE3^~XJD)17_QKhXIyDn-l+pZpc2D>db(N@k9a-9TiB{ zZk2Voq)J6>HD&G1SoH~09{IM+t*`nPSedQv^~H1-EnEe!J!7rjyBTXDBnr0e}mm>94$1hmod7Tzfv3r=E z8uzMuooiWb9Lvb_C1cfz3i}O}A%_$9E^mBV2bblf=UCbIz$YyeWdHq-5F~L_tgppf zN}d4zy8@ME2onHQAg}+}!a`74ypTa1Cr6w}sSK7aR7>{?Mr6MzrI`Q!TI^Mq*;-tm zXXtFN@p5!|eV^#%e*6awjvU*2OorZ*^9LkF3)x{LYiN z)`@Bao(I(l`8heiKT%er-KUZ?QGI62v0xP12uH^L zk-yo0fZdt~f8gG|{P}!ZtIP86&00j5%XbdK`}PRGBh;k7)Z{A}{>2>uc>B%{D^2A} z34~0+l7)5_s9(7HlzNjAd^sYzO1)VX+mX%YrL=@NW~0SuCFeusVoXyU{Pf^2DK~pa z_M@Qwmr8x(2Eo`KJ^u?6$^J*W3o0n3r)jIJY~Caxe>l!i&Sdc!ujWQ}7VA?RQ&g#1 zL@LYc|58F;UB4D$a?D27(f=49=<0&W(QUIO9%YB3G!VXydfd$nwYtD&enRdRJ!B0^Onfx zwce=9Vm?;6O)(CdE?7LrS2%2wE8-_lk^;NZ37-^wVn2*nFa(vX*|?4mgeRP4n!>j0 z`WFSuQU0q~>d3kq6a~_~YomL} zo>mH5Lp7h##E6AY1d=@X=bdq>VESqE@tH{I2Q&J)vH~H-I=>$Qr1J>HjnY?<$$#NS zd?e&_L6a|>_#A|vFYcY7xKAlxv4~Zj2kn;xm}j@j=d#8OkN7Voo!3JQa^|)#|wB)nK9p zc~+1ypJSmm9wI(=G7eH3PJT0X#(+jW%0z5=ON4*LvVI%~-sEByT*~mszhJUa0O;XL z^dH!G_!lF{hJibo1Za$kPB1us@fB3z=kIOQ?Xwx+Leg|cJF_0Axb|{ z{!hY2>3&iP`(=HkJmXkXtWP|IR-#fu1P@(h|2^D%W{$}i_(tgTOTz@4T(&t(^W?f^ zF8H0fK-CBh8jyxDv-FOUM*s>8^vgRQY#NK@IIYk_(Vh|!14gyq3xtlr3iW@LOSpfl zjK->SP8uIasf^{*DR2GP!|P{&ky9jXtNr(qOycjIy3&!kfG;tY6$qH%i*JXZkcc1< zGqH{>Zq84vw|Jmosa_stDP?_-oaDuas*@zpg$n}%mdD~0PC;D^KE?x%bOW_(t>s6d zg`nIDcByHZvHe-nGHZUYOJBav7Q*t2GJd!g$(VA^v5FOBt@TX0Zg8|%oZb7TgXZ-? zl0ZlI@86Q162r?4m$w(|CIJ0iX55a3ON&d_v57|phWT&K z0tsZvEg4jGU{n0<7E2Tsv+aD61zh7XtvU|YNE%-KD$bXe8i!81&3@0YCys@ir#4CQ z2;rm#>(owJT6<3lPHMuR235|+i1^XHZpU*W;P@)bp#_Pc%lfl7E7 zU7@rh4P4)J2m}c)1YavoLDS<>?7^W?n^RI!Kp>db<_rL?f5aK0b>uRYS&o<`G^jSX zZnKn}RR&+%WDs&G6DXMr3BPtOu=ZK=^ zk8}@$SbLpa%dD zT+^U~{+!WIXOynRKQjO<>25e$k1P?gD`_jB2~Fugw6EVu{!|tGFFXOQ$CfxfUadD8 zjrnwsNflE=ttHV6Cbe|hIH0ab6sL;Xp$rKMeM{oAa7*4RD(9~H(f5%*wvRbfjmF_~^l*0CXT z^YZ^El^OodXKL*~Dgu5t9VrDlkkhX?sudUUpBo zG^*q9raL7%W~DuMDrsu0Rv5PxBVzrMS$o5Jlg`eWd7#(BWxrvBACi8ZWMVWMBv;t- zZeh_dg`7Fh3u}&4eB$V?tJL9vA^~e;Lm^xDEi3grVCitZT5q;m`AW|JG|zt`28Yw}u#5}X-W19_RGEtq z71#x?t!PC=fu9I#6=3erw1Ct%e`XV+7812$@G_LbxD*!;!NbvPk>1iW=SJzKQZn>l zC>_-E6@N5;P`Y=c8d1(_tJV-b$dQp1qBaTtu*gkGY2M3x^h~pgivC~dppIL`l+S{> zUCl6ucR&XtMC?YZjub7VQ;qg1E>1-@j{s>K6MP*#`4`!u+p4md8ZvM7JuPA+tR2b; z*8&DumoSKPi$YvOX&zoM6tPJQ6w8&VlD}T9jOXmOj>*tCn;uG`Tp#XA8B5A|f%CHnOu?xiZl4?TvFeh;k7q{r)l9?Id+;h0i#I~f``AhEH&rU4@mE^mA67M1uTM2! zd~(y7pu%PU$)~^jDca_#@evaM2}}vS*;O;nua(Rk&syLQ*C6MzdfT*NMXTAx`QZHk zusuB)F7h?yj^wWVnRfpP1FOctI;Czpr7O#qELr?dS0!CO=DTvr7QXMF;eXZL<%GUe zv6SUFy^2yx66bK8l;PrJq3VjaSLYgwQQE|3T8I)49%%Z~{MjFiTfYBI;{Un$A|>%* zG-CmO+bK9?;`pXn2zld-E#gr)B6uGvQh69MV?hQw0ynusbqx65^JsD>5C=;M+aZm) zG#Nbe_5D%<-T=Si|t?Z|=nXo2JSc=`*B~5o+WnVJZJZ+~{Bc^gD=w~%^X(X|C z7=K{H%tY==%7{?)uVW)UVJ5S6#H8IQX&2wEKmN|{+LCZ%41=afkJ!tDAD8IlMAkAM zUGJHnT{RQ@nsbYO1uqg{cSY?WIP4={xpDvx+i%%6Y?7BP5Wz&nDq^8{j(B})uE;)zC#!{q z2n`#JVcX(SL=mSFmd7nVx~1I-9J-Yw3IEw{!j^Gh7}7tp9r-nW9~CItRF=)S09<(I zPrh{ux`Sx84EWyh^xsnWPjNbDpEK21XHTaYE3Y^&uBAG?dYf!&6FD|0Zi!A84~dnf zrKR6y8J&FV*Sxvbv*~DZq^MoZ8g+uPeaenJL}>GZs^?)(J@NzD2JUgp4;V@&Y|)77 z5mMZylLK@6tEtP}pf3yP)1_7I3R1~tu9HVX9ng^dGFJoFwDIs(Ewx?09pATex6~*; zH5faOzAE=@nQWMA1=)R4bBaOpt)l7V)jSUool}q%&W)VK=!-3G`>H_SVpH$Tz4OR2 z{BXo)P<|NQFbKSAR{T&txmnm?zA9FvJRK*iqH4Ggy-S*q#_1wPE8ord)vQE@TcNb~ zvuBU$NS+j)$D6(`7_VMefh+TIYIUq+tSK-tF}V`?IbFXMDwcPz65Z=nBs6J&MGU(N ziA~&2)?#!-L!<<^AgfC|xvo+hgll-A_{8fYMR0-BYa9M>jrU+WsR!MvW6Q(D&4fjHLi}Bi+!pxz@no8)h_u@(^X0v3%APJ)n^2B1LTiI} zbDf9!kybmcjkZgE-n$d41PEvDe6yq>)ADANc`_a8%%=CXBTl6UO-mK|mzQ~i`zWFY zqVGo^MVG6iF-Za5L_(_QSvE;5bd4lW9bxrf`=bIBv#0&2-O9E}Z0(F#cP`EeQrCq|pp*S}#oF|ERO z3-8cQwKEHmQ1Dn;Br8IR+ZpK70U07BKN5v!pzzPsZXxf|YnV`}rPY8fq$;Ze7;ab} z?eEL={?pd%Mt%FbSsx$ke0kHjp?O&ryH#C$R>HPnA3&BnqiOt25{{Fc}sW8mxBRgv5j(F-(d-5UIqmYg}=5ySO* zVQpM>HE&^dSg)YMB2>*~jjrb3RB5@6`vhQ{;zxOg82G!}_sm&axhTI)lU1;Q5{Fx-~Qs({UomZ ztnR7cg^B_^btJHqgBnstnN4bTJSOO$5`mBi1DS)g?JifYzG9mnTCu;gAcv>JuNu~@ z*)nYug(;AwX2`)9bx;z4NS13_FL)#IMmgK55a!yAga1kmAnsrGs62>UqrcLV@)@!Q z8vmE`i#L5csY|9|Z%yR>@h!Akp zbvc+CcqcgI|0)l?Q11&;o*GBUU$`Xqt|ro+*{VhUJO5WzAxei)A4_(wd2SVX*$I?q zcgY?NsvuhRVLmcPobe|liKL-Lhr90O{5I2Yed0@Ti@%oWq`v`LR?wKq$0zBOIVJ`Z zK-{F&ZVGFs!3-r%^gqe`IZYXZHuc3TuC?`#4ixd++_;_CK}qEbDa1$#99rS)8`BeyAn6r3+o)ZwK-TGt==UrrEkgM`pUEitWhKDmPxQ>CcNTd6E4^%y{t zr9z>Q{3RQF8~K}J5;lF->-TapVmPffqcuElmCNzXh_D1?bCRyhA@nhO4=({oALW+9 z?9!9dt|bJtgpIm}k&_3x-4UeLZaM^!BQn>{w9+8{A^-KH7zEXlvH!AKDDEgtJgQo*V~nbWKI>YI!C2naWtgjbmK z*kidFN!LD`rcTtv9j1DwB!pBczgpeLWS^J{`j>Iiab@i#$+7-AwY~nC(R%E!6qIVw zlOESeJ&+NiI=zF`_ba^rC79x5LLLA_4frqXf>N1Kmh}U<1tk(MkhgFK|Hn6~6Rv*X z+J&4}*%d5z?Sqy7r8nl~mlqdSo@^JI(d&lZ@G@op)iZut4Z0EiJ^L=;W24m2lh?qQ zusi$fB^xi$@)yjPr)W+BmNqMV7qg>Z~szfHA1AZUQ zZUd3{eA5RmIt*$dhJvSvL|pL;+n$`?E=7sVR*^-&q&Ul>oC9Wk^I;v;(PD>wxd3%2 zITePles1zsc2&WDC(TeW0h<{ei0euIaUCcdoqP3+=GlWHsG7iXd=sOne(&ODvfJQjcv}=g~*W#-5plYr2<*HNr{qe669K?pyW2J z$B+FUlz^hq2^FPoKPwIrQI8+Lp*P{JB;`#63*$Fo`wX4h+GD@UntVJ&f6h)EG34F! z(>jR$YRt`RzH_r-kjBYP6mxp;zdGBXELHjW{1plL32IA+(q9cQj${u40N_xVVYZM1 z>I3`wERjIs59q0*^yMq`S$lw<0qe1DC|mUjr!vetk^A=@f?IsN6Xj6 zS}Hk5Tz4fD3G{q_%AoGeG?>4BSt23UwWd77Tj1-eChXs^&`4o@CGXO1=!|ixGQv#- z#wq`9>*iG3dLtYEg1vJ*XG`~Rw;C`^BZJbxWHZZs#hrNK5nolM>$y~0y}i28MSL@U zJ|5~#W0l)R=hF~dWf6cKs;i&)`UgJ_)k3nbx~tUE66_8Z-0OWLM@GyIo^WG;dKPkH z4IZv_Y0TxOx)+{}q!fiSl(0OzB(?fb`u>o5>_I!YY>I?FR;u_w8*k0Y>#A`F2*Qm= zzEEQun|W?~$oA;bV%Z`grt#6f>$#@7#j3&O1(nZAsk$Vrh){_Fo^>>c^z9fzGMFz1rIAxx7jW)y{Q8NP z-Jtbk!1Nw`x9j^d$d^jlF0_8$af7G68~1h>a>p(>*~)4h-}`J)A;`b zw?Ih0ubKz+NyTd8cO1q5-$il_?2DAXGV z@zu%9q`@64ntH^%#Q{-J&&#pRuch4hb|t^6pr_oT5tkqqsK~FX z@)0xFBtQC71De4^{~ddRsip)$u4sZF2!e1^-;%j9EP^1HPTu$u4@XD?bx+vKWWVyzYD}8dHZ&^m~iQQ zawE_5aMhn0#oSYxmx!)@I@&IlgBrKUZgi;Q+u3PSa_{zZPLj{Ou*@An!?4S*S_+|~Zt zTwqrsR8STB5a7t=;%6AEV#nMBq$fd!kE*y5fPxU^wmx$;@R>J9eL?U2c)F@a)TvX) zDd#w%ETvrq0j81Fe3D#|md&g;k!TzN;M$%UF!%{PD&f5o=|QylpT5gjgeNU35_UEz z;p-XOyy=SbS1Z}BOkah(sv^Z-6SYbu!l&ksA9~JArY#pCDXEVCA z<)504IBwgHU3>OdtvwU9w6$x6tVOH#bg18reFuPsj!~c<2n@l(#=*rW zBqA=U2^l#BCDl-EL}N@#N6*AsHuvltoLobNmYO#n7D>$F`yDXti5U|=p_x@* z>6w#!3VTZDl$DB9Q$sy3Xu*LEG=JUozLS{q9re)pqLtmV{du4MwOmoYX=%wG{mvdj zf$;J;Hgx(3hdX;31lovDB$n(??WX0<&)!C76I-_JWN*qo4g@@!gR~o$%^Z8qYm%AF z6GPz1VtpxFt3Z35*3L=MT|8$g;u4a(jNPl#dJ=4kA+-~-E@U83tz4(z9~@|&of0pX zIO0*5#iA4zVqM*fBnOYV%%dr>ig++h!C_C0DZDu8Wl{LGL1LvaMNsAbUWrWBF%X7a zeJVXkk|asq;guV82C=yFP`qXxQ{M`@j9=v@V2zVrjAINm;j8_Xt zvfTac?^BHv+qjm5qd7&JA!X_!?2@>IAn-_E88HCSZta|WZ#M*Y_Cpg z&31`R$(l7=Tiey{5;WJAeY3TKL+x(}uhWqO^(MVY`%pAz}HB_FR#5m1l_<8i{_GDEH(>F|hjB>a9 zSAsOhHt$Z+36i~g-JDKjI|Q?nzN1^Kl0Y?n3t+|9JoZ9cuz>s)fRwX9P^5kHIbBVAwjuBxPq zz6Gz&rY9HmJ-gd$l$e{ty2N7{UKY(D)12*1IJ%DXgvqMBb23Sq`t`Kr$}5i4IG=F2 zx~7_u&S=)&^~JdZPHTV&lR}Yv!L1b!@6OW4RUbW;xYjclhX>WKQ!YQH{{Wv?R2Y$4 zOjWm7mEy}I2H^j6kgL@6it~O}n%$u^*2O1Adjvqr_fEs2{^P~jkAc+h_(pcvex{uk$XW&AAtu0BB3Eq61UJDzw1=nIjP2j%Ct&H$bM zZ4Xa}_bHw*+e>@9VE>cDhfc+bh4Sd#&pbKZOT|Q|+O^Vr%nqi*;}2uSk%cICNpzou|(&RPgso^ zjy@!6(v{Zd##BuN(vwvNxJq)>G4G=X0bK_)T~S^;55?oS6=;r8+z7D;h=|hbVlh}k zB2|&zn2(?_3S&u1vncI7`w z|2aeQ%0p|tJs^(#P(_wZQS0rkBnyIVep(!5~#&)|tiD z#hV*kr$5}~5uB4&1KwVIZ2x`V-v5Wv0VVn?X*d#cK>td6%4IM8IIVLAoP$#m!UOqa zRZAGFgFj+>vp>PE8=CeO$WaLnFAj&17#Fz1k@TdwQgLzg^p4D?zG_NIhSfWiJ50z? zC!l-6%^MQThRg_a^@OfR+osMGoj$t}3RI7FvQCzzGc7yamBliRH|Mc+-|;;h^U71k z$W_;dJwn=vuuqcj7PC!n^j-dO!wx z!}a;YJ=?9LJ`TCz6Ye7Fl=)q@;scq#-t#~R$a#7HE^XB6LFWGsKFt@ETY28xlZO32 zcFyfjk(bb|EdPN@Y0i&pipb=pobl0Tmrrsxj=HV9H0`G;#Q&|83d$fQ2oz!zRJ3&T z3_KWlGPAJa**Q3Q@#e#qi@yMYf<=lFEk?W+T1u28MQd%Oa!Z#XQ8y*cy6LWmo_gu6uM+(YFwh`_4K-Y;5k?xNOr^1=nr^l^=2~cprIuN4g;myCXM;^P z+hUuYcG+!@z4qDfphFHj;+W%3IO(*r&N;8jCDm%ws(0BH4X(Kf%%zrFX|=UB+H9+T z*6c{f+is`b_S&!YyL+|(0s(^t0~S04h>)Q`0I;zGK^&aiJiL5DN<~D)lqpxKO0^mZwbEL&>d|XZ){s$S#z9~R6ox=!a0DWW zLT4~pY%X6Q6iK8qoxxdH{SD;XlVr9xzs8p>61ct)k2qX%P!Qu%-GKET`Gngzkhs)y&gd(v-DwC_UI=#VU zw%FL&J32YLyVo}`^k8IcVrph-MWND|EP+@e1?36|MoK{sRLENi# zJ=HB<%`~K{f>Je7)ehxlp=yrc=Am>IZ3|GkhPI`qLPvAS@LY95`#AK}@0PwB_5r?N zStn3fx%2!F~@}oJRhklJkLKw8C;k}(r2Ec`5Z$Y!S zb8>WW%7dX82#T6ukum$Wa@AQVf}$h1qvycLLk+_Q3EVNFcO1t~4CP6o-)ZzagTx1$ z450*WY|(K{pk!fqPZL&-_DlQH?s5PX+6{2NSEK}sCv$b=8#TQY3BipsXiixSd^XAa zt>M@oWI=!+C?Jd?!Y-1aW8ibK%?HCvI5R2B6mMZbUi_H(eJi}eEOJ7wm}XZp##VZz z$re6WM#Pm9c@;xj5ClQP1FazR>C$FzdO>?e zctb-&LqkKiX%<-w2^u^#tOywrBuJ1TITcl-_n?VpM2HZXsB2WILqWm7KtVx4iNZE& z7#LVsga{ELH1+_M1`PxPfj~h)K|w(oHLONdAy^m)1UYi#ZMhcIfi-BQt#2z4WCR&O zMi2=Ae=52kdp6xPkuG!_gL#B72#gvmQscZQ*UeUt>eekxJ?q8rd#zN)rFxV|%f&zR zq5QWm-Pc;HkdGK-l#tJC8Hh;10S!VYveH%!t>7_iL1z9_4$Qww1HNaUo)u(v6@q3M z$yi}53)GL5jnda#=f(r=vl*lEKrF;LmNxBfi{ru2ZPl`t#ldabgO>vVj|Cc$1s`A| zgg~{et63d_`5y7awj&_UjR@?W@>EEV@(lYFkNh6xxq5(c?dw8nR|S4O1>&WJfbEJ1 z{*gn`3?Xcfc)g;~ARv~Hc5Y}#5wi|XBH%avz*z*UcE-?=kzpmQ8&Jj|fJhYA*2p>{ zJW4g!wzzd=Y0F4JfNAUYZtt*Rq0RW^J`n^5SR>)*5oXuy>;w|x{CWt}_YCWYK#a`( zxm^;a%G6m`-4p4btkhC#?Q&3+dbd3EGaxd^p-(0$=$c1fQBurrpIKdkI_qns(IhSR zv}ZkU#b>*{?!E2(ced7gpZeU_Hu~O=ezw`)RBxk@hzLuh>0YI1mep%gEX#L?8-B(! zoAumBTk;B5vZ_R_^q8-HQ+`F^S8V;-ThID7w6WdT%-(MU4_fYzM?LLDucz<&JNY=P z_wBZP>HEXK-da!xRDXxmYH`)A_5q5q6`yh78#I$az0_Jq-Ssut@V$h_iMLHV_1`chCH?N`4}`R%XKjfZDQ zfhVV*f6cxY{lnKA{}$NKl>h$o_3sn%EhAtB3Q*|^6naMk&o-3Nb0@wXK90P}8;j?j zs4N@Hm#MRIR#`KxUb=7nchZH*)?+$5=9S%t`@ZYmjny3g-o#IR_l{p^mxo``wY}!% z_k}OJzhvd}GTEbZsXYC@_nz~2-z)lZ7`_+3{`>C_fXG6jP%2b`vOD+*ePQr$_=nkt zP5pW1r>`GwA3h%epj`Dw)?w{vLt~q>t?lf4epK0^el*xTakQPzxppyEZeDM(Te-U+$Z&%Z3390mp zMEpVwg&w;ZwY(~BRz;GHnnv$lou5RBvnaKtwa0?QKeJ_0H3Jc%W>hDo=wXAAr0rxO zMCGJti(0Oz4njsn#=kigvKf`zYl55;S~ZhuS+zuhg02MnUrnw3K3JGrS10qUnhZ@^ z$M|wD`71hvn=rII5p=H%lvr}@tG^)f$%0?-V_Mc>`y+SlY!_JFc&(^iFzU~YN(My+ zum-Y9EX2rda5I@Hlv1iVUXR{aOY|nW=XaoxzNNPgvBDk#Iui^;_ zTAH2%!~mv+C?G6APm1ZRzKW|>E!PemQY!@L8T~bkG`^h*8AL7~g3g%En$CK)&t1Tx zpkor=<>B=Yt9N-kAN{D+bddc#nx|ejYdN4hv++sCJ99@;N&mRyA+2xIY%M$5{bb)) zXFJ&aj&!_Jo$W%GyVlL_biYSE{jBwiBd1f;paal0LwnY8MB`f3a1s`|WMMt|+RSWc z9fytm@dv&)dj5|OIfXwoI?0*)!#){j=`Yi!Icq^CJtdLU-aImxvYy=}{o902 zDtE7;!%C)*bb}+Cr{YyU!!h%I^%!T+4}UnWWa|&p9FKnb(~C>{XM=4SVt%RDarXYo z!%k}MS8`k2Y8y5^HLS$bOeHlHXDYd=6sA&|N?q}qNPK?1{>mMA@tdK$G(zKV_Plxn zzM8NQz{z;qv=m@o(&S_TVd+!xi9qDXoZ^Axqa8(AK<3fT#7rQcV5F!qV#7s%C~@jY zSKsK-d|=P<{G@E)U@h1mXabI(PRnKir%q=j<^tEAE-;g66LQ@s^r6&`$`ER&&=^5$ zbfhzR*AFt6nmSYF&Ohcn171vWLj)>~O$r?$q>A^d87XRcze2y7b5c(6iHQ(|STqWk z0E1`w6$!>*($j)SnX;s3#R+Q$Hf-6k=RmSi{xWc;q7--R^scmtP51GI2fOTyaI#-@ zum0Dqx6#|-&3x~Cr@u>;+WUU2S$+O6`3U;R|M>Wc^-1*U@v-;beA@gBX6&DBKKp)- z`JDfG=jVN&&+TWI420D(dXgV0^96fH+J`=h!xo(Ok^ZG`LdVjEt;qIflw9i6TCaWI zeP8CXmc5+)-MhWt>OSma5qV%=1pN-{jL+mu&+N?4;w;bVtk33X(+`rtlo2XdtMo;d z2-^hPOWH+s;tZfz4!t$6d=Ou4++0t?UG8K6(wgXIR&Hk{^k4N^<7IEmrFGiKc5sfL z?b)6EIh^B>&gq=b<;WL)$*3Ki6DpcXbIC?>%MQ$`eGQpT%HNDN*-Y~-wc1A89d*VP z54;P2ZPAngq8t4{c+d*M{l21gzL^_-b+KnCh3D9-%ah!lUMuxdZ!3A$Pg31SQqw0= z+hdLSF4;*c?b z*aQuioRNb~(eWslIN1yXpOTr2%`pk6Sh(2&i;$Z2e4#AIzy5E;;Q6sfiCJy#?m+l^ zjL$1Y1$C&TE>%=hLp_Q;=6txRVKE&5%MXam1Y*!?B7%lf=3GD^ara(=`0U=J`rXHt zR&Sti0946Jy3bx}nG5w75X*M(QU((BFO^Q}UaI8gORfLwR$h?@@k%_Hp=vbT!ur9I zibZUhTqeHj1FBG4G!WlDpa!;gUnfy4#VGRTY7Uw$_IVoF1vWemd8i{C@$^pr49@V3#xCt5zIR$S-(Bd=&lg8;9t{$DP$7F1RWT7Xx;JOi zZc$fHALPRW&j!q`f2R#mN0u`ZXAk-eRgr#*n0|P3`#bNXH0Ciu1{+?1newF`K2o}b zXu3%{E}+tDFBZ1;pZ=k-j4cO(PAigLm4vu)zY@>dw<4lDB}%4L^e%R*_)1u`^e{jn zz<5imJB?OXd#{FZE=%o>Xv@w!n)^ArjA-GRUjI-c#Hk~7WakM;$)-*0d=(*i?<@h+ zM`;dG3#BKlMV;zp{k>1uc;s{B@#)CJAvyVqD8`;PFv*@cFxAc)SZT)%Txf@{Sy?2o zp+`S-tkbI+8EG5Zj~lY~6_G^Ey0zp)Kyh;~9Jx^fz(+3vuuQkrT3=|kp5kAKS z%>n5DR+s$4!H0i7q_;mXpg7pGuLC>-fUD#bpg#&+b2`wuMT2Ya@w*r9d^GR$;O8q1uC@Y zF=NGp2vxMu$uP?`YuBaE@3d%FOlhH_s_JW`rOxV7R;%vc|M0;lo;mzdc#Ul#UDi#y zX}9cl-A8Hb)2;oX{bkx;IZdb4bUYoV@1$=?-;DM2k(a{Q`uLv!w1F2Q*6Qt&eVq(0 z?oF$GX>$fMyYqK(S0>qG07MZ79BWic^~9E1*~(erl3PqFm9BDiPlLgmETT-4E>o5q z@ewCM8-t8%(sn2AE2XK}u#(D3u|q9Lug1y2hc^D`)6czdlspSnP;g{V@kwsBa=w5B zehonO(?1fu`NCPX#;a}9{3C`(8C6dC(;tpFWWRaJ4Sb65-~Yh>KMhayK6$Nt*_r)j zXun1NzAJrhZpB>lw6OATb*IjyXTZn*OLRh*AOAfaq_6aZX3?tnYfRz`fRFyx;jg0k z>v&4s=k6(h_x^8I2q<5JG{5hG>Npp`x#%s;zw1PRFx~wARqR5!(#nNq8{ggdzCFob zUHAJ9*q{xIoLByZ6%nJjSf!R;X4&PIUtx8L$(8l3x^x?O-+#XfTyjie-&?Z)wK&;O zip!SWvRl<8ZvSc>Xj|UH=7HRyUL}Yjbje5T5@pIl*Y8=rSji$KIjU6qG#<>Z(WeWO z;SQERA?Zvl)eUJ*!MqXhup<8^Z908^=yTei>;9Q>!V?eQz2Pq0FShejzd-(iV87$3 z5X5*;&@d%AxUohUWv;S2WVRCyIpUbh7T4jUM_&4&(KkPnL37He z4w+Nd*=CkEpgY(RQ#V4c;k$Pl^zq zrhrsLh0-D&fvHN#KvH_zWTbV5(lh7IRHxi@h%7rB9dlKX)eHL4&?QgZ^3F$(eD%s- z&;0a`s&7FC6lzdm21b7&3@y_13XLqr)bcH?%ChRMh--Nq>)K&+EjHC`LqdD&v8Qgk z>vF!cPIuDb_Bq!XCp+$Jr&V{sm9A)TyBqFy)19V_FVmkLmYlv>mAvpT-524d{(>|3 z&QlX7#U|%Hjn5)Nhzln-JMDAvd&#C%U}Ze3Yjm^&PIbbTTJ5V>c_|iDsiIU*1I?XO zBoxR%B?^h<5(Pr+SMWDAv$UpBOpNJNb1UdhicrMAf76+^P(}M~t2af$5be-yw$-2h z4nU-gXsjE22t9;<)Ud-1GyL>tP%5X>iRB_IwPmeEYa^;vPw!fvI-Tm=+Z=cWHfWEX zs&%Sj4|l)iCOmF4p(&9WF@}WyCq3V5^-9L;J>)aPk>SY+6humZibQQrL#Czp57HRu zj0`3wGmC}I>QZxXF0&bBHwH4!;VLH|liaTHxXw$=N5b!hfGH;tEvPSK(7Xt*WGL)G zgd|E9Gg9VJxv>fpm8Rlms?1eesIio=QcF=sRd20xi3N^O^1>b#mRy4qFux<%;&wNF@Hk@AL& zw>aLB@EXk%LY@)v9K#C&o{A1FHmsK6g`_Stn6Ti&)6guab~!7Iq_Q;Q$}qY(zm(wD z68%<^F~yrumPzH9T&^kQnOL^t_4}hk{_2Q-8uD*P{ns&nH|ScE{%^wduDRK1FIEFk z3xR_XzU0W3r%XAvo2Er*rQr!w0h>%g@ws#c$6{kA6Wi;+;aGDmwAg%)w}|yA0>@Eq zJ1{{01M+u}zdwfgV-hTozXLiyGao?N9cj8g$U$jo&u@BOe1|5``se7z@~!^|eBZnt z;CLwVEKTAl40L5hc^SL3q`0WCAU`iRCp#-MBRwsZ$AaBsUbw9P^})t-9#31LMwdxm23YhGZ1%gi6V551lvEt| zbT4qC`*(1%2ZB>(^2-G1t2vXwky#yWGoEJcrC;ah`M@YVJC@B}2bn>%a}i(M*&=@x z?}JiaVkn|%`HBlt2d#iFZ^K}-4v@r4Yx4rHiLb7ED}t9q@Fg!NqB|`v3)?3%VaH06 zNLR}gLa8U}$WYnscQe6s7Wm~L>*~u`J>Hz8EhHg5PG=Q3N4OZk$O-F)yL8Yiq`c8)j}rN%s&Iisu{w zA=s_Bcp12|;ORL}Gac&xbyr9-deyIZuYVzcf$(#LQ|PiPdpPz7R+BtGDXEy@fmGlp z6`r~YY7+3z-)y8BtA6EqBx4hzdMSpI1_ii$+Y zn+x6EXk8ey;pH`utk08#HRxkqG!0V*&=c9&ZAjoHG$**?xy>$2I~O|D!7eo!y8h*UcRbDd zeLp!A%fcs-nxiyzLZww&9rV&!b{f1~9DNz6Q%#YzI!DE5qzODJ#g55ioM`QxKZPp^ zFyhr~Tl(M3q7{wKh&9h8>!-Rxt7K^vtmZ3bkGQh0a8ili$VrFdXdT4GgTBpZGD3eGCpa?UJsQ7* zP-MueJ5hUnvF3u)bNV7&d514NMTy?T;gZFb;K?f`R0S!I`9A;RACkV+SKeHx%4C=v zU+&m}j1DDPS{LA|lWCQ<1Ts_RvJ}^Ra@?F&<9Nn_WL0LM>QfA(iXLl_bygFvK-(l( zU~=6_T?&&{YMf6xy5@lLR4jt=Ow#a%odJFwSPEQ$Y|l3Wj0BJvBaFq|QoY1^1W&!69Xb@rtEAXJd{NXbg>ebcUZ9>$BXj&rPo5 zF3GamP0UdHH#@RIi)F8Q$Zfn!a)PQP(}OpAgOT2H%+12XJVne9HsqQ3qu|QTQFMh+ zc;I?LCw6AoQeXXfX7M6}L;+cAmI+YvWVNoKvamlsYX-o|Td1jr#jgv}4XA_iGCx+Q z&1-bYxMHcVGL5fr3)qq)f6_?QIqR%-!Cl8Nr>u8@Xl1qi)pVqhI!viJcBc~up#u|P zn(*vkQ=DdcsM;2cuE%@0XBxE=t=;RXy zVU%SvvWqR`L~=5>4MjB^d7qUjRja_v>f6D1phBKSd(<>-KP;w?0E8J>-YMkj8OBqe z@;<0xQ`nAYF#6&WIc%m}5rC>N)ktkK9lJokeX4`~U6DDO}ko!~+Sa$EeQ7 z9c`Y|u*k`HR9WZfgP>pgcur`Cw#iv6r<5wF>wC`#}Z1zT7KvC}SGW7e{UnFtE(D4K7x*j3hFO2WB7f~%vjjN*P*TnT_yamugBm_KVj|@q z$ej}`w2r`lWKmVnTHD&$V?~cbEw21gAFaaWx#lBsAD(HmPlz3#2XXUo?#?&79&-x3 zX+ac%9Wme8I98yuwK$f-3lnPp_b)&&lXd_UBLLJ^2QdkZ|G&V({{-ms z82}x>6=41!0|m*n_-l|#5T71ktzf8wmy;*4GZ2K{0n{V^t=ABA#nO#$#_Zvvfm^qY zm_*XXvG;_aERCA=$1yg?!#Yt%c-{F#eclqEEk3W{b5|-R&Xa(^e8t1~Z;dBKykf~v z4NUc%&eRJ*8HIE@Ohm3pBwtzySf>QhROu4YbKg!tfeiMQ&V0G}$~R zSIB{Okx|z}2qAbj@i(A0o)AiA!@oe52ud`xzwo0(pbnPdg^)JE7;M(8sZDIE?gVio zYN23|1zg=A4+)+qUTmzJT||@ntqH$^m;}j>V6flBT`fEuj#s`dupQ{9<5oocG$J1D z;o&$YyHx}PLJE|#qsSs28ATxCs}HtDgDy=XW8L`_-%h5@+bWecRGAFMjeF@q07yQF z82C6`3EyPvh`wVZ(q_rw{#>BUP2$#WbDKl}^pt6I`nSxunK!rd?Y{w&dVmIYN)nQg zP<3UHnC+7P>Fp4hJt`e_ceXBRF4ne0Ob!D&go=Wv+o9)#2XN>ifEtzR;H;bjaNu-# zi%(He%Uc69yJM?L10qSm0(3q@K^^32Q>-mMqAdpQJ9eaXTM%W-C_^EDBJ2;fZZKy7 zFwqtD8XjNq-atz%z_WQt*^NsLy#M#W&k3Ow=n(I_`(`;_B4z}&Fc6Sx+8>zn?FFCi zkC#X75-%*0Z(eN-DeWKd^=88=hfRgY6t$0|k$MOKj2Zw8l^qKJdfVDOYaQe79{wk1 z#H@C!?przS)h7L<9|d9DftF=yU2A8#Stn6e?~rt8a|GQ93`{Sj&gyeU5jNNOk+*2p(mhC^0I)YPEwq|Bq+k)Sku>Bz?n0`O*kRHJ zj|y5x>;DY3R?bBJa)~SlACn9!Mdl0$mHrVo;cr4EXlXz)6jWoOWQujL`ze0r1Ghf) zaA<3wV3DJ8s{!9a(dAZ~5)I*V6*${8t*@!Nj3`Mu6?+c+F4C46^4J6rtJ%||LP|x}wDjv$N)kfV@>c={_kM0oHfGG@y6J&dK*M_KgagH6jfocr# z_P7Ac@z`vaaU4_D+2Wkh!9LyR1}BrjiU7a19YM5tdBIieiltIf3hFyK0m$}eEWhG> zx8=^^oHI{Iv)O$tcX(bnhY{ z8r{%8#tKw#cvze*Y-}MM*u}2_M9&_`l$gwJyZuGwj^tbb{_ssK917HB;fke1WRW&P zTd0lcrd$OFk3QPaRiu>v`Pu5^SQJ)gQEvn~Lfc6+LTU4eBz(ldPeBjsanz23!no#I z9UfCT^i5wrE`MANfAvEpoO599JM(h=3b!C*!@+MZ$N?#S&h$I2NR$l@@5sut{BJ*Y znJ;tJL>faZ;oqF1{zmiEeb4NI8%KWm9R!klrKIwrP^T?ghgr zY7?Juu5-4I>1K!ms!)QHY0!GW(L^ZVs39}bTB>r=Cuo|+;jL_#g4|(^n>1EW_TxT1 z_{<)*(MW0dE;A9$PIH`C)QApDqrO)V(H{^vN(1IK_Xm{#|L0vqJejCK;pxP+TT`vc z?DATA3ToJo4q`WCqmSW$WW$_uXj}@sPJ)1<_lYGM!taO8R=0A)FKH4Ik1cD5+#OAl z8wYzF<{nZpwaVZ`Ar1WXCRo-JFx5!EH1~I*ZgQ)+&x)7DQxp-jW*XL;+x=s7MFl1V zn5MI2Xb$})8CLf@3r)CTc6jLsT$AlQXSu4S$Ia{XXJ+cXL9IQrpD2cGt#O@gLeHD_ zuvVh>L#Xf=XSnscz$jfanpCkY4dtp+Ff1{TCtU&t*r1^l%pFJK)Hbjce$W0Km^7T=(yXqm54v27#h7; z3pi1*801`6!YCi=^@V)@7G-5(v8C2xb!@9=T2DvDA0Dim<7myscRg?_-jvj@IYQ`@ zpivOqUO{Kgn_UtV#n7AUo7I0>=`jc9JnuqTi>F_g#m>X6|2LR)3E0qi_)zwq)LVYo zd7QHVi>$w3z}cAC)ZGm`doJXcjEIOe-7hzC7s|`z%?(BS0Izv&o+;0vI68Mf#(j$F zw9YKM%sbB-cL+~}#w3yGJ|uPL9dTzt4}Ky8flN_S2xF70Fp4;Ca}S0v0tyvh7HbW6 z?kk}5A3fZ2gtGf8G}$J2wkJnAm=j}=RupPgI|LX_ki&<@NjtFTIgr-%92-jhDd)v0 zQ?lE9cf;wc0<^?U()4}ad=n>b{gGon(W%co7@A*5ByU%5RxtFs%2G2d4+7FfFU--1 zGT7pom`btEClN`ITNQmt`rMIEurk0p^nIn#U0acZ$l@GE0hpuQSi}aSw2N$BLyWl4HVm*aDL`&nd2aiRo(H5oXNrkuQY288NpGqF?cW;*y-hteu$M5tM{UsU~h zK;-g>k|iK`A7m(+tsF+J;8S)xHTQo<}MB?-13*5zlGaAq$`;Kp*Z! zLMsG|2!$>&P?y!DHoBY_>Mml82LM2hH1YlBc0iKK8~pN&R37wzC|#Ai9#_$cH3|^C zIl<KT*ymKdCo7*7;t-%Qb%y%- zl(!ri*YQ_S@+Z!qgHFx*$Bf$M_(;~>QCxN;xlUwQh9(ZLzz`%!{UgsVpK<%)hCu(% zgcdJc63rz>KS26~&E6|p*^rJ#P5#2@Vn;x=`SY~UdX_{7uAuA{{&#M())q@BY(c3~ z5fdJ!f;KlVobDE(L% zUK|DzGI7=jQpNgd5 zo7dyaN6n)1G&b#kZeL}ln2APe97$g9C2acpi5nTt7_H9474WoSqt8Vax1D7Y06+jU z)Hx^|i!L*L{tPT2jPSZh^OM5Wdh7-QDMG?xragmY1%IPpSnGJ$O!}fWI_`6u!1&P+s_xLc>A9 z01;1aYKfo77R-P zh%c08a<42H%q>4Ey*hbMy1bl?4>pdAA`8(WPbSgQNl4m)$pJZVD*QZ9tt6-EFvUOv zX%JQ%SR>qCGu=waTXZ*fsL`a9k|QB8nl6J04FZ0omQ+0*1Xly^4IY+{kaNM~4XE|w zmlu;d0GLx@RTUwG0(~CZiD&?#Z^H zspMaxO&8!?HDK+HL8G_ zg!$AK?|t8}*B_K-_{!zLR@DJnvfjdyg7i;`w#rYdvltNCmz|ck>Lgl6fBYnQz=7jL zBFv8C!(+fdcutnD0fc}GIIh9h8$Q&s8tk{;;+2tXnQRCLkfZT-WtWu3^0Na=>2IrG zrkhJGG+XD%zq?;bL|9)wtkPZ(w)Vx9>j%m{kh?HFvk3dKu%FcEu4xU2Mv7iRfQl^F zS#JB-aOGQ{k_i_yR$087wy_Vq)Ur%wYoSqc%-yx`VDG0CG|%gFVD==eo9{S#vjFJx zX+8<)#)S~Okj^3KFlM9>#-5U)r5{5b6_DQOGD7w9_cfo?5Mrh@>{eqTp%E4?%Y+=A zf^`~1Xj&&(V*(@kDa94@CT+y$3ab41jDLbMS}LD@dcmc~QH?A)WsueV5Tcf&6e zovgFsxSW}!sq^Z1PjUSo+PHaNet(mXDM^{Da3xQ%%H}c((Da;#RvclwpIq%20>jFe zFzNo`LDT_BPspa%Aj=sP+-(9iOvp^O{9UmV+(0^pPmZb5^cG}wo;Rggds$U-x(>OP zHI5B}?ACuP$H*i1QnYN;do&}uYzp^R2wvE?Hzz(e{mrcy0`N4Y=`teuJlg=#LJ^~i zsF`QJ70srzm_SkEEYKFupEa2aw*riLH2aY@xwFH-K^hZz=cYq)Lz!$Vi+T_%-1`DP z%M^IGEat2VNh@9|o0Q?Rjc|aMRl4WzqmMVM6Fqzd)nY^l&rkrqf)@F6mCTpTmznm0 zM6F&Hu>z^YTaW+VMBQwB#nH0)zVBIkeXl*!CwfhxiQjvbf|`7+&%EuL6}!_~tvbQ+ z`v$t;NsAIyq_;#GYI6zpKD}`EYvvPc_oe3JM61(24IDCbbHR;SBpqSl2vy@Saf2SV zCA_reC5s5vqLw`b7m{uRH#t8Cat_vP)Zv&A|L$Bd3N3DQkyE6sgmF;yyuM!RDf*$6 zq0;xyt+PIQLX3eUD3o0~Uq>97e7#3u2ptIelHiLQLAmYH9*r4P;1;HUAX_hjbo}Zn zLIHZvOq1Y)GZHBySCi!?3qO*vPXIB-T0&e@Qf>eU=4l2B7=ATmKkzAEP|j>JIL>7B z9a0x_kz2FYvqMx4V-BB(2C5tRCNu+QbNjXCj-s=ejV6zay(EssZM*kVsj|Sh0~kv+ zYxT6g#jROrH3l)jNupV0TsNH_vB}ga-E4p5Mv}{cZn@slzu;%LU^+*NgiH+7_$c^; z`%2k*21FxdjfVAo=(-*%&9GF(VJHj$Aoa0q*Xy)_&Hj z@c-6)yf@oIHy?h%Z%iM$MzIdFX5@LxRTtsu#A>y#63de<-dMQrpxHP&-|~A+YdFaQ zOad=V6#+{tzD9-Z$_JaUlUOnb%Um>3P&47>X!AK2=#|eQr6{wl`!mJ5iP?9@TReBd z&I4w^wfD^C*xt!pz}gZUfia+|gCj$DX=)MR;*=NfrIM0{l`KSs#mC_lgc^}M(|37T zI4B0sio+&cMRKWKd2WbmbZYEJ=g!K`5!c$zUMVP5w9&Y$W0cnb0b;ce)PRtmCBx5jCkcBer|& z8R(Sy(4@QWnF@=4luX}+%G+ZI=*MN|0XzozET)0C2AZ~pw?iPN-WpVG^3r4GId?19 zL~j`e1FJ7PzOcz3LeBS_+AMmOL>+WzY+Nth(=)AUnQ3YaI;uC65CW{x4m zi+KZ=Q1br&Fr{e#&4me5ZY0rI3o6jFmWB{V@O1*Xb5!$Olk&38?V)rIkW&{{ckg^s z#3fTMNSWGreP6Ms#QRX64f{DL44fE&V}-)O&Ty~d5n_FE7zEw+$9rK?<5>IgvOxyh zbDQ@8?adcp|8qZMaYTualPI2R>-DPyP;`tcORG?-ysf-uP+{XP7%7Xv$3CcE%guTQ ze5={_Cknl@gOb|Wzz|Ru_!Q<>-y6hQDsS%+&W1#3DyyxQQ%)>iO-+guu#@q?a{If% z$fv+GtYpT+ayia*%m0u-f}87QNLb7V6;2q`_&6+kdddw&7IT3n3nI_5e4IXyN6=pT zdIrt7L%y*U{}ZFBVqJZaaa|lUo~^HcGNgwRaLaNNDFuVndBlya1AK`{o?L|thhVIe zdn$95{al(XM6yX|#Xo6XfjjFjc5h=1v8vcm#rpUeKc(U^atssSC|UUKY6ZA(SP0I~ z#QR>$A|?TfLSkAhncHUpm*?=Onz=K#q`T}RCB&8vpv+AVOL)dUV~{rYOBer@jY>2S)%ELg`c#PA>G94RY-Z5~E8twNeB$n$-w+`qUm02m%{vSNy!LY($+ zIZyAOu)HSyO$V!dK$!b&n$D^^<6<3K^myq(mY-EYwgeYr%A55!>k1otbm9el>ke@S z8D0pZMwd3z!C)UO4E$`v^!H~9ddRQe=>hh%-kpq0$qmE&c@3Ff)mw(NyddUeRD^l> zgO5=`z!Ws4T1imS=4&X@cS&x{NCpIDs^!${$$%#z#u<|EgYf0YFwhYtXn5m`3$z(2 zEQO_x7@t;u@y@{-A26A|9|QItGO=b;)0qbe!sk!H@q2CEI~P`Dn1x8#&c}2?cJSHW zSVJIu!iH7CC`axPy(SsV*Zy}A{h)`cQRVxhkGuUZ8WE91JE8J|QYRd7MGd7$YvGHF ziV^yPUZr^A%bhh2yE_32;+-<$Cf8HH$VZxvtJX79OfWBx8zi*6rLrsoSEN+WV8qa> z%*g3yQ9GXZ#$ei1GHt;1KbTTO;9DT@RS@_#HN=)+xqaf_Z2vRxEas&!_U+TJQjfIF z>dor|8s~9GNTyIT&s;uJA$KX+VUa>ng*xd~v)X_VcVRDHzKvMPCTux-0Um225}YhF ziQEK;msX~iks=L`(Y3)A7iPDs8dd4zDeTw?UqUKV+k9*>&5qjhJ=Y2*+YnXx^)!!yn&LbB!>y?yXvDOh8awj#*#B$PzTV~hn{UNA=( zIC3!igX9%E{(@nb;B{2tRXHstHSX6LhGX0_PuP)HkzIHIML@d0Hl}LqDaP75lT zw5)AbluNy+--`2m&j^C`OSdXJP*?9>Hm|I?h=lph2&n1Vi{6~&7plv5j@;PO{~l<< zqYs7|)R!3#1QOBx_J{5566A#&QvykL$AyOiaRG*uQtBqJ)hAqf>Vs+i9Xn|xB9^g0 z^fUJH7k(?lPhb#y987NXg21RDo|cV!cq_-5Nuzq7f7DdjBpU-AidBRRvpWm+=s z;VmDJN*dC;g&yLGnC2^l8cC?M)XkNF*r-s9kIDfzM=aULxCp_;6o(tjGh-|( zh|s9X)Z6XPuBYrp4ENGmPYfcq!&8tf%r)Amk%-lq2D@!*wm>4NX^BCNCMop&V~90x za8+H4#&~KtceaXRObPfn^frG)C?;H_>Fes=%T6FXGY+ya$7rWUgd%cySKNMu?$$NI zddflM=n^XZ*m1-&s6082a@V*nW*5b*x_Gls7gvl zL6>xbku+lP4JyMzMNqNA%_dkT!d3e|qpqU9WCsy0y7yPFi1#UV^-d-6u_JBdf>^)S z)kqtKT34qV6^A(hz>>*rY&K957PPKPr_jedb$x0?AL)U39Eu`5Lg$Ldwf?8I4kYF( zi6O?*H9@Pv-&SXBm3OBIn^9*m^ePf$-&JAk);@izhRJjv1(1Dl)HysBmEHjjQ@$F^iwKDne{XO_gmvu{tn z-Khh1b^ads%^&(L`VH^xBk?QJ;$@y*lCk*3HyB?Npa-?ZMqh4k(2=;gayu?64pLD>WT-HW2b}j8} zeg=9M*bYCfz@4NR5K+t16$}#8V z6(PRZE0JrxNj^Zm#x79v47;uQLDB)eXp?P;xr%ifnBeGRLmu0Zy8yeem$+tKm+N4E zl273{Oto~qr$;YMxg;Uf+<4j*Y3n>A2rK7elr|9y-8*T1$<}+6z&`27k>s)RjWw!6 zQAO8z25&K}O^OKL=%v{XKQk&mk)Tkk<2;+2*{~f{xpRzxqTswdD%F*BQV?zIy*N9~!R_$)lU$>3 z*y3!5*D{A$*;=bbc>iZ&Z-fh@}yTRjzA zwW&&di`jQC;OUrjh{pP~8+^PjGI$DsgUq)oY&&Dj7N(;|Fw=3BZyoo+P;h20g<9U? zg!TY2&MAWFJAG``-n|x6i#*eli5i3ASN$R%4q-6{N9)_ru;3J!9G6hU193ySJnmPI zLbD?Yqdcu^N53k#kcxjL1b#|ID=iO6=Gbw`X(~n6#9FLf{J1#;WcvXox32qz7qpYN z$h-7lwQ2InJtHFQVAqPb<5(1kw|4(S^I?EDT;o|V2T{eCGpeZr-by43Xfwm)B%Flf z_#!Q*^c8YGK!w-4QoUrMPeNvjV1Ay!aTsUK7oFv~{biW7m;$lu&nKz@z-8I}Jwa=h zokA8-*ena5ZPDp4zY;oyh7kyz4flB?z7ZJV(HFC z6=xmIlZ^D}peq)xpZ~38+rpp7feNLkKEh>Ib(0Yc4BDZg zdBFngLJ_|0GXmei`y`v9b(s@XHP3?wl$YknN(YY9?SaVouHJG&ImIG6^tJyPV&5VJR1Z3ARhp_3}`F&u+-`f$yuZ?uLdGetV zzR68()asb^fV+~bG*+oUjOx3~GdHB5ZqgU5uPdOZ{P#jBylO2~z<~au_ik~j6?;un zpz^Ml=}x~E7KPw7fK%;O^w7>VB4N_?6bGR+2K?Igwj3(_Sl~8JbfZrP{(CW$> zrB-b@NA6P4M_LE1CGM0ljl^il)ACy`xWsgNIYh{+EyBACduu?=-gGs zHTA8W*6MLZ$c*CHb;YjoS^8|=HO0{#J4nwnp5>_a*zC#CX->~;?oPb9idj$OwPqd^ z4$EAS73LnO$<5g>ydXWi9qCLVzEDI=5;fw#Pflt>r2^Ut6{#Kr$#o6cOE3#)|qy+5>MW=B(GdM15ylX7h#scHnuz5SyLd zfY`^-Jm3vwOKimDsy?x6%8>E6dOykTRMiDJF*>9XB08G z!oSaVh0NYjTrCt-3ZVMEsN65IZgS}{}ubv>19@Qpe^;{a=6-Sd$ zha7t*h**cQhNiWqgiar;R;^;zLB1w|T?!yS?F1mUs{@swhw*Q&k9&tK zC=V&LEIZsnNL9U|4nK}xqpY?b>>ANEB<5#6J*nn#m_jbrSY*dpQ| z|2C7T=Y@0)B$+iM^@n+B7%2HPd4;dXh(G2XS?L-53S7zeg#?C{sup8N$O|s|HLdlq z=`-mj138U3%V3~nU%KAJ&%{4wRrT{7(_&vxkk;u1$$+m#V2%#hE=SolL7tfP!O3bo zYtOUyx`Gf-JrD`gIzOtYnAJ{V{bEV>YmKkjlI%^5n-EZvmE;qKUv4AFE-D3##4OPY zYZkeyIQ~#w5h%wu{A{Mu4YURw`xJPWmszcbj@LUYZY|2KjEYg>}Z5#v{kmzkp8 z3<%6h5ig=G!u2e~6b-YX!+*AS1HcGE$$wDvgx%0?{h`9!VcPN=9>e|LxD# zq>mi=qsM!2G#d;`7TQ;8B#+t}9hF-#kHsiACSQ(JgkwcTK(ok3g^YCpkuI zhS`il{$DI+pOK_5Se%mPuT}o2NzRgWk}I9n#^*4gw~)<5FO;XR(cnB^wh#69BrW#lEuWZPKl z7um%o1um*5YfOjq1e@WTRTXUwiYZl+W{~1p8?z-cwwSspfh1n)TY#dcZy%u`?ng0 zWbUujfy@N55S7D7GWA^@~mvru4F)#~O8Cvcd@Fcn6t30dHmgRv)YU@`f zypX5m++&9Dj*A|$m(Iz2K-PEGT6Z2 z8$dwWnAUn0`%eQ$=Ja6q8#G%DF)XjQm;FOLnH2g_ZwbRU!$-34tJFt(hI<>Vs)m%t zvslSe9?U6V|Jz9>)I8w!aE5Y%W2UNR>4b-yXrwYV=~$MWrt5&MF3fHZHJSh{4phgFYM~6^{x8+)+b?$x^$&~|kawG1OdDh|(h~r58OtqC5mGn8&U=&C2S9$3& zwjFDMw|V&Xm0{_TWsa38@fhTiE@LJwvnTBiZYe_bUH*wm-8lwp&Dt$(o`@K?d@OnqxYHF=7z3 zI^4q6sE(#Nhz3xeHm}9d(4uvsX80hV+(p6_igmRWcgrY_@3rY~*^)k!Bdj>0)%v+y zi3-wM1+JS!Zj9KYpO&u|+eSC#UKD^D$s3L=X?{?B zWt67Uw!hG^FjwI%XRgop0XrX<(s1ZAt>bDN+hKsq=rHzh$pu#)A}|ZEl^Y_h$TR2I z27b)?2Kx}L^9y*f+z$GkK+r32;Z~IvSD~fD&UBGn}5k2J{bJbM^GKHJcZ z_dJR}SH8}h|Bb`4&U^)Oe zvP109O~MQpTbs&lF+90!P`x#|AwB!@Lo<+EHSGdg;axG4kyA1L)C&6$v1LJyJPrti z!u|-v_F~d)6@TYfq|>GwEL~N@#}s-{OAE3Bm!T8$&d+3=HMqheU8h?e;Uk@hNE%Xk z=HvV4`VE2>Fl6fQu((kWt6Eb^OzINBbxk2Lu3lMbxu6@ch4s6gJxsMqFD;voQt#)sc-*29%*dGLkwOYcxRX)joe-q>Oa{r(C z+-6P}bW*p!c%QML(*~1i{8zotlvqmF|0k~&7S*x0y891YNw=3ppH)VlfHpRbE4J_#Figad4NvIyz64(9YhUYRvbP07#6< zxMDrs0RSr-joAD{yd)+vX_%BsnlydUUJVwTk1!lo2 z2_GxY1qo|0+rK&6a7{_$6qT+XtTEFH73+ylo^(|d4rSZ3*Lb&Fta>lg3EQDRC8^^T zzaEdFPzvQ(hGp4+R|8U5|3iA%E_-vY)*pY=v#QC`7ZGatkBae1o7Ekvo3rzW%brQi z`9UjBfgNrsMU*ZAry`KBN@U;SxfuloA7BZ)b_sRxAG)0NN3rA^$JXk*Oh{56Q>Jf7 z&aw^sUv=fZgFU~5{_rEN=>sITgn~wu;Kp8SUE7ux4`u(mRaBTM7YBkO>`KefmLT>z zpX68DXhB&oB&D|dXGy9g*RNj$#%(4?)i3YZMPz1ktW{{MUJBl3KuVuT%XYqjCT!cT z6|0MJTi?QoY+AD_B?Alaee5RN?~*xnkLsnRuqHchHU%c|fJB>id;6`3(s zL|GPq7L{1FnY0CZZaro%_TQIv**Qq!j>`V>i67-0#0ntglK<#Mf6v^Wm5&>P0g4Bs z*hRpTm2=LpGsG8(#Z?e+uUl17BOeb4QBFigbt%rfPPjhEQ&vsZrM{B>7Wu-x#@#!h?4hN&22IQ|0^!3DPO}f&PDq!)f-Q3Ju_79v= zzOV9Ziq_+3G3Z+yUUTmtP~L5JdCW$q*TVUPB;YraQ{-5O3CPb7?Sm*O3gf1 z&XfEu%0}N<{h0OM4B;^;@;sm@?!x6M=w1a6{psLJ^xqNOFq)8b4*j_R?h)QII>*0n z@c2FbKNdzi4fiwB{7jyNNhYq-S4T96L+@2_oqWc7?~_zVQf(cYG8#onUmWm2Y8T5j zU@e_wD&$41Mhq2A1-%W#q_f%&4S_o6oT<$@-)ur-E z*P)_^MbC6WR=kDR{wQp*#^z*T^2{ziQjYYxO#P74+~4aA zFaCsgS0&u%JP1z6G&5JE_>#y4twOV((Sk%GYGv~XjPtbS_hGSxh-THlxjapb)Krwc z!8>BQ#t{2g-p>sn_{FNRtsq|4g)XS&yMZx5!^2$-U5ECP8~tK`d7qwg5Pno}jNOc+ zo~ec=J_!z##5C3hRlG>4*ff^P5Lol!=wF$nR?N124ViLJmBuu9DlUzvcc z@%)zxO}}2eHye_wAToZ5&k;^8XNdD$Q$mN2S*KDm>=M5jV=L_gzDiQs@91$3({o-6 zzd$QFq09Z;y;b(_sGU@jXI)Kl=*wGWiu+vFkp|j@@bfwJ!$i&<_oVWxBB0cs5{7q9Si$T{9%+rOshH$bLKK0q|D|7Lk&21b+zITh-R(F6l%>(gf zXb0WmGAbz6=Qa;{y_TUqSEQT01qVrFRL3S=<`m8$l~NqbwP=q_f3)$Ml@f1+ulWl$ zHSC@LQkZ(<`WXBcO{$wv`5``35m8jxqQ}&Ut1f`(CI=?!5DBN>ukn-vLV@9_@`a#l z12=*MN~p#tc_hmRJE~1osu&f&cSpL{@mhyMhMF7j!ofj*0Dkq4=IeiE!25dc;m`5! z>ukGs(Du#bCcf7DR~4r?T?yJmNMqGCF^O0EgqiR~_x%$-*f~&j-{mg2^_2G6JVETr z4X{S&Gt1xH(jtjIVn!Trwl1zzCA~grZ^Gg{)y=Q!sBf#r3~kSUu(FQzV29<&oNcIR z+xOvXRUf=xbxlRwo3+JL&0T+n!0p@zwGUIWYMPp6zs?igO;chO@`QM~eObJ$y(z#2 zZhPBWg^J52wPs5ksNAU~0RPdjowvvP=-WCx(A<|$4}z|%QYzEFm~=eahpY;*f3L>K z1VQ+xv@*CfzS6^gG@|A?M*j7~MS9Dq?%}(T5FBjvLGI-(L z**S^A8crX#uS%kD8GdQDr;Ic-cSd1~JJ>K-BT<+;(%8RE=jEzuZrkP$I|P{rYiqL( z?zFc;PL|v>?ZN^!k+Z5P=MB3fdMa2=Q!@$`3sKgxhP}s?kR9a5gNuW4a8h4a!v{Ug zI<=PBVD~2Y`beM0Ji%2OW({%2x)v8S%A#N(Q%#&ThFiVw+WuSxt#ov3fcxx)M;V>H zIC(6d(i7sf*_@*0kXDTswvZd1gRqS%Bd5$J=4#LKKs<@o0y%1`xD8jRC@p)7+Hz?( zRvQ)w!SgyVgD;w_bq1Pr*0z+*^qK3`GbpwbzUq%56Ih=%JmHVhr{3YUCm|1aSzm zFWjGY_hR{RZLP{}Xy7U}r1HG81TJTLVw$c8^62BRm$D{Ch6jCwjV-r}GjmpTvUm%r7Xr5h$)a93YKQxF!(XC;_> z^o7k)z8xJ{p#*`W3t-{{@N)6T*($#^LVe7buXAxXtb|d?0;vL|WFmS)w;ZoJtjRJ# z?Fni2`+2`CbTdI1wj%0a0y-hP6ptvX|4_F)PeJ#eG`7S zwLT*wj_YNos<_fv)M5O|HEWT>;fdhg z=df~eN1EEqQ?04yQRH_zZncWx{w@?LZ8gr;IIj5cL<099q`1&UxF(cj1~3da5H4`#8vuI zgT2k^aI~}gFwo8U*p|Z+oF#HjIPy4}k5Rk)8%xi!^#&JD?KFkBnOhju_fn_6@iSX*GN}wm+uDs>yA!Nr(dC_x9&&G z+sL9D!)mEFy_Co%&}JqPl*|g-%0jBg)9bgbjQD{76!=Do7j8oijWAgw>AzcS3=`&Jtq?b za1mI`mwOeAO{JfrenQ4S*l(W2Ed8$Yp0-zPwp8`XgT7vAhc~gu2d^^yEK|BQUSg7B z0yTWXh6$|5%}YgU0xn?!rv%diT~NiLK#w6bqnq#pfrC-UBT6ea=@cDbLFI_3<-ni5 z;42}ysPyTWvIoT7)AzLPEjmNm?zFe{88GVa-L0*iW+!d^nRy%| z4oE~oFTd9pNp@>f`BwT%Bqo!84A0!}z+@UcKUnlrtyd# z;EjfwX8v8^p5Iv$plx12~`{Z@-@#k1j&@;lo>Ryjr$Xi=*ZW)TrYT$M8XWv4eZWMPYi zG1Wv+t#ZaUU35k8d9NzqXpaWM^|U0zRVEV?ud0*fKC!Z_uGT9|;1tewsVSo7Qi0?A z5jP8_Ph@eF4@wBoKEuK20p_s?cEvt@+>0yNBKeFVTb?gCLlcRZBVXvyFOq1~oeD*z zPsNlyAnYD(WkGLDZG>Q3uaROvHF|BR?!Bf2vgN~YF1U#f`m(e02}$YoHvSm)59zGn z63nOkbQ!X5!k$Fkt5gLz3A~5FA$dCdOu5R>t;M++Y=U>h&wTNb=EsAE^!#6+ptM^( z2J`~CS72RkKtZ5Bcd+R$B!uY9DV-at#*v~btYboYdA=1znAIcyq<38Zps5Ef2}c|T z`tGI&x__-gm&^vBPeq!lxR*LAbxoG^wiV^_%eJZjs<@(Qu)C%q9Z`kY zBH$>Vc>fp_dGs5Oc(MhCJ~j(2lx_5F`{PLlXp+Fr528xtA^LZCj(O2gCyp`Cm&j&& z2=lbbgEs=^hRDd{PvQ8tN7Ycb?!s{=PMjH6or+RJR;^GeN&C^XMTmDIMM3J=`VBEo z`3dOv1%lj5-$mq#fDl_5X-L;}rw7C5vG@0>Blo>V6F)x#Lm!@m-dmswuxs&dCY$7K z{|?0AJg_u&R`a8nbr_Y)&+d;4BIP}b_I&LpkJv2Tl7Vp)$=PoJn+5&XV4j}3-y(%BgppH7SfluvS?8S%Z!l?L9F%&1u zbPIwg94!lsBY4l%A!V-z&Y4(c^$x0d1>O^yfUxQ*{yJztywdl7>sXW$oLfvNv zGcjj9%fh1n7@1jViB}h)t4E1Dk;3o;^oeDbl_JuEJ=OJ1JcoU*(OwxW@f@R9n1YsX z6nKK2Bu9{|C`3+#I?qJ_gBn<~uBxnvf*_RP>1vd%48#H2V+US6nrW~W{ z-(8PgKhJ6v?oK~#1?%chkkP6rQIT}EUw!tA)4YAs3+aYpa<9HI(ix|JD+53_7n@3& zszTKp_rIKD1@r-mLpK4v5Y(|hu;~ftdnP#7{MZ>)dttn|M1_GG?%ljmha#LMl4jv= z%I{Heqa?xb{}ZV`bB~9Lif;sz9m#LEJ%n{Fh@DZh7sllzsR{$t-~VvF4uwCdM>SaCTNvVZcQM3|KcY$hhOtiW=WI(>OXm9F zReXAo{rt7PJN1fT`bQlt0WX)(2rD>s?;kFEyw?R?8vTAqrN0ktxW>t(UB;K%Ox_qY zQi-H_RKM9{}Ct%5sz&}6=WEW?EWrLY*+mMJKz#k>S67q|v zKjDS4OEPS)K$!nNpd&v7mvV|OXSk>>nW8HhR<$+rCJ1DUr(*9rx1{)A8I*F<_;y7I zJY-#6FMZ6Tp14X*EpF$maRqw#UbK!zFNOj!&JFcUz$Wz8 z^F-R?$n&WAj(0L^k&H1Kr>V2-OW2}fFB301y!0n;t^ zm)-l_2i)Y>%M z#xfG4V>erK_2mVVuS7*wZx((ZT4lnC5$6VEF84mR72NWlYEzt zRo{|lKH&TsCA}K-c^vVcTaQUl$blNrk+$2u{DCF?{yS(daoVeEDb&sy7dRILe{vvy z@!B0M3x9!qbP!2c-GtFC^HKQcnn1XEw=DO6oxi2p+1iiZ&4SB2icg@Gs#a9p!enBg zAPwJXF9V94tc(N7mO8Upose$&$h!?a2e`(@FfSU;Fn?7<10*fF)(I@Q<-9kFZhK9e zalf68Y-8`;@st9&@rO+yv4r{y*?kD(HqBt%CoyhLs8OnG?YnlBke~uT(zG9J0)hE= z1X%o|PM~^UIL1?I3T$MNQZcD(<_SCcDyoaXzM4|yuELYXIKe-1iPalQX_54h=E|Uq z>$Mr(NfGsbxFhN9-%ojraib$gO>+ z6ZTD?B2s$Y6>d@QRaK`OO--5T`)UdcYyIzW9l1JGBi5PPHC9Jyw_m`-MPnF3@=vs# zOI{dphpvKS-?;!oV9KeDBX=<5k8f+?!J7g6Yx$c%u>Vtp9X%N=(pPRQ(a z%pl=9z56h#@a>6;>i38H6rO7O5HxR%3~Dq`f3uA|t%ZzmyB{8__*8OBRU$QwAu*OggLaIcztTd#1huPf#Li_*TnFgCG?PRFc_{A@}Uj5L&wT3P)0@`i9L=U*FImiLlx49H_~w$<1GuS1WZb zV`B!w^mw>^x%SAzM^Q}i^G$sJhcZ2dy;COUDLVDM?)ozLIuK`IZ6HX`Mg=nkmGm6Fr$NJt59U-{Z zr&%5A?5A+@rlu(Y1X}$Rmaybbvty6@v18x^s&^;!+-k;XK9jrt&y~wu6@?*Q8I>udR#ltNPBvR7CM^K_9Qka4uu=}6sZ?mLc>F|NvWjWzMIAM>e zIc5Mr7P1p|9A5k6c?HDVAl*a8fXza3z&?Q2zSO0NID#tDO+B^g5n`qEplrChZdl`T z4{NIGfqH1J_<8up3YX-nekv?m@c&=K?`15s6PZK9HgxCF zQu#?(#n7`cN8r9fV{kqbEb?`_*!%orI}c)=HbydUG-nNbp1)kgLV^AJCUe1pKw!6eJ-d~m4OVWmo3W=9 za-_Gt8megpeZD{ATix#lR+^Kg#o*eJb(3TC;2$q*VIFUSVf$PNU_q5g>Q#_V zN8CC>RBB_j3cbLNQF)HC%*NkFVX&bDikYWr^_KjekPvSu)?;-4+8O_EXapf%V5k-U z){~yn+AABh(mGkMnGB$6CX?b;T8F}`t()pJlhgpsWJ>&M>ry4uE37D$c7cGTvpmu# zcG#DQV-ZP*%_{CJi}r|p9!;DMSQt^ckQ_1Ds@SGLr~SDq!iKkqV*KR92LxFJt41P( zS8J+tXD@~65cbQ`^26a$lB&~6#FC+dkRm=E5W1Qnii|~j#SqlvCF-;SqAvY=Mm>^h z_-Xy`bZkt5T%Aonl@YapEQ-Cff;fevEr!P@b;Dh?m%}f|mZNBMYYoefyG(n#OkWN+ z9Jk-8&*|bnYbe@kAl+sxc){0WhqCgL%gU-d+yfTorGwxX+lyfV%lP?xxykLT^96bT zR_6;;p01^HN;#v|qxGfrboDh40-;82H?>`$_c)C_D=p6YNBNB%=6Hl^#Y+-J!Yt-h z)KMt9fl5MpnL#1cgg#jNj#J9X<*+&AYU?DsKDWNK{vGaygns0f#*?YlHy09@-j-y2Qxl{_&6tL4y!I~b%ztNse4-hSlQ{J*uU_Z&vXIFJ z7~(O5y(W@r1KzZ$cyDSbe5)FK6$It-bOJ_IlApFlqaDtj9?0bSaYF4d==Y6(hyaiKB(-+Zu5#0 zqhqywS2n^N^I!Qt}lNK2e{aUvFySacANOJdu(YGclIL5_EHL*&qeW)M2Psz##uNy(`HVXJ&O_LDhc7>?iY^2!I4 zvG{9$aIngA+SwkCYgd=>j=D!UQgG3dJw#YX=L0I%l;oVxDBWAUavd}d-KO*SDHFCbG!1$OTv%J=>63k)Obi-!|Rdw9NOYgtOSpL zv_?cXvGkLAcN``5RTbR>H$itxKgYUzo`CUf3wr7&#_L+~Yj^#XCN%vz-~3)v+q$aK zB>`UuHxpUyy(Rl-g{Y)iA+9IZT_#s#9l5`a-)ZGtpuZbJuPj_-``@8yZthNL)p;NE zSLeUKw6Rthrlsu1^uIVbAPUU>Z{~l3x~8}F zuhWfy|0?}*;aIbvrrEwIq7w8swP5P$8MsFM<@FZyVlSoxAHN%eBD0(NP&(T^b zA=mdD=SxI`v@Ud<@RgJMEHncv1GW)GoN@3(u*jPm6MY!!CKt?UKJ>G?*u^ z6C-sMlJRm(Z8qw^PueBiHs;M0Z)S)yGn^J9B%1&K)qf#&=U|P@o zc**o0z-1=QBH7IbT#6zvJpnC;rIrmyFY$;kKiMfJaFIDc7y-DF(C!3Gn#XHuQshyQ zvADpUCm!+KP5`nEmU#Zg0I~rhCYBbq$Wv+*{wHQP9UuSFcwq zIItI5_jY%?s~VyQM3f{iuc;Y`FCX!`S8|K%32muOs%A;4$WKKYj~cR0td^C`Y?fW@ zcXq)it`2T2F3#zu!A*}6Ioaxw9kgX4l&qE1s{_169W}pIwKW{L$h)C)m&H$d+{?6j zs4`ynQs~H9QEo6HaFlGZxD2UsYtN$SW9g*&>LOa9bT5DF279ztiH4^kvi(=Y)^O~3 zhHc56bzj8_On3!%Ta_%>LO-&Xg2a1kCHR2#4IajML2LVm=p>nbcdqXs@a0nUDc7wQ9U$dpy5GrpJ5Wu~P#eI@!U^T_RVq+Phdi0kl$}O*vS7^C z;^t;!gvZgAf}0EL#bXR}3?2*6!UAfQk&fKoE;>vxoVxWS7lK z+y?>o-KY7ax2}U(w-r$MTl?M$P{Lvo=pgQw-=k4PC*4`T`M&7~h>d*c1mjpMe(9)L zk~nx*X>%#x6Vn-Ml2h`bojjK>H`Ok3Vl{ zV!~!feGjeN3hGtkN{yZrv@Cp+bKw4kiC)OigUP5mj_&BD5m8w{Q9ZyylG!@isuIki z!#1taI1l-1w>U=g^)HTg8 zXQ{dX#;|(7cfR_==A;^+VPS6GD{1jCm2u|D;XuBG$gu=frqwX4?E)$xwo74cNMFzxAFdJl$4|xHEo^AFxAdPEx@hH5yW4q(-Y+hTe(SMmGZzb zOr@~!2JTE5Ul&SA22h`>YkQx6dBV_mhrvb2MDUU3arT9<4+ra$HYr=&1YO(M7hJIs z;boPp1a4>IIV&{F4=T7u!=ofNu_`y9B3`-Bl;#$Pp`!RG%GI0}`OJ-0Qo|cJU1`HyXpKCRQ;~yaM~QR=M)R|xOfbU& zD|pyohXc-)m!kc%drNTO*Vpua7Sgv$-K<4+IMVe~^Wwc$MBnO&#WG0+0F9kFFu}E@ zLC-X-Nfnz_CBOFH1b5FC^!K@?Moucsso;`I@c>m+(nbYE6jMem?JH5MR&=1*vCD!QkDw#jeiGup5F*F z*s)&%Dqo{3zVM@U;KCk{pMbTO|FwGn_}pvf$P2ePnHybDvrhU)I&4T|w-&!Y6i-EA z;i)DmbsBF;xUG=TgHPZ7L;>Q`54YaSU2Gw?Ta9YUZRcu=9HWzj6~mg+0H;2bde*uP zo3@Lr0m6S`1wI}kDil45Z9uKlI1IN12|hDku&O{^C=8mv|(lL=bfo-4fyAC7BtgIZB{nqih;X3+s!I#tMyLS|Ya zp{oPh2NRi~+i^@lp$%#&4BaWh6#@XTc6>J?2txE6ZE8qPtbnL{I3vC#I!hJ_J3wjO z$s)ot>#i3^SOfjUU@xOHww}T1Y!Ao^E6ed9+8gm`l3H$R~o{om+w>T>+bY z#8V5goF>W`bOwgx=t(OSVJF; zSASqjNoJ-M5dq#ZAKmd@zK_xBz5 z#l$tf6bSh9eYGS9qy1*DU zcy6zyUy)mZvDO>REm!!*dA_8NiVQ*;;nifMgeZ8c4Ys=W{4`Uc6}1)u79ANmF{ITz zlC_1pBL%jMpuR%UD>(RbyruEWJ0K}J;W(4CN>Gkz(%{DRH23zFr-@Cx6;q$jJ+&3u z7#`A15l~{%c`pYioZaP-%-xQW*^5di3>b{%z297*n#1n4njKvBK#)`<%~C}7QU$GqnCz`QQI!@g&j$h>5DRw;*g05&krc)- zvMC1n!)KQoxU*m@fhtD{c4u2L`qb~SyCRtxpvBjsPv`F9#q4GVm~Z7JOaOfev*p%3 zgSuON@DpLmQY9xttw4bs3Znl*q9Z)pKrO|9nBH=hC}J%)o&&uNJdv@qR-CpNg~Upn zn9tonly%Blg}|D8qz`y#p@ zBUDj*Rc|ZhdL4voECI9B04g0RRn5&3&YSq6`?qg(O!Q>admKVgelF5(+pf^RRt8DLzuD zgN&ONC24gj5=MXLK82%1N{IlPWT#lE3W6-Rq6I~)#jZv`+l~Qo!QCziB4z1bQA5*M zrqT*SbWPq>1qZq_De(p53+V?$N$SZB!jv!*8_jBHR4-WZKgp{F_Rg-DYLpfWgHrFa#L*NJG6WP(w-&G!`~yq%fr8EbiYHcI|l1 zas8XY`w7a0G|-O**VCZ$hGv@@G8{R-5bdweUxIz+2J?D%_0284E#Os}sGZB$i}3sbw|8YS(W_rCUcPf zXTmy$0I{`tD>CfpmRtZ(=Nc17XvWxZHNBtab@di9JpQm5j}fRjty-?gf_;R;+{2}) ze+hxwR!%lT1aVR-Z>H!_aHF!zAU4zC!rx^c-uZ>?1>TX0Qn=5dF7k3Vb7bRiVvany zm@8wx+~m0-vCA7&Cd|grhGQ8w9F+xu$aEhk#G@^68W`wWlia_of;yNLt3ymYTrNTL z*%-u#vk}D4v+J&}CsdK`+|05b9Wu|gP6mf=@hXHzrwpf5Q-_O0>o!st=3?Tc*NQuKU?xd5+2~NaFaO3V$Ct?p$ z_*g$T8yt!*e@I5KVm>B7B86FYT;u4)@L&)|TArM4Z-Hi>G?{{fxsOCLw)$9m3V4O9 zOhM0dVT|XR0s_O+k6e#+hFQAwlJ*#OVG)BO8Y;6Ub5g=9`R8bsA=TeNUeV3PddpT^ zKia8Bm~0n-R!<+GDEAF=_5ZygkoAn#F{XlNNMxxtV z!rqg$q1SmQnJSZ&f)P70%)uq=I?CnidO6EMA`njYT$Ru6JeUHrce1HE?Hf%{_3_ z5`d5J?PWk;xj6z@)?jS<$b|FBfgyO4hINSTTtYYmFg7|VA%Wh2FTWrm{BG-}p}e!# zolHb3+!Y1~AnXeTO1|q-aWNp_>~5Wa*I(81 z30X+NH$CXuMdlM5bY0k&;Um4KPvjA^MnG3&-T<@>$d@L%VZB;TXXgtY_B2JFeeZWM z4t2!frqdy{U0?jNc>mU)!66SX(p&l*9M6`I(zBk8i#L^jwy>+Gc`d zq+wqM_c2XU`Pa`leD;|FJAIK+(X#}`$Y-zuTd`0$8UbKis@#60D{B|?MLHP=FOK+^ zLvIwSFOLC_#;U|f@F*e$O{k>Y8nkairyQb(p;@?QZo1cX)A%%B-e6mceXN6K zWqT$?3uq4)ZyTjiGn<3t55@3cP2M z;Neqf$VLsbrK4L?VapYhe5ycUm)50G?GR;?Wax4+COrg)8Rd|i^=MGP;+t5ikJLIO zrb-I|2AjgAEltT-P7UmOUEAL=OjP#XkbSM?felBTLOZVwQQGJ-AmzX*4?PEX1^dKN zoGnE? zY0Hr3hvS!pLAe)0<`^#BCA+@WgcS_9BnN@hF7t!I@wk! zh$#gNpKfk-r4(ybCHb0fDXy$u@0&{-dUa_HN;AIOw@c9wP*=6!!rY*tSTu2kbr~T0;dmB zXFLe@yyAE@f1mZuu7BWYgB807&tVqalp;*^qi0RgK@S5>a_kI1nGjkji`8Qn{psgP zqBJ|^JX)V;V89bN+5)({Bp}Q4eha6rl5#ul1j$(z3jKTh0iWm|gneJM2uky_IPwt` zozE_o3Tja`Lw`!3TMuA-Lr=F;7RP1PYT^6KWdtx<M^JCh9IadHo%?ad_SMv!q;dA~u6Nwtr%2zmq%C4zmq)(~PeuBZ=~K$3q1 zlLKx9D>#$5oB*wGXtvbjbvHkkWAh)u-|@vCDI(Qg(z5arw7q7mS|=ysRR>uSPvo?q zf~zy4%^DL~yw*WcV=f2T6iP-n+c>zA5|pa2ccd`nwgUiuJO=ff=N;zOKuF@& zrzw*hY2AobCh;>Cc0|n*w1QVa*J^NjBG~uSfv~#pwodHU`B6n;2ojFRZp@yT@NBVF z-Mf^@bPS+yzT~1xkraKP#qjlqk*LnD3usY@{gJ)wJl4P`1e)6GQFP{=?m?cCDGBMO z&WEz2K)9On@Ll_&OyIEf<%DWN4hzRJ)jD|JreWnpe}_O99hV}M+o_D-SITMEjE8+j{G*J0j9xh!Qx(F?T2$5Bbw<&davq`FI_ zRPhE@JhUtR3Z~6f&+Pqk*>m!_k*9&|;7L@7!+ZBPw^>&B@`cEQAtQd7OfgE1E{dE# z_;oH*?Jh@Fnd^q3m-;j;$p`8TMaNSZJ)n=)O9iW14mlydp0P`4N>hmA0pOB`x;Yj@ zhW_cklP^7{r4`LYsl&6-n zVNAh|q)*RbWs5S{1IeTPUGfI*tBCV`$Q?Xy9+n?`Q4~ z9cW9wsWl0+Cml!)(Ej5sv7J&`Ft|q;TwARc9NWcxlH2W*G z@Wm;{q+FXXHwe1vQ7gv4q{~rs9(ZNnWOlV&R3w&4h=Z&tnS6mK5<8U<%5geMASPjg za-r*n$A(8o!Bli8uSFJIK0(xWFTlf&1sSz+SsHsY${=0iAr};yXb)lQryy&Hs|s%N zpyu$?hPhiH(Z;I?!!^`OK9u7aV^{%ZpcUyMjlgCren{gOglIb>II&f0=NJ%^?aRMg zc0?+kDiiDk4zI*jso=8Y?ORc+f>>?|qPC~=&PQY)eFpuMDEqx8$uP##DHwrQa^bqH zn}JMwe%5zLt?YLOC;?5-EyjC#fJ(B{X4#IEWdqd=dq_c-t8`tYi3iB7tmAEqFux&l07*gkUP zT=VDxP5;40Ns#qeF$<%2 zB8QX%)aY#xv$xc6G1hN(LHEJb;Y7=2P%kvAqOyN+|HE0&na%v0T+20q=Y8EsE2Ds7 z5|$n^Ko%y6e!o<+P-!K0@nFyu_eX)Sb`4MJpiO_LK4Og|a*NR|jb3IcLo&WcrQX9T zUm*nkF#{>a9#18{+%*O`*&r7~e%p_%=ZG~>Su%D+n;?Vc8VBhHeBDLi>srYAHo2y% z6Z6|pGxu607(x#5Z^n_bR=zZ$m!zBX1f0#biUC}+$W1893BQla?))gG&fOLiXPzf) zjx&I5i~JY4%U}ngy=bC?>~32(1(^BvEzi#bCp1pT1Bc`0hAwqEoqxZ{z)I)L3b>~0abE-3n1`{61y1~cj= zu2`hpMa)GqQLcHGk=wGtYB8#@fUewSsVf7&tJ9X+5qEv$77)X7vi>(Bq|bA;KcUM( z-0<5&x4j0ea6IzrS(;3%un-1JPqMYavhQgs8NlroW6&AHe;2`i^=Nu|%0XyTw$KTo z91vMH&}kmrsn&GEGNMdfp%4nlq`D3Edg|sL3<{}LGRPzS zZr@3tSxDMhjkFn!QhI30tz&UC|>8#b z`D636zr7Xh;Z4T=g7VU_2}jzb6G*-7xo3#71Xol2Ec*6LDB#G!k$YRvTmn!$+_NF_ zJW!9V92}bq1-Dj+z-x_?gkwv)?sgHkb$M~>J@O54A@Mie&C zBbK2(Pwl(<09Mwb$=(YhI#&l5{m<@KcIA8$h5*KccY{oypMg5gk!HrEt}k!$gTir_ zCs*7Qusz73H1ADr@w+E>TJuD2Uwh+W`fgJOS*A1QB^BXkd!CCiKKfU6~&`46|fg2a3n2@N^~By zrzA0&mlQ!D$D&~XwZjEW4$b2i0UYqmuqP)5YRUaY713pvkl3Y;1n8)2UwKT0hoa~9 zI)W+1qo>M$ZZqB)J0$cxN4nddX(_!go8jPgEs?y1y9U*M=_lK5=mD`L@_B~YY^sl= zW|J(?09()J^Z7y@M{D?jIeP}riW4d1n0hb(B#?KaZQVqy0UB3G04a);hIkP`!tvvX zMrx={*bAJuCLX}u-qZtU2mlJ$gG_(&_tX* zo2g_qlGw^}q?Lso0Y89y(KYTvPApmU98cg8_+gd8wJR z#b`b^o4DpW)H2^WA^(~_pt9&dzx8#;;%ntchs>JldZ)(^ionGEd9_ZzFk~r zPoUGiD8Tn+)uvwTFCultk<=Kt+WtikJN?B_=;nT%$(AMpj3tVKO2dHA2%QS%N4{Mx zBDAM>PR@b1Uv%$aIMR6gnIqQWQvj5rl!o=PS`iZu9Io$PJbh|?Sy3aCnm`~{7vjM6 z0}n@`4oFGM%aMklTh;H9GB*Or!5x2)zu5kP?G?Af7 zKEs*O9#+_+6(YhXMIy@%krNePBej6&)Qlw;EmqgNq9^4RHoU zVK(>Dw3na&7)Ai)#I>j_f?^DM<28UPNd4y}h!G7ayGw)p>6(;y4H;8YENmrYUO7rJ zg|$9OP&AB937e|m3pn_7?d;1^%v@-we9W+-^$SNYj^n(p&Y9nWBW2`IMvgeyCb#r* z)7Sw!Fg|z3h{C?@9v3|Xj{j_;$i3oLk7odV5XCIlQMO$SkU#2Uphr%u;!jr>F8Vw1 z0Pz%iVFPCDQG)%6BcHE?M%YUmwJHDgHPv51XomQt#^b+Zr>Cq zAAv>pT7@BUZE)w#qccvxZ^m~ai0%+(zj53+gW2{|CeGas;-T)BBrm@B;_cO9GcfWk zpMJ^!vCirY6Zir5hmNUMbh-Bj+ynKsoxq1gA-2)f)X+_EZ}= z0})Dg{Kd7Y4CRL(yzArXeLufFvEqF%XE=&QCU+lqXF1}0>* zznEvS7jkwb$B9#|+(v2}9@f^-ntQWc%2R})B_8q2^|ijpxJ?PE)xSO*TLx53 zF4#S4lH5&bX5sqik}F)eh=*8oTJZwbM^y>%cZ?8PIHWG?cLy{~UBERNW<15v|6yYlVY5t`@VwO*FeT)N z66eU6dX{bU$@r>(D!=vnhcx&(>>!*A5)%G1LYy{)cC{~EYb(uHeP9=)i7awT z@f~3RVfD`d5Pna-ykHv2Po%ZIz#~@T-(>B{GFtoUJ0`W7gH&ygnhk7iJ;*Rnns8d? zj<&>wJ2y}w7t~oluac!{Uw=3q4QGRTk;HLN&Fk&mP`lxJrumn|+^T>55gZQJ*CqP> z@a(C0_xZ@Un#m~BL|*1*dbS31ifXFL<(%hK1v}fZ3rWg?A#V+HyInL+P0nJol4zeq z5rpHCC5UC@Z##(*qupAxEFBCrEbeJaWm49#FiqA7FR2TxhOROcAH!DuknBHyy?AH; zh4AqIDArl(34mArYkda*?|egVf1OCJ3i4IG8xsH!zyf)+l_?MA|07nBkoW)SV#MNv zZXZFZ*&Y+8p6G|nBiuW|s%B1|?laKy7D-&!y_-0{dXMnxy^3F$2x)y-OB#JP$iwhY zNknDB>UwhrN#O(0mh}oacGl+^Y0vNCxnG=Zk#)NDUuT1Lv%dvX^yO5^;T{vHsh(<@ zUOUNj7aNqYRhnhsJf0DO_|N%D%k4Ybj}&I`!|ubMzZ0Qf>2Q|6kzN$6Yw&aCv3bu% zI;M!-;1Ai#B+QCwE|+=9tf<3l63#@_&kxfNowj_2m9g|NB@jhd!V74M=6~cf@@V)= zSyO?j)va$l21>5owx;8pBk2j6NO;4X#Ak&2OrIj2e>@S;OFHJO6T@WGbmb#*-}t$w zA^|NU)dzu?aQ_+dyxux3xL$K>=&GgX8cIv{|DH=1jqfOdINBgT%vPiAP54IjlJN_g zHIJ1uuZ&p}v)TqNbmPRz=kQ`hUlP_ngt3olbqwbs)UBHxYV~{ZvC2^iFGGlKNMmycW%0r3zD#Kr&1e5v0n0kHqMeeSzQW=|w)Z~6=673;pHs_C zD}Uab^BhI3FtuO&O^W+o8NW1iyTMBDJd6rbSY zm8W0Sw!HUOVGAFcZL)3_aR`BTbHB_+_6$qkkWwG>P>Lv8p?gKN{Y(BUf!~PoaQj_t z{PTA+)cYwOs{h8iU3C=<*DwNVF?B-THZ`2ZeY*0!A^z%Qv;p1Js#v6USH*F1jr1n* z*+3gf3^)hS;T$8=?KJfUU7+#P8GMub%K0y$U9G&mqS-F8h@F+QpbyN0%&q-w*+OO` zp(ES7t(3}MAM_&V`b@KA38?U;%%K345c(}*qU=fqfj;r(zEIo~^%S^M1usFz2agd| z3kg&ZD(O`FwLi(5{^;Bql$zOdndWRudA@wf&)f3p7R@vtVx7U+ zPr{{+Ok7Cbw#JBu5_w96Bk4HjrRhROtcYzVzn#svm7v*TF)z4!DLX;xeUzG*rN!V3 zCzVqqYTIflLkc=6^vk3#!IsqSiT!@wf<`);_-u7n0@}bCfDYq{Nq(1c)p8K)ExXQO zA>5ww8Fa0aMp%vYgfb-#F0uywtpD{k2mZ95fORMT85W2xmdYJbvp5xZ;Cixu1&j)O zj%D+@7u+XxKX)h2brjJYqQJT87{}7Abpf9q@0lpam-zwQ7A> z-ES1O`7+L)Q?k*Lo%N&l?JaBm_y$-W&fmpU4{ZX5j{*{v1Q2c zNs1?8#}J#PqRbWUKCjw=dBff_*7y=Umyk5H*(IJWiF`Tl%aV~g!iAxozuK~(k2ZFlLo$dNzDuGvA8Bg%vSW0#BGM} zVwg(Cgb=(}NaT9_Eb&8PyjaGZs85aK)yj94bVudd6yLRSOr8Hxw*BX%c^JN_$OC9er9?@X9M&~$6L-Uz0EPe%sJY^ z@tPRpEYDu$4vO!~Y10Zu)-Waz$X3mVtvr^zn0W3@8Ey(KTiI}Ym9(`;7K{y#M24r z%r8ssqjJwp{OirG0qbo(;ceCK`TE3mQk^54ESKLj1d0(#h!{i&K_S>upg+H?9tEZ6 z(|<&Pg_t}k_ALmwTYX-l1S|Um$C4qMG z*WhITO?9+5g2zTgQ%4kvyp~cpCt+T$=@CnH0nzYl+8^+N@I3RxZGeAjbXFEj(0SlH zKuvOkBi6#zyaDtTOVRwqkY+Hfp-PB|f+)qic^8(Z29)-`2$sax&MzGX4i>bd8=^K; z9gF}kz*|B@ zYRp@MCgN)S;2VamHq$T)e(`lfc^la@|gciadS7huw32&{o$IkKxh!b+@U33^G;IOdotHsWrxdA0Vbu z`M&?7MHP?(;WYI+8-)9loF@%BR#n+6RQoR6nzga{dmuil}< zgmordnrWp?m?Y=Y)z14&ZThup%#X`wq^W9FHU32@z=dpG%uZGIzUJUkj$YHt=bVec z$bxbej5h7YJt6sM1~=U&)B*}rEL3$tY6^}9ICbiS62WHG#Xy{%9pZ{Fp~R9(j%7|M zc9mLM>2?eAQn-jR$}Fqwa>^}FWcd|%P@!)XRa}YiwC!?HRaB`wJrJVRSLbr|`o?i3 zZoC?5jITXqJFzvTv=OBkv5D%avo3MsJ+Ip__$k|kvImC*+#aPIppIlE{?mhVsKXs; zQ2&NH+OdvzqLT)6N7CxeOPgCK(!=hTUeL+?C4hOZU3pgB~_34U0Nk=^B)_U}TF%wdCy@&WKzxa>;B2 zS?vP%Ww$1W-4(=WxyJO}uja3`U;WlBx%}4F_RlZ0HRhrhv)IKgehEul(vrto3RX2EeHn1FZDfU&%Q34qFInl> zY*l+zgR0LaY-qLC=bVVXWakO1woC21D;wX{O>A=4c75VWc4JeR z)pl?1&hGA>XSK$o&52go5}iKT(>>esy>P8=|F8CXZ}yh%rffn0Fv`gOU3(@=T6f8+ z)mHTSL`f!R8Hwo8YxWPJn#>lft)0Dtqui_^_N}qgt?0@PTJ^bk^5V@0g)cw;r~(9X zv0yYILeYf@7eQye|0qn+V#JCQ4`^LI8B2;(Y0_nYuK?1T&y{y}D6q7?mw8N0w@b2G zf0L@!fWQza430pe&=@R^!c-JVE2^~pZ>Gs&bGSUdKqwMRq%yfesZwjSI=#VYGFz;y zZRWVfuiDKA=%LR9Jd2~YqFw;h`?2w;FACFH?&(1F{uPV6J>zdB`4X~!q zESj2W!Ra8bCC{tmw0v%*r{HuvbvVZyEfOmz5ZZ08c(L7 zOs;@n1jUp%p;Bw?aTGT}X_LE$*&+(eaNS+ETs6}TNp8F5j+_361@g4o>_U-PB9+M% zN|oA3W2`mNnVJc&{s?<3C)NfVTRVH~o2;C?f?|6M30pWZoaT0Q;G`dJyDTf8idRcZ zS@nu{o@K=5ipZN(NI=dD<ovBjNyVAJs zcp>_4MwC*Y@CuU_TUL+7BD?1a@BSkZ^IdNQlZ==CA`=^y)O|lWwigu!lZFgTbV_t%0TtgMG?mTn3!ac;7nbiiZ7tImd!oB8(KS31zs9-~TeF<}j-E zkGCC8>PrKLD_m}66|K@dEt;|q?nI0$EsKn{4(=Qe10i`2IBw}ZAlfn=Q#SjUnNUX( zBu&VW(SuJ!+JvS%4l+PEFK}nxy%+wTC+@iu&Lx`($Wp{uAeP!Y06WD#uyj@A6qH8V9jIvz`!(=kyM}Q)>6s;v zonxMilshs&mtb_?2SWx_o}63i{v?R|v&or`CPgjLoEemJ(A{K1%c}ElzhCVxcl}`< zq&MXjgxK>fw&wS;|72d+)|2Z=0p7Sh#e+Y&BV>zbjV;YI2&|vvhBm zh0W$?%wH&IOrM!dh?vFU=lysO2*Ju@IZnX&Dg?q1Z$jk3pi2R$H4Y z^)jY9a@C;rh?NX3bZo>y;^o1qTIZx~GBt!U3w4FSF|I&p9zp70rsn@8n&;Y2Zhe~9 zJ+X$RYS)|$5!JMo%reBpTug{CE_GV%LTm_SrrmDD)DX%{yFG}hA(UBeTSo}2iex#^ z?dMyz==1x{-XzcTMO?d`+)ewq7UfibPcyClyijw}2{OV-*m4qOfv7OTAtEK!6jBpL z2qA=0N*Se;QpzZ$j4?(TV~oE$|?7c_1Oy_!xgdnhN1CT$ICEzrckudG6XfB#s5L&4K=NnZ=5I#AAu#43S& zx^-<-bjPJ+1VtVgMo`?yDc7k%!S6Gwt|?Ig4S>-B=Xneygb8H^7k|H>cMLoDo6@Ns zwNcV=)4H|j#-f92zlkZd0=M%n&Ca1{cjou0lqg)TJvn};?WwR`Jd42p!ar`jsj=~pP`r`7s=grbG zJ37Ni1taOmsIcCw)!d;d%vD5ED9`#$Ym&dz_IRrzEQh@rm#(LeJ-Tu_$7y1|ou@0WR zpA6#@wM6($KVYFHmGnc*jui$MX}3a+O>s}1s-0O)k#J(WYEpBQe%xO>09H%=AT`n+Py%n#-6o|TB+V2`zIB`{i#3p zPfsoapyv%Cj#Dz?P{J2wSwK$V*oHG>r@{q|#}& zhj1g4l6t!`I_X;W-_)=FEB*ZK^9$^1bQAX>&dB|nV&FW3({mo;bbz&NFAeJ&us} z&;K6hU+3T4U4Qy{zqsS~S=0J68}b|G1L&D0^8&o^49lD|l(C%hRkY*S5sn9^;3R{OZ8!6*5se n2w>N#{rpq2|6M2Lg63(4KFFQ*wg2jIII}-*jm&8)QK%gNBygF? literal 0 HcmV?d00001 diff --git a/_static/fonts/raleway-700.woff2.license b/_static/fonts/raleway-700.woff2.license new file mode 100644 index 00000000..fe7b9195 --- /dev/null +++ b/_static/fonts/raleway-700.woff2.license @@ -0,0 +1,2 @@ +SPDX-License-Identifier: OFL-1.1 +SPDX-FileCopyrightText: The Raleway Project Authors (impallari@gmail.com) diff --git a/_static/fonts/roboto-mono-400-italic.ttf b/_static/fonts/roboto-mono-400-italic.ttf new file mode 100644 index 0000000000000000000000000000000000000000..4ee4dc49b4574f5c189c0e2ad9ac01826757b679 GIT binary patch literal 93904 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�?D37n?91#G?aGd zI)+$v<6t{b7EoxRY(cQ#At5225(|)!P#363AQlKw7A%ku{{XQchaK$;$qrU#_y0cmrM;u6JW6SHQ|;1p=x(Aa5&)V&@; zhwLyE%kI>Bt$OErtIlhOXPRp~+ikVmtwz7q$Pe1_zDLd((A4SU^>)8-qS?I$GH|8c zvr+r#Dpl#io?P6Mi+g20I$qh!?bY`?y?(c|zuUAmWxdYI9v_dg$H$}W@$vAM%lY_Y z5i$YtmX~s*2{twz_IIt3jl*GU<*IgT)wYAMcCnhcj3&);YtK~&@rHHDSFBk`sEhSy z{YG;Kr&PCIE=+-u*w}b6JOnlujsWD=Q|s1KO0FMXw?4XVBhfjxnc8DBwa4b6J#w4L zqPfk{{kBtkY^V0vKD5W&_UO7x$+dZrJst=NptbX2f1L1>6~z?y)1<|~XR7e3~%YNHIkic{%B!wezBmnn?D^i%Z%>VSN}T zTfdlMmNqb-rkC7{9FwzYhN;=aoNP=vIZEEiHEGtV*N>YU9PNL*6pGHS&;brIwMgayzn6Yv;vNHIba{j1g8FUKnAvT9&%+#T1XV z*$t=a5TFfzc^yvg2Qgb-+ZvM zow|5tGbRi+J|FXqfhIOGWeAfskddQ8n7oY61P~_U&8JS+_xJ1LXAj0V4)EoHVN9Ig z?Mz$%H4)5&zuSTa zYX11%!9)YdX`>2JZatf}Tf-9%s%IU4)N(%lI zL^%deCFd#VWrTvhf=In}oTqi3f<{lluBTvEZ!lL@a9GxUWd)TCkVnraK`$awnc=V(QUge{ z$O{=xLK>nM4QQ0YT&Hl>9PDs-O((HsZJH4=G_Y+e1 zHR0EUPnw5$;n##;6FzAl=7nDqeogoTe<%IJb;7R+pZ?~B^fyT1lP01s`+ed2!Y6IS zyzKXd?+f1-zAyWI+3yRV{_KVHXGqyke@0*S)1T27KK&Ve*-yHPzVPYa=nJ2IjlS^d z*XYZB(p)bj&4rZx^mFuOKm8ni*-t-5U-r|_(U<-7bM$3D{TzMSPe1oU`Z=WRr(dHl zdn4gRvX_32d9$}%8hnnd8E(m~ncXEvKZexvLO(>G&x50%l^p#H(r_RRr{sA5AoZM5 z4?ItrU(@w#>eH{VUe7Q6ujE#Rx2k=X?R=r*~dziCPjEs-n&HVN++135~=2!nYBYXcfH<5vT z8F|v%$gRGFjOlxpVSNQz(+`kmeII$#7m;iI7+KRe-}(tMuOA_YdJ`GcPc4V~8ZxMH z2KEc&Vn0VN^)uyC?;x8R=Tg5yHuVkUX73_9`xdgaUn8^nCi1G^AhY@{a;o1Uw|Wbi z)pw9rjkC6IBe(iJva3HJ*Ln{*T;^DRMwa!zYk645|69Ww<2O*(u!z4E+}AVs<4|dH z4!w6#yRwXmhc8jvatC!Q8>nvi5%o7ep<1?KH4<&qNBoWoraw??^Bihz{zOg7U#S1Q zg$mFkncHL2s7ZMp^(c#|&3F*CB_E=$#G%F&)g!26eR%97{!g}3sQkExx{q_HK-n7G zMxDt;RF3|FO#1VgUy)0H0hJi=*VxCP-!c35q0IO*_(CamzE;29Ms*Bo{4qCyfpJvF Ryb2N5OvmdosFK0Ie*@7}kFNj# literal 0 HcmV?d00001 diff --git a/_static/fonts/roboto-mono-400-italic.ttf.license b/_static/fonts/roboto-mono-400-italic.ttf.license new file mode 100644 index 00000000..f6ce2d85 --- /dev/null +++ b/_static/fonts/roboto-mono-400-italic.ttf.license @@ -0,0 +1,2 @@ +SPDX-License-Identifier: Apache-2.0 +SPDX-FileCopyrightText: Christian Robertson diff --git a/_static/fonts/roboto-mono-400-italic.woff2 b/_static/fonts/roboto-mono-400-italic.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..7c0566a5ce81a4553b9295b869eeb2aaa13d860c GIT binary patch literal 44480 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�^!Cd(s_X1t1c3Mb>laQ)Xbz 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%0DxMO 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%0A!Pa9{>OV literal 0 HcmV?d00001 diff --git a/_static/fonts/roboto-mono-400-italic.woff2.license b/_static/fonts/roboto-mono-400-italic.woff2.license new file mode 100644 index 00000000..f6ce2d85 --- /dev/null +++ b/_static/fonts/roboto-mono-400-italic.woff2.license @@ -0,0 +1,2 @@ +SPDX-License-Identifier: Apache-2.0 +SPDX-FileCopyrightText: Christian Robertson diff --git a/_static/fonts/roboto-mono-400.ttf b/_static/fonts/roboto-mono-400.ttf new file mode 100644 index 0000000000000000000000000000000000000000..7c4ce36a442d14eeb12444ad707c2afa19422fd8 GIT binary patch literal 86908 zcmc$H2Y4LSweZ}TU9GydXnXHP+gIBpt+cD&Ey^00AO}3}h0mrXE7ot~Nku<|`vcJ550cO8^3~pM@ z$wFoDIRfoGCqZ!banHkbEu5hj57bpcm;S5~)POE6(C&W%2X^L4f%z zWCv&oYL~sXfRdJ4%!{I9w|hJ;H2DQ-(i;XUV*`4<8Icd7w~#`qnj4GGRco|} zK*X}CKXDdvUm>bszD5{OR+iDg4Af!?221fQ;3we6LzV_$G8T)`z>FN)ikXqaoq!*= z;w+rVahlD`nrcSOW^YkZK|xWG&ukj4ZdztGJ98%TTPiEhu2^t;v~0Fgr9=q+%r1)_ z=w147Rb@MRvU-i(;V!Y5ha%y1p*KV8!r>vaxx`mevbK83*~(Z=z~$Q7*m%72jn3nZ zjayuedofXx#ypHB7-U8Z1Geg=EROLU#LOHq>Wz1!&ZQR{Ygd|# zW@I(nZ<-%J+)bZ*_F&z5PxS(&Sd36{v2<1_u(RVJ^14d4v^1U_ST=ILdERcjMvsml zwZgcjKD4cNMa|Y=VyVe!!T5XS^BDRR8k0M5+mWe{IeoBNH3TtA>BV}A znGK#J`|}^Km{h{7SRX~(kd2hqTCKA!)l00lh)^g%g?zr>Vi~KhTVgT0^Pb9SkH^oB z_1#fcK1YSuO{>-PR#Y7Boqun=z4ZlBa+IFX+w=3Y5pr29Baz5>_~Fp{NMzJvag|ss z%c{m6C@-rDxjoyPn@@J0?mF4je2v=^M9A)tC16gs!u+dPj13Bm0zLc&;4i1@T=L;Z zA0@lF=aaXQYXJi%ll>S6k3xG5+kUnfFf3+q{3zLhMI z1QafT_DaC7fWcRa!i^01va}l(Q1eNv$-JaGz8I*EdN!xIGWO8e=)+Z2O(ggHWM1Ve zhr{QvT9(8{?~9gI)>X#Nj8gx^{bSz0ANtRS{!svd$lx(kAoI}EA0$6O$q(r6Tc3N5 zyg%7T1;}m5|2a?o7s!r3;b&iiXB*&IF03b>dk}4(psqc}6#;eN`**&TWQm*OW+B%cACfe1y!UUFpMoglPoliSB9GBDoJb6rOjv>- zm|vmSWEzUIkivX&*MsdRnwzindc$F_@7m_(d)gmtKRylc?f}4Nr%Km`f&8p)x79Kh z39k*D3ap8QN39mO%VHf3N7lehG1qMd%ZnzSzRuhZF!t*L}lUd$)!v04TsA}SchMe5o9x)ud1$IY%*Cvfs(|c zsa(!2fL9yQ{vY6#8@96gGFBqTI5<=Dk^7M5WkkPGF=8^=+iGf`7^AzN{(H?DyWQ=zJ62YbUCBrD$(4#` zuXjVk%KJj05XN=a5z>uJM$^*z>QN)eaiIAPK*LJ`*G=$VMyY-SyQhZ1(l?{!zCp!_ ziy5uQND1mxsolObRJ+dUjO08=wN*ENZ^^tz>+0rpR@dCy>09OTR)Si#js~ljS}gAD z=gF?x+VlN$&(ze+o?V@|r!Bb7>y4q+74uYTrP*v+TD$1ZXm!2M=e>Ps@Qy&ZL0)9j zXy#Rw^=LF2J1kMv$i2~MRWJ~^W6`2L0e^#B;Lz&&V0Nv5*Ij^D9;PFZeL$<6U6;R$ zUV4HnJbwJkzi@?^@Am)>s-cw{S{Yd-k-`FHq%y=_kQ0BLA}uEK@`i>LCbJcB&XcIV zvhvZZmONTj)d+&mlGx<-gd=YErUdn~Nz2&d)itecHPw%e!CM+&EZgBN*&to8sl>A) zBPlwG-guRMULvNy^BRbkmzx?mRnQhzgL53(!tmCCNhK8pL`I5dh2h{oUq1g>UhakG zE}UDMm3QIf`Mj*9=Q(+mvCIE}5lAY^sgL1r83k4%F%SCL3;kgI3a`Wh7t3674gLCi z=pnlO=coo%|CFAE9{L$IPL?O#NdsA*yhQ$rd>fvQ!PA)QVZ``p7z8}JfWG(+dX+j$ zp;zA~e@y;-a#ivJQcLZJ_G_Vi7}|sU97R?@H*yIl}4#*_jNm+uIuO5jyp>H5|PNSGE{9+$z`=R zN43nL|GBOl+TnSfgL&0t5x~n}c_h-@lbRJ)ci{}GVzdHl&!){uL8c)ILaRolRMeJu zH`GT4Y`Tba;!KXvCULK;k1ch^<|&KC6Zr-FkWJI-_IBuWKB2&;({^~BjcP}ku%Lhx zh`aBsiY(9>EE2K6qbAF~B(_Q|e4Rm~v~FyP?(7qL`)t9vDv4AsmBviyJyT37krxZ) zJ;9PeSl7KUp8%{=0M?bocM9PtLpNj1#52~1HId1!^Tv%Pt=423pBou88tv#@by@kz zfvr!+D&fD_(_7~rkHwnMIpi{%`>(5ug!eQ!>TiyO>nwWxJYUzoU}>zUx#g8*j^!^m zxAc_zeLEXnZ7Q`6;~Mj>3UDpO_U!B{ZJ(ZEjJwqdhLfK~~ zg8K)DPeh`z34_VFs(ry0lWEJswv|ScfwYL%f3LZDPHpwtEF$?5bdOv-XBV z@$PCmw_#3ID0CYh#|3>E0Pm{~EPU(qi>yICO9CkZX2&REa3>bCx|F=-_`9Js zfxCuVu6CCAcoa8UR(5WD;f1>TIjyy|FZ4DnHW)0)OL<|NZKQa6S5I|E#OK~Li#L1C zON|YktqqND?R2d9PJMkl^?IqpvCf~3S%fQK1@ zK0PYTt}k6eC+U8pK{r@cxxy|{_~n*%+rZIqBu4)PIjD#Cw$_g6v|4fDoxD6QF9*Da zV@q21!t8IM=W^5xC(oL(3P8rJQIL|SybQVz3XHsr5oD|pG|DtRZ>flcPYjojIg}o; z&1|`<+T3h5HyQ@aizDIXjNMPl?sBvL-1$E)aW)oQ&$p;x1A^WwGC zPp_q1T4a+gtY2<2TZ#mNsC`wiQ7jQvl$AZWjAPs&vlXc|8LKQU7Do&;-&iIVOWCz% zZE7db9JYlRU-BMMVcH~$%6n!TYVg3ujTPFwFmg;m$ zL?SMAgu^3AG8zt@Si(slwJR2LxvHu#b)JX$T?Lr@syBc>MYn!T^U#wY(8o4kx`e)< zdE`d)GJW(q>g<;U+JK*Ba0AbRwz-0tG#;{ula~`GPH+dHO6)7V!n8hRGjOj;tK6+|Dn8Co$kBl&yW8NvB7}f+Cw#ZYvau zP#gjxEQQ%V%|zCK)Y!CT~5vS-Ln91h5k=`%PJ1bi0616Y3EQX8*& zYTeo=<5jh_RdIY(6|bFu;jL|JTW7_?w61GyTMrkcRWklv5TtXOo4-3Q83&o#-QC>$ zy*-jy`@`WxA{^d7OVRo0v8d1{ zPtx3GSe0=7W=s7)u9RaM0^a?}2d! zSSyWPEldkw-=&ogNXkG4jj>1r`3XPNwqlWXWwU3%Y725Esw&FQt{k|xtSk`?g^rK3 z4y!dXjYd7cJi0)qGfl)IkrN{e?~X(&E5e~W7q*URwF;zFxJ6oHu}sz;t=r-CmAf5| z4UIKpR!dl1q$>s-YRe=Ng-)TUF*a;rk%LGBJRmqV{^lywESYDuR!bFvphg?l*qc-;9Xd*naO3os zdy`L$-0F1Mv$J{P!kwHvE|*s+*mGFs8vS8`W|w3a@*!dB9Y+y4(NLb)_oNEp5c9H zZ$%T&(LWRl=+~czhksC0LwTVsSTLN2pe=YGgJ1VPkmUAO7+=|k0>SA z+)o}pbt<`(QQCmyeeom;)?TtzG%kHyZfTK#B6MLd~jcNj;j6T=3hJ)2YF zHVjo&3>eJr95O_@Q1_m9o15F(nw#INA57DKl|~OU61aNX#ion$Zp6VT;)ri$)(P4N&>JNR#oRb; zJd93NY_6=_o|tz>C=_dq#qR5?U1_yA>_%gM$T{2XS=o^M3+yjI{O3>97cdI&-V@@K zR?a|O(3ruBDe1zf^h~_~(j}C#b3xRwPowL1)vdGJTvn55tf~r!nGb;H+PYDLL2uIQ7exmS zm6nFUvN=BHA9K5#rSg^%N3Ub_E?D}iQ24;?XrEqh)M|Bui7;GQux4uk9504-$YtV` z5S(Pf5&=LrgjJ8enp{sFnRsLJ0(wM){)hUn$)XkXqp0gJd1oZ)0o*(T)He&B1|FR) z%`{}v2+9o9Ucrb6gw$W}kb9KM8h8D2v)O7i7{{u|4+_rb&Z>+ZpTGWWG!m%*VLCc% zQ;D6Nl@yadvq%j2`33$G=Z4yrEhSFRj;lwH`2GH-MEtQOE1!s0)m!9f7i?CM#H}zY zGxq{vCE~DV46TqeT)`^?0nTNI9iUhjC_Qkzhr-;VdiX~_o4ajpJW+OL^{Ug+Xw(}B z9ADvIV71jMvJzDlPw(P?S~H^8>tGTiiO87M>K2q)EIr%{^X6`&PdqvAs&{5J_O{p7 zJTW%^Y;Emqsi-)p9eA?3s)d$BJf6+*#;s1LAL2y^2P)mIN~H$V{%Tkkh~Z%VNH9Vm zz-gScQN_uJUg9<`x%bOYf%h*k*nfraKs2Wx+I?MvF@h=61jr;%Ds!$G^!aUYj=Q=H z!WavWMWS(yQrYf}^y+km#;VHGLj$L(Dw~Wt{elR@1H7Tbc9VH57RNNrPvv0|D>=0|)y45K;LG)p$}8R!Ko?GnK*8n z07+^D)&&+6&afpjF%xFPHKNQAPRc80u!zP*q9-mlY-p^mjy$k>_2~#h2gjC2`mNSV z8P{7EeWtT!Sf|&SjE0d!6e89xLAlv7|NaMtJ9eS&(={7E>8PFESzGti;vNV-c1w$k zgBr5$Y)h;L{i59K-5PJ)=601vN`prRD?AWT(1Lw*9eF4D8TV0!3b2$63&_ue^znDe zJ1Oz_j%e~BXj4JnO+Cnc21`kx6p%9TlS$y;AbWU7Og%`iIaku4kSm#Rcik$h)p1-X z1T#zR;q&<-aiLv7|C+pe$9`*r(a>NE&(mu4cB5$^r1lAf#rz_0Tg4s~IJ)%TmcuA& z$i37(+)MxGQj#p3tGed*Y4DON63=J~N z5tc}-nRGQB8q9y7FyCReEKAg_wb@wKvH*4L1e{^fxR!4~&oTx<=-gb?|SU}}{ z&luq6=L?16I_E9fR=J{_e9_h8MP;>1K=2r}+PQ&zsTmL@0C!Gb3bW~nmd;kgcBf2K zXcQ`Zqx_;gU9rScB$TWWnhJ{qcxHU^G3r^E8RK;&G8tk9r+mBDh4@~Vb9=|EYn)Dx z$LZQW3$9$=`y^6HjmuRdl}M!$NsZH83jogeIEXrz-|up6Z5(gf>T>%1PS@7w$L$SD zg+`-LHrU4<4GMgzXaMJg)7`xXSj^k8n}ftpjxPrK05D+1G!PdOfW{6STYU$dU1n z<@BVNeGP{I#m#wy`!u7o7ci24X7}j-(o7M-SUGJoMyYNwfD@gS)`Zw@78>7TA~)E3$Yw=!+7E zV{50U%TR3Q^Q{tNx4&_N-Qjv%Boqa8AXY@es?oawKEKrrdq&<4y*?lkl*k=d(E(Ff zC=!84oD+nP4y|UP=P{mDi|2XF+ zpEoFx z7~ECPgY;6=L!Uyo(u*puuN%BO6e=qZhwdJ%+f_+_5yjhe8Z`(>a8~5L!(_n`^ot|e z`L)&6FYlmZJ6^7?t|{Q{G?$d@U5Z{^dTU9EnItbSLL@jYgd0Y79%!P57$(NQ60HJZ z56k%tt~ri4d^?$lGNTdDK`OKbz9s9}qm(gng&N#0r*p^b()nhwm0x5kwhTtSts0F> z5ayet(lVpkEfi^Tv$^PXi`BMyc1edpVigpb#OA(m*NzgW>yl6;EO$6!qMSl5hnthd zRm%#UijoSENI>3T4hZ-~^e0&yo>p9BAh*A^^h`xXwL)HGk%~=)Diyz=z#zP)P?npU z50R%zySBj^zqsING#Zz~cBo8ZE>xl`y{M>@cXS6nv4} zZeK?x%o=UGqnl%>Qo7nDMMbdYO@LVk_iwO&0y~t6uoZI>4*&9`5DJl|S3bk%0=@uM zMWRdv3%CLfVjV5OAl3Fx)9J2_&SfHE{Ja)R$3@1}7$vc>H2jWg<~ob#a{j7>V20!45R+6|8NiKW5U{qE*qz z(S-|-Mk7^6AVXp}6dW>JT-g3)VwPDFHfEW~v97Hps>@!1f*!rj$zgB}%gO^JX$nVK0(M zaRl=wHfAZ8K#Z8o(uG7~DHF3q#3jJYT8MdkHS$j8pzVL8i_v%Ar`N6oZ2XdjEnoCL zJ-Ue$U49Kg>L4OcLta%Y%oFne1|i&<>7m2Yvlb2Jrwnh0p{QvdWif-9lMx=7h!P9X zAlf*rtCGt!#YKEm5x>}NFmxCUE=ZrN^%&~3x}eZeTx+-W*ju-|-2oSS*D90QB0k@B zE#3P{gXNs6yYC03)#A5QsWoA>rrKJ&*zRaB7~4FSxJ;%j%Fk2g-OX3zcckX3gF1aM-IVD$cLI{32dg?Dh3?W`VsAnUXka3hs$C!}`ILuTL3r zk`T)s7MLED+AP&G?hHBDvd!mjQ8vkACdcAf`v$w&$wkS0aBChJA2?T2-QG}L{akOu z61_oB2J`%8%OGc#R3!4sw~5V#0#TXYv$dX^%iX;6LOkAxIvN{Z8+VSs*3{TJ8N{h% zAw_(p%?|mb#Jy8qPF>bf0`}rEqq3>Ei4=??X7K4{NUua{CE3hHYtYE5!}Nl}no@hf zys3Pjz)O4_Ox7!ma z3k44?Y+i0KXwk;-JdIYT((6~vS#xhN6v=+!J2@48-_7&pUmpmxY87FfuH7G)t8%u+&YFSjTZ-bd0n975U0}IX~{q~*dD-%i0WEuhC z)c*ALukB9g4|wMp^wvw*aUB@Azr4IA=fnfq*?Dom~&}e0*9R{%rdkxcj&oJRD!EVq!sf_~xwf#p(qtgy0Yz+#jXTE3Pu28t_ z!Ud$qTUe5Qb)mJx-hG3|?T4-D;j&(hR*U!r2LzH*KSXwh_fF~)LmH8o&%dLXAMkni zEu`L`ngTz8$so@Bw2;0hE4@^<33jROE3c@|y5~Obsk2m0UY;qnT7?o`PBw+!-E#BRiEmo3iLEzp zX_#IxNvYb5yJJ}-vczup<54f3`W@$X zP6YN<0MDaRoV$nR5My>=aHW`$&ApjoVy4 zuXD={S10b8+j*dB-3`mVp%D6@d6(Z;R_62XYHr@;^Or-q$u5FKzn}Ui`QLzT3Va-9 z*FSSloP6w(5TcajS)ib)@&5v&rK zJ0UKQK)y#bQcey}+NpQZR&OHVb>kg!$h@5TCr1fX>BHGr2{xz=8U`zw41(l+J=%?x z6xdZT2*JMzt?7OHo9v}=7se3>1mV1f76>d z1g9-Eaw99ym_emfCA+1=-bihwvBH6wUgpTjA5BoaY@OP*z-0D7jPlOGc?ZMcDl}oy z>N-mz^HfTuQKhWb`pS!na(+@4#n_CNkteMc3Z-9NG8~ESNR8a%#v_->rCN=uD;Vgt z+gpsT8k4CHT?Ytv1L7gFHbkF?1oEFV`$3=tVdPTCpWOL9n|EEuqLTBEcOS2>YJlw& zg#J49XQ~+S@c!0lCZ_+|)Y#D4(%96vsjRc3ykhp8sVUL`ZR;LAAwqYNQp!jDf{Bu3t^pYH*j!G_fHg*!D%l-BU|Bup0r?P1Hf$oa3EbcK9&tlp*40 zq>p-+{2smo5>-sSo1{qJkt1-YncTy0+>v425cmJyG^a;#mLmWNT&)kRAU|XOtZil`&gswwd&>?g!_rQv6 z^l`Kn|Hb(G6Q_ur%2G2{FjxgZejp`*ZP1@CdOV|!IKO(@k^D9L3gKZmlO9gRN>=8J2V0+Jw&P zUm1eEM2m}@mAiLx*>XsN8&s{)FRZA#XJOyZwiRCY;i4ty5{_Eg7S&K)-DAs^PvSAe zVGNzAFhzf4{7h)I->R?ImvpI%^>V4C&TO6Qu=-bpL(CZJ za_{`-(iM+3)D5ZDDBA*wb1U0^aYNz8ANCI3mxvE(*Qf^T>nugYi~=e|uSd81lKY1vpEn-Kx)G1`Aha^1T7lgICY}Ht{ME0}tyw#ce6i^W?`ddL zL*Gt)loexk7{E?qkO==Uem9o=DMaE~8No4vfAKu2x5bs6GI=ptxqkhse2KWbQ9OE^ z(^GQOt+(Ffc6n~2Z(m2o{l2Z0r#D`7doFG|6T8~)i<9f9&Unq~&NKV3-H)!@ce>-g z>bf}@V+a9XOIeMRTF79^uVJJ{%Ck!i0hBkaZVKC|Mm%(z$L)me(`Aia<9eyo6>#kt zEN+}55f`|<@*0~pq40UcGI`hKb>!Tdn)^CV*N+*%58q$n(J!btGv{nwtd)X6`}|kO z&b06L!_EWWq3~Tl>vZK-pFa+xyoI=vic>iLOC-Qh6{7%IiO5^&_mK5g(t`HVTSfHM zOuHlLc1$94kW}1;NSeM4S*VNj8hS0-Edu$ok+_|+knQS)%p!x2b>IDTaE3@bY?65r>Pafb0YW=jzYBOJiyp^F<)3u@g+Uqp=? z>8I$YH=+jAv=w#I=im=&-%4LVv$oQZdqENFhzp$goG0L_h{>RUx1tOkk*Qxf^CuPP zMxZO4Bo!vp7d=lujsAx723?hvllMDgF(+JLtK<>1g5#hbfxcN<7b7hB9g{n$ZSb3a z@+3WY;snMHagk%;BnT115n{fc3KEm zQk%`%UJLiEW`}$h%<>HJ3iTzY1?Sd`2F=#6IS9LbUnY+RgXGBM`Bz@~lTh&2SLo|+ z2ks{xBVOg0Ijy+uMg;A+QXcm)YTe|m-4W3qRuXe|nxiyEEAU1Vj=q5j;+i^9cLo?CCe*CtteqHmVjL z-GRDyp*d%NDk%Cz@@I?=ehzJk*2(=r@DU7mc2+>JJ((Nw|zSogyz z0fde+dlNrS?ImytCq$QyGx;?EqK#OLb#n-oK%cT;fQX(zawrQghsZuGG zM3cqsR~o}5+j#7Tc5NBkxJ(O|Y~wOJr=ark-$4q70DC6@dp^iB86~z8cM`|aS~=wt zG79k<@WNxgM<%}Y?bt)C5=c3anK8cq%^haHaIRLX?TeWzgf1v(*wd;qG|(!Yib^uCIUUM)lha0>>C9?mPsx2ZL@g8aO^e0*ikFUX^R zoe3?lso;J=9=QWUHER2nwg648r1-Uye?=Z=1TT@GC`VF|C(ag#@M1-r5quzyUzjT` zERyFI6uRMP990KUIKSk!SVp127&HLz*re8}iAp6ZI8G7OI5pENMBP0DJiW@3Cue}C zTmOu_c1{wa5~PY=OI~1k3Fn%V7Y@>Ed6l2Pgzdd4`cv|0<{p;9U`m9c1$cSzAN?sM zy+D4J%*EWg5h5FKFqF}0V3$m5HBL9ZY=T~m_DxVH??fBuo9~?Lr%poq&5(OL7uti= z9%Ss8>1S9C#+eJdJcsF}6ZAUR=z-sf!&GjngU=4r1Ly?sb}!K3PS~#r038m)=w`Ti zGe~Gg8fYfdn!m;Kw`MYShUY>pS_%93A+sea5(!~Ks)Q_*`bu~7;yau1C=;~@{d}+&>@F`#j&C%!$POEiU<-Dq^ELNvpr=EM);KT8FQ&T+t@Ziwdc%r2_5r1T8 z{LR+3o}RYWH^;~SyS1ffc60Mvux~vN@UsKFV=2VNVmNIcxTy?rV3FJ-zg(i<8QXK_Vl#2 zz<}RuZJjr-6^0JescLGfik}@Cf+;pP!xT%BNGoZN4E85?qeag;!(v^2UOvKFYcX}0 zIR};x=NTbZ0)$CXc#Loy7xWLrrUcY4dspw#=D-53p58#p={0C?@*{K; zy%Bx4vy+aX?_w%nN_~eKf(Qu46vVSLgnGu>e;bz2QoGTxur#p1V6fQ?h6RDrg^*Qw zwOA(7(fzq0zr&EjLcT9$S5-NU>28e|ItrwpCZsTA^M>DF*$u8L>-_fu7a?_ z!Ih|X(PM|u!}Nl~=P;%qro*`tI8Di%C7}YMK+wqi8Yw-T_yc}}-vGeFB0WXE+_AS~ z^2546yxFz4i~bz{`3)lL=zo0za77);u0waxW9Y7%(9j-q0`nm~u!lZ=QwoMXUW%z; za2oVOh-k)qnMrkFX#jf|I4F+7tihjw;gn+s);;`WZvBPBh=I)rXtU8CR--J#IoiXq zbwOQBHT#zr>zf`zHY5G!B4?{gsdd`y>l?auc{~9@k*LgU@^xxWHgrDL2T7B80)C}m zg=%C0rMcq-xH*XueJO0ML-5q59hY13b92%7-2J7cWw1?Zldb%7&(C-C9Eqa?9r{{} zWnQpyb&138cDi&}(VfNme1VYqy{$p1)G5W1 zs7C6Q%G~0Grdqu`0BaPV`kb?e`xvnZ?>i@$x)e;Lgydxj(*{P$A!EZ>Eb>?l$>J*o z7flCQcv)A-IGmx6xeVIzlT_w|oEsohIPv_JZEv-9^k;F)YpUNlpldW5<8qxOq|sDr zRzDC7dbynDnyPySAtg27=O75wM$LRxPHrycRP@v|Y;d|FIava!q|s-nR7$LTo}@@z zW@;YO>vYMkY`s!BD_Ep1w4gjip){Wd_4M?w9a&2M`ox{|)WU^}b8>T3 zqVXbGc1})PbJLG*-2eBv9rK#&>tEmAbe-21%`GYn*wN>vU`=J!&g?xux zW-Ss+=GN9eWbE4QaR;(^bX%^>Tqr44tCX;fND}jC0cSmM`BlUoz%uJuGWLj-`TOk} zgAoWRx0Ah2`}`TwGRXUy-~d{Og+l4p3=y*w3-3(1x^VV#eIll9E-4udd1mQNWnw#a ze%G`#t+QI~6LnSbC)cicA|7whsQFf@CRl8-SI6|TJ>|DlR4vjuEDoz}b$!JqueV~N zx2frwp%srO;tg^coWfKG#CB)$!_s*sjla0WhE$5;u-@F^tQ@g)*C`aDpx)ex&Mn&Q zmDzv9a$tC)e4Np~7B@$ItPi>gT zJ>O7S_3-G}SxBnJ&wfNcK>ZG$1&?Podzt_lKRWwzQPFD;(=To(A3(pat)&$dIJ$81 z0Nu_x3f{C2Xu!%YUlyP{^}_}zXJq#P1EzV9bM$(JL>e<{B1)-OVQqmb9qyWykO%`{ zNz5oM5o=<4TZ`4w>8V+1vpLD%3N7^tr4AJpGr)-ccR|u_E}%1;fn|nYKAd%(zBTAJ4T$HmM}7@Rtybav7xM4S&#*pBIN)QiO83j zsyyiT%QU6MRxe}IB)U~veo*Hysg;s)qc^F4`8#a69{PmPDswOLcp79fnTo$TTZAB` zxJE5=ibw@h%4d3XygljB4H1Rt{%Lr&Y#L53o0>!qPQ!U!({QwqIDiHLt^@2o%wV@M zh23`<>@pR1ctL0n8aKW)2;i6 zvuHKI?}oRo<~0EvqRPQn zM!^}>dE}GXUGor{*ERc-BlNl7{SF=Z#la0{;ZP(*a3ayO8xEr3`91$SwCvEo=JyPf z$!iZE2Jg6|uKu}ID^@*UU*CyH3P#0L#bIy(Q7vZ9TNzxia7<||yr1AQl*YpGELivm zk%juw{a^}Y;eEt5hSI*;{~+{(DUgNB)9nXlz%gaA{q#=lWhj$r&rl`{Uqs{pWx}a2 z*zr{Z_SBdz1yGy`EIx23vv_Q%=E?>yM>RobQ;=nH8P3?*6~eOOLUlmXy1{NMfno?h z=9sgf*oy1&j~4`IEBHcQ)`8q?kIQv!7rf(1pnhCA$Oi97`6z6f#kWyEG@33eM2>?k zr_s)&evML6W}I`S-cYeqYVNSkr2Sg8tVDzh5&i$B5T>#buOC(fq$*HIKOsktzzVW( zOy?}TkJ!)9`3P;sm5|c#CBy~#Es!BHpz~)LI+p?-v1bUscsCw|Jp2ZN*kI>W;MziK z*Ftrnb2}!lCc8O%k)D1Z|L&b6aG@a%v6nvg(o2}rnEFIKOmlFW3P#pPtYK*DQFxPv zhov64qzp|rFf`4=F-^1Z{;9Vanr7j+9~Rz6G<{<~gU}w+F54c{F57-!1{~8a3-6s; zz|bz!o}pb9zG&(v4DCJ&bcO3B0bQj|75_V#s%J=#DW-%D%N+u}aVAk|)sU!wOjpV* z39Vvlw|xdxnd>xChmfhil%5BckL65Wh^#C4h8=amB-6eY$hdJ(ll`?GW+R71 zu|D}K@E@F|=ClBwpchOxJV+DA$biu2&WU~dsB4oE1WAD8aB|3XuPeFl7+E;`UQ8c* z;kinN4j?Md(7_^x4p=yrVJv)P>W_>J+Y94@noMc<5@HuKF19_!6We|vv7EsZQ!!cj&XAs(Bjlser>Gr)-$IvR^q+wW} z*SKH8S^63*k-%hO%u6eqV#J!2tlN;OPIU-c#h$ zIX5&qo0Kwrwmw`em322QqW`?-!SRp#2RE(jU+_<)IW^~n#=7pV%J!GKPc8V-tYEyU ztm##}PI#WH7zxATWtg}#WBx_y`7a`*AblvJVd_4p+4Lud5XHWA~^MwqKd_7tSlrBqYVJR2-Ln7iWgdNERCVYO{gUekEP)w1cf><9H<@Y zK&9bJh@%X(GgX=xs)mRP)6aDbRkLtx1+nlEqJXi2Hqf=Ws#6LMR#4}^pm(-4rggS; zAF&Iq23~H3QQ|5|z)1Fe)X#-sPJJ_d;B>4?BU7pQCOBR z&++gq#LTGh+wm-zdP>Z!C8^Qg$IP0AS3-Lh-cPvDE$Q|ZX?P#;0GgGCW9+f*2ci8H zxHJv#oq7tj!#tpW?oRF>a3z?3U&jgJX5jikJ|s3tc>lht6YAJxb=V&&5(+C^|E|Il zc^B7L;@Pt>(yi7QvQneJiFakT!^GoPMxXVU^yn86K2(WEPhZ1Sp{n@S(M$dQz`xT* z?5w_NI<>L#2Nxp>70Pmo_%l^hVSzAYjE%sdk+08g^n7)qo#N{R%BX6F&XRj2s(@78 zTUK^sGv*6+Ww)p2G(PS3&S(L!Kp1-7#%KW+jd;keU9W`HXh_xdn#Nrgwo&kEWuc+mp)~X-(@=8R=Obw-KLzE1 zpSzdP0=xwD>S^x#00)|8DE|l{0XS1*i&;ZBjLg6fFqFW+K}=Z)49`L%8U=0*UM^JR zN<+t57~2Z^1_65BernknclZBylyge;ZskGgHqtXoMso zZ2L26I2CKT;!S~Yftp$~_V{L0Y2v*7>crGku}k3?t6++0G4-{={Wg76mVG8^V@hk; z8`OqSvCym4w!+~BD6qwO8*;@C(@CkdNG`{vOE$9wx5UK)w`MKp?PL{OY)iy1t}xNL z#%Qrvg3B-g4w#Bt3?_99W)@tH@yI~4asUS`v_A{SXjmxbCl)%wQ>LL9w=A^p8jRbo z_B)t$1^Ux;+kp(|hiPc(rRC`f zzFn^G2~{poE0uCN-=!2)hzm6#P1Aat+v|s@-rU-?ZiTBDuthB&x4lZD1;%Z7cElGYg)fKR1jSwf0oC zGxV=j&(+m+aJ)-{Gg#UJUXxuY?+-vNw5TVzrvhcvLPG~j9hUWB9$N(sR)ncf#>i6x zLo5BCVR_0zF~6|Tz7=@&Sm=RiDA~^Ifz<=Ai&GA~0`Z^(94TWtWx6y|2nQj*S~yBT z-bnvt;<3jjiv1eP0)P2J*sx~nGet(7)*2;C`j_3)CBXE0-Ej4l5@1S&G;Tvt;OnW6 z;N4E%Dj1OwMh|>FWkJ`$NZ$Z>H}`v47PNwaFMv!GEC*Ql-&1hV9;Jyi^l$0b5CbDP zY4~(6pgl^jK>s`4NAL4EGR5|Me;T?d@(-Y(H$Z#fDrFW-+y9~0oSA;a6zxLmrFOp2 zJd;pVa!G|5pABWonn7i=Fk8?}U@o@JEtx?O#)Jx}KV9hzvU$_vy_}x&LITe40{lGG zKKm#44**}oVw8Ay>M{e5<9cL(X$u2iLJZM=obHD=25?w^Mmpb%jsg5mSb=j{9FVNm z?=zAWy*2e0+@6kdx|x31_DhJj>E8f+H{^r~vk-272|+&ts4V#rP#1$&pe_MW7n5;= z%d>zLjy>uy`H$qgP~PnkG@C8)hV+PflMI}s<#*kCSMv1}C&)d!7~dMlH0+EHvBM~{ z(1I1%mSCWa24SHiUtoFmD0muBVGL%3p*U`Efblfg)>v<`tru>^T8pU^#`Nr9d)|P1 zW}pmLvCw`3a}^84T*X5BHes&%Y7c{qW@4e(Mq%6b-Yf%p+6a2-QO+4ygE*$A%$*x7 zZ5Y`SP8sjhJ8Iva)U)wQkurzfRw+14<2 zrdh3=F<0=J%~v9;>}J-MtAJS-5gmD*bOlm{0W-@Kz(oH1hooCS#ydh3AcJpXtzt7z*?{^&vyA=YUp1OdoCrz5x2hw8_AkUN9W&rXo!B=jb|Y=Rz+mbgcIC zbX!cZY#)7iy?`sHYk-wtj|{UTHjgsNamKE15K0XgK{ZU*0(a|M$3Ld)fn7R$ z`5Oy@T|RtiFUBW6<8y7+;~+0Qe`Dp#Ndn6qrcxO9br`Xi#oRbbL;sP6_7l}<=%;CD z-$rg4dZh>014u*POtO#Vmk;EFkV8+41fq=noGe-428H=rwaIm zF5RVkZLwul^UOMBd8ZEC!Z{G^QppY3w@!Yp^oUIMua+!3NEt*=q(-!WJ3S}NOS>~h z`apW5i=ezbj1)9cEu3lv>if49)H3&raVRR&z~N}nr6Q-=JXAGv)VcB!p~XH^KS{-s zYABrcIg|%gey!@-Euf_w3tTg_l&)N<3gDGxRxk_iYq2XhG=-zN?7B{-pqNv35_tfJ zHk^l;^#%=#CHvKQy;&$;Sr*!N4PL{qwjIp60>vxKw(Z@AwLDW{jp?^E#XUC>xMvoQ zduHJf6=kqKvpv`fBHT9%#eL(}S*Z6I?)wCcImYxIO!a*i(>DtT>jYOA!JKKv(GnK= zavC~d;zF+IJ)9RP7neOjLK#Jr>)iXFb6!BX^k=YJjP8QF{^`2`M0P!W3(DtykNynh z0xi7A`7Nd4{u%FtB&J5mxQSe@fxKVE;LtOpdy>O?T^ANQkGEQLY zeP-UAG0kLfdSU+|Ts(;R5(?oVsK&Fh4yvhH9o)w>;bJI#SX>;|ln)z?;5!&0(FdVV zIUkTeo(X z52>GUKLPynV1{r^NDp~dM5&!dZA%T)s`V?I-wHxEOE(1?V>okr(o<=d8Bcj_VSbH2P8Z@#8RZ^N< zno*;`N^aP#wN*fE5=alOFz{ldW`9T_mW0*UQ~9}hP(s0+pP#o(B2vzcl*C}+xp=g< z(X%K7QV`-4gCN^@)2H&kD(lFf&x5+)y07e7>0s9?qO6DfiJ3c9mO8D(4!ygl=8`tz zldqhQvz<4amo_w?u5W7DUfEdr6qa&7A~sO(Qn$ldr7cs9Q@;dEZy^rDzleAia!mOk zsUfPt)Mc3762L)*nYsmyPfXa?HbJ6{+$qX==u)0eq900lJJlK;r|e4$`mxC@lL}nQ z^&p5pP`O1=Qp#-JF#>P@8*zl9sf+OTty80bX&$kacpm;u+1v2;oV33JmUg;!aJpzR zP|1#|KQrGcLNU06p`mo0Z}iEx>&7 zy~Fc%Ky3lH)49EqvjPMp(LuLEJ--)VuiOf`vT)=x0TGyVJOHdSmNMA=5-2qacj3ek zK3SAOUzt2fKKd)RJToLXLV0GXQ>>}bGv%2l`G5R`yz%|lafN8?N|Du>^_qv;7HhO} zgzGgQ=VXx-8G#d`OE^{2^`m8}vdzxv^34dRXL9o3WH&_rLEEOYb;Hwksu+FulF4XX zTnmL!q~-?m2(Gct8LL|jVk(P!TTXsOwCprs0qQ`5Kjwh-z!?Lu_weoWM;x>qrndm9 zPb-xHsAJ=lsLR>ueXZy;o)-_ zOe~J*v>`DTr{a)S7ZHnPbCFf0uvio->;FJK4Urg%?1pr@FhnjTqT;YlZMCXZW($EP zU*|lVybR|Av3v*JmAt(DvBx>jqF(wzm~nCm=UMttmXy645GDV3-TF&eQu+Z%E1H^` zypi*psR;LP9IyZ`)0kqD^EvO)d$ZOvCwT%OYvCs~ZeGSwZeDWLE~JV`Buby#vNXZd zS4gGs-Auw#J?Fg!4y3V$EZ!EF%T%0^DWK9f4HM zJa;sMR@ZxP*pPf1jvC_wyHRv``YP)M`g4>`?{~-J_z<->^)H;F^^(gd3Dv~OB1XW- zL(C4F7qlpdJ3g0yqf49N~No&dy1| zc^gOtBdOWxsRt*|k)KXJLmh&6 zEcwupBTzpApVYknS-MBR`r9px@C-YHITLuIehoL4e=fm%RpEtX%?%7qVpRKFw;=S?;Z%%#PGpko!f=|gWX6^F%%6Um)R=Ll+ zyQ>4f-=~~M{)JcW^#Oe&yhFl#R}V-LocX{|MY=q*6ey5oPV5q4#Y_IzL}LCTY#1pGCEKt%<}_8!)V68+-=| zymJuVxg6-R9Cl|gUfEY<3a;t%m*Azcgqk{aJL8-Vc?!Kke^xmJ#cP{uYF`*1f4-)+ z32-!ANq>o6XrmpEKd(`MC+FCO;X(9v;W{;WM8chBkXpVR&Eo>}wH zcXZz1IsBq<<8b1^;m+}kmAHCw<;C&N;fJb+;IIivTnncgZibk$2gj5XMjkJNcV^^2 zgwy$(V5X#;$(dOJg6XPk>|N@U)o!ZTt8^_-3?B{zN=pNQLqqZ9PNlavN6uF^dvxVm zX|A$JsLsvHPqwIZ+R;W_I^8QO)E67(M;b<;^bDtLW46*IP-%MF+JC%Fy!wT@`dKQa zphTf^@|B7L@y#R$490-veR22Q73K9H;!Cx(P9!RjIRqL*MZkYO%<)lr2WJ7SiG}%= zDmEn+RzE$VX#vf~tJt-oAb^k|uGuMBuc*%Hk{sl+zLOQPhD+K;i?!1>^dQi7BnUO? zbzzCw2I=(2N9XK~!57*Xpp@vc8h?*T9}>gCh5m3E9FcUP4U38?%PV$E8~<8maU&pwadxP)E@^XsoeLlpn=B<(>HtI2h%Y9vre*IDcd4;0C%J&1pzgPc(LYle}+VB-+prjqJmkF_G{2sPCBq4YNqsD7Y;Pl%Ag~BzXj$ zqrA)al%&tt!F*x9Dh8nh~9 zGe}G>Qk3$zM@o66;tF}vZb>Nt;;m3N*?YEl+&-7nwYlHZXM|x@WmTHzV!oT{-P|BJ zIfQZ=Jcum`VSQx`9x1bLEXP)|?prp)zj)IVgc}@dr@l{rd+yB`ki+fTHR~yN3KchE zag{~BP}iiT+v!--Mo>O;f_`QAq2AtG>V~%Y{7JF3OeGW;CF+n` z=21;kw7Hx!oQ*w7rKYN;96*QNHT^fHQkyg6EW^zoLiEcEPG$OhRBlou7e4Ihhc3#Z zChLr7)2PvGz8J5mIXFALK4`90lB%z8T&4)LLA}wmyz9~hZtuqXYr;NaHX^B1cqb%X z7WANkJ*`G&AtW8sAqWhjILcSRR!rmx0kDPadQA$r%H`C`We+40bxaGrWlK+?g9p6v*~YHZHAe3b;Aa`tr`^?@9!hi_r2f4AjbE+zmGn<@BOaszGKmv z@S(W}4lFndC>QFH-AnHZyWDPP=MnfENRhls<;8sg9MM z>XeiSTmnl%p|A)O^k(X@E!WaL85HkY%1e)PC?H_Qt(>P_qi$Ecf_IQ`QSj1cz5Nn1 zs&n)fZUCHoHfVQ(=M-qS$awyr((xCZXU;!0q1!rkzR}*%89VbqkM;M-@!%P;RS70O- zNd|5^EQWKNXWi4>Ix~xWkI=@JrFVmIW=$6B>fXpSvn47^L@mS7zLjRPf&5Lr^ZWgM zGwYI#uO1yUP-3M^q|x=ax4n3iya$kTNu|8H&P?pHABdVA?aAal%qm<*&jNZwf8HWz zWqW}j@+6DYABZ4^LUD={Mb%1^wJx@_m0G$5)iIftO!}1@<5P56JuxX&aYdhhw%ryW zQ8e$EG51!V-)nW)HxG5Jv|4TFpuIlA?MKtImsfdKoXfP#l=0EX&8~5!6iQ>o_Ue?& zwJ4bx*6GYug0^sYduyRzn#nw~X5O8Vni$r3HBRx(*hd{>AHX&$o<+f(z%IV?3LaA= zUb#2t-rVp+BLj!o_~gb7Pc}9H++Uq><({>nCrxkPdO%}Z?RMrB-oU<3>F9WQ9oy<> zMn}hmMasUtb)HTGy-v})H_8ad=-%FQ zCzitO#p)nCHcF7){7^I+s;jBFxxaY?r3+0nkp)7@s%4G-C4f^zch#Djdx@u_lCKa3 zS^+0SX`uuP=@9vjXjyOXb4%8}+SNJDZL!V@<$9%46Y(3GqpM=kh3=c23v0U`o4@q= zp5A4*QO_%_Rb}O^@x;FNrrn8JC@-)*XczYe%mtBbtl$@!J5b;zmXc3BmyOLZ7|mJ0 ziQK&?d;M4Au~5+TvLj4EJ}&KorZ`R1Qk%GE8Tl=(x$XVl-kCx=M&1;z7#Mi%nukcq z==GnK+}ygaJ~>0mj9>tJxECY9aMEl(HM>$Q6@%j|C%lKB-&d^bW!-ArD4TdQ7MGIs z-(=vdD-Blb2Bu$!%ve=rkXh!`*UmD#YO2c1gka3_Z~E&gF0WK67Fgsk9mL8~F6Sbb zQ>v0k{2EI@D5|0$G7~rU*6-4dHn%*c<)ebWBtIv#@6d1JLyZe z#FqNwb4+T$mTCH<`m~*R>GvG1`e>gTFzl(+-P3L%JW$aI%=;woHRuaHm^niulk|lG zLt^!W0@}TVKZ(Wx^f~!(v-`(AS#D~z2E5*#1Kr!u38THa>4`N!To_5gHni9-rjzxj zmoB^?O_iLTxv#?fNm!h9D1Po(2PKo*c(hEwAq!^i3xy&~InI!1@nbEmv&E;o*4Z6S z0<~;y8yTeN$Co{lOr_CS@6754xMK3Lq^1KR6#WmTB!v9>}cFQq6d=pY|E zf{gTCdFeJ|gJH@(pV8{`s+t_GjN0YyX)^V=ozuLnH>R4eOVC0~MvoLKcUYxXb%l)G zo=ca!JtlWrX*7z3s+n(9UX!ix+8wKV2DU)Y zMW5SO-EP;Gfu7ZNyRRZ!(b?E^e#7Qx)0y`6O#0c)8_qX1c9LiMHo`t^NhVK?&OFgG zaw=Kh;&HjI?OF4+RH|vXzyC*j=-2oBuzz5GiSKv@z;T5n_f5^R!?dDYQ`I1V3rCMRCon_IugaQeV%O$Up>S?>ZUZ2nF z-92s29B%_a3;<2g;G2U+=F{4C#2c2o9m#67=6JwoS(u7$ZL7V$g{uDax2>tWMgY98Z|*;!3o*D%YV*JbPD@p~8Hrvd>z&*4DYjkeMW^5)7D z;c$Rpm0n@!_Cfk&-g^mW#MFZKlBscfkgUp*McLf%86PHnlAs;aryubUZl&`6PNs)E zix>`%@?^kpv^p>L-Hg|HwO{o9gNwn7`nj z+C+-Hm^yF5&V3BehT5M7HU|JF@*54;KZ=PNGN3Mf``7e;{Py3z*7!`@ zWAFcl{`fcVG(JP^&uylDNWGuiNFB(3J9F;*d;6Jt&VoL-4z|=4evg8t$xfqK4Z1pT z>G*+wU}qU;;mFUL-P!rf=*Cyj^fnYQO^qOpvL;U8%Y1(0qQ_fW2eM(edtK9%ZEm;Q zY?cOfrau2O&qQX~9BAJv5BUSThdQtGdPC&M+EZw=TAPU9zpQUtz!;LiCl=V;vh<#4 zG+G;p9-SATYcbnhR_jP2I&73`D=I6=34uW1Ht738OwVwC9E(6KgX1UH`NWG<_R=?}=L1YqKIU?oK9!HIjGr$o0CT=hb7q{D9?s_enLl5r$R%Did%j4? zSsddw|I&C%)jhN0eJ?@GKPToVw3}BpP#j~96U3l-pd-+&J{)~V6QU3E7_ZfVisd!>O zkM`=t*IfIsboTgV^eOUBggL+-a4E%P&*Xce=lMfE*L5_&PhR4ixRcq4ImOu$sKrB4@M~l zcPK;~CUGNzF<-%zNf#Ozj2@~9*Wl~WD0Lc%N+1{5&J{O zc*yptJlpy^Ao88$yKA0kYHpj>*ZYG#q<7EzeZA9qGnvPi^j`1thMMc@ z?jM%7f!otom1M|Zv6*4EkC*7o|Y6VyG} ztLwMzdcBo-r}cHpLr)()7|j1UI7-fr9KcKTskw_8Gb~T81G^|=vfHmf?NB02Xf7aY zBcUMga^$Se(*2vC&$M(zYOEvm^x0QIyYbvNJ#P2b!B0Nxzs}`CGDB@Fe(&NbUy4}k z4`Gc%uo1L~U)C{55k<_vSseJWnq`xZ zjbt*Tc!>OI^d!3Fz$EOcDKkc^ZT6=6>Q0~cX4pjq`P>|dPzCigD$FpKe!~D=S6EX)kF+lYsX)U#3@Xdaku~fa3olSLR#Sk~zVQ0(tJ-ui_~M&4Wy6 z9%Nke`1|`Gpyzzq4_-)Slh6MESo81y{QYE>{DAgQ5sFVYlb4w9+$X>d#e3uj%w2DR z=d%0rF_&W9quAYebw z3k7DGWm>3zGomU!w`WU_y@?IBq%4-WOi*3Q) ziB-(&9t;;^EM?A`+@CL8pd?u)9g1Vbwi?EMi4WoP47DD`OD0MW1^_jH|31SD1E8B^;NN3^mC(N1{wA2XKG4>e+g+*Mc z=&5sa;wuk&G?p?R4+&`(x%G6oW|kB9UP$zKcXd_B?YKB z8RlZ8=6?9+?2m5ve)glkbK1~;`iWd0b$5>GV|;n`&^;C~GAhr8k)7bo=KccR3&~|5 z!uK$NZ_^Okmp{*EK99lTo9i6gng1k1{1^y6wHzbaj{D>(jy)Fy|gy&En1T}h@}giyo^QL62`-`@Aa`AQ z4TS|eIy$zYn`3T1vp8r+kG{TUYg(-_f`>DFp*jED|B3!KlBKu{PN0o3H0|RHfGpip zKNZBM)@rBK(@(Jvj0XJIcXnZ#;p1jZ(Q3=6)dptgAnofBC5hp*GBX)X*k}!&6F6Ctu?^9nNc~)h@8vJm=wed2s%&7n|{?srjW{GahJY z>^>iG*ynSej{E(anogv5ps%~bY?@g!_4a5iHQdwv$|}#QSGv1rCTnWG)D`H{>k!hV zO4eh9yD>r|v-6BD3stRH(JUSlzo@Y0$~*&4HoLnt?Dy{(p0^i4H=p0XZ{GA9{QesL z1#xwCYc$q|l2zoYv_)gB)p9YlmV67W=l$hRqFvbxbmH2e*zjgg&y23-^tq)YivBxl z6PZk+_Kto<|Dgo)GJ)hQ^xwnInJ0GcGR_*Ku7SO?iX!Y3}^HVzIh)%jrMA zfrRqGY|e~+@H6UwAAdU5tJbKv_2}NbwR7eD4!Q|#dgf4nvZgg^BYo1KRy89V|97ZK zwS$i_YXfK6RjV2&!a>MHE%=2v>_)OmoP=6Rf0BLv`K+?hW*zi4pw7{NVo3NUGcu7O zZt6vXfsdd^{r>666+U~DhMPTp{`~Pv9UQ4WC6_4(nno>1kBvq8HPv!{>5&S)&+Gfr zbPl!pe%R>5pj9?H2=_E16HLpirHpI^Bt!p>K(c|{J#8@k z^);%fmXWRCPun{>w}Mm9Pg`2iCWWjws@2U5t=))`-ieXsy?%w0G1<~%_^|Q{ewfT= zKOt39c6mKMpU1mv%G7Ljs;3@pe#KI0y=N+Qia?X3DsunGKe>Z>GP##tb~p1>bAANO zPC|}wy`Vd&F<(e`lhZFG)JgiC?4d(hRmN%Vbtf5oP_~*jwJHFRXzmNg&z?PgDZ`OE z8|6|NF_}$^i>hf6MMoj2oq6`d^gVf52I_K=r<_mIVm%wev$ z20Vm8gJW`AtgK&mLikPkk%QkddSgK=D&{lXofilS6`X3MfBpLyh_X|h6EsJ^yj}|UP7!fZj zWRieZ?Gj2PSpvx8H7%&)*Z4#Tix~%lnKdq_mz&HHZ<|uBkxG<(5$dxX33VaQSRq$+ z2AQ9x>_n0gnn%T~`jAAc@p(NME0w2%RH>>!gYdS3+(=TLSdWpQf z07$1WtfR*k(0?Sd`Y8}vYK?YEJ^e>+^aSappFDBt?I=Vg1hn55CP#AbL3p)VY!H)> z&+r<-UN{2p!!+zGD;chg?|`|mAqW1rrwRg$X(?I=Jiwx5&j({K6o()1c{!RQT)1#d zC=i8Af$Mu?vu%NlqDq9?p7PQPiyRgL&Bc_Wt8YK%*o>{ETlTD6NoZboHHPtZ9MyZiW( z=p1KkNUubHrs^7#CS{p_Pa>YQ+Z;QFYBn`5VrG6fD0(kAX;=RIjoasiqh8EKF%KXc zvJQ?sIZse`9w)eHRh%)->-2jB^RTLAL7f@Nax}8iUp^)!3>^%LsY*xV_5~98k;TkYwGi?%knKtV^U zeU}Q)^$gzVP-}qIxw+Za1cOK_(M+i^b=W9S6gUd^ah%mkXkB@)HnO4fzHB>_Z^T)0 z$Mdx40lM`0!$-38Z?lyZPm>FDC*uQS{wEhsQ9h$7_a4I^hjFLf;E!K$r|zvU&~^9I zspqe~B}?b_s#W`mn|_~R9nAm4eF7+uQ|L$YItcE>qU@;(W5P+yuPKB03}N8RkL}dx zbM#~Pzx&;6_L0rcFK;{Y^fhJt1?2m*51!svIY|r=ui5WYnsbg;@228E}D8@G7qfI8iV_3VI!3qPR1%IQlJtsoB0ji$bBuhR`u=27y2_ zlOfKGTLQr__0d}t^#M8CFh#9a?w3~zW zco@$LjAs_+>SlcC8}sd&aQ-5U*_9}aNQrkDC6gUdUO|y#L{=wfMYg)Sy1~=HyI2A1}Bq7zpvm z2eg?J3UbgU=^T%>E8yTuc_bpYaZlSHdKU)(M-;YD`wN!)BNqem5~TCx`4g zSy_qLLiD6Zht}vqauN#O0zdgfPWcCV*V(go^Z2l;Dc&xM+C~0`p7b&)$=yKRAP|Xb zU9j8#hQ^x?3w0v5oI=?Hb%RhZmbw)j8@&o6Ji?4{2qR>2fr3nh=EjMqGvkUgJZ#b$ zj*r$^7%h+4(V?^VaLXtzhn%dc5_%1evb*?tlTRoRkdqd(wm-!AUe5CW=!0iD@$H0c zC(jD>BAHuBf0qP-o-dQ~P-^iES0oX~9n5>ZYpez{kNloilaFqvUq(Em0i%42Zs*$g zn@Z-EECDT#$AAjfGFVN4!dO0pJOG9l7sj90rZAJj?&mpL;WaD{7$rqfJMc7)(^@Fu z(;YZ4u*2*1qdw57vX3SLJ=?s#5D7Z$^Mc*Vgj#JDiKR(*Z1_aVT&u9yLVok?c->so z%$bdb>9N@Lt@O7^O()#Ss6>>ceWn2sTNDViG_%>fw9VSA)A*zsJ^ES9Z%Hk7xsug8 zDvSUmcBx#rwabCRqVU#^-fezMjYQGxa*f0qukm@>6iU?zo5?g>V@+wyHR8%D&O>aK zAyx7-tW$ZZp=2S`8)aghz?uJlT&m)`U0yBUfdlR?gFOMCVpWx_(WQ#(-96ix1q)%p z0zLT!LpS-PCls3FYFmRuH>+9O8*nzO%vP<|vZm89%}akDO;(yT?ph(AZ#0XXN^P@% zT{CLM@iKn7rdk@-1J7FPsx0MSW!an}i4;%o44Vf7a3>)yj(ZsUyul%}uT@fBak8vT z;L=v=X!+M%5m=8mrk*Or}am&=?J z*2cxJ^;G`+;sRC^WLQp&JDWiN7^8lObAH}s5RKNR=4UqMp(My3TCYK$wzAwQK6;?6Y;Q*ufsaqk=ldLv zYv8Hc{6=^8G!{o<^PAn>(-{Z}qKW$bTU%SV`u)+dx8cax-rl}F5P$=LF!{#ZUjRo& zft?|c+l8c`NW#g+5eT2^pdb1!`Sc9gBh*PH9<6``YG+!lwJMsnkZVy6I>^1nkwC`y zSz@svWpC{L-MBBq{g_;Q+<(FNO)=AnOd>uQ9G>@w1Eir$Ef(rULS?C36V;g-w9btB zyjn&7?FCM+!Y-(&*(!n1XEu2Sf~qQk zz-u!3g@UTDi)*Xv26b9X`ClJe$me!Fbiay+N_DrsDo{l}BEQ)9TuY|2GlMSbv~lCJ znU>DZmdvx%_T2Y6H@VzCpWC&mlk#_N1p2bq<=*(IhgTVMIp;dLzs$WF3{uHUua3wY z^?Em#!mJaR^|N`J%Fnvs0lf-M{TDu!|6UMF6HJoyBH$udUG>gvh?`oZOZ;TSg*?+ z{mMbSOs5lxJH{U1Ruv{pC%*m!dA(@DsMKBg*+%Yy(irB>hooofSs=(|_$L1&F5)cU zgiqoalQnNJ9qOBC-b2m&AMlZ6>X)}c5AI?37h#WX;@a`ECtdfnByOV;6ZZ0PIT2=WKPZ|v>c zgcqE4rUCVsmgzr4y>?X&vtKa)mm0I9hX#sLjWOOnSjKz!Ly(&{mmJ3a$tT!(F_;OS zmM`aH4j{h9E&cp)g$zi&CZt0_cL54Te$OW)NhHEk=HH3s za|AgSV?-`wx@!=kl%paIxu#W89*1+0!!4DI#BP;7Adyz{O8FXTb=){`V?b`M5{m;K z*jd3TCMkOG7^J4D;r7j_GKXlfDuOqzcKQ1(mPUiI$x=7lpwaDuyeSuW4b?7rwO1M1 z)a9W~z3QM;s@QMgojWeCh9;zGvgN#qY4FI&t3@7-$Rr_SG#B}mI-f`+QL8kA5$Zi% zjlvXxABr5ubmB(mym-z#d=p$$dY#0>)F0^$a8}(kOuZMGWw+F;Y9hoY6AH~jfy`jg z4n%EIm0chcSC*G6Dpjt()(ZSuO;W#fzN3SYTFbCoJ9s}UnE}jzTPAi3i+*`mu)<%s zRS|Zd{<}@Ge||$Q*J2emO*UzV{Mw*YXON0TE;Yb}MeK}g=!TUVk$FZGeJ7mWu+P6e_ZD_RSS566okL-{Uv290;KRUI@KlH9 zMC<1mG}<@E_k`PbyjrGT(m~%G9Y75hyhtvM*jCM8Q%KDsV?ZPj$g4F&ak8yrvA(+c zI5I!(oKN38{3ST46>@+rDjZ@62*2-3!(`k1JMrtoQjJp}hSpReFRK*p5>}N}S16qZ zqqaXn|Gsz|SpWG=d@guiJF^GKf<<3+NU6{50{hP81M^?_!ibhsJwo*4gZ{(^#IEHG%4TLesmdumPIF~;Yvy8ilA^j9w(40fyJ3Z(+g ze?Xy(PYe{Q^*}$=>r@%{gp*9GMZ*=XPog)lPBPdUc`q4kHhu}5p_k`XOkJ`6xxWms z1foZXi9C>1Dg@T*U~?5R5MShS1o#rA5(T?X{GSiMT6Z1+z%&ulh^zT9H7nRT8)uQ^WN$Xx>e6;QPxiwbpP zMQX*>{NYLo$Fq9ot$|?3?Q(7I=~xB75XrVQAc1DXg>w zv+3r(kk_}PXU!AM&20;&P5*GuKexU&W$HCT8W9Up@*>8NgdTv3uB(ngeuX!wkno|D zP`RajtE^TNQ=!-!oozNb&NbE6-ZiIvTTOhb&SZ{+!-qzhfwa{o_IG&N_SYub;D4VP zo_c#M)?hW7N9&r7^m`UQ(b>5`Oe0kaaY2ZuJ9&-pg}@WSOV~lCc0Mov9l_7k?01Q& zlm78X4?jo$w4GSqp?};;%)fZ#X<}_9FObz|ww)y>=%>zJf0jOccKca$giW78_75rf zF84I>c*a00$m@+cm1e$@Y@sv{liaV#X`c1p$g1BF=5u2_CFd`t@_eoqW4*?UdA%Gb zhjjvs%Mar4_!^e`Z7l{%qfzS@34}MGA=bR4tJ7-hbh>8qj_s6-1$u!{CK3UzPHKzv zYmLS{0~KP5guKjCP>+`m=W{uf2_VFgmrwPl$dkOEyq4Z{8$Lm$cnXfE@Cg9c$obT* z4?bDXQ@pnQwoN4^W%OD4mC_F0IjooyaqNMTMd%f{zvO<*6X7{9^+~%&uJWGjD(`Ww z^4`_1z1n+MyY_0&ASc#)5^?`JG>z^Lh5EHRJvFew8;kqb8+7bDTEnyJeRyNyBU;0& zSH6*ZY4STdeeQ(~lkaOdzuq66xJ#c_XE?pVhc^n(Vcy_=>}+gsx!crg9aC^je{<50 zxeq4)`0k`1>1UZAJ#A{0PN!10asM*ux492o4Mlg(y*ueg?BA30BHrInA;Luth%oO1 z)Fa!=iJBuTT#NX!a?oNnX2+MDN0ew%N1QyRos;13WrQzFaHwbYw$I=8?OX8=^*FFe zp18D(K27>Kk1imNR{F)e2Wf*We-S5hE4VGEkjaQn#&$MxS8&oW z`4|#ZLqG*CI5D_k`p6z~P3~L7xbR#i)7O{DoLfk{vc%ZD8s$!Ymupos`5yWAcDnjm z!qmgASn(k0VJSGkKA>s|3gcI1GRtf>C&5#{hJ1}Ca48O(!M6m@M@>2O$wD-mpYKsq zq{3ZMdsw8iapUx{_2inZC~bORd1|>wA5oM)nyn6Md@CB4-VZpetlnVXG|ks(U60x`POfBb;0Q=@oBI9)IpUg?IM*LM)I3`<()T2oBCuDS*-;D z{aWPFH^&pe1Izd2=_vgy&wpTVFl)u_$mU#tIUyg>U(X|*u%8O^woLj|_+qXJ$z4d1 zdYMUa!M(Ed2l-f*8D|{v7PtagC76}xld3qZ5^fY&Di`J-uBlHFgT=CTh}!t|RH|XH zx9_J1FXU6(sRu&-*q2w%J{*nK9qwvt`_`VDf6&uC$mU~Rpg)AAP@m6iFM3vCg9}Pk z!7(a9vh#t9KSIFJAJG{M^IJp9js%0gfj0C;`cXbTjeO{Kx~}c5o$qudrFY7fWikir z*MGesl_pxu>oHK+E1cvM8mP2gR7GM zjJgRVbL8)T&#eMv7VdFoVB1G|f8l`D; z{JrBFS$d-N|CB00bP0(CgI zn));KjodcsW~Lu~kb^OvV-} zZ;`Tv>o?%~yYPGgo}Zrpb15QM5@gI~$;Jz$mF9Ac)FI6NmfTkCW^OI6T7#?Z!Banf zl@nL($dYE7Pc0eGtHQ?6UR<@B{(1gc@XMzQxmBR7{CUEOW{VgZ)sUqxh{eLOhhazk zB6r&b!pU+R?OK#KBhen6*BplGn2CyyI2)!Z#3GeS-CYyj(Z)$rYgx=0>OP`UXr?E; zOX})Yc;f>qsr0Z?W#2k2zPoGM(Z=+08?t;cu1)l>xjQf$WKT0*Z{}|ixlgL!wPJNQ zWk1T6#fObX3qkT^UtMVWc8}jpF~}|R%5q;}a>U5503flsD-J45N$-@7q}q-*tUlk^ zm?2L=s{|@3^3Y$+_pL5zi$NvJbB@GSd_sVroG=axDZ*HnNWs-LVO?VR7)3&%AjN6K z1uKY;^>aA5gT8(%s={;zg0XGv?A+*bd9@l=&ubOX-+Qla=8Ybc|j_AU7Dy9OMLb7^pfiP92U=)25Wb<(!cA!Gd=A<(Bai< zjb`dzGPC8nfIlAb`?s~xN84^l*wR{KuP=tgeX3+GEWQ2Q0j%0;NUn)hE4UCYGifHK znvYmdtQ|fQXIAa9O+G1ti&bMkztgK91U1g9~n*}mm z8G55iB?7Agi!PT}-CJ3qO`4K7cde*j9g5EcWSvoCZt;dTH7)Ny*x>3kmX@|8>+hSB z${-pVzAxx84*DaTn(C+Bm2O&YcX_QQC^l`YTwO+UOk7zh7Rg$ih8F9p_#&^VPNi#e zyBC1U>rl<`G)}sxaQX^W7_ijjq@Bt>EIpK^5C19G%b+!(oFQM0!A0*mhD$_|OSc~< zIFXe2Ju04i>w8RUVreCp&o^0&Bh8aj6G_Rh@T^g+ ztUAv>#)$~UX|f6BL1O(?wu32FLF#svB%-ks3l`j(&Qcdqt75UPpHA12*YmY1Iu(U% z5@ZN{_IvJLc)9Bs+@J#9{$sV6a;aL<=@)mbeaIG6 z#7ySC;LIIPmyJ3t7R%ehfvsIlo5D4NdZR@N-;0zGmr^eFYW1xyceBditST$x*7fWR zhMKDGxZ(Z&fteZ0twMu9AZ|}3@1K3^b5rj~^=xohZBCnQMY`?LMZ5}=+&I1FpW->k z>)g$VSt;e3!5Zi6(7OCg|DAgiv@RdhEsQ}t!Q=`&Z+vE~hlP(Rv6+H^Vo-qP$?}I) zE@yQ_ir#xZ)E(NtxNQZz!5r!|V4v>4X7Esb{UA(cas-Wg7q?{^8qN(i%+l+1w7T49 zGEJ+VUb7?6RF9JRF6z1!kEffvn(LEaULe1wFSEuQZmuGmU+e4|;=F~P?Th28<~43t z0O#Qi`bX$vb)L!NVqy>l(O)byCd61_Z>TrPh4<+t2ea7^=Iuu@B!O!_Y&8x=sEy~6 z$%a&2-6JbGF}T?gXNRo4t2P$9Yf=3&Z@62dP~F+p-uBj>Ew6TU%@g72Ptr6u1=>c% z#+6UMiq=G(BL_a9Z{3p3zTUCL=dFSLG29ehupgOOb&<&J)MDs;g&b}c7-NpjUMs#+ zy0EG7*4p{U67g1s13Zl!Ks9Ep$1|D8G?TMd*rm%Ee>h@hvKAV^Ut7|p8leb{Vf9fx z)2Y#urA7G~qMLG-;nj%b@;Kvd8cWM_tC%M|fhQ<1tN;E9tC%NrWcYZ34o`>~kUZ%2 z;R*S?if`wBID6&gC-`_ zVmNHHE1%tyKZ1Nfw>5Td@cNRHpt`|spB0PGvH6>;71d+UNu-*EEs6b8+jl40S6fvY zgTcJ8x&B~NYQ*NM7nGM#`-xO4&-g73dfV+&ce?FPkJGunqiKcR?#T{iGLH_gL}^P`vZ4Q_3?V2Oy_=_^ zlgAxS+nSyv>Kol&hka4q+6SW1nz}^dzNL###oKDhzh8TT+0VW7W^O0;^M5}YAAQ?_ z88^CZc4jo45OEIo#VMK0Bf~47WJXip@^Uk31uz=UDU8PDv90P%E@G=K7uBvAAI*}5 zch{wx$e*u0$zaT8KwaB;=eZ8Dy$2bE)XL8UKyBeuYd=GT7r)rzzS^%Z zz9E%LJ$~){m*&iQbx!9NuQv$HX-)3==DPX^Mn@k^rdp1p418s6Vriikc?l%bVPxYC zFt)>ZO~XWxF0aie#+_QsxWTo-A#k<|qsIisPf-FZmzPro247lgXUZM&vt*$vaCJd@ z!#QM?vn3Vfk|vL7Fc|DJiFE>jx!N>68lB^E1*IYhAtGU!tn%?n86P$R^32Lr5}_5b zk_v$gE_jlyR14K9OYJp0GxSXNay)ss*Ec#;hHC&#F_Z|?8j6V`f!l}I4)Xr2(O zu`x`kFY0m9UQ`+hg@`n_h0%K48>|B~%fes$A~~$rBR9n`uX)N%j2lWzHY`go1~v%k zXm>1323Dn(y|u7*eXVb{&p*{}Y0$)yL?M&b=vE|G`g|>N1QEi!`xf7YOw1EDvt=~d zyvS@cp8)9iLd<&bvk&w37c!*Sp6*twlHF@ooH0MLGiOiSq%~obf^pg^oP&bM%`XV` z)4F)#zQw;T{ds0YuU5%q+JzlQsjnrbV59QNWDqX=yo7CAajHp!7n7Ji6%LvDf*@U#5nq7VNZo7Ae zr~k|SnN>hbtf;88D*7VBW`(s<PxaFi#07LmQI_k)7)g68>v|qJkJ;KZ*5rR^JS`~K26}d?xlA} zp|@iD7Nk;hO$>T*$-DHO`N~EnLv+#>DX*M~#bU+P%vYWx6cekNUz~S^*{J^-9n`9| z6pyEwKoBf@4F2SR;Y+-~nNod(4Njt040$?Q%w&fr5hgV4Lv zoIKg#%w0)x;AjPOukmBZa4OE_syCdcD~t6x)FMJ5>m;DprX4WlbnZ%I-T?!#R95)} z;-g#+S5PhqTdHL6ZSaspmwO#R+gypL(oih{D!rwC#I6lU^%g!d9eJut|BMZrO$gr# zNN2l$bBAj<6dDc0uZfYxZ!NaBn>^iySPDdqK$6%h<(|q724*^KO_0_Qj`?~7jGvi8Q9S|}a14qcYg%8iA}nKKuVMZjXYeuV)7+aJ zE~l&%xlBrqqh`ox4oNCST#ECmR4DT6b#1N?aOqMqp@cBfN~q+QA;GtlU#67`E!8mb z@L?=WJsoXc7qBE%@G(AY&>QD9`<5r2)BGfoyCFKmVv7U*kyy=^CFzqC(V++26I8=@INNJZI2k8R5-nv;WJDuFBHyK@0T~u|Vq7={h|v z8@(z=Re1&2NO`$N__)qQaS_=o7l$nsVt$nf`w3U#D(VQ7`%qw8m-m{-cn(jQ}H?|d~lXbPnz zkfP~k>&%#MaV?g0mOM+>zP@zpPHSy#^Lgk?&jt*qok~UO*pmKq|sZ= zU-J3PM(^IK&4&l+Pp9A0(y`g;f_*?r9>CZKVTs1!F<|w%f=b1X5+{5-Kcl!J0t^j{ z&kAMg$vJyG9+%za+BRe8wzv<3;h0sk{e^V8wWGD=wHtd2A+6 zHI@!du_mU%;D)5P&rO8aH$l=fWEvWFz_|oDUsWZFn&kl%=S4t)V}xB8;Y!e|Yhr}s zgzCTwUKZBlv;b$b9IZcs9?y>ceg^)JLgGn=|vWFWH&g)qdd*Y^jgo@2+DQLI8X<66*R@3{A*kaRW)8;Vue z$6<9ZZ#I}gaX`8tob!vidZ@GG<&AUBx3|s65)JGu(oco-R^bSY>QKEi_9h? zq^oI8ZDIs{cHyL%8=rR+NHei$?CzzJ5tloI9Cnj`E3B2%^h(t3pxU-%DLVfUV7f1@ z#H<0R%%^^dZUR+U`xr#9LdnnT*W^1-1%pdGaJ?vbdk!C)aipV@5%SAn`JhkWAG!5} zk9*Dk42C!&L-Psz8YL7FQMEv$eHlIGh0I=B3FvQkwq-UYAG5JbWL*L2ER8!8Mp1*PG&p=TS_LrTPSI7YyH_4YWu!zyc>Sf+R-T%-6fHr zCh@^}JVac(Fgm7sD3bT~UxP7Pi;`jrwoPGGCea*AbS%}%ihn35ge)ui;+#3ea0%7B z4@cZEMF5moZj&;G#q7@eDZ zO!iIQ99I1)IF}XO^w9KJ# z3I)R8^7`84VdP!hx4T-7ayGdITDwN08Ia!#l)}}m!_h-ih92#6cW&~y{Z5;@*#VwT zn+3x2f-2#X)5%nZ`U$zEajs5Qjj(jR-CMgp7N3v3--;7@E$<~n-K{`-OT(I%05l6{ zfrGvW6LdJ?U;6KMR0c*#{pviS|90*?lJf`$agLY(+U+dm!T93ETEz4UEYhXz?9T1|)R+pbPDqB3f=oqv2z;S!;G zPbhLJo>Mx}C`p2H2l|oGQS8M@@Y5rZjbpB0lM4%GutWJ+pQ zcBKEd1gE4w)AH1^%-2{YxUR%^-_q@Uwq#v%JT^^WxCamzJ!|^Cq4=A>kDbhFxFQ zl`v_o^Pgb@ZpG{ffkd<(?f-)Sd6GHbF8S} zQm?Jp7|H$W=izP?Dxz4iJ8X$oRGso!nA|ngIc-MUnqmC8(;bw9+rI$BS1I!8(2e{JFPeN68U%c|Ff~ zb0(SHtPV7(IKOE1inksaK;tYIsu0WI$p67^{JzJMkV(+vOByy=q7tF-V8CHp5UF46 zuzTbRaloKWt+XRqZ z;!2Y=F`(9}bQ(>6jV&n`Ys$*iB1Oy)?$w|d835-4z$q7?uB*x{V~}PAxf}mA1n^XW zzw%0KpMA>x8t?1y(9SE_4D=49>P=-m4Alcg7*JnixcZA6+)p+ zneGI62TZXR-fbMe%|0&z)ONE8I@6pwSBtco)YDVAwf}4HFz z^7%u(8m-o8HqQ#hhYbd!wCv=TvAO@64ZApgV$(RWU%`GAb3VufGl~3Pa6W2H?t4h6 zfAtt=(Z67sm*tn4H-Bhz?%Xf`HS1X5d{oI!=w$7@e}`Vd_^nt+da;aPJRNMW5k@5A zM6g^@ISx7oYlv}<;A_I+$Z$VuFpv5Q5cDTD^zDf^&DY4P(=Dyvxqb7&I&sG>{oOa# z)MP4Cr@OkZL9n8F6W$IQ0)5`%5jaDKI*x2@9Fad4&E1!9}cG!o=LT!Tp zW?UOw``C?Hs_MPcn?Bjj`{SpKpE*K*%sqimLL2o?B5SihUe)GYBEHgzbl96 z=%rIA#pS?f@d5WP&QGDkEiJhX*A+Z~+;?j}~>iK{FOpX`|h^nf@F^h2^7@c9Y zz%)V9|BPs;*XoXl%FB1~czhj<5Q8D6RN7G2$>Bf(<@+Q6NKK+BE$5FNW@<2G(xA~0 zSEB2IfccC7eJGVNgCQW5X^{y+b$dc1ZnWdHIAvmagGCWgdS+OyKE1{?CvM1?J?=qU za8Rq#`mEL&p8T&+)ju<8YVY@GqbhS9!XA31qE@F3i}a$fPFt%~>Z+w8uTtC8M=%DT2Rlmk$LSRLMcmR1;{5m(M06OcES2rx^fJc&O-g-`2@|VN9YC0?3|KOWGyd4 zCG6UgjnH>)K>z1kL5+7n^MOY#AIfHIG3KB{KWC+1UXwwaDaPx=&?F{qXN+p*)W;(E zp9y>iF)I)M%2A03(-^N|A|oRJniP}1#=#G$HqU=VR{Xl~dn*r@D)BADckyfTm$tgP z4s@_+zkl1ZL?gCTS4Uq$UmLgEW_3}*ntFdI6)|d*hOt9uRyA^VpJ`YBoK!Pr> z+)`fVRC>Kz8XaD*gZW4F?z{dPe?X%$&{LY$KK9sJj%i+V^Spa=f1QWg3Jv)VAefq) z$GA<*AIdou9u)Dz`}Tcj?_P5M-o5WmyuvPva_@1^l`RBk2*N5(6lvmo>Ya zb^3%+tQU!$o6ejW`zn`Pv6stbydn~G4E}TJCy>HE&<^+?S_aFUMMgbq$H|pNDlvOz zIDe*pe3bslnO9zI?h{s48N~XKQdwiP)XNp>K2cSrUTp9w!18=;^-s-;l9wQt&$E;r^M*FwR z*J1S{#Ev9%DoFq2wKI>tO8=BBJ9yv?-tXy8@4Jtbo~3hy!(7+M{W<5J(tV&CCPTz& zRq`hJ@`}wA>h$`P50SYiiL6>0x4Y1kKzai0sMfW$u5~$myjNa(ty=993niGFR~2Nk z^9?#}AADAya1T;{DNW|F5 zWN2OvMr4URLdVk8&(fZUY3p-qQfCatM~IUC9rwVcjYN5zJk~crPs0q}#ntV&S_6~{ zu;9svpyNjX^2rJyh%mMx@gU|q=>UmooR%7laf?io&Q9!dR zWP~as(+N^MTcW{cS+#`8kzMoIU$}AZy-ZF*nq7Cs0WcwY3mVcSa2qyI!IC~Vo~>{i zY%4paZMNA=gjgMp>!vp^u$ny;*{c3j!>N%i+2(XBA(^Jer#Fv$xv6Oi*_xPcu-Qpl zZSBFXr9HRTCRzZBJiC76NF)*;?&*1b{gSn>_4Le))YKr^kIG|~PQ{vv7?0ydHYY4m zD7rN(*<~A70j$rE(e3Z{_0A+@dUww|Tj`@0zdq--P%umYK~{77+=oejXUAJRo3_8z z)j3F=B=ynQp_%D?{yJeK<{Q{QE1m_XYZ|%IP@wYPoLA8$;>6fl&YavrN_c|wpS-m3 zIN8En@e!_Qz!l|}uK)_?hq;%jV`FDtA|Ib5%kg3IG4t6SSnD*_8XnChOfolE9=-}n z3#;nBjb=-`d3dMW<08cDux}l1Txc`6E1wY#H8k8iYumHvI7A5GkYC!G z+EHJ>>=?=3@h26~hIm-@JNsw!9;&NrH3OR=G-rPx5FGC5{nn;wo8Ic_9R_v4DF=)o zsCb{SD*^8ov`sdg#`)xNy7ckK$*0@{xg5p8%>ILh6Pc9!5bGf3-j+v|M4CEgmtVUd zGC7r;1pPc|;of#??5PJH;PjkgK7Z`9zi@to`)jdovZ8f}6~o;yJ89!uk+ zxa&7@R}o%bme1T=aIi-I)^!{an-6ZC@(;01GRL6S{P&jP-C$!U3>xy zmE~8VB5pTnNHsil-IgaC8X5^{YG`mmNzR8}{Gc)_(*_R(pN@;l8%s z!}WFT(7O&Z>v{+F!H0cdQPrW{ks`+IWK1iB!;6_SwSaJ6r+-#6Y%$L_RknLd51*OQP|x((7gS2$fQ69cZPKQa4ezt3wiJ9o~SfjmvL z<93*|U~L3mrxNZ8tT1dr zg(x1*&x;i?39jcEf`Tz*7a^cwu@mwX`TvUh^7yEV<=@lYGm}69N!SxY2q6mu2s6oK zVJAC*K-fZLXGj7GWP$7}*;xby6$AwpQ3M1L6cBL%QMoFJqPXD#2;zzhf>$re2XWt^n_mdNETi@$LB3Rn(LeSa01o-%h z1$$fEgEK%h3%dTEsN8Z}4zV`}>G|06ojX1I*!TO^xpdm~@ZL@?_v~eC#E9k=w1^BY zH=4zf_@8rL07{EMiT5Vp%9|nnB@mr&{pNFQ%8>H~!4l9ftl4Ds=kx-3zU9@H!{jAv zJe@#e@HSsBSckXag<)4IE;Zk#gc@EVC(c`6)$6S%__CNy^v{+P9XimlE#2_Wi+Cpn z@1TvzUWWGt2LmAX(yO(KbK>8>rUw&2_ zP|SY%0~k}so=|SwMN5`0TJqS@%)N7`fqeo;VD-pU*g{W?rsD#Cl*GV4+z$WHQ(B6H zp|o4~%ACR?+4g^M4gXxe2upwd#y2D#PMv~(7>+s3=a?TnIAO8uxt0dH7N0pVa!xmv z?KTwPNpJpTWi+_pJo7v1s+!>u14p<^bJxBNV8{M-<@7_Inj`r(6 zx@Rx%R1)gn-$ac4{X-1}M~_;U`;Y97;~9E%AL;Kux(8}jj~=7_14Bat`-g^d|M-@! zp1pv1P`%hM9b+?yI^n~LMvJ?#s5kW4$wzlvuT}EZe%(8b!<>POyY5jhGN}8Jbt`)f z>ESuF2g7&uJp{cX-Dm8i;eFMwIF@>QeIoRcoeB?=d)fxeU=r-)CXX&%A_If4)sDv| z6nSoJY;I6saEEC|KVLJp=Ib|Z-gFYuzu(YaJtGDr&eQMjHHe>T;O>qRPx1Ed+t=GW zg$(Nz7}gVe?c^tR$4zIqo~V1&V10-l*B%z-fS#8ge-QxE(u&%IPfjPWF4|_Ug-msz z7MIUHauLqDya-z~`*n`#!iOqS>jw1ezxh`zu;}IGWO$^bb5!`C@(H{LID=X;0kuS} z`MtCGZ~rAKX(U~yKRRmU`0?{r!T2{rb-_ks~CSpT{|eABBWwpH3oA z5pS>FlOu5IhG$RF>hA$J{(VlHCn7&9z`pCJuC#ndemQTA-v&>_;Uhq-CF0)zet@|- z?k|o;j@z;+r)v7Qos`O#*Vwjl!#D?;P6W{6Mn)Ih99_aA^M|F~7j7P5;^*KH(j_R( z6uK-reUr%?cC@=^uW4iahxP2zr_=T6$+>=5xZ1n-q|k`zhqrk33^f|p%}T&mw?m!C z_`q1tUVU)F7HWe_qb4TnSVf}24mv{H*L8d8veERjpN(S}MU_d_jI_wM7 z#6F>KBfVIp`L3#Sok9$Om`}yp1hPOglV!kL4|tgV6Tq=ar)D4v`gj7Gfsx%g0voNk z!1ff_>#Q?$eFQclWRCp@uv?Eo;{y#nKw}`s)^b~}3!Wube_giz4ZynzDp}fL>se5L z)*65qXcFKd3clO=9^lE=5M87G0N}7WaLv-5uzm{oy?_tYj|Cik1&0&8fG1lgI^Y|~ zqA@(@bFC@7H#7uN3$Ot-QbA*4I~t3$$GMEHJf1+b1MI1sHeF(UuC?r+;kLfkMx8GC z{Sv5)C|2JJC|1FP=d866c4)I5I=eK?1~vHGp>xV3?NF4Dpx{L2YE9ZG8(iN;!$R7y z7u&HHf@`e}+i=qcr%PLZhF{x?6Ees1s1xuhQYXPJfQsl#NIi|`oy=;@)wtXe&UtdU zfy|!CO^Ma>$09UxWU;DpM%lF z-Zr@2hHoGiZw}>teGdcI)Epu8T)J-e zh7a0(IaK%~qU09|+Orqhtw;YcXiH0*rw;_Kus=hf9Xg*Bq1}x@O}G#3Zhx_c46YdV z!xa5j+awM8GmJk-uQw8hlEM9=N5z;6H7xeQN}oUsdJ%WBs$+;GP501`kc_)vK4cd%1I0G7y{o_VFCjmFy?SM~z zwvh{uz^((*g4^pSrjO^~t{Bp=NhR_nWzG18=Sz%T2+gF5+|DWDnvqbRFA1IB!t+&S z9mM-B1?BDLBi4@q7h?*727GeZ;T-KzVQ->#8oB_V*G}HnY}fh$U)I`V3T`0td^_5p zhK_dVd~bfz?`O~&AAf+>#JODRAcB9eEQi4flGDf7wRfNPD(mareYhX#(Kc++eW<5@ za$q~11;qLE9MnaOXV|3De`c3zfoK~r%AqS2IlfEgn9LM8K4dlPFggM3nF5}rEwz3H zDo0>bQ-xK|67bor-lC?Svqta{3E)e3mX>AZ?ff~8-v-AQ)Elk54DW!G1)66IFRzop zcN6qwTQyrdE9jrJhVroq(3kKm?HB78Hhf_V91a_w$!$TlVcf=L%Qi2F+qi70xGhNN z{Qle)IJ8Ez1hV}~*Y*evh$vi0f*=i)XZ!H_w*mP?Yz`V6$}J~ePx^E z87g#vngP*}6DeysB;cn3Uv8)Zyn}-8(BP*DUvjdc67Y@+ejiTG;Qw$gt)SzM0G-qM zSkS2joxK9?rSQ?F0sA)KB^*u~75)btt{nxP;apB~kH}N`)t7A2!}Bz7>5<-tw-<;s zB2=V#J7E@SgGd)39VyZnPsMZ4;&ZQfA0q)s??>84q`_R#LqLq@h)R&&i08>7jlo=` z*CRbzq}@b%38b{Zb2cDm;?IxcId=3x+C!w1k>;MVfqTk$KFa>wOQfL#-FordQ>2AF zPQEA|$OG+JT0bDOZSOht1sv}Qcr(1fR-82Rqwa3Q3TUZGXsOIi2k2TzwZKpf=o$&_ z#sGcNYQgCe9CxjRdUIT<=OuPMmv#OXP;oxI(EcWYTYiFT{}`k#K&cq`j;=^ofX`IK z2L`@I66u$*pO8C$PL_%^>Z}f@QsKEtr1R|Whl#Y{t$*9j+oIe0=y4(=i!4h7B8o zQ=2x-GxW9kjzW)BjGyV@w{c-qw2W#Te{-;xaAbT9XF~>J{kku@5cxU|=8qi;a zr9cD7vBkin&lh-kiu#X|2XuBJ*VeOk?S%+hr-7BKe;u^_9n!ol$(6LsynXl(V`Fy- ztN?-aB;ML2XrnFTw1YTpA*UYEIG2-azH1DiSvcK&5x$@g(q>yxq8KlkO&%6h4uI-y z{rBJniwAzjf@XYI@-DtbxrEUb1K+O)?+g1A?M-L?HtIn!NdugFQ3d+1zzsgRfN#^f z13tyNQnvy2BYS28DG1yo=jp2;c`nb-peImJ8`@X;Ckc z#@m(wyk1Hz@qSWj$pS5L$vuRYc+HbqvfSh~Pn>w}6t2pados;pWKx_)s{hhfy2R44 z7qEqW8h!>;w&C-z+v{k+r6oQIxNH;W{dv=djjum#*cP<-DRyiwiNuzYh<2V!BI^qJ z{jNe1(XtASOOL{$agC=#7dQ(6HhxLyLY)$T^ktD2&z*XM2cE-LELu0h%T?g%{{uMi zxX#`W2UMKo>=Xg$0g2uE8(9vxI3bYpCT~gX>zudfAq||yZh<{d3n1eGm+jL||UG;YCw%#{g+vR|5Yx|r?I>y~N{$7-7kf8pwlKgpr z&wJ4z(Sn|olK1ANy#de(0vol1Yo+zFz~=BV0{fK2j^)^C)(LvZv%7fy2oI0?z$eZ-WN=>?_hkfp>+!Pj<=o$vFX!1pF)hK6y#O&j|Pw>u!gZ z)rn;4E(-WIz}wnZ4u3-8L+TAqryz%{qb0hx$W+KDYjh*vypB5IXoWX4cfe6gbl*F{ zdL=$hZoNfjD*SH@`xL%`CjZtGZFjSvjvAn_C$#=V#sU5(av5RRYR8`Nok7ul$ysN| z9?xgx6z!vi*X`Kjt-NM%Nj5kSwPPo>{!aKvr<9yaC|Vbq^b5Bjp%S6 zcjyOe2<2P+c>_x9PCfCSOz4Sb!y)1Az2vsd&MmvSi(R(1oJ_y zlkK##T5pmh8@5wNJ9gHuPIlV;?AW=j=gAZswt;&XGT*uHyK!u85B3&22<<&u?ElKQ zt>q5nEw@9ik651*F=n7@b2D`xXng!_6{vE5PPVyROX%$Ymu)n+CWEq?SA{jnHoD1< zU!ps%dD!u%+VSUVYfztTZMugYe=bH4d=>shVSR!=tnWu*eVqO!!!rsW*7p-y+SVJe z5VI4vK8Zb{^=n~$zXLnoz{|`RQX1%lD_pN!_UDB4N$l~he+uj4w4XP;VaFc-7q=&o zQ(=7)JE`@1VSO^Ezu2*pe)xl9b3F>{xb-m+^U64sm-4%<|K|A6h{fr1(2;#>iS7(p%<%!AYT#`K?`60= zFN!vU<6n1XHhh%YUnEcAUl47E=#^;lHMAM9BTgMXxAONUwEjxwqBO4y>b%X6*b~0w zZ3d@(+!_9s!X6K=fcGO@mS;qpA+g8*&f5$jxpSNyJE`^GWP-w;%KKzRJLxJfW1$zP zxeA+?+FG)V>&;O=qRrquP-?)`i!v@u(26h3h&;QK{?7!El6@~ZCO zC9%0TE3s#_ZV}$B#J-F&me{j4a34Zq^Li$+OLYGd79p^C2?%Un0>?!ONPJ$;B>r6O zeo@aPzPlZt*R#HyKI-==-oq>WOx=f~ewV@`_UoRu<7etl3yW9_d~A0G{2n5&nL70K zpmPZDzM_{iD)^%U&U?8Sr(<^f65TbD!0`d^Ygi7r#4phuZRN9qz}GhjUH+tWStN7` ze7)>*;UjWgmT;~To9j|y&uU#QbSbg9uP?D@-OW9HiOqE>u}gF>2we(nQM)*{ux3%a zBtF-r#Gk9x3tdX;w-t3hgV88z*IMg#eS`ixJ3g;Pymmo1`Z3sTOG?A73LXUDqfkrv zxSDPJD^rKB^Z}2vx`+r3`2l!0Rb=_qHPJh?>{w8)$BSUE-TGU1T8u4@w+K!7{ zT0SBIKPHd*YP>al()th%#o+!4k3In>w?*#m0erW}T?YmKUch$(j#G1i|B8Zx8R#Sf z?lAvO^Z0j0fM)@YQ`&)#u?tQg^O+o;2KcvvzVx^9=l}uF102UgA$J%(5c0r-2mW5b z4{&_)bUVIWPAL!f{kZ&69*!U6h_8Jm=x}_Tj}AHtU;9$P4+D<9Q$OHHkH3aepT1W7`M4|tV60RL@-J#&v zc@uEZ<@h-9lf!vmGT6ZV%l?2I7JWz8KYzy25JDZjpW z{ycfT$hHGtk@XMKanf?R0pIdT)<1NUH^2S%=GzDOHhc>#+oB>z{@YqG$Uh)GYS?1A z%iaGs&ZM;kd4@G;o!aJgd7iN(xx#vjzSi7y^yo3VZ!`I5OUnbBTc*=}m}fw};g<3@ z@03~pqAxbz^YY8b$i>ZM&_mXdo2~uGMLsuycTRv$H}Dbb4Y4x;<~x;&!LFynx+CIl z{q@B|ha6TPkultIXCinbkbs|SDTOTRE zapTyzbEKpJdxV#g*R9*?Y3}CTyEj9k9oD;bSL|b#@I?98B}SU&(*>;;@O&qpU$T!0 z!V|q2EuPL5Pw&CgPkFuIvl#-O+V+;H7oyz&HHp8`dbgem{LTu$M&PdjovQ->Wd*kg z_)rcP^-jcDpd;atfL|2&BF+MQPU{7XMUH}2&`R?WfoT3snEZ7Q<4Z*&+14jW-3Qjg z)OzGYQv2A~l4WK)XmnVm z^_|a1(az_rMW2&c67#9Gm_E80ThhKsN3=9;#=?MvmSYs1v)un3GavszZO6T2+Go~_ z)~`P%({>%UZu}JcWDWWlThU+MOio(!@j2h<&DOqTn>7Q211MGWmi**Bj47;vzKNDX z*Xq`_t+LduyZyRYWl8X@!MEB$_z$bF$`L7tf6Sit#=aXDNIx>1OeV+32jmCpMWg6A znni2rEjF0#WMAv1=rVMhb3-Ea>wWd>FxnYoSZVkG-!@e_9dx?r+|PN8^K|ED zoG*0<>Co8WLPyduujB5HA9wu8#lywulHpS6@`=m$u7h2-x*qGK@3gp6d1vR&OFCC| zKJFIcw$<%>_ZatLY&kvHhq4zb3P}0&ink-w{zb|eO-OSe5-vQ_r1`s5GTUk>fg2h!2YHE8~U&BzqS9a z{?GS6?oa(Y`+NBZ`iJ_D_8;$`>TmJS_21`z)c+0t_x-={|IYtrfEM5yFgjpGz$*c7 z2YeK8Ik013k3he`kig-A34v1s=LIead^+$*;K{(VffoX=1>Oj>26+Vq289NV4jLac zBWPhzUQk8Q%AlWv{xiTZpnO2nfcpkKGGNbu!vkI$@a}+52V5Pf4RjsYYoI@Nk{LO0 z+`#n%w+`GDtPl1G?h`yPI6OEycw+F(;LPCV!PUWQf;R;}9{f!3(cm|N-wVDF{LP@U zK@EfM9rW;^rv^PY=#@cl4LU#Q(%>+4TUxoY-a%-qI)MaRo zq5Xyq9=dMmmZ47=I~cneeT{>R5ylwfB;!nDhH;tkpz#&sTgDHKUm3qQ-ZX`pMw^mM zkDB(F4x3JxPMbb9T{c}e{S~SUbqnns8i-@I#)hVZriVTjx-ayT(4X=3==`vfur*4gQksI+w#HSHA zBK48|A}b>gM|Fy-iMlz=W7xgJ4Z{}>e{lFuBRofBjQDY6?~!>U-y7vOYU-$aM*Tk8 zJo>;GzcKk^ZjB8ayK3y!Xy525(MzItL|=;O7*ij!HRioo66+NkA3Ha;BKAP+PjUU? zisRmk?-*Yfe6z1ns6&IAaP7$TH=z#>clS+Z;kUGH*(ypaT~^+Ng_#8 zllCNC9v?OS?(r8V^qDYwLeYfN$^DWSB!4+^{KWi;8z-Ke`0J#oNsW^}N*R#y^5mJ5 z&rcaJW%`tcDb}f_Q*TeZYx>aXH&W-No|r*rjGIw3WA%&^GtSMpoc7vX-S0}h>(E{Q zy6eJB_n8SZm(E;2^Vym2&HQ1Oe%6#(Yi9e;eq;96bF?`l<}9DHb*}r|C3E-8y)v)c zy!d&C=QYodoj+}U`ur{PzgzI2#ly13^7F#G7JisME`3M(zcW%Zc4hpTIU@7vfBYTE zd_VKc%;rVLMKz22EUsRBC2K&|ne2C$>|C0(^o6DGEWMVa<($iP&qa~sIp<~N9nAYF z-#Onue@6b&{JZn7EHf`#vaDg*L(6_y?zFt`@|5Md%d3}fS$?2^6wE1jsIXI^Z{hU9 zoWlDG4-~#rc)7@2w5X`C=upuY#lgi<#dC`{79T8eE9qI%w`5RBL`h7^#FCjMnI+3h zs!P_CY%F=KWN*m}C9jv9E%~hEYRNApw@VGBT}pjQ2bPAHjxC)~I-}H5np;|4+E}`w zbZhCZ(&tN$m%dZ_QR(H<>!p8|v9iu(o@MjPmXsBj)t0R-d$8>BvVCPgmHoS%mUk-m zEDtC*m5(e>EMHZAfBB>3PnRDlKUsdZ{6hJ)@*CwX70wl1EBaOhS431qS0q=YRV=K? ztthK#tXN<1aK%#<&sDlq_N?@)98x)~GOjYEa(3n7%EHQ;%C(i7E1#&`UwNeR)yh+q zXDdIh{HpR=<`ZttJhU;soq|_yZS)&(dsv<&s3kU{-XM7^-t9|tD9Ho zR=BR{w!(Ww(2AieB3Cr6xM#(t728+rUGe;imsXrwadyRLE3U5iZAEj9uExE_yC$e6 zv}Sb8_?j6tmYUp};+pE3H8q=Rw%6>fIa2dl&D%BSYCfy^rsmh0KWlZhZneE@18YNS zBWh!6C)UoawbbU+men@YuCIN#_Nm%~wXf8^ReQenV(quJztrBYGt_md>r*$d&RjRP zZbDsJU3y)9T}9o>y8G%LsoPU`u(%7Jq>15N{rVCBi znr^HlD?6?9Tp6&^v~twSq?M^FEh}?ZmalADdEd%MR_ukI)XRpL27* z+sIp*i?itP-}u!dgx_5Fbj;pnealCNM0`!I!RLds#Q*8u6_+Vk4YL$$36EeEN(NTC z?8k|o`?OP-hg^?6qmFCyw8JVo63k><&+WICm+Wz;f zb_CE2@#`fty&w8={7KE9g7!~gSBCZKw*=)Nf9c|yh>}G`ij{gOoqtwovK`AdQ} z`EQi^6`=fh3I6wQkey?OR)w-{|2vBGI`MPCs`}G+{0@lne+bYf{MqtU0c()IQu|#6 z%B34h{8{z87iD_rZ+}K;ng8O{Z#&9hJ9!Lc{hD?+A!G!(LHZ)~2Qjt;p~UYc+}_V? zFKfR+hFWbhX2}kaXPVz>$!cERGP7Av2a>Lc^$)|smS9cweXy-%T0G{bEm|F9PSnbv zy<+W2tc*K~JzSpEW@09>4D<5OU}bF{uu@>}5qLWo_&%7`hy{fm*gK;SFn3_B-XQHM z%z#zn7mB&9-OzI>_Oq)4#TW3N2Q;`7_mSEfTz6_&(8<%VgF2MqFyQaR-Eyo#`X1#F zsMTZcVJEC$#CS}+;5_YOu&(oy5Qa32qvOF(TRz6M#2H#Vbwlwj3r zGkKkk#JPlrkbXv3BhT4>th5}0@97JWr(CTFa?AmLGbF!Xy8_OESYLez*w4fEH$v7J z;8;LA6I><(`aa^@G>m5iQBz{r42#WuLf_2`J?xjN_DJo^Ue8jr^gP z6($oC?dN@7SjIY(}hB8v5l_%dmahIN5x8J0q)8QMCmKP*AHCWBux-o3Z= zTiEhkaB}?RfusC=2A=%K`PqK5-W>)%`A!~Wlv3K>s)DpqUfcUz?jw+#|4xdZq_zQh z;JJ`Lo|m@YP;fw=#BWOLm#wE;k74A#7GoGkQR4eRuRydR`|K@sGHQ4lN_Q0OXf5pQ zD6IAvtm0*~!g(T90Z0no>YTU|8a}v7S8_)kf%Z5X8YRur?&_d+lH9bPYauDMpF4pO)u;JmQqBi^$&>#Zvd ziS}6ERx^pF)4fYJU{pZUKdi^-E$J(-?3}hpxdnVo2>&i=wAEenosC;xo=!|jNknOO zYHg7`oEOqTz8ZNf1zdH*F=E2;a4)dG}R4{rvg`_6zAZ&yV^U{M`Jy_;vU5^7HW< zb}^s66mhXLC>@7>I0r4S#$z zPP4wj|0jGze_`wJmOo*WnicZ^)*5S}wZNKd&BBL1T5EFa1di8&5$D#yEpN5FiTeip zRpM_M{?HRx`Cm5fG0OQ((A94>?dmD~y>aD>uLJnI{NJUym&RU-{`%Ub#LFixAGvtw z;&YmIIrMVC<^C57F3r2_dg;=oQ5Q=tnKbRIqDuoV1zhs{YQ$H5U-^Ae*>NXJq!Wat zodBUP@OKS=KWjH(dIu=z@IU#F9zqI#ZU5vmdW?RICqGL#gC5u<{FUHu3;r-$po1r& z8;!rI9Ebm}nos1Ks& zn2%n30qVB}?Qs=-^qJGN>8MMoXkj15s-pX~ zSh7T0O^dV#$UMyBtbmQikl9#Sy;aK~i%{?4NDe%fc(fby(3(7o9()(RmE5U~L)&v0 zE&Frm;om^}{~BuSi|9Q+K|B8udhU|7|8l5{gmAFszS`BI8ILNg#=2nl_1~YEKY~^O3FElZ0t| zh_kkjxX@x+qCHJIXwMK=Z9nOx9U8Twg?%GSlQ#(d_(NbEby-d8c zSBbaw3QjKl7xCBLB!1cn;-j4+{k7LgF3BVL+FK+*dz%EJ?|X*?A#xa~ohAdccS*2z z7T*4QWUzJ)zT^932rbuMAU!ZH8mXNpChap4ftX@~_7xeST_U5ji)5sBnT*!1l4$J; z8LNFw#?TeCR=Y-GwQop__8Xa`{Y)lk-;sFjS29t%PR47$kYw$5GFkgKnGQeaKO_xa z*-Y&=xeN2(pJHzLC&Wrm5xusXIB8#yVepnR$b7N@QOsg8m!y+2Qclm43i=WKn0`Vk zNfrHyUZj^uHN8x~CM)O_dX?1BZ%8e@M(XId^gB{dzb6f(k^Vq`q(9N?^k*D~`YZj7 z+)IC_H_3W>gKQx8p~ZTDY(z}-AiYI4lPxTm-X_~k{59D z{EMs`#+YA1O!f-vPF`g_SWj}C^&%&jCq|mR$Z6J_oMGOq5A$Jt;mMyR?=fFCg!Lou z!<+knoo69zD7i!~lds7YW@IMvJGsd|V;9(m>;rgve~^EZKiNm@WAYdI4|^B=LnsSl z$Jq&Tn>4de*r%k0SlMgrB>EVQ5=tqfI%a0!>~;1Ai@*uam)Y0sO?Havse%2Ay+xg< zGws06(T>!Gy~o~XQEV6+PF-myc9C78ov9o9oPB|w=pFVY`--}=coxSJSRxz8lGu3a zLA$Wi>dbXZKM!9Vzb_pmzNU-LFj-V==aA5!-e z`_aFn?iqTkPu0B+>npmbd%fmGqSQUsL_;b`$4MJcO4NM^&6S)`_bynsct+j3g3cv% z-$|Q84eGwLHXYw%2|92HTb`TEZ1DMA=~={5JkRCu^s>?ZWuZ0nMHFS! zOo$JB(Z*%Lqx3~vnU7X6A5ZgSTpbr&ttZb%GZIP zEYMsLs9O*_WkNqZKT842hi-h4k2YO}v`e*rB6S;!65wT92#VRDlm`k@LM}hoGS_x8 zo~46V9@3fM>I*&Q3GM~B=OxOmAR6Up0iH~?e`heB->H*OQ3l+mxCO}aFGX)!3b@6A zRtRJ$K-mpN**VI=Er7?lvFJA^p~sC!{48mvK^~jECV{#|y*Wux;u_1bjkmQfK|bJO z;ji641`i3f!e0x3zaIok9fmt#~%gnc{nU+q=+Qq(U&Kp z?@ki^R5EJBBv=?9ADAjUgH-4uO}h(G*erM(bKpsIg=gL!twc|(7Vt!b)*IssziBtL z-?c~J4cydjp>N*+uiyY8vLCeT=+7ut5;DyRzDN`Nlc&&=>Cj)jf}JLw(EQ*-xS=iT zgYl5P+Utm^Vl;Q*Lv%!xaRiaf8)%OXqgTe+X&PDp?7lG;p2q_1Rrna4wO=s0_bXyk zU-&P(uuiuhBAZQ!i@M;{!I!be&?$IB-y!xsiJ0nc_(=`$z4=#o{k4_YnKT;ueH(tm zzfgyt!8l+?EuFZ)YjEX$3H+T-@JHORb&osRn77dPcR|136<$hr_%MHx9;7Gf1yAA( z@zUPKm%IOgC(s+Ck$s2{_g>(|_>unTan?w`i7X?_NdYM&MWh(L!B3-?8_E?)&!hI6*5P6tvCEK*E4mnNENS{M`8{|WBo_s_; z#-WFwlF!Hm@;Ui}d`Z3{7i}I0xk|plxbwHwdSX_-H}$4{s1NN+eQ7`H zNBdKM8bAYS5FJ1V(qKA>4yHqB2pvj|)I>vR7&X&y_zRJk&mTsI<4miObQB#;$I!7f zn#Ryr8b{-40!_qhe-a&!*yCZu7dsI4%Y`TOlr8zVgYpU|;GP;}=&_Y_oeR^7| z?W1M1oL10ET1BhjH`idLK^?894YZLqVb{P_bTwT=@1|?%I(iSim#(K9=za8l`T*TX zH_->_X1awwL?5PG={EWZeUv^%x6{Yz4*CRrlJ2BW(Oq;m-9w+Id+9#<4BbzkMLc+r zK1ZLYhv;E?guXzJQXC~sU&08(EA&-*oSvYs(UbIb`UZWIp2DcZTZq};p{MB?`Yt_7 z-=pu-bMyoHAw4g>Z^ZMT(F^o*`UOTOgcr_zaPEQAZ|F7dd(-dl^t$N{?sd~!^bh)P z`X~L1{)gVC%{Ct!BODat132`I8JH71>UQ3=^rcx>){S-NJ~QhDf7y%mwt33T7bofY zVRXcw1+YLC#0Ic|EExX!VEE4Pn7OAcJYnwXaxYhSv1|kz$wsl!Yz!OAqFD@!h3^{Q z=Do5BESXJYlUNFy%%-rZY#N)+QrQfa#_nP>*(^4j&0%xdJnr2J&o-TVv}_Su%(7TE zTf&yI9G1)SSUy|Ema_s@$ck7oD`BOqjFqzrR>`VZHCw@ISS_n#^{jz4vL?2YtzxU$ z8jSR;#W=}57%5rLHn96J>hl2G$TqPD*=DwdJ;WYnTiG`D2z!)0#CJ-?I ze1Gou3y+?A?mULze*Za)G<}Hp1F;2J%4!pJQ5Ib13Y_p_1D<9>^t^7`@wbT z;)2Y~yc|njMs~WsFg>f(qRYuHuo#wQ7G@S%47u5P#YLHh!p!viybMG1!h+0_OsD8v zOL{?mo>O%G;{3eKr5&RSvhx;O(t+p{9WSmfvFX_b>BYH=ax%*dap@Ld<5G}sDKf+h z8isfQ>=>VsUt~#7&&(@wikDPbeBNTGcuCnMv5kytVtRgVu0dDkuDjc879f+ljQSB4$loKf}=hq zE59JGQ%Y7bR8UZyn`0?1a!Qd>xTF;3SPHWwiK*%$DNS{xG)+8mnbszxZaVU3m@aS) zsghBuV3gX9QL4&rs?4rFm6wDeRb<+bCdsC?k?oL{k)2tPS(sgDNLyTBDamx1+4j&d zQ-BP!#A_XA*-OS?k-D`gW)@ZKmbPNIWJ+G?4&*YV^qJyiL#9Y|%(PQ=%9P|-CdxZg zmG|Pd_gxn|s7RN^%R8&>sUcg+l&xgSR^^>7%X>*1rt4A%I))q}ry)m{LXN{DT@Ekr zJo!9NKF@P_ZpfF#kS~fMzg;opODSCP9m=~vQYw&?3LGgFN@W$c38^dM=xoR!Tc z7iQ}%Im@yvx`n{fFBWfPWaboEoHCacW`68nbb8@T_eQRY?NuU(X7(L)HPaNW7IW4UQLpY z*`)AIijGO@(QJxRcpZ zu35=%R`kOa{cuG;T+sKT^?;Qu&Hf z`HE8fq7=U<#V<8e4~|KqZR*X#Xm;j$0+<5^*qM*T@beDO-Y z1Vt}F>N(sfpNFgZ9B!0!!&SWwH%hs}jWQqMM#(4KDCvhArJUhLNjKbRqbubNH%fWK zjZ)9yMycm;li-UTHf>iSAJU>6aTRjlD)NV`kONmC2d+X6T!kFC3OR5Ua^M=%sW>kq zv!F0NzaTSXVNR#z#b{=^16NR(nZa#7)EKI0Mw&b16&5ecEXd9;(8U)QF0C<{KMyf1WFlwD%GcP#|7JoSK6Oo&eqnNLVa z5X!+du4`M5WbZP%w841i!Fv%0G<$F30JHZyokizqNAbYBHm9)w{Q!K~=#awP^ks$^ zd5M*mIC+Vemjro9l$UYxk|ZzV+G(IgOign1a6lPoU%d#yJ*RE5S^zwr2oSf|R zqU>~6+dZdim@F9SCxlpXirf-23vv+*EX*ksP|-9RqooO(l!=>^iJL-Y)xm;jmpsd| z{KBGw{AF30;+;^{orRiY^$0b|>Je&^)x#7K>dM^+T-z9#BEno`m>^)z@kLqUrUQ3} z#hpvEC|Y$d6d~^2quWeIJrp??_no6{{)R}(ctza0wS_Js-6=LbGXq+(h?Gmb12Y-e z2)KLv9n3n%w`1UvOdpa zfkx^bG&-lYe{W_RuB!_6q(Wo>DDGWV^d}$0w!Pu*5c{cz!mpM0G8mK;RKzDA$hc74 zyR}7y3Q@Yd3bBovyF+{^A0~?GBJMpL14aRHcL*3Ix(pA+y{ifx)q^%Vt}2!k58RUM zZn8+bJ4BWO;NcivN?J0;lusQaO!c%aI~{n)DWNj%l>n?U2Mf4j#8a+1Y&LLncxkkUOUEfI+}Lc)VegL_qX{gDwWah?C-=n}q}e2OTG_ zpI}+G%t9v?(@Dh`JPTnMLp$zC+#VKK2Zub8ESvty>*?s(l*y(7rDs)r)cQN&T=RuD8B zl@q3%EVFX1%*wekE9c6roGY{HHOxlk{3$2OES)E#*`%Ca>7gL4oJiH{m`&p`r!$8s`eDjB4O8^Y>bY6bF)QcPtnkAXJY2!U zZE)orhb!kbTsf`bO78IZ4w+@?2wu@63k{kQB&Sg64x8eo1h|SEnc}58iL2mfO0b1d z%FQ(^chnrNBo0@aiB#!GC26FREK*4}Oi4COblpYck{{+Q9LGe#e{1X(v z1jSE!%0_d7q#v$o5RSAG_7E;D-xM#yFkEH1$486jNDDr=3O=|BKDdf};wtiqtKf^P z;ESusC$1u&xQcw@D&)XbGR`HkiY>JomjH}AOv}dGM{-r%5t@ulOMq1@xhO0;`{?fjYR{W)1Bdz#LyGB~& zUxvA+cp2v6s`4-G9BGw*Y3E3*{7XAWTIFBbInpZs($0}q`ImN%w93DO&WvVhXSfPJ zxC%Z-vn)ScRXvq*pgyVR!xa87m6mpe_f`Fs_GdIlDSlCkPK3}ei{-i;X!yn%+E-YDLfNUKqz@t`{I8y zySnUe=U4yd8QH&oryet~O_(QLiMiEA%$PndW>{BY*7Qltvp#`&(>lzx?!v4opKslb znb)TU&d_eM$FB=irLwRFiU$J zGpk!LuX++QtFL2D^-avJHehCTE9O=CtnI^?TYVd|tEVy7dKPoIa*p*w%(DL9OL?b^ z|F0#ip*2|7;Dx_%lq>(@%8ZpZlaYE9YgZz$;^7F^wj9N}l}T9L@-Eijyoc4Z>0*sU z4%SEfh?Pv&vDT&EPy`?ahb#xfJPZe0Sr~DI zxv8rn;CI^qp!&;<{@JWx95VsuK_Nu!m#Yi}8wUXA?6&Ox|NqQnB1c|AFG<>VJiu=Q zH8VI|SY(8(5iVLFdPqmQBU>Uf+pzj$#vrW8WmP{5yvR*mI1r=n$a0!GQXiCk>uXK$ z2z<^&TFVv}Xg%!iPaUXrsT3WjPkxA-@-6RFbLlB}T=O@*sqdx@%TnuxylZ}|6K*6SWU zkz;`u_0KRpHJ+)rU>jCedc}ejv%tb^j&$1pj8^2CUCBP*L+Cz1Q316AJBsa?VmjbR zopC9HunEAfNjtlBciOrQ!xPp!30!9@zi0RdF6Sb zUPS0s%Rj|E`*ZgN7El%^m^2;+Ngx(k^Fcn)^3TJ)=(#V`#^PAO0vOVp%JAyT=s;OHWai0R;50>GWW0v1wjgu^icg#BfH8YyvmO zeD?6&>XYC0?wM8$NC~z}k+z6PE&fQlvio*LN-S0e%NlM~N5F4xjpLohS|l?u&50~xK`2lg$c>qfq2CZ<=cXLo z{|0~N|33gY1Bk>7VN!r17$gCtBD9MSVC5kMB|4={I^^6`yRNqMakWk3-ev3xmo9o2 zt&7^1s%0x+cjv@|G$V{ghyQofeSn>dmg=tjuB0GbBCwZ89d(foF;NvueP@5sedlpe zxpJL4^YH!bon5$x{mLRF5}{v%HB9o7uIc_+wtakyN>RTk#UM0jfgk&^@-aF|E4fHE zTQul|*d|3}oe5Mh%g*bGTbAL^j@ z^AG`$4h_awTAbRt0@y1(F$TciiJ{Q|_6bam128NActYq+ya|p6?0sj*%d)Y22YT} zN=RRBJkH6=E0C1Q6jh>+}baHleF|dj4o4d^b(JSBzENOHBIv{}#M^GDjvrF{!7=t(A8hbZ9XLm{|aECZGuf0%fg$ zAV>T5eN?jjj;>^gv3`;y0C<4iOvcp;{Qq+P%<9_@SjGG%V(Wf(-|vf^cGzs48i3i> z3V?rK0j4^4XEwW^U_O}l#&zF+_X5WLZqJT4KL8l;|HQoaU+xyr{oeIb@k;34>%pe& z)gIeD06VjUx$Uj`8Tae%53z3_RTDtHQnV)Y-x^n^IvGZE`?0eaD+qvd0CxeN1H88n zJR|%8L?|B}0uI1qIdq~G^?o=K`($=9rCW#LhuDrM@ z*HEA;#2TENWYzhpm4m>vk{VqQQVl$_nwTT8;HOQq7MHZ@WU0@nLBpnWXG{E{yBzt0iswHBRNWttRcz@8$JTtc!}aCNRd!p`kB&Y$XGu6 zJlbR8qW?N#rYCm#*d00zndX^q* zHr6xrIwKpM@FruM5xfiUZ6>o~R_%R6TbcTvz1?hljO1H(zGUrdw)S%LD_6fAMs}2^ zzj@SVEnPcV>57%^*m#*irBzjtzshPWD_CFs^H9b-YNb_~4b6vb^jh|O(px$6S(|d_ z3wgbl--kXb=#$e5``mUreQCF^ee1ij_S#q84;3m^saB&_T?eRWr#$~?>_}7p`rmO3 zWRr^)&q=7?WX6Y6_()p0_~>PPjK{yC5TCrNNU_q&s6d7I)H?+Vx}vEiec!l_?gu9I z4GceYx;4i@L`=dvVzhzah1#n10?JDG&BF>*Ysu1FQMoB;` zE&a!^T_fof2$Izdo|uP&QRXGfCEHW30nl-hP=|z$;~K}Yt}P{xwddxr-wo&OUeNvR z58GSk%Bpa(k!hlo0C;S(SmQ#hS+~>XPO@5DU$-_X0fG+iuCCCwm&g;XXIadrdnZ9l zE$%0i%dW1ktya2pgzIc}nc)|LxNr|4Qfuocx_aU;$x+XJDs|pg05|<_a(e&met+uT z{~Uk&vN8Nu%d~}+w?x`|v5AGa$)-t(wxS5d9%3qO5=9YERfKfn=3WCmv7mdcIitI( zy}&I|&ryoi7IPlGqLW@$HzySw1kUJr4W`T3nKGt|6+5qgtn7?}Qv;~MIr#sc;(D(4 zTJ^ECK{?BtQFXO4$5U$))H8s9Go%rS3_Y?%GL*7(-O)wIK>!%kpqV|#fMe{808j{K zmWrz*>N&$Jlr98O3X3}a9RA-9yqVrVt@BF5dQhnmF0}H;)^Bvdvzw|MV12+{6^xb3 z0A2x%h{n9e1=CD41;n{PjBTD}i0$ap0jSA%Yz&+CbafckXRy}Ld*xjb85 zSYMo}&Sec+OLNRHuEkui<6ZiKaNZY9h#aHinJa7CMN!$VBIVl@%LCVu6vos};iOIv zK6DnYl@QJOK8hua)RKa^#VkH&YD$%!ZQh{mTc#iiNN)D5s#>|4i)p4&Dh%uW0tBBC zNSl|GbC&ixYz~r(M3x#O8sOiSudutAxSqICn9r>b(aJz=0KFTIVoilzM3QR9Q=r|T zpt8*+<7^PdO25F(F{`UCiKG2(&Zlg{>=1UjP}rWFn;%)rqr0BB7ik5GFzzdJ_xK=AOB-)KT(fcZ?e85V%R=_FEN778gpvwV_acYlzD$ou;0-8rwi52k2!aE6 zmwC#bL5&s13eGF>ews{C^acnt7{Tk~z?;xp0npBCFjL2SYJSMLM$t2F>8Z7^9|c+B zIiG~e32@jK^`7l%pVcqTMu=>7j7LuwJbry4 zYQ&_x2E?^RUzb>^Tnky^MTw!0b~^YO)rkxTE~2<*R;}Ie^zEq#N@z`@=g7fM%Ng^l zZcR8iI}Rv1IZV@7L4(8ZXx!<@?a%P^spmwBH2+xwK0B}aP<%_+`}y+tX$w5(%LH@HUb zHJ`+ekz6^YM0S~^vNFUU&2TS`JI=aN-4B0j^K4);_QxyQI(ax#bJsZ)(Pf{6^?w9z z%J@-0zc=70QN)j1&_tKnVfZD-Tlu>sv?9+J{Jk7N1K6e zr-%_3JUk~}&Cj-3M}1+?iz+VR^- zWpA3WYWsfnep#pf*|By*Oqb7n!07g9vf4aoh?<7;)NK>5o7-HOcDusAVX}TAo2hd7 zPm}1Er9a~97&7eeXZg9Wh-Lc$+hsyXZ`SuHGFe%_@Ek%gc z$fHj;C8~=kNyk4Md3ObO&>=r(YR7EnZZ5Z?`is3q7VwJ@947rTT^C9%)UylRGRIKy zNyna?FXD`@b%ag2N?+LgA@a-{1d%AdmqBgQ0}N|js#W!Pyp>~&2l`{YjFM7<8d-r3 z4``o4f?Zt|nu7+olLijIX)Ld_hzB51ZW|}gun)b`wdVqkuHR6bfa4N0)As0*R~$L^HOX{Nyd1<1|`saP%L#G~E5`)=eMaU4j6u}&xwr%CyAI-;Vc!GerQ z>$D-${ZRb2LDDYX@NSvhR$W)KTVgM(9wqAVzoJl{i0C*+r}um*@ZxICK6Prw3u`7Y zx(}2yQMYXXZ`zCE5M_yoPTnY)HrJR;_>xyRK?#gK=woIHoyX5udl2`Hl}L~YM%Esf zZhye*AQ(i+L+c4zd>u^E&rc7G6-(|tC{zLXyvIJ|VuP>lFY!^HArQCGnEwEq@|v(X zdT*&P<#w$Uw-oBQotiLjV|#Lhpd6T)P-PDe>)#0Ax-dv0zy*PkBK_hp#CGw_@4yj9 z57|P01PZXgTETmEvBJf>UgF!-D3hl;Gw(39;G{Nbk9LHmCXmy)F!+n^zNQh3S!g`s z35u#Nh2;&XPPFf4zGN0p#_8rH8Er=6q4;DI;`>i@lkGpbP7P9;L;;vcN98z`IA&2a zO&_D=Bn=+uS!Y6g9e^ME-~W$e4yoW0j{f&QM-l`7`Zsu}tRwix5pkbK)giR{Lb(*Y z9KLZoF8aW=Q{lAYUu_POqE&fa|EDi*r_Vc)B%eT_?p37}!%G_Ba!tOnI#>P#u_vl1 z>%~tq{6!rn>l3I`9)uW=l{e#R-h2Byy?no4=t+|Nq);(tk5Y%KIRe&ki>*!6p1B~f z*9z%{&}3O28XG?1+1hluRv;@;=mnSAf1ljd9gb+AR@>*C`*sa7kl)MOu5O$~->I>w z`-oy*J4gWMkr7HoSbH5fHlIe}?b=9(sc$v(#s7groa@IQzdG`*s%RodA4LxG zn{C)7nX2gL%PcQe-Y-`|mSGc;wZ@JGRaiWKz9>?AOZ3iz%O-|7O=<|Tw1|DHv#uYc zR8GsJ*XEeXc4s^)tj}srcWcr`XAM8x0~ScLw1^-ZO|v{nW=@RVvHk6qC9gHt!so+|XFyzH+ za_l9_mL^l*vfEGDt$3kJL@#wbmg!g4CvZ zgCSCyq8*Gi3b+RUsCF(7U+bh+y*NEW1>3h#3}MwA;GHMlr|6j$jJS+zpObZLzr*SG z`(}@uFXekq|3}})JY5~HZ&GduH4J=&ft2XjOX0EyDrFa{NgO;pCv~vhhr`$YyYs53 zv*D%MTJ`^0&UIu7i3 z{VQnNr5rO}3Y4pbXJ#K|AS(x;r|%TPS=`9MzN*IgFpViE;J_v@5tC5cd-0*7_-v5} z8S)jh@N&xnk3?()IsjvBz>tu9G0re0`6~TBUx^i=pa*vj{MgPD45zOMDZiQq4-tKr zOMG)!UG0g%ob!FO3l<_abhbCZY-MDme8H18y}LNMm(4Z+Ztr21y@P&7a*Ca~?N#s- z!F$w}7EdH02&SjYNok^`X^L|zD1MMlow}h~?1HdYP!4G1EKiS49dF5X77!9XZe|{!G#9l+H}N;`o3B8c*I%a94Y6p~$<^ zVh_rxX_5JfH(S_fCp$4rYP*K2Bz~Ek>3yEXH37!kmvR2!bzqwyL{iZB#gEcct`TI` znJf?S?*}w5_sd;(x3a=V=&yx`Cnw={Z^v^h2TI#+yMJrcUbZ+}a{6S2nM4GK3~iN~ z-GH1Q8&we5hn`McH6O2+dzR0e%YP(|3qcJ>Jqx$b2ft_8<-fJe?NeyrC4`YBep8P6 z$-+W#9%3D4)8uGf67uGUJe-sF^DLCqK5CLz&ue@1=hmlYov|;L0d_l)V8#A`LeyPh z2KA4>x2vv^SCk>IbNszZ;hpVkI2`|=2sW>XXvM!oPLdj(Y`$W%r}ojh}IKdC6R z8w|U_-S)S*R(`r@VHWN{IJ(9l^h5UbLN6&+_1Pqhl%~c;1MUs`NLRh^HG2#jzK{D{ zYs}p_BJ(H%M?2cClpy7}hZs%2!Xo@Q9Kj=Fcoaw>q#8UX7cM=#p4&COG;Z(xJG^-Q z`Z8RY|1Teshq1@nuZG5tP-p)UVyCHFG!3MW@AliT7YXUBi!&U~ zlMa@V2P2%x8iZ4cIXAYJDc}$giPCd|+?P)u^YVfzH&!QQ%?eakv!ihgmb=msC`yJxAOI-)18jL-Yo9PB;5Ge#+UbZOgN z#+wM)-%PN0bmq-AxkCz8WY3RuHT8<(R@8;$WQ728fh{K#Sq(p20roa=*pOPp9NKnn zGdZkSyY2&=d23&x;#}|a@=#BvEIBuHL+VGiuEswsFJwjh4{-2-dkg|HrQ?H7*h>w% z_d+VN>Ne}~O}@=zY)mUHec2A)iITNfZV;%UL8RhJm(;?y6g!JcKR&o5WaE6Cx?7+t z!6UM29!Bd?XZrE{uED0w*bU;HSY-W3Our|lF@yw;NodAoj^XPI^St)vo-{x>pdLq( zydUt*v1Pq$BKAm53hC2Ch=Gc5Mv6Xf?ar6s)_Tc^2sLv%xIV#Ui;5fq!(ZufVJJ=; z;NyR>C#Ct$iP>SB-xM9PBd@Td)KW=W$$Nki&a-NF-xH!BGY}E@fw;vMSbh;@Kiaj( zNP_iUti{llu0oqtXe~42>lfR*jI??8A;%bN{Kiwd*^#W>1gs}{T=PER$TQLJi0UWr&BlW(l&jKAT9IW;{6 zwht|Hc@55vv*Zv`bmBy$nORn~sHL@Rzy{4{TO6(B5)pSCQ+!XLVMD(j?t_}^&PNX!Lc7X$v z@J?u<$TyT??rg0%z`6CY@E}liZCzeVNo&pxFuTD?5%Pmk4 z@YukRw^Zo49lK_31al4i3!WH@&*4VvY3+i2qUHCezSzeFw{(EbL_=(u@f$)NXSzi< zQM26khu~@(xMh_iu%|RfDEI4$u{h6I8pYbM7N|X#f#R8g-oqp4V-IbYv2&I4l~L<` zNpeeEVTyo!&oEdcw?ugv15`OCT>E)|h-NgG9CMeW|1~R9r50FUC2h7<*d=?FUftZG z^_!cTQ$P*#G=(FFq-#prqCq@Z$WE!IPhGUxgv&EAec~P={fLq8k=Sh1Ea3XwF8E*x z#e&ozEJA5UJQy@EBAhv%EVC>o4`HTPplXxwFzUnFdAG%Rx<)A&cSK5g0~fuLsd?i; z@3vd?Z$P!wNRo=>x%JnxlI*TK;71quP42c^*b>rCI9AQ2Gdbk=qCV@zK1f=JZv?~v z)(GD~_HK%^N-^W67f$M9*fq8s8uq@)s#<#EQ4fr`t2BppGe@Cb(9wfEd;SyE(czW) z85>cB#XgbsZ89*!x(#GOTPt9Pn2-wQXOc z+M9@&;He9feE~rbb`P^d5ds&EB#YcS!`eivbnq61b>PNt63GRXMa7DWT!Gi;80AH} zswRn6^KZtp^LAG}W;cGbA4InYIC5-Xtc?K|w?j#v`WjXe{iqILSKgjLdB*^5eDE-n zi{td~+C278WVR3)W|gpcEGHdHd=LxucABT=zoF{zfG?OgRi|RpCS*y_|58AO1`fClazFGXuNSf2fJJfU0WG!H;!j~+Q z;ZYe-{e8&mD1ZA8oS`y%3oZH#}AQ4 z`IVO=PyEIiBXPtfb-$^M;&C+06;7Rt4R{vT&gX`lIJucl1OV*wl|MR+5%`!5(iN%1Ry-qmc5MvgJC~tzK0Oyp{FD%5=6pPq^<(QYXh35 z0e0N5HzUt@DKsiXkypoGDr25+3HzKG4q2n44aiyR@2W6aqkrm>L_vz66&&mW{cHzG5D;n=%i0*NVCr*lL}^go{u zzo}@pi$RN+Q05Iv7`n%KQ_WX;70YYZM|-Y#HJiL{dgTwa{(t*WF-|o?T|;MA&8R-< zx$hGE8z$7Du5n>z)D80#{3=c}GAu71TRg4Pb1XKeGP}pgJs-_!HZnU0hu(7~RhkB6z}*`p&2M#9BLICt!MaL~wM)T@D2q0t&}(j&b($ zER>k7ol3#QgrFaFeFC(M^pUB3hTqPiYj;WfJxM9`S7wh(&=lyTwadtR%QqL^%VcZW zul<_A8d)qy$I0wVJ8Ew_&PB(0KtQD=wk*NPEH^&@p<9C*JQt|fQJipV_r z?b@44U)Qil*86ge6PI)C1#OiND^cS$(9D@sAz(F9qzjq5eSHZBCUG=`pS@jbeq_wJ z1gpg7C|aJs2k>4yvx;Si^ z=-2hz@OsVaC{4~iGY*=iM_55NZ~wE^a8Sc%VsKKP?;RbPUWAfA%&V!Whm|oCGEZwH zV}l&#N``WWsv_{^?|z6SWIav0#5%5pGO?hJ4bjcD**NDNzmYU|bX~kq^3sZK1^#JN z6DneQ2Ct*uXYuPVCeaoa7WsqC*2DO3=_@lzU)PrHGad21GW6nUxK4XIhF%iu>Vf?l zS*-FplR_1bEWPxpG{hC0*?2NpQh^R4ts>6v$1y{fu!Obv{76RpE|2+VsGO1#a!JyT zJMb_IsTN@AI_foxpoYDYg;wIVFeT(mNELdyGyD7Hl`yPBX_uOWBsf~?S_Oh!8zo~S zog`j_9=e&s==+R6Cwe-SlDsCdU@+b-$Vr^$444n_PKl=Jy#=2=nEb&Ka@pD0)S&KQ zXScZT$_SMpc;>@0(dWN-8WHdZF3}(5zVZ{Bgvybm5Tn{8Htfcw5ngof`8Au8?;JMtk*z+6%VbPcoX#Vb`ba~|14Cbiuq;16E=!um9D|3)T72^ z7*dO6A!jgDLw^X9Bh(RvJ2 z!hIbHG7WLah+u4Jthk#>*0KD)JX>%fUIeXwGdGU>?O*J8d`U^MJfu3WKn7fA z=J5pL-{0eJqHfK9dh6_za({)yl`NI=D#RDbqU{O58{g_J=efP zaP|x|>rTI?fjc+$32`f-9;O$_zPZ;C8P$~XjH!|iSZWJk(=%ZfI+`!t*i&WKU@`xM z3IDAbxX7BTd&Vyv`2PeFS9@0B2NQnr_LFG`WPEw4fja-z9*|xuz~Qm3sNf}*gDhaV&DdZ)i`est*++8eY$LB!ri6#M07B_yods5 zWjPi_iIIL*q9b0H5OU!a0ZT#u>!xo6;-SdL6RH2qfmR{jWd`7_R?Gy{qE^tJwvJex zwoE^%04cc&L(x-tSLHxM5$e~zIId0)`gJvpLW(M^vuww(5T(ePrg5w|F(>4uKykP8 zSLKG@x~_p+-8|)WxaXo)h)VkW&YY=Cv1n^@nmEf2elD`Y1H_N1n6`i7`MwIcsSReC z=r_FKvqIhoJd9CCz;j5&Y|2JY-`$%2ur;Mg9J-~b@G)@&&_|`pBe=NC4vO01kwdx9Y*(eg*rtNOZ`R{(JDZ zsS)M`8U%c!w!^~0rh^^pCH}4emFX$*!+uHkk#^+Sw((&l)bSTFx#0PqRQse+z zk^082#TdPV-N6do^Yurok<8RurC`CnYfEv zr#u(3ap8w#GJKmyPSD1MKX9DzXg5UQt_3ab!rjHUAGtbO`|Bs+7V1Y3+5`}kI{m`1 zfPbZ*iX)T(F=riSmC`>myoXSbjC{p86>l{+bWrc6;*D)x7@AxJDe7neJ)XHRc_=n= z6B=#OST*vYs!iX1@BaJx-&6TpfBrwt(wEiSNB*aW!rk~UJokEqz2NVN0KjTQ8liJP zsD`Pn?C4N!(-L!w@QWp6Sv072?l9$QxF=PMz*(+#HpQt>lFQAkh&SR^w6)ceN2HHG z{^wYeHqglRsN_6PQ*#i<2m05?80-XAo5|e3F>8ZNy^a_7>OFU&=Y)H)a^q4+7WAz?FXR^|8j7*MFe2N~^ej z*7W-qcGFElJsoo(fGgHPy3bKkQh}Ktg^4G412+Z)AVb{x|EBUeRX;?_38F^y@od#Q_i@6ao?S{3d{| zrEh@<`Uok(`uD@AqzC*7{`&JEg8u$^736{l`c)t@CKcpfnev11Qvd-2VqF)oV-87} z)6K3`xhr?*6&H`_t!&G5g2hbO3eTn;WC%*Pa~O%g(zOz&S$6cGo0&7=%@3F=ilmYQ z!vT&&%&Y$DJ$FKQHxqaKS1amO5^;b7!2z~dk_lg~a>avQBR&A;3}8vrvrR_U+opz~ zEgcA30}*t_YkmBWF|@8KcD+W!uIcP-r2YsDpHlOHGwrB^HQk!GF0Z0SzpN~2R#iH! zg9SG2h)wrYhY!^G>nif95iD5~{Sp34PT${8Dx44CG~(Do0hBZKoloku24f9ZuS+DO zkzf1GC+<|q8ojvGZ$47(Mng4Mr?24{cE3&e^)t>?u-yskzQv`}911q8)%0#-i|w$f zSSw!8tq$u05%dY?G0ZQfppCTVv|61(!>d|T6-#~%DDvZ#LhqK+h;)grgM9u9wl11@ zmC4sOMv$4|7f5x!(;7Oyj_2JG6mab#2sDx@a~CEdj`qVpBX0tZ>s#Jjg%xY+=miCw zniba|!R{%dOe;HMT;ZM3(Finxyj_0fdBX$&ls#c?!$2L3|Bq`Wz@$e^=ug}N5rXGI zgdosG(60dDa|oW&t8z3-jK(IZ%1-SC5YWC$2c+kqT7S+6R%uS#G}N88&DG?>#+p<$sgYEMoMFoYH9TZwrRPdJ!TS_u(INwAcw$}x27xu=mg0~ zPsZ2)l~{b{dkV!Mt3Y=BnA4;Pfk-gRo`LGF_$V>UpsK?z&bjxbTV$zgCcKgSSnuce zbv=WRY*1Xj6Z88|ZlQOWxqp7)fZ?-^DK}^azSNhv1Hiy)a+i)K!3|q54YrhPT(Wx18_~UL-5cDvRn?G_y%{)5xr}TqF;A58`f2Tdo1dGu)~+tF0Ul zhEd2a)eBg&)I8x*S+$2KhNBW@K_m!i+DGt#;2|feNoG>MG(iz@W^L1>w5S~={RJfW zcR53Uewn>Fmm<#E3bqJMtmKH@Z9V}!?hv#NO6MaW>FwBNU=5vHY4It0tiW2_||y*)uXxH;L^THb1_BUa=855TE& zn^L!mjMc%`x!a@B{{6aDUCILyHs*F^umy$e%6S26mY5H@1aqn}dj~#Plo@D^+JbtD zhGI^@Lq-{0@a>bdu2%E1F02WJ$>8!|4#r>Tb&{&?WlEld`Y?}0qkhe z3FoGsUI{!~39mY!U*nM-ih$pc;*`o{LmbWunXDZA^t<%;_V3hZZ@mc$_O0%p1d(7d z6~v8!src(kHhB;c0FrbR$8qz%6|9$dcx7?-zkYj%WX&r_al`Fx_>Sq?qV0{r=q&G&zqQY%@x&NP%jvp)!0?#iog*jibb82 zkuYyNWVd%fqNa{Gpj<^Q?lm21o4r#F$YgNpB7H}0z7FB-|3Buz??e+{6jy6RvjBu{kLRq=)>j;5W3%}CAk4W*qL zg6$L8mwmPaG)+s7tW=2}M82)OUwQvZ6LP2MJ7DRERjYWEiYsFf3qE-)dR1!$Zw)&1 zSehJVwY^$x=$TIn2~7FYdxi9|U`rkP0b*_Zcs4zlwyB8(;i@Hk~BL^i9|OL6{)z*D(6N3WX}V2Ck$a$@G>eizWXXnFpT; z1t@A|1u*&$r_mfEb5Chm!d2C%IvHauur+GsHo#aZQGp1 zm3foHK8t3=W(lQ%VOEyY5#h*k2^*Pru-UCyZFpZ`J-`HK?=2*C;8(@7D|LEmRd#kY zL9MPK@%hv;c__fNXK}Gx*IzlU|K>93V3+_^ef6QA*?^jMwaoTN6fvvS9t!jwI{w}9qzoeFq&RaKL2Y1skYjx{E`{UzAIbdR0pkF+A=zyD;L zR8_|DcT3&6mHrcYpD$XD2djvU|M7SkdY`7%Jk?#X*H=xi%!aE;DyW8(olUJ&tEkl? zVKq&ys-bCh^y;h{8L8wc*b>E(LgJ5n$YQyiSo-5PGEpKaB7>jgOF-8Vp<_bl4}%QO z?zI*LGsIr_F~KR-9(8VOn|73HWjfh~@Iu~cEuBDjz_m$MjtT}JW{0zQ^G=#so|!at zy+^E6Jmtd=Kqk@yYec zV%vjTn_ECKOG>wiH}LYcoNSkKdG?j7m;qC_nLBXhK~A=_AYPtVA2@tHg@H6Q6lt&= zP70>J7-e8|Gf{>jtcz@}7F$%0G=Pq8=lFB$I&WxUbHcZiY7Z0yJ&kKwNzNuYVkFD4 zIk`bHmrwR&Z{z$6{s#ou))!y)MUx+H-O8M1+6$21N01g1U_#0wSn*iKWD2L=GAf;4 zXYtM(qtF7nFEBoTWZ_oN)otDDJXz~8M%Y(pB{s2RMKh3}y_8Nw5VI4XZwPL~avX&U zKU$~=W)ztjb^+N^@bua0xrqODt8m#=D}(M&Q%FiP=nR^fyH()5$)kVL_{U!!JP|@u zGGlh&F^fGa|JU1-)KGxHjAFu8oW{&Z5%jqXzXbUI;{AC8audivs$nUDo%#MfwT*}5 z`hn95^X`O2;vvt*?egBgKD#nERb0#vxp{6RGROJzeozUi03k4SGdECGTlDAHP>d9^ zo`8SjJ1QAw?l!3&*Wkoyu5!{-+YH7=mXYs7FJYEv$Mof2h|IiKD_@&RqT*RN+bi=f zM6n76u$o0nzPI`ZcQD~UD?M&=`oZ~-1U_lXguXllB7x&nDv!sQ$NLmo+iDRPDX@I?)KSR#9Ccb=m6QZ~LKWu&demU$Lf}{^HHX zed>Ic6N4$QjoQ+&TS_vec`M;l*HmX1n7hQ}4mxH|nfVHO?Gx*qrFha^)o2H|?SA@4 z!!XuWG(D+f1D-;T|DRyT^dv7umMfZYcKu@+AXn7t$qW{al-Yn}guo36n`^hHsZC>jR zMe7PiU#^+4I^N$Z(=R{dhKy(9!RIEo{%@u9G(_2B07_(@0V3!O17!DkM8C{= z|MRxj^XnUwhS=Ve5H92a0&1`?^++(`n{(+{i-4N@{Xf0${|Uh~9j6A9<}@TD*ft*3 z>GNsRc|={p_Mvq;W1opOZBx20M#;8<@y;`?nJ!@boDT0G_zrS8OUtZpC z(Om)N95hDQV84^X?l#;Zm|)`-$B6a^7PagM5kgRsEJvW_ zlvBd_<0GO?dkJ*p%$HnClbM#itbOUYtkCH7w^|!ri{u+!bbD+{GtKBmSyB?t23ELN zQ)4As{o}`JGiU5N+$T-<$Y|Oy>_T2Rj$`} z%ja7))>>QmYg>j=6ncG+Vv4T07MxvqHu+4To4eIOej39+V<6uSmIb}VSQQ@NDM)o(`>OXkI0?Sr|+LSoUSZi3}gZk*<`ckJGe@-Y(~nqcM70LfNhjq?1x zD{i!d>iUjcr=jds@FY!Pa+!=)XO7a6XEGb}!5?etB@v{~Kcg={1k&0?6|79-OoMeM zj|cT^y`+&<$Yq$udu*^%fE}-wG65|ZrPfk`DlvQP9}So~wor{mXYtK(r7u^WoX7RSUSRr>jTnQlyn`pEqpw zFsNaCeVs{C8pr@MK+L~c4bWS5ce^%=8{Ydsl_REH^&eCNxv_FyPbb#5_%o<&s~k&9 z9NGzqQglhiJJ|^Z(x1S}GHUbZ)Sz$h+CLQfGnxZpokUl87S%v$Wd8%ig8GSF!*#7`w=-0GT5H(Rsdj%rTfi(A3v~}`Wr%~v+1*l|OQafIERJX4Z8pxdiJM(}6s9kVerfSxn zv+jGbDQjgb#25$MB8M5{)Pc6uPHLb+g_Thh)(KJ9Qb1PwXc?poLMcP769Vku_#Q@2 z-9+7O#%<~Z$h}oUC5{5Ni|;^pV?Hgvxw|=fjH%uIr;hWMJp&e()istF?Uc!3bWDlC z4)i-cF1?>P`%SG;A{pdxmP;hffaJq&lEOpm*c5AyaJObpVPC)4l06ADf#%7P-2Zi^ zHZ}Y(~7HI$mHtug*U3W>ABHNEN<}5Shvg@H8VPvG2r2`*&e|q7w`&%IXah-i5s{( z+l^l04_)K1TX@i%Zsjx0@O)zaT^Gz#K$P*G-U{G<9)?(Gg8q~76X^4&>T6R&sU!6j zt&CRS9i?(o>#4j20k%b2X0i^SAGg6zWzbMzWq!NKZB}=vx&iuCQ-E zBU>cc{Hxyrveda1tVpO_L#|Ivs*ixaF}WZTp3X~qPSpo$XQ!sxEGxev;iusJ`HzKJLdA0WIPZELu6)fLGprR#?KIb z2gs_fW-;Fp`5^F7)Q;Gv#N}n;vr&7bW{1U(#_ZLd12^j(#>*YXkIug}3w&Mj(CJY5 zlAFE9NpE2)i!VF>mBdPH>X~T&b{{l!d6gqcores9s*W_%|98fnn?D%YA^A-2=3N3l z+Nio}F~M*D21j8~k?Y8}{|lx@sgtM=WF)*3f@lJ#>{c_}Pk>S+B&lh%GlS5-p! z_%+-oOqpi-uCik;n$9H=PU4-(G0gALNJFs&!n3jzWF#Gj-rjX7`}5?|wJ7a8tqPbr zkxS}KemC(!zN>x%%kL*xgU-5ge8fc-8V+bm;nFw4b|H+>O7wpU;9cdux7OBV+K$?a z%pw!-0n1tD3ag(@J-N;a_ke$ol~6CxXTQjt157Ea)d`zWNujc)Dm3elYO+Xc?ABa; zggwU|7h#vQI6h%)H#kz zHLpU0I1Kw_FPkGU!e{)Tb&o$-(WhDi@a5mzqhpQs+i#IIiZ~Q|Q%M`aYVKfFRnuz} zp$OgN`-4&aj^+ier^k1LD~zpvVL#0OAyMR`SE(xC_0ycrtWPhMC@gIH(tc}1>G?c{ zy>YM=Z&3DT{`AeT!Ep(4s_3X?wn?z4TG@O~1LFQ~zR^R0DeH>ey*)3h*{D*B)v3Li zx$jA+PAi)DQIeW5?WSluC;G~hV7#k2?!E_9ZpHjs=P=V4O%j6rAoA^UVTep!vBC zqiqj{n#)xWm#em|Zo13M>UP1_E6?#im$tEJGErTwDwh8`B0UXpAzV{1l68Xxg@wIt4%<$> z;Wq8fdZ6zRwW#gRZc`D@#JCOgYYM?J&?5N^TRzEG7IY%5?#XC4M!Du{yuzm`Q~n7_ zKW>zm75g{4HR%vfS@@Z9ieAak#Ykm=z5@PN2MkR+5*N`nXJ2s%Q;)dOOk;EdYsJSEP}4N3d-Utm$3l0j%4Gw!+R1NFXQ>S8acqcLa<`cl zicw;at)?TDy3+F0POvrmQhH%^8k!sv!+>~Is6_a?;Ggd{ZIC>8@_O_VL;0`LJSZ70 z$t}j;9E1gRPjxZ&4abiqQ!bF=8=sMJ=1xY>d+HlJmc(RFynB0A)2nNzzEOSa#4^tE zF0kR}Nz)Zm9i)5Kp?L{}8KN$!6JMVQsd(L0_e~HpOlvs;3iX2_*&K`J@QJY6j_lM} zR0|njpgW~e@aKu87cNi*M;X*%>hJq3@6{05I#L#b?xKe?c>! ze?C(`PXcF0ru<*4yLIE7{#m>Ei!#YRxvQ1mLbo7jA;r{mBXW{PEUEtI)InLJJ{I$j@QXIwR478Y4lSsW{A?y`&rHne~a6 ztrXd58ArVv7m<-ssw$)=UF?yu4iNKeZ-e*Tr31zK-+vEbPB2Gf7BMF9q0zfmr zt{!zZB}%P@yWK#3=w5cY{ZM`9VG6Vn;$xX0f<6f%!~uykkEotMBNIWFtWHbKza?Fm zUW8b<1w;!q)F;$;d|i+f*%RZ6+={D7>(dtkpdwQh{3j%@3zDw>jo{BMycD~-a4K0* ztS(plG$u0*aU&q=xks2z=ByBn{| zc;;JW^z+xjNFB9{s*5;5`$5ym>lmw}0Var`pS$M;#8GLAL3Y(ciJO{V(H>T8ntyIN za!i8(w$7)I7>@!YJDim|=Czkkwt-%=N1e9(3}Yr>H&hp;K1ZipjBnM23`+!BqyuR! zA}OeVB6sl-5A7r#Y2AX8i)HxZi%q7MQ**aVR34K{~Tsl^fQf)R~)h$sIj}N+g6j7VPfkoWIlcmM`={?NHLMid992(fdESWKw z^XYfV^?*7$<1=Y;Va|M~Gl&?PeDKkNT-@l2L02Bby>OR!G}|j|I}hqt)fbGF8y@4^xhqR+5!mPL(Q(X&=9ad$_{P z{10CFW&u?pF7*LFCJ-hTKx&h&Nu6g|nS3mDlnW#!|E7+0O|{vGKgAi7R=D5W)*U4y z+qKW(4Ul2cv9BlO2pQA{?Q;ppSJ#E!v(%spc_%K#q44MO^UYG2bbFk>{EGfAw9$r>JA0KbV2Dk$tSwX>QX}n@%|XF#r8}=z8SJ2J2E*zOV=qjH z7z@fxfzv8_#zVK&z#CHJ==z6GVl|fbbYIO%3jNB6{d&~VMY&&U_7r}rDZ2QFF89*kbRg{uUkzdlaZ>^IYQ~0Bb!}NDiZM#1 z_K$q@>S?3F>KS0#MX{jD|_wf-iSQdn`OR{p}^p8R6h9Lr&Q5NRWHqj$v zA2iBMzIw4KEhG%KPAA19{l&#ux;ON;iJxZ&>Xc}S-QP+?j4Pg3)w2vN%gX$0idRIg zRzRr^93A?&>?GX?|x{9{Ji6LrY^NF%zLDlW&A zwqP`|8Jvfkdeu55F7VL%+g#FGLFYDFnd{1wTip9^9xThy=-N>C8R-gDTPo1qYOUX^ zFKlJB#%*!Mw|}zWiIwxbh$raP?0hhk@q<@CRQCW~;8&3qvIqKhxowWzU9?~SZ=%X~ zyY?-E-y1dXCow}?v(HYX7wW{Jp%BhSo6?$X2 z&Lcdr-f?Hm=BJehbW8(rGuhCka~ta^JOarlIOD6^F?{oq4lo6$>aiW?oK%MB6uKFY z>V}>-GHWfkbapJb0V#!F3`X0Do5VL0jLUV~MQx-_L}9DaW^Ypp;Y_lsX$#fcJc@c=?dBS*{ zoX{R7vj#2z!WaO1%dNEreE96ASXK&(iT*sEEaK=-va}!Cu znwzT2WgPVBP6wLaYPrOq1% z=qMzqMehnh>}#PDy%#$1HI);F{r#$$*vVjHqRY<$f>Z;QT1}*F7H1;dQm-NLBwW@^ zYX`!b)hl&kKD6&#U9-OL+d~qHhBZuz?heUM5Mq9N&%2$m34h6qw$AtWbA07ui7r*h z-7V&sbUo_ZL#z*&gH!bpDQ{jjZlv)*+5qN_k}NGqnFSHzsRgTuCwo<< z{K{EVeZ6^R1tnwNtQ%;0QmsUqREJ^QR4oB(Ct43%KY4G$zkOG2pI0$w^v=pTqmu0U zOKE?nT~as#(G==fS}meXC`>Nb73kQ)Y@mw}ANxo10ukb&>s8K~s>1XS9!i$$US!;h zl8-vN4yXl3Toz_P3~C-k&|_*t;lV@~mMAL$;73Wt7rdF|^Tuzl;SU7_p#7^WBZgfu zQ|>YLZA`6>SSgbeYYc`qjw1#b0@ca?5c7v^#@m zu^NF^=-BNW(&Lw`&O1p~=k?Rp6rjtbB7!$T;9JI_ZOrsIZCtxB?nLRBoh{YISMq|l z7V{L{re5aJ4)vfMNJZvlyZ9hg!%zq>lr7S)anAgj_N6Cq zaxSCbW$d0>QaYDbl)M+jggyi<_ln~Je^(D8VbL;sX}aebS1r)nrSj$ZnTLm9ZJrkx zche;^y5dodK*c7Q23-;YDWPhTaxtL^sl+3frR%#ssTIcret#00@P%dxYM!QP*wWm3 z(qx8qV#43A+)wT5JJC8qeq3Qy%S>G=Qz@0;r6~BPS}D!6HR12+JEjQX6YsGBR)`EM#?0ubnF`1t_6X8*fWe`CtK1wU%#gps-MP%NZLLoC|Btf~pX(QirUTCZ5sRuO6eRO!$?3 zPTlk>XCDjzyEu$ZJgbE|01StjdvZB<)pQ))CW{j9Y73^0rDNXB9ZNj$cnR4Z11ni~ zRkTdqY71}iXT>4gXgPN$lur61w%R*%Tmkn(3^$SDf6_0p6vO>cjrB9(s`xl){^ce! zoN@&Vi!@@xfsj1GT0vr&Y`5!kY3tI!YJm6M|Bku&>C<+RMh23P7?K%G{EAJ~6lAv3hF~l&nV_^$WJc*W+x1 z1&5A~a}Ke$xz`iW^~!SwupByO{S4K%O=5SD`gQ0jk*T&tD%7xOo$=1xp=yh3Do3*Y{f zfAY_QEC$|{{ZDk76=;sM)+Z?zTfzRiu;hnb#=jV!5O`S9&fu$sCZR41Y7tt6LmJ8c z+5XSTOhRjnX$&EO3VvN)S$?e~h=Q(MpE7)oF>QEdYK0Yw7JRg_Z1^T)1#B>JTLw;$ z_?Oixt4=EY_1m)7AtDxlMQi#G+!fC4tbD!$?z%YEsaRDptMVtFVe0{w5bAMib#0mg z4yGX^Rfxnr1yY~QhIA2rYWxo0RakgkLPUYMl*`oI-$Ki9g`iPpNgszU(hxP47>bF6KfeYz6mvcLZiSSxe$q}6JOLe3Jtsc%MvFU zlRini`~(J}QG9VC8>LAfI9%mmfl+R!d1sr%Ky@KXmp*v7&C%?}xLxMMZLmQQ(}7cP z;o|~t<+o3^|7Zs^TuAKA2k&ah5g0g_^~->CNp4QauvRrzSwg zWn8HJNqdSKAog(~TqAr;;BE3@M%!c1S+%QI2kg<|utkF=lc=A?+N0@zp<#=rdWm+| zz@0VTAf_Rb(C}EjBUbSOFdb@O;4%x>>wNGKGiWq&`|rItqv_ju5f{QKql0;HmPLWk zWRVb%%najrK~VP76?kdjsJ2Qe9x|CF{W&>%H3F8sHi|sLOs|B7M8?3=-7Z*#6_9R^ zIdzIlOBtQzCux^i@YKNyf48DQ=BM!044+`$MYFBFqt(#A@|wHaqBg5<#W0)hv=P$+ z*U2lrhj2HZTCKI3$8c<=)(Sje#J$YGg;w)f!}$xUaCExH+E=#8jcsP}FC?Nm9II-< z6mNDb^Q<(zstRS#K|?S4q8y3kScw)EiFL3+nzY@%NS8FCC(&(NT3BL8tN@x+#lHdL znii|9&(zR55l%^Z?k+g$c#N_BMJ@vhO}OFY+S+2V6}yR=3#cI>DjS_azfQf*U*d#a-l~Dc6onY%_4PQ`M>jqMo%+W$8Be09+Khz?? zz-s#zX|9UW=iEnYuz&OuhpJiTpeX%n;TPgWuSz6}hS|kuUOn_-yvE$1R@|FUc4k8O zdFI$CW=YA-*1zQSIWkj!U7R_nsyBj!kJ`vplGRQ;6j{# zVz`}Gh)y@E3>b~9z5{(Z*?IW~8TAtlF3bsW%u`unA~8LEr*b}E)ZCzIpJen^QY&vT z1bbjrRhSKeG3kx}_$xeUh`089H0}e`XCqQZB09mnBlyQt%OX+(r^)IO;YM_1hxOSWV){S%>i%;gOYO)M?bf_jwL@zK>I&3~LS z_?jOuz+6T0fbpnd=vXDe?9Gq$lIc6Xg`sUi@c-1Y2GT@ZvLu<-{g92{$a~5F|2wmm z*Eck?vnJ8_h_p);z5&1+|SP0 zqY+5it&*Z}6J{F3wL~%o8tZYwDpEj-3)FTgDu0pesk=aoPrJFT9{6=BOJNfirOQ7g zRF$9Sbwig7p94z4$-Mb%`WH+vpt%Yj?1{g zKQ8A!>mOylgb7HTE|rg8ha=}(;K%6KtHx_47!zWX6Do5TN0ou7RjH4DO{z){Vb4{Mf2TcSQn z3i>|+iXl`1`KpLWacC*&mE;gEgc=PZU-cn7DF;!PT0)_Lfl>%~Lw!c6?n09W$<1HG zD6r#dkcEXvx9TLLFNnAK<#rL;1HyFoY&h;=cHe-0Z%1P|h}+rx;))>RqZLpedO=Jn zR4DE$t4x7Ysobqi%G-j^&RsT^ zMCi>KgSGYha)$?RV+q%uJf2l}?^lQ| zt2z9#9pP8zg-`2G-zR?6r|sXKp$vm$C_&b3>{cqpVURG{qFSvdJ=uO1-EJ<=lya^8 z*tr|(71~%#&}S@Fd}cLR-?F}l8;$wuKYU6_>>E{lmL;V;iPUGb@%ryUJhNTvz14sG zLY9eh2@T&pbJgh$Luj2~Ov}_nayrRg0qMPG0Ls38XderH>3|t#h83}uN>MUJtytEl zWD&5)3v}hTGP=E3hIL^7V)eKWtgjMp{^y@k=JShVGj)h&ekVe~PO*egGaw*E^s7Faf%Ebij99 zMCaaG!bM{xNB1IDP)gl)}viqWl6_G?vUukK*aA~l}&>$*nW(`D={E;Nq zKv`LX2pGDNw{fq-kI{R@MH`pL1i&H5crg1!-X|e8Qi01S(o`O^Tx&`#I<`UHtsZbJB5(LqMX4?k2r}GEvNZ`Cd<7KGjSy zkzPo7$I(nR_ZRHVUkf0&1(}CF>G5qFA=Iqg~dmVEtIuM5=f?idU5c(fn zIAB6#NzX{yy&yf$J$&MB^XC*>exZO-z*URi!YDzl6`;fa#9nDr2+PA2a)biOJ zo&WU{pw3X?WbFs3y_?IJm!YEh<|Q4ljN8mNB+Oi1^1qWuLd4t>>*N1<;@G#@BvPEh zM^dn-b*F%^;A5)8YOU8v5jTGF`A8m-IqMorlek8nJM$m@zZl)m;Qu;fvkhI`1Ep%~ z$d9xWJRS}y`98_lY9i4&HUt*?+N+(nNO=+Vg9b^5h`ch4t)ukTpiJt3Np>vik0hFz z`O!BU=`%a9v|?<{mH=v&0SK1tMkPNJydqs?91tZt{@O}S!)!nPVo}5srp8b52=ck* zTV=lYL1C&Ma0t321IEnYDY*wyqc#KC^Ftat0tS4{wV6%LY%SA_{5-JracAvUJ~zBb z+sqznWUeI-`1w1ArZcj|J9EQ0R<3R2WYApHNUPgt4=v-BSu5!@UHmqAm%;B|RFR?> z`(XpjE_^}c_(Dz|XNif+p3cUC#xa*fLX^BD^B+s080?#@18i6>FF84J$Wn;87Ws$Y zDkU;cZI5#k7|pS8o$24=arY))ApUj63QE(IM4FFD%$?39fW||~p<_Li!+Rf-%KLlN zM3kDc*f|jq|MnkD`snI=J`$%k7D*9l$!^M?OB2UnO%RoAC1}k7&4n9nIWQOEo%H|9 zk3Opit?aT{jg34@4rLHnLUEdNkF(OxWE~d+pnRx6|JmtZ>F`4%w=!=osyY57_%|EW z*c){;Dt_34sV598QX6$PQ4t0Fi1KBhamn45+%{{YUJwXI2W%X&Cv& zk%02Vcu;ipaSVROqMtnbp4xfUnm9`u%9@>zAOUQ%LD=cK|Rl z1AN^HK(^4m$}8Ba+SFH1XfofIegmFye|LTbhFB#p%&^by`rvZtMg&J?Bs4ECLV!%& z_giM|pqx&yWdzWRM5ksm&zBl>g0#ZD1lmEYfz?e<*k$nf_KfKXDV;;rK|8Ix zi`%1LV!AWC2yf2fs;+w_M{cXfRqHU*VceG|CZu#^@{frJ1{&ZQcsu=`PDN}>cTBy5 ze#PyW+{+|z!EiIl@9)ox+oYc(Rs4nNK6_N+X{fXfnnxB&CKNkK{z}U8L@hL?{MlCX zBB_~9J;vVd5eVE-hIG3~D#6u&%G=7YVYeC3CO?S&u7K3=oz5Z;$Bt_K;gQ{KWer_@ zjk&_*m9?0$X_aCc%deST@AKyI2n>Ckrb6uNV$*W6=8Al&O_TqZ_(}B3eB*ZReJWfSu}@yK#p>eKB^YP)du;9afbzZ<(XZ z(J5a#ea7LDjm2hu-(lOt3eYTQA{O7~bBjLu-8)*{Hd#i+o2&i`Z8C317-Cl#7v{pO zt+;l_yqQv;a|Pe}t|Tz8r>~*c>4nuoLf5Ay7hO&0Z?y+{`duHy79c>s8}|{@J=I4w z%U&-{;uarz-K@E#jlB0cRSI@jVRpWad2IIFqV)Qp4gYE8hBS3GxIEAKX}qGPrm)w) z@8!Pqzn(P3cnAul1-i55fM*ij{*hG+$hWZh@9;>Z6i1FjI<+I6EpRW8B3 zBh<|7s7D{;P%n71mop^VASz;b6y6M{sZ@cs%^MB*bvnoLE&c;CI+LWc4 zR2=}5LaiTK8SmKjyv(mY$aVpfB&DLJ*Os$deTQrEK-qp(9euA9xdz{LMiZxnNkDUa*x;o~9qJ{={SWTu5`;*b=SH{qMclxf28QPlJy*&Z00~_n8 z@Uwp5?}gK(ks*UKh|;Ey10LFhwEvEl5%^D!c6ihEje5jN>MbN>d8}#8&>@F_X`Z`D!xxiYY`cy&MlHOTE|83(2Inl;g*ELXH0HCcQvn40(qnW5<^ zi!dcMMF>>JJVyIU6gs*o)ellbF(5)be zf220#$N#i0QwAAk%6-O|G}rq|&$f9#&j5GpST7UUC<&pGsYx(D3=Nu7DXZ)W0j)L=SYLq9x4g4pxdC>JItHJ+@ zjjQx^^6YHNdM3;8u2c1bv)Yh)!m`mdVlv*~aF{pXsBQzW?KVwsp8XcA*2O|n;5#Rb zO4FQU1oM5PLe8Bz$)E)DRk=#@pTArt8DBV}g<+LRbCwFdLZ^K3bXv}BeUr>|!lym~%mqKQ{5tK$G~=DU?pXBT&$ekc z*@T$lg%Nk@6OA1K$-{xyt}AWS_sjMuP__{P>VSTT@hJMfPS!NRk(EzhcO=GF-NRz7 zfH9-aNDfBLcYvC~d05@=ip7R{P1F(52xWn@^}fKAsH}3?#aR9hNLw?O?Z`7zZCsd* zlt;GK!bDw3ahmjHlOlmHWt~Nt?zmOb8u7Hkz!pqydqE7MkGt_dI<&+IX zYO^(m5ex>~=tgxNQ?FxG%0nkzhX_JgIIZbxIHwOwAc^T9}f+h`_rEmK!Ouaqsux&Hy5h_(=XXr*Ew%@n$6424m4 zyK2XQG^v@_t;-K5&<`Dc{(OYc{WW~_F_hB`*{F3ScuqBzTG66L-UY-MfMaYSGnn{b%_#Nc3&T| zUM59W_w?8}k`7R%UaPgtXEVPcw|nQI1D40LVgLC*GIN*1_)k|1UsOyV807l#U-GX3 zmPFp1_frtoqeI}hpriIAXGR=5G_-NMm~GjT0+f(3K94TUk}Tb12%RikEu$l4r5wiR zs=;q&c{1MI(up)6ZMS(5ewGd!`QL@eYqP2dYcUbzn)-CpGNm|p=1us?d+HgEB zc+;+nX$O`y=6wAzrNFzFxuattVT>0g0t>&y+iFW9JlSzj=K}Y?J+6>qQgZ#m)2CAP zIf(j_5}ju0BL%}GW|du)Y}_SppKj$Rv^R!c(sMVZ%5xxW<;Uwj1SoH;NLfc+lb9X= z@Bgxu^%mA0RH^!cwRXd_4ExfVY%-oiIvI#F?t#=^4sfGK2~}Cz9Bkozp=P2fOsj;@ zx`$89ov{Mgma*msuRCmNmLMa;bw?+#23|CzOZnoDrt+WS<-SAVJHT z`J&Nlse$(`z8lr)N*xn+bdX#y$*)x6OAKg6@)9s zxLj(7>ncRPWNO>ektxYbx!EwOF2CQDox9?<)W--1-!AW|t2?M%l?nDp!{r$-)=?Cw zr)FlnQR;_)s*3@s9Ky+7@U%R-jE{5FbQqcXE9kBm^V&%FL_Su(G7qBR=rBkLPJIys zDN9H^d7RZ&7B2ocbnoz02Q?7^Qdmu|dH#}4V(16#0litIJpHyWH_})2`_lI{V2wd3jdDTl3`*_0@sBjmK@J^mivgh@8 zv(r;%iSc|d5rT875YX%VJwO{4K)VJjU3ev0+Oje#5G1g=Rjo+3rM@A^j}@<-eS=k# zQvrXL&Ztq@9Z;E2aYyj^y#lK|H*A3zAzs#I)k~?qLg5IF=41EYRw&W%UR60=Ky3CPJX56T6h z!UfTy%<~XW08<*o#ula#I0wy#232SLqj5>iAjdR#T`4~^+q(@35fp1pS*KOnbOVH3 z3$tYtGVhS&PRB?${C+77&QR8M{OoyUu#oS)#%#1skqDlayg99>|35bFEz%{d?R1N@ zQTM_qt--4vkQp*-Z^kg247Z48jroqpD)Mf0eZ6{Rn7bq~_So<;Yn(V%OuMm%oCY%7 zFxTPnPKWh!^DdYbr9gSx&BglLswH1O;f+sV3S+zo3!DR)!Gsqf!HMkd-L0659rg+c zW&OwgmkP5o%=I(0ZW>5y@32|o%N=fP%4FJsW0Ss2syq&fjplUPL=$)29hR~aPC)F# z2$;qVXDpaMqT1L>gq>?0*jrQwn)ZadCM?7T@l9-J$r%m3P$%>pIvHYD4R)}-d!1))yf_b@q0-F2O$*Xgw057NS~WG)n6$yi{`b9;}d)f;YFbgO$4bCSn3nv-&z zD}}dO^rn0x0C`4cSp3Pt+e5%S`}U3Gur8@IoXL-_R8{bz zIgm{%yOP+1i4NeYa>{Ap5M(L5&R+F~{v5N@oy5`N6-b;gTx?H_$A9zjAsqk8$4^h5 z=pcQ>{6iW12iwvc!8r2gmLSF>51JLxFN}&d>3kK!ofTT{Y?pA_j$xv9%4I>eQe8vM zA3OPImd8Wz(N1_gZeG7Oj*B-`aLhXAAYs*uv&JbU)=#S?k;vWEJt&qet!;O$eFgXo zM9}FVrJVm(`QV1D=3iKhi~f0pPBoYnbBeTUIC-jp{w`xwDDEp#8O3uOsrvq!sIk1v zk4W)1mm5)6#3W@c{*)Add9&nga)q!0z-{GW;f1-E49kFH3$D@xcuDp<1e3;e-l;6D@Df#_Ppb(Tuv`ujX6ig$%1)9>B%)b@Er2ccXBbD(!_g@hr1Nq5=&#{<{Z7&}@7Dm4I;6+wCy78sMA4P=geaj_u zoGk$6Hj$poIhS~0mS31GNjA1-obY+Hq=$x$T6yM&-`*@B#2S|E8FjW*ZYfO{YJyY% z3VZM+1n+-eyl`^5CK;VFhU=XpuI)J9c#--aC)BL~H>Z0P=h~~s|McMTXoOlQ%>P?X zS?9oUz0F;SM7KlF8R=DqbB-PMHL8Ul`|pw{=A=AhopT<~)ii6H?`LjL*{ZUMug*Mu z1KeR*ZH~jiXE-BrbjNH=qt*>vXGx)Yvmxlxc4u`JB^$0{3 z<%Dz$5b=fk#SMrH2x+>j24fN<{;&JLTpl`B2+)p4t{LuQ>?duN{epg7{BwUy9WWoZ zX7ZEDq8};)zbH#1Fkd|y!YIq z##@5JFA+%a@(#yIUbA6l>U_<+kV&7yaV0fg0U%Ytq!3D@zjV3>dXG z%TfrrWlhkmeiGDNraIVbmtbCIz@896&765uj~{6Etid{va-Qe^Wl9RxYCV_TbE*$$z$}}Df{z_ZAs+NFZUd^NO~Ht30ujBlj9CWdd}3??M4j7`#o}oec-<0pBD^ytQd(b1 z3KjMF+z?RLY$79QvJo>qO+8JIE|)Uhy~_lM2cP94=6agCn`V&_VY3t_${i-a480wH zr@npGJ7t_*MU8b)=&Rw}bj+AK%Qn#1iq-2{u!9XO8^G7{%hEQS<3t~L?GAZb^%W~+SH6@~{Kgv>PHeV;dAbp9p?3C07w1NImokGC} z+Vx}uDCp8jrTDGDR0Ax;ZDen+#sm4Y2nk9>;|wle`>x?zExP5sm)zAB$fCUq+Nwbd ze8JRbg5_#3Q1GIa$zr_c&=(dRq78Y0Ee5}A zYK#CM42ncMnT59Lmw;nH>6}2rJI3nWwt9~?r-59;FZD)sd+Xh|PVWI-(q6`Vg$VfJ z>`OK={Zd)qa@|I%;tpW<0xMy}!_=qsvi{jUixAh#w${f~UO+=$qrBSI~DQ4f$ot zAqpcM?5_JcL&>LtCf_?ce^Tf}ZxYu&%bTK8zJo*x9R!>4`OR~bA&}pM&u;>{!}40t zth{IFP}SfTR1x>jxpRg+(3%O^tcfmv)xiq&|zjUaXWw^kE{iq`d0`x*mlixVBo43Y=iCkd!R!LIt=&T zvkc+O6^=VuEg!a#+|^gFNez#ck$|1N>r~&MzR)+M@87Jj6WB^eD|KhOtgmoL*Vjk6 ztNWj0p1#8=`-O;C_S?Q(g}TDB{`uz?#e6VJVceuPe&;Vk%VbQ4Ow6{>WX0%@f%Lm_ zm_wkWG#)LfPo3%3%gekXhbvrX=l;x$J*(uk9hKKpk2v*sJl4KNMx~xU`S0`S_@@!{ z>})7MuP6~Ms6ZALa_y+gte&p*JKN351^T_R^A^GY1U2 z_UpOpFYRC32b!alagf5zDPNihFVD)!DbGrTXJrhOqx1)VP@&&F+;&m7wB(TP!WHvf z5I^7)r;vOvNd8J0kXlN)CzMi{Sr5<`xwMx&zt6e12tuF6;MEi;9ac>#R2t-UE?WYo~rK5!5D=TK#Zh8%)%p7qUTL?RWut;ndJ( zDv)>5tHh%JCv{M%0URzps#2X{Z76BPYBY`55(~o`RIlV5_P5){q^U7)>?#wCBAp0( z+`PvHl2VXJNitBd(!-Gr@(=d-J7Gs=K@M^YHG33r6*_i|XT3MRQYL>nx%w?R;#;8w zC*{ef-KyV4lHLyOzUoSf5FnGn6vDrg$jN}Y-wbnIR7OrqJX@N%fi1>U=(uAMo@;)g z^E*(Y=4!=b;P^@^trDNeDZWRY;b<&r!fCY$1oCDct)GXc{){9@wl$e&naWy>`Kb{L za#>$yw|MEsvU+eWEQ|pG*@#ibH`OHVA7XN10wGc)zVV&~&a(>J6@%=vg0-W9`QV_^ z%ac|c{7cQ79?mza<%5?f6ZXdiK}iN9o#B*788!^P1O-5bs@bY{Vvl#HmnMrEk! zZZ(J*(HV_wLCJk1nohN1iFjspu(PFKcaB#O)n2z8`+)oqV^;4_X zC+D%$`#xmw)?9O4y!)xjgdu+kPl>#dGQG=sOTza@b00l7$QdrF}X~ zZiwR|>shR3rmLPHB+0CGM*dY#EN&M zQYUq|q^X#AVsR6|T|S|fIp2I%q(Zu41(hyQN26b}8Ux&lGb2GuVFM7N5%2GtyYpS@ z*Ch$KeTx8EN7E|Jb(E%I(_bO*-lhT2bR#ef7{o=)mSGs9Z5X@$L9G7Qy(j9=lW46Z z)7PZGqR7G~ yQ^c%e(PmXnDx2#?W4Xm7!=uvuuLwN<``}L^{Rw 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 E0Ch*1Z2$lO literal 0 HcmV?d00001 diff --git a/_static/fonts/roboto-mono-400.woff2.license b/_static/fonts/roboto-mono-400.woff2.license new file mode 100644 index 00000000..f6ce2d85 --- /dev/null +++ b/_static/fonts/roboto-mono-400.woff2.license @@ -0,0 +1,2 @@ +SPDX-License-Identifier: Apache-2.0 +SPDX-FileCopyrightText: Christian Robertson diff --git a/_static/fonts/roboto-mono-700-italic.ttf b/_static/fonts/roboto-mono-700-italic.ttf new file mode 100644 index 0000000000000000000000000000000000000000..4bfe29ae89075e46bc813f4530cb3d6a9c5a5ae8 GIT binary patch literal 94148 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

    8H^QD9=0*hH)U-KYUYGJwz2G~l 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 literal 0 HcmV?d00001 diff --git a/_static/fonts/roboto-mono-700-italic.ttf.license b/_static/fonts/roboto-mono-700-italic.ttf.license new file mode 100644 index 00000000..f6ce2d85 --- /dev/null +++ b/_static/fonts/roboto-mono-700-italic.ttf.license @@ -0,0 +1,2 @@ +SPDX-License-Identifier: Apache-2.0 +SPDX-FileCopyrightText: Christian Robertson diff --git a/_static/fonts/roboto-mono-700-italic.woff2 b/_static/fonts/roboto-mono-700-italic.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..672a14690afb59a20b06dcab025bb3a83960be14 GIT binary patch literal 44804 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 A>;M1& literal 0 HcmV?d00001 diff --git a/_static/fonts/roboto-mono-700-italic.woff2.license b/_static/fonts/roboto-mono-700-italic.woff2.license new file mode 100644 index 00000000..f6ce2d85 --- /dev/null +++ b/_static/fonts/roboto-mono-700-italic.woff2.license @@ -0,0 +1,2 @@ +SPDX-License-Identifier: Apache-2.0 +SPDX-FileCopyrightText: Christian Robertson diff --git a/_static/fonts/roboto-mono-700.ttf b/_static/fonts/roboto-mono-700.ttf new file mode 100644 index 0000000000000000000000000000000000000000..900fce6848210593ee6aa630ce040a8424c23fd4 GIT binary patch literal 87008 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" + ) + ); + }, + + /** + * helper function to hide the search marks again + */ + hideSearchWords: () => { + document + .querySelectorAll("#searchbox .highlight-link") + .forEach((el) => el.remove()); + document + .querySelectorAll("span.highlighted") + .forEach((el) => el.classList.remove("highlighted")); + localStorage.removeItem("sphinx_highlight_terms") + }, + + initEscapeListener: () => { + // only install a listener if it is really needed + if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) return; + + document.addEventListener("keydown", (event) => { + // bail for input elements + if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; + // bail with special keys + if (event.shiftKey || event.altKey || event.ctrlKey || event.metaKey) return; + if (DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS && (event.key === "Escape")) { + SphinxHighlight.hideSearchWords(); + event.preventDefault(); + } + }); + }, +}; + +_ready(SphinxHighlight.highlightSearchWords); +_ready(SphinxHighlight.initEscapeListener); diff --git a/associated-items.html b/associated-items.html new file mode 100644 index 00000000..edd4cb47 --- /dev/null +++ b/associated-items.html @@ -0,0 +1,260 @@ + + + + + + + + + + + + 10. Associated Items — Ferrocene Language Specification + + + + + + + + + + + + + + +
    + +
    +
    + +
    +

    10. Associated Items

    +

    Syntax

    +
    AssociatedItem ::=
    +    OuterAttributeOrDoc* (AssociatedItemWithVisibility | TerminatedMacroInvocation)
    +
    +AssociatedItemWithVisibility ::=
    +    VisibilityModifier? (
    +        ConstantDeclaration
    +      | FunctionDeclaration
    +      | TypeAliasDeclaration
    +    )
    +

    Legality Rules

    +

    10:1 +An associated item is an item that appears within an +implementation or a trait.

    +

    10:2 +An associated constant is a constant that appears as an +associated item.

    +

    10:3 +An associated function is a function that appears as an +associated item.

    +

    10:4 +An associated type is a type alias that appears as an +associated item.

    +

    10:5 +An associated type shall not be used in the path expression of a +struct expression.

    +

    10:6 +An associated type with a TypeBoundList shall appear only as an +associated trait type.

    +

    10:7 +A generic associated type is an associated type with +generic parameters.

    +

    10:8 +A lifetime parameter of a generic associated type requires a +bound of the form T: 'lifetime, where T is a type parameter +or Self and 'lifetime is the lifetime parameter, when

    + +

    10:12 +An associated implementation constant is an associated constant that +appears within an implementation.

    +

    10:13 +An associated implementation constant shall have a constant +initializer.

    +

    10:14 +An associated implementation function is an associated function that +appears within an implementation.

    +

    10:15 +An associated implementation function shall have a function body.

    +

    10:16 +An associated implementation type is an associated type that appears +within an implementation.

    +

    10:17 +An associated implementation type shall have an initialization type.

    +

    10:18 +An associated trait item is an associated item that appears +within a trait.

    +

    10:19 +An associated trait implementation item is an associated item that +appears within a trait implementation.

    +

    10:20 +An associated trait constant is an associated constant that appears +within a trait.

    +

    10:21 +An associated trait function is an associated function that appears +within a trait.

    +

    10:22 +An associated trait type is an associated type that appears within +a trait.

    +

    10:23 +An associated trait type shall not have an initialization type.

    +

    10:24 +An associated trait type has an implicit core::marker::Sized +bound.

    +

    10:25 +An associated trait type of the form

    +
    trait T {
    +    type X: Bound;
    +}
    +
    +
    +

    10:26 +is equivalent to a where clause of the following form:

    +
    trait T where Self::X: Bound {
    +    type X;
    +}
    +
    +
    +

    10:27 +A method is an associated function with a self parameter.

    +

    10:28 +The type of a self parameter shall be one of the following:

    + +

    10:33 +The visibility modifier of an associated trait item or associated +trait implementation item is rejected, but may still be consumed by +macros.

    +

    Examples

    +
    trait Greeter {
    +    const MAX_GREETINGS: i32;
    +
    +    fn greet(self, message: &str);
    +}
    +
    +struct Implementor {
    +    delivered_greetings: i32
    +}
    +
    +impl Greeter for Implementor {
    +    const MAX_GREETINGS: i32 = 42;
    +
    +    fn greet(mut self, message: &str) {
    +        if self.delivered_greetings < Self::MAX_GREETINGS {
    +            self.delivered_greetings += 1;
    +            println!("{}", message);
    +        }
    +    }
    +}
    +
    +
    +

    10:34 +Generic associated type with lifetime bound.

    +
    trait LendingIterator {
    +    type Item<'x> where Self: 'x;
    +
    +    fn next<'a>(&'a mut self) -> Self::Item<'a>;
    +}
    +
    +
    +
    + + +
    +
    +

    + Copyright © The Ferrocene Developers. + + Contents released under the MIT or Apache 2.0 license. + +

    + + +

    Built from commit: 2d7de7f91004615d8c7b4fb2416718fb7bb4f769

    + +

    Ferrocene is a registered trademark of Critical Section GmbH.

    +
    +
    +
    + + + \ No newline at end of file diff --git a/attributes.html b/attributes.html new file mode 100644 index 00000000..5f3827b6 --- /dev/null +++ b/attributes.html @@ -0,0 +1,1648 @@ + + + + + + + + + + + + 13. Attributes — Ferrocene Language Specification + + + + + + + + + + + + + + +
    + +
    +
    + +
    +

    13. Attributes

    +

    Syntax

    +
    InnerAttributeOrDoc ::=
    +    InnerAttribute
    +  | InnerBuiltinAttribute
    +  | InnerBlockDoc
    +  | InnerLineDoc
    +
    +InnerAttribute ::=
    +    #![ AttributeContent ]
    +
    +OuterAttributeOrDoc ::=
    +    OuterAttribute
    +  | OuterBuiltinAttribute
    +  | OuterBlockDoc
    +  | OuterLineDoc
    +
    +OuterAttribute ::=
    +    #[ AttributeContent ]
    +
    +AttributeContent ::=
    +    SimplePath AttributeInput?
    +
    +AttributeInput ::=
    +    ( TokenTree* )
    +  | = Expression
    +
    +AttributeContentList ::=
    +    AttributeContent (, AttributeContent)* ,?
    +

    Legality Rules

    +

    13:1 +An attribute is a general, free-form metadatum that is interpreted based on +its name, convention, language, and tool.

    +

    13:2 +An inner attribute is an attribute that applies to an enclosing +item.

    +

    13:3 +An outer attribute is an attribute that applies to a subsequent +item.

    +

    13:4 +An attribute content is a construct that provides the content of +an attribute.

    +

    Examples

    +
    #[cfg[target_os = "linux"]]
    +mod linux_only_module {
    +    #![allow(unused_variables)]
    +
    +    let unused = ();
    +}
    +
    +
    +
    +

    13.1. Attribute Properties

    +

    Legality Rules

    +

    13.1:1 +An active attribute is an attribute that is removed from the item +it decorates.

    +

    13.1:2 +An inert attribute is an attribute that remains with the item +it decorates.

    +

    13.1:3 +The following attributes are active attributes:

    + +

    13.1:7 +Attribute test is an inert attribute when compiling for testing +purposes, otherwise it is an active attribute.

    +

    13.1:8 +All remaining attributes are inert attributes.

    +
    +
    +

    13.2. Built-in Attributes

    +

    Syntax

    +
    InnerBuiltinAttribute ::=
    +    #![ BuiltinAttributeContent ]
    +
    +OuterBuiltinAttribute ::=
    +    #[ BuiltinAttributeContent ]
    +
    +BuiltinAttributeContent ::=
    +    AutomaticallyDerivedContent
    +  | CfgAttrContent
    +  | CfgContent
    +  | ColdContent
    +  | CrateNameContent
    +  | CrateTypeContent
    +  | DeriveContent
    +  | DocContent
    +  | ExportNameContent
    +  | GlobalAllocatorContent
    +  | InlineContent
    +  | IgnoreContent
    +  | LinkContent
    +  | LinkNameContent
    +  | LinkSectionContent
    +  | LinkOrdinalContent
    +  | MacroExportContent
    +  | MacroUseContent
    +  | NoBinutilsContent
    +  | NoImplicitPreludeContent
    +  | NoLinkContent
    +  | NoMainContent
    +  | NoMangleContent
    +  | NonExhaustiveContent
    +  | NoStdContent
    +  | PanicHandlerContent
    +  | PathContent
    +  | ProcMacroAttributeContent
    +  | ProcMacroContent
    +  | ProcMacroDeriveContent
    +  | RecursionLimitContent
    +  | ReprContent
    +  | ShouldPanicContent
    +  | TargetFeatureContent
    +  | TestContent
    +  | TrackCallerContent
    +  | TypeLengthLimitContent
    +  | UsedContent
    +  | WindowsSubsystemContent
    +

    Legality Rules

    +

    13.2:1 +A built-in attribute is a language-defined attribute.

    +

    13.2:2 +The following built-in attributes are code generation attributes:

    + +

    13.2:8 +The following built-in attributes are +conditional compilation attributes:

    + +

    13.2:11 +The following built-in attributes are derivation attributes:

    + +

    13.2:14 +The following built-in attributes are diagnostics attributes:

    + +

    13.2:21 +The following built-in attributes are documentation attributes:

    + +

    13.2:23 +The following built-in attributes are +foreign function interface attributes:

    + +

    13.2:35 +The following built-in attributes are limits attributes:

    + +

    13.2:38 +The following built-in attributes are macro attributes:

    + +

    13.2:44 +The following built-in attributes are modules attributes:

    + +

    13.2:46 +The following built-in attributes are prelude attributes:

    + +

    13.2:49 +The following built-in attributes are runtime attributes:

    + +

    13.2:53 +The following built-in attributes are testing attributes:

    + +

    13.2:57 +The following built-in attributes are type attributes:

    + +
    +

    13.2.1. Code Generation Attributes

    +
    +

    13.2.1.1. Attribute cold

    +

    Syntax

    +
    ColdContent ::=
    +    cold
    +

    Legality Rules

    +

    13.2.1.1:1 +Attribute cold shall apply to functions.

    +

    13.2.1.1:2 +Attribute cold indicates that its related function is unlikely +to be called.

    +

    Examples

    +
    #[cold]
    +fn rarely_called_function () {}
    +
    +
    +
    +
    +

    13.2.1.2. Attribute inline

    +

    Syntax

    +
    InlineContent ::=
    +    inline InlineHint?
    +
    +InlineHint ::=
    +    ( (always | never) )
    +

    Legality Rules

    +

    13.2.1.2:1 +Attribute inline shall apply to closure expressions and +functions.

    +

    13.2.1.2:2 +Attribute inline marks its related function as inlined. +The process of replacing a call expression to an inlined function +with the function body is referred to as inlining.

    +

    13.2.1.2:3 +Attribute inline without an InlineHint suggests to a tool that +inlining should be performed.

    +

    13.2.1.2:4 +Attribute inline with InlineHint always suggests to a tool +that inlining should always be performed.

    +

    13.2.1.2:5 +Attribute inline with InlineHint never suggests to a tool +that inlining should never be performed.

    +

    13.2.1.2:6 +A tool is not obliged to perform inlining.

    +

    Examples

    +
    #[inline]
    +fn suggests_inlining() {}
    +
    +#[inline(always)]
    +fn requests_consistent_inlining() {}
    +
    +#[inline(never)]
    +fn requests_suppressed_inlining() {}
    +
    +
    +
    +
    +

    13.2.1.3. Attribute no_builtins

    +

    Syntax

    +
    NoBinutilsContent ::=
    +    no_builtins
    +

    Legality Rules

    +

    13.2.1.3:1 +Attribute no_builtins shall apply to the crate root module.

    +

    13.2.1.3:2 +Attribute no_builtins prevents the tool from replacing certain code +patterns with calls to intrinsic functions.

    +

    Examples

    +
    #![no_builtins]
    +
    +
    +

    13.2.1.4. Attribute target_feature

    +

    Syntax

    +
    TargetFeatureContent ::=
    +    target_feature ( enable = " FeatureList " )
    +
    +FeatureList ::=
    +    Feature (, Feature)*
    +
    +Feature ::=
    +    adx
    +  | aes
    +  | avx
    +  | avx2
    +  | bmi1
    +  | bmi2
    +  | fma
    +  | fxsr
    +  | lzcnt
    +  | pclmulqdq
    +  | popcnt
    +  | rdrand
    +  | rdseed
    +  | sha
    +  | sse
    +  | sse2
    +  | sse3
    +  | sse4.1
    +  | sse4.2
    +  | ssse3
    +  | xsave
    +  | xsavec
    +  | xsaveopt
    +  | xsaves
    +

    Legality Rules

    +

    13.2.1.4:1 +Attribute target_feature shall apply to unsafe functions.

    +

    13.2.1.4:2 +Attribute target_feature enables target architecture features for its +related function.

    +

    13.2.1.4:3 +The target architecture features are as follows:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    13.2.1.4:4

    Feature

    implicitly enables

    Description

    13.2.1.4:5

    adx

    Intel Multi-Precision Add-Cary Instruction Extensions

    13.2.1.4:6

    aes

    sse2

    Advanced Encryption Standard

    13.2.1.4:7

    avx

    sse4.2

    Advanced Vector Extensions

    13.2.1.4:8

    avx2

    avx

    Advanced Vector Extensions 2

    13.2.1.4:9

    bmi1

    Bit Manipulation Instruction Sets

    13.2.1.4:10

    bmi2

    Bit Manipulation Instruction Sets 2

    13.2.1.4:11

    fma

    avx

    Three-operand fused multiply-add

    13.2.1.4:12

    fxsr

    Save and restore x87 FPU, MMX technology, and SSE state

    13.2.1.4:13

    lzcnt

    Leading zeros count

    13.2.1.4:14

    pclmulqdq

    sse2

    Packed carry-less multiplication quadword

    13.2.1.4:15

    popcnt

    Count of bits set to 1

    13.2.1.4:16

    rdrand

    Read random number

    13.2.1.4:17

    rdseed

    Read random seed

    13.2.1.4:18

    sha

    sse2

    Secure Hash Algorithm

    13.2.1.4:19

    sse

    Streaming SIMD Extensions

    13.2.1.4:20

    sse2

    sse

    Streaming SIMD Extensions 2

    13.2.1.4:21

    sse3

    sse2

    Streaming SIMD Extensions 3

    13.2.1.4:22

    sse4.1

    sse3

    Streaming SIMD Extensions 4.1

    13.2.1.4:23

    sse4.2.

    sse4.1

    Streaming SIMD Extensions 4.2

    13.2.1.4:24

    ssse3

    sse3

    Supplemental Streaming SIMD Extensions 3

    13.2.1.4:25

    xsave

    Save processor extended status

    13.2.1.4:26

    xsavec

    Save processor extended status with compaction

    13.2.1.4:27

    xsaveopt

    Save processor extended states optimized

    13.2.1.4:28

    xsaves

    Save processor extended states supervizor

    +

    Undefined Behavior

    +

    13.2.1.4:29 +It is undefined behavior to execute a program compiled with target architecture +features that are not supported.

    +

    Examples

    +
    #[target_feature(enable="bmi1,sse4.1")]
    +fn requires_target_architecture_features () {}
    +
    +
    +
    +
    +

    13.2.1.5. Attribute track_caller

    +

    Syntax

    +
    TrackCallerContent ::=
    +    track_caller
    +

    Legality Rules

    +

    13.2.1.5:1 +Attribute track_caller shall apply to non-main functions with +ABI “Rust”.

    +

    13.2.1.5:2 +Attribute track_caller allows the function body of its +related function to obtain a core::panic::Location which indicates +the topmost untracked caller that ultimately led to the invocation of the +function.

    +

    13.2.1.5:3 +A tool is not required to implement this indication in an effective manner.

    +

    13.2.1.5:4 +When applied to an associated trait function, attribute +track_caller applies to all associated functions of the +implemented trait. If the associated trait function has a default +implementation, then the attribute applies to all overriding +functions.

    +

    Undefined Behavior

    +

    13.2.1.5:5 +It is undefined behavior when attribute track_caller applies to an +external function but does not apply to all linked implementations.

    +

    13.2.1.5:6 +It is undefined behavior when attribute track_caller is applied to +an exported function but the external function it links to is missing +the attribute.

    +

    Examples

    +
    #[track_caller]
    +fn who_called_me () {}
    +
    +
    +
    +
    +
    +

    13.2.2. Conditional Compilation Attributes

    +
    +

    13.2.2.1. Attribute cfg

    +

    Syntax

    +
    CfgContent ::=
    +    cfg ( ConfigurationPredicate )
    +
    +ConfigurationPredicate ::=
    +    ConfigurationOption
    +  | ConfigurationPredicateAll
    +  | ConfigurationPredicateAny
    +  | ConfigurationPredicateNot
    +
    +ConfigurationOption ::=
    +    ConfigurationOptionName ConfigurationOptionValue?
    +
    +ConfigurationOptionName ::=
    +    Identifier
    +
    +ConfigurationOptionValue ::=
    +    = StringLiteral
    +
    +ConfigurationPredicateAll ::=
    +    all ( ConfigurationPredicateList? )
    +
    +ConfigurationPredicateAny ::=
    +    any ( ConfigurationPredicateList? )
    +
    +ConfigurationPredicateNot ::=
    +    not ( ConfigurationPredicate )
    +
    +ConfigurationPredicateList ::=
    +    ConfigurationPredicate (, ConfigurationPredicate)* ,?
    +

    Legality Rules

    +

    13.2.2.1:1 +Attribute cfg enables conditional compilation.

    +

    13.2.2.1:2 +A configuration predicate is a construct that evaluates statically +to either true or false, and controls conditional compilation.

    +

    13.2.2.1:3 +An all configuration predicate is a configuration predicate that +models existential quantifier ALL.

    +

    13.2.2.1:4 +An all configuration predicate evaluates statically to true when either +all nested configuration predicates evaluate to true, or there are no nested +configuration predicates.

    +

    13.2.2.1:5 +An any configuration predicate is a configuration predicate that +models existential quantifier ANY.

    +

    13.2.2.1:6 +An any configuration predicate evaluates statically to true when any +nested configuration predicate evaluates to true.

    +

    13.2.2.1:7 +A not configuration predicate is a configuration predicate that +negates the Boolean value of its nested configuration predicate.

    +

    13.2.2.1:8 +A not configuration predicate evaluates statically to true when its +nested configuration predicate evaluates to false.

    +

    13.2.2.1:9 +The evaluation of a configuration option is tool-defined.

    +

    Examples

    +
    #[cfg(all(unix, target_pointer_width = "32"))]
    +fn on_32bit_unix() {}
    +
    +
    +
    +
    +

    13.2.2.2. Attribute cfg_attr

    +

    Syntax

    +
    CfgAttrContent ::=
    +    cfg_attr ( ConfigurationPredicate , AttributeContentList )
    +

    Legality Rules

    +

    13.2.2.2:1 +Attribute cfg_attr enables conditional compilation.

    +

    13.2.2.2:2 +An attribute cfg_attr where the related +configuration predicate evaluates to true is replaced with a new +attribute for each AttributeContent enumerated in the +attribute's AttributeContentList.

    +

    Examples

    +
    #[cfg_attr(windows, path="windows.rs")]
    +mod os;
    +
    +
    +
    +
    +
    +

    13.2.3. Derivation Attributes

    +
    +

    13.2.3.1. Attribute automatically_derived

    +

    Syntax

    +
    AutomaticallyDerivedContent ::=
    +    automatically_derived
    +

    Legality Rules

    +

    13.2.3.1:1 +Attribute automatically_derived is automatically added to +implementations that are created by attribute derive for +built-in traits.

    +
    +
    +

    13.2.3.2. Attribute derive

    +

    Syntax

    +
    DeriveContent ::=
    +    derive ( SimplePathList? )
    +

    Legality Rules

    +

    13.2.3.2:1 +Attribute derive shall apply to abstract data types.

    +

    13.2.3.2:2 +Attribute derive lists derive macros for automatic +implementation by a tool.

    +

    Examples

    +
    #[derive(PartialEq)]
    +struct S<T> {
    +    field: T
    +}
    +
    +
    +

    13.2.3.2:3 +Attribute derive causes trait core::cmp::PartialEq to be +automatically implemented for struct S<T> as follows:

    +
    impl<T: core::cmp::PartialEq> core::cmp::PartialEq for S<T> {
    +    fn eq(&self, other: &S<T>) -> bool {
    +       self.field == other.field
    +    }
    +
    +    fn ne(&self, other: &S<T>) -> bool {
    +       self.field != other.field
    +    }
    +}
    +
    +
    +
    +
    +
    +

    13.2.4. Diagnostics Attributes

    +
    +

    Note

    +

    The contents of this section are informational.

    +
    +

    13.2.4:1 +Diagnostic attributes are related to linting, and are not defined in +this document.

    +
    +
    +

    13.2.5. Documentation Attributes

    +
    +

    13.2.5.1. Attribute doc

    +

    Syntax

    +
    DocContent ::=
    +    doc DocInput
    +
    +DocInput ::=
    +    = MacroInvocation
    +  | = StringLiteral
    +  | ( TokenTree* )
    +

    Legality Rules

    +

    13.2.5.1:1 +Attribute doc associates documentation with a construct.

    +

    Examples

    +
    #![doc = "This is a doc comment written as an attribute."]
    +
    +
    +
    +
    +
    +

    13.2.6. Foreign Function Interface Attributes

    +
    +

    13.2.6.1. Attribute crate_name

    +

    Syntax

    +
    CrateNameContent ::=
    +    crate_name = StringLiteral
    +

    Legality Rules

    +

    13.2.6.1:1 +Attribute crate_name shall apply to the crate root module.

    +

    13.2.6.1:2 +Attribute crate_name shall specify the name of the related +crate.

    +

    Examples

    +
    #![crate_name = "factories"]
    +
    +
    +
    +
    +

    13.2.6.2. Attribute crate_type

    +

    Syntax

    +
    CrateTypeContent ::=
    +    crate_type = " CrateType "
    +
    +CrateType ::=
    +    bin
    +  | cdylib
    +  | dylib
    +  | lib
    +  | proc-macro
    +  | rlib
    +  | staticlib
    +

    Legality Rules

    +

    13.2.6.2:1 +Attribute crate_type shall apply to the crate root module.

    +

    13.2.6.2:2 +Attribute crate_type shall specify the linkage type of the +crate it appears in.

    +

    Examples

    +
    #![crate_type = "cdylib"]
    +
    +
    +
    +
    +

    13.2.6.3. Attribute export_name

    +

    Syntax

    +
    ExportNameContent ::=
    +    export_name = StringLiteral
    +

    Legality Rules

    +

    13.2.6.3:1 +Attribute export_name shall apply to functions and +statics.

    +

    13.2.6.3:2 +Attribute export_name shall specify the exported symbol of the +related function or static.

    +

    Examples

    +
    #[export_name = "exported_symbol"]
    +pub fn rust_name() {}
    +
    +
    +
    + + + + + +
    +

    13.2.6.9. Attribute no_main

    +

    Syntax

    +
    NoMainContent ::=
    +    no_main
    +

    Legality Rules

    +

    13.2.6.9:1 +Attribute no_main shall apply to the crate root module.

    +

    13.2.6.9:2 +Attribute no_main indicates that the symbols of the +main function will not be present in a binary.

    +

    Examples

    +
    #![no_main]
    +
    +
    +
    +
    +

    13.2.6.10. Attribute no_mangle

    +

    Syntax

    +
    NoMangleContent ::=
    +    no_mangle
    +

    Legality Rules

    +

    13.2.6.10:1 +Attribute no_mangle has no effect on constructs other than +functions and statics.

    +

    13.2.6.10:2 +Attribute no_mangle indicates that the name of the related +function or static will be used as the symbol for that function +or static.

    +

    13.2.6.10:3 +Attribute no_mangle causes the related function or static to +be publicly exported from the produced library or object file.

    +

    13.2.6.10:4 +An exported function is a function subject to attribute +no_mangle.

    +

    13.2.6.10:5 +An exported static is a static subject to attribute +no_mangle.

    +

    Examples

    +
    #[no_mangle]
    +pub fn symbol_name() {}
    +
    +
    +
    +
    +

    13.2.6.11. Attribute repr

    +

    Syntax

    +
    ReprContent ::=
    +    repr ( Representation )
    +
    +Representation ::=
    +    RepresentationKind Alignment?
    +
    +RepresentationKind ::=
    +    PrimitiveRepresentation
    +  | C
    +  | transparent
    +
    +Alignment ::=
    +    AlignmentDecrease
    +  | AlignmentIncrease
    +
    +PrimitiveRepresentation ::=
    +    i8
    +  | i16
    +  | i32
    +  | i64
    +  | i128
    +  | isize
    +  | u8
    +  | u16
    +  | u32
    +  | u64
    +  | u128
    +  | usize
    +
    +AlignmentDecrease ::=
    +    packed
    +
    +AlignmentIncrease ::=
    +    align ( DecimalLiteral )
    +

    Legality Rules

    +

    13.2.6.11:1 +Attribute repr shall apply to abstract data types.

    +

    13.2.6.11:2 +Attribute repr shall indicate the type representation of the +related type.

    +

    Examples

    +
    #[repr(C, align(8))]
    +struct c_struct {
    +    first_field: i16,
    +    second_field: i8
    +}
    +
    +
    +
    +
    +

    13.2.6.12. Attribute used

    +

    Syntax

    +
    UsedContent ::=
    +    used
    +

    Legality Rules

    +

    13.2.6.12:1 +Attribute used shall apply to statics.

    +

    13.2.6.12:2 +Attribute used forces a tool to keep the related static in the +output object file even if the static is not used or referenced by other +items in the crate.

    +

    Examples

    +
    #[used]
    +pub static THE_ANSWER: u32 = 42;
    +
    +
    +
    +
    +
    +

    13.2.7. Limits Attributes

    +
    +

    13.2.7.1. Attribute recursion_limit

    +

    Syntax

    +
    RecursionLimitContent ::=
    +    recursion_limit = " DecimalLiteral "
    +

    Legality Rules

    +

    13.2.7.1:1 +Attribute recursion_limit shall apply to the crate root module.

    +

    13.2.7.1:2 +Attribute recursion_limit sets the maximum depth of +macro expansion and auto-dereferencing.

    +

    Examples

    +
    #![recursion_limit = "42"]
    +
    +
    +
    +
    +

    13.2.7.2. Attribute type_length_limit

    +

    Syntax

    +
    TypeLengthLimitContent ::=
    +    type_length_limit = " DecimalLiteral "
    +

    Legality Rules

    +

    13.2.7.2:1 +Attribute type_length_limit shall apply to the +crate root module.

    +

    13.2.7.2:2 +Attribute type_length_limit sets the maximum number of +generic substitutions for type parameters when constructing a +concrete type.

    +

    Examples

    +
    #![type_length_limit = "42"]
    +
    +
    +
    +
    +
    +

    13.2.8. Macros Attributes

    +
    +

    13.2.8.1. Attribute macro_export

    +

    Syntax

    +
    MacroExportContent ::=
    +    macro_export
    +

    Legality Rules

    +

    13.2.8.1:1 +Attribute macro_export shall apply to declarative macros.

    +

    13.2.8.1:2 +Attribute macro_export changes the visibility of the related +declarative macro to public visibility and introduces the name +of the declarative macro into the item scope of the +crate root module.

    +

    Examples

    +
    #[macro_export]
    +macro_rules! m {
    +    () => {};
    +}
    +
    +
    +
    +
    +

    13.2.8.2. Attribute macro_use

    +

    Syntax

    +
    MacroUseContent ::=
    +    macro_use ImportedMacroList?
    +
    +ImportedMacroList ::=
    +    ( IdentifierList )
    +

    Legality Rules

    +

    13.2.8.2:1 +Attribute macro_use shall apply to crate imports and +modules.

    +

    13.2.8.2:2 +An ImportedMacroList enumerates macros-to-import. A macro-to-import shall +be subject to attribute macro_export.

    +

    13.2.8.2:3 +When applied to a crate import, attribute macro_use +imports from the related crate either:

    +
      +
    • 13.2.8.2:4 +The enumerated macros-to-import, or

    • +
    • 13.2.8.2:5 +If no macros-to-import have been specified, all macros subject to +attribute macro_export.

    • +
    +

    13.2.8.2:6 +When applied to a module, attribute macro_use extends the +textual macro scope of the related macro.

    +

    Examples

    +
    #[macro_use(first_macro, second_macro)]
    +extern crate macros;
    +#[macro_use]
    +mod module {}
    +
    +
    +
    +
    +

    13.2.8.3. Attribute proc_macro

    +

    Syntax

    +
    ProcMacroContent ::=
    +    proc_macro
    +

    Legality Rules

    +

    13.2.8.3:1 +Attribute proc_macro shall apply to public functions in the +crate root module of a proc-macro crate.

    +

    13.2.8.3:2 +Attribute proc_macro turns the related function into a +function-like macro.

    +

    Examples

    +
    #[proc_macro]
    +pub fn make_answer_to_life(_items: TokenStream) -> TokenStream {
    +    "fn answer_to_life() -> u32 { 42 }".parse().unwrap()
    +}
    +
    +
    +
    +
    +

    13.2.8.4. Attribute proc_macro_attribute

    +
    ProcMacroAttributeContent ::=
    +    proc_macro_attribute
    +

    Legality Rules

    +

    13.2.8.4:1 +Attribute proc_macro_attribute shall apply to public functions +in the crate root module of a proc-macro crate.

    +

    13.2.8.4:2 +Attribute proc_macro_attribute turns the related function into +an attribute macro.

    +

    Examples

    +
    #[proc_macro_attribute]
    +pub fn output_and_return_item
    +    (attr: TokenStream, item: TokenStream) -> TokenStream
    +{
    +    println!("attr: \"{}\"", attr.to_string());
    +    println!("item: \"{}\"", item.to_string());
    +    item
    +}
    +
    +
    +
    +
    +

    13.2.8.5. Attribute proc_macro_derive

    +

    Syntax

    +
    ProcMacroDeriveContent ::=
    +    proc_macro_derive ( DeriveName (, HelperAttributeList)? )
    +
    +DeriveName ::=
    +    Name
    +
    +HelperAttributeList ::=
    +    attributes ( IdentifierList )
    +

    Legality Rules

    +

    13.2.8.5:1 +Attribute proc_macro_derive shall apply to public functions in +the crate root module of a proc-macro crate.

    +

    13.2.8.5:2 +Attribute proc_macro_derive turns the related function into a +derive macro, where DeriveName defines the name of the +derive macro available to attribute derive.

    +

    13.2.8.5:3 +The HelperAttributeList declares the derive helper attributes of +the derive macro.

    +

    Examples

    +
    #[proc_macro_derive(Answer, attributes(marker))]
    +pub fn derive_answer_to_life(_items: TokenStream) -> TokenStream {
    +    "fn answer_to_life() -> u32 { 42 }".parse().unwrap()
    +}
    +
    +#[derive(Answer)]
    +struct S {
    +    #[marker] field: ()
    +}
    +
    +
    +
    +
    +
    +

    13.2.9. Modules Attributes

    +
    +

    13.2.9.1. Attribute path

    +

    Syntax

    +
    PathContent ::=
    +    path = StringLiteral
    +

    Legality Rules

    +

    13.2.9.1:1 +Attribute path shall apply to modules.

    +

    13.2.9.1:2 +Attribute path specifies the module path of the respective +module as a string literal.

    +

    13.2.9.1:3 +A tool is free to define the format of a module path.

    +

    Examples

    +
    #[path = "path/to/inline_module"]
    +mod inline_module {
    +    #[path = "path/to/outline_module"]
    +    mod outline_module;
    +}
    +
    +
    +
    +
    +
    +

    13.2.10. Prelude Attributes

    +
    +

    13.2.10.1. Attribute no_implicit_prelude

    +

    Syntax

    +
    NoImplicitPreludeContent ::=
    +    no_implicit_prelude
    +

    Legality Rules

    +

    13.2.10.1:1 +The inner attribute version of attribute no_implicit_prelude +shall apply to the crate root module or to modules.

    +

    13.2.10.1:2 +The outer attribute version of attribute no_implicit_prelude +shall apply to modules.

    +

    13.2.10.1:3 +Attribute no_implicit_prelude prevents the import of the +external prelude, the standard library prelude, and the tool +prelude.

    +

    Examples

    +
    #[no_implicit_prelude]
    +mod module {}
    +
    +
    +
    +
    +

    13.2.10.2. Attribute no_std

    +

    Syntax

    +
    NoStdContent ::=
    +    no_std
    +

    Legality Rules

    +

    13.2.10.2:1 +Attribute no_std shall apply to the crate root module.

    +

    13.2.10.2:2 +Attribute no_std has the following effects:

    + +

    Examples

    +
    #![no_std]
    +
    +
    +
    +
    +
    +

    13.2.11. Runtime Attributes

    +
    +

    13.2.11.1. Attribute global_allocator

    +

    Syntax

    +
    GlobalAllocatorContent ::=
    +    global_allocator
    +

    Legality Rules

    +

    13.2.11.1:1 +Attribute global_allocator shall apply to statics whose +types implement the core::alloc::GlobalAlloc trait.

    +

    13.2.11.1:2 +Attribute global_allocator sets the global allocator to the related +static.

    +

    Examples

    +
    #[global_allocator]
    +pub static THE_ANSWER: u32 = 42;
    +
    +
    +
    +
    +

    13.2.11.2. Attribute panic_handler

    +

    Syntax

    +
    PanicHandlerContent ::=
    +    panic_handler
    +

    Legality Rules

    +

    13.2.11.2:1 +Attribute panic_handler shall apply to functions with the +following restrictions:

    + +

    13.2.11.2:9 +Attribute panic_handler indicates that its related function +defines the behavior of panics.

    +

    13.2.11.2:10 +A crate graph shall contain exactly one function subject to +attribute panic_handler.

    +

    Examples

    +
    #[panic_handler]
    +fn panic(info: &core::panic::PanicInfo) -> ! {}
    +
    +
    +
    +
    +

    13.2.11.3. Attribute windows_subsystem

    +

    Syntax

    +
    WindowsSubsystemContent ::=
    +    windows_subsystem = " SubsystemKind "
    +
    +SubsystemKind ::=
    +    console
    +  | windows
    +

    Legality Rules

    +

    13.2.11.3:1 +Attribute windows_subsystem shall apply to the crate root module +of a binary crate.

    +

    13.2.11.3:2 +Attribute windows_subsystem specifies the subsystem on Windows.

    +

    13.2.11.3:3 +If attribute windows_subsystem is missing, the subsystem of the +related binary crate defaults to console.

    +

    Examples

    +
    #![windows_subsystem = "console"]
    +
    +
    +
    +
    +
    +

    13.2.12. Testing Attributes

    +
    +

    13.2.12.1. Attribute ignore

    +

    Syntax

    +
    IgnoreContent ::=
    +    ignore IgnoreReason?
    +
    +IgnoreReason ::=
    +    = StringLiteral
    +

    Legality Rules

    +

    13.2.12.1:1 +Attribute ignore shall apply to testing functions.

    +

    13.2.12.1:2 +Attribute ignore prevents the execution of its related +testing function.

    +

    Examples

    +
    #[test]
    +#[ignore = "not implemented yet"]
    +fn unit_testing_function() {}
    +
    +
    +
    +
    +

    13.2.12.2. Attribute should_panic

    +

    Syntax

    +
    ShouldPanicContent ::=
    +    should_panic ExpectedPanicMessage?
    +
    +ExpectedPanicMessage ::=
    +    ( expected = StringLiteral )
    +

    Legality Rules

    +

    13.2.12.2:1 +Attribute should_panic shall apply to testing functions.

    +

    13.2.12.2:2 +Attribute should_panic indicates that for the related +testing function to pass, it should panic.

    +

    13.2.12.2:3 +If ExpectedPanicMessage is specified, then the related +testing function passes only when the panic message contains the +ExpectedPanicMessage.

    +

    Examples

    +
    #[test]
    +#[should_panic(expected = "did not get meaning of life")]
    +fn test_meaning_of_life() {
    +    assert_eq!(meaning_of_life(), 42, "did not get meaning of life");
    +}
    +
    +
    +
    +
    +

    13.2.12.3. Attribute test

    +

    Syntax

    +
    TestContent ::=
    +    test
    +

    Legality Rules

    +

    13.2.12.3:1 +Attribute test shall apply to functions that:

    + +

    13.2.12.3:7 +Attribute test indicates that the respective function is a +testing function.

    +

    13.2.12.3:8 +A testing function that returns the unit type passes when it +terminates and does not panic.

    +

    13.2.12.3:9 +A testing function that returns core::result::Result<(), E> passes when +it returns core::result::Result::OK(()).

    +

    13.2.12.3:10 +A testing function that does not terminate shall pass and fail according to +the tool.

    +

    Examples

    +
    #[test]
    +fn test_the_thing() -> core::result::Result<()> {
    +    let input = create_input()?;
    +    do_the_thing(&input)?;
    +    core::result::Result::Ok(());
    +}
    +
    +
    +
    +
    +
    +

    13.2.13. Type Attributes

    +
    +

    13.2.13.1. Attribute non_exhaustive

    +

    Syntax

    +
    NonExhaustiveContent ::=
    +    non_exhaustive
    +

    Legality Rules

    +

    13.2.13.1:1 +Attribute non_exhaustive shall apply to enum types, +enum variants, and struct types.

    +

    13.2.13.1:2 +Attribute non_exhaustive indicates that the related +abstract data type or enum variant may have more fields or +enum variants added in the future. A type subject to attribute +non_exhaustive is referred to as a non-exhaustive type.

    +

    13.2.13.1:3 +A non-exhaustive type shall not be constructed outside of its defining +crate.

    +

    13.2.13.1:4 +An enum variant subject to attribute non_exhaustive is referred +to as a non-exhaustive variant.

    +

    13.2.13.1:5 +A non-exhaustive variant shall not be constructed outside of its defining +crate.

    +

    13.2.13.1:6 +Pattern matching a non-exhaustive variant shall require a +struct pattern with a rest pattern outside its defining crate.

    +

    13.2.13.1:7 +Pattern matching a non-exhaustive variant does not contribute towards +the exhaustiveness of match arms.

    +

    Examples

    +
    #[non_exhaustive]
    +enum enum_with_future_variants {
    +    Variant
    +}
    +
    +enum enum_variants_with_future_fields {
    +    #[non_exhaustive] Send { from: u32, to: u32 },
    +    #[non_exhaustive] Quit
    +}
    +
    +#[non_exhaustive]
    +struct struct_with_future_fields {
    +    field: u32
    +}
    +
    +
    +
    +
    +
    +
    + + +
    +
    +

    + Copyright © The Ferrocene Developers. + + Contents released under the MIT or Apache 2.0 license. + +

    + + +

    Built from commit: 2d7de7f91004615d8c7b4fb2416718fb7bb4f769

    + +

    Ferrocene is a registered trademark of Critical Section GmbH.

    +
    +
    +
    + + + \ No newline at end of file diff --git a/concurrency.html b/concurrency.html new file mode 100644 index 00000000..ab6deabd --- /dev/null +++ b/concurrency.html @@ -0,0 +1,231 @@ + + + + + + + + + + + + 17. Concurrency — Ferrocene Language Specification + + + + + + + + + + + + + + +
    + +
    +
    + +
    +

    17. Concurrency

    +

    17:1 +The Rust programming language provides features for concurrent programming +without data races, whose rules are presented in this chapter.

    +

    Legality Rules

    +

    17:2 +A data race is a scenario where two or more threads access a shared memory +location concurrently without any synchronization, where one of the accesses is +a modification.

    +

    Undefined Behavior

    +

    17:3 +It is undefined behavior if two or more threads engage in a data race.

    +
    +

    17.1. Send and Sync

    +

    Legality Rules

    +

    17.1:1 +The Rust programming language provides the core::marker::Send and +core::marker::Sync traits for preventing data races at the +type level.

    +

    17.1:2 +A send type is a type that implements the core::marker::Send +trait.

    +

    17.1:3 +An abstract data type automatically implements the +core::marker::Send trait if the types of all its +fields are send types.

    +

    17.1:4 +A send type shall have values that are safe to transfer across +thread boundaries.

    +

    17.1:5 +A sync type is a type that implements the core::marker::Sync +trait.

    +

    17.1:6 +An abstract data type automatically implements the +core::marker::Sync trait if the types of all its +fields are sync types.

    +

    17.1:7 +A sync type shall have values that are allowed to be shared across +multiple threads at any given time without incurring data races.

    +
    +
    +

    17.2. Atomics

    +

    Legality Rules

    +

    17.2:1 +An atomic type is a type defined in module +core::sync::atomic. Atomic types provide primitive shared-memory +communication between threads.

    +

    17.2:2 +Atomic types are related to types as follows:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    17.2:3

    Type

    Atomic Type

    17.2:4

    bool

    core::sync::atomic::AtomicBool

    17.2:5

    i8

    core::sync::atomic::AtomicI8

    17.2:6

    i16

    core::sync::atomic::AtomicI16

    17.2:7

    i32

    core::sync::atomic::AtomicI32

    17.2:8

    i64

    core::sync::atomic::AtomicI64

    17.2:9

    isize

    core::sync::atomic::AtomicIsize

    17.2:10

    *mut T

    core::sync::atomic::AtomicPtr

    17.2:11

    u8

    core::sync::atomic::AtomicU8

    17.2:12

    u16

    core::sync::atomic::AtomicU16

    17.2:13

    u32

    core::sync::atomic::AtomicU32

    17.2:14

    u64

    core::sync::atomic::AtomicU64

    17.2:15

    usize

    core::sync::atomic::AtomicUsize

    +
    +
    +

    17.3. Asynchronous Computation

    +

    Legality Rules

    +

    17.3:1 +The Rust programming language provides asynchronous computation through +module core::task and the core::future::Future trait.

    +

    17.3:2 +A future represents a value of a type that implements the +core::future::Future trait which may not have finished computing +yet.

    +

    17.3:3 +The computed value of a future is obtained by using an +await expression or by invoking core::future::Future::poll.

    +

    17.3:4 +core::future::Future::poll shall not be invoked on a future that has +already returned core::task::Poll::Ready.

    +
    +
    + + +
    +
    +

    + Copyright © The Ferrocene Developers. + + Contents released under the MIT or Apache 2.0 license. + +

    + + +

    Built from commit: 2d7de7f91004615d8c7b4fb2416718fb7bb4f769

    + +

    Ferrocene is a registered trademark of Critical Section GmbH.

    +
    +
    +
    + + + \ No newline at end of file diff --git a/entities-and-resolution.html b/entities-and-resolution.html new file mode 100644 index 00000000..eb7f509a --- /dev/null +++ b/entities-and-resolution.html @@ -0,0 +1,1617 @@ + + + + + + + + + + + + 14. Entities and Resolution — Ferrocene Language Specification + + + + + + + + + + + + + + +
    + +
    +
    + +
    +

    14. Entities and Resolution

    +
    +

    14.1. Entities

    +

    Syntax

    +
    Name ::=
    +    Identifier
    +

    Legality Rules

    +

    14.1:1 +An entity is a construct that can be referred to within program text, +usually via a field access expression or a path.

    +

    14.1:2 +A name is an identifier that refers to an entity.

    +

    14.1:3 +A declaration is a construct that introduces a name for an +entity.

    +

    14.1:4 +An explicitly declared entity is an entity that has a +declaration. The following entities are +explicitly declared entities:

    + +

    14.1:22 +An implicitly declared entity is an entity that lacks an explicit +declaration. The following entities are +implicitly declared entities:

    + +
    +
    +

    14.2. Visibility

    +

    Syntax

    +
    VisibilityModifier ::=
    +    CratePublicModifier
    +  | SelfPublicModifier
    +  | SimplePathPublicModifier
    +  | SimplePublicModifier
    +  | SuperPublicModifier
    +
    +CratePublicModifier ::=
    +    pub ( crate )
    +
    +SelfPublicModifier ::=
    +    pub ( self )
    +
    +SimplePathPublicModifier ::=
    +    pub ( in SimplePath )
    +
    +SimplePublicModifier ::=
    +    pub
    +
    +SuperPublicModifier ::=
    +    pub ( super )
    +

    Legality Rules

    +

    14.2:1 +Visibility is a property of fields and items that determines +which modules can refer to the name of the field or item.

    +

    14.2:2 +Public visibility is a kind of visibility that allows for a name +to be referred to from arbitrary module M as long as the ancestor +modules of the related entity can be referred to from M.

    +

    14.2:3 +Private visibility is a kind of visibility that allows a name +to be referred to only by the current module of the entity, and its +descendant modules.

    +

    14.2:4 +A visibility modifier sets the visibility of a name.

    +

    14.2:5 +A crate public modifier is a visibility modifier that grants a +name public visibility within the current crate only.

    +

    14.2:6 +A self public modifier is a visibility modifier that grants a +name private visibility. A self public modifier is equivalent +to a simple path public modifier where the simple path denotes +keyword self.

    +

    14.2:7 +A simple path public modifier is a visibility modifier that grants a +name public visibility within the provided simple path only.

    +

    14.2:8 +The simple path of a simple path public modifier shall start +with a path segment expressed by either keyword crate, +keyword self, or keyword super.

    +

    14.2:9 +The simple path of a simple path public modifier shall resolve to +an ancestor module of the current module or the current module +itself.

    +

    14.2:10 +A simple public modifier is a visibility modifier that grants a +name public visibility.

    +

    14.2:11 +A super public modifier is a visibility modifier that grants a +name public visibility within the parent module only. A +super public modifier is equivalent to a simple path public modifier +where the simple path denotes keyword super.

    +

    14.2:12 +An external item, a field, or an item that appears without a +visibility modifier has private visibility by default.

    +

    14.2:13 +An associated item of a trait has the same visibility as the +trait.

    +

    14.2:14 +An enum variant and its fields have the same visibility as the +containing enum type.

    +

    Examples

    +
    pub mod outer_module {
    +    pub mod inner_module {
    +        pub(crate) fn crate_visible_function() {}
    +
    +        pub(self) fn inner_module_visible_function() {}
    +
    +        pub(super) fn outer_module_visible_function() {}
    +
    +        pub fn visible_function() {}
    +
    +        fn caller() {
    +            crate_visible_function();
    +            inner_module_visible_function();
    +            visible_function();
    +        }
    +    }
    +
    +    fn caller() {
    +        inner_module::crate_visible_function();
    +        inner_module::outer_module_visible_function();
    +        inner_module::visible_function();
    +    }
    +}
    +
    +fn caller() {
    +    outer_module::inner_module::crate_visible_function();
    +    outer_module::inner_module::visible_function();
    +}
    +
    +
    +
    +
    +

    14.3. Paths

    +

    Syntax

    +
    SimplePath ::=
    +    ::? SimplePathSegment (:: SimplePathSegment)*
    +
    +SimplePathSegment ::=
    +    Identifier
    +  | crate
    +  | $crate
    +  | self
    +  | super
    +
    +SimplePathList ::=
    +    SimplePath (, SimplePath)* ,?
    +
    +QualifiedType ::=
    +    < TypeSpecification QualifyingTrait? >
    +
    +QualifyingTrait ::=
    +    as TypePath
    +
    +UnqualifiedPathExpression ::=
    +    ::? PathExpressionSegment (:: PathExpressionSegment)*
    +
    +PathExpressionSegment ::=
    +    PathSegment (:: GenericArgumentList)?
    +
    +PathSegment ::=
    +    SimplePathSegment
    +  | Self
    +
    +QualifiedPathExpression ::=
    +    QualifiedType (:: PathExpressionSegment)+
    +
    +TypePath ::=
    +    ::? TypePathSegment (:: TypePathSegment)*
    +
    +TypePathSegment ::=
    +    PathSegment ::? (GenericArgumentList | QualifiedFnTrait)?
    +
    +QualifiedFnTrait ::=
    +    ( TypeSpecificationList? ) ReturnType?
    +
    +QualifiedTypePath ::=
    +    QualifiedType (:: TypePathSegment)+
    +

    Legality Rules

    +

    14.3:1 +A path is a sequence of path segments logically separated by +namespace qualifier :: that resolves to an entity.

    +

    14.3:2 +A path segment is an element of a path.

    +

    14.3:3 +A path is subject to path resolution.

    +

    14.3:4 +If a path segment is expressed as either keyword crate, +keyword $crate, keyword self, or keyword Self, then +the path segment shall be the first path segment of a path.

    +

    14.3:5 +A path that starts with a path segment that is expressed as +keyword $crate shall appear only within a macro transcriber.

    +

    14.3:6 +If a path segment is expressed as keyword super, then the +path segment shall either be the first path segment of a path, +or the previous path segment of the path shall also be expressed as +keyword super.

    +

    14.3:7 +A global path is a path that starts with namespace qualifier +::.

    +

    14.3:8 +A simple path is a path whose path segments consist of either +identifiers or certain keywords as defined in the syntax rules +above.

    +

    14.3:9 +A path prefix is a path with its last path segment and +namespace qualifier :: stripped.

    +

    14.3:10 +If a simple path appears in a use import and starts with a +path segment expressed as either keyword crate, keyword +$crate, keyword self, or keyword super, then the +path shall be the simple path prefix of a glob import or a +nesting import, or the simple path of a simple import.

    +

    14.3:11 +If a simple path appears in a use import and starts with a +path segment expressed as keyword self, then the path shall +be part of the UseImportContent of a nesting import as long as the +path is a single segment path.

    +

    14.3:12 +A simple path is subject to simple path resolution.

    +

    14.3:13 +A single segment path is a path consisting of exactly one +path segment.

    +

    14.3:14 +A multi segment path is a path consisting of more than one +path segment.

    +

    14.3:15 +An unqualified path expression is a path expression without a qualified type.

    +

    14.3:16 +A path expression is subject to path expression resolution.

    +

    14.3:17 +A type path is a path that acts as a type specification.

    +

    14.3:18 +A type path is subject to type path resolution.

    +

    14.3:19 +A qualifying trait is a trait that imposes a restriction on a +qualified type.

    +

    14.3:20 +A qualifying trait shall resolve to a trait.

    +

    14.3:21 +A qualified type is a type that is restricted to a set of +implementations that exhibit implementation conformance to a +qualifying trait.

    +

    14.3:22 +A qualified type shall resolve to a type.

    +

    14.3:23 +A qualified type shall implement its related qualifying trait.

    +

    14.3:24 +A qualified path expression is a path expression that resolves +through a qualified type.

    +

    14.3:25 +A qualified type path is a type path that resolves through a +qualified type.

    +

    14.3:26 +An associated type projection is a qualified type path of the form +<type as trait>::associated_type, where type is a type, trait +is a qualifying trait, and associated type is an associated type.

    +

    14.3:27 +A qualified fn trait is a construct that refers to the +core::ops::Fn, core::ops::FnMut, or core::ops::FnOnce +trait.

    +

    14.3:28 +If a path contains a path segment with a qualified fn trait, +then the path segment shall be the last path segment of the +path.

    +

    Examples

    +

    14.3:29 +The following is a simple path. See Paragraph 14.2. for the +declaration of crate_visible_function.

    +
    crate::outer_module::inner_module::crate_visible_function();
    +
    +
    +

    14.3:30 +The following is an unqualified path expression` with a generic argument.

    +
    Vec::<u8>::with_capacity(42);
    +
    +
    +

    14.3:31 +The following is a type path with a generic argument.

    +
    std::boxed::Box<dyn std::ops::FnOnce(isize) -> size>;
    +
    +struct S;
    +impl S {
    +    fn f() { println!("f of S"); }
    +}
    +trait T {
    +    fn f() { println!("f of T"); }
    +}
    +impl T for S {}
    +
    +
    +

    14.3:32 +The following is a qualified path expression. The call expression +invokes the associated function of S’s trait implementation of +trait T.

    +
    <S as T>::f();
    +
    +
    +

    14.3:33 +The following is a qualified type path. It resolves to the associated +type of S’s trait implementation of trait T.

    +
    type T = <S as T>::Assoc;
    +
    +
    +
    +
    +

    14.4. Scopes

    +

    Legality Rules

    +

    14.4:1 +A scope is a region of program text where an entity can be referred +to. An entity is in scope when it can be referred to.

    +
    +

    14.4.1. Binding Scopes

    +

    Legality Rules

    +

    14.4.1:1 +A binding scope is a scope for bindings.

    +

    14.4.1:2 +The binding of a closure parameter is in scope within the +related closure body.

    +

    14.4.1:3 +The binding of a function parameter is in scope within the +related function body.

    +

    14.4.1:4 +The binding of a for loop or a while let loop is in scope +within the related loop body.

    +

    14.4.1:5 +The binding of an if let expression is in scope within the +related block expression.

    +

    14.4.1:6 +The binding of a let statement is in scope after the related +let statement, until the end of the block expression where the +related let statement appears.

    +

    14.4.1:7 +The binding of a match arm is in scope within its related +expressions and related match arm guard.

    +
    +
    +

    14.4.2. Generic Parameter Scope

    +

    Legality Rules

    +

    14.4.2:1 +A generic parameter scope is a scope for generic parameters.

    +

    14.4.2:2 +A generic parameter is in scope of a GenericParameterList.

    +

    14.4.2:3 +A generic parameter of an enum type is in scope within the +related enum variants and where clause.

    +

    14.4.2:4 +A generic parameter of a function pointer type is in scope +within the related type specification.

    +

    14.4.2:5 +A generic parameter of an implementation is in scope within the +related implementation body and where clause.

    +

    14.4.2:6 +A generic parameter of a struct type is in scope within the +related fields and where clause.

    +

    14.4.2:7 +A generic parameter of a trait is in scope within the related +trait body and where clause.

    +

    14.4.2:8 +A generic parameter of a trait bound is in scope within the +related generic parameters or the related type path.

    +

    14.4.2:9 +A generic parameter of a type alias is in scope within the +related initialization type and where clause.

    +

    14.4.2:10 +A generic parameter of a type bound predicate is in scope within +the related TypeBoundList.

    +

    14.4.2:11 +A generic parameter of a union type is in scope within the +related fields and where clause.

    +

    14.4.2:12 +A generic parameter is not in scope within nested items, +except within associated items.

    +
    +
    +

    14.4.3. Item Scope

    +

    Legality Rules

    +

    14.4.3:1 +An item scope is a scope for items.

    +

    14.4.3:2 +An item declared within the block expression of an +expression-with-block is in scope within the related +block expression.

    +

    14.4.3:3 +An item declared within a module is in scope within the +related module. Such an item is not in scope within nested +modules.

    +
    +
    +

    14.4.4. Label Scope

    +

    Legality Rules

    +

    14.4.4:1 +A label scope is a scope for labels.

    +

    14.4.4:2 +A label is in scope within the block expression of the related +loop expression.

    +

    14.4.4:3 +A label is not in scope within nested async blocks, +closure expressions, constant contexts, and items.

    +
    +
    +

    14.4.5. Self Scope

    +

    Legality Rules

    +

    14.4.5:1 +A Self scope is a scope for Self.

    +

    14.4.5:2 +Self of an enum type is in scope within the related +enum variants, generic parameters, and where clause.

    +

    14.4.5:3 +Self of an implementation is in scope within the related +generic parameters, implementation body, and where clause.

    +

    14.4.5:4 +Self of a struct type is in scope within the related +fields, generic parameters, and where clause.

    +

    14.4.5:5 +Self of a trait is in scope within the related +generic parameters, trait body, and where clause.

    +

    14.4.5:6 +Self of a union type is in scope within the related +fields, generic parameters, and where clause.

    +

    14.4.5:7 +Self is not in scope within attributes.

    +
    +
    +

    14.4.6. Textual Macro Scope

    +

    Legality Rules

    +

    14.4.6:1 +A textual macro scope is a scope for declarative macros.

    +

    14.4.6:2 +A declarative macro is in scope after the related macro +declaration, until the end of the block expression or the enclosing +module where the macro declaration appears.

    +

    14.4.6:3 +If the textual macro scope is introduced by a module and the +module is subject to attribute macro_use, then the +textual macro scope extends until the end of the scope introduced by +the enclosing block expression or module.

    +
    +
    +

    14.4.7. Scope Hierarchy

    +

    Legality Rules

    +

    14.4.7:1 +The scope hierarchy reflects the nesting of scopes as introduced +by scoping constructs. An inner scope introduced by a nested +scoping construct is the child of an outer scope introduced by an +enclosing scoping construct.

    +

    14.4.7:2 +A scoping construct is a construct that introduces scopes +into the scope hierarchy. The following constructs are +scoping constructs:

    + +

    14.4.7:21 +A closure expression introduces a binding scope into the +scope hierarchy.

    +

    14.4.7:22 +A declarative macro introduces a textual macro scope into the +scope hierarchy.

    +

    14.4.7:23 +The declaration of an enum type introduces a +generic parameter scope and a Self scope into the +scope hierarchy.

    +

    14.4.7:24 +The declaration of a function introduces a binding scope and a +generic parameter scope into the scope hierarchy.

    +

    14.4.7:25 +The type specification of a function pointer type introduces a +generic parameter scope into the scope hierarchy.

    +

    14.4.7:26 +An if let expression introduces a binding scope into the +scope hierarchy.

    +

    14.4.7:27 +The declaration of an implementation introduces a +generic parameter scope and a Self scope into the +scope hierarchy.

    +

    14.4.7:28 +A let statement introduces a binding scope into the +scope hierarchy.

    +

    14.4.7:29 +A for loop expression or a while let loop expression introduces a +binding scope and a label scope into the scope hierarchy.

    +

    14.4.7:30 +An infinite loop expression or a while loop expression introduces a +label scope into the scope hierarchy.

    +

    14.4.7:31 +A match arm introduces a binding scope into the +scope hierarchy.

    +

    14.4.7:32 +The declaration of a module introduces an item scope into the +scope hierarchy.

    +

    14.4.7:33 +The declaration of a struct type introduces a +generic parameter scope and a Self scope into the +scope hierarchy.

    +

    14.4.7:34 +The declaration of a trait introduces a generic parameter scope +and a Self scope into the scope hierarchy.

    +

    14.4.7:35 +A trait bound introduces a generic parameter scope into the +scope hierarchy.

    +

    14.4.7:36 +The declaration of a type alias introduces a +generic parameter scope.

    +

    14.4.7:37 +A type bound predicate introduces a generic parameter scope into the +scope hierarchy.

    +

    14.4.7:38 +The declaration of a union type introduces a +generic parameter scope and a Self scope into the +scope hierarchy.

    +
    +
    +
    +

    14.5. Namespaces

    +

    Legality Rules

    +

    14.5:1 +A namespace is a logical grouping of names such that the occurrence +of a name in one namespace does not conflict with an occurrence of +the same name in another namespace.

    +

    14.5:2 +Names are segregated into one of five namespaces based on the +kind of entity the name refers to.

    +

    14.5:3 +A label namespace contains labels.

    +

    14.5:4 +A lifetime namespace contains the names of +lifetime parameters.

    +

    14.5:5 +A macro namespace contains the names of the following kinds of +entities:

    + +

    14.5:11 +A type namespace contains the names of the following kinds of +entities:

    + +

    14.5:25 +A value namespace contains the names of the following kinds of +entities:

    + +

    14.5:36 +The names of the following kinds of entities are not part +of any namespace:

    + +
    +
    +

    14.6. Preludes

    +

    Legality Rules

    +

    14.6:1 +A prelude is a collection of entities that are automatically +brought in scope of every module in a crate. Such +entities are referred to as +prelude entities. The name of a prelude entity +is referred to as a prelude name.

    +

    14.6:2 +The core prelude is a prelude that brings in scope of every +module all re-exported entities from the +core::prelude::rust_2021 module.

    +

    14.6:3 +An external prelude is a prelude that brings in scope of the +crate root module the entities of the crates imported +using external crate imports or supplied by a tool. If the external +crate import uses a renaming, then the identifier of the +renaming is instead added to the external prelude. The core +crate is always added to the external prelude unless the crate +root is subject to attribute no_core.

    +

    14.6:4 +The language prelude is a prelude that brings in scope of every +module the following entities:

    + +

    14.6:10 +The macro_use prelude is a prelude that brings in scope of the +crate root module the entities of macros from +external crates that were imported using an external crate import.

    +
    +
    +

    14.7. Use Imports

    +

    Syntax

    +
    UseImport ::=
    +    use UseImportContent ;
    +
    +UseImportContent ::=
    +    GlobImport
    +  | NestingImport
    +  | SimpleImport
    +
    +GlobImport ::=
    +    SimplePathPrefix? *
    +
    +NestingImport ::=
    +    SimplePathPrefix? { UseImportContentList? }
    +
    +SimpleImport ::=
    +    SimplePath Renaming?
    +
    +SimplePathPrefix ::=
    +    SimplePath? ::
    +
    +UseImportContentList ::=
    +    UseImportContent (, UseImportContent)* ,?
    +

    Legality Rules

    +

    14.7:1 +A use import brings entities in scope within the +block expression of an expression-with-block or module where the +use import resides.

    +

    14.7:2 +A simple path prefix is the leading simple path of a glob import +or a nesting import.

    +

    14.7:3 +An import path prefix is the fully constructed path prefix of a +use import. An import path prefix for a given +simple import or glob import is constructed as follows:

    +
      +
    1. 14.7:4 +Start the import path prefix as follows:

      + +
    2. +
    3. 14.7:8 +Then if the current use import is the child of a nesting import, +prepend the nesting import‘s simple path prefix to the +import path prefix. Repeat this step with the nesting import as +the current use import.

    4. +
    +

    14.7:9 +A simple import is a use import that brings all entities +it refers to into scope, optionally with a different +name than they are declared with by using a renaming.

    +

    14.7:10 +A glob import is a use import that brings all entities +exported by the module or enum its import path prefix resolves to +into scope.

    +

    14.7:11 +An import path prefix shall resolve to a module or enum.

    +

    14.7:12 +A glob import brings names into scope as follows:

    + +

    14.7:15 +A simple import path is the path constructed by appending the last +path segment of a simple import‘s simple path to the +import path prefix.

    +

    14.7:16 +A simple import brings names into scope as follows:

    + +

    14.7:21 +An Entity imported by a simple import subject to a +renaming with identifier is brought into scope under the +name declared by the renaming.

    +

    14.7:22 +A trait imported by a simple import subject to a +renaming with character underscore _ is added into scope without +a name.

    +

    14.7:23 +A nesting import is a use import that provides a common +simple path prefix for its nested use imports.

    +

    14.7:24 +A glob import outside of a nesting import without a simple path +prefix is rejected, but may still be consumed by macros.

    +

    14.7:25 +A simple import with a simple path with a single path segment of +keyword self shall be subject to the following:

    + +

    14.7:28 +It is a static error if two glob imports import the same name in the +same namespace but refer to different entities if the +name is used or shadowed.

    +

    14.7:29 +If two glob imports import the same entity under the same name, +the visibility of the name is the most permissive one.

    +

    Examples

    +

    14.7:30 +The following is a glob import. See Paragraph 14.2. +for the declaration of modules and functions. The imported functions +are create_visible_function, outer_module_visible_function, +visible_function.

    +
    use outer_module::inner_module::*;
    +
    +
    +

    14.7:31 +The following is a renaming import. The imported function is +visible_function under the name f.

    +
    use outer_module::inner_module::visible_function as f;
    +
    +
    +

    14.7:32 +The following is a selective import. The imported functions are +crate_visible_function and visible_function.

    +
    use outer_module::inner_module
    +    {crate_visible_function, visible_function}
    +
    +
    +

    Legality Rules

    +
    +
    +

    14.8. Shadowing

    +

    Legality Rules

    +

    14.8:1 +Shadowing is a property of names. A name is said to be +shadowed when another name with the same characters is introduced +in the same scope within the same namespace, effectively hiding it. +A name cannot be referred to by any means once it is shadowed.

    +

    14.8:2 +No name shall be shadowed except for

    + +

    14.8:6 +A prelude name shadows other prelude names depending on which +preludes are included in a module. The order of shadowing is as +follows, where a later prelude name shadows earlier prelude name:

    +
      +
    1. 14.8:7 +Language prelude names.

    2. +
    3. 14.8:8 +Standard library prelude names.

    4. +
    5. 14.8:9 +macro_use prelude names.

    6. +
    7. 14.8:10 +Tool prelude names.

    8. +
    9. 14.8:11 +External prelude names.

    10. +
    +
    +
    +

    14.9. Resolution

    +

    Legality Rules

    +

    14.9:1 +Resolution is the process of finding a unique interpretation for a +field access expression, a method call expression, a call +expression or a path.

    +

    14.9:2 +A construct that is being resolved is said to be under resolution.

    +

    14.9:3 +A dereference type is either a reference type or a type that +implements the core::ops::Deref trait.

    +

    14.9:4 +A dereference type chain is a sequence of dereference types. A +dereference type chain starts with an initial dereference type. From +then on, the dereference type chain continues as follows:

    + +
    +

    14.9.1. Field Resolution

    +

    Legality Rules

    +

    14.9.1:1 +Field resolution is a form of resolution that applies to a +field access expression.

    +

    14.9.1:2 +A candidate container type is the type of the container operand +of a field access expression under resolution.

    +

    14.9.1:3 +A candidate container type chain is a sequence of +candidate container types. The candidate container type chain +starts with the type of the container operand of the +field access expression under resolution. From then on, the +candidate container type chain is treated as a +dereference type chain.

    +

    14.9.1:4 +A candidate field is a field of a candidate container type +that is visible from the location of the field access expression +under resolution.

    +

    14.9.1:5 +A candidate indexed field is a candidate field whose position in the +type of the container operand matches the index of an +indexed field selector.

    +

    14.9.1:6 +A candidate named field is a candidate field whose name matches +the characters of a named field selector.

    +

    14.9.1:7 +Field resolution of a field access expression with an +indexed field selector proceeds as follows:

    +
      +
    1. 14.9.1:8 +For each candidate container type of the +candidate container type chain

      +
        +
      1. 14.9.1:9 +Try to locate a candidate indexed field of the +candidate container type.

      2. +
      3. 14.9.1:10 +If such a candidate indexed field exists and is visible at the point +of the field access expression, then the field access expression +resolves to that candidate indexed field and field resolution +stops.

      4. +
      +
    2. +
    +

    14.9.1:11 +Field resolution of a field access expression with a +named field selector proceeds as follows:

    +
      +
    1. 14.9.1:12 +For each candidate container type of the +candidate container type chain

      +
        +
      1. 14.9.1:13 +Try to locate a candidate named field of the +candidate container type.

      2. +
      3. 14.9.1:14 +If such a candidate named field exists and is visible at the point +of the field access expression, then the field access expression +resolves to that candidate named field and field resolution +stops.

      4. +
      +
    2. +
    +

    14.9.1:15 +A field access expression shall resolve to exactly one field.

    +
    +
    +

    14.9.2. Method Resolution

    +

    Legality Rules

    +

    14.9.2:1 +Method resolution is a kind of resolution that applies to a +method call expression.

    +

    14.9.2:2 +A receiver type is the type of the receiver operand +of a method call expression.

    +

    14.9.2:3 +A candidate receiver type is the type of the receiver operand +of a method call expression under resolution.

    +

    14.9.2:4 +A candidate receiver type chain is a sequence of +candidate receiver types. The candidate receiver type chain starts +with the type of the receiver operand of the +method call expression under resolution. From then on, the +candidate receiver type chain is treated as a dereference type chain.

    +

    14.9.2:5 +A candidate method is a method of a candidate receiver type that +is visible from the location of the method call expression +under resolution.

    +

    14.9.2:6 +Method resolution proceeds as follows:

    +
      +
    1. 14.9.2:7 +For each candidate receiver type of the +candidate receiver type chain

      +
        +
      1. 14.9.2:8 +Perform method resolution receiver candidate lookup for the +candidate receiver type.

      2. +
      3. 14.9.2:9 +If the last candidate receiver type is an array type, then +perform method resolution receiver candidate lookup for a +slice type where the slice type has the same element type +as the array type.

      4. +
      +
    2. +
    +

    14.9.2:10 +Method resolution receiver candidate lookup for a receiver type +proceeds as follows:

    +
      +
    1. 14.9.2:11 +Perform method resolution implementation candidate lookup for the +receiver type.

    2. +
    3. 14.9.2:12 +Perform method resolution implementation candidate lookup for the +immutable borrow of the receiver type.

    4. +
    5. 14.9.2:13 +Perform method resolution implementation candidate lookup for the +mutable borrow of the receiver type.

    6. +
    +

    14.9.2:14 +Method resolution implementation candidate lookup for a +receiver type proceeds as follows:

    +
      +
    1. 14.9.2:15 +Perform method resolution inherent implementation candidate lookup for +the receiver type.

    2. +
    3. 14.9.2:16 +Perform method resolution trait implementation candidate lookup for the +receiver type.

    4. +
    +

    14.9.2:17 +Method resolution inherent implementation candidate lookup for a +receiver type proceeds as follows:

    +
      +
    1. 14.9.2:18 +Construct the dereference type chain for the receiver type.

    2. +
    3. 14.9.2:19 +For each dereference type in the dereference type chain

      +
        +
      1. 14.9.2:20 +For each inherent implementation in the set of +inherent implementations of the dereference type where the +implementing type unifies with the +dereference type

        +
          +
        1. 14.9.2:21 +Try to locate a candidate method in the inherent +implementation, where the type of the self parameter +unifies with the receiver type.

        2. +
        3. 14.9.2:22 +If such a candidate method exists, then the +method call expression resolves to that candidate method and +method resolution stops.

        4. +
        +
      2. +
      +
    4. +
    +

    14.9.2:23 +Method resolution trait implementation candidate lookup for a +receiver type proceeds as follows:

    +
      +
    1. 14.9.2:24 +Construct the dereference type chain for the receiver type.

    2. +
    3. 14.9.2:25 +For each dereference type in the dereference type chain

      +
        +
      1. 14.9.2:26 +For each trait implementation of the dereference type where the +implemented trait is in scope

        +
          +
        1. 14.9.2:27 +Try to locate a candidate method in the +trait implementation, where the type of the +self parameter unifies with the receiver type.

        2. +
        3. 14.9.2:28 +If such a candidate method exists, then the +method call expression resolves to that candidate method and +method resolution stops.

        4. +
        +
      2. +
      +
    4. +
    +

    14.9.2:29 +A method call expression shall resolve to exactly one method.

    +
    +
    +

    14.9.3. Call Resolution

    +

    Legality Rules

    +

    14.9.3:1 +Call resolution is a form of resolution that applies to a +call expression.

    +

    14.9.3:2 +A candidate callee type is the type of the call operand +of a call expression under resolution.

    +

    14.9.3:3 +A candidate callee type chain is a sequence of candidate callee types. +The candidate callee type chain starts with the type of the call +operand of the:t:call expression under resolution. From then on, the +candidate callee type chain is treated as a dereference type chain.

    +

    14.9.3:4 +Call resolution of a call expression proceeds as follows:

    +
      +
    1. 14.9.3:5 +For each candidate callee type of the +candidate callee type chain

      +
        +
      1. 14.9.3:6 +If the candidate callee type is a callee type, then the callee +type of the call expression is that candidate callee type and +call resolution stops.

      2. +
      +
    2. +
    +
    +
    +

    14.9.4. Path Resolution

    +

    Legality Rules

    +

    14.9.4:1 +Path resolution is a form of resolution that applies to a path.

    +

    14.9.4:2 +Path resolution resolves a path by resolving individual +path segments in sequence, starting from the leftmost path segment.

    +

    14.9.4:3 +A path segment shall resolve to exactly one entity.

    +

    14.9.4:4 +A candidate direct entity is an entity that is visible from the +location of a path under resolution and is located by first examining +textual macro scopes, followed by examining the scope hierarchy +from the innermost scope enclosing the path to the outermost +scope, followed by examining preludes.

    +

    14.9.4:5 +A candidate external prelude entity is an entity that is visible +from the location of a path under resolution and is located by +examining the external prelude.

    +

    14.9.4:6 +A candidate selected entity is an entity that is visible from +the location of a path under resolution and is located within a +resolution context.

    +

    14.9.4:7 +A namespace context is a set of namespaces where the names +of candidate selected entities reside.

    +

    14.9.4:8 +A resolution context is a set of entities that informs +path resolution by restricting the number of +candidate selected entities.

    +

    14.9.4:9 +The resolution of the leftmost path segment of a path proceeds as +follows:

    + +

    14.9.4:27 +The resolution of the rightmost path segment is determined based on the +path resolution kind, where the name of the +candidate selected entity is restricted by the namespace context.

    +

    14.9.4:28 +It is a static error if the leftmost path segment is an identifier +introduced by the external prelude that is also shadowed.

    +
    +

    14.9.4.1. Simple Path Resolution

    +

    Legality Rules

    +

    14.9.4.1:1 +Simple path resolution is a kind of path resolution that applies to +a simple path.

    +

    14.9.4.1:2 +The namespace context of simple path resolution is determined as +follows:

    + +

    14.9.4.1:6 +The leftmost path segment of a simple path is resolved using general +path resolution. The remaining path segments are resolved in +left-to-right order, as follows:

    + +
    +
    +

    14.9.4.2. Path Expression Resolution

    +

    Legality Rules

    +

    14.9.4.2:1 +Path expression resolution is a form of path resolution that applies +to a unqualified path expression.

    +

    14.9.4.2:2 +The namespace context of path expression resolution is the +value namespace.

    +

    14.9.4.2:3 +The leftmost path segment of a unqualified path expression is resolved using +general path resolution. The remaining path segments are resolved +in left-to-right order, as follows:

    + +

    14.9.4.2:13 +Path expression resolution implementation candidate lookup for a +path segment and a trait or type proceeds as follows:

    +
      +
    1. 14.9.4.2:14 +Perform +path expression resolution inherent implementation candidate lookup for +the path segment and the trait or type.

    2. +
    3. 14.9.4.2:15 +Perform +path expression resolution trait implementation candidate lookup for +the path segment and the trait or type.

    4. +
    +

    14.9.4.2:16 +Path expression resolution inherent implementation candidate lookup for a +path segment and a trait or type proceeds as follows:

    +
      +
    1. 14.9.4.2:17 +For each inherent implementation in the set of +inherent implementations of the trait or type where the +implementing type unifies with the trait or type

      +
        +
      1. 14.9.4.2:18 +Try to locate a visible constant or a visible function in the +inherent implementation whose name matches the characters of +the path segment.

      2. +
      3. 14.9.4.2:19 +If such a constant or function exists, then the +path segment resolves to that constant or function and +path expression resolution stops.

      4. +
      +
    2. +
    +

    14.9.4.2:20 +Path expression resolution trait implementation candidate lookup for a +path segment and a trait or type proceeds as follows:

    +
      +
    1. 14.9.4.2:21 +For each trait implementation of the trait or type where the +implemented trait is in scope

      +
        +
      1. 14.9.4.2:22 +Try to locate a visible constant or a visible function in the +trait implementation whose name matches the characters of the +path segment.

      2. +
      3. 14.9.4.2:23 +If such a constant or function exists, then the +path segment resolves to that constant or function and +path expression resolution stops.

      4. +
      +
    2. +
    +
    +
    +

    14.9.4.3. Type Path Resolution

    +

    Legality Rules

    +

    14.9.4.3:1 +Type path resolution is a form of path resolution that applies to +a type path.

    +

    14.9.4.3:2 +The namespace context of type path resolution is the +type namespace.

    +

    14.9.4.3:3 +The leftmost path segment of a type path is resolved using general +path resolution. The remaining path segments are resolved in +left-to-right order, as follows:

    + +
    +
    +
    +
    + + +
    +
    +

    + Copyright © The Ferrocene Developers. + + Contents released under the MIT or Apache 2.0 license. + +

    + + +

    Built from commit: 2d7de7f91004615d8c7b4fb2416718fb7bb4f769

    + +

    Ferrocene is a registered trademark of Critical Section GmbH.

    +
    +
    +
    + + + \ No newline at end of file diff --git a/exceptions-and-errors.html b/exceptions-and-errors.html new file mode 100644 index 00000000..1b844b8b --- /dev/null +++ b/exceptions-and-errors.html @@ -0,0 +1,167 @@ + + + + + + + + + + + + 16. Exceptions and Errors — Ferrocene Language Specification + + + + + + + + + + + + + + +
    + +
    +
    + +
    +

    16. Exceptions and Errors

    +

    Legality Rules

    +

    16:1 +The Rust programming language lacks exceptions and exception handlers. Instead, +the language uses the following tiered error handling scheme:

    + +

    16:5 +Enum core::option::Option indicates whether a value is +either present using core::option::Option::Some or absent using +core::option::Option::None.

    +

    16:6 +Enum core::result::Result indicates whether a computation completed +successfully and produced a value using core::result::Result::Ok or +the computation failed with an error using core::result::Result::Err.

    +
    +

    16.1. Panic

    +

    Legality Rules

    +

    16.1:1 +A panic is an abnormal program state caused by invoking macro +core::panic.

    +

    Dynamic Semantics

    +

    16.1:2 +Invoking macro core::panic has the following runtime effects:

    +
      +
    1. 16.1:3 +Control flow halts the execution of the current thread.

    2. +
    3. 16.1:4 +Control flow of the current thread resumes execution by invoking the +function subject to attribute panic_handler.

    4. +
    +

    Examples

    +
    panic!("This was a terrible mistake!");
    +
    +
    +
    +
    +

    16.2. Abort

    +

    Legality Rules

    +

    16.2:1 +Abort is the immediate termination of a program.

    +

    Dynamic Semantics

    +

    16.2:2 +Abort has the following runtime effects:

    +
      +
    1. 16.2:3 +Control flow halts the execution of all threads.

    2. +
    3. 16.2:4 +The program terminates.

    4. +
    +
    +
    + + +
    +
    +

    + Copyright © The Ferrocene Developers. + + Contents released under the MIT or Apache 2.0 license. + +

    + + +

    Built from commit: 2d7de7f91004615d8c7b4fb2416718fb7bb4f769

    + +

    Ferrocene is a registered trademark of Critical Section GmbH.

    +
    +
    +
    + + + \ No newline at end of file diff --git a/expressions.html b/expressions.html new file mode 100644 index 00000000..962076d8 --- /dev/null +++ b/expressions.html @@ -0,0 +1,4047 @@ + + + + + + + + + + + + 6. Expressions — Ferrocene Language Specification + + + + + + + + + + + + + + +
    + +
    +
    + +
    +

    6. Expressions

    +

    Syntax

    +
    Expression ::=
    +    ExpressionWithBlock
    +  | ExpressionWithoutBlock
    +
    +ExpressionWithBlock ::=
    +    OuterAttributeOrDoc* (
    +        AsyncBlockExpression
    +      | BlockExpression
    +      | IfExpression
    +      | IfLetExpression
    +      | LoopExpression
    +      | MatchExpression
    +      | UnsafeBlockExpression
    +      | NamedBlockExpression
    +    )
    +
    +ExpressionWithoutBlock ::=
    +    OuterAttributeOrDoc* (
    +        ArrayExpression
    +      | AwaitExpression
    +      | BreakExpression
    +      | CallExpression
    +      | ClosureExpression
    +      | ContinueExpression
    +      | FieldAccessExpression
    +      | IndexExpression
    +      | LiteralExpression
    +      | MethodCallExpression
    +      | MacroInvocation
    +      | OperatorExpression
    +      | ParenthesizedExpression
    +      | PathExpression
    +      | RangeExpression
    +      | ReturnExpression
    +      | StructExpression
    +      | TupleExpression
    +      | UnderscoreExpression
    +    )
    +
    +ExpressionList ::=
    +    Expression (, Expression)* ,?
    +
    +Operand ::=
    +    Expression
    +
    +LeftOperand ::=
    +    Operand
    +
    +RightOperand ::=
    +    Operand
    +

    6:1 +A SubjectExpression is any expression in category Expression, except +StructExpression.

    +

    6:2 +A SubjectLetExpression is any expression in category +SubjectExpression, except LazyBooleanExpression.

    +

    Legality Rules

    +

    6:3 +An expression is a construct that produces a value, and may have +side effects at run-time.

    +

    6:4 +An expression-with-block is an expression whose structure involves a +block expression.

    +

    6:5 +An expression-without-block is an expression whose structure does not +involve a block expression.

    +

    6:6 +An operand is an expression nested within an expression.

    +

    6:7 +A left operand is an operand that appears on the left-hand side of a +binary operator.

    +

    6:8 +A right operand is an operand that appears on the right-hand side of a +binary operator.

    +

    6:9 +A subject expression is an expression that controls for loops, +if expressions, and match expressions.

    +

    6:10 +A subject let expression is an expression that controls +if let expressions and while let loops.

    +

    Dynamic Semantics

    +

    6:11 +Evaluation is the process by which an expression achieves its runtime +effects.

    +
    +

    6.1. Expression Classification

    +
    +

    6.1.1. Assignee Expressions

    +

    Legality Rules

    +

    6.1.1:1 +An assignee expression is an expression that appears as the +left operand of an assignment expression. The following +expressions are assignee expressions:

    + +

    6.1.1:8 +Parenthesized expressions are allowed to appear anywhere in +assignee expressions.

    +
    +
    +

    6.1.2. Constant Expressions

    +

    Legality Rules

    +

    6.1.2:1 +A constant expression is an expression that can be evaluated +statically. The following constructs are constant expressions as +long as their operands are also constant expressions and do not +involve types that require destruction:

    + +

    6.1.2:36 +An expression is not considered a constant expression when it +explicitly invokes an associated trait function or uses +arithmetic operators of non-builtin types that invoke +core::ops traits.

    +

    6.1.2:37 +An arithmetic expression that operates with floating-point values is +not considered a constant expression when it appears inside the +function body of a constant function.

    +

    6.1.2:38 +It is a static error if the size operand of an +array repetition constructor or an array type depends on +generic parameters.

    +

    6.1.2:39 +A constant context is a construct that requires a +constant expression. The following constructs are +constant contexts:

    + +

    6.1.2:47 +It is a static error to create a mutable reference in a +constant context.

    +

    6.1.2:48 +An invocation of the core::ptr::addr_of macro expands to a +constant expression allowed in any constant context and +constant function, subject to the same restrictions as a +immutable borrow expression.

    +

    6.1.2:49 +An invocation of the core::panic macro expands to a +constant expression allowed in any constant context and +constant function, as long as the macro is either invoked without +arguments, or with a single string literal that does not +capture formatting arguments.

    +

    6.1.2:50 +A constant expression is evaluated statically whenever its value is +needed.

    +

    6.1.2:51 +The evaluation of a constant expression that results in +arithmetic overflow panics.

    +

    6.1.2:52 +It is a static error if a constant expression either panics or +control reaches the invocation of macro core::panic.

    +

    Dynamic Semantics

    +

    6.1.2:53 +The invocation of a constant function follows the dynamic semantics of a +non-constant function invocation.

    +
    +
    +

    6.1.3. Diverging Expressions

    +

    Legality Rules

    +

    6.1.3:1 +A diverging expression is an expression whose evaluation causes +program flow to diverge from the normal evaluation order.

    +

    6.1.3:2 +Diverging expressions are:

    + +
    +
    +

    6.1.4. Place Expressions

    +

    Legality Rules

    +

    6.1.4:1 +A place expression is an expression that represents a memory +location. The following expressions are place expressions:

    + +

    6.1.4:8 +A mutable place expression is a place expression whose memory +location can be modified. The following place expressions are +mutable place expressions:

    + +

    6.1.4:18 +An immutable place expression is a place expression whose memory +location cannot be modified. All place expressions that are not +mutable place expressions are immutable place expressions.

    +

    6.1.4:19 +A place expression context is a construct that may evaluate its +operand as a memory location.

    +

    6.1.4:20 +The following constructs are place expression contexts:

    + +

    6.1.4:31 +A mutable place expression context is a place expression context that +may evaluate its operand as a mutable memory location. The following +constructs are mutable place expression contexts:

    + +

    6.1.4:41 +A place expression that is evaluated in a value expression context +or bound by value in a pattern denotes the value held in the +memory location of the place expression. Such an evaluation is subject to +passing conventions.

    +
    +
    +

    6.1.5. Value Expressions

    +

    Legality Rules

    +

    6.1.5:1 +A value expression is an expression that represents a value. +All expressions that are not place expressions are +value expressions.

    +

    6.1.5:2 +A value expression context is an expression context that is not a +place expression context.

    +

    6.1.5:3 +The evaluation of a value expression in a place expression context +shall evaluate the value expression as a temporary and then use the +temporary in the place expression context.

    +
    +
    +
    +

    6.2. Literal Expressions

    +

    Syntax

    +
    LiteralExpression ::=
    +    Literal
    +

    Legality Rules

    +

    6.2:1 +A literal expression is an expression that denotes a literal.

    +

    6.2:2 +The type of a literal expression is the type of the corresponding +literal.

    +

    6.2:3 +The value of a literal expression is the value of the +corresponding literal.

    +

    Dynamic Semantics

    +

    6.2:4 +The evaluation of a literal expression has no effect.

    +

    Examples

    +
    5
    +'a'
    +"hello"
    +
    +
    +
    +
    +

    6.3. Path Expressions

    +

    Syntax

    +
    PathExpression ::=
    +    UnqualifiedPathExpression
    +  | QualifiedPathExpression
    +

    Legality Rules

    +

    6.3:1 +A path expression is an expression that denotes a path.

    +

    6.3:2 +A path expression shall resolve to either a constant parameter, a +constant, a function, a static, a tuple enum variant, a +tuple struct, a unit enum variant, a unit struct, or a +variable.

    +

    6.3:3 +A path expression that resolves to a mutable static shall require +unsafe context.

    +

    6.3:4 +The type of a path expression is the type of the entity that +it resolved to.

    +

    6.3:5 +The value of a path expression is the entity that it resolved to.

    +

    Examples

    +
    globals::STATIC_VARIABLE
    +Vec::<i32>::push
    +
    +
    +
    +
    +

    6.4. Block Expressions

    +

    Syntax

    +
    BlockExpression ::=
    +    {
    +      InnerAttributeOrDoc*
    +      StatementList
    +    }
    +
    +StatementList ::=
    +    Statement* Expression?
    +

    Legality Rules

    +

    6.4:1 +A block expression is an expression that sequences expressions +and statements.

    +

    6.4:2 +A tail expression is the last expression within a block +expression.

    +

    6.4:3 +When the remaining lexical elements of a StatementList match either +an Expression or Statement they are interpreted as an Expression.

    +

    6.4:4 +The type of a block expression is determined as follows:

    + +

    6.4:9 +The value of a block expression is determined as follows:

    + +

    Dynamic Semantics

    +

    6.4:13 +The evaluation of a block expression proceeds as follows:

    +
      +
    1. 6.4:14 +Each statement is executed in declarative order.

    2. +
    3. 6.4:15 +The tail expression is evaluated.

    4. +
    +

    Examples

    +
    {
    +    fn_call();
    +    42
    +}
    +
    +
    +
    +

    6.4.1. Async Blocks

    +

    Syntax

    +
    AsyncBlockExpression ::=
    +    async move? BlockExpression
    +

    Legality Rules

    +

    6.4.1:1 +An async block expression is a block expression that is specified +with keyword async and encapsulates behavior which is executed in +an asynchronous manner.

    +

    6.4.1:2 +An async block expression denotes a new async control flow boundary.

    +

    6.4.1:3 +An async block expression is subject to capturing.

    +

    6.4.1:4 +The type of an async block expression is a unique anonymous type +that implement the core::future::Future trait.

    +

    6.4.1:5 +The value of an async block expression is a value of the +async block expression‘s type.

    +

    Dynamic Semantics

    +

    6.4.1:6 +The evaluation of an async block expression produces a value of +the type of the async block expression that captures +the capture targets of the async block expression.

    +

    Examples

    +
    async {
    +    42
    +}
    +
    +
    +
    +
    +

    6.4.2. Named Blocks

    +

    Syntax

    +
    NamedBlockExpression ::=
    +    Label BlockExpression
    +

    Legality Rules

    +

    6.4.2:1 +A named block expression is a block expression with a label.

    +

    6.4.2:2 +The type of the named block expression is the type of its +block expression.

    +

    6.4.2:3 +The value of the named block expression is the value of its +block expression.

    +

    Examples

    +
    'block: {
    +    break 'block 1;
    +    3
    +}
    +
    +
    +
    +
    +

    6.4.3. Unsafe Blocks

    +

    Syntax

    +
    UnsafeBlockExpression ::=
    +    unsafe BlockExpression
    +

    Legality Rules

    +

    6.4.3:1 +An unsafe block expression is a block expression that is specified +with keyword unsafe.

    +

    6.4.3:2 +An unsafe block expression allows unsafety.

    +

    6.4.3:3 +The type of the unsafe block expression is the type of its +block expression.

    +

    6.4.3:4 +The value of the unsafe block expression is the value of its +block expression.

    +

    Dynamic Semantics

    +

    6.4.3:5 +The evaluation of an unsafe block expression evaluates its +block expression.

    +

    Examples

    +
    unsafe {
    +    unsafe_fn_call()
    +}
    +
    +
    +
    +
    +
    +

    6.5. Operator Expressions

    +

    Syntax

    +
    OperatorExpression ::=
    +    ArithmeticExpression
    +  | AssignmentExpression
    +  | BitExpression
    +  | BorrowExpression
    +  | ComparisonExpression
    +  | CompoundAssignmentExpression
    +  | DereferenceExpression
    +  | ErrorPropagationExpression
    +  | LazyBooleanExpression
    +  | NegationExpression
    +  | TypeCastExpression
    +

    Legality Rules

    +

    6.5:1 +An operator expression is an expression that involves an operator.

    +
    +

    6.5.1. Borrow Expression

    +

    Syntax

    +
    BorrowExpression ::=
    +    & mut? Operand
    +

    Legality Rules

    +

    6.5.1:1 +A borrow expression is an expression that borrows the value of +its operand and creates a reference to the memory location of its +operand.

    +

    6.5.1:2 +An immutable borrow expression is a borrow expression that lacks +keyword mut.

    +

    6.5.1:3 +A mutable borrow expression is a borrow expression that has +keyword mut.

    +

    6.5.1:4 +When the operand of a borrow expression is a place expression, +the borrow expression produces a reference to the memory location +indicated by the operand. The memory location is placed in a borrowed +state, or simply borrowed.

    +

    6.5.1:5 +The type of a borrow expression is determined as follows:

    + +

    6.5.1:8 +The value of a borrow expression is the address of its operand.

    +

    6.5.1:9 +It is a static error if a borrow expression would create an unaligned +reference to a field in an abstract data type subject to +attribute repr.

    +

    Dynamic Semantics

    +

    6.5.1:10 +The evaluation of a borrow expression evaluates its operand.

    +

    Examples

    +
    let mut answer = 42;
    +
    +
    +

    6.5.1:11 +Mutable borrow.

    +
    let ref_answer = &mut answer;
    +
    +
    +

    6.5.2. Dereference Expression

    +

    Syntax

    +
    DereferenceExpression ::=
    +    * Operand
    +

    Legality Rules

    +

    6.5.2:1 +A dereference expression is an expression that obtains the pointed-to +memory location of its operand.

    +

    6.5.2:2 +When the operand of a dereference expression is of a pointer +type, the dereference expression denotes the pointed-to memory location of +the operand, or the dereference of the operand.

    +

    6.5.2:3 +The dereference is assignable when the dereference expression is a +mutable place expression.

    +

    6.5.2:4 +Dereferencing a raw pointer shall require unsafe context.

    +

    6.5.2:5 +If the context of a dereference expression is an +immutable place expression context, then the dereference expression +is equivalent to expression *core::ops::Deref::deref(&operand).

    +

    6.5.2:6 +If the context of a dereference expression is a +mutable place expression context, then the dereference expression +is equivalent to expression +*core::ops::DerefMut::deref_mut(&mut operand).

    +

    6.5.2:7 +The type of a dereference expression is determined as follows:

    + +

    6.5.2:10 +The value of a dereference expression is determined as follows:

    +
      +
    • 6.5.2:11 +If the type of the operand is &mut T, &T, *mut T, or +*const T, then the value is the pointed-to value.

    • +
    • 6.5.2:12 +Otherwise the value is the result of evaluating expression +*core::ops::Deref::deref(&operand) or expression +*core::ops::DerefMut::deref_mut(&mut operand) respectively.

    • +
    +

    Dynamic Semantics

    +

    6.5.2:13 +The evaluation of a dereference expression evaluates its operand.

    +

    Undefined Behavior

    +

    6.5.2:14 +It is undefined behavior to dereference a raw pointer that is either +dangling or unaligned.

    +

    Examples

    +

    6.5.2:15 +See Paragraph 6.4.1. for the declaration of ref_answer.

    +
    let deref_asnwer = *ref_answer;
    +
    +
    +
    +
    +

    6.5.3. Error Propagation Expression

    +

    Syntax

    +
    ErrorPropagationExpression ::=
    +    Operand ?
    +

    Legality Rules

    +

    6.5.3:1 +An error propagation expression is an expression that either evaluates +to a value of its operand or returns a value to the enclosing control +flow boundary.

    +

    6.5.3:2 +An error propagation expression shall appear within a control flow +boundary.

    +

    6.5.3:3 +The type of an error propagation expression is associated type +core::ops::Try::Output.

    +

    6.5.3:4 +The value of an error propagation expression is determined as follows:

    + +

    Dynamic Semantics

    +

    6.5.3:7 +The evaluation of an error propagation expression of the form

    +
    expression?
    +
    +
    +

    6.5.3:8 +is equivalent to the evaluation the following expression:

    +
    match core::ops::Try::branch(expression) {
    +    core::ops::ControlFlow::Continue(value) =>
    +        value,
    +
    +    core::ops::ControlFlow::Break(value) =>
    +        core::ops::FromResidual::from_residual(value),
    +}
    +
    +
    +

    Examples

    +
    fn try_to_parse() -> Result<i32, ParseIntError> {
    +    "42".parse()?
    +}
    +
    +fn try_some() -> Option<i32> {
    +    let val = Some(42)?;
    +    Some(val)
    +}
    +
    +
    +
    +
    +

    6.5.4. Negation Expression

    +

    Syntax

    +
    NegationExpression ::=
    +    NegationOperator Operand
    +
    +NegationOperator ::=
    +    BitwiseNegationOperator
    +  | SignNegationOperator
    +
    +BitwiseNegationOperator ::=
    +    !
    +
    +SignNegationOperator ::=
    +    -
    +

    Legality Rules

    +

    6.5.4:1 +A negation expression is an expression that negates its operand.

    +

    6.5.4:2 +The type of the operand of a negation expression with a +BitwiseNegationOperator shall implement the core::ops::Not +trait.

    +

    6.5.4:3 +The type of a negation expression with a BitwiseNegationOperator +is associated type core::ops::Not::Output.

    +

    6.5.4:4 +The value of a negation expression with a BitwiseNegationOperator +is the result of core::ops::Not::not(operand).

    +

    6.5.4:5 +The type of the operand of a negation expression with a +SignNegationOperator shall implement the core::ops::Neg trait.

    +

    6.5.4:6 +The type of a negation expression with a SignNegationOperator +shall be associated type core::ops::Neg::Output.

    +

    6.5.4:7 +The value of a negation expression with a SignNegationOperator is +the result of core::ops::Neg::neg(operand).

    +

    Dynamic Semantics

    +

    6.5.4:8 +The evaluation of a negation expression with a +BitwiseNegationOperator proceeds as follows:

    +
      +
    1. 6.5.4:9 +The operand is evaluated.

    2. +
    3. 6.5.4:10 +If the type of the operand is an integer type, then the +negation expression evaluates to the bitwise negation of the +operand.

    4. +
    5. 6.5.4:11 +If the type of the operand is bool, then the result is computed as +follows, depending on the value of the operand:

    6. +
    +
    +
    + + + + + + + + + + + + + + +

    6.5.4:12

    Operand

    Result

    6.5.4:13

    true

    false

    6.5.4:14

    false

    true

    +
    +
      +
    1. 6.5.4:15 +If the type of operand is neither an integer type nor +bool, then core::ops::Not::not(operand) is invoked.

    2. +
    +

    6.5.4:16 +The evaluation of a negation expression with a +SignNegationOperator proceeds as follows:

    +
      +
    1. 6.5.4:17 +The operand is evaluated.

    2. +
    3. 6.5.4:18 +If the type of the operand is an integer type, then the +negation expression evaluates to the value of the operand, +with its sign inverted. If the result of the negation expression does +not fit within the range of the operand type, then +arithmetic overflow occurs.

    4. +
    5. 6.5.4:19 +If the type of the operand is a floating-point type, then the +negation expression evaluates to the value of the operand, +with its sign inverted. No arithmetic overflow is possible.

    6. +
    7. 6.5.4:20 +If the type of the operand is neither an integer type nor a +floating-point type, then core::ops::Neg::neg(operand) is invoked.

    8. +
    +

    Examples

    +

    6.5.4:21 +Sign negation.

    +
    -42
    +
    +
    +

    6.5.4:22 +Bitwise negation.

    +
    !42
    +
    +
    +

    6.5.4:23 +Logical negation.

    +
    !false
    +
    +
    +
    +
    +

    6.5.5. Arithmetic Expressions

    +

    Syntax

    +
    ArithmeticExpression ::=
    +    AdditionExpression
    +  | DivisionExpression
    +  | MultiplicationExpression
    +  | RemainderExpression
    +  | SubtractionExpression
    +
    +AdditionExpression ::=
    +    LeftOperand + RightOperand
    +
    +DivisionExpression ::=
    +    LeftOperand / RightOperand
    +
    +MultiplicationExpression ::=
    +    LeftOperand * RightOperand
    +
    +RemainderExpression ::=
    +    LeftOperand % RightOperand
    +
    +SubtractionExpression ::=
    +    LeftOperand - RightOperand
    +

    Legality Rules

    +

    6.5.5:1 +An arithmetic expression is an expression that computes a value +from two operands using arithmetic.

    +

    6.5.5:2 +An addition expression is an arithmetic expression that uses addition.

    +

    6.5.5:3 +The type of the left operand of an addition expression shall +implement the core::ops::Add trait with the type of the +right operand as the trait implementation type parameter.

    +

    6.5.5:4 +The type of an addition expression is associated type +core::ops::Add::Output.

    +

    6.5.5:5 +The value of an addition expression is the result of +core::ops::Add::add(left_operand, right_operand).

    +

    6.5.5:6 +A division expression is an arithmetic expression that uses division.

    +

    6.5.5:7 +The type of the left operand of a division expression shall +implement the core::ops::Div trait where the type of the +right operand is the trait implementation type parameter.

    +

    6.5.5:8 +The type of a division expression is associated type +core::ops::Div::Output.

    +

    6.5.5:9 +The value of a division expression is the result of +core::ops::Div::div(left_operand, right_operand).

    +

    6.5.5:10 +A multiplication expression is an arithmetic expression that uses +multiplication.

    +

    6.5.5:11 +The type of the left operand of a multiplication expression +shall implement the core::ops::Mul trait where the type of the +right operand is the trait implementation type parameter.

    +

    6.5.5:12 +The type of a multiplication expression is associated type +core::ops::Mul::Output.

    +

    6.5.5:13 +The value of a multiplication expression is the result of +core::ops::Mul::mul(left_operand, right_operand).

    +

    6.5.5:14 +A remainder expression is an arithmetic expression that uses remainder +division.

    +

    6.5.5:15 +The type of the left operand of a remainder expression shall +implement the core::ops::Rem trait where the type of the +right operand is the trait implementation type parameter.

    +

    6.5.5:16 +The type of a remainder expression is associated type +core::ops::Rem::Output.

    +

    6.5.5:17 +The value of a remainder expression is the result of +core::ops::Rem::rem(left_operand, right_operand).

    +

    6.5.5:18 +A subtraction expression is an arithmetic expression that uses +subtraction.

    +

    6.5.5:19 +The type of the left operand of a subtraction expression shall +implement the core::ops::Sub trait where the type of the +right operand is the trait implementation type parameter.

    +

    6.5.5:20 +The type of a subtraction expression is associated type +core::ops::Sub::Output.

    +

    6.5.5:21 +The value of a subtraction expression is the result of +core::ops::Sub::sub(left_operand, right_operand).

    +

    Dynamic Semantics

    +

    6.5.5:22 +The evaluation of an addition expression proceeds as follows:

    +
      +
    1. 6.5.5:23 +The left operand is evaluated.

    2. +
    3. 6.5.5:24 +The right operand is evaluated.

    4. +
    5. 6.5.5:25 +If the type of both operands is the same integer type or +floating-point type, then the addition expression evaluates to the +sum of the operands, following the rules of unsigned integer addition +for unsigned integer types, two’s complement addition for +signed integer types, or floating-point addition for +floating-point types. If unsigned integer addition or two’s +complement addition is performed, then the operation may result in an +arithmetic overflow.

    6. +
    7. 6.5.5:26 +Otherwise, core::ops::Add::add(left_operand, right_operand) is invoked.

    8. +
    +

    6.5.5:27 +The evaluation of a division expression proceeds as follows:

    +
      +
    1. 6.5.5:28 +The left operand is evaluated.

    2. +
    3. 6.5.5:29 +The right operand is evaluated.

    4. +
    5. 6.5.5:30 +If the type of both operands is the same integer type or +floating-point type, then the division expression evaluates to the +quotient of the operands, following the rules of unsigned integer +division for unsigned integer types, two’s complement division for +signed integer types, or floating-point division for +floating-point types.

      +
        +
      1. 6.5.5:31 +If unsigned integer division is performed and the right operand is +0, then the operation results in a panic.

      2. +
      3. 6.5.5:32 +If two’s complement division is performed and the right operand is 0 +or the result does not fit in the target type, then the operation results +in a panic.

      4. +
      +
    6. +
    7. 6.5.5:33 +Otherwise, core::ops::Div::div(left_operand, right_operand) is invoked.

    8. +
    +

    6.5.5:34 +The evaluation of a multiplication expression proceeds as follows:

    +
      +
    1. 6.5.5:35 +The left operand is evaluated.

    2. +
    3. 6.5.5:36 +The right operand is evaluated.

    4. +
    5. 6.5.5:37 +If the type of both operands is the same integer type or +floating-point type, then the multiplication expression evaluates +to the product of the operands, following the rules of unsigned +integer multiplication for unsigned integer types, two’s complement +multiplication for signed integer types, or floating-point +multiplication for floating-point types. If unsigned integer +multiplication or two’s complement multiplication is performed, then the +operation may result in an arithmetic overflow.

    6. +
    7. 6.5.5:38 +Otherwise, core::ops::Mul::mul(left_operand, right_operand) is invoked.

    8. +
    +

    6.5.5:39 +The evaluation of a remainder expression proceeds as follows:

    +
      +
    1. 6.5.5:40 +The left operand is evaluated.

    2. +
    3. 6.5.5:41 +The right operand is evaluated.

    4. +
    5. 6.5.5:42 +If the type of both operands is the same integer type or +floating-point type, then the remainder expression evaluates to +the remainder of the division of the left operand by the +right operand, following the rules of unsigned integer division for +unsigned integer types, two’s complement division for +signed integer types, or floating-point division for +floating-point types.

      +
        +
      1. 6.5.5:43 +If unsigned integer division is performed and the right operand is +0, then the operation results in a panic.

      2. +
      3. 6.5.5:44 +If two’s complement division is performed and the right operand is 0 +or the resulting remainder does not fit in the target type, then the +operation results in a panic.

      4. +
      +
    6. +
    7. 6.5.5:45 +Otherwise, core::ops::Rem::rem(left_operand, right_operand) is invoked.

    8. +
    +

    6.5.5:46 +The evaluation of a subtraction expression proceeds as follows:

    +
      +
    1. 6.5.5:47 +The left operand is evaluated.

    2. +
    3. 6.5.5:48 +The right operand is evaluated.

    4. +
    5. 6.5.5:49 +If the type of both operands is the same integer type or +floating-point type, then the subtraction expression evaluates to +the difference of the operands, following the rules of unsigned +integer subtraction for unsigned integer types, two’s complement +subtraction for signed integer types, or floating-point subtraction +for floating-point types. If unsigned integer subtraction or two’s +complement subtraction is performed, then the operation may result in an +arithmetic overflow.

    6. +
    7. 6.5.5:50 +Otherwise, core::ops::Sub::sub(left_operand, right_operand) is invoked.

    8. +
    +

    Examples

    +
    1 + 2
    +4.0 / 3.29
    +8.4 * 5.3
    +10 % 4
    +3 - 2
    +
    +
    +
    +
    +

    6.5.6. Bit Expressions

    +

    Syntax

    +
    BitExpression ::=
    +    BitAndExpression
    +  | BitOrExpression
    +  | BitXOrExpression
    +  | ShiftLeftExpression
    +  | ShiftRightExpression
    +
    +BitAndExpression ::=
    +    LeftOperand & RightOperand
    +
    +BitOrExpression ::=
    +    LeftOperand | RightOperand
    +
    +BitXorExpression ::=
    +    LeftOperand ^ RightOperand
    +
    +ShiftLeftExpression ::=
    +    LeftOperand << RightOperand
    +
    +ShiftRightExpression ::=
    +    LeftOperand >> RightOperand
    +

    Legality Rules

    +

    6.5.6:1 +A bit expression is an expression that computes a value from two +operands using bit arithmetic.

    +

    6.5.6:2 +A bit and expression is a bit expression that uses bit and arithmetic.

    +

    6.5.6:3 +The type of the left operand of a bit and expression shall +implement the core::ops::BitAnd trait where the type of the +right operand is the trait implementation type parameter.

    +

    6.5.6:4 +The type of a bit and expression is associated type +core::ops::BitAnd::Output.

    +

    6.5.6:5 +The value of a bit and expression is the result of +core::ops::BitAnd::bitand(left_operand, right_operand).

    +

    6.5.6:6 +A bit or expression is a bit expression that uses bit or arithmetic.

    +

    6.5.6:7 +The type of the left operand of a bit or expression shall +implement the core::ops::BitOr trait where the type of the +right operand is the trait implementation type parameter.

    +

    6.5.6:8 +The type of a bit or expression is associated type +core::ops::BitOr::Output.

    +

    6.5.6:9 +The value of a bit or expression is the result of +core::ops::BitOr::bitor(left_operand, right_operand).

    +

    6.5.6:10 +A bit xor expression is a bit expression that uses bit exclusive or +arithmetic.

    +

    6.5.6:11 +The type of the left operand of a bit xor expression shall +implement the core::ops::BitXor trait where the type of the +right operand is the trait implementation type parameter.

    +

    6.5.6:12 +The type of a bit xor expression is associated type +core::ops::BitXor::Output.

    +

    6.5.6:13 +The value of a bit xor expression is the result of +core::ops::BitXor::bitxor(left_operand, right_operand).

    +

    6.5.6:14 +A shift left expression is a bit expression that uses bit shift left +arithmetic.

    +

    6.5.6:15 +The type of the left operand of a shift left expression shall +implement the core::ops::Shl trait where the type of the +right operand is the trait implementation type parameter.

    +

    6.5.6:16 +The type of a shift left expression is associated type +core::ops::Shl::Output.

    +

    6.5.6:17 +The value of a shift left expression is the result of +core::ops::Shl::shl(left_operand, right_operand).

    +

    6.5.6:18 +A shift right expression is a bit expression that uses bit shift right +arithmetic.

    +

    6.5.6:19 +The type of the left operand of a shift right expression shall +implement the core::ops::Shr trait where the type of the +right operand is the trait implementation type parameter.

    +

    6.5.6:20 +The type of a shift right expression is associated type +core::ops::Shr::Output.

    +

    6.5.6:21 +The value of a shift right expression is the result of +core::ops::Shr::shr(left_operand, right_operand).

    +

    Dynamic Semantics

    +

    6.5.6:22 +The evaluation of a bit and expression proceeds as follows:

    +
      +
    1. 6.5.6:23 +The left operand is evaluated.

    2. +
    3. 6.5.6:24 +The right operand is evaluated.

    4. +
    5. 6.5.6:25 +core::ops::BitAnd::bitand(left_operand, right_operand) is invoked.

    6. +
    +

    6.5.6:26 +The evaluation of a bit or expression proceeds as follows:

    +
      +
    1. 6.5.6:27 +The left operand is evaluated.

    2. +
    3. 6.5.6:28 +The right operand is evaluated.

    4. +
    5. 6.5.6:29 +core::ops::BitOr::bitor(left_operand, right_operand) is invoked.

    6. +
    +

    6.5.6:30 +The evaluation of a bit xor expression proceeds as follows:

    +
      +
    1. 6.5.6:31 +The left operand is evaluated.

    2. +
    3. 6.5.6:32 +The right operand is evaluated.

    4. +
    5. 6.5.6:33 +core::ops::BitXor::bitxor(left_operand, right_operand) is invoked.

    6. +
    +

    6.5.6:34 +The evaluation of a shift left expression proceeds as follows:

    +
      +
    1. 6.5.6:35 +The left operand is evaluated.

    2. +
    3. 6.5.6:36 +The right operand is evaluated.

    4. +
    5. 6.5.6:37 +core::ops::Shl::shl(left_operand, right_operand) is invoked.

    6. +
    +

    6.5.6:38 +The evaluation of a shift right expression proceeds as follows:

    +
      +
    1. 6.5.6:39 +The left operand is evaluated.

    2. +
    3. 6.5.6:40 +The right operand is evaluated.

    4. +
    5. 6.5.6:41 +core::ops::Shr::shr(left_operand, right_operand) is invoked.

    6. +
    +

    Examples

    +
    0b1010 & 0b1100
    +0b1010 | 0b0011
    +0b1010 ^ 0b1001
    +13 << 3
    +-10 >> 2
    +
    +
    +
    +
    +

    6.5.7. Comparison Expressions

    +

    Syntax

    +
    ComparisonExpression ::=
    +    EqualsExpression
    +  | GreaterThanExpression
    +  | GreaterThanOrEqualsExpression
    +  | LessThanExpression
    +  | LessThanOrEqualsExpression
    +  | NotEqualsExpression
    +
    +EqualsExpression ::=
    +    LeftOperand == RightOperand
    +
    +GreaterThanExpression ::=
    +    LeftOperand > RightOperand
    +
    +GreaterThanOrEqualsExpression ::=
    +    LeftOperand >= RightOperand
    +
    +LessThanExpression ::=
    +    LeftOperand < RightOperand
    +
    +LessThanOrEqualsExpression ::=
    +    LeftOperand <= RightOperand
    +
    +NotEqualsExpression ::=
    +    LeftOperand != RightOperand
    +

    Legality Rules

    +

    6.5.7:1 +A comparison expression is an expression that compares the +values of two operands.

    +

    6.5.7:2 +A comparison expression implicitly takes shared borrows of its +operands.

    +

    6.5.7:3 +The type of a comparison expression is type bool.

    +

    6.5.7:4 +An equals expression is a comparison expression that tests equality.

    +

    6.5.7:5 +The type of the left operand of an equals expression shall +implement the core::cmp::PartialEq trait where the type of the +right operand is the trait implementation type parameter.

    +

    6.5.7:6 +The value of an equals expression is the result of +core::cmp::PartialEq::eq(&left_operand, &right_operand).

    +

    6.5.7:7 +A greater-than expression is a comparison expression that tests for a +greater-than relationship.

    +

    6.5.7:8 +The type of the left operand of a greater-than expression shall +implement the core::cmp::PartialOrd trait where the type of the +right operand is the trait implementation type parameter.

    +

    6.5.7:9 +The value of a greater-than expression is the result of +core::cmp::PartialOrd::gt(&left_operand, &right_operand).

    +

    6.5.7:10 +A greater-than-or-equals expression is a comparison expression that +tests for a greater-than-or-equals relationship.

    +

    6.5.7:11 +The type of the left operand of a +greater-than-or-equals expression shall implement the +core::cmp::PartialOrd trait where the type of the +right operand is the trait implementation type parameter.

    +

    6.5.7:12 +The value of a greater-than-or-equals expression is the result of +core::cmp::PartialOrd::ge(&left_operand, &right_operand).

    +

    6.5.7:13 +A less-than expression is a comparison expression that tests for a +less-than relationship.

    +

    6.5.7:14 +The type of the left operand of a less-than expression shall +implement the core::cmp::PartialOrd trait where the type of +the right operand is the trait implementation type parameter.

    +

    6.5.7:15 +The value of a less-than expression is the result of +core::cmp::PartialOrd::lt(&left_operand, &right_operand).

    +

    6.5.7:16 +A less-than-or-equals expression is a comparison expression that tests +for a less-than-or-equals relationship.

    +

    6.5.7:17 +The type of the left operand of a less-than-or-equals expression +shall implement the core::cmp::PartialOrd trait where the type +of the right operand is the trait implementation type parameter.

    +

    6.5.7:18 +The value of a less-than-or-equals expression is the result of +core::cmp::PartialOrd::le(&left_operand, &right_operand).

    +

    6.5.7:19 +A not-equals expression is a comparison expression that tests for +inequality.

    +

    6.5.7:20 +The type of the left operand of a not-equals expression shall +implement the core::cmp::PartialEq trait where the type of the +right operand is the trait implementation type parameter.

    +

    6.5.7:21 +The value of a not-equals expression is the result of +core::cmp::PartialEq::ne(&left_operand, &right_operand).

    +

    Dynamic Semantics

    +

    6.5.7:22 +The evaluation of an equals expression proceeds as follows:

    +
      +
    1. 6.5.7:23 +The left operand is evaluated.

    2. +
    3. 6.5.7:24 +The right operand is evaluated.

    4. +
    5. 6.5.7:25 +core::cmp::PartialEq::eq(&left_operand, &right_operand) is invoked.

    6. +
    +

    6.5.7:26 +The evaluation of a greater-than expression proceeds as follows:

    +
      +
    1. 6.5.7:27 +The left operand is evaluated.

    2. +
    3. 6.5.7:28 +The right operand is evaluated.

    4. +
    5. 6.5.7:29 +core::cmp::PartialOrd::gt(&left_operand, &right_operand) is invoked.

    6. +
    +

    6.5.7:30 +The evaluation of a greater-than-or-equals expression proceeds as +follows:

    +
      +
    1. 6.5.7:31 +The left operand is evaluated.

    2. +
    3. 6.5.7:32 +The right operand is evaluated.

    4. +
    5. 6.5.7:33 +core::cmp::PartialOrd::ge(&left_operand, &right_operand) is invoked.

    6. +
    +

    6.5.7:34 +The evaluation of a less-than expression proceeds as follows:

    +
      +
    1. 6.5.7:35 +The left operand is evaluated.

    2. +
    3. 6.5.7:36 +The right operand is evaluated.

    4. +
    5. 6.5.7:37 +core::cmp::PartialOrd::lt(&left_operand, &right_operand) is invoked.

    6. +
    +

    6.5.7:38 +The evaluation of a less-than-or-equals expression proceeds as +follows:

    +
      +
    1. 6.5.7:39 +The left operand is evaluated.

    2. +
    3. 6.5.7:40 +The right operand is evaluated.

    4. +
    5. 6.5.7:41 +core::cmp::PartialOrd::le(&left_operand, &right_operand) is invoked.

    6. +
    +

    6.5.7:42 +The evaluation of a not-equals expression proceeds as follows:

    +
      +
    1. 6.5.7:43 +The left operand is evaluated.

    2. +
    3. 6.5.7:44 +The right operand is evaluated.

    4. +
    5. 6.5.7:45 +core::cmp::PartialEq::ne(&left_operand, &right_operand) is invoked.

    6. +
    +

    Examples

    +
    12 == 12
    +42 > 12
    +42 >= 35
    +42 < 109
    +42 <= 42
    +12 != 42
    +
    +
    +
    +
    +

    6.5.8. Lazy Boolean Expressions

    +

    Syntax

    +
    LazyBooleanExpression ::=
    +    LazyAndExpression
    +  | LazyOrExpression
    +
    +LazyAndExpression ::=
    +    LeftOperand && RightOperand
    +
    +LazyOrExpression ::=
    +    LeftOperand || RightOperand
    +

    Legality Rules

    +

    6.5.8:1 +A lazy boolean expression is an expression that performs short circuit +Boolean arithmetic.

    +

    6.5.8:2 +A lazy and expression is a lazy boolean expression that uses short +circuit and arithmetic.

    +

    6.5.8:3 +A lazy or expression is a lazy boolean expression that uses short +circuit or arithmetic.

    +

    6.5.8:4 +The types of the operands of a lazy boolean expression shall +be type bool.

    +

    6.5.8:5 +The type of a lazy boolean expression is type bool.

    +

    6.5.8:6 +The value of a lazy boolean expression is either true or +false.

    +

    Dynamic Semantics

    +

    6.5.8:7 +The evaluation of a lazy and expression proceeds as follows:

    +
      +
    1. 6.5.8:8 +The left operand is evaluated.

    2. +
    3. 6.5.8:9 +If the left operand evaluated to true, then the right operand +is evaluated and returned as the lazy and expression's value.

    4. +
    5. 6.5.8:10 +Otherwise the lazy and expression evaluates to false.

    6. +
    +

    6.5.8:11 +The evaluation of a lazy or expression proceeds as follows:

    +
      +
    1. 6.5.8:12 +The left operand is evaluated.

    2. +
    3. 6.5.8:13 +If the left operand evaluated to false, then the right operand +is evaluated and returned as the lazy or expression's value.

    4. +
    5. 6.5.8:14 +Otherwise the lazy or expression evaluates to true.

    6. +
    +

    Examples

    +
    false && panic!()
    +this || that
    +
    +
    +
    +
    +

    6.5.9. Type Cast Expressions

    +

    Syntax

    +
    TypeCastExpression ::=
    +    Operand as TypeSpecificationWithoutBounds
    +

    Legality Rules

    +

    6.5.9:1 +A type cast expression is an expression that changes the type of +an operand.

    +

    6.5.9:2 +Cast or casting is the process of changing the type of an +expression.

    +

    6.5.9:3 +The TypeSpecificationWithoutBounds describes the target type of the +type cast expression.

    +

    6.5.9:4 +A type cast expression with the following characteristics performs a +specialized cast:

    + +

    6.5.9:20 +A cast is legal when it either performs type coercion or is a +specialized cast.

    +

    6.5.9:21 +The type of a type cast expression is the target type.

    +

    6.5.9:22 +The value of a type cast expression is the value of the +operand after the cast.

    +

    Dynamic Semantics

    +

    6.5.9:23 +The evaluation of a type cast expression evaluates its operand.

    +

    6.5.9:24 +The evaluation of a numeric cast proceeds as follows:

    + +

    Examples

    +

    6.5.9:41 +See Paragraph 6.4.1. for the declaration of answer.

    +
    answer as f64
    +
    +
    +
    +
    +

    6.5.10. Assignment Expressions

    +

    Syntax

    +
    AssignmentExpression ::=
    +    AssigneeOperand = ValueOperand
    +
    +AssigneeOperand ::=
    +    Operand
    +
    +ValueOperand ::=
    +    Operand
    +

    Legality Rules

    +

    6.5.10:1 +An assignment expression is an expression that assigns the value +of a value operand to an assignee operand.

    +

    6.5.10:2 +An assignee operand is the target operand of an +assignment expression.

    +

    6.5.10:3 +A value operand is an operand that supplies the value that is +assigned to an assignee operand by an assignment expression.

    +

    6.5.10:4 +The type of an assignment expression is the unit type.

    +

    6.5.10:5 +The value of an assignment expression is the unit value.

    +
    +

    6.5.10.1. Basic Assignment

    +

    Legality Rules

    +

    6.5.10.1:1 +A basic assignment is an assignment expression that is not a +destructuring assignment.

    +

    Dynamic Semantics

    +

    6.5.10.1:2 +The evaluation of a basic assignment proceeds as follows:

    +
      +
    1. 6.5.10.1:3 +The value operand is evaluated.

    2. +
    3. 6.5.10.1:4 +The assignee operand is evaluated.

    4. +
    5. 6.5.10.1:5 +The value denoted by the assignee operand is dropped, unless +the assignee operand denotes an uninitialized variable or an +uninitialized field of a variable.

    6. +
    7. 6.5.10.1:6 +The value of the value operand is passed +into the place of the assignee operand.

    8. +
    +

    Examples

    +
    this = 42
    +
    +
    +
    +
    +

    6.5.10.2. Destructuring Assignment

    +

    Legality Rules

    +

    6.5.10.2:1 +A destructuring assignment is an assignment expression where +the assignee operand is either an array expression, a struct +expression, a tuple expression or a tuple struct call expression.

    +

    6.5.10.2:2 +The assignee operand of a destructuring assignment is treated as an +assignee pattern depending on its kind, as follows:

    + +

    6.5.10.2:10 +The pattern that corresponds to a destructuring assignment shall be +an irrefutable pattern.

    +

    6.5.10.2:11 +A destructuring assignment is equivalent to a block expression of the +following form:

    + +

    Dynamic Semantics

    +

    6.5.10.2:16 +The evaluation of a destructuring assignment proceeds as follows:

    +
      +
    1. 6.5.10.2:17 +The value operand is evaluated.

    2. +
    3. 6.5.10.2:18 +The assignee operand is evaluated by evaluating its operands in +a left-to-right order.

    4. +
    5. 6.5.10.2:19 +Each value denoted by the assignee operand is dropped +in left-to-right order, unless the assignee operand denotes an +uninitialized variable or an uninitialized field of a variable.

    6. +
    7. 6.5.10.2:20 +The value of the value operand is passed +into the place of the assignee operand.

    8. +
    +

    Examples

    +
    (four, two) = (4, 2)
    +
    +
    +
    +
    +
    +

    6.5.11. Compound Assignment Expressions

    +

    Syntax

    +
    CompoundAssignmentExpression ::=
    +    AdditionAssignmentExpression
    +  | BitAndAssignmentExpression
    +  | BitOrAssignmentExpression
    +  | BitXorAssignmentExpression
    +  | DivisionAssignmentExpression
    +  | MultiplicationAssignmentExpression
    +  | RemainderAssignmentExpression
    +  | ShiftLeftAssignmentExpression
    +  | ShiftRightAssignmentExpression
    +  | SubtractionAssignmentExpression
    +
    +AdditionAssignmentExpression ::=
    +    AssignedOperand += ModifyingOperand
    +
    +BitAndAssignmentExpression ::=
    +    AssignedOperand &= ModifyingOperand
    +
    +BitOrAssignmentExpression ::=
    +    AssignedOperand |= ModifyingOperand
    +
    +BitXorAssignmentExpression ::=
    +    AssignedOperand ^= ModifyingOperand
    +
    +DivisionAssignmentExpression ::=
    +    AssignedOperand /= ModifyingOperand
    +
    +MultiplicationAssignmentExpression ::=
    +    AssignedOperand *= ModifyingOperand
    +
    +RemainderAssignmentExpression ::=
    +    AssignedOperand %= ModifyingOperand
    +
    +ShiftLeftAssignmentExpression ::=
    +    AssignedOperand <<= ModifyingOperand
    +
    +ShiftRightAssignmentExpression ::=
    +    AssignedOperand >>= ModifyingOperand
    +
    +SubtractionAssignmentExpression ::=
    +    AssignedOperand -= ModifyingOperand
    +
    +AssignedOperand ::=
    +    Operand
    +
    +ModifyingOperand ::=
    +    Operand
    +

    Legality Rules

    +

    6.5.11:1 +A compound assignment expression is an expression that first computes +a value from two operands and then assigns the value to an +assigned operand.

    +

    6.5.11:2 +A bit and assignment expression is a compound assignment expression +that uses bit and arithmetic.

    +

    6.5.11:3 +A bit or assignment expression is a compound assignment expression +that uses bit or arithmetic.

    +

    6.5.11:4 +A bit xor assignment expression is a compound assignment expression +that uses bit exclusive or arithmetic.

    +

    6.5.11:5 +A division assignment expression is a compound assignment expression +that uses division.

    +

    6.5.11:6 +A multiplication assignment expression is a +compound assignment expression that uses multiplication.

    +

    6.5.11:7 +A remainder assignment expression is a compound assignment expression +that uses remainder division.

    +

    6.5.11:8 +A shift left assignment expression is a compound assignment expression +that uses bit shift left arithmetic.

    +

    6.5.11:9 +A shift right assignment expression is a +compound assignment expression that uses bit shift right arithmetic.

    +

    6.5.11:10 +A subtraction assignment expression is a +compound assignment expression that uses subtraction.

    +

    6.5.11:11 +An assigned operand is the target operand of a +compound assignment expression.

    +

    6.5.11:12 +A modifying operand is an operand that supplies the value that +is used in the calculation of a compound assignment expression.

    +

    6.5.11:13 +An assigned operand shall denote a mutable assignee expression.

    +

    6.5.11:14 +The type of a compound assignment is the unit type.

    +

    6.5.11:15 +The value of a compound assignment is the unit value.

    +

    6.5.11:16 +The type of the assigned operand of an addition assignment shall +implement the core::ops::AddAssign trait where the type of the right +operand is the trait implementation type parameter.

    +

    6.5.11:17 +The type of the assigned operand of a bit and assignment shall +implement the core::ops::BitAndAssign trait where the type of +the modifying operand is the trait implementation type parameter.

    +

    6.5.11:18 +The type of the assigned operand of a bit or assignment shall +implement the core::ops::BitOrAssign trait where the type of +the modifying operand is the trait implementation type parameter.

    +

    6.5.11:19 +The type of the assigned operand of a bit xor assignment shall +implement the core::ops::BitXorAssign trait where the type of +the modifying operand is the trait implementation type parameter.

    +

    6.5.11:20 +The type of the assigned operand of a division assignment shall +implement the core::ops::DivAssign trait where the type of the +modifying operand is the trait implementation type parameter.

    +

    6.5.11:21 +The type of the assigned operand of a multiplication assignment +shall implement the core::ops::MulAssign trait where the type +of the modifying operand is the trait implementation +type parameter.

    +

    6.5.11:22 +The type of the assigned operand of a remainder assignment shall +implement the core::ops::RemAssign trait where the type of the +modifying operand is the trait implementation type parameter.

    +

    6.5.11:23 +The type of the assigned operand of a shift left assignment shall +implement the core::ops::ShlAssign trait where the type of the +modifying operand is the trait implementation type parameter.

    +

    6.5.11:24 +The type of the assigned operand of a shift right assignment +shall implement the core::ops::ShrAssign trait where the type +of the modifying operand is the trait implementation +type parameter.

    +

    6.5.11:25 +The type of the assigned operand of a subtraction assignment +shall implement the core::ops::SubAssign trait where the type +of the modifying operand is the trait implementation +type parameter.

    +

    Dynamic Semantics

    +

    6.5.11:26 +The evaluation of a compound assignment proceeds as follows:

    +
      +
    1. 6.5.11:27 +If the types of both operands are integer types or floating-point types, then

      +
        +
      1. 6.5.11:28 +The modifying operand is evaluated.

      2. +
      3. 6.5.11:29 +The assigned operand is evaluated.

      4. +
      5. 6.5.11:30 +The appropriate function is invoked as indicated below.

      6. +
      +
    2. +
    3. 6.5.11:31 +Otherwise

      +
        +
      1. 6.5.11:32 +The assigned operand is evaluated.

      2. +
      3. 6.5.11:33 +The modifying operand is evaluated.

      4. +
      5. 6.5.11:34 +The appropriate function is invoked as indicated below.

      6. +
      +
    4. +
    +

    6.5.11:35 +For an addition assignment, +core::ops::AddAssign::add_assign(&mut assigned_operand, modifying_operand) +is invoked.

    +

    6.5.11:36 +For a bit and assignment, +core::ops::BitAndAssign::bitand_assign(&mut assigned_operand, modifying_operand) +is invoked.

    +

    6.5.11:37 +For a bit or assignment, +core::ops::BitOrAssign::bitor_assign(&mut assigned_operand, modifying_operand) +is invoked.

    +

    6.5.11:38 +For a bit xor assignment, +core::ops::BitXorAssign::bitxor_assign(&mut assigned_operand, modifying_operand) +is invoked.

    +

    6.5.11:39 +For a division assignment, +core::ops::DivAssign::div_assign(&mut assigned_operand, modifying_operand) +is invoked.

    +

    6.5.11:40 +For a multiplication assignment, +core::ops::MulAssign::mul_assign(&mut assigned_operand, modifying_operand) +is invoked.

    +

    6.5.11:41 +For a remainder assignment, +core::ops::RemAssign::rem_assign(&mut assigned_operand, modifying_operand) +is invoked.

    +

    6.5.11:42 +For a shift left assignment, +core::ops::ShlAssign::shl_assign(&mut assigned_operand, modifying_operand) +is invoked.

    +

    6.5.11:43 +For a shift right assignment, +core::ops::ShrAssign::shr_assign(&mut assigned_operand, modifying_operand) +is invoked.

    +

    6.5.11:44 +For a subtraction assignment, +core::ops::SubAssign::sub_assign(&mut assigned_operand, modifying_operand) +is invoked.

    +

    Examples

    +
    let mut result = 42;
    +result += 1
    +result &= 59
    +result /= 3
    +result ^= 2
    +result *= 81
    +result |= 9402
    +result %= 7
    +result <<= 2
    +result >>= 3
    +result -= 0
    +
    +
    +
    +
    +
    +

    6.6. Underscore Expressions

    +

    Syntax

    +
    UnderscoreExpression ::=
    +    _
    +

    Legality Rules

    +

    6.6:1 +An underscore expression is an expression that acts as a placeholder +in a destructuring assignment.

    +

    6.6:2 +An underscore expression shall appear in the assigned operand of a +destructuring assignment.

    +

    Examples

    +
    let pair = (1, 2);
    +let mut second = 0;
    +(_, second) = pair;
    +
    +
    +
    +
    +

    6.7. Parenthesized Expressions

    +

    Syntax

    +
    ParenthesizedExpression ::=
    +    ( Operand )
    +

    Legality Rules

    +

    6.7:1 +A parenthesized expression is an expression that groups other +expressions.

    +

    6.7:2 +The type of a parenthesized expression is the type of its +operand.

    +

    6.7:3 +The value of a parenthesized expression is the value of its +operand.

    +

    Dynamic Semantics

    +

    6.7:4 +The evaluation of a parenthesized expression evaluates its +operand.

    +

    Examples

    +
    (1 + 2) * 3
    +
    +
    +
    +
    +

    6.8. Array Expressions

    +

    Syntax

    +
    ArrayExpression ::=
    +    [ ArrayElementExpression? ]
    +
    +ArrayElementExpression ::=
    +    ArrayElementConstructor
    +  | ArrayRepetitionConstructor
    +
    +ArrayElementConstructor ::=
    +    ExpressionList
    +
    +ArrayRepetitionConstructor ::=
    +    RepeatOperand ; SizeOperand
    +
    +RepeatOperand ::=
    +    Operand
    +
    +SizeOperand ::=
    +    Operand
    +

    Legality Rules

    +

    6.8:1 +An array expression is an expression that constructs an array.

    +

    6.8:2 +An array element constructor is an array expression that lists all +elements of the array being constructed.

    +

    6.8:3 +An array repetition constructor is an array expression that specifies +how many times an element is repeated in the array being constructed.

    +

    6.8:4 +A repeat operand is an operand that specifies the element being +repeated in an array repetition constructor.

    +

    6.8:5 +A size operand is an operand that specifies the size of an array +or an array type.

    +

    6.8:6 +The size operand shall be a constant expression.

    +

    6.8:7 +The types of the operands of an array element constructor +shall be unifiable.

    +

    6.8:8 +If the size operand is greater than one, then the type of the +repeat operand shall implement the core::copy::Copy trait +or the repeat operand shall be a path expression resolving to a +constant.

    +

    6.8:9 +The type of the size operand shall be type usize.

    +

    6.8:10 +The type of an array expression is [T; N], where T is the +element type and N is the size of the array. The size of an +array is determined as follows:

    + +

    6.8:13 +The value of an array expression is the constructed array.

    +

    Dynamic Semantics

    +

    6.8:14 +The evaluation of an array expression with an +array element constructor evaluates its operands in left-to-right +order.

    +

    6.8:15 +The evaluation of an array expression with an +array repetition constructor proceeds as follows:

    +
      +
    1. 6.8:16 +If the value of the size operand is greater than zero, then:

      +
        +
      1. 6.8:17 +If the repeat operand denotes a constant, the +repeat operand is evaluated once and its value is +passed by copy size operand's +value times.

      2. +
      3. 6.8:18 +Otherwise the repeat operand is evaluated size operand's +value times.

      4. +
      +
    2. +
    3. 6.8:19 +Otherwise the repeat operand is evaluated once.

    4. +
    +

    Examples

    +
    [1, 2, 3]
    +["one", "two", "three",]
    +
    +
    +

    6.8:20 +Two dimensional array.

    +
    [[0, 0], [0, 1], [1, 0], [1, 1]]
    +

    6.8:21 +An array of nine 42s.

    +
    [42; 9]
    +
    +
    +

    6.9. Indexing Expressions

    +

    Syntax

    +
    IndexExpression ::=
    +    IndexedOperand [ IndexingOperand ]
    +
    +IndexedOperand ::=
    +    Operand
    +
    +IndexingOperand ::=
    +    Operand
    +

    Legality Rules

    +

    6.9:1 +A indexable type is a type that implements the +core::ops::Index trait.

    +

    6.9:2 +An index expression is an expression that indexes into a value +of an indexable type.

    +

    6.9:3 +An indexed operand is an operand which indicates the value +being indexed into by an index expression.

    +

    6.9:4 +An indexing operand is an operand which specifies the index of an +index expression.

    +

    6.9:5 +An index expression is a constant expression if the +indexing operand and indexed operand are constant expressions.

    +

    6.9:6 +The type of the indexing operand is the generic parameter of the +core::ops::Index implementation of the type of the +indexed operand.

    +

    6.9:7 +If the indexed operand is evaluated in a value expression context, +then

    + +

    6.9:10 +If the indexed operand is mutable and the index expression is +evaluated in a mutable place expression context, then

    + +

    6.9:13 +The value of an index expression is the indexed memory location.

    +

    Dynamic Semantics

    +

    6.9:14 +The evaluation of an index expression proceeds as follows:

    +
      +
    1. 6.9:15 +The indexed operand is evaluated.

    2. +
    3. 6.9:16 +The indexing operand is evaluated.

    4. +
    5. 6.9:17 +If the index expression is evaluated in a mutable place +expression context, then expression +*core::ops::IndexMut::index_mut(&mut indexed_operand, indexing_operand) +is evaluated.

    6. +
    7. 6.9:18 +Otherwise expression *core::ops::Index::index(&indexed_operand, +indexing_operand) is evaluated.

    8. +
    +

    Examples

    +
    let a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
    +a[1][2]
    +
    +
    +

    6.9:19 +Evaluates to 6.

    +
    +
    +

    6.10. Tuple Expressions

    +

    Syntax

    +
    TupleExpression ::=
    +    ( TupleInitializerList? )
    +
    +TupleInitializerList ::=
    +    ExpressionList
    +

    Legality Rules

    +

    6.10:1 +A tuple expression is an expression that constructs a tuple.

    +

    6.10:2 +A tuple initializer is an operand that provides the value of a +tuple field in a tuple expression.

    +

    6.10:3 +The type of a tuple expression is (T1, T2, ..., TN), where T1 +is the type of the first tuple initializer, T2 is the type of +the second tuple initializer, and TN is the type of the N-th +tuple initializer.

    +

    6.10:4 +The value of a tuple expression is (V1, V2, ..., VN), where V1 +is the value of the first tuple initializer, V2 is the value +of the second tuple initializer, and VN is the value of the +N-th tuple initializer.

    +

    Dynamic Semantics

    +

    6.10:5 +The evaluation of a tuple expression evaluates its +tuple initializers in left-to-right order.

    +

    Examples

    +
    ()
    +(1.2, 3.4)
    +("hello", 42i16, true)
    +
    +
    +
    +
    +

    6.11. Struct Expressions

    +

    Syntax

    +
    StructExpression ::=
    +    Constructee { StructExpressionContent? }
    +
    +Constructee ::=
    +    PathExpression
    +
    +StructExpressionContent ::=
    +    BaseInitializer
    +  | FieldInitializerList (, BaseInitializer | ,?)
    +
    +BaseInitializer ::=
    +    .. Operand
    +
    +FieldInitializerList ::=
    +    FieldInitializer (, FieldInitializer)*
    +
    +FieldInitializer ::=
    +    IndexedInitializer
    +  | NamedInitializer
    +  | ShorthandInitializer
    +
    +IndexedInitializer ::=
    +    FieldIndex : Expression
    +
    +NamedInitializer ::=
    +    Identifier : Expression
    +
    +ShorthandInitializer ::=
    +    Identifier
    +

    Legality Rules

    +

    6.11:1 +A struct expression is an expression that constructs an +enum value, a struct value, or a union value.

    +

    6.11:2 +A constructee indicates the enum variant, struct, or union +whose value is being constructed by a struct expression.

    +

    6.11:3 +A base initializer is a construct that specifies an enum value, +a struct value, or a union value to be used as a base for +construction in a struct expression.

    +

    6.11:4 +The type of a base initializer is the type of its operand. +The type of a base initializer shall be the same as the type of +the constructee.

    +

    6.11:5 +An indexed initializer is a construct that specifies the index and +initial value of a field in a struct expression.

    +

    6.11:6 +An indexed initializer matches a field of the constructee +when the field index of the indexed initializer resolves to a valid +position of a field in the constructee. Such an +indexed initializer is a matched indexed initializer.

    +

    6.11:7 +The type of the operand of an indexed initializer and the +type of the matched field shall be unifiable.

    +

    6.11:8 +The value of an indexed initializer is the value of its +operand.

    +

    6.11:9 +A named initializer is a construct that specifies the name and +initial value of a field in a struct expression.

    +

    6.11:10 +A named initializer matches a field of the constructee when +its identifier and the name of the field are the same. Such a +named initializer is a matched named initializer.

    +

    6.11:11 +The type of a named initializer and the type of the matched +field shall be unifiable.

    +

    6.11:12 +The value of a named initializer is the value of its +expression.

    +

    6.11:13 +A shorthand initializer is a construct that specifies the name +of a field in a struct expression.

    +

    6.11:14 +A shorthand initializer is equivalent to a named initializer where +both the identifier and the expression of the named initializer +denote the identifier of the shorthand initializer.

    +

    6.11:15 +A shorthand initializer matches a field of the constructee +when its identifier and the name of the field are the same. Such +a shorthand initializer is a matched shorthand initializer.

    +

    6.11:16 +The type of a shorthand initializer and the type of the matched +field shall be unifiable.

    +

    6.11:17 +The value of a shorthand initializer is the value its +identifier resolves to.

    +

    6.11:18 +The type of a struct expression is the type of the +constructee.

    +

    6.11:19 +The value of a struct expression is the enum value, +struct value, or union value in construction.

    +

    6.11:20 +If the constructee is a record enum variant or a record struct, +then

    + +

    6.11:26 +If the constructee is a tuple enum variant or a tuple struct, +then

    + +

    6.11:31 +If the constructee is a union type, then

    + +

    6.11:36 +If the constructee is a unit enum variant or a unit struct, then +the struct expression shall have at most one base initializer.

    +

    6.11:37 +If a base initializer is supplied, then for each field that was not +matched in the struct expression the value of the corresponding +field of the base initializer is passed to +the field of the constructee.

    +

    Dynamic Semantics

    +

    6.11:38 +The evaluation of a struct expression evaluates its operands in +a left-to-right order.

    +

    Examples

    +
    enum Occupation {
    +    Engineer,
    +    Gardener
    +}
    +
    +struct Employee {
    +    name: String,
    +    age: u16,
    +    occupation: Occupation
    +    compensation: u32
    +}
    +
    +let alice = Employee {
    +    name: "Alice".to_string(),
    +    age: 23,
    +    occupation: Occupation::Engineer
    +    compensation: 250_000
    +};
    +
    +let age = 45;
    +
    +let bob = Employee {
    +    name: "Bob".to_string(), // matched named initializer
    +    age, // matched shorthand initializer
    +    .. alice // equivalent to alice.occupation, alice.compensation
    +};
    +
    +union Union {
    +     int: u32,
    +     float: f32
    +}
    +
    +let u1 = Union { int: 0 };
    +let u2 = Union { float: 0.0 };
    +
    +
    +
    +
    +

    6.12. Invocation Expressions

    +
    +

    6.12.1. Call Expressions

    +

    Syntax

    +
    CallExpression ::=
    +    CallOperand ( ArgumentOperandList? )
    +
    +CallOperand ::=
    +    Operand
    +
    +ArgumentOperandList ::=
    +    ExpressionList
    +

    Legality Rules

    +

    6.12.1:1 +A call expression is an expression that invokes a function or +constructs a tuple enum variant value or a tuple struct value.

    +

    6.12.1:2 +An argument operand is an operand which is used as an argument in a +call expression or a method call expression.

    +

    6.12.1:3 +A call operand is the function being invoked or the +tuple enum variant value or the tuple struct value being constructed +by a call expression.

    +

    6.12.1:4 +A tuple struct call expression is a call expression where the +call operand resolves to a tuple struct.

    +

    6.12.1:5 +A callee type is either a function item type, a +function pointer type, a tuple enum variant, a +tuple struct type, or a type that implements any of the +core::ops::Fn, core::ops::FnMut, or core::ops::FnOnce +traits.

    +

    6.12.1:6 +The type of a call expression is the return type of the invoked +function, the type of the tuple enum variant or the +tuple struct being constructed, or associated type +core::ops::FnOnce::Output.

    +

    6.12.1:7 +A call expression whose callee type is either an +external function item type, an unsafe function item type, or an +unsafe function pointer type shall require unsafe context.

    +

    6.12.1:8 +The value of a call expression is determined as follows:

    + +

    6.12.1:14 +A call expression is subject to call resolution.

    +

    Dynamic Semantics

    +

    6.12.1:15 +The evaluation of a call expression proceeds as follows:

    +
      +
    1. 6.12.1:16 +The call operand is evaluated.

    2. +
    3. 6.12.1:17 +The argument operands are evaluated in left-to-right order.

    4. +
    5. 6.12.1:18 +If the adjusted call operand is a function item type or +function pointer type, then corresponding function is invoked.

    6. +
    7. 6.12.1:19 +If the type of the call operand implements the +core::ops::Fn trait, then +core::ops::Fn::call(adjusted_call_operand, argument_operand_tuple) is +invoked.

    8. +
    9. 6.12.1:20 +If the type of the call operand implements the +core::ops::FnMut trait, then +core::ops::FnMut::call_mut(adjusted_call_operand, argument_operand_tuple) +is invoked.

    10. +
    11. 6.12.1:21 +If the type of the call operand implements the +core::ops::FnOnce trait, then +core::ops::FnOnce::call_once(adjusted_call_operand, argument_operand_tuple) +is invoked.

    12. +
    +

    Undefined Behavior

    +

    6.12.1:22 +It is undefined behavior to call a function with an ABI other than the +ABI the function was defined with.

    +

    Examples

    +
    let three: i32 = add(1, 2);
    +
    +
    +
    +
    +

    6.12.2. Method Call Expressions

    +

    Syntax

    +
    MethodCallExpression ::=
    +    ReceiverOperand . MethodOperand ( ArgumentOperandList? )
    +
    +ReceiverOperand ::=
    +    Operand
    +
    +MethodOperand ::=
    +    PathExpressionSegment
    +

    Legality Rules

    +

    6.12.2:1 +A method call expression is an expression that invokes a method +of a variable.

    +

    6.12.2:2 +A receiver operand is an operand that denotes the value whose +method is being invoked by a method call expression.

    +

    6.12.2:3 +A method operand is an operand that denotes the method being +invoked by a method call expression.

    +

    6.12.2:4 +The type of a method call expression is the return type of the +invoked method.

    +

    6.12.2:5 +The value of a method call expression is the value returned by +the invoked method.

    +

    6.12.2:6 +A method call expression is subject to method resolution.

    +

    Dynamic Semantics

    +

    6.12.2:7 +The evaluation of a method call expression proceeds as follows:

    +
      +
    1. 6.12.2:8 +The receiver operand is evaluated.

    2. +
    3. 6.12.2:9 +The argument operands are evaluated in left-to-right order.

    4. +
    5. 6.12.2:10 +The method is invoked.

    6. +
    +

    Examples

    +
    trait Command {
    +    fn execute(&self);
    +}
    +
    +struct ClickCommand { ... }
    +
    +impl ClickCommand for Command {
    +    fn execute(&self) {
    +        println!("Someone clicked me!")
    +    }
    +}
    +
    +let click = ClickCommand { ... };
    +click.execute();
    +
    +
    +
    +
    +

    6.12.3. Call Conformance

    +

    6.12.3:1 +A method call expression is equivalent to a call expression where the +call operand is the resolved method and the adjusted +receiver operand is prepended to the argument operands.

    +

    6.12.3:2 +An argument operand matches a function parameter or field of the +callee type when its position and the position of the +function parameter or field are the same. Such an +argument operand is a matched argument operand.

    +

    6.12.3:3 +The type of a matched argument operand and the type of the +corresponding function parameter or field shall be unifiable.

    +

    6.12.3:4 +The number of argument operands shall be equal to the number of +fields or function parameters of the callee type.

    +
    +
    +
    +

    6.13. Field Access Expressions

    +

    Syntax

    +
    FieldAccessExpression ::=
    +    ContainerOperand . FieldSelector
    +
    +ContainerOperand ::=
    +    Operand
    +
    +FieldSelector ::=
    +    IndexedFieldSelector
    +  | NamedFieldSelector
    +
    +IndexedFieldSelector ::=
    +    DecimalLiteral
    +
    +NamedFieldSelector ::=
    +    Identifier
    +

    Legality Rules

    +

    6.13:1 +A field access expression is an expression that accesses a field +of a value.

    +

    6.13:2 +A container operand is an operand that indicates the value whose +field is selected in a field access expression.

    +

    6.13:3 +A field selector is a construct that selects the field to be +accessed in a field access expression.

    +

    6.13:4 +A selected field is a field that is selected by a +field access expression.

    +

    6.13:5 +The type of a field access expression is the type of the +selected field.

    +

    6.13:6 +The value of a field access expression is the value of the +selected field.

    +

    6.13:7 +Reading the selected field of a union shall require +unsafe context.

    +

    6.13:8 +Writing to the selected field of a union where the type of the +selected field implements the core::marker::Copy trait or the +core::mem::ManuallyDrop trait shall not require unsafe context.

    +

    6.13:9 +Writing to and then reading from the selected field of a union +subject to attribute repr is equivalent to invoking function +core::mem::transmute<write_type, read_type>(field_bits) where write_type +is the type used at the time of writing the selected field, +read_type is the type used at the time of reading the +selected field, and field_bits is the bit representation of the +selected field.

    +

    6.13:10 +A field access expression is subject to field resolution.

    +

    Undefined Behavior

    +

    6.13:11 +It is undefined behavior reading the selected field of a +union type when it contains data that is invalid for the selected +field‘s type.

    +

    Dynamic Semantics

    +

    6.13:12 +The evaluation of a field access expression evaluates its +container operand.

    +

    Examples

    +

    6.13:13 +See Paragraph 6.8.1. for the declaration of alice.

    +
    alice.name
    +
    +
    +

    6.13:14 +The following indexed field access evaluates to 42.

    +
    ("hello", 42i16, true).1
    +
    +
    +
    +
    +

    6.14. Closure Expressions

    +

    Syntax

    +
    ClosureExpression ::=
    +    move? | ClosureParameterList? |
    +      (ClosureBody | ClosureBodyWithReturnType)
    +
    +ClosureBody ::=
    +    Expression
    +
    +ClosureBodyWithReturnType ::=
    +    ReturnTypeWithoutBounds BlockExpression
    +
    +ReturnTypeWithoutBounds ::=
    +    -> TypeSpecificationWithoutBounds
    +
    +ClosureParameterList ::=
    +    ClosureParameter (, ClosureParameter)* ,?
    +
    +ClosureParameter ::=
    +    OuterAttributeOrDoc* PatternWithoutAlternation TypeAscription?
    +

    Legality Rules

    +

    6.14:1 +A closure expression is an expression that defines a +closure type and constructs a value of that type.

    +

    6.14:2 +The return type of a closure type is determined as follows:

    + +

    6.14:5 +A closure body is a construct that represents the executable portion +of a closure expression.

    +

    6.14:6 +A closure body denotes a new control flow boundary.

    +

    6.14:7 +A closure body is subject to capturing.

    +

    6.14:8 +A closure parameter is a construct that yields a set of +bindings that bind matched input values to names at the +site of a call expression or a method call expression.

    +

    6.14:9 +The pattern of a closure parameter shall be an +irrefutable pattern.

    +

    6.14:10 +The bindings of all patterns of all closure parameters of a closure expression shall not shadow another.

    +

    6.14:11 +The type of a closure expression is the unique anonymous +closure type defined by it.

    +

    6.14:12 +The value of a closure expression is the value of the unique +anonymous closure type instantiated with the selected +capture targets.

    +

    Dynamic Semantics

    +

    6.14:13 +The evaluation of a closure expression proceeds as follows:

    +
      +
    1. 6.14:14 +An anonymous value of an unique anonymous closure type is created.

    2. +
    +

    Examples

    +
    fn do_ten_times<F>(consumer: F) where F: Fn(i32) {
    +    for times in 0 .. 10 {
    +        consumer(times);
    +    }
    +}
    +
    +do_ten_times(|value: i32| { println!("value: {}", value)});
    +
    +
    +
    +
    +

    6.15. Loop Expressions

    +

    Syntax

    +
    LoopExpression ::=
    +    Label? LoopContent
    +
    +Label ::=
    +    ' NonKeywordIdentifier :
    +
    +LoopContent ::=
    +    ForLoopExpression
    +  | InfiniteLoopExpression
    +  | WhileLetLoopExpression
    +  | WhileLoopExpression
    +
    +LoopBody ::=
    +    BlockExpression
    +

    Legality Rules

    +

    6.15:1 +A loop expression is an expression that evaluates a block +expression continuously as long as some criterion holds true.

    +

    6.15:2 +A loop body is the block expression of a loop expression.

    +

    6.15:3 +The type of the loop body shall be the unit type.

    +

    6.15:4 +An anonymous loop expression is a loop expression without a +label.

    +

    6.15:5 +A named loop expression is a loop expression with a label.

    +

    Dynamic Semantics

    +

    6.15:6 +A loop expression is terminated when its block expression is no +longer evaluated.

    +
    +

    6.15.1. For Loops

    +

    Syntax

    +
    ForLoopExpression ::=
    +    for Pattern in SubjectExpression LoopBody
    +

    Legality Rules

    +

    6.15.1:1 +A for loop expression is a loop expression that continues to evaluate +its loop body as long as its subject expression yields a value.

    +

    6.15.1:2 +The type of a subject expression shall implement the +core::iter::IntoIterator trait.

    +

    6.15.1:3 +The type of an for loop expression is the unit type.

    +

    6.15.1:4 +The value of an for loop expression is the unit value.

    +

    Dynamic Semantics

    +

    6.15.1:5 +The evaluation of a for loop expression of the form

    +
    'label: for pattern in subject_expression {
    +    /* loop body */
    +}
    +
    +
    +

    6.15.1:6 +is equivalent to the evaluation of the following block expression:

    +
    {
    +    let result =
    +        match core::iter::IntoIterator::into_iter
    +            (subject_expression)
    +    {
    +        mut iter => 'label: loop {
    +            let mut next_value;
    +            match core::iter::Iterator::next(&mut iter) {
    +                Option::Some(value) => next_value = value,
    +                Option::None => break
    +            };
    +            let pattern = next_value;
    +            let () = { /* loop body */ };
    +        }
    +    };
    +    result
    +}
    +
    +
    +

    Examples

    +
    let favorite_fruits = &["apples", "pears", "strawberries"];
    +
    +for fruit in favorite_fruits {
    +    println!("I like eating {}.", fruit);
    +}
    +
    +
    +
    +
    +

    6.15.2. Infinite Loops

    +

    Syntax

    +
    InfiniteLoopExpression ::=
    +    loop LoopBody
    +

    Legality Rules

    +

    6.15.2:1 +An infinite loop expression is a loop expression that continues to +evaluate its loop body indefinitely.

    +

    6.15.2:2 +The type of a infinite loop expression is determined as follows:

    + +

    6.15.2:5 +The value of a infinite loop expression is determined as follows:

    + +

    Dynamic Semantics

    +

    6.15.2:8 +The evaluation of an infinite loop expression proceeds as follows:

    +
      +
    1. 6.15.2:9 +The block expression is evaluated.

    2. +
    3. 6.15.2:10 +Control restarts the evaluation of the infinite loop expression.

    4. +
    +

    Examples

    +
    loop {
    +    println!("I am alive!");
    +}
    +
    +
    +
    +
    +

    6.15.3. While Loops

    +

    Syntax

    +
    WhileLoopExpression ::=
    +    while IterationExpression LoopBody
    +
    +IterationExpression ::=
    +    Expression
    +

    Legality Rules

    +

    6.15.3:1 +A while loop expression is a loop expression that continues to +evaluate its loop body as long as its iteration expression holds +true.

    +

    6.15.3:2 +An iteration expression is an expression that provides the criterion +of a while loop expression.

    +

    6.15.3:3 +The type of an iteration expression shall be type bool.

    +

    6.15.3:4 +The type of an while loop expression is the unit type.

    +

    6.15.3:5 +The value of an while loop expression is the unit value.

    +

    Dynamic Semantics

    +

    6.15.3:6 +The evaluation of a while loop expression proceeds as follows:

    +
      +
    1. 6.15.3:7 +The iteration expression is evaluated.

    2. +
    3. 6.15.3:8 +If the iteration expression evaluated to true, then:

      +
        +
      1. 6.15.3:9 +The block expression is evaluated.

      2. +
      3. 6.15.3:10 +Control restarts the evaluation of the while loop expression.

      4. +
      +
    4. +
    +

    Examples

    +
    let mut counter = 0;
    +
    +while counter < 5 {
    +    counter += 1;
    +    println("iteration {}", counter);
    +}
    +
    +
    +
    +
    +

    6.15.4. While Let Loops

    +

    Syntax

    +
    WhileLetLoopExpression ::=
    +    while let Pattern = SubjectLetExpression LoopBody
    +

    Legality Rules

    +

    6.15.4:1 +A while let loop expression is a loop expression that continues to +evaluate its loop body as long as its subject let expression yields +a value that can be matched against its pattern.

    +

    6.15.4:2 +The type of an while let loop expression is the unit type.

    +

    6.15.4:3 +The value of an while let loop expression is the unit value.

    +

    Dynamic Semantics

    +

    6.15.4:4 +The evaluation of a while let loop expression of the form

    +
    'label: let pattern = subject_let_expression {
    +    /* loop body */
    +}
    +
    +
    +

    6.15.4:5 +shall be equivalent to the evaluation the following infinite loop:

    +
    'label: loop {
    +    match subject_let_expression {
    +        pattern => { /* loop body */ },
    +        _ => break
    +    }
    +}
    +
    +
    +

    Examples

    +
    let mut favorite_animals = vec!["cats", "dogs", "otters"];
    +
    +while let Some(animal) = favorite_animals.pop() {
    +    println!("I like petting {}", animal);
    +}
    +
    +
    +
    +
    +

    6.15.5. Loop Labels

    +

    Syntax

    +
    LabelIndication ::=
    +    ' NonKeywordIdentifier
    +

    Legality Rules

    +

    6.15.5:1 +A label indication is a construct that indicates a label.

    +

    6.15.5:2 +A label indication shall indicate a label of an enclosing +named block expression or named loop expression that does not pass a +control flow boundary in order to reach the enclosing +named block expression or named loop expression.

    +
    +
    +

    6.15.6. Break Expressions

    +

    Syntax

    +
    BreakExpression ::=
    +    break LabelIndication? Operand?
    +

    Legality Rules

    +

    6.15.6:1 +A break expression is an expression that terminates a +loop expression or a named block expression.

    +

    6.15.6:2 +A break expression shall appear within a loop body or a +named block expression.

    +

    6.15.6:3 +If a break expression appears within a named block expression, then +the break expression shall have a label indication.

    +

    6.15.6:4 +The label indication of a break expression shall resolve to the +label of an enclosing named block expression or +named loop expression.

    +

    6.15.6:5 +A break expression with a label indication is associated with the +named block expression or named loop expression whose label is +indicated by the label indication.

    +

    6.15.6:6 +A break expression without a label indication is associated with the +innermost enclosing loop expression.

    +

    6.15.6:7 +If a break expression appears within a loop expression, then the +break expression shall have an operand only when it is associated +with an infinite loop.

    +

    6.15.6:8 +The type of a break expression is the never type.

    +

    6.15.6:9 +Break type is the type of the operand of a break expression.

    +

    6.15.6:10 +The break type is determined as follows:

    + +

    6.15.6:13 +Break value is the value of the operand of a +break expression.

    +

    6.15.6:14 +The break value is determined as follows:

    + +

    Dynamic Semantics

    +

    6.15.6:17 +If a break expression appears within a loop expression, then the +evaluation of the break expression proceeds as follows:

    +
      +
    1. 6.15.6:18 +The operand is evaluated.

    2. +
    3. 6.15.6:19 +All enclosing loop expressions upto and including the associated +loop expression are terminated.

    4. +
    +

    6.15.6:20 +If a break expression appears within a named block expression, then +the evaluation of the break expression proceeds as follows:

    +
      +
    1. 6.15.6:21 +The operand is evaluated.

    2. +
    3. 6.15.6:22 +All enclosing named block expressions upto and including the +associated named block expression are terminated.

    4. +
    +

    Examples

    +

    6.15.6:23 +The following break expression terminates both the inner and the outer loop.

    +
    'outer: loop {
    +    'inner: loop {
    +        break 'outer;
    +    }
    +}
    +
    +
    +
    +
    +

    6.15.7. Continue Expressions

    +

    Syntax

    +
    ContinueExpression ::=
    +    continue LabelIndication?
    +

    Legality Rules

    +

    6.15.7:1 +A continue expression shall appear within a loop expression.

    +

    6.15.7:2 +A continue expression without a label indication is associated with +the innermost enclosing loop expression.

    +

    6.15.7:3 +A continue expression with a label indication is associated with a +named loop expression whose label is indicated by the +label indication.

    +

    6.15.7:4 +The type of a continue expression is the never type.

    +

    Dynamic Semantics

    +

    6.15.7:5 +The evaluation of a continue expression proceeds as follows:

    +
      +
    1. 6.15.7:6 +If the continue expression appears with a label indication, then +all enclosing loop expressions upto and including the associated +loop expression are terminated.

    2. +
    3. 6.15.7:7 +The evaluation of the associated loop expression is restarted.

    4. +
    +

    Examples

    +

    6.15.7:8 +The following continue expression terminates and restarts game_loop.

    +
    'game_loop: loop {
    +    if is_paused() {
    +        continue;
    +    }
    +    . . .
    +}
    +
    +
    +
    +
    +
    +

    6.16. Range Expressions

    +

    Syntax

    +
    RangeExpression ::=
    +    RangeFromExpression
    +  | RangeFromToExpression
    +  | RangeFullExpression
    +  | RangeInclusiveExpression
    +  | RangeToExpression
    +  | RangeToInclusiveExpression
    +
    +RangeFromExpression ::=
    +    RangeExpressionLowBound ..
    +
    +RangeFromToExpression ::=
    +    RangeExpressionLowBound .. RangeExpressionHighBound
    +
    +RangeFullExpression ::=
    +    ..
    +
    +RangeInclusiveExpression ::=
    +    RangeExpressionLowBound ..= RangeExpressionHighBound
    +
    +RangeToExpression ::=
    +    .. RangeExpressionHighBound
    +
    +RangeToInclusiveExpression ::=
    +    ..= RangeExpressionHighBound
    +
    +RangeExpressionLowBound ::=
    +    Operand
    +
    +RangeExpressionHighBound ::=
    +    Operand
    +

    Legality Rules

    +

    6.16:1 +A range expression is an expression that constructs a range.

    +

    6.16:2 +A range expression low bound is an operand that specifies the start of +a range.

    +

    6.16:3 +A range expression high bound is an operand that specifies the end of +a range.

    +

    6.16:4 +If a range expression has two operands, then the types of the +operands shall be unifiable.

    +

    6.16:5 +A range-from expression is a range expression that specifies an +included range expression low bound.

    +

    6.16:6 +The type of a range-from expression is core::ops::RangeFrom.

    +

    6.16:7 +The value of a range-from expression is +core::ops::RangeFrom { start: range_expression_low_bound }.

    +

    6.16:8 +A range-from-to expression is a range expression that specifies an +included range expression low bound and an excluded +range expression high bound.

    +

    6.16:9 +The type of a range-from-to expression is core::ops::Range.

    +

    6.16:10 +The value of a range-from-to expression is +core::ops::Range { start: range_expression_low_bound, end: range_expression_high_bound }.

    +

    6.16:11 +A range-full expression is a range expression that covers the whole +range of a type.

    +

    6.16:12 +The type of a range-full expression is core::ops::RangeFull.

    +

    6.16:13 +The value of a range-full expression is core::ops::RangeFull {}.

    +

    6.16:14 +A range-inclusive expression is a range expression that specifies an +included range expression low bound and an included +range expression high bound.

    +

    6.16:15 +The type of a range-inclusive expression is +core::ops::RangeInclusive.

    +

    6.16:16 +The value of a range-inclusive expression is +core::ops::RangeInclusive::new(range_expression_low_bound, range_expression_high_bound).

    +

    6.16:17 +A range-to expression is a range expression that specifies an excluded +range expression high bound.

    +

    6.16:18 +The type of a range-to expression is core::ops::RangeTo.

    +

    6.16:19 +The value of a range-to expression is +core::ops::RangeTo { end: range_expression_high_bound }.

    +

    6.16:20 +A range-to-inclusive expression is a range expression that specifies +an included range expression high bound.

    +

    6.16:21 +The type of a range-to-inclusive expression is +core::ops::RangeToInclusive.

    +

    6.16:22 +The value of a range-to-inclusive expression is +core::ops::RangeToInclusive { end: range_expression_high_bound }.

    +

    Dynamic Semantics

    +

    6.16:23 +The evaluation of a range expression evaluates its operands in +left-to-right order.

    +

    Examples

    +
    1 ..
    +42 .. 86
    +..
    +dawn ..= dusk
    +..= 5
    +
    +
    +
    +
    +

    6.17. If and If Let Expressions

    +
    +

    6.17.1. If Expressions

    +

    Syntax

    +
    IfExpression ::=
    +    if SubjectExpression BlockExpression ElseExpression?
    +
    +ElseExpression ::=
    +    else (BlockExpression | IfExpression | IfLetExpression)
    +

    Legality Rules

    +

    6.17.1:1 +An if expression is an expression that evaluates either a +block expression or an else expression depending on the value of +its subject expression.

    +

    6.17.1:2 +An else expression is an expression that represents either a +block expression, an if expression, or an if let expression.

    +

    6.17.1:3 +The type of the subject expression of an if expression shall be +type bool.

    +

    6.17.1:4 +The type of an if expression is the type of its +block expression.

    +

    6.17.1:5 +The value of an if expression is the value of its +block expression.

    +

    6.17.1:6 +The type of an else expression is the type of its +block expression, if expression, or if let expression.

    +

    6.17.1:7 +The value of an else expression is the value of its +block expression, if expression, or if let expression.

    +

    6.17.1:8 +The type of an if expression and the type of an +else expression shall be unifiable.

    +

    Dynamic Semantics

    +

    6.17.1:9 +The evaluation of an if expression proceeds as follows:

    +
      +
    1. 6.17.1:10 +The subject expression is evaluated.

    2. +
    3. 6.17.1:11 +If the subject expression evaluated to true, then the +block expression is evaluated.

    4. +
    5. 6.17.1:12 +If the subject expression evaluated to false and the +if expression has an else expression, then the else expression +is evaluated.

    6. +
    +

    6.17.1:13 +The evaluation of an else expression evaluates its +block expression, if expression, or if let expression.

    +

    Examples

    +
    if age <= 14 {
    +    println!("child");
    +} else if age <= 24 {
    +    println!("youth");
    +} else if age <=64 {
    +    println!("adult");
    +} else {
    +    println!("senior");
    +}
    +
    +
    +
    +
    +

    6.17.2. If Let Expressions

    +

    Syntax

    +
    IfLetExpression ::=
    +    if let Pattern = SubjectLetExpression BlockExpression
    +      ElseExpression?
    +

    Legality Rules

    +

    6.17.2:1 +An if let expression is an expression that evaluates either a +block expression or an else expression depending on whether its +pattern can be matched against its subject let expression.

    +

    6.17.2:2 +The type of an if let expression is the type of its +block expression.

    +

    6.17.2:3 +The value of an if let expression is the value of its +block expression.

    +

    6.17.2:4 +The type of an if let expression and the type of an +else expression shall be unifiable.

    +

    Dynamic Semantics

    +

    6.17.2:5 +The evaluation of an if let expression of the form

    +
    if let pattern = subject_let_expression {
    +    /* body */
    +}
    +
    +
    +

    6.17.2:6 +is equivalent to the evaluation of the following match expression:

    +
    match subject_let_expression {
    +    pattern => { /* body */ },
    +    _ => ()
    +}
    +
    +
    +

    6.17.2:7 +The evaluation of an if let expression of the form

    +
    if let pattern = subject_let_expression {
    +    /* body */
    +} else {
    +    /* else */
    +}
    +
    +
    +

    6.17.2:8 +is equivalent to the evaluation of the following match expression:

    +
    match subject_let_expression {
    +    pattern => { /* body */ },
    +    _ => { /* else */ }
    +}
    +
    +
    +

    Examples

    +
    let dish = ("Ham", "Eggs");
    +
    +if let ("Ham", side) = dish {
    +    println!("Ham is served with {}", side);
    +}
    +
    +
    +
    +
    +
    +

    6.18. Match Expressions

    +

    Syntax

    +
    MatchExpression ::=
    +    match SubjectExpression {
    +      InnerAttributeOrDoc*
    +      MatchArmList?
    +    }
    +
    +MatchArmList ::=
    +    IntermediateMatchArm* FinalMatchArm
    +
    +IntermediateMatchArm ::=
    +    MatchArmMatcher =>
    +      ( ExpressionWithBlock ,? | ExpressionWithoutBlock , )
    +
    +FinalMatchArm ::=
    +    MatchArmMatcher => Operand ,?
    +
    +MatchArmMatcher ::=
    +    OuterAttributeOrDoc* Pattern MatchArmGuard?
    +
    +MatchArmGuard ::=
    +    if Operand
    +

    Legality Rules

    +

    6.18:1 +A match expression is an expression that tries to match one of its +multiple patterns against its subject expression and if it succeeds, +evaluates an operand.

    +

    6.18:2 +A match arm is a construct that consists of a match arm matcher +and a match arm body.

    +

    6.18:3 +An intermediate match arm is any non-final match arm of a +match expression.

    +

    6.18:4 +A final match arm is the last match arm of a match expression.

    +

    6.18:5 +A match arm matcher is a construct that consists of a pattern and +a match arm guard.

    +

    6.18:6 +A match arm body is the operand of a match arm.

    +

    6.18:7 +A match arm guard is a construct that provides additional filtering to +a match arm matcher.

    +

    6.18:8 +Bindings introduced in the pattern of a match arm matcher are +immutable in the match arm guard.

    +

    6.18:9 +The type of the subject expression and the types of all +patterns of all match arm matchers shall be unifiable.

    +

    6.18:10 +The type of the operand of a match arm guard shall be type +bool.

    +

    6.18:11 +The types of all match arm bodies shall be +unifiable.

    +

    6.18:12 +The type of a match expression is the unified type of the +types of the operands of all match arms.

    +

    6.18:13 +A match arm is selected when its pattern matches the +subject expression and its match arm guard (if any) evaluates to +true.

    +

    6.18:14 +Match arm selection happens in declarative order.

    +

    6.18:15 +The patterns of all match arms taken together shall exhaustively +match the subject expression's type.

    +

    6.18:16 +The value of a match expression is the value of the operand +of the selected match arm.

    +

    Dynamic Semantics

    +

    6.18:17 +The evaluation of a match expression proceeds as follows:

    +
      +
    1. 6.18:18 +The subject expression is evaluated.

    2. +
    3. 6.18:19 +Each match arm is evaluated in declarative order as follows:

      +
        +
      1. 6.18:20 +The match arm matcher of the match arm is evaluated.

      2. +
      3. 6.18:21 +If the match arm matcher succeeds, then

        +
          +
        1. 6.18:22 +The operand of the match arm is evaluated.

        2. +
        3. 6.18:23 +Control stops the evaluation of the match expression.

        4. +
        +
      4. +
      5. 6.18:24 +Otherwise control proceeds with the evaluation of the next +match arm.

      6. +
      +
    4. +
    +

    6.18:25 +The evaluation of a match arm matcher proceeds as follows:

    +
      +
    1. 6.18:26 +The pattern of the match arm matcher is evaluated.

    2. +
    3. 6.18:27 +If the pattern succeeds, then

      +
        +
      1. 6.18:28 +If the match arm matcher has a match arm guard, then

        +
          +
        1. 6.18:29 +The match arm guard is evaluated.

        2. +
        3. 6.18:30 +If the match arm guard evaluates to true, then the +match arm matcher succeeds.

        4. +
        +
      2. +
      3. 6.18:31 +Otherwise the match arm matcher fails.

      4. +
      +
    4. +
    5. 6.18:32 +Otherwise the match arm matcher fails.

    6. +
    +

    6.18:33 +The evaluation of a match arm guard evaluates its operand. A +match arm guard evaluates to true when its operand evaluates to +true, otherwise it evaluates to false.

    +

    Examples

    +
    fn quantify(number_of_things: i32) {
    +    match number_of_things {
    +        0 | 1 => println!("not many"),
    +        2 ..= 9 => println!("a few"),
    +        _ if number_of_things < 0 => println!("you owe me"),
    +        _ => println!("lots")
    +    }
    +}
    +
    +
    +
    +
    +

    6.19. Return Expressions

    +

    Syntax

    +
    ReturnExpression ::=
    +    return Expression?
    +

    Legality Rules

    +

    6.19:1 +A return expression is an expression that optionally yields a +value and causes control flow to return to the end of the enclosing +control flow boundary.

    +

    6.19:2 +A return expression shall appear within a control flow boundary.

    +

    6.19:3 +The type of a return expression is the never type.

    +

    6.19:4 +The value returned by a return expression is determined as follows:

    + +

    Dynamic Semantics

    +

    6.19:7 +The evaluation of a return expression proceeds as follows:

    +
      +
    1. 6.19:8 +If the return expression has an operand, then

      +
        +
      1. 6.19:9 +The operand is evaluated.

      2. +
      3. 6.19:10 +The value of the operand is passed +by move into the designated output location of the enclosing +control flow boundary.

      4. +
      +
    2. +
    3. 6.19:11 +Control destroys the current activation frame.

    4. +
    5. 6.19:12 +Control is transferred to the caller frame.

    6. +
    +

    Examples

    +
    fn max(left: i32, right: i32) -> i32 {
    +    if left > right {
    +        return left;
    +    }
    +    return right;
    +}
    +
    +
    +
    +
    +

    6.20. Await Expressions

    +

    Syntax

    +
    AwaitExpression ::=
    +    FutureOperand . await
    +
    +FutureOperand ::=
    +    Operand
    +

    Legality Rules

    +

    6.20:1 +An await expression is an expression that polls a future, +suspending the execution of the future until the future is ready.

    +

    6.20:2 +A future operand is an operand whose future is being awaited by +an await expression.

    +

    6.20:3 +An await expression shall appear within an +async control flow boundary. Only the innermost control flow boundary +shall be considered.

    +

    6.20:4 +The type of a future operand shall implement the +core::future::IntoFuture trait.

    +

    6.20:5 +The type of an await expression is +<_ as core::future::IntoFuture>::Output.

    +

    6.20:6 +The value of an await expression is the value held by +core::task::Poll::Ready.

    +

    Dynamic Semantics

    +

    6.20:7 +The evaluation of an await expression proceeds as follows:

    +
      +
    1. 6.20:8 +The future operand is evaluated to a temporary by invoking +core::future::IntoFuture::into_future with the future operand.

    2. +
    3. 6.20:9 +The temporary is pinned using core::pin::Pin::new_unchecked.

    4. +
    5. 6.20:10 +The pinned temporary is polled using core::future::Future::poll, +passing in the core::task::Context of the current task.

    6. +
    7. 6.20:11 +If core::future::Future::poll returns +core::task::Poll::Pending, then the current future yields.

    8. +
    9. 6.20:12 +If core::future::Future::poll returns core::task::Poll::Ready, +then

      +
        +
      1. 6.20:13 +The value held within is unwrapped.

      2. +
      3. 6.20:14 +Control stops the evaluation of the await expression.

      4. +
      +
    10. +
    +

    Examples

    +
    let future = async { expensive_function() };
    +future.await;
    +
    +
    +
    +
    +

    6.21. Expression Precedence

    +

    Legality Rules

    +

    6.21:1 +Certain expressions are subject to precedence and +associativity.

    +

    6.21:2 +Precedence is the order by which expressions are evaluated in the +presence of other expressions.

    +

    6.21:3 +Associativity is the order by which operands are evaluated within a +single expression.

    +

    6.21:4 +The precedence and associativity of qualifying expressions are +as follows:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    6.21:5

    Expression

    Precedence

    Associativity

    6.21:6

    Array expression

    +

    Block expression

    +

    Continue expression

    +

    If expression

    +

    If let expression

    +

    Literal expression

    +

    Loop expression

    +

    Match expression

    +

    Parenthesized expression

    +

    Path expression

    +

    Struct expression

    +

    Tuple expression

    +

    Underscore expression

    +

    highest

    none

    6.21:7

    Method call expression

    none

    6.21:8

    Await expression

    +

    Field access expression

    +

    left-to-right

    6.21:9

    Call expression

    +

    Index expression

    +

    none

    6.21:10

    Error propagation expression

    none

    6.21:11

    Borrow expression

    +

    Dereference expression

    +

    Negation expression

    +

    none

    6.21:12

    Type cast expression

    left-to-right

    6.21:13

    Division expression

    +

    Multiplication expression

    +

    Remainder expression

    +

    left-to-right

    6.21:14

    Addition expression

    +

    Subtraction expression

    +

    left-to-right

    6.21:15

    Shift left expression

    +

    Shift right expression

    +

    left-to-right

    6.21:16

    Bit and expression

    left-to-right

    6.21:17

    Bit xor expression

    left-to-right

    6.21:18

    Bit or expression

    left-to-right

    6.21:19

    Comparison expression

    requires parentheses

    6.21:20

    Lazy and expression

    left-to-right

    6.21:21

    Lazy or expression

    left-to-right

    6.21:22

    Range expression

    requires parentheses

    6.21:23

    Assignment expression

    +

    Compound assignment expression

    +

    right-to-left

    6.21:24

    Break expression

    +

    Closure expression

    +

    Return expression

    +

    lowest

    none

    +
    +
    +

    6.22. Capturing

    +

    Legality Rules

    +

    6.22:1 +A capturing expression is either an async block expression or a +closure expression.

    +

    6.22:2 +A capture target is either a variable or a field of a +variable.

    +

    6.22:3 +The capturing environment of a capturing expression consists of the +values of all captured capture targets.

    +

    6.22:4 +Capturing is the process of saving the capture targets of a +capturing expression's capturing environment.

    +

    6.22:5 +A capture target requires capturing when it is used by +the capturing expression and it is defined outside of the +capturing expression. Such a capture target is said to be +captured.

    +

    6.22:6 +Capture mode is the mechanism by which a capture target is captured.

    +

    6.22:7 +A captured capture target with capture mode by value capture +passes the value of the capture target into +the capturing environment.

    +

    6.22:8 +A captured capture target with capture mode +by immutable reference capture binds an immutable reference to the +capture target and passes the immutable reference into the +capturing environment.

    +

    6.22:9 +A captured capture target with capture mode +by mutable reference capture binds a mutable reference to the +capture target and passes the mutable reference into the +capturing environment.

    +

    6.22:10 +A captured capture target with capture mode +by unique immutable reference capture binds a +unique immutable reference to the capture target and passes the +mutable reference into the capturing environment.

    +

    6.22:11 +The capture mode is determined based on the use of the capture target +within the capturing expression, as follows:

    +
      +
    1. 6.22:12 +If the capturing expression is subject to keyword move, then +the capture mode is by value capture.

    2. +
    3. 6.22:13 +Otherwise the capture mode is determined based on the following +precedence:

      +
        +
      1. 6.22:14 +By immutable reference capture.

      2. +
      3. 6.22:15 +By unique immutable reference capture mode, if the +capture target is a mutable reference that is being modified.

      4. +
      5. 6.22:16 +By mutable reference capture mode.

      6. +
      7. 6.22:17 +By value capture.

      8. +
      +
    4. +
    +

    6.22:18 +A tool selects the first capture mode that is compatible with the use of +the capture target.

    +
    +
    +

    6.23. Arithmetic Overflow

    +

    6.23:1 +An arithmetic overflow occurs when an arithmetic expression or a +negation expression computes a value of a scalar type that lies +outside of the range of valid values for the scalar type.

    +

    Dynamic Semantics

    +

    6.23:2 +There are two allowed behaviors for arithmetic overflow:

    +
      +
    1. 6.23:3 +Evaluation of the expression may result in a panic.

    2. +
    3. 6.23:4 +The resulting value of the expression may be truncated, discarding +the most significant bits that do not fit in the target type.

    4. +
    +
    +
    + + +
    +
    +

    + Copyright © The Ferrocene Developers. + + Contents released under the MIT or Apache 2.0 license. + +

    + + +

    Built from commit: 2d7de7f91004615d8c7b4fb2416718fb7bb4f769

    + +

    Ferrocene is a registered trademark of Critical Section GmbH.

    +
    +
    +
    + + + \ No newline at end of file diff --git a/ffi.html b/ffi.html new file mode 100644 index 00000000..c066ff16 --- /dev/null +++ b/ffi.html @@ -0,0 +1,285 @@ + + + + + + + + + + + + 21. FFI — Ferrocene Language Specification + + + + + + + + + + + + + + +
    + +
    +
    + +
    +

    21. FFI

    +

    Legality Rules

    +

    21:1 +Foreign Function Interface or FFI employs ABI, +attributes, external blocks, external functions, linkage, +and type layout to interface a Rust program with foreign code.

    +

    21:2 +The following attributes affect FFI:

    + +
    +

    21.1. ABI

    +

    Syntax

    +
    AbiSpecification ::=
    +    extern AbiKind?
    +
    +AbiKind ::=
    +    RawStringLiteral
    +  | StringLiteral
    +

    Legality Rules

    +

    21.1:1 +Application Binary Interface or ABI is a set of conventions that +dictate how data and computation cross language boundaries.

    +

    21.1:2 +The ABI kind indicates the ABI of a construct.

    +

    21.1:3 +The following ABIs are supported:

    +
      +
    • 21.1:4 +extern "C" - The default ABI of C code, referred to as +extern C ABI.

    • +
    • 21.1:5 +extern "C-unwind" - The same as extern "C" with the addition that +unwinding across FFI is permitted.

    • +
    • 21.1:6 +extern "Rust" - The default ABI of a Rust program, referred to as +Rust ABI.

    • +
    • 21.1:7 +extern "system" - The operating system-dependent ABI, referred to as +external system ABI.

    • +
    +

    21.1:8 +A function without an explicit ABI has implicit Rust ABI, unless +it appears within an external block.

    +

    21.1:9 +A function with an ABI but without a specified ABI kind has +implicit extern C ABI.

    +

    Implementation Permissions

    +

    21.1:10 +A tool is allowed to specify additional ABIs. These ABIs may +include, but may not be limited to, the following:

    +
      +
    • 21.1:11 +extern "aapcs" - The ARM ABI.

    • +
    • 21.1:12 +extern "cdecl" - The x86_32 ABI of C code.

    • +
    • 21.1:13 +extern "fastcall" - The fastcall ABI that corresponds to MSVC’s +__fastcall and GCC and clang’s __attribute__((fastcall)).

    • +
    • 21.1:14 +extern "stdcall" - The x86_32 ABI of the Win32 API.

    • +
    • 21.1:15 +extern "sysv64" - The x86_64 non-Windows ABI of C code.

    • +
    • 21.1:16 +extern "vectorcall" - The vectorcall ABI that corresponds to +MSVC’s __vectorcall and clang’s __attribute__((vectorcall)).

    • +
    • 21.1:17 +extern "win64" - The x86_64 Windows ABI of C code.

    • +
    +

    Undefined Behavior

    +

    21.1:18 +It is undefined behavior when a foreign exception crosses a +foreign function interface boundary with an ABI other than +extern "C-unwind".

    +

    Examples

    +
    extern
    +extern "C"
    +
    +
    +
    +
    +

    21.2. External Blocks

    +

    Syntax

    +
    ExternalBlock ::=
    +    unsafe? extern AbiKind? {
    +      InnerAttributeOrDoc*
    +      ExternItem*
    +    }
    +
    +ExternItem ::=
    +    OuterAttributeOrDoc* (ExternalItemWithVisibility | TerminatedMacroInvocation)
    +
    +ExternalItemWithVisibility ::=
    +    VisibilityModifier? (
    +        FunctionDeclaration
    +      | StaticDeclaration
    +    )
    +

    Legality Rules

    +

    21.2:1 +An external block is a construct that provides the declarations of +foreign functions as unchecked imports.

    +

    21.2:2 +The ABI of a extern block is determined as follows:

    + +

    21.2:5 +The unsafe keyword of an external block is rejected, but may +still be consumed by macros.

    +

    Examples

    +
    extern "C" {
    +    static MAX_LENGTH: size_t;
    +
    +    fn compress
    +        (input: *const u8,
    +         input_length: size_t,
    +         compressed: *mut u8,
    +         compressed_length: *mut size_t) -> c_int;
    +    fn log(msg: *const c_char, ...);
    +}
    +
    +
    +
    +
    +

    21.3. External Functions

    +

    Legality Rules

    +

    21.3:1 +An external function is an unchecked import of a foreign function.

    +

    21.3:2 +An external function shall be invoked from an unsafe context.

    +

    21.3:3 +An external function shall not specify a FunctionQualifierList.

    +

    21.3:4 +An external function inherits the ABI of its enclosing +external block.

    +

    21.3:5 +An external function shall not specify a GenericParameterList +containing constant parameters or type parameters.

    +

    21.3:6 +An external function shall not specify a FunctionBody.

    +

    21.3:7 +An external function shall not specify patterns other than +identifier patterns and underscore patterns.

    +

    21.3:8 +Only the last parameter FunctionParameter of an external function may +specify a FunctionParameterVariadicPart.

    +
    +
    +

    21.4. External Statics

    +

    Legality Rules

    +

    21.4:1 +An external static is an import of a foreign variable.

    +

    21.4:2 +An external static inherits the ABI of its enclosing +external block.

    +

    21.4:3 +An external static shall be referenced from an unsafe context.

    +

    21.4:4 +An external static shall not specify a static initializer.

    +

    Dynamic Semantics

    +

    21.4:5 +An immutable external static shall be initialized before Rust code +is executed.

    +
    +
    + + +
    +
    +

    + Copyright © The Ferrocene Developers. + + Contents released under the MIT or Apache 2.0 license. + +

    + + +

    Built from commit: 2d7de7f91004615d8c7b4fb2416718fb7bb4f769

    + +

    Ferrocene is a registered trademark of Critical Section GmbH.

    +
    +
    +
    + + + \ No newline at end of file diff --git a/functions.html b/functions.html new file mode 100644 index 00000000..ffc6306b --- /dev/null +++ b/functions.html @@ -0,0 +1,257 @@ + + + + + + + + + + + + 9. Functions — Ferrocene Language Specification + + + + + + + + + + + + + + +
    + +
    +
    + +
    +

    9. Functions

    +

    Syntax

    +
    FunctionDeclaration ::=
    +    FunctionQualifierList fn Name GenericParameterList? ( FunctionParameterList? ) ReturnType? WhereClause? (FunctionBody | ;)
    +
    +FunctionQualifierList ::=
    +    const? async? unsafe? AbiSpecification?
    +
    +FunctionParameterList ::=
    +    (FunctionParameter (, FunctionParameter)* ,?)
    +  | (SelfParameter (, FunctionParameter)* ,?)
    +
    +FunctionParameter ::=
    +    OuterAttributeOrDoc* (FunctionParameterPattern | FunctionParameterVariadicPart | TypeSpecification)
    +
    +FunctionParameterPattern ::=
    +    PatternWithoutAlternation (TypeAscription | (: FunctionParameterVariadicPart))
    +
    +FunctionParameterVariadicPart ::=
    +    ...
    +
    +ReturnType ::=
    +    -> TypeSpecification
    +
    +FunctionBody ::=
    +    BlockExpression
    +
    +SelfParameter ::=
    +    OuterAttributeOrDoc* (ShorthandSelf | TypedSelf)
    +
    +ShorthandSelf ::=
    +    (& LifetimeIndication?)? mut? self
    +
    +TypedSelf ::=
    +    mut? self TypeAscription
    +

    Legality Rules

    +

    9:1 +A function is a value of a function type that models a behavior.

    +

    9:2 +A function declares a unique function item type for itself.

    +

    9:3 +A function qualifier is a construct that determines the role of +a function.

    +

    9:4 +A function shall not be subject to both keyword async and +keyword const.

    +

    9:5 +A function parameter is a construct that yields a set of +bindings that bind matched input values to names at the +site of a call expression or a method call expression.

    +

    9:6 +A self parameter is a function parameter expressed by keyword +self.

    +

    9:7 +A function shall not specify a self parameter unless it is an +associated function.

    +

    9:8 +A function shall not specify a FunctionParameterVariadicPart unless +it is an external function.

    +

    9:9 +The pattern of a function parameter shall be an irrefutable +pattern.

    +

    9:10 +The bindings of all patterns of all function parameters of a function shall not shadow another.

    +

    9:11 +A return type is the type of the result a function, closure type or function pointer type returns.

    +

    9:12 +The return type of a function is determined as follows:

    + +

    9:15 +A function body is the block expression of a function.

    +

    9:16 +A function shall have a function body unless it is an +associated trait function or an external function.

    +

    9:17 +A function body denotes a control flow boundary.

    +

    9:18 +A function body of an async function denotes an +async control flow boundary.

    +

    9:19 +A function signature is a unique identification of a function +that encompasses of its function qualifiers, name, +generic parameters, function parameters, return type, and +where clause.

    +

    9:20 +A constant function is a function subject to keyword const.

    +

    9:21 +The function body of a constant function shall be a +constant expression.

    +

    9:22 +A constant function shall be callable from a constant context.

    +

    9:23 +An async function is a function subject to keyword async. An +async function of the form

    +
    async fn async_fn(param: &param_type) -> return_type {
    +    /* tail expression */
    +}
    +
    +
    +

    9:24 +is equivalent to function

    +
    fn async_fn<'a>(param: &'a param_type) -> impl Future<Output = return_type> + 'a {
    +    async move {
    +        /* tail expression */
    +    }
    +}
    +
    +
    +

    9:25 +An unsafe function is a function subject to keyword unsafe.

    +

    9:26 +The invocation of an unsafe function shall require unsafe context.

    +

    9:27 +A main function is a function that acts as an entry point into a +program. A main function is subject to the following restrictions:

    + +

    Examples

    +
    fn eucledian_distance(left: &Point, right: &Point) -> f64 {
    +    let x_delta_squared: f64 = (right.x - left.x).powi(2);
    +    let y_delta_squared: f64 = (right.y - left.y).powi(2);
    +
    +    (x_delta_squared + y_delta_squared).sqrt()
    +}
    +
    +fn main() {}
    +
    +
    +
    + + +
    +
    +

    + Copyright © The Ferrocene Developers. + + Contents released under the MIT or Apache 2.0 license. + +

    + + +

    Built from commit: 2d7de7f91004615d8c7b4fb2416718fb7bb4f769

    + +

    Ferrocene is a registered trademark of Critical Section GmbH.

    +
    +
    +
    + + + \ No newline at end of file diff --git a/general.html b/general.html new file mode 100644 index 00000000..d4134536 --- /dev/null +++ b/general.html @@ -0,0 +1,429 @@ + + + + + + + + + + + + 1. General — Ferrocene Language Specification + + + + + + + + + + + + + + +
    + +
    +
    + +
    +

    Note

    +

    The contents of this page are informational.

    +
    +
    +

    1. General

    +

    1:1 +This document is influenced by the Ada Reference Manual +Ada 202x edition, as well as the Rust Language Reference, the Rust +Guidebook, and the Rustonomicon.

    +

    1:2 +Parts of these documents have been copied, in whole or in part, in particular +but not limited to:

    +
      +
    • 1:3 +The outline and structure of the documents;

    • +
    • 1:4 +The title, outline, organization, and numbering of chapters;

    • +
    • 1:5 +The structure, formality, wording, and numbering of paragraphs;

    • +
    • 1:6 +The definitions and uses of terms;

    • +
    • 1:7 +The categories of syntactic and semantic rules.

    • +
    +

    1:8 +Consult Licenses for the relevant copyright notices and licenses.

    +
    +

    1.1. Scope

    +

    1.1:1 +This document specifies the form and meaning of programs written in the +programming language Rust, as implemented by the rustc compiler shipped +with Ferrocene. It documents the current understanding for the purposes of +compiler validation. As such, given any doubt, it prefers documenting behavior +of rustc as included in the associated Ferrocene release over claiming +correctness as a specification.

    +

    1.1:2 +This document is made available for contribution and review as it is useful +outside of the Ferrocene effort and can be a place of shared understanding. It +is not intended as a discussion ground for language evolution. It is also not +intended as a document enabling conformance between compilers.

    +

    1.1:3 +Contribution and review is managed by the Ferrocene project developers.

    +
    +

    1.1.1. Extent

    +

    1.1.1:1 +This document specifies:

    +
      +
    • 1.1.1:2 +The form of a program written in Rust;

    • +
    • 1.1.1:3 +The effect of translating and executing such a program;

    • +
    • 1.1.1:4 +The manner in which crates and modules may be combined to form +Rust programs;

    • +
    • 1.1.1:5 +The language-defined libraries that a conforming tool is required to supply;

    • +
    • 1.1.1:6 +The violations that a conforming tool is required to detect, and the effect of +attempting to translate or execute a program containing such violations;

    • +
    • 1.1.1:7 +The violations that a conforming tool is not required to detect.

    • +
    +

    1.1.1:8 +This document does not specify:

    +
      +
    • 1.1.1:9 +The means by which a Rust program is transformed into object code executable +by a processor;

    • +
    • 1.1.1:10 +The means by which translation or execution of Rust programs is invoked and +the executing units are controlled;

    • +
    • 1.1.1:11 +The size or speed of the object code, or the relative execution speed of +different language constructs;

    • +
    • 1.1.1:12 +The form or contents of any listings produced by a tool; in particular, the +form or contents of error or warning messages;

    • +
    • 1.1.1:13 +The effect of undefined behavior;

    • +
    • 1.1.1:14 +The size of a program or program unit that will exceed the capacity of a +conforming tool.

    • +
    +
    +
    +

    1.1.2. Structure

    +

    1.1.2:1 +This document contains 21 chapters, 2 appendices, and an index.

    +

    1.1.2:2 +The specification of the Rust language is separated into:

    + +

    1.1.2:6 +The specification is normative, except for the material in each of the items +listed below, which is informative:

    +
      +
    • 1.1.2:7 +Text under an “Examples” heading.

    • +
    • 1.1.2:8 +Each subchapter whose title starts with the word “Example” or “Examples”.

    • +
    +

    1.1.2:9 +The following appendices are informative:

    + +

    1.1.2:12 +Each chapter is divided into subchapters that have a common structure. Each +chapter and subchapter is then organized to include the following segments as is +relevant to the topic:

    +

    Syntax

    +

    1.1.2:13 +The syntax representation of a construct.

    +

    Legality Rules

    +

    1.1.2:14 +Compile-time rules and facts for each construct. A construct is legal +if it obeys all of the Legality Rules.

    +

    1.1.2:15 +Legality Rules are verified after macro expansion takes place.

    +

    Dynamic Semantics

    +

    1.1.2:16 +Run-time effects of each construct.

    +

    Undefined Behavior

    +

    1.1.2:17 +Situations that result in unbounded errors.

    +

    Implementation Requirements

    +

    1.1.2:18 +Additional requirements for conforming tools.

    +

    Examples

    +

    1.1.2:19 +Examples illustrating the possible forms of a construct. This material +is informative.

    +
    +
    +

    1.1.3. Conformity

    +

    Implementation Requirements

    +

    1.1.3:1 +A conforming tool shall:

    +
      +
    • 1.1.3:2 +Translate and correctly execute legal programs written in Rust, provided that +they are not so large as to exceed the capacity of the tool,

    • +
    • 1.1.3:3 +Identify all programs or program units that are so large as to exceed the +capacity of the tool (or raise an appropriate exception at run time),

    • +
    • 1.1.3:4 +Identify all programs or program units that contain errors whose detection is +required by this document,

    • +
    • 1.1.3:5 +Supply all language-defined library units required by this document,

    • +
    • 1.1.3:6 +Contain no variations except those explicitly permitted by this document, or +those that are impossible or impractical to avoid given the tool’s execution +environment,

    • +
    • 1.1.3:7 +Specify all such variations in the manner prescribed by this document.

    • +
    +

    1.1.3:8 +The external effect of the execution of a Rust program is defined in terms of +its interactions with its external environment. The following are defined as +external interactions:

    + +

    1.1.3:12 +A tool that conforms to this document shall produce for the execution of a given +Rust program a set of interactions with the external environment whose order and +timing are consistent with the definitions and requirements of this document for +the semantics of the given program.

    +

    1.1.3:13 +A tool that conforms to this document shall support each capability required by +the language as specified.

    +

    1.1.3:14 +A tool that conforms to this document may provide additional attributes +as long as their names are not the same as the names of built-in +attributes.

    +
    +
    +

    1.1.4. Method of Description and Syntax Notation

    +

    1.1.4:1 +The form of a Rust program is described by means of a context-free syntax +together with context-dependent requirements expressed by narrative rules.

    +

    1.1.4:2 +The meaning of a Rust program is described by means of narrative rules defining +both the effects of each construct and the composition rules for constructs.

    +

    1.1.4:3 +The context-free syntax of Rust is described using a simple variant of the +Backus-Naur form. In particular:

    +
      +
    • 1.1.4:4 +A monospaced font is used to denote Rust syntax.

    • +
    • 1.1.4:5 +Words in PascalCase font are used to denote a syntactic category, for example:

    • +
    +
    FloatExponent
    +
      +
    • 1.1.4:6 +Words in bold font are used to indicate literal words and keywords, +for example:

    • +
    +
    crate
    +proc_macro_derive
    +Self
    +tt
    +
      +
    • 1.1.4:7 +Characters in bold font are used to indicate literal characters and +literal punctuation, for example:

    • +
    +
    1
    +F
    +{
    +&&
    +>>=
    +
      +
    • 1.1.4:8 +A character preceded by \ (bold reverse solidus) is used to denote an +escaped character, for example:

    • +
    +
    \t
    +\\
    +
      +
    • 1.1.4:9 +A prefix followed by ? (question mark) is used to denote an optional +prefix, for example:

    • +
    +
    IntegerSuffix?
    +
      +
    • 1.1.4:10 +A prefix followed by * (asterisk) is used to denote zero or more +repetitions of the prefix, for example:

    • +
    +
    OuterAttributeOrDoc*
    +
      +
    • 1.1.4:11 +A prefix followed by + (plus sign) is used to denote one or more +repetitions of the prefix, for example:

    • +
    +
    MacroMatch+
    +
      +
    • 1.1.4:12 +A prefix followed by L-H is used to denote the number of repetitions of +the prefix within the range from L to H, inclusive. For example:

    • +
    +
    HexadecimalDigit1-6
    +
      +
    • 1.1.4:13 +[ ] (square brackets) indicate any character within, for example:

    • +
    +
    [8 a \r :]
    +
      +
    • 1.1.4:14 +~[ ] (square brackets preceded by tilde) indicate any character except the +characters within, for example:

    • +
    +
    ~[8 a \r :]
    +
      +
    • 1.1.4:15 +[ - ] indicates any character within the specified range, inclusive. For +example:

    • +
    +
    [a-f]
    +
      +
    • 1.1.4:16 +A | (vertical line) separates alternative items, for example:

    • +
    +
    self | Identifier | _
    +
      +
    • 1.1.4:17 +( ) (parentheses) are used to group items, for example:

    • +
    +
    (, ConfigurationPredicate)
    +
    +
    +
    +

    1.2. Versioning

    +

    1.2:1 +Ferrocene is a qualified compiler and this is the accompanying language +specification for the qualified version of the compiler. This document will +be updated with each qualification to accurately reflect the behavior of the +compiler qualified under that version of Ferrocene.

    +
    +
    +

    1.3. Definitions

    +

    1.3:1 +Terms are defined throughout this document, indicated by italic type. Terms +explicitly defined in this document are not to be presumed to refer implicitly +to similar terms defined elsewhere.

    +

    1.3:2 +Mathematical terms not defined in this document are to be interpreted according +to the CRC Concise Encyclopedia of Mathematics, Second Edition.

    +

    1.3:3 +Other terms not defined in this document are to be interpreted according to the +Webster’s Third New International Dictionary of the English Language.

    +

    1.3:4 +The definitions of terms are available in Glossary.

    +

    1.3:5 +A rule is a requirement imposed on the programmer, stated in normative +language such as “shall”, “shall not”, “must”, “must not”, except for text +under Implementation Requirements heading.

    +

    1.3:6 +A fact is a requirement imposed on a conforming tool, stated in informative +language such as “is”, “is not”, “can”, “cannot”.

    +
    +
    + + +
    +
    +

    + Copyright © The Ferrocene Developers. + + Contents released under the MIT or Apache 2.0 license. + +

    + + +

    Built from commit: 2d7de7f91004615d8c7b4fb2416718fb7bb4f769

    + +

    Ferrocene is a registered trademark of Critical Section GmbH.

    +
    +
    +
    + + + \ No newline at end of file diff --git a/generics.html b/generics.html new file mode 100644 index 00000000..ff7aeff8 --- /dev/null +++ b/generics.html @@ -0,0 +1,465 @@ + + + + + + + + + + + + 12. Generics — Ferrocene Language Specification + + + + + + + + + + + + + + +
    + +
    +
    + +
    +

    12. Generics

    +
    +

    12.1. Generic Parameters

    +

    Syntax

    +
    GenericParameterList ::=
    +    < (GenericParameter (, GenericParameter)* ,?)? >
    +
    +GenericParameter ::=
    +    OuterAttributeOrDoc* (
    +        ConstantParameter
    +      | LifetimeParameter
    +      | TypeParameter
    +    )
    +
    +ConstantParameter ::=
    +   const Name TypeAscription (= ConstantParameterInitializer)?
    +
    +ConstantParameterInitializer ::=
    +    BlockExpression
    +  | Identifier
    +  | -? LiteralExpression
    +
    +LifetimeParameter ::=
    +    Lifetime (: LifetimeIndicationList)?
    +
    +TypeParameter ::=
    +    Name (: TypeBoundList?)? (= TypeParameterInitializer)?
    +
    +TypeParameterInitializer ::=
    +    TypeSpecification
    +

    Legality Rules

    +

    12.1:1 +A generic parameter is a placeholder for a constant, a lifetime, +or a type, whose constant, lifetime, or type is supplied +statically by a generic argument.

    +

    12.1:2 +All LifetimeParameters in a GenericParameterList shall precede all +ConstantParameters and TypeParameters.

    +

    12.1:3 +A generic enum is an enum with generic parameters.

    +

    12.1:4 +A generic function is a function with generic parameters.

    +

    12.1:5 +A generic implementation is an implementation with +generic parameters.

    +

    12.1:6 +A generic struct is a struct with generic parameters.

    +

    12.1:7 +A generic trait is a trait with generic parameters.

    +

    12.1:8 +A generic type alias is a type alias with generic parameters.

    +

    12.1:9 +A generic union is a union with generic parameters.

    +

    12.1:10 +A constant parameter is a generic parameter for a constant.

    +

    12.1:11 +A constant parameter initializer is a construct that provides the +default value of its related constant parameter.

    +

    12.1:12 +A constant parameter initializer shall be a constant expression.

    +

    12.1:13 +It is a static error to use a generic parameter in the +discriminant initializer of an enum variant.

    +

    12.1:14 +A lifetime parameter is a generic parameter for a lifetime.

    +

    12.1:15 +A lifetime parameter shall not be used within a constant context, +except for the 'static lifetime.

    +

    12.1:16 +A type parameter is a generic parameter for a type.

    +

    12.1:17 +A type parameter initializer is a construct that provides the +default value of its related type parameter.

    +

    12.1:18 +The type of the type parameter initializer of a type parameter +shall satisfy the trait bounds of the type parameter.

    +

    12.1:19 +A generic enum shall use all of its type parameters and +lifetime parameters at least once in at least one of its +enum variants.

    +

    12.1:20 +A generic struct shall use all of its type parameters and +lifetime parameters at least once in at least one of its fields.

    +

    12.1:21 +A generic union shall use all of its type parameters and +lifetime parameters at least once in at least one of its fields.

    +

    12.1:22 +A generic parameter is said to constrain an implementation if the +generic parameter appears at least once in one of the following:

    + +

    12.1:26 +It is a static error if a constant parameter or a type parameter of +an implementation does not constrain the implementation.

    +

    12.1:27 +It is a static error if a lifetime parameter of an implementation +is used in an associated type without constraining the +implementation.

    +

    12.1:28 +The type of a constant parameter shall be a scalar type.

    +

    12.1:29 +A constant parameter shall be used in the following contexts:

    + +

    12.1:35 +A type parameter has an implicit core::marker::Sized bound, +unless an opt-out trait bound for the core::marker::Sized trait +is present.

    +

    12.1:36 +A type parameter of an abstract data type has implicit +lifetime bounds depending on its usage in the fields of the +abstract data type as follows:

    + +

    12.1:39 +A type parameter of a function has implicit lifetime bounds +depending on its usages in the function parameters and return type +as follows:

    + +

    12.1:42 +A generic parameter with a bound of the form

    +
    <X: Bound>
    +
    +
    +

    12.1:43 +is equivalent to the generic parameter without the bound and a +where clause of the following form:

    +
    where X: Bound
    +
    +
    +

    Examples

    +
    struct Array<T, const N: usize>([T; N])
    +
    +fn generic_function<'a, T>() {}
    +
    +struct Reference<'a, T: 'a> {
    +    the_reference: &'a T
    +}
    +
    +
    +
    +
    +

    12.2. Where Clauses

    +

    Syntax

    +
    WhereClause ::=
    +    where WhereClausePredicateList
    +
    +WhereClausePredicateList ::=
    +    WhereClausePredicate (, WhereClausePredicate)* ,?
    +
    +WhereClausePredicate ::=
    +    LifetimeBoundPredicate
    +  | TypeBoundPredicate
    +
    +LifetimeBoundPredicate ::=
    +   LifetimeIndication : LifetimeIndicationList?
    +
    +TypeBoundPredicate ::=
    +   ForGenericParameterList? TypeSpecification : TypeBoundList?
    +

    Legality Rules

    +

    12.2:1 +A where clause is a construct that specifies bounds on +lifetime parameters and types that have +to hold for the construct subject to the where clause to be valid.

    +

    12.2:2 +A where clause predicate is either a lifetime bound predicate or a +type bound predicate.

    +

    12.2:3 +A lifetime bound predicate is a construct that specifies +lifetime bounds on a lifetime parameter.

    +

    12.2:4 +A type bound predicate is a construct that specifies +lifetime bounds and trait bounds on a type.

    +

    12.2:5 +A construct is valid when all of its where clause predicates hold +true for the supplied generic arguments.

    +

    12.2:6 +A trivial predicate is a where clause predicate that does not use +the generic parameters or higher-ranked trait bounds of the related +construct.

    +

    12.2:7 +It is a static error to create a trivial predicate that does not hold.

    +

    Examples

    +
    struct Clause<T> where T: Iterator {
    +    field: T
    +}
    +
    +
    +
    +
    +

    12.3. Generic Arguments

    +

    Syntax

    +
    GenericArgumentList ::=
    +    < ( GenericArgument (, GenericArgument)* ,? )? >
    +
    +GenericArgument ::=
    +    BindingArgument
    +  | ConstantArgument
    +  | LifetimeArgument
    +  | TypeArgument
    +
    +BindingArgument ::=
    +    Identifier = TypeSpecification
    +
    +ConstantArgument ::=
    +    BlockExpression
    +  | -? LiteralExpression
    +  | Identifier
    +
    +LifetimeArgument ::=
    +    LifetimeIndication
    +
    +TypeArgument ::=
    +    TypeSpecification
    +

    Legality Rules

    +

    12.3:1 +A generic argument supplies a static input for an +associated trait type or a generic parameter.

    +

    12.3:2 +A BindingArgument shall follow ConstantArguments, +LifetimeArguments, and TypeArguments in a +GenericArgumentList.

    +

    12.3:3 +A LifetimeArgument shall precede BindingArguments, +ConstantArguments, and TypeArguments in a +GenericArgumentList.

    +

    12.3:4 +A binding argument is a generic argument that supplies the type +of an associated trait type.

    +

    12.3:5 +A constant argument is a generic argument that supplies the +value of a constant parameter.

    +

    12.3:6 +A constant argument may only appear as a single segment +path expression, optionally encapsulated in a block expression, within +an array repetition constructor or a type.

    +

    12.3:7 +A lifetime argument is a generic argument that supplies the +lifetime of a lifetime parameter.

    +

    12.3:8 +A type argument is a generic argument that supplies the type of +a type parameter.

    +

    12.3:9 +Generic arguments are subject to generic conformance.

    +

    Examples

    +
    trait Trait {
    +    type Assoc;
    +}
    +
    +
    +

    12.3:10 +The following is a generic function with a binding argument.

    +
    fn func<'lifetime, T, const C: usize>() where T: Trait<Assoc = usize> {}
    +
    +
    +

    12.3:11 +The following are generic arguments for func.

    +
    func::<'static, u32, 0>();
    +
    +
    +

    12.4. Generic Conformance

    +

    Legality Rules

    +

    12.4:1 +Generic conformance measures the compatibility between a set of +generic parameters and a set of generic arguments.

    +

    12.4:2 +A binding argument is conformant with an associated type when the +supplied type of the binding argument fulfills the required +trait bounds of the associated type.

    +

    12.4:3 +A constant argument is conformant with a constant parameter when +the types of the constant argument and the constant parameter +are unifiable.

    +

    12.4:4 +A lifetime argument is conformant with a lifetime parameter when it +outlives the lifetime specified by the lifetime parameter.

    +

    12.4:5 +A type argument is conformant with a type parameter when the +type of the type argument fulfills the required trait bounds +of the type parameter.

    +

    12.4:6 +Generic arguments are conformant with generic parameters when

    + +

    12.4:11 +Generic arguments shall be conformant.

    +

    12.4:12 +The value of a constant parameter is determined as follows:

    + +
    +
    + + +
    +
    +

    + Copyright © The Ferrocene Developers. + + Contents released under the MIT or Apache 2.0 license. + +

    + + +

    Built from commit: 2d7de7f91004615d8c7b4fb2416718fb7bb4f769

    + +

    Ferrocene is a registered trademark of Critical Section GmbH.

    +
    +
    +
    + + + \ No newline at end of file diff --git a/genindex.html b/genindex.html new file mode 100644 index 00000000..cabc2887 --- /dev/null +++ b/genindex.html @@ -0,0 +1,109 @@ + + + + + + + + + + + Index — Ferrocene Language Specification + + + + + + + + + + + + +
    + +
    +
    + + +

    Index

    + +
    + +
    + + +
    +
    +

    + Copyright © The Ferrocene Developers. + + Contents released under the MIT or Apache 2.0 license. + +

    + + +

    Built from commit: 2d7de7f91004615d8c7b4fb2416718fb7bb4f769

    + +

    Ferrocene is a registered trademark of Critical Section GmbH.

    +
    +
    +
    + + + \ No newline at end of file diff --git a/glossary.html b/glossary.html new file mode 100644 index 00000000..021e1c1a --- /dev/null +++ b/glossary.html @@ -0,0 +1,5158 @@ + + + + + + + + + + + + B. Glossary — Ferrocene Language Specification + + + + + + + + + + + + + + +
    + +
    +
    + +
    +

    Note

    +

    The contents of this page are informational.

    +
    +
    +

    B. Glossary

    +
    +

    B.1. ABI

    +

    B.1:1 +For ABI, see Application Binary Interface.

    +
    +
    +

    B.2. ABI clobber

    +

    B.2:1 +An ABI clobber is an argument to macro core::arch::asm which +indicates that the values of selected registers might be +overwritten during the execution of an assembly code block.

    +

    B.2:2 +See AbiClobber.

    +
    +
    +

    B.3. ABI kind

    +

    B.3:1 +The ABI kind indicates the ABI of a construct.

    +

    B.3:2 +See AbiKind.

    +
    +
    +

    B.4. abort

    +

    B.4:1 +Abort is the immediate termination of a program.

    +
    +
    +

    B.5. abstract data type

    +

    B.5:1 +An abstract data type is a collection of other types.

    +
    +
    +

    B.6. active attribute

    +

    B.6:1 +An active attribute is an attribute that is removed from the +item it decorates.

    +
    +
    +

    B.7. addition assignment

    +

    B.7:1 +For addition assignment, see addition assignment expression.

    +
    +
    +

    B.8. addition assignment expression

    +

    B.8:1 +An addition assignment expression is a +compound assignment expression that uses addition.

    +

    B.8:2 +See AdditionAssignmentExpression.

    +
    +
    +

    B.9. addition expression

    +

    B.9:1 +An addition expression is an arithmetic expression that uses +addition.

    +

    B.9:2 +See AdditionExpression.

    +
    +
    +

    B.10. adjusted call operand

    +

    B.10:1 +An adjusted call operand is a call operand with possible +auto dereferencing adjustments.

    +
    +
    +

    B.11. alignment

    +

    B.11:1 +The alignment of a value specifies which addresses are valid for +storing the value.

    +
    +
    +

    B.12. all configuration predicate

    +

    B.12:1 +An all configuration predicate is a configuration predicate that +models existential quantifier ALL.

    +

    B.12:2 +See ConfigurationPredicateAll.

    +
    +
    +

    B.13. anonymous loop expression

    +

    B.13:1 +An anonymous loop expression is a loop expression without a +label.

    +
    +
    +

    B.14. anonymous return type

    +

    B.14:1 +An anonymous return type is an impl trait type ascribed to a +function return type.

    +
    +
    +

    B.15. anonymous type parameter

    +

    B.15:1 +An anonymous type parameter is an impl trait type ascribed to a +function parameter.

    +
    +
    +

    B.16. any configuration predicate

    +

    B.16:1 +An any configuration predicate is a configuration predicate that +models existential quantifier ANY.

    +

    B.16:2 +See ConfigurationPredicateAny.

    +
    +
    +

    B.17. Application Binary Interface

    +

    B.17:1 +Application Binary Interface is a set of conventions that dictate how +data and computation cross language boundaries.

    +

    B.17:2 +See AbiSpecification.

    +
    +
    +

    B.18. argument operand

    +

    B.18:1 +An argument operand is an operand which is used as an argument in a +call expression or a method call expression.

    +
    +
    +

    B.19. arithmetic expression

    +

    B.19:1 +An arithmetic expression is an expression that computes a value +from two operands using arithmetic.

    +

    B.19:2 +See ArithmeticExpression.

    +
    +
    +

    B.20. arithmetic operator

    +

    B.20:1 +An arithmetic operator is the operator of an arithmetic expression.

    +
    +
    +

    B.21. arithmetic overflow

    +

    B.21:1 +An arithmetic overflow occurs if an arithmetic expression or a +negation expression computes a value of a scalar type that lies +outside of the range of valid values for the scalar type.

    +
    +
    +

    B.22. arity

    +

    B.22:1 +An arity is the number of tuple fields in a tuple type.

    +
    +
    +

    B.23. array

    +

    B.23:1 +An array is a value of an array type.

    +
    +
    +

    B.24. array element constructor

    +

    B.24:1 +An array element constructor is an array expression that lists all +elements of the array being constructed.

    +

    B.24:2 +See ArrayElementConstructor.

    +
    +
    +

    B.25. array expression

    +

    B.25:1 +An array expression is an expression that constructs an array.

    +

    B.25:2 +See ArrayExpression.

    +
    +
    +

    B.26. array repetition constructor

    +

    B.26:1 +An array repetition constructor is an array expression that +specifies how many times an element is repeated in the array being +constructed.

    +

    B.26:2 +See ArrayRepetitionConstructor.

    +
    +
    +

    B.27. array type

    +

    B.27:1 +An array type is a sequence type that represents a fixed sequence of +elements.

    +

    B.27:2 +See ArrayTypeSpecification.

    +
    +
    +

    B.28. assembly code block

    +

    B.28:1 +An assembly code block is a sequence of assembly instructions.

    +

    B.28:2 +See AssemblyCodeBlock.

    +
    +
    +

    B.29. assembly directive

    +

    B.29:1 +An assembly directive is a request to the assembler to perform a +particular action or change a setting.

    +
    +
    +

    B.30. assembly instruction

    +

    B.30:1 +An assembly instruction is a string literal that represents a +low-level assembly operation or an assembly directive.

    +

    B.30:2 +See AssemblyInstruction.

    +
    +
    +

    B.31. assembly option

    +

    B.31:1 +An assembly option is used to specify a characteristic of or a restriction +on the related assembly code block.

    +

    B.31:2 +See AssemblyOption.

    +
    +
    +

    B.32. assigned operand

    +

    B.32:1 +An assigned operand is the target operand of a +compound assignment expression.

    +

    B.32:2 +See AssignedOperand.

    +
    +
    +

    B.33. assignee expression

    +

    B.33:1 +An assignee expression is an expression that appears as the +left operand of an assignment expression.

    +
    +
    +

    B.34. assignee operand

    +

    B.34:1 +An assignee operand is the target operand of an +assignment expression.

    +

    B.34:2 +See AssigneeOperand.

    +
    +
    +

    B.35. assignment

    +

    B.35:1 +See assignment expression.

    +
    +
    +

    B.36. assignment expression

    +

    B.36:1 +An assignment expression is an expression that assigns the +value of a value operand to an assignee operand.

    +

    B.36:2 +See AssignmentExpression.

    +
    +
    +

    B.37. associated constant

    +

    B.37:1 +An associated constant is a constant that appears as an +associated item.

    +
    +
    +

    B.38. associated function

    +

    B.38:1 +An associated function is a function that appears as an +associated item.

    +
    +
    +

    B.39. associated implementation constant

    +

    B.39:1 +An associated implementation constant is an associated constant that +appears within an implementation.

    +
    +
    +

    B.40. associated implementation function

    +

    B.40:1 +An associated implementation function is an associated function that +appears within an implementation.

    +
    +
    +

    B.41. associated implementation type

    +

    B.41:1 +An associated implementation type is an associated type that appears +within an implementation.

    +
    +
    +

    B.42. associated item

    +

    B.42:1 +An associated item is an item that appears within an +implementation or a trait.

    +

    B.42:2 +See AssociatedItem.

    +
    +
    +

    B.43. associated trait constant

    +

    B.43:1 +An associated trait constant is an associated constant that appears +within a trait.

    +
    +
    +

    B.44. associated trait function

    +

    B.44:1 +An associated trait function is an associated function that appears +within a trait.

    +
    +
    +

    B.45. associated trait implementation item

    +

    B.45:1 +An associated trait implementation item is an associated item that +appears within a trait implementation.

    +
    +
    +

    B.46. associated trait item

    +

    B.46:1 +An associated trait item is an associated item that appears +within a trait.

    +
    +
    +

    B.47. associated trait type

    +

    B.47:1 +An associated trait type is an associated type that appears within +a trait.

    +
    +
    +

    B.48. associated type

    +

    B.48:1 +An associated type is a type alias that appears as an +associated item.

    +
    +
    +

    B.49. associated type projection

    +

    B.49:1 +An associated type projection is a qualified type path of the form +<type as trait>::associated_type, where type is a type, trait +is a qualifying trait, and associated type is an associated type.

    +
    +
    +

    B.50. associativity

    +

    B.50:1 +Associativity is the order by which operands are evaluated within +a single expression.

    +
    +
    +

    B.51. async block

    +

    B.51:1 +For async block, see async block expression.

    +
    +
    +

    B.52. async block expression

    +

    B.52:1 +An async block expression is a block expression that is specified +with keyword async and encapsulates behavior which is executed in +an asynchronous manner.

    +

    B.52:2 +See AsyncBlockExpression.

    +
    +
    +

    B.53. async control flow boundary

    +

    B.53:1 +An async control flow boundary is a control flow boundary that +additionally allows the suspension of execution via await expressions.

    +
    +
    +

    B.54. async function

    +

    B.54:1 +An async function is a function subject to keyword async.

    +
    +
    +

    B.55. atomic

    +

    B.55:1 +See atomic type.

    +
    +
    +

    B.56. atomic type

    +

    B.56:1 +An atomic type is a type defined in module +core::sync::atomic.

    +
    +
    +

    B.57. attribute

    +

    B.57:1 +An attribute is a general, free-form metadatum that is interpreted based +on its name, convention, language, and tool.

    +
    +
    +

    B.58. attribute content

    +

    B.58:1 +An attribute content is a construct that provides the content of +an attribute.

    +

    B.58:2 +See AttributeContent.

    +
    +
    +

    B.59. attribute macro

    +

    B.59:1 +An attribute macro is a procedural macro that consumes two streams +of tokens to produce a stream of tokens, and defines a new +outer attribute that can be attached to items.

    +
    +
    +

    B.60. auto trait

    +

    B.60:1 +An auto trait is a trait that is implicitly and automatically +implemented by a type when the types of its constituent fields +implement the trait.

    +
    +
    +

    B.61. await expression

    +

    B.61:1 +An await expression is an expression that polls a future, +suspending the execution of the future until the future is ready.

    +

    B.61:2 +See AwaitExpression.

    +
    +
    +

    B.62. base initializer

    +

    B.62:1 +A base initializer is a construct that specifies an enum value, +a struct value, or a union value to be used as a base for +construction in a struct expression.

    +

    B.62:2 +See BaseInitializer.

    +
    +
    +

    B.63. basic assignment

    +

    B.63:1 +A basic assignment is an assignment expression that is not a +destructuring assignment.

    +
    +
    +

    B.64. binary crate

    +

    B.64:1 +A binary crate is a crate that contains a main function.

    +
    +
    +

    B.65. binary literal

    +

    B.65:1 +A binary literal is an integer literal in base 2.

    +

    B.65:2 +See BinaryLiteral.

    +
    +
    +

    B.66. binary operator

    +

    B.66:1 +A binary operator is an operator that operates on two operands.

    +
    +
    +

    B.67. binding

    +

    B.67:1 +A binding of a binding pattern binds a matched value to a +name.

    +

    B.67:2 +See Binding.

    +
    +
    +

    B.68. binding argument

    +

    B.68:1 +A binding argument is a generic argument that supplies the type +of an associated trait type.

    +
    +
    +

    B.69. binding mode

    +

    B.69:1 +Binding mode is the mechanism by which a matched value is bound to a +binding of a pattern.

    +
    +
    +

    B.70. binding pattern

    +

    B.70:1 +A binding pattern is either an identifier pattern or a +shorthand deconstructor.

    +
    +
    +

    B.71. binding scope

    +

    B.71:1 +A binding scope is a scope for bindings.

    +
    +
    +

    B.72. bit and assignment

    +

    B.72:1 +For bit and assignment, see bit and assignment expression.

    +
    +
    +

    B.73. bit and assignment expression

    +

    B.73:1 +A bit and assignment expression is a compound assignment expression +that uses bit and arithmetic.

    +

    B.73:2 +See BitAndAssignmentExpression.

    +
    +
    +

    B.74. bit and expression

    +

    B.74:1 +A bit and expression is a bit expression that uses bit and +arithmetic.

    +

    B.74:2 +See BitAndExpression.

    +
    +
    +

    B.75. bit expression

    +

    B.75:1 +A bit expression is an expression that computes a value from +two operands using bit arithmetic.

    +

    B.75:2 +See BitExpression.

    +
    +
    +

    B.76. bit or assignment

    +

    B.76:1 +For bit or assignment, see bit or assignment expression.

    +
    +
    +

    B.77. bit or assignment expression

    +

    B.77:1 +A bit or assignment expression is a compound assignment expression +that uses bit or arithmetic.

    +

    B.77:2 +See BitOrAssignmentExpression.

    +
    +
    +

    B.78. bit or expression

    +

    B.78:1 +A bit or expression is a bit expression that uses bit or arithmetic.

    +

    B.78:2 +See BitOrExpression.

    +
    +
    +

    B.79. bit xor assignment

    +

    B.79:1 +For bit xor assignment, see bit xor assignment expression.

    +
    +
    +

    B.80. bit xor assignment expression

    +

    B.80:1 +A bit xor assignment expression is a compound assignment expression +that uses bit exclusive or arithmetic.

    +

    B.80:2 +See BitXorAssignmentExpression.

    +
    +
    +

    B.81. bit xor expression

    +

    B.81:1 +A bit xor expression is a bit expression that uses bit exclusive or +arithmetic.

    +

    B.81:2 +See BitXorExpression.

    +
    +
    +

    B.82. block comment

    +

    B.82:1 +A block comment is a comment that spans one or more lines.

    +

    B.82:2 +See BlockComment.

    +
    +
    +

    B.83. block expression

    +

    B.83:1 +A block expression is an expression that sequences expressions and +statements.

    +

    B.83:2 +See BlockExpression.

    +
    +
    +

    B.84. bool

    +

    B.84:1 +bool is a type whose values denote the truth values of logic +and Boolean algebra.

    +
    +
    +

    B.85. boolean literal

    +

    B.85:1 +A boolean literal is a literal that denotes the truth values +of logic and Boolean algebra.

    +

    B.85:2 +See BooleanLiteral.

    +
    +
    +

    B.86. borrow

    +

    B.86:1 +A borrow is a reference produced by borrowing.

    +
    +
    +

    B.87. borrow expression

    +

    B.87:1 +A borrow expression is an expression that borrows the value +of its operand and creates a reference to the memory location of its +operand.

    +

    B.87:2 +See BorrowExpression.

    +
    +
    +

    B.88. borrowed

    +

    B.88:1 +A memory location is borrowed when a reference pointing to it is +active.

    +
    +
    +

    B.89. borrowing

    +

    B.89:1 +Borrowing is the process of temporarily associating a reference with +a value without transferring ownership permanently.

    +
    +
    +

    B.90. bound

    +

    B.90:1 +A bound imposes a constraint on a generic parameter by limiting the +set of possible generic substitutions.

    +

    B.90:2 +See TypeBound.

    +
    +
    +

    B.91. bound pattern

    +

    B.91:1 +A bound pattern is a pattern that imposes a constraint on a related +identifier pattern.

    +

    B.91:2 +See BoundPattern.

    +
    +
    +

    B.92. break expression

    +

    B.92:1 +A break expression is an expression that terminates a +loop expression or a named block expression.

    +

    B.92:2 +See BreakExpression.

    +
    +
    +

    B.93. break type

    +

    B.93:1 +Break type is the type of the operand of a +break expression.

    +
    +
    +

    B.94. break value

    +

    B.94:1 +Break value is the value of the operand of a +break expression.

    +
    +
    +

    B.95. built-in attribute

    +

    B.95:1 +A built-in attribute is a language-defined attribute.

    +

    B.95:2 +See InnerBuiltinAttribute, OuterBuiltinAttribute.

    +
    +
    +

    B.96. built-in trait

    +

    B.96:1 +A built-in trait is a language-defined trait.

    +
    +
    +

    B.97. byte literal

    +

    B.97:1 +A byte literal is a literal that denotes a fixed byte value.

    +

    B.97:2 +See ByteLiteral.

    +
    +
    +

    B.98. byte string literal

    +

    B.98:1 +A byte string literal is a literal that consists of multiple +AsciiCharacters.

    +

    B.98:2 +See ByteStringLiteral.

    +
    +
    +

    B.99. C

    +

    B.99:1 +C is the programming language described in the ISO/IEC 9899:2018 +International Standard.

    +
    +
    +

    B.100. C representation

    +

    B.100:1 +C representation is a type representation that lays out types +such that they are interoperable with the C language.

    +
    +
    +

    B.101. C signed int type

    +

    B.101:1 +C signed int type is the signed int type of the C language.

    +
    +
    +

    B.102. Call conformance

    +

    B.102:1 +Call conformance measures the compatibility between a set of +argument operands and a set if function parameters or +fields.

    +
    +
    +

    B.103. call expression

    +

    B.103:1 +A call expression is an expression that invokes a function or +constructs a tuple struct value or tuple enum variant value.

    +

    B.103:2 +See CallExpression.

    +
    +
    +

    B.104. call operand

    +

    B.104:1 +A call operand is the function being invoked or the +tuple struct value or tuple enum variant value being constructed by a +call expression.

    +

    B.104:2 +See CallOperand.

    +
    +
    +

    B.105. call resolution

    +

    B.105:1 +Call resolution is a kind of resolution that applies to a +call expression.

    +
    +
    +

    B.106. call site hygiene

    +

    B.106:1 +Call site hygiene is a type of hygiene which resolves to the +MacroInvocation site. Identifiers with call site hygiene can +reference the environment of the MacroRulesDeclaration, can reference the +environment of the MacroInvocation, and are considered unhygienic.

    +
    +
    +

    B.107. callee type

    +

    B.107:1 +A callee type is either a function item type, a +function pointer type, a tuple struct type, a tuple enum variant +or a type that implements any of the core::ops::Fn, +core::ops::FnMut, or core::ops::FnOnce traits.

    +
    +
    +

    B.108. capture mode

    +

    B.108:1 +Capture mode is the mechanism by which a capture target is captured.

    +
    +
    +

    B.109. capture target

    +

    B.109:1 +A capture target is either a binding or a field of a +binding.

    +
    +
    +

    B.110. capturing

    +

    B.110:1 +Capturing is the process of saving the capture targets of a +capturing expression's capturing environment.

    +
    +
    +

    B.111. capturing environment

    +

    B.111:1 +The capturing environment of a capturing expression consists of all +capture targets that are defined outside the capturing expression.

    +
    +
    +

    B.112. capturing expression

    +

    B.112:1 +A capturing expression is either an async block expression or a +closure expression.

    +
    +
    +

    B.113. cast

    +

    B.113:1 +Cast or casting is the process of changing the type of an +expression.

    +
    +
    +

    B.114. char

    +

    B.114:1 +char is a type whose values denote Unicode characters.

    +
    +
    +

    B.115. character literal

    +

    B.115:1 +A character literal is a literal that denotes a fixed Unicode +character.

    +

    B.115:2 +See CharacterLiteral.

    +
    +
    +

    B.116. closure body

    +

    B.116:1 +A closure body is a construct that represents the executable portion +of a closure expression.

    +

    B.116:2 +See ClosureBody, ClosureBodyWithReturnType.

    +
    +
    +

    B.117. closure expression

    +

    B.117:1 +A closure expression is an expression that defines a +closure type and constructs a value of that type.

    +

    B.117:2 +See ClosureExpression.

    +
    +
    +

    B.118. closure parameter

    +

    B.118:1 +A closure parameter is a construct that yields a set of +bindings that bind matched input values to names at the +site of a call expression or a method call expression.

    +

    B.118:2 +See ClosureParameter.

    +
    +
    +

    B.119. closure type

    +

    B.119:1 +A closure type is a unique anonymous function type that encapsulates +all capture targets of a closure expression.

    +
    +
    +

    B.120. code point

    +

    B.120:1 +In Unicode, a code point is a numeric value that maps to a +character.

    +
    +
    +

    B.121. comment

    +

    B.121:1 +A comment is a lexical element that acts as an annotation or an +explanation in program text.

    +

    B.121:2 +See Comment.

    +
    +
    +

    B.122. comparison expression

    +

    B.122:1 +A comparison expression is an expression that compares the +values of two operands.

    +

    B.122:2 +See ComparisonExpression.

    +
    +
    +

    B.123. compilation root

    +

    B.123:1 +A compilation root is an input to a compilation performed by a tool.

    +
    +
    +

    B.124. compound assignment

    +

    B.124:1 +For compound assignment, see compound assignment expression.

    +
    +
    +

    B.125. compound assignment expression

    +

    B.125:1 +A compound assignment expression is an expression that first computes +a value from two operands and then assigns the value to an +assigned operand.

    +

    B.125:2 +See CompoundAssignmentExpression.

    +
    +
    +

    B.126. concrete type

    +

    B.126:1 +A concrete type is a type described by a type specification.

    +
    +
    +

    B.127. conditional compilation

    +

    B.127:1 +Conditional compilation is the process of compiling +conditionally-compiled source code.

    +
    +
    +

    B.128. conditionally-compiled source code

    +

    B.128:1 +Conditionally-compiled source code is source code that may or may not be +considered a part of a Rust program depending on certain conditions.

    +
    +
    +

    B.129. configuration predicate

    +

    B.129:1 +A configuration predicate is a construct that evaluates statically +to either true or false, and controls conditional compilation.

    +

    B.129:2 +See ConfigurationPredicate.

    +
    +
    +

    B.130. constant

    +

    B.130:1 +A constant is an immutable value whose uses are substituted by the +value.

    +

    B.130:2 +See ConstantDeclaration.

    +
    +
    +

    B.131. constant argument

    +

    B.131:1 +A constant argument is a generic argument that supplies the +value of a constant parameter.

    +

    B.131:2 +See ConstantArgument.

    +
    +
    +

    B.132. constant context

    +

    B.132:1 +A constant context is a construct that requires a +constant expression.

    +
    +
    +

    B.133. constant expression

    +

    B.133:1 +A constant expression is an expression that can be evaluated +statically.

    +
    +
    +

    B.134. constant function

    +

    B.134:1 +A constant function is a function subject to keyword const.

    +
    +
    +

    B.135. constant initializer

    +

    B.135:1 +A constant initializer is a construct that provides the value +of its related constant.

    +

    B.135:2 +See ConstantInitializer.

    +
    +
    +

    B.136. constant parameter

    +

    B.136:1 +A constant parameter is a generic parameter for a constant.

    +

    B.136:2 +See ConstantParameter.

    +
    +
    +

    B.137. constant parameter initializer

    +

    B.137:1 +A constant parameter initializer is a construct that provides the +default :t:`value of its related constant parameter.

    +

    B.137:2 +See ConstantParameterInitializer.

    +
    +
    +

    B.138. constant promotion

    +

    B.138:1 +Constant promotion is the process of converting a value expression +into a constant.

    +
    +
    +

    B.139. constrain

    +

    B.139:1 +A generic parameter is said to constrain an implementation if +it makes the implementation's applicability more narrow.

    +
    +
    +

    B.140. construct

    +

    B.140:1 +A construct is a piece of program text that is an instance of a +syntactic category.

    +
    +
    +

    B.141. constructee

    +

    B.141:1 +A constructee indicates the enum variant, struct or union +whose value is being constructed by a struct expression.

    +
    +
    +

    B.142. container operand

    +

    B.142:1 +A container operand is an operand that indicates the value +whose field is selected in a field access expression.

    +

    B.142:2 +See ContainerOperand.

    +
    +
    +

    B.143. continue expression

    +

    B.143:1 +A continue expression is an expression that first terminates and +then restarts a loop expression.

    +

    B.143:2 +See ContinueExpression.

    +
    +
    +

    B.144. control flow boundary

    +

    B.144:1 +A control flow boundary is a construct that limits control flow from +returning beyond the construct, and acts as the target of control flow +returning operations.

    +
    +
    +

    B.145. copy type

    +

    B.145:1 +A copy type is a type that implements the +core::marker::Copy trait.

    +
    +
    +

    B.146. crate

    +

    B.146:1 +A crate is a unit of compilation and linking that contains a tree of +nested modules.

    +
    +
    +

    B.147. crate import

    +

    B.147:1 +A crate import specifies a dependency on an external crate.

    +

    B.147:2 +See ExternalCrateImport.

    +
    +
    +

    B.148. crate indication

    +

    B.148:1 +A crate indication is a construct that indicates a crate.

    +

    B.148:2 +See CrateIndication.

    +
    +
    +

    B.149. crate public modifier

    +

    B.149:1 +A crate public modifier is a visibility modifier that grants a +name public visibility within the current crate only.

    +

    B.149:2 +See CratePublicModifier.

    +
    +
    +

    B.150. crate root

    +

    B.150:1 +A crate root is an entry point into a crate.

    +
    +
    +

    B.151. crate root module

    +

    B.151:1 +A crate root module is the root of the nested module tree of a +crate.

    +
    +
    +

    B.152. dangling

    +

    B.152:1 +A value of an indirection type is dangling if it is either +null or not all of the bytes at the referred memory location are part of +the same allocation.

    +
    +
    +

    B.153. data race

    +

    B.153:1 +A data race is a scenario where two or more threads access a shared +memory location concurrently.

    +
    +
    +

    B.154. decimal literal

    +

    B.154:1 +A decimal literal is an integer literal in base 10.

    +

    B.154:2 +See DecimalLiteral.

    +
    +
    +

    B.155. declaration

    +

    B.155:1 +A declaration is a construct that introduces a name for an +entity.

    +
    +
    +

    B.156. declarative macro

    +

    B.156:1 +A declarative macro is a macro that associates a name with a +set of syntactic transformation rules.

    +

    B.156:2 +See MacroRulesDeclaration.

    +
    +
    +

    B.157. deconstructee

    +

    B.157:1 +A deconstructee indicates the enum variant or type that is +being deconstructed by a struct pattern.

    +

    B.157:2 +See Deconstructee.

    +
    +
    +

    B.158. default representation

    +

    B.158:1 +Default representation is a type representation that does not make +any guarantees about layout.

    +
    +
    +

    B.159. definition site hygiene

    +

    B.159:1 +Definition site hygiene is a type of hygiene which resolves to the +MacroRulesDeclaration site. Identifiers with +definition site hygiene cannot reference the environment of the +MacroRulesDeclaration, cannot be referenced by the environment of a +MacroInvocation, and are considered hygienic.

    +
    +
    +

    B.160. dereference

    +

    B.160:1 +A dereference is the memory location produced by evaluating a +dereference expression.

    +
    +
    +

    B.161. dereference expression

    +

    B.161:1 +A dereference expression is an expression that obtains the +pointed-to memory location of its operand.

    +

    B.161:2 +See DereferenceExpression.

    +
    +
    +

    B.162. dereference type

    +

    B.162:1 +A dereference type is either a reference type or a type that +implements the core::ops::Deref trait.

    +
    +
    +

    B.163. dereference type chain

    +

    B.163:1 +A dereference type chain is a sequence of dereference types.

    +
    +
    +

    B.164. derive macro

    +

    B.164:1 +A derive macro is a procedural macro that consumes a stream of +tokens and produces a stream of tokens, and is invoked via attribute +derive.

    +
    +
    +

    B.165. destruction

    +

    B.165:1 +Destruction is the process of recovering resources associated with a +value as it goes out of scope.

    +
    +
    +

    B.166. destructor

    +

    B.166:1 +A destructor is a function that is invoked immediately before the +destruction of a value of a drop type.

    +
    +
    +

    B.167. destructuring assignment

    +

    B.167:1 +A destructuring assignment is an assignment expression where +the assignee operand is either an array expression, a +struct expression, or a tuple expression.

    +
    +
    +

    B.168. direction modifier

    +

    B.168:1 +A direction modifier is a construct that indicates whether a +register argument initializes a register, assigns the value of a +register to an expression, or both.

    +

    B.168:2 +See DirectionModifier.

    +
    +
    +

    B.169. discriminant

    +

    B.169:1 +A discriminant is an opaque integer that identifies an enum variant.

    +
    +
    +

    B.170. discriminant initializer

    +

    B.170:1 +A discriminant initializer provides the value of a discriminant.

    +

    B.170:2 +See DiscriminantInitializer.

    +
    +
    +

    B.171. discriminant type

    +

    B.171:1 +A discriminant type is the type of a discriminant.

    +
    +
    +

    B.172. diverging expression

    +

    B.172:1 +A diverging expression is an expression whose evaluation causes +program flow to diverge from the normal evaluation order.

    +
    +
    +

    B.173. diverging type variable

    +

    B.173:1 +A diverging type variable is a type variable that can refer to any +type and originates from a diverging expression.

    +
    +
    +

    B.174. division assignment

    +

    B.174:1 +For division assignment, see division assignment expression.

    +
    +
    +

    B.175. division assignment expression

    +

    B.175:1 +A division assignment expression is a compound assignment expression +that uses division.

    +

    B.175:2 +See DivisionAssignmentExpression.

    +
    +
    +

    B.176. division expression

    +

    B.176:1 +A division expression is an arithmetic expression that uses division.

    +

    B.176:2 +See DivisionExpression.

    +
    +
    +

    B.177. doc comment

    +

    B.177:1 +A doc comment is a comment class that includes +inner block docs, inner line docs, outer block docs, +and outer line docs.

    +
    +
    +

    B.178. drop construct

    +

    B.178:1 +A drop construct is a construct that employs a drop scope.

    +
    +
    +

    B.179. drop order

    +

    B.179:1 +Drop order is the order by which values are dropped when a +drop scope is left.

    +
    +
    +

    B.180. drop scope

    +

    B.180:1 +A drop scope is a region of program text that governs the dropping +of values.

    +
    +
    +

    B.181. drop scope extension

    +

    B.181:1 +Drop scope extension is the process of extending a drop scope +associated with a temporary to prevent the premature dropping of the +temporary.

    +
    +
    +

    B.182. drop type

    +

    B.182:1 +A drop type is a type that implements the core::ops::Drop +trait or contains a field that has a destructor.

    +
    +
    +

    B.183. dropping

    +

    B.183:1 +Dropping a value is the act of invoking the destructor of the +related type.

    +
    +
    +

    B.184. dynamically sized type

    +

    B.184:1 +A dynamically sized type is a type that does not implement the +core::marker::Sized trait.

    +
    +
    +

    B.185. elaboration

    +

    B.185:1 +Elaboration is the process by which a declaration achieves its +runtime effects.

    +
    +
    +

    B.186. element type

    +

    B.186:1 +An element type is the type of the elements of an array type or +a slice type.

    +

    B.186:2 +See ElementType.

    +
    +
    +

    B.187. elided

    +

    B.187:1 +For elided, see elided lifetime.

    +
    +
    +

    B.188. elided lifetime

    +

    B.188:1 +An elided lifetime is either an unnamed lifetime or a lifetime +that has been explicitly omitted from a function signature or an +implementation.

    +
    +
    +

    B.189. else expression

    +

    B.189:1 +An else expression is an expression that represents either a +block expression, an if expression, or an if let expression.

    +

    B.189:2 +See ElseExpression.

    +
    +
    +

    B.190. empty statement

    +

    B.190:1 +An empty statement is a statement expressed as character 0x3B +(semicolon).

    +
    +
    +

    B.191. entity

    +

    B.191:1 +An entity is a construct that can be referred to within program +text, usually via a field access expression or a path.

    +
    +
    +

    B.192. enum

    +

    B.192:1 +An enum is an item that declares an enum type.

    +
    +
    +

    B.193. enum field

    +

    B.193:1 +An enum field is a field of an enum variant.

    +
    +
    +

    B.194. enum type

    +

    B.194:1 +An enum type is an abstract data type that contains +enum variants.

    +

    B.194:2 +See EnumDeclaration.

    +
    +
    +

    B.195. enum value

    +

    B.195:1 +An enum value is a value of an enum type.

    +
    +
    +

    B.196. enum variant

    +

    B.196:1 +An enum variant is a construct that declares one of the +possible variations of an enum.

    +

    B.196:2 +See EnumVariant.

    +
    +
    +

    B.197. enum variant value

    +

    B.197:1 +An enum variant value is the enum value of the corresponding +enum of the enum variant.

    +
    +
    +

    B.198. equals expression

    +

    B.198:1 +An equals expression is a comparison expression that tests equality.

    +

    B.198:2 +See EqualsExpression.

    +
    +
    +

    B.199. error propagation expression

    +

    B.199:1 +An error propagation expression is an expression that either +evaluates to a value of its operand or returns a value to the next +control flow boundary.

    +

    B.199:2 +See ErrorPropagationExpression.

    +
    +
    +

    B.200. escaped character

    +

    B.200:1 +An escaped character is the textual representation for a character with +special meaning. An escaped character consists of character 0x5C (reverse +solidus), followed by the single character encoding of the special meaning +character. For example, \t is the escaped character for 0x09 (horizontal +tabulation).

    +
    +
    +

    B.201. evaluated

    +

    B.201:1 +See evaluation.

    +
    +
    +

    B.202. evaluation

    +

    B.202:1 +Evaluation is the process by which an expression achieves its +runtime effects.

    +
    +
    +

    B.203. executed

    +

    B.203:1 +See execution.

    +
    +
    +

    B.204. execution

    +

    B.204:1 +Execution is the process by which a statement achieves its runtime +effects.

    +
    +
    +

    B.205. explicit register argument

    +

    B.205:1 +An explicit register argument is a register argument that uses an +explicit register name.

    +
    +
    +

    B.206. explicit register name

    +

    B.206:1 +An explicit register name is a target-specific string that identifies +a register.

    +

    B.206:2 +See ExplicitRegisterName.

    +
    +
    +

    B.207. explicitly declared entity

    +

    B.207:1 +An explicitly declared entity is an entity that has a +declaration.

    +
    +
    +

    B.208. exported function

    +

    B.208:1 +An exported function is an export of a function.

    +
    +
    +

    B.209. exported static

    +

    B.209:1 +An exported static is an export of a static.

    +
    +
    +

    B.210. expression

    +

    B.210:1 +An expression is a construct that produces a value, and may +have side effects at run-time.

    +

    B.210:2 +See Expression.

    +
    +
    +

    B.211. expression statement

    +

    B.211:1 +An expression statement is an expression whose result is ignored.

    +

    B.211:2 +See ExpressionStatement.

    +
    +
    +

    B.212. expression-with-block

    +

    B.212:1 +An expression-with-block is an expression whose structure involves a +block expression.

    +

    B.212:2 +See ExpressionWithBlock.

    +
    +
    +

    B.213. expression-without-block

    +

    B.213:1 +An expression-without-block is an expression whose structure does +not involve a block expression.

    +

    B.213:2 +See ExpressionWithoutBlock.

    +
    +
    +

    B.214. external block

    +

    B.214:1 +An external block is a construct that provides the declarations of +foreign functions as unchecked imports.

    +

    B.214:2 +See ExternalBlock.

    +
    +
    +

    B.215. external function

    +

    B.215:1 +An external function is an unchecked import of a foreign function.

    +
    +
    +

    B.216. external function item type

    +

    B.216:1 +An external function item type is a function item type where the +related function is an external function.

    +
    +
    +

    B.217. external static

    +

    B.217:1 +An external static is an import of a foreign variable.

    +
    +
    +

    B.218. f32

    +

    B.218:1 +f32 is a floating-point type equivalent to the IEEE 754-2008 +binary32 type.

    +
    +
    +

    B.219. f64

    +

    B.219:1 +f64 is a floating-point type equivalent to the IEEE 754-2008 +binary64 type.

    +
    +
    +

    B.220. fat pointer

    +

    B.220:1 +A fat pointer is a value of a fat pointer type.

    +
    +
    +

    B.221. fat pointer type

    +

    B.221:1 +A fat pointer type is an indirection type that refers to a +dynamically sized type.

    +
    +
    +

    B.222. FFI

    +

    B.222:1 +For FFI, see Foreign Function Interface.

    +
    +
    +

    B.223. field

    +

    B.223:1 +A field is an element of an abstract data type.

    +
    +
    +

    B.224. field access expression

    +

    B.224:1 +A field access expression is an expression that accesses a +field of a value.

    +

    B.224:2 +See FieldAccessExpression.

    +
    +
    +

    B.225. field index

    +

    B.225:1 +A field index is the position of a field within a +tuple struct type or tuple enum variant. The first field has a +field index of zero, the Nth field has a field index of N-1.

    +

    B.225:2 +See FieldIndex.

    +
    +
    +

    B.226. field list

    +

    B.226:1 +A field list is a RecordStructFieldList or TupleStructFieldList.

    +
    +
    +

    B.227. field resolution

    +

    B.227:1 +Field resolution is a form of resolution that applies to a +field access expression.

    +
    +
    +

    B.228. field selector

    +

    B.228:1 +A field selector is a construct that selects the field to be +accessed in a field access expression.

    +

    B.228:2 +See FieldSelector.

    +
    +
    +

    B.229. final match arm

    +

    B.229:1 +A final match arm is the last match arm of a match expression.

    +

    B.229:2 +See FinalMatchArm.

    +
    +
    +

    B.230. fixed sized type

    +

    B.230:1 +A fixed sized type is a type that implements the +core::marker::Sized trait.

    +
    +
    +

    B.231. float literal

    +

    B.231:1 +A float literal is a numeric literal that denotes a fractional +number.

    +

    B.231:2 +See FloatLiteral.

    +
    +
    +

    B.232. float suffix

    +

    B.232:1 +A float suffix is a component of a float literal that specifies an +explicit floating-point type.

    +

    B.232:2 +See FloatSuffix.

    +
    +
    +

    B.233. floating-point type

    +

    B.233:1 +A floating-point type is a numeric type whose values denote +fractional numbers.

    +
    +
    +

    B.234. floating-point type variable

    +

    B.234:1 +A floating-point type variable is a type variable that can refer +only to floating-point types.

    +
    +
    +

    B.235. floating-point value

    +

    B.235:1 +A floating-point value is a value of a floating-point type.

    +
    +
    +

    B.236. for loop

    +

    B.236:1 +For for loop, see for loop expression.

    +
    +
    +

    B.237. for loop expression

    +

    B.237:1 +A for loop expression is a loop expression that continues to +evaluate its loop body as long as its subject expression yields a +value.

    +

    B.237:2 +See ForLoopExpression.

    +
    +
    +

    B.238. Foreign Function Interface

    +

    B.238:1 +Foreign Function Interface employs ABI, attributes, +external block, external functions, linkage, and type +layout to interface a Rust program with foreign code.

    +
    +
    +

    B.239. fragment specifier

    +

    B.239:1 +A fragment specifier is a construct that indicates the type of +a metavariable.

    +

    B.239:2 +See MacroFragmentSpecifier.

    +
    +
    +

    B.240. full range expression

    +

    B.240:1 +A full range expression is a range expression that covers the full +range of a type.

    +
    +
    +

    B.241. function

    +

    B.241:1 +A function is a value of a function type that models a behavior.

    +

    B.241:2 +See FunctionDeclaration.

    +
    +
    +

    B.242. function body

    +

    B.242:1 +A function body is the block expression of a function.

    +

    B.242:2 +See FunctionBody.

    +
    +
    +

    B.243. function item type

    +

    B.243:1 +A function item type is a unique anonymous function type that +identifies a function.

    +
    +
    +

    B.244. function lifetime elision

    +

    B.244:1 +Function lifetime elision is a form of lifetime elision that applies +to functions, function pointer type parameters and paths +resolving to one of the core::ops::Fn, core::ops::FnMut, and +core::ops::FnOnce traits.

    +
    +
    +

    B.245. function parameter

    +

    B.245:1 +A function parameter is a construct that yields a set of +bindings that bind matched input values to names at the +site of a call expression or a method call expression.

    +

    B.245:2 +See FunctionParameter.

    +
    +
    +

    B.246. function pointer type

    +

    B.246:1 +A function pointer type is an indirection type that refers to a +function.

    +

    B.246:2 +See FunctionPointerTypeSpecification.

    +
    +
    +

    B.247. function pointer type parameter

    +

    B.247:1 +A function pointer type parameter is a function parameter of a +function pointer type.

    +

    B.247:2 +See FunctionPointerTypeParameter.

    +
    +
    +

    B.248. function qualifier

    +

    B.248:1 +A function qualifier is a construct that determines the role of +a function.

    +

    B.248:2 +See FunctionQualifierList.

    +
    +
    +

    B.249. function signature

    +

    B.249:1 +A function signature is a unique identification of a function +that encompasses of its function qualifiers, name, +generic parameters, function parameters, return type, and +where clause.

    +
    +
    +

    B.250. function type

    +

    B.250:1 +A function type is either a closure type or a +function item type.

    +
    +
    +

    B.251. function-like macro

    +

    B.251:1 +A function-like macro is a procedural macro that consumes a stream +of tokens and produces a stream of tokens, and is invoked directly.

    +
    +
    +

    B.252. fundamental

    +

    B.252:1 +A trait or type is fundamental when its +implementation coherence rules are relaxed and the trait or type +is always treated as if it was a local trait or a local type.

    +
    +
    +

    B.253. future

    +

    B.253:1 +A future represents a value of a type that implements the +core::future::Future trait which may not have finished computing +yet.

    +
    +
    +

    B.254. future operand

    +

    B.254:1 +A future operand is an operand whose future is being awaited by +an await expression.

    +

    B.254:2 +See FutureOperand.

    +
    +
    +

    B.255. generic argument

    +

    B.255:1 +A generic argument supplies a static input for an +associated trait type or a generic parameter.

    +

    B.255:2 +See GenericArgumentList.

    +
    +
    +

    B.256. generic associated type

    +

    B.256:1 +A generic associated type is an associated type with +generic parameters.

    +
    +
    +

    B.257. generic conformance

    +

    B.257:1 +Generic conformance measures the compatibility between a set of +generic parameters and a set of generic arguments.

    +
    +
    +

    B.258. generic enum

    +

    B.258:1 +A generic enum is an enum with generic parameters.

    +
    +
    +

    B.259. generic function

    +

    B.259:1 +A generic function is a function with generic parameters.

    +
    +
    +

    B.260. generic implementation

    +

    B.260:1 +A generic implementation is an implementation with +generic parameters.

    +
    +
    +

    B.261. generic parameter

    +

    B.261:1 +A generic parameter is a placeholder for a constant, a +lifetime, or a type whose value is supplied statically by a +generic argument.

    +

    B.261:2 +See GenericParameterList.

    +
    +
    +

    B.262. generic parameter scope

    +

    B.262:1 +A generic parameter scope is a scope for generic parameters.

    +
    +
    +

    B.263. generic struct

    +

    B.263:1 +A generic struct is a struct with generic parameters.

    +
    +
    +

    B.264. generic substitution

    +

    B.264:1 +A generic substitution is the replacement of a generic parameter +with a generic argument.

    +
    +
    +

    B.265. generic trait

    +

    B.265:1 +A generic trait is a trait with generic parameters.

    +
    +
    +

    B.266. generic type

    +

    B.266:1 +A generic type is a type with a generic parameter.

    +
    +
    +

    B.267. generic type alias

    +

    B.267:1 +A generic type alias is a type alias with generic parameters.

    +
    +
    +

    B.268. generic union

    +

    B.268:1 +A generic union is a union with generic parameters.

    +
    +
    +

    B.269. glob import

    +

    B.269:1 +A glob import is a use import that brings all names with +public visibility prefixed by its path prefix into scope.

    +

    B.269:2 +See GlobImport.

    +
    +
    +

    B.270. global path

    +

    B.270:1 +A global path is a path that starts with namespace qualifier +::.

    +
    +
    +

    B.271. global type variable

    +

    B.271:1 +A global type variable is a type variable that can refer to any +type.

    +
    +
    +

    B.272. greater-than expression

    +

    B.272:1 +A greater-than expression is a comparison expression that tests for +a greater-than relationship.

    +

    B.272:2 +See GreaterThanExpression.

    +
    +
    +

    B.273. greater-than-or-equals expression

    +

    B.273:1 +A greater-than-or-equals expression is a comparison expression that +tests for a greater-than-or-equals relationship.

    +

    B.273:2 +See GreaterThanOrEqualsExpression.

    +
    +
    +

    B.274. half-open range pattern

    +

    B.274:1 +A half-open range pattern is a range pattern with only a +range pattern low bound.

    +

    B.274:2 +See HalfOpenRangePattern.

    +
    +
    +

    B.275. hexadecimal literal

    +

    B.275:1 +A hexadecimal literal is an integer literal in base 16.

    +

    B.275:2 +See HexadecimalLiteral.

    +
    +
    +

    B.276. higher-ranked trait bound

    +

    B.276:1 +A higher-ranked trait bound is a bound that specifies an infinite +list of bounds for all possible lifetimes.

    +

    B.276:2 +See ForGenericParameterList.

    +
    +
    +

    B.277. hygiene

    +

    B.277:1 +Hygiene is a property of macros and identifiers` that +appear within them, which aims to eliminate the syntactic interference between +a macro and its environment.

    +
    +
    +

    B.278. hygienic

    +

    B.278:1 +An identifier is hygienic when it has definition site hygiene.

    +
    +
    +

    B.279. i8

    +

    B.279:1 +i8 is a signed integer type whose values range from - (27) to 27 - 1, all inclusive.

    +
    +
    +

    B.280. i16

    +

    B.280:1 +i16 is a signed integer type whose values range from - (215) to 215 - 1, all inclusive.

    +
    +
    +

    B.281. i32

    +

    B.281:1 +i32 is a signed integer type whose values range from - (231) to 231 - 1, all inclusive.

    +
    +
    +

    B.282. i64

    +

    B.282:1 +i64 is a signed integer type whose values range from - (263) to 263 - 1, all inclusive.

    +
    +
    +

    B.283. i128

    +

    B.283:1 +i128 is a signed integer type whose values range from - (2127) to 2127 - 1, all inclusive.

    +
    +
    +

    B.284. identifier

    +

    B.284:1 +An identifier is a lexical element that refers to a name.

    +

    B.284:2 +See Identifier.

    +
    +
    +

    B.285. identifier pattern

    +

    B.285:1 +An identifier pattern is a pattern that binds the value it +matches to a binding.

    +

    B.285:2 +See IdentifierPattern.

    +
    +
    +

    B.286. if expression

    +

    B.286:1 +An if expression is an expression that evaluates either a +block expression or an else expression depending on the value +of its subject expression.

    +

    B.286:2 +See IfExpression.

    +
    +
    +

    B.287. if let expression

    +

    B.287:1 +An if let expression is an expression that evaluates either a +block expression or an else expression depending on whether its +pattern can be matched against its subject let expression.

    +

    B.287:2 +See IfLetExpression.

    +
    +
    +

    B.288. immutable

    +

    B.288:1 +A value is immutable when it cannot be modified.

    +
    +
    +

    B.289. immutable borrow

    +

    B.289:1 +An immutable borrow is an immutable reference produced by +borrowing.

    +
    +
    +

    B.290. immutable borrow expression

    +

    B.290:1 +An immutable borrow expression is a borrow expression that lacks +keyword mut.

    +
    +
    +

    B.291. immutable place expression

    +

    B.291:1 +An immutable place expression is a place expression whose memory +location cannot be modified.

    +
    +
    +

    B.292. immutable place expression context

    +

    B.292:1 +An immutable place expression context is a place expression context +whose memory location cannot be modified.

    +
    +
    +

    B.293. immutable raw pointer type

    +

    B.293:1 +An immutable raw pointer type is a raw pointer type subject to +keyword const.

    +
    +
    +

    B.294. immutable reference

    +

    B.294:1 +An immutable reference is a value of a shared reference type, +and prevents the mutation of its referent.

    +
    +
    +

    B.295. immutable static

    +

    B.295:1 +An immutable static is a static whose value cannot be modified.

    +
    +
    +

    B.296. immutable variable

    +

    B.296:1 +An immutable variable is a variable whose value cannot be +modified.

    +
    +
    +

    B.297. impl header lifetime elision

    +

    B.297:1 +Impl header lifetime elision is a form of lifetime elision that +applies to the implementing type and implemented trait (if any) of an +implementation.

    +
    +
    +

    B.298. impl trait type

    +

    B.298:1 +An impl trait type is a type that implements a trait, where the +type is known at compile time.

    +

    B.298:2 +See ImplTraitTypeSpecification, ImplTraitTypeSpecificationOneBound.

    +
    +
    +

    B.299. implementation

    +

    B.299:1 +An implementation is an item that supplements an +implementing type by extending its functionality.

    +

    B.299:2 +See Implementation.

    +
    +
    +

    B.300. implementation body

    +

    B.300:1 +An implementation body is a construct that encapsulates the +associated items, inner attributes, and +inner doc comments of an implementation.

    +

    B.300:2 +See ImplementationBody.

    +
    +
    +

    B.301. implementation coherence

    +

    B.301:1 +A trait implementation exhibits implementation coherence when it is +valid and does not overlap with another trait implementation.

    +
    +
    +

    B.302. implementation conformance

    +

    B.302:1 +Implementation conformance measures the compatibility between a +trait implementation and the implemented trait.

    +
    +
    +

    B.303. implemented trait

    +

    B.303:1 +An implemented trait is a trait whose functionality has been +implemented by an implementing type.

    +

    B.303:2 +See ImplementedTrait.

    +
    +
    +

    B.304. implementing type

    +

    B.304:1 +An implementing type is the type that the associated items of +an implementation are associated with.

    +

    B.304:2 +See ImplementingType.

    +
    +
    +

    B.305. implicit borrow

    +

    B.305:1 +An implicit borrow is a borrow that is not present syntactically in +program text.

    +
    +
    +

    B.306. implicitly declared entity

    +

    B.306:1 +An implicitly declared entity is an entity that lacks an explicit +declaration.

    +
    +
    +

    B.307. implied bound

    +

    B.307:1 +An implied bound is a bound that is not expressed in syntax, but is +is the byproduct of relations between lifetime parameters and +function parameters, between lifetime parameters and a +return type, and between lifetime parameters and fields.

    +
    +
    +

    B.308. in scope

    +

    B.308:1 +A name is in scope when it can be referred to.

    +
    +
    +

    B.309. inclusive range pattern

    +

    B.309:1 +An inclusive range pattern is a range pattern with both a +range pattern low bound and a range pattern high bound.

    +

    B.309:2 +See InclusiveRangePattern.

    +
    +
    +

    B.310. incomplete associated constant

    +

    B.310:1 +An incomplete associated constant is an associated constant without +a constant initializer.

    +
    +
    +

    B.311. incomplete associated function

    +

    B.311:1 +An incomplete associated function is an associated function without +a function body.

    +
    +
    +

    B.312. incomplete associated type

    +

    B.312:1 +An incomplete associated type is an associated type without an +initialization type.

    +
    +
    +

    B.313. index expression

    +

    B.313:1 +An index expression is an expression that indexes into a value +of a type.

    +

    B.313:2 +See IndexExpression.

    +
    +
    +

    B.314. indexable type

    +

    B.314:1 +A indexable type is a type that implements the +core::ops::Index trait.

    +
    +
    +

    B.315. indexed deconstructor

    +

    B.315:1 +An indexed deconstructor is a construct that matches the position of +a tuple field.

    +

    B.315:2 +See IndexedDeconstructor.

    +
    +
    +

    B.316. indexed field selector

    +

    B.316:1 +An indexed field selector is a field selector where the selected +field is indicated by an index.

    +

    B.316:2 +See IndexedFieldSelector.

    +
    +
    +

    B.317. indexed initializer

    +

    B.317:1 +An indexed initializer is a construct that specifies the index and +initial value of a field in a struct expression.

    +

    B.317:2 +See IndexedInitializer.

    +
    +
    +

    B.318. indexed operand

    +

    B.318:1 +An indexed operand is an operand which indicates the value of a +type implementing core::ops::Index being indexed into by an +index expression.

    +

    B.318:2 +See IndexedOperand.

    +
    +
    +

    B.319. indexing operand

    +

    B.319:1 +An indexing operand is an operand which specifies the index for the +indexed operand being indexed into by an index expression.

    +

    B.319:2 +See IndexingOperand.

    +
    +
    +

    B.320. indirection type

    +

    B.320:1 +An indirection type is a type whose values refer to memory +locations.

    +
    +
    +

    B.321. inert attribute

    +

    B.321:1 +An inert attribute is an attribute that remains with the item +it decorates.

    +
    +
    +

    B.322. inferred type

    +

    B.322:1 +An inferred type is a placeholder for a type deduced by +type inference.

    +

    B.322:2 +See InferredType.

    +
    +
    +

    B.323. infinite loop

    +

    B.323:1 +For infinite loop, see infinite loop expression.

    +
    +
    +

    B.324. infinite loop expression

    +

    B.324:1 +An infinite loop expression is a loop expression that continues to +evaluate its loop body indefinitely.

    +

    B.324:2 +See InfiniteLoopExpression.

    +
    +
    +

    B.325. inherent implementation

    +

    B.325:1 +An inherent implementation is an implementation that adds direct +functionality.

    +

    B.325:2 +See InherentImplementation.

    +
    +
    +

    B.326. initialization

    +

    B.326:1 +Initialization is the act of supplying an initial value to a +constant, a static, or a variable.

    +
    +
    +

    B.327. initialization expression

    +

    B.327:1 +An initialization expression is either a constant initializer or a +static initializer.

    +
    +
    +

    B.328. initialization type

    +

    B.328:1 +An initialization type is the type a type alias defines a +name for.

    +

    B.328:2 +See InitializationType.

    +
    +
    +

    B.329. inline assembly

    +

    B.329:1 +Inline assembly is hand-written assembly code that is integrated into a +Rust program.

    +
    +
    +

    B.330. inline module

    +

    B.330:1 +An inline module is a module with an InlineModuleSpecification.

    +

    B.330:2 +See InlineModuleSpecification.

    +
    +
    +

    B.331. inner attribute

    +

    B.331:1 +An inner attribute is an attribute that applies to an enclosing +item.

    +

    B.331:2 +See InnerAttribute.

    +
    +
    +

    B.332. inner block doc

    +

    B.332:1 +An inner block doc is a block comment that applies to an enclosing +non-comment construct.

    +

    B.332:2 +See InnerBlockDoc.

    +
    +
    +

    B.333. inner doc comment

    +

    B.333:1 +An inner doc comment is either an inner block doc or an +inner line doc.

    +
    +
    +

    B.334. inner line doc

    +

    B.334:1 +An inner line doc is a line comment that applies to an enclosing +non-comment construct.

    +

    B.334:2 +See InnerLineDoc.

    +
    +
    +

    B.335. input register

    +

    B.335:1 +An input register is a register whose register name is used in +a register argument subject to direction modifier in, inout, +or inlateout.

    +
    +
    +

    B.336. input register expression

    +

    B.336:1 +An input register expression is an expression that provides the +initial value of a register.

    +

    B.336:2 +See InputRegisterExpression.

    +
    +
    +

    B.337. input-output register expression

    +

    B.337:1 +An input-output register expression is a construct that specifies +both an input register expression and an output register expression.

    +

    B.337:2 +See InputOutputRegisterExpression.

    +
    +
    +

    B.338. integer literal

    +

    B.338:1 +An integer literal is a numeric literal that denotes a whole number.

    +

    B.338:2 +See IntegerLiteral.

    +
    +
    +

    B.339. integer suffix

    +

    B.339:1 +An integer suffix is a component of an integer literal that +specifies an explicit integer type.

    +

    B.339:2 +See IntegerSuffix.

    +
    +
    +

    B.340. integer type

    +

    B.340:1 +An integer type is a numeric type whose values denote whole +numbers.

    +
    +
    +

    B.341. integer type variable

    +

    B.341:1 +An integer type variable is a type variable that can refer only to +integer types.

    +
    +
    +

    B.342. interior mutability

    +

    B.342:1 +Interior mutability is a property of types whose values can +be modified through immutable references.

    +
    +
    +

    B.343. intermediate match arm

    +

    B.343:1 +An intermediate match arm is any non-final match arm of a +match expression.

    +

    B.343:2 +See IntermediateMatchArm.

    +
    +
    +

    B.344. irrefutable constant

    +

    B.344:1 +An irrefutable constant is a constant of a type that has at most +one value.

    +
    +
    +

    B.345. irrefutable pattern

    +

    B.345:1 +An irrefutable pattern is a pattern that always matches the +value it is being matched against.

    +
    +
    +

    B.346. isize

    +

    B.346:1 +isize is a signed integer type with the same number of bits as the +platform’s pointer type, and is at least 16-bits wide.

    +
    +
    +

    B.347. item

    +

    B.347:1 +An item is the most basic semantic element in program text. An item +defines the compile- and run-time semantics of a program.

    +

    B.347:2 +See Item.

    +
    +
    +

    B.348. item scope

    +

    B.348:1 +An item scope is a scope for items.

    +
    +
    +

    B.349. item statement

    +

    B.349:1 +An item statement is a statement that is expressed as an item.

    +
    +
    +

    B.350. iteration expression

    +

    B.350:1 +An iteration expression is an expression that provides the criterion +of a while loop expression.

    +

    B.350:2 +See IterationExpression.

    +
    +
    +

    B.351. keyword

    +

    B.351:1 +A keyword is a word in program text that has special meaning.

    +

    B.351:2 +See Keyword.

    +
    +
    +

    B.352. label

    +

    B.352:1 +A label is the name of a loop expression.

    +

    B.352:2 +See Label.

    +
    +
    +

    B.353. label indication

    +

    B.353:1 +A label indication is a construct that indicates a label.

    +

    B.353:2 +See LabelIndication.

    +
    +
    +

    B.354. label scope

    +

    B.354:1 +A label scope is a scope for labels.

    +
    +
    +

    B.355. layout

    +

    B.355:1 +Layout specifies the alignment, size, and the relative offset +of fields in a type.

    +
    +
    +

    B.356. lazy and expression

    +

    B.356:1 +A lazy and expression is a lazy boolean expression that uses short +circuit and arithmetic.

    +

    B.356:2 +See LazyAndExpression.

    +
    +
    +

    B.357. lazy boolean expression

    +

    B.357:1 +A lazy boolean expression is an expression that performs short +circuit Boolean arithmetic.

    +

    B.357:2 +See LazyBooleanExpression.

    +
    +
    +

    B.358. lazy or expression

    +

    B.358:1 +A lazy or expression is a lazy boolean expression that uses short +circuit or arithmetic.

    +

    B.358:2 +See LazyOrExpression.

    +
    +
    +

    B.359. left operand

    +

    B.359:1 +A left operand is an operand that appears on the left-hand side of a +binary operator.

    +

    B.359:2 +See LeftOperand.

    +
    +
    +

    B.360. less-than expression

    +

    B.360:1 +A less-than expression is a comparison expression that tests for a +less-than relationship.

    +

    B.360:2 +See LessThanExpression.

    +
    +
    +

    B.361. less-than-or-equals expression

    +

    B.361:1 +A less-than-or-equals expression is a comparison expression that +tests for a less-than-or-equals relationship.

    +

    B.361:2 +See LessThanOrEqualsExpression.

    +
    +
    +

    B.362. let initializer

    +

    B.362:1 +A let initializer is a construct that provides the value of +the bindings of the let statement using an expression, or +alternatively executes a block expression.

    +

    B.362:2 +See LetInitializer.

    +
    +
    +

    B.363. let statement

    +

    B.363:1 +A let statement is a statement that introduces new variables +given by the bindings produced by its pattern-without-alternation +that are optionally initialized to a value.

    +

    B.363:2 +See LetStatement.

    +
    +
    +

    B.364. lexical element

    +

    B.364:1 +A lexical element is the most basic syntactic element in program +text.

    +
    +
    +

    B.365. library crate

    +

    B.365:1 +A library crate is either a crate without a main function or a +crate subject to attribute no_main.

    +
    +
    +

    B.366. lifetime

    +

    B.366:1 +A lifetime specifies the expected longevity of a reference.

    +

    B.366:2 +See Lifetime.

    +
    +
    +

    B.367. lifetime argument

    +

    B.367:1 +A lifetime argument is a generic argument that supplies the +value of a lifetime parameter.

    +

    B.367:2 +See LifetimeArgument.

    +
    +
    +

    B.368. lifetime bound

    +

    B.368:1 +A lifetime bound is a bound that imposes a constraint on the +lifetimes of generic parameters.

    +

    B.368:2 +See LifetimeIndication.

    +
    +
    +

    B.369. lifetime bound predicate

    +

    B.369:1 +A lifetime bound predicate is a construct that specifies +lifetime bounds on a lifetime parameter.

    +

    B.369:2 +See LifetimeBoundPredicate.

    +
    +
    +

    B.370. lifetime elision

    +

    B.370:1 +Lifetime elision is a set of rules that automatically insert +lifetime parameters and/or lifetime arguments when they are +elided in the source code.

    +
    +
    +

    B.371. lifetime parameter

    +

    B.371:1 +A lifetime parameter is a generic parameter for a lifetime.

    +

    B.371:2 +See LifetimeParameter.

    +
    +
    +

    B.372. lifetime variable

    +

    B.372:1 +A lifetime variable is a placeholder used during type inference to +stand in for an undetermined lifetime of a type.

    +
    +
    +

    B.373. line

    +

    B.373:1 +A line is a sequence of zero or more characters followed by an end of +line.

    +
    +
    +

    B.374. line comment

    +

    B.374:1 +A line comment is a comment that spans exactly one line.

    +

    B.374:2 +See LineComment.

    +
    +
    +

    B.375. literal

    +

    B.375:1 +A literal is a fixed value in program text.

    +

    B.375:2 +See Literal.

    +
    +
    +

    B.376. literal expression

    +

    B.376:1 +A literal expression is an expression that denotes a literal.

    +

    B.376:2 +See LiteralExpression.

    +
    +
    +

    B.377. literal pattern

    +

    B.377:1 +A literal pattern is a pattern that matches a literal.

    +

    B.377:2 +See LiteralPattern.

    +
    +
    +

    B.378. local trait

    +

    B.378:1 +A local trait is a trait that is defined in the current crate.

    +
    +
    +

    B.379. local type

    +

    B.379:1 +A local type is a type that is defined in the current crate.

    +
    +
    +

    B.380. local variable

    +

    B.380:1 +For local variable, see variable.

    +
    +
    +

    B.381. loop

    +

    B.381:1 +For loop, see loop expression.

    +
    +
    +

    B.382. loop body

    +

    B.382:1 +A loop body is the block expression of a loop expression.

    +

    B.382:2 +See LoopBody.

    +
    +
    +

    B.383. loop expression

    +

    B.383:1 +A loop expression is an expression that evaluates a +block expression continuously as long as some criterion holds true.

    +

    B.383:2 +See LoopExpression.

    +
    +
    +

    B.384. macro

    +

    B.384:1 +A macro is a custom definition that extends Rust by defining callable +syntactic transformations.

    +
    +
    +

    B.385. macro expansion

    +

    B.385:1 +Macro expansion is the process of statically executing a +macro invocation and replacing it with the produced output of the +macro invocation.

    +
    +
    +

    B.386. macro implementation function

    +

    B.386:1 +A macro implementation function is the function that encapsulates +the syntactic transformations of a procedural macro.

    +
    +
    +

    B.387. macro invocation

    +

    B.387:1 +A macro invocation is a call of a declarative macro or +function-like macro that is expanded statically and replaced with the +result of the macro.

    +

    B.387:2 +See MacroInvocation.

    +
    +
    +

    B.388. macro match

    +

    B.388:1 +A macro match is the most basic form of a satisfied macro matcher.

    +

    B.388:2 +See MacroMatch.

    +
    +
    +

    B.389. macro matcher

    +

    B.389:1 +A macro matcher is a construct that describes a syntactic pattern +that a macro must match.

    +

    B.389:2 +See MacroMatcher.

    +
    +
    +

    B.390. macro matching

    +

    B.390:1 +Macro matching is the process of performing rule matching and +token matching.

    +
    +
    +

    B.391. macro repetition

    +

    B.391:1 +A macro repetition is either a macro repetition in matching or a +macro repetition in transcription.

    +
    +
    +

    B.392. macro repetition in matching

    +

    B.392:1 +A macro repetition in matching allows for a syntactic pattern to be +matched zero or multiple times during macro matching.

    +

    B.392:2 +See MacroRepetitionMatch.

    +
    +
    +

    B.393. macro repetition in transcription

    +

    B.393:1 +A macro repetition in transcription allows for a syntactic pattern to be +transcribed zero or multiple times during macro transcription.

    +

    B.393:2 +See MacroRepetitionTranscriber.

    +
    +
    +

    B.394. macro rule

    +

    B.394:1 +A macro rule is a construct that consists of a macro matcher +and a macro transcriber.

    +

    B.394:2 +See MacroRule.

    +
    +
    +

    B.395. macro statement

    +

    B.395:1 +A macro statement is a statement expressed as a +terminated macro invocation.

    +
    +
    +

    B.396. macro transcriber

    +

    B.396:1 +A macro transcriber is a construct that describes the replacement +syntax of a macro.

    +

    B.396:2 +See MacroTranscriber.

    +
    +
    +

    B.397. macro transcription

    +

    B.397:1 +Macro transcription is the process of producing the expansion of a +declarative macro.

    +
    +
    +

    B.398. main function

    +

    B.398:1 +A main function is a function that acts as an entry point into +a program.

    +
    +
    +

    B.399. match arm

    +

    B.399:1 +A match arm is a construct that consists of a match arm matcher +and a match arm body.

    +
    +
    +

    B.400. match arm body

    +

    B.400:1 +A match arm body is the operand of a match arm.

    +
    +
    +

    B.401. match arm guard

    +

    B.401:1 +A match arm guard is a construct that provides additional filtering +to a match arm matcher.

    +

    B.401:2 +See MatchArmGuard.

    +
    +
    +

    B.402. match arm matcher

    +

    B.402:1 +A match arm matcher is a construct that consists of a pattern +and a match arm guard.

    +

    B.402:2 +See MatchArmMatcher.

    +
    +
    +

    B.403. match expression

    +

    B.403:1 +A match expression is an expression that tries to match one of +its multiple patterns against its subject expression and if it +succeeds, evaluates an operand.

    +

    B.403:2 +See MatchExpression.

    +
    +
    +

    B.404. metavariable

    +

    B.404:1 +A metavariable is a macro match that describes a variable.

    +

    B.404:2 +See MacroMetavariable.

    +
    +
    +

    B.405. metavariable indication

    +

    B.405:1 +A metavariable indication is a construct that indicates a +metavariable.

    +

    B.405:2 +See MacroMetavariableIndication.

    +
    +
    +

    B.406. method

    +

    B.406:1 +A method is an associated function with a self parameter.

    +
    +
    +

    B.407. method call expression

    +

    B.407:1 +A method call expression is an expression that invokes a method +of a variable.

    +

    B.407:2 +See MethodCallExpression.

    +
    +
    +

    B.408. method operand

    +

    B.408:1 +A method operand is an operand that denotes the method being +invoked by a method call expression.

    +

    B.408:2 +See MethodOperand.

    +
    +
    +

    B.409. method resolution

    +

    B.409:1 +Method resolution is a kind of resolution that applies to a +method call expression.

    +
    +
    +

    B.410. mixed site hygiene

    +

    B.410:1 +Mixed site hygiene is a type of hygiene which resolves to the +MacroRulesDeclaration site for variables, labels, and the +$crate metavariable, and to the MacroInvocation site otherwise, +and is considered partially hygienic.

    +
    +
    +

    B.411. modifying operand

    +

    B.411:1 +A modifying operand is an operand that supplies the value that +is used in the calculation of a compound assignment expression.

    +

    B.411:2 +See ModifyingOperand.

    +
    +
    +

    B.412. module

    +

    B.412:1 +A module is a container for zero or more items.

    +

    B.412:2 +See ModuleDeclaration.

    +
    +
    +

    B.413. move type

    +

    B.413:1 +A move type is a type that implements the core::marker::Sized +trait and that is not a copy type.

    +
    +
    +

    B.414. multi segment path

    +

    B.414:1 +A multi segment path is a path consisting of more than one +path segment.

    +
    +
    +

    B.415. multiplication assignment

    +

    B.415:1 +For multiplication assignment, see +multiplication assignment expression.

    +
    +
    +

    B.416. multiplication assignment expression

    +

    B.416:1 +A multiplication assignment expression is a +compound assignment expression that uses multiplication.

    +

    B.416:2 +See MultiplicationAssignmentExpression.

    +
    +
    +

    B.417. multiplication expression

    +

    B.417:1 +A multiplication expression is an arithmetic expression that uses +multiplication.

    +

    B.417:2 +See MultiplicationExpression.

    +
    +
    +

    B.418. mutability

    +

    B.418:1 +Mutability determines whether a construct can modify a value.

    +
    +
    +

    B.419. mutable

    +

    B.419:1 +A value is mutable when it can be modified.

    +
    +
    +

    B.420. mutable assignee expression

    +

    B.420:1 +A mutable assignee expression is an assignee expression whose +value can be modified.

    +
    +
    +

    B.421. mutable binding

    +

    B.421:1 +A mutable binding is a binding whose value can be modified.

    +
    +
    +

    B.422. mutable borrow

    +

    B.422:1 +A mutable borrow is a mutable reference produced by borrowing.

    +
    +
    +

    B.423. mutable borrow expression

    +

    B.423:1 +A mutable borrow expression is a borrow expression that has +keyword mut.

    +
    +
    +

    B.424. mutable place expression

    +

    B.424:1 +A mutable place expression is a place expression whose memory +location can be modified.

    +
    +
    +

    B.425. mutable place expression context

    +

    B.425:1 +A mutable place expression context is a place expression context +that may evaluate its operand as a mutable memory location.

    +
    +
    +

    B.426. mutable raw pointer type

    +

    B.426:1 +A mutable raw pointer type is a raw pointer type subject to +keyword mut.

    +
    +
    +

    B.427. mutable reference

    +

    B.427:1 +A mutable reference is a value of a mutable reference type, and +allows the mutation of its referent.

    +
    +
    +

    B.428. mutable reference type

    +

    B.428:1 +A mutable reference type is a reference type subject to keyword +mut.

    +
    +
    +

    B.429. mutable static

    +

    B.429:1 +A mutable static is a static whose value can be modified.

    +
    +
    +

    B.430. mutable variable

    +

    B.430:1 +A mutable variable is a variable whose value can be modified.

    +
    +
    +

    B.431. name

    +

    B.431:1 +A name is an identifier that refers to an entity.

    +

    B.431:2 +See Name.

    +
    +
    +

    B.432. named block expression

    +

    B.432:1 +A named block expression is a block expression with a label.

    +
    +
    +

    B.433. named deconstructor

    +

    B.433:1 +A named deconstructor is a construct that matches the name of +a field.

    +

    B.433:2 +See NamedDeconstructor.

    +
    +
    +

    B.434. named field selector

    +

    B.434:1 +A named field selector is a field selector where the selected +field is indicated by an identifier.

    +

    B.434:2 +See NamedFieldSelector.

    +
    +
    +

    B.435. named initializer

    +

    B.435:1 +A named initializer is a construct that specifies the name and +initial value of a field in a struct expression.

    +

    B.435:2 +See NamedInitializer.

    +
    +
    +

    B.436. named loop expression

    +

    B.436:1 +A named loop expression is a loop expression with a label.

    +
    +
    +

    B.437. named register argument

    +

    B.437:1 +A named register argument is a register argument whose configuration +is bound to an identifier.

    +
    +
    +

    B.438. namespace

    +

    B.438:1 +A namespace is a logical grouping of names such that the +occurrence of a name in one namespace does not conflict with an +occurrence of the same name in another namespace.

    +
    +
    +

    B.439. NaN-boxing

    +

    B.439:1 +NaN-boxing is a technique for encoding values using the low order +bits of the mantissa of a 64-bit IEEE floating-point NaN.

    +
    +
    +

    B.440. negation expression

    +

    B.440:1 +A negation expression is an expression that negates its operand.

    +

    B.440:2 +See NegationExpression.

    +
    +
    +

    B.441. nesting import

    +

    B.441:1 +A nesting import is a use import that provides a common path +prefix for its nested use imports.

    +

    B.441:2 +See NestingImport.

    +
    +
    +

    B.442. never type

    +

    B.442:1 +The never type is a type that represents the result of a computation +that never completes.

    +

    B.442:2 +See NeverType.

    +
    +
    +

    B.443. non-reference pattern

    +

    B.443:1 +A non-reference pattern is any pattern except +non-binding patterns, path patterns, reference patterns, +and underscore patterns.

    +
    +
    +

    B.444. not configuration predicate

    +

    B.444:1 +A not configuration predicate is a configuration predicate that +negates the Boolean value of its nested configuration predicate.

    +

    B.444:2 +See ConfigurationPredicateNot.

    +
    +
    +

    B.445. not-equals expression

    +

    B.445:1 +A not-equals expression is a comparison expression that tests for +inequality.

    +

    B.445:2 +See NotEqualsExpression.

    +
    +
    +

    B.446. null

    +

    B.446:1 +A null value denotes a tool-defined address.

    +
    +
    +

    B.447. numeric literal

    +

    B.447:1 +A numeric literal is a literal that denotes a number.

    +

    B.447:2 +See NumericLiteral.

    +
    +
    +

    B.448. numeric type

    +

    B.448:1 +A numeric type is a type whose values denote numbers.

    +
    +
    +

    B.449. object safe

    +

    B.449:1 +A trait is object safe when it can be used as a +trait object type.

    +
    +
    +

    B.450. object safety

    +

    B.450:1 +Object safety is the process of determining whether a trait can be +used as a trait object type.

    +
    +
    +

    B.451. obsolete range pattern

    +

    B.451:1 +An obsolete range pattern is a range pattern that uses obsolete +syntax to express an inclusive range pattern.

    +

    B.451:2 +See ObsoleteRangePattern.

    +
    +
    +

    B.452. octal literal

    +

    B.452:1 +An octal literal is an integer literal in base 8.

    +

    B.452:2 +See OctalLiteral.

    +
    +
    +

    B.453. operand

    +

    B.453:1 +An operand is an expression nested within an expression.

    +

    B.453:2 +See Operand.

    +
    +
    +

    B.454. operator expression

    +

    B.454:1 +An operator expression is an expression that involves an operator.

    +

    B.454:2 +See OperatorExpression.

    +
    +
    +

    B.455. opt-out trait bound

    +

    B.455:1 +An opt-out trait bound is a trait bound with Punctuation ? +that nullifies an implicitly added trait bound.

    +
    +
    +

    B.456. outer attribute

    +

    B.456:1 +An outer attribute is an attribute that applies to a subsequent +item.

    +

    B.456:2 +See OuterAttribute.

    +
    +
    +

    B.457. outer block doc

    +

    B.457:1 +An outer block doc is a block comment that applies to a subsequent +non-comment construct.

    +

    B.457:2 +See OuterBlockDoc.

    +
    +
    +

    B.458. outer doc comment

    +

    B.458:1 +An outer doc comment is either an outer block doc or an +outer line doc.

    +
    +
    +

    B.459. outer line doc

    +

    B.459:1 +An outer line doc is a line comment that applies to a subsequent +non-comment construct.

    +

    B.459:2 +See OuterLineDoc.

    +
    +
    +

    B.460. outline module

    +

    B.460:1 +An outline module is a module with an +OutlineModuleSpecification.

    +

    B.460:2 +See OutlineModuleSpecification.

    +
    +
    +

    B.461. outlives bound

    +

    B.461:1 +An outlives bound is a trait bound which requires that a +generic parameter outlives a lifetime parameter.

    +
    +
    +

    B.462. output register

    +

    B.462:1 +An output register is a register whose register name is +used in a register argument subject to direction modifier out, +lateout, inout, or inlateout.

    +
    +
    +

    B.463. output register expression

    +

    B.463:1 +An output register expression is an expression that is assigned the +value of a register.

    +

    B.463:2 +See OutputRegisterExpression.

    +
    +
    +

    B.464. overlap

    +

    B.464:1 +Two values overlap when their memory locations overlap, or both +values are elements of the same array.

    +
    +
    +

    B.465. owner

    +

    B.465:1 +An owner is a variable that holds a value.

    +
    +
    +

    B.466. ownership

    +

    B.466:1 +Ownership is a property of values that is central to the resource +management model of Rust.

    +
    +
    +

    B.467. panic

    +

    B.467:1 +A panic is an abnormal program state caused by invoking macro +core::panic.

    +
    +
    +

    B.468. parenthesized expression

    +

    B.468:1 +A parenthesized expression is an expression that groups other +expressions.

    +

    B.468:2 +See ParenthesizedExpression.

    +
    +
    +

    B.469. parenthesized pattern

    +

    B.469:1 +A parenthesized pattern is a pattern that controls the precedence of +its subpatterns.

    +

    B.469:2 +See ParenthesizedPattern.

    +
    +
    +

    B.470. parenthesized type

    +

    B.470:1 +A parenthesized type is a type that disambiguates the interpretation +of lexical elements.

    +

    B.470:2 +See ParenthesizedTypeSpecification.

    +
    +
    +

    B.471. partially hygienic

    +

    B.471:1 +An identifier is partially hygienic when it has +mixed site hygiene.

    +
    +
    +

    B.472. passing convention

    +

    B.472:1 +A passing convention is the mechanism that defines how a value is +transferred between places.

    +
    +
    +

    B.473. path

    +

    B.473:1 +A path is a sequence of path segments logically separated by +namespace qualifier :: that resolves to an entity.

    +
    +
    +

    B.474. path expression

    +

    B.474:1 +A path expression is a path that acts as an expression.

    +

    B.474:2 +See PathExpression.

    +
    +
    +

    B.475. path expression resolution

    +

    B.475:1 +Path expression resolution is a form of path resolution that applies +to a path expression.

    +
    +
    +

    B.476. path pattern

    +

    B.476:1 +A path pattern is a pattern that matches a constant, a +unit enum variant, or a unit struct constant indicated by a +path.

    +

    B.476:2 +See PathPattern.

    +
    +
    +

    B.477. path resolution

    +

    B.477:1 +Path resolution is a form of resolution that applies to a path.

    +
    +
    +

    B.478. path segment

    +

    B.478:1 +A path segment is a constituent of a path.

    +

    B.478:2 +See PathSegment, SimplePathSegment, TypePathSegment.

    +
    +
    +

    B.479. pattern

    +

    B.479:1 +A pattern is a construct that matches a value which satisfies +all the criteria of the pattern.

    +

    B.479:2 +See Pattern.

    +
    +
    +

    B.480. pattern matching

    +

    B.480:1 +Pattern matching is the process of matching a pattern against a +value.

    +
    +
    +

    B.481. pattern-without-alternation

    +

    B.481:1 +A pattern-without-alternation is a pattern that cannot be alternated.

    +

    B.481:2 +See PatternWithoutAlternation.

    +
    +
    +

    B.482. pattern-without-range

    +

    B.482:1 +A pattern-without-range is a pattern-without-alternation that +excludes range patterns.

    +

    B.482:2 +See PatternWithoutRange.

    +
    +
    +

    B.483. place

    +

    B.483:1 +A place is a location where a value resides.

    +
    +
    +

    B.484. place expression

    +

    B.484:1 +A place expression is an expression that represents a memory +location.

    +
    +
    +

    B.485. place expression context

    +

    B.485:1 +A place expression context is a construct that may evaluate its +operand as a memory location.

    +
    +
    +

    B.486. plane

    +

    B.486:1 +In Unicode, a plane is a continuous group of 65,536 +code points.

    +
    +
    +

    B.487. pointer

    +

    B.487:1 +A pointer is a value of a pointer type.

    +
    +
    +

    B.488. pointer type

    +

    B.488:1 +A pointer type is a type whose values indicate memory locations.

    +
    +
    +

    B.489. positional register argument

    +

    B.489:1 +A positional register argument is a register argument whose +configuration is not bound to an identifier.

    +
    +
    +

    B.490. precedence

    +

    B.490:1 +Precedence is the order by which expressions are evaluated in the +presence of other expressions.

    +
    +
    +

    B.491. prelude

    +

    B.491:1 +A prelude is a collection of entities that are +automatically brought in scope of every module in a crate.

    +
    +
    +

    B.492. prelude entity

    +

    B.492:1 +A prelude entity is an entity declared in a prelude.

    +
    +
    +

    B.493. prelude name

    +

    B.493:1 +A prelude name is a name of a prelude entity.

    +
    +
    +

    B.494. primitive representation

    +

    B.494:1 +Primitive representation is the type representation of +integer types.

    +
    +
    +

    B.495. private visibility

    +

    B.495:1 +Private visibility is a kind of visibility that allows a name +to be referred to only by the current module of the entity, and its +descendant modules.

    +
    +
    +

    B.496. proc-macro crate

    +

    B.496:1 +A proc-macro crate is a crate that contains procedural macros.

    +
    +
    +

    B.497. procedural macro

    +

    B.497:1 +A procedural macro is a macro that encapsulates syntactic +transformations in a function.

    +
    +
    +

    B.498. public visibility

    +

    B.498:1 +Public visibility is a kind of visibility that allows a name +to be referred to from arbitrary module M as long as the ancestor +modules of the related entity can be referred to from M.

    +
    +
    +

    B.499. punctuator

    +

    B.499:1 +A punctuator is a character or a sequence of characters in category +Punctuation.

    +
    +
    +

    B.500. pure identifier

    +

    B.500:1 +A pure identifier is an identifier that does not include +weak keywords.

    +
    +
    +

    B.501. qualified path expression

    +

    B.501:1 +A qualified path expression is a path expression that resolves +through a qualified type.

    +

    B.501:2 +See QualifiedPathExpression.

    +
    +
    +

    B.502. qualified type

    +

    B.502:1 +A qualified type is a type that is restricted to a set of +implementations that exhibit implementation conformance to a +qualifying trait.

    +

    B.502:2 +See QualifiedType.

    +
    +
    +

    B.503. qualified type path

    +

    B.503:1 +A qualified type path is a type path that resolves through a +qualified type.

    +

    B.503:2 +See QualifiedTypePath.

    +
    +
    +

    B.504. qualifying trait

    +

    B.504:1 +A qualifying trait is a trait that imposes a restriction on a +qualified type.

    +

    B.504:2 +See QualifyingTrait.

    +
    +
    +

    B.505. range expression

    +

    B.505:1 +A range expression is an expression that constructs a range.

    +

    B.505:2 +See RangeExpression.

    +
    +
    +

    B.506. range expression high bound

    +

    B.506:1 +A range expression high bound is an operand that specifies the end +of a range.

    +

    B.506:2 +See RangeExpressionHighBound.

    +
    +
    +

    B.507. range expression low bound

    +

    B.507:1 +A range expression low bound is an operand that specifies the start +of a range.

    +

    B.507:2 +See RangeExpressionLowBound.

    +
    +
    +

    B.508. range pattern

    +

    B.508:1 +A range pattern is a pattern that matches values which fall +within a range.

    +

    B.508:2 +See RangePattern.

    +
    +
    +

    B.509. range pattern bound

    +

    B.509:1 +A range pattern bound is a constraint on the range of a +range pattern.

    +

    B.509:2 +See RangePatternBound.

    +
    +
    +

    B.510. range pattern high bound

    +

    B.510:1 +A range pattern high bound is a range pattern bound that specifies +the end of a range.

    +

    B.510:2 +See RangePatternHighBound.

    +
    +
    +

    B.511. range pattern low bound

    +

    B.511:1 +A range pattern low bound is a range pattern bound that specifies +the start of a range.

    +

    B.511:2 +See RangePatternLowBound.

    +
    +
    +

    B.512. range-from expression

    +

    B.512:1 +A range-from expression is a range expression that specifies an +included range expression low bound.

    +

    B.512:2 +See RangeFromExpression.

    +
    +
    +

    B.513. range-from-to expression

    +

    B.513:1 +A range-from-to expression is a range expression that specifies an +included range expression low bound and an excluded +range expression high bound.

    +

    B.513:2 +See RangeFromToExpression.

    +
    +
    +

    B.514. range-full expression

    +

    B.514:1 +A range-full expression is a range expression that covers the whole +range of a type.

    +

    B.514:2 +See RangeFullExpression.

    +
    +
    +

    B.515. range-inclusive expression

    +

    B.515:1 +A range-inclusive expression is a range expression that specifies an +included range expression low bound and an included +range expression high bound.

    +

    B.515:2 +See RangeInclusiveExpression.

    +
    +
    +

    B.516. range-to expression

    +

    B.516:1 +A range-to expression is a range expression that specifies an +excluded range expression high bound.

    +

    B.516:2 +See RangeToExpression.

    +
    +
    +

    B.517. range-to-inclusive expression

    +

    B.517:1 +A range-to-inclusive expression is a range expression that specifies +an included range expression high bound.

    +

    B.517:2 +See RangeToInclusiveExpression.

    +
    +
    +

    B.518. raw byte string literal

    +

    B.518:1 +A raw byte string literal is a simple byte string literal that does +not recognize escaped characters.

    +

    B.518:2 +See RawByteStringLiteral.

    +
    +
    +

    B.519. raw pointer

    +

    B.519:1 +A raw pointer is a pointer of a raw pointer type.

    +
    +
    +

    B.520. raw pointer type

    +

    B.520:1 +A raw pointer type is an indirection type without safety and +liveness guarantees.

    +

    B.520:2 +See RawPointerTypeSpecification.

    +
    +
    +

    B.521. raw string literal

    +

    B.521:1 +A raw string literal is a simple string literal that does not +recognize escaped characters.

    +

    B.521:2 +See RawStringLiteral.

    +
    +
    +

    B.522. reachable control flow path

    +

    B.522:1 +A reachable control flow path is a control flow path that can be +taken by the execution of a program between two given points in the program.

    +
    +
    +

    B.523. receiver operand

    +

    B.523:1 +A receiver operand is an operand that denotes the value whose +method is being invoked by a method call expression.

    +

    B.523:2 +See ReceiverOperand.

    +
    +
    +

    B.524. receiver type

    +

    B.524:1 +A receiver type is the type of a receiver operand.

    +
    +
    +

    B.525. record enum variant

    +

    B.525:1 +A record enum variant is an enum variant with a +RecordStructFieldList.

    +
    +
    +

    B.526. record struct

    +

    B.526:1 +A record struct is a struct with a RecordStructFieldList.

    +

    B.526:2 +See RecordStructDeclaration.

    +
    +
    +

    B.527. record struct field

    +

    B.527:1 +A record struct field is a field of a record struct type.

    +

    B.527:2 +See RecordStructField.

    +
    +
    +

    B.528. record struct pattern

    +

    B.528:1 +A record struct pattern is a pattern that matches a +enum variant value, a struct value, or a union value.

    +

    B.528:2 +See RecordStructPattern.

    +
    +
    +

    B.529. record struct type

    +

    B.529:1 +A record struct type is the type of a record struct.

    +
    +
    +

    B.530. record struct value

    +

    B.530:1 +A record struct value is a value of a record struct type.

    +
    +
    +

    B.531. recursive type

    +

    B.531:1 +A recursive type is a type that may define other types within its +type specification.

    +
    +
    +

    B.532. reference

    +

    B.532:1 +A reference is a value of a reference type.

    +
    +
    +

    B.533. reference identifier pattern

    +

    B.533:1 +A reference identifier pattern is an identifier pattern with +keyword ref.

    +
    +
    +

    B.534. reference pattern

    +

    B.534:1 +A reference pattern is a pattern that dereferences a pointer +that is being matched.

    +

    B.534:2 +See ReferencePattern.

    +
    +
    +

    B.535. reference type

    +

    B.535:1 +A reference type is an indirection type with ownership.

    +

    B.535:2 +See ReferenceTypeSpecification.

    +
    +
    +

    B.536. referent

    +

    B.536:1 +A referent is the value pointed-to by a reference.

    +
    +
    +

    B.537. refutability

    +

    B.537:1 +Refutability is a property of patterns that expresses the ability +to match all possible values of a type.

    +
    +
    +

    B.538. refutable constant

    +

    B.538:1 +A refutable constant is a constant of a refutable type.

    +
    +
    +

    B.539. refutable pattern

    +

    B.539:1 +A refutable pattern is a pattern that has a possibility of not +matching the value it is being matched against.

    +
    +
    +

    B.540. refutable type

    +

    B.540:1 +A refutable type is a type that has more than one value.

    +
    +
    +

    B.541. register

    +

    B.541:1 +A register is a hardware component capable of holding data that can be +read and written.

    +
    +
    +

    B.542. register argument

    +

    B.542:1 +A register argument is a construct that configures the input +and output of a register, and optionally binds the configuration to an +identifier.

    +

    B.542:2 +See RegisterArgument.

    +
    +
    +

    B.543. register class

    +

    B.543:1 +A register class represents a set of registers.

    +
    +
    +

    B.544. register class argument

    +

    B.544:1 +A register class argument is a register argument that uses a +register class name.

    +
    +
    +

    B.545. register class name

    +

    B.545:1 +A register class name is a target-specific string that identifies a +register class.

    +

    B.545:2 +See RegisterClassName.

    +
    +
    +

    B.546. register expression

    +

    B.546:1 +A register expression is either an input-output register expression +or a simple register expression.

    +

    B.546:2 +See RegisterExpression.

    +
    +
    +

    B.547. register name

    +

    B.547:1 +A register name is either the explicit register name of a +register, or the register class name of the register class a +register belongs to.

    +

    B.547:2 +See RegisterName.

    +
    +
    +

    B.548. register parameter

    +

    B.548:1 +A register parameter is a substring delimited by characters 0x7B (left +curly bracket) and 0x7D (right curly bracket) that is substituted with a +register argument in an assembly instruction.

    +
    +
    +

    B.549. register parameter modifier

    +

    B.549:1 +A register parameter modifier is a substring that starts with character +0x3A (colon), follows a register parameter, and changes the formatting of +the related register parameter.

    +
    +
    +

    B.550. remainder assignment

    +

    B.550:1 +For remainder assignment, see remainder assignment expression.

    +
    +
    +

    B.551. remainder assignment expression

    +

    B.551:1 +A remainder assignment expression is a +compound assignment expression that uses remainder division.

    +

    B.551:2 +See RemainderAssignmentExpression.

    +
    +
    +

    B.552. remainder expression

    +

    B.552:1 +A remainder expression is an arithmetic expression that uses +remainder division.

    +

    B.552:2 +See RemainderExpression.

    +
    +
    +

    B.553. renaming

    +

    B.553:1 +A renaming provides an alternative name for an existing name.

    +

    B.553:2 +See Renaming.

    +
    +
    +

    B.554. repeat operand

    +

    B.554:1 +A repeat operand is an operand that specifies the element being +repeated in an array repetition constructor.

    +

    B.554:2 +See RepeatOperand.

    +
    +
    +

    B.555. repetition operator

    +

    B.555:1 +A repetition operator is a construct that indicates the number +of times a macro repetition in matching or a +macro repetition in transcription can be repeated.

    +

    B.555:2 +See MacroRepetitionOperator.

    +
    +
    +

    B.556. representation

    +

    B.556:1 +See type representation.

    +
    +
    +

    B.557. representation modifier

    +

    B.557:1 +A representation modifier is a construct that modifies the +alignment of a type.

    +

    B.557:2 +See Alignment.

    +
    +
    +

    B.558. reserved keyword

    +

    B.558:1 +A reserved keyword is a keyword that is not yet in use.

    +

    B.558:2 +See ReservedKeyword.

    +
    +
    +

    B.559. resolution

    +

    B.559:1 +Resolution is the process of finding a unique interpretation for a +field access expression, a method call expression, or a path.

    +
    +
    +

    B.560. rest pattern

    +

    B.560:1 +A rest pattern is a pattern that matches zero or more elements that +have not already been matched.

    +

    B.560:2 +See RestPattern.

    +
    +
    +

    B.561. return expression

    +

    B.561:1 +A return expression is an expression that optionally yields a +value and causes control flow to return to the caller.

    +

    B.561:2 +See ReturnExpression.

    +
    +
    +

    B.562. return type

    +

    B.562:1 +A return type is the type of the result a function returns.

    +

    B.562:2 +See ReturnType.

    +
    +
    +

    B.563. right operand

    +

    B.563:1 +A right operand is an operand that appears on the right-hand side of +a binary operator.

    +

    B.563:2 +See RightOperand.

    +
    +
    +

    B.564. rule matching

    +

    B.564:1 +Rule matching is the process of consuming a TokenTree in an attempt +to fully satisfy the macro matcher of a macro rule that belongs to a +resolved declarative macro.

    +
    +
    +

    B.565. rustc

    +

    B.565:1 +Rust-c (or rustc) is a compiler that implements the Ferrocene Language +Specification.

    +
    +
    +

    B.566. safety invariant

    +

    B.566:1 +A safety invariant is an invariant that when violated may result in +undefined behavior.

    +
    +
    +

    B.567. scalar type

    +

    B.567:1 +A scalar type is either a bool type, a char type, or +a numeric type.

    +
    +
    +

    B.568. scope

    +

    B.568:1 +A scope is a region of program text where a name can be referred to.

    +
    +
    +

    B.569. scope hierarchy

    +

    B.569:1 +The scope hierarchy reflects the nesting of scopes as introduced +by scoping constructs.

    +
    +
    +

    B.570. selected field

    +

    B.570:1 +A selected field is a field that is selected by a +field access expression.

    +
    +
    +

    B.571. Self

    +

    B.571:1 +Self is either an implicit type parameter in traits or an +implicit type alias in implementations. Self refers to the +type that implements a trait.

    +
    +
    +

    B.572. self parameter

    +

    B.572:1 +A self parameter is a function parameter expressed by keyword +self.

    +
    +
    +

    B.573. self public modifier

    +

    B.573:1 +A self public modifier is a visibility modifier that grants a +name private visibility.

    +

    B.573:2 +See SelfPublicModifier.

    +
    +
    +

    B.574. Self scope

    +

    B.574:1 +A Self scope is a scope for Self.

    +
    +
    +

    B.575. send type

    +

    B.575:1 +A send type is a type that implements the core::marker::Send +trait.

    +
    +
    +

    B.576. separator

    +

    B.576:1 +A separator is a character or a string that separates adjacent +lexical elements.

    +
    +
    +

    B.577. sequence type

    +

    B.577:1 +A sequence type represents a sequence of elements.

    +
    +
    +

    B.578. shadowing

    +

    B.578:1 +Shadowing is a property of names. A name is said to be +shadowed when another name with the same characters is introduced +in the same scope within the same namespace, effectively hiding it.

    +
    +
    +

    B.579. shared borrow

    +

    B.579:1 +A shared borrow is a borrow produced by evaluating an +immutable borrow expression.

    +
    +
    +

    B.580. shared reference

    +

    B.580:1 +A shared reference is a value of a shared reference type.

    +
    +
    +

    B.581. shared reference type

    +

    B.581:1 +A shared reference type is a reference type not subject to +keyword mut.

    +
    +
    +

    B.582. shift left assignment

    +

    B.582:1 +For shift left assignment, see shift left assignment expression.

    +
    +
    +

    B.583. shift left assignment expression

    +

    B.583:1 +A shift left assignment expression is a +compound assignment expression that uses bit shift left arithmetic.

    +

    B.583:2 +See ShiftLeftAssignmentExpression.

    +
    +
    +

    B.584. shift left expression

    +

    B.584:1 +A shift left expression is a bit expression that uses bit shift left +arithmetic.

    +

    B.584:2 +See ShiftLeftExpression.

    +
    +
    +

    B.585. shift right assignment

    +

    B.585:1 +For shift right assignment, see shift right assignment expression.

    +
    +
    +

    B.586. shift right assignment expression

    +

    B.586:1 +A shift right assignment expression is a +compound assignment expression that uses bit shift right arithmetic.

    +

    B.586:2 +See ShiftRightAssignmentExpression.

    +
    +
    +

    B.587. shift right expression

    +

    B.587:1 +A shift right expression is a bit expression that uses bit shift +right arithmetic.

    +

    B.587:2 +See ShiftRightExpression.

    +
    +
    +

    B.588. shorthand deconstructor

    +

    B.588:1 +A shorthand deconstructor is a construct that matches the name +of a field and binds the value of the matched field to a +binding.

    +

    B.588:2 +See ShorthandDeconstructor.

    +
    +
    +

    B.589. shorthand initializer

    +

    B.589:1 +A shorthand initializer is a construct that specifies the name +of a field in a struct expression.

    +

    B.589:2 +See ShorthandInitializer.

    +
    +
    +

    B.590. signed integer type

    +

    B.590:1 +A signed integer type is an integer type whose values denote +negative whole numbers, zero, and positive whole numbers.

    +
    +
    +

    B.591. simple byte string literal

    +

    B.591:1 +A simple byte string literal is a byte string literal that consists +of multiple AsciiCharacters.

    +

    B.591:2 +See SimpleByteStringLiteral.

    +
    +
    +

    B.592. simple import

    +

    B.592:1 +A simple import is a use import that binds a simple path to a +local name by using an optional renaming.

    +

    B.592:2 +See SimpleImport.

    +
    +
    +

    B.593. simple path

    +

    B.593:1 +A simple path is a path whose path segments consist of either +identifiers or certain keywords.

    +

    B.593:2 +See SimplePath.

    +
    +
    +

    B.594. simple path prefix

    +

    B.594:1 +A simple path prefix is the leading simple path of a +glob import or a nesting import.

    +

    B.594:2 +See SimplePathPrefix.

    +
    +
    +

    B.595. simple path public modifier

    +

    B.595:1 +A simple path public modifier is a visibility modifier that grants a +name public visibility within the provided simple path only.

    +

    B.595:2 +See SimplePathPublicModifier.

    +
    +
    +

    B.596. simple path resolution

    +

    B.596:1 +Simple path resolution is a kind of path resolution that applies to +a simple path.

    +
    +
    +

    B.597. simple public modifier

    +

    B.597:1 +A simple public modifier is a visibility modifier that grants a +name public visibility.

    +

    B.597:2 +See SelfPublicModifier.

    +
    +
    +

    B.598. simple register expression

    +

    B.598:1 +A simple register expression is either an expression or an +underscore expression.

    +

    B.598:2 +See SimpleRegisterExpression.

    +
    +
    +

    B.599. simple string literal

    +

    B.599:1 +A simple string literal is a string literal where the characters are +Unicode characters.

    +

    B.599:2 +See SimpleStringLiteral.

    +
    +
    +

    B.600. single segment path

    +

    B.600:1 +A single segment path is a path consisting of exactly one +path segment.

    +
    +
    +

    B.601. size

    +

    B.601:1 +The size of a value is the offset in bytes between successive +elements in an array type with the same element type, including any +padding for alignment.

    +
    +
    +

    B.602. size operand

    +

    B.602:1 +A size operand is an operand that specifies the size of an +array or an array type.

    +

    B.602:2 +See SizeOperand.

    +
    +
    +

    B.603. sized type

    +

    B.603:1 +A sized type is a type with statically known size.

    +
    +
    +

    B.604. slice

    +

    B.604:1 +A slice is a value of a slice type.

    +
    +
    +

    B.605. slice pattern

    +

    B.605:1 +A slice pattern is a pattern that matches arrays of fixed +size and slices of dynamic size.

    +

    B.605:2 +See SlicePattern.

    +
    +
    +

    B.606. slice type

    +

    B.606:1 +A slice type is a sequence type that provides a view into a sequence +of elements.

    +

    B.606:2 +See SliceTypeSpecification.

    +
    +
    +

    B.607. source file

    +

    B.607:1 +A source file contains the program text of inner attributes, +inner doc comments, and items.

    +

    B.607:2 +See SourceFile.

    +
    +
    +

    B.608. statement

    +

    B.608:1 +A statement is a component of a block expression.

    +

    B.608:2 +See Statement.

    +
    +
    +

    B.609. static

    +

    B.609:1 +A static is a value that is associated with a specific memory +location.

    +

    B.609:2 +See StaticDeclaration.

    +
    +
    +

    B.610. static initializer

    +

    B.610:1 +A static initializer is a construct that provides the value of +its related static.

    +

    B.610:2 +See StaticInitializer.

    +
    +
    +

    B.611. static lifetime elision

    +

    B.611:1 +Static lifetime elision is a form of lifetime elision that applies +to constants and statics.

    +
    +
    +

    B.612. str

    +

    B.612:1 +str is a sequence type that represents a slice of 8-bit +unsigned bytes.

    +
    +
    +

    B.613. strict keyword

    +

    B.613:1 +A strict keyword is a keyword that always holds its special meaning.

    +

    B.613:2 +See StrictKeyword.

    +
    +
    +

    B.614. string literal

    +

    B.614:1 +A string literal is a literal that consists of multiple characters.

    +

    B.614:2 +See StringLiteral.

    +
    +
    +

    B.615. struct

    +

    B.615:1 +A struct is an item that declares a struct type.

    +
    +
    +

    B.616. struct expression

    +

    B.616:1 +A struct expression is an expression that constructs an +enum value, a struct value, or a union value.

    +

    B.616:2 +See StructExpression.

    +
    +
    +

    B.617. struct field

    +

    B.617:1 +A struct field is a field of a struct type.

    +
    +
    +

    B.618. struct pattern

    +

    B.618:1 +A struct pattern is a pattern that matches an enum value, a +struct value, or a union value.

    +

    B.618:2 +See StructPattern.

    +
    +
    +

    B.619. struct type

    +

    B.619:1 +A struct type is an abstract data type that is a product of other +types.

    +

    B.619:2 +See StructDeclaration.

    +
    +
    +

    B.620. struct value

    +

    B.620:1 +A struct value is a value of a struct type.

    +
    +
    +

    B.621. structurally equal

    +

    B.621:1 +A type is structurally equal when its values can be compared +for equality by structure.

    +
    +
    +

    B.622. subexpression

    +

    B.622:1 +A subexpression is an expression nested within another +expression.

    +
    +
    +

    B.623. subject expression

    +

    B.623:1 +A subject expression is an expression that controls +for loops, if expressions, and match expressions.

    +

    B.623:2 +See SubjectExpression.

    +
    +
    +

    B.624. subject let expression

    +

    B.624:1 +A subject let expression is an expression that controls +if let expressions and while let loops.

    +

    B.624:2 +See SubjectLetExpression.

    +
    +
    +

    B.625. subpattern

    +

    B.625:1 +A subpattern is a pattern nested within another pattern.

    +
    +
    +

    B.626. subtraction assignment

    +

    B.626:1 +For subtraction assignment, see subtraction assignment.

    +
    +
    +

    B.627. subtraction assignment expression

    +

    B.627:1 +A subtraction assignment expression is a +compound assignment expression that uses subtraction.

    +

    B.627:2 +See SubtractionAssignmentExpression.

    +
    +
    +

    B.628. subtraction expression

    +

    B.628:1 +A subtraction expression is an arithmetic expression that uses +subtraction.

    +

    B.628:2 +See SubtractionExpression.

    +
    +
    +

    B.629. subtrait

    +

    B.629:1 +A subtrait is a trait with a supertrait.

    +
    +
    +

    B.630. subtype

    +

    B.630:1 +A subtype is a type with additional constraints.

    +
    +
    +

    B.631. subtyping

    +

    B.631:1 +Subtyping is a property of types, allowing one type to be +used where another type is expected.

    +
    +
    +

    B.632. suffixed float

    +

    B.632:1 +A suffixed float is a float literal with a float suffix.

    +
    +
    +

    B.633. suffixed integer

    +

    B.633:1 +A suffixed integer is an integer literal with an integer suffix.

    +
    +
    +

    B.634. super public modifier

    +

    B.634:1 +A super public modifier is a visibility modifier that grants a +name public visibility within the parent module only.

    +

    B.634:2 +See SuperPublicModifier.

    +
    +
    +

    B.635. supertrait

    +

    B.635:1 +A supertrait is a transitive trait that a type must +additionally implement.

    +
    +
    +

    B.636. sync type

    +

    B.636:1 +A sync type is a type that implements the core::marker::Sync +trait.

    +
    +
    +

    B.637. syntactic category

    +

    B.637:1 +A syntactic category is a nonterminal in the Backus-Naur Form grammar +definition of the Rust programming language.

    +
    +
    +

    B.638. tail expression

    +

    B.638:1 +A tail expression is the last expression within a +block expression.

    +
    +
    +

    B.639. temporary

    +

    B.639:1 +A temporary is an anonymous variable produced by some intermediate +computation.

    +
    +
    +

    B.640. terminated

    +

    B.640:1 +A loop expression is terminated when its block expression is no +longer evaluated.

    +
    +
    +

    B.641. terminated macro invocation

    +

    B.641:1 +A terminated macro invocation is a macro invocation that may be used +as a statement.

    +

    B.641:2 +See TerminatedMacroInvocation.

    +
    +
    +

    B.642. textual macro scope

    +

    B.642:1 +A textual macro scope is a scope for declarative macros.

    +
    +
    +

    B.643. textual type

    +

    B.643:1 +A textual type is a type class that includes type char and type +str.

    +
    +
    +

    B.644. thin pointer

    +

    B.644:1 +A thin pointer is a value of a thin pointer type.

    +
    +
    +

    B.645. thin pointer type

    +

    B.645:1 +A thin pointer type is an indirection type that refers to a +fixed sized type.

    +
    +
    +

    B.646. token matching

    +

    B.646:1 +Token matching is the process of consuming a TokenTree in an attempt +to fully satisfy a macro match of a selected macro matcher that +belongs to a resolved declarative macro.

    +
    +
    +

    B.647. tokens

    +

    B.647:1 +Tokens are a subset of lexical elements consumed by +macros.

    +
    +
    +

    B.648. trait

    +

    B.648:1 +A trait is an item that describes an interface a type can +implement.

    +

    B.648:2 +See TraitDeclaration.

    +
    +
    +

    B.649. trait body

    +

    B.649:1 +A trait body is a construct that encapsulates the +associated items, inner attributes, and +inner doc comments of a trait.

    +

    B.649:2 +See TraitBody.

    +
    +
    +

    B.650. trait bound

    +

    B.650:1 +A trait bound is a bound that imposes a constraint on the +traits of generic parameters.

    +

    B.650:2 +See TraitBound.

    +
    +
    +

    B.651. trait implementation

    +

    B.651:1 +A trait implementation is an implementation that adds functionality +specified by a trait.

    +

    B.651:2 +See TraitImplementation.

    +
    +
    +

    B.652. trait object lifetime elision

    +

    B.652:1 +Trait object lifetime elision is a form of lifetime elision that +applies to trait object types.

    +
    +
    +

    B.653. trait object type

    +

    B.653:1 +A trait object type is a type that implements a trait, where +the type is not known at compile time.

    +

    B.653:2 +See TraitObjectTypeSpecification, +TraitObjectTypeSpecificationOneBound.

    +
    +
    +

    B.654. trait type

    +

    B.654:1 +A trait type is either an impl trait type or a +trait object type.

    +
    +
    +

    B.655. transparent representation

    +

    B.655:1 +Transparent representation is a type representation that applies +only to an enum type with a single enum variant or a struct type +where the struct type or enum variant has a single field of +non-zero size and any number of fields of size zero and +alignment one.

    +
    +
    +

    B.656. trivial predicate

    +

    B.656:1 +A trivial predicate is a where clause predicate that does not use +the generic parameters or higher-ranked lifetimes of the related +construct.

    +
    +
    +

    B.657. tuple

    +

    B.657:1 +A tuple is a value of a tuple type.

    +
    +
    +

    B.658. tuple enum variant

    +

    B.658:1 +A tuple enum variant is an enum variant with a +TupleStructFieldList.

    +
    +
    +

    B.659. tuple enum variant value

    +

    B.659:1 +A tuple enum variant value is a value of a tuple enum variant.

    +
    +
    +

    B.660. tuple expression

    +

    B.660:1 +A tuple expression is an expression that constructs a tuple.

    +

    B.660:2 +See TupleExpression.

    +
    +
    +

    B.661. tuple field

    +

    B.661:1 +A tuple field is a field of a tuple type.

    +
    +
    +

    B.662. tuple initializer

    +

    B.662:1 +A tuple initializer is an operand that provides the value of a +tuple field in a tuple expression.

    +
    +
    +

    B.663. tuple pattern

    +

    B.663:1 +A tuple pattern is a pattern that matches a tuple which +satisfies all criteria defined by its subpatterns.

    +

    B.663:2 +See TuplePattern.

    +
    +
    +

    B.664. tuple struct

    +

    B.664:1 +A tuple struct is a struct with a TupleStructFieldList.

    +

    B.664:2 +See TupleStructDeclaration.

    +
    +
    +

    B.665. tuple struct call expression

    +

    B.665:1 +A tuple struct call expression is a call expression where the +call operand resolves to a tuple struct.

    +
    +
    +

    B.666. tuple struct field

    +

    B.666:1 +A tuple struct field is a field of a tuple struct type.

    +

    B.666:2 +See TupleStructField.

    +
    +
    +

    B.667. tuple struct pattern

    +

    B.667:1 +A tuple struct pattern is a pattern that matches a +tuple enum variant value or a tuple struct value.

    +

    B.667:2 +See TupleStructPattern.

    +
    +
    +

    B.668. tuple struct type

    +

    B.668:1 +A tuple struct type is the type of a tuple struct.

    +
    +
    +

    B.669. tuple struct value

    +

    B.669:1 +A tuple struct value is a value of a tuple struct type.

    +
    +
    +

    B.670. tuple type

    +

    B.670:1 +A tuple type is a sequence type that represents a heterogeneous list +of other types.

    +

    B.670:2 +See TupleTypeSpecification.

    +
    +
    +

    B.671. type

    +

    B.671:1 +A type defines a set of values and a set of operations that act on +those values.

    +
    +
    +

    B.672. type alias

    +

    B.672:1 +A type alias is an item that defines a name for a type.

    +

    B.672:2 +See TypeAliasDeclaration.

    +
    +
    +

    B.673. type argument

    +

    B.673:1 +A type argument is a generic argument that supplies the value +of a type parameter.

    +

    B.673:2 +See TypeArgument.

    +
    +
    +

    B.674. type ascription

    +

    B.674:1 +A type ascription specifies the type of a construct.

    +

    B.674:2 +See TypeAscription.

    +
    +
    +

    B.675. type bound predicate

    +

    B.675:1 +A type bound predicate is a construct that specifies +lifetime bounds and trait bounds on a type.

    +

    B.675:2 +See TypeBoundPredicate.

    +
    +
    +

    B.676. type cast expression

    +

    B.676:1 +A type cast expression is an expression that changes the type +of an operand.

    +

    B.676:2 +See TypeCastExpression.

    +
    +
    +

    B.677. type coercion

    +

    B.677:1 +Type coercion is an implicit operation that changes the type of +a value.

    +
    +
    +

    B.678. type inference

    +

    B.678:1 +Type inference is the process of deducing the expected type of an +arbitrary value.

    +
    +
    +

    B.679. type inference root

    +

    B.679:1 +A type inference root is a construct whose inner expressions +and patterns are subject to type inference independently of other +type inference roots.

    +
    +
    +

    B.680. type parameter

    +

    B.680:1 +A type parameter is a generic parameter for a type.

    +

    B.680:2 +See TypeParameter.

    +
    +
    +

    B.681. type parameter initializer

    +

    B.681:1 +A type parameter initializer is a construct that provides the +default value of its related type parameter.

    +

    B.681:2 +See TypeParameterInitializer.

    +
    +
    +

    B.682. type parameter type

    +

    B.682:1 +A type parameter type is a placeholder type of a type parameter +to be substituted by generic substitution.

    +
    +
    +

    B.683. type path

    +

    B.683:1 +A type path is a path that acts as a type specification.

    +

    B.683:2 +See TypePath.

    +
    +
    +

    B.684. type path resolution

    +

    B.684:1 +Type path resolution is a form of path resolution that applies to +a type path.

    +
    +
    +

    B.685. type representation

    +

    B.685:1 +Type representation specifies the layout of fields of +abstract data types.

    +
    +
    +

    B.686. type specification

    +

    B.686:1 +A type specification describes the structure of a type.

    +

    B.686:2 +See TypeSpecification.

    +
    +
    +

    B.687. type unification

    +

    B.687:1 +Type unification is the process by which type inference propagates +known types across the type inference root and assigns concrete +types to type variables, as well as a general mechanism to check +for compatibility between two types during method resolution.

    +
    +
    +

    B.688. type variable

    +

    B.688:1 +A type variable is a placeholder used during type inference to stand +in for an undetermined type of an expression or a pattern.

    +
    +
    +

    B.689. u8

    +

    B.689:1 +u8 is an unsigned integer type whose values range from 0 to +28 - 1, all inclusive.

    +
    +
    +

    B.690. u16

    +

    B.690:1 +u16 is an unsigned integer type whose values range from 0 to +216 - 1, all inclusive.

    +
    +
    +

    B.691. u32

    +

    B.691:1 +u32 is an unsigned integer type whose values range from 0 to +232 - 1, all inclusive.

    +
    +
    +

    B.692. u64

    +

    B.692:1 +u64 is an unsigned integer type whose values range from 0 to +264 - 1, all inclusive.

    +
    +
    +

    B.693. u128

    +

    B.693:1 +u128 is an unsigned integer type whose values range from 0 to +2128 - 1, all inclusive.

    +
    +
    +

    B.694. unary operator

    +

    B.694:1 +A unary operator operates on one operand.

    +
    +
    +

    B.695. undefined behavior

    +

    B.695:1 +Undefined behavior is a situation that results in an unbounded error.

    +
    +
    +

    B.696. under resolution

    +

    B.696:1 +A construct that is being resolved is said to be under resolution.

    +
    +
    +

    B.697. underscore expression

    +

    B.697:1 +An underscore expression is an expression that acts as a placeholder +in a destructuring assignment.

    +

    B.697:2 +See UnderscoreExpression.

    +
    +
    +

    B.698. underscore pattern

    +

    B.698:1 +An underscore pattern is a pattern that matches any single +value.

    +

    B.698:2 +See UnderscorePattern.

    +
    +
    +

    B.699. unhygienic

    +

    B.699:1 +An identifier is unhygienic when it has call site hygiene.

    +
    +
    +

    B.700. Unicode

    +

    B.700:1 +Unicode is the colloquial name for the ISO/IEC 10646:2017 Universal Coded +Character Set standard.

    +
    +
    +

    B.701. unifiable

    +

    B.701:1 +For unifiable, see unify.

    +
    +
    +

    B.702. unifiable types

    +

    B.702:1 +Two types that unify are said to be unifiable types.

    +
    +
    +

    B.703. unified type

    +

    B.703:1 +A unified type is a type produced by type unification.

    +
    +
    +

    B.704. unify

    +

    B.704:1 +A type is said to unify with another type when the domains, ranges, +and structures of both types are compatible.

    +
    +
    +

    B.705. union

    +

    B.705:1 +A union is an item that declares a union type.

    +
    +
    +

    B.706. union field

    +

    B.706:1 +A union field is a field of a union type.

    +
    +
    +

    B.707. union type

    +

    B.707:1 +A union type is an abstract data type similar to a C-like union.

    +

    B.707:2 +See UnionDeclaration.

    +
    +
    +

    B.708. union value

    +

    B.708:1 +A union value is a value of a union type.

    +
    +
    +

    B.709. unique immutable reference

    +

    B.709:1 +A unique immutable reference is an immutable reference produced by +capturing what is asserted to be the only live reference to a +value while the reference exists.

    +
    +
    +

    B.710. unit enum variant

    +

    B.710:1 +A unit enum variant is an enum variant without a field list.

    +
    +
    +

    B.711. unit struct

    +

    B.711:1 +A unit struct is a struct without a field list.

    +

    B.711:2 +See UnitStructDeclaration.

    +
    +
    +

    B.712. unit struct constant

    +

    B.712:1: +A unit struct constant is a constant implicitly created by a +unit struct.

    +
    +
    +

    B.713. unit struct type

    +

    B.713:1 +A unit struct type is the type of a unit struct.

    +
    +
    +

    B.714. unit struct value

    +

    B.714:1 +A unit struct value is a value of a unit struct type.

    +
    +
    +

    B.715. unit tuple

    +

    B.715:1 +A unit tuple is a value of the unit type.

    +
    +
    +

    B.716. unit type

    +

    B.716:1 +The unit type is a tuple type of zero arity.

    +
    +
    +

    B.717. unit value

    +

    B.717:1 +The unit value is the value of a unit type.

    +
    +
    +

    B.718. unnamed constant

    +

    B.718:1 +An unnamed constant is a constant declared with character 0x5F (low +line).

    +
    +
    +

    B.719. unnamed lifetime

    +

    B.719:1 +An unnamed lifetime is a lifetime declared with character 0x5F (low +line).

    +
    +
    +

    B.720. unqualified path expression

    +

    B.720:1 +An unqualified path expression is a path expression without a qualified type.

    +
    +
    +

    B.721. unsafe block

    +

    B.721:1 +For unsafe block, see unsafe block expression.

    +
    +
    +

    B.722. unsafe block expression

    +

    B.722:1 +An unsafe block expression is a block expression that is specified +with keyword unsafe.

    +

    B.722:2 +See UnsafeBlockExpression.

    +
    +
    +

    B.723. unsafe context

    +

    B.723:1 +An unsafe context is either an unsafe block or an +unsafe function.

    +
    +
    +

    B.724. unsafe function

    +

    B.724:1 +An unsafe function is a function subject to keyword unsafe.

    +
    +
    +

    B.725. unsafe function item type

    +

    B.725:1 +An unsafe function item type is a function item type where the +related function is an unsafe function.

    +
    +
    +

    B.726. unsafe function pointer type

    +

    B.726:1 +An unsafe function pointer type is a function pointer type subject to +keyword unsafe.

    +
    +
    +

    B.727. unsafe operation

    +

    B.727:1 +An unsafe operation is an operation that may result in +undefined behavior that is not diagnosed as a static error. +Unsafe operations are referred to as unsafe Rust.

    +
    +
    +

    B.728. unsafe Rust

    +

    B.728:1 +For unsafe Rust, see unsafe operations.

    +
    +
    +

    B.729. unsafe trait

    +

    B.729:1 +An unsafe trait is a trait subject to keyword unsafe

    +
    +
    +

    B.730. unsafe trait implementation

    +

    B.730:1 +An unsafe trait implementation is a trait implementation subject to +keyword unsafe.

    +
    +
    +

    B.731. unsafety

    +

    B.731:1 +Unsafety is the presence of unsafe operations in program text.

    +
    +
    +

    B.732. unsigned integer type

    +

    B.732:1 +An unsigned integer type is an integer type whose values +denote zero and positive whole numbers.

    +
    +
    +

    B.733. unsized coercion

    +

    B.733:1 +An unsized coercion is a type coercion that converts a +sized type into an unsized type.

    +
    +
    +

    B.734. unsized type

    +

    B.734:1 +An unsized type is a type with statically unknown size.

    +
    +
    +

    B.735. unsuffixed float

    +

    B.735:1 +An unsuffixed float is a float literal without a float suffix.

    +
    +
    +

    B.736. unsuffixed integer

    +

    B.736:1 +An unsuffixed integer is an integer literal without an +integer suffix.

    +
    +
    +

    B.737. use import

    +

    B.737:1 +A use import brings entities in scope within the +block expression of an expression-with-block or module where the +use import resides.

    +

    B.737:2 +See UseImport.

    +
    +
    +

    B.738. usize

    +

    B.738:1 +usize is an unsigned integer type with the same number of bits as +the platform’s pointer type, and is at least 16-bits wide.

    +
    +
    +

    B.739. validity invariant

    +

    B.739:1 +A validity invariant is an invariant that when violated results in +immediate undefined behavior.

    +
    +
    +

    B.740. value

    +

    B.740:1 +A value is either a literal or the result of a computation, that may +be stored in a memory location, and interpreted based on some type.

    +
    +
    +

    B.741. value expression

    +

    B.741:1 +A value expression is an expression that represents a value.

    +
    +
    +

    B.742. value expression context

    +

    B.742:1 +A value expression context is an expression context that is not a +place expression context.

    +
    +
    +

    B.743. value operand

    +

    B.743:1 +A value operand is an operand that supplies the value that is +assigned to an assignee operand by an assignment expression.

    +

    B.743:2 +See ValueOperand.

    +
    +
    +

    B.744. variable

    +

    B.744:1 +A variable is a placeholder for a value that is allocated on the +stack.

    +
    +
    +

    B.745. variadic part

    +

    B.745:1 +A variadic part indicates the presence of C-like optional +parameters.

    +

    B.745:2 +See VariadicPart.

    +
    +
    +

    B.746. variance

    +

    B.746:1 +Variance is a property of lifetime parameters and +type parameters that describes the circumstances under which a +generic type is a subtype of an instantiation of itself with +different generic arguments.

    +
    +
    +

    B.747. visibility

    +

    B.747:1 +Visibility is a property of fields and items that determines +which modules can refer to the name of the field or item.

    +
    +
    +

    B.748. visibility modifier

    +

    B.748:1 +A visibility modifier sets the visibility of the name of an +item.

    +
    +
    +

    B.749. weak keyword

    +

    B.749:1 +A weak keyword is a keyword whose special meaning depends on the +context.

    +

    B.749:2 +See WeakKeyword.

    +
    +
    +

    B.750. where clause

    +

    B.750:1 +A where clause is a construct that specifies bounds on +lifetime parameters and type parameters.

    +

    B.750:2 +See WhereClause.

    +
    +
    +

    B.751. where clause predicate

    +

    B.751:1 +A where clause predicate is either a lifetime bound predicate or a +type bound predicate.

    +

    B.751:2 +See WhereClausePredicate.

    +
    +
    +

    B.752. while let loop

    +

    B.752:1 +For while let loop, see while let loop expression.

    +
    +
    +

    B.753. while let loop expression

    +

    B.753:1 +A while let loop expression is a loop expression that continues to +evaluate its loop body as long as its subject let expression yields a +value that can be matched against its pattern.

    +

    B.753:2 +See WhileLetLoopExpression.

    +
    +
    +

    B.754. while loop

    +

    B.754:1 +For while loop, see while loop expression.

    +
    +
    +

    B.755. while loop expression

    +

    B.755:1 +A while loop expression is a loop expression that continues to +evaluate its loop body as long as its iteration expression holds +true.

    +

    B.755:2 +See WhileLoopExpression.

    +
    +
    +

    B.756. whitespace string

    +

    B.756:1 +A whitespace string is a string that consists of one or more +whitespace characters.

    +
    +
    +

    B.757. zero-sized type

    +

    B.757:1 +A zero-sized type is a fixed sized type with size zero.

    +
    +
    +

    B.758. zero-variant enum type

    +

    B.758:1 +A zero-variant enum type is an enum type without any +enum variants.

    +
    +
    + + +
    +
    +

    + Copyright © The Ferrocene Developers. + + Contents released under the MIT or Apache 2.0 license. + +

    + + +

    Built from commit: 2d7de7f91004615d8c7b4fb2416718fb7bb4f769

    + +

    Ferrocene is a registered trademark of Critical Section GmbH.

    +
    +
    +
    + + + \ No newline at end of file diff --git a/implementations.html b/implementations.html new file mode 100644 index 00000000..099f7925 --- /dev/null +++ b/implementations.html @@ -0,0 +1,319 @@ + + + + + + + + + + + + 11. Implementations — Ferrocene Language Specification + + + + + + + + + + + + + + +
    + +
    +
    + +
    +

    11. Implementations

    +

    Syntax

    +
    Implementation ::=
    +    InherentImplementation
    +  | TraitImplementation
    +
    +InherentImplementation ::=
    +    impl GenericParameterList? ImplementingType WhereClause? ImplementationBody
    +
    +TraitImplementation ::=
    +    unsafe? impl GenericParameterList? !? ImplementedTrait for ImplementingType WhereClause? ImplementationBody
    +
    +ImplementingType ::=
    +    TypeSpecification
    +
    +ImplementedTrait ::=
    +    TypePath
    +
    +ImplementationBody ::=
    +    {
    +      InnerAttributeOrDoc*
    +      AssociatedItem*
    +    }
    +

    Legality Rules

    +

    11:1 +An implementation is an item that supplements an +implementing type by extending its functionality.

    +

    11:2 +An implementing type is the type that the associated items of +an implementation are associated with.

    +

    11:3 +Within an implementation, the type Self acts as a type alias +for the implementing type.

    +

    11:4 +An implementation body is a construct that encapsulates the +associated items, inner attributes, and +inner doc comments of an implementation.

    +

    11:5 +An inherent implementation is an implementation that adds direct +functionality.

    +

    11:6 +Inherent implementations of the same implementing type shall be +defined within the same crate.

    +

    11:7 +A trait implementation is an implementation that adds functionality +specified by a trait.

    +

    11:8 +An unsafe trait implementation is a trait implementation subject to +keyword unsafe.

    +

    11:9 +An implemented trait is a trait whose functionality has been +implemented by an implementing type.

    +

    11:10 +The type path of a trait implementation shall resolve to a trait.

    +

    11:11 +A trait implementation shall be an unsafe trait implementation if and +only if it implements an unsafe trait.

    +

    11:12 +Trait implementations are subject to implementation coherence and +implementation conformance.

    +

    11:13 +Inherent implementations of the same implementing type shall not +define more than one associated item with the same name in the same +namespace.

    +

    Examples

    +
    trait Shape {
    +    fn area(self) -> f64;
    +}
    +
    +
    +

    11:14 +Circle is an implementing type.

    +
    struct Circle {
    +    radius: f64
    +}
    +
    +
    +

    11:15 +The following is an inherent implementation:

    +
    impl Circle {
    +    fn set_radius(mut self, new_radius: f64) {
    +        self.radius = new_radius;
    +    }
    +}
    +
    +
    +

    11:16 +The following is a trait implementation:

    +
    impl Shape for Circle {
    +    fn area(self) -> f64 {
    +        self.radius.powi(2) * std::f64::consts::PI
    +    }
    +}
    +
    +
    +
    +

    11.1. Implementation Coherence

    +

    Legality Rules

    +

    11.1:1 +A trait implementation exhibits implementation coherence when it is +valid and does not overlap with another trait implementation.

    +

    11.1:2 +Two trait implementations of the same implemented trait overlap when +the intersection of the implementing types is non-empty.

    +

    11.1:3 +Given trait implementation +impl<P1, P2, .., PN> Trait<T1, T2, .., TN> for T0, the +trait implementation is considered valid when

    + +

    11.1:8 +A trait or type is fundamental when its +implementation coherence rules are relaxed and the trait or type +is always treated as if it was a local trait or a local type.

    +

    11.1:9 +The following types are fundamental:

    + +

    11.1:12 +The following traits are fundamental:

    + +

    11.1:17 +A trait implementation shall be coherent.

    +
    +
    +

    11.2. Implementation Conformance

    +

    Legality Rules

    +

    11.2:1 +A trait implementation exhibits implementation conformance when it +satisfies the constraints of its implemented trait.

    +

    11.2:2 +An associated trait constant is conformant with an associated constant +of an implemented trait when

    + +

    11.2:5 +An associated trait function is conformant with an associated function +of an implemented trait when

    + +

    11.2:8 +An associated type of a trait implementation is conformant with an +associated type of an implemented trait when

    + +

    11.2:11 +A trait implementation is conformant with an implemented trait when:

    + +

    11.2:15 +A trait implementation shall be conformant.

    +
    +
    + + +
    +
    +

    + Copyright © The Ferrocene Developers. + + Contents released under the MIT or Apache 2.0 license. + +

    + + +

    Built from commit: 2d7de7f91004615d8c7b4fb2416718fb7bb4f769

    + +

    Ferrocene is a registered trademark of Critical Section GmbH.

    +
    +
    +
    + + + \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 00000000..888caf7d --- /dev/null +++ b/index.html @@ -0,0 +1,294 @@ + + + + + + + + + + + + Ferrocene Language Specification — Ferrocene Language Specification + + + + + + + + + + + + + +
    + +
    +
    + +
    +

    Ferrocene Language Specification

    +
    +

    Contents:

    + +
    + +
    +

    Indices and tables

    + +
    +
    + + +
    +
    +

    + Copyright © The Ferrocene Developers. + + Contents released under the MIT or Apache 2.0 license. + +

    + + +

    Built from commit: 2d7de7f91004615d8c7b4fb2416718fb7bb4f769

    + +

    Ferrocene is a registered trademark of Critical Section GmbH.

    +
    +
    +
    + + + \ No newline at end of file diff --git a/inline-assembly.html b/inline-assembly.html new file mode 100644 index 00000000..4b09b031 --- /dev/null +++ b/inline-assembly.html @@ -0,0 +1,1763 @@ + + + + + + + + + + + + 22. Inline Assembly — Ferrocene Language Specification + + + + + + + + + + + + + + +
    + +
    +
    + +
    +

    22. Inline Assembly

    +
    +

    Note

    +

    The contents of this section are informational.

    +
    +

    Legality Rules

    +

    22:1 +Inline assembly is hand-written assembly code that is integrated into a +Rust program.

    +

    22:2 +Inline assembly is written as an assembly code block that is +wrapped inside a macro invocation of macro core::arch::asm or +macro core::arch::global_asm.

    +

    22:3 +Inline assembly is available on the following architectures:

    +
      +
    • 22:4 +AArch64

    • +
    • 22:5 +ARM

    • +
    • 22:6 +RISC-V

    • +
    • 22:7 +x86 and x86-64

    • +
    +
    +

    22.1. Registers

    +

    Syntax

    +
    RegisterName ::=
    +    " ExplicitRegisterName "
    +  | RegisterClassName
    +
    +ExplicitRegisterName ::=
    +    a[0-31]
    +  | ah    | al    | ax
    +  | b[0-31]
    +  | bh    | bl    | bp    | bpl   | bx
    +  | ch    | cl    | cx
    +  | d[0-31]
    +  | dh    | di    | dil   | dl    | dx
    +  | eax   | ebp   | ebx   | ecx   | edi   | edx   | eip   | esi
    +  | esp
    +  | f[0-31]
    +  | fa[0-7]
    +  | ffr   | fp
    +  | fs[0-11]
    +  | ft[0-11]
    +  | gp
    +  | h[0-31]
    +  | ip
    +  | k[0-7]
    +  | lr
    +  | m[0-7]
    +  | p[0-15]
    +  | pc
    +  | q[0-31]
    +  | r[0-15]
    +  | r[8-15]d
    +  | r[8-15]w
    +  | ra    | rax
    +  | rb[8-15]
    +  | rbp   | rbx   | rcx
    +  | rdi   | rdx   | rfp   | rip   | rsi   | rsp
    +  | s[0-31]
    +  | si    | sil   | sl    | sp    | spl
    +  | st([0-7])
    +  | t[0-6]
    +  | tmm[0-7]
    +  | tp
    +  | v[0-31]
    +  | w[0-31]
    +  | wsp   | wzr
    +  | x[0-31]
    +  | xmm[0-31]
    +  | xzr
    +  | ymm[0-31]
    +  | zero
    +  | zmm[0-31]
    +

    Legality Rules

    +

    22.1:1 +A register is a hardware component capable of holding data that can be +read and written.

    +

    22.1:2 +An input register is a register whose register name is used in +a register argument subject to direction modifier in, inout, +or inlateout.

    +

    22.1:3 +An output register is a register whose register name is +used in a register argument subject to direction modifier out, +lateout, inout, or inlateout.

    +

    22.1:4 +A register that is not specified as an output register shall have the +same value upon exit from an assembly code block as it did upon entry +into the assembly code block.

    +

    22.1:5 +A register name is either the explicit register name of a +register, or the register class name of the register class a +register belongs to.

    +

    22.1:6 +An explicit register name is a target-specific string that identifies +a register.

    +

    22.1:7 +An explicit register name may be aliased as follows:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    22.1:8

    Architecture

    Explicit register name

    Aliases

    22.1:9

    AArch64

    sp

    wsp

    22.1:10

    AArch64

    v[0-31]

    b[0-31], d[0-31], h[0-31], q[0-31], s[0-31]

    22.1:11

    AArch64

    x[0-30]

    w[0-30]

    22.1:12

    AArch64

    x29

    fp

    22.1:13

    AArch64

    x30

    lr

    22.1:14

    AArch64

    xzr

    wzr

    22.1:15

    ARM

    r[0-3]

    a[1-4]

    22.1:16

    ARM

    r[4-9]

    v[1-6]

    22.1:17

    ARM

    r9

    rfp

    22.1:18

    ARM

    r10

    sl

    22.1:19

    ARM

    r11

    fp

    22.1:20

    ARM

    r12

    ip

    22.1:21

    ARM

    r13

    sp

    22.1:22

    ARM

    r14

    lr

    22.1:23

    ARM

    r15

    pc

    22.1:24

    RISC-V

    f[0-7]

    ft[0-7]

    22.1:25

    RISC-V

    f[8-9]

    fs[0-1]

    22.1:26

    RISC-V

    f[10-17]

    fa[0-7]

    22.1:27

    RISC-V

    f[18-27]

    fs[2-11]

    22.1:28

    RISC-V

    f[28-31]

    ft[8-11]

    22.1:29

    RISC-V

    x0

    zero

    22.1:30

    RISC-V

    x1

    ra

    22.1:31

    RISC-V

    x2

    sp

    22.1:32

    RISC-V

    x3

    gp

    22.1:33

    RISC-V

    x4

    tp

    22.1:34

    RISC-V

    x[5-7]

    t[0-2]

    22.1:35

    RISC-V

    x8

    fp, s0

    22.1:36

    RISC-V

    x9

    s1

    22.1:37

    RISC-V

    x[10-17]

    a[0-7]

    22.1:38

    RISC-V

    x[18-27]

    s[2-11]

    22.1:39

    RISC-V

    x[28-31]

    t[3-6]

    22.1:40

    x86

    ax

    eax, rax

    22.1:41

    x86

    bp

    bpl, ebp, rbp

    22.1:42

    x86

    bx

    ebx, rbx

    22.1:43

    x86

    cx

    ecx, rcx

    22.1:44

    x86

    di

    edi, rdi

    22.1:45

    x86

    dx

    edx, rdx

    22.1:46

    x86

    ip

    eip, rip

    22.1:47

    x86

    r[8-15]

    r[8-15]b, r[8-15]d, r[8-15]w

    22.1:48

    x86

    si

    esi, rsi

    22.1:49

    x86

    sp

    esp, rsp, spl

    22.1:50

    x86

    st(0)

    st

    22.1:51

    x86

    xmm[0-31]

    ymm[0-31], zmm[0-31]

    +

    22.1:52 +Certain explicit register names are not supported on selected +architectures, as follows:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    22.1:53

    Architecture

    Explicit register name

    Reason

    22.1:54

    all

    sp

    The stack pointer must be restored to its original value on exit from an +assembly code block.

    22.1:55

    AArch64

    x18

    OS-reserved register on some AArch64 targets.

    22.1:56

    AArch64

    x19

    Internally used by LLVM as a base pointer for functions with +complex stack frames.

    22.1:57

    AArch64

    x29

    The frame pointer cannot be used as an input or output.

    22.1:58

    AArch64

    xzr

    The constant zero register cannot be modified.

    22.1:59

    ARM

    pc

    The program counter cannot be modified.

    22.1:60

    ARM

    r6

    Internally used by LLVM as a base pointer for functions with +complex stack frames.

    22.1:61

    ARM

    r7, r11

    The frame pointer cannot be used as an input or output.

    22.1:62

    ARM

    r9

    OS-reserved register on some ARM targets.

    22.1:63

    RISC-V

    gp, tp

    Reserved registers.

    22.1:64

    RISC-V

    x0

    The constant zero register cannot be modified.

    22.1:65

    RISC-V

    x8

    The frame pointer cannot be used as an input or output.

    22.1:66

    RISC-V

    x9

    Internally used by LLVM as a base pointer for functions with +complex stack frames.

    22.1:67

    x86

    bp

    The frame pointer cannot be used as an input or output.

    22.1:68

    x86

    ip

    The program counter cannot be modified.

    22.1:69

    x86-32

    si

    Internally used by LLVM as a base pointer for functions with +complex stack frames.

    22.1:70

    x86-64

    bx

    Internally used by LLVM as a base pointer for functions with +complex stack frames.

    +

    22.1:71 +It is a static error to use an unsupported explicit register name.

    +

    Undefined Behavior

    +

    22.1:72 +It is undefined behavior if a register that is not specified as an +output register has a different value upon exit from an +assembly code block from the value it had upon entry into the +assembly code block.

    +
    +
    +

    22.2. Register Classes

    +

    Syntax

    +
    RegisterClassName ::=
    +    dreg
    +  | dreg_low16
    +  | dreg_low8
    +  | freg
    +  | kreg
    +  | kreg0
    +  | mmx_reg
    +  | preg
    +  | qreg
    +  | qreg_low4
    +  | qreg_low8
    +  | reg
    +  | reg_abcd
    +  | reg_byte
    +  | sreg
    +  | sreg_low16
    +  | tmm_reg
    +  | vreg
    +  | vreg_low16
    +  | x86_reg
    +  | xmm_reg
    +  | ymm_reg
    +  | zmm_reg
    +

    Legality Rules

    +

    22.2:1 +A register class represents a set of registers.

    +

    22.2:2 +A register class name is a target-specific string that identifies a +register class.

    +

    22.2:3 +Registers are organized into register classes as follows:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    22.2:4

    Architecture

    Register class name

    Explicit register names

    22.2:5

    AArch64

    preg

    p[0-15], ffr

    22.2:6

    AArch64

    reg

    x[0-30]

    22.2:7

    AArch64

    vreg

    v[0-31]

    22.2:8

    AArch64

    vreg_low16

    v[0-15]

    22.2:9

    ARM / Thumb2

    reg

    r[0-12], r14

    22.2:10

    ARM / Thumb1

    reg

    r[0-7]

    22.2:11

    ARM

    dreg

    d[0-31]

    22.2:12

    ARM

    dreg_low8

    d[0-8]

    22.2:13

    ARM

    dreg_low16

    d[0-15]

    22.2:14

    ARM

    qreg

    q[0-15]

    22.2:15

    ARM

    qreg_low4

    q[0-3]

    22.2:16

    ARM

    qreg_low8

    q[0-8]

    22.2:17

    ARM

    sreg

    s[0-31]

    22.2:18

    ARM

    sreg_low16

    s[0-15]

    22.2:19

    RISC-V

    freg

    f[0-31]

    22.2:20

    RISC-V

    reg

    x1, x[0-7], x[9-15], x[16-31] (on non-RV32E)

    22.2:21

    RISC-V

    vreg

    v[0-31]

    22.2:22

    x86

    kreg

    k[1-7]

    22.2:23

    x86

    kreg0

    k0

    22.2:24

    x86

    mmx_reg

    mm[0-7]

    22.2:25

    x86

    reg

    ax, bp, bx, cx, di, dx, r[8-15], si

    22.2:26

    x86

    reg_abcd

    ax, bx, cx, dx

    22.2:27

    x86

    x87_reg

    st([0-7])

    22.2:28

    x86

    xmm_reg

    xmm[0-7], xmm[8-15] (on 64bit only)

    22.2:29

    x86

    ymm_reg

    ymm[0-7], ymm[8-15] (on 64bit only)

    22.2:30

    x86

    zmm_reg

    zmm[0-7], zmm[8-15] (on 64bit only)

    22.2:31

    x86-32

    reg_byte

    ah, al, bh, bl, ch, cl, dh, dl

    22.2:32

    x86-64

    reg_byte

    al, bl, bpl, cl, dil, dl, sil, r[8-15]b

    22.2:33

    x86-64

    tmm_reg

    tmm[0-7]

    +

    22.2:34 +If a value has a smaller size than the register it is allocated in, +then

    + +

    22.2:38 +If a register argument has direction modifier inout and an +input-output register expression, then the input register expression +and the output register expression shall have the same type.

    +
    +
    +

    22.3. Register Arguments

    +

    Syntax

    +
    RegisterArgument ::=
    +    (Identifier =)? DirectionModifier ( RegisterName ) RegisterExpression
    +
    +DirectionModifier ::=
    +    in
    +  | inlateout
    +  | inout
    +  | lateout
    +  | out
    +
    +RegisterExpression ::=
    +    InputOutputRegisterExpression
    +  | SimpleRegisterExpression
    +
    +InputOutputRegisterExpression ::=
    +    InputRegisterExpression => OutputRegisterExpression
    +  | InputRegisterExpression => UnderscoreExpression
    +
    +InputRegisterExpression ::=
    +    Expression
    +
    +OutputRegisterExpression ::=
    +    Expression
    +
    +SimpleRegisterExpression ::=
    +    Expression
    +  | UnderscoreExpression
    +

    Legality Rules

    +

    22.3:1 +A register argument is a construct that configures the input +and output of a register, and optionally binds the configuration to an +identifier.

    +

    22.3:2 +A register argument shall be used within an assembly instruction.

    +

    22.3:3 +A named register argument is a register argument whose configuration +is bound to an identifier.

    +

    22.3:4 +A positional register argument is a register argument whose +configuration is not bound to an identifier.

    +

    22.3:5 +A named register argument shall appear after a +positional register argument.

    +

    22.3:6 +An explicit register argument is a register argument that uses an +explicit register name.

    +

    22.3:7 +An explicit register argument shall appear after a +named register argument.

    +

    22.3:8 +A register class argument is a register argument that uses a +register class name.

    +

    22.3:9 +A register class argument causes an assembler to select a suitable +register from the related register class.

    +

    22.3:10 +A direction modifier is a construct that indicates whether a +register argument initializes a register, assigns the value of a +register to an expression, or both.

    +

    22.3:11 +An input register expression is an expression that provides the +initial value of a register.

    +

    22.3:12 +An output register expression is an expression that is assigned the +value of a register.

    +

    22.3:13 +An input-output register expression is a construct that specifies +both an input register expression and an output register expression.

    +

    22.3:14 +A simple register expression is either an expression or an +underscore expression.

    +

    22.3:15 +A register expression is either an input-output register expression +or a simple register expression.

    +

    22.3:16 +The type of an input register expression, +output register expression, or simple register expression shall +depend on the architecture and the target feature in effect, as follows:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    22.3:17

    Architecture

    Register class name

    Target feature

    Allowed types

    22.3:18

    AArch64

    preg

    n/a

    Only clobbers

    22.3:19

    AArch64

    reg

    none

    i8, i16, i32, f32, i64, f64

    22.3:20

    AArch64

    vreg

    neon

    i8, i16, i32, f32, i64, f64

    22.3:21

    ARM

    dreg

    vfp2

    i64, f64

    22.3:22

    ARM

    reg

    none

    i8, i16, i32, f32

    22.3:23

    ARM

    sreg

    vfp2

    i32, f32

    22.3:24

    RISC-V

    freg

    f

    f32

    22.3:25

    RISC-V

    freg

    d

    f64

    22.3:26

    RISC-V

    vreg

    n/a

    Only clobbers

    22.3:27

    RISC-V32

    reg

    none

    i8, i16, i32, f32

    22.3:28

    RISC-V64

    reg

    none

    i8, i16, i32, f32, i64, f64

    22.3:29

    x86

    kreg

    avx512f

    i8, i16

    22.3:30

    x86

    kreg

    avx512bw

    i32, i64

    22.3:31

    x86

    mmx_reg

    n/a

    Only clobbers

    22.3:32

    x86

    reg_byte

    none

    i8

    22.3:33

    x86

    tmm_reg

    n/a

    Only clobbers

    22.3:34

    x86

    x87_reg

    n/a

    Only clobbers

    22.3:35

    x86

    xmm_reg

    sse

    i32, f32, i64, f64

    22.3:36

    x86

    ymm_reg

    avx

    i32, f32, i64, f64

    22.3:37

    x86

    zmm_reg

    avx512f

    i32, f32, i64, f64

    22.3:38

    x86-32

    reg

    none

    i16, i32, f32

    22.3:39

    x86-64

    reg

    none

    i16, i32, f32, i64, f64

    +

    22.3:40 +If a register argument has direction modifier in and a +simple register expression, then

    + +

    22.3:43 +If a register argument has direction modifier out and a +simple register expression, then

    + +

    22.3:47 +If a register argument has direction modifier lateout and a +simple register expression, then the register argument behaves as a +register argument with direction modifier out, except that the +register can be reused with direction modifier in.

    +

    22.3:48 +If a register argument has direction modifier inout and a +simple register expression, then

    + +

    22.3:51 +If a register argument has direction modifier inout and an +input-output register expression, then

    + +

    22.3:55 +If a register argument has direction modifier inlateout and a +simple register expression, then the register argument behaves as a +register argument with direction modifier inout, except that the +register can be reused with direction modifier in.

    +

    22.3:56 +If a register argument has direction modifier inlateout and an +input-output register expression, then the register argument behaves +as a register argument with direction modifier inout, except that +the register can be reused with direction modifier in.

    +

    22.3:57 +It is a static error to specify a register argument with +direction modifier and register expression other than the +combinations listed above.

    +

    Dynamic Semantics

    +

    22.3:58 +The evaluation of a register argument proceeds as follows:

    + +

    Examples

    +
    let mut left_value: i32 = 1;
    +let right_value: i32 = 2;
    +
    +unsafe {
    +    asm!(
    +        "add {left} {right}",
    +        left = inout(reg) left_value,
    +        right = in(reg) right_value,
    +    );
    +}
    +
    +
    +
    +
    +

    22.4. Assembly Instructions

    +

    Syntax

    +
    AssemblyCodeBlock ::=
    +    AssemblyInstruction (, AssemblyInstruction)*
    +
    +AssemblyInstruction ::=
    +    StringLiteral
    +

    Legality Rules

    +

    22.4:1 +An assembly instruction is a string literal that represents a +low-level assembly operation or an assembly directive.

    +

    22.4:2 +An assembly instruction shall use the syntax of format strings as +defined in module std::fmt, and contain zero or more +register parameters.

    +

    22.4:3 +An assembly code block is a sequence of assembly instructions.

    +

    22.4:4 +When an assembly code block contains multiple assembly instructions, +the assembly instructions are treated as concatenated into a single +string literal, with character 0x0A (new line) between them.

    +

    22.4:5 +The set of memory locations that an assembly code block is allowed to +read and write are the same as those for an external function, excluding +the memory locations that are private to the assembly code block.

    +

    22.4:6 +A tool is not required to guarantee that an assembly code block appears +exactly once in the final assembly output.

    +

    22.4:7 +A tool is not required to guarantee that two assembly code blocks +appear in the same declarative order in the final assembly output, or appear +contiguously in successive addresses.

    +

    22.4:8 +A register parameter is a substring delimited by characters 0x7B (left +curly bracket) and 0x7D (right curly bracket) that is substituted with a +register argument in an assembly instruction.

    +

    22.4:9 +On x86 architectures, direction flag DF in register EFLAGS shall +be cleared on exit from an assembly code block.

    +

    Undefined Behavior

    +

    22.4:10 +On x86 architectures, it is undefined behavior if direction flag DF in +register EFLAGS remains set on exit from an assembly code block.

    +

    Examples

    +
    "shl {value} 2"
    +
    +
    +
    +

    22.4.1. Register Parameter Modifiers

    +

    Legality Rules

    +

    22.4.1:1 +A register parameter modifier is a substring that starts with character +0x3A (colon), follows a register parameter, and changes the formatting of +the related register parameter.

    +

    22.4.1:2 +The effects of a register parameter modifier depends on the architecture +and register class, as follows:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    22.4.1:3

    Architecture

    Register class

    Modifier

    Example output

    22.4.1:4

    AArch64

    reg

    none

    x0

    22.4.1:5

    AArch64

    reg

    :w

    w0

    22.4.1:6

    AArch64

    reg

    :x

    x0

    22.4.1:7

    AArch64

    vreg

    none

    v0

    22.4.1:8

    AArch64

    vreg

    :b

    b0

    22.4.1:9

    AArch64

    vreg

    :d

    d0

    22.4.1:10

    AArch64

    vreg

    :h

    h0

    22.4.1:11

    AArch64

    vreg

    :q

    q0

    22.4.1:12

    AArch64

    vreg

    :s

    s0

    22.4.1:13

    AArch64

    vreg

    :v

    v0

    22.4.1:14

    ARM

    dreg

    none

    d0

    22.4.1:15

    ARM

    qreg

    none

    q0

    22.4.1:16

    ARM

    qreg

    :e, :f

    d0, d1

    22.4.1:17

    ARM

    reg

    none

    r0

    22.4.1:18

    ARM

    sreg

    none

    s0

    22.4.1:19

    RISC-V

    freg

    none

    f0

    22.4.1:20

    RISC-V

    reg

    none

    x1

    22.4.1:21

    x86

    kreg

    none

    k1

    22.4.1:22

    x86

    reg

    :e

    eax

    22.4.1:23

    x86

    reg

    :x

    ax

    22.4.1:24

    x86

    reg_abcd

    :h

    ah

    22.4.1:25

    x86

    reg_byte

    none

    al / ah

    22.4.1:26

    x86

    xmm_reg

    none

    xmm0

    22.4.1:27

    x86

    ymm_reg

    none

    ymm0

    22.4.1:28

    x86

    zmm_reg

    none

    zmm0

    22.4.1:29

    x86

    xmm_reg, ymm_reg, zmm_reg

    :x

    xmm0

    22.4.1:30

    x86

    xmm_reg, ymm_reg, zmm_reg

    :y

    ymm0

    22.4.1:31

    x86

    xmm_reg, ymm_reg, zmm_reg

    :z

    zmm0

    22.4.1:32

    x86-32

    reg

    none

    eax

    22.4.1:33

    x86-32

    reg_abcd

    :l

    al

    22.4.1:34

    x86-64

    reg

    none

    rax

    22.4.1:35

    x86-64

    reg

    :l

    al

    22.4.1:36

    x86-64

    reg

    :r

    rax

    +

    Examples

    +
    let mut left_value: i32 = 1;
    +let right_value: i32 = 2;
    +
    +unsafe {
    +    asm!(
    +        "add {left}:e {right}:x",
    +        left = inout(reg) left_value,
    +        right = in(reg) right_value,
    +    );
    +}
    +
    +
    +
    +
    +

    22.4.2. Directive Support

    +

    Legality Rules

    +

    22.4.2:1 +An assembly directive is a request to the assembler to perform a +particular action or change a setting.

    +

    22.4.2:2 +If an assembly code block contains stateful assembly directives +that modify how subsequent assembly code is processed, then the +assembly code block shall undo the effects of the stateful +assembly directives before the assembly code block is completed.

    +

    22.4.2:3 +The common assembly directives are as follows:

    +
      +
    1. 22.4.2:4 +.2byte, .4byte, .8byte

    2. +
    3. 22.4.2:5 +.align, .ascii, .asciz, .alt_entry

    4. +
    5. 22.4.2:6 +.balign, .balignl, .balignw, .balign, .balignl, +.balignw, .bss, .byte

    6. +
    7. 22.4.2:7 +.comm

    8. +
    9. 22.4.2:8 +.data, .def, .double

    10. +
    11. 22.4.2:9 +.endef, .equ, .equiv, .eqv

    12. +
    13. 22.4.2:10 +.fill, .float

    14. +
    15. 22.4.2:11 +.globl, .global

    16. +
    17. 22.4.2:12 +.inst

    18. +
    19. 22.4.2:13 +.lcomm, .long

    20. +
    21. 22.4.2:14 +.octa, .option

    22. +
    23. 22.4.2:15 +.private_extern, .p2align, .pushsection, .popsection

    24. +
    25. 22.4.2:16 +.quad

    26. +
    27. 22.4.2:17 +.scl, .section, .set, .short, .size, .skip, +.sleb128, .space, .string

    28. +
    29. 22.4.2:18 +.text, .type

    30. +
    31. 22.4.2:19 +.uleb128

    32. +
    33. 22.4.2:20 +.word

    34. +
    +

    22.4.2:21 +The following assembly directives are relevant on ELF targets that +support DWARF unwind info.

    +
      +
    1. 22.4.2:22 +.cfi_adjust_cfa_offset

    2. +
    3. 22.4.2:23 +.cfi_def_cfa, .cfi_def_cfa_offset, .cfi_def_cfa_register

    4. +
    5. 22.4.2:24 +.cfi_endproc, .cfi_escape

    6. +
    7. 22.4.2:25 +.cfi_lsda

    8. +
    9. 22.4.2:26 +.cfi_offset

    10. +
    11. 22.4.2:27 +.cfi_personality

    12. +
    13. 22.4.2:28 +.cfi_register, .cfi_rel_offset, .cfi_remember_state, +.cfi_restore, .cfi_restore_state, .cfi_return_column

    14. +
    15. 22.4.2:29 +.cfi_same_value, .cfi_sections, .cfi_signal_frame, +.cfi_startproc

    16. +
    17. 22.4.2:30 +.cfi_undefined

    18. +
    19. 22.4.2:31 +.cfi_window_save

    20. +
    +

    22.4.2:32 +The following assembly directives are relevant on targets with +structured exception handling.

    +
      +
    1. 22.4.2:33 +.seh_endproc, .seh_endprologue

    2. +
    3. 22.4.2:34 +.seh_proc, .seh_pushreg

    4. +
    5. 22.4.2:35 +.seh_savereg, .seh_setframe, .seh_stackalloc

    6. +
    +

    22.4.2:36 +The following assembly directives are relevant on ARM targets.

    +
      +
    1. 22.4.2:37 +.code

    2. +
    3. 22.4.2:38 +.even

    4. +
    5. 22.4.2:39 +.fnstart, .fnend

    6. +
    7. 22.4.2:40 +.movsp

    8. +
    9. 22.4.2:41 +.save

    10. +
    11. 22.4.2:42 +.thumb, .thumb_func

    12. +
    +

    22.4.2:43 +The following assembly directives are relevant on x86 targets.

    +
      +
    1. 22.4.2:44 +.code16, .code32, .code64

    2. +
    3. 22.4.2:45 +.nops

    4. +
    +
    +
    +
    +

    22.5. ABI Clobbers

    +

    Syntax

    +
    AbiClobber ::=
    +    clobber_abi ( AbiKindList )
    +
    +AbiKindList ::=
    +    AbiKind (, AbiKind)* ,?
    +

    Legality Rules

    +

    22.5:1 +An ABI clobber is an argument to macro core::arch::asm which +indicates that the values of selected registers might be +overwritten during the execution of an assembly code block.

    +

    22.5:2 +Multiple ABI clobbers may be specified for an assembly code block. +Clobber constraints are applied for all unique registers in the union of +all specified ABIs.

    +

    22.5:3 +The effects of an ABI clobber depend on the ABI in effect, as follows:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    22.5:4

    Architecture

    AbiKind

    Clobbered registers

    22.5:5

    AArch64

    "C", "efiapi", "system"

    ffr, p[0-15], v[0-31], x[0-17], x18 (when not +reserved), x30

    22.5:6

    ARM

    "aapcs", "C", "efiapi", "system"

    d[0-7], d[16-31], r[0-3], r12, r14, s[0-15]

    22.5:7

    RISC-V

    "C", "efiapi", "system"

    f[0-7], f[10-17], f[28-31], v[0-31], x1, x[5-7], +x[10-17], x[28-31]

    22.5:8

    x86-32

    "C", "cdecl", "efiapi", "fastcall", "stdcall", +"system"

    ax, cx, dx, k[0-7], mm[0-7], st([0-7]), +xmm[0-7]

    22.5:9

    x86-64

    "C", "efiapi", "system" (on Windows), "win64"

    ax, cx, dx, k[0-7], mm[0-7], st([0-7]), +r[8-11], tmm[0-7], xmm[0-31]

    22.5:10

    x86-64

    "C", "system" (on non-Windows), "sysv64"

    ax, cx, di, dx, k[0-7], mm[0-7], r[8-11], +si, st([0-7]), tmm[0-7], xmm[0-31]

    +

    22.5:11 +On x86 architectures, the x87 floating-point register stack shall remain +unchanged unless all st([0-7]) registers have been +clobbered.

    +

    22.5:12 +On x86 architectures, if all x87 registers are clobbered, then the x87 +register stack is presumed empty upon entry of an assembly code block. +The x87 register stack shall be empty on exit from an +assembly code block.

    +

    Examples

    +
    clobber_abi("C", "system")
    +
    +
    +
    +
    +

    22.6. Assembly Options

    +

    Syntax

    +
    AssemblyOption ::=
    +    options ( OptionList )
    +
    +OptionList ::=
    +    Option (, Option)* ,?
    +
    +Option ::=
    +    att_syntax
    +  | nomem
    +  | noreturn
    +  | nostack
    +  | preserves_flags
    +  | pure
    +  | raw
    +  | readonly
    +

    Legality Rules

    +

    22.6:1 +An assembly option is used to specify a characteristic of or a restriction +on the related assembly code block.

    +

    22.6:2 +Assembly option att_syntax is applicable only to x86 architectures +and causes the assembler to use the .att_syntax prefix mode which prefixes +registers with %.

    +

    22.6:3 +Assembly option nomem indicates that the assembly code block does +not read or write memory.

    +

    22.6:4 +Assembly option noreturn indicates that the assembly code block +does not return, preventing the dropping of variables.

    +

    22.6:5 +Assembly option nostack indicates that the assembly code block +does not push on the stack, or write to the stack red-zone (if supported).

    +

    22.6:6 +If assembly option nostack is not in effect, then an +assembly code block is allowed to use stack space below the stack pointer. +Upon entry of an assembly code block, the stack pointer is suitably +aligned according to the target ABI for call expressions. The stack +pointer shall be restored to its original value on exit from the +assembly code block.

    +

    22.6:7 +Assembly option preserves_flags indicates that the +assembly code block does not modify the flags register.

    +

    22.6:8 +If assembly option preserves_flags is in effect, then the values +of the following flags registers shall be restored on exit from an +assembly code block:

    + + + + + + + + + + + + + + + + + + + + + + + +

    22.6:9

    Architecture

    Flag registers

    22.6:10

    AArch64

    Floating-point status FPRS register

    +

    Condition flags NZCV register

    +

    22.6:11

    ARM

    Condition flags C, N, V, Z in register CPSR

    +

    Condition flags C, N, V, Z in register FPSCR

    +

    Floating-point exception flags DZC, IDC, IOC, IXC, +OFC, UFC in register FPSCR

    +

    Greater than or equal flag GE in register CPRS

    +

    Saturation flag Q in register CPRS

    +

    Saturation flag QC in register FPSCR

    +

    22.6:12

    RISC-V

    Floating-point exception flags fflags in register fcsr

    +

    Vector extension state vcsr, vl, vtype

    +

    22.6:13

    x86

    Status flags AF, CF, OF, PF, SF, ZF in +register EFLAGS

    +

    Floating-point exception flags DE, IE, OE, PE, UE, +ZE in register MXCSR

    +

    Floating-point status word

    +
    +

    22.6:14 +Assembly option pure indicates that the assembly code block has no +side effects, and its outputs depend only on direct inputs.

    +

    22.6:15 +Assembly option raw causes assembly instructions to be parsed +raw, without any special handling of register parameters.

    +

    22.6:16 +Assembly option readonly indicates that the assembly code block +does not write memory.

    +

    22.6:17 +Assembly options att_syntax and raw shall appear only in +GlobalAsmArguments.

    +

    22.6:18 +Assembly options nomem and readonly shall not be used together.

    +

    22.6:19 +Assembly option noreturn shall not be specified on an +assembly code block that has output registers.

    +

    22.6:20 +Assembly option pure shall appear with either assembly option +nomem or assembly option readonly.

    +

    22.6:21 +Assembly option pure shall not be specified on an +assembly code block that either lacks output registers or all +register expressions of output registers are +underscore expressions.

    +

    Undefined Behavior

    +

    22.6:22 +It is undefined behavior if an assembly code block subject to +assembly option pure has side effects other than its direct outputs.

    +

    22.6:23 +It is undefined behavior if control reaches the end of an +assembly code block subject to assembly option noreturn.

    +

    Examples

    +
    options(nomem, pure)
    +
    +
    +
    +
    +

    22.7. Macros asm and global_asm

    +

    Syntax

    +
    AsmArguments ::=
    +    ( AssemblyCodeBlock (, RegisterArgument)* (, AbiClobber)* (, AssemblyOption)* ,? )
    +
    +GlobalAsmArguments ::=
    +    ( AssemblyCodeBlock (, RegisterArgument)* (, AssemblyOption)* ,? )
    +

    Legality Rules

    +

    22.7:1 +Assembly code blocks are embedded within Rust source code using +macros core::arch::asm and core::arch::global_asm.

    +

    22.7:2 +When invoking macro core::arch::asm, the DelimitedTokenTree of +the related macro invocation shall follow the syntax of AsmArguments.

    +

    22.7:3 +Invoking macro core::arch::asm causes the related +assembly code block to be integrated into the generated assembly of the +function where the macro invocation took place. A tool is free to +encapsulate the assembly code block in a separate function and +generate a call expression to it.

    +

    22.7:4 +When invoking macro core::arch::global_asm, the +DelimitedTokenTree of the related macro invocation shall follow the +syntax of GlobalAsmArguments.

    +

    22.7:5 +Invoking macro core::arch::global_asm causes the related +assembly code block to be emitted outside the function where the +macro invocation took place.

    +

    Dynamic Semantics

    +

    22.7:6 +The evaluation of a macro invocation to macro +core::arch::asm or macro core::arch::global_asm evaluates +register arguments in declarative order.

    +

    22.7:7 +The execution of an assembly code block produced by +inline assembly proceeds as follows:

    +
      +
    1. 22.7:8 +All input registers are initialized to the values provided by +the respective register arguments, in an undefined order.

    2. +
    3. 22.7:9 +The assembly instructions of the assembly code block are executed +in declarative order.

    4. +
    5. 22.7:10 +The values of all output registers are assigned to the +register expressions provided by the respective +register arguments, in an undefined order.

    6. +
    +

    Examples

    +
    fn asm_example() -> u32 {
    +    let basepri;
    +    unsafe {
    +        asm!("
    +            mrs {}, BASEPRI
    +        ",
    +        out(reg) basepri,
    +        options(nomem, nostack, preserves_flags))
    +    }
    +    basepri
    +}
    +
    +global_asm!("
    +    do_nothing:
    +        push {r7, lr}
    +        mov  r7, sp
    +        pop  {r7, pc}
    +    ",
    +    options(raw)
    +);
    +
    +fn global_asm_example() {
    +    extern "C" {
    +        fn do_nothing();
    +    }
    +
    +    unsafe { do_nothing() }
    +}
    +
    +
    +
    +
    + + +
    +
    +

    + Copyright © The Ferrocene Developers. + + Contents released under the MIT or Apache 2.0 license. + +

    + + +

    Built from commit: 2d7de7f91004615d8c7b4fb2416718fb7bb4f769

    + +

    Ferrocene is a registered trademark of Critical Section GmbH.

    +
    +
    +
    + + + \ No newline at end of file diff --git a/items.html b/items.html new file mode 100644 index 00000000..35cdf188 --- /dev/null +++ b/items.html @@ -0,0 +1,142 @@ + + + + + + + + + + + + 3. Items — Ferrocene Language Specification + + + + + + + + + + + + + + +
    + +
    +
    + +
    +

    3. Items

    +

    Syntax

    +
    Item ::=
    +    OuterAttributeOrDoc* (ItemWithVisibility | MacroItem)
    +
    +ItemWithVisibility ::=
    +    VisibilityModifier? (
    +        ConstantDeclaration
    +      | EnumDeclaration
    +      | ExternalBlock
    +      | ExternalCrateImport
    +      | FunctionDeclaration
    +      | Implementation
    +      | ModuleDeclaration
    +      | StaticDeclaration
    +      | StructDeclaration
    +      | TraitDeclaration
    +      | TypeAliasDeclaration
    +      | UnionDeclaration
    +      | UseImport
    +    )
    +
    +MacroItem ::=
    +    MacroRulesDeclaration
    +  | TerminatedMacroInvocation
    +

    Legality Rules

    +

    3:1 +The macro expansion of a terminated macro invocation is treated as +zero or more items if the terminated macro invocation appears as +an item.

    +

    Dynamic Semantics

    +

    3:2 +Elaboration is the process by which a declaration achieves its runtime +effects.

    +
    + + +
    +
    +

    + Copyright © The Ferrocene Developers. + + Contents released under the MIT or Apache 2.0 license. + +

    + + +

    Built from commit: 2d7de7f91004615d8c7b4fb2416718fb7bb4f769

    + +

    Ferrocene is a registered trademark of Critical Section GmbH.

    +
    +
    +
    + + + \ No newline at end of file diff --git a/lexical-elements.html b/lexical-elements.html new file mode 100644 index 00000000..3949ff0c --- /dev/null +++ b/lexical-elements.html @@ -0,0 +1,1308 @@ + + + + + + + + + + + + 2. Lexical Elements — Ferrocene Language Specification + + + + + + + + + + + + + + +
    + +
    +
    + +
    +

    2. Lexical Elements

    +
    +

    Note

    +

    The contents of this section are informational.

    +
    +

    2:1 +The text of a Rust program consists of modules organized into source +files. The text of a source file is a sequence of lexical +elements, each composed of characters, whose rules are presented in this +chapter.

    +
    +

    2.1. Character Set

    +

    2.1:1 +The program text of a Rust program is written using the Unicode character +set.

    +

    Syntax

    +

    2.1:2 +A character is defined by this document for each cell in the coding space +described by Unicode, regardless of whether or not Unicode allocates a +character to that cell.

    +

    2.1:3 +A whitespace character is one of the following characters:

    +
      +
    • 2.1:4 +0x09 (horizontal tabulation)

    • +
    • 2.1:5 +0x0A (new line)

    • +
    • 2.1:6 +0x0B (vertical tabulation)

    • +
    • 2.1:7 +0x0C (form feed)

    • +
    • 2.1:8 +0x0D (carriage return)

    • +
    • 2.1:9 +0x20 (space)

    • +
    • 2.1:10 +0x85 (next line)

    • +
    • 2.1:11 +0x200E (left-to-right mark)

    • +
    • 2.1:12 +0x200F (right-to-left mark)

    • +
    • 2.1:13 +0x2028 (line separator)

    • +
    • 2.1:14 +0x2029 (paragraph separator)

    • +
    +

    2.1:15 +A whitespace string is a string that consists of one or more +whitespace characters.

    +

    2.1:16 +An AsciiCharacter is any Unicode character in the range 0x00 - 0x7F, both inclusive.

    +

    Legality Rules

    +

    2.1:17 +The coded representation of a character is tool-defined.

    +
    +
    +

    2.2. Lexical Elements, Separators, and Punctuation

    +

    Syntax

    +
    LexicalElement ::=
    +    Comment
    +  | Identifier
    +  | Keyword
    +  | Literal
    +  | Punctuation
    +
    +Punctuation ::=
    +    Delimiter
    +  | +
    +  | -
    +  | *
    +  | /
    +  | %
    +  | ^
    +  | !
    +  | &
    +  | |
    +  | &&
    +  | ||
    +  | <<
    +  | >>
    +  | +=
    +  | -=
    +  | *=
    +  | /=
    +  | %=
    +  | ^=
    +  | &=
    +  | |=
    +  | <<=
    +  | >>=
    +  | =
    +  | ==
    +  | !=
    +  | >
    +  | <
    +  | >=
    +  | <=
    +  | @
    +  | _
    +  | .
    +  | ..
    +  | ...
    +  | ..=
    +  | ,
    +  | ;
    +  | :
    +  | ::
    +  | ->
    +  | =>
    +  | #
    +  | $
    +  | ?
    +
    +Delimiter ::=
    +    {
    +  | }
    +  | [
    +  | ]
    +  | (
    +  | )
    +

    Legality Rules

    +

    2.2:1 +The text of a source file is a sequence of separate lexical +elements. The meaning of a program depends only on the particular sequence of +lexical elements, excluding non-doc comments.

    +

    2.2:2 +A lexical element is the most basic syntactic element in program text.

    +

    2.2:3 +The text of a source file is divided into lines.

    +

    2.2:4 +A line is a sequence of zero or more characters followed by an end of +line.

    +

    2.2:5 +The representation of an end of line is tool-defined.

    +

    2.2:6 +A separator is a character or a string that separates adjacent lexical +elements. A whitespace string is a separator.

    +

    2.2:7 +A simple punctuator is one of the following special characters:

    +
    +
    +-
    +*
    +/
    +%
    +^
    +!
    +&
    +|
    +=
    +>
    +<
    +@
    +_
    +.
    +,
    +;
    +:
    +#
    +$
    +?
    +{
    +}
    +[
    +]
    +(
    +)
    +

    2.2:8 +A compound punctuator is one of the following two or more adjacent special +characters:

    +
    &&
    +||
    +<<
    +>>
    ++=
    +-=
    +*=
    +/=
    +%=
    +^=
    +&=
    +|=
    +<<=
    +>>=
    +==
    +!=
    +>=
    +<=
    +..
    +...
    +..=
    +::
    +->
    +=>
    +

    2.2:9 +The following compound punctuators are flexible compound +punctuators.

    +
    &&
    +||
    +<<
    +>>
    +

    2.2:10 +A flexible compound punctuator may be treated as a single compound +punctuator or two adjacent simple punctuators.

    +

    2.2:11 +Each of the special characters listed for single character punctuator +is a simple punctuator except if this character is used as a character +of a compound punctuator, or a character of a character literal, a +comment, a numeric literal, or a string literal.

    +

    2.2:12 +The following names are used when referring to punctuators:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    2.2:13

    punctuator

    name

    2.2:14

    +

    Plus

    2.2:15

    -

    Minus

    2.2:16

    *

    Star

    2.2:17

    /

    Slash

    2.2:18

    %

    Percent

    2.2:19

    ^

    Caret

    2.2:20

    !

    Not

    2.2:21

    &

    And

    2.2:22

    |

    Or

    2.2:23

    &&

    And and, lazy boolean and

    2.2:24

    ||

    Or or, lazy boolean or

    2.2:25

    <<

    Shift left

    2.2:26

    >>

    Shift right

    2.2:27

    +=

    Plus equals

    2.2:28

    -=

    Minus equals

    2.2:29

    *=

    Star equals

    2.2:30

    /=

    Slash equals

    2.2:31

    %=

    Percent equals

    2.2:32

    ^=

    Caret equals

    2.2:33

    &=

    And equals

    2.2:34

    |=

    Or equals

    2.2:35

    <<=

    Shift left equals

    2.2:36

    >>=

    Shift right equals

    2.2:37

    =

    Equals

    2.2:38

    ==

    Equals equals, logical equality

    2.2:39

    !=

    Not equals

    2.2:40

    >

    Greater than

    2.2:41

    <

    Less than

    2.2:42

    >=

    Greater than equals, greater than or equal to

    2.2:43

    <=

    Less than equals, less than or equal to

    2.2:44

    @

    At

    2.2:45

    _

    Underscore

    2.2:46

    .

    Dot

    2.2:47

    ..

    Dot dot, exclusive range

    2.2:48

    ...

    Dot dot dot, ellipsis

    2.2:49

    ..=

    Dot dot equals, inclusive range

    2.2:50

    ,

    Comma

    2.2:51

    ;

    Semicolon

    2.2:52

    :

    Colon

    2.2:53

    ::

    Colon colon, path separator

    2.2:54

    ->

    Right arrow

    2.2:55

    =>

    Fat arrow, Hashrocket

    2.2:56

    #

    Pound

    2.2:57

    $

    Dollar sign

    2.2:58

    ?

    Question mark

    2.2:59

    {

    Left curly brace

    2.2:60

    }

    Right curly brace

    2.2:61

    [

    Left square bracket

    2.2:62

    ]

    Right square bracket

    2.2:63

    (

    Left parenthesis

    2.2:64

    )

    Right parenthesis

    +
    +
    +

    2.3. Identifiers

    +

    Syntax

    +
    Identifier ::=
    +    NonKeywordIdentifier
    +  | RawIdentifier
    +
    +IdentifierList ::=
    +    Identifier (, Identifier)* ,?
    +
    +NonKeywordIdentifier ::=
    +    PureIdentifier
    +  | WeakKeyword
    +
    +RawIdentifier ::=
    +    r# (PureIdentifier | RawIdentifierKeyword)
    +
    +PureIdentifier ::=
    +    XID_Start XID_Continue*
    +  | _ XID_Continue+
    +
    +IdentifierOrUnderscore ::=
    +    Identifier
    +  | _
    +
    +Renaming ::=
    +    as IdentifierOrUnderscore
    +

    2.3:1 +A RawIdentifierKeyword is any keyword in category Keyword, +except crate, self, Self, and super.

    +

    2.3:2 +XID_Start and XID_Continue are defined in Unicode Standard Annex +#31.

    +

    Legality Rules

    +

    2.3:3 +An identifier is a lexical element that refers to a name.

    +

    2.3:4 +A pure identifier is an identifier that does not include weak +keywords.

    +

    2.3:5 +A pure identifier shall follow the specification in Unicode Standard Annex +#31 for Unicode version 13.0, with the following profile:

    +
      +
    • 2.3:6 +Start = XID_Start, plus character 0x5F (low line).

    • +
    • 2.3:7 +Continue = XID_Continue

    • +
    • 2.3:8 +Medial = empty

    • +
    +

    2.3:9 +Characters 0x200C (zero width non-joiner) and 0x200D (zero width joiner) shall +not appear in a pure identifier.

    +

    2.3:10 +A pure identifier shall be restricted to characters in category +AsciiCharacter in the following contexts:

    + +

    2.3:16 +Identifiers are normalized using Normalization Form C as defined in +Unicode Standard Annex #15.

    +

    2.3:17 +Two identifiers are considered the same if they consist of the same +sequence of characters after performing normalization.

    +

    2.3:18 +Declarative macros and procedural macros shall receive normalized +identifiers in their input.

    +

    Examples

    +
    foo
    +_identifier
    +r#true
    +Москва
    +東京
    +
    +
    +
    +
    +

    2.4. Literals

    +

    Syntax

    +
    Literal ::=
    +    BooleanLiteral
    +  | ByteLiteral
    +  | ByteStringLiteral
    +  | CharacterLiteral
    +  | NumericLiteral
    +  | StringLiteral
    +

    Legality Rules

    +

    2.4:1 +A literal is a fixed value in program text.

    +
    +

    2.4.1. Byte Literals

    +

    Syntax

    +
    ByteLiteral ::=
    +    b' ByteContent '
    +
    +ByteContent ::=
    +    ByteCharacter
    +  | ByteEscape
    +
    +ByteEscape ::=
    +  | \0
    +  | \"
    +  | \'
    +  | \t
    +  | \n
    +  | \r
    +  | \\
    +  | \x OctalDigit HexadecimalDigit
    +

    2.4.1:1 +A ByteCharacter is any character in category AsciiCharacter +except characters 0x09 (horizontal tabulation), 0x0A (new line), 0x0D (carriage +return), 0x27 (apostrophe), and 0x5C (reverse solidus).

    +

    Legality Rules

    +

    2.4.1:2 +A byte literal is a literal that denotes a fixed byte value.

    +

    2.4.1:3 +The type of a byte literal is u8.

    +

    Examples

    +
    b'h'
    +b'\n'
    +b'\x1B'
    +
    +
    +
    +
    +

    2.4.2. Byte String Literals

    +

    Syntax

    +
    ByteStringLiteral ::=
    +    RawByteStringLiteral
    +  | SimpleByteStringLiteral
    +

    Legality Rules

    +

    2.4.2:1 +A byte string literal is a literal that consists of multiple +AsciiCharacters.

    +

    2.4.2:2 +The character sequence 0x0D 0xCA (carriage return, new line) is replaced by 0xCA +(new line) inside of a byte string literal.

    +
    +

    2.4.2.1. Simple Byte String Literals

    +

    Syntax

    +
    SimpleByteStringLiteral ::=
    +    b" SimpleByteStringContent* "
    +
    +SimpleByteStringContent ::=
    +    ByteEscape
    +  | SimpleByteStringCharacter
    +  | StringContinuation
    +

    2.4.2.1:1 +A SimpleByteStringCharacter is any character in category AsciiCharacter +except characters 0x0D (carriage return), 0x22 (quotation mark), and 0x5C +(reverse solidus).

    +

    Legality Rules

    +

    2.4.2.1:2 +A simple byte string literal is a byte string literal that consists of multiple +AsciiCharacters.

    +

    2.4.2.1:3 +The type of a simple byte string literal of size N is &'static [u8; +N].

    +

    Examples

    +
    b""
    +b"a\tb"
    +b"Multi\
    +line"
    +
    +
    +
    +
    +

    2.4.2.2. Raw Byte String Literals

    +

    Syntax

    +
    RawByteStringLiteral ::=
    +    br RawByteStringContent
    +
    +RawByteStringContent ::=
    +    NestedRawByteStringContent
    +  | " AsciiCharacter* "
    +
    +NestedRawByteStringContent ::=
    +    # RawByteStringContent #
    +

    Legality Rules

    +

    2.4.2.2:1 +A raw byte string literal is a simple byte string literal that does not +recognize escaped characters.

    +

    2.4.2.2:2 +The type of a raw byte string literal of size N is &'static +[u8; N].

    +

    Examples

    +
    br""
    +br#""#
    +br##"left #"# right"##
    +
    +
    +
    +
    +
    +

    2.4.3. Numeric Literals

    +

    Syntax

    +
    NumericLiteral ::=
    +    FloatLiteral
    +  | IntegerLiteral
    +

    Legality Rules

    +

    2.4.3:1 +A numeric literal is a literal that denotes a number.

    +
    +

    2.4.3.1. Integer Literals

    +

    Syntax

    +
    IntegerLiteral ::=
    +    IntegerContent IntegerSuffix?
    +
    +IntegerContent ::=
    +    BinaryLiteral
    +  | DecimalLiteral
    +  | HexadecimalLiteral
    +  | OctalLiteral
    +
    +BinaryLiteral ::=
    +    0b BinaryDigitOrUnderscore* BinaryDigit BinaryDigitOrUnderscore*
    +
    +BinaryDigitOrUnderscore ::=
    +    BinaryDigit
    +  | _
    +
    +BinaryDigit ::=
    +    [0-1]
    +
    +DecimalLiteral ::=
    +    DecimalDigit DecimalDigitOrUnderscore*
    +
    +DecimalDigitOrUnderscore ::=
    +    DecimalDigit
    +  | _
    +
    +DecimalDigit ::=
    +    [0-9]
    +
    +HexadecimalLiteral ::=
    +    0x HexadecimalDigitOrUnderscore* HexadecimalDigit HexadecimalDigitOrUnderscore*
    +
    +HexadecimalDigitOrUnderscore ::=
    +    HexadecimalDigit
    +  | _
    +
    +HexadecimalDigit ::=
    +    [0-9 a-f A-F]
    +
    +OctalLiteral ::=
    +    0o OctalDigitOrUnderscore* OctalDigit OctalDigitOrUnderscore*
    +
    +OctalDigitOrUnderscore ::=
    +    OctalDigit
    +  | _
    +
    +OctalDigit ::=
    +    [0-7]
    +
    +IntegerSuffix ::=
    +    SignedIntegerSuffix
    +  | UnsignedIntegerSuffix
    +
    +SignedIntegerSuffix ::=
    +    i8
    +  | i16
    +  | i32
    +  | i64
    +  | i128
    +  | isize
    +
    +UnsignedIntegerSuffix ::=
    +    u8
    +  | u16
    +  | u32
    +  | u64
    +  | u128
    +  | usize
    +

    Legality Rules

    +

    2.4.3.1:1 +An integer literal is a numeric literal that denotes a whole number.

    +

    2.4.3.1:2 +A binary literal is an integer literal in base 2.

    +

    2.4.3.1:3 +A decimal literal is an integer literal in base 10.

    +

    2.4.3.1:4 +A hexadecimal literal is an integer literal in base 16.

    +

    2.4.3.1:5 +An octal literal is an integer literal in base 8.

    +

    2.4.3.1:6 +An integer suffix is a component of an integer literal that specifies +an explicit integer type.

    +

    2.4.3.1:7 +A suffixed integer is an integer literal with an integer suffix.

    +

    2.4.3.1:8 +An unsuffixed integer is an integer literal without an integer +suffix.

    +

    2.4.3.1:9 +The type of a suffixed integer is determined by its integer +suffix as follows:

    +
      +
    • 2.4.3.1:10 +Suffix i8 specifies type i8.

    • +
    • 2.4.3.1:11 +Suffix i16 specifies type i16.

    • +
    • 2.4.3.1:12 +Suffix i32 specifies type i32.

    • +
    • 2.4.3.1:13 +Suffix i64 specifies type i64.

    • +
    • 2.4.3.1:14 +Suffix i128 specifies type i128.

    • +
    • 2.4.3.1:15 +Suffix isize specifies type isize.

    • +
    • 2.4.3.1:16 +Suffix u8 specifies type u8.

    • +
    • 2.4.3.1:17 +Suffix u16 specifies type u16.

    • +
    • 2.4.3.1:18 +Suffix u32 specifies type u32.

    • +
    • 2.4.3.1:19 +Suffix u64 specifies type u64.

    • +
    • 2.4.3.1:20 +Suffix u128 specifies type u128.

    • +
    • 2.4.3.1:21 +Suffix usize specifies type usize.

    • +
    +

    2.4.3.1:22 +The type of an unsuffixed integer is determined by type inference +as follows:

    +
      +
    • 2.4.3.1:23 +If an integer type can be uniquely determined from the surrounding +program context, then the unsuffixed integer has that type.

    • +
    • 2.4.3.1:24 +If the program context under-constrains the type, then the inferred +type is i32.

    • +
    • 2.4.3.1:25 +If the program context over-constrains the type, then this is considered +a static error.

    • +
    +

    Examples

    +
    0b0010_1110_u8
    +1___2_3
    +0x4D8a
    +0o77_52i128
    +
    +
    +
    +
    +

    2.4.3.2. Float Literals

    +

    Syntax

    +
    FloatLiteral ::=
    +    DecimalLiteral .
    +  | DecimalLiteral FloatExponent
    +  | DecimalLiteral . DecimalLiteral FloatExponent?
    +  | DecimalLiteral (. DecimalLiteral)? FloatExponent? FloatSuffix
    +
    +FloatExponent ::=
    +    ExponentLetter ExponentSign? ExponentMagnitude
    +
    +ExponentLetter ::=
    +    e
    +  | E
    +
    +ExponentSign ::=
    +    +
    +  | -
    +
    +ExponentMagnitude ::=
    +    DecimalDigitOrUnderscore* DecimalDigit DecimalDigitOrUnderscore*
    +
    +FloatSuffix ::=
    +    f32
    +  | f64
    +

    Legality Rules

    +

    2.4.3.2:1 +A float literal is a numeric literal that denotes a fractional number.

    +

    2.4.3.2:2 +A float suffix is a component of a float literal that specifies an +explicit floating-point type.

    +

    2.4.3.2:3 +A suffixed float is a float literal with a float suffix.

    +

    2.4.3.2:4 +An unsuffixed float is a float literal without a float suffix.

    +

    2.4.3.2:5 +The type of a suffixed float is determined by the float suffix +as follows:

    +
      +
    • 2.4.3.2:6 +Suffix f32 specifies type f32.

    • +
    • 2.4.3.2:7 +Suffix f64 specifies type f64.

    • +
    +

    2.4.3.2:8 +The type of an unsuffixed float is determined by type inference +as follows:

    +
      +
    • 2.4.3.2:9 +If a floating-point type can be uniquely determined from the surrounding +program context, then the unsuffixed float has that type.

    • +
    • 2.4.3.2:10 +If the program context under-constrains the type, then the inferred +type is f64.

    • +
    • 2.4.3.2:11 +If the program context over-constrains the type, then this is considered +a static error.

    • +
    +

    Examples

    +
    45.
    +8E+1_820
    +3.14e5
    +8_031.4_e-12f64
    +
    +
    +
    +
    +
    +

    2.4.4. Character Literals

    +

    Syntax

    +
    CharacterLiteral ::=
    +    ' CharacterContent '
    +
    +CharacterContent ::=
    +    AsciiEscape
    +  | CharacterLiteralCharacter
    +  | UnicodeEscape
    +
    +AsciiEscape ::=
    +  | \0
    +  | \"
    +  | \'
    +  | \t
    +  | \n
    +  | \r
    +  | \\
    +  | \x OctalDigit HexadecimalDigit
    +

    2.4.4:1 +A CharacterLiteralCharacter is any Unicode character except +characters 0x09 (horizontal tabulation), 0x0A (new line), 0x0D (carriage +return), 0x27 (apostrophe), and 0x5c (reverse solidus).

    +

    2.4.4:2 +A UnicodeEscape starts with a \u{ literal, followed by 1 to 6 +instances of a HexadecimalDigit, inclusive, followed by a } character. +It can represent any Unicode codepoint between U+00000 and U+10FFFF, +inclusive, except Unicode surrogate codepoints, which exist between +the range of U+D800 and U+DFFF, inclusive.

    +

    Legality Rules

    +

    2.4.4:3 +A character literal is a literal that denotes a fixed Unicode +character.

    +

    2.4.4:4 +The type of a character literal is char.

    +

    Examples

    +
    'a'
    +'\t'
    +'\x1b'
    +'\u{1F30}'
    +
    +
    +
    +
    +

    2.4.5. String Literals

    +

    Syntax

    +
    StringLiteral ::=
    +    RawStringLiteral
    +  | SimpleStringLiteral
    +

    Legality Rules

    +

    2.4.5:1 +A string literal is a literal that consists of multiple characters.

    +

    2.4.5:2 +The character sequence 0x0D 0xCA (carriage return, new line) is replaced by 0xCA +(new line) inside of a string literal.

    +
    +

    2.4.5.1. Simple String Literals

    +

    Syntax

    +
    SimpleStringLiteral ::=
    +    " SimpleStringContent* "
    +
    +SimpleStringContent ::=
    +    AsciiEscape
    +  | SimpleStringCharacter
    +  | StringContinuation
    +  | UnicodeEscape
    +

    2.4.5.1:1 +A SimpleStringCharacter is any Unicode character except characters +0x0D (carriage return), 0x22 (quotation mark), and 0x5C (reverse solidus).

    +

    2.4.5.1:2 +StringContinuation is the character sequence 0x5C 0x0A (reverse solidus, +new line).

    +

    Legality Rules

    +

    2.4.5.1:3 +A simple string literal is a string literal where the characters are +Unicode characters.

    +

    2.4.5.1:4 +The type of a simple string literal is &'static str.

    +

    Examples

    +
    ""
    +"cat"
    +"\tcol\nrow"
    +"bell\x07"
    +"\uB80a"
    +"\
    +multi\
    +line\
    +string"
    +
    +
    +
    +
    +

    2.4.5.2. Raw String Literals

    +

    Syntax

    +
    RawStringLiteral ::=
    +    r RawStringContent
    +
    +RawStringContent ::=
    +    NestedRawStringContent
    +  | " ~[\r]* "
    +
    +NestedRawStringContent ::=
    +    # RawStringContent #
    +

    Legality Rules

    +

    2.4.5.2:1 +A raw string literal is a simple string literal that does not +recognize escaped characters.

    +

    2.4.5.2:2 +The type of a raw string literal is &'static str.

    +

    Examples

    +
    r""
    +r#""#
    +r##"left #"# right"##
    +
    +
    +
    +
    +
    +

    2.4.6. Boolean Literals

    +

    Syntax

    +
    BooleanLiteral ::=
    +    false
    +  | true
    +

    Legality Rules

    +

    2.4.6:1 +A boolean literal is a literal that denotes the truth values of +logic and Boolean algebra.

    +

    2.4.6:2 +The type of a boolean literal is bool.

    +

    Examples

    +
    true
    +
    +
    +
    +
    +
    +

    2.5. Comments

    +

    Syntax

    +
    Comment ::=
    +    BlockCommentOrDoc
    +  | LineCommentOrDoc
    +
    +BlockCommentOrDoc ::=
    +    BlockComment
    +  | InnerBlockDoc
    +  | OuterBlockDoc
    +
    +LineCommentOrDoc ::=
    +    LineComment
    +  | InnerLineDoc
    +  | OuterLineDoc
    +
    +LineComment ::=
    +    //
    +  | // (~[! /] | //) ~[\n]*
    +
    +BlockComment ::=
    +    /* (~[! *] | ** | BlockCommentOrDoc) (BlockCommentOrDoc | ~[*/])* */
    +  | /**/
    +  | /***/
    +
    +InnerBlockDoc ::=
    +    /*! (BlockCommentOrDoc | ~[*/ \r])* */
    +
    +InnerLineDoc ::=
    +    //! ~[\n \r]*
    +
    +OuterBlockDoc ::=
    +    /** (~[*] | BlockCommentOrDoc) (BlockCommentOrDoc | ~[*/ \r])* */
    +
    +OuterLineDoc ::=
    +    /// (~[/] ~[\n \r]*)?
    +

    Legality Rules

    +

    2.5:1 +A comment is a lexical element that acts as an annotation or an +explanation in program text.

    +

    2.5:2 +A block comment is a comment that spans one or more lines.

    +

    2.5:3 +A line comment is a comment that spans exactly one line.

    +

    2.5:4 +An inner block doc is a block comment that applies to an enclosing +non-comment construct.

    +

    2.5:5 +An inner line doc is a line comment that applies to an enclosing +non-comment construct.

    +

    2.5:6 +An inner doc comment is either an inner block doc or an +inner line doc.

    +

    2.5:7 +An outer block doc is a block comment that applies to a subsequent +non-comment construct.

    +

    2.5:8 +An outer line doc is a line comment that applies to a subsequent +non-comment construct.

    +

    2.5:9 +An outer doc comment is either an outer block doc or an +outer line doc.

    +

    2.5:10 +A doc comment is a comment class that includes inner block +docs, inner line docs, outer block docs, and outer line +docs.

    +

    2.5:11 +Character 0x0D (carriage return) shall not appear in a comment.

    +

    2.5:12 +Block comments, inner block docs, and outer block docs +shall extend one or more lines.

    +

    2.5:13 +Line comments, inner line docs, and outer line docs shall +extend exactly one line.

    +

    2.5:14 +Outer block docs and outer line docs shall apply to a subsequent +non-comment construct.

    +

    2.5:15 +Inner block docs and inner line docs shall apply to an enclosing +non-comment construct.

    +

    2.5:16 +Inner block docs and inner line docs are equivalent to +attribute doc of the form #![doc = content], where content +is a string literal form of the comment without the leading //!, +/*! amd trailing */ characters.

    +

    2.5:17 +Outer block docs and outer line docs are equivalent to +attribute doc of the form #[doc = content], where content +is a string literal form of the comment without the leading ///, +/** and trailing */ characters.

    +

    Examples

    +
    // This is a stand-alone line comment. So is the next line.
    +
    +////
    +
    +/* This is a stand-alone
    +   block comment. */
    +
    +/*
    +  /* This is a nested block comment */
    +*/
    +
    +/// This outer line comment applies to commented_module.
    +
    +/** This outer block comment applies to commented_module,
    +    and is considered documentation. */
    +
    +pub mod commented_module {
    +
    +    //! This inner line comment applies to commented_mode.
    +
    +    /*! This inner block comment applies to commented_module,
    +        and is considered documentation. */
    +}
    +
    +
    +
    +
    +

    2.6. Keywords

    +

    Syntax

    +
    Keyword ::=
    +    ReservedKeyword
    +  | StrictKeyword
    +  | WeakKeyword
    +

    Legality Rules

    +

    2.6:1 +A keyword is a word in program text that has special meaning.

    +

    2.6:2 +Keywords are case sensitive.

    +
    +

    2.6.1. Strict Keywords

    +

    Syntax

    +
    StrictKeyword ::=
    +    as
    +  | async
    +  | await
    +  | break
    +  | const
    +  | continue
    +  | crate
    +  | dyn
    +  | enum
    +  | extern
    +  | false
    +  | fn
    +  | for
    +  | if
    +  | impl
    +  | in
    +  | let
    +  | loop
    +  | match
    +  | mod
    +  | move
    +  | mut
    +  | pub
    +  | ref
    +  | return
    +  | self
    +  | Self
    +  | static
    +  | struct
    +  | super
    +  | trait
    +  | true
    +  | type
    +  | unsafe
    +  | use
    +  | where
    +  | while
    +

    Legality Rules

    +

    2.6.1:1 +A strict keyword is a keyword that always holds its special meaning.

    +
    +
    +

    2.6.2. Reserved Keywords

    +

    Syntax

    +
    ReservedKeyword ::=
    +    abstract
    +  | become
    +  | box
    +  | do
    +  | final
    +  | macro
    +  | override
    +  | priv
    +  | try
    +  | typeof
    +  | unsized
    +  | virtual
    +  | yield
    +

    Legality Rules

    +

    2.6.2:1 +A reserved keyword is a keyword that is not yet in use.

    +
    +
    +

    2.6.3. Weak Keywords

    +

    Syntax

    +
    WeakKeyword ::=
    +    macro_rules
    +  | 'static
    +  | union
    +

    Legality Rules

    +

    2.6.3:1 +A weak keyword is a keyword whose special meaning depends on the +context.

    +

    2.6.3:2 +Word macro_rules acts as a keyword only when used in the context of a +MacroRulesDefinition.

    +

    2.6.3:3 +Word 'static acts as a keyword only when used in the context of a +LifetimeIndication.

    +

    2.6.3:4 +Word union acts as a keyword only when used in the context of a +UnionDeclaration.

    +
    +
    +
    + + +
    +
    +

    + Copyright © The Ferrocene Developers. + + Contents released under the MIT or Apache 2.0 license. + +

    + + +

    Built from commit: 2d7de7f91004615d8c7b4fb2416718fb7bb4f769

    + +

    Ferrocene is a registered trademark of Critical Section GmbH.

    +
    +
    +
    + + + \ No newline at end of file diff --git a/licenses.html b/licenses.html new file mode 100644 index 00000000..1e8a4710 --- /dev/null +++ b/licenses.html @@ -0,0 +1,351 @@ + + + + + + + + + + + + A. Licenses — Ferrocene Language Specification + + + + + + + + + + + + + + +
    + +
    +
    + +
    +

    Note

    +

    The contents of this page are informational.

    +
    +
    +

    A. Licenses

    + +
    +

    A.2. Rust Reference Apache License

    +

    A.2:1 +Apache License

    +

    A.2:2 +Version 2.0, January 2004

    +

    A.2:3 +http://www.apache.org/licenses/

    +

    A.2:4 +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

    +

    A.2:5 +1. Definitions.

    +

    A.2:6 +“License” shall mean the terms and conditions for use, reproduction, and +distribution as defined by Sections 1 through 9 of this document.

    +

    A.2:7 +“Licensor” shall mean the copyright owner or entity authorized by the copyright +owner that is granting the License.

    +

    A.2:8 +“Legal Entity” shall mean the union of the acting entity and all other entities +that control, are controlled by, or are under common control with that entity. +For the purposes of this definition, “control” means (i) the power, direct +or indirect, to cause the direction or management of such entity, whether by +contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the +outstanding shares, or (iii) beneficial ownership of such entity.

    +

    A.2:9 +“You” (or “Your”) shall mean an individual or Legal Entity exercising +permissions granted by this License.

    +

    A.2:10 +“Source” form shall mean the preferred form for making modifications, including +but not limited to software source code, documentation source, and configuration +files.

    +

    A.2:11 +“Object” form shall mean any form resulting from mechanical transformation or +translation of a Source form, including but not limited to compiled object code, +generated documentation, and conversions to other media types.

    +

    A.2:12 +“Work” shall mean the work of authorship, whether in Source or Object form, made +available under the License, as indicated by a copyright notice that is included +in or attached to the work (an example is provided in the Appendix below).

    +

    A.2:13 +“Derivative Works” shall mean any work, whether in Source or Object form, that +is based on (or derived from) the Work and for which the editorial revisions, +annotations, elaborations, or other modifications represent, as a whole, an +original work of authorship. For the purposes of this License, Derivative Works +shall not include works that remain separable from, or merely link (or bind by +name) to the interfaces of, the Work and Derivative Works thereof.

    +

    A.2:14 +“Contribution” shall mean any work of authorship, including the original version +of the Work and any modifications or additions to that Work or Derivative +Works thereof, that is intentionally submitted to Licensor for inclusion in the +Work by the copyright owner or by an individual or Legal Entity authorized to +submit on behalf of the copyright owner. For the purposes of this definition, +“submitted” means any form of electronic, verbal, or written communication +sent to the Licensor or its representatives, including but not limited to +communication on electronic mailing lists, source code control systems, and +issue tracking systems that are managed by, or on behalf of, the Licensor for +the purpose of discussing and improving the Work, but excluding communication +that is conspicuously marked or otherwise designated in writing by the copyright +owner as “Not a Contribution.”

    +

    A.2:15 +“Contributor” shall mean Licensor and any individual or Legal Entity on +behalf of whom a contribution has been received by Licensor and subsequently +incorporated within the Work.

    +

    A.2:16 +2. Grant of Copyright License. Subject to the terms and conditions of this +License, each Contributor hereby grants to You a perpetual, worldwide, +non-exclusive, no-charge, royalty-free, irrevocable copyright license to +reproduce, prepare Derivative Works of, publicly display, publicly perform, +sublicense, and distribute the Work and such Derivative Works in Source or +Object form.

    +

    A.2:17 +3. Grant of Patent License. Subject to the terms and conditions of this License, +each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, +no-charge, royalty-free, irrevocable (except as stated in this section) +patent license to make, have made, use, offer to sell, sell, import, and +otherwise transfer the Work, where such license applies only to those patent +claims licensable by such Contributor that are necessarily infringed by their +Contribution(s) alone or by combination of their Contribution(s) with the +Work to which such Contribution(s) was submitted. If You institute patent +litigation against any entity (including a cross-claim or counterclaim in a +lawsuit) alleging that the Work or a Contribution incorporated within the Work +constitutes direct or contributory patent infringement, then any patent licenses +granted to You under this License for that Work shall terminate as of the date +such litigation is filed.

    +

    A.2:18 +4. Redistribution. You may reproduce and distribute copies of the Work or +Derivative Works thereof in any medium, with or without modifications, and in +Source or Object form, provided that You meet the following conditions:

    +

    A.2:19 +(a) You must give any other recipients of the Work or Derivative Works a copy of +this License; and

    +

    A.2:20 +(b) You must cause any modified files to carry prominent notices stating that +You changed the files; and

    +

    A.2:21 +(c) You must retain, in the Source form of any Derivative Works that You +distribute, all copyright, patent, trademark, and attribution notices from the +Source form of the Work, excluding those notices that do not pertain to any part +of the Derivative Works; and

    +

    A.2:22 +(d) If the Work includes a “NOTICE” text file as part of its distribution, then +any Derivative Works that You distribute must include a readable copy of the +attribution notices contained within such NOTICE file, excluding those notices +that do not pertain to any part of the Derivative Works, in at least one of +the following places: within a NOTICE text file distributed as part of the +Derivative Works; within the Source form or documentation, if provided along +with the Derivative Works; or, within a display generated by the Derivative +Works, if and wherever such third-party notices normally appear. The contents +of the NOTICE file are for informational purposes only and do not modify the +License. You may add Your own attribution notices within Derivative Works +that You distribute, alongside or as an addendum to the NOTICE text from the +Work, provided that such additional attribution notices cannot be construed as +modifying the License.

    +

    A.2:23 +You may add Your own copyright statement to Your modifications and may provide +additional or different license terms and conditions for use, reproduction, or +distribution of Your modifications, or for any such Derivative Works as a whole, +provided Your use, reproduction, and distribution of the Work otherwise complies +with the conditions stated in this License.

    +

    A.2:24 +5. Submission of Contributions. Unless You explicitly state otherwise, any +Contribution intentionally submitted for inclusion in the Work by You to the +Licensor shall be under the terms and conditions of this License, without any +additional terms or conditions. Notwithstanding the above, nothing herein shall +supersede or modify the terms of any separate license agreement you may have +executed with Licensor regarding such Contributions.

    +

    A.2:25 +6. Trademarks. This License does not grant permission to use the trade names, +trademarks, service marks, or product names of the Licensor, except as required +for reasonable and customary use in describing the origin of the Work and +reproducing the content of the NOTICE file.

    +

    A.2:26 +7. Disclaimer of Warranty. Unless required by applicable law or agreed to +in writing, Licensor provides the Work (and each Contributor provides its +Contributions) on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +ANY KIND, either express or implied, including, without limitation, any +warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or +FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining +the appropriateness of using or redistributing the Work and assume any risks +associated with Your exercise of permissions under this License.

    +

    A.2:27 +8. Limitation of Liability. In no event and under no legal theory, whether +in tort (including negligence), contract, or otherwise, unless required by +applicable law (such as deliberate and grossly negligent acts) or agreed to +in writing, shall any Contributor be liable to You for damages, including any +direct, indirect, special, incidental, or consequential damages of any character +arising as a result of this License or out of the use or inability to use the +Work (including but not limited to damages for loss of goodwill, work stoppage, +computer failure or malfunction, or any and all other commercial damages or +losses), even if such Contributor has been advised of the possibility of such +damages.

    +

    A.2:28 +9. Accepting Warranty or Additional Liability. While redistributing the +Work or Derivative Works thereof, You may choose to offer, and charge a +fee for, acceptance of support, warranty, indemnity, or other liability +obligations and/or rights consistent with this License. However, in accepting +such obligations, You may act only on Your own behalf and on Your sole +responsibility, not on behalf of any other Contributor, and only if You agree to +indemnify, defend, and hold each Contributor harmless for any liability incurred +by, or claims asserted against, such Contributor by reason of your accepting any +such warranty or additional liability.

    +

    A.2:29 +END OF TERMS AND CONDITIONS

    +

    A.2:30 +APPENDIX: How to apply the Apache License to your work.

    +

    A.2:31 +To apply the Apache License to your work, attach the following boilerplate +notice, with the fields enclosed by brackets “[]” replaced with your own +identifying information. (Don’t include the brackets!) The text should +be enclosed in the appropriate comment syntax for the file format. We also +recommend that a file or class name and description of purpose be included on +the same “printed page” as the copyright notice for easier identification within +third-party archives.

    +

    A.2:32 +Copyright [yyyy] [name of copyright owner]

    +

    A.2:33 +Licensed under the Apache License, Version 2.0 (the “License”);

    +

    A.2:34 +you may not use this file except in compliance with the License.

    +

    A.2:35 +You may obtain a copy of the License at

    +

    A.2:36 +http://www.apache.org/licenses/LICENSE-2.0

    +

    A.2:37 +Unless required by applicable law or agreed to in writing, software distributed +under the License is distributed on an “AS IS” BASIS, WITHOUT WARRANTIES OR +CONDITIONS OF ANY KIND, either express or implied. See the License for the +specific language governing permissions and limitations under the License.

    +
    +
    +

    A.3. Rust Reference MIT License

    +

    A.3:1 +Copyright (c) 2010 The Rust Project Developers

    +

    A.3:2 +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:

    +

    A.3:3 +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software.

    +

    A.3:4 +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.

    +
    +
    + + +
    +
    +

    + Copyright © The Ferrocene Developers. + + Contents released under the MIT or Apache 2.0 license. + +

    + + +

    Built from commit: 2d7de7f91004615d8c7b4fb2416718fb7bb4f769

    + +

    Ferrocene is a registered trademark of Critical Section GmbH.

    +
    +
    +
    + + + \ No newline at end of file diff --git a/macros.html b/macros.html new file mode 100644 index 00000000..9d6b9f69 --- /dev/null +++ b/macros.html @@ -0,0 +1,991 @@ + + + + + + + + + + + + 20. Macros — Ferrocene Language Specification + + + + + + + + + + + + + + +
    + +
    +
    + +
    +

    20. Macros

    +

    Legality Rules

    +

    20:1 +A macro is a custom definition that extends Rust by defining callable +syntactic transformations. The effects of a macro are realized through +macro invocations or attribute use. Macros come in two +distinct forms:

    + +

    20:4 +Tokens are a subset of lexical elements consumed by macros.

    +
    +

    20.1. Declarative Macros

    +

    Syntax

    +
    MacroRulesDeclaration ::=
    +    macro_rules ! Name MacroRulesDefinition
    +
    +MacroRulesDefinition ::=
    +    ( MacroRuleList ) ;
    +  | [ MacroRuleList ] ;
    +  | { MacroRuleList }
    +
    +MacroRuleList ::=
    +    MacroRule (; MacroRule)* ;?
    +
    +MacroRule ::=
    +    MacroMatcher => MacroTranscriber
    +
    +MacroMatcher ::=
    +    ( MacroMatch* )
    +  | [ MacroMatch* ]
    +  | { MacroMatch* }
    +
    +MacroTranscriber ::=
    +    DelimitedTokenTree
    +
    +MacroMatch ::=
    +    MacroMatcher
    +  | MacroMatchToken
    +  | MacroMetavariableMatch
    +  | MacroRepetitionMatch
    +

    20.1:1 +A MacroMatchToken is any lexical element in category +LexicalElement, except punctuation $ and category Delimiter.

    +

    Legality Rules

    +

    20.1:2 +A declarative macro is a macro that associates a name with a set +of syntactic transformation macro rules.

    +

    20.1:3 +A macro rule is a construct that consists of a macro matcher and +a macro transcriber.

    +

    20.1:4 +A macro matcher is a construct that describes a syntactic pattern that +a macro must match.

    +

    20.1:5 +A macro match is the most basic form of a satisfied macro matcher.

    +

    20.1:6 +A macro transcriber is a construct that describes the replacement +syntax of a macro.

    +

    20.1:7 +A declarative macro is invoked using a macro invocation.

    +

    Examples

    +
    macro_rules! answer_to_life {
    +    () => { 42 };
    +}
    +
    +
    +
    +

    20.1.1. Metavariables

    +

    Syntax

    +
    MacroMetavariableMatch ::=
    +    $ MacroMetavariable : MacroFragmentSpecifier
    +
    +MacroMetavariable ::=
    +    Keyword
    +  | NonKeywordIdentifier
    +
    +MacroFragmentSpecifier ::=
    +    block
    +  | expr
    +  | ident
    +  | item
    +  | lifetime
    +  | literal
    +  | meta
    +  | pat
    +  | pat_param
    +  | path
    +  | stmt
    +  | tt
    +  | ty
    +  | vis
    +
    +MacroMetavariableIndication ::=
    +    $ MacroMetavariable
    +

    Legality Rules

    +

    20.1.1:1 +Declarative macros employ metavariables to match a token of +a particular kind and bind its value to a name for use during +macro transcription.

    +

    20.1.1:2 +A metavariable is a macro match that describes a variable.

    +

    20.1.1:3 +A metavariable is visible in the macro transcriber of the +macro rule of the macro matcher it is declared in.

    +

    20.1.1:4 +A fragment specifier is a construct that indicates the type of +a metavariable.

    +

    20.1.1:5 +Fragment specifier kinds impose the following +fragment specifier restrictions on the tokens that follow them:

    +
      +
    • 20.1.1:6 +expr shall only be followed by =>, ,, or ;.

    • +
    • 20.1.1:7 +pat shall only be followed by =>, ,, =, |, if, or +in.

    • +
    • 20.1.1:8 +path shall only be followed by =>, ,, =, |, ;, :, +>, >>, [, {, as, where, or a metavariable with +the block fragment specifier kind.

    • +
    • 20.1.1:9 +pat_param shall only be followed by =>, ,, =, |, if, +or in.

    • +
    • 20.1.1:10 +stmt shall only be followed by =>, ,, or ;.

    • +
    • 20.1.1:11 +ty shall only be followed by =>, ,, =, |, ;, :, +>, >>, [, {, as, where, or a metavariable with +the block fragment specifier kind.

    • +
    • 20.1.1:12 +vis shall only be followed by ,, an identifier except for +priv, any token that may begin a TypeSpecification, or a +metavariable with the ident, ty or block +fragment specifier kind.

    • +
    • 20.1.1:13 +Any other kind may be followed by any token.

    • +
    +

    20.1.1:14 +A metavariable indication is a construct that indicates a +metavariable.

    +

    Examples

    +
    macro_rules! square {
    +    ($e:expr) => { $e * $e };
    +}
    +
    +
    +
    +
    +

    20.1.2. Repetition

    +

    Syntax

    +
    MacroRepetitionMatch ::=
    +    $ ( MacroRepetitionMatchContent ) MacroRepetitionSeparator? MacroRepetitionOperator
    +
    +MacroRepetitionMatchContent ::=
    +    MacroMatch*
    +
    +MacroRepetitionTranscriber ::=
    +    $ ( TokenTree* ) MacroRepetitionSeparator? MacroRepetitionOperator
    +
    +MacroRepetitionOperator ::=
    +    +
    +  | *
    +  | ?
    +

    20.1.2:1 +A MacroRepetitionSeparator is any lexical element in category +LexicalElement, except punctuation +, *, ?, and category +Delimiter.

    +

    Legality Rules

    +

    20.1.2:2 +A macro repetition in matching allows for a syntactic pattern to be matched +zero or multiple times during macro matching.

    +

    20.1.2:3 +A macro repetition in transcription allows for a syntactic pattern to be +transcribed zero or multiple times during macro transcription.

    +

    20.1.2:4 +A macro repetition is either a macro repetition in matching or a +macro repetition in transcription.

    +

    20.1.2:5 +A repetition operator is a construct that indicates the number +of times a macro repetition in matching or a +macro repetition in transcription can be repeated.

    +

    20.1.2:6 +The effects of a repetition operator are as follows:

    +
      +
    • 20.1.2:7 +* - Zero or more repetitions.

    • +
    • 20.1.2:8 ++ - One or more repetitions.

    • +
    • 20.1.2:9 +? - Zero or one repetition.

    • +
    +

    20.1.2:10 +A macro repetition has the following additional restrictions:

    + +

    Examples

    +
    macro_rules! generate_pairs {
    +    ( $( $first:ident )* ; $( &second:ident )* )
    +        =>
    +    { $( $first, $second )* };
    +}
    +
    +
    +
    +
    +
    +

    20.2. Procedural Macros

    +

    Legality Rules

    +

    20.2:1 +A procedural macro is a macro that encapsulates syntactic +transformations in a function. Procedural macros consume one or more +streams of tokens and produce a stream of tokens.

    +

    20.2:2 +Procedural macros shall be defined in a crate subject to +attribute crate_type where the type is proc-macro.

    +

    20.2:3 +A macro implementation function is the function that encapsulates the +syntactic transformations of a procedural macro.

    +

    20.2:4 +A macro implementation function enters the name of the +procedural macro into the macro namespace.

    +
    +

    20.2.1. Function-like Macros

    +

    Legality Rules

    +

    20.2.1:1 +A function-like macro is a procedural macro that consumes a stream of +tokens and produces a stream of tokens.

    +

    20.2.1:2 +The macro implementation function of a function-like macro shall be +subject to the following restrictions:

    + +

    20.2.1:9 +A function-like macro is invoked using a macro invocation.

    +

    20.2.1:10 +The sole parameter of the macro implementation function captures the +token stream produced from the DelimitedTokenTree of the +macro invocation, excluding outer Delimiters.

    +

    Examples

    +
    #[proc_macro]
    +pub fn make_answer_to_life(_items: TokenStream) -> TokenStream {
    +    "fn answer_to_life() -> u32 { 42 }".parse().unwrap()
    +}
    +
    +
    +
    +
    +

    20.2.2. Derive Macros

    +

    Legality Rules

    +

    20.2.2:1 +A derive macro is a procedural macro that consumes a stream of +tokens and produces a stream of tokens. Derive macros are +used to construct new syntax for abstract data types.

    +

    20.2.2:2 +The macro implementation function of a derive macro shall be subject +to the following restrictions:

    + +

    20.2.2:9 +A derive macro is invoked using attribute derive.

    +

    20.2.2:10 +The sole parameter of the macro implementation function captures +the token stream produced from the related EnumDeclaration, +StructDeclaration, or UnionDeclaration.

    +

    20.2.2:11 +A derive macro adds all its declared derive helper attributes into +the derive helper attribute scope of the abstract data type the +attribute is attached to.

    +

    20.2.2:12 +A derive helper attribute is an inert attribute that acts as a +hint to attribute derive.

    +

    Examples

    +
    #[proc_macro_derive(Answer)]
    +pub fn derive_answer_to_life(_items: TokenStream) -> TokenStream {
    +    "fn answer_to_life() -> u32 { 42 }".parse().unwrap()
    +}
    +
    +
    +
    +
    +

    20.2.3. Attribute Macros

    +

    Legality Rules

    +

    20.2.3:1 +An attribute macro is a procedural macro that consumes two streams +of tokens to produce a single stream of tokens, and defines a +new outer attribute that can be attached to items. +Attribute macros are used to replace items with other +items.

    +

    20.2.3:2 +The macro implementation function of an attribute macro shall be +subject to the following restrictions:

    + +

    20.2.3:9 +An attribute macro is invoked using an attribute of the form

    +
      +
    • 20.2.3:10 +#[SimplePath], or

    • +
    • 20.2.3:11 +#[SimplePath DelimitedTokenTree]

    • +
    +

    20.2.3:12 +The first function parameter of the macro implementation function +captures the token stream produced from the DelimitedTokenTree +of the invoking attribute, excluding outer Delimiters. If no +DelimitedTokenTree is provided, then the token stream is considered +empty.

    +

    20.2.3:13 +The second function parameter of the macro implementation function +captures the token stream produced from the related item, including +all outer attributes that apply to that item.

    +

    Examples

    +
    #[proc_macro_attribute]
    +pub fn output_and_return_item
    +    (attr: TokenStream, item: TokenStream) -> TokenStream
    +{
    +    println!("attr: \"{}\"", attr.to_string());
    +    println!("item: \"{}\"", item.to_string());
    +    item
    +}
    +
    +
    +
    +
    +
    +

    20.3. Macro Invocation

    +

    Syntax

    +
    MacroInvocation ::=
    +    SimplePath ! DelimitedTokenTree
    +
    +DelimitedTokenTree ::=
    +    ( TokenTree* )
    +  | [ TokenTree* ]
    +  | { TokenTree* }
    +
    +TokenTree ::=
    +    DelimitedTokenTree
    +  | NonDelimitedToken
    +
    +TerminatedMacroInvocation ::=
    +    SimplePath ! ( TokenTree* ) ;
    +  | SimplePath ! [ TokenTree* ] ;
    +  | SimplePath ! { TokenTree* }
    +

    20.3:1 +A NonDelimitedToken is any lexical element in category +LexicalElement, except category Delimiter.

    +

    Legality Rules

    +

    20.3:2 +A macro invocation is a call of a declarative macro or +function-like macro that is expanded statically and replaced with the +result of the macro.

    +

    20.3:3 +A terminated macro invocation is a macro invocation that may be used +as a statement.

    +

    Examples

    +

    20.3:4 +See Paragraph 20.1. for the declaration of answer_to_life.

    +
    answer_to_life!();
    +
    +
    +

    20.3:5 +See Paragraph 20.1.1. for the declaration of square.

    +
    square!(5);
    +
    +
    +

    20.3:6 +See Paragraph 20.1.2. for the declaration of generate_pairs.

    +
    generate_pairs!(1, 2, 3; 9, 8, 7);
    +
    +
    +

    20.3:7 +See Paragraph 20.2.1. for the declaration of +make_answer_to_life.

    +
    make_answer_to_life!();
    +
    +
    +

    20.3:8 +See Paragraph 20.2.2. for the declaration of Answer.

    +
    #[derive(Answer)]
    +struct derive_macro_invoker;
    +
    +
    +

    20.3:9 +See Paragraph 20.2.3. for the declaration of +output_and_return_item.

    +
    #[output_and_return_item]
    +fn attribute_macro_invoker() {}
    +
    +
    +
    +
    +

    20.4. Macro Expansion

    +

    Legality Rules

    +

    20.4:1 +Macro expansion is the process of statically executing a +macro invocation and replacing it with the produced output of the +macro invocation.

    +

    20.4:2 +Macro expansion of declarative macros proceeds as follows:

    +
      +
    1. 20.4:3 +The TokenTree of the macro invocation has all +outer block docs and outer line docs contained within replaced +by their equivalent attribute doc representation.

    2. +
    3. 20.4:4 +The TokenTree of the macro invocation is matched against the +macro rules of the resolved macro by considering individual +macro matchers. It is a static error if no macro matcher is +satisfied.

    4. +
    5. 20.4:5 +The macro transcriber of the satisfied macro rule produces its +result, with all metavariable indications resolved. It is a static +error if the macro transcriber fails to produce its result.

    6. +
    7. 20.4:6 +The macro invocation is replaced with the result of the +macro transcriber. It is a static error if the result cannot be parsed +according to the expected expansion syntax of the context where the +macro invocation resides. The expected expansion syntax is as follows:

      +
        +
      1. 20.4:7 +If the macro invocation appears as part of an associated item, +an item within an external block, or another +macro invocation, the output is required to constitute zero or more +items.

      2. +
      3. 20.4:8 +If the macro invocation appears as part of an +expression-without-block, the output is required to constitute an +expression.

      4. +
      5. 20.4:9 +If the macro invocation appears as part of a +pattern-without-range, the output is required to constitute zero or +more patterns.

      6. +
      7. 20.4:10 +If the macro invocation appears as part of a statement, the +output is required to constitute zero or more statements.

      8. +
      9. 20.4:11 +If the macro invocation appears as part of a +type specification without bounds, the output is required to +constitute a type.

      10. +
      +
    8. +
    +

    20.4:12 +Macro expansion of function-like macros proceeds as follows:

    +
      +
    1. 20.4:13 +The TokenTree of the macro invocation has all outer block +docs and outer line docs contained within replaced by their +equivalent attribute doc representation.

    2. +
    3. 20.4:14 +The TokenTree of the macro invocation is transformed into a +corresponding proc_macro::TokenStream.

    4. +
    5. 20.4:15 +The macro implementation function is called with the +proc_macro::TokenStream as its sole argument. It is a static error +if the macro implementation function call fails.

    6. +
    7. 20.4:16 +The macro invocation is replaced with the returned +proc_macro::TokenStream of the macro implementation function +call. It is a static error if the result can not be parsed according +to the expected expansion syntax of the context where the macro +invocation resides. The expected expansion syntax is as follows:

      +
        +
      1. 20.4:17 +If the macro invocation appears as part of an associated item, +an item within an external block, or another +macro invocation, the output is required to constitute zero or more +items.

      2. +
      3. 20.4:18 +If the macro invocation appears as part of an +expression-without-block, the output is required to constitute an +expression.

      4. +
      5. 20.4:19 +If the macro invocation appears as part of a +pattern-without-range, the output is required to constitute zero or +more patterns.

      6. +
      7. 20.4:20 +If the macro invocation appears as part of a statement, the +output is required to constitute zero or more statements.

      8. +
      9. 20.4:21 +If the macro invocation appears as part of a +type specification without bounds, the output is required to +constitute a type.

      10. +
      +
    8. +
    +

    20.4:22 +Macro expansion of derive macros proceeds as follows:

    +
      +
    1. 20.4:23 +The item subject to the derive macro has all +outer block docs and outer line docs contained within replaced +by their equivalent attribute doc representation.

    2. +
    3. 20.4:24 +The item subject to the derive macro is transformed into a +corresponding proc_macro::TokenStream without the +invoking derive attribute as well as any preceding derive +attributes.

    4. +
    5. 20.4:25 +The macro implementation function is called with the +proc_macro::TokenStream as its sole argument. It is a static error +if the macro implementation function call fails.

    6. +
    7. 20.4:26 +The returned proc_macro::TokenStream of the +macro implementation function call is appended to the enclosing +block expression or module where the related EnumDeclaration, +StructDeclaration, or UnionDeclaration resides. It is a static +error if the output proc_macro::TokenStream does not constitute zero +or more items.

    8. +
    +

    20.4:27 +Macro expansion of attribute macros proceeds as follows:

    +
      +
    1. 20.4:28 +The DelimitedTokenTree of the invoking attribute macro is +transformed into a corresponding proc_macro::TokenStream without +the outer Delimiters. If no DelimitedTokenTree is provided, +and empty proc_macro::TokenStream is used. This +proc_macro::TokenStream constitutes the first function parameter +of the macro implementation function.

    2. +
    3. 20.4:29 +The item subject to the attribute macro has all +outer block docs and outer line docs contained within replaced +by their equivalent attribute doc representation.

    4. +
    5. 20.4:30 +The item subject to the attribute macro is transformed into a +corresponding proc_macro::TokenStream without the invoking +attribute. This proc_macro::TokenStream constitutes the second +function parameter of the macro implementation function.

    6. +
    7. 20.4:31 +The macro implementation function is called with the two +proc_macro::TokenStreams as the two arguments. It is a static error +if the macro implementation function call fails.

    8. +
    9. 20.4:32 +The item subject to the attribute macro is replaced with the +returned proc_macro::TokenStream of the +macro implementation function call. It is a static error if the output +proc_macro::TokenStream does not constitute zero or more items.

    10. +
    +
    +

    20.4.1. Macro Matching

    +

    Legality Rules

    +

    20.4.1:1 +Macro matching is the process of performing rule matching and +token matching.

    +
    +

    20.4.1.1. Rule Matching

    +

    Legality Rules

    +

    20.4.1.1:1 +Rule matching is the process of consuming a TokenTree in an attempt +to fully satisfy the macro matcher of a macro rule that belongs to a +resolved declarative macro.

    +

    20.4.1.1:2 +Rule matching proceeds as follows:

    +
      +
    1. 20.4.1.1:3 +The macro matchers of all macro rules that belong to a resolved +macro are tried against the TokenTree of the macro invocation, +in declarative order. In the event of a static error, no further attempts at +selecting a subsequent macro matcher are made.

    2. +
    3. 20.4.1.1:4 +The macro match of a candidate macro matcher is tried against +the TokenTree of the macro invocation by matching individual +tokens, in left-to-right order. Matching does not employ lookahead. +It is a static error if matching a candidate macro matcher is ambiguous. +Matching does not employ backtracking. It is a static error if matching a +candidate macro matcher fails while parsing into a metavariable and +having consumed at least one token while parsing the metavariable.

    4. +
    5. 20.4.1.1:5 +It is a static error if no macro matcher is selected.

    6. +
    +
    +
    +

    20.4.1.2. Token Matching

    +

    Legality Rules

    +

    20.4.1.2:1 +Token matching is the process of consuming a TokenTree in an attempt +to fully satisfy a macro match of a selected macro matcher that +belongs to a resolved declarative macro.

    +

    20.4.1.2:2 +Token matching proceeds as follows:

    +

    20.4.1.2:3 +The outer Delimiters of a macro matcher match any outer +Delimiters in the macro invocation.

    +

    20.4.1.2:4 +A metavariable in a macro matcher is matched against a sequence of +tokens in the macro invocation based on its fragment specifier:

    + +

    20.4.1.2:19 +Once a metavariable is matched, the matching sequence of tokens is +bound to that metavariable.

    +

    20.4.1.2:20 +Repetition in a macro matcher is matched based on how many times the +pattern appears consecutively optionally separated by a separator in +the TokenTree of the macro invocation, as follows:

    +
      +
    • 20.4.1.2:21 +If the repeated pattern includes a separator, then the +separator must be able to follow the repeated pattern.

    • +
    • 20.4.1.2:22 +If the repeated pattern can appear multiple times, then the repeated +pattern must be able to follow itself.

    • +
    • 20.4.1.2:23 +If the repeated pattern can appear zero times, then the preceding +pattern must be able to follow the succeeding pattern.

    • +
    • 20.4.1.2:24 +The repeated pattern must be able to follow the preceding pattern.

    • +
    • 20.4.1.2:25 +The succeeding pattern must be able to follow the repeated pattern.

    • +
    +

    20.4.1.2:26 +A repetition index is a monotonically increasing number that is +initialized to zero, and incremented by one.

    +

    20.4.1.2:27 +Once a metavariable is matched, the matching sequence of tokens is +treated as follows:

    +
      +
    1. 20.4.1.2:28 +The matching sequence of tokens is stored in an ordered collection at +the current repetition index.

    2. +
    3. 20.4.1.2:29 +The current repetition index is incremented by one.

    4. +
    +

    20.4.1.2:30 +Each matched metavariable in a macro repetition in matching is bound +separately, where the matches are stored in an ordered collection.

    +

    20.4.1.2:31 +Any other token in a macro matcher is matched literally against the +TokenTree of the macro invocation.

    +

    20.4.1.2:32 +It is a static error if the TokenTree of the macro invocation contains +leftover tokens after macro matching.

    +
    +
    +
    +

    20.4.2. Macro Transcription

    +

    Legality Rules

    +

    20.4.2:1 +Macro transcription is the process of producing the expansion of a +declarative macro.

    +

    20.4.2:2 +Macro transcription proceeds as follows:

    +

    20.4.2:3 +Every metavariable indication found in the DelimitedTokenTree of the +macro transcriber that belongs to a matched macro rule is replaced by +the matched sequence of tokens of the metavariable.

    +

    20.4.2:4 +Unresolved metavariable indications are kept as tokens in the +output verbatim.

    +

    20.4.2:5 +Every macro repetition in transcription found in the +DelimitedTokenTree of the macro transcriber shall be transcribed by +repeatedly transcribing the tokens inside of it.

    +

    20.4.2:6 +The number of transcription repetitions for a +macro repetition in transcription shall depend on its +repetition operator, as follows:

    + +

    20.4.2:10 +A metavariable indication that is matched inside of a +macro repetition shall not be used outside of a +macro repetition in transcription.

    +

    20.4.2:11 +A metavariable indication shall be used in a +macro repetition in transcription of the same nesting depth as its +corresponding metavariable appears in the macro matcher.

    +

    20.4.2:12 +A metavariable indication within a macro repetition in transcription +shall repeat the same number of times in its matching macro repetition if +the macro repetition occurs at the same nesting depth.

    +

    20.4.2:13 +Multiple transcribed metavariable indications in the same macro +repetition in transcription shall repeat the same number of times.

    +

    20.4.2:14 +When transcribing a metavariable indication in a +macro repetition in transcription, the metavariable indication is +replaced with the matched sequence of tokens of the corresponding +iteration of the repetition metavariable taken from the ordered collection.

    +

    20.4.2:15 +A metavariable indication in a macro repetition in transcription shall +be transcribed to the matched tokens in order, as follows:

    +
    macro_rules! foo {
    +    ( $($expr:expr)* ) => {
    +        $( $expr ; )*
    +        // $expr is an error
    +    };
    +    ( $( $( $expr:expr )*  )*  ) => {
    +        $($($expr)*)*
    +    }
    +}
    +
    +foo! {
    +  0
    +  1
    +  2
    +}
    +
    +
    +

    20.4.2:16 +yields 0;1;2;

    +

    20.4.2:17 +Given a macro invocation with N metavariable arguments, a +macro of the form

    +
    macro_rules! m {
    +    ( $(param: expr)* ) => {
    +        $( $param )*
    +    }
    +}
    +
    +
    +

    20.4.2:18 +is equivalent to a macro of the form

    +
    macro_rules! m {
    +    ( $param_1: expr $param_2: expr ... $param_N: expr) => {
    +        $param_1 $param_2 ... $param_N
    +    }
    +}
    +
    +
    +

    20.4.2:19 +where the metavariable of the macro repetition in matching are +repeated N times, and the metavariable indications of the +macro repetition in transcription are repeated N times. Invoking such +a macro relates the first metavariable argument of the +macro invocation with the first metavariable of the +macro repetition in matching, the second metavariable argument with +the second metavariable, and so on.

    +
    +
    +
    +

    20.5. Hygiene

    +

    20.5:1 +Hygiene is a property of macros and identifiers that appear +within them, which aims to eliminate the syntactic interference between a +macro and its environment.

    +

    Legality Rules

    +

    20.5:2 +Hygiene is categorized as follows:

    + +

    20.5:6 +Every macro has associated hygiene that depends on its kind:

    + +

    20.5:9 +The metavariable $crate in a declarative macro‘s expansion refers +to the crate the declarative macro was declared in.

    +
    +
    + + +
    +
    +

    + Copyright © The Ferrocene Developers. + + Contents released under the MIT or Apache 2.0 license. + +

    + + +

    Built from commit: 2d7de7f91004615d8c7b4fb2416718fb7bb4f769

    + +

    Ferrocene is a registered trademark of Critical Section GmbH.

    +
    +
    +
    + + + \ No newline at end of file diff --git a/objects.inv b/objects.inv new file mode 100644 index 0000000000000000000000000000000000000000..0cd1953696c8a75c1c47c0391ebbe23edb9ccc0c GIT binary patch literal 293246 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∋pohTbO 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⪻?Z$v1=NgM`U!zzeXU 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�aJ_C-r(w83=8a%TGGw09SE*~S988UDzbn3hHsEJF z4^;G|%DFvmli752I@?(W43T0Gl@>cvu;?tCuU@lEWZ3MEh}WsMY6Hi>=w_d*5!fvz z@pJ@S#C+tBx5vGD`DfObaQdS?60sCM9iztFc zLy*{l7J766<8j*0y`1!Lm+zeR%lG%SdeCOp23bII1j*K0`syigS473&c^)Z1BV+GP zI*MhDdf}xKQqT=|N|7gExr@H9H(tzQOUjIu8?Z60XxtldbxW07&g4)hqv9gIIV}K) z5skB;T0Og$keI3C$l73*HV#|fWD+x;oF>UGWo&*PlSHZo zCa^mCZ42BYK25J+t+oc0r!;ZeU!VE0FE-r2@j=6WC^R^7z?(qgi4zvo#iTT=<)|2l zn+PnagD)u#3wz4?1jG-lPl04QUH-b?I7dUE`dj)+% zm{fQ%zIZ?a$MU^wT@$+|_A}bb(NX=mhjT1?b2#7UqeL@C#cU+?FfuC=tf3)AJFGq+ z04xJ9*=D4j2f+k=M4kqQE1XXO{K(onONO4@D+BO?uJkTO zM*?u;#Ov2;z+Y*`k%1)v^ct30UUv3z|9%_+feBcbuUr+dq*}oZ zM8g_$?5pzB2j-|kEDFE`@qpd%$~z#%WK9EFn6kn-9F7}Z{O$ftBb8c^cyKV?C&4(J z5h9gVtj&v5 zVU$9tJ-VW(#Z6IM4{Ao`Cqt1w&Zfvlm~MfHDP4u&kb#7zuy?-Z^YPL3ZY92`)Pb9X z8chKQNjxUO*6K>vprvq}%{ABq35W>q8h>L?lqOu&l;Wp&u+0+`xwx0Sybzo7aULgT zzpRd-0)`nHVenX(isL}P^8i=D5uV1Tx*=Y7*)dA7%}Qs;D@Dh7hqx0V*|z1D03N}>2(~Q zaXrlQAsB`6K!a+fD2fExX-!d^rfQ8afTR|?6-aEr17M5}3oi*C-1};1Yg0s;>cf|P z19(~=@53mCrf( zb>H24d#*2IzZ1g5)=L)q4WFEFnsP}Q@FLKysE-I-*%Wwo&|8S~k3qb}zM$nF?J6e6 zz3olyY8duyEoW&#NKN+#AiJ0pEslyVn&JyUbQXJnXOg4V2y#!9(vf&s(@Vs@qf3UT zDS`i7T8EW&>fT?&7mZnAkpc^_AqCowgpwq-crDc%HrU9Tp3?v_>gLgqtdGCWVkE{fLmydblX`g z$tG|@#|8sLq;VISJ$2Y1&40ec^B@j;K>ztof_5CW#WMm=(P_5{o?g=5JX_Fp zVS@_QNMq#b6qrV$5QU>oJ{a7mDhUGmKI{(lT3_EAZ<|FQ?ZJR-sEx;<-MMEhp^n$=lXBbNOl2ItLbuB6Lm_#y}?0g zR)<$q93Gp}tzhC#(Rj5Q5)Vo_XyYSK*CsGAk!9-OJY1yis5tO{md&DrioZ zvM&ng3#$ zXi+H!j~J&Bm1-vHl1M$E9-a;JiB1|OAXrQ4M1u4f@FG1`LmmfHw)>}erR&$s$1WlX zt`-U0rWa7^khmlHoq<5{_()2e8ViWgfJGkPN@2TzEcK)i$v^jSdaW;qS9-j|JP_`Y z4}0fG081?hLp*|#E<4>N`^3S8El7Bze_5wSlMc1v+iRZ#d)BF2HC_60i&Y?LN@|9D*R7%!W$}C8L1ce-7St|29!M2kO&GxD6Vc5Rp z=5U{JFkt`XsmM&y_9sb&_p%&~_qX`A0jHC&2i@pHyCfXDU<9(-CZ|4wc?i96*R7><&iO7rU zb2|8Ztlx)Kd_1;a>7wfe$NO8f35&0Tc?-OGkKN8rSl|zkVACBI9#|>9fu@h8LL3A? zsI7*7s?pEK#k_YZtv2p|g9-qSZJ-qgE`ofQIG}+%=Rm+54{DL8*}+9g6tD8wVHW_O zz}dmukvKmMv@a0VtnTITn=S7zO`M#|&rZ=b6#1|L6=UgfRH`|U1?;uNEMx*Xl2+A3 zL`!cxXhfkZjY9sKio!3qU;52UF5P=>>#khj3)j&B6VHb4TiKkz>X!}l<3MNz?x!2G zx0dH7l84BSAhHyS_)S>kHnS>V&Xbnl4+IFqrK&ZwS{7rM4o Yqsi& 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 + + + + + + + 15. Ownership and Destruction — Ferrocene Language Specification + + + + + + + + + + + + + + +
    + +
    +
    + +
    +

    15. Ownership and Destruction

    +
    +

    15.1. Ownership

    +

    Legality Rules

    +

    15.1:1 +Ownership is a property of values that is central to the resource +management model of Rust.

    +

    15.1:2 +An owner is a variable that holds a value.

    +

    15.1:3 +A value shall have only one owner.

    +
    +
    +

    15.2. Initialization

    +

    Legality Rules

    +

    15.2:1 +Initialization is the act of supplying an initial value to a +variable.

    +

    15.2:2 +When a variable holds a value, the variable is considered to be +initialized.

    +

    15.2:3 +When a variable lacks a value or its value has been +passed by move, the variable is considered +to be uninitialized.

    +

    15.2:4 +A variable shall be initialized before it is accessed.

    +

    Runtime Semantics

    +

    15.2:5 +All memory starts as uninitialized.

    +

    Examples

    +

    15.2:6 +Variable a is initialized.

    +
    let a: i32 = 42;
    +
    +
    +

    15.2:7 +Variable b starts off as uninitialized, but is later initialized by virtue +of the assignment statement.

    +
    let b: i32;
    +b = 42;
    +
    +
    +

    15.2:8 +Variable c starts off initialized, but is later uninitialized by virtue of a +transfer by move.

    +
    use core::sync::atomic::AtomicI32;
    +
    +let c: AtomicI32 = AtomicI32::new(42);
    +let d: AtomicI32 = c;
    +
    +
    +
    +
    +

    15.3. References

    +

    Legality Rules

    +

    15.3:1 +A reference is a value of a reference type. A reference +can be obtained explicitly by using a borrow expression or implicitly in +certain scenarios.

    +

    15.3:2 +A referent is the value pointed-to by a reference.

    +

    15.3:3 +A reference shall point to an initialized referent.

    +

    15.3:4 +The lifetime of a referent shall be at least as long as the +lifetime of its reference.

    +

    15.3:5 +A reference is active from the point of obtaining its referent +upto the last use of the reference, prior to another assignment to the +reference or the end of the scope of the reference.

    +

    15.3:6 +A referent shall not be passed by move while +a reference to it is active.

    +

    15.3:7 +A referent shall not be modified while a reference to it is +active.

    +

    15.3:8 +An immutable reference is a value of a shared reference type, and +prevents the mutation of its referent.

    +

    15.3:9 +A mutable reference is a value of a mutable reference type, and +allows the mutation of its referent.

    +

    15.3:10 +The referent of an immutable reference shall be mutated only when the +type of the referent is subject to interior mutability.

    +

    15.3:11 +While a mutable reference is active, no other reference shall +refer to a value that overlaps with the referent of the +mutable reference.

    +

    Undefined Behavior

    +

    15.3:12 +It is undefined behavior to access a value through aliasing +mutable references from unsafe context.

    +

    Examples

    +
    let immutable_reference: &i32 = &42;
    +let mutable_reference: &mut i32 = &mut 42;
    +
    +
    +
    +
    +

    15.4. Borrowing

    +

    Legality Rules

    +

    15.4:1 +Borrowing is the process of temporarily associating a reference with a +value without transferring ownership permanently.

    +

    15.4:2 +A borrow is a reference produced by borrowing.

    +

    15.4:3 +An implicit borrow is a borrow that is not present syntactically in +program text. An implicit borrow occurs in the following contexts:

    + +

    15.4:11 +An implicit borrow may be an immutable borrow or a mutable borrow +if required.

    +

    15.4:12 +An immutable borrow is an immutable reference produced by +borrowing.

    +

    15.4:13 +A mutable borrow is a mutable reference produced by borrowing.

    +

    15.4:14 +Borrowing a field of a union type borrows all remaining +fields using the same lifetime.

    +

    15.4:15 +Immutably borrowing a value proceeds as follows:

    +
      +
    1. 15.4:16 +??? (this should describe the order of borrowing and when the borrow +is returned)

    2. +
    3. 15.4:17 +An immutable borrow of type &'a T is created, where +lifetime 'a is replaced by a lifetime variable, and +T is replaced by the borrowed type.

    4. +
    5. 15.4:18 +Lifetime inference is performed.

    6. +
    7. 15.4:19 +The immutable borrow is checked against other borrows and +by move passing within the enclosing item.

    8. +
    9. 15.4:20 +An immutable reference to the borrowed value is produced.

    10. +
    11. 15.4:21 +The immutable borrow is released immediately after the last usage of its +related immutable reference.

    12. +
    +

    15.4:22 +Mutably borrowing a value proceeds as follows:

    +
      +
    1. 15.4:23 +A mutable borrow of type &'a mut T is created, where +lifetime 'a is replaced by a lifetime variable, and +T is replaced by the borrowed type.

    2. +
    3. 15.4:24 +Lifetime inference is performed.

    4. +
    5. 15.4:25 +The mutable borrow is checked against other borrows and +by move passing within the enclosing item.

    6. +
    7. 15.4:26 +A mutable reference to the borrowed value is produced.

    8. +
    9. 15.4:27 +The mutable borrow is released immediately after the last usage of its +related mutable reference.

    10. +
    +

    Examples

    +
    let mutable_borrow = &mut 42;
    +let immutable_borrow = &42;
    +
    +
    +
    +
    +

    15.5. Passing Conventions

    +

    Legality Rules

    +

    15.5:1 +A passing convention is the mechanism that defines how a value is +transferred between places.

    +

    15.5:2 +A copy type is a type that implements the core::marker::Copy +trait.

    +

    15.5:3 +A value of a copy type is passed +by copy. Passing by copy does not change the owner of the +value.

    +

    15.5:4 +A move type is a type that implements the core::marker::Sized +trait and is not a copy type.

    +

    15.5:5 +A value of a move type is passed +by move. Passing by move changes the owner of the value.

    +

    15.5:6 +A value of a place expression shall be +passed by move only when it denotes:

    + +

    15.5:10 +A value of a value expression is always +passed by move.

    +

    15.5:11 +A value not subject to by copy or by move passing convention +shall not be passed between places.

    +

    Dynamic Semantics

    +

    15.5:12 +Passing a value by copy from a source owner to a target +owner proceeds as follows:

    +
      +
    1. 15.5:13 +The value of the source owner is copied.

    2. +
    3. 15.5:14 +The copy is assigned to the target owner.

    4. +
    +

    15.5:15 +Passing a value by move from a source owner to a target +owner proceeds as follows:

    +
      +
    1. 15.5:16 +The value is unassigned from the source owner.

    2. +
    3. 15.5:17 +The value is assigned to the target owner.

    4. +
    +

    Examples

    +

    15.5:18 +Type i32 is a copy type. By the end of the second let statement, x is +the owner of the original 42 and y is the owner of a cloned 42.

    +
    let x: i32 = 42;
    +let y: i32 = x;
    +
    +
    +

    15.5:19 +Type core::sync::atomic::AtomicI32 is a move type. By the end of the +second let statement, x is uninitialized and y is the sole owner of the +atomic 42.

    +
    use core::sync::atomic::AtomicI32;
    +
    +let x: AtomicI32 = AtomicI32::new(42);
    +let y: AtomicI32 = x;
    +
    +
    +
    +
    +

    15.6. Destruction

    +

    Legality Rules

    +

    15.6:1 +Destruction is the process of recovering resources associated with a +value as it goes out of scope.

    +
    +
    +

    15.7. Destructors

    +

    Legality Rules

    +

    15.7:1 +A drop type is a type that implements the core::ops::Drop +trait or contains a field that has a drop type.

    +

    15.7:2 +A destructor is a function that is invoked immediately before the +destruction of a value of a drop type.

    +

    15.7:3 +Dropping a value is the act of invoking the destructor of the +related type. Such an object is said to be dropped.

    +

    15.7:4 +An uninitialized variable is not dropped.

    +

    Dynamic Semantics

    +

    15.7:5 +Dropping an initialized variable proceeds as follows:

    +
      +
    1. 15.7:6 +If the drop type implements the core::ops::Drop trait, then +core::ops::Drop::drop of the drop type is invoked.

    2. +
    3. 15.7:7 +If the drop type is an array type, then its elements are +dropped from the first element to the last element.

    4. +
    5. 15.7:8 +Otherwise, if the drop type is a closure type, then all +capture targets whose capture mode is by move mode are +dropped in unspecified order.

    6. +
    7. 15.7:9 +Otherwise, if the drop type is an enum type, then the fields +of the active enum variant are dropped in declaration order.

    8. +
    9. 15.7:10 +Otherwise, if the drop type is a slice type, then its elements are +dropped from the first element to the last element.

    10. +
    11. 15.7:11 +Otherwise, if the drop type is a struct type, then its +fields are dropped in declaration order.

    12. +
    13. 15.7:12 +Otherwise, if the drop type is a trait object type, then the +destructor of the underlying type is invoked.

    14. +
    15. 15.7:13 +Otherwise, if the drop type is a tuple type, then its fields +are dropped in declaration order.

    16. +
    17. 15.7:14 +Otherwise, dropping has no effect.

    18. +
    +

    Examples

    +
    struct PrintOnDrop(&'static str);
    +
    +impl core::ops::Drop for PrintOnDrop {
    +    fn drop(&mut self) {
    +        println!("{}", self.0);
    +    }
    +}
    +
    +
    +

    15.7:15 +When object array is dropped, its destructor drops the first element, then +the second element.

    +
    let array = [PrintOnDrop("first element to be dropped"),
    +             PrintOnDrop("second element to be dropped")];
    +
    +
    +

    15.7:16 +Object uninitialized is not dropped.

    +
    let uninitialized: PrintOnDrop;
    +
    +
    +
    +
    +

    15.8. Drop Scopes

    +

    Legality Rules

    +

    15.8:1 +A drop scope is a region of program text that governs the dropping of +values. When control flow leaves a drop scope, all values +associated with that drop scope are dropped based on a +drop order.

    +

    15.8:2 +A drop construct is a construct that employs a drop scope. The +following constructs are drop constructs:

    + +

    15.8:7 +Drop scopes are nested within one another as follows:

    + +

    15.8:17 +A binding declared in a for loop expression is associated with +the drop scope of the block expression of the +for loop expression.

    +

    15.8:18 +A binding declared in an if let expression is associated with the +drop scope of the block expression of the if let expression.

    +

    15.8:19 +A binding declared in a let statement is associated with the +drop scope of the block expression that contains the +let statement.

    +

    15.8:20 +A binding declared in a match expression is associated with the +drop scope of the match arm of the match expression.

    +

    15.8:21 +A binding declared in a while let loop expression is associated with +the drop scope of the block expression of the +while let loop expression.

    +

    15.8:22 +A value or binding of a function parameter is associated with the +drop scope of the function of the function parameter.

    +

    15.8:23 +A temporary that is not subject to constant promotion is associated +with the innermost drop scope that contains the expression which +produced the temporary, taking into account drop scope extension. The +possible drop scopes are as follows:

    + +
    +

    15.8.1. Drop Scope Extension

    +

    Legality Rules

    +

    15.8.1:1 +Drop scope extension is the process of extending a drop scope +associated with a temporary to prevent the premature dropping of the +temporary.

    +

    15.8.1:2 +An extending pattern is either

    + +

    15.8.1:5 +If the pattern-without-alternation of a let statement is an +extending pattern, then the drop scope of the expression of +the let statement is extended to the drop scope of the +block expression that contains the let statement.

    +

    15.8.1:6 +An extending expression is either

    + +

    15.8.1:10 +The drop scope of the operand of a borrow expression that is an +extending expression is extended to the drop scope of the +block expression that contains the let statement.

    +

    15.8.1:11 +The drop scope of the operand of a borrow expression, a +dereference expression, or a field access expression that has an +extended drop scope is extended to the drop scope of the +expression.

    +

    15.8.1:12 +The drop scope of the indexed operand of an index expression that +has an extended drop scope is extended to the drop scope of the +expression.

    +

    Examples

    +

    15.8.1:13 +See Paragraph 15.6.1. for the declaration of PrintOnDrop.

    +

    15.8.1:14 +The drop scope of the temporary created for expression AtomicI32::new(42) is +extended to the drop scope of the block expression.

    +
    use core::sync::atomic::AtomicI32;
    +
    +{
    +    let ref mut a = AtomicI32::new(42);
    +    println!("{}", a);
    +}
    +
    +
    +
    +
    +
    +

    15.9. Drop Order

    +

    Legality Rules

    +

    15.9:1 +Drop order is the order by which values are dropped when a +drop scope is left.

    +

    15.9:2 +When a drop scope is left, all values associated with that +drop scope are dropped as follows:

    + +

    15.9:5 +When a drop scope of a function is left, then each +function parameter is dropped from right to left as follows:

    +
      +
    1. 15.9:6 +All bindings introduced by the pattern of the +function parameter are dropped in reverse declaration order,

    2. +
    3. 15.9:7 +The value of the function parameter is dropped.

    4. +
    +

    15.9:8 +When multiple drop scopes are left at once, the values are +dropped from the innermost drop scope to the outermost +drop scope.

    +

    Examples

    +

    15.9:9 +See Paragraph 15.6.1. for the declaration of PrintOnDrop.

    +

    15.9:10 +The drop order of the following variables is b, c, a. Dropping +proceeds as follows:

    +
      +
    1. 15.9:11 +The scope of the block expression is left first because it is an inner scope.

    2. +
    3. 15.9:12 +b is dropped.

    4. +
    5. 15.9:13 +The outer scope is left.

    6. +
    7. 15.9:14 +c is dropped because dropping occurs in reverse declarative order.

    8. +
    9. 15.9:15 +a is dropped.

    10. +
    +
    let a = PrintOnDrop("3");
    +{
    +    let b = PrintOnDrop("1");
    +}
    +let c = PrintOnDrop("2");
    +
    +
    +
    +
    + + +
    +
    +

    + Copyright © The Ferrocene Developers. + + Contents released under the MIT or Apache 2.0 license. + +

    + + +

    Built from commit: 2d7de7f91004615d8c7b4fb2416718fb7bb4f769

    + +

    Ferrocene is a registered trademark of Critical Section GmbH.

    +
    +
    +
    + + + \ No newline at end of file diff --git a/paragraph-ids.json b/paragraph-ids.json new file mode 100644 index 00000000..116e38d2 --- /dev/null +++ b/paragraph-ids.json @@ -0,0 +1 @@ +{"documents": [{"title": "Ferrocene Language Specification", "link": "index.html", "sections": [], "informational": false}, {"title": "Inline Assembly", "link": "inline-assembly.html", "sections": [{"id": "fls_z1il3w9nulzy", "number": "22", "title": "Inline Assembly", "link": "inline-assembly.html", "paragraphs": [{"id": "fls_leamdp1r3hez", "number": "22:1", "link": "inline-assembly.html#fls_leamdp1r3hez", "checksum": "2ecbb717faf9cd41966fd3fa61c9973605adda7174928d76aeec692e2f57f1e1"}, {"id": "fls_3fg60jblx0xb", "number": "22:2", "link": "inline-assembly.html#fls_3fg60jblx0xb", "checksum": "f55330136adb51523a63dd5eccf639fc7290faacab77ff910b09c4c10719ac1e"}, {"id": "fls_helnk2iz8qhp", "number": "22:3", "link": "inline-assembly.html#fls_helnk2iz8qhp", "checksum": "fb5d9789deafd6c411d8abdd1a60bfdfea453bfbfe713df9016b5b07c26df2c9"}, {"id": "fls_vanmt2dv7hzd", "number": "22:4", "link": "inline-assembly.html#fls_vanmt2dv7hzd", "checksum": "4b4a76da9d4b5011fcbcd054fffc111ce72238f797e8cf7b2bbbccec650c24c3"}, {"id": "fls_g8fuy1qnebxe", "number": "22:5", "link": "inline-assembly.html#fls_g8fuy1qnebxe", "checksum": "55a932bf32ca4b5f1f13535ebf918728efa7830451bde120075904c8cc821ff0"}, {"id": "fls_2n9el98anp8c", "number": "22:6", "link": "inline-assembly.html#fls_2n9el98anp8c", "checksum": "2932ba93879a19d635e09c54bc40e411c50ad1cd415e1048e6a594284226a29f"}, {"id": "fls_pnoh31rvu9a6", "number": "22:7", "link": "inline-assembly.html#fls_pnoh31rvu9a6", "checksum": "c16628799da95c60a31934e0f2f6de7cb46011a537bb8effa46c86007e1dc6d7"}], "informational": true}, {"id": "fls_j9l8wn6wgm06", "number": "22.1", "title": "Registers", "link": "inline-assembly.html#registers", "paragraphs": [{"id": "fls_w5a6rybvptn6", "number": "22.1:1", "link": "inline-assembly.html#fls_w5a6rybvptn6", "checksum": "39d60a2f6181ef9205caf904fd95f7ba0a390aeb492700ff04033297298fff41"}, {"id": "fls_rr8rsy7oilf0", "number": "22.1:2", "link": "inline-assembly.html#fls_rr8rsy7oilf0", "checksum": "73d6369a132933d1c5b8a2cfddbb5f48324fe1b292208ff88d01629411bb9802"}, {"id": "fls_5ruu8n6r9mvp", "number": "22.1:3", "link": "inline-assembly.html#fls_5ruu8n6r9mvp", "checksum": "12f179e5416873944a2cc637d0784da3593495a2183782ee5eb02950eeae9da6"}, {"id": "fls_hv3y1a2xn0zr", "number": "22.1:4", "link": "inline-assembly.html#fls_hv3y1a2xn0zr", "checksum": "b9873fd50a4bcfa74822967e3a60e5e0de2ddcfdaf3e20b8687b32685ff64c0b"}, {"id": "fls_vesfzh8h6qzu", "number": "22.1:5", "link": "inline-assembly.html#fls_vesfzh8h6qzu", "checksum": "0c60e99f8efc707247c3e040ba544bc81e25f9c00c6018150077ad6e1e2b7015"}, {"id": "fls_ffwqxlh60i5w", "number": "22.1:6", "link": "inline-assembly.html#fls_ffwqxlh60i5w", "checksum": "a070ce88d95ce414fcca9658f1ecaa93e57637fe94c94a90c0d5f7c2674a098b"}, {"id": "fls_3p8akc7gcsnx", "number": "22.1:7", "link": "inline-assembly.html#fls_3p8akc7gcsnx", "checksum": "bc22aaa1e0a33be94f875c5a08d1d776471f1e063929ab385e062a1114dde726"}, {"id": "fls_7dlx7nt77xk", "number": "22.1:8", "link": "inline-assembly.html#fls_7dlx7nt77xk", "checksum": "7c3fa30aaa8c0f3bc6f842ae4f591e7d875e79c277ac8f86b165d0913d3060a2"}, {"id": "fls_w4z7yh5qyyed", "number": "22.1:9", "link": "inline-assembly.html#fls_w4z7yh5qyyed", "checksum": "948be818103f72ba1df6ed3e5e0ca91049b4ccb4cd3b6ef73f2a2555d14fa31d"}, {"id": "fls_rzp8eg6z6x3q", "number": "22.1:10", "link": "inline-assembly.html#fls_rzp8eg6z6x3q", "checksum": "763f676df4ed30cc6df7cd82179c4d111f881ba1c05d0d9cb16b54676f276e17"}, {"id": "fls_e1w41918j49", "number": "22.1:11", "link": "inline-assembly.html#fls_e1w41918j49", "checksum": "34cd0c382f4f6e1a64167e53b3bd89895d35af1d3829d9d540bf6db843f635f8"}, {"id": "fls_q0s90h7xmnn4", "number": "22.1:12", "link": "inline-assembly.html#fls_q0s90h7xmnn4", "checksum": "29847045f981474ebef77cf27630d2c65b6b9cf14a6df2196c16f636c42d885f"}, {"id": "fls_3pt63w76isay", "number": "22.1:13", "link": "inline-assembly.html#fls_3pt63w76isay", "checksum": "f7001d16fded0766de3bb30882a297cbb7bd22abe36f34fae3214176bfd9411d"}, {"id": "fls_f3clxd3vidhh", "number": "22.1:14", "link": "inline-assembly.html#fls_f3clxd3vidhh", "checksum": "3344b7fd47aab10734e11041c74314f0ed34b6cdaf296d6d01a6c691f0c13183"}, {"id": "fls_vyeczg1cjxys", "number": "22.1:15", "link": "inline-assembly.html#fls_vyeczg1cjxys", "checksum": "a8af143fd34f01e8f65e9f888d7d760a3b031967381aee5176d597fde23be59f"}, {"id": "fls_h5t153uhzoq3", "number": "22.1:16", "link": "inline-assembly.html#fls_h5t153uhzoq3", "checksum": "988c5d9c0ec05e872a195f4cee6b0aa813fa0e0d2ddd4954cb63400dda9c839b"}, {"id": "fls_jhph577nqds1", "number": "22.1:17", "link": "inline-assembly.html#fls_jhph577nqds1", "checksum": "cc0d67b9c4b0380c9a19ee2cc5f245a03585452dc63cab72a429c021d97dc83a"}, {"id": "fls_mobj1y67vxvb", "number": "22.1:18", "link": "inline-assembly.html#fls_mobj1y67vxvb", "checksum": "1c7dc5e2b8e5778cfaca9e65467b897d26825ba493e2eb3cec5435253680cdfb"}, {"id": "fls_9ke412je1hqn", "number": "22.1:19", "link": "inline-assembly.html#fls_9ke412je1hqn", "checksum": "1cbe768ef7b25e59f62f8866acbe1cdbfc5a93786922d54a7ef4a8fb4496c6a0"}, {"id": "fls_hndlas58937e", "number": "22.1:20", "link": "inline-assembly.html#fls_hndlas58937e", "checksum": "2950a79b4c2b514e58a5e7111b5028fd5c547bfac4ea6877f6a9c0caa7e705ef"}, {"id": "fls_5x0yvjil3z8p", "number": "22.1:21", "link": "inline-assembly.html#fls_5x0yvjil3z8p", "checksum": "550d7fbd6817adc4a359813352ec379bf58efa791fd796c493eeaa84183afeda"}, {"id": "fls_gxvlvnqs436h", "number": "22.1:22", "link": "inline-assembly.html#fls_gxvlvnqs436h", "checksum": "e940f5a23bca352679d2dc94ddb731f3a7a16e94572cc09fb942ecfe75186792"}, {"id": "fls_mra7zuu7uzmb", "number": "22.1:23", "link": "inline-assembly.html#fls_mra7zuu7uzmb", "checksum": "2910e2dc873a5bfe39300faefa630bf1d91844c07f36271ac590d8320e12b73d"}, {"id": "fls_maa7w0jwvat2", "number": "22.1:24", "link": "inline-assembly.html#fls_maa7w0jwvat2", "checksum": "5d80d07626a153308f8addc2b5e9471836ba12ce1bdb076f4af716b9a4e18c2c"}, {"id": "fls_az7kcaq70h4d", "number": "22.1:25", "link": "inline-assembly.html#fls_az7kcaq70h4d", "checksum": "c65f4c6b8db4f51f6eaf6ddacab1fdb08f9479f2b15b0b5f882da8c81c84054f"}, {"id": "fls_xudmsflrhvo3", "number": "22.1:26", "link": "inline-assembly.html#fls_xudmsflrhvo3", "checksum": "57205b0e3779a9c0f99384a2e74b444075d08f48e6ca14466b92c6288be50961"}, {"id": "fls_px77cr1k8coy", "number": "22.1:27", "link": "inline-assembly.html#fls_px77cr1k8coy", "checksum": "68737b33213261aa2bc36b9d8e4d651c615017faf9304e654e7db3705b897e44"}, {"id": "fls_y1m7tlqk2dv7", "number": "22.1:28", "link": "inline-assembly.html#fls_y1m7tlqk2dv7", "checksum": "a05b1f6d34aed3cf3fc1a88b0e4ffde453b1c30cc42ba145fc45a0eb33ae7654"}, {"id": "fls_3dqq9319okv5", "number": "22.1:29", "link": "inline-assembly.html#fls_3dqq9319okv5", "checksum": "7c1cd463725b7565f2460515d804abdd2d46fec45b4ac95a28c0b1ff8e554c5c"}, {"id": "fls_5l9qo5c0gek8", "number": "22.1:30", "link": "inline-assembly.html#fls_5l9qo5c0gek8", "checksum": "2b98ca72c3cc9d2473a8d91c2d66d0d938ba4fb430280f13c5a0d23e30124b4a"}, {"id": "fls_1m68zqsxjuyp", "number": "22.1:31", "link": "inline-assembly.html#fls_1m68zqsxjuyp", "checksum": "4230c88382f71375962eef4624b0fc37fa2ae2ebcaa2c7b401f490fc1fa26ce4"}, {"id": "fls_bck9slu4hsn1", "number": "22.1:32", "link": "inline-assembly.html#fls_bck9slu4hsn1", "checksum": "b481fc8900e3203d5e51d7456b51a12825e1ffc5c307841c43da63a0b09eefb9"}, {"id": "fls_3x72q39c8iwt", "number": "22.1:33", "link": "inline-assembly.html#fls_3x72q39c8iwt", "checksum": "e2996fb9db79d277b33c4f337dc25fa4d319a5b8869182db47869241a7d6deec"}, {"id": "fls_yfbrla8c801g", "number": "22.1:34", "link": "inline-assembly.html#fls_yfbrla8c801g", "checksum": "e6bbea8fcf8570922fb2dbb84419a008ed40c04e0333e8759a764083b6de6314"}, {"id": "fls_3nuf1gcldamv", "number": "22.1:35", "link": "inline-assembly.html#fls_3nuf1gcldamv", "checksum": "d8849406f6b817683c149ab81aefd6d29b706724c6023b66047d2edba3924f38"}, {"id": "fls_nquf1uaoezx6", "number": "22.1:36", "link": "inline-assembly.html#fls_nquf1uaoezx6", "checksum": "a32c2a79d6b620d5519660e13751e5cc22eea8de15c0b390067701e98f30a2a7"}, {"id": "fls_91oeyxc75vu5", "number": "22.1:37", "link": "inline-assembly.html#fls_91oeyxc75vu5", "checksum": "c8194fd8db5397f0ac15a419724a3e5891b702d2969fb1bcb372ce18c98f8601"}, {"id": "fls_r5btazdpwqtw", "number": "22.1:38", "link": "inline-assembly.html#fls_r5btazdpwqtw", "checksum": "1fb8568338e94e2bd2cef7b0aa0fb1faadd19bbab344274b1b54a2f404f8e783"}, {"id": "fls_vpibsan8aful", "number": "22.1:39", "link": "inline-assembly.html#fls_vpibsan8aful", "checksum": "2c4843ee0d6e3e1ad8d3a6bc4c387786a63a146301b093178a14861ed7e86461"}, {"id": "fls_lj6xcaaecokk", "number": "22.1:40", "link": "inline-assembly.html#fls_lj6xcaaecokk", "checksum": "fdcc738daa05173b5609e74f2b89807360390675b83c3a52323024cf32c4c93a"}, {"id": "fls_bb1qjfin4zjc", "number": "22.1:41", "link": "inline-assembly.html#fls_bb1qjfin4zjc", "checksum": "d7006f1141083f004dce3c7fcfd3553336d9f21e9cddcd91cd327d990f2b43ad"}, {"id": "fls_7qj6pxuq2x9e", "number": "22.1:42", "link": "inline-assembly.html#fls_7qj6pxuq2x9e", "checksum": "32c579a792bd4dfc3a9a6d6af1d96694c344082c3e65ab27cea73e72c5b24be5"}, {"id": "fls_2xkw4nqt1s5a", "number": "22.1:43", "link": "inline-assembly.html#fls_2xkw4nqt1s5a", "checksum": "2ad948609b5dfb44bd6f0f3b491e171298e449c937fe7d727429e71a03180fe6"}, {"id": "fls_dpzi4ygox7jw", "number": "22.1:44", "link": "inline-assembly.html#fls_dpzi4ygox7jw", "checksum": "2db64ea95f20d553dde55920a82cd6514d6071a691fc62a0a2db860ef6134582"}, {"id": "fls_yr5ztipvgezk", "number": "22.1:45", "link": "inline-assembly.html#fls_yr5ztipvgezk", "checksum": "8967b0adae59edc96e1b580347bfc98961cd1a02ef5b17848e4d07b31d0bd2e0"}, {"id": "fls_n8ccafjut1yd", "number": "22.1:46", "link": "inline-assembly.html#fls_n8ccafjut1yd", "checksum": "8acdb975ac984cda5246944ae4bb019bf2a339227c9774d52bc7a0676f46fc87"}, {"id": "fls_iv23mcgw6l3r", "number": "22.1:47", "link": "inline-assembly.html#fls_iv23mcgw6l3r", "checksum": "d044514182338ccadc9d1a05981c817324f604a615020a9507188e023305649a"}, {"id": "fls_yr7bac5k3uk7", "number": "22.1:48", "link": "inline-assembly.html#fls_yr7bac5k3uk7", "checksum": "2aab1e6272ff7b563a82b6b37c18bca96b4c87c262d8f2e8b2c9cc0e81c7ec0e"}, {"id": "fls_gvb2zcrseqci", "number": "22.1:49", "link": "inline-assembly.html#fls_gvb2zcrseqci", "checksum": "f7bcce04d256c567958ac3c7b038e42b735b6997898d7ff47aac48170c896eee"}, {"id": "fls_z1b9nf49nbjh", "number": "22.1:50", "link": "inline-assembly.html#fls_z1b9nf49nbjh", "checksum": "3b2f9835bae0171b78f5e494a3aa32451cd8c1785291f2d6d8393e0839e5bf45"}, {"id": "fls_etfkcesnrlwt", "number": "22.1:51", "link": "inline-assembly.html#fls_etfkcesnrlwt", "checksum": "cb975dffbdba381c89169413a7000e7dce7ec25ef91c34b0c74b850f3647a2f4"}, {"id": "fls_8sqzva4ibf0i", "number": "22.1:52", "link": "inline-assembly.html#fls_8sqzva4ibf0i", "checksum": "1f33ae168aae6dde1001c1413bdefa412cf8161d3e84988f35963972258881d8"}, {"id": "fls_8bo9p6mybuzi", "number": "22.1:53", "link": "inline-assembly.html#fls_8bo9p6mybuzi", "checksum": "c6aa9d96351da3b4fe364c7887ea1ba84b5643d1d7a3838ea2efb41907b794de"}, {"id": "fls_dk4z9dracvps", "number": "22.1:54", "link": "inline-assembly.html#fls_dk4z9dracvps", "checksum": "649109caddec8bfbd71e14d93cd7e1c50c27a223b51ebacfd28ace0d02e1526b"}, {"id": "fls_7c7lgvw8gbkb", "number": "22.1:55", "link": "inline-assembly.html#fls_7c7lgvw8gbkb", "checksum": "d7a0475661c593f7c0566fc7018842861e7876cde7b82b1866534efc7c2e0443"}, {"id": "fls_sb0ffx31gul9", "number": "22.1:56", "link": "inline-assembly.html#fls_sb0ffx31gul9", "checksum": "03796b443d5b6bee6e75a9e91f79f885c5c7a9c39ba82beb8257fc4d9bb65116"}, {"id": "fls_f9psgjl6ervm", "number": "22.1:57", "link": "inline-assembly.html#fls_f9psgjl6ervm", "checksum": "d3cdc1dbdbdaf3bf51d1c1d3e15c1fa5aef040e28178566c5cb0d654ebcab926"}, {"id": "fls_3y3b7znxznzu", "number": "22.1:58", "link": "inline-assembly.html#fls_3y3b7znxznzu", "checksum": "c72b9ed4c401c89d36486c8d501951d76d0d37f6c2e0e8b06a1d4e20c2431428"}, {"id": "fls_7y201ev5b0mq", "number": "22.1:59", "link": "inline-assembly.html#fls_7y201ev5b0mq", "checksum": "81ecd8fe1fe33b56420762ca519c95224c123ed4439893049875d345aba5c512"}, {"id": "fls_r2aoetnwhjkf", "number": "22.1:60", "link": "inline-assembly.html#fls_r2aoetnwhjkf", "checksum": "a44bc0de8a6ee0c018ae873e38b231a58ebb326951a3fd5fe21546388c740593"}, {"id": "fls_54n4ie3frc39", "number": "22.1:61", "link": "inline-assembly.html#fls_54n4ie3frc39", "checksum": "bc842bb6d2622c3a029ef4614723d21fd262ddf085253092dd84e1a420f77ca7"}, {"id": "fls_iok8gc906tc8", "number": "22.1:62", "link": "inline-assembly.html#fls_iok8gc906tc8", "checksum": "7a946b3318f99a6748a231b8c03c16781c4292e0fcbbc4ac706a962861f317b5"}, {"id": "fls_2mgjkyngbmbr", "number": "22.1:63", "link": "inline-assembly.html#fls_2mgjkyngbmbr", "checksum": "770cd7d9c31bbb765ad40be40ea824f38ba9e412b3e507365f9c6a754c17551e"}, {"id": "fls_6tlnpguf23y3", "number": "22.1:64", "link": "inline-assembly.html#fls_6tlnpguf23y3", "checksum": "5c59322286016f2c772ca739ba5233cd7e28720d91ce9189183e1852db7b095a"}, {"id": "fls_bz5xyv89i5m7", "number": "22.1:65", "link": "inline-assembly.html#fls_bz5xyv89i5m7", "checksum": "c7750120307aedb80af8ae7313dd6345535fd86e2c63679b6d61344356d21904"}, {"id": "fls_soitzjqze3rf", "number": "22.1:66", "link": "inline-assembly.html#fls_soitzjqze3rf", "checksum": "18febf551f1317bbf8aa6f68c01133df1bacd637fbb0500335b6725a840eb292"}, {"id": "fls_b2c02r5y6zm9", "number": "22.1:67", "link": "inline-assembly.html#fls_b2c02r5y6zm9", "checksum": "5b49f664f474f3d6edcb8801c7593e791e1d1ad1349e8d219df81fa95929c9a4"}, {"id": "fls_2ufm8y5ttcxf", "number": "22.1:68", "link": "inline-assembly.html#fls_2ufm8y5ttcxf", "checksum": "641caa94a7b88594686c64a9e6c37cd6597bc61fb18259f047eb9c3a31ae1428"}, {"id": "fls_ub321ic94bbl", "number": "22.1:69", "link": "inline-assembly.html#fls_ub321ic94bbl", "checksum": "d1c20d9b16467ccff234ee51ec9f7445d1242be7328a3b7fc74105e82aa6848f"}, {"id": "fls_gtwmwsmyrdxe", "number": "22.1:70", "link": "inline-assembly.html#fls_gtwmwsmyrdxe", "checksum": "8e992777ce18f719a5a9f6087fe030f71520760bfe4215255991b93ae2a6775a"}, {"id": "fls_vy8alu9yuza9", "number": "22.1:71", "link": "inline-assembly.html#fls_vy8alu9yuza9", "checksum": "22204cedd5304e36d4991c6ec1da6276140e3d0d2decbed86fe6c623c9a4cd8b"}, {"id": "fls_zetlz5kjqchs", "number": "22.1:72", "link": "inline-assembly.html#fls_zetlz5kjqchs", "checksum": "d8eeb48a603b537546fcc36fa3e17ccba43d166b30fd0d2792edc9e29f75d4ba"}], "informational": false}, {"id": "fls_pz2ioqchjtym", "number": "22.2", "title": "Register Classes", "link": "inline-assembly.html#register-classes", "paragraphs": [{"id": "fls_7gxb7ztpuofj", "number": "22.2:1", "link": "inline-assembly.html#fls_7gxb7ztpuofj", "checksum": "bca76cef1fe93380b4b2764a1780560ecfc7d399d0133d974aa8b4272185398c"}, {"id": "fls_on0i2cpk254y", "number": "22.2:2", "link": "inline-assembly.html#fls_on0i2cpk254y", "checksum": "072e7d6791f5c1d9aca09df3602ec2e87a96ea771b13d9baee44cc7da4745443"}, {"id": "fls_40ksem5g5xx9", "number": "22.2:3", "link": "inline-assembly.html#fls_40ksem5g5xx9", "checksum": "f507ddb8a4d78d5f4516c08061e3fd00ce3680761f88d8533d74cebf1747d8e5"}, {"id": "fls_fqvjk6caipq", "number": "22.2:4", "link": "inline-assembly.html#fls_fqvjk6caipq", "checksum": "4f9cf8829042709ab419bcfdac8f32f55808e17f6f72d0a868bc08b92f89d719"}, {"id": "fls_u0ie66ep3glg", "number": "22.2:5", "link": "inline-assembly.html#fls_u0ie66ep3glg", "checksum": "a745f47cfa17415d3efa516e8a511b98dc10024c933e4b234e51839ab8b2c4bf"}, {"id": "fls_wcvcansd88je", "number": "22.2:6", "link": "inline-assembly.html#fls_wcvcansd88je", "checksum": "834825290b52066ecedfd94cfeaaa564b134590cadb34cc3d93faffcfa68982a"}, {"id": "fls_sbllpky4d7ka", "number": "22.2:7", "link": "inline-assembly.html#fls_sbllpky4d7ka", "checksum": "19a597e10c09d8cd5266148bbaa227ca26d47e590e8cbe4a3a0b4a3b7b65ebf9"}, {"id": "fls_nmx5xs829ms", "number": "22.2:8", "link": "inline-assembly.html#fls_nmx5xs829ms", "checksum": "22f409acc30151195193e1ac9bc8011511fad86bb8a83517b941ceba06117903"}, {"id": "fls_nars4y8tv2w6", "number": "22.2:9", "link": "inline-assembly.html#fls_nars4y8tv2w6", "checksum": "e7b421b9d33bd170c0b1cb09c6bf1d3514538ae75bad8431dc915f4629b428fe"}, {"id": "fls_b5juxguclqjs", "number": "22.2:10", "link": "inline-assembly.html#fls_b5juxguclqjs", "checksum": "6b05bd0ba53bef61a1eb498458f8f387e92b3a84409fe2949e603bde1d9a915d"}, {"id": "fls_vmigixoxm5uf", "number": "22.2:11", "link": "inline-assembly.html#fls_vmigixoxm5uf", "checksum": "aea699b2678adf58e4f4bf56b5b412b83f1ded902ad91eb6d363bfc48e11ecb6"}, {"id": "fls_vdqtbc4t69v2", "number": "22.2:12", "link": "inline-assembly.html#fls_vdqtbc4t69v2", "checksum": "6481ad4cc845d4e7ffc277d6a32513834168222c01697bb90ede7f041f4b3ab3"}, {"id": "fls_t2d77dazjyjo", "number": "22.2:13", "link": "inline-assembly.html#fls_t2d77dazjyjo", "checksum": "a2eef70002f2666dc49f2def9707cdfa752018ddd635ddf2f70e7086f1782b72"}, {"id": "fls_jh02uk3ypett", "number": "22.2:14", "link": "inline-assembly.html#fls_jh02uk3ypett", "checksum": "ac9efee8bc991667f505b75c53a5d2409171184521200c1315775ac64f7bfc7c"}, {"id": "fls_rjk5laiyqagy", "number": "22.2:15", "link": "inline-assembly.html#fls_rjk5laiyqagy", "checksum": "0eaa7e064279eea86a9d365b6c251eb9d9b53356bcf44f642cefe63992aa99b6"}, {"id": "fls_26bq6wbwznx", "number": "22.2:16", "link": "inline-assembly.html#fls_26bq6wbwznx", "checksum": "ae959551a354c13f23e569b07e21962fd29e91edad42a1637c61c47ffbba3178"}, {"id": "fls_6d25i0lkzd7u", "number": "22.2:17", "link": "inline-assembly.html#fls_6d25i0lkzd7u", "checksum": "0e6100d8c3a6f0652c904a5a5da3ac3fdbc07c732bcb94f9ced925a3a67ea4df"}, {"id": "fls_y52suhleyid2", "number": "22.2:18", "link": "inline-assembly.html#fls_y52suhleyid2", "checksum": "c763cce07ab00dfd3323500717b1eed3e55412bb79178870af3708ab08e16908"}, {"id": "fls_7b7c8xtm8fr7", "number": "22.2:19", "link": "inline-assembly.html#fls_7b7c8xtm8fr7", "checksum": "96cd932df092222c77d3bcb7d31fad0c2be26093f163662b926fb5cc7acf7f83"}, {"id": "fls_ue0se3dcop6w", "number": "22.2:20", "link": "inline-assembly.html#fls_ue0se3dcop6w", "checksum": "e0ac82fc15ff715d9cddb3bdc897151a9a4cf2819d813ac6da7a07d48fd07ad0"}, {"id": "fls_2m49cyfqffvo", "number": "22.2:21", "link": "inline-assembly.html#fls_2m49cyfqffvo", "checksum": "9a47e3602b2201c92e0dce3aa02e6d20feae619aec5f1e0369434cb2af047e9e"}, {"id": "fls_mj1t0f9lp6v8", "number": "22.2:22", "link": "inline-assembly.html#fls_mj1t0f9lp6v8", "checksum": "fba730a9b194b9c95c6372bcd456c87e55aaa5d71933a5ffbf3afbc6ce1bdaf8"}, {"id": "fls_tpkkubhjt7lk", "number": "22.2:23", "link": "inline-assembly.html#fls_tpkkubhjt7lk", "checksum": "de2789ffcd9d02a9bbc9c39b7b94cd196bfd6f0167acfd400d37b10d6188efc3"}, {"id": "fls_ivq874v4lmga", "number": "22.2:24", "link": "inline-assembly.html#fls_ivq874v4lmga", "checksum": "2eabf1ca886e5459326f2967d018156022a1148d68a4f0cad387ba9857bdbd77"}, {"id": "fls_2wdcrocczwyi", "number": "22.2:25", "link": "inline-assembly.html#fls_2wdcrocczwyi", "checksum": "5f20a84f69b2f4df1e103ed21420855eb0edd88111d65c915c9323f4e86af1d4"}, {"id": "fls_v04te7p28dth", "number": "22.2:26", "link": "inline-assembly.html#fls_v04te7p28dth", "checksum": "f98c5961068bd12ec95c8e6cc0e0981321c82dd46936f9674f1da53e1f4da5d9"}, {"id": "fls_uypct69j2h6a", "number": "22.2:27", "link": "inline-assembly.html#fls_uypct69j2h6a", "checksum": "68b2c581d553c7dc02a6bcb848acc9c08aaa51f9dfd03525f402337590b1c00f"}, {"id": "fls_gyet9huf6nr", "number": "22.2:28", "link": "inline-assembly.html#fls_gyet9huf6nr", "checksum": "80f90c8b08776edc6b8d2896a8d06cd39c50126b7b0a36a79b50b336f5e3b3cd"}, {"id": "fls_5ekbq9hacho9", "number": "22.2:29", "link": "inline-assembly.html#fls_5ekbq9hacho9", "checksum": "fd2227497b01180261f81adb03ea6a85c78ad4ed2fef19428a5722d64a04012c"}, {"id": "fls_furnyxmwqn09", "number": "22.2:30", "link": "inline-assembly.html#fls_furnyxmwqn09", "checksum": "22aada8b4f1f9e603a61146c28eb2887803435066842ef0118a7f1917ebeb814"}, {"id": "fls_1c4ts991vkpq", "number": "22.2:31", "link": "inline-assembly.html#fls_1c4ts991vkpq", "checksum": "38657e66bcc21e14e87aa5238007bcac36dce73156c9c5af823e904c25658fc4"}, {"id": "fls_iwnb72jb9iwj", "number": "22.2:32", "link": "inline-assembly.html#fls_iwnb72jb9iwj", "checksum": "f12f6d554c25c5f85af01ebeffe90a992373ef8a69195825942db06fb5c04ea8"}, {"id": "fls_mw3axoixjgnq", "number": "22.2:33", "link": "inline-assembly.html#fls_mw3axoixjgnq", "checksum": "15d41d994ebc27fa82da90d54388cdf07ae3e0f9ede2cfeb23369a24746bdeb7"}, {"id": "fls_mnzt6bxhycv9", "number": "22.2:34", "link": "inline-assembly.html#fls_mnzt6bxhycv9", "checksum": "fe29bb239760aa31dc2989d7ef1b1e0c39eb0b86dba45b014c7a1944e999b5e4"}, {"id": "fls_drg7v8hxb5ca", "number": "22.2:35", "link": "inline-assembly.html#fls_drg7v8hxb5ca", "checksum": "8ef8f937a7b7b7adb9ce03d888fcf5148a91620cc4af1b10b59ac502f648b5c7"}, {"id": "fls_78gb8z1fyluc", "number": "22.2:36", "link": "inline-assembly.html#fls_78gb8z1fyluc", "checksum": "a04359b7328e6f0222e6c4296470962b896234b8db289d9a7c215eba9ef0a7db"}, {"id": "fls_7dii7lee457t", "number": "22.2:37", "link": "inline-assembly.html#fls_7dii7lee457t", "checksum": "2c9e81813ba55fc43a7bcbb08d580d2da6ced81202c68a5c37a3be0227a000a7"}, {"id": "fls_ujhjocg1361b", "number": "22.2:38", "link": "inline-assembly.html#fls_ujhjocg1361b", "checksum": "240ab19a4ecb8be24c7140737462ed6c98ed2adeaae044fc076f6af615f3fa39"}], "informational": false}, {"id": "fls_hejgghwzblf", "number": "22.3", "title": "Register Arguments", "link": "inline-assembly.html#register-arguments", "paragraphs": [{"id": "fls_455dmnp4cxqv", "number": "22.3:1", "link": "inline-assembly.html#fls_455dmnp4cxqv", "checksum": "51ff09ea4d125dfa2dddd25429197d68e0ab90254402dd2d93ea531c65a622a0"}, {"id": "fls_6bv3s8be5xif", "number": "22.3:2", "link": "inline-assembly.html#fls_6bv3s8be5xif", "checksum": "fa26d928624b04e379be24a2fc2001a49d414a019eebebf261e5a6c5951a3532"}, {"id": "fls_uddjvkz4g899", "number": "22.3:3", "link": "inline-assembly.html#fls_uddjvkz4g899", "checksum": "c48eae85f32cfba112d97ce5307d7272d0911f9df4e67ba250f055efc0a0be0b"}, {"id": "fls_sqs5to20p0te", "number": "22.3:4", "link": "inline-assembly.html#fls_sqs5to20p0te", "checksum": "de9b4bea7caed53ee7b0afc9fdfb7ce959dbe46af01b3c32dcdaca669dd8a0c0"}, {"id": "fls_dzlycyk24euk", "number": "22.3:5", "link": "inline-assembly.html#fls_dzlycyk24euk", "checksum": "40c4d335089982458288126ed9615e8a2616285afc565532e391dd1ff35326f2"}, {"id": "fls_ics6gdzww1p", "number": "22.3:6", "link": "inline-assembly.html#fls_ics6gdzww1p", "checksum": "5154cd8c69374c45e9d741be110ba567134bb0b39eabcb8c458adbc972fdd2df"}, {"id": "fls_mmc1w8jjr55r", "number": "22.3:7", "link": "inline-assembly.html#fls_mmc1w8jjr55r", "checksum": "1fec5e0696f6525d77986c3fb4fe9afdfc0cb637119ad785681ba1c292856bae"}, {"id": "fls_9hhtcey2d4t6", "number": "22.3:8", "link": "inline-assembly.html#fls_9hhtcey2d4t6", "checksum": "1a6421d6b7caaf88bbb46cf868ffb92933d8f68b11221f3cc918d093f8888e72"}, {"id": "fls_8aynifgq02gt", "number": "22.3:9", "link": "inline-assembly.html#fls_8aynifgq02gt", "checksum": "b2936dd6ad92f8cfa53239fd025460f7d3e1b679ede4b445d3115ece8999ed98"}, {"id": "fls_5a3vfresnv5z", "number": "22.3:10", "link": "inline-assembly.html#fls_5a3vfresnv5z", "checksum": "0f946393a931cc5b78f9934819f7aa4ba6b514ee373b349ecce52f591ebcf435"}, {"id": "fls_fta1gb5tzi3a", "number": "22.3:11", "link": "inline-assembly.html#fls_fta1gb5tzi3a", "checksum": "4c9f00fb04a33159473b68a31e8ee74f70f23444dfe8e434256b0773119cc988"}, {"id": "fls_sopiivuae0x7", "number": "22.3:12", "link": "inline-assembly.html#fls_sopiivuae0x7", "checksum": "ad39aebc78473e0d03c855868bf7740446e20ac900ed24bdf0f239dc211dfb67"}, {"id": "fls_kkrcyk96w8x1", "number": "22.3:13", "link": "inline-assembly.html#fls_kkrcyk96w8x1", "checksum": "503348cabcbc12fa0d9d17abf0e2019e91f2b649f8a985f9ccda7e84e2ac7ba4"}, {"id": "fls_aniw4ehsn2kb", "number": "22.3:14", "link": "inline-assembly.html#fls_aniw4ehsn2kb", "checksum": "a383ba34b050c0c54cc8abca1eb3edacee0c31437bceca025437faa04647913b"}, {"id": "fls_vu30cuq4y0ht", "number": "22.3:15", "link": "inline-assembly.html#fls_vu30cuq4y0ht", "checksum": "a674121d8b1308d5f75d1d8bee7bddb25bdbca12b53929f1b1c447349980e532"}, {"id": "fls_66owmltvhnu4", "number": "22.3:16", "link": "inline-assembly.html#fls_66owmltvhnu4", "checksum": "29c83fda93c055d8e8e1b5413124cd7b9321a5fcd2661ff0c6b2ad53c3a0cb10"}, {"id": "fls_72p8e4bo6pns", "number": "22.3:17", "link": "inline-assembly.html#fls_72p8e4bo6pns", "checksum": "8f3aef39cde848c0aff944c3688510c0623f11c4956e906b2c149933ca1bfc31"}, {"id": "fls_z0dbmmp5yblf", "number": "22.3:18", "link": "inline-assembly.html#fls_z0dbmmp5yblf", "checksum": "1d170272d80212e9ab38968ac21b6adb73b67fea20a811908cf097679cd04403"}, {"id": "fls_4jdnt8uap95i", "number": "22.3:19", "link": "inline-assembly.html#fls_4jdnt8uap95i", "checksum": "bcda305ab21eb743bfbaf94192a7f091188f70e80d49d4ecc69cd944d560dbc0"}, {"id": "fls_wd2hzsbzdg2y", "number": "22.3:20", "link": "inline-assembly.html#fls_wd2hzsbzdg2y", "checksum": "0937925a39e22d804ee545814336d49c733f31ea7756377335fefff6db62282f"}, {"id": "fls_sqy00lg5j7c6", "number": "22.3:21", "link": "inline-assembly.html#fls_sqy00lg5j7c6", "checksum": "f7df1b813dc778c45c902762fd85f901ebede6cf627c93ddffa2731614f81305"}, {"id": "fls_vxba1ttvz6hh", "number": "22.3:22", "link": "inline-assembly.html#fls_vxba1ttvz6hh", "checksum": "7dbe8e81fc6ab3a89a0c7db915942f414747d3e1426a7f0a9e0eb76bbcf6f54a"}, {"id": "fls_xkbnla2avrn0", "number": "22.3:23", "link": "inline-assembly.html#fls_xkbnla2avrn0", "checksum": "485c4204bb3fc6bde480eae99cb508323f08d53843fe840b571c140e2d09efaf"}, {"id": "fls_w6jhcv616l9o", "number": "22.3:24", "link": "inline-assembly.html#fls_w6jhcv616l9o", "checksum": "2eae510aa3c0984999efed6c99d780375dd3245fbf78f98b65affdd980165179"}, {"id": "fls_xweobiwapog1", "number": "22.3:25", "link": "inline-assembly.html#fls_xweobiwapog1", "checksum": "bb5fda81378ad922bd59db0c0afb2d1243c2d1e2d61865303fb327146cc086cc"}, {"id": "fls_4matyejw6cls", "number": "22.3:26", "link": "inline-assembly.html#fls_4matyejw6cls", "checksum": "8148c38c96dbc7562e0a236a6f7c2bf76b1224b0b409a58dbe086b5bd1d63c38"}, {"id": "fls_hklqabav1jju", "number": "22.3:27", "link": "inline-assembly.html#fls_hklqabav1jju", "checksum": "fc4d057ac8b2c2a9823f6f4514305fd0ecc50af30f6f7ac3ed854e7f8a7e14c0"}, {"id": "fls_nq22h8gragil", "number": "22.3:28", "link": "inline-assembly.html#fls_nq22h8gragil", "checksum": "a8f57c97461cbdfb32ce6148c10dcf2b2deb5070adcb2fe1bb4850b3c211ba8d"}, {"id": "fls_uxgcrs57bznk", "number": "22.3:29", "link": "inline-assembly.html#fls_uxgcrs57bznk", "checksum": "a2c973cb292004179620ef85189058fef5ca0a6338ee56b885dfe5087c24658f"}, {"id": "fls_ym05938ejwng", "number": "22.3:30", "link": "inline-assembly.html#fls_ym05938ejwng", "checksum": "a70c379b4de9989a193e6532e92d5156358a876a75e38c960fda76d0d60c3647"}, {"id": "fls_5l77g8h8et2o", "number": "22.3:31", "link": "inline-assembly.html#fls_5l77g8h8et2o", "checksum": "3aee30c9effa5a942a1ada18c2ffb67bead416de8b1aa12b44d92fba4836a4e4"}, {"id": "fls_xlcliuums5b0", "number": "22.3:32", "link": "inline-assembly.html#fls_xlcliuums5b0", "checksum": "71c84d73a44e48e642f979b9a86af1793a323f1925a436f71dd359c01bb520e4"}, {"id": "fls_5p4hyl7mxgai", "number": "22.3:33", "link": "inline-assembly.html#fls_5p4hyl7mxgai", "checksum": "2bdd537d58814885175ea0a364633afe6412e67633eb7dac5eeeebbfce4eac16"}, {"id": "fls_ilepg263w5o7", "number": "22.3:34", "link": "inline-assembly.html#fls_ilepg263w5o7", "checksum": "3e4ce3eefa93e708f4edf4590415a8f929092e0676f38915c2d3bb267538656b"}, {"id": "fls_tubmavru8wvn", "number": "22.3:35", "link": "inline-assembly.html#fls_tubmavru8wvn", "checksum": "bffcbb94249f82f25927f78213e778f1a7f985c4920412526cbb8efaef4b7845"}, {"id": "fls_b1xi3u9k4pdl", "number": "22.3:36", "link": "inline-assembly.html#fls_b1xi3u9k4pdl", "checksum": "541ae9ba48b53ec96b54e4a5a32502dfa1000cf8754fe5ecc7d2312b34d2ee37"}, {"id": "fls_i9ds6724tv20", "number": "22.3:37", "link": "inline-assembly.html#fls_i9ds6724tv20", "checksum": "cb91ec0812f0c384bf095f2797ac51734ba4121d8e8ab16363d157860a106878"}, {"id": "fls_trldyekxxlzx", "number": "22.3:38", "link": "inline-assembly.html#fls_trldyekxxlzx", "checksum": "e2937f6d2545e4b849a96cff1214ad6058a60ad6ba062f6d3f55147d0b5bbedf"}, {"id": "fls_efmpbyi4qjmf", "number": "22.3:39", "link": "inline-assembly.html#fls_efmpbyi4qjmf", "checksum": "0c794e05658bfc67f5509b086682137d1e225b3d3125bc988b0f7dade8a602dd"}, {"id": "fls_4x3w50w7qm8w", "number": "22.3:40", "link": "inline-assembly.html#fls_4x3w50w7qm8w", "checksum": "c1e90e11afbfaff93f5efda1e0676fe9bc08b30d4293f557d10af6cef6e2f5b5"}, {"id": "fls_6cne58tlquze", "number": "22.3:41", "link": "inline-assembly.html#fls_6cne58tlquze", "checksum": "cc1f051a457238506a16c5250f10a10b89a5a6c4be1b61afbf9fb31e8db6299a"}, {"id": "fls_5w718fne9jsh", "number": "22.3:42", "link": "inline-assembly.html#fls_5w718fne9jsh", "checksum": "07f663b7ccb32c2c12d99fcfcdaf84bba2f001085ffcbdc46af147dbd632e2bf"}, {"id": "fls_tel7kogaqytg", "number": "22.3:43", "link": "inline-assembly.html#fls_tel7kogaqytg", "checksum": "7f8e00a6debc5e2204cfaa0b86e6518ec9b97c56b7803af2fb2df7eada835828"}, {"id": "fls_aw61psz5drg8", "number": "22.3:44", "link": "inline-assembly.html#fls_aw61psz5drg8", "checksum": "080df59e1c6daaf9dcbaf8723b6d2151909c977c1ca58d4543b4648be9c8db54"}, {"id": "fls_sv2x3x81b32j", "number": "22.3:45", "link": "inline-assembly.html#fls_sv2x3x81b32j", "checksum": "f4784be0f3397b59835c7c80fc3fa280f40f0c5a558cfeb0dd74943416b87ae3"}, {"id": "fls_nebb0nhxf5ix", "number": "22.3:46", "link": "inline-assembly.html#fls_nebb0nhxf5ix", "checksum": "74f321168c8014a105d3fe61537f3cf35443beabfa8f6fc079c2b904d6de8b85"}, {"id": "fls_j0pxc8g8kcxm", "number": "22.3:47", "link": "inline-assembly.html#fls_j0pxc8g8kcxm", "checksum": "07b64182b91f96ec3d687a71dbf44e3ef75125b7a754d09ee0c8274a774ab7c9"}, {"id": "fls_wwh6xyclxwqj", "number": "22.3:48", "link": "inline-assembly.html#fls_wwh6xyclxwqj", "checksum": "f173b49637243cd66db248543679179b3894437aad904b62189d0106a6448977"}, {"id": "fls_qcb47z1ap9dz", "number": "22.3:49", "link": "inline-assembly.html#fls_qcb47z1ap9dz", "checksum": "9806b7c79391b43a6ff2c6de978f08dbf262be1f09d5994c4a3b5176b86d35da"}, {"id": "fls_h01au4vk8mjd", "number": "22.3:50", "link": "inline-assembly.html#fls_h01au4vk8mjd", "checksum": "d82b2f675143ea3e841f686833a7a7a875694a71bea0a335101d9f496b02b415"}, {"id": "fls_92ijsf4p6yn", "number": "22.3:51", "link": "inline-assembly.html#fls_92ijsf4p6yn", "checksum": "f531c0d0ea7572debc684b12dbc0edf4d3924d960344eb4cbe9fdd03c62ba2cd"}, {"id": "fls_xkui7j3gnfg0", "number": "22.3:52", "link": "inline-assembly.html#fls_xkui7j3gnfg0", "checksum": "f7e4dae4c4ddaa16ca26afebb3f35a670745389e64b88c65844e029c7a0cd97b"}, {"id": "fls_eahyqniqs2pn", "number": "22.3:53", "link": "inline-assembly.html#fls_eahyqniqs2pn", "checksum": "1e37a5e34d46afce6f7c07e6ac3a4bf3326a0f8b0b5f47b6398afc090f6bfe24"}, {"id": "fls_5g7p2zo07gfe", "number": "22.3:54", "link": "inline-assembly.html#fls_5g7p2zo07gfe", "checksum": "2a483ecef64dcb6a3f27eff5e1df5885c60546538f60c4dbfe1df9f84440e25b"}, {"id": "fls_dobbatnjs0yt", "number": "22.3:55", "link": "inline-assembly.html#fls_dobbatnjs0yt", "checksum": "412c8164a6ff9c0f787cf54c8a347a7a17608a58d8e21510f1752e83c5090438"}, {"id": "fls_ax8t4uta34ym", "number": "22.3:56", "link": "inline-assembly.html#fls_ax8t4uta34ym", "checksum": "3ace63d8c3c27df97ec81e12c7db56b091597dd8e85b82a39419826a4e0e9964"}, {"id": "fls_dvft4ha00wj3", "number": "22.3:57", "link": "inline-assembly.html#fls_dvft4ha00wj3", "checksum": "b4b8fd6cf4f2c93377215e7dc6ab80bfd0fb116d3f2aa401c9b213f57ec725fb"}, {"id": "fls_2ekwpx2bwj1b", "number": "22.3:58", "link": "inline-assembly.html#fls_2ekwpx2bwj1b", "checksum": "719c2d431cf4fa8f1d481db9a1a415bbdba221e1f78a967d89e4fccfc93fa6bb"}, {"id": "fls_3s2n9dlrlhz9", "number": "22.3:59", "link": "inline-assembly.html#fls_3s2n9dlrlhz9", "checksum": "9b44340bf99e2336f97d4544df886ba2d990b67388ac619ac2d18fb6b917a484"}, {"id": "fls_nbkkz6krcngi", "number": "22.3:60", "link": "inline-assembly.html#fls_nbkkz6krcngi", "checksum": "fa9005c5774af5498655cd144555d0013c40b6180373f8c7e8918e1ba12e03aa"}, {"id": "fls_utrvenwrettz", "number": "22.3:61", "link": "inline-assembly.html#fls_utrvenwrettz", "checksum": "435b90abb518be657a6bf0d3065224d00b9a224cd9f274e5cf1aeb3a1270b306"}, {"id": "fls_n85sjh925x", "number": "22.3:62", "link": "inline-assembly.html#fls_n85sjh925x", "checksum": "7b31b5b6ead309666eb975b9d0834ba47f9a3fa55195978c7d27e62afaadd0f0"}], "informational": false}, {"id": "fls_e0896uk0mdyl", "number": "22.4", "title": "Assembly Instructions", "link": "inline-assembly.html#assembly-instructions", "paragraphs": [{"id": "fls_4jr7eg6e0g4w", "number": "22.4:1", "link": "inline-assembly.html#fls_4jr7eg6e0g4w", "checksum": "e080d5e0ebf43bfbc4219d2d2e397aef7c54aa4e7a03b032120b3ba79a54a4d6"}, {"id": "fls_ihjhpy4osl53", "number": "22.4:2", "link": "inline-assembly.html#fls_ihjhpy4osl53", "checksum": "3ec0655943bc0361bb5ee51dee65ef55fc0cdbba100b9689c377aa00b58bbfcf"}, {"id": "fls_2d05gcixjrzt", "number": "22.4:3", "link": "inline-assembly.html#fls_2d05gcixjrzt", "checksum": "a9365d11f22e6d0282ff7a7829d262dd0237bb7df54f65c07d06cac38a8ef4e5"}, {"id": "fls_z64f094aivp6", "number": "22.4:4", "link": "inline-assembly.html#fls_z64f094aivp6", "checksum": "f0766d5049dcbb5d0c9cd71d282ee6fadf59ca4944f8fcfe3f0a3076cbee4359"}, {"id": "fls_u8lifqig90gq", "number": "22.4:5", "link": "inline-assembly.html#fls_u8lifqig90gq", "checksum": "818e1461216ec078c22ad83372847074fe214f98afcc5de45e628dae31f6c1f9"}, {"id": "fls_lfeun3er5sc9", "number": "22.4:6", "link": "inline-assembly.html#fls_lfeun3er5sc9", "checksum": "a8ae2c3d3244053dde269a59221580fbe43986dc1e0db3bb6a587f6818456d11"}, {"id": "fls_mmdmymljq8a3", "number": "22.4:7", "link": "inline-assembly.html#fls_mmdmymljq8a3", "checksum": "df6f74ba0870e9951d73e552be2119d9b8d9cde3bfe76879dbc0b4d621f4adff"}, {"id": "fls_xugsn2ghh73c", "number": "22.4:8", "link": "inline-assembly.html#fls_xugsn2ghh73c", "checksum": "d5f187840f02cfdf21c191f7e410d01ce205cd27e448a8ed69b3b623d6a75434"}, {"id": "fls_opnxq5kyw9jo", "number": "22.4:9", "link": "inline-assembly.html#fls_opnxq5kyw9jo", "checksum": "78dc81cd3902f11ea65d5e75e486faeb11ca34a926001792ce627e4c3f8fd23f"}, {"id": "fls_wydu9yft7a3r", "number": "22.4:10", "link": "inline-assembly.html#fls_wydu9yft7a3r", "checksum": "67eac47f7353bee4b01c2c0155a18d611ee18841d560d9d21ef05ad20fde5032"}], "informational": false}, {"id": "fls_lv19xysy1f7e", "number": "22.4.1", "title": "Register Parameter Modifiers", "link": "inline-assembly.html#register-parameter-modifiers", "paragraphs": [{"id": "fls_2xilifichdqu", "number": "22.4.1:1", "link": "inline-assembly.html#fls_2xilifichdqu", "checksum": "df3daccc1134fbde7da5c81da7286e4a8aee9877bdc758f10041315d7afdbc82"}, {"id": "fls_o3fx9397ib74", "number": "22.4.1:2", "link": "inline-assembly.html#fls_o3fx9397ib74", "checksum": "8a38fde192b47c9883e5f9c64b28fc71e84f6027fdf2b6510307bd918adb2c36"}, {"id": "fls_3atrad53m22a", "number": "22.4.1:3", "link": "inline-assembly.html#fls_3atrad53m22a", "checksum": "c4b970759ed150c13e63c36cd2534ef92a591c902367bfc2ecccc00302882d45"}, {"id": "fls_5zaqgz9jc8gy", "number": "22.4.1:4", "link": "inline-assembly.html#fls_5zaqgz9jc8gy", "checksum": "2aa77d6c13b1986b1ca71de2a9193b60d5f2ad0e8326131351cbe4785d63394a"}, {"id": "fls_erjczjotwqc3", "number": "22.4.1:5", "link": "inline-assembly.html#fls_erjczjotwqc3", "checksum": "1dbdb7b1cb424770dccf1f1ca6a22190bfded4e3a864ebe0c70138dcb08aa376"}, {"id": "fls_z8m45i9xqkct", "number": "22.4.1:6", "link": "inline-assembly.html#fls_z8m45i9xqkct", "checksum": "fce3a5b86ad0c82c14627febfea99be0d1adbc87a19da2a21ac7918c982c2165"}, {"id": "fls_adaavz3olha3", "number": "22.4.1:7", "link": "inline-assembly.html#fls_adaavz3olha3", "checksum": "f2a6f18c824fdc7760e14c9983e4f55bb428d7bc2e926c5336d84aebcad96812"}, {"id": "fls_u5dzca5f2pfm", "number": "22.4.1:8", "link": "inline-assembly.html#fls_u5dzca5f2pfm", "checksum": "402be3937906f8d4fa926dd2d3368473a0c85d6086a0eaf2ced7795159268355"}, {"id": "fls_6542a2hi5yhc", "number": "22.4.1:9", "link": "inline-assembly.html#fls_6542a2hi5yhc", "checksum": "a46c8e5b6d61001549276e9ceda68d5082cde5d8c411b9fcd4322e415159f543"}, {"id": "fls_94thqwabspw2", "number": "22.4.1:10", "link": "inline-assembly.html#fls_94thqwabspw2", "checksum": "69d1797e8dae4213d66892c3b2df1eccc2ba619132a731ed8578a80930d8b125"}, {"id": "fls_xhp8xu8xvvgd", "number": "22.4.1:11", "link": "inline-assembly.html#fls_xhp8xu8xvvgd", "checksum": "a26371ca4aa01bab4d2e1d2db822d99d09f609cc2e368e34640291ed8b08987b"}, {"id": "fls_g0p2ebuffnxb", "number": "22.4.1:12", "link": "inline-assembly.html#fls_g0p2ebuffnxb", "checksum": "934b550a3ace7fdebb140b888b4c6b0bd6fc15ba51a11245c09777b143e31c74"}, {"id": "fls_d0e2weni8q87", "number": "22.4.1:13", "link": "inline-assembly.html#fls_d0e2weni8q87", "checksum": "91e48c407ab94676b42f914c8b5e3d221426fc65422e434aee70e89bc2a2575e"}, {"id": "fls_bq3p4k42tzh8", "number": "22.4.1:14", "link": "inline-assembly.html#fls_bq3p4k42tzh8", "checksum": "c267be0d4596f4e187e1217ff192f745f74d1ed2d2e60cffc633f57ab23a3d0f"}, {"id": "fls_l5mkfdot97fz", "number": "22.4.1:15", "link": "inline-assembly.html#fls_l5mkfdot97fz", "checksum": "fbd2694649731061bfc93b035df30a2ffd8057aa228d378e6a1bbbd4d0c3b01b"}, {"id": "fls_sarl1hoq0lco", "number": "22.4.1:16", "link": "inline-assembly.html#fls_sarl1hoq0lco", "checksum": "a80431476395f4d9b37789b614a02fd3ed653fbfdbe231393ee74f8ffa344d62"}, {"id": "fls_f4q9a0jrs4ek", "number": "22.4.1:17", "link": "inline-assembly.html#fls_f4q9a0jrs4ek", "checksum": "e8ec5785b962e9d67a7073c3f3ed029663329777ffe7ed04740bb5bae1a2ca3d"}, {"id": "fls_w0hn6vkpuvpc", "number": "22.4.1:18", "link": "inline-assembly.html#fls_w0hn6vkpuvpc", "checksum": "94c265f36be700f5ab1b92a26255bccb819f831e2c5eb49430450911142fd3fc"}, {"id": "fls_a7bvkyh5otx5", "number": "22.4.1:19", "link": "inline-assembly.html#fls_a7bvkyh5otx5", "checksum": "a9dbcb5f2bc6a82cb619b70700efb6c5fb95c9028afc2ed8d33d54d9b8cc4285"}, {"id": "fls_klthi4cczkem", "number": "22.4.1:20", "link": "inline-assembly.html#fls_klthi4cczkem", "checksum": "210fc5aba0385a72ab09974dd17ebe68a03a97d12721b43936fe872062b67039"}, {"id": "fls_pizgnxvcnj46", "number": "22.4.1:21", "link": "inline-assembly.html#fls_pizgnxvcnj46", "checksum": "99debc3917e79cbba4f44a5de1c26fe2a35a28b999da0b9e0896c74136c7f55a"}, {"id": "fls_pvzfiuxka6wg", "number": "22.4.1:22", "link": "inline-assembly.html#fls_pvzfiuxka6wg", "checksum": "4646e2e4cfd3b465d1c592a0f0fc10fc28890d013e8bc48635645162b72b1c25"}, {"id": "fls_pf8yj3m81wk4", "number": "22.4.1:23", "link": "inline-assembly.html#fls_pf8yj3m81wk4", "checksum": "13837d13ce9ed671b2a8b76b9831fa0d911cd1db7ef3fd3c4dc3393776c153e8"}, {"id": "fls_2bf3ady2idq1", "number": "22.4.1:24", "link": "inline-assembly.html#fls_2bf3ady2idq1", "checksum": "5f0c87c237f4329b033b02aa1a4e501b3ef81ac67ae21f801fc66e6f1860dbdc"}, {"id": "fls_x1se4r75v58o", "number": "22.4.1:25", "link": "inline-assembly.html#fls_x1se4r75v58o", "checksum": "eb8c9934a20fbabd92ca5744c146afd324847e0dfda556cf639c4dfb8f63fe77"}, {"id": "fls_rgovn5r3caif", "number": "22.4.1:26", "link": "inline-assembly.html#fls_rgovn5r3caif", "checksum": "a71927d83c22a012d774779a46a3cc373fd770ac798eaa5bccaa5727d5fc7d23"}, {"id": "fls_faxm8xkhruvz", "number": "22.4.1:27", "link": "inline-assembly.html#fls_faxm8xkhruvz", "checksum": "d6f5bc80d218fd2eb5f767c7df3d43a0fbb3a4f9d611ff09ec5e2db2d73b964b"}, {"id": "fls_x1kkkvugpkyd", "number": "22.4.1:28", "link": "inline-assembly.html#fls_x1kkkvugpkyd", "checksum": "6cff8dae509fe0e99e81732637131e38defb7dc8880572cd5eaab052c4f188ae"}, {"id": "fls_uonqmj16oqxe", "number": "22.4.1:29", "link": "inline-assembly.html#fls_uonqmj16oqxe", "checksum": "486e270c4089e2051cac9eaba641373777e921aa5c7fe474f0ca357161b85e9e"}, {"id": "fls_ydhwlp56vmrz", "number": "22.4.1:30", "link": "inline-assembly.html#fls_ydhwlp56vmrz", "checksum": "ab3d0ca0fad9f39d9ea1ee3f6e6bd6a62feaf78a7c4ad89e4da7e1c9e1cd94e9"}, {"id": "fls_yolqzfqbfjoh", "number": "22.4.1:31", "link": "inline-assembly.html#fls_yolqzfqbfjoh", "checksum": "88ba61d8f48ccf3c27d589bf4bce3d0792b2193ee35a423cf45e9b005f6270f3"}, {"id": "fls_ojzzhoed6t9l", "number": "22.4.1:32", "link": "inline-assembly.html#fls_ojzzhoed6t9l", "checksum": "4cc9da7a653b181d53c273bb4262f0da36f474bba28cccad6515df9569c34691"}, {"id": "fls_gw56ok8llid3", "number": "22.4.1:33", "link": "inline-assembly.html#fls_gw56ok8llid3", "checksum": "7fbd7be9fcd499335adb0893a1a8a65bec287ca73feb1889dc5982a40247b238"}, {"id": "fls_ry7qoosmjrev", "number": "22.4.1:34", "link": "inline-assembly.html#fls_ry7qoosmjrev", "checksum": "72a5a17c379fbb6bacbacf067b17b2ceea95cab6686fa06bc8a48211b01489fa"}, {"id": "fls_i0ax45x2wskd", "number": "22.4.1:35", "link": "inline-assembly.html#fls_i0ax45x2wskd", "checksum": "6790bb787a1e84d353705bdf02d3ecff05ea2e3e901235703945395484fba35d"}, {"id": "fls_op4dx1rqwhsf", "number": "22.4.1:36", "link": "inline-assembly.html#fls_op4dx1rqwhsf", "checksum": "173a7c080780f8a61d2439061e6ae4d2d179116636cebf6c3b387311b75d8cdc"}], "informational": false}, {"id": "fls_6momhvgx4w21", "number": "22.4.2", "title": "Directive Support", "link": "inline-assembly.html#directive-support", "paragraphs": [{"id": "fls_4tfod2vgz2m6", "number": "22.4.2:1", "link": "inline-assembly.html#fls_4tfod2vgz2m6", "checksum": "273042489d4acdfdbbb4c1c21595ddaf45d9567bc4f222b33e969448bfe38b69"}, {"id": "fls_3b0ab1nlo641", "number": "22.4.2:2", "link": "inline-assembly.html#fls_3b0ab1nlo641", "checksum": "c5968dc1b0f463f09aeb9cd4b2aa570644d895641c7b98e829068c6a3b7bcead"}, {"id": "fls_caqznttql5p8", "number": "22.4.2:3", "link": "inline-assembly.html#fls_caqznttql5p8", "checksum": "b3410bc20ea46ca83da705dd5c3d4bd7e5dbcbb0cb06be3739e98bde74815d2e"}, {"id": "fls_bcheqswo7a1", "number": "22.4.2:4", "link": "inline-assembly.html#fls_bcheqswo7a1", "checksum": "327bbebd420db49f61b331ce68c29a03205db8e1034271f35724e3bff4967225"}, {"id": "fls_qxcl999rdwam", "number": "22.4.2:5", "link": "inline-assembly.html#fls_qxcl999rdwam", "checksum": "322b37644fe5b701127925bfa2b7e952ba5a3875e5ea4488a332ddde869dc5fd"}, {"id": "fls_2yi7kjnhkfme", "number": "22.4.2:6", "link": "inline-assembly.html#fls_2yi7kjnhkfme", "checksum": "b253c450a0ba8f47f8d9771eac1d50f4af75e1f2c3a1287d83242bd3fe0dece5"}, {"id": "fls_q0jp60aj81nv", "number": "22.4.2:7", "link": "inline-assembly.html#fls_q0jp60aj81nv", "checksum": "38d62d0687777daed55c786318f571e04236edf24b0be2be66fb64bcc79a1ec0"}, {"id": "fls_akny3esj88yy", "number": "22.4.2:8", "link": "inline-assembly.html#fls_akny3esj88yy", "checksum": "74b6e657cec0604048f4b316ae345d1d3607cb8345b45d3c19a0762e701bb114"}, {"id": "fls_9jajt7jn9cxk", "number": "22.4.2:9", "link": "inline-assembly.html#fls_9jajt7jn9cxk", "checksum": "d74eb6d81576b2d4afe799e9b3c3af708fffc38c914243232b77c7da8763f198"}, {"id": "fls_i7dr87fyrei8", "number": "22.4.2:10", "link": "inline-assembly.html#fls_i7dr87fyrei8", "checksum": "bf756baa1fd54ce8e191d9722e682a9688658b4f09b5a2d2adc2be66ec71f671"}, {"id": "fls_rjzgpxt8z8x", "number": "22.4.2:11", "link": "inline-assembly.html#fls_rjzgpxt8z8x", "checksum": "d0ce672b39bf64337b97f071c7ba60f06f19162e6e462862b7d3ba89bbf35177"}, {"id": "fls_iqrjkvgae5k", "number": "22.4.2:12", "link": "inline-assembly.html#fls_iqrjkvgae5k", "checksum": "8f07653c7f5ffded5888d86d7b90df75357f168c0520bdf55624bb2c836d2f9b"}, {"id": "fls_tzb5diegx3d5", "number": "22.4.2:13", "link": "inline-assembly.html#fls_tzb5diegx3d5", "checksum": "8f0cc6ef2c23c8cb4bee94667d1ec39ea29fbe2c83738e9a0a6911180130faee"}, {"id": "fls_82nia9oagat", "number": "22.4.2:14", "link": "inline-assembly.html#fls_82nia9oagat", "checksum": "540a3815a037e2019aa295eebe637bce2924911055ffd22655e0f7105361d716"}, {"id": "fls_qg6wt4plwnw6", "number": "22.4.2:15", "link": "inline-assembly.html#fls_qg6wt4plwnw6", "checksum": "4c30c61a09b304482477071c1e8940277819245caa2586bd24d5f47c8f0604ea"}, {"id": "fls_8ci8ukk25nz3", "number": "22.4.2:16", "link": "inline-assembly.html#fls_8ci8ukk25nz3", "checksum": "7b42846b370887a3f35c3a27a083518bb3dc29223630fbcb50980f0b92d4c3c5"}, {"id": "fls_ysbaz052rjg4", "number": "22.4.2:17", "link": "inline-assembly.html#fls_ysbaz052rjg4", "checksum": "c180e76cf8759c8f1c126845c7c4691255b1fc7300dd6d998b1ec33d2ba5193a"}, {"id": "fls_lbazk0g9r350", "number": "22.4.2:18", "link": "inline-assembly.html#fls_lbazk0g9r350", "checksum": "2237d36080e7a184ba2787ef43ea4309766b3fe20fcd28e287f48d8467f79652"}, {"id": "fls_2dui79hn30o7", "number": "22.4.2:19", "link": "inline-assembly.html#fls_2dui79hn30o7", "checksum": "3a38d11b37270cb84ae0f2d6aeb76dd4852810ab70083e2f74a868de0b004dcb"}, {"id": "fls_qzwyjj6xxwc2", "number": "22.4.2:20", "link": "inline-assembly.html#fls_qzwyjj6xxwc2", "checksum": "913c7a58bd440f285a8792fb9cb87bfe92b9d9e3e781b519576338a87006b568"}, {"id": "fls_9flwdfh5crsk", "number": "22.4.2:21", "link": "inline-assembly.html#fls_9flwdfh5crsk", "checksum": "b999de4283114f3434ff6b2f3d644c97f9947cdb3682846f9e5cfe9198c41071"}, {"id": "fls_u1c09ssrllil", "number": "22.4.2:22", "link": "inline-assembly.html#fls_u1c09ssrllil", "checksum": "e95b22baaaaccde95e5436616a10d509d3d62c095e320c2f3c8dd4e40946315a"}, {"id": "fls_tx58qbvh3jz3", "number": "22.4.2:23", "link": "inline-assembly.html#fls_tx58qbvh3jz3", "checksum": "5cabacdc42396ecdc4239421e1c94751f7e18bae7137ce2e7a90b826dc77137d"}, {"id": "fls_anwe21ypcjws", "number": "22.4.2:24", "link": "inline-assembly.html#fls_anwe21ypcjws", "checksum": "1b9a50adc4326cc8e3aa3e0191f596d700af6e1ee878fcd463eddc88796901c9"}, {"id": "fls_43rchr5ffxsv", "number": "22.4.2:25", "link": "inline-assembly.html#fls_43rchr5ffxsv", "checksum": "553eef4baa71f1f46de56c071450919bf2eca3dd6cf7bd9f4fde72bb42083db8"}, {"id": "fls_rscmbo3kbrsm", "number": "22.4.2:26", "link": "inline-assembly.html#fls_rscmbo3kbrsm", "checksum": "f79e3715f39c38e8e39df76757e19cba8ddf802007d1b76f19778e8c66455608"}, {"id": "fls_hnol9houwn1f", "number": "22.4.2:27", "link": "inline-assembly.html#fls_hnol9houwn1f", "checksum": "24edea8823258cf1aec3574d325ce870b217dc84940d5cbaef8363f52c84ce84"}, {"id": "fls_es1lo6siw702", "number": "22.4.2:28", "link": "inline-assembly.html#fls_es1lo6siw702", "checksum": "ef6d7d774ab1ca21f1aef251798dada30ebf5aa565f69e642e4ce2ef193ab470"}, {"id": "fls_xlk7kd26j2rm", "number": "22.4.2:29", "link": "inline-assembly.html#fls_xlk7kd26j2rm", "checksum": "05610e4ed44e10cfa011be9ec110980564ae67ea3f1a345629bc1726e0fbd447"}, {"id": "fls_x9kaplz9g1z9", "number": "22.4.2:30", "link": "inline-assembly.html#fls_x9kaplz9g1z9", "checksum": "c2122b8e33a87c74ed1103c4a38fb30ea601a8445ed9d99df70a31536b77d278"}, {"id": "fls_928ermlgde11", "number": "22.4.2:31", "link": "inline-assembly.html#fls_928ermlgde11", "checksum": "3066b6559d893177f8936aea6fc3b373621f7ad26e0b80588ac312291a2c572a"}, {"id": "fls_49bkqmxwl0d2", "number": "22.4.2:32", "link": "inline-assembly.html#fls_49bkqmxwl0d2", "checksum": "db73f3b0c8c275ef4f5be8518eac860264aba6acc6f606edcf905e67a01f825a"}, {"id": "fls_xlvkpe975b58", "number": "22.4.2:33", "link": "inline-assembly.html#fls_xlvkpe975b58", "checksum": "dea0ddd23f309d02462555b58271dfaff6e5958548830d4a0c6891eafc50b025"}, {"id": "fls_k3sy1ph0kvy", "number": "22.4.2:34", "link": "inline-assembly.html#fls_k3sy1ph0kvy", "checksum": "7c4f40ae43ddedb5dc71bae0dff059a430abcc5ef5dc36e38ce185ef2631ff54"}, {"id": "fls_ku6noqc0poxq", "number": "22.4.2:35", "link": "inline-assembly.html#fls_ku6noqc0poxq", "checksum": "d14404ffbac7fa6b204f853222509a2a09e59f7bbd912577a5a7ff4aeff0d298"}, {"id": "fls_hny0patop479", "number": "22.4.2:36", "link": "inline-assembly.html#fls_hny0patop479", "checksum": "251021164436aa4b642498f6a3d30aa2af316742c592de939c3153c932ff6d94"}, {"id": "fls_jm61m237cww", "number": "22.4.2:37", "link": "inline-assembly.html#fls_jm61m237cww", "checksum": "e493e8ca70b894b223615529525c358bb19c570024d3de0d8bd36a9ffa32c238"}, {"id": "fls_wvje5eua16xm", "number": "22.4.2:38", "link": "inline-assembly.html#fls_wvje5eua16xm", "checksum": "0830b44abd4b4c395984463fae9b127ebdbe221c966d5585ce9c6279c5e1253a"}, {"id": "fls_frxn2f6v584d", "number": "22.4.2:39", "link": "inline-assembly.html#fls_frxn2f6v584d", "checksum": "43d9d2ab6988505415d82f7db889a536048c143771389684c62cc7e58d4650fd"}, {"id": "fls_x6azw3td92b3", "number": "22.4.2:40", "link": "inline-assembly.html#fls_x6azw3td92b3", "checksum": "abea834cf3c23b93b75de1a6678a732d14decb29a408e444d3a290397ea29134"}, {"id": "fls_twerrggztho5", "number": "22.4.2:41", "link": "inline-assembly.html#fls_twerrggztho5", "checksum": "b5e53d8a4f2d5d92ff52782f5c95785d1d304ad5347ceb94c72d18c10a07aad1"}, {"id": "fls_s4cbxrc4ijyp", "number": "22.4.2:42", "link": "inline-assembly.html#fls_s4cbxrc4ijyp", "checksum": "538abae4915a252a44ef56d9fd5d1e9b54e0a5256c3493cfd1ed292abb455257"}, {"id": "fls_2hdsgqko25l5", "number": "22.4.2:43", "link": "inline-assembly.html#fls_2hdsgqko25l5", "checksum": "e12629bff77cc49dd0fd9697926e543b3db783726e728995ab6dcf3eb21b6637"}, {"id": "fls_5tzwwove8mgq", "number": "22.4.2:44", "link": "inline-assembly.html#fls_5tzwwove8mgq", "checksum": "3906f6daca8c9ecacb9ceb21d3511d2db168376916cb202a32f59cbac41bd889"}, {"id": "fls_e6nvq9xygvh", "number": "22.4.2:45", "link": "inline-assembly.html#fls_e6nvq9xygvh", "checksum": "0706a9b6e7d90d7b3533057e27539a37cf1b148a53e539ae61ad9dafdd8286f0"}], "informational": false}, {"id": "fls_a3joqzqp1v9d", "number": "22.5", "title": "ABI Clobbers", "link": "inline-assembly.html#abi-clobbers", "paragraphs": [{"id": "fls_xa11ggykg0sh", "number": "22.5:1", "link": "inline-assembly.html#fls_xa11ggykg0sh", "checksum": "059896cc2c79a9ed0b43866fe3d923d7239e3a67a128c7e89e6869411edccc1c"}, {"id": "fls_e43sj9inlsym", "number": "22.5:2", "link": "inline-assembly.html#fls_e43sj9inlsym", "checksum": "25daebb16bac887b6a619f1c15055cf292b836403ab183382752976a02a4257c"}, {"id": "fls_gq2khxl1hixg", "number": "22.5:3", "link": "inline-assembly.html#fls_gq2khxl1hixg", "checksum": "3151135e30ed0eaa0046c0a2c933b3df4524b6ebd38636be511d97edf1093142"}, {"id": "fls_o2qn842y0vvc", "number": "22.5:4", "link": "inline-assembly.html#fls_o2qn842y0vvc", "checksum": "9d980c1d9a3bd3147ff52fa56ba95e975ddb9eec707b8dcc601b03993a6bfbc5"}, {"id": "fls_msysjt5m2941", "number": "22.5:5", "link": "inline-assembly.html#fls_msysjt5m2941", "checksum": "c9961878c937f4ee5de1788b5a9a58b77076276170d875a58a526fa90be99665"}, {"id": "fls_vyhl5po6pl4x", "number": "22.5:6", "link": "inline-assembly.html#fls_vyhl5po6pl4x", "checksum": "e99e85bd28b33b69146abf6665f55cd679b81c2d26e54ed077ca48c986466401"}, {"id": "fls_d1be48ik4a8", "number": "22.5:7", "link": "inline-assembly.html#fls_d1be48ik4a8", "checksum": "4a320730472da6e94d6e7eb0e60110ce54e50eaf2bd689ad2d9e77d9174281bb"}, {"id": "fls_49pus6qqmf72", "number": "22.5:8", "link": "inline-assembly.html#fls_49pus6qqmf72", "checksum": "c7a214a478ecba87863b838e3cc1dc1e0211c41d45b466650cf9e1ee4af781b1"}, {"id": "fls_tc727ietnawz", "number": "22.5:9", "link": "inline-assembly.html#fls_tc727ietnawz", "checksum": "90b9e3c561e86b008b46a75c32a8381e977ed63097178f6649d726503e1e5aa6"}, {"id": "fls_6jgsmfvww667", "number": "22.5:10", "link": "inline-assembly.html#fls_6jgsmfvww667", "checksum": "02ff55c63d8be9b67db3379370d75d0fc64e42c2a63af002328807ef6040df7d"}, {"id": "fls_gvzoq5mqwjx", "number": "22.5:11", "link": "inline-assembly.html#fls_gvzoq5mqwjx", "checksum": "544d1d040690c1ef7a2b666dc2a809d33f42b0b1114f00dc05d36f203757cfd5"}, {"id": "fls_bnwzzpcmiero", "number": "22.5:12", "link": "inline-assembly.html#fls_bnwzzpcmiero", "checksum": "61e5e0531c0e617d3d424dfdfc8416bbf5aeb5313b8b85f8073e6fac4da59243"}], "informational": false}, {"id": "fls_ylli0ortyegk", "number": "22.6", "title": "Assembly Options", "link": "inline-assembly.html#assembly-options", "paragraphs": [{"id": "fls_i21l6t3vn95t", "number": "22.6:1", "link": "inline-assembly.html#fls_i21l6t3vn95t", "checksum": "8a3a017f2afb0587c55dfb386c7e5d180d3157b04f01968b1eb489ce80ca469f"}, {"id": "fls_g09kmp2a04g9", "number": "22.6:2", "link": "inline-assembly.html#fls_g09kmp2a04g9", "checksum": "bab672735ba4bd11338fe18ef154010c328d60c6904b856a7e71670295861eb9"}, {"id": "fls_quer8ltdwnf2", "number": "22.6:3", "link": "inline-assembly.html#fls_quer8ltdwnf2", "checksum": "387233953cd06bc333811fa124272c964f24902926b1502b30fd6a1be40fc044"}, {"id": "fls_5wpgqpcm1v40", "number": "22.6:4", "link": "inline-assembly.html#fls_5wpgqpcm1v40", "checksum": "36d8b0665a541f55861ac8eec58788b1300271d197914bcef79a5366d764a54e"}, {"id": "fls_ejuap3kkvs57", "number": "22.6:5", "link": "inline-assembly.html#fls_ejuap3kkvs57", "checksum": "81f05b034ad37fdb0de0e9a2242a963b2cfd4886a5fa12d422e3944d67f850a4"}, {"id": "fls_1nopbk5bkeqm", "number": "22.6:6", "link": "inline-assembly.html#fls_1nopbk5bkeqm", "checksum": "e2e32a90c459f6211a5915bd66ddf72c97e86792880aa7a5af68a1028b4f1c27"}, {"id": "fls_e5b1mp3byll2", "number": "22.6:7", "link": "inline-assembly.html#fls_e5b1mp3byll2", "checksum": "7ef8c5e5436b9b3ccf1d5ddd8f024651de630ff3a775b15cfb2dbec38833c4dc"}, {"id": "fls_2gf4wemrzaae", "number": "22.6:8", "link": "inline-assembly.html#fls_2gf4wemrzaae", "checksum": "6c6abff15d559e67cfbee302183c6b6cd9e2d0b27ef17f3fc6c2d2b1b8dc247d"}, {"id": "fls_5ebifab8dhy", "number": "22.6:9", "link": "inline-assembly.html#fls_5ebifab8dhy", "checksum": "9a59466198ee2c628bf21cf3451d438f7b681c05bff38179d054b394ca87b055"}, {"id": "fls_ae2x4ho3i0zr", "number": "22.6:10", "link": "inline-assembly.html#fls_ae2x4ho3i0zr", "checksum": "3812da6e1f78fd4f04190a7f0b03c53c355e7fd9497bdbb2cc363720db6d7f05"}, {"id": "fls_188ib65a1z36", "number": "22.6:11", "link": "inline-assembly.html#fls_188ib65a1z36", "checksum": "9227d85264bddc464ffe9527094d6daa871bb3d8c05d00cb821528e1c241cb04"}, {"id": "fls_ia3cg424d601", "number": "22.6:12", "link": "inline-assembly.html#fls_ia3cg424d601", "checksum": "9947ef35f98d51e42642de4b89c7ff24c303708a6fc048d6baf420acd0c2e144"}, {"id": "fls_j09bo53i5n69", "number": "22.6:13", "link": "inline-assembly.html#fls_j09bo53i5n69", "checksum": "1f08df8b8d9ead71e6d2a2b97ce398fa198247177be827becf8b36abac2eec70"}, {"id": "fls_eka6chp3hapa", "number": "22.6:14", "link": "inline-assembly.html#fls_eka6chp3hapa", "checksum": "6156a4e0aabe75163b3c333a7cc831ca44acd71d75015372430ca8c0d1ca7495"}, {"id": "fls_nszx1gllufi2", "number": "22.6:15", "link": "inline-assembly.html#fls_nszx1gllufi2", "checksum": "6e26d5ced9abcc14efda425d56724492c38c2a89dfaaf7cc53fdcff38153f695"}, {"id": "fls_d169ppna563c", "number": "22.6:16", "link": "inline-assembly.html#fls_d169ppna563c", "checksum": "2d7523471d7b595463ca7ca9c55972764ee91e9b48fd28620896baccbfe97aa7"}, {"id": "fls_h8549stij7pj", "number": "22.6:17", "link": "inline-assembly.html#fls_h8549stij7pj", "checksum": "44e6f48245cc97766452666dcc62fa1d73508669f7a630f942edc2e6047d67ff"}, {"id": "fls_2drikpht6md9", "number": "22.6:18", "link": "inline-assembly.html#fls_2drikpht6md9", "checksum": "b7cabc7b0d3991a23cd2b6064e873e856d12f722b48c78eb4f1e5c68cb9e9fb9"}, {"id": "fls_x66j1cn6zi6p", "number": "22.6:19", "link": "inline-assembly.html#fls_x66j1cn6zi6p", "checksum": "87fde9a65891debe011e4dabc743129a995adf7c4605b39913aa4478ab811aab"}, {"id": "fls_ikwbu1ho33is", "number": "22.6:20", "link": "inline-assembly.html#fls_ikwbu1ho33is", "checksum": "e09645a3d913b01ba7b2da0538ca2a8cf2971062f274bbb7b07eb2fcbdf50eb6"}, {"id": "fls_nf0h9crdzhfg", "number": "22.6:21", "link": "inline-assembly.html#fls_nf0h9crdzhfg", "checksum": "2e64f7a7609904f62a789b1086409483bd975bfc91a04b82c0b5263044395404"}, {"id": "fls_wh0wasawjj5s", "number": "22.6:22", "link": "inline-assembly.html#fls_wh0wasawjj5s", "checksum": "ec4f1cc8bf22f706c2134897ccf8d68dff4c3a033f4ca1578e692769fe6fa36f"}, {"id": "fls_s0ivlbjefh1u", "number": "22.6:23", "link": "inline-assembly.html#fls_s0ivlbjefh1u", "checksum": "3a414e98a1f7d173475399458067467182305c436b62978e990ae3071bb8dd27"}], "informational": false}, {"id": "fls_qezwyridmjob", "number": "22.7", "title": "Macros asm and global_asm", "link": "inline-assembly.html#macros-asm-and-global-asm", "paragraphs": [{"id": "fls_ecteot716j8j", "number": "22.7:1", "link": "inline-assembly.html#fls_ecteot716j8j", "checksum": "b192c064956d68ec4e19d2db778867c39cd0ad9e6a3070f71d7d91ce413a2b61"}, {"id": "fls_1ikzov7cxic1", "number": "22.7:2", "link": "inline-assembly.html#fls_1ikzov7cxic1", "checksum": "95dbbdf815af777d799412933cfb1c6139d1a5a0618aca24c1ce9095e8a3bf75"}, {"id": "fls_4lb6yh12w1cv", "number": "22.7:3", "link": "inline-assembly.html#fls_4lb6yh12w1cv", "checksum": "8b4f18328e73d75d6d74d43fa45304ecad3929469d9cfbf55a766168dac286fe"}, {"id": "fls_tgzga1lanfuo", "number": "22.7:4", "link": "inline-assembly.html#fls_tgzga1lanfuo", "checksum": "fda22eb8953825d6e52da828c1a9d947bb194cfd63115300442e862a916c0b36"}, {"id": "fls_nfkbvs86d6kz", "number": "22.7:5", "link": "inline-assembly.html#fls_nfkbvs86d6kz", "checksum": "cef34131dd6ae60d425b87a2ac6d953390e2dec00e679df1e058873e45adaf2a"}, {"id": "fls_98vyqh9bzigx", "number": "22.7:6", "link": "inline-assembly.html#fls_98vyqh9bzigx", "checksum": "76c9be8a2c13f41d46c1674de81af3faa54bf6a070033c81d62a9c8d437ac6ed"}, {"id": "fls_ppnj8bcncdp9", "number": "22.7:7", "link": "inline-assembly.html#fls_ppnj8bcncdp9", "checksum": "29bb7394c69509f75799537c989b895449d8782786410554e4b948bd0a38ada0"}, {"id": "fls_wmay1vd8u0da", "number": "22.7:8", "link": "inline-assembly.html#fls_wmay1vd8u0da", "checksum": "fb17b760d5c76e48d93d08f1722c8da1fd927224135f46c206a4d3fe54d4a55d"}, {"id": "fls_e613hpr50t9", "number": "22.7:9", "link": "inline-assembly.html#fls_e613hpr50t9", "checksum": "f1479feedda5b57e1e5936f05df2da01ee75eb433febd48f24327a86fb66916e"}, {"id": "fls_bic6iyd1nvfm", "number": "22.7:10", "link": "inline-assembly.html#fls_bic6iyd1nvfm", "checksum": "ce7ddc33151dcfba8a36c91bc23c8438759f7fce66fff26d097a1d2838d4028e"}], "informational": false}], "informational": false}, {"title": "Items", "link": "items.html", "sections": [{"id": "fls_wb86edg02t6a", "number": "3", "title": "Items", "link": "items.html", "paragraphs": [{"id": "fls_s3b1cba9lfj5", "number": "3:1", "link": "items.html#fls_s3b1cba9lfj5", "checksum": "7828a434b91eb775a25b624f9c2c6e10d5b02ed8e26529f7471e4a787e24e10f"}, {"id": "fls_hil5f7y4xdhe", "number": "3:2", "link": "items.html#fls_hil5f7y4xdhe", "checksum": "c820b8889c9e57bcae1988c78c8217a0fcd495f92409b93715942f79e683ae67"}], "informational": false}], "informational": false}, {"title": "Macros", "link": "macros.html", "sections": [{"id": "fls_83182bfa9uqb", "number": "20", "title": "Macros", "link": "macros.html", "paragraphs": [{"id": "fls_j1jc83erljo0", "number": "20:1", "link": "macros.html#fls_j1jc83erljo0", "checksum": "23ad7afdee8d11ed607ec24d3a0e15437d673156ba4b127587b5669f1832653b"}, {"id": "fls_23eapx3ckymf", "number": "20:2", "link": "macros.html#fls_23eapx3ckymf", "checksum": "f3350d5be59f16503e8f202eed548f9142e23d0995f540a0fe8dbfa0790eb114"}, {"id": "fls_a5uemz2hnbi8", "number": "20:3", "link": "macros.html#fls_a5uemz2hnbi8", "checksum": "b37827025945e3ebe09fb51af413ab507e55bef20cbd1cdc0d88bda1e5b31868"}, {"id": "fls_rnty1c8l5495", "number": "20:4", "link": "macros.html#fls_rnty1c8l5495", "checksum": "f947401b4192d1cb447cdbc6dfa662250896c68e1cb0477bdfdbc7dfaf9b809c"}], "informational": false}, {"id": "fls_xa7lp0zg1ol2", "number": "20.1", "title": "Declarative Macros", "link": "macros.html#declarative-macros", "paragraphs": [{"id": "fls_ikzjsq8heyk6", "number": "20.1:1", "link": "macros.html#fls_ikzjsq8heyk6", "checksum": "8cffdd9962e92466f819713aab704c780ae0d98dac229021c576afa2742830ba"}, {"id": "fls_w44hav7mw3ao", "number": "20.1:2", "link": "macros.html#fls_w44hav7mw3ao", "checksum": "4e9e7f12e6633dbb05180c17c6a222b11c2760152ee1a091050e70af0a2f4238"}, {"id": "fls_dw1nq4r9ghhd", "number": "20.1:3", "link": "macros.html#fls_dw1nq4r9ghhd", "checksum": "af67fc9d046886fb7c793c0a9eef775cd020529cf8ec85a93167f1e58f4122fa"}, {"id": "fls_oq4xn8guos8f", "number": "20.1:4", "link": "macros.html#fls_oq4xn8guos8f", "checksum": "13beaa609262aa0b7e0b3212da54ac78e68086106c14cc11e081e7132158286b"}, {"id": "fls_cdaf8viwmdfe", "number": "20.1:5", "link": "macros.html#fls_cdaf8viwmdfe", "checksum": "b549b18e6de60d1ec130ab38737806e6ea0cbd0d471501c476916eefe2be7228"}, {"id": "fls_ljavs0w61z3j", "number": "20.1:6", "link": "macros.html#fls_ljavs0w61z3j", "checksum": "238647cd9313b6607667d9993c8bf87f5406351bd4a87045bd0850f5063f6b84"}, {"id": "fls_3jspk8obv7sd", "number": "20.1:7", "link": "macros.html#fls_3jspk8obv7sd", "checksum": "41d7cadc4529963b5fae05cea05d12721cc023eac8db3ab3013c78712f677f92"}], "informational": false}, {"id": "fls_8nzypdu9j3ge", "number": "20.1.1", "title": "Metavariables", "link": "macros.html#metavariables", "paragraphs": [{"id": "fls_g93r3teei8wo", "number": "20.1.1:1", "link": "macros.html#fls_g93r3teei8wo", "checksum": "142bdc43ec20b9deed884f97e167a2a47e1cd8cab76ba4b6a81e5b3ec56b69ea"}, {"id": "fls_4zdait30exvn", "number": "20.1.1:2", "link": "macros.html#fls_4zdait30exvn", "checksum": "260a8af1053ab13b37c8171151aec029a2b0049a4db4d2fa4c072391caa7c788"}, {"id": "fls_2hguxbl7djkh", "number": "20.1.1:3", "link": "macros.html#fls_2hguxbl7djkh", "checksum": "0e475930b62b5e6e2c4eaa5d954c01002c3918fb1243f5ffd3b8b5959e5350f0"}, {"id": "fls_8zypylq60zba", "number": "20.1.1:4", "link": "macros.html#fls_8zypylq60zba", "checksum": "e16b11f619d14521da5d28556e2228fd055de524ae57da0397dc5fb7f244b522"}, {"id": "fls_8o9mcv2krkac", "number": "20.1.1:5", "link": "macros.html#fls_8o9mcv2krkac", "checksum": "a7305e4a6c0db284c01d3b766c9526e183f139d0d6b3417b05a0a25448deb2e1"}, {"id": "fls_pxr9vnhsafni", "number": "20.1.1:6", "link": "macros.html#fls_pxr9vnhsafni", "checksum": "161fa80b65b3bb28682283f1c7ce7e3a51f7a9079bdddfee8bdfed439ff215e1"}, {"id": "fls_epyotejj11n0", "number": "20.1.1:7", "link": "macros.html#fls_epyotejj11n0", "checksum": "db57f38586128d0f797f87a3bec37a62e9bc1ffe1a0b5b3634c97bbbd3c3a923"}, {"id": "fls_0j7vov4ewfey", "number": "20.1.1:8", "link": "macros.html#fls_0j7vov4ewfey", "checksum": "5ab36e5b8b233c50fbb634f2ddb85db4a65676e58884c4e545002ad8ae792716"}, {"id": "fls_80compimu2gx", "number": "20.1.1:9", "link": "macros.html#fls_80compimu2gx", "checksum": "7e4c3dc1c34fcadf4bb70df2a2ca55cb16019fe78a19c5f625a3407c7f23de0c"}, {"id": "fls_dfmrwswi8e5z", "number": "20.1.1:10", "link": "macros.html#fls_dfmrwswi8e5z", "checksum": "ae189445a188e528fc320b0716648ea260e44624143f233a7a3d6594c319fc71"}, {"id": "fls_boiggrfdyhwh", "number": "20.1.1:11", "link": "macros.html#fls_boiggrfdyhwh", "checksum": "3a94c395e86b915f016782c8e832229ac77ff7d26c4468f604f4d1346d410385"}, {"id": "fls_nbbygzwuxjfp", "number": "20.1.1:12", "link": "macros.html#fls_nbbygzwuxjfp", "checksum": "10fac2b91182e4a802d41382e138eeea01e0169f14fd98576dec0541757d3d52"}, {"id": "fls_lz8f1zujju33", "number": "20.1.1:13", "link": "macros.html#fls_lz8f1zujju33", "checksum": "a397be8475f298d03d342d1d7922a7addc7c4e01708dbc748271e89ff6e4e91a"}, {"id": "fls_ephlmlsgtmgw", "number": "20.1.1:14", "link": "macros.html#fls_ephlmlsgtmgw", "checksum": "6d1e723dc52e63b247ff2a9f36fd2a2448c78a8a6c0785d9bc962cbf164a68ff"}], "informational": false}, {"id": "fls_k01lsksqtq1r", "number": "20.1.2", "title": "Repetition", "link": "macros.html#repetition", "paragraphs": [{"id": "fls_4ps4x4513xau", "number": "20.1.2:1", "link": "macros.html#fls_4ps4x4513xau", "checksum": "9be00a29faba4cce56b85af749378910166a176caaf783feb7f21917b113f4fc"}, {"id": "fls_8byjmlgum2f3", "number": "20.1.2:2", "link": "macros.html#fls_8byjmlgum2f3", "checksum": "0afa98bdb2bc52d07887d1af628eba5846e5110da9bf813ba1906139eba01c98"}, {"id": "fls_ltdp3zs60dzr", "number": "20.1.2:3", "link": "macros.html#fls_ltdp3zs60dzr", "checksum": "43358f7409e5fcf8e712e18e535f05897041a0c7ee20dc9c07eaae0a6a5b463c"}, {"id": "fls_v1wruzzuwugj", "number": "20.1.2:4", "link": "macros.html#fls_v1wruzzuwugj", "checksum": "fb90822182dbef1ad0b6848a7d2b4784a72127a44df216ec0a2fc1e4f586298c"}, {"id": "fls_u86j0zm2jshf", "number": "20.1.2:5", "link": "macros.html#fls_u86j0zm2jshf", "checksum": "cc21d8251493e001ac2bf6dc3b6d9869a4525b75ff8bdd4a6b96569f649bd5a7"}, {"id": "fls_h5f8x4jdnvbu", "number": "20.1.2:6", "link": "macros.html#fls_h5f8x4jdnvbu", "checksum": "decb59aaa3220c66f8fa18342f46b9dbbd8d79ae738262d7cc8d3276f0d6f871"}, {"id": "fls_hf4gj5pfl437", "number": "20.1.2:7", "link": "macros.html#fls_hf4gj5pfl437", "checksum": "8cb8cbde345ddbe65efa4ff3d8e5aa2db38eaa6626cdd39220f0a691c264783d"}, {"id": "fls_tm0w0680wf4x", "number": "20.1.2:8", "link": "macros.html#fls_tm0w0680wf4x", "checksum": "e94a58c9be4a3e503fe157cfb77e90b5e89fe37b134ffb1f6f08c47bd52ea5f9"}, {"id": "fls_10lsg5212ffb", "number": "20.1.2:9", "link": "macros.html#fls_10lsg5212ffb", "checksum": "3cdc79fac2c5194ed7084ae18321fb32b4db88a78ed80cc4f4432b4894648505"}, {"id": "fls_unfvr9nb1nze", "number": "20.1.2:10", "link": "macros.html#fls_unfvr9nb1nze", "checksum": "44e5e09eadfa0ef32f2aa42f5d86aefc29a08264af8ea9678ec830ac5d0d919c"}, {"id": "fls_sm4qvshkyly2", "number": "20.1.2:11", "link": "macros.html#fls_sm4qvshkyly2", "checksum": "ada08a290b60070c6aae793052fba60f6404e5668f5da364e16a178044452d6a"}, {"id": "fls_rdvs8dz6ouu7", "number": "20.1.2:12", "link": "macros.html#fls_rdvs8dz6ouu7", "checksum": "ea5e5013c9fbf8d7b889cd0fe21718fb395b30a9d7cd9f10b911a150dc32decd"}, {"id": "fls_uilj6csow81w", "number": "20.1.2:13", "link": "macros.html#fls_uilj6csow81w", "checksum": "e9e82608e910aea5e4b9b881e3bbc4f832130dd93a971ad1d979ae6b3be81ba8"}, {"id": "fls_yp2xxdv4dzei", "number": "20.1.2:14", "link": "macros.html#fls_yp2xxdv4dzei", "checksum": "31f297fdd3706a0010aae6400f9a4d0d7368160c1aebd8e60699f9e9fbdf2639"}, {"id": "fls_n5tkjkwidhcd", "number": "20.1.2:15", "link": "macros.html#fls_n5tkjkwidhcd", "checksum": "e542a9b407077073772387ef8c3ca43d8afb0cf939f1285a5c47b7d07ad1979d"}], "informational": false}, {"id": "fls_wn1i6hzg2ff7", "number": "20.2", "title": "Procedural Macros", "link": "macros.html#procedural-macros", "paragraphs": [{"id": "fls_ejbddhggstd2", "number": "20.2:1", "link": "macros.html#fls_ejbddhggstd2", "checksum": "40ae367af875e89e010e4d22a7cfe13aa5dbaed9fc46011de6b52d138577092f"}, {"id": "fls_pcce9gmjpxba", "number": "20.2:2", "link": "macros.html#fls_pcce9gmjpxba", "checksum": "a154977cec887d19447bb9d7566684f5f07b10108feaad22add360f52cade411"}, {"id": "fls_vtzuplb1p3s", "number": "20.2:3", "link": "macros.html#fls_vtzuplb1p3s", "checksum": "0f0739a1ed671f541972aa194b63778a35eef1f8a258625357bad1dfb79126ec"}, {"id": "fls_mewfehvgm16r", "number": "20.2:4", "link": "macros.html#fls_mewfehvgm16r", "checksum": "b0d421770e39ab6631e15b540881bf6453ecda3a0bbc8c78183bba9be46e6c77"}], "informational": false}, {"id": "fls_2d6bqnpy6tvs", "number": "20.2.1", "title": "Function-like Macros", "link": "macros.html#function-like-macros", "paragraphs": [{"id": "fls_utd3zqczix", "number": "20.2.1:1", "link": "macros.html#fls_utd3zqczix", "checksum": "35211e047d31106ec03bc1b7ccba14cee77f4c950b50ddedbd47d9cbe9dc876f"}, {"id": "fls_ojr30lf6jfx0", "number": "20.2.1:2", "link": "macros.html#fls_ojr30lf6jfx0", "checksum": "195f49e7c5486c12cd274b338a19d3eaa1a19f99570f7ee0b52a3b1eeb90251e"}, {"id": "fls_ljkjmegynhiy", "number": "20.2.1:3", "link": "macros.html#fls_ljkjmegynhiy", "checksum": "1d126893f14def3d9f5d85d0190f84dc53a460ce5e6da350afffa20da8714d0b"}, {"id": "fls_8a8qhzjw5hax", "number": "20.2.1:4", "link": "macros.html#fls_8a8qhzjw5hax", "checksum": "1a1931bdd5b2a64999e14fa18b646001ec64e8e677c906ce614ba221a5dbf2c6"}, {"id": "fls_ofzql79i9if", "number": "20.2.1:5", "link": "macros.html#fls_ofzql79i9if", "checksum": "589f04afe8c234ee2c179f3f0931eaded30292da86287719098525edb953002c"}, {"id": "fls_j1wsyzip2qb3", "number": "20.2.1:6", "link": "macros.html#fls_j1wsyzip2qb3", "checksum": "67268d716ea7849d7125350436f4e4a6d5d38effc37ae5216408b2690ab8d033"}, {"id": "fls_etyo9bmzxby6", "number": "20.2.1:7", "link": "macros.html#fls_etyo9bmzxby6", "checksum": "ba0099799988b2f6d17799a6f6f9c33b477183b8eeec921be942c1c46fe6e668"}, {"id": "fls_mkl9b38m0sf1", "number": "20.2.1:8", "link": "macros.html#fls_mkl9b38m0sf1", "checksum": "7de42cd159846bf2a84aba1bcaf2c1f39e0a6092c7db776d8abb5854419ee2c1"}, {"id": "fls_lfmb22bfnrye", "number": "20.2.1:9", "link": "macros.html#fls_lfmb22bfnrye", "checksum": "6e54b9a8b956ed9a206672b6145a346a9d87f0734de85341ef04814529bcee31"}, {"id": "fls_fbgal48cgj44", "number": "20.2.1:10", "link": "macros.html#fls_fbgal48cgj44", "checksum": "78e85689e473377a80352ef6fe022993d405de27b2c6c0393cc70edc6d40e0e8"}], "informational": false}, {"id": "fls_o8s3r7m90q59", "number": "20.2.2", "title": "Derive Macros", "link": "macros.html#derive-macros", "paragraphs": [{"id": "fls_e5x92q2rq8a0", "number": "20.2.2:1", "link": "macros.html#fls_e5x92q2rq8a0", "checksum": "aeee3f491d3c18c862f68c8f41eed353a109270ae1f717f9d5620bd9e311fbc6"}, {"id": "fls_ldw75sy5uj7p", "number": "20.2.2:2", "link": "macros.html#fls_ldw75sy5uj7p", "checksum": "5242e5a075162a366a5adf0a32e20e73a4ed4c93a3b63541a8201de95af0cbfe"}, {"id": "fls_7gcnui9beky", "number": "20.2.2:3", "link": "macros.html#fls_7gcnui9beky", "checksum": "77dd4bd0709e93df0c9294bd185bd0cb487a9e1991042f0cb0ecffb5df13bc60"}, {"id": "fls_ef30ropg7dhx", "number": "20.2.2:4", "link": "macros.html#fls_ef30ropg7dhx", "checksum": "7fa2a69e91d4ee885cc21d70cb2d326b60305f03bba8a17a36209a53457749bb"}, {"id": "fls_mo00vqm9xfqc", "number": "20.2.2:5", "link": "macros.html#fls_mo00vqm9xfqc", "checksum": "700ee188839152335fdb7422422a37ae9cb40c8bb9bc9940787cd260d61e7276"}, {"id": "fls_gr9wugeqyb3b", "number": "20.2.2:6", "link": "macros.html#fls_gr9wugeqyb3b", "checksum": "d8d72a951c13aa5fe8714a16539462fbbaf7ead2c1ad8ecd97cf3071f5db6ab8"}, {"id": "fls_npnze2cg8ae", "number": "20.2.2:7", "link": "macros.html#fls_npnze2cg8ae", "checksum": "6a638cc0c5ef1383ed2612ba3ab85735c70a35cbabcde5839d61b426d3411406"}, {"id": "fls_w2h4lk6bmht", "number": "20.2.2:8", "link": "macros.html#fls_w2h4lk6bmht", "checksum": "704edbd352cfa964eac3571f6d328a271b59ec3801b0d4deb1b3ff167d9edcbf"}, {"id": "fls_x96a0xzcyrko", "number": "20.2.2:9", "link": "macros.html#fls_x96a0xzcyrko", "checksum": "f217c6bc6e853a2b8556dbc0b41314003eaa542eca75e8a17d1573264d4e2151"}, {"id": "fls_caa16usjxryg", "number": "20.2.2:10", "link": "macros.html#fls_caa16usjxryg", "checksum": "a284d52790bdad317fdaac6d6bb30541a4dba804471aa74bf317849a3eba4ca2"}, {"id": "fls_h5ipqqlh3pjh", "number": "20.2.2:11", "link": "macros.html#fls_h5ipqqlh3pjh", "checksum": "81811154b26e520b237186a9289476a52adca1dac91598bea29f6d2f8ad5c0af"}, {"id": "fls_mobky5ck1mi", "number": "20.2.2:12", "link": "macros.html#fls_mobky5ck1mi", "checksum": "99a2dde0b9166346d32d075006f6fff461527d79389470e64b255fb7a9f63733"}], "informational": false}, {"id": "fls_4vjbkm4ceymk", "number": "20.2.3", "title": "Attribute Macros", "link": "macros.html#attribute-macros", "paragraphs": [{"id": "fls_l3epi1dqpi8o", "number": "20.2.3:1", "link": "macros.html#fls_l3epi1dqpi8o", "checksum": "a507e2ee0a755f9e9bef9483a14b746466426c98185a2634629bff10acf93070"}, {"id": "fls_3sublbi9bz7k", "number": "20.2.3:2", "link": "macros.html#fls_3sublbi9bz7k", "checksum": "ad536eef612c80a23662ccb5976e09fc7a7cd564b3099362de958cb078de4636"}, {"id": "fls_eb8jxl70wmeh", "number": "20.2.3:3", "link": "macros.html#fls_eb8jxl70wmeh", "checksum": "0e6bc1537645755a80173fb2e360056fe473f07b84fa83e420a2119802b5688e"}, {"id": "fls_7ugtmobgb2t9", "number": "20.2.3:4", "link": "macros.html#fls_7ugtmobgb2t9", "checksum": "65f907abc0b4741ed3d04dfb54bf57f7733475bd00f7eb52a681cf2df6dd26cf"}, {"id": "fls_y700oif45wum", "number": "20.2.3:5", "link": "macros.html#fls_y700oif45wum", "checksum": "ef5cb13d4e805e4e81816f26647b316792ceb249829578bfaa57070acb415879"}, {"id": "fls_hhsf1a9p6o55", "number": "20.2.3:6", "link": "macros.html#fls_hhsf1a9p6o55", "checksum": "a67726cd1b3c0fa718910126228b74a584cd8d14685cff5a51c66aecafa25a2e"}, {"id": "fls_4g932k8ueyqp", "number": "20.2.3:7", "link": "macros.html#fls_4g932k8ueyqp", "checksum": "85bf012ed3c7f1fe9e724f38a2d891b1697ec17ecde0a3277e037fe496069d6a"}, {"id": "fls_f5qy1pnlbpng", "number": "20.2.3:8", "link": "macros.html#fls_f5qy1pnlbpng", "checksum": "301c590c9b06bc5965288c7611ce54546237f2ab270ad8d08ada06606d3129bf"}, {"id": "fls_rzn48xylk4yj", "number": "20.2.3:9", "link": "macros.html#fls_rzn48xylk4yj", "checksum": "db387e1df17fe1b34f0785313cbd032471da2d489046fbbd57783da324ddd87b"}, {"id": "fls_78400zh02sdq", "number": "20.2.3:10", "link": "macros.html#fls_78400zh02sdq", "checksum": "ae2d00ba71cdeeebcbc5ba13db842b607d9367375f608225d84eeb55ce0afb90"}, {"id": "fls_eyesmvuwpjn1", "number": "20.2.3:11", "link": "macros.html#fls_eyesmvuwpjn1", "checksum": "130f778e0740bb2eac48f0b045d7c7d7854a7f114684fd426c548a5289d530b9"}, {"id": "fls_fku5beu3mr4c", "number": "20.2.3:12", "link": "macros.html#fls_fku5beu3mr4c", "checksum": "a9469713d62e5ab294be5b5463896a680482fe532ef2db60c9a17dd040147917"}, {"id": "fls_knjsslplv5ri", "number": "20.2.3:13", "link": "macros.html#fls_knjsslplv5ri", "checksum": "1f2493e72099adeeabdbdb5af0e9a9021fe478c82c788215781e06312b59c4e4"}], "informational": false}, {"id": "fls_vnvt40pa48n8", "number": "20.3", "title": "Macro Invocation", "link": "macros.html#macro-invocation", "paragraphs": [{"id": "fls_wushtmw9qt3y", "number": "20.3:1", "link": "macros.html#fls_wushtmw9qt3y", "checksum": "2d88086f369da9c00a710d6478ff80775749dcb789b8f28b671fa96d22b5c01e"}, {"id": "fls_snpxxcqhtjfv", "number": "20.3:2", "link": "macros.html#fls_snpxxcqhtjfv", "checksum": "974d06554ff28647c4f903fa86768f1e175bc518e3c538c7d26f09ca32580f3a"}, {"id": "fls_6v06zvi1ctub", "number": "20.3:3", "link": "macros.html#fls_6v06zvi1ctub", "checksum": "9331eac9772bb3030cfa592afd0542c15f135b1445df9e764e483111e6e799e5"}, {"id": "fls_338rmbazl67o", "number": "20.3:4", "link": "macros.html#fls_338rmbazl67o", "checksum": "180d58067482f5f9c52f37cffaf0d523e0d0e035274ae448c35b6fda359340f1"}, {"id": "fls_lrr7gg8tian", "number": "20.3:5", "link": "macros.html#fls_lrr7gg8tian", "checksum": "f7aca0e43d4cdbae814c988be6387b18698d49063b82af0d472ad957e99f0b16"}, {"id": "fls_8qxwwf4trnl", "number": "20.3:6", "link": "macros.html#fls_8qxwwf4trnl", "checksum": "d1d17973e9a5ff51967bbb1a18254d34daf4d5227c030010273eb809898065d9"}, {"id": "fls_8z1sgtvchhhw", "number": "20.3:7", "link": "macros.html#fls_8z1sgtvchhhw", "checksum": "f0c4063fc1e37447cdedd5fea1862370d0c86e3a81159fe2abded13af32e03e3"}, {"id": "fls_d9w3dn2yn7mo", "number": "20.3:8", "link": "macros.html#fls_d9w3dn2yn7mo", "checksum": "00301fc63c37839058ebeb42729a0bfcaa17ba716e9b05a4b07854bda2b315de"}, {"id": "fls_1tftbd91yfpd", "number": "20.3:9", "link": "macros.html#fls_1tftbd91yfpd", "checksum": "f9383478e84fd632a980198c467de216499b1b303f98a98b7bf135b8d1439489"}], "informational": false}, {"id": "fls_wjldgtio5o75", "number": "20.4", "title": "Macro Expansion", "link": "macros.html#macro-expansion", "paragraphs": [{"id": "fls_xscdaxvs4wx4", "number": "20.4:1", "link": "macros.html#fls_xscdaxvs4wx4", "checksum": "8026222297277fbad4ed1549d49f0c3e75d7e5157adbb94d90360ceb716f2a3d"}, {"id": "fls_nz5stwcc41gk", "number": "20.4:2", "link": "macros.html#fls_nz5stwcc41gk", "checksum": "81bdfdb7218e324273181015cf2a0058601e53a6f07875e9c55f6b9ccd110600"}, {"id": "fls_40xq8ri1omzz", "number": "20.4:3", "link": "macros.html#fls_40xq8ri1omzz", "checksum": "bf49814afca1afc4a1ea61da7acaf9bb0ac3da4e8a3d40a8a0ad770017aaf4e2"}, {"id": "fls_76prdp6k1fga", "number": "20.4:4", "link": "macros.html#fls_76prdp6k1fga", "checksum": "f2e3b68bee58b99bd43a9238014702fed0da098493aea6cd5ee8c35d689b2cfb"}, {"id": "fls_76u274l4kew8", "number": "20.4:5", "link": "macros.html#fls_76u274l4kew8", "checksum": "74b6ccc123fd68357e50a1ba7a24fcfb694a68271bd2c7156e558945c62bb744"}, {"id": "fls_lakpily1zwfl", "number": "20.4:6", "link": "macros.html#fls_lakpily1zwfl", "checksum": "41396541fe1131f8e3a05e47eb4dc795aca82ca7744db28c5808acbbcec8c548"}, {"id": "fls_y20pmwo3v3uu", "number": "20.4:7", "link": "macros.html#fls_y20pmwo3v3uu", "checksum": "145096281559894c5fdd9c34f4c59020e8018a542a295c4718a2158eb1c24db6"}, {"id": "fls_nsh2vwx8oiw", "number": "20.4:8", "link": "macros.html#fls_nsh2vwx8oiw", "checksum": "73e7c3d42509b26c6836a37c592ce6b5f8b4b8d51bdd13b1e69c781dbdb074ac"}, {"id": "fls_tu6kmwm4v9nj", "number": "20.4:9", "link": "macros.html#fls_tu6kmwm4v9nj", "checksum": "bab993a513c3b50842e8f5f1326263dc800e7186ea89baca43936ad3bdf15c79"}, {"id": "fls_3zn4dz19nyvq", "number": "20.4:10", "link": "macros.html#fls_3zn4dz19nyvq", "checksum": "3b01afcc0d4c9f2696ea110f2556ea0c37503ac92544dd77a5853e2bc4cc735c"}, {"id": "fls_t89sw6az99z7", "number": "20.4:11", "link": "macros.html#fls_t89sw6az99z7", "checksum": "39601be41eaf38c2fe68a562e68628c4c897e8c99f95ec75e583dbefab3af157"}, {"id": "fls_417hvhvj2554", "number": "20.4:12", "link": "macros.html#fls_417hvhvj2554", "checksum": "48dbce0bae72db846dd146bad2ff656a10cf5dd99c403720ad8a65ff71bf965e"}, {"id": "fls_nnrs4ec3ff5t", "number": "20.4:13", "link": "macros.html#fls_nnrs4ec3ff5t", "checksum": "10c68086f5de7156157c189ebd2864036d21287d9219fdce6f5e9df7658f3e2a"}, {"id": "fls_srtqkdceaz5t", "number": "20.4:14", "link": "macros.html#fls_srtqkdceaz5t", "checksum": "303da91f4606ee986ceddcb3a6dd2990ea1a5d6f4d8ff9eba1411b05f9cfa29c"}, {"id": "fls_mi92etjtpamu", "number": "20.4:15", "link": "macros.html#fls_mi92etjtpamu", "checksum": "57347ca4d51ad58880a851280bfb8d8e529e1b9951a52ca4929e47b94f19be4e"}, {"id": "fls_n8beqlt54rhy", "number": "20.4:16", "link": "macros.html#fls_n8beqlt54rhy", "checksum": "9a60784d14b99e43a10674a97c9f853c1fda603311694eaa435886353f7102ab"}, {"id": "fls_vd3dzvr6re19", "number": "20.4:17", "link": "macros.html#fls_vd3dzvr6re19", "checksum": "04d7c36c59b8db5f9cd9d437097d1287b1462b3d1a28b1af866979139758cf22"}, {"id": "fls_l8j2jiuuao4f", "number": "20.4:18", "link": "macros.html#fls_l8j2jiuuao4f", "checksum": "8738a7304a24b50b3140d449d1bfca2c9baf6da9f0d078a51401795554fd4474"}, {"id": "fls_xvemyqj5gc6g", "number": "20.4:19", "link": "macros.html#fls_xvemyqj5gc6g", "checksum": "d26201e9ec1b8ce4e8d0ce918281c597b4207dd5c717ab9d2f690dc2d3fa69f6"}, {"id": "fls_stseor6tln22", "number": "20.4:20", "link": "macros.html#fls_stseor6tln22", "checksum": "9cd6b3fdd12de5819ef5f034cd512142d9ea7275dd351bb3364534aede42230d"}, {"id": "fls_u11o90szy68s", "number": "20.4:21", "link": "macros.html#fls_u11o90szy68s", "checksum": "785c20cd4ee512f170f8821ae84ac3e0164356afb744c5eb7766d1b428f43f95"}, {"id": "fls_qi5kyvj1e8th", "number": "20.4:22", "link": "macros.html#fls_qi5kyvj1e8th", "checksum": "42ff8c1ac6cc0dad7129ac746debad5fa96d773994a30fdf5b71496e0fe894be"}, {"id": "fls_vqizael4eku5", "number": "20.4:23", "link": "macros.html#fls_vqizael4eku5", "checksum": "75411eced63ec88091cc61ad48545c56af50d13cdfbb58da468cfcd471b1d753"}, {"id": "fls_grtiwf7q8jah", "number": "20.4:24", "link": "macros.html#fls_grtiwf7q8jah", "checksum": "8336e9a3dc539d94ebc4c3f4d1db0a002daac4a11ed04f66f0c8944f7c59dadc"}, {"id": "fls_tbe2qq7whq10", "number": "20.4:25", "link": "macros.html#fls_tbe2qq7whq10", "checksum": "862660c9a7927486f4ab97a5219efca956468b25a372e7f0b8778d938fea614f"}, {"id": "fls_my93neopj9x0", "number": "20.4:26", "link": "macros.html#fls_my93neopj9x0", "checksum": "56c2e17cefa41716653ddebd7376d5e765866b6b48613007cbd6fa266ec588a1"}, {"id": "fls_zat7kwi5vc5c", "number": "20.4:27", "link": "macros.html#fls_zat7kwi5vc5c", "checksum": "6f0481d9039a52034b6e9c95142a26b01f4af587546d9d2ca76ccdcdce2cf14c"}, {"id": "fls_tjn92evtlflq", "number": "20.4:28", "link": "macros.html#fls_tjn92evtlflq", "checksum": "4ed573b9e2ba6991e0c8cd77151c8f7fb439090236dff6dcba9b8dd9d06d2604"}, {"id": "fls_ajmprhhfzo6j", "number": "20.4:29", "link": "macros.html#fls_ajmprhhfzo6j", "checksum": "9e9dd4998f98b6a17410d0f5050a5640b8a7d12b16d5ccc1fbf5ddfc4fa2c910"}, {"id": "fls_mpgh22bi8caz", "number": "20.4:30", "link": "macros.html#fls_mpgh22bi8caz", "checksum": "d54d6148b8f96f7ae615b20d921e9536dec2d40191387304db5912c07457039c"}, {"id": "fls_ul7nhfyvyzh", "number": "20.4:31", "link": "macros.html#fls_ul7nhfyvyzh", "checksum": "ecc18764aaf923e05323ff7d8dbc3196f9c2a677d000895c4350a34de447d370"}, {"id": "fls_z6xfhf71w10a", "number": "20.4:32", "link": "macros.html#fls_z6xfhf71w10a", "checksum": "61b9b13308b8c7583de5aab70fe1644dee9867664a812351e4a713132df8f246"}], "informational": false}, {"id": "fls_4apk1exafxii", "number": "20.4.1", "title": "Macro Matching", "link": "macros.html#macro-matching", "paragraphs": [{"id": "fls_zmqz8hqwv77l", "number": "20.4.1:1", "link": "macros.html#fls_zmqz8hqwv77l", "checksum": "6b8396da1325228a967d0d28720f37811bfec9f46d17c5b5d20ab8838236c8d1"}], "informational": false}, {"id": "fls_n3ktmjqf87qb", "number": "20.4.1.1", "title": "Rule Matching", "link": "macros.html#rule-matching", "paragraphs": [{"id": "fls_77ucvwu6idms", "number": "20.4.1.1:1", "link": "macros.html#fls_77ucvwu6idms", "checksum": "86e93126d0e6c567afa83d3532a9dda63596c2a3a1b8fa60469481ff4891e786"}, {"id": "fls_6h1jqhxzku5v", "number": "20.4.1.1:2", "link": "macros.html#fls_6h1jqhxzku5v", "checksum": "4c41fb4fb8823d556cfb539659a3c4703c73a1c321684dd511b7f178f2ee5439"}, {"id": "fls_r6i1ykrhb49j", "number": "20.4.1.1:3", "link": "macros.html#fls_r6i1ykrhb49j", "checksum": "6ff3d3159841229f8392ab25c21c4749d84f44f9448851671427adf3fa2c97f8"}, {"id": "fls_3qzes4lr8yuv", "number": "20.4.1.1:4", "link": "macros.html#fls_3qzes4lr8yuv", "checksum": "d6cdc5aaa72a1fe038b82e1c7963c4446c2bc7668ed2fae5540f1dd6416a865f"}, {"id": "fls_r878ysvsy4jb", "number": "20.4.1.1:5", "link": "macros.html#fls_r878ysvsy4jb", "checksum": "b69c21d1eb5931b6f4848c2e230a9199999a3b94ade1ff93a4c66ba685343958"}], "informational": false}, {"id": "fls_qpx6lgapce57", "number": "20.4.1.2", "title": "Token Matching", "link": "macros.html#token-matching", "paragraphs": [{"id": "fls_k6a24sbon5v9", "number": "20.4.1.2:1", "link": "macros.html#fls_k6a24sbon5v9", "checksum": "939454db28503818aeec06820dacf2ab2a82bb11e9ebd50d2b097213c7223ae4"}, {"id": "fls_6uuxv91xgmfz", "number": "20.4.1.2:2", "link": "macros.html#fls_6uuxv91xgmfz", "checksum": "69d0900d72789c738bb16a2cd4d7cd0938784373e5835a4c87c5655968e72f06"}, {"id": "fls_g1rml9tavh8v", "number": "20.4.1.2:3", "link": "macros.html#fls_g1rml9tavh8v", "checksum": "9676823aa002fa0b34ed9ceb6cdf528e036dd054cc9680fd769fbfbabbdf2f33"}, {"id": "fls_h7x3tc208zpk", "number": "20.4.1.2:4", "link": "macros.html#fls_h7x3tc208zpk", "checksum": "485dc2a03abcfc575a18d12f44392c25e70e3d6c8c7defe90be8b259721e9cf2"}, {"id": "fls_p9eqa17d3dx", "number": "20.4.1.2:5", "link": "macros.html#fls_p9eqa17d3dx", "checksum": "4e3b1a4397f68e72da8d33b18764d344b2cdc18f83b97ddefee8dbdef401dc87"}, {"id": "fls_k00bck2k8tde", "number": "20.4.1.2:6", "link": "macros.html#fls_k00bck2k8tde", "checksum": "8bad01afe18f0792f1545d920186e04ba62d8ee647e2fa200dc707f23996d326"}, {"id": "fls_pf0qrz5nadl2", "number": "20.4.1.2:7", "link": "macros.html#fls_pf0qrz5nadl2", "checksum": "9beee8340868a57b1052f0fc0b375a60221fffc91fe52f2b2a049ecea579e62e"}, {"id": "fls_9fioah171ojx", "number": "20.4.1.2:8", "link": "macros.html#fls_9fioah171ojx", "checksum": "944fc29dfd11666e10802285b2515966d675e8dd3dba1e06c0e50e2db56199cf"}, {"id": "fls_j2o0f52zyvyb", "number": "20.4.1.2:9", "link": "macros.html#fls_j2o0f52zyvyb", "checksum": "3a4366c2f44243bd2284234dca5b270e4dc4a86d1f32a617a269adb290fb8985"}, {"id": "fls_w5dzv3z4zd5a", "number": "20.4.1.2:10", "link": "macros.html#fls_w5dzv3z4zd5a", "checksum": "e4f9ae7e642ed779024a8e69cea6afc9bd400fd2105ce496a574bcc9be0bf3d7"}, {"id": "fls_wtol98rrqka5", "number": "20.4.1.2:11", "link": "macros.html#fls_wtol98rrqka5", "checksum": "a6923eaff6739eb4d6492f970c783cfdabc71c275843e5ef6405fff5af5b0432"}, {"id": "fls_iorqt9q4ie9j", "number": "20.4.1.2:12", "link": "macros.html#fls_iorqt9q4ie9j", "checksum": "80a04645ad370bbb071324afb5d55d19b18f915e9fadfab568496d6a3a18fa5f"}, {"id": "fls_2zjed913qpvi", "number": "20.4.1.2:13", "link": "macros.html#fls_2zjed913qpvi", "checksum": "b45c38305f3c3ffa6bf27034b89cc6b8baac7a4e72914a0cfdf7eeee7da69266"}, {"id": "fls_3zdts0fsa36u", "number": "20.4.1.2:14", "link": "macros.html#fls_3zdts0fsa36u", "checksum": "d58dc97395dae9ccb1d8fe2a21911f6287c2676be72fea50a94301b4b85614fb"}, {"id": "fls_mb3yr1j7npv5", "number": "20.4.1.2:15", "link": "macros.html#fls_mb3yr1j7npv5", "checksum": "0f22177e56930189a013cc165f27159e88950b6309aec5aa8f36dad4fc00070b"}, {"id": "fls_xbuixjt9pum6", "number": "20.4.1.2:16", "link": "macros.html#fls_xbuixjt9pum6", "checksum": "8b44cfe64ffb38c055354fd03755c38a67d369899996d279000749b6938b4130"}, {"id": "fls_6annifhk6cd8", "number": "20.4.1.2:17", "link": "macros.html#fls_6annifhk6cd8", "checksum": "2868c75bd1038a056153d19675c38e727498801f62dcf998f97e79d1feb762aa"}, {"id": "fls_2zu22efr6ncy", "number": "20.4.1.2:18", "link": "macros.html#fls_2zu22efr6ncy", "checksum": "8a369cdda5e38c9d0c9235244570dc6350c8f7513c2a5dc0ce5b97503f92b7ef"}, {"id": "fls_dqroklsaayzb", "number": "20.4.1.2:19", "link": "macros.html#fls_dqroklsaayzb", "checksum": "235bfe3d83907a5ee61a001a2b2acac3b0e021e603831aed451c1cc984b6a784"}, {"id": "fls_ghqjk6xj85ng", "number": "20.4.1.2:20", "link": "macros.html#fls_ghqjk6xj85ng", "checksum": "273716f2c264d37ea340ce796a784d1e2b3cb3a16578a954da0dcab1900b6ca9"}, {"id": "fls_lzwl4en5wcw0", "number": "20.4.1.2:21", "link": "macros.html#fls_lzwl4en5wcw0", "checksum": "1ff9a6a6d1f6eb7b4c668c7940b8c2e1490c37f93b536e4b0f4468a49095216f"}, {"id": "fls_cz44evkjzv29", "number": "20.4.1.2:22", "link": "macros.html#fls_cz44evkjzv29", "checksum": "622a0124d322fc811ce341d23c250c1d22df2be7065199c523a053e04f93655b"}, {"id": "fls_o2exsai4m0gy", "number": "20.4.1.2:23", "link": "macros.html#fls_o2exsai4m0gy", "checksum": "61ca7e8337e433a1f27f8ca82eda551971c4361a34cf11fb7c23f53368ee2593"}, {"id": "fls_1ch299zp8h7", "number": "20.4.1.2:24", "link": "macros.html#fls_1ch299zp8h7", "checksum": "2b361f50a42eadd00c2c0ca748063e0d34342f34e39bae540bb8802a83f14882"}, {"id": "fls_55ptfjlvoo8o", "number": "20.4.1.2:25", "link": "macros.html#fls_55ptfjlvoo8o", "checksum": "225d33e4ff2e8e37f77d0d4ba4811088ee088d027a6ae4a1a4882ca9b039fa98"}, {"id": "fls_finzfb5ljkf8", "number": "20.4.1.2:26", "link": "macros.html#fls_finzfb5ljkf8", "checksum": "17b373ea759d5c509466cee1cd0f9941a470f136a1109fb7f745dd87e096bcf9"}, {"id": "fls_s1ccs6jocsgr", "number": "20.4.1.2:27", "link": "macros.html#fls_s1ccs6jocsgr", "checksum": "34a0742ef58a8b7fe215596c5252975ec70b4b86687272048bf5ccbee1c21eda"}, {"id": "fls_wpi2i6hoj3li", "number": "20.4.1.2:28", "link": "macros.html#fls_wpi2i6hoj3li", "checksum": "408711d561d0aa646b34d91388c4abb3e0e292eecb966dc171c8368efaca46c5"}, {"id": "fls_uuey421a8n96", "number": "20.4.1.2:29", "link": "macros.html#fls_uuey421a8n96", "checksum": "c8977ccaa62d4c406898dba6432a60322e5b401d6bd0f7cda07b4b0979bb29f6"}, {"id": "fls_b5u47tuu136r", "number": "20.4.1.2:30", "link": "macros.html#fls_b5u47tuu136r", "checksum": "4538f5121ec15ee6fbd7d3cb0bb690cc955c3d8655feceab5333045461750c15"}, {"id": "fls_rb1tu4e7dpma", "number": "20.4.1.2:31", "link": "macros.html#fls_rb1tu4e7dpma", "checksum": "38cb0f7a2daa5611bc22dac0b50c555f9d3ffb1127900a2f86ba5a79ff08498a"}, {"id": "fls_c76sdvos5xeo", "number": "20.4.1.2:32", "link": "macros.html#fls_c76sdvos5xeo", "checksum": "3f33b5ba4b848845ef3c885d9b0b6d3309d5d903bf48ba507cc368dc25cad1ce"}], "informational": false}, {"id": "fls_ym00b6ewf4n3", "number": "20.4.2", "title": "Macro Transcription", "link": "macros.html#macro-transcription", "paragraphs": [{"id": "fls_y21i8062mft0", "number": "20.4.2:1", "link": "macros.html#fls_y21i8062mft0", "checksum": "0625ef0bcc1537bbd7e48bbb52e650fac001e4ce41c99c213d6d9c46b45e74e0"}, {"id": "fls_n2dx4ug5nd5w", "number": "20.4.2:2", "link": "macros.html#fls_n2dx4ug5nd5w", "checksum": "3a923fd62e7cb8e223448548b2aa38404e63cc3e8b41254c70fa1d13076ad338"}, {"id": "fls_iw7322ycvhkc", "number": "20.4.2:3", "link": "macros.html#fls_iw7322ycvhkc", "checksum": "3a3dab26920d694cfc94f0c1b2f51523cd3b42dbae5b61643d7c56834c7220cf"}, {"id": "fls_jgitbqmyixem", "number": "20.4.2:4", "link": "macros.html#fls_jgitbqmyixem", "checksum": "0138c8400ce4f71c65b6aa2722efe3060cbd1d41df1c72e0d5f3b34a20f300b5"}, {"id": "fls_ihcwl6taptas", "number": "20.4.2:5", "link": "macros.html#fls_ihcwl6taptas", "checksum": "5c84ed6a518944136878abb4c88f566d332adfa28adc88939272040b8b6376d9"}, {"id": "fls_g3dtpw4rtgdr", "number": "20.4.2:6", "link": "macros.html#fls_g3dtpw4rtgdr", "checksum": "ccd3909779e2ae52e078ac9ec0171a31569a1a5f27a764f1116aa514d4ab1e76"}, {"id": "fls_pvp6dxykuv66", "number": "20.4.2:7", "link": "macros.html#fls_pvp6dxykuv66", "checksum": "cfa58e13c7d71f34271957f476e066a784af6a8ed0072bb215252e5c076b03c3"}, {"id": "fls_bd673n5awwbz", "number": "20.4.2:8", "link": "macros.html#fls_bd673n5awwbz", "checksum": "c46a8e07cda751526560f7fc97ae3c1b78414ebc17c1ce3cd210620619ebbf25"}, {"id": "fls_zbtwrtcy7pzf", "number": "20.4.2:9", "link": "macros.html#fls_zbtwrtcy7pzf", "checksum": "89ea10945ee36c0a8d05b165f2dab20d4778edf60bc0f8b3696a46d9199743b8"}, {"id": "fls_eacyb6jap9ru", "number": "20.4.2:10", "link": "macros.html#fls_eacyb6jap9ru", "checksum": "928fa72878c7bba4b1bce0f51d05314cb2480974eb15a3baa42edf4802016c4b"}, {"id": "fls_y4podc7ee8lf", "number": "20.4.2:11", "link": "macros.html#fls_y4podc7ee8lf", "checksum": "923b9e5ad7c41a86ba16ba5fc020547055484598d353ee7d4600ac28f7464960"}, {"id": "fls_wbys0m4a1omg", "number": "20.4.2:12", "link": "macros.html#fls_wbys0m4a1omg", "checksum": "b20e0ffba294f223744cb483c484961c3e57930764952f5beab1e3448b7f8cde"}, {"id": "fls_g445ovedgo4q", "number": "20.4.2:13", "link": "macros.html#fls_g445ovedgo4q", "checksum": "ffbe98be6393f55c5b73a7849f41caadf322b1ac4e018fa42c59e7305db89820"}, {"id": "fls_ctzthi6keit2", "number": "20.4.2:14", "link": "macros.html#fls_ctzthi6keit2", "checksum": "4f0f8d199b56a8e97493384b9448af0cf2c03e0ee0924725a9973869747db80f"}, {"id": "fls_9n46ugmcqmix", "number": "20.4.2:15", "link": "macros.html#fls_9n46ugmcqmix", "checksum": "924ac328fa7b1c896d1efd435201562db8738164a53715c1956c4c2da5a4012c"}, {"id": "fls_jinrpa0pmzcr", "number": "20.4.2:16", "link": "macros.html#fls_jinrpa0pmzcr", "checksum": "7c1fe9eccd483e7a420e8b7c1d1c1164588a91adea0ff813953d9cf07171ea38"}, {"id": "fls_95rn4cvgznmd", "number": "20.4.2:17", "link": "macros.html#fls_95rn4cvgznmd", "checksum": "7b97106af69b3585b467ae757b209987fcfa719d9d0056adfca9fbc914a2d73b"}, {"id": "fls_yg4c9x7049y4", "number": "20.4.2:18", "link": "macros.html#fls_yg4c9x7049y4", "checksum": "a990d3628235419098482e04aad2d699f6205b88761be1c1cea45b6dad882cd1"}, {"id": "fls_o9rwz9z0a2h4", "number": "20.4.2:19", "link": "macros.html#fls_o9rwz9z0a2h4", "checksum": "30c1a84b2185098caed8510493324650b62ebcbc98651ffdef52e7656b859109"}], "informational": false}, {"id": "fls_xlfo7di0gsqz", "number": "20.5", "title": "Hygiene", "link": "macros.html#hygiene", "paragraphs": [{"id": "fls_7ezc7ncs678f", "number": "20.5:1", "link": "macros.html#fls_7ezc7ncs678f", "checksum": "dd8bbb6eef9dde4a235a404d36082ffd706c870db1421a4681408cf45d6a6bcc"}, {"id": "fls_3axjf28xb1nt", "number": "20.5:2", "link": "macros.html#fls_3axjf28xb1nt", "checksum": "950f5e9f05dfb90a7771b7b56a2c154f09546fdb6ee7b4947d3598357e680977"}, {"id": "fls_dz2mvodl818d", "number": "20.5:3", "link": "macros.html#fls_dz2mvodl818d", "checksum": "341839374d80c8018873df9d4ddc4bc416d5bc2dac1e9b09bc7a56b94374252a"}, {"id": "fls_puqhytfzfsg6", "number": "20.5:4", "link": "macros.html#fls_puqhytfzfsg6", "checksum": "e4746196f1fb7989f818766502b19a237f5b3740241baf2dfd8cb4211c05f424"}, {"id": "fls_uyvnq88y9gk3", "number": "20.5:5", "link": "macros.html#fls_uyvnq88y9gk3", "checksum": "93e969fde4270a39d3cee8c4a0b19185228c33e8b24df9d0ef270765e9824d81"}, {"id": "fls_yxqcr19dig18", "number": "20.5:6", "link": "macros.html#fls_yxqcr19dig18", "checksum": "20c309825d7777388bd6af5804c0c7762b4fe76a90f7d2eb118d92ba8f547c1c"}, {"id": "fls_kx25olky1jov", "number": "20.5:7", "link": "macros.html#fls_kx25olky1jov", "checksum": "64745f1bbadaf610e425de55287699402147860a4554484ba0071db41bc7ed34"}, {"id": "fls_v46v0t2vh6x4", "number": "20.5:8", "link": "macros.html#fls_v46v0t2vh6x4", "checksum": "143bbe1668afc34dcafc68eddd7634b71e3847e8f9416dc8dedcee0d2d5198f5"}, {"id": "fls_7eqqk2cj0clr", "number": "20.5:9", "link": "macros.html#fls_7eqqk2cj0clr", "checksum": "82fe4be1744d0478a0bcbed88a26bf676ea9c239bd2e996210ce59ad724a104b"}], "informational": false}], "informational": false}, {"title": "Licenses", "link": "licenses.html", "sections": [{"id": "fls_kd7fcvfrwks0", "number": "A", "title": "Licenses", "link": "licenses.html", "paragraphs": [], "informational": false}, {"id": "fls_mwoe9jy6l7er", "number": "A.1", "title": "Ada Reference Manual Copyright Notice", "link": "licenses.html#ada-reference-manual-copyright-notice", "paragraphs": [{"id": "fls_9rpvtm5tjrpp", "number": "A.1:1", "link": "licenses.html#fls_9rpvtm5tjrpp", "checksum": "6af57950721e83dae393e90ca8d980bdcca5c9b81a188fe360ec5adfda00b6d5"}, {"id": "fls_7uhb9t9x8r0c", "number": "A.1:2", "link": "licenses.html#fls_7uhb9t9x8r0c", "checksum": "ef760ed2bc838098d7e8efb78966c4cd75d281f71907582b05283c54343ba0ce"}, {"id": "fls_ej4g7lz5eqm8", "number": "A.1:3", "link": "licenses.html#fls_ej4g7lz5eqm8", "checksum": "a5f9956bcdfc5ce615410d2af601a90ce92f066360a5467a27d39718da318796"}, {"id": "fls_l9uu4q48v1co", "number": "A.1:4", "link": "licenses.html#fls_l9uu4q48v1co", "checksum": "20b03a1ea2320f89250e61fc875c4f01597a27856b189891293511d1c3c55df5"}, {"id": "fls_3j7jx4qsqucs", "number": "A.1:5", "link": "licenses.html#fls_3j7jx4qsqucs", "checksum": "38194322b850acd0ebe5ec95d660959c07d88f87ef2fe6c7912a773201dc4836"}], "informational": false}, {"id": "fls_w6b35kn6la40", "number": "A.2", "title": "Rust Reference Apache License", "link": "licenses.html#rust-reference-apache-license", "paragraphs": [{"id": "fls_wn4kcs3skqra", "number": "A.2:1", "link": "licenses.html#fls_wn4kcs3skqra", "checksum": "7659351efeafb9bcab1f7bded9384347863a49e48384d8b8f59f4aadc9c047d5"}, {"id": "fls_mtcsb64efiw1", "number": "A.2:2", "link": "licenses.html#fls_mtcsb64efiw1", "checksum": "6b9064c87e131c2318a938f837e161eb0c65d3f5fb3d76f34c6a07ac89c08f73"}, {"id": "fls_9tssu3wp22cz", "number": "A.2:3", "link": "licenses.html#fls_9tssu3wp22cz", "checksum": "511b49aedd83a0711011cf0a3d3ffbc8faa1c1443f13b71376c4ce8d0b1c6f6d"}, {"id": "fls_4pclfuqukw5o", "number": "A.2:4", "link": "licenses.html#fls_4pclfuqukw5o", "checksum": "a423d8767937df97db94bc21dea4f19e65f5d2a464521f2deca8482ccd4eb2e1"}, {"id": "fls_rgn86bsd9tl5", "number": "A.2:5", "link": "licenses.html#fls_rgn86bsd9tl5", "checksum": "bcc06c2a274e4878336dd5b4c71758d3b854dcf325e9f4ca54c1c6501dccbcee"}, {"id": "fls_n6ash4u0e838", "number": "A.2:6", "link": "licenses.html#fls_n6ash4u0e838", "checksum": "0c8baad676d0cb1c29fe117e5864ef351160f102c13d047d354e16c2145fc69a"}, {"id": "fls_4z50m2plw8lg", "number": "A.2:7", "link": "licenses.html#fls_4z50m2plw8lg", "checksum": "619babacc89fcc3a48bee87f41d8567998cf7926a806e7bcb31bef0bc1bf70fd"}, {"id": "fls_bmx87il86j77", "number": "A.2:8", "link": "licenses.html#fls_bmx87il86j77", "checksum": "d902ee93c8c40420453bff915be7d882e3390fbfb7c3d38905a094dde4369625"}, {"id": "fls_467b9ucekcv3", "number": "A.2:9", "link": "licenses.html#fls_467b9ucekcv3", "checksum": "a5fd12a0acbcca3ac4cfca07cb3a66976c749dcabc7c73c69ed9abfad2067282"}, {"id": "fls_9ws2rqie234r", "number": "A.2:10", "link": "licenses.html#fls_9ws2rqie234r", "checksum": "aa73e595c7b2ef9149acd45a1b91fed2704f511303a5b2ae619eb01a1ffb9410"}, {"id": "fls_j075fx75s7wg", "number": "A.2:11", "link": "licenses.html#fls_j075fx75s7wg", "checksum": "c9b7d6603bdf686dc20a9604928e83ad51a6e432ce273673e0619de6904ad3a9"}, {"id": "fls_akjks1czkd7n", "number": "A.2:12", "link": "licenses.html#fls_akjks1czkd7n", "checksum": "67a79516239a86e9f3ac268c33cea7354013e2efe8dae4acf776dbee55bdf3cb"}, {"id": "fls_6n4t2e7lxq3", "number": "A.2:13", "link": "licenses.html#fls_6n4t2e7lxq3", "checksum": "03e71fa54f500a9dba9a17354fc29921b6a6421fbdde23db702448cfe7f3d731"}, {"id": "fls_g0gyduo0wc55", "number": "A.2:14", "link": "licenses.html#fls_g0gyduo0wc55", "checksum": "d890372e8c497682bf9b4b51d8b75a7211ca6e6b4ee30436e8c59dbbb0149bf3"}, {"id": "fls_w8npkgeox7u5", "number": "A.2:15", "link": "licenses.html#fls_w8npkgeox7u5", "checksum": "85d7c24f5cba0d54181181872cf27f0cad45c28f1d281733ef26114ef08e1bea"}, {"id": "fls_iygftblnws72", "number": "A.2:16", "link": "licenses.html#fls_iygftblnws72", "checksum": "f0a11688e77729f1b2fa1e4efbc104a39c8fd916d1f58f90eefccd38b209c0d6"}, {"id": "fls_s32i8ovj5nqu", "number": "A.2:17", "link": "licenses.html#fls_s32i8ovj5nqu", "checksum": "4a50d529d3ee650e897db5b0f8d99db215c718a75f11d527d5c560abc287de09"}, {"id": "fls_c673i0mbecb9", "number": "A.2:18", "link": "licenses.html#fls_c673i0mbecb9", "checksum": "74231e6684fc04c3f1ed8c36da5619eb35f84411c9f9fbbc9354ff69182ec20e"}, {"id": "fls_pwpt8rg76oj3", "number": "A.2:19", "link": "licenses.html#fls_pwpt8rg76oj3", "checksum": "b5a621567e61cacbad30b9320aa5fa59abe37e46a15e890c42ad445536c69bd0"}, {"id": "fls_yu3hgzo57bvm", "number": "A.2:20", "link": "licenses.html#fls_yu3hgzo57bvm", "checksum": "aa50ce2c3adbcfcae86514a554462ac599522a77d99072af00fd41aee7896afc"}, {"id": "fls_37aibo9w67e8", "number": "A.2:21", "link": "licenses.html#fls_37aibo9w67e8", "checksum": "ee98c5a9da1ccf20da27dc04bdfd4c6b0ee7b4dd5180bb435515d300e6aa7c1f"}, {"id": "fls_py9om9jvbulw", "number": "A.2:22", "link": "licenses.html#fls_py9om9jvbulw", "checksum": "870cf6f77ad5d8ef0cfde85af78b7c2a507c6e6c8db5bbe62b60548c02229cfc"}, {"id": "fls_wkf26wyy0ndr", "number": "A.2:23", "link": "licenses.html#fls_wkf26wyy0ndr", "checksum": "e4c5f14a1bc396e634f99d3e9c008a29af8f84b61dc6da057710d23ebb6a1855"}, {"id": "fls_qsvzdiicam4f", "number": "A.2:24", "link": "licenses.html#fls_qsvzdiicam4f", "checksum": "d3162aaf802254c584ffd111d733498e754b056c61bdb59144aed5024b8bc566"}, {"id": "fls_n4zpph83hza1", "number": "A.2:25", "link": "licenses.html#fls_n4zpph83hza1", "checksum": "c502f762cf1f733336f2b49fdabec625a400d1b9137ba436de9acfb180ea3681"}, {"id": "fls_6gvjqsyyk3sg", "number": "A.2:26", "link": "licenses.html#fls_6gvjqsyyk3sg", "checksum": "c6ab38d458c9605260610ec31abaaf83a03d54cc4109c75ce57d5330b7e0ae43"}, {"id": "fls_evwltjyhvhz", "number": "A.2:27", "link": "licenses.html#fls_evwltjyhvhz", "checksum": "dbb66a9641f131e6288803d7b31289cc46c0c00d4bf70ecaade3c44dfb5acfaa"}, {"id": "fls_xj0b5mrjgdbt", "number": "A.2:28", "link": "licenses.html#fls_xj0b5mrjgdbt", "checksum": "f6437e117dc2304d057d9a5394bea1e927d97d91a0451366fb3bdbaa35556c6c"}, {"id": "fls_ecitsmzb8l28", "number": "A.2:29", "link": "licenses.html#fls_ecitsmzb8l28", "checksum": "5cb92d044eeac194b5d3a2e2fed02e650bdca56fe9e6386c4729f39717879270"}, {"id": "fls_wx0hv6f68i4f", "number": "A.2:30", "link": "licenses.html#fls_wx0hv6f68i4f", "checksum": "a69bf85bf1838570613037b4423858a9a047187494aea6e78ae1c91c9d58f711"}, {"id": "fls_fgjjzdwbw1t8", "number": "A.2:31", "link": "licenses.html#fls_fgjjzdwbw1t8", "checksum": "df088a3e94ccbd2e98926c4f5ca34fd02f3cd8dfc3924b7ba3749ef0eb08b68d"}, {"id": "fls_hnxekf2ahnif", "number": "A.2:32", "link": "licenses.html#fls_hnxekf2ahnif", "checksum": "1a6497e3eeb694644723d0a451104bff4dd133960c27e3d4e9b6c5282cdcdf2a"}, {"id": "fls_e0ytxo6b451", "number": "A.2:33", "link": "licenses.html#fls_e0ytxo6b451", "checksum": "839ca0d83587df0f49d5e7af7a86cb4ed2526d3c7a4fb98ca1e7031d41e9c3bb"}, {"id": "fls_145e22m6bw47", "number": "A.2:34", "link": "licenses.html#fls_145e22m6bw47", "checksum": "1c4d9cbfb808d36160fd3001c512e6887268a758682958c644bcbe07f04a32af"}, {"id": "fls_9o0wr812ggf2", "number": "A.2:35", "link": "licenses.html#fls_9o0wr812ggf2", "checksum": "9c3bd1dd9f6780741a46dfb5af593752082db35d8ce9d3eb8ae7d663e403c665"}, {"id": "fls_cqaian5c7mwr", "number": "A.2:36", "link": "licenses.html#fls_cqaian5c7mwr", "checksum": "a3d8a030eaf80e2f2d7b0b8c819a8b4a03d2468cad162b5778d7535713e6eb54"}, {"id": "fls_eil4b7ffojqa", "number": "A.2:37", "link": "licenses.html#fls_eil4b7ffojqa", "checksum": "2caf6f88f365a1f0b8673022f566d0e34e5f487002cbb975f7a3810984aa2b33"}], "informational": false}, {"id": "fls_un9oqipiretc", "number": "A.3", "title": "Rust Reference MIT License", "link": "licenses.html#rust-reference-mit-license", "paragraphs": [{"id": "fls_bkxw1o1hanmk", "number": "A.3:1", "link": "licenses.html#fls_bkxw1o1hanmk", "checksum": "43b7d2588a00010b6644920dff56e6f4652ec966cf564d52f3e5e87748e58bbf"}, {"id": "fls_yc3wyw3plm1s", "number": "A.3:2", "link": "licenses.html#fls_yc3wyw3plm1s", "checksum": "efda707a511b8c7e80727098049e5458105f2960dc74c0d7faa11a43f7e7d997"}, {"id": "fls_ypomxdgiswq8", "number": "A.3:3", "link": "licenses.html#fls_ypomxdgiswq8", "checksum": "dc6e47d05ec79c0cbaa15dd61b6a60ab03fd6f9d7e2f51df6828fc53f4916265"}, {"id": "fls_q6rhvbuhxa21", "number": "A.3:4", "link": "licenses.html#fls_q6rhvbuhxa21", "checksum": "f227391839011fc1299d7eef9855e682ceab676478b839480bb5cdea3359f70b"}], "informational": false}], "informational": true}, {"title": "Lexical Elements", "link": "lexical-elements.html", "sections": [{"id": "fls_411up5z0b6n6", "number": "2", "title": "Lexical Elements", "link": "lexical-elements.html", "paragraphs": [{"id": "fls_pqwpf87b84tr", "number": "2:1", "link": "lexical-elements.html#fls_pqwpf87b84tr", "checksum": "c63cd9576e1595dfb4d7d38e0c9732d20c4044d18947914c36952a45f6592248"}], "informational": true}, {"id": "fls_2i089jvv8j5g", "number": "2.1", "title": "Character Set", "link": "lexical-elements.html#character-set", "paragraphs": [{"id": "fls_itcth8292ud6", "number": "2.1:1", "link": "lexical-elements.html#fls_itcth8292ud6", "checksum": "40ca6b69e8a1f39dacde761ccaecbaca619375767abb05e925bec6c504198244"}, {"id": "fls_vfx8byq5zo8t", "number": "2.1:2", "link": "lexical-elements.html#fls_vfx8byq5zo8t", "checksum": "e82f4769c3930c55731cfdff64cba2bf3f3fe6f20f8bbb741ec95c4bce18f4d2"}, {"id": "fls_pvslhm3chtlb", "number": "2.1:3", "link": "lexical-elements.html#fls_pvslhm3chtlb", "checksum": "a2710a596348e56b2b389ff7a77765369a97fcd53c60fc5c39a42050c3aa2b74"}, {"id": "fls_a5ec9cpn4sc8", "number": "2.1:4", "link": "lexical-elements.html#fls_a5ec9cpn4sc8", "checksum": "2a0b32b27fe371cd7e93f22f0a2244eba0ae620a5b844fe722d308d5cba30392"}, {"id": "fls_dgyrj49y3c7c", "number": "2.1:5", "link": "lexical-elements.html#fls_dgyrj49y3c7c", "checksum": "66a1720f2e9d2efd1b01c5a8e3d89b8b70f8f707c0d5c446e6b1326f2e44e146"}, {"id": "fls_5ocmngyur7by", "number": "2.1:6", "link": "lexical-elements.html#fls_5ocmngyur7by", "checksum": "2d61867ea0852e491d286632860fa0111941830a7af9e3240f26cbce126f5a67"}, {"id": "fls_1aj0rgi9kpib", "number": "2.1:7", "link": "lexical-elements.html#fls_1aj0rgi9kpib", "checksum": "7f6017bf13927f894ed1460d26d072453606445d1dbff591da54b2f1eb9fe834"}, {"id": "fls_bfzdxsbq2c2q", "number": "2.1:8", "link": "lexical-elements.html#fls_bfzdxsbq2c2q", "checksum": "ffc345f23396d082ca468df1855e3f5aca7a1585cff5388705d9c1a3f70e74bd"}, {"id": "fls_vw0kq2y1o63m", "number": "2.1:9", "link": "lexical-elements.html#fls_vw0kq2y1o63m", "checksum": "02086e7f1249fcbd972c9e0518ee1939b64715df2d4770f72ce70c688b6338ad"}, {"id": "fls_ao296bmamwzh", "number": "2.1:10", "link": "lexical-elements.html#fls_ao296bmamwzh", "checksum": "82e2f578c850a061a6aaaad593ca77086467b3ecb1e21068c97a4c8d66c0aee0"}, {"id": "fls_6kymhq7embdh", "number": "2.1:11", "link": "lexical-elements.html#fls_6kymhq7embdh", "checksum": "8815f83db374f9a454841fc1f6b6390c6ecd954fabc83881cea39dcc3e76bfc7"}, {"id": "fls_8mxmrxvhn3by", "number": "2.1:12", "link": "lexical-elements.html#fls_8mxmrxvhn3by", "checksum": "e0d4111521e0ef7716e900e64befc27972b65b3002d9d3421d0df6e070601ecd"}, {"id": "fls_bc6d1atvmjjr", "number": "2.1:13", "link": "lexical-elements.html#fls_bc6d1atvmjjr", "checksum": "8d7234572699415553e79da17fd2524d1fcc2a7efe1e5033a320ab62a52024e6"}, {"id": "fls_zfs15iel08y0", "number": "2.1:14", "link": "lexical-elements.html#fls_zfs15iel08y0", "checksum": "e3b6a12dce515b8175a3e8b860650047b16ef9d3ca779fa9d7d654e44137ddc7"}, {"id": "fls_7eifv4ksunu1", "number": "2.1:15", "link": "lexical-elements.html#fls_7eifv4ksunu1", "checksum": "0019b4f55d1b71c339a645baf16461aa169dbed3b2d823b8af749a41fe5c41ac"}, {"id": "fls_pidkem8gilnl", "number": "2.1:16", "link": "lexical-elements.html#fls_pidkem8gilnl", "checksum": "8a24c7ea76335af8905267c0228e0a1fb01b2367fb5def7030a6d69e27d6a447"}, {"id": "fls_2brw13n9ldgy", "number": "2.1:17", "link": "lexical-elements.html#fls_2brw13n9ldgy", "checksum": "d5ae1cce239b620e197250f6a2726fc8f495aee8a7115926a963718c9033130f"}], "informational": false}, {"id": "fls_fgnllgz5k3e6", "number": "2.2", "title": "Lexical Elements, Separators, and Punctuation", "link": "lexical-elements.html#lexical-elements-separators-and-punctuation", "paragraphs": [{"id": "fls_d4nvxsvxj537", "number": "2.2:1", "link": "lexical-elements.html#fls_d4nvxsvxj537", "checksum": "653136e8fac3c1c53040add411c925009e38f8501d503a48b3c73829f59e7bbc"}, {"id": "fls_a1zylpqha73x", "number": "2.2:2", "link": "lexical-elements.html#fls_a1zylpqha73x", "checksum": "73d17b1543408a0260ebf6781483f768a98a08e65e7b3efd7a67056c0769a116"}, {"id": "fls_jy6wifn5r2bu", "number": "2.2:3", "link": "lexical-elements.html#fls_jy6wifn5r2bu", "checksum": "11d71ea399510ce28be4e570347824ac5796e92cb7aeec1b5a5917ddac5f41dc"}, {"id": "fls_efdfq9nhpmp5", "number": "2.2:4", "link": "lexical-elements.html#fls_efdfq9nhpmp5", "checksum": "f7f8a0f54827276c6d4560722f7e9788d530dd5d345822294140f92d6b9bca15"}, {"id": "fls_go25sisi5fdp", "number": "2.2:5", "link": "lexical-elements.html#fls_go25sisi5fdp", "checksum": "c9af1ffb3e58642391c41d16d4207e4f717098bcbe022bdf29bec6ce24663dc4"}, {"id": "fls_a6t53o8h1vdk", "number": "2.2:6", "link": "lexical-elements.html#fls_a6t53o8h1vdk", "checksum": "761bcfdf8467cee695b29cd8d454ab4a558df08126df0edde891a74925371be6"}, {"id": "fls_8fv63w6f4udl", "number": "2.2:7", "link": "lexical-elements.html#fls_8fv63w6f4udl", "checksum": "eb78e3a8a8e977064b2d7149e4306c21f9fcdfb8f18ceeb51eb2b40b9ac4a9c7"}, {"id": "fls_es0tz1q9cmoo", "number": "2.2:8", "link": "lexical-elements.html#fls_es0tz1q9cmoo", "checksum": "2db8aaaa096a0e58bd2ffc1db8997f6950ac40fd421ec7ba8b451a13f9a86de5"}, {"id": "fls_vm86olkeecer", "number": "2.2:9", "link": "lexical-elements.html#fls_vm86olkeecer", "checksum": "f795577e13f973533719549c1acfa613203c8ccb340008307f46401e67c453d7"}, {"id": "fls_5zxdgxy8tjrq", "number": "2.2:10", "link": "lexical-elements.html#fls_5zxdgxy8tjrq", "checksum": "a00d2db187c054f568dbc3e78a1605de3149d3c6abc4a34aa93f2710ba6ca2fd"}, {"id": "fls_x89vkq9rwlyt", "number": "2.2:11", "link": "lexical-elements.html#fls_x89vkq9rwlyt", "checksum": "115718cd9f0c771924efeceb67f8b777b85cec578ef27ca2e037c38243f8f350"}, {"id": "fls_bo3xh8r60ji1", "number": "2.2:12", "link": "lexical-elements.html#fls_bo3xh8r60ji1", "checksum": "5f4e89c3e94a0b323a33d11a320cc4dcc9f49ad2aadb50b2bafe1222bc8ddf57"}, {"id": "fls_sslkjuxjnteu", "number": "2.2:13", "link": "lexical-elements.html#fls_sslkjuxjnteu", "checksum": "6f99b7bbcf1e55392ad60df6c0625665b9dc85560643ad80f415189d8c7ea74d"}, {"id": "fls_9g1godm0jp0z", "number": "2.2:14", "link": "lexical-elements.html#fls_9g1godm0jp0z", "checksum": "deb239c182541b9351e7079d839b668ddf59a12393d1595c39ea0a9e9ddb774e"}, {"id": "fls_6oith9q0soot", "number": "2.2:15", "link": "lexical-elements.html#fls_6oith9q0soot", "checksum": "0aa275a9c135534577ced486481a428aeb61c42968ca8a6ceafaada95c15ce69"}, {"id": "fls_1dledwdc8fa6", "number": "2.2:16", "link": "lexical-elements.html#fls_1dledwdc8fa6", "checksum": "da7de79db9b949ccd8272fe75b48914ed735298d02e452128b6f46462c2d48a6"}, {"id": "fls_lunw7ucj5ius", "number": "2.2:17", "link": "lexical-elements.html#fls_lunw7ucj5ius", "checksum": "47d2b64fbe4f3b6669f313e326a56bc80c9e29d2609798c8fbd66944b711bc45"}, {"id": "fls_a4oiuhz95uiv", "number": "2.2:18", "link": "lexical-elements.html#fls_a4oiuhz95uiv", "checksum": "c9313afb793a167c53fe2e63b2f4af9b33b23f6209fbf7e0b074de80d123e380"}, {"id": "fls_137x9s6guj6h", "number": "2.2:19", "link": "lexical-elements.html#fls_137x9s6guj6h", "checksum": "6e723820ff0d3af2b33911208421ec93bfa3d9388535b353d60fe2a74ccc1c8e"}, {"id": "fls_y0wdb09cpp1w", "number": "2.2:20", "link": "lexical-elements.html#fls_y0wdb09cpp1w", "checksum": "d871501237f68094e868228be1c9ed208944a082241b0cf7a5e34375ee6310ba"}, {"id": "fls_48b7mepiuupz", "number": "2.2:21", "link": "lexical-elements.html#fls_48b7mepiuupz", "checksum": "27d189b098b53140fcdc85a3f039a286f0345dd4aa05f64de22d79e472edc815"}, {"id": "fls_g9h9bsvrsmk1", "number": "2.2:22", "link": "lexical-elements.html#fls_g9h9bsvrsmk1", "checksum": "cead86db2db6918d8b043df1bb6d9a515f70eedb704cb0533f19bf1a702786d5"}, {"id": "fls_fxne2xd0zzzo", "number": "2.2:23", "link": "lexical-elements.html#fls_fxne2xd0zzzo", "checksum": "9919d5618da261c20fa0dcbe41e0e33cdadc04c63ce6b754c24cc21f2cea2143"}, {"id": "fls_il7zv5x3aw0q", "number": "2.2:24", "link": "lexical-elements.html#fls_il7zv5x3aw0q", "checksum": "1db05fadca01dde48b4ba9f4c5941275523165e10756ef03f43cfa640cb2164e"}, {"id": "fls_ovcs1qm86ss9", "number": "2.2:25", "link": "lexical-elements.html#fls_ovcs1qm86ss9", "checksum": "0f736355e9492cd634311cdd73a04550f157f18342e924ed85e3662ff008085f"}, {"id": "fls_wmhlvjm0b0j9", "number": "2.2:26", "link": "lexical-elements.html#fls_wmhlvjm0b0j9", "checksum": "90ab0fbf40492678aadc1c1460d74be57bd1740b09977b1ac1304747e519aba3"}, {"id": "fls_gg42klb2gn9v", "number": "2.2:27", "link": "lexical-elements.html#fls_gg42klb2gn9v", "checksum": "d68ed94fe4e38b43ce1f83e10bd9d63c0a70f2869947d5e7a3b05323020be8e0"}, {"id": "fls_icahptg5enj4", "number": "2.2:28", "link": "lexical-elements.html#fls_icahptg5enj4", "checksum": "2565056b10c31e82a75554c2f93e8566040b57a534228e4eb172894ee351df1e"}, {"id": "fls_baawlxoi7yd4", "number": "2.2:29", "link": "lexical-elements.html#fls_baawlxoi7yd4", "checksum": "72b90114176314f65b298489501e1763317985e1f90ddc834c7ba00bceacc339"}, {"id": "fls_m7gt3wfbtm81", "number": "2.2:30", "link": "lexical-elements.html#fls_m7gt3wfbtm81", "checksum": "7e8d7cb2d1db1915eefb51e0bb97b3578e2168dc029dbb4c6ce360f326d9f760"}, {"id": "fls_6ewl7gn3sjm2", "number": "2.2:31", "link": "lexical-elements.html#fls_6ewl7gn3sjm2", "checksum": "d1faa62ca541cacacd198a34628995933bad01292a21dd568ddcf474e4dbc4b2"}, {"id": "fls_nb8q6oq8txv3", "number": "2.2:32", "link": "lexical-elements.html#fls_nb8q6oq8txv3", "checksum": "721175acceef5a74b065e1b446344787ec7a10cbffbef36ce67f086022ce23ba"}, {"id": "fls_4nnky9ansr9j", "number": "2.2:33", "link": "lexical-elements.html#fls_4nnky9ansr9j", "checksum": "d3f16e94c1af504357ac2df39037b3897e443574d68f41a97f3a3751fb96fd49"}, {"id": "fls_h1gvudehmnn9", "number": "2.2:34", "link": "lexical-elements.html#fls_h1gvudehmnn9", "checksum": "f33b2927d4c93c042777b5efd14b10f479d4567213b07eeb39af2f226b208a84"}, {"id": "fls_6yj1c3lh691s", "number": "2.2:35", "link": "lexical-elements.html#fls_6yj1c3lh691s", "checksum": "3b19d33ec536baf30efd81e160cddae06ecb9f87449e9a2f0eb4b7b41f45a9e9"}, {"id": "fls_2d3oo9nou9vv", "number": "2.2:36", "link": "lexical-elements.html#fls_2d3oo9nou9vv", "checksum": "1849bba6049bdbc82b21b091dec81c60ec2b201d17fb46c10b00dd7008a75383"}, {"id": "fls_st2vhcy14ud9", "number": "2.2:37", "link": "lexical-elements.html#fls_st2vhcy14ud9", "checksum": "1e646156faf2fee7e2b56b8ba713276080504a642c80857cae228114284669d0"}, {"id": "fls_9gdyw71dl25", "number": "2.2:38", "link": "lexical-elements.html#fls_9gdyw71dl25", "checksum": "296ef99a61a7ee9d96f8b232724e9426eaf744eb4fee6e5a8d5f382bab039071"}, {"id": "fls_sp8ufz28l9w3", "number": "2.2:39", "link": "lexical-elements.html#fls_sp8ufz28l9w3", "checksum": "a6eb8fc79796023bbf80ae6ebebbe9aa8ca02eaea9e91dd0101a92d6502c436a"}, {"id": "fls_7kdr8biodxvz", "number": "2.2:40", "link": "lexical-elements.html#fls_7kdr8biodxvz", "checksum": "1206752913d765884541bbdca0403f9d865f619f0a66850120cd7d31fdf9dba4"}, {"id": "fls_pf92l9bkte2u", "number": "2.2:41", "link": "lexical-elements.html#fls_pf92l9bkte2u", "checksum": "313032bcb9b35d0790c79d41a0ca4b969af9522ce30869193930e68bc013f5ab"}, {"id": "fls_ui40thspgyav", "number": "2.2:42", "link": "lexical-elements.html#fls_ui40thspgyav", "checksum": "33ac534f7ecfa88d267e49b475398c2c99a9dc708d9947f300849180c325d542"}, {"id": "fls_h33qzachmimc", "number": "2.2:43", "link": "lexical-elements.html#fls_h33qzachmimc", "checksum": "7d1d9f51a7a61689fd5c36e8bb1692e0155f452ed6ee445950644a177628e200"}, {"id": "fls_13ud1clgdnyv", "number": "2.2:44", "link": "lexical-elements.html#fls_13ud1clgdnyv", "checksum": "2f5232d2dd945c47f4332b95ce35d9d402898e71f4f7c411c663e301e2429cfa"}, {"id": "fls_7fosi8l2ktz2", "number": "2.2:45", "link": "lexical-elements.html#fls_7fosi8l2ktz2", "checksum": "70b0b1197e263b4916e16125090cd6e9a9899d0554b9d920f0a3ea7fa28419bb"}, {"id": "fls_9qitp6r75ia6", "number": "2.2:46", "link": "lexical-elements.html#fls_9qitp6r75ia6", "checksum": "5683fc048d59af88dbe3eab83e4bd8d23b94856307f288a6f6377f4037f4595d"}, {"id": "fls_g0umao9roi2l", "number": "2.2:47", "link": "lexical-elements.html#fls_g0umao9roi2l", "checksum": "910783ea8b3d0346e1c6f25a4103c369012b37ccd28169fb7513ec357673c4d2"}, {"id": "fls_lamrpdpko48", "number": "2.2:48", "link": "lexical-elements.html#fls_lamrpdpko48", "checksum": "425e9c50e0a6e99ab3bd2a32d34417baaa88ef286249a7ea4c40aff88803a88d"}, {"id": "fls_s4lte9onbmqb", "number": "2.2:49", "link": "lexical-elements.html#fls_s4lte9onbmqb", "checksum": "44095be1f456e5e12848444c3cccdaf9cb0595d285c3b9af792f68c3c6d12e7a"}, {"id": "fls_ywc297y8s0dt", "number": "2.2:50", "link": "lexical-elements.html#fls_ywc297y8s0dt", "checksum": "ef74969af8ed15f1495ae8e706dfd8210ff6adfe2b49651ba869290be7687de0"}, {"id": "fls_ijb0fws4gshu", "number": "2.2:51", "link": "lexical-elements.html#fls_ijb0fws4gshu", "checksum": "5646edff72acfcef1812fe04617d99f20bd1792169e20de2737a09248d9dd74f"}, {"id": "fls_c25ur4xwbpk0", "number": "2.2:52", "link": "lexical-elements.html#fls_c25ur4xwbpk0", "checksum": "20e185246054cf07309c6a13c1abd811e9488b5a85b5b076da651edbcdb233bd"}, {"id": "fls_9dd9479zzq30", "number": "2.2:53", "link": "lexical-elements.html#fls_9dd9479zzq30", "checksum": "c9171c2be2e92bbdf83f7a6944a2ba47aed3227600b99f5fb6a50b1ee7cfffdd"}, {"id": "fls_kwsu9d3ppv3f", "number": "2.2:54", "link": "lexical-elements.html#fls_kwsu9d3ppv3f", "checksum": "6392d2a1b3e699903a3891e189ec2627cd4cdadb40b1901227056869728ed558"}, {"id": "fls_oh62j9unw4mg", "number": "2.2:55", "link": "lexical-elements.html#fls_oh62j9unw4mg", "checksum": "9cd08193b2cec929c6aa172a5dc0c456e7f5faf0dddc91f4a5010af10ff3cffb"}, {"id": "fls_g0tltt8qmbum", "number": "2.2:56", "link": "lexical-elements.html#fls_g0tltt8qmbum", "checksum": "6031f088738902177f0a06367e797bbbed6f87b4be23c0317f10da0e7ca27224"}, {"id": "fls_ounkw8b8tk4f", "number": "2.2:57", "link": "lexical-elements.html#fls_ounkw8b8tk4f", "checksum": "c66c5da22713843633a8a9e39b2b20bc790ff265b578a9814659071b19adb6d4"}, {"id": "fls_8ywv8gftsfr1", "number": "2.2:58", "link": "lexical-elements.html#fls_8ywv8gftsfr1", "checksum": "146ed363f52681258de59c4c591f3e964f91cf5b1f49ab1ba0410c4b99fb63a6"}, {"id": "fls_hsn6zc29ifyx", "number": "2.2:59", "link": "lexical-elements.html#fls_hsn6zc29ifyx", "checksum": "db921aee3f65b1447572f308b1536051374edd08a46c64e1900f1f18f7d003e1"}, {"id": "fls_o3amqe3ca82d", "number": "2.2:60", "link": "lexical-elements.html#fls_o3amqe3ca82d", "checksum": "5b84c1b6b34b6a35f73d808399557de0dda5643c5dd061eab6fe2f70f841047a"}, {"id": "fls_lkevfpj7sqd3", "number": "2.2:61", "link": "lexical-elements.html#fls_lkevfpj7sqd3", "checksum": "503fcedbff8acca4704b08fc4a18dd34eacb130b874da3393499d1b4b2767f79"}, {"id": "fls_ff05ge2189z", "number": "2.2:62", "link": "lexical-elements.html#fls_ff05ge2189z", "checksum": "d11919954e7ca0bf885a5dcecbf1173c4e7d47a9a0c9680cdfe30689bdc09607"}, {"id": "fls_nplkudde6oxf", "number": "2.2:63", "link": "lexical-elements.html#fls_nplkudde6oxf", "checksum": "f5fea3393e5672ccf2f182c92ada0ce8e51b908b4c56d6e5dff341b04aadbdda"}, {"id": "fls_qwnrklmbz0b", "number": "2.2:64", "link": "lexical-elements.html#fls_qwnrklmbz0b", "checksum": "0f4d81ea4a932a0b0c4ca39ea2ab7cf36fe9262611f07950869b94f715652cb3"}], "informational": false}, {"id": "fls_21vnag69kbwe", "number": "2.3", "title": "Identifiers", "link": "lexical-elements.html#fls-21vnag69kbwe", "paragraphs": [{"id": "fls_ls7ymvgd5kfa", "number": "2.3:1", "link": "lexical-elements.html#fls_ls7ymvgd5kfa", "checksum": "3987fd5d747ef2d4785094f84e754d8cae140017fa5f9c28362feeef107d4dac"}, {"id": "fls_aqj9aguczgqs", "number": "2.3:2", "link": "lexical-elements.html#fls_aqj9aguczgqs", "checksum": "711b7898931cab56cb1058ef3932abe5b767cb86bbe9998c0d33d0dec68b7fc5"}, {"id": "fls_xsdmun5uqy4c", "number": "2.3:3", "link": "lexical-elements.html#fls_xsdmun5uqy4c", "checksum": "17d71ec4c1973c054222c7033a9c64d1fd8dca1fdf82d323472445e8c7511c81"}, {"id": "fls_ktnf6zkrdy45", "number": "2.3:4", "link": "lexical-elements.html#fls_ktnf6zkrdy45", "checksum": "3a5077067bbd7d98abb0e8ef62f3c68e25a82638fe896907b96848701a6b9ed0"}, {"id": "fls_jpecw46eh061", "number": "2.3:5", "link": "lexical-elements.html#fls_jpecw46eh061", "checksum": "7c0456add112d85b5342b18d8e5cac6ae082a3b8287b0cc800d54f8906612b2a"}, {"id": "fls_lwcflgezgs5z", "number": "2.3:6", "link": "lexical-elements.html#fls_lwcflgezgs5z", "checksum": "198814e4e6f61528781c58b11e16a0038ae24778bba6d20a1a9a8dd79185cb3e"}, {"id": "fls_uts0hywaw1rq", "number": "2.3:7", "link": "lexical-elements.html#fls_uts0hywaw1rq", "checksum": "a2af446e5664b56514cde36964346072a3c31267e8e81fd5417885aa9f091b32"}, {"id": "fls_lju1avcn0pfd", "number": "2.3:8", "link": "lexical-elements.html#fls_lju1avcn0pfd", "checksum": "3d09604f290b1e849a5430295209e2f6556f6c9f2024c7160c92b0ac7d91a602"}, {"id": "fls_cs6cbw625np1", "number": "2.3:9", "link": "lexical-elements.html#fls_cs6cbw625np1", "checksum": "4e8345c2b229363a30e4c701ca308a343dc98f3fc1025d6321b4a101aa16e444"}, {"id": "fls_irwcldiotei2", "number": "2.3:10", "link": "lexical-elements.html#fls_irwcldiotei2", "checksum": "54da339a3e1b9269cf812fda1ad283d6cf0918c3a3807f8c61fab188ef3d2658"}, {"id": "fls_g72rxs2z5960", "number": "2.3:11", "link": "lexical-elements.html#fls_g72rxs2z5960", "checksum": "9ae1eb42d553b7e7443d02b5b2d1e3a6d78bb9bcb4eedc72060780aa692d65bf"}, {"id": "fls_w473jevurlt1", "number": "2.3:12", "link": "lexical-elements.html#fls_w473jevurlt1", "checksum": "c7c123027fb95da5b47bbb45a0d262f1ccc8a67be78b8c5e6995d4eabf0dcb75"}, {"id": "fls_mt1u4m3simhc", "number": "2.3:13", "link": "lexical-elements.html#fls_mt1u4m3simhc", "checksum": "14cfd5ffca7331e76e77c2fc7141bce89335774b3850f3cc90a06066c4660451"}, {"id": "fls_e2v58o233lvd", "number": "2.3:14", "link": "lexical-elements.html#fls_e2v58o233lvd", "checksum": "b8d023cf7da2ee836679c97c7dccb223c0cfe0d172d661327da271ea51059628"}, {"id": "fls_op0lp1i065di", "number": "2.3:15", "link": "lexical-elements.html#fls_op0lp1i065di", "checksum": "5d492f34dedfe4c347ae8fc5cc979751886b374d0f597aec7270a8850f233696"}, {"id": "fls_vde7gev5rz4q", "number": "2.3:16", "link": "lexical-elements.html#fls_vde7gev5rz4q", "checksum": "d8a9ddf03bd6e5fe69b23403d83fb785383eaa9e3e1b12e4d7a2d26f930c5843"}, {"id": "fls_j9yh8j8jgdeu", "number": "2.3:17", "link": "lexical-elements.html#fls_j9yh8j8jgdeu", "checksum": "cb6600fc3669e86c2955c97b83b7f6396c4187ddd330aa46e989b9cd1c9f0ace"}, {"id": "fls_jejt5z8m1yew", "number": "2.3:18", "link": "lexical-elements.html#fls_jejt5z8m1yew", "checksum": "8123eef62794e72515c380c13f09fe4a1a1b30ee0516beacac7e93a43c943a7b"}], "informational": false}, {"id": "fls_nrkd5wpi64oo", "number": "2.4", "title": "Literals", "link": "lexical-elements.html#literals", "paragraphs": [{"id": "fls_s76un78zyd0j", "number": "2.4:1", "link": "lexical-elements.html#fls_s76un78zyd0j", "checksum": "4303183568664aedd54d9840d1fb3ca733ea37f08af4e8a629102afce83dc9bc"}], "informational": false}, {"id": "fls_2ifjqwnw03ms", "number": "2.4.1", "title": "Byte Literals", "link": "lexical-elements.html#byte-literals", "paragraphs": [{"id": "fls_3hpzf12h60u4", "number": "2.4.1:1", "link": "lexical-elements.html#fls_3hpzf12h60u4", "checksum": "c40401452c29d8db5b9b193597726e18789ccd7a194187365e54cf4fb4b57067"}, {"id": "fls_q0qwr83frszx", "number": "2.4.1:2", "link": "lexical-elements.html#fls_q0qwr83frszx", "checksum": "59045ce2e31e65cd7b1195587644af1891984b02d9dc612c1f7a61850d140332"}, {"id": "fls_fggytrv5jvw0", "number": "2.4.1:3", "link": "lexical-elements.html#fls_fggytrv5jvw0", "checksum": "34306366aa23941d86cf2fc0d347e2b007703424de36480b5357c7c4583e3671"}], "informational": false}, {"id": "fls_fqaffyrjob7v", "number": "2.4.2", "title": "Byte String Literals", "link": "lexical-elements.html#byte-string-literals", "paragraphs": [{"id": "fls_t63zfv5jduhj", "number": "2.4.2:1", "link": "lexical-elements.html#fls_t63zfv5jduhj", "checksum": "28f4df70edac5734cc64ff6089f04d400be4ce9f2af1664070e1b0326cb24d26"}, {"id": "fls_xd6lnfzmb7t7", "number": "2.4.2:2", "link": "lexical-elements.html#fls_xd6lnfzmb7t7", "checksum": "b095fb9c6f26adc7950fc1088d0c04c0f72b0debd22e082dfe50903faa93af8d"}], "informational": false}, {"id": "fls_msbaxfc09vkk", "number": "2.4.2.1", "title": "Simple Byte String Literals", "link": "lexical-elements.html#simple-byte-string-literals", "paragraphs": [{"id": "fls_3dcqhuosqb84", "number": "2.4.2.1:1", "link": "lexical-elements.html#fls_3dcqhuosqb84", "checksum": "62ac30b5cfa63f4632a34f11e4698ea67c7ae55a34b3d28b393ca9d5fa086c06"}, {"id": "fls_moe3zfx39ox2", "number": "2.4.2.1:2", "link": "lexical-elements.html#fls_moe3zfx39ox2", "checksum": "5e13841395ee1fa0c45128b43036136b6cb4e4916df10822bac39fdbd3793ff4"}, {"id": "fls_vffxb6arj9jf", "number": "2.4.2.1:3", "link": "lexical-elements.html#fls_vffxb6arj9jf", "checksum": "8f22427e1ba53391df74a01e8e153344365f804365f3a68124e8fb15dc383bb6"}], "informational": false}, {"id": "fls_jps9102q0qfi", "number": "2.4.2.2", "title": "Raw Byte String Literals", "link": "lexical-elements.html#raw-byte-string-literals", "paragraphs": [{"id": "fls_yyw7nv651580", "number": "2.4.2.2:1", "link": "lexical-elements.html#fls_yyw7nv651580", "checksum": "990fc45d4abab0b67d0ef88df0be04d33d65c7522287bb90176a8a85a131faf8"}, {"id": "fls_5ybq0euwya42", "number": "2.4.2.2:2", "link": "lexical-elements.html#fls_5ybq0euwya42", "checksum": "f646d235451afad8b859ba4be5f8fb7a8bfd7a81daf561627ab2473cdba57128"}], "informational": false}, {"id": "fls_hv9jtycp0o1y", "number": "2.4.3", "title": "Numeric Literals", "link": "lexical-elements.html#numeric-literals", "paragraphs": [{"id": "fls_fqpqnku27v99", "number": "2.4.3:1", "link": "lexical-elements.html#fls_fqpqnku27v99", "checksum": "d35bc8c4c792333754935689e43e0ed039b2a0b85a1730fd03f18091f05a6c19"}], "informational": false}, {"id": "fls_2ed4axpsy9u0", "number": "2.4.3.1", "title": "Integer Literals", "link": "lexical-elements.html#integer-literals", "paragraphs": [{"id": "fls_vkk2krfn93ry", "number": "2.4.3.1:1", "link": "lexical-elements.html#fls_vkk2krfn93ry", "checksum": "838a11239236c63c53764779b279c93d7dd7d3de4c52d1940ac02c6568cca205"}, {"id": "fls_nxqncu5yq4eu", "number": "2.4.3.1:2", "link": "lexical-elements.html#fls_nxqncu5yq4eu", "checksum": "45573384a56c61616dc2f95c2ed80da8e157435fd2eaacf7dba7d34bd26d9f5c"}, {"id": "fls_rn8xfd66yvst", "number": "2.4.3.1:3", "link": "lexical-elements.html#fls_rn8xfd66yvst", "checksum": "b53030bb2f4fce14a508b6f1efada25625e0fd5ba0b3fecfd8c97e0cb04cda6a"}, {"id": "fls_2268lchxkzjp", "number": "2.4.3.1:4", "link": "lexical-elements.html#fls_2268lchxkzjp", "checksum": "fb04cc8a0da09c17517d97ccfff5433116894258fe657d52d61fa56ae4f58b22"}, {"id": "fls_4v7awnutbpoe", "number": "2.4.3.1:5", "link": "lexical-elements.html#fls_4v7awnutbpoe", "checksum": "39e541881b32e1399af9d22c81f2c9acf7374597615a6e067f19a2a1483716bc"}, {"id": "fls_f1e29aj0sqvl", "number": "2.4.3.1:6", "link": "lexical-elements.html#fls_f1e29aj0sqvl", "checksum": "e930d37f51da1de444b9cdce508609ab005c7df01cf636cbae19629ed63527cd"}, {"id": "fls_u83mffscqm6", "number": "2.4.3.1:7", "link": "lexical-elements.html#fls_u83mffscqm6", "checksum": "0c2fc993dbe174e0cd94651585b88f744f4e4a827c5145dd0137aa6eab3387f4"}, {"id": "fls_g10nuv14q4jn", "number": "2.4.3.1:8", "link": "lexical-elements.html#fls_g10nuv14q4jn", "checksum": "56156e06e89f2c8d0e82416fb36dbe038b0aad5dd5d553108e3cd3e560351052"}, {"id": "fls_hpkkvuj1z1ez", "number": "2.4.3.1:9", "link": "lexical-elements.html#fls_hpkkvuj1z1ez", "checksum": "f684fbad635257607f2b55c5da42894852a1ba30d630ac6d1e217b81f6bfdf8d"}, {"id": "fls_7yq2fep848ky", "number": "2.4.3.1:10", "link": "lexical-elements.html#fls_7yq2fep848ky", "checksum": "fcae3d231f80f39da6c1244a291d2760710458e799952561422e8c9280d35453"}, {"id": "fls_bzm8lwq3qlat", "number": "2.4.3.1:11", "link": "lexical-elements.html#fls_bzm8lwq3qlat", "checksum": "1f4a7189ec6869ed715b2809e1dfdf0d1da660f106391d0ae75419cb2a3bc674"}, {"id": "fls_l4cx36brc1r5", "number": "2.4.3.1:12", "link": "lexical-elements.html#fls_l4cx36brc1r5", "checksum": "da4e7c81f503ecc2ccc9f9996edd96f76f669a45826eeb0bbb333d2e4a34dc91"}, {"id": "fls_wthchinwx996", "number": "2.4.3.1:13", "link": "lexical-elements.html#fls_wthchinwx996", "checksum": "c1fe3c1f3f5a441d07e72c6702bc49ef8f801249e1a6b368c41d41cb087234e7"}, {"id": "fls_7uoaet2pm3am", "number": "2.4.3.1:14", "link": "lexical-elements.html#fls_7uoaet2pm3am", "checksum": "9efb52c23e09f3c839307b622ea91a74fb827775d9312350956fc958a2a13a48"}, {"id": "fls_p4rw583o2qbi", "number": "2.4.3.1:15", "link": "lexical-elements.html#fls_p4rw583o2qbi", "checksum": "90e73387f32e74d98fccc01498d6b81106bfa39272684edd996c6bdc2ad8f099"}, {"id": "fls_xrv4q56lmoo3", "number": "2.4.3.1:16", "link": "lexical-elements.html#fls_xrv4q56lmoo3", "checksum": "a4c17c7e7b65883a7408b8cb26441cee4c5a98f040aec9f252015fc7fa72a28e"}, {"id": "fls_66e3q5um6cwc", "number": "2.4.3.1:17", "link": "lexical-elements.html#fls_66e3q5um6cwc", "checksum": "5cd753841d4cf1b3ac2e299d851b9d7d782ffec5218f862a6145c1bb97fe48af"}, {"id": "fls_5asyk66y7c9d", "number": "2.4.3.1:18", "link": "lexical-elements.html#fls_5asyk66y7c9d", "checksum": "b8c0a318a752dfac35fa253f5eaa5d86aa4d60c81746dbef4f79760bfbbb910e"}, {"id": "fls_76fifqjka0lx", "number": "2.4.3.1:19", "link": "lexical-elements.html#fls_76fifqjka0lx", "checksum": "def3e28ea7543e8f1e3cd2976118a6057928353e8c252c4b3dbd25c489171d9e"}, {"id": "fls_fsaimo419gf0", "number": "2.4.3.1:20", "link": "lexical-elements.html#fls_fsaimo419gf0", "checksum": "7be03faca47fa6b3d15b6e1bc4e6cb7412ac921daeaa997fec6b05a74ebf315f"}, {"id": "fls_hvzacbu7yiwc", "number": "2.4.3.1:21", "link": "lexical-elements.html#fls_hvzacbu7yiwc", "checksum": "a0e4b322fa7da7cd532ed7b176659ab4f67e9391a98e3f8ff3a6aee868b8cc88"}, {"id": "fls_50qipwqi3arw", "number": "2.4.3.1:22", "link": "lexical-elements.html#fls_50qipwqi3arw", "checksum": "7addf8fc9c1954d1f299f518261046655b25344da4e2566f4a6d2ad56af8f9a2"}, {"id": "fls_idzhusp2l908", "number": "2.4.3.1:23", "link": "lexical-elements.html#fls_idzhusp2l908", "checksum": "f00c3c8190df9c8356e8d00d40dc820ee8c2066ee14bc6fa8b113f1c2338df01"}, {"id": "fls_qqrqyc6uhol", "number": "2.4.3.1:24", "link": "lexical-elements.html#fls_qqrqyc6uhol", "checksum": "a94d2d7881175e1f816e2299655e250ae163b1ded65deba1d719d1480c2c8213"}, {"id": "fls_pexi5jazthq6", "number": "2.4.3.1:25", "link": "lexical-elements.html#fls_pexi5jazthq6", "checksum": "15953208cdd66d1e39876632dc159e551d824c61166d95fef941338342da8c30"}], "informational": false}, {"id": "fls_29tlg1vyqay2", "number": "2.4.3.2", "title": "Float Literals", "link": "lexical-elements.html#float-literals", "paragraphs": [{"id": "fls_rzi7oeqokd6e", "number": "2.4.3.2:1", "link": "lexical-elements.html#fls_rzi7oeqokd6e", "checksum": "5fbdbcd887fb491134091fc535b453fbfc99b8b158a38e18667520fde61df8fd"}, {"id": "fls_2ru1zyrykd37", "number": "2.4.3.2:2", "link": "lexical-elements.html#fls_2ru1zyrykd37", "checksum": "49113c092a3bbaaee5ecc5e237faa3a1d6b023cb7963903b2987786386b06cbc"}, {"id": "fls_21mhnhplzam7", "number": "2.4.3.2:3", "link": "lexical-elements.html#fls_21mhnhplzam7", "checksum": "de707bc1cc7a5d7d39af4acc4398ef7e645ac259968bb70066966823e3320d0b"}, {"id": "fls_drqh80k0sfkb", "number": "2.4.3.2:4", "link": "lexical-elements.html#fls_drqh80k0sfkb", "checksum": "8851975681aef35016e51dcd1065ff3a7c4dcc59185943068c52b5f39a45220c"}, {"id": "fls_cbs7j9pjpusw", "number": "2.4.3.2:5", "link": "lexical-elements.html#fls_cbs7j9pjpusw", "checksum": "4f2baa57a7d41e696d29d2b12dd05976c69c2dca1d26d41b65c2ae18930aa583"}, {"id": "fls_b9w7teaw1f8f", "number": "2.4.3.2:6", "link": "lexical-elements.html#fls_b9w7teaw1f8f", "checksum": "1c3e432fbd868c7c0e6f540bab2df3a5a05a874a2cf90c0c008273c8750df94a"}, {"id": "fls_eawxng4ndhv0", "number": "2.4.3.2:7", "link": "lexical-elements.html#fls_eawxng4ndhv0", "checksum": "0ed79abbdbc256059087c1f145e130bf6ae83c5d9ee2cf63b10c872203678b32"}, {"id": "fls_yuhza1muo7o", "number": "2.4.3.2:8", "link": "lexical-elements.html#fls_yuhza1muo7o", "checksum": "5af8baeae865b0b892668889094599d1003adefb8ca8775954c2bbb981df6244"}, {"id": "fls_4sxt1ct7fyen", "number": "2.4.3.2:9", "link": "lexical-elements.html#fls_4sxt1ct7fyen", "checksum": "3ab353f0319f1a988557a20ca5d4cbbe6564a0901c1e800e65fdb0f7d63244c4"}, {"id": "fls_wa72rssp0jnt", "number": "2.4.3.2:10", "link": "lexical-elements.html#fls_wa72rssp0jnt", "checksum": "da8b316abb73b8a595ca4e315dca897882f91c0dce9825eb81538e688460e26b"}, {"id": "fls_x2cw7g8g56f8", "number": "2.4.3.2:11", "link": "lexical-elements.html#fls_x2cw7g8g56f8", "checksum": "8cf076d0fe9b1af3dae27583a7489cd5da291f7a3ad82ee704b53d75a6b88bd3"}], "informational": false}, {"id": "fls_ypa86oqxhn9u", "number": "2.4.4", "title": "Character Literals", "link": "lexical-elements.html#character-literals", "paragraphs": [{"id": "fls_j9q9ton57rvl", "number": "2.4.4:1", "link": "lexical-elements.html#fls_j9q9ton57rvl", "checksum": "74e9ccd35447ec63b8c0425e182a07fca94414ed3f7ddea9fa310ad919d551f9"}, {"id": "fls_5v9gx22g5wpm", "number": "2.4.4:2", "link": "lexical-elements.html#fls_5v9gx22g5wpm", "checksum": "eaa3a29da7d1231106d2806b74071e86016eeeac6bda726a1b67b7946fc688fe"}, {"id": "fls_vag2oy4q7d4n", "number": "2.4.4:3", "link": "lexical-elements.html#fls_vag2oy4q7d4n", "checksum": "22ca23a599d712303316952fe635355f16bf2f9ff55658bf7a1ecc55ecca4ce1"}, {"id": "fls_n8z6p6g564r2", "number": "2.4.4:4", "link": "lexical-elements.html#fls_n8z6p6g564r2", "checksum": "e33f767e24f5ea1c1341bf515463aec11114c952dba17c8c17dfa64f277d2291"}], "informational": false}, {"id": "fls_boyhlu5srp6u", "number": "2.4.5", "title": "String Literals", "link": "lexical-elements.html#string-literals", "paragraphs": [{"id": "fls_7fuctvtvdi7x", "number": "2.4.5:1", "link": "lexical-elements.html#fls_7fuctvtvdi7x", "checksum": "c886554b68518a6cb11a6671911a00850d338a207bf5813cbf9a2dfd6f6ee63a"}, {"id": "fls_nyicpu2tzjlq", "number": "2.4.5:2", "link": "lexical-elements.html#fls_nyicpu2tzjlq", "checksum": "6c653b805698505c3026af600e00b55406a4b8149cd3a8840cc94e5ad0ff0a9f"}], "informational": false}, {"id": "fls_hucd52suu6it", "number": "2.4.5.1", "title": "Simple String Literals", "link": "lexical-elements.html#simple-string-literals", "paragraphs": [{"id": "fls_1pdzwkt5txfj", "number": "2.4.5.1:1", "link": "lexical-elements.html#fls_1pdzwkt5txfj", "checksum": "ac492dd896d3af7d678cdc44d9708f856cbc67ce41ee48385f730c82f0fb65eb"}, {"id": "fls_wawtu6j3fiqn", "number": "2.4.5.1:2", "link": "lexical-elements.html#fls_wawtu6j3fiqn", "checksum": "8eeeebd628d07b2ea71c78a21c61dd978f7d9af4bd0b88a95768966881dd52b4"}, {"id": "fls_ycy5ee6orjx", "number": "2.4.5.1:3", "link": "lexical-elements.html#fls_ycy5ee6orjx", "checksum": "4a6e317133ecb5ae53aefdc730f509e09e0c3713395895908d88d18e106527b7"}, {"id": "fls_6nt5kls21xes", "number": "2.4.5.1:4", "link": "lexical-elements.html#fls_6nt5kls21xes", "checksum": "cb50f037e2188c9a58f86b87d2c9d1f90186b0dcbe6117c343aa5fba6b2d7daa"}], "informational": false}, {"id": "fls_usr6iuwpwqqh", "number": "2.4.5.2", "title": "Raw String Literals", "link": "lexical-elements.html#raw-string-literals", "paragraphs": [{"id": "fls_36suwhbwmq1t", "number": "2.4.5.2:1", "link": "lexical-elements.html#fls_36suwhbwmq1t", "checksum": "cf9f7d7333258a4d9a235a6a611a80fd87d664cafd5732da2eb6c1155dfad367"}, {"id": "fls_ms43w1towz40", "number": "2.4.5.2:2", "link": "lexical-elements.html#fls_ms43w1towz40", "checksum": "d3b402e15a8bff639df20fcf15d4306d568a4d8b0e65132224975ba1cd7ffd25"}], "informational": false}, {"id": "fls_jkab8eevzbte", "number": "2.4.6", "title": "Boolean Literals", "link": "lexical-elements.html#boolean-literals", "paragraphs": [{"id": "fls_1lll64ftupjd", "number": "2.4.6:1", "link": "lexical-elements.html#fls_1lll64ftupjd", "checksum": "9222cb981e760f03c8b46b8708ecf54b556f6fb343a0017cb16fba2bcb98c10f"}, {"id": "fls_pgngble3ilyx", "number": "2.4.6:2", "link": "lexical-elements.html#fls_pgngble3ilyx", "checksum": "68a6151c72c232478bda2c413c1552acfd1e8304956b5733ef8a13c86768b079"}], "informational": false}, {"id": "fls_q8l2jza7d9xa", "number": "2.5", "title": "Comments", "link": "lexical-elements.html#comments", "paragraphs": [{"id": "fls_8obn3dtzpe5f", "number": "2.5:1", "link": "lexical-elements.html#fls_8obn3dtzpe5f", "checksum": "80a97a25c037e20dbb697978e3c79c22243ea2bb094a1a60f10b8cc358d57568"}, {"id": "fls_qsbnl11be35s", "number": "2.5:2", "link": "lexical-elements.html#fls_qsbnl11be35s", "checksum": "2dea71c3ed9833c779a0c63b8eae45c64771074fdbc263b67cd2115d7e9cf4ab"}, {"id": "fls_nayisy85kyq2", "number": "2.5:3", "link": "lexical-elements.html#fls_nayisy85kyq2", "checksum": "21cfcc3e2a54f9de067b507a9febe04379152937834f9c805769db5f4f31efaf"}, {"id": "fls_k3hj30hjkdhw", "number": "2.5:4", "link": "lexical-elements.html#fls_k3hj30hjkdhw", "checksum": "44db9ffd84a7092979605a0738feeec5f4b7058b977a23c47673c33c3ece8211"}, {"id": "fls_tspijl68lduc", "number": "2.5:5", "link": "lexical-elements.html#fls_tspijl68lduc", "checksum": "46b1ba35f675d689f5cccd754f8935bdbf89c5ad8ddf1e0563957ca73a891019"}, {"id": "fls_kzp0yifltqxb", "number": "2.5:6", "link": "lexical-elements.html#fls_kzp0yifltqxb", "checksum": "270e8134659947ebca11488a29a6802edd92f2d00c5c5cc2cdd352343a96c6da"}, {"id": "fls_63gzofa9ktic", "number": "2.5:7", "link": "lexical-elements.html#fls_63gzofa9ktic", "checksum": "7db44552637b47a7c80a482ccb21eff193aec3ef608b793139b79c90b9d259e9"}, {"id": "fls_scko7crha0um", "number": "2.5:8", "link": "lexical-elements.html#fls_scko7crha0um", "checksum": "1d2db5c6599512c9ff5347dd4643d081ca0ef713a638861316d0eb850fea2aef"}, {"id": "fls_ryvl9kgaxkvl", "number": "2.5:9", "link": "lexical-elements.html#fls_ryvl9kgaxkvl", "checksum": "89aba4c16b95e9fa5e40e6f8fda1c986eb5097820542fc57bf4d63ee2641be25"}, {"id": "fls_7n6d3jx61ose", "number": "2.5:10", "link": "lexical-elements.html#fls_7n6d3jx61ose", "checksum": "b5cdea2b94f91084652299806e1a80b282c551014c7d65952547fca3a2bb7cf8"}, {"id": "fls_6fxcs17n4kw", "number": "2.5:11", "link": "lexical-elements.html#fls_6fxcs17n4kw", "checksum": "a34430d6423f60015c14850fbc8c713a11943c37acb592477ed6bb0ed902b6a2"}, {"id": "fls_uze7l7cxonk1", "number": "2.5:12", "link": "lexical-elements.html#fls_uze7l7cxonk1", "checksum": "fe2e7af7111eab22f62c00b2ba9fc0c53748fcdb5ec02a7e20dd1e4247706e15"}, {"id": "fls_gy23lwlqw2mc", "number": "2.5:13", "link": "lexical-elements.html#fls_gy23lwlqw2mc", "checksum": "6cff261ef0c0d257749ff6809ac237900fb6673ccb75e5186c7b4fa8857f9330"}, {"id": "fls_w7d0skpov1is", "number": "2.5:14", "link": "lexical-elements.html#fls_w7d0skpov1is", "checksum": "cf00d52ba7c749b5e814bc2852d5e73d2b5454950abb829df0c20d7bb9ba9d60"}, {"id": "fls_32ncjvj2kn7z", "number": "2.5:15", "link": "lexical-elements.html#fls_32ncjvj2kn7z", "checksum": "255a7dcb2fc2b925e5aa49e3be573dcce5c450e40835c21a4ce5008439cdbeb8"}, {"id": "fls_ok0zvo9vcmzo", "number": "2.5:16", "link": "lexical-elements.html#fls_ok0zvo9vcmzo", "checksum": "a8f479f20301435fdb8a2c41487c0cb7d5418c877b9e952dbf54836c18113058"}, {"id": "fls_nwtkupi8fw6v", "number": "2.5:17", "link": "lexical-elements.html#fls_nwtkupi8fw6v", "checksum": "4c1420ace1da3c3694b1aebd35cada39def878b5c4f642ff6950ad600c7138a5"}], "informational": false}, {"id": "fls_lish33a1naw5", "number": "2.6", "title": "Keywords", "link": "lexical-elements.html#keywords", "paragraphs": [{"id": "fls_dti0uu7rz81w", "number": "2.6:1", "link": "lexical-elements.html#fls_dti0uu7rz81w", "checksum": "b661cfaf9bef72a6f8070ed5158ce24d582cc5371b80a7c78f52e7d49157b48f"}, {"id": "fls_sxg1o4oxql51", "number": "2.6:2", "link": "lexical-elements.html#fls_sxg1o4oxql51", "checksum": "9d03ce7dba3147733fdacd077fd30354c8d7b6a79883472bedba6a9643f63d6b"}], "informational": false}, {"id": "fls_mec5cg5aptf8", "number": "2.6.1", "title": "Strict Keywords", "link": "lexical-elements.html#strict-keywords", "paragraphs": [{"id": "fls_bsh7qsyvox21", "number": "2.6.1:1", "link": "lexical-elements.html#fls_bsh7qsyvox21", "checksum": "8394e357df5177d8ada084b53fdd141fc0e1a1ca7b937b28a47415ac0dce750f"}], "informational": false}, {"id": "fls_cbsgp6k0qa82", "number": "2.6.2", "title": "Reserved Keywords", "link": "lexical-elements.html#reserved-keywords", "paragraphs": [{"id": "fls_w4b97ewwnql", "number": "2.6.2:1", "link": "lexical-elements.html#fls_w4b97ewwnql", "checksum": "3f05a14ae9bd0f2dcdc7c65c76de451ed9485badef6dc6bb29c3fae69124e92d"}], "informational": false}, {"id": "fls_9kjpxri0axvg", "number": "2.6.3", "title": "Weak Keywords", "link": "lexical-elements.html#weak-keywords", "paragraphs": [{"id": "fls_bv87t1gvj7bz", "number": "2.6.3:1", "link": "lexical-elements.html#fls_bv87t1gvj7bz", "checksum": "507c02a61084d5e2447a4401c3c9ff54ecfb2b0e46adf98b0e9f96d5fbcd8eb7"}, {"id": "fls_bl55g03jmayf", "number": "2.6.3:2", "link": "lexical-elements.html#fls_bl55g03jmayf", "checksum": "c2adb1a3f82e557d2e62b7aa4e734ce8a14427d039fd743bf82710befacdae6a"}, {"id": "fls_c354oryv513p", "number": "2.6.3:3", "link": "lexical-elements.html#fls_c354oryv513p", "checksum": "7190ee3532730e20b19057227f945e1ad04d6f993bc33984e2dad01773e09ab2"}, {"id": "fls_r9fhuiq1ys1p", "number": "2.6.3:4", "link": "lexical-elements.html#fls_r9fhuiq1ys1p", "checksum": "dc15f002b42ce194ade6b4b0f4f6b5ca7bb28176b493eac737f309f66b3e42da"}], "informational": false}], "informational": false}, {"title": "Unsafety", "link": "unsafety.html", "sections": [{"id": "fls_jep7p27kaqlp", "number": "19", "title": "Unsafety", "link": "unsafety.html", "paragraphs": [{"id": "fls_8kqo952gjhaf", "number": "19:1", "link": "unsafety.html#fls_8kqo952gjhaf", "checksum": "09ef0477163f852006ab72daea7582f28fd5b47b9ec3a4188da6a52a06c1cbb9"}, {"id": "fls_ovn9czwnwxue", "number": "19:2", "link": "unsafety.html#fls_ovn9czwnwxue", "checksum": "72911c6efacc1ea81b757fea368ab51b658c5f44690af8bb4bf5076196f02dba"}, {"id": "fls_pfhmcafsjyf7", "number": "19:3", "link": "unsafety.html#fls_pfhmcafsjyf7", "checksum": "ac90013bdfea2c44c2ea16d0d92eb8b7a3b32f33cdb44553018c9de58de2d0ab"}, {"id": "fls_jd1inwz7ulyw", "number": "19:4", "link": "unsafety.html#fls_jd1inwz7ulyw", "checksum": "509a721d7a591aac4ddac02ca26ef6fc26e0ae40b040578d4282304dbef76b45"}, {"id": "fls_3ra8s1v1vbek", "number": "19:5", "link": "unsafety.html#fls_3ra8s1v1vbek", "checksum": "9efb922ed5200526914bd3f95ddb869b8e555bd8367143db358605307ff7ea93"}, {"id": "fls_6ipl0xo5qjyl", "number": "19:6", "link": "unsafety.html#fls_6ipl0xo5qjyl", "checksum": "1b9334ca686a2f78808b0a5e1bf0b6793eef547e9367cf94416bb6a4009457bc"}, {"id": "fls_ucghxcnpaq2t", "number": "19:7", "link": "unsafety.html#fls_ucghxcnpaq2t", "checksum": "08016621bfd496b3d4c162d71caf6c3033c213bf9b52662adf1137b696285b4b"}, {"id": "fls_ljocmnaz2m49", "number": "19:8", "link": "unsafety.html#fls_ljocmnaz2m49", "checksum": "7740b81deb4cc8d3a5d63073faa941c897de8931c90af82f402d60d8f5cf7ad6"}, {"id": "fls_s5nfhbfok8bu", "number": "19:9", "link": "unsafety.html#fls_s5nfhbfok8bu", "checksum": "bb058285e28804f8335348bcfa3c28e0f032f4346bc2aaf52a67145036233241"}, {"id": "fls_jb6krd90tjmc", "number": "19:10", "link": "unsafety.html#fls_jb6krd90tjmc", "checksum": "14f513b2d197bbf061de106591d50be0e1b5efdd28b7b73e3c01a1fd27dc914d"}, {"id": "fls_ybnpe7ppq1vh", "number": "19:11", "link": "unsafety.html#fls_ybnpe7ppq1vh", "checksum": "c476883b58a5e4480fa0505d41dc097727812f40edf56fd7a46f4fd3595ee2f3"}], "informational": false}], "informational": false}, {"title": "Values", "link": "values.html", "sections": [{"id": "fls_94a8v54bufn8", "number": "7", "title": "Values", "link": "values.html", "paragraphs": [{"id": "fls_buyaqara7am4", "number": "7:1", "link": "values.html#fls_buyaqara7am4", "checksum": "1a30c4fd875bd4b58309644a55091eee8d947eb825edf66ca6ed1b979a89b878"}, {"id": "fls_rixdyyc525xp", "number": "7:2", "link": "values.html#fls_rixdyyc525xp", "checksum": "73bb0dbe94c2f521e89fae4c897fc338813c9175ff4600fed13e41c0b9878e30"}, {"id": "fls_m6ctqq70vcxr", "number": "7:3", "link": "values.html#fls_m6ctqq70vcxr", "checksum": "501fd5dc12d09844a612f32f00e4d5a2dedfdf7a1659cf1e4b1e7aa5ab84d7bb"}, {"id": "fls_s231d18x5eay", "number": "7:4", "link": "values.html#fls_s231d18x5eay", "checksum": "d4a5c1906b3bbe1c9d809c9d1156e75673a511153eedc4950f47fb135b6a59a8"}, {"id": "fls_dfr4yqo93fsn", "number": "7:5", "link": "values.html#fls_dfr4yqo93fsn", "checksum": "01045132eff6e0617d4cca46c1cc3f5d88d56776cf683971fc1530459b7f48fe"}, {"id": "fls_eoak5mdl6ma", "number": "7:6", "link": "values.html#fls_eoak5mdl6ma", "checksum": "e4226c8e3ff3c227a9d0de5f8e42ad468c5a93f6fb87c981f7f126d3d5399060"}, {"id": "fls_6lg0oaaopc26", "number": "7:7", "link": "values.html#fls_6lg0oaaopc26", "checksum": "2935b280567bdb6d4a9792e339cac22702fe95059923d9a738c60a7a8548dab5"}], "informational": false}, {"id": "fls_ixjc5jaamx84", "number": "7.1", "title": "Constants", "link": "values.html#constants", "paragraphs": [{"id": "fls_5o5iu4j8in4l", "number": "7.1:1", "link": "values.html#fls_5o5iu4j8in4l", "checksum": "2174a4a8c9a0e42e91119740bc49a39ed632666f931bc9de2607ce70e1542bd8"}, {"id": "fls_3mhj0kkupwuz", "number": "7.1:2", "link": "values.html#fls_3mhj0kkupwuz", "checksum": "7c5a50f4fdf5e813f75ac692c03fc8f4b3ef0e7f8d0ee6e1de095293de8bfffb"}, {"id": "fls_ka4y2yd100dx", "number": "7.1:3", "link": "values.html#fls_ka4y2yd100dx", "checksum": "4716f007f8ab2d62c80effe03cf31b1970b0da6143b16e60aed00dceda659994"}, {"id": "fls_vt9tlkd676ql", "number": "7.1:4", "link": "values.html#fls_vt9tlkd676ql", "checksum": "ff5ba133064323870b5d011bd88ce9eeacc9f115fdaa6244b44b18ee640a1431"}, {"id": "fls_ndmfqxjpvsqy", "number": "7.1:5", "link": "values.html#fls_ndmfqxjpvsqy", "checksum": "ca441fbadf454d310fef0a445ecd27e40458052ffd2566f775fd1f5d49ab6961"}, {"id": "fls_6rxwbbhf5tc5", "number": "7.1:6", "link": "values.html#fls_6rxwbbhf5tc5", "checksum": "195d2e43a2cb6b0474fb0ebaa8190f17c133efecdb317ae5ad83e396aaf05e0b"}, {"id": "fls_vnc3ttnid1qr", "number": "7.1:7", "link": "values.html#fls_vnc3ttnid1qr", "checksum": "ea8a4c823672702b1fff3e67be0d3834bfde988e46a4ab82202acfcc2d7b9898"}, {"id": "fls_deuo1pn8cjd6", "number": "7.1:8", "link": "values.html#fls_deuo1pn8cjd6", "checksum": "9590b37a5fb341bc26220cabf636eb0b9430c183eefc8266362a284afabdcf54"}, {"id": "fls_5x0jv4cgbolx", "number": "7.1:9", "link": "values.html#fls_5x0jv4cgbolx", "checksum": "015386deba230b6b14d0f7cf80bf7dfbacb3ff23137205e63509bf82cc10cb4e"}, {"id": "fls_xezt9hl069h4", "number": "7.1:10", "link": "values.html#fls_xezt9hl069h4", "checksum": "916f9839884f7b71825ecd5be8ae92f6b7ab789a916c47ba1a5f366bd8ac4382"}, {"id": "fls_ndobth7s92if", "number": "7.1:11", "link": "values.html#fls_ndobth7s92if", "checksum": "18ea98ed7ee862889d2d483387c3b1e28a42e39e9d60b7bbc3e65d9e4deff0a5"}], "informational": false}, {"id": "fls_xdvdl2ssnhlo", "number": "7.2", "title": "Statics", "link": "values.html#statics", "paragraphs": [{"id": "fls_ibrmiwfypldh", "number": "7.2:1", "link": "values.html#fls_ibrmiwfypldh", "checksum": "1fc950d02b5b3c40129159c65daf7d001e7f01521a71c3d8b8a2058dbe50c167"}, {"id": "fls_mt94jvoot9dx", "number": "7.2:2", "link": "values.html#fls_mt94jvoot9dx", "checksum": "8c4334c679018baf9392151eb71d12964b85d09d0477dbea3910ea98adb3612f"}, {"id": "fls_k0r2c6uq29tu", "number": "7.2:3", "link": "values.html#fls_k0r2c6uq29tu", "checksum": "5c1b55de587710b67a5131939b84300663f0c0699041210a7ce0779e6c1a0f65"}, {"id": "fls_b6ods85htuyn", "number": "7.2:4", "link": "values.html#fls_b6ods85htuyn", "checksum": "db2fb6ad99eb58cdd6f4bdb9e2edeff34b4c9b422e25781877ba2d6267194842"}, {"id": "fls_doi4z6u55bi7", "number": "7.2:5", "link": "values.html#fls_doi4z6u55bi7", "checksum": "61e4575688b23d6d7db99392e1b544003c08b7a838ac8fc1fdad3b1e44ad8ce6"}, {"id": "fls_74hp208pto22", "number": "7.2:6", "link": "values.html#fls_74hp208pto22", "checksum": "436a9f15d2686b36fb1f179b13f38d0cce872399fc6c8d997896182219ca9b12"}, {"id": "fls_jfde2vg6mtww", "number": "7.2:7", "link": "values.html#fls_jfde2vg6mtww", "checksum": "7594d6fedfa7f00a180909cf5235b4243c8be61026a444da258f79f104bdd93f"}, {"id": "fls_k4tyqb1j6zjo", "number": "7.2:8", "link": "values.html#fls_k4tyqb1j6zjo", "checksum": "ac1f8731f3004fb8442f085915588c449be8d285a8cae244ac37519247a147c9"}, {"id": "fls_t17h5h6a6v4c", "number": "7.2:9", "link": "values.html#fls_t17h5h6a6v4c", "checksum": "ae7960becaff9d4e85d3aa35ebbfdf4c482ac55566c5938d255ec72bb2cfe41e"}, {"id": "fls_yq0hpy4jx2qb", "number": "7.2:10", "link": "values.html#fls_yq0hpy4jx2qb", "checksum": "74a8e2029bbf9068f3842d85c2c37aa40cf499e68bbff4aaad87bbcca3cddcff"}, {"id": "fls_vgidvfwzm4ks", "number": "7.2:11", "link": "values.html#fls_vgidvfwzm4ks", "checksum": "d07bf654cb1e5a9429203f2ebf243ae97b0345768f8f570784f2e53ba60d1a81"}, {"id": "fls_8dcldbvu7lav", "number": "7.2:12", "link": "values.html#fls_8dcldbvu7lav", "checksum": "14ed04b36fe95b827d15d5985c20be8554b5d34cabcbdcff30e24ab1af96c712"}, {"id": "fls_w0nb0mphho7b", "number": "7.2:13", "link": "values.html#fls_w0nb0mphho7b", "checksum": "0bef3205d769452568c2d9b7420b359b46261b2fd90918adcdf762a9b9d97651"}, {"id": "fls_eeocxst9vafn", "number": "7.2:14", "link": "values.html#fls_eeocxst9vafn", "checksum": "c16b08cc3a5ca2e215cad78f4c6f8d9d9c03d11b6737b12ca2cf558d58a77b3e"}, {"id": "fls_47khd5ljsxeq", "number": "7.2:15", "link": "values.html#fls_47khd5ljsxeq", "checksum": "8aa9153a03b15bd583210b61b2721907a729d0f7febdc4e7a31ff91f096d0e47"}, {"id": "fls_dowxbphqvk3n", "number": "7.2:16", "link": "values.html#fls_dowxbphqvk3n", "checksum": "adfd4f4616593d54184002394d94d8724adb27b43f0a4ac9b591831eb3d24ce0"}, {"id": "fls_b5wsmii7vz3v", "number": "7.2:17", "link": "values.html#fls_b5wsmii7vz3v", "checksum": "ae3be52255b3602f2d17694a7c90103ed859c959d8b5e8b02d731dd9ee8ac70f"}], "informational": false}, {"id": "fls_cleoffpn5ew6", "number": "7.3", "title": "Temporaries", "link": "values.html#temporaries", "paragraphs": [{"id": "fls_awpw61yofckz", "number": "7.3:1", "link": "values.html#fls_awpw61yofckz", "checksum": "c643b7ee2f09d4d661349de57526a0d8f6ba3fa1f1d3cf25ce2abb1ca7ad5487"}], "informational": false}, {"id": "fls_gho955gmob73", "number": "7.4", "title": "Variables", "link": "values.html#variables", "paragraphs": [{"id": "fls_hl5tnd9yy252", "number": "7.4:1", "link": "values.html#fls_hl5tnd9yy252", "checksum": "e459e293d2e06ba989b65a863e33bf3d1559d14ba80224385e6471d4187db194"}, {"id": "fls_vgi0gh5zmoiu", "number": "7.4:2", "link": "values.html#fls_vgi0gh5zmoiu", "checksum": "a56061a790ee2cc114f7f43c891827153cacfdd9d5bbdee36e4db521b6d5fc2f"}, {"id": "fls_81dlbula47nu", "number": "7.4:3", "link": "values.html#fls_81dlbula47nu", "checksum": "317f39071a5788d82b4865c063b86490996160f886858c0f19fdba967e4204e8"}, {"id": "fls_3p0sb9ppmg3w", "number": "7.4:4", "link": "values.html#fls_3p0sb9ppmg3w", "checksum": "08b9626baa3159ce1dfdeca36fdc64f24594ba26b6b57c9810b67ee7c84c26cb"}, {"id": "fls_r9km9f969bu8", "number": "7.4:5", "link": "values.html#fls_r9km9f969bu8", "checksum": "13806969584a605aded5db6ac700acea4334fa75cce1409689f2cdc10b30c2c8"}, {"id": "fls_g8etd5lsgn9j", "number": "7.4:6", "link": "values.html#fls_g8etd5lsgn9j", "checksum": "4de69432bc744f7df3566698f62d36feec0eb8432fae9503c73491871c1858d3"}], "informational": false}, {"id": "fls_wttihxen35as", "number": "7.4.1", "title": "Constant Promotion", "link": "values.html#constant-promotion", "paragraphs": [{"id": "fls_udn9lyf3m0z6", "number": "7.4.1:1", "link": "values.html#fls_udn9lyf3m0z6", "checksum": "2ab496292105588acffc417faa7257c109d7d2599887fea194b6276c78d7d9f9"}, {"id": "fls_yvkdcs4pmxjf", "number": "7.4.1:2", "link": "values.html#fls_yvkdcs4pmxjf", "checksum": "0802dcedbdb411093a11433793ec2d81046430a75caa08c88a0652e21e3f2b48"}, {"id": "fls_n570za6a9nqd", "number": "7.4.1:3", "link": "values.html#fls_n570za6a9nqd", "checksum": "7495b43c987ba177e81ed96d19821da97b72ed887800433fa2c3b5d3899da923"}, {"id": "fls_tms5r9f5ogcb", "number": "7.4.1:4", "link": "values.html#fls_tms5r9f5ogcb", "checksum": "c27b3a87d8e551f6925166f12702de6c3b84e10e0560e1124e14b34b75af3571"}, {"id": "fls_bysv5r7iuf5j", "number": "7.4.1:5", "link": "values.html#fls_bysv5r7iuf5j", "checksum": "4b1f204406987d2425c7aa65db5e4321ca60c66f8abe6f59d4b9c954b56369fc"}, {"id": "fls_3h5vr7xk2rrt", "number": "7.4.1:6", "link": "values.html#fls_3h5vr7xk2rrt", "checksum": "26b8f032dee42ea2be31ad066b7ea126c0a123b1038d4a62f29eb01d10f33637"}, {"id": "fls_3bgncwvmumet", "number": "7.4.1:7", "link": "values.html#fls_3bgncwvmumet", "checksum": "75d27ef13729037fd83b4022475756231b8ae7d7944805b47de72178a03c8b1a"}, {"id": "fls_m690b8qg9d9r", "number": "7.4.1:8", "link": "values.html#fls_m690b8qg9d9r", "checksum": "d4d542c7748a3c35fbf6025eac3cfaadc015af1b45fc042ee9cdfe0b8b09c0db"}, {"id": "fls_uf0sg25awre6", "number": "7.4.1:9", "link": "values.html#fls_uf0sg25awre6", "checksum": "8f845fa5e99e7c007d619bef33689d1b260b69d4631f9648c454ffebb40c4360"}, {"id": "fls_o7cqfdnr253y", "number": "7.4.1:10", "link": "values.html#fls_o7cqfdnr253y", "checksum": "b6c301614db85e9f9a3aa268b8e6ec7397cfd563b3d321bedae74884809dc6ab"}, {"id": "fls_ap85svxyuhvg", "number": "7.4.1:11", "link": "values.html#fls_ap85svxyuhvg", "checksum": "3bb8d78cd408d9dd893e63b174a91171c065d65c7708b50a9d029c3bff7c32b1"}], "informational": false}], "informational": false}, {"title": "Types and Traits", "link": "types-and-traits.html", "sections": [{"id": "fls_vgb6ev541b2r", "number": "4", "title": "Types and Traits", "link": "types-and-traits.html", "paragraphs": [], "informational": false}, {"id": "fls_kwsbxmqntrnl", "number": "4.1", "title": "Types", "link": "types-and-traits.html#types", "paragraphs": [{"id": "fls_4rhjpdu4zfqj", "number": "4.1:1", "link": "types-and-traits.html#fls_4rhjpdu4zfqj", "checksum": "0f3224c81474a43ebf7a037ebb226c3b28b450e79a50de818459bb6d93a03b4d"}, {"id": "fls_0yayknfrjkhg", "number": "4.1:2", "link": "types-and-traits.html#fls_0yayknfrjkhg", "checksum": "d7948a2adf90ff0fa015b4f90967c0801c9271d1aaf7f17e291db8a682522035"}], "informational": false}, {"id": "fls_963gsjp2jas2", "number": "4.2", "title": "Type Classification", "link": "types-and-traits.html#type-classification", "paragraphs": [{"id": "fls_c4xe3pkn0n3o", "number": "4.2:1", "link": "types-and-traits.html#fls_c4xe3pkn0n3o", "checksum": "23b6212015d6348a703cb5be2c0d3c0f812bfb0ece7139873025d578f50472c1"}, {"id": "fls_69zyas59o8ff", "number": "4.2:2", "link": "types-and-traits.html#fls_69zyas59o8ff", "checksum": "e9bace1e5151ffdeeff57cb5069120c81735b17734fa05f4c4075277f6e081ad"}, {"id": "fls_65hcyqizo1da", "number": "4.2:3", "link": "types-and-traits.html#fls_65hcyqizo1da", "checksum": "40842ff24d030ea0ccb5075ecd6ec1492cd9d9c98e960ed9563cfe03bb7e2487"}, {"id": "fls_zge99l49az8w", "number": "4.2:4", "link": "types-and-traits.html#fls_zge99l49az8w", "checksum": "cb6e139cbd46fe7899e08fd9f0c9a48a4bccedd925c0a7bcf78f8babca270948"}, {"id": "fls_vizoconv3ir", "number": "4.2:5", "link": "types-and-traits.html#fls_vizoconv3ir", "checksum": "e8e0cdfb96e0c3ecba3291745e9a1299586805ca7b8b0aecf19b7d32f235e8f7"}, {"id": "fls_ne6bgnh1eyrj", "number": "4.2:6", "link": "types-and-traits.html#fls_ne6bgnh1eyrj", "checksum": "25f59f09cdc29f543ccae977ee66e0ee9b0fee1d55202cfa983eabe4f00b16a3"}, {"id": "fls_jvj8l8366kl2", "number": "4.2:7", "link": "types-and-traits.html#fls_jvj8l8366kl2", "checksum": "00ac1f2e576d6d3d14dcb244d363bf14795ddfee222c420efa28a171c91598f2"}, {"id": "fls_eek1jn1rwjh9", "number": "4.2:8", "link": "types-and-traits.html#fls_eek1jn1rwjh9", "checksum": "65b9ca746467c1af24795a49cf507e5a0494d59801db4665214cf5d87fb169db"}, {"id": "fls_s0aduyvz4i7f", "number": "4.2:9", "link": "types-and-traits.html#fls_s0aduyvz4i7f", "checksum": "a23c0b697c2b2e686673f2956a5b9c81a3369d2a7897c67840ba014cc59c625d"}, {"id": "fls_zb5e79ai7w5i", "number": "4.2:10", "link": "types-and-traits.html#fls_zb5e79ai7w5i", "checksum": "b59affa079dfb0e436f28a313ff4e96d3831d765ff0063eb18342f6e749c79a7"}, {"id": "fls_yjp19vt46asy", "number": "4.2:11", "link": "types-and-traits.html#fls_yjp19vt46asy", "checksum": "4eb758fbe24b08d1aee74c97d4f8541b0dbcb444784a6569c21d17094fb49fb1"}, {"id": "fls_xflj5df6upc7", "number": "4.2:12", "link": "types-and-traits.html#fls_xflj5df6upc7", "checksum": "1e5dc2e803a63fd05b7dec479ef1d0add6eea160c45fe290772c02fd26bc89d9"}, {"id": "fls_u43jnp9jnw29", "number": "4.2:13", "link": "types-and-traits.html#fls_u43jnp9jnw29", "checksum": "b85bfd2e2cfc13a7fc78a87c008d62c82d235fb2d2d7e4d188df4acda7e8aac5"}, {"id": "fls_lric8bf631nw", "number": "4.2:14", "link": "types-and-traits.html#fls_lric8bf631nw", "checksum": "454e730423cb4d7f069989e61ff7aa256e85e03a5c1e7b29e64e627e192c47e1"}, {"id": "fls_98djh9avlqc0", "number": "4.2:15", "link": "types-and-traits.html#fls_98djh9avlqc0", "checksum": "e821be0746413ff9f5096aec87f2ce2d467ea6cb27fb68fa64c8a116c0207238"}, {"id": "fls_b3ymsm8dmo4", "number": "4.2:16", "link": "types-and-traits.html#fls_b3ymsm8dmo4", "checksum": "fe0aac8860ab0c5746c0c07b373e29983a82fc0ebd52f6dd2630ace413a9fabb"}, {"id": "fls_9x5atvhdq0j2", "number": "4.2:17", "link": "types-and-traits.html#fls_9x5atvhdq0j2", "checksum": "c36d1f9962298745f389857334fa11b8218d392e0116702a80ad091719503e13"}, {"id": "fls_n5rgqgnxk9to", "number": "4.2:18", "link": "types-and-traits.html#fls_n5rgqgnxk9to", "checksum": "e46c85f680edc5614a12b9207c497460b0042af968c92f40fa5ab637e14571a2"}, {"id": "fls_s7ndqc5sizdy", "number": "4.2:19", "link": "types-and-traits.html#fls_s7ndqc5sizdy", "checksum": "eaf6ddda440baca7044641c33a4f8d9d84b75648732ea1f9dc8bbb44641bbb7a"}, {"id": "fls_jrohsv7hx7yw", "number": "4.2:20", "link": "types-and-traits.html#fls_jrohsv7hx7yw", "checksum": "64386326aff45271fd69d938c23b27ac3d34103a3520b4b76a78cf860663636b"}, {"id": "fls_1kg1mknf4yx7", "number": "4.2:21", "link": "types-and-traits.html#fls_1kg1mknf4yx7", "checksum": "da5f5e5fcdb5726c1a0dabc99f8770f5e3fbae1459f5833ff33532110822caf6"}, {"id": "fls_bw8zutjcteki", "number": "4.2:22", "link": "types-and-traits.html#fls_bw8zutjcteki", "checksum": "22c62b9e8996f6fbd50fec2e75e53a84a790744792c0aa40834de29215569f84"}, {"id": "fls_nqezuc9u6wpn", "number": "4.2:23", "link": "types-and-traits.html#fls_nqezuc9u6wpn", "checksum": "b0d2ad5646194c0d8310df4d3333f7afb79755cea464d60a3fbda29273383ef6"}, {"id": "fls_lh52q6f6snfh", "number": "4.2:24", "link": "types-and-traits.html#fls_lh52q6f6snfh", "checksum": "f1a647d67b3a801d2ab2b7a315771e5d26e67d2662bb331181a88afa5c152bc1"}, {"id": "fls_qqg0uixrd1a4", "number": "4.2:25", "link": "types-and-traits.html#fls_qqg0uixrd1a4", "checksum": "9ca4aa25f308f26f33fb8ec4fe5dec350c1d8526c6675053e5be2719e863556f"}, {"id": "fls_b8ecqp2argmn", "number": "4.2:26", "link": "types-and-traits.html#fls_b8ecqp2argmn", "checksum": "d8cca7522f47f0479ce66bd850d2931ae4f7c4c1d4b198e4aad88f9b90a1ac07"}, {"id": "fls_m5vtcars8aga", "number": "4.2:27", "link": "types-and-traits.html#fls_m5vtcars8aga", "checksum": "21c1d49526e5ca8d23c874a230759bb497548ab543740fce1095850fdc4fcf63"}, {"id": "fls_lw38557rqikt", "number": "4.2:28", "link": "types-and-traits.html#fls_lw38557rqikt", "checksum": "753ab4b03e9c965a6fffd92d30e2769c5a63a344bfb1b7e76971ac8499be82d8"}, {"id": "fls_jxn63ow9xby3", "number": "4.2:29", "link": "types-and-traits.html#fls_jxn63ow9xby3", "checksum": "0dd8bcf2a274d471aaa36ab380441dd3b6ca39976303324ddd118e50013d02dd"}, {"id": "fls_a81tweobvm0p", "number": "4.2:30", "link": "types-and-traits.html#fls_a81tweobvm0p", "checksum": "1fa312839ea42e8a1bbcaecbc879efed22264c8ac233c6cfe5339ac2db24a2b3"}], "informational": true}, {"id": "fls_id66vnaqw0zt", "number": "4.3", "title": "Scalar Types", "link": "types-and-traits.html#scalar-types", "paragraphs": [], "informational": false}, {"id": "fls_tiqp1gxf116z", "number": "4.3.1", "title": "Bool Type", "link": "types-and-traits.html#bool-type", "paragraphs": [{"id": "fls_h5994su1yft3", "number": "4.3.1:1", "link": "types-and-traits.html#fls_h5994su1yft3", "checksum": "7c27f15ca1c523ef1db5071f2a63bedb21181cf04aa94d9878250ca53b434971"}, {"id": "fls_v8atmrwz6wzk", "number": "4.3.1:2", "link": "types-and-traits.html#fls_v8atmrwz6wzk", "checksum": "930adef3b1506fb337f66675f973e54769ff8fca1db32c838183ef22a2422029"}, {"id": "fls_iye7ho2ynyhn", "number": "4.3.1:3", "link": "types-and-traits.html#fls_iye7ho2ynyhn", "checksum": "9858c13d3708357c30873cd608d2b3383dcc3035f0dd687ef3896541dd1695fd"}, {"id": "fls_7nd5tixyqir8", "number": "4.3.1:4", "link": "types-and-traits.html#fls_7nd5tixyqir8", "checksum": "ac65b3d93d3994e5d0068317e02275db13c2c1913d48494bb2de79b24ec72eec"}, {"id": "fls_w2dzqq54fjhb", "number": "4.3.1:5", "link": "types-and-traits.html#fls_w2dzqq54fjhb", "checksum": "1d12935dda46819ad41ab1cb8f82b49105c7771bd832109bde39a210a366c23f"}, {"id": "fls_ufmd38hi9t9y", "number": "4.3.1:6", "link": "types-and-traits.html#fls_ufmd38hi9t9y", "checksum": "b94216bb8df77b4a82ab94c901933b3b6d6d065364960315dab51522e1c8c31e"}, {"id": "fls_5allcjkjnon2", "number": "4.3.1:7", "link": "types-and-traits.html#fls_5allcjkjnon2", "checksum": "99e00eb99e3b71db0f644227f19ee709ef82e2c6f386deaa36c2a399f7979685"}, {"id": "fls_3bibysz95ktn", "number": "4.3.1:8", "link": "types-and-traits.html#fls_3bibysz95ktn", "checksum": "09b53e4da86723e2bd2011d45d92331dab43e0172cfef5543bb7c74a77d1fc62"}, {"id": "fls_fxq19dqtmifj", "number": "4.3.1:9", "link": "types-and-traits.html#fls_fxq19dqtmifj", "checksum": "6cb77addba9281730832f2bbc4ddd2082c3530a2c17878646b47db6c10dd80cf"}, {"id": "fls_drhpcwoblcux", "number": "4.3.1:10", "link": "types-and-traits.html#fls_drhpcwoblcux", "checksum": "98f3e91912ee93fd291d169f31739e7c2c7b38d644d27336dfff508ebb7dfb99"}, {"id": "fls_v86qrsqcs3nd", "number": "4.3.1:11", "link": "types-and-traits.html#fls_v86qrsqcs3nd", "checksum": "8a7e7470fb69b8816a48fa5e95512a5456665e561c4134f050a155f985eca72b"}, {"id": "fls_dd49lb2k3erc", "number": "4.3.1:12", "link": "types-and-traits.html#fls_dd49lb2k3erc", "checksum": "1c7470e26077ea7a073dc2a1445c678484af7588bb3235586c9091f71603cc7e"}, {"id": "fls_t6ef5x4x5poi", "number": "4.3.1:13", "link": "types-and-traits.html#fls_t6ef5x4x5poi", "checksum": "32464bf4444f9dc7d6b1679119e45d5351fa00d79dea5e7ad487d3ddf76fc881"}, {"id": "fls_kqtgjgn1hqrj", "number": "4.3.1:14", "link": "types-and-traits.html#fls_kqtgjgn1hqrj", "checksum": "bd7ead8e9ea1b7683e87bfdc7788222d47c759c66c031ef374dda05805dbd6d3"}, {"id": "fls_ws15ilzf8n6z", "number": "4.3.1:15", "link": "types-and-traits.html#fls_ws15ilzf8n6z", "checksum": "9a544d8e0daca2681dbcfedf72121255fea14ab0944581480d57fba0890b95fe"}, {"id": "fls_ni4mgq3mouek", "number": "4.3.1:16", "link": "types-and-traits.html#fls_ni4mgq3mouek", "checksum": "f3145e61ced027d25036f3200ca5bbb0618bc0477cb9b3603a1413652b3ac917"}, {"id": "fls_6c9ax4qsr1gy", "number": "4.3.1:17", "link": "types-and-traits.html#fls_6c9ax4qsr1gy", "checksum": "ac4e3a21890e3221845618cc38dbace293fd0e68d017770aa5e7e78e2f5ab08e"}, {"id": "fls_sqcgvpr4egtx", "number": "4.3.1:18", "link": "types-and-traits.html#fls_sqcgvpr4egtx", "checksum": "2385dd82b0f0349c33f8b5af00d47e3440494e1faa8b63553050feb2a8459e67"}, {"id": "fls_9ys0itbp4okd", "number": "4.3.1:19", "link": "types-and-traits.html#fls_9ys0itbp4okd", "checksum": "441b5d0aa5e6c402c6beb7fde327f5827525511f230577ba7c6fe5a18d28539c"}, {"id": "fls_b46gbyid15zx", "number": "4.3.1:20", "link": "types-and-traits.html#fls_b46gbyid15zx", "checksum": "9480e4048cd08398ae0f13cb516a29613f3e742d3d99bc779578398b92272c24"}, {"id": "fls_f8ag276ecbze", "number": "4.3.1:21", "link": "types-and-traits.html#fls_f8ag276ecbze", "checksum": "166b43ef343f45896926b2fbb09d952a0c23d942c2a113f0860ffe979b8437b3"}, {"id": "fls_twwjcrcfirdi", "number": "4.3.1:22", "link": "types-and-traits.html#fls_twwjcrcfirdi", "checksum": "ca76c9fea33319ebf91566f9a4e1cadfeadce5282e098010c5ef67471d744f45"}, {"id": "fls_wovu7330vdrq", "number": "4.3.1:23", "link": "types-and-traits.html#fls_wovu7330vdrq", "checksum": "a2d98732aced3240075311e8a7738d2601f8a1e817a29a0b1d2d0ada3525abea"}, {"id": "fls_7xopdco6iy74", "number": "4.3.1:24", "link": "types-and-traits.html#fls_7xopdco6iy74", "checksum": "d3df0e58549b33e4a804eced95611bbf74505e40e62fb919b895a104ee2cdd93"}, {"id": "fls_nb5cb6en2p5w", "number": "4.3.1:25", "link": "types-and-traits.html#fls_nb5cb6en2p5w", "checksum": "5689110f0fe899e7c5dff9675885b2c735444de21ad35f3a1ba69dc76fb327b6"}, {"id": "fls_gd28wfcfs2pv", "number": "4.3.1:26", "link": "types-and-traits.html#fls_gd28wfcfs2pv", "checksum": "699e51364da08d56388376c014ee12beee95aeae6302a1234dc8c567774a82e4"}, {"id": "fls_67a7p57nzbul", "number": "4.3.1:27", "link": "types-and-traits.html#fls_67a7p57nzbul", "checksum": "1a3ae601414d01796aaf6b322e02874830121fe0ab9b9bf076606a5329772a19"}, {"id": "fls_cq0qunw51m94", "number": "4.3.1:28", "link": "types-and-traits.html#fls_cq0qunw51m94", "checksum": "581c5941548d5821d9a034095690bb3c131fc9ba9dffcc9a2e85aee1b8d8cd88"}, {"id": "fls_o1e4tnh7v3db", "number": "4.3.1:29", "link": "types-and-traits.html#fls_o1e4tnh7v3db", "checksum": "d2b050f0a32abdd45281470a08c3d6427a82b2db396f1dc7ff325370895077b6"}, {"id": "fls_6vnv3ygisjr", "number": "4.3.1:30", "link": "types-and-traits.html#fls_6vnv3ygisjr", "checksum": "2e6d782fc4fad2d1e3f018b424d77847ffab9b7df0a4aa34218e81df37554d42"}, {"id": "fls_s6m9abmmtc9i", "number": "4.3.1:31", "link": "types-and-traits.html#fls_s6m9abmmtc9i", "checksum": "b50023ba7c3a0f6e5d60727a63cc05db279f39c522363df22b0dd73fe324e5ff"}, {"id": "fls_s19vu65z96y5", "number": "4.3.1:32", "link": "types-and-traits.html#fls_s19vu65z96y5", "checksum": "3737ba54b255bd74767127bd9ba5b403b1b0aa6d139fffa616bf524ed612b7e0"}, {"id": "fls_2d4aqspw0wlt", "number": "4.3.1:33", "link": "types-and-traits.html#fls_2d4aqspw0wlt", "checksum": "cb35c3709e468c678e9fd298ff75cab85223c9b69520bb115ece6c07f023f163"}, {"id": "fls_msjo2zd67zn1", "number": "4.3.1:34", "link": "types-and-traits.html#fls_msjo2zd67zn1", "checksum": "d296305e4aa3dbcbb0a1effad25118ecc1395dc6b1b33bb86459f96b9531fd3e"}, {"id": "fls_w1oti03tm1y6", "number": "4.3.1:35", "link": "types-and-traits.html#fls_w1oti03tm1y6", "checksum": "1b458f804645a74fb0e0cc1aa355732c67172fd9e75c6ea28177303787c8e662"}, {"id": "fls_9gqd7eevbknt", "number": "4.3.1:36", "link": "types-and-traits.html#fls_9gqd7eevbknt", "checksum": "a86bf07935fb2c1b2bb4874fe3bcea6b86ba3cf8ed709399288fd302b122b3ef"}, {"id": "fls_r4o2rmhqg4br", "number": "4.3.1:37", "link": "types-and-traits.html#fls_r4o2rmhqg4br", "checksum": "a6a7931eaf2965dfdac9021f4d8a09873dfdc6abf5f148f661c3ec557f154dcd"}, {"id": "fls_1n7p6ij1dpm", "number": "4.3.1:38", "link": "types-and-traits.html#fls_1n7p6ij1dpm", "checksum": "b64f4f41ff39543e9a12b4c7c0a292db35c6c2a3b0ae33722cf7b5ec71852ce1"}, {"id": "fls_4x27kfiodb8", "number": "4.3.1:39", "link": "types-and-traits.html#fls_4x27kfiodb8", "checksum": "ed886b0d040a0415b87015806dc7a838d193bb1e227659410f6314a41feff113"}, {"id": "fls_me6bf9m2ypt", "number": "4.3.1:40", "link": "types-and-traits.html#fls_me6bf9m2ypt", "checksum": "865ad088e423aa6b12fff0c2f48ac1e92557389ec93b6582e7643d28c1707ed5"}, {"id": "fls_2j659ns8wop4", "number": "4.3.1:41", "link": "types-and-traits.html#fls_2j659ns8wop4", "checksum": "24889b443c8a3583df4a999169a461d56a81737c8776d003ea3e7968c2670737"}, {"id": "fls_d09l2rl0161l", "number": "4.3.1:42", "link": "types-and-traits.html#fls_d09l2rl0161l", "checksum": "7b78ae0a4fa328edf20bd1ee52ca050c8a7913beeafc6215a0e8f6cbbab2a236"}, {"id": "fls_2sd39mj05mb9", "number": "4.3.1:43", "link": "types-and-traits.html#fls_2sd39mj05mb9", "checksum": "938539d9e20602a05fe699126091fadcead0ba21c69cbe4a271eb3dc3c3ed250"}], "informational": false}, {"id": "fls_wrvjizrqf3po", "number": "4.3.2", "title": "Char Type", "link": "types-and-traits.html#char-type", "paragraphs": [{"id": "fls_vnwbs0exbwcn", "number": "4.3.2:1", "link": "types-and-traits.html#fls_vnwbs0exbwcn", "checksum": "de3e486bd6bfec35ccbc18c244a07b0400fb7afad866d64ad99471d9b5fb3d51"}, {"id": "fls_juysxea25owj", "number": "4.3.2:2", "link": "types-and-traits.html#fls_juysxea25owj", "checksum": "f9760034f4a5a74b8badb11d87b6f5ef432d7e91e80802425e89bbbbe5a20476"}], "informational": false}, {"id": "fls_qwljwqr07slp", "number": "4.3.3", "title": "Numeric Types", "link": "types-and-traits.html#numeric-types", "paragraphs": [], "informational": false}, {"id": "fls_b4xporvr64s", "number": "4.3.3.1", "title": "Floating Point Types", "link": "types-and-traits.html#floating-point-types", "paragraphs": [{"id": "fls_30yny2xb9b6b", "number": "4.3.3.1:1", "link": "types-and-traits.html#fls_30yny2xb9b6b", "checksum": "9f2ef3098e38ced762fc72ca6a4bc1dec698a33084b9c778e96312d3ffe46bf1"}, {"id": "fls_yqflrq9s6p6n", "number": "4.3.3.1:2", "link": "types-and-traits.html#fls_yqflrq9s6p6n", "checksum": "cec08d9131666b39b8d3688a587aa88db5e36d49b4c55c6fa925a6d90e9338b8"}], "informational": false}, {"id": "fls_3qnpv2z7yjil", "number": "4.3.3.2", "title": "Integer Types", "link": "types-and-traits.html#integer-types", "paragraphs": [{"id": "fls_cokwseo3nnr", "number": "4.3.3.2:1", "link": "types-and-traits.html#fls_cokwseo3nnr", "checksum": "c91bb9a77a65e19d420bace1cde89e8b2bd3a6b0a5554c2e2d6c5d4b2b8a6a45"}, {"id": "fls_vk1skn6ek36u", "number": "4.3.3.2:2", "link": "types-and-traits.html#fls_vk1skn6ek36u", "checksum": "49357a257118ef34e9a0f670c27a41b0d29de7f40242b56aed6fcbd777d0759b"}, {"id": "fls_iikexw8ps6mk", "number": "4.3.3.2:3", "link": "types-and-traits.html#fls_iikexw8ps6mk", "checksum": "78b32c0312f4dd50cbc257f858487dcb75f68d6bdf006abab97290c56ce8d417"}, {"id": "fls_cavasxxlgs7g", "number": "4.3.3.2:4", "link": "types-and-traits.html#fls_cavasxxlgs7g", "checksum": "b24ffd36ee78bac00ba6eef084b0bbaf5b5915c937f0c8172e3068776977c8c1"}, {"id": "fls_7sx92xsjx3pl", "number": "4.3.3.2:5", "link": "types-and-traits.html#fls_7sx92xsjx3pl", "checksum": "9ad8b2b92eaa9597eb9af4e33da92fe59cbffaa97c890e6086435f557e43fb50"}, {"id": "fls_q9f95uet7gq4", "number": "4.3.3.2:6", "link": "types-and-traits.html#fls_q9f95uet7gq4", "checksum": "b1e3f5d5efc7e3aacb83d9a6a8f313f9e28d458979266baee253365b8454376a"}, {"id": "fls_yjb3kzijd19v", "number": "4.3.3.2:7", "link": "types-and-traits.html#fls_yjb3kzijd19v", "checksum": "a9f676afe50447b4889e6b3ba228a3314e819d297389ab57b60c289c43192d76"}, {"id": "fls_75lntwhg20l", "number": "4.3.3.2:8", "link": "types-and-traits.html#fls_75lntwhg20l", "checksum": "278b33ab9e405eba53e40103ea42d106398186c9d15ba8ee1995c7a728b563d3"}, {"id": "fls_p2shoji3xg5a", "number": "4.3.3.2:9", "link": "types-and-traits.html#fls_p2shoji3xg5a", "checksum": "9dec417eca723a851afba4b1fbf40615b81b0b680eaadd85d45cecd136fda1a3"}, {"id": "fls_fsyt05u9y4sl", "number": "4.3.3.2:10", "link": "types-and-traits.html#fls_fsyt05u9y4sl", "checksum": "b4b087216df02d090a94bd841759e6bcd8283ef3c137cfe09f138ae17ddd5071"}, {"id": "fls_p9ffvtajr832", "number": "4.3.3.2:11", "link": "types-and-traits.html#fls_p9ffvtajr832", "checksum": "f3bf5c08e43865c62017a10e1b7306084527a18b37767d4c100314a6e0c1c2f6"}, {"id": "fls_j6xan9f8udw7", "number": "4.3.3.2:12", "link": "types-and-traits.html#fls_j6xan9f8udw7", "checksum": "ec17bdab7274d1767c59acd310b20c0c01f2da8a8b7716c404d17f1cc07484ba"}, {"id": "fls_4t39p3ibkzu7", "number": "4.3.3.2:13", "link": "types-and-traits.html#fls_4t39p3ibkzu7", "checksum": "fd5107a41862e15e8bf69245f1ca0a14bd39123490c3f4b6af8e4a980f4ec4ea"}, {"id": "fls_egfoxke0lzje", "number": "4.3.3.2:14", "link": "types-and-traits.html#fls_egfoxke0lzje", "checksum": "3c6952dc4550a4388ae5861a5f0f6e10a791a23bc1f697d783dbac6b3281a6ec"}, {"id": "fls_4c4qpel1tbqs", "number": "4.3.3.2:15", "link": "types-and-traits.html#fls_4c4qpel1tbqs", "checksum": "27d4b5e93c8a23fea7497ff03639ed73f72387be79afe5bb2ef004898a152b78"}, {"id": "fls_t9oyfmgqka6u", "number": "4.3.3.2:16", "link": "types-and-traits.html#fls_t9oyfmgqka6u", "checksum": "adc4ea56adb80d9c82a72320b251471c3e69a20eb1fca729a0ba24c65f115ede"}], "informational": false}, {"id": "fls_fbchw64p6n2x", "number": "4.4", "title": "Sequence Types", "link": "types-and-traits.html#sequence-types", "paragraphs": [], "informational": false}, {"id": "fls_uj0kpjwyld60", "number": "4.4.1", "title": "Array Types", "link": "types-and-traits.html#array-types", "paragraphs": [{"id": "fls_fx7b3qv3ghca", "number": "4.4.1:1", "link": "types-and-traits.html#fls_fx7b3qv3ghca", "checksum": "a0e28c81206aaca44d668b56c00cdb06b2afcb1957637817f895be1919625591"}, {"id": "fls_pkts1p2dnxo", "number": "4.4.1:2", "link": "types-and-traits.html#fls_pkts1p2dnxo", "checksum": "3842e56226791bfaa21a704608441353c9476f08a8ad83197c785ec4b705b6f6"}, {"id": "fls_imr2jx6cbuzq", "number": "4.4.1:3", "link": "types-and-traits.html#fls_imr2jx6cbuzq", "checksum": "a35f25747728747c44c65bc742d89871b9d8fe529451364d18b141b6ef1d5512"}, {"id": "fls_r8nqxry2dlww", "number": "4.4.1:4", "link": "types-and-traits.html#fls_r8nqxry2dlww", "checksum": "101671326f28fb3bee73ae610842cfdd0b7e1f09d04855a7041d29d72688b48d"}, {"id": "fls_9vjijqi9w8wn", "number": "4.4.1:5", "link": "types-and-traits.html#fls_9vjijqi9w8wn", "checksum": "c944934ba19e6c4ebe12cd9453b9f0747ab302ecb654be487cbd6b29567cefc9"}], "informational": false}, {"id": "fls_vpbikb73dw4k", "number": "4.4.2", "title": "Slice Types", "link": "types-and-traits.html#slice-types", "paragraphs": [{"id": "fls_ftvua2hlvr08", "number": "4.4.2:1", "link": "types-and-traits.html#fls_ftvua2hlvr08", "checksum": "1dec4d96c2383bcd59d32a561f257ee89281b2f6079093fa3efe7c807374bfdc"}, {"id": "fls_acgtczhk8ci0", "number": "4.4.2:2", "link": "types-and-traits.html#fls_acgtczhk8ci0", "checksum": "c1765e314370989e27d28ca48d5189af4457e08b3395ee284192a5060a4dd3b7"}, {"id": "fls_5gl67ftc3m21", "number": "4.4.2:3", "link": "types-and-traits.html#fls_5gl67ftc3m21", "checksum": "fa8054851ecf8587aa441b48e5bc8cc1e660b60f0c0542b45df2390c5f7fcea4"}, {"id": "fls_nsny832ap4v1", "number": "4.4.2:4", "link": "types-and-traits.html#fls_nsny832ap4v1", "checksum": "12398a33d4062f70cdd542b837f7158f3015de99e28242ccb150779a45e440da"}], "informational": false}, {"id": "fls_4agmmu5al6gt", "number": "4.4.3", "title": "Str Type", "link": "types-and-traits.html#str-type", "paragraphs": [{"id": "fls_wlnoq1qoq2kr", "number": "4.4.3:1", "link": "types-and-traits.html#fls_wlnoq1qoq2kr", "checksum": "4741170fc77c3caa889d2b61c37ca8bf858103e8dfb471f5259bf3977733f2d3"}, {"id": "fls_1xa6fas6laha", "number": "4.4.3:2", "link": "types-and-traits.html#fls_1xa6fas6laha", "checksum": "b76cf1e29c346895c7a64d1ebecd1285879329d64c6a566ec2b62a40874a44bf"}, {"id": "fls_yu7r2077n9m7", "number": "4.4.3:3", "link": "types-and-traits.html#fls_yu7r2077n9m7", "checksum": "c7d00bb480fddeed611bf8a4b29accfc6ba24e9843f57af35f84b92b3d91af55"}, {"id": "fls_wacoqrtzvrwu", "number": "4.4.3:4", "link": "types-and-traits.html#fls_wacoqrtzvrwu", "checksum": "31fd188232e88dbd814ef19206f91c486077f1d7d40d1682c48152055d1131ee"}], "informational": false}, {"id": "fls_4ckl3n2ko3i4", "number": "4.4.4", "title": "Tuple Types", "link": "types-and-traits.html#tuple-types", "paragraphs": [{"id": "fls_bn7wmf681ngt", "number": "4.4.4:1", "link": "types-and-traits.html#fls_bn7wmf681ngt", "checksum": "0e048e80d2703d29c830283c91c9363981bcaef3c5713dc5917214cdc99e0a32"}, {"id": "fls_s9a36zsrfqew", "number": "4.4.4:2", "link": "types-and-traits.html#fls_s9a36zsrfqew", "checksum": "f90d6cbe2f05a1690b19b882378e0c5577f7f70fd8a6b6c0a9ec01d3c19d14b2"}], "informational": false}, {"id": "fls_wdec78luqh5b", "number": "4.5", "title": "Abstract Data Types", "link": "types-and-traits.html#abstract-data-types", "paragraphs": [], "informational": false}, {"id": "fls_szibmtfv117b", "number": "4.5.1", "title": "Enum Types", "link": "types-and-traits.html#enum-types", "paragraphs": [{"id": "fls_gbdd37seqoab", "number": "4.5.1:1", "link": "types-and-traits.html#fls_gbdd37seqoab", "checksum": "41a04bcc279a52fe4a0d644f08c7974945044713d151a621e622736caa79f834"}, {"id": "fls_il9a1olqmu38", "number": "4.5.1:2", "link": "types-and-traits.html#fls_il9a1olqmu38", "checksum": "6ec5fbcdfa7bc0e2e0fa597521d52d44f4cdb850f944944654faecd563781897"}, {"id": "fls_wqtfwl88vujq", "number": "4.5.1:3", "link": "types-and-traits.html#fls_wqtfwl88vujq", "checksum": "b933c4ceea18830211cb015864f5ffc6aa7466256320ccd3eaefe96a2ad46495"}, {"id": "fls_g5qle7xzaoif", "number": "4.5.1:4", "link": "types-and-traits.html#fls_g5qle7xzaoif", "checksum": "8fadd9f05034847f538c7ea8c1f61165df9bb4c87e711d4b4a4cfc7ea2d2aa76"}, {"id": "fls_hp5frc752dam", "number": "4.5.1:6", "link": "types-and-traits.html#fls_hp5frc752dam", "checksum": "dbf85d1dbaa9e65e9ee411a69098c8ff2c3a6b0a9372e68ed8ea0f1f7e0e87bc"}, {"id": "fls_pijczoq4k9ij", "number": "4.5.1:7", "link": "types-and-traits.html#fls_pijczoq4k9ij", "checksum": "d3209c56e335f945e3a200cfdae47cd6e4386e6a13052c36cd96cb27f665ee36"}, {"id": "fls_x7nh42on06bg", "number": "4.5.1:8", "link": "types-and-traits.html#fls_x7nh42on06bg", "checksum": "2a4978216847213cc9cc89c486697babf78f3a02b2df4a408a19dc42fcd37c62"}, {"id": "fls_duqbzvpuehvv", "number": "4.5.1:9", "link": "types-and-traits.html#fls_duqbzvpuehvv", "checksum": "f7fc7e37e48e1d9beec7400be5000d3f97bbaf12e49da3f3db7b8478895128d1"}, {"id": "fls_ly183pj4fkgh", "number": "4.5.1:10", "link": "types-and-traits.html#fls_ly183pj4fkgh", "checksum": "9276d9aa4b9d2a7a1fb0208d0f4b3b20336b00b99e8f85483048116ed6672925"}, {"id": "fls_w7sggezgq9o4", "number": "4.5.1:11", "link": "types-and-traits.html#fls_w7sggezgq9o4", "checksum": "5d6b1172331de835223d74f329d2a086a76f5d59d89900a06cb5022f9e99e1c2"}, {"id": "fls_93l5o6qar5p2", "number": "4.5.1:12", "link": "types-and-traits.html#fls_93l5o6qar5p2", "checksum": "864ba312cb813aaa2c285d358764732ca53afa7b59f44b4a26e959f8ed5d1906"}, {"id": "fls_t36rk3wikq28", "number": "4.5.1:13", "link": "types-and-traits.html#fls_t36rk3wikq28", "checksum": "c34f5ea6b85e16a716ab014d804766dbd0f681269e22f5fb113072b3aac7b40a"}, {"id": "fls_8ajw5trd23wi", "number": "4.5.1:14", "link": "types-and-traits.html#fls_8ajw5trd23wi", "checksum": "788a386db9bca5ece0658ad379be6e9720a7502dacc604b6b7199c62d0600a86"}, {"id": "fls_w9xj26ej869w", "number": "4.5.1:15", "link": "types-and-traits.html#fls_w9xj26ej869w", "checksum": "0e045bf46b8ce2319bc906617e1284401c1431e818f333adc0a52da4a692a36f"}, {"id": "fls_wqbuof7kxsrg", "number": "4.5.1:16", "link": "types-and-traits.html#fls_wqbuof7kxsrg", "checksum": "b34358c9f5a38221a3128afbba7bcac38af1eb7ef2bfea390d1ddf04c523b76e"}, {"id": "fls_f046du2fkgr6", "number": "4.5.1:17", "link": "types-and-traits.html#fls_f046du2fkgr6", "checksum": "36a62c297e5ac360801a96f184401b9074a30dbdd36cc171b0c48cbb24144c7d"}], "informational": false}, {"id": "fls_9ucqbbd0s2yo", "number": "4.5.2", "title": "Struct Types", "link": "types-and-traits.html#struct-types", "paragraphs": [{"id": "fls_g1azfj548136", "number": "4.5.2:1", "link": "types-and-traits.html#fls_g1azfj548136", "checksum": "a39b4fadca9c6209a8eb00ee7b0ba2b4d03af79dbb8378379345c8836b5bc7a5"}, {"id": "fls_r885av95eivp", "number": "4.5.2:2", "link": "types-and-traits.html#fls_r885av95eivp", "checksum": "99627103e41c406457ad5ca125407339483d91f6d8d598e7da9524f857d3c7c1"}, {"id": "fls_auurdv1zvzb", "number": "4.5.2:3", "link": "types-and-traits.html#fls_auurdv1zvzb", "checksum": "ddd7e64188789d0613207e30279466396e9387d4c837a9a700715c38aae1c3cb"}, {"id": "fls_vce7w0904du5", "number": "4.5.2:4", "link": "types-and-traits.html#fls_vce7w0904du5", "checksum": "943e0f1a6572313a255e14bc95a0134edbbb021f031683bfb43b344ea0342979"}], "informational": false}, {"id": "fls_fmdn7n7s413d", "number": "4.5.3", "title": "Union Types", "link": "types-and-traits.html#union-types", "paragraphs": [{"id": "fls_nskmnzq95yqm", "number": "4.5.3:1", "link": "types-and-traits.html#fls_nskmnzq95yqm", "checksum": "5367bfc0baaa05cd86579ae2623abf07a4ae259cb95582431afbf551136ca939"}, {"id": "fls_1caus8ybmfli", "number": "4.5.3:2", "link": "types-and-traits.html#fls_1caus8ybmfli", "checksum": "92febc08b74e580a8eccc9d1233d135ee4e59041e9ad926ad857fd36d22ce44e"}, {"id": "fls_zjg2q6ljyxhy", "number": "4.5.3:3", "link": "types-and-traits.html#fls_zjg2q6ljyxhy", "checksum": "ab71eea2a3c33b3222811c295c4dc83aba111daba6b56f8fe94c3669bbf808b7"}, {"id": "fls_hltnhnzuahve", "number": "4.5.3:4", "link": "types-and-traits.html#fls_hltnhnzuahve", "checksum": "0ce4ccb5dd76241dbc1faba186867478c49bd6a850f7c9a71d95a3a7a4e406ad"}, {"id": "fls_jwgsckdtn13c", "number": "4.5.3:5", "link": "types-and-traits.html#fls_jwgsckdtn13c", "checksum": "8837c04fd5dbb01d08026d2cafaaafd8ab2287f60e984d4fb1792425c0089812"}, {"id": "fls_sxzknxozjxtc", "number": "4.5.3:6", "link": "types-and-traits.html#fls_sxzknxozjxtc", "checksum": "5959734aa5fddd303916db4c88648c4a0f7e216586b20e2ccc01f56a202afa58"}, {"id": "fls_vgnk01sxacnx", "number": "4.5.3:7", "link": "types-and-traits.html#fls_vgnk01sxacnx", "checksum": "f66f5248019636eefd0a3849d4710a419847eb4da4ffab3af715a08c5c7f4c02"}, {"id": "fls_bqhh3zhakjsu", "number": "4.5.3:8", "link": "types-and-traits.html#fls_bqhh3zhakjsu", "checksum": "686f435b04adf578310fab3434b24706f77b75b4b7c9a189b81799cd033a4244"}], "informational": false}, {"id": "fls_hbbek3z4wtcs", "number": "4.6", "title": "Function Types", "link": "types-and-traits.html#function-types", "paragraphs": [], "informational": false}, {"id": "fls_xd2oxlebhs14", "number": "4.6.1", "title": "Closure Types", "link": "types-and-traits.html#closure-types", "paragraphs": [{"id": "fls_bsykgnbatpmi", "number": "4.6.1:1", "link": "types-and-traits.html#fls_bsykgnbatpmi", "checksum": "a13570cc647e2fe3f7daa098e9b82168dd6556c25ddc1bfb7dc12f25e9eae54e"}, {"id": "fls_zfj4l8bigdg0", "number": "4.6.1:2", "link": "types-and-traits.html#fls_zfj4l8bigdg0", "checksum": "94c7fbe22c296aee3cf9ce06a1da0aac2dca927a95d394cc715b6fe61265f90e"}, {"id": "fls_bn0ueivujnqk", "number": "4.6.1:3", "link": "types-and-traits.html#fls_bn0ueivujnqk", "checksum": "6509cd4ac82ace29c2f9a29046a8fc164311d5de6ffc2956bb878dbbe701c889"}, {"id": "fls_u01kt5glbuz8", "number": "4.6.1:4", "link": "types-and-traits.html#fls_u01kt5glbuz8", "checksum": "494dee99ed22dbebd0d0ac76a1fa787b15f999f68855fefcdb9cd603d22489da"}, {"id": "fls_3jeootwe6ucu", "number": "4.6.1:5", "link": "types-and-traits.html#fls_3jeootwe6ucu", "checksum": "2a45235137530e81bb8f2281cf9deca9542bed2f95dd65858edb54f18e243164"}, {"id": "fls_63jqtyw0rz8c", "number": "4.6.1:6", "link": "types-and-traits.html#fls_63jqtyw0rz8c", "checksum": "3bd0fbff2aa919bc05fdb9a7a301baf9be62bfb0c6ebf65df45c88713582d37f"}, {"id": "fls_3c4g9njja5s5", "number": "4.6.1:7", "link": "types-and-traits.html#fls_3c4g9njja5s5", "checksum": "b0e41c86f561de826ef136c25682433aef7f5636c0352e3d8756137e1446ab27"}, {"id": "fls_2nuhy0ujgq18", "number": "4.6.1:8", "link": "types-and-traits.html#fls_2nuhy0ujgq18", "checksum": "db27fe1b97d6577e59cc0f00cdd1fab1ddfa6645da18b3a83e52010a01ff8caa"}, {"id": "fls_5jh07heok8sy", "number": "4.6.1:9", "link": "types-and-traits.html#fls_5jh07heok8sy", "checksum": "929a4c4a21afe2d35b50abb7d7250277785667e33d2692b7c52fa2b6eecd4608"}], "informational": false}, {"id": "fls_airvr79xkcag", "number": "4.6.2", "title": "Function Item Types", "link": "types-and-traits.html#function-item-types", "paragraphs": [{"id": "fls_t24iojx7yc23", "number": "4.6.2:1", "link": "types-and-traits.html#fls_t24iojx7yc23", "checksum": "ba8be95a7ac75beeb55990710d7b232e90aaefa46fbc965fc5ee97ff250687b1"}, {"id": "fls_sas3ahcshnrh", "number": "4.6.2:2", "link": "types-and-traits.html#fls_sas3ahcshnrh", "checksum": "6e4e49c145170caf512a89a36aab453064036bab3e47a5b7551d769810a454a8"}, {"id": "fls_liwnzwu1el1i", "number": "4.6.2:3", "link": "types-and-traits.html#fls_liwnzwu1el1i", "checksum": "1d99ab5849365bb230cbc4a782bb93bc919bb2f07c62b63a7f63b380e66ac908"}, {"id": "fls_e9x4f7qxvvjv", "number": "4.6.2:4", "link": "types-and-traits.html#fls_e9x4f7qxvvjv", "checksum": "d667ede8ab6893069841a33b2cf0e47b19b05d5fa2872b3bebec06b8852063d1"}, {"id": "fls_1941wid94hlg", "number": "4.6.2:5", "link": "types-and-traits.html#fls_1941wid94hlg", "checksum": "8acd4d89f0c821d4aa22815001aca5bc9e977dc1e2712743e735bcf6aed3c248"}], "informational": false}, {"id": "fls_3i4ou0dq64ny", "number": "4.7", "title": "Indirection Types", "link": "types-and-traits.html#indirection-types", "paragraphs": [], "informational": false}, {"id": "fls_xztr1kebz8bo", "number": "4.7.1", "title": "Function Pointer Types", "link": "types-and-traits.html#function-pointer-types", "paragraphs": [{"id": "fls_v2wrytr3t04h", "number": "4.7.1:1", "link": "types-and-traits.html#fls_v2wrytr3t04h", "checksum": "276ef1476e7ceccaf33821c0dfadd47de95e12defa884eb6eb9da1bcd89311d4"}, {"id": "fls_5dd7icjcl3nt", "number": "4.7.1:2", "link": "types-and-traits.html#fls_5dd7icjcl3nt", "checksum": "d51b172a0b8675c28c409e4d5ea5bce285ae17d936f4f4af0f5a80373b22ada7"}, {"id": "fls_b0smxrqqms1e", "number": "4.7.1:3", "link": "types-and-traits.html#fls_b0smxrqqms1e", "checksum": "2d95eda82b646831bce5a240ff70e298c0a039e3ac40cb6198cb334c8e980d60"}, {"id": "fls_hbn1l42xmr3h", "number": "4.7.1:4", "link": "types-and-traits.html#fls_hbn1l42xmr3h", "checksum": "4c515636546df76626dc2ce272596af3a6ef395d6dc61f52cf315cd82732ef87"}, {"id": "fls_g1iyvw7upbnh", "number": "4.7.1:5", "link": "types-and-traits.html#fls_g1iyvw7upbnh", "checksum": "4107a933398a84d0b8af66fd006db6a72808511b4af3e4c47b71b0dc795fc8f8"}, {"id": "fls_8gpvnjfvlyad", "number": "4.7.1:6", "link": "types-and-traits.html#fls_8gpvnjfvlyad", "checksum": "5860cccedbc0ac25984e9603b83f1259c4af97cecc8084f5c140164f6865c5e1"}, {"id": "fls_kci6yk0p8onn", "number": "4.7.1:7", "link": "types-and-traits.html#fls_kci6yk0p8onn", "checksum": "d2541a3280f1d894821db0f1648bbadb29e2c211db75fba997f3d2832ee527c4"}, {"id": "fls_52thmi9hnoks", "number": "4.7.1:8", "link": "types-and-traits.html#fls_52thmi9hnoks", "checksum": "3a43cc40eddf138b65ff58d01174bf0f377be62e4998881c0e34b316af1831fb"}], "informational": false}, {"id": "fls_ppd1xwve3tr7", "number": "4.7.2", "title": "Raw Pointer Types", "link": "types-and-traits.html#raw-pointer-types", "paragraphs": [{"id": "fls_rpbhr0xukbx9", "number": "4.7.2:1", "link": "types-and-traits.html#fls_rpbhr0xukbx9", "checksum": "1854f3b6844b0c2671dfc60d36c4b998358f29c120b234bec672c72aaed507cc"}, {"id": "fls_bywfgdaqcwfa", "number": "4.7.2:2", "link": "types-and-traits.html#fls_bywfgdaqcwfa", "checksum": "f69e8334863b9e2b7f3bf48725d48a8adf59c48c3dd802341bfd611dcc03d690"}, {"id": "fls_8uwffaszercs", "number": "4.7.2:3", "link": "types-and-traits.html#fls_8uwffaszercs", "checksum": "82bd1634fa77a9d6d3b725fb993892cad15fbe87ece6afe59b2f171f2a7721bf"}, {"id": "fls_hrum767l6dte", "number": "4.7.2:4", "link": "types-and-traits.html#fls_hrum767l6dte", "checksum": "6bfba3dbe307a3b99ae68a7d7ad6ee97648893f1aaa0a786262bff92bea33aa5"}, {"id": "fls_k6ues2936pjq", "number": "4.7.2:5", "link": "types-and-traits.html#fls_k6ues2936pjq", "checksum": "9a80943af437a0fd5e67c5bd656fadb3ce16e6d7b59218c8685ae1e0a2c4d9a4"}], "informational": false}, {"id": "fls_142vncdktbin", "number": "4.7.3", "title": "Reference Types", "link": "types-and-traits.html#reference-types", "paragraphs": [{"id": "fls_twhq24s8kchh", "number": "4.7.3:1", "link": "types-and-traits.html#fls_twhq24s8kchh", "checksum": "e9a8f32c3bfd274934e7c471016afe023d42728464a9c6ad6934f0738cf79a22"}, {"id": "fls_w4nba7whzfr2", "number": "4.7.3:2", "link": "types-and-traits.html#fls_w4nba7whzfr2", "checksum": "15503795396e6eb08752e159af664fcaf59c4c7eb0d754480fbef0251d74b28d"}, {"id": "fls_ie0avzljmxfm", "number": "4.7.3:3", "link": "types-and-traits.html#fls_ie0avzljmxfm", "checksum": "989727897539b6eef42387c5f240b13d4ab9aa9f269a111e510879ada1ae0960"}, {"id": "fls_15zdiqsm1q3p", "number": "4.7.3:4", "link": "types-and-traits.html#fls_15zdiqsm1q3p", "checksum": "fef244abbffea76d85673c8b768c80e3998096122c5887ffacd05a346939ff67"}, {"id": "fls_csdjfwczlzfd", "number": "4.7.3:5", "link": "types-and-traits.html#fls_csdjfwczlzfd", "checksum": "823004ffa0528651765ee5a2a23b26f7a33b4255a564f742c3923781a6b70102"}, {"id": "fls_guzuist7ucib", "number": "4.7.3:6", "link": "types-and-traits.html#fls_guzuist7ucib", "checksum": "19c8db7f4aaa3f7224c336d60e3c57d17ef21d93e5ececa9fbb1d09175936b0f"}, {"id": "fls_vaas9kns4zo6", "number": "4.7.3:7", "link": "types-and-traits.html#fls_vaas9kns4zo6", "checksum": "2784f42b85409ac61fe875e01d21162c086f0411280475dac703bf1a2ae98fc8"}, {"id": "fls_n6ffcms5pr0r", "number": "4.7.3:8", "link": "types-and-traits.html#fls_n6ffcms5pr0r", "checksum": "585dd4699fdeac3e280d38797a9c9f9565c4194543b3c1c048a0ef33913a5e66"}, {"id": "fls_ezh8aq6fmdvz", "number": "4.7.3:9", "link": "types-and-traits.html#fls_ezh8aq6fmdvz", "checksum": "fef35c5ee01a70578d0ee80139418ab1d555636b9d7a83d7cf5bcf38dc454153"}], "informational": false}, {"id": "fls_1ompd93w7c9f", "number": "4.8", "title": "Trait Types", "link": "types-and-traits.html#trait-types", "paragraphs": [], "informational": false}, {"id": "fls_3xqobbu7wfsf", "number": "4.8.1", "title": "Impl Trait Types", "link": "types-and-traits.html#impl-trait-types", "paragraphs": [{"id": "fls_a6zlvyxpgsew", "number": "4.8.1:1", "link": "types-and-traits.html#fls_a6zlvyxpgsew", "checksum": "9013893b3cd5acfa5451f4ad18860a989a9ad70cd891c50e846503ea7f274dcf"}, {"id": "fls_ieyqx5vzas2m", "number": "4.8.1:2", "link": "types-and-traits.html#fls_ieyqx5vzas2m", "checksum": "16cb713fd246c7e18f528a4ffd5338a0fbce00bff8b4aa68d64f137a4d38b4c1"}, {"id": "fls_ecjhei7ecwaj", "number": "4.8.1:3", "link": "types-and-traits.html#fls_ecjhei7ecwaj", "checksum": "0dc7132c60e97eae3fe8c4763fb5b0ee4e27b69d33014e5a64c902c25e992bba"}], "informational": false}, {"id": "fls_qa98qdi42orq", "number": "4.8.2", "title": "Trait Object Types", "link": "types-and-traits.html#trait-object-types", "paragraphs": [{"id": "fls_sgrvona1nb6h", "number": "4.8.2:1", "link": "types-and-traits.html#fls_sgrvona1nb6h", "checksum": "7e198679726fb24effe560d32f6ed44994be67d60bad4c175f3da2c84b40b0d9"}, {"id": "fls_9z8oleh0wdel", "number": "4.8.2:2", "link": "types-and-traits.html#fls_9z8oleh0wdel", "checksum": "3124f0bbb81e269149020178aaf1e90f668b07b973c22882933da2f505d2ecc5"}, {"id": "fls_s0oy2c8t4yz9", "number": "4.8.2:3", "link": "types-and-traits.html#fls_s0oy2c8t4yz9", "checksum": "6257637cc04d7a1e7f32788a155b69595ebd5872f7e7366b15a24bc0cb01c3ec"}, {"id": "fls_ccouug6b9ohu", "number": "4.8.2:4", "link": "types-and-traits.html#fls_ccouug6b9ohu", "checksum": "8afd9b150960eee9cad7ad77a00f4d78e50ae87ac73c9a1198b12f79aa8ff09e"}, {"id": "fls_88b9bmhra55f", "number": "4.8.2:5", "link": "types-and-traits.html#fls_88b9bmhra55f", "checksum": "80503a5bbbf247afc4589e84831bd9388ca01a63f6f99729d27e31db000127ad"}], "informational": false}, {"id": "fls_3pbipk8ki18d", "number": "4.9", "title": "Other Types", "link": "types-and-traits.html#other-types", "paragraphs": [], "informational": false}, {"id": "fls_s45k21yn4qur", "number": "4.9.1", "title": "Inferred Types", "link": "types-and-traits.html#inferred-types", "paragraphs": [{"id": "fls_xdtgr5toulpb", "number": "4.9.1:1", "link": "types-and-traits.html#fls_xdtgr5toulpb", "checksum": "45bfb5537d2e07e5037870981039b3817a257151920d49f5a8939e10ff7a0815"}, {"id": "fls_3abhsuaa8nas", "number": "4.9.1:2", "link": "types-and-traits.html#fls_3abhsuaa8nas", "checksum": "1d559796531e476dc3d85e19f7dc9e8b9e85dc14e75d7e22f7fd0d9cd3e0753c"}, {"id": "fls_hbxljhbhuohy", "number": "4.9.1:3", "link": "types-and-traits.html#fls_hbxljhbhuohy", "checksum": "a61fcb03ca3303b870d5a7bf9412d89fa8c8a999d7275efa89ada3e204974f57"}, {"id": "fls_vxlr9zcqiovy", "number": "4.9.1:4", "link": "types-and-traits.html#fls_vxlr9zcqiovy", "checksum": "f472521e59830a8a2807dd85f1821de685a14eda76e2e46a580818dcb6e86b8d"}, {"id": "fls_ge9vc8jxrl1n", "number": "4.9.1:5", "link": "types-and-traits.html#fls_ge9vc8jxrl1n", "checksum": "ea3bbe8655934a40bc687f54cf38d663ed640a043e0a93e57b63097ed7b378ec"}, {"id": "fls_ybyqjfami1q5", "number": "4.9.1:6", "link": "types-and-traits.html#fls_ybyqjfami1q5", "checksum": "1dd464889720d923a6efc632871acb0d7f1fa780fec361617485a85c8eaef334"}, {"id": "fls_9d8wbugmar1m", "number": "4.9.1:7", "link": "types-and-traits.html#fls_9d8wbugmar1m", "checksum": "8d410f326c8e233e5773842346d9f3d9783f75fad42585cb76ed490065470f5f"}], "informational": false}, {"id": "fls_xjcxbajhzp3d", "number": "4.9.2", "title": "Type Parameters", "link": "types-and-traits.html#type-parameters", "paragraphs": [{"id": "fls_dciivxghxdlo", "number": "4.9.2:1", "link": "types-and-traits.html#fls_dciivxghxdlo", "checksum": "e42bea781e368e51e6a841e48a716968a41dbbc44fbbebc2447280a69d1d25fb"}], "informational": false}, {"id": "fls_98lnexk53ru4", "number": "4.9.3", "title": "Never Type", "link": "types-and-traits.html#never-type", "paragraphs": [{"id": "fls_4u0v5uy95pyf", "number": "4.9.3:1", "link": "types-and-traits.html#fls_4u0v5uy95pyf", "checksum": "c2d4459a9d3124b6eb26bd54c1d0a2741f70e371c43c323dca07a05f424933ba"}, {"id": "fls_xmtc10qzw0ui", "number": "4.9.3:2", "link": "types-and-traits.html#fls_xmtc10qzw0ui", "checksum": "77b18aa146d69730f692da58a1c8e9a4953cad14ad3289ca106e7a071fc98a83"}, {"id": "fls_22e8quna7ed5", "number": "4.9.3:3", "link": "types-and-traits.html#fls_22e8quna7ed5", "checksum": "a31ec075c01c1bf5fe6b674ca2fa9dd54e2f8402cde5540b9faa80e0cb2b6d9a"}], "informational": false}, {"id": "fls_olbj67eyxz2k", "number": "4.9.4", "title": "Parenthesized Types", "link": "types-and-traits.html#parenthesized-types", "paragraphs": [{"id": "fls_1dvo1epstrdv", "number": "4.9.4:1", "link": "types-and-traits.html#fls_1dvo1epstrdv", "checksum": "676be38dcb5032a5b66c95c6e0c85e8d4f049bf01933b118a0967607b5fbbf6c"}], "informational": false}, {"id": "fls_kgvleup5mdhq", "number": "4.10", "title": "Type Aliases", "link": "types-and-traits.html#type-aliases", "paragraphs": [{"id": "fls_bibigic4jjad", "number": "4.10:1", "link": "types-and-traits.html#fls_bibigic4jjad", "checksum": "25fd89d90847d3d474a7da20e5aba2d29f31f8f7e17c2aeb98d2a62683b49efc"}, {"id": "fls_rosdkeck5ax2", "number": "4.10:2", "link": "types-and-traits.html#fls_rosdkeck5ax2", "checksum": "8ad56706cf3948a37e7738f416f5065e7f1335a2443524ff1c3ebea736ac75fa"}, {"id": "fls_drxl7u3etfp9", "number": "4.10:3", "link": "types-and-traits.html#fls_drxl7u3etfp9", "checksum": "9db2e47ca9bc68f63d03dab529165f2062950ff28398da808d41f83989833ac9"}], "informational": false}, {"id": "fls_7pby13muw48o", "number": "4.11", "title": "Representation", "link": "types-and-traits.html#representation", "paragraphs": [], "informational": false}, {"id": "fls_g1z6bpyjqxkz", "number": "4.11.1", "title": "Type Layout", "link": "types-and-traits.html#type-layout", "paragraphs": [{"id": "fls_kdbq02iguzgl", "number": "4.11.1:1", "link": "types-and-traits.html#fls_kdbq02iguzgl", "checksum": "ec574263a104f5220dbeec30e0118b25ac35e37d6a614ad3bc5cd6e58681532d"}, {"id": "fls_muxfn9soi47l", "number": "4.11.1:2", "link": "types-and-traits.html#fls_muxfn9soi47l", "checksum": "9fce4f034a0c87f5dc66db7b3e507d3b8d4ccadac4c182b83669e0c361da3f13"}, {"id": "fls_1pbwigq6f3ha", "number": "4.11.1:3", "link": "types-and-traits.html#fls_1pbwigq6f3ha", "checksum": "07e54228ecadbf143bd9829ea2af5cd942e05ae28f70c0bf04ece785266561b3"}, {"id": "fls_bk3nm2n47afu", "number": "4.11.1:4", "link": "types-and-traits.html#fls_bk3nm2n47afu", "checksum": "3d989ed20cee6bc9220874459a4ea548220f9e445447a73f0477590d4aaa0908"}, {"id": "fls_z3i758jshvhx", "number": "4.11.1:5", "link": "types-and-traits.html#fls_z3i758jshvhx", "checksum": "509cfea09ca67250d7134d86496da2f7ddccb10a30cc84e8fe0614e40a946388"}, {"id": "fls_uixe1ruv52be", "number": "4.11.1:6", "link": "types-and-traits.html#fls_uixe1ruv52be", "checksum": "955ca7ce99e58bbbb5f65e867911434aaa20ce3d4b5859af83963a91b4528556"}, {"id": "fls_7at60xlxm9u4", "number": "4.11.1:7", "link": "types-and-traits.html#fls_7at60xlxm9u4", "checksum": "596b59e14342649bfc88ebf54917a1503fc3ecb4de2d025b3df3a6048d0516ba"}, {"id": "fls_395247pkxv48", "number": "4.11.1:8", "link": "types-and-traits.html#fls_395247pkxv48", "checksum": "65566a896e699d4581061cbfa9881b61ebbce21a79ba3ae60cfebc267d506a43"}, {"id": "fls_tbe9sc75timc", "number": "4.11.1:9", "link": "types-and-traits.html#fls_tbe9sc75timc", "checksum": "ea4301cd4ad66803e16f0b4f0d2b5c2a336a7cf59a8a11148379d67b5d3371e0"}, {"id": "fls_7jaqx33re3hg", "number": "4.11.1:10", "link": "types-and-traits.html#fls_7jaqx33re3hg", "checksum": "16ddd66245cad2e311b9193a332f01ac5e3875c354baf1b3bebb93bc4dd430af"}, {"id": "fls_asys0iz6m0md", "number": "4.11.1:11", "link": "types-and-traits.html#fls_asys0iz6m0md", "checksum": "56149efe39f3ec896b5d41b41f82964eebe02b0be71a3cda53763e854c3559ed"}, {"id": "fls_wfv5vcxl2lc7", "number": "4.11.1:12", "link": "types-and-traits.html#fls_wfv5vcxl2lc7", "checksum": "711825cc745b9af39e7e4048a16c47f77125cf76d5cbe980e5ff38079d76320f"}, {"id": "fls_x8dfw50z9c", "number": "4.11.1:13", "link": "types-and-traits.html#fls_x8dfw50z9c", "checksum": "e999468acaca0c1905fc4050b53eecbc0ba5d19207fe6a97efd97bad0ba0f84e"}, {"id": "fls_nyxnnlwmt5gu", "number": "4.11.1:14", "link": "types-and-traits.html#fls_nyxnnlwmt5gu", "checksum": "4d8795302b12790cc45fa4ebd52923e953f775313a4540fe398a33d90911f943"}, {"id": "fls_lwmrljw9m0pb", "number": "4.11.1:15", "link": "types-and-traits.html#fls_lwmrljw9m0pb", "checksum": "0824d734bae0a452fabd30f7eebe1ce756436f484b63cb76f82a47710b2b2613"}, {"id": "fls_pzi6izljfv0f", "number": "4.11.1:16", "link": "types-and-traits.html#fls_pzi6izljfv0f", "checksum": "f3191b0a3434aec33dea3707cfa15d73aa4eed96e7edc9ef18c8d26970af27f2"}, {"id": "fls_7cjbxleo998q", "number": "4.11.1:17", "link": "types-and-traits.html#fls_7cjbxleo998q", "checksum": "b8f0794e107a5077c3c243a841267feca917797abb0af99397715c0652488ec7"}, {"id": "fls_veotnstzigw2", "number": "4.11.1:18", "link": "types-and-traits.html#fls_veotnstzigw2", "checksum": "93a93b729d2fc10096d6f3e153b0d420ed95d0a2c40e7b3766a6775b99f2d23b"}, {"id": "fls_nmoqk7jo1kzf", "number": "4.11.1:19", "link": "types-and-traits.html#fls_nmoqk7jo1kzf", "checksum": "b65cf13de25acfcffa5571a788c21ffc81a25f4caf34236efd82d429143e4f38"}, {"id": "fls_gd7wozpn2ecp", "number": "4.11.1:20", "link": "types-and-traits.html#fls_gd7wozpn2ecp", "checksum": "5c51e84731e68ffbfb71d7770138e0e073c19250eef8f79cfe653382420ed1eb"}, {"id": "fls_18ke90udyp67", "number": "4.11.1:21", "link": "types-and-traits.html#fls_18ke90udyp67", "checksum": "a50cf2c5f56fb453ff79b573e1b12129846b5614280b059f31282bdbad00120a"}, {"id": "fls_nrqg8i3fmpm4", "number": "4.11.1:22", "link": "types-and-traits.html#fls_nrqg8i3fmpm4", "checksum": "16f17b053148dcb88c3d4eac54d2fa3ab5c26241239c5f849b5e78a7c1987c27"}, {"id": "fls_e5hivr6m5s3h", "number": "4.11.1:23", "link": "types-and-traits.html#fls_e5hivr6m5s3h", "checksum": "2875aa4e4c755754de18f56c5cc62a1f1dc459dbabf0d399d69338748e6c76a7"}, {"id": "fls_hlbsjggfxnt2", "number": "4.11.1:24", "link": "types-and-traits.html#fls_hlbsjggfxnt2", "checksum": "10f4ec2a3b2055e8ac3f6ac122c55a3d72a69b32bc92531cb8cd3174405fc276"}, {"id": "fls_sdrb0k2r18my", "number": "4.11.1:25", "link": "types-and-traits.html#fls_sdrb0k2r18my", "checksum": "e182b27b475774c568aecdb1bb2f1070177f14e235e96672e4884e9085b0e263"}, {"id": "fls_gt3tkbn4bsa6", "number": "4.11.1:26", "link": "types-and-traits.html#fls_gt3tkbn4bsa6", "checksum": "69bc4664319d5665fede7b3cce71149d020a6355095a53a2e4628588ed83b8a2"}, {"id": "fls_njvdevz0xqc0", "number": "4.11.1:27", "link": "types-and-traits.html#fls_njvdevz0xqc0", "checksum": "bda0b012a16d3a292ca3bd3cd3bf7397fc037ec2df84e2d98d42f8caad457108"}], "informational": false}, {"id": "fls_ohhsmifo0urd", "number": "4.11.2", "title": "Type Representation", "link": "types-and-traits.html#type-representation", "paragraphs": [{"id": "fls_mpqlyi3lgrfv", "number": "4.11.2:1", "link": "types-and-traits.html#fls_mpqlyi3lgrfv", "checksum": "5f5949a619afc73e47aec91fbc3a9a63a26a1c89ac23fff54dedd659fa5ce152"}, {"id": "fls_9dhnanv21y9z", "number": "4.11.2:2", "link": "types-and-traits.html#fls_9dhnanv21y9z", "checksum": "b57e3b6dad3a8e0cb95ec2f29b9c0c03d35a3d2274ce1372f790c18e6d8fe08a"}, {"id": "fls_3dwtkr7vzha0", "number": "4.11.2:3", "link": "types-and-traits.html#fls_3dwtkr7vzha0", "checksum": "9af98560b964faa10575d6b41e63eab6392b21e562bd53d52334986e8d562170"}, {"id": "fls_q465p1xuzxi", "number": "4.11.2:4", "link": "types-and-traits.html#fls_q465p1xuzxi", "checksum": "4e17b1a0b34e4bf31d8a8074de82b29eab2771c248d198c7505d85d025d02401"}, {"id": "fls_hrsdn21jmgx2", "number": "4.11.2:5", "link": "types-and-traits.html#fls_hrsdn21jmgx2", "checksum": "5f34cbfe6622d2c818a60366091bc5da0bc271de40adb90bbb62a83edca10e7e"}, {"id": "fls_ergdb18tpx25", "number": "4.11.2:6", "link": "types-and-traits.html#fls_ergdb18tpx25", "checksum": "6d966d386110f51effa3166dbdfd2297301ac38191e2cf2c2fb7bd2786dfaec6"}, {"id": "fls_8s1vddh8vdhy", "number": "4.11.2:7", "link": "types-and-traits.html#fls_8s1vddh8vdhy", "checksum": "e149df36aa01e86286388dbbe81e921138ff3db34c7e3b70fe56471e82478501"}, {"id": "fls_b005bktrkrxy", "number": "4.11.2:8", "link": "types-and-traits.html#fls_b005bktrkrxy", "checksum": "eccb8cf4151d93a2f40c470c83debcdb0664c35fb9b1a56d77688b9bbc34fa14"}, {"id": "fls_7plbkqlmed0r", "number": "4.11.2:9", "link": "types-and-traits.html#fls_7plbkqlmed0r", "checksum": "2df37a1590825b869d3fe88027b64189cf4a81a9bf29a7fbcb2ba1790f600026"}, {"id": "fls_ml4khttq3w5k", "number": "4.11.2:10", "link": "types-and-traits.html#fls_ml4khttq3w5k", "checksum": "ab1548f30cb5de39a5164639b856c80192fe4565c992ebc857d91f330cfd95b1"}, {"id": "fls_9q2iqzbup8oy", "number": "4.11.2:11", "link": "types-and-traits.html#fls_9q2iqzbup8oy", "checksum": "7705e77c0b72bbab2b260c177130bc9c9b2b0cd780adfef1c71bef4a3fa35b1c"}, {"id": "fls_fsbf6ist38ix", "number": "4.11.2:12", "link": "types-and-traits.html#fls_fsbf6ist38ix", "checksum": "bcb966f534ed9405fc751a9c095cd83a0ebf9e78d42f0fa542522fc9ba0ec64f"}, {"id": "fls_qkkc8x2oghst", "number": "4.11.2:13", "link": "types-and-traits.html#fls_qkkc8x2oghst", "checksum": "6ea20905fb18b0e4a39823e4d29c64d3000f65f803a757758399867d375784b8"}], "informational": false}, {"id": "fls_xc1hof4qbf6p", "number": "4.11.2.1", "title": "Enum Type Representation", "link": "types-and-traits.html#enum-type-representation", "paragraphs": [{"id": "fls_p0c62ejo1u1t", "number": "4.11.2.1:1", "link": "types-and-traits.html#fls_p0c62ejo1u1t", "checksum": "3eb2acc0e91b94225e6e44043b9ed3ef348d1fbdfb8db38506d619d240c6f6e5"}, {"id": "fls_efp1kfgkpba8", "number": "4.11.2.1:2", "link": "types-and-traits.html#fls_efp1kfgkpba8", "checksum": "9223cf2e73ff1760ca4c9edcf7ea6c2b6a71a16c836006c862557a4a50880a0b"}, {"id": "fls_s9c0a0lg6c0p", "number": "4.11.2.1:3", "link": "types-and-traits.html#fls_s9c0a0lg6c0p", "checksum": "596c70e3ed03568cc8842491654b253cff2dd3c53ecff886f8790626e79cdf54"}, {"id": "fls_slhvf3gmqz4h", "number": "4.11.2.1:4", "link": "types-and-traits.html#fls_slhvf3gmqz4h", "checksum": "a91c1cca73e27a37a40cfe16ebf7b3dd4618e680e133ba6257ba1c08b26b66a6"}, {"id": "fls_u1zy06510m56", "number": "4.11.2.1:5", "link": "types-and-traits.html#fls_u1zy06510m56", "checksum": "fea4e03795d124973a8ffab094f6ee265a8f520b32a2c7d748015882a86761cc"}, {"id": "fls_ryvqkcx48u74", "number": "4.11.2.1:6", "link": "types-and-traits.html#fls_ryvqkcx48u74", "checksum": "8a55fc830de2323e466a47edb68b3963f8dbb9972e1194ecb80a9c6b4a9252fd"}, {"id": "fls_zhle0rb0vhpc", "number": "4.11.2.1:7", "link": "types-and-traits.html#fls_zhle0rb0vhpc", "checksum": "9511193dd174fc3bafe80e8350dddde4679a8741fb947fe3f5e1e891a33d51ae"}, {"id": "fls_45f57s1gmmh5", "number": "4.11.2.1:8", "link": "types-and-traits.html#fls_45f57s1gmmh5", "checksum": "f51fdfab79671ea2955e16f13e207e87820a37d5f55b1d4c22064de5c137211a"}, {"id": "fls_hz012yus6b4g", "number": "4.11.2.1:9", "link": "types-and-traits.html#fls_hz012yus6b4g", "checksum": "b8004c9524d9dcc6e7c1fad6f95241fbb7388c13ce2a105eea1f0fe9fc97517a"}, {"id": "fls_q5akku2idrwh", "number": "4.11.2.1:10", "link": "types-and-traits.html#fls_q5akku2idrwh", "checksum": "b6f79b18180060bbc48e3b28c798cfabb1fbe4261d4f29db7e66461a870e1b05"}, {"id": "fls_r6o1wv76yw6m", "number": "4.11.2.1:11", "link": "types-and-traits.html#fls_r6o1wv76yw6m", "checksum": "7f5298c7fcf4553ee2096af2930625f9d951363c4f6529b7d5d99c07b1fc520f"}, {"id": "fls_3k1tcfxp0g63", "number": "4.11.2.1:12", "link": "types-and-traits.html#fls_3k1tcfxp0g63", "checksum": "939150187e841861875019dc485b2aa948610bdabcf75995a8afad5299edfc9c"}, {"id": "fls_ebs77rxvk9st", "number": "4.11.2.1:13", "link": "types-and-traits.html#fls_ebs77rxvk9st", "checksum": "89652dc80a444cd6f5989de7e2a59fcbee6155ba69450db9b25c7c463673bdf4"}, {"id": "fls_k907i6w83s2", "number": "4.11.2.1:14", "link": "types-and-traits.html#fls_k907i6w83s2", "checksum": "8bea878c1256e24db0fc455c3c525bca9c6c94300cfac8d7f432673f4a43fafd"}], "informational": false}, {"id": "fls_rjxpof29a3nl", "number": "4.11.2.2", "title": "Struct Type Representation", "link": "types-and-traits.html#struct-type-representation", "paragraphs": [{"id": "fls_jr9dykj6rydn", "number": "4.11.2.2:1", "link": "types-and-traits.html#fls_jr9dykj6rydn", "checksum": "5f76aa9810ba03c28ebf2942db3a8fb181ab22d0b664086601393227aa7bc9eb"}, {"id": "fls_6ck71twmnbg5", "number": "4.11.2.2:2", "link": "types-and-traits.html#fls_6ck71twmnbg5", "checksum": "5fc0a7214a5fa354bcf5cb9aca684565b666321cce8849cf8e89065c73dca2bc"}, {"id": "fls_hydq3pvm00bn", "number": "4.11.2.2:3", "link": "types-and-traits.html#fls_hydq3pvm00bn", "checksum": "cc7a74a98eb6db165a74e65d78a53928cd6ceb8d9b8f47c5549d190d9c561b5d"}, {"id": "fls_yzcdffahxcz", "number": "4.11.2.2:4", "link": "types-and-traits.html#fls_yzcdffahxcz", "checksum": "f0a3247f449084aa9aae9debf4ffa6a6913bb680bf0b458cb343993f72476848"}, {"id": "fls_t2yqmphfd6he", "number": "4.11.2.2:5", "link": "types-and-traits.html#fls_t2yqmphfd6he", "checksum": "f655a5cbd5d73a7e395bd286c59614f96f179cfba822ade23467a58dd59c9416"}, {"id": "fls_fa5nkvu07jlp", "number": "4.11.2.2:6", "link": "types-and-traits.html#fls_fa5nkvu07jlp", "checksum": "8f137c8f4826a9313a42e8c5bec10771adb0f8414465461fd20d604736c77eea"}, {"id": "fls_x2pkmgbp63xx", "number": "4.11.2.2:7", "link": "types-and-traits.html#fls_x2pkmgbp63xx", "checksum": "1d2016f00c240d05addd5fab89f965d3641505505bfb01110d95a59a9d0abfda"}, {"id": "fls_y6dwc1ndm395", "number": "4.11.2.2:8", "link": "types-and-traits.html#fls_y6dwc1ndm395", "checksum": "a43584acfcb4f9504ce4581592588e3c52f9f07bc3fac6200626820608fe115a"}, {"id": "fls_2npku94ookdn", "number": "4.11.2.2:9", "link": "types-and-traits.html#fls_2npku94ookdn", "checksum": "03a369fe556766892948f430b4527499cd07a737e8ebb566d9f4935b1ed0bd81"}, {"id": "fls_h7nvs25rsi0y", "number": "4.11.2.2:10", "link": "types-and-traits.html#fls_h7nvs25rsi0y", "checksum": "53b32f8e3a420b85e3831feb7488281662c227e49e7585de6de3f2147d00ec6d"}, {"id": "fls_iu93vpyihrpj", "number": "4.11.2.2:11", "link": "types-and-traits.html#fls_iu93vpyihrpj", "checksum": "81829e6f383a4c65151f020b3440763a7261c3898230a6504f0d83bbb62f8f40"}, {"id": "fls_7sjkej5otxo", "number": "4.11.2.2:12", "link": "types-and-traits.html#fls_7sjkej5otxo", "checksum": "779b7205751c55010c330675d65578fe47e6bdaefe5a76eef9dc878a6ad61921"}, {"id": "fls_gwhceoy0m3or", "number": "4.11.2.2:13", "link": "types-and-traits.html#fls_gwhceoy0m3or", "checksum": "83a4d8e45980a24abbd901d57911b4c082699c53464ebbe23837f6862ff654c0"}, {"id": "fls_hvkalvr4e2v0", "number": "4.11.2.2:14", "link": "types-and-traits.html#fls_hvkalvr4e2v0", "checksum": "cc35a963cac35f4ca35b83a2c99092463e9f24c42b164f201487fd81193c4138"}], "informational": false}, {"id": "fls_cmq8ogs84ivh", "number": "4.11.2.3", "title": "Union Type Representation", "link": "types-and-traits.html#union-type-representation", "paragraphs": [{"id": "fls_opz1p1neldsg", "number": "4.11.2.3:1", "link": "types-and-traits.html#fls_opz1p1neldsg", "checksum": "7acef59265b9dc0eb9021e3c4144a4243c0f3bcc0119c1cd151745c380b1bd69"}, {"id": "fls_y5qtvbx5m90g", "number": "4.11.2.3:2", "link": "types-and-traits.html#fls_y5qtvbx5m90g", "checksum": "151cb09b57de0325104c84d42d1aac2b8865f4dc1fdbf7fc0da0db0967ba3270"}], "informational": false}, {"id": "fls_j02707n615z0", "number": "4.12", "title": "Type Model", "link": "types-and-traits.html#type-model", "paragraphs": [], "informational": false}, {"id": "fls_3gapgqys3ceb", "number": "4.12.1", "title": "Recursive Types", "link": "types-and-traits.html#recursive-types", "paragraphs": [{"id": "fls_z22std1crl49", "number": "4.12.1:1", "link": "types-and-traits.html#fls_z22std1crl49", "checksum": "740cfb5bd47f58876ee5586174ee7d3acae1e4bdfac31a402c4461aafee6966f"}, {"id": "fls_eddnwlr0rz59", "number": "4.12.1:2", "link": "types-and-traits.html#fls_eddnwlr0rz59", "checksum": "3f12892eabfac9dd07124c6ca395e4ab531b1edab32e93dbf13a9236a105def9"}], "informational": false}, {"id": "fls_exe4zodlwfez", "number": "4.12.2", "title": "Type Unification", "link": "types-and-traits.html#type-unification", "paragraphs": [{"id": "fls_ryvdhkgm7vzj", "number": "4.12.2:1", "link": "types-and-traits.html#fls_ryvdhkgm7vzj", "checksum": "5df68e7a28d0bf034a911d0f1ebabc63d83df1f144975513612741de324e087a"}, {"id": "fls_67vzrx6dw68h", "number": "4.12.2:2", "link": "types-and-traits.html#fls_67vzrx6dw68h", "checksum": "8efb96431fa13308cf8430377b0cc06be4e7e65b313828a429bfd56b64fbb69b"}, {"id": "fls_aie0tr62vhw5", "number": "4.12.2:3", "link": "types-and-traits.html#fls_aie0tr62vhw5", "checksum": "2cefde97b95cdce903b2bb16f1b7f2bb843cd1947a51d99f03b6edc576e8a815"}, {"id": "fls_3u7ue6xzuv9m", "number": "4.12.2:4", "link": "types-and-traits.html#fls_3u7ue6xzuv9m", "checksum": "a1074c8cfb8f682fa21dc2aa4c3d2b500a67a107b90901fd69a32bd3ea7f487d"}, {"id": "fls_tiiw5wktrnf7", "number": "4.12.2:5", "link": "types-and-traits.html#fls_tiiw5wktrnf7", "checksum": "930299ef90063f38b5762819de8b999c9d6d47c338fb35b2fea53ba6308b392c"}, {"id": "fls_eoebldkkbqw0", "number": "4.12.2:6", "link": "types-and-traits.html#fls_eoebldkkbqw0", "checksum": "f1514e494d536e424cc53a6d932b2f0efeae9c0c1c9d38cdff61bcb32368c8be"}, {"id": "fls_16zdp8paki5p", "number": "4.12.2:7", "link": "types-and-traits.html#fls_16zdp8paki5p", "checksum": "9ce44d0db04150b232d3c66c01e88cb2a18d590a22685dfff432835fbeb60264"}, {"id": "fls_pgrltacdvzv2", "number": "4.12.2:8", "link": "types-and-traits.html#fls_pgrltacdvzv2", "checksum": "ca8ea0205df206f0258c062e6a5214044e0cea21feb89cea071059c7e56920ea"}, {"id": "fls_fty3fvt0fk9g", "number": "4.12.2:9", "link": "types-and-traits.html#fls_fty3fvt0fk9g", "checksum": "5856553d7c3dc3037b3f61286c79224e0a36daaa9f1fc4dbb8cfa32293193d99"}, {"id": "fls_7isrfuopxszu", "number": "4.12.2:10", "link": "types-and-traits.html#fls_7isrfuopxszu", "checksum": "35b4e67328db231c512e327ce5efb8ce05016ea1da017f138f262e2e2a227d6d"}, {"id": "fls_hb95cpyupcmc", "number": "4.12.2:11", "link": "types-and-traits.html#fls_hb95cpyupcmc", "checksum": "6c778d5632db97d3301836bfcb54ed7f9a4bf9ae7f59492ea0edb726e9760040"}, {"id": "fls_jezvwlfvpevb", "number": "4.12.2:12", "link": "types-and-traits.html#fls_jezvwlfvpevb", "checksum": "c4cce1e4f4599cca9433e4c7caa01c2370d35e7468cd75c25d05a45d4830868e"}, {"id": "fls_nkcqfo7yidbe", "number": "4.12.2:13", "link": "types-and-traits.html#fls_nkcqfo7yidbe", "checksum": "e1774f66d7ec71606db10f7d2ea8bb346f4838230ccab723b87cc20531f9c9e8"}, {"id": "fls_jkaibnapjatt", "number": "4.12.2:14", "link": "types-and-traits.html#fls_jkaibnapjatt", "checksum": "fca446cea9b227ba6edbbd60b3d07b861687b7e6735b5d9430aad156d0c00cac"}, {"id": "fls_dhksyjrvx9a", "number": "4.12.2:15", "link": "types-and-traits.html#fls_dhksyjrvx9a", "checksum": "5c234eaaaf625cadcba23e792b9c70b2a5d5a4bf733d3d1b874363f6cb4b4c23"}, {"id": "fls_hf0cfkrmt655", "number": "4.12.2:16", "link": "types-and-traits.html#fls_hf0cfkrmt655", "checksum": "71c2ef4eca01d8d2398c416f696fa413d2aa384ac63d110cf9c02fee44394c17"}, {"id": "fls_k9dag68qpe93", "number": "4.12.2:17", "link": "types-and-traits.html#fls_k9dag68qpe93", "checksum": "688edd3c20f0031139a4a191d039bbc1cb4b3cf4e71953f32e59ca93e9e1eb50"}, {"id": "fls_m6d9qj9q9u1i", "number": "4.12.2:18", "link": "types-and-traits.html#fls_m6d9qj9q9u1i", "checksum": "000140bda99fc03cb461ae82fc44f00553e759bdefc4024a743226869bb556d9"}, {"id": "fls_gg3x25qvymmq", "number": "4.12.2:19", "link": "types-and-traits.html#fls_gg3x25qvymmq", "checksum": "e80dd4b7ce61eb512368a598539097c63700b957a79797c7632b07f1140b827a"}, {"id": "fls_ni296ev8x9v9", "number": "4.12.2:20", "link": "types-and-traits.html#fls_ni296ev8x9v9", "checksum": "f24aed54e03e3a739813f0003dfe5ba61269ea0b335234f058a75c2258a3a969"}, {"id": "fls_i1m41c4wkfc0", "number": "4.12.2:21", "link": "types-and-traits.html#fls_i1m41c4wkfc0", "checksum": "ae9c6921bc2c5d6daea20516afa9d8caa4b58b39286ba4971eebcfd1ab4c0cd8"}, {"id": "fls_mpq64eal9jo3", "number": "4.12.2:22", "link": "types-and-traits.html#fls_mpq64eal9jo3", "checksum": "e6f42ea036f99fbe3b1fb90f2cd2e17a9acf5ca1116043eca60f80c79867be2c"}, {"id": "fls_kcr8npsmy0e5", "number": "4.12.2:23", "link": "types-and-traits.html#fls_kcr8npsmy0e5", "checksum": "00d3c7f7b35c66e24e4a10adce31978ab8ad1bd234a231761dcb86dd442da7b3"}, {"id": "fls_kq3lv1zbangz", "number": "4.12.2:24", "link": "types-and-traits.html#fls_kq3lv1zbangz", "checksum": "195eb65f16abf0575d17f2b1be1087b9e206a49ffe16d3ffdef28cd89e788366"}, {"id": "fls_so2cgqmawlm7", "number": "4.12.2:25", "link": "types-and-traits.html#fls_so2cgqmawlm7", "checksum": "1d9c72ecb4ac5ea7fc4fc3d2d75b5180c4f4a47db55dce93873e90df42e46743"}, {"id": "fls_vsax8w6y794m", "number": "4.12.2:26", "link": "types-and-traits.html#fls_vsax8w6y794m", "checksum": "408947791758b2ad8dcbc3ecdcf9c5f4c8644d67bdbff00b110458292dce4e83"}, {"id": "fls_1j1wc3uxs7h6", "number": "4.12.2:27", "link": "types-and-traits.html#fls_1j1wc3uxs7h6", "checksum": "0c359ddaaaf4bb7ecdeda5b1ed77c19699bd50b53c7c9c180ab91fec01d5755a"}, {"id": "fls_9dpea9ty0c2l", "number": "4.12.2:28", "link": "types-and-traits.html#fls_9dpea9ty0c2l", "checksum": "6fed9a60e8fbe91b884ebe5950327802bbd098730e114fffad4de5c82403ecfe"}, {"id": "fls_42oj1ekjihq1", "number": "4.12.2:29", "link": "types-and-traits.html#fls_42oj1ekjihq1", "checksum": "8c89ff60eff543cbe33d8f313577bcc491d151988e3e14ec4a7c5f681d0fa8e2"}, {"id": "fls_gebpqqqvvklf", "number": "4.12.2:30", "link": "types-and-traits.html#fls_gebpqqqvvklf", "checksum": "c50b057136169daf940732bafe752d5fe2c443eb42159455d87b433a0de3e55a"}, {"id": "fls_i221hm7rssik", "number": "4.12.2:31", "link": "types-and-traits.html#fls_i221hm7rssik", "checksum": "66ba5454612352fff011f2c5f16752b6851b3f672fadb2f8c15fb1c70eddb384"}, {"id": "fls_74cug5zfv2wv", "number": "4.12.2:32", "link": "types-and-traits.html#fls_74cug5zfv2wv", "checksum": "d54f897d06ae679945464622ed0a82379a5c0b60452ea600983b97b69902bbe5"}, {"id": "fls_keezxl8v4snf", "number": "4.12.2:33", "link": "types-and-traits.html#fls_keezxl8v4snf", "checksum": "c9cabad366daa8e46a924d711447aac73dc93e60621905f3877aa65fc1a0724b"}, {"id": "fls_wz2etmkpvxed", "number": "4.12.2:34", "link": "types-and-traits.html#fls_wz2etmkpvxed", "checksum": "104f0c1ee57173d019b23e0728dc5b6fb9bc04ec70b7666e5348f7dd366b45ed"}, {"id": "fls_rmqcbb5ja4va", "number": "4.12.2:35", "link": "types-and-traits.html#fls_rmqcbb5ja4va", "checksum": "43358ae1fdf6051cf8ba48651a94f4d6b6e62ab05031e0b0e384a83724822952"}, {"id": "fls_uu8je75y5pss", "number": "4.12.2:36", "link": "types-and-traits.html#fls_uu8je75y5pss", "checksum": "db5b765c1b3a6fcb40b42cccb46ae92a512f298b4eca532573060af03314af81"}, {"id": "fls_oksjiq3nmq2k", "number": "4.12.2:37", "link": "types-and-traits.html#fls_oksjiq3nmq2k", "checksum": "f397d8cf8b8c7c3fbcc901785345c36b908996d3a6bd6464e4e20cc108523a56"}, {"id": "fls_52ymp79ert2", "number": "4.12.2:38", "link": "types-and-traits.html#fls_52ymp79ert2", "checksum": "81ebbf38df3455de1ee80a6f1a2f412c8878762eb6b05285f16ed47c4a857592"}, {"id": "fls_g2u1dfhphrrg", "number": "4.12.2:39", "link": "types-and-traits.html#fls_g2u1dfhphrrg", "checksum": "3318b943515a14fe6dbf55e7ec47613c778490dee645221932ecbb4716e25074"}, {"id": "fls_2xgq66qp3h95", "number": "4.12.2:40", "link": "types-and-traits.html#fls_2xgq66qp3h95", "checksum": "7726d6710a5611f30a40c98174045b829d3f80a6b8d962dae4f64b76e83045a4"}, {"id": "fls_5dh8c5gg0hmk", "number": "4.12.2:41", "link": "types-and-traits.html#fls_5dh8c5gg0hmk", "checksum": "fd91364bed19d0afa9d73fb3c1658c025a696b873269013f813ec189d9214416"}, {"id": "fls_ismr7wwvek4q", "number": "4.12.2:42", "link": "types-and-traits.html#fls_ismr7wwvek4q", "checksum": "6a5c53a38ac6502579f67680736ebeff29b1a0a8a697f84d17e10c795d1d4b7d"}, {"id": "fls_x9933rjecrna", "number": "4.12.2:43", "link": "types-and-traits.html#fls_x9933rjecrna", "checksum": "b27ba69adda5e65b3928999f9748285a16bee769d0115e2a1aeb237b6e4dbc3a"}, {"id": "fls_mizmcykgdisb", "number": "4.12.2:44", "link": "types-and-traits.html#fls_mizmcykgdisb", "checksum": "e08654b77f30bda8b01a6f943f5f80454a4b1b139153afc6307396967f705b66"}, {"id": "fls_paoh0wttde2z", "number": "4.12.2:45", "link": "types-and-traits.html#fls_paoh0wttde2z", "checksum": "72049284c54176fc4fb1c1c255561eb7d7942a71235fa68202ca2bb3d8b79613"}, {"id": "fls_akko4dmp4nkw", "number": "4.12.2:46", "link": "types-and-traits.html#fls_akko4dmp4nkw", "checksum": "5d19ac9384672776d1ee638f44540b560d0f10f40289e94044bc9fa144c252a9"}, {"id": "fls_8gldjjxbyyb4", "number": "4.12.2:47", "link": "types-and-traits.html#fls_8gldjjxbyyb4", "checksum": "138bb93829e388cb6e4f30afcc6d8172dbc34098c101c23ea3024f033ed853c7"}, {"id": "fls_8jad1ztcuxha", "number": "4.12.2:48", "link": "types-and-traits.html#fls_8jad1ztcuxha", "checksum": "35b9f5170166cb82091a22696f9f5551aeeb153b146a6a8cc6fd0ec0f69ba070"}, {"id": "fls_j3w9ap9zaqud", "number": "4.12.2:49", "link": "types-and-traits.html#fls_j3w9ap9zaqud", "checksum": "474c0b6fc42aad94745322806f94d0baac7f6f82466ba9b20bb757aeaf8f0245"}, {"id": "fls_yvllot5qnc4s", "number": "4.12.2:50", "link": "types-and-traits.html#fls_yvllot5qnc4s", "checksum": "f77f51ab20e49154362e7e30356fa9048d737311587b745a4c109b6adfbd0774"}, {"id": "fls_hza5n5eb18ta", "number": "4.12.2:51", "link": "types-and-traits.html#fls_hza5n5eb18ta", "checksum": "eab384e3f2e76b1ac0fe9ec7ac7cf230e58b0f6069105b253a18e5a57cf0f62c"}, {"id": "fls_ww16urcjrj6i", "number": "4.12.2:52", "link": "types-and-traits.html#fls_ww16urcjrj6i", "checksum": "a08b517ccebf64dfb28aba3e871021511369da1be5e56cff2589a3924b3b9d1b"}, {"id": "fls_bnp6or49voxp", "number": "4.12.2:53", "link": "types-and-traits.html#fls_bnp6or49voxp", "checksum": "89b48d93f4666e6e771a2628649e81f8d1f2de995e07defb06fff0282cffe991"}, {"id": "fls_hdo4c849q3lo", "number": "4.12.2:54", "link": "types-and-traits.html#fls_hdo4c849q3lo", "checksum": "203ad82032af14af279f43593fcd8fccfc929c8078778a6de310ca6d1f78e9f8"}, {"id": "fls_w9dx5h7m31sj", "number": "4.12.2:55", "link": "types-and-traits.html#fls_w9dx5h7m31sj", "checksum": "94dbd24c5170da391b4fd6bf809cc9f11e71dac5c7534862f9d4dcbae162ccb1"}], "informational": false}, {"id": "fls_dw33yt5g6m0k", "number": "4.12.3", "title": "Type Coercion", "link": "types-and-traits.html#type-coercion", "paragraphs": [{"id": "fls_w5pjcj9qmgbv", "number": "4.12.3:1", "link": "types-and-traits.html#fls_w5pjcj9qmgbv", "checksum": "1c125d2f970819ac01d209699beabb24a85dcf91316e31ca2e951e98dc4a5f2e"}, {"id": "fls_5v0n2a32bk95", "number": "4.12.3:2", "link": "types-and-traits.html#fls_5v0n2a32bk95", "checksum": "b3d69f435190dd57fd86cebc434e29483825d6b25b8f60120e3477fef36b44cd"}, {"id": "fls_j3kbaf43sgpj", "number": "4.12.3:3", "link": "types-and-traits.html#fls_j3kbaf43sgpj", "checksum": "b18d8bddfde5ee8721d48f3d414b5a55dfb48c98bf03d2412a1ab54ae0f93c30"}, {"id": "fls_wxrugvlazy6v", "number": "4.12.3:4", "link": "types-and-traits.html#fls_wxrugvlazy6v", "checksum": "4e13d35d1de469cd6adacba64653a8dc3a8a58eb96060d9dc2fa3c06a4248a7f"}, {"id": "fls_bhzmble1itog", "number": "4.12.3:5", "link": "types-and-traits.html#fls_bhzmble1itog", "checksum": "dcd00eff58f1f029b5a359bbdfebe7a52a9dda64e77847b71c38aa9ee577082b"}, {"id": "fls_eu4bt3dw1b8c", "number": "4.12.3:6", "link": "types-and-traits.html#fls_eu4bt3dw1b8c", "checksum": "2849e3f04859c16c3f699d20cb59e697e2d5ea761ef414a8e9f6a4bfebdad8a2"}, {"id": "fls_apstt4elv2k7", "number": "4.12.3:7", "link": "types-and-traits.html#fls_apstt4elv2k7", "checksum": "14a2ebfc0dc84e45abcd936047fdf03858f8cfa416f4c711cdb673c3029f2a1d"}, {"id": "fls_sp794uzfiofr", "number": "4.12.3:8", "link": "types-and-traits.html#fls_sp794uzfiofr", "checksum": "853017badc80ef7625757aa8b68a0cbf76baed161093698d90b35416d3ff25a5"}, {"id": "fls_xfqny6bwzsu9", "number": "4.12.3:9", "link": "types-and-traits.html#fls_xfqny6bwzsu9", "checksum": "1a7266235db01fc19f566dc6970836b039c783ca94c394b07d6f46f45a327bae"}, {"id": "fls_u0e42y7nvn7e", "number": "4.12.3:10", "link": "types-and-traits.html#fls_u0e42y7nvn7e", "checksum": "b49cdf0f2fb74d20d8bf9bd22739caf559f092b37874cc469a1fc11796b0f3d7"}, {"id": "fls_p8hp5y506nam", "number": "4.12.3:11", "link": "types-and-traits.html#fls_p8hp5y506nam", "checksum": "e94e4fd5d3c8124476595c77485d16348c94894082857326c18e6414d7e2ead0"}, {"id": "fls_fjc9xev8rcu6", "number": "4.12.3:12", "link": "types-and-traits.html#fls_fjc9xev8rcu6", "checksum": "973dbaecfc13fb4ab65e325a94d44a45fc9c953dda41203951b7614d02670864"}, {"id": "fls_n1kh3z8d4q8y", "number": "4.12.3:13", "link": "types-and-traits.html#fls_n1kh3z8d4q8y", "checksum": "8c78c768eeb8f1a02a7d182fed23128f8bc7bbf0ddc102ba2da4c71a08098ee9"}, {"id": "fls_dgoypa3hcxc0", "number": "4.12.3:14", "link": "types-and-traits.html#fls_dgoypa3hcxc0", "checksum": "f631f3eaa473d36dc8b906892fb02d2afdfcc6ac8b36a88720bb9cbe268707cf"}, {"id": "fls_h8dkehit8rza", "number": "4.12.3:15", "link": "types-and-traits.html#fls_h8dkehit8rza", "checksum": "af9ac95087820df12145d4b1bcdc5c2aefdfe7e0661d4ee8ebce4897d946cc54"}, {"id": "fls_z00wtlna6grk", "number": "4.12.3:16", "link": "types-and-traits.html#fls_z00wtlna6grk", "checksum": "71e522755dbc28be6cd7a324a6a6454114e8e0244de6bbff1a5f0cb0ccb88cd2"}, {"id": "fls_rfjdh79k0wou", "number": "4.12.3:17", "link": "types-and-traits.html#fls_rfjdh79k0wou", "checksum": "3e2e8a463e825e0de103643132d6ac576478740d745d5bfada48884bf6a73f0f"}, {"id": "fls_e3lgrtqb7jwe", "number": "4.12.3:18", "link": "types-and-traits.html#fls_e3lgrtqb7jwe", "checksum": "760728def307e32ecd93826afc55eb5b39477adab8e2fdd6b8d2c3445e9c6c6b"}, {"id": "fls_fwy2z11c1sji", "number": "4.12.3:19", "link": "types-and-traits.html#fls_fwy2z11c1sji", "checksum": "b9ab7cd8a6ff174f7370bef719769860ab9bb78d73a887a2d266b10b9f0e356d"}, {"id": "fls_aujb44849tq1", "number": "4.12.3:20", "link": "types-and-traits.html#fls_aujb44849tq1", "checksum": "34586dbc5392132b773e0f3aa90c23b3f4079ca79bedb9d108b354e0c15a9584"}, {"id": "fls_p3ym3ycrnd5m", "number": "4.12.3:21", "link": "types-and-traits.html#fls_p3ym3ycrnd5m", "checksum": "b048851b08b58ee5809efccef3bf5a7a5207344b662eba5162de24e194352b83"}, {"id": "fls_jmo42qgix5uw", "number": "4.12.3:22", "link": "types-and-traits.html#fls_jmo42qgix5uw", "checksum": "1b30164bd90c0dbbcb47c87803c0841dfe9d3d772e1a34c7a9ccc4a4933b2c10"}, {"id": "fls_tbt4236igdzb", "number": "4.12.3:23", "link": "types-and-traits.html#fls_tbt4236igdzb", "checksum": "c1dda665688283c6458e52d3c3a8e7387bab58a818e1c1b871485a8e7d6c068c"}, {"id": "fls_7ri4jk2dydfn", "number": "4.12.3:24", "link": "types-and-traits.html#fls_7ri4jk2dydfn", "checksum": "e789228b8563894bad59c2a9870a4324c5fde44cc790f00e4a45a0b465c8316a"}, {"id": "fls_6r3kn0nk5b8o", "number": "4.12.3:25", "link": "types-and-traits.html#fls_6r3kn0nk5b8o", "checksum": "fc7f331b6089c5bd8e347504d88e62078d5c4c846a9ccf65eaeedd8ffc094c48"}, {"id": "fls_ulcdetwp6x96", "number": "4.12.3:26", "link": "types-and-traits.html#fls_ulcdetwp6x96", "checksum": "61b8468e184c14f1902fbd43e6492e9b4640ddad4ae0a33a731901b147214f58"}, {"id": "fls_2uv1r0gni1fk", "number": "4.12.3:27", "link": "types-and-traits.html#fls_2uv1r0gni1fk", "checksum": "e233c03b13e1a8e36e57cca5a910344a93904dc508dbe3d5823adb57c58fdaea"}, {"id": "fls_sf0c3fbx8z57", "number": "4.12.3:28", "link": "types-and-traits.html#fls_sf0c3fbx8z57", "checksum": "fde902a0dcf7245891be85fe02b53a36f549f906b5621552b11c7c0e83e5b3ad"}, {"id": "fls_iiiu2q7pym4p", "number": "4.12.3:29", "link": "types-and-traits.html#fls_iiiu2q7pym4p", "checksum": "dd7bc2c44f433ffd630cffd6c4386dd7fbd5fa2ce7379e469299b9dc5c179d09"}, {"id": "fls_jte6n2js32af", "number": "4.12.3:30", "link": "types-and-traits.html#fls_jte6n2js32af", "checksum": "8e785eaf45c0dfef77ee6ff7b317a82aaf46b49c84f4c2ecdc296ee62568c727"}, {"id": "fls_20pvqqayzqra", "number": "4.12.3:31", "link": "types-and-traits.html#fls_20pvqqayzqra", "checksum": "a9d2363147bd3d1382fb2792473844fa7abd6d6fb6aa67371d82a7ede1452d39"}, {"id": "fls_j8rcy0xvd155", "number": "4.12.3:32", "link": "types-and-traits.html#fls_j8rcy0xvd155", "checksum": "65c7ca810e8b17133d894175777f2b3b7bc290fcd174dc128bc978c1bbf10464"}, {"id": "fls_wuka4uyo3oj7", "number": "4.12.3:33", "link": "types-and-traits.html#fls_wuka4uyo3oj7", "checksum": "1af2a2bba8399300cc1e205f0f7fee9618593ec4a2537211d6ba2bac7ca92379"}, {"id": "fls_w15yo8yvuxq3", "number": "4.12.3:34", "link": "types-and-traits.html#fls_w15yo8yvuxq3", "checksum": "8322e0c9269a64e591836ee24ecb8d377ce3093892b78053bacd698ed55a8962"}, {"id": "fls_7aw3ifbvfgbd", "number": "4.12.3:35", "link": "types-and-traits.html#fls_7aw3ifbvfgbd", "checksum": "dcbd46a0126cc58845c6cb40ab6afc0aea44dac093a6f13bfa4fcf14b4b395fe"}, {"id": "fls_cnkth59djwgl", "number": "4.12.3:36", "link": "types-and-traits.html#fls_cnkth59djwgl", "checksum": "89cc90acc65cd37645feae640026726577f4f4f0349a887ff00a451479f45b0a"}, {"id": "fls_4wbk7pqj010i", "number": "4.12.3:37", "link": "types-and-traits.html#fls_4wbk7pqj010i", "checksum": "afc1ce7f88cf8abf3164653eb9fd348bd326ebc15ebf3037c655e1c0494c89ad"}, {"id": "fls_47u0039t0l8f", "number": "4.12.3:38", "link": "types-and-traits.html#fls_47u0039t0l8f", "checksum": "cdd6b9592887af36d0772fde53ca3091c4a6bf70805ffbb04a1dbb16ef4d92ff"}, {"id": "fls_bmh6g3jju7eq", "number": "4.12.3:39", "link": "types-and-traits.html#fls_bmh6g3jju7eq", "checksum": "cefece0d02fa276fe12b8d7fa02401d8fa6a73dd827f6c8960ef8097b6ff375f"}, {"id": "fls_da4w32rsrwxc", "number": "4.12.3:40", "link": "types-and-traits.html#fls_da4w32rsrwxc", "checksum": "698fb05a30487c47e16c1814bf5989a6201253e9f222c440fd59e3d8cfabbede"}, {"id": "fls_zi5311z1w7re", "number": "4.12.3:41", "link": "types-and-traits.html#fls_zi5311z1w7re", "checksum": "8333e75b01db4b4778f0b23b7e145da87834bc47ac828831f781b14f6b7830c1"}, {"id": "fls_zst5pa29rpt", "number": "4.12.3:42", "link": "types-and-traits.html#fls_zst5pa29rpt", "checksum": "3ef2c70df3fbc39e3d8fe5bbe8c0e1adbf015005169243e1455458fed8ded361"}, {"id": "fls_agw1aej616vf", "number": "4.12.3:43", "link": "types-and-traits.html#fls_agw1aej616vf", "checksum": "f4b1e50283ac71505aad22e917efae5d7d1d0798dbdf1fbe9d80f65bb04514a7"}, {"id": "fls_tnbga5dl4gz8", "number": "4.12.3:44", "link": "types-and-traits.html#fls_tnbga5dl4gz8", "checksum": "bb81f4f7bb91b154fff3ff42309dea91e61e5a2ced8910f2543d14f89bf79a19"}, {"id": "fls_yoreux8tn65x", "number": "4.12.3:45", "link": "types-and-traits.html#fls_yoreux8tn65x", "checksum": "b95cf2362fe2b684e6e861bef2924e960fcd813879dc2455367f8f620a534ff5"}, {"id": "fls_r11shke69uu6", "number": "4.12.3:46", "link": "types-and-traits.html#fls_r11shke69uu6", "checksum": "5fca7b2b2864b7504bace27cb6390c5d3d01591a0d2cffda65c64fab8cd2c085"}, {"id": "fls_ky7ykpufb95t", "number": "4.12.3:47", "link": "types-and-traits.html#fls_ky7ykpufb95t", "checksum": "39bf09cd84e3badf0caafcecd1fc51f3d0e38645e4d70876f6313e478f238928"}, {"id": "fls_8kvme0u4u8r6", "number": "4.12.3:48", "link": "types-and-traits.html#fls_8kvme0u4u8r6", "checksum": "215a6f01fd8ef7a0ce0ca1e6aa8dbb82270d88d2f159c6bfe8c8aefe79a45c21"}, {"id": "fls_rl9yrdfwnu03", "number": "4.12.3:49", "link": "types-and-traits.html#fls_rl9yrdfwnu03", "checksum": "096c4e463b9f21a7f6f450c919b54b1d2c68b8b6e4496fe0dae2feda9e403c36"}, {"id": "fls_iqtmhn8flws7", "number": "4.12.3:50", "link": "types-and-traits.html#fls_iqtmhn8flws7", "checksum": "32a6c25c6e1124e082617948626bcbb07992d4275f54df0c25e6744748e4d53c"}, {"id": "fls_sr8d5har4s03", "number": "4.12.3:51", "link": "types-and-traits.html#fls_sr8d5har4s03", "checksum": "275c8b1744879cf91aaf7305f7ba2d9a59d6efce2a635c736da0131f3f9880ed"}, {"id": "fls_92pwnd1xbp5r", "number": "4.12.3:52", "link": "types-and-traits.html#fls_92pwnd1xbp5r", "checksum": "e07e12484817e4c6487e1204a1f9510e836727735508f4ef691226c46e64bf6a"}, {"id": "fls_bwhqil4dsn4s", "number": "4.12.3:53", "link": "types-and-traits.html#fls_bwhqil4dsn4s", "checksum": "335cbd4c223a88ecd2be44961d7a6ce553d0352af438c9f034095d6c8978c103"}, {"id": "fls_ju4ypa5ysga0", "number": "4.12.3:54", "link": "types-and-traits.html#fls_ju4ypa5ysga0", "checksum": "8fed0bd1fa0bfbbe3fd11a53d62ef209fd7e09e5b74a6ad1f1b86277f57d1d86"}], "informational": false}, {"id": "fls_wsfw8xf3vnil", "number": "4.12.4", "title": "Structural Equality", "link": "types-and-traits.html#structural-equality", "paragraphs": [{"id": "fls_uvtpa7gblcyx", "number": "4.12.4:1", "link": "types-and-traits.html#fls_uvtpa7gblcyx", "checksum": "4f72ed3d4dc04653669e57b2d2f00cb3b728c967aca05c3d7e142f41c86239fa"}, {"id": "fls_2dzap6jjjj9h", "number": "4.12.4:2", "link": "types-and-traits.html#fls_2dzap6jjjj9h", "checksum": "644c0bc93e9153b1614ccf90b7c10dc639fb525098e57bb2ef0188049521cf07"}, {"id": "fls_emcnjzl2thsa", "number": "4.12.4:3", "link": "types-and-traits.html#fls_emcnjzl2thsa", "checksum": "ebe3f4bdb59589737e2a8f2587d31e540b885474c990132b77755e7fe3118e79"}, {"id": "fls_hpwsafata1dz", "number": "4.12.4:4", "link": "types-and-traits.html#fls_hpwsafata1dz", "checksum": "9adcd87a7fd208d21fe66dfbd16bfc8617403dbc76b33595031feae169ce3659"}, {"id": "fls_5rcnetrw6f9m", "number": "4.12.4:5", "link": "types-and-traits.html#fls_5rcnetrw6f9m", "checksum": "2996c6bd3a3dcde83041a19b7e0ff0b4645e49e8373faa312d7d231d80add18e"}, {"id": "fls_jmewhn4sntpf", "number": "4.12.4:6", "link": "types-and-traits.html#fls_jmewhn4sntpf", "checksum": "b32c20afa5097b044cad383b2ddafd39d592f035043bc0e89d5c5fc9036d89a5"}, {"id": "fls_hbflaurrhqz6", "number": "4.12.4:7", "link": "types-and-traits.html#fls_hbflaurrhqz6", "checksum": "70b221698272f53f393baae8c1c140264a658dcc9849120449671981eb75f27c"}], "informational": false}, {"id": "fls_omaq7psg83n3", "number": "4.12.5", "title": "Interior Mutability", "link": "types-and-traits.html#interior-mutability", "paragraphs": [{"id": "fls_khy2e23i9o7z", "number": "4.12.5:1", "link": "types-and-traits.html#fls_khy2e23i9o7z", "checksum": "9aa56a43b546255945ab60a08d9ae4aa90b591af22e8b4c1b7dc0c4f9af83598"}, {"id": "fls_swiu26n2xs3r", "number": "4.12.5:2", "link": "types-and-traits.html#fls_swiu26n2xs3r", "checksum": "d05a898c3b49c36accca96ad2625158f39bce97c30d6fb95823df4e3533194bd"}], "informational": false}, {"id": "fls_lv7w7aalpwm5", "number": "4.12.6", "title": "Type Inference", "link": "types-and-traits.html#type-inference", "paragraphs": [{"id": "fls_h8sedxew0d4u", "number": "4.12.6:1", "link": "types-and-traits.html#fls_h8sedxew0d4u", "checksum": "0733340fbfcaed4e1531c4bbd915b1e25c8a7f93c5258f26dc010a4fe224801a"}, {"id": "fls_ybvrhh96fc7y", "number": "4.12.6:2", "link": "types-and-traits.html#fls_ybvrhh96fc7y", "checksum": "26ecf6194c3f105ef5dfdc03e0b71e4a1c8160edb540c06c1056e324e136e1e1"}, {"id": "fls_ewbilpepadcx", "number": "4.12.6:3", "link": "types-and-traits.html#fls_ewbilpepadcx", "checksum": "a923067c037b043e99981b0ca0ebdb47199c07b67e084d5a7bc220e594b133e1"}, {"id": "fls_nyszcvf5nqpi", "number": "4.12.6:4", "link": "types-and-traits.html#fls_nyszcvf5nqpi", "checksum": "f0ad52d5ba7639c36c518c3720cb06c3552839e842057b6d3ee4ba143ab4be1d"}, {"id": "fls_htlp5j5obgnh", "number": "4.12.6:5", "link": "types-and-traits.html#fls_htlp5j5obgnh", "checksum": "f9c9598c2dd792f8150bbc7db9744da31f5c54d1398f56477bc718402556dab3"}, {"id": "fls_cplclgccl7ek", "number": "4.12.6:6", "link": "types-and-traits.html#fls_cplclgccl7ek", "checksum": "20eabdd38eacdb13f67b19026f6ad726531238743b530c057d28a339a5e5db77"}, {"id": "fls_kphy5qhev0dc", "number": "4.12.6:7", "link": "types-and-traits.html#fls_kphy5qhev0dc", "checksum": "ddd1c8f0bf52f83dc4686954218b0f4cd13dfd720d985efc7e5e7cd1fb987375"}, {"id": "fls_67bf5kr5otyw", "number": "4.12.6:8", "link": "types-and-traits.html#fls_67bf5kr5otyw", "checksum": "50c6910a7fc8c1b07b987b8c629d5666817afcdfd7a77af3e544b2df055354eb"}, {"id": "fls_sas3vqpkjksr", "number": "4.12.6:9", "link": "types-and-traits.html#fls_sas3vqpkjksr", "checksum": "cd59d75b8786aa2152a00a74d15960f972ee7b9efd9ed6ea6be282ff7bb0393f"}, {"id": "fls_sowatt1v988j", "number": "4.12.6:10", "link": "types-and-traits.html#fls_sowatt1v988j", "checksum": "6f383a50f25c7293a36c28b2eb734e84299ba6ad3b35e8d967d2b84845ccebc4"}, {"id": "fls_a1nvykepoamk", "number": "4.12.6:11", "link": "types-and-traits.html#fls_a1nvykepoamk", "checksum": "30466e79ab50a4ce686cad40eea4346e303925d4a01f36024720a13e48a89b4f"}, {"id": "fls_j77veald8rsv", "number": "4.12.6:12", "link": "types-and-traits.html#fls_j77veald8rsv", "checksum": "6051ca9ecfe04a062d5a946c136ee02de33353f5ed963a07c287899720961af0"}, {"id": "fls_p9uiamxa4he3", "number": "4.12.6:13", "link": "types-and-traits.html#fls_p9uiamxa4he3", "checksum": "aa67d478f734851497c9592cfcce1e63452ca21e44b8f258ca57c2fd00174c93"}, {"id": "fls_5d4hw3gj4w4n", "number": "4.12.6:14", "link": "types-and-traits.html#fls_5d4hw3gj4w4n", "checksum": "6dd1a00950a9e651a699734e82b1208e81181f5202936ac1f1028fa651d02a27"}, {"id": "fls_qlovdtcj1v1b", "number": "4.12.6:15", "link": "types-and-traits.html#fls_qlovdtcj1v1b", "checksum": "b6a171c627874b9918c71b9cf66fa1fae6c874bb3359b2d6cba89379886281a9"}, {"id": "fls_z5gkfjzw5rra", "number": "4.12.6:16", "link": "types-and-traits.html#fls_z5gkfjzw5rra", "checksum": "38de11a4893adbf77df8542f9ecbe28d5ee3b2986a809383ce4e0bf694d0a106"}, {"id": "fls_vyvumjtqh9xg", "number": "4.12.6:17", "link": "types-and-traits.html#fls_vyvumjtqh9xg", "checksum": "7dd786d9014c1823ba3515b3ea9f68d750d2db96ee522b6f4546aa39d4f678cf"}, {"id": "fls_qagkt99cmvf6", "number": "4.12.6:18", "link": "types-and-traits.html#fls_qagkt99cmvf6", "checksum": "d8578c25c7dd2694e72bf1900ec0de0b6ea38280d2f75db22a3f5249f98fb764"}, {"id": "fls_rjiew597xrvs", "number": "4.12.6:19", "link": "types-and-traits.html#fls_rjiew597xrvs", "checksum": "53bb50d4c95b2e725abb10288ad64df42968237c86530bd3bee7f867075fab87"}, {"id": "fls_veg2d64fixvo", "number": "4.12.6:20", "link": "types-and-traits.html#fls_veg2d64fixvo", "checksum": "229d0d5b05eb5ff42588ebd5ac4c95a095a29d82ff3f26152bebfe73e02bbc3e"}, {"id": "fls_uvvn4usfsbhr", "number": "4.12.6:21", "link": "types-and-traits.html#fls_uvvn4usfsbhr", "checksum": "f5d2a97e84c341b7cc97283f2c6fff644af2eaa3f18136ae71b93c5ee9b56241"}, {"id": "fls_gdaljm1xs0mi", "number": "4.12.6:22", "link": "types-and-traits.html#fls_gdaljm1xs0mi", "checksum": "dec24d875b5094ddba99326af168b3189c2c89ffe2f65919c91d6df57ae7013a"}, {"id": "fls_7ov36fpd9mwe", "number": "4.12.6:23", "link": "types-and-traits.html#fls_7ov36fpd9mwe", "checksum": "2fba60344712b36c7e3d85a11370baa6cf316b8b2a345d1b4b3f0dd61383b631"}, {"id": "fls_3hv3wxkhjjp1", "number": "4.12.6:24", "link": "types-and-traits.html#fls_3hv3wxkhjjp1", "checksum": "6f3816132ffe28efaf427fe33b1433ad594067052bda3f57277c1451893dbbc3"}, {"id": "fls_bxq63gyydump", "number": "4.12.6:25", "link": "types-and-traits.html#fls_bxq63gyydump", "checksum": "605267afb8b9036c0eee2345a972043cff7c21380f985f12caaba2f7d30aee0a"}, {"id": "fls_jryxikbifvf3", "number": "4.12.6:26", "link": "types-and-traits.html#fls_jryxikbifvf3", "checksum": "fbdb2b0ff1c5aa038413a78be7e9a6ff41c0612db0648417cc31a20a682f98a0"}, {"id": "fls_rvj3xspfz1u3", "number": "4.12.6:27", "link": "types-and-traits.html#fls_rvj3xspfz1u3", "checksum": "59854f2b212e191c9c0c639c1bb9caad6bdf38f48c95024fb3a49ae93818cd30"}, {"id": "fls_6grnr2izovrn", "number": "4.12.6:28", "link": "types-and-traits.html#fls_6grnr2izovrn", "checksum": "8ccd07581891d7328efac206e6e8a5952ef3b60a40fbf3b2b43182fc636b4fb8"}, {"id": "fls_9dsltj6u98fo", "number": "4.12.6:29", "link": "types-and-traits.html#fls_9dsltj6u98fo", "checksum": "0557c8604fc016c9a1c036a9f02b61c95d2b7d1d6a0043aea89868044534e8f4"}, {"id": "fls_v5dwgubkvqsj", "number": "4.12.6:30", "link": "types-and-traits.html#fls_v5dwgubkvqsj", "checksum": "04477f3988629a5f4ccf3df3153224a68eaecf8351936f7725a41cea78ead3b9"}, {"id": "fls_szgixdcax6pq", "number": "4.12.6:31", "link": "types-and-traits.html#fls_szgixdcax6pq", "checksum": "849706ce4bb64a8cb1a45280565a1bd62f3e35ac9862270ec8aabd354c93aa06"}, {"id": "fls_xyy1u9h9hlaa", "number": "4.12.6:32", "link": "types-and-traits.html#fls_xyy1u9h9hlaa", "checksum": "dbbbf92cb2589a9aaaf11ef14b6aeb380d37d5f6b741d4cb2c5b1fa2e5a1aecb"}, {"id": "fls_1rnssw39arwn", "number": "4.12.6:33", "link": "types-and-traits.html#fls_1rnssw39arwn", "checksum": "4b63ff86116c425fe2cddd007442d0c03073678cf0cdc42b62c7224845aaa0e3"}, {"id": "fls_ayjazxcovvyk", "number": "4.12.6:34", "link": "types-and-traits.html#fls_ayjazxcovvyk", "checksum": "8e96bbc341a6b1de1d507f569d8d34e94e53b067964a454afed96b6b4bdb7d05"}, {"id": "fls_x8klc7jwif0a", "number": "4.12.6:35", "link": "types-and-traits.html#fls_x8klc7jwif0a", "checksum": "24c8209ffc45df2596e294640bba2aa7b42f5686d8a0e98b7f5df152a82815d5"}, {"id": "fls_zfqhoxo3jpby", "number": "4.12.6:36", "link": "types-and-traits.html#fls_zfqhoxo3jpby", "checksum": "e434416bfa8e8dffc8e6c1164cd594db7a1eb893254a271421442b4a889a0d70"}, {"id": "fls_l1g52a0qqees", "number": "4.12.6:37", "link": "types-and-traits.html#fls_l1g52a0qqees", "checksum": "49ca000ce5a71f5ae340a653f432992078bb8394c14aaba4e946158942b0ea9e"}, {"id": "fls_tx4sx4qy8y2d", "number": "4.12.6:38", "link": "types-and-traits.html#fls_tx4sx4qy8y2d", "checksum": "6c39d9fa3aff34c355cc05dcaefa243378bdafc12a5968b7239c801d4ad37d50"}, {"id": "fls_nbdth8n0psrq", "number": "4.12.6:39", "link": "types-and-traits.html#fls_nbdth8n0psrq", "checksum": "1819eb47223394c7033f3abd693ab921b11aff33067751eb8cd6863b755d3f61"}, {"id": "fls_hisrwzuuqe4q", "number": "4.12.6:40", "link": "types-and-traits.html#fls_hisrwzuuqe4q", "checksum": "74689e53776dd9f93adcf731cfd28c8cf305612f2ba7174d640713d10f582686"}, {"id": "fls_ygi1acj0rkfs", "number": "4.12.6:41", "link": "types-and-traits.html#fls_ygi1acj0rkfs", "checksum": "27a406335ebbb1fd6b5a75a0757865b493c7c597c042bfc555c7188be7f10991"}, {"id": "fls_97fxlv2kn6qf", "number": "4.12.6:42", "link": "types-and-traits.html#fls_97fxlv2kn6qf", "checksum": "588b531763a50551cc01572cee3f92331ffeca722aee95bdcef6579dc6a1df49"}, {"id": "fls_hzxqj6yt1mfr", "number": "4.12.6:43", "link": "types-and-traits.html#fls_hzxqj6yt1mfr", "checksum": "13a1275180d2c104a792fff30db7a7ca08c5753e22d660c88f6f8fd5714a2ce6"}, {"id": "fls_kv0dzomodtdy", "number": "4.12.6:44", "link": "types-and-traits.html#fls_kv0dzomodtdy", "checksum": "f1e4f473dd23e3b9cf44076d9391ecb3e1b4acd8b5e43e81c022030fc8ee42e9"}, {"id": "fls_5v6tr7oqowfm", "number": "4.12.6:45", "link": "types-and-traits.html#fls_5v6tr7oqowfm", "checksum": "5d1d8604e42079634aa8e88ee40d69c6321bb9e01bccd24ed821e193b76cb937"}, {"id": "fls_gwx0kfx68dxl", "number": "4.12.6:46", "link": "types-and-traits.html#fls_gwx0kfx68dxl", "checksum": "676707c30188643f9aee026a919dfa809da219d59e53f2bdc47e3e89d5e5c973"}, {"id": "fls_j6yduccjp1sn", "number": "4.12.6:47", "link": "types-and-traits.html#fls_j6yduccjp1sn", "checksum": "f8723a3646aa5ab3733bf3c732510697a8de3a235b3982cf3dd70d352f129ede"}, {"id": "fls_fsqqhs8t4bux", "number": "4.12.6:48", "link": "types-and-traits.html#fls_fsqqhs8t4bux", "checksum": "6488fc5972643c8005b9ff665490a63292c4f336c2a0a5236c0539a65816b2d6"}, {"id": "fls_0hhc1iok5dwz", "number": "4.12.6:49", "link": "types-and-traits.html#fls_0hhc1iok5dwz", "checksum": "fc18f70656fef1ef9b09d7ca8f249620b596fb1b8c70efba58e3a5a678b21213"}, {"id": "fls_qzwts0giy3i3", "number": "4.12.6:50", "link": "types-and-traits.html#fls_qzwts0giy3i3", "checksum": "27509db5c82720088c62ec3e141b026c1e322a7186cb994b8a0d5e924203e03e"}, {"id": "fls_kjsiu1lgvzxp", "number": "4.12.6:51", "link": "types-and-traits.html#fls_kjsiu1lgvzxp", "checksum": "b5d0949443935576123b18cca27070bb53af6c5002605c2aec5715f19a860365"}, {"id": "fls_krqxdsav1kba", "number": "4.12.6:52", "link": "types-and-traits.html#fls_krqxdsav1kba", "checksum": "e676b83659cdf96c2848aaad17275d4f1455977a2a1ec7bd5732238283eb9382"}, {"id": "fls_mcpwyvz47sog", "number": "4.12.6:53", "link": "types-and-traits.html#fls_mcpwyvz47sog", "checksum": "0bf1dd0f944f4720a843ee0ff984ac3d257f69cc6ba1b5214da858e40de1d6c3"}, {"id": "fls_34aq9g7xhduj", "number": "4.12.6:54", "link": "types-and-traits.html#fls_34aq9g7xhduj", "checksum": "18ee894162cc21546a88f2a251a9f6bfe341f49b0bdb784abc72aba91b0d6ae6"}, {"id": "fls_4zt35povcl04", "number": "4.12.6:55", "link": "types-and-traits.html#fls_4zt35povcl04", "checksum": "8842ea78c118edaa940f0f0073d6e7c3290bc1f164964dd50de8eb727650dc48"}, {"id": "fls_62ocwzavn9hh", "number": "4.12.6:56", "link": "types-and-traits.html#fls_62ocwzavn9hh", "checksum": "8b10910fa086c26e1e94705d9398a51c68e7a3c6a9a4578d4fc204abc3be6d40"}, {"id": "fls_st9onpgdrc8y", "number": "4.12.6:57", "link": "types-and-traits.html#fls_st9onpgdrc8y", "checksum": "7412650a46a74061d81ffa512d2179f23b1edf74b3872464cc7f6b596caaaadd"}, {"id": "fls_f999gqcbfff9", "number": "4.12.6:58", "link": "types-and-traits.html#fls_f999gqcbfff9", "checksum": "82e588ccaea063d84f7b82b1242d7802cd1df6d675a27ce6e2bd69459a9c21ab"}, {"id": "fls_esa4st7llp8t", "number": "4.12.6:59", "link": "types-and-traits.html#fls_esa4st7llp8t", "checksum": "ebc67189c8cb991506019fe72864d2436c9245d633826ceebaf4b8277518858e"}, {"id": "fls_9gdelckl1ubh", "number": "4.12.6:60", "link": "types-and-traits.html#fls_9gdelckl1ubh", "checksum": "5052100ae827ec33641989b63bb47e384a21c161e2fb0240e543ae9120df54ab"}, {"id": "fls_0eata6rtdnta", "number": "4.12.6:61", "link": "types-and-traits.html#fls_0eata6rtdnta", "checksum": "806a8a9c4c2a0fa926f161ee08b989bacce0c50dc99d9f154417a5c2d8731adb"}, {"id": "fls_q1jzzmxqwxck", "number": "4.12.6:62", "link": "types-and-traits.html#fls_q1jzzmxqwxck", "checksum": "bb3507010c18cd505e9adb4b8c8a562d3ee002bee23c005dfbd3e702c9f232f8"}, {"id": "fls_hh58ftcxbyzm", "number": "4.12.6:63", "link": "types-and-traits.html#fls_hh58ftcxbyzm", "checksum": "526646cd5391985fdbc176a363fbee22aff06d3523b542342418b6e8503f0e22"}, {"id": "fls_aisi99pbayqt", "number": "4.12.6:64", "link": "types-and-traits.html#fls_aisi99pbayqt", "checksum": "c22d990803ea4ee571303d09a964df44019da966c6d9a8cba436ae48cc9437c9"}, {"id": "fls_zrdxowo4edmn", "number": "4.12.6:65", "link": "types-and-traits.html#fls_zrdxowo4edmn", "checksum": "57584da05d3dc1e8f0c830d364af56f2bb21b7f6a8a932fd90cc629d6f3de8c6"}, {"id": "fls_iocemi7hfqsk", "number": "4.12.6:66", "link": "types-and-traits.html#fls_iocemi7hfqsk", "checksum": "67e11b06e517777ca3b49bb1108497bbf9f41dd3f7a6c03b9d584e8cd270105d"}, {"id": "fls_ldkpmb5ui58b", "number": "4.12.6:67", "link": "types-and-traits.html#fls_ldkpmb5ui58b", "checksum": "6a0bf506b4c1329bf0fd129c93e06a2ee1d0d06fcc05379daa9446f90b84030e"}, {"id": "fls_jkzhf3zdhshw", "number": "4.12.6:68", "link": "types-and-traits.html#fls_jkzhf3zdhshw", "checksum": "37e26fff3428ba52d2fe60fe551dfdbf498213a5d36c669cda5b1014a30cad85"}, {"id": "fls_rt6zpg3cyhaf", "number": "4.12.6:69", "link": "types-and-traits.html#fls_rt6zpg3cyhaf", "checksum": "f672813590c7e0fa2c72a85763bf792b275fbea9cd74a4607794cb8f9ac171f2"}, {"id": "fls_ufmyhzk6ucst", "number": "4.12.6:70", "link": "types-and-traits.html#fls_ufmyhzk6ucst", "checksum": "8fece354838a30ef4ea331708e12dc54c63518c2e2b4a4e072f377569a53b15f"}, {"id": "fls_hpzmcfqinast", "number": "4.12.6:71", "link": "types-and-traits.html#fls_hpzmcfqinast", "checksum": "bde009024b27bfe5ac2165324303983849b296af03f1d09a999b6ea05b2e33f1"}, {"id": "fls_rgc3iea5p9kr", "number": "4.12.6:72", "link": "types-and-traits.html#fls_rgc3iea5p9kr", "checksum": "18a9afceee9c153ebb83180b204571112295c6c883a85c1be27d367890c63aa6"}, {"id": "fls_5jdbpymvkzdv", "number": "4.12.6:73", "link": "types-and-traits.html#fls_5jdbpymvkzdv", "checksum": "81163aef39eafdb0708b75f24ba80cb5182c0ef48bed2d3cf8feba5b9bef6f95"}, {"id": "fls_f21gnntboxaz", "number": "4.12.6:74", "link": "types-and-traits.html#fls_f21gnntboxaz", "checksum": "546efd775e9d74760187551b78d221ef19b4646f33a34b4867f7a7f270798d70"}, {"id": "fls_npwlzjjh9cgw", "number": "4.12.6:75", "link": "types-and-traits.html#fls_npwlzjjh9cgw", "checksum": "a5590b6dee25c97033f7305a0e6f936e9da7265aea3829f4c2e7c58e4d7884a5"}, {"id": "fls_56j8bllouvr4", "number": "4.12.6:76", "link": "types-and-traits.html#fls_56j8bllouvr4", "checksum": "a041f706bb15d0161c35bfcae72a7de2e0b4e11a3e262fb649508ed8ada51bd7"}, {"id": "fls_jk2pivxomtj8", "number": "4.12.6:77", "link": "types-and-traits.html#fls_jk2pivxomtj8", "checksum": "69715763744f3c7fed67ba5ddc98229c812a0800cf36b28ee12f43fb82bf9a42"}, {"id": "fls_fjv22wcosnnt", "number": "4.12.6:78", "link": "types-and-traits.html#fls_fjv22wcosnnt", "checksum": "aac5b083447e8a2e273adb8cb2fcc744493827cedc47c65b0b3baedbd7b9743b"}, {"id": "fls_h3ovucdskphv", "number": "4.12.6:79", "link": "types-and-traits.html#fls_h3ovucdskphv", "checksum": "330e26cc6685cb1dfa82a84d2178bf60165a81473d6eed85a81862c931f9a731"}, {"id": "fls_be2djzikjw3i", "number": "4.12.6:80", "link": "types-and-traits.html#fls_be2djzikjw3i", "checksum": "1a0181d42cf641e33221d4f38b0852492555c4ac8e15be51f143586d6b985c1b"}, {"id": "fls_nht0lvsiwtb3", "number": "4.12.6:81", "link": "types-and-traits.html#fls_nht0lvsiwtb3", "checksum": "ec677f1076b9878644693b68b12fa4f88ab646f06cf6b311b260e4da1befb4b5"}, {"id": "fls_slcbz3vg1aws", "number": "4.12.6:82", "link": "types-and-traits.html#fls_slcbz3vg1aws", "checksum": "2a6207f713e77bf4b36f34f67ee44602ec627d4216450a3fd15002b80806184f"}, {"id": "fls_mcisadm7sjrs", "number": "4.12.6:83", "link": "types-and-traits.html#fls_mcisadm7sjrs", "checksum": "7bfe1b4191cc568f4965ea2ae5ca690ed51993b7fc4ec6bee03da8ea64653fb7"}, {"id": "fls_fv8fj9r8pruv", "number": "4.12.6:84", "link": "types-and-traits.html#fls_fv8fj9r8pruv", "checksum": "6b0b0bc2f95b49ae5e152da970bce05f896dbf296e9728753d1d673ae72cb4c7"}, {"id": "fls_qdwvv2ntufx7", "number": "4.12.6:85", "link": "types-and-traits.html#fls_qdwvv2ntufx7", "checksum": "84a7593ed63e9466545fae000a156e8e448806170dea5f772cb868f68f526def"}, {"id": "fls_o2r51xrmmj38", "number": "4.12.6:86", "link": "types-and-traits.html#fls_o2r51xrmmj38", "checksum": "4e795302ddd133846579329661e9e97b490f86e981444546b66b4dd9022abb89"}, {"id": "fls_b96zca6ofn82", "number": "4.12.6:87", "link": "types-and-traits.html#fls_b96zca6ofn82", "checksum": "4d4e567b4ab8ca5f4a1fb1c8c3d8df91c67fb770bd4a4cace6b5edb67fac789c"}, {"id": "fls_07aic06bgnzt", "number": "4.12.6:88", "link": "types-and-traits.html#fls_07aic06bgnzt", "checksum": "c4b02ef7e1b298b5a276082e81cd8daa172fdc32e30770b173dd4a6e774155ba"}, {"id": "fls_a36nbol1ftcb", "number": "4.12.6:89", "link": "types-and-traits.html#fls_a36nbol1ftcb", "checksum": "402fa34cae898d54c45a23952960408a04d5d8d41b0f81ab618f87b26930cb88"}, {"id": "fls_h3mmmibr72kv", "number": "4.12.6:90", "link": "types-and-traits.html#fls_h3mmmibr72kv", "checksum": "a7a2ae8190de32bf5aee8dd116623acd4efd8254bbc6c440a4722d6acb532232"}, {"id": "fls_8edzbbio7jf7", "number": "4.12.6:91", "link": "types-and-traits.html#fls_8edzbbio7jf7", "checksum": "2937ec9b056891de7aab2b57810eba0528ecc27fc3e8075a1f852903bb9b994a"}, {"id": "fls_lug26vfusepp", "number": "4.12.6:92", "link": "types-and-traits.html#fls_lug26vfusepp", "checksum": "4db1070a4a0b985d421c7c4686bb275d07c92be932852e255c6f80818a9a9a35"}, {"id": "fls_21ay7euuumhx", "number": "4.12.6:93", "link": "types-and-traits.html#fls_21ay7euuumhx", "checksum": "397cf84d1d20fefbdb6416f126bc1fedb49f880fa10fa4a885aad6fa92e26167"}, {"id": "fls_8vgahogdok0y", "number": "4.12.6:94", "link": "types-and-traits.html#fls_8vgahogdok0y", "checksum": "93b5392211c91ee8d504d9868a7d68ac136546dcdbbad5d24d3f577f2c88e489"}, {"id": "fls_ovvy9ce0pgtj", "number": "4.12.6:95", "link": "types-and-traits.html#fls_ovvy9ce0pgtj", "checksum": "7f686eb11bcf39ea892c2d0e96ad372bdc601edb69025cd3e0629e638394539d"}, {"id": "fls_fojovb6l3lah", "number": "4.12.6:96", "link": "types-and-traits.html#fls_fojovb6l3lah", "checksum": "569bfa594da4cd446bcaad60663a04566c36afc4f5ad3d236f098f50b66fb41d"}, {"id": "fls_cvfhkjq1pixr", "number": "4.12.6:97", "link": "types-and-traits.html#fls_cvfhkjq1pixr", "checksum": "f42fbda3021b2099c9a16bf8df1231e066450bcc017fefa22f943451c146644b"}, {"id": "fls_0rz7w0yqmze3", "number": "4.12.6:98", "link": "types-and-traits.html#fls_0rz7w0yqmze3", "checksum": "f38861e12ba15b26d22b39bced0e85caf806900ac14d4b691b9bfdc04c56006c"}, {"id": "fls_yppncepmyqwj", "number": "4.12.6:99", "link": "types-and-traits.html#fls_yppncepmyqwj", "checksum": "030b457cddbacd3c66ddde1079b1b179afde8cd0c3147430bfce82fddff4d95e"}, {"id": "fls_szmijji43fql", "number": "4.12.6:100", "link": "types-and-traits.html#fls_szmijji43fql", "checksum": "4eb0f7cb1d0475f4762ea3ac14eea3f50eec51fce9d2cd082fa76a05b372905d"}, {"id": "fls_ipwtrhf4xakc", "number": "4.12.6:101", "link": "types-and-traits.html#fls_ipwtrhf4xakc", "checksum": "7b85215a3effc40177a6c31907cde3fa3a7d61b57ff6c0c02e88d5e9ba01bd8e"}, {"id": "fls_zgrfkbfdi6ro", "number": "4.12.6:102", "link": "types-and-traits.html#fls_zgrfkbfdi6ro", "checksum": "ba56f2bf9c4b4756691a32ecda47282715bc88ff46cf80ae2f7484635b80aa2c"}, {"id": "fls_z2ukzx5qdmws", "number": "4.12.6:103", "link": "types-and-traits.html#fls_z2ukzx5qdmws", "checksum": "0cb1d7de2f135ef45509098cda1f169336b740fa28b6108348f05ec0f32936ce"}, {"id": "fls_u46ixitekmcb", "number": "4.12.6:104", "link": "types-and-traits.html#fls_u46ixitekmcb", "checksum": "35723ad98d3805267108e83cb916ccc229ff4ccba59f3dc700de834c2734089b"}, {"id": "fls_taj3jjwiedbq", "number": "4.12.6:105", "link": "types-and-traits.html#fls_taj3jjwiedbq", "checksum": "2b0d9332d54179fcf153daa53495e5dcc69f8f1fc6183007301ea8d263db458f"}, {"id": "fls_vrpatruobwtf", "number": "4.12.6:106", "link": "types-and-traits.html#fls_vrpatruobwtf", "checksum": "233f2aa19661d54999f5b48a7b7ceb27a0590d0f09de50a48967716f0de48064"}], "informational": false}, {"id": "fls_85vx1qfa061i", "number": "4.13", "title": "Traits", "link": "types-and-traits.html#traits", "paragraphs": [{"id": "fls_tani6lesan9u", "number": "4.13:1", "link": "types-and-traits.html#fls_tani6lesan9u", "checksum": "d7212257397d1d14621b886a1829ea8f8c8386cdaccfbfbe7f70c9321f85dff2"}, {"id": "fls_piar1b26sozv", "number": "4.13:2", "link": "types-and-traits.html#fls_piar1b26sozv", "checksum": "4dc696ed6dbb85f0cd265718a2213f335ef1caf861c1e2858c1e895b91bd05d8"}, {"id": "fls_y28596cvbzdg", "number": "4.13:3", "link": "types-and-traits.html#fls_y28596cvbzdg", "checksum": "853f1c4b6645e1f5b164185c45a96a2de4e6ddc84851ab72105e660ab292f120"}, {"id": "fls_adbbuzzgmesq", "number": "4.13:4", "link": "types-and-traits.html#fls_adbbuzzgmesq", "checksum": "9e95c1f9c8e8b1d57a5759c5453c5cb606c711e191df6d096a42e1f8e45b154c"}, {"id": "fls_cytxpjk3zq2t", "number": "4.13:6", "link": "types-and-traits.html#fls_cytxpjk3zq2t", "checksum": "b94347bbd83933a75718cc03b215a9d769aa3d6f969c54d90c57fb5f932c1fc9"}, {"id": "fls_ytn5cdonytyn", "number": "4.13:7", "link": "types-and-traits.html#fls_ytn5cdonytyn", "checksum": "3f9a02739cb12bc30e822ddfcc0c32cfa2a7ba100fca18cf4393b8a82f73ba75"}, {"id": "fls_vucd1u38sq7i", "number": "4.13:8", "link": "types-and-traits.html#fls_vucd1u38sq7i", "checksum": "850630ec9e0b341a370fae1c5d0089a6199d8a2d37d472dcd8ff712543d65358"}, {"id": "fls_kyr81mi01me2", "number": "4.13:9", "link": "types-and-traits.html#fls_kyr81mi01me2", "checksum": "61a7ac2c1a5f76feec6326da351d7821d5d885c3ddf66d460a3cf531b46961da"}, {"id": "fls_yynbricekmsj", "number": "4.13:10", "link": "types-and-traits.html#fls_yynbricekmsj", "checksum": "e23a38fedc7034747afe6208416e064bfa435ac281aad0629ac7f4ea812f2435"}, {"id": "fls_bd4hwdrruxmm", "number": "4.13:11", "link": "types-and-traits.html#fls_bd4hwdrruxmm", "checksum": "a35062dc24915937215d9047a1f414ade029557a2c46169a0c9a79cc96db0d02"}, {"id": "fls_uzfg5ic8puih", "number": "4.13:12", "link": "types-and-traits.html#fls_uzfg5ic8puih", "checksum": "df1a3afdefc49c32fcd12cc2c3c586b0e8bf3ba1b02491b649c096e25e4a3c1d"}, {"id": "fls_02d6ku4sd6yl", "number": "4.13:13", "link": "types-and-traits.html#fls_02d6ku4sd6yl", "checksum": "a585409a841ee7361e6fb14891ca557214c6bde16ccd359302549b407e7a771c"}, {"id": "fls_rlfizqeaphg6", "number": "4.13:14", "link": "types-and-traits.html#fls_rlfizqeaphg6", "checksum": "b612eb84031e77cb9d34f88c555e0396ba5722ba4729a356e68d8b3fb33b3058"}, {"id": "fls_avsxo0leka2x", "number": "4.13:15", "link": "types-and-traits.html#fls_avsxo0leka2x", "checksum": "8b15c2b4a5b8923f6ec42c9dab38eed453f1bbfdbea8094465a5124ff0ec2e5f"}, {"id": "fls_ft8axggoe3al", "number": "4.13:16", "link": "types-and-traits.html#fls_ft8axggoe3al", "checksum": "b23001be74c2e310999ac798d2f614d308ee8e1e9b8b7c463397a615dcb3e025"}, {"id": "fls_m4eot1nmyxjs", "number": "4.13:17", "link": "types-and-traits.html#fls_m4eot1nmyxjs", "checksum": "2d9fed8708df09f431fc7d1136ad692f13e72f458245e3a972715016cf03cfb6"}, {"id": "fls_tir2kpknp1kc", "number": "4.13:18", "link": "types-and-traits.html#fls_tir2kpknp1kc", "checksum": "ee3443dc44a15bfc89d333261e8beae2340b01881208cafec32e48b372342900"}, {"id": "fls_wxhikr8bggvz", "number": "4.13:19", "link": "types-and-traits.html#fls_wxhikr8bggvz", "checksum": "9c94dc64607d1d1d3d47085d136d875d1b22bd42a1da63f644567c9afb1941da"}, {"id": "fls_mjg7yrq66hh0", "number": "4.13:20", "link": "types-and-traits.html#fls_mjg7yrq66hh0", "checksum": "cf5ca60e94e50f04ef2036f964845c07eebcc1218b99dc55e644c63fc7e21699"}, {"id": "fls_ydowwijzirmm", "number": "4.13:21", "link": "types-and-traits.html#fls_ydowwijzirmm", "checksum": "5791023029771fef296097ed718e040eeb95b76d6aee5549bf5621b22838e5e0"}], "informational": false}, {"id": "fls_4ikc07mfrez5", "number": "4.13.1", "title": "Object Safety", "link": "types-and-traits.html#object-safety", "paragraphs": [{"id": "fls_lrdki56hpc3k", "number": "4.13.1:1", "link": "types-and-traits.html#fls_lrdki56hpc3k", "checksum": "a7dbfe3171723b462343aa8888eb93779e47e2cb6564c4d0b5409518c3d3d3f9"}, {"id": "fls_5wlltclogfkw", "number": "4.13.1:2", "link": "types-and-traits.html#fls_5wlltclogfkw", "checksum": "663e533be7fe2c58643b5cb29f1fafabecaebe9a67814b0c45b7339f9d6bce98"}, {"id": "fls_droy0w5gtqaw", "number": "4.13.1:3", "link": "types-and-traits.html#fls_droy0w5gtqaw", "checksum": "4f932d4a55167c3225e7142ff450c023aa8ab9c2ffd3b2a47def283f52f5f94e"}, {"id": "fls_46gd1q80c6bn", "number": "4.13.1:4", "link": "types-and-traits.html#fls_46gd1q80c6bn", "checksum": "7f14d5ddfe3e2040c798b3f2d8f25e11b0f81f91269a2671aba43d70a8af5063"}, {"id": "fls_kwo4cknx0yat", "number": "4.13.1:5", "link": "types-and-traits.html#fls_kwo4cknx0yat", "checksum": "9d15230a9c2fcfdf8a4f47962a5d4e7dcb5bb898443fee71fc2974ce3fa2df1b"}, {"id": "fls_vmlll82eqasi", "number": "4.13.1:6", "link": "types-and-traits.html#fls_vmlll82eqasi", "checksum": "5e74c4465ead60c8c56f509d76b21f8c91f43c939d7054478a87b61c9e02bd7e"}, {"id": "fls_uixekv82g2e5", "number": "4.13.1:7", "link": "types-and-traits.html#fls_uixekv82g2e5", "checksum": "5711109d6669d3b8bf4917e6183c03969ae5401cf0c18e9b48a3ed6232f13fd1"}, {"id": "fls_72tvfoemwpyy", "number": "4.13.1:8", "link": "types-and-traits.html#fls_72tvfoemwpyy", "checksum": "e083235f159e108c388da479f4936b36dd2295363c8b91b7e278346774955c83"}, {"id": "fls_j7nb34o87l1z", "number": "4.13.1:9", "link": "types-and-traits.html#fls_j7nb34o87l1z", "checksum": "2617716de591dde4480a295b243e0b0c274432a579cc5786fce8def72047c033"}, {"id": "fls_k1vc9vd8at92", "number": "4.13.1:10", "link": "types-and-traits.html#fls_k1vc9vd8at92", "checksum": "45afe066d5ef3c3b31decbde94b80e2c45c5c03be74022b5c37133f162b2544b"}, {"id": "fls_kqylg31sm5wv", "number": "4.13.1:11", "link": "types-and-traits.html#fls_kqylg31sm5wv", "checksum": "d1ce3e872cb3cdd9970e74966c197ed43066d9c21e6b962361276044a54ee9fa"}, {"id": "fls_aer3gaur7avp", "number": "4.13.1:12", "link": "types-and-traits.html#fls_aer3gaur7avp", "checksum": "b43aecbed94e34ebbf059fd7dd52fc451df0deec59c26167f70142669b8ca293"}], "informational": false}, {"id": "fls_jeoas4n6su4", "number": "4.14", "title": "Trait and Lifetime Bounds", "link": "types-and-traits.html#trait-and-lifetime-bounds", "paragraphs": [{"id": "fls_5g508z6c7q5f", "number": "4.14:1", "link": "types-and-traits.html#fls_5g508z6c7q5f", "checksum": "5d702214fefa6f0a53043997a796eb9c5880872b5e01081e4b326f34b335437b"}, {"id": "fls_bqlpvasyyxrg", "number": "4.14:2", "link": "types-and-traits.html#fls_bqlpvasyyxrg", "checksum": "9d3437b59c9ab4d5061e5c413b3f9748921ef9527b71e24efda1f586edca9e1d"}, {"id": "fls_grby8tmmd8sb", "number": "4.14:3", "link": "types-and-traits.html#fls_grby8tmmd8sb", "checksum": "0f8fed9095b2593b2ce110d5083b1d4174edfd4d58da66a283c60dabbfa46666"}, {"id": "fls_knut10hoz6wc", "number": "4.14:4", "link": "types-and-traits.html#fls_knut10hoz6wc", "checksum": "f4c5aa350fe7996e2be77424186b6514c7bdc0bed572827e1783a11b5551e07a"}, {"id": "fls_sf6zg0ez9hbb", "number": "4.14:5", "link": "types-and-traits.html#fls_sf6zg0ez9hbb", "checksum": "4faa1836d2f6f8eecc49eaa8a8b5a46d717231f2dd398d4590d48ee4e14c5986"}, {"id": "fls_vujl3fblz6x2", "number": "4.14:6", "link": "types-and-traits.html#fls_vujl3fblz6x2", "checksum": "838585a97e19cda475b2d3a30b265a5e45814e4e6fed4a7f4273c944223c6e97"}, {"id": "fls_azuzmr9dxsqh", "number": "4.14:7", "link": "types-and-traits.html#fls_azuzmr9dxsqh", "checksum": "c2729c9c6fa8817169c4c6b3ee4585e3518a521decde9f3a96bfa7d4313c831a"}, {"id": "fls_1sm2yq1ow76f", "number": "4.14:8", "link": "types-and-traits.html#fls_1sm2yq1ow76f", "checksum": "05bc50eddffd3a18ed8f3377b123bb37c1b5e94af198ccfd7de28fe31d741de9"}, {"id": "fls_tx4uspewnk7w", "number": "4.14:9", "link": "types-and-traits.html#fls_tx4uspewnk7w", "checksum": "2329dd8b3848ee98473bcfcb998f59926c182d917d53d0b5c562e486ce7905d9"}, {"id": "fls_5kj8bmvb8xfc", "number": "4.14:10", "link": "types-and-traits.html#fls_5kj8bmvb8xfc", "checksum": "88ab9938b63b54586e5a194cda9b4fd9238fdc4204039efa73640037b90e8336"}, {"id": "fls_j9desd06ttu9", "number": "4.14:11", "link": "types-and-traits.html#fls_j9desd06ttu9", "checksum": "ea8cafd5ce15c0c1f15675f652353abf992d1d606ef8a4a1543796515a9f5575"}, {"id": "fls_ifhrxsasgaih", "number": "4.14:12", "link": "types-and-traits.html#fls_ifhrxsasgaih", "checksum": "f2c5ee9dc74cb81bb9b1010d4971b395c10d7ae0b69878d350cb1456826c8e37"}, {"id": "fls_k8npgp5xblb7", "number": "4.14:13", "link": "types-and-traits.html#fls_k8npgp5xblb7", "checksum": "4b84d24f6f4b7c87cfc09aa1f59294dadaa53c24876e0fd68f67fc28b88830ad"}, {"id": "fls_uw6y5zlak6ry", "number": "4.14:14", "link": "types-and-traits.html#fls_uw6y5zlak6ry", "checksum": "504b10589747b39626c8009a403ca0deba66fe396ad2de9be37b123b48dc0c99"}], "informational": false}, {"id": "fls_yqcygq3y6m5j", "number": "4.14.1", "title": "Lifetimes", "link": "types-and-traits.html#lifetimes", "paragraphs": [{"id": "fls_nne91at3143t", "number": "4.14.1:1", "link": "types-and-traits.html#fls_nne91at3143t", "checksum": "89e96b4228d15b001e337309f76928a584c677698e9d8f56c3fd0bf4ef702172"}, {"id": "fls_vbclxg9dq4yo", "number": "4.14.1:2", "link": "types-and-traits.html#fls_vbclxg9dq4yo", "checksum": "b2051972bf09f0bc6966717b054dfab460bc29d92a31477488c0f18205bac5d0"}, {"id": "fls_gcszhqg6hnva", "number": "4.14.1:3", "link": "types-and-traits.html#fls_gcszhqg6hnva", "checksum": "93c72453a949d0ff6dedc23875b1b7d9dbf23442a6be174a4e932b1facdb5265"}], "informational": false}, {"id": "fls_ikfvbeewame7", "number": "4.14.2", "title": "Subtyping and Variance", "link": "types-and-traits.html#subtyping-and-variance", "paragraphs": [{"id": "fls_atq2cltx487m", "number": "4.14.2:1", "link": "types-and-traits.html#fls_atq2cltx487m", "checksum": "71b5298b738eb859f8cc6f0ef4b99931284871ae39f1bdc321d865a23684d1cd"}, {"id": "fls_df87d44kgwcv", "number": "4.14.2:2", "link": "types-and-traits.html#fls_df87d44kgwcv", "checksum": "737d3ffccd43df4591537722f4458fda52a59fc66125c7bfefb7f5640a36a8bc"}, {"id": "fls_7ex941yysuhq", "number": "4.14.2:3", "link": "types-and-traits.html#fls_7ex941yysuhq", "checksum": "9ad41a73cca1f1351639e50cba9344d86cdc286da8a2b7f88955ec691b73c9b7"}, {"id": "fls_7qud6i05ze2", "number": "4.14.2:4", "link": "types-and-traits.html#fls_7qud6i05ze2", "checksum": "ddfa75fd9e0142c3c367eb0ba02a65e7221d9e86a4ddef947ebbcfa2bf8a4f60"}, {"id": "fls_wpm0p0gtctvi", "number": "4.14.2:5", "link": "types-and-traits.html#fls_wpm0p0gtctvi", "checksum": "23cf56704ab7dff0f1809d6e8435b4c569536305b94f1a7f05e5b58529ee4a7d"}, {"id": "fls_3rfs58i2kg6l", "number": "4.14.2:6", "link": "types-and-traits.html#fls_3rfs58i2kg6l", "checksum": "74f5a55b32bebc82b21a7e2a9db5f21b1c14e6be7e935138309af650bb1b5ee1"}, {"id": "fls_kbo3e3bosr0m", "number": "4.14.2:7", "link": "types-and-traits.html#fls_kbo3e3bosr0m", "checksum": "1f5b98767e075851c7d070ea2843150c47227558e39872de71e84085c4a044b6"}, {"id": "fls_n36p6w2a75sm", "number": "4.14.2:8", "link": "types-and-traits.html#fls_n36p6w2a75sm", "checksum": "920a8bda29bfda122db8cdb94e70a6c5a4fd76dc0dcc4e6a47f71c256eed960a"}, {"id": "fls_xw7eo3us0ow4", "number": "4.14.2:9", "link": "types-and-traits.html#fls_xw7eo3us0ow4", "checksum": "6b1036112f36ab96e0fba76056076e5a4b5cebf3a68ee27c25399aec62dc6107"}, {"id": "fls_qc6jma5g9vpn", "number": "4.14.2:10", "link": "types-and-traits.html#fls_qc6jma5g9vpn", "checksum": "cf9cf2053b0da4ee4b6530a47cadc73a560b803d10402cde9767cf463797e626"}, {"id": "fls_hpiiwxzg16rj", "number": "4.14.2:11", "link": "types-and-traits.html#fls_hpiiwxzg16rj", "checksum": "c31d4d2d2e461e81ba0e0d047ad24e21fe792abb8e791776c1087a6004460b67"}, {"id": "fls_aspdlqluwh9w", "number": "4.14.2:12", "link": "types-and-traits.html#fls_aspdlqluwh9w", "checksum": "8b26cdf579eba2baed79aeec149c7a4d4277036b4004f66485b0ecade29cd5ad"}, {"id": "fls_8ohuze7hqtc1", "number": "4.14.2:13", "link": "types-and-traits.html#fls_8ohuze7hqtc1", "checksum": "cfe83442e8b9e2c97e23204f4e49cab1e49d103de5746c223fe4e5a2f4d47494"}, {"id": "fls_7pkqgxabojkn", "number": "4.14.2:14", "link": "types-and-traits.html#fls_7pkqgxabojkn", "checksum": "5ef125fa78302d1bd0ab1c9c6ce402e84343ce65094c6dbcaa49f0bd9aad81f8"}, {"id": "fls_ln9pqd4xu5e", "number": "4.14.2:15", "link": "types-and-traits.html#fls_ln9pqd4xu5e", "checksum": "d8c93934a67920a9c041b06a6f58c10bca90f62627301c61c512c531cf54b8cb"}, {"id": "fls_z4jo3ojkcu9v", "number": "4.14.2:16", "link": "types-and-traits.html#fls_z4jo3ojkcu9v", "checksum": "9cb44289a5c32876d21e093980654ac08ef05f7b857ee5acd5f952af4fe5882d"}, {"id": "fls_67w6yslr3e25", "number": "4.14.2:17", "link": "types-and-traits.html#fls_67w6yslr3e25", "checksum": "cf5c8e900ca37acad0bc171bfa0c6b714f1d23d6b8cb493c3038690fdb8ae839"}, {"id": "fls_ojal3qytkqql", "number": "4.14.2:18", "link": "types-and-traits.html#fls_ojal3qytkqql", "checksum": "288d8383e4a918a8df537e25a4154df2c81df5a683c07e73b4544c524b308ed0"}, {"id": "fls_owp42z12l4lc", "number": "4.14.2:19", "link": "types-and-traits.html#fls_owp42z12l4lc", "checksum": "cfc97b21efeb749f2447127d8a51da98dc6e41cb501744689a98e040ea67ea73"}, {"id": "fls_i1vuix3gj9ej", "number": "4.14.2:20", "link": "types-and-traits.html#fls_i1vuix3gj9ej", "checksum": "a734eb2b309a56c538d9dd9dfb1c4826d69b2288840fcb2d3cd674d2e60ef9c2"}, {"id": "fls_mlf39pl0b931", "number": "4.14.2:21", "link": "types-and-traits.html#fls_mlf39pl0b931", "checksum": "cad8abc0d81bf2f72b8ee690d6d77d6170b0848acffa5edbfe5137073f871803"}, {"id": "fls_yknymnlsasyw", "number": "4.14.2:22", "link": "types-and-traits.html#fls_yknymnlsasyw", "checksum": "2215e0ca6e0b0930e0b97655a732b0131268013502b68c2a789b71977bb44466"}, {"id": "fls_xkzo7nj40rbn", "number": "4.14.2:23", "link": "types-and-traits.html#fls_xkzo7nj40rbn", "checksum": "9b7e9c4d5c82583cf8a4c06355a662c0499656e0c927ae7d7b2567c8177d654a"}, {"id": "fls_abn5ycx11zpm", "number": "4.14.2:24", "link": "types-and-traits.html#fls_abn5ycx11zpm", "checksum": "e5f06b8eeaab8e4cd33caf943dbf9fe82b844d719bf0985302a75167735ee7fd"}, {"id": "fls_hvfyog9ygn6q", "number": "4.14.2:25", "link": "types-and-traits.html#fls_hvfyog9ygn6q", "checksum": "42ce008b0a6cfe49436f4f3897238024485cda9f72a13fbfab9b3d7814f4111f"}, {"id": "fls_mduolmcawb30", "number": "4.14.2:26", "link": "types-and-traits.html#fls_mduolmcawb30", "checksum": "90d2a2db73cec5e5c1430778f7c4c4e671046095294db8fca4b4f056f598ef18"}, {"id": "fls_y81gmqweqc9w", "number": "4.14.2:27", "link": "types-and-traits.html#fls_y81gmqweqc9w", "checksum": "f5d848b029abc9525e976478047895ce24e4ac85a7af51e1f425f22ab5340b9b"}, {"id": "fls_etgfvgvymn8o", "number": "4.14.2:28", "link": "types-and-traits.html#fls_etgfvgvymn8o", "checksum": "a7da2fd26ad1dfa3533285dad37d02fed2b4908be213a6a3a98775b0c2ebdb51"}, {"id": "fls_4kjxxrsk1igf", "number": "4.14.2:29", "link": "types-and-traits.html#fls_4kjxxrsk1igf", "checksum": "92ec09eb8c13eb5501dd2aa83335c6b18b661577435da0da11d655d174667b7d"}, {"id": "fls_y4zmb3vrym7p", "number": "4.14.2:30", "link": "types-and-traits.html#fls_y4zmb3vrym7p", "checksum": "d15a6c43afbdab395dde7bf007ffaa85c419254890a3a269617d7567fb692360"}, {"id": "fls_9ae3idezsths", "number": "4.14.2:31", "link": "types-and-traits.html#fls_9ae3idezsths", "checksum": "5375ee031b5992cc2d81fb87c92113aa2df9714381a2516c70a907104f22544f"}, {"id": "fls_wd6uytczirac", "number": "4.14.2:32", "link": "types-and-traits.html#fls_wd6uytczirac", "checksum": "7a621c5f9277c4f46a52133620c001507d1ffde9ce5bc9b977dae5382a587119"}, {"id": "fls_xurr0owesaie", "number": "4.14.2:33", "link": "types-and-traits.html#fls_xurr0owesaie", "checksum": "198b15c57f80ef7b7004d08d14db0126c5a03181c18d4c5c5d9fb54b608cd93a"}, {"id": "fls_cvznyifnoucc", "number": "4.14.2:34", "link": "types-and-traits.html#fls_cvznyifnoucc", "checksum": "e9ab99af1e3626b5bc2ec4a97eb9b693d57cbf3941d58b50da79a3a97cd65b65"}, {"id": "fls_xrlyqx7w9onr", "number": "4.14.2:35", "link": "types-and-traits.html#fls_xrlyqx7w9onr", "checksum": "e44c013173ea636304b228c4399fefdf0e90a39d2d469805209757504b18f9d1"}, {"id": "fls_dwpn8drysgma", "number": "4.14.2:36", "link": "types-and-traits.html#fls_dwpn8drysgma", "checksum": "319beaaf1f1caf0096dba73af40779542bd6c1e51e16900e8189ad49bbf270b7"}, {"id": "fls_ton5oktp300j", "number": "4.14.2:37", "link": "types-and-traits.html#fls_ton5oktp300j", "checksum": "0a0c6af41fd048b6c722a4d47422c162b6d1d238eb34928fd9b8d573a4d1e344"}, {"id": "fls_hqxtvi7gr9wr", "number": "4.14.2:38", "link": "types-and-traits.html#fls_hqxtvi7gr9wr", "checksum": "b40dd94eaa2e2861c1ac9a47ac10ee9e80b71b3fce42aa4c362c82feaafaf088"}, {"id": "fls_lxfpvk7ndnlj", "number": "4.14.2:39", "link": "types-and-traits.html#fls_lxfpvk7ndnlj", "checksum": "4b83f6d8b60d4cc3f44054e47b3add3b07386dbadb45a3e11809ac73890747d5"}, {"id": "fls_awjeqcahn5o3", "number": "4.14.2:40", "link": "types-and-traits.html#fls_awjeqcahn5o3", "checksum": "a38f8ae59566df6812eb2e4a65493f7869a7ee5d1490a9ea14cca661e002257a"}, {"id": "fls_ad1ixzsnlwyg", "number": "4.14.2:41", "link": "types-and-traits.html#fls_ad1ixzsnlwyg", "checksum": "55f986a2532a84d35f03d42bf891d3f758900a1764931afb6e6748f104d30de0"}, {"id": "fls_p2ii8e6cc9zt", "number": "4.14.2:42", "link": "types-and-traits.html#fls_p2ii8e6cc9zt", "checksum": "ac51179a778b0f9f9797899d9ef592d947ee84fdc5a06197c3326fcf1bcebda8"}, {"id": "fls_pn5c4fhwewdk", "number": "4.14.2:43", "link": "types-and-traits.html#fls_pn5c4fhwewdk", "checksum": "d108ec536a18cd310c0309f9f0992815ce2c842ccd88899e8bc3b86859afbb92"}, {"id": "fls_rdqv0hi8h8bi", "number": "4.14.2:44", "link": "types-and-traits.html#fls_rdqv0hi8h8bi", "checksum": "01dcce0fab7d9e766e601132b4336c4324d2cb983b16cbc83cd69c7fa6031d79"}, {"id": "fls_uv5ccmhpx79j", "number": "4.14.2:45", "link": "types-and-traits.html#fls_uv5ccmhpx79j", "checksum": "46f39fc8f0d7ac26fb707ada2c7d2bb2adf405a080f461715483c86974008ef6"}, {"id": "fls_lyvv4pog7e4l", "number": "4.14.2:46", "link": "types-and-traits.html#fls_lyvv4pog7e4l", "checksum": "8b74cbe1bf4dbd256643c98b2f8a49a0f64cb55a7774638a968c045d642880d1"}], "informational": false}, {"id": "fls_l9ebxrlxyawd", "number": "4.14.3", "title": "Lifetime Elision", "link": "types-and-traits.html#lifetime-elision", "paragraphs": [{"id": "fls_9wtuclhm7yz5", "number": "4.14.3:1", "link": "types-and-traits.html#fls_9wtuclhm7yz5", "checksum": "d79a7a7c2d74efad1b16985dc59f37eab43dacda82826ca7822557c72a0932ec"}, {"id": "fls_jmp6o9zj8fkv", "number": "4.14.3:2", "link": "types-and-traits.html#fls_jmp6o9zj8fkv", "checksum": "32d1b793cd39bce611678730276e1b4319fbec6614cd48c07f2d26a1e76e5679"}, {"id": "fls_5zaq9p7jquc2", "number": "4.14.3:3", "link": "types-and-traits.html#fls_5zaq9p7jquc2", "checksum": "6bfff075569653189958ff85ac5cf2713c6e2e10a61755e557a5a274114a10f4"}, {"id": "fls_ymuq8ziquycp", "number": "4.14.3:4", "link": "types-and-traits.html#fls_ymuq8ziquycp", "checksum": "01b2cb5f3106d4540ec427082a3baee106878240cfbf49a243c14625f8e7f690"}, {"id": "fls_simn6sd8xuzz", "number": "4.14.3:5", "link": "types-and-traits.html#fls_simn6sd8xuzz", "checksum": "ed43d8d7ebdf76d78bd1611b62a5a14e51cc7b74a08399dbbe6a89ca09432165"}, {"id": "fls_diyisjnix9dc", "number": "4.14.3:6", "link": "types-and-traits.html#fls_diyisjnix9dc", "checksum": "e2eeb47e603a2757ced1b1b048a74e8c70eff013d072dae88111c56d15f1a50a"}, {"id": "fls_cd0zyi23vqwg", "number": "4.14.3:7", "link": "types-and-traits.html#fls_cd0zyi23vqwg", "checksum": "c4bf3768ceb2465a2a096c8aef590aee129db81593c92b2b8d8529e5a0e7fdfa"}, {"id": "fls_sa4lqc5o6cx3", "number": "4.14.3:8", "link": "types-and-traits.html#fls_sa4lqc5o6cx3", "checksum": "4eabb3c647de45efeb944bafbeabae6a318a9325155ef389199603ed1e19acc1"}], "informational": false}, {"id": "fls_hethxxbcg7ja", "number": "4.14.3.1", "title": "Function Lifetime Elision", "link": "types-and-traits.html#function-lifetime-elision", "paragraphs": [{"id": "fls_ladircfflydd", "number": "4.14.3.1:1", "link": "types-and-traits.html#fls_ladircfflydd", "checksum": "8fc35e5cf136f57bafd43ae857a0540f3e6377d540a98f10bf9575e151baba5c"}, {"id": "fls_dpudys82dhdc", "number": "4.14.3.1:2", "link": "types-and-traits.html#fls_dpudys82dhdc", "checksum": "4e446345859b9323669a875dd49ec52cce3e71e7f65700097e1ec21cf6f60506"}, {"id": "fls_pjil71kk0r25", "number": "4.14.3.1:3", "link": "types-and-traits.html#fls_pjil71kk0r25", "checksum": "a52ef65ad59c6a03acd104f52921c0bd1ab194c0d933c3d187455e8266facccb"}, {"id": "fls_1jnn9bsb71k7", "number": "4.14.3.1:4", "link": "types-and-traits.html#fls_1jnn9bsb71k7", "checksum": "560234cb87c2e6ff7cdbb0d27ca2bc465b9ad0c33b073139a622fc945d297d65"}, {"id": "fls_2p29p1fvi182", "number": "4.14.3.1:5", "link": "types-and-traits.html#fls_2p29p1fvi182", "checksum": "b16b3fc503b0ef9b2bb8a6286c781f2bff6bdc26cebcef598491234908bf0fe3"}, {"id": "fls_ks8wlufmhz6d", "number": "4.14.3.1:6", "link": "types-and-traits.html#fls_ks8wlufmhz6d", "checksum": "2733e9f6847d7d23dfbaf715feec476d91d9caef20c3b3b354287dd0c3eebfe1"}, {"id": "fls_hsg9kfyvh35m", "number": "4.14.3.1:7", "link": "types-and-traits.html#fls_hsg9kfyvh35m", "checksum": "3bcbd78a434bf0ba38571a7dd6ed85585dd4e92b865edc90332ecf4b4daaa3bf"}, {"id": "fls_ofqy10q4a9jk", "number": "4.14.3.1:8", "link": "types-and-traits.html#fls_ofqy10q4a9jk", "checksum": "16c08c00ce2a3df58129efe63027ec80880b95b07f01d9fd2c0c7f505d079150"}, {"id": "fls_yofbo96tjppf", "number": "4.14.3.1:9", "link": "types-and-traits.html#fls_yofbo96tjppf", "checksum": "90c63f8b0b6e4ccfd99d0308b04e2980a4b53f0de2e3a67cbec4ff8019bc7e2d"}, {"id": "fls_vf7cxiir91ps", "number": "4.14.3.1:10", "link": "types-and-traits.html#fls_vf7cxiir91ps", "checksum": "d8fc6c8065816c13c111ca417994ff7168f457d619f2299e9be1d36a9eb4e6dd"}, {"id": "fls_g56br27hq2zj", "number": "4.14.3.1:11", "link": "types-and-traits.html#fls_g56br27hq2zj", "checksum": "012616fbf6f9d9c37bc76e01c82464fb6d65c6787d308e10f7e7f8d4eb477716"}, {"id": "fls_1j204m1wy333", "number": "4.14.3.1:12", "link": "types-and-traits.html#fls_1j204m1wy333", "checksum": "c20fd04609ae44c467a3be462def3caaead0ee6b0c11a572851ac3bda8e9e7db"}, {"id": "fls_6km3cbchuxr2", "number": "4.14.3.1:13", "link": "types-and-traits.html#fls_6km3cbchuxr2", "checksum": "cbcb79548a5d9ac2995323208dcd3a9ccb79c785569231727fae4a32af08e791"}, {"id": "fls_crb6m6b3cdwh", "number": "4.14.3.1:14", "link": "types-and-traits.html#fls_crb6m6b3cdwh", "checksum": "3c29c57912c09c10856a76d6d990de41d91e40bfd828547a00735e0b544f7252"}, {"id": "fls_ac9tdlfwp5et", "number": "4.14.3.1:15", "link": "types-and-traits.html#fls_ac9tdlfwp5et", "checksum": "0a93ba5afb72ab5a83c7159ad67dc0478704a55a3d3ef9325b44d0aee4a5a11b"}, {"id": "fls_qtjc7334wzhj", "number": "4.14.3.1:16", "link": "types-and-traits.html#fls_qtjc7334wzhj", "checksum": "b0b24169a682ebd4af464f022caa0e0bc52dc45c2ab5969c01b1b6a2a313b7f4"}, {"id": "fls_vcmmkp9uruhr", "number": "4.14.3.1:17", "link": "types-and-traits.html#fls_vcmmkp9uruhr", "checksum": "98fed21cebc3cecb0b210e636cc45a37121a883718d0ba5e64b36abb86d70f58"}], "informational": false}, {"id": "fls_u5lqku2rs6uv", "number": "4.14.3.2", "title": "Static Lifetime Elision", "link": "types-and-traits.html#static-lifetime-elision", "paragraphs": [{"id": "fls_l4rdxafwnqz6", "number": "4.14.3.2:1", "link": "types-and-traits.html#fls_l4rdxafwnqz6", "checksum": "362c1e5e7ef9d1bb007461a6e77c25fd2bdd4146d43523089f709b4eecdb11f2"}, {"id": "fls_8irr97rzwfsc", "number": "4.14.3.2:2", "link": "types-and-traits.html#fls_8irr97rzwfsc", "checksum": "a4e8a63dc12eaffaf473b18138e9e501b7fedc18b8b3cb4105a41724426cd35a"}, {"id": "fls_37udexenqv3p", "number": "4.14.3.2:3", "link": "types-and-traits.html#fls_37udexenqv3p", "checksum": "e2a84e07dc44c60162e59d18213737a3fbdbe13962c4e3f32178970f3d2927ea"}, {"id": "fls_xi86he5vvill", "number": "4.14.3.2:4", "link": "types-and-traits.html#fls_xi86he5vvill", "checksum": "1eae2df72c51ffcad42ba90f5618089142bb9116967a5bcd8c0f9f34b11bfcc2"}, {"id": "fls_2gkcei9mwmn9", "number": "4.14.3.2:5", "link": "types-and-traits.html#fls_2gkcei9mwmn9", "checksum": "686ca62c3062007fe2a2c7112962d70308c2004c4e6eed04508f5a30e22ed81d"}, {"id": "fls_f3yz31drutpg", "number": "4.14.3.2:6", "link": "types-and-traits.html#fls_f3yz31drutpg", "checksum": "87777c1e9a852ae61349dd7554488c91f20c43dc493ec06547aa740dcba8ac22"}], "informational": false}, {"id": "fls_xtbohk2yk4la", "number": "4.14.3.3", "title": "Trait Object Lifetime Elision", "link": "types-and-traits.html#trait-object-lifetime-elision", "paragraphs": [{"id": "fls_fubywrrgxlbq", "number": "4.14.3.3:1", "link": "types-and-traits.html#fls_fubywrrgxlbq", "checksum": "9792cf5e24351dd23a21b5298dab4d7c7f182536a15cd1082d892ea56f6fed7e"}, {"id": "fls_url9ceivsiws", "number": "4.14.3.3:2", "link": "types-and-traits.html#fls_url9ceivsiws", "checksum": "735f380f9e5867b7964548adbbe1ef171e6362a7165d946fa2f88f1c49835e00"}, {"id": "fls_shhw6lyheyyq", "number": "4.14.3.3:3", "link": "types-and-traits.html#fls_shhw6lyheyyq", "checksum": "b8dc302081286801fab56e83adfb0c6641a4aabc8e37c977089243aa1c6eb354"}, {"id": "fls_lc2rwdplrwaf", "number": "4.14.3.3:4", "link": "types-and-traits.html#fls_lc2rwdplrwaf", "checksum": "d14fa2465cadaa9f9404de8d4f1dc2c83ea23291fb5a15f281ccbc77646725a3"}, {"id": "fls_e36hh4ojvfhv", "number": "4.14.3.3:5", "link": "types-and-traits.html#fls_e36hh4ojvfhv", "checksum": "5ce3569a487aec0ffe76efa0ebd2f980162b7540452d2800b92474ac6b7fe730"}, {"id": "fls_ptejalcniqtm", "number": "4.14.3.3:6", "link": "types-and-traits.html#fls_ptejalcniqtm", "checksum": "416a9c7f994a10348666cc1428fe679ecfbb5cc34c3fd991214116fd5405123c"}, {"id": "fls_rgbdkttijby4", "number": "4.14.3.3:7", "link": "types-and-traits.html#fls_rgbdkttijby4", "checksum": "9a1ce8dbae4264be182622bdedc1cd24fb5bc4c9c3d2a9805d7e83d22bebdac8"}, {"id": "fls_jhmqpuoexinz", "number": "4.14.3.3:8", "link": "types-and-traits.html#fls_jhmqpuoexinz", "checksum": "3ded6c067304c60cab3a670cb056d96704403c4fd5c6719d0ccfba410623ced1"}, {"id": "fls_cglzigwanasl", "number": "4.14.3.3:9", "link": "types-and-traits.html#fls_cglzigwanasl", "checksum": "b9f5585c56ad53d5720ebad44d77024dd47add4769f1886a76551f07ddaeb2ca"}, {"id": "fls_mipy2emzff6d", "number": "4.14.3.3:10", "link": "types-and-traits.html#fls_mipy2emzff6d", "checksum": "d6269aed267968a9a469c7003f9ac3e0b12044648f1246e40ef2eea39d5610b4"}, {"id": "fls_ypesuzqyhvux", "number": "4.14.3.3:11", "link": "types-and-traits.html#fls_ypesuzqyhvux", "checksum": "8160bcf42506146875a69bae6334ab1868c2957f6f1b085629deedafa0ad1914"}], "informational": false}, {"id": "fls_zqpv1ybddse1", "number": "4.14.3.4", "title": "Impl Header Lifetime Elision", "link": "types-and-traits.html#impl-header-lifetime-elision", "paragraphs": [{"id": "fls_fudsmzn0t8xp", "number": "4.14.3.4:1", "link": "types-and-traits.html#fls_fudsmzn0t8xp", "checksum": "f6a449af6e0ee8f776a596f24acb1ee832b6830604a4f17b42249cef950b08b8"}, {"id": "fls_3p5bdln3jbkz", "number": "4.14.3.4:2", "link": "types-and-traits.html#fls_3p5bdln3jbkz", "checksum": "a0ad068ff94137edb05b75c066208d34c26cad7e567ccbea22214e4480f035f5"}, {"id": "fls_pfs5alkn6anl", "number": "4.14.3.4:3", "link": "types-and-traits.html#fls_pfs5alkn6anl", "checksum": "ddc3e2f6339da6c1ddd05ef0d487698b078e2c06a7456b12337e4b04720ec88d"}, {"id": "fls_qv6ze5mdor5e", "number": "4.14.3.4:4", "link": "types-and-traits.html#fls_qv6ze5mdor5e", "checksum": "23b6ef8e94104fd9bfc08bddfadbc0e6b45e3af1816b852b6542fa4ef26a99b4"}, {"id": "fls_p2v1dqrdcjci", "number": "4.14.3.4:5", "link": "types-and-traits.html#fls_p2v1dqrdcjci", "checksum": "7e879940c036b1acde707493ab1511307ccc68d03e5e0c62cfd4d9d230a8bc69"}, {"id": "fls_mba35hfs8j9l", "number": "4.14.3.4:6", "link": "types-and-traits.html#fls_mba35hfs8j9l", "checksum": "c01105160b098b089c2c01853293cccd8231a07686ae97a7d7aba145d987c330"}, {"id": "fls_w0vwdmo8qv9j", "number": "4.14.3.4:7", "link": "types-and-traits.html#fls_w0vwdmo8qv9j", "checksum": "3b91fe9b60e23bf9452baf8b3ca1624e42e4109b50e88a340e7c1998b9a6772c"}, {"id": "fls_vimy3brpnvny", "number": "4.14.3.4:8", "link": "types-and-traits.html#fls_vimy3brpnvny", "checksum": "68c7b26da67383cc4c0a68039f093046d35f47ac193122f01475bcb83de41546"}], "informational": false}], "informational": false}, {"title": "List of undefined behavior", "link": "undefined-behavior.html", "sections": [{"id": "fls_ebwqh60suhin", "number": "C", "title": "List of undefined behavior", "link": "undefined-behavior.html", "paragraphs": [{"id": "fls_f9mki99mzpxy", "number": "C:1", "link": "undefined-behavior.html#fls_f9mki99mzpxy", "checksum": "d13620e441f116ffc694c67b5990b5e9e0bf77e8f8352c60bf9bf92617ff9b77"}], "informational": false}], "informational": true}, {"title": "Patterns", "link": "patterns.html", "sections": [{"id": "fls_xgqh0ju6bmbn", "number": "5", "title": "Patterns", "link": "patterns.html", "paragraphs": [{"id": "fls_imegtsi224ts", "number": "5:1", "link": "patterns.html#fls_imegtsi224ts", "checksum": "fd701b3ef4e17c49416e15bb5e0685b07ec2165ebe338ee5ed86433fe2a1791c"}, {"id": "fls_mp6i4blzexnu", "number": "5:2", "link": "patterns.html#fls_mp6i4blzexnu", "checksum": "f11f4d96ce76157d36700b1642b225614023417f88f39e02004f751fa0ceca1c"}, {"id": "fls_jj1fja1ssawh", "number": "5:3", "link": "patterns.html#fls_jj1fja1ssawh", "checksum": "640a01339d6302f50e834a92db0b99f585848a4dc1dfb4801941267dfe6c1eff"}, {"id": "fls_6xx34zr069bj", "number": "5:4", "link": "patterns.html#fls_6xx34zr069bj", "checksum": "28dec289d15cad76b56462aa121b43b5d1e42ef0f0d0636c38ac0eb7eca4b4f9"}, {"id": "fls_8xzjb0yzftkd", "number": "5:5", "link": "patterns.html#fls_8xzjb0yzftkd", "checksum": "32457ed53a0bf4373c4cfb97677b5e208930233d39b87a5accc8c508af6f58ce"}, {"id": "fls_cma5t8waon0x", "number": "5:6", "link": "patterns.html#fls_cma5t8waon0x", "checksum": "423b0dc4eb5609e28897a616d1f246d25ede8a2cfe3ad8a25e1affd343fd3519"}, {"id": "fls_tuanrt7wu14e", "number": "5:7", "link": "patterns.html#fls_tuanrt7wu14e", "checksum": "d92c5c133b1308dfee746f9722cc628be4cc1b150f3f387c0d2c08e961e687fb"}, {"id": "fls_8luyomzppck", "number": "5:8", "link": "patterns.html#fls_8luyomzppck", "checksum": "ee361e573cbe4dbcbc9c1aec4bea99d7af68ce46d7a8f305323fea2d888a73ae"}, {"id": "fls_rpvdfmy3n05a", "number": "5:9", "link": "patterns.html#fls_rpvdfmy3n05a", "checksum": "b70079f33aaa9cb4c2507706bdb13c9e8beed748288a7751770b7aa4309c17bf"}, {"id": "fls_kv533rntni1x", "number": "5:10", "link": "patterns.html#fls_kv533rntni1x", "checksum": "66e6567b6902e8a974dcb281251e03d5341f1fbcd6c52bc6d9398d5b175905b1"}], "informational": false}, {"id": "fls_uh76pw6ykd57", "number": "5.1", "title": "Refutability", "link": "patterns.html#refutability", "paragraphs": [{"id": "fls_9ntc4qmjmo90", "number": "5.1:1", "link": "patterns.html#fls_9ntc4qmjmo90", "checksum": "74e294f01efeecaf5f7ea7508839e45750aee3872825525951cd7e1a5a369127"}, {"id": "fls_9fjspnefoyvz", "number": "5.1:2", "link": "patterns.html#fls_9fjspnefoyvz", "checksum": "97aa1ac1d06fc804666c43daa72ee75966f2d95b18e279d427a218d76ae31229"}, {"id": "fls_uq7ftuuq1sig", "number": "5.1:3", "link": "patterns.html#fls_uq7ftuuq1sig", "checksum": "37e388ffc7dca1dd4a94161e0cb558418e13e628a5cb1789796cb37117591344"}, {"id": "fls_mnbyt7jfyaz9", "number": "5.1:4", "link": "patterns.html#fls_mnbyt7jfyaz9", "checksum": "788cc1b098646556626fa9669f0f2c05d8907e582b4bc899ecac453fcfc61dde"}, {"id": "fls_l76ycteulo8e", "number": "5.1:5", "link": "patterns.html#fls_l76ycteulo8e", "checksum": "fb93c07735fd3880cae598758a01af1eb04fd98aa6fbdca79a2fd2e8a525c26d"}, {"id": "fls_lh0d85tl4qvy", "number": "5.1:6", "link": "patterns.html#fls_lh0d85tl4qvy", "checksum": "8cbff3175ce2f1524fa0ece5a443ba2edd4a78433ff410a98a31ed00f38a2bde"}, {"id": "fls_sgu9bnp7xajv", "number": "5.1:7", "link": "patterns.html#fls_sgu9bnp7xajv", "checksum": "9a88f2c440cf4fcdd3f5bf99543aa48a1574d061b3ee71b3dc371a4bb568af80"}, {"id": "fls_cl1g4fxfa020", "number": "5.1:8", "link": "patterns.html#fls_cl1g4fxfa020", "checksum": "9e80bd2a9954f565738c5bdf0455cf342bf2fbf27b91fa6fd9b86def2bfde161"}], "informational": false}, {"id": "fls_7bxv8lybxm18", "number": "5.1.1", "title": "Identifier Patterns", "link": "patterns.html#fls-7bxv8lybxm18", "paragraphs": [{"id": "fls_uljdw9rf7ies", "number": "5.1.1:1", "link": "patterns.html#fls_uljdw9rf7ies", "checksum": "12df3c9420d70b5492aee216c48d595bec10c1bfc7c95589c1aa150787788c68"}, {"id": "fls_vy9uw586wy0d", "number": "5.1.1:2", "link": "patterns.html#fls_vy9uw586wy0d", "checksum": "241eeb37b7dae1635d202ba61372dfbf4a693e183ca1ece17e3818904f6c809d"}, {"id": "fls_hqwt3fvr063y", "number": "5.1.1:3", "link": "patterns.html#fls_hqwt3fvr063y", "checksum": "d9b79bd4e33b5e5d59d8f9ed2df014f66c7fa0c487fc3b0b70e3700fdc7dc420"}, {"id": "fls_joiqddn44oit", "number": "5.1.1:4", "link": "patterns.html#fls_joiqddn44oit", "checksum": "4f2142d8ccdb2e64efc1eaedfef6bdc5b02f5ab32bf7ed59698ff61681fd7384"}, {"id": "fls_24c95c56tugl", "number": "5.1.1:5", "link": "patterns.html#fls_24c95c56tugl", "checksum": "e7b226edcf6dc4bc129b1212d923d2b0052764e5f3087f635a8f5c48af37d436"}, {"id": "fls_twcavjk7iquy", "number": "5.1.1:6", "link": "patterns.html#fls_twcavjk7iquy", "checksum": "3ee68e9c11cc6de58983cada3e69d6e25c9096bea32debb22614bb2a25d155f0"}, {"id": "fls_k1ybtstx7jee", "number": "5.1.1:7", "link": "patterns.html#fls_k1ybtstx7jee", "checksum": "e762d3ac05f362349d87a2a26cc37f37eaa2148eadb4ab7a97745abed9a62df2"}, {"id": "fls_hw26hy33guk5", "number": "5.1.1:8", "link": "patterns.html#fls_hw26hy33guk5", "checksum": "a52f9ed5eaa2b34c018a779a37184c71defa111f92bc5a73d7642178df8e755f"}, {"id": "fls_svfxwz4yy5i", "number": "5.1.1:9", "link": "patterns.html#fls_svfxwz4yy5i", "checksum": "b439ed8b20762b4889891571152f54745dc81b2f6b4abc45db0448e2cac4888d"}, {"id": "fls_x6f6q22b5jpc", "number": "5.1.1:10", "link": "patterns.html#fls_x6f6q22b5jpc", "checksum": "db308f657bf02a10ddea3390b29681c6eccf4bb81b2069d5f1b2ecfbc7853dc1"}, {"id": "fls_r2mb8v2lh3x0", "number": "5.1.1:11", "link": "patterns.html#fls_r2mb8v2lh3x0", "checksum": "dd8b86458df1b70addc97086f4ada7c7692ff5103622010059fbf0283f8ffbb3"}, {"id": "fls_7oioaitb075g", "number": "5.1.1:12", "link": "patterns.html#fls_7oioaitb075g", "checksum": "0905da49ff8fceb1c24a37a019ba80b02f466cbede9db934f3506067251411de"}, {"id": "fls_40qin0ss5sqd", "number": "5.1.1:13", "link": "patterns.html#fls_40qin0ss5sqd", "checksum": "11934cfbec627d51e8441eeef28fa1983d4ed59d73d9dcbff26e5d4cf4007fed"}, {"id": "fls_pivz0v7ey6sw", "number": "5.1.1:14", "link": "patterns.html#fls_pivz0v7ey6sw", "checksum": "05ce4678c850feb8fbdc7b0bf9a65ccdd82414dec3163903b5ff487cf3cc1b8c"}, {"id": "fls_2ahkrddxwj1n", "number": "5.1.1:15", "link": "patterns.html#fls_2ahkrddxwj1n", "checksum": "6827708c08fa8d7048aaf70d448f1ed456a018a5621ccbad9e38ba38eb4f001f"}, {"id": "fls_eucnafj3uedy", "number": "5.1.1:16", "link": "patterns.html#fls_eucnafj3uedy", "checksum": "5938b3e5c53f5eb860f3c7aae1864e4e5b74c0a93b9460455798ee597639f3bd"}, {"id": "fls_f8zo4scodhcr", "number": "5.1.1:17", "link": "patterns.html#fls_f8zo4scodhcr", "checksum": "6853dfde9579870712b9fa937c1b65941c6cd04e82272bc721064e696c10938b"}, {"id": "fls_d3fs2h7oqjl0", "number": "5.1.1:18", "link": "patterns.html#fls_d3fs2h7oqjl0", "checksum": "7d886e7fba9c09e14a0789ddb951c710bb88a50cf8e06a6bcdd6629fb55562f6"}, {"id": "fls_exo8asevh5x1", "number": "5.1.1:19", "link": "patterns.html#fls_exo8asevh5x1", "checksum": "655158cf590f06600319e8e2695db1b56219fadc4cc034888e17c53b07a84274"}, {"id": "fls_sfyfdxhvhk44", "number": "5.1.1:20", "link": "patterns.html#fls_sfyfdxhvhk44", "checksum": "d3b46f205bcb595fe85d75191fcd80dd7933343080fd05b57200c0118ad6b609"}, {"id": "fls_as0pqqmo1des", "number": "5.1.1:21", "link": "patterns.html#fls_as0pqqmo1des", "checksum": "b32516046ade3590c7036c2a5ecbf17d55a9f6f00da394c3d5281096f8cf26dc"}], "informational": false}, {"id": "fls_2krxnq8q9ef1", "number": "5.1.2", "title": "Literal Patterns", "link": "patterns.html#literal-patterns", "paragraphs": [{"id": "fls_pah15qa54irs", "number": "5.1.2:1", "link": "patterns.html#fls_pah15qa54irs", "checksum": "7afee4377bf01eee53e398835c943ac86067eba24c1cf64551d7f801915e5ece"}, {"id": "fls_co60bzvwashg", "number": "5.1.2:2", "link": "patterns.html#fls_co60bzvwashg", "checksum": "b5e4dea23898449138503e31ca3616865806df2f2af08e0460bf75c15cfda0d0"}, {"id": "fls_fqclaznjgtb1", "number": "5.1.2:3", "link": "patterns.html#fls_fqclaznjgtb1", "checksum": "9523bfb2f8baa5008bc1e0027689e39ccb5e220a0549096f0b83c5c7246298fc"}], "informational": false}, {"id": "fls_1xit18et4ohh", "number": "5.1.3", "title": "Parenthesized Patterns", "link": "patterns.html#parenthesized-patterns", "paragraphs": [{"id": "fls_kvqzmt7my5dh", "number": "5.1.3:1", "link": "patterns.html#fls_kvqzmt7my5dh", "checksum": "24403c83d4acc034aaa73d968a14afbfe7d9f1bfdbee90b17ef960075453aaac"}, {"id": "fls_mrjhpiq5refe", "number": "5.1.3:2", "link": "patterns.html#fls_mrjhpiq5refe", "checksum": "5f42a52d41b664edb742dfd664f01990bf8432d041e601e283d750cb83a85f90"}, {"id": "fls_pe5kh8y8u664", "number": "5.1.3:3", "link": "patterns.html#fls_pe5kh8y8u664", "checksum": "41b7c39a45d4144509bc833e84ea455b7d86c0a67c5d58960e14e6337b2c44d4"}, {"id": "fls_2xq8852gihn9", "number": "5.1.3:4", "link": "patterns.html#fls_2xq8852gihn9", "checksum": "52b7260cc5a853d5a086c015be7f8a33e52909e289883c03c7dd49664172129d"}, {"id": "fls_2dmeukyjqz9y", "number": "5.1.3:5", "link": "patterns.html#fls_2dmeukyjqz9y", "checksum": "6b2bf289b930cfce356ecbd497063fe3f045ee08dc3919d303a7a90c52eae0fb"}], "informational": false}, {"id": "fls_uloyjbaso8pz", "number": "5.1.4", "title": "Path Patterns", "link": "patterns.html#path-patterns", "paragraphs": [{"id": "fls_1crq0mexo5r1", "number": "5.1.4:1", "link": "patterns.html#fls_1crq0mexo5r1", "checksum": "6eab6a03669622290fe084028190344d03230efeca455f6bd9e2891ac8781c05"}, {"id": "fls_xz5otkhogn31", "number": "5.1.4:2", "link": "patterns.html#fls_xz5otkhogn31", "checksum": "6b5457b32a2fa8723c542bd4b63d6de477dfc4e8406457a6b0ec05a421fbb295"}, {"id": "fls_t8sjzsif2ilf", "number": "5.1.4:3", "link": "patterns.html#fls_t8sjzsif2ilf", "checksum": "853158ce8e75116be9bf2d63bc0d49626010b9d0fa0c5ebe80a595ef4da37aa3"}, {"id": "fls_zcswsyuitexi", "number": "5.1.4:4", "link": "patterns.html#fls_zcswsyuitexi", "checksum": "32107632e6d0b56902397df91b587c925c1cf6ce0a1f364dd9a3708ce1e015f6"}, {"id": "fls_hf19k8swu8ff", "number": "5.1.4:5", "link": "patterns.html#fls_hf19k8swu8ff", "checksum": "c1c27a19deb008cded1ee11e11c906c699c4a1a086d847190fd58dcc97f4785c"}, {"id": "fls_bv9psmitxfuw", "number": "5.1.4:6", "link": "patterns.html#fls_bv9psmitxfuw", "checksum": "e3791cb88451803cd0eccbbf5f370fc3c972abe87f321825dc692aacb617742b"}, {"id": "fls_sl47k9oj5p7t", "number": "5.1.4:7", "link": "patterns.html#fls_sl47k9oj5p7t", "checksum": "7f7d5841b9bc8e1f3eca2f3f52fb1c78bb016e93d8212e3225a673fd4bc4b053"}, {"id": "fls_cfoy86mkmqa4", "number": "5.1.4:8", "link": "patterns.html#fls_cfoy86mkmqa4", "checksum": "02aca8f7474b9b51097bfc5d6ab6e5f5fe22f7bd5eb8847ee5d4f3b70392c46b"}, {"id": "fls_rnppz6y5z8pi", "number": "5.1.4:9", "link": "patterns.html#fls_rnppz6y5z8pi", "checksum": "1c34cc598291b31ea8a8e18057c24a39a3b1260ccf47acdefb76df1c0ffd1b05"}, {"id": "fls_ag6m4mvpturw", "number": "5.1.4:10", "link": "patterns.html#fls_ag6m4mvpturw", "checksum": "686e4dfe42f5f913ee2465c883ade027d7e59e9e065e490993681639adbc6114"}, {"id": "fls_pedy2pqrvnx7", "number": "5.1.4:11", "link": "patterns.html#fls_pedy2pqrvnx7", "checksum": "0156b2335414d9b4db2b75d75ed55fbca446bd1b5b81604e0171ea7872fd44a2"}, {"id": "fls_u59rilepu8z9", "number": "5.1.4:12", "link": "patterns.html#fls_u59rilepu8z9", "checksum": "828f48eb56377d3b46c0da453d4e59253c0dc1419ef356ebdec3471ff072a7ef"}], "informational": false}, {"id": "fls_6tl1fx99yn6c", "number": "5.1.5", "title": "Range Patterns", "link": "patterns.html#range-patterns", "paragraphs": [{"id": "fls_okupyoav13rm", "number": "5.1.5:1", "link": "patterns.html#fls_okupyoav13rm", "checksum": "959fe2ad28f3934a1ce306646ec29b82f95de36f84a5c69840957aeac1b88eb9"}, {"id": "fls_jhchm7dy927k", "number": "5.1.5:2", "link": "patterns.html#fls_jhchm7dy927k", "checksum": "0b382770b9780b9239f762eb87f95835b03588805b1a4b3def28336d666ff7a1"}, {"id": "fls_q86j23iiqv8w", "number": "5.1.5:3", "link": "patterns.html#fls_q86j23iiqv8w", "checksum": "1cfc9d659ff30640a5179ad40746d5c08c3c187b5271f28b88305b4de6ba138a"}, {"id": "fls_akf9x5r6e0ta", "number": "5.1.5:4", "link": "patterns.html#fls_akf9x5r6e0ta", "checksum": "2730f4be7e58310acdcc2e8df0d5792b76b2437850f3bea63f0e94ad25e46eee"}, {"id": "fls_vrpr6ttpfpal", "number": "5.1.5:5", "link": "patterns.html#fls_vrpr6ttpfpal", "checksum": "0ba8c1ec907ade4c15c689e735f0a5a8b187b5496f656c893968eca7e5468b54"}, {"id": "fls_nk48gregn3me", "number": "5.1.5:6", "link": "patterns.html#fls_nk48gregn3me", "checksum": "656232ce77042076d43593f3f21939aac2c7066d0c750836345ff9ec0a42124b"}, {"id": "fls_83v1xqbebs58", "number": "5.1.5:7", "link": "patterns.html#fls_83v1xqbebs58", "checksum": "6316acea87cf2eeeb7b2e0acb3d99f9f56716dc64ba70e167716659033b9bde4"}, {"id": "fls_2hpuccwh2xml", "number": "5.1.5:8", "link": "patterns.html#fls_2hpuccwh2xml", "checksum": "785db35c5291babacd0f8648588325297f8f45c2eebe7fb665e52b8ac76eca68"}, {"id": "fls_9kk81isk0mlp", "number": "5.1.5:9", "link": "patterns.html#fls_9kk81isk0mlp", "checksum": "0c9d1f2587c2e5d8ed9ee166a68762909b9b7936245dc9d2341c1f7df6670e6e"}, {"id": "fls_s2b5n4snc4d7", "number": "5.1.5:10", "link": "patterns.html#fls_s2b5n4snc4d7", "checksum": "88a5cfae2ddc1c38d1df4a2dc1b86e99bcced79bc5b40afef543633e7c48bce9"}, {"id": "fls_4o4ge6x9a8rs", "number": "5.1.5:11", "link": "patterns.html#fls_4o4ge6x9a8rs", "checksum": "b55a395def7ce875a26f0fe8a3f186342864481fa72edba9c13c5d5f3f93c9e6"}, {"id": "fls_6o995ak4hywq", "number": "5.1.5:12", "link": "patterns.html#fls_6o995ak4hywq", "checksum": "fe437f18136d4053707f9c2e3b8a79e527d78c77863abc6bfd04f4a73204d3b5"}, {"id": "fls_3js1645tgh31", "number": "5.1.5:13", "link": "patterns.html#fls_3js1645tgh31", "checksum": "5d22fc340f1c7e324df48a970cf5ae8a4811f8a5ad3880704eda257dd3d2add8"}, {"id": "fls_wfqrbwrogjnq", "number": "5.1.5:14", "link": "patterns.html#fls_wfqrbwrogjnq", "checksum": "0258d7139362363521a799c8ad54725da66ba2ef0bd98e5d4a941a507679ac3e"}, {"id": "fls_rgr7t33s0m7m", "number": "5.1.5:15", "link": "patterns.html#fls_rgr7t33s0m7m", "checksum": "4993d699bb304cc5b32245e03cfd7425d322876b5dc54fef12048c5874c667c0"}, {"id": "fls_5ey5mj8t8knd", "number": "5.1.5:16", "link": "patterns.html#fls_5ey5mj8t8knd", "checksum": "0315d5b53fda43c91943de2a08eda96b79f469004237b8d0f02f52f4c1f35567"}, {"id": "fls_z4js96mchcsv", "number": "5.1.5:17", "link": "patterns.html#fls_z4js96mchcsv", "checksum": "9f6d9020a6778f7a34629150159b8a67764f0aea6638d4f0d47a20fc22fbe70e"}, {"id": "fls_3wwpq8i6mo2a", "number": "5.1.5:18", "link": "patterns.html#fls_3wwpq8i6mo2a", "checksum": "c5f72fee7eaf39bc3ba6e09ef2aeadf91898aa80c3ec33ac0edcf6154204e82f"}], "informational": false}, {"id": "fls_d2sc9hl3v0mk", "number": "5.1.6", "title": "Reference Patterns", "link": "patterns.html#reference-patterns", "paragraphs": [{"id": "fls_fhahcc1mz2qh", "number": "5.1.6:1", "link": "patterns.html#fls_fhahcc1mz2qh", "checksum": "0ac86e5a12c490f5eb80008b0e18cc9da39af2074dfbdc99545777192814afa3"}, {"id": "fls_x0bmzl1315gq", "number": "5.1.6:2", "link": "patterns.html#fls_x0bmzl1315gq", "checksum": "6a57abc9dd69b10cfed97889b75688970d20e1d41ef2a43eb713a41472cebe59"}, {"id": "fls_fedo8zhgpla5", "number": "5.1.6:3", "link": "patterns.html#fls_fedo8zhgpla5", "checksum": "cdf387e98a664c3724ff90541e30f67670be603da49923fcb4e3a4ee54ba432e"}, {"id": "fls_30u9ij164ww3", "number": "5.1.6:4", "link": "patterns.html#fls_30u9ij164ww3", "checksum": "b78639be70162116c61abcb66a81cfa0e2adb505b2a71ffb60f9639cf7a038d5"}, {"id": "fls_d1kc73hpncpo", "number": "5.1.6:5", "link": "patterns.html#fls_d1kc73hpncpo", "checksum": "cc0ee91216508f36e23696e7ee09cd4fa77b065e4c323a2cf3610c891336fe3f"}, {"id": "fls_mpeuhov0umfa", "number": "5.1.6:6", "link": "patterns.html#fls_mpeuhov0umfa", "checksum": "a25a7095fc72a731e04329d8ab3d3101d3671e76267de53f09aa6d749f866a5d"}], "informational": false}, {"id": "fls_7wpgnp4kjq82", "number": "5.1.7", "title": "Rest Patterns", "link": "patterns.html#rest-patterns", "paragraphs": [{"id": "fls_eso51epfofxb", "number": "5.1.7:1", "link": "patterns.html#fls_eso51epfofxb", "checksum": "071b1b905e799a04118d9b0fe22e82b9944ef00a527e80a327c0c4f6511fd52b"}, {"id": "fls_5a75a2y43uev", "number": "5.1.7:2", "link": "patterns.html#fls_5a75a2y43uev", "checksum": "d787720d08f2fd60c09276b2b5be62b0bd3a0ad5aef799a71bacba9691897fda"}, {"id": "fls_rsqyza99vl3x", "number": "5.1.7:3", "link": "patterns.html#fls_rsqyza99vl3x", "checksum": "3bf650bd8078af8405ff969b3616899e1bc80ef2ef591d2b291cf99f03008f32"}, {"id": "fls_w1pw40phsv2o", "number": "5.1.7:4", "link": "patterns.html#fls_w1pw40phsv2o", "checksum": "11486a40e40c1eaa6529d06f4f52771cd804d9d0cea29d215e5e9e6748877b01"}, {"id": "fls_x8ylgxrf9ca", "number": "5.1.7:5", "link": "patterns.html#fls_x8ylgxrf9ca", "checksum": "318a513cb1fdf4e37047eccc4975636818c7cd86126e00b5b3e132411c629003"}, {"id": "fls_zgoke73xrhk3", "number": "5.1.7:6", "link": "patterns.html#fls_zgoke73xrhk3", "checksum": "de50b523931b5b23b262977da389190179884668be06d4b514d2908f9ad2aeab"}, {"id": "fls_bdcv6rwx0fsv", "number": "5.1.7:7", "link": "patterns.html#fls_bdcv6rwx0fsv", "checksum": "3e6c88357b38cf981ef309c03b2df1cb25d9f796365ca21fbbd67f2d4571cd42"}, {"id": "fls_qz9guhlg19j3", "number": "5.1.7:8", "link": "patterns.html#fls_qz9guhlg19j3", "checksum": "c6203fbb28f63565945031f16bc7f7096f16bee4c02f2c16161cb0c3cf80c7a5"}], "informational": false}, {"id": "fls_qte70mgzpras", "number": "5.1.8", "title": "Slice Patterns", "link": "patterns.html#slice-patterns", "paragraphs": [{"id": "fls_qqiu594hki8g", "number": "5.1.8:1", "link": "patterns.html#fls_qqiu594hki8g", "checksum": "f9dbdad2eec41e1e1c60cd8c0cacf14973b904c94631089f41ca0e1bbda98a17"}, {"id": "fls_h6x9xlxi7y5n", "number": "5.1.8:2", "link": "patterns.html#fls_h6x9xlxi7y5n", "checksum": "948b35cfd7619032dc69a5d84fa17b28a615e792a6f0e0d49e140816b136e7e9"}, {"id": "fls_jbmxu7y5fnm6", "number": "5.1.8:3", "link": "patterns.html#fls_jbmxu7y5fnm6", "checksum": "b21f2e9bea39902d97b0a75bd48f584b5bcb685635cecfeab096b27a096de184"}, {"id": "fls_r78zzw7yyg34", "number": "5.1.8:4", "link": "patterns.html#fls_r78zzw7yyg34", "checksum": "9ea93d82c4cebaa6550a0787f2925118cf5370ed8a0c02104b3a623c197ae9c1"}, {"id": "fls_ndor56nou676", "number": "5.1.8:5", "link": "patterns.html#fls_ndor56nou676", "checksum": "93891609dbf9042a20ed470adda1893453d146707a716c6a05793ff9c64e10f0"}, {"id": "fls_9yuobz1jsehf", "number": "5.1.8:6", "link": "patterns.html#fls_9yuobz1jsehf", "checksum": "b7fb9cf107baa52a1c3140dbb24ee079813601a2c74f83321a61e14127737833"}], "informational": false}, {"id": "fls_7dbd5t2750ce", "number": "5.2", "title": "Struct Patterns", "link": "patterns.html#struct-patterns", "paragraphs": [{"id": "fls_vjdkpr3zml51", "number": "5.2:1", "link": "patterns.html#fls_vjdkpr3zml51", "checksum": "d667b4f41510c041296f0f8c9950b33a0e697269e268024bd87aac1d04c4b450"}, {"id": "fls_6o3x101wo478", "number": "5.2:2", "link": "patterns.html#fls_6o3x101wo478", "checksum": "1226159f94faa8a70839d078914f48a7ec073bb47550a83a77554fab5106550c"}, {"id": "fls_k9zih9s0oe5h", "number": "5.2:3", "link": "patterns.html#fls_k9zih9s0oe5h", "checksum": "4951a056adbfabc5da1900d164468c7f4be7716b2094657ab9e28e53f3b985a9"}, {"id": "fls_r8rat3qmc4hy", "number": "5.2:4", "link": "patterns.html#fls_r8rat3qmc4hy", "checksum": "b68597321297c9f745d6b9be53beda335702f6e28a1bb97a08c277dac931130d"}, {"id": "fls_hux723dmlg2a", "number": "5.2:5", "link": "patterns.html#fls_hux723dmlg2a", "checksum": "c8b65f1ad8bbb7a147b1cfa9636cd2ebe6b61c1727898f08637df63d004a8391"}, {"id": "fls_p4oplpuvs04l", "number": "5.2:6", "link": "patterns.html#fls_p4oplpuvs04l", "checksum": "5b84c7b52bafc282a2d2f47804bec3323bbdacc365ee09d0099d08c9d131bf81"}, {"id": "fls_pre3ywav01fe", "number": "5.2:7", "link": "patterns.html#fls_pre3ywav01fe", "checksum": "0bdc00a13a57ef1c0b6611c62de6e170f3d281e81b68d9cf86a7b8f227180905"}, {"id": "fls_mk83we0idqnf", "number": "5.2:8", "link": "patterns.html#fls_mk83we0idqnf", "checksum": "8bfb976bafb3e725050a2a415fd644fc9981cf4b45e809c13c254477bafe4502"}], "informational": false}, {"id": "fls_nruvg0es3kx7", "number": "5.2.1", "title": "Record Struct Patterns", "link": "patterns.html#record-struct-patterns", "paragraphs": [{"id": "fls_g6dytd6aq62d", "number": "5.2.1:1", "link": "patterns.html#fls_g6dytd6aq62d", "checksum": "939f66a2cc6a712f7ec20d7536b02ec2600f18a1799b2144aea19eec95022846"}, {"id": "fls_3px4oiweg9dm", "number": "5.2.1:2", "link": "patterns.html#fls_3px4oiweg9dm", "checksum": "62c9ac85366cbfb730c4705821715b95ce875f485a87b252fa3dd810128a62b6"}, {"id": "fls_mnh35ehva8tx", "number": "5.2.1:3", "link": "patterns.html#fls_mnh35ehva8tx", "checksum": "e1814d800e0feb6269bf895ed95022e6deb5cc33cc635c2bb63b14baec538159"}, {"id": "fls_p2rjnlbvifaa", "number": "5.2.1:4", "link": "patterns.html#fls_p2rjnlbvifaa", "checksum": "3e48a4f72d15cce2c39a5d3dc6ee479532f77da0b1bf93691b99fc840384f6fe"}, {"id": "fls_23be2x50at14", "number": "5.2.1:5", "link": "patterns.html#fls_23be2x50at14", "checksum": "6645895b56834ed4cc394b448f835a215f06b82857dcc694fa41f1413c2e8780"}, {"id": "fls_46u4ddj0yf93", "number": "5.2.1:6", "link": "patterns.html#fls_46u4ddj0yf93", "checksum": "a4aa45e4d07c9304ffcc9d862e913507d5000a1730b669278ac285dc603a771c"}, {"id": "fls_qu3dvfdq6oy7", "number": "5.2.1:7", "link": "patterns.html#fls_qu3dvfdq6oy7", "checksum": "7df489a39e2a1942c161d32a9ce2ef5ce0e4848eab53b9ff7321c1d546572c74"}, {"id": "fls_4b2hchdzv30u", "number": "5.2.1:8", "link": "patterns.html#fls_4b2hchdzv30u", "checksum": "b07b1a9330e57dc967b57e196fbc8f1a408952860995a438d3d757900c0a9bb5"}, {"id": "fls_9wfizujx0szd", "number": "5.2.1:9", "link": "patterns.html#fls_9wfizujx0szd", "checksum": "a8132d829bf34f884995af4cb9ae77e246d14ffc39f464dfd0579841244ed1a7"}, {"id": "fls_jth9hur0qsib", "number": "5.2.1:10", "link": "patterns.html#fls_jth9hur0qsib", "checksum": "6e903cc0782eee63efea8b0c7d9bd83aaeca3c3659c72b4f1b64b24dbae63273"}, {"id": "fls_as54u97xis8z", "number": "5.2.1:11", "link": "patterns.html#fls_as54u97xis8z", "checksum": "c8519c37bf9a85c68075db3cb98c5ff8ab8db77174740ac05497368044b20534"}, {"id": "fls_8364ueejn5y3", "number": "5.2.1:12", "link": "patterns.html#fls_8364ueejn5y3", "checksum": "3515e0658c65c83d72e0dd7ad0e82d86216d338c31040d3e27832951a2aa83b5"}, {"id": "fls_7t0be1w2hq3c", "number": "5.2.1:13", "link": "patterns.html#fls_7t0be1w2hq3c", "checksum": "f951f3c203a03b558cf318fb35a3313fa155405830ed6d804fcdea0b828eb716"}, {"id": "fls_3vgmkm2mzwwy", "number": "5.2.1:14", "link": "patterns.html#fls_3vgmkm2mzwwy", "checksum": "6103ce2aaa63552db1ddd1712d330355e209efd8b3f05e2ee118128d79c0f57a"}, {"id": "fls_m91ith3rjy79", "number": "5.2.1:15", "link": "patterns.html#fls_m91ith3rjy79", "checksum": "b94ca5c69e41ecdd7da89cf82764d0e4561528548bd0a3491afd0dcc1dc27452"}, {"id": "fls_c09jf2vpcr58", "number": "5.2.1:16", "link": "patterns.html#fls_c09jf2vpcr58", "checksum": "b71b81a6c560dbce28bfa29908e6476ea8fd75a9b27df354ac6d310149124194"}, {"id": "fls_4h00oqypa8qg", "number": "5.2.1:17", "link": "patterns.html#fls_4h00oqypa8qg", "checksum": "cb358844aa1dd3a9c5395b092c62c4e62c28a58e0b909d2c9d99344e409fafac"}, {"id": "fls_195mqijyrnam", "number": "5.2.1:18", "link": "patterns.html#fls_195mqijyrnam", "checksum": "2406df736b1c1b7e052beb8d6a704041b3804de21cf83ac7e64bb84ea5c0180f"}, {"id": "fls_ta0vdoqmt2k1", "number": "5.2.1:19", "link": "patterns.html#fls_ta0vdoqmt2k1", "checksum": "685de37c2ee81a66dccabb7f81942c82479d896f00e1e1334d4a60a9ea3b6bdc"}, {"id": "fls_f0u0j4q90lpl", "number": "5.2.1:20", "link": "patterns.html#fls_f0u0j4q90lpl", "checksum": "c02d71a02dfad46132450d2be620a7cabbd2eabf47c6bd9b01945121cd5d3aa0"}, {"id": "fls_8bi8q3usubby", "number": "5.2.1:21", "link": "patterns.html#fls_8bi8q3usubby", "checksum": "b0f4dad87afccd06af733d465607f36dcde450f57438e710856d594b3dfb6e8d"}, {"id": "fls_1x0o71kxj3yq", "number": "5.2.1:22", "link": "patterns.html#fls_1x0o71kxj3yq", "checksum": "da482f0aac1389101e1acc7d29df971ea52cbb5a914a549589717f367179ec59"}, {"id": "fls_1thgpx95lfg5", "number": "5.2.1:23", "link": "patterns.html#fls_1thgpx95lfg5", "checksum": "d75c1d570151a0c0add5bd9dbd8879ab364860d21ddd5a1981f20b5a358d8ac6"}, {"id": "fls_rpo1wimbmzhc", "number": "5.2.1:24", "link": "patterns.html#fls_rpo1wimbmzhc", "checksum": "014416678ebb189d6688fb5242e5205e11770c286ca59a48f79dda7f6ae4a8b1"}, {"id": "fls_brhtaaxt1s3s", "number": "5.2.1:25", "link": "patterns.html#fls_brhtaaxt1s3s", "checksum": "5dfa02c07c1e043d1fbc3b8eab7d4555147d7e61752f59b311c2486f4a53c2ef"}, {"id": "fls_jwz3arnfkxwn", "number": "5.2.1:26", "link": "patterns.html#fls_jwz3arnfkxwn", "checksum": "bc8d158c05838e267c985dd76e4808b795b9c9b82d65690a8d2744bf8753e87e"}, {"id": "fls_pfz8xlwezbw1", "number": "5.2.1:27", "link": "patterns.html#fls_pfz8xlwezbw1", "checksum": "cd32c48d96ca8821d8b097e61f7031858e9955ae4cb198bb1001a71624f77a7f"}, {"id": "fls_xfkbjze6k1o2", "number": "5.2.1:28", "link": "patterns.html#fls_xfkbjze6k1o2", "checksum": "892be146ad066dad2bd25128cc3091054cbd49abdf7268f54e6f21339362e750"}, {"id": "fls_mu166csowj71", "number": "5.2.1:29", "link": "patterns.html#fls_mu166csowj71", "checksum": "3dda2685fefad7736c09572d77850f39aea37aff6a75b4775df949965c478004"}, {"id": "fls_y09fygnglu3n", "number": "5.2.1:30", "link": "patterns.html#fls_y09fygnglu3n", "checksum": "ae7dbf4db5d0804bb1b4f47f1a3d6ac4f752d00aacb5fd25e7d8f748f4760adc"}, {"id": "fls_2tadaatmauzk", "number": "5.2.1:31", "link": "patterns.html#fls_2tadaatmauzk", "checksum": "b61a46d5ed3d3618df19128c327bc64de735101d00f7fc3b645d60b73ded72dd"}, {"id": "fls_oq30xkmvyz72", "number": "5.2.1:32", "link": "patterns.html#fls_oq30xkmvyz72", "checksum": "d75819f44a8d7f85c50196f3a44487fcbfdaa07c19627675b6bb09b4f2fc97c4"}, {"id": "fls_9y1gbv47z23o", "number": "5.2.1:33", "link": "patterns.html#fls_9y1gbv47z23o", "checksum": "5f55bfd0214be05b8229314e347c9671c485811ab7606a2c8c5a06c39aa89aae"}, {"id": "fls_dhtv2bprfvbb", "number": "5.2.1:34", "link": "patterns.html#fls_dhtv2bprfvbb", "checksum": "013fca3143fcb9507c780ebe41cc1f74a40222e55f6c4b695758e3b78c605d12"}], "informational": false}, {"id": "fls_vlrto778v49m", "number": "5.2.2", "title": "Tuple Struct Patterns", "link": "patterns.html#tuple-struct-patterns", "paragraphs": [{"id": "fls_ks6y1syab2bp", "number": "5.2.2:1", "link": "patterns.html#fls_ks6y1syab2bp", "checksum": "398db4748805660067dff91c2d8c07f0ce9a02f750eedab4d786b7097ea8a772"}, {"id": "fls_t1mrijw16k9a", "number": "5.2.2:2", "link": "patterns.html#fls_t1mrijw16k9a", "checksum": "c49ac22e3f94f28c61a3b041503608d3e3f6a337ad9fdd9162106b3e8a729ddd"}, {"id": "fls_ryfcrqrkp28y", "number": "5.2.2:3", "link": "patterns.html#fls_ryfcrqrkp28y", "checksum": "caed82759506953820cc05207e2ff166b8c73479f82882f1d52cec340b5ea5f2"}, {"id": "fls_ehf9r6halgh1", "number": "5.2.2:4", "link": "patterns.html#fls_ehf9r6halgh1", "checksum": "52efa16e2d2072309e596e1e678e1ed4c435a2a10a044d200823d457ae75c86b"}, {"id": "fls_5lo1hs8wzz0t", "number": "5.2.2:5", "link": "patterns.html#fls_5lo1hs8wzz0t", "checksum": "88a50cbe98942f52e03b0825ff7e25f2b0c89e3c3a66979381da5376a170cee7"}, {"id": "fls_gwuc2xffosu", "number": "5.2.2:6", "link": "patterns.html#fls_gwuc2xffosu", "checksum": "3dc2817ca063542426c88f985729203dbe054c09d6efe49d7eb52097ec52bca6"}, {"id": "fls_w369n8lmwr7g", "number": "5.2.2:7", "link": "patterns.html#fls_w369n8lmwr7g", "checksum": "541bd9b4e34b9b13bac861950cbc1ff7a06f887ca4d3a08d65ca538b08a21639"}, {"id": "fls_4is6h95jj3gd", "number": "5.2.2:8", "link": "patterns.html#fls_4is6h95jj3gd", "checksum": "ca44a0d983f6a2c58de0d0da866f70042fb1589545be9d179d6b19542bf94f4f"}, {"id": "fls_budf0rpsa4lx", "number": "5.2.2:9", "link": "patterns.html#fls_budf0rpsa4lx", "checksum": "d8b0cbea39dac23dc53d3b24c98a4832ca33e84bd17e7a35598838c1ec69d58b"}, {"id": "fls_vo6mtauh4qhb", "number": "5.2.2:10", "link": "patterns.html#fls_vo6mtauh4qhb", "checksum": "f47bc7199534d69e8491c54e3507a6dab7fa624a91bc061b87c451e8ed8af807"}, {"id": "fls_rco3fwlx2a76", "number": "5.2.2:11", "link": "patterns.html#fls_rco3fwlx2a76", "checksum": "9e91b8f7ea80554c6c9d801b284fd737f8072273ca2869a7a1a7c23f6cba1e10"}, {"id": "fls_4vrnxslad09e", "number": "5.2.2:12", "link": "patterns.html#fls_4vrnxslad09e", "checksum": "435aadfae6890acd5b2f7c089d2bf6c6bde46b865278bc446f816f2900ad444d"}, {"id": "fls_qgilaqy5zx7q", "number": "5.2.2:13", "link": "patterns.html#fls_qgilaqy5zx7q", "checksum": "c18b1eaabbf21d6d906c4d4255fe8e1efcf58af3fbebbfffa7348ac6b6edf3c5"}, {"id": "fls_2u99arsbnlnk", "number": "5.2.2:14", "link": "patterns.html#fls_2u99arsbnlnk", "checksum": "9d386d3779e3a03ab5fa632bb3790b3682a87d11304efd42205239ba9080f938"}], "informational": false}, {"id": "fls_urbr5rg9206v", "number": "5.2.3", "title": "Tuple Patterns", "link": "patterns.html#tuple-patterns", "paragraphs": [{"id": "fls_e2manugp4e0b", "number": "5.2.3:1", "link": "patterns.html#fls_e2manugp4e0b", "checksum": "86e5cf86cc1727a1ec3d2c9b3c7770ba2d5a0a0be11e05f181cf89208cef7e8f"}, {"id": "fls_xk8udu4k61kj", "number": "5.2.3:2", "link": "patterns.html#fls_xk8udu4k61kj", "checksum": "968065a0acde4dc1fc6772c9a80d889371d997d4d812bece3bb143b855b791f3"}, {"id": "fls_yhcaz6v49ub2", "number": "5.2.3:3", "link": "patterns.html#fls_yhcaz6v49ub2", "checksum": "c046f561eb355602680f839ad87e202a633dd889397bbc12f7027ffc7b5a284a"}, {"id": "fls_6wcm0ra8nql4", "number": "5.2.3:4", "link": "patterns.html#fls_6wcm0ra8nql4", "checksum": "208f90ce72da5d32c30755d34df67702194f5fe887e9c7a1bd0554c4718eeede"}, {"id": "fls_a3qvqjyilorx", "number": "5.2.3:5", "link": "patterns.html#fls_a3qvqjyilorx", "checksum": "d4a0b43d9d6a5e0b17d67fcdf081a940f340d1b85d971f31c684778d9986fb2b"}, {"id": "fls_kmihfxlbyelz", "number": "5.2.3:6", "link": "patterns.html#fls_kmihfxlbyelz", "checksum": "289e79602b945e44a6b259d8d0c1e225e914afa943874c7698ef97f89f8f3def"}, {"id": "fls_5bxqiakifclg", "number": "5.2.3:7", "link": "patterns.html#fls_5bxqiakifclg", "checksum": "bd944455b4e5b2992d60a0276dd284685483fbdb2ce0a6e8b861676e3d2069b7"}, {"id": "fls_sohcavfglv5f", "number": "5.2.3:8", "link": "patterns.html#fls_sohcavfglv5f", "checksum": "47877ba9b3984b4661b6db0b34526c8edb770ea1f800c33d64c5523a6d44b8f2"}, {"id": "fls_iikvys61959s", "number": "5.2.3:9", "link": "patterns.html#fls_iikvys61959s", "checksum": "325628fddc5edcfee5dde126d580262949d54d516c4f6d9243baff7c4f607da9"}, {"id": "fls_f4k6ljup8amf", "number": "5.2.3:10", "link": "patterns.html#fls_f4k6ljup8amf", "checksum": "80b589c7aaacf22228397ab8de7f859870551fa23bbc58316341c4fe297455b0"}, {"id": "fls_gjjcdkvjpqs8", "number": "5.2.3:11", "link": "patterns.html#fls_gjjcdkvjpqs8", "checksum": "d0a0133555000675455b2bf5ab37681e6e7bb93783c7e8ebd5178f80704e6ce1"}, {"id": "fls_9qw9n87swwne", "number": "5.2.3:12", "link": "patterns.html#fls_9qw9n87swwne", "checksum": "46bd974ba3f88ec8c528de9c9907e74139719b19f51d32a06f37cede033afd44"}, {"id": "fls_cq84wklyrajv", "number": "5.2.3:13", "link": "patterns.html#fls_cq84wklyrajv", "checksum": "f1887b73be484d54fe02b6a04ea8aee012209872ae40fb9179a705c3f4856242"}, {"id": "fls_cc6ohnuiltfl", "number": "5.2.3:14", "link": "patterns.html#fls_cc6ohnuiltfl", "checksum": "176644151cc57b936a43b35578e7182a3c89ac881b62ba4e3aa5bfede1008ecf"}, {"id": "fls_8r81vtv5hnrd", "number": "5.2.3:15", "link": "patterns.html#fls_8r81vtv5hnrd", "checksum": "c479906bca39314417e1caa942e7ef8efbb0987857a2c5ea2e3dc30d69cc4a20"}], "informational": false}, {"id": "fls_qfsfnql1t7m", "number": "5.2.4", "title": "Underscore Patterns", "link": "patterns.html#underscore-patterns", "paragraphs": [{"id": "fls_dreny9e0ei6r", "number": "5.2.4:1", "link": "patterns.html#fls_dreny9e0ei6r", "checksum": "ffe05e2b6f44aab3204db8f037bcbabda722b0b2a4c36233bd344165b0915664"}, {"id": "fls_42fye1v0th8l", "number": "5.2.4:2", "link": "patterns.html#fls_42fye1v0th8l", "checksum": "512af904f1afbc0ae83e21197bac2017c65eb4d2820eb33ef0e964251753ac99"}, {"id": "fls_b87mvrcc13f2", "number": "5.2.4:3", "link": "patterns.html#fls_b87mvrcc13f2", "checksum": "4df12d4b4abe0cd1029651c34033e70582bd69ad83cfc6a3a733e4bf20d8da0a"}, {"id": "fls_j3u6x1ensrbe", "number": "5.2.4:4", "link": "patterns.html#fls_j3u6x1ensrbe", "checksum": "8ae58cda06fc53f1738c98075991062f64264fcb87108570d670eb709bdfc97f"}], "informational": false}, {"id": "fls_qssijtofa9i8", "number": "5.3", "title": "Binding Modes", "link": "patterns.html#binding-modes", "paragraphs": [{"id": "fls_7xby6d1903kw", "number": "5.3:1", "link": "patterns.html#fls_7xby6d1903kw", "checksum": "ce737fd6a8e0011aa5361836e179e7da00b62d001685d8a3099eda2e5f94ff52"}, {"id": "fls_vnh9wfrvumdz", "number": "5.3:2", "link": "patterns.html#fls_vnh9wfrvumdz", "checksum": "ee24110781d1935c43cf0567d764e1aadf2cc3db7f17740efe4e767ac0ee9632"}, {"id": "fls_rvic5uezpquv", "number": "5.3:3", "link": "patterns.html#fls_rvic5uezpquv", "checksum": "3689001f3e5a3fadb5bce3f16c76e8babf3aa8a1b12b24dc1d08cc2709b6336c"}, {"id": "fls_6lxtoxebd5it", "number": "5.3:4", "link": "patterns.html#fls_6lxtoxebd5it", "checksum": "1a8541da9715b497aff0fb8fd6116cd249a0350898d3dd89d00b2c30c7e82671"}, {"id": "fls_xnxqn8sgpz3o", "number": "5.3:5", "link": "patterns.html#fls_xnxqn8sgpz3o", "checksum": "0b306a42847f796ecf6339eefc0af21e5781a2cde421ae3141018b146e11ffb0"}, {"id": "fls_dqe75i8h2fie", "number": "5.3:6", "link": "patterns.html#fls_dqe75i8h2fie", "checksum": "0871ae0bb0826a8d223e8c2cee52f184b7c0e39f86c5063fcd676f7fbc614365"}, {"id": "fls_y3wuvj1y5j20", "number": "5.3:7", "link": "patterns.html#fls_y3wuvj1y5j20", "checksum": "959846317dd64ecd23fd6c93f96608048d818682c7cd48599dfffcd231a8557a"}, {"id": "fls_55jtzh6a292x", "number": "5.3:8", "link": "patterns.html#fls_55jtzh6a292x", "checksum": "edc7cf534c55c29625cd191432a05763797465d54cbd387fee8127a17ad0f1ed"}, {"id": "fls_qcaf2kup7zn0", "number": "5.3:9", "link": "patterns.html#fls_qcaf2kup7zn0", "checksum": "174692122d916648a54e197fff15a1e7bf17984b9523fd06224c71a7484e0445"}, {"id": "fls_6acdqz8rwnn", "number": "5.3:10", "link": "patterns.html#fls_6acdqz8rwnn", "checksum": "c9dfbc0519fed7bb3f112777102c928f15a4d5c3cfc13d4d3017e9c15259ce08"}, {"id": "fls_tv0avib387bv", "number": "5.3:11", "link": "patterns.html#fls_tv0avib387bv", "checksum": "61b076c4aa153ed7b1ed996845d08b881a2327bfe131501f20b3ae9b3a2c042d"}, {"id": "fls_dbgmwldye42e", "number": "5.3:12", "link": "patterns.html#fls_dbgmwldye42e", "checksum": "a30925ea032d35a24204cb5c81fc5ad636e77d19ce00fb38615985b1bec396d6"}, {"id": "fls_t34oqarwcusu", "number": "5.3:13", "link": "patterns.html#fls_t34oqarwcusu", "checksum": "e9940ece8b67430f6507527efb4e0837eea8ecd615884b2d4a3773018ca5df88"}, {"id": "fls_7gxb74u1np36", "number": "5.3:14", "link": "patterns.html#fls_7gxb74u1np36", "checksum": "94de4c12fad70f9cac54c2a50a2c65b9a5d0f42b1847bddbbb2e5c23d1e9917c"}, {"id": "fls_7y56d0ulxomf", "number": "5.3:15", "link": "patterns.html#fls_7y56d0ulxomf", "checksum": "7b6cefba0ed64069e11e48d9eddf7bdab4f5ec7b32d73b3a9c0c92d7fd078d3a"}, {"id": "fls_pxvtqxke1enp", "number": "5.3:16", "link": "patterns.html#fls_pxvtqxke1enp", "checksum": "7a06ffc02f7927cd15e2513d53f8a618b2100301b066a92e111ba6ce488b6941"}], "informational": false}, {"id": "fls_jm6l7b90h6wa", "number": "5.4", "title": "Pattern Matching", "link": "patterns.html#pattern-matching", "paragraphs": [{"id": "fls_tlwr4u7bjhh5", "number": "5.4:1", "link": "patterns.html#fls_tlwr4u7bjhh5", "checksum": "6b0c9b448ffa1317860d5ce72327a183542c035ca71f57b637fe069226784ff8"}, {"id": "fls_67ajub7d2b4c", "number": "5.4:2", "link": "patterns.html#fls_67ajub7d2b4c", "checksum": "b6d21ac4978904629594c63e865c13ff0e8188557a1ee1fc16bf38d292273905"}, {"id": "fls_62626ws222op", "number": "5.4:3", "link": "patterns.html#fls_62626ws222op", "checksum": "d6e77f76c3b70cd441241b2ddcb2ece4258490b36edc54866617c3d56b1d1db9"}, {"id": "fls_q0z46h1gnzez", "number": "5.4:4", "link": "patterns.html#fls_q0z46h1gnzez", "checksum": "6867ae30832eda7ee1fee559e718d1cc657447cfdb727917e47a405431cbb8fc"}, {"id": "fls_1r0vm6rg13o9", "number": "5.4:5", "link": "patterns.html#fls_1r0vm6rg13o9", "checksum": "b919a4d8d9ed226bbf402a3d3d51992d55a4159a5723b7534992db054a299aa0"}, {"id": "fls_am5h8r887bz5", "number": "5.4:6", "link": "patterns.html#fls_am5h8r887bz5", "checksum": "7a5e47b54e578d0454d02d99d9d1735d8480757b894acfedb724f6f4945d4557"}, {"id": "fls_eppmiloh7bgg", "number": "5.4:7", "link": "patterns.html#fls_eppmiloh7bgg", "checksum": "0261db6dc821115e2d72a8963d41e3816c27ff5dec58ab612b4b0043bab2628c"}, {"id": "fls_gwc08xayno7q", "number": "5.4:8", "link": "patterns.html#fls_gwc08xayno7q", "checksum": "d8bde8dafa190be72dc04dbd04f9dcc381ba9e56fc7c59ef14e0adf12d08da99"}, {"id": "fls_19iygu12s315", "number": "5.4:9", "link": "patterns.html#fls_19iygu12s315", "checksum": "5b38e89f8e8e644db16464772877616b08bec8b5dc081183f140b1944cd02d7d"}, {"id": "fls_r307spfk6cs9", "number": "5.4:10", "link": "patterns.html#fls_r307spfk6cs9", "checksum": "e7cdc075b361ca70248b735173fd1ae43a881787197759e135ebe311f34f316a"}, {"id": "fls_qhdofvbso3gl", "number": "5.4:11", "link": "patterns.html#fls_qhdofvbso3gl", "checksum": "7e28619896a113dc0b4fcbbfbc7c0e60f3fbe58465cdd9e0c57ae6883ca75849"}, {"id": "fls_drb114dtvlpt", "number": "5.4:12", "link": "patterns.html#fls_drb114dtvlpt", "checksum": "0f085b2b200d131b0f3ad93e901232589ae5185e8b937688595401a2281802f1"}, {"id": "fls_uxysntb3u03j", "number": "5.4:13", "link": "patterns.html#fls_uxysntb3u03j", "checksum": "1b7c6f4e677eefe1fb3db44988440585f0a06c492b2c55de71cbc12e1ee26149"}, {"id": "fls_wh201rmh6u6d", "number": "5.4:14", "link": "patterns.html#fls_wh201rmh6u6d", "checksum": "8bd4950f12c3fc2761c334a84cb412e80a671197a21ca640ebe447e01836d826"}, {"id": "fls_vstdqifqipbh", "number": "5.4:15", "link": "patterns.html#fls_vstdqifqipbh", "checksum": "fd13d0bd953b8f054714e974f43ba2b7fa374ed3ffd288303907a4242b346c4e"}], "informational": false}, {"id": "fls_vnai6ag4qrdb", "number": "5.4.1", "title": "Identifier Pattern Matching", "link": "patterns.html#fls-vnai6ag4qrdb", "paragraphs": [{"id": "fls_4f3lzw64myhk", "number": "5.4.1:1", "link": "patterns.html#fls_4f3lzw64myhk", "checksum": "dd60a44dea7a972ddea069491ecd9f406558f404e901527ddd0d2149eeb48ebd"}, {"id": "fls_wauqwmdbcpna", "number": "5.4.1:2", "link": "patterns.html#fls_wauqwmdbcpna", "checksum": "aa285e853a6324a841c40d2b74e066fb6002f1fb6707b20a81ff680616eae3fc"}, {"id": "fls_3jyog8n6x2aa", "number": "5.4.1:3", "link": "patterns.html#fls_3jyog8n6x2aa", "checksum": "4aef617035a62c693b0db6e84d556a1afe10c28af4f9b0ca18065503767f6015"}, {"id": "fls_w637uvlbzsyo", "number": "5.4.1:4", "link": "patterns.html#fls_w637uvlbzsyo", "checksum": "0db8e23416d53e90ad73fa4df5b10d7e3ef8d53418d42a8860380a85d5d1163a"}, {"id": "fls_arz8ik3gf6u4", "number": "5.4.1:5", "link": "patterns.html#fls_arz8ik3gf6u4", "checksum": "1cf4f4074ffc3e6745944b1dcd726ac4b7d65f44568c669f04ddfcbe8068d57e"}, {"id": "fls_u6o5ndnezwbe", "number": "5.4.1:6", "link": "patterns.html#fls_u6o5ndnezwbe", "checksum": "5003a32c5e8a49a9e7d778d70ff05edcf2411bd284272a8bf7bd04d2df3a40fe"}, {"id": "fls_h1er04t0yta7", "number": "5.4.1:7", "link": "patterns.html#fls_h1er04t0yta7", "checksum": "de66751e709611b36e4517f705acf75d052724e2501a8c5ee5ab8c40757115e5"}], "informational": false}, {"id": "fls_azzf1llv3wf", "number": "5.4.2", "title": "Literal Pattern Matching", "link": "patterns.html#literal-pattern-matching", "paragraphs": [{"id": "fls_fqkhhgushje9", "number": "5.4.2:1", "link": "patterns.html#fls_fqkhhgushje9", "checksum": "ffb06275d46d70835ab2e118cff4b0071d02544ee94a260f428fd2b5533bed1c"}, {"id": "fls_m01eo9sa55s", "number": "5.4.2:2", "link": "patterns.html#fls_m01eo9sa55s", "checksum": "d04dcff15efbb13e790e1f78948bf446426570ec9618c3b921293adfc2012199"}, {"id": "fls_294jtwbfq3p9", "number": "5.4.2:3", "link": "patterns.html#fls_294jtwbfq3p9", "checksum": "fe6504c691ded75e993e4d66b216f7260d30ac52c0a60e35151af31c01905992"}], "informational": false}, {"id": "fls_5loglxds6zik", "number": "5.4.3", "title": "Parenthesized Pattern Matching", "link": "patterns.html#parenthesized-pattern-matching", "paragraphs": [{"id": "fls_jajvvwoy3399", "number": "5.4.3:1", "link": "patterns.html#fls_jajvvwoy3399", "checksum": "7f3d87f0e2bf7a6dc15e6e0bcda2506008be955f016459a792ea2b99d16bacbf"}], "informational": false}, {"id": "fls_d44aflefat88", "number": "5.4.4", "title": "Path Pattern Matching", "link": "patterns.html#path-pattern-matching", "paragraphs": [{"id": "fls_4faltss0xbn4", "number": "5.4.4:1", "link": "patterns.html#fls_4faltss0xbn4", "checksum": "b62c95bf3039a32f793c95cd983bcc5cd80b8faeb5d469cc963c3a487f437fae"}, {"id": "fls_fqt5w3qsykca", "number": "5.4.4:2", "link": "patterns.html#fls_fqt5w3qsykca", "checksum": "ee205e802f76cf743647cd0b8c7be7f9d118ea51ef62a9f8ccd237ee2a7c874c"}, {"id": "fls_h3y8r4298s53", "number": "5.4.4:3", "link": "patterns.html#fls_h3y8r4298s53", "checksum": "10a9ff549fbafbc317a299a46f8f61ed3ec121a3f1c97d94c1a3ae2aeee961f7"}], "informational": false}, {"id": "fls_fyskeih6twyb", "number": "5.4.5", "title": "Range Pattern Matching", "link": "patterns.html#range-pattern-matching", "paragraphs": [{"id": "fls_mrh9vfdek5fi", "number": "5.4.5:1", "link": "patterns.html#fls_mrh9vfdek5fi", "checksum": "74c808f389212d771098798db71f913b01fad773d198d3babf0a21ae6f4ce792"}, {"id": "fls_7nxkgls0a5os", "number": "5.4.5:2", "link": "patterns.html#fls_7nxkgls0a5os", "checksum": "4e77c3805f9c1fde39877a54a3b99be7582ff7dde64d6f8b033465fcfb625c8c"}, {"id": "fls_6kgj2fjccoig", "number": "5.4.5:3", "link": "patterns.html#fls_6kgj2fjccoig", "checksum": "fd8fba85c57e8cde11619040e0cf63b8bee10a4ad77a5a663655cf44f7527d00"}, {"id": "fls_n4t3xah1pk7i", "number": "5.4.5:4", "link": "patterns.html#fls_n4t3xah1pk7i", "checksum": "7ee404fd4fb97fe0f1daafdb86a76994a1056bc3cbc4571522f37b405f651572"}], "informational": false}, {"id": "fls_org6hqv397fp", "number": "5.4.6", "title": "Reference Pattern Matching", "link": "patterns.html#reference-pattern-matching", "paragraphs": [{"id": "fls_ysfgdzaiww8z", "number": "5.4.6:1", "link": "patterns.html#fls_ysfgdzaiww8z", "checksum": "b6dad8a8eb45a793423595800323ed5f357d864241174e7198f4101b4d5c9c9b"}, {"id": "fls_7rxnxd4ybxbt", "number": "5.4.6:2", "link": "patterns.html#fls_7rxnxd4ybxbt", "checksum": "9932447e7ad4cb062a332bea07f5eb902fa9f0482de8917d2a3bee05f86c2fdf"}, {"id": "fls_l2nwz166curc", "number": "5.4.6:3", "link": "patterns.html#fls_l2nwz166curc", "checksum": "b76bff46c3fb725fb95fd036da6eec2951e358e24662e16fe7a2b277948422eb"}], "informational": false}, {"id": "fls_57ic33pwdvp3", "number": "5.4.7", "title": "Slice Pattern Matching", "link": "patterns.html#slice-pattern-matching", "paragraphs": [{"id": "fls_hzyv4ofu0ny", "number": "5.4.7:1", "link": "patterns.html#fls_hzyv4ofu0ny", "checksum": "545a7b4ddaf1e7bfb2237db616a2cf9a24e53676e02591cec035c44ace0b0fd1"}, {"id": "fls_x10akxoxxbs8", "number": "5.4.7:2", "link": "patterns.html#fls_x10akxoxxbs8", "checksum": "a08c2a45fe77ae5f047f5e6cf64b8f743c4433b940e5f5fb0245051c079e7e8a"}, {"id": "fls_69bnxrtj0nar", "number": "5.4.7:3", "link": "patterns.html#fls_69bnxrtj0nar", "checksum": "00b9a97b9280c3716ddfa172c721a2bf0e2081a9fa912cffde3cda55d1197952"}, {"id": "fls_twhwiy213ibf", "number": "5.4.7:4", "link": "patterns.html#fls_twhwiy213ibf", "checksum": "c48b717f055594a928a658edaf02b1fabf8a096bdefdb3fbc8f24437462635da"}, {"id": "fls_ei7y4ul6n6hu", "number": "5.4.7:5", "link": "patterns.html#fls_ei7y4ul6n6hu", "checksum": "3f7ea24067807e7941333db26d088679f21fbd2c64a2407cf545ff6861841872"}, {"id": "fls_ad2jud5h1rfp", "number": "5.4.7:6", "link": "patterns.html#fls_ad2jud5h1rfp", "checksum": "4925bc389627a9c0258c8b5aa732c62f27ea3c62e2b3c0bbfd6e8f9c1350920e"}, {"id": "fls_pc97m47p34wq", "number": "5.4.7:7", "link": "patterns.html#fls_pc97m47p34wq", "checksum": "0a3498e1551afa3c7f492391c8187746fccf5ebb43ae48f55741d4dd39aaceab"}, {"id": "fls_kwqyisoyawz8", "number": "5.4.7:8", "link": "patterns.html#fls_kwqyisoyawz8", "checksum": "ff3c524edac17baef16b63f1da2eead531f9c065f671838de8c437b87e87f859"}, {"id": "fls_zadtysiuuwbx", "number": "5.4.7:9", "link": "patterns.html#fls_zadtysiuuwbx", "checksum": "624d69de485ef8707d6d98a26dcdfd92081861894d0c06dba07882fe19de3ee2"}, {"id": "fls_sezcyxcsleq7", "number": "5.4.7:10", "link": "patterns.html#fls_sezcyxcsleq7", "checksum": "8f94a20f9d18e18084cc5e7931d668de6254cce6b14813fce2f2a16d4a699598"}, {"id": "fls_6xrxet2pgnzi", "number": "5.4.7:11", "link": "patterns.html#fls_6xrxet2pgnzi", "checksum": "f14008365b9b2173763090e4ac8e371acae7932276efa64dd5c4bef234a9b625"}], "informational": false}, {"id": "fls_asj8rgccvkoe", "number": "5.4.8", "title": "Record Struct Pattern Matching", "link": "patterns.html#record-struct-pattern-matching", "paragraphs": [{"id": "fls_evuhau2rwm8i", "number": "5.4.8:1", "link": "patterns.html#fls_evuhau2rwm8i", "checksum": "a64d7a8315d7d5f47ec10463a26465d1b20225bc5c426030b5af68285a662722"}, {"id": "fls_bde1hpvrosui", "number": "5.4.8:2", "link": "patterns.html#fls_bde1hpvrosui", "checksum": "202123ed4c141cd00114f671cc7b4a9caaafd86ff150c865e93c8e9dad4257fc"}, {"id": "fls_447s4hc07ozn", "number": "5.4.8:3", "link": "patterns.html#fls_447s4hc07ozn", "checksum": "d0da6696f0030559710cd9ee013efb4dbfb95b1df235fe5f469bfcd2d24034c4"}, {"id": "fls_vfdb1i5l41yk", "number": "5.4.8:4", "link": "patterns.html#fls_vfdb1i5l41yk", "checksum": "b11dc2c5dfcaf758c45e4029e582f72a53c74e7c2c98575fb2b7461ae1e7d805"}, {"id": "fls_yfk52fr7trw3", "number": "5.4.8:5", "link": "patterns.html#fls_yfk52fr7trw3", "checksum": "36081581a365a6503d56139e07b8e1749757cf878634d805e84663d3172cb005"}, {"id": "fls_6sdcykdrpe5d", "number": "5.4.8:6", "link": "patterns.html#fls_6sdcykdrpe5d", "checksum": "8b8f1725d0cf2ef6489bd548eec9d59fab537eca1f33a509f8141751325cba76"}], "informational": false}, {"id": "fls_eexupzdsu7f", "number": "5.4.9", "title": "Tuple Struct Pattern Matching", "link": "patterns.html#tuple-struct-pattern-matching", "paragraphs": [{"id": "fls_dexg9g9cct30", "number": "5.4.9:1", "link": "patterns.html#fls_dexg9g9cct30", "checksum": "ed45c176d905341bee988af8640b3011dd6a97d9c8fe53b45410925a79d5e056"}, {"id": "fls_boc7juqj69hw", "number": "5.4.9:2", "link": "patterns.html#fls_boc7juqj69hw", "checksum": "03c31f4e25eebbe78169c4bc173609effc1e8269dfe4f263b29363409e316dab"}, {"id": "fls_4dr1stiw82v9", "number": "5.4.9:3", "link": "patterns.html#fls_4dr1stiw82v9", "checksum": "6b75afdc8b9b09fcd7df94b0c730c87e30d4bb2de200714adf3a08575e90a90a"}, {"id": "fls_h14emtt6iyk3", "number": "5.4.9:4", "link": "patterns.html#fls_h14emtt6iyk3", "checksum": "13343ca1b2a108f58c91e7fcdb4c9e4c975f5fa11d841db4951a8883a4bcc7d5"}], "informational": false}, {"id": "fls_rce8bb7nz2jy", "number": "5.4.10", "title": "Tuple Pattern Matching", "link": "patterns.html#tuple-pattern-matching", "paragraphs": [{"id": "fls_w4xypnrnhycb", "number": "5.4.10:1", "link": "patterns.html#fls_w4xypnrnhycb", "checksum": "746ffe5085ba7cfbb59d3c44688b6f8584fa574128327bb37f2f051173efb07d"}, {"id": "fls_vnx1bpval595", "number": "5.4.10:2", "link": "patterns.html#fls_vnx1bpval595", "checksum": "5f1c0e7fad583c2e4331c5805f1dbf89717118d493a01549a42dfeaa3f0279ca"}, {"id": "fls_dzf32f40y7fr", "number": "5.4.10:3", "link": "patterns.html#fls_dzf32f40y7fr", "checksum": "e86a7e2ae632d8ce6ffaeb404902846bb48e160aab297c2c2652d9b985f7982e"}, {"id": "fls_krl32txvxxkz", "number": "5.4.10:4", "link": "patterns.html#fls_krl32txvxxkz", "checksum": "37eed365431808077ba3f82d504515f343520002fd244c7649305e39f6c96d7e"}], "informational": false}, {"id": "fls_yc4xm4hrfyw7", "number": "5.4.11", "title": "Underscore Pattern Matching", "link": "patterns.html#underscore-pattern-matching", "paragraphs": [{"id": "fls_dvk7r1gf7pwp", "number": "5.4.11:1", "link": "patterns.html#fls_dvk7r1gf7pwp", "checksum": "b9ccebce07421997dfd958ff40f0aef3a1b9e546fb3bcf0c2cefe7fbfdd64d01"}, {"id": "fls_e0uprihqn1y6", "number": "5.4.11:2", "link": "patterns.html#fls_e0uprihqn1y6", "checksum": "33c34bf81e9f7a3651a3718b8ab5b88c0ba416ea85e283b4fbd4a7e30e78b48a"}, {"id": "fls_ljcq2vyo052q", "number": "5.4.11:3", "link": "patterns.html#fls_ljcq2vyo052q", "checksum": "8e3a3ff978133c3bfffe09986eace47f5b4afb21f6c71af39fd93f4f27ad2860"}], "informational": false}], "informational": false}, {"title": "Program Structure and Compilation", "link": "program-structure-and-compilation.html", "sections": [{"id": "fls_hdwwrsyunir", "number": "18", "title": "Program Structure and Compilation", "link": "program-structure-and-compilation.html", "paragraphs": [], "informational": false}, {"id": "fls_s35hob3i7lr", "number": "18.1", "title": "Source Files", "link": "program-structure-and-compilation.html#source-files", "paragraphs": [{"id": "fls_4vicosdeaqmp", "number": "18.1:1", "link": "program-structure-and-compilation.html#fls_4vicosdeaqmp", "checksum": "55f6d3282e08235092b6157374cbc8fad302ec5965229b94dca69fbf5a239934"}, {"id": "fls_ann3cha1xpek", "number": "18.1:2", "link": "program-structure-and-compilation.html#fls_ann3cha1xpek", "checksum": "7555cb7065456e8c9abbac7b69fc1d5e7a6e631762739806e629635a718a19ac"}], "informational": false}, {"id": "fls_e9hwvqsib5d5", "number": "18.2", "title": "Modules", "link": "program-structure-and-compilation.html#modules", "paragraphs": [{"id": "fls_odd1hj3y1mgu", "number": "18.2:1", "link": "program-structure-and-compilation.html#fls_odd1hj3y1mgu", "checksum": "ec4163446ba1d6053faea2c9be55ae44b49f9e489b2fb4266106708fe16bdda3"}, {"id": "fls_whgv72emrm47", "number": "18.2:2", "link": "program-structure-and-compilation.html#fls_whgv72emrm47", "checksum": "43876d9ff9e824879a24c72af81dd273e69c3a6f6646e9c7751272942fec04b9"}, {"id": "fls_qypjjpcf8uwq", "number": "18.2:3", "link": "program-structure-and-compilation.html#fls_qypjjpcf8uwq", "checksum": "1233b4977ef4e5fd6c5969530904ff70690f361cc5fccddbf8952e1cc7d299f8"}, {"id": "fls_cavwpr1ybk37", "number": "18.2:4", "link": "program-structure-and-compilation.html#fls_cavwpr1ybk37", "checksum": "f54b92d3867600666f831b9a1ca07de6acba61ac72937335bd0451a3de4cbb27"}, {"id": "fls_plepew2319g4", "number": "18.2:5", "link": "program-structure-and-compilation.html#fls_plepew2319g4", "checksum": "ddcd4deef3d419dcbf8b2c18aaa5d8bb453229bce34e4d7180d9e8f93d2bf303"}, {"id": "fls_1aruwps62c4p", "number": "18.2:6", "link": "program-structure-and-compilation.html#fls_1aruwps62c4p", "checksum": "fa07c91c0b0de63411270c072bdc923db3f1db860082d3eddad31ca6eed189c5"}], "informational": false}, {"id": "fls_maw4u1o8q37u", "number": "18.3", "title": "Crates", "link": "program-structure-and-compilation.html#crates", "paragraphs": [{"id": "fls_qwghk79ok5h0", "number": "18.3:1", "link": "program-structure-and-compilation.html#fls_qwghk79ok5h0", "checksum": "c64331512493388d716b5e98082811475682dcffee41348b82483eb48cd91fc5"}, {"id": "fls_9ub6ks8qrang", "number": "18.3:2", "link": "program-structure-and-compilation.html#fls_9ub6ks8qrang", "checksum": "a6fb6914ba7b4eb15927a700f8807dc472322bdd250e0bf7d0651861d8f533d7"}, {"id": "fls_d9nn4yuiw1ja", "number": "18.3:3", "link": "program-structure-and-compilation.html#fls_d9nn4yuiw1ja", "checksum": "5ac27b3cd3ea1dfc7dc3f49e598adc90192ce80d0ed32afdd344789524db1dc0"}, {"id": "fls_mf62vqahoz3c", "number": "18.3:4", "link": "program-structure-and-compilation.html#fls_mf62vqahoz3c", "checksum": "70f4de38c7e4be7d2cf02f89023684e7d042ecc57c81e178147630244368220a"}, {"id": "fls_cxlycjs9t3mj", "number": "18.3:5", "link": "program-structure-and-compilation.html#fls_cxlycjs9t3mj", "checksum": "24cfe75773c77d73d1f5bb3607265ec98dccb02854a636db3ff8b96cacc593cd"}, {"id": "fls_h93c3wfbaoz1", "number": "18.3:6", "link": "program-structure-and-compilation.html#fls_h93c3wfbaoz1", "checksum": "7285d85fe56e6377849b918e1d006071c4bb14a18476290ddc8cce3adcc11a30"}], "informational": false}, {"id": "fls_gklst7joeo33", "number": "18.4", "title": "Crate Imports", "link": "program-structure-and-compilation.html#crate-imports", "paragraphs": [{"id": "fls_d0pa807s5d5h", "number": "18.4:1", "link": "program-structure-and-compilation.html#fls_d0pa807s5d5h", "checksum": "dbf3d3e47ad3d7220f2ffe8d071ff0607474ea6e8f4c3edd18a553ed36509d07"}, {"id": "fls_vfam3wzeaiah", "number": "18.4:2", "link": "program-structure-and-compilation.html#fls_vfam3wzeaiah", "checksum": "fc37a08d96af01fa9eddc305c921ac70c13dabc6a3a41c58f09f74622cc29075"}, {"id": "fls_ft860vkz0lkc", "number": "18.4:3", "link": "program-structure-and-compilation.html#fls_ft860vkz0lkc", "checksum": "c98120af9e1e4f6ac518733e42a91af54ae118579dc4ea7355c255e9b3e077e7"}, {"id": "fls_k90qtnf8kgu1", "number": "18.4:4", "link": "program-structure-and-compilation.html#fls_k90qtnf8kgu1", "checksum": "662c29b5a73d3fc1aa97c39557c1a8401d2f480bba1ec488dba0c4bf1833fed3"}, {"id": "fls_siv8bl6s2ndu", "number": "18.4:5", "link": "program-structure-and-compilation.html#fls_siv8bl6s2ndu", "checksum": "294202b2babc6658a990fded4bd4d3b7339acad054913a48ad0243ba8a907189"}, {"id": "fls_7vz5n3x6jo1s", "number": "18.4:6", "link": "program-structure-and-compilation.html#fls_7vz5n3x6jo1s", "checksum": "0cecb1f1189c7f1a06d3c8d132b1e51f25548a0bf043f3ed3a93308b36f1506f"}, {"id": "fls_3bgpc8m8yk4p", "number": "18.4:7", "link": "program-structure-and-compilation.html#fls_3bgpc8m8yk4p", "checksum": "06a0e85326100e5036cbd423c273ca615cb80431541ea5e8806f3714ffb46193"}], "informational": false}, {"id": "fls_5w50kf83oo1u", "number": "18.5", "title": "Compilation Roots", "link": "program-structure-and-compilation.html#compilation-roots", "paragraphs": [{"id": "fls_fhiqvgdamq5", "number": "18.5:1", "link": "program-structure-and-compilation.html#fls_fhiqvgdamq5", "checksum": "3a9ce035689a8fb35cebf8668b6c24df7ee70eff17799938db3029dea0b1edf4"}, {"id": "fls_tk8tl2e0a34", "number": "18.5:2", "link": "program-structure-and-compilation.html#fls_tk8tl2e0a34", "checksum": "f870a40ce0c25e251e0e8856014efc6ad4611f1a28cdef8c9f460cfde2be372f"}, {"id": "fls_bsyfxdk3ap1t", "number": "18.5:3", "link": "program-structure-and-compilation.html#fls_bsyfxdk3ap1t", "checksum": "232503cded53dd7221dcff57d6ac1d42bde0b44a3d83a1af322de4c453e185fa"}], "informational": false}, {"id": "fls_u1afezy1ye99", "number": "18.6", "title": "Conditional Compilation", "link": "program-structure-and-compilation.html#conditional-compilation", "paragraphs": [{"id": "fls_9stc6nul6vq9", "number": "18.6:1", "link": "program-structure-and-compilation.html#fls_9stc6nul6vq9", "checksum": "1a29f8f4ec010a8c63819db415dfd3ccd84eaad03d75e2973e3fe3313e327406"}, {"id": "fls_a0u9nnaf6drz", "number": "18.6:2", "link": "program-structure-and-compilation.html#fls_a0u9nnaf6drz", "checksum": "b3978159779eed65918ef78768828461f8b34e7ba551de7a8c9048cac3b6edcc"}, {"id": "fls_pf1v89h7pjhh", "number": "18.6:3", "link": "program-structure-and-compilation.html#fls_pf1v89h7pjhh", "checksum": "547cdabd4f386341f56db0ee6332a762b67d119af87f9944ebe2697637857ef7"}, {"id": "fls_y56rgw3cbfex", "number": "18.6:4", "link": "program-structure-and-compilation.html#fls_y56rgw3cbfex", "checksum": "82d166eb360bad50b80bad46ce10a4d656966e94303a0fced35f59151561be1e"}, {"id": "fls_h6b1fuw4nvi1", "number": "18.6:5", "link": "program-structure-and-compilation.html#fls_h6b1fuw4nvi1", "checksum": "483be06af44f42bd953cf6480fb4ba9de360289eef475b6671f2fc106a97e109"}], "informational": false}], "informational": false}, {"title": "Statements", "link": "statements.html", "sections": [{"id": "fls_wdicg3sqa98e", "number": "8", "title": "Statements", "link": "statements.html", "paragraphs": [{"id": "fls_7zh6ziglo5iy", "number": "8:1", "link": "statements.html#fls_7zh6ziglo5iy", "checksum": "03f55779646bda5f8b813a0bda5a8000aaa7a3f7df2147c58d37a6a19d213825"}, {"id": "fls_kdxe1ukmgl1", "number": "8:2", "link": "statements.html#fls_kdxe1ukmgl1", "checksum": "857eb6f6081f30de98150db89a25a25467c0e180b1c3eb19f2786475a5a6e424"}, {"id": "fls_fftdnwe22xrb", "number": "8:3", "link": "statements.html#fls_fftdnwe22xrb", "checksum": "1ea74f2f77df136dd43cf45552f12fb2f6c366bcf10505917c84e5c9f9fd5fd8"}, {"id": "fls_or125cqtxg9j", "number": "8:4", "link": "statements.html#fls_or125cqtxg9j", "checksum": "36cd13cda4653f00db550d04d91838c3dc10bfcbbf15d67f8ba19c0d5ddc297b"}, {"id": "fls_estqu395zxgk", "number": "8:5", "link": "statements.html#fls_estqu395zxgk", "checksum": "82751916e76e8a528dd974fcf8f394553a002d42480c43ef8ca7bd23dec0d51a"}, {"id": "fls_dl763ssb54q1", "number": "8:6", "link": "statements.html#fls_dl763ssb54q1", "checksum": "085c0b250339d5488037ef839a9f6dd3672026ab75232f7a43c422bca728726c"}], "informational": false}, {"id": "fls_yivm43r5wnp1", "number": "8.1", "title": "Let Statements", "link": "statements.html#let-statements", "paragraphs": [{"id": "fls_ct7pp7jnfr86", "number": "8.1:1", "link": "statements.html#fls_ct7pp7jnfr86", "checksum": "fa270e107510c6e1cbbd96841a51e304e617eb94f030aaa20c17913ff260d725"}, {"id": "fls_sr3digr5k0kq", "number": "8.1:2", "link": "statements.html#fls_sr3digr5k0kq", "checksum": "d10976aa00e76b2bd9ae4e6118e2bb91d70d4093d2416f3c38179f5e2786f112"}, {"id": "fls_iqar7vvtw22c", "number": "8.1:3", "link": "statements.html#fls_iqar7vvtw22c", "checksum": "be1f15f55c52d38164795fc8324e4f7a5b3ca997e5de0de3c0c4ebe283e2d68e"}, {"id": "fls_1prqh1trybwz", "number": "8.1:4", "link": "statements.html#fls_1prqh1trybwz", "checksum": "6e23f656fcfe54a647a2278c5484a3fc80ed08112e18b6d4d6a5f11a8c2f6b5f"}, {"id": "fls_djkm8r2iuu6u", "number": "8.1:5", "link": "statements.html#fls_djkm8r2iuu6u", "checksum": "271df8c51d41c031901cb4d22bea984e6f6a8e260e878213b8ed7c580900eabc"}, {"id": "fls_ppj9gvhp8wcj", "number": "8.1:6", "link": "statements.html#fls_ppj9gvhp8wcj", "checksum": "5c3b2ab8a0b6d48dff5c50e3ca9743ba453c77aadcaa49d6a9485a5fc393c244"}, {"id": "fls_1ebqdzdbudsn", "number": "8.1:7", "link": "statements.html#fls_1ebqdzdbudsn", "checksum": "9fc5558523a5dc96084b645182a9748a4ea46e67b31afc2341107cee0b0121aa"}, {"id": "fls_m8a7gesa4oim", "number": "8.1:8", "link": "statements.html#fls_m8a7gesa4oim", "checksum": "99c4feb3265bf0e6b3a0c606397811171dba2b964d2471c4ccefa87af19ab501"}, {"id": "fls_oaxnre7m9s10", "number": "8.1:9", "link": "statements.html#fls_oaxnre7m9s10", "checksum": "ed71cf991f9a7542c7a7106e4754bb01cdd386dcf21b1c27e7f21519ac4a12cc"}, {"id": "fls_t5bjwluyv8za", "number": "8.1:10", "link": "statements.html#fls_t5bjwluyv8za", "checksum": "24c8c95a02e8ee0e3828c7b00c71b666881c4ac437e3c018d06b7d83ad58b70d"}, {"id": "fls_4j9riqyf4p9", "number": "8.1:11", "link": "statements.html#fls_4j9riqyf4p9", "checksum": "017c4fc4f03e296f8d96a0a62fc006c647bf0a9faaa94ad561061c93e9402928"}, {"id": "fls_t53g5hlabqw1", "number": "8.1:12", "link": "statements.html#fls_t53g5hlabqw1", "checksum": "ab96a34396479306ef71b507703ffdd2fe9dd68512c87538bc972ad910a8d508"}, {"id": "fls_7j4qlwg72ege", "number": "8.1:13", "link": "statements.html#fls_7j4qlwg72ege", "checksum": "3c6ccdcf4fec0d1389605503a83c401562b7c707fe92ad33814c8cd10b1d3b1e"}, {"id": "fls_ea9brfzjh8im", "number": "8.1:14", "link": "statements.html#fls_ea9brfzjh8im", "checksum": "14d436071a7dda876a858e8877ad564c71299dacb6239d9bff7ea3299d8d6a65"}], "informational": false}, {"id": "fls_1pg5ig740tg1", "number": "8.2", "title": "Expression Statements", "link": "statements.html#expression-statements", "paragraphs": [{"id": "fls_xmdj8uj7ixoe", "number": "8.2:1", "link": "statements.html#fls_xmdj8uj7ixoe", "checksum": "990f51f353986bd884828681d0f82474e27e8ff3042cd1c0b1908f048e7c7315"}, {"id": "fls_gzzmudc1hl6s", "number": "8.2:2", "link": "statements.html#fls_gzzmudc1hl6s", "checksum": "0c5f0f107d5b1e196ef1a3003b0eb3d235bc6cbebd98a9537e5a9caf9df0c146"}, {"id": "fls_kc99n8qrszxh", "number": "8.2:3", "link": "statements.html#fls_kc99n8qrszxh", "checksum": "28b62503095184fa5c0dc9898c27c50ecaeebfef606f663370bdcaefa1c68cea"}, {"id": "fls_r8poocwqaglf", "number": "8.2:4", "link": "statements.html#fls_r8poocwqaglf", "checksum": "f02ee18552936ea98c3764181f5651c46b54e5af37f3149b17bd6906ecb33556"}, {"id": "fls_88e6s3erk8tj", "number": "8.2:5", "link": "statements.html#fls_88e6s3erk8tj", "checksum": "cf7b0c182db5007a86bf5c05bdfb68e63de338e95ef2e377bafa1708a7c00738"}, {"id": "fls_4q90jb39apwr", "number": "8.2:6", "link": "statements.html#fls_4q90jb39apwr", "checksum": "fe5fb38b0a811437c9b5e6e9f70af727c9013f79573eee3673146cf030c660c4"}, {"id": "fls_xqtztcu8ibwq", "number": "8.2:7", "link": "statements.html#fls_xqtztcu8ibwq", "checksum": "737bef4656101e6322af305e26b7c23b0c56fe07e9b5404ed0fe6daff16a8d02"}, {"id": "fls_2p9xnt519nbw", "number": "8.2:8", "link": "statements.html#fls_2p9xnt519nbw", "checksum": "93c30bb9a1f379d6fce63a4b7aded720c5328d70432fdb6c05a7aa2312426a73"}], "informational": false}], "informational": false}, {"title": "Ownership and Destruction", "link": "ownership-and-deconstruction.html", "sections": [{"id": "fls_ronnwodjjjsh", "number": "15", "title": "Ownership and Destruction", "link": "ownership-and-deconstruction.html", "paragraphs": [], "informational": false}, {"id": "fls_svkx6szhr472", "number": "15.1", "title": "Ownership", "link": "ownership-and-deconstruction.html#ownership", "paragraphs": [{"id": "fls_wt81sbsecmu0", "number": "15.1:1", "link": "ownership-and-deconstruction.html#fls_wt81sbsecmu0", "checksum": "5144c7d76d836132f4544481a5a0aa566e56d0824bc6757bb51dfdf413f2809e"}, {"id": "fls_ckcnkbb6y3cq", "number": "15.1:2", "link": "ownership-and-deconstruction.html#fls_ckcnkbb6y3cq", "checksum": "317ff352b8f0f3c112a25e2c334aa6f7e2c227140ef1153851b0068b65544c4b"}, {"id": "fls_ze0u9gfylmhn", "number": "15.1:3", "link": "ownership-and-deconstruction.html#fls_ze0u9gfylmhn", "checksum": "5aae1e903f79062d2e7d47807976de140feb73932e1bd4d1db63f2eda9a280e8"}], "informational": false}, {"id": "fls_3xvm61x0t251", "number": "15.2", "title": "Initialization", "link": "ownership-and-deconstruction.html#initialization", "paragraphs": [{"id": "fls_drfzu02bo7oe", "number": "15.2:1", "link": "ownership-and-deconstruction.html#fls_drfzu02bo7oe", "checksum": "e347ab2d0c9e7fb6d14b8e7ee107a2220a39391724c13eeaab6b25939b1be2d9"}, {"id": "fls_wnhci8phdu4m", "number": "15.2:2", "link": "ownership-and-deconstruction.html#fls_wnhci8phdu4m", "checksum": "6ee782d7b7403e35dd81c6622fb5562c3c6116ef95eca20a6496d36f6acfe442"}, {"id": "fls_ch2lvm50olqd", "number": "15.2:3", "link": "ownership-and-deconstruction.html#fls_ch2lvm50olqd", "checksum": "ba3e26bd692acacc422e0367466b77045e1802b133f0ba5cdf155ae1e2c0b5d4"}, {"id": "fls_46910buiwvv9", "number": "15.2:4", "link": "ownership-and-deconstruction.html#fls_46910buiwvv9", "checksum": "b86bc58a37e2d666845ddee6d0ec0fd647264ab45a39b676bc6bf201782eb03a"}, {"id": "fls_caufcwkpz689", "number": "15.2:5", "link": "ownership-and-deconstruction.html#fls_caufcwkpz689", "checksum": "5948683124b4a837517cb460bac495efff05e298bed8420a688b19d16de45eb2"}, {"id": "fls_4lg92b9yima6", "number": "15.2:6", "link": "ownership-and-deconstruction.html#fls_4lg92b9yima6", "checksum": "0cd3d0fa123e7c11a9a250acaa0cce74c5f8760b6099acac8e084cea9be81ebd"}, {"id": "fls_xn1au0blioa3", "number": "15.2:7", "link": "ownership-and-deconstruction.html#fls_xn1au0blioa3", "checksum": "063dff1709d956a48b2bb9876a5fabfda25c3ed4b35d8449d19f6163c27811c5"}, {"id": "fls_jmcjboopvytb", "number": "15.2:8", "link": "ownership-and-deconstruction.html#fls_jmcjboopvytb", "checksum": "4f92e492c63996bf71cb5f3ffb86c48dd7a928decb62b7ea6fa936acfbef7a78"}], "informational": false}, {"id": "fls_v5x85lt5ulva", "number": "15.3", "title": "References", "link": "ownership-and-deconstruction.html#references", "paragraphs": [{"id": "fls_7x9pi2o7pee7", "number": "15.3:1", "link": "ownership-and-deconstruction.html#fls_7x9pi2o7pee7", "checksum": "681fcd31b82b3e32670aecd9ea9b4eb8068d07a7b2cdeaa6d9fb1442eb63ed86"}, {"id": "fls_tsqvr3fmcel", "number": "15.3:2", "link": "ownership-and-deconstruction.html#fls_tsqvr3fmcel", "checksum": "1a8fde4fb240539c10a88279cc4dae22433448e6531485e2124cb8558d6c828c"}, {"id": "fls_ev4a82fdhwr8", "number": "15.3:3", "link": "ownership-and-deconstruction.html#fls_ev4a82fdhwr8", "checksum": "f967a5d91406384965a89b7d358d856f9b96ad76e062a2aa0cb0b238c5053633"}, {"id": "fls_cckf6dtkgwb4", "number": "15.3:4", "link": "ownership-and-deconstruction.html#fls_cckf6dtkgwb4", "checksum": "bf9feda03dfdc034cc70417fab5c0fb8c43e76acb709672e810538a059178ac6"}, {"id": "fls_8kqb8754e6p4", "number": "15.3:5", "link": "ownership-and-deconstruction.html#fls_8kqb8754e6p4", "checksum": "71b66b39ac5995dd5408a51d900c9e4a4c0b3f6de90df9f32eeaf0c9f79a747a"}, {"id": "fls_v69rptdjao42", "number": "15.3:6", "link": "ownership-and-deconstruction.html#fls_v69rptdjao42", "checksum": "0f5c895a4ac62ecc6ec04b6282dff022b535c2a19bd75b50defdbb28493da899"}, {"id": "fls_vg9h6tz6z37w", "number": "15.3:7", "link": "ownership-and-deconstruction.html#fls_vg9h6tz6z37w", "checksum": "f0435a5375c7104a39cbb51a31167f29e447129fae4e42da7755fd5b0d546300"}, {"id": "fls_wcf5mxrzbujn", "number": "15.3:8", "link": "ownership-and-deconstruction.html#fls_wcf5mxrzbujn", "checksum": "94a208b99cd67ebc20f0f3baf1d225f9f8e7bd033c2196e35b0a01a1aa4c092d"}, {"id": "fls_fckoj1jh5mrc", "number": "15.3:9", "link": "ownership-and-deconstruction.html#fls_fckoj1jh5mrc", "checksum": "d346ee1754805482153eb4b0ca31367a70b20b0e6b21c40c6d681b5c9b3409cc"}, {"id": "fls_hqxsuyn285he", "number": "15.3:10", "link": "ownership-and-deconstruction.html#fls_hqxsuyn285he", "checksum": "e8deafe60392b60bd424d7aa0309647dbf4ed1e7325348f23f15970de9f05ebf"}, {"id": "fls_i1ny0k726a4a", "number": "15.3:11", "link": "ownership-and-deconstruction.html#fls_i1ny0k726a4a", "checksum": "8d9978a993a2da848a7a6a9e23d189173372b34e01fa6d81ba7a78e75f621064"}, {"id": "fls_et1hnlox6vxk", "number": "15.3:12", "link": "ownership-and-deconstruction.html#fls_et1hnlox6vxk", "checksum": "7ed63b28b2b7484eed35560cff9dd3420475b6cf99b8b7e943fe944ad33957d9"}], "informational": false}, {"id": "fls_a14slch83hzn", "number": "15.4", "title": "Borrowing", "link": "ownership-and-deconstruction.html#borrowing", "paragraphs": [{"id": "fls_c02flohk54pc", "number": "15.4:1", "link": "ownership-and-deconstruction.html#fls_c02flohk54pc", "checksum": "de2ae1e7180e12235906678b7ee4195bc10b9f11839f8d171f9c875c94521eca"}, {"id": "fls_j9kof0px3l7s", "number": "15.4:2", "link": "ownership-and-deconstruction.html#fls_j9kof0px3l7s", "checksum": "437a4bdfe9c8e90e143c24e1ca0e4cb8226d0c5ca7f02bc701a25d5adc9b50c0"}, {"id": "fls_zepwytjwy049", "number": "15.4:3", "link": "ownership-and-deconstruction.html#fls_zepwytjwy049", "checksum": "35970b8df578395e654434eed83f9a06ec63a12c4bbf7e89bdfb97e21a7b9620"}, {"id": "fls_nordokzfy36d", "number": "15.4:4", "link": "ownership-and-deconstruction.html#fls_nordokzfy36d", "checksum": "25fd85d527ce1e92367c4336524809c097742c03ed948860ca2f57d950ed5846"}, {"id": "fls_bjf3futso849", "number": "15.4:5", "link": "ownership-and-deconstruction.html#fls_bjf3futso849", "checksum": "3b7581ecddc33582b4cf58929333c27e97df213d56721343355ed7008eff2fa2"}, {"id": "fls_yfmy4v5zlgw9", "number": "15.4:6", "link": "ownership-and-deconstruction.html#fls_yfmy4v5zlgw9", "checksum": "9d0d7ecaba0ada2895a59198323192c4c0562b596b94bea2c49be0968c22b934"}, {"id": "fls_jv18y618j2s3", "number": "15.4:7", "link": "ownership-and-deconstruction.html#fls_jv18y618j2s3", "checksum": "20c3b044f90c2789882b18d6e87d0e3e641507a2d6af5c0de0ae5274181a7d06"}, {"id": "fls_g4i0jb27iryr", "number": "15.4:8", "link": "ownership-and-deconstruction.html#fls_g4i0jb27iryr", "checksum": "1acb26f55ea7c004ebe759dee3d3aa058f514f0dc242d2f980413f9e5269d8e9"}, {"id": "fls_kky9ufexrvaw", "number": "15.4:9", "link": "ownership-and-deconstruction.html#fls_kky9ufexrvaw", "checksum": "f6b207663eafd42b6f7e8445b48751f5e9f3ca1c278b649e94105c3b0c9d95cb"}, {"id": "fls_o5oq4jfswr4q", "number": "15.4:10", "link": "ownership-and-deconstruction.html#fls_o5oq4jfswr4q", "checksum": "cbca8f374f46d1ef54e4cf6beede54e85406b5090edddcbec4fdff0d1c91b6cf"}, {"id": "fls_mt69agrxh9ps_", "number": "15.4:11", "link": "ownership-and-deconstruction.html#fls_mt69agrxh9ps_", "checksum": "7f48612f428ed200a7e825eccbdeb3e446b9610271bd51fd922132fbe878f65c"}, {"id": "fls_hyl4bdjbuzbw", "number": "15.4:12", "link": "ownership-and-deconstruction.html#fls_hyl4bdjbuzbw", "checksum": "958c02a18095324946b8dff0ea0a0e73b7cf7e255dffeaad921362798fa774a8"}, {"id": "fls_pu19i4sj6yg0", "number": "15.4:13", "link": "ownership-and-deconstruction.html#fls_pu19i4sj6yg0", "checksum": "72159700271717da9f616eff159a367b6f9b0637825319d7dec05001f401a601"}, {"id": "fls_kxws4zmaahj6", "number": "15.4:14", "link": "ownership-and-deconstruction.html#fls_kxws4zmaahj6", "checksum": "358d780a2a3e8a51b742e63c460cc75632190978e72b9815081a4a81aa80761e"}, {"id": "fls_kup2ou22nwyl", "number": "15.4:15", "link": "ownership-and-deconstruction.html#fls_kup2ou22nwyl", "checksum": "d898ade965c0b2fab9cda5bc5233816f4058b485ac65840643912b375625ae78"}, {"id": "fls_5bf2x4sm5ei", "number": "15.4:16", "link": "ownership-and-deconstruction.html#fls_5bf2x4sm5ei", "checksum": "149e44f235c43374c698f45f8d37c9cc0f3fdf6259dbed8ebf1e378cd322196d"}, {"id": "fls_8q5ly4x104ai", "number": "15.4:17", "link": "ownership-and-deconstruction.html#fls_8q5ly4x104ai", "checksum": "cc4a5686c478a89047c0820552383801bd383016256838e3863695f994f8b314"}, {"id": "fls_yhchu2bpil4m", "number": "15.4:18", "link": "ownership-and-deconstruction.html#fls_yhchu2bpil4m", "checksum": "fb76d5f2ecb1ceb8b3aa709c4729fa2ce46d3bf98262aa34f8d39dcdabc2aa10"}, {"id": "fls_568o7nyihndd", "number": "15.4:19", "link": "ownership-and-deconstruction.html#fls_568o7nyihndd", "checksum": "03dd78205c60d4db34d2c0df7ae70512ef3146fca9448710dd95263fcd3f6d2b"}, {"id": "fls_z2n7ejily5ct", "number": "15.4:20", "link": "ownership-and-deconstruction.html#fls_z2n7ejily5ct", "checksum": "5812abb90fe17f8f0b9ec36241547534230a80cfd63db34d650ad71f90d18b2e"}, {"id": "fls_ibi9mqgehnlp", "number": "15.4:21", "link": "ownership-and-deconstruction.html#fls_ibi9mqgehnlp", "checksum": "f183cb055a44d89fb2eb1b2848aa4536e06650cf6344a523690b83a29d829f61"}, {"id": "fls_f9we73i8vwq3", "number": "15.4:22", "link": "ownership-and-deconstruction.html#fls_f9we73i8vwq3", "checksum": "fea10cfdc65f1e4d588fe2818f275ba47fdfcddd88877c316ca57791ba5de14f"}, {"id": "fls_w5bjgaov8w60", "number": "15.4:23", "link": "ownership-and-deconstruction.html#fls_w5bjgaov8w60", "checksum": "3e31ed577d258e6cdf238a0549751e8b896d9c2cb6ae51fc176c88803e14822f"}, {"id": "fls_gbqizu6gu6kk", "number": "15.4:24", "link": "ownership-and-deconstruction.html#fls_gbqizu6gu6kk", "checksum": "c316a6c432e9e7d33fde24e96df550a3e74333f7b65cd38e5a7f799997d5db11"}, {"id": "fls_ovkkxeybumvt", "number": "15.4:25", "link": "ownership-and-deconstruction.html#fls_ovkkxeybumvt", "checksum": "2a70cecfdc326c846957ef22ba6e0c76d8a4facbba9982e01c2fc53517b16b2b"}, {"id": "fls_7kzu0qxibucb", "number": "15.4:26", "link": "ownership-and-deconstruction.html#fls_7kzu0qxibucb", "checksum": "6a5074176f0372826a30df9614dbe4e54b3e06eab80a1ce84b7b9d7c94e3740d"}, {"id": "fls_vdhbp4oaoqt5", "number": "15.4:27", "link": "ownership-and-deconstruction.html#fls_vdhbp4oaoqt5", "checksum": "4478129ff7c47921151d2dcf57a362bba167ad848f1379667903982fe9676594"}], "informational": false}, {"id": "fls_77scxuomlbgs", "number": "15.5", "title": "Passing Conventions", "link": "ownership-and-deconstruction.html#passing-conventions", "paragraphs": [{"id": "fls_fvwx2ufeyzcs", "number": "15.5:1", "link": "ownership-and-deconstruction.html#fls_fvwx2ufeyzcs", "checksum": "ff08808a01947415fb2eb38d55e453078c88c4c344cfdd584e2fcd09ce24ec29"}, {"id": "fls_h2pgsij1rbms", "number": "15.5:2", "link": "ownership-and-deconstruction.html#fls_h2pgsij1rbms", "checksum": "aeefde9a0ac87118b21744a83a1a7e010b3cdd7a6d484f2225c2909cc9256ef6"}, {"id": "fls_yx2knbby70fy", "number": "15.5:3", "link": "ownership-and-deconstruction.html#fls_yx2knbby70fy", "checksum": "632e60b88c4c64ddd9b7398bf3476151bc5701ad1b4a760220667139cf7bb56b"}, {"id": "fls_6ul3f6v0foma", "number": "15.5:4", "link": "ownership-and-deconstruction.html#fls_6ul3f6v0foma", "checksum": "f8d36262285cdd2b4bef51b17a98103be0501e5e38a087145322a3fd9713f59c"}, {"id": "fls_3ztdz02efeoc", "number": "15.5:5", "link": "ownership-and-deconstruction.html#fls_3ztdz02efeoc", "checksum": "1f5f58ea8bff9c3f06d08ec8804d370315b1c1190ffc8f6354263a3d92fe64a7"}, {"id": "fls_konzgoybhfqm", "number": "15.5:6", "link": "ownership-and-deconstruction.html#fls_konzgoybhfqm", "checksum": "e1dedaef11fca8fa7e09c7906b87ca804da421ff7b5ada8a981d024d16ae5c6f"}, {"id": "fls_4bnbv7mqod57", "number": "15.5:7", "link": "ownership-and-deconstruction.html#fls_4bnbv7mqod57", "checksum": "e84118fd70dabb3e58425bef7f6dff825e6a847042faa9129285c5a1ed911a36"}, {"id": "fls_3xk3p1unbjy5", "number": "15.5:8", "link": "ownership-and-deconstruction.html#fls_3xk3p1unbjy5", "checksum": "97a3445c9540e7ad4cee9865d34bc4dd2fa75219dffd54e92dded06b85c59541"}, {"id": "fls_vk1xhvdaakh0", "number": "15.5:9", "link": "ownership-and-deconstruction.html#fls_vk1xhvdaakh0", "checksum": "8c23071abb8829ee058cb57ae16a5f81b804ff2c1d55f7ec813bdf648a0e5ae8"}, {"id": "fls_vveejn7lngt8", "number": "15.5:10", "link": "ownership-and-deconstruction.html#fls_vveejn7lngt8", "checksum": "5fc750214c56a9e1435062359732e69a801b4413b5f235c73614e41074c91c13"}, {"id": "fls_gq35gqagw35", "number": "15.5:11", "link": "ownership-and-deconstruction.html#fls_gq35gqagw35", "checksum": "ce6808e7d0727241eb783b7bdfb02998d6e5865d3d0d97dee49053512f5a3943"}, {"id": "fls_cfqzpmnfeh8h", "number": "15.5:12", "link": "ownership-and-deconstruction.html#fls_cfqzpmnfeh8h", "checksum": "994382b24fcb146882e480cba7da6ddcbbb55a473b76161b1167a520daba8fde"}, {"id": "fls_go9gdlk5d3km", "number": "15.5:13", "link": "ownership-and-deconstruction.html#fls_go9gdlk5d3km", "checksum": "754c9ebda067292c99d20bc43c433c797e386d1c651bf1cd0d37d42596ad9b86"}, {"id": "fls_459xx6febmf0", "number": "15.5:14", "link": "ownership-and-deconstruction.html#fls_459xx6febmf0", "checksum": "1f27a382873eeb1cbf8a680f1f4445841e31a6ca70791b7e72d1f0064c2e99e4"}, {"id": "fls_3xyq50abdiv6", "number": "15.5:15", "link": "ownership-and-deconstruction.html#fls_3xyq50abdiv6", "checksum": "794dbaeb036da65d453284a372c0a58b55b03099b8433c2c1acea02cf3ebfd44"}, {"id": "fls_7kcx3u8gvl1d", "number": "15.5:16", "link": "ownership-and-deconstruction.html#fls_7kcx3u8gvl1d", "checksum": "2f24b0e12326e4ad6c1cff5ea009d0cc6878e98b4f8f16fd738a89a432461c62"}, {"id": "fls_i4hrifsb9msr", "number": "15.5:17", "link": "ownership-and-deconstruction.html#fls_i4hrifsb9msr", "checksum": "45a7939e44809197b647eab86a5bbb791bbd9b7b492d99ff134fd6b1b35bd6f6"}, {"id": "fls_7tadh1zel0fc", "number": "15.5:18", "link": "ownership-and-deconstruction.html#fls_7tadh1zel0fc", "checksum": "242ee9281937fc599be5d057484f99ff16cac54d4dedfc9817b957bbec3eac6c"}, {"id": "fls_ywt328hcieka", "number": "15.5:19", "link": "ownership-and-deconstruction.html#fls_ywt328hcieka", "checksum": "162688f5929bce2f33343b1dcf6263ceb3ca10d03307199ad9ab3e4ec746aaf9"}], "informational": false}, {"id": "fls_4jiw35pan7vn", "number": "15.6", "title": "Destruction", "link": "ownership-and-deconstruction.html#destruction", "paragraphs": [{"id": "fls_e7ucq87s806d", "number": "15.6:1", "link": "ownership-and-deconstruction.html#fls_e7ucq87s806d", "checksum": "b715c62ba79445fc86b207de20ae057aeb387fa46fc4a9f8b5d99105c88061e7"}], "informational": false}, {"id": "fls_u2mzjgiwbkz0", "number": "15.7", "title": "Destructors", "link": "ownership-and-deconstruction.html#destructors", "paragraphs": [{"id": "fls_9m0gszdle0qb", "number": "15.7:1", "link": "ownership-and-deconstruction.html#fls_9m0gszdle0qb", "checksum": "58a815029e5c5abf31dbdc0ae371a884c35141c19fa227ecd118d8ec5c7977c3"}, {"id": "fls_4nkzidytpi6", "number": "15.7:2", "link": "ownership-and-deconstruction.html#fls_4nkzidytpi6", "checksum": "99e01849a304562c74b7705792700bbb8f792f332352a99fbdf6a23f3f2749a0"}, {"id": "fls_wzuwapjqtyyy", "number": "15.7:3", "link": "ownership-and-deconstruction.html#fls_wzuwapjqtyyy", "checksum": "780a665cd5b58bccb729342e33dea24cd6f074a7109cee63ca9412cf67d69b2c"}, {"id": "fls_gfvm70iqu1l4", "number": "15.7:4", "link": "ownership-and-deconstruction.html#fls_gfvm70iqu1l4", "checksum": "25fab97c21fc263acb73e4f9c015d9ebb7c96ec0f09fdfa35e4550aed472dde1"}, {"id": "fls_l2xkdjeydqtx", "number": "15.7:5", "link": "ownership-and-deconstruction.html#fls_l2xkdjeydqtx", "checksum": "e33f94694a42a7f211aaec4bd688778421eba9168af369f075a51652a55c55d8"}, {"id": "fls_bync24y6gp93", "number": "15.7:6", "link": "ownership-and-deconstruction.html#fls_bync24y6gp93", "checksum": "b88a85aa7e4b1891ac3ed4ca23a4b92b4e035715e966e1f848f1e21427d23845"}, {"id": "fls_jzancf72i95f", "number": "15.7:7", "link": "ownership-and-deconstruction.html#fls_jzancf72i95f", "checksum": "ce0fe2c8975789b3ccac42978e94c8cf22385f6f021e809465af734f19bbe334"}, {"id": "fls_gjn2jnsal9gs", "number": "15.7:8", "link": "ownership-and-deconstruction.html#fls_gjn2jnsal9gs", "checksum": "6700d76d9b324a672ad7ab38cea76bb82dc3777d197b6f7e89d0e5f3156594b2"}, {"id": "fls_ol2w2292frfi", "number": "15.7:9", "link": "ownership-and-deconstruction.html#fls_ol2w2292frfi", "checksum": "27ce20568cf31821f40322d7cbca37c6e7f9a154497206aa2cd66da3c71e14fe"}, {"id": "fls_6ii5o68vuymj", "number": "15.7:10", "link": "ownership-and-deconstruction.html#fls_6ii5o68vuymj", "checksum": "3a5360261dcb8e8292661839009fff3c71ef4a3d1c9f45a2d85f861f4b707310"}, {"id": "fls_sup43es8ps8r", "number": "15.7:11", "link": "ownership-and-deconstruction.html#fls_sup43es8ps8r", "checksum": "2b1fcd39b5b78562ea6e359c8e98307553d5ffc8a1c9188166ffd9fc296d0a8d"}, {"id": "fls_y9q0eqr865b3", "number": "15.7:12", "link": "ownership-and-deconstruction.html#fls_y9q0eqr865b3", "checksum": "622d773bd119d86de850502b8e92eee57b581476e14eff7478ba5d558629c86f"}, {"id": "fls_kdqng6eovxns", "number": "15.7:13", "link": "ownership-and-deconstruction.html#fls_kdqng6eovxns", "checksum": "3df5eb307218abb09b95ebf9bab92992011b11bb1c5d1e246c3160e5a71afd94"}, {"id": "fls_ag249y74jg6c", "number": "15.7:14", "link": "ownership-and-deconstruction.html#fls_ag249y74jg6c", "checksum": "a023dc4d0c98b62c2d9576d70e51108a0fdb29ba3f14769c7d87ab09d1f0938a"}, {"id": "fls_tw36n3g32a0y", "number": "15.7:15", "link": "ownership-and-deconstruction.html#fls_tw36n3g32a0y", "checksum": "69b3fa403d23f715b291788890e24ebd09e6b009e67a21e5edf9c25f29e037eb"}, {"id": "fls_fmn33zhorkf", "number": "15.7:16", "link": "ownership-and-deconstruction.html#fls_fmn33zhorkf", "checksum": "9a3ba3981279a98242813d19ecc21dcce387bb841f1be9398442ba10e7d9addd"}], "informational": false}, {"id": "fls_rm4ncoopcdvj", "number": "15.8", "title": "Drop Scopes", "link": "ownership-and-deconstruction.html#drop-scopes", "paragraphs": [{"id": "fls_7uav7vkcv4pz", "number": "15.8:1", "link": "ownership-and-deconstruction.html#fls_7uav7vkcv4pz", "checksum": "fa365174cbf5682b2addb5a47523a886be22f15c45e88cb5d01ef13a92c0d9b2"}, {"id": "fls_txvxrn6wbyql", "number": "15.8:2", "link": "ownership-and-deconstruction.html#fls_txvxrn6wbyql", "checksum": "7fcf965dcbfb27fdef8959d59a625da3fa44a0d931095edf51cd4b5db75eb01c"}, {"id": "fls_n6y6brm6pghr", "number": "15.8:3", "link": "ownership-and-deconstruction.html#fls_n6y6brm6pghr", "checksum": "aa4f1d2f9b7ef3586caec5b558b58e35cb2b8cd615ba21adcf9234ba7283bec9"}, {"id": "fls_gdh6wwvi7ci6", "number": "15.8:4", "link": "ownership-and-deconstruction.html#fls_gdh6wwvi7ci6", "checksum": "557bd0675e3046e13b7a004ef78b8b0f946bcca78bc242cb76364e3f991f1d3a"}, {"id": "fls_owqk2fcpvc4s", "number": "15.8:5", "link": "ownership-and-deconstruction.html#fls_owqk2fcpvc4s", "checksum": "89634ecd6c544d1fbf8a649d790b5173d2a09803e97525c89f9d827df73ab265"}, {"id": "fls_ckh8wkq0y5ja", "number": "15.8:6", "link": "ownership-and-deconstruction.html#fls_ckh8wkq0y5ja", "checksum": "62c1b4c8906b7867a552ab0c166e92d1673c4e6c996c6e82c55fb18155b337a5"}, {"id": "fls_2zwwnzepgmje", "number": "15.8:7", "link": "ownership-and-deconstruction.html#fls_2zwwnzepgmje", "checksum": "e18cce725d7e3e2f64db15d95adeb42a7a9e3d806e422bcad663e4734ed8ebab"}, {"id": "fls_vlbx5ukw5c8l", "number": "15.8:8", "link": "ownership-and-deconstruction.html#fls_vlbx5ukw5c8l", "checksum": "06a9f847c5fd97acf184ee400bbbe296accf5d480e6cef5d1766f5fef9270c17"}, {"id": "fls_d5yg6w8gv6aq", "number": "15.8:9", "link": "ownership-and-deconstruction.html#fls_d5yg6w8gv6aq", "checksum": "7478e15bd141efde6f849fddd3e660a3198328261280e11802f707445106483f"}, {"id": "fls_qidma4fpkhb0", "number": "15.8:10", "link": "ownership-and-deconstruction.html#fls_qidma4fpkhb0", "checksum": "2210651d12709f733124d5831bdb32f27f192f93fa3be518eb6b7334a6531966"}, {"id": "fls_1o9ye6cwoyiq", "number": "15.8:11", "link": "ownership-and-deconstruction.html#fls_1o9ye6cwoyiq", "checksum": "04f68fcba1cc880a1b5acaefe6abf4f93cac7e0150747463062aef3aecedc14f"}, {"id": "fls_16htxf824xbk", "number": "15.8:12", "link": "ownership-and-deconstruction.html#fls_16htxf824xbk", "checksum": "aa403db4f036453bba3271f4509a2302488c5fd4205bfdc4f54cde71db726013"}, {"id": "fls_lbsfhg42yiqy", "number": "15.8:13", "link": "ownership-and-deconstruction.html#fls_lbsfhg42yiqy", "checksum": "070c24d985ad07d4a8affc27d166c94f9beaee7f6c83f82c5249ef04eb845c8a"}, {"id": "fls_5m3u3k6f00bd", "number": "15.8:14", "link": "ownership-and-deconstruction.html#fls_5m3u3k6f00bd", "checksum": "3f43cdcc50a1a53af990b4beeb71262819034dd32a82fcb54484c052b19b44c6"}, {"id": "fls_m86ljncnmo7j", "number": "15.8:15", "link": "ownership-and-deconstruction.html#fls_m86ljncnmo7j", "checksum": "38a763a575ed36ac0f33c0e4c97708f46f5634a6bfca712737225d732788d27f"}, {"id": "fls_bewcu5xceu8i", "number": "15.8:16", "link": "ownership-and-deconstruction.html#fls_bewcu5xceu8i", "checksum": "05382bcb6a5dca3a3b33debf11b819bbb3b2b29f4559e6beeaad692d688c87c8"}, {"id": "fls_ihhhlxciqnwz", "number": "15.8:17", "link": "ownership-and-deconstruction.html#fls_ihhhlxciqnwz", "checksum": "c38a81f8df72f87ccafba9e41d742d2b2de00acfe77e463a03ec5d0e96082258"}, {"id": "fls_swxxkbzglpka", "number": "15.8:18", "link": "ownership-and-deconstruction.html#fls_swxxkbzglpka", "checksum": "08316305ae1b30302790dfc45803df2f527f449747eb34b2a91b407beec878b4"}, {"id": "fls_vrqgac634wpr", "number": "15.8:19", "link": "ownership-and-deconstruction.html#fls_vrqgac634wpr", "checksum": "770bb15fa73a6c965d591c00604c440c7de7c3e3257c6f0946cf7be4e1cb394b"}, {"id": "fls_fnvr5w2wzxns", "number": "15.8:20", "link": "ownership-and-deconstruction.html#fls_fnvr5w2wzxns", "checksum": "a35aa796d1ab80a5df343d39e3e12923a8a46fd0df82325bf334669986e7d03a"}, {"id": "fls_1vzfa5mdebxw", "number": "15.8:21", "link": "ownership-and-deconstruction.html#fls_1vzfa5mdebxw", "checksum": "67a942cc52a66f9f90a3a9131beae16808a17f3f4d7d49fdb08ff42f734ce302"}, {"id": "fls_3jtu8grramm9", "number": "15.8:22", "link": "ownership-and-deconstruction.html#fls_3jtu8grramm9", "checksum": "1dec6a051b1fff3a1bdeae59f4b0c13eae973e22d62993017cf9176ae6c41ef8"}, {"id": "fls_8r39duatupxw", "number": "15.8:23", "link": "ownership-and-deconstruction.html#fls_8r39duatupxw", "checksum": "92013afe5f273d886cf33357afa293c5145b38dd0ea03a2758611998c0ac0b32"}, {"id": "fls_2peq1tihglnr", "number": "15.8:24", "link": "ownership-and-deconstruction.html#fls_2peq1tihglnr", "checksum": "c3e4aa156bda861e6ef22a6fa15d0e213a08ac8a395097b3bae8fb744bcac564"}, {"id": "fls_il09n7sq0a3k", "number": "15.8:25", "link": "ownership-and-deconstruction.html#fls_il09n7sq0a3k", "checksum": "1f13a26446ed0aea0e199436fd0adb97cab249490f3e88c061ca7f09229125e7"}, {"id": "fls_s1wbqld139gz", "number": "15.8:26", "link": "ownership-and-deconstruction.html#fls_s1wbqld139gz", "checksum": "942aadd6edb16dc7e80b6f2cd3392f324ea9d00f9e61794c8fa5ec6b65b30d82"}, {"id": "fls_asvuef2pc3m0", "number": "15.8:27", "link": "ownership-and-deconstruction.html#fls_asvuef2pc3m0", "checksum": "750908f479d13e69946a538f5a81e56c3d71d08e5c2493c6129c77568fe3de66"}, {"id": "fls_560437qmeqtr", "number": "15.8:28", "link": "ownership-and-deconstruction.html#fls_560437qmeqtr", "checksum": "690427f07bce841d8ea70b8cb0864491ae88e1b7d4cfcf9ca2fb45657c8c0d87"}, {"id": "fls_8cunkfc6x24q", "number": "15.8:29", "link": "ownership-and-deconstruction.html#fls_8cunkfc6x24q", "checksum": "96c9a3b88a3cf78a0260b534ac8bac2c2676692e6504f28abb95658a7c723ea2"}, {"id": "fls_n108lvc4otoc", "number": "15.8:30", "link": "ownership-and-deconstruction.html#fls_n108lvc4otoc", "checksum": "41cab1feee08b6f4c71f9ce9cb18a539787287a0d87320b8477673fd090b1221"}, {"id": "fls_ptk6yibqyfzi", "number": "15.8:31", "link": "ownership-and-deconstruction.html#fls_ptk6yibqyfzi", "checksum": "d23e4c8eeb0eed8bb71e11637e19abe752abf0f59454434c187efb281833b269"}, {"id": "fls_dltmd8e8c5ia", "number": "15.8:32", "link": "ownership-and-deconstruction.html#fls_dltmd8e8c5ia", "checksum": "571f4508156e008bb63439e1b7abe647297d7fbafe515b8c2a3a24456a52e99b"}], "informational": false}, {"id": "fls_5eima0pd31c0", "number": "15.8.1", "title": "Drop Scope Extension", "link": "ownership-and-deconstruction.html#drop-scope-extension", "paragraphs": [{"id": "fls_kflqez2mtbit", "number": "15.8.1:1", "link": "ownership-and-deconstruction.html#fls_kflqez2mtbit", "checksum": "5c3d236f194a8a669a999473090570b17a9c5b62ef5f44c8025bcba89e97b82f"}, {"id": "fls_xjw82bujm148", "number": "15.8.1:2", "link": "ownership-and-deconstruction.html#fls_xjw82bujm148", "checksum": "3261611ac54de3039f960d9c6a30c641626dd062081332cd0f8cb2e0db746c2f"}, {"id": "fls_965wt48ooqyw", "number": "15.8.1:3", "link": "ownership-and-deconstruction.html#fls_965wt48ooqyw", "checksum": "95c5c42ea8af76e5ec13e3556a9f4104b818bf056900164658866e0c491b17bb"}, {"id": "fls_r8nt0zp8dnyp", "number": "15.8.1:4", "link": "ownership-and-deconstruction.html#fls_r8nt0zp8dnyp", "checksum": "5034d75dc865e69bdf2efb3059a8f9cf91eff07283969d9f524cbfabd137b3c7"}, {"id": "fls_3ycn4u1fe9h", "number": "15.8.1:5", "link": "ownership-and-deconstruction.html#fls_3ycn4u1fe9h", "checksum": "cab57995b7b7f326223f4f7bb819e8eea5a8ad676cdbed06ce58b66817c6a3c9"}, {"id": "fls_wyzau8hhq74d", "number": "15.8.1:6", "link": "ownership-and-deconstruction.html#fls_wyzau8hhq74d", "checksum": "0836f8daa7f6588b9456d90b372c0946700d6eb342da49b2767e6605dba0c21b"}, {"id": "fls_ju7cpftd8r2g", "number": "15.8.1:7", "link": "ownership-and-deconstruction.html#fls_ju7cpftd8r2g", "checksum": "aea23e828f184cda611d99e160befc6e9e895758347678db72a4029a5d852fd2"}, {"id": "fls_gjd1ow3l7swe", "number": "15.8.1:8", "link": "ownership-and-deconstruction.html#fls_gjd1ow3l7swe", "checksum": "103c691d3e10bb12cabdb5a93c6650a85e45c7e566560b225feecfadc4cbed76"}, {"id": "fls_iqw0d1l1lj3i", "number": "15.8.1:9", "link": "ownership-and-deconstruction.html#fls_iqw0d1l1lj3i", "checksum": "f9d27231592868802964cc99b81ef283fb6e96cd3abae622cbd859e5d1dd4caa"}, {"id": "fls_aq01wjpkxhq9", "number": "15.8.1:10", "link": "ownership-and-deconstruction.html#fls_aq01wjpkxhq9", "checksum": "ac60d872c2d76afebdf1240a5b1a41539175dcd095ba1374d768e8bce3e15b83"}, {"id": "fls_vdpi1djzjmub", "number": "15.8.1:11", "link": "ownership-and-deconstruction.html#fls_vdpi1djzjmub", "checksum": "46590c95c001116b2b295d3fc9fa40d5606614d0db1cfd11751f0a52118c3ef7"}, {"id": "fls_elgh7hsawmrb", "number": "15.8.1:12", "link": "ownership-and-deconstruction.html#fls_elgh7hsawmrb", "checksum": "d24a178200c6d509f3d2649dd64705b91fb52709df2446bfa5b4e8fa8ad62f32"}, {"id": "fls_29y59x8bmw75", "number": "15.8.1:13", "link": "ownership-and-deconstruction.html#fls_29y59x8bmw75", "checksum": "44d7f93b36e564d7dd23acdecf6d4a1a3a7cf215632d946a757ea1b25f3d6f7e"}, {"id": "fls_subo2w7ln43q", "number": "15.8.1:14", "link": "ownership-and-deconstruction.html#fls_subo2w7ln43q", "checksum": "42a669613202095a2133d66d495e0e881e4d7819d202aae70dc008b2a1f19724"}], "informational": false}, {"id": "fls_afafmafz4hf2", "number": "15.9", "title": "Drop Order", "link": "ownership-and-deconstruction.html#drop-order", "paragraphs": [{"id": "fls_n6o1xzjiz8cv", "number": "15.9:1", "link": "ownership-and-deconstruction.html#fls_n6o1xzjiz8cv", "checksum": "6d998923ce960019bd73240feb0f4f1e3e9d705bbedbaf213c73707899dfd504"}, {"id": "fls_jwofws3022ar", "number": "15.9:2", "link": "ownership-and-deconstruction.html#fls_jwofws3022ar", "checksum": "0c3b33caf3b9c961df39107ec74da60de4eb20ab99798df119cb2faed79efe15"}, {"id": "fls_g07zq3n55094", "number": "15.9:3", "link": "ownership-and-deconstruction.html#fls_g07zq3n55094", "checksum": "bc677cb2ecd387ad028dfeba3096263c7bc2aa8bdf981bb3fc76e9d4bd8d0885"}, {"id": "fls_a5tmilqxdb6f", "number": "15.9:4", "link": "ownership-and-deconstruction.html#fls_a5tmilqxdb6f", "checksum": "14fdcee19609abf8aeed5f7e20952a848faecfba256dd405eca3cc49a24b338f"}, {"id": "fls_zqgkvgwizmq7", "number": "15.9:5", "link": "ownership-and-deconstruction.html#fls_zqgkvgwizmq7", "checksum": "717f7f256a61d53de344e5a6553b5529ee34e430a67efc99ceab0162e8631a2a"}, {"id": "fls_k8whhuwauvqr", "number": "15.9:6", "link": "ownership-and-deconstruction.html#fls_k8whhuwauvqr", "checksum": "8da2ed90a465a8e65f20c991391be8fcdc1d7b7d35ec5e06dfef767d9b68cae4"}, {"id": "fls_npcrm4t03oqg", "number": "15.9:7", "link": "ownership-and-deconstruction.html#fls_npcrm4t03oqg", "checksum": "df8e0a488a8a05da58f4656abffbbd5eb240a8a0ff05293049814a5fdf5acb4b"}, {"id": "fls_3i348l3pbtrx", "number": "15.9:8", "link": "ownership-and-deconstruction.html#fls_3i348l3pbtrx", "checksum": "4b4f51cb30705d0cc7632e1f0e4132697ef1cdbe4cb781a401e1baf0ec958fba"}, {"id": "fls_oe8l81y0wnao", "number": "15.9:9", "link": "ownership-and-deconstruction.html#fls_oe8l81y0wnao", "checksum": "1dd15f42037f9a83cd43f4dd42e7ae00f8d5a9e674152e738a0abc09c7f2ba8a"}, {"id": "fls_4sgca9wcl8h0", "number": "15.9:10", "link": "ownership-and-deconstruction.html#fls_4sgca9wcl8h0", "checksum": "61f14bc12e0d1c55c7aa99cf8c4e500d1effa786d1f50cc8ac8463693abeb1fa"}, {"id": "fls_a2m4ibzhgupa", "number": "15.9:11", "link": "ownership-and-deconstruction.html#fls_a2m4ibzhgupa", "checksum": "2ac52c80f7a45d49874b8b452b7d5541e0200bef9c38d6f5b32c0e20bf9296b3"}, {"id": "fls_go3bvd23vzi9", "number": "15.9:12", "link": "ownership-and-deconstruction.html#fls_go3bvd23vzi9", "checksum": "5cbdd388b3d5de9f7fcb63733ebb916504fce634b415f2fcd87d3683cdcb52c6"}, {"id": "fls_7rwo0he8x143", "number": "15.9:13", "link": "ownership-and-deconstruction.html#fls_7rwo0he8x143", "checksum": "095cc1d51b861087a618aa1e4e9fc0377405a71c6d4d02c44502cfbfb34e962e"}, {"id": "fls_43yqlxjr3a10", "number": "15.9:14", "link": "ownership-and-deconstruction.html#fls_43yqlxjr3a10", "checksum": "beaea22f979a7a281290ec83d8d0ac0786a9365b64f973a51a5c48539df32310"}, {"id": "fls_a7lsq2kkzkk4", "number": "15.9:15", "link": "ownership-and-deconstruction.html#fls_a7lsq2kkzkk4", "checksum": "b0246b982f33561e6c330d7de3f8c8d00db491873c9db1eda52117c58981edbc"}], "informational": false}], "informational": false}, {"title": "Functions", "link": "functions.html", "sections": [{"id": "fls_qcb1n9c0e5hz", "number": "9", "title": "Functions", "link": "functions.html", "paragraphs": [{"id": "fls_gn1ngtx2tp2s", "number": "9:1", "link": "functions.html#fls_gn1ngtx2tp2s", "checksum": "d85148abd62f72e649abbb14ec33bcf5dd833660e6d429978a1233e8aa19e739"}, {"id": "fls_bdx9gnnjxru3", "number": "9:2", "link": "functions.html#fls_bdx9gnnjxru3", "checksum": "0b7f0bc4680d19a82f2a03e22ab8228330095ac38f768e6138b1fa061209b0cd"}, {"id": "fls_87jnkimc15gi", "number": "9:3", "link": "functions.html#fls_87jnkimc15gi", "checksum": "4ef42a17784ccf912f1917cdc894f87abaa5c3ae6bbc330e5d97884670ee69a3"}, {"id": "fls_nwywh1vjt6rr", "number": "9:4", "link": "functions.html#fls_nwywh1vjt6rr", "checksum": "1be13228840af974c47c9d4a16fb932edc3efcbbb1b5a5d8261d4eb3d4db1df5"}, {"id": "fls_uwuthzfgslif", "number": "9:5", "link": "functions.html#fls_uwuthzfgslif", "checksum": "e7bbdbb6cf00db43de1e27fe5b39e71062d7737351b11ee44c1f02ab45beabfb"}, {"id": "fls_ymeo93t4mz4", "number": "9:6", "link": "functions.html#fls_ymeo93t4mz4", "checksum": "d6307364051e9afc70d6e0e3e277a7a096ecb2eb1db51e356303d7ee87537a12"}, {"id": "fls_ijbt4tgnl95n", "number": "9:7", "link": "functions.html#fls_ijbt4tgnl95n", "checksum": "2119a7ea0e7b937c1318f8b7cb342aea3ec7249cab773a35ff4b8a0701d43f4b"}, {"id": "fls_icdzs1mjh0n4", "number": "9:8", "link": "functions.html#fls_icdzs1mjh0n4", "checksum": "0b1169bc488b60cf4dba9b24b7d4d453438aaef69d30789b16d3df1094ec74da"}, {"id": "fls_lxzinvqveuqh", "number": "9:9", "link": "functions.html#fls_lxzinvqveuqh", "checksum": "afcad007b988dd4e9a7ae77d05318b5818905bf05921cd7d14070abe83ebb9b2"}, {"id": "fls_pgdkwk7npvgw", "number": "9:10", "link": "functions.html#fls_pgdkwk7npvgw", "checksum": "a6f8a428953b804ae4d9a530c1659087e99139633acc2e99d4315bf792bf123a"}, {"id": "fls_vljy4mm0zca2", "number": "9:11", "link": "functions.html#fls_vljy4mm0zca2", "checksum": "b82bf4578023aa2218ec01202b93d193cbb48fd8b53d740a5c9d3bb482caaf10"}, {"id": "fls_eqjb3jl3vk8k", "number": "9:12", "link": "functions.html#fls_eqjb3jl3vk8k", "checksum": "b89caf540730b919c47a1f20bdd5dc9302aca3ec99300e25098600be2e706acf"}, {"id": "fls_c7dvzcxcpqcy", "number": "9:13", "link": "functions.html#fls_c7dvzcxcpqcy", "checksum": "e2ca22f3a68ea69c89d5499ab8bfaff4ea879242e37d601e8b78939484e3fbd9"}, {"id": "fls_j8x8ahnjlrmo", "number": "9:14", "link": "functions.html#fls_j8x8ahnjlrmo", "checksum": "2f2202efc417e1cd3118f5b446cf8c8a375b6e5f8ebaed72a0201aa9d161578a"}, {"id": "fls_927nfm5mkbsp", "number": "9:15", "link": "functions.html#fls_927nfm5mkbsp", "checksum": "f01d77c3faa9dafff3f5a3ca3928a29d60e2867a2438140aaaa4cbceb25da31b"}, {"id": "fls_yfm0jh62oaxr", "number": "9:16", "link": "functions.html#fls_yfm0jh62oaxr", "checksum": "a8e601de98599b419876278ab5521c5cc49ae6bfdacfe061350c283e236e211f"}, {"id": "fls_bhwy8flzeui3", "number": "9:17", "link": "functions.html#fls_bhwy8flzeui3", "checksum": "45189d0422353cd31d5e3d1460ac0bf25731cc9f464574e6acf3ba0a8661dffb"}, {"id": "fls_5q861wb08du3", "number": "9:18", "link": "functions.html#fls_5q861wb08du3", "checksum": "1952dd7798e9fd4d8fb5f525eedc05613f2ef1a660b93bfa8f24167e67f839bb"}, {"id": "fls_owdlsaaygtho", "number": "9:19", "link": "functions.html#fls_owdlsaaygtho", "checksum": "a336a489c323ad22b7aa3059350a2400bb8e41f5eef6ce02b17682c438a9fd09"}, {"id": "fls_2049qu3ji5x7", "number": "9:20", "link": "functions.html#fls_2049qu3ji5x7", "checksum": "4355b34dd22393af15f6fad33ae3c69fc7091736b751b78d2b18cb15ceb7b3cc"}, {"id": "fls_7mlanuh5mvpn", "number": "9:21", "link": "functions.html#fls_7mlanuh5mvpn", "checksum": "515666a67e5b60858568348fd8b4c6021e49484b778d6ccd6c357f9b792643d1"}, {"id": "fls_otr3hgp8lj1q", "number": "9:22", "link": "functions.html#fls_otr3hgp8lj1q", "checksum": "4ccbc87469f1565c32bef31f5909da4c2b2f1febaf71e3b0216053540e2732c4"}, {"id": "fls_m3jiunibqj81", "number": "9:23", "link": "functions.html#fls_m3jiunibqj81", "checksum": "45a75ca66fc48e3abbe4a9b46d1599f9ecbcfae9fbc5df35e1b5d8939f41f8c4"}, {"id": "fls_7vogmqyd87ey", "number": "9:24", "link": "functions.html#fls_7vogmqyd87ey", "checksum": "388876fffc5a50a274a155691b5fe0142ca2651fe1ce20d17301a9682d3638f6"}, {"id": "fls_7ucwmzqtittv", "number": "9:25", "link": "functions.html#fls_7ucwmzqtittv", "checksum": "3f0f3a193820a8bc83e0d3bc5c7d12596eeec70afc5bb2a86f74329034382fc0"}, {"id": "fls_5hn8fkf7rcvz", "number": "9:26", "link": "functions.html#fls_5hn8fkf7rcvz", "checksum": "fbf5fb05e9efc647400ab22d0002c1bc09b999d239850236501817c8374a143c"}, {"id": "fls_nw49shkqx40b", "number": "9:27", "link": "functions.html#fls_nw49shkqx40b", "checksum": "bbb5147c63bbcc53372207b2b9688b14bf724e4eebf9d6eed8b1c8335bc46339"}, {"id": "fls_o4fxok23134r", "number": "9:28", "link": "functions.html#fls_o4fxok23134r", "checksum": "06806b5f2bb00b12d499429e29aa3f6916237f0c54e9136fd16474fae18c14fb"}, {"id": "fls_bk755pvc1l53", "number": "9:29", "link": "functions.html#fls_bk755pvc1l53", "checksum": "c791afca579a283e2645e4a3bf9473606a55028fcaec0a1fca0c5d87bf7db370"}, {"id": "fls_5j2vbkt2hitj", "number": "9:30", "link": "functions.html#fls_5j2vbkt2hitj", "checksum": "6fda6306c77fde877485229b9ec857991209bb51bb0c707140c6eff580933610"}, {"id": "fls_a3je4wc53bmo", "number": "9:31", "link": "functions.html#fls_a3je4wc53bmo", "checksum": "4eaf3f71fa346f0de97eaef7ae61b54e234608337d12733cee8930cd3a0a16be"}, {"id": "fls_w8q15zp7kyl0", "number": "9:32", "link": "functions.html#fls_w8q15zp7kyl0", "checksum": "dc35e76e01d0f08b81b61a7c8861a422fa2dc8a5d44ce4557affba712d088d61"}, {"id": "fls_4psnfphsgdek", "number": "9:33", "link": "functions.html#fls_4psnfphsgdek", "checksum": "0605829262c1b010a633c97250c2141e26eabf10f42a901e0ffae239bc84909e"}, {"id": "fls_m7xfrhqif74", "number": "9:34", "link": "functions.html#fls_m7xfrhqif74", "checksum": "406115e1f2b804459a7155b5aa521a67fae4b9a11d3d9ee26b45671e0d705fad"}, {"id": "fls_qq9fzrw4aykd", "number": "9:35", "link": "functions.html#fls_qq9fzrw4aykd", "checksum": "7527f425026d6c1455709270dbc862fa8c81edae9aa97bbf4c63b854ab77ea04"}], "informational": false}], "informational": false}, {"title": "FFI", "link": "ffi.html", "sections": [{"id": "fls_osd6c4utyjb3", "number": "21", "title": "FFI", "link": "ffi.html", "paragraphs": [{"id": "fls_djlglv2eaihl", "number": "21:1", "link": "ffi.html#fls_djlglv2eaihl", "checksum": "9dbb89c33be2fd11861ca905be788d903d72880fdf1dece1bc8a63747a947445"}, {"id": "fls_k1hiwghzxtfa", "number": "21:2", "link": "ffi.html#fls_k1hiwghzxtfa", "checksum": "33f23ecced9a34c5f1aaaa909380603062d763f33056c5a2998e61ba20e81e21"}, {"id": "fls_3cgtdk4698hm", "number": "21:3", "link": "ffi.html#fls_3cgtdk4698hm", "checksum": "e6918e7d46ef5f24647902726d860e1abaf15c6b4f3e50771748abe1156acb4a"}, {"id": "fls_shzmgci4f7o5", "number": "21:4", "link": "ffi.html#fls_shzmgci4f7o5", "checksum": "b297f2f7182e518adc328b76e8e51549d74fd016d982e945f3afad959b8e4fee"}, {"id": "fls_m7x5odt4nb23", "number": "21:5", "link": "ffi.html#fls_m7x5odt4nb23", "checksum": "fc67b06bdfa241b1112995e95bea87b539fd31dee8c24e402fcd9d7af65eed2f"}, {"id": "fls_4akfvpq1yg4g", "number": "21:6", "link": "ffi.html#fls_4akfvpq1yg4g", "checksum": "ed6db46b8be18e820fbb6dfc0dd19df1bb2ac9687dacf002b00c217d8ddbf625"}, {"id": "fls_9d8v0xeyi0f", "number": "21:7", "link": "ffi.html#fls_9d8v0xeyi0f", "checksum": "a0f18eb2fe8db99bebeadf847111b16dfaa78ebdbaec8e8f7b364e6a40966ebf"}], "informational": false}, {"id": "fls_usgd0xlijoxv", "number": "21.1", "title": "ABI", "link": "ffi.html#abi", "paragraphs": [{"id": "fls_xangrq3tfze0", "number": "21.1:1", "link": "ffi.html#fls_xangrq3tfze0", "checksum": "5907d37d1b47c67dacab00d10295ab91ec2974c77016fc225a28413fdcecf896"}, {"id": "fls_2w0xi6rxw3uz", "number": "21.1:2", "link": "ffi.html#fls_2w0xi6rxw3uz", "checksum": "303e206ff87fda7c72da6833ecc1035fb2e1bc4de71a73e3c1d6fce85b12b068"}, {"id": "fls_9zitf1fvvfk8", "number": "21.1:3", "link": "ffi.html#fls_9zitf1fvvfk8", "checksum": "a7324b60f99f6fb51284703d13f58460e71099e1fae889aca7365c5c7c1b5976"}, {"id": "fls_x7ct9k82fpgn", "number": "21.1:4", "link": "ffi.html#fls_x7ct9k82fpgn", "checksum": "9deadcb79842b0adc5ae917673a5a388d2bd4ed4c1732bf5a25e4e650395ca87"}, {"id": "fls_lfjvlxvi6tfl", "number": "21.1:5", "link": "ffi.html#fls_lfjvlxvi6tfl", "checksum": "c336142c062c3b0f4238fbadf03105300bfcc6e13ec8c02ac9c02aa0bb4dcf50"}, {"id": "fls_a2d8ltpgtvn6", "number": "21.1:6", "link": "ffi.html#fls_a2d8ltpgtvn6", "checksum": "39df1027aa9c166e4e50895b0a788131e1f5f2323e7cfd31b5e06e5b3c128c65"}, {"id": "fls_8m7pc3riokst", "number": "21.1:7", "link": "ffi.html#fls_8m7pc3riokst", "checksum": "73a1ea71c6511f5c8fa189351be1febafe409c8be34b695dbf2b171521b6a22a"}, {"id": "fls_r2drzo3dixe4", "number": "21.1:8", "link": "ffi.html#fls_r2drzo3dixe4", "checksum": "bde0533495e75b4ceb809bb02e397e0d5daa1d7c3d1977865fcaf0ff5f4d989a"}, {"id": "fls_z2kzyin8dyr7", "number": "21.1:9", "link": "ffi.html#fls_z2kzyin8dyr7", "checksum": "907e87e17820da8559bd8a486992acf18956b1456ecc61cb90278065e01374ca"}, {"id": "fls_j6pqchx27ast", "number": "21.1:10", "link": "ffi.html#fls_j6pqchx27ast", "checksum": "c2d1059fcd1026468253d1771f735c5e6a5bab43177231babeb00190e68633a2"}, {"id": "fls_dbbfqaqa80r8", "number": "21.1:11", "link": "ffi.html#fls_dbbfqaqa80r8", "checksum": "3669dcdebc7765bda115346c9c6980555f7499a5575f7f12566645e7c5580b1b"}, {"id": "fls_36qrs2fxxvi7", "number": "21.1:12", "link": "ffi.html#fls_36qrs2fxxvi7", "checksum": "1da7fe0a23d93d524fed3110b8c116e9b7fe7f1563c51830ffd8b98ce562b9dd"}, {"id": "fls_6rtj6rwqxojh", "number": "21.1:13", "link": "ffi.html#fls_6rtj6rwqxojh", "checksum": "42ee2288dd6a0bde172c2aa19bdd6c764e4c21913a22a4d9d65065b478aa14ba"}, {"id": "fls_d3nmpc5mtg27", "number": "21.1:14", "link": "ffi.html#fls_d3nmpc5mtg27", "checksum": "a81529042a5b1033d4dfd23dc355a422cafc5e8a94dac4134dcc1cdbe6d6b01d"}, {"id": "fls_7t7yxh94wnbl", "number": "21.1:15", "link": "ffi.html#fls_7t7yxh94wnbl", "checksum": "fab1088ce02afa3c8566f0f5033efbd1b6cfec69fc639a64273cc39e32f479e5"}, {"id": "fls_sxj4vy39sj4g", "number": "21.1:16", "link": "ffi.html#fls_sxj4vy39sj4g", "checksum": "aa45e16b2c9fb1e7d7ecf23ca38806bc2f369b1d1be518e74d28e24e6b54a8b4"}, {"id": "fls_tyjs1x4j8ovp", "number": "21.1:17", "link": "ffi.html#fls_tyjs1x4j8ovp", "checksum": "563032c0e9c472e10f9c487c70925926c24107c3258cc003fb04dd03b00c21af"}, {"id": "fls_m4lqhf8hbpa8", "number": "21.1:18", "link": "ffi.html#fls_m4lqhf8hbpa8", "checksum": "325e66e1fabd736adc5af45c19421a9268caa39bd78c98d091266005e54f20c8"}], "informational": false}, {"id": "fls_tmoh3y9oyqsy", "number": "21.2", "title": "External Blocks", "link": "ffi.html#external-blocks", "paragraphs": [{"id": "fls_4dje9t5y2dia", "number": "21.2:1", "link": "ffi.html#fls_4dje9t5y2dia", "checksum": "32c972f272a9d15a0eb8dc264c17c46b370c4bd9b1088bfd65a68fdb64c4b15e"}, {"id": "fls_nz0l16hmxqtd", "number": "21.2:2", "link": "ffi.html#fls_nz0l16hmxqtd", "checksum": "d3516af1c3ea4a3ba811bf1081ac06de4b8eb22057c37dc0bd4d086ee54db362"}, {"id": "fls_4xooifloxm7t", "number": "21.2:3", "link": "ffi.html#fls_4xooifloxm7t", "checksum": "160ef01077e123c673f3437e37cc0c39bc2ecf284187af80088547f8c4dcea59"}, {"id": "fls_pbsepnhimjkh", "number": "21.2:4", "link": "ffi.html#fls_pbsepnhimjkh", "checksum": "dd7c836fa590b14a7da0c87f48b6eb0d11c83010e9f4ac1e0615ebecc9ba7eb3"}, {"id": "fls_iaimuqcclstl", "number": "21.2:5", "link": "ffi.html#fls_iaimuqcclstl", "checksum": "7d4b55c59ea318d78494221e436aedbac6a9c1c17661c2243e80990dd2188a52"}], "informational": false}, {"id": "fls_yztwtek0y34v", "number": "21.3", "title": "External Functions", "link": "ffi.html#external-functions", "paragraphs": [{"id": "fls_v24ino4hix3m", "number": "21.3:1", "link": "ffi.html#fls_v24ino4hix3m", "checksum": "0104ba914d1d2a6dafc2b7914cc94254e1ab3678864a25c1864a89740a54294f"}, {"id": "fls_l88r9fj82650", "number": "21.3:2", "link": "ffi.html#fls_l88r9fj82650", "checksum": "1bf19f866a19f72882e1486cea9582179a769d7bd9a3d9378b982a74452ebb7b"}, {"id": "fls_qwchgvvnp0qe", "number": "21.3:3", "link": "ffi.html#fls_qwchgvvnp0qe", "checksum": "9abb006e22c228a40953b442c54e63fd9a10cc675390d5e7d61b1fb7221ec353"}, {"id": "fls_w00qi1gx204e", "number": "21.3:4", "link": "ffi.html#fls_w00qi1gx204e", "checksum": "af35e63fe34e63713827f5525caee153a033f726c0cf64300b5612781daf29fc"}, {"id": "fls_m7tu4w4lk8v", "number": "21.3:5", "link": "ffi.html#fls_m7tu4w4lk8v", "checksum": "9ff777cfdc4b91eb8472493cfbc9e96b5e66329d621fb37d3c8603b420f63f79"}, {"id": "fls_rdu4723vp0oo", "number": "21.3:6", "link": "ffi.html#fls_rdu4723vp0oo", "checksum": "69809b6272d266f36a20ad706492a4e3561e0afa136d36145d8804f83456d978"}, {"id": "fls_9div9yusw64h", "number": "21.3:7", "link": "ffi.html#fls_9div9yusw64h", "checksum": "8a5942ade1d1568f8a2e335a8767ab295816829fc64e2c4ef250f53feee9ec69"}, {"id": "fls_juob30rst11r", "number": "21.3:8", "link": "ffi.html#fls_juob30rst11r", "checksum": "0e21072dc94fa05d0ff274b95c7cdfe5e96a5fddabfd26720dd20bcd7aecbf38"}], "informational": false}, {"id": "fls_s4yt19sptl7d", "number": "21.4", "title": "External Statics", "link": "ffi.html#external-statics", "paragraphs": [{"id": "fls_8ddsytjr4il6", "number": "21.4:1", "link": "ffi.html#fls_8ddsytjr4il6", "checksum": "a342af289e2343c6a6c563bb75a44dd7f003efc17cc5dddaf9db25fc1395f17c"}, {"id": "fls_h0cg9xmagz0y", "number": "21.4:2", "link": "ffi.html#fls_h0cg9xmagz0y", "checksum": "7456ec21405a4f2629a47ca17fd031b08d4bf3cde66139fe81c3b11248264ca1"}, {"id": "fls_fo9with6xumo", "number": "21.4:3", "link": "ffi.html#fls_fo9with6xumo", "checksum": "0950c80e76e16cc26a368f06ab710449600669547abe9b7d1b6e520dc0065ff9"}, {"id": "fls_tr7purzcldn0", "number": "21.4:4", "link": "ffi.html#fls_tr7purzcldn0", "checksum": "1e3dcb44d797a493ed568db4d4a7c292794fa22ef50cc810f94492b86ec20c75"}, {"id": "fls_en2h09ehj0j3", "number": "21.4:5", "link": "ffi.html#fls_en2h09ehj0j3", "checksum": "0fb23c674fc5c6699fc7b3869fdc36f00d967880169275042498442dc58a8872"}], "informational": false}], "informational": false}, {"title": "Glossary", "link": "glossary.html", "sections": [{"id": "fls_bc2qwbfibrcs", "number": "B", "title": "Glossary", "link": "glossary.html", "paragraphs": [], "informational": false}, {"id": "fls_m98yg554tj9s", "number": "B.1", "title": "ABI", "link": "glossary.html#abi", "paragraphs": [{"id": "fls_4ko8qcah0f9k", "number": "B.1:1", "link": "glossary.html#fls_4ko8qcah0f9k", "checksum": "a4b8b9adc0d06d2a1d33f109da69c23d05657829cf884e7db50cbd82d36ce75d"}], "informational": false}, {"id": "fls_zoddwoobyhc0", "number": "B.2", "title": "ABI clobber", "link": "glossary.html#abi-clobber", "paragraphs": [{"id": "fls_ovx4rfcwkfp9", "number": "B.2:1", "link": "glossary.html#fls_ovx4rfcwkfp9", "checksum": "1a4c99c0680d2f8364d1e4f3c98050fac1c55af56f6adec3c02a4c03d0f0ba0b"}, {"id": "fls_pmntkjdmchia", "number": "B.2:2", "link": "glossary.html#fls_pmntkjdmchia", "checksum": "7b53a3a4aae9412baf48e0885aa364924a25cdff9462cf2f6ecad59329b8dea4"}], "informational": false}, {"id": "fls_g791aj7w5iz1", "number": "B.3", "title": "ABI kind", "link": "glossary.html#abi-kind", "paragraphs": [{"id": "fls_qo9itrt0n3h8", "number": "B.3:1", "link": "glossary.html#fls_qo9itrt0n3h8", "checksum": "0c7a14fdad22f794abe3d6c82d31e3458e73f437529de5043b115cb3b98d67bf"}, {"id": "fls_rd4kpubxygie", "number": "B.3:2", "link": "glossary.html#fls_rd4kpubxygie", "checksum": "62464e5a05d93ce71aa0049bfa2a6d7d28fb94c0ac7adacff3e43aa98d7c7c85"}], "informational": false}, {"id": "fls_ymnz0mt7i4m8", "number": "B.4", "title": "abort", "link": "glossary.html#abort", "paragraphs": [{"id": "fls_u4o7tda3ilv0", "number": "B.4:1", "link": "glossary.html#fls_u4o7tda3ilv0", "checksum": "7d8b5622cb41f4a6e44f0899a7311a7489321b6a81baf543af5a16698140a66f"}], "informational": false}, {"id": "fls_g40une2uudez", "number": "B.5", "title": "abstract data type", "link": "glossary.html#abstract-data-type", "paragraphs": [{"id": "fls_64drmro2fcfo", "number": "B.5:1", "link": "glossary.html#fls_64drmro2fcfo", "checksum": "d7a55be9b85d21513a63d47bc7c112eda652d7ddc9819ac326b8b23b6cba2125"}], "informational": false}, {"id": "fls_5fu0ncvnjyna", "number": "B.6", "title": "active attribute", "link": "glossary.html#active-attribute", "paragraphs": [{"id": "fls_r8rzj8mtxtp1", "number": "B.6:1", "link": "glossary.html#fls_r8rzj8mtxtp1", "checksum": "5d8d38118bd288415e8b133834f31a7e01007305fd1d694f920eb2d295dc23d9"}], "informational": false}, {"id": "fls_xqzapsv9tm1f", "number": "B.7", "title": "addition assignment", "link": "glossary.html#addition-assignment", "paragraphs": [{"id": "fls_fvgkecxlmupe", "number": "B.7:1", "link": "glossary.html#fls_fvgkecxlmupe", "checksum": "18a73c5ede1011466f9dc30afca85c785c4bb4887c829ff6872b1afd6c143785"}], "informational": false}, {"id": "fls_iw30dqjaeqle", "number": "B.8", "title": "addition assignment expression", "link": "glossary.html#addition-assignment-expression", "paragraphs": [{"id": "fls_w83tf9m7vu67", "number": "B.8:1", "link": "glossary.html#fls_w83tf9m7vu67", "checksum": "98791e8b448b56750c7e22e4f8aee0da4f9b06296b917dbbff908bfacdc36bed"}, {"id": "fls_hihh97p0rnt8", "number": "B.8:2", "link": "glossary.html#fls_hihh97p0rnt8", "checksum": "001adcc5cf31667dc474a6877f534f69a81f18ddcab2d86e6ed83cc8fe500082"}], "informational": false}, {"id": "fls_mcabdigrqv21", "number": "B.9", "title": "addition expression", "link": "glossary.html#addition-expression", "paragraphs": [{"id": "fls_ylfdtuajmi0t", "number": "B.9:1", "link": "glossary.html#fls_ylfdtuajmi0t", "checksum": "64f1fbee5138f70b47557615d2e94efea505f51e584cb05aece1dff319d90ee6"}, {"id": "fls_5bgx5dyi817x", "number": "B.9:2", "link": "glossary.html#fls_5bgx5dyi817x", "checksum": "68c00757a667a7d05b35a2b500a797bf290d113953e916010ccad377f4804011"}], "informational": false}, {"id": "fls_wbdlbe61de3t", "number": "B.10", "title": "adjusted call operand", "link": "glossary.html#adjusted-call-operand", "paragraphs": [{"id": "fls_mchqbc64iu0u", "number": "B.10:1", "link": "glossary.html#fls_mchqbc64iu0u", "checksum": "ade9bc5a53b24efdeb86472abcb73c57df00dbc87e4e34d1326537fae8183f57"}], "informational": false}, {"id": "fls_j775guurkgo4", "number": "B.11", "title": "alignment", "link": "glossary.html#alignment", "paragraphs": [{"id": "fls_c0hbatn5o8x3", "number": "B.11:1", "link": "glossary.html#fls_c0hbatn5o8x3", "checksum": "5c7086aeda1386efc9b74f3da54259777835abd3e74462d5599d2da7af1ef59d"}], "informational": false}, {"id": "fls_jzkpcku1t2lr", "number": "B.12", "title": "all configuration predicate", "link": "glossary.html#all-configuration-predicate", "paragraphs": [{"id": "fls_iymzwitnkypv", "number": "B.12:1", "link": "glossary.html#fls_iymzwitnkypv", "checksum": "6808f99c6d1e3528894ffc4a50f26c4ff9826a8a39f1eb8a8649656dbbf99cb9"}, {"id": "fls_0few9bx8xx8q", "number": "B.12:2", "link": "glossary.html#fls_0few9bx8xx8q", "checksum": "766c81fa44bbba49b8e11a3675587467e229b8b2bcf098eacb996629733d3aee"}], "informational": false}, {"id": "fls_du8uevac5q7j", "number": "B.13", "title": "anonymous loop expression", "link": "glossary.html#anonymous-loop-expression", "paragraphs": [{"id": "fls_csss2a8yk52k", "number": "B.13:1", "link": "glossary.html#fls_csss2a8yk52k", "checksum": "b20168e112b5a2296c07054c48e2c12ce7e489d74564757148b2aa900f6f2671"}], "informational": false}, {"id": "fls_dgxkklxcrrl0", "number": "B.14", "title": "anonymous return type", "link": "glossary.html#anonymous-return-type", "paragraphs": [{"id": "fls_z6t6lbwwztuf", "number": "B.14:1", "link": "glossary.html#fls_z6t6lbwwztuf", "checksum": "198d4349217668b52c8df13a0b9818dbf3aa38a320a4d98a4102ba04ab7d295b"}], "informational": false}, {"id": "fls_8oepaq6ang93", "number": "B.15", "title": "anonymous type parameter", "link": "glossary.html#anonymous-type-parameter", "paragraphs": [{"id": "fls_brqaq0736o09", "number": "B.15:1", "link": "glossary.html#fls_brqaq0736o09", "checksum": "e2d7b8aaac92db93d38fcd31bfae0e852168a01b4d0e86f27e9476a403a7186b"}], "informational": false}, {"id": "fls_jrzm6c5b6amt", "number": "B.16", "title": "any configuration predicate", "link": "glossary.html#any-configuration-predicate", "paragraphs": [{"id": "fls_0nwhml8eoozg", "number": "B.16:1", "link": "glossary.html#fls_0nwhml8eoozg", "checksum": "901ba35139b08ae1dedfc6cbd9d2ed55bbbb93f55c8de7151cc38a1521790add"}, {"id": "fls_xhhxondldwqy", "number": "B.16:2", "link": "glossary.html#fls_xhhxondldwqy", "checksum": "57d6d36e65b833a08834b7e541e88a01a13775a6fe67f76315339425a1a96083"}], "informational": false}, {"id": "fls_pcum2wpmgskk", "number": "B.17", "title": "Application Binary Interface", "link": "glossary.html#application-binary-interface", "paragraphs": [{"id": "fls_ew4babc9467c", "number": "B.17:1", "link": "glossary.html#fls_ew4babc9467c", "checksum": "c10718ee19f1201e9e9b7a56c6b617bec1c6a443ee347fc27692063012ef9c14"}, {"id": "fls_8dgmmsp34lgc", "number": "B.17:2", "link": "glossary.html#fls_8dgmmsp34lgc", "checksum": "153f28a8596d2298b2c427e267dcae87765bb56d5c6263d3052ebe3b5d3bd8d3"}], "informational": false}, {"id": "fls_dd008npswhij", "number": "B.18", "title": "argument operand", "link": "glossary.html#argument-operand", "paragraphs": [{"id": "fls_ljuwr88k92vp", "number": "B.18:1", "link": "glossary.html#fls_ljuwr88k92vp", "checksum": "6bfa74716faf884aa1779362249861b00e1009170c63cedf337926564d47b803"}], "informational": false}, {"id": "fls_kf81ozijral2", "number": "B.19", "title": "arithmetic expression", "link": "glossary.html#arithmetic-expression", "paragraphs": [{"id": "fls_u3z2r1fw89xo", "number": "B.19:1", "link": "glossary.html#fls_u3z2r1fw89xo", "checksum": "09f7033a48d34f5b5cc2da4e0c146ffb6c35a005e6021da914d59bc4b6e09a44"}, {"id": "fls_in59ccg4g3we", "number": "B.19:2", "link": "glossary.html#fls_in59ccg4g3we", "checksum": "ad1871a77448f12fd5e58ed8c626ded9e8e52afa05b92616d9484411af6b061a"}], "informational": false}, {"id": "fls_ksuc3gi7cdly", "number": "B.20", "title": "arithmetic operator", "link": "glossary.html#arithmetic-operator", "paragraphs": [{"id": "fls_qf7dckakqvrq", "number": "B.20:1", "link": "glossary.html#fls_qf7dckakqvrq", "checksum": "cbf72638ec53eebe2fbf63987178814dabf15f620b19d3e6eefe5a0c82081c19"}], "informational": false}, {"id": "fls_vz1h57x9ofsz", "number": "B.21", "title": "arithmetic overflow", "link": "glossary.html#arithmetic-overflow", "paragraphs": [{"id": "fls_jbytoqviddal", "number": "B.21:1", "link": "glossary.html#fls_jbytoqviddal", "checksum": "948f90dc2aa9b3c20a7077d80523afb82b57f643c37b11a2bef947380b2990d7"}], "informational": false}, {"id": "fls_9aice4qbiqxf", "number": "B.22", "title": "arity", "link": "glossary.html#arity", "paragraphs": [{"id": "fls_dl2gkip00bua", "number": "B.22:1", "link": "glossary.html#fls_dl2gkip00bua", "checksum": "32549d737df6956f86729fd3cef18291f5b579f8fb8cd87e6c65cae0d18621f7"}], "informational": false}, {"id": "fls_bn1regeucxqi", "number": "B.23", "title": "array", "link": "glossary.html#array", "paragraphs": [{"id": "fls_metry7a5prpt", "number": "B.23:1", "link": "glossary.html#fls_metry7a5prpt", "checksum": "baedd928a3ed072770b87d4693650150a7a444aa606c70d3234752066ec593ea"}], "informational": false}, {"id": "fls_2d9fee2o9", "number": "B.24", "title": "array element constructor", "link": "glossary.html#array-element-constructor", "paragraphs": [{"id": "fls_cmx9ls5zoazp", "number": "B.24:1", "link": "glossary.html#fls_cmx9ls5zoazp", "checksum": "0ea1f59b66ad56c3821faefc5c1f2fd54127fe0f57dee9851d5172a8b2321cff"}, {"id": "fls_9bwte7cmszl1", "number": "B.24:2", "link": "glossary.html#fls_9bwte7cmszl1", "checksum": "b69292e62b34d951badd6112a1bffbc713a61d7fc3b863370f9fa95fc2001980"}], "informational": false}, {"id": "fls_yvzpqb192pci", "number": "B.25", "title": "array expression", "link": "glossary.html#array-expression", "paragraphs": [{"id": "fls_pyjkjbvqarto", "number": "B.25:1", "link": "glossary.html#fls_pyjkjbvqarto", "checksum": "e4c1e035990bf252242bb5c2497017bc152f164d9822a601ab6a3c79cf752c10"}, {"id": "fls_vua1xy4y9irp", "number": "B.25:2", "link": "glossary.html#fls_vua1xy4y9irp", "checksum": "19ea2c73c4007224773c777a349409bad2f09edab12ffe626426727461ac93ce"}], "informational": false}, {"id": "fls_6jkgj61m49vg", "number": "B.26", "title": "array repetition constructor", "link": "glossary.html#array-repetition-constructor", "paragraphs": [{"id": "fls_st1kw8mor2zk", "number": "B.26:1", "link": "glossary.html#fls_st1kw8mor2zk", "checksum": "8da43ed54f5652f1659e9cd11bf0893e5f663edf982f874a4d44bb967c9fd5ce"}, {"id": "fls_1zr997qwsal2", "number": "B.26:2", "link": "glossary.html#fls_1zr997qwsal2", "checksum": "779c3367f4595f83edc738069ad628562bc861d3f6ddd498122fa6b43446606b"}], "informational": false}, {"id": "fls_15gzlmwuu4pk", "number": "B.27", "title": "array type", "link": "glossary.html#array-type", "paragraphs": [{"id": "fls_muddb5qxdc4k", "number": "B.27:1", "link": "glossary.html#fls_muddb5qxdc4k", "checksum": "a947e7964455ff2ff7db79ea1fc66d35c22a54700e41188ff3d4293a68c8d439"}, {"id": "fls_wre34hexlv6s", "number": "B.27:2", "link": "glossary.html#fls_wre34hexlv6s", "checksum": "d314b310f1bbe63e079d7bcd0886f2d942bf40293190ae30e0b5c19c54beb922"}], "informational": false}, {"id": "fls_et0nkxayydmh", "number": "B.28", "title": "assembly code block", "link": "glossary.html#assembly-code-block", "paragraphs": [{"id": "fls_d1ojwfwkpvm3", "number": "B.28:1", "link": "glossary.html#fls_d1ojwfwkpvm3", "checksum": "5f146112b79ecf0cca821b20931648fde2e4de33f3c63affbe10634883c62c6a"}, {"id": "fls_gxvuuw6iynhz", "number": "B.28:2", "link": "glossary.html#fls_gxvuuw6iynhz", "checksum": "fbd7caef299b552aba01fb8e2bb0fc2915928d2be525e52f8de2623e4a8ea622"}], "informational": false}, {"id": "fls_iunmwxxcuzif", "number": "B.29", "title": "assembly directive", "link": "glossary.html#assembly-directive", "paragraphs": [{"id": "fls_fp2kbo6c3cpq", "number": "B.29:1", "link": "glossary.html#fls_fp2kbo6c3cpq", "checksum": "d33ad565b26f01d4335d9775d46ec8e60dca8c305a7f40442f2c7814d2cfb5d9"}], "informational": false}, {"id": "fls_hlisgbszpo2r", "number": "B.30", "title": "assembly instruction", "link": "glossary.html#assembly-instruction", "paragraphs": [{"id": "fls_vlu28hovcy2o", "number": "B.30:1", "link": "glossary.html#fls_vlu28hovcy2o", "checksum": "89cc18647f78561ff8ea549eac139fa5948d2d8ec5cdbd032419d0c5734074b9"}, {"id": "fls_eyhub5ccldbm", "number": "B.30:2", "link": "glossary.html#fls_eyhub5ccldbm", "checksum": "bce9778dd90da6c0ce90dfed19e2530cd684fb27d929e19c67e067e5f7552bf8"}], "informational": false}, {"id": "fls_1iviuovdsyph", "number": "B.31", "title": "assembly option", "link": "glossary.html#assembly-option", "paragraphs": [{"id": "fls_f5i3okdkiyne", "number": "B.31:1", "link": "glossary.html#fls_f5i3okdkiyne", "checksum": "91327a66cf96bd903be1c5e14a958c45bed5796671fd255265fc4825fb89e311"}, {"id": "fls_31nqgpgb73hy", "number": "B.31:2", "link": "glossary.html#fls_31nqgpgb73hy", "checksum": "d78782159526caa5d6547852c6c2ba04781b15013de4dcfebf018dbefd9285a2"}], "informational": false}, {"id": "fls_l78iam7w8w38", "number": "B.32", "title": "assigned operand", "link": "glossary.html#assigned-operand", "paragraphs": [{"id": "fls_g714mnh7s7fx", "number": "B.32:1", "link": "glossary.html#fls_g714mnh7s7fx", "checksum": "f021eae06349b6ea9213824aa74fd00cc4ef76a6397f79d473154719fb456628"}, {"id": "fls_z0amfuj9vsqe", "number": "B.32:2", "link": "glossary.html#fls_z0amfuj9vsqe", "checksum": "af19c239b1198b6b5c9aa0f53822c17065f6b5071f9963e07372966dea0aaf45"}], "informational": false}, {"id": "fls_m1mim5qdzf2u", "number": "B.33", "title": "assignee expression", "link": "glossary.html#assignee-expression", "paragraphs": [{"id": "fls_wpmcexvbynbu", "number": "B.33:1", "link": "glossary.html#fls_wpmcexvbynbu", "checksum": "8ac99cc675c299be411b1538d3f2e1e03a710c3b8d2b7c1c0f34bf53735173d4"}], "informational": false}, {"id": "fls_3hs9hqsthil1", "number": "B.34", "title": "assignee operand", "link": "glossary.html#assignee-operand", "paragraphs": [{"id": "fls_4tgf0wu2mr3l", "number": "B.34:1", "link": "glossary.html#fls_4tgf0wu2mr3l", "checksum": "54415450f0844d84e0beaf4ec65f4f8228b3e8c99e9be690005441052ccef255"}, {"id": "fls_df0j0vnnq20a", "number": "B.34:2", "link": "glossary.html#fls_df0j0vnnq20a", "checksum": "9c86f51e02aedc14b3693c8d107031106fa848137e313bbc0947e966ea8c1ff5"}], "informational": false}, {"id": "fls_f6ztsofr6xa9", "number": "B.35", "title": "assignment", "link": "glossary.html#assignment", "paragraphs": [{"id": "fls_j9pyuucyplmi", "number": "B.35:1", "link": "glossary.html#fls_j9pyuucyplmi", "checksum": "4a34ae854eba4a45a95361791380b49e9b65392a652a33845c8ca9145a81efd0"}], "informational": false}, {"id": "fls_2d2elg5eukv4", "number": "B.36", "title": "assignment expression", "link": "glossary.html#assignment-expression", "paragraphs": [{"id": "fls_6jkc6a6me3zr", "number": "B.36:1", "link": "glossary.html#fls_6jkc6a6me3zr", "checksum": "c582f9a66293c5666b0e75fac231f2415fb02be2cb7ee04b51ac50901ad7f023"}, {"id": "fls_njw68i3bp9qq", "number": "B.36:2", "link": "glossary.html#fls_njw68i3bp9qq", "checksum": "8b8e39cf03a8e9e7cd3be103e2bd7d0876a158c6e0392b6cdf85a32caaccdcee"}], "informational": false}, {"id": "fls_pjb22ylz5swp", "number": "B.37", "title": "associated constant", "link": "glossary.html#associated-constant", "paragraphs": [{"id": "fls_hi9qa0k2nujb", "number": "B.37:1", "link": "glossary.html#fls_hi9qa0k2nujb", "checksum": "24bc88547d8c60e4d7b1d3aca5e18d2feaf33f78759285c14d57ae40db8a26a8"}], "informational": false}, {"id": "fls_vxiitesidcc2", "number": "B.38", "title": "associated function", "link": "glossary.html#associated-function", "paragraphs": [{"id": "fls_zcy5pat39bq7", "number": "B.38:1", "link": "glossary.html#fls_zcy5pat39bq7", "checksum": "3466ca701a5eb8b8bf058fabb19cfc0209948fdec7d3b218230f56cc07e7def4"}], "informational": false}, {"id": "fls_9mcx6h6irrlx", "number": "B.39", "title": "associated implementation constant", "link": "glossary.html#associated-implementation-constant", "paragraphs": [{"id": "fls_rfaxcrrrb5q9", "number": "B.39:1", "link": "glossary.html#fls_rfaxcrrrb5q9", "checksum": "7a705d6944a599804ae13d66da246684147608fee365fb58f0e9a2a3337383c8"}], "informational": false}, {"id": "fls_n85fwe75ku60", "number": "B.40", "title": "associated implementation function", "link": "glossary.html#associated-implementation-function", "paragraphs": [{"id": "fls_7xbmvl3jrc27", "number": "B.40:1", "link": "glossary.html#fls_7xbmvl3jrc27", "checksum": "af7994df35666e2d06d9b8fdf0d438a9f40e754a9fd04dbc071ed879e196ed89"}], "informational": false}, {"id": "fls_c0hekhwpznyq", "number": "B.41", "title": "associated implementation type", "link": "glossary.html#associated-implementation-type", "paragraphs": [{"id": "fls_6g5t81gx9ayx", "number": "B.41:1", "link": "glossary.html#fls_6g5t81gx9ayx", "checksum": "ae043cd27830b3d4d25fbf3c74d8930fa00fdba422466580da9a80cbf0b77934"}], "informational": false}, {"id": "fls_f3ferow5ugp", "number": "B.42", "title": "associated item", "link": "glossary.html#associated-item", "paragraphs": [{"id": "fls_o5ysjk7l91ni", "number": "B.42:1", "link": "glossary.html#fls_o5ysjk7l91ni", "checksum": "f556d4d5d4be5a144a195f8b05ec440856459d7c948ad80636ecba13520a30f1"}, {"id": "fls_44vtqu7tvhi2", "number": "B.42:2", "link": "glossary.html#fls_44vtqu7tvhi2", "checksum": "cde933865ca4b56f926024ba889c6e7bfcc3c6c0f622ee515b6db1801ce7c42d"}], "informational": false}, {"id": "fls_8p8teeamua55", "number": "B.43", "title": "associated trait constant", "link": "glossary.html#associated-trait-constant", "paragraphs": [{"id": "fls_xhhsej8db74y", "number": "B.43:1", "link": "glossary.html#fls_xhhsej8db74y", "checksum": "189012405431e6e0501a8b663a6ea6c42e50cd79a96d1e161b116460ab5fa8bf"}], "informational": false}, {"id": "fls_4h7s8u1zumnq", "number": "B.44", "title": "associated trait function", "link": "glossary.html#associated-trait-function", "paragraphs": [{"id": "fls_r927r0pdkb6h", "number": "B.44:1", "link": "glossary.html#fls_r927r0pdkb6h", "checksum": "fbf860398c6c240db67097749c221d03dbc3fb53ece13acaf39964aca10bef88"}], "informational": false}, {"id": "fls_47xtji9pk8lw", "number": "B.45", "title": "associated trait implementation item", "link": "glossary.html#associated-trait-implementation-item", "paragraphs": [{"id": "fls_paenehztvgfb", "number": "B.45:1", "link": "glossary.html#fls_paenehztvgfb", "checksum": "7bcc5dac3606f39e26a6e2f2101318e15fd128e8a726e5d05bcb6132d7d4085a"}], "informational": false}, {"id": "fls_j946yicmlayv", "number": "B.46", "title": "associated trait item", "link": "glossary.html#associated-trait-item", "paragraphs": [{"id": "fls_ilrrvlm05gtf", "number": "B.46:1", "link": "glossary.html#fls_ilrrvlm05gtf", "checksum": "93a89e40c548bb5a1e376f389cb160e3e81d28dcfe5b8852f52b8445e051df64"}], "informational": false}, {"id": "fls_azz308k3ra99", "number": "B.47", "title": "associated trait type", "link": "glossary.html#associated-trait-type", "paragraphs": [{"id": "fls_dndsgkiq9r7i", "number": "B.47:1", "link": "glossary.html#fls_dndsgkiq9r7i", "checksum": "71672fbc8744f773cb99e8e1c2281dbac1fc06503184ba6bd3c439e30defd776"}], "informational": false}, {"id": "fls_zfs68g3yk0uw", "number": "B.48", "title": "associated type", "link": "glossary.html#associated-type", "paragraphs": [{"id": "fls_rs0n72c2d8f", "number": "B.48:1", "link": "glossary.html#fls_rs0n72c2d8f", "checksum": "2dd873b22566e1e9b600b781d5bbe5f50b98110a1bbc0eb8834862063f485d5c"}], "informational": false}, {"id": "fls_zoe783mle9i9", "number": "B.49", "title": "associated type projection", "link": "glossary.html#associated-type-projection", "paragraphs": [{"id": "fls_4mofuy6epk0v", "number": "B.49:1", "link": "glossary.html#fls_4mofuy6epk0v", "checksum": "a0f6ca8e3a6e0ecac876103ad5d446d406f2fcb80e6ddde3bf589f235077c4a5"}], "informational": false}, {"id": "fls_fczijre8123c", "number": "B.50", "title": "associativity", "link": "glossary.html#associativity", "paragraphs": [{"id": "fls_7i7o23mi2i33", "number": "B.50:1", "link": "glossary.html#fls_7i7o23mi2i33", "checksum": "540296c55b80dee7dcdc0bfee11dde91a0e07efbe59376dec22a48ca8c7e5304"}], "informational": false}, {"id": "fls_9speqyus5ku3", "number": "B.51", "title": "async block", "link": "glossary.html#async-block", "paragraphs": [{"id": "fls_pf6lrmcjywoj", "number": "B.51:1", "link": "glossary.html#fls_pf6lrmcjywoj", "checksum": "612300be50d7624e3df044091fba207dee10c8c20ee72a242a4ac82aef426009"}], "informational": false}, {"id": "fls_n5m58be9jnjj", "number": "B.52", "title": "async block expression", "link": "glossary.html#async-block-expression", "paragraphs": [{"id": "fls_p6nvfs7bfoxd", "number": "B.52:1", "link": "glossary.html#fls_p6nvfs7bfoxd", "checksum": "4eb0d7164f84edf2ee6720771e61fde345943bc20d627bb59195f659862041a0"}, {"id": "fls_je689rormhd6", "number": "B.52:2", "link": "glossary.html#fls_je689rormhd6", "checksum": "add4bae4dea893c262fa7c8b75274c1b6bf0f47fd38a6f8b8932a19eefbffeb3"}], "informational": false}, {"id": "fls_lyrtacm1lcxu", "number": "B.53", "title": "async control flow boundary", "link": "glossary.html#async-control-flow-boundary", "paragraphs": [{"id": "fls_exogokcrsfkk", "number": "B.53:1", "link": "glossary.html#fls_exogokcrsfkk", "checksum": "44ac37f28296db4446adcea7becf8632f74186b581c1802f63aa910646775d05"}], "informational": false}, {"id": "fls_nlafxy2z1moc", "number": "B.54", "title": "async function", "link": "glossary.html#async-function", "paragraphs": [{"id": "fls_gv9wl1cbaw1g", "number": "B.54:1", "link": "glossary.html#fls_gv9wl1cbaw1g", "checksum": "4488811105e6db092dd26534378261299efe17701e59c3a58546b12507cfd315"}], "informational": false}, {"id": "fls_yikjq8yn3nnh", "number": "B.55", "title": "atomic", "link": "glossary.html#atomic", "paragraphs": [{"id": "fls_9xd3m2qvqzk", "number": "B.55:1", "link": "glossary.html#fls_9xd3m2qvqzk", "checksum": "92f69db90c0242687f25911efde1e68a3164d404661348a62b75ba5d40545131"}], "informational": false}, {"id": "fls_197vnaw2zbnc", "number": "B.56", "title": "atomic type", "link": "glossary.html#atomic-type", "paragraphs": [{"id": "fls_cycpv4fopgx2", "number": "B.56:1", "link": "glossary.html#fls_cycpv4fopgx2", "checksum": "5bd798c44267d7adffd1caf463e843f7dbc62801eb106b6ae7eb6dc39575ad7b"}], "informational": false}, {"id": "fls_w1plocebd7kg", "number": "B.57", "title": "attribute", "link": "glossary.html#attribute", "paragraphs": [{"id": "fls_o74rfpe6zo6a", "number": "B.57:1", "link": "glossary.html#fls_o74rfpe6zo6a", "checksum": "3b217ba958e7220052f92553ebb0583eaaa74f2730e4e3e007098455a58992f4"}], "informational": false}, {"id": "fls_ssmrqkhldagg", "number": "B.58", "title": "attribute content", "link": "glossary.html#attribute-content", "paragraphs": [{"id": "fls_sn0gvvmm3o38", "number": "B.58:1", "link": "glossary.html#fls_sn0gvvmm3o38", "checksum": "86e4b704680b4c5747c5677a0e4039c157356515d6fbcbc98d9e56a669ef4d9b"}, {"id": "fls_ywyrwc8fcmrm", "number": "B.58:2", "link": "glossary.html#fls_ywyrwc8fcmrm", "checksum": "5070a228b6ec847b80d342bc3ccdef803d20f55a9cbb901f5ed3d97e69142af5"}], "informational": false}, {"id": "fls_x1fafbpo0mlu", "number": "B.59", "title": "attribute macro", "link": "glossary.html#attribute-macro", "paragraphs": [{"id": "fls_mtqr4d817ikn", "number": "B.59:1", "link": "glossary.html#fls_mtqr4d817ikn", "checksum": "b5c6af660bec529b7de2438ec95aa067b92b22c3a7345a99c7931a09fc5cf924"}], "informational": false}, {"id": "fls_24ivilhhvnvo", "number": "B.60", "title": "auto trait", "link": "glossary.html#auto-trait", "paragraphs": [{"id": "fls_d84ntor4pzq5", "number": "B.60:1", "link": "glossary.html#fls_d84ntor4pzq5", "checksum": "331f42705a23d4036980e703f4c568126b011b0fe542b9c9468d538c9a63e0d7"}], "informational": false}, {"id": "fls_n4oo89apywk4", "number": "B.61", "title": "await expression", "link": "glossary.html#await-expression", "paragraphs": [{"id": "fls_psbc3b8pec47", "number": "B.61:1", "link": "glossary.html#fls_psbc3b8pec47", "checksum": "0f7f1f591ef8ff958c2d1d0a31b515fc693de7f164c05712025cee52d70f300b"}, {"id": "fls_29gkp9bpo1hi", "number": "B.61:2", "link": "glossary.html#fls_29gkp9bpo1hi", "checksum": "29aff3e58116ee151766d953841c4095fe883e4ca704ebe36c0e694f96016a89"}], "informational": false}, {"id": "fls_a8tavqxuvaju", "number": "B.62", "title": "base initializer", "link": "glossary.html#base-initializer", "paragraphs": [{"id": "fls_dnuwn2tnvtgy", "number": "B.62:1", "link": "glossary.html#fls_dnuwn2tnvtgy", "checksum": "a624547e4f9b00862ac20046a4026915d290509d41d7fe0c95418ad4a4fc460f"}, {"id": "fls_mprzem71zlhy", "number": "B.62:2", "link": "glossary.html#fls_mprzem71zlhy", "checksum": "7f7579f1d3e5c8ba02d2814c1d1fc456b293985a01e5f2e2ec3b3cfc55cd4430"}], "informational": false}, {"id": "fls_bii5eu1wznzk", "number": "B.63", "title": "basic assignment", "link": "glossary.html#basic-assignment", "paragraphs": [{"id": "fls_byq9e2jf8r22", "number": "B.63:1", "link": "glossary.html#fls_byq9e2jf8r22", "checksum": "b00fb469cd6302ae9a8f9cc328f30e7b176bc53e0c21a858130d21c6f4c31639"}], "informational": false}, {"id": "fls_kahj3y4rvmvb", "number": "B.64", "title": "binary crate", "link": "glossary.html#binary-crate", "paragraphs": [{"id": "fls_8gfe7hajxkd7", "number": "B.64:1", "link": "glossary.html#fls_8gfe7hajxkd7", "checksum": "2719e98929aa9ba831ed3c9e8a53f2865be31ca1dfef22f8e6a549c0489cc074"}], "informational": false}, {"id": "fls_or4o65fyt28y", "number": "B.65", "title": "binary literal", "link": "glossary.html#binary-literal", "paragraphs": [{"id": "fls_hy54uj6u3nqw", "number": "B.65:1", "link": "glossary.html#fls_hy54uj6u3nqw", "checksum": "2a6e0a0b10b38bf07fc1a1c417c76c23fec81dc802e87fbadf41f6afae85b40f"}, {"id": "fls_693r7vs2s7o7", "number": "B.65:2", "link": "glossary.html#fls_693r7vs2s7o7", "checksum": "3f1493cf83a8e792d5d2d85309ed20d423d40923a355e8f32b328f2ee0021e61"}], "informational": false}, {"id": "fls_xydujcfvvb8p", "number": "B.66", "title": "binary operator", "link": "glossary.html#binary-operator", "paragraphs": [{"id": "fls_v0he0zp9ph7a", "number": "B.66:1", "link": "glossary.html#fls_v0he0zp9ph7a", "checksum": "dfa9a4832da8dbcda1d62d4f78ec536ce8e9cd4e08740202c44d1ecf236242a4"}], "informational": false}, {"id": "fls_jrelzibadg7b", "number": "B.67", "title": "binding", "link": "glossary.html#binding", "paragraphs": [{"id": "fls_89qi3unjvwd7", "number": "B.67:1", "link": "glossary.html#fls_89qi3unjvwd7", "checksum": "9b3d2ea4510af73672effd0175aca1e7e366510c39d005aef81696a4b7056ffa"}, {"id": "fls_lujdci4bphek", "number": "B.67:2", "link": "glossary.html#fls_lujdci4bphek", "checksum": "43ebfdd1a3a5b7ded83591c051b8392c774d490fc12f8e886b48ec04777832ca"}], "informational": false}, {"id": "fls_glblhx8vzd3z", "number": "B.68", "title": "binding argument", "link": "glossary.html#binding-argument", "paragraphs": [{"id": "fls_9lzcasl4tw7k", "number": "B.68:1", "link": "glossary.html#fls_9lzcasl4tw7k", "checksum": "e328d7925174b8ad13fe58a5c2316ab5b1d4e32fabc4cf018f015f8c32d2aa52"}], "informational": false}, {"id": "fls_bv1k866tai6j", "number": "B.69", "title": "binding mode", "link": "glossary.html#binding-mode", "paragraphs": [{"id": "fls_e3uvvvvyzq8h", "number": "B.69:1", "link": "glossary.html#fls_e3uvvvvyzq8h", "checksum": "81a472c8ba42572b17a8b61e7325e2869b4aaacb298835287929a9069d8a33de"}], "informational": false}, {"id": "fls_1nw19qc14zg6", "number": "B.70", "title": "binding pattern", "link": "glossary.html#binding-pattern", "paragraphs": [{"id": "fls_ancqgz8pybbe", "number": "B.70:1", "link": "glossary.html#fls_ancqgz8pybbe", "checksum": "33d43996bd0e88b34594263661c579e5689d804a42a1bafae6e79a9d192f9e1d"}], "informational": false}, {"id": "fls_5ep4xsgzwtol", "number": "B.71", "title": "binding scope", "link": "glossary.html#binding-scope", "paragraphs": [{"id": "fls_6qpyh5nj8usi", "number": "B.71:1", "link": "glossary.html#fls_6qpyh5nj8usi", "checksum": "502b84a3d6795ea515381c6f55bb280b6ecb5247521831d647297dcd20b2fd22"}], "informational": false}, {"id": "fls_clut5dwmqin8", "number": "B.72", "title": "bit and assignment", "link": "glossary.html#bit-and-assignment", "paragraphs": [{"id": "fls_wil0k7o6ltxj", "number": "B.72:1", "link": "glossary.html#fls_wil0k7o6ltxj", "checksum": "c6211b947c74463c78301804b76006bb9d8ea263258a9a02a36a22e0b76e99e0"}], "informational": false}, {"id": "fls_y72vyr2tmdyb", "number": "B.73", "title": "bit and assignment expression", "link": "glossary.html#bit-and-assignment-expression", "paragraphs": [{"id": "fls_dvqotpte0pc2", "number": "B.73:1", "link": "glossary.html#fls_dvqotpte0pc2", "checksum": "9cdd4d1b23aed863aac7c2e7bf9f7fee8fbbdf8a16e27035197f95c8f3adf46d"}, {"id": "fls_ix9ecb5olcx", "number": "B.73:2", "link": "glossary.html#fls_ix9ecb5olcx", "checksum": "8f96f9d84aa93b46b2afda2463ab482a897f48de4b4279aeb9aad60d75682efc"}], "informational": false}, {"id": "fls_h6sh4im3gjys", "number": "B.74", "title": "bit and expression", "link": "glossary.html#bit-and-expression", "paragraphs": [{"id": "fls_c1g5gljnr9kz", "number": "B.74:1", "link": "glossary.html#fls_c1g5gljnr9kz", "checksum": "244b38693253d9cad7bda6ec81c1b56934ad443b422d8476e63b75c00b8a2981"}, {"id": "fls_vbsvu0troqci", "number": "B.74:2", "link": "glossary.html#fls_vbsvu0troqci", "checksum": "625ab366bc5f209c5e1bee34480e5d481d8455c213fc132f4ee2fa72e852ee45"}], "informational": false}, {"id": "fls_ed6yltkt0gb1", "number": "B.75", "title": "bit expression", "link": "glossary.html#bit-expression", "paragraphs": [{"id": "fls_b3p5xqsfolqo", "number": "B.75:1", "link": "glossary.html#fls_b3p5xqsfolqo", "checksum": "809145d26a9b51c4a0a61656ff3b16a6fce325a6af66025deccdb63c6cfabfdd"}, {"id": "fls_iw1k2cfwfjou", "number": "B.75:2", "link": "glossary.html#fls_iw1k2cfwfjou", "checksum": "b3707fb3a022619ae8bad6938a11a28675245d4df8e298b7f28a1422b7eaa155"}], "informational": false}, {"id": "fls_90e3eibygici", "number": "B.76", "title": "bit or assignment", "link": "glossary.html#bit-or-assignment", "paragraphs": [{"id": "fls_21ifidcu7pk4", "number": "B.76:1", "link": "glossary.html#fls_21ifidcu7pk4", "checksum": "244c375c3a3e13b0a601337834316fbcbbc56c34877090d9ebf3f24690f6f9bd"}], "informational": false}, {"id": "fls_ehorb0lul906", "number": "B.77", "title": "bit or assignment expression", "link": "glossary.html#bit-or-assignment-expression", "paragraphs": [{"id": "fls_tu1owkfk0lu0", "number": "B.77:1", "link": "glossary.html#fls_tu1owkfk0lu0", "checksum": "11967d57719ae3359330b1e50a21597d2131f06c8d2abd365bb5bddc4f4a80c6"}, {"id": "fls_utjcsfz8up88", "number": "B.77:2", "link": "glossary.html#fls_utjcsfz8up88", "checksum": "447497fb19a7fb5699ce018e98d778de4cea07f55e138d55b88d976a82c9cd2a"}], "informational": false}, {"id": "fls_m33m8nd2rnf8", "number": "B.78", "title": "bit or expression", "link": "glossary.html#bit-or-expression", "paragraphs": [{"id": "fls_183aem60of9o", "number": "B.78:1", "link": "glossary.html#fls_183aem60of9o", "checksum": "ca82b23effd8f2c8ef1852b564755ad552726c3f8bea118b31120b6809597db5"}, {"id": "fls_ctqsjp653tbt", "number": "B.78:2", "link": "glossary.html#fls_ctqsjp653tbt", "checksum": "53c5cfa98c339293befa824b9ffaff8780090e0e7f7399c451f685068f75f0fd"}], "informational": false}, {"id": "fls_jenv7rjeuzvm", "number": "B.79", "title": "bit xor assignment", "link": "glossary.html#bit-xor-assignment", "paragraphs": [{"id": "fls_vjpcpvcuszs1", "number": "B.79:1", "link": "glossary.html#fls_vjpcpvcuszs1", "checksum": "bf840c9efb7efdcff65df72ae2aaf25f560c6f126a5a119d523cd8f94e7996f5"}], "informational": false}, {"id": "fls_u3fcq7jjyxux", "number": "B.80", "title": "bit xor assignment expression", "link": "glossary.html#bit-xor-assignment-expression", "paragraphs": [{"id": "fls_ma980ujltab2", "number": "B.80:1", "link": "glossary.html#fls_ma980ujltab2", "checksum": "a9fd5b5a052ecae709955218afa50158d72219a0abdad4fceb0946455ae41905"}, {"id": "fls_lcrd0birf0un", "number": "B.80:2", "link": "glossary.html#fls_lcrd0birf0un", "checksum": "1f0ca2a30289433f1b3b0c539f49740c80d5a4b91347322854b43a22a34d9dfe"}], "informational": false}, {"id": "fls_ixw1601j8u39", "number": "B.81", "title": "bit xor expression", "link": "glossary.html#bit-xor-expression", "paragraphs": [{"id": "fls_kccsvtzfhbp1", "number": "B.81:1", "link": "glossary.html#fls_kccsvtzfhbp1", "checksum": "d3ac6ae36c1f6ead0280408385cee1b2e32019f9e1258e0125607bd48f54ae66"}, {"id": "fls_6qulwlo43w6m", "number": "B.81:2", "link": "glossary.html#fls_6qulwlo43w6m", "checksum": "57fe72c338f783adb28c56b1e3d5b590b3500dce4a8d42b378f7ddd62130f87c"}], "informational": false}, {"id": "fls_aa980vviqjue", "number": "B.82", "title": "block comment", "link": "glossary.html#block-comment", "paragraphs": [{"id": "fls_a0ejcfs7y5uy", "number": "B.82:1", "link": "glossary.html#fls_a0ejcfs7y5uy", "checksum": "c61d862f34a4363bf2bb995c57901407eb7ebcfe815a9c3b9407d70f22ed0051"}, {"id": "fls_21r4tblk8awi", "number": "B.82:2", "link": "glossary.html#fls_21r4tblk8awi", "checksum": "5172defdbf869d3f3bec7c8221fac297297395d7d1080dfd18886e0692276d94"}], "informational": false}, {"id": "fls_c5qn7wjk0mnx", "number": "B.83", "title": "block expression", "link": "glossary.html#block-expression", "paragraphs": [{"id": "fls_gvjvzxi2xps4", "number": "B.83:1", "link": "glossary.html#fls_gvjvzxi2xps4", "checksum": "bdddfb30e577fad1394130f3067d2e99cde5023a7f95afd64ebfe0b7e0c8c8b7"}, {"id": "fls_h8j9t2xq2i1u", "number": "B.83:2", "link": "glossary.html#fls_h8j9t2xq2i1u", "checksum": "f74a0df172d19ca21744867e9d95035c122a132b547df239ef8ef3ae1dd17495"}], "informational": false}, {"id": "fls_n485t6wcgx07", "number": "B.84", "title": "bool", "link": "glossary.html#bool", "paragraphs": [{"id": "fls_wtmaf5amvleh", "number": "B.84:1", "link": "glossary.html#fls_wtmaf5amvleh", "checksum": "7935a2b1a9900f8cd0e10119b717509afa4e5b225030a883e36db927a3f6b5df"}], "informational": false}, {"id": "fls_oz4tdyp3rvm4", "number": "B.85", "title": "boolean literal", "link": "glossary.html#boolean-literal", "paragraphs": [{"id": "fls_5mrxdqh474vk", "number": "B.85:1", "link": "glossary.html#fls_5mrxdqh474vk", "checksum": "d33508b56c217a40f57a38a2567af1bcac36a73b8f1429192c38660f309e5b8a"}, {"id": "fls_i13qcchm9vkk", "number": "B.85:2", "link": "glossary.html#fls_i13qcchm9vkk", "checksum": "b7f319cf6594bcce54f2cbcacbd3d3d7948cce9103329f7d2b283f08f2c2e673"}], "informational": false}, {"id": "fls_7ef4c6ss7m6i", "number": "B.86", "title": "borrow", "link": "glossary.html#borrow", "paragraphs": [{"id": "fls_2tpbdddvrl2f", "number": "B.86:1", "link": "glossary.html#fls_2tpbdddvrl2f", "checksum": "1d84a640b81dafc4d21d0e36236a4d94d1ebfd62b014b86a6b7794963f4ad7f7"}], "informational": false}, {"id": "fls_u0hymkjwyur7", "number": "B.87", "title": "borrow expression", "link": "glossary.html#borrow-expression", "paragraphs": [{"id": "fls_2f55piwg78ru", "number": "B.87:1", "link": "glossary.html#fls_2f55piwg78ru", "checksum": "abc9e73351e349d7595c47b1849763c9db6e2876fedddac5a15e316120c0a993"}, {"id": "fls_c3hydbp2exok", "number": "B.87:2", "link": "glossary.html#fls_c3hydbp2exok", "checksum": "9cd56fa137a462f758eded2792c0724f19f2df6f730ece349848218bf2cf459a"}], "informational": false}, {"id": "fls_gl84828b074a", "number": "B.88", "title": "borrowed", "link": "glossary.html#borrowed", "paragraphs": [{"id": "fls_3gnps2s95ck4", "number": "B.88:1", "link": "glossary.html#fls_3gnps2s95ck4", "checksum": "2b5b36b7d9a4880164099cdcab035d2d100719306adc0c0e1d4a33d9f29d2bc4"}], "informational": false}, {"id": "fls_95c5cbc2jvpc", "number": "B.89", "title": "borrowing", "link": "glossary.html#borrowing", "paragraphs": [{"id": "fls_2epblwd2slp8", "number": "B.89:1", "link": "glossary.html#fls_2epblwd2slp8", "checksum": "9f29b6b7e9ce5bea7065b3df184b075b67ebdfc536322453a87c1d2462e69aac"}], "informational": false}, {"id": "fls_ehfvcdpo3l4a", "number": "B.90", "title": "bound", "link": "glossary.html#bound", "paragraphs": [{"id": "fls_q6mxhn1fxjs6", "number": "B.90:1", "link": "glossary.html#fls_q6mxhn1fxjs6", "checksum": "42e76b431027d1807d6c6665c7625b3463e086e4655dfb265d24b3a824042a92"}, {"id": "fls_rxabhhigp5uy", "number": "B.90:2", "link": "glossary.html#fls_rxabhhigp5uy", "checksum": "ba6e3d26fb7d74e7c8eb6c247800ddec5e35f0e95207578067f3cf6b09e6c577"}], "informational": false}, {"id": "fls_jlfqyn3enrsi", "number": "B.91", "title": "bound pattern", "link": "glossary.html#bound-pattern", "paragraphs": [{"id": "fls_uusfbosjwyd1", "number": "B.91:1", "link": "glossary.html#fls_uusfbosjwyd1", "checksum": "c6bafc6da22a49c513d9f38b33df3b3efb2fec5e034e2fb313105eb2e2260d1e"}, {"id": "fls_oszhit2crxzc", "number": "B.91:2", "link": "glossary.html#fls_oszhit2crxzc", "checksum": "d8cf8031f26386674c6e8273c8ea271f27f1889e7c859f78134c921bfbccb00a"}], "informational": false}, {"id": "fls_xki2cerozblt", "number": "B.92", "title": "break expression", "link": "glossary.html#break-expression", "paragraphs": [{"id": "fls_8ys8hlqgizoa", "number": "B.92:1", "link": "glossary.html#fls_8ys8hlqgizoa", "checksum": "42b70f0392703c3c23f4ecffef7ea817778258bcd8666f135b5b9dcac43a1b3c"}, {"id": "fls_fd1xpst5fki2", "number": "B.92:2", "link": "glossary.html#fls_fd1xpst5fki2", "checksum": "76dcd27bc5ad3370689dfd4eb30523ee45cff5bf2abcb711fab20cdd3dc809f9"}], "informational": false}, {"id": "fls_ff2zt3ww2yw3", "number": "B.93", "title": "break type", "link": "glossary.html#break-type", "paragraphs": [{"id": "fls_jvm1vsqmslxn", "number": "B.93:1", "link": "glossary.html#fls_jvm1vsqmslxn", "checksum": "6aeadaab397013441a631c420b0f0554cb291b29f976219428549a505a3cc48c"}], "informational": false}, {"id": "fls_owtptuvleeb", "number": "B.94", "title": "break value", "link": "glossary.html#break-value", "paragraphs": [{"id": "fls_kpka4jf2qr5l", "number": "B.94:1", "link": "glossary.html#fls_kpka4jf2qr5l", "checksum": "d53ab1017611e7d73e98148e5d12bfb9f0581c976b2abd40acf4ad93fa684dab"}], "informational": false}, {"id": "fls_82ev7wknxqmk", "number": "B.95", "title": "built-in attribute", "link": "glossary.html#built-in-attribute", "paragraphs": [{"id": "fls_a40rclur4orm", "number": "B.95:1", "link": "glossary.html#fls_a40rclur4orm", "checksum": "ff7df276dfca55abbd6131102c4fbc1de97b7b3e4b004424aa0c408b72fbe5e9"}, {"id": "fls_ooq5g8zffyfb", "number": "B.95:2", "link": "glossary.html#fls_ooq5g8zffyfb", "checksum": "62bf1edd9513dceb6b09f59764b6bfe6010d27cbbdde85acb8372d671edd737b"}], "informational": false}, {"id": "fls_qzaif2nyvjbk", "number": "B.96", "title": "built-in trait", "link": "glossary.html#built-in-trait", "paragraphs": [{"id": "fls_igzd9l8o6r50", "number": "B.96:1", "link": "glossary.html#fls_igzd9l8o6r50", "checksum": "a5eca162961a093420be9f39da9f05c4aaf249a65ade8d2949ae9aed7074f6c6"}], "informational": false}, {"id": "fls_e8rokiw23i9t", "number": "B.97", "title": "byte literal", "link": "glossary.html#byte-literal", "paragraphs": [{"id": "fls_l67oo0u12zjb", "number": "B.97:1", "link": "glossary.html#fls_l67oo0u12zjb", "checksum": "a6797b02bf09baf68510b276fe856bf4230ead726730aeba02d646bddd2e50b8"}, {"id": "fls_iu9twvm648dx", "number": "B.97:2", "link": "glossary.html#fls_iu9twvm648dx", "checksum": "6bb0f77a7c09be460bc83d28e0665398c71b1c5eef14c1b6a1f5eccc095f0be8"}], "informational": false}, {"id": "fls_uwe7iomhvgtp", "number": "B.98", "title": "byte string literal", "link": "glossary.html#byte-string-literal", "paragraphs": [{"id": "fls_my4r1l3ilyt2", "number": "B.98:1", "link": "glossary.html#fls_my4r1l3ilyt2", "checksum": "caf6430eeedca37fbd3183876687afb5795a116f8b57829f9296015963b8c9cd"}, {"id": "fls_4yhag19z61bl", "number": "B.98:2", "link": "glossary.html#fls_4yhag19z61bl", "checksum": "678f63247cc5c82b754402bb384c9ffc044dce55bbd7b1cbf591c25c5dfbfc7b"}], "informational": false}, {"id": "fls_lfjgrkwra22i", "number": "B.99", "title": "C", "link": "glossary.html#c", "paragraphs": [{"id": "fls_d4q2ro4nsnop", "number": "B.99:1", "link": "glossary.html#fls_d4q2ro4nsnop", "checksum": "21920bddd05d30a71366977a2c284bbeb4bb503b795b0748401f66eb5e255159"}], "informational": false}, {"id": "fls_wenn1wdsicfz", "number": "B.100", "title": "C representation", "link": "glossary.html#c-representation", "paragraphs": [{"id": "fls_g9pdb06m5fto", "number": "B.100:1", "link": "glossary.html#fls_g9pdb06m5fto", "checksum": "c1e454072880555b23ff579d54ab1ff448ed0575ce5fce02064b8849e2794b73"}], "informational": false}, {"id": "fls_fls_j0xuy4mcxoe6", "number": "B.101", "title": "C signed int type", "link": "glossary.html#c-signed-int-type", "paragraphs": [{"id": "fls_8qicvapjehqy", "number": "B.101:1", "link": "glossary.html#fls_8qicvapjehqy", "checksum": "71e276a65e0bb1a228f167bf10d8368d3b1e4100414d8cc4c6071b98197d73f3"}], "informational": false}, {"id": "fls_egfa8tdbqlla", "number": "B.102", "title": "Call conformance", "link": "glossary.html#call-conformance", "paragraphs": [{"id": "fls_jr1gux7ju4oh", "number": "B.102:1", "link": "glossary.html#fls_jr1gux7ju4oh", "checksum": "66ffc3c5fcf1629701193aae370401f974116ba4bf0de771171962934b74c104"}], "informational": false}, {"id": "fls_xeo59ol6uh5i", "number": "B.103", "title": "call expression", "link": "glossary.html#call-expression", "paragraphs": [{"id": "fls_a9ap0tyk2eou", "number": "B.103:1", "link": "glossary.html#fls_a9ap0tyk2eou", "checksum": "648ca512997d7e2d5e5180038ed504b667046b8a16e97113eea58e73ab18a62d"}, {"id": "fls_aibti9uqrmmd", "number": "B.103:2", "link": "glossary.html#fls_aibti9uqrmmd", "checksum": "373b43756a1872d5f4876aaba9145e222c9be7bd58528b768394e3dbc85c118a"}], "informational": false}, {"id": "fls_ezk9xkst7gfj", "number": "B.104", "title": "call operand", "link": "glossary.html#call-operand", "paragraphs": [{"id": "fls_cqnko94y4xbs", "number": "B.104:1", "link": "glossary.html#fls_cqnko94y4xbs", "checksum": "695754e485bd8ba23cb133672195926840bb3ac28bfa31a96845ecf69dc65a38"}, {"id": "fls_w6wu4wi6srjj", "number": "B.104:2", "link": "glossary.html#fls_w6wu4wi6srjj", "checksum": "790649ac426b7b7d9da1376060443e9bfc656f592e46946ff47e05c5148eb817"}], "informational": false}, {"id": "fls_zsh4enfjxean", "number": "B.105", "title": "call resolution", "link": "glossary.html#call-resolution", "paragraphs": [{"id": "fls_fs1zjggypvbn", "number": "B.105:1", "link": "glossary.html#fls_fs1zjggypvbn", "checksum": "c1a639c3f4222bdf4f2db2c6e0e456a73ca7e24055ac91aebfffee77b4de4c65"}], "informational": false}, {"id": "fls_ak8ml1lefto0", "number": "B.106", "title": "call site hygiene", "link": "glossary.html#call-site-hygiene", "paragraphs": [{"id": "fls_ytqmxotfoxwu", "number": "B.106:1", "link": "glossary.html#fls_ytqmxotfoxwu", "checksum": "120ca029e71c342fc34219b5d2846249f9d1c809a2871458c91708d06da37f0e"}], "informational": false}, {"id": "fls_luuc01g4ffog", "number": "B.107", "title": "callee type", "link": "glossary.html#callee-type", "paragraphs": [{"id": "fls_o21myf6wnnn6", "number": "B.107:1", "link": "glossary.html#fls_o21myf6wnnn6", "checksum": "4ba4a90930f8d7c12d76e02403a8cb949a676cc2e12dda149a084b80def6fbc3"}], "informational": false}, {"id": "fls_s78gd8yxx2yv", "number": "B.108", "title": "capture mode", "link": "glossary.html#capture-mode", "paragraphs": [{"id": "fls_beer0d7wva1d", "number": "B.108:1", "link": "glossary.html#fls_beer0d7wva1d", "checksum": "884eb60f8031345959135331a5aaa69d2a0b2e8a45c22d02ef2f7d78b56fc82d"}], "informational": false}, {"id": "fls_c6qwfwsyizya", "number": "B.109", "title": "capture target", "link": "glossary.html#capture-target", "paragraphs": [{"id": "fls_xmhcp4x8wblz", "number": "B.109:1", "link": "glossary.html#fls_xmhcp4x8wblz", "checksum": "c6e989a0ff9e72da470d988efea9fdd19ec8fcb2e2e4c678bd960e09b765df21"}], "informational": false}, {"id": "fls_kvu447p6j61k", "number": "B.110", "title": "capturing", "link": "glossary.html#capturing", "paragraphs": [{"id": "fls_4achbk2ewyyb", "number": "B.110:1", "link": "glossary.html#fls_4achbk2ewyyb", "checksum": "dcc48ef9336f4c635127d9fb40bb282553c33273cf2faa0289abb58a864f5ee9"}], "informational": false}, {"id": "fls_yfk2xfifltxy", "number": "B.111", "title": "capturing environment", "link": "glossary.html#capturing-environment", "paragraphs": [{"id": "fls_7br4azaay3wu", "number": "B.111:1", "link": "glossary.html#fls_7br4azaay3wu", "checksum": "057f094a65cdd0113949e4be1a1cf6da4e439c9e73ad23d72cba5035a6404b6e"}], "informational": false}, {"id": "fls_cl3lpsfgt5eb", "number": "B.112", "title": "capturing expression", "link": "glossary.html#capturing-expression", "paragraphs": [{"id": "fls_awtny282gtud", "number": "B.112:1", "link": "glossary.html#fls_awtny282gtud", "checksum": "21a2212bc880cb6130b9fafbb5119664810c12f01745d8ee73715152731cebde"}], "informational": false}, {"id": "fls_pcaygpx7db24", "number": "B.113", "title": "cast", "link": "glossary.html#cast", "paragraphs": [{"id": "fls_e5hvszhcrtmj", "number": "B.113:1", "link": "glossary.html#fls_e5hvszhcrtmj", "checksum": "b46c27a5e20681e3818872ee89c973ecbc77f74af768e18deb0c0bf8f6564768"}], "informational": false}, {"id": "fls_xl2zlpw070dy", "number": "B.114", "title": "char", "link": "glossary.html#char", "paragraphs": [{"id": "fls_vx0dss1yplw1", "number": "B.114:1", "link": "glossary.html#fls_vx0dss1yplw1", "checksum": "b09da885573974912ad239d972ae33be6eb67296f39f991bfaca1180c323637c"}], "informational": false}, {"id": "fls_cfphqaml82ik", "number": "B.115", "title": "character literal", "link": "glossary.html#character-literal", "paragraphs": [{"id": "fls_8oah1cf8p0lb", "number": "B.115:1", "link": "glossary.html#fls_8oah1cf8p0lb", "checksum": "35180367affa5c49d5b0afec316a5d9a8266b5ca1ac474fa6cc5ee1d527151c7"}, {"id": "fls_sup0h5mvibzs", "number": "B.115:2", "link": "glossary.html#fls_sup0h5mvibzs", "checksum": "d5e9c3e46f5c8c9d847c63ffce83f59e8b43af18073de98af9ffc8bb6b062b73"}], "informational": false}, {"id": "fls_5vm5cijnucsr", "number": "B.116", "title": "closure body", "link": "glossary.html#closure-body", "paragraphs": [{"id": "fls_vgnycw6dykwo", "number": "B.116:1", "link": "glossary.html#fls_vgnycw6dykwo", "checksum": "f94657d8fb0ea7389e6b69384f4be5c24477b1a13a7fd0c3d2d5a2f96a9f0b8c"}, {"id": "fls_zefhg4auut8d", "number": "B.116:2", "link": "glossary.html#fls_zefhg4auut8d", "checksum": "4f9d2d6e4a5e204acb72c105fd11ce6c26fb64ea55417c5a627581b0e1231403"}], "informational": false}, {"id": "fls_mrwle2ediywb", "number": "B.117", "title": "closure expression", "link": "glossary.html#closure-expression", "paragraphs": [{"id": "fls_x87rhn9ikz00", "number": "B.117:1", "link": "glossary.html#fls_x87rhn9ikz00", "checksum": "6414d845db9a72cc676c688dd644bc96bddb01f319cfbca16b91ba3a2f305f08"}, {"id": "fls_psd18dkzplf6", "number": "B.117:2", "link": "glossary.html#fls_psd18dkzplf6", "checksum": "1234e2fd24abe2af54a4b534e37991a4220070b53d155fe2cb9edcaf10bad1af"}], "informational": false}, {"id": "fls_f5rbxj9g5iab", "number": "B.118", "title": "closure parameter", "link": "glossary.html#closure-parameter", "paragraphs": [{"id": "fls_yqbzhblhpswn", "number": "B.118:1", "link": "glossary.html#fls_yqbzhblhpswn", "checksum": "7999e81310e11f947d1ce1f08cff161fae82ac9334e35db0d7c0a6166badafce"}, {"id": "fls_dus3fbu3twr4", "number": "B.118:2", "link": "glossary.html#fls_dus3fbu3twr4", "checksum": "6b15e5c2d99dc9eb699f7025c11cb1ae02444ffd7787b1727950222b3901aca4"}], "informational": false}, {"id": "fls_xjudl8ykbisi", "number": "B.119", "title": "closure type", "link": "glossary.html#closure-type", "paragraphs": [{"id": "fls_wp4kues3nbvn", "number": "B.119:1", "link": "glossary.html#fls_wp4kues3nbvn", "checksum": "2e84daa155889bf6f73493cad46d61e36fde2cc1b78717e8a6f93b488cd289d5"}], "informational": false}, {"id": "fls_aqovhozevngd", "number": "B.120", "title": "code point", "link": "glossary.html#code-point", "paragraphs": [{"id": "fls_6xw8jtiomc2n", "number": "B.120:1", "link": "glossary.html#fls_6xw8jtiomc2n", "checksum": "ccdcffaf0aaed8fdfdbef3ef6f047bf8f190ca0480c0869613db6d2527f07513"}], "informational": false}, {"id": "fls_2moavfyeit0m", "number": "B.121", "title": "comment", "link": "glossary.html#comment", "paragraphs": [{"id": "fls_3xhoz9f7xy1t", "number": "B.121:1", "link": "glossary.html#fls_3xhoz9f7xy1t", "checksum": "a4c05ae36c5fd759a4da08d503fc1af571ba413e676d01dadb500e588dd1f83a"}, {"id": "fls_pi32rhfqghma", "number": "B.121:2", "link": "glossary.html#fls_pi32rhfqghma", "checksum": "6b2c09e50d6abdae1ee13d1cda690ef224a011f1bdae20718ff536f78b204628"}], "informational": false}, {"id": "fls_hjxuoe1hwlhm", "number": "B.122", "title": "comparison expression", "link": "glossary.html#comparison-expression", "paragraphs": [{"id": "fls_394p7gdruvk7", "number": "B.122:1", "link": "glossary.html#fls_394p7gdruvk7", "checksum": "c67acba85c414db1b42b760a5c75365e884a7ecdbe9449c2e3088f602d8acd40"}, {"id": "fls_1jk0s7389mt0", "number": "B.122:2", "link": "glossary.html#fls_1jk0s7389mt0", "checksum": "c0e3785f9a7666f115e4329031acc927ba7715b7c96156bb4b6a231b035bff35"}], "informational": false}, {"id": "fls_riwule1euzlj", "number": "B.123", "title": "compilation root", "link": "glossary.html#compilation-root", "paragraphs": [{"id": "fls_stwsfyvov2fx", "number": "B.123:1", "link": "glossary.html#fls_stwsfyvov2fx", "checksum": "3155c78aa724abae9cefe1c44d0b357fa998cc179764d0d2e38ef60c3bb241f8"}], "informational": false}, {"id": "fls_ptmrfpxetibe", "number": "B.124", "title": "compound assignment", "link": "glossary.html#compound-assignment", "paragraphs": [{"id": "fls_lgv9qvcmygch", "number": "B.124:1", "link": "glossary.html#fls_lgv9qvcmygch", "checksum": "6b1cafc5dc71738785f475115cf1f65dcc771362024656c83b870d22790d16a5"}], "informational": false}, {"id": "fls_iktiir89xbo2", "number": "B.125", "title": "compound assignment expression", "link": "glossary.html#compound-assignment-expression", "paragraphs": [{"id": "fls_mkxpk2jhe5s0", "number": "B.125:1", "link": "glossary.html#fls_mkxpk2jhe5s0", "checksum": "a44244ce87f36dbaa2fbbc2f4104dcae06a91a8b598b33cadab5c92c832adc85"}, {"id": "fls_55abuw8symub", "number": "B.125:2", "link": "glossary.html#fls_55abuw8symub", "checksum": "4d0c95fca6696e81f808680e4c4023687115b55efdc4fd46f2c021fe63f1b66d"}], "informational": false}, {"id": "fls_qyfn5u5cl5l1", "number": "B.126", "title": "concrete type", "link": "glossary.html#concrete-type", "paragraphs": [{"id": "fls_l0lr3ybgccjc", "number": "B.126:1", "link": "glossary.html#fls_l0lr3ybgccjc", "checksum": "92054d68d64f660e73b3f4decb54b4b651fd99a236d68518b3bb96f4ae582507"}], "informational": false}, {"id": "fls_lmacvq89lj2j", "number": "B.127", "title": "conditional compilation", "link": "glossary.html#conditional-compilation", "paragraphs": [{"id": "fls_xymops69eer3", "number": "B.127:1", "link": "glossary.html#fls_xymops69eer3", "checksum": "eaeff67ff6e17b1bba4cf0f8199938306cabe12c1732920c31543a06aaf5a40b"}], "informational": false}, {"id": "fls_bqq013n2cy4t", "number": "B.128", "title": "conditionally-compiled source code", "link": "glossary.html#conditionally-compiled-source-code", "paragraphs": [{"id": "fls_hs4lnrdxpj2g", "number": "B.128:1", "link": "glossary.html#fls_hs4lnrdxpj2g", "checksum": "5d9117dda45a4ef5e11a2ee9082a6b3c4e71cbc0d6ade008d3c14ea84d8bec69"}], "informational": false}, {"id": "fls_vrjpmhyevvaf", "number": "B.129", "title": "configuration predicate", "link": "glossary.html#configuration-predicate", "paragraphs": [{"id": "fls_tykiuqmxo9si", "number": "B.129:1", "link": "glossary.html#fls_tykiuqmxo9si", "checksum": "0cac94c6245e4dff6dd1a8c297bc3abff2e383199dc6c185aaeff8d5fdff13d4"}, {"id": "fls_99ioki0m64fd", "number": "B.129:2", "link": "glossary.html#fls_99ioki0m64fd", "checksum": "43e5e01d043938198f115d06c7634976532ed1ad7ae84b52a78bff9ec59c2244"}], "informational": false}, {"id": "fls_yw57di94gwpf", "number": "B.130", "title": "constant", "link": "glossary.html#constant", "paragraphs": [{"id": "fls_p8rjw2qok85b", "number": "B.130:1", "link": "glossary.html#fls_p8rjw2qok85b", "checksum": "e2c1d60946ca8b4e458c33951b8ec06592d68b989f7cc700231d8b1760619fb6"}, {"id": "fls_hlouedpdg1zd", "number": "B.130:2", "link": "glossary.html#fls_hlouedpdg1zd", "checksum": "eb0e902364def6089ac3e648000dd6b34e1f89793d962b32ff085e12782d0723"}], "informational": false}, {"id": "fls_n7z4cl1fsk6l", "number": "B.131", "title": "constant argument", "link": "glossary.html#constant-argument", "paragraphs": [{"id": "fls_sz10vgh260xo", "number": "B.131:1", "link": "glossary.html#fls_sz10vgh260xo", "checksum": "ad2c2f6362f886a3c2c2f8e11ef95198869e70137f4e7b3e5a6a1f01850b2bd5"}, {"id": "fls_dz9x6gf3yzc6", "number": "B.131:2", "link": "glossary.html#fls_dz9x6gf3yzc6", "checksum": "594cf07dd3bc7ffc842550c76f091d059f120dfbe84f028ffc88d7e09d64747c"}], "informational": false}, {"id": "fls_mtbhv6e9izzm", "number": "B.132", "title": "constant context", "link": "glossary.html#constant-context", "paragraphs": [{"id": "fls_9j6mc4i1t73z", "number": "B.132:1", "link": "glossary.html#fls_9j6mc4i1t73z", "checksum": "0d8ffb55967c6c3a59c4fcefa6ea5ffd5237d622363d040e0fdf4d62bdaa955b"}], "informational": false}, {"id": "fls_iofbib2gavnv", "number": "B.133", "title": "constant expression", "link": "glossary.html#constant-expression", "paragraphs": [{"id": "fls_rmn8w4rh3juf", "number": "B.133:1", "link": "glossary.html#fls_rmn8w4rh3juf", "checksum": "9e065928905270e01fcaaa30e3a6c88ff1241e4cea764cfd1b8934756d94bb57"}], "informational": false}, {"id": "fls_6j1wluj8sku8", "number": "B.134", "title": "constant function", "link": "glossary.html#constant-function", "paragraphs": [{"id": "fls_4glkwg11p5ml", "number": "B.134:1", "link": "glossary.html#fls_4glkwg11p5ml", "checksum": "079ceb5e3a19a43aa364310032afc2a291255d66c92dac9ba5f70da5fd3ba50e"}], "informational": false}, {"id": "fls_mf022jo05ziu", "number": "B.135", "title": "constant initializer", "link": "glossary.html#constant-initializer", "paragraphs": [{"id": "fls_2ge48v1kmw8", "number": "B.135:1", "link": "glossary.html#fls_2ge48v1kmw8", "checksum": "402982ae730789f8c535e089a21db522560ff5c2b94789570c5cc9169f518d15"}, {"id": "fls_h86eg26z19r2", "number": "B.135:2", "link": "glossary.html#fls_h86eg26z19r2", "checksum": "5e42023015b05a545df618be040b844570ff70e978cf02a236bc8eeabec27ec0"}], "informational": false}, {"id": "fls_pj0f0p4avbyw", "number": "B.136", "title": "constant parameter", "link": "glossary.html#constant-parameter", "paragraphs": [{"id": "fls_z7e491m3dx4u", "number": "B.136:1", "link": "glossary.html#fls_z7e491m3dx4u", "checksum": "1af2bef208b5873730b5a70da62a02b6097e0165d32952186f50a1fc454e62e1"}, {"id": "fls_9093wziwxk1g", "number": "B.136:2", "link": "glossary.html#fls_9093wziwxk1g", "checksum": "1cc1ba072bec8318bf1716f7eb842dfa4947e8f81bcc6b71ec78d2260b78da92"}], "informational": false}, {"id": "fls_sivxmhyazvjd", "number": "B.137", "title": "constant parameter initializer", "link": "glossary.html#constant-parameter-initializer", "paragraphs": [{"id": "fls_oxd2yaokfjci", "number": "B.137:1", "link": "glossary.html#fls_oxd2yaokfjci", "checksum": "a75de229346221acb196751f39b11f287bc57d55d01b3fdc6af25f50007a9628"}, {"id": "fls_cmsyucxgm8xs", "number": "B.137:2", "link": "glossary.html#fls_cmsyucxgm8xs", "checksum": "e470bb06658354bfadbe8d6dde50f24f7729c500ddd5ae45dc84b6efc21592f7"}], "informational": false}, {"id": "fls_f95c9hrk7t2p", "number": "B.138", "title": "constant promotion", "link": "glossary.html#constant-promotion", "paragraphs": [{"id": "fls_ku2md8lnei12", "number": "B.138:1", "link": "glossary.html#fls_ku2md8lnei12", "checksum": "5a09a243a7c3c32ff88305c901c3e1a7d0ff09116c8be54fc9ec726b97a5d270"}], "informational": false}, {"id": "fls_x4niicvxxv9k", "number": "B.139", "title": "constrain", "link": "glossary.html#constrain", "paragraphs": [{"id": "fls_fna0ch8ucyhv", "number": "B.139:1", "link": "glossary.html#fls_fna0ch8ucyhv", "checksum": "2b20e4f2abaef632b5e64246950807ad561b2bc81d347dc516413598c3ede233"}], "informational": false}, {"id": "fls_4305i29nt5d6", "number": "B.140", "title": "construct", "link": "glossary.html#construct", "paragraphs": [{"id": "fls_10tvzeo8xex0", "number": "B.140:1", "link": "glossary.html#fls_10tvzeo8xex0", "checksum": "32c0b276b9a8d538096d6a86651b80cb57558fb13ae5bf2b10d58f935ceff728"}], "informational": false}, {"id": "fls_fbgjotvhyvue", "number": "B.141", "title": "constructee", "link": "glossary.html#constructee", "paragraphs": [{"id": "fls_twbu94ugw4cb", "number": "B.141:1", "link": "glossary.html#fls_twbu94ugw4cb", "checksum": "260c4ba6dfb95a5fbab1aeee8e6959d854d78b9287cd80bebc8cda34eb491a91"}], "informational": false}, {"id": "fls_39s6od9hj4g6", "number": "B.142", "title": "container operand", "link": "glossary.html#container-operand", "paragraphs": [{"id": "fls_stjmobac6wyd", "number": "B.142:1", "link": "glossary.html#fls_stjmobac6wyd", "checksum": "ba87aafbdd29f7313abf19300674182817eefd5bbc2b13943b637bcf80c0e9df"}, {"id": "fls_hgm1ssicc8j4", "number": "B.142:2", "link": "glossary.html#fls_hgm1ssicc8j4", "checksum": "3e78d4bee22a11b42c3fc3c10c507562a7fba938d26864c7ec978ab2344c17ac"}], "informational": false}, {"id": "fls_doazu99vos8x", "number": "B.143", "title": "continue expression", "link": "glossary.html#continue-expression", "paragraphs": [{"id": "fls_waxam3m9plfj", "number": "B.143:1", "link": "glossary.html#fls_waxam3m9plfj", "checksum": "adbfb0569b2db7c2464adb86ec3149a19d932349406b9421589a9c7c23028b77"}, {"id": "fls_smwcz2xw9o1f", "number": "B.143:2", "link": "glossary.html#fls_smwcz2xw9o1f", "checksum": "eb4bb618f0016cc5b19d57844f38d56c3c5bb2bc6cd6338c2d271ff6764c3ea6"}], "informational": false}, {"id": "fls_nc4knv4tpenw", "number": "B.144", "title": "control flow boundary", "link": "glossary.html#control-flow-boundary", "paragraphs": [{"id": "fls_smipzjdp02ij", "number": "B.144:1", "link": "glossary.html#fls_smipzjdp02ij", "checksum": "b43b34e1180fc29f770212acc9767de1da68ffa61c1578ce311375d3f6489d19"}], "informational": false}, {"id": "fls_lnwxm6ffy15w", "number": "B.145", "title": "copy type", "link": "glossary.html#copy-type", "paragraphs": [{"id": "fls_j7r33ecacyh", "number": "B.145:1", "link": "glossary.html#fls_j7r33ecacyh", "checksum": "9378146dace311325f80bd7f9da97358920f87f3e846baf8ce39043401b42fd1"}], "informational": false}, {"id": "fls_kf8yukhxudw8", "number": "B.146", "title": "crate", "link": "glossary.html#crate", "paragraphs": [{"id": "fls_qplsjzb2uyim", "number": "B.146:1", "link": "glossary.html#fls_qplsjzb2uyim", "checksum": "cd65d5af7c19e83d72c624dbe007ff053c9bb3c4c6ac16ddd853ee06b55a6ec1"}], "informational": false}, {"id": "fls_xwbmmcbbowtu", "number": "B.147", "title": "crate import", "link": "glossary.html#crate-import", "paragraphs": [{"id": "fls_y91ja1a87g7a", "number": "B.147:1", "link": "glossary.html#fls_y91ja1a87g7a", "checksum": "f9dc5426a6f4b7c2d822945b0437cdb12589ee9e9b37c2fcf2a632969fda29a4"}, {"id": "fls_nmdxagg39hz6", "number": "B.147:2", "link": "glossary.html#fls_nmdxagg39hz6", "checksum": "488774d81d84bb29b04dc72dc928ca8debee7a3ea8a637d8ea58d8aa498f8723"}], "informational": false}, {"id": "fls_cxvnvso10pll", "number": "B.148", "title": "crate indication", "link": "glossary.html#crate-indication", "paragraphs": [{"id": "fls_xusfuerxqrra", "number": "B.148:1", "link": "glossary.html#fls_xusfuerxqrra", "checksum": "785227f0e21969eca81202c0e777b961ed0431b2fc3151ee9a15877f5fdef263"}, {"id": "fls_s1efklbzjlxq", "number": "B.148:2", "link": "glossary.html#fls_s1efklbzjlxq", "checksum": "2bdf07bea49bd05bd607a74bc9fcb8983e93b7daaa7e64aaf542d39bc74f792c"}], "informational": false}, {"id": "fls_yf9yjzzhw0rn", "number": "B.149", "title": "crate public modifier", "link": "glossary.html#crate-public-modifier", "paragraphs": [{"id": "fls_dj7fmrqhbhsv", "number": "B.149:1", "link": "glossary.html#fls_dj7fmrqhbhsv", "checksum": "3a384e55ab1144b0661fd6868c8b9ac514287016f83797db8c62bb61f931ec18"}, {"id": "fls_wjfupeyeczp0", "number": "B.149:2", "link": "glossary.html#fls_wjfupeyeczp0", "checksum": "923a81e40b0ae15b6294eb57af05e001228b8ef2d2be959cb64a86e05ce958d3"}], "informational": false}, {"id": "fls_hv9zyxb72soh", "number": "B.150", "title": "crate root", "link": "glossary.html#crate-root", "paragraphs": [{"id": "fls_yxcgiuybqqy8", "number": "B.150:1", "link": "glossary.html#fls_yxcgiuybqqy8", "checksum": "1525b4eef9424592678eedb97fe1d74b2c10483f93d53ceb3d8b8e7010b27688"}], "informational": false}, {"id": "fls_iucxone5ta26", "number": "B.151", "title": "crate root module", "link": "glossary.html#crate-root-module", "paragraphs": [{"id": "fls_oo4nmqv78wno", "number": "B.151:1", "link": "glossary.html#fls_oo4nmqv78wno", "checksum": "0bc4471329d6e01909401ca5df636211c8c6d69bd3ccad0b79e18b222b2fb700"}], "informational": false}, {"id": "fls_76cj65bptdpn", "number": "B.152", "title": "dangling", "link": "glossary.html#dangling", "paragraphs": [{"id": "fls_lq2urzh7bzxx", "number": "B.152:1", "link": "glossary.html#fls_lq2urzh7bzxx", "checksum": "9ef72ec2d278087799cfd15845195fda66fe207e98907f8756bd7bc966c4485c"}], "informational": false}, {"id": "fls_9meaofgcpvx6", "number": "B.153", "title": "data race", "link": "glossary.html#data-race", "paragraphs": [{"id": "fls_v2s1b57e3r7n", "number": "B.153:1", "link": "glossary.html#fls_v2s1b57e3r7n", "checksum": "2a845f99dabf8472b5ed8f35a1b43cdf5d54ccf32f81d0fbf75fe2066af2c37b"}], "informational": false}, {"id": "fls_128iunbbiuql", "number": "B.154", "title": "decimal literal", "link": "glossary.html#decimal-literal", "paragraphs": [{"id": "fls_lwv823lih69m", "number": "B.154:1", "link": "glossary.html#fls_lwv823lih69m", "checksum": "2895a430d0cda09b5bc038198372fe120335616480e06ef39c5d2f0912c3bc54"}, {"id": "fls_pxiba4se64y4", "number": "B.154:2", "link": "glossary.html#fls_pxiba4se64y4", "checksum": "0086a77e0d850ef108a2f797e78c9cda969d52801db1d04f746169fe78c7631f"}], "informational": false}, {"id": "fls_9qgy7x6w5ro5", "number": "B.155", "title": "declaration", "link": "glossary.html#declaration", "paragraphs": [{"id": "fls_kct7ducpli6k", "number": "B.155:1", "link": "glossary.html#fls_kct7ducpli6k", "checksum": "186be1d59895580871c6dc1bb41016600424e8a4e18c7b824f276f299825b31e"}], "informational": false}, {"id": "fls_5944xn0lz8e", "number": "B.156", "title": "declarative macro", "link": "glossary.html#declarative-macro", "paragraphs": [{"id": "fls_pe12lfffaoqt", "number": "B.156:1", "link": "glossary.html#fls_pe12lfffaoqt", "checksum": "c6f81f63302508941a457a3549f6715449e0e3264bd13bb8fb58f97b42332877"}, {"id": "fls_1te2kfi9lt6c", "number": "B.156:2", "link": "glossary.html#fls_1te2kfi9lt6c", "checksum": "6fe37f22bb9d618a04b7a471248554c938cd26c78c35410d22c4bac98e96534b"}], "informational": false}, {"id": "fls_galaslko8glg", "number": "B.157", "title": "deconstructee", "link": "glossary.html#deconstructee", "paragraphs": [{"id": "fls_qsvwodofwtuo", "number": "B.157:1", "link": "glossary.html#fls_qsvwodofwtuo", "checksum": "be67838f13fbac1eefc831094a6b299226ba9fd64c19f5e040e8535f199d01ff"}, {"id": "fls_tkfjmv7ar7lp", "number": "B.157:2", "link": "glossary.html#fls_tkfjmv7ar7lp", "checksum": "c02bd58eae112bc9bff6510a22c21e19c3729a15b3934f367249ad44fbb99bc8"}], "informational": false}, {"id": "fls_g9v8ubx8m1sq", "number": "B.158", "title": "default representation", "link": "glossary.html#default-representation", "paragraphs": [{"id": "fls_e85fsp10acnh", "number": "B.158:1", "link": "glossary.html#fls_e85fsp10acnh", "checksum": "f60378643e829d062e4e7148f2c4e7f2ae8d5ee23e30726de0b1e517e56d9882"}], "informational": false}, {"id": "fls_frfnicpg81sr", "number": "B.159", "title": "definition site hygiene", "link": "glossary.html#definition-site-hygiene", "paragraphs": [{"id": "fls_2y1dpw5zeqt3", "number": "B.159:1", "link": "glossary.html#fls_2y1dpw5zeqt3", "checksum": "3e74e67dd4f92d64c9dcac1bab6954b9904fdc86d5f8334201b4ce7f7fead9e6"}], "informational": false}, {"id": "fls_127n1n5ssk2b", "number": "B.160", "title": "dereference", "link": "glossary.html#dereference", "paragraphs": [{"id": "fls_hk97pb1qt04y", "number": "B.160:1", "link": "glossary.html#fls_hk97pb1qt04y", "checksum": "c6086a6971526f43461c5f5000f075c75858b7c4fcbd7a85e6d6508c512e211e"}], "informational": false}, {"id": "fls_o588wfq878rm", "number": "B.161", "title": "dereference expression", "link": "glossary.html#dereference-expression", "paragraphs": [{"id": "fls_3cuyhbh2llei", "number": "B.161:1", "link": "glossary.html#fls_3cuyhbh2llei", "checksum": "1240280d29008dfc8c0180ba22be627dd92ce546e418c6fb9572a06c31605ce0"}, {"id": "fls_hx0jwahdb1nf", "number": "B.161:2", "link": "glossary.html#fls_hx0jwahdb1nf", "checksum": "16cbe15964f11f6a2159ae6277fdfa291cb2878516c19d2b3792e41f5e0ea759"}], "informational": false}, {"id": "fls_xbn0gtch8emc", "number": "B.162", "title": "dereference type", "link": "glossary.html#dereference-type", "paragraphs": [{"id": "fls_hfuuq7iaoi5j", "number": "B.162:1", "link": "glossary.html#fls_hfuuq7iaoi5j", "checksum": "93b8f7f371f4936860247c97677a44b6a1f54ae3365939b211911d9a0927bd92"}], "informational": false}, {"id": "fls_t380ndesfxip", "number": "B.163", "title": "dereference type chain", "link": "glossary.html#dereference-type-chain", "paragraphs": [{"id": "fls_kizoaef069he", "number": "B.163:1", "link": "glossary.html#fls_kizoaef069he", "checksum": "16374bf45141d9fbb2097bdd885ea5e7091f30932db80a58f20cfeabe4ded75a"}], "informational": false}, {"id": "fls_7ipdj78o7ln", "number": "B.164", "title": "derive macro", "link": "glossary.html#derive-macro", "paragraphs": [{"id": "fls_jrrjhl9hocrm", "number": "B.164:1", "link": "glossary.html#fls_jrrjhl9hocrm", "checksum": "c1f0f6341e425323d91fe1a69bb0a559bb1b796ae5d5cec960c20d5f296e971c"}], "informational": false}, {"id": "fls_7b3fsp356e9l", "number": "B.165", "title": "destruction", "link": "glossary.html#destruction", "paragraphs": [{"id": "fls_58i2nfhxze3j", "number": "B.165:1", "link": "glossary.html#fls_58i2nfhxze3j", "checksum": "c3c69e39c76ec60efe130d5fe9cf18560b60ca13e2b9f1a89079c56ea51ffe16"}], "informational": false}, {"id": "fls_kwxpy451gtc", "number": "B.166", "title": "destructor", "link": "glossary.html#destructor", "paragraphs": [{"id": "fls_79pp7o1xooja", "number": "B.166:1", "link": "glossary.html#fls_79pp7o1xooja", "checksum": "cab9cc5970167e0b245142acc001861b45534ebfeb4fbbc2cbe70dd9af2cd12d"}], "informational": false}, {"id": "fls_2fuu3zr9rn2q", "number": "B.167", "title": "destructuring assignment", "link": "glossary.html#destructuring-assignment", "paragraphs": [{"id": "fls_7jienn9uzn5k", "number": "B.167:1", "link": "glossary.html#fls_7jienn9uzn5k", "checksum": "a73eab7803701de6bccbe631159e1fb32bb53ae053872967f51cdc17b6c6bbaa"}], "informational": false}, {"id": "fls_ugifzlazdk6h", "number": "B.168", "title": "direction modifier", "link": "glossary.html#direction-modifier", "paragraphs": [{"id": "fls_8dy7xpvx4nxx", "number": "B.168:1", "link": "glossary.html#fls_8dy7xpvx4nxx", "checksum": "3d1f7fad507a86b94d9c0829cdcfd7405c4c95a9d7c6cf14d52b73d4021b20a5"}, {"id": "fls_lrkezy3fq3b2", "number": "B.168:2", "link": "glossary.html#fls_lrkezy3fq3b2", "checksum": "7faaa350f801241526ccbf52964a3df8980b47b8b0ab3ea9f42d3619e28ee24a"}], "informational": false}, {"id": "fls_7vg56eeo0zlg", "number": "B.169", "title": "discriminant", "link": "glossary.html#discriminant", "paragraphs": [{"id": "fls_dfegy9y6awx", "number": "B.169:1", "link": "glossary.html#fls_dfegy9y6awx", "checksum": "5a5abc5ee49b4a7f3f4db78ac422d7a479d70841cbcb719ec4b8021a3fd162f3"}], "informational": false}, {"id": "fls_xayj37ocbqjn", "number": "B.170", "title": "discriminant initializer", "link": "glossary.html#discriminant-initializer", "paragraphs": [{"id": "fls_o7hihgcqmnyc", "number": "B.170:1", "link": "glossary.html#fls_o7hihgcqmnyc", "checksum": "33403a1fd9b481039341e610a91050d2e72dac7d9d9d891990ecf886d8b49253"}, {"id": "fls_g5obc23vigng", "number": "B.170:2", "link": "glossary.html#fls_g5obc23vigng", "checksum": "4ec66a8e6b1a1decf06468e753299a3530da654440caae3314ac821c08e25d7e"}], "informational": false}, {"id": "fls_a0ezupltenme", "number": "B.171", "title": "discriminant type", "link": "glossary.html#discriminant-type", "paragraphs": [{"id": "fls_t4yeovfm83wo", "number": "B.171:1", "link": "glossary.html#fls_t4yeovfm83wo", "checksum": "705ecb8bc002be23873f9f438307c194bfd9d16bcea104ee17ba8b15285dcad2"}], "informational": false}, {"id": "fls_gdfsaj1bvx7a", "number": "B.172", "title": "diverging expression", "link": "glossary.html#diverging-expression", "paragraphs": [{"id": "fls_fllnzmb34cj9", "number": "B.172:1", "link": "glossary.html#fls_fllnzmb34cj9", "checksum": "ad374347cf4cd6a6c6b98a6893a3c10cd7b2eea1690b918fb460d7f40298e461"}], "informational": false}, {"id": "fls_9duain6crbxf", "number": "B.173", "title": "diverging type variable", "link": "glossary.html#diverging-type-variable", "paragraphs": [{"id": "fls_sxyl7yop3h9s", "number": "B.173:1", "link": "glossary.html#fls_sxyl7yop3h9s", "checksum": "9beb47bf4c01551ee36f57494afd73d838a93770858eb6901252693a2659b24e"}], "informational": false}, {"id": "fls_0lpt9ncj7s9x", "number": "B.174", "title": "division assignment", "link": "glossary.html#division-assignment", "paragraphs": [{"id": "fls_kvqskrze1y97", "number": "B.174:1", "link": "glossary.html#fls_kvqskrze1y97", "checksum": "1fcefd037c849800562d836fec6ff2c3da85fd098b5fb8c46d7abd688be6e626"}], "informational": false}, {"id": "fls_ccv27fji08ou", "number": "B.175", "title": "division assignment expression", "link": "glossary.html#division-assignment-expression", "paragraphs": [{"id": "fls_lzuz5fkveikk", "number": "B.175:1", "link": "glossary.html#fls_lzuz5fkveikk", "checksum": "5fb93529292d1b9571eba0d6c393406561ebbc3e510714fae4774d114a0b8c30"}, {"id": "fls_cdxt76aqwtkq", "number": "B.175:2", "link": "glossary.html#fls_cdxt76aqwtkq", "checksum": "7ed26165464e17c3a4e91284b0f80715d5e38377531d78ae29105c2d8a9779c4"}], "informational": false}, {"id": "fls_vxd5q8nekkn0", "number": "B.176", "title": "division expression", "link": "glossary.html#division-expression", "paragraphs": [{"id": "fls_du05yp205f4y", "number": "B.176:1", "link": "glossary.html#fls_du05yp205f4y", "checksum": "fc35ce0f0ccff2997fb52a27c87b7ceb21b3a45f2aa9e4d06034ad09b5873da1"}, {"id": "fls_d3vwk4autyd", "number": "B.176:2", "link": "glossary.html#fls_d3vwk4autyd", "checksum": "f491325690119cf7c5af7534ced8eb78f097cb2bb8048e82cb70083c7c39ddba"}], "informational": false}, {"id": "fls_4nm1r57ntecm", "number": "B.177", "title": "doc comment", "link": "glossary.html#doc-comment", "paragraphs": [{"id": "fls_wkc1w2xk7ebh", "number": "B.177:1", "link": "glossary.html#fls_wkc1w2xk7ebh", "checksum": "23a01e02af0ae9df7912a43e2e3a1413dde27cd1191c80edcc213f494d6edbf9"}], "informational": false}, {"id": "fls_nw0qr4xy3zxq", "number": "B.178", "title": "drop construct", "link": "glossary.html#drop-construct", "paragraphs": [{"id": "fls_odg2asgj28m", "number": "B.178:1", "link": "glossary.html#fls_odg2asgj28m", "checksum": "7abf2651506bd0665031edef1498e14afa72ecdeb6a7b874c9a09f3c9331b1e2"}], "informational": false}, {"id": "fls_j12e358828h", "number": "B.179", "title": "drop order", "link": "glossary.html#drop-order", "paragraphs": [{"id": "fls_qddkiabu6swt", "number": "B.179:1", "link": "glossary.html#fls_qddkiabu6swt", "checksum": "e9460db73120721fb8857496d2f76aee1a9e80ef6a34e38fb92f39de28a8fd6f"}], "informational": false}, {"id": "fls_foszri7hdym0", "number": "B.180", "title": "drop scope", "link": "glossary.html#drop-scope", "paragraphs": [{"id": "fls_6bu8x0g9q0er", "number": "B.180:1", "link": "glossary.html#fls_6bu8x0g9q0er", "checksum": "cb1c7edf069900e8ae1aa4ae6e4e4db97372e11f2612c1c75556af4f8f1e1911"}], "informational": false}, {"id": "fls_qp3ksd2lxm8", "number": "B.181", "title": "drop scope extension", "link": "glossary.html#drop-scope-extension", "paragraphs": [{"id": "fls_pmdh8kkrwkd0", "number": "B.181:1", "link": "glossary.html#fls_pmdh8kkrwkd0", "checksum": "502eedcf0dab84b64b658d062626caf3ce8ca7151ac593ca3f3d7bde795a8927"}], "informational": false}, {"id": "fls_4v6vsuw4g89l", "number": "B.182", "title": "drop type", "link": "glossary.html#drop-type", "paragraphs": [{"id": "fls_ot3e31kwixil", "number": "B.182:1", "link": "glossary.html#fls_ot3e31kwixil", "checksum": "65ab24e3cd1d32e6f0df7050e8eb6474391a353230f445eceaa10659e7c0c16d"}], "informational": false}, {"id": "fls_68cl4paduzx2", "number": "B.183", "title": "dropping", "link": "glossary.html#dropping", "paragraphs": [{"id": "fls_k4mguykh8ey", "number": "B.183:1", "link": "glossary.html#fls_k4mguykh8ey", "checksum": "02153ef5dc490ca8c73e4d45ac6238b2a79c316c5d7f497dc65f0485462cad42"}], "informational": false}, {"id": "fls_6uovyjjzh6km", "number": "B.184", "title": "dynamically sized type", "link": "glossary.html#dynamically-sized-type", "paragraphs": [{"id": "fls_eeyxu730z2pw", "number": "B.184:1", "link": "glossary.html#fls_eeyxu730z2pw", "checksum": "74949c40c2992ef3a797d351b856d71f6d0b2c333152b70dc30b48e4874f8031"}], "informational": false}, {"id": "fls_2sja3okj27ne", "number": "B.185", "title": "elaboration", "link": "glossary.html#elaboration", "paragraphs": [{"id": "fls_xoahzmwu1std", "number": "B.185:1", "link": "glossary.html#fls_xoahzmwu1std", "checksum": "61683bccb6e65169a6a97549e117ed653e66baef8b539541b6704e4220171f2b"}], "informational": false}, {"id": "fls_bxm4njfo2h58", "number": "B.186", "title": "element type", "link": "glossary.html#element-type", "paragraphs": [{"id": "fls_3bndijf8g9os", "number": "B.186:1", "link": "glossary.html#fls_3bndijf8g9os", "checksum": "3bd8765395f2fac6faf751bb96055a45f85797eae151e46349ae0db30f071e70"}, {"id": "fls_pvyl887dn016", "number": "B.186:2", "link": "glossary.html#fls_pvyl887dn016", "checksum": "d62bee51822d6f6d406acba429af002d1ab08fea7725cfd70344b9d81417898b"}], "informational": false}, {"id": "fls_vygjg858yxej", "number": "B.187", "title": "elided", "link": "glossary.html#elided", "paragraphs": [{"id": "fls_lo3c3n9wy6qz", "number": "B.187:1", "link": "glossary.html#fls_lo3c3n9wy6qz", "checksum": "63e5e30e747f9a7ee44508e6c55a2cba2b873c7ed32b690019a9f392ea878fc4"}], "informational": false}, {"id": "fls_l2181y5566ck", "number": "B.188", "title": "elided lifetime", "link": "glossary.html#elided-lifetime", "paragraphs": [{"id": "fls_9q28407ev0a6", "number": "B.188:1", "link": "glossary.html#fls_9q28407ev0a6", "checksum": "fbdb6bbcfc31a6446a2909cbbfa2f1f86bc6d494840bd0c8182142874cec9846"}], "informational": false}, {"id": "fls_ff5zp7m9d5ot", "number": "B.189", "title": "else expression", "link": "glossary.html#else-expression", "paragraphs": [{"id": "fls_inp7luoqkjc5", "number": "B.189:1", "link": "glossary.html#fls_inp7luoqkjc5", "checksum": "93eed90fe1fa480bab6c0988d5fe9e37292cf9aaed59df8c10b83a82a370a1ff"}, {"id": "fls_2jniy6bkq1hn", "number": "B.189:2", "link": "glossary.html#fls_2jniy6bkq1hn", "checksum": "fe3d4b57a8de6c6fec34a4c7f0577cebcec203f85a07de1166ce59701f0814cd"}], "informational": false}, {"id": "fls_iwed9n4jz6b8", "number": "B.190", "title": "empty statement", "link": "glossary.html#empty-statement", "paragraphs": [{"id": "fls_irw5gwuvj3nn", "number": "B.190:1", "link": "glossary.html#fls_irw5gwuvj3nn", "checksum": "b21f5c532bda9b088c3df990999b60c9897d53a813c2c50f6a586d94594c17f2"}], "informational": false}, {"id": "fls_1qu1t74ga8aa", "number": "B.191", "title": "entity", "link": "glossary.html#entity", "paragraphs": [{"id": "fls_mdbck557k8sy", "number": "B.191:1", "link": "glossary.html#fls_mdbck557k8sy", "checksum": "b99ebf561fb2b712d6b0e5b6f8bbef36e59b5929b8f2a622a11f35506b0a09b4"}], "informational": false}, {"id": "fls_xnhj9fqlfs2p", "number": "B.192", "title": "enum", "link": "glossary.html#enum", "paragraphs": [{"id": "fls_9o0ig19xh2f5", "number": "B.192:1", "link": "glossary.html#fls_9o0ig19xh2f5", "checksum": "55bfd8e88f68583acdcba6d46ba7f3ab6a7f708f06f1d762e49cf30a6237fee8"}], "informational": false}, {"id": "fls_zrrydwzgm03k", "number": "B.193", "title": "enum field", "link": "glossary.html#enum-field", "paragraphs": [{"id": "fls_j8udq05qgiej", "number": "B.193:1", "link": "glossary.html#fls_j8udq05qgiej", "checksum": "10cf182ff530b108c79f8a6105f024ab194388b61ef12837cf0ab351bcba13ad"}], "informational": false}, {"id": "fls_grlluqa4ucp3", "number": "B.194", "title": "enum type", "link": "glossary.html#enum-type", "paragraphs": [{"id": "fls_idwrgo87ub3i", "number": "B.194:1", "link": "glossary.html#fls_idwrgo87ub3i", "checksum": "7bec00fcaf3ec0f8d237b6ad87cbc9a5cd8f6670685a281e0e56f0d84971ea97"}, {"id": "fls_o6ih6n1z1566", "number": "B.194:2", "link": "glossary.html#fls_o6ih6n1z1566", "checksum": "70f96046ca399c6fce19a8034df2065d80d5c8d0620bcc1efd0f86c58e7e4dcd"}], "informational": false}, {"id": "fls_h6auaujnlx6z", "number": "B.195", "title": "enum value", "link": "glossary.html#enum-value", "paragraphs": [{"id": "fls_qdbtdvlb2xhk", "number": "B.195:1", "link": "glossary.html#fls_qdbtdvlb2xhk", "checksum": "e6e316bcba9763e25bd0a189d7b5ee58922732e7f4ac872dd8a26f7f0f794b99"}], "informational": false}, {"id": "fls_klwlx5jixwud", "number": "B.196", "title": "enum variant", "link": "glossary.html#enum-variant", "paragraphs": [{"id": "fls_9jq4keg9y94u", "number": "B.196:1", "link": "glossary.html#fls_9jq4keg9y94u", "checksum": "a97d85b8319c13caf3eb97c8dcd218ba5f6a4c34818926f65673e3a9a02961e9"}, {"id": "fls_tj2s55onen6b", "number": "B.196:2", "link": "glossary.html#fls_tj2s55onen6b", "checksum": "0903984600db389923d90e27798c6da2a530c199827ddb5d154fd8f74fd68f13"}], "informational": false}, {"id": "fls_mkxbwcojhnwu", "number": "B.197", "title": "enum variant value", "link": "glossary.html#enum-variant-value", "paragraphs": [{"id": "fls_vqrqnpffwmdp", "number": "B.197:1", "link": "glossary.html#fls_vqrqnpffwmdp", "checksum": "a71ccfd8de8b723e189e9cfdc26e33287259bc252697d1af5bfabb9004bc2fbf"}], "informational": false}, {"id": "fls_alifv570nx7q", "number": "B.198", "title": "equals expression", "link": "glossary.html#equals-expression", "paragraphs": [{"id": "fls_mn1g2hijtd6f", "number": "B.198:1", "link": "glossary.html#fls_mn1g2hijtd6f", "checksum": "752a5f73dc8c26534cf6daaa8b7bcf1748a4d322c908774179f40a26734847fd"}, {"id": "fls_j32l4do0xw4d", "number": "B.198:2", "link": "glossary.html#fls_j32l4do0xw4d", "checksum": "749e923d0c51631d01835a509d15cc66aabaf35d93c976a8ae25a6bb17e353c9"}], "informational": false}, {"id": "fls_kz7tgpi8xkt4", "number": "B.199", "title": "error propagation expression", "link": "glossary.html#error-propagation-expression", "paragraphs": [{"id": "fls_5kebgodxtqqt", "number": "B.199:1", "link": "glossary.html#fls_5kebgodxtqqt", "checksum": "cda63944f6a0056104780625eff6b1411a44708802aa5f5ba1339cc60f2d6e06"}, {"id": "fls_agyqvyda3rcj", "number": "B.199:2", "link": "glossary.html#fls_agyqvyda3rcj", "checksum": "9598dac15ae7ae5953f1a98ae895611ac521b0bb5071f731bdbb4c6d021e9ee8"}], "informational": false}, {"id": "fls_9hw559b548m0", "number": "B.200", "title": "escaped character", "link": "glossary.html#escaped-character", "paragraphs": [{"id": "fls_7yvnbakmo7y5", "number": "B.200:1", "link": "glossary.html#fls_7yvnbakmo7y5", "checksum": "2f0565045c9b9b6ac98a82163a6e9b2f2ff7943c7f8efb7c470f13474fcf48fd"}], "informational": false}, {"id": "fls_pefe9ng1mm81", "number": "B.201", "title": "evaluated", "link": "glossary.html#evaluated", "paragraphs": [{"id": "fls_769tm6hn9g5e", "number": "B.201:1", "link": "glossary.html#fls_769tm6hn9g5e", "checksum": "f49d2f1aba2b337fd812e752e9330a31588aa19647bff7f1a0f982ae92d9fd84"}], "informational": false}, {"id": "fls_p3gre0895k2u", "number": "B.202", "title": "evaluation", "link": "glossary.html#evaluation", "paragraphs": [{"id": "fls_8zmtio6razl1", "number": "B.202:1", "link": "glossary.html#fls_8zmtio6razl1", "checksum": "a05f48ba73d51eb3a8a6d89d6b576154e00a8116ad42133b57faf2e7509efac5"}], "informational": false}, {"id": "fls_nw0eg7gwayrg", "number": "B.203", "title": "executed", "link": "glossary.html#executed", "paragraphs": [{"id": "fls_kelmsc68lyf7", "number": "B.203:1", "link": "glossary.html#fls_kelmsc68lyf7", "checksum": "8211f1e161aadc39a62f6cc679dc33b4399404b7f905d79b99f845eabf6d971b"}], "informational": false}, {"id": "fls_q0ur239s8uv", "number": "B.204", "title": "execution", "link": "glossary.html#execution", "paragraphs": [{"id": "fls_e5jbii84hd5g", "number": "B.204:1", "link": "glossary.html#fls_e5jbii84hd5g", "checksum": "e6e30a3137daed472eac5e6451ca742c99cd40109cb14e02abbec0c2a7a9c8f8"}], "informational": false}, {"id": "fls_b1qkksvc69j4", "number": "B.205", "title": "explicit register argument", "link": "glossary.html#explicit-register-argument", "paragraphs": [{"id": "fls_2o6s1wgdrmh3", "number": "B.205:1", "link": "glossary.html#fls_2o6s1wgdrmh3", "checksum": "246d76c492360be9b37e4456c223c1209aca1d92e47981a66ec2addcf240f86e"}], "informational": false}, {"id": "fls_uc7pnsbvvd9x", "number": "B.206", "title": "explicit register name", "link": "glossary.html#explicit-register-name", "paragraphs": [{"id": "fls_ucmk6rrlrkb5", "number": "B.206:1", "link": "glossary.html#fls_ucmk6rrlrkb5", "checksum": "294e872304d6ca6fc60216fdbecd1805e6bfde3b8462f0688248a438102857a5"}, {"id": "fls_z3wdh75vpsuu", "number": "B.206:2", "link": "glossary.html#fls_z3wdh75vpsuu", "checksum": "519e2d7a787629ff82f0ac7889a961fef2dd5c808a3d92d20577c8e4619a6c98"}], "informational": false}, {"id": "fls_lqxcnzqvwcsh", "number": "B.207", "title": "explicitly declared entity", "link": "glossary.html#explicitly-declared-entity", "paragraphs": [{"id": "fls_shpnj0jcscwa", "number": "B.207:1", "link": "glossary.html#fls_shpnj0jcscwa", "checksum": "d3e50dd09d36f4dde21049ee5930d4f5c620bf5ed6f7aa36019d589fd1874202"}], "informational": false}, {"id": "fls_5oqllrm7wjsg", "number": "B.208", "title": "exported function", "link": "glossary.html#exported-function", "paragraphs": [{"id": "fls_qotmf1iaeyod", "number": "B.208:1", "link": "glossary.html#fls_qotmf1iaeyod", "checksum": "4b26446aa4ddc724ece7673be491c07bb3f91af46494f4de107c45d09072cbf7"}], "informational": false}, {"id": "fls_zkq5zkjwsyod", "number": "B.209", "title": "exported static", "link": "glossary.html#exported-static", "paragraphs": [{"id": "fls_aolcsvb349zu", "number": "B.209:1", "link": "glossary.html#fls_aolcsvb349zu", "checksum": "6822eb037fa58a1b2cf743b2117a957fd48eab1ef2cbdb974ff4ebb8dd92bf93"}], "informational": false}, {"id": "fls_q8ofwncggngd", "number": "B.210", "title": "expression", "link": "glossary.html#expression", "paragraphs": [{"id": "fls_f7iuwgbs1lql", "number": "B.210:1", "link": "glossary.html#fls_f7iuwgbs1lql", "checksum": "eedeacbaa1d210d8b20142f0e6f43a38225774dec26c09c4a15f49ccc2049a82"}, {"id": "fls_8l9hru1x586q", "number": "B.210:2", "link": "glossary.html#fls_8l9hru1x586q", "checksum": "d5c1acc27a061ab4a00f8db188df97108fbc002afb3b8894e7111fd4e4671fb9"}], "informational": false}, {"id": "fls_a1rorkjt3vpc", "number": "B.211", "title": "expression statement", "link": "glossary.html#expression-statement", "paragraphs": [{"id": "fls_ds0pspiqk4am", "number": "B.211:1", "link": "glossary.html#fls_ds0pspiqk4am", "checksum": "a047ef3ad373b2ff4f80056a1438b8aa65b5f0d30615bfc299868e00c8c230d3"}, {"id": "fls_41jt1h3audzv", "number": "B.211:2", "link": "glossary.html#fls_41jt1h3audzv", "checksum": "5339879c39ea4615d41c32f6d48b2e53f0bf6a1f4f43569a50eb73ec059689cf"}], "informational": false}, {"id": "fls_u6huewic8650", "number": "B.212", "title": "expression-with-block", "link": "glossary.html#expression-with-block", "paragraphs": [{"id": "fls_ujlm50le5dnj", "number": "B.212:1", "link": "glossary.html#fls_ujlm50le5dnj", "checksum": "4d7e267ad0d149dd29f48c7af04eb52c0294fff217086d1d78da516872d89ac9"}, {"id": "fls_iwheys965ml3", "number": "B.212:2", "link": "glossary.html#fls_iwheys965ml3", "checksum": "f9e3f3e27f25bd67eb45f644b9fad2f82e6ce29d5b297ca444300b0a7127eb03"}], "informational": false}, {"id": "fls_378e2xhxzk26", "number": "B.213", "title": "expression-without-block", "link": "glossary.html#expression-without-block", "paragraphs": [{"id": "fls_xfh9xmsphzqb", "number": "B.213:1", "link": "glossary.html#fls_xfh9xmsphzqb", "checksum": "7cce1c14a5506009db260af1d47e8986f414d4211450ce82b0cca2dc979fcf05"}, {"id": "fls_miaphjnikd51", "number": "B.213:2", "link": "glossary.html#fls_miaphjnikd51", "checksum": "d9e8419c17a4b4649a3d0af3749b43f96720c9b317e51491a05070b63556b922"}], "informational": false}, {"id": "fls_9k6jcsljghab", "number": "B.214", "title": "external block", "link": "glossary.html#external-block", "paragraphs": [{"id": "fls_z2ebcp7kjpuy", "number": "B.214:1", "link": "glossary.html#fls_z2ebcp7kjpuy", "checksum": "a56ea5af9b72536fbec71883cd6a041726a04a714ff48bbdc3734859396f2c7a"}, {"id": "fls_dm2wz1th2haz", "number": "B.214:2", "link": "glossary.html#fls_dm2wz1th2haz", "checksum": "302b6dfa7018b3eca79b3adc9417f5045a101a947eafd0fe83021a44796cec3e"}], "informational": false}, {"id": "fls_8ffbgzkbsf9r", "number": "B.215", "title": "external function", "link": "glossary.html#external-function", "paragraphs": [{"id": "fls_ngz5fqwrf86e", "number": "B.215:1", "link": "glossary.html#fls_ngz5fqwrf86e", "checksum": "e27b76500ca5beb577c67a9a3db7c4d363f4240f6e86516e9b6cd759a3fa0104"}], "informational": false}, {"id": "fls_ug2kags0o6is", "number": "B.216", "title": "external function item type", "link": "glossary.html#external-function-item-type", "paragraphs": [{"id": "fls_dwlovqly44dj", "number": "B.216:1", "link": "glossary.html#fls_dwlovqly44dj", "checksum": "6bd8c2d66d4263112be6db40475705152153102478f83df9fde317cbc0ed4886"}], "informational": false}, {"id": "fls_c89migfc2m6e", "number": "B.217", "title": "external static", "link": "glossary.html#external-static", "paragraphs": [{"id": "fls_bqq6cncstzeg", "number": "B.217:1", "link": "glossary.html#fls_bqq6cncstzeg", "checksum": "aeb76dc9d5fedbb690dd0b97233c1ecd588913c98a8c4ec43ca2ce3c721170e4"}], "informational": false}, {"id": "fls_4w6garmjhrd9", "number": "B.218", "title": "f32", "link": "glossary.html#f32", "paragraphs": [{"id": "fls_4w5rqj7zdemu", "number": "B.218:1", "link": "glossary.html#fls_4w5rqj7zdemu", "checksum": "181cd4cfcee4b0854842216c451b38f93ae6074ef36248dc184574b7b67da1a7"}], "informational": false}, {"id": "fls_pj450h99yo28", "number": "B.219", "title": "f64", "link": "glossary.html#f64", "paragraphs": [{"id": "fls_ly6p0i6lsibh", "number": "B.219:1", "link": "glossary.html#fls_ly6p0i6lsibh", "checksum": "8ca9803fedfbd1c394698766b0fea6b8a100d5d3761f9d7081fd762569b2f10c"}], "informational": false}, {"id": "fls_nkf9z4pqg8x1", "number": "B.220", "title": "fat pointer", "link": "glossary.html#fat-pointer", "paragraphs": [{"id": "fls_knbc2jv5c5ds", "number": "B.220:1", "link": "glossary.html#fls_knbc2jv5c5ds", "checksum": "da42cd3e020a0d0b56ccf3c37074591a4652e9f193d2c8b6b95f3833a781b346"}], "informational": false}, {"id": "fls_trvkbidlsss8", "number": "B.221", "title": "fat pointer type", "link": "glossary.html#fat-pointer-type", "paragraphs": [{"id": "fls_l8ew6udd79hh", "number": "B.221:1", "link": "glossary.html#fls_l8ew6udd79hh", "checksum": "dd2ddbe7d5c0f33b2db1c0fad93ddf27f1e0609d5201db45b67dfaaba9ad315b"}], "informational": false}, {"id": "fls_qi21fdknzez6", "number": "B.222", "title": "FFI", "link": "glossary.html#ffi", "paragraphs": [{"id": "fls_z363fu89mj1c", "number": "B.222:1", "link": "glossary.html#fls_z363fu89mj1c", "checksum": "2113cb97a21d807a1ce23b1fc48691f268dc2902994fd2c9b7a68235b26f5668"}], "informational": false}, {"id": "fls_7gcabhngeil6", "number": "B.223", "title": "field", "link": "glossary.html#field", "paragraphs": [{"id": "fls_uakrgfftk2yv", "number": "B.223:1", "link": "glossary.html#fls_uakrgfftk2yv", "checksum": "c532a8cff3f354481be5493a79ea298042fd71117d52179e4777df728c892ca1"}], "informational": false}, {"id": "fls_yipl7ajrbs6y", "number": "B.224", "title": "field access expression", "link": "glossary.html#field-access-expression", "paragraphs": [{"id": "fls_gdl348a04d15", "number": "B.224:1", "link": "glossary.html#fls_gdl348a04d15", "checksum": "841ffbc800b382bd4a5dd9b730e0c83e19d899a51798fe18d3bc02346567aa7d"}, {"id": "fls_luetyuwu54d6", "number": "B.224:2", "link": "glossary.html#fls_luetyuwu54d6", "checksum": "8d2041606274b9333d7b1f48edfb63c1872e07246fe2433127c7af80fb6013fb"}], "informational": false}, {"id": "fls_6uwwat9j4x7y", "number": "B.225", "title": "field index", "link": "glossary.html#field-index", "paragraphs": [{"id": "fls_6061r871qgbj", "number": "B.225:1", "link": "glossary.html#fls_6061r871qgbj", "checksum": "6ea581de0e89fdaadc05a0ae86ca201bfc22de10dc318b7531c9c98d9d50fa94"}, {"id": "fls_idykxuil845x", "number": "B.225:2", "link": "glossary.html#fls_idykxuil845x", "checksum": "c24eb2fc0386b3b65f293e81f359cb57b7cb3399b2399e8f7ee535883ff24067"}], "informational": false}, {"id": "fls_8qll14wfxxnn", "number": "B.226", "title": "field list", "link": "glossary.html#field-list", "paragraphs": [{"id": "fls_xmzsrxmc9cni", "number": "B.226:1", "link": "glossary.html#fls_xmzsrxmc9cni", "checksum": "21a7bf487e0cbca6939de60c7b241cfd40ac04774db6e17aa40bc28c1f614bbe"}], "informational": false}, {"id": "fls_blzwxp6h62ss", "number": "B.227", "title": "field resolution", "link": "glossary.html#field-resolution", "paragraphs": [{"id": "fls_nl8uuclgxfgl", "number": "B.227:1", "link": "glossary.html#fls_nl8uuclgxfgl", "checksum": "7f7d5a7adec0ac5efbc2e056b4b3d91501d12bd9539da3e419c9901267f17746"}], "informational": false}, {"id": "fls_kqbata8slp1y", "number": "B.228", "title": "field selector", "link": "glossary.html#field-selector", "paragraphs": [{"id": "fls_aq1yg9cp1uof", "number": "B.228:1", "link": "glossary.html#fls_aq1yg9cp1uof", "checksum": "6f5e77498cf368104bd5e6b79a788a56a83d1e0fda0d0b0db540240558568a73"}, {"id": "fls_x8swot8e1j32", "number": "B.228:2", "link": "glossary.html#fls_x8swot8e1j32", "checksum": "20fbd9422ad2ab3b9ff7214c70b3a797bf9fc1ad0a178b5e6982bf3b8e98bcc6"}], "informational": false}, {"id": "fls_mj9mmkar8c6f", "number": "B.229", "title": "final match arm", "link": "glossary.html#final-match-arm", "paragraphs": [{"id": "fls_btoz8jioisx9", "number": "B.229:1", "link": "glossary.html#fls_btoz8jioisx9", "checksum": "8dda539d2ad7cf2893d067c24601d21bdbaa2ee260f478edfcafb6ec7c8bb071"}, {"id": "fls_v7ockjwbeel1", "number": "B.229:2", "link": "glossary.html#fls_v7ockjwbeel1", "checksum": "50cc6b77eb8387eed43d394c94eca8f977f1c8f31f1511a854efa76754d6fc9b"}], "informational": false}, {"id": "fls_rljxa45tleq3", "number": "B.230", "title": "fixed sized type", "link": "glossary.html#fixed-sized-type", "paragraphs": [{"id": "fls_eadiywl20jo4", "number": "B.230:1", "link": "glossary.html#fls_eadiywl20jo4", "checksum": "bbca6811533fe8c8d6843f6857396ab3b9930dfb2a60fb52b0c690b307e624cb"}], "informational": false}, {"id": "fls_achdyw3nbme3", "number": "B.231", "title": "float literal", "link": "glossary.html#float-literal", "paragraphs": [{"id": "fls_53o8dio9vpjh", "number": "B.231:1", "link": "glossary.html#fls_53o8dio9vpjh", "checksum": "06efac29168db9a25d7fee7d6b86492749c226138f468ae353a9ac03190201af"}, {"id": "fls_hqeaakhsqxok", "number": "B.231:2", "link": "glossary.html#fls_hqeaakhsqxok", "checksum": "db1ddaa36db2cf43c9125478d43b593c7f65cfa74d559cd15e8592365b5842d3"}], "informational": false}, {"id": "fls_wgylj1n4wrqe", "number": "B.232", "title": "float suffix", "link": "glossary.html#float-suffix", "paragraphs": [{"id": "fls_vka2z7frq9j8", "number": "B.232:1", "link": "glossary.html#fls_vka2z7frq9j8", "checksum": "3e414c6c06ebf1d4bd050146606b3c7dc85672a4e5d2ac904187b5934430937b"}, {"id": "fls_2k1ddqhsgxqk", "number": "B.232:2", "link": "glossary.html#fls_2k1ddqhsgxqk", "checksum": "6d8233757d744aaf3a1bd9b1d0c8c2c913808b7d5409b6e869c29b8691106df5"}], "informational": false}, {"id": "fls_k32g8cd9friu", "number": "B.233", "title": "floating-point type", "link": "glossary.html#floating-point-type", "paragraphs": [{"id": "fls_1w5yjiffah1u", "number": "B.233:1", "link": "glossary.html#fls_1w5yjiffah1u", "checksum": "b3a191d6ffee78ef311314020e7f5651797562cc91bfe41e5137cc16ae46643f"}], "informational": false}, {"id": "fls_8ih3gh6hoy78", "number": "B.234", "title": "floating-point type variable", "link": "glossary.html#floating-point-type-variable", "paragraphs": [{"id": "fls_ls41emhkrxdi", "number": "B.234:1", "link": "glossary.html#fls_ls41emhkrxdi", "checksum": "0b0169518dc02e79a70eecaf957c5e77a6946f1bbeb52340ee1d24312217adb2"}], "informational": false}, {"id": "fls_ne6swuvh7x68", "number": "B.235", "title": "floating-point value", "link": "glossary.html#floating-point-value", "paragraphs": [{"id": "fls_rx8cvwplvel5", "number": "B.235:1", "link": "glossary.html#fls_rx8cvwplvel5", "checksum": "53ed5d1d50fa3ef7c3d572b29e8289f4bdd8d6fcd84c919bac40b59de11882b9"}], "informational": false}, {"id": "fls_dwnvkq8n94h1", "number": "B.236", "title": "for loop", "link": "glossary.html#for-loop", "paragraphs": [{"id": "fls_gmhh56arsbw8", "number": "B.236:1", "link": "glossary.html#fls_gmhh56arsbw8", "checksum": "0f0c08dd04836b63bdec523a9c3bb19ebc114e8d51c8677928bfd4ee009e9e04"}], "informational": false}, {"id": "fls_vfkqbovqbw86", "number": "B.237", "title": "for loop expression", "link": "glossary.html#for-loop-expression", "paragraphs": [{"id": "fls_f0gp7qxoc4o4", "number": "B.237:1", "link": "glossary.html#fls_f0gp7qxoc4o4", "checksum": "07c86728198c5a1ea89ef651d47a91782d9fb08d35305b48637ef644a38df6f8"}, {"id": "fls_yn4d35pvmn87", "number": "B.237:2", "link": "glossary.html#fls_yn4d35pvmn87", "checksum": "2b1d39b7d22bec5da3867d756acb182dcbbee25d3a7ed6e515fdd2f22d580798"}], "informational": false}, {"id": "fls_fo7vyxs4l3yh", "number": "B.238", "title": "Foreign Function Interface", "link": "glossary.html#foreign-function-interface", "paragraphs": [{"id": "fls_240yj1kym1kh", "number": "B.238:1", "link": "glossary.html#fls_240yj1kym1kh", "checksum": "681928198e0928564ec0969507a905e845bafd18a168bf4489d79b2819c3e04e"}], "informational": false}, {"id": "fls_pi7j0t7h1y86", "number": "B.239", "title": "fragment specifier", "link": "glossary.html#fragment-specifier", "paragraphs": [{"id": "fls_6lhwep7ulpr0", "number": "B.239:1", "link": "glossary.html#fls_6lhwep7ulpr0", "checksum": "3a6ce2a8af500a647812693f27feae2ced85a925221bd4a25648464e9a9af16e"}, {"id": "fls_drfn9yqrihgx", "number": "B.239:2", "link": "glossary.html#fls_drfn9yqrihgx", "checksum": "bf995029633a5decb43fe87b6fd87e5818d990f5e31a4a0aa5033acda9342593"}], "informational": false}, {"id": "fls_twp1ple8m83k", "number": "B.240", "title": "full range expression", "link": "glossary.html#full-range-expression", "paragraphs": [{"id": "fls_nib9uoirjmqa", "number": "B.240:1", "link": "glossary.html#fls_nib9uoirjmqa", "checksum": "94f184828cfb74ad979cefe3d5cc902b382fcc51d88514c9298ed809d020ecd5"}], "informational": false}, {"id": "fls_yllg093syzdi", "number": "B.241", "title": "function", "link": "glossary.html#function", "paragraphs": [{"id": "fls_ni14pcm4ap9l", "number": "B.241:1", "link": "glossary.html#fls_ni14pcm4ap9l", "checksum": "5c28543992747cf3016899ab4858992b7bdff460617421566312be5778641a7c"}, {"id": "fls_hn01vvw2fx9m", "number": "B.241:2", "link": "glossary.html#fls_hn01vvw2fx9m", "checksum": "53b50ddb978cccc5c65f5d3f449deba71832a75327e0b188c8c770c11e20f24c"}], "informational": false}, {"id": "fls_vjgkg8kfi93", "number": "B.242", "title": "function body", "link": "glossary.html#function-body", "paragraphs": [{"id": "fls_y5ha4123alik", "number": "B.242:1", "link": "glossary.html#fls_y5ha4123alik", "checksum": "c3b3eae235cc1c9f0a27a1d9906078833ed55916703a21a55f985b8977209229"}, {"id": "fls_r0g0i730x6x4", "number": "B.242:2", "link": "glossary.html#fls_r0g0i730x6x4", "checksum": "c566b79870e5f9c505e4fd3f3e6a197a511a54cd4ea1e637c8a2b86501c196fd"}], "informational": false}, {"id": "fls_ayuia853po0a", "number": "B.243", "title": "function item type", "link": "glossary.html#function-item-type", "paragraphs": [{"id": "fls_rfvfo8x42dh8", "number": "B.243:1", "link": "glossary.html#fls_rfvfo8x42dh8", "checksum": "6d6ae7e0c3e4854ba3379d1ae1c611d3834bea80fca0669e9d3800e7c7907b3d"}], "informational": false}, {"id": "fls_wmae58yv1jow", "number": "B.244", "title": "function lifetime elision", "link": "glossary.html#function-lifetime-elision", "paragraphs": [{"id": "fls_tzmmrhua1s8k", "number": "B.244:1", "link": "glossary.html#fls_tzmmrhua1s8k", "checksum": "fc1ac2f069e50f7e6fdfc8902bdef8cd1c57bdfcbb98d2e23c6286b99d7d1286"}], "informational": false}, {"id": "fls_xn800gcjnln1", "number": "B.245", "title": "function parameter", "link": "glossary.html#function-parameter", "paragraphs": [{"id": "fls_2feq1ky9pla1", "number": "B.245:1", "link": "glossary.html#fls_2feq1ky9pla1", "checksum": "0bd12e92ef99aa4986574399b441b60d9caca17812328174744bea656a030c78"}, {"id": "fls_4tf20svi3rjx", "number": "B.245:2", "link": "glossary.html#fls_4tf20svi3rjx", "checksum": "163d688b809a2663e24823d2a6568ef204b5339d8e74747f19ce6eb09c10d110"}], "informational": false}, {"id": "fls_fqwzlg78k503", "number": "B.246", "title": "function pointer type", "link": "glossary.html#function-pointer-type", "paragraphs": [{"id": "fls_lcawg25xhblx", "number": "B.246:1", "link": "glossary.html#fls_lcawg25xhblx", "checksum": "7d7eed569429fd517f1fce67b5b7a422962aa3ff39f90d59de73a32ffaa4234f"}, {"id": "fls_t50umpk5abjy", "number": "B.246:2", "link": "glossary.html#fls_t50umpk5abjy", "checksum": "7ccbe9f141a91aba24cedf20dd1ffc8e228367397abdb36abfcfd52e10540df9"}], "informational": false}, {"id": "fls_v3v6k4s5uhif", "number": "B.247", "title": "function pointer type parameter", "link": "glossary.html#function-pointer-type-parameter", "paragraphs": [{"id": "fls_nf1k90jjwq2k", "number": "B.247:1", "link": "glossary.html#fls_nf1k90jjwq2k", "checksum": "b9c9d84e092221ab9de5d174d25907e392c35ba623e2ab0a233c4168f9e22538"}, {"id": "fls_vvy6qogy0xnb", "number": "B.247:2", "link": "glossary.html#fls_vvy6qogy0xnb", "checksum": "41d1f34096a384ac1c0f9516ef501de61ecdfa01ed47dd0fc5c86e203f7976e3"}], "informational": false}, {"id": "fls_2uvom1x42dcs", "number": "B.248", "title": "function qualifier", "link": "glossary.html#function-qualifier", "paragraphs": [{"id": "fls_8cux22275v8r", "number": "B.248:1", "link": "glossary.html#fls_8cux22275v8r", "checksum": "2fc4c501b4e947027e4d2ed82a4a4c8caa514b2e573f8262bf5be48016afed7d"}, {"id": "fls_3td9tztnj2jq", "number": "B.248:2", "link": "glossary.html#fls_3td9tztnj2jq", "checksum": "bc5d7583e1784a90ec21f1733506c1843a5248443ca157cd50701cf49c92e25f"}], "informational": false}, {"id": "fls_hz3zunp8lrfl", "number": "B.249", "title": "function signature", "link": "glossary.html#function-signature", "paragraphs": [{"id": "fls_ndld48kg6o8d", "number": "B.249:1", "link": "glossary.html#fls_ndld48kg6o8d", "checksum": "1f4a476c4f72be9e1e093d930aa7398eb5c3fda0259dbb38265f6d175b4ed9e0"}], "informational": false}, {"id": "fls_yo2x1llt9ejy", "number": "B.250", "title": "function type", "link": "glossary.html#function-type", "paragraphs": [{"id": "fls_4e19116glgtv", "number": "B.250:1", "link": "glossary.html#fls_4e19116glgtv", "checksum": "b5903cd60c3ce2cce0dd72ca2bf7615e73a2053748d9a33135a7e0fedcedc5b1"}], "informational": false}, {"id": "fls_gzybxk1gosm6", "number": "B.251", "title": "function-like macro", "link": "glossary.html#function-like-macro", "paragraphs": [{"id": "fls_psnab9cuq4bu", "number": "B.251:1", "link": "glossary.html#fls_psnab9cuq4bu", "checksum": "02272347c92241787fa221d25fb77f64ca8e63fcc9e396e71d21b095aba543aa"}], "informational": false}, {"id": "fls_ofmoua3eftuc", "number": "B.252", "title": "fundamental", "link": "glossary.html#fundamental", "paragraphs": [{"id": "fls_e0drd4nte0up", "number": "B.252:1", "link": "glossary.html#fls_e0drd4nte0up", "checksum": "3e8a13071fd084c96974f8a5de9984263fa635ca17aeee18047cdd285979738c"}], "informational": false}, {"id": "fls_yxzpexco8ag3", "number": "B.253", "title": "future", "link": "glossary.html#future", "paragraphs": [{"id": "fls_pvigospl4n3g", "number": "B.253:1", "link": "glossary.html#fls_pvigospl4n3g", "checksum": "ce5e0aadc741fd4469dd97c72c8671fd422861937d4991d94ad6e239657ef0ba"}], "informational": false}, {"id": "fls_dvk8ccb46abk", "number": "B.254", "title": "future operand", "link": "glossary.html#future-operand", "paragraphs": [{"id": "fls_fold1inh5jev", "number": "B.254:1", "link": "glossary.html#fls_fold1inh5jev", "checksum": "0a5a17f74d7b815ad249fb6b287e38a342ed4d6f5334a69d94da1ffc0abc530b"}, {"id": "fls_tbfpowv90u5w", "number": "B.254:2", "link": "glossary.html#fls_tbfpowv90u5w", "checksum": "ec1dd5600e88fe2e8da61bbdd55de9991ca751293cb9704bc7025dfd1c8ccd0f"}], "informational": false}, {"id": "fls_j1cyhud0h65t", "number": "B.255", "title": "generic argument", "link": "glossary.html#generic-argument", "paragraphs": [{"id": "fls_meimxi20p51a", "number": "B.255:1", "link": "glossary.html#fls_meimxi20p51a", "checksum": "736d554de2f9d8fce1817e9523ce08f8065b3f8b6ac72016bbf47ac44b6c1438"}, {"id": "fls_8bvdmdgbu17l", "number": "B.255:2", "link": "glossary.html#fls_8bvdmdgbu17l", "checksum": "130dee264ac50890f47cb9e972b493ecdb9f225ae5a2b82cd0536c39dc5c5d93"}], "informational": false}, {"id": "fls_nooyixmnv8ps", "number": "B.256", "title": "generic associated type", "link": "glossary.html#generic-associated-type", "paragraphs": [{"id": "fls_o4wckpzpmree", "number": "B.256:1", "link": "glossary.html#fls_o4wckpzpmree", "checksum": "d43c09b39e1107251b36161aa1bf6fc7f8cbd51920170fe4190185c45e5ae52b"}], "informational": false}, {"id": "fls_3ufg0nk5fyq6", "number": "B.257", "title": "generic conformance", "link": "glossary.html#generic-conformance", "paragraphs": [{"id": "fls_pfvelnsnyslt", "number": "B.257:1", "link": "glossary.html#fls_pfvelnsnyslt", "checksum": "42163bde4b1383459b09aad7d92ab4b9cfdc32353f695d8536cdb59f1c5fbd95"}], "informational": false}, {"id": "fls_3tj3i83eoi36", "number": "B.258", "title": "generic enum", "link": "glossary.html#generic-enum", "paragraphs": [{"id": "fls_pnu8w26uexaq", "number": "B.258:1", "link": "glossary.html#fls_pnu8w26uexaq", "checksum": "5b6191b963653acc841076abc0a1fd34cdade133df03de39957369c3870dd8cc"}], "informational": false}, {"id": "fls_votx8gvy5utg", "number": "B.259", "title": "generic function", "link": "glossary.html#generic-function", "paragraphs": [{"id": "fls_rfkbc967d48h", "number": "B.259:1", "link": "glossary.html#fls_rfkbc967d48h", "checksum": "1d87c3d541744e3bedee83a148d3bdf7387c56a2cd0e9b9b69c5a30d1948e2f8"}], "informational": false}, {"id": "fls_1xjbrp376niw", "number": "B.260", "title": "generic implementation", "link": "glossary.html#generic-implementation", "paragraphs": [{"id": "fls_jic937ujpnar", "number": "B.260:1", "link": "glossary.html#fls_jic937ujpnar", "checksum": "99886b09b038dfb27460a4c8eb9ba652df2f78efdb272211650cd2efb1a63442"}], "informational": false}, {"id": "fls_s2syghgn74e2", "number": "B.261", "title": "generic parameter", "link": "glossary.html#generic-parameter", "paragraphs": [{"id": "fls_61e6br8jy1v2", "number": "B.261:1", "link": "glossary.html#fls_61e6br8jy1v2", "checksum": "ff1b277b0d720b2a289f5c673f4ba90904790fb8e9bcd97f274a230c874da418"}, {"id": "fls_jvxpoob39632", "number": "B.261:2", "link": "glossary.html#fls_jvxpoob39632", "checksum": "d5b0c77a7cd19a471bcd340f238b9296718a174c3a7a829f85b3e9151798656b"}], "informational": false}, {"id": "fls_czudkdaybfbf", "number": "B.262", "title": "generic parameter scope", "link": "glossary.html#generic-parameter-scope", "paragraphs": [{"id": "fls_e2ticijmlkj4", "number": "B.262:1", "link": "glossary.html#fls_e2ticijmlkj4", "checksum": "eab53bdc0e13f7bf21a0a570dcb149af43db736ef940abd17501e11cbf1b7fd3"}], "informational": false}, {"id": "fls_cgtu4v2vxvh", "number": "B.263", "title": "generic struct", "link": "glossary.html#generic-struct", "paragraphs": [{"id": "fls_mcb2mlklith8", "number": "B.263:1", "link": "glossary.html#fls_mcb2mlklith8", "checksum": "4304735790a85f815648c0d0d8cd5d133e2cc11591d0ffe637cd6652cba4cfdc"}], "informational": false}, {"id": "fls_vbebshuraoke", "number": "B.264", "title": "generic substitution", "link": "glossary.html#generic-substitution", "paragraphs": [{"id": "fls_led1nxfcd70k", "number": "B.264:1", "link": "glossary.html#fls_led1nxfcd70k", "checksum": "6b45899debb368b7d488dd6bb30d6d358d8f253903a603b63796e2365e461081"}], "informational": false}, {"id": "fls_hppo1v3ia4wu", "number": "B.265", "title": "generic trait", "link": "glossary.html#generic-trait", "paragraphs": [{"id": "fls_h515f11akr91", "number": "B.265:1", "link": "glossary.html#fls_h515f11akr91", "checksum": "c8dc27a3167f8ee447979f40d659a339ca0a96ff1d4b98483ebbdb18ecccb4f5"}], "informational": false}, {"id": "fls_3ss6jdgtf1of", "number": "B.266", "title": "generic type", "link": "glossary.html#generic-type", "paragraphs": [{"id": "fls_zn2pismzotry", "number": "B.266:1", "link": "glossary.html#fls_zn2pismzotry", "checksum": "613de2ab41662f6927a0f6152c783918516dc107f7c016e0d7aaf41a1c93e61d"}], "informational": false}, {"id": "fls_18ow0q8at1pi", "number": "B.267", "title": "generic type alias", "link": "glossary.html#generic-type-alias", "paragraphs": [{"id": "fls_zgxsqq4vu7e3", "number": "B.267:1", "link": "glossary.html#fls_zgxsqq4vu7e3", "checksum": "90984bbf1a3d3042a55769638cf73e49289240f1be75eb0a7f16e42cf03d58e6"}], "informational": false}, {"id": "fls_xn9mla1vm6iv", "number": "B.268", "title": "generic union", "link": "glossary.html#generic-union", "paragraphs": [{"id": "fls_93rxr0yjx1e7", "number": "B.268:1", "link": "glossary.html#fls_93rxr0yjx1e7", "checksum": "3fa122b35c9fb793d5538906271b19213fae752dd74422b25292c38de9c8ae36"}], "informational": false}, {"id": "fls_euukteybsbi", "number": "B.269", "title": "glob import", "link": "glossary.html#glob-import", "paragraphs": [{"id": "fls_90qsib7g8e9j", "number": "B.269:1", "link": "glossary.html#fls_90qsib7g8e9j", "checksum": "a075626ce61b92791f915ef3452f132cb80962ba2dfa44b31fbfaaa346261da1"}, {"id": "fls_n4plc55cij0j", "number": "B.269:2", "link": "glossary.html#fls_n4plc55cij0j", "checksum": "4fb7af6ee092be121251a4dd89a945241ed4accd51b3de371d37f67f2305ce11"}], "informational": false}, {"id": "fls_g6g8c58bilen", "number": "B.270", "title": "global path", "link": "glossary.html#global-path", "paragraphs": [{"id": "fls_msg8jw9momfw", "number": "B.270:1", "link": "glossary.html#fls_msg8jw9momfw", "checksum": "f9a2cc5b725c1e023ea5fd9f3626921d41bbd0a58077d2f800c1be6cd7248afb"}], "informational": false}, {"id": "fls_hy1clqvaewnp", "number": "B.271", "title": "global type variable", "link": "glossary.html#global-type-variable", "paragraphs": [{"id": "fls_pvt4nayq006s", "number": "B.271:1", "link": "glossary.html#fls_pvt4nayq006s", "checksum": "165fb35c44653ba49d2f2e4415721ff5f0d8d9f1776cf1ae51129072236dd04d"}], "informational": false}, {"id": "fls_g4n20dy3utzy", "number": "B.272", "title": "greater-than expression", "link": "glossary.html#greater-than-expression", "paragraphs": [{"id": "fls_j7x5qii6rhwj", "number": "B.272:1", "link": "glossary.html#fls_j7x5qii6rhwj", "checksum": "2323d6f17ffd54bf48e1075fbb8abc17d6d016713e50bf8ecd55376beb00c8eb"}, {"id": "fls_yni50ba3ufvs", "number": "B.272:2", "link": "glossary.html#fls_yni50ba3ufvs", "checksum": "a26e78c6b359a455c1b1367ce85ade173168db2f195190556f9b984b2c7c19cc"}], "informational": false}, {"id": "fls_mxz589rq4hiy", "number": "B.273", "title": "greater-than-or-equals expression", "link": "glossary.html#greater-than-or-equals-expression", "paragraphs": [{"id": "fls_wvspqc2otn6v", "number": "B.273:1", "link": "glossary.html#fls_wvspqc2otn6v", "checksum": "bbb4333e37c2bd9dc9424199392d6034d9e646bed0408b589c850e7a71e57e17"}, {"id": "fls_9azbvj9xux6y", "number": "B.273:2", "link": "glossary.html#fls_9azbvj9xux6y", "checksum": "569a1bb8527da83c0475270047ca9e1216b99851534ff3e4fbfd7f4ebcf60962"}], "informational": false}, {"id": "fls_fquvoglio1jz", "number": "B.274", "title": "half-open range pattern", "link": "glossary.html#half-open-range-pattern", "paragraphs": [{"id": "fls_tymjispfgp7u", "number": "B.274:1", "link": "glossary.html#fls_tymjispfgp7u", "checksum": "c6ad5b5bccc30ef2ad2f4c5406ba7447c10b1909de1ec7cd91cd60348c1f22a0"}, {"id": "fls_evm3nxwswk00", "number": "B.274:2", "link": "glossary.html#fls_evm3nxwswk00", "checksum": "c2eadb77b73a1e2b0fb621cac3a7fe04f131b23aafc0d9104b43002d44a62860"}], "informational": false}, {"id": "fls_5uiij8eqln5g", "number": "B.275", "title": "hexadecimal literal", "link": "glossary.html#hexadecimal-literal", "paragraphs": [{"id": "fls_8b6njsi8g68i", "number": "B.275:1", "link": "glossary.html#fls_8b6njsi8g68i", "checksum": "3861fe603625e26ae227e088c785b902e544670dd7f4b1c4b5e84044d6824513"}, {"id": "fls_vssa4z5wcgaa", "number": "B.275:2", "link": "glossary.html#fls_vssa4z5wcgaa", "checksum": "0f612fb6695af3e2a2e586f3cec6ce341243c67a1e60bf6c38b7c22cf663cf8d"}], "informational": false}, {"id": "fls_h87i5nbeuxky", "number": "B.276", "title": "higher-ranked trait bound", "link": "glossary.html#higher-ranked-trait-bound", "paragraphs": [{"id": "fls_lpyc4omcthv", "number": "B.276:1", "link": "glossary.html#fls_lpyc4omcthv", "checksum": "c07802b539d4a11ab3c780e6d69949fdea05f21d55993a058e58a09db21a0e8e"}, {"id": "fls_m3nrsdvxxg6j", "number": "B.276:2", "link": "glossary.html#fls_m3nrsdvxxg6j", "checksum": "1b0ef38cc98efb4a5cdbd2386ad64931d6c6620c8bce7d92d8e637b7c4f207f7"}], "informational": false}, {"id": "fls_gummjhemmlvf", "number": "B.277", "title": "hygiene", "link": "glossary.html#hygiene", "paragraphs": [{"id": "fls_aqg0mqaqzqkz", "number": "B.277:1", "link": "glossary.html#fls_aqg0mqaqzqkz", "checksum": "1adecc92d574319793d4e3c6a00da4b72aeb0ad6aef28988097e7cc55325d5cc"}], "informational": false}, {"id": "fls_95h0awz7xx6u", "number": "B.278", "title": "hygienic", "link": "glossary.html#hygienic", "paragraphs": [{"id": "fls_hidddaknh5ms", "number": "B.278:1", "link": "glossary.html#fls_hidddaknh5ms", "checksum": "d688a125364a2ac22431ae8cfdf110d5c8cd751b3cc4df7d678a6b994434cf18"}], "informational": false}, {"id": "fls_obiv2a6ywfhh", "number": "B.279", "title": "i8", "link": "glossary.html#i8", "paragraphs": [{"id": "fls_1y9ulxnz8qba", "number": "B.279:1", "link": "glossary.html#fls_1y9ulxnz8qba", "checksum": "9d1fdd645cfc05a9af6785d9a5c076c89a63c5fd84abc2e722d00b9bab65cd06"}], "informational": false}, {"id": "fls_rvcjp656gzlm", "number": "B.280", "title": "i16", "link": "glossary.html#i16", "paragraphs": [{"id": "fls_ci9jl55wxwdg", "number": "B.280:1", "link": "glossary.html#fls_ci9jl55wxwdg", "checksum": "6d4d94fea32df589eaacfa86d0bf559cdd03aff3bbacafc52ca2b2982d53c292"}], "informational": false}, {"id": "fls_l1h9g4ntf3c", "number": "B.281", "title": "i32", "link": "glossary.html#i32", "paragraphs": [{"id": "fls_yh8wzhhso4xc", "number": "B.281:1", "link": "glossary.html#fls_yh8wzhhso4xc", "checksum": "4530c9b71b1cb42c167ea51cf676481834cfe9d38a19e08dbf4a7b7127fd06a9"}], "informational": false}, {"id": "fls_tid10guzn9sq", "number": "B.282", "title": "i64", "link": "glossary.html#i64", "paragraphs": [{"id": "fls_4bpatxp8yelv", "number": "B.282:1", "link": "glossary.html#fls_4bpatxp8yelv", "checksum": "e03f0863b544f98fa018ab3a49a6c73e51eb94090ce03365e26b70897b68966b"}], "informational": false}, {"id": "fls_py2whbcrndmz", "number": "B.283", "title": "i128", "link": "glossary.html#i128", "paragraphs": [{"id": "fls_p75kpbtonb8z", "number": "B.283:1", "link": "glossary.html#fls_p75kpbtonb8z", "checksum": "09e703a738c07f027618ed4019b3f7d984f99988680a17ebe8393314b3e649a2"}], "informational": false}, {"id": "fls_kpsyz8yopova", "number": "B.284", "title": "identifier", "link": "glossary.html#fls-kpsyz8yopova", "paragraphs": [{"id": "fls_14zc5bcm9d8o", "number": "B.284:1", "link": "glossary.html#fls_14zc5bcm9d8o", "checksum": "4c58f5e630a135ce5d00aa99677ca1f3c1c1d1d507b70c61da586534cd4274ad"}, {"id": "fls_oddu2wzhczvq", "number": "B.284:2", "link": "glossary.html#fls_oddu2wzhczvq", "checksum": "d9bbd2bcbc1b29d6990db2751d2c8ec5554679823d90a104009527caab464c60"}], "informational": false}, {"id": "fls_1g9xxx8s498u", "number": "B.285", "title": "identifier pattern", "link": "glossary.html#fls-1g9xxx8s498u", "paragraphs": [{"id": "fls_f2va67gvpqe0", "number": "B.285:1", "link": "glossary.html#fls_f2va67gvpqe0", "checksum": "f9193acb1cc76526a453f0c55fd742d17ed18c557e69b46b6929f3b96d678e08"}, {"id": "fls_nxa1gvqgitgk", "number": "B.285:2", "link": "glossary.html#fls_nxa1gvqgitgk", "checksum": "7d8882b3c5873c79814d36415d2ca65a42e0a4a0fc909e1b36254f9f42b5972d"}], "informational": false}, {"id": "fls_al9gtcy5b5og", "number": "B.286", "title": "if expression", "link": "glossary.html#if-expression", "paragraphs": [{"id": "fls_rk0661mtdvsi", "number": "B.286:1", "link": "glossary.html#fls_rk0661mtdvsi", "checksum": "2ab916551e93157504f23ce892fb54b04f2190e8453446577de8eff8c82c4e4e"}, {"id": "fls_gdsufx2ns8bl", "number": "B.286:2", "link": "glossary.html#fls_gdsufx2ns8bl", "checksum": "3afcb60e8d6ff17aabfa4ede8a56759035e07896860b66e94c83834c9d1559a5"}], "informational": false}, {"id": "fls_j9wb2wtqp5u8", "number": "B.287", "title": "if let expression", "link": "glossary.html#if-let-expression", "paragraphs": [{"id": "fls_ky6ng7jy1g6z", "number": "B.287:1", "link": "glossary.html#fls_ky6ng7jy1g6z", "checksum": "f38d300b5190af9d2bf987bf58a9ff4acb9e1b5e7557b481dd1661734cc633ef"}, {"id": "fls_kczg3c6n3psu", "number": "B.287:2", "link": "glossary.html#fls_kczg3c6n3psu", "checksum": "3fe47784fcdb9463f3257d31bc2aaf57366cb2ee3ce006feb2bf74de65794d34"}], "informational": false}, {"id": "fls_xiocbknerufq", "number": "B.288", "title": "immutable", "link": "glossary.html#immutable", "paragraphs": [{"id": "fls_sttdfynyqr5h", "number": "B.288:1", "link": "glossary.html#fls_sttdfynyqr5h", "checksum": "632ab475d4dae7cb9da62ac903b67ec38a3878fc8424a8be5deba55d3113fc88"}], "informational": false}, {"id": "fls_utucrvtzjhoc", "number": "B.289", "title": "immutable borrow", "link": "glossary.html#immutable-borrow", "paragraphs": [{"id": "fls_p0abqkiuk7y9", "number": "B.289:1", "link": "glossary.html#fls_p0abqkiuk7y9", "checksum": "d4e4d9f65baa42240dca1ac122c722615e701eb37a7ba059f97285657653814b"}], "informational": false}, {"id": "fls_pqunxp6io1n9", "number": "B.290", "title": "immutable borrow expression", "link": "glossary.html#immutable-borrow-expression", "paragraphs": [{"id": "fls_dojod5pg4r7l", "number": "B.290:1", "link": "glossary.html#fls_dojod5pg4r7l", "checksum": "5b7663754e6177578a2251558913f6dd5775aade2fc7ee2f91917af36d70f77a"}], "informational": false}, {"id": "fls_txqzfm77s4uj", "number": "B.291", "title": "immutable place expression", "link": "glossary.html#immutable-place-expression", "paragraphs": [{"id": "fls_mxbezjzbxw5z", "number": "B.291:1", "link": "glossary.html#fls_mxbezjzbxw5z", "checksum": "eabb95836b2650657826aa7377696f57bcab2d1bb7ea1e7384ad9158e7acc72c"}], "informational": false}, {"id": "fls_o0924m8msfia", "number": "B.292", "title": "immutable place expression context", "link": "glossary.html#immutable-place-expression-context", "paragraphs": [{"id": "fls_uvrq49dsoqgc", "number": "B.292:1", "link": "glossary.html#fls_uvrq49dsoqgc", "checksum": "36f5a2a7cb7c8f028e1e1bf034b09a8e7613d5a3b8ea49e2ae61843eccabd85c"}], "informational": false}, {"id": "fls_rghqkp3lsxeb", "number": "B.293", "title": "immutable raw pointer type", "link": "glossary.html#immutable-raw-pointer-type", "paragraphs": [{"id": "fls_2gzyitdxvmhb", "number": "B.293:1", "link": "glossary.html#fls_2gzyitdxvmhb", "checksum": "83f5a2b672e53fe08eee031615c3f89ecffe89afc3416f601a18f36a90731367"}], "informational": false}, {"id": "fls_bhx0l676dmgc", "number": "B.294", "title": "immutable reference", "link": "glossary.html#immutable-reference", "paragraphs": [{"id": "fls_u9kne5zfmhoe", "number": "B.294:1", "link": "glossary.html#fls_u9kne5zfmhoe", "checksum": "b35e434e8ad237e41c3d28687aa83b4f6d4999def9625eeaaf8e2e3df29fb85f"}], "informational": false}, {"id": "fls_my7jjwi0ncen", "number": "B.295", "title": "immutable static", "link": "glossary.html#immutable-static", "paragraphs": [{"id": "fls_eonlhz79ur3d", "number": "B.295:1", "link": "glossary.html#fls_eonlhz79ur3d", "checksum": "e2831db7b856046453f4995db74b051de22440de1c403e26a9a5e55ba934509f"}], "informational": false}, {"id": "fls_8xrhfwgep3nk", "number": "B.296", "title": "immutable variable", "link": "glossary.html#immutable-variable", "paragraphs": [{"id": "fls_sdg35i92taip", "number": "B.296:1", "link": "glossary.html#fls_sdg35i92taip", "checksum": "6d9af47108fcc60a5eb729ad404869e136420f19457d688764b06a4d08452fe3"}], "informational": false}, {"id": "fls_l9xtxpsujx4v", "number": "B.297", "title": "impl header lifetime elision", "link": "glossary.html#impl-header-lifetime-elision", "paragraphs": [{"id": "fls_pvygu85uayfb", "number": "B.297:1", "link": "glossary.html#fls_pvygu85uayfb", "checksum": "55e650e07e084e428755cc808409cde0621c2f13b1b9b6244598fc530f98469c"}], "informational": false}, {"id": "fls_l20o3hutbfpf", "number": "B.298", "title": "impl trait type", "link": "glossary.html#impl-trait-type", "paragraphs": [{"id": "fls_rdctgmnfncnd", "number": "B.298:1", "link": "glossary.html#fls_rdctgmnfncnd", "checksum": "7931b6e7d5c377792ef15fb79300f3388497e3e8c7810dec637e9dc255e9f6f8"}, {"id": "fls_704soar15v8v", "number": "B.298:2", "link": "glossary.html#fls_704soar15v8v", "checksum": "b912477106fbf6e67237a7afc70180f22d6949cac793f7269d3dc588f85b1285"}], "informational": false}, {"id": "fls_bj1u4k3akecp", "number": "B.299", "title": "implementation", "link": "glossary.html#implementation", "paragraphs": [{"id": "fls_pjulppit1r6", "number": "B.299:1", "link": "glossary.html#fls_pjulppit1r6", "checksum": "d5f1edf241d4ca54d5fa53cf9364cd88c384d455d007bae17959ec840068fae1"}, {"id": "fls_z4ij5skptoay", "number": "B.299:2", "link": "glossary.html#fls_z4ij5skptoay", "checksum": "c1d843e7f042cb52d05487dda6a49f0bb9cfc10d105c6771cea3cea0f49de5f6"}], "informational": false}, {"id": "fls_vofxuhcxpt6x", "number": "B.300", "title": "implementation body", "link": "glossary.html#implementation-body", "paragraphs": [{"id": "fls_1is30nv9myed", "number": "B.300:1", "link": "glossary.html#fls_1is30nv9myed", "checksum": "9a08ba4e86a953843e31807c4334ae9623c0ead8f54547bdac357699f68d1a2e"}, {"id": "fls_u75ihi53pnnp", "number": "B.300:2", "link": "glossary.html#fls_u75ihi53pnnp", "checksum": "0a52cd080aff1f1cd7ad1ad9177f02cb8d5f36e5ce5fe32f10a3cad1404decbe"}], "informational": false}, {"id": "fls_41glrzvxcov6", "number": "B.301", "title": "implementation coherence", "link": "glossary.html#implementation-coherence", "paragraphs": [{"id": "fls_hamkcuyt9hhi", "number": "B.301:1", "link": "glossary.html#fls_hamkcuyt9hhi", "checksum": "3757ea14c31cf63634ec59e653227f073e6a40b7323cdbb54ab99dc50cd80af9"}], "informational": false}, {"id": "fls_sbktva8bzgdx", "number": "B.302", "title": "implementation conformance", "link": "glossary.html#implementation-conformance", "paragraphs": [{"id": "fls_gpq4ep1ssyjr", "number": "B.302:1", "link": "glossary.html#fls_gpq4ep1ssyjr", "checksum": "20b30d1432f65190aec266223923b9ae631f2d56697e54aa56ac8c31028db9bb"}], "informational": false}, {"id": "fls_c0xxvivt8t1u", "number": "B.303", "title": "implemented trait", "link": "glossary.html#implemented-trait", "paragraphs": [{"id": "fls_7twlizi3v8cb", "number": "B.303:1", "link": "glossary.html#fls_7twlizi3v8cb", "checksum": "d9c7bbef1fecbfbd31504b1d7eb64e36b781317609b727780da0741a28fa9f15"}, {"id": "fls_2brvfx5wmvkf", "number": "B.303:2", "link": "glossary.html#fls_2brvfx5wmvkf", "checksum": "97be6c945e9883eee71a01f48988cf883ab4a0d22323c09fc9de2729bd23da3e"}], "informational": false}, {"id": "fls_ow4b5iqas115", "number": "B.304", "title": "implementing type", "link": "glossary.html#implementing-type", "paragraphs": [{"id": "fls_vs5ia3uupdcc", "number": "B.304:1", "link": "glossary.html#fls_vs5ia3uupdcc", "checksum": "02cc0234706c31a86a47fd94cab93bb791de5b17cb2dc5f4f72e167e3b0fd64e"}, {"id": "fls_9ixcwh6to74g", "number": "B.304:2", "link": "glossary.html#fls_9ixcwh6to74g", "checksum": "08847fa94d18afef03731ce343412b1051e405301832ada5b32a88b300da53d3"}], "informational": false}, {"id": "fls_wa7t6cqgjksd", "number": "B.305", "title": "implicit borrow", "link": "glossary.html#implicit-borrow", "paragraphs": [{"id": "fls_q2v9ejpcvtwg", "number": "B.305:1", "link": "glossary.html#fls_q2v9ejpcvtwg", "checksum": "f4e275119979fb25fc84cffb4199c7ecfd723065b02a9f214b0aa7585b98d22d"}], "informational": false}, {"id": "fls_i3ib9xp8h8ci", "number": "B.306", "title": "implicitly declared entity", "link": "glossary.html#implicitly-declared-entity", "paragraphs": [{"id": "fls_vqs1jd4nx3qr", "number": "B.306:1", "link": "glossary.html#fls_vqs1jd4nx3qr", "checksum": "8fdfe2ea488f3cbab513d24b7375b9867186ec7ba9c4b388e408d73a0fc70393"}], "informational": false}, {"id": "fls_43ccrg952l5i", "number": "B.307", "title": "implied bound", "link": "glossary.html#implied-bound", "paragraphs": [{"id": "fls_t77d8xwg1l9q", "number": "B.307:1", "link": "glossary.html#fls_t77d8xwg1l9q", "checksum": "0ebcccfd65ef3792b7782b5d1741c3338ea87200f1154be26a083159e34bebe3"}], "informational": false}, {"id": "fls_3lo8ygoyxxyf", "number": "B.308", "title": "in scope", "link": "glossary.html#in-scope", "paragraphs": [{"id": "fls_sy380geqvf2l", "number": "B.308:1", "link": "glossary.html#fls_sy380geqvf2l", "checksum": "68c60a5e7a429d7604becc9f0194dc4c69e00ef8a7ca92adbb98b5b2bbb9fb40"}], "informational": false}, {"id": "fls_nscfxu6huw6q", "number": "B.309", "title": "inclusive range pattern", "link": "glossary.html#inclusive-range-pattern", "paragraphs": [{"id": "fls_olfeuvwkosse", "number": "B.309:1", "link": "glossary.html#fls_olfeuvwkosse", "checksum": "8af3169cc4ca92e09ac9483d1b2174dee02599bc6d4350661d0ae42af0ec1c53"}, {"id": "fls_9bdxsn6nasjr", "number": "B.309:2", "link": "glossary.html#fls_9bdxsn6nasjr", "checksum": "23af911d2265b6503e087d8ec2ee433a5f8c6c3705edd93f7f9580c3427f5085"}], "informational": false}, {"id": "fls_j44ow2k5va3s", "number": "B.310", "title": "incomplete associated constant", "link": "glossary.html#incomplete-associated-constant", "paragraphs": [{"id": "fls_bq48gl84bul0", "number": "B.310:1", "link": "glossary.html#fls_bq48gl84bul0", "checksum": "01d66d4377546f60e45dd0edb773d268b64c890cc89c32eee444e6cb86942908"}], "informational": false}, {"id": "fls_ga2n4nbm1pkk", "number": "B.311", "title": "incomplete associated function", "link": "glossary.html#incomplete-associated-function", "paragraphs": [{"id": "fls_iboondra204w", "number": "B.311:1", "link": "glossary.html#fls_iboondra204w", "checksum": "1a6751720b534a1fec3990c20d85a28ec41690a7b0f4b678aebd48f3e6e6a449"}], "informational": false}, {"id": "fls_n99acc2tr9qm", "number": "B.312", "title": "incomplete associated type", "link": "glossary.html#incomplete-associated-type", "paragraphs": [{"id": "fls_tka0gth8rc9x", "number": "B.312:1", "link": "glossary.html#fls_tka0gth8rc9x", "checksum": "fedd0b77215d7f09e6f862a46948e20669c8df60afc1b1688fc0181106f5a843"}], "informational": false}, {"id": "fls_6tysvlg2ifr3", "number": "B.313", "title": "index expression", "link": "glossary.html#index-expression", "paragraphs": [{"id": "fls_1f7e9q8n431n", "number": "B.313:1", "link": "glossary.html#fls_1f7e9q8n431n", "checksum": "8b88615a9cfe8af953cc245d7d590467c9d194422a45dfd1545057bf85e9d271"}, {"id": "fls_xm2er7vuo07g", "number": "B.313:2", "link": "glossary.html#fls_xm2er7vuo07g", "checksum": "7274664572e3a91e633dcefdc1ebc57bed11ebd1bafae912ee3397ad8c6fc67d"}], "informational": false}, {"id": "fls_s0pnjkpjpu0i", "number": "B.314", "title": "indexable type", "link": "glossary.html#indexable-type", "paragraphs": [{"id": "fls_advgykzfvvus", "number": "B.314:1", "link": "glossary.html#fls_advgykzfvvus", "checksum": "64fc80e9c847ca30f9ed4e90d495037aa47edc264ade011f4e87acfb61f3d2a1"}], "informational": false}, {"id": "fls_qs654p61ivpx", "number": "B.315", "title": "indexed deconstructor", "link": "glossary.html#indexed-deconstructor", "paragraphs": [{"id": "fls_q7eta38vw0ig", "number": "B.315:1", "link": "glossary.html#fls_q7eta38vw0ig", "checksum": "f721553a0969ab49b8c54cf4ef0879743c6e265719fa649537c957efde963c2b"}, {"id": "fls_gryv4audvann", "number": "B.315:2", "link": "glossary.html#fls_gryv4audvann", "checksum": "8ee82d90dc22dd71aa9e462acc2e3dea170eb333a773e9e1c5b4418cb11387c6"}], "informational": false}, {"id": "fls_bu46dg60o8us", "number": "B.316", "title": "indexed field selector", "link": "glossary.html#indexed-field-selector", "paragraphs": [{"id": "fls_u6mh5yediub", "number": "B.316:1", "link": "glossary.html#fls_u6mh5yediub", "checksum": "0d2ead638e9a356f80ccce02f5612506d193796af22e16f0b4678f91ea1ad7d5"}, {"id": "fls_wbbyf2szc8a7", "number": "B.316:2", "link": "glossary.html#fls_wbbyf2szc8a7", "checksum": "1ccb337148a46dd78d35fe6f6c7881b848efea711d24fb0001b9a2c7bd181e70"}], "informational": false}, {"id": "fls_rua2ni3p9qz2", "number": "B.317", "title": "indexed initializer", "link": "glossary.html#indexed-initializer", "paragraphs": [{"id": "fls_oonqolgqyrq1", "number": "B.317:1", "link": "glossary.html#fls_oonqolgqyrq1", "checksum": "079764e5ee5fc13fca08851efe8ac52f7f0adb182cd20854e59103c980a1d34e"}, {"id": "fls_werlw98l3ra0", "number": "B.317:2", "link": "glossary.html#fls_werlw98l3ra0", "checksum": "5d72b8433fcb7e95a3123f2c11226e6c4ec8a8cbf8f2262dd16b2b117b965a20"}], "informational": false}, {"id": "fls_irp9ive4e66r", "number": "B.318", "title": "indexed operand", "link": "glossary.html#indexed-operand", "paragraphs": [{"id": "fls_dvmm47wnl33e", "number": "B.318:1", "link": "glossary.html#fls_dvmm47wnl33e", "checksum": "ec6be8a5604774a3e5bed24541db2021edcb4c37c8adde52427628f14df9f59f"}, {"id": "fls_je8eh3a02riq", "number": "B.318:2", "link": "glossary.html#fls_je8eh3a02riq", "checksum": "3ecd68423df5567eff9272941c95598c21836dcf8039b520091f17f513497500"}], "informational": false}, {"id": "fls_a350zwl1or4g", "number": "B.319", "title": "indexing operand", "link": "glossary.html#indexing-operand", "paragraphs": [{"id": "fls_ipw4tfrserbu", "number": "B.319:1", "link": "glossary.html#fls_ipw4tfrserbu", "checksum": "948d0eadfd2265ab8a0fc5d4168997cc11faadb15b2c80b4a15e976df49e6edc"}, {"id": "fls_t2j8vzlrlvb0", "number": "B.319:2", "link": "glossary.html#fls_t2j8vzlrlvb0", "checksum": "a4633defee2e82a6b30d88c4e5b662b393be8803ac0ab49c9910e963897753cc"}], "informational": false}, {"id": "fls_k9kuxgte6vxn", "number": "B.320", "title": "indirection type", "link": "glossary.html#indirection-type", "paragraphs": [{"id": "fls_8so1phpdjyk8", "number": "B.320:1", "link": "glossary.html#fls_8so1phpdjyk8", "checksum": "691ad8ae1fae0c19179e0395225b721b3d0fae6f4ccaa8367cf8e0a5c7088702"}], "informational": false}, {"id": "fls_gccnknktzp7g", "number": "B.321", "title": "inert attribute", "link": "glossary.html#inert-attribute", "paragraphs": [{"id": "fls_o4e3tyjz7l1h", "number": "B.321:1", "link": "glossary.html#fls_o4e3tyjz7l1h", "checksum": "d397cdc0022307b5f8af5c6b786f066040a4960ca38e396552063c8b054ee2b1"}], "informational": false}, {"id": "fls_z5593p7wfab", "number": "B.322", "title": "inferred type", "link": "glossary.html#inferred-type", "paragraphs": [{"id": "fls_9xgfexeqr4ed", "number": "B.322:1", "link": "glossary.html#fls_9xgfexeqr4ed", "checksum": "3f6324a794a4f11f447669e49a7d2de50985ca75c7f41a95752e2a401716f9fd"}, {"id": "fls_z2p8378sd93z", "number": "B.322:2", "link": "glossary.html#fls_z2p8378sd93z", "checksum": "40e2a603cc68714be173cd13bde5504baff7806a1690106ed1792b9d52ac887e"}], "informational": false}, {"id": "fls_kg9aeyrw822m", "number": "B.323", "title": "infinite loop", "link": "glossary.html#infinite-loop", "paragraphs": [{"id": "fls_xpm53i3rkuu0", "number": "B.323:1", "link": "glossary.html#fls_xpm53i3rkuu0", "checksum": "f026c959276b062252cc809d9f02fe64736c47c245a6ca2cc4a22368a29be2e4"}], "informational": false}, {"id": "fls_o2eei5aqgds6", "number": "B.324", "title": "infinite loop expression", "link": "glossary.html#infinite-loop-expression", "paragraphs": [{"id": "fls_mvplpa4t1f2p", "number": "B.324:1", "link": "glossary.html#fls_mvplpa4t1f2p", "checksum": "9a1bfa79261122c06a3531b037978037761270857d040ecbe33014e2eeada22a"}, {"id": "fls_2gipk6b62hme", "number": "B.324:2", "link": "glossary.html#fls_2gipk6b62hme", "checksum": "24d3acae7cdad8f22cace7c4cae98ee055f95867917e0436b007566b2b743485"}], "informational": false}, {"id": "fls_o57p4yhjci61", "number": "B.325", "title": "inherent implementation", "link": "glossary.html#inherent-implementation", "paragraphs": [{"id": "fls_6fpicw8ss4h3", "number": "B.325:1", "link": "glossary.html#fls_6fpicw8ss4h3", "checksum": "8c4b2ca5e676610d88ff41d9ff91683d41c450d8939a0c6a952de2734dee2146"}, {"id": "fls_s8zjk7hms1o0", "number": "B.325:2", "link": "glossary.html#fls_s8zjk7hms1o0", "checksum": "e370142d7a0213e6db347cfda0d76f66147054769f71d2b5d115f94fa99bfab9"}], "informational": false}, {"id": "fls_c1wbumq0bumj", "number": "B.326", "title": "initialization", "link": "glossary.html#initialization", "paragraphs": [{"id": "fls_xi07ycze6mo0", "number": "B.326:1", "link": "glossary.html#fls_xi07ycze6mo0", "checksum": "fb553b00ed34887732fdc72ecfb14c39139ae67958595f1393839d8daf1142d6"}], "informational": false}, {"id": "fls_ctusgvpqvjue", "number": "B.327", "title": "initialization expression", "link": "glossary.html#initialization-expression", "paragraphs": [{"id": "fls_kueisbypuc4w", "number": "B.327:1", "link": "glossary.html#fls_kueisbypuc4w", "checksum": "57e2be16df1734ac4e82269f1a4437273c5522e3ee460afde5f802dd6ee39934"}], "informational": false}, {"id": "fls_pd30dl2envjn", "number": "B.328", "title": "initialization type", "link": "glossary.html#initialization-type", "paragraphs": [{"id": "fls_crn87nne7k38", "number": "B.328:1", "link": "glossary.html#fls_crn87nne7k38", "checksum": "e3de743c6b6b482fd227d8e4bc1e7589a12791d372a9d9f47374de87b53448b4"}, {"id": "fls_3r85y1lh1oxo", "number": "B.328:2", "link": "glossary.html#fls_3r85y1lh1oxo", "checksum": "a0f44dca15fd194631be91e489c1a7956fd0397f36291b78ce3373f8a2ab8527"}], "informational": false}, {"id": "fls_lbl2b9wyg6es", "number": "B.329", "title": "inline assembly", "link": "glossary.html#inline-assembly", "paragraphs": [{"id": "fls_1mtalea7yfsv", "number": "B.329:1", "link": "glossary.html#fls_1mtalea7yfsv", "checksum": "f6ba1aca347400dc96ea940e9248923b4a0b6b1bd8847916a0bbccb260c33406"}], "informational": false}, {"id": "fls_c54lmkluwbwr", "number": "B.330", "title": "inline module", "link": "glossary.html#inline-module", "paragraphs": [{"id": "fls_tbldwtisl9vc", "number": "B.330:1", "link": "glossary.html#fls_tbldwtisl9vc", "checksum": "02a40fdeafaf06436a304f06c05896ccb1c222494fe4423936366485fb3a66ee"}, {"id": "fls_8bmjz8o3xu60", "number": "B.330:2", "link": "glossary.html#fls_8bmjz8o3xu60", "checksum": "ab1f658915a6e66265b29dce4282e6745c700582380c9ebd6d1f50db44318cd7"}], "informational": false}, {"id": "fls_joxepyv84ajz", "number": "B.331", "title": "inner attribute", "link": "glossary.html#inner-attribute", "paragraphs": [{"id": "fls_l7kxkav42l5d", "number": "B.331:1", "link": "glossary.html#fls_l7kxkav42l5d", "checksum": "5a0e6886ed700d81e68bab59cf16ef8c53c8610eb1a7bda62606dece3e37da01"}, {"id": "fls_umkk8xwktat1", "number": "B.331:2", "link": "glossary.html#fls_umkk8xwktat1", "checksum": "98c982e326cde818653fa94a3865ef6a4380c84f982eecfb02380b93598a06d1"}], "informational": false}, {"id": "fls_chbp2je32okc", "number": "B.332", "title": "inner block doc", "link": "glossary.html#inner-block-doc", "paragraphs": [{"id": "fls_f4nqkybpwj1a", "number": "B.332:1", "link": "glossary.html#fls_f4nqkybpwj1a", "checksum": "18bef21654c0cb649fe8aa324c1e158dc17cc564c6d81a20ccdc7dc43a4afb43"}, {"id": "fls_lmpaznk198ga", "number": "B.332:2", "link": "glossary.html#fls_lmpaznk198ga", "checksum": "5a4d1cc0dcf4a7645526a45140c4afa6ba5569197eddf4425b0ef110f5dbc23e"}], "informational": false}, {"id": "fls_vr1ucgtbkjlh", "number": "B.333", "title": "inner doc comment", "link": "glossary.html#inner-doc-comment", "paragraphs": [{"id": "fls_6kunkwzf9qaf", "number": "B.333:1", "link": "glossary.html#fls_6kunkwzf9qaf", "checksum": "fc6565e0e22958cb1bdf76ff7c572c22d46b4960c739a1edaf91133b9d8479b6"}], "informational": false}, {"id": "fls_xgm53126q9c4", "number": "B.334", "title": "inner line doc", "link": "glossary.html#inner-line-doc", "paragraphs": [{"id": "fls_vtwavwjhgvlz", "number": "B.334:1", "link": "glossary.html#fls_vtwavwjhgvlz", "checksum": "e1d14c5e65629bcf7ef2f72b49a0f71f0a28f9804addaa1db7e58f9816ee5621"}, {"id": "fls_8cnikewkqs7", "number": "B.334:2", "link": "glossary.html#fls_8cnikewkqs7", "checksum": "bf5601e1d0036501ec5e2707130e2e010ba1d175dadcf0a04c8dd149b92f55a4"}], "informational": false}, {"id": "fls_dtb5xegdqm9s", "number": "B.335", "title": "input register", "link": "glossary.html#input-register", "paragraphs": [{"id": "fls_dtvdqafpnccj", "number": "B.335:1", "link": "glossary.html#fls_dtvdqafpnccj", "checksum": "f85f54e6db19ccdf5e3b58ee3014017a2a0965d59f572139c56081b253ad2cb2"}], "informational": false}, {"id": "fls_tmju2kxeryhj", "number": "B.336", "title": "input register expression", "link": "glossary.html#input-register-expression", "paragraphs": [{"id": "fls_rvbuhsgg2rht", "number": "B.336:1", "link": "glossary.html#fls_rvbuhsgg2rht", "checksum": "d59996c21a6b1b5112ce017fdfc9d5690f3204d3f0874354f72c68c7df9e9a2b"}, {"id": "fls_nqjrr9khzpl2", "number": "B.336:2", "link": "glossary.html#fls_nqjrr9khzpl2", "checksum": "a8db40815773a479e6556f2bbb9a39e51c652c8886e643566ef6beb86126e8d5"}], "informational": false}, {"id": "fls_y9eoksthpckb", "number": "B.337", "title": "input-output register expression", "link": "glossary.html#input-output-register-expression", "paragraphs": [{"id": "fls_llqw3efl7x5z", "number": "B.337:1", "link": "glossary.html#fls_llqw3efl7x5z", "checksum": "856b3da012d02d6f197c4129e8a4ef5c2a01d3b8ac09dbd0f255e7d53e741067"}, {"id": "fls_fnmgxi2npguh", "number": "B.337:2", "link": "glossary.html#fls_fnmgxi2npguh", "checksum": "5b0470c39bbb1d229151bfc57b017d6fab42323e2c8e3e1fafc1a887b96cdecb"}], "informational": false}, {"id": "fls_e2kizieowvuh", "number": "B.338", "title": "integer literal", "link": "glossary.html#integer-literal", "paragraphs": [{"id": "fls_23a1fjpf15qv", "number": "B.338:1", "link": "glossary.html#fls_23a1fjpf15qv", "checksum": "06f6377b85369183c52c54750e36d420a7e7b6d66a50085f8596afe79ef2e505"}, {"id": "fls_6qpj0nr0jpjr", "number": "B.338:2", "link": "glossary.html#fls_6qpj0nr0jpjr", "checksum": "26e6707c52d7829c4896f6018110bf1a074068eb294d89e589af5883651bb469"}], "informational": false}, {"id": "fls_bhvh8qwqy8ve", "number": "B.339", "title": "integer suffix", "link": "glossary.html#integer-suffix", "paragraphs": [{"id": "fls_qazh8f8rs528", "number": "B.339:1", "link": "glossary.html#fls_qazh8f8rs528", "checksum": "355d9a90f0ae62d9dc30cafd8fccdc0d2dfe9b7168f2ff7a949d9db4d6ad2f8e"}, {"id": "fls_jqagv350kw2m", "number": "B.339:2", "link": "glossary.html#fls_jqagv350kw2m", "checksum": "ed2eed878c2f0d8ca8c2a36f113bcd633eccfb516323e09d63a0ad3dc8d42dc8"}], "informational": false}, {"id": "fls_nu1cnk2b9qx5", "number": "B.340", "title": "integer type", "link": "glossary.html#integer-type", "paragraphs": [{"id": "fls_nhfqdhf26ym3", "number": "B.340:1", "link": "glossary.html#fls_nhfqdhf26ym3", "checksum": "02960af14adfa00c65955c297ca46d3e8b5c430c3db90359c94b38f96a484b01"}], "informational": false}, {"id": "fls_ctuvilpb30gq", "number": "B.341", "title": "integer type variable", "link": "glossary.html#integer-type-variable", "paragraphs": [{"id": "fls_e3ed1tyrjsy4", "number": "B.341:1", "link": "glossary.html#fls_e3ed1tyrjsy4", "checksum": "c07c5b6ea7f4c478ac920fd8645380be8ebe3a05ec99356760ef2831a6b35da2"}], "informational": false}, {"id": "fls_mb3xnplwdw9l", "number": "B.342", "title": "interior mutability", "link": "glossary.html#interior-mutability", "paragraphs": [{"id": "fls_e0173dd09znl", "number": "B.342:1", "link": "glossary.html#fls_e0173dd09znl", "checksum": "9b3502a55d38c64bd15befa7c21e4b030a57aa82e5f7d8f7ffccf3523a9e9ac6"}], "informational": false}, {"id": "fls_7rj914fhginh", "number": "B.343", "title": "intermediate match arm", "link": "glossary.html#intermediate-match-arm", "paragraphs": [{"id": "fls_l6pemxmdllvl", "number": "B.343:1", "link": "glossary.html#fls_l6pemxmdllvl", "checksum": "46bc911201fcc38ab17b1ac1acc7d45f9f8095238eab0101ab21879cd051267a"}, {"id": "fls_8713j5lrwqvs", "number": "B.343:2", "link": "glossary.html#fls_8713j5lrwqvs", "checksum": "7f96489573f69749e33f3439092f5c3c1ebcb5ed805dbe30860a9670ed864169"}], "informational": false}, {"id": "fls_fgmvmcw2kw5i", "number": "B.344", "title": "irrefutable constant", "link": "glossary.html#irrefutable-constant", "paragraphs": [{"id": "fls_hd02jah50qzl", "number": "B.344:1", "link": "glossary.html#fls_hd02jah50qzl", "checksum": "ff25ed4012fe194d101310bc844b57da5da5f321c52d2ba65482a0fc3bfee96a"}], "informational": false}, {"id": "fls_ckz7pujdnuo5", "number": "B.345", "title": "irrefutable pattern", "link": "glossary.html#irrefutable-pattern", "paragraphs": [{"id": "fls_y421hdrbs6ak", "number": "B.345:1", "link": "glossary.html#fls_y421hdrbs6ak", "checksum": "546dda31e751de38cd390fc3678fb03b520c5de5018eeb4cf2567e0bc0a8d932"}], "informational": false}, {"id": "fls_vt44bvhm4duk", "number": "B.346", "title": "isize", "link": "glossary.html#isize", "paragraphs": [{"id": "fls_6x617i9zcj7o", "number": "B.346:1", "link": "glossary.html#fls_6x617i9zcj7o", "checksum": "a4d4f9bdc27ab79b96aeb1b9da7cc17c427b3a86cea9797d7376d24370ea366d"}], "informational": false}, {"id": "fls_yh2a7e3d3894", "number": "B.347", "title": "item", "link": "glossary.html#item", "paragraphs": [{"id": "fls_2ghaujiqkhyy", "number": "B.347:1", "link": "glossary.html#fls_2ghaujiqkhyy", "checksum": "fa64d24140b6632032564a30372f4a1aed8d58d19731e3e20079781802db7dba"}, {"id": "fls_xd997kd2i73a", "number": "B.347:2", "link": "glossary.html#fls_xd997kd2i73a", "checksum": "5b1511eb218f59a70c5747e52f7843ee82c8b03c375bfe19f4b7b46f2dd7a6c9"}], "informational": false}, {"id": "fls_wojjzz4gygfl", "number": "B.348", "title": "item scope", "link": "glossary.html#item-scope", "paragraphs": [{"id": "fls_mw7iwwgsjrl2", "number": "B.348:1", "link": "glossary.html#fls_mw7iwwgsjrl2", "checksum": "715e8f904eedb87640dd89fe38e8447a7bca9b865b141b11baa1c5dfcd4f7665"}], "informational": false}, {"id": "fls_yaurxo4ogfsh", "number": "B.349", "title": "item statement", "link": "glossary.html#item-statement", "paragraphs": [{"id": "fls_r0crucpuhtj", "number": "B.349:1", "link": "glossary.html#fls_r0crucpuhtj", "checksum": "3523a7af0986053d255330594a2f29a78f9497870cecaab9a8cea16496d96e8c"}], "informational": false}, {"id": "fls_orde7iunolyx", "number": "B.350", "title": "iteration expression", "link": "glossary.html#iteration-expression", "paragraphs": [{"id": "fls_suz163n1x1xm", "number": "B.350:1", "link": "glossary.html#fls_suz163n1x1xm", "checksum": "a6b541ed2c07361b541739304039f4561021674dfff1539f058e1c63ee80e605"}, {"id": "fls_jw5lj2hgjl8v", "number": "B.350:2", "link": "glossary.html#fls_jw5lj2hgjl8v", "checksum": "d9dfff39ef919f95a19df53a63051db51a261c97c8885a84257bc4c274dad29a"}], "informational": false}, {"id": "fls_yjs58mp5fkxz", "number": "B.351", "title": "keyword", "link": "glossary.html#keyword", "paragraphs": [{"id": "fls_z3825koc9c1w", "number": "B.351:1", "link": "glossary.html#fls_z3825koc9c1w", "checksum": "661a3a1aab0b939067be99081b05c9e14a6f5a6aca9781f866eedfa9a7ac2caf"}, {"id": "fls_yvnf2mu4pr75", "number": "B.351:2", "link": "glossary.html#fls_yvnf2mu4pr75", "checksum": "caa6852a6a96eca35ac0ba609c6e927cae9b32b966db8b17f3674ffa905b4326"}], "informational": false}, {"id": "fls_uvuohmntprts", "number": "B.352", "title": "label", "link": "glossary.html#label", "paragraphs": [{"id": "fls_iaaf2rlmgmgq", "number": "B.352:1", "link": "glossary.html#fls_iaaf2rlmgmgq", "checksum": "019608866bf67a708c1b7f5534aa4306a1e58faaffa52dab52eb45c37629e7af"}, {"id": "fls_hicurdhiilx2", "number": "B.352:2", "link": "glossary.html#fls_hicurdhiilx2", "checksum": "f770112f3ec70dcd1ee759363098630db81ec34b4a7a80ed9a53f8dab692650e"}], "informational": false}, {"id": "fls_dw5s7jhk4v8s", "number": "B.353", "title": "label indication", "link": "glossary.html#label-indication", "paragraphs": [{"id": "fls_sso322p7adt0", "number": "B.353:1", "link": "glossary.html#fls_sso322p7adt0", "checksum": "e6de39fb2b449bfe1a09d03e37c1bbed4ef0e69c85cf7ee3ef6ecda8510719df"}, {"id": "fls_g6iqfqooz8th", "number": "B.353:2", "link": "glossary.html#fls_g6iqfqooz8th", "checksum": "db312552b93777e4a304972a041cebeca360aed8de3683bb1067a7019e2096e3"}], "informational": false}, {"id": "fls_p0on44eab3cn", "number": "B.354", "title": "label scope", "link": "glossary.html#label-scope", "paragraphs": [{"id": "fls_2h6hkq102hvs", "number": "B.354:1", "link": "glossary.html#fls_2h6hkq102hvs", "checksum": "67151c0ec33049c52da54517530f8584020b07cfc1feba88c00960d8ba135d72"}], "informational": false}, {"id": "fls_w5gslebevlya", "number": "B.355", "title": "layout", "link": "glossary.html#layout", "paragraphs": [{"id": "fls_qk602dmhc0d6", "number": "B.355:1", "link": "glossary.html#fls_qk602dmhc0d6", "checksum": "5c8bda1ec817bd7962602b024a091606f310ea921652978fb6463257f1ec215b"}], "informational": false}, {"id": "fls_bputdgkeezfs", "number": "B.356", "title": "lazy and expression", "link": "glossary.html#lazy-and-expression", "paragraphs": [{"id": "fls_v2e6t73uk6nt", "number": "B.356:1", "link": "glossary.html#fls_v2e6t73uk6nt", "checksum": "06d233ac60cd2a61ef4652837408ac6975b56a5c347fa619efdd1c6f2c351e1d"}, {"id": "fls_rkthjuvems6v", "number": "B.356:2", "link": "glossary.html#fls_rkthjuvems6v", "checksum": "e77b87d03aeac8d98784ce59d65a0a9efe3ca87f6c01151769ff37212bec70d2"}], "informational": false}, {"id": "fls_4a6yhxj783a1", "number": "B.357", "title": "lazy boolean expression", "link": "glossary.html#lazy-boolean-expression", "paragraphs": [{"id": "fls_jpv7l86sdh6i", "number": "B.357:1", "link": "glossary.html#fls_jpv7l86sdh6i", "checksum": "c90b93dadcdc543f0e5bcc502fea69ba1c2e22d31eb4c54e787f4f59125de84a"}, {"id": "fls_9tu5x810ztbg", "number": "B.357:2", "link": "glossary.html#fls_9tu5x810ztbg", "checksum": "e54fc08d2ba7bd50aedf5a6fd7a981f23106eacfa31f81ba5c520727048ff11e"}], "informational": false}, {"id": "fls_9mvrfhsegwp0", "number": "B.358", "title": "lazy or expression", "link": "glossary.html#lazy-or-expression", "paragraphs": [{"id": "fls_aln8bbvx9kzm", "number": "B.358:1", "link": "glossary.html#fls_aln8bbvx9kzm", "checksum": "0f0af9b9915945fbf0c8d154898955a66e8495506efd393738576ff255050fac"}, {"id": "fls_jiv7e3mr86kf", "number": "B.358:2", "link": "glossary.html#fls_jiv7e3mr86kf", "checksum": "f85e971f7ba4065c7534869bfcc94181241b33d9984d4fe15d14eb9f0fc65983"}], "informational": false}, {"id": "fls_x6vo9pysmex2", "number": "B.359", "title": "left operand", "link": "glossary.html#left-operand", "paragraphs": [{"id": "fls_m821x5195ac9", "number": "B.359:1", "link": "glossary.html#fls_m821x5195ac9", "checksum": "bac25c01b0dd837815451adedfe2b461365b8da57aefc2b2fd46ca9dac538b6f"}, {"id": "fls_ghlbsklg7wdb", "number": "B.359:2", "link": "glossary.html#fls_ghlbsklg7wdb", "checksum": "f213e8acccbc6654f72faf9e0d5345e619d1a19024862446dd435a4dcfb4074c"}], "informational": false}, {"id": "fls_ulmspewtlo57", "number": "B.360", "title": "less-than expression", "link": "glossary.html#less-than-expression", "paragraphs": [{"id": "fls_9ttxqxt9ui4t", "number": "B.360:1", "link": "glossary.html#fls_9ttxqxt9ui4t", "checksum": "4d6c770b0c36e643e9ecb0b17237e92a52923f197c20208f55ab98eceb576374"}, {"id": "fls_rhnbdyo2l4kp", "number": "B.360:2", "link": "glossary.html#fls_rhnbdyo2l4kp", "checksum": "6d7a076a55bdd8ac68be5a920eda7194f10c734494255b821299801972ca83c5"}], "informational": false}, {"id": "fls_es169x7ars9a", "number": "B.361", "title": "less-than-or-equals expression", "link": "glossary.html#less-than-or-equals-expression", "paragraphs": [{"id": "fls_8pya58ug180j", "number": "B.361:1", "link": "glossary.html#fls_8pya58ug180j", "checksum": "ab5beac07bb3a50414d761fca7c1f5c0dae433fc29c6a25fd9a45ef861260ed4"}, {"id": "fls_ft5aeo4ilgwc", "number": "B.361:2", "link": "glossary.html#fls_ft5aeo4ilgwc", "checksum": "d318b9c1603d58f8469630e1d0a878dccb71936893da31be9add5a23a0379a75"}], "informational": false}, {"id": "fls_hqj80jhcxebb", "number": "B.362", "title": "let initializer", "link": "glossary.html#let-initializer", "paragraphs": [{"id": "fls_jttpbz4ujzrc", "number": "B.362:1", "link": "glossary.html#fls_jttpbz4ujzrc", "checksum": "e417daaddf4c19c96fc2a39d850fd7a39594835ddc58d68394b8b295eb539e2c"}, {"id": "fls_gmhsjb6ficfa", "number": "B.362:2", "link": "glossary.html#fls_gmhsjb6ficfa", "checksum": "192a33fcac9c29f492628ac860f294d9e39ee0d13ee5f121858d6917f21efe0b"}], "informational": false}, {"id": "fls_39k0ebr7snb0", "number": "B.363", "title": "let statement", "link": "glossary.html#let-statement", "paragraphs": [{"id": "fls_yh7hn6jjv3ur", "number": "B.363:1", "link": "glossary.html#fls_yh7hn6jjv3ur", "checksum": "cbf8771833c7d4ac31cd6b52abd03897bd1cfb5bb71267e299ff41016afc5c15"}, {"id": "fls_tsem3c6zqmh4", "number": "B.363:2", "link": "glossary.html#fls_tsem3c6zqmh4", "checksum": "e5473d76bf043db4a3c082459c11d02c33396cca659d40de3861141ee364c4ca"}], "informational": false}, {"id": "fls_h2tqtmm5686y", "number": "B.364", "title": "lexical element", "link": "glossary.html#lexical-element", "paragraphs": [{"id": "fls_nrxnbkatn63n", "number": "B.364:1", "link": "glossary.html#fls_nrxnbkatn63n", "checksum": "868c091be2035cba8a80f341c67594edd9266efa2a777912957d9946995b41c1"}], "informational": false}, {"id": "fls_r1sk7vdgckym", "number": "B.365", "title": "library crate", "link": "glossary.html#library-crate", "paragraphs": [{"id": "fls_3m8lg4mdc2x0", "number": "B.365:1", "link": "glossary.html#fls_3m8lg4mdc2x0", "checksum": "7b8dd38c13fed841322ac8395586d2782e583dcb670d90c32245eb319572e31c"}], "informational": false}, {"id": "fls_vdhaa61g6kah", "number": "B.366", "title": "lifetime", "link": "glossary.html#lifetime", "paragraphs": [{"id": "fls_il3n0w4m084b", "number": "B.366:1", "link": "glossary.html#fls_il3n0w4m084b", "checksum": "3127db7af4f12d674c85c2c41c5b51deda11fcd1ce19ad8151c6214dc2dc4ca7"}, {"id": "fls_2nywjifee7q", "number": "B.366:2", "link": "glossary.html#fls_2nywjifee7q", "checksum": "26c9ac123efac24b082c008cabf69b8974b6b121c8cd980dd0d0c3a66ab3f9ae"}], "informational": false}, {"id": "fls_d0s6bk7ljqrb", "number": "B.367", "title": "lifetime argument", "link": "glossary.html#lifetime-argument", "paragraphs": [{"id": "fls_oaf87yjb3xjs", "number": "B.367:1", "link": "glossary.html#fls_oaf87yjb3xjs", "checksum": "dc89c8ee67f0133c573918672984a30b6e419f17cd870468facf698d942e70db"}, {"id": "fls_la8lbv14zj28", "number": "B.367:2", "link": "glossary.html#fls_la8lbv14zj28", "checksum": "959bed1499d289316aed1f8a85bd48c2afde17e6ae4bb94b6e01565665da848e"}], "informational": false}, {"id": "fls_ca9pu348r9jm", "number": "B.368", "title": "lifetime bound", "link": "glossary.html#lifetime-bound", "paragraphs": [{"id": "fls_u6xfs8fg558", "number": "B.368:1", "link": "glossary.html#fls_u6xfs8fg558", "checksum": "68ab2e5937cbcba9b21d39854f8c47f6fb5dec954ac362f6c993c017d249b3f8"}, {"id": "fls_ivcjmp54hdej", "number": "B.368:2", "link": "glossary.html#fls_ivcjmp54hdej", "checksum": "210efcb9b24d5e7117daadc1130049362f60b5b646acf22a3cdea1875f306aa5"}], "informational": false}, {"id": "fls_fv8sp0rorybn", "number": "B.369", "title": "lifetime bound predicate", "link": "glossary.html#lifetime-bound-predicate", "paragraphs": [{"id": "fls_ahftlkgsp9xk", "number": "B.369:1", "link": "glossary.html#fls_ahftlkgsp9xk", "checksum": "f99b5d3570dbb6f971515c5641120a0840b36dd45bbb0c22a3be26a540f75f00"}, {"id": "fls_8wiod9rm5ixa", "number": "B.369:2", "link": "glossary.html#fls_8wiod9rm5ixa", "checksum": "4a40b3381058195f93b4f1ca0fb8daa0b8749e5eed1a30c6b189582680d4668a"}], "informational": false}, {"id": "fls_al39r9uz2zmy", "number": "B.370", "title": "lifetime elision", "link": "glossary.html#lifetime-elision", "paragraphs": [{"id": "fls_dq5wkd61ry3l", "number": "B.370:1", "link": "glossary.html#fls_dq5wkd61ry3l", "checksum": "e14defd67bb35b75a7b00fa0ae001993fc6127bd3edd8a03453e80a7f3bf13ed"}], "informational": false}, {"id": "fls_md7ii59zobrc", "number": "B.371", "title": "lifetime parameter", "link": "glossary.html#lifetime-parameter", "paragraphs": [{"id": "fls_7g0iu68nrsd4", "number": "B.371:1", "link": "glossary.html#fls_7g0iu68nrsd4", "checksum": "954683482b9c2666b532b8b7ac23dc703bf907709fd1741b2de7946821edeb6c"}, {"id": "fls_z1wl2uiwip98", "number": "B.371:2", "link": "glossary.html#fls_z1wl2uiwip98", "checksum": "5779a509e38b69bc02358e67fce4873ae576903da68e0e756ea5f97b84e9c911"}], "informational": false}, {"id": "fls_jodjnhu1l9lp", "number": "B.372", "title": "lifetime variable", "link": "glossary.html#lifetime-variable", "paragraphs": [{"id": "fls_uczncbwxxl6n", "number": "B.372:1", "link": "glossary.html#fls_uczncbwxxl6n", "checksum": "68872db762949905628da3b62b41765588b20a8c247469ee48f5f27237212d70"}], "informational": false}, {"id": "fls_8qputmx0i7ku", "number": "B.373", "title": "line", "link": "glossary.html#line", "paragraphs": [{"id": "fls_oqf2439j3y7b", "number": "B.373:1", "link": "glossary.html#fls_oqf2439j3y7b", "checksum": "a7cb91ca6f93aae65ca2a5a647bf9f2755ba0df9ae7f08dbbce5f76eeb8d0547"}], "informational": false}, {"id": "fls_k5ycqijslkxh", "number": "B.374", "title": "line comment", "link": "glossary.html#line-comment", "paragraphs": [{"id": "fls_3e7asah7lkqj", "number": "B.374:1", "link": "glossary.html#fls_3e7asah7lkqj", "checksum": "1123a36eb80d975b9c0775e5710212312cca6d498b93b328d3436a7d9110d492"}, {"id": "fls_8j5j777dv2jm", "number": "B.374:2", "link": "glossary.html#fls_8j5j777dv2jm", "checksum": "a5ce68982e4a3d495aecd3817b7f46a66291aa818310d47d1ac783520cd344ae"}], "informational": false}, {"id": "fls_z850pyf9r1f4", "number": "B.375", "title": "literal", "link": "glossary.html#literal", "paragraphs": [{"id": "fls_ckbyt11pku9j", "number": "B.375:1", "link": "glossary.html#fls_ckbyt11pku9j", "checksum": "0b6dfe8f489ebdb653cfe256043e5b5b482befc3318c71146203216de7f19367"}, {"id": "fls_h1g46cevrqjv", "number": "B.375:2", "link": "glossary.html#fls_h1g46cevrqjv", "checksum": "c2d74ab5d24f8ff5da83452353a59d9ca7fd4127de427951e03f61b525e2ec8f"}], "informational": false}, {"id": "fls_b57clq8jhw5w", "number": "B.376", "title": "literal expression", "link": "glossary.html#literal-expression", "paragraphs": [{"id": "fls_otaauusc24v5", "number": "B.376:1", "link": "glossary.html#fls_otaauusc24v5", "checksum": "704a24c6ebae8708a1dd061e2ea7740d73f09386f706369679faf81564964823"}, {"id": "fls_7po7zobtlhzn", "number": "B.376:2", "link": "glossary.html#fls_7po7zobtlhzn", "checksum": "9ede60e7543ec5334e989d56750dd9d72d5b3e3143b2b6950cf53e41b815a65a"}], "informational": false}, {"id": "fls_bo2tv8ky1jc", "number": "B.377", "title": "literal pattern", "link": "glossary.html#literal-pattern", "paragraphs": [{"id": "fls_5s9b4bza13xf", "number": "B.377:1", "link": "glossary.html#fls_5s9b4bza13xf", "checksum": "292bed78eccb53cf72d7c5e667ddc39d2063ad35e39b46d0b606294587f7638e"}, {"id": "fls_o7q7wfjulc24", "number": "B.377:2", "link": "glossary.html#fls_o7q7wfjulc24", "checksum": "6f0d5a009b0ec0da4d2f1f9b383b8ee3fbbcf2cf3953f9964f12c4acbe1fd9ab"}], "informational": false}, {"id": "fls_bypbl5zftibf", "number": "B.378", "title": "local trait", "link": "glossary.html#local-trait", "paragraphs": [{"id": "fls_i9jakzelmiby", "number": "B.378:1", "link": "glossary.html#fls_i9jakzelmiby", "checksum": "0a8df9a91ccb65805274d985e266df502f59ec953f0c3fb80738e6c0f165d951"}], "informational": false}, {"id": "fls_cexguiguuks4", "number": "B.379", "title": "local type", "link": "glossary.html#local-type", "paragraphs": [{"id": "fls_hvgpb3csn4ah", "number": "B.379:1", "link": "glossary.html#fls_hvgpb3csn4ah", "checksum": "a67cc1616a4c334e62d84935d765c7ad69a1ca07badb8fc2d9a2ba796f96918f"}], "informational": false}, {"id": "fls_lkxiws55xhpq", "number": "B.380", "title": "local variable", "link": "glossary.html#local-variable", "paragraphs": [{"id": "fls_3inlcyi6444u", "number": "B.380:1", "link": "glossary.html#fls_3inlcyi6444u", "checksum": "1bca23bf5842288cdca8a36c009a79ab1faba3297c4e01d4d88a818f85f0b645"}], "informational": false}, {"id": "fls_kdqa8zs8tk6g", "number": "B.381", "title": "loop", "link": "glossary.html#loop", "paragraphs": [{"id": "fls_omjnvxva07z2", "number": "B.381:1", "link": "glossary.html#fls_omjnvxva07z2", "checksum": "f167af10c01112260d52505bf663f378bc267eab3462b536907699887ec4405a"}], "informational": false}, {"id": "fls_5vt0ph5bfdnu", "number": "B.382", "title": "loop body", "link": "glossary.html#loop-body", "paragraphs": [{"id": "fls_frwcwpekgx9g", "number": "B.382:1", "link": "glossary.html#fls_frwcwpekgx9g", "checksum": "f4c96ff719b6ab85d5750af147dad95ffbbfd720227288e319f846a85b40f717"}, {"id": "fls_vwur2tet712r", "number": "B.382:2", "link": "glossary.html#fls_vwur2tet712r", "checksum": "94576a2c9e28d810070b69c466b2a24849e5a415c05265c8fecc9b60cc68b465"}], "informational": false}, {"id": "fls_an1s2hnapd59", "number": "B.383", "title": "loop expression", "link": "glossary.html#loop-expression", "paragraphs": [{"id": "fls_2yypq3m1kquj", "number": "B.383:1", "link": "glossary.html#fls_2yypq3m1kquj", "checksum": "8413a81d0a02afb47e09369ab11824eb36ea94b506bc186ce0a0beb3bba0a285"}, {"id": "fls_o2dyznhq7rez", "number": "B.383:2", "link": "glossary.html#fls_o2dyznhq7rez", "checksum": "2579b2c7058a63fb346fdc569e1de4e4ca45e63464883ce0e7ca19dfbbf8fddc"}], "informational": false}, {"id": "fls_sdkcn1exc9da", "number": "B.384", "title": "macro", "link": "glossary.html#macro", "paragraphs": [{"id": "fls_bt16qi8g2js5", "number": "B.384:1", "link": "glossary.html#fls_bt16qi8g2js5", "checksum": "e54ff2b4d02cc39a0e7bb2387119b5155e4e4583a38818fb1327cafb597a951c"}], "informational": false}, {"id": "fls_td4jm76u9m03", "number": "B.385", "title": "macro expansion", "link": "glossary.html#macro-expansion", "paragraphs": [{"id": "fls_t383uo1l4h8x", "number": "B.385:1", "link": "glossary.html#fls_t383uo1l4h8x", "checksum": "4aabe5beb311cfda296103222da94d79db59491151385c674bb5ab3a2fa1dc4f"}], "informational": false}, {"id": "fls_o5jy1u64nyiy", "number": "B.386", "title": "macro implementation function", "link": "glossary.html#macro-implementation-function", "paragraphs": [{"id": "fls_xy4t1suhrn46", "number": "B.386:1", "link": "glossary.html#fls_xy4t1suhrn46", "checksum": "01c81136d5d1d40924d1c8996c97e0695953d067317cb5c023c5644575950573"}], "informational": false}, {"id": "fls_20x9eqa7xeui", "number": "B.387", "title": "macro invocation", "link": "glossary.html#macro-invocation", "paragraphs": [{"id": "fls_5qtwcp5ns5vz", "number": "B.387:1", "link": "glossary.html#fls_5qtwcp5ns5vz", "checksum": "68b1edc4db0d2e3d4ce635d19ceaec8fec5168adff8a8fe5a1a84c123eb789af"}, {"id": "fls_igzl0oj9ja7y", "number": "B.387:2", "link": "glossary.html#fls_igzl0oj9ja7y", "checksum": "259e220ac8fb44b99ea0c82eb898824d62ef46777dbc0edd50ae2b6103446746"}], "informational": false}, {"id": "fls_boanb1ipzc9", "number": "B.388", "title": "macro match", "link": "glossary.html#macro-match", "paragraphs": [{"id": "fls_q0ve6nd287ta", "number": "B.388:1", "link": "glossary.html#fls_q0ve6nd287ta", "checksum": "375ed9bbc80384727ed62542640c3a8a6499495162452b9892ce706ee78cc54b"}, {"id": "fls_dww6sqbj2vin", "number": "B.388:2", "link": "glossary.html#fls_dww6sqbj2vin", "checksum": "179f2ff2fb19802b53eed340592a99cf011a22a1137bc9b74a8f253665812b64"}], "informational": false}, {"id": "fls_4h4snjd4thsv", "number": "B.389", "title": "macro matcher", "link": "glossary.html#macro-matcher", "paragraphs": [{"id": "fls_sqncf88chnsy", "number": "B.389:1", "link": "glossary.html#fls_sqncf88chnsy", "checksum": "0fdd64f47fbe768d0c93eb3d2a86d45d529f63697f9b05cde079a9deb78dd489"}, {"id": "fls_ioyegc6ggd7o", "number": "B.389:2", "link": "glossary.html#fls_ioyegc6ggd7o", "checksum": "678832f1689006a4ed0cc51cf6bb4e0bdce65d0a1cdc4941935452093ee7a437"}], "informational": false}, {"id": "fls_ao7ghe0c8mqo", "number": "B.390", "title": "macro matching", "link": "glossary.html#macro-matching", "paragraphs": [{"id": "fls_rrdmfxuzrhft", "number": "B.390:1", "link": "glossary.html#fls_rrdmfxuzrhft", "checksum": "0b3bb3f9c48f8562e8e846e238c36cfe6348afa31e7357d946f48349d72bd333"}], "informational": false}, {"id": "fls_kddw7eirsn0g", "number": "B.391", "title": "macro repetition", "link": "glossary.html#macro-repetition", "paragraphs": [{"id": "fls_sdomcfwieuat", "number": "B.391:1", "link": "glossary.html#fls_sdomcfwieuat", "checksum": "681d740563cb210f2642178f143d49fe459b75bf5bbde9703c8a51d9a0c7818f"}], "informational": false}, {"id": "fls_a5j2hztrjfv5", "number": "B.392", "title": "macro repetition in matching", "link": "glossary.html#macro-repetition-in-matching", "paragraphs": [{"id": "fls_wio0e9qzstjh", "number": "B.392:1", "link": "glossary.html#fls_wio0e9qzstjh", "checksum": "6a5d65b431c0eac6e75b009a623007d27deda95179e83e1006ad19f2c9b0aa48"}, {"id": "fls_potk1y850zer", "number": "B.392:2", "link": "glossary.html#fls_potk1y850zer", "checksum": "1528d1e814d6bc91e61ed50948f2dd996d4c3491993fa9a3fb7ec5c346e29039"}], "informational": false}, {"id": "fls_sqv126lwdz23", "number": "B.393", "title": "macro repetition in transcription", "link": "glossary.html#macro-repetition-in-transcription", "paragraphs": [{"id": "fls_ex9vd3w0t4wo", "number": "B.393:1", "link": "glossary.html#fls_ex9vd3w0t4wo", "checksum": "3d465c29874c8616db76aeb84abdd924cd7ad1ab1f10fe4e75cdbdfda3d15d16"}, {"id": "fls_5wdiqbwgr9nt", "number": "B.393:2", "link": "glossary.html#fls_5wdiqbwgr9nt", "checksum": "13aa73789014f9acace156ad4ac8acbff9c51708466dad1f80c42a4644a3912d"}], "informational": false}, {"id": "fls_gw31cagmzx26", "number": "B.394", "title": "macro rule", "link": "glossary.html#macro-rule", "paragraphs": [{"id": "fls_7gfdqggs33id", "number": "B.394:1", "link": "glossary.html#fls_7gfdqggs33id", "checksum": "016c9fe34be63a621635c6627e98f9d342818e04d1f471124aa059ec1b44dd5a"}, {"id": "fls_qv68aj43mz5m", "number": "B.394:2", "link": "glossary.html#fls_qv68aj43mz5m", "checksum": "679e8c14ea44a25ea1390ac52aa92d476ce6721743dcffed0cc3012c0331aa2a"}], "informational": false}, {"id": "fls_i4yf4lt8qvkt", "number": "B.395", "title": "macro statement", "link": "glossary.html#macro-statement", "paragraphs": [{"id": "fls_yhh9k9epv3g6", "number": "B.395:1", "link": "glossary.html#fls_yhh9k9epv3g6", "checksum": "081c0eb81f1e5c8c6346996725d4f6709fdb652d0d6c34483a6869a4e316e3e3"}], "informational": false}, {"id": "fls_76o6rjh6lrqd", "number": "B.396", "title": "macro transcriber", "link": "glossary.html#macro-transcriber", "paragraphs": [{"id": "fls_ug79qf3p693h", "number": "B.396:1", "link": "glossary.html#fls_ug79qf3p693h", "checksum": "b68a6a518e546a1963b516db1a1fecce0b536851b28b2d2571c3b98a2beae5cd"}, {"id": "fls_myubuihvjl4s", "number": "B.396:2", "link": "glossary.html#fls_myubuihvjl4s", "checksum": "c7b336f6c4370f3b137a37762b3e34a45ffbdee9d31aba2dc1e8ae6ac7bd56d9"}], "informational": false}, {"id": "fls_vdq3cphhpxmg", "number": "B.397", "title": "macro transcription", "link": "glossary.html#macro-transcription", "paragraphs": [{"id": "fls_nouiggbpipg", "number": "B.397:1", "link": "glossary.html#fls_nouiggbpipg", "checksum": "5adf84e026b68d65082ce2b636187b84f445f4d14c4f204eb97c1efc67da7292"}], "informational": false}, {"id": "fls_dz192n9muwpg", "number": "B.398", "title": "main function", "link": "glossary.html#main-function", "paragraphs": [{"id": "fls_au3ovrkenr59", "number": "B.398:1", "link": "glossary.html#fls_au3ovrkenr59", "checksum": "786b8ad12199f175d48897e591e23559a67c00e019fd7ccc0f59e515e25e581e"}], "informational": false}, {"id": "fls_fizf1byuspv2", "number": "B.399", "title": "match arm", "link": "glossary.html#match-arm", "paragraphs": [{"id": "fls_z5qsy5z2zak3", "number": "B.399:1", "link": "glossary.html#fls_z5qsy5z2zak3", "checksum": "9482836bf585816b2fdb19a12c5da85f014b8e65602b245ae13257fd397d0e3f"}], "informational": false}, {"id": "fls_q7lcdtxuy1ac", "number": "B.400", "title": "match arm body", "link": "glossary.html#match-arm-body", "paragraphs": [{"id": "fls_33e7oefx0xqm", "number": "B.400:1", "link": "glossary.html#fls_33e7oefx0xqm", "checksum": "e1d392e3bce0aa46cec6c2e69f6d16c99e1fe9e20bef57e1170dfdca473be6e6"}], "informational": false}, {"id": "fls_aa1x6ajl4zid", "number": "B.401", "title": "match arm guard", "link": "glossary.html#match-arm-guard", "paragraphs": [{"id": "fls_uhn07jmvv9ea", "number": "B.401:1", "link": "glossary.html#fls_uhn07jmvv9ea", "checksum": "45c179df701122702d38c7dadf12bc1583f322da9efa0efa5a60b26e0eea53dc"}, {"id": "fls_ykf70vbng54n", "number": "B.401:2", "link": "glossary.html#fls_ykf70vbng54n", "checksum": "5e9073efe521f3c72da5efcabe7a2facc45281c7d3ad4f837f217af4ee40d1dc"}], "informational": false}, {"id": "fls_i3omadaygum2", "number": "B.402", "title": "match arm matcher", "link": "glossary.html#match-arm-matcher", "paragraphs": [{"id": "fls_paz9358w4cpu", "number": "B.402:1", "link": "glossary.html#fls_paz9358w4cpu", "checksum": "1c3440394d2d7311b5eb02ec970c0499c201a23ac3d04b14c5b0f8523e7d9a16"}, {"id": "fls_j7i2bjvzz1tx", "number": "B.402:2", "link": "glossary.html#fls_j7i2bjvzz1tx", "checksum": "fd6bd79198d1beeb7f0e092a6bb6fe0c1a11179fe60ce2715d55bcbdfefeb38a"}], "informational": false}, {"id": "fls_w15uouo0sjao", "number": "B.403", "title": "match expression", "link": "glossary.html#match-expression", "paragraphs": [{"id": "fls_2ohrphptjny6", "number": "B.403:1", "link": "glossary.html#fls_2ohrphptjny6", "checksum": "6557abf3a2930ad9e886b80cc340e32eebf01f2d5a45aabc11dd3fb602d655d7"}, {"id": "fls_wkalvzkmp95y", "number": "B.403:2", "link": "glossary.html#fls_wkalvzkmp95y", "checksum": "f5467f21fb4fbd5c7a3d1631d24f1bb65c14297d36e9225116ad32ef12a9f5c1"}], "informational": false}, {"id": "fls_xo9uyazcfuq3", "number": "B.404", "title": "metavariable", "link": "glossary.html#metavariable", "paragraphs": [{"id": "fls_fu1esz5i9mt", "number": "B.404:1", "link": "glossary.html#fls_fu1esz5i9mt", "checksum": "be0c3dc47d1448861b92b97d2ca6df362b9b0c92cbaef439a7c405b8d6020ff3"}, {"id": "fls_k4xaw93z8x33", "number": "B.404:2", "link": "glossary.html#fls_k4xaw93z8x33", "checksum": "379cb24f12e7d1b0cc7005800322abb89fecf29cfbb82181e83f9840c6c6ebf5"}], "informational": false}, {"id": "fls_5p2594jy7ude", "number": "B.405", "title": "metavariable indication", "link": "glossary.html#metavariable-indication", "paragraphs": [{"id": "fls_r1fxbwffc9wt", "number": "B.405:1", "link": "glossary.html#fls_r1fxbwffc9wt", "checksum": "89d9e2d880232a14ed1f317db88294b96b5a0537f7d28459f7425db365393ea3"}, {"id": "fls_bcmo2a0e0gxj", "number": "B.405:2", "link": "glossary.html#fls_bcmo2a0e0gxj", "checksum": "d227e72ebf1cd311ecad540ddeb8695ffd297714f1dcc3e4ca08784236f64fa5"}], "informational": false}, {"id": "fls_bi3g8xkk9ekf", "number": "B.406", "title": "method", "link": "glossary.html#method", "paragraphs": [{"id": "fls_n4opbiofu9q6", "number": "B.406:1", "link": "glossary.html#fls_n4opbiofu9q6", "checksum": "fdb86737b8b408d5bb953cf6a525cc9139ba25501ba50b1cb45c3c6406637dd3"}], "informational": false}, {"id": "fls_l4wel2551cw9", "number": "B.407", "title": "method call expression", "link": "glossary.html#method-call-expression", "paragraphs": [{"id": "fls_367sod24edts", "number": "B.407:1", "link": "glossary.html#fls_367sod24edts", "checksum": "743c664e87914194f65ee638557b4a2bcc2110ad6b68140945dcaae53198fc78"}, {"id": "fls_ohhcvxcaqv11", "number": "B.407:2", "link": "glossary.html#fls_ohhcvxcaqv11", "checksum": "1bf032c998565a27bff84f22aec7a6a42135b79bd6dbb7d86aa3b63d4f55875d"}], "informational": false}, {"id": "fls_l6ejxvmpllqq", "number": "B.408", "title": "method operand", "link": "glossary.html#method-operand", "paragraphs": [{"id": "fls_vllafjaxcfke", "number": "B.408:1", "link": "glossary.html#fls_vllafjaxcfke", "checksum": "fa9c74d795b4aee1abb0c510515f89026b33a0984b24bedbbfe2bc51d5790d3b"}, {"id": "fls_pkgr4fjqzpj6", "number": "B.408:2", "link": "glossary.html#fls_pkgr4fjqzpj6", "checksum": "0ac711730f51c5dccb2d3a7fe7d614350d35c590533c06ad13ad546006c88743"}], "informational": false}, {"id": "fls_05yfh5ud0ykw", "number": "B.409", "title": "method resolution", "link": "glossary.html#method-resolution", "paragraphs": [{"id": "fls_lbw4z6otud1l", "number": "B.409:1", "link": "glossary.html#fls_lbw4z6otud1l", "checksum": "a9435aa4761b186ce68b1325729655422181f6d1ff0eaafb6cb211b4b24b0354"}], "informational": false}, {"id": "fls_2ffrdj5co0ks", "number": "B.410", "title": "mixed site hygiene", "link": "glossary.html#mixed-site-hygiene", "paragraphs": [{"id": "fls_hjjpnmkizxlt", "number": "B.410:1", "link": "glossary.html#fls_hjjpnmkizxlt", "checksum": "24d03e78b15873359093b7f11170b9c9cf70a53e2872787d6d5f4ba06a2b2c1f"}], "informational": false}, {"id": "fls_5hoe1v960xfi", "number": "B.411", "title": "modifying operand", "link": "glossary.html#modifying-operand", "paragraphs": [{"id": "fls_9wt2l5gg06pb", "number": "B.411:1", "link": "glossary.html#fls_9wt2l5gg06pb", "checksum": "f06a84237b1aed4ddbd1c303a8b54800d376114f7b4740266a7935e3e70320e4"}, {"id": "fls_qnwbrwdnv7n0", "number": "B.411:2", "link": "glossary.html#fls_qnwbrwdnv7n0", "checksum": "916422661cb3cde0942b5fbf703a46b5b4a8583f77cb9536e6f57041e07f9ea8"}], "informational": false}, {"id": "fls_kbxk78vm564e", "number": "B.412", "title": "module", "link": "glossary.html#module", "paragraphs": [{"id": "fls_ujlsg58bskl5", "number": "B.412:1", "link": "glossary.html#fls_ujlsg58bskl5", "checksum": "f2d8f7f0bd7a74a1290c110cd157273e5948f198d45253dd0b77f3305cd55271"}, {"id": "fls_os60q6vvm71c", "number": "B.412:2", "link": "glossary.html#fls_os60q6vvm71c", "checksum": "450213c07476598d14fec31d50c4646cefb111066845f4f27074940461b76ee6"}], "informational": false}, {"id": "fls_gnucgrytswa4", "number": "B.413", "title": "move type", "link": "glossary.html#move-type", "paragraphs": [{"id": "fls_ri37ez31gai8", "number": "B.413:1", "link": "glossary.html#fls_ri37ez31gai8", "checksum": "03420fc54c8739e1ac8749d267fbcb79d9eda94bbb781e1d089793c71d3294d8"}], "informational": false}, {"id": "fls_iw2vygmlhlsg", "number": "B.414", "title": "multi segment path", "link": "glossary.html#multi-segment-path", "paragraphs": [{"id": "fls_t4xd6w6eqpsb", "number": "B.414:1", "link": "glossary.html#fls_t4xd6w6eqpsb", "checksum": "bb9da22604de97e5ed37317c56ab5dc8af805c12405f5c43d177be3fe395694b"}], "informational": false}, {"id": "fls_lpsclhnaxecg", "number": "B.415", "title": "multiplication assignment", "link": "glossary.html#multiplication-assignment", "paragraphs": [{"id": "fls_llub5vhkjww4", "number": "B.415:1", "link": "glossary.html#fls_llub5vhkjww4", "checksum": "9a42dfd1225c651006e14872ee23fa315d11176760e05f6b1fbd9d8d03fbb305"}], "informational": false}, {"id": "fls_yo4k6lk0tizn", "number": "B.416", "title": "multiplication assignment expression", "link": "glossary.html#multiplication-assignment-expression", "paragraphs": [{"id": "fls_eo9gx05n5ru3", "number": "B.416:1", "link": "glossary.html#fls_eo9gx05n5ru3", "checksum": "87167727330385c9802e8fef3d66daa817ab0e0afc0b1a4f4337bf7c6e691c2a"}, {"id": "fls_b0dc5lec1mdc", "number": "B.416:2", "link": "glossary.html#fls_b0dc5lec1mdc", "checksum": "a5029774cf8e94fe21723165e8f906fbcd2039fbdb0450c4cf0a389c741bfeca"}], "informational": false}, {"id": "fls_bgtznqqgtmd8", "number": "B.417", "title": "multiplication expression", "link": "glossary.html#multiplication-expression", "paragraphs": [{"id": "fls_324qh8wz474b", "number": "B.417:1", "link": "glossary.html#fls_324qh8wz474b", "checksum": "953b4baa5f434ef308e2ed7137c138c94996feb90933a70fc13b372499426426"}, {"id": "fls_34bkl5i75q5", "number": "B.417:2", "link": "glossary.html#fls_34bkl5i75q5", "checksum": "48ced6114174b83267a99089cfa219cbdd71643a4a3ee89cb3dc1d4c0387f607"}], "informational": false}, {"id": "fls_ym11bcxn4p7c", "number": "B.418", "title": "mutability", "link": "glossary.html#mutability", "paragraphs": [{"id": "fls_lbrxj9lo4s6o", "number": "B.418:1", "link": "glossary.html#fls_lbrxj9lo4s6o", "checksum": "921563a93251286be4f1640b3b57362f2a64d15693e4638b53cf087edb85614a"}], "informational": false}, {"id": "fls_wvejcadmzt5p", "number": "B.419", "title": "mutable", "link": "glossary.html#mutable", "paragraphs": [{"id": "fls_dqm58deu1orn", "number": "B.419:1", "link": "glossary.html#fls_dqm58deu1orn", "checksum": "a45de552ec27d3cf42e34f94296cdde8f5b25e75ed29b92d304cd653a55753c3"}], "informational": false}, {"id": "fls_tevphhicmbyo", "number": "B.420", "title": "mutable assignee expression", "link": "glossary.html#mutable-assignee-expression", "paragraphs": [{"id": "fls_0rslfbwrb3gp", "number": "B.420:1", "link": "glossary.html#fls_0rslfbwrb3gp", "checksum": "ae80789528355e3fd763bccf50dd6e89b7762be7f85442e7ac7a317f69e92a3b"}], "informational": false}, {"id": "fls_ntaa0ntj9z5h", "number": "B.421", "title": "mutable binding", "link": "glossary.html#mutable-binding", "paragraphs": [{"id": "fls_v2pgkvaqjtcl", "number": "B.421:1", "link": "glossary.html#fls_v2pgkvaqjtcl", "checksum": "8e5d90dce9637632da4203a8b7dca0688125de45b002932400b89c3610743005"}], "informational": false}, {"id": "fls_iku91jwdtdr1", "number": "B.422", "title": "mutable borrow", "link": "glossary.html#mutable-borrow", "paragraphs": [{"id": "fls_5knwbyz4fd9z", "number": "B.422:1", "link": "glossary.html#fls_5knwbyz4fd9z", "checksum": "6fcd4c6e36e26e8d5a43feb62409812d77e18c03cab99436ea9a5afc6c118209"}], "informational": false}, {"id": "fls_kw3oiotr98tt", "number": "B.423", "title": "mutable borrow expression", "link": "glossary.html#mutable-borrow-expression", "paragraphs": [{"id": "fls_80kcc4y21hu6", "number": "B.423:1", "link": "glossary.html#fls_80kcc4y21hu6", "checksum": "f5756acb378386fbd2d24b12c2003b186bf43fa217f74a22a6058e87ba23b122"}], "informational": false}, {"id": "fls_7eyza445ew53", "number": "B.424", "title": "mutable place expression", "link": "glossary.html#mutable-place-expression", "paragraphs": [{"id": "fls_kq877s3vij70", "number": "B.424:1", "link": "glossary.html#fls_kq877s3vij70", "checksum": "8258532fc3796ab5659874d42b0fd28c7e630105091b0e0d51e9e81b1687fb17"}], "informational": false}, {"id": "fls_x5bkvlc4kdlk", "number": "B.425", "title": "mutable place expression context", "link": "glossary.html#mutable-place-expression-context", "paragraphs": [{"id": "fls_2ixh8lwghi3k", "number": "B.425:1", "link": "glossary.html#fls_2ixh8lwghi3k", "checksum": "bc2a9b072e7ce04b5318c441aa6ae721780ee0588ece5a5c5253035f7dcfa31d"}], "informational": false}, {"id": "fls_wovlw47jkewf", "number": "B.426", "title": "mutable raw pointer type", "link": "glossary.html#mutable-raw-pointer-type", "paragraphs": [{"id": "fls_86sfxsdrcc06", "number": "B.426:1", "link": "glossary.html#fls_86sfxsdrcc06", "checksum": "9088dc4f9916aea9feb2c5fac071c64a7726e8531771a1ea0d8b6985546bde12"}], "informational": false}, {"id": "fls_jtzj092hyjkz", "number": "B.427", "title": "mutable reference", "link": "glossary.html#mutable-reference", "paragraphs": [{"id": "fls_wujjrhm1d338", "number": "B.427:1", "link": "glossary.html#fls_wujjrhm1d338", "checksum": "790b5207e54c3cc5e5266e59f67821a24906a98dbe5ee05e10d507ba3e9b4661"}], "informational": false}, {"id": "fls_8iq0wcczl465", "number": "B.428", "title": "mutable reference type", "link": "glossary.html#mutable-reference-type", "paragraphs": [{"id": "fls_q06p9tclwaaw", "number": "B.428:1", "link": "glossary.html#fls_q06p9tclwaaw", "checksum": "85809fee723d88b984def31efa7cb2e0c5c3a90be00833301b513cb2edec06f1"}], "informational": false}, {"id": "fls_omgyj7yxwgua", "number": "B.429", "title": "mutable static", "link": "glossary.html#mutable-static", "paragraphs": [{"id": "fls_3ss4bokujaby", "number": "B.429:1", "link": "glossary.html#fls_3ss4bokujaby", "checksum": "7affaac9d2a652dcf6c533a387f7d24e76569f24e04cbb44bd693c708961a464"}], "informational": false}, {"id": "fls_n7h4xr40xwgb", "number": "B.430", "title": "mutable variable", "link": "glossary.html#mutable-variable", "paragraphs": [{"id": "fls_kjjv9jvdpf2o", "number": "B.430:1", "link": "glossary.html#fls_kjjv9jvdpf2o", "checksum": "ca62498a89b2c5bf1776f928d2d026eb39cf43b5df3abdfb967406b6ae26ad9e"}], "informational": false}, {"id": "fls_kad7fzn94x4d", "number": "B.431", "title": "name", "link": "glossary.html#name", "paragraphs": [{"id": "fls_jjpzrs38vs3y", "number": "B.431:1", "link": "glossary.html#fls_jjpzrs38vs3y", "checksum": "2f143ada7318a9b3662f0de044b16d8f44b009081e6cdebaeacb250810127bb0"}, {"id": "fls_yrzevg5kd4bi", "number": "B.431:2", "link": "glossary.html#fls_yrzevg5kd4bi", "checksum": "b7c4f756bfa47508c075cc059cf7f4f4cf07915feafad80ef556657a474abf07"}], "informational": false}, {"id": "fls_cxzbzlu4pwpy", "number": "B.432", "title": "named block expression", "link": "glossary.html#named-block-expression", "paragraphs": [{"id": "fls_ivfb8uamvy3q", "number": "B.432:1", "link": "glossary.html#fls_ivfb8uamvy3q", "checksum": "3e044b65b674a3ca81a47e1f3885f0bd6ecf9dea10da9f661431aa6644b528b4"}], "informational": false}, {"id": "fls_dgs9y3nan69v", "number": "B.433", "title": "named deconstructor", "link": "glossary.html#named-deconstructor", "paragraphs": [{"id": "fls_g3k1hy3j4qn9", "number": "B.433:1", "link": "glossary.html#fls_g3k1hy3j4qn9", "checksum": "842d954f726fffa8307a5964fbe4e3363cf390f4b861cdc174ef3a544d77828a"}, {"id": "fls_ujreg07979g8", "number": "B.433:2", "link": "glossary.html#fls_ujreg07979g8", "checksum": "04ce26c3e1f3f563dd2836f16c28520abf5b16297c6e52ca191c8dd8ce1f8a06"}], "informational": false}, {"id": "fls_cvxdoycoytc5", "number": "B.434", "title": "named field selector", "link": "glossary.html#named-field-selector", "paragraphs": [{"id": "fls_cczpgxqdyh1e", "number": "B.434:1", "link": "glossary.html#fls_cczpgxqdyh1e", "checksum": "c99f54bc8403e25d40c36ab4256c395f6953411a475f5f2906352f7cd9e42776"}, {"id": "fls_hpw0n89ez5nw", "number": "B.434:2", "link": "glossary.html#fls_hpw0n89ez5nw", "checksum": "f1016103f42eef115e6ef4d177f969a429d4575ad9c39fe8ed488030aafd2427"}], "informational": false}, {"id": "fls_kp0mbopkbjer", "number": "B.435", "title": "named initializer", "link": "glossary.html#named-initializer", "paragraphs": [{"id": "fls_xwvz8i4jim7a", "number": "B.435:1", "link": "glossary.html#fls_xwvz8i4jim7a", "checksum": "2329311bb7c20c5a103c2af86d961c59d26d23a905b3bb20dcc3684ee39ede57"}, {"id": "fls_aueznbw3lohl", "number": "B.435:2", "link": "glossary.html#fls_aueznbw3lohl", "checksum": "7f9ed5515b0507e08c6fcd3b86010cf6654a304d970e56c616b1432592f17699"}], "informational": false}, {"id": "fls_biwn3hxza37n", "number": "B.436", "title": "named loop expression", "link": "glossary.html#named-loop-expression", "paragraphs": [{"id": "fls_440dr5qix3ns", "number": "B.436:1", "link": "glossary.html#fls_440dr5qix3ns", "checksum": "45b90d2044a94a97f1622b1372eef6e296fd6e7abe5ce0c5720f303b8d25d3e3"}], "informational": false}, {"id": "fls_wt1zdxtzwuue", "number": "B.437", "title": "named register argument", "link": "glossary.html#named-register-argument", "paragraphs": [{"id": "fls_qbwhppno8fpk", "number": "B.437:1", "link": "glossary.html#fls_qbwhppno8fpk", "checksum": "68304a639bfdfd591b6d81a54cd99f8de662950f4f4be443a95f6648d927c048"}], "informational": false}, {"id": "fls_gesmswsvhv3f", "number": "B.438", "title": "namespace", "link": "glossary.html#namespace", "paragraphs": [{"id": "fls_er8lcvneqxa5", "number": "B.438:1", "link": "glossary.html#fls_er8lcvneqxa5", "checksum": "79903dfaf51b0a6db870067d9c6708637db0cb9c51954700dec678bb066b93c3"}], "informational": false}, {"id": "fls_z3lxbjf4gaqv", "number": "B.439", "title": "NaN-boxing", "link": "glossary.html#nan-boxing", "paragraphs": [{"id": "fls_s956sjgwoa6z", "number": "B.439:1", "link": "glossary.html#fls_s956sjgwoa6z", "checksum": "f884e5377134b816bbcaf560a3791eabd70bfca4564ec99846697d6ae27c160e"}], "informational": false}, {"id": "fls_3sp4twvfvb32", "number": "B.440", "title": "negation expression", "link": "glossary.html#negation-expression", "paragraphs": [{"id": "fls_pmn6cjamdt0a", "number": "B.440:1", "link": "glossary.html#fls_pmn6cjamdt0a", "checksum": "eecb4e52cf7b3ab51b61495e24474910c75a36ad7c66ea286d9902066f0cc09c"}, {"id": "fls_o1f35ud4klvv", "number": "B.440:2", "link": "glossary.html#fls_o1f35ud4klvv", "checksum": "a0ac128d622e13f0a3e95e294440ef1740d39770c599f08474ab7b8225290f63"}], "informational": false}, {"id": "fls_6rlvd0u4w6h2", "number": "B.441", "title": "nesting import", "link": "glossary.html#nesting-import", "paragraphs": [{"id": "fls_nhkqkdqo32xs", "number": "B.441:1", "link": "glossary.html#fls_nhkqkdqo32xs", "checksum": "9b3b52ee8addfafa5290a18b0526b0e262c110c4dba134e24600185ea32cb7f2"}, {"id": "fls_z4d611glen13", "number": "B.441:2", "link": "glossary.html#fls_z4d611glen13", "checksum": "50e952ca39eabd1b9c84a590eeea20dc18149d354ab428b0ae53d61697a1edfc"}], "informational": false}, {"id": "fls_cwcbtnzbqmq2", "number": "B.442", "title": "never type", "link": "glossary.html#never-type", "paragraphs": [{"id": "fls_m9v5j6detob4", "number": "B.442:1", "link": "glossary.html#fls_m9v5j6detob4", "checksum": "bff24b790bd2765a0ae1d2b8cade1a40d802da6af67d3e13da1f98d467eabb4b"}, {"id": "fls_k5z1vjxepnfj", "number": "B.442:2", "link": "glossary.html#fls_k5z1vjxepnfj", "checksum": "3c8dd8cbce92e7e091520afdcecc7dabb89d306f5f446a424147e681ed3f464a"}], "informational": false}, {"id": "fls_3vhflvajgqzd", "number": "B.443", "title": "non-reference pattern", "link": "glossary.html#non-reference-pattern", "paragraphs": [{"id": "fls_tejled5izyue", "number": "B.443:1", "link": "glossary.html#fls_tejled5izyue", "checksum": "5d7a6f16e2b83cea6ed807ef284ed37bcfea409044ff12538cca881f34d4313c"}], "informational": false}, {"id": "fls_5u8ihvdp4mdb", "number": "B.444", "title": "not configuration predicate", "link": "glossary.html#not-configuration-predicate", "paragraphs": [{"id": "fls_bvmlbterkfyq", "number": "B.444:1", "link": "glossary.html#fls_bvmlbterkfyq", "checksum": "221e7357ec4062d6797d6359958208e54d75467f42ab04e41ad890e3f1a38172"}, {"id": "fls_9j9aancv0vna", "number": "B.444:2", "link": "glossary.html#fls_9j9aancv0vna", "checksum": "3b3110f44f634a0c3c4a54ab94e02145944433408e11a342496fd6d8ae11395e"}], "informational": false}, {"id": "fls_shgatqvpdqkg", "number": "B.445", "title": "not-equals expression", "link": "glossary.html#not-equals-expression", "paragraphs": [{"id": "fls_2hmynl94uusk", "number": "B.445:1", "link": "glossary.html#fls_2hmynl94uusk", "checksum": "8b5a09650bbb9136e81393b63b7d0696da00347721e07730f4298aa2ac6e5eed"}, {"id": "fls_5d6vvr9m35n2", "number": "B.445:2", "link": "glossary.html#fls_5d6vvr9m35n2", "checksum": "2fcd35d91a3b60d2418157e4d55466d2f35f6d7e6b03a634262daafa5c41a13e"}], "informational": false}, {"id": "fls_gqw1bzwexxt0", "number": "B.446", "title": "null", "link": "glossary.html#null", "paragraphs": [{"id": "fls_8sh17t37b2ml", "number": "B.446:1", "link": "glossary.html#fls_8sh17t37b2ml", "checksum": "c74b901f88e6422e1757c3e9ba3d1dc8fdfef27922fb0b92be03574956929a0d"}], "informational": false}, {"id": "fls_a0qsojiymgjy", "number": "B.447", "title": "numeric literal", "link": "glossary.html#numeric-literal", "paragraphs": [{"id": "fls_978ndaqdv4r", "number": "B.447:1", "link": "glossary.html#fls_978ndaqdv4r", "checksum": "3a9869e08f3041442b54b7ba31117a92030d76ce7f4b9fd199fe8a9fdc332038"}, {"id": "fls_swue4tma9fmf", "number": "B.447:2", "link": "glossary.html#fls_swue4tma9fmf", "checksum": "260dcf75a99a860cf36d67f61f6fd66084142ea2921dfc3dca5226a866538e90"}], "informational": false}, {"id": "fls_rayjriyofmpa", "number": "B.448", "title": "numeric type", "link": "glossary.html#numeric-type", "paragraphs": [{"id": "fls_cpdsj94l57af", "number": "B.448:1", "link": "glossary.html#fls_cpdsj94l57af", "checksum": "f6982eeb521169d18f7b3211ce4d2db1795a494ca32b4bfbd52fd978fca5732d"}], "informational": false}, {"id": "fls_a226qzrb4iq9", "number": "B.449", "title": "object safe", "link": "glossary.html#object-safe", "paragraphs": [{"id": "fls_oa2jiklr5nl2", "number": "B.449:1", "link": "glossary.html#fls_oa2jiklr5nl2", "checksum": "e488195c335e18072e4e48c855a1eed43e65910ee2a2cafd06c7217267cc9e78"}], "informational": false}, {"id": "fls_vomlqv7i1fc4", "number": "B.450", "title": "object safety", "link": "glossary.html#object-safety", "paragraphs": [{"id": "fls_vqmng1l9ab8a", "number": "B.450:1", "link": "glossary.html#fls_vqmng1l9ab8a", "checksum": "bb795012707fe09e40b9776a7484850f203a380f854cbe1d20726f55b5a59c72"}], "informational": false}, {"id": "fls_bo889w63y7oi", "number": "B.451", "title": "obsolete range pattern", "link": "glossary.html#obsolete-range-pattern", "paragraphs": [{"id": "fls_ave42vwb45zb", "number": "B.451:1", "link": "glossary.html#fls_ave42vwb45zb", "checksum": "5141dbbb4eed64b6f01219411a0883c6ec7b86ffd1cf93e8378cb77426030eb5"}, {"id": "fls_ta0wa8ta9ol4", "number": "B.451:2", "link": "glossary.html#fls_ta0wa8ta9ol4", "checksum": "5a891041ccdf5973d7e8b29a2c39bd2e4548c3e2bae4d34a74444910f0a4b1fc"}], "informational": false}, {"id": "fls_q47u2zq6clon", "number": "B.452", "title": "octal literal", "link": "glossary.html#octal-literal", "paragraphs": [{"id": "fls_pf4341vnqiin", "number": "B.452:1", "link": "glossary.html#fls_pf4341vnqiin", "checksum": "5b159023d4dab86c8289c2b619e307e02ab8241d90be7f51971a9f21cadc2c4c"}, {"id": "fls_8u0n6xu0mizm", "number": "B.452:2", "link": "glossary.html#fls_8u0n6xu0mizm", "checksum": "bd14aa7f084817a8f736bc415b84f6f4049dd8586011be7167b5b6f51c995584"}], "informational": false}, {"id": "fls_pv4lok5qcn8y", "number": "B.453", "title": "operand", "link": "glossary.html#operand", "paragraphs": [{"id": "fls_3mnn1au9ob6q", "number": "B.453:1", "link": "glossary.html#fls_3mnn1au9ob6q", "checksum": "5fe01a90aef55905159f37f242890148a65381cd487ee5fcbb22d724428cb3de"}, {"id": "fls_8299xfhdsd1", "number": "B.453:2", "link": "glossary.html#fls_8299xfhdsd1", "checksum": "a83ebaffd017390679204da67203295074496e69637faf5d3dd5c7516c9f4fc6"}], "informational": false}, {"id": "fls_smk8mi72lt57", "number": "B.454", "title": "operator expression", "link": "glossary.html#operator-expression", "paragraphs": [{"id": "fls_6ev01xwcfow1", "number": "B.454:1", "link": "glossary.html#fls_6ev01xwcfow1", "checksum": "b0ac089ce6d314e4571988cd75d462fcbe40383a38d73da01ab7ec93069b924b"}, {"id": "fls_qdszbyeuo7w1", "number": "B.454:2", "link": "glossary.html#fls_qdszbyeuo7w1", "checksum": "3294d2b103a3d6c471fbd3921fa513d8eb379d8189961373b2f2773a6818101b"}], "informational": false}, {"id": "fls_c5dicsvsabsj", "number": "B.455", "title": "opt-out trait bound", "link": "glossary.html#opt-out-trait-bound", "paragraphs": [{"id": "fls_ws4ezn0n1gdp", "number": "B.455:1", "link": "glossary.html#fls_ws4ezn0n1gdp", "checksum": "99bc9c57c220ee5ca9f3ffb6714ae7c66bf44ffccd231d8d0ef16dd01709f69f"}], "informational": false}, {"id": "fls_gllzixm9yt9w", "number": "B.456", "title": "outer attribute", "link": "glossary.html#outer-attribute", "paragraphs": [{"id": "fls_gffxnbilsqly", "number": "B.456:1", "link": "glossary.html#fls_gffxnbilsqly", "checksum": "e5970e90ac3f28f7bd55a99b22584b62fc9bf3c723cd333b1281ea364b3aeccc"}, {"id": "fls_ty6ihy6x3kf", "number": "B.456:2", "link": "glossary.html#fls_ty6ihy6x3kf", "checksum": "dafb38d0ea0502fbf8f6957a4d3573a5327aa4ce18ecf4ad2d2b1da226bce867"}], "informational": false}, {"id": "fls_toncretg92qh", "number": "B.457", "title": "outer block doc", "link": "glossary.html#outer-block-doc", "paragraphs": [{"id": "fls_531ggn1f8f6u", "number": "B.457:1", "link": "glossary.html#fls_531ggn1f8f6u", "checksum": "f376384f0f6c279aa34afc028e25d66dd871db3e4fc02342f2b8000f35c42e49"}, {"id": "fls_ddy9a66tpytp", "number": "B.457:2", "link": "glossary.html#fls_ddy9a66tpytp", "checksum": "64d90cf7adf4d5a344cf4b8c3b657bdbd5906b36ba1adcfc5f45ef21f8c87134"}], "informational": false}, {"id": "fls_putd100swo5n", "number": "B.458", "title": "outer doc comment", "link": "glossary.html#outer-doc-comment", "paragraphs": [{"id": "fls_mgseunupcpbs", "number": "B.458:1", "link": "glossary.html#fls_mgseunupcpbs", "checksum": "58b1d7c2dc6797e6bbbe447b8084f4dabf2cf2b27007f794e217774d1b6331ed"}], "informational": false}, {"id": "fls_eqjbv8sovvfl", "number": "B.459", "title": "outer line doc", "link": "glossary.html#outer-line-doc", "paragraphs": [{"id": "fls_m3u30fu8uac3", "number": "B.459:1", "link": "glossary.html#fls_m3u30fu8uac3", "checksum": "4e92b4f1208fe3471467a760f1528e373e782c37c88e1de82e1e3ba102f163c5"}, {"id": "fls_1ppwidw7szk5", "number": "B.459:2", "link": "glossary.html#fls_1ppwidw7szk5", "checksum": "8e60507625ed92420802f9708138ddedb1dd61d29f356499cbdb95ef1200576a"}], "informational": false}, {"id": "fls_de935b1pzd28", "number": "B.460", "title": "outline module", "link": "glossary.html#outline-module", "paragraphs": [{"id": "fls_xhe5gmr0r9zn", "number": "B.460:1", "link": "glossary.html#fls_xhe5gmr0r9zn", "checksum": "a433125983513d73b2788a482e86ce8ee3eae7fda70a0f49b72aaa563c8ca6d5"}, {"id": "fls_wu5wqylzx9ke", "number": "B.460:2", "link": "glossary.html#fls_wu5wqylzx9ke", "checksum": "6474723be463010152d6db48870c978a635d7aad1463a5dda3b10135d970470e"}], "informational": false}, {"id": "fls_5lhir1koieo5", "number": "B.461", "title": "outlives bound", "link": "glossary.html#outlives-bound", "paragraphs": [{"id": "fls_j5dt34ii7pm6", "number": "B.461:1", "link": "glossary.html#fls_j5dt34ii7pm6", "checksum": "664dc5c79d01a330a354ea02f51bcfe3681a68e19f181e09053ecf12b1808cd9"}], "informational": false}, {"id": "fls_xsgnaa47nen0", "number": "B.462", "title": "output register", "link": "glossary.html#output-register", "paragraphs": [{"id": "fls_4meti8qe9jiy", "number": "B.462:1", "link": "glossary.html#fls_4meti8qe9jiy", "checksum": "72a1edab48d76b04199e8bfe7825c3eab26a9914b6b707eaced222db6c12bfed"}], "informational": false}, {"id": "fls_t79akpilx8jk", "number": "B.463", "title": "output register expression", "link": "glossary.html#output-register-expression", "paragraphs": [{"id": "fls_w95yrz4jjbxl", "number": "B.463:1", "link": "glossary.html#fls_w95yrz4jjbxl", "checksum": "d01b68338f0da933e93d306807c765c36bb0b742d511d7ca14c26cf9dba55c99"}, {"id": "fls_8b3ldfzvy7pa", "number": "B.463:2", "link": "glossary.html#fls_8b3ldfzvy7pa", "checksum": "d0ddc55bbc3d95e786e480bb7babecab0f9818791e68a7c269f0ee4b6c18187b"}], "informational": false}, {"id": "fls_nhamq7xtz384", "number": "B.464", "title": "overlap", "link": "glossary.html#overlap", "paragraphs": [{"id": "fls_itkz9y19923k", "number": "B.464:1", "link": "glossary.html#fls_itkz9y19923k", "checksum": "b0af4ac1c1fc45ead27b4769e33d2b79b64039af33e54ceafa90d18f0a477756"}], "informational": false}, {"id": "fls_ke52l9lsvyu2", "number": "B.465", "title": "owner", "link": "glossary.html#owner", "paragraphs": [{"id": "fls_7vwwhberexeb", "number": "B.465:1", "link": "glossary.html#fls_7vwwhberexeb", "checksum": "6ab8a36cbef90178c432b873775b2ab984639224142be9cc9f19536cffd7a186"}], "informational": false}, {"id": "fls_1gmetz8qtr0l", "number": "B.466", "title": "ownership", "link": "glossary.html#ownership", "paragraphs": [{"id": "fls_tu4zt8twucsz", "number": "B.466:1", "link": "glossary.html#fls_tu4zt8twucsz", "checksum": "40f81f5362eaceabd4c5ece13ebbe6faddf0742fdafffab10aced035f75d8123"}], "informational": false}, {"id": "fls_wzpivxkhpln", "number": "B.467", "title": "panic", "link": "glossary.html#panic", "paragraphs": [{"id": "fls_t3kpbnmohtp6", "number": "B.467:1", "link": "glossary.html#fls_t3kpbnmohtp6", "checksum": "4a80bb4c8a45cec8ec08f6c2c73fcef85fe05514030a1fed86d97931b34a2577"}], "informational": false}, {"id": "fls_fl56jfxbj0f", "number": "B.468", "title": "parenthesized expression", "link": "glossary.html#parenthesized-expression", "paragraphs": [{"id": "fls_yu1x2rr7cewa", "number": "B.468:1", "link": "glossary.html#fls_yu1x2rr7cewa", "checksum": "2cfff0b577b6e3da95e02af9fbda912972b7b7561f3eececb3079825ecb10d8b"}, {"id": "fls_p9exa6fpplfu", "number": "B.468:2", "link": "glossary.html#fls_p9exa6fpplfu", "checksum": "6d3bdfc17d5eb10e2aaf1deca72aa28759c278e9ca6ce02a04c08a1e3f51249b"}], "informational": false}, {"id": "fls_ww6nyinsw1lr", "number": "B.469", "title": "parenthesized pattern", "link": "glossary.html#parenthesized-pattern", "paragraphs": [{"id": "fls_7j12dwsx9ghg", "number": "B.469:1", "link": "glossary.html#fls_7j12dwsx9ghg", "checksum": "3fef2b15481f75a31517ecf9b989491b058b5ecc19c035f2c26d8149fa728405"}, {"id": "fls_rwt31e8m694i", "number": "B.469:2", "link": "glossary.html#fls_rwt31e8m694i", "checksum": "01459e907ed36dc21136455589510a8834aaacd220af233184f91da6bc2b1ab6"}], "informational": false}, {"id": "fls_gilx8zikdq9k", "number": "B.470", "title": "parenthesized type", "link": "glossary.html#parenthesized-type", "paragraphs": [{"id": "fls_pamypc7t7l5n", "number": "B.470:1", "link": "glossary.html#fls_pamypc7t7l5n", "checksum": "b6cdf53116b6fe6c3b499f893a2d2cadff50728b57b75f936070a44e7f417cb9"}, {"id": "fls_lovkvqoni3xs", "number": "B.470:2", "link": "glossary.html#fls_lovkvqoni3xs", "checksum": "57d71332bc8a58df16952d89e63669accbf1249be23bde5e2cf12a9b9a3132a4"}], "informational": false}, {"id": "fls_fulm1ocksaks", "number": "B.471", "title": "partially hygienic", "link": "glossary.html#partially-hygienic", "paragraphs": [{"id": "fls_qh8v0y08dnoa", "number": "B.471:1", "link": "glossary.html#fls_qh8v0y08dnoa", "checksum": "db556c432e1317040a86149c85fc9c6920bd21bd6f1c60a939ba38ec8fb67808"}], "informational": false}, {"id": "fls_wqbd5lxki2al", "number": "B.472", "title": "passing convention", "link": "glossary.html#passing-convention", "paragraphs": [{"id": "fls_eqgsg8j9btic", "number": "B.472:1", "link": "glossary.html#fls_eqgsg8j9btic", "checksum": "1a8c88f11c890a81eec20646539274b3c90d82cb233df59ffab0326e60b82f5b"}], "informational": false}, {"id": "fls_9zl72vtkgkuo", "number": "B.473", "title": "path", "link": "glossary.html#path", "paragraphs": [{"id": "fls_u3jyud6mhy1f", "number": "B.473:1", "link": "glossary.html#fls_u3jyud6mhy1f", "checksum": "86752000cac91f0bc66b07155482b32060922da2c0ae500a80ba4ae2608a293d"}], "informational": false}, {"id": "fls_1xdj34py8zc3", "number": "B.474", "title": "path expression", "link": "glossary.html#path-expression", "paragraphs": [{"id": "fls_4ik66nmvx5hn", "number": "B.474:1", "link": "glossary.html#fls_4ik66nmvx5hn", "checksum": "4bb3009b90c406af213c8dc995cc67a0111738597ec2110564aaa7057249c9fc"}, {"id": "fls_3qjpjqm0legc", "number": "B.474:2", "link": "glossary.html#fls_3qjpjqm0legc", "checksum": "c05fac352b00a12dc595f1319451d2f0d313e898e70ffe3838d14839fb852b28"}], "informational": false}, {"id": "fls_eiftielgzny5", "number": "B.475", "title": "path expression resolution", "link": "glossary.html#path-expression-resolution", "paragraphs": [{"id": "fls_wycevyc3shuk", "number": "B.475:1", "link": "glossary.html#fls_wycevyc3shuk", "checksum": "fa1fbd125cc8278b95a39fb1ee542645f6e6405cf80e9475fcecc2dc0bcc4af0"}], "informational": false}, {"id": "fls_ptikwcw3b20l", "number": "B.476", "title": "path pattern", "link": "glossary.html#path-pattern", "paragraphs": [{"id": "fls_vacvk3t26ctg", "number": "B.476:1", "link": "glossary.html#fls_vacvk3t26ctg", "checksum": "1ddef01b5324d3e5830ddefd71a57e050d7d2c7fd523a22bcfb03250c2a6415f"}, {"id": "fls_9fudbxoyq8k4", "number": "B.476:2", "link": "glossary.html#fls_9fudbxoyq8k4", "checksum": "91b497e9fa3f33bf6884d107b2a1e0920f9711edb4936657a48701a8eab9f6c2"}], "informational": false}, {"id": "fls_j8kibhcawvnj", "number": "B.477", "title": "path resolution", "link": "glossary.html#path-resolution", "paragraphs": [{"id": "fls_uy9ai9vwtkjb", "number": "B.477:1", "link": "glossary.html#fls_uy9ai9vwtkjb", "checksum": "4c13f0f177b0c01dc9d8e8eba86e8c9bcaef9ef206732b0eb5ee534c5245881a"}], "informational": false}, {"id": "fls_xb54s9cs7h08", "number": "B.478", "title": "path segment", "link": "glossary.html#path-segment", "paragraphs": [{"id": "fls_gsumebjc2bsp", "number": "B.478:1", "link": "glossary.html#fls_gsumebjc2bsp", "checksum": "01cb3ca7cb11364fef5535a6641bf8bc2c38c87090eba0d690e2fa318a4338b3"}, {"id": "fls_m067uq7fo66i", "number": "B.478:2", "link": "glossary.html#fls_m067uq7fo66i", "checksum": "aa9d26df950e952959e95fcadb41018d9ec36b7c6cb1c49e2d51bf57fb094c74"}], "informational": false}, {"id": "fls_uj1o721im5lb", "number": "B.479", "title": "pattern", "link": "glossary.html#pattern", "paragraphs": [{"id": "fls_9wwt9k1xlm6n", "number": "B.479:1", "link": "glossary.html#fls_9wwt9k1xlm6n", "checksum": "282073b14300e91d7204be8ea956e9e8b3cfa3158d260105e7dba482180a5dc5"}, {"id": "fls_9va04w9jgdyp", "number": "B.479:2", "link": "glossary.html#fls_9va04w9jgdyp", "checksum": "cf5774737d44c0244752f89f7edba65e74214b321ce211abbefed1aae2717247"}], "informational": false}, {"id": "fls_48mv0zecb0un", "number": "B.480", "title": "pattern matching", "link": "glossary.html#pattern-matching", "paragraphs": [{"id": "fls_y3oputy9e0sz", "number": "B.480:1", "link": "glossary.html#fls_y3oputy9e0sz", "checksum": "687171fdfcb5dc54c9efde5dc880fc8d45c2a7750c34924be62eeef999299aaf"}], "informational": false}, {"id": "fls_cptagvgpgnze", "number": "B.481", "title": "pattern-without-alternation", "link": "glossary.html#pattern-without-alternation", "paragraphs": [{"id": "fls_brussjs3wo6r", "number": "B.481:1", "link": "glossary.html#fls_brussjs3wo6r", "checksum": "aa99ac28601f28f70082de462bb43f46a746ce1f9e1510290e079f4cc60b16ca"}, {"id": "fls_fmysn3eezr54", "number": "B.481:2", "link": "glossary.html#fls_fmysn3eezr54", "checksum": "bb9ae81115e84e34d4d388c6f605b9464dce63718f64bc4b2a53dd7f901a2832"}], "informational": false}, {"id": "fls_yeqozkponzw3", "number": "B.482", "title": "pattern-without-range", "link": "glossary.html#pattern-without-range", "paragraphs": [{"id": "fls_lseovawum7g6", "number": "B.482:1", "link": "glossary.html#fls_lseovawum7g6", "checksum": "8e580aa369d44cbf978bb7f303aa685f9e92502ced79c2f272f4299dcbf51429"}, {"id": "fls_rj8ir4k0k811", "number": "B.482:2", "link": "glossary.html#fls_rj8ir4k0k811", "checksum": "784a5470baa9495f0dde79075042c965584cca9cd7ca07b06691ba8bd12189ff"}], "informational": false}, {"id": "fls_5zjhbzmscqjz", "number": "B.483", "title": "place", "link": "glossary.html#place", "paragraphs": [{"id": "fls_uctiubwhmpy9", "number": "B.483:1", "link": "glossary.html#fls_uctiubwhmpy9", "checksum": "7d6bd706a1c1bf24ed3406adce2a884cee94c370b4f45a0babd5c0ac8ecf007a"}], "informational": false}, {"id": "fls_7x6jhh0sz2f", "number": "B.484", "title": "place expression", "link": "glossary.html#place-expression", "paragraphs": [{"id": "fls_z6mgu2mk142r", "number": "B.484:1", "link": "glossary.html#fls_z6mgu2mk142r", "checksum": "da83786561684ef3f1ea6b5403d5df3f17d2de925757999817aef90a955a6e91"}], "informational": false}, {"id": "fls_tshbqttxdox1", "number": "B.485", "title": "place expression context", "link": "glossary.html#place-expression-context", "paragraphs": [{"id": "fls_fqcx8suiy5k", "number": "B.485:1", "link": "glossary.html#fls_fqcx8suiy5k", "checksum": "da35a8c27fb763f7fae828f196d5fe7127c6d926ae1e195af54823d6077dc39c"}], "informational": false}, {"id": "fls_dr6wbsqjd2qm", "number": "B.486", "title": "plane", "link": "glossary.html#plane", "paragraphs": [{"id": "fls_x1wbguoqdsf9", "number": "B.486:1", "link": "glossary.html#fls_x1wbguoqdsf9", "checksum": "cbad9205a4b6ad94f2293f263834eac0a48c1a589f83481e44dae00d0947d06e"}], "informational": false}, {"id": "fls_hnjehyuitpb1", "number": "B.487", "title": "pointer", "link": "glossary.html#pointer", "paragraphs": [{"id": "fls_drjhmwo9mjof", "number": "B.487:1", "link": "glossary.html#fls_drjhmwo9mjof", "checksum": "8af426150d7b87d3399d36cde4208282a14031da42b92bcb54c3619dd5304962"}], "informational": false}, {"id": "fls_o5o1ssqqd7jg", "number": "B.488", "title": "pointer type", "link": "glossary.html#pointer-type", "paragraphs": [{"id": "fls_f2duxea4nhel", "number": "B.488:1", "link": "glossary.html#fls_f2duxea4nhel", "checksum": "a0837fb75bbafb4bee75f28944324055ef7701aa5ef37bac6239c767582688e3"}], "informational": false}, {"id": "fls_q0r8jkqap6of", "number": "B.489", "title": "positional register argument", "link": "glossary.html#positional-register-argument", "paragraphs": [{"id": "fls_gjd6i52p3km3", "number": "B.489:1", "link": "glossary.html#fls_gjd6i52p3km3", "checksum": "3ffd7cdaaa1084cb6d67d0fd21067e93bcc5984cb0179a655e76f3b3d7178b1c"}], "informational": false}, {"id": "fls_ukvdoqo68y5b", "number": "B.490", "title": "precedence", "link": "glossary.html#precedence", "paragraphs": [{"id": "fls_sz93844rqc4r", "number": "B.490:1", "link": "glossary.html#fls_sz93844rqc4r", "checksum": "96c20de400ea70bdb3228b14ef5ec41d889f849a69602c4a1021d8830d57bf78"}], "informational": false}, {"id": "fls_8gn72fjbarfb", "number": "B.491", "title": "prelude", "link": "glossary.html#prelude", "paragraphs": [{"id": "fls_d0pjioozjknn", "number": "B.491:1", "link": "glossary.html#fls_d0pjioozjknn", "checksum": "1b93f782dd3dcfe565ad4a4c82b0cded61ae1bab29bacd0be29aeb7958b787e8"}], "informational": false}, {"id": "fls_awysdxpgypiw", "number": "B.492", "title": "prelude entity", "link": "glossary.html#prelude-entity", "paragraphs": [{"id": "fls_2lu7rujzflsz", "number": "B.492:1", "link": "glossary.html#fls_2lu7rujzflsz", "checksum": "df2143eaa654123ac252f80f303dad763ddd719296781254975176ca4e5aac2f"}], "informational": false}, {"id": "fls_fyn5jqpohiis", "number": "B.493", "title": "prelude name", "link": "glossary.html#prelude-name", "paragraphs": [{"id": "fls_6jk7fuak122a", "number": "B.493:1", "link": "glossary.html#fls_6jk7fuak122a", "checksum": "7c5342ccc6c27341c3a10ed0a4bb92e351c44fe2172ac672c061a1a6b25a4811"}], "informational": false}, {"id": "fls_fikexts17v7a", "number": "B.494", "title": "primitive representation", "link": "glossary.html#primitive-representation", "paragraphs": [{"id": "fls_bydly1rt63pf", "number": "B.494:1", "link": "glossary.html#fls_bydly1rt63pf", "checksum": "47e2a49e8c4bb9a1da304195e3eb1dc6848ecf6d0755309781c40a73f843bc4f"}], "informational": false}, {"id": "fls_v1u1mevpj0kj", "number": "B.495", "title": "private visibility", "link": "glossary.html#private-visibility", "paragraphs": [{"id": "fls_duop22hyaweq", "number": "B.495:1", "link": "glossary.html#fls_duop22hyaweq", "checksum": "47428b53e2a5f713c09f529e70eac042045c822b245616e01571c803c69a67d4"}], "informational": false}, {"id": "fls_kca6sw8buq5x", "number": "B.496", "title": "proc-macro crate", "link": "glossary.html#proc-macro-crate", "paragraphs": [{"id": "fls_dftszt1pjv7o", "number": "B.496:1", "link": "glossary.html#fls_dftszt1pjv7o", "checksum": "da9efc0609995ab5e22ff4948727e3f7ddcf89c93a3a76c7320452b1d093d45f"}], "informational": false}, {"id": "fls_sp5wdsxwmxf", "number": "B.497", "title": "procedural macro", "link": "glossary.html#procedural-macro", "paragraphs": [{"id": "fls_u4utpx4zgund", "number": "B.497:1", "link": "glossary.html#fls_u4utpx4zgund", "checksum": "5f7ef6ceefe0a2bc9cc1418aa641b3485795be777e2a19ff89b861fae1ec7dec"}], "informational": false}, {"id": "fls_v2rjlovqsdyr", "number": "B.498", "title": "public visibility", "link": "glossary.html#public-visibility", "paragraphs": [{"id": "fls_6cfxqtl921ko", "number": "B.498:1", "link": "glossary.html#fls_6cfxqtl921ko", "checksum": "df273ba462a9e4407e9718b359a0b3af6c4ced0d4aa8aea268ac7f1b6a7e2ab0"}], "informational": false}, {"id": "fls_hdwmw3jbwefi", "number": "B.499", "title": "punctuator", "link": "glossary.html#punctuator", "paragraphs": [{"id": "fls_gwqgi0b7jxmu", "number": "B.499:1", "link": "glossary.html#fls_gwqgi0b7jxmu", "checksum": "762ffab2c53668dc751866e4ef08d61bd406a9f3a0151174c7130adedce7773e"}], "informational": false}, {"id": "fls_sgwvmnoio1ql", "number": "B.500", "title": "pure identifier", "link": "glossary.html#pure-identifier", "paragraphs": [{"id": "fls_6pez8fyiew0k", "number": "B.500:1", "link": "glossary.html#fls_6pez8fyiew0k", "checksum": "98a1e0e586178dd832d3937b1e01ff4acf5ca80629eea845aee2b1eeea59d6d9"}], "informational": false}, {"id": "fls_o6cftnpn3uee", "number": "B.501", "title": "qualified path expression", "link": "glossary.html#qualified-path-expression", "paragraphs": [{"id": "fls_wkas6fxqgmtf", "number": "B.501:1", "link": "glossary.html#fls_wkas6fxqgmtf", "checksum": "a2bbd139c3c525d4aa3da93a22eee0d0326e1865701304f2b48b403c2a284fa6"}, {"id": "fls_mxxjn64ejpc5", "number": "B.501:2", "link": "glossary.html#fls_mxxjn64ejpc5", "checksum": "80a89173f9185fb97c777a95395a6b7855c9027d1d577768efd998eae5c31e12"}], "informational": false}, {"id": "fls_qv0uvhsfwbum", "number": "B.502", "title": "qualified type", "link": "glossary.html#qualified-type", "paragraphs": [{"id": "fls_e7yyzxofo6ei", "number": "B.502:1", "link": "glossary.html#fls_e7yyzxofo6ei", "checksum": "f9d67b747f4924be16ee41163956c3edd830b80768a149da8fd8fe40d21493c9"}, {"id": "fls_a4hexjzo3jem", "number": "B.502:2", "link": "glossary.html#fls_a4hexjzo3jem", "checksum": "1ea3558c6285e7ad5b30aee619511abc42157a7b436cc188060278d493c59e04"}], "informational": false}, {"id": "fls_kovlqq8apdpv", "number": "B.503", "title": "qualified type path", "link": "glossary.html#qualified-type-path", "paragraphs": [{"id": "fls_s0qt9ib38i8e", "number": "B.503:1", "link": "glossary.html#fls_s0qt9ib38i8e", "checksum": "20de034c8eab811505357b0dc243ec4615b17f69608335a6fa8380b6508c46fa"}, {"id": "fls_rr8ffld7rxlt", "number": "B.503:2", "link": "glossary.html#fls_rr8ffld7rxlt", "checksum": "92f4eb79244b35e40cddee777f6124671d6eb4bca1a68ed7da572b4d8e40097c"}], "informational": false}, {"id": "fls_b0m82a8jierq", "number": "B.504", "title": "qualifying trait", "link": "glossary.html#qualifying-trait", "paragraphs": [{"id": "fls_zky1dwbmrqxz", "number": "B.504:1", "link": "glossary.html#fls_zky1dwbmrqxz", "checksum": "8c0b7cb1eb0a5c0da1b30d6bc96b750032e97a59ddda9bd751e641a151f64534"}, {"id": "fls_z6oeuwbnec90", "number": "B.504:2", "link": "glossary.html#fls_z6oeuwbnec90", "checksum": "5a50518b8730e37a490fd94e34bd9d8bb8886d41f8879411bb2d4efc6b35ecde"}], "informational": false}, {"id": "fls_tbvugpuvcluj", "number": "B.505", "title": "range expression", "link": "glossary.html#range-expression", "paragraphs": [{"id": "fls_bffrbucfwu7", "number": "B.505:1", "link": "glossary.html#fls_bffrbucfwu7", "checksum": "25ec8135a5545033a04f63b0f4d5e5e2353ace628c7fd050920bb2cde421dbcf"}, {"id": "fls_1jk43yvxa8ks", "number": "B.505:2", "link": "glossary.html#fls_1jk43yvxa8ks", "checksum": "a29d359f8fe758d5128007ffc3321dd79c642be03b80e068fa040e6f80d69aa7"}], "informational": false}, {"id": "fls_mdvdxr6u13fw", "number": "B.506", "title": "range expression high bound", "link": "glossary.html#range-expression-high-bound", "paragraphs": [{"id": "fls_c70pj8w15nmc", "number": "B.506:1", "link": "glossary.html#fls_c70pj8w15nmc", "checksum": "b56fb4a000ea7a7965a1183fb5cf0be9a407706295181e12fa6957114329fabc"}, {"id": "fls_yxem0ckicxav", "number": "B.506:2", "link": "glossary.html#fls_yxem0ckicxav", "checksum": "b98208d1e2f1279fbfd6f8c0a4482173cedfe0df82d121b32177f211ceed6c45"}], "informational": false}, {"id": "fls_smvgd160eynr", "number": "B.507", "title": "range expression low bound", "link": "glossary.html#range-expression-low-bound", "paragraphs": [{"id": "fls_t10o1p950u00", "number": "B.507:1", "link": "glossary.html#fls_t10o1p950u00", "checksum": "15f27da45a82ebba9574e7cd6903eb4472e29bcc47448d968cebd248b967b296"}, {"id": "fls_vmb2z7oh6gzm", "number": "B.507:2", "link": "glossary.html#fls_vmb2z7oh6gzm", "checksum": "16910901afd4a8aa52f37c706f985fe1ae70f8a7d7b6debb98faa683cf4b2d82"}], "informational": false}, {"id": "fls_6pxg401r6juc", "number": "B.508", "title": "range pattern", "link": "glossary.html#range-pattern", "paragraphs": [{"id": "fls_vf42zdyq23lc", "number": "B.508:1", "link": "glossary.html#fls_vf42zdyq23lc", "checksum": "4178b860a181c00a30681b5b6f159149eac2f59bc136f18a413952e4fbddcf9e"}, {"id": "fls_r36uf3y2denr", "number": "B.508:2", "link": "glossary.html#fls_r36uf3y2denr", "checksum": "164dd2b4005aa309d79414f7014d667000179fdb7bc452b1d8158b0e70a71257"}], "informational": false}, {"id": "fls_3ls9xlgt8ei1", "number": "B.509", "title": "range pattern bound", "link": "glossary.html#range-pattern-bound", "paragraphs": [{"id": "fls_l9xq96bjs4o2", "number": "B.509:1", "link": "glossary.html#fls_l9xq96bjs4o2", "checksum": "b1cd9de2d285020f5591c62a9c34e8572a7adb31a489abfb87f692f69aea89df"}, {"id": "fls_80736cs3axo4", "number": "B.509:2", "link": "glossary.html#fls_80736cs3axo4", "checksum": "0579f993ff22774a401e72b931ca3b048a9401d6caafc4c582e2797f24074867"}], "informational": false}, {"id": "fls_y4rv5cbowvwg", "number": "B.510", "title": "range pattern high bound", "link": "glossary.html#range-pattern-high-bound", "paragraphs": [{"id": "fls_arp7y7yme7yp", "number": "B.510:1", "link": "glossary.html#fls_arp7y7yme7yp", "checksum": "51de55b450d6eeca32140828d287d0178deb4bfec1ae880c51b5d61949bd8de1"}, {"id": "fls_dnwqcswftw71", "number": "B.510:2", "link": "glossary.html#fls_dnwqcswftw71", "checksum": "f27680d0e79080f5fc3a9175674912f8b1113a86b806c226022bc94aba6bf691"}], "informational": false}, {"id": "fls_laev4lmmv0cw", "number": "B.511", "title": "range pattern low bound", "link": "glossary.html#range-pattern-low-bound", "paragraphs": [{"id": "fls_rt7q0msh3op4", "number": "B.511:1", "link": "glossary.html#fls_rt7q0msh3op4", "checksum": "95ef402aee1af3ef126119eb65cb1602d2c58fab6a92773acdbf1db4f1114a91"}, {"id": "fls_j695o93wsu3i", "number": "B.511:2", "link": "glossary.html#fls_j695o93wsu3i", "checksum": "1ccb12b52e379076fb8c0e8221338eff10b94f7c18a4f1bdf11bb25888aa5344"}], "informational": false}, {"id": "fls_iqpxlg7w3cvf", "number": "B.512", "title": "range-from expression", "link": "glossary.html#range-from-expression", "paragraphs": [{"id": "fls_6enyv2oa4abq", "number": "B.512:1", "link": "glossary.html#fls_6enyv2oa4abq", "checksum": "5474073f896c48137618f47655320de5299e20085fa083fc31208745dcbfa9ad"}, {"id": "fls_e1smn0b478ik", "number": "B.512:2", "link": "glossary.html#fls_e1smn0b478ik", "checksum": "51be0d021a2c6e6de9c677e26c40952ccd74a03f106c01b23422e36979841fc1"}], "informational": false}, {"id": "fls_125h4p4zt86q", "number": "B.513", "title": "range-from-to expression", "link": "glossary.html#range-from-to-expression", "paragraphs": [{"id": "fls_nzf6y64jz83f", "number": "B.513:1", "link": "glossary.html#fls_nzf6y64jz83f", "checksum": "219a4e50865322eff0dd151631744f39b71f645d94673379a844b2b275f73656"}, {"id": "fls_mjbxfjulryt", "number": "B.513:2", "link": "glossary.html#fls_mjbxfjulryt", "checksum": "2e781e505fb781e792fa875bdc9b585fbcae08af847fb9b07a60f1d4bae29067"}], "informational": false}, {"id": "fls_8z8nrblarxrv", "number": "B.514", "title": "range-full expression", "link": "glossary.html#range-full-expression", "paragraphs": [{"id": "fls_6mchm7kb7i41", "number": "B.514:1", "link": "glossary.html#fls_6mchm7kb7i41", "checksum": "0fa315b92eb6b4569105b3991791bff35671955a1b50a86421e4e2fab8768710"}, {"id": "fls_u7kd8w5g2icd", "number": "B.514:2", "link": "glossary.html#fls_u7kd8w5g2icd", "checksum": "83268d286f3d6acc84da091dc883acf03f39618fd85783166f330582ff4c3d97"}], "informational": false}, {"id": "fls_tie80ejz8s19", "number": "B.515", "title": "range-inclusive expression", "link": "glossary.html#range-inclusive-expression", "paragraphs": [{"id": "fls_9vja0wev84a7", "number": "B.515:1", "link": "glossary.html#fls_9vja0wev84a7", "checksum": "c419855bc5b56ecc7a8dc69411babe0aed54f62a687c5de8352c86dfbaa2ca13"}, {"id": "fls_lpcsb8dtldk3", "number": "B.515:2", "link": "glossary.html#fls_lpcsb8dtldk3", "checksum": "35db6df8f6c7e38dc4def42c08ef8235619d1b9b3d2959bbf93006eec59009c0"}], "informational": false}, {"id": "fls_etvgkb8zcfpd", "number": "B.516", "title": "range-to expression", "link": "glossary.html#range-to-expression", "paragraphs": [{"id": "fls_urnfp1j9d5v4", "number": "B.516:1", "link": "glossary.html#fls_urnfp1j9d5v4", "checksum": "3861615e76a6cf8e957846bed849dc0dc834b7b93c7d0fc784cecc1e4edf1c24"}, {"id": "fls_lft9cd7h8cfv", "number": "B.516:2", "link": "glossary.html#fls_lft9cd7h8cfv", "checksum": "480ec4dd84e1056808f5f52463cda70e308cba46d99949f428045c3c8cd0a218"}], "informational": false}, {"id": "fls_ap5754dfltt5", "number": "B.517", "title": "range-to-inclusive expression", "link": "glossary.html#range-to-inclusive-expression", "paragraphs": [{"id": "fls_t4fjanjvkd69", "number": "B.517:1", "link": "glossary.html#fls_t4fjanjvkd69", "checksum": "8d9f9daa117d57cfc454b52c7645b1932187974fa5105876b1bcfc45233a7a04"}, {"id": "fls_krei7lc6lo8q", "number": "B.517:2", "link": "glossary.html#fls_krei7lc6lo8q", "checksum": "766e107a69011593d434341484ceb725c70e248fa535f9426fdb2bcc4980fe2e"}], "informational": false}, {"id": "fls_ipeh92kh17ze", "number": "B.518", "title": "raw byte string literal", "link": "glossary.html#raw-byte-string-literal", "paragraphs": [{"id": "fls_8v5k3wemy4tl", "number": "B.518:1", "link": "glossary.html#fls_8v5k3wemy4tl", "checksum": "95d9ef2d49138b2a9fb0173f99d5db0a8a114a95ebd140fd1daf20d94e8da46e"}, {"id": "fls_5x71i3ay3na2", "number": "B.518:2", "link": "glossary.html#fls_5x71i3ay3na2", "checksum": "1222d9cb35a5e949bbd837dc84397530b43462810f5f1c0c44c51d6fc78d9d55"}], "informational": false}, {"id": "fls_uv4dyt4gi32x", "number": "B.519", "title": "raw pointer", "link": "glossary.html#raw-pointer", "paragraphs": [{"id": "fls_rbdilcmt2cns", "number": "B.519:1", "link": "glossary.html#fls_rbdilcmt2cns", "checksum": "2d1584aa9f4b58f2bbf727cf53a2f81da74885f3c6e6309608330b803492e1ac"}], "informational": false}, {"id": "fls_9los8hwh60z0", "number": "B.520", "title": "raw pointer type", "link": "glossary.html#raw-pointer-type", "paragraphs": [{"id": "fls_wspawcoqxfbh", "number": "B.520:1", "link": "glossary.html#fls_wspawcoqxfbh", "checksum": "a485156d19237af245bd23bf2b453438690b4d0984b3baad3baf825c56b5cd14"}, {"id": "fls_ctksliaxhzo9", "number": "B.520:2", "link": "glossary.html#fls_ctksliaxhzo9", "checksum": "d88e1974ad411ce2cf9dd9035ef35a501514d9e4b8bc8bb8f748dec30b6d871a"}], "informational": false}, {"id": "fls_echjohx6fjc", "number": "B.521", "title": "raw string literal", "link": "glossary.html#raw-string-literal", "paragraphs": [{"id": "fls_48t4v316951j", "number": "B.521:1", "link": "glossary.html#fls_48t4v316951j", "checksum": "c9ebb5dde93887446f9ffb7c6479338c29861febc756605dd9c27d689adb1cdb"}, {"id": "fls_26ol7lrnux94", "number": "B.521:2", "link": "glossary.html#fls_26ol7lrnux94", "checksum": "0811723671ee722a9cd5cbfc0d41ca93f15e3302d14e510db6c7d1c7a647472b"}], "informational": false}, {"id": "fls_sae1haavspvp", "number": "B.522", "title": "reachable control flow path", "link": "glossary.html#reachable-control-flow-path", "paragraphs": [{"id": "fls_ixrvzubg8j3e", "number": "B.522:1", "link": "glossary.html#fls_ixrvzubg8j3e", "checksum": "5739a12aef006ce4cda2a2e1b494a76ed4903009098ede2b5f64a6bba55c2b85"}], "informational": false}, {"id": "fls_nfb3ciarl50w", "number": "B.523", "title": "receiver operand", "link": "glossary.html#receiver-operand", "paragraphs": [{"id": "fls_odbg4bizvqxq", "number": "B.523:1", "link": "glossary.html#fls_odbg4bizvqxq", "checksum": "96f5ef7d68e99dbcdaa9d2750ebef1f16c2c53171efd2587347e60e12e9c75de"}, {"id": "fls_4rme1x6romeg", "number": "B.523:2", "link": "glossary.html#fls_4rme1x6romeg", "checksum": "59822d397a3a69e2ec31a26ab4c80a8d277b159ad97c2ceb016e353899a81112"}], "informational": false}, {"id": "fls_kpkm0j40xq5j", "number": "B.524", "title": "receiver type", "link": "glossary.html#receiver-type", "paragraphs": [{"id": "fls_vgqmmlpfas5t", "number": "B.524:1", "link": "glossary.html#fls_vgqmmlpfas5t", "checksum": "16107d984d3916e05e23cd5294194dc6414ecfcb591e4d5c77f71df576313d5b"}], "informational": false}, {"id": "fls_ng6ikjlscw7m", "number": "B.525", "title": "record enum variant", "link": "glossary.html#record-enum-variant", "paragraphs": [{"id": "fls_nwyvpqmoijo2", "number": "B.525:1", "link": "glossary.html#fls_nwyvpqmoijo2", "checksum": "6a6b792ef993655774a38b538d5fc34f98983eae1feef2ede4b558ab58dbe311"}], "informational": false}, {"id": "fls_jdd6h8pdp30x", "number": "B.526", "title": "record struct", "link": "glossary.html#record-struct", "paragraphs": [{"id": "fls_qyd7kqnpjs2", "number": "B.526:1", "link": "glossary.html#fls_qyd7kqnpjs2", "checksum": "898a3d49045e565e6964e04785f03b13d8e6f8c9457ea99c15e9d27695599924"}, {"id": "fls_rqs5rdnhkwnx", "number": "B.526:2", "link": "glossary.html#fls_rqs5rdnhkwnx", "checksum": "9bb187eb53901cfc7937e93f424a8c50f7118a2937f97fced3f15eae9ccf023c"}], "informational": false}, {"id": "fls_hzkwzbk5wp54", "number": "B.527", "title": "record struct field", "link": "glossary.html#record-struct-field", "paragraphs": [{"id": "fls_lb0t10evec6z", "number": "B.527:1", "link": "glossary.html#fls_lb0t10evec6z", "checksum": "8462be667fdcb4156499cb7cda35dbabd082a2bdbb9a6eb113c29d9eaf63058a"}, {"id": "fls_bjwmhxf3ae14", "number": "B.527:2", "link": "glossary.html#fls_bjwmhxf3ae14", "checksum": "2e31dd1ae2b36f17d7b79b844d29e68d1478a7242aff87211f32b47c6d63bb32"}], "informational": false}, {"id": "fls_at2caaqlpva1", "number": "B.528", "title": "record struct pattern", "link": "glossary.html#record-struct-pattern", "paragraphs": [{"id": "fls_q7njznxhmmw", "number": "B.528:1", "link": "glossary.html#fls_q7njznxhmmw", "checksum": "c1a06d552969025bc8b900d0a656b86d782d3f7ae86dca4f52cf24e217e7bd0b"}, {"id": "fls_viwieu1p3hds", "number": "B.528:2", "link": "glossary.html#fls_viwieu1p3hds", "checksum": "d24fdc09784f96ce368236563ba4289179ffff8ad78085abc9eea282b7fcb48b"}], "informational": false}, {"id": "fls_uthd12hz3h4v", "number": "B.529", "title": "record struct type", "link": "glossary.html#record-struct-type", "paragraphs": [{"id": "fls_mgrz3o51gbis", "number": "B.529:1", "link": "glossary.html#fls_mgrz3o51gbis", "checksum": "485ef41309d2b7ee99f92112f16db795305331b0d8fc0abc7ed6582e65ac84fa"}], "informational": false}, {"id": "fls_cps5c1chwmce", "number": "B.530", "title": "record struct value", "link": "glossary.html#record-struct-value", "paragraphs": [{"id": "fls_smbic0jmck1h", "number": "B.530:1", "link": "glossary.html#fls_smbic0jmck1h", "checksum": "dbff69e7368ac026c9a894281f0286a34e1bbfe7054992f92336e6e7110b0f47"}], "informational": false}, {"id": "fls_94fkxohlnq9i", "number": "B.531", "title": "recursive type", "link": "glossary.html#recursive-type", "paragraphs": [{"id": "fls_2t8qom6dhcjb", "number": "B.531:1", "link": "glossary.html#fls_2t8qom6dhcjb", "checksum": "a8a8919d753d67a5e853e8f9243b635b62f24429032dc9b096ce110f00ecd4da"}], "informational": false}, {"id": "fls_onv3cs5tckgo", "number": "B.532", "title": "reference", "link": "glossary.html#reference", "paragraphs": [{"id": "fls_s82y4hsuytiq", "number": "B.532:1", "link": "glossary.html#fls_s82y4hsuytiq", "checksum": "63ef0536d990e6e988c965c82abb6c2c6fca7dc35dddfca134a420c077a7c641"}], "informational": false}, {"id": "fls_1xgsxrzifnql", "number": "B.533", "title": "reference identifier pattern", "link": "glossary.html#reference-identifier-pattern", "paragraphs": [{"id": "fls_jqs6oj4rfbpn", "number": "B.533:1", "link": "glossary.html#fls_jqs6oj4rfbpn", "checksum": "6477c1ccfeb986ace644b6b3db6c2ae8534b4a3d6fdaeab0cc075e20c780db7d"}], "informational": false}, {"id": "fls_kiy6b1wbn0a3", "number": "B.534", "title": "reference pattern", "link": "glossary.html#reference-pattern", "paragraphs": [{"id": "fls_ebshqnhmwgow", "number": "B.534:1", "link": "glossary.html#fls_ebshqnhmwgow", "checksum": "84bca57f762a49753ed216be2fe143c33de2fefa9b1eafc5b0439e95c7948ffc"}, {"id": "fls_rghv5drrqxs1", "number": "B.534:2", "link": "glossary.html#fls_rghv5drrqxs1", "checksum": "5efa93ce6fa26af80a51874f947567d0c94e1a9b3b795bcdd8bd8cdf81ae3b89"}], "informational": false}, {"id": "fls_uw32xmrfgzcd", "number": "B.535", "title": "reference type", "link": "glossary.html#reference-type", "paragraphs": [{"id": "fls_l3knopsdlyf2", "number": "B.535:1", "link": "glossary.html#fls_l3knopsdlyf2", "checksum": "f38ab06c89f104d3e18ef3fd4d3cff621ab49a274f35660b4bc7d77712b39721"}, {"id": "fls_jzjatdpxqt9u", "number": "B.535:2", "link": "glossary.html#fls_jzjatdpxqt9u", "checksum": "4f074824c61c9cdcdfc162ddd7058c0581bd1e622adf827935738bdc66ff343a"}], "informational": false}, {"id": "fls_h8x0u32wfz8v", "number": "B.536", "title": "referent", "link": "glossary.html#referent", "paragraphs": [{"id": "fls_78ipj8avpwzl", "number": "B.536:1", "link": "glossary.html#fls_78ipj8avpwzl", "checksum": "ae001364b117d85ca8352514a1027e91f5d918006cd7b2f368c7306b6015c0b9"}], "informational": false}, {"id": "fls_bkwy183h9ygt", "number": "B.537", "title": "refutability", "link": "glossary.html#refutability", "paragraphs": [{"id": "fls_gzjrfx19fg40", "number": "B.537:1", "link": "glossary.html#fls_gzjrfx19fg40", "checksum": "1bcda5a5391dd6835db7f8f68d176b8314c4d0aa46215fea02b61d0dbb7fdbc9"}], "informational": false}, {"id": "fls_v99joc4m6cup", "number": "B.538", "title": "refutable constant", "link": "glossary.html#refutable-constant", "paragraphs": [{"id": "fls_mc6hsomq08uu", "number": "B.538:1", "link": "glossary.html#fls_mc6hsomq08uu", "checksum": "638efa8ac95ee61a4e7819779c00f8752e3292765447404c141af6db8331c6fb"}], "informational": false}, {"id": "fls_srdcx5oi4dcp", "number": "B.539", "title": "refutable pattern", "link": "glossary.html#refutable-pattern", "paragraphs": [{"id": "fls_re7qz78koman", "number": "B.539:1", "link": "glossary.html#fls_re7qz78koman", "checksum": "3c637f1b6f7ece643d7ec221e0f5cdd251d4223ce8a9ac7c814ad6667f224a4f"}], "informational": false}, {"id": "fls_dkq1h6p9yaar", "number": "B.540", "title": "refutable type", "link": "glossary.html#refutable-type", "paragraphs": [{"id": "fls_l2yz6jeehm52", "number": "B.540:1", "link": "glossary.html#fls_l2yz6jeehm52", "checksum": "b89cf8d0e1e227cb599ddfe6ea05472a0daeb7e5a95929946f50ce7a1e5fe513"}], "informational": false}, {"id": "fls_t84qajmzzmbb", "number": "B.541", "title": "register", "link": "glossary.html#register", "paragraphs": [{"id": "fls_fvdsybu8dw8w", "number": "B.541:1", "link": "glossary.html#fls_fvdsybu8dw8w", "checksum": "7faca2ed636bb3e5aa2526d9da899922af17ba01f25d079d68fb51db549657a9"}], "informational": false}, {"id": "fls_iswwmgkjfywt", "number": "B.542", "title": "register argument", "link": "glossary.html#register-argument", "paragraphs": [{"id": "fls_rnofdckbvmrc", "number": "B.542:1", "link": "glossary.html#fls_rnofdckbvmrc", "checksum": "6e0b017053092fcc9c857471fbd863071395338216ef63c571bf908fa882f7dc"}, {"id": "fls_aof7o9xreo2s", "number": "B.542:2", "link": "glossary.html#fls_aof7o9xreo2s", "checksum": "8d856bf27f0fde9c22a9df8467fb26a0360905e0ebed9a2a93a76f3d276968a9"}], "informational": false}, {"id": "fls_2qkuihcfmzq6", "number": "B.543", "title": "register class", "link": "glossary.html#register-class", "paragraphs": [{"id": "fls_2h0oys733vjl", "number": "B.543:1", "link": "glossary.html#fls_2h0oys733vjl", "checksum": "8b376bd574aef40095ec0b238e2bdb07e92f1d0bf017715d535add5a514048a2"}], "informational": false}, {"id": "fls_8gc17cgcs9n1", "number": "B.544", "title": "register class argument", "link": "glossary.html#register-class-argument", "paragraphs": [{"id": "fls_kslxayplx9il", "number": "B.544:1", "link": "glossary.html#fls_kslxayplx9il", "checksum": "2c84dd8f18191eee2a6a8d33211ea59f50d82057eea605ea0978a7d4edfac0a8"}], "informational": false}, {"id": "fls_xztkanlrskrt", "number": "B.545", "title": "register class name", "link": "glossary.html#register-class-name", "paragraphs": [{"id": "fls_qssfol0uyrrb", "number": "B.545:1", "link": "glossary.html#fls_qssfol0uyrrb", "checksum": "19a19b549736a26c09bba9e2ea08ec8151747b579d265815a83a7ff58665e069"}, {"id": "fls_y1zpifav2c1a", "number": "B.545:2", "link": "glossary.html#fls_y1zpifav2c1a", "checksum": "1877dee9700e4ed62371845a415448fcce9d210cdfd66e8b969b415a3bc9ad4d"}], "informational": false}, {"id": "fls_7kirejzlkdek", "number": "B.546", "title": "register expression", "link": "glossary.html#register-expression", "paragraphs": [{"id": "fls_2cvy6xfoq4qg", "number": "B.546:1", "link": "glossary.html#fls_2cvy6xfoq4qg", "checksum": "645b6eb9a167d07c82bc9500a8b9863c903eb0c0d87ecced53fbd7d4170d32db"}, {"id": "fls_yezo09cqwuuy", "number": "B.546:2", "link": "glossary.html#fls_yezo09cqwuuy", "checksum": "bc7655da0c0b2493619323e4e76a6d2a6ddb6236944509650b0e7fcf6506a21f"}], "informational": false}, {"id": "fls_kbbk666ibs2x", "number": "B.547", "title": "register name", "link": "glossary.html#register-name", "paragraphs": [{"id": "fls_u5r8ypnjah5e", "number": "B.547:1", "link": "glossary.html#fls_u5r8ypnjah5e", "checksum": "ec04e36ab9824fb53b64b8edefbd7fb405382282c56f9a59a77309231e7deed6"}, {"id": "fls_weyifrnggwpn", "number": "B.547:2", "link": "glossary.html#fls_weyifrnggwpn", "checksum": "36595f45672c50aaf13a16508da79116a9658a80f87b1609a1864611697d725e"}], "informational": false}, {"id": "fls_foh6xelwbsy9", "number": "B.548", "title": "register parameter", "link": "glossary.html#register-parameter", "paragraphs": [{"id": "fls_jichmij5dlxj", "number": "B.548:1", "link": "glossary.html#fls_jichmij5dlxj", "checksum": "6d060bc7e74c626d5e9ef880109c402c07be27a6b98aedbc2cf8bcd1512be5b6"}], "informational": false}, {"id": "fls_ndpkxnlmnn7m", "number": "B.549", "title": "register parameter modifier", "link": "glossary.html#register-parameter-modifier", "paragraphs": [{"id": "fls_8bdonxhzs0qi", "number": "B.549:1", "link": "glossary.html#fls_8bdonxhzs0qi", "checksum": "1a86eb14800527d49e09acbab5e37b415b2c1784080072bc0fdd2043ae6b6663"}], "informational": false}, {"id": "fls_jnhuwipah0no", "number": "B.550", "title": "remainder assignment", "link": "glossary.html#remainder-assignment", "paragraphs": [{"id": "fls_58edc2xtqcar", "number": "B.550:1", "link": "glossary.html#fls_58edc2xtqcar", "checksum": "d727fb7a354746a21a4e4fc4f11e8b9c2db5ef084c60db369114e4b63fe510ff"}], "informational": false}, {"id": "fls_mio7pagghcks", "number": "B.551", "title": "remainder assignment expression", "link": "glossary.html#remainder-assignment-expression", "paragraphs": [{"id": "fls_en7ytqvefw7j", "number": "B.551:1", "link": "glossary.html#fls_en7ytqvefw7j", "checksum": "cbdb71aa37ce634750e0799d9dc5b86eca6b8974b0be2fe6669773d769756dd3"}, {"id": "fls_rkk80quk8uzc", "number": "B.551:2", "link": "glossary.html#fls_rkk80quk8uzc", "checksum": "9e18bbf61220b891a2ce72f5d65c260cac55c58d7298ef16136dc545968bf4ff"}], "informational": false}, {"id": "fls_f15h4919ln3k", "number": "B.552", "title": "remainder expression", "link": "glossary.html#remainder-expression", "paragraphs": [{"id": "fls_l6muwnclm1do", "number": "B.552:1", "link": "glossary.html#fls_l6muwnclm1do", "checksum": "51bd8ecd32b9a1aff3aea5aad31fb5378fb80bc29756499f75a8ba2fca92171f"}, {"id": "fls_h98qlby2uiru", "number": "B.552:2", "link": "glossary.html#fls_h98qlby2uiru", "checksum": "5f7009c05621e878183621ab8f4a282652631c2e2d50bacb7e69762705ae39e5"}], "informational": false}, {"id": "fls_8ibsdx4dx6s7", "number": "B.553", "title": "renaming", "link": "glossary.html#renaming", "paragraphs": [{"id": "fls_cp8u9kq44o8a", "number": "B.553:1", "link": "glossary.html#fls_cp8u9kq44o8a", "checksum": "2593e8774b45cd7ca11eb6281ce21fc065706b013e11558b033257509e2ccd38"}, {"id": "fls_8inznqig2ibr", "number": "B.553:2", "link": "glossary.html#fls_8inznqig2ibr", "checksum": "85b6b742d2d0697e2fe95f1418cde3b1692849488b515cf6621535b9fe59b631"}], "informational": false}, {"id": "fls_b35oy3nnzixm", "number": "B.554", "title": "repeat operand", "link": "glossary.html#repeat-operand", "paragraphs": [{"id": "fls_ol2y1og2jwss", "number": "B.554:1", "link": "glossary.html#fls_ol2y1og2jwss", "checksum": "58647c3a13d6e823b666c14587d23bbe61fdf882fe125f19e944a9ba5e3c0921"}, {"id": "fls_r4acyux78txu", "number": "B.554:2", "link": "glossary.html#fls_r4acyux78txu", "checksum": "c9108185fcea141156210b6a9b36948c33cb965852ca382bb29ac5a16dc1aaaa"}], "informational": false}, {"id": "fls_r2yjjhrvr9qi", "number": "B.555", "title": "repetition operator", "link": "glossary.html#repetition-operator", "paragraphs": [{"id": "fls_67907pk7uogl", "number": "B.555:1", "link": "glossary.html#fls_67907pk7uogl", "checksum": "43a3e84b5d19866a6b09c6cd2ea7838a7d65fa6f1fd49b2f0ddbaca5a81fb1f0"}, {"id": "fls_hiasmmpr2jks", "number": "B.555:2", "link": "glossary.html#fls_hiasmmpr2jks", "checksum": "66014b23ff01256559e0ae6d92972ea6cdf24d08a51d8eca882fc60509b5dcbc"}], "informational": false}, {"id": "fls_o34kkn5pi0sh", "number": "B.556", "title": "representation", "link": "glossary.html#representation", "paragraphs": [{"id": "fls_69j7pq2o1iu", "number": "B.556:1", "link": "glossary.html#fls_69j7pq2o1iu", "checksum": "4a662cea85148083b5a0179032f600b305245ba09178fd3a04d08f592be24a88"}], "informational": false}, {"id": "fls_tsbbt6wzropn", "number": "B.557", "title": "representation modifier", "link": "glossary.html#representation-modifier", "paragraphs": [{"id": "fls_bcvxl7hkxqdz", "number": "B.557:1", "link": "glossary.html#fls_bcvxl7hkxqdz", "checksum": "e9bfd0ee98494b56dd202e318c640249b13ae5d86870e455002d02d048177540"}, {"id": "fls_tavyjj66ubuo", "number": "B.557:2", "link": "glossary.html#fls_tavyjj66ubuo", "checksum": "be25a92306a95fb645151169bd085704fcb7b17e852e53e4007b41069266f593"}], "informational": false}, {"id": "fls_x7yd6o4akrrg", "number": "B.558", "title": "reserved keyword", "link": "glossary.html#reserved-keyword", "paragraphs": [{"id": "fls_b67hj7fdbq4s", "number": "B.558:1", "link": "glossary.html#fls_b67hj7fdbq4s", "checksum": "80da9d74f91e0b7374d2d43f8525151ded229c97303782a5579e4e10cbccbf0a"}, {"id": "fls_hp9iqdrkt0cg", "number": "B.558:2", "link": "glossary.html#fls_hp9iqdrkt0cg", "checksum": "6aa6c77af95fba53f06c4d1915a60c8d2a2d903acf2273c4d09b0455acaf352a"}], "informational": false}, {"id": "fls_o5iugatzgybu", "number": "B.559", "title": "resolution", "link": "glossary.html#resolution", "paragraphs": [{"id": "fls_pqjevls5ce4y", "number": "B.559:1", "link": "glossary.html#fls_pqjevls5ce4y", "checksum": "baf40f26f57e39f146a5a265c0e0698c69e1a4dfb5a690eb111cadeca9182193"}], "informational": false}, {"id": "fls_uuo1qvrz1i0k", "number": "B.560", "title": "rest pattern", "link": "glossary.html#rest-pattern", "paragraphs": [{"id": "fls_xngp3h1znw9o", "number": "B.560:1", "link": "glossary.html#fls_xngp3h1znw9o", "checksum": "33ffd10b2c15ccd3a8cf50d15690bd22ad8479acab34f6927383fb6cbf0d17c6"}, {"id": "fls_rnmhg04u0oga", "number": "B.560:2", "link": "glossary.html#fls_rnmhg04u0oga", "checksum": "75bcf7113bcf87575386bd9c1c9697f83ffac54cba4c3988635eff773dca4b23"}], "informational": false}, {"id": "fls_7tl9qo8yj8xh", "number": "B.561", "title": "return expression", "link": "glossary.html#return-expression", "paragraphs": [{"id": "fls_vnupfc6s0s7b", "number": "B.561:1", "link": "glossary.html#fls_vnupfc6s0s7b", "checksum": "8e5697dfef174570e859144dc047d2c731b3979328522bd218fcc947258ae3d7"}, {"id": "fls_phd8zrsyuzu7", "number": "B.561:2", "link": "glossary.html#fls_phd8zrsyuzu7", "checksum": "4302896518e1234a4d83fc5af30e01946c70fe4bdadb33c0cbf0a1782495c402"}], "informational": false}, {"id": "fls_b8dbm1bs65kw", "number": "B.562", "title": "return type", "link": "glossary.html#return-type", "paragraphs": [{"id": "fls_cwucgbmmhnnm", "number": "B.562:1", "link": "glossary.html#fls_cwucgbmmhnnm", "checksum": "70879cb0ab39a64ebe3b442093d6a2fc2ff966f0e8549fb1c631d12636969550"}, {"id": "fls_utuprsem6n58", "number": "B.562:2", "link": "glossary.html#fls_utuprsem6n58", "checksum": "23039eb519551746748ccee9a37c161f4bc24f50c44c29205b9dd542e9e9d0b2"}], "informational": false}, {"id": "fls_76o7m8vny72n", "number": "B.563", "title": "right operand", "link": "glossary.html#right-operand", "paragraphs": [{"id": "fls_e1j9s4odze9b", "number": "B.563:1", "link": "glossary.html#fls_e1j9s4odze9b", "checksum": "86cda4a9822fadeb8447b3f1af44c4f51ebbb97ab13ededb204dac6e6e965b60"}, {"id": "fls_hq7x1t5dmdlp", "number": "B.563:2", "link": "glossary.html#fls_hq7x1t5dmdlp", "checksum": "06e634353c4e82d4468308ea5d723453faf370ccb23f1145542b72295fcc7d85"}], "informational": false}, {"id": "fls_9u67noriaxfe", "number": "B.564", "title": "rule matching", "link": "glossary.html#rule-matching", "paragraphs": [{"id": "fls_dux9js5oixjd", "number": "B.564:1", "link": "glossary.html#fls_dux9js5oixjd", "checksum": "cd5102a8cfd0c59ef4daced4388f485d63908b87f53b1df4647415da2ae37aa5"}], "informational": false}, {"id": "fls_fki32ns69q4j", "number": "B.565", "title": "rustc", "link": "glossary.html#rustc", "paragraphs": [{"id": "fls_zdgbeixirjfm", "number": "B.565:1", "link": "glossary.html#fls_zdgbeixirjfm", "checksum": "4c72541805d9bbb653e8229bee9d003402439bfde83635c713d382f784081ab0"}], "informational": false}, {"id": "fls_q4mrio7cwv5k", "number": "B.566", "title": "safety invariant", "link": "glossary.html#safety-invariant", "paragraphs": [{"id": "fls_wrzfamtmmgtx", "number": "B.566:1", "link": "glossary.html#fls_wrzfamtmmgtx", "checksum": "44ed3ec7e8a13d09d1197cee99842a411cd1f9e9a3765034ff0d9964ca82b79e"}], "informational": false}, {"id": "fls_xemnghzzobql", "number": "B.567", "title": "scalar type", "link": "glossary.html#scalar-type", "paragraphs": [{"id": "fls_ggbqfw2nywoa", "number": "B.567:1", "link": "glossary.html#fls_ggbqfw2nywoa", "checksum": "5bbbfb9f2266ab992cb6514bff6559967d1e60663b5aef621facb0efcf1d3215"}], "informational": false}, {"id": "fls_fj8mdxi967px", "number": "B.568", "title": "scope", "link": "glossary.html#scope", "paragraphs": [{"id": "fls_fachaj550cq1", "number": "B.568:1", "link": "glossary.html#fls_fachaj550cq1", "checksum": "f839a240a597ec67f92e0f0866d3eee01bfaae17db27509a4a39cf9c2aca7897"}], "informational": false}, {"id": "fls_xzuinkbn5e00", "number": "B.569", "title": "scope hierarchy", "link": "glossary.html#scope-hierarchy", "paragraphs": [{"id": "fls_spcc3l9x939d", "number": "B.569:1", "link": "glossary.html#fls_spcc3l9x939d", "checksum": "1e4c8312d7803299a919834a8a36b4fd7b380ef2d293b9e47095dc6a56d579cc"}], "informational": false}, {"id": "fls_rfk06mm3pdxg", "number": "B.570", "title": "selected field", "link": "glossary.html#selected-field", "paragraphs": [{"id": "fls_8otlvwlqrd4e", "number": "B.570:1", "link": "glossary.html#fls_8otlvwlqrd4e", "checksum": "f217c898ac88c6ff78f0f45c97cc69a939aab171fe5db230f08699d88496975f"}], "informational": false}, {"id": "fls_9o2hcy6t7dac", "number": "B.571", "title": "Self", "link": "glossary.html#self", "paragraphs": [{"id": "fls_q6whqbfusswf", "number": "B.571:1", "link": "glossary.html#fls_q6whqbfusswf", "checksum": "ae949c626ca1c4fd182bff3bb2c6ae602b1f889bb8abd2bb65ac94a93fbd0ca3"}], "informational": false}, {"id": "fls_6wjlbzmlx9n4", "number": "B.572", "title": "self parameter", "link": "glossary.html#self-parameter", "paragraphs": [{"id": "fls_ksne48eip15", "number": "B.572:1", "link": "glossary.html#fls_ksne48eip15", "checksum": "43c0eb1d09bf4b44fd390dd1402c3a5e5121edfb8a674df2e6e198a59314ec34"}], "informational": false}, {"id": "fls_jq213cesxhyp", "number": "B.573", "title": "self public modifier", "link": "glossary.html#self-public-modifier", "paragraphs": [{"id": "fls_ln3bzqgctfym", "number": "B.573:1", "link": "glossary.html#fls_ln3bzqgctfym", "checksum": "b064a306128dd1ad0ab8982a34e8f6f561c8fa287572db62090d49a1f79a5c10"}, {"id": "fls_21cvbfjpckkt", "number": "B.573:2", "link": "glossary.html#fls_21cvbfjpckkt", "checksum": "21a87900d3877a249502b56ad13c8b8975fdf3dfbb4708cb4322219fc6a2d7a4"}], "informational": false}, {"id": "fls_exmzlnmxqvp7", "number": "B.574", "title": "Self scope", "link": "glossary.html#self-scope", "paragraphs": [{"id": "fls_psvqwgrmfmh0", "number": "B.574:1", "link": "glossary.html#fls_psvqwgrmfmh0", "checksum": "97f1da09fe3c06af19fe739ee76620d5c899e250ac1819b46caef48d4b5886dc"}], "informational": false}, {"id": "fls_8spw41g0dbqw", "number": "B.575", "title": "send type", "link": "glossary.html#send-type", "paragraphs": [{"id": "fls_qfkng98dw6yy", "number": "B.575:1", "link": "glossary.html#fls_qfkng98dw6yy", "checksum": "e4628e0ecb8154611e063fbf77429b26c4b76b452ef3dfae6b82bf14284efeaf"}], "informational": false}, {"id": "fls_at8q1svh3isg", "number": "B.576", "title": "separator", "link": "glossary.html#separator", "paragraphs": [{"id": "fls_128xny4qfcj5", "number": "B.576:1", "link": "glossary.html#fls_128xny4qfcj5", "checksum": "903a99b97d49da2def61a6ad297e6e7cacc921a870b547a2e4fb4d1c24ef769b"}], "informational": false}, {"id": "fls_rtgis2k7by2r", "number": "B.577", "title": "sequence type", "link": "glossary.html#sequence-type", "paragraphs": [{"id": "fls_lk1oslxh8h9p", "number": "B.577:1", "link": "glossary.html#fls_lk1oslxh8h9p", "checksum": "655a756015de86a2930f125390ef8928b2552753f5d02b06b7a17c3f2eb04f97"}], "informational": false}, {"id": "fls_huklmswzx8mg", "number": "B.578", "title": "shadowing", "link": "glossary.html#shadowing", "paragraphs": [{"id": "fls_li3nxopeh9cl", "number": "B.578:1", "link": "glossary.html#fls_li3nxopeh9cl", "checksum": "62980a85f7903df5b0e14a811b9522fe6e121c2fd45bf15b22e287f1a52435a8"}], "informational": false}, {"id": "fls_c9xwhhg639u5", "number": "B.579", "title": "shared borrow", "link": "glossary.html#shared-borrow", "paragraphs": [{"id": "fls_gmbskxin90zi", "number": "B.579:1", "link": "glossary.html#fls_gmbskxin90zi", "checksum": "2193c6dcec0b5edf5722d4f94d8ecb73661810ced851124fb778ade3dd5bb758"}], "informational": false}, {"id": "fls_18xazs7sp4", "number": "B.580", "title": "shared reference", "link": "glossary.html#shared-reference", "paragraphs": [{"id": "fls_cspa4c5mscnw", "number": "B.580:1", "link": "glossary.html#fls_cspa4c5mscnw", "checksum": "2dbd2d9375f3d39970d976141b7018b911bc54b2ec02a5aea07f2c6622870744"}], "informational": false}, {"id": "fls_antrblstppyf", "number": "B.581", "title": "shared reference type", "link": "glossary.html#shared-reference-type", "paragraphs": [{"id": "fls_8z9wb3eu5yp1", "number": "B.581:1", "link": "glossary.html#fls_8z9wb3eu5yp1", "checksum": "6a1fef902a0c781f04b8476f20982b8beb543702ccb5a62918c3bf9d2d8917de"}], "informational": false}, {"id": "fls_o8evukgr0y98", "number": "B.582", "title": "shift left assignment", "link": "glossary.html#shift-left-assignment", "paragraphs": [{"id": "fls_6adwrtvab6tw", "number": "B.582:1", "link": "glossary.html#fls_6adwrtvab6tw", "checksum": "64222126b2056e9b6d454a80a4515f9e7eb4710b27be383ce8cebc89dd173fa6"}], "informational": false}, {"id": "fls_29n0oe4d7lwa", "number": "B.583", "title": "shift left assignment expression", "link": "glossary.html#shift-left-assignment-expression", "paragraphs": [{"id": "fls_j15ke2p8cjfp", "number": "B.583:1", "link": "glossary.html#fls_j15ke2p8cjfp", "checksum": "94063dcde3de2a93780051ef91049b87fe9a40d3f4284cfb4b1f5fe3a3466f97"}, {"id": "fls_ozu74fsakomn", "number": "B.583:2", "link": "glossary.html#fls_ozu74fsakomn", "checksum": "d0afb05c1db5d98d77429c56828d4ae519fd86b93587699fe3b7c6ee83a19fc9"}], "informational": false}, {"id": "fls_sru4wi5jomoe", "number": "B.584", "title": "shift left expression", "link": "glossary.html#shift-left-expression", "paragraphs": [{"id": "fls_phiv6k4emauc", "number": "B.584:1", "link": "glossary.html#fls_phiv6k4emauc", "checksum": "d93daef004fcb997f097936352dc3432de5d77d9c342ac541f4ad2e997583c00"}, {"id": "fls_56lu9kenzig9", "number": "B.584:2", "link": "glossary.html#fls_56lu9kenzig9", "checksum": "1cc2492433debb414f0eb4fcf241bef3a32b6d3053e2909902cf511ad574d4a8"}], "informational": false}, {"id": "fls_v5lmae8ijimq", "number": "B.585", "title": "shift right assignment", "link": "glossary.html#shift-right-assignment", "paragraphs": [{"id": "fls_xuwchjwhdya8", "number": "B.585:1", "link": "glossary.html#fls_xuwchjwhdya8", "checksum": "f091144751bd01b8092c1b44d2132b27a8011b60e3acf525b3b432641f5dd4cd"}], "informational": false}, {"id": "fls_cqfzbsasnd1t", "number": "B.586", "title": "shift right assignment expression", "link": "glossary.html#shift-right-assignment-expression", "paragraphs": [{"id": "fls_1jpnp7hatlmu", "number": "B.586:1", "link": "glossary.html#fls_1jpnp7hatlmu", "checksum": "fe6f5bbd825f7060b3539b3ddccda6664da3131532c0613b357f0cf3ca289102"}, {"id": "fls_naqzlebew1uf", "number": "B.586:2", "link": "glossary.html#fls_naqzlebew1uf", "checksum": "c74aed7ba0e30c17069b8d407e81466b6ae0ca370ed263a025cf967bcb34060b"}], "informational": false}, {"id": "fls_dj6epbraptqn", "number": "B.587", "title": "shift right expression", "link": "glossary.html#shift-right-expression", "paragraphs": [{"id": "fls_j6itily0u0k9", "number": "B.587:1", "link": "glossary.html#fls_j6itily0u0k9", "checksum": "cc25aa4d57911509c879b4abb007058413889d0882ac946def3aaa8bab9ff7aa"}, {"id": "fls_ex1mopil8w1p", "number": "B.587:2", "link": "glossary.html#fls_ex1mopil8w1p", "checksum": "e9235711e81476c0017f4de4b96410aac4a18b20712e65998fdff599c4ebe9fb"}], "informational": false}, {"id": "fls_5sxhx0w3d63z", "number": "B.588", "title": "shorthand deconstructor", "link": "glossary.html#shorthand-deconstructor", "paragraphs": [{"id": "fls_22yxrde244w8", "number": "B.588:1", "link": "glossary.html#fls_22yxrde244w8", "checksum": "47718e6645a8f9725dfac70f2975316555887d2128b55f8c9cff6d22933bbb53"}, {"id": "fls_rlo4237bgbwt", "number": "B.588:2", "link": "glossary.html#fls_rlo4237bgbwt", "checksum": "d651e6b4bb0714f78c0e76aea91063256ba3c136f075402fdf7f2d7789b5a9f7"}], "informational": false}, {"id": "fls_oa4p10yles30", "number": "B.589", "title": "shorthand initializer", "link": "glossary.html#shorthand-initializer", "paragraphs": [{"id": "fls_bgxxg48snck1", "number": "B.589:1", "link": "glossary.html#fls_bgxxg48snck1", "checksum": "219682f2ca70af89bb15456b2b480b5abfdd707ede0338d0cc148917370f33b6"}, {"id": "fls_qc08ydgmqudi", "number": "B.589:2", "link": "glossary.html#fls_qc08ydgmqudi", "checksum": "bb15646d2549f90d49c9e314257914d48648266de0cd37b86c780956b6b9a5a8"}], "informational": false}, {"id": "fls_nmw95nc951iu", "number": "B.590", "title": "signed integer type", "link": "glossary.html#signed-integer-type", "paragraphs": [{"id": "fls_vcronf7l2bhy", "number": "B.590:1", "link": "glossary.html#fls_vcronf7l2bhy", "checksum": "b484a6cf97b587756eaf17f0b00c2bff3580bcbbc871e9da7c57f800377018f3"}], "informational": false}, {"id": "fls_4gvxidfcplrd", "number": "B.591", "title": "simple byte string literal", "link": "glossary.html#simple-byte-string-literal", "paragraphs": [{"id": "fls_xpbu4up0aza8", "number": "B.591:1", "link": "glossary.html#fls_xpbu4up0aza8", "checksum": "240de0589c2f0a1216afb565ab85833ee58c0021c9acb1356f1d99b170bff9f6"}, {"id": "fls_ofi70zk68tnq", "number": "B.591:2", "link": "glossary.html#fls_ofi70zk68tnq", "checksum": "53b6521e56978d409f69defaad339b0bb285fe027fc46ae2a064c95770360894"}], "informational": false}, {"id": "fls_6mcm7xdcyn40", "number": "B.592", "title": "simple import", "link": "glossary.html#simple-import", "paragraphs": [{"id": "fls_jrlzpoauui9g", "number": "B.592:1", "link": "glossary.html#fls_jrlzpoauui9g", "checksum": "8cbb27f21ddb2b64287b47fc413a7545d60cdbec73f33babcfcfe63e7b8d4f1a"}, {"id": "fls_ta5t4h25unsw", "number": "B.592:2", "link": "glossary.html#fls_ta5t4h25unsw", "checksum": "522cd3367900250f16a09046a753e7597cefb524d678b096a89b68284f8632fc"}], "informational": false}, {"id": "fls_o5kv9lrtz4fq", "number": "B.593", "title": "simple path", "link": "glossary.html#simple-path", "paragraphs": [{"id": "fls_db91duoug4eb", "number": "B.593:1", "link": "glossary.html#fls_db91duoug4eb", "checksum": "302bf7e743ea458a7ed5b2bed446ee0e66d522d0cef48ced5f82c7ebc7e87d73"}, {"id": "fls_cm7ysyfrdwom", "number": "B.593:2", "link": "glossary.html#fls_cm7ysyfrdwom", "checksum": "a6d7b9fb4316a7224d9d5bbd09dbd87992f1bbcef3c413566fd4cbdeecc3a89b"}], "informational": false}, {"id": "fls_23g6tantjxqa", "number": "B.594", "title": "simple path prefix", "link": "glossary.html#simple-path-prefix", "paragraphs": [{"id": "fls_ijc2yhquilty", "number": "B.594:1", "link": "glossary.html#fls_ijc2yhquilty", "checksum": "8203df0c3becbdb918514069b8e3047f79db11d26dccc493c7752d00fb882b87"}, {"id": "fls_imhceyhhk6oz", "number": "B.594:2", "link": "glossary.html#fls_imhceyhhk6oz", "checksum": "5838d1d27013f8bca68d94a9127af38ac3f7dbb9a59a6a9c822b155eb95c3c01"}], "informational": false}, {"id": "fls_sgy9q06yt6cl", "number": "B.595", "title": "simple path public modifier", "link": "glossary.html#simple-path-public-modifier", "paragraphs": [{"id": "fls_mby9r0jm6uyv", "number": "B.595:1", "link": "glossary.html#fls_mby9r0jm6uyv", "checksum": "6a0328c33efacf2e1e5c51402ecdf576f016193e10c71fd2e21248add2cfc1b1"}, {"id": "fls_mud4hw74kuh6", "number": "B.595:2", "link": "glossary.html#fls_mud4hw74kuh6", "checksum": "0e6bbb09fd173ec2bfbe6c665dbd7c8fd770e98eefd0e85f8ec09c7304ae017b"}], "informational": false}, {"id": "fls_gt5rz4qc3pho", "number": "B.596", "title": "simple path resolution", "link": "glossary.html#simple-path-resolution", "paragraphs": [{"id": "fls_cqlepon6pmkq", "number": "B.596:1", "link": "glossary.html#fls_cqlepon6pmkq", "checksum": "93df9dbfb389fb8889169391265e6c89da8bbd394a5e61862b389648c247dbdc"}], "informational": false}, {"id": "fls_k5uqt5oj7wvl", "number": "B.597", "title": "simple public modifier", "link": "glossary.html#simple-public-modifier", "paragraphs": [{"id": "fls_ce1ounn1g68", "number": "B.597:1", "link": "glossary.html#fls_ce1ounn1g68", "checksum": "d3c28e6cba7c7ee3bb95dda04bb2e0dd1946ffec0b004ef23f5cb5f976644a4f"}, {"id": "fls_rd68vm2f2qy5", "number": "B.597:2", "link": "glossary.html#fls_rd68vm2f2qy5", "checksum": "5b502c001262606fa8ac93e1c3392515c078da867283a167bbc15c62e95772d3"}], "informational": false}, {"id": "fls_jdb3ebo0dy4o", "number": "B.598", "title": "simple register expression", "link": "glossary.html#simple-register-expression", "paragraphs": [{"id": "fls_4yp4r7gxucl2", "number": "B.598:1", "link": "glossary.html#fls_4yp4r7gxucl2", "checksum": "7e0c43d99329cee53612742b4664c420c545bef701facbc4e9a2840ed513c87c"}, {"id": "fls_kkaqhdxpttuc", "number": "B.598:2", "link": "glossary.html#fls_kkaqhdxpttuc", "checksum": "663bc7aa3d5f4bdbcf29c776b56afcff6fa10a0d1c42bf9fc577b637a74b797f"}], "informational": false}, {"id": "fls_dpod2gc7a0u", "number": "B.599", "title": "simple string literal", "link": "glossary.html#simple-string-literal", "paragraphs": [{"id": "fls_p6qyyptz8w8w", "number": "B.599:1", "link": "glossary.html#fls_p6qyyptz8w8w", "checksum": "3a3cdd962ac9019c3d9290553f854ee7a721954dc2c9f0b7c2445f5835f9d7b6"}, {"id": "fls_osj0c4dmr6e0", "number": "B.599:2", "link": "glossary.html#fls_osj0c4dmr6e0", "checksum": "41eb9351de7f3900935c86f7a49c2daee9b8803c662daa2cd9be171d0bc8d389"}], "informational": false}, {"id": "fls_js91bdzd03qj", "number": "B.600", "title": "single segment path", "link": "glossary.html#single-segment-path", "paragraphs": [{"id": "fls_hun5bczsqd6k", "number": "B.600:1", "link": "glossary.html#fls_hun5bczsqd6k", "checksum": "ed559515daaf26c73e18ad51cdf6d614e9c7ad24058260bc123b501442fe3b71"}], "informational": false}, {"id": "fls_oy5xy5pm1enx", "number": "B.601", "title": "size", "link": "glossary.html#size", "paragraphs": [{"id": "fls_3obnilqhkjux", "number": "B.601:1", "link": "glossary.html#fls_3obnilqhkjux", "checksum": "b302998907689fbf13c4f8078e47db42660130fd2d89e0909ee91b8f22cc3ee3"}], "informational": false}, {"id": "fls_2y5oyon3y1za", "number": "B.602", "title": "size operand", "link": "glossary.html#size-operand", "paragraphs": [{"id": "fls_srajsqi5i3py", "number": "B.602:1", "link": "glossary.html#fls_srajsqi5i3py", "checksum": "74345bd3146c994153f6b1cb926cb714626d393b5581ff4b33d3ce7b9ff17f14"}, {"id": "fls_228ioayvdguv", "number": "B.602:2", "link": "glossary.html#fls_228ioayvdguv", "checksum": "dbb5bab03e4e32af76a8d3acb475ed85a84d35b6cb8121a9145b90f888d7c328"}], "informational": false}, {"id": "fls_oiaoweqqde7i", "number": "B.603", "title": "sized type", "link": "glossary.html#sized-type", "paragraphs": [{"id": "fls_pwcgsrcnswkn", "number": "B.603:1", "link": "glossary.html#fls_pwcgsrcnswkn", "checksum": "81316bc3aa0e961ab93639afa23e97601ac170e7a35d11925a3b31d77befe702"}], "informational": false}, {"id": "fls_srkftses9sxn", "number": "B.604", "title": "slice", "link": "glossary.html#slice", "paragraphs": [{"id": "fls_p1sv01ml2ark", "number": "B.604:1", "link": "glossary.html#fls_p1sv01ml2ark", "checksum": "cee506307ae87c6c97d197d79ee149cf7939c0ce62ec674e1b827c7fba7ef5f7"}], "informational": false}, {"id": "fls_1s3a31o9zx1a", "number": "B.605", "title": "slice pattern", "link": "glossary.html#slice-pattern", "paragraphs": [{"id": "fls_7613qu4igwiw", "number": "B.605:1", "link": "glossary.html#fls_7613qu4igwiw", "checksum": "20d7f9a0871be783ae343c24d208962a58ab36fc49b88753b505da7f08fa73f6"}, {"id": "fls_3qey00280x27", "number": "B.605:2", "link": "glossary.html#fls_3qey00280x27", "checksum": "8e5e796d029a12ad7750baed68f980b263c914dbd89a309bbf3beae2eda0a534"}], "informational": false}, {"id": "fls_x3kr88m5gvwv", "number": "B.606", "title": "slice type", "link": "glossary.html#slice-type", "paragraphs": [{"id": "fls_bvpszep1w90g", "number": "B.606:1", "link": "glossary.html#fls_bvpszep1w90g", "checksum": "a593130cb4697d347855e3ab4be6e11ff678532bab5bac2229866f787c40f94b"}, {"id": "fls_y7gscwf29htg", "number": "B.606:2", "link": "glossary.html#fls_y7gscwf29htg", "checksum": "ca34f279744bd0af703f03126fcdb84a99d9d28b91bbb12081dcf248b0e1d106"}], "informational": false}, {"id": "fls_wlwwxzpnhk6i", "number": "B.607", "title": "source file", "link": "glossary.html#source-file", "paragraphs": [{"id": "fls_nh737q4mn27u", "number": "B.607:1", "link": "glossary.html#fls_nh737q4mn27u", "checksum": "e40fa914d13983c5ee5ca0905192bfe550ab8532579d6afaa878ed3a50d3d641"}, {"id": "fls_zgh1m5357ex1", "number": "B.607:2", "link": "glossary.html#fls_zgh1m5357ex1", "checksum": "6b1b66b82e4ab9634469f78c85bf26ceae300647533a07f9a62e77ac7e9ca765"}], "informational": false}, {"id": "fls_e7cvo0usw86i", "number": "B.608", "title": "statement", "link": "glossary.html#statement", "paragraphs": [{"id": "fls_faijgwg4lhp9", "number": "B.608:1", "link": "glossary.html#fls_faijgwg4lhp9", "checksum": "bf5f691ab0a43fd02aa87c661feec0730cfcfc91b5f24685efa59dfee5c0cf52"}, {"id": "fls_th7edvxml3mn", "number": "B.608:2", "link": "glossary.html#fls_th7edvxml3mn", "checksum": "30c54e18001cdbbee17cb43a2fc96bffb21bbc3e3116c2db33a6725722b7718c"}], "informational": false}, {"id": "fls_tpazbmuq9hag", "number": "B.609", "title": "static", "link": "glossary.html#static", "paragraphs": [{"id": "fls_srx4v1e20yxa", "number": "B.609:1", "link": "glossary.html#fls_srx4v1e20yxa", "checksum": "4f9cb27c73df439ebc13f181db03ab1ef49b92543fd366e9b4527c8444c796ff"}, {"id": "fls_1b7gpk8e98pw", "number": "B.609:2", "link": "glossary.html#fls_1b7gpk8e98pw", "checksum": "d258187f5db39b35fb4ffbec50fec919243b0d2071af0b861b7e05eafeef899b"}], "informational": false}, {"id": "fls_x331kxllyzim", "number": "B.610", "title": "static initializer", "link": "glossary.html#static-initializer", "paragraphs": [{"id": "fls_6jjbfni87tax", "number": "B.610:1", "link": "glossary.html#fls_6jjbfni87tax", "checksum": "5355753d17b9a1e7061974c57e99a31889eb0b46d01364d4c6d9b74811f7d0bf"}, {"id": "fls_igbl5uv0dlhl", "number": "B.610:2", "link": "glossary.html#fls_igbl5uv0dlhl", "checksum": "72fc972cdd541fb8ca2663c3b7dd0fc0a798be06d06177e90a728ac2cf8355bf"}], "informational": false}, {"id": "fls_jcqikgw9g8n5", "number": "B.611", "title": "static lifetime elision", "link": "glossary.html#static-lifetime-elision", "paragraphs": [{"id": "fls_nbvewjyrnqpf", "number": "B.611:1", "link": "glossary.html#fls_nbvewjyrnqpf", "checksum": "4da591ce0c09acde63777755ad8fe0b8287c1d3267838ff368addf6254513b5d"}], "informational": false}, {"id": "fls_1ricdj86o457", "number": "B.612", "title": "str", "link": "glossary.html#str", "paragraphs": [{"id": "fls_6977zxb0resa", "number": "B.612:1", "link": "glossary.html#fls_6977zxb0resa", "checksum": "c780396b07b8f0521e767ef92a329d5f625360d5f1afb720ea854c4953bd8419"}], "informational": false}, {"id": "fls_bzhaq3q378ay", "number": "B.613", "title": "strict keyword", "link": "glossary.html#strict-keyword", "paragraphs": [{"id": "fls_hza9spr6behn", "number": "B.613:1", "link": "glossary.html#fls_hza9spr6behn", "checksum": "2b1dfb1c0e61d8912d1dd673de69374a8fd7d638159307aa8c29bb282171450b"}, {"id": "fls_67pzayd9qzzs", "number": "B.613:2", "link": "glossary.html#fls_67pzayd9qzzs", "checksum": "024955ef4fd2cb181a71d8785ed496d36e26688e5e1d0a8ecf0234bf90e79adb"}], "informational": false}, {"id": "fls_cck2tmyzmpja", "number": "B.614", "title": "string literal", "link": "glossary.html#string-literal", "paragraphs": [{"id": "fls_dphk5br0ag35", "number": "B.614:1", "link": "glossary.html#fls_dphk5br0ag35", "checksum": "14e09d8b97a66fdbada8ce9e55d45408b7a46c69a843b69cdfb609e4a84a0205"}, {"id": "fls_z0t3ae24h5h5", "number": "B.614:2", "link": "glossary.html#fls_z0t3ae24h5h5", "checksum": "dabe57cf78f3f40fa6255d8172c08616047fa0b930adc9d29640296e927753ba"}], "informational": false}, {"id": "fls_yphnf56fa58r", "number": "B.615", "title": "struct", "link": "glossary.html#struct", "paragraphs": [{"id": "fls_rufylj7qxs1w", "number": "B.615:1", "link": "glossary.html#fls_rufylj7qxs1w", "checksum": "f5fbe6a9bb603d31026edef3b582db98a582bbc4d02a95bde3c75f506873dbae"}], "informational": false}, {"id": "fls_dxfyejkbiz3p", "number": "B.616", "title": "struct expression", "link": "glossary.html#struct-expression", "paragraphs": [{"id": "fls_m8n9e0sxyb95", "number": "B.616:1", "link": "glossary.html#fls_m8n9e0sxyb95", "checksum": "499bbb6609c83dd969e5c1c2d735637ba43d35f5af7277f5e1ec70d1bb188a08"}, {"id": "fls_odm68rhu2j1", "number": "B.616:2", "link": "glossary.html#fls_odm68rhu2j1", "checksum": "ef9f4e2d55f8fbc3c3e3b7aca8bc4fd3e1878411609ed3d7e247cbe4118bd0dd"}], "informational": false}, {"id": "fls_ot6dj7cwkstg", "number": "B.617", "title": "struct field", "link": "glossary.html#struct-field", "paragraphs": [{"id": "fls_8z9ywmnrhxjs", "number": "B.617:1", "link": "glossary.html#fls_8z9ywmnrhxjs", "checksum": "e9f4a702e5f7e0b0ae422c36194acb862214f0536da4b586e5dda02b75f83718"}], "informational": false}, {"id": "fls_ook43xes5t34", "number": "B.618", "title": "struct pattern", "link": "glossary.html#struct-pattern", "paragraphs": [{"id": "fls_xbtoiwegp8gu", "number": "B.618:1", "link": "glossary.html#fls_xbtoiwegp8gu", "checksum": "31ab557d6fa73330faca7a26d2a780c91f94caa7a05d631063501fcef71661e1"}, {"id": "fls_pn8e50ep2fln", "number": "B.618:2", "link": "glossary.html#fls_pn8e50ep2fln", "checksum": "894983d0de7b7b5f61df2bb3e077ff4e8053de20a9196b0127ff8a5d8525947d"}], "informational": false}, {"id": "fls_pzj88ust6qrq", "number": "B.619", "title": "struct type", "link": "glossary.html#struct-type", "paragraphs": [{"id": "fls_7v4dhh3nl8h9", "number": "B.619:1", "link": "glossary.html#fls_7v4dhh3nl8h9", "checksum": "d81c9587a4a4253e465180e7e762ce144ae9971c94a10717066a9026e7d70b51"}, {"id": "fls_dhlww4yrnb2v", "number": "B.619:2", "link": "glossary.html#fls_dhlww4yrnb2v", "checksum": "aaa87a42fea5c81ee77c9afd026837473da6e30ed5010a8162226119622ee1c1"}], "informational": false}, {"id": "fls_gonqhasyw1oi", "number": "B.620", "title": "struct value", "link": "glossary.html#struct-value", "paragraphs": [{"id": "fls_ymzfw9kwlbix", "number": "B.620:1", "link": "glossary.html#fls_ymzfw9kwlbix", "checksum": "6bd274761a79f65af71ef75d12be7b089a531c77567d26c881e5aff396428d49"}], "informational": false}, {"id": "fls_p7920aljisrh", "number": "B.621", "title": "structurally equal", "link": "glossary.html#structurally-equal", "paragraphs": [{"id": "fls_glrzukhmawmp", "number": "B.621:1", "link": "glossary.html#fls_glrzukhmawmp", "checksum": "7dd15c086ecdcec30cc008a581b76d6c709caf5a53e6a46c566a7c2842b1cd7c"}], "informational": false}, {"id": "fls_fez3idff05cb", "number": "B.622", "title": "subexpression", "link": "glossary.html#subexpression", "paragraphs": [{"id": "fls_bnshwd4kpfm0", "number": "B.622:1", "link": "glossary.html#fls_bnshwd4kpfm0", "checksum": "67c1c160f65cc04a9d89cc4bfa73ccbe3120963278571298e35c08aabaea7bfa"}], "informational": false}, {"id": "fls_wee9stfk0abp", "number": "B.623", "title": "subject expression", "link": "glossary.html#subject-expression", "paragraphs": [{"id": "fls_xisqke87ert", "number": "B.623:1", "link": "glossary.html#fls_xisqke87ert", "checksum": "7c843ae41331237817b624138270a4b00bab829daa73d2ee0014acc51797472e"}, {"id": "fls_gph5doham4js", "number": "B.623:2", "link": "glossary.html#fls_gph5doham4js", "checksum": "c7ec2e06c4b0b3c8c5d2d9a768d5d0a8a748531f0005e82e5cded086c8e28768"}], "informational": false}, {"id": "fls_dc5ibvnnhs7e", "number": "B.624", "title": "subject let expression", "link": "glossary.html#subject-let-expression", "paragraphs": [{"id": "fls_b3ckv6zgnaeb", "number": "B.624:1", "link": "glossary.html#fls_b3ckv6zgnaeb", "checksum": "8b88e2d4b838d078a9c47bdaa6b417f3b777edb655683284c0442ec129ef777e"}, {"id": "fls_vnzaargh5yok", "number": "B.624:2", "link": "glossary.html#fls_vnzaargh5yok", "checksum": "e4b5703d1d025b16cfa295c33b74a32dd8ec0e1f27ca33b22f154950f026adb5"}], "informational": false}, {"id": "fls_k7ro8n23wtdc", "number": "B.625", "title": "subpattern", "link": "glossary.html#subpattern", "paragraphs": [{"id": "fls_942ulj9qsdes", "number": "B.625:1", "link": "glossary.html#fls_942ulj9qsdes", "checksum": "e70efe05c2fad045cee1a1131482f278b93f794787c1df91d300c860a1ad9704"}], "informational": false}, {"id": "fls_0hf1gnf90qkr", "number": "B.626", "title": "subtraction assignment", "link": "glossary.html#subtraction-assignment", "paragraphs": [{"id": "fls_75eyk2yxo2j4", "number": "B.626:1", "link": "glossary.html#fls_75eyk2yxo2j4", "checksum": "16fca30812eb235c8b557a93a13756bc39c0845207c5c2c40386bf224ba3f036"}], "informational": false}, {"id": "fls_a4iu72zn4h0", "number": "B.627", "title": "subtraction assignment expression", "link": "glossary.html#subtraction-assignment-expression", "paragraphs": [{"id": "fls_4pb85nl4r7vs", "number": "B.627:1", "link": "glossary.html#fls_4pb85nl4r7vs", "checksum": "94b7335b72716a696d96f92fc481f703af70ece1aaac62b59428b634927782f7"}, {"id": "fls_mye9yj5tc8hr", "number": "B.627:2", "link": "glossary.html#fls_mye9yj5tc8hr", "checksum": "99e9e1c05adf9d2d4fa06e5250575dab07273dd327eaf9be139829d9c8875b68"}], "informational": false}, {"id": "fls_25ru96mfdcsn", "number": "B.628", "title": "subtraction expression", "link": "glossary.html#subtraction-expression", "paragraphs": [{"id": "fls_caamjgpw59id", "number": "B.628:1", "link": "glossary.html#fls_caamjgpw59id", "checksum": "7bdbffe316631038216d56ad9d23a08326903428a975242329934a7640d45ef1"}, {"id": "fls_mx3olnbntpye", "number": "B.628:2", "link": "glossary.html#fls_mx3olnbntpye", "checksum": "9d7dd055877382e5b2ed574d87fb5839e2119866b2d09ffc5ef7643a202a3fa3"}], "informational": false}, {"id": "fls_qw3fn1116se9", "number": "B.629", "title": "subtrait", "link": "glossary.html#subtrait", "paragraphs": [{"id": "fls_wnj95vozis6n", "number": "B.629:1", "link": "glossary.html#fls_wnj95vozis6n", "checksum": "dfb91d945c0406e088388895f2e4eb5320b9a2f0c9da9c7201d69c279e1be946"}], "informational": false}, {"id": "fls_pu4zqj1tgrfh", "number": "B.630", "title": "subtype", "link": "glossary.html#subtype", "paragraphs": [{"id": "fls_pmkjowsieqog", "number": "B.630:1", "link": "glossary.html#fls_pmkjowsieqog", "checksum": "70a03b9f20247a6880d94fa4005147b36b8c517499d097dead1837f3565e98bb"}], "informational": false}, {"id": "fls_f5dxz8pvs1kz", "number": "B.631", "title": "subtyping", "link": "glossary.html#subtyping", "paragraphs": [{"id": "fls_bo5xzjsdd3lj", "number": "B.631:1", "link": "glossary.html#fls_bo5xzjsdd3lj", "checksum": "8a3b01274b8523c1b8f95f68ad12369141240ae80d3eeed8db09de48cc69c2df"}], "informational": false}, {"id": "fls_qar9v52smi9j", "number": "B.632", "title": "suffixed float", "link": "glossary.html#suffixed-float", "paragraphs": [{"id": "fls_7reb4jp0x1wf", "number": "B.632:1", "link": "glossary.html#fls_7reb4jp0x1wf", "checksum": "2097bd5c72c447994db952b6e08d6092720ef5355be92616486a8db756a2331d"}], "informational": false}, {"id": "fls_bmbu11ycjpor", "number": "B.633", "title": "suffixed integer", "link": "glossary.html#suffixed-integer", "paragraphs": [{"id": "fls_ltzetxu3sq7k", "number": "B.633:1", "link": "glossary.html#fls_ltzetxu3sq7k", "checksum": "685b7e8e3b380db2523911991f3f586f96f845a195fdc5d73d394864dc8a40b5"}], "informational": false}, {"id": "fls_12bluakt0jnj", "number": "B.634", "title": "super public modifier", "link": "glossary.html#super-public-modifier", "paragraphs": [{"id": "fls_vry5mhs3a5wv", "number": "B.634:1", "link": "glossary.html#fls_vry5mhs3a5wv", "checksum": "b5870c029074717d1b151adc15bf8667ab41b158131e55fbffd1ae0a690fc391"}, {"id": "fls_4a1s9bcrk5oy", "number": "B.634:2", "link": "glossary.html#fls_4a1s9bcrk5oy", "checksum": "0e03fd06e3f48059a98f5c7000d34f910c38730b70cd097b709a8759ce8d9ddf"}], "informational": false}, {"id": "fls_1axcyv628aov", "number": "B.635", "title": "supertrait", "link": "glossary.html#supertrait", "paragraphs": [{"id": "fls_s4chur1wutwh", "number": "B.635:1", "link": "glossary.html#fls_s4chur1wutwh", "checksum": "c047603bf44cc875913881293d83e517c2a1e49d6a85801443f91559915be20e"}], "informational": false}, {"id": "fls_r4eoz3ohvpdi", "number": "B.636", "title": "sync type", "link": "glossary.html#sync-type", "paragraphs": [{"id": "fls_rpc0c8qx3nbo", "number": "B.636:1", "link": "glossary.html#fls_rpc0c8qx3nbo", "checksum": "bc8f8423550c9b123c66e2616f181f7081064c9b0b9bf66723ba1c2f86a4dadc"}], "informational": false}, {"id": "fls_44djv0wocacs", "number": "B.637", "title": "syntactic category", "link": "glossary.html#syntactic-category", "paragraphs": [{"id": "fls_f981e3m7kq50", "number": "B.637:1", "link": "glossary.html#fls_f981e3m7kq50", "checksum": "a8b23520c501f81c345e6e33431b67986a2850dc3de4a72e1fdf2d5720700bca"}], "informational": false}, {"id": "fls_psd2ll10ixs", "number": "B.638", "title": "tail expression", "link": "glossary.html#tail-expression", "paragraphs": [{"id": "fls_6k873f1knasi", "number": "B.638:1", "link": "glossary.html#fls_6k873f1knasi", "checksum": "3692c3fe609b905b0734904435de28f55003026dd2504681ae3e03a050119c73"}], "informational": false}, {"id": "fls_4omay4i65dwz", "number": "B.639", "title": "temporary", "link": "glossary.html#temporary", "paragraphs": [{"id": "fls_fathkxu9kxvw", "number": "B.639:1", "link": "glossary.html#fls_fathkxu9kxvw", "checksum": "12bc59acb7d38876c64b0653786c9f08057881a81fff343bdea6ee49f7c15cba"}], "informational": false}, {"id": "fls_ihv02usuziw8", "number": "B.640", "title": "terminated", "link": "glossary.html#terminated", "paragraphs": [{"id": "fls_med1l8vheb83", "number": "B.640:1", "link": "glossary.html#fls_med1l8vheb83", "checksum": "3b456b60006efdb599c098450930107e76e6f7de7732cae0e96dd51a6c4f3156"}], "informational": false}, {"id": "fls_ef03n3ehz372", "number": "B.641", "title": "terminated macro invocation", "link": "glossary.html#terminated-macro-invocation", "paragraphs": [{"id": "fls_542es82wfzco", "number": "B.641:1", "link": "glossary.html#fls_542es82wfzco", "checksum": "9cbf5912d6d17d7ac0ed3b3c24ab980c7ed2e4fb5b00af87a0b7865553130294"}, {"id": "fls_tcvfi2zgdm58", "number": "B.641:2", "link": "glossary.html#fls_tcvfi2zgdm58", "checksum": "e3b89b8eb10906f6c083c59009b877a69d78ed35f41df00699d64ff89e58575e"}], "informational": false}, {"id": "fls_avzgzpd6wxxo", "number": "B.642", "title": "textual macro scope", "link": "glossary.html#textual-macro-scope", "paragraphs": [{"id": "fls_xyeyk6vrmlwp", "number": "B.642:1", "link": "glossary.html#fls_xyeyk6vrmlwp", "checksum": "b43c006d70a287d794f7febf43b53d6d42fe70004535a89617c39356ee558deb"}], "informational": false}, {"id": "fls_mdcbhy96hrau", "number": "B.643", "title": "textual type", "link": "glossary.html#textual-type", "paragraphs": [{"id": "fls_lv1pdtzf6f58", "number": "B.643:1", "link": "glossary.html#fls_lv1pdtzf6f58", "checksum": "2fc66eb388b114ec37b6e442a13f0de907102366b96000febf92572ab97b53d0"}], "informational": false}, {"id": "fls_lfsgf6u142yb", "number": "B.644", "title": "thin pointer", "link": "glossary.html#thin-pointer", "paragraphs": [{"id": "fls_i2j0u4v5o1bs", "number": "B.644:1", "link": "glossary.html#fls_i2j0u4v5o1bs", "checksum": "98d0ef426eb51ce57244742f7fab1ff43421302eac3bacf3a6aae66d4fac0f89"}], "informational": false}, {"id": "fls_7ksqpi9j8ba9", "number": "B.645", "title": "thin pointer type", "link": "glossary.html#thin-pointer-type", "paragraphs": [{"id": "fls_33rka3kyxgrk", "number": "B.645:1", "link": "glossary.html#fls_33rka3kyxgrk", "checksum": "681e18d70f0544e542ba3910ae049790c537eed7fef99a72b866923d9b122189"}], "informational": false}, {"id": "fls_tzoko74t5t6n", "number": "B.646", "title": "token matching", "link": "glossary.html#token-matching", "paragraphs": [{"id": "fls_a19q6lhvakcm", "number": "B.646:1", "link": "glossary.html#fls_a19q6lhvakcm", "checksum": "5f351473bc8fa908a3ee2b417457794e4feefba257826dec5b40df10c6121c00"}], "informational": false}, {"id": "fls_ma3vs7yoj285", "number": "B.647", "title": "tokens", "link": "glossary.html#tokens", "paragraphs": [{"id": "fls_v23kqvyvscd7", "number": "B.647:1", "link": "glossary.html#fls_v23kqvyvscd7", "checksum": "a2cc0e70e5f53eb45a8001d5b35586e4e8be6bb6381338d296d1dca3622651c1"}], "informational": false}, {"id": "fls_cad25qns4164", "number": "B.648", "title": "trait", "link": "glossary.html#trait", "paragraphs": [{"id": "fls_mf4x9g70o5z6", "number": "B.648:1", "link": "glossary.html#fls_mf4x9g70o5z6", "checksum": "784c3ee0f36516eafac0b2ceff3671873158cb09a282fb61b14c87e50c82ee6d"}, {"id": "fls_ypjhwvuyrns", "number": "B.648:2", "link": "glossary.html#fls_ypjhwvuyrns", "checksum": "4a032811b672f3b87705a845ec088166373babfba61ce19f49f6aa446bcd4abc"}], "informational": false}, {"id": "fls_5hnydsqdricq", "number": "B.649", "title": "trait body", "link": "glossary.html#trait-body", "paragraphs": [{"id": "fls_u221me58azmy", "number": "B.649:1", "link": "glossary.html#fls_u221me58azmy", "checksum": "79825c17c00b2a445bea3ba1a547d7682c3d49ae5619d0fc26f1b35bb4322ad6"}, {"id": "fls_ditfx04tb4h0", "number": "B.649:2", "link": "glossary.html#fls_ditfx04tb4h0", "checksum": "998aa3d18694487f4a3f8b413092cb43b87c51361c018ff43f50426e70d4ff91"}], "informational": false}, {"id": "fls_868cgnb1soeh", "number": "B.650", "title": "trait bound", "link": "glossary.html#trait-bound", "paragraphs": [{"id": "fls_95zx8unuxxpq", "number": "B.650:1", "link": "glossary.html#fls_95zx8unuxxpq", "checksum": "eb508851b91d4f27932856849cf182b28b83707b42dc7206964e098efa41dc02"}, {"id": "fls_bkbym8v4t6oh", "number": "B.650:2", "link": "glossary.html#fls_bkbym8v4t6oh", "checksum": "6338bc49a64e3c376911109c331a37133aea2682ed07b3012cf3be295a2baabf"}], "informational": false}, {"id": "fls_kflieu6uottg", "number": "B.651", "title": "trait implementation", "link": "glossary.html#trait-implementation", "paragraphs": [{"id": "fls_5v7kbg144pr8", "number": "B.651:1", "link": "glossary.html#fls_5v7kbg144pr8", "checksum": "a5d5da0318d7ec6c47bf385aa8183d09d97852f18063c4b197eaf7e0638c0bdf"}, {"id": "fls_rytylyyxh27f", "number": "B.651:2", "link": "glossary.html#fls_rytylyyxh27f", "checksum": "de677497269bbc746364f40ff86042e595e9ae307d7586eed4e455d97d6eb5b6"}], "informational": false}, {"id": "fls_tcizyomegtub", "number": "B.652", "title": "trait object lifetime elision", "link": "glossary.html#trait-object-lifetime-elision", "paragraphs": [{"id": "fls_ralp9b6qjlp9", "number": "B.652:1", "link": "glossary.html#fls_ralp9b6qjlp9", "checksum": "ec20dc3fcc961ba79d6cec949a10bbcfde569965da5bdc16a2b164c79ee837a1"}], "informational": false}, {"id": "fls_7qtbro7ipndr", "number": "B.653", "title": "trait object type", "link": "glossary.html#trait-object-type", "paragraphs": [{"id": "fls_lo2fzzdwxy1l", "number": "B.653:1", "link": "glossary.html#fls_lo2fzzdwxy1l", "checksum": "596f296cca0b51eaa8e888755d7d04130b502f20422d5a513322d6ce74806052"}, {"id": "fls_d632mc5c8qwt", "number": "B.653:2", "link": "glossary.html#fls_d632mc5c8qwt", "checksum": "583cbdd6914b329061117d141e14d6076bf8fc9a1092fd74f131455d10fe417e"}], "informational": false}, {"id": "fls_nfdfefvzrc5f", "number": "B.654", "title": "trait type", "link": "glossary.html#trait-type", "paragraphs": [{"id": "fls_jqsqnq0dthls", "number": "B.654:1", "link": "glossary.html#fls_jqsqnq0dthls", "checksum": "282d3a580517f24ff1a616e6dc74f09871ab4b9c744dab103befca5df9b7974f"}], "informational": false}, {"id": "fls_sl62718i1kkn", "number": "B.655", "title": "transparent representation", "link": "glossary.html#transparent-representation", "paragraphs": [{"id": "fls_hb3e72rhzpnv", "number": "B.655:1", "link": "glossary.html#fls_hb3e72rhzpnv", "checksum": "1aa437048ffba699da3bad8b9d92d96000b75d9f2654d585d93967ff2d6df826"}], "informational": false}, {"id": "fls_soqkluvirlsd", "number": "B.656", "title": "trivial predicate", "link": "glossary.html#trivial-predicate", "paragraphs": [{"id": "fls_db5njwrjolhs", "number": "B.656:1", "link": "glossary.html#fls_db5njwrjolhs", "checksum": "72411b58cceb5aff59f068ef733015dddfe004273aa63c2936451c3752c30803"}], "informational": false}, {"id": "fls_si70t19ox07e", "number": "B.657", "title": "tuple", "link": "glossary.html#tuple", "paragraphs": [{"id": "fls_yhcfqz6p0059", "number": "B.657:1", "link": "glossary.html#fls_yhcfqz6p0059", "checksum": "ada19ba49b9c09a8650bc6dae3c0162ffb460e1f3fce7b72d3c89e43397c8868"}], "informational": false}, {"id": "fls_1xehpjok9dkb", "number": "B.658", "title": "tuple enum variant", "link": "glossary.html#tuple-enum-variant", "paragraphs": [{"id": "fls_eduqhuybekvx", "number": "B.658:1", "link": "glossary.html#fls_eduqhuybekvx", "checksum": "96f0314bd359452ec5781db052a5b1237ac5af5741013b5594601070a0238790"}], "informational": false}, {"id": "fls_sp7uholxgfro", "number": "B.659", "title": "tuple enum variant value", "link": "glossary.html#tuple-enum-variant-value", "paragraphs": [{"id": "fls_orurxipgqnrz", "number": "B.659:1", "link": "glossary.html#fls_orurxipgqnrz", "checksum": "fd7a0c032dc675eac522e0d301dfac0dd616324af7fad3e01a24b4c628b5ea6d"}], "informational": false}, {"id": "fls_udl6ujjg1jae", "number": "B.660", "title": "tuple expression", "link": "glossary.html#tuple-expression", "paragraphs": [{"id": "fls_x7m4u1dx4eli", "number": "B.660:1", "link": "glossary.html#fls_x7m4u1dx4eli", "checksum": "77393bbf95fdc35673bc286aa58c588f01f1fd5873efdfa3f332b1024599f723"}, {"id": "fls_qawnvcddgyxx", "number": "B.660:2", "link": "glossary.html#fls_qawnvcddgyxx", "checksum": "df4b75afd3344d180661255ac0da48f1f23d5456d1502eb6862a2cbc3ec193c2"}], "informational": false}, {"id": "fls_bf1v4e1s5xj6", "number": "B.661", "title": "tuple field", "link": "glossary.html#tuple-field", "paragraphs": [{"id": "fls_8rq1gbzij5tk", "number": "B.661:1", "link": "glossary.html#fls_8rq1gbzij5tk", "checksum": "dc347c35a584cf9bc8cb8bfc6d525092724712619b91a2e5c4123574a19cbfeb"}], "informational": false}, {"id": "fls_zfvvbf7ncrhj", "number": "B.662", "title": "tuple initializer", "link": "glossary.html#tuple-initializer", "paragraphs": [{"id": "fls_94hg6re11zl5", "number": "B.662:1", "link": "glossary.html#fls_94hg6re11zl5", "checksum": "fe59827b018a12bd1afdb2a274f0db4bcdc35d4a4e263d0130439c137025cc41"}], "informational": false}, {"id": "fls_7f2sx37kg4ca", "number": "B.663", "title": "tuple pattern", "link": "glossary.html#tuple-pattern", "paragraphs": [{"id": "fls_al2q3vh1rg6e", "number": "B.663:1", "link": "glossary.html#fls_al2q3vh1rg6e", "checksum": "014e8976a0754aabc5a82c10550042e050855bf54da0c5fd42c89e1713d3e0ad"}, {"id": "fls_bevmt5t0238j", "number": "B.663:2", "link": "glossary.html#fls_bevmt5t0238j", "checksum": "366b7cc3670f470aa55f22e1a42e8fbb4a6335e807dc55022cbfc8e043ac4740"}], "informational": false}, {"id": "fls_245idp9hpqf6", "number": "B.664", "title": "tuple struct", "link": "glossary.html#tuple-struct", "paragraphs": [{"id": "fls_pdcpmapiq491", "number": "B.664:1", "link": "glossary.html#fls_pdcpmapiq491", "checksum": "b311d346bfd4e086b5c17c8f16534ff967414f9627ca9530ca3b8be758b5c18f"}, {"id": "fls_1tj4p05m4wdf", "number": "B.664:2", "link": "glossary.html#fls_1tj4p05m4wdf", "checksum": "6cdc2a1f6dde6174225d84db6381bd5955b4cf4670fa66ce2cb4fd134bfb3706"}], "informational": false}, {"id": "fls_uycpeq4z87my", "number": "B.665", "title": "tuple struct call expression", "link": "glossary.html#tuple-struct-call-expression", "paragraphs": [{"id": "fls_dqacukskfxzk", "number": "B.665:1", "link": "glossary.html#fls_dqacukskfxzk", "checksum": "a64d40bff82db0127f3143f64a671fb6f7d89c57e8ac4c3ead72042d404e6aea"}], "informational": false}, {"id": "fls_xx4slbg8s63e", "number": "B.666", "title": "tuple struct field", "link": "glossary.html#tuple-struct-field", "paragraphs": [{"id": "fls_ndeb1a2hm9d8", "number": "B.666:1", "link": "glossary.html#fls_ndeb1a2hm9d8", "checksum": "34f0ca66a05c537ae1ade668b63e1e7ac6dca1122c33c64c2ef18c2a7863c403"}, {"id": "fls_v4eq8xg608d5", "number": "B.666:2", "link": "glossary.html#fls_v4eq8xg608d5", "checksum": "1f33d04d14f1689b6934399e869ab681345727930a1ebf333573e8631fcd8583"}], "informational": false}, {"id": "fls_u2j18nl1t12f", "number": "B.667", "title": "tuple struct pattern", "link": "glossary.html#tuple-struct-pattern", "paragraphs": [{"id": "fls_gu1mfurivnfz", "number": "B.667:1", "link": "glossary.html#fls_gu1mfurivnfz", "checksum": "144fd7c64d475120fd661c0bfee35b7c617ef21486036cdc10e17e37a138cfe3"}, {"id": "fls_3jx5683mdm10", "number": "B.667:2", "link": "glossary.html#fls_3jx5683mdm10", "checksum": "3520afa480b073c9eb1d2441a6534ec15d464557e5a5c1b41696b94d12f1793e"}], "informational": false}, {"id": "fls_qx8j2lvqigqk", "number": "B.668", "title": "tuple struct type", "link": "glossary.html#tuple-struct-type", "paragraphs": [{"id": "fls_hhikx5ajx3bl", "number": "B.668:1", "link": "glossary.html#fls_hhikx5ajx3bl", "checksum": "416849fc332ef48c6d4f984fd449183aabcb750d11e2b2e5466e6a95a3756055"}], "informational": false}, {"id": "fls_x4alcjkhvdzf", "number": "B.669", "title": "tuple struct value", "link": "glossary.html#tuple-struct-value", "paragraphs": [{"id": "fls_xz1p4pss2ocn", "number": "B.669:1", "link": "glossary.html#fls_xz1p4pss2ocn", "checksum": "79e56f6a22048aaaa6aa17dfc77a56f04c7cb3406f2b512a417c47429f0408ae"}], "informational": false}, {"id": "fls_k4yz7i2pf9wp", "number": "B.670", "title": "tuple type", "link": "glossary.html#tuple-type", "paragraphs": [{"id": "fls_q0ulqfvnxwni", "number": "B.670:1", "link": "glossary.html#fls_q0ulqfvnxwni", "checksum": "668679a339b1d390d2879dd09057dfb653483310820e25cb85f36ecb257a07f2"}, {"id": "fls_rkugxsau1w78", "number": "B.670:2", "link": "glossary.html#fls_rkugxsau1w78", "checksum": "173ce8cdfc9a32ca31bd38a2ea635ca03be34fb62a27d0a865033c3601be7635"}], "informational": false}, {"id": "fls_wzupssn435n", "number": "B.671", "title": "type", "link": "glossary.html#type", "paragraphs": [{"id": "fls_nhlh7vvgsbwo", "number": "B.671:1", "link": "glossary.html#fls_nhlh7vvgsbwo", "checksum": "0abdb8e038c1bfa402d5079e31e31f4e462c1551ca20b145e493f50f1f3c7854"}], "informational": false}, {"id": "fls_vaklivoy2ix2", "number": "B.672", "title": "type alias", "link": "glossary.html#type-alias", "paragraphs": [{"id": "fls_8pcsxodv1xp5", "number": "B.672:1", "link": "glossary.html#fls_8pcsxodv1xp5", "checksum": "aa3c4d9f62051dcd0d2aab6ecc975098440380f66c21a7c8a410d0280d6d2dda"}, {"id": "fls_qfzskp1t3h5w", "number": "B.672:2", "link": "glossary.html#fls_qfzskp1t3h5w", "checksum": "7ce8f63fe99b83be7ea5fbe8ba19ddd3e9485e4c4b41bad48e9f3c6af28a6389"}], "informational": false}, {"id": "fls_89ollsdjx3uy", "number": "B.673", "title": "type argument", "link": "glossary.html#type-argument", "paragraphs": [{"id": "fls_152lk7hrtd11", "number": "B.673:1", "link": "glossary.html#fls_152lk7hrtd11", "checksum": "fa43d63754ae49bfbcb18ce1c738640e7ea982d0e8a54f7a373fca1a8f8687b5"}, {"id": "fls_91tqk65qiygf", "number": "B.673:2", "link": "glossary.html#fls_91tqk65qiygf", "checksum": "a3bf5eee58995eca7961b2df9db410281b0267a7308845a618f2c29758520c1c"}], "informational": false}, {"id": "fls_1n50v16et5e6", "number": "B.674", "title": "type ascription", "link": "glossary.html#type-ascription", "paragraphs": [{"id": "fls_pm5jytclqn7y", "number": "B.674:1", "link": "glossary.html#fls_pm5jytclqn7y", "checksum": "e786169392329eab70eb20b191e49053427501e8e0e70866639dc3e79db0c56c"}, {"id": "fls_c3xtiputfxea", "number": "B.674:2", "link": "glossary.html#fls_c3xtiputfxea", "checksum": "4017b57ffdd0b3ce8085deb3eeb6c74b70ee0424570270827943660f8f9e6e99"}], "informational": false}, {"id": "fls_zddxv5i4bw9h", "number": "B.675", "title": "type bound predicate", "link": "glossary.html#type-bound-predicate", "paragraphs": [{"id": "fls_j6wkoybb4cep", "number": "B.675:1", "link": "glossary.html#fls_j6wkoybb4cep", "checksum": "9eda2d81c174228b1d72bed89c9818071620c13ae46d5ae55cb5152642ece5bb"}, {"id": "fls_omlpngodjnow", "number": "B.675:2", "link": "glossary.html#fls_omlpngodjnow", "checksum": "0246218bc2fdad2c586c7abeea45f0e01af777b9ed8915378a5b40d264abcf14"}], "informational": false}, {"id": "fls_k24jb967nu1q", "number": "B.676", "title": "type cast expression", "link": "glossary.html#type-cast-expression", "paragraphs": [{"id": "fls_j6zo3rir1x76", "number": "B.676:1", "link": "glossary.html#fls_j6zo3rir1x76", "checksum": "e49eb059e7bb4cee0f4fd399cfff35171648face5051433e2aa2c8524cbf1680"}, {"id": "fls_dvh1xy9w74ch", "number": "B.676:2", "link": "glossary.html#fls_dvh1xy9w74ch", "checksum": "98cca27ac1968d639801599c46b5009c59014d58e18c6232f0f6141b7e5cb18a"}], "informational": false}, {"id": "fls_6j08yuafv0vl", "number": "B.677", "title": "type coercion", "link": "glossary.html#type-coercion", "paragraphs": [{"id": "fls_mt36qehtqova", "number": "B.677:1", "link": "glossary.html#fls_mt36qehtqova", "checksum": "15d4c95ee790f9faf8bf61ea000ae4a165864cad1a8ee88a120cb524d75f37f6"}], "informational": false}, {"id": "fls_7fpvb2gvqng8", "number": "B.678", "title": "type inference", "link": "glossary.html#type-inference", "paragraphs": [{"id": "fls_ky8epvf9834e", "number": "B.678:1", "link": "glossary.html#fls_ky8epvf9834e", "checksum": "d70e06ecdd54a9ee05e709764b36e5d3d678f857d806b816c0b8c84801361aa5"}], "informational": false}, {"id": "fls_0jri0m3f1fat", "number": "B.679", "title": "type inference root", "link": "glossary.html#type-inference-root", "paragraphs": [{"id": "fls_hli7lcixs48z", "number": "B.679:1", "link": "glossary.html#fls_hli7lcixs48z", "checksum": "5859c3075cf1df2fd347a0e0ba5681b8b26efa87f65a5eb486a7b8835742b661"}], "informational": false}, {"id": "fls_uv2damik654e", "number": "B.680", "title": "type parameter", "link": "glossary.html#type-parameter", "paragraphs": [{"id": "fls_5t6510wkb67x", "number": "B.680:1", "link": "glossary.html#fls_5t6510wkb67x", "checksum": "446d19536c494b187a348cede9ba0474e39271596216682bcb9b59c2c24a270a"}, {"id": "fls_vquy0tsvd93x", "number": "B.680:2", "link": "glossary.html#fls_vquy0tsvd93x", "checksum": "3c2520f52c836ea52a6b324f7a0b5eac234dfce8887421ee8b74454a286fab82"}], "informational": false}, {"id": "fls_fq2zthyrpk2v", "number": "B.681", "title": "type parameter initializer", "link": "glossary.html#type-parameter-initializer", "paragraphs": [{"id": "fls_xpz47jlnsoxi", "number": "B.681:1", "link": "glossary.html#fls_xpz47jlnsoxi", "checksum": "aa3c1397613c12b73072f31871e63805ccc573bf4146d576bc2a651177c2fde2"}, {"id": "fls_6ap26acsadp8", "number": "B.681:2", "link": "glossary.html#fls_6ap26acsadp8", "checksum": "faa528ec23f1f22d7c3d98aff96922f60da745b4648303e2129eeaf744823f5d"}], "informational": false}, {"id": "fls_hghjwqvyj5bn", "number": "B.682", "title": "type parameter type", "link": "glossary.html#type-parameter-type", "paragraphs": [{"id": "fls_euhhxwhd0rhv", "number": "B.682:1", "link": "glossary.html#fls_euhhxwhd0rhv", "checksum": "47e816df6b2d0e10441e59307eef6ae63bb4b1e453422eb9d9f1eeb8560eeb92"}], "informational": false}, {"id": "fls_qdcixh7usj9r", "number": "B.683", "title": "type path", "link": "glossary.html#type-path", "paragraphs": [{"id": "fls_ubr5czhrmtrx", "number": "B.683:1", "link": "glossary.html#fls_ubr5czhrmtrx", "checksum": "9bf978f0ebc438873d30e0f3e45f7435e96d3f59593761c0313c7370b48e86fd"}, {"id": "fls_7cbnazyszayw", "number": "B.683:2", "link": "glossary.html#fls_7cbnazyszayw", "checksum": "d2504465bb4d3df32d8b919c4d19b6a57ec9e6beae1243147f3aa895c509b960"}], "informational": false}, {"id": "fls_wa3bit0rq102", "number": "B.684", "title": "type path resolution", "link": "glossary.html#type-path-resolution", "paragraphs": [{"id": "fls_xv6jbfdiyva3", "number": "B.684:1", "link": "glossary.html#fls_xv6jbfdiyva3", "checksum": "f8d3cfe269f992d7d63c38d05fa6aade8d3389f1ec18bb04cf7912bf3c7a03eb"}], "informational": false}, {"id": "fls_u1zkh2m8p92", "number": "B.685", "title": "type representation", "link": "glossary.html#type-representation", "paragraphs": [{"id": "fls_rv80nyxwj2z8", "number": "B.685:1", "link": "glossary.html#fls_rv80nyxwj2z8", "checksum": "8355a6f37c4708ef914397a364e6a89857c563d05d75c36eb33fe65bbd6efa18"}], "informational": false}, {"id": "fls_ukua6gbye6ot", "number": "B.686", "title": "type specification", "link": "glossary.html#type-specification", "paragraphs": [{"id": "fls_tdjhjg9zhnv5", "number": "B.686:1", "link": "glossary.html#fls_tdjhjg9zhnv5", "checksum": "6c9e5a399a4171a1a046c7e23d90ed0926e546fb56c7213a8c1887b7d6df9cce"}, {"id": "fls_a3sqjp1l8po6", "number": "B.686:2", "link": "glossary.html#fls_a3sqjp1l8po6", "checksum": "3dc19b9af6f9759dae3311697bffdcb48c66303780af22ebf32a3f2a72847bb8"}], "informational": false}, {"id": "fls_qoehu9p00q56", "number": "B.687", "title": "type unification", "link": "glossary.html#type-unification", "paragraphs": [{"id": "fls_3vyodut341b5", "number": "B.687:1", "link": "glossary.html#fls_3vyodut341b5", "checksum": "d50f874f3d49514c3e972dcc5a0b04401b9d0688b9d306219b210878cbf44bee"}], "informational": false}, {"id": "fls_6zhffgxtytku", "number": "B.688", "title": "type variable", "link": "glossary.html#type-variable", "paragraphs": [{"id": "fls_j9eusnwze4rz", "number": "B.688:1", "link": "glossary.html#fls_j9eusnwze4rz", "checksum": "078fa9c5e5d905d209b8c537c7b22c2aebe1e612159403576f63645e9f16278b"}], "informational": false}, {"id": "fls_44uvj9l7q98z", "number": "B.689", "title": "u8", "link": "glossary.html#u8", "paragraphs": [{"id": "fls_umf9zfeghy6", "number": "B.689:1", "link": "glossary.html#fls_umf9zfeghy6", "checksum": "240fd707d03c5f4225010e82cf65427143275020027f099e7dd590de0f95fb17"}], "informational": false}, {"id": "fls_eh24kdjdze5j", "number": "B.690", "title": "u16", "link": "glossary.html#u16", "paragraphs": [{"id": "fls_8vi7bm2895y0", "number": "B.690:1", "link": "glossary.html#fls_8vi7bm2895y0", "checksum": "d96f9b0e832d3824333a07bf5766342a3ba6faf603caad0f38302dde5b66027d"}], "informational": false}, {"id": "fls_jybcgdujzpqy", "number": "B.691", "title": "u32", "link": "glossary.html#u32", "paragraphs": [{"id": "fls_pw90erui8vkk", "number": "B.691:1", "link": "glossary.html#fls_pw90erui8vkk", "checksum": "40acfb2f28be18517ba1ea79549d8e40910b2ea677f9c450972bfecd9172d431"}], "informational": false}, {"id": "fls_1z1e3chuejzz", "number": "B.692", "title": "u64", "link": "glossary.html#u64", "paragraphs": [{"id": "fls_pbcmhznqft9m", "number": "B.692:1", "link": "glossary.html#fls_pbcmhznqft9m", "checksum": "1823d4b590e3d0914a15950d1b7cc9de45f2d3a17cb7a6046ea3bdcb86e0d416"}], "informational": false}, {"id": "fls_5hn9e3ce1smp", "number": "B.693", "title": "u128", "link": "glossary.html#u128", "paragraphs": [{"id": "fls_8yv891ur2av5", "number": "B.693:1", "link": "glossary.html#fls_8yv891ur2av5", "checksum": "d00e9b45f6629787267fae792c957b6efe042cd13c423d504d6de0634e21fd29"}], "informational": false}, {"id": "fls_p032easjag3d", "number": "B.694", "title": "unary operator", "link": "glossary.html#unary-operator", "paragraphs": [{"id": "fls_p6mk2zrwgwem", "number": "B.694:1", "link": "glossary.html#fls_p6mk2zrwgwem", "checksum": "45a374a6fe44141b872001767db4be400065b995ab6d0c882b20cba7b56408dd"}], "informational": false}, {"id": "fls_wull4svskavz", "number": "B.695", "title": "undefined behavior", "link": "glossary.html#undefined-behavior", "paragraphs": [{"id": "fls_wpwmltumqgza", "number": "B.695:1", "link": "glossary.html#fls_wpwmltumqgza", "checksum": "66990068515e14ec7bd45601e878f6e9bc7dbbfe756c38be7ab30ee6fb789861"}], "informational": false}, {"id": "fls_x6xjwwyetnvr", "number": "B.696", "title": "under resolution", "link": "glossary.html#under-resolution", "paragraphs": [{"id": "fls_bppwxsvuwteu", "number": "B.696:1", "link": "glossary.html#fls_bppwxsvuwteu", "checksum": "46639279f33be845b817105ffc1419b926a77f9b60d6e55df1f5fcc0812ccc98"}], "informational": false}, {"id": "fls_57kis2vnt3cv", "number": "B.697", "title": "underscore expression", "link": "glossary.html#underscore-expression", "paragraphs": [{"id": "fls_ukl1sefb99gj", "number": "B.697:1", "link": "glossary.html#fls_ukl1sefb99gj", "checksum": "20a85f5dbb0b1b440060fdd9497082cee68731cdb924a53268da4daf9a6b7ad0"}, {"id": "fls_qbo267kdjcgs", "number": "B.697:2", "link": "glossary.html#fls_qbo267kdjcgs", "checksum": "5ae2fa57a1d70cb388a595ffd273105b1f4b7238f8d8e113d7dbaa9647711ff0"}], "informational": false}, {"id": "fls_fhwqe6afup2o", "number": "B.698", "title": "underscore pattern", "link": "glossary.html#underscore-pattern", "paragraphs": [{"id": "fls_f6yroesif1q4", "number": "B.698:1", "link": "glossary.html#fls_f6yroesif1q4", "checksum": "6db0bf00d375f6f71d8f32444dcae6c9c8405cc337d210083fbf4d32f461dfb4"}, {"id": "fls_bktuchv7o4dd", "number": "B.698:2", "link": "glossary.html#fls_bktuchv7o4dd", "checksum": "2c0394e8c9a3ca2f3a9f4e7fbb6308977613da1de981eb8d336ed83a4f4d474d"}], "informational": false}, {"id": "fls_hpuswmvns5f4", "number": "B.699", "title": "unhygienic", "link": "glossary.html#unhygienic", "paragraphs": [{"id": "fls_0t4lfzlknier", "number": "B.699:1", "link": "glossary.html#fls_0t4lfzlknier", "checksum": "f540fd8e6be1fd890846ea28490cda6a8d9778e214c7359e874b25ef60cffca7"}], "informational": false}, {"id": "fls_kafgmevvzl5t", "number": "B.700", "title": "Unicode", "link": "glossary.html#unicode", "paragraphs": [{"id": "fls_y7gwku7pe1f4", "number": "B.700:1", "link": "glossary.html#fls_y7gwku7pe1f4", "checksum": "66de55020a851a16e63889213d54eb58e457882fa4700c0b88bb2bc6e2200bed"}], "informational": false}, {"id": "fls_y7m6aentm6ik", "number": "B.701", "title": "unifiable", "link": "glossary.html#unifiable", "paragraphs": [{"id": "fls_01bntcl4u8gn", "number": "B.701:1", "link": "glossary.html#fls_01bntcl4u8gn", "checksum": "99c0a32aee687c8485a97d48e2954f00639b71b35e7798555144ee6fcc6071b9"}], "informational": false}, {"id": "fls_u03p4rvz1jhs", "number": "B.702", "title": "unifiable types", "link": "glossary.html#unifiable-types", "paragraphs": [{"id": "fls_jsbggfitv9xk", "number": "B.702:1", "link": "glossary.html#fls_jsbggfitv9xk", "checksum": "12c30d23e49fa947d50f9367ef6d16ba1b0fa37b23b66c57df17510bdab20c31"}], "informational": false}, {"id": "fls_9rfudii6qrzz", "number": "B.703", "title": "unified type", "link": "glossary.html#unified-type", "paragraphs": [{"id": "fls_tqrwie6z3a4j", "number": "B.703:1", "link": "glossary.html#fls_tqrwie6z3a4j", "checksum": "9ce1bb7a4916b9c625b7d55b6c7046df5cd3fbdf12bd025f221c1e3bf93b5c91"}], "informational": false}, {"id": "fls_da6ssnmmsevo", "number": "B.704", "title": "unify", "link": "glossary.html#unify", "paragraphs": [{"id": "fls_mango4gffb9e", "number": "B.704:1", "link": "glossary.html#fls_mango4gffb9e", "checksum": "a4696e694d314be23cb1c73696569d3019d536edd5cb27e6d91a22cf0b61c261"}], "informational": false}, {"id": "fls_8qljy9e1jjcb", "number": "B.705", "title": "union", "link": "glossary.html#union", "paragraphs": [{"id": "fls_x3oibk39dvem", "number": "B.705:1", "link": "glossary.html#fls_x3oibk39dvem", "checksum": "0e85919540d6abee1a86afcbf1cf7ba606ef8750d81655c0993451e8c162f575"}], "informational": false}, {"id": "fls_71xvazpwi8p0", "number": "B.706", "title": "union field", "link": "glossary.html#union-field", "paragraphs": [{"id": "fls_6t2fbnlndz8y", "number": "B.706:1", "link": "glossary.html#fls_6t2fbnlndz8y", "checksum": "42c1eeab5df8669a23a8174e85a967c08b0a4bb6193f0a46c12fc8e34e122283"}], "informational": false}, {"id": "fls_nrgyga1rztb3", "number": "B.707", "title": "union type", "link": "glossary.html#union-type", "paragraphs": [{"id": "fls_af2sscrep7mc", "number": "B.707:1", "link": "glossary.html#fls_af2sscrep7mc", "checksum": "03a081739582029e2cf73267b95ef3091e731e205714ff0c738ce5fc6fdb5e9d"}, {"id": "fls_fgvjogfz8ink", "number": "B.707:2", "link": "glossary.html#fls_fgvjogfz8ink", "checksum": "2a190782043c191952b41b989f80b5f8e19ff25a66982307171b40712bb5cc42"}], "informational": false}, {"id": "fls_2qrqmea3osvl", "number": "B.708", "title": "union value", "link": "glossary.html#union-value", "paragraphs": [{"id": "fls_9bprxky3a4ne", "number": "B.708:1", "link": "glossary.html#fls_9bprxky3a4ne", "checksum": "874e78f40001ffeb6589fe44ef1284106f77490c5142b4fdbc3ef3815743bfd7"}], "informational": false}, {"id": "fls_is9hwlc6q0g5", "number": "B.709", "title": "unique immutable reference", "link": "glossary.html#unique-immutable-reference", "paragraphs": [{"id": "fls_exrivamnxzmv", "number": "B.709:1", "link": "glossary.html#fls_exrivamnxzmv", "checksum": "46e6ddda6586685cb4481613c375417db7a49c52bbfa54677240f8c40c613c5c"}], "informational": false}, {"id": "fls_rwtgq904noal", "number": "B.710", "title": "unit enum variant", "link": "glossary.html#unit-enum-variant", "paragraphs": [{"id": "fls_y6fi5l3tghie", "number": "B.710:1", "link": "glossary.html#fls_y6fi5l3tghie", "checksum": "06d070b750bfc2856728ed128922d0d6d7f75bac48b38193857a3d9765f8072f"}], "informational": false}, {"id": "fls_f3hmx9qya258", "number": "B.711", "title": "unit struct", "link": "glossary.html#unit-struct", "paragraphs": [{"id": "fls_9t7fu8fcak6k", "number": "B.711:1", "link": "glossary.html#fls_9t7fu8fcak6k", "checksum": "2b5e32a18d029e2c9499e716ab614297f977095023bd2f89e271e3cadf89458a"}, {"id": "fls_msuiysavczpx", "number": "B.711:2", "link": "glossary.html#fls_msuiysavczpx", "checksum": "9a4a36a9c339532c2866460d9fa0aeeb69de36a8d9ab11fdcb0c088e5643c3f2"}], "informational": false}, {"id": "fls_jdvenl8f7i8r", "number": "B.712", "title": "unit struct constant", "link": "glossary.html#unit-struct-constant", "paragraphs": [{"id": "fls_llgn4jqddeag", "number": "B.712:1", "link": "glossary.html#fls_llgn4jqddeag", "checksum": "ee313d7b845dad7fedf2fb56e0e18b297450b2cd48ac8a69efeea153520a5f5a"}], "informational": false}, {"id": "fls_6j2wnombilja", "number": "B.713", "title": "unit struct type", "link": "glossary.html#unit-struct-type", "paragraphs": [{"id": "fls_oizmvacneqpe", "number": "B.713:1", "link": "glossary.html#fls_oizmvacneqpe", "checksum": "95231838f01caa661982881c4490bea6d03af7f28abcfeb08723b3c371d046aa"}], "informational": false}, {"id": "fls_cxp8fgprbvue", "number": "B.714", "title": "unit struct value", "link": "glossary.html#unit-struct-value", "paragraphs": [{"id": "fls_kr9ngijx3n4r", "number": "B.714:1", "link": "glossary.html#fls_kr9ngijx3n4r", "checksum": "89b6b9416afba18aa81bd12c9a7bae03ee6252816561b861b81b0af8ceedb90c"}], "informational": false}, {"id": "fls_wmn9mcqae88q", "number": "B.715", "title": "unit tuple", "link": "glossary.html#unit-tuple", "paragraphs": [{"id": "fls_vo1jw6rmu4yy", "number": "B.715:1", "link": "glossary.html#fls_vo1jw6rmu4yy", "checksum": "8548bab7c83948bc1472b46057179d1082fc5eda3ea01d610618ec9d4c7ef21c"}], "informational": false}, {"id": "fls_t32yfzmpid5a", "number": "B.716", "title": "unit type", "link": "glossary.html#unit-type", "paragraphs": [{"id": "fls_jtdtv3q2ls05", "number": "B.716:1", "link": "glossary.html#fls_jtdtv3q2ls05", "checksum": "d98a7945c0178ac11310bf7409389f0e5c7a3d7b807856fc6891c9e53484a28d"}], "informational": false}, {"id": "fls_vxt0ifseehv9", "number": "B.717", "title": "unit value", "link": "glossary.html#unit-value", "paragraphs": [{"id": "fls_ycdv4nvsdyx", "number": "B.717:1", "link": "glossary.html#fls_ycdv4nvsdyx", "checksum": "8fd7d221054a7b10ef91afa5a32abc45c848a365fcc6a347cb40a90d6eb629fa"}], "informational": false}, {"id": "fls_u78ng1tleh0w", "number": "B.718", "title": "unnamed constant", "link": "glossary.html#unnamed-constant", "paragraphs": [{"id": "fls_ufj01cxxsv1w", "number": "B.718:1", "link": "glossary.html#fls_ufj01cxxsv1w", "checksum": "cba5a3f3c0fdc57f0cac81e99b8a88a9d74174bbcc415aeac31ea80667080807"}], "informational": false}, {"id": "fls_r8567aozbyxl", "number": "B.719", "title": "unnamed lifetime", "link": "glossary.html#unnamed-lifetime", "paragraphs": [{"id": "fls_4iy6zpq66mit", "number": "B.719:1", "link": "glossary.html#fls_4iy6zpq66mit", "checksum": "7ed10cf906202e473aee8f7062336f3ae2a1e5e983ac5fa34322455b6764c713"}], "informational": false}, {"id": "fls_cdvmvrvhubmr", "number": "B.720", "title": "unqualified path expression", "link": "glossary.html#unqualified-path-expression", "paragraphs": [{"id": "fls_9xkgp8uvsoar", "number": "B.720:1", "link": "glossary.html#fls_9xkgp8uvsoar", "checksum": "2c7f34a4421b36a3de115c19d0f2986496bc0ccac6f6650e3eb199d9f68e7db3"}], "informational": false}, {"id": "fls_6349nvapfj9d", "number": "B.721", "title": "unsafe block", "link": "glossary.html#unsafe-block", "paragraphs": [{"id": "fls_8tkolhmd6xfp", "number": "B.721:1", "link": "glossary.html#fls_8tkolhmd6xfp", "checksum": "746af7557dda4662a7df23f5d69e723fbe0f3f7759c981bca1a6e9ede6d91052"}], "informational": false}, {"id": "fls_u8sdp2fxz9pn", "number": "B.722", "title": "unsafe block expression", "link": "glossary.html#unsafe-block-expression", "paragraphs": [{"id": "fls_et2h89jyivhs", "number": "B.722:1", "link": "glossary.html#fls_et2h89jyivhs", "checksum": "12767e911d6788d44d6aab73c9c1defd79788a9aff3055b771e0c7826f990e53"}, {"id": "fls_c94rudunhp5b", "number": "B.722:2", "link": "glossary.html#fls_c94rudunhp5b", "checksum": "14d57b3f5e9cf2a3744d227f964a8bbba246986b93e2f521cca9571201988d80"}], "informational": false}, {"id": "fls_5m85wlr2qw78", "number": "B.723", "title": "unsafe context", "link": "glossary.html#unsafe-context", "paragraphs": [{"id": "fls_qn1s845ejbu0", "number": "B.723:1", "link": "glossary.html#fls_qn1s845ejbu0", "checksum": "74b2e572b55ba25145f4e1157dcf2f47ae453ee8fc5a32e33d091efb9fb7c3ff"}], "informational": false}, {"id": "fls_ua64pv82skaw", "number": "B.724", "title": "unsafe function", "link": "glossary.html#unsafe-function", "paragraphs": [{"id": "fls_2ht13dgtxi1o", "number": "B.724:1", "link": "glossary.html#fls_2ht13dgtxi1o", "checksum": "09a2ab18e10c912b792daab07b9e448646dc62864c26467d0eb49953b686c343"}], "informational": false}, {"id": "fls_y1iruf62p856", "number": "B.725", "title": "unsafe function item type", "link": "glossary.html#unsafe-function-item-type", "paragraphs": [{"id": "fls_r91tuwi55nu7", "number": "B.725:1", "link": "glossary.html#fls_r91tuwi55nu7", "checksum": "2a6f7b357bcf9e02e01322e292bf9a49fff98398285fdbbeaaf079ddc5082bd2"}], "informational": false}, {"id": "fls_bokqlokua059", "number": "B.726", "title": "unsafe function pointer type", "link": "glossary.html#unsafe-function-pointer-type", "paragraphs": [{"id": "fls_tiluwa2v4l6d", "number": "B.726:1", "link": "glossary.html#fls_tiluwa2v4l6d", "checksum": "8211b7ec4e7b1ddab1f82d716901904b54c2ad8c374f8c49050fa326358bc850"}], "informational": false}, {"id": "fls_e2wyfbem6vwn", "number": "B.727", "title": "unsafe operation", "link": "glossary.html#unsafe-operation", "paragraphs": [{"id": "fls_34h60ubicgsj", "number": "B.727:1", "link": "glossary.html#fls_34h60ubicgsj", "checksum": "6d04e874de15ec8533916fa1837ec3f748e0041416df7c5dcab483fafffb7050"}], "informational": false}, {"id": "fls_4f6mppoenj3b", "number": "B.728", "title": "unsafe Rust", "link": "glossary.html#unsafe-rust", "paragraphs": [{"id": "fls_30asi010yf1a", "number": "B.728:1", "link": "glossary.html#fls_30asi010yf1a", "checksum": "d4e120832d43e5442500d1f582915ab5c4981ee54c81700fd0fec82eaa1b174d"}], "informational": false}, {"id": "fls_38ae1t48h9cb", "number": "B.729", "title": "unsafe trait", "link": "glossary.html#unsafe-trait", "paragraphs": [{"id": "fls_w6zlsf2ye457", "number": "B.729:1", "link": "glossary.html#fls_w6zlsf2ye457", "checksum": "fcb7e9e51c1ad23c53607bd9fed543f033683ccec2f703b9caa76ccc635daaeb"}], "informational": false}, {"id": "fls_h62dfjfyqcbn", "number": "B.730", "title": "unsafe trait implementation", "link": "glossary.html#unsafe-trait-implementation", "paragraphs": [{"id": "fls_kqwcv076dzie", "number": "B.730:1", "link": "glossary.html#fls_kqwcv076dzie", "checksum": "fa62f79410b8f3f03ff064f7b2aeae07edd46afa17fb3e05d645ddbeb6e51469"}], "informational": false}, {"id": "fls_pst7yov6vnr9", "number": "B.731", "title": "unsafety", "link": "glossary.html#unsafety", "paragraphs": [{"id": "fls_742ycx5181n", "number": "B.731:1", "link": "glossary.html#fls_742ycx5181n", "checksum": "3b8984c321c17db411893b2f678203985119ef59cfad6466111017b363ca5658"}], "informational": false}, {"id": "fls_4jc74lz245z3", "number": "B.732", "title": "unsigned integer type", "link": "glossary.html#unsigned-integer-type", "paragraphs": [{"id": "fls_dxnf79qemlg6", "number": "B.732:1", "link": "glossary.html#fls_dxnf79qemlg6", "checksum": "a98b44a8b0c6b0552246906fa82d599d1c2d98ca33f9927c058579d6577dda5e"}], "informational": false}, {"id": "fls_pjup0piqlxe3", "number": "B.733", "title": "unsized coercion", "link": "glossary.html#unsized-coercion", "paragraphs": [{"id": "fls_olt5qhyvhmtq", "number": "B.733:1", "link": "glossary.html#fls_olt5qhyvhmtq", "checksum": "348c1728b3e98cb6790a7d9f4b3b632afe4b9554200d2df15d1c6aaed7c52f68"}], "informational": false}, {"id": "fls_kivgo7i3uuhh", "number": "B.734", "title": "unsized type", "link": "glossary.html#unsized-type", "paragraphs": [{"id": "fls_m9npzbh8wf4z", "number": "B.734:1", "link": "glossary.html#fls_m9npzbh8wf4z", "checksum": "62eca509966b187d4122d97645ccfbd24db641add46b27e8be7c2ae576f96503"}], "informational": false}, {"id": "fls_4ph9cact2scc", "number": "B.735", "title": "unsuffixed float", "link": "glossary.html#unsuffixed-float", "paragraphs": [{"id": "fls_7wp6y0xeqqve", "number": "B.735:1", "link": "glossary.html#fls_7wp6y0xeqqve", "checksum": "043e62442cf2db7aad7811221b566012c7f90db6b6f8872a7ae4d4a5819a4205"}], "informational": false}, {"id": "fls_d18nctsj8wu5", "number": "B.736", "title": "unsuffixed integer", "link": "glossary.html#unsuffixed-integer", "paragraphs": [{"id": "fls_t419z3zder0q", "number": "B.736:1", "link": "glossary.html#fls_t419z3zder0q", "checksum": "8704968fe1a6ddc742ec36e2e481c45216a7909a8aeb6bf44699babe6e975375"}], "informational": false}, {"id": "fls_fow1bnvduafi", "number": "B.737", "title": "use import", "link": "glossary.html#use-import", "paragraphs": [{"id": "fls_uccv9zthh5vt", "number": "B.737:1", "link": "glossary.html#fls_uccv9zthh5vt", "checksum": "ed8550645e0953e23063dcc53dd744bb1aedb661c1d8fce0f15ca60a006767c9"}, {"id": "fls_ib5wf62j4uhr", "number": "B.737:2", "link": "glossary.html#fls_ib5wf62j4uhr", "checksum": "dbd8cf2b875110fb8f629b15bbd1d7c296379c578316f6553ab8d2350d8f0c3c"}], "informational": false}, {"id": "fls_gvjm5mms9ahz", "number": "B.738", "title": "usize", "link": "glossary.html#usize", "paragraphs": [{"id": "fls_r22k1l8799k6", "number": "B.738:1", "link": "glossary.html#fls_r22k1l8799k6", "checksum": "184adfe8b40e498c10b13994671a6aec10a3d60c8dd0d7d49611462cbe965adc"}], "informational": false}, {"id": "fls_a5k8aobsi3bg", "number": "B.739", "title": "validity invariant", "link": "glossary.html#validity-invariant", "paragraphs": [{"id": "fls_3ebc3l839ajf", "number": "B.739:1", "link": "glossary.html#fls_3ebc3l839ajf", "checksum": "1347632e6ce2c4ee49038f50ae13199cf27d4690167ba97f02bedbedd2a05293"}], "informational": false}, {"id": "fls_tg866bc926ms", "number": "B.740", "title": "value", "link": "glossary.html#value", "paragraphs": [{"id": "fls_h8jn338b51yu", "number": "B.740:1", "link": "glossary.html#fls_h8jn338b51yu", "checksum": "63b3768dfc5663ef6cc4bebbff9dab2e3f9a9517deeeb7092f2aedd12f9ae18a"}], "informational": false}, {"id": "fls_h03noz6jzpyl", "number": "B.741", "title": "value expression", "link": "glossary.html#value-expression", "paragraphs": [{"id": "fls_mn6tcuz5j3p", "number": "B.741:1", "link": "glossary.html#fls_mn6tcuz5j3p", "checksum": "97ce03f5d133c156c2a873b2c3bfbe141c79c5f3439eaf79749688438d96b196"}], "informational": false}, {"id": "fls_7xiaxxswy4gp", "number": "B.742", "title": "value expression context", "link": "glossary.html#value-expression-context", "paragraphs": [{"id": "fls_nggzebmolrbd", "number": "B.742:1", "link": "glossary.html#fls_nggzebmolrbd", "checksum": "cb2b2895ac8157efff1e4477cf2a7482d64c99c9b251c0e789dc26e88cbffe0f"}], "informational": false}, {"id": "fls_a5xof9jlpc2e", "number": "B.743", "title": "value operand", "link": "glossary.html#value-operand", "paragraphs": [{"id": "fls_x4seemjknk2z", "number": "B.743:1", "link": "glossary.html#fls_x4seemjknk2z", "checksum": "d6923a479fd3cecafe3bab1e1c8346b039c95d034a6ea9311970ad24f4e85c11"}, {"id": "fls_cl4fakfkpscp", "number": "B.743:2", "link": "glossary.html#fls_cl4fakfkpscp", "checksum": "7842d3f876bb2f2154b1b74aecde5c363cc4a8607ac77fc1a46a8fc84663b78d"}], "informational": false}, {"id": "fls_donq6w1906lw", "number": "B.744", "title": "variable", "link": "glossary.html#variable", "paragraphs": [{"id": "fls_9ab12k4vwsio", "number": "B.744:1", "link": "glossary.html#fls_9ab12k4vwsio", "checksum": "36478cc9ff5272fabf7a32e121dd6075c62366448ef8741b677f766d56bd9c56"}], "informational": false}, {"id": "fls_rie80xof8vla", "number": "B.745", "title": "variadic part", "link": "glossary.html#variadic-part", "paragraphs": [{"id": "fls_epntyloqj1i7", "number": "B.745:1", "link": "glossary.html#fls_epntyloqj1i7", "checksum": "220d715c4f8432b1b2ed9d84586bd572af548dc7ac7a15e689a46fee55334d26"}, {"id": "fls_z9d86gbfbkb5", "number": "B.745:2", "link": "glossary.html#fls_z9d86gbfbkb5", "checksum": "b9880cbe15db60d110b22def087765de48eee422716f5bdd7ef9a4efa72c5164"}], "informational": false}, {"id": "fls_q0xplb4tbzpq", "number": "B.746", "title": "variance", "link": "glossary.html#variance", "paragraphs": [{"id": "fls_il0krrsf09f8", "number": "B.746:1", "link": "glossary.html#fls_il0krrsf09f8", "checksum": "6ffe1ec9864a7fdf10179c4f786551b508513c83be6c1cc6d42dc3bd3fa6491b"}], "informational": false}, {"id": "fls_svx87y4p8fdx", "number": "B.747", "title": "visibility", "link": "glossary.html#visibility", "paragraphs": [{"id": "fls_sadmsqhptlho", "number": "B.747:1", "link": "glossary.html#fls_sadmsqhptlho", "checksum": "df2d054a45f11386315fe7ad021e1e9f588e98e0956ee0cde1d2a0b953ae5f64"}], "informational": false}, {"id": "fls_xqjk8avt7t51", "number": "B.748", "title": "visibility modifier", "link": "glossary.html#visibility-modifier", "paragraphs": [{"id": "fls_ze7befho4jhs", "number": "B.748:1", "link": "glossary.html#fls_ze7befho4jhs", "checksum": "8822842cfdb9899f545a6863f17b3fd9f4ed8742e1a45e24e82893a3131ecfe4"}], "informational": false}, {"id": "fls_iplp3gvfbcpw", "number": "B.749", "title": "weak keyword", "link": "glossary.html#weak-keyword", "paragraphs": [{"id": "fls_4hiznltf5wlu", "number": "B.749:1", "link": "glossary.html#fls_4hiznltf5wlu", "checksum": "12946e0375bdd1300d682bbc3ffe536ed2c1f1d2e0ef90d5f195934aee62deff"}, {"id": "fls_psah573fsrig", "number": "B.749:2", "link": "glossary.html#fls_psah573fsrig", "checksum": "0ccad5782e285aaebbab4f525da60719e6fc70b16ce843c8ae0c7cfba3628186"}], "informational": false}, {"id": "fls_ew2gsg72rjxk", "number": "B.750", "title": "where clause", "link": "glossary.html#where-clause", "paragraphs": [{"id": "fls_prljyrhontzn", "number": "B.750:1", "link": "glossary.html#fls_prljyrhontzn", "checksum": "6d38cff29cf6450cf1cffc0e99547671e44776d60ab8fb23632eb0c86d9b7c16"}, {"id": "fls_k32hnug33eo9", "number": "B.750:2", "link": "glossary.html#fls_k32hnug33eo9", "checksum": "da5c4a74abc8155179c4eca22cf1c4cf733370173eaed26a6d9d627196709d7c"}], "informational": false}, {"id": "fls_myneycm4vi0r", "number": "B.751", "title": "where clause predicate", "link": "glossary.html#where-clause-predicate", "paragraphs": [{"id": "fls_0lacqvmzpdqf", "number": "B.751:1", "link": "glossary.html#fls_0lacqvmzpdqf", "checksum": "62a3945d893b6e8f16b7248680f277547ec165cba3f7cdd1f81774d4362c4973"}, {"id": "fls_jk7v1soke4gm", "number": "B.751:2", "link": "glossary.html#fls_jk7v1soke4gm", "checksum": "f5d3b6fbddf11fbcb02e78d7654c5526825238dcea2e4a32a27c1123c31f0c7a"}], "informational": false}, {"id": "fls_8hcsablipi17", "number": "B.752", "title": "while let loop", "link": "glossary.html#while-let-loop", "paragraphs": [{"id": "fls_ovutw52qtx71", "number": "B.752:1", "link": "glossary.html#fls_ovutw52qtx71", "checksum": "c8664735abb74e6a486190548311df13dcb3a26d2306c0443cb988f0d5b96e91"}], "informational": false}, {"id": "fls_gme4odk59x6d", "number": "B.753", "title": "while let loop expression", "link": "glossary.html#while-let-loop-expression", "paragraphs": [{"id": "fls_g35gn7n88acp", "number": "B.753:1", "link": "glossary.html#fls_g35gn7n88acp", "checksum": "22c214161888086966d2d6e7347c0ce17301b6965a178a232eed8887e1413644"}, {"id": "fls_q3jcb4nodqba", "number": "B.753:2", "link": "glossary.html#fls_q3jcb4nodqba", "checksum": "9e4436f4af053abade784bdc5407280c2db6d9d43149e859f59026c0ddc988b1"}], "informational": false}, {"id": "fls_od59yim9kasi", "number": "B.754", "title": "while loop", "link": "glossary.html#while-loop", "paragraphs": [{"id": "fls_ug9cxoml9ged", "number": "B.754:1", "link": "glossary.html#fls_ug9cxoml9ged", "checksum": "a5cc9bf83bb2bf35b55e2e2dd6ef1bc056b0e37555c867b21198befa67e81739"}], "informational": false}, {"id": "fls_1qxi3h3qmgso", "number": "B.755", "title": "while loop expression", "link": "glossary.html#while-loop-expression", "paragraphs": [{"id": "fls_fq0zyup4djyh", "number": "B.755:1", "link": "glossary.html#fls_fq0zyup4djyh", "checksum": "756b0aea4f3c3af0d5e8d8e7d31fdc7be0f35de71a8b4003662807e1b18a3293"}, {"id": "fls_7htwpbmyq83u", "number": "B.755:2", "link": "glossary.html#fls_7htwpbmyq83u", "checksum": "9f22f6f0955567b0b63aeee2ca3f78379d5a16acb633f9ea12a2fe537e5c19d3"}], "informational": false}, {"id": "fls_cxm8nw6qiryr", "number": "B.756", "title": "whitespace string", "link": "glossary.html#whitespace-string", "paragraphs": [{"id": "fls_nljkmadklwdp", "number": "B.756:1", "link": "glossary.html#fls_nljkmadklwdp", "checksum": "840efa27d2a573c352b1f414faa65fb09e61835af65aaac9217b2df73999c7f7"}], "informational": false}, {"id": "fls_a5lrxgucl3be", "number": "B.757", "title": "zero-sized type", "link": "glossary.html#zero-sized-type", "paragraphs": [{"id": "fls_rmd6pearrhr8", "number": "B.757:1", "link": "glossary.html#fls_rmd6pearrhr8", "checksum": "07a868b57298e2097a28d0a21ead2ad8e657cd8516eaa4d2a7ae0153d379a8ac"}], "informational": false}, {"id": "fls_pix563lfbpm", "number": "B.758", "title": "zero-variant enum type", "link": "glossary.html#zero-variant-enum-type", "paragraphs": [{"id": "fls_84gqz3vwi5mj", "number": "B.758:1", "link": "glossary.html#fls_84gqz3vwi5mj", "checksum": "f635809dd0ab3cbd675012e88b6b6cb1578b29f7be6c55698932adf2f51569d6"}], "informational": false}], "informational": true}, {"title": "Generics", "link": "generics.html", "sections": [{"id": "fls_y2k5paj8m8ug", "number": "12", "title": "Generics", "link": "generics.html", "paragraphs": [], "informational": false}, {"id": "fls_vhpwge5123cm", "number": "12.1", "title": "Generic Parameters", "link": "generics.html#generic-parameters", "paragraphs": [{"id": "fls_sye3d17l9bf5", "number": "12.1:1", "link": "generics.html#fls_sye3d17l9bf5", "checksum": "94863fbf1d8fdb0023847e7bb69f0c04a488fd3b0541bc6a43dfa580ab0d16ae"}, {"id": "fls_dalqke3rznrb", "number": "12.1:2", "link": "generics.html#fls_dalqke3rznrb", "checksum": "a9b102aea4ead34bd9a1dfb0ee5d0b12b91ec2b099a59d0a4320521f772835eb"}, {"id": "fls_pi6eukz7kc99", "number": "12.1:3", "link": "generics.html#fls_pi6eukz7kc99", "checksum": "090ffb52196f4e68695b1c484beb6bd8507d06d2f679ee8177decd8b6b34ca79"}, {"id": "fls_ixmgqupxvf73", "number": "12.1:4", "link": "generics.html#fls_ixmgqupxvf73", "checksum": "59bebc9aaade7a8e216d5acd0230c4a561df1b66eb30289c51eac737ae0037fa"}, {"id": "fls_z311nxou9yi3", "number": "12.1:5", "link": "generics.html#fls_z311nxou9yi3", "checksum": "ebd86684687d8a3b3d796280d1bd02eb718235e578e2e90f8b1ccf6fb6b90a97"}, {"id": "fls_wmcp0n36jlbr", "number": "12.1:6", "link": "generics.html#fls_wmcp0n36jlbr", "checksum": "09faa28093efe5bea8695465a1b6ccf9dd591a83377126e6f7ca32bffc783f0a"}, {"id": "fls_h42kg56vsefx", "number": "12.1:7", "link": "generics.html#fls_h42kg56vsefx", "checksum": "7dd9f9ccb26b4083d870e727d44fd7cb36573bf661c6ab932ad22dc96e4b6afb"}, {"id": "fls_372h3oevejih", "number": "12.1:8", "link": "generics.html#fls_372h3oevejih", "checksum": "b76e6307e1cd2582b525354a84e5bc604d7d52679124f2807619890557dd350d"}, {"id": "fls_u8mqct93yimd", "number": "12.1:9", "link": "generics.html#fls_u8mqct93yimd", "checksum": "d022534e05abd6632faed1f9a99e08afd782e729b0e5c46a046e8fec4761e6f9"}, {"id": "fls_vpcqgec83ybt", "number": "12.1:10", "link": "generics.html#fls_vpcqgec83ybt", "checksum": "4159da8372c73ecd16af81e45a142b09a10de3d7f3881a9c6c554040938dbb10"}, {"id": "fls_3sjmblc0b7qo", "number": "12.1:11", "link": "generics.html#fls_3sjmblc0b7qo", "checksum": "043b0fbba2086316df6f3152903a683a0584cc386e2b3f477ef71e328a293e4f"}, {"id": "fls_p4yb8eaxlru0", "number": "12.1:12", "link": "generics.html#fls_p4yb8eaxlru0", "checksum": "54f245efbc506709a192db34e53895d362594afb8f4ee96986ce6afca49b04d9"}, {"id": "fls_4a2qshaf5se7", "number": "12.1:13", "link": "generics.html#fls_4a2qshaf5se7", "checksum": "ca1335fd71570adbb1aed7643857b961a8bb6086fb3b9f64925800c41ef14658"}, {"id": "fls_s0nrjwqg2wox", "number": "12.1:14", "link": "generics.html#fls_s0nrjwqg2wox", "checksum": "05c11421678358c4279fc92f0982a56f16c452fb5b5d3c38d3ec77f99e14ca97"}, {"id": "fls_2grtygcj8o3", "number": "12.1:15", "link": "generics.html#fls_2grtygcj8o3", "checksum": "835447fa3ddfa7c5fd06897805b57986740381f9ecf8daf09fa6e6d1acb24377"}, {"id": "fls_95eooah0vcqx", "number": "12.1:16", "link": "generics.html#fls_95eooah0vcqx", "checksum": "65063a7df97c072c5bd36c4029e9de91a88b81719d83ee267e7c338688871249"}, {"id": "fls_ahcqtkh0m5sr", "number": "12.1:17", "link": "generics.html#fls_ahcqtkh0m5sr", "checksum": "b181eee5f3b1e0741189576664df8a3753448934eca0622dc2324ff23f54a85a"}, {"id": "fls_3qzrbp9j26w3", "number": "12.1:18", "link": "generics.html#fls_3qzrbp9j26w3", "checksum": "a39d6db0400cfba65a04cbc96b9586a37ef6f64de62ec283e56c4de6319823e9"}, {"id": "fls_x4s7p2v981r6", "number": "12.1:19", "link": "generics.html#fls_x4s7p2v981r6", "checksum": "03a4ce65a6524d90af458d25675d8237300b3ed290fccc708255707b27a42460"}, {"id": "fls_jzfk9fspzqja", "number": "12.1:20", "link": "generics.html#fls_jzfk9fspzqja", "checksum": "9d983e5bcc9005a2002c87f988931d048bb50221b71831ddf7af2d550d53e90a"}, {"id": "fls_6j616ydf2mnh", "number": "12.1:21", "link": "generics.html#fls_6j616ydf2mnh", "checksum": "b7abdeea8907fa3d7ecf4b6fab76bcf830d7e3beb440f7d181e32c35eaeed83f"}, {"id": "fls_hyi2jnp38v1n", "number": "12.1:22", "link": "generics.html#fls_hyi2jnp38v1n", "checksum": "3aa8b3cd82401a8ea45d3df4769bb90080dd5fec794696e299c905bf6ef1f6e9"}, {"id": "fls_sseo6u6pbcki", "number": "12.1:23", "link": "generics.html#fls_sseo6u6pbcki", "checksum": "81cb87c32bbae85869876f23d65d0f1dfe05101ef4b92401e5bf21fcb3be05c2"}, {"id": "fls_62b59qvom3nm", "number": "12.1:24", "link": "generics.html#fls_62b59qvom3nm", "checksum": "b515a8d6e6d86a8e289e2b7aa5bc1159cfbf1cab572c45f0cdeb32a01bbe3f39"}, {"id": "fls_oq76uff9gp0k", "number": "12.1:25", "link": "generics.html#fls_oq76uff9gp0k", "checksum": "dd989d910fcd0e9ef31de45877c6e06dccab6c17811741cfdcd8e3232a058440"}, {"id": "fls_ua3w16qo9o4", "number": "12.1:26", "link": "generics.html#fls_ua3w16qo9o4", "checksum": "7e2a62316333f93e684c2cbdd31ae2f2247a93882350929bb5794b9012585c4a"}, {"id": "fls_w9ol06mldwb", "number": "12.1:27", "link": "generics.html#fls_w9ol06mldwb", "checksum": "1e8333574e56710e3d837173743f166a40ae1198a9bbe2db35bb65a9387efbd7"}, {"id": "fls_g2pfrqhmeys8", "number": "12.1:28", "link": "generics.html#fls_g2pfrqhmeys8", "checksum": "b74efa68baa45a61d2fc231677ac14b4c52bf157f20599fd69f77c0e64bb0c52"}, {"id": "fls_56jq9k9l31rt", "number": "12.1:29", "link": "generics.html#fls_56jq9k9l31rt", "checksum": "3b21edfd98bd965b39de9b1be51cfe7cdc970789869e291378de930efadaf432"}, {"id": "fls_sh669lnc5o1b", "number": "12.1:30", "link": "generics.html#fls_sh669lnc5o1b", "checksum": "a279226de7f4deabad4cad0f5ccc01b808665fe0b792c1440cd28ea0dee6a1af"}, {"id": "fls_h6kx8dxh5u96", "number": "12.1:31", "link": "generics.html#fls_h6kx8dxh5u96", "checksum": "c3b9ce106b0b3bf0edb649f3ad7591f172990a957c1509351873ac6bc8e2ff33"}, {"id": "fls_5r7ontjlmgwj", "number": "12.1:32", "link": "generics.html#fls_5r7ontjlmgwj", "checksum": "b3ee8fb45410449e2ca276e3d66abc693b38dadb5e9e8ef1ceb39a221e3723a7"}, {"id": "fls_prbwj1pmng6k", "number": "12.1:33", "link": "generics.html#fls_prbwj1pmng6k", "checksum": "3d225966adb08cb1aa29f3b24fe23f01e25214e9792f5d98b64e003b5304cda7"}, {"id": "fls_byqjs5fvy2bj", "number": "12.1:34", "link": "generics.html#fls_byqjs5fvy2bj", "checksum": "6a6f41cc694f562b1d6e82c8572ce7bf5293074d57b9ac4fa2295fca68a9c3b4"}, {"id": "fls_hidfwkwr2r73", "number": "12.1:35", "link": "generics.html#fls_hidfwkwr2r73", "checksum": "34dda9625c7e9e6e463b2eb14643e6643f51c44406e3f2549783a1297f60000e"}, {"id": "fls_yayedrnaxhte", "number": "12.1:36", "link": "generics.html#fls_yayedrnaxhte", "checksum": "560df02838ca1936d23bf28b88e4da6c469ed343b26bfb566756052758e64639"}, {"id": "fls_axmvssu7an8p", "number": "12.1:37", "link": "generics.html#fls_axmvssu7an8p", "checksum": "d94acf91ab922f3d4fab3151db5a559875aa4416a0b81a8c40460f9a8bb91bce"}, {"id": "fls_iancoxisuxxb", "number": "12.1:38", "link": "generics.html#fls_iancoxisuxxb", "checksum": "100a96f35cd7e62ed2a2f4d2e022d3849f148e226cee8eb17737c46aed7f6e4d"}, {"id": "fls_wuwjegzjcuat", "number": "12.1:39", "link": "generics.html#fls_wuwjegzjcuat", "checksum": "3aeb3e42c07a42c3929a4700140366be5e8244d1bdc00cdc7204c4793592efd7"}, {"id": "fls_bn5nuuvq9awy", "number": "12.1:40", "link": "generics.html#fls_bn5nuuvq9awy", "checksum": "cec64b26b4879d9cbe5f17b1fa6120340dc8781525f1a5bbfefca47d239ab328"}, {"id": "fls_ouom2tqknsp3", "number": "12.1:41", "link": "generics.html#fls_ouom2tqknsp3", "checksum": "23631de104768741b7048e7d01c59e1fffcba54b9dcef1ed7c615bb826fd202d"}, {"id": "fls_m0bzw4jap6sg", "number": "12.1:42", "link": "generics.html#fls_m0bzw4jap6sg", "checksum": "a1c9458d5c17521a96ffec4d47ed6083ff2d3bff11ccd1eb479f8cf0b126b77e"}, {"id": "fls_vo7mgm34hwg2", "number": "12.1:43", "link": "generics.html#fls_vo7mgm34hwg2", "checksum": "42dcf2a32ea53ad56eb6ea1adf717442e8315af52daa703ab41a67eda8007371"}], "informational": false}, {"id": "fls_7nv8ualeaqe3", "number": "12.2", "title": "Where Clauses", "link": "generics.html#where-clauses", "paragraphs": [{"id": "fls_3nqb7p5ifvio", "number": "12.2:1", "link": "generics.html#fls_3nqb7p5ifvio", "checksum": "64e83b1f5bdc0de2f6c5804ed902cd3cc1013057056ba936ee008c9f9fc6008f"}, {"id": "fls_fhy4rsmmbvyy", "number": "12.2:2", "link": "generics.html#fls_fhy4rsmmbvyy", "checksum": "a0586577beb2f969d6d4e05e56e5fd16a92fddb05d3708fbc5f6e39bb85718a5"}, {"id": "fls_v4pkfqtcsav6", "number": "12.2:3", "link": "generics.html#fls_v4pkfqtcsav6", "checksum": "da1b8b29d9f0346fe7bd1d1c75f892569c746af9b54e1f7900d588a7e22887ac"}, {"id": "fls_cslgpmvjujhd", "number": "12.2:4", "link": "generics.html#fls_cslgpmvjujhd", "checksum": "1e4a1f1e63e1773a0421a5334c9e37808a94b3c0b255ce7c0595282179fb59fe"}, {"id": "fls_ytk74dyxuy6d", "number": "12.2:5", "link": "generics.html#fls_ytk74dyxuy6d", "checksum": "d294be65a9a865ac01935be20857d638bd76b15bd0cadf121963475263530947"}, {"id": "fls_1xgw1dq60quz", "number": "12.2:6", "link": "generics.html#fls_1xgw1dq60quz", "checksum": "533a4ad543c2a168ed772a1a1f3a17b837f984e04ed0006caca9e6af274aa8e0"}, {"id": "fls_47s8i7pzb9gg", "number": "12.2:7", "link": "generics.html#fls_47s8i7pzb9gg", "checksum": "3576fed5bb35f8d7f0dcbe136a5bc4184204ac3439c7f928a393292885b06fad"}], "informational": false}, {"id": "fls_utuu8mdbuyxm", "number": "12.3", "title": "Generic Arguments", "link": "generics.html#generic-arguments", "paragraphs": [{"id": "fls_3x6qd8vt5uus", "number": "12.3:1", "link": "generics.html#fls_3x6qd8vt5uus", "checksum": "6d430096779c94fd8eb3ddbedf7572aa28ac912896c0110048a311cdd9df5966"}, {"id": "fls_ky39fb2vcom6", "number": "12.3:2", "link": "generics.html#fls_ky39fb2vcom6", "checksum": "b62123e2e8e883a4568f6e6c0ef85ad81748d23d32d49acc747eb1cfa2e22455"}, {"id": "fls_9n1ejjili06h", "number": "12.3:3", "link": "generics.html#fls_9n1ejjili06h", "checksum": "f7ffa174a2e33bf090afe2aaf7920f3cbd827290f14b80321f47c88133659631"}, {"id": "fls_9pda3ja0ihks", "number": "12.3:4", "link": "generics.html#fls_9pda3ja0ihks", "checksum": "6233c170bc63c0936a92c1690c890775856ddd72117eac1e21fe2d129e41e462"}, {"id": "fls_i3z9ueoe99zd", "number": "12.3:5", "link": "generics.html#fls_i3z9ueoe99zd", "checksum": "ab86084835389c5804317b18cc5a85c36e5c031018783e0555e6ba607799deea"}, {"id": "fls_al4dhmqodvwc", "number": "12.3:6", "link": "generics.html#fls_al4dhmqodvwc", "checksum": "63142cba165b2178690155f575392011f1134c14184e81e36820ddb73cae4f92"}, {"id": "fls_10k9gdxlpuls", "number": "12.3:7", "link": "generics.html#fls_10k9gdxlpuls", "checksum": "a8831e92d9d0bfcb4b315dbcc507de27e5867c90165c66bf816329d11fcff100"}, {"id": "fls_d4vdvpihoeb1", "number": "12.3:8", "link": "generics.html#fls_d4vdvpihoeb1", "checksum": "971129d56022b37c66ec71073289a4dedfa09aa435ddc1c7cae97b1a9d1eaf7a"}, {"id": "fls_ukarc98ceesz", "number": "12.3:9", "link": "generics.html#fls_ukarc98ceesz", "checksum": "c8fdfaaca0e4c05cb61bbb042227c630e92a1a4a039e0f4d8a3c100941ff6a07"}, {"id": "fls_l88o2snx9qbt", "number": "12.3:10", "link": "generics.html#fls_l88o2snx9qbt", "checksum": "a874a0d306f839d2ffcec82a884d903ffe0ebbadaca947ebaaca90dbad22f79d"}, {"id": "fls_thpj9io9tyuy", "number": "12.3:11", "link": "generics.html#fls_thpj9io9tyuy", "checksum": "4b7b540224edea54abc7c76442e8f3bcd837894f2694c4da61a31aa02132aff1"}], "informational": false}, {"id": "fls_i7g2n7hfg3ch", "number": "12.4", "title": "Generic Conformance", "link": "generics.html#generic-conformance", "paragraphs": [{"id": "fls_cbwyxbjeyeb2", "number": "12.4:1", "link": "generics.html#fls_cbwyxbjeyeb2", "checksum": "d1612a32235e7d6f04d58b8aa1fd91f9a6a088559668f8ef79b51f4827cf4564"}, {"id": "fls_ltch5eivxgaa", "number": "12.4:2", "link": "generics.html#fls_ltch5eivxgaa", "checksum": "debb7f2966e0cb74a4f4216168dd052c70fd3d6a8c27fb2f3aa0c7fe47f76a98"}, {"id": "fls_gb3mpt5rxjoa", "number": "12.4:3", "link": "generics.html#fls_gb3mpt5rxjoa", "checksum": "639ff9a5038d7adda9b3bba839e6ae21c85e388acb2f212f48ea6695f318c6f2"}, {"id": "fls_kdeltu9dsd0d", "number": "12.4:4", "link": "generics.html#fls_kdeltu9dsd0d", "checksum": "af4df9b3ddac7de4a5237a0d32e24c6c2da88af6502df4979d83552fec77309d"}, {"id": "fls_ws1h57fk1mkh", "number": "12.4:5", "link": "generics.html#fls_ws1h57fk1mkh", "checksum": "d89280e4cf06cc3484d31ca3e0ae0d2e71ffb5073be76a1508c6a15273bb4b3d"}, {"id": "fls_w0ozotuwtr9", "number": "12.4:6", "link": "generics.html#fls_w0ozotuwtr9", "checksum": "91bce3d2e51c484c884932370ea99b161b0bf86288418a7b19cdaf1ab3ce5812"}, {"id": "fls_91bylteu35bi", "number": "12.4:7", "link": "generics.html#fls_91bylteu35bi", "checksum": "5e02e16f6c0da4bb4819ffb8a5e26e721a99432cf64b2e762ed419f7ad104c14"}, {"id": "fls_j6xtrxc6aik", "number": "12.4:8", "link": "generics.html#fls_j6xtrxc6aik", "checksum": "a93335cddb2ff0f239fd61961f0f4b84cf8c28eda2aab38546504a0036037239"}, {"id": "fls_us7d30cbwgpz", "number": "12.4:9", "link": "generics.html#fls_us7d30cbwgpz", "checksum": "c2a32969042fbf3a990f2fbb15ccc7cec1c1fbbec38d11829756846543bea7b7"}, {"id": "fls_dp3hpvf0fmr8", "number": "12.4:10", "link": "generics.html#fls_dp3hpvf0fmr8", "checksum": "c87ac00ad30f5b3d158b3eefc327e17f8c53e5f2a7004df7dc4efb8f5c1a2210"}, {"id": "fls_mg45zcguxxg5", "number": "12.4:11", "link": "generics.html#fls_mg45zcguxxg5", "checksum": "7a2547656618d6f84add7a3e50e946935bb92bd29224f1ee7a67bf7953e55b77"}, {"id": "fls_mdgq5xjzkal3", "number": "12.4:12", "link": "generics.html#fls_mdgq5xjzkal3", "checksum": "9b6af5832d05ba38ea6da1de3aaaf043a9e42d0142f7294124fcbf2f0d95c818"}, {"id": "fls_yufugb25ovh3", "number": "12.4:13", "link": "generics.html#fls_yufugb25ovh3", "checksum": "55339f55c4a3fa7c05dfb3379cd23dd3de7da6d00309d6c5af63eb38de6204bf"}, {"id": "fls_ohvxhj23x7w2", "number": "12.4:14", "link": "generics.html#fls_ohvxhj23x7w2", "checksum": "07a280c09abe97494fb7a02a246eb3eecf3c280c763026b64c83005f8cace2fa"}, {"id": "fls_kyar0jh9bqew", "number": "12.4:15", "link": "generics.html#fls_kyar0jh9bqew", "checksum": "139fbdc2aef75a36c1a73ea55319255892f7fac16e00d0f5da5ab0e832366b16"}], "informational": false}], "informational": false}, {"title": "Implementations", "link": "implementations.html", "sections": [{"id": "fls_fk2m2irwpeof", "number": "11", "title": "Implementations", "link": "implementations.html", "paragraphs": [{"id": "fls_ivxpoxggy7s6", "number": "11:1", "link": "implementations.html#fls_ivxpoxggy7s6", "checksum": "68d68054bfe8ffe57002321f94f09f2c21faac92f10052af0b8ebb6bb2e4bdd4"}, {"id": "fls_yopmjbnw8tbl", "number": "11:2", "link": "implementations.html#fls_yopmjbnw8tbl", "checksum": "a88885418df7946e8facb892e33e099cc8789c354fbf7bd977f460e40ec2089d"}, {"id": "fls_eihc8y9fbtr0", "number": "11:3", "link": "implementations.html#fls_eihc8y9fbtr0", "checksum": "28523ce67d9161886a6bbdc6415a2a18a12cac0bd7cf96d2e560d4acaa243c96"}, {"id": "fls_mcpdzzcw43m7", "number": "11:4", "link": "implementations.html#fls_mcpdzzcw43m7", "checksum": "073aeb6b836eee108b5b6d5a5ded4f1b8df8ab96ec075686dca1d2b7fc6c1b34"}, {"id": "fls_v0n0bna40dqr", "number": "11:5", "link": "implementations.html#fls_v0n0bna40dqr", "checksum": "6d7038fd93f535f1a95c93f6917f3cebd5b30ad181afde8d89173856ec36d502"}, {"id": "fls_797etpdk5dyb", "number": "11:6", "link": "implementations.html#fls_797etpdk5dyb", "checksum": "e18c1caa38c5924e033a0026fc017b1c792df55f87c598c5783efe25cb62819f"}, {"id": "fls_ry3an0mwb63g", "number": "11:7", "link": "implementations.html#fls_ry3an0mwb63g", "checksum": "74cac3914710c2f1a1f624a3c5a1c9aaf33da46b9946695f9bee4eaeb22c5e42"}, {"id": "fls_8pwr7ibvhmhu", "number": "11:8", "link": "implementations.html#fls_8pwr7ibvhmhu", "checksum": "dd34aa75e7947124723372145385a391a6527acf3d57821cf6bfb3530926d0df"}, {"id": "fls_47x0ep8of8wr", "number": "11:9", "link": "implementations.html#fls_47x0ep8of8wr", "checksum": "ba2818ea733c9b43c0160165759dc06495876220780d457240575201aebbf397"}, {"id": "fls_agitlryvyc16", "number": "11:10", "link": "implementations.html#fls_agitlryvyc16", "checksum": "8223ac177e0dcc171dbac1fb21b191141842026a92038b9694be40797d2bdad8"}, {"id": "fls_mx5xjcejwa6u", "number": "11:11", "link": "implementations.html#fls_mx5xjcejwa6u", "checksum": "0ecbb270fa78be720b325ddc3197182ea1ca39be3069bd7d37f201389c9b3991"}, {"id": "fls_z78dg261oob6", "number": "11:12", "link": "implementations.html#fls_z78dg261oob6", "checksum": "7ec52a2c02f0e55bea6e0a3c728c22e5720e34bdeabc0740d52707774946acbe"}, {"id": "fls_89ynjgnb7ki3", "number": "11:13", "link": "implementations.html#fls_89ynjgnb7ki3", "checksum": "1f973a701dba719c9b5c7879e8f7e39c271e60ebd4708b781a5ec557ca35bb6b"}, {"id": "fls_yuyesijndu9n", "number": "11:14", "link": "implementations.html#fls_yuyesijndu9n", "checksum": "94597e560f592f649b38ef27778a62819bc7e5c2e01faa0ef53fa29225d8083c"}, {"id": "fls_o62i75sjzp9y", "number": "11:15", "link": "implementations.html#fls_o62i75sjzp9y", "checksum": "7093aa443b2d63b8c3ad1d99dc26a6f1df03d367428b954e62e372eab3d4f569"}, {"id": "fls_a2utf0tmuhy4", "number": "11:16", "link": "implementations.html#fls_a2utf0tmuhy4", "checksum": "8ad70788c23781cfbb4cc77f8e9b280870f2088b7f3522cf5adf7a4030b29b48"}], "informational": false}, {"id": "fls_46ork6fz5o2e", "number": "11.1", "title": "Implementation Coherence", "link": "implementations.html#implementation-coherence", "paragraphs": [{"id": "fls_fv1l4yjuut7p", "number": "11.1:1", "link": "implementations.html#fls_fv1l4yjuut7p", "checksum": "f593f63f6406327889e137ab55ec05d98a6d439176ec14afafae261241a14f1c"}, {"id": "fls_swdusjwzgksx", "number": "11.1:2", "link": "implementations.html#fls_swdusjwzgksx", "checksum": "1452e1e4d864f7a4178e6f1be77e9694766805cd6a0556f67f5314caf0a5d8de"}, {"id": "fls_ir7hp941ky8t", "number": "11.1:3", "link": "implementations.html#fls_ir7hp941ky8t", "checksum": "9763aff40d5e4ca431a133884a391a71d1e3434b2dd8e6ab1c928ba846346526"}, {"id": "fls_3tbm20k2ixol", "number": "11.1:4", "link": "implementations.html#fls_3tbm20k2ixol", "checksum": "3a7e9191eb41e4bba88408faba2f7f149137b7df440996588e945fad99c82867"}, {"id": "fls_lscc9ileg3gm", "number": "11.1:5", "link": "implementations.html#fls_lscc9ileg3gm", "checksum": "46b1fe27e9a10a5a463205624c88ba78b4851fbf47c3d1e31d45026df49b1774"}, {"id": "fls_9klwbsh3vlxu", "number": "11.1:6", "link": "implementations.html#fls_9klwbsh3vlxu", "checksum": "90514614f2da8202c20d849b7c71d72ae95423a582d7fcb612d03343c5ce1b8a"}, {"id": "fls_9gmc1tcscq9v", "number": "11.1:7", "link": "implementations.html#fls_9gmc1tcscq9v", "checksum": "79f486e433c0cc3589e42f1efbdc6df12866131778c2b136b5be7d27ff1b67ec"}, {"id": "fls_ukqhjewsjpdq", "number": "11.1:8", "link": "implementations.html#fls_ukqhjewsjpdq", "checksum": "6b6dac78cb7d28fe378157a5827ca98ef8996833871c9acbbad28e04b8781132"}, {"id": "fls_fsybug40ha5r", "number": "11.1:9", "link": "implementations.html#fls_fsybug40ha5r", "checksum": "cbf8117eb6e59dd31ff3217f236513679c4236d8d108c4451693dfdeb766d3d2"}, {"id": "fls_z8apl0cef7a0", "number": "11.1:10", "link": "implementations.html#fls_z8apl0cef7a0", "checksum": "35936abe2e47a3f84e6b97c5b8773f0e57035b2a2311e2ec92b001e91f057096"}, {"id": "fls_rjjafhpvsi6m", "number": "11.1:11", "link": "implementations.html#fls_rjjafhpvsi6m", "checksum": "16c8bf3ad79c585e2a19ab5043608ba5cdfbe59b334ba09913fe7cb101ef98a0"}, {"id": "fls_dtujxhnkl8ty", "number": "11.1:12", "link": "implementations.html#fls_dtujxhnkl8ty", "checksum": "bd35a79daaebf148b48f637a939718b4e78fe6d95ec05e092dabf33c372e5045"}, {"id": "fls_zjkovqrxqwdu", "number": "11.1:13", "link": "implementations.html#fls_zjkovqrxqwdu", "checksum": "8e6a64bbe4e6692fa29ab6cab825bed32aa92944541ab8b3cab95f46ec47ae1a"}, {"id": "fls_v6r8yqtsqnyv", "number": "11.1:14", "link": "implementations.html#fls_v6r8yqtsqnyv", "checksum": "881eb7081d32bca6dd31a402732083c1a10cfbb0703d65d4903481c9df0fa6cc"}, {"id": "fls_cpc6xqn1iwqu", "number": "11.1:15", "link": "implementations.html#fls_cpc6xqn1iwqu", "checksum": "0bff693cd5c7bd24006d97966faf22d8ad51776dd27b155aa3c4c53705f1e230"}, {"id": "fls_dj7ygw4e4i4h", "number": "11.1:16", "link": "implementations.html#fls_dj7ygw4e4i4h", "checksum": "3a1f51af690831f150b9917ff7ed785fc0ad8572bfdb024cbbe419e2b1536063"}, {"id": "fls_koy70k770ayu", "number": "11.1:17", "link": "implementations.html#fls_koy70k770ayu", "checksum": "a69a7eba188277ac25d75030529f9289094778fd2d87d38a1ed7ab9c1871938e"}], "informational": false}, {"id": "fls_e1pgdlv81vul", "number": "11.2", "title": "Implementation Conformance", "link": "implementations.html#implementation-conformance", "paragraphs": [{"id": "fls_yyusuayg4lx6", "number": "11.2:1", "link": "implementations.html#fls_yyusuayg4lx6", "checksum": "235dcfef5a150c402f42c33dd6eabd7189375ddb2bb8e3cd3cc162fe22a53e9a"}, {"id": "fls_v31idwjau90d", "number": "11.2:2", "link": "implementations.html#fls_v31idwjau90d", "checksum": "5f1a4f88e1dd9fd77d93c773080c7b2e8fa3179f7d8e4de72e39d0ff16a2a387"}, {"id": "fls_k3wfh5japmyw", "number": "11.2:3", "link": "implementations.html#fls_k3wfh5japmyw", "checksum": "f18161b732608a6732ea2886b4c609dc56b7dde6df16c57cf321542c887aa1d8"}, {"id": "fls_11qrqfuc3rmh", "number": "11.2:4", "link": "implementations.html#fls_11qrqfuc3rmh", "checksum": "428b016d82301c34cac20a058d8e9f87628abcd977fc4d1ff1557bc1bf2d24f8"}, {"id": "fls_qmhduwunxww0", "number": "11.2:5", "link": "implementations.html#fls_qmhduwunxww0", "checksum": "7e921c53c7799271e80ccbadf2d47a340d1ef1bd9326fe4e2bdf54e5dcf2d127"}, {"id": "fls_2500ivh0cc3y", "number": "11.2:6", "link": "implementations.html#fls_2500ivh0cc3y", "checksum": "aa4594177b713ab6ee2d502e2c0f20256ac5a5e546fab64bcc52db72ee407c5d"}, {"id": "fls_18gimgfy0kw9", "number": "11.2:7", "link": "implementations.html#fls_18gimgfy0kw9", "checksum": "f3fb2ce2caeb76b89e224e1c88594d2dc95ddc66e180f8cb6d50b428f01eedcf"}, {"id": "fls_fi4qmauirlsm", "number": "11.2:8", "link": "implementations.html#fls_fi4qmauirlsm", "checksum": "0b6f276c677931c78d760ff5def7e67a7e4cbd817e1f21f0343edb674c80e0b4"}, {"id": "fls_2s8lh3k4rw6u", "number": "11.2:9", "link": "implementations.html#fls_2s8lh3k4rw6u", "checksum": "31bad81c5be19c117a8675a891a00247edb13fe1ab49a36e1f439da9b3123b6f"}, {"id": "fls_bb874uu2alt3", "number": "11.2:10", "link": "implementations.html#fls_bb874uu2alt3", "checksum": "fe5486ca02f9ffadaed847c11ea13af8afba0eb18ea38527ec5b8cc5d45cbf83"}, {"id": "fls_so8em6rphkhv", "number": "11.2:11", "link": "implementations.html#fls_so8em6rphkhv", "checksum": "43150bf6a5f61f75ca365a77174d7d659f67e1c8cd00dcd74b3f72cdc7282045"}, {"id": "fls_ldu9bmb9cy10", "number": "11.2:12", "link": "implementations.html#fls_ldu9bmb9cy10", "checksum": "2928f339f8abfbe9b10de44c5ab57f730fdc2e7881dc3cce685844a2ada75373"}, {"id": "fls_5cr6un2gzdft", "number": "11.2:13", "link": "implementations.html#fls_5cr6un2gzdft", "checksum": "1a07917d9eeb24596f2800e26f4930f6ecc94fc0027f33f7cce840c026ee28a5"}, {"id": "fls_pshfe3ioh0mg", "number": "11.2:14", "link": "implementations.html#fls_pshfe3ioh0mg", "checksum": "dc51b8a6f90c2e32e2ec099057c7d4745f9082e4521e0f0cb64ba03ac87c95ed"}, {"id": "fls_8yq1g7nzv9px", "number": "11.2:15", "link": "implementations.html#fls_8yq1g7nzv9px", "checksum": "bc54fae0d59dee07617ca65931de1869df56a18c8afe575dcc287c8d2d9305ed"}], "informational": false}], "informational": false}, {"title": "General", "link": "general.html", "sections": [{"id": "fls_48qldfwwh493", "number": "1", "title": "General", "link": "general.html", "paragraphs": [{"id": "fls_c4ry0kgmvk9z", "number": "1:1", "link": "general.html#fls_c4ry0kgmvk9z", "checksum": "b56c8be8103d8226bbdec210a97ca8f2c38405d36f65f17b15936a1a8284b26c"}, {"id": "fls_gxqbj0qoiaio", "number": "1:2", "link": "general.html#fls_gxqbj0qoiaio", "checksum": "4a8fd448c0e40fd0675f5d82c36b6f963f99259021c6022cc9bd5104c20fbdeb"}, {"id": "fls_u8k9zr8da30", "number": "1:3", "link": "general.html#fls_u8k9zr8da30", "checksum": "02be35a62aff5e48d56d3fb05c75ade724aff55d6ad8278715bd7fac8adbe03f"}, {"id": "fls_8mt9iigoboba", "number": "1:4", "link": "general.html#fls_8mt9iigoboba", "checksum": "11a39a0b407d0ca45db7639f588e85fe27910624c6c508283f983229a6aad5db"}, {"id": "fls_suhf2g3fatfa", "number": "1:5", "link": "general.html#fls_suhf2g3fatfa", "checksum": "cd1b728c4e56af1dd90836a76afce9239d07ea2aa3095cbeedf8693a22f14caf"}, {"id": "fls_jjr5kbn0wuco", "number": "1:6", "link": "general.html#fls_jjr5kbn0wuco", "checksum": "8b4dce11b14d66a6a1177ef131384957fe6a887c388d56a1902e09ee60f80af0"}, {"id": "fls_4dfcjyprkzbx", "number": "1:7", "link": "general.html#fls_4dfcjyprkzbx", "checksum": "3a278c9aaaabec045a6eede8eb5a0beab745d8b84b098a39b6cdf2e167bc5178"}, {"id": "fls_tq9jcv5ddvwn", "number": "1:8", "link": "general.html#fls_tq9jcv5ddvwn", "checksum": "1e02dbccc64818a6cebcc7d6331d8281a24621e813178d0f5be9d0b3356c7a22"}], "informational": false}, {"id": "fls_fo1c7pg2mw1", "number": "1.1", "title": "Scope", "link": "general.html#scope", "paragraphs": [{"id": "fls_srdq4mota5pr", "number": "1.1:1", "link": "general.html#fls_srdq4mota5pr", "checksum": "a07b4fe66cf65b8ce3a858b2856554611de4b9e53002b5ffa7fbb90c6cfc2b44"}, {"id": "fls_dv1qish8svc", "number": "1.1:2", "link": "general.html#fls_dv1qish8svc", "checksum": "2fd3ee99a2741348afeb5b1c225ce4f0f75e2a082a1761ab70b2514a188bf003"}, {"id": "fls_osh9tiwpnsn1", "number": "1.1:3", "link": "general.html#fls_osh9tiwpnsn1", "checksum": "3cafe78bf672e065271c827827275c25ee801c1d3205969de17e9f49d6aab5ba"}], "informational": false}, {"id": "fls_10yukmkhl0ng", "number": "1.1.1", "title": "Extent", "link": "general.html#extent", "paragraphs": [{"id": "fls_x78yd1sszydv", "number": "1.1.1:1", "link": "general.html#fls_x78yd1sszydv", "checksum": "07358ef439d78086f970b0606b6da177cb6cc2e64318f27af92832c21a67be43"}, {"id": "fls_9e032738udnb", "number": "1.1.1:2", "link": "general.html#fls_9e032738udnb", "checksum": "818ed40aac2e52250ea0014e5de7fbcbcf1e8f325b74a015ac0085699523a43d"}, {"id": "fls_jk7scu5xs17z", "number": "1.1.1:3", "link": "general.html#fls_jk7scu5xs17z", "checksum": "85861dc839d41712fe2a39712eb1dcfd1dc88ba30f3782f92bd1986fe355c196"}, {"id": "fls_jiryupa5fxgf", "number": "1.1.1:4", "link": "general.html#fls_jiryupa5fxgf", "checksum": "dc11c0150f1c1ea89b5e2e31e3d90c45c62fa5d26005eb9ed3a16e3f7a3fb68c"}, {"id": "fls_sph1a3sapinh", "number": "1.1.1:5", "link": "general.html#fls_sph1a3sapinh", "checksum": "4ce6c16caad38e7ccb47adc109089c53cc047073ebba0a06457cbeded05f68e0"}, {"id": "fls_7tm19jxtffc8", "number": "1.1.1:6", "link": "general.html#fls_7tm19jxtffc8", "checksum": "7c348ba84b24afee5a0a39c44f15af8c05a07208877750c9a766d44ab767da7b"}, {"id": "fls_5pbrl8lhuth1", "number": "1.1.1:7", "link": "general.html#fls_5pbrl8lhuth1", "checksum": "585a289861cd9b12366dc2314022378903323fea3cdbd6863a2e5bd96ed69446"}, {"id": "fls_o8fc3e53vp7g", "number": "1.1.1:8", "link": "general.html#fls_o8fc3e53vp7g", "checksum": "fc97ac93c58134f54e07f9f6ff5334dbf3afdc8b1e707525ddd8eb232a915c74"}, {"id": "fls_rw0y5t13y6gs", "number": "1.1.1:9", "link": "general.html#fls_rw0y5t13y6gs", "checksum": "8adc0c63aa968e623b7251ecc0776057325470f81d39879bb6dfb23d1985a407"}, {"id": "fls_x7c3o621qj9z", "number": "1.1.1:10", "link": "general.html#fls_x7c3o621qj9z", "checksum": "2f2276e84ea3e0251d343a2c859bafeefc4eb09d8d7222774ce538650c01980b"}, {"id": "fls_5y2b6yjcl1vz", "number": "1.1.1:11", "link": "general.html#fls_5y2b6yjcl1vz", "checksum": "cd7a1f68c81b43b8536b355596a13da9ddc2e33d7b37a18af00eee2456c3fd06"}, {"id": "fls_8dennhk2dha", "number": "1.1.1:12", "link": "general.html#fls_8dennhk2dha", "checksum": "a695d7fe1b36b6516b8530ec034376b8c43e7aa53cd0795f48e39482be5a38cf"}, {"id": "fls_j2gs3hrbxtyx", "number": "1.1.1:13", "link": "general.html#fls_j2gs3hrbxtyx", "checksum": "65c2d0a375d2b29b8836f90cfdf174fc8fe72f5198073097bb9401add5d0880b"}, {"id": "fls_gy2c7vfwkd8j", "number": "1.1.1:14", "link": "general.html#fls_gy2c7vfwkd8j", "checksum": "94c8f2e37b34e95fffa62df717bbcd7d87653a8506a65f52d91e1706e0dfe9d8"}], "informational": false}, {"id": "fls_xscgklvg1wd2", "number": "1.1.2", "title": "Structure", "link": "general.html#structure", "paragraphs": [{"id": "fls_6lrqailxjb02", "number": "1.1.2:1", "link": "general.html#fls_6lrqailxjb02", "checksum": "cf3cbc9c40c36b3adb1ed7688c9146dbd4600e0a3b26d22e0a8e2d2787004b20"}, {"id": "fls_tys7ciqnp8bn", "number": "1.1.2:2", "link": "general.html#fls_tys7ciqnp8bn", "checksum": "13aa072e39fbda618587953663ec86d1a188fe0eb4db97252b906ca8e9c2fe51"}, {"id": "fls_3ubhkaheu8i1", "number": "1.1.2:3", "link": "general.html#fls_3ubhkaheu8i1", "checksum": "913231e2b3ec529bb3f2e3657b340d11fa082044e00ab94da54e14e109b7d0ac"}, {"id": "fls_xw3grr2g5zgi", "number": "1.1.2:4", "link": "general.html#fls_xw3grr2g5zgi", "checksum": "a3dbc58c5b6f14fcb934d8fe2816aa264d6ae3a56685f6bae01cdec5e2cae935"}, {"id": "fls_k6obg07c1i71", "number": "1.1.2:5", "link": "general.html#fls_k6obg07c1i71", "checksum": "7a81481a7b99562194bdd68e36bc46a25695efe04833a417b9408a585c0d8073"}, {"id": "fls_6srbinvnyd54", "number": "1.1.2:6", "link": "general.html#fls_6srbinvnyd54", "checksum": "11c90805ef23752a416f5a6a8b69230febfdf97b68edaf26f6517bd359492443"}, {"id": "fls_ciixfg9jhv42", "number": "1.1.2:7", "link": "general.html#fls_ciixfg9jhv42", "checksum": "fdcfcebd0c9395a151b773b35ef5d5e2720a08080c54f279652f7668a0182897"}, {"id": "fls_ej94lm2682kg", "number": "1.1.2:8", "link": "general.html#fls_ej94lm2682kg", "checksum": "25a56f970c722a9217989c3250b9b75798453ac229d32dc74b97c2a6c84a2109"}, {"id": "fls_xgk91jrbpyoc", "number": "1.1.2:9", "link": "general.html#fls_xgk91jrbpyoc", "checksum": "1d6b46a99af9d8d5a9922ea6bf1c4898d71c34759d9b8533b122fe70c0df9c02"}, {"id": "fls_enkvrkfqwyt8", "number": "1.1.2:10", "link": "general.html#fls_enkvrkfqwyt8", "checksum": "97c8f4b93879c48bdb5318e6566c1d1354f510b903d8d6b9ecef494153773737"}, {"id": "fls_yfyiaipc9omp", "number": "1.1.2:11", "link": "general.html#fls_yfyiaipc9omp", "checksum": "a24d947dafa49ce8e2c37571c7d28c4b895b8bb3b09bc1fd250ce2eb3f7b9a01"}, {"id": "fls_jc4upf6685bw", "number": "1.1.2:12", "link": "general.html#fls_jc4upf6685bw", "checksum": "db3c5f8206004bb2cca82ca219a417ec2a4fe259773ae667ab3d10114d5740ee"}, {"id": "fls_oxzjqxgejx9t", "number": "1.1.2:13", "link": "general.html#fls_oxzjqxgejx9t", "checksum": "1594b619675d7802bccfee40ca10262be9916e29f70d8f7fecbf5dddd00246f4"}, {"id": "fls_gmx688d6ek1o", "number": "1.1.2:14", "link": "general.html#fls_gmx688d6ek1o", "checksum": "acf02a4a250adb8e29284b356a6f4a386a936d32f0e85d3b304e708863f10929"}, {"id": "fls_5zdjikp1jhc", "number": "1.1.2:15", "link": "general.html#fls_5zdjikp1jhc", "checksum": "7f053104dd4947498f1bb5121b9fe28a23d78ead65d37dd580df0111d558d8dd"}, {"id": "fls_as5bhc5t285g", "number": "1.1.2:16", "link": "general.html#fls_as5bhc5t285g", "checksum": "44025e9b54bdddecd35c847f5628ffddbfc9e4721cd733f41c9186c904ef15b1"}, {"id": "fls_70qjvaqoz007", "number": "1.1.2:17", "link": "general.html#fls_70qjvaqoz007", "checksum": "6efef41c7a703e3b3562b12e95047110a954b19026060d22099de222c142ed8b"}, {"id": "fls_o4rdsbc7u98", "number": "1.1.2:18", "link": "general.html#fls_o4rdsbc7u98", "checksum": "525edc88be77e71d6777eef00907902bcd024abb3c401a92d67f1ca997971c5a"}, {"id": "fls_w8j575w2hmc8", "number": "1.1.2:19", "link": "general.html#fls_w8j575w2hmc8", "checksum": "3ab99fa52627e6796ca7e01a7242052885523e5e0f93b9dd98ec22d483688e60"}], "informational": false}, {"id": "fls_99b7xi1bkgih", "number": "1.1.3", "title": "Conformity", "link": "general.html#conformity", "paragraphs": [{"id": "fls_kdyqtnc6loam", "number": "1.1.3:1", "link": "general.html#fls_kdyqtnc6loam", "checksum": "42aa78f31bd39d9d54d95d846fc09f42910052efc6f2cb7eb50a7b34706f7c97"}, {"id": "fls_ctwsz8sl7lbq", "number": "1.1.3:2", "link": "general.html#fls_ctwsz8sl7lbq", "checksum": "8b9c3254ca795d197ee149cc6a05067039977d8d19cfed0ec3bbf060d371ba02"}, {"id": "fls_bvpekhdaxctq", "number": "1.1.3:3", "link": "general.html#fls_bvpekhdaxctq", "checksum": "07f27f39d36356ac4cc58744dc4daecfe8c97cb7f9457db19d9494fb1ad0dfca"}, {"id": "fls_kfs8gsd36d91", "number": "1.1.3:4", "link": "general.html#fls_kfs8gsd36d91", "checksum": "150c7404a99f5330be2638cb2ac1bc7b36d679a98051361a985d7711fc138e3c"}, {"id": "fls_k5sozk8jhrmg", "number": "1.1.3:5", "link": "general.html#fls_k5sozk8jhrmg", "checksum": "dda9b4ee8e63bba9e91cfb85dc3d43db063c22f72bff45cafd2f6876bfbfd0e1"}, {"id": "fls_nwx1fdq6b4mg", "number": "1.1.3:6", "link": "general.html#fls_nwx1fdq6b4mg", "checksum": "bb994ebfd651f73153ab5b7d1a32ca6551ee593448eacf3d370e164a3dec5eb1"}, {"id": "fls_n3ypaile1a36", "number": "1.1.3:7", "link": "general.html#fls_n3ypaile1a36", "checksum": "563ed3d97a65d96209f45e597d0d76b8b47739154161a7cc64f041addf71436b"}, {"id": "fls_nnmx2qsu14ft", "number": "1.1.3:8", "link": "general.html#fls_nnmx2qsu14ft", "checksum": "1f8c2956cb9f8b946f0f56053a038a9ab8efaf6dd7881bb5d1d65e1c87b05900"}, {"id": "fls_gu3331rmv2ho", "number": "1.1.3:9", "link": "general.html#fls_gu3331rmv2ho", "checksum": "617b745c8533d592398a9cdda6ababa7108d653724d221af49db01201b37f99d"}, {"id": "fls_3iekobt8qqi", "number": "1.1.3:10", "link": "general.html#fls_3iekobt8qqi", "checksum": "0fdf723a1e989eb9434d0479b0af810bec67bf6b5c463ca83f170e87ac426737"}, {"id": "fls_qx9fxf4py0j0", "number": "1.1.3:11", "link": "general.html#fls_qx9fxf4py0j0", "checksum": "ab0e8dc4979784d434b36c0192e6ae186044669dc49a67740bcea941c5a3fbb1"}, {"id": "fls_pl0fyjcwslqm", "number": "1.1.3:12", "link": "general.html#fls_pl0fyjcwslqm", "checksum": "849ea928df375ac126378ee4fd16534119a4f03f42721cd25145edc4d7850294"}, {"id": "fls_lkdm0mdghppv", "number": "1.1.3:13", "link": "general.html#fls_lkdm0mdghppv", "checksum": "534de23af559805d2b96e284fdd9afc9838e9e3f65b120c5401aa7cf130d439b"}, {"id": "fls_d07x1mbhgpsd", "number": "1.1.3:14", "link": "general.html#fls_d07x1mbhgpsd", "checksum": "f87533ba7b47cb56f59c27e8d99d031d3c5c35b16c4d3ae271ddb9b3ee18c33b"}], "informational": false}, {"id": "fls_79rl6ylmct07", "number": "1.1.4", "title": "Method of Description and Syntax Notation", "link": "general.html#method-of-description-and-syntax-notation", "paragraphs": [{"id": "fls_mc4a28do6kcp", "number": "1.1.4:1", "link": "general.html#fls_mc4a28do6kcp", "checksum": "8811c1ef8e9707861f67d171dc813cc290188343fde68d68304072ab9d422c41"}, {"id": "fls_ioyp4wux6skt", "number": "1.1.4:2", "link": "general.html#fls_ioyp4wux6skt", "checksum": "5265a200f292feb3f40a0a1fe1884a988c50521945182e3581d1e04067c1c746"}, {"id": "fls_jsflt7691ye4", "number": "1.1.4:3", "link": "general.html#fls_jsflt7691ye4", "checksum": "5be24f2bcda1727c3b6e1ad27d2d7c8ffe6e487d292f2b48bd528e411c2ae1be"}, {"id": "fls_98fm7z04lq9", "number": "1.1.4:4", "link": "general.html#fls_98fm7z04lq9", "checksum": "15f27fa3164d4f34e687dff0589a9406f64fd304a5cbac1d917e215a3420b24d"}, {"id": "fls_ceb5a8t6cakr", "number": "1.1.4:5", "link": "general.html#fls_ceb5a8t6cakr", "checksum": "bf197e4e3db74f8f9189b2d39392b793c47f8e26908e5ff493a91d3567e2e58d"}, {"id": "fls_pts29mb5ld68", "number": "1.1.4:6", "link": "general.html#fls_pts29mb5ld68", "checksum": "e53521056d56c3f85475811368708e304047e64d39a20604584fa7f38d9c7f86"}, {"id": "fls_gqjo5oh7vn3b", "number": "1.1.4:7", "link": "general.html#fls_gqjo5oh7vn3b", "checksum": "48013ee45666937c8ad55fb39de161c383ead549216e3bdc9e2882e83bcf0a90"}, {"id": "fls_1dz634xp8xp5", "number": "1.1.4:8", "link": "general.html#fls_1dz634xp8xp5", "checksum": "f6d36c515bd4436ca87447bc369bb7b1c69b50ca9215b1d6981dabce39f33593"}, {"id": "fls_pp9vtjlyblrl", "number": "1.1.4:9", "link": "general.html#fls_pp9vtjlyblrl", "checksum": "949f3857c5bbb056b780f44c08df02afc05d59db42be92d94a86c97a20ae4943"}, {"id": "fls_6e2vd9fvhsmk", "number": "1.1.4:10", "link": "general.html#fls_6e2vd9fvhsmk", "checksum": "d7b7b2e401f1bc24ffd16c1f417d18c3d12336cc2d2325ecc1c07d77ea0e513e"}, {"id": "fls_4onq0kkrt6qv", "number": "1.1.4:11", "link": "general.html#fls_4onq0kkrt6qv", "checksum": "0eda08ae37976f0d7d15570d790c9bc3107ea4533794e554872ea0d77af06d9c"}, {"id": "fls_qu4rsmnq659w", "number": "1.1.4:12", "link": "general.html#fls_qu4rsmnq659w", "checksum": "bf1b757e4fec099109dc75529b8709e0177c379698e8c762c5c27fe8fe0ac2d3"}, {"id": "fls_rllu7aksf17e", "number": "1.1.4:13", "link": "general.html#fls_rllu7aksf17e", "checksum": "ca3586f81ab3962899f5a1a79386ef8637003025a729a5b76bebdb5d1e43cb28"}, {"id": "fls_blvsfqeevosr", "number": "1.1.4:14", "link": "general.html#fls_blvsfqeevosr", "checksum": "87380f5c66b721c614a404b1852a6c1f93b93d02b04517c8be6e401f85832f82"}, {"id": "fls_lwcjq3wzjyvb", "number": "1.1.4:15", "link": "general.html#fls_lwcjq3wzjyvb", "checksum": "d05cec36bfece44c3203af30f098975bd0f3d0cccd9687f0956cd9eca66c810f"}, {"id": "fls_v7wd5yk00im6", "number": "1.1.4:16", "link": "general.html#fls_v7wd5yk00im6", "checksum": "9a579e74f8de12da445c5197e2555aab86fc739d0defc1f685c0aa5dfb44cebc"}, {"id": "fls_nf8alga8uz6c", "number": "1.1.4:17", "link": "general.html#fls_nf8alga8uz6c", "checksum": "afb0e775413f09199a584413d501b6ec88d107c1be87cac6e07bc33ecce6ad74"}], "informational": false}, {"id": "fls_9cd746qe40ag", "number": "1.2", "title": "Versioning", "link": "general.html#versioning", "paragraphs": [{"id": "fls_l80e3kdwnldc", "number": "1.2:1", "link": "general.html#fls_l80e3kdwnldc", "checksum": "ac30f10574356a3a3472c8858b8b13e8b8ef034312c5823a3674a594b4e4e468"}], "informational": false}, {"id": "fls_ijzgf4h0mp3c", "number": "1.3", "title": "Definitions", "link": "general.html#definitions", "paragraphs": [{"id": "fls_sm2kexes5pr7", "number": "1.3:1", "link": "general.html#fls_sm2kexes5pr7", "checksum": "34f82930e1b6b4af471b30519f81d43725341882ad0a3e8e36d85ab7b3f5713b"}, {"id": "fls_2o98zw29xc46", "number": "1.3:2", "link": "general.html#fls_2o98zw29xc46", "checksum": "397ee14d96917a0a9033a587347a2246e4118f1270d64cce0f7eefeeaf565980"}, {"id": "fls_lon5qffd65fi", "number": "1.3:3", "link": "general.html#fls_lon5qffd65fi", "checksum": "969a1f3b691a3118abcd815618a71feba07fdd5be4c2a12ce37d0b49595d013a"}, {"id": "fls_qeolgxvcy75", "number": "1.3:4", "link": "general.html#fls_qeolgxvcy75", "checksum": "0d6e2d5075e9ccebe0f79ee2d1d393c07fae6b8d4b6cbf7fbf59b1348185fc5d"}, {"id": "fls_h2m244agxaxs", "number": "1.3:5", "link": "general.html#fls_h2m244agxaxs", "checksum": "70b86c11c1708aa3d4d6b52af002352aebaef77835c4b45ebc4233a789844230"}, {"id": "fls_47svine904xk", "number": "1.3:6", "link": "general.html#fls_47svine904xk", "checksum": "c669dced28f1bb44dbac7e17e855e184b1f14baecfa15e22b21d2379a5998be6"}], "informational": false}], "informational": true}, {"title": "Associated Items", "link": "associated-items.html", "sections": [{"id": "fls_l21tjqjkkaa0", "number": "10", "title": "Associated Items", "link": "associated-items.html", "paragraphs": [{"id": "fls_ckzd25qd213t", "number": "10:1", "link": "associated-items.html#fls_ckzd25qd213t", "checksum": "c48bd96544b685d7b7a7e8a2e676eb1c8ed2066a485c20a48faa1c660ef8bdb7"}, {"id": "fls_5y6ae0xqux57", "number": "10:2", "link": "associated-items.html#fls_5y6ae0xqux57", "checksum": "fd7bf7d0a40ad75d0809a98d1bd273b94708f4a26b1a3be16f7e8dbffbe638ec"}, {"id": "fls_lj7492aq7fzo", "number": "10:3", "link": "associated-items.html#fls_lj7492aq7fzo", "checksum": "fda609cdbb71ae52c820019783b3b6858d633fdd6de601cfae585217aeb034aa"}, {"id": "fls_8cz4rdrklaj4", "number": "10:4", "link": "associated-items.html#fls_8cz4rdrklaj4", "checksum": "d0a97d55dc69fb14de940c4597c8ec6cc4d1bdea2efef1f262ca235d4380a078"}, {"id": "fls_w8nu8suy7t5", "number": "10:5", "link": "associated-items.html#fls_w8nu8suy7t5", "checksum": "a21d4472dc9edff52ba6084426735486e96547a9916ebbf6041810119a4ca7aa"}, {"id": "fls_wasocqdnuzd1", "number": "10:6", "link": "associated-items.html#fls_wasocqdnuzd1", "checksum": "a5074f92b70f64ed6d002c08f65bfa91a814cf5b80b19137743ca62a12bda2b6"}, {"id": "fls_ped0dzjk57be", "number": "10:7", "link": "associated-items.html#fls_ped0dzjk57be", "checksum": "61134011658677b475c3f8e65ac36ab5b479e0746afd064ac6d0084c0441fbb6"}, {"id": "fls_3foyuch29ztf", "number": "10:8", "link": "associated-items.html#fls_3foyuch29ztf", "checksum": "0dd68e90f7962b7f3ab0d020e22ee6db5fde4efa6ae628af968af3fe3d76baa8"}, {"id": "fls_snqc0zzs57cz", "number": "10:9", "link": "associated-items.html#fls_snqc0zzs57cz", "checksum": "6f1791ecd8b47dfbf50561704cc838d8b0e544cf7c69b576dd48120715a47166"}, {"id": "fls_6z05bk2jszpp", "number": "10:10", "link": "associated-items.html#fls_6z05bk2jszpp", "checksum": "cd830a794d7188143f156c01744b2ee904e28c51699fff975168e027ba4793c0"}, {"id": "fls_atitgs1uvwix", "number": "10:11", "link": "associated-items.html#fls_atitgs1uvwix", "checksum": "1a672e4e07310314b3ed72804595330ecf46d9177808d67beee1497db38edc76"}, {"id": "fls_l3iwn56n1uz8", "number": "10:12", "link": "associated-items.html#fls_l3iwn56n1uz8", "checksum": "f83c7a08c44f0dc091a19c1014f202ab5538474a3d818f1583bd138daef33ecf"}, {"id": "fls_4ftfefcotb4g", "number": "10:13", "link": "associated-items.html#fls_4ftfefcotb4g", "checksum": "41db8d1e89a48299f2506f2fd5b398d24cc65ebba4aced317857a727822d1c4e"}, {"id": "fls_qb5qpfe0uwk", "number": "10:14", "link": "associated-items.html#fls_qb5qpfe0uwk", "checksum": "66b5d7677a5542109bcd8f36408c3ed7ec1aca313c4c747fc28557fb2dd3c6c0"}, {"id": "fls_1zlkeb6fz10j", "number": "10:15", "link": "associated-items.html#fls_1zlkeb6fz10j", "checksum": "96a142348655f7c0d311daed418fc24259286e2108efc574894af02cf2471c36"}, {"id": "fls_tw8u0cc5867l", "number": "10:16", "link": "associated-items.html#fls_tw8u0cc5867l", "checksum": "b5024c3cf8ba9c9ff0e7a6bd05ae96c8f7c64599e2eaec349fae2ca6767f4bab"}, {"id": "fls_bx7931x4155h", "number": "10:17", "link": "associated-items.html#fls_bx7931x4155h", "checksum": "a13634951f7946c3028793e284d6d7899f718840e70e5b30992ad30aa0b28a82"}, {"id": "fls_bntccbdvdp94", "number": "10:18", "link": "associated-items.html#fls_bntccbdvdp94", "checksum": "8fb89c0b3f9ad0065b86652933686cc127a11676e7b59759588bf35bbe56a204"}, {"id": "fls_n3cdn4lcz2bf", "number": "10:19", "link": "associated-items.html#fls_n3cdn4lcz2bf", "checksum": "22be2f18e00bb9e898293564455031809a4ffbdba44f030bff8af6c23ada5048"}, {"id": "fls_x564isbhobym", "number": "10:20", "link": "associated-items.html#fls_x564isbhobym", "checksum": "9647e6f192f7a123a465887f651e66f32b17c903edd98aa87c48510b16acd40f"}, {"id": "fls_b6nns7oqvdpm", "number": "10:21", "link": "associated-items.html#fls_b6nns7oqvdpm", "checksum": "d7e3897e8d4d866fe24ed708a542d480dd49b7432f4e1ab2b6e9f83e66beb79c"}, {"id": "fls_yyhebj4qyk34", "number": "10:22", "link": "associated-items.html#fls_yyhebj4qyk34", "checksum": "3b7142bcde18f322ffa41b2c57c18446ab40aa8a6612d601b48ec17273ad3d94"}, {"id": "fls_kl9p3ycl5mzf", "number": "10:23", "link": "associated-items.html#fls_kl9p3ycl5mzf", "checksum": "53bc991f032b9bfaab3cb72189a8ae6d8772250cc7fbaefa3b80bbd25679141f"}, {"id": "fls_a5prbmuruma4", "number": "10:24", "link": "associated-items.html#fls_a5prbmuruma4", "checksum": "6e869fbccfae9516ee3421a1571bd880ea5ec5dc5aedb65e32f5a6d2977b7955"}, {"id": "fls_vp2ov6ykueue", "number": "10:25", "link": "associated-items.html#fls_vp2ov6ykueue", "checksum": "915d230d994ce8e745b1083bb75cb58b37ac8537af7fd5486a86d1314cb353d0"}, {"id": "fls_5uf74nvdm64o", "number": "10:26", "link": "associated-items.html#fls_5uf74nvdm64o", "checksum": "338988e157f9ff9c04c5a8163cf72e90c0400a0e6ccb6b45e6f105a1b75ac855"}, {"id": "fls_oy92gzxgc273", "number": "10:27", "link": "associated-items.html#fls_oy92gzxgc273", "checksum": "c67bd6dc496b87f14e94eac06fb1dd53a785b33748660d90a3455b63b8f15dea"}, {"id": "fls_wxncwfjgoqx3", "number": "10:28", "link": "associated-items.html#fls_wxncwfjgoqx3", "checksum": "1d3e0acf8e8b25427b6a4179ef6f36b9c9be2060806f8a4532c85d38970a854f"}, {"id": "fls_oaszuw4ifobz", "number": "10:29", "link": "associated-items.html#fls_oaszuw4ifobz", "checksum": "f1864701261d89610bc085bf20379aabb9a7f867190c51deee3b5ab4e0731ab4"}, {"id": "fls_wd2fzromb5yn", "number": "10:30", "link": "associated-items.html#fls_wd2fzromb5yn", "checksum": "69ca8f9162621967970ad1847b4956963b8ccc273a6ac757f5d7487b6f75650f"}, {"id": "fls_lceytoyilcmf", "number": "10:31", "link": "associated-items.html#fls_lceytoyilcmf", "checksum": "3fbb1aaae56596919b24b2c079e95546dfc6a067d076b0d2e43e09ef37e35a9f"}, {"id": "fls_ikspr7zqmeru", "number": "10:32", "link": "associated-items.html#fls_ikspr7zqmeru", "checksum": "9133604a8bdbc61f47a33829fc49829d94f9bb5749c0b6d99dbd05856ecee674"}, {"id": "fls_ohxzyait7qm6", "number": "10:33", "link": "associated-items.html#fls_ohxzyait7qm6", "checksum": "a9ddbf6bc0c06113d12f75ca1fe4401527ac5ff2a0384f375f53b2b7eedc084d"}, {"id": "fls_znfadveovxhd", "number": "10:34", "link": "associated-items.html#fls_znfadveovxhd", "checksum": "17b593b8d0cb4dacc6eb9d143a7e49048a6708d07c811e2595e8cfbb89483827"}], "informational": false}], "informational": false}, {"title": "Exceptions and Errors", "link": "exceptions-and-errors.html", "sections": [{"id": "fls_dzq9cdz4ibsz", "number": "16", "title": "Exceptions and Errors", "link": "exceptions-and-errors.html", "paragraphs": [{"id": "fls_vsk4vhnuiyyz", "number": "16:1", "link": "exceptions-and-errors.html#fls_vsk4vhnuiyyz", "checksum": "d0dadbee084de3030e81aaf2325ea8878e99a72e77800a2662c1fe290bbc9d62"}, {"id": "fls_ebangxc36t74", "number": "16:2", "link": "exceptions-and-errors.html#fls_ebangxc36t74", "checksum": "f2e56f24b5565d180411f7693f63a3b70001ae9c0e4e605e1bd11ea5c207f968"}, {"id": "fls_ckeitwiv326r", "number": "16:3", "link": "exceptions-and-errors.html#fls_ckeitwiv326r", "checksum": "1fd314e20308ba8d525a721f6a9bf050a337f71186510503044dc84efe09173e"}, {"id": "fls_eg0orgibg98m", "number": "16:4", "link": "exceptions-and-errors.html#fls_eg0orgibg98m", "checksum": "b346390e8119d57549b96dcb345a29235552cdc69a61d7d2c8c883cf6d34ae61"}, {"id": "fls_ko1x0gp9e7y3", "number": "16:5", "link": "exceptions-and-errors.html#fls_ko1x0gp9e7y3", "checksum": "83c2582339039d863409873a919aa3040ed86f444b3a5f5729e9fe0d65313c5e"}, {"id": "fls_gwu4cn4ziabe", "number": "16:6", "link": "exceptions-and-errors.html#fls_gwu4cn4ziabe", "checksum": "475f3e3082b2760a32589c7540d5123f0459abea622ba1ae15aa53068c337d7b"}], "informational": false}, {"id": "fls_k02nt1m5fq1z", "number": "16.1", "title": "Panic", "link": "exceptions-and-errors.html#panic", "paragraphs": [{"id": "fls_a554v4n0khye", "number": "16.1:1", "link": "exceptions-and-errors.html#fls_a554v4n0khye", "checksum": "f4d500cf3ddd573cf21ec19b03d0e534bb8caa50bdf5d11eecd095eeaae539f2"}, {"id": "fls_i9njhpte5l0t", "number": "16.1:2", "link": "exceptions-and-errors.html#fls_i9njhpte5l0t", "checksum": "d0ec8ad699ff1c4778bd35b0577f2de16559c4f7a8a67503e9d8b5ffb3feefe0"}, {"id": "fls_n6q7bksyn1m", "number": "16.1:3", "link": "exceptions-and-errors.html#fls_n6q7bksyn1m", "checksum": "df2cd62113f2dc6ca452da3c12891fd958bc64f17397066b0a128c09a0fef520"}, {"id": "fls_xmtt04lw517w", "number": "16.1:4", "link": "exceptions-and-errors.html#fls_xmtt04lw517w", "checksum": "7ce748762310bab19fffad785d50307098ea7d0e69ac336f7218ce22e6205dfa"}], "informational": false}, {"id": "fls_hi1iz0gbnksi", "number": "16.2", "title": "Abort", "link": "exceptions-and-errors.html#abort", "paragraphs": [{"id": "fls_9a1izu3omkbn", "number": "16.2:1", "link": "exceptions-and-errors.html#fls_9a1izu3omkbn", "checksum": "7a15948904b2de411b7c6338a4b97095cd8046a23ef8462801fa784b9b75ba03"}, {"id": "fls_iq6olct3rw4u", "number": "16.2:2", "link": "exceptions-and-errors.html#fls_iq6olct3rw4u", "checksum": "890c034f6aea73b0142607337332d673a009ec8f47e288cd2cfdab3f5c91cee4"}, {"id": "fls_wd2q6ft9yzrg", "number": "16.2:3", "link": "exceptions-and-errors.html#fls_wd2q6ft9yzrg", "checksum": "77bbb6c647c37714e1fa9e1f81b3f63485155de50d4d371608e8f006a638a216"}, {"id": "fls_7bnrbjb0pq5n", "number": "16.2:4", "link": "exceptions-and-errors.html#fls_7bnrbjb0pq5n", "checksum": "b5c6b6bfc6de8e05e13b1fa486c385523fa6472c257f7c8c4b2b86ec91d6664f"}], "informational": false}], "informational": false}, {"title": "Expressions", "link": "expressions.html", "sections": [{"id": "fls_ckvjj4tt1hh2", "number": "6", "title": "Expressions", "link": "expressions.html", "paragraphs": [{"id": "fls_pwut2jbmk66k", "number": "6:1", "link": "expressions.html#fls_pwut2jbmk66k", "checksum": "f4a9c891c5f3f7a4164d6c86d796b665f9435bc01fc8bbbbaa59036b553a042b"}, {"id": "fls_361q9ljc6ybz", "number": "6:2", "link": "expressions.html#fls_361q9ljc6ybz", "checksum": "0645a76c0904721382a9db11d9677b68becee6024c9f1577cc7f2a735f218ad5"}, {"id": "fls_h5o6tgul4yor", "number": "6:3", "link": "expressions.html#fls_h5o6tgul4yor", "checksum": "f5ad17e11f73a3a0df6a225d0ea1179b618c499b3b7155fbb00748809fc16a50"}, {"id": "fls_xmklb3070sp", "number": "6:4", "link": "expressions.html#fls_xmklb3070sp", "checksum": "34930eb5f41ade165e8e2dcedc1cdbeb285b107f659a41466184f4809258e759"}, {"id": "fls_p15oeage4j0e", "number": "6:5", "link": "expressions.html#fls_p15oeage4j0e", "checksum": "d799dd1030ce49998c996f5c45f402da4e7a6d4ace50780e905e20bd758f7cec"}, {"id": "fls_gwgttltgjma4", "number": "6:6", "link": "expressions.html#fls_gwgttltgjma4", "checksum": "a107cb2200785dbcb7690cb3dad0f3467cdb285cffa123b2851edea8be38f609"}, {"id": "fls_1r29rtnjlkql", "number": "6:7", "link": "expressions.html#fls_1r29rtnjlkql", "checksum": "6aa74df5ff6998c36cd4b0303af21019a41841668d615646b3310bc1356befed"}, {"id": "fls_qxdpyf4u3hbz", "number": "6:8", "link": "expressions.html#fls_qxdpyf4u3hbz", "checksum": "ad39790b9e259799a61ae4c3f59b7b80ad1d7684d19dace1619e68b08df39d1a"}, {"id": "fls_2j132xueobfv", "number": "6:9", "link": "expressions.html#fls_2j132xueobfv", "checksum": "aab182f47d02be1c733c5fe2b39472a179b10a15a4dcaeb63c8ce0ea22a1f803"}, {"id": "fls_a243nclqqjlu", "number": "6:10", "link": "expressions.html#fls_a243nclqqjlu", "checksum": "f31c0eca37f5e923bdddeceb52ccea4057f157be662061dd8c4c26b8707dc340"}, {"id": "fls_1223lwh4nq49", "number": "6:11", "link": "expressions.html#fls_1223lwh4nq49", "checksum": "0ab4370e4b805e660ab7f862768edd4e73d59035488ec64df72910f8dfc9c069"}], "informational": false}, {"id": "fls_isyftqu120l", "number": "6.1", "title": "Expression Classification", "link": "expressions.html#expression-classification", "paragraphs": [], "informational": false}, {"id": "fls_3ut3biyra4r9", "number": "6.1.1", "title": "Assignee Expressions", "link": "expressions.html#assignee-expressions", "paragraphs": [{"id": "fls_oqj7s9fi3j3j", "number": "6.1.1:1", "link": "expressions.html#fls_oqj7s9fi3j3j", "checksum": "60b906dd347f40699e98ab1a2baaa4aeeb7f013757c103e406e2096bdf554659"}, {"id": "fls_skopz71arbwa", "number": "6.1.1:2", "link": "expressions.html#fls_skopz71arbwa", "checksum": "575189a16284541fb4bbcea4fd2cd80a17540f1900878b9907804b626afbf1ae"}, {"id": "fls_vxrg6preh46x", "number": "6.1.1:3", "link": "expressions.html#fls_vxrg6preh46x", "checksum": "f757e802590cd6f5714520c2e31d6b89f187aeb5fac01af3c10af2139dc19037"}, {"id": "fls_yso6dmog0an2", "number": "6.1.1:4", "link": "expressions.html#fls_yso6dmog0an2", "checksum": "3724b6486cd33fb55e2fe722c65814be93fdf913e013b3bd2ad12604bd114e92"}, {"id": "fls_1tsdlpgkgb2u", "number": "6.1.1:5", "link": "expressions.html#fls_1tsdlpgkgb2u", "checksum": "c25b90c83c8804de349ad596c8edc8441f9fe8e39ff8a624ad0833546a24ae23"}, {"id": "fls_hier3b8knpuq", "number": "6.1.1:6", "link": "expressions.html#fls_hier3b8knpuq", "checksum": "7d0348796b44af2745ab732f9ca4c1ac8555cb7e9dc2e06a505306dbaf271804"}, {"id": "fls_horl3qcfdb0k", "number": "6.1.1:7", "link": "expressions.html#fls_horl3qcfdb0k", "checksum": "84cb5e1b176d63a2847bcd00a1e723d09f61471fdbd83c46dc4f1ba22c9a7cdc"}, {"id": "fls_1smb3tj9pxsq", "number": "6.1.1:8", "link": "expressions.html#fls_1smb3tj9pxsq", "checksum": "38170dba00ba7905b21fcc6de0032cbe2a9a755064656f9471042b75a766087a"}], "informational": false}, {"id": "fls_66m4rnbssgig", "number": "6.1.2", "title": "Constant Expressions", "link": "expressions.html#constant-expressions", "paragraphs": [{"id": "fls_1ji7368ieg0b", "number": "6.1.2:1", "link": "expressions.html#fls_1ji7368ieg0b", "checksum": "de1b9a859c46ecfefda5689bb444367031a50378d16a3087529244fbfacc7a14"}, {"id": "fls_y6ore0iwx7e0", "number": "6.1.2:2", "link": "expressions.html#fls_y6ore0iwx7e0", "checksum": "9dcd0672817fd04707e71530b3b2ea692843494c1fc724212b7170bdee0c57e4"}, {"id": "fls_xguga84v3j8u", "number": "6.1.2:3", "link": "expressions.html#fls_xguga84v3j8u", "checksum": "59ece0d56caafd3f3b19ffd73ee6d39bc43e3de54f72aa7ba961c094ead62584"}, {"id": "fls_idxf02p7jogu", "number": "6.1.2:4", "link": "expressions.html#fls_idxf02p7jogu", "checksum": "d0d7680ff65e9d4365c3f3207dcd59cea17ce72c3f6475dbbdd5bd6762fba8fd"}, {"id": "fls_6z45ss502alt", "number": "6.1.2:5", "link": "expressions.html#fls_6z45ss502alt", "checksum": "a477daabd5c582a70c94d5bab888ce31a9067b4b67d3d3ddb98becdb8ebc2691"}, {"id": "fls_wqs0792nud4e", "number": "6.1.2:6", "link": "expressions.html#fls_wqs0792nud4e", "checksum": "410eb988349831e9c9de0dfd3fd26eba4040d5db0fea795b92247c2fdd32b111"}, {"id": "fls_490a1b74fut6", "number": "6.1.2:7", "link": "expressions.html#fls_490a1b74fut6", "checksum": "0a3334c8981286278440706cd534605dd5d26fd7728339f4453c3c0656a505fd"}, {"id": "fls_8nyu6phm1nji", "number": "6.1.2:8", "link": "expressions.html#fls_8nyu6phm1nji", "checksum": "759294b08a5248e641c30cdae1634e7d0a607cbe713295dc177466b47ba35103"}, {"id": "fls_8wux08bmpse", "number": "6.1.2:9", "link": "expressions.html#fls_8wux08bmpse", "checksum": "b9f96f90499bd6bbd558e7bacdbbad3fc355aa23ae9e251b1b5dbb76ed7c4e35"}, {"id": "fls_v1bnk7neb82a", "number": "6.1.2:10", "link": "expressions.html#fls_v1bnk7neb82a", "checksum": "252e321eddbb83a6536bf06612aa9ae26862520ac3febe3596676ec5fe2adf75"}, {"id": "fls_6fq6bvxxvhsr", "number": "6.1.2:11", "link": "expressions.html#fls_6fq6bvxxvhsr", "checksum": "e1901939dcf94cb784e9632a7e67b2c977120936dd1cda31caed15974d1e6744"}, {"id": "fls_to4e7imq2c0w", "number": "6.1.2:12", "link": "expressions.html#fls_to4e7imq2c0w", "checksum": "ab77fbf23a95c3856ea49c5147e46adf5284b4b9f98d28b6f3975123bcc32a80"}, {"id": "fls_krtbrpwf3mh0", "number": "6.1.2:13", "link": "expressions.html#fls_krtbrpwf3mh0", "checksum": "8d94c902ac09fb3ef23d83106f3454d99a3c6980a3c488d3a5bf350cd7c115bd"}, {"id": "fls_3etom5uu8y4u", "number": "6.1.2:14", "link": "expressions.html#fls_3etom5uu8y4u", "checksum": "7d19f6d941207761fdd66c288b587bc5db2078e20c1090ffa7bd6c26d2c4b326"}, {"id": "fls_qls0wj8bmupz", "number": "6.1.2:15", "link": "expressions.html#fls_qls0wj8bmupz", "checksum": "d85083a7c7efbf6c5f2f30ff3b383e34fb721f2a53627e94a48aa095adc01022"}, {"id": "fls_b5fraqx07wuo", "number": "6.1.2:16", "link": "expressions.html#fls_b5fraqx07wuo", "checksum": "b02deabfb27be189c179e72fcc8ef208927e305f0509bbabd1b39b64224750d8"}, {"id": "fls_6g7c1kjrmfnr", "number": "6.1.2:17", "link": "expressions.html#fls_6g7c1kjrmfnr", "checksum": "5c6751a8315b541c35cced5cf85aa22ae15161a094f06a99ef59d69f0278d0f3"}, {"id": "fls_rpapnm3afan8", "number": "6.1.2:18", "link": "expressions.html#fls_rpapnm3afan8", "checksum": "e27dbc7a5cfa4584c075296125becf0c47bf01b4556f34e99a14431c2f5c206a"}, {"id": "fls_fc62yaqyjpl2", "number": "6.1.2:19", "link": "expressions.html#fls_fc62yaqyjpl2", "checksum": "d78272015b933abc20846cd4159619480896126232de8bf6fbc87d628a93689f"}, {"id": "fls_kwg8a351vc7", "number": "6.1.2:20", "link": "expressions.html#fls_kwg8a351vc7", "checksum": "ff0b985b3bdb5f39343fb2dbc69819ec1977bca9aa11748b2017b231464e073b"}, {"id": "fls_7mjv1xd45qr4", "number": "6.1.2:21", "link": "expressions.html#fls_7mjv1xd45qr4", "checksum": "4e17a33e1fba6baf81402a56c6561471e61546844fb7097dc554f10fa4929778"}, {"id": "fls_g7hoyfqy9mu1", "number": "6.1.2:22", "link": "expressions.html#fls_g7hoyfqy9mu1", "checksum": "49717c7cdbf319feb99849ad9db98121620f7be8b82ffa9a612a31411b1408c8"}, {"id": "fls_br4g7qwfczig", "number": "6.1.2:23", "link": "expressions.html#fls_br4g7qwfczig", "checksum": "fa3aae99a5b64aab6689772966cab04c2b259d40ee747f5c6583f76fc3519dc1"}, {"id": "fls_w4lpq9bs8tsc", "number": "6.1.2:24", "link": "expressions.html#fls_w4lpq9bs8tsc", "checksum": "f88042b7a17f204fa49f503a68da4e3dd00eb96010156dc3e89ce7e65cf85a31"}, {"id": "fls_y1ezabo61nyk", "number": "6.1.2:25", "link": "expressions.html#fls_y1ezabo61nyk", "checksum": "18934c346329f7a9ea9765917175db6b45dc7c048013afe01459922d25a7bd62"}, {"id": "fls_6tb74n6lu0wf", "number": "6.1.2:26", "link": "expressions.html#fls_6tb74n6lu0wf", "checksum": "3c9b370271add7bae1fba3b37de85653bf0fe577b8baba3bb9fe79b98e753b42"}, {"id": "fls_axwrv7b3zt55", "number": "6.1.2:27", "link": "expressions.html#fls_axwrv7b3zt55", "checksum": "56d424ef413f593ce60c84181e8a5f83929d41553c626cb36562bd0ed5d561a9"}, {"id": "fls_3bucpdj828bq", "number": "6.1.2:28", "link": "expressions.html#fls_3bucpdj828bq", "checksum": "a769fb663d4c130101ac1256b738337cb674757045a4679d495dcbfd33b58fa4"}, {"id": "fls_hkbwa8xx2fwx", "number": "6.1.2:29", "link": "expressions.html#fls_hkbwa8xx2fwx", "checksum": "d753a742a21af7c6cfc9f1893ff4ee5b9a0ef089d0af76bc165411fb4c38b37e"}, {"id": "fls_fobs8ebt7dhc", "number": "6.1.2:30", "link": "expressions.html#fls_fobs8ebt7dhc", "checksum": "c6abd6f66925af9e73351029d0689a15fd2b794d279be4a54cb01ca1434cee76"}, {"id": "fls_dyo3o1h3keqr", "number": "6.1.2:31", "link": "expressions.html#fls_dyo3o1h3keqr", "checksum": "8fef4aa286d46e0b0767d45db83aa8d62ef879c4b31a258905d60aaa391524f6"}, {"id": "fls_e0a1e8ddph7", "number": "6.1.2:32", "link": "expressions.html#fls_e0a1e8ddph7", "checksum": "b6e03f526a8452468e623bed4ec289b78641df3140fae3d2647ea1d5baf04d09"}, {"id": "fls_zcuzhw7qkzkr", "number": "6.1.2:33", "link": "expressions.html#fls_zcuzhw7qkzkr", "checksum": "3bf0e02f2616b8c7222185ee3b336d41c1307df947f058084ce1eb330bdf1900"}, {"id": "fls_pbpzkfo1fgtz", "number": "6.1.2:34", "link": "expressions.html#fls_pbpzkfo1fgtz", "checksum": "a9b547b6bf662506793bdcbe453c85921749fe52183da9d7a851c9dcfe3fc529"}, {"id": "fls_qvofy4wkql0s", "number": "6.1.2:35", "link": "expressions.html#fls_qvofy4wkql0s", "checksum": "cfec980b14b64251c85de2818e75a873d7cb9465255ee4870a55303ac0a86589"}, {"id": "fls_3i7efddbsmn0", "number": "6.1.2:36", "link": "expressions.html#fls_3i7efddbsmn0", "checksum": "44aae2e4e8860762d2e9a8257badc2d3b4e15d99c8c1183112c63da5a4a97767"}, {"id": "fls_9mrrosm8jnn7", "number": "6.1.2:37", "link": "expressions.html#fls_9mrrosm8jnn7", "checksum": "77716dd5cd96ee41a8745441d48419c274fefbea836e7c91d66326bfc5a593f5"}, {"id": "fls_fmqar6o1bwqk", "number": "6.1.2:38", "link": "expressions.html#fls_fmqar6o1bwqk", "checksum": "c70336e37bd438cf7f23f90e11eed66a8b6c54cf7c17bb4e407c69e3e63f7f68"}, {"id": "fls_kjhma680hz3g", "number": "6.1.2:39", "link": "expressions.html#fls_kjhma680hz3g", "checksum": "3651a3d2d8aaca8d17e1fe47b3138585d5b28ed9e904f43961482867fdb88ff0"}, {"id": "fls_ljc6jq5ksbcs", "number": "6.1.2:40", "link": "expressions.html#fls_ljc6jq5ksbcs", "checksum": "515154f2ac48723da0d14f98872f3256c88d0f9d3194c4dbcb5268b9792c5c7d"}, {"id": "fls_3of516eo0kkx", "number": "6.1.2:41", "link": "expressions.html#fls_3of516eo0kkx", "checksum": "cc77160163ddf5f7888c6a059518c2ac68550018fad496be971cc878a9fc7936"}, {"id": "fls_yiks5bvojncc", "number": "6.1.2:42", "link": "expressions.html#fls_yiks5bvojncc", "checksum": "19eb90436a5d32615593180082eddd69ea6768b7d84fbfe7706f603d07efbd2a"}, {"id": "fls_66m2hwkju0vv", "number": "6.1.2:43", "link": "expressions.html#fls_66m2hwkju0vv", "checksum": "b9568c7650933529d82ec97933b47ca7758c6acc5913bb42e52d17cd9f27f32c"}, {"id": "fls_fsn32kmwg65u", "number": "6.1.2:44", "link": "expressions.html#fls_fsn32kmwg65u", "checksum": "0446046528dbd1e07766646b22eba2192eb014bf1364522b89a01dcd054f37a5"}, {"id": "fls_j6kffhbxdm7o", "number": "6.1.2:45", "link": "expressions.html#fls_j6kffhbxdm7o", "checksum": "16163ffa5149a61156b6fa9822bd38c1dda85cc76895b18e45f59a579c78df48"}, {"id": "fls_ib8p7dfwddx2", "number": "6.1.2:46", "link": "expressions.html#fls_ib8p7dfwddx2", "checksum": "8012748a5a9f0df6b5ac50d6cadfc2e260145894007b76e558e68866ec8c495e"}, {"id": "fls_ox6sgl9n43g2", "number": "6.1.2:47", "link": "expressions.html#fls_ox6sgl9n43g2", "checksum": "73287ec37c278d47149516ea285d4901af4095df9725ce4ef23d63d2a88baa16"}, {"id": "fls_od0h3v40kjp6", "number": "6.1.2:48", "link": "expressions.html#fls_od0h3v40kjp6", "checksum": "c0922b72177bb7936fb1812bef8b7f4c3c04e5def41c08c3744d6c40c83416e2"}, {"id": "fls_6sc556tz4oxd", "number": "6.1.2:49", "link": "expressions.html#fls_6sc556tz4oxd", "checksum": "f1e397dc12ceac4f862c1b38ab023057914016448490fbc8103227d260b67421"}, {"id": "fls_b1vfpvsdv38", "number": "6.1.2:50", "link": "expressions.html#fls_b1vfpvsdv38", "checksum": "ab7bcb73bcdab153eda299904b6530b93d546941dc2a9f1fe469c71a5d9164d0"}, {"id": "fls_b46nyamfqxdu", "number": "6.1.2:51", "link": "expressions.html#fls_b46nyamfqxdu", "checksum": "cd483894f0b24cca762db3e942673bbc3f69157bd4471bcabd6ef6bebac9928d"}, {"id": "fls_ms9vey2wymqp", "number": "6.1.2:52", "link": "expressions.html#fls_ms9vey2wymqp", "checksum": "b33fd7caed2c7f25c3d1ea22886e9ff2581064e5bbf75546c0c060ce623c25f1"}, {"id": "fls_tg0kya5125jt", "number": "6.1.2:53", "link": "expressions.html#fls_tg0kya5125jt", "checksum": "49624995c2fe8bb8f83498d1cc6cef80c8e2621f8098235179ed89c68ecc1eac"}], "informational": false}, {"id": "fls_zjoamsr3dbqk", "number": "6.1.3", "title": "Diverging Expressions", "link": "expressions.html#diverging-expressions", "paragraphs": [{"id": "fls_oth9vftcb9l4", "number": "6.1.3:1", "link": "expressions.html#fls_oth9vftcb9l4", "checksum": "5060238ed0359d5cf017fd54608baba39f7484a5c262c3567c973dab5a3b2401"}, {"id": "fls_cmbvodjmjzi7", "number": "6.1.3:2", "link": "expressions.html#fls_cmbvodjmjzi7", "checksum": "8421661fce97e956eb513ec4438a85672f6b2b9dd4c22ec09b6da1eb67e42ce7"}, {"id": "fls_xsogdiizysp1", "number": "6.1.3:3", "link": "expressions.html#fls_xsogdiizysp1", "checksum": "2be99cad76924c6697893416fcc29c4e016f80d67774faeb2db12c941e785f24"}, {"id": "fls_xqxdhziqgwf5", "number": "6.1.3:4", "link": "expressions.html#fls_xqxdhziqgwf5", "checksum": "025d4b330cba16ffba6c33fa8eebe317dc0aa2fa9762781ccf41fa3de3e209b9"}, {"id": "fls_fu91m6dcb0ip", "number": "6.1.3:5", "link": "expressions.html#fls_fu91m6dcb0ip", "checksum": "fcf7505ef34f3b2536bb1c62facac6e82b7560f993f5a172a1e20eac4e552fce"}, {"id": "fls_4wdpahhnwzab", "number": "6.1.3:6", "link": "expressions.html#fls_4wdpahhnwzab", "checksum": "2b2c1f21c6c47a7039204424df6509ab2e234eb00cf8ac170d92dea1c46e7e2f"}, {"id": "fls_7ha5uthwjbqj", "number": "6.1.3:7", "link": "expressions.html#fls_7ha5uthwjbqj", "checksum": "8d84180501d511c73659c8b39c51cc56a9e0b643e8f8066b443d30b7a5c578a0"}, {"id": "fls_pddr8lk1gq0t", "number": "6.1.3:8", "link": "expressions.html#fls_pddr8lk1gq0t", "checksum": "0fa4999d15c5909e9c331090f84b483c3f1de9dd8b6bf2785c2a4b9be82ce8e8"}], "informational": false}, {"id": "fls_6ydylimiv553", "number": "6.1.4", "title": "Place Expressions", "link": "expressions.html#place-expressions", "paragraphs": [{"id": "fls_qbrcg3cl9td", "number": "6.1.4:1", "link": "expressions.html#fls_qbrcg3cl9td", "checksum": "5f85774d4af3b4503dd719ebb1c9c13936bb77a4d77eaa5539863456b86f6442"}, {"id": "fls_jpmhibm4omm7", "number": "6.1.4:2", "link": "expressions.html#fls_jpmhibm4omm7", "checksum": "bb6677a9dc0649570d5597a09439c6dcb77c13ccf031be9465c0b4c0b231f2e8"}, {"id": "fls_none1dykbn8c", "number": "6.1.4:3", "link": "expressions.html#fls_none1dykbn8c", "checksum": "5666d2be7d12a4b03c9634d49219ac173536d59607e2fb6b594996c27c1c276c"}, {"id": "fls_lj7x5dgbmg9i", "number": "6.1.4:4", "link": "expressions.html#fls_lj7x5dgbmg9i", "checksum": "f37f0d22ddefd16a571b8bd9a562198423f0af50d7c14eb572d13e5a97bf972a"}, {"id": "fls_anzidgx02lly", "number": "6.1.4:5", "link": "expressions.html#fls_anzidgx02lly", "checksum": "e936ad7c41ed0a523e0faf110179d618e501a9859e20165109df8884466958b8"}, {"id": "fls_ya05djl1d154", "number": "6.1.4:6", "link": "expressions.html#fls_ya05djl1d154", "checksum": "0e9c2d5b424df083445425b2eb9713bca7a87391b4a01ff7d5245b787dfbbb71"}, {"id": "fls_gv4m0de3omwk", "number": "6.1.4:7", "link": "expressions.html#fls_gv4m0de3omwk", "checksum": "1af57119939cf184ae0c7f698a5de9c73f8b5affe3969a6c6312a97c2ced8f8b"}, {"id": "fls_ku38h562vfyl", "number": "6.1.4:8", "link": "expressions.html#fls_ku38h562vfyl", "checksum": "a86fa18a8c5f28ca1d4fdcb6057bbc8fcb5f9f73e20f08da2a49ceb506f76453"}, {"id": "fls_1tq2o2huda9l", "number": "6.1.4:9", "link": "expressions.html#fls_1tq2o2huda9l", "checksum": "32ed377e5c9c2596f96a684dd90844ffdc229f264ed21a3808700ab4504da3ad"}, {"id": "fls_6b4rwkrc1ap6", "number": "6.1.4:10", "link": "expressions.html#fls_6b4rwkrc1ap6", "checksum": "77a556beee4c1ec72f5a1678b30fff2abca44b0814767dc0489a1636d387ab35"}, {"id": "fls_s4bhrpykzmm7", "number": "6.1.4:11", "link": "expressions.html#fls_s4bhrpykzmm7", "checksum": "3bcbb31dbf7a42ccd4882c4df20a73b8fe4169f3b44b0e93f75170ea5478cdb9"}, {"id": "fls_xm0gm2q27x2e", "number": "6.1.4:12", "link": "expressions.html#fls_xm0gm2q27x2e", "checksum": "0af74cc3c79b8880b899f2e3faa5630ff17845b08db731fcaca23547dff9d583"}, {"id": "fls_bt50fltfqcvn", "number": "6.1.4:13", "link": "expressions.html#fls_bt50fltfqcvn", "checksum": "25c0d061e2a3c9b25578a45ab2fb74a50fb9f07444e09ea9f8157c5cd42a04fd"}, {"id": "fls_sgfxp186gmvz", "number": "6.1.4:14", "link": "expressions.html#fls_sgfxp186gmvz", "checksum": "cfc1a8dc708b20eefb9c1ffdb6f76cfc6b927e7cb106c89f58857d627b7f671f"}, {"id": "fls_ilaqmj3hc5uv", "number": "6.1.4:15", "link": "expressions.html#fls_ilaqmj3hc5uv", "checksum": "b9e19a33b6f7298b9f07a4c4ae3dde602adf87fd2ac7151e3596eb02c4566734"}, {"id": "fls_m0gbw9myylv2", "number": "6.1.4:16", "link": "expressions.html#fls_m0gbw9myylv2", "checksum": "5ec103acbbe65af793d28ae454718aa627d30f80b637e1660d1dc5bad8480431"}, {"id": "fls_dcm3yr3y9y0a", "number": "6.1.4:17", "link": "expressions.html#fls_dcm3yr3y9y0a", "checksum": "9e93b8580cde2fd0c66a53470306bed82a53df0e551e80b90efd61ce4147e90a"}, {"id": "fls_cpemhztpkctx", "number": "6.1.4:18", "link": "expressions.html#fls_cpemhztpkctx", "checksum": "d09119cc5c2fcc6e8b84d570c685ead186c9f683703a7221ce13a35f660493f6"}, {"id": "fls_4vxi1ji93dxb", "number": "6.1.4:19", "link": "expressions.html#fls_4vxi1ji93dxb", "checksum": "fdcfcd99d144b775aad90f71eb24b6100e2e7479ea4f930e27ec176ad1bcf45e"}, {"id": "fls_fzsrdrhnndrd", "number": "6.1.4:20", "link": "expressions.html#fls_fzsrdrhnndrd", "checksum": "c48d7f31ca2fc7d1824b49aaabbadc6c96b2f1a67a8373d08b46e5ca9f66549e"}, {"id": "fls_zed5wjqvo6nf", "number": "6.1.4:21", "link": "expressions.html#fls_zed5wjqvo6nf", "checksum": "47d6c8696f4c95779f7fc9cabbb952ffabf2ee35fa15de6e5d50e136660c67c3"}, {"id": "fls_ufz9w5vyzkv3", "number": "6.1.4:22", "link": "expressions.html#fls_ufz9w5vyzkv3", "checksum": "c7859a194ef5acc89935304303c6e48602e3e96c193f66dc0e0c704f89eea83c"}, {"id": "fls_kxwizoh9wwk7", "number": "6.1.4:23", "link": "expressions.html#fls_kxwizoh9wwk7", "checksum": "7a97e95af16f54b01477dbe2da75f8a7b4f6e8c14800739cca2aadec4ded838e"}, {"id": "fls_ov9hd6oifazx", "number": "6.1.4:24", "link": "expressions.html#fls_ov9hd6oifazx", "checksum": "a93bb37b3b0ded48637fc647acbfee3216df9f6e4313a3c9c2e6310c44ca889a"}, {"id": "fls_nnginsh6zgmp", "number": "6.1.4:25", "link": "expressions.html#fls_nnginsh6zgmp", "checksum": "b22c92248f7691f65a628d02c08cf24a9047b02400d6a29c8b6dc20c64bee2f0"}, {"id": "fls_jlzlxihr4w2v", "number": "6.1.4:26", "link": "expressions.html#fls_jlzlxihr4w2v", "checksum": "ee945af2b118196e6ca9326841531db1d96dcd364df978b3110414f0deae444c"}, {"id": "fls_giz7w1g02jsg", "number": "6.1.4:27", "link": "expressions.html#fls_giz7w1g02jsg", "checksum": "f7df761607610d04510f2afe7be1961f85aa037b3df985ce6816b252eb21d7c1"}, {"id": "fls_5yxutlqoq3cc", "number": "6.1.4:28", "link": "expressions.html#fls_5yxutlqoq3cc", "checksum": "342c018f0de28ffea76b86b5ab53420bd7ad1e970b84e3fe2159000feb4bce6d"}, {"id": "fls_nman7mjvsqlm", "number": "6.1.4:29", "link": "expressions.html#fls_nman7mjvsqlm", "checksum": "6157d0f70d0f638550ee4030d5e0c903aedbf4b30498d294d3bc171091856b76"}, {"id": "fls_jbfzufdqg3mu", "number": "6.1.4:30", "link": "expressions.html#fls_jbfzufdqg3mu", "checksum": "2a98510245f19b2c170b5e631738582547bafb0cd7dbc85065c606d2c34501a2"}, {"id": "fls_wxgaowevt77u", "number": "6.1.4:31", "link": "expressions.html#fls_wxgaowevt77u", "checksum": "38f331a73b93c154c708a182d0ff821c2222cc48d99af70efa0b53dd5967dbcf"}, {"id": "fls_qytgkbhqr5ln", "number": "6.1.4:32", "link": "expressions.html#fls_qytgkbhqr5ln", "checksum": "2ba416a11b94658791140c4b85a8ba28c2ec4ef4a778b59038105208dfbcb8ee"}, {"id": "fls_5gy92rsi2mqm", "number": "6.1.4:33", "link": "expressions.html#fls_5gy92rsi2mqm", "checksum": "d3e2d2af5f02248e16a591d51f148029eccf722872db25063330ede8b6a8501e"}, {"id": "fls_u80htrnr2ebz", "number": "6.1.4:34", "link": "expressions.html#fls_u80htrnr2ebz", "checksum": "fe5533b1164a5ed44182fe95abf4c2f62bd09f82e7786433bf589bf505b65d95"}, {"id": "fls_o0feajus3jtu", "number": "6.1.4:35", "link": "expressions.html#fls_o0feajus3jtu", "checksum": "d4860293b247bd862ff7f52f19df94330203138d7f331ce7064449e737085b44"}, {"id": "fls_ffjx1d5dseo4", "number": "6.1.4:36", "link": "expressions.html#fls_ffjx1d5dseo4", "checksum": "ef216b4956c9c82c492eaf33aa42b180dc04003c5c54b572e706d022ec656b5a"}, {"id": "fls_9r7dopqf1nzl", "number": "6.1.4:37", "link": "expressions.html#fls_9r7dopqf1nzl", "checksum": "e37053a8b316b066e2adc833e9b61430341ce7681922450e1a6261795b2826e9"}, {"id": "fls_o76qxhyrrjpg", "number": "6.1.4:38", "link": "expressions.html#fls_o76qxhyrrjpg", "checksum": "b7fa266e959f034fb8027350cfea9ce01444695e7e515512581302d9c3f8cb54"}, {"id": "fls_ka5b87tkf8t6", "number": "6.1.4:39", "link": "expressions.html#fls_ka5b87tkf8t6", "checksum": "de4767a880c9c8d3022d26accad869d8eabeeab119835136fb0594d46405d621"}, {"id": "fls_brwv1zwu37e8", "number": "6.1.4:40", "link": "expressions.html#fls_brwv1zwu37e8", "checksum": "82d5e15e136abbd6e6ff175eff2bf1ae8a648a9eac9fc3e354e8fb962357eb0a"}, {"id": "fls_4axr4v0icdbp", "number": "6.1.4:41", "link": "expressions.html#fls_4axr4v0icdbp", "checksum": "7b686442be7876153393b5ff4396beffa63b880adc6f85d9ec57c64910ffdd94"}], "informational": false}, {"id": "fls_e7zgqroy2qxn", "number": "6.1.5", "title": "Value Expressions", "link": "expressions.html#value-expressions", "paragraphs": [{"id": "fls_7q4hrt6yfr9b", "number": "6.1.5:1", "link": "expressions.html#fls_7q4hrt6yfr9b", "checksum": "59657af5a3d7ea75e221dd8f57fc291073859b55dcc28ea21acc8b6ded645814"}, {"id": "fls_pb6xlp4uag37", "number": "6.1.5:2", "link": "expressions.html#fls_pb6xlp4uag37", "checksum": "cdb48fc283d2317f9e373c3e846c83ddc15b1e08c3586f226a9701b8fd1f6670"}, {"id": "fls_8uhfwqurbyqf", "number": "6.1.5:3", "link": "expressions.html#fls_8uhfwqurbyqf", "checksum": "654c72a974019f16a7138b882973ab8de2a0ae2d8dbfe9d9a5523ea10dd4f5f7"}], "informational": false}, {"id": "fls_h0dvogc64tfh", "number": "6.2", "title": "Literal Expressions", "link": "expressions.html#literal-expressions", "paragraphs": [{"id": "fls_rbwwczom3agt", "number": "6.2:1", "link": "expressions.html#fls_rbwwczom3agt", "checksum": "cbd02ee8c02288e5b249e04aebfe259f50767f82a89a762666b81d9d62a0691a"}, {"id": "fls_w30su9x4q13r", "number": "6.2:2", "link": "expressions.html#fls_w30su9x4q13r", "checksum": "041048152100f5969aed239f4cfbb726b0a5f11aafb03adcbd062c40bd808304"}, {"id": "fls_wdpbg5xzgmwu", "number": "6.2:3", "link": "expressions.html#fls_wdpbg5xzgmwu", "checksum": "fc4778b02fb2097b1b5ab97ad2bea3bf7f026dcae8ad89e91d752e34946cc487"}, {"id": "fls_g061yzws1m45", "number": "6.2:4", "link": "expressions.html#fls_g061yzws1m45", "checksum": "0f726bad76f37f734cf2a31bdddacf357fa8a90a916dbfc89bdded32705c2f67"}], "informational": false}, {"id": "fls_6l60b5hwnjbm", "number": "6.3", "title": "Path Expressions", "link": "expressions.html#path-expressions", "paragraphs": [{"id": "fls_gvanx4874ycy", "number": "6.3:1", "link": "expressions.html#fls_gvanx4874ycy", "checksum": "3b9e4cf4c144eada31afff6d82c75c28defe5281f0aaccd9aef03e1b77efc2c3"}, {"id": "fls_eokrcij9cuhv", "number": "6.3:2", "link": "expressions.html#fls_eokrcij9cuhv", "checksum": "024d54849ef873e36a69bf553b7f32c26c6e336777c9aec3ab1f8468de453518"}, {"id": "fls_gz67ju6l7uhn", "number": "6.3:3", "link": "expressions.html#fls_gz67ju6l7uhn", "checksum": "c64594a113e6bb7fb595e357b4f5a5aa111db5f89f1b74d5c164010aa6394305"}, {"id": "fls_cjywisyiyti6", "number": "6.3:4", "link": "expressions.html#fls_cjywisyiyti6", "checksum": "7ef7642678c5437966b93e2c64abcdaa84e74185e3ce5c93de7adf4963eef270"}, {"id": "fls_5ifai8nkp5ek", "number": "6.3:5", "link": "expressions.html#fls_5ifai8nkp5ek", "checksum": "e6423c718d6764768bee151401e902bf393bc0081d4828bf6d0736c363465b79"}], "informational": false}, {"id": "fls_hndm19t57wby", "number": "6.4", "title": "Block Expressions", "link": "expressions.html#block-expressions", "paragraphs": [{"id": "fls_nf65p0l0v0gr", "number": "6.4:1", "link": "expressions.html#fls_nf65p0l0v0gr", "checksum": "9314640d69dac45b9a4f9f852d9060291e437f265f71d262834f32fea77d26b2"}, {"id": "fls_tn3hj7k2lliu", "number": "6.4:2", "link": "expressions.html#fls_tn3hj7k2lliu", "checksum": "d02030de67fa90b6299b156dfe9325835e08dec1afc82ac9e50e7b416ed4edd3"}, {"id": "fls_dfcne8ywevle", "number": "6.4:3", "link": "expressions.html#fls_dfcne8ywevle", "checksum": "8fa73f746bf6406507f179efa09d7e1416bd0bcbc261553178a1ed7ce5ffdbb7"}, {"id": "fls_u4gj2lnkq9ub", "number": "6.4:4", "link": "expressions.html#fls_u4gj2lnkq9ub", "checksum": "d11f516c2b53db9e1ea73b2de1937f17529e46f2a7d101526fa2822cfb01be08"}, {"id": "fls_lteygvwdthxe", "number": "6.4:5", "link": "expressions.html#fls_lteygvwdthxe", "checksum": "8a18cecaca838f1279baae3bd695a2ebc5f105487016b3277ec32fd2a592f0d5"}, {"id": "fls_97v4fnekrrxi", "number": "6.4:6", "link": "expressions.html#fls_97v4fnekrrxi", "checksum": "e163c464dcda586fa66030eccf1b1ba5b9bf52828e2075b9d81b0a6f3830b820"}, {"id": "fls_ob76y2ymdd27", "number": "6.4:7", "link": "expressions.html#fls_ob76y2ymdd27", "checksum": "74d548e2b7ae37d2f34907672a0ac128ac039d79985342fcb20b08a0cb5a21cb"}, {"id": "fls_u0avbm147nyh", "number": "6.4:8", "link": "expressions.html#fls_u0avbm147nyh", "checksum": "01f722be1236235666def2aec047d3ecb170592333dc2d5b19883b2db2863ef9"}, {"id": "fls_1hzup0sf8l7l", "number": "6.4:9", "link": "expressions.html#fls_1hzup0sf8l7l", "checksum": "275a80e2e27ffeee61eb71c00cd5ceba13337bf4b922fdd28a3ed2dcabda48e8"}, {"id": "fls_kkzpkvj902cw", "number": "6.4:10", "link": "expressions.html#fls_kkzpkvj902cw", "checksum": "27aeb45eea02cc67355b6940d80e6dcce1ac5dc5d0ce6a30e2afb8c7841c56b9"}, {"id": "fls_9nmssjseq3jt", "number": "6.4:11", "link": "expressions.html#fls_9nmssjseq3jt", "checksum": "86fa0b781562a13fcd5b9e6593f0fb31283920444492ea88757ae43e454a4ce6"}, {"id": "fls_a3ulnvyc1ut", "number": "6.4:12", "link": "expressions.html#fls_a3ulnvyc1ut", "checksum": "68326cb71c2631710e4504a539081fbf264f5d77b8ebcf7736ad0be9bcab5ea1"}, {"id": "fls_elcl73psruxw", "number": "6.4:13", "link": "expressions.html#fls_elcl73psruxw", "checksum": "33e644aa682d5b680cc8538c20d96974c4692ef33e1f73e39d724aeecab9eb00"}, {"id": "fls_13b5n127rj92", "number": "6.4:14", "link": "expressions.html#fls_13b5n127rj92", "checksum": "b8af4c854ae00c19f2c146e71416b772fb3d2d2312d68d2d6594d1a7889ad3bb"}, {"id": "fls_nzdpw59plr2g", "number": "6.4:15", "link": "expressions.html#fls_nzdpw59plr2g", "checksum": "02bc7e48facf23ffe3b4d2fd838ab6238ade7b0d00a1171c7f4850f71deb4876"}], "informational": false}, {"id": "fls_aadan19t5006", "number": "6.4.1", "title": "Async Blocks", "link": "expressions.html#async-blocks", "paragraphs": [{"id": "fls_hhidi5ukxo", "number": "6.4.1:1", "link": "expressions.html#fls_hhidi5ukxo", "checksum": "1d4d9b99c7ff55d188fc8016b22f47344c4c3445fe35e679b333494f12734d49"}, {"id": "fls_oisws5qykedi", "number": "6.4.1:2", "link": "expressions.html#fls_oisws5qykedi", "checksum": "d029e4b409fa40ab8cb0723ee7541138703744c5d7f7e56f7416053cab3d75eb"}, {"id": "fls_tzclkasinpoq", "number": "6.4.1:3", "link": "expressions.html#fls_tzclkasinpoq", "checksum": "db276e68d194ccc4d62df06b66ac0a0795f660ac571e227dcc8f8ddecfbcf258"}, {"id": "fls_ncd0wkgtldem", "number": "6.4.1:4", "link": "expressions.html#fls_ncd0wkgtldem", "checksum": "c778823466dda65727a8a0d7f36aa37564e056f58967af9cb158c4a8dfcfb520"}, {"id": "fls_pvnofoomgwl5", "number": "6.4.1:5", "link": "expressions.html#fls_pvnofoomgwl5", "checksum": "a57114810d90bea4121cf2db0f3a6c62be0cdd60a8c6825d1654343e98e4219d"}, {"id": "fls_9ghp5yet75y6", "number": "6.4.1:6", "link": "expressions.html#fls_9ghp5yet75y6", "checksum": "b4ca6e91fd6bb90201e1e60835720f1c24be9a3661057d51f74690cfb994103c"}], "informational": false}, {"id": "fls_0ybsr1heo7wv", "number": "6.4.2", "title": "Named Blocks", "link": "expressions.html#named-blocks", "paragraphs": [{"id": "fls_j8wjnfcsayrs", "number": "6.4.2:1", "link": "expressions.html#fls_j8wjnfcsayrs", "checksum": "e1abf2626df40e58da556bcbf1090df55fad0782419d41dbae13e0d9560acd2e"}, {"id": "fls_b4nbv2jfzluy", "number": "6.4.2:2", "link": "expressions.html#fls_b4nbv2jfzluy", "checksum": "55757b88b705045f14beab3a4d65b0322a4cdf93f6af7899259f023fbbbf19d7"}, {"id": "fls_yxvauuyapkaq", "number": "6.4.2:3", "link": "expressions.html#fls_yxvauuyapkaq", "checksum": "6b86f7170a1e3af586e115208768566779108a41d3159dfa073df5621234f93d"}], "informational": false}, {"id": "fls_8wnyln2nmg4y", "number": "6.4.3", "title": "Unsafe Blocks", "link": "expressions.html#unsafe-blocks", "paragraphs": [{"id": "fls_2az5huhcxzzy", "number": "6.4.3:1", "link": "expressions.html#fls_2az5huhcxzzy", "checksum": "a7432b290848cdb326249e41d85385bac2659f0c92a8910f5c4b99d0265b5698"}, {"id": "fls_5ucvvja4dzoc", "number": "6.4.3:2", "link": "expressions.html#fls_5ucvvja4dzoc", "checksum": "7138ff944bcb923505b9d2fa4a30aa458818aa139fb4984e581b3596335e20d6"}, {"id": "fls_j3mmg317q442", "number": "6.4.3:3", "link": "expressions.html#fls_j3mmg317q442", "checksum": "030ea8f4788a3fe7352fd7cd5cae6b11246051da2ac11503021c46b689a6efab"}, {"id": "fls_nygurv3x3wq6", "number": "6.4.3:4", "link": "expressions.html#fls_nygurv3x3wq6", "checksum": "dd0d4a61f5776a3375247b226efcfb5fa58dfe453c3e8f8f2ddea7335c79fce1"}, {"id": "fls_pv5gcy3tbjwo", "number": "6.4.3:5", "link": "expressions.html#fls_pv5gcy3tbjwo", "checksum": "b525933c45b15659e45290ea33556f571313cd311572db7e944dab18d1eddf97"}], "informational": false}, {"id": "fls_izdv9i4spokw", "number": "6.5", "title": "Operator Expressions", "link": "expressions.html#operator-expressions", "paragraphs": [{"id": "fls_ursc5ynymoy", "number": "6.5:1", "link": "expressions.html#fls_ursc5ynymoy", "checksum": "d4e26ca3cbd644e6b9a5b86d239f6b0e1a62f77aa1305bfb532477b731cfad2f"}], "informational": false}, {"id": "fls_qztk0bkju9u", "number": "6.5.1", "title": "Borrow Expression", "link": "expressions.html#borrow-expression", "paragraphs": [{"id": "fls_nnqfkl228hjx", "number": "6.5.1:1", "link": "expressions.html#fls_nnqfkl228hjx", "checksum": "802926b1cac49b521ff9adcfc0541ffec43dd504d15b57d8293b9d13b99543e9"}, {"id": "fls_r7ix8webgqlm", "number": "6.5.1:2", "link": "expressions.html#fls_r7ix8webgqlm", "checksum": "3d9a28b791947b2bac75ce56a2454e2a1fc73b1d6b40fd5902cc3db89b1833cc"}, {"id": "fls_50j167r4v61b", "number": "6.5.1:3", "link": "expressions.html#fls_50j167r4v61b", "checksum": "261951477abf29bed5f7eb4f51a58054ed4ae09b35694119c21e87ee4065a98d"}, {"id": "fls_ya77l2zgtilp", "number": "6.5.1:4", "link": "expressions.html#fls_ya77l2zgtilp", "checksum": "d573fb1d9d84cbc07730e23f6e479b1d62a8155fc4b7e96206a849226058f1b4"}, {"id": "fls_chr03xll75d", "number": "6.5.1:5", "link": "expressions.html#fls_chr03xll75d", "checksum": "1b2c053da332d1395a04b7eee7001d9e9cf287d2680ad54e81f6041f88acb954"}, {"id": "fls_5b2x5ri2w54r", "number": "6.5.1:6", "link": "expressions.html#fls_5b2x5ri2w54r", "checksum": "2792319b815169dc152f1374d64261936a99a61506e3b030876c5e0a4cdb807b"}, {"id": "fls_agl09ia869rk", "number": "6.5.1:7", "link": "expressions.html#fls_agl09ia869rk", "checksum": "bbb012f406bbc016697a416877c67f8a8e7762859e71fe80b3772bbe6941a5ec"}, {"id": "fls_8cvmee9bzs40", "number": "6.5.1:8", "link": "expressions.html#fls_8cvmee9bzs40", "checksum": "86055e47eba60af7a20a12a96e925c0aa0241aac95b1dbde209af8bb11ccbffc"}, {"id": "fls_luapbicdldtt", "number": "6.5.1:9", "link": "expressions.html#fls_luapbicdldtt", "checksum": "7fea9e09ac35ba97ec0aa1b1d6b6f78b5e456d7acca65d756b2ee58a2e64fdc9"}, {"id": "fls_2jd0mgw4zja4", "number": "6.5.1:10", "link": "expressions.html#fls_2jd0mgw4zja4", "checksum": "6810afff37cb3b81e7cd6abfaa7a09a39cfbdebe5848533ec338be7f0901bc2b"}, {"id": "fls_350qejoq9i23", "number": "6.5.1:11", "link": "expressions.html#fls_350qejoq9i23", "checksum": "1cc271961169e83839a3e42a346dc67fba7f62ac7404861842da4b59e53a7e2d"}], "informational": false}, {"id": "fls_5cm4gkt55hjh", "number": "6.5.2", "title": "Dereference Expression", "link": "expressions.html#dereference-expression", "paragraphs": [{"id": "fls_f6wktzofzdn1", "number": "6.5.2:1", "link": "expressions.html#fls_f6wktzofzdn1", "checksum": "2ca9af25277c175fa9ab6b0b74a4ba46f5038fd562befbd363a40be6ba27d2dc"}, {"id": "fls_aeh5pzpcjveq", "number": "6.5.2:2", "link": "expressions.html#fls_aeh5pzpcjveq", "checksum": "9a5b1f7e7d7d38a721fe16a98b61e35a54dcc7c07d9828ea2e2248bef356dd07"}, {"id": "fls_9cc0ml2sru6x", "number": "6.5.2:3", "link": "expressions.html#fls_9cc0ml2sru6x", "checksum": "b7a8de951a21c65d72d8a668a0e505a25388b7e5a5e2e183d7b9f9e04269c213"}, {"id": "fls_8i4jzksxlrw0", "number": "6.5.2:4", "link": "expressions.html#fls_8i4jzksxlrw0", "checksum": "0340895fd04ae584ac9b90244a3650e4389de5b440519fcfbd43e90c2bf72e0f"}, {"id": "fls_d68ddlse4zp", "number": "6.5.2:5", "link": "expressions.html#fls_d68ddlse4zp", "checksum": "46cd3d16ac76ee2960c5568740cf587ad2c6ceed1218114e80c3a9bb47df7a63"}, {"id": "fls_g73vguanbs1x", "number": "6.5.2:6", "link": "expressions.html#fls_g73vguanbs1x", "checksum": "82ab49fac0f518382455ae1ff105c18fc25eac3f8ac00ffc53deff57a0b75dcc"}, {"id": "fls_8ibfqxtnahzx", "number": "6.5.2:7", "link": "expressions.html#fls_8ibfqxtnahzx", "checksum": "bdc85222a07f89578d68b14e06ee8d7f4e4cd516e7c70ceef67645f2d88b625b"}, {"id": "fls_7e7tka4f2f1a", "number": "6.5.2:8", "link": "expressions.html#fls_7e7tka4f2f1a", "checksum": "4b76624fefafbe89f67f9634f8671e9768189ba2be891749d2cae7f88061857f"}, {"id": "fls_y9bc691kkh6v", "number": "6.5.2:9", "link": "expressions.html#fls_y9bc691kkh6v", "checksum": "1f706d90689273d6cd3ac4319f378aef1bf50f62e07e0596cca8a78f8ef5e23f"}, {"id": "fls_gw49nukfveib", "number": "6.5.2:10", "link": "expressions.html#fls_gw49nukfveib", "checksum": "a7e8224d319471b493644e345b6551b79a0646cd520f3e10b8edf2bfec6a1f84"}, {"id": "fls_jjf3sz9ddfhy", "number": "6.5.2:11", "link": "expressions.html#fls_jjf3sz9ddfhy", "checksum": "5bd3c5f7bd491a7f42f8c2da78d2064ae8679d448dc019897996d49374b0e175"}, {"id": "fls_fyend8kkpqq4", "number": "6.5.2:12", "link": "expressions.html#fls_fyend8kkpqq4", "checksum": "a1370288ab9df6143029b28cc57c082c16176e3bc260e846bb35545f9fe1d8d5"}, {"id": "fls_72bpdsxxbgeq", "number": "6.5.2:13", "link": "expressions.html#fls_72bpdsxxbgeq", "checksum": "b22770ba76b69e3248df639840e98bc59ca865e515da69cc327b84d83d318b43"}, {"id": "fls_9wgldua1u8yt", "number": "6.5.2:14", "link": "expressions.html#fls_9wgldua1u8yt", "checksum": "1082cd3a0c4e2cab05c42e2cf9fcd73902c976d592285073adbf4663ec94947a"}, {"id": "fls_9ifaterm8nop", "number": "6.5.2:15", "link": "expressions.html#fls_9ifaterm8nop", "checksum": "e040c546fefcc0449ac185ee78ce0253f8a422a4152178bf19425f39082890c7"}], "informational": false}, {"id": "fls_pocsh1neugpc", "number": "6.5.3", "title": "Error Propagation Expression", "link": "expressions.html#error-propagation-expression", "paragraphs": [{"id": "fls_8q59wbumrt5s", "number": "6.5.3:1", "link": "expressions.html#fls_8q59wbumrt5s", "checksum": "23b7bdb3a6bc1804b5be08868bde733e2b7a97ae0804d7cbc06aea2b59fd6e1d"}, {"id": "fls_mq2h4seoxah", "number": "6.5.3:2", "link": "expressions.html#fls_mq2h4seoxah", "checksum": "c321eada04f83e7afc3cece805698fd21bfa268dd8753424a0c7a6659cf9987d"}, {"id": "fls_ab4vhq4nwn7f", "number": "6.5.3:3", "link": "expressions.html#fls_ab4vhq4nwn7f", "checksum": "4376b53a0608338ed35c699ced660ca17be38885f5a09a0ced75087fa8c069a9"}, {"id": "fls_z4zikxy2b1em", "number": "6.5.3:4", "link": "expressions.html#fls_z4zikxy2b1em", "checksum": "20839942bb00d91e6bb509c17f8e66b69b91f16691c9ab64b82c867f3ae550ff"}, {"id": "fls_a09614kgsspt", "number": "6.5.3:5", "link": "expressions.html#fls_a09614kgsspt", "checksum": "a7e8462f6f54586f7016c7be8dece9195cc5ffddcb493c00d9c08dcb1947b255"}, {"id": "fls_8df018q7y6g", "number": "6.5.3:6", "link": "expressions.html#fls_8df018q7y6g", "checksum": "f98b5452ecf7b2c43aecf121ed351e093743b91ca044e66b807228b56f80051e"}, {"id": "fls_alk4qvfprnvy", "number": "6.5.3:7", "link": "expressions.html#fls_alk4qvfprnvy", "checksum": "9694b3fa6f2fe93dc54f3037b9f53322423ad65d56ae4f6fc00870750dcb0919"}, {"id": "fls_1nnhjcgy8kdh", "number": "6.5.3:8", "link": "expressions.html#fls_1nnhjcgy8kdh", "checksum": "c3d4fd6b18a382defd7363f2c15d2f5d8517d65814a943df98884ccd5012b7e8"}], "informational": false}, {"id": "fls_wrecura8u5ar", "number": "6.5.4", "title": "Negation Expression", "link": "expressions.html#negation-expression", "paragraphs": [{"id": "fls_pfa81kv2mru8", "number": "6.5.4:1", "link": "expressions.html#fls_pfa81kv2mru8", "checksum": "af3d9baa2e989c7389736af89273f065db34e0a05d834471606dd19b2928db1d"}, {"id": "fls_plcut8vzdwox", "number": "6.5.4:2", "link": "expressions.html#fls_plcut8vzdwox", "checksum": "4f80e3b87fba67c8d18e93636623e678e1374f94eca9dc69a5534fae37565c34"}, {"id": "fls_ohu0kljfexd3", "number": "6.5.4:3", "link": "expressions.html#fls_ohu0kljfexd3", "checksum": "40bf9e05f58749baa5c051ffb2c5e5f8305e58040cd7962de9ad7e669a433737"}, {"id": "fls_ghqvj8q71o97", "number": "6.5.4:4", "link": "expressions.html#fls_ghqvj8q71o97", "checksum": "c83826e3c7c0a48c572c71ec116e3678b134a80964cb0ded4dee83772bf37e4a"}, {"id": "fls_3m4mgqnzqhri", "number": "6.5.4:5", "link": "expressions.html#fls_3m4mgqnzqhri", "checksum": "f58980cc43c3a695e066d1fb882e84d2936c9fc0a9199a672a18e2c278af8165"}, {"id": "fls_u7gzm6n75rzm", "number": "6.5.4:6", "link": "expressions.html#fls_u7gzm6n75rzm", "checksum": "b610ac74d0d701146031a0ac67bb95dd11a032f059a4c2c7e7b2fd03bc2dd5d1"}, {"id": "fls_9rmq7iaf092d", "number": "6.5.4:7", "link": "expressions.html#fls_9rmq7iaf092d", "checksum": "afd2c64f1c23556dffbaa7b63b76751e5b52d1c9ea207d1c640cdec6d97bbd57"}, {"id": "fls_yzt6pcsvj3a", "number": "6.5.4:8", "link": "expressions.html#fls_yzt6pcsvj3a", "checksum": "e14bc33ac51819c14cf0968eead2fd2eb5cb0c7027e5b0b9bcf7ce69add7edbb"}, {"id": "fls_8tgxtprtifrr", "number": "6.5.4:9", "link": "expressions.html#fls_8tgxtprtifrr", "checksum": "f63fca54c6f85459e84fdb4b1ce37d60655697a990bf2eae4b9bea18af1a3f15"}, {"id": "fls_rfflt33a5rsz", "number": "6.5.4:10", "link": "expressions.html#fls_rfflt33a5rsz", "checksum": "b3e235b910132fd26dffacdb2bad28a792618698a524bd1dd1a6be6065711fa2"}, {"id": "fls_h7pil1wz8y2t", "number": "6.5.4:11", "link": "expressions.html#fls_h7pil1wz8y2t", "checksum": "2c69bf1f447be7c6df6d51e2133843f0d576ab8a81ceb6e4f855ee26ff691a2a"}, {"id": "fls_yfk3pghzuo3x", "number": "6.5.4:12", "link": "expressions.html#fls_yfk3pghzuo3x", "checksum": "caaeeebd8c8b53c85a4aad7b3c42754cdc3a758b53183433bb57e22937db33f5"}, {"id": "fls_dcntglq2hrzb", "number": "6.5.4:13", "link": "expressions.html#fls_dcntglq2hrzb", "checksum": "a9d1fe3dff0cedd21947b255165dadfcf588c30c40a43c6e6ba0c3ec8e196f23"}, {"id": "fls_sxlwuits62sn", "number": "6.5.4:14", "link": "expressions.html#fls_sxlwuits62sn", "checksum": "6904a946fe2693b6f425ca86a92fede53c0fe6cecc8598127afffce5d7e62417"}, {"id": "fls_gn3dnuxm2h8m", "number": "6.5.4:15", "link": "expressions.html#fls_gn3dnuxm2h8m", "checksum": "aa3cfae510c0f630768b3fdad3056728d6d46645a5e5bc33ed5aae965d9e8029"}, {"id": "fls_tsou6yz4mfte", "number": "6.5.4:16", "link": "expressions.html#fls_tsou6yz4mfte", "checksum": "ff435742ce6e2e0ff8240946adf104bd9fcb520098854aa859d04c41ea02d3c0"}, {"id": "fls_zdfgqky85r1f", "number": "6.5.4:17", "link": "expressions.html#fls_zdfgqky85r1f", "checksum": "4bcd968eda46af59fcb1ea1f55864281f8b0cde92d38561595d95b4e9ac3dd07"}, {"id": "fls_cutpacfcghqs", "number": "6.5.4:18", "link": "expressions.html#fls_cutpacfcghqs", "checksum": "edfa0f8419b3a73e3ff24890c87fd1fd92c6dc6d8818c3fcce02ab05b6c8c1ab"}, {"id": "fls_b2ekgwajhfkd", "number": "6.5.4:19", "link": "expressions.html#fls_b2ekgwajhfkd", "checksum": "c8effecc440dcf91f96f42e0f04584a5610c1561c24791e2c23b26be12ab80d9"}, {"id": "fls_uldh10k77sng", "number": "6.5.4:20", "link": "expressions.html#fls_uldh10k77sng", "checksum": "8220fff5ef4bb72a0a7dc8f99cfe17f5e5aad6d75e146b2f33ed793b920e580c"}, {"id": "fls_uo6vv2yf8usx", "number": "6.5.4:21", "link": "expressions.html#fls_uo6vv2yf8usx", "checksum": "a643ba42ae84b70ad7aa7f9e7f43587505202b559c0101e5a40a6823d243e69f"}, {"id": "fls_hbrg0d98jak5", "number": "6.5.4:22", "link": "expressions.html#fls_hbrg0d98jak5", "checksum": "7de9ba1051942b5d4a885fe293560881297b7f87eb22ce3a2900d5c4dddb0326"}, {"id": "fls_kqtr9c3jorvg", "number": "6.5.4:23", "link": "expressions.html#fls_kqtr9c3jorvg", "checksum": "5b41d324bf22e4bf196369e2e07e6371340536763b0d1ba7370c3b9ce1e1a3a4"}], "informational": false}, {"id": "fls_1k9mkv7rbezi", "number": "6.5.5", "title": "Arithmetic Expressions", "link": "expressions.html#arithmetic-expressions", "paragraphs": [{"id": "fls_asibqpe3z95h", "number": "6.5.5:1", "link": "expressions.html#fls_asibqpe3z95h", "checksum": "b0a840a217c602a32cf2e1de752852f1c490c0319cf7abad57d81b59e98690c6"}, {"id": "fls_kr8opj3c7uvb", "number": "6.5.5:2", "link": "expressions.html#fls_kr8opj3c7uvb", "checksum": "7d12112b7a06954bb102320e6b09a084143173d1e444b53abae9c5fccccf151a"}, {"id": "fls_8imzo7agyx0k", "number": "6.5.5:3", "link": "expressions.html#fls_8imzo7agyx0k", "checksum": "46e89deb7d936eb2f027aa97f89cfc72b95b5306f81da17435cd5da27b51a05d"}, {"id": "fls_vk17mfv47wk9", "number": "6.5.5:4", "link": "expressions.html#fls_vk17mfv47wk9", "checksum": "088bf6586c416b8d73b9bfa95d095905a510685c6833c5e231abb1553f25ba1f"}, {"id": "fls_ryzhdpxgm7ii", "number": "6.5.5:5", "link": "expressions.html#fls_ryzhdpxgm7ii", "checksum": "5138acfb60759a1f7d1612cce1be84b6ac9130f47b5c8d8d88bc1f7fa0699d8c"}, {"id": "fls_dstca76y08ge", "number": "6.5.5:6", "link": "expressions.html#fls_dstca76y08ge", "checksum": "c6aae217015f2015f44b8e8dd7508277c0d50120b59d841ff0bde78814a6b441"}, {"id": "fls_f1puss9t4btz", "number": "6.5.5:7", "link": "expressions.html#fls_f1puss9t4btz", "checksum": "c84f922867411ee27c2da0f8d55a04f3f4d18514100b2ddc009d42f43f232702"}, {"id": "fls_5rdrkvspw57z", "number": "6.5.5:8", "link": "expressions.html#fls_5rdrkvspw57z", "checksum": "ff004ef562c5a5b41f9f7107ffdbbeaec5b9a4f9e5dbfae68f63162161d2e595"}, {"id": "fls_thyq4h55mx55", "number": "6.5.5:9", "link": "expressions.html#fls_thyq4h55mx55", "checksum": "9a473e780a8fde1608816f5ffbb7b41a753411ca82e0752b8963a1997ab35638"}, {"id": "fls_kf41bphvlse3", "number": "6.5.5:10", "link": "expressions.html#fls_kf41bphvlse3", "checksum": "f9820d8865637e75d0948c7fc41784afa25e79d0df7479395cdc2e53e968549d"}, {"id": "fls_hrml95g2txcj", "number": "6.5.5:11", "link": "expressions.html#fls_hrml95g2txcj", "checksum": "2b94a36c8d16c7f222b29a99dbbaca845c851d263d6323bb9ae6717955d14294"}, {"id": "fls_ittf4yggk7do", "number": "6.5.5:12", "link": "expressions.html#fls_ittf4yggk7do", "checksum": "3bc776fd70017a15281d825de3a03c484a509ed361cfb8e529f3a23268837e0b"}, {"id": "fls_ylqm6wucq2sw", "number": "6.5.5:13", "link": "expressions.html#fls_ylqm6wucq2sw", "checksum": "c8ccb208ad9374a8fa9ac34680b8e8ce1fc4e958169b4470ef74cc9cd4116772"}, {"id": "fls_3de9ulyzuoa", "number": "6.5.5:14", "link": "expressions.html#fls_3de9ulyzuoa", "checksum": "40ba6bc4bf5bc64bbf7bdfb7c5bb2be20c50a808893a34a661e9d1453659455f"}, {"id": "fls_8fbhreyynhid", "number": "6.5.5:15", "link": "expressions.html#fls_8fbhreyynhid", "checksum": "3b601294fdc29f47f2d5ea41a53e52158852777635e4e18a61e75b50b4de6e21"}, {"id": "fls_u3jwnrqun5kl", "number": "6.5.5:16", "link": "expressions.html#fls_u3jwnrqun5kl", "checksum": "d5668e3304bc1aac1a9ad7af00aa04e0bab58efad11cd1aee9b877a2ef767129"}, {"id": "fls_2ude3wrxji2p", "number": "6.5.5:17", "link": "expressions.html#fls_2ude3wrxji2p", "checksum": "a801683b49252019ce410e48c11333d669a2e57b9117c6704ffc4f631d98c802"}, {"id": "fls_aalxhbvu8kdi", "number": "6.5.5:18", "link": "expressions.html#fls_aalxhbvu8kdi", "checksum": "bc454d1b317c9bc88ad24d821d1e58f9bb10101e1f3e45c7a547cbf1897358a5"}, {"id": "fls_fjcv1nm8tlgf", "number": "6.5.5:19", "link": "expressions.html#fls_fjcv1nm8tlgf", "checksum": "11788f05059c59c58cc708654df290bdcff239b6a6b7a3b84598208a77c99b92"}, {"id": "fls_9x2i1zlsm364", "number": "6.5.5:20", "link": "expressions.html#fls_9x2i1zlsm364", "checksum": "eca372870d1bb0bc4b820ac177e1b3b7998233a674e7b8397e72d4be23ab0170"}, {"id": "fls_v8vekngd27sz", "number": "6.5.5:21", "link": "expressions.html#fls_v8vekngd27sz", "checksum": "af587b33a56e6a0002edb893987596f76450639deab12d69c665eba6f4bb5f89"}, {"id": "fls_5nsa9zefz9cv", "number": "6.5.5:22", "link": "expressions.html#fls_5nsa9zefz9cv", "checksum": "17701cdba21c6e0baca8f595115ec320e5814b7d0382db5afd011e4815284d9d"}, {"id": "fls_u3pstd6xe43y", "number": "6.5.5:23", "link": "expressions.html#fls_u3pstd6xe43y", "checksum": "ae993e16ae5bc5ab9b01feb24dcc0507bcdfa1575b222fb56cc069f149fb55a2"}, {"id": "fls_jjmc1xgny77", "number": "6.5.5:24", "link": "expressions.html#fls_jjmc1xgny77", "checksum": "73f75644381d149ce6f4e854dd91d95133658735ed4344352f260f806357124a"}, {"id": "fls_nclf4o1dpnis", "number": "6.5.5:25", "link": "expressions.html#fls_nclf4o1dpnis", "checksum": "719727efa5d31656dd271a750d883da510fd0dc91a365c055995293e5f4b1d8f"}, {"id": "fls_cayhj5hcuhcg", "number": "6.5.5:26", "link": "expressions.html#fls_cayhj5hcuhcg", "checksum": "fc135beb54169cc69ddc3205939375bc09adf919e1015819ef3c4d508636e056"}, {"id": "fls_43knkymqpj7t", "number": "6.5.5:27", "link": "expressions.html#fls_43knkymqpj7t", "checksum": "45d80850a6d4d455e0d832ccecc3f62d2cebab16d21c41babb61a0500e491507"}, {"id": "fls_62gpbubfj30w", "number": "6.5.5:28", "link": "expressions.html#fls_62gpbubfj30w", "checksum": "64f326ea0a4ae3117a4678bc9f29eb8da3ffea2053d4d4b342158d5de10d3751"}, {"id": "fls_bveocgaagk1n", "number": "6.5.5:29", "link": "expressions.html#fls_bveocgaagk1n", "checksum": "4eb93bef00f0c77a5e6ded4b73a4411de3d1597f25e03442d385e8953d179f60"}, {"id": "fls_zlrozh43motn", "number": "6.5.5:30", "link": "expressions.html#fls_zlrozh43motn", "checksum": "c1f131262cc203adffef07cdfd70f939f8e44411b208a3a26e4a8dce1179ae53"}, {"id": "fls_q9dhniicgifr", "number": "6.5.5:31", "link": "expressions.html#fls_q9dhniicgifr", "checksum": "064cfcf4cae6ce4f05d3725a102c1dcef135894bd8cb96bdb7429edfb31ecb0a"}, {"id": "fls_albblstytmyq", "number": "6.5.5:32", "link": "expressions.html#fls_albblstytmyq", "checksum": "70fac8b1be1736648aaaa9fee2cab2c655084d862482bc22f6e296c2ab467a7d"}, {"id": "fls_qd6ggdgq2hob", "number": "6.5.5:33", "link": "expressions.html#fls_qd6ggdgq2hob", "checksum": "6fd272034cea2fe81833c14eaafe524e4a0767be0c73c47320bcf29b97784202"}, {"id": "fls_lr2a21v5en59", "number": "6.5.5:34", "link": "expressions.html#fls_lr2a21v5en59", "checksum": "d0809b66e9fdbbcf0f3f653dea3e490c17584873374daea4e4ca8cf7fb66ab6f"}, {"id": "fls_kpbxcdaflb06", "number": "6.5.5:35", "link": "expressions.html#fls_kpbxcdaflb06", "checksum": "c2e708f49bc1463e1f2c04def2f0b217a259a1886909d4af2b6e4abd63af421d"}, {"id": "fls_b94ojbfukhvd", "number": "6.5.5:36", "link": "expressions.html#fls_b94ojbfukhvd", "checksum": "f678eed2b8bac9c6c67c93c05c9b053cceef52d72d84258ec037eba8a69da58d"}, {"id": "fls_et5gp1i7vqbx", "number": "6.5.5:37", "link": "expressions.html#fls_et5gp1i7vqbx", "checksum": "f146d32e9238902885a1de2e40322ffbe37f7d482221f3f29f09cd74aa10c986"}, {"id": "fls_blyr18iao20n", "number": "6.5.5:38", "link": "expressions.html#fls_blyr18iao20n", "checksum": "76949da2fa0e9cc8e7cb9df9af458fb19d53b951678809db92d05e00586ab885"}, {"id": "fls_g28igfbnwfe0", "number": "6.5.5:39", "link": "expressions.html#fls_g28igfbnwfe0", "checksum": "84f604c240681edd7b71b1d29ef8b66a81b3f921feeefd7649950dad7829b18f"}, {"id": "fls_thcumw8n8xbw", "number": "6.5.5:40", "link": "expressions.html#fls_thcumw8n8xbw", "checksum": "5e2ecaea3a29c5b97b9c76aec758b093b55aca3e89a8ecefee9b691d736ee6cc"}, {"id": "fls_gld1u9fnsj6d", "number": "6.5.5:41", "link": "expressions.html#fls_gld1u9fnsj6d", "checksum": "4150ec47e0d0420937471ef411fcb589a50cf6da2b820a72bd39f3be021962f2"}, {"id": "fls_kdr6flrrj0du", "number": "6.5.5:42", "link": "expressions.html#fls_kdr6flrrj0du", "checksum": "3dde9ea78a683c92e2324df8e9c8250ce8017e6273b1110e6b3c1dd01cb638eb"}, {"id": "fls_fxlnxegt2n9u", "number": "6.5.5:43", "link": "expressions.html#fls_fxlnxegt2n9u", "checksum": "ddc0c2dfbe1023732c1d00d8ee8a8a13a6ef3fb5f2ec27bf3af56f0f356621d5"}, {"id": "fls_kn0hnldvdxsg", "number": "6.5.5:44", "link": "expressions.html#fls_kn0hnldvdxsg", "checksum": "8ad1f5e38027cf5c40e9d6661d275b0c692946ecbe2be3ff598372545ab1ce72"}, {"id": "fls_k7lmxvpkxtub", "number": "6.5.5:45", "link": "expressions.html#fls_k7lmxvpkxtub", "checksum": "797469b1ee10b81ac9f4dd20b9f7943570bca6e9aed0f4c09efb4082502be292"}, {"id": "fls_bndpd66973ev", "number": "6.5.5:46", "link": "expressions.html#fls_bndpd66973ev", "checksum": "cafca8e7b36d756680e784bde8ddc838c4cd8196bd1331ba9e9d82dcaf5944d9"}, {"id": "fls_izmfimd4yg27", "number": "6.5.5:47", "link": "expressions.html#fls_izmfimd4yg27", "checksum": "a133ac246b8483e2376fb2e7ff45933a4d073cc42b2f5b2693c18610ab982cb6"}, {"id": "fls_ad9tc6ki8vcq", "number": "6.5.5:48", "link": "expressions.html#fls_ad9tc6ki8vcq", "checksum": "1bab9420ecb10646e486e92a21e7c194eff5c4c1351ae11ba919d46aa9e8a427"}, {"id": "fls_vy0dyzqfy7iv", "number": "6.5.5:49", "link": "expressions.html#fls_vy0dyzqfy7iv", "checksum": "df45cf4e04324577c2dcfa776a8bf7431fe98c041a2defa2c83564f63f38542c"}, {"id": "fls_b9g0r9vc4rou", "number": "6.5.5:50", "link": "expressions.html#fls_b9g0r9vc4rou", "checksum": "5ab58ebe71cc5ede6b8c87248178f2659e27187f857007d8c683d25510b4c2b6"}], "informational": false}, {"id": "fls_abp6tjbz8tpn", "number": "6.5.6", "title": "Bit Expressions", "link": "expressions.html#bit-expressions", "paragraphs": [{"id": "fls_3zd59yuywz6l", "number": "6.5.6:1", "link": "expressions.html#fls_3zd59yuywz6l", "checksum": "84a0bfe9ca4706b367c7fc61ce97d41de1f5b9c8fa6d17d06583fd15bddd1fd3"}, {"id": "fls_f6mmva3lbj1i", "number": "6.5.6:2", "link": "expressions.html#fls_f6mmva3lbj1i", "checksum": "2818a1e523dc8c69e39862ea386fbbab5b2558456ad985671a97f66bd39587ca"}, {"id": "fls_cmowpfrcelke", "number": "6.5.6:3", "link": "expressions.html#fls_cmowpfrcelke", "checksum": "05fc18fab6da50fb7b2ec1ed8dbdef6ab1d54584dd67eb283424ad2fdd5b1d8d"}, {"id": "fls_kchprk9z6xun", "number": "6.5.6:4", "link": "expressions.html#fls_kchprk9z6xun", "checksum": "170079796be6e0d966919640fafbf7d613f2a3d98177e61149106bfbff315c2b"}, {"id": "fls_dimu987fw4kg", "number": "6.5.6:5", "link": "expressions.html#fls_dimu987fw4kg", "checksum": "053daf5a48155d9e3cc897400be3ef219ceba7963682f22e7aab2a9aa6831550"}, {"id": "fls_3136k1y6x3cu", "number": "6.5.6:6", "link": "expressions.html#fls_3136k1y6x3cu", "checksum": "303e9f2d1f84be7d40c47e5d8f5742d86856b0d3b15cc3324195a698e9ee7c0f"}, {"id": "fls_oo2ynd8e1ys6", "number": "6.5.6:7", "link": "expressions.html#fls_oo2ynd8e1ys6", "checksum": "952cc40d099771b8eed28464bba01b8eb07d87d3aefd4d8e2615dcb9e0cffe8e"}, {"id": "fls_s6hkt5fg598y", "number": "6.5.6:8", "link": "expressions.html#fls_s6hkt5fg598y", "checksum": "ba39428a77c8298ec6d00dde55b54582b28fe2b591511d210c070eeead4f4703"}, {"id": "fls_osfse0t6ua8a", "number": "6.5.6:9", "link": "expressions.html#fls_osfse0t6ua8a", "checksum": "9dc068ab4f8ff1b86dee141016ae1c63df167f7b1a49de56303ace2d27e01480"}, {"id": "fls_j7ujcuthga1i", "number": "6.5.6:10", "link": "expressions.html#fls_j7ujcuthga1i", "checksum": "c0cf0a0884aaca56ec02fa11b697bba3c0be007b60befe09c8aebf753f176f71"}, {"id": "fls_fnywefl9nty2", "number": "6.5.6:11", "link": "expressions.html#fls_fnywefl9nty2", "checksum": "da193f8b1e127e029668399614ca332e6b587d0a8f272fb73bbf8edfc6cb0d1e"}, {"id": "fls_4f24nyx0ix0j", "number": "6.5.6:12", "link": "expressions.html#fls_4f24nyx0ix0j", "checksum": "b7308da6bd3cbce68c8acf223b36da8dd80bd6349300ea6f5c635c5ab44eb79c"}, {"id": "fls_8tb22c6zbp3", "number": "6.5.6:13", "link": "expressions.html#fls_8tb22c6zbp3", "checksum": "81582d3dd591be4afd63d14a8950ba0a7886253bc28a6ebdc004af9fda39ce65"}, {"id": "fls_caxn774ij8lk", "number": "6.5.6:14", "link": "expressions.html#fls_caxn774ij8lk", "checksum": "8493aa842fe4a83a4314ce4c5cfdcbc4004dbede23f86bc0726b3cbdce0eea6a"}, {"id": "fls_1f4pc612f2a8", "number": "6.5.6:15", "link": "expressions.html#fls_1f4pc612f2a8", "checksum": "5b928c6c679fee56921ceea7439472b9fab36f828c42e529bf0fc44e4a8b12f5"}, {"id": "fls_8trozue35xe4", "number": "6.5.6:16", "link": "expressions.html#fls_8trozue35xe4", "checksum": "ad2526669f50751a7b918a4cddeb2300641acf4b2395f4a1a01df29469e7da7f"}, {"id": "fls_kqntxbwnc58v", "number": "6.5.6:17", "link": "expressions.html#fls_kqntxbwnc58v", "checksum": "dc895b6a59e6aa619431f0f93958d1527008c560c57242167f44385670ac0774"}, {"id": "fls_t709sl4co3al", "number": "6.5.6:18", "link": "expressions.html#fls_t709sl4co3al", "checksum": "426a9a0ea02cbdf9f6ab017e8d01561de18f041ef2783074463ed902da9419a1"}, {"id": "fls_onutb0b9p9zj", "number": "6.5.6:19", "link": "expressions.html#fls_onutb0b9p9zj", "checksum": "8086917758b14703edbbbf5a445239563fb866350442477479028fab06da0367"}, {"id": "fls_yq8rtwfp3nv0", "number": "6.5.6:20", "link": "expressions.html#fls_yq8rtwfp3nv0", "checksum": "bd305b6ab372b8e874fac3c5a5d7d59ba805cda093af356e1d23ed3bfd23eca5"}, {"id": "fls_fbazfgd5m1ot", "number": "6.5.6:21", "link": "expressions.html#fls_fbazfgd5m1ot", "checksum": "2a93c4b43a488a8715a6346277d3a51967273030d0229e7fec4dbbe3e22cc0b0"}, {"id": "fls_f4o8xlu67okn", "number": "6.5.6:22", "link": "expressions.html#fls_f4o8xlu67okn", "checksum": "94ec1672b5572a206805a5f17f131b2a11dd24534874144bc815364ac11611a3"}, {"id": "fls_kp747xqekyrr", "number": "6.5.6:23", "link": "expressions.html#fls_kp747xqekyrr", "checksum": "53b4736dd567176d0f358e1d043c68e4e7b7ba30fdd04e2c5d27f0cbbf2bbd7a"}, {"id": "fls_m0pdk78dah6n", "number": "6.5.6:24", "link": "expressions.html#fls_m0pdk78dah6n", "checksum": "1651f680538ff44533e1024e0f14e3ad9c52d51916584a4901382c966fe46187"}, {"id": "fls_m2hsk41hwm2j", "number": "6.5.6:25", "link": "expressions.html#fls_m2hsk41hwm2j", "checksum": "15ed30a8258ed67352118ef07799071f10a8c36492ecfb2f87f7309bbece175c"}, {"id": "fls_p9rlmjhbnbao", "number": "6.5.6:26", "link": "expressions.html#fls_p9rlmjhbnbao", "checksum": "c598c63b8ad76764d80ce8990c8e92a0a204169649bbe024ea2823b4bbe90baf"}, {"id": "fls_vprp53kv64q6", "number": "6.5.6:27", "link": "expressions.html#fls_vprp53kv64q6", "checksum": "fae86360a1b7d2d77fbbc4365c5e99fbf0ed4a4fcac2256690e7c3d50bbff467"}, {"id": "fls_d456ummq6vrk", "number": "6.5.6:28", "link": "expressions.html#fls_d456ummq6vrk", "checksum": "31252eaded45baa2ec5ff1465a0523416c26773b13a971aeca24c9f54a1ff1fa"}, {"id": "fls_n269ufyesndz", "number": "6.5.6:29", "link": "expressions.html#fls_n269ufyesndz", "checksum": "537cc3ef62eb6da99fd065eb8f9f9876eb47dfe3405d33c7b4e02a9dedc27559"}, {"id": "fls_i9iqtobheivu", "number": "6.5.6:30", "link": "expressions.html#fls_i9iqtobheivu", "checksum": "7c1f43885f0acb0412658c413bc3e27945ab92404fde60121712fc4b1b414a64"}, {"id": "fls_htw2tpujktwt", "number": "6.5.6:31", "link": "expressions.html#fls_htw2tpujktwt", "checksum": "4263fb211a3cf3f26ebc3048404cb784bfcdb6e89e7b8c3509d9bade52286fa2"}, {"id": "fls_gf9tyu1idpjk", "number": "6.5.6:32", "link": "expressions.html#fls_gf9tyu1idpjk", "checksum": "e23d86a834fd2dc7ebe1e6d37fc6932e7ecb671e5814d5513513d720e300795e"}, {"id": "fls_u5irwqswbsvu", "number": "6.5.6:33", "link": "expressions.html#fls_u5irwqswbsvu", "checksum": "94cf2ccd91455de09c6784e79c76de895f6d11481f8ba1d2c6343e06bfc3dc6b"}, {"id": "fls_2kkpr955i4lm", "number": "6.5.6:34", "link": "expressions.html#fls_2kkpr955i4lm", "checksum": "26b785a04cf74035de814d871a9df90c21744413f8775bf806fd138b7504702f"}, {"id": "fls_7p64lgnjxylz", "number": "6.5.6:35", "link": "expressions.html#fls_7p64lgnjxylz", "checksum": "8d85229b2eb69a1cb33e8b332567f95078b56f70367895493bb53b3da0931f5c"}, {"id": "fls_ieh1itrkcnf6", "number": "6.5.6:36", "link": "expressions.html#fls_ieh1itrkcnf6", "checksum": "a9e77d70b03d9ad5d13456e3b4ea3a9a40479bd0354018ceb716a20e5f0f6c29"}, {"id": "fls_f0p70y92k14f", "number": "6.5.6:37", "link": "expressions.html#fls_f0p70y92k14f", "checksum": "a8f62a13fd083f51c1a97aacc86e5c2ae2535fa2d41f0fe1aa07fdad41fc9654"}, {"id": "fls_303r0u6ug215", "number": "6.5.6:38", "link": "expressions.html#fls_303r0u6ug215", "checksum": "9ba04ea8d40c1a25a4642aed3c24bc53d56619c51958bd4387bf76dbd994ca14"}, {"id": "fls_4gxj18t6cnzq", "number": "6.5.6:39", "link": "expressions.html#fls_4gxj18t6cnzq", "checksum": "df76cca7b83071a4072c0bcd99560eedf1d831230c5514f371df536f276f60e9"}, {"id": "fls_gurl2ve58drz", "number": "6.5.6:40", "link": "expressions.html#fls_gurl2ve58drz", "checksum": "e5cdfefed3d182d5a193d06aa0c5b4d2b467c3186aa0cfba1bb680a1f789e7a7"}, {"id": "fls_xkyj83mcb9d5", "number": "6.5.6:41", "link": "expressions.html#fls_xkyj83mcb9d5", "checksum": "bd4c2c6af9a1f85023152aba188338a4a680bbc0411316984bea4e286394de58"}], "informational": false}, {"id": "fls_nsvzzbldhq53", "number": "6.5.7", "title": "Comparison Expressions", "link": "expressions.html#comparison-expressions", "paragraphs": [{"id": "fls_yzuceqx6nxwa", "number": "6.5.7:1", "link": "expressions.html#fls_yzuceqx6nxwa", "checksum": "9d05d4defa794088d8cb55f8f3dc1300dc4a1e8881df85cc8431e6b4bc9c6491"}, {"id": "fls_asfrqemqviad", "number": "6.5.7:2", "link": "expressions.html#fls_asfrqemqviad", "checksum": "2a968cd3870a6603c37177067762adc544e4e07ad6b804a2c2aab38ae902eccf"}, {"id": "fls_9s4re3ujnfis", "number": "6.5.7:3", "link": "expressions.html#fls_9s4re3ujnfis", "checksum": "8026571732f9f6267928a67e769b7dd425f07122736917f16cee06caacc37f28"}, {"id": "fls_ruyho6cu7rxg", "number": "6.5.7:4", "link": "expressions.html#fls_ruyho6cu7rxg", "checksum": "f9b985b336990cc31ae368d531d7c4ea08e1aa780e9d702aeadd46e677aff9d9"}, {"id": "fls_8echqk9po1cf", "number": "6.5.7:5", "link": "expressions.html#fls_8echqk9po1cf", "checksum": "ce0053741951cdd2317168496b52090a75e5599bf46bb0b35ae36c85311c1ae9"}, {"id": "fls_d62qfloqk2ub", "number": "6.5.7:6", "link": "expressions.html#fls_d62qfloqk2ub", "checksum": "be7491a2b9729f338f90e0d71cdf9327852297b9681bdeb1fcdcbd07f3a42e9e"}, {"id": "fls_wapl0ir7uvbp", "number": "6.5.7:7", "link": "expressions.html#fls_wapl0ir7uvbp", "checksum": "d6831a752e2853991b540a6f71184363bd1495dcc4b3d792cc390c0e46566584"}, {"id": "fls_x2s6ydvj5zyd", "number": "6.5.7:8", "link": "expressions.html#fls_x2s6ydvj5zyd", "checksum": "a8d5305ac628e58fe4ccbd9c03c6a69b6c8fe5f5fb5849aca647efffba438ed3"}, {"id": "fls_pso38dowbk91", "number": "6.5.7:9", "link": "expressions.html#fls_pso38dowbk91", "checksum": "75c0bf567470cc284caa31e9a7cedafdab95750ec0c3d4493082eb5ae7390ec4"}, {"id": "fls_7n5gol6a8lod", "number": "6.5.7:10", "link": "expressions.html#fls_7n5gol6a8lod", "checksum": "ef1a2911b0a4a2bd1fc9f0ead5a226ba5699ae02b2dcd42ecabdf631202d784e"}, {"id": "fls_hholzcbp5u3n", "number": "6.5.7:11", "link": "expressions.html#fls_hholzcbp5u3n", "checksum": "0c6bb79a3001d63bf961a7f98a2b350801a2eee43c89c0af2af810b535fee371"}, {"id": "fls_wytygse41vzm", "number": "6.5.7:12", "link": "expressions.html#fls_wytygse41vzm", "checksum": "710411bab59ddc74d93bd9ff61bb2d8646a61f62f3bde811cf3d41bd58366173"}, {"id": "fls_yd4qqi39w248", "number": "6.5.7:13", "link": "expressions.html#fls_yd4qqi39w248", "checksum": "13bbc37a51d96873f70deac55cdbabc1b905394b23a3972b2c0551da7e10a040"}, {"id": "fls_ynibdcke3etb", "number": "6.5.7:14", "link": "expressions.html#fls_ynibdcke3etb", "checksum": "b2fe01f1e7bd73ec40381b1feffe64d54c4a73adf9833a8973e8545b4a22735a"}, {"id": "fls_xmtxkit3qpw7", "number": "6.5.7:15", "link": "expressions.html#fls_xmtxkit3qpw7", "checksum": "5c1c6dbb92fa6d031c159a452bc02516ab56200edd7b1829912ab9e1dedf582c"}, {"id": "fls_yxwe1o27u6ns", "number": "6.5.7:16", "link": "expressions.html#fls_yxwe1o27u6ns", "checksum": "aa2489e740ac7fa0927e1ebf58ee7859f6c7fcb1c27a1fed065269e34d58945b"}, {"id": "fls_6dgfieyxdan0", "number": "6.5.7:17", "link": "expressions.html#fls_6dgfieyxdan0", "checksum": "4246d899aae58ccec5761931073223131d6bb1fdfbead0fe71e27bac795785dd"}, {"id": "fls_7pfsqby2saag", "number": "6.5.7:18", "link": "expressions.html#fls_7pfsqby2saag", "checksum": "71f44b658d5f60358888166477d893099556625a56856efc9601af1b23ee44da"}, {"id": "fls_w71j7i3n1kit", "number": "6.5.7:19", "link": "expressions.html#fls_w71j7i3n1kit", "checksum": "8974278dc5b60a16754de7eb076364e82284313e621b4c49992c20c6a9c63ae1"}, {"id": "fls_qzo1torhv5i3", "number": "6.5.7:20", "link": "expressions.html#fls_qzo1torhv5i3", "checksum": "8aa4fbe8cdd3993316bc9797d2e9c0eae2606dcf347454c5e8420d364eb6db51"}, {"id": "fls_kodwkh58hmdv", "number": "6.5.7:21", "link": "expressions.html#fls_kodwkh58hmdv", "checksum": "61a081ab60d564acf7dac7b48da5bf545566ae3c1c82613770c74aa2155c8be7"}, {"id": "fls_ydt9zvh0h5ex", "number": "6.5.7:22", "link": "expressions.html#fls_ydt9zvh0h5ex", "checksum": "0881ded68a87d9c91315127f344b19aa1c1ba7a415be695e64255be1cd5f14dd"}, {"id": "fls_4vbrc31r0o60", "number": "6.5.7:23", "link": "expressions.html#fls_4vbrc31r0o60", "checksum": "e9d81054725f03fed4f879928978ad1c981033f08f7d0018ee97c430cd1526ed"}, {"id": "fls_hyy974ksbbrq", "number": "6.5.7:24", "link": "expressions.html#fls_hyy974ksbbrq", "checksum": "dcc537a9126843947883cb7463f2aa089ffdb70c3ce806d15282d128254e00ce"}, {"id": "fls_htrjqxiv3avh", "number": "6.5.7:25", "link": "expressions.html#fls_htrjqxiv3avh", "checksum": "790b5f2286f9006f773c5cee8a79277c939604dbc045305f68dba735d4a8fab3"}, {"id": "fls_1udbc4aom6ok", "number": "6.5.7:26", "link": "expressions.html#fls_1udbc4aom6ok", "checksum": "ffdd939b68f5c1dc9c76bb481300346a0b76d4c1af150b24ba7a6ca40f85db37"}, {"id": "fls_96mt7gx5ogo0", "number": "6.5.7:27", "link": "expressions.html#fls_96mt7gx5ogo0", "checksum": "9c5002f8931d3abbba38e2af25c9e26fde9574a782a54098d5c7b21336a27cd7"}, {"id": "fls_or0i2cqxwl8o", "number": "6.5.7:28", "link": "expressions.html#fls_or0i2cqxwl8o", "checksum": "1f09a7d5f20dfa920da6816904f1d9a952d7223cadcbd1a2e02bc92e2eb8b6e5"}, {"id": "fls_udnhkbxpk83m", "number": "6.5.7:29", "link": "expressions.html#fls_udnhkbxpk83m", "checksum": "b26f1ae4bb9ca5706067a0dc7fcc96ff7d0a837066c3103acdef5036c0c54662"}, {"id": "fls_mab6yirx77zl", "number": "6.5.7:30", "link": "expressions.html#fls_mab6yirx77zl", "checksum": "d7ad85bcfcd0d633bf1608e3af7008ca9e2f70b1bb1f98771a1ec739acb3b24f"}, {"id": "fls_2ggb7a7nhrk9", "number": "6.5.7:31", "link": "expressions.html#fls_2ggb7a7nhrk9", "checksum": "0575886e7dc22f4c493b7d181fe07b8cadec4b14adea5fce90f5cded24a50f61"}, {"id": "fls_ukm97arfzsk1", "number": "6.5.7:32", "link": "expressions.html#fls_ukm97arfzsk1", "checksum": "227845ddcd0a132d50d7dd61e7a564d46335b6a22d2ce74a288f7d9200ae7c54"}, {"id": "fls_wrftg7onlkmm", "number": "6.5.7:33", "link": "expressions.html#fls_wrftg7onlkmm", "checksum": "0ea88b20932e8a1ac321f37c0f71648e487ba64d4a8a174357f45c0a361a030b"}, {"id": "fls_irlqykpbtvd", "number": "6.5.7:34", "link": "expressions.html#fls_irlqykpbtvd", "checksum": "fc5c6a6f5d2c2fbd69a96faa707b88b69a02ec46f571e54abbba5b94262db700"}, {"id": "fls_udonl4c7f6pz", "number": "6.5.7:35", "link": "expressions.html#fls_udonl4c7f6pz", "checksum": "5db519b4a3862ea81b67712e174ac1e631a8afb3913654c28c367cc6e4a717bc"}, {"id": "fls_ebvyhqbb921g", "number": "6.5.7:36", "link": "expressions.html#fls_ebvyhqbb921g", "checksum": "26071802062bc2b37291010d1f9f8dee33a117f0cec69c457650ba59560c6743"}, {"id": "fls_rfomib80bnn2", "number": "6.5.7:37", "link": "expressions.html#fls_rfomib80bnn2", "checksum": "3f1dc50e13776facbc3ca274a5ef46f7a078bc0e1d73003d0eb034fbe9ae7e33"}, {"id": "fls_6cb4wg59wmef", "number": "6.5.7:38", "link": "expressions.html#fls_6cb4wg59wmef", "checksum": "9047368a8239de0933ecc3949594279fa3de51e000bd4842cb09bdbb2abea448"}, {"id": "fls_dkbjn7noq8n2", "number": "6.5.7:39", "link": "expressions.html#fls_dkbjn7noq8n2", "checksum": "2d9093eb49a4246b73dd600878aa12b7b93aa41605f6119cd2763faaa323dc9a"}, {"id": "fls_kezynx2xc1q7", "number": "6.5.7:40", "link": "expressions.html#fls_kezynx2xc1q7", "checksum": "15967dc98aa0ed7f84bf158358e5aadd9b853a956daa8e9c622ee666a262302a"}, {"id": "fls_8luq5sellcaq", "number": "6.5.7:41", "link": "expressions.html#fls_8luq5sellcaq", "checksum": "b01336b9511f2f0bcdd400438da1f991279c25423b3694339c0c2a56de3297cc"}, {"id": "fls_c93pacid548a", "number": "6.5.7:42", "link": "expressions.html#fls_c93pacid548a", "checksum": "b47d020a4bf52e4092fc90d68fef4ef1a455a67b8988333b6f7ef74fcd608744"}, {"id": "fls_gqy6uuowij9e", "number": "6.5.7:43", "link": "expressions.html#fls_gqy6uuowij9e", "checksum": "b1d67e27cd64bff665fa4abe27d7bb3ffa248e472df78975e3e9b414d3abc215"}, {"id": "fls_s6sq6p8th5nt", "number": "6.5.7:44", "link": "expressions.html#fls_s6sq6p8th5nt", "checksum": "74d5290848e5b132492e37c5a878b393585ab57f6861801568b33dd97e99350e"}, {"id": "fls_kdga59xx4nx3", "number": "6.5.7:45", "link": "expressions.html#fls_kdga59xx4nx3", "checksum": "e8c6085c7317b0b22333a5e89d1757cb4024590c46e44ba9d2e121f9f7c30b94"}], "informational": false}, {"id": "fls_lstusiu2c8lu", "number": "6.5.8", "title": "Lazy Boolean Expressions", "link": "expressions.html#lazy-boolean-expressions", "paragraphs": [{"id": "fls_gpbvus89iy4c", "number": "6.5.8:1", "link": "expressions.html#fls_gpbvus89iy4c", "checksum": "d083fa2a4b23d69ebf79cb39b3b435aecaa477f6e2bcddfaa6e8f2cad7ef9fcf"}, {"id": "fls_40jya46h62yi", "number": "6.5.8:2", "link": "expressions.html#fls_40jya46h62yi", "checksum": "d94febcd9c5097860d17e1a524ae04bbe93e6476a617726293f8e7d45f048f81"}, {"id": "fls_k8u77ow5bb6c", "number": "6.5.8:3", "link": "expressions.html#fls_k8u77ow5bb6c", "checksum": "1c05b5e8f145c2821e9391efa0203c3fbde926b15242438460e0cdf1976780b1"}, {"id": "fls_u0gwo0s2l0tn", "number": "6.5.8:4", "link": "expressions.html#fls_u0gwo0s2l0tn", "checksum": "fdd6553d09d1a0c51cd9641afb80879d25d7066040d8a352725884773f92d2a9"}, {"id": "fls_zas0lizgq2hn", "number": "6.5.8:5", "link": "expressions.html#fls_zas0lizgq2hn", "checksum": "ddd627fc1c34fe282518e5540e51987966234a13145ad8bae553177ac3d8dfaa"}, {"id": "fls_xdgvrd58nkoa", "number": "6.5.8:6", "link": "expressions.html#fls_xdgvrd58nkoa", "checksum": "5fedecca69f448e516ad8fdd4b22e1d9538dabd703fdf0c4881e56e12b0ffd02"}, {"id": "fls_ufre0ko2cwh2", "number": "6.5.8:7", "link": "expressions.html#fls_ufre0ko2cwh2", "checksum": "b099b2fe899cf3d319f0a36dd5af2427e1c29cc5f8afbe3e514a07bb160b21a6"}, {"id": "fls_jugckad775kq", "number": "6.5.8:8", "link": "expressions.html#fls_jugckad775kq", "checksum": "5e0c86a6b40357d25e18747cafd06d04626afc595a9d1d43986abadb34f378cc"}, {"id": "fls_tmfmu3syxp2q", "number": "6.5.8:9", "link": "expressions.html#fls_tmfmu3syxp2q", "checksum": "2c38f5ee0dee81eba992210bde3a9c3e5e17845a49afa11bf5ecb756e07b012d"}, {"id": "fls_srfv1d4idxy9", "number": "6.5.8:10", "link": "expressions.html#fls_srfv1d4idxy9", "checksum": "e16cc48f8ee8a84751ce4195d3680e9168f423ceac46d85cb7d9ade46e838061"}, {"id": "fls_tflikh8cmxvc", "number": "6.5.8:11", "link": "expressions.html#fls_tflikh8cmxvc", "checksum": "8aa3b1677686a272d98a21454e1e94aea43ab1745f3b214fe1d274e1b1d44913"}, {"id": "fls_p0rafjsridre", "number": "6.5.8:12", "link": "expressions.html#fls_p0rafjsridre", "checksum": "081904a7612047457f00462adab410432028cf313a537c7d3eb899885660028b"}, {"id": "fls_yg1348rlziw3", "number": "6.5.8:13", "link": "expressions.html#fls_yg1348rlziw3", "checksum": "a7e87563c4a367cf52d29f70b5299ee79561d872ffbcb53680929c57d329ac75"}, {"id": "fls_yffozo2vq5xz", "number": "6.5.8:14", "link": "expressions.html#fls_yffozo2vq5xz", "checksum": "53ea72e1adfc38c6b9633432eff3b00824a954e6db484fb79fe14639eacc879d"}], "informational": false}, {"id": "fls_1qhsun1vyarz", "number": "6.5.9", "title": "Type Cast Expressions", "link": "expressions.html#type-cast-expressions", "paragraphs": [{"id": "fls_ltioqbhl14g0", "number": "6.5.9:1", "link": "expressions.html#fls_ltioqbhl14g0", "checksum": "08dfcbf5c91d7b12196ce6c1a1bc3f599df54bfa79c5adf69545a87cf36d4b92"}, {"id": "fls_99kvyh4puy57", "number": "6.5.9:2", "link": "expressions.html#fls_99kvyh4puy57", "checksum": "27ca11dd40c94f7e33d729cb9e58a859e505bbeb187054989f68f076c0d0dfe4"}, {"id": "fls_a6midh2m0w0b", "number": "6.5.9:3", "link": "expressions.html#fls_a6midh2m0w0b", "checksum": "47b8697be7c9a888bdf4d722617a7445c91071918926fd1d7b0dc5ec7759dc1b"}, {"id": "fls_otaxe9okhdr1", "number": "6.5.9:4", "link": "expressions.html#fls_otaxe9okhdr1", "checksum": "a318a86acd9c3f9af9c3f696b3b9c2c76a76f36d115e7f89219fb26ae40f8fbd"}, {"id": "fls_4s69s9pcvbn7", "number": "6.5.9:5", "link": "expressions.html#fls_4s69s9pcvbn7", "checksum": "1b349b69479fd61dce438f778290ce16b45e72d4c44dd1a9f605af212796f764"}, {"id": "fls_le6bchl25ewz", "number": "6.5.9:6", "link": "expressions.html#fls_le6bchl25ewz", "checksum": "c4a4ce7844b954c2f4754e622f645440f63e4c074ab334ac61c61ee16234e647"}, {"id": "fls_pcromhosmnf0", "number": "6.5.9:7", "link": "expressions.html#fls_pcromhosmnf0", "checksum": "1b9291b98300943b6a4f9a35b2f0293eb26ad4edecb86117155dd7f868c02ecf"}, {"id": "fls_al9f1t7vlsxi", "number": "6.5.9:8", "link": "expressions.html#fls_al9f1t7vlsxi", "checksum": "9a0b5c658e0818b0f365f2045de56630f28336ed84a1b9a7032e4eeb196094f1"}, {"id": "fls_jea17f39fmsg", "number": "6.5.9:9", "link": "expressions.html#fls_jea17f39fmsg", "checksum": "cd1cc473310dc5109e4b04c361ebc5387d25791159b28eac762db631a59080dd"}, {"id": "fls_eb00s8fxlvjb", "number": "6.5.9:10", "link": "expressions.html#fls_eb00s8fxlvjb", "checksum": "ed29ba4f4f0bf4e798b92e1808da08a9f7dde2636d2717f9bb76f606b0612f27"}, {"id": "fls_qk5trk8wkvxb", "number": "6.5.9:11", "link": "expressions.html#fls_qk5trk8wkvxb", "checksum": "77cbef9219a40b23a7018ebc71f71991f269b206f6ac09ca02d6374e08d34143"}, {"id": "fls_t16yzaxro5ew", "number": "6.5.9:12", "link": "expressions.html#fls_t16yzaxro5ew", "checksum": "d8874d42acca88b1af3b118dff17f93995f48354579b562d80c5f2f70e7ca231"}, {"id": "fls_i4zsbbmfa2fl", "number": "6.5.9:13", "link": "expressions.html#fls_i4zsbbmfa2fl", "checksum": "34d4e2c24f03d923c5c554f7d83dc05b68fafde68dfcdec0b202bdd7f9e1b8c6"}, {"id": "fls_59mpteeczzo", "number": "6.5.9:14", "link": "expressions.html#fls_59mpteeczzo", "checksum": "818a6891c0695d400a9db754d972f1d65cd093ada81f3bd44f277b2b0e5234a6"}, {"id": "fls_8ccwlliqw9jx", "number": "6.5.9:15", "link": "expressions.html#fls_8ccwlliqw9jx", "checksum": "61b4ed849409d7a1da6040af55c628c8bed21fba1448c97a30cf7b6e1edef1c3"}, {"id": "fls_i8txki3htx92", "number": "6.5.9:16", "link": "expressions.html#fls_i8txki3htx92", "checksum": "3fd45f40c5530a4e28c7590e27b7f1d1b5b076ba4a56b93a62badb572fd34f37"}, {"id": "fls_6hbkvbb1c8aj", "number": "6.5.9:17", "link": "expressions.html#fls_6hbkvbb1c8aj", "checksum": "edc3242e28a7c7e5671e8adbfab3bddbe1e8257ccc33dc32169afef9f7c9bf40"}, {"id": "fls_133j6xw8k4qe", "number": "6.5.9:18", "link": "expressions.html#fls_133j6xw8k4qe", "checksum": "396f1dee7838cc8110a77448ca183590ed2da360fcdd48a9599d4e23f138ce39"}, {"id": "fls_bhw2j9wjpf2x", "number": "6.5.9:19", "link": "expressions.html#fls_bhw2j9wjpf2x", "checksum": "70cde08edc51a89343f1641793a1fc500d46e25ce677ed83e47cb308f673c9fc"}, {"id": "fls_3ww5gbk9w4ys", "number": "6.5.9:20", "link": "expressions.html#fls_3ww5gbk9w4ys", "checksum": "d8ec489d2055064a9c810698a96bc12deed753405290de3c55392e43eff72d30"}, {"id": "fls_hhxawo12cndy", "number": "6.5.9:21", "link": "expressions.html#fls_hhxawo12cndy", "checksum": "79ebe8f0e779f6f47a24d5556c49d46d5984dfda2c4e434b1853207bae1661da"}, {"id": "fls_uuayaksl8059", "number": "6.5.9:22", "link": "expressions.html#fls_uuayaksl8059", "checksum": "d0224097db7f57afffa5809d8b5506189c8780f6d8698c1db3fb3c311b1c9ef8"}, {"id": "fls_syk2li8ft3rx", "number": "6.5.9:23", "link": "expressions.html#fls_syk2li8ft3rx", "checksum": "cfbbe48907bff6889c84b93a92f9aca7b25b8f23ef9d15329209cc8192873a93"}, {"id": "fls_uqv32nthva6y", "number": "6.5.9:24", "link": "expressions.html#fls_uqv32nthva6y", "checksum": "f4db800db3afa6225779fdc78b37b92b56513096372223f38dfedf62c62ebbdf"}, {"id": "fls_kc3gwj9x3jnr", "number": "6.5.9:25", "link": "expressions.html#fls_kc3gwj9x3jnr", "checksum": "f92fbbbb0d0f93d8a96769e4bdafb81208bbea4de660ed93f5a0c2c25bc315f4"}, {"id": "fls_76eq3bd6birr", "number": "6.5.9:26", "link": "expressions.html#fls_76eq3bd6birr", "checksum": "dc2cd23340592788e2b33f874af0be578ab9dc5ec8fe551abef6c4946b0c2607"}, {"id": "fls_ldiritt32h2w", "number": "6.5.9:27", "link": "expressions.html#fls_ldiritt32h2w", "checksum": "2675b576835d6946c6d9375780b8b55f46ece14c3de9b64c8968d19af5d44e60"}, {"id": "fls_h9sxg3pxn7i2", "number": "6.5.9:28", "link": "expressions.html#fls_h9sxg3pxn7i2", "checksum": "639df060c4399f91e08022f57836782fad21b3ee5016cbd58d43e8ac47373417"}, {"id": "fls_shy6e0e30bco", "number": "6.5.9:29", "link": "expressions.html#fls_shy6e0e30bco", "checksum": "96a976177a350ed96c70bbf5e1fc3c212be4f43da60a95cb1bddf43edd073027"}, {"id": "fls_4xldaoj5ac6t", "number": "6.5.9:30", "link": "expressions.html#fls_4xldaoj5ac6t", "checksum": "c47cb1a6295e9bfd6516ee9f54f81aafec671f38da5ad88d0c01a2743ab90e9b"}, {"id": "fls_50714cvaqkfv", "number": "6.5.9:31", "link": "expressions.html#fls_50714cvaqkfv", "checksum": "f8e6dfe7b18b50b332b93228d1d885af358ace7b20fece76abe84f5660f81caf"}, {"id": "fls_g3xbmp8zx1yh", "number": "6.5.9:32", "link": "expressions.html#fls_g3xbmp8zx1yh", "checksum": "362784273f3bf8ec2f5c6418248dc73d886a72024b899a6073cb6a8ad7940fea"}, {"id": "fls_hcc5odh52bk7", "number": "6.5.9:33", "link": "expressions.html#fls_hcc5odh52bk7", "checksum": "dab8f627a03b7d22da6d0a9ef0d715729e41f721ea373e2972b24eb59c90433f"}, {"id": "fls_o2ep4b6t287z", "number": "6.5.9:34", "link": "expressions.html#fls_o2ep4b6t287z", "checksum": "4b36e49520e535d2feb4673f98d756faf98a4db9b6c8491190a61d55c0e4e7f7"}, {"id": "fls_vfofk2aagsj5", "number": "6.5.9:35", "link": "expressions.html#fls_vfofk2aagsj5", "checksum": "2ac5953b5fbd06573be6f3e9d6a86261d774fe99356391aac1757ac4313d4ecc"}, {"id": "fls_cx86k8yfjhht", "number": "6.5.9:36", "link": "expressions.html#fls_cx86k8yfjhht", "checksum": "6b0621264b3a532012193e8e8fa631c7176d6cfddcc1e69d99553f045cf235c5"}, {"id": "fls_gzmdwibl5s4w", "number": "6.5.9:37", "link": "expressions.html#fls_gzmdwibl5s4w", "checksum": "6df51e5d36c7390d867779913759bab661984ee0871d432711aa97a2cb0a739e"}, {"id": "fls_mjqvjt7v8a25", "number": "6.5.9:38", "link": "expressions.html#fls_mjqvjt7v8a25", "checksum": "50d14939f0af728c40900fbf0d6eb82adfaf73d5546b91f7fd0ab5ed57192d3c"}, {"id": "fls_4fd5vkh0jt4", "number": "6.5.9:39", "link": "expressions.html#fls_4fd5vkh0jt4", "checksum": "cf0883805fa9cbc536249406066344fd3512a61fe348e9ec8f75c8e8cbbc8eed"}, {"id": "fls_2etd73f8jg2n", "number": "6.5.9:40", "link": "expressions.html#fls_2etd73f8jg2n", "checksum": "9a2b0468c8e7cdc699fcfa7a332ef5975090219a757acb354082c5759aa87e60"}, {"id": "fls_vdxkpvmpwl3s", "number": "6.5.9:41", "link": "expressions.html#fls_vdxkpvmpwl3s", "checksum": "812a1f24961f1a44cbc165897dede0820f61dbeb12e67dd76d903d192bba21b7"}], "informational": false}, {"id": "fls_y4by2i8dl05o", "number": "6.5.10", "title": "Assignment Expressions", "link": "expressions.html#assignment-expressions", "paragraphs": [{"id": "fls_nhgexeu2h6wi", "number": "6.5.10:1", "link": "expressions.html#fls_nhgexeu2h6wi", "checksum": "4304d0485281b3209ed00f106195484fe480a77a8493087e16b0c436448b383d"}, {"id": "fls_bsjw6f4a3wol", "number": "6.5.10:2", "link": "expressions.html#fls_bsjw6f4a3wol", "checksum": "f65275a0a091337596ea0d2d0452cd99919c500d44f9024dcc3dc0accc16f35c"}, {"id": "fls_uinh05sslxeo", "number": "6.5.10:3", "link": "expressions.html#fls_uinh05sslxeo", "checksum": "583ba1d1d9e8f8d1df72de286c88866da9343d7c34bf5f3ed16b880b4b1e054b"}, {"id": "fls_qengy157fa4a", "number": "6.5.10:4", "link": "expressions.html#fls_qengy157fa4a", "checksum": "0591676f83b5050127846b1d974697123e818f7c6e564f025c468cf178fee8de"}, {"id": "fls_bwwtgqprbxrm", "number": "6.5.10:5", "link": "expressions.html#fls_bwwtgqprbxrm", "checksum": "542e43dc718b5bdd7f38a403c460e2630f2aa29c7efb6070ec1048ca684c11ae"}], "informational": false}, {"id": "fls_nnqlae9zp80s", "number": "6.5.10.1", "title": "Basic Assignment", "link": "expressions.html#basic-assignment", "paragraphs": [{"id": "fls_uhcodvq75nlr", "number": "6.5.10.1:1", "link": "expressions.html#fls_uhcodvq75nlr", "checksum": "63dad52c617e3ee41bf8bdd92adc2ef8b74de581ac2dd9eff2d4ae7a9d79e71b"}, {"id": "fls_esn5ceoldta", "number": "6.5.10.1:2", "link": "expressions.html#fls_esn5ceoldta", "checksum": "7178659e8d13267c6d2cace3f92c866bde8b3c7f20b6284b91d1813f23ab2b48"}, {"id": "fls_t8eqzc64ivin", "number": "6.5.10.1:3", "link": "expressions.html#fls_t8eqzc64ivin", "checksum": "f899cb72136ebd3d961dc27d192d55c7b2c0be9c5ddb36fcac37dfc24b7f38b7"}, {"id": "fls_b0mqcn5fejhk", "number": "6.5.10.1:4", "link": "expressions.html#fls_b0mqcn5fejhk", "checksum": "2a9810e20da91ce5a1634df073730e215ba4b469e104c426c9270f979aa97c01"}, {"id": "fls_9i0ctuo099bp", "number": "6.5.10.1:5", "link": "expressions.html#fls_9i0ctuo099bp", "checksum": "562d40caca29e42fd9e6720706fed8695f5caea2e545f287ae8c03e6ee6db2ea"}, {"id": "fls_hc01gtvlxba", "number": "6.5.10.1:6", "link": "expressions.html#fls_hc01gtvlxba", "checksum": "a334732322599082a903e3f83305caf0f889eec5caf952a203bf92469d3a7ebc"}], "informational": false}, {"id": "fls_9beohh5475s2", "number": "6.5.10.2", "title": "Destructuring Assignment", "link": "expressions.html#destructuring-assignment", "paragraphs": [{"id": "fls_2eheo4yo2orm", "number": "6.5.10.2:1", "link": "expressions.html#fls_2eheo4yo2orm", "checksum": "1bb5b885646bba801baad9691ebaddf623dd4aaa4261744f0fb83b8b026b635b"}, {"id": "fls_z8c3b9s9de3x", "number": "6.5.10.2:2", "link": "expressions.html#fls_z8c3b9s9de3x", "checksum": "7bf58363b94e40971985a05b3232d9315c7404e7587a09a94399d1a424725557"}, {"id": "fls_vqb89rkkjw81", "number": "6.5.10.2:3", "link": "expressions.html#fls_vqb89rkkjw81", "checksum": "51a40a20e8b5e9e446c016a0c4b190ac02f0b1693e12a79e14c1eb0265f19dbc"}, {"id": "fls_vqj7ljrrd7wi", "number": "6.5.10.2:4", "link": "expressions.html#fls_vqj7ljrrd7wi", "checksum": "7bf354d6273ccc3c800c65f0c583c41706d2028f00ef46c96172bd6442282ba5"}, {"id": "fls_du5eybf8mocy", "number": "6.5.10.2:5", "link": "expressions.html#fls_du5eybf8mocy", "checksum": "243a77cae715bb740c108cb3cf10510655383e55689af1201db4edc1017ecb52"}, {"id": "fls_hj6srmzbobid", "number": "6.5.10.2:6", "link": "expressions.html#fls_hj6srmzbobid", "checksum": "2a3a9a4116094d25733de0cab8310e4330e09ce09ef7e57f0514cbd22b7da44f"}, {"id": "fls_uydzlfc4hjbx", "number": "6.5.10.2:7", "link": "expressions.html#fls_uydzlfc4hjbx", "checksum": "35df6c0e03bf68532c179009e4096b702f74a652fc496ed46f7ff46c2f66543b"}, {"id": "fls_fa14yfvxsbx3", "number": "6.5.10.2:8", "link": "expressions.html#fls_fa14yfvxsbx3", "checksum": "d7fce64f27e5e966da37da7025ecb83935790a56516a53756543ad92bf4ed4d2"}, {"id": "fls_q90ikfi7ewoi", "number": "6.5.10.2:9", "link": "expressions.html#fls_q90ikfi7ewoi", "checksum": "00243d283fa4c9c0a35d15022e20300d26b61ece13bc0541fb6abbdc62083508"}, {"id": "fls_4bb07tn28ivw", "number": "6.5.10.2:10", "link": "expressions.html#fls_4bb07tn28ivw", "checksum": "aa1553b4d77d65e20c4f21c81f7f481f61757cd3a2e996c6cdb03b04d102e93f"}, {"id": "fls_g80a92tr2ser", "number": "6.5.10.2:11", "link": "expressions.html#fls_g80a92tr2ser", "checksum": "b68bcc8992526aa0a831e5dcbb9b1792ad9a389fb52b6f314b1118753322841c"}, {"id": "fls_u0iqhbw37xvq", "number": "6.5.10.2:12", "link": "expressions.html#fls_u0iqhbw37xvq", "checksum": "a834153c99b871fe9e977b743df601c1c87e148ffa80105b101da6fab4145491"}, {"id": "fls_wsfhd3udt6fq", "number": "6.5.10.2:13", "link": "expressions.html#fls_wsfhd3udt6fq", "checksum": "9d43daaf0511fffc8a32f8ac5b4ad06460cd1377cdaf72b00b2c07c7e9f1c45f"}, {"id": "fls_ll6h6qcaos65", "number": "6.5.10.2:14", "link": "expressions.html#fls_ll6h6qcaos65", "checksum": "54b18adecbfa6f101f756b60fda6240a68c94d6181b080c20c1fcbbe1e2b319a"}, {"id": "fls_ajbdn54qe6wc", "number": "6.5.10.2:15", "link": "expressions.html#fls_ajbdn54qe6wc", "checksum": "d5cac296c4841b11d032f3f8c436aae5e3196e6c8b1ac76278a96a0d9713b852"}, {"id": "fls_l4u5hhw8tnvs", "number": "6.5.10.2:16", "link": "expressions.html#fls_l4u5hhw8tnvs", "checksum": "8bc627e3bf0f027c3c06ec7c4a610c3cae859ce1cc52705452b6a2b18e6245a8"}, {"id": "fls_dd62w8c9n9sd", "number": "6.5.10.2:17", "link": "expressions.html#fls_dd62w8c9n9sd", "checksum": "d7fc919d5ec540ac0eef14fa6ea2b5d26ca87b8a8dd1204ed7f5526c7c669f43"}, {"id": "fls_jqu2u6mdccgi", "number": "6.5.10.2:18", "link": "expressions.html#fls_jqu2u6mdccgi", "checksum": "53ec6be8b47c6be5b010eea7546935286e1827c719d139f77363a74e1e7a7220"}, {"id": "fls_n7nuj1lvpspc", "number": "6.5.10.2:19", "link": "expressions.html#fls_n7nuj1lvpspc", "checksum": "c7335948424f81e31b96930ee1dc2ecdeaf3b3a9deebd55825c5a52ff484e337"}, {"id": "fls_qb8u5skn8bc4", "number": "6.5.10.2:20", "link": "expressions.html#fls_qb8u5skn8bc4", "checksum": "49260bff9918873b5d8535276a39574ffd2b3a81c0ef8739ba1315dd51b7246e"}], "informational": false}, {"id": "fls_290jmzfh7x4e", "number": "6.5.11", "title": "Compound Assignment Expressions", "link": "expressions.html#compound-assignment-expressions", "paragraphs": [{"id": "fls_3bu3g8o5nopc", "number": "6.5.11:1", "link": "expressions.html#fls_3bu3g8o5nopc", "checksum": "70304690f3abce9b70d5806e3646fd86c7c669ed6507cbc1f0f0b1d1983dd3f7"}, {"id": "fls_w2hbhb989yr4", "number": "6.5.11:2", "link": "expressions.html#fls_w2hbhb989yr4", "checksum": "d6a2d58614610b6925bb6d9240e3cefe07479565323dabe03c90461b8c5e6ef9"}, {"id": "fls_ak4g5112jkl", "number": "6.5.11:3", "link": "expressions.html#fls_ak4g5112jkl", "checksum": "6ba92b86bf853f095dc7e5a3710b658e32b00a7dc05a5a95d43121059f50f10c"}, {"id": "fls_lkjwyy78m2vx", "number": "6.5.11:4", "link": "expressions.html#fls_lkjwyy78m2vx", "checksum": "4ae0b14054f07ae1b39e78df52b07c317b58a3f9f809a8718873aa55f027b3cc"}, {"id": "fls_pkzj0uigfcgm", "number": "6.5.11:5", "link": "expressions.html#fls_pkzj0uigfcgm", "checksum": "136277e741015a5230de8f60eb4096bf0b58ad7c638b2115efdabc0d44400c59"}, {"id": "fls_ndlv3k9uclz2", "number": "6.5.11:6", "link": "expressions.html#fls_ndlv3k9uclz2", "checksum": "d2555608ba3de34e55980372a66a2a9d4d54ddee1e2a156da6a307bd61404d6d"}, {"id": "fls_fbp5dojti27r", "number": "6.5.11:7", "link": "expressions.html#fls_fbp5dojti27r", "checksum": "ea908393ac3ed6b06a8100763ed23f0bce1b23383dbb6018f7b2a9f28fe2c027"}, {"id": "fls_oy9ur11k78t", "number": "6.5.11:8", "link": "expressions.html#fls_oy9ur11k78t", "checksum": "f32d982e951a64a5ae23f39b6f896be6b823bf75a1402bb7f482c69b8c5f72bf"}, {"id": "fls_s7rey2bndfei", "number": "6.5.11:9", "link": "expressions.html#fls_s7rey2bndfei", "checksum": "a8f5728efeb8d521b310ca0018217930b4db9dc326d731f4b7f928ceb5551466"}, {"id": "fls_7l7v7vigw3fu", "number": "6.5.11:10", "link": "expressions.html#fls_7l7v7vigw3fu", "checksum": "0bacfa691cf9b02adb71480b6b81ae0b5fcb9955635d761f806644b2dd7089a4"}, {"id": "fls_dvy201zd6oym", "number": "6.5.11:11", "link": "expressions.html#fls_dvy201zd6oym", "checksum": "3c8f98ad5df4fbb4fc9495db0937e079c92705d874f42bb18c7ba5ec55b24f25"}, {"id": "fls_9v09ayi2azpe", "number": "6.5.11:12", "link": "expressions.html#fls_9v09ayi2azpe", "checksum": "c927d4db9296e304c75ea935ba940d05a54420ee651d15b81fcad4aaaa1bcc23"}, {"id": "fls_row7saf53vwd", "number": "6.5.11:13", "link": "expressions.html#fls_row7saf53vwd", "checksum": "53d2315ff692eedbb4a02576f3552f5fc7e273249f214bb24cfcd24028715bd6"}, {"id": "fls_xmgcdw9yhb55", "number": "6.5.11:14", "link": "expressions.html#fls_xmgcdw9yhb55", "checksum": "f409b5315ca308b8335b0a02dbbb76577c93d33536ca7a97c9df8a48215a4b15"}, {"id": "fls_yeh6mvyvb4dp", "number": "6.5.11:15", "link": "expressions.html#fls_yeh6mvyvb4dp", "checksum": "f8e24d8041063b9aeff11b22e4199433af8a1eb8a19d83a6bbaa6cb259939ef4"}, {"id": "fls_657knnsobdyu", "number": "6.5.11:16", "link": "expressions.html#fls_657knnsobdyu", "checksum": "8a1c5e8aff333bdd76805412a401b56a8739e72e836998f4afa79603949e1a38"}, {"id": "fls_m942dwwmr2cl", "number": "6.5.11:17", "link": "expressions.html#fls_m942dwwmr2cl", "checksum": "7e62f17ce3701a1aff0387ca92ffd578fcb6945d06d5684d51461077a3dfdb44"}, {"id": "fls_np33oqrz33mp", "number": "6.5.11:18", "link": "expressions.html#fls_np33oqrz33mp", "checksum": "0a96b074b6c309f365d46e4d340f40e8137d15a81a2628d015d5a38b87545496"}, {"id": "fls_atdpr8be2o2r", "number": "6.5.11:19", "link": "expressions.html#fls_atdpr8be2o2r", "checksum": "39b15a4da847904cd5adcbfa2541f35399dd7eae844e25492a6b28134997c44b"}, {"id": "fls_fbgwb3pdfgz", "number": "6.5.11:20", "link": "expressions.html#fls_fbgwb3pdfgz", "checksum": "bb68222b337dae8c4e07199340ae967e2beab8cdb28c86b0c31bf23155c048cb"}, {"id": "fls_8tbxq95x06yt", "number": "6.5.11:21", "link": "expressions.html#fls_8tbxq95x06yt", "checksum": "f07f914b9816a47a3803a8a0e4617448cf1e87a3d9879638af434fb4bbb87f11"}, {"id": "fls_9oy9zo3x3fy3", "number": "6.5.11:22", "link": "expressions.html#fls_9oy9zo3x3fy3", "checksum": "c4387fe4f484f537a0bec808fdd45374c5ad2a94dd7cd9891b3acd6955055456"}, {"id": "fls_pdgj2xekdead", "number": "6.5.11:23", "link": "expressions.html#fls_pdgj2xekdead", "checksum": "5d8e7013a9e2890192910cd44abe74ed6f54b4b3d4e3eebf85b772cd83ecca64"}, {"id": "fls_4uoi6k8r7mvc", "number": "6.5.11:24", "link": "expressions.html#fls_4uoi6k8r7mvc", "checksum": "065720bf3f5046e1a242276446af69db0ba393444e5344baaeb4cd2e1088e8b0"}, {"id": "fls_fjaz4m90cagr", "number": "6.5.11:25", "link": "expressions.html#fls_fjaz4m90cagr", "checksum": "6c3272702958207aa4819daeb158571ee7f953f56238a82b24462ac32f7161ee"}, {"id": "fls_eesn9kuylim", "number": "6.5.11:26", "link": "expressions.html#fls_eesn9kuylim", "checksum": "e31b4581f5c14180a6a1a8eddc70ceb2966929c532efcd1bb047761060d24027"}, {"id": "fls_4nnqz4etisgw", "number": "6.5.11:27", "link": "expressions.html#fls_4nnqz4etisgw", "checksum": "1fd0c33fcf586183d361b779dea413543663438cc02e17959b72a5b104af731e"}, {"id": "fls_a2g4hs15jpiu", "number": "6.5.11:28", "link": "expressions.html#fls_a2g4hs15jpiu", "checksum": "1bf2eb3fddc1bda35cce5c0668c463f880b7275bd885b03616e2d50acdc71975"}, {"id": "fls_kuet16jp6ps9", "number": "6.5.11:29", "link": "expressions.html#fls_kuet16jp6ps9", "checksum": "b2b36c7f8e91b90fb29e61587d53edc27026c2f4612ae0ba4f363a6d5be91292"}, {"id": "fls_hovju0sni9gr", "number": "6.5.11:30", "link": "expressions.html#fls_hovju0sni9gr", "checksum": "b102bf14ec0db1c14b2f2ab3aca382a3187d2c4042728a7fc47bfee75e767210"}, {"id": "fls_ngimpabunzis", "number": "6.5.11:31", "link": "expressions.html#fls_ngimpabunzis", "checksum": "05076af1f4d61f0b6baee0ecee29a81adafb0a5a38fbcbdb68d18da0a27b22c7"}, {"id": "fls_4sbpfi12frwe", "number": "6.5.11:32", "link": "expressions.html#fls_4sbpfi12frwe", "checksum": "6ba71a563b4c7010ec0c5df34108f6d4be2d539e8294c8a15ed716d562e407e6"}, {"id": "fls_n5ds6ydgckvo", "number": "6.5.11:33", "link": "expressions.html#fls_n5ds6ydgckvo", "checksum": "6a1e80e1e25a1830cf8a13e06a7ee8f0932497734f65d5dac7e8bcd2eb12b75e"}, {"id": "fls_xjdu0y1slsg9", "number": "6.5.11:34", "link": "expressions.html#fls_xjdu0y1slsg9", "checksum": "442e7816616309d222742e16b9e6f02a781a2e4782c149409e796c8f69b72b7d"}, {"id": "fls_ijfmnnrdlu8n", "number": "6.5.11:35", "link": "expressions.html#fls_ijfmnnrdlu8n", "checksum": "98a271aaa7faf59283854dfdf7bbcd0ba056cd59f558249a1382495825b750cb"}, {"id": "fls_6x7j9x354pkb", "number": "6.5.11:36", "link": "expressions.html#fls_6x7j9x354pkb", "checksum": "bfddbb63f9a240dbc5964993135fe01a4dfb1607c75a64ff2ca7950a0555e74d"}, {"id": "fls_h2cpbz2t74hy", "number": "6.5.11:37", "link": "expressions.html#fls_h2cpbz2t74hy", "checksum": "ece515541769464e97d750a9e5e9ce02a8b6519f896abff730bbd292e44e473f"}, {"id": "fls_whj50spxz3bh", "number": "6.5.11:38", "link": "expressions.html#fls_whj50spxz3bh", "checksum": "c4a1816e02fe88f0e2f326223f92521478faeba2af43bd13fe94c439624e163f"}, {"id": "fls_d1cxq1zbt5fq", "number": "6.5.11:39", "link": "expressions.html#fls_d1cxq1zbt5fq", "checksum": "96b2470f5ad765c1e4f0b346e361780734a20847e8d7264e5c2076c95bc9ba46"}, {"id": "fls_48i245an2449", "number": "6.5.11:40", "link": "expressions.html#fls_48i245an2449", "checksum": "0806ce2c7ef3707033cfa5b0c4f583a19e24558b3c3b42048aca9c6e131fef0c"}, {"id": "fls_69wr03rt0ali", "number": "6.5.11:41", "link": "expressions.html#fls_69wr03rt0ali", "checksum": "c08b0dd87b65f9c8d1e7245b1b012c81c36b63b6cfb73c7bf7358d25c8f631d1"}, {"id": "fls_9d970yfwmj2d", "number": "6.5.11:42", "link": "expressions.html#fls_9d970yfwmj2d", "checksum": "cc05bf582d5c4319a4456bc8b6c64f1e1efb92b83ce5a86e80486c70cff4b6c5"}, {"id": "fls_p9687v3xckps", "number": "6.5.11:43", "link": "expressions.html#fls_p9687v3xckps", "checksum": "4274ecd1896eafd9510d63f0a215a49551f8821292f73f5d7af417d77511b0c5"}, {"id": "fls_8j408kckzzud", "number": "6.5.11:44", "link": "expressions.html#fls_8j408kckzzud", "checksum": "63c48dade2d45f58c29209b7fd62427f7408e9be1b34777e67229aa7e083838f"}], "informational": false}, {"id": "fls_tpwp86mronn2", "number": "6.6", "title": "Underscore Expressions", "link": "expressions.html#underscore-expressions", "paragraphs": [{"id": "fls_pydmv629vfuu", "number": "6.6:1", "link": "expressions.html#fls_pydmv629vfuu", "checksum": "5ef7618ba1c0e1c7eb57702380cfe32fd40a101012baae722cc5017d09e187e2"}, {"id": "fls_wms3dbwjwyu4", "number": "6.6:2", "link": "expressions.html#fls_wms3dbwjwyu4", "checksum": "1dac5db10a0607f25991daff12767344ccaeed3d4532c06f54c6f3daaaca117b"}], "informational": false}, {"id": "fls_g0uyl7qw4c7w", "number": "6.7", "title": "Parenthesized Expressions", "link": "expressions.html#parenthesized-expressions", "paragraphs": [{"id": "fls_jhazc75w5vj", "number": "6.7:1", "link": "expressions.html#fls_jhazc75w5vj", "checksum": "4b96644e63b3031bd589162d79d80f5f1f988db1395b4ea3cf2d135f2021ef07"}, {"id": "fls_5d66h7naoup6", "number": "6.7:2", "link": "expressions.html#fls_5d66h7naoup6", "checksum": "d879f43c9d83baea30fcff3023c3eb6e4cefd38b2329e84eefb22c3a38fd2490"}, {"id": "fls_xp9whcj2obk8", "number": "6.7:3", "link": "expressions.html#fls_xp9whcj2obk8", "checksum": "3140672dbfae920bc75f4d9c3c7ef03d41930b474be0b1df39c2574ac528c4a4"}, {"id": "fls_2po52gv0m021", "number": "6.7:4", "link": "expressions.html#fls_2po52gv0m021", "checksum": "4ceea157cc85755bb8711c51fb23271bbc1d673d4f2e6fd61d9356cda18af3c0"}], "informational": false}, {"id": "fls_xinykul167l", "number": "6.8", "title": "Array Expressions", "link": "expressions.html#array-expressions", "paragraphs": [{"id": "fls_ya9res33oxt6", "number": "6.8:1", "link": "expressions.html#fls_ya9res33oxt6", "checksum": "6d4f6471b2421cfcf0c6e94185848a12651a125d62316b31ecd723f993aaf11c"}, {"id": "fls_fwtd3b10veiw", "number": "6.8:2", "link": "expressions.html#fls_fwtd3b10veiw", "checksum": "743b62273b34b59350863d60be4496326d848680260ecd32e8129f1b8143053a"}, {"id": "fls_81jf78m5uga4", "number": "6.8:3", "link": "expressions.html#fls_81jf78m5uga4", "checksum": "2f031a9cfde2f485697c756e9fcc79b907cda43251bb209b3d1b959e0366ca58"}, {"id": "fls_3y69y9ga4at7", "number": "6.8:4", "link": "expressions.html#fls_3y69y9ga4at7", "checksum": "f0f0247ee1270ffdca37f2133a1d7f104e658c90aa0684f8028eb2b59c6bf74b"}, {"id": "fls_2l9objtb23zn", "number": "6.8:5", "link": "expressions.html#fls_2l9objtb23zn", "checksum": "7974b29d39e237f7b7019e8b023bc65e3ba22c2dd273ada7c3e6655264d52965"}, {"id": "fls_9gmnjvs83d8o", "number": "6.8:6", "link": "expressions.html#fls_9gmnjvs83d8o", "checksum": "cc40a14f407c81a044fd4575f51d913e8693f738ef40ad139534f46b9a19f039"}, {"id": "fls_by21pey7k423", "number": "6.8:7", "link": "expressions.html#fls_by21pey7k423", "checksum": "99ecdba025304ba811aebcc29e07845a140fc3ba41095e33a8d0ea50f068afc7"}, {"id": "fls_x2xu2pynxy1u", "number": "6.8:8", "link": "expressions.html#fls_x2xu2pynxy1u", "checksum": "00959a289e797eee5d2c26c92f851b2a5d78095f1c5c4ad231c077cf1a2b2218"}, {"id": "fls_qplsh3pdqitq", "number": "6.8:9", "link": "expressions.html#fls_qplsh3pdqitq", "checksum": "1dbe631dc10dcbcaa14182cbc7292325ac986dc37e6435c88e0c8e171530200b"}, {"id": "fls_wmsekin1gd2y", "number": "6.8:10", "link": "expressions.html#fls_wmsekin1gd2y", "checksum": "68a2f4607ef3ef9af408f82e1bcafcc5d132a928549d34922543e4a7e1eb4af9"}, {"id": "fls_2gto5kp9bjw8", "number": "6.8:11", "link": "expressions.html#fls_2gto5kp9bjw8", "checksum": "ae5a443a2738de9ba0838c345bf4816bf7cd9370acb2a7911197c6d480314a1c"}, {"id": "fls_guop34ayjw2", "number": "6.8:12", "link": "expressions.html#fls_guop34ayjw2", "checksum": "4f06417eb2b816c921050078ab93d2e2f81bbdc5682995739c56d6c2a428d828"}, {"id": "fls_aj6tbe54v5jl", "number": "6.8:13", "link": "expressions.html#fls_aj6tbe54v5jl", "checksum": "bbc8380a9bc21793c86fcd20a2b3fd8fa261fe3ac9374aed29e675bff88cbb01"}, {"id": "fls_t52in1kkyli3", "number": "6.8:14", "link": "expressions.html#fls_t52in1kkyli3", "checksum": "30d886a7d822a23c278b2dbadc243b7709b339b7ed687043bd8f5d2781178640"}, {"id": "fls_1kj8nlc5eb8a", "number": "6.8:15", "link": "expressions.html#fls_1kj8nlc5eb8a", "checksum": "5cd43e21073bfcf8cadcce1518960b036bfe89bc84c8649e85bc8774653c380b"}, {"id": "fls_f3izbkm8607z", "number": "6.8:16", "link": "expressions.html#fls_f3izbkm8607z", "checksum": "89234ce8ba73ca7e0688f892e1660c97f9dad740b312645882f0502e5a170b75"}, {"id": "fls_qbyysx30pjzs", "number": "6.8:17", "link": "expressions.html#fls_qbyysx30pjzs", "checksum": "6cd7a3e96790491d8967a32c4aa6c12e7bc265fb236219c2798543ac52c4d67a"}, {"id": "fls_1m0laldldh7j", "number": "6.8:18", "link": "expressions.html#fls_1m0laldldh7j", "checksum": "6ddcd54c076c63113862a4520f98cd2f8fce768efda1073f5f85a7809db098a4"}, {"id": "fls_5cs68nm54l31", "number": "6.8:19", "link": "expressions.html#fls_5cs68nm54l31", "checksum": "c151686dd6c86dcb91a93e83dc42259fff94d880d483a63df2c2065156f00daa"}, {"id": "fls_p7hcqryal5cm", "number": "6.8:20", "link": "expressions.html#fls_p7hcqryal5cm", "checksum": "66ac06814aa69e304c6e76a00971dbedf1387d5233cad520425e11f03d4c07fe"}, {"id": "fls_izlpt6100gvk", "number": "6.8:21", "link": "expressions.html#fls_izlpt6100gvk", "checksum": "30d959b0c05ae14096ec8a18e9ef45db9516e5df20444afd6789a6f06a342318"}], "informational": false}, {"id": "fls_sxcr4aa098i6", "number": "6.9", "title": "Indexing Expressions", "link": "expressions.html#indexing-expressions", "paragraphs": [{"id": "fls_x9kdeaptqsae", "number": "6.9:1", "link": "expressions.html#fls_x9kdeaptqsae", "checksum": "31490093979c511cc48f877705c29908857d10d31c22c513439cdd3e083e83e0"}, {"id": "fls_42ijvuqqqlvh", "number": "6.9:2", "link": "expressions.html#fls_42ijvuqqqlvh", "checksum": "85b9167ffe43e577abe2ffc662e3e62c0342ca688e1d20624dc5a39db1c988e5"}, {"id": "fls_pc0c22asgzvw", "number": "6.9:3", "link": "expressions.html#fls_pc0c22asgzvw", "checksum": "db2bc9cf0ff07c2d83f7c42c19f1f26b0299fb0961ef65f745ffcb2ad15b3f89"}, {"id": "fls_ff3sgpldn52o", "number": "6.9:4", "link": "expressions.html#fls_ff3sgpldn52o", "checksum": "7e6555ba354de0496e6c669f9e7a6741d4b492484dcfcc2dd698365fa7a60eb9"}, {"id": "fls_w96p9oyv5mqt", "number": "6.9:5", "link": "expressions.html#fls_w96p9oyv5mqt", "checksum": "42f40f05f0350dbd74aa64e56c42a4c06ba726fc7a8b35e5bb3368d06a26a8ad"}, {"id": "fls_u9sl7h4i8hqu", "number": "6.9:6", "link": "expressions.html#fls_u9sl7h4i8hqu", "checksum": "3c8bd13b0796e21dc66b5379e63653e3fcb5a781ce71acb007b57d31835d0f3a"}, {"id": "fls_98qeczwv7fmy", "number": "6.9:7", "link": "expressions.html#fls_98qeczwv7fmy", "checksum": "2e21eae4b3ccda229d79c4f4a4f86c4bd703e1aba8d1118c7d7716b41d2c2faf"}, {"id": "fls_sb2b8gszzaxq", "number": "6.9:8", "link": "expressions.html#fls_sb2b8gszzaxq", "checksum": "4399a6c70846584a158da4f90dd876e825ac9cacaec36e9597d7ad9314f9c1ad"}, {"id": "fls_issaykiuha75", "number": "6.9:9", "link": "expressions.html#fls_issaykiuha75", "checksum": "ca425abe5afef3fc3ff8c1fa8d087b47ff691c4e899e64f49add8e09dbe7f639"}, {"id": "fls_y3sduoma6q9v", "number": "6.9:10", "link": "expressions.html#fls_y3sduoma6q9v", "checksum": "3b4aa347cbd159f5838cbd0b0c14997b21a8cfc9acc3c4f85a283411186ff2b3"}, {"id": "fls_ld7lbvqms5i6", "number": "6.9:11", "link": "expressions.html#fls_ld7lbvqms5i6", "checksum": "ca104df5047d4dcf3d9d6018e314d70e108caa663258d7d4078735ca9d5ec371"}, {"id": "fls_nw705fpon79b", "number": "6.9:12", "link": "expressions.html#fls_nw705fpon79b", "checksum": "9604f4021f2759e85e5c5da7cde24c6dfee6185dcac528fb76a3dacf4e93e6d7"}, {"id": "fls_fouu0z3jwoad", "number": "6.9:13", "link": "expressions.html#fls_fouu0z3jwoad", "checksum": "6df13900857eadceabad33c0cb30734412f004ce22dd4ca7929db7825f12a320"}, {"id": "fls_6sgj0ltt21i", "number": "6.9:14", "link": "expressions.html#fls_6sgj0ltt21i", "checksum": "360d88c25da00aaea34444416884679e51030df7846dab9da0f094a535cce93d"}, {"id": "fls_e5l4y3dy69xi", "number": "6.9:15", "link": "expressions.html#fls_e5l4y3dy69xi", "checksum": "fa58196075f56ac52b8d01e9cb00cfdb9529af1c583a3480a55001154f045e3b"}, {"id": "fls_fza3omn8yw7s", "number": "6.9:16", "link": "expressions.html#fls_fza3omn8yw7s", "checksum": "6116e98e9979b81eab9a7ab0c7273d7762a8679a757f8533b345a57fb7e929fe"}, {"id": "fls_ehamppbq4gmg", "number": "6.9:17", "link": "expressions.html#fls_ehamppbq4gmg", "checksum": "b2c5fef9e306895e61c01a69f017386886e4f27a15ec910d892e2129c9f7711b"}, {"id": "fls_i68oxj659hc1", "number": "6.9:18", "link": "expressions.html#fls_i68oxj659hc1", "checksum": "39e66b9082ab41a3cb7bfe897f53ec7d894d3c0a2eedb848765d2d5b61f5f08b"}, {"id": "fls_esvpmh6razg3", "number": "6.9:19", "link": "expressions.html#fls_esvpmh6razg3", "checksum": "5dc619e3c7a42b3865b9e09a909cf74dd7733409a6dc676d5ce0776835ec2935"}], "informational": false}, {"id": "fls_k64tfywtn0g8", "number": "6.10", "title": "Tuple Expressions", "link": "expressions.html#tuple-expressions", "paragraphs": [{"id": "fls_87rp1hfwvjel", "number": "6.10:1", "link": "expressions.html#fls_87rp1hfwvjel", "checksum": "7399dc1df9b884285bce9a5b8c11dc84c4ac1a56dfa88377b1364cb87d4a0731"}, {"id": "fls_581y6jq1eyn8", "number": "6.10:2", "link": "expressions.html#fls_581y6jq1eyn8", "checksum": "f33b885ff1461bd9c3edce99af1025448f23b6f34719d2aada1b9371a66e3977"}, {"id": "fls_ljz3sxmfzflm", "number": "6.10:3", "link": "expressions.html#fls_ljz3sxmfzflm", "checksum": "c4ab6ee82caa1cd55dc2e28627611665855885cd1d29e62c1ca3ff00223e9259"}, {"id": "fls_k2aznqo9j49p", "number": "6.10:4", "link": "expressions.html#fls_k2aznqo9j49p", "checksum": "24ed5e86bd386394eabd8a2ac4b328e9898749be29d66dab722c00236101f333"}, {"id": "fls_waf55yd3mpsq", "number": "6.10:5", "link": "expressions.html#fls_waf55yd3mpsq", "checksum": "b7b413e86deaa80c42270b0e67a9b7769446e927a1b9757d51ef9ea1a7c0e35e"}], "informational": false}, {"id": "fls_8tsynkj2cufj", "number": "6.11", "title": "Struct Expressions", "link": "expressions.html#struct-expressions", "paragraphs": [{"id": "fls_ij8rebvupb85", "number": "6.11:1", "link": "expressions.html#fls_ij8rebvupb85", "checksum": "493abab9453382e96f95834b89c0e5369e4813f666ac2b6457d230ce1809142a"}, {"id": "fls_4z91ymz3ciup", "number": "6.11:2", "link": "expressions.html#fls_4z91ymz3ciup", "checksum": "ea9e8ef3107dbe17a3db35ec182c1fcbe8fc64d450389cd947e13fbba936159c"}, {"id": "fls_uib1ml41mfrn", "number": "6.11:3", "link": "expressions.html#fls_uib1ml41mfrn", "checksum": "8e351f1080c459129073d0d8530951b8e82226d27242d9a1ff82271bdce4843f"}, {"id": "fls_gfu267bpl9ql", "number": "6.11:4", "link": "expressions.html#fls_gfu267bpl9ql", "checksum": "7f822abacd536f4c7d392cf59a82a0070650471dfcc73a2f8de8eb09547bb5dd"}, {"id": "fls_ph7fsphbpbv4", "number": "6.11:5", "link": "expressions.html#fls_ph7fsphbpbv4", "checksum": "24f31221ee538a172dbd40ca7f70b47441f5d24619c0c7d71b11b60873ee1eca"}, {"id": "fls_y3p6rtm7ek3l", "number": "6.11:6", "link": "expressions.html#fls_y3p6rtm7ek3l", "checksum": "dfd9ce367d4bf290e7ae6dfdea3d576766c0e2190c615c7e1f1113f9305360f3"}, {"id": "fls_dfajs3xaxbv", "number": "6.11:7", "link": "expressions.html#fls_dfajs3xaxbv", "checksum": "f742d113591d2078b7ee2b2c7107d89b3550d51f804ad1c2d5d6a9907cc9890c"}, {"id": "fls_e5b9n910z1cp", "number": "6.11:8", "link": "expressions.html#fls_e5b9n910z1cp", "checksum": "3888cd4b2bf0b27090e97dedf37902806541ed4b1fe7499ab5d8f04942eeaa50"}, {"id": "fls_lwyq3vyc91rn", "number": "6.11:9", "link": "expressions.html#fls_lwyq3vyc91rn", "checksum": "28873afd657a39c226d5e6dfbe90eda2f198b5d2275e48d63d83fcff6666a437"}, {"id": "fls_qed1pps827dv", "number": "6.11:10", "link": "expressions.html#fls_qed1pps827dv", "checksum": "bc5511c2c2fac0ba4a2014c7549d26dc3b47e1efc45745a57b9270b9daf8717a"}, {"id": "fls_b60omrhc7t73", "number": "6.11:11", "link": "expressions.html#fls_b60omrhc7t73", "checksum": "05db74451ddd466b05e13f92f7002d1a5bbd98357e459d80505b0fc0192b5722"}, {"id": "fls_z3gj1v6g605r", "number": "6.11:12", "link": "expressions.html#fls_z3gj1v6g605r", "checksum": "abbd965676cc9c6c017509ca4f0db2bfac5d9703fadd03e8f5f4a98a4bd13e98"}, {"id": "fls_57t368kema7h", "number": "6.11:13", "link": "expressions.html#fls_57t368kema7h", "checksum": "fa8bbc2efa5ec7a8d906f785e3b77771dfd096c32b87c0a0b78d6e8dfa804e8f"}, {"id": "fls_sm2hx8sh4agb", "number": "6.11:14", "link": "expressions.html#fls_sm2hx8sh4agb", "checksum": "5f874feae7243e265174842c1705edb105460487394bbb55e89d57d48477007c"}, {"id": "fls_yjx1t3x6qpfg", "number": "6.11:15", "link": "expressions.html#fls_yjx1t3x6qpfg", "checksum": "7c1c7e161e1e23fa1376c0e49c44e13f336fab7729692b3a44d0eb2823eefdac"}, {"id": "fls_2dajkhq58cdp", "number": "6.11:16", "link": "expressions.html#fls_2dajkhq58cdp", "checksum": "756313e2a5d855cb3ea595bb56cc4dde2bb98f40796e46b678e768367ecd32e3"}, {"id": "fls_9s4znhi0u3ys", "number": "6.11:17", "link": "expressions.html#fls_9s4znhi0u3ys", "checksum": "eab8fece1cd805ef10af3d99fc4dd15162f528e0721ee3b0165f345c61c44e56"}, {"id": "fls_i31rodt42m0z", "number": "6.11:18", "link": "expressions.html#fls_i31rodt42m0z", "checksum": "4b9a135c41174a4d1b374036bec37ca58bc2dc1b5cdd02cfa29b818f6f6b5595"}, {"id": "fls_sjwd8o5mknjo", "number": "6.11:19", "link": "expressions.html#fls_sjwd8o5mknjo", "checksum": "e2fba67dc6e8362b2eb63f8630a99f82151d0ddf943e0be8719f2f2d15d1e3f6"}, {"id": "fls_ccqomsereni2", "number": "6.11:20", "link": "expressions.html#fls_ccqomsereni2", "checksum": "8e664ef278506ab961e1731480c81261ba08b7a02514217323708b4af6aff785"}, {"id": "fls_pivpdyr4seez", "number": "6.11:21", "link": "expressions.html#fls_pivpdyr4seez", "checksum": "0d739a4315b3634173f4630d2f989f3fda10c4cb81091788a44a982aeec6af27"}, {"id": "fls_bbmm5vir9xos", "number": "6.11:22", "link": "expressions.html#fls_bbmm5vir9xos", "checksum": "dfcb1ce2101411371aacdbb15a17031666e178ffa3a77ebe197897dda4775b78"}, {"id": "fls_9370n5xkkzce", "number": "6.11:23", "link": "expressions.html#fls_9370n5xkkzce", "checksum": "394483b6ad1f27b2f3dc2ac653fd29e231d3fb38e54f517704ba85054ada35c0"}, {"id": "fls_rclgwzdhfjj", "number": "6.11:24", "link": "expressions.html#fls_rclgwzdhfjj", "checksum": "6822f178e5b3aa34dc40d855f3a712775268565250bfb20b6a8a800342a31c2b"}, {"id": "fls_lmxz5768v5d8", "number": "6.11:25", "link": "expressions.html#fls_lmxz5768v5d8", "checksum": "699dc721a98b3b7c8991c04c5c3c9e87c9c461f7a9cd730d8456d351bbd31869"}, {"id": "fls_939cugbxju5e", "number": "6.11:26", "link": "expressions.html#fls_939cugbxju5e", "checksum": "e51a92569bbbf59fea10e1f41d637ae830e52f806ac58f8fa19556a53b6818d4"}, {"id": "fls_c34qwhaq2asm", "number": "6.11:27", "link": "expressions.html#fls_c34qwhaq2asm", "checksum": "a16846d9e33ce5a80d68efcb1d24f5c1e2e9934ba86b734882c989e20206c296"}, {"id": "fls_j2kmp1fee0g4", "number": "6.11:28", "link": "expressions.html#fls_j2kmp1fee0g4", "checksum": "89b109fa6381448c394ae86c65c245fc0e88e27972300ac7f167d84e0bbf79dd"}, {"id": "fls_90q7krxazc6u", "number": "6.11:29", "link": "expressions.html#fls_90q7krxazc6u", "checksum": "73b0b3da5ffde72edf46a99296ff66d8c09b58f4e2b1902d323d9f9cb6a1e935"}, {"id": "fls_qo05owpmtag0", "number": "6.11:30", "link": "expressions.html#fls_qo05owpmtag0", "checksum": "ef7b100b52af0f96f406949aff0b22634f64963355f13f1c1b95f8d9cba0b44b"}, {"id": "fls_ywh3nk6emwmw", "number": "6.11:31", "link": "expressions.html#fls_ywh3nk6emwmw", "checksum": "42afa78c852b518f88af6b77def436db4b5393c26983141a51e07dd6750eee0f"}, {"id": "fls_5w9lj5dc84p", "number": "6.11:32", "link": "expressions.html#fls_5w9lj5dc84p", "checksum": "de24271cf33bfa815864b5ebfcbc6988183405bef3c021b8e1b25580122ec11d"}, {"id": "fls_5zceer19mhdu", "number": "6.11:33", "link": "expressions.html#fls_5zceer19mhdu", "checksum": "e15958c4756b3bd003b782386a1a141722751eb4ce9fc36198479e4e13b251da"}, {"id": "fls_mq80i8fof7sx", "number": "6.11:34", "link": "expressions.html#fls_mq80i8fof7sx", "checksum": "4679e260d01f964df4c4854f527a55bc247efa22f9dc20b678ab35977531eb6e"}, {"id": "fls_raon1c1vrhx7", "number": "6.11:35", "link": "expressions.html#fls_raon1c1vrhx7", "checksum": "709cca2dab61298aa182e48d151ce7305ba30a57d6df86d251d6e2b35ddda241"}, {"id": "fls_njder5r7y5fg", "number": "6.11:36", "link": "expressions.html#fls_njder5r7y5fg", "checksum": "95098df352a5e120808aef809396f5698df829ca3a4454751786588593c411e8"}, {"id": "fls_w7x9wy6t0qcp", "number": "6.11:37", "link": "expressions.html#fls_w7x9wy6t0qcp", "checksum": "1d38c6679b821e525c76297aa8c0e49f1304aa0d4f31f22912785b2c0960a751"}, {"id": "fls_vsxsbqps64o", "number": "6.11:38", "link": "expressions.html#fls_vsxsbqps64o", "checksum": "1c87e5610628063b209d50888670d8fbf0c116de208f35b62acd64b1701ea6ab"}], "informational": false}, {"id": "fls_mjvxidqriazu", "number": "6.12", "title": "Invocation Expressions", "link": "expressions.html#invocation-expressions", "paragraphs": [], "informational": false}, {"id": "fls_xa4nbfas01cj", "number": "6.12.1", "title": "Call Expressions", "link": "expressions.html#call-expressions", "paragraphs": [{"id": "fls_fvgfx17ossd9", "number": "6.12.1:1", "link": "expressions.html#fls_fvgfx17ossd9", "checksum": "f8b54840ba0a9bb18d7f74ba88d9fb7a76db616cf3848b13c77fd6bc923701a0"}, {"id": "fls_jvz5z3eqxb39", "number": "6.12.1:2", "link": "expressions.html#fls_jvz5z3eqxb39", "checksum": "d99e0d245e03cdc2b926d8014cd2b42ff87a1095bd6dd4175f847952a046340e"}, {"id": "fls_7ql1c71eidg8", "number": "6.12.1:3", "link": "expressions.html#fls_7ql1c71eidg8", "checksum": "8d062365937975e8505f2c4e8e71c063108ae0722d02b6e99040c29ba6a8b853"}, {"id": "fls_qpbu34u6hxn9", "number": "6.12.1:4", "link": "expressions.html#fls_qpbu34u6hxn9", "checksum": "0b5c13f46066bd32a398d531e6264e5a6f809db983a611e3b694af48b4280a92"}, {"id": "fls_4t6imtiw6kzt", "number": "6.12.1:5", "link": "expressions.html#fls_4t6imtiw6kzt", "checksum": "61df60b38a66043dc01ecc6700a991327fa2f1ae0e9956c368653828fb4c6685"}, {"id": "fls_bu6i3mcvnbin", "number": "6.12.1:6", "link": "expressions.html#fls_bu6i3mcvnbin", "checksum": "3a26c47d58ffafc12d34d0e615b69f369100b0cf9292a10271dc8a2e63d46bbc"}, {"id": "fls_8ljrgdept7s8", "number": "6.12.1:7", "link": "expressions.html#fls_8ljrgdept7s8", "checksum": "5f9d8fc40d9881ee619a29f2d12ea46e15940dbea1dab46b859e16c018bdf547"}, {"id": "fls_7p6zrjbpj0kl", "number": "6.12.1:8", "link": "expressions.html#fls_7p6zrjbpj0kl", "checksum": "5333d55aedef513667c5227237c6c2a2adbd384fda536234b46d3238ddb494f8"}, {"id": "fls_yrr1s0tucgvh", "number": "6.12.1:9", "link": "expressions.html#fls_yrr1s0tucgvh", "checksum": "a2d1bdfa5553f148730d494403a917fe4ce046b63677f155ef67f743ee36cbcd"}, {"id": "fls_rzjfs9konok8", "number": "6.12.1:10", "link": "expressions.html#fls_rzjfs9konok8", "checksum": "b0ba0abc763fe3595f7902c3a252eac21df8a5f5bf2a14ef0b827112e4d41245"}, {"id": "fls_s3q3sej1hgho", "number": "6.12.1:11", "link": "expressions.html#fls_s3q3sej1hgho", "checksum": "74ee6d22351bd3883e14871ea5fc6ceb29be66276f677bc4fc2b0d3141e6b575"}, {"id": "fls_cu2ubdm3tfwb", "number": "6.12.1:12", "link": "expressions.html#fls_cu2ubdm3tfwb", "checksum": "e14331b5d1cbd3e0f3378e15c0cce322ecaa54746e2b6f14e67474f2bbf79690"}, {"id": "fls_9bbewx1l7h5h", "number": "6.12.1:13", "link": "expressions.html#fls_9bbewx1l7h5h", "checksum": "38706558f72979bd6e46834b20227eb0f154f24ae7c7fa6fccb6727f4278cb32"}, {"id": "fls_zskcro52q097", "number": "6.12.1:14", "link": "expressions.html#fls_zskcro52q097", "checksum": "aaafe3497cbeb87d20c2bce064dab71452f99fde846c3016a7adfde5bf68d2c6"}, {"id": "fls_ggr5i91vur0r", "number": "6.12.1:15", "link": "expressions.html#fls_ggr5i91vur0r", "checksum": "152ad98752862cbd3b4a4829db29e14e79ac33a18e63ea368a29290d48097015"}, {"id": "fls_hwalzgdidbfz", "number": "6.12.1:16", "link": "expressions.html#fls_hwalzgdidbfz", "checksum": "cd3a096fadfa9a4e5c2bf1ff1d1b22e0e9058b1df938efd918cd58c66c1af587"}, {"id": "fls_p52mfvpadu7w", "number": "6.12.1:17", "link": "expressions.html#fls_p52mfvpadu7w", "checksum": "7064baa76ad2b7cbe4bf45037a3d3a43376b5c398589deb730e98f37e190aaff"}, {"id": "fls_1cyo5qhbl1j9", "number": "6.12.1:18", "link": "expressions.html#fls_1cyo5qhbl1j9", "checksum": "aa1779e54177d30714ce6dae0a7fc956dc3b6e27c0f0422515c3d30df32a45bc"}, {"id": "fls_nb0eqky2akzt", "number": "6.12.1:19", "link": "expressions.html#fls_nb0eqky2akzt", "checksum": "1359026ad0e5317d916d695218c4b4f58af2d7ec820416374aeced27f0bba34c"}, {"id": "fls_9lt4wh9ql5ae", "number": "6.12.1:20", "link": "expressions.html#fls_9lt4wh9ql5ae", "checksum": "21e3d01dda11c45adff76b28fcfb3083d76d12ffc5536f575f6eaefd9962ae71"}, {"id": "fls_ixebnlcccmit", "number": "6.12.1:21", "link": "expressions.html#fls_ixebnlcccmit", "checksum": "7effb599da8a3c1baea1c8701cccf41ab42404559a391e8c14c3665b26623a7c"}, {"id": "fls_5yeq4oah58dl", "number": "6.12.1:22", "link": "expressions.html#fls_5yeq4oah58dl", "checksum": "19955cb453cc6cf5333d430e4649c62d88c743b44f789cba8886ce1f291ca495"}], "informational": false}, {"id": "fls_z7q8kbjwdc7g", "number": "6.12.2", "title": "Method Call Expressions", "link": "expressions.html#method-call-expressions", "paragraphs": [{"id": "fls_b7i26954j1hc", "number": "6.12.2:1", "link": "expressions.html#fls_b7i26954j1hc", "checksum": "a8dec600a3fcacac3a907b723f1e6e0ef585b3dbe889172b859c029da1de0581"}, {"id": "fls_jx3ryre0xs88", "number": "6.12.2:2", "link": "expressions.html#fls_jx3ryre0xs88", "checksum": "b1d01bd6bc611a104ed47aad0a7282f80b9aa5f9bb093b1e51119b4ff86dae42"}, {"id": "fls_3aquobo7akxu", "number": "6.12.2:3", "link": "expressions.html#fls_3aquobo7akxu", "checksum": "36804ef275767c0c846a921ac7826f0d024dc92fd5693a049479ead63e9490a6"}, {"id": "fls_11glzggtbgb3", "number": "6.12.2:4", "link": "expressions.html#fls_11glzggtbgb3", "checksum": "9ada46e3cc4d5e3179d0ad40beda5055f1e03a4f8731a1ecf6c42063c4503ee1"}, {"id": "fls_ljvj1f9fv085", "number": "6.12.2:5", "link": "expressions.html#fls_ljvj1f9fv085", "checksum": "d3f3ff24facae2599e2bfe9babbd32657f2c52c856044b7f244f1fe481811850"}, {"id": "fls_y7bj7y6davlh", "number": "6.12.2:6", "link": "expressions.html#fls_y7bj7y6davlh", "checksum": "a1dc6e9d768d9a58470a5b62a7f98741aebb317dd18c04561c5a42d074b864d6"}, {"id": "fls_oxxk3snd7ya0", "number": "6.12.2:7", "link": "expressions.html#fls_oxxk3snd7ya0", "checksum": "aaba36795e60e7bef85ccd9bf0d7e230e951f9c1837db93c32c16f9aef11c013"}, {"id": "fls_gmpq15g77o20", "number": "6.12.2:8", "link": "expressions.html#fls_gmpq15g77o20", "checksum": "54e3d591b1294cdbbf43cb074a59a53292fb8519cd37ac21987259502e5da2bf"}, {"id": "fls_pu0n9hakkym2", "number": "6.12.2:9", "link": "expressions.html#fls_pu0n9hakkym2", "checksum": "53271a5cc42f29777704b151c3231d90079f079f210d3dd483396e84a958bd3e"}, {"id": "fls_cawdkgvvd1x6", "number": "6.12.2:10", "link": "expressions.html#fls_cawdkgvvd1x6", "checksum": "9cdea4f035eb5b139ec0b8eceecfc6fa294487f2903175a7fd559ca0904fa094"}], "informational": false}, {"id": "fls_8gpcpvc99pxj", "number": "6.12.3", "title": "Call Conformance", "link": "expressions.html#call-conformance", "paragraphs": [{"id": "fls_tsn6suug9lvw", "number": "6.12.3:1", "link": "expressions.html#fls_tsn6suug9lvw", "checksum": "2f56593b719e88f913b2a91877bab40c8b6058fe2dc42ffa731142a4cc44b6b9"}, {"id": "fls_c40c6rg6rgv6", "number": "6.12.3:2", "link": "expressions.html#fls_c40c6rg6rgv6", "checksum": "777488d40bccbd5d4ec5c05ce041d775c3d195be15b1cd42fb0d35138547bc6a"}, {"id": "fls_gr1ixj9vfjum", "number": "6.12.3:3", "link": "expressions.html#fls_gr1ixj9vfjum", "checksum": "dca568771ca28709d249eaa1b082ab978e3cd7765e42472fb5c2b00252ae3012"}, {"id": "fls_jtmqa6ajsmpe", "number": "6.12.3:4", "link": "expressions.html#fls_jtmqa6ajsmpe", "checksum": "c72dd70b545db5369eb5c425b305a6a868aad21e7c1997c31e69af6975750d4f"}], "informational": false}, {"id": "fls_18k3uajrgq5f", "number": "6.13", "title": "Field Access Expressions", "link": "expressions.html#field-access-expressions", "paragraphs": [{"id": "fls_hr8qvwlhd9ts", "number": "6.13:1", "link": "expressions.html#fls_hr8qvwlhd9ts", "checksum": "0fff84454cb00168b6a6d5f137ffc3067c806ee13603a7b87dc82041c6cd2cb0"}, {"id": "fls_s2vpn4ihenpe", "number": "6.13:2", "link": "expressions.html#fls_s2vpn4ihenpe", "checksum": "9334aee9e081b26024fba1b5e854cbcddc4023c922bbb04a008c2af41f581151"}, {"id": "fls_yeuayil6uxzx", "number": "6.13:3", "link": "expressions.html#fls_yeuayil6uxzx", "checksum": "be3f919b0045750a0943ace11de2c5cc39ba2446dcb07439e06c395b68932bee"}, {"id": "fls_qqrconpa92i3", "number": "6.13:4", "link": "expressions.html#fls_qqrconpa92i3", "checksum": "51cac1aae8445b8f117fa167a6bd44ad5fe5127c2973a8a581fe8dfd3eb94ed7"}, {"id": "fls_fovs9il2h9xg", "number": "6.13:5", "link": "expressions.html#fls_fovs9il2h9xg", "checksum": "6f9439988b5641d2eaa940f1c522f3b9afac1b199078582b2c219d2205f2448a"}, {"id": "fls_r1b4n12i93pg", "number": "6.13:6", "link": "expressions.html#fls_r1b4n12i93pg", "checksum": "7d70af68eed186cc465c70dbd28390e81e61e14db425c5e779353bc99baebc47"}, {"id": "fls_kddnnz8uc15b", "number": "6.13:7", "link": "expressions.html#fls_kddnnz8uc15b", "checksum": "3cd41126945c5607334845bb4664bfe40264f046c0340a017472b82866f65a30"}, {"id": "fls_an3no949lvfw", "number": "6.13:8", "link": "expressions.html#fls_an3no949lvfw", "checksum": "c110b9dac7ab14f90979a9920f5617dd8da3a32b5807989a446a23ff0ac59bed"}, {"id": "fls_t6xmsm2nk1bc", "number": "6.13:9", "link": "expressions.html#fls_t6xmsm2nk1bc", "checksum": "840f48bd32143cc270de20c5fdb81ecce995e310ea1533781f30504f130c61fc"}, {"id": "fls_jjnyuu9kiagy", "number": "6.13:10", "link": "expressions.html#fls_jjnyuu9kiagy", "checksum": "d4fb708b3a1b8a51749778acb59d9fbf03034f9398ce5c216e9c8c1b4de9abe5"}, {"id": "fls_vani4665hijy", "number": "6.13:11", "link": "expressions.html#fls_vani4665hijy", "checksum": "54098cf568aea6d991b4f2f2937f77231043b31536d203e421fd0184f382a80a"}, {"id": "fls_6uzouesw2sod", "number": "6.13:12", "link": "expressions.html#fls_6uzouesw2sod", "checksum": "2de5624de002d9f4bb5a681605743df6efc7045c5bb8ed342cfbde01e76ae0e9"}, {"id": "fls_x27yayh4z787", "number": "6.13:13", "link": "expressions.html#fls_x27yayh4z787", "checksum": "3c17da1da1cc37beb254638ab4a54293270d991348e9aa7ce39f1e88d84c2f50"}, {"id": "fls_dimto84ifanr", "number": "6.13:14", "link": "expressions.html#fls_dimto84ifanr", "checksum": "d37495b7fca2741f3fed164400ece2dcb0653279c33efe30dbc3d17ab5fc1542"}], "informational": false}, {"id": "fls_tjyexqrx0fx5", "number": "6.14", "title": "Closure Expressions", "link": "expressions.html#closure-expressions", "paragraphs": [{"id": "fls_2d141c9a0yui", "number": "6.14:1", "link": "expressions.html#fls_2d141c9a0yui", "checksum": "258f763536cd569ba0b21eae81bcf3b4d9cfd0cafaa068416bbe158a28c94e9b"}, {"id": "fls_ugjgur0z6d4a", "number": "6.14:2", "link": "expressions.html#fls_ugjgur0z6d4a", "checksum": "db5d318ea65c25f370cc35cd9802f6a817162f3487fa20540a2640b35e34ca15"}, {"id": "fls_af1wl2mbkmfw", "number": "6.14:3", "link": "expressions.html#fls_af1wl2mbkmfw", "checksum": "07cb8bb8b2b5e0cdb6180c0299e313879b1505e490be99d8fa395a6b7e4528a3"}, {"id": "fls_wlvee6cng8oa", "number": "6.14:4", "link": "expressions.html#fls_wlvee6cng8oa", "checksum": "7c28fc0b7e17f3303465c055608659617c540771d11c39f7d3107392cddcb516"}, {"id": "fls_srbl7ptknjyk", "number": "6.14:5", "link": "expressions.html#fls_srbl7ptknjyk", "checksum": "5facc8962ddb8900252695d0175b7556877cfc69bc6d190d24f0f020b31d15f4"}, {"id": "fls_oey0ivaiu1l", "number": "6.14:6", "link": "expressions.html#fls_oey0ivaiu1l", "checksum": "d921449659c3716930839a61143720879c0a3bc9fa0aaaa3edd2467ad0ba54aa"}, {"id": "fls_fg8lx0yyt6oq", "number": "6.14:7", "link": "expressions.html#fls_fg8lx0yyt6oq", "checksum": "d81d41996d3332b44dfb6412c76f9014ca5e2783fe3b21f877ea56ca7cde0cd6"}, {"id": "fls_c3rzwuxjmbmy", "number": "6.14:8", "link": "expressions.html#fls_c3rzwuxjmbmy", "checksum": "7b4d34e53270867a1c6022c1d6c09dd73955dde1f5a9ccbf8f32155b641c84ce"}, {"id": "fls_r6gwlonr7jmr", "number": "6.14:9", "link": "expressions.html#fls_r6gwlonr7jmr", "checksum": "5ff8aef954577166a2babd4efc99233e39df14747263949097875ebfd7d4d925"}, {"id": "fls_qpeol6zhxsgh", "number": "6.14:10", "link": "expressions.html#fls_qpeol6zhxsgh", "checksum": "2d7c48ba0c3b2b6c5741e38622fa55bef0f3d46a1b6a085b2e3c3126d21b9fe2"}, {"id": "fls_yn30xuejcfxo", "number": "6.14:11", "link": "expressions.html#fls_yn30xuejcfxo", "checksum": "ed12b9fbe4052a1ba7eb2fc4bd1f32703501bde79405e96d6c44baf94e90770f"}, {"id": "fls_sje6cdvifgv5", "number": "6.14:12", "link": "expressions.html#fls_sje6cdvifgv5", "checksum": "e8f3d28b8e350eebcca9318b8567852c70b42226ac7a6d2529996342e1771d0f"}, {"id": "fls_f59fw17gsasn", "number": "6.14:13", "link": "expressions.html#fls_f59fw17gsasn", "checksum": "96e2833e76ddface46f617de5b95f512ad2b35abd451f461327fe4fc0a76a7cb"}, {"id": "fls_7w15ccc1zzxl", "number": "6.14:14", "link": "expressions.html#fls_7w15ccc1zzxl", "checksum": "74db3a943063ecca182e015d816a2e8f7c71787f47f6aaa967357bb204ce2a59"}], "informational": false}, {"id": "fls_rr908hgunja7", "number": "6.15", "title": "Loop Expressions", "link": "expressions.html#loop-expressions", "paragraphs": [{"id": "fls_y1d8kd1bdlmx", "number": "6.15:1", "link": "expressions.html#fls_y1d8kd1bdlmx", "checksum": "09fcace93e1a1ae60500274dfd8e0a817f1b0a5f6c7a9328c5d114fd53a67ca7"}, {"id": "fls_bjzjuifnptfd", "number": "6.15:2", "link": "expressions.html#fls_bjzjuifnptfd", "checksum": "6b9aad456e20df8a4de1519c1ee093b2b3f13d98920642b1d2962cf4d410309d"}, {"id": "fls_xec0cikpkyzj", "number": "6.15:3", "link": "expressions.html#fls_xec0cikpkyzj", "checksum": "b64c37154896820db0ef51d026385ee987795486bfb5d7f65c754c9a8f52467e"}, {"id": "fls_eg93m93gvwal", "number": "6.15:4", "link": "expressions.html#fls_eg93m93gvwal", "checksum": "dad07b4b2c24254b39ee962868ba851da3abfb4e88fa4ce0fef314f085672d2e"}, {"id": "fls_phpoq9ho8f1v", "number": "6.15:5", "link": "expressions.html#fls_phpoq9ho8f1v", "checksum": "777120b3d2fc21a868a2ea042e873f59436b685b72a6032b485186ad442cc673"}, {"id": "fls_aw6qczl4zpko", "number": "6.15:6", "link": "expressions.html#fls_aw6qczl4zpko", "checksum": "df46281065aeae6add6395484b3498c5cc1f56c1b6a6ff85071d30c1c1967e51"}], "informational": false}, {"id": "fls_onfyolkcbeh3", "number": "6.15.1", "title": "For Loops", "link": "expressions.html#for-loops", "paragraphs": [{"id": "fls_1bh2alh37frz", "number": "6.15.1:1", "link": "expressions.html#fls_1bh2alh37frz", "checksum": "c28dc0d6919f99a8d5a9e3b50553301a0c76ab5eca3c73ad4880a6f00f5e3400"}, {"id": "fls_fkgbin6ydkm4", "number": "6.15.1:2", "link": "expressions.html#fls_fkgbin6ydkm4", "checksum": "d45c4e602e5fcc8e446a29995cac45076b42eccda45b5e42890bddcaa67ad409"}, {"id": "fls_bmtjhkdpfgcb", "number": "6.15.1:3", "link": "expressions.html#fls_bmtjhkdpfgcb", "checksum": "ffa6684591ed758c123bd99c97ac8f3c2b564c67286bc4143b4f6b7091c371b4"}, {"id": "fls_fkxlf91wkiio", "number": "6.15.1:4", "link": "expressions.html#fls_fkxlf91wkiio", "checksum": "7f491c33585f862cacf2ca8babd388b0f8535e316309b2ba3159cc723be6d9dc"}, {"id": "fls_kuxo0on3vit6", "number": "6.15.1:5", "link": "expressions.html#fls_kuxo0on3vit6", "checksum": "2ae7fbc17de06563bab4b5def815bb8c614a97ec994c1b366a97986b82bab1ef"}, {"id": "fls_2lrzrtjhsdes", "number": "6.15.1:6", "link": "expressions.html#fls_2lrzrtjhsdes", "checksum": "1f13dbaf54d9630e2e6a595b0759c2c4a8d57f34fe6cf3c0c0bec126fc90dc54"}], "informational": false}, {"id": "fls_sf4qnd43z2wc", "number": "6.15.2", "title": "Infinite Loops", "link": "expressions.html#infinite-loops", "paragraphs": [{"id": "fls_p11qw6mtxlda", "number": "6.15.2:1", "link": "expressions.html#fls_p11qw6mtxlda", "checksum": "d4c1d7e8e87bde117f7eef40c2ed32dc1c2a695289603f5334165e62e21ea011"}, {"id": "fls_b314wjbv0zwe", "number": "6.15.2:2", "link": "expressions.html#fls_b314wjbv0zwe", "checksum": "c2591bbd597199d589f0828cc9b6c1493be8833f9309a09c85898684cdd284d0"}, {"id": "fls_rpedapxnv8w3", "number": "6.15.2:3", "link": "expressions.html#fls_rpedapxnv8w3", "checksum": "5e1a9650f85ac94e1206998655ac484d49b8d873790fa1466b26090a9c4e31b7"}, {"id": "fls_wf11yp1jwf53", "number": "6.15.2:4", "link": "expressions.html#fls_wf11yp1jwf53", "checksum": "77829c689886c3f3bb6c1dfe3b0fa04247f0751c665b3e8ac112a26ee181502f"}, {"id": "fls_q3qpcf2fz7h", "number": "6.15.2:5", "link": "expressions.html#fls_q3qpcf2fz7h", "checksum": "e8f136a176cc0fe0f3606d8a8b17073dca041afb3be51dca7baad6ec757ed5e9"}, {"id": "fls_2ulbzmuuny3g", "number": "6.15.2:6", "link": "expressions.html#fls_2ulbzmuuny3g", "checksum": "465119bb7fd453dd324afa0a8dc4238f16a6d6f166a3f9af2f36323c1c79440f"}, {"id": "fls_99imks9hj3kp", "number": "6.15.2:7", "link": "expressions.html#fls_99imks9hj3kp", "checksum": "edd1dfa6e2152066f44d29878644b07b69562f0cb1ddaaa46687407cd656772f"}, {"id": "fls_w4tj5gofwih1", "number": "6.15.2:8", "link": "expressions.html#fls_w4tj5gofwih1", "checksum": "4d4e481fa82745916564f6987fc8a2b8f1810a95fff0051bbd458414e8de7eb4"}, {"id": "fls_pg3r6nyl865", "number": "6.15.2:9", "link": "expressions.html#fls_pg3r6nyl865", "checksum": "a424a37a558f279d3eb06289eca3e8149712a515006853466b2611ed10a46123"}, {"id": "fls_lp15ilkul2uv", "number": "6.15.2:10", "link": "expressions.html#fls_lp15ilkul2uv", "checksum": "0696a4a3b5ed6eb90e20ca85c60062772b02baa6d24ebae318d2095a18fb4fc8"}], "informational": false}, {"id": "fls_5jjm1kt43axd", "number": "6.15.3", "title": "While Loops", "link": "expressions.html#while-loops", "paragraphs": [{"id": "fls_ajby242tnu7c", "number": "6.15.3:1", "link": "expressions.html#fls_ajby242tnu7c", "checksum": "76c3f0d9cbc82b5cd26d8e303f802a79c3cac14ee906d37fa08f3f82d738d214"}, {"id": "fls_13hmhzqz82v6", "number": "6.15.3:2", "link": "expressions.html#fls_13hmhzqz82v6", "checksum": "dfc103919303cee91ca86794643ffd9901aa77325778c63ba280365f9d864217"}, {"id": "fls_d7ofrq3777kq", "number": "6.15.3:3", "link": "expressions.html#fls_d7ofrq3777kq", "checksum": "caa1e7db03706c0b574634ae9a32416e067db8cda6a47d5adbd5164ff8d0814e"}, {"id": "fls_p8iytn6kzcva", "number": "6.15.3:4", "link": "expressions.html#fls_p8iytn6kzcva", "checksum": "e77b64bb75965059fee8ba69865a044c98d24a10f4ff9b87845e4bf0c5be37ec"}, {"id": "fls_s6hra5spz64w", "number": "6.15.3:5", "link": "expressions.html#fls_s6hra5spz64w", "checksum": "3e51cb18f2c75e888c4486c269a44ff5c2f930b7d852028948bddcd9c20b982a"}, {"id": "fls_1i7hm645h7ox", "number": "6.15.3:6", "link": "expressions.html#fls_1i7hm645h7ox", "checksum": "d3cdb9b835ebb3138befce2f6ff348e0b0070506326d99c7ecd043640a577567"}, {"id": "fls_5x0du3u1jwd3", "number": "6.15.3:7", "link": "expressions.html#fls_5x0du3u1jwd3", "checksum": "e8d6e37169c33a35638460e2519303331bb0a51968caf4db78f6bf0a423227cb"}, {"id": "fls_23uluvhhoct6", "number": "6.15.3:8", "link": "expressions.html#fls_23uluvhhoct6", "checksum": "06ba123f6bbe35320b7d84ef5d7e09b874731dd5b73c29660397c6fbff9ec26c"}, {"id": "fls_k7g4cac93617", "number": "6.15.3:9", "link": "expressions.html#fls_k7g4cac93617", "checksum": "5ad23b0907a29189fa1a74f8bf5476fb33b2fc896867ee05578a56cb100c6a62"}, {"id": "fls_j08k3brdpgno", "number": "6.15.3:10", "link": "expressions.html#fls_j08k3brdpgno", "checksum": "12585479c350e3e0843e2d87f37d3677d4633473dca2547f15f57202375818d7"}], "informational": false}, {"id": "fls_m6kd5i9dy8dx", "number": "6.15.4", "title": "While Let Loops", "link": "expressions.html#while-let-loops", "paragraphs": [{"id": "fls_fmdlyp9r9zl7", "number": "6.15.4:1", "link": "expressions.html#fls_fmdlyp9r9zl7", "checksum": "65769f4b7f0bf9a9fcbb5e6b26a1f58966bc356349e7c74d9ce48fc53a248d4e"}, {"id": "fls_gtfslepwhtes", "number": "6.15.4:2", "link": "expressions.html#fls_gtfslepwhtes", "checksum": "dbcd55ded2490510583c761de4a78678e93ec14ed0ce9f217dac1a86f1afb55f"}, {"id": "fls_ptq4ligioatn", "number": "6.15.4:3", "link": "expressions.html#fls_ptq4ligioatn", "checksum": "d93a03586b9947d27de86fb8e62b6a156cb8bb2f62500dcd24c757171cc8eff7"}, {"id": "fls_z2ht5iaat5ag", "number": "6.15.4:4", "link": "expressions.html#fls_z2ht5iaat5ag", "checksum": "8591ccb83f7eceed6dcd5cc4e8fe84102a7018a1e95b2845425471f83a3d18ac"}, {"id": "fls_pacf1uavh1qt", "number": "6.15.4:5", "link": "expressions.html#fls_pacf1uavh1qt", "checksum": "8868caa2d82cf27983ef85d9c1fdef0ae951dce04f87c0b087973b7b2eee4c45"}], "informational": false}, {"id": "fls_uusi0zej55is", "number": "6.15.5", "title": "Loop Labels", "link": "expressions.html#loop-labels", "paragraphs": [{"id": "fls_tx5u743391h7", "number": "6.15.5:1", "link": "expressions.html#fls_tx5u743391h7", "checksum": "854fe727482c863a6ac68633f1b03cdb775d6fd369dfc1555967870c794666d0"}, {"id": "fls_7hc8yboeaho0", "number": "6.15.5:2", "link": "expressions.html#fls_7hc8yboeaho0", "checksum": "8e78060ed87d5bdc97d7a80f104d547001e75fe63dda373498822a1cea769cb1"}], "informational": false}, {"id": "fls_jr4tpuyksr75", "number": "6.15.6", "title": "Break Expressions", "link": "expressions.html#break-expressions", "paragraphs": [{"id": "fls_i5ko1t2wbgxe", "number": "6.15.6:1", "link": "expressions.html#fls_i5ko1t2wbgxe", "checksum": "76341e2e5ec7766dc0c0efeb173d69290676e7ddc2ae0dc881cc567505c9ab59"}, {"id": "fls_jiykbp51909f", "number": "6.15.6:2", "link": "expressions.html#fls_jiykbp51909f", "checksum": "3f63777511e3bf35174b31fe5c348a66c360584e8603e3ce47320961aba23159"}, {"id": "fls_gnuptkuafkni", "number": "6.15.6:3", "link": "expressions.html#fls_gnuptkuafkni", "checksum": "786c9c18c0260006c1dbd6e14962cec2fb012e6d4697db9bd8a075e5fe0f8f81"}, {"id": "fls_7frvr2nm2mcj", "number": "6.15.6:4", "link": "expressions.html#fls_7frvr2nm2mcj", "checksum": "22ee000894d4113f8cb1e254fee6f2cb6156c3c3705be34e97c6b7105051db59"}, {"id": "fls_54d5uydc87td", "number": "6.15.6:5", "link": "expressions.html#fls_54d5uydc87td", "checksum": "9f98b146f5e3f519d49c4a5cc27e5c636fc58009070d51a8cdba623f47fea788"}, {"id": "fls_ghxns2nggffj", "number": "6.15.6:6", "link": "expressions.html#fls_ghxns2nggffj", "checksum": "2294fcd2876d3e68ee5271da38ac8445007b7d3658522624e1ec58b99b815478"}, {"id": "fls_3hi7fu42svyx", "number": "6.15.6:7", "link": "expressions.html#fls_3hi7fu42svyx", "checksum": "ce00d8330f82a3349d3e60bcf3723d65a6615e7770383dd754ef0e99c593915c"}, {"id": "fls_dnnq1zym8ii0", "number": "6.15.6:8", "link": "expressions.html#fls_dnnq1zym8ii0", "checksum": "8be6b0876309d2276c585936c4a66f82b7a0f32e63bbfcbb8ebbb5e2c256835e"}, {"id": "fls_1wdybpfldj7q", "number": "6.15.6:9", "link": "expressions.html#fls_1wdybpfldj7q", "checksum": "35f41aebc07416037d09ff5a97c5253fce2de7df9e75c929d9de4fbe767e21d2"}, {"id": "fls_8yore99adr22", "number": "6.15.6:10", "link": "expressions.html#fls_8yore99adr22", "checksum": "4fd91645624561c1d1bbd9f575a8575e8b09aac121d44079892a624a618ab957"}, {"id": "fls_60imbzwg3e2x", "number": "6.15.6:11", "link": "expressions.html#fls_60imbzwg3e2x", "checksum": "321bd90dbdfcaa9c7b4ceb894803b3b97b0a87dfd90b12002b5478f31bedb011"}, {"id": "fls_l0c05wa9q97w", "number": "6.15.6:12", "link": "expressions.html#fls_l0c05wa9q97w", "checksum": "53c790e0a17baa1dcef15441e67d7fe84f88a8a02a1b883733d73bc34ce24cf8"}, {"id": "fls_bgd7d5q69q0g", "number": "6.15.6:13", "link": "expressions.html#fls_bgd7d5q69q0g", "checksum": "4b8008568153111179d64a9818853fd4ced12608e93c7cb391d3bebbca4d7e52"}, {"id": "fls_yb8jv4mkmki0", "number": "6.15.6:14", "link": "expressions.html#fls_yb8jv4mkmki0", "checksum": "ed86179c1505cf9edbac787d45ace6e323297724305d5a1ba5d37bd9159fec7a"}, {"id": "fls_d7l1y2qbe8br", "number": "6.15.6:15", "link": "expressions.html#fls_d7l1y2qbe8br", "checksum": "8bb044e8939f8436404c3d077d1c30ecf3eaf854fd9ca77d18ce884f8a527f43"}, {"id": "fls_56szfyilc06", "number": "6.15.6:16", "link": "expressions.html#fls_56szfyilc06", "checksum": "b4a2791affedd1510d06abce351328641e828c613c591847cc874cefa3bbd3b7"}, {"id": "fls_jnpx8mx1oa7n", "number": "6.15.6:17", "link": "expressions.html#fls_jnpx8mx1oa7n", "checksum": "78fd4e85f7ed2bdde136e635abab8b71e8bef862ab9d2f0e1298e80b8cd25b22"}, {"id": "fls_l2kp8mw6bjj0", "number": "6.15.6:18", "link": "expressions.html#fls_l2kp8mw6bjj0", "checksum": "cc7470153aa2f9c1f440ab45ce0dc158071c6ba5256ba0ccbf8803dc062ab353"}, {"id": "fls_2nmadhe3ismj", "number": "6.15.6:19", "link": "expressions.html#fls_2nmadhe3ismj", "checksum": "814a050d4fc9ee7f0bab1848c0223b4bd667b6757604dcae405c723fb3e9211e"}, {"id": "fls_xpflrl78qme1", "number": "6.15.6:20", "link": "expressions.html#fls_xpflrl78qme1", "checksum": "7b9921e75e5329e2cf5d41b41758b55590769f045e313e6ba78bfe34b35d3d0f"}, {"id": "fls_wfaw1pg1yxdm", "number": "6.15.6:21", "link": "expressions.html#fls_wfaw1pg1yxdm", "checksum": "3bb40dd59b9591b997eb61cb83d0183babede69184aca68aa875556213ae03ed"}, {"id": "fls_aurifmm8rpdp", "number": "6.15.6:22", "link": "expressions.html#fls_aurifmm8rpdp", "checksum": "683d5c1557155d46d5564039411fab17d251fd2aadf6db08e29702326f7126ac"}, {"id": "fls_32fwis9pxh77", "number": "6.15.6:23", "link": "expressions.html#fls_32fwis9pxh77", "checksum": "d88f1c75f863c6cbffa69c29657e1115c53a70912e3b63cf47add2713ee6a72a"}], "informational": false}, {"id": "fls_sjwrlwvpulp", "number": "6.15.7", "title": "Continue Expressions", "link": "expressions.html#continue-expressions", "paragraphs": [{"id": "fls_wzs6kz9ffqzt", "number": "6.15.7:1", "link": "expressions.html#fls_wzs6kz9ffqzt", "checksum": "49b3e7e14f92deb7aa014630cbd240f23c879f0e06215675083e2cc8e2ea0ca4"}, {"id": "fls_r5ke7b9n7k3s", "number": "6.15.7:2", "link": "expressions.html#fls_r5ke7b9n7k3s", "checksum": "74df3acc9f454cef49a7ba6430fa2714b9bdf1d480f791367943a7f0df8f90a8"}, {"id": "fls_ckm6i9c3s6j8", "number": "6.15.7:3", "link": "expressions.html#fls_ckm6i9c3s6j8", "checksum": "377ef19ecd70653a9346c61d53ea2bcb592cba726b2701fec87e85c80391b5ba"}, {"id": "fls_d0bmw8xiw5nk", "number": "6.15.7:4", "link": "expressions.html#fls_d0bmw8xiw5nk", "checksum": "ff54a914ac772400ab7f8e1137740ab8ed4cb109a88eac4469cd396aaa3b0ee4"}, {"id": "fls_vmyuuptfnwek", "number": "6.15.7:5", "link": "expressions.html#fls_vmyuuptfnwek", "checksum": "09b36c35bd51fddd17ca377ef398ff6638506a4ae181b94585b82c3ce0acdadf"}, {"id": "fls_gm74eo754rq9", "number": "6.15.7:6", "link": "expressions.html#fls_gm74eo754rq9", "checksum": "fabfe690b8b6598067a744cd77a4d7aa3fc628d1441118ac4233532e401ee3b7"}, {"id": "fls_gvuesa5ekeif", "number": "6.15.7:7", "link": "expressions.html#fls_gvuesa5ekeif", "checksum": "361c2bfd385803a13b6a123bc7e35986a8fbfb5c166507aad04479bd53e8c545"}, {"id": "fls_767gv7zhqamh", "number": "6.15.7:8", "link": "expressions.html#fls_767gv7zhqamh", "checksum": "6c2dd73a6b8b4a5e78015a12ab14a9efbd1519d9a162ef5db39c49d16fa51aca"}], "informational": false}, {"id": "fls_18swodqqzadj", "number": "6.16", "title": "Range Expressions", "link": "expressions.html#range-expressions", "paragraphs": [{"id": "fls_bi82rusji8g0", "number": "6.16:1", "link": "expressions.html#fls_bi82rusji8g0", "checksum": "c091d4ede2953dfdbd93f7b66ba436e8700318eb591a6906daa25ebbe45b07fc"}, {"id": "fls_msyv4oyk5zp9", "number": "6.16:2", "link": "expressions.html#fls_msyv4oyk5zp9", "checksum": "e98911288d83977a62fecbf208cd7217898c4496c84ba45a3b8a8d01581665b7"}, {"id": "fls_f648uuxxh4vk", "number": "6.16:3", "link": "expressions.html#fls_f648uuxxh4vk", "checksum": "7fc1ef96655d5961f2ac73c23730598d903635928712a8149267cdcf8ce0fc34"}, {"id": "fls_9pl4629t54yq", "number": "6.16:4", "link": "expressions.html#fls_9pl4629t54yq", "checksum": "0c208741e7e3e75e8bd5586585edc747be3a9ef33c4a6fb340425fb7d92612fb"}, {"id": "fls_xaumwogwbv3g", "number": "6.16:5", "link": "expressions.html#fls_xaumwogwbv3g", "checksum": "4ef87517cf959f7fcbd556c7ec5b3bc137bc9084aa1cc12a22c2660c1a2ba0f5"}, {"id": "fls_exa2ufugnpgc", "number": "6.16:6", "link": "expressions.html#fls_exa2ufugnpgc", "checksum": "12ba48b3f294024fc43fdd49467a28d82ac7c2a6e6e852a9bf8a9201823d0f62"}, {"id": "fls_jqy0p155btca", "number": "6.16:7", "link": "expressions.html#fls_jqy0p155btca", "checksum": "bf443cd1c50e8fa7043e4b3aea7c4fc63e0aabd2860454a6ce5f04b4a01c2d84"}, {"id": "fls_ppustuqdji7b", "number": "6.16:8", "link": "expressions.html#fls_ppustuqdji7b", "checksum": "a794ca0dde4e9941ed5ae749e6b790ce7034083245dfd6d450ff1081510c71c6"}, {"id": "fls_ke2fpgodq84u", "number": "6.16:9", "link": "expressions.html#fls_ke2fpgodq84u", "checksum": "d1e65f1155e1acd346f47a814a51eeb8a7c9207a8e5936b4b1a1bd7d1f3adb7f"}, {"id": "fls_zb6jk6qykun6", "number": "6.16:10", "link": "expressions.html#fls_zb6jk6qykun6", "checksum": "6ba6fc0058159bd884a7dd7c3744da344c3e7870545e9954e409937d1c674fe8"}, {"id": "fls_x67xo25n0qlz", "number": "6.16:11", "link": "expressions.html#fls_x67xo25n0qlz", "checksum": "afd95e25d1673ff3ff51f1aa419a774d75c988e1c753d9735a8a1559c15f20df"}, {"id": "fls_m6n0gvg3ct1b", "number": "6.16:12", "link": "expressions.html#fls_m6n0gvg3ct1b", "checksum": "f1e8b3694025f031c332d8b550a1ba567b40e183315963898b053e00bd60cdf7"}, {"id": "fls_yvh5cdgzevni", "number": "6.16:13", "link": "expressions.html#fls_yvh5cdgzevni", "checksum": "a8670d453f14933a28fe2abe58141e9f74e15c9c8adb968d2b14fb70bb3f5503"}, {"id": "fls_lh9my7g8oflq", "number": "6.16:14", "link": "expressions.html#fls_lh9my7g8oflq", "checksum": "b17a0ece3cf29a9af5df5c9a8b2301406bb89adbee4bda56aa4d0fa47658b5d6"}, {"id": "fls_livflk52xaj9", "number": "6.16:15", "link": "expressions.html#fls_livflk52xaj9", "checksum": "06d23443cbb3466875381e861eeb4acdcd6caddc9e7cbee7fab979d4b33863c1"}, {"id": "fls_vj213j9bj61y", "number": "6.16:16", "link": "expressions.html#fls_vj213j9bj61y", "checksum": "579a72c0c0f0bd83e5d75ab49631dcb0a8276f928990bcc059a11b0d30d3a98c"}, {"id": "fls_5a1uivj19kob", "number": "6.16:17", "link": "expressions.html#fls_5a1uivj19kob", "checksum": "3415e8d798ccb3986f3e21b2a1386f9cd327b61eb654ef6db8275472983bf2a9"}, {"id": "fls_k611yoc8hk0n", "number": "6.16:18", "link": "expressions.html#fls_k611yoc8hk0n", "checksum": "50f2d043bd7c1a6899cf0ac4004941ea2652c098001ea93bdf7dbce10b4719cf"}, {"id": "fls_m0slikrulnvd", "number": "6.16:19", "link": "expressions.html#fls_m0slikrulnvd", "checksum": "103de571717eea1f829b13cceed6230de05a7fa91e9c10b005e055f1db42a0a6"}, {"id": "fls_1gc436ee1nzm", "number": "6.16:20", "link": "expressions.html#fls_1gc436ee1nzm", "checksum": "d30a7c9cf59ba8eee1317e7315939208349cb11f6cbb39fdb58a660731dbf7ec"}, {"id": "fls_8sfjw83irpre", "number": "6.16:21", "link": "expressions.html#fls_8sfjw83irpre", "checksum": "ee1a6d56abdc0108429b4b67cd0d856c84167a672c4536ab6341f97d4f6458cd"}, {"id": "fls_5xw4opkbxhsc", "number": "6.16:22", "link": "expressions.html#fls_5xw4opkbxhsc", "checksum": "33c5a2d77620d604b76dfc94b43df1deba183b280e340cefcc72574e4464f421"}, {"id": "fls_ehseim1p479z", "number": "6.16:23", "link": "expressions.html#fls_ehseim1p479z", "checksum": "d1fffaa1ad08e71849e32997524e5b534b53af3d4269c127b794d379f3bc2129"}], "informational": false}, {"id": "fls_nlzksiu8y3z9", "number": "6.17", "title": "If and If Let Expressions", "link": "expressions.html#if-and-if-let-expressions", "paragraphs": [], "informational": false}, {"id": "fls_mkut7gut49gi", "number": "6.17.1", "title": "If Expressions", "link": "expressions.html#if-expressions", "paragraphs": [{"id": "fls_2i4fbxbbvpf1", "number": "6.17.1:1", "link": "expressions.html#fls_2i4fbxbbvpf1", "checksum": "fed2673ffa3a36e3d8eea0ff13a1313ace5bd91f22d1a6589ae9660c512118e8"}, {"id": "fls_5azwlk7hav1k", "number": "6.17.1:2", "link": "expressions.html#fls_5azwlk7hav1k", "checksum": "712169ee265f92b134c3f6fb57963cd9759c2cd5683f0424988fe3bb68bb64e7"}, {"id": "fls_r7gzxo16esri", "number": "6.17.1:3", "link": "expressions.html#fls_r7gzxo16esri", "checksum": "24d6b64329dc27dfdf593e76d519f5ae054d199e4518e0738c4de51bf51a4e94"}, {"id": "fls_iv9t4nfs4f6w", "number": "6.17.1:4", "link": "expressions.html#fls_iv9t4nfs4f6w", "checksum": "0850025c14ab883b37fa1861427a418f09ca3b6e0847d51a890ffaa2652452e7"}, {"id": "fls_i9sxf2q5jjqt", "number": "6.17.1:5", "link": "expressions.html#fls_i9sxf2q5jjqt", "checksum": "d43533dc4e30c579c4621913ade291f4b6ce36cb6a11a56fe5604995829745cd"}, {"id": "fls_1e8qer6bh2f3", "number": "6.17.1:6", "link": "expressions.html#fls_1e8qer6bh2f3", "checksum": "14a5fdd342f43c1ff636462e60afe9fe909a5f38112627348b199ae2ee002edc"}, {"id": "fls_p5pjxk5xfcbx", "number": "6.17.1:7", "link": "expressions.html#fls_p5pjxk5xfcbx", "checksum": "e99f63a7d1d8d378bdcd5535ffac111aa7ed9148da25a75e8dab381f952ed846"}, {"id": "fls_mpq7gicosgkt", "number": "6.17.1:8", "link": "expressions.html#fls_mpq7gicosgkt", "checksum": "6c50b2d33d2418fa51153578714c4068528621dd3a445810a81473047b4a5d5b"}, {"id": "fls_yhlyzef9h97q", "number": "6.17.1:9", "link": "expressions.html#fls_yhlyzef9h97q", "checksum": "8c2fd758de86a4133bb6563e754fa800418e8e439e99df337ded2a469af6527b"}, {"id": "fls_w7lq4dkoyuf7", "number": "6.17.1:10", "link": "expressions.html#fls_w7lq4dkoyuf7", "checksum": "5fdcd07260c9fbc40cbe285b674e158c7bf751f43e92b01e3880bcc6aba59521"}, {"id": "fls_5udx9zyeg5ga", "number": "6.17.1:11", "link": "expressions.html#fls_5udx9zyeg5ga", "checksum": "56c965d3891816793bf7330f4c08c63924c6a0b54ca2b9eeb47ea59f3ccfc2ae"}, {"id": "fls_67l4j48n6p7o", "number": "6.17.1:12", "link": "expressions.html#fls_67l4j48n6p7o", "checksum": "63a306e9f8570a302ee746010c5e0e69b20d7386957aff9338e0f773e20d22f3"}, {"id": "fls_e8gd5lzcaifw", "number": "6.17.1:13", "link": "expressions.html#fls_e8gd5lzcaifw", "checksum": "20d907a5cbe82489d0014d547facc267d3c0c97e818349083a6b2185fd51dbc6"}], "informational": false}, {"id": "fls_p0t1ch115tra", "number": "6.17.2", "title": "If Let Expressions", "link": "expressions.html#if-let-expressions", "paragraphs": [{"id": "fls_dsrjup2umr9", "number": "6.17.2:1", "link": "expressions.html#fls_dsrjup2umr9", "checksum": "89d8336661af98acfc92ac73c9a7646d5685ad8fb9a9c7ee727522c13e40f937"}, {"id": "fls_4vyrufo4qdeg", "number": "6.17.2:2", "link": "expressions.html#fls_4vyrufo4qdeg", "checksum": "cb91721c2c002487d3e82e8dceacd7595beb7cd8fe5de78218f6db9ec3b5ae27"}, {"id": "fls_qfnwwvzxsl3", "number": "6.17.2:3", "link": "expressions.html#fls_qfnwwvzxsl3", "checksum": "bc1bd4a44da1387d7a93190dd68ebc0396e1ecd754b7f47c469dcfee25264ce1"}, {"id": "fls_ler4iqwdbcba", "number": "6.17.2:4", "link": "expressions.html#fls_ler4iqwdbcba", "checksum": "ab6b81b2725ca076df34546e9b8460637727d1373cf69dd411daa57b1dca9eb1"}, {"id": "fls_ijo73wtz1sy", "number": "6.17.2:5", "link": "expressions.html#fls_ijo73wtz1sy", "checksum": "3c569b4b1a7dad55b309e8e602764e8a557ccf8b0ee06a5f865bb3ef7d1eb28d"}, {"id": "fls_qeho5iqiy59", "number": "6.17.2:6", "link": "expressions.html#fls_qeho5iqiy59", "checksum": "d30896d56b0bcbc14b8bd25c419011f7f60c59d2d837f98326500728db352704"}, {"id": "fls_nhngr8y850dt", "number": "6.17.2:7", "link": "expressions.html#fls_nhngr8y850dt", "checksum": "c6e6c37f75c0e92c4b7ad3bed59c5bc6e8cbbaa12fbb531e90c5623ffc57d20d"}, {"id": "fls_8fg2ufaxjkv5", "number": "6.17.2:8", "link": "expressions.html#fls_8fg2ufaxjkv5", "checksum": "61a7161cbd8deb105732aa6f31fec380f4a218fb64f1a62dcf0a5596974f4a48"}], "informational": false}, {"id": "fls_e5td0fa92fay", "number": "6.18", "title": "Match Expressions", "link": "expressions.html#match-expressions", "paragraphs": [{"id": "fls_ei4pbeksd1v8", "number": "6.18:1", "link": "expressions.html#fls_ei4pbeksd1v8", "checksum": "7197f8e20c7dfa8c46878c8428779c2e06d872e3b47815cd767d14f1eb71d39b"}, {"id": "fls_l45i24ikfavm", "number": "6.18:2", "link": "expressions.html#fls_l45i24ikfavm", "checksum": "530646a0bfd42c27bfaf45748d4f0b8c089e6d313d3c67905017587926ce9d17"}, {"id": "fls_d9gerg12hm2d", "number": "6.18:3", "link": "expressions.html#fls_d9gerg12hm2d", "checksum": "65fd317e7555f0c5f1f52698ac1bd1429fe681957715153a930e9020fb092c9b"}, {"id": "fls_oj8dg28xw5yp", "number": "6.18:4", "link": "expressions.html#fls_oj8dg28xw5yp", "checksum": "414ff72de304b8d5f51ed55fa6648080dce6821de269cd8d7f5a6927216e20ce"}, {"id": "fls_lrdrtedyz28i", "number": "6.18:5", "link": "expressions.html#fls_lrdrtedyz28i", "checksum": "9d8569c641c0d6d974ec123f03529ea557e3c78043b29ba6ed204b727c336170"}, {"id": "fls_8wjdichfxp0y", "number": "6.18:6", "link": "expressions.html#fls_8wjdichfxp0y", "checksum": "da5e7dad20db12da8235313f12dfaa6c7c4fee255e9067d80e1e54a475a9c70a"}, {"id": "fls_hs1rr54hu18w", "number": "6.18:7", "link": "expressions.html#fls_hs1rr54hu18w", "checksum": "7e6b4209512d832728f5d5b5fd8f06c27031fa1e50806d1bbd587358cf9c5acc"}, {"id": "fls_rpmoaaz6lfli", "number": "6.18:8", "link": "expressions.html#fls_rpmoaaz6lfli", "checksum": "6790ea54211b198f819b8d618322dc387a7add951a7e9732ae8e44ba732b6557"}, {"id": "fls_knv1affr2o8t", "number": "6.18:9", "link": "expressions.html#fls_knv1affr2o8t", "checksum": "48a640f2c735c124058c84096328af56fa56e10d68c3f4ba796121091e68e732"}, {"id": "fls_bzhz5wjd90ii", "number": "6.18:10", "link": "expressions.html#fls_bzhz5wjd90ii", "checksum": "25b69156c5ec7a484b25307fd4c216b80ecdd701ee88b542bb71ec625018c38f"}, {"id": "fls_17ag0wzdbxv6", "number": "6.18:11", "link": "expressions.html#fls_17ag0wzdbxv6", "checksum": "d4a039ef3435b02a470dc1d412a131b96b9fac9aca97389cfcc27e0fed17b2ba"}, {"id": "fls_5w964phrru82", "number": "6.18:12", "link": "expressions.html#fls_5w964phrru82", "checksum": "5dcf378849bb441ddeaea2ae698f7a8fd5453cd13880145ac1656711d46c7d52"}, {"id": "fls_g6xyz0beps3o", "number": "6.18:13", "link": "expressions.html#fls_g6xyz0beps3o", "checksum": "bc84acf293d931d72ff30608d1eafef3410b249ab96ab4f02123a8e8bd23074f"}, {"id": "fls_8dba4o5qg8js", "number": "6.18:14", "link": "expressions.html#fls_8dba4o5qg8js", "checksum": "a8bcecdd608b33d4545878847b9586532fdf5d59d7e323bbaf48e998335caa68"}, {"id": "fls_e02um1gb89d0", "number": "6.18:15", "link": "expressions.html#fls_e02um1gb89d0", "checksum": "48fe049c281a0532117b572c686a901f7a8fc2c108c67e1b42e1cf588a70d507"}, {"id": "fls_4sh2yrslszvb", "number": "6.18:16", "link": "expressions.html#fls_4sh2yrslszvb", "checksum": "6b2ccfaf6dbf738498a359ba99443b962f7e4e3e4acf6e47eb23204ddaaec6e2"}, {"id": "fls_g551l8r8yh6d", "number": "6.18:17", "link": "expressions.html#fls_g551l8r8yh6d", "checksum": "1e2c82e1db38f740afc388f53a6718916315308d08a8fcf7b6bc4b1778b36f41"}, {"id": "fls_y44jzkbv74bv", "number": "6.18:18", "link": "expressions.html#fls_y44jzkbv74bv", "checksum": "d945d5ada6e85b123bd526bb61b64748fcc3ecca5d7eb4f7ea549d5c8594c855"}, {"id": "fls_jwxykea99psw", "number": "6.18:19", "link": "expressions.html#fls_jwxykea99psw", "checksum": "315118e0f1a4b887efdc0b64182a55a6ae9a277af6fd11311f66dbfab8e42370"}, {"id": "fls_pgulnjeoxwtj", "number": "6.18:20", "link": "expressions.html#fls_pgulnjeoxwtj", "checksum": "0f64f2e263255b0282cbd9f8bc2ec5df5d5f04cd1fe151353a3f58dd762a6350"}, {"id": "fls_2dg7wl68z7ar", "number": "6.18:21", "link": "expressions.html#fls_2dg7wl68z7ar", "checksum": "d845839ee3d13f10e6350246fd7aea5117dc3017658e097bb9822c40ab453f89"}, {"id": "fls_yv11febo0kyb", "number": "6.18:22", "link": "expressions.html#fls_yv11febo0kyb", "checksum": "f16151a0a73fadcca22c40f8de991f4579a338f3bb1885e582c86f8995bb90ad"}, {"id": "fls_mvi9z1x836qu", "number": "6.18:23", "link": "expressions.html#fls_mvi9z1x836qu", "checksum": "a51004381cd393164fff1a2ba32606870a9d6064cce8fe9cf04d85b20f1857be"}, {"id": "fls_81nnizrxgrsm", "number": "6.18:24", "link": "expressions.html#fls_81nnizrxgrsm", "checksum": "b7e2794864f886686ee1f2c3393a36af7d0ad00b8d9d342bd6712091b6f1bc52"}, {"id": "fls_4dv7x9nh2h4e", "number": "6.18:25", "link": "expressions.html#fls_4dv7x9nh2h4e", "checksum": "b5b06a8ec68f8cc404232c87395c66a7634550ebcfb41fe026f61ec8e7785720"}, {"id": "fls_k7kliy101m0f", "number": "6.18:26", "link": "expressions.html#fls_k7kliy101m0f", "checksum": "cd34050016c198eb7459bc1f8a89363f0daf54e667d2277770bcf88a43796ec2"}, {"id": "fls_k68zkb6jv0vz", "number": "6.18:27", "link": "expressions.html#fls_k68zkb6jv0vz", "checksum": "2eb26463fe93f6076fcf3752bb63be428ff5539a4061bee87dac732ca6182161"}, {"id": "fls_gbb6wbmher5z", "number": "6.18:28", "link": "expressions.html#fls_gbb6wbmher5z", "checksum": "bf133e4ef0b4ff6e039b8a1ac30b2ea24adf705af5cf2a92af6a46b0542ab704"}, {"id": "fls_jl4av757yx8j", "number": "6.18:29", "link": "expressions.html#fls_jl4av757yx8j", "checksum": "3a2f280736c3d305d7ca9e0547ba1b7b7f219322813aed47634cfef729fbace8"}, {"id": "fls_wkh5wztauwhu", "number": "6.18:30", "link": "expressions.html#fls_wkh5wztauwhu", "checksum": "99aeee8cae96d8f5aa2d485ff74576d7b559450872e3932b835df6d75692561f"}, {"id": "fls_f5f0x8jstp1g", "number": "6.18:31", "link": "expressions.html#fls_f5f0x8jstp1g", "checksum": "c442e637a527c65b19b05ec6346d50fbb5605aa1befe1daf2e9621e1e659e9c9"}, {"id": "fls_yk8l9zjh7i0d", "number": "6.18:32", "link": "expressions.html#fls_yk8l9zjh7i0d", "checksum": "899b935a103f2e7391edfc0e0faf91cfe3c37b0aa755206025dc4706142bafa9"}, {"id": "fls_sbtx1l6n2tp2", "number": "6.18:33", "link": "expressions.html#fls_sbtx1l6n2tp2", "checksum": "f6ce6b0fca0ca80890c4285bd94cb537a986b8329e5ec02e54434f4244ebad3e"}], "informational": false}, {"id": "fls_8l74abhlxzdl", "number": "6.19", "title": "Return Expressions", "link": "expressions.html#return-expressions", "paragraphs": [{"id": "fls_u7jk4j8gkho", "number": "6.19:1", "link": "expressions.html#fls_u7jk4j8gkho", "checksum": "fad4d074aede9aaedebde1631b2540a5e4229618040f881747a66eafcb2621c5"}, {"id": "fls_5v3j5ghhw8j8", "number": "6.19:2", "link": "expressions.html#fls_5v3j5ghhw8j8", "checksum": "964cb17edce65bff3f21bcace0a60f5cbf1e555dc894ff6898a12192e60e13e2"}, {"id": "fls_7ck4lmqmeqcv", "number": "6.19:3", "link": "expressions.html#fls_7ck4lmqmeqcv", "checksum": "0c8a79c75b5842528b1f28d6c36a9a0d505ef82b505c04410cf965ec63e3bbd6"}, {"id": "fls_r610t5vsi7bx", "number": "6.19:4", "link": "expressions.html#fls_r610t5vsi7bx", "checksum": "204b8d5c44f33462360cd6b1c4d32ec43476cc7fae9fbe3cdb7d202370669fb3"}, {"id": "fls_njndlx2rps2k", "number": "6.19:5", "link": "expressions.html#fls_njndlx2rps2k", "checksum": "76736f845693590923018fe78dbca8a616a3c75e4a360a8019e96c968ce1310d"}, {"id": "fls_tjksia7prao1", "number": "6.19:6", "link": "expressions.html#fls_tjksia7prao1", "checksum": "340f5b5067fddff442d4f14b2fce354729a502a270245f8ee85a36b47cb19b17"}, {"id": "fls_bqmwlona6l5w", "number": "6.19:7", "link": "expressions.html#fls_bqmwlona6l5w", "checksum": "46b2bd419c605d57349d4c78e88591ca5c51aff04b69be70ec3b65f872c907c0"}, {"id": "fls_d9avvfi548t7", "number": "6.19:8", "link": "expressions.html#fls_d9avvfi548t7", "checksum": "edb148b4cf98d6f392c6839fd5d5421e348cd7de544dcc6543eafdbaa13e951b"}, {"id": "fls_o3fc1z2mn8zc", "number": "6.19:9", "link": "expressions.html#fls_o3fc1z2mn8zc", "checksum": "81ed732b837640d66610e42b451cd80d4596a9dac8492f30919573a8be46d259"}, {"id": "fls_bbf54ukld7j9", "number": "6.19:10", "link": "expressions.html#fls_bbf54ukld7j9", "checksum": "082696c41973e38a1a35b25a89b46c05432f17d4e2bbeb5d917eba586f81cb5e"}, {"id": "fls_99ea30a5mulj", "number": "6.19:11", "link": "expressions.html#fls_99ea30a5mulj", "checksum": "efaafe3c78f2478146953b5fc46f3627c854266fc0a4fe741a9a548c03877473"}, {"id": "fls_ubwj8uj6sbgt", "number": "6.19:12", "link": "expressions.html#fls_ubwj8uj6sbgt", "checksum": "e96c5c840968268932035da7dcdb11c1400fbac1564ceab31a811ecba499ec4d"}], "informational": false}, {"id": "fls_hyrbmfmf6r8g", "number": "6.20", "title": "Await Expressions", "link": "expressions.html#await-expressions", "paragraphs": [{"id": "fls_sjz5s71hwm7l", "number": "6.20:1", "link": "expressions.html#fls_sjz5s71hwm7l", "checksum": "da4e5da6a4bdb42745c483a169cbf0174bac069a47d8e4fc4547d8a4c192dac7"}, {"id": "fls_vhchgab59jvd", "number": "6.20:2", "link": "expressions.html#fls_vhchgab59jvd", "checksum": "59ff4e3c6717c818b5ec41ac9bcdfc6f396a1d404c481e8b6bb7071eb4407a17"}, {"id": "fls_k9pncajmhgk1", "number": "6.20:3", "link": "expressions.html#fls_k9pncajmhgk1", "checksum": "5f2dae4da2ea9520c29d1330b7448bfef4cf69e81cd8680d13349b19bb4da376"}, {"id": "fls_9uw5pd7kbrx3", "number": "6.20:4", "link": "expressions.html#fls_9uw5pd7kbrx3", "checksum": "49758fd689272c0392826f2a3732543b6bdde8cbe5c4db2b2a7545c857ff396e"}, {"id": "fls_c6mxfzef2qop", "number": "6.20:5", "link": "expressions.html#fls_c6mxfzef2qop", "checksum": "836feebddf1240d8e4bfc2f5c2321b55c5b9e2e2eeb8c866ceb852681424062d"}, {"id": "fls_l396mo6k9ox7", "number": "6.20:6", "link": "expressions.html#fls_l396mo6k9ox7", "checksum": "782eb091e16c3a6b5052222092300db02c04546faa0f8edc38766ace20d67692"}, {"id": "fls_1ppywe40s62c", "number": "6.20:7", "link": "expressions.html#fls_1ppywe40s62c", "checksum": "2bf24d8fa80ee0ffbea4bdab95ebf3e5bb8548ab9232916dde504fff506a692c"}, {"id": "fls_eymcs2rgv3qw", "number": "6.20:8", "link": "expressions.html#fls_eymcs2rgv3qw", "checksum": "f748d724dc5d08a0afc5bca74cc6310d8f2d73e36fd9708085c26c5e57b614d7"}, {"id": "fls_qshnnpirkasz", "number": "6.20:9", "link": "expressions.html#fls_qshnnpirkasz", "checksum": "5b915ead9f543983fe6a1f6d4411aa0121d6725d22add9b0211eca93213eba88"}, {"id": "fls_umevprl99y6c", "number": "6.20:10", "link": "expressions.html#fls_umevprl99y6c", "checksum": "da18e7ef8881f3083b4c558241950574caa792c33598bd92c716e41a8cc53b46"}, {"id": "fls_k76d8ady623m", "number": "6.20:11", "link": "expressions.html#fls_k76d8ady623m", "checksum": "fa34ee0051e0acccdf51347f463313b897b4227b5ea13766255ff2b0066a1512"}, {"id": "fls_frwtufwe8dya", "number": "6.20:12", "link": "expressions.html#fls_frwtufwe8dya", "checksum": "3a5e5763d187255a3ef457d3d46891e92783bc092c11c66c526a00876064f2e6"}, {"id": "fls_u72ylhlmqge3", "number": "6.20:13", "link": "expressions.html#fls_u72ylhlmqge3", "checksum": "efc0c00d248bd8cc51172623500bea993674403271c5e88d20e852c773d7e905"}, {"id": "fls_tn3vwidct3ks", "number": "6.20:14", "link": "expressions.html#fls_tn3vwidct3ks", "checksum": "cc27da507126827f604fb160d118c199f79068f517609771fb231e681e94a615"}], "informational": false}, {"id": "fls_kw25194gpael", "number": "6.21", "title": "Expression Precedence", "link": "expressions.html#expression-precedence", "paragraphs": [{"id": "fls_cwt7afsbgs7w", "number": "6.21:1", "link": "expressions.html#fls_cwt7afsbgs7w", "checksum": "1ea58ec9460ef7859bdc28de3d2454bfd5f0d89fad0774e3f0dccf59d4c2fa44"}, {"id": "fls_ya23jjg5wjl", "number": "6.21:2", "link": "expressions.html#fls_ya23jjg5wjl", "checksum": "55370b10da3b56c04b08da6b32c4c027699ea6cc687589a7849a699dde6308f0"}, {"id": "fls_bezkcuwp5qol", "number": "6.21:3", "link": "expressions.html#fls_bezkcuwp5qol", "checksum": "dfda6e0c52f46c00d66221d8827d93115b0cdcad8ad51d9062a06e2b14f39d17"}, {"id": "fls_48br7odx6nke", "number": "6.21:4", "link": "expressions.html#fls_48br7odx6nke", "checksum": "baa1cbc6ae96be8a8f4f047cc34af1e02542d64fa59a86860132f4126849ee7c"}, {"id": "fls_mk2yk99p6nvp", "number": "6.21:5", "link": "expressions.html#fls_mk2yk99p6nvp", "checksum": "54aa2b80e6e76176f6c52aa25cc2b16b73a0526ec6aceeb71f1376bca1b8d23d"}, {"id": "fls_jtdnf0vmn6xt", "number": "6.21:6", "link": "expressions.html#fls_jtdnf0vmn6xt", "checksum": "183754bda3a68ac29333a9920b7213129284f5d324afe718d3e7e1acc39ea78c"}, {"id": "fls_qurz25skmryg", "number": "6.21:7", "link": "expressions.html#fls_qurz25skmryg", "checksum": "6b34617657c79788671be78815e6993bb19baa7e0fe35adcdcc2b21eda22dc46"}, {"id": "fls_ywqn5nixelkz", "number": "6.21:8", "link": "expressions.html#fls_ywqn5nixelkz", "checksum": "39290d972682eb3439b41a650ce8dc55cc5618eb221b6539b1643da301f1e2fa"}, {"id": "fls_k3ohh8k888c", "number": "6.21:9", "link": "expressions.html#fls_k3ohh8k888c", "checksum": "a647dca3b224f2d82d63601390ff21febbf63c97e21b422fce1223a55d8cfbc6"}, {"id": "fls_41n6z85h1z47", "number": "6.21:10", "link": "expressions.html#fls_41n6z85h1z47", "checksum": "d6574d428b039bfa87429f66a994d89b9473576339d111783dc6a3fdb46b4a36"}, {"id": "fls_f39rzauxrlcl", "number": "6.21:11", "link": "expressions.html#fls_f39rzauxrlcl", "checksum": "b1709454bd018cc25d9bb554a671bb3bd23206e58c426368771eb33c8b1902f9"}, {"id": "fls_djphr5mk0t6f", "number": "6.21:12", "link": "expressions.html#fls_djphr5mk0t6f", "checksum": "3ea4a68b843a23a1cdc9b81e4f0174f9c76a5ad73a060891279a41d78fc7c6bf"}, {"id": "fls_sif2aqky96j6", "number": "6.21:13", "link": "expressions.html#fls_sif2aqky96j6", "checksum": "26b534c9a0f23c8b9f12703a3170ddd07a657404cb64f1486d8bb2a193768a7a"}, {"id": "fls_d7x817v8xzea", "number": "6.21:14", "link": "expressions.html#fls_d7x817v8xzea", "checksum": "e33ebfed7ce388a0cf0033407562b3b4a63e5d7b6df56cb445f069b1d6196f73"}, {"id": "fls_1f5ibdkz3l51", "number": "6.21:15", "link": "expressions.html#fls_1f5ibdkz3l51", "checksum": "70a39a1ca925fa68f61fe74478f904cf31ca13be09d7db398c5c16fbca0ad80b"}, {"id": "fls_t1zqnab8a752", "number": "6.21:16", "link": "expressions.html#fls_t1zqnab8a752", "checksum": "3fd86a70e1d6ed044f78bae2520252946967ec4c75eb8cf66cdf99feaa4fe4a2"}, {"id": "fls_f6in3h5cj8i6", "number": "6.21:17", "link": "expressions.html#fls_f6in3h5cj8i6", "checksum": "00e7566e07ad29ae66ca966af236f682cd8a53c4e6da84b618dd37ccd7f1a423"}, {"id": "fls_hxa1avitfvrq", "number": "6.21:18", "link": "expressions.html#fls_hxa1avitfvrq", "checksum": "398e12725f85d87fa51611c3ac78a9d489a257b0cd22f99296f4274a18115ba2"}, {"id": "fls_sy2xzzq06i0x", "number": "6.21:19", "link": "expressions.html#fls_sy2xzzq06i0x", "checksum": "2584e4c6218c7323c2bf24a2c0de7ae1caa256e05729adc630a7fe2b1e0f83eb"}, {"id": "fls_hish3qfmawd", "number": "6.21:20", "link": "expressions.html#fls_hish3qfmawd", "checksum": "ae319c9de59e01cef1c5875cf66e1bea865c095788ad753c61b22138fbb7d086"}, {"id": "fls_ruy7e6yccsqk", "number": "6.21:21", "link": "expressions.html#fls_ruy7e6yccsqk", "checksum": "21814dc22378c585902121bfab807c007ddcb24268ba57759726bf98b266470c"}, {"id": "fls_9qcm0dx9rolw", "number": "6.21:22", "link": "expressions.html#fls_9qcm0dx9rolw", "checksum": "c176fa58196e3b9169a21354de2d4e35cdc7ad169688eadce01d604523799017"}, {"id": "fls_1l3rgtm6o54s", "number": "6.21:23", "link": "expressions.html#fls_1l3rgtm6o54s", "checksum": "6741ee5a44150ad2ec0c321b36747b2dd1066afa038ef8480b92ab126215ed43"}, {"id": "fls_hr4kokysrjop", "number": "6.21:24", "link": "expressions.html#fls_hr4kokysrjop", "checksum": "e6544a9cd735fed1a4c5bf7dcbad5842d1a2911275d4625c2dde41f91050d96a"}], "informational": false}, {"id": "fls_jmjn8jkbzujm", "number": "6.22", "title": "Capturing", "link": "expressions.html#capturing", "paragraphs": [{"id": "fls_iamnzlm430ef", "number": "6.22:1", "link": "expressions.html#fls_iamnzlm430ef", "checksum": "2d70f775bd55dcedee227416f24a3bc37fb9d5409b96077d535f6a5186688494"}, {"id": "fls_eca6tl7j0afx", "number": "6.22:2", "link": "expressions.html#fls_eca6tl7j0afx", "checksum": "97f165b9e62eea93d9961a8cd997dc9479497af6d7a188e181edf2788466461e"}, {"id": "fls_e70ywb8191h", "number": "6.22:3", "link": "expressions.html#fls_e70ywb8191h", "checksum": "8da2358d8b54cfb271d4ef4ceed3480cf7703b2365a20b42d5cdf3522788d478"}, {"id": "fls_1y2ttb466m9c", "number": "6.22:4", "link": "expressions.html#fls_1y2ttb466m9c", "checksum": "df4483a0be687983a2f80e3a045c06692286121f4abd3c85b8b56914a4baaa27"}, {"id": "fls_ip81lt2mm940", "number": "6.22:5", "link": "expressions.html#fls_ip81lt2mm940", "checksum": "51b0d76f3369e3a5e62f5bf6b2365f97b322c4c2f6dfcbba47616d7ed963695d"}, {"id": "fls_y9n1i4hbq8sf", "number": "6.22:6", "link": "expressions.html#fls_y9n1i4hbq8sf", "checksum": "c5b1fde32b8f99342d49cd808e66462771d3c867e9e69074ec8d142325384c15"}, {"id": "fls_o6wyl8auypje", "number": "6.22:7", "link": "expressions.html#fls_o6wyl8auypje", "checksum": "9aadea1792e4d8b3cf759598520f2d8a446a34c2dfafb731ff85a1f69dd3ad47"}, {"id": "fls_acxt2ovmb5he", "number": "6.22:8", "link": "expressions.html#fls_acxt2ovmb5he", "checksum": "404ff264bbc3d98e0e0a537c1425f627b4fb7dc95b09f1d87c4e1f6bbbeba652"}, {"id": "fls_xtnffkxhm5yy", "number": "6.22:9", "link": "expressions.html#fls_xtnffkxhm5yy", "checksum": "1e4ed51853e5ecdc3b5084f8952088bdef2a10260258bafb3579524a407b16d5"}, {"id": "fls_8hlalaizgyfs", "number": "6.22:10", "link": "expressions.html#fls_8hlalaizgyfs", "checksum": "ded68234e7ac8294cc13fb4d7aa6c754b45225dc76318b1142da37ba53c73f84"}, {"id": "fls_t695ps4lfh6z", "number": "6.22:11", "link": "expressions.html#fls_t695ps4lfh6z", "checksum": "d49deed6d7344732b4b411d505da072749b5d33f69d71338411aa9f726ebdb5e"}, {"id": "fls_6j8cr7d5zs1l", "number": "6.22:12", "link": "expressions.html#fls_6j8cr7d5zs1l", "checksum": "31629d554e45355987d9a6d7c86bea4c88d35643ca4bf88b451169a356baeb00"}, {"id": "fls_l8e98pyhm08g", "number": "6.22:13", "link": "expressions.html#fls_l8e98pyhm08g", "checksum": "7017351a551f3038618b2d0fb7ab087e7f50230db15c87a1cfded0443d6c3796"}, {"id": "fls_33hfay24hx8u", "number": "6.22:14", "link": "expressions.html#fls_33hfay24hx8u", "checksum": "0a845d30d4b029ed8ec0bda918aa521f9b9d0d65329349b73da593e609a49242"}, {"id": "fls_wmxsd0i2yemf", "number": "6.22:15", "link": "expressions.html#fls_wmxsd0i2yemf", "checksum": "2e9e24c1c65541c1f32df09a23b6947210f9071eca8be770b14640cc78cb06fc"}, {"id": "fls_lu779ufqhggl", "number": "6.22:16", "link": "expressions.html#fls_lu779ufqhggl", "checksum": "83dbe39f34ed5bb73bbfdc199bd2ef586623652688f98e05048c57e74c582d54"}, {"id": "fls_uqy5w9uc8gla", "number": "6.22:17", "link": "expressions.html#fls_uqy5w9uc8gla", "checksum": "dbd28fc0d3ac8f76794edf422630af90e6c9801240cdda5a744ddd50a300e7af"}, {"id": "fls_wvob7114tfat", "number": "6.22:18", "link": "expressions.html#fls_wvob7114tfat", "checksum": "face359b764fc93328e325d67bde1b99c94e96a550bc044d9a5b7784a7742946"}], "informational": false}, {"id": "fls_zfibijmf8qe1", "number": "6.23", "title": "Arithmetic Overflow", "link": "expressions.html#arithmetic-overflow", "paragraphs": [{"id": "fls_ofirxbpxu6zv", "number": "6.23:1", "link": "expressions.html#fls_ofirxbpxu6zv", "checksum": "5274391e12b7710b6f28a7ef79233dceaf69cef0a033e9d2a7f441e6fa3a33ee"}, {"id": "fls_8fu3h8plasqa", "number": "6.23:2", "link": "expressions.html#fls_8fu3h8plasqa", "checksum": "77c956644d235f20f56388e677b4d8beaaa57ed404080d89c723d92a8c7bf9d1"}, {"id": "fls_r48vkceibfxc", "number": "6.23:3", "link": "expressions.html#fls_r48vkceibfxc", "checksum": "60b290c542ed976d056a274718878486258854ee4ad3902874547ab7e6f85f8d"}, {"id": "fls_qmpi8k43k2yu", "number": "6.23:4", "link": "expressions.html#fls_qmpi8k43k2yu", "checksum": "1ca56587481d720bd3655179adbe50c36370fe9b71c832a1a6271ad20e82145b"}], "informational": false}], "informational": false}, {"title": "Entities and Resolution", "link": "entities-and-resolution.html", "sections": [{"id": "fls_gdeyap4or1db", "number": "14", "title": "Entities and Resolution", "link": "entities-and-resolution.html", "paragraphs": [], "informational": false}, {"id": "fls_151r19d7xbgz", "number": "14.1", "title": "Entities", "link": "entities-and-resolution.html#entities", "paragraphs": [{"id": "fls_x7j6wcigqt7u", "number": "14.1:1", "link": "entities-and-resolution.html#fls_x7j6wcigqt7u", "checksum": "92b15a7349815675a6ada6d976e81b32a73c72307b7c303744b672b2b79f3ccb"}, {"id": "fls_40d2g0hvq2il", "number": "14.1:2", "link": "entities-and-resolution.html#fls_40d2g0hvq2il", "checksum": "3ac0c135867846c8545f48d505c7223de228d3c834e6c35369d20839f30645cc"}, {"id": "fls_lcca91wjwnpx", "number": "14.1:3", "link": "entities-and-resolution.html#fls_lcca91wjwnpx", "checksum": "387b393db8ebbfbbaa31538cf9d1ed1fbd883a62e99cd43daae557d55d6e3778"}, {"id": "fls_94l2d7ti0hjw", "number": "14.1:4", "link": "entities-and-resolution.html#fls_94l2d7ti0hjw", "checksum": "1e043bf7a4a6c40020a77d37fba4d646c5e5114a2fd0ce467c817c77746df26f"}, {"id": "fls_kvdqmo8gmdxi", "number": "14.1:5", "link": "entities-and-resolution.html#fls_kvdqmo8gmdxi", "checksum": "cc53b299dafa70bd4b1bc538690c6759ff1aad962a25dd458050dd834792d02d"}, {"id": "fls_b3cdg74utyvo", "number": "14.1:6", "link": "entities-and-resolution.html#fls_b3cdg74utyvo", "checksum": "62877b7edbba7547c96ed213430dab1fe6be842fc13b0905bf1e0e39c1574c5b"}, {"id": "fls_njcmeqxzvfsa", "number": "14.1:7", "link": "entities-and-resolution.html#fls_njcmeqxzvfsa", "checksum": "df0355bf9d408621ab3501afd0c95fb72223e5ff74db7d62eaddc72e96f02fe7"}, {"id": "fls_63ul8sgf6dgr", "number": "14.1:8", "link": "entities-and-resolution.html#fls_63ul8sgf6dgr", "checksum": "9cd87b048aec0624e781b4917dc99e0e3956051679365ab7d33211685d93833e"}, {"id": "fls_6hxf0rn9j1sr", "number": "14.1:9", "link": "entities-and-resolution.html#fls_6hxf0rn9j1sr", "checksum": "43a9474bc05f5cd0e56b671046a19f56d4d25db70d02d706182d94772fbd9525"}, {"id": "fls_2qitjk5ssaau", "number": "14.1:10", "link": "entities-and-resolution.html#fls_2qitjk5ssaau", "checksum": "9db5af7bb0d5b4e2f0254774b4d7490d11b8de8e608b0b73eab3268c19fb91fb"}, {"id": "fls_4li2c5qc31c7", "number": "14.1:11", "link": "entities-and-resolution.html#fls_4li2c5qc31c7", "checksum": "e602c23f513b2a0a4e008c3ea5961a7ed8f80dac05e98ee7a31d32e25387986d"}, {"id": "fls_nq8n7w2s3bja", "number": "14.1:12", "link": "entities-and-resolution.html#fls_nq8n7w2s3bja", "checksum": "f8bbcd5c0b5f9b29fea6dd2805dd0de209e9d9b443342686960740d64e79321f"}, {"id": "fls_jv7qi34flit0", "number": "14.1:13", "link": "entities-and-resolution.html#fls_jv7qi34flit0", "checksum": "fa112b87d033633e63c7f4216a3dac2dfa3bd0d440c7f574ab7a8375752d577d"}, {"id": "fls_rutlgmzh3tnz", "number": "14.1:14", "link": "entities-and-resolution.html#fls_rutlgmzh3tnz", "checksum": "e61e4578e8cd0a2124be00366bcc0ace261b47e5cc829bcf30274cd2b97c588f"}, {"id": "fls_1owx5ch7sidm", "number": "14.1:15", "link": "entities-and-resolution.html#fls_1owx5ch7sidm", "checksum": "79a170cb7c345638c6755e2d61f7444d2a35b53530a2cb6d81638b4f002de86e"}, {"id": "fls_8ldy7lec9bcd", "number": "14.1:16", "link": "entities-and-resolution.html#fls_8ldy7lec9bcd", "checksum": "25dffbf70cb2bb0cd22c431fd0a46235618a589b0bdbf4bf180b51ed37a9d5d6"}, {"id": "fls_3mt2p4ssqt0a", "number": "14.1:17", "link": "entities-and-resolution.html#fls_3mt2p4ssqt0a", "checksum": "9f6fa9d43fbf2924e1c1ecc5b6eef6db41f10e0eda261f898fa00b0db1afddce"}, {"id": "fls_qqwu3e98lktb", "number": "14.1:18", "link": "entities-and-resolution.html#fls_qqwu3e98lktb", "checksum": "79b617624b18e886c67a3fd5303e3c3701a1bd761fbd598742fa457fc62de196"}, {"id": "fls_fup6984lxdfy", "number": "14.1:19", "link": "entities-and-resolution.html#fls_fup6984lxdfy", "checksum": "3cb5bba3fd185734dbe976155c21323253786de2fe38287190058d186d71d532"}, {"id": "fls_ji9iem1c7ekq", "number": "14.1:20", "link": "entities-and-resolution.html#fls_ji9iem1c7ekq", "checksum": "d3626b9e94df64ec6a68712a8efc764bafebfd1c7736ff21617a39badd0aaffb"}, {"id": "fls_v7w8ptbyxv9w", "number": "14.1:21", "link": "entities-and-resolution.html#fls_v7w8ptbyxv9w", "checksum": "65940ab579200a562e9131adc24d67f63cf6751522972925d98e3eae88aff033"}, {"id": "fls_ig1l38gpy5gy", "number": "14.1:22", "link": "entities-and-resolution.html#fls_ig1l38gpy5gy", "checksum": "d2c4cc3aa6df1ff8c7acad8083bd97da4c7bd274a886f15fd95a0d2495bdbb3c"}, {"id": "fls_ed0t6u7fo3fi", "number": "14.1:23", "link": "entities-and-resolution.html#fls_ed0t6u7fo3fi", "checksum": "87567b121feb41fb49a72ba0f88e7147e1ba7182f665fcd3118ee7cb4e446d2a"}, {"id": "fls_gjps01c8l6aa", "number": "14.1:24", "link": "entities-and-resolution.html#fls_gjps01c8l6aa", "checksum": "d9efa486af937ab8018d16e3b87ca3ba0732e7ca8ee67d91e37f85f401545d65"}], "informational": false}, {"id": "fls_jdknpu3kf865", "number": "14.2", "title": "Visibility", "link": "entities-and-resolution.html#visibility", "paragraphs": [{"id": "fls_7kpepal8ghuj", "number": "14.2:1", "link": "entities-and-resolution.html#fls_7kpepal8ghuj", "checksum": "14af7dc4459e85c32c0011005e8e1d05bae942ed8f5d4cb54aa713543425be90"}, {"id": "fls_qo0itr5il1kk", "number": "14.2:2", "link": "entities-and-resolution.html#fls_qo0itr5il1kk", "checksum": "fca421955d7d461ea14be29c223491277febdafc297c8580073d5de797c6d03d"}, {"id": "fls_knjruq5wppv", "number": "14.2:3", "link": "entities-and-resolution.html#fls_knjruq5wppv", "checksum": "5ca85d6ded39a41b0210496968063f04f76d7902d519e0044cb431f2888c032e"}, {"id": "fls_t7i4n19qdgn4", "number": "14.2:4", "link": "entities-and-resolution.html#fls_t7i4n19qdgn4", "checksum": "f5f0a1362543a52c48a0832fff6511e7b9cdc663430d2e625d748329455133e9"}, {"id": "fls_aa4f3rvir9lm", "number": "14.2:5", "link": "entities-and-resolution.html#fls_aa4f3rvir9lm", "checksum": "66f72eec45e87d39e392824cbccd92cde109e25c1ee3731ca8e7b27a1bf1b778"}, {"id": "fls_tnh7o3pb4e22", "number": "14.2:6", "link": "entities-and-resolution.html#fls_tnh7o3pb4e22", "checksum": "3e16d751015c5913b6d155171e1fe22c30d873dd4c5557cff7f046161cdcea45"}, {"id": "fls_yymgpyi67dty", "number": "14.2:7", "link": "entities-and-resolution.html#fls_yymgpyi67dty", "checksum": "452fb25c8aa516688bcf11408b978c40b71cfd10786c03becf5b16b12856c292"}, {"id": "fls_hc121mxknq03", "number": "14.2:8", "link": "entities-and-resolution.html#fls_hc121mxknq03", "checksum": "80ceeb14a02b69d81e041c8aa913ebc5ae529cf2ee64c36a4e3d2490d9362418"}, {"id": "fls_icztzxjpm1du", "number": "14.2:9", "link": "entities-and-resolution.html#fls_icztzxjpm1du", "checksum": "5b655efb0d1d9c1ebf6eb86a27556a8c7c7f88e3eefb54012f7a4875c62c4c65"}, {"id": "fls_np8aghofjqhm", "number": "14.2:10", "link": "entities-and-resolution.html#fls_np8aghofjqhm", "checksum": "ce3d4660375205a9a7a05150a0d32054e4b084831f3597693559ff0ac6ecc11a"}, {"id": "fls_quzvhzpr0124", "number": "14.2:11", "link": "entities-and-resolution.html#fls_quzvhzpr0124", "checksum": "58a169c5015aa314a9ea29344a5fd52675e580674d1e2c168b5a1cf37a662248"}, {"id": "fls_utgjx6l5zwfl", "number": "14.2:12", "link": "entities-and-resolution.html#fls_utgjx6l5zwfl", "checksum": "807c234d700c1c58154b62858df9203ffd5320127beface925513a72d43746a9"}, {"id": "fls_jifg2st5bfd6", "number": "14.2:13", "link": "entities-and-resolution.html#fls_jifg2st5bfd6", "checksum": "651aeacef587c3880996a14a105866d5887bfa31fee311aca7513f5271e0ab59"}, {"id": "fls_dm0xr424ine1", "number": "14.2:14", "link": "entities-and-resolution.html#fls_dm0xr424ine1", "checksum": "d2248a6b249c97703150accda87c18ce1d43c45ffefa58683d93eab6824434a9"}], "informational": false}, {"id": "fls_9i5msiuuyihf", "number": "14.3", "title": "Paths", "link": "entities-and-resolution.html#paths", "paragraphs": [{"id": "fls_klcltwcwrw6i", "number": "14.3:1", "link": "entities-and-resolution.html#fls_klcltwcwrw6i", "checksum": "faccaa19e7b0dd16805a53e9927816227b3f4124f6860de31b266715a59bde86"}, {"id": "fls_y1z7kougmahd", "number": "14.3:2", "link": "entities-and-resolution.html#fls_y1z7kougmahd", "checksum": "6f1bc5b5d9ddca435a18802abb0879b3e878d2b97ae4b40649b17237e7aefb96"}, {"id": "fls_8q8nqfpsz7ly", "number": "14.3:3", "link": "entities-and-resolution.html#fls_8q8nqfpsz7ly", "checksum": "a598a12193d0fc3d17a4719a6654b5c3e5de057fb03a8f36364aedb05933e05d"}, {"id": "fls_opn5n5t2mo3m", "number": "14.3:4", "link": "entities-and-resolution.html#fls_opn5n5t2mo3m", "checksum": "a04567d394d65300bd24d7a6f612dfe96ab09a8e1d9d24007027cc4d257070ef"}, {"id": "fls_774uryecc2sx", "number": "14.3:5", "link": "entities-and-resolution.html#fls_774uryecc2sx", "checksum": "5acaf482d5f5abc1db1e3f4e641bcd7d6c807d43c02ce713887758947708de2a"}, {"id": "fls_7k88ypcgaoff", "number": "14.3:6", "link": "entities-and-resolution.html#fls_7k88ypcgaoff", "checksum": "a51e77fdf7a71f0b0eb300f601b6c822e9ab150f5103aa44a1d5ca3df82f5d6e"}, {"id": "fls_7kb6ltajgiou", "number": "14.3:7", "link": "entities-and-resolution.html#fls_7kb6ltajgiou", "checksum": "ac1d3cb4221100b61e82b61f5b77c09f81760c8ad406f8180479d1578f69aad6"}, {"id": "fls_n77icl6idazp", "number": "14.3:8", "link": "entities-and-resolution.html#fls_n77icl6idazp", "checksum": "2bbb4365668a8e9949e6ea226fc1c4ca1bb0c3059e7c2972f064baed667ad506"}, {"id": "fls_ynusdsm4x9eq", "number": "14.3:9", "link": "entities-and-resolution.html#fls_ynusdsm4x9eq", "checksum": "46a2d9694956884e4ad1725c0e2505ade9aa39d6718a015d2850e0cfd1d66063"}, {"id": "fls_iuzvtr3oax1o", "number": "14.3:10", "link": "entities-and-resolution.html#fls_iuzvtr3oax1o", "checksum": "804ea247d1050feb630c47dee50038329c0f8fa4a1c7bb724eb1d19b29eaaaa0"}, {"id": "fls_cw006jhlboa", "number": "14.3:11", "link": "entities-and-resolution.html#fls_cw006jhlboa", "checksum": "0810d5dde86b8556c45ed507bfbec7f51260bd25badbaf62080b21443358840c"}, {"id": "fls_kv5bpq8rf1j9", "number": "14.3:12", "link": "entities-and-resolution.html#fls_kv5bpq8rf1j9", "checksum": "0b5983245cd5346dfd1276ced7307c04d4d81717e265035c72319454fbdfac52"}, {"id": "fls_chtj3hcfe3ap", "number": "14.3:13", "link": "entities-and-resolution.html#fls_chtj3hcfe3ap", "checksum": "6b80947a0c4468e18fade3520519a9b79a5d2d8115001c1eb8bfc0a4a029399f"}, {"id": "fls_wm61yeclairz", "number": "14.3:14", "link": "entities-and-resolution.html#fls_wm61yeclairz", "checksum": "f525bc5d1cc46a6aa7cf36eff8be2a47a90c9803c8a06fe6f8dc345c61c9b080"}, {"id": "fls_nrgjclyzl3ix", "number": "14.3:15", "link": "entities-and-resolution.html#fls_nrgjclyzl3ix", "checksum": "34501af716aa34b93e15d351af04e08ef899126df7109cba1f2037f7ebaf9b3e"}, {"id": "fls_tvvycup09b51", "number": "14.3:16", "link": "entities-and-resolution.html#fls_tvvycup09b51", "checksum": "612a8b592294352e6c67e0fd45f33a2baa3584b57d904a270e78d4339281dd9e"}, {"id": "fls_h2zikgmazoxx", "number": "14.3:17", "link": "entities-and-resolution.html#fls_h2zikgmazoxx", "checksum": "6ea02148b0bd9c494f779eeaac0fa983285fd00082c3df4add60a7293f1b4d54"}, {"id": "fls_nj7s6xmzx55f", "number": "14.3:18", "link": "entities-and-resolution.html#fls_nj7s6xmzx55f", "checksum": "2356207dea29ed2d5aa6e5a78e4994316431b1fe5a8a50b76c7d4b8cdeddede4"}, {"id": "fls_e65q3iz50j6a", "number": "14.3:19", "link": "entities-and-resolution.html#fls_e65q3iz50j6a", "checksum": "8ed372f7349a77552ebc1390e264ac1254ab102736d6e6455ffb3143c4602dbe"}, {"id": "fls_ai1jn5a8h3dz", "number": "14.3:20", "link": "entities-and-resolution.html#fls_ai1jn5a8h3dz", "checksum": "038e052fffa92303139c1be17bb4f7521e552611f2647cf22270e8358b9553e4"}, {"id": "fls_ybv0tdu7dnj5", "number": "14.3:21", "link": "entities-and-resolution.html#fls_ybv0tdu7dnj5", "checksum": "af34b5b94f5c4f453bbbfd85b46861f49c8a88f06df9ae12aa2283441c4c8138"}, {"id": "fls_qkyf2j7gvah8", "number": "14.3:22", "link": "entities-and-resolution.html#fls_qkyf2j7gvah8", "checksum": "87aea9dbee8a48f85557797bbc2d29f8e6fdb0dac7615ebc8e45ed28500441bc"}, {"id": "fls_qjnqbqhucrtt", "number": "14.3:23", "link": "entities-and-resolution.html#fls_qjnqbqhucrtt", "checksum": "94b5df1f402d9ada3134d26046016aef437a8e86533892e27c5a99f4edf52a58"}, {"id": "fls_7sm3206va03c", "number": "14.3:24", "link": "entities-and-resolution.html#fls_7sm3206va03c", "checksum": "8902e7d1f80cd0a6e4e560838c03d8a2949169ae5cf6ffc22f241884a23bdc84"}, {"id": "fls_huynsyx13gsz", "number": "14.3:25", "link": "entities-and-resolution.html#fls_huynsyx13gsz", "checksum": "272e37c850f521889e6d9d7e6813f0a87f44a727cb59102b140179debf821a56"}, {"id": "fls_rzvisapi4wqm", "number": "14.3:26", "link": "entities-and-resolution.html#fls_rzvisapi4wqm", "checksum": "07fbe740bf19563ae613bfea97ef80ae7a163aeeb40db28860b3e3271f30dec9"}, {"id": "fls_f1ciozzetj5a", "number": "14.3:27", "link": "entities-and-resolution.html#fls_f1ciozzetj5a", "checksum": "3f386dfca473cbbe5216f7579aabaa0cda4f6d9bfe53ab258a43c18168692f75"}, {"id": "fls_cy7vza3flqi9", "number": "14.3:28", "link": "entities-and-resolution.html#fls_cy7vza3flqi9", "checksum": "c3776124fbef0e532209f8f067a47e7af3a3bf7032ceeab5cfb896c7651d07dd"}, {"id": "fls_cul31g1kkz5c", "number": "14.3:29", "link": "entities-and-resolution.html#fls_cul31g1kkz5c", "checksum": "21a2d8cb523c5773ae29d50f41763ed7ddb60176b8c96ed994bbb76bef1bf401"}, {"id": "fls_no853u27p4f3", "number": "14.3:30", "link": "entities-and-resolution.html#fls_no853u27p4f3", "checksum": "1efe56e648556f44aad0d45dd15797ab9f64720e38e3df135b9a6f95869b49b6"}, {"id": "fls_28c21rzc6rsp", "number": "14.3:31", "link": "entities-and-resolution.html#fls_28c21rzc6rsp", "checksum": "177724d6510ea45d50120fed6c28c92b69dca2fc3124541b67c96e933917bc0d"}, {"id": "fls_4s2n95h4rd1q", "number": "14.3:32", "link": "entities-and-resolution.html#fls_4s2n95h4rd1q", "checksum": "a16e3a0e1a36090a7b32f972287f4cdedbddc5e240a9b3c08929277f4696a99a"}, {"id": "fls_ojdntg5i79pb", "number": "14.3:33", "link": "entities-and-resolution.html#fls_ojdntg5i79pb", "checksum": "3d7face163b14a1f83f142fc864a2664a8c9ff279c76d924be5a0d78c9df1a62"}], "informational": false}, {"id": "fls_izl8iuhoz9e0", "number": "14.4", "title": "Scopes", "link": "entities-and-resolution.html#scopes", "paragraphs": [{"id": "fls_5x5xykocwyiy", "number": "14.4:1", "link": "entities-and-resolution.html#fls_5x5xykocwyiy", "checksum": "43517ff3b8cb455dc43e97cf0f608edaefcb7c7be9cbed87555264c018d5f507"}], "informational": false}, {"id": "fls_6ozthochxz1i", "number": "14.4.1", "title": "Binding Scopes", "link": "entities-and-resolution.html#binding-scopes", "paragraphs": [{"id": "fls_ncg9etb3x7k0", "number": "14.4.1:1", "link": "entities-and-resolution.html#fls_ncg9etb3x7k0", "checksum": "1c091220f546537aa0376292e1056112fdb4f6accdb5704f2b02a353e1dc7f57"}, {"id": "fls_u52mx4xw8zod", "number": "14.4.1:2", "link": "entities-and-resolution.html#fls_u52mx4xw8zod", "checksum": "28f8cbea9a3c14d13f591f4f492b25d66fb3fef3471e02a0bce1eb50f219a2fa"}, {"id": "fls_t9mk8kasobea", "number": "14.4.1:3", "link": "entities-and-resolution.html#fls_t9mk8kasobea", "checksum": "38c14cea741975dfcf0745579b4485aa6e7fb1819efc47af41906460216ba171"}, {"id": "fls_h9cvs854ae34", "number": "14.4.1:4", "link": "entities-and-resolution.html#fls_h9cvs854ae34", "checksum": "c828a2288a376f29a23988cc6c36a6e201e5de5b00188c8dae26d122a334a4e2"}, {"id": "fls_vl1qk0odouyb", "number": "14.4.1:5", "link": "entities-and-resolution.html#fls_vl1qk0odouyb", "checksum": "9738803f2e1cc4b49daa374b470dec9c822944abdddc2d5553cc3a7d2ff81962"}, {"id": "fls_74nk389rk075", "number": "14.4.1:6", "link": "entities-and-resolution.html#fls_74nk389rk075", "checksum": "704d759b8e808aade84bf9d91c6547afd260d382951c9e63b34d612e46adb44a"}, {"id": "fls_xbnki64un70v", "number": "14.4.1:7", "link": "entities-and-resolution.html#fls_xbnki64un70v", "checksum": "01919a0675796333a57c77739f2e33e59788ca34fb915657ee4300af13e689ff"}], "informational": false}, {"id": "fls_ftphlagzd2te", "number": "14.4.2", "title": "Generic Parameter Scope", "link": "entities-and-resolution.html#generic-parameter-scope", "paragraphs": [{"id": "fls_amoh8r4gghyj", "number": "14.4.2:1", "link": "entities-and-resolution.html#fls_amoh8r4gghyj", "checksum": "d584c25b23d784679f49bee07542de8692b945ee1f537fbbfe6de0748ac4fb71"}, {"id": "fls_6o38qhbna46z", "number": "14.4.2:2", "link": "entities-and-resolution.html#fls_6o38qhbna46z", "checksum": "8279dc6a8b235106f42ec6b4f7ac14f3cbc73a5387e8050967651ecbc6aba0b0"}, {"id": "fls_jqevvpndxzdz", "number": "14.4.2:3", "link": "entities-and-resolution.html#fls_jqevvpndxzdz", "checksum": "1bf64d3433e9732df7b69f03bc39b74cb23d3c97ec46beaacab32fd3c95b7311"}, {"id": "fls_t9ztg017itkp", "number": "14.4.2:4", "link": "entities-and-resolution.html#fls_t9ztg017itkp", "checksum": "b58069d3632126cd1d327344ae6ddc3ea80724b6edb47aae53f655412afbebe2"}, {"id": "fls_pmo939jw9m1m", "number": "14.4.2:5", "link": "entities-and-resolution.html#fls_pmo939jw9m1m", "checksum": "ba9481f2a0dab8367b56e1986f679ff8388f4d6fdbd58144bd8fec7d02d50597"}, {"id": "fls_67dtv1z3arbl", "number": "14.4.2:6", "link": "entities-and-resolution.html#fls_67dtv1z3arbl", "checksum": "5be283d945e26887b35476d71c9983067056e07394062f8e074c437f23e48e7c"}, {"id": "fls_y8j4isk9libl", "number": "14.4.2:7", "link": "entities-and-resolution.html#fls_y8j4isk9libl", "checksum": "b51781ef00cf909b9c6f954d1f3ad0fcde40305f987b06a26fde3bc2fce0cebd"}, {"id": "fls_ow5ih7q3xxfx", "number": "14.4.2:8", "link": "entities-and-resolution.html#fls_ow5ih7q3xxfx", "checksum": "d80167a0dcd4ced3ddd314d967d1072c823cab9fb8cd19ea7168bce3bda55d70"}, {"id": "fls_h9rpwxpz72v0", "number": "14.4.2:9", "link": "entities-and-resolution.html#fls_h9rpwxpz72v0", "checksum": "8ba2db48a9fbc5cd1345c45bbc4ffcce13b8b4fd94cb3d312f53128b4459aaf9"}, {"id": "fls_3qm3vh97bvpb", "number": "14.4.2:10", "link": "entities-and-resolution.html#fls_3qm3vh97bvpb", "checksum": "6da6b05924e3ca7b78a52d8b6bebba58a20200ccc2beec4a64d3e81ad77da76f"}, {"id": "fls_xuxbpv5b2ym9", "number": "14.4.2:11", "link": "entities-and-resolution.html#fls_xuxbpv5b2ym9", "checksum": "e918fbab918fabdf9fdbc58cfc78079484a925ab64ba7147cf502d5a1ad77c81"}, {"id": "fls_95z5mytvfjia", "number": "14.4.2:12", "link": "entities-and-resolution.html#fls_95z5mytvfjia", "checksum": "689d6488c7516efa05b316fc2b100ccd54fc41bf3bac4b72f0868c6a4f251d1d"}], "informational": false}, {"id": "fls_m0z7omni9hp0", "number": "14.4.3", "title": "Item Scope", "link": "entities-and-resolution.html#item-scope", "paragraphs": [{"id": "fls_p5o243hhe1y3", "number": "14.4.3:1", "link": "entities-and-resolution.html#fls_p5o243hhe1y3", "checksum": "fb831c1ad14c0df880fe0e2965047fd726fb0ed1e305c93656d65e870501e7cd"}, {"id": "fls_huvo0mp2i6fb", "number": "14.4.3:2", "link": "entities-and-resolution.html#fls_huvo0mp2i6fb", "checksum": "25bc4c9ccd15441cb75deda5c2ca31e035e40a8231453a5c22e52e2646c44186"}, {"id": "fls_x8r0oppuc1t6", "number": "14.4.3:3", "link": "entities-and-resolution.html#fls_x8r0oppuc1t6", "checksum": "21fe2e6b23a8c76e0b909cb3bb66d87811b819ce8cae90179b3d73eceff47c01"}], "informational": false}, {"id": "fls_769b4p8v3cwu", "number": "14.4.4", "title": "Label Scope", "link": "entities-and-resolution.html#label-scope", "paragraphs": [{"id": "fls_96kczd4zhpco", "number": "14.4.4:1", "link": "entities-and-resolution.html#fls_96kczd4zhpco", "checksum": "521fb43b24f85cbd6c81cae0c33b399291a86e51201554028deeb6b63c47e26a"}, {"id": "fls_8sevg1sa82h4", "number": "14.4.4:2", "link": "entities-and-resolution.html#fls_8sevg1sa82h4", "checksum": "f9d012717e48391d6a169f0d2134dd95a7d39ab75ea97dbf1dff6d58431a9ba5"}, {"id": "fls_ep5smja1rxdv", "number": "14.4.4:3", "link": "entities-and-resolution.html#fls_ep5smja1rxdv", "checksum": "688be0bee74edd58c2e2e383d5686e45abd8a325780d2d340605d0b7b3af96bc"}], "informational": false}, {"id": "fls_kgbi26212eof", "number": "14.4.5", "title": "Self Scope", "link": "entities-and-resolution.html#self-scope", "paragraphs": [{"id": "fls_kgt81m4f72ne", "number": "14.4.5:1", "link": "entities-and-resolution.html#fls_kgt81m4f72ne", "checksum": "46ec90b1b86c7151216c55420994d294c6454cf9a68db0d8835a9fb9b50e5984"}, {"id": "fls_kxdwq4b136tl", "number": "14.4.5:2", "link": "entities-and-resolution.html#fls_kxdwq4b136tl", "checksum": "9ea7a212c6751d354e97c5eaa4a920477f382ff731fbf5eaf9539e771f658286"}, {"id": "fls_nf4g82gi12ij", "number": "14.4.5:3", "link": "entities-and-resolution.html#fls_nf4g82gi12ij", "checksum": "d453f4e8c7603cc4a3af26b98e29a3619d3e4151e2257de52a6d49f61e7ac8d1"}, {"id": "fls_dy4gyepebe7b", "number": "14.4.5:4", "link": "entities-and-resolution.html#fls_dy4gyepebe7b", "checksum": "f92935a62e26ce498f4d124d356e3e78782eef0ef6a3740c3cf24f7b09250efe"}, {"id": "fls_cha4ddwfqwvj", "number": "14.4.5:5", "link": "entities-and-resolution.html#fls_cha4ddwfqwvj", "checksum": "3554e24b5a9b2499a683328f0576d51a86bd26bf117490738edb7ae2e7904a1c"}, {"id": "fls_ql4i021ut2n8", "number": "14.4.5:6", "link": "entities-and-resolution.html#fls_ql4i021ut2n8", "checksum": "2e5e179e6007b149b3d35850933d604403fbaf8f3cce6fdbd380b2f719d27cd8"}, {"id": "fls_mj9vlxnf44oi", "number": "14.4.5:7", "link": "entities-and-resolution.html#fls_mj9vlxnf44oi", "checksum": "6c12e7861360d4792869765a4ef4afc10ef9b835148fd7c3b5b6a78c61e470db"}], "informational": false}, {"id": "fls_octf6sf7yso", "number": "14.4.6", "title": "Textual Macro Scope", "link": "entities-and-resolution.html#textual-macro-scope", "paragraphs": [{"id": "fls_xkh8cqubhxad", "number": "14.4.6:1", "link": "entities-and-resolution.html#fls_xkh8cqubhxad", "checksum": "9d8d566bf0cc9c442a6f8caa9750acaad5fd97b2051978a07e83ecde9be6c8ed"}, {"id": "fls_iec3otx863yp", "number": "14.4.6:2", "link": "entities-and-resolution.html#fls_iec3otx863yp", "checksum": "20ccfad5b0eb356d3674f0df4b46713ca8de9f5e25b83f9ec21fa2ff02dc92cc"}, {"id": "fls_cbfuh9y87y6i", "number": "14.4.6:3", "link": "entities-and-resolution.html#fls_cbfuh9y87y6i", "checksum": "fb291d2a2d9aa2c05d01d7c0697cf5633d229a13e733f5c63cf3880d0e198fe7"}], "informational": false}, {"id": "fls_lnpyb285qdiy", "number": "14.4.7", "title": "Scope Hierarchy", "link": "entities-and-resolution.html#scope-hierarchy", "paragraphs": [{"id": "fls_4o7vfo6v39l7", "number": "14.4.7:1", "link": "entities-and-resolution.html#fls_4o7vfo6v39l7", "checksum": "f551c6d52274528f4d39e9f7ebb33850b7a9886014adda99bd7dfdea6a937703"}, {"id": "fls_ns4eog3od4kw", "number": "14.4.7:2", "link": "entities-and-resolution.html#fls_ns4eog3od4kw", "checksum": "4d1555490789b23e0b29f3539cc6b17f32c58c25a752e2dff0ab22d6d85ba927"}, {"id": "fls_kqmykyzdb1k6", "number": "14.4.7:3", "link": "entities-and-resolution.html#fls_kqmykyzdb1k6", "checksum": "0c3ab46d2d4bbdfb7f8aa15e861edba999dcd3ab2c8247042b749fdfea5d82b2"}, {"id": "fls_g86d5v14sxxv", "number": "14.4.7:4", "link": "entities-and-resolution.html#fls_g86d5v14sxxv", "checksum": "a879143703b2ebbf1c26fff249edc2ee837f8d4c7b131b30fc5b2da7cb149c8b"}, {"id": "fls_ldwencd8zp9a", "number": "14.4.7:5", "link": "entities-and-resolution.html#fls_ldwencd8zp9a", "checksum": "e3f691f921462849f2125bb6f79621259b85389c58f9db3809ce843964ba6095"}, {"id": "fls_jz7hgkvocc9r", "number": "14.4.7:6", "link": "entities-and-resolution.html#fls_jz7hgkvocc9r", "checksum": "0486289257a5a1890cd132dfa6c3f59e5fddf88be745323f21a5d89198421ac0"}, {"id": "fls_p4g8sxba7at9", "number": "14.4.7:7", "link": "entities-and-resolution.html#fls_p4g8sxba7at9", "checksum": "5552d190c3a9cad12620fa1208ea5d3f5618d642ab37332f58d35c9d58779495"}, {"id": "fls_d1cp5pt5wn0z", "number": "14.4.7:8", "link": "entities-and-resolution.html#fls_d1cp5pt5wn0z", "checksum": "b37222b3100e2b80b7b034edb7a76cc840d78dd0fe191e49a45846b0e6903d8d"}, {"id": "fls_ibmm8y748z4", "number": "14.4.7:9", "link": "entities-and-resolution.html#fls_ibmm8y748z4", "checksum": "f2348baa759c683ef36d18d117184e9e34670dd0247232e3c9765ce2bd5acf41"}, {"id": "fls_39011vsy2vxx", "number": "14.4.7:10", "link": "entities-and-resolution.html#fls_39011vsy2vxx", "checksum": "3b60014467b97b96f55006cc958d04dba76f07721782eae6af5f4185ef0b50ed"}, {"id": "fls_m81hyd154yun", "number": "14.4.7:11", "link": "entities-and-resolution.html#fls_m81hyd154yun", "checksum": "ee8879063f069e206d0ee79c4f20ae8cdc570027eeec9cd9ba5327ad2ecc4697"}, {"id": "fls_fvgzmsaox4z3", "number": "14.4.7:12", "link": "entities-and-resolution.html#fls_fvgzmsaox4z3", "checksum": "92bfa8ddd580edf9895e16b361150c8c3d0cdd1c9ccde8524f7e6451e4e7fc64"}, {"id": "fls_rj8uld11o1br", "number": "14.4.7:13", "link": "entities-and-resolution.html#fls_rj8uld11o1br", "checksum": "be583136a634bdd26f4a80930ae3ca6dbbdd6e0358978bd6923a42e1c84b0da7"}, {"id": "fls_hyp4dnpqe620", "number": "14.4.7:14", "link": "entities-and-resolution.html#fls_hyp4dnpqe620", "checksum": "628e0a86e2c9490c0f27ad412acf3bfcaebb23591129c816d0863d06c698ea97"}, {"id": "fls_zgied4qysk2a", "number": "14.4.7:15", "link": "entities-and-resolution.html#fls_zgied4qysk2a", "checksum": "c3092ffb4d6f8e51556d11db102ff26ff4a26fcc6d578001ab2367f0466f8681"}, {"id": "fls_cn6dzmrxdp1w", "number": "14.4.7:16", "link": "entities-and-resolution.html#fls_cn6dzmrxdp1w", "checksum": "ef0cd3b9e3e74fb06c3b65260e11dad890b4f75033c75029d59385ec3657f7b4"}, {"id": "fls_9n7m0tv7w2np", "number": "14.4.7:17", "link": "entities-and-resolution.html#fls_9n7m0tv7w2np", "checksum": "b147985d5033458a477fc80cfbdbe97b50bfe9cba065f8e54ce66e21162aa93b"}, {"id": "fls_sj2ivbf2l2dp", "number": "14.4.7:18", "link": "entities-and-resolution.html#fls_sj2ivbf2l2dp", "checksum": "f72b277b5c1c9727052cdaaee9b8c8db7db662bebc2b7e7059b6af7aed73da62"}, {"id": "fls_cejfio3ddy0j", "number": "14.4.7:19", "link": "entities-and-resolution.html#fls_cejfio3ddy0j", "checksum": "86db3013b3c7a67a2925b579f72ceec4124fd83d53e5dc632e4b57d7cc2eaf3b"}, {"id": "fls_j3rot386teec", "number": "14.4.7:20", "link": "entities-and-resolution.html#fls_j3rot386teec", "checksum": "c2e9b4fad1e4fc3b81216128713d9fd685d26f561850a43261e300f242650592"}, {"id": "fls_nuobrpnymym1", "number": "14.4.7:21", "link": "entities-and-resolution.html#fls_nuobrpnymym1", "checksum": "f953ad67423f37e5b897c8c6668894471626c602b1893f1d007a340ddedbecbd"}, {"id": "fls_r0x9sw7dwnww", "number": "14.4.7:22", "link": "entities-and-resolution.html#fls_r0x9sw7dwnww", "checksum": "f961d6fe49562f6bd683b5e7dac9856e6b65949cdfe488452a9af791a1a20a38"}, {"id": "fls_ve7svuy7xvh0", "number": "14.4.7:23", "link": "entities-and-resolution.html#fls_ve7svuy7xvh0", "checksum": "0132fa4a1bb8914b9f99869812101355d04a8da7aad46c2a3fdb0838b020ca97"}, {"id": "fls_pvfqhtts3qsa", "number": "14.4.7:24", "link": "entities-and-resolution.html#fls_pvfqhtts3qsa", "checksum": "ab92461a17e2778df037251723d9e8305445c141efe44b6ca98f7ddd5804cbe9"}, {"id": "fls_9k9hourczbv7", "number": "14.4.7:25", "link": "entities-and-resolution.html#fls_9k9hourczbv7", "checksum": "08f70ffd77b18c260a9e349a49a29aed866ef6fa09e0df2aa9f1a8228046edc8"}, {"id": "fls_p6wiuhkeypzs", "number": "14.4.7:26", "link": "entities-and-resolution.html#fls_p6wiuhkeypzs", "checksum": "6d3036f41d092e3cd2e55476c4918788be2ab98eb9c6d0b9e69ee70d433cbce7"}, {"id": "fls_34usianesmf6", "number": "14.4.7:27", "link": "entities-and-resolution.html#fls_34usianesmf6", "checksum": "4025d7292308fbfa960b1bb6777f0012c20f86641c9d40465dbeefdf5b08c521"}, {"id": "fls_n1a41d8i0rot", "number": "14.4.7:28", "link": "entities-and-resolution.html#fls_n1a41d8i0rot", "checksum": "6e01c796d3afc2eeedc107698dfc4456b7446b5110ba7583416245987f3b16db"}, {"id": "fls_amhi3d9dd3i3", "number": "14.4.7:29", "link": "entities-and-resolution.html#fls_amhi3d9dd3i3", "checksum": "0db116cf8a599b71212419a8bae8425a590f80dc601f73ff9e537a80f6411a9a"}, {"id": "fls_nu8xj3vza55j", "number": "14.4.7:30", "link": "entities-and-resolution.html#fls_nu8xj3vza55j", "checksum": "b12e44bc28cdd8d7415305251565ee0efd311e80ca5798f02424d3d97af7abf9"}, {"id": "fls_fiyj50u6cg2n", "number": "14.4.7:31", "link": "entities-and-resolution.html#fls_fiyj50u6cg2n", "checksum": "2831803e44ad7befd12a919e248e44a0be126600a95ea86bddaf2a682634f7ea"}, {"id": "fls_azjx3y5yezoi", "number": "14.4.7:32", "link": "entities-and-resolution.html#fls_azjx3y5yezoi", "checksum": "be9f93509f539e90659d105d4f3312acd8a85b94e8c3aa00920639811e1eb437"}, {"id": "fls_puly43s4x360", "number": "14.4.7:33", "link": "entities-and-resolution.html#fls_puly43s4x360", "checksum": "9360333f7d8597a9b299a8028b723451ce669aa9bf7571105bcffc0ed2665b48"}, {"id": "fls_pxtlu7ud6w2h", "number": "14.4.7:34", "link": "entities-and-resolution.html#fls_pxtlu7ud6w2h", "checksum": "07f7dbb2dcd0707931f55e12d3c59fd8e10ecb809691978bc03ebcae149c872a"}, {"id": "fls_ddxxt11u0yal", "number": "14.4.7:35", "link": "entities-and-resolution.html#fls_ddxxt11u0yal", "checksum": "73d81df70d3dae226f85d4fc1d947dcb6c50a3b857102f823d92d248260ce169"}, {"id": "fls_qofr9vme46wp", "number": "14.4.7:36", "link": "entities-and-resolution.html#fls_qofr9vme46wp", "checksum": "e9128513da136c0be871747b63ccd23562fce9810967916d929dfa3e17fdd8b7"}, {"id": "fls_gjvfty9m84a9", "number": "14.4.7:37", "link": "entities-and-resolution.html#fls_gjvfty9m84a9", "checksum": "0900771280a33d9ba8e1d92770357e08ea0ba60343df556c52ebd24218d890a6"}, {"id": "fls_xr9wors6oa7w", "number": "14.4.7:38", "link": "entities-and-resolution.html#fls_xr9wors6oa7w", "checksum": "32dbf2307aedd581270c9472e89c27976e8bafcdef78287e45a2d79c85a0e2fa"}], "informational": false}, {"id": "fls_dq403wq5yrs", "number": "14.5", "title": "Namespaces", "link": "entities-and-resolution.html#namespaces", "paragraphs": [{"id": "fls_1d4jm61qnt4l", "number": "14.5:1", "link": "entities-and-resolution.html#fls_1d4jm61qnt4l", "checksum": "4836b7a81f95f97d95f77726c269b4aa77f371889797ad03dd5ac5df22bb36d3"}, {"id": "fls_avsua7bho205", "number": "14.5:2", "link": "entities-and-resolution.html#fls_avsua7bho205", "checksum": "db9113301feaaf01f285b54f58e061b2b4b3902f5faf3d7d227eb0b315c29ed6"}, {"id": "fls_9e3xeza853wx", "number": "14.5:3", "link": "entities-and-resolution.html#fls_9e3xeza853wx", "checksum": "9d7737fbed1d15d12a68fb7556505470fade9e802af7fd449a008b5b02bcfcdc"}, {"id": "fls_w625tk3ogdui", "number": "14.5:4", "link": "entities-and-resolution.html#fls_w625tk3ogdui", "checksum": "1ca9460a4376c7d597c332cf181c59202868d0b5d8d5fe8255a7b430c6025ed1"}, {"id": "fls_crwfafrmydr7", "number": "14.5:5", "link": "entities-and-resolution.html#fls_crwfafrmydr7", "checksum": "a19dd69d00d64c388eab5b3d9c048c0137016955c4437b1898ac721c57e8f994"}, {"id": "fls_t8fcpm8ldv1y", "number": "14.5:6", "link": "entities-and-resolution.html#fls_t8fcpm8ldv1y", "checksum": "823ca05b98ccb7e81d9e549d58a3aae35ebbed2f14813b3715bc9e393835a951"}, {"id": "fls_7pkex797rkeu", "number": "14.5:7", "link": "entities-and-resolution.html#fls_7pkex797rkeu", "checksum": "b25e6462bc8422aa888e0dfcd2fce3eb82d9ad592ae8442b03f73c12fb73f326"}, {"id": "fls_v32f2evgqt5q", "number": "14.5:8", "link": "entities-and-resolution.html#fls_v32f2evgqt5q", "checksum": "1d855f70942b4b97e20f7a8c2376293535691ffc63e1a3c00d9ff48fbed1c016"}, {"id": "fls_f6yrzwu6yi30", "number": "14.5:9", "link": "entities-and-resolution.html#fls_f6yrzwu6yi30", "checksum": "be6570673f514f4a0d3d22cd860599d6811f9cd474760042c53ed220001d5d06"}, {"id": "fls_nk0swexy2ztm", "number": "14.5:10", "link": "entities-and-resolution.html#fls_nk0swexy2ztm", "checksum": "039f5baf7e3e9350742076c571ec8701657413eb2ab8cf7c8ba7e4a9c6525e47"}, {"id": "fls_ckptn88o6lla", "number": "14.5:11", "link": "entities-and-resolution.html#fls_ckptn88o6lla", "checksum": "4e6c9e8735f706d3ed311192bdd242aebefbc9cd8b79ed32481799fc4e4d54ab"}, {"id": "fls_3ma5v1fop98p", "number": "14.5:12", "link": "entities-and-resolution.html#fls_3ma5v1fop98p", "checksum": "c2df785b7f8b4c342a0cd204655bf38f1cdcdf6da21e8f7033577a0779ea7dfa"}, {"id": "fls_nj7sep7ht7lg", "number": "14.5:13", "link": "entities-and-resolution.html#fls_nj7sep7ht7lg", "checksum": "b626273c028df98bf83f9cc308f4b313b40fd4af9a828d4baa99d514847b7e4f"}, {"id": "fls_g8h6t5x6yprm", "number": "14.5:14", "link": "entities-and-resolution.html#fls_g8h6t5x6yprm", "checksum": "e2e5c5f30f5fe02da3765cc72c29c109ec1284daaaacef2440cd86c7dca3ce84"}, {"id": "fls_2l1o7vqfr4m7", "number": "14.5:15", "link": "entities-and-resolution.html#fls_2l1o7vqfr4m7", "checksum": "6cc5106a9453f6b24aa3d1b25413993384c934c46830703cf83d6aea69144c37"}, {"id": "fls_6q8rjv1jmu84", "number": "14.5:16", "link": "entities-and-resolution.html#fls_6q8rjv1jmu84", "checksum": "6de1568e937c91c9d59930b38b47a437c2f0d6c186377eb0f20facbfed8ffed5"}, {"id": "fls_lx2tx1jt8t3a", "number": "14.5:17", "link": "entities-and-resolution.html#fls_lx2tx1jt8t3a", "checksum": "da1ee981a9e1da0bcc03eb523e05994e90313be4bbd2f3a91ac1cef0226944fe"}, {"id": "fls_mo00df28t7c1", "number": "14.5:18", "link": "entities-and-resolution.html#fls_mo00df28t7c1", "checksum": "1f6a93e2bd7f34e4fba8c83590318721a361b61a42c82338c30914ca994e74b0"}, {"id": "fls_8o3izim4zf8t", "number": "14.5:19", "link": "entities-and-resolution.html#fls_8o3izim4zf8t", "checksum": "e64cf0d2e680eb773614e1b17642212b8071fe0e2601a1b4c95e71731c84a4e0"}, {"id": "fls_fweohszgbuj4", "number": "14.5:20", "link": "entities-and-resolution.html#fls_fweohszgbuj4", "checksum": "8030bef3d19c581e3a4a96c91f3fd57388b1fb2bedea44b40c010da243302e7f"}, {"id": "fls_ry02dzisxz3h", "number": "14.5:21", "link": "entities-and-resolution.html#fls_ry02dzisxz3h", "checksum": "df9b14ad6a4ce87a81cdbfcb59cf04e07e8eb0a0c2de14823a7b87d1ee2a5700"}, {"id": "fls_dcz1bxjjfsq", "number": "14.5:22", "link": "entities-and-resolution.html#fls_dcz1bxjjfsq", "checksum": "5cd65fc00ce58c6713964263dae05662f477e761c5b34c5bd4f050b3608b12bc"}, {"id": "fls_wt9kgsi6n6ep", "number": "14.5:23", "link": "entities-and-resolution.html#fls_wt9kgsi6n6ep", "checksum": "1d817e252ce6759b84635d64a683f45d0081ab7c687143959331fb141cce459a"}, {"id": "fls_w29t5njbe46s", "number": "14.5:24", "link": "entities-and-resolution.html#fls_w29t5njbe46s", "checksum": "52ce21886a1f1adcb3176e37769e7fbf75f96b161b8f1ff617e40e254a1113b6"}, {"id": "fls_u1533bngb0yv", "number": "14.5:25", "link": "entities-and-resolution.html#fls_u1533bngb0yv", "checksum": "26d2b1e1d098bd315370c984c209e9bcfe05242d062331290c72be6bbe298b92"}, {"id": "fls_e8v4g45v5ry2", "number": "14.5:26", "link": "entities-and-resolution.html#fls_e8v4g45v5ry2", "checksum": "daa0b3886b8ff9f6ff8b555ad965ddbc2563f2cf44e1b869d632647511fde7f0"}, {"id": "fls_pq8bzav84q3z", "number": "14.5:27", "link": "entities-and-resolution.html#fls_pq8bzav84q3z", "checksum": "120d3ec4ef8b8d96a2aeed9aae90b73656762d0a9cad70696c487cf430845448"}, {"id": "fls_ttr6v8ca4av0", "number": "14.5:28", "link": "entities-and-resolution.html#fls_ttr6v8ca4av0", "checksum": "809a2c313aa61cdd28a44cd5fcd05bcb52778a18127ddd942da86fc441d1c2de"}, {"id": "fls_aivi97hhfxy2", "number": "14.5:29", "link": "entities-and-resolution.html#fls_aivi97hhfxy2", "checksum": "3ff5dde150cb5c944aec2ecd5a8349fb90870bae072f2f54544f3c820bfa7fee"}, {"id": "fls_pie4ltdtzkl3", "number": "14.5:30", "link": "entities-and-resolution.html#fls_pie4ltdtzkl3", "checksum": "d4015ccb1d4717c0b29f6d3f48fddfad1ac1f9f8a397e4963f0d571b37bd4a4b"}, {"id": "fls_qmf7lk6h96sv", "number": "14.5:31", "link": "entities-and-resolution.html#fls_qmf7lk6h96sv", "checksum": "650724cc8ebda80bcd989f6e99e585db43a4590a015f45fedea21bb82f33dc3c"}, {"id": "fls_ufp3btk8pet5", "number": "14.5:32", "link": "entities-and-resolution.html#fls_ufp3btk8pet5", "checksum": "ba289fa126ce5f48c2046c9cc9e5e7cbd13217e772757f9c2d12848473872ebd"}, {"id": "fls_t3bnpkfazw4z", "number": "14.5:33", "link": "entities-and-resolution.html#fls_t3bnpkfazw4z", "checksum": "cc447ee2f7a5dac66d5e22eb032c6a31eb21d5526ca66fda96ebc2ad415fe6e6"}, {"id": "fls_y0shlli54n5y", "number": "14.5:34", "link": "entities-and-resolution.html#fls_y0shlli54n5y", "checksum": "61fb8303812158a4adfaef901dc1452be9cb24ee1b643dfde5f612d0d0a7eacf"}, {"id": "fls_tghgxcju5u2t", "number": "14.5:35", "link": "entities-and-resolution.html#fls_tghgxcju5u2t", "checksum": "42dffcc4cecdc17b20167b7319ca32561b6c3bac4a546b72a18301ddd55a407a"}, {"id": "fls_yesesxynpq6s", "number": "14.5:36", "link": "entities-and-resolution.html#fls_yesesxynpq6s", "checksum": "40f27fcd73d87d8592e01e22030b08faea5b83cae412960f492dcc2f8a684cc2"}, {"id": "fls_40o8y6exr3df", "number": "14.5:37", "link": "entities-and-resolution.html#fls_40o8y6exr3df", "checksum": "ff385d3524d4f2788d893d77f024a5876c248a7eeee84ac5626642a07c55e0aa"}, {"id": "fls_y76o5ug7dtv", "number": "14.5:38", "link": "entities-and-resolution.html#fls_y76o5ug7dtv", "checksum": "a2c64e06759e68c6b0cf453b6868f12decc89182b9e88d83b02190bccc393951"}, {"id": "fls_3np518s1su4w", "number": "14.5:39", "link": "entities-and-resolution.html#fls_3np518s1su4w", "checksum": "45f1bccebe0303da8288a05a61a1209ff3203d962d252fcfa1fb0a549f9feb28"}], "informational": false}, {"id": "fls_ld0ize96cm6m", "number": "14.6", "title": "Preludes", "link": "entities-and-resolution.html#preludes", "paragraphs": [{"id": "fls_po4gw6t2ptwu", "number": "14.6:1", "link": "entities-and-resolution.html#fls_po4gw6t2ptwu", "checksum": "38d62c936f206c7f1e48f785bbde2d34f1bc2865287994876e882b1c0f65d05e"}, {"id": "fls_n4102qskkmz2", "number": "14.6:2", "link": "entities-and-resolution.html#fls_n4102qskkmz2", "checksum": "9110a045c9c8c940ad03c36e93d5155d9143317d35c55691fb325a15db4b8607"}, {"id": "fls_atvnwly4w8g2", "number": "14.6:3", "link": "entities-and-resolution.html#fls_atvnwly4w8g2", "checksum": "ec28e48bd9269897b4f0446e74ae493289085d680cbdc44336623ee5d261c82b"}, {"id": "fls_pbc7ktlu0pl", "number": "14.6:4", "link": "entities-and-resolution.html#fls_pbc7ktlu0pl", "checksum": "51511e88fc1929d2b8a82b1599001557503f199917df1a80d734152884ff7c77"}, {"id": "fls_frjv68kqqxfh", "number": "14.6:5", "link": "entities-and-resolution.html#fls_frjv68kqqxfh", "checksum": "6bc798373f758197663c5691e9bf15b398a778e6f199a05c44fa7aa932fe6c11"}, {"id": "fls_rf6a2ae3y7vu", "number": "14.6:6", "link": "entities-and-resolution.html#fls_rf6a2ae3y7vu", "checksum": "c92c07a0326e48234f51c8b6a55bbc0ef651cc56135b5f0f5b5203095dac192e"}, {"id": "fls_sxnnkzmuvexa", "number": "14.6:7", "link": "entities-and-resolution.html#fls_sxnnkzmuvexa", "checksum": "4346e39808389249844816dc52643e4e1c2e04e1990eddc603e94ad0e797c809"}, {"id": "fls_qsyorqjkdh2t", "number": "14.6:8", "link": "entities-and-resolution.html#fls_qsyorqjkdh2t", "checksum": "27cab7337ca595be01ad78b78429ef14d328fa6a449fea686acad8144ea79c34"}, {"id": "fls_aolj6abvp9sa", "number": "14.6:9", "link": "entities-and-resolution.html#fls_aolj6abvp9sa", "checksum": "77446948cc77c5f2d38ee156686b5607c4f0331f371b47e54e835ad173f80ba9"}, {"id": "fls_of4n3vv15l5z", "number": "14.6:10", "link": "entities-and-resolution.html#fls_of4n3vv15l5z", "checksum": "9a4a1df8c10224f0c968a22de8bdb0bef1914575cfb19ea0eabb39bce468dd62"}], "informational": false}, {"id": "fls_9gprp17h6t1q", "number": "14.7", "title": "Use Imports", "link": "entities-and-resolution.html#use-imports", "paragraphs": [{"id": "fls_lyw4t098sxrj", "number": "14.7:1", "link": "entities-and-resolution.html#fls_lyw4t098sxrj", "checksum": "813cc34b517b6e85c804618d58441cbaec0e01369396ee4e16225d853a8ea8f3"}, {"id": "fls_sxo1jb25pl8a", "number": "14.7:2", "link": "entities-and-resolution.html#fls_sxo1jb25pl8a", "checksum": "60cd8ef0b9e4e5913161b5314d0d298edd34ff20cb398eb5e69afcb53c884a65"}, {"id": "fls_waa4wmohgu6t", "number": "14.7:3", "link": "entities-and-resolution.html#fls_waa4wmohgu6t", "checksum": "eb328b409e1e5b1f5bfe01c443065950ff895ff862c758235178db6ea7812a7b"}, {"id": "fls_ipyvldmqduf4", "number": "14.7:4", "link": "entities-and-resolution.html#fls_ipyvldmqduf4", "checksum": "1b245fbcb87f36b4177fc03be141f12a61d6353063182660fab4e0cdc454c0da"}, {"id": "fls_moxid37fcnpy", "number": "14.7:5", "link": "entities-and-resolution.html#fls_moxid37fcnpy", "checksum": "e517d4937f6b8b583887c5043676af52be726cafd61bbc680f13f5656221172d"}, {"id": "fls_2uyfcb6our1v", "number": "14.7:6", "link": "entities-and-resolution.html#fls_2uyfcb6our1v", "checksum": "6bf1152c602ed8ba48c73c7fa1915bfad897fb93875da88dcb8ba9ffbffd7dca"}, {"id": "fls_irdkqoyzbm0m", "number": "14.7:7", "link": "entities-and-resolution.html#fls_irdkqoyzbm0m", "checksum": "79e5b1e6a7d289558aff645ca9eef17ce05e04fedcea56361c3c5c8e0ee8da88"}, {"id": "fls_gawsqibl4glq", "number": "14.7:8", "link": "entities-and-resolution.html#fls_gawsqibl4glq", "checksum": "f9a3c4f788393bf20c3f6e2f1532ebe181eabd6d14c64bc76bbde37f384cc86b"}, {"id": "fls_2bkcn83smy2y", "number": "14.7:9", "link": "entities-and-resolution.html#fls_2bkcn83smy2y", "checksum": "5b6924c18d30552bc9b8351dcc65a6bd1e5d98680cbcb35bd254e872513eb96e"}, {"id": "fls_v3a6y2ze44v2", "number": "14.7:10", "link": "entities-and-resolution.html#fls_v3a6y2ze44v2", "checksum": "7fbdb92123ed136d12204172f71af7bdf831c5cca0d09fb88a8446f8a976e9cd"}, {"id": "fls_jhu0ersyb6el", "number": "14.7:11", "link": "entities-and-resolution.html#fls_jhu0ersyb6el", "checksum": "7645908217267b4bb43c4e7b5562d641d9bd121bc47c13f2301e854c768d2dab"}, {"id": "fls_jlnkxkuhsvx4", "number": "14.7:12", "link": "entities-and-resolution.html#fls_jlnkxkuhsvx4", "checksum": "8e0c213bf3df7e68bb3d5a37c5d28f9a2951831f6a212231d780248a26766802"}, {"id": "fls_q0kffnalmslq", "number": "14.7:13", "link": "entities-and-resolution.html#fls_q0kffnalmslq", "checksum": "9cec53e98886d395fc8df4d58bb00bfcb91617b34acaf616395d8e52652246e5"}, {"id": "fls_hy17lzofgfop", "number": "14.7:14", "link": "entities-and-resolution.html#fls_hy17lzofgfop", "checksum": "3bfcbf98de455cd97691285c1acf7f4818c2d6a62889ebc042f7444e9a36d98b"}, {"id": "fls_90hqvsh7bfyg", "number": "14.7:15", "link": "entities-and-resolution.html#fls_90hqvsh7bfyg", "checksum": "64222f860a3b80479b545a9e1668b362fc096bd84fd135b83848cab59f535464"}, {"id": "fls_wrmvtgqkfa6w", "number": "14.7:16", "link": "entities-and-resolution.html#fls_wrmvtgqkfa6w", "checksum": "0e4fdf65d5d96641f5f69fd73231dc0d8b53d0a8ee40c16c7e62fc70ee53f047"}, {"id": "fls_kz2gij5whxnl", "number": "14.7:17", "link": "entities-and-resolution.html#fls_kz2gij5whxnl", "checksum": "b5a17251d386bd737a55045cc108b41a18740d77abb50130269d9ebe6303ec72"}, {"id": "fls_yy58pfpkig9o", "number": "14.7:18", "link": "entities-and-resolution.html#fls_yy58pfpkig9o", "checksum": "2649f9cf8cb9cc5a2907d411e6134e4e0997b0ab85f19a07509de9ffc29575b4"}, {"id": "fls_ar03d5rxjzy0", "number": "14.7:19", "link": "entities-and-resolution.html#fls_ar03d5rxjzy0", "checksum": "41745bc2f1843a06a54a672f54f86ac947143da2a368e20e62f8df7a9d67ebeb"}, {"id": "fls_ce73bg0bqv1x", "number": "14.7:20", "link": "entities-and-resolution.html#fls_ce73bg0bqv1x", "checksum": "00e9aea779512a6b5660ecaf0702c0d3ac4c3c845a967ca739fd4cac1be0b551"}, {"id": "fls_filur3pfwjw3", "number": "14.7:21", "link": "entities-and-resolution.html#fls_filur3pfwjw3", "checksum": "43af72288bd22a2547f54bfac05285b72065c3c2cb06c8de5b5ce6ba9efb055b"}, {"id": "fls_iqogxnihuer7", "number": "14.7:22", "link": "entities-and-resolution.html#fls_iqogxnihuer7", "checksum": "2ddb4b51369e74bddbb00fcd04f1bb773bfba5a9e5dfc796d8df300f808159ff"}, {"id": "fls_ldr7tsuqw34s", "number": "14.7:23", "link": "entities-and-resolution.html#fls_ldr7tsuqw34s", "checksum": "fa0a3046e6eb99fb80810bb3178f02f5e79ed989591df2df0d2770e7a189838e"}, {"id": "fls_inubx5fjai1n", "number": "14.7:24", "link": "entities-and-resolution.html#fls_inubx5fjai1n", "checksum": "8cdb7a1fd01eee9c13a292e349acea9eb9ac949a2fa9265baef3c16015ddb27e"}, {"id": "fls_ruifq17bmrlt", "number": "14.7:25", "link": "entities-and-resolution.html#fls_ruifq17bmrlt", "checksum": "12921489bca7899128033af3093a7ba86cffca5d616df55a4805a78bec860c60"}, {"id": "fls_hv3xt2cjzuxc", "number": "14.7:26", "link": "entities-and-resolution.html#fls_hv3xt2cjzuxc", "checksum": "923e223c194e910992be0f11cedf10480449de62681514efabd485fd092a163f"}, {"id": "fls_pxc0ts8y7pfw", "number": "14.7:27", "link": "entities-and-resolution.html#fls_pxc0ts8y7pfw", "checksum": "7b947c9844d14caa57b996745fe9aba3027e04b17242edb5d6ba5c93d9247024"}, {"id": "fls_wb3fvglloqbz", "number": "14.7:28", "link": "entities-and-resolution.html#fls_wb3fvglloqbz", "checksum": "17b551577a4582157ce3c9a4dd5f1f653ac4f0fcca4d9b35db57fcb2edc04dda"}, {"id": "fls_zmysbw995ksn", "number": "14.7:29", "link": "entities-and-resolution.html#fls_zmysbw995ksn", "checksum": "96787ea2ff0300ae0e9ddc0818a3d47b177e6ce4c85c2c850a2784a954fa5c27"}, {"id": "fls_5dlnffim6fso", "number": "14.7:30", "link": "entities-and-resolution.html#fls_5dlnffim6fso", "checksum": "0e8c1af4192bbb151c8e0d0e48a61bbc1f113b36ede83721e90db3fc6229e35a"}, {"id": "fls_9rhflreuubhq", "number": "14.7:31", "link": "entities-and-resolution.html#fls_9rhflreuubhq", "checksum": "6a1fe59e480a0b1ad4b849816298fff68ba63985da52c560be04b860192302b0"}, {"id": "fls_s86dgrdpl1w4", "number": "14.7:32", "link": "entities-and-resolution.html#fls_s86dgrdpl1w4", "checksum": "450d1f7e6a218347a2975757a64915986a919f11db07da137f1b613c0651d553"}], "informational": false}, {"id": "fls_ydmnb7qnmzzq", "number": "14.8", "title": "Shadowing", "link": "entities-and-resolution.html#shadowing", "paragraphs": [{"id": "fls_ob0riinmitkl", "number": "14.8:1", "link": "entities-and-resolution.html#fls_ob0riinmitkl", "checksum": "eb93934c961caf16b01776dfdbf9b28bd8d888368b6ad7e96ed926a29f22bbf4"}, {"id": "fls_fslg89a70e3n", "number": "14.8:2", "link": "entities-and-resolution.html#fls_fslg89a70e3n", "checksum": "6e3390d623ef6fb40f9e1687c6a8225b9eba4a6e72844ff3d2c96319a35975fc"}, {"id": "fls_hp3f4r3399kt", "number": "14.8:3", "link": "entities-and-resolution.html#fls_hp3f4r3399kt", "checksum": "db3d661af677fa5cf3df3f945d076f9f7636833ffe1dda2753c0bd7295c67912"}, {"id": "fls_z8qjpskt13yq", "number": "14.8:4", "link": "entities-and-resolution.html#fls_z8qjpskt13yq", "checksum": "418ed55705f495765526f09bf71b0e5b2725b130e6f0fce6aef783c6ebca4258"}, {"id": "fls_i0gp1y38lr73", "number": "14.8:5", "link": "entities-and-resolution.html#fls_i0gp1y38lr73", "checksum": "7bb5774d32bb848596abc22f98835526687c7290c92e9a0c480006e2ff78fcee"}, {"id": "fls_7pif12rt4s4s", "number": "14.8:6", "link": "entities-and-resolution.html#fls_7pif12rt4s4s", "checksum": "83eb26105dc85d77872ef84d2a9ee034d52e70b80e1aebf1653955eb3298caad"}, {"id": "fls_are9qz67p7b6", "number": "14.8:7", "link": "entities-and-resolution.html#fls_are9qz67p7b6", "checksum": "2b077c03fd28171c667fe2cf4b197a2f463d319e9fc967f4718fc7013e240522"}, {"id": "fls_4tis5syofyg0", "number": "14.8:8", "link": "entities-and-resolution.html#fls_4tis5syofyg0", "checksum": "c67d0f504519dd854e9530bae15b45de6b718e9b8c41f7cbf3e5178c96e8c04b"}, {"id": "fls_u0tsnkhacr06", "number": "14.8:9", "link": "entities-and-resolution.html#fls_u0tsnkhacr06", "checksum": "77ce43e27ab83c36305d9a185a5ca04f7f8829673d2b5697f77fd89d032f6cbe"}, {"id": "fls_iaklf84guczc", "number": "14.8:10", "link": "entities-and-resolution.html#fls_iaklf84guczc", "checksum": "28721531162ef5d6094a8ccb50a419eb494630777d043b260cc2e84dd9e65180"}, {"id": "fls_a0zovslu2v4u", "number": "14.8:11", "link": "entities-and-resolution.html#fls_a0zovslu2v4u", "checksum": "849224ffd513f258a847928a943322879b28ee64055165e1ea8d3bac7ae0e624"}], "informational": false}, {"id": "fls_40xoego2thsp", "number": "14.9", "title": "Resolution", "link": "entities-and-resolution.html#resolution", "paragraphs": [{"id": "fls_ho4kem1slcxg", "number": "14.9:1", "link": "entities-and-resolution.html#fls_ho4kem1slcxg", "checksum": "9dc68fa012d432e6ce69d9945c40a38ec3fa96e38601d3106e03acfe663fdc95"}, {"id": "fls_7le2vcdbtxbq", "number": "14.9:2", "link": "entities-and-resolution.html#fls_7le2vcdbtxbq", "checksum": "66ebea6978cb1daf3e00dfeebbba4e819b907b02a40349e360a6b094881ff7ff"}, {"id": "fls_x3alg07yd7hx", "number": "14.9:3", "link": "entities-and-resolution.html#fls_x3alg07yd7hx", "checksum": "f1ca8332615aeed822d795872f0809ed29a4e1d2160faa1ee7da8b3e1f6e6346"}, {"id": "fls_4hulwazdu20i", "number": "14.9:4", "link": "entities-and-resolution.html#fls_4hulwazdu20i", "checksum": "1697af6564bdffc62e51d3c846e72831c1c12e73fe2790f11c7a21ebfaa07a71"}, {"id": "fls_ptocwx5p25lj", "number": "14.9:5", "link": "entities-and-resolution.html#fls_ptocwx5p25lj", "checksum": "f79f3efcbf1195ffe54c0a60acbf4bf5874f53ef8c0b36f0851ce886a40598d3"}, {"id": "fls_ygam5nisv98c", "number": "14.9:6", "link": "entities-and-resolution.html#fls_ygam5nisv98c", "checksum": "a131476f47296126bd7d484e19183efe874d331eb45abb3ea465295d1c0645ca"}], "informational": false}, {"id": "fls_xcwfotmq2e5d", "number": "14.9.1", "title": "Field Resolution", "link": "entities-and-resolution.html#field-resolution", "paragraphs": [{"id": "fls_1nxknwjdp0am", "number": "14.9.1:1", "link": "entities-and-resolution.html#fls_1nxknwjdp0am", "checksum": "aaf0db1f36f8f15b96618b5a70cec4a15e5d625748a8590acdfb9e046f222dd1"}, {"id": "fls_j1bip4w30q8", "number": "14.9.1:2", "link": "entities-and-resolution.html#fls_j1bip4w30q8", "checksum": "66cc3c2c1a5ec6dd71396911c8316e01e72ca51ce4bc489387e1e7b0b3371827"}, {"id": "fls_jrk3gzqvqr8e", "number": "14.9.1:3", "link": "entities-and-resolution.html#fls_jrk3gzqvqr8e", "checksum": "19df557d0cd32382f3a39cabc59987441fef33fd672cfe083367c1432ed20de2"}, {"id": "fls_asn20qx16sr6", "number": "14.9.1:4", "link": "entities-and-resolution.html#fls_asn20qx16sr6", "checksum": "8a8e13fcffd5809ce5f90c8ea9cefec9fa5ca58b1bea8566b16d1fc9a6040f1d"}, {"id": "fls_jzoon4x89zp7", "number": "14.9.1:5", "link": "entities-and-resolution.html#fls_jzoon4x89zp7", "checksum": "f7516801073f4902b37f8c6a2860b920595b14089f145b432e64e340de0fca99"}, {"id": "fls_r80pixfoe5hk", "number": "14.9.1:6", "link": "entities-and-resolution.html#fls_r80pixfoe5hk", "checksum": "7a2ade6ee042d2fa1254f9e3a047fe526e3618d2f949b87f34a08121a165eb4f"}, {"id": "fls_40oa0j6aiop3", "number": "14.9.1:7", "link": "entities-and-resolution.html#fls_40oa0j6aiop3", "checksum": "3c9f984a5a8cf97fecfc89b84a15e8ae272e62c460b0988610134cebefe43a63"}, {"id": "fls_2bp1zs7qaz7o", "number": "14.9.1:8", "link": "entities-and-resolution.html#fls_2bp1zs7qaz7o", "checksum": "9f3f6ee5e9400959e3a4445be267664e3ccdec6bf0887f243d3696b27b6c2ac2"}, {"id": "fls_s14fegwhwnc8", "number": "14.9.1:9", "link": "entities-and-resolution.html#fls_s14fegwhwnc8", "checksum": "1245cb0d297861a8c0266d9628d353be5f835d30038c5d29c99d6ebd0af2a540"}, {"id": "fls_tfjm27ydiake", "number": "14.9.1:10", "link": "entities-and-resolution.html#fls_tfjm27ydiake", "checksum": "1fa259887a9405988fa7b3381ca5a486089f705f216bc750d058d170e8641a6d"}, {"id": "fls_p6hgoqo0kcx", "number": "14.9.1:11", "link": "entities-and-resolution.html#fls_p6hgoqo0kcx", "checksum": "0ac084f03e5a81020440616fa419fc5d5b6861d4a201ef74c1be61813fdeca03"}, {"id": "fls_e7sj392ohvbd", "number": "14.9.1:12", "link": "entities-and-resolution.html#fls_e7sj392ohvbd", "checksum": "4e24dc92aa06d5b4ad0e1df6508c329176170f30e1a94c6692df3e2e12215796"}, {"id": "fls_z6qt9obbhhcg", "number": "14.9.1:13", "link": "entities-and-resolution.html#fls_z6qt9obbhhcg", "checksum": "07f1cdb38f9bd8c127759860f4a51b104e71f573c2880fceec9bb97d393d32aa"}, {"id": "fls_ljnjxex3u5o", "number": "14.9.1:14", "link": "entities-and-resolution.html#fls_ljnjxex3u5o", "checksum": "c7857117b11bfd871d7e3b709cd608d66f29d41ebccc028b2b47eb0a71ae7fd5"}, {"id": "fls_nm06mru40tyg", "number": "14.9.1:15", "link": "entities-and-resolution.html#fls_nm06mru40tyg", "checksum": "bb0494028f9d19ce98975cf71392baf6f4b01e861bd44b13c4eec3780403a9fa"}], "informational": false}, {"id": "fls_wqazkzle0ix9", "number": "14.9.2", "title": "Method Resolution", "link": "entities-and-resolution.html#method-resolution", "paragraphs": [{"id": "fls_e5a5z5yht26l", "number": "14.9.2:1", "link": "entities-and-resolution.html#fls_e5a5z5yht26l", "checksum": "506663a2566f85e068c82d0103f1ca78bd821cb68b77fbdbcd52c1072331ad09"}, {"id": "fls_mbds0xinlj92", "number": "14.9.2:2", "link": "entities-and-resolution.html#fls_mbds0xinlj92", "checksum": "29e3e853007709641b0c2182f3e9bc70020808d3869acd0dcfa131141a8c00a0"}, {"id": "fls_z80ylmlu1f3q", "number": "14.9.2:3", "link": "entities-and-resolution.html#fls_z80ylmlu1f3q", "checksum": "c89b01c453ba585643631dc3b2963abc8b1e4c53933b3721b3dfc7101393d2d2"}, {"id": "fls_e1029pvq706h", "number": "14.9.2:4", "link": "entities-and-resolution.html#fls_e1029pvq706h", "checksum": "0cf16c00febccc266cbb1905aa697021947ef02980576e67df40efe5cf32c0a4"}, {"id": "fls_w3ik83d43fr1", "number": "14.9.2:5", "link": "entities-and-resolution.html#fls_w3ik83d43fr1", "checksum": "7d99ef0d1b75056141e26deea64ad1a7c9653284138e25b5fdad0f5c30a465b0"}, {"id": "fls_pybv4krsvktv", "number": "14.9.2:6", "link": "entities-and-resolution.html#fls_pybv4krsvktv", "checksum": "8e912acb711b0d365e2b30de2a8c67f34bfc9132756c0ce068ee0cccafb9d8d4"}, {"id": "fls_m2njj6no0p1i", "number": "14.9.2:7", "link": "entities-and-resolution.html#fls_m2njj6no0p1i", "checksum": "2f5e3e2a6ede7f8249c7456439a30d94da8d1baf1c53135ae9fbdde73ae46077"}, {"id": "fls_16l2q1wpcnbp", "number": "14.9.2:8", "link": "entities-and-resolution.html#fls_16l2q1wpcnbp", "checksum": "72843d941971110fefb9a9b6995ef90cd5b564d6639651630b631e41ee4e491e"}, {"id": "fls_fcnahkqxomuo", "number": "14.9.2:9", "link": "entities-and-resolution.html#fls_fcnahkqxomuo", "checksum": "6d27f6b19310c77c713cea4e5c7bb344db8cbb3fdf479386c7233e155236809f"}, {"id": "fls_ii0fdpekn1qt", "number": "14.9.2:10", "link": "entities-and-resolution.html#fls_ii0fdpekn1qt", "checksum": "cb39263ec9ad7cd027df0b037770018592ea1b93c52e02c1e911048464995f86"}, {"id": "fls_ohjmxhbw3nx3", "number": "14.9.2:11", "link": "entities-and-resolution.html#fls_ohjmxhbw3nx3", "checksum": "e7745cebb4a1cfb9d08a5ec1b5827d5cb745348158eb1ab0b3677d950118e4c7"}, {"id": "fls_lgpdicxxwq13", "number": "14.9.2:12", "link": "entities-and-resolution.html#fls_lgpdicxxwq13", "checksum": "d9a23a581045be380483ef64273fb0970eb3a080cffb32f83f6ff8e0922acd5c"}, {"id": "fls_ugl3x4y3lli2", "number": "14.9.2:13", "link": "entities-and-resolution.html#fls_ugl3x4y3lli2", "checksum": "d684bf9d23507a618c9721f7ea2ec85c2736c06dbee658fa864d22a5e32c5d44"}, {"id": "fls_bb4cbmvui8fk", "number": "14.9.2:14", "link": "entities-and-resolution.html#fls_bb4cbmvui8fk", "checksum": "8e4b764f8f8a09f136954a2bfc947ddc4eda420f1148fad92fc5fa7a24c12c13"}, {"id": "fls_5wny1yxbyuz0", "number": "14.9.2:15", "link": "entities-and-resolution.html#fls_5wny1yxbyuz0", "checksum": "66ebe678e1ae9102e4d8521706cef63daeae10b848e263ab3766e4aa6cc9a1d9"}, {"id": "fls_gsc8pt4tlsqv", "number": "14.9.2:16", "link": "entities-and-resolution.html#fls_gsc8pt4tlsqv", "checksum": "17c39504c2086447190664d68d7a3eae124510357ebc7f144f3d1b25f7026518"}, {"id": "fls_tfglce1wuq5q", "number": "14.9.2:17", "link": "entities-and-resolution.html#fls_tfglce1wuq5q", "checksum": "9aed381332445df712568775e61af445c35e6c942e4722e7a4d38140ff9b3fa3"}, {"id": "fls_64bfcn9okeve", "number": "14.9.2:18", "link": "entities-and-resolution.html#fls_64bfcn9okeve", "checksum": "04832d6c14ff2380c1a19024f980142d165adb58520a40c0c8af80ffe1fb55c8"}, {"id": "fls_om90v9re8b2l", "number": "14.9.2:19", "link": "entities-and-resolution.html#fls_om90v9re8b2l", "checksum": "3700640ef18118308cf59e04636cc5b6f1c574e9b6d802e29ef33f0d5814bf71"}, {"id": "fls_bsf4hy9x7c2e", "number": "14.9.2:20", "link": "entities-and-resolution.html#fls_bsf4hy9x7c2e", "checksum": "f01b3809e31f3e711b3d853cd5dc8d1acdc431c60f9d0c04452abeccb6190de6"}, {"id": "fls_cnn5hkf1z5q4", "number": "14.9.2:21", "link": "entities-and-resolution.html#fls_cnn5hkf1z5q4", "checksum": "e610b83f08f3c1ffeb1693c97a13b45472e77067e9caff1501681e6e4ff7633c"}, {"id": "fls_j9ho6xc2fj0w", "number": "14.9.2:22", "link": "entities-and-resolution.html#fls_j9ho6xc2fj0w", "checksum": "4380ca472e236c4d884dc55c2ab8da71766dbea2d3cc0895b010c2c48c9df55b"}, {"id": "fls_1y94elgpg0uk", "number": "14.9.2:23", "link": "entities-and-resolution.html#fls_1y94elgpg0uk", "checksum": "2cd76e3de2de59d6830b6ea7fef86225bf36e7cfcecb6ebec75030fcfb2efc73"}, {"id": "fls_npsdxrtcslcf", "number": "14.9.2:24", "link": "entities-and-resolution.html#fls_npsdxrtcslcf", "checksum": "4b79cb54112a7172b9965ddcc0ee752f7f3490dd18a445e79bd25bddb06908c0"}, {"id": "fls_yv5l823lwdsv", "number": "14.9.2:25", "link": "entities-and-resolution.html#fls_yv5l823lwdsv", "checksum": "5f2072da8fa1e8d184be3da512c28aed044a859e8fcd3ffe93c952419a84e822"}, {"id": "fls_ckdoyvbaybe0", "number": "14.9.2:26", "link": "entities-and-resolution.html#fls_ckdoyvbaybe0", "checksum": "c3218b553ed9d95d1235f5fc0fd5281890f0bf12ace5c8649ae55530225d53e1"}, {"id": "fls_1azkiu20r0e4", "number": "14.9.2:27", "link": "entities-and-resolution.html#fls_1azkiu20r0e4", "checksum": "64374639950e73d231a40ccb24e159d9cd1d7dd8e03cfab109bd17a57ea06805"}, {"id": "fls_ose5m4bhkg57", "number": "14.9.2:28", "link": "entities-and-resolution.html#fls_ose5m4bhkg57", "checksum": "63fa9c1342877193573e6c29b715d5deac6bfb9eb8ea49fa19c104c6063e6b4c"}, {"id": "fls_jw2yv23cduu4", "number": "14.9.2:29", "link": "entities-and-resolution.html#fls_jw2yv23cduu4", "checksum": "9977dc1614c53e251615c07e9e08e617d47505e3cdbc9b1f313d120c80533919"}], "informational": false}, {"id": "fls_telbknkodx3d", "number": "14.9.3", "title": "Call Resolution", "link": "entities-and-resolution.html#call-resolution", "paragraphs": [{"id": "fls_zjj7y9r6qqmw", "number": "14.9.3:1", "link": "entities-and-resolution.html#fls_zjj7y9r6qqmw", "checksum": "e00de8ccb48972edb964b7efe2cdb1840c249fb526d14c3331b293a3cf8cf79d"}, {"id": "fls_zbslou2gjv7x", "number": "14.9.3:2", "link": "entities-and-resolution.html#fls_zbslou2gjv7x", "checksum": "18e91497757f3ccef6d3e37f0ab6fa99650ef04419b74aa5cb0faaf8d646c8c1"}, {"id": "fls_xbakdylf7aog", "number": "14.9.3:3", "link": "entities-and-resolution.html#fls_xbakdylf7aog", "checksum": "d569ecf4ccc75ebed4ac9a1fd2482c4db16dcb459e321909013b8a42be1b4bf4"}, {"id": "fls_kzovwqiw7ghc", "number": "14.9.3:4", "link": "entities-and-resolution.html#fls_kzovwqiw7ghc", "checksum": "de3fc414790cfa7bddbc44846eff2f3816840e6b0249dd0e743b4ee447d3a909"}, {"id": "fls_4ibdte0ji4tf", "number": "14.9.3:5", "link": "entities-and-resolution.html#fls_4ibdte0ji4tf", "checksum": "f9822b671141f854469f2aa328c18a596471e264a51e4f3c1630f47b3b828d76"}, {"id": "fls_twr5giuxpcaj", "number": "14.9.3:6", "link": "entities-and-resolution.html#fls_twr5giuxpcaj", "checksum": "c7df7b2b6d7b1fbd91b08418341411ea2e0a68ee04bf8ab36bcf50f60d63f1b8"}], "informational": false}, {"id": "fls_i6qzga6dyaee", "number": "14.9.4", "title": "Path Resolution", "link": "entities-and-resolution.html#path-resolution", "paragraphs": [{"id": "fls_8slvisr3jfja", "number": "14.9.4:1", "link": "entities-and-resolution.html#fls_8slvisr3jfja", "checksum": "55361e7d41c5c24510d526001510c8bad4aef48dbd51f81ef0d1fe0e7aa4128c"}, {"id": "fls_nmev0tnzgw35", "number": "14.9.4:2", "link": "entities-and-resolution.html#fls_nmev0tnzgw35", "checksum": "8cd576cd86befd359dfe276c5f05be757f54ff4b4b44768f9a4b71ec18287156"}, {"id": "fls_p23q1ob2qitz", "number": "14.9.4:3", "link": "entities-and-resolution.html#fls_p23q1ob2qitz", "checksum": "a8a99061757e28c4776e91bccebf019763e6c7876ea81a92d9a1c528165aaf18"}, {"id": "fls_e9rv8dfa0arl", "number": "14.9.4:4", "link": "entities-and-resolution.html#fls_e9rv8dfa0arl", "checksum": "537b298a9d54dde06ac687138d86b76d85a21e75ce6b341493c8b394b5239199"}, {"id": "fls_yule33qm1ok", "number": "14.9.4:5", "link": "entities-and-resolution.html#fls_yule33qm1ok", "checksum": "48938e27d06bad943ff87be97fcc21540da3b77868b16a71eb117137d09d23fc"}, {"id": "fls_7xmhm2lf2h8f", "number": "14.9.4:6", "link": "entities-and-resolution.html#fls_7xmhm2lf2h8f", "checksum": "725b600fb8ecdc9eddfb8e2568ae2102893884fcb7c6aa4e1963c948b242dabe"}, {"id": "fls_ec4wo8odusqp", "number": "14.9.4:7", "link": "entities-and-resolution.html#fls_ec4wo8odusqp", "checksum": "d67675a77fe3ac8c7c6a93c703b80fb47b1307005a8bca11ae42fe53388b0e18"}, {"id": "fls_9tedg9lpewqa", "number": "14.9.4:8", "link": "entities-and-resolution.html#fls_9tedg9lpewqa", "checksum": "ed06a87167d12f3592d3f1f3fe6b1b8dee1445d3084186ca2eb0c64e38d0a195"}, {"id": "fls_mvymlhp7192e", "number": "14.9.4:9", "link": "entities-and-resolution.html#fls_mvymlhp7192e", "checksum": "836b27b41fb978acddad30353606e589d3d7a0f959fd869e0363f5f4da38a1e2"}, {"id": "fls_cs485plo4z49", "number": "14.9.4:10", "link": "entities-and-resolution.html#fls_cs485plo4z49", "checksum": "8bc4d6164a3454b1f92bc7c3b987ebd35d035f0b570af2120160837269eb6880"}, {"id": "fls_yrpem8vhxpr5", "number": "14.9.4:11", "link": "entities-and-resolution.html#fls_yrpem8vhxpr5", "checksum": "28e96aa4ab999e28d472ac597a459b4f3cf5355e1f3d4e36729f80527e38a9a3"}, {"id": "fls_ri50nc2dg7c4", "number": "14.9.4:12", "link": "entities-and-resolution.html#fls_ri50nc2dg7c4", "checksum": "12d01e64bed3fb1d93c2baaba1c990b876b01143f65e13549b16e2f86722c1f8"}, {"id": "fls_to52oma1bvx3", "number": "14.9.4:13", "link": "entities-and-resolution.html#fls_to52oma1bvx3", "checksum": "2f1892ee92de8c871fc2ae0a0108195b7e93d76975e2ed4557897be68ac335ea"}, {"id": "fls_kpn2y7xb3s8q", "number": "14.9.4:14", "link": "entities-and-resolution.html#fls_kpn2y7xb3s8q", "checksum": "e2260bf8d1cd6ed1f8f560bde5a04eda03749ba3b9698be0e9e830379cc526ac"}, {"id": "fls_z71op1vdnazq", "number": "14.9.4:15", "link": "entities-and-resolution.html#fls_z71op1vdnazq", "checksum": "e869f661950b3fb36bb49810ed4fa5897bab056d9061a5614f1f983004a68702"}, {"id": "fls_2km29ekj9464", "number": "14.9.4:16", "link": "entities-and-resolution.html#fls_2km29ekj9464", "checksum": "f1bf72c3463050e387b72d2514a1d90f3ce47bceb98da6b23877d0cf3a67ad9a"}, {"id": "fls_l2y464skbuta", "number": "14.9.4:17", "link": "entities-and-resolution.html#fls_l2y464skbuta", "checksum": "8048713e7609c52f8f92a383762dac9c9e3c99f7aa1e987e0d6e2fe1af9c998a"}, {"id": "fls_n2x13sg5szbl", "number": "14.9.4:18", "link": "entities-and-resolution.html#fls_n2x13sg5szbl", "checksum": "1bf727a1dcaab6f5e8df8590d6bb1ba357978668aa0b347d821b88b023b5731b"}, {"id": "fls_53kd7eb1qzuz", "number": "14.9.4:19", "link": "entities-and-resolution.html#fls_53kd7eb1qzuz", "checksum": "288a6623bd127a3853dec6c8c81b675f11276f49d7085cdc4252566638ef0cad"}, {"id": "fls_3spnlz9tqnhj", "number": "14.9.4:20", "link": "entities-and-resolution.html#fls_3spnlz9tqnhj", "checksum": "8d75724256d8acc0107bb9928323bf6eebea21f3cb90023f550e681bd0f4c068"}, {"id": "fls_mt6xki08viyw", "number": "14.9.4:21", "link": "entities-and-resolution.html#fls_mt6xki08viyw", "checksum": "b3276319834228734d7f152a0a6ee88d4760ced117b6e497f7775f79453e1247"}, {"id": "fls_7hk059djudgn", "number": "14.9.4:22", "link": "entities-and-resolution.html#fls_7hk059djudgn", "checksum": "bba6464e5850bc807bb84138c417abccf4d8e863b7cc927a7dc6c4f574742d9f"}, {"id": "fls_lxa7uhmdoy9d", "number": "14.9.4:23", "link": "entities-and-resolution.html#fls_lxa7uhmdoy9d", "checksum": "d976b884515464965ab2b569d6e256a24cbdd97a74803de060faefb3dcf17a9a"}, {"id": "fls_ecazaurxegcs", "number": "14.9.4:24", "link": "entities-and-resolution.html#fls_ecazaurxegcs", "checksum": "3ceffa06884bb95ce527ddb9ed4cc31c620d57a422f0938a8257f78e4c4f844a"}, {"id": "fls_xujlscsir05f", "number": "14.9.4:25", "link": "entities-and-resolution.html#fls_xujlscsir05f", "checksum": "10ebf431ca0e173e09d0e95cc99d83fa560ba88808dfbb3c22cb34e450e43483"}, {"id": "fls_wypnvfklnmc1", "number": "14.9.4:26", "link": "entities-and-resolution.html#fls_wypnvfklnmc1", "checksum": "d4f7baf7b1415e0ddd6d71a215ed14fec816b15d9e58dcc2454d7f27e69004bd"}, {"id": "fls_zi46lmwsn4rg", "number": "14.9.4:27", "link": "entities-and-resolution.html#fls_zi46lmwsn4rg", "checksum": "cd2421eeddd4a05db76bdfc69b504e9b4de55915c2ef18bfaa6e927a3e72ce16"}, {"id": "fls_batfgtxjkq0b", "number": "14.9.4:28", "link": "entities-and-resolution.html#fls_batfgtxjkq0b", "checksum": "5090abee767f23b1aea068bdf5cf40ac88c35f6bab4a3fe0c8da122c592d1093"}], "informational": false}, {"id": "fls_bbso3c45kr9z", "number": "14.9.4.1", "title": "Simple Path Resolution", "link": "entities-and-resolution.html#simple-path-resolution", "paragraphs": [{"id": "fls_uml24jw5jo7a", "number": "14.9.4.1:1", "link": "entities-and-resolution.html#fls_uml24jw5jo7a", "checksum": "c1ebb5064acb14aea9a28d26b01046f531294fbbd5ca6410cce82bf98b8d7261"}, {"id": "fls_59wd7loxst43", "number": "14.9.4.1:2", "link": "entities-and-resolution.html#fls_59wd7loxst43", "checksum": "253940a0312803793da657e8bb0a7e478cbc89857c2a237d03548618de1ec256"}, {"id": "fls_mk0ufkeggot6", "number": "14.9.4.1:3", "link": "entities-and-resolution.html#fls_mk0ufkeggot6", "checksum": "8459bc1ffb9ad72f9f9ce23cfd6b93c218419c6681b8e4a7686dae5b8ac9e309"}, {"id": "fls_ayv8okec9fwb", "number": "14.9.4.1:4", "link": "entities-and-resolution.html#fls_ayv8okec9fwb", "checksum": "b3db0521d2ccad1a7ff3c83e38d7bfada206a50d8fced514e5605a753bcacab8"}, {"id": "fls_ppoc6wcplab6", "number": "14.9.4.1:5", "link": "entities-and-resolution.html#fls_ppoc6wcplab6", "checksum": "1650a4f513fab2754fe189d6a8993c9c7855378082856282662768a8528dc575"}, {"id": "fls_dc0yv4306p82", "number": "14.9.4.1:6", "link": "entities-and-resolution.html#fls_dc0yv4306p82", "checksum": "f036f3d708d6307e0393c1e54c59023aa992026100787bff26b010ac6a22a467"}, {"id": "fls_jhivcca0xcqj", "number": "14.9.4.1:7", "link": "entities-and-resolution.html#fls_jhivcca0xcqj", "checksum": "5ac0651992734c49cdd19081a8d8fe0dc4836c3ac46e8efe50194b2f7e10729f"}, {"id": "fls_tfsgutcpube2", "number": "14.9.4.1:8", "link": "entities-and-resolution.html#fls_tfsgutcpube2", "checksum": "07a8a2eb540fa895244a934632b5bf01b28d65714143604e47094193df81fafb"}], "informational": false}, {"id": "fls_o9u2h5m17kpz", "number": "14.9.4.2", "title": "Path Expression Resolution", "link": "entities-and-resolution.html#path-expression-resolution", "paragraphs": [{"id": "fls_akjlqm3a2lb1", "number": "14.9.4.2:1", "link": "entities-and-resolution.html#fls_akjlqm3a2lb1", "checksum": "89af848f7138b85e851a6fce2956808b14f21021ce84337948db5477059f0233"}, {"id": "fls_xyzdajtf4u2t", "number": "14.9.4.2:2", "link": "entities-and-resolution.html#fls_xyzdajtf4u2t", "checksum": "36e698199bc9da0c6a50931da2b24831e8a0c0750e8ce52aeac1278944de27a5"}, {"id": "fls_d45vu3iazi3", "number": "14.9.4.2:3", "link": "entities-and-resolution.html#fls_d45vu3iazi3", "checksum": "947403e0d43bb6cfb3077d98850a6352967094b8f5cb8b7f5c87720092f9c7ce"}, {"id": "fls_9pjhok9rctty", "number": "14.9.4.2:4", "link": "entities-and-resolution.html#fls_9pjhok9rctty", "checksum": "d10ea4290290cedc3b93488c82b41a90c8b0f81d39b7086609ec5f0800847605"}, {"id": "fls_2wbpr9lvz5yq", "number": "14.9.4.2:5", "link": "entities-and-resolution.html#fls_2wbpr9lvz5yq", "checksum": "b61a1df0de63c17349e99968166779c0689667f68065641b1e2150f748f65308"}, {"id": "fls_u5nyv6ii1g2l", "number": "14.9.4.2:6", "link": "entities-and-resolution.html#fls_u5nyv6ii1g2l", "checksum": "aab266bf1130186940d08a2295560fbf7ce71f175fd96c37a30e54fc2c971f1e"}, {"id": "fls_bscg48os5otx", "number": "14.9.4.2:7", "link": "entities-and-resolution.html#fls_bscg48os5otx", "checksum": "f48db4f42fe8c1ac1316b5e2c8512944ed025def1e5c0e37911a3eca62f9d2d0"}, {"id": "fls_qbmp0blpoxx9", "number": "14.9.4.2:8", "link": "entities-and-resolution.html#fls_qbmp0blpoxx9", "checksum": "82ccbb720ea64a252b72a8aec77019bb5127c99487c3f35d9e6dadc715a2490d"}, {"id": "fls_ydni5laqv6gp", "number": "14.9.4.2:9", "link": "entities-and-resolution.html#fls_ydni5laqv6gp", "checksum": "bbeb20abca91e618378dccd524e3d3a000f6f9e7f3141dc46ca1370b9efb0aeb"}, {"id": "fls_lsxbl6ep3150", "number": "14.9.4.2:10", "link": "entities-and-resolution.html#fls_lsxbl6ep3150", "checksum": "447a699862b4725e7b22ef7e24b1ab0783fec4db871aa6703ba6a7001eab753e"}, {"id": "fls_x1n7w8w6lwm", "number": "14.9.4.2:11", "link": "entities-and-resolution.html#fls_x1n7w8w6lwm", "checksum": "82acf15a92dae67f822e95bc38c6423ae258c77c41fe7312c0a6d9fbb981207e"}, {"id": "fls_v1h4frnbqruu", "number": "14.9.4.2:12", "link": "entities-and-resolution.html#fls_v1h4frnbqruu", "checksum": "15004350a8a539c4ce31613578db742e17945883ac27c5d3bf184e757faed1c6"}, {"id": "fls_utfpnwlo0v99", "number": "14.9.4.2:13", "link": "entities-and-resolution.html#fls_utfpnwlo0v99", "checksum": "9ac0b1cdc63a7e767baf563d906d9f2d9c9f560ba05a020309fdea70f031bf47"}, {"id": "fls_1p8ocf1w5bp4", "number": "14.9.4.2:14", "link": "entities-and-resolution.html#fls_1p8ocf1w5bp4", "checksum": "39b97104cbe16fdf9cdc1acf3f079ade2fd32c3ac33e7858ae07e79a0bbc7907"}, {"id": "fls_qb5yo7j5gnvf", "number": "14.9.4.2:15", "link": "entities-and-resolution.html#fls_qb5yo7j5gnvf", "checksum": "57570b48e6c6c789ee1bcbc956a0f24f79597a3ef49766fcff1d1600dad9b834"}, {"id": "fls_o1g0forw6xw", "number": "14.9.4.2:16", "link": "entities-and-resolution.html#fls_o1g0forw6xw", "checksum": "f5d76df40ae4cadd8e2d9663fbe3c5b810519b7c72d0c10a68e00aa5f027118b"}, {"id": "fls_bcqe13q696zg", "number": "14.9.4.2:17", "link": "entities-and-resolution.html#fls_bcqe13q696zg", "checksum": "ce270746d595abe4f9d7b06360f034018301bd6709bc75fe5c1fde0bc1629b78"}, {"id": "fls_3sceutaqpqha", "number": "14.9.4.2:18", "link": "entities-and-resolution.html#fls_3sceutaqpqha", "checksum": "91a7d385f03fde69b74c5358096b89c7db65599637389124b36104c6f45d2b53"}, {"id": "fls_6q9cwqlvxmd1", "number": "14.9.4.2:19", "link": "entities-and-resolution.html#fls_6q9cwqlvxmd1", "checksum": "6737364b72e672ce8f63321ee00914ec76f3c688ef520853fa9e96db1550f2e5"}, {"id": "fls_qeym3vbi36iv", "number": "14.9.4.2:20", "link": "entities-and-resolution.html#fls_qeym3vbi36iv", "checksum": "a6ecb99abfccb4f9199fc7b11b6264c36f5e5074d9a587814517d58bb28b0397"}, {"id": "fls_8x0pqwpm80sj", "number": "14.9.4.2:21", "link": "entities-and-resolution.html#fls_8x0pqwpm80sj", "checksum": "b5e402b7df0a8601f86f4a9fe385165d3998a9a9d0eda91d847641c00cac3469"}, {"id": "fls_pp09gmrnasjp", "number": "14.9.4.2:22", "link": "entities-and-resolution.html#fls_pp09gmrnasjp", "checksum": "e6032bec4cb34591f1ba4d23d2ce789f2b98a66582dd5c3aa70faf8101bd90f7"}, {"id": "fls_q0jt6n2j1hsx", "number": "14.9.4.2:23", "link": "entities-and-resolution.html#fls_q0jt6n2j1hsx", "checksum": "b1754db3d3ab0eb3fe598859fff3a8179aa499eb840ad97eba99417063259cb9"}], "informational": false}, {"id": "fls_1h0olpc7vbui", "number": "14.9.4.3", "title": "Type Path Resolution", "link": "entities-and-resolution.html#type-path-resolution", "paragraphs": [{"id": "fls_2zuncql8ir5k", "number": "14.9.4.3:1", "link": "entities-and-resolution.html#fls_2zuncql8ir5k", "checksum": "148fc3beb5377b51b5edacfbb4ace5e23c7411944c711b49cd4964375b6fc241"}, {"id": "fls_bv5cj918dqqe", "number": "14.9.4.3:2", "link": "entities-and-resolution.html#fls_bv5cj918dqqe", "checksum": "fbaeca87efc96f46effc5215cbf8bc344900a3226501a59b1a547bb863112ec9"}, {"id": "fls_bsakzuteuh5s", "number": "14.9.4.3:3", "link": "entities-and-resolution.html#fls_bsakzuteuh5s", "checksum": "752f0ff05ebaea022db0ecba55adfcb69b6f6c23c86019b367b3543af220a26c"}, {"id": "fls_j1ewjisx0mc2", "number": "14.9.4.3:4", "link": "entities-and-resolution.html#fls_j1ewjisx0mc2", "checksum": "a2d543d3938e4eaf6c88335ab06f4b99d478110d46ea60d86ee04356b323bcd9"}, {"id": "fls_o4snu1him277", "number": "14.9.4.3:5", "link": "entities-and-resolution.html#fls_o4snu1him277", "checksum": "12dd80327fd8a5c538a2841bd1c0e0122e4159042245c5ffce28e72f8be6691d"}, {"id": "fls_goe8q52toik2", "number": "14.9.4.3:6", "link": "entities-and-resolution.html#fls_goe8q52toik2", "checksum": "6689718fd77318ab2f4a94867ff442dd6bfa733fdede8a658be7cdb6eabb0281"}, {"id": "fls_4rs35f6ydckj", "number": "14.9.4.3:7", "link": "entities-and-resolution.html#fls_4rs35f6ydckj", "checksum": "38657ebf4baa69cb441b05dfa17a0c65b100642cb9c9c766425c0db3fd888577"}, {"id": "fls_jh4db1p7or0x", "number": "14.9.4.3:8", "link": "entities-and-resolution.html#fls_jh4db1p7or0x", "checksum": "b41f690747dc7316182fec64bdba0c0beb06900a8bbaba23f018fcec1330a29d"}], "informational": false}], "informational": false}, {"title": "Attributes", "link": "attributes.html", "sections": [{"id": "fls_gvwd0kf72jt", "number": "13", "title": "Attributes", "link": "attributes.html", "paragraphs": [{"id": "fls_rnzxj1t0hehl", "number": "13:1", "link": "attributes.html#fls_rnzxj1t0hehl", "checksum": "eff2f3d8085ca2ad43e10aa74acd5fb4de1a71393ec1e3bb69b4da6eca0bac43"}, {"id": "fls_yd0ehw5csaur", "number": "13:2", "link": "attributes.html#fls_yd0ehw5csaur", "checksum": "dd933aff5339727903dca2ff3f8484b0c000fdda5ab4ef729319db3dd76c9f10"}, {"id": "fls_8o6vmzbw1b1j", "number": "13:3", "link": "attributes.html#fls_8o6vmzbw1b1j", "checksum": "08694050309ada68c0f9d36f4cf7bf427a740fb2dd1175bd0acf555bedcf4729"}, {"id": "fls_9tmrvlqwadtb", "number": "13:4", "link": "attributes.html#fls_9tmrvlqwadtb", "checksum": "80ab4794df7b97c498adf667d822f03e67802cfa46ac84a9c38967818009cfd1"}], "informational": false}, {"id": "fls_i52cujixq9qs", "number": "13.1", "title": "Attribute Properties", "link": "attributes.html#attribute-properties", "paragraphs": [{"id": "fls_p4potvq7x532", "number": "13.1:1", "link": "attributes.html#fls_p4potvq7x532", "checksum": "37140f4cac4f331316da767c72dc2e92fb5dfe383af30c5eb742a269163ccd01"}, {"id": "fls_xk7lb2g02sy7", "number": "13.1:2", "link": "attributes.html#fls_xk7lb2g02sy7", "checksum": "e3cc14af5a12637d401f768630f9f0596ea7cd5c05458d5e49c6242fc7e178d8"}, {"id": "fls_q8wl7pidx2za", "number": "13.1:3", "link": "attributes.html#fls_q8wl7pidx2za", "checksum": "cebd4af12f069c0f4ce742eabdd258723662de0e0f1065a6bcfe8772e5e7194b"}, {"id": "fls_jottio69o9e7", "number": "13.1:4", "link": "attributes.html#fls_jottio69o9e7", "checksum": "3c8df296f170a3b399899cfa57fc5da2cb24c804bc939039d3e9458c342b6334"}, {"id": "fls_gzyx9lfi5pvd", "number": "13.1:5", "link": "attributes.html#fls_gzyx9lfi5pvd", "checksum": "9ea853c8e48bec469214a2d9b52929d6510733dbfd7da35ad72428a27b205528"}, {"id": "fls_elsfqsiqor1y", "number": "13.1:6", "link": "attributes.html#fls_elsfqsiqor1y", "checksum": "b4754f2c355f2072357c0a755bb404f6751667b43571d332db5c965114f6b906"}, {"id": "fls_4xu1rwecd9au", "number": "13.1:7", "link": "attributes.html#fls_4xu1rwecd9au", "checksum": "ddc3357e11fde52528c561fe21918b1245bd5e8f4b51c556ad29d044506d4dd5"}, {"id": "fls_n3737i320qum", "number": "13.1:8", "link": "attributes.html#fls_n3737i320qum", "checksum": "f304103b55d7d87cca0e19cc4a96ed5406fa81e32277ba35a91b20c6ac85614f"}], "informational": false}, {"id": "fls_ahmnqhm8anlb", "number": "13.2", "title": "Built-in Attributes", "link": "attributes.html#built-in-attributes", "paragraphs": [{"id": "fls_92tqo8uas8kd", "number": "13.2:1", "link": "attributes.html#fls_92tqo8uas8kd", "checksum": "8831d99bc357aecc925ce16cd58e47b873e3b06390d5fb7a155f553383be820f"}, {"id": "fls_bxucstrfcco8", "number": "13.2:2", "link": "attributes.html#fls_bxucstrfcco8", "checksum": "819b429cae29c60933aa33ed73c325f87704b027ac0198d05fae9f4bf69e4f9e"}, {"id": "fls_wle815gb9ai2", "number": "13.2:3", "link": "attributes.html#fls_wle815gb9ai2", "checksum": "44b470444d5c0ced9e021ec324c2d117754a70bf3f44d00e5303fef3bee9f401"}, {"id": "fls_tvn08dtuilue", "number": "13.2:4", "link": "attributes.html#fls_tvn08dtuilue", "checksum": "2e27368f11256b44dd2ff0e2e21daa255d6bed7e9e9c923ff8043070e7560521"}, {"id": "fls_q4c023zdsfgn", "number": "13.2:5", "link": "attributes.html#fls_q4c023zdsfgn", "checksum": "2f27a78e70b3ce7bcc2fa8fbd9d7e48bcf5f81303e22b4473c9ad67be8183e5c"}, {"id": "fls_xtu3p0kzwn7b", "number": "13.2:6", "link": "attributes.html#fls_xtu3p0kzwn7b", "checksum": "baed00b7e77547d373721bf0e05d646d88cb96ded2722b7505577f118cac0b81"}, {"id": "fls_gxxbf6eag3et", "number": "13.2:7", "link": "attributes.html#fls_gxxbf6eag3et", "checksum": "a1e7b39f6c99e32a187f228c19c2009de7fe6fdb93f751ce5336f2008300d9e9"}, {"id": "fls_87o6n9et9jio", "number": "13.2:8", "link": "attributes.html#fls_87o6n9et9jio", "checksum": "d49e8eff84e5ce88a93c8e6b4f4a4ba514b0028bb3d1b7d17254dc7f599ddb15"}, {"id": "fls_ui0i3rpt5v5u", "number": "13.2:9", "link": "attributes.html#fls_ui0i3rpt5v5u", "checksum": "8bdce4eb7ab793087e487d41f14318daea55698317ec8c2b834f93716676d8ba"}, {"id": "fls_6utorag4adlv", "number": "13.2:10", "link": "attributes.html#fls_6utorag4adlv", "checksum": "02a0c085b317b40311d3351f46a1962249d001ea8178f149b1db9a76bfa770f6"}, {"id": "fls_d8spdkjzp496", "number": "13.2:11", "link": "attributes.html#fls_d8spdkjzp496", "checksum": "124eb05c66c007133b357ef970ea0ae8451920e4a7920d8b84d5ec680201b0ed"}, {"id": "fls_vidbcv25dyud", "number": "13.2:12", "link": "attributes.html#fls_vidbcv25dyud", "checksum": "0b3817e206a78ddd0a8e8b4ed610b9f55b12348279d741c6b73e04f718ad7af6"}, {"id": "fls_d0298bmlyuu4", "number": "13.2:13", "link": "attributes.html#fls_d0298bmlyuu4", "checksum": "323fb400bdae437ffcf0829ed2261a1544d5ce01aec7bf434039ecdd05963f85"}, {"id": "fls_dtb3t5ht5ngf", "number": "13.2:14", "link": "attributes.html#fls_dtb3t5ht5ngf", "checksum": "b475a70894edc2d24474d317e039db5c901e1875b816cab114567e81bd8ab90b"}, {"id": "fls_c5n4gzgs79vv", "number": "13.2:15", "link": "attributes.html#fls_c5n4gzgs79vv", "checksum": "9b687112a84218dfa3ca1c0398bd960887a07dd5a6bc8638b5b8d2cb839101cc"}, {"id": "fls_xheohvupr8kb", "number": "13.2:16", "link": "attributes.html#fls_xheohvupr8kb", "checksum": "21c4c3f4bc27f88194a4d70c18fea7e0c0dd30914282d878277d915ff3696c35"}, {"id": "fls_s5z2q5pl14p4", "number": "13.2:17", "link": "attributes.html#fls_s5z2q5pl14p4", "checksum": "d69474814037b5865fc97976164e1adab1e4e2d50965ee20568962b021550b4b"}, {"id": "fls_5ko0q9jnxv5a", "number": "13.2:18", "link": "attributes.html#fls_5ko0q9jnxv5a", "checksum": "e79694d1fca990a102620dc1063eff04ea1dd5c1dfbe2141a22745bbe30aa92d"}, {"id": "fls_rgjf5ibhurda", "number": "13.2:19", "link": "attributes.html#fls_rgjf5ibhurda", "checksum": "e7a9d3069445027dd0df2d0ca2be3467b745bfedc8fda368fdea9ae8714a07b1"}, {"id": "fls_29y8icoou1gx", "number": "13.2:20", "link": "attributes.html#fls_29y8icoou1gx", "checksum": "bdd154ea0f22fca637f51b6c83cb046352335e01a835e7578c6131621efacee3"}, {"id": "fls_3fxhz0olhbcy", "number": "13.2:21", "link": "attributes.html#fls_3fxhz0olhbcy", "checksum": "994a15d14865c9ac299a469fa02491a079be98f08e532c1842561696a2b061a9"}, {"id": "fls_oexj0952o05u", "number": "13.2:22", "link": "attributes.html#fls_oexj0952o05u", "checksum": "3ee32e5e73d9f2f1211fb65ca1c0f0d9d62156fe5ed050f460f1912ce3b036e3"}, {"id": "fls_q579e97n1m8j", "number": "13.2:23", "link": "attributes.html#fls_q579e97n1m8j", "checksum": "cc38d8d58ef7f13fe4397cce653d8d17edbbf4e2f403bfbe1a8b43ec4ec6bc5b"}, {"id": "fls_sn43rofpq6ld", "number": "13.2:24", "link": "attributes.html#fls_sn43rofpq6ld", "checksum": "c162024d8e33899473123cc87be077f31a4f25434418bb05acf6f8b0020d6d36"}, {"id": "fls_56d70gkmin4p", "number": "13.2:25", "link": "attributes.html#fls_56d70gkmin4p", "checksum": "ec2aaeb5be71ab80801008bbbe736f283e0d5966c61fb962f3e0eeca5c099c6c"}, {"id": "fls_mgb1xipm0qwo", "number": "13.2:26", "link": "attributes.html#fls_mgb1xipm0qwo", "checksum": "7272a1c6f97c65a1a242fddb8442c6a6775d841ecf8e6dca74890ea2b21b90ad"}, {"id": "fls_rmhlssasdtkj", "number": "13.2:27", "link": "attributes.html#fls_rmhlssasdtkj", "checksum": "7488d316ab0bbccd6abaa4b7e9fac3051db8b6b7e7abde9eea639f605061ae24"}, {"id": "fls_josaywt6g3rq", "number": "13.2:28", "link": "attributes.html#fls_josaywt6g3rq", "checksum": "e318a8fb125755feb4d3ff217ad94ecfbed347ec2d3b5fc6b915785092ad356f"}, {"id": "fls_qk4vkn42c2jh", "number": "13.2:29", "link": "attributes.html#fls_qk4vkn42c2jh", "checksum": "45520f65cdd77c53947a088461ef31fee2930bb2ed25f58133a20ba182466c85"}, {"id": "fls_f21azsygoovw", "number": "13.2:30", "link": "attributes.html#fls_f21azsygoovw", "checksum": "8c88e030229dcaf650154b169b91390821d8dfd437a0dbe05acfc8e30cba2e0d"}, {"id": "fls_4d31lwzblg91", "number": "13.2:31", "link": "attributes.html#fls_4d31lwzblg91", "checksum": "f89ffdf2e417fe247529cb8ada441fde754938c091666370fb4a4907947ff762"}, {"id": "fls_muucfla1s8yn", "number": "13.2:32", "link": "attributes.html#fls_muucfla1s8yn", "checksum": "f975580a1b931d94c926c545e6f59accc6089800804e55bf0d717b7fc1f63015"}, {"id": "fls_wbdtpntjr95w", "number": "13.2:33", "link": "attributes.html#fls_wbdtpntjr95w", "checksum": "561ac627fa6ab3ebf3be1dfa0723e9ea019b53340fbf84caaf46c3b23415887a"}, {"id": "fls_lglwcbsvi9yj", "number": "13.2:34", "link": "attributes.html#fls_lglwcbsvi9yj", "checksum": "f1727bb25344abffe152fe96b9ae047c50c7467805d094633f7c5ba7a263e76a"}, {"id": "fls_1gyg8hfb13n7", "number": "13.2:35", "link": "attributes.html#fls_1gyg8hfb13n7", "checksum": "f207e9ce744c5b946fc10ed77f0e4d48c9805dbebca1dbdb5557c6a076c1e78f"}, {"id": "fls_6005g57evfbp", "number": "13.2:36", "link": "attributes.html#fls_6005g57evfbp", "checksum": "dfd603b48e4714c2db10e165507f36aabf589e751ffecb158b59124480fe5b80"}, {"id": "fls_3y4o8kq58dt8", "number": "13.2:37", "link": "attributes.html#fls_3y4o8kq58dt8", "checksum": "9d7b1a8681c416a8fb1ffb7f988ebc46ebe4d70caee8109ff9f24e727f1f94fa"}, {"id": "fls_vsix3pqf519x", "number": "13.2:38", "link": "attributes.html#fls_vsix3pqf519x", "checksum": "469d4af2bf4bb8bf7d70abbc6b17c1c1bb6fad4e1fefe9cabd15d3451fcdc72e"}, {"id": "fls_c8uqw8p0qrh5", "number": "13.2:39", "link": "attributes.html#fls_c8uqw8p0qrh5", "checksum": "83ee9ec2496eca5f9f1bf7225a184b339394c8fcd2aa146177bb9bffc0eac79a"}, {"id": "fls_b3jobjxmqppy", "number": "13.2:40", "link": "attributes.html#fls_b3jobjxmqppy", "checksum": "953d885e7fb1e0ea03c0ade5eaa5934bf60dd032fd3261d585adf05d7da0b2e8"}, {"id": "fls_xyhoxm30i7wn", "number": "13.2:41", "link": "attributes.html#fls_xyhoxm30i7wn", "checksum": "276f7f393035ddb571a6f1e00ad388e9854d9e0dcd79acd44e10b7e2f2939fcc"}, {"id": "fls_nowfw1ffhupd", "number": "13.2:42", "link": "attributes.html#fls_nowfw1ffhupd", "checksum": "b5faaae83480acf33dea941d05390fe8ad7ccec79bfab2b30e87b0b938047593"}, {"id": "fls_5i27houut1mu", "number": "13.2:43", "link": "attributes.html#fls_5i27houut1mu", "checksum": "5ce7389b0120f2188d0456318c21e6e97516400b08b9931e9fc08d0e36c18a35"}, {"id": "fls_1v9p4vr1nszn", "number": "13.2:44", "link": "attributes.html#fls_1v9p4vr1nszn", "checksum": "ef068eea3b4195d63c4faeaf8ddec06130b9c97886f65d6a735641fdfa0bbe99"}, {"id": "fls_jvkgtnulrqgh", "number": "13.2:45", "link": "attributes.html#fls_jvkgtnulrqgh", "checksum": "85810ed8c5e753c8587f859f84c0c189be76078846edaa0d4b9844829fc5646f"}, {"id": "fls_k9p2xrs3dotn", "number": "13.2:46", "link": "attributes.html#fls_k9p2xrs3dotn", "checksum": "634ed90b7e9a1e93528b551b7e87ccc2f19cabaabd8cfe119731630c1555b2f8"}, {"id": "fls_73n30xdcx8e", "number": "13.2:47", "link": "attributes.html#fls_73n30xdcx8e", "checksum": "cd700e1e3816ad09e427ed80ad2362eeff80ffa5182360299496b6583c87ec3e"}, {"id": "fls_e7zusnfka5dt", "number": "13.2:48", "link": "attributes.html#fls_e7zusnfka5dt", "checksum": "415ad2d08817bd284d6e72dfa33b0e8321eb4afb36b1cad3da54238b9df07fd6"}, {"id": "fls_85ul6x76ew9", "number": "13.2:49", "link": "attributes.html#fls_85ul6x76ew9", "checksum": "b241235f00eb9bda3db61fcee7dba7a5a395a008dda75dba1c18489f5ec52c23"}, {"id": "fls_xkhm1sht2ju5", "number": "13.2:50", "link": "attributes.html#fls_xkhm1sht2ju5", "checksum": "ad228252c455413a9d11054129ea0a307eb4301392fb4dc7aaaba0db8b102e6c"}, {"id": "fls_w9za4moh6gb3", "number": "13.2:51", "link": "attributes.html#fls_w9za4moh6gb3", "checksum": "3a524553119d48abe6bc7fdc94871d5862f0815aab4e5cfb1f63f69d71656f2b"}, {"id": "fls_3vubhygy9jje", "number": "13.2:52", "link": "attributes.html#fls_3vubhygy9jje", "checksum": "8aafb6d088ea34e1340f6dc625d312ae87a35784cb19b992667687abc8f9bb36"}, {"id": "fls_mhaplbf40j02", "number": "13.2:53", "link": "attributes.html#fls_mhaplbf40j02", "checksum": "90292e11d3564cdfea3b3a715f63a2a2bc7ff5c0e0a7bf7394d45a73612e1542"}, {"id": "fls_23huzf3c4arx", "number": "13.2:54", "link": "attributes.html#fls_23huzf3c4arx", "checksum": "044666250ed6ab719cc195deadec75751cf88ccd03d5d74f0424888448852461"}, {"id": "fls_i63y9xnnwq2z", "number": "13.2:55", "link": "attributes.html#fls_i63y9xnnwq2z", "checksum": "5b250c789906dbcf10378e94398f0b4e5540359c213277369259c48af0bbe0f9"}, {"id": "fls_yic8ksed28no", "number": "13.2:56", "link": "attributes.html#fls_yic8ksed28no", "checksum": "546608d35bfe5a90d5a66a076a3d517f618f561c82800080bab893cd87c9f7aa"}, {"id": "fls_p1ugiol1e5v5", "number": "13.2:57", "link": "attributes.html#fls_p1ugiol1e5v5", "checksum": "bc97a9ab750dc2ab4e8945d338a63dc76c13eb9d172e00871b1bc6678c592cfc"}, {"id": "fls_7xh2iphiteam", "number": "13.2:58", "link": "attributes.html#fls_7xh2iphiteam", "checksum": "6212b84580c14ced11ff1299672bb121d44059cb744a474b7e412ee35d653f43"}], "informational": false}, {"id": "fls_h4k49eadninz", "number": "13.2.1", "title": "Code Generation Attributes", "link": "attributes.html#code-generation-attributes", "paragraphs": [], "informational": false}, {"id": "fls_kpwbpp5hc00s", "number": "13.2.1.1", "title": "Attribute cold", "link": "attributes.html#attribute-cold", "paragraphs": [{"id": "fls_x860jl4103p", "number": "13.2.1.1:1", "link": "attributes.html#fls_x860jl4103p", "checksum": "fb40c1f17f95fed4bda4668940636f75c4436a94cdf00ee6fd2ae36e0ea1c564"}, {"id": "fls_8zdexi5lgm2f", "number": "13.2.1.1:2", "link": "attributes.html#fls_8zdexi5lgm2f", "checksum": "e8b558243f7bf0325a129db3b6a9dcfdeaf35a9b8aee0f97064da28323c33ce0"}], "informational": false}, {"id": "fls_ypio6boj3pwf", "number": "13.2.1.2", "title": "Attribute inline", "link": "attributes.html#attribute-inline", "paragraphs": [{"id": "fls_jwyhky49ssup", "number": "13.2.1.2:1", "link": "attributes.html#fls_jwyhky49ssup", "checksum": "8af34535fc44405dd0d1185fc8ff42acca2853c54da038fc47f8bf644aeedc58"}, {"id": "fls_s7bf7tf9206d", "number": "13.2.1.2:2", "link": "attributes.html#fls_s7bf7tf9206d", "checksum": "4d894bc4ab40b2e9fb23428a9ce2913d411c123546417eb804e57322674bae21"}, {"id": "fls_930o6urn669w", "number": "13.2.1.2:3", "link": "attributes.html#fls_930o6urn669w", "checksum": "132910b8fef15bd7f371019b12f4f3ff9e87a2bad1099553cefb639d39ab7d5c"}, {"id": "fls_z7ufiqqujgdh", "number": "13.2.1.2:4", "link": "attributes.html#fls_z7ufiqqujgdh", "checksum": "c0e37dc273ef977b6bdcb9424c48613b76cb248df209151bdc9e32a5e5e9d029"}, {"id": "fls_f0n4g5uky9tp", "number": "13.2.1.2:5", "link": "attributes.html#fls_f0n4g5uky9tp", "checksum": "02ef19bf80c5200669e96e008b98fccff3c5fa277c7fad57dece77bdf97528fc"}, {"id": "fls_r3p4din7rjz8", "number": "13.2.1.2:6", "link": "attributes.html#fls_r3p4din7rjz8", "checksum": "cd14e98a49d9891ed4fcd4b3b9a2704b3acc39acbfd6deb0698c5b2810227f7e"}], "informational": false}, {"id": "fls_zakwockktml8", "number": "13.2.1.3", "title": "Attribute no_builtins", "link": "attributes.html#attribute-no-builtins", "paragraphs": [{"id": "fls_x36c6j1ivbvp", "number": "13.2.1.3:1", "link": "attributes.html#fls_x36c6j1ivbvp", "checksum": "8009c0049e3490fddc7e24a87c11b90f80ecb8de0220062b76efe87d97c52f20"}, {"id": "fls_k2k10qtn6f0g", "number": "13.2.1.3:2", "link": "attributes.html#fls_k2k10qtn6f0g", "checksum": "7089a3f20c79b60dbcbc66b2e3df9d1c5911e691c738cd1846adf88d4ac1e68b"}], "informational": false}, {"id": "fls_spdmit5fy7el", "number": "13.2.1.4", "title": "Attribute target_feature", "link": "attributes.html#attribute-target-feature", "paragraphs": [{"id": "fls_3qj3jvmtxvx6", "number": "13.2.1.4:1", "link": "attributes.html#fls_3qj3jvmtxvx6", "checksum": "1df8df023327dd4f97448aabeb73c307d5da815e417c8cba242c9e9bfc721c1d"}, {"id": "fls_agpkz1v3c281", "number": "13.2.1.4:2", "link": "attributes.html#fls_agpkz1v3c281", "checksum": "585e4a1fa321aa3303ab0bd5552d8d1721f633efa71ec8860f55edcc75647378"}, {"id": "fls_91b7nd6qslsb", "number": "13.2.1.4:3", "link": "attributes.html#fls_91b7nd6qslsb", "checksum": "e472ceda7230cf454f09e04024a0eaaa04baecb00eb12585de90bdece33f7f1d"}, {"id": "fls_yz4itbk700ot", "number": "13.2.1.4:4", "link": "attributes.html#fls_yz4itbk700ot", "checksum": "f31211e5b9f382a935e4e483c3fc10fc958066dcb3b64be6772d797738339919"}, {"id": "fls_pdyotoq8uqi2", "number": "13.2.1.4:5", "link": "attributes.html#fls_pdyotoq8uqi2", "checksum": "094f219b2ede048c90c66692b41e7a30763694b917cfced20fa4eb76afc6a626"}, {"id": "fls_vdbjoy6gbk7l", "number": "13.2.1.4:6", "link": "attributes.html#fls_vdbjoy6gbk7l", "checksum": "78bb46c24f2ca946ed0b4e7c6089e40d13e6c39431bb0fee1bab3542dde16f26"}, {"id": "fls_k3szii6nviza", "number": "13.2.1.4:7", "link": "attributes.html#fls_k3szii6nviza", "checksum": "897555f2c7487adb369d557e88e95f68598fd643686dc9402f4f295226b210f6"}, {"id": "fls_xsdkkfgv0pz6", "number": "13.2.1.4:8", "link": "attributes.html#fls_xsdkkfgv0pz6", "checksum": "eb4568cb53c1a9e06aea725449fa9eba6f2a425e98354dca4df23d483faa90e2"}, {"id": "fls_eglaup5zyfsk", "number": "13.2.1.4:9", "link": "attributes.html#fls_eglaup5zyfsk", "checksum": "27fceb61f07a31faf22bccecf31e526e2d22bf0615fbe8998ffcd1dd528e8e35"}, {"id": "fls_tkayqh7li81o", "number": "13.2.1.4:10", "link": "attributes.html#fls_tkayqh7li81o", "checksum": "e37b94209979512d83141b81df8da7e950dc0f59ee4df88e7a1977cf6547eb6a"}, {"id": "fls_vv8o31s0zmli", "number": "13.2.1.4:11", "link": "attributes.html#fls_vv8o31s0zmli", "checksum": "f04d0e556354ad85a7cb772b90a5bea40dfc80d7258b591367ef1c4299bd26cd"}, {"id": "fls_g0762ekvl2ah", "number": "13.2.1.4:12", "link": "attributes.html#fls_g0762ekvl2ah", "checksum": "75c3e60c0e86babf3644778265ff04d82086fd20428ca94add2ab7fa29a4b786"}, {"id": "fls_406ltkru11tk", "number": "13.2.1.4:13", "link": "attributes.html#fls_406ltkru11tk", "checksum": "e9b710a4e7a5d951c56b3f75f26e35b7a826e3d5c1958e4e71d5502857541ad0"}, {"id": "fls_4mhyvwj8pbpk", "number": "13.2.1.4:14", "link": "attributes.html#fls_4mhyvwj8pbpk", "checksum": "4e93115858ebed6f679bcd9090c45327132a80d56ebcefa7ba556b066fc97d72"}, {"id": "fls_ijsmqk7pgyiz", "number": "13.2.1.4:15", "link": "attributes.html#fls_ijsmqk7pgyiz", "checksum": "5140f4b9a43b91808591e2b954a2980ff337e13a4e8335e3e29f7498a06a869e"}, {"id": "fls_a1jggfetycxh", "number": "13.2.1.4:16", "link": "attributes.html#fls_a1jggfetycxh", "checksum": "7858b9613091a34085b288d29faa10cc8eba087a29ddb9ec313ffbdd3f6db23e"}, {"id": "fls_rmbadmoeaoxu", "number": "13.2.1.4:17", "link": "attributes.html#fls_rmbadmoeaoxu", "checksum": "417c3d70bcfa0a289a99c07935492966631944ffed968fac67820222ee2f9f1d"}, {"id": "fls_f9ydn049isbv", "number": "13.2.1.4:18", "link": "attributes.html#fls_f9ydn049isbv", "checksum": "a692dae36ad20687143af0ddd8381c71260bb5e4917fbc7b203f47f6e384c986"}, {"id": "fls_7c31e21g6bdj", "number": "13.2.1.4:19", "link": "attributes.html#fls_7c31e21g6bdj", "checksum": "f975dc2d5c0c2c15b963eccd4795930fa5cce62aa848ff640e9de66a52ea3cbc"}, {"id": "fls_6d5a375j2775", "number": "13.2.1.4:20", "link": "attributes.html#fls_6d5a375j2775", "checksum": "4bcec9bb92108de19e67a173df0098642ddb36e508bfcd6556bd6ee10daced06"}, {"id": "fls_xthidh2nyrno", "number": "13.2.1.4:21", "link": "attributes.html#fls_xthidh2nyrno", "checksum": "2e1bf630eca35a69526f65ac5f8fbdfe0c2f92ca2b3ac6d6be31c9e1440e29a3"}, {"id": "fls_w02pk6kf9w9e", "number": "13.2.1.4:22", "link": "attributes.html#fls_w02pk6kf9w9e", "checksum": "cbb68dabefc941e4d38db9be75022e8aef69299cd2368f981991501d97245972"}, {"id": "fls_lzl1gpco3osx", "number": "13.2.1.4:23", "link": "attributes.html#fls_lzl1gpco3osx", "checksum": "2765819a612a9117bbe617d8b73b4ff6a353b2f5cd2953bc1c894701ba157e98"}, {"id": "fls_9x2on8w44k4f", "number": "13.2.1.4:24", "link": "attributes.html#fls_9x2on8w44k4f", "checksum": "9a1429077ce3fd1214a1e364203492d57772729632414f91b3c2cd2f3d0559ac"}, {"id": "fls_rilqwazchfpp", "number": "13.2.1.4:25", "link": "attributes.html#fls_rilqwazchfpp", "checksum": "dd2313cfedf44267dbb54d88f3314ca7c7076bfc167b691f549028e3e4965bef"}, {"id": "fls_f0of1395z9pn", "number": "13.2.1.4:26", "link": "attributes.html#fls_f0of1395z9pn", "checksum": "c66a6be45c57e16772d12a0c52d3d765424f9d564f839da0cb77fc8c01347d4f"}, {"id": "fls_v9gf6selc17l", "number": "13.2.1.4:27", "link": "attributes.html#fls_v9gf6selc17l", "checksum": "2cc4b06fbda49374ef17f4974acd16d167b72b9b46c9b13f70587ab9a098587c"}, {"id": "fls_jyb5s2r8w1po", "number": "13.2.1.4:28", "link": "attributes.html#fls_jyb5s2r8w1po", "checksum": "55fa6aaa332a37320f9c7223150099eba092430986498c5ae328de57fa2e9487"}, {"id": "fls_xx51fjkbgg5g", "number": "13.2.1.4:29", "link": "attributes.html#fls_xx51fjkbgg5g", "checksum": "6743b7e3fdc6f0ff88d22af6ed0826b488e6d15d91849cf2f44fe00b8824ed1c"}], "informational": false}, {"id": "fls_6qj249hphj1s", "number": "13.2.1.5", "title": "Attribute track_caller", "link": "attributes.html#attribute-track-caller", "paragraphs": [{"id": "fls_h8yepgchjxv9", "number": "13.2.1.5:1", "link": "attributes.html#fls_h8yepgchjxv9", "checksum": "e23f26c1bdaac35fb187af2c3437a156c142109266b6922552c87a35c4fd7652"}, {"id": "fls_w1pxtzp7acty", "number": "13.2.1.5:2", "link": "attributes.html#fls_w1pxtzp7acty", "checksum": "be22b61cc84fba1c898524be4f927f7ae8b8aec54323ad08f5b3a0d7ae1c6ff9"}, {"id": "fls_zch43jpetmdu", "number": "13.2.1.5:3", "link": "attributes.html#fls_zch43jpetmdu", "checksum": "778290a828a1c18436fe29f9d858726e4e341c74a14f532e55779389a4733012"}, {"id": "fls_y1e258p4rby5", "number": "13.2.1.5:4", "link": "attributes.html#fls_y1e258p4rby5", "checksum": "cf4ab277047420d2b26238c76cfc2a3cc9ba2c6e60092568995ceba4e201831f"}, {"id": "fls_vkz8t751gfhk", "number": "13.2.1.5:5", "link": "attributes.html#fls_vkz8t751gfhk", "checksum": "ef4fb5367f8b8eec661ad431d7645eeb45c5a5691ee03447d7b267f66d6b2bc7"}, {"id": "fls_ddg0u5lej74x", "number": "13.2.1.5:6", "link": "attributes.html#fls_ddg0u5lej74x", "checksum": "5b17e06e43d9f47282dbe761e0e463c0d2b276faa4045afc0ab58815012d19db"}], "informational": false}, {"id": "fls_cdx9zb1yxcc8", "number": "13.2.2", "title": "Conditional Compilation Attributes", "link": "attributes.html#conditional-compilation-attributes", "paragraphs": [], "informational": false}, {"id": "fls_fymvsy6ig99a", "number": "13.2.2.1", "title": "Attribute cfg", "link": "attributes.html#attribute-cfg", "paragraphs": [{"id": "fls_xrjp7xw9jutz", "number": "13.2.2.1:1", "link": "attributes.html#fls_xrjp7xw9jutz", "checksum": "8ce58553238726c00673ba1eb2613f145c385fd18764cfb47b1674bfa60a342b"}, {"id": "fls_l96kyix5xsof", "number": "13.2.2.1:2", "link": "attributes.html#fls_l96kyix5xsof", "checksum": "58fc80fa15a48bf125434201acfd61890abb0876c32f33ee234150c5a2db53fa"}, {"id": "fls_y1muhnkcxk6t", "number": "13.2.2.1:3", "link": "attributes.html#fls_y1muhnkcxk6t", "checksum": "20bbdb81e00aa2ce6e15572b261930193367b58565a11d3b7df5fe4d2fb92058"}, {"id": "fls_tncxxsyutppf", "number": "13.2.2.1:4", "link": "attributes.html#fls_tncxxsyutppf", "checksum": "e3e52c127b3a45a28120d4a22599dc479401160fd2ab551667790d586a58ed83"}, {"id": "fls_rp73yee3afdi", "number": "13.2.2.1:5", "link": "attributes.html#fls_rp73yee3afdi", "checksum": "0a8af2d1ed68a8e58507a513800cba27fe171d005323ccf9b1dea50098d45eda"}, {"id": "fls_m0zxktz168e0", "number": "13.2.2.1:6", "link": "attributes.html#fls_m0zxktz168e0", "checksum": "b1317fa9240a0683317601af9dbd0d64b3bdfb9f8516093a3aa3febe38ef4940"}, {"id": "fls_xsxeod32ji8x", "number": "13.2.2.1:7", "link": "attributes.html#fls_xsxeod32ji8x", "checksum": "c678d8736b809e8b047bb8dec6b729baecd22ff0dc7cfca0cea327a1174294dc"}, {"id": "fls_tvsadfy9uibu", "number": "13.2.2.1:8", "link": "attributes.html#fls_tvsadfy9uibu", "checksum": "7b842e2904a1bd499fdf9166a26058c88d4357ca86b54fce379427f3db4f6c87"}, {"id": "fls_jbl9xyynjo0g", "number": "13.2.2.1:9", "link": "attributes.html#fls_jbl9xyynjo0g", "checksum": "fbaba2bbfc24b35f86a4f7dd04dbe8282ddf984c2d109a9ee52a777dc8b3360f"}], "informational": false}, {"id": "fls_dd9xh3wdjudo", "number": "13.2.2.2", "title": "Attribute cfg_attr", "link": "attributes.html#attribute-cfg-attr", "paragraphs": [{"id": "fls_r66jhict6rlq", "number": "13.2.2.2:1", "link": "attributes.html#fls_r66jhict6rlq", "checksum": "d4c02f4ddc98da8bafd4fc43fb7cb00dc77d84e6b42cf83332e1d8ab9e29250f"}, {"id": "fls_rzw12sagm585", "number": "13.2.2.2:2", "link": "attributes.html#fls_rzw12sagm585", "checksum": "58b7d08514f893172d59bfa69761494f4bb62b45412529d75cd3eb80fe2a6e9d"}], "informational": false}, {"id": "fls_wednba84zi3y", "number": "13.2.3", "title": "Derivation Attributes", "link": "attributes.html#derivation-attributes", "paragraphs": [], "informational": false}, {"id": "fls_bqw87nz4qbrb", "number": "13.2.3.1", "title": "Attribute automatically_derived", "link": "attributes.html#attribute-automatically-derived", "paragraphs": [{"id": "fls_5u1e0lkt0ab1", "number": "13.2.3.1:1", "link": "attributes.html#fls_5u1e0lkt0ab1", "checksum": "921207c7548372ce92fdca679bc3476d41831899b57c4e34b13268b01997e0f8"}], "informational": false}, {"id": "fls_r6gj1p4gajnq", "number": "13.2.3.2", "title": "Attribute derive", "link": "attributes.html#attribute-derive", "paragraphs": [{"id": "fls_4btm6zwf445a", "number": "13.2.3.2:1", "link": "attributes.html#fls_4btm6zwf445a", "checksum": "a1c77a2b2980c21e6e863dd1b876f7c14683644e96cf49df977a847b4e9e5e1a"}, {"id": "fls_pjmbmj2b35y8", "number": "13.2.3.2:2", "link": "attributes.html#fls_pjmbmj2b35y8", "checksum": "0a92a3c710cbd1738e619ab4ed564919e5913e3252de308e5f6f347d1833cea7"}, {"id": "fls_xtty2ino4vwc", "number": "13.2.3.2:3", "link": "attributes.html#fls_xtty2ino4vwc", "checksum": "01d955a36e6ea356f588c104a043bbb024bd45ea952c638344667bf6abc1fc81"}], "informational": false}, {"id": "fls_t2590yyvclgb", "number": "13.2.4", "title": "Diagnostics Attributes", "link": "attributes.html#diagnostics-attributes", "paragraphs": [{"id": "fls_ghumzt9ybtit", "number": "13.2.4:1", "link": "attributes.html#fls_ghumzt9ybtit", "checksum": "3211f6c48f79ae56d33f1f9bacd442f463c800f82da1ca3bc76e3afbd75c27ea"}], "informational": true}, {"id": "fls_8wcliky2svcs", "number": "13.2.5", "title": "Documentation Attributes", "link": "attributes.html#documentation-attributes", "paragraphs": [], "informational": false}, {"id": "fls_63v1fqedzwfd", "number": "13.2.5.1", "title": "Attribute doc", "link": "attributes.html#attribute-doc", "paragraphs": [{"id": "fls_1ee9qjcgbwme", "number": "13.2.5.1:1", "link": "attributes.html#fls_1ee9qjcgbwme", "checksum": "b5b9bec9d76d46cbea5f3747e5f7b0132aac36d1c007bca045c1a1e350d88cde"}], "informational": false}, {"id": "fls_pgp7ezcc9lh8", "number": "13.2.6", "title": "Foreign Function Interface Attributes", "link": "attributes.html#foreign-function-interface-attributes", "paragraphs": [], "informational": false}, {"id": "fls_sun645voqex6", "number": "13.2.6.1", "title": "Attribute crate_name", "link": "attributes.html#attribute-crate-name", "paragraphs": [{"id": "fls_tsdk8jyajcg", "number": "13.2.6.1:1", "link": "attributes.html#fls_tsdk8jyajcg", "checksum": "61437013bccd601dda4663fa8275e8def835508d51f858d4584acb2816792d24"}, {"id": "fls_6riphqysh0gd", "number": "13.2.6.1:2", "link": "attributes.html#fls_6riphqysh0gd", "checksum": "31e103c274c243fd0657f6c9fb22d4587184086c9c66befda6643f82b2435479"}], "informational": false}, {"id": "fls_ujig607lmwbm", "number": "13.2.6.2", "title": "Attribute crate_type", "link": "attributes.html#attribute-crate-type", "paragraphs": [{"id": "fls_2i2g55nqqpc1", "number": "13.2.6.2:1", "link": "attributes.html#fls_2i2g55nqqpc1", "checksum": "54779685564cfbdb9ff97ae91287f885632bf1e75e9e44af0e3115fe73cdb3e6"}, {"id": "fls_1zziddjuzjeq", "number": "13.2.6.2:2", "link": "attributes.html#fls_1zziddjuzjeq", "checksum": "05939963a9001f26e930c1bf9bad738b146dad4bd95c5cbee3e0ef2503896e7b"}], "informational": false}, {"id": "fls_olzilmy8n0nl", "number": "13.2.6.3", "title": "Attribute export_name", "link": "attributes.html#attribute-export-name", "paragraphs": [{"id": "fls_r3fwpuuaoeie", "number": "13.2.6.3:1", "link": "attributes.html#fls_r3fwpuuaoeie", "checksum": "fa8489539e2aa3b8aa9a16e4531a9c0f7e082581000b26430071b5fe8bddd791"}, {"id": "fls_spwr6gf7kpds", "number": "13.2.6.3:2", "link": "attributes.html#fls_spwr6gf7kpds", "checksum": "35ac008e660d6499f218d0c11b1c822a4fda466a0469f3424a0c9aa028f72ea6"}], "informational": false}, {"id": "fls_o0f9ae22ug1x", "number": "13.2.6.4", "title": "Attribute link", "link": "attributes.html#attribute-link", "paragraphs": [{"id": "fls_yslpkdngo8hj", "number": "13.2.6.4:1", "link": "attributes.html#fls_yslpkdngo8hj", "checksum": "8f57b8472dff4cd91f355578e5c3bfa9096c22950b9766df341e266371a1a946"}, {"id": "fls_6rohnk4swj6c", "number": "13.2.6.4:2", "link": "attributes.html#fls_6rohnk4swj6c", "checksum": "6eb5a07a373ecc60dd23324335a8b659caf2269885af5c3585f4df1c13ca727c"}, {"id": "fls_o83pf3bcrzma", "number": "13.2.6.4:3", "link": "attributes.html#fls_o83pf3bcrzma", "checksum": "d9db9f413583821ddb835f34a03fd02f2a1d38f6eab189bb99008475e2400f3f"}, {"id": "fls_5541q1qoxdpf", "number": "13.2.6.4:4", "link": "attributes.html#fls_5541q1qoxdpf", "checksum": "0353cd50793fff24e61d961587929ddeeb5a7f46853756fa4e2d70319d7500a6"}, {"id": "fls_wpqawdpevkj6", "number": "13.2.6.4:5", "link": "attributes.html#fls_wpqawdpevkj6", "checksum": "eef115065e6c96a05b7ae0eb410b3b05418ce07352bb23ed9baaf23d7f5d5450"}, {"id": "fls_hpl6poxgiaqv", "number": "13.2.6.4:6", "link": "attributes.html#fls_hpl6poxgiaqv", "checksum": "60ae8311dc7a096a8d78ddf2ae480d5cd77d966a20facb0ce94dcea8d1eab84e"}, {"id": "fls_h9dfs6kzmobp", "number": "13.2.6.4:7", "link": "attributes.html#fls_h9dfs6kzmobp", "checksum": "b0db32db9b79b0e6ad02182b8befad2a9aa177097a1fa014a59781f5686d36a2"}, {"id": "fls_3a3r4jf7hzqr", "number": "13.2.6.4:8", "link": "attributes.html#fls_3a3r4jf7hzqr", "checksum": "ae7e1e29c04ecbee336f1381e8308022f3ad0ccb61bd5c5c7c353b7eea560997"}, {"id": "fls_1tdheukgm6ai", "number": "13.2.6.4:9", "link": "attributes.html#fls_1tdheukgm6ai", "checksum": "4ea15c08520b2c2fb958beab6ad0fc324e6aa088b62d5fb1e6931d8d6507bc5d"}, {"id": "fls_3i9ijypnh8nx", "number": "13.2.6.4:10", "link": "attributes.html#fls_3i9ijypnh8nx", "checksum": "7fb19964f38021c6916eb50ab245d90c1f006905de59ccc42d0d0f3d1235641f"}, {"id": "fls_idjcqczfqknm", "number": "13.2.6.4:11", "link": "attributes.html#fls_idjcqczfqknm", "checksum": "e9be1b611b17fb0d613033d31855e2094fd26b9bbc43a9b80f8182da2e833906"}, {"id": "fls_rcerq1pfkpji", "number": "13.2.6.4:12", "link": "attributes.html#fls_rcerq1pfkpji", "checksum": "fdf51bc6996e603cffe22c0b534103b20e91952afdf7739053ad88ccbdc56f61"}], "informational": false}, {"id": "fls_p44fky7fifc", "number": "13.2.6.5", "title": "Attribute link_name", "link": "attributes.html#attribute-link-name", "paragraphs": [{"id": "fls_g09jhukl0ez2", "number": "13.2.6.5:1", "link": "attributes.html#fls_g09jhukl0ez2", "checksum": "6321fe23e29ea0ad41b3c85bedafbf9ef00aee8ccef4be33847faf98c00dcc83"}, {"id": "fls_d00wni4edi8f", "number": "13.2.6.5:2", "link": "attributes.html#fls_d00wni4edi8f", "checksum": "089ca2eda0df3b0c76c2d4a1e66e7b57615201c37cb7791d3217d9bf7b581da9"}, {"id": "fls_0athv8kfa5fo", "number": "13.2.6.5:3", "link": "attributes.html#fls_0athv8kfa5fo", "checksum": "0600f1f844b645dd649dcfdebecbdc3af837dcba7089013ae17dfc7ba6295fec"}], "informational": false}, {"id": "fls_hffpo88r61rh", "number": "13.2.6.6", "title": "Attribute link_section", "link": "attributes.html#attribute-link-section", "paragraphs": [{"id": "fls_5loqzajiz34m", "number": "13.2.6.6:1", "link": "attributes.html#fls_5loqzajiz34m", "checksum": "10a4631db6c550ee4410b3605bb85beb0c3c0dc21dfefb51ce2f0d1b3e42343b"}, {"id": "fls_cyxk12wuicml", "number": "13.2.6.6:2", "link": "attributes.html#fls_cyxk12wuicml", "checksum": "fdb84e96608c3986056b7d198e88ed046825e6c72eff37d9b7ad5d107635d528"}], "informational": false}, {"id": "fls_obik2w9gvhln", "number": "13.2.6.7", "title": "Attribute link_ordinal", "link": "attributes.html#attribute-link-ordinal", "paragraphs": [{"id": "fls_fuv29biqcaww", "number": "13.2.6.7:1", "link": "attributes.html#fls_fuv29biqcaww", "checksum": "b9f69058d6cf44ac40747cbd7dd38c8689c1de672c433b6fd76c37a59413c0a8"}, {"id": "fls_qh5sxg4znaxa", "number": "13.2.6.7:2", "link": "attributes.html#fls_qh5sxg4znaxa", "checksum": "bae500fd492b5390f081b17a3c19a753b385115b83d2678de450e7fc08802073"}, {"id": "fls_asnjjixwglki", "number": "13.2.6.7:3", "link": "attributes.html#fls_asnjjixwglki", "checksum": "1c20d78c53465204598d099ba8c270f12e905456c6b799086d88a295046e6b7f"}], "informational": false}, {"id": "fls_ch9nkxkloozv", "number": "13.2.6.8", "title": "Attribute no_link", "link": "attributes.html#attribute-no-link", "paragraphs": [{"id": "fls_ayhn6g6sgt3h", "number": "13.2.6.8:1", "link": "attributes.html#fls_ayhn6g6sgt3h", "checksum": "b264d167b04d1f62c99717023640f39c72ae2c165f8c8802648308cf461c78db"}, {"id": "fls_76ox8n3eef5", "number": "13.2.6.8:2", "link": "attributes.html#fls_76ox8n3eef5", "checksum": "aad978ad1b9b2134fb756fc3db820f6b58d2638aa0c07cf0f6910e996e04b5df"}], "informational": false}, {"id": "fls_fh27ljezn3qz", "number": "13.2.6.9", "title": "Attribute no_main", "link": "attributes.html#attribute-no-main", "paragraphs": [{"id": "fls_84a9k0fzmnfk", "number": "13.2.6.9:1", "link": "attributes.html#fls_84a9k0fzmnfk", "checksum": "515473b5a7edc71b0872a2f78ed4aac163ef1b1fd6716ca8b8a8a87717e85105"}, {"id": "fls_6qig3s3qpj0i", "number": "13.2.6.9:2", "link": "attributes.html#fls_6qig3s3qpj0i", "checksum": "02e72f828ebcd6f9f80b9df6af14c28f1e372a5ffb9167e596acda52024560c4"}], "informational": false}, {"id": "fls_mvd7nz8k3wcy", "number": "13.2.6.10", "title": "Attribute no_mangle", "link": "attributes.html#attribute-no-mangle", "paragraphs": [{"id": "fls_q5swm5meafmx", "number": "13.2.6.10:1", "link": "attributes.html#fls_q5swm5meafmx", "checksum": "d11ddb1c212025856ed6074fd11d79b465db9c57c2818f14597a4a2b51ef0028"}, {"id": "fls_esaew4fqk8mm", "number": "13.2.6.10:2", "link": "attributes.html#fls_esaew4fqk8mm", "checksum": "68ed1d8594d8c5b565c9c3ba1dad3e246f93c1b2b85a0620b07350282ecfb68d"}, {"id": "fls_lvnclpxbye9u", "number": "13.2.6.10:3", "link": "attributes.html#fls_lvnclpxbye9u", "checksum": "9865aff343470dc6f503617f53b6b0518ff23e429de527be62858ede954a50ad"}, {"id": "fls_vkusiswpmll7", "number": "13.2.6.10:4", "link": "attributes.html#fls_vkusiswpmll7", "checksum": "41b882e78b95a2fd3d2d109426bb31a61f34606a58d041b2592a662c22c5305b"}, {"id": "fls_i029rvr5bx5p", "number": "13.2.6.10:5", "link": "attributes.html#fls_i029rvr5bx5p", "checksum": "7a8578b15d438d33bfe5ea2e9b8441da5cd13f514c196d3711fda2f876d4e701"}], "informational": false}, {"id": "fls_aibb2quva4mn", "number": "13.2.6.11", "title": "Attribute repr", "link": "attributes.html#attribute-repr", "paragraphs": [{"id": "fls_vetjq9sw84qc", "number": "13.2.6.11:1", "link": "attributes.html#fls_vetjq9sw84qc", "checksum": "10eda6760b60f8b3456de8229a6557a58fb131d2fbbdb50e40f210219814c453"}, {"id": "fls_is2esjz1sy36", "number": "13.2.6.11:2", "link": "attributes.html#fls_is2esjz1sy36", "checksum": "0a18a601c320e54cccbb64a16e0ff23f67f5a8c9ee5e3fced2951001ef7cfd88"}], "informational": false}, {"id": "fls_7skf24auayqy", "number": "13.2.6.12", "title": "Attribute used", "link": "attributes.html#attribute-used", "paragraphs": [{"id": "fls_s4ii078wgpk", "number": "13.2.6.12:1", "link": "attributes.html#fls_s4ii078wgpk", "checksum": "15b90a46b8d8e960e0c5c083b1de7c180ee05c88e6844587b34798d179ad1ee6"}, {"id": "fls_k293nzcffks4", "number": "13.2.6.12:2", "link": "attributes.html#fls_k293nzcffks4", "checksum": "34849743163e54f2380ebe33f0c44562d6903c45fbcb2d17d9b42cde2c5d27f4"}], "informational": false}, {"id": "fls_cjq792yj6vft", "number": "13.2.7", "title": "Limits Attributes", "link": "attributes.html#limits-attributes", "paragraphs": [], "informational": false}, {"id": "fls_u2hzlzpzh7yy", "number": "13.2.7.1", "title": "Attribute recursion_limit", "link": "attributes.html#attribute-recursion-limit", "paragraphs": [{"id": "fls_o55cxc67sya7", "number": "13.2.7.1:1", "link": "attributes.html#fls_o55cxc67sya7", "checksum": "e029467a0536bae96ae25a73cd801fbfc9c8874c35c9cef6110fda5cb0ae9916"}, {"id": "fls_o9p8fa8zhe15", "number": "13.2.7.1:2", "link": "attributes.html#fls_o9p8fa8zhe15", "checksum": "181e8dbd1bc511f8b6a2fd59595070b2e85422b0c0b2fa446b31cf0408650ba2"}], "informational": false}, {"id": "fls_tdjjuwbr7mkg", "number": "13.2.7.2", "title": "Attribute type_length_limit", "link": "attributes.html#attribute-type-length-limit", "paragraphs": [{"id": "fls_dfnkzj8ob3uq", "number": "13.2.7.2:1", "link": "attributes.html#fls_dfnkzj8ob3uq", "checksum": "4a50bf4d79c29ee4da73fa4b82e49dbde7e5bb057e6709e84b888a7458ea5356"}, {"id": "fls_61vt1r8g51nh", "number": "13.2.7.2:2", "link": "attributes.html#fls_61vt1r8g51nh", "checksum": "c1cc259e5bd84ef7201ecf3eea15ae58c6db27ab49f9b20cca614c7397dc0cd0"}], "informational": false}, {"id": "fls_2084b06dr0wz", "number": "13.2.8", "title": "Macros Attributes", "link": "attributes.html#macros-attributes", "paragraphs": [], "informational": false}, {"id": "fls_e0a96eb6ux3y", "number": "13.2.8.1", "title": "Attribute macro_export", "link": "attributes.html#attribute-macro-export", "paragraphs": [{"id": "fls_3ma7zkk6john", "number": "13.2.8.1:1", "link": "attributes.html#fls_3ma7zkk6john", "checksum": "b7f82a1f9a690d7f22754bcc39c0c5a7aa96121a1dd60e82b27d66a66723bc28"}, {"id": "fls_h26iw5wh4lla", "number": "13.2.8.1:2", "link": "attributes.html#fls_h26iw5wh4lla", "checksum": "482470d45ab2936cb24974dba4d6dd68a83506c1c8d812b93b1125611ef28893"}], "informational": false}, {"id": "fls_qxjy0f758x5s", "number": "13.2.8.2", "title": "Attribute macro_use", "link": "attributes.html#attribute-macro-use", "paragraphs": [{"id": "fls_uua0nthq9id", "number": "13.2.8.2:1", "link": "attributes.html#fls_uua0nthq9id", "checksum": "cb9be301d970ad119fddcd5b1aed8838b378d008a99aee3b37680273ef7c2735"}, {"id": "fls_oq4kyo5z5tj5", "number": "13.2.8.2:2", "link": "attributes.html#fls_oq4kyo5z5tj5", "checksum": "c57f6b3b535491797fe56ebb3d700049dd61c9daed4faeabf4b81ff930713d72"}, {"id": "fls_skexvtpbjknn", "number": "13.2.8.2:3", "link": "attributes.html#fls_skexvtpbjknn", "checksum": "0f7a33e20540faa9a9f1f692378ac792ba6bdad3b1cae65e1aa6f5f1d46f15ad"}, {"id": "fls_v03924dr0u0z", "number": "13.2.8.2:4", "link": "attributes.html#fls_v03924dr0u0z", "checksum": "1f21807e410d91d0bdf2a148125d253f2e11d2ef02a10360f295161deb2db79d"}, {"id": "fls_eha2hoey857x", "number": "13.2.8.2:5", "link": "attributes.html#fls_eha2hoey857x", "checksum": "d3ba7cfda60161cb47300e194e3d076342330aae22d93b71577c8de8eaa19e68"}, {"id": "fls_p6jlgmn2sg7j", "number": "13.2.8.2:6", "link": "attributes.html#fls_p6jlgmn2sg7j", "checksum": "15633d7af605c9b73e99840c7e31720cc2a83e5731086fef2f9861de505c03ce"}], "informational": false}, {"id": "fls_qkmkev85o5jf", "number": "13.2.8.3", "title": "Attribute proc_macro", "link": "attributes.html#attribute-proc-macro", "paragraphs": [{"id": "fls_u48dtmh97g", "number": "13.2.8.3:1", "link": "attributes.html#fls_u48dtmh97g", "checksum": "a7056881313a129fd3ec31f81d6d3bb01a2c9d5f56b3d256ff553f5d47df7eda"}, {"id": "fls_t4ez0zg1m569", "number": "13.2.8.3:2", "link": "attributes.html#fls_t4ez0zg1m569", "checksum": "c2045a082f6a84673475a58ccde2204fadd47f7c6e23407bfaed9319e1242fdd"}], "informational": false}, {"id": "fls_ejhlylrcajo", "number": "13.2.8.4", "title": "Attribute proc_macro_attribute", "link": "attributes.html#attribute-proc-macro-attribute", "paragraphs": [{"id": "fls_huznzmkuhdky", "number": "13.2.8.4:1", "link": "attributes.html#fls_huznzmkuhdky", "checksum": "d914e82b19183ec81ba7ca878ce84320d00af280cfaeebaf06a1bce3ce91dc34"}, {"id": "fls_gc3ly8fsodf1", "number": "13.2.8.4:2", "link": "attributes.html#fls_gc3ly8fsodf1", "checksum": "51be5aebe1c07fea1dd288f810fd58b529feabbb2db4633c447eac8036526b22"}], "informational": false}, {"id": "fls_q6qecp6e413", "number": "13.2.8.5", "title": "Attribute proc_macro_derive", "link": "attributes.html#attribute-proc-macro-derive", "paragraphs": [{"id": "fls_l82yswg0k3px", "number": "13.2.8.5:1", "link": "attributes.html#fls_l82yswg0k3px", "checksum": "ccd312dde256071afed24a8368cb4561a8238f97767345ad8286d082eb213a6e"}, {"id": "fls_ir9i4i2x5gyx", "number": "13.2.8.5:2", "link": "attributes.html#fls_ir9i4i2x5gyx", "checksum": "c57f5a4e85fdec7a28646b6dac958146ae5ffacab2268b24082814db828cc895"}, {"id": "fls_nydvxyb43th6", "number": "13.2.8.5:3", "link": "attributes.html#fls_nydvxyb43th6", "checksum": "f06497bca4b72dd176f21ed2508cb69fa3833ef6cbd8a4b22af928fc995b81b8"}], "informational": false}, {"id": "fls_7bb5ua4g06k8", "number": "13.2.9", "title": "Modules Attributes", "link": "attributes.html#modules-attributes", "paragraphs": [], "informational": false}, {"id": "fls_1zbaajz5prpn", "number": "13.2.9.1", "title": "Attribute path", "link": "attributes.html#attribute-path", "paragraphs": [{"id": "fls_lht4pcezmbxw", "number": "13.2.9.1:1", "link": "attributes.html#fls_lht4pcezmbxw", "checksum": "82da18a25355abd0b9d6d12edfe37ae45678bc9c547052772f63a9a356614526"}, {"id": "fls_qb6anohvc03k", "number": "13.2.9.1:2", "link": "attributes.html#fls_qb6anohvc03k", "checksum": "1779cf2215b4d1593fa40611459d55cb2246586eee4503f9d2e823cc1871c703"}, {"id": "fls_18tcecx4p2wp", "number": "13.2.9.1:3", "link": "attributes.html#fls_18tcecx4p2wp", "checksum": "074e1f0751b8cd12b037a8b551dc3d753dae8a3d8c8238db1bd5f168eab83a8f"}], "informational": false}, {"id": "fls_go457hpaf7ov", "number": "13.2.10", "title": "Prelude Attributes", "link": "attributes.html#prelude-attributes", "paragraphs": [], "informational": false}, {"id": "fls_iikmhqsp1r5a", "number": "13.2.10.1", "title": "Attribute no_implicit_prelude", "link": "attributes.html#attribute-no-implicit-prelude", "paragraphs": [{"id": "fls_tki5k5uo74gw", "number": "13.2.10.1:1", "link": "attributes.html#fls_tki5k5uo74gw", "checksum": "78b6ef76a225f8a6314dbb484e5f6c33a4323ad9202816ead2f71474e4fcdc82"}, {"id": "fls_cmrqxc5oax4r", "number": "13.2.10.1:2", "link": "attributes.html#fls_cmrqxc5oax4r", "checksum": "81930ef591f96d6b1e90e5ad685dadeadd18244ffd6bf2b93e1e564d00df7002"}, {"id": "fls_c7v2hbdb7g2d", "number": "13.2.10.1:3", "link": "attributes.html#fls_c7v2hbdb7g2d", "checksum": "63933d48ff890b9977fb1e7739ec4a0c3fce66da852cfc19921e9fef4c0c30c6"}], "informational": false}, {"id": "fls_9xnaxd7qbakp", "number": "13.2.10.2", "title": "Attribute no_std", "link": "attributes.html#attribute-no-std", "paragraphs": [{"id": "fls_qnxihxsvkyf6", "number": "13.2.10.2:1", "link": "attributes.html#fls_qnxihxsvkyf6", "checksum": "bf65af2170c2fce6c798624dc20ef98cdd4c56ba8a6d771db6d63c5b33b9fe50"}, {"id": "fls_kxav9vw59ts4", "number": "13.2.10.2:2", "link": "attributes.html#fls_kxav9vw59ts4", "checksum": "812969d17f6cf1c8f09c3aa7e496056b918a7936c5656724b5023957f1a6480d"}, {"id": "fls_ve1shwjq09pl", "number": "13.2.10.2:3", "link": "attributes.html#fls_ve1shwjq09pl", "checksum": "c0823a0a3da1888952864c8a1e51dcb076f7acb24133027a4c96805704a36b87"}, {"id": "fls_wgwsn7laoju7", "number": "13.2.10.2:4", "link": "attributes.html#fls_wgwsn7laoju7", "checksum": "be41407d903f76e4c4f3bb28728743dc02d28c58b2abb01664514d25f6707420"}, {"id": "fls_lxkd6hdboav4", "number": "13.2.10.2:5", "link": "attributes.html#fls_lxkd6hdboav4", "checksum": "55f1527bb22419e4a271f37b4ddc4109e3478e34cbcaf56381afe6e82f4ff76a"}], "informational": false}, {"id": "fls_nbbvukrdngev", "number": "13.2.11", "title": "Runtime Attributes", "link": "attributes.html#runtime-attributes", "paragraphs": [], "informational": false}, {"id": "fls_fs0lcfllamj", "number": "13.2.11.1", "title": "Attribute global_allocator", "link": "attributes.html#attribute-global-allocator", "paragraphs": [{"id": "fls_5b8aewlgeon8", "number": "13.2.11.1:1", "link": "attributes.html#fls_5b8aewlgeon8", "checksum": "b627ddaa5ef649b306598dd5f6297c67a76f75ec92d0b5746f31fa0163690273"}, {"id": "fls_homoidh8mu1r", "number": "13.2.11.1:2", "link": "attributes.html#fls_homoidh8mu1r", "checksum": "da27332328b097f036a002143a0c62df334d3fafe943281b9e5ac3f53256ac87"}], "informational": false}, {"id": "fls_ls5eryuoxlp9", "number": "13.2.11.2", "title": "Attribute panic_handler", "link": "attributes.html#attribute-panic-handler", "paragraphs": [{"id": "fls_ryz8qy1wdnma", "number": "13.2.11.2:1", "link": "attributes.html#fls_ryz8qy1wdnma", "checksum": "811d25ac05c366571fee950dbae9130bfedbc07a6e6b74ecfd339fc993199f16"}, {"id": "fls_ncyod5gegmql", "number": "13.2.11.2:2", "link": "attributes.html#fls_ncyod5gegmql", "checksum": "19a78bf1c35131ec0625e919fd7f92ef2acc5b5986bdae84101d8449b0bf671a"}, {"id": "fls_jzihzpkjqvm8", "number": "13.2.11.2:3", "link": "attributes.html#fls_jzihzpkjqvm8", "checksum": "7be989fe417f083b8e5dd74846cda7e32d86a89db6194539d9733eb40ba837bc"}, {"id": "fls_qxii07xwruot", "number": "13.2.11.2:4", "link": "attributes.html#fls_qxii07xwruot", "checksum": "12c2336bf9e9b05b5fe0f3bab73c7b1cdb604d082afa1e7984eb3b79f71b3642"}, {"id": "fls_zejvn4mmfsct", "number": "13.2.11.2:5", "link": "attributes.html#fls_zejvn4mmfsct", "checksum": "a88dbeff7797209a81595c30a58d7f150b9104f217bcef43b2ee461555a5a0ce"}, {"id": "fls_iwpw0qfe5trp", "number": "13.2.11.2:6", "link": "attributes.html#fls_iwpw0qfe5trp", "checksum": "051e4b8ff27f299cff0e443ea677b2f935831974162b34dba8fd7b30feb610a7"}, {"id": "fls_wirxqd7uv4m0", "number": "13.2.11.2:7", "link": "attributes.html#fls_wirxqd7uv4m0", "checksum": "c82af1ca7021a4e17089b436f3d65889b6c5d9a6e7600fae295b40ff0f0f6ec6"}, {"id": "fls_5cgtqtut0i5v", "number": "13.2.11.2:8", "link": "attributes.html#fls_5cgtqtut0i5v", "checksum": "8e4d1d0997dd94de884dbc95268544335e331949cd1d45db0be53a80200a5714"}, {"id": "fls_8gqun8lma9wz", "number": "13.2.11.2:9", "link": "attributes.html#fls_8gqun8lma9wz", "checksum": "7b2ec9db6d8b1c8ace22368047c47d159462712924d519696cffb84e602fcbfc"}, {"id": "fls_ka66jcu8gir7", "number": "13.2.11.2:10", "link": "attributes.html#fls_ka66jcu8gir7", "checksum": "f8d09837569e3e2a9dace1f81b8514e10951252bd8ca780e1a7de6210fc4abe5"}], "informational": false}, {"id": "fls_1l4mnlfk5rr2", "number": "13.2.11.3", "title": "Attribute windows_subsystem", "link": "attributes.html#attribute-windows-subsystem", "paragraphs": [{"id": "fls_7mzjahvdzpy5", "number": "13.2.11.3:1", "link": "attributes.html#fls_7mzjahvdzpy5", "checksum": "7102958597ca2f19205e0e9f7c950d9b597adf5a8c1e6fe96e7661413a02f860"}, {"id": "fls_t3c0t3lcnebk", "number": "13.2.11.3:2", "link": "attributes.html#fls_t3c0t3lcnebk", "checksum": "b8684eebecaefb67c2e17229476d5544ed6ff0e7e8b51d4b8cab06a169d1541c"}, {"id": "fls_go7pfkgpjk2t", "number": "13.2.11.3:3", "link": "attributes.html#fls_go7pfkgpjk2t", "checksum": "d52e19f42f5927bd34a651b16184a11e9fce5ae8de504bde89af1da5a51e0c59"}], "informational": false}, {"id": "fls_riyi0gy48fxw", "number": "13.2.12", "title": "Testing Attributes", "link": "attributes.html#testing-attributes", "paragraphs": [], "informational": false}, {"id": "fls_x849a4u7h82j", "number": "13.2.12.1", "title": "Attribute ignore", "link": "attributes.html#attribute-ignore", "paragraphs": [{"id": "fls_qmdylxse9yhu", "number": "13.2.12.1:1", "link": "attributes.html#fls_qmdylxse9yhu", "checksum": "233bac50acbcf5ce70191e350e3e9d720fd83236b2a754a5846e557024e5fb50"}, {"id": "fls_9m8e59fc1tyh", "number": "13.2.12.1:2", "link": "attributes.html#fls_9m8e59fc1tyh", "checksum": "001e5f299105a44ca3acba687e810549c184a7062f15f48c4c2907feedcd00db"}], "informational": false}, {"id": "fls_aes2d94g12b9", "number": "13.2.12.2", "title": "Attribute should_panic", "link": "attributes.html#attribute-should-panic", "paragraphs": [{"id": "fls_w7dq8gnzel36", "number": "13.2.12.2:1", "link": "attributes.html#fls_w7dq8gnzel36", "checksum": "bc29bb034a6a845f15d32f52bc63929f460f59dfafc941ba3d3ac7f591786021"}, {"id": "fls_bm5x846zfnb8", "number": "13.2.12.2:2", "link": "attributes.html#fls_bm5x846zfnb8", "checksum": "0f5bcffb6ab2fd79ab1a1578fd84c818378597bd4bf7bc940dba19ff7cc9de02"}, {"id": "fls_bcoq5aus8nkr", "number": "13.2.12.2:3", "link": "attributes.html#fls_bcoq5aus8nkr", "checksum": "4b053fefee6cf33683101e489e70e2569e4deb8d7aa26b06a840e03085ddb586"}], "informational": false}, {"id": "fls_dv2j1fvvnk1t", "number": "13.2.12.3", "title": "Attribute test", "link": "attributes.html#attribute-test", "paragraphs": [{"id": "fls_o2elhg5w1rj9", "number": "13.2.12.3:1", "link": "attributes.html#fls_o2elhg5w1rj9", "checksum": "41f8276015dc58f76e82db668219043600611837b52a93fd9dbb18436201041a"}, {"id": "fls_ert22u8rvkxt", "number": "13.2.12.3:2", "link": "attributes.html#fls_ert22u8rvkxt", "checksum": "de64cdcc854596c8cf8a9e3bb1b6312bf4faac5928890297f69918e148a51d43"}, {"id": "fls_c9ckjrq6emdj", "number": "13.2.12.3:3", "link": "attributes.html#fls_c9ckjrq6emdj", "checksum": "580975987fb8829aa62f5481e0c98f2f9a739c3d0a5cc0719d34be6815601aa3"}, {"id": "fls_4uykzqpq6svl", "number": "13.2.12.3:4", "link": "attributes.html#fls_4uykzqpq6svl", "checksum": "e7ee08c2d3407ba055bfeec7a59f1c8c56257bf55ff14412206210e1dbbe08a2"}, {"id": "fls_aqzd30s267pt", "number": "13.2.12.3:5", "link": "attributes.html#fls_aqzd30s267pt", "checksum": "2c4a77cf5f2b9daf7f0535ffb85ee39298f774999cb40b3f78672fb5a2bd7a24"}, {"id": "fls_n3hjhh3d7tyx", "number": "13.2.12.3:6", "link": "attributes.html#fls_n3hjhh3d7tyx", "checksum": "f1ebf979a3ed2dde03dae2e93cc771988c8f5fa634afce4ee6b664c193adc1b4"}, {"id": "fls_ze6cs75y9aft", "number": "13.2.12.3:7", "link": "attributes.html#fls_ze6cs75y9aft", "checksum": "c19b0501aa117ddef6f66c5dc6c307c9c23cdfb62ecb953be67f2cf7448cda23"}, {"id": "fls_pcs0prrh23y3", "number": "13.2.12.3:8", "link": "attributes.html#fls_pcs0prrh23y3", "checksum": "6bfc6057de86432e2367e8c9682ff52750a502d7bd68f37c400345417f514d4b"}, {"id": "fls_niky8lbkvej9", "number": "13.2.12.3:9", "link": "attributes.html#fls_niky8lbkvej9", "checksum": "f1e97f65682f7f35e2f314273d3b307d456c7be2cce75abddd4bbacff9429ddc"}, {"id": "fls_qfuntdm2g184", "number": "13.2.12.3:10", "link": "attributes.html#fls_qfuntdm2g184", "checksum": "2799842d7aed69f223fca391a95a67b96cb9d904f240678550cd095843a9163c"}], "informational": false}, {"id": "fls_r3zwgf9sg1xp", "number": "13.2.13", "title": "Type Attributes", "link": "attributes.html#type-attributes", "paragraphs": [], "informational": false}, {"id": "fls_9tmvuqrmk3ug", "number": "13.2.13.1", "title": "Attribute non_exhaustive", "link": "attributes.html#attribute-non-exhaustive", "paragraphs": [{"id": "fls_szvrd79cgzsg", "number": "13.2.13.1:1", "link": "attributes.html#fls_szvrd79cgzsg", "checksum": "db123f9e8d90ea8a65b70081bc86bdbeb74728f7fbb3abf94a19106591eacfd5"}, {"id": "fls_1of56vl2ewq0", "number": "13.2.13.1:2", "link": "attributes.html#fls_1of56vl2ewq0", "checksum": "d921bf1556555621ac4497f95036f2b36a900b3ca72209b3c8257b411f3434aa"}, {"id": "fls_hkyzdmmdyoin", "number": "13.2.13.1:3", "link": "attributes.html#fls_hkyzdmmdyoin", "checksum": "2b72505af01da754c8938fcc663e58c83b4bbcaabd1dc98ae2ab5e8da65fd8a2"}, {"id": "fls_7b0fvwrmz0mh", "number": "13.2.13.1:4", "link": "attributes.html#fls_7b0fvwrmz0mh", "checksum": "a408a04e473714cf160f9d5888fb173e91412fe640b793002c6cc41c7426ec78"}, {"id": "fls_oqfrg9tqgaj8", "number": "13.2.13.1:5", "link": "attributes.html#fls_oqfrg9tqgaj8", "checksum": "6cec52bab3d21f307cca338424ee3bb3802f2d59a4e3b224c7f00f72640ffd19"}, {"id": "fls_aql3c89840ix", "number": "13.2.13.1:6", "link": "attributes.html#fls_aql3c89840ix", "checksum": "51678d511ec9b523bd052b51dce30e863238b3e09f7cf8640da14f382d4df5be"}, {"id": "fls_cez7yxfc376c", "number": "13.2.13.1:7", "link": "attributes.html#fls_cez7yxfc376c", "checksum": "91faee15159779bdfb246c3082526e3f01c0b8b71644bffad0bc701a7a23e5a0"}], "informational": false}], "informational": false}, {"title": "Concurrency", "link": "concurrency.html", "sections": [{"id": "fls_3v733mnewssy", "number": "17", "title": "Concurrency", "link": "concurrency.html", "paragraphs": [{"id": "fls_opt7v0mopxc8", "number": "17:1", "link": "concurrency.html#fls_opt7v0mopxc8", "checksum": "58e23287dc1c3ffbe6b2c4672501d222916a129910befc8fadc364de5171c351"}, {"id": "fls_tx4b8r6i93n4", "number": "17:2", "link": "concurrency.html#fls_tx4b8r6i93n4", "checksum": "60786d66db9926333e9768b0cc8aa490ff764f600fdbdb389912f9e85add0678"}, {"id": "fls_isypweqewe78", "number": "17:3", "link": "concurrency.html#fls_isypweqewe78", "checksum": "5a06090908c3a726a0df6203b3e9f7c460c35609c758b6db09cf2d5c5c753c8e"}], "informational": false}, {"id": "fls_eiw4by8z75di", "number": "17.1", "title": "Send and Sync", "link": "concurrency.html#send-and-sync", "paragraphs": [{"id": "fls_n5l17mlglq11", "number": "17.1:1", "link": "concurrency.html#fls_n5l17mlglq11", "checksum": "18cfbb89a43fe476f2c0e5f3299b552fe8abafac2b759f081654338c7597f688"}, {"id": "fls_2jujsujpjp3w", "number": "17.1:2", "link": "concurrency.html#fls_2jujsujpjp3w", "checksum": "2c6d410f6594c15bcbb289be0b5a44ae8b19c478583342e5405aef3abbdb8951"}, {"id": "fls_cax6fe4em23k", "number": "17.1:3", "link": "concurrency.html#fls_cax6fe4em23k", "checksum": "11baae79e2b2bec1ba1dccff05f08bedf2b603f0b2748f345dafa59243aab72f"}, {"id": "fls_4ypqdehn7b0v", "number": "17.1:4", "link": "concurrency.html#fls_4ypqdehn7b0v", "checksum": "14b867fe8baaef726910084c46d92291fffbfe3b462586c4a7ecd134f8152d96"}, {"id": "fls_dekskhk4g895", "number": "17.1:5", "link": "concurrency.html#fls_dekskhk4g895", "checksum": "3e1f608593a27c63b70db641f71e71a331b116739b77b1bc9ce207481f0dd8be"}, {"id": "fls_y0iqr5ibnbfe", "number": "17.1:6", "link": "concurrency.html#fls_y0iqr5ibnbfe", "checksum": "37c5ee82be489b2f1bd2eb9efdd02a9e9734ac2867c6bfc04f37f9877a9ab760"}, {"id": "fls_zgemofbs5q2x", "number": "17.1:7", "link": "concurrency.html#fls_zgemofbs5q2x", "checksum": "a206190ea6bc9a6672886ed000599cd972f4abec22f754db4c4d9acbc6754a4c"}], "informational": false}, {"id": "fls_vyc9vcuamlph", "number": "17.2", "title": "Atomics", "link": "concurrency.html#atomics", "paragraphs": [{"id": "fls_3pjla9s93mhd", "number": "17.2:1", "link": "concurrency.html#fls_3pjla9s93mhd", "checksum": "aca31f1758bf227f88cdd68e64370874768f51dd10e9211ec344537b1d7ba6cd"}, {"id": "fls_wn4ynaio8u47", "number": "17.2:2", "link": "concurrency.html#fls_wn4ynaio8u47", "checksum": "ce72ccfc2f3e59228fae42edd3521e8333bddb6951896be2347ec2387355262a"}, {"id": "fls_q7mn6pdd8bix", "number": "17.2:3", "link": "concurrency.html#fls_q7mn6pdd8bix", "checksum": "f04e33b2cedb200500a0733c23e46638bb219c9422ea4796905e57f57c0bc457"}, {"id": "fls_jx0784jzxy00", "number": "17.2:4", "link": "concurrency.html#fls_jx0784jzxy00", "checksum": "fa9d632297e07c71321455d7ac82181279f4349b2878ed60e0088fb76453fa21"}, {"id": "fls_vzuwnpx7mt08", "number": "17.2:5", "link": "concurrency.html#fls_vzuwnpx7mt08", "checksum": "17b8684e84e891ce119a119dcdf3b5cc1df0bd9132fc39002ef445333a7386cf"}, {"id": "fls_cpcd0vexfbhj", "number": "17.2:6", "link": "concurrency.html#fls_cpcd0vexfbhj", "checksum": "3df9c673e62071885a6938566ce59609242470b1c63272f358bf5f999f2324fe"}, {"id": "fls_jt7rfq9atbiv", "number": "17.2:7", "link": "concurrency.html#fls_jt7rfq9atbiv", "checksum": "9c9a349252f3cb141e008067381e5a19c45f3b1738132bfebc02583b25c36873"}, {"id": "fls_2hqmfwswc6k", "number": "17.2:8", "link": "concurrency.html#fls_2hqmfwswc6k", "checksum": "72763ab828f9c57a7ba7ae57c095d30f4ef5bb34e5319df45f176f6570588e00"}, {"id": "fls_5ab2sw3gwmt3", "number": "17.2:9", "link": "concurrency.html#fls_5ab2sw3gwmt3", "checksum": "051b06b8e012ef9e9c02369b0cb8074a99acd99781938a746c9de16fa2ce4dcd"}, {"id": "fls_w2mw833g28eb", "number": "17.2:10", "link": "concurrency.html#fls_w2mw833g28eb", "checksum": "a8ab421b6894b056917c74396d9ac843c73dad27e12268a43fad03a877c8009c"}, {"id": "fls_mjq1l1y0vmz4", "number": "17.2:11", "link": "concurrency.html#fls_mjq1l1y0vmz4", "checksum": "f182e5451b68bf0b4094178052d33c3a59b7d40c5282e4bf77de423b44b77f8d"}, {"id": "fls_906978wtss6n", "number": "17.2:12", "link": "concurrency.html#fls_906978wtss6n", "checksum": "3b07334d52a95685b653abaecb58f071b99276e911b0f4bc4ab80cda4ef4ff1f"}, {"id": "fls_4urmnh4mfehl", "number": "17.2:13", "link": "concurrency.html#fls_4urmnh4mfehl", "checksum": "5b5d7f2d72de32a5c8c9e36b4111885655abad9b351cd2bdd65dac06dcdf6660"}, {"id": "fls_2qkrcd5eovpe", "number": "17.2:14", "link": "concurrency.html#fls_2qkrcd5eovpe", "checksum": "b14552f886fa68d1904ccff6320f2d395f90fee027a70f30588a9ba68a53b172"}, {"id": "fls_cry1e78gp19q", "number": "17.2:15", "link": "concurrency.html#fls_cry1e78gp19q", "checksum": "1bf7e1661a0f7e7762a5549fe82988a4afbe4436720588214b9ad3857ecc02a7"}], "informational": false}, {"id": "fls_mtuwzinpfvkl", "number": "17.3", "title": "Asynchronous Computation", "link": "concurrency.html#asynchronous-computation", "paragraphs": [{"id": "fls_g40xp4andj5g", "number": "17.3:1", "link": "concurrency.html#fls_g40xp4andj5g", "checksum": "dfbc3bd3bcdae5a3f76ab60f5c1fbcb25458c3975778746db7eea952015a2f79"}, {"id": "fls_fte085hi1yqj", "number": "17.3:2", "link": "concurrency.html#fls_fte085hi1yqj", "checksum": "0a94602025c891b37d5f98e1ccd525f0cd66c06df02df85b06336668d0711cbe"}, {"id": "fls_7muubin2wn1v", "number": "17.3:3", "link": "concurrency.html#fls_7muubin2wn1v", "checksum": "306a3b2eabc2ff31f77f6446060185578f9427fcc497d1588cb51a4c94ae4819"}, {"id": "fls_ftzey2156ha", "number": "17.3:4", "link": "concurrency.html#fls_ftzey2156ha", "checksum": "d6389f23a8eff8343451429941d835b9e1b00fa45cf260112041467021172752"}], "informational": false}], "informational": false}]} diff --git a/patterns.html b/patterns.html new file mode 100644 index 00000000..6637aa4c --- /dev/null +++ b/patterns.html @@ -0,0 +1,1340 @@ + + + + + + + + + + + + 5. Patterns — Ferrocene Language Specification + + + + + + + + + + + + + + +
    + +
    +
    + +
    +

    5. Patterns

    +

    Syntax

    +
    Pattern ::=
    +    |? PatternWithoutAlternation (| PatternWithoutAlternation)*
    +
    +PatternList ::=
    +    Pattern (, Pattern)* ,?
    +
    +PatternWithoutAlternation ::=
    +    PatternWithoutRange
    +  | RangePattern
    +
    +PatternWithoutRange ::=
    +    IdentifierPattern
    +  | LiteralPattern
    +  | MacroInvocation
    +  | ParenthesizedPattern
    +  | PathPattern
    +  | ReferencePattern
    +  | RestPattern
    +  | SlicePattern
    +  | StructPattern
    +  | TuplePattern
    +  | UnderscorePattern
    +

    Legality Rules

    +

    5:1 +A pattern is a construct that matches a value which satisfies all +the criteria of the pattern.

    +

    5:2 +A pattern-without-alternation is a pattern that cannot be alternated.

    +

    5:3 +A pattern-without-range is a pattern-without-alternation that +excludes range patterns.

    +

    5:4 +A subpattern is a pattern nested within another pattern.

    +

    5:5 +A pattern has a type, with the exception of the rest pattern if +it is not the inner pattern of a slice pattern or the pattern of +a possibly nested identifier pattern of a slice pattern.

    +

    5:6 +The expected type of a pattern is the type of the value the +pattern is being matched against.

    +

    5:7 +It is a static error when lexical elements match multiple alternations +of a pattern-without-range, except for when the pattern is &mut +Identifier. Such a pattern is interpreted as a reference pattern +with keyword mut containing an identifier pattern.

    +

    5:8 +Any two pattern-without-alternations that are or-ed using character 0x7C +(vertical line) are subject to the following restrictions:

    + +
    +

    5.1. Refutability

    +

    Legality Rules

    +

    5.1:1 +Refutability is a property of patterns that expresses the ability to +match all possible values of a type.

    +

    5.1:2 +An irrefutable pattern is a pattern that always matches the value +it is being matched against.

    +

    5.1:3 +A refutable pattern is a pattern that has a possibility of not +matching the value it is being matched against.

    +

    5.1:4 +A pattern that is not an irrefutable pattern is a +refutable pattern.

    +

    5.1:5 +An irrefutable constant is a constant of a type that has at most +one value.

    +

    5.1:6 +A refutable constant is a constant of a refutable type.

    +

    Examples

    +

    5.1:7 +x is an irrefutable pattern because it always matches 42.

    +
    let x = 42;
    +
    +
    +

    5.1:8 +y is a refutable pattern because it does not match value when +value denotes core::option::Option::None.

    +
    if let core::option::Option::Some(y) = value {
    +
    +
    +
    +

    5.1.1. Identifier Patterns

    +

    Syntax

    +
    IdentifierPattern ::=
    +    ref? mut? Binding BoundPattern?
    +
    +BoundPattern ::=
    +    @ Pattern
    +

    Legality Rules

    +

    5.1.1:1 +An identifier pattern is a pattern that binds the value it +matches to a binding.

    +

    5.1.1:2 +A bound pattern is a pattern that imposes a constraint on a related +identifier pattern.

    +

    5.1.1:3 +An identifier pattern yields a binding. An identifier pattern +with keyword mut yields a mutable binding.

    +

    5.1.1:4 +An identifier pattern with keyword ref is a +reference identifier pattern.

    +

    5.1.1:5 +The identifier pattern enters its binding into binding scope in +the value namespace if it does not resolve to a constant, a +unit struct constant or a unit enum variant.

    +

    5.1.1:6 +It is a static error if the identifier pattern consists of anything other +than a binding when the binding resolves to a constant, a +unit struct constant, or a unit enum variant.

    +

    5.1.1:7 +It is a static error if the binding of an identifier pattern resolves +to a tuple struct or a tuple enum variant.

    +

    5.1.1:8 +An identifier pattern is an irrefutable pattern when:

    + +

    5.1.1:12 +If the identifier pattern does not have a bound pattern, then the +type of its binding is determined as follows:

    + +

    5.1.1:16 +If the identifier pattern has a bound pattern, then the type of +its binding is determined as follows:

    + +

    Examples

    +

    5.1.1:20 +An identifier pattern in the context of a let expression.

    +
    let x = 42;
    +
    +
    +

    5.1.1:21 +An identifier pattern with a bound pattern in the context of a match expression.

    +
    match x {
    +    small @ 1 ..= 5 => (),
    +    _ => (),
    +}
    +
    +
    +
    +
    +

    5.1.2. Literal Patterns

    +

    Syntax

    +
    LiteralPattern ::=
    +    BooleanLiteral
    +  | ByteLiteral
    +  | ByteStringLiteral
    +  | CharacterLiteral
    +  | -? NumericLiteral
    +  | RawByteStringLiteral
    +  | RawStringLiteral
    +  | SimpleStringLiteral
    +

    Legality Rules

    +

    5.1.2:1 +A literal pattern is a pattern that matches a literal.

    +

    5.1.2:2 +The type of a literal pattern is the type of the specified +literal.

    +

    Examples

    +

    5.1.2:3 +Two literal patterns in the context of a match expression. See Paragraph 5.1.1. for the declaration of x.

    +
    match x {
    +    -2 => (),
    +    36 => (),
    +    _  => (),
    +}
    +
    +
    +
    +
    +

    5.1.3. Parenthesized Patterns

    +

    Syntax

    +
    ParenthesizedPattern ::=
    +    ( Pattern )
    +

    Legality Rules

    +

    5.1.3:1 +A parenthesized pattern is a pattern that controls the precedence of +its subpatterns.

    +

    5.1.3:2 +A parenthesized pattern is an irrefutable pattern when its nested +pattern is an irrefutable pattern.

    +

    5.1.3:3 +The type of a parenthesized pattern is the type of its nested +pattern.

    +

    Examples

    +

    5.1.3:4 +See Paragraph 5.1.1. for the declaration of x.

    +
    let ref_x = &x;
    +
    +
    +

    5.1.3:5 +A parenthesized pattern inside a reference pattern in the context of a match +expression.

    +
    match ref_x {
    +    &(1 ..= 5) => (),
    +    _ => (),
    +}
    +
    +
    +
    +
    +

    5.1.4. Path Patterns

    +

    Syntax

    +
    PathPattern ::=
    +    PathExpression
    +  | QualifiedPathExpression
    +

    Legality Rules

    +

    5.1.4:1 +A path pattern is a pattern that matches a constant, a +unit enum variant, or a unit struct constant indicated by a path.

    +

    5.1.4:2 +A path pattern expressed as a path expression shall refer to either +an associated constant, or a constant.

    +

    5.1.4:3 +When a path pattern refers to an associated constant or a +constant, the associated constant or constant shall not be of a +union type.

    +

    5.1.4:4 +When a path pattern refers to an associated constant or a +constant, the type of the associated constant or constant +shall be structurally equal.

    +

    5.1.4:5 +When the type of the path pattern is of an enum type or +struct type, then the enum type or struct type shall be subject +to attribute derive with arguments core::cmp::Eq and +core::cmp::PartialEq.

    +

    5.1.4:6 +A path pattern expressed as a qualified path expression shall refer +to an associated constant.

    +

    5.1.4:7 +A path pattern is an irrefutable pattern when it refers to:

    + +

    5.1.4:11 +The type of a path pattern is the type of the constant, +unit enum variant, or unit struct constant the path resolved to.

    +

    Examples

    +
    mod module {
    +     pub const ZERO: i32 = 0;
    +}
    +
    +enum Enum { Variant }
    +
    +
    +

    5.1.4:12 +See Paragraph 5.1.1. for the declaration of x.

    +
    match x {
    +    module::ZERO => (),
    +    Enum::Variant => (),
    +    _  => (),
    +}
    +
    +
    +
    +
    +

    5.1.5. Range Patterns

    +

    Syntax

    +
    RangePattern ::=
    +    HalfOpenRangePattern
    +  | InclusiveRangePattern
    +  | ObsoleteRangePattern
    +
    +HalfOpenRangePattern ::=
    +    RangePatternLowBound ..
    +
    +InclusiveRangePattern ::=
    +    RangePatternLowBound ..= RangePatternHighBound
    +
    +ObsoleteRangePattern ::=
    +    RangePatternLowBound ... RangePatternHighBound
    +
    +RangePatternLowBound ::=
    +    RangePatternBound
    +
    +RangePatternHighBound ::=
    +    RangePatternBound
    +
    +RangePatternBound ::=
    +    ByteLiteral
    +  | CharacterLiteral
    +  | -? NumericLiteral
    +  | PathExpression
    +  | QualifiedPathExpression
    +

    Legality Rules

    +

    5.1.5:1 +A range pattern is a pattern that matches values which fall +within a range.

    +

    5.1.5:2 +A half-open range pattern is a range pattern with only a +range pattern low bound.

    +

    5.1.5:3 +An inclusive range pattern is a range pattern with both a +range pattern low bound and a range pattern high bound.

    +

    5.1.5:4 +An obsolete range pattern is a range pattern that uses obsolete syntax +to express an inclusive range pattern.

    +

    5.1.5:5 +A range pattern bound is a constraint on the range of a range pattern.

    +

    5.1.5:6 +A range pattern low bound is a range pattern bound that specifies the +start of a range.

    +

    5.1.5:7 +A range pattern high bound is a range pattern bound that specifies the +end of a range.

    +

    5.1.5:8 +A half-open range pattern shall appear within a parenthesized pattern +when the context is a slice pattern.

    +

    5.1.5:9 +The range pattern low bound of an inclusive range pattern shall be +less than or equal to its range pattern high bound.

    +

    5.1.5:10 +An obsolete range pattern is equivalent to an inclusive range pattern.

    +

    5.1.5:11 +A range pattern is an irrefutable pattern only when it spans the +entire set of possible values of a type.

    +

    5.1.5:12 +The types of the range pattern low bound and the +range pattern high bound of a range pattern shall be unifiable.

    +

    5.1.5:13 +The type of a range pattern is determined as follows:

    + +

    5.1.5:16 +A path expression of a range pattern shall refer to a constant +of a scalar type.

    +

    5.1.5:17 +A qualified path expression of a range pattern shall refer to an +associated constant of a scalar type.

    +

    Examples

    +

    5.1.5:18 +Two range patterns in the context of a match expression. See Paragraph 5.1.1. for the declaration of x.

    +
    match x {
    +    -30 ..= 2 => (),
    +    57 .. => (),
    +    _ => (),
    +}
    +
    +
    +
    +
    +

    5.1.6. Reference Patterns

    +

    Syntax

    +
    ReferencePattern ::=
    +    & mut? PatternWithoutRange
    +

    Legality Rules

    +

    5.1.6:1 +A reference pattern is a pattern that dereferences a pointer that +is being matched.

    +

    5.1.6:2 +A reference pattern is an irrefutable pattern.

    +

    5.1.6:3 +The type of a reference pattern is determined as follows:

    + +

    Examples

    +

    5.1.6:6 +A reference pattern in the context of a match expression. See Paragraph 5.1.3. for the declaration of ref_x.

    +
    match ref_x {
    +    &23 => (),
    +    _ => (),
    +}
    +
    +
    +
    +
    +

    5.1.7. Rest Patterns

    +

    Syntax

    +
    RestPattern ::=
    +    ..
    +

    Legality Rules

    +

    5.1.7:1 +A rest pattern is a pattern that matches zero or more elements that +have not already been matched.

    +

    5.1.7:2 +A rest pattern shall appear at most once within a slice pattern, an +identifier pattern of a slice pattern, a tuple pattern, and a +tuple struct pattern.

    +

    5.1.7:3 +A rest pattern is an irrefutable pattern.

    +

    5.1.7:4 +If a rest pattern appears within a slice pattern or the +identifier pattern of a slice pattern, then the type of the +rest pattern is determined as follows:

    + +

    Examples

    +

    5.1.7:7 +A rest pattern in an identifier pattern of a slice pattern, followed by a rest +pattern in a slice pattern.

    +
    match slice {
    +    [1, 5, .., 7] => (),
    +    [start, end @ ..] => (),
    +}
    +
    +
    +

    5.1.7:8 +Rest patterns in tuple patterns.

    +
    match tuple {
    +    (1, .., y) => (),
    +    (.., 5) => (),
    +    (..) => (),
    +}
    +
    +
    +

    5.1.8. Slice Patterns

    +

    Syntax

    +
    SlicePattern ::=
    +    [ PatternList? ]
    +

    Legality Rules

    +

    5.1.8:1 +A slice pattern is a pattern that matches arrays of fixed size +and slices of dynamic size.

    +

    5.1.8:2 +A slice pattern is an irrefutable pattern when it refers to:

    + +

    5.1.8:5 +The type of a slice pattern is the same as the expected type.

    +

    Examples

    +
    let v = vec![1, 2, 3];
    +

    5.1.8:6 +A slice pattern in the context of a match expression.

    +
    match v {
    +    [a, b, c] => (),
    +    _ => ()
    +}
    +
    +
    +
    +

    5.2. Struct Patterns

    +

    Syntax

    +
    StructPattern ::=
    +    RecordStructPattern
    +  | TupleStructPattern
    +
    +Deconstructee ::=
    +    PathExpression
    +

    Legality Rules

    +

    5.2:1 +A struct pattern is a pattern that matches an enum value, a +struct value, or a union value.

    +

    5.2:2 +A deconstructee indicates the enum variant or type that is being +deconstructed by a struct pattern.

    +

    5.2:3 +A struct pattern is interpreted based on the deconstructee. It is a +static error if a struct pattern cannot be interpreted.

    +

    5.2:4 +A struct pattern is an irrefutable pattern if

    + +
    +

    5.2.1. Record Struct Patterns

    +

    Syntax

    +
    RecordStructPattern ::=
    +    Deconstructee { RecordStructPatternContent? }
    +
    +RecordStructPatternContent ::=
    +    RecordStructRestPattern
    +  | FieldDeconstructorList (, RecordStructRestPattern | ,?)
    +
    +RecordStructRestPattern ::=
    +    OuterAttributeOrDoc* RestPattern
    +
    +FieldDeconstructorList ::=
    +    FieldDeconstructor (, FieldDeconstructor)*
    +
    +FieldDeconstructor ::=
    +    OuterAttributeOrDoc* (
    +        IndexedDeconstructor
    +      | NamedDeconstructor
    +      | ShorthandDeconstructor
    +    )
    +
    +IndexedDeconstructor ::=
    +    FieldIndex : Pattern
    +
    +NamedDeconstructor ::=
    +    Identifier : Pattern
    +
    +ShorthandDeconstructor ::=
    +    ref? mut? Binding
    +
    +FieldIndex ::=
    +    DecimalLiteral
    +

    Legality Rules

    +

    5.2.1:1 +A record struct pattern is a pattern that matches a +enum variant value, a struct value, or a union value.

    +

    5.2.1:2 +The deconstructee of a record struct pattern shall resolve to an +enum variant, a struct type, or a union type.

    +

    5.2.1:3 +An indexed deconstructor is a construct that matches the position of +a field.

    +

    5.2.1:4 +An indexed deconstructor matches a field of the deconstructee +when its field index and the position of the field in the +deconstructee are the same. Such an indexed deconstructor is a +matched indexed deconstructor.

    +

    5.2.1:5 +The type of a matched indexed deconstructor and the type of the +matched field shall be unifiable.

    +

    5.2.1:6 +A named deconstructor is a construct that matches the name of +a field.

    +

    5.2.1:7 +A named deconstructor matches a field of the deconstructee when +its identifier and the name of the field are the same. Such a +named deconstructor is a matched named deconstructor.

    +

    5.2.1:8 +The type of a matched named deconstructor and the type of the +matched field shall be unifiable.

    +

    5.2.1:9 +A shorthand deconstructor is a construct that matches the name +of a field and binds the value of the matched field to a +binding.

    +

    5.2.1:10 +A shorthand deconstructor with keyword mut yields a +mutable binding.

    +

    5.2.1:11 +It is a static error if a shorthand deconstructor has only keyword +ref or keywords ref mut, and its binding shadows a +constant, a unit enum variant, or a unit struct constant.

    +

    5.2.1:12 +A shorthand deconstructor is equivalent to a named deconstructor where +the name of the shorthand deconstructor denotes the identifier +of the named deconstructor and the entire content of the shorthand +deconstructor denotes the pattern of the named deconstructor.

    +

    5.2.1:13 +A shorthand deconstructor matches a field of the deconstructee +when its name and the name of the field are the same. Such a +shorthand deconstructor is a matched shorthand deconstructor.

    +

    5.2.1:14 +The type of a matched shorthand deconstructor and the type of the +matched field shall be unifiable.

    +

    5.2.1:15 +If the deconstructee of a record struct pattern is a +record enum variant or a record struct, then

    + +

    5.2.1:21 +If the deconstructee of a record struct pattern is a +tuple enum variant or a tuple struct type, then

    + +

    5.2.1:26 +If the deconstructee of a record struct pattern is a union type, +then

    + +

    5.2.1:33 +If the deconstructee of a record struct pattern is a +unit enum variant or a unit struct, then the +record struct pattern shall have at most one RecordStructRestPattern.

    +

    Undefined Behavior

    +

    5.2.1:34 +It is undefined behavior reading the field of a deconstructee that is +a union type when the field contains data that is invalid for the +field‘s type.

    +

    Examples

    +
    struct RecordStruct {
    +    first : u32,
    +    second: u32,
    +}
    +
    +let record_struct_value = RecordStruct { first: 11, second: 22 };
    +
    +match record_struct_value {
    +    RecordStruct { second: 33, ref first } => (),
    +    RecordStruct { first: 44, .. } => (),
    +    RecordStruct { .. } => (),
    +}
    +
    +struct TupleStruct (
    +    u32,
    +    u32,
    +);
    +
    +let tuple_struct_value = TupleStruct { 0: 11, 1: 22 };
    +
    +match tuple_struct_value {
    +    TupleStruct { 1: 33, 0: 44 } => (),
    +    TupleStruct { 0: 55, .. } => (),
    +    TupleStruct { .. } => (),
    +}
    +
    +union Union {
    +    first : u32,
    +    second: u32,
    +}
    +
    +let union_value = Union { second: 11 };
    +
    +unsafe {
    +    match union_value {
    +        Union { first: 22 } => (),
    +        Union { second: 33 } => (),
    +        _ => (),
    +    }
    +}
    +
    +
    +
    +
    +

    5.2.2. Tuple Struct Patterns

    +

    Syntax

    +
    TupleStructPattern ::=
    +    Deconstructee ( PatternList? )
    +

    Legality Rules

    +

    5.2.2:1 +A tuple struct pattern is a pattern that matches a +tuple enum variant value, or a tuple struct value.

    +

    5.2.2:2 +The deconstructee of a tuple struct pattern shall resolve to a +tuple enum variant or a tuple struct type.

    +

    5.2.2:3 +A subpattern of a tuple struct pattern matches a field of the +deconstructee when its position and the position of the field in +the deconstructee are the same. Such a subpattern is a +matched tuple struct subpattern.

    +

    5.2.2:4 +The position of a subpattern is determined as follows:

    + +

    5.2.2:9 +The type of the subpattern of a tuple struct pattern and the +type of the matched field shall be unifiable.

    +

    5.2.2:10 +For each field of the deconstructee, the tuple struct pattern +shall either:

    + +

    5.2.2:13 +A RecordStructRestPattern is allowed even if all fields of the +deconstructee have been matched.

    +

    Examples

    +

    5.2.2:14 +See Paragraph 5.1.9.1. for the declarations of TupleStruct and +tuple_struct_value.

    +
    match tuple_struct_value {
    +    TupleStruct ( 11, 22 ) => (),
    +    TupleStruct ( 33, .., 44 ) => (),
    +    TupleStruct ( .., 55 ) => (),
    +    TupleStruct ( 66, .. ) => (),
    +    TupleStruct ( .. ) => (),
    +}
    +
    +
    +
    +
    +

    5.2.3. Tuple Patterns

    +

    Syntax

    +
    TuplePattern ::=
    +    ( PatternList? )
    +

    Legality Rules

    +

    5.2.3:1 +A tuple pattern is a pattern that matches a tuple which satisfies +all criteria defined by its subpatterns.

    +

    5.2.3:2 +A tuple pattern is an irrefutable pattern when all of its +subpatterns are irrefutable patterns.

    +

    5.2.3:3 +The type of a tuple pattern is the type of the tuple being +destructured.

    +

    5.2.3:4 +A subpattern of a tuple pattern matches a tuple field of the +tuple type when its position and the position of the tuple field in +the tuple type are the same. Such a subpattern is a +matched tuple subpattern.

    +

    5.2.3:5 +The position of a subpattern is determined as follows:

    + +

    5.2.3:10 +The type of the subpattern of a tuple pattern and the +type of the matched tuple field shall be unifiable.

    +

    5.2.3:11 +For each tuple field of the tuple type, the tuple pattern shall +either:

    + +

    5.2.3:14 +A RestPattern is allowed even if all tuple fields of the +tuple type have been matched.

    +

    Examples

    +

    5.2.3:15 +A tuple pattern in the context of a let statement.

    +
    let pair = (1, "two");
    +let (first, second) = pair;
    +
    +
    +
    +
    +

    5.2.4. Underscore Patterns

    +

    Syntax

    +
    UnderscorePattern ::=
    +    _
    +

    Legality Rules

    +

    5.2.4:1 +An underscore pattern is a pattern that matches any single value.

    +

    5.2.4:2 +An underscore pattern is an irrefutable pattern.

    +

    5.2.4:3 +The type of an underscore pattern is the type of the value +it matches.

    +

    Examples

    +

    5.2.4:4 +An underscore pattern in the context of a let statement. See Paragraph 5.1.10. for the declaration of pair.

    +
    let (first, _) = pair;
    +
    +
    +
    +
    +
    +

    5.3. Binding Modes

    +

    Syntax

    +
    Binding ::=
    +    Name
    +

    Legality Rules

    +

    5.3:1 +A binding pattern is either an identifier pattern or a +shorthand deconstructor.

    +

    5.3:2 +A binding of a binding pattern binds a matched value to a +name.

    +

    5.3:3 +A binding with binding mode by value binds the matched +value by passing the value to the place +indicated by the name.

    +

    5.3:4 +A binding with binding mode by reference binds an +immutable reference to the matched value to the name.

    +

    5.3:5 +A binding with binding mode by mutable reference binds a +mutable reference to the matched value to the name.

    +

    5.3:6 +A non-reference pattern is any pattern except +non-binding patterns, path patterns, reference patterns, +and underscore patterns.

    +

    5.3:7 +If a binding pattern does not explicitly specify keyword ref, +keyword mut, or keywords ref mut, then its binding mode +uses the current binding mode of pattern matching.

    +

    5.3:8 +Initially, the binding mode of a binding is by value.

    +

    5.3:9 +During the process of pattern matching, each time a reference +is matched against a non-reference pattern, the reference is +dereferenced and the binding mode is updated as follows:

    + +

    5.3:12 +The process repeats if the dereferenced value is a reference.

    +

    Dynamic Semantics

    +

    5.3:13 +A binding patterns binds its binding to a matched value as +follows:

    + +
    +
    +

    5.4. Pattern Matching

    +

    Dynamic Semantics

    +

    5.4:1 +Pattern matching that involves a pattern and a context value +proceeds as follows:

    +
      +
    1. 5.4:2 +For each pattern-without-alternation of the pattern:

      +
        +
      1. 5.4:3 +If the pattern-without-alternation is an identifier pattern, +then perform identifier pattern matching.

      2. +
      3. 5.4:4 +If the pattern-without-alternation is a literal pattern, then +perform literal pattern matching.

      4. +
      5. 5.4:5 +If the pattern-without-alternation is a parenthesized pattern, +then perform parenthesized pattern matching.

      6. +
      7. 5.4:6 +If the pattern-without-alternation is a path pattern, then +perform path pattern matching.

      8. +
      9. 5.4:7 +If the pattern-without-alternation is a range pattern, then +perform range pattern matching.

      10. +
      11. 5.4:8 +If the pattern-without-alternation is a reference pattern, then +perform reference pattern matching.

      12. +
      13. 5.4:9 +If the pattern-without-alternation is a slice pattern, then +perform slice pattern matching.

      14. +
      15. 5.4:10 +If the pattern-without-alternation is a record struct pattern, +then perform record struct pattern matching.

      16. +
      17. 5.4:11 +If the pattern-without-alternation is a tuple struct pattern, +then perform tuple struct pattern matching.

      18. +
      19. 5.4:12 +If the pattern-without-alternation is a tuple pattern, then +perform tuple pattern matching.

      20. +
      21. 5.4:13 +If the pattern-without-alternation is an underscore pattern, +then perform underscore pattern matching.

      22. +
      23. 5.4:14 +Otherwise pattern matching fails.

      24. +
      +
    2. +
    +

    5.4:15 +Only the bindings of a matched pattern-without-alternation are +introduced into a binding scope.

    +
    +

    5.4.1. Identifier Pattern Matching

    +

    Legality Rules

    +

    5.4.1:1 +An identifier pattern with keyword mut shall require that the +context value is a mutable place expression.

    +

    Dynamic Semantics

    +

    5.4.1:2 +Identifier pattern matching proceeds as follows:

    +
      +
    1. 5.4.1:3 +If the identifier pattern has a bound pattern, then

      +
        +
      1. 5.4.1:4 +Performed pattern matching with the bound pattern and the same +context value.

      2. +
      3. 5.4.1:5 +If matching the bound pattern fails, then matching fails.

      4. +
      +
    2. +
    3. 5.4.1:6 +The context value is bound to the binding of the +identifier pattern according to the binding mode.

    4. +
    5. 5.4.1:7 +Matching succeeds.

    6. +
    +
    +
    +

    5.4.2. Literal Pattern Matching

    +

    Dynamic Semantics

    +

    5.4.2:1 +Literal pattern matching proceeds as follows:

    +
      +
    1. 5.4.2:2 +If the literal of the literal pattern and the context value +are equal, then matching succeeds.

    2. +
    3. 5.4.2:3 +Otherwise matching fails.

    4. +
    +
    +
    +

    5.4.3. Parenthesized Pattern Matching

    +

    Dynamic Semantics

    +

    5.4.3:1 +Parenthesized pattern matching performs pattern matching with its +subpattern and the same context value.

    +
    +
    +

    5.4.4. Path Pattern Matching

    +

    Dynamic Semantics

    +

    5.4.4:1 +Path pattern matching proceeds as follows:

    +
      +
    1. 5.4.4:2 +If the constant, unit enum variant or unit struct the +path of the path pattern resolved to and the context value +are equal, then matching succeeds.

    2. +
    3. 5.4.4:3 +Otherwise matching fails.

    4. +
    +
    +
    +

    5.4.5. Range Pattern Matching

    +

    Dynamic Semantics

    +

    5.4.5:1 +Range pattern matching proceeds as follows:

    +
      +
    1. 5.4.5:2 +If the range pattern is expressed as a half-open range pattern and +the context value is in the inclusive range from the +range pattern low bound to the maximum value of the +range pattern low bound‘s type, then matching succeeds.

    2. +
    3. 5.4.5:3 +If the range pattern is expressed as either an inclusive range +pattern or an obsolete range pattern and the context value is in +the inclusive range from the range pattern low bound to the +range pattern high bound, then matching succeeds.

    4. +
    5. 5.4.5:4 +Otherwise matching fails.

    6. +
    +
    +
    +

    5.4.6. Reference Pattern Matching

    +

    Dynamic Semantics

    +

    5.4.6:1 +Reference pattern matching proceeds as follows:

    +
      +
    1. 5.4.6:2 +Dereference the context value.

    2. +
    3. 5.4.6:3 +Perform pattern matching with its subpattern and the dereferenced +value.

    4. +
    +
    +
    +

    5.4.7. Slice Pattern Matching

    +

    Dynamic Semantics

    +

    5.4.7:1 +Slice pattern matching proceeds as follows:

    +
      +
    1. 5.4.7:2 +If the expected type is a slice type then,

      +
        +
      1. 5.4.7:3 +If the number of subpatterns of the slice pattern is greater +than the length of the context value, then matching fails.

      2. +
      3. 5.4.7:4 +If the number of subpatterns of the slice pattern is less than +the size of the context value and one of those subpatterns is +not a rest pattern, then matching fails.

      4. +
      5. 5.4.7:5 +For each subpattern of the slice pattern:

        +
          +
        1. 5.4.7:6 +Perform pattern matching with the subpattern and the +corresponding value from the context value, ignoring +rest patterns.

        2. +
        3. 5.4.7:7 +If matching the subpattern fails, then matching fails.

        4. +
        +
      6. +
      +
    2. +
    3. 5.4.7:8 +Otherwise, if the expected type is an array type, then

      +
        +
      1. 5.4.7:9 +For each subpattern of the slice pattern:

        +
          +
        1. 5.4.7:10 +Perform pattern matching with the subpattern and the +corresponding value from the context value, ignoring +rest patterns.

        2. +
        3. 5.4.7:11 +If matching the subpattern fails, then matching fails.

        4. +
        +
      2. +
      +
    4. +
    +
    +
    +

    5.4.8. Record Struct Pattern Matching

    +

    Dynamic Semantics

    +

    5.4.8:1 +Record struct pattern matching proceeds as follows:

    +
      +
    1. 5.4.8:2 +If the number of subpatterns of the record struct pattern is less +than the number of fields of the context value and one of those +subpatterns is not a rest pattern, then matching fails.

    2. +
    3. 5.4.8:3 +For each subpattern of the struct pattern

      +
        +
      1. 5.4.8:4 +If the subpattern is a shorthand deconstructor, then the +corresponding field of the context value is bound to the +binding of the shorthand deconstructor according to the +binding mode.

      2. +
      3. 5.4.8:5 +Otherwise perform pattern matching with the subpattern and the +corresponding field from the context value, ignoring rest +patterns.

      4. +
      5. 5.4.8:6 +If matching the subpattern fails, then matching fails.

      6. +
      +
    4. +
    +
    +
    +

    5.4.9. Tuple Struct Pattern Matching

    +

    Dynamic Semantics

    +

    5.4.9:1 +Tuple struct pattern matching proceeds as follows:

    +
      +
    1. 5.4.9:2 +For each subpattern of the tuple struct pattern

      +
        +
      1. 5.4.9:3 +Otherwise perform pattern matching with the subpattern and the +corresponding field from the context value, ignoring +rest patterns.

      2. +
      3. 5.4.9:4 +If matching the subpattern fails, then matching fails.

      4. +
      +
    2. +
    +
    +
    +

    5.4.10. Tuple Pattern Matching

    +

    Dynamic Semantics

    +

    5.4.10:1 +Tuple pattern matching proceeds as follows:

    +
      +
    1. 5.4.10:2 +For each subpattern of the tuple pattern

      +
        +
      1. 5.4.10:3 +Perform pattern matching with the subpattern and the +corresponding field from the context value, ignoring +rest patterns.

      2. +
      3. 5.4.10:4 +If matching the subpattern fails, then matching fails.

      4. +
      +
    2. +
    +
    +
    +

    5.4.11. Underscore Pattern Matching

    +

    Dynamic Semantics

    +

    5.4.11:1 +Underscore pattern matching proceeds as follows:

    +
      +
    1. 5.4.11:2 +The context value is matched unconditionally.

    2. +
    3. 5.4.11:3 +Matching succeeds.

    4. +
    +
    +
    +
    + + +
    +
    +

    + Copyright © The Ferrocene Developers. + + Contents released under the MIT or Apache 2.0 license. + +

    + + +

    Built from commit: 2d7de7f91004615d8c7b4fb2416718fb7bb4f769

    + +

    Ferrocene is a registered trademark of Critical Section GmbH.

    +
    +
    +
    + + + \ No newline at end of file diff --git a/program-structure-and-compilation.html b/program-structure-and-compilation.html new file mode 100644 index 00000000..0e9b8840 --- /dev/null +++ b/program-structure-and-compilation.html @@ -0,0 +1,264 @@ + + + + + + + + + + + + 18. Program Structure and Compilation — Ferrocene Language Specification + + + + + + + + + + + + + + +
    + +
    +
    + +
    +

    18. Program Structure and Compilation

    +
    +

    18.1. Source Files

    +

    Syntax

    +
    SourceFile ::=
    +    ZeroWidthNoBreakSpace?
    +    Shebang?
    +    InnerAttributeOrDoc*
    +    Item*
    +
    +ZeroWidthNoBreakSpace ::=
    +    \u{FEFF}
    +
    +Shebang ::=
    +    #! ~[NewLine]*
    +
    +NewLine ::=
    +    \n
    +

    Legality Rules

    +

    18.1:1 +A source file contains the program text consisting of inner +attributes, inner doc comments, and items. The location of a +source file is tool defined.

    +

    18.1:2 +A Shebang does not have an effect on the compilation.

    +
    +
    +

    18.2. Modules

    +

    Syntax

    +
    ModuleDeclaration ::=
    +    unsafe? mod Name ModuleSpecification
    +
    +ModuleSpecification ::=
    +    InlineModuleSpecification
    +  | OutlineModuleSpecification
    +
    +InlineModuleSpecification ::=
    +    {
    +      InnerAttributeOrDoc*
    +      Item*
    +    }
    +
    +OutlineModuleSpecification ::=
    +    ;
    +

    Legality Rules

    +

    18.2:1 +A module is a container for zero or more items.

    +

    18.2:2 +The unsafe keyword of an module is rejected, but may still +be consumed by macros.

    +

    18.2:3 +An inline module is a module with an InlineModuleSpecification.

    +

    18.2:4 +An outline module is a module with an OutlineModuleSpecification.

    +

    18.2:5 +An outline module loads a source file and considers the text of the +source file to be inlined within the context of the outline module.

    +

    18.2:6 +The location of a module source file can be specified using +attribute path.

    +

    Examples

    +
    #[path = "path/to/module"]
    +pub mod module {
    +     #![allow(dead_code)]
    +
    +     struct Struct;
    +     pub mod other;
    +}
    +
    +
    +
    +
    +

    18.3. Crates

    +

    Legality Rules

    +

    18.3:1 +A crate is a unit of compilation and linking that contains a tree of +nested modules.

    +

    18.3:2 +A binary crate is a crate that contains a main function. A tool +can compile a binary crate to an executable.

    +

    18.3:3 +A library crate is either a crate without a main function or a +crate subject to attribute no_main. A tool is free to compile a +library crate to a shared library.

    +

    18.3:4 +A proc-macro crate is a crate that contains procedural macros. +A tool is free to compile a proc-macro crate to a shared library.

    +

    18.3:5 +A proc-macro crate shall not declare items with +public visibility unless the item is a procedural macro.

    +

    18.3:6 +Only a proc-macro crate shall declare procedural macros.

    +
    +
    +

    18.4. Crate Imports

    +

    Syntax

    +
    ExternalCrateImport ::=
    +    extern crate CrateIndication Renaming? ;
    +
    +CrateIndication ::=
    +    Identifier
    +  | self
    +

    Legality Rules

    +

    18.4:1 +A crate import specifies a required dependency on an external crate.

    +

    18.4:2 +A crate indication is a construct that indicates a crate.

    +

    18.4:3 +A crate import binds an external crate to its crate indication.

    +

    18.4:4 +Crate indication self shall require a renaming.

    +

    18.4:5 +A crate import with a renaming with an identifier binds the +external crate to a local name and introduces the local name into +the enclosing scope.

    +

    18.4:6 +If a crate import appears at the crate root module, then the +crate indication is added to the external prelude.

    +

    18.4:7 +A crate indication shall resolve to an external crate. The process of +resolving a crate indication to an external crate is tool-defined.

    +
    +
    +

    18.5. Compilation Roots

    +

    Legality Rules

    +

    18.5:1 +A crate root module is the root of the nested module tree of a +crate.

    +

    18.5:2 +A tool can define a crate root module for a single crate.

    +

    18.5:3 +A compilation root is an input to a compilation performed by a tool. A +crate root module is a compilation root.

    +
    +
    +

    18.6. Conditional Compilation

    +

    Legality Rules

    +

    18.6:1 +Conditionally-compiled source code is source code that may or may +not be considered a part of a Rust program depending on +configuration predicates.

    +

    18.6:2 +Conditional compilation is the process of compiling +conditionally-compiled source code.

    +

    18.6:3 +A construct subject to attribute cfg where the related +configuration predicate evaluates to false is not considered part of a +Rust program.

    +

    18.6:4 +A crate root module subject to attribute cfg where the related +configuration predicate evaluates to false is considered empty except +for all attributes up to the invoked attribute cfg.

    +

    18.6:5 +An attribute cfg_attr where the related configuration predicate +evaluates to false is not considered part of a Rust program.

    +
    +
    + + +
    +
    +

    + Copyright © The Ferrocene Developers. + + Contents released under the MIT or Apache 2.0 license. + +

    + + +

    Built from commit: 2d7de7f91004615d8c7b4fb2416718fb7bb4f769

    + +

    Ferrocene is a registered trademark of Critical Section GmbH.

    +
    +
    +
    + + + \ No newline at end of file diff --git a/search.html b/search.html new file mode 100644 index 00000000..25754e05 --- /dev/null +++ b/search.html @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + Search — Ferrocene Language Specification + + + + + + + + + + + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    +

    + Copyright © The Ferrocene Developers. + + Contents released under the MIT or Apache 2.0 license. + +

    + + +

    Built from commit: 2d7de7f91004615d8c7b4fb2416718fb7bb4f769

    + +

    Ferrocene is a registered trademark of Critical Section GmbH.

    +
    +
    +
    + + + \ No newline at end of file diff --git a/searchindex.js b/searchindex.js new file mode 100644 index 00000000..1f3781df --- /dev/null +++ b/searchindex.js @@ -0,0 +1 @@ +Search.setIndex({"docnames": ["associated-items", "attributes", "concurrency", "entities-and-resolution", "exceptions-and-errors", "expressions", "ffi", "functions", "general", "generics", "glossary", "implementations", "index", "inline-assembly", "items", "lexical-elements", "licenses", "macros", "ownership-and-deconstruction", "patterns", "program-structure-and-compilation", "statements", "types-and-traits", "undefined-behavior", "unsafety", "values"], "filenames": ["associated-items.rst", "attributes.rst", "concurrency.rst", "entities-and-resolution.rst", "exceptions-and-errors.rst", "expressions.rst", "ffi.rst", "functions.rst", "general.rst", "generics.rst", "glossary.rst", "implementations.rst", "index.rst", "inline-assembly.rst", "items.rst", "lexical-elements.rst", "licenses.rst", "macros.rst", "ownership-and-deconstruction.rst", "patterns.rst", "program-structure-and-compilation.rst", "statements.rst", "types-and-traits.rst", "undefined-behavior.rst", "unsafety.rst", "values.rst"], "titles": ["10. Associated Items", "13. Attributes", "17. Concurrency", "14. Entities and Resolution", "16. Exceptions and Errors", "6. Expressions", "21. FFI", "9. Functions", "1. General", "12. Generics", "B. Glossary", "11. Implementations", "Ferrocene Language Specification", "22. Inline Assembly", "3. Items", "2. Lexical Elements", "A. Licenses", "20. Macros", "15. Ownership and Destruction", "5. Patterns", "18. Program Structure and Compilation", "8. Statements", "4. Types and Traits", "C. List of undefined behavior", "19. Unsafety", "7. Values"], "terms": {"syntax": [0, 1, 3, 5, 6, 7, 9, 10, 11, 13, 14, 15, 16, 17, 19, 20, 21, 22, 25], "associateditem": [0, 10, 11, 22], "outerattributeordoc": [0, 1, 5, 6, 7, 8, 9, 14, 19, 21, 22], "associateditemwithvis": 0, "terminatedmacroinvoc": [0, 6, 10, 14, 17, 21], "visibilitymodifi": [0, 3, 6, 14, 22], "constantdeclar": [0, 10, 14, 22, 25], "functiondeclar": [0, 6, 7, 10, 14, 22], "typealiasdeclar": [0, 10, 14, 22], "legal": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 24, 25], "rule": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 13, 14, 15, 18, 19, 20, 21, 22, 24, 25], "10": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 13, 15, 16, 17, 18, 19, 21, 22, 24, 25], "1": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25], "an": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 24, 25], "i": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 24, 25], "appear": [0, 1, 3, 5, 6, 9, 10, 11, 13, 14, 15, 16, 17, 19, 20, 21, 22], "within": [0, 3, 5, 6, 8, 9, 10, 11, 13, 15, 16, 17, 18, 19, 20, 22, 24, 25], "implement": [0, 1, 2, 3, 5, 6, 8, 9, 12, 14, 17, 18, 19, 22, 24, 25], "trait": [0, 1, 2, 3, 5, 7, 9, 11, 12, 15, 18, 19, 23, 24, 25], "2": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 24, 25], "constant": [0, 3, 6, 7, 9, 11, 12, 13, 18, 19, 22], "3": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 24, 25], "function": [0, 3, 4, 5, 8, 9, 11, 12, 13, 16, 18, 20, 23, 24, 25], "4": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 16, 17, 18, 19, 20, 21, 22, 24, 25], "type": [0, 2, 6, 7, 8, 9, 11, 12, 13, 15, 16, 17, 18, 19, 21, 23, 24, 25], "alia": [0, 3, 9, 11, 22], "5": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 16, 17, 18, 19, 20, 21, 22, 24, 25], "shall": [0, 1, 2, 3, 5, 6, 7, 8, 9, 11, 13, 15, 16, 17, 18, 19, 20, 21, 22, 24, 25], "us": [0, 2, 4, 5, 6, 8, 9, 11, 12, 13, 15, 16, 17, 18, 19, 20, 21, 22, 24, 25], "path": [0, 9, 11, 12, 15, 17, 20, 22, 25], "express": [0, 1, 2, 7, 8, 9, 12, 13, 16, 17, 18, 19, 22, 23, 25], "struct": [0, 1, 3, 9, 11, 12, 15, 17, 18, 20, 23, 25], "6": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 16, 17, 18, 19, 20, 21, 22, 24, 25], "typeboundlist": [0, 3, 9, 22], "onli": [0, 1, 3, 5, 6, 9, 10, 11, 13, 15, 16, 17, 18, 19, 20, 22, 24, 25], "7": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 13, 15, 16, 17, 18, 19, 20, 21, 22, 24, 25], "A": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 16, 17, 18, 19, 20, 21, 22, 25], "gener": [0, 5, 7, 11, 12, 13, 16, 17, 22, 25], "paramet": [0, 1, 5, 6, 7, 11, 12, 17, 18], "8": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 13, 15, 16, 17, 18, 19, 21, 22, 24, 25], "lifetim": [0, 3, 9, 12, 17, 18, 25], "requir": [0, 1, 5, 7, 8, 9, 10, 13, 16, 17, 18, 19, 20, 21, 22, 25], "bound": [0, 3, 5, 9, 11, 12, 13, 17, 19], "form": [0, 1, 3, 5, 7, 8, 9, 10, 15, 16, 17, 22], "t": [0, 1, 2, 3, 5, 8, 9, 10, 13, 15, 16, 18, 19, 22], "where": [0, 1, 2, 3, 5, 7, 12, 13, 15, 16, 17, 18, 19, 20, 22], "self": [0, 1, 5, 7, 8, 11, 15, 18, 20, 22], "when": [0, 1, 3, 5, 6, 9, 10, 11, 13, 15, 17, 18, 19, 22, 25], "9": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 13, 15, 16, 17, 18, 19, 21, 22, 24, 25], "The": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25], "same": [0, 3, 5, 6, 8, 10, 11, 13, 15, 16, 17, 18, 19, 22, 25], "correspond": [0, 5, 6, 9, 10, 17, 19, 22], "argument": [0, 3, 5, 8, 12, 17, 19, 22], "static": [0, 1, 3, 5, 9, 12, 13, 15, 17, 18, 19, 23, 24], "ha": [0, 1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 13, 15, 16, 17, 18, 19, 21, 22, 25], "either": [0, 1, 3, 4, 5, 9, 10, 13, 15, 16, 17, 18, 19, 20, 22, 24, 25], "explicit": [0, 3, 6, 13, 15, 22], "implicit": [0, 5, 6, 9, 18, 22], "constrain": [0, 9, 15], "11": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 13, 15, 16, 17, 18, 19, 21, 22, 24, 25], "intersect": [0, 11], "all": [0, 1, 2, 3, 4, 5, 7, 8, 9, 11, 13, 16, 17, 18, 19, 20, 22, 25], "empti": [0, 3, 11, 13, 15, 17, 20, 21], "12": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 13, 15, 16, 17, 18, 19, 21, 22, 25], "13": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 13, 15, 16, 17, 18, 19, 21, 22, 25], "have": [0, 1, 2, 3, 5, 7, 8, 9, 10, 13, 16, 17, 18, 19, 20, 22, 25], "initi": [0, 3, 5, 6, 9, 12, 13, 17, 19, 21, 22, 25], "14": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 13, 15, 16, 17, 18, 19, 21, 22, 25], "15": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 13, 15, 16, 17, 18, 19, 22, 25], "bodi": [0, 1, 3, 5, 7, 9, 11, 18, 22], "16": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 16, 17, 18, 19, 22, 25], "17": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 13, 15, 16, 17, 18, 19, 22, 25], "18": [0, 1, 3, 5, 6, 7, 8, 9, 10, 13, 15, 16, 17, 18, 19, 20, 22], "19": [0, 1, 3, 5, 7, 8, 9, 10, 13, 15, 16, 17, 18, 19, 22, 24], "20": [0, 1, 3, 5, 7, 9, 10, 13, 15, 16, 17, 18, 19, 22], "21": [0, 1, 3, 5, 6, 7, 8, 9, 10, 13, 15, 16, 17, 18, 19, 22], "22": [0, 1, 3, 5, 7, 9, 10, 13, 15, 16, 17, 18, 19, 22], "23": [0, 1, 3, 5, 7, 9, 10, 13, 15, 16, 17, 18, 19, 22], "24": [0, 1, 3, 5, 7, 9, 10, 13, 15, 16, 17, 18, 19, 22], "core": [0, 1, 2, 3, 4, 5, 9, 10, 11, 13, 18, 19, 22, 24, 25], "marker": [0, 1, 2, 5, 9, 10, 11, 18, 19, 22, 25], "size": [0, 3, 5, 8, 9, 11, 13, 15, 18, 19, 22, 25], "25": [0, 1, 3, 5, 7, 9, 10, 13, 15, 16, 17, 18, 19, 22], "x": [0, 7, 9, 13, 15, 18, 19, 22], "26": [0, 1, 3, 5, 7, 9, 10, 13, 15, 16, 17, 18, 19, 22], "equival": [0, 3, 5, 7, 9, 10, 15, 17, 19, 22], "claus": [0, 1, 3, 7, 12, 22], "follow": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 16, 17, 18, 19, 21, 22, 23, 25], "27": [0, 1, 3, 5, 7, 9, 10, 13, 15, 16, 17, 18, 19, 22], "method": [0, 7, 18, 22], "28": [0, 1, 3, 5, 7, 9, 10, 13, 15, 16, 17, 18, 19, 22], "one": [0, 1, 2, 3, 5, 8, 9, 10, 11, 15, 16, 17, 18, 19, 22], "29": [0, 1, 3, 5, 7, 9, 10, 13, 15, 16, 17, 18, 19, 22], "specif": [0, 3, 8, 11, 13, 15, 16, 17, 22, 23, 25], "resolv": [0, 3, 5, 10, 11, 17, 19, 20, 22], "relat": [0, 1, 2, 3, 9, 10, 13, 16, 17, 18, 19, 20, 22, 25], "30": [0, 1, 3, 5, 7, 9, 10, 13, 15, 16, 17, 18, 19, 22], "list": [0, 1, 5, 8, 12, 13, 15, 16, 19, 22], "thi": [0, 1, 2, 3, 4, 5, 8, 9, 10, 13, 15, 16, 17, 18, 22, 23], "enumer": [0, 1], "31": [0, 1, 3, 5, 7, 9, 10, 13, 15, 16, 17, 18, 19, 22], "mut": [0, 2, 5, 6, 7, 10, 11, 13, 15, 18, 19, 21, 22, 25], "32": [0, 1, 3, 5, 7, 9, 10, 13, 15, 16, 17, 18, 19, 22], "pin": [0, 5, 11], "33": [0, 1, 3, 5, 7, 9, 10, 13, 15, 16, 19, 22], "visibl": [0, 1, 12, 17, 20], "modifi": [0, 3, 5, 16, 17, 18, 22, 25], "reject": [0, 3, 6, 20, 22], "mai": [0, 1, 2, 3, 5, 6, 8, 9, 10, 11, 13, 15, 16, 17, 18, 20, 22, 24, 25], "still": [0, 3, 6, 20, 22], "consum": [0, 3, 5, 6, 10, 17, 20, 22], "macro": [0, 4, 5, 6, 8, 12, 14, 15, 20, 21, 22, 24], "exampl": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 16, 17, 18, 19, 20, 21, 22, 25], "greeter": 0, "const": [0, 5, 6, 7, 9, 10, 11, 15, 19, 22, 25], "max_greet": 0, "i32": [0, 1, 2, 3, 5, 13, 15, 18, 19, 22], "fn": [0, 1, 3, 5, 6, 7, 9, 10, 11, 13, 15, 17, 18, 22], "greet": 0, "messag": [0, 1, 8], "str": [0, 3, 15, 18, 23], "implementor": 0, "delivered_greet": 0, "impl": [0, 1, 3, 5, 7, 11, 15, 18], "42": [0, 1, 3, 5, 9, 10, 13, 15, 17, 18, 19, 21, 22], "println": [0, 1, 3, 5, 17, 18], "34": [0, 1, 3, 5, 7, 9, 10, 13, 15, 16, 19, 22], "lendingiter": 0, "next": [0, 5, 10, 15, 22], "innerattributeordoc": [1, 5, 6, 11, 20, 22], "innerattribut": [1, 10], "innerbuiltinattribut": [1, 10], "innerblockdoc": [1, 10, 15], "innerlinedoc": [1, 10, 15], "attributecont": [1, 10], "outerattribut": [1, 10], "outerbuiltinattribut": [1, 10], "outerblockdoc": [1, 10, 15], "outerlinedoc": [1, 10, 15], "simplepath": [1, 3, 10, 17], "attributeinput": 1, "tokentre": [1, 10, 17], "attributecontentlist": 1, "free": [1, 8, 10, 13, 16, 20], "metadatum": [1, 10], "interpret": [1, 3, 5, 8, 10, 19, 22, 25], "base": [1, 3, 5, 13, 15, 16, 17, 18, 19, 25], "its": [1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 25], "name": [1, 3, 7, 8, 9, 11, 13, 15, 16, 17, 19, 20, 22, 25], "convent": [1, 5, 6, 12], "languag": [1, 2, 3, 4, 6, 8, 10, 16, 22, 23], "tool": [1, 3, 5, 6, 8, 10, 13, 15, 20, 22], "inner": [1, 3, 5, 11, 15, 18, 19, 20, 22], "appli": [1, 3, 10, 13, 15, 16, 17, 22], "enclos": [1, 3, 5, 6, 10, 15, 16, 17, 18, 20], "item": [1, 5, 7, 8, 9, 11, 12, 15, 17, 18, 20, 21], "outer": [1, 3, 5, 15, 17, 18], "subsequ": [1, 10, 13, 15, 16, 17, 22], "content": [1, 8, 13, 15, 16, 17, 19, 22, 23], "construct": [1, 3, 5, 6, 7, 8, 9, 11, 13, 15, 17, 18, 19, 20, 21, 22, 25], "provid": [1, 2, 3, 5, 6, 8, 9, 10, 13, 16, 17, 21, 22, 25], "target_o": 1, "linux": 1, "mod": [1, 3, 15, 19, 20, 22], "linux_only_modul": 1, "allow": [1, 2, 3, 5, 6, 10, 13, 17, 18, 19, 20, 22], "unused_vari": 1, "let": [1, 3, 7, 12, 13, 15, 18, 19, 22], "unus": 1, "activ": [1, 5, 18, 22], "remov": [1, 10, 21], "from": [1, 3, 5, 6, 7, 8, 9, 13, 15, 16, 17, 18, 19, 21, 22, 25], "decor": [1, 10], "inert": [1, 17], "remain": [1, 3, 5, 9, 10, 13, 16, 18, 22], "ar": [1, 2, 3, 5, 6, 8, 9, 10, 11, 13, 15, 16, 17, 18, 19, 21, 22, 23, 24, 25], "purpos": [1, 8, 16], "otherwis": [1, 3, 5, 6, 7, 9, 10, 13, 16, 17, 18, 19, 21, 22], "builtinattributecont": 1, "automaticallyderivedcont": 1, "cfgattrcont": 1, "cfgcontent": 1, "coldcont": 1, "cratenamecont": 1, "cratetypecont": 1, "derivecont": 1, "doccont": 1, "exportnamecont": 1, "globalallocatorcont": 1, "inlinecont": 1, "ignorecont": 1, "linkcont": 1, "linknamecont": 1, "linksectioncont": 1, "linkordinalcont": 1, "macroexportcont": 1, "macrousecont": 1, "nobinutilscont": 1, "noimplicitpreludecont": 1, "nolinkcont": 1, "nomaincont": 1, "nomanglecont": 1, "nonexhaustivecont": 1, "nostdcont": 1, "panichandlercont": 1, "pathcont": 1, "procmacroattributecont": 1, "procmacrocont": 1, "procmacroderivecont": 1, "recursionlimitcont": 1, "reprcont": 1, "shouldpaniccont": 1, "targetfeaturecont": 1, "testcont": 1, "trackcallercont": 1, "typelengthlimitcont": 1, "usedcont": 1, "windowssubsystemcont": 1, "defin": [1, 2, 3, 5, 8, 9, 10, 11, 13, 15, 16, 17, 18, 19, 20, 22, 25], "deni": 1, "deprec": 1, "forbid": 1, "must_us": 1, "warn": [1, 8], "35": [1, 3, 5, 7, 9, 10, 13, 15, 16, 22], "36": [1, 3, 5, 9, 10, 13, 15, 16, 19, 22], "37": [1, 3, 5, 9, 10, 13, 15, 16, 22], "38": [1, 3, 5, 9, 10, 13, 15, 22], "39": [1, 3, 5, 9, 10, 13, 15, 22], "40": [1, 5, 9, 10, 13, 15, 22], "41": [1, 5, 9, 10, 13, 15, 22], "43": [1, 5, 9, 10, 13, 15, 22], "44": [1, 5, 10, 13, 15, 19, 22], "45": [1, 5, 10, 13, 15, 22], "46": [1, 5, 10, 13, 15, 22], "47": [1, 5, 10, 13, 15, 22], "48": [1, 5, 10, 13, 15, 22], "49": [1, 5, 10, 13, 15, 22], "50": [1, 5, 10, 13, 15, 16, 22], "51": [1, 5, 10, 13, 15, 22], "52": [1, 5, 10, 13, 15, 22], "53": [1, 5, 10, 13, 15, 22], "54": [1, 10, 13, 15, 22], "55": [1, 10, 13, 15, 19, 22], "56": [1, 10, 13, 15, 22], "57": [1, 10, 13, 15, 19, 22], "58": [1, 10, 13, 15, 22], "indic": [1, 4, 5, 6, 8, 13, 16, 17, 19, 20, 22], "unlik": 1, "call": [1, 7, 8, 13, 17, 18, 22, 23, 24], "rarely_called_funct": 1, "inlinehint": 1, "alwai": [1, 3, 10, 11, 15, 18, 19, 22, 25], "never": [1, 5, 21, 23], "closur": [1, 3, 7, 12, 18], "mark": [1, 8, 15, 16], "process": [1, 3, 5, 10, 13, 14, 17, 18, 19, 20, 21, 22, 25], "replac": [1, 10, 15, 16, 17, 18, 22, 25], "refer": [1, 3, 5, 6, 8, 9, 11, 12, 15, 17, 23, 24, 25], "without": [1, 2, 3, 5, 6, 9, 13, 15, 16, 17, 18, 19, 20, 21, 22], "suggest": 1, "should": [1, 16, 18], "perform": [1, 3, 5, 10, 13, 15, 16, 17, 18, 19, 20, 22], "oblig": [1, 16, 22], "suggests_inlin": 1, "requests_consistent_inlin": 1, "requests_suppressed_inlin": 1, "crate": [1, 3, 8, 11, 12, 15, 17, 22], "root": [1, 3, 12, 22], "prevent": [1, 2, 10, 13, 18, 22], "certain": [1, 3, 5, 10, 13, 18, 22], "pattern": [1, 5, 6, 7, 12, 17, 18, 21, 22, 23], "intrins": 1, "enabl": [1, 8], "featurelist": 1, "featur": [1, 2, 13], "adx": 1, "ae": 1, "avx": [1, 13], "avx2": 1, "bmi1": 1, "bmi2": 1, "fma": 1, "fxsr": 1, "lzcnt": 1, "pclmulqdq": 1, "popcnt": 1, "rdrand": 1, "rdseed": 1, "sha": 1, "sse": [1, 13], "sse2": 1, "sse3": 1, "sse4": 1, "ssse3": 1, "xsave": 1, "xsavec": 1, "xsaveopt": 1, "unsaf": [1, 6, 7, 11, 13, 15, 18, 19, 20, 22, 24, 25], "target": [1, 3, 5, 13, 18, 22], "architectur": [1, 13], "implicitli": [1, 3, 5, 8, 18, 22], "descript": [1, 16], "intel": 1, "multi": [1, 3, 15, 22], "precis": 1, "add": [1, 5, 10, 11, 13, 16, 17, 22], "cari": 1, "instruct": [1, 12, 23], "extens": [1, 13], "advanc": 1, "encrypt": 1, "standard": [1, 3, 10, 15], "vector": [1, 13, 21], "bit": [1, 13, 22], "manipul": 1, "set": [1, 3, 5, 6, 7, 8, 9, 10, 12, 13, 17, 19, 22], "three": [1, 5], "operand": [1, 3, 5, 8, 18, 21, 22, 25], "fuse": 1, "multipli": 1, "save": [1, 5, 10, 13], "restor": [1, 13], "x87": [1, 13], "fpu": 1, "mmx": 1, "technologi": 1, "state": [1, 4, 5, 8, 10, 13, 16], "lead": [1, 3, 10, 15], "zero": [1, 5, 8, 13, 14, 15, 17, 19, 20, 22, 25], "count": 1, "pack": 1, "carri": [1, 16], "less": [1, 5, 15, 19], "multipl": [1, 2, 5, 13, 15, 17, 18, 19, 22], "quadword": 1, "read": [1, 5, 10, 13, 19, 24, 25], "random": 1, "number": [1, 3, 5, 8, 10, 15, 17, 19, 22], "seed": 1, "secur": 1, "hash": 1, "algorithm": [1, 22], "stream": [1, 10, 17], "simd": 1, "supplement": [1, 10, 11], "processor": [1, 8], "extend": [1, 3, 5, 10, 11, 15, 17, 18], "statu": [1, 13], "compact": 1, "optim": 1, "supervizor": 1, "undefin": [1, 2, 5, 6, 8, 12, 13, 18, 19, 22, 24, 25], "behavior": [1, 2, 4, 5, 6, 7, 8, 12, 13, 18, 19, 22, 24, 25], "It": [1, 2, 3, 5, 6, 7, 8, 9, 13, 15, 17, 18, 19, 22, 25], "execut": [1, 4, 5, 6, 8, 13, 16, 17, 20, 21, 25], "program": [1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 15, 18, 22, 24], "support": [1, 6, 8, 16], "requires_target_architecture_featur": 1, "non": [1, 3, 5, 6, 11, 13, 15, 16, 19, 22], "main": [1, 7, 8, 20], "abi": [1, 5, 7, 12, 22, 23], "rust": [1, 2, 4, 6, 7, 8, 13, 15, 17, 18, 20, 24], "obtain": [1, 2, 5, 10, 16, 18, 22], "panic": [1, 5, 8, 12, 21, 22], "locat": [1, 2, 3, 5, 10, 13, 20, 25], "which": [1, 2, 3, 5, 8, 10, 13, 14, 15, 16, 17, 18, 19, 21, 22], "topmost": 1, "untrack": 1, "caller": [1, 3, 5, 8, 10], "ultim": 1, "led": 1, "invoc": [1, 3, 7, 12, 13, 14, 21, 22], "effect": [1, 3, 4, 5, 8, 10, 13, 14, 17, 18, 20, 21, 22], "manner": [1, 5, 8, 10], "associ": [1, 3, 5, 7, 8, 9, 11, 12, 16, 17, 18, 19, 22, 25], "If": [1, 3, 6, 7, 9, 12, 13, 15, 16, 17, 18, 19, 20, 21, 22], "default": [1, 3, 5, 6, 9, 11, 22], "overrid": [1, 15], "extern": [1, 3, 5, 7, 8, 12, 13, 15, 17, 20, 22, 24, 25], "doe": [1, 3, 5, 8, 9, 10, 11, 13, 15, 16, 17, 18, 19, 20, 21, 22, 25], "export": [1, 3, 8], "miss": 1, "who_called_m": 1, "configurationpred": [1, 8, 10], "configurationopt": 1, "configurationpredicateal": [1, 10], "configurationpredicateani": [1, 10], "configurationpredicatenot": [1, 10], "configurationoptionnam": 1, "configurationoptionvalu": 1, "identifi": [1, 3, 5, 6, 8, 9, 12, 13, 16, 17, 18, 20, 22], "stringliter": [1, 6, 10, 13, 15], "configurationpredicatelist": 1, "ani": [1, 2, 3, 5, 8, 9, 13, 15, 16, 17, 19, 22], "configur": [1, 13, 16, 20], "predic": [1, 3, 9, 20, 22], "evalu": [1, 5, 13, 20, 21, 25], "true": [1, 5, 9, 10, 15, 22], "fals": [1, 5, 10, 15, 20, 22], "control": [1, 4, 5, 7, 8, 13, 16, 18, 19, 25], "model": [1, 7, 10, 12, 18], "existenti": [1, 10], "quantifi": [1, 5, 10], "nest": [1, 3, 5, 15, 17, 18, 19, 20, 22], "negat": [1, 22], "boolean": [1, 3, 18, 22], "valu": [1, 2, 3, 4, 7, 8, 9, 11, 12, 13, 15, 17, 18, 19, 21, 22, 23, 24], "option": [1, 3, 4, 5, 8, 9, 12, 17, 19, 21, 22, 23], "unix": 1, "target_pointer_width": 1, "on_32bit_unix": 1, "new": [1, 5, 8, 10, 13, 15, 17, 18, 21, 22], "each": [1, 3, 5, 8, 11, 15, 16, 17, 18, 19, 21, 22], "": [1, 3, 5, 6, 8, 9, 10, 13, 16, 17, 19, 22, 25], "window": [1, 6, 13], "r": [1, 8, 13, 15, 22], "o": [1, 13], "automat": [1, 2, 3, 10, 22], "ad": [1, 3, 10, 20, 22], "creat": [1, 5, 9, 10, 18, 25], "simplepathlist": [1, 3], "abstract": [1, 2, 3, 5, 9, 12, 15, 17, 25], "data": [1, 2, 3, 5, 6, 9, 12, 13, 17, 19, 25], "partialeq": [1, 5, 19, 22], "field": [1, 2, 9, 12, 16, 18, 19, 22, 23, 24, 25], "caus": [1, 4, 5, 10, 13, 16], "cmp": [1, 5, 19, 22], "eq": [1, 5, 19, 22], "other": [1, 3, 5, 6, 8, 10, 12, 13, 16, 17, 18, 19, 20, 24, 25], "bool": [1, 2, 3, 5, 15, 23], "ne": [1, 5], "section": [1, 13, 15, 16, 22, 23], "inform": [1, 3, 8, 10, 13, 15, 16, 22, 23], "lint": 1, "docinput": 1, "macroinvoc": [1, 5, 10, 17, 19, 22], "comment": [1, 11, 12, 16, 20, 22], "written": [1, 8, 10, 13, 15, 16, 22], "specifi": [1, 5, 6, 7, 8, 9, 11, 13, 15, 17, 19, 20, 21, 22], "factori": 1, "cratetyp": 1, "bin": 1, "cdylib": 1, "dylib": 1, "lib": 1, "proc": [1, 17, 20], "rlib": 1, "staticlib": 1, "linkag": [1, 6, 10], "symbol": 1, "exported_symbol": 1, "pub": [1, 3, 15, 17, 19, 20], "rust_nam": 1, "linkopt": 1, "nativelibrarynam": 1, "nativelibrarynamewithkind": 1, "webassemblymodulenam": 1, "nativelibraykind": 1, "wasm_import_modul": 1, "kind": [1, 3, 5, 6, 16, 17], "nativelibraykindtyp": 1, "raw": [1, 5, 13, 24], "framework": 1, "block": [1, 3, 7, 9, 12, 13, 15, 17, 18, 21, 22, 24], "nativ": 1, "librari": [1, 3, 8, 20, 25], "avail": [1, 8, 13, 16, 22], "dynam": [1, 4, 5, 6, 8, 13, 14, 18, 19, 21, 22, 25], "maco": 1, "valid": [1, 5, 8, 9, 11, 22], "webassembli": 1, "env": 1, "suppli": [1, 3, 5, 8, 9, 10, 18], "must": [1, 8, 10, 13, 16, 17, 22], "includ": [1, 3, 5, 6, 8, 10, 15, 16, 17, 22], "file": [1, 12, 15, 16], "subject": [1, 3, 4, 5, 7, 9, 11, 13, 15, 16, 17, 18, 19, 20, 22, 25], "corefound": 1, "annot": [1, 10, 15, 16], "linking_symbol": 1, "object": [1, 5, 8, 16, 18], "place": [1, 8, 13, 16, 18, 19, 22, 25], "example_sect": 1, "the_answ": 1, "u32": [1, 2, 3, 5, 13, 15, 17, 19, 21, 22, 25], "decimalliter": [1, 5, 10, 15, 19], "ordin": 1, "dll": 1, "system": [1, 6, 13, 16], "import": [1, 6, 8, 12, 15, 16], "result": [1, 4, 5, 7, 8, 10, 16, 17, 21, 22, 24, 25], "binari": [1, 5, 6, 15, 20], "do_not_link": 1, "present": [1, 2, 4, 9, 10, 15, 18, 22], "than": [1, 3, 5, 6, 11, 13, 15, 19, 22, 24], "publicli": [1, 16], "produc": [1, 4, 5, 8, 10, 13, 17, 18, 21, 25], "symbol_nam": 1, "represent": [1, 5, 8, 12, 15, 17], "representationkind": 1, "align": [1, 13, 22], "primitiverepresent": 1, "c": [1, 6, 9, 13, 15, 16, 18, 19, 22, 23], "transpar": [1, 22], "alignmentdecreas": 1, "alignmentincreas": 1, "i8": [1, 2, 3, 13, 15, 22], "i16": [1, 2, 3, 13, 15, 22], "i64": [1, 2, 3, 13, 15, 22], "i128": [1, 3, 15, 22], "isiz": [1, 2, 3, 15, 22], "u8": [1, 2, 3, 5, 6, 15, 22], "u16": [1, 2, 3, 5, 15, 22], "u64": [1, 2, 3, 15, 22], "u128": [1, 3, 15, 22], "usiz": [1, 2, 3, 5, 9, 15, 22], "c_struct": 1, "first_field": 1, "second_field": 1, "forc": [1, 22], "keep": 1, "output": [1, 5, 7, 13, 17, 22, 25], "even": [1, 5, 13, 16, 19], "referenc": [1, 5, 6, 10, 17, 22], "maximum": [1, 5, 19, 22], "depth": [1, 17], "expans": [1, 8, 12, 14], "auto": [1, 22], "dereferenc": [1, 5, 10, 19, 24], "substitut": [1, 13, 22, 25], "concret": [1, 22], "declar": [1, 3, 5, 6, 7, 12, 13, 14, 15, 18, 19, 20, 22, 25], "chang": [1, 5, 10, 13, 16, 18, 22], "public": [1, 3, 20], "introduc": [1, 3, 5, 10, 18, 19, 20, 21, 22], "scope": [1, 12, 17, 19, 20], "macro_rul": [1, 15, 17], "m": [1, 3, 10, 13, 17], "importedmacrolist": 1, "identifierlist": [1, 15], "been": [1, 5, 8, 10, 11, 13, 16, 18, 19, 22, 25], "textual": 1, "first_macro": 1, "second_macro": 1, "turn": 1, "like": [1, 3, 5, 22], "make_answer_to_lif": [1, 17], "_item": [1, 17], "tokenstream": [1, 17], "answer_to_lif": [1, 17], "pars": [1, 5, 13, 17], "unwrap": [1, 5, 17], "output_and_return_item": [1, 17], "attr": [1, 17], "to_str": [1, 5, 17], "derivenam": 1, "helperattributelist": 1, "helper": [1, 17], "answer": [1, 5, 17], "derive_answer_to_lif": [1, 17], "respect": [1, 5, 13, 22], "string": [1, 5, 13, 22], "liter": [1, 8, 12, 13, 17, 25], "format": [1, 5, 10, 13, 16], "inline_modul": 1, "outline_modul": 1, "version": [1, 12, 15, 16], "whose": [1, 2, 3, 5, 8, 9, 10, 11, 13, 15, 17, 18, 19, 21, 22, 25], "alloc": [1, 10, 13, 15, 25], "globalalloc": 1, "global": [1, 3, 5, 13, 22, 25], "restrict": [1, 3, 5, 7, 10, 13, 15, 16, 17, 19], "lack": [1, 3, 4, 5, 7, 10, 13, 15, 17, 18, 21, 22], "qualifi": [1, 3, 5, 7, 8, 15, 17, 19], "Its": [1, 7, 22], "singl": [1, 3, 5, 9, 13, 15, 17, 19, 20, 22], "panicinfo": 1, "return": [1, 2, 7, 8, 9, 12, 13, 15, 17, 18, 22], "graph": 1, "contain": [1, 3, 5, 6, 8, 9, 13, 16, 17, 18, 19, 20, 22], "exactli": [1, 3, 5, 10, 13, 15, 19, 22], "info": [1, 13], "subsystemkind": 1, "consol": 1, "subsystem": 1, "ignorereason": 1, "yet": [1, 2, 10, 15], "unit_testing_funct": 1, "expectedpanicmessag": 1, "expect": [1, 10, 17, 19, 21, 22], "pass": [1, 5, 8, 12, 19], "did": [1, 13], "get": 1, "mean": [1, 3, 8, 10, 15, 16], "life": 1, "test_meaning_of_lif": 1, "assert_eq": 1, "meaning_of_lif": 1, "async": [1, 3, 7, 15], "unit": [1, 5, 7, 8, 19, 20, 21, 22], "termin": [1, 4, 5, 14, 16, 17, 21], "e": [1, 13, 15, 17], "ok": [1, 4], "fail": [1, 4, 5, 17, 19, 22], "accord": [1, 8, 13, 17, 19, 22], "test_the_th": 1, "input": [1, 5, 6, 7, 9, 13, 15, 20, 22], "create_input": 1, "do_the_th": 1, "enum": [1, 3, 4, 5, 9, 15, 18, 19, 23], "variant": [1, 3, 5, 8, 9, 18, 19, 22], "more": [1, 2, 3, 8, 10, 11, 13, 14, 15, 16, 17, 19, 20], "futur": [1, 2, 5, 7], "exhaust": [1, 5], "outsid": [1, 3, 5, 8, 10, 13, 17, 22], "match": [1, 3, 7, 12, 15, 18, 21, 22], "rest": [1, 5], "contribut": [1, 8, 16], "toward": [1, 5], "arm": [1, 3, 5, 6, 13, 18, 22], "enum_with_future_vari": 1, "enum_variants_with_future_field": 1, "send": [1, 12, 22], "quit": 1, "struct_with_future_field": 1, "race": 2, "chapter": [2, 8, 15], "scenario": [2, 10, 18, 22], "two": [2, 3, 5, 10, 11, 13, 15, 17, 19, 22, 25], "thread": [2, 4, 10], "access": [2, 3, 12, 18, 23, 24, 25], "share": [2, 5, 8, 16, 18, 20, 22], "memori": [2, 5, 10, 13, 18, 22, 25], "synchron": 2, "modif": [2, 16], "engag": 2, "level": [2, 10, 13], "safe": [2, 22], "transfer": [2, 5, 10, 16, 18], "across": [2, 6, 10, 22], "boundari": [2, 5, 6, 7], "given": [2, 3, 8, 10, 11, 17, 22], "time": [2, 5, 8, 10, 17, 19, 22], "incur": [2, 16], "modul": [2, 3, 8, 12, 13, 15, 17, 19], "primit": [2, 5, 22], "commun": [2, 16], "between": [2, 5, 8, 9, 10, 13, 15, 17, 18, 22], "atomicbool": 2, "atomici8": 2, "atomici16": 2, "atomici32": [2, 18], "atomici64": 2, "atomicis": 2, "atomicptr": 2, "atomicu8": 2, "atomicu16": 2, "atomicu32": 2, "atomicu64": 2, "atomicus": 2, "through": [2, 3, 8, 10, 16, 17, 18, 22, 25], "task": [2, 5], "repres": [2, 4, 5, 10, 13, 15, 16, 22], "finish": [2, 10], "await": [2, 12, 15], "invok": [2, 3, 4, 5, 6, 8, 10, 13, 17, 18, 20, 22], "poll": [2, 5, 10], "alreadi": [2, 10, 19], "readi": [2, 5, 10], "can": [3, 5, 8, 10, 13, 15, 17, 18, 20, 22, 25], "text": [3, 8, 10, 13, 15, 16, 18, 20, 24], "usual": [3, 4, 10], "via": [3, 10, 22], "explicitli": [3, 5, 8, 16, 18, 19, 22], "alias": [3, 12, 13, 18], "union": [3, 5, 9, 13, 15, 16, 18, 19, 24, 25], "built": [3, 8, 12], "attribut": [3, 4, 5, 6, 8, 11, 12, 15, 16, 19, 20, 22, 23], "cratepublicmodifi": [3, 10], "selfpublicmodifi": [3, 10], "simplepathpublicmodifi": [3, 10], "simplepublicmodifi": 3, "superpublicmodifi": [3, 10], "super": [3, 15], "properti": [3, 10, 12, 17, 18, 19, 22], "determin": [3, 5, 6, 7, 9, 10, 15, 16, 19, 21, 22, 25], "arbitrari": [3, 10], "long": [3, 5, 8, 10, 13, 18], "ancestor": [3, 10], "privat": [3, 13], "current": [3, 4, 5, 8, 10, 17, 18, 19, 22], "descend": [3, 10], "grant": [3, 10, 16], "denot": [3, 5, 7, 8, 10, 15, 17, 18, 19, 22, 25], "keyword": [3, 5, 6, 7, 8, 11, 12, 17, 19, 20, 22, 25], "start": [3, 5, 8, 10, 13, 15, 18, 19], "segment": [3, 8, 9], "itself": [3, 7, 10, 17, 22], "parent": [3, 10, 18], "outer_modul": 3, "inner_modul": 3, "crate_visible_funct": 3, "inner_module_visible_funct": 3, "outer_module_visible_funct": 3, "visible_funct": 3, "simplepathseg": [3, 10], "qualifiedtyp": [3, 10], "typespecif": [3, 7, 9, 10, 11, 17, 22], "qualifyingtrait": [3, 10], "typepath": [3, 10, 11, 22], "unqualifiedpathexpress": [3, 5], "pathexpressionseg": [3, 5], "pathseg": [3, 10], "genericargumentlist": [3, 9, 10], "qualifiedpathexpress": [3, 5, 10, 19], "typepathseg": [3, 10], "qualifiedfntrait": 3, "typespecificationlist": [3, 22], "returntyp": [3, 7, 10, 22], "qualifiedtypepath": [3, 10, 22], "sequenc": [3, 5, 12, 13, 15, 17], "logic": [3, 5, 10, 15, 22], "separ": [3, 8, 12, 13, 16, 17], "element": [3, 5, 12, 17, 18, 19, 22, 25], "first": [3, 5, 9, 10, 17, 18, 19, 22], "transcrib": [3, 17], "previou": [3, 22], "also": [3, 5, 8, 16, 22], "consist": [3, 5, 8, 9, 10, 15, 16, 17, 19, 20, 25], "abov": [3, 13, 16, 22], "prefix": [3, 8, 13], "last": [3, 5, 6, 10, 18, 19, 22], "strip": 3, "glob": 3, "part": [3, 8, 16, 17, 20, 22], "useimportcont": 3, "unqualifi": 3, "act": [3, 5, 7, 10, 11, 15, 16, 17, 18, 22], "impos": [3, 8, 10, 17, 19, 22], "exhibit": [3, 10, 11], "conform": [3, 12, 22], "project": [3, 8, 16], "associated_typ": [3, 10], "op": [3, 5, 10, 11, 18, 22], "fnmut": [3, 5, 10, 11, 22], "fnonc": [3, 5, 10, 11, 22], "see": [3, 5, 10, 16, 17, 18, 19, 22], "paragraph": [3, 5, 8, 15, 17, 18, 19, 22], "vec": [3, 5, 19, 21, 22], "with_capac": 3, "std": [3, 11, 13], "box": [3, 13, 15, 22], "dyn": [3, 15, 22], "f": [3, 5, 8, 13, 15, 22], "assoc": [3, 9, 22], "region": [3, 10, 18], "loop": [3, 12, 15, 18, 22], "while": [3, 15, 16, 17, 18, 22], "statement": [3, 5, 12, 16, 17, 18, 19, 22], "after": [3, 5, 8, 13, 15, 17, 18, 22, 25], "until": [3, 5, 10, 22], "end": [3, 5, 10, 13, 15, 16, 17, 18, 19], "guard": [3, 5, 18, 22], "genericparameterlist": [3, 6, 7, 9, 10, 11, 22], "pointer": [3, 5, 7, 13, 19, 23, 24], "except": [3, 5, 6, 8, 9, 10, 12, 13, 15, 16, 17, 19, 20, 22], "Such": [3, 5, 18, 19, 22], "context": [3, 5, 6, 7, 8, 9, 15, 17, 18, 19, 20, 22, 24, 25], "macro_us": 3, "reflect": [3, 8, 10], "child": [3, 5], "infinit": [3, 18, 22], "group": [3, 5, 8, 10], "occurr": [3, 10], "conflict": [3, 10], "anoth": [3, 5, 7, 9, 10, 11, 17, 18, 19, 22], "segreg": 3, "five": 3, "deriv": [3, 16, 19, 22], "numer": [3, 5], "constructor": [3, 5, 9, 22], "collect": [3, 10, 17, 22], "brought": [3, 10], "everi": [3, 10, 17, 22], "bring": [3, 10], "re": 3, "rust_2021": 3, "renam": [3, 15, 20], "instead": [3, 4, 22], "unless": [3, 5, 6, 7, 9, 11, 13, 16, 20, 22, 25], "no_cor": 3, "float": [3, 5, 13], "point": [3, 5, 7, 13, 15, 18, 25], "f32": [3, 5, 13, 15, 22], "f64": [3, 5, 7, 11, 13, 15, 22], "integ": [3, 5], "char": [3, 5, 15, 23], "were": 3, "useimport": [3, 10, 14], "globimport": [3, 10], "nestingimport": [3, 10], "simpleimport": [3, 10], "simplepathprefix": [3, 10], "useimportcontentlist": 3, "resid": [3, 10, 17, 25], "fulli": [3, 10, 17], "Then": [3, 5, 22], "prepend": [3, 5], "repeat": [3, 5, 17, 19], "step": 3, "differ": [3, 5, 8, 10, 13, 16, 22], "thei": [3, 5, 8, 10, 15, 22], "append": [3, 17], "under": [3, 8, 15, 16, 22], "charact": [3, 8, 12, 13, 16, 17, 19, 21, 22, 25], "underscor": [3, 6, 12, 13, 15], "_": [3, 5, 8, 15, 19, 22, 25], "common": [3, 8, 10, 13, 16, 22], "error": [3, 8, 9, 12, 13, 15, 17, 19, 22, 24], "most": [3, 5, 10, 15, 17, 19, 22], "permiss": [3, 6, 16], "create_visible_funct": 3, "select": [3, 5, 13, 17], "said": [3, 5, 9, 10, 16, 18, 22], "hide": [3, 10], "cannot": [3, 5, 8, 10, 13, 16, 17, 19, 22, 25], "onc": [3, 5, 9, 13, 17, 18, 19, 25], "No": [3, 5, 11, 22], "variabl": [3, 5, 6, 12, 13, 17, 18, 22], "depend": [3, 5, 6, 8, 9, 10, 13, 15, 17, 20, 22], "order": [3, 5, 8, 9, 12, 13, 17, 19, 22], "later": [3, 18, 22], "earlier": 3, "find": [3, 10, 22], "uniqu": [3, 5, 7, 13, 15, 22, 25], "being": [3, 5, 10, 19, 22], "derefer": [3, 18, 19, 23], "deref": [3, 5, 10, 22], "chain": 3, "continu": [3, 15, 22], "candid": [3, 17], "treat": [3, 5, 10, 11, 13, 14, 15, 17], "index": [3, 8, 12, 17, 18, 19, 21, 22], "posit": [3, 5, 13, 19, 22], "selector": [3, 5], "proce": [3, 5, 13, 17, 18, 19, 21, 22, 25], "For": [3, 8, 10, 16, 19, 22], "try": [3, 5, 15], "exist": [3, 10, 15, 22, 25], "stop": [3, 5], "receiv": [3, 5, 15, 16, 18], "lookup": 3, "arrai": [3, 9, 12, 18, 19, 25], "slice": [3, 5, 18], "immut": [3, 5, 6, 18, 19, 22, 25], "borrow": [3, 12, 25], "mutabl": [3, 5, 13, 18, 19, 24, 25], "inher": [3, 11], "unifi": [3, 5, 9, 19, 22], "calle": [3, 5], "individu": [3, 16, 17, 22], "leftmost": 3, "direct": [3, 11, 16, 17, 22], "examin": 3, "innermost": [3, 5, 18, 22], "outermost": [3, 18], "what": [3, 10], "expand": [3, 5, 10, 17], "rightmost": 3, "left": [3, 5, 7, 13, 15, 17, 18, 19, 22], "right": [3, 5, 7, 13, 15, 16, 17, 18, 19, 22], "handler": 4, "tier": 4, "handl": [4, 13], "scheme": 4, "possibli": [4, 17, 19], "absent": [4, 22], "erron": 4, "comput": [4, 5, 6, 10, 12, 16, 22, 25], "signal": 4, "whether": [4, 5, 10, 13, 15, 16, 22], "some": [4, 5, 10, 13, 19, 21, 22, 25], "none": [4, 5, 13, 19], "complet": [4, 10, 13, 22], "successfulli": [4, 21], "err": 4, "abnorm": [4, 10], "semant": [4, 5, 6, 8, 10, 13, 14, 18, 19, 21, 25], "runtim": [4, 5, 10, 14, 18, 21, 22], "flow": [4, 5, 7, 18, 25], "halt": 4, "resum": 4, "panic_handl": 4, "wa": [4, 5, 10, 11, 16, 17], "terribl": 4, "mistak": 4, "immedi": [4, 10, 18], "expressionwithblock": [5, 10, 21], "expressionwithoutblock": [5, 10, 21], "asyncblockexpress": [5, 10], "blockexpress": [5, 7, 9, 10, 21], "ifexpress": [5, 10], "ifletexpress": [5, 10], "loopexpress": [5, 10], "matchexpress": [5, 10], "unsafeblockexpress": [5, 10], "namedblockexpress": 5, "arrayexpress": [5, 10], "awaitexpress": [5, 10], "breakexpress": [5, 10], "callexpress": [5, 10], "closureexpress": [5, 10], "continueexpress": [5, 10], "fieldaccessexpress": [5, 10], "indexexpress": [5, 10], "literalexpress": [5, 9, 10], "methodcallexpress": [5, 10], "operatorexpress": [5, 10], "parenthesizedexpress": [5, 10], "pathexpress": [5, 10, 19], "rangeexpress": [5, 10], "returnexpress": [5, 10], "structexpress": [5, 10], "tupleexpress": [5, 10], "underscoreexpress": [5, 10, 13], "expressionlist": 5, "leftoperand": [5, 10], "rightoperand": [5, 10], "subjectexpress": [5, 10], "categori": [5, 8, 15, 17, 22], "subjectletexpress": [5, 10], "lazybooleanexpress": [5, 10], "side": [5, 10, 13], "run": [5, 8, 10], "structur": [5, 12, 13, 19], "involv": [5, 10, 19, 22], "hand": [5, 10, 13], "achiev": [5, 10, 14, 21], "anywher": 5, "do": [5, 15, 16, 22], "destruct": [5, 12, 23, 25], "scalar": [5, 9, 12, 19], "interior": [5, 18, 25], "address": [5, 10, 13, 22], "unsiz": [5, 15, 22], "coercion": 5, "consid": [5, 10, 11, 15, 17, 18, 20, 22], "builtin": 5, "insid": [5, 13, 15, 17, 19, 22], "repetit": [5, 8, 9], "discrimin": [5, 9, 22], "ptr": 5, "addr_of": 5, "whenev": 5, "need": 5, "reach": [5, 13], "normal": [5, 10, 15, 16], "subexpress": [5, 22], "reachabl": [5, 25], "temporari": [5, 12, 18], "derefmut": [5, 22], "indexmut": 5, "held": 5, "hello": 5, "entiti": [5, 12, 16], "static_vari": 5, "push": [5, 13, 21], "statementlist": 5, "tail": [5, 7, 18, 22], "lexic": [5, 12, 17, 19, 22], "least": [5, 9, 10, 11, 16, 17, 18, 22], "broke": 5, "out": [5, 9, 13, 16, 18, 22], "fn_call": 5, "move": [5, 7, 15, 18, 19, 22], "encapsul": [5, 9, 10, 11, 13, 17, 22], "asynchron": [5, 10, 12], "anonym": [5, 22, 25], "unsafeti": [5, 12, 22], "unsafe_fn_cal": 5, "arithmeticexpress": [5, 10], "assignmentexpress": [5, 10], "bitexpress": [5, 10], "borrowexpress": [5, 10], "comparisonexpress": [5, 10], "compoundassignmentexpress": [5, 10], "dereferenceexpress": [5, 10], "errorpropagationexpress": [5, 10], "negationexpress": [5, 10], "typecastexpress": [5, 10], "simpli": 5, "would": [5, 22], "unalign": 5, "repr": [5, 22], "ref_answ": 5, "deref_mut": 5, "dangl": 5, "deref_asnw": 5, "branch": [5, 22], "controlflow": 5, "fromresidu": 5, "from_residu": 5, "try_to_pars": 5, "parseinterror": 5, "try_som": 5, "val": 5, "negationoper": 5, "bitwisenegationoper": 5, "signnegationoper": 5, "Not": [5, 15, 16, 22], "neg": [5, 10, 22], "bitwis": 5, "neither": [5, 22], "nor": [5, 22], "sign": [5, 8, 15, 22], "invert": 5, "fit": [5, 16], "occur": [5, 10, 17, 18, 22], "possibl": [5, 8, 10, 16, 17, 18, 19, 22, 25], "additionexpress": [5, 10], "divisionexpress": [5, 10], "multiplicationexpress": [5, 10], "remainderexpress": [5, 10], "subtractionexpress": [5, 10], "addit": [5, 6, 8, 16, 17, 22], "left_operand": 5, "right_operand": 5, "divis": 5, "div": [5, 22], "mul": [5, 22], "remaind": 5, "rem": 5, "subtract": 5, "sub": [5, 22], "both": [5, 7, 8, 10, 11, 13, 15, 19, 22, 25], "sum": [5, 22], "unsign": [5, 22], "complement": 5, "quotient": 5, "0": [5, 9, 10, 13, 15, 16, 17, 18, 19, 21, 22, 25], "product": [5, 10, 16, 22], "bitandexpress": [5, 10], "bitorexpress": [5, 10], "bitxorexpress": [5, 10], "shiftleftexpress": [5, 10], "shiftrightexpress": [5, 10], "bitand": [5, 22], "bitor": [5, 22], "xor": [5, 22], "exclus": [5, 10, 15, 16, 22], "bitxor": [5, 22], "shift": [5, 15, 22], "shl": [5, 13, 22], "shr": [5, 22], "0b1010": 5, "0b1100": 5, "0b0011": 5, "0b1001": 5, "equalsexpress": [5, 10], "greaterthanexpress": [5, 10], "greaterthanorequalsexpress": [5, 10], "lessthanexpress": [5, 10], "lessthanorequalsexpress": [5, 10], "notequalsexpress": [5, 10], "compar": [5, 10, 22], "take": [5, 8, 18, 22], "equal": [5, 13, 15, 19], "test": [5, 10], "greater": [5, 13, 15, 19, 22], "relationship": [5, 10], "partialord": 5, "gt": 5, "ge": [5, 13], "lt": 5, "le": 5, "inequ": [5, 10], "109": [5, 10], "lazyandexpress": [5, 10], "lazyorexpress": [5, 10], "short": [5, 10, 13], "circuit": [5, 10], "typespecificationwithoutbound": [5, 22], "describ": [5, 8, 10, 15, 16, 17, 18, 22], "characterist": [5, 10, 13], "special": [5, 10, 13, 15, 16], "convert": [5, 10, 22, 25], "code": [5, 6, 8, 13, 15, 16, 20, 22], "v": [5, 13, 19, 22], "machin": 5, "smaller": [5, 13], "truncat": 5, "n": [5, 9, 10, 13, 15, 17, 19, 20, 22], "larger": 5, "round": [5, 22], "In": [5, 8, 9, 10, 16, 17, 22], "nan": [5, 13], "satur": [5, 13], "exce": [5, 8, 22], "infin": 5, "minimum": [5, 22], "neg_infin": 5, "closest": 5, "prefer": [5, 8, 16], "signific": 5, "digit": 5, "halfwai": 5, "perfect": 5, "lossless": 5, "nearest": [5, 22], "assigneeoperand": [5, 10], "valueoperand": [5, 10], "drop": [5, 12, 13, 21, 25], "uniniti": [5, 18, 21, 25], "lower": 5, "full": 5, "ref": [5, 10, 15, 18, 19], "irrefut": [5, 7, 19, 21], "becom": [5, 15], "four": 5, "additionassignmentexpress": [5, 10], "bitandassignmentexpress": [5, 10], "bitorassignmentexpress": [5, 10], "bitxorassignmentexpress": [5, 10], "divisionassignmentexpress": [5, 10], "multiplicationassignmentexpress": [5, 10], "remainderassignmentexpress": [5, 10], "shiftleftassignmentexpress": [5, 10], "shiftrightassignmentexpress": [5, 10], "subtractionassignmentexpress": [5, 10], "assignedoperand": [5, 10], "modifyingoperand": [5, 10], "calcul": [5, 10, 22], "addassign": [5, 22], "bitandassign": [5, 22], "bitorassign": [5, 22], "bitxorassign": [5, 22], "divassign": [5, 22], "mulassign": [5, 22], "remassign": 5, "shlassign": [5, 22], "shrassign": [5, 22], "subassign": [5, 22], "appropri": [5, 8, 16], "below": [5, 8, 13, 16, 22], "add_assign": 5, "assigned_operand": 5, "modifying_operand": 5, "bitand_assign": 5, "bitor_assign": 5, "bitxor_assign": 5, "div_assign": 5, "mul_assign": 5, "rem_assign": 5, "shl_assign": 5, "shr_assign": 5, "sub_assign": 5, "59": [5, 10, 13, 15, 22], "81": [5, 10, 22], "9402": 5, "placehold": [5, 9, 10, 22, 25], "pair": [5, 19], "second": [5, 8, 17, 18, 19, 22], "arrayelementexpress": 5, "arrayelementconstructor": [5, 10], "arrayrepetitionconstructor": [5, 10], "repeatoperand": [5, 10], "sizeoperand": [5, 10, 22], "how": [5, 6, 10, 13, 16, 17, 18], "mani": [5, 10, 17], "copi": [5, 8, 16, 18, 19, 22, 25], "dimension": 5, "nine": 5, "indexedoperand": [5, 10], "indexingoperand": [5, 10], "index_mut": 5, "indexed_operand": 5, "indexing_operand": 5, "tupleinitializerlist": 5, "t1": [5, 11, 22], "t2": [5, 11, 22], "tn": [5, 11, 22], "th": 5, "v1": 5, "v2": 5, "vn": 5, "42i16": 5, "constructe": 5, "structexpressioncont": 5, "baseiniti": [5, 10], "fieldinitializerlist": 5, "fieldiniti": 5, "indexediniti": [5, 10], "namediniti": [5, 10], "shorthandiniti": [5, 10], "fieldindex": [5, 10, 19], "shorthand": [5, 19], "record": [5, 22, 23], "occup": 5, "engin": 5, "garden": 5, "employe": [5, 16], "ag": [5, 22], "compens": 5, "alic": 5, "250_000": 5, "bob": 5, "int": [5, 22], "u1": 5, "u2": 5, "calloperand": [5, 10], "argumentoperandlist": 5, "adjusted_call_operand": 5, "argument_operand_tupl": 5, "adjust": 5, "wrap": [5, 13], "call_mut": 5, "call_onc": 5, "resolut": [5, 12, 22], "receiveroperand": [5, 10], "methodoperand": [5, 10], "command": [5, 22], "clickcommand": 5, "someon": 5, "click": 5, "me": 5, "containeroperand": [5, 10], "fieldselector": [5, 10], "indexedfieldselector": [5, 10], "namedfieldselector": [5, 10], "write": [5, 13, 16, 24], "mem": [5, 22], "manuallydrop": [5, 22], "transmut": 5, "write_typ": 5, "read_typ": 5, "field_bit": 5, "invalid": [5, 19], "closureparameterlist": 5, "closurebodi": [5, 10], "closurebodywithreturntyp": [5, 10], "returntypewithoutbound": [5, 22], "closureparamet": [5, 10], "patternwithoutaltern": [5, 7, 10, 19, 21], "typeascript": [5, 7, 9, 10, 21, 22, 25], "portion": [5, 10, 16], "yield": [5, 7, 10, 15, 17, 19, 22], "bind": [5, 7, 9, 12, 13, 16, 17, 18, 20, 21, 22, 25], "site": [5, 7, 17, 22], "shadow": [5, 7, 12, 19], "instanti": [5, 10, 22], "do_ten_tim": 5, "loopcont": 5, "nonkeywordidentifi": [5, 15, 17, 22], "forloopexpress": [5, 10], "infiniteloopexpress": [5, 10], "whileletloopexpress": [5, 10], "whileloopexpress": [5, 10], "loopbodi": [5, 10], "criterion": [5, 10], "hold": [5, 9, 10, 13, 15, 16, 18, 22, 25], "longer": [5, 10], "iter": [5, 9, 17, 18, 22], "intoiter": [5, 22], "subject_express": 5, "into_it": 5, "next_valu": 5, "favorite_fruit": 5, "appl": 5, "pear": 5, "strawberri": 5, "fruit": 5, "eat": 5, "indefinit": [5, 10], "restart": [5, 10], "am": 5, "aliv": 5, "iterationexpress": [5, 10], "counter": [5, 13], "against": [5, 10, 16, 17, 18, 19, 21], "subject_let_express": 5, "favorite_anim": 5, "cat": [5, 15, 22], "dog": [5, 22], "otter": [5, 22], "anim": [5, 22], "pop": [5, 13, 21], "pet": 5, "labelind": [5, 10], "upto": [5, 18], "game_loop": 5, "is_paus": 5, "rangefromexpress": [5, 10], "rangefromtoexpress": [5, 10], "rangefullexpress": [5, 10], "rangeinclusiveexpress": [5, 10], "rangetoexpress": [5, 10], "rangetoinclusiveexpress": [5, 10], "rangeexpressionlowbound": [5, 10], "rangeexpressionhighbound": [5, 10], "low": [5, 13, 15, 17, 19, 25], "high": [5, 19], "rangefrom": 5, "range_expression_low_bound": 5, "exclud": [5, 10, 13, 15, 16, 17, 19], "range_expression_high_bound": 5, "cover": [5, 10], "whole": [5, 8, 10, 15, 16, 22], "rangeful": 5, "inclus": [5, 8, 15, 16, 19, 22], "rangeinclus": 5, "rangeto": 5, "rangetoinclus": 5, "86": [5, 10, 22], "dawn": 5, "dusk": 5, "elseexpress": [5, 10], "els": [5, 18, 21, 22], "youth": 5, "64": [5, 10, 13, 15, 22], "adult": 5, "senior": 5, "dish": 5, "ham": 5, "egg": 5, "serv": 5, "matcharmlist": 5, "intermediatematcharm": [5, 10], "finalmatcharm": [5, 10], "matcharmmatch": [5, 10], "matcharmguard": [5, 10], "tri": [5, 10, 17], "succe": [5, 10, 19, 25], "matcher": [5, 17], "intermedi": [5, 22, 25], "final": [5, 13, 15], "filter": [5, 10], "happen": 5, "taken": [5, 10, 17], "togeth": [5, 8, 13], "number_of_th": 5, "few": 5, "you": [5, 16], "ow": 5, "lot": 5, "design": [5, 16], "destroi": 5, "frame": [5, 13], "max": 5, "futureoperand": [5, 10], "suspend": [5, 10], "intofutur": 5, "into_futur": 5, "new_uncheck": 5, "pend": [5, 22], "expensive_funct": 5, "presenc": [5, 10, 22, 24], "highest": 5, "lowest": 5, "environ": [5, 8, 17, 22], "mode": [5, 12, 13, 18], "mechan": [5, 10, 16, 18, 22], "By": [5, 18], "compat": [5, 9, 10, 22], "li": [5, 10], "There": 5, "discard": [5, 13], "foreign": [6, 8], "interfac": [6, 16, 22], "emploi": [6, 10, 17, 18, 25], "layout": 6, "affect": 6, "export_nam": 6, "link": [6, 10, 16, 20], "link_sect": 6, "no_mangl": [6, 15], "abispecif": [6, 7, 10, 22], "abikind": [6, 10, 13], "rawstringliter": [6, 10, 15, 19], "applic": [6, 13, 16], "dictat": [6, 10], "cross": [6, 10, 16], "unwind": [6, 13], "permit": [6, 8, 16, 22], "oper": [6, 12, 13, 17, 22, 24, 25], "These": 6, "limit": [6, 8, 10, 16, 22], "aapc": [6, 13], "cdecl": [6, 13, 22], "x86_32": 6, "fastcal": [6, 13], "msvc": 6, "__fastcal": 6, "gcc": 6, "clang": 6, "__attribute__": 6, "stdcall": [6, 13], "win32": 6, "api": 6, "sysv64": [6, 13], "x86_64": 6, "vectorcal": 6, "__vectorcal": 6, "win64": [6, 13], "externalblock": [6, 10, 14], "externitem": 6, "externalitemwithvis": 6, "staticdeclar": [6, 10, 14, 22, 25], "uncheck": [6, 10], "max_length": 6, "size_t": 6, "compress": 6, "input_length": 6, "compressed_length": 6, "c_int": 6, "log": 6, "msg": 6, "c_char": 6, "functionqualifierlist": [6, 7, 10], "inherit": [6, 9], "functionbodi": [6, 7, 10], "functionparamet": [6, 7, 10, 22], "functionparametervariadicpart": [6, 7], "befor": [6, 10, 13, 18], "functionparameterlist": 7, "whereclaus": [7, 9, 10, 11, 22], "selfparamet": 7, "functionparameterpattern": [7, 22], "shorthandself": 7, "typedself": [7, 22], "lifetimeind": [7, 9, 10, 15, 22], "role": [7, 10], "signatur": [7, 9, 11, 22], "identif": [7, 10, 16], "encompass": [7, 10], "callabl": [7, 10, 17], "async_fn": 7, "param": [7, 17], "param_typ": 7, "return_typ": 7, "entri": [7, 10, 13], "word": [7, 8, 10, 13, 15, 22], "eucledian_dist": 7, "x_delta_squar": 7, "powi": [7, 11], "y_delta_squar": 7, "y": [7, 13, 18, 19], "sqrt": 7, "page": [8, 10, 12, 16, 23], "document": [8, 15, 16, 23], "influenc": 8, "ada": 8, "manual": 8, "202x": [8, 16], "edit": [8, 16], "well": [8, 10, 17, 22], "guidebook": 8, "rustonomicon": 8, "particular": [8, 10, 13, 15, 16, 17], "outlin": [8, 15, 20, 22], "titl": [8, 16], "organ": [8, 13, 15, 22], "formal": 8, "term": [8, 16], "syntact": [8, 15, 17, 18], "consult": [8, 16], "licens": [8, 12], "relev": [8, 13], "copyright": 8, "notic": 8, "rustc": 8, "compil": [8, 12, 16, 22], "ship": 8, "ferrocen": [8, 10, 23], "understand": 8, "As": [8, 9], "doubt": 8, "releas": [8, 18, 22], "over": [8, 15, 22], "claim": [8, 16], "correct": 8, "made": [8, 16, 17, 22], "review": 8, "effort": 8, "intend": 8, "discuss": [8, 16], "ground": 8, "evolut": 8, "manag": [8, 10, 16, 18], "develop": [8, 16], "translat": [8, 16], "combin": [8, 13, 16, 22], "violat": [8, 10], "detect": 8, "attempt": [8, 10, 17, 22], "transform": [8, 10, 16, 17], "speed": 8, "rel": [8, 10], "capac": 8, "appendic": 8, "glossari": [8, 12], "norm": 8, "materi": 8, "head": 8, "subchapt": 8, "divid": [8, 15], "topic": 8, "fact": 8, "obei": 8, "verifi": 8, "situat": [8, 10], "unbound": [8, 10], "illustr": 8, "correctli": 8, "so": [8, 15, 16, 17], "larg": 8, "rais": [8, 22], "variat": [8, 10, 22], "those": [8, 10, 13, 16, 19, 22], "imposs": 8, "impract": 8, "avoid": 8, "prescrib": 8, "interact": 8, "propag": [8, 22], "capabl": [8, 10, 13, 16], "narr": 8, "composit": 8, "simpl": [8, 13], "backu": [8, 10], "naur": [8, 10], "monospac": 8, "font": 8, "pascalcas": 8, "floatexpon": [8, 15], "bold": 8, "proc_macro_der": [8, 17], "tt": [8, 17], "punctuat": [8, 12, 17, 22], "preced": [8, 9, 12, 17, 19], "revers": [8, 10, 15, 18], "solidu": [8, 10, 15], "escap": [8, 15], "question": [8, 15], "integersuffix": [8, 10, 15], "asterisk": 8, "plu": [8, 15], "macromatch": [8, 10, 17], "l": [8, 13, 22], "h": [8, 13, 15], "rang": [8, 12, 15, 17, 22], "hexadecimaldigit": [8, 15], "squar": [8, 15, 17], "bracket": [8, 10, 13, 15, 16], "tild": 8, "vertic": [8, 15, 19], "line": [8, 13, 15, 17, 19, 25], "altern": [8, 17, 18, 19, 21], "parenthes": [8, 12], "accompani": 8, "updat": [8, 19], "qualif": 8, "accur": 8, "throughout": 8, "ital": 8, "presum": [8, 13], "similar": [8, 10], "elsewher": 8, "mathemat": 8, "crc": 8, "concis": 8, "encyclopedia": 8, "webster": 8, "third": [8, 16, 22], "intern": [8, 10, 13], "dictionari": 8, "english": 8, "programm": 8, "genericparamet": 9, "constantparamet": [9, 10, 22], "lifetimeparamet": [9, 10], "typeparamet": [9, 10, 22], "constantparameteriniti": [9, 10], "lifetimeindicationlist": [9, 22], "typeparameteriniti": [9, 10], "satisfi": [9, 10, 11, 17, 19], "initializationtyp": [9, 10, 22], "opt": [9, 22], "usag": [9, 18, 25], "generic_funct": 9, "the_refer": 9, "whereclausepredicatelist": 9, "whereclausepred": [9, 10], "lifetimeboundpred": [9, 10], "typeboundpred": [9, 10, 22], "forgenericparameterlist": [9, 10, 22], "trivial": 9, "higher": [9, 22], "rank": [9, 22], "genericargu": 9, "bindingargu": 9, "constantargu": [9, 10], "lifetimeargu": [9, 10], "typeargu": [9, 10], "func": 9, "u": [9, 15, 20, 22], "measur": [9, 10, 22], "fulfil": 9, "outliv": [9, 22], "infer": [9, 15, 18, 19, 21], "elid": [9, 22], "come": [9, 17], "b": [10, 13, 15, 16, 18, 19, 21, 22], "arch": [10, 13, 24], "asm": [10, 12, 24], "might": [10, 13], "overwritten": [10, 13], "dure": [10, 13, 17, 19, 22, 25], "abiclobb": [10, 13], "store": [10, 17, 22, 25], "ascrib": 10, "arraytypespecif": [10, 22], "assemblycodeblock": [10, 13], "request": [10, 13], "assembl": [10, 13], "action": [10, 13, 16], "assemblyinstruct": [10, 13], "assemblyopt": [10, 13], "addition": [10, 22], "suspens": 10, "attach": [10, 16, 17], "60": [10, 13, 15, 22], "constitu": [10, 22], "61": [10, 13, 15, 22], "62": [10, 13, 15, 22], "63": [10, 13, 15, 22], "65": [10, 13, 22], "binaryliter": [10, 15], "66": [10, 13, 19, 22], "67": [10, 13, 22], "68": [10, 13, 22], "69": [10, 13, 22], "70": [10, 13, 22], "71": [10, 13, 22], "72": [10, 13, 22], "73": [10, 22], "74": [10, 22], "75": [10, 22], "76": [10, 22], "77": [10, 22], "78": [10, 22], "79": [10, 22], "80": [10, 22], "82": [10, 22], "span": [10, 15, 19], "blockcom": [10, 15], "83": [10, 22], "84": [10, 22], "truth": [10, 15, 22], "algebra": [10, 15, 22], "85": [10, 22], "booleanliter": [10, 15, 19], "87": [10, 22], "88": [10, 22], "89": [10, 22], "temporarili": [10, 18], "perman": [10, 18], "90": [10, 22], "constraint": [10, 11, 13, 19, 22], "typebound": [10, 22], "91": [10, 22], "boundpattern": [10, 19], "92": [10, 22], "93": [10, 22], "94": [10, 22], "95": [10, 22], "96": [10, 22], "97": [10, 22], "byteliter": [10, 15, 19], "98": [10, 22], "asciicharact": [10, 15], "bytestringliter": [10, 15, 19], "99": [10, 22], "iso": 10, "iec": 10, "9899": 10, "2018": [10, 16], "100": [10, 22], "lai": [10, 22], "interoper": [10, 22], "101": [10, 22], "102": [10, 22], "103": [10, 22], "104": [10, 22], "105": [10, 22], "106": [10, 22], "macrorulesdeclar": [10, 14, 17], "107": 10, "108": 10, "110": 10, "111": 10, "112": 10, "113": 10, "114": 10, "115": 10, "characterliter": [10, 15, 19], "116": 10, "117": 10, "118": 10, "119": 10, "120": 10, "map": 10, "121": 10, "explan": [10, 15], "122": 10, "123": 10, "124": 10, "125": 10, "126": 10, "127": [10, 22], "128": [10, 22], "129": 10, "130": 10, "131": 10, "132": 10, "133": 10, "134": 10, "135": 10, "constantiniti": [10, 25], "136": 10, "137": 10, "138": 10, "139": 10, "make": [10, 16, 22], "narrow": 10, "140": 10, "piec": 10, "instanc": [10, 15], "141": 10, "142": 10, "143": 10, "144": 10, "beyond": 10, "145": 10, "146": 10, "tree": [10, 20], "147": 10, "externalcrateimport": [10, 14, 20], "148": 10, "crateind": [10, 20], "149": 10, "150": 10, "151": 10, "152": 10, "153": 10, "concurr": [10, 12, 23], "154": 10, "155": 10, "156": 10, "157": 10, "deconstruct": [10, 19], "158": 10, "guarante": [10, 13, 22], "about": [10, 22], "159": 10, "160": 10, "161": 10, "162": 10, "163": 10, "164": 10, "165": 10, "recov": [10, 18], "resourc": [10, 18], "goe": [10, 18], "166": 10, "167": 10, "168": 10, "directionmodifi": [10, 13], "169": 10, "opaqu": [10, 22], "170": 10, "discriminantiniti": [10, 22], "171": [10, 22], "172": 10, "173": 10, "origin": [10, 13, 16, 18, 22], "174": 10, "175": 10, "176": 10, "177": 10, "178": 10, "179": 10, "180": 10, "govern": [10, 16, 18], "181": 10, "prematur": [10, 18], "182": 10, "183": 10, "184": 10, "185": 10, "186": 10, "elementtyp": [10, 22], "187": 10, "188": 10, "omit": 10, "189": 10, "190": 10, "0x3b": [10, 17, 21, 22], "semicolon": [10, 15, 17, 21, 22], "191": 10, "192": 10, "193": 10, "194": 10, "enumdeclar": [10, 14, 17, 22], "195": 10, "196": 10, "enumvari": [10, 22], "197": 10, "198": 10, "199": 10, "200": 10, "0x5c": [10, 15], "encod": 10, "0x09": [10, 15], "horizont": [10, 15], "tabul": [10, 15], "201": 10, "202": 10, "203": 10, "204": 10, "205": 10, "206": 10, "explicitregisternam": [10, 13], "207": 10, "208": 10, "209": 10, "210": 10, "211": 10, "ignor": [10, 13, 19, 21, 22], "expressionstat": [10, 21], "212": 10, "213": 10, "214": 10, "215": 10, "216": 10, "217": 10, "218": 10, "ieee": [10, 22], "754": [10, 22], "2008": [10, 22], "binary32": [10, 22], "219": 10, "binary64": [10, 22], "220": 10, "221": 10, "222": 10, "223": 10, "224": 10, "225": 10, "nth": 10, "226": 10, "recordstructfieldlist": [10, 22], "tuplestructfieldlist": [10, 22], "227": 10, "228": 10, "229": 10, "230": 10, "231": 10, "fraction": [10, 15], "floatliter": [10, 15], "232": 10, "compon": [10, 13, 15], "floatsuffix": [10, 15], "233": 10, "234": 10, "235": 10, "236": 10, "237": 10, "238": 10, "239": 10, "macrofragmentspecifi": [10, 17], "240": 10, "241": 10, "242": 10, "243": 10, "244": 10, "245": 10, "246": 10, "functionpointertypespecif": [10, 22], "247": 10, "functionpointertypeparamet": [10, 22], "248": 10, "249": 10, "250": 10, "251": 10, "directli": [10, 22], "252": 10, "relax": [10, 11], "253": 10, "254": 10, "255": 10, "256": 10, "257": 10, "258": 10, "259": 10, "260": 10, "261": 10, "262": 10, "263": 10, "264": 10, "265": 10, "266": 10, "267": 10, "268": 10, "269": 10, "270": 10, "271": 10, "272": 10, "273": 10, "274": 10, "halfopenrangepattern": [10, 19], "275": 10, "hexadecimalliter": [10, 15], "276": 10, "277": 10, "them": [10, 13, 17, 22], "aim": [10, 17], "elimin": [10, 17], "interfer": [10, 17], "278": 10, "279": 10, "280": 10, "281": 10, "282": 10, "283": 10, "284": 10, "285": 10, "identifierpattern": [10, 19], "286": 10, "287": 10, "288": 10, "289": 10, "290": 10, "291": 10, "292": 10, "293": 10, "294": 10, "mutat": [10, 18, 22, 25], "295": 10, "296": 10, "297": 10, "298": 10, "known": [10, 22], "impltraittypespecif": [10, 22], "impltraittypespecificationonebound": [10, 22], "299": 10, "300": 10, "implementationbodi": [10, 11], "301": 10, "302": 10, "303": 10, "implementedtrait": [10, 11], "304": 10, "implementingtyp": [10, 11, 22], "305": 10, "306": 10, "307": 10, "byproduct": [10, 22], "308": 10, "309": 10, "inclusiverangepattern": [10, 19], "310": 10, "311": 10, "312": 10, "313": 10, "314": 10, "315": 10, "indexeddeconstructor": [10, 19], "316": 10, "317": 10, "318": 10, "319": 10, "320": 10, "321": 10, "322": 10, "deduc": [10, 22], "inferredtyp": [10, 22], "323": 10, "324": 10, "325": 10, "inherentimplement": [10, 11], "326": 10, "327": 10, "328": 10, "329": 10, "integr": [10, 13], "330": 10, "inlinemodulespecif": [10, 20], "331": 10, "332": 10, "333": 10, "334": 10, "335": 10, "inout": [10, 13], "inlateout": [10, 13], "336": 10, "inputregisterexpress": [10, 13], "337": 10, "inputoutputregisterexpress": [10, 13], "338": 10, "integerliter": [10, 15], "339": 10, "340": 10, "341": 10, "342": 10, "343": 10, "344": 10, "345": 10, "346": 10, "platform": [10, 22], "wide": [10, 22], "347": 10, "348": 10, "349": 10, "350": 10, "351": 10, "352": 10, "353": 10, "354": 10, "355": 10, "offset": [10, 22], "356": 10, "357": 10, "358": 10, "359": 10, "360": 10, "361": 10, "362": 10, "letiniti": [10, 21], "363": 10, "letstat": [10, 21], "364": 10, "365": 10, "no_main": [10, 20], "366": 10, "longev": [10, 22], "367": 10, "368": 10, "369": 10, "370": 10, "insert": [10, 22], "371": 10, "372": 10, "stand": [10, 15, 22], "undetermin": [10, 22], "373": 10, "374": 10, "linecom": [10, 15], "375": 10, "376": 10, "377": 10, "literalpattern": [10, 19], "378": [10, 22], "379": 10, "380": 10, "381": 10, "382": 10, "383": 10, "384": 10, "custom": [10, 17], "385": 10, "386": 10, "387": 10, "388": 10, "389": 10, "390": 10, "391": 10, "392": 10, "macrorepetitionmatch": [10, 17], "393": 10, "macrorepetitiontranscrib": [10, 17], "394": 10, "macrorul": [10, 17], "395": 10, "396": 10, "macrotranscrib": [10, 17], "397": 10, "398": 10, "399": 10, "400": 10, "401": 10, "402": 10, "403": 10, "404": 10, "macrometavari": [10, 17], "405": 10, "macrometavariableind": [10, 17], "406": 10, "407": 10, "408": 10, "409": 10, "410": 10, "411": 10, "412": 10, "moduledeclar": [10, 14, 20], "413": 10, "414": 10, "415": 10, "416": 10, "417": 10, "418": 10, "419": 10, "420": 10, "421": 10, "422": 10, "423": 10, "424": 10, "425": 10, "426": 10, "427": 10, "428": 10, "429": 10, "430": 10, "431": 10, "432": 10, "433": 10, "nameddeconstructor": [10, 19], "434": 10, "435": 10, "436": 10, "437": 10, "438": 10, "439": 10, "techniqu": 10, "mantissa": 10, "440": 10, "441": 10, "442": 10, "nevertyp": [10, 22], "443": 10, "444": 10, "445": 10, "446": 10, "447": 10, "numericliter": [10, 15, 19], "448": 10, "449": 10, "450": 10, "451": 10, "obsoleterangepattern": [10, 19], "452": 10, "octalliter": [10, 15], "453": 10, "454": 10, "455": 10, "nullifi": [10, 22], "456": 10, "457": 10, "458": 10, "459": 10, "460": 10, "outlinemodulespecif": [10, 20], "461": 10, "462": 10, "lateout": [10, 13], "463": 10, "outputregisterexpress": [10, 13], "464": 10, "465": 10, "466": 10, "central": [10, 18], "467": 10, "468": 10, "469": 10, "parenthesizedpattern": [10, 19], "470": 10, "disambigu": [10, 22], "parenthesizedtypespecif": [10, 22], "471": 10, "472": 10, "473": 10, "474": 10, "475": 10, "476": 10, "pathpattern": [10, 19], "477": 10, "478": 10, "479": 10, "criteria": [10, 19], "480": 10, "481": 10, "482": 10, "patternwithoutrang": [10, 19], "483": 10, "484": 10, "485": 10, "486": 10, "536": 10, "487": 10, "488": 10, "489": 10, "490": 10, "491": 10, "492": 10, "493": 10, "494": 10, "495": 10, "496": 10, "497": 10, "498": 10, "499": 10, "500": 10, "501": 10, "502": 10, "503": 10, "504": 10, "505": 10, "506": 10, "507": 10, "508": 10, "fall": [10, 19], "rangepattern": [10, 19], "509": 10, "rangepatternbound": [10, 19], "510": 10, "rangepatternhighbound": [10, 19], "511": 10, "rangepatternlowbound": [10, 19], "512": 10, "513": 10, "514": 10, "515": 10, "516": 10, "517": 10, "518": 10, "recogn": [10, 15, 17], "rawbytestringliter": [10, 15, 19], "519": 10, "520": 10, "live": 10, "rawpointertypespecif": [10, 22], "521": 10, "522": 10, "523": 10, "524": 10, "525": 10, "526": 10, "recordstructdeclar": [10, 22], "527": 10, "recordstructfield": [10, 22], "528": 10, "recordstructpattern": [10, 19], "529": 10, "530": 10, "531": 10, "532": 10, "533": 10, "534": 10, "referencepattern": [10, 19], "535": 10, "referencetypespecif": [10, 22], "537": 10, "abil": [10, 19], "538": 10, "539": 10, "540": 10, "541": 10, "hardwar": [10, 13, 16], "542": 10, "registerargu": [10, 13], "543": 10, "544": 10, "545": 10, "registerclassnam": [10, 13], "546": 10, "registerexpress": [10, 13], "547": 10, "belong": [10, 13, 17], "registernam": [10, 13], "548": 10, "substr": [10, 13], "delimit": [10, 13, 15, 17], "0x7b": [10, 13], "curli": [10, 13, 15], "0x7d": [10, 13], "549": 10, "0x3a": [10, 13], "colon": [10, 13, 15], "550": 10, "551": 10, "552": 10, "553": 10, "554": 10, "555": 10, "macrorepetitionoper": [10, 17], "556": 10, "557": 10, "558": 10, "reservedkeyword": [10, 15], "559": 10, "560": 10, "restpattern": [10, 19], "561": 10, "562": 10, "563": 10, "564": 10, "565": 10, "566": 10, "567": 10, "568": 10, "569": 10, "570": 10, "571": 10, "572": 10, "573": 10, "574": 10, "575": 10, "576": 10, "adjac": [10, 15], "577": 10, "578": 10, "579": 10, "580": 10, "581": 10, "582": 10, "583": 10, "584": 10, "585": 10, "586": 10, "587": 10, "588": 10, "shorthanddeconstructor": [10, 19], "589": 10, "590": 10, "591": 10, "simplebytestringliter": [10, 15], "592": 10, "593": 10, "594": 10, "595": 10, "596": 10, "597": 10, "598": 10, "simpleregisterexpress": [10, 13], "599": 10, "simplestringliter": [10, 15, 19], "600": 10, "601": 10, "success": [10, 13, 22], "pad": [10, 22], "602": 10, "603": 10, "604": 10, "605": 10, "slicepattern": [10, 19], "606": 10, "view": [10, 22], "slicetypespecif": [10, 22], "607": 10, "sourcefil": [10, 20], "608": 10, "609": 10, "610": 10, "staticiniti": [10, 25], "611": 10, "612": 10, "613": 10, "strictkeyword": [10, 15], "614": 10, "615": 10, "616": 10, "617": 10, "618": 10, "structpattern": [10, 19], "619": 10, "structdeclar": [10, 14, 17, 22], "620": 10, "621": 10, "622": 10, "623": 10, "624": 10, "625": 10, "626": 10, "627": 10, "628": 10, "629": 10, "630": 10, "631": 10, "632": 10, "633": 10, "634": 10, "635": 10, "transit": [10, 22], "636": 10, "637": 10, "nontermin": 10, "grammar": 10, "638": 10, "639": 10, "640": 10, "641": 10, "642": 10, "643": 10, "644": 10, "645": 10, "646": 10, "647": 10, "subset": [10, 17], "648": 10, "traitdeclar": [10, 14, 22], "649": 10, "traitbodi": [10, 22], "650": 10, "traitbound": [10, 22], "651": 10, "traitimplement": [10, 11], "652": 10, "653": 10, "traitobjecttypespecif": [10, 22], "traitobjecttypespecificationonebound": [10, 22], "654": 10, "655": 10, "656": 10, "657": 10, "658": 10, "659": 10, "660": 10, "661": 10, "662": 10, "663": 10, "tuplepattern": [10, 19], "664": 10, "tuplestructdeclar": [10, 22], "665": 10, "666": 10, "tuplestructfield": [10, 22], "667": 10, "tuplestructpattern": [10, 19], "668": 10, "669": 10, "670": 10, "heterogen": [10, 22], "tupletypespecif": [10, 22], "671": 10, "672": 10, "673": 10, "674": 10, "675": 10, "676": 10, "677": 10, "678": 10, "679": 10, "independ": [10, 22], "680": 10, "681": 10, "682": 10, "683": 10, "684": 10, "685": 10, "686": 10, "687": 10, "check": [10, 18, 22], "688": 10, "689": 10, "690": 10, "691": 10, "692": 10, "693": 10, "694": 10, "695": 10, "696": 10, "697": 10, "698": 10, "underscorepattern": [10, 19], "699": 10, "700": 10, "colloqui": 10, "10646": 10, "2017": [10, 16], "univers": 10, "701": 10, "702": 10, "703": 10, "704": 10, "domain": [10, 22], "705": 10, "706": 10, "707": 10, "uniondeclar": [10, 14, 15, 17, 22], "708": 10, "709": 10, "assert": [10, 16], "710": 10, "711": 10, "unitstructdeclar": [10, 22], "712": 10, "713": 10, "714": 10, "715": 10, "716": 10, "717": 10, "718": 10, "0x5f": [10, 15, 17, 25], "719": 10, "720": 10, "721": 10, "722": 10, "723": 10, "724": 10, "725": 10, "726": 10, "727": 10, "diagnos": [10, 24], "728": 10, "729": 10, "730": 10, "731": 10, "732": 10, "733": 10, "734": 10, "unknown": 10, "735": 10, "736": 10, "737": 10, "738": 10, "739": 10, "740": 10, "741": 10, "742": 10, "743": 10, "744": 10, "stack": [10, 13, 25], "745": 10, "variadicpart": [10, 22], "746": 10, "circumst": [10, 22], "747": 10, "748": 10, "749": 10, "weakkeyword": [10, 15], "750": 10, "751": 10, "752": 10, "753": 10, "755": 10, "756": 10, "757": 10, "758": 10, "doc": [11, 15, 17, 20, 22], "namespac": [11, 12, 15, 17, 19], "shape": [11, 22], "area": [11, 22], "circl": [11, 22], "radiu": [11, 22], "set_radiu": 11, "new_radiu": 11, "pi": 11, "overlap": [11, 18, 25], "p1": 11, "p2": 11, "pn": 11, "t0": 11, "fundament": 11, "local": [11, 20, 21, 22], "At": [11, 15], "subtyp": 11, "definit": [12, 16, 17], "classif": 12, "indirect": [12, 16], "refut": 12, "tupl": [12, 18], "captur": [12, 17, 18, 22], "arithmet": [12, 22], "overflow": 12, "coher": 12, "prelud": [12, 20, 22], "ownership": [12, 16, 22, 23], "destructor": [12, 25], "abort": 12, "sync": [12, 18, 22, 25], "atom": [12, 18], "sourc": [12, 13, 15, 16, 18, 22], "condit": [12, 13, 16], "procedur": [12, 15, 20], "hygien": 12, "ffi": [12, 23], "inlin": [12, 20, 23], "assembli": [12, 23], "regist": [12, 23], "class": [12, 15, 16], "clobber": 12, "global_asm": 12, "search": 12, "aarch64": 13, "risc": 13, "x86": 13, "ah": 13, "al": 13, "ax": [13, 16], "bh": 13, "bl": 13, "bp": 13, "bpl": 13, "bx": 13, "ch": 13, "cl": 13, "cx": 13, "d": [13, 16, 18], "dh": 13, "di": 13, "dil": 13, "dl": 13, "dx": 13, "eax": 13, "ebp": 13, "ebx": 13, "ecx": 13, "edi": 13, "edx": 13, "eip": 13, "esi": 13, "esp": 13, "fa": 13, "ffr": 13, "fp": 13, "ft": 13, "gp": 13, "ip": 13, "k": 13, "lr": 13, "p": 13, "pc": 13, "q": 13, "w": [13, 22], "ra": 13, "rax": 13, "rb": 13, "rbp": 13, "rbx": 13, "rcx": 13, "rdi": 13, "rdx": 13, "rfp": 13, "rip": 13, "rsi": 13, "rsp": 13, "si": 13, "sil": 13, "sl": 13, "sp": 13, "spl": 13, "st": 13, "tmm": 13, "tp": 13, "wsp": 13, "wzr": 13, "xmm": 13, "xzr": 13, "ymm": 13, "zmm": 13, "upon": 13, "exit": 13, "x29": 13, "x30": 13, "r9": 13, "r10": 13, "r11": 13, "r12": 13, "r13": 13, "r14": 13, "r15": 13, "x0": 13, "x1": 13, "x2": 13, "x3": 13, "x4": 13, "x8": 13, "s0": 13, "x9": 13, "s1": 13, "reason": [13, 16], "x18": 13, "reserv": [13, 16], "x19": 13, "llvm": 13, "complex": 13, "r6": 13, "r7": 13, "unsupport": 13, "had": 13, "dreg": 13, "dreg_low16": 13, "dreg_low8": 13, "freg": 13, "kreg": 13, "kreg0": 13, "mmx_reg": 13, "preg": 13, "qreg": 13, "qreg_low4": 13, "qreg_low8": 13, "reg": 13, "reg_abcd": 13, "reg_byt": 13, "sreg": 13, "sreg_low16": 13, "tmm_reg": 13, "vreg": 13, "vreg_low16": 13, "x86_reg": 13, "xmm_reg": 13, "ymm_reg": 13, "zmm_reg": 13, "thumb2": 13, "thumb1": 13, "rv32e": 13, "k0": 13, "mm": 13, "x87_reg": 13, "64bit": 13, "On": 13, "upper": [13, 22], "suitabl": 13, "assign": [13, 18, 21, 22, 24], "neon": 13, "vfp2": 13, "v32": 13, "v64": 13, "avx512f": 13, "avx512bw": 13, "behav": [13, 22], "reus": 13, "left_valu": 13, "right_valu": 13, "fmt": 13, "concaten": 13, "0x0a": [13, 15], "contigu": 13, "flag": 13, "df": 13, "eflag": 13, "clear": 13, "w0": 13, "v0": 13, "b0": 13, "d0": 13, "h0": 13, "q0": 13, "d1": 13, "r0": 13, "f0": 13, "k1": 13, "xmm0": 13, "ymm0": 13, "zmm0": 13, "z": 13, "undo": 13, "2byte": 13, "4byte": 13, "8byte": 13, "ascii": 13, "asciz": 13, "alt_entri": 13, "balign": 13, "balignl": 13, "balignw": 13, "bss": 13, "byte": [13, 22], "comm": 13, "def": 13, "doubl": [13, 22], "endef": 13, "equ": 13, "equiv": 13, "eqv": 13, "fill": 13, "globl": 13, "inst": 13, "lcomm": 13, "octa": 13, "private_extern": 13, "p2align": 13, "pushsect": 13, "popsect": 13, "quad": 13, "scl": 13, "skip": 13, "sleb128": 13, "space": [13, 15], "uleb128": 13, "elf": 13, "dwarf": 13, "cfi_adjust_cfa_offset": 13, "cfi_def_cfa": 13, "cfi_def_cfa_offset": 13, "cfi_def_cfa_regist": 13, "cfi_endproc": 13, "cfi_escap": 13, "cfi_lsda": 13, "cfi_offset": 13, "cfi_person": 13, "cfi_regist": 13, "cfi_rel_offset": 13, "cfi_remember_st": 13, "cfi_restor": 13, "cfi_restore_st": 13, "cfi_return_column": 13, "cfi_same_valu": 13, "cfi_sect": 13, "cfi_signal_fram": 13, "cfi_startproc": 13, "cfi_undefin": 13, "cfi_window_sav": 13, "seh_endproc": 13, "seh_endprologu": 13, "seh_proc": 13, "seh_pushreg": 13, "seh_savereg": 13, "seh_setfram": 13, "seh_stackalloc": 13, "fnstart": 13, "fnend": 13, "movsp": 13, "thumb": 13, "thumb_func": 13, "code16": 13, "code32": 13, "code64": 13, "nop": 13, "clobber_abi": 13, "abikindlist": 13, "efiapi": 13, "unchang": 13, "optionlist": 13, "att_syntax": 13, "nomem": 13, "noreturn": 13, "nostack": 13, "preserves_flag": 13, "pure": [13, 15, 17], "readonli": 13, "red": 13, "zone": 13, "fpr": 13, "nzcv": 13, "cpsr": 13, "fpscr": 13, "dzc": 13, "idc": 13, "ioc": 13, "ixc": 13, "ofc": 13, "ufc": 13, "cpr": 13, "qc": 13, "fflag": 13, "fcsr": 13, "vcsr": 13, "vl": 13, "vtype": 13, "af": 13, "cf": 13, "OF": [13, 16], "pf": 13, "sf": 13, "zf": 13, "de": 13, "ie": 13, "oe": 13, "pe": 13, "ue": 13, "ze": 13, "mxcsr": 13, "globalasmargu": 13, "asmargu": 13, "embed": 13, "delimitedtokentre": [13, 17], "took": 13, "emit": 13, "asm_exampl": 13, "basepri": 13, "mr": 13, "do_noth": 13, "mov": 13, "global_asm_exampl": 13, "itemwithvis": 14, "macroitem": 14, "elabor": [14, 16, 25], "compos": 15, "unicod": [15, 22], "cell": [15, 22, 25], "regardless": 15, "whitespac": 15, "0x0b": 15, "0x0c": 15, "feed": 15, "0x0d": 15, "carriag": 15, "0x20": 15, "0x85": 15, "0x200e": 15, "0x200f": 15, "0x2028": 15, "0x2029": 15, "0x00": [15, 22], "0x7f": 15, "lexicalel": [15, 17], "basic": [15, 17], "compound": [15, 18, 22], "flexibl": 15, "minu": [15, 17, 19], "star": 15, "slash": 15, "percent": [15, 16], "caret": 15, "And": 15, "Or": 15, "lazi": [15, 18], "dot": 15, "ellipsi": 15, "comma": 15, "arrow": 15, "fat": [15, 22], "hashrocket": 15, "pound": 15, "dollar": 15, "brace": 15, "parenthesi": 15, "rawidentifi": 15, "pureidentifi": 15, "rawidentifierkeyword": 15, "xid_start": 15, "xid_continu": 15, "identifierorunderscor": [15, 22], "annex": 15, "profil": 15, "medial": 15, "0x200c": 15, "width": 15, "joiner": 15, "0x200d": 15, "foo": [15, 17], "_identifi": 15, "\u043c\u043e\u0441\u043a\u0432\u0430": 15, "\u6771\u4eac": 15, "fix": [15, 19, 22], "bytecont": 15, "bytecharact": 15, "byteescap": 15, "octaldigit": 15, "0x27": [15, 17], "apostroph": [15, 17], "x1b": 15, "0xca": 15, "simplebytestringcont": 15, "simplebytestringcharact": 15, "stringcontinu": 15, "0x22": 15, "quotat": 15, "tb": 15, "br": 15, "rawbytestringcont": 15, "nestedrawbytestringcont": 15, "integercont": 15, "0b": 15, "binarydigitorunderscor": 15, "binarydigit": 15, "decimaldigit": 15, "decimaldigitorunderscor": 15, "0x": 15, "hexadecimaldigitorunderscor": 15, "0o": 15, "octaldigitorunderscor": 15, "signedintegersuffix": 15, "unsignedintegersuffix": 15, "decim": 15, "hexadecim": 15, "octal": 15, "suffix": 15, "unsuffix": 15, "surround": [15, 22], "0b0010_1110_u8": 15, "1___2_3": 15, "0x4d8a": 15, "0o77_52i128": 15, "exponentlett": 15, "exponentsign": 15, "exponentmagnitud": 15, "8e": 15, "1_820": 15, "14e5": 15, "8_031": 15, "4_e": 15, "12f64": 15, "charactercont": 15, "asciiescap": 15, "characterliteralcharact": 15, "unicodeescap": 15, "codepoint": 15, "00000": 15, "10ffff": 15, "surrog": 15, "d800": 15, "dfff": 15, "1f30": 15, "simplestringcont": 15, "simplestringcharact": 15, "tcol": 15, "nrow": 15, "bell": 15, "x07": 15, "ub80a": 15, "rawstringcont": 15, "nestedrawstringcont": 15, "blockcommentordoc": 15, "linecommentordoc": 15, "amd": 15, "trail": [15, 17], "alon": [15, 16], "commented_modul": 15, "commented_mod": 15, "case": 15, "sensit": 15, "break": [15, 22], "priv": [15, 17], "typeof": 15, "virtual": 15, "macrorulesdefinit": [15, 17], "fourth": [16, 22], "2016": 16, "2019": 16, "2020": 16, "2021": 16, "alter": 16, "clearli": 16, "unmodifi": 16, "distribut": 16, "prohibit": 16, "prior": [16, 18], "indemnifi": 16, "harmless": 16, "board": 16, "offic": 16, "agent": 16, "liabil": 16, "damag": 16, "yourself": 16, "your": 16, "softwar": 16, "parti": 16, "attornei": 16, "fee": 16, "court": 16, "cost": 16, "expens": 16, "aris": 16, "irrespect": 16, "ON": 16, "AS": 16, "basi": 16, "AND": 16, "NO": 16, "warranti": 16, "OR": 16, "impli": [16, 22], "TO": 16, "THE": 16, "accuraci": 16, "effici": 16, "merchant": 16, "IN": 16, "event": [16, 17], "WILL": 16, "BE": 16, "liabl": 16, "FOR": 16, "consequenti": 16, "incident": 16, "exemplari": 16, "IF": 16, "advis": 16, "SUCH": 16, "januari": 16, "2004": 16, "http": 16, "www": 16, "org": 16, "reproduct": 16, "licensor": 16, "owner": [16, 18], "author": 16, "power": [16, 22], "contract": 16, "ii": 16, "fifti": 16, "outstand": [16, 22], "iii": 16, "benefici": 16, "exercis": 16, "convers": [16, 22], "media": 16, "work": 16, "authorship": 16, "appendix": 16, "editori": 16, "revis": 16, "mere": 16, "thereof": 16, "intention": 16, "submit": 16, "behalf": 16, "electron": 16, "verbal": 16, "sent": 16, "mail": 16, "issu": 16, "track": 16, "improv": 16, "conspicu": 16, "contributor": 16, "whom": 16, "incorpor": [16, 22], "herebi": 16, "perpetu": 16, "worldwid": 16, "charg": 16, "royalti": 16, "irrevoc": 16, "reproduc": 16, "prepar": 16, "displai": 16, "sublicens": 16, "patent": 16, "offer": 16, "sell": 16, "necessarili": 16, "infring": 16, "institut": 16, "litig": 16, "counterclaim": 16, "lawsuit": 16, "alleg": 16, "constitut": [16, 17, 22], "contributori": 16, "date": 16, "redistribut": 16, "medium": 16, "meet": 16, "give": 16, "recipi": 16, "promin": 16, "retain": 16, "trademark": 16, "pertain": 16, "readabl": 16, "along": 16, "wherev": 16, "own": [16, 22], "alongsid": 16, "addendum": 16, "constru": 16, "compli": 16, "submiss": 16, "notwithstand": 16, "noth": 16, "herein": 16, "supersed": 16, "agreement": 16, "regard": 16, "trade": 16, "servic": 16, "customari": 16, "disclaim": 16, "law": 16, "agre": 16, "sole": [16, 17, 18], "respons": 16, "assum": [16, 22], "risk": 16, "theori": 16, "tort": 16, "neglig": 16, "deliber": 16, "grossli": 16, "inabl": 16, "loss": 16, "goodwil": 16, "stoppag": 16, "failur": 16, "malfunct": 16, "commerci": 16, "accept": 16, "choos": 16, "indemn": 16, "howev": 16, "defend": 16, "To": [16, 22], "boilerpl": 16, "don": 16, "we": 16, "recommend": 16, "print": 16, "easier": 16, "archiv": 16, "yyyi": 16, "complianc": 16, "2010": 16, "person": 16, "deal": 16, "merg": 16, "publish": 16, "furnish": 16, "substanti": 16, "BUT": 16, "NOT": 16, "noninfring": 16, "holder": 16, "connect": 16, "WITH": 16, "realiz": 17, "distinct": [17, 22], "augment": 17, "macrorulelist": 17, "macromatchtoken": 17, "macrometavariablematch": 17, "expr": 17, "ident": 17, "meta": 17, "pat": 17, "pat_param": 17, "stmt": 17, "ty": 17, "vi": 17, "fragment": 17, "begin": 17, "macrorepetitionmatchcont": 17, "macrorepetitionsepar": 17, "One": [17, 25], "succeed": 17, "generate_pair": 17, "crate_typ": 17, "enter": [17, 19], "proc_macro": 17, "hint": 17, "proc_macro_attribut": 17, "nondelimitedtoken": 17, "derive_macro_invok": 17, "attribute_macro_invok": 17, "further": [17, 22], "lookahead": 17, "ambigu": 17, "backtrack": 17, "0x2d": 17, "hyphen": 17, "consecut": 17, "abl": 17, "monoton": 17, "increas": [17, 22], "increment": 17, "leftov": 17, "found": [17, 22], "unresolv": 17, "kept": 17, "verbatim": 17, "repeatedli": 17, "param_1": 17, "param_2": 17, "param_n": 17, "categor": 17, "unhygien": 17, "mix": 17, "label": 17, "partial": 17, "off": 18, "virtu": 18, "immutable_refer": 18, "mutable_refer": 18, "comparison": [18, 22], "mutable_borrow": 18, "immutable_borrow": 18, "unassign": 18, "clone": [18, 22], "unspecifi": 18, "underli": 18, "printondrop": 18, "leav": 18, "promot": 18, "account": 18, "subpattern": [18, 19], "cast": [18, 22], "creation": 18, "becaus": [18, 19], "patternlist": 19, "ed": 19, "0x7c": 19, "anyth": 19, "inferred_typ": 19, "bound_pattern_typ": 19, "small": 19, "ref_x": 19, "half": 19, "open": 19, "obsolet": 19, "entir": 19, "pattern_without_range_typ": 19, "deconstructe": 19, "deconstructre": 19, "recordstructpatterncont": 19, "recordstructrestpattern": 19, "fielddeconstructorlist": 19, "fielddeconstructor": 19, "deconstructor": 19, "recordstruct": 19, "record_struct_valu": 19, "tuplestruct": 19, "tuple_struct_valu": 19, "union_valu": 19, "ariti": [19, 22], "destructur": 19, "length": [19, 22], "uncondition": 19, "zerowidthnobreakspac": 20, "shebang": 20, "feff": 20, "newlin": 20, "modulespecif": 20, "load": 20, "dead_cod": 20, "condition": 20, "cfg": 20, "up": [20, 22, 25], "cfg_attr": 20, "ascript": [21, 22], "is_empti": 21, "0x01": 22, "invari": 22, "0x000": 22, "0xd7ff": 22, "0xe000": 22, "0x10ffff": 22, "utf": 22, "tuplefieldlist": 22, "tuplefield": 22, "enumvariantlist": 22, "enumvariantkind": 22, "zerovariantenumtyp": 22, "weight": 22, "fifth": 22, "sixth": 22, "unitstruct": 22, "animalrecordstruct": 22, "animaltuplestruct": 22, "leafnod": 22, "coercibl": 22, "functionpointertypequalifierlist": 22, "functionpointertypeparameterlist": 22, "variad": 22, "null": 22, "shallow": 22, "anonymous_type_paramet": 22, "arg": 22, "anonymous_return_typ": 22, "mytrait": 22, "late": 22, "dispatch": 22, "type_paramet": 22, "never_complet": 22, "big": 22, "enough": 22, "size_of": 22, "thin": 22, "coerc": 22, "storag": 22, "finit": 22, "themselv": 22, "classifi": 22, "laid": 22, "back": 22, "nil": 22, "con": 22, "detail": 22, "symmetr": 22, "observ": 22, "diverg": 22, "type_constructor": 22, "last_field": 22, "tc": 22, "unsafecel": [22, 25], "insuffici": 22, "defer": 22, "inferec": 22, "fallback": 22, "unset": 22, "tabl": 22, "modassign": 22, "assigne": 22, "user": 22, "supertrait": 22, "undeduc": 22, "regular": 22, "supertraitlist": 22, "subtrait": 22, "unpin": 22, "unwindsaf": 22, "refunwindsaf": 22, "element_at": 22, "parenthesizedtraitbound": 22, "draw": 22, "attributedlifetim": 22, "attributedlifetimelist": 22, "covari": 22, "contravari": 22, "phantomdata": 22, "g": 22, "met": 22, "tocstr": 22, "strukt": 22, "target_featur": 23, "track_cal": 23, "unnam": 25}, "objects": {"": [[10, 0, 1, "term_abi", "abi"], [10, 0, 1, "term_abi_clobber", "abi_clobber"], [10, 0, 1, "term_abi_kind", "abi_kind"], [13, 1, 1, "syntax_abiclobber", "abiclobber"], [6, 1, 1, "syntax_abikind", "abikind"], [13, 1, 1, "syntax_abikindlist", "abikindlist"], [6, 1, 1, "syntax_abispecification", "abispecification"], [10, 0, 1, "term_abort", "abort"], [10, 0, 1, "term_abstract_data_type", "abstract_data_type"], [18, 0, 1, "term_active", "active"], [10, 0, 1, "term_active_attribute", "active_attribute"], [10, 0, 1, "term_addition_assignment", "addition_assignment"], [10, 0, 1, "term_addition_assignment_expression", "addition_assignment_expression"], [10, 0, 1, "term_addition_expression", "addition_expression"], [5, 1, 1, "syntax_additionassignmentexpression", "additionassignmentexpression"], [5, 1, 1, "syntax_additionexpression", "additionexpression"], [5, 0, 1, "term_address_to_pointer_cast", "address_to_pointer_cast"], [10, 0, 1, "term_adjusted_call_operand", "adjusted_call_operand"], [1, 1, 1, "syntax_alignment", "alignment"], [10, 0, 1, "term_alignment", "alignment"], [1, 1, 1, "syntax_alignmentdecrease", "alignmentdecrease"], [1, 1, 1, "syntax_alignmentincrease", "alignmentincrease"], [10, 0, 1, "term_all_configuration_predicate", "all_configuration_predicate"], [10, 0, 1, "term_anonymous_loop_expression", "anonymous_loop_expression"], [10, 0, 1, "term_anonymous_return_type", "anonymous_return_type"], [10, 0, 1, "term_anonymous_type_parameter", "anonymous_type_parameter"], [10, 0, 1, "term_any_configuration_predicate", "any_configuration_predicate"], [10, 0, 1, "term_application_binary_interface", "application_binary_interface"], [10, 0, 1, "term_argument_operand", "argument_operand"], [5, 1, 1, "syntax_argumentoperandlist", "argumentoperandlist"], [10, 0, 1, "term_arithmetic_expression", "arithmetic_expression"], [10, 0, 1, "term_arithmetic_operator", "arithmetic_operator"], [10, 0, 1, "term_arithmetic_overflow", "arithmetic_overflow"], [5, 1, 1, "syntax_arithmeticexpression", "arithmeticexpression"], [10, 0, 1, "term_arity", "arity"], [10, 0, 1, "term_array", "array"], [10, 0, 1, "term_array_element_constructor", "array_element_constructor"], [10, 0, 1, "term_array_expression", "array_expression"], [10, 0, 1, "term_array_repetition_constructor", "array_repetition_constructor"], [10, 0, 1, "term_array_type", "array_type"], [5, 1, 1, "syntax_arrayelementconstructor", "arrayelementconstructor"], [5, 1, 1, "syntax_arrayelementexpression", "arrayelementexpression"], [5, 1, 1, "syntax_arrayexpression", "arrayexpression"], [5, 1, 1, "syntax_arrayrepetitionconstructor", "arrayrepetitionconstructor"], [22, 1, 1, "syntax_arraytypespecification", "arraytypespecification"], [15, 1, 1, "syntax_asciicharacter", "asciicharacter"], [15, 1, 1, "syntax_asciiescape", "asciiescape"], [13, 1, 1, "syntax_asmarguments", "asmarguments"], [10, 0, 1, "term_assembly_code_block", "assembly_code_block"], [10, 0, 1, "term_assembly_directive", "assembly_directive"], [10, 0, 1, "term_assembly_instruction", "assembly_instruction"], [10, 0, 1, "term_assembly_option", "assembly_option"], [13, 1, 1, "syntax_assemblycodeblock", "assemblycodeblock"], [13, 1, 1, "syntax_assemblyinstruction", "assemblyinstruction"], [13, 1, 1, "syntax_assemblyoption", "assemblyoption"], [10, 0, 1, "term_assigned_operand", "assigned_operand"], [5, 1, 1, "syntax_assignedoperand", "assignedoperand"], [10, 0, 1, "term_assignee_expression", "assignee_expression"], [10, 0, 1, "term_assignee_operand", "assignee_operand"], [5, 0, 1, "term_assignee_pattern", "assignee_pattern"], [5, 1, 1, "syntax_assigneeoperand", "assigneeoperand"], [10, 0, 1, "term_assignment_expression", "assignment_expression"], [5, 1, 1, "syntax_assignmentexpression", "assignmentexpression"], [10, 0, 1, "term_associated_constant", "associated_constant"], [10, 0, 1, "term_associated_function", "associated_function"], [10, 0, 1, "term_associated_implementation_constant", "associated_implementation_constant"], [10, 0, 1, "term_associated_implementation_function", "associated_implementation_function"], [10, 0, 1, "term_associated_implementation_type", "associated_implementation_type"], [10, 0, 1, "term_associated_item", "associated_item"], [10, 0, 1, "term_associated_trait_constant", "associated_trait_constant"], [10, 0, 1, "term_associated_trait_function", "associated_trait_function"], [10, 0, 1, "term_associated_trait_implementation_item", "associated_trait_implementation_item"], [10, 0, 1, "term_associated_trait_item", "associated_trait_item"], [10, 0, 1, "term_associated_trait_type", "associated_trait_type"], [10, 0, 1, "term_associated_type", "associated_type"], [10, 0, 1, "term_associated_type_projection", "associated_type_projection"], [0, 1, 1, "syntax_associateditem", "associateditem"], [0, 1, 1, "syntax_associateditemwithvisibility", "associateditemwithvisibility"], [10, 0, 1, "term_associativity", "associativity"], [10, 0, 1, "term_async_block", "async_block"], [10, 0, 1, "term_async_block_expression", "async_block_expression"], [10, 0, 1, "term_async_control_flow_boundary", "async_control_flow_boundary"], [10, 0, 1, "term_async_function", "async_function"], [5, 1, 1, "syntax_asyncblockexpression", "asyncblockexpression"], [10, 0, 1, "term_atomic_type", "atomic_type"], [10, 0, 1, "term_attribute", "attribute"], [10, 0, 1, "term_attribute_content", "attribute_content"], [10, 0, 1, "term_attribute_macro", "attribute_macro"], [1, 1, 1, "syntax_attributecontent", "attributecontent"], [1, 1, 1, "syntax_attributecontentlist", "attributecontentlist"], [22, 1, 1, "syntax_attributedlifetime", "attributedlifetime"], [22, 1, 1, "syntax_attributedlifetimelist", "attributedlifetimelist"], [1, 1, 1, "syntax_attributeinput", "attributeinput"], [10, 0, 1, "term_auto_trait", "auto_trait"], [1, 2, 1, "codeterm_automatically_derived", "automatically_derived"], [1, 1, 1, "syntax_automaticallyderivedcontent", "automaticallyderivedcontent"], [10, 0, 1, "term_await_expression", "await_expression"], [5, 1, 1, "syntax_awaitexpression", "awaitexpression"], [10, 0, 1, "term_base_initializer", "base_initializer"], [5, 1, 1, "syntax_baseinitializer", "baseinitializer"], [10, 0, 1, "term_basic_assignment", "basic_assignment"], [10, 0, 1, "term_binary_crate", "binary_crate"], [10, 0, 1, "term_binary_literal", "binary_literal"], [10, 0, 1, "term_binary_operator", "binary_operator"], [15, 1, 1, "syntax_binarydigit", "binarydigit"], [15, 1, 1, "syntax_binarydigitorunderscore", "binarydigitorunderscore"], [15, 1, 1, "syntax_binaryliteral", "binaryliteral"], [19, 1, 1, "syntax_binding", "binding"], [10, 0, 1, "term_binding", "binding"], [10, 0, 1, "term_binding_argument", "binding_argument"], [10, 0, 1, "term_binding_mode", "binding_mode"], [10, 0, 1, "term_binding_pattern", "binding_pattern"], [10, 0, 1, "term_binding_scope", "binding_scope"], [9, 1, 1, "syntax_bindingargument", "bindingargument"], [10, 0, 1, "term_bit_and_assignment", "bit_and_assignment"], [10, 0, 1, "term_bit_and_assignment_expression", "bit_and_assignment_expression"], [10, 0, 1, "term_bit_and_expression", "bit_and_expression"], [10, 0, 1, "term_bit_expression", "bit_expression"], [10, 0, 1, "term_bit_or_assignment", "bit_or_assignment"], [10, 0, 1, "term_bit_or_assignment_expression", "bit_or_assignment_expression"], [10, 0, 1, "term_bit_or_expression", "bit_or_expression"], [10, 0, 1, "term_bit_xor_assignment", "bit_xor_assignment"], [10, 0, 1, "term_bit_xor_assignment_expression", "bit_xor_assignment_expression"], [10, 0, 1, "term_bit_xor_expression", "bit_xor_expression"], [5, 1, 1, "syntax_bitandassignmentexpression", "bitandassignmentexpression"], [5, 1, 1, "syntax_bitandexpression", "bitandexpression"], [5, 1, 1, "syntax_bitexpression", "bitexpression"], [5, 1, 1, "syntax_bitorassignmentexpression", "bitorassignmentexpression"], [5, 1, 1, "syntax_bitorexpression", "bitorexpression"], [5, 1, 1, "syntax_bitwisenegationoperator", "bitwisenegationoperator"], [5, 1, 1, "syntax_bitxorassignmentexpression", "bitxorassignmentexpression"], [5, 1, 1, "syntax_bitxorexpression", "bitxorexpression"], [10, 0, 1, "term_block_comment", "block_comment"], [10, 0, 1, "term_block_expression", "block_expression"], [15, 1, 1, "syntax_blockcomment", "blockcomment"], [15, 1, 1, "syntax_blockcommentordoc", "blockcommentordoc"], [5, 1, 1, "syntax_blockexpression", "blockexpression"], [10, 2, 1, "codeterm_bool", "bool"], [10, 0, 1, "term_boolean_literal", "boolean_literal"], [15, 1, 1, "syntax_booleanliteral", "booleanliteral"], [10, 0, 1, "term_borrow", "borrow"], [10, 0, 1, "term_borrow_expression", "borrow_expression"], [10, 0, 1, "term_borrowed", "borrowed"], [5, 1, 1, "syntax_borrowexpression", "borrowexpression"], [10, 0, 1, "term_borrowing", "borrowing"], [10, 0, 1, "term_bound", "bound"], [10, 0, 1, "term_bound_pattern", "bound_pattern"], [19, 1, 1, "syntax_boundpattern", "boundpattern"], [10, 0, 1, "term_break_expression", "break_expression"], [10, 0, 1, "term_break_type", "break_type"], [10, 0, 1, "term_break_value", "break_value"], [5, 1, 1, "syntax_breakexpression", "breakexpression"], [10, 0, 1, "term_built_in_attribute", "built_in_attribute"], [10, 0, 1, "term_built_in_trait", "built_in_trait"], [1, 1, 1, "syntax_builtinattributecontent", "builtinattributecontent"], [18, 0, 1, "term_by_copy", "by_copy"], [5, 0, 1, "term_by_immutable_reference_capture", "by_immutable_reference_capture"], [18, 0, 1, "term_by_move", "by_move"], [19, 0, 1, "term_by_mutable_reference", "by_mutable_reference"], [5, 0, 1, "term_by_mutable_reference_capture", "by_mutable_reference_capture"], [19, 0, 1, "term_by_reference", "by_reference"], [5, 0, 1, "term_by_unique_immutable_reference_capture", "by_unique_immutable_reference_capture"], [19, 0, 1, "term_by_value", "by_value"], [5, 0, 1, "term_by_value_capture", "by_value_capture"], [10, 0, 1, "term_byte_literal", "byte_literal"], [10, 0, 1, "term_byte_string_literal", "byte_string_literal"], [15, 1, 1, "syntax_bytecharacter", "bytecharacter"], [15, 1, 1, "syntax_bytecontent", "bytecontent"], [15, 1, 1, "syntax_byteescape", "byteescape"], [15, 1, 1, "syntax_byteliteral", "byteliteral"], [15, 1, 1, "syntax_bytestringliteral", "bytestringliteral"], [10, 0, 1, "term_c", "c"], [10, 0, 1, "term_c_representation", "c_representation"], [10, 0, 1, "term_c_signed_int_type", "c_signed_int_type"], [10, 0, 1, "term_call_conformance", "call_conformance"], [10, 0, 1, "term_call_expression", "call_expression"], [10, 0, 1, "term_call_operand", "call_operand"], [10, 0, 1, "term_call_resolution", "call_resolution"], [10, 0, 1, "term_call_site_hygiene", "call_site_hygiene"], [10, 0, 1, "term_callee_type", "callee_type"], [5, 1, 1, "syntax_callexpression", "callexpression"], [5, 1, 1, "syntax_calloperand", "calloperand"], [3, 0, 1, "term_candidate_callee_type", "candidate_callee_type"], [3, 0, 1, "term_candidate_callee_type_chain", "candidate_callee_type_chain"], [3, 0, 1, "term_candidate_container_type", "candidate_container_type"], [3, 0, 1, "term_candidate_container_type_chain", "candidate_container_type_chain"], [3, 0, 1, "term_candidate_direct_entity", "candidate_direct_entity"], [3, 0, 1, "term_candidate_external_prelude_entity", "candidate_external_prelude_entity"], [3, 0, 1, "term_candidate_field", "candidate_field"], [3, 0, 1, "term_candidate_indexed_field", "candidate_indexed_field"], [3, 0, 1, "term_candidate_method", "candidate_method"], [3, 0, 1, "term_candidate_named_field", "candidate_named_field"], [3, 0, 1, "term_candidate_receiver_type", "candidate_receiver_type"], [3, 0, 1, "term_candidate_receiver_type_chain", "candidate_receiver_type_chain"], [3, 0, 1, "term_candidate_selected_entity", "candidate_selected_entity"], [10, 0, 1, "term_capture_mode", "capture_mode"], [10, 0, 1, "term_capture_target", "capture_target"], [5, 0, 1, "term_captured", "captured"], [10, 0, 1, "term_capturing", "capturing"], [10, 0, 1, "term_capturing_environment", "capturing_environment"], [10, 0, 1, "term_capturing_expression", "capturing_expression"], [10, 0, 1, "term_cast", "cast"], [10, 0, 1, "term_casting", "casting"], [1, 2, 1, "codeterm_cfg", "cfg"], [1, 2, 1, "codeterm_cfg_attr", "cfg_attr"], [1, 1, 1, "syntax_cfgattrcontent", "cfgattrcontent"], [1, 1, 1, "syntax_cfgcontent", "cfgcontent"], [10, 2, 1, "codeterm_char", "char"], [10, 0, 1, "term_character_literal", "character_literal"], [15, 1, 1, "syntax_charactercontent", "charactercontent"], [15, 1, 1, "syntax_characterliteral", "characterliteral"], [15, 1, 1, "syntax_characterliteralcharacter", "characterliteralcharacter"], [10, 0, 1, "term_closure_body", "closure_body"], [10, 0, 1, "term_closure_expression", "closure_expression"], [10, 0, 1, "term_closure_parameter", "closure_parameter"], [10, 0, 1, "term_closure_type", "closure_type"], [5, 1, 1, "syntax_closurebody", "closurebody"], [5, 1, 1, "syntax_closurebodywithreturntype", "closurebodywithreturntype"], [5, 1, 1, "syntax_closureexpression", "closureexpression"], [5, 1, 1, "syntax_closureparameter", "closureparameter"], [5, 1, 1, "syntax_closureparameterlist", "closureparameterlist"], [1, 0, 1, "term_code_generation_attribute", "code_generation_attribute"], [10, 0, 1, "term_code_point", "code_point"], [22, 0, 1, "term_coercion_propagating_expression", "coercion_propagating_expression"], [22, 0, 1, "term_coercion_site", "coercion_site"], [1, 2, 1, "codeterm_cold", "cold"], [1, 1, 1, "syntax_coldcontent", "coldcontent"], [15, 1, 1, "syntax_comment", "comment"], [10, 0, 1, "term_comment", "comment"], [10, 0, 1, "term_comparison_expression", "comparison_expression"], [5, 1, 1, "syntax_comparisonexpression", "comparisonexpression"], [10, 0, 1, "term_compilation_root", "compilation_root"], [10, 0, 1, "term_compound_assignment", "compound_assignment"], [10, 0, 1, "term_compound_assignment_expression", "compound_assignment_expression"], [15, 0, 1, "term_compound_punctuator", "compound_punctuator"], [5, 1, 1, "syntax_compoundassignmentexpression", "compoundassignmentexpression"], [10, 0, 1, "term_concrete_type", "concrete_type"], [10, 0, 1, "term_conditional_compilation", "conditional_compilation"], [1, 0, 1, "term_conditional_compilation_attribute", "conditional_compilation_attribute"], [10, 0, 1, "term_conditionally_compiled_source_code", "conditionally_compiled_source_code"], [10, 0, 1, "term_configuration_predicate", "configuration_predicate"], [1, 1, 1, "syntax_configurationoption", "configurationoption"], [1, 1, 1, "syntax_configurationoptionname", "configurationoptionname"], [1, 1, 1, "syntax_configurationoptionvalue", "configurationoptionvalue"], [1, 1, 1, "syntax_configurationpredicate", "configurationpredicate"], [1, 1, 1, "syntax_configurationpredicateall", "configurationpredicateall"], [1, 1, 1, "syntax_configurationpredicateany", "configurationpredicateany"], [1, 1, 1, "syntax_configurationpredicatelist", "configurationpredicatelist"], [1, 1, 1, "syntax_configurationpredicatenot", "configurationpredicatenot"], [10, 0, 1, "term_constant", "constant"], [10, 0, 1, "term_constant_argument", "constant_argument"], [10, 0, 1, "term_constant_context", "constant_context"], [10, 0, 1, "term_constant_expression", "constant_expression"], [10, 0, 1, "term_constant_function", "constant_function"], [10, 0, 1, "term_constant_initializer", "constant_initializer"], [10, 0, 1, "term_constant_parameter", "constant_parameter"], [10, 0, 1, "term_constant_parameter_initializer", "constant_parameter_initializer"], [10, 0, 1, "term_constant_promotion", "constant_promotion"], [9, 1, 1, "syntax_constantargument", "constantargument"], [25, 1, 1, "syntax_constantdeclaration", "constantdeclaration"], [25, 1, 1, "syntax_constantinitializer", "constantinitializer"], [9, 1, 1, "syntax_constantparameter", "constantparameter"], [9, 1, 1, "syntax_constantparameterinitializer", "constantparameterinitializer"], [10, 0, 1, "term_constrain", "constrain"], [10, 0, 1, "term_construct", "construct"], [5, 1, 1, "syntax_constructee", "constructee"], [10, 0, 1, "term_constructee", "constructee"], [10, 0, 1, "term_container_operand", "container_operand"], [5, 1, 1, "syntax_containeroperand", "containeroperand"], [10, 0, 1, "term_continue_expression", "continue_expression"], [5, 1, 1, "syntax_continueexpression", "continueexpression"], [22, 0, 1, "term_contravariant", "contravariant"], [10, 0, 1, "term_control_flow_boundary", "control_flow_boundary"], [10, 0, 1, "term_copy_type", "copy_type"], [3, 0, 1, "term_core_prelude", "core_prelude"], [22, 0, 1, "term_covariant", "covariant"], [10, 0, 1, "term_crate", "crate"], [10, 0, 1, "term_crate_import", "crate_import"], [10, 0, 1, "term_crate_indication", "crate_indication"], [1, 2, 1, "codeterm_crate_name", "crate_name"], [10, 0, 1, "term_crate_public_modifier", "crate_public_modifier"], [10, 0, 1, "term_crate_root", "crate_root"], [10, 0, 1, "term_crate_root_module", "crate_root_module"], [1, 2, 1, "codeterm_crate_type", "crate_type"], [20, 1, 1, "syntax_crateindication", "crateindication"], [1, 1, 1, "syntax_cratenamecontent", "cratenamecontent"], [3, 1, 1, "syntax_cratepublicmodifier", "cratepublicmodifier"], [1, 1, 1, "syntax_cratetype", "cratetype"], [1, 1, 1, "syntax_cratetypecontent", "cratetypecontent"], [10, 0, 1, "term_dangling", "dangling"], [10, 0, 1, "term_data_race", "data_race"], [10, 0, 1, "term_decimal_literal", "decimal_literal"], [15, 1, 1, "syntax_decimaldigit", "decimaldigit"], [15, 1, 1, "syntax_decimaldigitorunderscore", "decimaldigitorunderscore"], [15, 1, 1, "syntax_decimalliteral", "decimalliteral"], [10, 0, 1, "term_declaration", "declaration"], [10, 0, 1, "term_declarative_macro", "declarative_macro"], [19, 1, 1, "syntax_deconstructee", "deconstructee"], [10, 0, 1, "term_deconstructee", "deconstructee"], [10, 0, 1, "term_default_representation", "default_representation"], [10, 0, 1, "term_definition_site_hygiene", "definition_site_hygiene"], [17, 1, 1, "syntax_delimitedtokentree", "delimitedtokentree"], [15, 1, 1, "syntax_delimiter", "delimiter"], [10, 0, 1, "term_dereference", "dereference"], [10, 0, 1, "term_dereference_expression", "dereference_expression"], [10, 0, 1, "term_dereference_type", "dereference_type"], [10, 0, 1, "term_dereference_type_chain", "dereference_type_chain"], [5, 1, 1, "syntax_dereferenceexpression", "dereferenceexpression"], [1, 0, 1, "term_derivation_attribute", "derivation_attribute"], [1, 2, 1, "codeterm_derive", "derive"], [17, 0, 1, "term_derive_helper_attribute", "derive_helper_attribute"], [10, 0, 1, "term_derive_macro", "derive_macro"], [1, 1, 1, "syntax_derivecontent", "derivecontent"], [1, 1, 1, "syntax_derivename", "derivename"], [10, 0, 1, "term_destruction", "destruction"], [10, 0, 1, "term_destructor", "destructor"], [10, 0, 1, "term_destructuring_assignment", "destructuring_assignment"], [1, 0, 1, "term_diagnostics_attribute", "diagnostics_attribute"], [10, 0, 1, "term_direction_modifier", "direction_modifier"], [13, 1, 1, "syntax_directionmodifier", "directionmodifier"], [10, 0, 1, "term_discriminant", "discriminant"], [10, 0, 1, "term_discriminant_initializer", "discriminant_initializer"], [10, 0, 1, "term_discriminant_type", "discriminant_type"], [22, 1, 1, "syntax_discriminantinitializer", "discriminantinitializer"], [10, 0, 1, "term_diverging_expression", "diverging_expression"], [10, 0, 1, "term_diverging_type_variable", "diverging_type_variable"], [10, 0, 1, "term_division_assignment", "division_assignment"], [10, 0, 1, "term_division_assignment_expression", "division_assignment_expression"], [10, 0, 1, "term_division_expression", "division_expression"], [5, 1, 1, "syntax_divisionassignmentexpression", "divisionassignmentexpression"], [5, 1, 1, "syntax_divisionexpression", "divisionexpression"], [1, 2, 1, "codeterm_doc", "doc"], [10, 0, 1, "term_doc_comment", "doc_comment"], [1, 1, 1, "syntax_doccontent", "doccontent"], [1, 1, 1, "syntax_docinput", "docinput"], [1, 0, 1, "term_documentation_attribute", "documentation_attribute"], [10, 0, 1, "term_drop_construct", "drop_construct"], [10, 0, 1, "term_drop_order", "drop_order"], [10, 0, 1, "term_drop_scope", "drop_scope"], [10, 0, 1, "term_drop_scope_extension", "drop_scope_extension"], [10, 0, 1, "term_drop_type", "drop_type"], [18, 0, 1, "term_dropped", "dropped"], [10, 0, 1, "term_dropping", "dropping"], [10, 0, 1, "term_dynamically_sized_type", "dynamically_sized_type"], [10, 0, 1, "term_elaboration", "elaboration"], [10, 0, 1, "term_element_type", "element_type"], [22, 1, 1, "syntax_elementtype", "elementtype"], [10, 0, 1, "term_elided", "elided"], [10, 0, 1, "term_elided_lifetime", "elided_lifetime"], [10, 0, 1, "term_else_expression", "else_expression"], [5, 1, 1, "syntax_elseexpression", "elseexpression"], [10, 0, 1, "term_empty_statement", "empty_statement"], [10, 0, 1, "term_entity", "entity"], [10, 0, 1, "term_enum", "enum"], [5, 0, 1, "term_enum_cast", "enum_cast"], [10, 0, 1, "term_enum_field", "enum_field"], [10, 0, 1, "term_enum_type", "enum_type"], [10, 0, 1, "term_enum_value", "enum_value"], [10, 0, 1, "term_enum_variant", "enum_variant"], [10, 0, 1, "term_enum_variant_value", "enum_variant_value"], [22, 1, 1, "syntax_enumdeclaration", "enumdeclaration"], [22, 1, 1, "syntax_enumvariant", "enumvariant"], [22, 1, 1, "syntax_enumvariantkind", "enumvariantkind"], [22, 1, 1, "syntax_enumvariantlist", "enumvariantlist"], [10, 0, 1, "term_equals_expression", "equals_expression"], [5, 1, 1, "syntax_equalsexpression", "equalsexpression"], [10, 0, 1, "term_error_propagation_expression", "error_propagation_expression"], [5, 1, 1, "syntax_errorpropagationexpression", "errorpropagationexpression"], [10, 0, 1, "term_escaped_character", "escaped_character"], [10, 0, 1, "term_evaluation", "evaluation"], [10, 0, 1, "term_execution", "execution"], [22, 0, 1, "term_expected_type", "expected_type"], [1, 1, 1, "syntax_expectedpanicmessage", "expectedpanicmessage"], [10, 0, 1, "term_explicit_register_argument", "explicit_register_argument"], [10, 0, 1, "term_explicit_register_name", "explicit_register_name"], [10, 0, 1, "term_explicitly_declared_entity", "explicitly_declared_entity"], [13, 1, 1, "syntax_explicitregistername", "explicitregistername"], [15, 1, 1, "syntax_exponentletter", "exponentletter"], [15, 1, 1, "syntax_exponentmagnitude", "exponentmagnitude"], [15, 1, 1, "syntax_exponentsign", "exponentsign"], [1, 2, 1, "codeterm_export_name", "export_name"], [10, 0, 1, "term_exported_function", "exported_function"], [10, 0, 1, "term_exported_static", "exported_static"], [1, 1, 1, "syntax_exportnamecontent", "exportnamecontent"], [5, 1, 1, "syntax_expression", "expression"], [10, 0, 1, "term_expression", "expression"], [10, 0, 1, "term_expression_statement", "expression_statement"], [10, 0, 1, "term_expression_with_block", "expression_with_block"], [10, 0, 1, "term_expression_without_block", "expression_without_block"], [5, 1, 1, "syntax_expressionlist", "expressionlist"], [21, 1, 1, "syntax_expressionstatement", "expressionstatement"], [5, 1, 1, "syntax_expressionwithblock", "expressionwithblock"], [5, 1, 1, "syntax_expressionwithoutblock", "expressionwithoutblock"], [18, 0, 1, "term_extending_expression", "extending_expression"], [18, 0, 1, "term_extending_pattern", "extending_pattern"], [6, 0, 1, "term_extern_c_abi", "extern_c_abi"], [10, 0, 1, "term_external_block", "external_block"], [10, 0, 1, "term_external_function", "external_function"], [10, 0, 1, "term_external_function_item_type", "external_function_item_type"], [3, 0, 1, "term_external_prelude", "external_prelude"], [10, 0, 1, "term_external_static", "external_static"], [6, 0, 1, "term_external_system_abi", "external_system_abi"], [6, 1, 1, "syntax_externalblock", "externalblock"], [20, 1, 1, "syntax_externalcrateimport", "externalcrateimport"], [6, 1, 1, "syntax_externalitemwithvisibility", "externalitemwithvisibility"], [6, 1, 1, "syntax_externitem", "externitem"], [10, 2, 1, "codeterm_f32", "f32"], [10, 2, 1, "codeterm_f64", "f64"], [10, 0, 1, "term_fat_pointer", "fat_pointer"], [10, 0, 1, "term_fat_pointer_type", "fat_pointer_type"], [1, 1, 1, "syntax_feature", "feature"], [1, 1, 1, "syntax_featurelist", "featurelist"], [10, 0, 1, "term_ffi", "ffi"], [10, 0, 1, "term_field", "field"], [10, 0, 1, "term_field_access_expression", "field_access_expression"], [10, 0, 1, "term_field_index", "field_index"], [10, 0, 1, "term_field_list", "field_list"], [10, 0, 1, "term_field_resolution", "field_resolution"], [10, 0, 1, "term_field_selector", "field_selector"], [5, 1, 1, "syntax_fieldaccessexpression", "fieldaccessexpression"], [19, 1, 1, "syntax_fielddeconstructor", "fielddeconstructor"], [19, 1, 1, "syntax_fielddeconstructorlist", "fielddeconstructorlist"], [19, 1, 1, "syntax_fieldindex", "fieldindex"], [5, 1, 1, "syntax_fieldinitializer", "fieldinitializer"], [5, 1, 1, "syntax_fieldinitializerlist", "fieldinitializerlist"], [5, 1, 1, "syntax_fieldselector", "fieldselector"], [10, 0, 1, "term_final_match_arm", "final_match_arm"], [5, 1, 1, "syntax_finalmatcharm", "finalmatcharm"], [10, 0, 1, "term_fixed_sized_type", "fixed_sized_type"], [15, 0, 1, "term_flexible_compound_punctuator", "flexible_compound_punctuator"], [10, 0, 1, "term_float_literal", "float_literal"], [10, 0, 1, "term_float_suffix", "float_suffix"], [15, 1, 1, "syntax_floatexponent", "floatexponent"], [10, 0, 1, "term_floating_point_type", "floating_point_type"], [10, 0, 1, "term_floating_point_type_variable", "floating_point_type_variable"], [10, 0, 1, "term_floating_point_value", "floating_point_value"], [15, 1, 1, "syntax_floatliteral", "floatliteral"], [15, 1, 1, "syntax_floatsuffix", "floatsuffix"], [5, 3, 1, "", "6:11 0ab4370e4b805e660ab7f862768edd4e73d59035488ec64df72910f8dfc9c069"], [5, 3, 1, "", "6:7 6aa74df5ff6998c36cd4b0303af21019a41841668d615646b3310bc1356befed"], [0, 3, 1, "", "10:15 96a142348655f7c0d311daed418fc24259286e2108efc574894af02cf2471c36"], [7, 3, 1, "", "9:20 4355b34dd22393af15f6fad33ae3c69fc7091736b751b78d2b18cb15ceb7b3cc"], [17, 3, 1, "", "20:2 f3350d5be59f16503e8f202eed548f9142e23d0995f540a0fe8dbfa0790eb114"], [5, 3, 1, "", "6:9 aab182f47d02be1c733c5fe2b39472a179b10a15a4dcaeb63c8ce0ea22a1f803"], [13, 3, 1, "", "22:6 2932ba93879a19d635e09c54bc40e411c50ad1cd415e1048e6a594284226a29f"], [5, 3, 1, "", "6:2 0645a76c0904721382a9db11d9677b68becee6024c9f1577cc7f2a735f218ad5"], [6, 3, 1, "", "21:3 e6918e7d46ef5f24647902726d860e1abaf15c6b4f3e50771748abe1156acb4a"], [13, 3, 1, "", "22:2 f55330136adb51523a63dd5eccf639fc7290faacab77ff910b09c4c10719ac1e"], [0, 3, 1, "", "10:8 0dd68e90f7962b7f3ab0d020e22ee6db5fde4efa6ae628af968af3fe3d76baa8"], [24, 3, 1, "", "19:5 9efb922ed5200526914bd3f95ddb869b8e555bd8367143db358605307ff7ea93"], [11, 3, 1, "", "11:9 ba2818ea733c9b43c0160165759dc06495876220780d457240575201aebbf397"], [6, 3, 1, "", "21:6 ed6db46b8be18e820fbb6dfc0dd19df1bb2ac9687dacf002b00c217d8ddbf625"], [8, 3, 1, "", "1:7 3a278c9aaaabec045a6eede8eb5a0beab745d8b84b098a39b6cdf2e167bc5178"], [0, 3, 1, "", "10:13 41db8d1e89a48299f2506f2fd5b398d24cc65ebba4aced317857a727822d1c4e"], [7, 3, 1, "", "9:33 0605829262c1b010a633c97250c2141e26eabf10f42a901e0ffae239bc84909e"], [7, 3, 1, "", "9:26 fbf5fb05e9efc647400ab22d0002c1bc09b999d239850236501817c8374a143c"], [7, 3, 1, "", "9:30 6fda6306c77fde877485229b9ec857991209bb51bb0c707140c6eff580933610"], [7, 3, 1, "", "9:18 1952dd7798e9fd4d8fb5f525eedc05613f2ef1a660b93bfa8f24167e67f839bb"], [0, 3, 1, "", "10:26 338988e157f9ff9c04c5a8163cf72e90c0400a0e6ccb6b45e6f105a1b75ac855"], [0, 3, 1, "", "10:2 fd7bf7d0a40ad75d0809a98d1bd273b94708f4a26b1a3be16f7e8dbffbe638ec"], [24, 3, 1, "", "19:6 1b9334ca686a2f78808b0a5e1bf0b6793eef547e9367cf94416bb6a4009457bc"], [25, 3, 1, "", "7:7 2935b280567bdb6d4a9792e339cac22702fe95059923d9a738c60a7a8548dab5"], [19, 3, 1, "", "5:4 28dec289d15cad76b56462aa121b43b5d1e42ef0f0d0636c38ac0eb7eca4b4f9"], [0, 3, 1, "", "10:10 cd830a794d7188143f156c01744b2ee904e28c51699fff975168e027ba4793c0"], [11, 3, 1, "", "11:6 e18c1caa38c5924e033a0026fc017b1c792df55f87c598c5783efe25cb62819f"], [7, 3, 1, "", "9:21 515666a67e5b60858568348fd8b4c6021e49484b778d6ccd6c357f9b792643d1"], [7, 3, 1, "", "9:25 3f0f3a193820a8bc83e0d3bc5c7d12596eeec70afc5bb2a86f74329034382fc0"], [7, 3, 1, "", "9:24 388876fffc5a50a274a155691b5fe0142ca2651fe1ce20d17301a9682d3638f6"], [21, 3, 1, "", "8:1 03f55779646bda5f8b813a0bda5a8000aaa7a3f7df2147c58d37a6a19d213825"], [7, 3, 1, "", "9:3 4ef42a17784ccf912f1917cdc894f87abaa5c3ae6bbc330e5d97884670ee69a3"], [11, 3, 1, "", "11:13 1f973a701dba719c9b5c7879e8f7e39c271e60ebd4708b781a5ec557ca35bb6b"], [0, 3, 1, "", "10:4 d0a97d55dc69fb14de940c4597c8ec6cc4d1bdea2efef1f262ca235d4380a078"], [24, 3, 1, "", "19:1 09ef0477163f852006ab72daea7582f28fd5b47b9ec3a4188da6a52a06c1cbb9"], [19, 3, 1, "", "5:8 ee361e573cbe4dbcbc9c1aec4bea99d7af68ce46d7a8f305323fea2d888a73ae"], [8, 3, 1, "", "1:4 11a39a0b407d0ca45db7639f588e85fe27910624c6c508283f983229a6aad5db"], [1, 3, 1, "", "13:3 08694050309ada68c0f9d36f4cf7bf427a740fb2dd1175bd0acf555bedcf4729"], [11, 3, 1, "", "11:8 dd34aa75e7947124723372145385a391a6527acf3d57821cf6bfb3530926d0df"], [19, 3, 1, "", "5:5 32457ed53a0bf4373c4cfb97677b5e208930233d39b87a5accc8c508af6f58ce"], [7, 3, 1, "", "9:15 f01d77c3faa9dafff3f5a3ca3928a29d60e2867a2438140aaaa4cbceb25da31b"], [6, 3, 1, "", "21:7 a0f18eb2fe8db99bebeadf847111b16dfaa78ebdbaec8e8f7b364e6a40966ebf"], [1, 3, 1, "", "13:4 80ab4794df7b97c498adf667d822f03e67802cfa46ac84a9c38967818009cfd1"], [5, 3, 1, "", "6:10 f31c0eca37f5e923bdddeceb52ccea4057f157be662061dd8c4c26b8707dc340"], [11, 3, 1, "", "11:16 8ad70788c23781cfbb4cc77f8e9b280870f2088b7f3522cf5adf7a4030b29b48"], [7, 3, 1, "", "9:31 4eaf3f71fa346f0de97eaef7ae61b54e234608337d12733cee8930cd3a0a16be"], [0, 3, 1, "", "10:24 6e869fbccfae9516ee3421a1571bd880ea5ec5dc5aedb65e32f5a6d2977b7955"], [17, 3, 1, "", "20:3 b37827025945e3ebe09fb51af413ab507e55bef20cbd1cdc0d88bda1e5b31868"], [11, 3, 1, "", "11:10 8223ac177e0dcc171dbac1fb21b191141842026a92038b9694be40797d2bdad8"], [0, 3, 1, "", "10:11 1a672e4e07310314b3ed72804595330ecf46d9177808d67beee1497db38edc76"], [0, 3, 1, "", "10:21 d7e3897e8d4d866fe24ed708a542d480dd49b7432f4e1ab2b6e9f83e66beb79c"], [7, 3, 1, "", "9:2 0b7f0bc4680d19a82f2a03e22ab8228330095ac38f768e6138b1fa061209b0cd"], [7, 3, 1, "", "9:17 45189d0422353cd31d5e3d1460ac0bf25731cc9f464574e6acf3ba0a8661dffb"], [7, 3, 1, "", "9:29 c791afca579a283e2645e4a3bf9473606a55028fcaec0a1fca0c5d87bf7db370"], [0, 3, 1, "", "10:18 8fb89c0b3f9ad0065b86652933686cc127a11676e7b59759588bf35bbe56a204"], [25, 3, 1, "", "7:1 1a30c4fd875bd4b58309644a55091eee8d947eb825edf66ca6ed1b979a89b878"], [0, 3, 1, "", "10:17 a13634951f7946c3028793e284d6d7899f718840e70e5b30992ad30aa0b28a82"], [8, 3, 1, "", "1:1 b56c8be8103d8226bbdec210a97ca8f2c38405d36f65f17b15936a1a8284b26c"], [7, 3, 1, "", "9:13 e2ca22f3a68ea69c89d5499ab8bfaff4ea879242e37d601e8b78939484e3fbd9"], [4, 3, 1, "", "16:3 1fd314e20308ba8d525a721f6a9bf050a337f71186510503044dc84efe09173e"], [0, 3, 1, "", "10:1 c48bd96544b685d7b7a7e8a2e676eb1c8ed2066a485c20a48faa1c660ef8bdb7"], [19, 3, 1, "", "5:6 423b0dc4eb5609e28897a616d1f246d25ede8a2cfe3ad8a25e1affd343fd3519"], [25, 3, 1, "", "7:5 01045132eff6e0617d4cca46c1cc3f5d88d56776cf683971fc1530459b7f48fe"], [6, 3, 1, "", "21:1 9dbb89c33be2fd11861ca905be788d903d72880fdf1dece1bc8a63747a947445"], [21, 3, 1, "", "8:6 085c0b250339d5488037ef839a9f6dd3672026ab75232f7a43c422bca728726c"], [4, 3, 1, "", "16:2 f2e56f24b5565d180411f7693f63a3b70001ae9c0e4e605e1bd11ea5c207f968"], [4, 3, 1, "", "16:4 b346390e8119d57549b96dcb345a29235552cdc69a61d7d2c8c883cf6d34ae61"], [11, 3, 1, "", "11:3 28523ce67d9161886a6bbdc6415a2a18a12cac0bd7cf96d2e560d4acaa243c96"], [25, 3, 1, "", "7:6 e4226c8e3ff3c227a9d0de5f8e42ad468c5a93f6fb87c981f7f126d3d5399060"], [7, 3, 1, "", "9:12 b89caf540730b919c47a1f20bdd5dc9302aca3ec99300e25098600be2e706acf"], [21, 3, 1, "", "8:5 82751916e76e8a528dd974fcf8f394553a002d42480c43ef8ca7bd23dec0d51a"], [23, 3, 1, "", "C:1 d13620e441f116ffc694c67b5990b5e9e0bf77e8f8352c60bf9bf92617ff9b77"], [21, 3, 1, "", "8:3 1ea74f2f77df136dd43cf45552f12fb2f6c366bcf10505917c84e5c9f9fd5fd8"], [13, 3, 1, "", "22:5 55a932bf32ca4b5f1f13535ebf918728efa7830451bde120075904c8cc821ff0"], [7, 3, 1, "", "9:1 d85148abd62f72e649abbb14ec33bcf5dd833660e6d429978a1233e8aa19e739"], [5, 3, 1, "", "6:6 a107cb2200785dbcb7690cb3dad0f3467cdb285cffa123b2851edea8be38f609"], [4, 3, 1, "", "16:6 475f3e3082b2760a32589c7540d5123f0459abea622ba1ae15aa53068c337d7b"], [8, 3, 1, "", "1:2 4a8fd448c0e40fd0675f5d82c36b6f963f99259021c6022cc9bd5104c20fbdeb"], [5, 3, 1, "", "6:3 f5ad17e11f73a3a0df6a225d0ea1179b618c499b3b7155fbb00748809fc16a50"], [13, 3, 1, "", "22:3 fb5d9789deafd6c411d8abdd1a60bfdfea453bfbfe713df9016b5b07c26df2c9"], [14, 3, 1, "", "3:2 c820b8889c9e57bcae1988c78c8217a0fcd495f92409b93715942f79e683ae67"], [7, 3, 1, "", "9:8 0b1169bc488b60cf4dba9b24b7d4d453438aaef69d30789b16d3df1094ec74da"], [7, 3, 1, "", "9:7 2119a7ea0e7b937c1318f8b7cb342aea3ec7249cab773a35ff4b8a0701d43f4b"], [0, 3, 1, "", "10:32 9133604a8bdbc61f47a33829fc49829d94f9bb5749c0b6d99dbd05856ecee674"], [19, 3, 1, "", "5:1 fd701b3ef4e17c49416e15bb5e0685b07ec2165ebe338ee5ed86433fe2a1791c"], [2, 3, 1, "", "17:3 5a06090908c3a726a0df6203b3e9f7c460c35609c758b6db09cf2d5c5c753c8e"], [11, 3, 1, "", "11:1 68d68054bfe8ffe57002321f94f09f2c21faac92f10052af0b8ebb6bb2e4bdd4"], [17, 3, 1, "", "20:1 23ad7afdee8d11ed607ec24d3a0e15437d673156ba4b127587b5669f1832653b"], [7, 3, 1, "", "9:14 2f2202efc417e1cd3118f5b446cf8c8a375b6e5f8ebaed72a0201aa9d161578a"], [24, 3, 1, "", "19:10 14f513b2d197bbf061de106591d50be0e1b5efdd28b7b73e3c01a1fd27dc914d"], [24, 3, 1, "", "19:4 509a721d7a591aac4ddac02ca26ef6fc26e0ae40b040578d4282304dbef76b45"], [19, 3, 1, "", "5:3 640a01339d6302f50e834a92db0b99f585848a4dc1dfb4801941267dfe6c1eff"], [8, 3, 1, "", "1:6 8b4dce11b14d66a6a1177ef131384957fe6a887c388d56a1902e09ee60f80af0"], [6, 3, 1, "", "21:2 33f23ecced9a34c5f1aaaa909380603062d763f33056c5a2998e61ba20e81e21"], [21, 3, 1, "", "8:2 857eb6f6081f30de98150db89a25a25467c0e180b1c3eb19f2786475a5a6e424"], [0, 3, 1, "", "10:23 53bc991f032b9bfaab3cb72189a8ae6d8772250cc7fbaefa3b80bbd25679141f"], [4, 3, 1, "", "16:5 83c2582339039d863409873a919aa3040ed86f444b3a5f5729e9fe0d65313c5e"], [19, 3, 1, "", "5:10 66e6567b6902e8a974dcb281251e03d5341f1fbcd6c52bc6d9398d5b175905b1"], [0, 3, 1, "", "10:12 f83c7a08c44f0dc091a19c1014f202ab5538474a3d818f1583bd138daef33ecf"], [0, 3, 1, "", "10:31 3fbb1aaae56596919b24b2c079e95546dfc6a067d076b0d2e43e09ef37e35a9f"], [13, 3, 1, "", "22:1 2ecbb717faf9cd41966fd3fa61c9973605adda7174928d76aeec692e2f57f1e1"], [0, 3, 1, "", "10:3 fda609cdbb71ae52c820019783b3b6858d633fdd6de601cfae585217aeb034aa"], [24, 3, 1, "", "19:8 7740b81deb4cc8d3a5d63073faa941c897de8931c90af82f402d60d8f5cf7ad6"], [7, 3, 1, "", "9:9 afcad007b988dd4e9a7ae77d05318b5818905bf05921cd7d14070abe83ebb9b2"], [7, 3, 1, "", "9:23 45a75ca66fc48e3abbe4a9b46d1599f9ecbcfae9fbc5df35e1b5d8939f41f8c4"], [25, 3, 1, "", "7:3 501fd5dc12d09844a612f32f00e4d5a2dedfdf7a1659cf1e4b1e7aa5ab84d7bb"], [6, 3, 1, "", "21:5 fc67b06bdfa241b1112995e95bea87b539fd31dee8c24e402fcd9d7af65eed2f"], [7, 3, 1, "", "9:34 406115e1f2b804459a7155b5aa521a67fae4b9a11d3d9ee26b45671e0d705fad"], [11, 3, 1, "", "11:4 073aeb6b836eee108b5b6d5a5ded4f1b8df8ab96ec075686dca1d2b7fc6c1b34"], [19, 3, 1, "", "5:2 f11f4d96ce76157d36700b1642b225614023417f88f39e02004f751fa0ceca1c"], [11, 3, 1, "", "11:11 0ecbb270fa78be720b325ddc3197182ea1ca39be3069bd7d37f201389c9b3991"], [0, 3, 1, "", "10:19 22be2f18e00bb9e898293564455031809a4ffbdba44f030bff8af6c23ada5048"], [7, 3, 1, "", "9:27 bbb5147c63bbcc53372207b2b9688b14bf724e4eebf9d6eed8b1c8335bc46339"], [7, 3, 1, "", "9:4 1be13228840af974c47c9d4a16fb932edc3efcbbb1b5a5d8261d4eb3d4db1df5"], [7, 3, 1, "", "9:28 06806b5f2bb00b12d499429e29aa3f6916237f0c54e9136fd16474fae18c14fb"], [11, 3, 1, "", "11:15 7093aa443b2d63b8c3ad1d99dc26a6f1df03d367428b954e62e372eab3d4f569"], [0, 3, 1, "", "10:29 f1864701261d89610bc085bf20379aabb9a7f867190c51deee3b5ab4e0731ab4"], [0, 3, 1, "", "10:33 a9ddbf6bc0c06113d12f75ca1fe4401527ac5ff2a0384f375f53b2b7eedc084d"], [2, 3, 1, "", "17:1 58e23287dc1c3ffbe6b2c4672501d222916a129910befc8fadc364de5171c351"], [21, 3, 1, "", "8:4 36cd13cda4653f00db550d04d91838c3dc10bfcbbf15d67f8ba19c0d5ddc297b"], [7, 3, 1, "", "9:22 4ccbc87469f1565c32bef31f5909da4c2b2f1febaf71e3b0216053540e2732c4"], [24, 3, 1, "", "19:2 72911c6efacc1ea81b757fea368ab51b658c5f44690af8bb4bf5076196f02dba"], [7, 3, 1, "", "9:19 a336a489c323ad22b7aa3059350a2400bb8e41f5eef6ce02b17682c438a9fd09"], [0, 3, 1, "", "10:27 c67bd6dc496b87f14e94eac06fb1dd53a785b33748660d90a3455b63b8f15dea"], [5, 3, 1, "", "6:5 d799dd1030ce49998c996f5c45f402da4e7a6d4ace50780e905e20bd758f7cec"], [0, 3, 1, "", "10:7 61134011658677b475c3f8e65ac36ab5b479e0746afd064ac6d0084c0441fbb6"], [24, 3, 1, "", "19:3 ac90013bdfea2c44c2ea16d0d92eb8b7a3b32f33cdb44553018c9de58de2d0ab"], [7, 3, 1, "", "9:10 a6f8a428953b804ae4d9a530c1659087e99139633acc2e99d4315bf792bf123a"], [13, 3, 1, "", "22:7 c16628799da95c60a31934e0f2f6de7cb46011a537bb8effa46c86007e1dc6d7"], [15, 3, 1, "", "2:1 c63cd9576e1595dfb4d7d38e0c9732d20c4044d18947914c36952a45f6592248"], [5, 3, 1, "", "6:1 f4a9c891c5f3f7a4164d6c86d796b665f9435bc01fc8bbbbaa59036b553a042b"], [0, 3, 1, "", "10:14 66b5d7677a5542109bcd8f36408c3ed7ec1aca313c4c747fc28557fb2dd3c6c0"], [7, 3, 1, "", "9:35 7527f425026d6c1455709270dbc862fa8c81edae9aa97bbf4c63b854ab77ea04"], [5, 3, 1, "", "6:8 ad39790b9e259799a61ae4c3f59b7b80ad1d7684d19dace1619e68b08df39d1a"], [25, 3, 1, "", "7:2 73bb0dbe94c2f521e89fae4c897fc338813c9175ff4600fed13e41c0b9878e30"], [17, 3, 1, "", "20:4 f947401b4192d1cb447cdbc6dfa662250896c68e1cb0477bdfdbc7dfaf9b809c"], [1, 3, 1, "", "13:1 eff2f3d8085ca2ad43e10aa74acd5fb4de1a71393ec1e3bb69b4da6eca0bac43"], [19, 3, 1, "", "5:9 b70079f33aaa9cb4c2507706bdb13c9e8beed748288a7751770b7aa4309c17bf"], [11, 3, 1, "", "11:7 74cac3914710c2f1a1f624a3c5a1c9aaf33da46b9946695f9bee4eaeb22c5e42"], [25, 3, 1, "", "7:4 d4a5c1906b3bbe1c9d809c9d1156e75673a511153eedc4950f47fb135b6a59a8"], [14, 3, 1, "", "3:1 7828a434b91eb775a25b624f9c2c6e10d5b02ed8e26529f7471e4a787e24e10f"], [24, 3, 1, "", "19:9 bb058285e28804f8335348bcfa3c28e0f032f4346bc2aaf52a67145036233241"], [6, 3, 1, "", "21:4 b297f2f7182e518adc328b76e8e51549d74fd016d982e945f3afad959b8e4fee"], [0, 3, 1, "", "10:9 6f1791ecd8b47dfbf50561704cc838d8b0e544cf7c69b576dd48120715a47166"], [8, 3, 1, "", "1:5 cd1b728c4e56af1dd90836a76afce9239d07ea2aa3095cbeedf8693a22f14caf"], [8, 3, 1, "", "1:8 1e02dbccc64818a6cebcc7d6331d8281a24621e813178d0f5be9d0b3356c7a22"], [19, 3, 1, "", "5:7 d92c5c133b1308dfee746f9722cc628be4cc1b150f3f387c0d2c08e961e687fb"], [0, 3, 1, "", "10:16 b5024c3cf8ba9c9ff0e7a6bd05ae96c8f7c64599e2eaec349fae2ca6767f4bab"], [2, 3, 1, "", "17:2 60786d66db9926333e9768b0cc8aa490ff764f600fdbdb389912f9e85add0678"], [8, 3, 1, "", "1:3 02be35a62aff5e48d56d3fb05c75ade724aff55d6ad8278715bd7fac8adbe03f"], [24, 3, 1, "", "19:7 08016621bfd496b3d4c162d71caf6c3033c213bf9b52662adf1137b696285b4b"], [7, 3, 1, "", "9:5 e7bbdbb6cf00db43de1e27fe5b39e71062d7737351b11ee44c1f02ab45beabfb"], [11, 3, 1, "", "11:5 6d7038fd93f535f1a95c93f6917f3cebd5b30ad181afde8d89173856ec36d502"], [13, 3, 1, "", "22:4 4b4a76da9d4b5011fcbcd054fffc111ce72238f797e8cf7b2bbbccec650c24c3"], [7, 3, 1, "", "9:11 b82bf4578023aa2218ec01202b93d193cbb48fd8b53d740a5c9d3bb482caaf10"], [0, 3, 1, "", "10:25 915d230d994ce8e745b1083bb75cb58b37ac8537af7fd5486a86d1314cb353d0"], [4, 3, 1, "", "16:1 d0dadbee084de3030e81aaf2325ea8878e99a72e77800a2662c1fe290bbc9d62"], [0, 3, 1, "", "10:5 a21d4472dc9edff52ba6084426735486e96547a9916ebbf6041810119a4ca7aa"], [7, 3, 1, "", "9:32 dc35e76e01d0f08b81b61a7c8861a422fa2dc8a5d44ce4557affba712d088d61"], [0, 3, 1, "", "10:6 a5074f92b70f64ed6d002c08f65bfa91a814cf5b80b19137743ca62a12bda2b6"], [0, 3, 1, "", "10:30 69ca8f9162621967970ad1847b4956963b8ccc273a6ac757f5d7487b6f75650f"], [0, 3, 1, "", "10:28 1d3e0acf8e8b25427b6a4179ef6f36b9c9be2060806f8a4532c85d38970a854f"], [0, 3, 1, "", "10:20 9647e6f192f7a123a465887f651e66f32b17c903edd98aa87c48510b16acd40f"], [5, 3, 1, "", "6:4 34930eb5f41ade165e8e2dcedc1cdbeb285b107f659a41466184f4809258e759"], [24, 3, 1, "", "19:11 c476883b58a5e4480fa0505d41dc097727812f40edf56fd7a46f4fd3595ee2f3"], [1, 3, 1, "", "13:2 dd933aff5339727903dca2ff3f8484b0c000fdda5ab4ef729319db3dd76c9f10"], [7, 3, 1, "", "9:16 a8e601de98599b419876278ab5521c5cc49ae6bfdacfe061350c283e236e211f"], [7, 3, 1, "", "9:6 d6307364051e9afc70d6e0e3e277a7a096ecb2eb1db51e356303d7ee87537a12"], [11, 3, 1, "", "11:2 a88885418df7946e8facb892e33e099cc8789c354fbf7bd977f460e40ec2089d"], [11, 3, 1, "", "11:14 94597e560f592f649b38ef27778a62819bc7e5c2e01faa0ef53fa29225d8083c"], [0, 3, 1, "", "10:22 3b7142bcde18f322ffa41b2c57c18446ab40aa8a6612d601b48ec17273ad3d94"], [11, 3, 1, "", "11:12 7ec52a2c02f0e55bea6e0a3c728c22e5720e34bdeabc0740d52707774946acbe"], [0, 3, 1, "", "10:34 17b593b8d0cb4dacc6eb9d143a7e49048a6708d07c811e2595e8cfbb89483827"], [10, 0, 1, "term_for_loop", "for_loop"], [10, 0, 1, "term_for_loop_expression", "for_loop_expression"], [10, 0, 1, "term_foreign_function_interface", "foreign_function_interface"], [1, 0, 1, "term_foreign_function_interface_attribute", "foreign_function_interface_attribute"], [22, 1, 1, "syntax_forgenericparameterlist", "forgenericparameterlist"], [5, 1, 1, "syntax_forloopexpression", "forloopexpression"], [10, 0, 1, "term_fragment_specifier", "fragment_specifier"], [17, 0, 1, "term_fragment_specifier_restriction", "fragment_specifier_restriction"], [10, 0, 1, "term_full_range_expression", "full_range_expression"], [10, 0, 1, "term_function", "function"], [10, 0, 1, "term_function_body", "function_body"], [10, 0, 1, "term_function_item_type", "function_item_type"], [10, 0, 1, "term_function_lifetime_elision", "function_lifetime_elision"], [10, 0, 1, "term_function_like_macro", "function_like_macro"], [10, 0, 1, "term_function_parameter", "function_parameter"], [5, 0, 1, "term_function_pointer_to_address_cast", "function_pointer_to_address_cast"], [5, 0, 1, "term_function_pointer_to_pointer_cast", "function_pointer_to_pointer_cast"], [10, 0, 1, "term_function_pointer_type", "function_pointer_type"], [10, 0, 1, "term_function_pointer_type_parameter", "function_pointer_type_parameter"], [10, 0, 1, "term_function_qualifier", "function_qualifier"], [10, 0, 1, "term_function_signature", "function_signature"], [10, 0, 1, "term_function_type", "function_type"], [7, 1, 1, "syntax_functionbody", "functionbody"], [7, 1, 1, "syntax_functiondeclaration", "functiondeclaration"], [7, 1, 1, "syntax_functionparameter", "functionparameter"], [7, 1, 1, "syntax_functionparameterlist", "functionparameterlist"], [7, 1, 1, "syntax_functionparameterpattern", "functionparameterpattern"], [7, 1, 1, "syntax_functionparametervariadicpart", "functionparametervariadicpart"], [22, 1, 1, "syntax_functionpointertypeparameter", "functionpointertypeparameter"], [22, 1, 1, "syntax_functionpointertypeparameterlist", "functionpointertypeparameterlist"], [22, 1, 1, "syntax_functionpointertypequalifierlist", "functionpointertypequalifierlist"], [22, 1, 1, "syntax_functionpointertypespecification", "functionpointertypespecification"], [7, 1, 1, "syntax_functionqualifierlist", "functionqualifierlist"], [10, 0, 1, "term_fundamental", "fundamental"], [10, 0, 1, "term_future", "future"], [10, 0, 1, "term_future_operand", "future_operand"], [5, 1, 1, "syntax_futureoperand", "futureoperand"], [10, 0, 1, "term_generic_argument", "generic_argument"], [10, 0, 1, "term_generic_associated_type", "generic_associated_type"], [10, 0, 1, "term_generic_conformance", "generic_conformance"], [10, 0, 1, "term_generic_enum", "generic_enum"], [10, 0, 1, "term_generic_function", "generic_function"], [10, 0, 1, "term_generic_implementation", "generic_implementation"], [10, 0, 1, "term_generic_parameter", "generic_parameter"], [10, 0, 1, "term_generic_parameter_scope", "generic_parameter_scope"], [10, 0, 1, "term_generic_struct", "generic_struct"], [10, 0, 1, "term_generic_substitution", "generic_substitution"], [10, 0, 1, "term_generic_trait", "generic_trait"], [10, 0, 1, "term_generic_type", "generic_type"], [10, 0, 1, "term_generic_type_alias", "generic_type_alias"], [10, 0, 1, "term_generic_union", "generic_union"], [9, 1, 1, "syntax_genericargument", "genericargument"], [9, 1, 1, "syntax_genericargumentlist", "genericargumentlist"], [9, 1, 1, "syntax_genericparameter", "genericparameter"], [9, 1, 1, "syntax_genericparameterlist", "genericparameterlist"], [10, 0, 1, "term_glob_import", "glob_import"], [1, 2, 1, "codeterm_global_allocator", "global_allocator"], [10, 0, 1, "term_global_path", "global_path"], [10, 0, 1, "term_global_type_variable", "global_type_variable"], [1, 1, 1, "syntax_globalallocatorcontent", "globalallocatorcontent"], [13, 1, 1, "syntax_globalasmarguments", "globalasmarguments"], [3, 1, 1, "syntax_globimport", "globimport"], [10, 0, 1, "term_greater_than_expression", "greater_than_expression"], [10, 0, 1, "term_greater_than_or_equals_expression", "greater_than_or_equals_expression"], [5, 1, 1, "syntax_greaterthanexpression", "greaterthanexpression"], [5, 1, 1, "syntax_greaterthanorequalsexpression", "greaterthanorequalsexpression"], [10, 0, 1, "term_half_open_range_pattern", "half_open_range_pattern"], [19, 1, 1, "syntax_halfopenrangepattern", "halfopenrangepattern"], [1, 1, 1, "syntax_helperattributelist", "helperattributelist"], [10, 0, 1, "term_hexadecimal_literal", "hexadecimal_literal"], [15, 1, 1, "syntax_hexadecimaldigit", "hexadecimaldigit"], [15, 1, 1, "syntax_hexadecimaldigitorunderscore", "hexadecimaldigitorunderscore"], [15, 1, 1, "syntax_hexadecimalliteral", "hexadecimalliteral"], [10, 0, 1, "term_higher_ranked_trait_bound", "higher_ranked_trait_bound"], [10, 0, 1, "term_hygiene", "hygiene"], [10, 0, 1, "term_hygienic", "hygienic"], [10, 2, 1, "codeterm_i128", "i128"], [10, 2, 1, "codeterm_i16", "i16"], [10, 2, 1, "codeterm_i32", "i32"], [10, 2, 1, "codeterm_i64", "i64"], [10, 2, 1, "codeterm_i8", "i8"], [15, 1, 1, "syntax_identifier", "identifier"], [10, 0, 1, "term_identifier", "identifier"], [10, 0, 1, "term_identifier_pattern", "identifier_pattern"], [19, 0, 1, "term_identifier_pattern_matching", "identifier_pattern_matching"], [15, 1, 1, "syntax_identifierlist", "identifierlist"], [15, 1, 1, "syntax_identifierorunderscore", "identifierorunderscore"], [19, 1, 1, "syntax_identifierpattern", "identifierpattern"], [10, 0, 1, "term_if_expression", "if_expression"], [10, 0, 1, "term_if_let_expression", "if_let_expression"], [5, 1, 1, "syntax_ifexpression", "ifexpression"], [5, 1, 1, "syntax_ifletexpression", "ifletexpression"], [1, 2, 1, "codeterm_ignore", "ignore"], [1, 1, 1, "syntax_ignorecontent", "ignorecontent"], [1, 1, 1, "syntax_ignorereason", "ignorereason"], [10, 0, 1, "term_immutable", "immutable"], [10, 0, 1, "term_immutable_borrow", "immutable_borrow"], [10, 0, 1, "term_immutable_borrow_expression", "immutable_borrow_expression"], [10, 0, 1, "term_immutable_place_expression", "immutable_place_expression"], [10, 0, 1, "term_immutable_place_expression_context", "immutable_place_expression_context"], [10, 0, 1, "term_immutable_raw_pointer_type", "immutable_raw_pointer_type"], [10, 0, 1, "term_immutable_reference", "immutable_reference"], [10, 0, 1, "term_immutable_static", "immutable_static"], [10, 0, 1, "term_immutable_variable", "immutable_variable"], [10, 0, 1, "term_impl_header_lifetime_elision", "impl_header_lifetime_elision"], [10, 0, 1, "term_impl_trait_type", "impl_trait_type"], [11, 1, 1, "syntax_implementation", "implementation"], [10, 0, 1, "term_implementation", "implementation"], [10, 0, 1, "term_implementation_body", "implementation_body"], [10, 0, 1, "term_implementation_coherence", "implementation_coherence"], [10, 0, 1, "term_implementation_conformance", "implementation_conformance"], [11, 1, 1, "syntax_implementationbody", "implementationbody"], [10, 0, 1, "term_implemented_trait", "implemented_trait"], [11, 1, 1, "syntax_implementedtrait", "implementedtrait"], [10, 0, 1, "term_implementing_type", "implementing_type"], [11, 1, 1, "syntax_implementingtype", "implementingtype"], [10, 0, 1, "term_implicit_borrow", "implicit_borrow"], [10, 0, 1, "term_implicitly_declared_entity", "implicitly_declared_entity"], [10, 0, 1, "term_implied_bound", "implied_bound"], [22, 1, 1, "syntax_impltraittypespecification", "impltraittypespecification"], [22, 1, 1, "syntax_impltraittypespecificationonebound", "impltraittypespecificationonebound"], [3, 0, 1, "term_import_path_prefix", "import_path_prefix"], [1, 1, 1, "syntax_importedmacrolist", "importedmacrolist"], [10, 0, 1, "term_in_scope", "in_scope"], [10, 0, 1, "term_inclusive_range_pattern", "inclusive_range_pattern"], [19, 1, 1, "syntax_inclusiverangepattern", "inclusiverangepattern"], [10, 0, 1, "term_incomplete_associated_constant", "incomplete_associated_constant"], [10, 0, 1, "term_incomplete_associated_function", "incomplete_associated_function"], [10, 0, 1, "term_incomplete_associated_type", "incomplete_associated_type"], [10, 0, 1, "term_index_expression", "index_expression"], [10, 0, 1, "term_indexable_type", "indexable_type"], [10, 0, 1, "term_indexed_deconstructor", "indexed_deconstructor"], [10, 0, 1, "term_indexed_field_selector", "indexed_field_selector"], [10, 0, 1, "term_indexed_initializer", "indexed_initializer"], [10, 0, 1, "term_indexed_operand", "indexed_operand"], [19, 1, 1, "syntax_indexeddeconstructor", "indexeddeconstructor"], [5, 1, 1, "syntax_indexedfieldselector", "indexedfieldselector"], [5, 1, 1, "syntax_indexedinitializer", "indexedinitializer"], [5, 1, 1, "syntax_indexedoperand", "indexedoperand"], [5, 1, 1, "syntax_indexexpression", "indexexpression"], [10, 0, 1, "term_indexing_operand", "indexing_operand"], [5, 1, 1, "syntax_indexingoperand", "indexingoperand"], [10, 0, 1, "term_indirection_type", "indirection_type"], [10, 0, 1, "term_inert_attribute", "inert_attribute"], [10, 0, 1, "term_inferred_type", "inferred_type"], [22, 1, 1, "syntax_inferredtype", "inferredtype"], [10, 0, 1, "term_infinite_loop", "infinite_loop"], [10, 0, 1, "term_infinite_loop_expression", "infinite_loop_expression"], [5, 1, 1, "syntax_infiniteloopexpression", "infiniteloopexpression"], [10, 0, 1, "term_inherent_implementation", "inherent_implementation"], [11, 1, 1, "syntax_inherentimplementation", "inherentimplementation"], [10, 0, 1, "term_initialization", "initialization"], [10, 0, 1, "term_initialization_expression", "initialization_expression"], [10, 0, 1, "term_initialization_type", "initialization_type"], [22, 1, 1, "syntax_initializationtype", "initializationtype"], [18, 0, 1, "term_initialized", "initialized"], [1, 2, 1, "codeterm_inline", "inline"], [10, 0, 1, "term_inline_assembly", "inline_assembly"], [10, 0, 1, "term_inline_module", "inline_module"], [1, 1, 1, "syntax_inlinecontent", "inlinecontent"], [1, 0, 1, "term_inlined", "inlined"], [1, 1, 1, "syntax_inlinehint", "inlinehint"], [20, 1, 1, "syntax_inlinemodulespecification", "inlinemodulespecification"], [1, 0, 1, "term_inlining", "inlining"], [10, 0, 1, "term_inner_attribute", "inner_attribute"], [10, 0, 1, "term_inner_block_doc", "inner_block_doc"], [10, 0, 1, "term_inner_doc_comment", "inner_doc_comment"], [10, 0, 1, "term_inner_line_doc", "inner_line_doc"], [1, 1, 1, "syntax_innerattribute", "innerattribute"], [1, 1, 1, "syntax_innerattributeordoc", "innerattributeordoc"], [15, 1, 1, "syntax_innerblockdoc", "innerblockdoc"], [1, 1, 1, "syntax_innerbuiltinattribute", "innerbuiltinattribute"], [15, 1, 1, "syntax_innerlinedoc", "innerlinedoc"], [22, 0, 1, "term_input_lifetime", "input_lifetime"], [10, 0, 1, "term_input_output_register_expression", "input_output_register_expression"], [10, 0, 1, "term_input_register", "input_register"], [10, 0, 1, "term_input_register_expression", "input_register_expression"], [13, 1, 1, "syntax_inputoutputregisterexpression", "inputoutputregisterexpression"], [13, 1, 1, "syntax_inputregisterexpression", "inputregisterexpression"], [10, 0, 1, "term_integer_literal", "integer_literal"], [10, 0, 1, "term_integer_suffix", "integer_suffix"], [10, 0, 1, "term_integer_type", "integer_type"], [10, 0, 1, "term_integer_type_variable", "integer_type_variable"], [15, 1, 1, "syntax_integercontent", "integercontent"], [15, 1, 1, "syntax_integerliteral", "integerliteral"], [15, 1, 1, "syntax_integersuffix", "integersuffix"], [10, 0, 1, "term_interior_mutability", "interior_mutability"], [10, 0, 1, "term_intermediate_match_arm", "intermediate_match_arm"], [5, 1, 1, "syntax_intermediatematcharm", "intermediatematcharm"], [22, 0, 1, "term_invariant", "invariant"], [10, 0, 1, "term_irrefutable_constant", "irrefutable_constant"], [10, 0, 1, "term_irrefutable_pattern", "irrefutable_pattern"], [10, 2, 1, "codeterm_isize", "isize"], [14, 1, 1, "syntax_item", "item"], [10, 0, 1, "term_item", "item"], [10, 0, 1, "term_item_scope", "item_scope"], [10, 0, 1, "term_item_statement", "item_statement"], [14, 1, 1, "syntax_itemwithvisibility", "itemwithvisibility"], [10, 0, 1, "term_iteration_expression", "iteration_expression"], [5, 1, 1, "syntax_iterationexpression", "iterationexpression"], [15, 1, 1, "syntax_keyword", "keyword"], [10, 0, 1, "term_keyword", "keyword"], [5, 1, 1, "syntax_label", "label"], [10, 0, 1, "term_label", "label"], [10, 0, 1, "term_label_indication", "label_indication"], [3, 0, 1, "term_label_namespace", "label_namespace"], [10, 0, 1, "term_label_scope", "label_scope"], [5, 1, 1, "syntax_labelindication", "labelindication"], [3, 0, 1, "term_language_prelude", "language_prelude"], [10, 0, 1, "term_layout", "layout"], [10, 0, 1, "term_lazy_and_expression", "lazy_and_expression"], [10, 0, 1, "term_lazy_boolean_expression", "lazy_boolean_expression"], [10, 0, 1, "term_lazy_or_expression", "lazy_or_expression"], [5, 1, 1, "syntax_lazyandexpression", "lazyandexpression"], [5, 1, 1, "syntax_lazybooleanexpression", "lazybooleanexpression"], [5, 1, 1, "syntax_lazyorexpression", "lazyorexpression"], [22, 0, 1, "term_least_upper_bound_coercion", "least_upper_bound_coercion"], [10, 0, 1, "term_left_operand", "left_operand"], [5, 1, 1, "syntax_leftoperand", "leftoperand"], [10, 0, 1, "term_less_than_expression", "less_than_expression"], [10, 0, 1, "term_less_than_or_equals_expression", "less_than_or_equals_expression"], [5, 1, 1, "syntax_lessthanexpression", "lessthanexpression"], [5, 1, 1, "syntax_lessthanorequalsexpression", "lessthanorequalsexpression"], [10, 0, 1, "term_let_initializer", "let_initializer"], [10, 0, 1, "term_let_statement", "let_statement"], [21, 1, 1, "syntax_letinitializer", "letinitializer"], [21, 1, 1, "syntax_letstatement", "letstatement"], [10, 0, 1, "term_lexical_element", "lexical_element"], [15, 1, 1, "syntax_lexicalelement", "lexicalelement"], [10, 0, 1, "term_library_crate", "library_crate"], [22, 1, 1, "syntax_lifetime", "lifetime"], [10, 0, 1, "term_lifetime", "lifetime"], [10, 0, 1, "term_lifetime_argument", "lifetime_argument"], [10, 0, 1, "term_lifetime_bound", "lifetime_bound"], [10, 0, 1, "term_lifetime_bound_predicate", "lifetime_bound_predicate"], [10, 0, 1, "term_lifetime_elision", "lifetime_elision"], [3, 0, 1, "term_lifetime_namespace", "lifetime_namespace"], [10, 0, 1, "term_lifetime_parameter", "lifetime_parameter"], [10, 0, 1, "term_lifetime_variable", "lifetime_variable"], [9, 1, 1, "syntax_lifetimeargument", "lifetimeargument"], [9, 1, 1, "syntax_lifetimeboundpredicate", "lifetimeboundpredicate"], [22, 1, 1, "syntax_lifetimeindication", "lifetimeindication"], [22, 1, 1, "syntax_lifetimeindicationlist", "lifetimeindicationlist"], [9, 1, 1, "syntax_lifetimeparameter", "lifetimeparameter"], [1, 0, 1, "term_limits_attribute", "limits_attribute"], [10, 0, 1, "term_line", "line"], [10, 0, 1, "term_line_comment", "line_comment"], [15, 1, 1, "syntax_linecomment", "linecomment"], [15, 1, 1, "syntax_linecommentordoc", "linecommentordoc"], [1, 2, 1, "codeterm_link", "link"], [1, 2, 1, "codeterm_link_name", "link_name"], [1, 2, 1, "codeterm_link_ordinal", "link_ordinal"], [1, 2, 1, "codeterm_link_section", "link_section"], [1, 1, 1, "syntax_linkcontent", "linkcontent"], [1, 1, 1, "syntax_linknamecontent", "linknamecontent"], [1, 1, 1, "syntax_linkoption", "linkoption"], [1, 1, 1, "syntax_linkordinalcontent", "linkordinalcontent"], [1, 1, 1, "syntax_linksectioncontent", "linksectioncontent"], [15, 1, 1, "syntax_literal", "literal"], [10, 0, 1, "term_literal", "literal"], [10, 0, 1, "term_literal_expression", "literal_expression"], [10, 0, 1, "term_literal_pattern", "literal_pattern"], [19, 0, 1, "term_literal_pattern_matching", "literal_pattern_matching"], [5, 1, 1, "syntax_literalexpression", "literalexpression"], [19, 1, 1, "syntax_literalpattern", "literalpattern"], [10, 0, 1, "term_local_trait", "local_trait"], [10, 0, 1, "term_local_type", "local_type"], [10, 0, 1, "term_local_variable", "local_variable"], [10, 0, 1, "term_loop", "loop"], [10, 0, 1, "term_loop_body", "loop_body"], [10, 0, 1, "term_loop_expression", "loop_expression"], [5, 1, 1, "syntax_loopbody", "loopbody"], [5, 1, 1, "syntax_loopcontent", "loopcontent"], [5, 1, 1, "syntax_loopexpression", "loopexpression"], [10, 0, 1, "term_macro", "macro"], [1, 0, 1, "term_macro_attribute", "macro_attribute"], [10, 0, 1, "term_macro_expansion", "macro_expansion"], [1, 2, 1, "codeterm_macro_export", "macro_export"], [10, 0, 1, "term_macro_implementation_function", "macro_implementation_function"], [10, 0, 1, "term_macro_invocation", "macro_invocation"], [10, 0, 1, "term_macro_match", "macro_match"], [10, 0, 1, "term_macro_matcher", "macro_matcher"], [10, 0, 1, "term_macro_matching", "macro_matching"], [3, 0, 1, "term_macro_namespace", "macro_namespace"], [10, 0, 1, "term_macro_repetition", "macro_repetition"], [10, 0, 1, "term_macro_repetition_in_matching", "macro_repetition_in_matching"], [10, 0, 1, "term_macro_repetition_in_transcription", "macro_repetition_in_transcription"], [10, 0, 1, "term_macro_rule", "macro_rule"], [10, 0, 1, "term_macro_statement", "macro_statement"], [10, 0, 1, "term_macro_transcriber", "macro_transcriber"], [10, 0, 1, "term_macro_transcription", "macro_transcription"], [1, 2, 1, "codeterm_macro_use", "macro_use"], [3, 0, 1, "term_macro_use_prelude", "macro_use_prelude"], [1, 1, 1, "syntax_macroexportcontent", "macroexportcontent"], [17, 1, 1, "syntax_macrofragmentspecifier", "macrofragmentspecifier"], [17, 1, 1, "syntax_macroinvocation", "macroinvocation"], [14, 1, 1, "syntax_macroitem", "macroitem"], [17, 1, 1, "syntax_macromatch", "macromatch"], [17, 1, 1, "syntax_macromatcher", "macromatcher"], [17, 1, 1, "syntax_macromatchtoken", "macromatchtoken"], [17, 1, 1, "syntax_macrometavariable", "macrometavariable"], [17, 1, 1, "syntax_macrometavariableindication", "macrometavariableindication"], [17, 1, 1, "syntax_macrometavariablematch", "macrometavariablematch"], [17, 1, 1, "syntax_macrorepetitionmatch", "macrorepetitionmatch"], [17, 1, 1, "syntax_macrorepetitionmatchcontent", "macrorepetitionmatchcontent"], [17, 1, 1, "syntax_macrorepetitionoperator", "macrorepetitionoperator"], [17, 1, 1, "syntax_macrorepetitionseparator", "macrorepetitionseparator"], [17, 1, 1, "syntax_macrorepetitiontranscriber", "macrorepetitiontranscriber"], [17, 1, 1, "syntax_macrorule", "macrorule"], [17, 1, 1, "syntax_macrorulelist", "macrorulelist"], [17, 1, 1, "syntax_macrorulesdeclaration", "macrorulesdeclaration"], [17, 1, 1, "syntax_macrorulesdefinition", "macrorulesdefinition"], [17, 1, 1, "syntax_macrotranscriber", "macrotranscriber"], [1, 1, 1, "syntax_macrousecontent", "macrousecontent"], [10, 0, 1, "term_main_function", "main_function"], [10, 0, 1, "term_match_arm", "match_arm"], [10, 0, 1, "term_match_arm_body", "match_arm_body"], [10, 0, 1, "term_match_arm_guard", "match_arm_guard"], [10, 0, 1, "term_match_arm_matcher", "match_arm_matcher"], [10, 0, 1, "term_match_expression", "match_expression"], [5, 1, 1, "syntax_matcharmguard", "matcharmguard"], [5, 1, 1, "syntax_matcharmlist", "matcharmlist"], [5, 1, 1, "syntax_matcharmmatcher", "matcharmmatcher"], [5, 0, 1, "term_matched_argument_operand", "matched_argument_operand"], [19, 0, 1, "term_matched_indexed_deconstructor", "matched_indexed_deconstructor"], [5, 0, 1, "term_matched_indexed_initializer", "matched_indexed_initializer"], [19, 0, 1, "term_matched_named_deconstructor", "matched_named_deconstructor"], [5, 0, 1, "term_matched_named_initializer", "matched_named_initializer"], [19, 0, 1, "term_matched_shorthand_deconstructor", "matched_shorthand_deconstructor"], [5, 0, 1, "term_matched_shorthand_initializer", "matched_shorthand_initializer"], [19, 0, 1, "term_matched_tuple_struct_subpattern", "matched_tuple_struct_subpattern"], [19, 0, 1, "term_matched_tuple_subpattern", "matched_tuple_subpattern"], [5, 1, 1, "syntax_matchexpression", "matchexpression"], [10, 0, 1, "term_metavariable", "metavariable"], [10, 0, 1, "term_metavariable_indication", "metavariable_indication"], [10, 0, 1, "term_method", "method"], [10, 0, 1, "term_method_call_expression", "method_call_expression"], [10, 0, 1, "term_method_operand", "method_operand"], [10, 0, 1, "term_method_resolution", "method_resolution"], [3, 0, 1, "term_method_resolution_implementation_candidate_lookup", "method_resolution_implementation_candidate_lookup"], [3, 0, 1, "term_method_resolution_inherent_implementation_candidate_lookup", "method_resolution_inherent_implementation_candidate_lookup"], [3, 0, 1, "term_method_resolution_receiver_candidate_lookup", "method_resolution_receiver_candidate_lookup"], [3, 0, 1, "term_method_resolution_trait_implementation_candidate_lookup", "method_resolution_trait_implementation_candidate_lookup"], [5, 1, 1, "syntax_methodcallexpression", "methodcallexpression"], [5, 1, 1, "syntax_methodoperand", "methodoperand"], [10, 0, 1, "term_mixed_site_hygiene", "mixed_site_hygiene"], [10, 0, 1, "term_modifying_operand", "modifying_operand"], [5, 1, 1, "syntax_modifyingoperand", "modifyingoperand"], [10, 0, 1, "term_module", "module"], [1, 0, 1, "term_module_path", "module_path"], [20, 1, 1, "syntax_moduledeclaration", "moduledeclaration"], [1, 0, 1, "term_modules_attribute", "modules_attribute"], [20, 1, 1, "syntax_modulespecification", "modulespecification"], [10, 0, 1, "term_move_type", "move_type"], [10, 0, 1, "term_multi_segment_path", "multi_segment_path"], [10, 0, 1, "term_multiplication_assignment", "multiplication_assignment"], [10, 0, 1, "term_multiplication_assignment_expression", "multiplication_assignment_expression"], [10, 0, 1, "term_multiplication_expression", "multiplication_expression"], [5, 1, 1, "syntax_multiplicationassignmentexpression", "multiplicationassignmentexpression"], [5, 1, 1, "syntax_multiplicationexpression", "multiplicationexpression"], [10, 0, 1, "term_mutability", "mutability"], [10, 0, 1, "term_mutable", "mutable"], [10, 0, 1, "term_mutable_assignee_expression", "mutable_assignee_expression"], [10, 0, 1, "term_mutable_binding", "mutable_binding"], [10, 0, 1, "term_mutable_borrow", "mutable_borrow"], [10, 0, 1, "term_mutable_borrow_expression", "mutable_borrow_expression"], [10, 0, 1, "term_mutable_place_expression", "mutable_place_expression"], [10, 0, 1, "term_mutable_place_expression_context", "mutable_place_expression_context"], [10, 0, 1, "term_mutable_raw_pointer_type", "mutable_raw_pointer_type"], [10, 0, 1, "term_mutable_reference", "mutable_reference"], [10, 0, 1, "term_mutable_reference_type", "mutable_reference_type"], [10, 0, 1, "term_mutable_static", "mutable_static"], [10, 0, 1, "term_mutable_variable", "mutable_variable"], [3, 1, 1, "syntax_name", "name"], [10, 0, 1, "term_name", "name"], [10, 0, 1, "term_named_block_expression", "named_block_expression"], [10, 0, 1, "term_named_deconstructor", "named_deconstructor"], [10, 0, 1, "term_named_field_selector", "named_field_selector"], [10, 0, 1, "term_named_initializer", "named_initializer"], [10, 0, 1, "term_named_loop_expression", "named_loop_expression"], [10, 0, 1, "term_named_register_argument", "named_register_argument"], [5, 1, 1, "syntax_namedblockexpression", "namedblockexpression"], [19, 1, 1, "syntax_nameddeconstructor", "nameddeconstructor"], [5, 1, 1, "syntax_namedfieldselector", "namedfieldselector"], [5, 1, 1, "syntax_namedinitializer", "namedinitializer"], [10, 0, 1, "term_namespace", "namespace"], [3, 0, 1, "term_namespace_context", "namespace_context"], [10, 0, 1, "term_namespace_qualifier", "namespace_qualifier"], [10, 0, 1, "term_nan_boxing", "nan_boxing"], [1, 1, 1, "syntax_nativelibraryname", "nativelibraryname"], [1, 1, 1, "syntax_nativelibrarynamewithkind", "nativelibrarynamewithkind"], [1, 1, 1, "syntax_nativelibraykind", "nativelibraykind"], [1, 1, 1, "syntax_nativelibraykindtype", "nativelibraykindtype"], [10, 0, 1, "term_negation_expression", "negation_expression"], [5, 1, 1, "syntax_negationexpression", "negationexpression"], [5, 1, 1, "syntax_negationoperator", "negationoperator"], [15, 1, 1, "syntax_nestedrawbytestringcontent", "nestedrawbytestringcontent"], [15, 1, 1, "syntax_nestedrawstringcontent", "nestedrawstringcontent"], [10, 0, 1, "term_nesting_import", "nesting_import"], [3, 1, 1, "syntax_nestingimport", "nestingimport"], [10, 0, 1, "term_never_type", "never_type"], [22, 1, 1, "syntax_nevertype", "nevertype"], [20, 1, 1, "syntax_newline", "newline"], [1, 2, 1, "codeterm_no_builtins", "no_builtins"], [1, 2, 1, "codeterm_no_implicit_prelude", "no_implicit_prelude"], [1, 2, 1, "codeterm_no_link", "no_link"], [1, 2, 1, "codeterm_no_main", "no_main"], [1, 2, 1, "codeterm_no_mangle", "no_mangle"], [1, 2, 1, "codeterm_no_std", "no_std"], [1, 1, 1, "syntax_nobinutilscontent", "nobinutilscontent"], [1, 1, 1, "syntax_noimplicitpreludecontent", "noimplicitpreludecontent"], [1, 1, 1, "syntax_nolinkcontent", "nolinkcontent"], [1, 1, 1, "syntax_nomaincontent", "nomaincontent"], [1, 1, 1, "syntax_nomanglecontent", "nomanglecontent"], [1, 2, 1, "codeterm_non_exhaustive", "non_exhaustive"], [1, 0, 1, "term_non_exhaustive_type", "non_exhaustive_type"], [1, 0, 1, "term_non_exhaustive_variant", "non_exhaustive_variant"], [10, 0, 1, "term_non_reference_pattern", "non_reference_pattern"], [17, 1, 1, "syntax_nondelimitedtoken", "nondelimitedtoken"], [1, 1, 1, "syntax_nonexhaustivecontent", "nonexhaustivecontent"], [15, 1, 1, "syntax_nonkeywordidentifier", "nonkeywordidentifier"], [1, 1, 1, "syntax_nostdcontent", "nostdcontent"], [10, 0, 1, "term_not_configuration_predicate", "not_configuration_predicate"], [10, 0, 1, "term_not_equals_expression", "not_equals_expression"], [5, 1, 1, "syntax_notequalsexpression", "notequalsexpression"], [10, 2, 1, "codeterm_null", "null"], [5, 0, 1, "term_numeric_cast", "numeric_cast"], [10, 0, 1, "term_numeric_literal", "numeric_literal"], [10, 0, 1, "term_numeric_type", "numeric_type"], [15, 1, 1, "syntax_numericliteral", "numericliteral"], [10, 0, 1, "term_object_safe", "object_safe"], [10, 0, 1, "term_object_safety", "object_safety"], [22, 0, 1, "term_obligation", "obligation"], [10, 0, 1, "term_obsolete_range_pattern", "obsolete_range_pattern"], [19, 1, 1, "syntax_obsoleterangepattern", "obsoleterangepattern"], [10, 0, 1, "term_octal_literal", "octal_literal"], [15, 1, 1, "syntax_octaldigit", "octaldigit"], [15, 1, 1, "syntax_octaldigitorunderscore", "octaldigitorunderscore"], [15, 1, 1, "syntax_octalliteral", "octalliteral"], [5, 1, 1, "syntax_operand", "operand"], [10, 0, 1, "term_operand", "operand"], [10, 0, 1, "term_operator_expression", "operator_expression"], [5, 1, 1, "syntax_operatorexpression", "operatorexpression"], [10, 0, 1, "term_opt_out_trait_bound", "opt_out_trait_bound"], [13, 1, 1, "syntax_option", "option"], [13, 1, 1, "syntax_optionlist", "optionlist"], [10, 0, 1, "term_outer_attribute", "outer_attribute"], [10, 0, 1, "term_outer_block_doc", "outer_block_doc"], [10, 0, 1, "term_outer_doc_comment", "outer_doc_comment"], [10, 0, 1, "term_outer_line_doc", "outer_line_doc"], [1, 1, 1, "syntax_outerattribute", "outerattribute"], [1, 1, 1, "syntax_outerattributeordoc", "outerattributeordoc"], [15, 1, 1, "syntax_outerblockdoc", "outerblockdoc"], [1, 1, 1, "syntax_outerbuiltinattribute", "outerbuiltinattribute"], [15, 1, 1, "syntax_outerlinedoc", "outerlinedoc"], [10, 0, 1, "term_outline_module", "outline_module"], [20, 1, 1, "syntax_outlinemodulespecification", "outlinemodulespecification"], [10, 0, 1, "term_outlives_bound", "outlives_bound"], [22, 0, 1, "term_output_lifetime", "output_lifetime"], [10, 0, 1, "term_output_register", "output_register"], [10, 0, 1, "term_output_register_expression", "output_register_expression"], [13, 1, 1, "syntax_outputregisterexpression", "outputregisterexpression"], [10, 0, 1, "term_overlap", "overlap"], [10, 0, 1, "term_owner", "owner"], [10, 0, 1, "term_ownership", "ownership"], [10, 0, 1, "term_panic", "panic"], [1, 2, 1, "codeterm_panic_handler", "panic_handler"], [1, 1, 1, "syntax_panichandlercontent", "panichandlercontent"], [10, 0, 1, "term_parenthesized_expression", "parenthesized_expression"], [10, 0, 1, "term_parenthesized_pattern", "parenthesized_pattern"], [19, 0, 1, "term_parenthesized_pattern_matching", "parenthesized_pattern_matching"], [10, 0, 1, "term_parenthesized_type", "parenthesized_type"], [5, 1, 1, "syntax_parenthesizedexpression", "parenthesizedexpression"], [19, 1, 1, "syntax_parenthesizedpattern", "parenthesizedpattern"], [22, 1, 1, "syntax_parenthesizedtraitbound", "parenthesizedtraitbound"], [22, 1, 1, "syntax_parenthesizedtypespecification", "parenthesizedtypespecification"], [10, 0, 1, "term_partially_hygienic", "partially_hygienic"], [10, 0, 1, "term_passing_convention", "passing_convention"], [1, 2, 1, "codeterm_path", "path"], [10, 0, 1, "term_path", "path"], [10, 0, 1, "term_path_expression", "path_expression"], [10, 0, 1, "term_path_expression_resolution", "path_expression_resolution"], [3, 0, 1, "term_path_expression_resolution_implementation_candidate_lookup", "path_expression_resolution_implementation_candidate_lookup"], [3, 0, 1, "term_path_expression_resolution_inherent_implementation_candidate_lookup", "path_expression_resolution_inherent_implementation_candidate_lookup"], [3, 0, 1, "term_path_expression_resolution_trait_implementation_candidate_lookup", "path_expression_resolution_trait_implementation_candidate_lookup"], [10, 0, 1, "term_path_pattern", "path_pattern"], [19, 0, 1, "term_path_pattern_matching", "path_pattern_matching"], [3, 0, 1, "term_path_prefix", "path_prefix"], [10, 0, 1, "term_path_resolution", "path_resolution"], [10, 0, 1, "term_path_segment", "path_segment"], [1, 1, 1, "syntax_pathcontent", "pathcontent"], [5, 1, 1, "syntax_pathexpression", "pathexpression"], [3, 1, 1, "syntax_pathexpressionsegment", "pathexpressionsegment"], [19, 1, 1, "syntax_pathpattern", "pathpattern"], [3, 1, 1, "syntax_pathsegment", "pathsegment"], [19, 1, 1, "syntax_pattern", "pattern"], [10, 0, 1, "term_pattern", "pattern"], [10, 0, 1, "term_pattern_matching", "pattern_matching"], [10, 0, 1, "term_pattern_without_alternation", "pattern_without_alternation"], [10, 0, 1, "term_pattern_without_range", "pattern_without_range"], [19, 1, 1, "syntax_patternlist", "patternlist"], [19, 1, 1, "syntax_patternwithoutalternation", "patternwithoutalternation"], [19, 1, 1, "syntax_patternwithoutrange", "patternwithoutrange"], [10, 0, 1, "term_place", "place"], [10, 0, 1, "term_place_expression", "place_expression"], [10, 0, 1, "term_place_expression_context", "place_expression_context"], [10, 0, 1, "term_plane", "plane"], [10, 0, 1, "term_pointer", "pointer"], [5, 0, 1, "term_pointer_to_address_cast", "pointer_to_address_cast"], [10, 0, 1, "term_pointer_type", "pointer_type"], [10, 0, 1, "term_positional_register_argument", "positional_register_argument"], [10, 0, 1, "term_precedence", "precedence"], [10, 0, 1, "term_prelude", "prelude"], [1, 0, 1, "term_prelude_attribute", "prelude_attribute"], [10, 0, 1, "term_prelude_entity", "prelude_entity"], [10, 0, 1, "term_prelude_name", "prelude_name"], [10, 0, 1, "term_primitive_representation", "primitive_representation"], [5, 0, 1, "term_primitive_to_integer_cast", "primitive_to_integer_cast"], [1, 1, 1, "syntax_primitiverepresentation", "primitiverepresentation"], [10, 0, 1, "term_private_visibility", "private_visibility"], [1, 2, 1, "codeterm_proc_macro", "proc_macro"], [1, 2, 1, "codeterm_proc_macro_attribute", "proc_macro_attribute"], [10, 0, 1, "term_proc_macro_crate", "proc_macro_crate"], [1, 2, 1, "codeterm_proc_macro_derive", "proc_macro_derive"], [10, 0, 1, "term_procedural_macro", "procedural_macro"], [1, 1, 1, "syntax_procmacroattributecontent", "procmacroattributecontent"], [1, 1, 1, "syntax_procmacrocontent", "procmacrocontent"], [1, 1, 1, "syntax_procmacroderivecontent", "procmacroderivecontent"], [10, 0, 1, "term_public_visibility", "public_visibility"], [15, 1, 1, "syntax_punctuation", "punctuation"], [10, 0, 1, "term_punctuator", "punctuator"], [10, 0, 1, "term_pure_identifier", "pure_identifier"], [15, 1, 1, "syntax_pureidentifier", "pureidentifier"], [3, 0, 1, "term_qualified_fn_trait", "qualified_fn_trait"], [10, 0, 1, "term_qualified_path_expression", "qualified_path_expression"], [10, 0, 1, "term_qualified_type", "qualified_type"], [10, 0, 1, "term_qualified_type_path", "qualified_type_path"], [3, 1, 1, "syntax_qualifiedfntrait", "qualifiedfntrait"], [3, 1, 1, "syntax_qualifiedpathexpression", "qualifiedpathexpression"], [3, 1, 1, "syntax_qualifiedtype", "qualifiedtype"], [3, 1, 1, "syntax_qualifiedtypepath", "qualifiedtypepath"], [10, 0, 1, "term_qualifying_trait", "qualifying_trait"], [3, 1, 1, "syntax_qualifyingtrait", "qualifyingtrait"], [10, 0, 1, "term_range_expression", "range_expression"], [10, 0, 1, "term_range_expression_high_bound", "range_expression_high_bound"], [10, 0, 1, "term_range_expression_low_bound", "range_expression_low_bound"], [10, 0, 1, "term_range_from_expression", "range_from_expression"], [10, 0, 1, "term_range_from_to_expression", "range_from_to_expression"], [10, 0, 1, "term_range_full_expression", "range_full_expression"], [10, 0, 1, "term_range_inclusive_expression", "range_inclusive_expression"], [10, 0, 1, "term_range_pattern", "range_pattern"], [10, 0, 1, "term_range_pattern_bound", "range_pattern_bound"], [10, 0, 1, "term_range_pattern_high_bound", "range_pattern_high_bound"], [10, 0, 1, "term_range_pattern_low_bound", "range_pattern_low_bound"], [19, 0, 1, "term_range_pattern_matching", "range_pattern_matching"], [10, 0, 1, "term_range_to_expression", "range_to_expression"], [10, 0, 1, "term_range_to_inclusive_expression", "range_to_inclusive_expression"], [5, 1, 1, "syntax_rangeexpression", "rangeexpression"], [5, 1, 1, "syntax_rangeexpressionhighbound", "rangeexpressionhighbound"], [5, 1, 1, "syntax_rangeexpressionlowbound", "rangeexpressionlowbound"], [5, 1, 1, "syntax_rangefromexpression", "rangefromexpression"], [5, 1, 1, "syntax_rangefromtoexpression", "rangefromtoexpression"], [5, 1, 1, "syntax_rangefullexpression", "rangefullexpression"], [5, 1, 1, "syntax_rangeinclusiveexpression", "rangeinclusiveexpression"], [19, 1, 1, "syntax_rangepattern", "rangepattern"], [19, 1, 1, "syntax_rangepatternbound", "rangepatternbound"], [19, 1, 1, "syntax_rangepatternhighbound", "rangepatternhighbound"], [19, 1, 1, "syntax_rangepatternlowbound", "rangepatternlowbound"], [5, 1, 1, "syntax_rangetoexpression", "rangetoexpression"], [5, 1, 1, "syntax_rangetoinclusiveexpression", "rangetoinclusiveexpression"], [10, 0, 1, "term_raw_byte_string_literal", "raw_byte_string_literal"], [10, 0, 1, "term_raw_pointer", "raw_pointer"], [10, 0, 1, "term_raw_pointer_type", "raw_pointer_type"], [10, 0, 1, "term_raw_string_literal", "raw_string_literal"], [15, 1, 1, "syntax_rawbytestringcontent", "rawbytestringcontent"], [15, 1, 1, "syntax_rawbytestringliteral", "rawbytestringliteral"], [15, 1, 1, "syntax_rawidentifier", "rawidentifier"], [15, 1, 1, "syntax_rawidentifierkeyword", "rawidentifierkeyword"], [22, 1, 1, "syntax_rawpointertypespecification", "rawpointertypespecification"], [15, 1, 1, "syntax_rawstringcontent", "rawstringcontent"], [15, 1, 1, "syntax_rawstringliteral", "rawstringliteral"], [10, 0, 1, "term_reachable_control_flow_path", "reachable_control_flow_path"], [10, 0, 1, "term_receiver_operand", "receiver_operand"], [3, 0, 1, "term_receiver_type", "receiver_type"], [5, 1, 1, "syntax_receiveroperand", "receiveroperand"], [10, 0, 1, "term_record_enum_variant", "record_enum_variant"], [10, 0, 1, "term_record_struct", "record_struct"], [10, 0, 1, "term_record_struct_field", "record_struct_field"], [10, 0, 1, "term_record_struct_pattern", "record_struct_pattern"], [19, 0, 1, "term_record_struct_pattern_matching", "record_struct_pattern_matching"], [10, 0, 1, "term_record_struct_type", "record_struct_type"], [10, 0, 1, "term_record_struct_value", "record_struct_value"], [22, 1, 1, "syntax_recordstructdeclaration", "recordstructdeclaration"], [22, 1, 1, "syntax_recordstructfield", "recordstructfield"], [22, 1, 1, "syntax_recordstructfieldlist", "recordstructfieldlist"], [19, 1, 1, "syntax_recordstructpattern", "recordstructpattern"], [19, 1, 1, "syntax_recordstructpatterncontent", "recordstructpatterncontent"], [19, 1, 1, "syntax_recordstructrestpattern", "recordstructrestpattern"], [1, 2, 1, "codeterm_recursion_limit", "recursion_limit"], [1, 1, 1, "syntax_recursionlimitcontent", "recursionlimitcontent"], [10, 0, 1, "term_recursive_type", "recursive_type"], [10, 0, 1, "term_reference", "reference"], [10, 0, 1, "term_reference_identifier_pattern", "reference_identifier_pattern"], [10, 0, 1, "term_reference_pattern", "reference_pattern"], [19, 0, 1, "term_reference_pattern_matching", "reference_pattern_matching"], [10, 0, 1, "term_reference_type", "reference_type"], [19, 1, 1, "syntax_referencepattern", "referencepattern"], [22, 1, 1, "syntax_referencetypespecification", "referencetypespecification"], [10, 0, 1, "term_referent", "referent"], [10, 0, 1, "term_refutability", "refutability"], [10, 0, 1, "term_refutable_constant", "refutable_constant"], [10, 0, 1, "term_refutable_pattern", "refutable_pattern"], [10, 0, 1, "term_refutable_type", "refutable_type"], [10, 0, 1, "term_register", "register"], [10, 0, 1, "term_register_argument", "register_argument"], [10, 0, 1, "term_register_class", "register_class"], [10, 0, 1, "term_register_class_argument", "register_class_argument"], [10, 0, 1, "term_register_class_name", "register_class_name"], [10, 0, 1, "term_register_expression", "register_expression"], [10, 0, 1, "term_register_name", "register_name"], [10, 0, 1, "term_register_parameter", "register_parameter"], [10, 0, 1, "term_register_parameter_modifier", "register_parameter_modifier"], [13, 1, 1, "syntax_registerargument", "registerargument"], [13, 1, 1, "syntax_registerclassname", "registerclassname"], [13, 1, 1, "syntax_registerexpression", "registerexpression"], [13, 1, 1, "syntax_registername", "registername"], [10, 0, 1, "term_remainder_assignment", "remainder_assignment"], [10, 0, 1, "term_remainder_assignment_expression", "remainder_assignment_expression"], [10, 0, 1, "term_remainder_expression", "remainder_expression"], [5, 1, 1, "syntax_remainderassignmentexpression", "remainderassignmentexpression"], [5, 1, 1, "syntax_remainderexpression", "remainderexpression"], [15, 1, 1, "syntax_renaming", "renaming"], [10, 0, 1, "term_renaming", "renaming"], [10, 0, 1, "term_repeat_operand", "repeat_operand"], [5, 1, 1, "syntax_repeatoperand", "repeatoperand"], [17, 0, 1, "term_repetition_index", "repetition_index"], [10, 0, 1, "term_repetition_operator", "repetition_operator"], [1, 2, 1, "codeterm_repr", "repr"], [1, 1, 1, "syntax_reprcontent", "reprcontent"], [1, 1, 1, "syntax_representation", "representation"], [10, 0, 1, "term_representation_modifier", "representation_modifier"], [1, 1, 1, "syntax_representationkind", "representationkind"], [10, 0, 1, "term_reserved_keyword", "reserved_keyword"], [15, 1, 1, "syntax_reservedkeyword", "reservedkeyword"], [10, 0, 1, "term_resolution", "resolution"], [3, 0, 1, "term_resolution_context", "resolution_context"], [10, 0, 1, "term_rest_pattern", "rest_pattern"], [19, 1, 1, "syntax_restpattern", "restpattern"], [10, 0, 1, "term_return_expression", "return_expression"], [10, 0, 1, "term_return_type", "return_type"], [5, 1, 1, "syntax_returnexpression", "returnexpression"], [7, 1, 1, "syntax_returntype", "returntype"], [5, 1, 1, "syntax_returntypewithoutbounds", "returntypewithoutbounds"], [10, 0, 1, "term_right_operand", "right_operand"], [5, 1, 1, "syntax_rightoperand", "rightoperand"], [10, 0, 1, "term_rule_matching", "rule_matching"], [1, 0, 1, "term_runtime_attribute", "runtime_attribute"], [6, 0, 1, "term_rust_abi", "rust_abi"], [10, 0, 1, "term_rustc", "rustc"], [10, 0, 1, "term_safety_invariant", "safety_invariant"], [10, 0, 1, "term_scalar_type", "scalar_type"], [10, 0, 1, "term_scope", "scope"], [10, 0, 1, "term_scope_hierarchy", "scope_hierarchy"], [3, 0, 1, "term_scoping_construct", "scoping_construct"], [10, 0, 1, "term_selected_field", "selected_field"], [10, 2, 1, "codeterm_self", "self"], [10, 0, 1, "term_self_parameter", "self_parameter"], [10, 0, 1, "term_self_public_modifier", "self_public_modifier"], [10, 0, 1, "term_self_scope", "self_scope"], [7, 1, 1, "syntax_selfparameter", "selfparameter"], [3, 1, 1, "syntax_selfpublicmodifier", "selfpublicmodifier"], [10, 0, 1, "term_send_type", "send_type"], [10, 0, 1, "term_separator", "separator"], [10, 0, 1, "term_sequence_type", "sequence_type"], [10, 0, 1, "term_shadowed", "shadowed"], [10, 0, 1, "term_shadowing", "shadowing"], [10, 0, 1, "term_shared_borrow", "shared_borrow"], [10, 0, 1, "term_shared_reference", "shared_reference"], [10, 0, 1, "term_shared_reference_type", "shared_reference_type"], [20, 1, 1, "syntax_shebang", "shebang"], [10, 0, 1, "term_shift_left_assignment", "shift_left_assignment"], [10, 0, 1, "term_shift_left_assignment_expression", "shift_left_assignment_expression"], [10, 0, 1, "term_shift_left_expression", "shift_left_expression"], [10, 0, 1, "term_shift_right_assignment", "shift_right_assignment"], [10, 0, 1, "term_shift_right_assignment_expression", "shift_right_assignment_expression"], [10, 0, 1, "term_shift_right_expression", "shift_right_expression"], [5, 1, 1, "syntax_shiftleftassignmentexpression", "shiftleftassignmentexpression"], [5, 1, 1, "syntax_shiftleftexpression", "shiftleftexpression"], [5, 1, 1, "syntax_shiftrightassignmentexpression", "shiftrightassignmentexpression"], [5, 1, 1, "syntax_shiftrightexpression", "shiftrightexpression"], [10, 0, 1, "term_shorthand_deconstructor", "shorthand_deconstructor"], [10, 0, 1, "term_shorthand_initializer", "shorthand_initializer"], [19, 1, 1, "syntax_shorthanddeconstructor", "shorthanddeconstructor"], [5, 1, 1, "syntax_shorthandinitializer", "shorthandinitializer"], [7, 1, 1, "syntax_shorthandself", "shorthandself"], [1, 2, 1, "codeterm_should_panic", "should_panic"], [1, 1, 1, "syntax_shouldpaniccontent", "shouldpaniccontent"], [10, 0, 1, "term_signed_integer_type", "signed_integer_type"], [15, 1, 1, "syntax_signedintegersuffix", "signedintegersuffix"], [5, 1, 1, "syntax_signnegationoperator", "signnegationoperator"], [10, 0, 1, "term_simple_byte_string_literal", "simple_byte_string_literal"], [10, 0, 1, "term_simple_import", "simple_import"], [3, 0, 1, "term_simple_import_path", "simple_import_path"], [10, 0, 1, "term_simple_path", "simple_path"], [10, 0, 1, "term_simple_path_prefix", "simple_path_prefix"], [10, 0, 1, "term_simple_path_public_modifier", "simple_path_public_modifier"], [10, 0, 1, "term_simple_path_resolution", "simple_path_resolution"], [10, 0, 1, "term_simple_public_modifier", "simple_public_modifier"], [15, 0, 1, "term_simple_punctuator", "simple_punctuator"], [10, 0, 1, "term_simple_register_expression", "simple_register_expression"], [10, 0, 1, "term_simple_string_literal", "simple_string_literal"], [15, 1, 1, "syntax_simplebytestringcharacter", "simplebytestringcharacter"], [15, 1, 1, "syntax_simplebytestringcontent", "simplebytestringcontent"], [15, 1, 1, "syntax_simplebytestringliteral", "simplebytestringliteral"], [3, 1, 1, "syntax_simpleimport", "simpleimport"], [3, 1, 1, "syntax_simplepath", "simplepath"], [3, 1, 1, "syntax_simplepathlist", "simplepathlist"], [3, 1, 1, "syntax_simplepathprefix", "simplepathprefix"], [3, 1, 1, "syntax_simplepathpublicmodifier", "simplepathpublicmodifier"], [3, 1, 1, "syntax_simplepathsegment", "simplepathsegment"], [3, 1, 1, "syntax_simplepublicmodifier", "simplepublicmodifier"], [13, 1, 1, "syntax_simpleregisterexpression", "simpleregisterexpression"], [15, 1, 1, "syntax_simplestringcharacter", "simplestringcharacter"], [15, 1, 1, "syntax_simplestringcontent", "simplestringcontent"], [15, 1, 1, "syntax_simplestringliteral", "simplestringliteral"], [10, 0, 1, "term_single_segment_path", "single_segment_path"], [10, 0, 1, "term_size", "size"], [10, 0, 1, "term_size_operand", "size_operand"], [10, 0, 1, "term_sized_type", "sized_type"], [5, 1, 1, "syntax_sizeoperand", "sizeoperand"], [10, 0, 1, "term_slice", "slice"], [10, 0, 1, "term_slice_pattern", "slice_pattern"], [19, 0, 1, "term_slice_pattern_matching", "slice_pattern_matching"], [10, 0, 1, "term_slice_type", "slice_type"], [19, 1, 1, "syntax_slicepattern", "slicepattern"], [22, 1, 1, "syntax_slicetypespecification", "slicetypespecification"], [10, 0, 1, "term_source_file", "source_file"], [20, 1, 1, "syntax_sourcefile", "sourcefile"], [5, 0, 1, "term_specialized_cast", "specialized_cast"], [21, 1, 1, "syntax_statement", "statement"], [10, 0, 1, "term_statement", "statement"], [5, 1, 1, "syntax_statementlist", "statementlist"], [10, 0, 1, "term_static", "static"], [10, 0, 1, "term_static_initializer", "static_initializer"], [10, 0, 1, "term_static_lifetime_elision", "static_lifetime_elision"], [25, 1, 1, "syntax_staticdeclaration", "staticdeclaration"], [25, 1, 1, "syntax_staticinitializer", "staticinitializer"], [10, 2, 1, "codeterm_str", "str"], [10, 0, 1, "term_strict_keyword", "strict_keyword"], [15, 1, 1, "syntax_strictkeyword", "strictkeyword"], [10, 0, 1, "term_string_literal", "string_literal"], [15, 1, 1, "syntax_stringcontinuation", "stringcontinuation"], [15, 1, 1, "syntax_stringliteral", "stringliteral"], [10, 0, 1, "term_struct", "struct"], [10, 0, 1, "term_struct_expression", "struct_expression"], [10, 0, 1, "term_struct_field", "struct_field"], [10, 0, 1, "term_struct_pattern", "struct_pattern"], [10, 0, 1, "term_struct_type", "struct_type"], [10, 0, 1, "term_struct_value", "struct_value"], [22, 1, 1, "syntax_structdeclaration", "structdeclaration"], [5, 1, 1, "syntax_structexpression", "structexpression"], [5, 1, 1, "syntax_structexpressioncontent", "structexpressioncontent"], [19, 1, 1, "syntax_structpattern", "structpattern"], [10, 0, 1, "term_structurally_equal", "structurally_equal"], [10, 0, 1, "term_subexpression", "subexpression"], [10, 0, 1, "term_subject_expression", "subject_expression"], [10, 0, 1, "term_subject_let_expression", "subject_let_expression"], [5, 1, 1, "syntax_subjectexpression", "subjectexpression"], [5, 1, 1, "syntax_subjectletexpression", "subjectletexpression"], [10, 0, 1, "term_subpattern", "subpattern"], [1, 1, 1, "syntax_subsystemkind", "subsystemkind"], [10, 0, 1, "term_subtraction_assignment", "subtraction_assignment"], [10, 0, 1, "term_subtraction_assignment_expression", "subtraction_assignment_expression"], [10, 0, 1, "term_subtraction_expression", "subtraction_expression"], [5, 1, 1, "syntax_subtractionassignmentexpression", "subtractionassignmentexpression"], [5, 1, 1, "syntax_subtractionexpression", "subtractionexpression"], [10, 0, 1, "term_subtrait", "subtrait"], [10, 0, 1, "term_subtype", "subtype"], [10, 0, 1, "term_subtyping", "subtyping"], [10, 0, 1, "term_suffixed_float", "suffixed_float"], [10, 0, 1, "term_suffixed_integer", "suffixed_integer"], [10, 0, 1, "term_super_public_modifier", "super_public_modifier"], [3, 1, 1, "syntax_superpublicmodifier", "superpublicmodifier"], [10, 0, 1, "term_supertrait", "supertrait"], [22, 1, 1, "syntax_supertraitlist", "supertraitlist"], [10, 0, 1, "term_sync_type", "sync_type"], [10, 0, 1, "term_syntactic_category", "syntactic_category"], [10, 0, 1, "term_tail_expression", "tail_expression"], [1, 2, 1, "codeterm_target_feature", "target_feature"], [5, 0, 1, "term_target_type", "target_type"], [1, 1, 1, "syntax_targetfeaturecontent", "targetfeaturecontent"], [10, 0, 1, "term_temporary", "temporary"], [10, 0, 1, "term_terminated", "terminated"], [10, 0, 1, "term_terminated_macro_invocation", "terminated_macro_invocation"], [17, 1, 1, "syntax_terminatedmacroinvocation", "terminatedmacroinvocation"], [1, 2, 1, "codeterm_test", "test"], [1, 1, 1, "syntax_testcontent", "testcontent"], [1, 0, 1, "term_testing_attribute", "testing_attribute"], [1, 0, 1, "term_testing_function", "testing_function"], [10, 0, 1, "term_textual_macro_scope", "textual_macro_scope"], [10, 0, 1, "term_textual_type", "textual_type"], [10, 0, 1, "term_thin_pointer", "thin_pointer"], [10, 0, 1, "term_thin_pointer_type", "thin_pointer_type"], [10, 0, 1, "term_token", "token"], [10, 0, 1, "term_token_matching", "token_matching"], [17, 1, 1, "syntax_tokentree", "tokentree"], [1, 2, 1, "codeterm_track_caller", "track_caller"], [1, 1, 1, "syntax_trackcallercontent", "trackcallercontent"], [10, 0, 1, "term_trait", "trait"], [10, 0, 1, "term_trait_body", "trait_body"], [10, 0, 1, "term_trait_bound", "trait_bound"], [10, 0, 1, "term_trait_implementation", "trait_implementation"], [10, 0, 1, "term_trait_object_lifetime_elision", "trait_object_lifetime_elision"], [10, 0, 1, "term_trait_object_type", "trait_object_type"], [10, 0, 1, "term_trait_type", "trait_type"], [22, 1, 1, "syntax_traitbody", "traitbody"], [22, 1, 1, "syntax_traitbound", "traitbound"], [22, 1, 1, "syntax_traitdeclaration", "traitdeclaration"], [11, 1, 1, "syntax_traitimplementation", "traitimplementation"], [22, 1, 1, "syntax_traitobjecttypespecification", "traitobjecttypespecification"], [22, 1, 1, "syntax_traitobjecttypespecificationonebound", "traitobjecttypespecificationonebound"], [10, 0, 1, "term_transparent_representation", "transparent_representation"], [10, 0, 1, "term_trivial_predicate", "trivial_predicate"], [10, 0, 1, "term_tuple", "tuple"], [10, 0, 1, "term_tuple_enum_variant", "tuple_enum_variant"], [10, 0, 1, "term_tuple_enum_variant_value", "tuple_enum_variant_value"], [10, 0, 1, "term_tuple_expression", "tuple_expression"], [10, 0, 1, "term_tuple_field", "tuple_field"], [10, 0, 1, "term_tuple_initializer", "tuple_initializer"], [10, 0, 1, "term_tuple_pattern", "tuple_pattern"], [19, 0, 1, "term_tuple_pattern_matching", "tuple_pattern_matching"], [10, 0, 1, "term_tuple_struct", "tuple_struct"], [10, 0, 1, "term_tuple_struct_call_expression", "tuple_struct_call_expression"], [10, 0, 1, "term_tuple_struct_field", "tuple_struct_field"], [10, 0, 1, "term_tuple_struct_pattern", "tuple_struct_pattern"], [19, 0, 1, "term_tuple_struct_pattern_matching", "tuple_struct_pattern_matching"], [10, 0, 1, "term_tuple_struct_type", "tuple_struct_type"], [10, 0, 1, "term_tuple_struct_value", "tuple_struct_value"], [10, 0, 1, "term_tuple_type", "tuple_type"], [5, 1, 1, "syntax_tupleexpression", "tupleexpression"], [22, 1, 1, "syntax_tuplefield", "tuplefield"], [22, 1, 1, "syntax_tuplefieldlist", "tuplefieldlist"], [5, 1, 1, "syntax_tupleinitializerlist", "tupleinitializerlist"], [19, 1, 1, "syntax_tuplepattern", "tuplepattern"], [22, 1, 1, "syntax_tuplestructdeclaration", "tuplestructdeclaration"], [22, 1, 1, "syntax_tuplestructfield", "tuplestructfield"], [22, 1, 1, "syntax_tuplestructfieldlist", "tuplestructfieldlist"], [19, 1, 1, "syntax_tuplestructpattern", "tuplestructpattern"], [22, 1, 1, "syntax_tupletypespecification", "tupletypespecification"], [10, 0, 1, "term_type", "type"], [10, 0, 1, "term_type_alias", "type_alias"], [10, 0, 1, "term_type_argument", "type_argument"], [10, 0, 1, "term_type_ascription", "type_ascription"], [1, 0, 1, "term_type_attribute", "type_attribute"], [10, 0, 1, "term_type_bound_predicate", "type_bound_predicate"], [10, 0, 1, "term_type_cast_expression", "type_cast_expression"], [10, 0, 1, "term_type_coercion", "type_coercion"], [10, 0, 1, "term_type_inference", "type_inference"], [10, 0, 1, "term_type_inference_root", "type_inference_root"], [1, 2, 1, "codeterm_type_length_limit", "type_length_limit"], [3, 0, 1, "term_type_namespace", "type_namespace"], [10, 0, 1, "term_type_parameter", "type_parameter"], [10, 0, 1, "term_type_parameter_initializer", "type_parameter_initializer"], [10, 0, 1, "term_type_parameter_type", "type_parameter_type"], [10, 0, 1, "term_type_path", "type_path"], [10, 0, 1, "term_type_path_resolution", "type_path_resolution"], [10, 0, 1, "term_type_representation", "type_representation"], [10, 0, 1, "term_type_specification", "type_specification"], [10, 0, 1, "term_type_unification", "type_unification"], [10, 0, 1, "term_type_variable", "type_variable"], [22, 1, 1, "syntax_typealiasdeclaration", "typealiasdeclaration"], [9, 1, 1, "syntax_typeargument", "typeargument"], [22, 1, 1, "syntax_typeascription", "typeascription"], [22, 1, 1, "syntax_typebound", "typebound"], [22, 1, 1, "syntax_typeboundlist", "typeboundlist"], [9, 1, 1, "syntax_typeboundpredicate", "typeboundpredicate"], [5, 1, 1, "syntax_typecastexpression", "typecastexpression"], [7, 1, 1, "syntax_typedself", "typedself"], [1, 1, 1, "syntax_typelengthlimitcontent", "typelengthlimitcontent"], [9, 1, 1, "syntax_typeparameter", "typeparameter"], [9, 1, 1, "syntax_typeparameterinitializer", "typeparameterinitializer"], [3, 1, 1, "syntax_typepath", "typepath"], [3, 1, 1, "syntax_typepathsegment", "typepathsegment"], [22, 1, 1, "syntax_typespecification", "typespecification"], [22, 1, 1, "syntax_typespecificationlist", "typespecificationlist"], [22, 1, 1, "syntax_typespecificationwithoutbounds", "typespecificationwithoutbounds"], [10, 2, 1, "codeterm_u128", "u128"], [10, 2, 1, "codeterm_u16", "u16"], [10, 2, 1, "codeterm_u32", "u32"], [10, 2, 1, "codeterm_u64", "u64"], [10, 2, 1, "codeterm_u8", "u8"], [5, 0, 1, "term_u8_to_char_cast", "u8_to_char_cast"], [10, 0, 1, "term_unary_operator", "unary_operator"], [10, 0, 1, "term_undefined_behavior", "undefined_behavior"], [10, 0, 1, "term_under_resolution", "under_resolution"], [10, 0, 1, "term_underscore_expression", "underscore_expression"], [10, 0, 1, "term_underscore_pattern", "underscore_pattern"], [19, 0, 1, "term_underscore_pattern_matching", "underscore_pattern_matching"], [5, 1, 1, "syntax_underscoreexpression", "underscoreexpression"], [19, 1, 1, "syntax_underscorepattern", "underscorepattern"], [10, 0, 1, "term_unhygienic", "unhygienic"], [10, 0, 1, "term_unicode", "unicode"], [15, 1, 1, "syntax_unicodeescape", "unicodeescape"], [10, 0, 1, "term_unifiable", "unifiable"], [10, 0, 1, "term_unifiable_type", "unifiable_type"], [10, 0, 1, "term_unified_type", "unified_type"], [10, 0, 1, "term_unify", "unify"], [18, 0, 1, "term_uninitialized", "uninitialized"], [10, 0, 1, "term_union", "union"], [10, 0, 1, "term_union_field", "union_field"], [10, 0, 1, "term_union_type", "union_type"], [10, 0, 1, "term_union_value", "union_value"], [22, 1, 1, "syntax_uniondeclaration", "uniondeclaration"], [10, 0, 1, "term_unique_immutable_reference", "unique_immutable_reference"], [10, 0, 1, "term_unit_enum_variant", "unit_enum_variant"], [10, 0, 1, "term_unit_struct", "unit_struct"], [10, 0, 1, "term_unit_struct_constant", "unit_struct_constant"], [10, 0, 1, "term_unit_struct_type", "unit_struct_type"], [10, 0, 1, "term_unit_struct_value", "unit_struct_value"], [10, 0, 1, "term_unit_tuple", "unit_tuple"], [10, 0, 1, "term_unit_type", "unit_type"], [10, 0, 1, "term_unit_value", "unit_value"], [22, 1, 1, "syntax_unitstructdeclaration", "unitstructdeclaration"], [10, 0, 1, "term_unnamed_constant", "unnamed_constant"], [10, 0, 1, "term_unnamed_lifetime", "unnamed_lifetime"], [10, 0, 1, "term_unqualified_path_expression", "unqualified_path_expression"], [3, 1, 1, "syntax_unqualifiedpathexpression", "unqualifiedpathexpression"], [10, 0, 1, "term_unsafe_block", "unsafe_block"], [10, 0, 1, "term_unsafe_block_expression", "unsafe_block_expression"], [10, 0, 1, "term_unsafe_context", "unsafe_context"], [10, 0, 1, "term_unsafe_function", "unsafe_function"], [10, 0, 1, "term_unsafe_function_item_type", "unsafe_function_item_type"], [10, 0, 1, "term_unsafe_function_pointer_type", "unsafe_function_pointer_type"], [10, 0, 1, "term_unsafe_operation", "unsafe_operation"], [10, 0, 1, "term_unsafe_rust", "unsafe_rust"], [10, 0, 1, "term_unsafe_trait", "unsafe_trait"], [10, 0, 1, "term_unsafe_trait_implementation", "unsafe_trait_implementation"], [5, 1, 1, "syntax_unsafeblockexpression", "unsafeblockexpression"], [10, 0, 1, "term_unsafety", "unsafety"], [10, 0, 1, "term_unsigned_integer_type", "unsigned_integer_type"], [15, 1, 1, "syntax_unsignedintegersuffix", "unsignedintegersuffix"], [10, 0, 1, "term_unsized_coercion", "unsized_coercion"], [10, 0, 1, "term_unsized_type", "unsized_type"], [10, 0, 1, "term_unsuffixed_float", "unsuffixed_float"], [10, 0, 1, "term_unsuffixed_integer", "unsuffixed_integer"], [10, 0, 1, "term_use_import", "use_import"], [1, 2, 1, "codeterm_used", "used"], [1, 1, 1, "syntax_usedcontent", "usedcontent"], [3, 1, 1, "syntax_useimport", "useimport"], [3, 1, 1, "syntax_useimportcontent", "useimportcontent"], [3, 1, 1, "syntax_useimportcontentlist", "useimportcontentlist"], [10, 2, 1, "codeterm_usize", "usize"], [10, 0, 1, "term_validity_invariant", "validity_invariant"], [10, 0, 1, "term_value", "value"], [10, 0, 1, "term_value_expression", "value_expression"], [10, 0, 1, "term_value_expression_context", "value_expression_context"], [3, 0, 1, "term_value_namespace", "value_namespace"], [10, 0, 1, "term_value_operand", "value_operand"], [5, 1, 1, "syntax_valueoperand", "valueoperand"], [10, 0, 1, "term_variable", "variable"], [10, 0, 1, "term_variadic_part", "variadic_part"], [22, 1, 1, "syntax_variadicpart", "variadicpart"], [10, 0, 1, "term_variance", "variance"], [10, 0, 1, "term_visibility", "visibility"], [10, 0, 1, "term_visibility_modifier", "visibility_modifier"], [3, 1, 1, "syntax_visibilitymodifier", "visibilitymodifier"], [10, 0, 1, "term_weak_keyword", "weak_keyword"], [15, 1, 1, "syntax_weakkeyword", "weakkeyword"], [1, 1, 1, "syntax_webassemblymodulename", "webassemblymodulename"], [10, 0, 1, "term_where_clause", "where_clause"], [10, 0, 1, "term_where_clause_predicate", "where_clause_predicate"], [9, 1, 1, "syntax_whereclause", "whereclause"], [9, 1, 1, "syntax_whereclausepredicate", "whereclausepredicate"], [9, 1, 1, "syntax_whereclausepredicatelist", "whereclausepredicatelist"], [10, 0, 1, "term_while_let_loop", "while_let_loop"], [10, 0, 1, "term_while_let_loop_expression", "while_let_loop_expression"], [10, 0, 1, "term_while_loop", "while_loop"], [10, 0, 1, "term_while_loop_expression", "while_loop_expression"], [5, 1, 1, "syntax_whileletloopexpression", "whileletloopexpression"], [5, 1, 1, "syntax_whileloopexpression", "whileloopexpression"], [15, 0, 1, "term_whitespace_character", "whitespace_character"], [10, 0, 1, "term_whitespace_string", "whitespace_string"], [1, 2, 1, "codeterm_windows_subsystem", "windows_subsystem"], [1, 1, 1, "syntax_windowssubsystemcontent", "windowssubsystemcontent"], [15, 1, 1, "syntax_xid_continue", "xid_continue"], [15, 1, 1, "syntax_xid_start", "xid_start"], [10, 0, 1, "term_zero_sized_type", "zero_sized_type"], [10, 0, 1, "term_zero_variant_enum_type", "zero_variant_enum_type"], [20, 1, 1, "syntax_zerowidthnobreakspace", "zerowidthnobreakspace"]], "B": [[10, 3, 1, "", "701:1 99c0a32aee687c8485a97d48e2954f00639b71b35e7798555144ee6fcc6071b9"], [10, 3, 1, "", "12:2 766c81fa44bbba49b8e11a3675587467e229b8b2bcf098eacb996629733d3aee"], [10, 3, 1, "", "751:1 62a3945d893b6e8f16b7248680f277547ec165cba3f7cdd1f81774d4362c4973"], [10, 3, 1, "", "16:1 901ba35139b08ae1dedfc6cbd9d2ed55bbbb93f55c8de7151cc38a1521790add"], [10, 3, 1, "", "420:1 ae80789528355e3fd763bccf50dd6e89b7762be7f85442e7ac7a317f69e92a3b"], [10, 3, 1, "", "699:1 f540fd8e6be1fd890846ea28490cda6a8d9778e214c7359e874b25ef60cffca7"], [10, 3, 1, "", "140:1 32c0b276b9a8d538096d6a86651b80cb57558fb13ae5bf2b10d58f935ceff728"], [10, 3, 1, "", "576:1 903a99b97d49da2def61a6ad297e6e7cacc921a870b547a2e4fb4d1c24ef769b"], [10, 3, 1, "", "284:1 4c58f5e630a135ce5d00aa99677ca1f3c1c1d1d507b70c61da586534cd4274ad"], [10, 3, 1, "", "673:1 fa43d63754ae49bfbcb18ce1c738640e7ea982d0e8a54f7a373fca1a8f8687b5"], [10, 3, 1, "", "78:1 ca82b23effd8f2c8ef1852b564755ad552726c3f8bea118b31120b6809597db5"], [10, 3, 1, "", "609:2 d258187f5db39b35fb4ffbec50fec919243b0d2071af0b861b7e05eafeef899b"], [10, 3, 1, "", "313:1 8b88615a9cfe8af953cc245d7d590467c9d194422a45dfd1545057bf85e9d271"], [10, 3, 1, "", "300:1 9a08ba4e86a953843e31807c4334ae9623c0ead8f54547bdac357699f68d1a2e"], [10, 3, 1, "", "122:2 c0e3785f9a7666f115e4329031acc927ba7715b7c96156bb4b6a231b035bff35"], [10, 3, 1, "", "505:2 a29d359f8fe758d5128007ffc3321dd79c642be03b80e068fa040e6f80d69aa7"], [10, 3, 1, "", "586:1 fe6f5bbd825f7060b3539b3ddccda6664da3131532c0613b357f0cf3ca289102"], [10, 3, 1, "", "329:1 f6ba1aca347400dc96ea940e9248923b4a0b6b1bd8847916a0bbccb260c33406"], [10, 3, 1, "", "459:2 8e60507625ed92420802f9708138ddedb1dd61d29f356499cbdb95ef1200576a"], [10, 3, 1, "", "156:2 6fe37f22bb9d618a04b7a471248554c938cd26c78c35410d22c4bac98e96534b"], [10, 3, 1, "", "664:2 6cdc2a1f6dde6174225d84db6381bd5955b4cf4670fa66ce2cb4fd134bfb3706"], [10, 3, 1, "", "233:1 b3a191d6ffee78ef311314020e7f5651797562cc91bfe41e5137cc16ae46643f"], [10, 3, 1, "", "279:1 9d1fdd645cfc05a9af6785d9a5c076c89a63c5fd84abc2e722d00b9bab65cd06"], [10, 3, 1, "", "26:2 779c3367f4595f83edc738069ad628562bc861d3f6ddd498122fa6b43446606b"], [10, 3, 1, "", "573:2 21a87900d3877a249502b56ad13c8b8975fdf3dfbb4708cb4322219fc6a2d7a4"], [10, 3, 1, "", "76:1 244c375c3a3e13b0a601337834316fbcbbc56c34877090d9ebf3f24690f6f9bd"], [10, 3, 1, "", "82:2 5172defdbf869d3f3bec7c8221fac297297395d7d1080dfd18886e0692276d94"], [10, 3, 1, "", "602:2 dbb5bab03e4e32af76a8d3acb475ed85a84d35b6cb8121a9145b90f888d7c328"], [10, 3, 1, "", "588:1 47718e6645a8f9725dfac70f2975316555887d2128b55f8c9cff6d22933bbb53"], [10, 3, 1, "", "338:1 06f6377b85369183c52c54750e36d420a7e7b6d66a50085f8596afe79ef2e505"], [10, 3, 1, "", "238:1 681928198e0928564ec0969507a905e845bafd18a168bf4489d79b2819c3e04e"], [10, 3, 1, "", "521:2 0811723671ee722a9cd5cbfc0d41ca93f15e3302d14e510db6c7d1c7a647472b"], [10, 3, 1, "", "61:2 29aff3e58116ee151766d953841c4095fe883e4ca704ebe36c0e694f96016a89"], [10, 3, 1, "", "303:2 97be6c945e9883eee71a01f48988cf883ab4a0d22323c09fc9de2729bd23da3e"], [10, 3, 1, "", "546:1 645b6eb9a167d07c82bc9500a8b9863c903eb0c0d87ecced53fbd7d4170d32db"], [10, 3, 1, "", "89:1 9f29b6b7e9ce5bea7065b3df184b075b67ebdfc536322453a87c1d2462e69aac"], [10, 3, 1, "", "87:1 abc9e73351e349d7595c47b1849763c9db6e2876fedddac5a15e316120c0a993"], [10, 3, 1, "", "245:1 0bd12e92ef99aa4986574399b441b60d9caca17812328174744bea656a030c78"], [10, 3, 1, "", "135:1 402982ae730789f8c535e089a21db522560ff5c2b94789570c5cc9169f518d15"], [10, 3, 1, "", "347:1 fa64d24140b6632032564a30372f4a1aed8d58d19731e3e20079781802db7dba"], [10, 3, 1, "", "324:2 24d3acae7cdad8f22cace7c4cae98ee055f95867917e0436b007566b2b743485"], [10, 3, 1, "", "293:1 83f5a2b672e53fe08eee031615c3f89ecffe89afc3416f601a18f36a90731367"], [10, 3, 1, "", "543:1 8b376bd574aef40095ec0b238e2bdb07e92f1d0bf017715d535add5a514048a2"], [10, 3, 1, "", "354:1 67151c0ec33049c52da54517530f8584020b07cfc1feba88c00960d8ba135d72"], [10, 3, 1, "", "445:1 8b5a09650bbb9136e81393b63b7d0696da00347721e07730f4298aa2ac6e5eed"], [10, 3, 1, "", "724:1 09a2ab18e10c912b792daab07b9e448646dc62864c26467d0eb49953b686c343"], [10, 3, 1, "", "425:1 bc2a9b072e7ce04b5318c441aa6ae721780ee0588ece5a5c5253035f7dcfa31d"], [10, 3, 1, "", "189:2 fe3d4b57a8de6c6fec34a4c7f0577cebcec203f85a07de1166ce59701f0814cd"], [10, 3, 1, "", "232:2 6d8233757d744aaf3a1bd9b1d0c8c2c913808b7d5409b6e869c29b8691106df5"], [10, 3, 1, "", "492:1 df2143eaa654123ac252f80f303dad763ddd719296781254975176ca4e5aac2f"], [10, 3, 1, "", "366:2 26c9ac123efac24b082c008cabf69b8974b6b121c8cd980dd0d0c3a66ab3f9ae"], [10, 3, 1, "", "205:1 246d76c492360be9b37e4456c223c1209aca1d92e47981a66ec2addcf240f86e"], [10, 3, 1, "", "403:1 6557abf3a2930ad9e886b80cc340e32eebf01f2d5a45aabc11dd3fb602d655d7"], [10, 3, 1, "", "531:1 a8a8919d753d67a5e853e8f9243b635b62f24429032dc9b096ce110f00ecd4da"], [10, 3, 1, "", "86:1 1d84a640b81dafc4d21d0e36236a4d94d1ebfd62b014b86a6b7794963f4ad7f7"], [10, 3, 1, "", "159:1 3e74e67dd4f92d64c9dcac1bab6954b9904fdc86d5f8334201b4ce7f7fead9e6"], [10, 3, 1, "", "383:1 8413a81d0a02afb47e09369ab11824eb36ea94b506bc186ce0a0beb3bba0a285"], [10, 3, 1, "", "728:1 d4e120832d43e5442500d1f582915ab5c4981ee54c81700fd0fec82eaa1b174d"], [10, 3, 1, "", "31:2 d78782159526caa5d6547852c6c2ba04781b15013de4dcfebf018dbefd9285a2"], [10, 3, 1, "", "417:1 953b4baa5f434ef308e2ed7137c138c94996feb90933a70fc13b372499426426"], [10, 3, 1, "", "400:1 e1d392e3bce0aa46cec6c2e69f6d16c99e1fe9e20bef57e1170dfdca473be6e6"], [10, 3, 1, "", "645:1 681e18d70f0544e542ba3910ae049790c537eed7fef99a72b866923d9b122189"], [10, 3, 1, "", "417:2 48ced6114174b83267a99089cfa219cbdd71643a4a3ee89cb3dc1d4c0387f607"], [10, 3, 1, "", "727:1 6d04e874de15ec8533916fa1837ec3f748e0041416df7c5dcab483fafffb7050"], [10, 3, 1, "", "407:1 743c664e87914194f65ee638557b4a2bcc2110ad6b68140945dcaae53198fc78"], [10, 3, 1, "", "122:1 c67acba85c414db1b42b760a5c75365e884a7ecdbe9449c2e3088f602d8acd40"], [10, 3, 1, "", "186:1 3bd8765395f2fac6faf751bb96055a45f85797eae151e46349ae0db30f071e70"], [10, 3, 1, "", "161:1 1240280d29008dfc8c0180ba22be627dd92ce546e418c6fb9572a06c31605ce0"], [10, 3, 1, "", "374:1 1123a36eb80d975b9c0775e5710212312cca6d498b93b328d3436a7d9110d492"], [10, 3, 1, "", "739:1 1347632e6ce2c4ee49038f50ae13199cf27d4690167ba97f02bedbedd2a05293"], [10, 3, 1, "", "88:1 2b5b36b7d9a4880164099cdcab035d2d100719306adc0c0e1d4a33d9f29d2bc4"], [10, 3, 1, "", "380:1 1bca23bf5842288cdca8a36c009a79ab1faba3297c4e01d4d88a818f85f0b645"], [10, 3, 1, "", "667:2 3520afa480b073c9eb1d2441a6534ec15d464557e5a5c1b41696b94d12f1793e"], [10, 3, 1, "", "365:1 7b8dd38c13fed841322ac8395586d2782e583dcb670d90c32245eb319572e31c"], [10, 3, 1, "", "453:1 5fe01a90aef55905159f37f242890148a65381cd487ee5fcbb22d724428cb3de"], [10, 3, 1, "", "601:1 b302998907689fbf13c4f8078e47db42660130fd2d89e0909ee91b8f22cc3ee3"], [10, 3, 1, "", "605:2 8e5e796d029a12ad7750baed68f980b263c914dbd89a309bbf3beae2eda0a534"], [10, 3, 1, "", "474:2 c05fac352b00a12dc595f1319451d2f0d313e898e70ffe3838d14839fb852b28"], [10, 3, 1, "", "328:2 a0f44dca15fd194631be91e489c1a7956fd0397f36291b78ce3373f8a2ab8527"], [10, 3, 1, "", "429:1 7affaac9d2a652dcf6c533a387f7d24e76569f24e04cbb44bd693c708961a464"], [10, 3, 1, "", "248:2 bc5d7583e1784a90ec21f1733506c1843a5248443ca157cd50701cf49c92e25f"], [10, 3, 1, "", "687:1 d50f874f3d49514c3e972dcc5a0b04401b9d0688b9d306219b210878cbf44bee"], [10, 3, 1, "", "121:1 a4c05ae36c5fd759a4da08d503fc1af571ba413e676d01dadb500e588dd1f83a"], [10, 3, 1, "", "211:2 5339879c39ea4615d41c32f6d48b2e53f0bf6a1f4f43569a50eb73ec059689cf"], [10, 3, 1, "", "436:1 45b90d2044a94a97f1622b1372eef6e296fd6e7abe5ce0c5720f303b8d25d3e3"], [10, 3, 1, "", "42:2 cde933865ca4b56f926024ba889c6e7bfcc3c6c0f622ee515b6db1801ce7c42d"], [10, 3, 1, "", "521:1 c9ebb5dde93887446f9ffb7c6479338c29861febc756605dd9c27d689adb1cdb"], [10, 3, 1, "", "634:2 0e03fd06e3f48059a98f5c7000d34f910c38730b70cd097b709a8759ce8d9ddf"], [10, 3, 1, "", "110:1 dcc48ef9336f4c635127d9fb40bb282553c33273cf2faa0289abb58a864f5ee9"], [10, 3, 1, "", "282:1 e03f0863b544f98fa018ab3a49a6c73e51eb94090ce03365e26b70897b68966b"], [10, 3, 1, "", "250:1 b5903cd60c3ce2cce0dd72ca2bf7615e73a2053748d9a33135a7e0fedcedc5b1"], [10, 3, 1, "", "134:1 079ceb5e3a19a43aa364310032afc2a291255d66c92dac9ba5f70da5fd3ba50e"], [10, 3, 1, "", "749:1 12946e0375bdd1300d682bbc3ffe536ed2c1f1d2e0ef90d5f195934aee62deff"], [10, 3, 1, "", "474:1 4bb3009b90c406af213c8dc995cc67a0111738597ec2110564aaa7057249c9fc"], [10, 3, 1, "", "719:1 7ed10cf906202e473aee8f7062336f3ae2a1e5e983ac5fa34322455b6764c713"], [10, 3, 1, "", "1:1 a4b8b9adc0d06d2a1d33f109da69c23d05657829cf884e7db50cbd82d36ce75d"], [10, 3, 1, "", "462:1 72a1edab48d76b04199e8bfe7825c3eab26a9914b6b707eaced222db6c12bfed"], [10, 3, 1, "", "49:1 a0f6ca8e3a6e0ecac876103ad5d446d406f2fcb80e6ddde3bf589f235077c4a5"], [10, 3, 1, "", "627:1 94b7335b72716a696d96f92fc481f703af70ece1aaac62b59428b634927782f7"], [10, 3, 1, "", "523:2 59822d397a3a69e2ec31a26ab4c80a8d277b159ad97c2ceb016e353899a81112"], [10, 3, 1, "", "245:2 163d688b809a2663e24823d2a6568ef204b5339d8e74747f19ce6eb09c10d110"], [10, 3, 1, "", "34:1 54415450f0844d84e0beaf4ec65f4f8228b3e8c99e9be690005441052ccef255"], [10, 3, 1, "", "218:1 181cd4cfcee4b0854842216c451b38f93ae6074ef36248dc184574b7b67da1a7"], [10, 3, 1, "", "98:2 678f63247cc5c82b754402bb384c9ffc044dce55bbd7b1cbf591c25c5dfbfc7b"], [10, 3, 1, "", "598:1 7e0c43d99329cee53612742b4664c420c545bef701facbc4e9a2840ed513c87c"], [10, 3, 1, "", "457:1 f376384f0f6c279aa34afc028e25d66dd871db3e4fc02342f2b8000f35c42e49"], [10, 3, 1, "", "231:1 06efac29168db9a25d7fee7d6b86492749c226138f468ae353a9ac03190201af"], [10, 3, 1, "", "641:1 9cbf5912d6d17d7ac0ed3b3c24ab980c7ed2e4fb5b00af87a0b7865553130294"], [10, 3, 1, "", "125:2 4d0c95fca6696e81f808680e4c4023687115b55efdc4fd46f2c021fe63f1b66d"], [10, 3, 1, "", "584:2 1cc2492433debb414f0eb4fcf241bef3a32b6d3053e2909902cf511ad574d4a8"], [10, 3, 1, "", "550:1 d727fb7a354746a21a4e4fc4f11e8b9c2db5ef084c60db369114e4b63fe510ff"], [10, 3, 1, "", "165:1 c3c69e39c76ec60efe130d5fe9cf18560b60ca13e2b9f1a89079c56ea51ffe16"], [10, 3, 1, "", "9:2 68c00757a667a7d05b35a2b500a797bf290d113953e916010ccad377f4804011"], [10, 3, 1, "", "445:2 2fcd35d91a3b60d2418157e4d55466d2f35f6d7e6b03a634262daafa5c41a13e"], [10, 3, 1, "", "199:1 cda63944f6a0056104780625eff6b1411a44708802aa5f5ba1339cc60f2d6e06"], [10, 3, 1, "", "422:1 6fcd4c6e36e26e8d5a43feb62409812d77e18c03cab99436ea9a5afc6c118209"], [10, 3, 1, "", "85:1 d33508b56c217a40f57a38a2567af1bcac36a73b8f1429192c38660f309e5b8a"], [10, 3, 1, "", "387:1 68b1edc4db0d2e3d4ce635d19ceaec8fec5168adff8a8fe5a1a84c123eb789af"], [10, 3, 1, "", "377:1 292bed78eccb53cf72d7c5e667ddc39d2063ad35e39b46d0b606294587f7638e"], [10, 3, 1, "", "680:1 446d19536c494b187a348cede9ba0474e39271596216682bcb9b59c2c24a270a"], [10, 3, 1, "", "651:1 a5d5da0318d7ec6c47bf385aa8183d09d97852f18063c4b197eaf7e0638c0bdf"], [10, 3, 1, "", "393:2 13aa73789014f9acace156ad4ac8acbff9c51708466dad1f80c42a4644a3912d"], [10, 3, 1, "", "518:2 1222d9cb35a5e949bbd837dc84397530b43462810f5f1c0c44c51d6fc78d9d55"], [10, 3, 1, "", "225:1 6ea581de0e89fdaadc05a0ae86ca201bfc22de10dc318b7531c9c98d9d50fa94"], [10, 3, 1, "", "261:1 ff1b277b0d720b2a289f5c673f4ba90904790fb8e9bcd97f274a230c874da418"], [10, 3, 1, "", "5:1 d7a55be9b85d21513a63d47bc7c112eda652d7ddc9819ac326b8b23b6cba2125"], [10, 3, 1, "", "555:1 43a3e84b5d19866a6b09c6cd2ea7838a7d65fa6f1fd49b2f0ddbaca5a81fb1f0"], [10, 3, 1, "", "613:2 024955ef4fd2cb181a71d8785ed496d36e26688e5e1d0a8ecf0234bf90e79adb"], [10, 3, 1, "", "65:2 3f1493cf83a8e792d5d2d85309ed20d423d40923a355e8f32b328f2ee0021e61"], [10, 3, 1, "", "612:1 c780396b07b8f0521e767ef92a329d5f625360d5f1afb720ea854c4953bd8419"], [10, 3, 1, "", "556:1 4a662cea85148083b5a0179032f600b305245ba09178fd3a04d08f592be24a88"], [10, 3, 1, "", "582:1 64222126b2056e9b6d454a80a4515f9e7eb4710b27be383ce8cebc89dd173fa6"], [10, 3, 1, "", "681:2 faa528ec23f1f22d7c3d98aff96922f60da745b4648303e2129eeaf744823f5d"], [10, 3, 1, "", "180:1 cb1c7edf069900e8ae1aa4ae6e4e4db97372e11f2612c1c75556af4f8f1e1911"], [10, 3, 1, "", "498:1 df273ba462a9e4407e9718b359a0b3af6c4ced0d4aa8aea268ac7f1b6a7e2ab0"], [10, 3, 1, "", "512:1 5474073f896c48137618f47655320de5299e20085fa083fc31208745dcbfa9ad"], [10, 3, 1, "", "454:1 b0ac089ce6d314e4571988cd75d462fcbe40383a38d73da01ab7ec93069b924b"], [10, 3, 1, "", "325:1 8c4b2ca5e676610d88ff41d9ff91683d41c450d8939a0c6a952de2734dee2146"], [10, 3, 1, "", "41:1 ae043cd27830b3d4d25fbf3c74d8930fa00fdba422466580da9a80cbf0b77934"], [10, 3, 1, "", "610:1 5355753d17b9a1e7061974c57e99a31889eb0b46d01364d4c6d9b74811f7d0bf"], [10, 3, 1, "", "493:1 7c5342ccc6c27341c3a10ed0a4bb92e351c44fe2172ac672c061a1a6b25a4811"], [10, 3, 1, "", "36:1 c582f9a66293c5666b0e75fac231f2415fb02be2cb7ee04b51ac50901ad7f023"], [10, 3, 1, "", "638:1 3692c3fe609b905b0734904435de28f55003026dd2504681ae3e03a050119c73"], [10, 3, 1, "", "333:1 fc6565e0e22958cb1bdf76ff7c572c22d46b4960c739a1edaf91133b9d8479b6"], [10, 3, 1, "", "239:1 3a6ce2a8af500a647812693f27feae2ced85a925221bd4a25648464e9a9af16e"], [10, 3, 1, "", "514:1 0fa315b92eb6b4569105b3991791bff35671955a1b50a86421e4e2fab8768710"], [10, 3, 1, "", "500:1 98a1e0e586178dd832d3937b1e01ff4acf5ca80629eea845aee2b1eeea59d6d9"], [10, 3, 1, "", "338:2 26e6707c52d7829c4896f6018110bf1a074068eb294d89e589af5883651bb469"], [10, 3, 1, "", "71:1 502b84a3d6795ea515381c6f55bb280b6ecb5247521831d647297dcd20b2fd22"], [10, 3, 1, "", "81:2 57fe72c338f783adb28c56b1e3d5b590b3500dce4a8d42b378f7ddd62130f87c"], [10, 3, 1, "", "706:1 42c1eeab5df8669a23a8174e85a967c08b0a4bb6193f0a46c12fc8e34e122283"], [10, 3, 1, "", "346:1 a4d4f9bdc27ab79b96aeb1b9da7cc17c427b3a86cea9797d7376d24370ea366d"], [10, 3, 1, "", "120:1 ccdcffaf0aaed8fdfdbef3ef6f047bf8f190ca0480c0869613db6d2527f07513"], [10, 3, 1, "", "298:2 b912477106fbf6e67237a7afc70180f22d6949cac793f7269d3dc588f85b1285"], [10, 3, 1, "", "731:1 3b8984c321c17db411893b2f678203985119ef59cfad6466111017b363ca5658"], [10, 3, 1, "", "626:1 16fca30812eb235c8b557a93a13756bc39c0845207c5c2c40386bf224ba3f036"], [10, 3, 1, "", "605:1 20d7f9a0871be783ae343c24d208962a58ab36fc49b88753b505da7f08fa73f6"], [10, 3, 1, "", "201:1 f49d2f1aba2b337fd812e752e9330a31588aa19647bff7f1a0f982ae92d9fd84"], [10, 3, 1, "", "536:1 ae001364b117d85ca8352514a1027e91f5d918006cd7b2f368c7306b6015c0b9"], [10, 3, 1, "", "166:1 cab9cc5970167e0b245142acc001861b45534ebfeb4fbbc2cbe70dd9af2cd12d"], [10, 3, 1, "", "111:1 057f094a65cdd0113949e4be1a1cf6da4e439c9e73ad23d72cba5035a6404b6e"], [10, 3, 1, "", "683:2 d2504465bb4d3df32d8b919c4d19b6a57ec9e6beae1243147f3aa895c509b960"], [10, 3, 1, "", "371:1 954683482b9c2666b532b8b7ac23dc703bf907709fd1741b2de7946821edeb6c"], [10, 3, 1, "", "394:1 016c9fe34be63a621635c6627e98f9d342818e04d1f471124aa059ec1b44dd5a"], [10, 3, 1, "", "755:2 9f22f6f0955567b0b63aeee2ca3f78379d5a16acb633f9ea12a2fe537e5c19d3"], [10, 3, 1, "", "50:1 540296c55b80dee7dcdc0bfee11dde91a0e07efbe59376dec22a48ca8c7e5304"], [10, 3, 1, "", "469:1 3fef2b15481f75a31517ecf9b989491b058b5ecc19c035f2c26d8149fa728405"], [10, 3, 1, "", "167:1 a73eab7803701de6bccbe631159e1fb32bb53ae053872967f51cdc17b6c6bbaa"], [10, 3, 1, "", "376:2 9ede60e7543ec5334e989d56750dd9d72d5b3e3143b2b6950cf53e41b815a65a"], [10, 3, 1, "", "632:1 2097bd5c72c447994db952b6e08d6092720ef5355be92616486a8db756a2331d"], [10, 3, 1, "", "303:1 d9c7bbef1fecbfbd31504b1d7eb64e36b781317609b727780da0741a28fa9f15"], [10, 3, 1, "", "619:1 d81c9587a4a4253e465180e7e762ce144ae9971c94a10717066a9026e7d70b51"], [10, 3, 1, "", "465:1 6ab8a36cbef90178c432b873775b2ab984639224142be9cc9f19536cffd7a186"], [10, 3, 1, "", "735:1 043e62442cf2db7aad7811221b566012c7f90db6b6f8872a7ae4d4a5819a4205"], [10, 3, 1, "", "40:1 af7994df35666e2d06d9b8fdf0d438a9f40e754a9fd04dbc071ed879e196ed89"], [10, 3, 1, "", "200:1 2f0565045c9b9b6ac98a82163a6e9b2f2ff7943c7f8efb7c470f13474fcf48fd"], [10, 3, 1, "", "509:2 0579f993ff22774a401e72b931ca3b048a9401d6caafc4c582e2797f24074867"], [10, 3, 1, "", "423:1 f5756acb378386fbd2d24b12c2003b186bf43fa217f74a22a6058e87ba23b122"], [10, 3, 1, "", "453:2 a83ebaffd017390679204da67203295074496e69637faf5d3dd5c7516c9f4fc6"], [10, 3, 1, "", "758:1 f635809dd0ab3cbd675012e88b6b6cb1578b29f7be6c55698932adf2f51569d6"], [10, 3, 1, "", "426:1 9088dc4f9916aea9feb2c5fac071c64a7726e8531771a1ea0d8b6985546bde12"], [10, 3, 1, "", "343:2 7f96489573f69749e33f3439092f5c3c1ebcb5ed805dbe30860a9670ed864169"], [10, 3, 1, "", "67:1 9b3d2ea4510af73672effd0175aca1e7e366510c39d005aef81696a4b7056ffa"], [10, 3, 1, "", "463:2 d0ddc55bbc3d95e786e480bb7babecab0f9818791e68a7c269f0ee4b6c18187b"], [10, 3, 1, "", "275:1 3861fe603625e26ae227e088c785b902e544670dd7f4b1c4b5e84044d6824513"], [10, 3, 1, "", "549:1 1a86eb14800527d49e09acbab5e37b415b2c1784080072bc0fdd2043ae6b6663"], [10, 3, 1, "", "330:2 ab1f658915a6e66265b29dce4282e6745c700582380c9ebd6d1f50db44318cd7"], [10, 3, 1, "", "255:2 130dee264ac50890f47cb9e972b493ecdb9f225ae5a2b82cd0536c39dc5c5d93"], [10, 3, 1, "", "334:2 bf5601e1d0036501ec5e2707130e2e010ba1d175dadcf0a04c8dd149b92f55a4"], [10, 3, 1, "", "248:1 2fc4c501b4e947027e4d2ed82a4a4c8caa514b2e573f8262bf5be48016afed7d"], [10, 3, 1, "", "17:2 153f28a8596d2298b2c427e267dcae87765bb56d5c6263d3052ebe3b5d3bd8d3"], [10, 3, 1, "", "168:1 3d1f7fad507a86b94d9c0829cdcfd7405c4c95a9d7c6cf14d52b73d4021b20a5"], [10, 3, 1, "", "64:1 2719e98929aa9ba831ed3c9e8a53f2865be31ca1dfef22f8e6a549c0489cc074"], [10, 3, 1, "", "553:2 85b6b742d2d0697e2fe95f1418cde3b1692849488b515cf6621535b9fe59b631"], [10, 3, 1, "", "374:2 a5ce68982e4a3d495aecd3817b7f46a66291aa818310d47d1ac783520cd344ae"], [10, 3, 1, "", "210:2 d5c1acc27a061ab4a00f8db188df97108fbc002afb3b8894e7111fd4e4671fb9"], [10, 3, 1, "", "115:1 35180367affa5c49d5b0afec316a5d9a8266b5ca1ac474fa6cc5ee1d527151c7"], [10, 3, 1, "", "570:1 f217c898ac88c6ff78f0f45c97cc69a939aab171fe5db230f08699d88496975f"], [10, 3, 1, "", "672:1 aa3c4d9f62051dcd0d2aab6ecc975098440380f66c21a7c8a410d0280d6d2dda"], [10, 3, 1, "", "361:1 ab5beac07bb3a50414d761fca7c1f5c0dae433fc29c6a25fd9a45ef861260ed4"], [10, 3, 1, "", "101:1 71e276a65e0bb1a228f167bf10d8368d3b1e4100414d8cc4c6071b98197d73f3"], [10, 3, 1, "", "661:1 dc347c35a584cf9bc8cb8bfc6d525092724712619b91a2e5c4123574a19cbfeb"], [10, 3, 1, "", "446:1 c74b901f88e6422e1757c3e9ba3d1dc8fdfef27922fb0b92be03574956929a0d"], [10, 3, 1, "", "320:1 691ad8ae1fae0c19179e0395225b721b3d0fae6f4ccaa8367cf8e0a5c7088702"], [10, 3, 1, "", "721:1 746af7557dda4662a7df23f5d69e723fbe0f3f7759c981bca1a6e9ede6d91052"], [10, 3, 1, "", "452:2 bd14aa7f084817a8f736bc415b84f6f4049dd8586011be7167b5b6f51c995584"], [10, 3, 1, "", "518:1 95d9ef2d49138b2a9fb0173f99d5db0a8a114a95ebd140fd1daf20d94e8da46e"], [10, 3, 1, "", "690:1 d96f9b0e832d3824333a07bf5766342a3ba6faf603caad0f38302dde5b66027d"], [10, 3, 1, "", "369:2 4a40b3381058195f93b4f1ca0fb8daa0b8749e5eed1a30c6b189582680d4668a"], [10, 3, 1, "", "92:1 42b70f0392703c3c23f4ecffef7ea817778258bcd8666f135b5b9dcac43a1b3c"], [10, 3, 1, "", "693:1 d00e9b45f6629787267fae792c957b6efe042cd13c423d504d6de0634e21fd29"], [10, 3, 1, "", "581:1 6a1fef902a0c781f04b8476f20982b8beb543702ccb5a62918c3bf9d2d8917de"], [10, 3, 1, "", "617:1 e9f4a702e5f7e0b0ae422c36194acb862214f0536da4b586e5dda02b75f83718"], [10, 3, 1, "", "202:1 a05f48ba73d51eb3a8a6d89d6b576154e00a8116ad42133b57faf2e7509efac5"], [10, 3, 1, "", "136:2 1cc1ba072bec8318bf1716f7eb842dfa4947e8f81bcc6b71ec78d2260b78da92"], [10, 3, 1, "", "269:1 a075626ce61b92791f915ef3452f132cb80962ba2dfa44b31fbfaaa346261da1"], [10, 3, 1, "", "673:2 a3bf5eee58995eca7961b2df9db410281b0267a7308845a618f2c29758520c1c"], [10, 3, 1, "", "268:1 3fa122b35c9fb793d5538906271b19213fae752dd74422b25292c38de9c8ae36"], [10, 3, 1, "", "625:1 e70efe05c2fad045cee1a1131482f278b93f794787c1df91d300c860a1ad9704"], [10, 3, 1, "", "662:1 fe59827b018a12bd1afdb2a274f0db4bcdc35d4a4e263d0130439c137025cc41"], [10, 3, 1, "", "650:1 eb508851b91d4f27932856849cf182b28b83707b42dc7206964e098efa41dc02"], [10, 3, 1, "", "447:1 3a9869e08f3041442b54b7ba31117a92030d76ce7f4b9fd199fe8a9fdc332038"], [10, 3, 1, "", "129:2 43e5e01d043938198f115d06c7634976532ed1ad7ae84b52a78bff9ec59c2244"], [10, 3, 1, "", "744:1 36478cc9ff5272fabf7a32e121dd6075c62366448ef8741b677f766d56bd9c56"], [10, 3, 1, "", "273:2 569a1bb8527da83c0475270047ca9e1216b99851534ff3e4fbfd7f4ebcf60962"], [10, 3, 1, "", "309:2 23af911d2265b6503e087d8ec2ee433a5f8c6c3705edd93f7f9580c3427f5085"], [10, 3, 1, "", "708:1 874e78f40001ffeb6589fe44ef1284106f77490c5142b4fdbc3ef3815743bfd7"], [10, 3, 1, "", "24:2 b69292e62b34d951badd6112a1bffbc713a61d7fc3b863370f9fa95fc2001980"], [10, 3, 1, "", "476:2 91b497e9fa3f33bf6884d107b2a1e0920f9711edb4936657a48701a8eab9f6c2"], [10, 3, 1, "", "304:2 08847fa94d18afef03731ce343412b1051e405301832ada5b32a88b300da53d3"], [10, 3, 1, "", "132:1 0d8ffb55967c6c3a59c4fcefa6ea5ffd5237d622363d040e0fdf4d62bdaa955b"], [10, 3, 1, "", "444:2 3b3110f44f634a0c3c4a54ab94e02145944433408e11a342496fd6d8ae11395e"], [10, 3, 1, "", "196:1 a97d85b8319c13caf3eb97c8dcd218ba5f6a4c34818926f65673e3a9a02961e9"], [10, 3, 1, "", "68:1 e328d7925174b8ad13fe58a5c2316ab5b1d4e32fabc4cf018f015f8c32d2aa52"], [10, 3, 1, "", "192:1 55bfd8e88f68583acdcba6d46ba7f3ab6a7f708f06f1d762e49cf30a6237fee8"], [10, 3, 1, "", "188:1 fbdb6bbcfc31a6446a2909cbbfa2f1f86bc6d494840bd0c8182142874cec9846"], [10, 3, 1, "", "711:1 2b5e32a18d029e2c9499e716ab614297f977095023bd2f89e271e3cadf89458a"], [10, 3, 1, "", "360:1 4d6c770b0c36e643e9ecb0b17237e92a52923f197c20208f55ab98eceb576374"], [10, 3, 1, "", "357:2 e54fc08d2ba7bd50aedf5a6fd7a981f23106eacfa31f81ba5c520727048ff11e"], [10, 3, 1, "", "479:2 cf5774737d44c0244752f89f7edba65e74214b321ce211abbefed1aae2717247"], [10, 3, 1, "", "515:1 c419855bc5b56ecc7a8dc69411babe0aed54f62a687c5de8352c86dfbaa2ca13"], [10, 3, 1, "", "411:1 f06a84237b1aed4ddbd1c303a8b54800d376114f7b4740266a7935e3e70320e4"], [10, 3, 1, "", "479:1 282073b14300e91d7204be8ea956e9e8b3cfa3158d260105e7dba482180a5dc5"], [10, 3, 1, "", "55:1 92f69db90c0242687f25911efde1e68a3164d404661348a62b75ba5d40545131"], [10, 3, 1, "", "322:1 3f6324a794a4f11f447669e49a7d2de50985ca75c7f41a95752e2a401716f9fd"], [10, 3, 1, "", "720:1 2c7f34a4421b36a3de115c19d0f2986496bc0ccac6f6650e3eb199d9f68e7db3"], [10, 3, 1, "", "82:1 c61d862f34a4363bf2bb995c57901407eb7ebcfe815a9c3b9407d70f22ed0051"], [10, 3, 1, "", "646:1 5f351473bc8fa908a3ee2b417457794e4feefba257826dec5b40df10c6121c00"], [10, 3, 1, "", "686:2 3dc19b9af6f9759dae3311697bffdcb48c66303780af22ebf32a3f2a72847bb8"], [10, 3, 1, "", "95:1 ff7df276dfca55abbd6131102c4fbc1de97b7b3e4b004424aa0c408b72fbe5e9"], [10, 3, 1, "", "502:2 1ea3558c6285e7ad5b30aee619511abc42157a7b436cc188060278d493c59e04"], [10, 3, 1, "", "103:1 648ca512997d7e2d5e5180038ed504b667046b8a16e97113eea58e73ab18a62d"], [10, 3, 1, "", "314:1 64fc80e9c847ca30f9ed4e90d495037aa47edc264ade011f4e87acfb61f3d2a1"], [10, 3, 1, "", "707:1 03a081739582029e2cf73267b95ef3091e731e205714ff0c738ce5fc6fdb5e9d"], [10, 3, 1, "", "199:2 9598dac15ae7ae5953f1a98ae895611ac521b0bb5071f731bdbb4c6d021e9ee8"], [10, 3, 1, "", "369:1 f99b5d3570dbb6f971515c5641120a0840b36dd45bbb0c22a3be26a540f75f00"], [10, 3, 1, "", "103:2 373b43756a1872d5f4876aaba9145e222c9be7bd58528b768394e3dbc85c118a"], [10, 3, 1, "", "663:1 014e8976a0754aabc5a82c10550042e050855bf54da0c5fd42c89e1713d3e0ad"], [10, 3, 1, "", "358:1 0f0af9b9915945fbf0c8d154898955a66e8495506efd393738576ff255050fac"], [10, 3, 1, "", "70:1 33d43996bd0e88b34594263661c579e5689d804a42a1bafae6e79a9d192f9e1d"], [10, 3, 1, "", "542:2 8d856bf27f0fde9c22a9df8467fb26a0360905e0ebed9a2a93a76f3d276968a9"], [10, 3, 1, "", "209:1 6822eb037fa58a1b2cf743b2117a957fd48eab1ef2cbdb974ff4ebb8dd92bf93"], [10, 3, 1, "", "228:1 6f5e77498cf368104bd5e6b79a788a56a83d1e0fda0d0b0db540240558568a73"], [10, 3, 1, "", "277:1 1adecc92d574319793d4e3c6a00da4b72aeb0ad6aef28988097e7cc55325d5cc"], [10, 3, 1, "", "510:1 51de55b450d6eeca32140828d287d0178deb4bfec1ae880c51b5d61949bd8de1"], [10, 3, 1, "", "398:1 786b8ad12199f175d48897e591e23559a67c00e019fd7ccc0f59e515e25e581e"], [10, 3, 1, "", "435:2 7f9ed5515b0507e08c6fcd3b86010cf6654a304d970e56c616b1432592f17699"], [10, 3, 1, "", "451:1 5141dbbb4eed64b6f01219411a0883c6ec7b86ffd1cf93e8378cb77426030eb5"], [10, 3, 1, "", "112:1 21a2212bc880cb6130b9fafbb5119664810c12f01745d8ee73715152731cebde"], [10, 3, 1, "", "416:2 a5029774cf8e94fe21723165e8f906fbcd2039fbdb0450c4cf0a389c741bfeca"], [10, 3, 1, "", "624:1 8b88e2d4b838d078a9c47bdaa6b417f3b777edb655683284c0442ec129ef777e"], [10, 3, 1, "", "75:1 809145d26a9b51c4a0a61656ff3b16a6fce325a6af66025deccdb63c6cfabfdd"], [10, 3, 1, "", "558:1 80da9d74f91e0b7374d2d43f8525151ded229c97303782a5579e4e10cbccbf0a"], [10, 3, 1, "", "405:2 d227e72ebf1cd311ecad540ddeb8695ffd297714f1dcc3e4ca08784236f64fa5"], [10, 3, 1, "", "557:1 e9bfd0ee98494b56dd202e318c640249b13ae5d86870e455002d02d048177540"], [10, 3, 1, "", "108:1 884eb60f8031345959135331a5aaa69d2a0b2e8a45c22d02ef2f7d78b56fc82d"], [10, 3, 1, "", "663:2 366b7cc3670f470aa55f22e1a42e8fbb4a6335e807dc55022cbfc8e043ac4740"], [10, 3, 1, "", "505:1 25ec8135a5545033a04f63b0f4d5e5e2353ace628c7fd050920bb2cde421dbcf"], [10, 3, 1, "", "589:1 219682f2ca70af89bb15456b2b480b5abfdd707ede0338d0cc148917370f33b6"], [10, 3, 1, "", "527:2 2e31dd1ae2b36f17d7b79b844d29e68d1478a7242aff87211f32b47c6d63bb32"], [10, 3, 1, "", "650:2 6338bc49a64e3c376911109c331a37133aea2682ed07b3012cf3be295a2baabf"], [10, 3, 1, "", "698:2 2c0394e8c9a3ca2f3a9f4e7fbb6308977613da1de981eb8d336ed83a4f4d474d"], [10, 3, 1, "", "622:1 67c1c160f65cc04a9d89cc4bfa73ccbe3120963278571298e35c08aabaea7bfa"], [10, 3, 1, "", "631:1 8a3b01274b8523c1b8f95f68ad12369141240ae80d3eeed8db09de48cc69c2df"], [10, 3, 1, "", "696:1 46639279f33be845b817105ffc1419b926a77f9b60d6e55df1f5fcc0812ccc98"], [10, 3, 1, "", "310:1 01d66d4377546f60e45dd0edb773d268b64c890cc89c32eee444e6cb86942908"], [10, 3, 1, "", "217:1 aeb76dc9d5fedbb690dd0b97233c1ecd588913c98a8c4ec43ca2ce3c721170e4"], [10, 3, 1, "", "15:1 e2d7b8aaac92db93d38fcd31bfae0e852168a01b4d0e86f27e9476a403a7186b"], [10, 3, 1, "", "481:1 aa99ac28601f28f70082de462bb43f46a746ce1f9e1510290e079f4cc60b16ca"], [10, 3, 1, "", "384:1 e54ff2b4d02cc39a0e7bb2387119b5155e4e4583a38818fb1327cafb597a951c"], [10, 3, 1, "", "229:1 8dda539d2ad7cf2893d067c24601d21bdbaa2ee260f478edfcafb6ec7c8bb071"], [10, 3, 1, "", "444:1 221e7357ec4062d6797d6359958208e54d75467f42ab04e41ad890e3f1a38172"], [10, 3, 1, "", "606:1 a593130cb4697d347855e3ab4be6e11ff678532bab5bac2229866f787c40f94b"], [10, 3, 1, "", "494:1 47e2a49e8c4bb9a1da304195e3eb1dc6848ecf6d0755309781c40a73f843bc4f"], [10, 3, 1, "", "63:1 b00fb469cd6302ae9a8f9cc328f30e7b176bc53e0c21a858130d21c6f4c31639"], [10, 3, 1, "", "11:1 5c7086aeda1386efc9b74f3da54259777835abd3e74462d5599d2da7af1ef59d"], [10, 3, 1, "", "74:1 244b38693253d9cad7bda6ec81c1b56934ad443b422d8476e63b75c00b8a2981"], [10, 3, 1, "", "87:2 9cd56fa137a462f758eded2792c0724f19f2df6f730ece349848218bf2cf459a"], [10, 3, 1, "", "674:2 4017b57ffdd0b3ce8085deb3eeb6c74b70ee0424570270827943660f8f9e6e99"], [10, 3, 1, "", "506:1 b56fb4a000ea7a7965a1183fb5cf0be9a407706295181e12fa6957114329fabc"], [10, 3, 1, "", "722:2 14d57b3f5e9cf2a3744d227f964a8bbba246986b93e2f521cca9571201988d80"], [10, 3, 1, "", "628:1 7bdbffe316631038216d56ad9d23a08326903428a975242329934a7640d45ef1"], [10, 3, 1, "", "434:1 c99f54bc8403e25d40c36ab4256c395f6953411a475f5f2906352f7cd9e42776"], [10, 3, 1, "", "175:2 7ed26165464e17c3a4e91284b0f80715d5e38377531d78ae29105c2d8a9779c4"], [10, 3, 1, "", "597:1 d3c28e6cba7c7ee3bb95dda04bb2e0dd1946ffec0b004ef23f5cb5f976644a4f"], [10, 3, 1, "", "280:1 6d4d94fea32df589eaacfa86d0bf559cdd03aff3bbacafc52ca2b2982d53c292"], [10, 3, 1, "", "375:1 0b6dfe8f489ebdb653cfe256043e5b5b482befc3318c71146203216de7f19367"], [10, 3, 1, "", "743:2 7842d3f876bb2f2154b1b74aecde5c363cc4a8607ac77fc1a46a8fc84663b78d"], [10, 3, 1, "", "593:2 a6d7b9fb4316a7224d9d5bbd09dbd87992f1bbcef3c413566fd4cbdeecc3a89b"], [10, 3, 1, "", "137:2 e470bb06658354bfadbe8d6dde50f24f7729c500ddd5ae45dc84b6efc21592f7"], [10, 3, 1, "", "24:1 0ea1f59b66ad56c3821faefc5c1f2fd54127fe0f57dee9851d5172a8b2321cff"], [10, 3, 1, "", "553:1 2593e8774b45cd7ca11eb6281ce21fc065706b013e11558b033257509e2ccd38"], [10, 3, 1, "", "448:1 f6982eeb521169d18f7b3211ce4d2db1795a494ca32b4bfbd52fd978fca5732d"], [10, 3, 1, "", "596:1 93df9dbfb389fb8889169391265e6c89da8bbd394a5e61862b389648c247dbdc"], [10, 3, 1, "", "104:1 695754e485bd8ba23cb133672195926840bb3ac28bfa31a96845ecf69dc65a38"], [10, 3, 1, "", "328:1 e3de743c6b6b482fd227d8e4bc1e7589a12791d372a9d9f47374de87b53448b4"], [10, 3, 1, "", "580:1 2dbd2d9375f3d39970d976141b7018b911bc54b2ec02a5aea07f2c6622870744"], [10, 3, 1, "", "13:1 b20168e112b5a2296c07054c48e2c12ce7e489d74564757148b2aa900f6f2671"], [10, 3, 1, "", "520:2 d88e1974ad411ce2cf9dd9035ef35a501514d9e4b8bc8bb8f748dec30b6d871a"], [10, 3, 1, "", "78:2 53c5cfa98c339293befa824b9ffaff8780090e0e7f7399c451f685068f75f0fd"], [10, 3, 1, "", "562:1 70879cb0ab39a64ebe3b442093d6a2fc2ff966f0e8549fb1c631d12636969550"], [10, 3, 1, "", "56:1 5bd798c44267d7adffd1caf463e843f7dbc62801eb106b6ae7eb6dc39575ad7b"], [10, 3, 1, "", "491:1 1b93f782dd3dcfe565ad4a4c82b0cded61ae1bab29bacd0be29aeb7958b787e8"], [10, 3, 1, "", "28:1 5f146112b79ecf0cca821b20931648fde2e4de33f3c63affbe10634883c62c6a"], [10, 3, 1, "", "176:2 f491325690119cf7c5af7534ced8eb78f097cb2bb8048e82cb70083c7c39ddba"], [10, 3, 1, "", "99:1 21920bddd05d30a71366977a2c284bbeb4bb503b795b0748401f66eb5e255159"], [10, 3, 1, "", "653:2 583cbdd6914b329061117d141e14d6076bf8fc9a1092fd74f131455d10fe417e"], [10, 3, 1, "", "60:1 331f42705a23d4036980e703f4c568126b011b0fe542b9c9468d538c9a63e0d7"], [10, 3, 1, "", "656:1 72411b58cceb5aff59f068ef733015dddfe004273aa63c2936451c3752c30803"], [10, 3, 1, "", "593:1 302bf7e743ea458a7ed5b2bed446ee0e66d522d0cef48ced5f82c7ebc7e87d73"], [10, 3, 1, "", "457:2 64d90cf7adf4d5a344cf4b8c3b657bdbd5906b36ba1adcfc5f45ef21f8c87134"], [10, 3, 1, "", "34:2 9c86f51e02aedc14b3693c8d107031106fa848137e313bbc0947e966ea8c1ff5"], [10, 3, 1, "", "169:1 5a5abc5ee49b4a7f3f4db78ac422d7a479d70841cbcb719ec4b8021a3fd162f3"], [10, 3, 1, "", "496:1 da9efc0609995ab5e22ff4948727e3f7ddcf89c93a3a76c7320452b1d093d45f"], [10, 3, 1, "", "619:2 aaa87a42fea5c81ee77c9afd026837473da6e30ed5010a8162226119622ee1c1"], [10, 3, 1, "", "649:2 998aa3d18694487f4a3f8b413092cb43b87c51361c018ff43f50426e70d4ff91"], [10, 3, 1, "", "149:1 3a384e55ab1144b0661fd6868c8b9ac514287016f83797db8c62bb61f931ec18"], [10, 3, 1, "", "22:1 32549d737df6956f86729fd3cef18291f5b579f8fb8cd87e6c65cae0d18621f7"], [10, 3, 1, "", "214:2 302b6dfa7018b3eca79b3adc9417f5045a101a947eafd0fe83021a44796cec3e"], [10, 3, 1, "", "47:1 71672fbc8744f773cb99e8e1c2281dbac1fc06503184ba6bd3c439e30defd776"], [10, 3, 1, "", "62:1 a624547e4f9b00862ac20046a4026915d290509d41d7fe0c95418ad4a4fc460f"], [10, 3, 1, "", "510:2 f27680d0e79080f5fc3a9175674912f8b1113a86b806c226022bc94aba6bf691"], [10, 3, 1, "", "290:1 5b7663754e6177578a2251558913f6dd5775aade2fc7ee2f91917af36d70f77a"], [10, 3, 1, "", "614:1 14e09d8b97a66fdbada8ce9e55d45408b7a46c69a843b69cdfb609e4a84a0205"], [10, 3, 1, "", "370:1 e14defd67bb35b75a7b00fa0ae001993fc6127bd3edd8a03453e80a7f3bf13ed"], [10, 3, 1, "", "665:1 a64d40bff82db0127f3143f64a671fb6f7d89c57e8ac4c3ead72042d404e6aea"], [10, 3, 1, "", "419:1 a45de552ec27d3cf42e34f94296cdde8f5b25e75ed29b92d304cd653a55753c3"], [10, 3, 1, "", "239:2 bf995029633a5decb43fe87b6fd87e5818d990f5e31a4a0aa5033acda9342593"], [10, 3, 1, "", "487:1 8af426150d7b87d3399d36cde4208282a14031da42b92bcb54c3619dd5304962"], [10, 3, 1, "", "211:1 a047ef3ad373b2ff4f80056a1438b8aa65b5f0d30615bfc299868e00c8c230d3"], [10, 3, 1, "", "335:1 f85f54e6db19ccdf5e3b58ee3014017a2a0965d59f572139c56081b253ad2cb2"], [10, 3, 1, "", "176:1 fc35ce0f0ccff2997fb52a27c87b7ceb21b3a45f2aa9e4d06034ad09b5873da1"], [10, 3, 1, "", "495:1 47428b53e2a5f713c09f529e70eac042045c822b245616e01571c803c69a67d4"], [10, 3, 1, "", "118:2 6b15e5c2d99dc9eb699f7025c11cb1ae02444ffd7787b1727950222b3901aca4"], [10, 3, 1, "", "564:1 cd5102a8cfd0c59ef4daced4388f485d63908b87f53b1df4647415da2ae37aa5"], [10, 3, 1, "", "676:2 98cca27ac1968d639801599c46b5009c59014d58e18c6232f0f6141b7e5cb18a"], [10, 3, 1, "", "318:1 ec6be8a5604774a3e5bed24541db2021edcb4c37c8adde52427628f14df9f59f"], [10, 3, 1, "", "73:1 9cdd4d1b23aed863aac7c2e7bf9f7fee8fbbdf8a16e27035197f95c8f3adf46d"], [10, 3, 1, "", "216:1 6bd8c2d66d4263112be6db40475705152153102478f83df9fde317cbc0ed4886"], [10, 3, 1, "", "388:2 179f2ff2fb19802b53eed340592a99cf011a22a1137bc9b74a8f253665812b64"], [10, 3, 1, "", "732:1 a98b44a8b0c6b0552246906fa82d599d1c2d98ca33f9927c058579d6577dda5e"], [10, 3, 1, "", "131:2 594cf07dd3bc7ffc842550c76f091d059f120dfbe84f028ffc88d7e09d64747c"], [10, 3, 1, "", "342:1 9b3502a55d38c64bd15befa7c21e4b030a57aa82e5f7d8f7ffccf3523a9e9ac6"], [10, 3, 1, "", "252:1 3e8a13071fd084c96974f8a5de9984263fa635ca17aeee18047cdd285979738c"], [10, 3, 1, "", "563:1 86cda4a9822fadeb8447b3f1af44c4f51ebbb97ab13ededb204dac6e6e965b60"], [10, 3, 1, "", "512:2 51be0d021a2c6e6de9c677e26c40952ccd74a03f106c01b23422e36979841fc1"], [10, 3, 1, "", "262:1 eab53bdc0e13f7bf21a0a570dcb149af43db736ef940abd17501e11cbf1b7fd3"], [10, 3, 1, "", "341:1 c07c5b6ea7f4c478ac920fd8645380be8ebe3a05ec99356760ef2831a6b35da2"], [10, 3, 1, "", "69:1 81a472c8ba42572b17a8b61e7325e2869b4aaacb298835287929a9069d8a33de"], [10, 3, 1, "", "113:1 b46c27a5e20681e3818872ee89c973ecbc77f74af768e18deb0c0bf8f6564768"], [10, 3, 1, "", "204:1 e6e30a3137daed472eac5e6451ca742c99cd40109cb14e02abbec0c2a7a9c8f8"], [10, 3, 1, "", "502:1 f9d67b747f4924be16ee41163956c3edd830b80768a149da8fd8fe40d21493c9"], [10, 3, 1, "", "158:1 f60378643e829d062e4e7148f2c4e7f2ae8d5ee23e30726de0b1e517e56d9882"], [10, 3, 1, "", "230:1 bbca6811533fe8c8d6843f6857396ab3b9930dfb2a60fb52b0c690b307e624cb"], [10, 3, 1, "", "534:1 84bca57f762a49753ed216be2fe143c33de2fefa9b1eafc5b0439e95c7948ffc"], [10, 3, 1, "", "658:1 96f0314bd359452ec5781db052a5b1237ac5af5741013b5594601070a0238790"], [10, 3, 1, "", "184:1 74949c40c2992ef3a797d351b856d71f6d0b2c333152b70dc30b48e4874f8031"], [10, 3, 1, "", "551:1 cbdb71aa37ce634750e0799d9dc5b86eca6b8974b0be2fe6669773d769756dd3"], [10, 3, 1, "", "416:1 87167727330385c9802e8fef3d66daa817ab0e0afc0b1a4f4337bf7c6e691c2a"], [10, 3, 1, "", "295:1 e2831db7b856046453f4995db74b051de22440de1c403e26a9a5e55ba934509f"], [10, 3, 1, "", "745:1 220d715c4f8432b1b2ed9d84586bd572af548dc7ac7a15e689a46fee55334d26"], [10, 3, 1, "", "472:1 1a8c88f11c890a81eec20646539274b3c90d82cb233df59ffab0326e60b82f5b"], [10, 3, 1, "", "438:1 79903dfaf51b0a6db870067d9c6708637db0cb9c51954700dec678bb066b93c3"], [10, 3, 1, "", "722:1 12767e911d6788d44d6aab73c9c1defd79788a9aff3055b771e0c7826f990e53"], [10, 3, 1, "", "682:1 47e816df6b2d0e10441e59307eef6ae63bb4b1e453422eb9d9f1eeb8560eeb92"], [10, 3, 1, "", "274:2 c2eadb77b73a1e2b0fb621cac3a7fe04f131b23aafc0d9104b43002d44a62860"], [10, 3, 1, "", "17:1 c10718ee19f1201e9e9b7a56c6b617bec1c6a443ee347fc27692063012ef9c14"], [10, 3, 1, "", "587:2 e9235711e81476c0017f4de4b96410aac4a18b20712e65998fdff599c4ebe9fb"], [10, 3, 1, "", "393:1 3d465c29874c8616db76aeb84abdd924cd7ad1ab1f10fe4e75cdbdfda3d15d16"], [10, 3, 1, "", "53:1 44ac37f28296db4446adcea7becf8632f74186b581c1802f63aa910646775d05"], [10, 3, 1, "", "709:1 46e6ddda6586685cb4481613c375417db7a49c52bbfa54677240f8c40c613c5c"], [10, 3, 1, "", "30:2 bce9778dd90da6c0ce90dfed19e2530cd684fb27d929e19c67e067e5f7552bf8"], [10, 3, 1, "", "237:1 07c86728198c5a1ea89ef651d47a91782d9fb08d35305b48637ef644a38df6f8"], [10, 3, 1, "", "488:1 a0837fb75bbafb4bee75f28944324055ef7701aa5ef37bac6239c767582688e3"], [10, 3, 1, "", "285:1 f9193acb1cc76526a453f0c55fd742d17ed18c557e69b46b6929f3b96d678e08"], [10, 3, 1, "", "332:1 18bef21654c0cb649fe8aa324c1e158dc17cc564c6d81a20ccdc7dc43a4afb43"], [10, 3, 1, "", "31:1 91327a66cf96bd903be1c5e14a958c45bed5796671fd255265fc4825fb89e311"], [10, 3, 1, "", "698:1 6db0bf00d375f6f71d8f32444dcae6c9c8405cc337d210083fbf4d32f461dfb4"], [10, 3, 1, "", "210:1 eedeacbaa1d210d8b20142f0e6f43a38225774dec26c09c4a15f49ccc2049a82"], [10, 3, 1, "", "637:1 a8b23520c501f81c345e6e33431b67986a2850dc3de4a72e1fdf2d5720700bca"], [10, 3, 1, "", "568:1 f839a240a597ec67f92e0f0866d3eee01bfaae17db27509a4a39cf9c2aca7897"], [10, 3, 1, "", "608:1 bf5f691ab0a43fd02aa87c661feec0730cfcfc91b5f24685efa59dfee5c0cf52"], [10, 3, 1, "", "639:1 12bc59acb7d38876c64b0653786c9f08057881a81fff343bdea6ee49f7c15cba"], [10, 3, 1, "", "92:2 76dcd27bc5ad3370689dfd4eb30523ee45cff5bf2abcb711fab20cdd3dc809f9"], [10, 3, 1, "", "707:2 2a190782043c191952b41b989f80b5f8e19ff25a66982307171b40712bb5cc42"], [10, 3, 1, "", "172:1 ad374347cf4cd6a6c6b98a6893a3c10cd7b2eea1690b918fb460d7f40298e461"], [10, 3, 1, "", "481:2 bb9ae81115e84e34d4d388c6f605b9464dce63718f64bc4b2a53dd7f901a2832"], [10, 3, 1, "", "139:1 2b20e4f2abaef632b5e64246950807ad561b2bc81d347dc516413598c3ede233"], [10, 3, 1, "", "337:2 5b0470c39bbb1d229151bfc57b017d6fab42323e2c8e3e1fafc1a887b96cdecb"], [10, 3, 1, "", "254:1 0a5a17f74d7b815ad249fb6b287e38a342ed4d6f5334a69d94da1ffc0abc530b"], [10, 3, 1, "", "29:1 d33ad565b26f01d4335d9775d46ec8e60dca8c305a7f40442f2c7814d2cfb5d9"], [10, 3, 1, "", "755:1 756b0aea4f3c3af0d5e8d8e7d31fdc7be0f35de71a8b4003662807e1b18a3293"], [10, 3, 1, "", "485:1 da35a8c27fb763f7fae828f196d5fe7127c6d926ae1e195af54823d6077dc39c"], [10, 3, 1, "", "382:1 f4c96ff719b6ab85d5750af147dad95ffbbfd720227288e319f846a85b40f717"], [10, 3, 1, "", "105:1 c1a639c3f4222bdf4f2db2c6e0e456a73ca7e24055ac91aebfffee77b4de4c65"], [10, 3, 1, "", "361:2 d318b9c1603d58f8469630e1d0a878dccb71936893da31be9add5a23a0379a75"], [10, 3, 1, "", "404:1 be0c3dc47d1448861b92b97d2ca6df362b9b0c92cbaef439a7c405b8d6020ff3"], [10, 3, 1, "", "541:1 7faca2ed636bb3e5aa2526d9da899922af17ba01f25d079d68fb51db549657a9"], [10, 3, 1, "", "7:1 18a73c5ede1011466f9dc30afca85c785c4bb4887c829ff6872b1afd6c143785"], [10, 3, 1, "", "753:1 22c214161888086966d2d6e7347c0ce17301b6965a178a232eed8887e1413644"], [10, 3, 1, "", "433:1 842d954f726fffa8307a5964fbe4e3363cf390f4b861cdc174ef3a544d77828a"], [10, 3, 1, "", "170:2 4ec66a8e6b1a1decf06468e753299a3530da654440caae3314ac821c08e25d7e"], [10, 3, 1, "", "353:2 db312552b93777e4a304972a041cebeca360aed8de3683bb1067a7019e2096e3"], [10, 3, 1, "", "32:1 f021eae06349b6ea9213824aa74fd00cc4ef76a6397f79d473154719fb456628"], [10, 3, 1, "", "100:1 c1e454072880555b23ff579d54ab1ff448ed0575ce5fce02064b8849e2794b73"], [10, 3, 1, "", "224:1 841ffbc800b382bd4a5dd9b730e0c83e19d899a51798fe18d3bc02346567aa7d"], [10, 3, 1, "", "286:2 3afcb60e8d6ff17aabfa4ede8a56759035e07896860b66e94c83834c9d1559a5"], [10, 3, 1, "", "456:1 e5970e90ac3f28f7bd55a99b22584b62fc9bf3c723cd333b1281ea364b3aeccc"], [10, 3, 1, "", "567:1 5bbbfb9f2266ab992cb6514bff6559967d1e60663b5aef621facb0efcf1d3215"], [10, 3, 1, "", "359:2 f213e8acccbc6654f72faf9e0d5345e619d1a19024862446dd435a4dcfb4074c"], [10, 3, 1, "", "489:1 3ffd7cdaaa1084cb6d67d0fd21067e93bcc5984cb0179a655e76f3b3d7178b1c"], [10, 3, 1, "", "621:1 7dd15c086ecdcec30cc008a581b76d6c709caf5a53e6a46c566a7c2842b1cd7c"], [10, 3, 1, "", "579:1 2193c6dcec0b5edf5722d4f94d8ecb73661810ced851124fb778ade3dd5bb758"], [10, 3, 1, "", "236:1 0f0c08dd04836b63bdec523a9c3bb19ebc114e8d51c8677928bfd4ee009e9e04"], [10, 3, 1, "", "362:2 192a33fcac9c29f492628ac860f294d9e39ee0d13ee5f121858d6917f21efe0b"], [10, 3, 1, "", "623:2 c7ec2e06c4b0b3c8c5d2d9a768d5d0a8a748531f0005e82e5cded086c8e28768"], [10, 3, 1, "", "302:1 20b30d1432f65190aec266223923b9ae631f2d56697e54aa56ac8c31028db9bb"], [10, 3, 1, "", "315:2 8ee82d90dc22dd71aa9e462acc2e3dea170eb333a773e9e1c5b4418cb11387c6"], [10, 3, 1, "", "478:1 01cb3ca7cb11364fef5535a6641bf8bc2c38c87090eba0d690e2fa318a4338b3"], [10, 3, 1, "", "667:1 144fd7c64d475120fd661c0bfee35b7c617ef21486036cdc10e17e37a138cfe3"], [10, 3, 1, "", "54:1 4488811105e6db092dd26534378261299efe17701e59c3a58546b12507cfd315"], [10, 3, 1, "", "83:1 bdddfb30e577fad1394130f3067d2e99cde5023a7f95afd64ebfe0b7e0c8c8b7"], [10, 3, 1, "", "499:1 762ffab2c53668dc751866e4ef08d61bd406a9f3a0151174c7130adedce7773e"], [10, 3, 1, "", "28:2 fbd7caef299b552aba01fb8e2bb0fc2915928d2be525e52f8de2623e4a8ea622"], [10, 3, 1, "", "537:1 1bcda5a5391dd6835db7f8f68d176b8314c4d0aa46215fea02b61d0dbb7fdbc9"], [10, 3, 1, "", "375:2 c2d74ab5d24f8ff5da83452353a59d9ca7fd4127de427951e03f61b525e2ec8f"], [10, 3, 1, "", "265:1 c8dc27a3167f8ee447979f40d659a339ca0a96ff1d4b98483ebbdb18ecccb4f5"], [10, 3, 1, "", "135:2 5e42023015b05a545df618be040b844570ff70e978cf02a236bc8eeabec27ec0"], [10, 3, 1, "", "83:2 f74a0df172d19ca21744867e9d95035c122a132b547df239ef8ef3ae1dd17495"], [10, 3, 1, "", "740:1 63b3768dfc5663ef6cc4bebbff9dab2e3f9a9517deeeb7092f2aedd12f9ae18a"], [10, 3, 1, "", "552:2 5f7009c05621e878183621ab8f4a282652631c2e2d50bacb7e69762705ae39e5"], [10, 3, 1, "", "301:1 3757ea14c31cf63634ec59e653227f073e6a40b7323cdbb54ab99dc50cd80af9"], [10, 3, 1, "", "655:1 1aa437048ffba699da3bad8b9d92d96000b75d9f2654d585d93967ff2d6df826"], [10, 3, 1, "", "344:1 ff25ed4012fe194d101310bc844b57da5da5f321c52d2ba65482a0fc3bfee96a"], [10, 3, 1, "", "162:1 93b8f7f371f4936860247c97677a44b6a1f54ae3365939b211911d9a0927bd92"], [10, 3, 1, "", "142:2 3e78d4bee22a11b42c3fc3c10c507562a7fba938d26864c7ec978ab2344c17ac"], [10, 3, 1, "", "668:1 416849fc332ef48c6d4f984fd449183aabcb750d11e2b2e5466e6a95a3756055"], [10, 3, 1, "", "37:1 24bc88547d8c60e4d7b1d3aca5e18d2feaf33f78759285c14d57ae40db8a26a8"], [10, 3, 1, "", "555:2 66014b23ff01256559e0ae6d92972ea6cdf24d08a51d8eca882fc60509b5dcbc"], [10, 3, 1, "", "352:2 f770112f3ec70dcd1ee759363098630db81ec34b4a7a80ed9a53f8dab692650e"], [10, 3, 1, "", "278:1 d688a125364a2ac22431ae8cfdf110d5c8cd751b3cc4df7d678a6b994434cf18"], [10, 3, 1, "", "8:2 001adcc5cf31667dc474a6877f534f69a81f18ddcab2d86e6ed83cc8fe500082"], [10, 3, 1, "", "410:1 24d03e78b15873359093b7f11170b9c9cf70a53e2872787d6d5f4ba06a2b2c1f"], [10, 3, 1, "", "160:1 c6086a6971526f43461c5f5000f075c75858b7c4fcbd7a85e6d6508c512e211e"], [10, 3, 1, "", "679:1 5859c3075cf1df2fd347a0e0ba5681b8b26efa87f65a5eb486a7b8835742b661"], [10, 3, 1, "", "130:2 eb0e902364def6089ac3e648000dd6b34e1f89793d962b32ff085e12782d0723"], [10, 3, 1, "", "241:2 53b50ddb978cccc5c65f5d3f449deba71832a75327e0b188c8c770c11e20f24c"], [10, 3, 1, "", "558:2 6aa6c77af95fba53f06c4d1915a60c8d2a2d903acf2273c4d09b0455acaf352a"], [10, 3, 1, "", "434:2 f1016103f42eef115e6ef4d177f969a429d4575ad9c39fe8ed488030aafd2427"], [10, 3, 1, "", "563:2 06e634353c4e82d4468308ea5d723453faf370ccb23f1145542b72295fcc7d85"], [10, 3, 1, "", "231:2 db1ddaa36db2cf43c9125478d43b593c7f65cfa74d559cd15e8592365b5842d3"], [10, 3, 1, "", "128:1 5d9117dda45a4ef5e11a2ee9082a6b3c4e71cbc0d6ade008d3c14ea84d8bec69"], [10, 3, 1, "", "600:1 ed559515daaf26c73e18ad51cdf6d614e9c7ad24058260bc123b501442fe3b71"], [10, 3, 1, "", "379:1 a67cc1616a4c334e62d84935d765c7ad69a1ca07badb8fc2d9a2ba796f96918f"], [10, 3, 1, "", "161:2 16cbe15964f11f6a2159ae6277fdfa291cb2878516c19d2b3792e41f5e0ea759"], [10, 3, 1, "", "65:1 2a6e0a0b10b38bf07fc1a1c417c76c23fec81dc802e87fbadf41f6afae85b40f"], [10, 3, 1, "", "613:1 2b1dfb1c0e61d8912d1dd673de69374a8fd7d638159307aa8c29bb282171450b"], [10, 3, 1, "", "85:2 b7f319cf6594bcce54f2cbcacbd3d3d7948cce9103329f7d2b283f08f2c2e673"], [10, 3, 1, "", "644:1 98d0ef426eb51ce57244742f7fab1ff43421302eac3bacf3a6aae66d4fac0f89"], [10, 3, 1, "", "378:1 0a8df9a91ccb65805274d985e266df502f59ec953f0c3fb80738e6c0f165d951"], [10, 3, 1, "", "352:1 019608866bf67a708c1b7f5534aa4306a1e58faaffa52dab52eb45c37629e7af"], [10, 3, 1, "", "737:2 dbd8cf2b875110fb8f629b15bbd1d7c296379c578316f6553ab8d2350d8f0c3c"], [10, 3, 1, "", "311:1 1a6751720b534a1fec3990c20d85a28ec41690a7b0f4b678aebd48f3e6e6a449"], [10, 3, 1, "", "194:1 7bec00fcaf3ec0f8d237b6ad87cbc9a5cd8f6670685a281e0e56f0d84971ea97"], [10, 3, 1, "", "225:2 c24eb2fc0386b3b65f293e81f359cb57b7cb3399b2399e8f7ee535883ff24067"], [10, 3, 1, "", "610:2 72fc972cdd541fb8ca2663c3b7dd0fc0a798be06d06177e90a728ac2cf8355bf"], [10, 3, 1, "", "96:1 a5eca162961a093420be9f39da9f05c4aaf249a65ade8d2949ae9aed7074f6c6"], [10, 3, 1, "", "387:2 259e220ac8fb44b99ea0c82eb898824d62ef46777dbc0edd50ae2b6103446746"], [10, 3, 1, "", "594:1 8203df0c3becbdb918514069b8e3047f79db11d26dccc493c7752d00fb882b87"], [10, 3, 1, "", "746:1 6ffe1ec9864a7fdf10179c4f786551b508513c83be6c1cc6d42dc3bd3fa6491b"], [10, 3, 1, "", "366:1 3127db7af4f12d674c85c2c41c5b51deda11fcd1ce19ad8151c6214dc2dc4ca7"], [10, 3, 1, "", "46:1 93a89e40c548bb5a1e376f389cb160e3e81d28dcfe5b8852f52b8445e051df64"], [10, 3, 1, "", "594:2 5838d1d27013f8bca68d94a9127af38ac3f7dbb9a59a6a9c822b155eb95c3c01"], [10, 3, 1, "", "19:2 ad1871a77448f12fd5e58ed8c626ded9e8e52afa05b92616d9484411af6b061a"], [10, 3, 1, "", "189:1 93eed90fe1fa480bab6c0988d5fe9e37292cf9aaed59df8c10b83a82a370a1ff"], [10, 3, 1, "", "389:2 678832f1689006a4ed0cc51cf6bb4e0bdce65d0a1cdc4941935452093ee7a437"], [10, 3, 1, "", "319:1 948d0eadfd2265ab8a0fc5d4168997cc11faadb15b2c80b4a15e976df49e6edc"], [10, 3, 1, "", "190:1 b21f5c532bda9b088c3df990999b60c9897d53a813c2c50f6a586d94594c17f2"], [10, 3, 1, "", "464:1 b0af4ac1c1fc45ead27b4769e33d2b79b64039af33e54ceafa90d18f0a477756"], [10, 3, 1, "", "97:2 6bb0f77a7c09be460bc83d28e0665398c71b1c5eef14c1b6a1f5eccc095f0be8"], [10, 3, 1, "", "368:2 210efcb9b24d5e7117daadc1130049362f60b5b646acf22a3cdea1875f306aa5"], [10, 3, 1, "", "432:1 3e044b65b674a3ca81a47e1f3885f0bd6ecf9dea10da9f661431aa6644b528b4"], [10, 3, 1, "", "75:2 b3707fb3a022619ae8bad6938a11a28675245d4df8e298b7f28a1422b7eaa155"], [10, 3, 1, "", "212:2 f9e3f3e27f25bd67eb45f644b9fad2f82e6ce29d5b297ca444300b0a7127eb03"], [10, 3, 1, "", "73:2 8f96f9d84aa93b46b2afda2463ab482a897f48de4b4279aeb9aad60d75682efc"], [10, 3, 1, "", "522:1 5739a12aef006ce4cda2a2e1b494a76ed4903009098ede2b5f64a6bba55c2b85"], [10, 3, 1, "", "12:1 6808f99c6d1e3528894ffc4a50f26c4ff9826a8a39f1eb8a8649656dbbf99cb9"], [10, 3, 1, "", "583:1 94063dcde3de2a93780051ef91049b87fe9a40d3f4284cfb4b1f5fe3a3466f97"], [10, 3, 1, "", "198:2 749e923d0c51631d01835a509d15cc66aabaf35d93c976a8ae25a6bb17e353c9"], [10, 3, 1, "", "461:1 664dc5c79d01a330a354ea02f51bcfe3681a68e19f181e09053ecf12b1808cd9"], [10, 3, 1, "", "511:2 1ccb12b52e379076fb8c0e8221338eff10b94f7c18a4f1bdf11bb25888aa5344"], [10, 3, 1, "", "587:1 cc25aa4d57911509c879b4abb007058413889d0882ac946def3aaa8bab9ff7aa"], [10, 3, 1, "", "675:1 9eda2d81c174228b1d72bed89c9818071620c13ae46d5ae55cb5152642ece5bb"], [10, 3, 1, "", "676:1 e49eb059e7bb4cee0f4fd399cfff35171648face5051433e2aa2c8524cbf1680"], [10, 3, 1, "", "402:2 fd6bd79198d1beeb7f0e092a6bb6fe0c1a11179fe60ce2715d55bcbdfefeb38a"], [10, 3, 1, "", "145:1 9378146dace311325f80bd7f9da97358920f87f3e846baf8ce39043401b42fd1"], [10, 3, 1, "", "272:1 2323d6f17ffd54bf48e1075fbb8abc17d6d016713e50bf8ecd55376beb00c8eb"], [10, 3, 1, "", "193:1 10cf182ff530b108c79f8a6105f024ab194388b61ef12837cf0ab351bcba13ad"], [10, 3, 1, "", "688:1 078fa9c5e5d905d209b8c537c7b22c2aebe1e612159403576f63645e9f16278b"], [10, 3, 1, "", "35:1 4a34ae854eba4a45a95361791380b49e9b65392a652a33845c8ca9145a81efd0"], [10, 3, 1, "", "21:1 948f90dc2aa9b3c20a7077d80523afb82b57f643c37b11a2bef947380b2990d7"], [10, 3, 1, "", "52:2 add4bae4dea893c262fa7c8b75274c1b6bf0f47fd38a6f8b8932a19eefbffeb3"], [10, 3, 1, "", "318:2 3ecd68423df5567eff9272941c95598c21836dcf8039b520091f17f513497500"], [10, 3, 1, "", "260:1 99886b09b038dfb27460a4c8eb9ba652df2f78efdb272211650cd2efb1a63442"], [10, 3, 1, "", "548:1 6d060bc7e74c626d5e9ef880109c402c07be27a6b98aedbc2cf8bcd1512be5b6"], [10, 3, 1, "", "358:2 f85e971f7ba4065c7534869bfcc94181241b33d9984d4fe15d14eb9f0fc65983"], [10, 3, 1, "", "431:1 2f143ada7318a9b3662f0de044b16d8f44b009081e6cdebaeacb250810127bb0"], [10, 3, 1, "", "751:2 f5d3b6fbddf11fbcb02e78d7654c5526825238dcea2e4a32a27c1123c31f0c7a"], [10, 3, 1, "", "357:1 c90b93dadcdc543f0e5bcc502fea69ba1c2e22d31eb4c54e787f4f59125de84a"], [10, 3, 1, "", "339:2 ed2eed878c2f0d8ca8c2a36f113bcd633eccfb516323e09d63a0ad3dc8d42dc8"], [10, 3, 1, "", "533:1 6477c1ccfeb986ace644b6b3db6c2ae8534b4a3d6fdaeab0cc075e20c780db7d"], [10, 3, 1, "", "654:1 282d3a580517f24ff1a616e6dc74f09871ab4b9c744dab103befca5df9b7974f"], [10, 3, 1, "", "102:1 66ffc3c5fcf1629701193aae370401f974116ba4bf0de771171962934b74c104"], [10, 3, 1, "", "592:1 8cbb27f21ddb2b64287b47fc413a7545d60cdbec73f33babcfcfe63e7b8d4f1a"], [10, 3, 1, "", "164:1 c1f0f6341e425323d91fe1a69bb0a559bb1b796ae5d5cec960c20d5f296e971c"], [10, 3, 1, "", "702:1 12c30d23e49fa947d50f9367ef6d16ba1b0fa37b23b66c57df17510bdab20c31"], [10, 3, 1, "", "716:1 d98a7945c0178ac11310bf7409389f0e5c7a3d7b807856fc6891c9e53484a28d"], [10, 3, 1, "", "362:1 e417daaddf4c19c96fc2a39d850fd7a39594835ddc58d68394b8b295eb539e2c"], [10, 3, 1, "", "93:1 6aeadaab397013441a631c420b0f0554cb291b29f976219428549a505a3cc48c"], [10, 3, 1, "", "261:2 d5b0c77a7cd19a471bcd340f238b9296718a174c3a7a829f85b3e9151798656b"], [10, 3, 1, "", "350:2 d9dfff39ef919f95a19df53a63051db51a261c97c8885a84257bc4c274dad29a"], [10, 3, 1, "", "535:2 4f074824c61c9cdcdfc162ddd7058c0581bd1e622adf827935738bdc66ff343a"], [10, 3, 1, "", "750:2 da5c4a74abc8155179c4eca22cf1c4cf733370173eaed26a6d9d627196709d7c"], [10, 3, 1, "", "183:1 02153ef5dc490ca8c73e4d45ac6238b2a79c316c5d7f497dc65f0485462cad42"], [10, 3, 1, "", "404:2 379cb24f12e7d1b0cc7005800322abb89fecf29cfbb82181e83f9840c6c6ebf5"], [10, 3, 1, "", "442:2 3c8dd8cbce92e7e091520afdcecc7dabb89d306f5f446a424147e681ed3f464a"], [10, 3, 1, "", "81:1 d3ac6ae36c1f6ead0280408385cee1b2e32019f9e1258e0125607bd48f54ae66"], [10, 3, 1, "", "155:1 186be1d59895580871c6dc1bb41016600424e8a4e18c7b824f276f299825b31e"], [10, 3, 1, "", "287:2 3fe47784fcdb9463f3257d31bc2aaf57366cb2ee3ce006feb2bf74de65794d34"], [10, 3, 1, "", "203:1 8211f1e161aadc39a62f6cc679dc33b4399404b7f905d79b99f845eabf6d971b"], [10, 3, 1, "", "163:1 16374bf45141d9fbb2097bdd885ea5e7091f30932db80a58f20cfeabe4ded75a"], [10, 3, 1, "", "430:1 ca62498a89b2c5bf1776f928d2d026eb39cf43b5df3abdfb967406b6ae26ad9e"], [10, 3, 1, "", "598:2 663bc7aa3d5f4bdbcf29c776b56afcff6fa10a0d1c42bf9fc577b637a74b797f"], [10, 3, 1, "", "220:1 da42cd3e020a0d0b56ccf3c37074591a4652e9f193d2c8b6b95f3833a781b346"], [10, 3, 1, "", "94:1 d53ab1017611e7d73e98148e5d12bfb9f0581c976b2abd40acf4ad93fa684dab"], [10, 3, 1, "", "424:1 8258532fc3796ab5659874d42b0fd28c7e630105091b0e0d51e9e81b1687fb17"], [10, 3, 1, "", "730:1 fa62f79410b8f3f03ff064f7b2aeae07edd46afa17fb3e05d645ddbeb6e51469"], [10, 3, 1, "", "714:1 89b6b9416afba18aa81bd12c9a7bae03ee6252816561b861b81b0af8ceedb90c"], [10, 3, 1, "", "517:2 766e107a69011593d434341484ceb725c70e248fa535f9426fdb2bcc4980fe2e"], [10, 3, 1, "", "544:1 2c84dd8f18191eee2a6a8d33211ea59f50d82057eea605ea0978a7d4edfac0a8"], [10, 3, 1, "", "572:1 43c0eb1d09bf4b44fd390dd1402c3a5e5121edfb8a674df2e6e198a59314ec34"], [10, 3, 1, "", "138:1 5a09a243a7c3c32ff88305c901c3e1a7d0ff09116c8be54fc9ec726b97a5d270"], [10, 3, 1, "", "327:1 57e2be16df1734ac4e82269f1a4437273c5522e3ee460afde5f802dd6ee39934"], [10, 3, 1, "", "174:1 1fcefd037c849800562d836fec6ff2c3da85fd098b5fb8c46d7abd688be6e626"], [10, 3, 1, "", "287:1 f38d300b5190af9d2bf987bf58a9ff4acb9e1b5e7557b481dd1661734cc633ef"], [10, 3, 1, "", "678:1 d70e06ecdd54a9ee05e709764b36e5d3d678f857d806b816c0b8c84801361aa5"], [10, 3, 1, "", "126:1 92054d68d64f660e73b3f4decb54b4b651fd99a236d68518b3bb96f4ae582507"], [10, 3, 1, "", "540:1 b89cf8d0e1e227cb599ddfe6ea05472a0daeb7e5a95929946f50ce7a1e5fe513"], [10, 3, 1, "", "535:1 f38ab06c89f104d3e18ef3fd4d3cff621ab49a274f35660b4bc7d77712b39721"], [10, 3, 1, "", "97:1 a6797b02bf09baf68510b276fe856bf4230ead726730aeba02d646bddd2e50b8"], [10, 3, 1, "", "552:1 51bd8ecd32b9a1aff3aea5aad31fb5378fb80bc29756499f75a8ba2fca92171f"], [10, 3, 1, "", "343:1 46bc911201fcc38ab17b1ac1acc7d45f9f8095238eab0101ab21879cd051267a"], [10, 3, 1, "", "331:1 5a0e6886ed700d81e68bab59cf16ef8c53c8610eb1a7bda62606dece3e37da01"], [10, 3, 1, "", "221:1 dd2ddbe7d5c0f33b2db1c0fad93ddf27f1e0609d5201db45b67dfaaba9ad315b"], [10, 3, 1, "", "509:1 b1cd9de2d285020f5591c62a9c34e8572a7adb31a489abfb87f692f69aea89df"], [10, 3, 1, "", "367:2 959bed1499d289316aed1f8a85bd48c2afde17e6ae4bb94b6e01565665da848e"], [10, 3, 1, "", "527:1 8462be667fdcb4156499cb7cda35dbabd082a2bdbb9a6eb113c29d9eaf63058a"], [10, 3, 1, "", "418:1 921563a93251286be4f1640b3b57362f2a64d15693e4638b53cf087edb85614a"], [10, 3, 1, "", "409:1 a9435aa4761b186ce68b1325729655422181f6d1ff0eaafb6cb211b4b24b0354"], [10, 3, 1, "", "246:1 7d7eed569429fd517f1fce67b5b7a422962aa3ff39f90d59de73a32ffaa4234f"], [10, 3, 1, "", "80:2 1f0ca2a30289433f1b3b0c539f49740c80d5a4b91347322854b43a22a34d9dfe"], [10, 3, 1, "", "264:1 6b45899debb368b7d488dd6bb30d6d358d8f253903a603b63796e2365e461081"], [10, 3, 1, "", "516:2 480ec4dd84e1056808f5f52463cda70e308cba46d99949f428045c3c8cd0a218"], [10, 3, 1, "", "124:1 6b1cafc5dc71738785f475115cf1f65dcc771362024656c83b870d22790d16a5"], [10, 3, 1, "", "578:1 62980a85f7903df5b0e14a811b9522fe6e121c2fd45bf15b22e287f1a52435a8"], [10, 3, 1, "", "18:1 6bfa74716faf884aa1779362249861b00e1009170c63cedf337926564d47b803"], [10, 3, 1, "", "577:1 655a756015de86a2930f125390ef8928b2552753f5d02b06b7a17c3f2eb04f97"], [10, 3, 1, "", "712:1 ee313d7b845dad7fedf2fb56e0e18b297450b2cd48ac8a69efeea153520a5f5a"], [10, 3, 1, "", "337:1 856b3da012d02d6f197c4129e8a4ef5c2a01d3b8ac09dbd0f255e7d53e741067"], [10, 3, 1, "", "415:1 9a42dfd1225c651006e14872ee23fa315d11176760e05f6b1fbd9d8d03fbb305"], [10, 3, 1, "", "332:2 5a4d1cc0dcf4a7645526a45140c4afa6ba5569197eddf4425b0ef110f5dbc23e"], [10, 3, 1, "", "573:1 b064a306128dd1ad0ab8982a34e8f6f561c8fa287572db62090d49a1f79a5c10"], [10, 3, 1, "", "653:1 596f296cca0b51eaa8e888755d7d04130b502f20422d5a513322d6ce74806052"], [10, 3, 1, "", "187:1 63e5e30e747f9a7ee44508e6c55a2cba2b873c7ed32b690019a9f392ea878fc4"], [10, 3, 1, "", "470:2 57d71332bc8a58df16952d89e63669accbf1249be23bde5e2cf12a9b9a3132a4"], [10, 3, 1, "", "515:2 35db6df8f6c7e38dc4def42c08ef8235619d1b9b3d2959bbf93006eec59009c0"], [10, 3, 1, "", "276:1 c07802b539d4a11ab3c780e6d69949fdea05f21d55993a058e58a09db21a0e8e"], [10, 3, 1, "", "152:1 9ef72ec2d278087799cfd15845195fda66fe207e98907f8756bd7bc966c4485c"], [10, 3, 1, "", "168:2 7faaa350f801241526ccbf52964a3df8980b47b8b0ab3ea9f42d3619e28ee24a"], [10, 3, 1, "", "234:1 0b0169518dc02e79a70eecaf957c5e77a6946f1bbeb52340ee1d24312217adb2"], [10, 3, 1, "", "482:1 8e580aa369d44cbf978bb7f303aa685f9e92502ced79c2f272f4299dcbf51429"], [10, 3, 1, "", "633:1 685b7e8e3b380db2523911991f3f586f96f845a195fdc5d73d394864dc8a40b5"], [10, 3, 1, "", "224:2 8d2041606274b9333d7b1f48edfb63c1872e07246fe2433127c7af80fb6013fb"], [10, 3, 1, "", "67:2 43ebfdd1a3a5b7ded83591c051b8392c774d490fc12f8e886b48ec04777832ca"], [10, 3, 1, "", "643:1 2fc66eb388b114ec37b6e442a13f0de907102366b96000febf92572ab97b53d0"], [10, 3, 1, "", "154:1 2895a430d0cda09b5bc038198372fe120335616480e06ef39c5d2f0912c3bc54"], [10, 3, 1, "", "219:1 8ca9803fedfbd1c394698766b0fea6b8a100d5d3761f9d7081fd762569b2f10c"], [10, 3, 1, "", "175:1 5fb93529292d1b9571eba0d6c393406561ebbc3e510714fae4774d114a0b8c30"], [10, 3, 1, "", "478:2 aa9d26df950e952959e95fcadb41018d9ec36b7c6cb1c49e2d51bf57fb094c74"], [10, 3, 1, "", "276:2 1b0ef38cc98efb4a5cdbd2386ad64931d6c6620c8bce7d92d8e637b7c4f207f7"], [10, 3, 1, "", "459:1 4e92b4f1208fe3471467a760f1528e373e782c37c88e1de82e1e3ba102f163c5"], [10, 3, 1, "", "359:1 bac25c01b0dd837815451adedfe2b461365b8da57aefc2b2fd46ca9dac538b6f"], [10, 3, 1, "", "616:1 499bbb6609c83dd969e5c1c2d735637ba43d35f5af7277f5e1ec70d1bb188a08"], [10, 3, 1, "", "734:1 62eca509966b187d4122d97645ccfbd24db641add46b27e8be7c2ae576f96503"], [10, 3, 1, "", "442:1 bff24b790bd2765a0ae1d2b8cade1a40d802da6af67d3e13da1f98d467eabb4b"], [10, 3, 1, "", "80:1 a9fd5b5a052ecae709955218afa50158d72219a0abdad4fceb0946455ae41905"], [10, 3, 1, "", "704:1 a4696e694d314be23cb1c73696569d3019d536edd5cb27e6d91a22cf0b61c261"], [10, 3, 1, "", "595:1 6a0328c33efacf2e1e5c51402ecdf576f016193e10c71fd2e21248add2cfc1b1"], [10, 3, 1, "", "538:1 638efa8ac95ee61a4e7819779c00f8752e3292765447404c141af6db8331c6fb"], [10, 3, 1, "", "263:1 4304735790a85f815648c0d0d8cd5d133e2cc11591d0ffe637cd6652cba4cfdc"], [10, 3, 1, "", "10:1 ade9bc5a53b24efdeb86472abcb73c57df00dbc87e4e34d1326537fae8183f57"], [10, 3, 1, "", "191:1 b99ebf561fb2b712d6b0e5b6f8bbef36e59b5929b8f2a622a11f35506b0a09b4"], [10, 3, 1, "", "640:1 3b456b60006efdb599c098450930107e76e6f7de7732cae0e96dd51a6c4f3156"], [10, 3, 1, "", "255:1 736d554de2f9d8fce1817e9523ce08f8065b3f8b6ac72016bbf47ac44b6c1438"], [10, 3, 1, "", "23:1 baedd928a3ed072770b87d4693650150a7a444aa606c70d3234752066ec593ea"], [10, 3, 1, "", "648:1 784c3ee0f36516eafac0b2ceff3671873158cb09a282fb61b14c87e50c82ee6d"], [10, 3, 1, "", "529:1 485ef41309d2b7ee99f92112f16db795305331b0d8fc0abc7ed6582e65ac84fa"], [10, 3, 1, "", "458:1 58b1d7c2dc6797e6bbbe447b8084f4dabf2cf2b27007f794e217774d1b6331ed"], [10, 3, 1, "", "213:2 d9e8419c17a4b4649a3d0af3749b43f96720c9b317e51491a05070b63556b922"], [10, 3, 1, "", "513:2 2e781e505fb781e792fa875bdc9b585fbcae08af847fb9b07a60f1d4bae29067"], [10, 3, 1, "", "125:1 a44244ce87f36dbaa2fbbc2f4104dcae06a91a8b598b33cadab5c92c832adc85"], [10, 3, 1, "", "198:1 752a5f73dc8c26534cf6daaa8b7bcf1748a4d322c908774179f40a26734847fd"], [10, 3, 1, "", "741:1 97ce03f5d133c156c2a873b2c3bfbe141c79c5f3439eaf79749688438d96b196"], [10, 3, 1, "", "62:2 7f7579f1d3e5c8ba02d2814c1d1fc456b293985a01e5f2e2ec3b3cfc55cd4430"], [10, 3, 1, "", "270:1 f9a2cc5b725c1e023ea5fd9f3626921d41bbd0a58077d2f800c1be6cd7248afb"], [10, 3, 1, "", "711:2 9a4a36a9c339532c2866460d9fa0aeeb69de36a8d9ab11fdcb0c088e5643c3f2"], [10, 3, 1, "", "677:1 15d4c95ee790f9faf8bf61ea000ae4a165864cad1a8ee88a120cb524d75f37f6"], [10, 3, 1, "", "59:1 b5c6af660bec529b7de2438ec95aa067b92b22c3a7345a99c7931a09fc5cf924"], [10, 3, 1, "", "595:2 0e6bbb09fd173ec2bfbe6c665dbd7c8fd770e98eefd0e85f8ec09c7304ae017b"], [10, 3, 1, "", "27:1 a947e7964455ff2ff7db79ea1fc66d35c22a54700e41188ff3d4293a68c8d439"], [10, 3, 1, "", "324:1 9a1bfa79261122c06a3531b037978037761270857d040ecbe33014e2eeada22a"], [10, 3, 1, "", "348:1 715e8f904eedb87640dd89fe38e8447a7bca9b865b141b11baa1c5dfcd4f7665"], [10, 3, 1, "", "628:2 9d7dd055877382e5b2ed574d87fb5839e2119866b2d09ffc5ef7643a202a3fa3"], [10, 3, 1, "", "291:1 eabb95836b2650657826aa7377696f57bcab2d1bb7ea1e7384ad9158e7acc72c"], [10, 3, 1, "", "501:2 80a89173f9185fb97c777a95395a6b7855c9027d1d577768efd998eae5c31e12"], [10, 3, 1, "", "98:1 caf6430eeedca37fbd3183876687afb5795a116f8b57829f9296015963b8c9cd"], [10, 3, 1, "", "627:2 99e9e1c05adf9d2d4fa06e5250575dab07273dd327eaf9be139829d9c8875b68"], [10, 3, 1, "", "396:2 c7b336f6c4370f3b137a37762b3e34a45ffbdee9d31aba2dc1e8ae6ac7bd56d9"], [10, 3, 1, "", "406:1 fdb86737b8b408d5bb953cf6a525cc9139ba25501ba50b1cb45c3c6406637dd3"], [10, 3, 1, "", "269:2 4fb7af6ee092be121251a4dd89a945241ed4accd51b3de371d37f67f2305ce11"], [10, 3, 1, "", "586:2 c74aed7ba0e30c17069b8d407e81466b6ae0ca370ed263a025cf967bcb34060b"], [10, 3, 1, "", "611:1 4da591ce0c09acde63777755ad8fe0b8287c1d3267838ff368addf6254513b5d"], [10, 3, 1, "", "666:1 34f0ca66a05c537ae1ade668b63e1e7ac6dca1122c33c64c2ef18c2a7863c403"], [10, 3, 1, "", "249:1 1f4a476c4f72be9e1e093d930aa7398eb5c3fda0259dbb38265f6d175b4ed9e0"], [10, 3, 1, "", "247:1 b9c9d84e092221ab9de5d174d25907e392c35ba623e2ab0a233c4168f9e22538"], [10, 3, 1, "", "742:1 cb2b2895ac8157efff1e4477cf2a7482d64c99c9b251c0e789dc26e88cbffe0f"], [10, 3, 1, "", "215:1 e27b76500ca5beb577c67a9a3db7c4d363f4240f6e86516e9b6cd759a3fa0104"], [10, 3, 1, "", "607:1 e40fa914d13983c5ee5ca0905192bfe550ab8532579d6afaa878ed3a50d3d641"], [10, 3, 1, "", "340:1 02960af14adfa00c65955c297ca46d3e8b5c430c3db90359c94b38f96a484b01"], [10, 3, 1, "", "441:1 9b3b52ee8addfafa5290a18b0526b0e262c110c4dba134e24600185ea32cb7f2"], [10, 3, 1, "", "671:1 0abdb8e038c1bfa402d5079e31e31f4e462c1551ca20b145e493f50f1f3c7854"], [10, 3, 1, "", "241:1 5c28543992747cf3016899ab4858992b7bdff460617421566312be5778641a7c"], [10, 3, 1, "", "240:1 94f184828cfb74ad979cefe3d5cc902b382fcc51d88514c9298ed809d020ecd5"], [10, 3, 1, "", "36:2 8b8e39cf03a8e9e7cd3be103e2bd7d0876a158c6e0392b6cdf85a32caaccdcee"], [10, 3, 1, "", "227:1 7f7d5a7adec0ac5efbc2e056b4b3d91501d12bd9539da3e419c9901267f17746"], [10, 3, 1, "", "756:1 840efa27d2a573c352b1f414faa65fb09e61835af65aaac9217b2df73999c7f7"], [10, 3, 1, "", "147:2 488774d81d84bb29b04dc72dc928ca8debee7a3ea8a637d8ea58d8aa498f8723"], [10, 3, 1, "", "397:1 5adf84e026b68d65082ce2b636187b84f445f4d14c4f204eb97c1efc67da7292"], [10, 3, 1, "", "336:2 a8db40815773a479e6556f2bbb9a39e51c652c8886e643566ef6beb86126e8d5"], [10, 3, 1, "", "364:1 868c091be2035cba8a80f341c67594edd9266efa2a777912957d9946995b41c1"], [10, 3, 1, "", "525:1 6a6b792ef993655774a38b538d5fc34f98983eae1feef2ede4b558ab58dbe311"], [10, 3, 1, "", "285:2 7d8882b3c5873c79814d36415d2ca65a42e0a4a0fc909e1b36254f9f42b5972d"], [10, 3, 1, "", "513:1 219a4e50865322eff0dd151631744f39b71f645d94673379a844b2b275f73656"], [10, 3, 1, "", "440:2 a0ac128d622e13f0a3e95e294440ef1740d39770c599f08474ab7b8225290f63"], [10, 3, 1, "", "107:1 4ba4a90930f8d7c12d76e02403a8cb949a676cc2e12dda149a084b80def6fbc3"], [10, 3, 1, "", "383:2 2579b2c7058a63fb346fdc569e1de4e4ca45e63464883ce0e7ca19dfbbf8fddc"], [10, 3, 1, "", "321:1 d397cdc0022307b5f8af5c6b786f066040a4960ca38e396552063c8b054ee2b1"], [10, 3, 1, "", "256:1 d43c09b39e1107251b36161aa1bf6fc7f8cbd51920170fe4190185c45e5ae52b"], [10, 3, 1, "", "42:1 f556d4d5d4be5a144a195f8b05ec440856459d7c948ad80636ecba13520a30f1"], [10, 3, 1, "", "194:2 70f96046ca399c6fce19a8034df2065d80d5c8d0620bcc1efd0f86c58e7e4dcd"], [10, 3, 1, "", "57:1 3b217ba958e7220052f92553ebb0583eaaa74f2730e4e3e007098455a58992f4"], [10, 3, 1, "", "170:1 33403a1fd9b481039341e610a91050d2e72dac7d9d9d891990ecf886d8b49253"], [10, 3, 1, "", "377:2 6f0d5a009b0ec0da4d2f1f9b383b8ee3fbbcf2cf3953f9964f12c4acbe1fd9ab"], [10, 3, 1, "", "449:1 e488195c335e18072e4e48c855a1eed43e65910ee2a2cafd06c7217267cc9e78"], [10, 3, 1, "", "367:1 dc89c8ee67f0133c573918672984a30b6e419f17cd870468facf698d942e70db"], [10, 3, 1, "", "523:1 96f5ef7d68e99dbcdaa9d2750ebef1f16c2c53171efd2587347e60e12e9c75de"], [10, 3, 1, "", "284:2 d9bbd2bcbc1b29d6990db2751d2c8ec5554679823d90a104009527caab464c60"], [10, 3, 1, "", "178:1 7abf2651506bd0665031edef1498e14afa72ecdeb6a7b874c9a09f3c9331b1e2"], [10, 3, 1, "", "616:2 ef9f4e2d55f8fbc3c3e3b7aca8bc4fd3e1878411609ed3d7e247cbe4118bd0dd"], [10, 3, 1, "", "591:2 53b6521e56978d409f69defaad339b0bb285fe027fc46ae2a064c95770360894"], [10, 3, 1, "", "407:2 1bf032c998565a27bff84f22aec7a6a42135b79bd6dbb7d86aa3b63d4f55875d"], [10, 3, 1, "", "713:1 95231838f01caa661982881c4490bea6d03af7f28abcfeb08723b3c371d046aa"], [10, 3, 1, "", "554:1 58647c3a13d6e823b666c14587d23bbe61fdf882fe125f19e944a9ba5e3c0921"], [10, 3, 1, "", "309:1 8af3169cc4ca92e09ac9483d1b2174dee02599bc6d4350661d0ae42af0ec1c53"], [10, 3, 1, "", "733:1 348c1728b3e98cb6790a7d9f4b3b632afe4b9554200d2df15d1c6aaed7c52f68"], [10, 3, 1, "", "381:1 f167af10c01112260d52505bf663f378bc267eab3462b536907699887ec4405a"], [10, 3, 1, "", "675:2 0246218bc2fdad2c586c7abeea45f0e01af777b9ed8915378a5b40d264abcf14"], [10, 3, 1, "", "151:1 0bc4471329d6e01909401ca5df636211c8c6d69bd3ccad0b79e18b222b2fb700"], [10, 3, 1, "", "317:1 079764e5ee5fc13fca08851efe8ac52f7f0adb182cd20854e59103c980a1d34e"], [10, 3, 1, "", "95:2 62bf1edd9513dceb6b09f59764b6bfe6010d27cbbdde85acb8372d671edd737b"], [10, 3, 1, "", "373:1 a7cb91ca6f93aae65ca2a5a647bf9f2755ba0df9ae7f08dbbce5f76eeb8d0547"], [10, 3, 1, "", "659:1 fd7a0c032dc675eac522e0d301dfac0dd616324af7fad3e01a24b4c628b5ea6d"], [10, 3, 1, "", "412:2 450213c07476598d14fec31d50c4646cefb111066845f4f27074940461b76ee6"], [10, 3, 1, "", "599:2 41eb9351de7f3900935c86f7a49c2daee9b8803c662daa2cd9be171d0bc8d389"], [10, 3, 1, "", "91:2 d8cf8031f26386674c6e8273c8ea271f27f1889e7c859f78134c921bfbccb00a"], [10, 3, 1, "", "182:1 65ab24e3cd1d32e6f0df7050e8eb6474391a353230f445eceaa10659e7c0c16d"], [10, 3, 1, "", "376:1 704a24c6ebae8708a1dd061e2ea7740d73f09386f706369679faf81564964823"], [10, 3, 1, "", "752:1 c8664735abb74e6a486190548311df13dcb3a26d2306c0443cb988f0d5b96e91"], [10, 3, 1, "", "2:1 1a4c99c0680d2f8364d1e4f3c98050fac1c55af56f6adec3c02a4c03d0f0ba0b"], [10, 3, 1, "", "137:1 a75de229346221acb196751f39b11f287bc57d55d01b3fdc6af25f50007a9628"], [10, 3, 1, "", "583:2 d0afb05c1db5d98d77429c56828d4ae519fd86b93587699fe3b7c6ee83a19fc9"], [10, 3, 1, "", "289:1 d4e4d9f65baa42240dca1ac122c722615e701eb37a7ba059f97285657653814b"], [10, 3, 1, "", "604:1 cee506307ae87c6c97d197d79ee149cf7939c0ce62ec674e1b827c7fba7ef5f7"], [10, 3, 1, "", "694:1 45a374a6fe44141b872001767db4be400065b995ab6d0c882b20cba7b56408dd"], [10, 3, 1, "", "52:1 4eb0d7164f84edf2ee6720771e61fde345943bc20d627bb59195f659862041a0"], [10, 3, 1, "", "599:1 3a3cdd962ac9019c3d9290553f854ee7a721954dc2c9f0b7c2445f5835f9d7b6"], [10, 3, 1, "", "283:1 09e703a738c07f027618ed4019b3f7d984f99988680a17ebe8393314b3e649a2"], [10, 3, 1, "", "130:1 e2c1d60946ca8b4e458c33951b8ec06592d68b989f7cc700231d8b1760619fb6"], [10, 3, 1, "", "468:2 6d3bdfc17d5eb10e2aaf1deca72aa28759c278e9ca6ce02a04c08a1e3f51249b"], [10, 3, 1, "", "45:1 7bcc5dac3606f39e26a6e2f2101318e15fd128e8a726e5d05bcb6132d7d4085a"], [10, 3, 1, "", "470:1 b6cdf53116b6fe6c3b499f893a2d2cadff50728b57b75f936070a44e7f417cb9"], [10, 3, 1, "", "402:1 1c3440394d2d7311b5eb02ec970c0499c201a23ac3d04b14c5b0f8523e7d9a16"], [10, 3, 1, "", "692:1 1823d4b590e3d0914a15950d1b7cc9de45f2d3a17cb7a6046ea3bdcb86e0d416"], [10, 3, 1, "", "664:1 b311d346bfd4e086b5c17c8f16534ff967414f9627ca9530ca3b8be758b5c18f"], [10, 3, 1, "", "156:1 c6f81f63302508941a457a3549f6715449e0e3264bd13bb8fb58f97b42332877"], [10, 3, 1, "", "452:1 5b159023d4dab86c8289c2b619e307e02ab8241d90be7f51971a9f21cadc2c4c"], [10, 3, 1, "", "51:1 612300be50d7624e3df044091fba207dee10c8c20ee72a242a4ac82aef426009"], [10, 3, 1, "", "257:1 42163bde4b1383459b09aad7d92ab4b9cfdc32353f695d8536cdb59f1c5fbd95"], [10, 3, 1, "", "561:2 4302896518e1234a4d83fc5af30e01946c70fe4bdadb33c0cbf0a1782495c402"], [10, 3, 1, "", "584:1 d93daef004fcb997f097936352dc3432de5d77d9c342ac541f4ad2e997583c00"], [10, 3, 1, "", "121:2 6b2c09e50d6abdae1ee13d1cda690ef224a011f1bdae20718ff536f78b204628"], [10, 3, 1, "", "299:1 d5f1edf241d4ca54d5fa53cf9364cd88c384d455d007bae17959ec840068fae1"], [10, 3, 1, "", "408:2 0ac711730f51c5dccb2d3a7fe7d614350d35c590533c06ad13ad546006c88743"], [10, 3, 1, "", "674:1 e786169392329eab70eb20b191e49053427501e8e0e70866639dc3e79db0c56c"], [10, 3, 1, "", "181:1 502eedcf0dab84b64b658d062626caf3ce8ca7151ac593ca3f3d7bde795a8927"], [10, 3, 1, "", "630:1 70a03b9f20247a6880d94fa4005147b36b8c517499d097dead1837f3565e98bb"], [10, 3, 1, "", "440:1 eecb4e52cf7b3ab51b61495e24474910c75a36ad7c66ea286d9902066f0cc09c"], [10, 3, 1, "", "2:2 7b53a3a4aae9412baf48e0885aa364924a25cdff9462cf2f6ecad59329b8dea4"], [10, 3, 1, "", "618:2 894983d0de7b7b5f61df2bb3e077ff4e8053de20a9196b0127ff8a5d8525947d"], [10, 3, 1, "", "258:1 5b6191b963653acc841076abc0a1fd34cdade133df03de39957369c3870dd8cc"], [10, 3, 1, "", "392:2 1528d1e814d6bc91e61ed50948f2dd996d4c3491993fa9a3fb7ec5c346e29039"], [10, 3, 1, "", "559:1 baf40f26f57e39f146a5a265c0e0698c69e1a4dfb5a690eb111cadeca9182193"], [10, 3, 1, "", "750:1 6d38cff29cf6450cf1cffc0e99547671e44776d60ab8fb23632eb0c86d9b7c16"], [10, 3, 1, "", "749:2 0ccad5782e285aaebbab4f525da60719e6fc70b16ce843c8ae0c7cfba3628186"], [10, 3, 1, "", "61:1 0f7f1f591ef8ff958c2d1d0a31b515fc693de7f164c05712025cee52d70f300b"], [10, 3, 1, "", "117:2 1234e2fd24abe2af54a4b534e37991a4220070b53d155fe2cb9edcaf10bad1af"], [10, 3, 1, "", "251:1 02272347c92241787fa221d25fb77f64ca8e63fcc9e396e71d21b095aba543aa"], [10, 3, 1, "", "574:1 97f1da09fe3c06af19fe739ee76620d5c899e250ac1819b46caef48d4b5886dc"], [10, 3, 1, "", "253:1 ce5e0aadc741fd4469dd97c72c8671fd422861937d4991d94ad6e239657ef0ba"], [10, 3, 1, "", "271:1 165fb35c44653ba49d2f2e4415721ff5f0d8d9f1776cf1ae51129072236dd04d"], [10, 3, 1, "", "297:1 55e650e07e084e428755cc808409cde0621c2f13b1b9b6244598fc530f98469c"], [10, 3, 1, "", "186:2 d62bee51822d6f6d406acba429af002d1ab08fea7725cfd70344b9d81417898b"], [10, 3, 1, "", "691:1 40acfb2f28be18517ba1ea79549d8e40910b2ea677f9c450972bfecd9172d431"], [10, 3, 1, "", "603:1 81316bc3aa0e961ab93639afa23e97601ac170e7a35d11925a3b31d77befe702"], [10, 3, 1, "", "154:2 0086a77e0d850ef108a2f797e78c9cda969d52801db1d04f746169fe78c7631f"], [10, 3, 1, "", "25:1 e4c1e035990bf252242bb5c2497017bc152f164d9822a601ab6a3c79cf752c10"], [10, 3, 1, "", "428:1 85809fee723d88b984def31efa7cb2e0c5c3a90be00833301b513cb2edec06f1"], [10, 3, 1, "", "670:1 668679a339b1d390d2879dd09057dfb653483310820e25cb85f36ecb257a07f2"], [10, 3, 1, "", "388:1 375ed9bbc80384727ed62542640c3a8a6499495162452b9892ce706ee78cc54b"], [10, 3, 1, "", "305:1 f4e275119979fb25fc84cffb4199c7ecfd723065b02a9f214b0aa7585b98d22d"], [10, 3, 1, "", "753:2 9e4436f4af053abade784bdc5407280c2db6d9d43149e859f59026c0ddc988b1"], [10, 3, 1, "", "90:1 42e76b431027d1807d6c6665c7625b3463e086e4655dfb265d24b3a824042a92"], [10, 3, 1, "", "571:1 ae949c626ca1c4fd182bff3bb2c6ae602b1f889bb8abd2bb65ac94a93fbd0ca3"], [10, 3, 1, "", "315:1 f721553a0969ab49b8c54cf4ef0879743c6e265719fa649537c957efde963c2b"], [10, 3, 1, "", "528:1 c1a06d552969025bc8b900d0a656b86d782d3f7ae86dca4f52cf24e217e7bd0b"], [10, 3, 1, "", "660:2 df4b75afd3344d180661255ac0da48f1f23d5456d1502eb6862a2cbc3ec193c2"], [10, 3, 1, "", "339:1 355d9a90f0ae62d9dc30cafd8fccdc0d2dfe9b7168f2ff7a949d9db4d6ad2f8e"], [10, 3, 1, "", "697:2 5ae2fa57a1d70cb388a595ffd273105b1f4b7238f8d8e113d7dbaa9647711ff0"], [10, 3, 1, "", "437:1 68304a639bfdfd591b6d81a54cd99f8de662950f4f4be443a95f6648d927c048"], [10, 3, 1, "", "589:2 bb15646d2549f90d49c9e314257914d48648266de0cd37b86c780956b6b9a5a8"], [10, 3, 1, "", "195:1 e6e316bcba9763e25bd0a189d7b5ee58922732e7f4ac872dd8a26f7f0f794b99"], [10, 3, 1, "", "179:1 e9460db73120721fb8857496d2f76aee1a9e80ef6a34e38fb92f39de28a8fd6f"], [10, 3, 1, "", "454:2 3294d2b103a3d6c471fbd3921fa513d8eb379d8189961373b2f2773a6818101b"], [10, 3, 1, "", "20:1 cbf72638ec53eebe2fbf63987178814dabf15f620b19d3e6eefe5a0c82081c19"], [10, 3, 1, "", "575:1 e4628e0ecb8154611e063fbf77429b26c4b76b452ef3dfae6b82bf14284efeaf"], [10, 3, 1, "", "672:2 7ce8f63fe99b83be7ea5fbe8ba19ddd3e9485e4c4b41bad48e9f3c6af28a6389"], [10, 3, 1, "", "471:1 db556c432e1317040a86149c85fc9c6920bd21bd6f1c60a939ba38ec8fb67808"], [10, 3, 1, "", "355:1 5c8bda1ec817bd7962602b024a091606f310ea921652978fb6463257f1ec215b"], [10, 3, 1, "", "723:1 74b2e572b55ba25145f4e1157dcf2f47ae453ee8fc5a32e33d091efb9fb7c3ff"], [10, 3, 1, "", "411:2 916422661cb3cde0942b5fbf703a46b5b4a8583f77cb9536e6f57041e07f9ea8"], [10, 3, 1, "", "3:1 0c7a14fdad22f794abe3d6c82d31e3458e73f437529de5043b115cb3b98d67bf"], [10, 3, 1, "", "208:1 4b26446aa4ddc724ece7673be491c07bb3f91af46494f4de107c45d09072cbf7"], [10, 3, 1, "", "146:1 cd65d5af7c19e83d72c624dbe007ff053c9bb3c4c6ac16ddd853ee06b55a6ec1"], [10, 3, 1, "", "545:1 19a19b549736a26c09bba9e2ea08ec8151747b579d265815a83a7ff58665e069"], [10, 3, 1, "", "157:1 be67838f13fbac1eefc831094a6b299226ba9fd64c19f5e040e8535f199d01ff"], [10, 3, 1, "", "394:2 679e8c14ea44a25ea1390ac52aa92d476ce6721743dcffed0cc3012c0331aa2a"], [10, 3, 1, "", "526:1 898a3d49045e565e6964e04785f03b13d8e6f8c9457ea99c15e9d27695599924"], [10, 3, 1, "", "349:1 3523a7af0986053d255330594a2f29a78f9497870cecaab9a8cea16496d96e8c"], [10, 3, 1, "", "242:2 c566b79870e5f9c505e4fd3f3e6a197a511a54cd4ea1e637c8a2b86501c196fd"], [10, 3, 1, "", "405:1 89d9e2d880232a14ed1f317db88294b96b5a0537f7d28459f7425db365393ea3"], [10, 3, 1, "", "738:1 184adfe8b40e498c10b13994671a6aec10a3d60c8dd0d7d49611462cbe965adc"], [10, 3, 1, "", "508:2 164dd2b4005aa309d79414f7014d667000179fdb7bc452b1d8158b0e70a71257"], [10, 3, 1, "", "554:2 c9108185fcea141156210b6a9b36948c33cb965852ca382bb29ac5a16dc1aaaa"], [10, 3, 1, "", "6:1 5d8d38118bd288415e8b133834f31a7e01007305fd1d694f920eb2d295dc23d9"], [10, 3, 1, "", "725:1 2a6f7b357bcf9e02e01322e292bf9a49fff98398285fdbbeaaf079ddc5082bd2"], [10, 3, 1, "", "44:1 fbf860398c6c240db67097749c221d03dbc3fb53ece13acaf39964aca10bef88"], [10, 3, 1, "", "652:1 ec20dc3fcc961ba79d6cec949a10bbcfde569965da5bdc16a2b164c79ee837a1"], [10, 3, 1, "", "519:1 2d1584aa9f4b58f2bbf727cf53a2f81da74885f3c6e6309608330b803492e1ac"], [10, 3, 1, "", "3:2 62464e5a05d93ce71aa0049bfa2a6d7d28fb94c0ac7adacff3e43aa98d7c7c85"], [10, 3, 1, "", "597:2 5b502c001262606fa8ac93e1c3392515c078da867283a167bbc15c62e95772d3"], [10, 3, 1, "", "298:1 7931b6e7d5c377792ef15fb79300f3388497e3e8c7810dec637e9dc255e9f6f8"], [10, 3, 1, "", "539:1 3c637f1b6f7ece643d7ec221e0f5cdd251d4223ce8a9ac7c814ad6667f224a4f"], [10, 3, 1, "", "39:1 7a705d6944a599804ae13d66da246684147608fee365fb58f0e9a2a3337383c8"], [10, 3, 1, "", "259:1 1d87c3d541744e3bedee83a148d3bdf7387c56a2cd0e9b9b69c5a30d1948e2f8"], [10, 3, 1, "", "243:1 6d6ae7e0c3e4854ba3379d1ae1c611d3834bea80fca0669e9d3800e7c7907b3d"], [10, 3, 1, "", "534:2 5efa93ce6fa26af80a51874f947567d0c94e1a9b3b795bcdd8bd8cdf81ae3b89"], [10, 3, 1, "", "360:2 6d7a076a55bdd8ac68be5a920eda7194f10c734494255b821299801972ca83c5"], [10, 3, 1, "", "413:1 03420fc54c8739e1ac8749d267fbcb79d9eda94bbb781e1d089793c71d3294d8"], [10, 3, 1, "", "482:2 784a5470baa9495f0dde79075042c965584cca9cd7ca07b06691ba8bd12189ff"], [10, 3, 1, "", "286:1 2ab916551e93157504f23ce892fb54b04f2190e8453446577de8eff8c82c4e4e"], [10, 3, 1, "", "551:2 9e18bbf61220b891a2ce72f5d65c260cac55c58d7298ef16136dc545968bf4ff"], [10, 3, 1, "", "356:2 e77b87d03aeac8d98784ce59d65a0a9efe3ca87f6c01151769ff37212bec70d2"], [10, 3, 1, "", "670:2 173ce8cdfc9a32ca31bd38a2ea635ca03be34fb62a27d0a865033c3601be7635"], [10, 3, 1, "", "588:2 d651e6b4bb0714f78c0e76aea91063256ba3c136f075402fdf7f2d7789b5a9f7"], [10, 3, 1, "", "757:1 07a868b57298e2097a28d0a21ead2ad8e657cd8516eaa4d2a7ae0153d379a8ac"], [10, 3, 1, "", "133:1 9e065928905270e01fcaaa30e3a6c88ff1241e4cea764cfd1b8934756d94bb57"], [10, 3, 1, "", "560:2 75bcf7113bcf87575386bd9c1c9697f83ffac54cba4c3988635eff773dca4b23"], [10, 3, 1, "", "542:1 6e0b017053092fcc9c857471fbd863071395338216ef63c571bf908fa882f7dc"], [10, 3, 1, "", "636:1 bc8f8423550c9b123c66e2616f181f7081064c9b0b9bf66723ba1c2f86a4dadc"], [10, 3, 1, "", "526:2 9bb187eb53901cfc7937e93f424a8c50f7118a2937f97fced3f15eae9ccf023c"], [10, 3, 1, "", "503:2 92f4eb79244b35e40cddee777f6124671d6eb4bca1a68ed7da572b4d8e40097c"], [10, 3, 1, "", "390:1 0b3bb3f9c48f8562e8e846e238c36cfe6348afa31e7357d946f48349d72bd333"], [10, 3, 1, "", "48:1 2dd873b22566e1e9b600b781d5bbe5f50b98110a1bbc0eb8834862063f485d5c"], [10, 3, 1, "", "511:1 95ef402aee1af3ef126119eb65cb1602d2c58fab6a92773acdbf1db4f1114a91"], [10, 3, 1, "", "615:1 f5fbe6a9bb603d31026edef3b582db98a582bbc4d02a95bde3c75f506873dbae"], [10, 3, 1, "", "685:1 8355a6f37c4708ef914397a364e6a89857c563d05d75c36eb33fe65bbd6efa18"], [10, 3, 1, "", "336:1 d59996c21a6b1b5112ce017fdfc9d5690f3204d3f0874354f72c68c7df9e9a2b"], [10, 3, 1, "", "469:2 01459e907ed36dc21136455589510a8834aaacd220af233184f91da6bc2b1ab6"], [10, 3, 1, "", "235:1 53ed5d1d50fa3ef7c3d572b29e8289f4bdd8d6fcd84c919bac40b59de11882b9"], [10, 3, 1, "", "90:2 ba6e3d26fb7d74e7c8eb6c247800ddec5e35f0e95207578067f3cf6b09e6c577"], [10, 3, 1, "", "651:2 de677497269bbc746364f40ff86042e595e9ae307d7586eed4e455d97d6eb5b6"], [10, 3, 1, "", "503:1 20de034c8eab811505357b0dc243ec4615b17f69608335a6fa8380b6508c46fa"], [10, 3, 1, "", "148:2 2bdf07bea49bd05bd607a74bc9fcb8983e93b7daaa7e64aaf542d39bc74f792c"], [10, 3, 1, "", "635:1 c047603bf44cc875913881293d83e517c2a1e49d6a85801443f91559915be20e"], [10, 3, 1, "", "532:1 63ef0536d990e6e988c965c82abb6c2c6fca7dc35dddfca134a420c077a7c641"], [10, 3, 1, "", "325:2 e370142d7a0213e6db347cfda0d76f66147054769f71d2b5d115f94fa99bfab9"], [10, 3, 1, "", "439:1 f884e5377134b816bbcaf560a3791eabd70bfca4564ec99846697d6ae27c160e"], [10, 3, 1, "", "747:1 df2d054a45f11386315fe7ad021e1e9f588e98e0956ee0cde1d2a0b953ae5f64"], [10, 3, 1, "", "296:1 6d9af47108fcc60a5eb729ad404869e136420f19457d688764b06a4d08452fe3"], [10, 3, 1, "", "391:1 681d740563cb210f2642178f143d49fe459b75bf5bbde9703c8a51d9a0c7818f"], [10, 3, 1, "", "207:1 d3e50dd09d36f4dde21049ee5930d4f5c620bf5ed6f7aa36019d589fd1874202"], [10, 3, 1, "", "530:1 dbff69e7368ac026c9a894281f0286a34e1bbfe7054992f92336e6e7110b0f47"], [10, 3, 1, "", "144:1 b43b34e1180fc29f770212acc9767de1da68ffa61c1578ce311375d3f6489d19"], [10, 3, 1, "", "143:2 eb4bb618f0016cc5b19d57844f38d56c3c5bb2bc6cd6338c2d271ff6764c3ea6"], [10, 3, 1, "", "58:1 86e4b704680b4c5747c5677a0e4039c157356515d6fbcbc98d9e56a669ef4d9b"], [10, 3, 1, "", "569:1 1e4c8312d7803299a919834a8a36b4fd7b380ef2d293b9e47095dc6a56d579cc"], [10, 3, 1, "", "389:1 0fdd64f47fbe768d0c93eb3d2a86d45d529f63697f9b05cde079a9deb78dd489"], [10, 3, 1, "", "602:1 74345bd3146c994153f6b1cb926cb714626d393b5581ff4b33d3ce7b9ff17f14"], [10, 3, 1, "", "609:1 4f9cb27c73df439ebc13f181db03ab1ef49b92543fd366e9b4527c8444c796ff"], [10, 3, 1, "", "353:1 e6de39fb2b449bfe1a09d03e37c1bbed4ef0e69c85cf7ee3ef6ecda8510719df"], [10, 3, 1, "", "26:1 8da43ed54f5652f1659e9cd11bf0893e5f663edf982f874a4d44bb967c9fd5ce"], [10, 3, 1, "", "142:1 ba87aafbdd29f7313abf19300674182817eefd5bbc2b13943b637bcf80c0e9df"], [10, 3, 1, "", "288:1 632ab475d4dae7cb9da62ac903b67ec38a3878fc8424a8be5deba55d3113fc88"], [10, 3, 1, "", "123:1 3155c78aa724abae9cefe1c44d0b357fa998cc179764d0d2e38ef60c3bb241f8"], [10, 3, 1, "", "115:2 d5e9c3e46f5c8c9d847c63ffce83f59e8b43af18073de98af9ffc8bb6b062b73"], [10, 3, 1, "", "350:1 a6b541ed2c07361b541739304039f4561021674dfff1539f058e1c63ee80e605"], [10, 3, 1, "", "447:2 260dcf75a99a860cf36d67f61f6fd66084142ea2921dfc3dca5226a866538e90"], [10, 3, 1, "", "173:1 9beb47bf4c01551ee36f57494afd73d838a93770858eb6901252693a2659b24e"], [10, 3, 1, "", "308:1 68c60a5e7a429d7604becc9f0194dc4c69e00ef8a7ca92adbb98b5b2bbb9fb40"], [10, 3, 1, "", "131:1 ad2c2f6362f886a3c2c2f8e11ef95198869e70137f4e7b3e5a6a1f01850b2bd5"], [10, 3, 1, "", "490:1 96c20de400ea70bdb3228b14ef5ec41d889f849a69602c4a1021d8830d57bf78"], [10, 3, 1, "", "507:1 15f27da45a82ebba9574e7cd6903eb4472e29bcc47448d968cebd248b967b296"], [10, 3, 1, "", "319:2 a4633defee2e82a6b30d88c4e5b662b393be8803ac0ab49c9910e963897753cc"], [10, 3, 1, "", "385:1 4aabe5beb311cfda296103222da94d79db59491151385c674bb5ab3a2fa1dc4f"], [10, 3, 1, "", "467:1 4a80bb4c8a45cec8ec08f6c2c73fcef85fe05514030a1fed86d97931b34a2577"], [10, 3, 1, "", "736:1 8704968fe1a6ddc742ec36e2e481c45216a7909a8aeb6bf44699babe6e975375"], [10, 3, 1, "", "517:1 8d9f9daa117d57cfc454b52c7645b1932187974fa5105876b1bcfc45233a7a04"], [10, 3, 1, "", "414:1 bb9da22604de97e5ed37317c56ab5dc8af805c12405f5c43d177be3fe395694b"], [10, 3, 1, "", "171:1 705ecb8bc002be23873f9f438307c194bfd9d16bcea104ee17ba8b15285dcad2"], [10, 3, 1, "", "246:2 7ccbe9f141a91aba24cedf20dd1ffc8e228367397abdb36abfcfd52e10540df9"], [10, 3, 1, "", "307:1 0ebcccfd65ef3792b7782b5d1741c3338ea87200f1154be26a083159e34bebe3"], [10, 3, 1, "", "451:2 5a891041ccdf5973d7e8b29a2c39bd2e4548c3e2bae4d34a74444910f0a4b1fc"], [10, 3, 1, "", "592:2 522cd3367900250f16a09046a753e7597cefb524d678b096a89b68284f8632fc"], [10, 3, 1, "", "557:2 be25a92306a95fb645151169bd085704fcb7b17e852e53e4007b41069266f593"], [10, 3, 1, "", "254:2 ec1dd5600e88fe2e8da61bbdd55de9991ca751293cb9704bc7025dfd1c8ccd0f"], [10, 3, 1, "", "330:1 02a40fdeafaf06436a304f06c05896ccb1c222494fe4423936366485fb3a66ee"], [10, 3, 1, "", "641:2 e3b89b8eb10906f6c083c59009b877a69d78ed35f41df00699d64ff89e58575e"], [10, 3, 1, "", "686:1 6c9e5a399a4171a1a046c7e23d90ed0926e546fb56c7213a8c1887b7d6df9cce"], [10, 3, 1, "", "443:1 5d7a6f16e2b83cea6ed807ef284ed37bcfea409044ff12538cca881f34d4313c"], [10, 3, 1, "", "608:2 30c54e18001cdbbee17cb43a2fc96bffb21bbc3e3116c2db33a6725722b7718c"], [10, 3, 1, "", "726:1 8211b7ec4e7b1ddab1f82d716901904b54c2ad8c374f8c49050fa326358bc850"], [10, 3, 1, "", "196:2 0903984600db389923d90e27798c6da2a530c199827ddb5d154fd8f74fd68f13"], [10, 3, 1, "", "312:1 fedd0b77215d7f09e6f862a46948e20669c8df60afc1b1688fc0181106f5a843"], [10, 3, 1, "", "157:2 c02bd58eae112bc9bff6510a22c21e19c3729a15b3934f367249ad44fbb99bc8"], [10, 3, 1, "", "703:1 9ce1bb7a4916b9c625b7d55b6c7046df5cd3fbdf12bd025f221c1e3bf93b5c91"], [10, 3, 1, "", "363:2 e5473d76bf043db4a3c082459c11d02c33396cca659d40de3861141ee364c4ca"], [10, 3, 1, "", "77:1 11967d57719ae3359330b1e50a21597d2131f06c8d2abd365bb5bddc4f4a80c6"], [10, 3, 1, "", "466:1 40f81f5362eaceabd4c5ece13ebbe6faddf0742fdafffab10aced035f75d8123"], [10, 3, 1, "", "141:1 260c4ba6dfb95a5fbab1aeee8e6959d854d78b9287cd80bebc8cda34eb491a91"], [10, 3, 1, "", "456:2 dafb38d0ea0502fbf8f6957a4d3573a5327aa4ce18ecf4ad2d2b1da226bce867"], [10, 3, 1, "", "129:1 0cac94c6245e4dff6dd1a8c297bc3abff2e383199dc6c185aaeff8d5fdff13d4"], [10, 3, 1, "", "274:1 c6ad5b5bccc30ef2ad2f4c5406ba7447c10b1909de1ec7cd91cd60348c1f22a0"], [10, 3, 1, "", "244:1 fc1ac2f069e50f7e6fdfc8902bdef8cd1c57bdfcbb98d2e23c6286b99d7d1286"], [10, 3, 1, "", "649:1 79825c17c00b2a445bea3ba1a547d7682c3d49ae5619d0fc26f1b35bb4322ad6"], [10, 3, 1, "", "473:1 86752000cac91f0bc66b07155482b32060922da2c0ae500a80ba4ae2608a293d"], [10, 3, 1, "", "19:1 09f7033a48d34f5b5cc2da4e0c146ffb6c35a005e6021da914d59bc4b6e09a44"], [10, 3, 1, "", "4:1 7d8b5622cb41f4a6e44f0899a7311a7489321b6a81baf543af5a16698140a66f"], [10, 3, 1, "", "497:1 5f7ef6ceefe0a2bc9cc1418aa641b3485795be777e2a19ff89b861fae1ec7dec"], [10, 3, 1, "", "547:1 ec04e36ab9824fb53b64b8edefbd7fb405382282c56f9a59a77309231e7deed6"], [10, 3, 1, "", "316:1 0d2ead638e9a356f80ccce02f5612506d193796af22e16f0b4678f91ea1ad7d5"], [10, 3, 1, "", "368:1 68ab2e5937cbcba9b21d39854f8c47f6fb5dec954ac362f6c993c017d249b3f8"], [10, 3, 1, "", "300:2 0a52cd080aff1f1cd7ad1ad9177f02cb8d5f36e5ce5fe32f10a3cad1404decbe"], [10, 3, 1, "", "514:2 83268d286f3d6acc84da091dc883acf03f39618fd85783166f330582ff4c3d97"], [10, 3, 1, "", "294:1 b35e434e8ad237e41c3d28687aa83b4f6d4999def9625eeaaf8e2e3df29fb85f"], [10, 3, 1, "", "223:1 c532a8cff3f354481be5493a79ea298042fd71117d52179e4777df728c892ca1"], [10, 3, 1, "", "683:1 9bf978f0ebc438873d30e0f3e45f7435e96d3f59593761c0313c7370b48e86fd"], [10, 3, 1, "", "737:1 ed8550645e0953e23063dcc53dd744bb1aedb661c1d8fce0f15ca60a006767c9"], [10, 3, 1, "", "206:1 294e872304d6ca6fc60216fdbecd1805e6bfde3b8462f0688248a438102857a5"], [10, 3, 1, "", "483:1 7d6bd706a1c1bf24ed3406adce2a884cee94c370b4f45a0babd5c0ac8ecf007a"], [10, 3, 1, "", "372:1 68872db762949905628da3b62b41765588b20a8c247469ee48f5f27237212d70"], [10, 3, 1, "", "718:1 cba5a3f3c0fdc57f0cac81e99b8a88a9d74174bbcc415aeac31ea80667080807"], [10, 3, 1, "", "396:1 b68a6a518e546a1963b516db1a1fecce0b536851b28b2d2571c3b98a2beae5cd"], [10, 3, 1, "", "754:1 a5cc9bf83bb2bf35b55e2e2dd6ef1bc056b0e37555c867b21198befa67e81739"], [10, 3, 1, "", "401:1 45c179df701122702d38c7dadf12bc1583f322da9efa0efa5a60b26e0eea53dc"], [10, 3, 1, "", "212:1 4d7e267ad0d149dd29f48c7af04eb52c0294fff217086d1d78da516872d89ac9"], [10, 3, 1, "", "412:1 f2d8f7f0bd7a74a1290c110cd157273e5948f198d45253dd0b77f3305cd55271"], [10, 3, 1, "", "433:2 04ce26c3e1f3f563dd2836f16c28520abf5b16297c6e52ca191c8dd8ce1f8a06"], [10, 3, 1, "", "697:1 20a85f5dbb0b1b440060fdd9497082cee68731cdb924a53268da4daf9a6b7ad0"], [10, 3, 1, "", "689:1 240fd707d03c5f4225010e82cf65427143275020027f099e7dd590de0f95fb17"], [10, 3, 1, "", "331:2 98c982e326cde818653fa94a3865ef6a4380c84f982eecfb02380b93598a06d1"], [10, 3, 1, "", "516:1 3861615e76a6cf8e957846bed849dc0dc834b7b93c7d0fc784cecc1e4edf1c24"], [10, 3, 1, "", "77:2 447497fb19a7fb5699ce018e98d778de4cea07f55e138d55b88d976a82c9cd2a"], [10, 3, 1, "", "562:2 23039eb519551746748ccee9a37c161f4bc24f50c44c29205b9dd542e9e9d0b2"], [10, 3, 1, "", "91:1 c6bafc6da22a49c513d9f38b33df3b3efb2fec5e034e2fb313105eb2e2260d1e"], [10, 3, 1, "", "292:1 36f5a2a7cb7c8f028e1e1bf034b09a8e7613d5a3b8ea49e2ae61843eccabd85c"], [10, 3, 1, "", "477:1 4c13f0f177b0c01dc9d8e8eba86e8c9bcaef9ef206732b0eb5ee534c5245881a"], [10, 3, 1, "", "66:1 dfa9a4832da8dbcda1d62d4f78ec536ce8e9cd4e08740202c44d1ecf236242a4"], [10, 3, 1, "", "647:1 a2cc0e70e5f53eb45a8001d5b35586e4e8be6bb6381338d296d1dca3622651c1"], [10, 3, 1, "", "356:1 06d233ac60cd2a61ef4652837408ac6975b56a5c347fa619efdd1c6f2c351e1d"], [10, 3, 1, "", "421:1 8e5d90dce9637632da4203a8b7dca0688125de45b002932400b89c3610743005"], [10, 3, 1, "", "153:1 2a845f99dabf8472b5ed8f35a1b43cdf5d54ccf32f81d0fbf75fe2066af2c37b"], [10, 3, 1, "", "666:2 1f33d04d14f1689b6934399e869ab681345727930a1ebf333573e8631fcd8583"], [10, 3, 1, "", "229:2 50cc6b77eb8387eed43d394c94eca8f977f1c8f31f1511a854efa76754d6fc9b"], [10, 3, 1, "", "476:1 1ddef01b5324d3e5830ddefd71a57e050d7d2c7fd523a22bcfb03250c2a6415f"], [10, 3, 1, "", "74:2 625ab366bc5f209c5e1bee34480e5d481d8455c213fc132f4ee2fa72e852ee45"], [10, 3, 1, "", "590:1 b484a6cf97b587756eaf17f0b00c2bff3580bcbbc871e9da7c57f800377018f3"], [10, 3, 1, "", "508:1 4178b860a181c00a30681b5b6f159149eac2f59bc136f18a413952e4fbddcf9e"], [10, 3, 1, "", "116:1 f94657d8fb0ea7389e6b69384f4be5c24477b1a13a7fd0c3d2d5a2f96a9f0b8c"], [10, 3, 1, "", "524:1 16107d984d3916e05e23cd5294194dc6414ecfcb591e4d5c77f71df576313d5b"], [10, 3, 1, "", "528:2 d24fdc09784f96ce368236563ba4289179ffff8ad78085abc9eea282b7fcb48b"], [10, 3, 1, "", "79:1 bf840c9efb7efdcff65df72ae2aaf25f560c6f126a5a119d523cd8f94e7996f5"], [10, 3, 1, "", "232:1 3e414c6c06ebf1d4bd050146606b3c7dc85672a4e5d2ac904187b5934430937b"], [10, 3, 1, "", "408:1 fa9c74d795b4aee1abb0c510515f89026b33a0984b24bedbbfe2bc51d5790d3b"], [10, 3, 1, "", "30:1 89cc18647f78561ff8ea549eac139fa5948d2d8ec5cdbd032419d0c5734074b9"], [10, 3, 1, "", "507:2 16910901afd4a8aa52f37c706f985fe1ae70f8a7d7b6debb98faa683cf4b2d82"], [10, 3, 1, "", "561:1 8e5697dfef174570e859144dc047d2c731b3979328522bd218fcc947258ae3d7"], [10, 3, 1, "", "624:2 e4b5703d1d025b16cfa295c33b74a32dd8ec0e1f27ca33b22f154950f026adb5"], [10, 3, 1, "", "715:1 8548bab7c83948bc1472b46057179d1082fc5eda3ea01d610618ec9d4c7ef21c"], [10, 3, 1, "", "450:1 bb795012707fe09e40b9776a7484850f203a380f854cbe1d20726f55b5a59c72"], [10, 3, 1, "", "197:1 a71ccfd8de8b723e189e9cfdc26e33287259bc252697d1af5bfabb9004bc2fbf"], [10, 3, 1, "", "306:1 8fdfe2ea488f3cbab513d24b7375b9867186ec7ba9c4b388e408d73a0fc70393"], [10, 3, 1, "", "680:2 3c2520f52c836ea52a6b324f7a0b5eac234dfce8887421ee8b74454a286fab82"], [10, 3, 1, "", "634:1 b5870c029074717d1b151adc15bf8667ab41b158131e55fbffd1ae0a690fc391"], [10, 3, 1, "", "304:1 02cc0234706c31a86a47fd94cab93bb791de5b17cb2dc5f4f72e167e3b0fd64e"], [10, 3, 1, "", "275:2 0f612fb6695af3e2a2e586f3cec6ce341243c67a1e60bf6c38b7c22cf663cf8d"], [10, 3, 1, "", "334:1 e1d14c5e65629bcf7ef2f72b49a0f71f0a28f9804addaa1db7e58f9816ee5621"], [10, 3, 1, "", "25:2 19ea2c73c4007224773c777a349409bad2f09edab12ffe626426727461ac93ce"], [10, 3, 1, "", "247:2 41d1f34096a384ac1c0f9516ef501de61ecdfa01ed47dd0fc5c86e203f7976e3"], [10, 3, 1, "", "382:2 94576a2c9e28d810070b69c466b2a24849e5a415c05265c8fecc9b60cc68b465"], [10, 3, 1, "", "114:1 b09da885573974912ad239d972ae33be6eb67296f39f991bfaca1180c323637c"], [10, 3, 1, "", "104:2 790649ac426b7b7d9da1376060443e9bfc656f592e46946ff47e05c5148eb817"], [10, 3, 1, "", "729:1 fcb7e9e51c1ad23c53607bd9fed543f033683ccec2f703b9caa76ccc635daaeb"], [10, 3, 1, "", "8:1 98791e8b448b56750c7e22e4f8aee0da4f9b06296b917dbbff908bfacdc36bed"], [10, 3, 1, "", "463:1 d01b68338f0da933e93d306807c765c36bb0b742d511d7ca14c26cf9dba55c99"], [10, 3, 1, "", "143:1 adbfb0569b2db7c2464adb86ec3149a19d932349406b9421589a9c7c23028b77"], [10, 3, 1, "", "316:2 1ccb337148a46dd78d35fe6f6c7881b848efea711d24fb0001b9a2c7bd181e70"], [10, 3, 1, "", "317:2 5d72b8433fcb7e95a3123f2c11226e6c4ec8a8cbf8f2262dd16b2b117b965a20"], [10, 3, 1, "", "547:2 36595f45672c50aaf13a16508da79116a9658a80f87b1609a1864611697d725e"], [10, 3, 1, "", "72:1 c6211b947c74463c78301804b76006bb9d8ea263258a9a02a36a22e0b76e99e0"], [10, 3, 1, "", "392:1 6a5d65b431c0eac6e75b009a623007d27deda95179e83e1006ad19f2c9b0aa48"], [10, 3, 1, "", "149:2 923a81e40b0ae15b6294eb57af05e001228b8ef2d2be959cb64a86e05ce958d3"], [10, 3, 1, "", "403:2 f5467f21fb4fbd5c7a3d1631d24f1bb65c14297d36e9225116ad32ef12a9f5c1"], [10, 3, 1, "", "501:1 a2bbd139c3c525d4aa3da93a22eee0d0326e1865701304f2b48b403c2a284fa6"], [10, 3, 1, "", "177:1 23a01e02af0ae9df7912a43e2e3a1413dde27cd1191c80edcc213f494d6edbf9"], [10, 3, 1, "", "629:1 dfb91d945c0406e088388895f2e4eb5320b9a2f0c9da9c7201d69c279e1be946"], [10, 3, 1, "", "119:1 2e84daa155889bf6f73493cad46d61e36fde2cc1b78717e8a6f93b488cd289d5"], [10, 3, 1, "", "33:1 8ac99cc675c299be411b1538d3f2e1e03a710c3b8d2b7c1c0f34bf53735173d4"], [10, 3, 1, "", "695:1 66990068515e14ec7bd45601e878f6e9bc7dbbfe756c38be7ab30ee6fb789861"], [10, 3, 1, "", "27:2 d314b310f1bbe63e079d7bcd0886f2d942bf40293190ae30e0b5c19c54beb922"], [10, 3, 1, "", "566:1 44ed3ec7e8a13d09d1197cee99842a411cd1f9e9a3765034ff0d9964ca82b79e"], [10, 3, 1, "", "455:1 99bc9c57c220ee5ca9f3ffb6714ae7c66bf44ffccd231d8d0ef16dd01709f69f"], [10, 3, 1, "", "520:1 a485156d19237af245bd23bf2b453438690b4d0984b3baad3baf825c56b5cd14"], [10, 3, 1, "", "84:1 7935a2b1a9900f8cd0e10119b717509afa4e5b225030a883e36db927a3f6b5df"], [10, 3, 1, "", "460:2 6474723be463010152d6db48870c978a635d7aad1463a5dda3b10135d970470e"], [10, 3, 1, "", "427:1 790b5207e54c3cc5e5266e59f67821a24906a98dbe5ee05e10d507ba3e9b4661"], [10, 3, 1, "", "273:1 bbb4333e37c2bd9dc9424199392d6034d9e646bed0408b589c850e7a71e57e17"], [10, 3, 1, "", "475:1 fa1fbd125cc8278b95a39fb1ee542645f6e6405cf80e9475fcecc2dc0bcc4af0"], [10, 3, 1, "", "486:1 cbad9205a4b6ad94f2293f263834eac0a48c1a589f83481e44dae00d0947d06e"], [10, 3, 1, "", "705:1 0e85919540d6abee1a86afcbf1cf7ba606ef8750d81655c0993451e8c162f575"], [10, 3, 1, "", "743:1 d6923a479fd3cecafe3bab1e1c8346b039c95d034a6ea9311970ad24f4e85c11"], [10, 3, 1, "", "660:1 77393bbf95fdc35673bc286aa58c588f01f1fd5873efdfa3f332b1024599f723"], [10, 3, 1, "", "117:1 6414d845db9a72cc676c688dd644bc96bddb01f319cfbca16b91ba3a2f305f08"], [10, 3, 1, "", "228:2 20fbd9422ad2ab3b9ff7214c70b3a797bf9fc1ad0a178b5e6982bf3b8e98bcc6"], [10, 3, 1, "", "618:1 31ab557d6fa73330faca7a26d2a780c91f94caa7a05d631063501fcef71661e1"], [10, 3, 1, "", "347:2 5b1511eb218f59a70c5747e52f7843ee82c8b03c375bfe19f4b7b46f2dd7a6c9"], [10, 3, 1, "", "213:1 7cce1c14a5506009db260af1d47e8986f414d4211450ce82b0cca2dc979fcf05"], [10, 3, 1, "", "460:1 a433125983513d73b2788a482e86ce8ee3eae7fda70a0f49b72aaa563c8ca6d5"], [10, 3, 1, "", "43:1 189012405431e6e0501a8b663a6ea6c42e50cd79a96d1e161b116460ab5fa8bf"], [10, 3, 1, "", "16:2 57d6d36e65b833a08834b7e541e88a01a13775a6fe67f76315339425a1a96083"], [10, 3, 1, "", "326:1 fb553b00ed34887732fdc72ecfb14c39139ae67958595f1393839d8daf1142d6"], [10, 3, 1, "", "623:1 7c843ae41331237817b624138270a4b00bab829daa73d2ee0014acc51797472e"], [10, 3, 1, "", "313:2 7274664572e3a91e633dcefdc1ebc57bed11ebd1bafae912ee3397ad8c6fc67d"], [10, 3, 1, "", "109:1 c6e989a0ff9e72da470d988efea9fdd19ec8fcb2e2e4c678bd960e09b765df21"], [10, 3, 1, "", "226:1 21a7bf487e0cbca6939de60c7b241cfd40ac04774db6e17aa40bc28c1f614bbe"], [10, 3, 1, "", "560:1 33ffd10b2c15ccd3a8cf50d15690bd22ad8479acab34f6927383fb6cbf0d17c6"], [10, 3, 1, "", "185:1 61683bccb6e65169a6a97549e117ed653e66baef8b539541b6704e4220171f2b"], [10, 3, 1, "", "591:1 240de0589c2f0a1216afb565ab85833ee58c0021c9acb1356f1d99b170bff9f6"], [10, 3, 1, "", "323:1 f026c959276b062252cc809d9f02fe64736c47c245a6ca2cc4a22368a29be2e4"], [10, 3, 1, "", "681:1 aa3c1397613c12b73072f31871e63805ccc573bf4146d576bc2a651177c2fde2"], [10, 3, 1, "", "148:1 785227f0e21969eca81202c0e777b961ed0431b2fc3151ee9a15877f5fdef263"], [10, 3, 1, "", "585:1 f091144751bd01b8092c1b44d2132b27a8011b60e3acf525b3b432641f5dd4cd"], [10, 3, 1, "", "684:1 f8d3cfe269f992d7d63c38d05fa6aade8d3389f1ec18bb04cf7912bf3c7a03eb"], [10, 3, 1, "", "435:1 2329311bb7c20c5a103c2af86d961c59d26d23a905b3bb20dcc3684ee39ede57"], [10, 3, 1, "", "386:1 01c81136d5d1d40924d1c8996c97e0695953d067317cb5c023c5644575950573"], [10, 3, 1, "", "642:1 b43c006d70a287d794f7febf43b53d6d42fe70004535a89617c39356ee558deb"], [10, 3, 1, "", "127:1 eaeff67ff6e17b1bba4cf0f8199938306cabe12c1732920c31543a06aaf5a40b"], [10, 3, 1, "", "669:1 79e56f6a22048aaaa6aa17dfc77a56f04c7cb3406f2b512a417c47429f0408ae"], [10, 3, 1, "", "545:2 1877dee9700e4ed62371845a415448fcce9d210cdfd66e8b969b415a3bc9ad4d"], [10, 3, 1, "", "480:1 687171fdfcb5dc54c9efde5dc880fc8d45c2a7750c34924be62eeef999299aaf"], [10, 3, 1, "", "345:1 546dda31e751de38cd390fc3678fb03b520c5de5018eeb4cf2567e0bc0a8d932"], [10, 3, 1, "", "242:1 c3b3eae235cc1c9f0a27a1d9906078833ed55916703a21a55f985b8977209229"], [10, 3, 1, "", "710:1 06d070b750bfc2856728ed128922d0d6d7f75bac48b38193857a3d9765f8072f"], [10, 3, 1, "", "606:2 ca34f279744bd0af703f03126fcdb84a99d9d28b91bbb12081dcf248b0e1d106"], [10, 3, 1, "", "700:1 66de55020a851a16e63889213d54eb58e457882fa4700c0b88bb2bc6e2200bed"], [10, 3, 1, "", "147:1 f9dc5426a6f4b7c2d822945b0437cdb12589ee9e9b37c2fcf2a632969fda29a4"], [10, 3, 1, "", "717:1 8fd7d221054a7b10ef91afa5a32abc45c848a365fcc6a347cb40a90d6eb629fa"], [10, 3, 1, "", "546:2 bc7655da0c0b2493619323e4e76a6d2a6ddb6236944509650b0e7fcf6506a21f"], [10, 3, 1, "", "363:1 cbf8771833c7d4ac31cd6b52abd03897bd1cfb5bb71267e299ff41016afc5c15"], [10, 3, 1, "", "281:1 4530c9b71b1cb42c167ea51cf676481834cfe9d38a19e08dbf4a7b7127fd06a9"], [10, 3, 1, "", "657:1 ada19ba49b9c09a8650bc6dae3c0162ffb460e1f3fce7b72d3c89e43397c8868"], [10, 3, 1, "", "395:1 081c0eb81f1e5c8c6346996725d4f6709fdb652d0d6c34483a6869a4e316e3e3"], [10, 3, 1, "", "401:2 5e9073efe521f3c72da5efcabe7a2facc45281c7d3ad4f837f217af4ee40d1dc"], [10, 3, 1, "", "9:1 64f1fbee5138f70b47557615d2e94efea505f51e584cb05aece1dff319d90ee6"], [10, 3, 1, "", "620:1 6bd274761a79f65af71ef75d12be7b089a531c77567d26c881e5aff396428d49"], [10, 3, 1, "", "237:2 2b1d39b7d22bec5da3867d756acb182dcbbee25d3a7ed6e515fdd2f22d580798"], [10, 3, 1, "", "272:2 a26e78c6b359a455c1b1367ce85ade173168db2f195190556f9b984b2c7c19cc"], [10, 3, 1, "", "648:2 4a032811b672f3b87705a845ec088166373babfba61ce19f49f6aa446bcd4abc"], [10, 3, 1, "", "118:1 7999e81310e11f947d1ce1f08cff161fae82ac9334e35db0d7c0a6166badafce"], [10, 3, 1, "", "431:2 b7c4f756bfa47508c075cc059cf7f4f4cf07915feafad80ef556657a474abf07"], [10, 3, 1, "", "106:1 120ca029e71c342fc34219b5d2846249f9d1c809a2871458c91708d06da37f0e"], [10, 3, 1, "", "468:1 2cfff0b577b6e3da95e02af9fbda912972b7b7561f3eececb3079825ecb10d8b"], [10, 3, 1, "", "351:2 caa6852a6a96eca35ac0ba609c6e927cae9b32b966db8b17f3674ffa905b4326"], [10, 3, 1, "", "58:2 5070a228b6ec847b80d342bc3ccdef803d20f55a9cbb901f5ed3d97e69142af5"], [10, 3, 1, "", "150:1 1525b4eef9424592678eedb97fe1d74b2c10483f93d53ceb3d8b8e7010b27688"], [10, 3, 1, "", "506:2 b98208d1e2f1279fbfd6f8c0a4482173cedfe0df82d121b32177f211ceed6c45"], [10, 3, 1, "", "32:2 af19c239b1198b6b5c9aa0f53822c17065f6b5071f9963e07372966dea0aaf45"], [10, 3, 1, "", "614:2 dabe57cf78f3f40fa6255d8172c08616047fa0b930adc9d29640296e927753ba"], [10, 3, 1, "", "371:2 5779a509e38b69bc02358e67fce4873ae576903da68e0e756ea5f97b84e9c911"], [10, 3, 1, "", "214:1 a56ea5af9b72536fbec71883cd6a041726a04a714ff48bbdc3734859396f2c7a"], [10, 3, 1, "", "322:2 40e2a603cc68714be173cd13bde5504baff7806a1690106ed1792b9d52ac887e"], [10, 3, 1, "", "222:1 2113cb97a21d807a1ce23b1fc48691f268dc2902994fd2c9b7a68235b26f5668"], [10, 3, 1, "", "351:1 661a3a1aab0b939067be99081b05c9e14a6f5a6aca9781f866eedfa9a7ac2caf"], [10, 3, 1, "", "206:2 519e2d7a787629ff82f0ac7889a961fef2dd5c808a3d92d20577c8e4619a6c98"], [10, 3, 1, "", "441:2 50e952ca39eabd1b9c84a590eeea20dc18149d354ab428b0ae53d61697a1edfc"], [10, 3, 1, "", "299:2 c1d843e7f042cb52d05487dda6a49f0bb9cfc10d105c6771cea3cea0f49de5f6"], [10, 3, 1, "", "399:1 9482836bf585816b2fdb19a12c5da85f014b8e65602b245ae13257fd397d0e3f"], [10, 3, 1, "", "484:1 da83786561684ef3f1ea6b5403d5df3f17d2de925757999817aef90a955a6e91"], [10, 3, 1, "", "504:2 5a50518b8730e37a490fd94e34bd9d8bb8886d41f8879411bb2d4efc6b35ecde"], [10, 3, 1, "", "14:1 198d4349217668b52c8df13a0b9818dbf3aa38a320a4d98a4102ba04ab7d295b"], [10, 3, 1, "", "136:1 1af2bef208b5873730b5a70da62a02b6097e0165d32952186f50a1fc454e62e1"], [10, 3, 1, "", "745:2 b9880cbe15db60d110b22def087765de48eee422716f5bdd7ef9a4efa72c5164"], [10, 3, 1, "", "38:1 3466ca701a5eb8b8bf058fabb19cfc0209948fdec7d3b218230f56cc07e7def4"], [10, 3, 1, "", "565:1 4c72541805d9bbb653e8229bee9d003402439bfde83635c713d382f784081ab0"], [10, 3, 1, "", "748:1 8822842cfdb9899f545a6863f17b3fd9f4ed8742e1a45e24e82893a3131ecfe4"], [10, 3, 1, "", "116:2 4f9d2d6e4a5e204acb72c105fd11ce6c26fb64ea55417c5a627581b0e1231403"], [10, 3, 1, "", "607:2 6b1b66b82e4ab9634469f78c85bf26ceae300647533a07f9a62e77ac7e9ca765"], [10, 3, 1, "", "267:1 90984bbf1a3d3042a55769638cf73e49289240f1be75eb0a7f16e42cf03d58e6"], [10, 3, 1, "", "504:1 8c0b7cb1eb0a5c0da1b30d6bc96b750032e97a59ddda9bd751e641a151f64534"], [10, 3, 1, "", "266:1 613de2ab41662f6927a0f6152c783918516dc107f7c016e0d7aaf41a1c93e61d"]], "4": [[22, 3, 1, "", "13:13 a585409a841ee7361e6fb14891ca557214c6bde16ccd359302549b407e7a771c"], [22, 3, 1, "", "1:2 d7948a2adf90ff0fa015b4f90967c0801c9271d1aaf7f17e291db8a682522035"], [22, 3, 1, "", "2:21 da5f5e5fcdb5726c1a0dabc99f8770f5e3fbae1459f5833ff33532110822caf6"], [22, 3, 1, "", "14:8 05bc50eddffd3a18ed8f3377b123bb37c1b5e94af198ccfd7de28fe31d741de9"], [22, 3, 1, "", "1:1 0f3224c81474a43ebf7a037ebb226c3b28b450e79a50de818459bb6d93a03b4d"], [22, 3, 1, "", "14:1 5d702214fefa6f0a53043997a796eb9c5880872b5e01081e4b326f34b335437b"], [22, 3, 1, "", "14:10 88ab9938b63b54586e5a194cda9b4fd9238fdc4204039efa73640037b90e8336"], [22, 3, 1, "", "2:3 40842ff24d030ea0ccb5075ecd6ec1492cd9d9c98e960ed9563cfe03bb7e2487"], [22, 3, 1, "", "2:2 e9bace1e5151ffdeeff57cb5069120c81735b17734fa05f4c4075277f6e081ad"], [22, 3, 1, "", "2:15 e821be0746413ff9f5096aec87f2ce2d467ea6cb27fb68fa64c8a116c0207238"], [22, 3, 1, "", "2:17 c36d1f9962298745f389857334fa11b8218d392e0116702a80ad091719503e13"], [22, 3, 1, "", "2:30 1fa312839ea42e8a1bbcaecbc879efed22264c8ac233c6cfe5339ac2db24a2b3"], [22, 3, 1, "", "13:4 9e95c1f9c8e8b1d57a5759c5453c5cb606c711e191df6d096a42e1f8e45b154c"], [22, 3, 1, "", "13:15 8b15c2b4a5b8923f6ec42c9dab38eed453f1bbfdbea8094465a5124ff0ec2e5f"], [22, 3, 1, "", "14:7 c2729c9c6fa8817169c4c6b3ee4585e3518a521decde9f3a96bfa7d4313c831a"], [22, 3, 1, "", "2:16 fe0aac8860ab0c5746c0c07b373e29983a82fc0ebd52f6dd2630ace413a9fabb"], [22, 3, 1, "", "2:26 d8cca7522f47f0479ce66bd850d2931ae4f7c4c1d4b198e4aad88f9b90a1ac07"], [22, 3, 1, "", "13:11 a35062dc24915937215d9047a1f414ade029557a2c46169a0c9a79cc96db0d02"], [22, 3, 1, "", "10:1 25fd89d90847d3d474a7da20e5aba2d29f31f8f7e17c2aeb98d2a62683b49efc"], [22, 3, 1, "", "14:2 9d3437b59c9ab4d5061e5c413b3f9748921ef9527b71e24efda1f586edca9e1d"], [22, 3, 1, "", "2:22 22c62b9e8996f6fbd50fec2e75e53a84a790744792c0aa40834de29215569f84"], [22, 3, 1, "", "2:1 23b6212015d6348a703cb5be2c0d3c0f812bfb0ece7139873025d578f50472c1"], [22, 3, 1, "", "13:6 b94347bbd83933a75718cc03b215a9d769aa3d6f969c54d90c57fb5f932c1fc9"], [22, 3, 1, "", "10:3 9db2e47ca9bc68f63d03dab529165f2062950ff28398da808d41f83989833ac9"], [22, 3, 1, "", "2:8 65b9ca746467c1af24795a49cf507e5a0494d59801db4665214cf5d87fb169db"], [22, 3, 1, "", "13:16 b23001be74c2e310999ac798d2f614d308ee8e1e9b8b7c463397a615dcb3e025"], [22, 3, 1, "", "14:3 0f8fed9095b2593b2ce110d5083b1d4174edfd4d58da66a283c60dabbfa46666"], [22, 3, 1, "", "14:12 f2c5ee9dc74cb81bb9b1010d4971b395c10d7ae0b69878d350cb1456826c8e37"], [22, 3, 1, "", "14:11 ea8cafd5ce15c0c1f15675f652353abf992d1d606ef8a4a1543796515a9f5575"], [22, 3, 1, "", "2:20 64386326aff45271fd69d938c23b27ac3d34103a3520b4b76a78cf860663636b"], [22, 3, 1, "", "2:7 00ac1f2e576d6d3d14dcb244d363bf14795ddfee222c420efa28a171c91598f2"], [22, 3, 1, "", "2:29 0dd8bcf2a274d471aaa36ab380441dd3b6ca39976303324ddd118e50013d02dd"], [22, 3, 1, "", "14:13 4b84d24f6f4b7c87cfc09aa1f59294dadaa53c24876e0fd68f67fc28b88830ad"], [22, 3, 1, "", "14:4 f4c5aa350fe7996e2be77424186b6514c7bdc0bed572827e1783a11b5551e07a"], [22, 3, 1, "", "13:9 61a7ac2c1a5f76feec6326da351d7821d5d885c3ddf66d460a3cf531b46961da"], [22, 3, 1, "", "2:24 f1a647d67b3a801d2ab2b7a315771e5d26e67d2662bb331181a88afa5c152bc1"], [22, 3, 1, "", "2:14 454e730423cb4d7f069989e61ff7aa256e85e03a5c1e7b29e64e627e192c47e1"], [22, 3, 1, "", "2:28 753ab4b03e9c965a6fffd92d30e2769c5a63a344bfb1b7e76971ac8499be82d8"], [22, 3, 1, "", "13:17 2d9fed8708df09f431fc7d1136ad692f13e72f458245e3a972715016cf03cfb6"], [22, 3, 1, "", "2:27 21c1d49526e5ca8d23c874a230759bb497548ab543740fce1095850fdc4fcf63"], [22, 3, 1, "", "13:20 cf5ca60e94e50f04ef2036f964845c07eebcc1218b99dc55e644c63fc7e21699"], [22, 3, 1, "", "2:18 e46c85f680edc5614a12b9207c497460b0042af968c92f40fa5ab637e14571a2"], [22, 3, 1, "", "2:6 25f59f09cdc29f543ccae977ee66e0ee9b0fee1d55202cfa983eabe4f00b16a3"], [22, 3, 1, "", "2:23 b0d2ad5646194c0d8310df4d3333f7afb79755cea464d60a3fbda29273383ef6"], [22, 3, 1, "", "13:2 4dc696ed6dbb85f0cd265718a2213f335ef1caf861c1e2858c1e895b91bd05d8"], [22, 3, 1, "", "2:25 9ca4aa25f308f26f33fb8ec4fe5dec350c1d8526c6675053e5be2719e863556f"], [22, 3, 1, "", "13:14 b612eb84031e77cb9d34f88c555e0396ba5722ba4729a356e68d8b3fb33b3058"], [22, 3, 1, "", "10:2 8ad56706cf3948a37e7738f416f5065e7f1335a2443524ff1c3ebea736ac75fa"], [22, 3, 1, "", "2:9 a23c0b697c2b2e686673f2956a5b9c81a3369d2a7897c67840ba014cc59c625d"], [22, 3, 1, "", "2:19 eaf6ddda440baca7044641c33a4f8d9d84b75648732ea1f9dc8bbb44641bbb7a"], [22, 3, 1, "", "14:5 4faa1836d2f6f8eecc49eaa8a8b5a46d717231f2dd398d4590d48ee4e14c5986"], [22, 3, 1, "", "13:1 d7212257397d1d14621b886a1829ea8f8c8386cdaccfbfbe7f70c9321f85dff2"], [22, 3, 1, "", "13:18 ee3443dc44a15bfc89d333261e8beae2340b01881208cafec32e48b372342900"], [22, 3, 1, "", "14:9 2329dd8b3848ee98473bcfcb998f59926c182d917d53d0b5c562e486ce7905d9"], [22, 3, 1, "", "2:13 b85bfd2e2cfc13a7fc78a87c008d62c82d235fb2d2d7e4d188df4acda7e8aac5"], [22, 3, 1, "", "14:14 504b10589747b39626c8009a403ca0deba66fe396ad2de9be37b123b48dc0c99"], [22, 3, 1, "", "13:12 df1a3afdefc49c32fcd12cc2c3c586b0e8bf3ba1b02491b649c096e25e4a3c1d"], [22, 3, 1, "", "2:5 e8e0cdfb96e0c3ecba3291745e9a1299586805ca7b8b0aecf19b7d32f235e8f7"], [22, 3, 1, "", "13:8 850630ec9e0b341a370fae1c5d0089a6199d8a2d37d472dcd8ff712543d65358"], [22, 3, 1, "", "14:6 838585a97e19cda475b2d3a30b265a5e45814e4e6fed4a7f4273c944223c6e97"], [22, 3, 1, "", "13:19 9c94dc64607d1d1d3d47085d136d875d1b22bd42a1da63f644567c9afb1941da"], [22, 3, 1, "", "2:12 1e5dc2e803a63fd05b7dec479ef1d0add6eea160c45fe290772c02fd26bc89d9"], [22, 3, 1, "", "13:3 853f1c4b6645e1f5b164185c45a96a2de4e6ddc84851ab72105e660ab292f120"], [22, 3, 1, "", "13:21 5791023029771fef296097ed718e040eeb95b76d6aee5549bf5621b22838e5e0"], [22, 3, 1, "", "2:11 4eb758fbe24b08d1aee74c97d4f8541b0dbcb444784a6569c21d17094fb49fb1"], [22, 3, 1, "", "13:7 3f9a02739cb12bc30e822ddfcc0c32cfa2a7ba100fca18cf4393b8a82f73ba75"], [22, 3, 1, "", "13:10 e23a38fedc7034747afe6208416e064bfa435ac281aad0629ac7f4ea812f2435"], [22, 3, 1, "", "2:10 b59affa079dfb0e436f28a313ff4e96d3831d765ff0063eb18342f6e749c79a7"], [22, 3, 1, "", "2:4 cb6e139cbd46fe7899e08fd9f0c9a48a4bccedd925c0a7bcf78f8babca270948"]], "4.12": [[22, 3, 1, "", "6:88 c4b02ef7e1b298b5a276082e81cd8daa172fdc32e30770b173dd4a6e774155ba"], [22, 3, 1, "", "6:61 806a8a9c4c2a0fa926f161ee08b989bacce0c50dc99d9f154417a5c2d8731adb"], [22, 3, 1, "", "6:49 fc18f70656fef1ef9b09d7ca8f249620b596fb1b8c70efba58e3a5a678b21213"], [22, 3, 1, "", "6:98 f38861e12ba15b26d22b39bced0e85caf806900ac14d4b691b9bfdc04c56006c"], [22, 3, 1, "", "2:7 9ce44d0db04150b232d3c66c01e88cb2a18d590a22685dfff432835fbeb60264"], [22, 3, 1, "", "2:27 0c359ddaaaf4bb7ecdeda5b1ed77c19699bd50b53c7c9c180ab91fec01d5755a"], [22, 3, 1, "", "6:33 4b63ff86116c425fe2cddd007442d0c03073678cf0cdc42b62c7224845aaa0e3"], [22, 3, 1, "", "3:31 a9d2363147bd3d1382fb2792473844fa7abd6d6fb6aa67371d82a7ede1452d39"], [22, 3, 1, "", "6:93 397cf84d1d20fefbdb6416f126bc1fedb49f880fa10fa4a885aad6fa92e26167"], [22, 3, 1, "", "4:2 644c0bc93e9153b1614ccf90b7c10dc639fb525098e57bb2ef0188049521cf07"], [22, 3, 1, "", "3:27 e233c03b13e1a8e36e57cca5a910344a93904dc508dbe3d5823adb57c58fdaea"], [22, 3, 1, "", "2:40 7726d6710a5611f30a40c98174045b829d3f80a6b8d962dae4f64b76e83045a4"], [22, 3, 1, "", "6:54 18ee894162cc21546a88f2a251a9f6bfe341f49b0bdb784abc72aba91b0d6ae6"], [22, 3, 1, "", "6:24 6f3816132ffe28efaf427fe33b1433ad594067052bda3f57277c1451893dbbc3"], [22, 3, 1, "", "2:4 a1074c8cfb8f682fa21dc2aa4c3d2b500a67a107b90901fd69a32bd3ea7f487d"], [22, 3, 1, "", "2:29 8c89ff60eff543cbe33d8f313577bcc491d151988e3e14ec4a7c5f681d0fa8e2"], [22, 3, 1, "", "3:38 cdd6b9592887af36d0772fde53ca3091c4a6bf70805ffbb04a1dbb16ef4d92ff"], [22, 3, 1, "", "3:37 afc1ce7f88cf8abf3164653eb9fd348bd326ebc15ebf3037c655e1c0494c89ad"], [22, 3, 1, "", "6:55 8842ea78c118edaa940f0f0073d6e7c3290bc1f164964dd50de8eb727650dc48"], [22, 3, 1, "", "2:38 81ebbf38df3455de1ee80a6f1a2f412c8878762eb6b05285f16ed47c4a857592"], [22, 3, 1, "", "6:76 a041f706bb15d0161c35bfcae72a7de2e0b4e11a3e262fb649508ed8ada51bd7"], [22, 3, 1, "", "6:14 6dd1a00950a9e651a699734e82b1208e81181f5202936ac1f1028fa651d02a27"], [22, 3, 1, "", "2:41 fd91364bed19d0afa9d73fb3c1658c025a696b873269013f813ec189d9214416"], [22, 3, 1, "", "6:73 81163aef39eafdb0708b75f24ba80cb5182c0ef48bed2d3cf8feba5b9bef6f95"], [22, 3, 1, "", "4:5 2996c6bd3a3dcde83041a19b7e0ff0b4645e49e8373faa312d7d231d80add18e"], [22, 3, 1, "", "3:2 b3d69f435190dd57fd86cebc434e29483825d6b25b8f60120e3477fef36b44cd"], [22, 3, 1, "", "6:45 5d1d8604e42079634aa8e88ee40d69c6321bb9e01bccd24ed821e193b76cb937"], [22, 3, 1, "", "6:56 8b10910fa086c26e1e94705d9398a51c68e7a3c6a9a4578d4fc204abc3be6d40"], [22, 3, 1, "", "6:8 50c6910a7fc8c1b07b987b8c629d5666817afcdfd7a77af3e544b2df055354eb"], [22, 3, 1, "", "2:2 8efb96431fa13308cf8430377b0cc06be4e7e65b313828a429bfd56b64fbb69b"], [22, 3, 1, "", "6:28 8ccd07581891d7328efac206e6e8a5952ef3b60a40fbf3b2b43182fc636b4fb8"], [22, 3, 1, "", "3:25 fc7f331b6089c5bd8e347504d88e62078d5c4c846a9ccf65eaeedd8ffc094c48"], [22, 3, 1, "", "2:32 d54f897d06ae679945464622ed0a82379a5c0b60452ea600983b97b69902bbe5"], [22, 3, 1, "", "3:35 dcbd46a0126cc58845c6cb40ab6afc0aea44dac093a6f13bfa4fcf14b4b395fe"], [22, 3, 1, "", "2:10 35b4e67328db231c512e327ce5efb8ce05016ea1da017f138f262e2e2a227d6d"], [22, 3, 1, "", "6:23 2fba60344712b36c7e3d85a11370baa6cf316b8b2a345d1b4b3f0dd61383b631"], [22, 3, 1, "", "3:24 e789228b8563894bad59c2a9870a4324c5fde44cc790f00e4a45a0b465c8316a"], [22, 3, 1, "", "6:91 2937ec9b056891de7aab2b57810eba0528ecc27fc3e8075a1f852903bb9b994a"], [22, 3, 1, "", "2:47 138bb93829e388cb6e4f30afcc6d8172dbc34098c101c23ea3024f033ed853c7"], [22, 3, 1, "", "2:48 35b9f5170166cb82091a22696f9f5551aeeb153b146a6a8cc6fd0ec0f69ba070"], [22, 3, 1, "", "3:48 215a6f01fd8ef7a0ce0ca1e6aa8dbb82270d88d2f159c6bfe8c8aefe79a45c21"], [22, 3, 1, "", "6:94 93b5392211c91ee8d504d9868a7d68ac136546dcdbbad5d24d3f577f2c88e489"], [22, 3, 1, "", "3:52 e07e12484817e4c6487e1204a1f9510e836727735508f4ef691226c46e64bf6a"], [22, 3, 1, "", "6:42 588b531763a50551cc01572cee3f92331ffeca722aee95bdcef6579dc6a1df49"], [22, 3, 1, "", "2:28 6fed9a60e8fbe91b884ebe5950327802bbd098730e114fffad4de5c82403ecfe"], [22, 3, 1, "", "6:29 0557c8604fc016c9a1c036a9f02b61c95d2b7d1d6a0043aea89868044534e8f4"], [22, 3, 1, "", "6:60 5052100ae827ec33641989b63bb47e384a21c161e2fb0240e543ae9120df54ab"], [22, 3, 1, "", "6:11 30466e79ab50a4ce686cad40eea4346e303925d4a01f36024720a13e48a89b4f"], [22, 3, 1, "", "6:89 402fa34cae898d54c45a23952960408a04d5d8d41b0f81ab618f87b26930cb88"], [22, 3, 1, "", "3:43 f4b1e50283ac71505aad22e917efae5d7d1d0798dbdf1fbe9d80f65bb04514a7"], [22, 3, 1, "", "2:3 2cefde97b95cdce903b2bb16f1b7f2bb843cd1947a51d99f03b6edc576e8a815"], [22, 3, 1, "", "6:64 c22d990803ea4ee571303d09a964df44019da966c6d9a8cba436ae48cc9437c9"], [22, 3, 1, "", "2:46 5d19ac9384672776d1ee638f44540b560d0f10f40289e94044bc9fa144c252a9"], [22, 3, 1, "", "3:7 14a2ebfc0dc84e45abcd936047fdf03858f8cfa416f4c711cdb673c3029f2a1d"], [22, 3, 1, "", "3:20 34586dbc5392132b773e0f3aa90c23b3f4079ca79bedb9d108b354e0c15a9584"], [22, 3, 1, "", "6:34 8e96bbc341a6b1de1d507f569d8d34e94e53b067964a454afed96b6b4bdb7d05"], [22, 3, 1, "", "6:87 4d4e567b4ab8ca5f4a1fb1c8c3d8df91c67fb770bd4a4cace6b5edb67fac789c"], [22, 3, 1, "", "6:80 1a0181d42cf641e33221d4f38b0852492555c4ac8e15be51f143586d6b985c1b"], [22, 3, 1, "", "3:5 dcd00eff58f1f029b5a359bbdfebe7a52a9dda64e77847b71c38aa9ee577082b"], [22, 3, 1, "", "3:39 cefece0d02fa276fe12b8d7fa02401d8fa6a73dd827f6c8960ef8097b6ff375f"], [22, 3, 1, "", "2:53 89b48d93f4666e6e771a2628649e81f8d1f2de995e07defb06fff0282cffe991"], [22, 3, 1, "", "3:53 335cbd4c223a88ecd2be44961d7a6ce553d0352af438c9f034095d6c8978c103"], [22, 3, 1, "", "6:25 605267afb8b9036c0eee2345a972043cff7c21380f985f12caaba2f7d30aee0a"], [22, 3, 1, "", "3:36 89cc90acc65cd37645feae640026726577f4f4f0349a887ff00a451479f45b0a"], [22, 3, 1, "", "6:6 20eabdd38eacdb13f67b19026f6ad726531238743b530c057d28a339a5e5db77"], [22, 3, 1, "", "6:97 f42fbda3021b2099c9a16bf8df1231e066450bcc017fefa22f943451c146644b"], [22, 3, 1, "", "3:40 698fb05a30487c47e16c1814bf5989a6201253e9f222c440fd59e3d8cfabbede"], [22, 3, 1, "", "3:14 f631f3eaa473d36dc8b906892fb02d2afdfcc6ac8b36a88720bb9cbe268707cf"], [22, 3, 1, "", "2:15 5c234eaaaf625cadcba23e792b9c70b2a5d5a4bf733d3d1b874363f6cb4b4c23"], [22, 3, 1, "", "3:18 760728def307e32ecd93826afc55eb5b39477adab8e2fdd6b8d2c3445e9c6c6b"], [22, 3, 1, "", "1:2 3f12892eabfac9dd07124c6ca395e4ab531b1edab32e93dbf13a9236a105def9"], [22, 3, 1, "", "4:3 ebe3f4bdb59589737e2a8f2587d31e540b885474c990132b77755e7fe3118e79"], [22, 3, 1, "", "2:6 f1514e494d536e424cc53a6d932b2f0efeae9c0c1c9d38cdff61bcb32368c8be"], [22, 3, 1, "", "6:59 ebc67189c8cb991506019fe72864d2436c9245d633826ceebaf4b8277518858e"], [22, 3, 1, "", "3:6 2849e3f04859c16c3f699d20cb59e697e2d5ea761ef414a8e9f6a4bfebdad8a2"], [22, 3, 1, "", "6:3 a923067c037b043e99981b0ca0ebdb47199c07b67e084d5a7bc220e594b133e1"], [22, 3, 1, "", "6:74 546efd775e9d74760187551b78d221ef19b4646f33a34b4867f7a7f270798d70"], [22, 3, 1, "", "6:58 82e588ccaea063d84f7b82b1242d7802cd1df6d675a27ce6e2bd69459a9c21ab"], [22, 3, 1, "", "3:12 973dbaecfc13fb4ab65e325a94d44a45fc9c953dda41203951b7614d02670864"], [22, 3, 1, "", "6:78 aac5b083447e8a2e273adb8cb2fcc744493827cedc47c65b0b3baedbd7b9743b"], [22, 3, 1, "", "6:96 569bfa594da4cd446bcaad60663a04566c36afc4f5ad3d236f098f50b66fb41d"], [22, 3, 1, "", "6:48 6488fc5972643c8005b9ff665490a63292c4f336c2a0a5236c0539a65816b2d6"], [22, 3, 1, "", "2:9 5856553d7c3dc3037b3f61286c79224e0a36daaa9f1fc4dbb8cfa32293193d99"], [22, 3, 1, "", "6:84 6b0b0bc2f95b49ae5e152da970bce05f896dbf296e9728753d1d673ae72cb4c7"], [22, 3, 1, "", "3:19 b9ab7cd8a6ff174f7370bef719769860ab9bb78d73a887a2d266b10b9f0e356d"], [22, 3, 1, "", "2:39 3318b943515a14fe6dbf55e7ec47613c778490dee645221932ecbb4716e25074"], [22, 3, 1, "", "6:22 dec24d875b5094ddba99326af168b3189c2c89ffe2f65919c91d6df57ae7013a"], [22, 3, 1, "", "2:30 c50b057136169daf940732bafe752d5fe2c443eb42159455d87b433a0de3e55a"], [22, 3, 1, "", "2:19 e80dd4b7ce61eb512368a598539097c63700b957a79797c7632b07f1140b827a"], [22, 3, 1, "", "6:46 676707c30188643f9aee026a919dfa809da219d59e53f2bdc47e3e89d5e5c973"], [22, 3, 1, "", "6:90 a7a2ae8190de32bf5aee8dd116623acd4efd8254bbc6c440a4722d6acb532232"], [22, 3, 1, "", "6:79 330e26cc6685cb1dfa82a84d2178bf60165a81473d6eed85a81862c931f9a731"], [22, 3, 1, "", "3:15 af9ac95087820df12145d4b1bcdc5c2aefdfe7e0661d4ee8ebce4897d946cc54"], [22, 3, 1, "", "6:1 0733340fbfcaed4e1531c4bbd915b1e25c8a7f93c5258f26dc010a4fe224801a"], [22, 3, 1, "", "2:11 6c778d5632db97d3301836bfcb54ed7f9a4bf9ae7f59492ea0edb726e9760040"], [22, 3, 1, "", "4:7 70b221698272f53f393baae8c1c140264a658dcc9849120449671981eb75f27c"], [22, 3, 1, "", "2:54 203ad82032af14af279f43593fcd8fccfc929c8078778a6de310ca6d1f78e9f8"], [22, 3, 1, "", "2:16 71c2ef4eca01d8d2398c416f696fa413d2aa384ac63d110cf9c02fee44394c17"], [22, 3, 1, "", "6:63 526646cd5391985fdbc176a363fbee22aff06d3523b542342418b6e8503f0e22"], [22, 3, 1, "", "6:40 74689e53776dd9f93adcf731cfd28c8cf305612f2ba7174d640713d10f582686"], [22, 3, 1, "", "4:4 9adcd87a7fd208d21fe66dfbd16bfc8617403dbc76b33595031feae169ce3659"], [22, 3, 1, "", "6:71 bde009024b27bfe5ac2165324303983849b296af03f1d09a999b6ea05b2e33f1"], [22, 3, 1, "", "6:5 f9c9598c2dd792f8150bbc7db9744da31f5c54d1398f56477bc718402556dab3"], [22, 3, 1, "", "2:51 eab384e3f2e76b1ac0fe9ec7ac7cf230e58b0f6069105b253a18e5a57cf0f62c"], [22, 3, 1, "", "6:43 13a1275180d2c104a792fff30db7a7ca08c5753e22d660c88f6f8fd5714a2ce6"], [22, 3, 1, "", "2:21 ae9c6921bc2c5d6daea20516afa9d8caa4b58b39286ba4971eebcfd1ab4c0cd8"], [22, 3, 1, "", "2:31 66ba5454612352fff011f2c5f16752b6851b3f672fadb2f8c15fb1c70eddb384"], [22, 3, 1, "", "3:29 dd7bc2c44f433ffd630cffd6c4386dd7fbd5fa2ce7379e469299b9dc5c179d09"], [22, 3, 1, "", "6:66 67e11b06e517777ca3b49bb1108497bbf9f41dd3f7a6c03b9d584e8cd270105d"], [22, 3, 1, "", "6:101 7b85215a3effc40177a6c31907cde3fa3a7d61b57ff6c0c02e88d5e9ba01bd8e"], [22, 3, 1, "", "3:50 32a6c25c6e1124e082617948626bcbb07992d4275f54df0c25e6744748e4d53c"], [22, 3, 1, "", "2:42 6a5c53a38ac6502579f67680736ebeff29b1a0a8a697f84d17e10c795d1d4b7d"], [22, 3, 1, "", "3:3 b18d8bddfde5ee8721d48f3d414b5a55dfb48c98bf03d2412a1ab54ae0f93c30"], [22, 3, 1, "", "2:49 474c0b6fc42aad94745322806f94d0baac7f6f82466ba9b20bb757aeaf8f0245"], [22, 3, 1, "", "6:47 f8723a3646aa5ab3733bf3c732510697a8de3a235b3982cf3dd70d352f129ede"], [22, 3, 1, "", "6:12 6051ca9ecfe04a062d5a946c136ee02de33353f5ed963a07c287899720961af0"], [22, 3, 1, "", "3:32 65c7ca810e8b17133d894175777f2b3b7bc290fcd174dc128bc978c1bbf10464"], [22, 3, 1, "", "2:12 c4cce1e4f4599cca9433e4c7caa01c2370d35e7468cd75c25d05a45d4830868e"], [22, 3, 1, "", "6:77 69715763744f3c7fed67ba5ddc98229c812a0800cf36b28ee12f43fb82bf9a42"], [22, 3, 1, "", "2:14 fca446cea9b227ba6edbbd60b3d07b861687b7e6735b5d9430aad156d0c00cac"], [22, 3, 1, "", "6:68 37e26fff3428ba52d2fe60fe551dfdbf498213a5d36c669cda5b1014a30cad85"], [22, 3, 1, "", "4:6 b32c20afa5097b044cad383b2ddafd39d592f035043bc0e89d5c5fc9036d89a5"], [22, 3, 1, "", "3:22 1b30164bd90c0dbbcb47c87803c0841dfe9d3d772e1a34c7a9ccc4a4933b2c10"], [22, 3, 1, "", "6:26 fbdb2b0ff1c5aa038413a78be7e9a6ff41c0612db0648417cc31a20a682f98a0"], [22, 3, 1, "", "3:30 8e785eaf45c0dfef77ee6ff7b317a82aaf46b49c84f4c2ecdc296ee62568c727"], [22, 3, 1, "", "3:54 8fed0bd1fa0bfbbe3fd11a53d62ef209fd7e09e5b74a6ad1f1b86277f57d1d86"], [22, 3, 1, "", "2:17 688edd3c20f0031139a4a191d039bbc1cb4b3cf4e71953f32e59ca93e9e1eb50"], [22, 3, 1, "", "2:23 00d3c7f7b35c66e24e4a10adce31978ab8ad1bd234a231761dcb86dd442da7b3"], [22, 3, 1, "", "2:33 c9cabad366daa8e46a924d711447aac73dc93e60621905f3877aa65fc1a0724b"], [22, 3, 1, "", "5:1 9aa56a43b546255945ab60a08d9ae4aa90b591af22e8b4c1b7dc0c4f9af83598"], [22, 3, 1, "", "6:51 b5d0949443935576123b18cca27070bb53af6c5002605c2aec5715f19a860365"], [22, 3, 1, "", "6:7 ddd1c8f0bf52f83dc4686954218b0f4cd13dfd720d985efc7e5e7cd1fb987375"], [22, 3, 1, "", "2:24 195eb65f16abf0575d17f2b1be1087b9e206a49ffe16d3ffdef28cd89e788366"], [22, 3, 1, "", "6:52 e676b83659cdf96c2848aaad17275d4f1455977a2a1ec7bd5732238283eb9382"], [22, 3, 1, "", "6:44 f1e4f473dd23e3b9cf44076d9391ecb3e1b4acd8b5e43e81c022030fc8ee42e9"], [22, 3, 1, "", "3:47 39bf09cd84e3badf0caafcecd1fc51f3d0e38645e4d70876f6313e478f238928"], [22, 3, 1, "", "6:37 49ca000ce5a71f5ae340a653f432992078bb8394c14aaba4e946158942b0ea9e"], [22, 3, 1, "", "6:67 6a0bf506b4c1329bf0fd129c93e06a2ee1d0d06fcc05379daa9446f90b84030e"], [22, 3, 1, "", "6:92 4db1070a4a0b985d421c7c4686bb275d07c92be932852e255c6f80818a9a9a35"], [22, 3, 1, "", "2:18 000140bda99fc03cb461ae82fc44f00553e759bdefc4024a743226869bb556d9"], [22, 3, 1, "", "6:83 7bfe1b4191cc568f4965ea2ae5ca690ed51993b7fc4ec6bee03da8ea64653fb7"], [22, 3, 1, "", "6:53 0bf1dd0f944f4720a843ee0ff984ac3d257f69cc6ba1b5214da858e40de1d6c3"], [22, 3, 1, "", "2:44 e08654b77f30bda8b01a6f943f5f80454a4b1b139153afc6307396967f705b66"], [22, 3, 1, "", "2:22 e6f42ea036f99fbe3b1fb90f2cd2e17a9acf5ca1116043eca60f80c79867be2c"], [22, 3, 1, "", "3:13 8c78c768eeb8f1a02a7d182fed23128f8bc7bbf0ddc102ba2da4c71a08098ee9"], [22, 3, 1, "", "6:39 1819eb47223394c7033f3abd693ab921b11aff33067751eb8cd6863b755d3f61"], [22, 3, 1, "", "6:81 ec677f1076b9878644693b68b12fa4f88ab646f06cf6b311b260e4da1befb4b5"], [22, 3, 1, "", "2:20 f24aed54e03e3a739813f0003dfe5ba61269ea0b335234f058a75c2258a3a969"], [22, 3, 1, "", "2:13 e1774f66d7ec71606db10f7d2ea8bb346f4838230ccab723b87cc20531f9c9e8"], [22, 3, 1, "", "6:75 a5590b6dee25c97033f7305a0e6f936e9da7265aea3829f4c2e7c58e4d7884a5"], [22, 3, 1, "", "6:4 f0ad52d5ba7639c36c518c3720cb06c3552839e842057b6d3ee4ba143ab4be1d"], [22, 3, 1, "", "6:86 4e795302ddd133846579329661e9e97b490f86e981444546b66b4dd9022abb89"], [22, 3, 1, "", "2:37 f397d8cf8b8c7c3fbcc901785345c36b908996d3a6bd6464e4e20cc108523a56"], [22, 3, 1, "", "6:95 7f686eb11bcf39ea892c2d0e96ad372bdc601edb69025cd3e0629e638394539d"], [22, 3, 1, "", "3:21 b048851b08b58ee5809efccef3bf5a7a5207344b662eba5162de24e194352b83"], [22, 3, 1, "", "3:11 e94e4fd5d3c8124476595c77485d16348c94894082857326c18e6414d7e2ead0"], [22, 3, 1, "", "6:13 aa67d478f734851497c9592cfcce1e63452ca21e44b8f258ca57c2fd00174c93"], [22, 3, 1, "", "2:45 72049284c54176fc4fb1c1c255561eb7d7942a71235fa68202ca2bb3d8b79613"], [22, 3, 1, "", "2:8 ca8ea0205df206f0258c062e6a5214044e0cea21feb89cea071059c7e56920ea"], [22, 3, 1, "", "6:62 bb3507010c18cd505e9adb4b8c8a562d3ee002bee23c005dfbd3e702c9f232f8"], [22, 3, 1, "", "6:18 d8578c25c7dd2694e72bf1900ec0de0b6ea38280d2f75db22a3f5249f98fb764"], [22, 3, 1, "", "6:85 84a7593ed63e9466545fae000a156e8e448806170dea5f772cb868f68f526def"], [22, 3, 1, "", "6:15 b6a171c627874b9918c71b9cf66fa1fae6c874bb3359b2d6cba89379886281a9"], [22, 3, 1, "", "6:50 27509db5c82720088c62ec3e141b026c1e322a7186cb994b8a0d5e924203e03e"], [22, 3, 1, "", "3:46 5fca7b2b2864b7504bace27cb6390c5d3d01591a0d2cffda65c64fab8cd2c085"], [22, 3, 1, "", "3:17 3e2e8a463e825e0de103643132d6ac576478740d745d5bfada48884bf6a73f0f"], [22, 3, 1, "", "6:72 18a9afceee9c153ebb83180b204571112295c6c883a85c1be27d367890c63aa6"], [22, 3, 1, "", "6:19 53bb50d4c95b2e725abb10288ad64df42968237c86530bd3bee7f867075fab87"], [22, 3, 1, "", "3:49 096c4e463b9f21a7f6f450c919b54b1d2c68b8b6e4496fe0dae2feda9e403c36"], [22, 3, 1, "", "2:35 43358ae1fdf6051cf8ba48651a94f4d6b6e62ab05031e0b0e384a83724822952"], [22, 3, 1, "", "6:69 f672813590c7e0fa2c72a85763bf792b275fbea9cd74a4607794cb8f9ac171f2"], [22, 3, 1, "", "6:27 59854f2b212e191c9c0c639c1bb9caad6bdf38f48c95024fb3a49ae93818cd30"], [22, 3, 1, "", "2:1 5df68e7a28d0bf034a911d0f1ebabc63d83df1f144975513612741de324e087a"], [22, 3, 1, "", "6:9 cd59d75b8786aa2152a00a74d15960f972ee7b9efd9ed6ea6be282ff7bb0393f"], [22, 3, 1, "", "3:28 fde902a0dcf7245891be85fe02b53a36f549f906b5621552b11c7c0e83e5b3ad"], [22, 3, 1, "", "6:82 2a6207f713e77bf4b36f34f67ee44602ec627d4216450a3fd15002b80806184f"], [22, 3, 1, "", "2:25 1d9c72ecb4ac5ea7fc4fc3d2d75b5180c4f4a47db55dce93873e90df42e46743"], [22, 3, 1, "", "6:10 6f383a50f25c7293a36c28b2eb734e84299ba6ad3b35e8d967d2b84845ccebc4"], [22, 3, 1, "", "3:8 853017badc80ef7625757aa8b68a0cbf76baed161093698d90b35416d3ff25a5"], [22, 3, 1, "", "3:51 275c8b1744879cf91aaf7305f7ba2d9a59d6efce2a635c736da0131f3f9880ed"], [22, 3, 1, "", "6:57 7412650a46a74061d81ffa512d2179f23b1edf74b3872464cc7f6b596caaaadd"], [22, 3, 1, "", "5:2 d05a898c3b49c36accca96ad2625158f39bce97c30d6fb95823df4e3533194bd"], [22, 3, 1, "", "6:31 849706ce4bb64a8cb1a45280565a1bd62f3e35ac9862270ec8aabd354c93aa06"], [22, 3, 1, "", "6:100 4eb0f7cb1d0475f4762ea3ac14eea3f50eec51fce9d2cd082fa76a05b372905d"], [22, 3, 1, "", "6:105 2b0d9332d54179fcf153daa53495e5dcc69f8f1fc6183007301ea8d263db458f"], [22, 3, 1, "", "3:23 c1dda665688283c6458e52d3c3a8e7387bab58a818e1c1b871485a8e7d6c068c"], [22, 3, 1, "", "2:5 930299ef90063f38b5762819de8b999c9d6d47c338fb35b2fea53ba6308b392c"], [22, 3, 1, "", "3:44 bb81f4f7bb91b154fff3ff42309dea91e61e5a2ced8910f2543d14f89bf79a19"], [22, 3, 1, "", "6:38 6c39d9fa3aff34c355cc05dcaefa243378bdafc12a5968b7239c801d4ad37d50"], [22, 3, 1, "", "3:10 b49cdf0f2fb74d20d8bf9bd22739caf559f092b37874cc469a1fc11796b0f3d7"], [22, 3, 1, "", "6:104 35723ad98d3805267108e83cb916ccc229ff4ccba59f3dc700de834c2734089b"], [22, 3, 1, "", "6:70 8fece354838a30ef4ea331708e12dc54c63518c2e2b4a4e072f377569a53b15f"], [22, 3, 1, "", "3:26 61b8468e184c14f1902fbd43e6492e9b4640ddad4ae0a33a731901b147214f58"], [22, 3, 1, "", "2:36 db5b765c1b3a6fcb40b42cccb46ae92a512f298b4eca532573060af03314af81"], [22, 3, 1, "", "4:1 4f72ed3d4dc04653669e57b2d2f00cb3b728c967aca05c3d7e142f41c86239fa"], [22, 3, 1, "", "6:21 f5d2a97e84c341b7cc97283f2c6fff644af2eaa3f18136ae71b93c5ee9b56241"], [22, 3, 1, "", "6:30 04477f3988629a5f4ccf3df3153224a68eaecf8351936f7725a41cea78ead3b9"], [22, 3, 1, "", "6:20 229d0d5b05eb5ff42588ebd5ac4c95a095a29d82ff3f26152bebfe73e02bbc3e"], [22, 3, 1, "", "6:106 233f2aa19661d54999f5b48a7b7ceb27a0590d0f09de50a48967716f0de48064"], [22, 3, 1, "", "2:26 408947791758b2ad8dcbc3ecdcf9c5f4c8644d67bdbff00b110458292dce4e83"], [22, 3, 1, "", "6:17 7dd786d9014c1823ba3515b3ea9f68d750d2db96ee522b6f4546aa39d4f678cf"], [22, 3, 1, "", "3:34 8322e0c9269a64e591836ee24ecb8d377ce3093892b78053bacd698ed55a8962"], [22, 3, 1, "", "3:1 1c125d2f970819ac01d209699beabb24a85dcf91316e31ca2e951e98dc4a5f2e"], [22, 3, 1, "", "2:55 94dbd24c5170da391b4fd6bf809cc9f11e71dac5c7534862f9d4dcbae162ccb1"], [22, 3, 1, "", "3:33 1af2a2bba8399300cc1e205f0f7fee9618593ec4a2537211d6ba2bac7ca92379"], [22, 3, 1, "", "2:52 a08b517ccebf64dfb28aba3e871021511369da1be5e56cff2589a3924b3b9d1b"], [22, 3, 1, "", "3:4 4e13d35d1de469cd6adacba64653a8dc3a8a58eb96060d9dc2fa3c06a4248a7f"], [22, 3, 1, "", "2:34 104f0c1ee57173d019b23e0728dc5b6fb9bc04ec70b7666e5348f7dd366b45ed"], [22, 3, 1, "", "6:35 24c8209ffc45df2596e294640bba2aa7b42f5686d8a0e98b7f5df152a82815d5"], [22, 3, 1, "", "2:43 b27ba69adda5e65b3928999f9748285a16bee769d0115e2a1aeb237b6e4dbc3a"], [22, 3, 1, "", "3:9 1a7266235db01fc19f566dc6970836b039c783ca94c394b07d6f46f45a327bae"], [22, 3, 1, "", "6:32 dbbbf92cb2589a9aaaf11ef14b6aeb380d37d5f6b741d4cb2c5b1fa2e5a1aecb"], [22, 3, 1, "", "6:2 26ecf6194c3f105ef5dfdc03e0b71e4a1c8160edb540c06c1056e324e136e1e1"], [22, 3, 1, "", "6:41 27a406335ebbb1fd6b5a75a0757865b493c7c597c042bfc555c7188be7f10991"], [22, 3, 1, "", "3:45 b95cf2362fe2b684e6e861bef2924e960fcd813879dc2455367f8f620a534ff5"], [22, 3, 1, "", "6:99 030b457cddbacd3c66ddde1079b1b179afde8cd0c3147430bfce82fddff4d95e"], [22, 3, 1, "", "2:50 f77f51ab20e49154362e7e30356fa9048d737311587b745a4c109b6adfbd0774"], [22, 3, 1, "", "3:16 71e522755dbc28be6cd7a324a6a6454114e8e0244de6bbff1a5f0cb0ccb88cd2"], [22, 3, 1, "", "1:1 740cfb5bd47f58876ee5586174ee7d3acae1e4bdfac31a402c4461aafee6966f"], [22, 3, 1, "", "6:103 0cb1d7de2f135ef45509098cda1f169336b740fa28b6108348f05ec0f32936ce"], [22, 3, 1, "", "6:16 38de11a4893adbf77df8542f9ecbe28d5ee3b2986a809383ce4e0bf694d0a106"], [22, 3, 1, "", "6:36 e434416bfa8e8dffc8e6c1164cd594db7a1eb893254a271421442b4a889a0d70"], [22, 3, 1, "", "6:102 ba56f2bf9c4b4756691a32ecda47282715bc88ff46cf80ae2f7484635b80aa2c"], [22, 3, 1, "", "3:41 8333e75b01db4b4778f0b23b7e145da87834bc47ac828831f781b14f6b7830c1"], [22, 3, 1, "", "6:65 57584da05d3dc1e8f0c830d364af56f2bb21b7f6a8a932fd90cc629d6f3de8c6"], [22, 3, 1, "", "3:42 3ef2c70df3fbc39e3d8fe5bbe8c0e1adbf015005169243e1455458fed8ded361"]], "13.2.6": [[1, 3, 1, "", "5:3 0600f1f844b645dd649dcfdebecbdc3af837dcba7089013ae17dfc7ba6295fec"], [1, 3, 1, "", "4:9 4ea15c08520b2c2fb958beab6ad0fc324e6aa088b62d5fb1e6931d8d6507bc5d"], [1, 3, 1, "", "2:2 05939963a9001f26e930c1bf9bad738b146dad4bd95c5cbee3e0ef2503896e7b"], [1, 3, 1, "", "2:1 54779685564cfbdb9ff97ae91287f885632bf1e75e9e44af0e3115fe73cdb3e6"], [1, 3, 1, "", "4:8 ae7e1e29c04ecbee336f1381e8308022f3ad0ccb61bd5c5c7c353b7eea560997"], [1, 3, 1, "", "4:10 7fb19964f38021c6916eb50ab245d90c1f006905de59ccc42d0d0f3d1235641f"], [1, 3, 1, "", "4:4 0353cd50793fff24e61d961587929ddeeb5a7f46853756fa4e2d70319d7500a6"], [1, 3, 1, "", "6:1 10a4631db6c550ee4410b3605bb85beb0c3c0dc21dfefb51ce2f0d1b3e42343b"], [1, 3, 1, "", "9:2 02e72f828ebcd6f9f80b9df6af14c28f1e372a5ffb9167e596acda52024560c4"], [1, 3, 1, "", "1:2 31e103c274c243fd0657f6c9fb22d4587184086c9c66befda6643f82b2435479"], [1, 3, 1, "", "4:2 6eb5a07a373ecc60dd23324335a8b659caf2269885af5c3585f4df1c13ca727c"], [1, 3, 1, "", "8:2 aad978ad1b9b2134fb756fc3db820f6b58d2638aa0c07cf0f6910e996e04b5df"], [1, 3, 1, "", "9:1 515473b5a7edc71b0872a2f78ed4aac163ef1b1fd6716ca8b8a8a87717e85105"], [1, 3, 1, "", "7:3 1c20d78c53465204598d099ba8c270f12e905456c6b799086d88a295046e6b7f"], [1, 3, 1, "", "8:1 b264d167b04d1f62c99717023640f39c72ae2c165f8c8802648308cf461c78db"], [1, 3, 1, "", "6:2 fdb84e96608c3986056b7d198e88ed046825e6c72eff37d9b7ad5d107635d528"], [1, 3, 1, "", "5:2 089ca2eda0df3b0c76c2d4a1e66e7b57615201c37cb7791d3217d9bf7b581da9"], [1, 3, 1, "", "10:2 68ed1d8594d8c5b565c9c3ba1dad3e246f93c1b2b85a0620b07350282ecfb68d"], [1, 3, 1, "", "7:1 b9f69058d6cf44ac40747cbd7dd38c8689c1de672c433b6fd76c37a59413c0a8"], [1, 3, 1, "", "5:1 6321fe23e29ea0ad41b3c85bedafbf9ef00aee8ccef4be33847faf98c00dcc83"], [1, 3, 1, "", "4:7 b0db32db9b79b0e6ad02182b8befad2a9aa177097a1fa014a59781f5686d36a2"], [1, 3, 1, "", "4:6 60ae8311dc7a096a8d78ddf2ae480d5cd77d966a20facb0ce94dcea8d1eab84e"], [1, 3, 1, "", "10:5 7a8578b15d438d33bfe5ea2e9b8441da5cd13f514c196d3711fda2f876d4e701"], [1, 3, 1, "", "4:11 e9be1b611b17fb0d613033d31855e2094fd26b9bbc43a9b80f8182da2e833906"], [1, 3, 1, "", "11:2 0a18a601c320e54cccbb64a16e0ff23f67f5a8c9ee5e3fced2951001ef7cfd88"], [1, 3, 1, "", "12:2 34849743163e54f2380ebe33f0c44562d6903c45fbcb2d17d9b42cde2c5d27f4"], [1, 3, 1, "", "10:3 9865aff343470dc6f503617f53b6b0518ff23e429de527be62858ede954a50ad"], [1, 3, 1, "", "4:3 d9db9f413583821ddb835f34a03fd02f2a1d38f6eab189bb99008475e2400f3f"], [1, 3, 1, "", "10:1 d11ddb1c212025856ed6074fd11d79b465db9c57c2818f14597a4a2b51ef0028"], [1, 3, 1, "", "7:2 bae500fd492b5390f081b17a3c19a753b385115b83d2678de450e7fc08802073"], [1, 3, 1, "", "3:1 fa8489539e2aa3b8aa9a16e4531a9c0f7e082581000b26430071b5fe8bddd791"], [1, 3, 1, "", "4:12 fdf51bc6996e603cffe22c0b534103b20e91952afdf7739053ad88ccbdc56f61"], [1, 3, 1, "", "12:1 15b90a46b8d8e960e0c5c083b1de7c180ee05c88e6844587b34798d179ad1ee6"], [1, 3, 1, "", "3:2 35ac008e660d6499f218d0c11b1c822a4fda466a0469f3424a0c9aa028f72ea6"], [1, 3, 1, "", "1:1 61437013bccd601dda4663fa8275e8def835508d51f858d4584acb2816792d24"], [1, 3, 1, "", "11:1 10eda6760b60f8b3456de8229a6557a58fb131d2fbbdb50e40f210219814c453"], [1, 3, 1, "", "10:4 41b882e78b95a2fd3d2d109426bb31a61f34606a58d041b2592a662c22c5305b"], [1, 3, 1, "", "4:5 eef115065e6c96a05b7ae0eb410b3b05418ce07352bb23ed9baaf23d7f5d5450"], [1, 3, 1, "", "4:1 8f57b8472dff4cd91f355578e5c3bfa9096c22950b9766df341e266371a1a946"]], "20.1": [[17, 3, 1, "", "1:8 5ab36e5b8b233c50fbb634f2ddb85db4a65676e58884c4e545002ad8ae792716"], [17, 3, 1, "", "2:9 3cdc79fac2c5194ed7084ae18321fb32b4db88a78ed80cc4f4432b4894648505"], [17, 3, 1, "", "1:3 0e475930b62b5e6e2c4eaa5d954c01002c3918fb1243f5ffd3b8b5959e5350f0"], [17, 3, 1, "", "2:1 9be00a29faba4cce56b85af749378910166a176caaf783feb7f21917b113f4fc"], [17, 3, 1, "", "1:2 260a8af1053ab13b37c8171151aec029a2b0049a4db4d2fa4c072391caa7c788"], [17, 3, 1, "", "1:9 7e4c3dc1c34fcadf4bb70df2a2ca55cb16019fe78a19c5f625a3407c7f23de0c"], [17, 3, 1, "", "2:2 0afa98bdb2bc52d07887d1af628eba5846e5110da9bf813ba1906139eba01c98"], [17, 3, 1, "", "1:5 a7305e4a6c0db284c01d3b766c9526e183f139d0d6b3417b05a0a25448deb2e1"], [17, 3, 1, "", "1:4 e16b11f619d14521da5d28556e2228fd055de524ae57da0397dc5fb7f244b522"], [17, 3, 1, "", "1:11 3a94c395e86b915f016782c8e832229ac77ff7d26c4468f604f4d1346d410385"], [17, 3, 1, "", "1:10 ae189445a188e528fc320b0716648ea260e44624143f233a7a3d6594c319fc71"], [17, 3, 1, "", "1:14 6d1e723dc52e63b247ff2a9f36fd2a2448c78a8a6c0785d9bc962cbf164a68ff"], [17, 3, 1, "", "1:7 db57f38586128d0f797f87a3bec37a62e9bc1ffe1a0b5b3634c97bbbd3c3a923"], [17, 3, 1, "", "1:1 142bdc43ec20b9deed884f97e167a2a47e1cd8cab76ba4b6a81e5b3ec56b69ea"], [17, 3, 1, "", "2:6 decb59aaa3220c66f8fa18342f46b9dbbd8d79ae738262d7cc8d3276f0d6f871"], [17, 3, 1, "", "2:7 8cb8cbde345ddbe65efa4ff3d8e5aa2db38eaa6626cdd39220f0a691c264783d"], [17, 3, 1, "", "2:3 43358f7409e5fcf8e712e18e535f05897041a0c7ee20dc9c07eaae0a6a5b463c"], [17, 3, 1, "", "1:13 a397be8475f298d03d342d1d7922a7addc7c4e01708dbc748271e89ff6e4e91a"], [17, 3, 1, "", "2:15 e542a9b407077073772387ef8c3ca43d8afb0cf939f1285a5c47b7d07ad1979d"], [17, 3, 1, "", "1:12 10fac2b91182e4a802d41382e138eeea01e0169f14fd98576dec0541757d3d52"], [17, 3, 1, "", "1:6 161fa80b65b3bb28682283f1c7ce7e3a51f7a9079bdddfee8bdfed439ff215e1"], [17, 3, 1, "", "2:12 ea5e5013c9fbf8d7b889cd0fe21718fb395b30a9d7cd9f10b911a150dc32decd"], [17, 3, 1, "", "2:11 ada08a290b60070c6aae793052fba60f6404e5668f5da364e16a178044452d6a"], [17, 3, 1, "", "2:8 e94a58c9be4a3e503fe157cfb77e90b5e89fe37b134ffb1f6f08c47bd52ea5f9"], [17, 3, 1, "", "2:5 cc21d8251493e001ac2bf6dc3b6d9869a4525b75ff8bdd4a6b96569f649bd5a7"], [17, 3, 1, "", "2:13 e9e82608e910aea5e4b9b881e3bbc4f832130dd93a971ad1d979ae6b3be81ba8"], [17, 3, 1, "", "2:10 44e5e09eadfa0ef32f2aa42f5d86aefc29a08264af8ea9678ec830ac5d0d919c"], [17, 3, 1, "", "2:4 fb90822182dbef1ad0b6848a7d2b4784a72127a44df216ec0a2fc1e4f586298c"], [17, 3, 1, "", "2:14 31f297fdd3706a0010aae6400f9a4d0d7368160c1aebd8e60699f9e9fbdf2639"]], "12": [[9, 3, 1, "", "3:7 a8831e92d9d0bfcb4b315dbcc507de27e5867c90165c66bf816329d11fcff100"], [9, 3, 1, "", "2:6 533a4ad543c2a168ed772a1a1f3a17b837f984e04ed0006caca9e6af274aa8e0"], [9, 3, 1, "", "1:15 835447fa3ddfa7c5fd06897805b57986740381f9ecf8daf09fa6e6d1acb24377"], [9, 3, 1, "", "1:8 b76e6307e1cd2582b525354a84e5bc604d7d52679124f2807619890557dd350d"], [9, 3, 1, "", "2:1 64e83b1f5bdc0de2f6c5804ed902cd3cc1013057056ba936ee008c9f9fc6008f"], [9, 3, 1, "", "1:18 a39d6db0400cfba65a04cbc96b9586a37ef6f64de62ec283e56c4de6319823e9"], [9, 3, 1, "", "1:11 043b0fbba2086316df6f3152903a683a0584cc386e2b3f477ef71e328a293e4f"], [9, 3, 1, "", "3:1 6d430096779c94fd8eb3ddbedf7572aa28ac912896c0110048a311cdd9df5966"], [9, 3, 1, "", "2:7 3576fed5bb35f8d7f0dcbe136a5bc4184204ac3439c7f928a393292885b06fad"], [9, 3, 1, "", "1:13 ca1335fd71570adbb1aed7643857b961a8bb6086fb3b9f64925800c41ef14658"], [9, 3, 1, "", "1:29 3b21edfd98bd965b39de9b1be51cfe7cdc970789869e291378de930efadaf432"], [9, 3, 1, "", "1:32 b3ee8fb45410449e2ca276e3d66abc693b38dadb5e9e8ef1ceb39a221e3723a7"], [9, 3, 1, "", "1:24 b515a8d6e6d86a8e289e2b7aa5bc1159cfbf1cab572c45f0cdeb32a01bbe3f39"], [9, 3, 1, "", "1:21 b7abdeea8907fa3d7ecf4b6fab76bcf830d7e3beb440f7d181e32c35eaeed83f"], [9, 3, 1, "", "4:7 5e02e16f6c0da4bb4819ffb8a5e26e721a99432cf64b2e762ed419f7ad104c14"], [9, 3, 1, "", "1:16 65063a7df97c072c5bd36c4029e9de91a88b81719d83ee267e7c338688871249"], [9, 3, 1, "", "3:3 f7ffa174a2e33bf090afe2aaf7920f3cbd827290f14b80321f47c88133659631"], [9, 3, 1, "", "3:4 6233c170bc63c0936a92c1690c890775856ddd72117eac1e21fe2d129e41e462"], [9, 3, 1, "", "1:17 b181eee5f3b1e0741189576664df8a3753448934eca0622dc2324ff23f54a85a"], [9, 3, 1, "", "3:6 63142cba165b2178690155f575392011f1134c14184e81e36820ddb73cae4f92"], [9, 3, 1, "", "1:37 d94acf91ab922f3d4fab3151db5a559875aa4416a0b81a8c40460f9a8bb91bce"], [9, 3, 1, "", "1:40 cec64b26b4879d9cbe5f17b1fa6120340dc8781525f1a5bbfefca47d239ab328"], [9, 3, 1, "", "1:34 6a6f41cc694f562b1d6e82c8572ce7bf5293074d57b9ac4fa2295fca68a9c3b4"], [9, 3, 1, "", "4:1 d1612a32235e7d6f04d58b8aa1fd91f9a6a088559668f8ef79b51f4827cf4564"], [9, 3, 1, "", "2:4 1e4a1f1e63e1773a0421a5334c9e37808a94b3c0b255ce7c0595282179fb59fe"], [9, 3, 1, "", "3:8 971129d56022b37c66ec71073289a4dedfa09aa435ddc1c7cae97b1a9d1eaf7a"], [9, 3, 1, "", "1:2 a9b102aea4ead34bd9a1dfb0ee5d0b12b91ec2b099a59d0a4320521f772835eb"], [9, 3, 1, "", "4:10 c87ac00ad30f5b3d158b3eefc327e17f8c53e5f2a7004df7dc4efb8f5c1a2210"], [9, 3, 1, "", "2:2 a0586577beb2f969d6d4e05e56e5fd16a92fddb05d3708fbc5f6e39bb85718a5"], [9, 3, 1, "", "1:28 b74efa68baa45a61d2fc231677ac14b4c52bf157f20599fd69f77c0e64bb0c52"], [9, 3, 1, "", "4:3 639ff9a5038d7adda9b3bba839e6ae21c85e388acb2f212f48ea6695f318c6f2"], [9, 3, 1, "", "1:7 7dd9f9ccb26b4083d870e727d44fd7cb36573bf661c6ab932ad22dc96e4b6afb"], [9, 3, 1, "", "1:31 c3b9ce106b0b3bf0edb649f3ad7591f172990a957c1509351873ac6bc8e2ff33"], [9, 3, 1, "", "1:35 34dda9625c7e9e6e463b2eb14643e6643f51c44406e3f2549783a1297f60000e"], [9, 3, 1, "", "1:22 3aa8b3cd82401a8ea45d3df4769bb90080dd5fec794696e299c905bf6ef1f6e9"], [9, 3, 1, "", "3:5 ab86084835389c5804317b18cc5a85c36e5c031018783e0555e6ba607799deea"], [9, 3, 1, "", "1:38 100a96f35cd7e62ed2a2f4d2e022d3849f148e226cee8eb17737c46aed7f6e4d"], [9, 3, 1, "", "1:4 59bebc9aaade7a8e216d5acd0230c4a561df1b66eb30289c51eac737ae0037fa"], [9, 3, 1, "", "4:8 a93335cddb2ff0f239fd61961f0f4b84cf8c28eda2aab38546504a0036037239"], [9, 3, 1, "", "1:20 9d983e5bcc9005a2002c87f988931d048bb50221b71831ddf7af2d550d53e90a"], [9, 3, 1, "", "4:4 af4df9b3ddac7de4a5237a0d32e24c6c2da88af6502df4979d83552fec77309d"], [9, 3, 1, "", "3:2 b62123e2e8e883a4568f6e6c0ef85ad81748d23d32d49acc747eb1cfa2e22455"], [9, 3, 1, "", "4:15 139fbdc2aef75a36c1a73ea55319255892f7fac16e00d0f5da5ab0e832366b16"], [9, 3, 1, "", "3:10 a874a0d306f839d2ffcec82a884d903ffe0ebbadaca947ebaaca90dbad22f79d"], [9, 3, 1, "", "4:2 debb7f2966e0cb74a4f4216168dd052c70fd3d6a8c27fb2f3aa0c7fe47f76a98"], [9, 3, 1, "", "1:42 a1c9458d5c17521a96ffec4d47ed6083ff2d3bff11ccd1eb479f8cf0b126b77e"], [9, 3, 1, "", "4:12 9b6af5832d05ba38ea6da1de3aaaf043a9e42d0142f7294124fcbf2f0d95c818"], [9, 3, 1, "", "4:11 7a2547656618d6f84add7a3e50e946935bb92bd29224f1ee7a67bf7953e55b77"], [9, 3, 1, "", "4:14 07a280c09abe97494fb7a02a246eb3eecf3c280c763026b64c83005f8cace2fa"], [9, 3, 1, "", "1:25 dd989d910fcd0e9ef31de45877c6e06dccab6c17811741cfdcd8e3232a058440"], [9, 3, 1, "", "1:41 23631de104768741b7048e7d01c59e1fffcba54b9dcef1ed7c615bb826fd202d"], [9, 3, 1, "", "1:12 54f245efbc506709a192db34e53895d362594afb8f4ee96986ce6afca49b04d9"], [9, 3, 1, "", "1:3 090ffb52196f4e68695b1c484beb6bd8507d06d2f679ee8177decd8b6b34ca79"], [9, 3, 1, "", "1:33 3d225966adb08cb1aa29f3b24fe23f01e25214e9792f5d98b64e003b5304cda7"], [9, 3, 1, "", "1:14 05c11421678358c4279fc92f0982a56f16c452fb5b5d3c38d3ec77f99e14ca97"], [9, 3, 1, "", "1:30 a279226de7f4deabad4cad0f5ccc01b808665fe0b792c1440cd28ea0dee6a1af"], [9, 3, 1, "", "1:23 81cb87c32bbae85869876f23d65d0f1dfe05101ef4b92401e5bf21fcb3be05c2"], [9, 3, 1, "", "1:1 94863fbf1d8fdb0023847e7bb69f0c04a488fd3b0541bc6a43dfa580ab0d16ae"], [9, 3, 1, "", "3:11 4b7b540224edea54abc7c76442e8f3bcd837894f2694c4da61a31aa02132aff1"], [9, 3, 1, "", "1:9 d022534e05abd6632faed1f9a99e08afd782e729b0e5c46a046e8fec4761e6f9"], [9, 3, 1, "", "1:26 7e2a62316333f93e684c2cbdd31ae2f2247a93882350929bb5794b9012585c4a"], [9, 3, 1, "", "3:9 c8fdfaaca0e4c05cb61bbb042227c630e92a1a4a039e0f4d8a3c100941ff6a07"], [9, 3, 1, "", "4:9 c2a32969042fbf3a990f2fbb15ccc7cec1c1fbbec38d11829756846543bea7b7"], [9, 3, 1, "", "2:3 da1b8b29d9f0346fe7bd1d1c75f892569c746af9b54e1f7900d588a7e22887ac"], [9, 3, 1, "", "1:43 42dcf2a32ea53ad56eb6ea1adf717442e8315af52daa703ab41a67eda8007371"], [9, 3, 1, "", "1:10 4159da8372c73ecd16af81e45a142b09a10de3d7f3881a9c6c554040938dbb10"], [9, 3, 1, "", "4:6 91bce3d2e51c484c884932370ea99b161b0bf86288418a7b19cdaf1ab3ce5812"], [9, 3, 1, "", "1:27 1e8333574e56710e3d837173743f166a40ae1198a9bbe2db35bb65a9387efbd7"], [9, 3, 1, "", "1:6 09faa28093efe5bea8695465a1b6ccf9dd591a83377126e6f7ca32bffc783f0a"], [9, 3, 1, "", "4:5 d89280e4cf06cc3484d31ca3e0ae0d2e71ffb5073be76a1508c6a15273bb4b3d"], [9, 3, 1, "", "1:39 3aeb3e42c07a42c3929a4700140366be5e8244d1bdc00cdc7204c4793592efd7"], [9, 3, 1, "", "1:19 03a4ce65a6524d90af458d25675d8237300b3ed290fccc708255707b27a42460"], [9, 3, 1, "", "1:36 560df02838ca1936d23bf28b88e4da6c469ed343b26bfb566756052758e64639"], [9, 3, 1, "", "2:5 d294be65a9a865ac01935be20857d638bd76b15bd0cadf121963475263530947"], [9, 3, 1, "", "4:13 55339f55c4a3fa7c05dfb3379cd23dd3de7da6d00309d6c5af63eb38de6204bf"], [9, 3, 1, "", "1:5 ebd86684687d8a3b3d796280d1bd02eb718235e578e2e90f8b1ccf6fb6b90a97"]], "6.12": [[5, 3, 1, "", "2:4 9ada46e3cc4d5e3179d0ad40beda5055f1e03a4f8731a1ecf6c42063c4503ee1"], [5, 3, 1, "", "1:18 aa1779e54177d30714ce6dae0a7fc956dc3b6e27c0f0422515c3d30df32a45bc"], [5, 3, 1, "", "2:3 36804ef275767c0c846a921ac7826f0d024dc92fd5693a049479ead63e9490a6"], [5, 3, 1, "", "1:5 61df60b38a66043dc01ecc6700a991327fa2f1ae0e9956c368653828fb4c6685"], [5, 3, 1, "", "1:22 19955cb453cc6cf5333d430e4649c62d88c743b44f789cba8886ce1f291ca495"], [5, 3, 1, "", "1:8 5333d55aedef513667c5227237c6c2a2adbd384fda536234b46d3238ddb494f8"], [5, 3, 1, "", "1:3 8d062365937975e8505f2c4e8e71c063108ae0722d02b6e99040c29ba6a8b853"], [5, 3, 1, "", "1:7 5f9d8fc40d9881ee619a29f2d12ea46e15940dbea1dab46b859e16c018bdf547"], [5, 3, 1, "", "1:13 38706558f72979bd6e46834b20227eb0f154f24ae7c7fa6fccb6727f4278cb32"], [5, 3, 1, "", "1:20 21e3d01dda11c45adff76b28fcfb3083d76d12ffc5536f575f6eaefd9962ae71"], [5, 3, 1, "", "2:1 a8dec600a3fcacac3a907b723f1e6e0ef585b3dbe889172b859c029da1de0581"], [5, 3, 1, "", "1:6 3a26c47d58ffafc12d34d0e615b69f369100b0cf9292a10271dc8a2e63d46bbc"], [5, 3, 1, "", "3:2 777488d40bccbd5d4ec5c05ce041d775c3d195be15b1cd42fb0d35138547bc6a"], [5, 3, 1, "", "2:10 9cdea4f035eb5b139ec0b8eceecfc6fa294487f2903175a7fd559ca0904fa094"], [5, 3, 1, "", "1:12 e14331b5d1cbd3e0f3378e15c0cce322ecaa54746e2b6f14e67474f2bbf79690"], [5, 3, 1, "", "1:1 f8b54840ba0a9bb18d7f74ba88d9fb7a76db616cf3848b13c77fd6bc923701a0"], [5, 3, 1, "", "1:15 152ad98752862cbd3b4a4829db29e14e79ac33a18e63ea368a29290d48097015"], [5, 3, 1, "", "2:8 54e3d591b1294cdbbf43cb074a59a53292fb8519cd37ac21987259502e5da2bf"], [5, 3, 1, "", "3:3 dca568771ca28709d249eaa1b082ab978e3cd7765e42472fb5c2b00252ae3012"], [5, 3, 1, "", "1:16 cd3a096fadfa9a4e5c2bf1ff1d1b22e0e9058b1df938efd918cd58c66c1af587"], [5, 3, 1, "", "1:21 7effb599da8a3c1baea1c8701cccf41ab42404559a391e8c14c3665b26623a7c"], [5, 3, 1, "", "3:4 c72dd70b545db5369eb5c425b305a6a868aad21e7c1997c31e69af6975750d4f"], [5, 3, 1, "", "1:2 d99e0d245e03cdc2b926d8014cd2b42ff87a1095bd6dd4175f847952a046340e"], [5, 3, 1, "", "2:2 b1d01bd6bc611a104ed47aad0a7282f80b9aa5f9bb093b1e51119b4ff86dae42"], [5, 3, 1, "", "2:5 d3f3ff24facae2599e2bfe9babbd32657f2c52c856044b7f244f1fe481811850"], [5, 3, 1, "", "1:19 1359026ad0e5317d916d695218c4b4f58af2d7ec820416374aeced27f0bba34c"], [5, 3, 1, "", "2:7 aaba36795e60e7bef85ccd9bf0d7e230e951f9c1837db93c32c16f9aef11c013"], [5, 3, 1, "", "1:17 7064baa76ad2b7cbe4bf45037a3d3a43376b5c398589deb730e98f37e190aaff"], [5, 3, 1, "", "2:9 53271a5cc42f29777704b151c3231d90079f079f210d3dd483396e84a958bd3e"], [5, 3, 1, "", "1:4 0b5c13f46066bd32a398d531e6264e5a6f809db983a611e3b694af48b4280a92"], [5, 3, 1, "", "1:10 b0ba0abc763fe3595f7902c3a252eac21df8a5f5bf2a14ef0b827112e4d41245"], [5, 3, 1, "", "1:11 74ee6d22351bd3883e14871ea5fc6ceb29be66276f677bc4fc2b0d3141e6b575"], [5, 3, 1, "", "3:1 2f56593b719e88f913b2a91877bab40c8b6058fe2dc42ffa731142a4cc44b6b9"], [5, 3, 1, "", "2:6 a1dc6e9d768d9a58470a5b62a7f98741aebb317dd18c04561c5a42d074b864d6"], [5, 3, 1, "", "1:9 a2d1bdfa5553f148730d494403a917fe4ce046b63677f155ef67f743ee36cbcd"], [5, 3, 1, "", "1:14 aaafe3497cbeb87d20c2bce064dab71452f99fde846c3016a7adfde5bf68d2c6"]], "11": [[11, 3, 1, "", "2:4 428b016d82301c34cac20a058d8e9f87628abcd977fc4d1ff1557bc1bf2d24f8"], [11, 3, 1, "", "2:7 f3fb2ce2caeb76b89e224e1c88594d2dc95ddc66e180f8cb6d50b428f01eedcf"], [11, 3, 1, "", "2:6 aa4594177b713ab6ee2d502e2c0f20256ac5a5e546fab64bcc52db72ee407c5d"], [11, 3, 1, "", "2:9 31bad81c5be19c117a8675a891a00247edb13fe1ab49a36e1f439da9b3123b6f"], [11, 3, 1, "", "1:4 3a7e9191eb41e4bba88408faba2f7f149137b7df440996588e945fad99c82867"], [11, 3, 1, "", "2:13 1a07917d9eeb24596f2800e26f4930f6ecc94fc0027f33f7cce840c026ee28a5"], [11, 3, 1, "", "2:15 bc54fae0d59dee07617ca65931de1869df56a18c8afe575dcc287c8d2d9305ed"], [11, 3, 1, "", "1:7 79f486e433c0cc3589e42f1efbdc6df12866131778c2b136b5be7d27ff1b67ec"], [11, 3, 1, "", "1:6 90514614f2da8202c20d849b7c71d72ae95423a582d7fcb612d03343c5ce1b8a"], [11, 3, 1, "", "2:10 fe5486ca02f9ffadaed847c11ea13af8afba0eb18ea38527ec5b8cc5d45cbf83"], [11, 3, 1, "", "1:15 0bff693cd5c7bd24006d97966faf22d8ad51776dd27b155aa3c4c53705f1e230"], [11, 3, 1, "", "1:16 3a1f51af690831f150b9917ff7ed785fc0ad8572bfdb024cbbe419e2b1536063"], [11, 3, 1, "", "1:12 bd35a79daaebf148b48f637a939718b4e78fe6d95ec05e092dabf33c372e5045"], [11, 3, 1, "", "2:8 0b6f276c677931c78d760ff5def7e67a7e4cbd817e1f21f0343edb674c80e0b4"], [11, 3, 1, "", "1:9 cbf8117eb6e59dd31ff3217f236513679c4236d8d108c4451693dfdeb766d3d2"], [11, 3, 1, "", "1:1 f593f63f6406327889e137ab55ec05d98a6d439176ec14afafae261241a14f1c"], [11, 3, 1, "", "1:3 9763aff40d5e4ca431a133884a391a71d1e3434b2dd8e6ab1c928ba846346526"], [11, 3, 1, "", "2:3 f18161b732608a6732ea2886b4c609dc56b7dde6df16c57cf321542c887aa1d8"], [11, 3, 1, "", "1:17 a69a7eba188277ac25d75030529f9289094778fd2d87d38a1ed7ab9c1871938e"], [11, 3, 1, "", "2:12 2928f339f8abfbe9b10de44c5ab57f730fdc2e7881dc3cce685844a2ada75373"], [11, 3, 1, "", "1:5 46b1fe27e9a10a5a463205624c88ba78b4851fbf47c3d1e31d45026df49b1774"], [11, 3, 1, "", "2:14 dc51b8a6f90c2e32e2ec099057c7d4745f9082e4521e0f0cb64ba03ac87c95ed"], [11, 3, 1, "", "2:5 7e921c53c7799271e80ccbadf2d47a340d1ef1bd9326fe4e2bdf54e5dcf2d127"], [11, 3, 1, "", "1:11 16c8bf3ad79c585e2a19ab5043608ba5cdfbe59b334ba09913fe7cb101ef98a0"], [11, 3, 1, "", "2:11 43150bf6a5f61f75ca365a77174d7d659f67e1c8cd00dcd74b3f72cdc7282045"], [11, 3, 1, "", "1:2 1452e1e4d864f7a4178e6f1be77e9694766805cd6a0556f67f5314caf0a5d8de"], [11, 3, 1, "", "1:8 6b6dac78cb7d28fe378157a5827ca98ef8996833871c9acbbad28e04b8781132"], [11, 3, 1, "", "2:2 5f1a4f88e1dd9fd77d93c773080c7b2e8fa3179f7d8e4de72e39d0ff16a2a387"], [11, 3, 1, "", "1:14 881eb7081d32bca6dd31a402732083c1a10cfbb0703d65d4903481c9df0fa6cc"], [11, 3, 1, "", "2:1 235dcfef5a150c402f42c33dd6eabd7189375ddb2bb8e3cd3cc162fe22a53e9a"], [11, 3, 1, "", "1:10 35936abe2e47a3f84e6b97c5b8773f0e57035b2a2311e2ec92b001e91f057096"], [11, 3, 1, "", "1:13 8e6a64bbe4e6692fa29ab6cab825bed32aa92944541ab8b3cab95f46ec47ae1a"]], "6.5": [[5, 3, 1, "", "9:18 396f1dee7838cc8110a77448ca183590ed2da360fcdd48a9599d4e23f138ce39"], [5, 3, 1, "", "6:15 5b928c6c679fee56921ceea7439472b9fab36f828c42e529bf0fc44e4a8b12f5"], [5, 3, 1, "", "3:8 c3d4fd6b18a382defd7363f2c15d2f5d8517d65814a943df98884ccd5012b7e8"], [5, 3, 1, "", "7:26 ffdd939b68f5c1dc9c76bb481300346a0b76d4c1af150b24ba7a6ca40f85db37"], [5, 3, 1, "", "9:40 9a2b0468c8e7cdc699fcfa7a332ef5975090219a757acb354082c5759aa87e60"], [5, 3, 1, "", "7:31 0575886e7dc22f4c493b7d181fe07b8cadec4b14adea5fce90f5cded24a50f61"], [5, 3, 1, "", "1:10 6810afff37cb3b81e7cd6abfaa7a09a39cfbdebe5848533ec338be7f0901bc2b"], [5, 3, 1, "", "6:34 26b785a04cf74035de814d871a9df90c21744413f8775bf806fd138b7504702f"], [5, 3, 1, "", "5:17 a801683b49252019ce410e48c11333d669a2e57b9117c6704ffc4f631d98c802"], [5, 3, 1, "", "6:38 9ba04ea8d40c1a25a4642aed3c24bc53d56619c51958bd4387bf76dbd994ca14"], [5, 3, 1, "", "6:6 303e9f2d1f84be7d40c47e5d8f5742d86856b0d3b15cc3324195a698e9ee7c0f"], [5, 3, 1, "", "1:11 1cc271961169e83839a3e42a346dc67fba7f62ac7404861842da4b59e53a7e2d"], [5, 3, 1, "", "11:1 70304690f3abce9b70d5806e3646fd86c7c669ed6507cbc1f0f0b1d1983dd3f7"], [5, 3, 1, "", "5:14 40ba6bc4bf5bc64bbf7bdfb7c5bb2be20c50a808893a34a661e9d1453659455f"], [5, 3, 1, "", "4:5 f58980cc43c3a695e066d1fb882e84d2936c9fc0a9199a672a18e2c278af8165"], [5, 3, 1, "", "9:20 d8ec489d2055064a9c810698a96bc12deed753405290de3c55392e43eff72d30"], [5, 3, 1, "", "6:1 84a0bfe9ca4706b367c7fc61ce97d41de1f5b9c8fa6d17d06583fd15bddd1fd3"], [5, 3, 1, "", "8:2 d94febcd9c5097860d17e1a524ae04bbe93e6476a617726293f8e7d45f048f81"], [5, 3, 1, "", "5:27 45d80850a6d4d455e0d832ccecc3f62d2cebab16d21c41babb61a0500e491507"], [5, 3, 1, "", "11:40 0806ce2c7ef3707033cfa5b0c4f583a19e24558b3c3b42048aca9c6e131fef0c"], [5, 3, 1, "", "6:12 b7308da6bd3cbce68c8acf223b36da8dd80bd6349300ea6f5c635c5ab44eb79c"], [5, 3, 1, "", "9:39 cf0883805fa9cbc536249406066344fd3512a61fe348e9ec8f75c8e8cbbc8eed"], [5, 3, 1, "", "6:39 df76cca7b83071a4072c0bcd99560eedf1d831230c5514f371df536f276f60e9"], [5, 3, 1, "", "11:27 1fd0c33fcf586183d361b779dea413543663438cc02e17959b72a5b104af731e"], [5, 3, 1, "", "9:5 1b349b69479fd61dce438f778290ce16b45e72d4c44dd1a9f605af212796f764"], [5, 3, 1, "", "11:32 6ba71a563b4c7010ec0c5df34108f6d4be2d539e8294c8a15ed716d562e407e6"], [5, 3, 1, "", "11:24 065720bf3f5046e1a242276446af69db0ba393444e5344baaeb4cd2e1088e8b0"], [5, 3, 1, "", "7:23 e9d81054725f03fed4f879928978ad1c981033f08f7d0018ee97c430cd1526ed"], [5, 3, 1, "", "9:30 c47cb1a6295e9bfd6516ee9f54f81aafec671f38da5ad88d0c01a2743ab90e9b"], [5, 3, 1, "", "9:31 f8e6dfe7b18b50b332b93228d1d885af358ace7b20fece76abe84f5660f81caf"], [5, 3, 1, "", "1:3 261951477abf29bed5f7eb4f51a58054ed4ae09b35694119c21e87ee4065a98d"], [5, 3, 1, "", "9:14 818a6891c0695d400a9db754d972f1d65cd093ada81f3bd44f277b2b0e5234a6"], [5, 3, 1, "", "1:6 2792319b815169dc152f1374d64261936a99a61506e3b030876c5e0a4cdb807b"], [5, 3, 1, "", "5:22 17701cdba21c6e0baca8f595115ec320e5814b7d0382db5afd011e4815284d9d"], [5, 3, 1, "", "5:8 ff004ef562c5a5b41f9f7107ffdbbeaec5b9a4f9e5dbfae68f63162161d2e595"], [5, 3, 1, "", "5:28 64f326ea0a4ae3117a4678bc9f29eb8da3ffea2053d4d4b342158d5de10d3751"], [5, 3, 1, "", "11:16 8a1c5e8aff333bdd76805412a401b56a8739e72e836998f4afa79603949e1a38"], [5, 3, 1, "", "11:41 c08b0dd87b65f9c8d1e7245b1b012c81c36b63b6cfb73c7bf7358d25c8f631d1"], [5, 3, 1, "", "7:38 9047368a8239de0933ecc3949594279fa3de51e000bd4842cb09bdbb2abea448"], [5, 3, 1, "", "7:17 4246d899aae58ccec5761931073223131d6bb1fdfbead0fe71e27bac795785dd"], [5, 3, 1, "", "9:17 edc3242e28a7c7e5671e8adbfab3bddbe1e8257ccc33dc32169afef9f7c9bf40"], [5, 3, 1, "", "11:36 bfddbb63f9a240dbc5964993135fe01a4dfb1607c75a64ff2ca7950a0555e74d"], [5, 3, 1, "", "2:13 b22770ba76b69e3248df639840e98bc59ca865e515da69cc327b84d83d318b43"], [5, 3, 1, "", "9:26 dc2cd23340592788e2b33f874af0be578ab9dc5ec8fe551abef6c4946b0c2607"], [5, 3, 1, "", "2:8 4b76624fefafbe89f67f9634f8671e9768189ba2be891749d2cae7f88061857f"], [5, 3, 1, "", "11:10 0bacfa691cf9b02adb71480b6b81ae0b5fcb9955635d761f806644b2dd7089a4"], [5, 3, 1, "", "7:10 ef1a2911b0a4a2bd1fc9f0ead5a226ba5699ae02b2dcd42ecabdf631202d784e"], [5, 3, 1, "", "6:35 8d85229b2eb69a1cb33e8b332567f95078b56f70367895493bb53b3da0931f5c"], [5, 3, 1, "", "7:18 71f44b658d5f60358888166477d893099556625a56856efc9601af1b23ee44da"], [5, 3, 1, "", "9:15 61b4ed849409d7a1da6040af55c628c8bed21fba1448c97a30cf7b6e1edef1c3"], [5, 3, 1, "", "1:8 86055e47eba60af7a20a12a96e925c0aa0241aac95b1dbde209af8bb11ccbffc"], [5, 3, 1, "", "3:6 f98b5452ecf7b2c43aecf121ed351e093743b91ca044e66b807228b56f80051e"], [5, 3, 1, "", "7:5 ce0053741951cdd2317168496b52090a75e5599bf46bb0b35ae36c85311c1ae9"], [5, 3, 1, "", "5:15 3b601294fdc29f47f2d5ea41a53e52158852777635e4e18a61e75b50b4de6e21"], [5, 3, 1, "", "2:4 0340895fd04ae584ac9b90244a3650e4389de5b440519fcfbd43e90c2bf72e0f"], [5, 3, 1, "", "2:7 bdc85222a07f89578d68b14e06ee8d7f4e4cd516e7c70ceef67645f2d88b625b"], [5, 3, 1, "", "5:3 46e89deb7d936eb2f027aa97f89cfc72b95b5306f81da17435cd5da27b51a05d"], [5, 3, 1, "", "11:44 63c48dade2d45f58c29209b7fd62427f7408e9be1b34777e67229aa7e083838f"], [5, 3, 1, "", "7:41 b01336b9511f2f0bcdd400438da1f991279c25423b3694339c0c2a56de3297cc"], [5, 3, 1, "", "3:1 23b7bdb3a6bc1804b5be08868bde733e2b7a97ae0804d7cbc06aea2b59fd6e1d"], [5, 3, 1, "", "6:13 81582d3dd591be4afd63d14a8950ba0a7886253bc28a6ebdc004af9fda39ce65"], [5, 3, 1, "", "11:21 f07f914b9816a47a3803a8a0e4617448cf1e87a3d9879638af434fb4bbb87f11"], [5, 3, 1, "", "4:9 f63fca54c6f85459e84fdb4b1ce37d60655697a990bf2eae4b9bea18af1a3f15"], [5, 3, 1, "", "6:16 ad2526669f50751a7b918a4cddeb2300641acf4b2395f4a1a01df29469e7da7f"], [5, 3, 1, "", "7:27 9c5002f8931d3abbba38e2af25c9e26fde9574a782a54098d5c7b21336a27cd7"], [5, 3, 1, "", "9:2 27ca11dd40c94f7e33d729cb9e58a859e505bbeb187054989f68f076c0d0dfe4"], [5, 3, 1, "", "2:3 b7a8de951a21c65d72d8a668a0e505a25388b7e5a5e2e183d7b9f9e04269c213"], [5, 3, 1, "", "11:42 cc05bf582d5c4319a4456bc8b6c64f1e1efb92b83ce5a86e80486c70cff4b6c5"], [5, 3, 1, "", "2:15 e040c546fefcc0449ac185ee78ce0253f8a422a4152178bf19425f39082890c7"], [5, 3, 1, "", "11:22 c4387fe4f484f537a0bec808fdd45374c5ad2a94dd7cd9891b3acd6955055456"], [5, 3, 1, "", "4:7 afd2c64f1c23556dffbaa7b63b76751e5b52d1c9ea207d1c640cdec6d97bbd57"], [5, 3, 1, "", "7:3 8026571732f9f6267928a67e769b7dd425f07122736917f16cee06caacc37f28"], [5, 3, 1, "", "11:12 c927d4db9296e304c75ea935ba940d05a54420ee651d15b81fcad4aaaa1bcc23"], [5, 3, 1, "", "2:14 1082cd3a0c4e2cab05c42e2cf9fcd73902c976d592285073adbf4663ec94947a"], [5, 3, 1, "", "5:20 eca372870d1bb0bc4b820ac177e1b3b7998233a674e7b8397e72d4be23ab0170"], [5, 3, 1, "", "3:5 a7e8462f6f54586f7016c7be8dece9195cc5ffddcb493c00d9c08dcb1947b255"], [5, 3, 1, "", "11:28 1bf2eb3fddc1bda35cce5c0668c463f880b7275bd885b03616e2d50acdc71975"], [5, 3, 1, "", "9:3 47b8697be7c9a888bdf4d722617a7445c91071918926fd1d7b0dc5ec7759dc1b"], [5, 3, 1, "", "5:18 bc454d1b317c9bc88ad24d821d1e58f9bb10101e1f3e45c7a547cbf1897358a5"], [5, 3, 1, "", "3:3 4376b53a0608338ed35c699ced660ca17be38885f5a09a0ced75087fa8c069a9"], [5, 3, 1, "", "5:48 1bab9420ecb10646e486e92a21e7c194eff5c4c1351ae11ba919d46aa9e8a427"], [5, 3, 1, "", "2:2 9a5b1f7e7d7d38a721fe16a98b61e35a54dcc7c07d9828ea2e2248bef356dd07"], [5, 3, 1, "", "1:7 bbb012f406bbc016697a416877c67f8a8e7762859e71fe80b3772bbe6941a5ec"], [5, 3, 1, "", "11:3 6ba92b86bf853f095dc7e5a3710b658e32b00a7dc05a5a95d43121059f50f10c"], [5, 3, 1, "", "9:8 9a0b5c658e0818b0f365f2045de56630f28336ed84a1b9a7032e4eeb196094f1"], [5, 3, 1, "", "5:32 70fac8b1be1736648aaaa9fee2cab2c655084d862482bc22f6e296c2ab467a7d"], [5, 3, 1, "", "3:7 9694b3fa6f2fe93dc54f3037b9f53322423ad65d56ae4f6fc00870750dcb0919"], [5, 3, 1, "", "7:2 2a968cd3870a6603c37177067762adc544e4e07ad6b804a2c2aab38ae902eccf"], [5, 3, 1, "", "5:1 b0a840a217c602a32cf2e1de752852f1c490c0319cf7abad57d81b59e98690c6"], [5, 3, 1, "", "11:19 39b15a4da847904cd5adcbfa2541f35399dd7eae844e25492a6b28134997c44b"], [5, 3, 1, "", "4:19 c8effecc440dcf91f96f42e0f04584a5610c1561c24791e2c23b26be12ab80d9"], [5, 3, 1, "", "5:36 f678eed2b8bac9c6c67c93c05c9b053cceef52d72d84258ec037eba8a69da58d"], [5, 3, 1, "", "5:50 5ab58ebe71cc5ede6b8c87248178f2659e27187f857007d8c683d25510b4c2b6"], [5, 3, 1, "", "9:19 70cde08edc51a89343f1641793a1fc500d46e25ce677ed83e47cb308f673c9fc"], [5, 3, 1, "", "5:38 76949da2fa0e9cc8e7cb9df9af458fb19d53b951678809db92d05e00586ab885"], [5, 3, 1, "", "5:46 cafca8e7b36d756680e784bde8ddc838c4cd8196bd1331ba9e9d82dcaf5944d9"], [5, 3, 1, "", "10:2 f65275a0a091337596ea0d2d0452cd99919c500d44f9024dcc3dc0accc16f35c"], [5, 3, 1, "", "5:29 4eb93bef00f0c77a5e6ded4b73a4411de3d1597f25e03442d385e8953d179f60"], [5, 3, 1, "", "10:5 542e43dc718b5bdd7f38a403c460e2630f2aa29c7efb6070ec1048ca684c11ae"], [5, 3, 1, "", "7:42 b47d020a4bf52e4092fc90d68fef4ef1a455a67b8988333b6f7ef74fcd608744"], [5, 3, 1, "", "6:14 8493aa842fe4a83a4314ce4c5cfdcbc4004dbede23f86bc0726b3cbdce0eea6a"], [5, 3, 1, "", "5:26 fc135beb54169cc69ddc3205939375bc09adf919e1015819ef3c4d508636e056"], [5, 3, 1, "", "1:5 1b2c053da332d1395a04b7eee7001d9e9cf287d2680ad54e81f6041f88acb954"], [5, 3, 1, "", "6:3 05fc18fab6da50fb7b2ec1ed8dbdef6ab1d54584dd67eb283424ad2fdd5b1d8d"], [5, 3, 1, "", "4:18 edfa0f8419b3a73e3ff24890c87fd1fd92c6dc6d8818c3fcce02ab05b6c8c1ab"], [5, 3, 1, "", "9:36 6b0621264b3a532012193e8e8fa631c7176d6cfddcc1e69d99553f045cf235c5"], [5, 3, 1, "", "11:39 96b2470f5ad765c1e4f0b346e361780734a20847e8d7264e5c2076c95bc9ba46"], [5, 3, 1, "", "6:28 31252eaded45baa2ec5ff1465a0523416c26773b13a971aeca24c9f54a1ff1fa"], [5, 3, 1, "", "7:6 be7491a2b9729f338f90e0d71cdf9327852297b9681bdeb1fcdcbd07f3a42e9e"], [5, 3, 1, "", "2:5 46cd3d16ac76ee2960c5568740cf587ad2c6ceed1218114e80c3a9bb47df7a63"], [5, 3, 1, "", "4:13 a9d1fe3dff0cedd21947b255165dadfcf588c30c40a43c6e6ba0c3ec8e196f23"], [5, 3, 1, "", "6:5 053daf5a48155d9e3cc897400be3ef219ceba7963682f22e7aab2a9aa6831550"], [5, 3, 1, "", "7:39 2d9093eb49a4246b73dd600878aa12b7b93aa41605f6119cd2763faaa323dc9a"], [5, 3, 1, "", "5:6 c6aae217015f2015f44b8e8dd7508277c0d50120b59d841ff0bde78814a6b441"], [5, 3, 1, "", "11:11 3c8f98ad5df4fbb4fc9495db0937e079c92705d874f42bb18c7ba5ec55b24f25"], [5, 3, 1, "", "9:10 ed29ba4f4f0bf4e798b92e1808da08a9f7dde2636d2717f9bb76f606b0612f27"], [5, 3, 1, "", "7:36 26071802062bc2b37291010d1f9f8dee33a117f0cec69c457650ba59560c6743"], [5, 3, 1, "", "11:26 e31b4581f5c14180a6a1a8eddc70ceb2966929c532efcd1bb047761060d24027"], [5, 3, 1, "", "5:37 f146d32e9238902885a1de2e40322ffbe37f7d482221f3f29f09cd74aa10c986"], [5, 3, 1, "", "6:37 a8f62a13fd083f51c1a97aacc86e5c2ae2535fa2d41f0fe1aa07fdad41fc9654"], [5, 3, 1, "", "5:7 c84f922867411ee27c2da0f8d55a04f3f4d18514100b2ddc009d42f43f232702"], [5, 3, 1, "", "6:22 94ec1672b5572a206805a5f17f131b2a11dd24534874144bc815364ac11611a3"], [5, 3, 1, "", "6:2 2818a1e523dc8c69e39862ea386fbbab5b2558456ad985671a97f66bd39587ca"], [5, 3, 1, "", "2:1 2ca9af25277c175fa9ab6b0b74a4ba46f5038fd562befbd363a40be6ba27d2dc"], [5, 3, 1, "", "6:21 2a93c4b43a488a8715a6346277d3a51967273030d0229e7fec4dbbe3e22cc0b0"], [5, 3, 1, "", "11:20 bb68222b337dae8c4e07199340ae967e2beab8cdb28c86b0c31bf23155c048cb"], [5, 3, 1, "", "11:7 ea908393ac3ed6b06a8100763ed23f0bce1b23383dbb6018f7b2a9f28fe2c027"], [5, 3, 1, "", "11:25 6c3272702958207aa4819daeb158571ee7f953f56238a82b24462ac32f7161ee"], [5, 3, 1, "", "5:19 11788f05059c59c58cc708654df290bdcff239b6a6b7a3b84598208a77c99b92"], [5, 3, 1, "", "6:11 da193f8b1e127e029668399614ca332e6b587d0a8f272fb73bbf8edfc6cb0d1e"], [5, 3, 1, "", "5:43 ddc0c2dfbe1023732c1d00d8ee8a8a13a6ef3fb5f2ec27bf3af56f0f356621d5"], [5, 3, 1, "", "2:12 a1370288ab9df6143029b28cc57c082c16176e3bc260e846bb35545f9fe1d8d5"], [5, 3, 1, "", "5:39 84f604c240681edd7b71b1d29ef8b66a81b3f921feeefd7649950dad7829b18f"], [5, 3, 1, "", "9:32 362784273f3bf8ec2f5c6418248dc73d886a72024b899a6073cb6a8ad7940fea"], [5, 3, 1, "", "2:6 82ab49fac0f518382455ae1ff105c18fc25eac3f8ac00ffc53deff57a0b75dcc"], [5, 3, 1, "", "6:32 e23d86a834fd2dc7ebe1e6d37fc6932e7ecb671e5814d5513513d720e300795e"], [5, 3, 1, "", "4:4 c83826e3c7c0a48c572c71ec116e3678b134a80964cb0ded4dee83772bf37e4a"], [5, 3, 1, "", "5:41 4150ec47e0d0420937471ef411fcb589a50cf6da2b820a72bd39f3be021962f2"], [5, 3, 1, "", "4:15 aa3cfae510c0f630768b3fdad3056728d6d46645a5e5bc33ed5aae965d9e8029"], [5, 3, 1, "", "8:1 d083fa2a4b23d69ebf79cb39b3b435aecaa477f6e2bcddfaa6e8f2cad7ef9fcf"], [5, 3, 1, "", "7:43 b1d67e27cd64bff665fa4abe27d7bb3ffa248e472df78975e3e9b414d3abc215"], [5, 3, 1, "", "6:40 e5cdfefed3d182d5a193d06aa0c5b4d2b467c3186aa0cfba1bb680a1f789e7a7"], [5, 3, 1, "", "2:10 a7e8224d319471b493644e345b6551b79a0646cd520f3e10b8edf2bfec6a1f84"], [5, 3, 1, "", "9:37 6df51e5d36c7390d867779913759bab661984ee0871d432711aa97a2cb0a739e"], [5, 3, 1, "", "11:37 ece515541769464e97d750a9e5e9ce02a8b6519f896abff730bbd292e44e473f"], [5, 3, 1, "", "4:11 2c69bf1f447be7c6df6d51e2133843f0d576ab8a81ceb6e4f855ee26ff691a2a"], [5, 3, 1, "", "9:28 639df060c4399f91e08022f57836782fad21b3ee5016cbd58d43e8ac47373417"], [5, 3, 1, "", "4:22 7de9ba1051942b5d4a885fe293560881297b7f87eb22ce3a2900d5c4dddb0326"], [5, 3, 1, "", "9:33 dab8f627a03b7d22da6d0a9ef0d715729e41f721ea373e2972b24eb59c90433f"], [5, 3, 1, "", "7:11 0c6bb79a3001d63bf961a7f98a2b350801a2eee43c89c0af2af810b535fee371"], [5, 3, 1, "", "9:21 79ebe8f0e779f6f47a24d5556c49d46d5984dfda2c4e434b1853207bae1661da"], [5, 3, 1, "", "11:30 b102bf14ec0db1c14b2f2ab3aca382a3187d2c4042728a7fc47bfee75e767210"], [5, 3, 1, "", "5:11 2b94a36c8d16c7f222b29a99dbbaca845c851d263d6323bb9ae6717955d14294"], [5, 3, 1, "", "7:25 790b5f2286f9006f773c5cee8a79277c939604dbc045305f68dba735d4a8fab3"], [5, 3, 1, "", "6:31 4263fb211a3cf3f26ebc3048404cb784bfcdb6e89e7b8c3509d9bade52286fa2"], [5, 3, 1, "", "7:24 dcc537a9126843947883cb7463f2aa089ffdb70c3ce806d15282d128254e00ce"], [5, 3, 1, "", "9:13 34d4e2c24f03d923c5c554f7d83dc05b68fafde68dfcdec0b202bdd7f9e1b8c6"], [5, 3, 1, "", "9:16 3fd45f40c5530a4e28c7590e27b7f1d1b5b076ba4a56b93a62badb572fd34f37"], [5, 3, 1, "", "6:30 7c1f43885f0acb0412658c413bc3e27945ab92404fde60121712fc4b1b414a64"], [5, 3, 1, "", "6:36 a9e77d70b03d9ad5d13456e3b4ea3a9a40479bd0354018ceb716a20e5f0f6c29"], [5, 3, 1, "", "11:35 98a271aaa7faf59283854dfdf7bbcd0ba056cd59f558249a1382495825b750cb"], [5, 3, 1, "", "7:34 fc5c6a6f5d2c2fbd69a96faa707b88b69a02ec46f571e54abbba5b94262db700"], [5, 3, 1, "", "5:12 3bc776fd70017a15281d825de3a03c484a509ed361cfb8e529f3a23268837e0b"], [5, 3, 1, "", "5:47 a133ac246b8483e2376fb2e7ff45933a4d073cc42b2f5b2693c18610ab982cb6"], [5, 3, 1, "", "6:10 c0cf0a0884aaca56ec02fa11b697bba3c0be007b60befe09c8aebf753f176f71"], [5, 3, 1, "", "9:9 cd1cc473310dc5109e4b04c361ebc5387d25791159b28eac762db631a59080dd"], [5, 3, 1, "", "2:11 5bd3c5f7bd491a7f42f8c2da78d2064ae8679d448dc019897996d49374b0e175"], [5, 3, 1, "", "5:24 73f75644381d149ce6f4e854dd91d95133658735ed4344352f260f806357124a"], [5, 3, 1, "", "8:8 5e0c86a6b40357d25e18747cafd06d04626afc595a9d1d43986abadb34f378cc"], [5, 3, 1, "", "5:45 797469b1ee10b81ac9f4dd20b9f7943570bca6e9aed0f4c09efb4082502be292"], [5, 3, 1, "", "8:3 1c05b5e8f145c2821e9391efa0203c3fbde926b15242438460e0cdf1976780b1"], [5, 3, 1, "", "9:25 f92fbbbb0d0f93d8a96769e4bdafb81208bbea4de660ed93f5a0c2c25bc315f4"], [5, 3, 1, "", "6:4 170079796be6e0d966919640fafbf7d613f2a3d98177e61149106bfbff315c2b"], [5, 3, 1, "", "7:45 e8c6085c7317b0b22333a5e89d1757cb4024590c46e44ba9d2e121f9f7c30b94"], [5, 3, 1, "", "5:42 3dde9ea78a683c92e2324df8e9c8250ce8017e6273b1110e6b3c1dd01cb638eb"], [5, 3, 1, "", "7:40 15967dc98aa0ed7f84bf158358e5aadd9b853a956daa8e9c622ee666a262302a"], [5, 3, 1, "", "5:10 f9820d8865637e75d0948c7fc41784afa25e79d0df7479395cdc2e53e968549d"], [5, 3, 1, "", "5:44 8ad1f5e38027cf5c40e9d6661d275b0c692946ecbe2be3ff598372545ab1ce72"], [5, 3, 1, "", "7:21 61a081ab60d564acf7dac7b48da5bf545566ae3c1c82613770c74aa2155c8be7"], [5, 3, 1, "", "6:23 53b4736dd567176d0f358e1d043c68e4e7b7ba30fdd04e2c5d27f0cbbf2bbd7a"], [5, 3, 1, "", "5:35 c2e708f49bc1463e1f2c04def2f0b217a259a1886909d4af2b6e4abd63af421d"], [5, 3, 1, "", "6:17 dc895b6a59e6aa619431f0f93958d1527008c560c57242167f44385670ac0774"], [5, 3, 1, "", "4:23 5b41d324bf22e4bf196369e2e07e6371340536763b0d1ba7370c3b9ce1e1a3a4"], [5, 3, 1, "", "5:2 7d12112b7a06954bb102320e6b09a084143173d1e444b53abae9c5fccccf151a"], [5, 3, 1, "", "11:29 b2b36c7f8e91b90fb29e61587d53edc27026c2f4612ae0ba4f363a6d5be91292"], [5, 3, 1, "", "9:27 2675b576835d6946c6d9375780b8b55f46ece14c3de9b64c8968d19af5d44e60"], [5, 3, 1, "", "9:6 c4a4ce7844b954c2f4754e622f645440f63e4c074ab334ac61c61ee16234e647"], [5, 3, 1, "", "11:4 4ae0b14054f07ae1b39e78df52b07c317b58a3f9f809a8718873aa55f027b3cc"], [5, 3, 1, "", "5:34 d0809b66e9fdbbcf0f3f653dea3e490c17584873374daea4e4ca8cf7fb66ab6f"], [5, 3, 1, "", "9:1 08dfcbf5c91d7b12196ce6c1a1bc3f599df54bfa79c5adf69545a87cf36d4b92"], [5, 3, 1, "", "1:9 7fea9e09ac35ba97ec0aa1b1d6b6f78b5e456d7acca65d756b2ee58a2e64fdc9"], [5, 3, 1, "", "6:24 1651f680538ff44533e1024e0f14e3ad9c52d51916584a4901382c966fe46187"], [5, 3, 1, "", "6:25 15ed30a8258ed67352118ef07799071f10a8c36492ecfb2f87f7309bbece175c"], [5, 3, 1, "", "11:17 7e62f17ce3701a1aff0387ca92ffd578fcb6945d06d5684d51461077a3dfdb44"], [5, 3, 1, "", "7:30 d7ad85bcfcd0d633bf1608e3af7008ca9e2f70b1bb1f98771a1ec739acb3b24f"], [5, 3, 1, "", "9:38 50d14939f0af728c40900fbf0d6eb82adfaf73d5546b91f7fd0ab5ed57192d3c"], [5, 3, 1, "", "3:2 c321eada04f83e7afc3cece805698fd21bfa268dd8753424a0c7a6659cf9987d"], [5, 3, 1, "", "6:29 537cc3ef62eb6da99fd065eb8f9f9876eb47dfe3405d33c7b4e02a9dedc27559"], [5, 3, 1, "", "11:33 6a1e80e1e25a1830cf8a13e06a7ee8f0932497734f65d5dac7e8bcd2eb12b75e"], [5, 3, 1, "", "5:25 719727efa5d31656dd271a750d883da510fd0dc91a365c055995293e5f4b1d8f"], [5, 3, 1, "", "11:6 d2555608ba3de34e55980372a66a2a9d4d54ddee1e2a156da6a307bd61404d6d"], [5, 3, 1, "", "11:31 05076af1f4d61f0b6baee0ecee29a81adafb0a5a38fbcbdb68d18da0a27b22c7"], [5, 3, 1, "", "10:1 4304d0485281b3209ed00f106195484fe480a77a8493087e16b0c436448b383d"], [5, 3, 1, "", "1:1 802926b1cac49b521ff9adcfc0541ffec43dd504d15b57d8293b9d13b99543e9"], [5, 3, 1, "", "11:18 0a96b074b6c309f365d46e4d340f40e8137d15a81a2628d015d5a38b87545496"], [5, 3, 1, "", "9:34 4b36e49520e535d2feb4673f98d756faf98a4db9b6c8491190a61d55c0e4e7f7"], [5, 3, 1, "", "4:3 40bf9e05f58749baa5c051ffb2c5e5f8305e58040cd7962de9ad7e669a433737"], [5, 3, 1, "", "6:19 8086917758b14703edbbbf5a445239563fb866350442477479028fab06da0367"], [5, 3, 1, "", "6:7 952cc40d099771b8eed28464bba01b8eb07d87d3aefd4d8e2615dcb9e0cffe8e"], [5, 3, 1, "", "7:28 1f09a7d5f20dfa920da6816904f1d9a952d7223cadcbd1a2e02bc92e2eb8b6e5"], [5, 3, 1, "", "6:9 9dc068ab4f8ff1b86dee141016ae1c63df167f7b1a49de56303ace2d27e01480"], [5, 3, 1, "", "9:4 a318a86acd9c3f9af9c3f696b3b9c2c76a76f36d115e7f89219fb26ae40f8fbd"], [5, 3, 1, "", "11:8 f32d982e951a64a5ae23f39b6f896be6b823bf75a1402bb7f482c69b8c5f72bf"], [5, 3, 1, "", "8:12 081904a7612047457f00462adab410432028cf313a537c7d3eb899885660028b"], [5, 3, 1, "", "11:43 4274ecd1896eafd9510d63f0a215a49551f8821292f73f5d7af417d77511b0c5"], [5, 3, 1, "", "6:26 c598c63b8ad76764d80ce8990c8e92a0a204169649bbe024ea2823b4bbe90baf"], [5, 3, 1, "", "9:7 1b9291b98300943b6a4f9a35b2f0293eb26ad4edecb86117155dd7f868c02ecf"], [5, 3, 1, "", "11:23 5d8e7013a9e2890192910cd44abe74ed6f54b4b3d4e3eebf85b772cd83ecca64"], [5, 3, 1, "", "4:1 af3d9baa2e989c7389736af89273f065db34e0a05d834471606dd19b2928db1d"], [5, 3, 1, "", "11:5 136277e741015a5230de8f60eb4096bf0b58ad7c638b2115efdabc0d44400c59"], [5, 3, 1, "", "4:2 4f80e3b87fba67c8d18e93636623e678e1374f94eca9dc69a5534fae37565c34"], [5, 3, 1, "", "7:9 75c0bf567470cc284caa31e9a7cedafdab95750ec0c3d4493082eb5ae7390ec4"], [5, 3, 1, "", "5:31 064cfcf4cae6ce4f05d3725a102c1dcef135894bd8cb96bdb7429edfb31ecb0a"], [5, 3, 1, "", "5:33 6fd272034cea2fe81833c14eaafe524e4a0767be0c73c47320bcf29b97784202"], [5, 3, 1, "", "10:4 0591676f83b5050127846b1d974697123e818f7c6e564f025c468cf178fee8de"], [5, 3, 1, "", "9:11 77cbef9219a40b23a7018ebc71f71991f269b206f6ac09ca02d6374e08d34143"], [5, 3, 1, "", "7:20 8aa4fbe8cdd3993316bc9797d2e9c0eae2606dcf347454c5e8420d364eb6db51"], [5, 3, 1, "", "1:2 3d9a28b791947b2bac75ce56a2454e2a1fc73b1d6b40fd5902cc3db89b1833cc"], [5, 3, 1, "", "4:10 b3e235b910132fd26dffacdb2bad28a792618698a524bd1dd1a6be6065711fa2"], [5, 3, 1, "", "7:37 3f1dc50e13776facbc3ca274a5ef46f7a078bc0e1d73003d0eb034fbe9ae7e33"], [5, 3, 1, "", "11:13 53d2315ff692eedbb4a02576f3552f5fc7e273249f214bb24cfcd24028715bd6"], [5, 3, 1, "", "7:4 f9b985b336990cc31ae368d531d7c4ea08e1aa780e9d702aeadd46e677aff9d9"], [5, 3, 1, "", "5:5 5138acfb60759a1f7d1612cce1be84b6ac9130f47b5c8d8d88bc1f7fa0699d8c"], [5, 3, 1, "", "6:8 ba39428a77c8298ec6d00dde55b54582b28fe2b591511d210c070eeead4f4703"], [5, 3, 1, "", "7:44 74d5290848e5b132492e37c5a878b393585ab57f6861801568b33dd97e99350e"], [5, 3, 1, "", "11:9 a8f5728efeb8d521b310ca0018217930b4db9dc326d731f4b7f928ceb5551466"], [5, 3, 1, "", "9:29 96a976177a350ed96c70bbf5e1fc3c212be4f43da60a95cb1bddf43edd073027"], [5, 3, 1, "", "8:10 e16cc48f8ee8a84751ce4195d3680e9168f423ceac46d85cb7d9ade46e838061"], [5, 3, 1, "", "4:14 6904a946fe2693b6f425ca86a92fede53c0fe6cecc8598127afffce5d7e62417"], [5, 3, 1, "", "9:23 cfbbe48907bff6889c84b93a92f9aca7b25b8f23ef9d15329209cc8192873a93"], [5, 3, 1, "", "9:12 d8874d42acca88b1af3b118dff17f93995f48354579b562d80c5f2f70e7ca231"], [5, 3, 1, "", "6:18 426a9a0ea02cbdf9f6ab017e8d01561de18f041ef2783074463ed902da9419a1"], [5, 3, 1, "", "8:11 8aa3b1677686a272d98a21454e1e94aea43ab1745f3b214fe1d274e1b1d44913"], [5, 3, 1, "", "5:40 5e2ecaea3a29c5b97b9c76aec758b093b55aca3e89a8ecefee9b691d736ee6cc"], [5, 3, 1, "", "5:9 9a473e780a8fde1608816f5ffbb7b41a753411ca82e0752b8963a1997ab35638"], [5, 3, 1, "", "8:9 2c38f5ee0dee81eba992210bde3a9c3e5e17845a49afa11bf5ecb756e07b012d"], [5, 3, 1, "", "4:16 ff435742ce6e2e0ff8240946adf104bd9fcb520098854aa859d04c41ea02d3c0"], [5, 3, 1, "", "8:4 fdd6553d09d1a0c51cd9641afb80879d25d7066040d8a352725884773f92d2a9"], [5, 3, 1, "", "5:16 d5668e3304bc1aac1a9ad7af00aa04e0bab58efad11cd1aee9b877a2ef767129"], [5, 3, 1, "", "5:23 ae993e16ae5bc5ab9b01feb24dcc0507bcdfa1575b222fb56cc069f149fb55a2"], [5, 3, 1, "", "6:33 94cf2ccd91455de09c6784e79c76de895f6d11481f8ba1d2c6343e06bfc3dc6b"], [5, 3, 1, "", "4:6 b610ac74d0d701146031a0ac67bb95dd11a032f059a4c2c7e7b2fd03bc2dd5d1"], [5, 3, 1, "", "7:29 b26f1ae4bb9ca5706067a0dc7fcc96ff7d0a837066c3103acdef5036c0c54662"], [5, 3, 1, "", "7:35 5db519b4a3862ea81b67712e174ac1e631a8afb3913654c28c367cc6e4a717bc"], [5, 3, 1, "", "8:7 b099b2fe899cf3d319f0a36dd5af2427e1c29cc5f8afbe3e514a07bb160b21a6"], [5, 3, 1, "", "10:3 583ba1d1d9e8f8d1df72de286c88866da9343d7c34bf5f3ed16b880b4b1e054b"], [5, 3, 1, "", "7:32 227845ddcd0a132d50d7dd61e7a564d46335b6a22d2ce74a288f7d9200ae7c54"], [5, 3, 1, "", "4:20 8220fff5ef4bb72a0a7dc8f99cfe17f5e5aad6d75e146b2f33ed793b920e580c"], [5, 3, 1, "", "4:21 a643ba42ae84b70ad7aa7f9e7f43587505202b559c0101e5a40a6823d243e69f"], [5, 3, 1, "", "9:24 f4db800db3afa6225779fdc78b37b92b56513096372223f38dfedf62c62ebbdf"], [5, 3, 1, "", "9:22 d0224097db7f57afffa5809d8b5506189c8780f6d8698c1db3fb3c311b1c9ef8"], [5, 3, 1, "", "5:21 af587b33a56e6a0002edb893987596f76450639deab12d69c665eba6f4bb5f89"], [5, 3, 1, "", "9:41 812a1f24961f1a44cbc165897dede0820f61dbeb12e67dd76d903d192bba21b7"], [5, 3, 1, "", "9:35 2ac5953b5fbd06573be6f3e9d6a86261d774fe99356391aac1757ac4313d4ecc"], [5, 3, 1, "", "5:4 088bf6586c416b8d73b9bfa95d095905a510685c6833c5e231abb1553f25ba1f"], [5, 3, 1, "", "6:27 fae86360a1b7d2d77fbbc4365c5e99fbf0ed4a4fcac2256690e7c3d50bbff467"], [5, 3, 1, "", "5:49 df45cf4e04324577c2dcfa776a8bf7431fe98c041a2defa2c83564f63f38542c"], [5, 3, 1, "", "11:2 d6a2d58614610b6925bb6d9240e3cefe07479565323dabe03c90461b8c5e6ef9"], [5, 3, 1, "", "7:19 8974278dc5b60a16754de7eb076364e82284313e621b4c49992c20c6a9c63ae1"], [5, 3, 1, "", "7:7 d6831a752e2853991b540a6f71184363bd1495dcc4b3d792cc390c0e46566584"], [5, 3, 1, "", "11:38 c4a1816e02fe88f0e2f326223f92521478faeba2af43bd13fe94c439624e163f"], [5, 3, 1, "", "7:33 0ea88b20932e8a1ac321f37c0f71648e487ba64d4a8a174357f45c0a361a030b"], [5, 3, 1, "", "7:12 710411bab59ddc74d93bd9ff61bb2d8646a61f62f3bde811cf3d41bd58366173"], [5, 3, 1, "", "7:8 a8d5305ac628e58fe4ccbd9c03c6a69b6c8fe5f5fb5849aca647efffba438ed3"], [5, 3, 1, "", "8:6 5fedecca69f448e516ad8fdd4b22e1d9538dabd703fdf0c4881e56e12b0ffd02"], [5, 3, 1, "", "11:34 442e7816616309d222742e16b9e6f02a781a2e4782c149409e796c8f69b72b7d"], [5, 3, 1, "", "6:41 bd4c2c6af9a1f85023152aba188338a4a680bbc0411316984bea4e286394de58"], [5, 3, 1, "", "11:14 f409b5315ca308b8335b0a02dbbb76577c93d33536ca7a97c9df8a48215a4b15"], [5, 3, 1, "", "7:15 5c1c6dbb92fa6d031c159a452bc02516ab56200edd7b1829912ab9e1dedf582c"], [5, 3, 1, "", "2:9 1f706d90689273d6cd3ac4319f378aef1bf50f62e07e0596cca8a78f8ef5e23f"], [5, 3, 1, "", "1:4 d573fb1d9d84cbc07730e23f6e479b1d62a8155fc4b7e96206a849226058f1b4"], [5, 3, 1, "", "7:13 13bbc37a51d96873f70deac55cdbabc1b905394b23a3972b2c0551da7e10a040"], [5, 3, 1, "", "7:22 0881ded68a87d9c91315127f344b19aa1c1ba7a415be695e64255be1cd5f14dd"], [5, 3, 1, "", "11:15 f8e24d8041063b9aeff11b22e4199433af8a1eb8a19d83a6bbaa6cb259939ef4"], [5, 3, 1, "", "8:14 53ea72e1adfc38c6b9633432eff3b00824a954e6db484fb79fe14639eacc879d"], [5, 3, 1, "", "4:12 caaeeebd8c8b53c85a4aad7b3c42754cdc3a758b53183433bb57e22937db33f5"], [5, 3, 1, "", "8:13 a7e87563c4a367cf52d29f70b5299ee79561d872ffbcb53680929c57d329ac75"], [5, 3, 1, "", "5:13 c8ccb208ad9374a8fa9ac34680b8e8ce1fc4e958169b4470ef74cc9cd4116772"], [5, 3, 1, "", "7:14 b2fe01f1e7bd73ec40381b1feffe64d54c4a73adf9833a8973e8545b4a22735a"], [5, 3, 1, "", "6:20 bd305b6ab372b8e874fac3c5a5d7d59ba805cda093af356e1d23ed3bfd23eca5"], [5, 3, 1, "", "7:16 aa2489e740ac7fa0927e1ebf58ee7859f6c7fcb1c27a1fed065269e34d58945b"], [5, 3, 1, "", "4:8 e14bc33ac51819c14cf0968eead2fd2eb5cb0c7027e5b0b9bcf7ce69add7edbb"], [5, 3, 1, "", "7:1 9d05d4defa794088d8cb55f8f3dc1300dc4a1e8881df85cc8431e6b4bc9c6491"], [5, 3, 1, "", "3:4 20839942bb00d91e6bb509c17f8e66b69b91f16691c9ab64b82c867f3ae550ff"], [5, 3, 1, "", "8:5 ddd627fc1c34fe282518e5540e51987966234a13145ad8bae553177ac3d8dfaa"], [5, 3, 1, "", "4:17 4bcd968eda46af59fcb1ea1f55864281f8b0cde92d38561595d95b4e9ac3dd07"], [5, 3, 1, "", "5:30 c1f131262cc203adffef07cdfd70f939f8e44411b208a3a26e4a8dce1179ae53"]], "2": [[15, 3, 1, "", "2:19 6e723820ff0d3af2b33911208421ec93bfa3d9388535b353d60fe2a74ccc1c8e"], [15, 3, 1, "", "2:44 2f5232d2dd945c47f4332b95ce35d9d402898e71f4f7c411c663e301e2429cfa"], [15, 3, 1, "", "1:7 7f6017bf13927f894ed1460d26d072453606445d1dbff591da54b2f1eb9fe834"], [15, 3, 1, "", "2:16 da7de79db9b949ccd8272fe75b48914ed735298d02e452128b6f46462c2d48a6"], [15, 3, 1, "", "1:17 d5ae1cce239b620e197250f6a2726fc8f495aee8a7115926a963718c9033130f"], [15, 3, 1, "", "2:36 1849bba6049bdbc82b21b091dec81c60ec2b201d17fb46c10b00dd7008a75383"], [15, 3, 1, "", "5:15 255a7dcb2fc2b925e5aa49e3be573dcce5c450e40835c21a4ce5008439cdbeb8"], [15, 3, 1, "", "2:21 27d189b098b53140fcdc85a3f039a286f0345dd4aa05f64de22d79e472edc815"], [15, 3, 1, "", "2:33 d3f16e94c1af504357ac2df39037b3897e443574d68f41a97f3a3751fb96fd49"], [15, 3, 1, "", "1:6 2d61867ea0852e491d286632860fa0111941830a7af9e3240f26cbce126f5a67"], [15, 3, 1, "", "2:10 a00d2db187c054f568dbc3e78a1605de3149d3c6abc4a34aa93f2710ba6ca2fd"], [15, 3, 1, "", "5:7 7db44552637b47a7c80a482ccb21eff193aec3ef608b793139b79c90b9d259e9"], [15, 3, 1, "", "2:31 d1faa62ca541cacacd198a34628995933bad01292a21dd568ddcf474e4dbc4b2"], [15, 3, 1, "", "5:11 a34430d6423f60015c14850fbc8c713a11943c37acb592477ed6bb0ed902b6a2"], [15, 3, 1, "", "1:11 8815f83db374f9a454841fc1f6b6390c6ecd954fabc83881cea39dcc3e76bfc7"], [15, 3, 1, "", "2:15 0aa275a9c135534577ced486481a428aeb61c42968ca8a6ceafaada95c15ce69"], [15, 3, 1, "", "2:35 3b19d33ec536baf30efd81e160cddae06ecb9f87449e9a2f0eb4b7b41f45a9e9"], [15, 3, 1, "", "1:15 0019b4f55d1b71c339a645baf16461aa169dbed3b2d823b8af749a41fe5c41ac"], [15, 3, 1, "", "2:45 70b0b1197e263b4916e16125090cd6e9a9899d0554b9d920f0a3ea7fa28419bb"], [15, 3, 1, "", "2:40 1206752913d765884541bbdca0403f9d865f619f0a66850120cd7d31fdf9dba4"], [15, 3, 1, "", "5:10 b5cdea2b94f91084652299806e1a80b282c551014c7d65952547fca3a2bb7cf8"], [15, 3, 1, "", "2:7 eb78e3a8a8e977064b2d7149e4306c21f9fcdfb8f18ceeb51eb2b40b9ac4a9c7"], [15, 3, 1, "", "1:12 e0d4111521e0ef7716e900e64befc27972b65b3002d9d3421d0df6e070601ecd"], [15, 3, 1, "", "5:1 80a97a25c037e20dbb697978e3c79c22243ea2bb094a1a60f10b8cc358d57568"], [15, 3, 1, "", "2:58 146ed363f52681258de59c4c591f3e964f91cf5b1f49ab1ba0410c4b99fb63a6"], [15, 3, 1, "", "2:53 c9171c2be2e92bbdf83f7a6944a2ba47aed3227600b99f5fb6a50b1ee7cfffdd"], [15, 3, 1, "", "2:14 deb239c182541b9351e7079d839b668ddf59a12393d1595c39ea0a9e9ddb774e"], [15, 3, 1, "", "2:38 296ef99a61a7ee9d96f8b232724e9426eaf744eb4fee6e5a8d5f382bab039071"], [15, 3, 1, "", "2:46 5683fc048d59af88dbe3eab83e4bd8d23b94856307f288a6f6377f4037f4595d"], [15, 3, 1, "", "2:2 73d17b1543408a0260ebf6781483f768a98a08e65e7b3efd7a67056c0769a116"], [15, 3, 1, "", "2:18 c9313afb793a167c53fe2e63b2f4af9b33b23f6209fbf7e0b074de80d123e380"], [15, 3, 1, "", "1:4 2a0b32b27fe371cd7e93f22f0a2244eba0ae620a5b844fe722d308d5cba30392"], [15, 3, 1, "", "2:6 761bcfdf8467cee695b29cd8d454ab4a558df08126df0edde891a74925371be6"], [15, 3, 1, "", "1:10 82e2f578c850a061a6aaaad593ca77086467b3ecb1e21068c97a4c8d66c0aee0"], [15, 3, 1, "", "3:2 711b7898931cab56cb1058ef3932abe5b767cb86bbe9998c0d33d0dec68b7fc5"], [15, 3, 1, "", "2:29 72b90114176314f65b298489501e1763317985e1f90ddc834c7ba00bceacc339"], [15, 3, 1, "", "1:13 8d7234572699415553e79da17fd2524d1fcc2a7efe1e5033a320ab62a52024e6"], [15, 3, 1, "", "1:8 ffc345f23396d082ca468df1855e3f5aca7a1585cff5388705d9c1a3f70e74bd"], [15, 3, 1, "", "2:12 5f4e89c3e94a0b323a33d11a320cc4dcc9f49ad2aadb50b2bafe1222bc8ddf57"], [15, 3, 1, "", "2:52 20e185246054cf07309c6a13c1abd811e9488b5a85b5b076da651edbcdb233bd"], [15, 3, 1, "", "3:9 4e8345c2b229363a30e4c701ca308a343dc98f3fc1025d6321b4a101aa16e444"], [15, 3, 1, "", "2:1 653136e8fac3c1c53040add411c925009e38f8501d503a48b3c73829f59e7bbc"], [15, 3, 1, "", "1:5 66a1720f2e9d2efd1b01c5a8e3d89b8b70f8f707c0d5c446e6b1326f2e44e146"], [15, 3, 1, "", "6:1 b661cfaf9bef72a6f8070ed5158ce24d582cc5371b80a7c78f52e7d49157b48f"], [15, 3, 1, "", "3:14 b8d023cf7da2ee836679c97c7dccb223c0cfe0d172d661327da271ea51059628"], [15, 3, 1, "", "2:4 f7f8a0f54827276c6d4560722f7e9788d530dd5d345822294140f92d6b9bca15"], [15, 3, 1, "", "2:8 2db8aaaa096a0e58bd2ffc1db8997f6950ac40fd421ec7ba8b451a13f9a86de5"], [15, 3, 1, "", "2:62 d11919954e7ca0bf885a5dcecbf1173c4e7d47a9a0c9680cdfe30689bdc09607"], [15, 3, 1, "", "2:23 9919d5618da261c20fa0dcbe41e0e33cdadc04c63ce6b754c24cc21f2cea2143"], [15, 3, 1, "", "2:56 6031f088738902177f0a06367e797bbbed6f87b4be23c0317f10da0e7ca27224"], [15, 3, 1, "", "2:47 910783ea8b3d0346e1c6f25a4103c369012b37ccd28169fb7513ec357673c4d2"], [15, 3, 1, "", "3:11 9ae1eb42d553b7e7443d02b5b2d1e3a6d78bb9bcb4eedc72060780aa692d65bf"], [15, 3, 1, "", "2:22 cead86db2db6918d8b043df1bb6d9a515f70eedb704cb0533f19bf1a702786d5"], [15, 3, 1, "", "2:27 d68ed94fe4e38b43ce1f83e10bd9d63c0a70f2869947d5e7a3b05323020be8e0"], [15, 3, 1, "", "2:5 c9af1ffb3e58642391c41d16d4207e4f717098bcbe022bdf29bec6ce24663dc4"], [15, 3, 1, "", "5:13 6cff261ef0c0d257749ff6809ac237900fb6673ccb75e5186c7b4fa8857f9330"], [15, 3, 1, "", "2:34 f33b2927d4c93c042777b5efd14b10f479d4567213b07eeb39af2f226b208a84"], [15, 3, 1, "", "2:43 7d1d9f51a7a61689fd5c36e8bb1692e0155f452ed6ee445950644a177628e200"], [15, 3, 1, "", "2:59 db921aee3f65b1447572f308b1536051374edd08a46c64e1900f1f18f7d003e1"], [15, 3, 1, "", "2:28 2565056b10c31e82a75554c2f93e8566040b57a534228e4eb172894ee351df1e"], [15, 3, 1, "", "2:51 5646edff72acfcef1812fe04617d99f20bd1792169e20de2737a09248d9dd74f"], [15, 3, 1, "", "2:24 1db05fadca01dde48b4ba9f4c5941275523165e10756ef03f43cfa640cb2164e"], [15, 3, 1, "", "3:10 54da339a3e1b9269cf812fda1ad283d6cf0918c3a3807f8c61fab188ef3d2658"], [15, 3, 1, "", "1:1 40ca6b69e8a1f39dacde761ccaecbaca619375767abb05e925bec6c504198244"], [15, 3, 1, "", "3:17 cb6600fc3669e86c2955c97b83b7f6396c4187ddd330aa46e989b9cd1c9f0ace"], [15, 3, 1, "", "3:18 8123eef62794e72515c380c13f09fe4a1a1b30ee0516beacac7e93a43c943a7b"], [15, 3, 1, "", "3:5 7c0456add112d85b5342b18d8e5cac6ae082a3b8287b0cc800d54f8906612b2a"], [15, 3, 1, "", "2:3 11d71ea399510ce28be4e570347824ac5796e92cb7aeec1b5a5917ddac5f41dc"], [15, 3, 1, "", "5:4 44db9ffd84a7092979605a0738feeec5f4b7058b977a23c47673c33c3ece8211"], [15, 3, 1, "", "3:4 3a5077067bbd7d98abb0e8ef62f3c68e25a82638fe896907b96848701a6b9ed0"], [15, 3, 1, "", "2:54 6392d2a1b3e699903a3891e189ec2627cd4cdadb40b1901227056869728ed558"], [15, 3, 1, "", "5:6 270e8134659947ebca11488a29a6802edd92f2d00c5c5cc2cdd352343a96c6da"], [15, 3, 1, "", "2:48 425e9c50e0a6e99ab3bd2a32d34417baaa88ef286249a7ea4c40aff88803a88d"], [15, 3, 1, "", "3:8 3d09604f290b1e849a5430295209e2f6556f6c9f2024c7160c92b0ac7d91a602"], [15, 3, 1, "", "2:61 503fcedbff8acca4704b08fc4a18dd34eacb130b874da3393499d1b4b2767f79"], [15, 3, 1, "", "3:1 3987fd5d747ef2d4785094f84e754d8cae140017fa5f9c28362feeef107d4dac"], [15, 3, 1, "", "2:17 47d2b64fbe4f3b6669f313e326a56bc80c9e29d2609798c8fbd66944b711bc45"], [15, 3, 1, "", "3:6 198814e4e6f61528781c58b11e16a0038ae24778bba6d20a1a9a8dd79185cb3e"], [15, 3, 1, "", "2:30 7e8d7cb2d1db1915eefb51e0bb97b3578e2168dc029dbb4c6ce360f326d9f760"], [15, 3, 1, "", "3:13 14cfd5ffca7331e76e77c2fc7141bce89335774b3850f3cc90a06066c4660451"], [15, 3, 1, "", "5:3 21cfcc3e2a54f9de067b507a9febe04379152937834f9c805769db5f4f31efaf"], [15, 3, 1, "", "2:32 721175acceef5a74b065e1b446344787ec7a10cbffbef36ce67f086022ce23ba"], [15, 3, 1, "", "2:63 f5fea3393e5672ccf2f182c92ada0ce8e51b908b4c56d6e5dff341b04aadbdda"], [15, 3, 1, "", "5:17 4c1420ace1da3c3694b1aebd35cada39def878b5c4f642ff6950ad600c7138a5"], [15, 3, 1, "", "2:60 5b84c1b6b34b6a35f73d808399557de0dda5643c5dd061eab6fe2f70f841047a"], [15, 3, 1, "", "2:55 9cd08193b2cec929c6aa172a5dc0c456e7f5faf0dddc91f4a5010af10ff3cffb"], [15, 3, 1, "", "5:16 a8f479f20301435fdb8a2c41487c0cb7d5418c877b9e952dbf54836c18113058"], [15, 3, 1, "", "3:15 5d492f34dedfe4c347ae8fc5cc979751886b374d0f597aec7270a8850f233696"], [15, 3, 1, "", "2:57 c66c5da22713843633a8a9e39b2b20bc790ff265b578a9814659071b19adb6d4"], [15, 3, 1, "", "2:25 0f736355e9492cd634311cdd73a04550f157f18342e924ed85e3662ff008085f"], [15, 3, 1, "", "2:41 313032bcb9b35d0790c79d41a0ca4b969af9522ce30869193930e68bc013f5ab"], [15, 3, 1, "", "1:16 8a24c7ea76335af8905267c0228e0a1fb01b2367fb5def7030a6d69e27d6a447"], [15, 3, 1, "", "1:3 a2710a596348e56b2b389ff7a77765369a97fcd53c60fc5c39a42050c3aa2b74"], [15, 3, 1, "", "5:2 2dea71c3ed9833c779a0c63b8eae45c64771074fdbc263b67cd2115d7e9cf4ab"], [15, 3, 1, "", "2:64 0f4d81ea4a932a0b0c4ca39ea2ab7cf36fe9262611f07950869b94f715652cb3"], [15, 3, 1, "", "5:9 89aba4c16b95e9fa5e40e6f8fda1c986eb5097820542fc57bf4d63ee2641be25"], [15, 3, 1, "", "2:49 44095be1f456e5e12848444c3cccdaf9cb0595d285c3b9af792f68c3c6d12e7a"], [15, 3, 1, "", "4:1 4303183568664aedd54d9840d1fb3ca733ea37f08af4e8a629102afce83dc9bc"], [15, 3, 1, "", "5:8 1d2db5c6599512c9ff5347dd4643d081ca0ef713a638861316d0eb850fea2aef"], [15, 3, 1, "", "2:39 a6eb8fc79796023bbf80ae6ebebbe9aa8ca02eaea9e91dd0101a92d6502c436a"], [15, 3, 1, "", "2:13 6f99b7bbcf1e55392ad60df6c0625665b9dc85560643ad80f415189d8c7ea74d"], [15, 3, 1, "", "2:37 1e646156faf2fee7e2b56b8ba713276080504a642c80857cae228114284669d0"], [15, 3, 1, "", "6:2 9d03ce7dba3147733fdacd077fd30354c8d7b6a79883472bedba6a9643f63d6b"], [15, 3, 1, "", "5:5 46b1ba35f675d689f5cccd754f8935bdbf89c5ad8ddf1e0563957ca73a891019"], [15, 3, 1, "", "2:42 33ac534f7ecfa88d267e49b475398c2c99a9dc708d9947f300849180c325d542"], [15, 3, 1, "", "3:7 a2af446e5664b56514cde36964346072a3c31267e8e81fd5417885aa9f091b32"], [15, 3, 1, "", "5:12 fe2e7af7111eab22f62c00b2ba9fc0c53748fcdb5ec02a7e20dd1e4247706e15"], [15, 3, 1, "", "3:16 d8a9ddf03bd6e5fe69b23403d83fb785383eaa9e3e1b12e4d7a2d26f930c5843"], [15, 3, 1, "", "1:2 e82f4769c3930c55731cfdff64cba2bf3f3fe6f20f8bbb741ec95c4bce18f4d2"], [15, 3, 1, "", "2:9 f795577e13f973533719549c1acfa613203c8ccb340008307f46401e67c453d7"], [15, 3, 1, "", "1:9 02086e7f1249fcbd972c9e0518ee1939b64715df2d4770f72ce70c688b6338ad"], [15, 3, 1, "", "3:12 c7c123027fb95da5b47bbb45a0d262f1ccc8a67be78b8c5e6995d4eabf0dcb75"], [15, 3, 1, "", "5:14 cf00d52ba7c749b5e814bc2852d5e73d2b5454950abb829df0c20d7bb9ba9d60"], [15, 3, 1, "", "2:26 90ab0fbf40492678aadc1c1460d74be57bd1740b09977b1ac1304747e519aba3"], [15, 3, 1, "", "2:11 115718cd9f0c771924efeceb67f8b777b85cec578ef27ca2e037c38243f8f350"], [15, 3, 1, "", "3:3 17d71ec4c1973c054222c7033a9c64d1fd8dca1fdf82d323472445e8c7511c81"], [15, 3, 1, "", "2:20 d871501237f68094e868228be1c9ed208944a082241b0cf7a5e34375ee6310ba"], [15, 3, 1, "", "2:50 ef74969af8ed15f1495ae8e706dfd8210ff6adfe2b49651ba869290be7687de0"], [15, 3, 1, "", "1:14 e3b6a12dce515b8175a3e8b860650047b16ef9d3ca779fa9d7d654e44137ddc7"]], "6": [[5, 3, 1, "", "4:14 b8af4c854ae00c19f2c146e71416b772fb3d2d2312d68d2d6594d1a7889ad3bb"], [5, 3, 1, "", "18:11 d4a039ef3435b02a470dc1d412a131b96b9fac9aca97389cfcc27e0fed17b2ba"], [5, 3, 1, "", "21:15 70a39a1ca925fa68f61fe74478f904cf31ca13be09d7db398c5c16fbca0ad80b"], [5, 3, 1, "", "16:20 d30a7c9cf59ba8eee1317e7315939208349cb11f6cbb39fdb58a660731dbf7ec"], [5, 3, 1, "", "4:9 275a80e2e27ffeee61eb71c00cd5ceba13337bf4b922fdd28a3ed2dcabda48e8"], [5, 3, 1, "", "8:15 5cd43e21073bfcf8cadcce1518960b036bfe89bc84c8649e85bc8774653c380b"], [5, 3, 1, "", "21:23 6741ee5a44150ad2ec0c321b36747b2dd1066afa038ef8480b92ab126215ed43"], [5, 3, 1, "", "8:18 6ddcd54c076c63113862a4520f98cd2f8fce768efda1073f5f85a7809db098a4"], [5, 3, 1, "", "20:7 2bf24d8fa80ee0ffbea4bdab95ebf3e5bb8548ab9232916dde504fff506a692c"], [5, 3, 1, "", "22:4 df4483a0be687983a2f80e3a045c06692286121f4abd3c85b8b56914a4baaa27"], [5, 3, 1, "", "14:1 258f763536cd569ba0b21eae81bcf3b4d9cfd0cafaa068416bbe158a28c94e9b"], [5, 3, 1, "", "11:16 756313e2a5d855cb3ea595bb56cc4dde2bb98f40796e46b678e768367ecd32e3"], [5, 3, 1, "", "18:21 d845839ee3d13f10e6350246fd7aea5117dc3017658e097bb9822c40ab453f89"], [5, 3, 1, "", "8:11 ae5a443a2738de9ba0838c345bf4816bf7cd9370acb2a7911197c6d480314a1c"], [5, 3, 1, "", "8:5 7974b29d39e237f7b7019e8b023bc65e3ba22c2dd273ada7c3e6655264d52965"], [5, 3, 1, "", "7:4 4ceea157cc85755bb8711c51fb23271bbc1d673d4f2e6fd61d9356cda18af3c0"], [5, 3, 1, "", "22:14 0a845d30d4b029ed8ec0bda918aa521f9b9d0d65329349b73da593e609a49242"], [5, 3, 1, "", "8:4 f0f0247ee1270ffdca37f2133a1d7f104e658c90aa0684f8028eb2b59c6bf74b"], [5, 3, 1, "", "21:10 d6574d428b039bfa87429f66a994d89b9473576339d111783dc6a3fdb46b4a36"], [5, 3, 1, "", "9:2 85b9167ffe43e577abe2ffc662e3e62c0342ca688e1d20624dc5a39db1c988e5"], [5, 3, 1, "", "21:4 baa1cbc6ae96be8a8f4f047cc34af1e02542d64fa59a86860132f4126849ee7c"], [5, 3, 1, "", "18:25 b5b06a8ec68f8cc404232c87395c66a7634550ebcfb41fe026f61ec8e7785720"], [5, 3, 1, "", "18:16 6b2ccfaf6dbf738498a359ba99443b962f7e4e3e4acf6e47eb23204ddaaec6e2"], [5, 3, 1, "", "11:2 ea9e8ef3107dbe17a3db35ec182c1fcbe8fc64d450389cd947e13fbba936159c"], [5, 3, 1, "", "11:13 fa8bbc2efa5ec7a8d906f785e3b77771dfd096c32b87c0a0b78d6e8dfa804e8f"], [5, 3, 1, "", "10:2 f33b885ff1461bd9c3edce99af1025448f23b6f34719d2aada1b9371a66e3977"], [5, 3, 1, "", "16:17 3415e8d798ccb3986f3e21b2a1386f9cd327b61eb654ef6db8275472983bf2a9"], [5, 3, 1, "", "8:19 c151686dd6c86dcb91a93e83dc42259fff94d880d483a63df2c2065156f00daa"], [5, 3, 1, "", "7:2 d879f43c9d83baea30fcff3023c3eb6e4cefd38b2329e84eefb22c3a38fd2490"], [5, 3, 1, "", "3:5 e6423c718d6764768bee151401e902bf393bc0081d4828bf6d0736c363465b79"], [5, 3, 1, "", "19:2 964cb17edce65bff3f21bcace0a60f5cbf1e555dc894ff6898a12192e60e13e2"], [5, 3, 1, "", "18:12 5dcf378849bb441ddeaea2ae698f7a8fd5453cd13880145ac1656711d46c7d52"], [5, 3, 1, "", "11:32 de24271cf33bfa815864b5ebfcbc6988183405bef3c021b8e1b25580122ec11d"], [5, 3, 1, "", "16:22 33c5a2d77620d604b76dfc94b43df1deba183b280e340cefcc72574e4464f421"], [5, 3, 1, "", "11:33 e15958c4756b3bd003b782386a1a141722751eb4ce9fc36198479e4e13b251da"], [5, 3, 1, "", "22:12 31629d554e45355987d9a6d7c86bea4c88d35643ca4bf88b451169a356baeb00"], [5, 3, 1, "", "9:14 360d88c25da00aaea34444416884679e51030df7846dab9da0f094a535cce93d"], [5, 3, 1, "", "13:12 2de5624de002d9f4bb5a681605743df6efc7045c5bb8ed342cfbde01e76ae0e9"], [5, 3, 1, "", "19:3 0c8a79c75b5842528b1f28d6c36a9a0d505ef82b505c04410cf965ec63e3bbd6"], [5, 3, 1, "", "14:14 74db3a943063ecca182e015d816a2e8f7c71787f47f6aaa967357bb204ce2a59"], [5, 3, 1, "", "8:3 2f031a9cfde2f485697c756e9fcc79b907cda43251bb209b3d1b959e0366ca58"], [5, 3, 1, "", "18:24 b7e2794864f886686ee1f2c3393a36af7d0ad00b8d9d342bd6712091b6f1bc52"], [5, 3, 1, "", "10:1 7399dc1df9b884285bce9a5b8c11dc84c4ac1a56dfa88377b1364cb87d4a0731"], [5, 3, 1, "", "18:14 a8bcecdd608b33d4545878847b9586532fdf5d59d7e323bbaf48e998335caa68"], [5, 3, 1, "", "23:2 77c956644d235f20f56388e677b4d8beaaa57ed404080d89c723d92a8c7bf9d1"], [5, 3, 1, "", "22:10 ded68234e7ac8294cc13fb4d7aa6c754b45225dc76318b1142da37ba53c73f84"], [5, 3, 1, "", "16:21 ee1a6d56abdc0108429b4b67cd0d856c84167a672c4536ab6341f97d4f6458cd"], [5, 3, 1, "", "18:6 da5e7dad20db12da8235313f12dfaa6c7c4fee255e9067d80e1e54a475a9c70a"], [5, 3, 1, "", "11:29 73b0b3da5ffde72edf46a99296ff66d8c09b58f4e2b1902d323d9f9cb6a1e935"], [5, 3, 1, "", "11:23 394483b6ad1f27b2f3dc2ac653fd29e231d3fb38e54f517704ba85054ada35c0"], [5, 3, 1, "", "11:26 e51a92569bbbf59fea10e1f41d637ae830e52f806ac58f8fa19556a53b6818d4"], [5, 3, 1, "", "4:6 e163c464dcda586fa66030eccf1b1ba5b9bf52828e2075b9d81b0a6f3830b820"], [5, 3, 1, "", "9:7 2e21eae4b3ccda229d79c4f4a4f86c4bd703e1aba8d1118c7d7716b41d2c2faf"], [5, 3, 1, "", "19:11 efaafe3c78f2478146953b5fc46f3627c854266fc0a4fe741a9a548c03877473"], [5, 3, 1, "", "8:6 cc40a14f407c81a044fd4575f51d913e8693f738ef40ad139534f46b9a19f039"], [5, 3, 1, "", "4:11 86fa0b781562a13fcd5b9e6593f0fb31283920444492ea88757ae43e454a4ce6"], [5, 3, 1, "", "16:4 0c208741e7e3e75e8bd5586585edc747be3a9ef33c4a6fb340425fb7d92612fb"], [5, 3, 1, "", "21:22 c176fa58196e3b9169a21354de2d4e35cdc7ad169688eadce01d604523799017"], [5, 3, 1, "", "11:17 eab8fece1cd805ef10af3d99fc4dd15162f528e0721ee3b0165f345c61c44e56"], [5, 3, 1, "", "20:4 49758fd689272c0392826f2a3732543b6bdde8cbe5c4db2b2a7545c857ff396e"], [5, 3, 1, "", "4:12 68326cb71c2631710e4504a539081fbf264f5d77b8ebcf7736ad0be9bcab5ea1"], [5, 3, 1, "", "22:8 404ff264bbc3d98e0e0a537c1425f627b4fb7dc95b09f1d87c4e1f6bbbeba652"], [5, 3, 1, "", "14:3 07cb8bb8b2b5e0cdb6180c0299e313879b1505e490be99d8fa395a6b7e4528a3"], [5, 3, 1, "", "8:13 bbc8380a9bc21793c86fcd20a2b3fd8fa261fe3ac9374aed29e675bff88cbb01"], [5, 3, 1, "", "13:8 c110b9dac7ab14f90979a9920f5617dd8da3a32b5807989a446a23ff0ac59bed"], [5, 3, 1, "", "15:6 df46281065aeae6add6395484b3498c5cc1f56c1b6a6ff85071d30c1c1967e51"], [5, 3, 1, "", "11:11 05db74451ddd466b05e13f92f7002d1a5bbd98357e459d80505b0fc0192b5722"], [5, 3, 1, "", "19:10 082696c41973e38a1a35b25a89b46c05432f17d4e2bbeb5d917eba586f81cb5e"], [5, 3, 1, "", "11:22 dfcb1ce2101411371aacdbb15a17031666e178ffa3a77ebe197897dda4775b78"], [5, 3, 1, "", "21:3 dfda6e0c52f46c00d66221d8827d93115b0cdcad8ad51d9062a06e2b14f39d17"], [5, 3, 1, "", "16:1 c091d4ede2953dfdbd93f7b66ba436e8700318eb591a6906daa25ebbe45b07fc"], [5, 3, 1, "", "15:2 6b9aad456e20df8a4de1519c1ee093b2b3f13d98920642b1d2962cf4d410309d"], [5, 3, 1, "", "19:7 46b2bd419c605d57349d4c78e88591ca5c51aff04b69be70ec3b65f872c907c0"], [5, 3, 1, "", "8:7 99ecdba025304ba811aebcc29e07845a140fc3ba41095e33a8d0ea50f068afc7"], [5, 3, 1, "", "18:10 25b69156c5ec7a484b25307fd4c216b80ecdd701ee88b542bb71ec625018c38f"], [5, 3, 1, "", "11:27 a16846d9e33ce5a80d68efcb1d24f5c1e2e9934ba86b734882c989e20206c296"], [5, 3, 1, "", "14:8 7b4d34e53270867a1c6022c1d6c09dd73955dde1f5a9ccbf8f32155b641c84ce"], [5, 3, 1, "", "20:5 836feebddf1240d8e4bfc2f5c2321b55c5b9e2e2eeb8c866ceb852681424062d"], [5, 3, 1, "", "11:20 8e664ef278506ab961e1731480c81261ba08b7a02514217323708b4af6aff785"], [5, 3, 1, "", "3:4 7ef7642678c5437966b93e2c64abcdaa84e74185e3ce5c93de7adf4963eef270"], [5, 3, 1, "", "21:1 1ea58ec9460ef7859bdc28de3d2454bfd5f0d89fad0774e3f0dccf59d4c2fa44"], [5, 3, 1, "", "21:14 e33ebfed7ce388a0cf0033407562b3b4a63e5d7b6df56cb445f069b1d6196f73"], [5, 3, 1, "", "19:8 edb148b4cf98d6f392c6839fd5d5421e348cd7de544dcc6543eafdbaa13e951b"], [5, 3, 1, "", "18:3 65fd317e7555f0c5f1f52698ac1bd1429fe681957715153a930e9020fb092c9b"], [5, 3, 1, "", "11:7 f742d113591d2078b7ee2b2c7107d89b3550d51f804ad1c2d5d6a9907cc9890c"], [5, 3, 1, "", "4:3 8fa73f746bf6406507f179efa09d7e1416bd0bcbc261553178a1ed7ce5ffdbb7"], [5, 3, 1, "", "13:14 d37495b7fca2741f3fed164400ece2dcb0653279c33efe30dbc3d17ab5fc1542"], [5, 3, 1, "", "21:12 3ea4a68b843a23a1cdc9b81e4f0174f9c76a5ad73a060891279a41d78fc7c6bf"], [5, 3, 1, "", "18:15 48fe049c281a0532117b572c686a901f7a8fc2c108c67e1b42e1cf588a70d507"], [5, 3, 1, "", "11:8 3888cd4b2bf0b27090e97dedf37902806541ed4b1fe7499ab5d8f04942eeaa50"], [5, 3, 1, "", "9:15 fa58196075f56ac52b8d01e9cb00cfdb9529af1c583a3480a55001154f045e3b"], [5, 3, 1, "", "22:3 8da2358d8b54cfb271d4ef4ceed3480cf7703b2365a20b42d5cdf3522788d478"], [5, 3, 1, "", "22:2 97f165b9e62eea93d9961a8cd997dc9479497af6d7a188e181edf2788466461e"], [5, 3, 1, "", "15:4 dad07b4b2c24254b39ee962868ba851da3abfb4e88fa4ce0fef314f085672d2e"], [5, 3, 1, "", "9:17 b2c5fef9e306895e61c01a69f017386886e4f27a15ec910d892e2129c9f7711b"], [5, 3, 1, "", "16:23 d1fffaa1ad08e71849e32997524e5b534b53af3d4269c127b794d379f3bc2129"], [5, 3, 1, "", "18:1 7197f8e20c7dfa8c46878c8428779c2e06d872e3b47815cd767d14f1eb71d39b"], [5, 3, 1, "", "4:13 33e644aa682d5b680cc8538c20d96974c4692ef33e1f73e39d724aeecab9eb00"], [5, 3, 1, "", "3:2 024d54849ef873e36a69bf553b7f32c26c6e336777c9aec3ab1f8468de453518"], [5, 3, 1, "", "9:19 5dc619e3c7a42b3865b9e09a909cf74dd7733409a6dc676d5ce0776835ec2935"], [5, 3, 1, "", "16:6 12ba48b3f294024fc43fdd49467a28d82ac7c2a6e6e852a9bf8a9201823d0f62"], [5, 3, 1, "", "20:8 f748d724dc5d08a0afc5bca74cc6310d8f2d73e36fd9708085c26c5e57b614d7"], [5, 3, 1, "", "21:11 b1709454bd018cc25d9bb554a671bb3bd23206e58c426368771eb33c8b1902f9"], [5, 3, 1, "", "8:16 89234ce8ba73ca7e0688f892e1660c97f9dad740b312645882f0502e5a170b75"], [5, 3, 1, "", "14:13 96e2833e76ddface46f617de5b95f512ad2b35abd451f461327fe4fc0a76a7cb"], [5, 3, 1, "", "18:31 c442e637a527c65b19b05ec6346d50fbb5605aa1befe1daf2e9621e1e659e9c9"], [5, 3, 1, "", "16:3 7fc1ef96655d5961f2ac73c23730598d903635928712a8149267cdcf8ce0fc34"], [5, 3, 1, "", "21:17 00e7566e07ad29ae66ca966af236f682cd8a53c4e6da84b618dd37ccd7f1a423"], [5, 3, 1, "", "9:4 7e6555ba354de0496e6c669f9e7a6741d4b492484dcfcc2dd698365fa7a60eb9"], [5, 3, 1, "", "14:7 d81d41996d3332b44dfb6412c76f9014ca5e2783fe3b21f877ea56ca7cde0cd6"], [5, 3, 1, "", "9:13 6df13900857eadceabad33c0cb30734412f004ce22dd4ca7929db7825f12a320"], [5, 3, 1, "", "13:5 6f9439988b5641d2eaa940f1c522f3b9afac1b199078582b2c219d2205f2448a"], [5, 3, 1, "", "20:12 3a5e5763d187255a3ef457d3d46891e92783bc092c11c66c526a00876064f2e6"], [5, 3, 1, "", "8:2 743b62273b34b59350863d60be4496326d848680260ecd32e8129f1b8143053a"], [5, 3, 1, "", "9:16 6116e98e9979b81eab9a7ab0c7273d7762a8679a757f8533b345a57fb7e929fe"], [5, 3, 1, "", "2:4 0f726bad76f37f734cf2a31bdddacf357fa8a90a916dbfc89bdded32705c2f67"], [5, 3, 1, "", "18:17 1e2c82e1db38f740afc388f53a6718916315308d08a8fcf7b6bc4b1778b36f41"], [5, 3, 1, "", "18:13 bc84acf293d931d72ff30608d1eafef3410b249ab96ab4f02123a8e8bd23074f"], [5, 3, 1, "", "18:28 bf133e4ef0b4ff6e039b8a1ac30b2ea24adf705af5cf2a92af6a46b0542ab704"], [5, 3, 1, "", "11:4 7f822abacd536f4c7d392cf59a82a0070650471dfcc73a2f8de8eb09547bb5dd"], [5, 3, 1, "", "8:12 4f06417eb2b816c921050078ab93d2e2f81bbdc5682995739c56d6c2a428d828"], [5, 3, 1, "", "3:1 3b9e4cf4c144eada31afff6d82c75c28defe5281f0aaccd9aef03e1b77efc2c3"], [5, 3, 1, "", "3:3 c64594a113e6bb7fb595e357b4f5a5aa111db5f89f1b74d5c164010aa6394305"], [5, 3, 1, "", "21:20 ae319c9de59e01cef1c5875cf66e1bea865c095788ad753c61b22138fbb7d086"], [5, 3, 1, "", "21:24 e6544a9cd735fed1a4c5bf7dcbad5842d1a2911275d4625c2dde41f91050d96a"], [5, 3, 1, "", "13:1 0fff84454cb00168b6a6d5f137ffc3067c806ee13603a7b87dc82041c6cd2cb0"], [5, 3, 1, "", "18:7 7e6b4209512d832728f5d5b5fd8f06c27031fa1e50806d1bbd587358cf9c5acc"], [5, 3, 1, "", "21:18 398e12725f85d87fa51611c3ac78a9d489a257b0cd22f99296f4274a18115ba2"], [5, 3, 1, "", "11:18 4b9a135c41174a4d1b374036bec37ca58bc2dc1b5cdd02cfa29b818f6f6b5595"], [5, 3, 1, "", "9:18 39e66b9082ab41a3cb7bfe897f53ec7d894d3c0a2eedb848765d2d5b61f5f08b"], [5, 3, 1, "", "22:1 2d70f775bd55dcedee227416f24a3bc37fb9d5409b96077d535f6a5186688494"], [5, 3, 1, "", "11:1 493abab9453382e96f95834b89c0e5369e4813f666ac2b6457d230ce1809142a"], [5, 3, 1, "", "22:5 51b0d76f3369e3a5e62f5bf6b2365f97b322c4c2f6dfcbba47616d7ed963695d"], [5, 3, 1, "", "9:9 ca425abe5afef3fc3ff8c1fa8d087b47ff691c4e899e64f49add8e09dbe7f639"], [5, 3, 1, "", "8:21 30d959b0c05ae14096ec8a18e9ef45db9516e5df20444afd6789a6f06a342318"], [5, 3, 1, "", "11:28 89b109fa6381448c394ae86c65c245fc0e88e27972300ac7f167d84e0bbf79dd"], [5, 3, 1, "", "7:1 4b96644e63b3031bd589162d79d80f5f1f988db1395b4ea3cf2d135f2021ef07"], [5, 3, 1, "", "13:10 d4fb708b3a1b8a51749778acb59d9fbf03034f9398ce5c216e9c8c1b4de9abe5"], [5, 3, 1, "", "18:29 3a2f280736c3d305d7ca9e0547ba1b7b7f219322813aed47634cfef729fbace8"], [5, 3, 1, "", "16:7 bf443cd1c50e8fa7043e4b3aea7c4fc63e0aabd2860454a6ce5f04b4a01c2d84"], [5, 3, 1, "", "21:6 183754bda3a68ac29333a9920b7213129284f5d324afe718d3e7e1acc39ea78c"], [5, 3, 1, "", "18:19 315118e0f1a4b887efdc0b64182a55a6ae9a277af6fd11311f66dbfab8e42370"], [5, 3, 1, "", "10:4 24ed5e86bd386394eabd8a2ac4b328e9898749be29d66dab722c00236101f333"], [5, 3, 1, "", "21:9 a647dca3b224f2d82d63601390ff21febbf63c97e21b422fce1223a55d8cfbc6"], [5, 3, 1, "", "16:18 50f2d043bd7c1a6899cf0ac4004941ea2652c098001ea93bdf7dbce10b4719cf"], [5, 3, 1, "", "18:27 2eb26463fe93f6076fcf3752bb63be428ff5539a4061bee87dac732ca6182161"], [5, 3, 1, "", "20:11 fa34ee0051e0acccdf51347f463313b897b4227b5ea13766255ff2b0066a1512"], [5, 3, 1, "", "18:26 cd34050016c198eb7459bc1f8a89363f0daf54e667d2277770bcf88a43796ec2"], [5, 3, 1, "", "20:3 5f2dae4da2ea9520c29d1330b7448bfef4cf69e81cd8680d13349b19bb4da376"], [5, 3, 1, "", "13:7 3cd41126945c5607334845bb4664bfe40264f046c0340a017472b82866f65a30"], [5, 3, 1, "", "16:9 d1e65f1155e1acd346f47a814a51eeb8a7c9207a8e5936b4b1a1bd7d1f3adb7f"], [5, 3, 1, "", "4:10 27aeb45eea02cc67355b6940d80e6dcce1ac5dc5d0ce6a30e2afb8c7841c56b9"], [5, 3, 1, "", "18:9 48a640f2c735c124058c84096328af56fa56e10d68c3f4ba796121091e68e732"], [5, 3, 1, "", "20:6 782eb091e16c3a6b5052222092300db02c04546faa0f8edc38766ace20d67692"], [5, 3, 1, "", "18:2 530646a0bfd42c27bfaf45748d4f0b8c089e6d313d3c67905017587926ce9d17"], [5, 3, 1, "", "22:13 7017351a551f3038618b2d0fb7ab087e7f50230db15c87a1cfded0443d6c3796"], [5, 3, 1, "", "9:11 ca104df5047d4dcf3d9d6018e314d70e108caa663258d7d4078735ca9d5ec371"], [5, 3, 1, "", "16:14 b17a0ece3cf29a9af5df5c9a8b2301406bb89adbee4bda56aa4d0fa47658b5d6"], [5, 3, 1, "", "16:15 06d23443cbb3466875381e861eeb4acdcd6caddc9e7cbee7fab979d4b33863c1"], [5, 3, 1, "", "10:3 c4ab6ee82caa1cd55dc2e28627611665855885cd1d29e62c1ca3ff00223e9259"], [5, 3, 1, "", "11:25 699dc721a98b3b7c8991c04c5c3c9e87c9c461f7a9cd730d8456d351bbd31869"], [5, 3, 1, "", "18:5 9d8569c641c0d6d974ec123f03529ea557e3c78043b29ba6ed204b727c336170"], [5, 3, 1, "", "4:5 8a18cecaca838f1279baae3bd695a2ebc5f105487016b3277ec32fd2a592f0d5"], [5, 3, 1, "", "22:16 83dbe39f34ed5bb73bbfdc199bd2ef586623652688f98e05048c57e74c582d54"], [5, 3, 1, "", "11:9 28873afd657a39c226d5e6dfbe90eda2f198b5d2275e48d63d83fcff6666a437"], [5, 3, 1, "", "16:19 103de571717eea1f829b13cceed6230de05a7fa91e9c10b005e055f1db42a0a6"], [5, 3, 1, "", "16:12 f1e8b3694025f031c332d8b550a1ba567b40e183315963898b053e00bd60cdf7"], [5, 3, 1, "", "21:5 54aa2b80e6e76176f6c52aa25cc2b16b73a0526ec6aceeb71f1376bca1b8d23d"], [5, 3, 1, "", "11:34 4679e260d01f964df4c4854f527a55bc247efa22f9dc20b678ab35977531eb6e"], [5, 3, 1, "", "16:2 e98911288d83977a62fecbf208cd7217898c4496c84ba45a3b8a8d01581665b7"], [5, 3, 1, "", "18:23 a51004381cd393164fff1a2ba32606870a9d6064cce8fe9cf04d85b20f1857be"], [5, 3, 1, "", "4:1 9314640d69dac45b9a4f9f852d9060291e437f265f71d262834f32fea77d26b2"], [5, 3, 1, "", "11:36 95098df352a5e120808aef809396f5698df829ca3a4454751786588593c411e8"], [5, 3, 1, "", "19:5 76736f845693590923018fe78dbca8a616a3c75e4a360a8019e96c968ce1310d"], [5, 3, 1, "", "9:12 9604f4021f2759e85e5c5da7cde24c6dfee6185dcac528fb76a3dacf4e93e6d7"], [5, 3, 1, "", "4:15 02bc7e48facf23ffe3b4d2fd838ab6238ade7b0d00a1171c7f4850f71deb4876"], [5, 3, 1, "", "19:9 81ed732b837640d66610e42b451cd80d4596a9dac8492f30919573a8be46d259"], [5, 3, 1, "", "22:7 9aadea1792e4d8b3cf759598520f2d8a446a34c2dfafb731ff85a1f69dd3ad47"], [5, 3, 1, "", "4:7 74d548e2b7ae37d2f34907672a0ac128ac039d79985342fcb20b08a0cb5a21cb"], [5, 3, 1, "", "14:6 d921449659c3716930839a61143720879c0a3bc9fa0aaaa3edd2467ad0ba54aa"], [5, 3, 1, "", "23:1 5274391e12b7710b6f28a7ef79233dceaf69cef0a033e9d2a7f441e6fa3a33ee"], [5, 3, 1, "", "18:4 414ff72de304b8d5f51ed55fa6648080dce6821de269cd8d7f5a6927216e20ce"], [5, 3, 1, "", "8:20 66ac06814aa69e304c6e76a00971dbedf1387d5233cad520425e11f03d4c07fe"], [5, 3, 1, "", "9:3 db2bc9cf0ff07c2d83f7c42c19f1f26b0299fb0961ef65f745ffcb2ad15b3f89"], [5, 3, 1, "", "18:20 0f64f2e263255b0282cbd9f8bc2ec5df5d5f04cd1fe151353a3f58dd762a6350"], [5, 3, 1, "", "11:5 24f31221ee538a172dbd40ca7f70b47441f5d24619c0c7d71b11b60873ee1eca"], [5, 3, 1, "", "15:5 777120b3d2fc21a868a2ea042e873f59436b685b72a6032b485186ad442cc673"], [5, 3, 1, "", "11:21 0d739a4315b3634173f4630d2f989f3fda10c4cb81091788a44a982aeec6af27"], [5, 3, 1, "", "16:8 a794ca0dde4e9941ed5ae749e6b790ce7034083245dfd6d450ff1081510c71c6"], [5, 3, 1, "", "6:1 5ef7618ba1c0e1c7eb57702380cfe32fd40a101012baae722cc5017d09e187e2"], [5, 3, 1, "", "8:17 6cd7a3e96790491d8967a32c4aa6c12e7bc265fb236219c2798543ac52c4d67a"], [5, 3, 1, "", "11:10 bc5511c2c2fac0ba4a2014c7549d26dc3b47e1efc45745a57b9270b9daf8717a"], [5, 3, 1, "", "23:4 1ca56587481d720bd3655179adbe50c36370fe9b71c832a1a6271ad20e82145b"], [5, 3, 1, "", "11:30 ef7b100b52af0f96f406949aff0b22634f64963355f13f1c1b95f8d9cba0b44b"], [5, 3, 1, "", "14:10 2d7c48ba0c3b2b6c5741e38622fa55bef0f3d46a1b6a085b2e3c3126d21b9fe2"], [5, 3, 1, "", "8:9 1dbe631dc10dcbcaa14182cbc7292325ac986dc37e6435c88e0c8e171530200b"], [5, 3, 1, "", "13:4 51cac1aae8445b8f117fa167a6bd44ad5fe5127c2973a8a581fe8dfd3eb94ed7"], [5, 3, 1, "", "20:9 5b915ead9f543983fe6a1f6d4411aa0121d6725d22add9b0211eca93213eba88"], [5, 3, 1, "", "21:7 6b34617657c79788671be78815e6993bb19baa7e0fe35adcdcc2b21eda22dc46"], [5, 3, 1, "", "13:6 7d70af68eed186cc465c70dbd28390e81e61e14db425c5e779353bc99baebc47"], [5, 3, 1, "", "23:3 60b290c542ed976d056a274718878486258854ee4ad3902874547ab7e6f85f8d"], [5, 3, 1, "", "19:4 204b8d5c44f33462360cd6b1c4d32ec43476cc7fae9fbe3cdb7d202370669fb3"], [5, 3, 1, "", "14:9 5ff8aef954577166a2babd4efc99233e39df14747263949097875ebfd7d4d925"], [5, 3, 1, "", "11:35 709cca2dab61298aa182e48d151ce7305ba30a57d6df86d251d6e2b35ddda241"], [5, 3, 1, "", "2:1 cbd02ee8c02288e5b249e04aebfe259f50767f82a89a762666b81d9d62a0691a"], [5, 3, 1, "", "11:24 6822f178e5b3aa34dc40d855f3a712775268565250bfb20b6a8a800342a31c2b"], [5, 3, 1, "", "18:8 6790ea54211b198f819b8d618322dc387a7add951a7e9732ae8e44ba732b6557"], [5, 3, 1, "", "21:21 21814dc22378c585902121bfab807c007ddcb24268ba57759726bf98b266470c"], [5, 3, 1, "", "13:2 9334aee9e081b26024fba1b5e854cbcddc4023c922bbb04a008c2af41f581151"], [5, 3, 1, "", "9:8 4399a6c70846584a158da4f90dd876e825ac9cacaec36e9597d7ad9314f9c1ad"], [5, 3, 1, "", "18:33 f6ce6b0fca0ca80890c4285bd94cb537a986b8329e5ec02e54434f4244ebad3e"], [5, 3, 1, "", "21:13 26b534c9a0f23c8b9f12703a3170ddd07a657404cb64f1486d8bb2a193768a7a"], [5, 3, 1, "", "14:12 e8f3d28b8e350eebcca9318b8567852c70b42226ac7a6d2529996342e1771d0f"], [5, 3, 1, "", "11:19 e2fba67dc6e8362b2eb63f8630a99f82151d0ddf943e0be8719f2f2d15d1e3f6"], [5, 3, 1, "", "20:1 da4e5da6a4bdb42745c483a169cbf0174bac069a47d8e4fc4547d8a4c192dac7"], [5, 3, 1, "", "11:14 5f874feae7243e265174842c1705edb105460487394bbb55e89d57d48477007c"], [5, 3, 1, "", "14:5 5facc8962ddb8900252695d0175b7556877cfc69bc6d190d24f0f020b31d15f4"], [5, 3, 1, "", "21:19 2584e4c6218c7323c2bf24a2c0de7ae1caa256e05729adc630a7fe2b1e0f83eb"], [5, 3, 1, "", "21:16 3fd86a70e1d6ed044f78bae2520252946967ec4c75eb8cf66cdf99feaa4fe4a2"], [5, 3, 1, "", "8:14 30d886a7d822a23c278b2dbadc243b7709b339b7ed687043bd8f5d2781178640"], [5, 3, 1, "", "22:11 d49deed6d7344732b4b411d505da072749b5d33f69d71338411aa9f726ebdb5e"], [5, 3, 1, "", "13:9 840f48bd32143cc270de20c5fdb81ecce995e310ea1533781f30504f130c61fc"], [5, 3, 1, "", "19:6 340f5b5067fddff442d4f14b2fce354729a502a270245f8ee85a36b47cb19b17"], [5, 3, 1, "", "4:2 d02030de67fa90b6299b156dfe9325835e08dec1afc82ac9e50e7b416ed4edd3"], [5, 3, 1, "", "20:14 cc27da507126827f604fb160d118c199f79068f517609771fb231e681e94a615"], [5, 3, 1, "", "4:8 01f722be1236235666def2aec047d3ecb170592333dc2d5b19883b2db2863ef9"], [5, 3, 1, "", "4:4 d11f516c2b53db9e1ea73b2de1937f17529e46f2a7d101526fa2822cfb01be08"], [5, 3, 1, "", "20:13 efc0c00d248bd8cc51172623500bea993674403271c5e88d20e852c773d7e905"], [5, 3, 1, "", "19:1 fad4d074aede9aaedebde1631b2540a5e4229618040f881747a66eafcb2621c5"], [5, 3, 1, "", "9:6 3c8bd13b0796e21dc66b5379e63653e3fcb5a781ce71acb007b57d31835d0f3a"], [5, 3, 1, "", "19:12 e96c5c840968268932035da7dcdb11c1400fbac1564ceab31a811ecba499ec4d"], [5, 3, 1, "", "14:2 db5d318ea65c25f370cc35cd9802f6a817162f3487fa20540a2640b35e34ca15"], [5, 3, 1, "", "11:3 8e351f1080c459129073d0d8530951b8e82226d27242d9a1ff82271bdce4843f"], [5, 3, 1, "", "20:10 da18e7ef8881f3083b4c558241950574caa792c33598bd92c716e41a8cc53b46"], [5, 3, 1, "", "22:17 dbd28fc0d3ac8f76794edf422630af90e6c9801240cdda5a744ddd50a300e7af"], [5, 3, 1, "", "5:1 d4e26ca3cbd644e6b9a5b86d239f6b0e1a62f77aa1305bfb532477b731cfad2f"], [5, 3, 1, "", "13:11 54098cf568aea6d991b4f2f2937f77231043b31536d203e421fd0184f382a80a"], [5, 3, 1, "", "20:2 59ff4e3c6717c818b5ec41ac9bcdfc6f396a1d404c481e8b6bb7071eb4407a17"], [5, 3, 1, "", "16:16 579a72c0c0f0bd83e5d75ab49631dcb0a8276f928990bcc059a11b0d30d3a98c"], [5, 3, 1, "", "11:38 1c87e5610628063b209d50888670d8fbf0c116de208f35b62acd64b1701ea6ab"], [5, 3, 1, "", "2:2 041048152100f5969aed239f4cfbb726b0a5f11aafb03adcbd062c40bd808304"], [5, 3, 1, "", "11:37 1d38c6679b821e525c76297aa8c0e49f1304aa0d4f31f22912785b2c0960a751"], [5, 3, 1, "", "9:5 42f40f05f0350dbd74aa64e56c42a4c06ba726fc7a8b35e5bb3368d06a26a8ad"], [5, 3, 1, "", "10:5 b7b413e86deaa80c42270b0e67a9b7769446e927a1b9757d51ef9ea1a7c0e35e"], [5, 3, 1, "", "2:3 fc4778b02fb2097b1b5ab97ad2bea3bf7f026dcae8ad89e91d752e34946cc487"], [5, 3, 1, "", "18:30 99aeee8cae96d8f5aa2d485ff74576d7b559450872e3932b835df6d75692561f"], [5, 3, 1, "", "14:4 7c28fc0b7e17f3303465c055608659617c540771d11c39f7d3107392cddcb516"], [5, 3, 1, "", "6:2 1dac5db10a0607f25991daff12767344ccaeed3d4532c06f54c6f3daaaca117b"], [5, 3, 1, "", "8:10 68a2f4607ef3ef9af408f82e1bcafcc5d132a928549d34922543e4a7e1eb4af9"], [5, 3, 1, "", "22:15 2e9e24c1c65541c1f32df09a23b6947210f9071eca8be770b14640cc78cb06fc"], [5, 3, 1, "", "22:18 face359b764fc93328e325d67bde1b99c94e96a550bc044d9a5b7784a7742946"], [5, 3, 1, "", "13:13 3c17da1da1cc37beb254638ab4a54293270d991348e9aa7ce39f1e88d84c2f50"], [5, 3, 1, "", "8:8 00959a289e797eee5d2c26c92f851b2a5d78095f1c5c4ad231c077cf1a2b2218"], [5, 3, 1, "", "16:11 afd95e25d1673ff3ff51f1aa419a774d75c988e1c753d9735a8a1559c15f20df"], [5, 3, 1, "", "9:1 31490093979c511cc48f877705c29908857d10d31c22c513439cdd3e083e83e0"], [5, 3, 1, "", "16:5 4ef87517cf959f7fcbd556c7ec5b3bc137bc9084aa1cc12a22c2660c1a2ba0f5"], [5, 3, 1, "", "15:3 b64c37154896820db0ef51d026385ee987795486bfb5d7f65c754c9a8f52467e"], [5, 3, 1, "", "7:3 3140672dbfae920bc75f4d9c3c7ef03d41930b474be0b1df39c2574ac528c4a4"], [5, 3, 1, "", "22:9 1e4ed51853e5ecdc3b5084f8952088bdef2a10260258bafb3579524a407b16d5"], [5, 3, 1, "", "15:1 09fcace93e1a1ae60500274dfd8e0a817f1b0a5f6c7a9328c5d114fd53a67ca7"], [5, 3, 1, "", "11:6 dfd9ce367d4bf290e7ae6dfdea3d576766c0e2190c615c7e1f1113f9305360f3"], [5, 3, 1, "", "9:10 3b4aa347cbd159f5838cbd0b0c14997b21a8cfc9acc3c4f85a283411186ff2b3"], [5, 3, 1, "", "18:18 d945d5ada6e85b123bd526bb61b64748fcc3ecca5d7eb4f7ea549d5c8594c855"], [5, 3, 1, "", "22:6 c5b1fde32b8f99342d49cd808e66462771d3c867e9e69074ec8d142325384c15"], [5, 3, 1, "", "21:2 55370b10da3b56c04b08da6b32c4c027699ea6cc687589a7849a699dde6308f0"], [5, 3, 1, "", "8:1 6d4f6471b2421cfcf0c6e94185848a12651a125d62316b31ecd723f993aaf11c"], [5, 3, 1, "", "13:3 be3f919b0045750a0943ace11de2c5cc39ba2446dcb07439e06c395b68932bee"], [5, 3, 1, "", "11:15 7c1c7e161e1e23fa1376c0e49c44e13f336fab7729692b3a44d0eb2823eefdac"], [5, 3, 1, "", "18:32 899b935a103f2e7391edfc0e0faf91cfe3c37b0aa755206025dc4706142bafa9"], [5, 3, 1, "", "14:11 ed12b9fbe4052a1ba7eb2fc4bd1f32703501bde79405e96d6c44baf94e90770f"], [5, 3, 1, "", "18:22 f16151a0a73fadcca22c40f8de991f4579a338f3bb1885e582c86f8995bb90ad"], [5, 3, 1, "", "16:13 a8670d453f14933a28fe2abe58141e9f74e15c9c8adb968d2b14fb70bb3f5503"], [5, 3, 1, "", "11:31 42afa78c852b518f88af6b77def436db4b5393c26983141a51e07dd6750eee0f"], [5, 3, 1, "", "21:8 39290d972682eb3439b41a650ce8dc55cc5618eb221b6539b1643da301f1e2fa"], [5, 3, 1, "", "11:12 abbd965676cc9c6c017509ca4f0db2bfac5d9703fadd03e8f5f4a98a4bd13e98"], [5, 3, 1, "", "16:10 6ba6fc0058159bd884a7dd7c3744da344c3e7870545e9954e409937d1c674fe8"]], "6.15": [[5, 3, 1, "", "3:2 dfc103919303cee91ca86794643ffd9901aa77325778c63ba280365f9d864217"], [5, 3, 1, "", "1:1 c28dc0d6919f99a8d5a9e3b50553301a0c76ab5eca3c73ad4880a6f00f5e3400"], [5, 3, 1, "", "3:6 d3cdb9b835ebb3138befce2f6ff348e0b0070506326d99c7ecd043640a577567"], [5, 3, 1, "", "6:9 35f41aebc07416037d09ff5a97c5253fce2de7df9e75c929d9de4fbe767e21d2"], [5, 3, 1, "", "3:8 06ba123f6bbe35320b7d84ef5d7e09b874731dd5b73c29660397c6fbff9ec26c"], [5, 3, 1, "", "1:6 1f13dbaf54d9630e2e6a595b0759c2c4a8d57f34fe6cf3c0c0bec126fc90dc54"], [5, 3, 1, "", "6:19 814a050d4fc9ee7f0bab1848c0223b4bd667b6757604dcae405c723fb3e9211e"], [5, 3, 1, "", "2:6 465119bb7fd453dd324afa0a8dc4238f16a6d6f166a3f9af2f36323c1c79440f"], [5, 3, 1, "", "6:23 d88f1c75f863c6cbffa69c29657e1115c53a70912e3b63cf47add2713ee6a72a"], [5, 3, 1, "", "6:7 ce00d8330f82a3349d3e60bcf3723d65a6615e7770383dd754ef0e99c593915c"], [5, 3, 1, "", "6:5 9f98b146f5e3f519d49c4a5cc27e5c636fc58009070d51a8cdba623f47fea788"], [5, 3, 1, "", "6:16 b4a2791affedd1510d06abce351328641e828c613c591847cc874cefa3bbd3b7"], [5, 3, 1, "", "3:7 e8d6e37169c33a35638460e2519303331bb0a51968caf4db78f6bf0a423227cb"], [5, 3, 1, "", "6:11 321bd90dbdfcaa9c7b4ceb894803b3b97b0a87dfd90b12002b5478f31bedb011"], [5, 3, 1, "", "7:8 6c2dd73a6b8b4a5e78015a12ab14a9efbd1519d9a162ef5db39c49d16fa51aca"], [5, 3, 1, "", "6:4 22ee000894d4113f8cb1e254fee6f2cb6156c3c3705be34e97c6b7105051db59"], [5, 3, 1, "", "5:2 8e78060ed87d5bdc97d7a80f104d547001e75fe63dda373498822a1cea769cb1"], [5, 3, 1, "", "6:10 4fd91645624561c1d1bbd9f575a8575e8b09aac121d44079892a624a618ab957"], [5, 3, 1, "", "2:7 edd1dfa6e2152066f44d29878644b07b69562f0cb1ddaaa46687407cd656772f"], [5, 3, 1, "", "3:1 76c3f0d9cbc82b5cd26d8e303f802a79c3cac14ee906d37fa08f3f82d738d214"], [5, 3, 1, "", "6:22 683d5c1557155d46d5564039411fab17d251fd2aadf6db08e29702326f7126ac"], [5, 3, 1, "", "2:2 c2591bbd597199d589f0828cc9b6c1493be8833f9309a09c85898684cdd284d0"], [5, 3, 1, "", "6:13 4b8008568153111179d64a9818853fd4ced12608e93c7cb391d3bebbca4d7e52"], [5, 3, 1, "", "1:3 ffa6684591ed758c123bd99c97ac8f3c2b564c67286bc4143b4f6b7091c371b4"], [5, 3, 1, "", "7:3 377ef19ecd70653a9346c61d53ea2bcb592cba726b2701fec87e85c80391b5ba"], [5, 3, 1, "", "7:4 ff54a914ac772400ab7f8e1137740ab8ed4cb109a88eac4469cd396aaa3b0ee4"], [5, 3, 1, "", "6:15 8bb044e8939f8436404c3d077d1c30ecf3eaf854fd9ca77d18ce884f8a527f43"], [5, 3, 1, "", "3:3 caa1e7db03706c0b574634ae9a32416e067db8cda6a47d5adbd5164ff8d0814e"], [5, 3, 1, "", "6:8 8be6b0876309d2276c585936c4a66f82b7a0f32e63bbfcbb8ebbb5e2c256835e"], [5, 3, 1, "", "1:2 d45c4e602e5fcc8e446a29995cac45076b42eccda45b5e42890bddcaa67ad409"], [5, 3, 1, "", "1:4 7f491c33585f862cacf2ca8babd388b0f8535e316309b2ba3159cc723be6d9dc"], [5, 3, 1, "", "4:1 65769f4b7f0bf9a9fcbb5e6b26a1f58966bc356349e7c74d9ce48fc53a248d4e"], [5, 3, 1, "", "6:6 2294fcd2876d3e68ee5271da38ac8445007b7d3658522624e1ec58b99b815478"], [5, 3, 1, "", "7:6 fabfe690b8b6598067a744cd77a4d7aa3fc628d1441118ac4233532e401ee3b7"], [5, 3, 1, "", "6:3 786c9c18c0260006c1dbd6e14962cec2fb012e6d4697db9bd8a075e5fe0f8f81"], [5, 3, 1, "", "4:2 dbcd55ded2490510583c761de4a78678e93ec14ed0ce9f217dac1a86f1afb55f"], [5, 3, 1, "", "7:7 361c2bfd385803a13b6a123bc7e35986a8fbfb5c166507aad04479bd53e8c545"], [5, 3, 1, "", "6:1 76341e2e5ec7766dc0c0efeb173d69290676e7ddc2ae0dc881cc567505c9ab59"], [5, 3, 1, "", "3:10 12585479c350e3e0843e2d87f37d3677d4633473dca2547f15f57202375818d7"], [5, 3, 1, "", "6:2 3f63777511e3bf35174b31fe5c348a66c360584e8603e3ce47320961aba23159"], [5, 3, 1, "", "6:17 78fd4e85f7ed2bdde136e635abab8b71e8bef862ab9d2f0e1298e80b8cd25b22"], [5, 3, 1, "", "3:9 5ad23b0907a29189fa1a74f8bf5476fb33b2fc896867ee05578a56cb100c6a62"], [5, 3, 1, "", "1:5 2ae7fbc17de06563bab4b5def815bb8c614a97ec994c1b366a97986b82bab1ef"], [5, 3, 1, "", "6:12 53c790e0a17baa1dcef15441e67d7fe84f88a8a02a1b883733d73bc34ce24cf8"], [5, 3, 1, "", "6:18 cc7470153aa2f9c1f440ab45ce0dc158071c6ba5256ba0ccbf8803dc062ab353"], [5, 3, 1, "", "2:10 0696a4a3b5ed6eb90e20ca85c60062772b02baa6d24ebae318d2095a18fb4fc8"], [5, 3, 1, "", "2:1 d4c1d7e8e87bde117f7eef40c2ed32dc1c2a695289603f5334165e62e21ea011"], [5, 3, 1, "", "3:4 e77b64bb75965059fee8ba69865a044c98d24a10f4ff9b87845e4bf0c5be37ec"], [5, 3, 1, "", "4:5 8868caa2d82cf27983ef85d9c1fdef0ae951dce04f87c0b087973b7b2eee4c45"], [5, 3, 1, "", "2:9 a424a37a558f279d3eb06289eca3e8149712a515006853466b2611ed10a46123"], [5, 3, 1, "", "4:3 d93a03586b9947d27de86fb8e62b6a156cb8bb2f62500dcd24c757171cc8eff7"], [5, 3, 1, "", "2:5 e8f136a176cc0fe0f3606d8a8b17073dca041afb3be51dca7baad6ec757ed5e9"], [5, 3, 1, "", "7:2 74df3acc9f454cef49a7ba6430fa2714b9bdf1d480f791367943a7f0df8f90a8"], [5, 3, 1, "", "2:3 5e1a9650f85ac94e1206998655ac484d49b8d873790fa1466b26090a9c4e31b7"], [5, 3, 1, "", "3:5 3e51cb18f2c75e888c4486c269a44ff5c2f930b7d852028948bddcd9c20b982a"], [5, 3, 1, "", "5:1 854fe727482c863a6ac68633f1b03cdb775d6fd369dfc1555967870c794666d0"], [5, 3, 1, "", "7:5 09b36c35bd51fddd17ca377ef398ff6638506a4ae181b94585b82c3ce0acdadf"], [5, 3, 1, "", "2:8 4d4e481fa82745916564f6987fc8a2b8f1810a95fff0051bbd458414e8de7eb4"], [5, 3, 1, "", "2:4 77829c689886c3f3bb6c1dfe3b0fa04247f0751c665b3e8ac112a26ee181502f"], [5, 3, 1, "", "6:21 3bb40dd59b9591b997eb61cb83d0183babede69184aca68aa875556213ae03ed"], [5, 3, 1, "", "7:1 49b3e7e14f92deb7aa014630cbd240f23c879f0e06215675083e2cc8e2ea0ca4"], [5, 3, 1, "", "6:20 7b9921e75e5329e2cf5d41b41758b55590769f045e313e6ba78bfe34b35d3d0f"], [5, 3, 1, "", "6:14 ed86179c1505cf9edbac787d45ace6e323297724305d5a1ba5d37bd9159fec7a"], [5, 3, 1, "", "4:4 8591ccb83f7eceed6dcd5cc4e8fe84102a7018a1e95b2845425471f83a3d18ac"]], "A": [[16, 3, 1, "", "2:34 1c4d9cbfb808d36160fd3001c512e6887268a758682958c644bcbe07f04a32af"], [16, 3, 1, "", "2:21 ee98c5a9da1ccf20da27dc04bdfd4c6b0ee7b4dd5180bb435515d300e6aa7c1f"], [16, 3, 1, "", "1:5 38194322b850acd0ebe5ec95d660959c07d88f87ef2fe6c7912a773201dc4836"], [16, 3, 1, "", "2:9 a5fd12a0acbcca3ac4cfca07cb3a66976c749dcabc7c73c69ed9abfad2067282"], [16, 3, 1, "", "2:4 a423d8767937df97db94bc21dea4f19e65f5d2a464521f2deca8482ccd4eb2e1"], [16, 3, 1, "", "2:7 619babacc89fcc3a48bee87f41d8567998cf7926a806e7bcb31bef0bc1bf70fd"], [16, 3, 1, "", "2:26 c6ab38d458c9605260610ec31abaaf83a03d54cc4109c75ce57d5330b7e0ae43"], [16, 3, 1, "", "2:13 03e71fa54f500a9dba9a17354fc29921b6a6421fbdde23db702448cfe7f3d731"], [16, 3, 1, "", "1:2 ef760ed2bc838098d7e8efb78966c4cd75d281f71907582b05283c54343ba0ce"], [16, 3, 1, "", "2:35 9c3bd1dd9f6780741a46dfb5af593752082db35d8ce9d3eb8ae7d663e403c665"], [16, 3, 1, "", "1:1 6af57950721e83dae393e90ca8d980bdcca5c9b81a188fe360ec5adfda00b6d5"], [16, 3, 1, "", "2:3 511b49aedd83a0711011cf0a3d3ffbc8faa1c1443f13b71376c4ce8d0b1c6f6d"], [16, 3, 1, "", "2:10 aa73e595c7b2ef9149acd45a1b91fed2704f511303a5b2ae619eb01a1ffb9410"], [16, 3, 1, "", "2:12 67a79516239a86e9f3ac268c33cea7354013e2efe8dae4acf776dbee55bdf3cb"], [16, 3, 1, "", "3:1 43b7d2588a00010b6644920dff56e6f4652ec966cf564d52f3e5e87748e58bbf"], [16, 3, 1, "", "2:8 d902ee93c8c40420453bff915be7d882e3390fbfb7c3d38905a094dde4369625"], [16, 3, 1, "", "2:18 74231e6684fc04c3f1ed8c36da5619eb35f84411c9f9fbbc9354ff69182ec20e"], [16, 3, 1, "", "2:36 a3d8a030eaf80e2f2d7b0b8c819a8b4a03d2468cad162b5778d7535713e6eb54"], [16, 3, 1, "", "2:33 839ca0d83587df0f49d5e7af7a86cb4ed2526d3c7a4fb98ca1e7031d41e9c3bb"], [16, 3, 1, "", "2:29 5cb92d044eeac194b5d3a2e2fed02e650bdca56fe9e6386c4729f39717879270"], [16, 3, 1, "", "2:37 2caf6f88f365a1f0b8673022f566d0e34e5f487002cbb975f7a3810984aa2b33"], [16, 3, 1, "", "1:3 a5f9956bcdfc5ce615410d2af601a90ce92f066360a5467a27d39718da318796"], [16, 3, 1, "", "2:27 dbb66a9641f131e6288803d7b31289cc46c0c00d4bf70ecaade3c44dfb5acfaa"], [16, 3, 1, "", "2:31 df088a3e94ccbd2e98926c4f5ca34fd02f3cd8dfc3924b7ba3749ef0eb08b68d"], [16, 3, 1, "", "2:14 d890372e8c497682bf9b4b51d8b75a7211ca6e6b4ee30436e8c59dbbb0149bf3"], [16, 3, 1, "", "2:32 1a6497e3eeb694644723d0a451104bff4dd133960c27e3d4e9b6c5282cdcdf2a"], [16, 3, 1, "", "2:16 f0a11688e77729f1b2fa1e4efbc104a39c8fd916d1f58f90eefccd38b209c0d6"], [16, 3, 1, "", "2:11 c9b7d6603bdf686dc20a9604928e83ad51a6e432ce273673e0619de6904ad3a9"], [16, 3, 1, "", "1:4 20b03a1ea2320f89250e61fc875c4f01597a27856b189891293511d1c3c55df5"], [16, 3, 1, "", "2:2 6b9064c87e131c2318a938f837e161eb0c65d3f5fb3d76f34c6a07ac89c08f73"], [16, 3, 1, "", "2:25 c502f762cf1f733336f2b49fdabec625a400d1b9137ba436de9acfb180ea3681"], [16, 3, 1, "", "2:6 0c8baad676d0cb1c29fe117e5864ef351160f102c13d047d354e16c2145fc69a"], [16, 3, 1, "", "2:19 b5a621567e61cacbad30b9320aa5fa59abe37e46a15e890c42ad445536c69bd0"], [16, 3, 1, "", "2:22 870cf6f77ad5d8ef0cfde85af78b7c2a507c6e6c8db5bbe62b60548c02229cfc"], [16, 3, 1, "", "3:4 f227391839011fc1299d7eef9855e682ceab676478b839480bb5cdea3359f70b"], [16, 3, 1, "", "2:24 d3162aaf802254c584ffd111d733498e754b056c61bdb59144aed5024b8bc566"], [16, 3, 1, "", "2:5 bcc06c2a274e4878336dd5b4c71758d3b854dcf325e9f4ca54c1c6501dccbcee"], [16, 3, 1, "", "2:17 4a50d529d3ee650e897db5b0f8d99db215c718a75f11d527d5c560abc287de09"], [16, 3, 1, "", "2:15 85d7c24f5cba0d54181181872cf27f0cad45c28f1d281733ef26114ef08e1bea"], [16, 3, 1, "", "2:23 e4c5f14a1bc396e634f99d3e9c008a29af8f84b61dc6da057710d23ebb6a1855"], [16, 3, 1, "", "2:1 7659351efeafb9bcab1f7bded9384347863a49e48384d8b8f59f4aadc9c047d5"], [16, 3, 1, "", "2:30 a69bf85bf1838570613037b4423858a9a047187494aea6e78ae1c91c9d58f711"], [16, 3, 1, "", "2:28 f6437e117dc2304d057d9a5394bea1e927d97d91a0451366fb3bdbaa35556c6c"], [16, 3, 1, "", "3:2 efda707a511b8c7e80727098049e5458105f2960dc74c0d7faa11a43f7e7d997"], [16, 3, 1, "", "3:3 dc6e47d05ec79c0cbaa15dd61b6a60ab03fd6f9d7e2f51df6828fc53f4916265"], [16, 3, 1, "", "2:20 aa50ce2c3adbcfcae86514a554462ac599522a77d99072af00fd41aee7896afc"]], "4.7": [[22, 3, 1, "", "3:4 fef244abbffea76d85673c8b768c80e3998096122c5887ffacd05a346939ff67"], [22, 3, 1, "", "1:8 3a43cc40eddf138b65ff58d01174bf0f377be62e4998881c0e34b316af1831fb"], [22, 3, 1, "", "1:2 d51b172a0b8675c28c409e4d5ea5bce285ae17d936f4f4af0f5a80373b22ada7"], [22, 3, 1, "", "1:6 5860cccedbc0ac25984e9603b83f1259c4af97cecc8084f5c140164f6865c5e1"], [22, 3, 1, "", "2:3 82bd1634fa77a9d6d3b725fb993892cad15fbe87ece6afe59b2f171f2a7721bf"], [22, 3, 1, "", "1:3 2d95eda82b646831bce5a240ff70e298c0a039e3ac40cb6198cb334c8e980d60"], [22, 3, 1, "", "2:2 f69e8334863b9e2b7f3bf48725d48a8adf59c48c3dd802341bfd611dcc03d690"], [22, 3, 1, "", "3:5 823004ffa0528651765ee5a2a23b26f7a33b4255a564f742c3923781a6b70102"], [22, 3, 1, "", "3:9 fef35c5ee01a70578d0ee80139418ab1d555636b9d7a83d7cf5bcf38dc454153"], [22, 3, 1, "", "1:5 4107a933398a84d0b8af66fd006db6a72808511b4af3e4c47b71b0dc795fc8f8"], [22, 3, 1, "", "3:6 19c8db7f4aaa3f7224c336d60e3c57d17ef21d93e5ececa9fbb1d09175936b0f"], [22, 3, 1, "", "1:4 4c515636546df76626dc2ce272596af3a6ef395d6dc61f52cf315cd82732ef87"], [22, 3, 1, "", "2:4 6bfba3dbe307a3b99ae68a7d7ad6ee97648893f1aaa0a786262bff92bea33aa5"], [22, 3, 1, "", "3:3 989727897539b6eef42387c5f240b13d4ab9aa9f269a111e510879ada1ae0960"], [22, 3, 1, "", "2:5 9a80943af437a0fd5e67c5bd656fadb3ce16e6d7b59218c8685ae1e0a2c4d9a4"], [22, 3, 1, "", "1:7 d2541a3280f1d894821db0f1648bbadb29e2c211db75fba997f3d2832ee527c4"], [22, 3, 1, "", "3:8 585dd4699fdeac3e280d38797a9c9f9565c4194543b3c1c048a0ef33913a5e66"], [22, 3, 1, "", "2:1 1854f3b6844b0c2671dfc60d36c4b998358f29c120b234bec672c72aaed507cc"], [22, 3, 1, "", "3:1 e9a8f32c3bfd274934e7c471016afe023d42728464a9c6ad6934f0738cf79a22"], [22, 3, 1, "", "1:1 276ef1476e7ceccaf33821c0dfadd47de95e12defa884eb6eb9da1bcd89311d4"], [22, 3, 1, "", "3:7 2784f42b85409ac61fe875e01d21162c086f0411280475dac703bf1a2ae98fc8"], [22, 3, 1, "", "3:2 15503795396e6eb08752e159af664fcaf59c4c7eb0d754480fbef0251d74b28d"]], "15": [[18, 3, 1, "", "8:12 aa403db4f036453bba3271f4509a2302488c5fd4205bfdc4f54cde71db726013"], [18, 3, 1, "", "8:11 04f68fcba1cc880a1b5acaefe6abf4f93cac7e0150747463062aef3aecedc14f"], [18, 3, 1, "", "8:21 67a942cc52a66f9f90a3a9131beae16808a17f3f4d7d49fdb08ff42f734ce302"], [18, 3, 1, "", "8:24 c3e4aa156bda861e6ef22a6fa15d0e213a08ac8a395097b3bae8fb744bcac564"], [18, 3, 1, "", "8:7 e18cce725d7e3e2f64db15d95adeb42a7a9e3d806e422bcad663e4734ed8ebab"], [18, 3, 1, "", "9:8 4b4f51cb30705d0cc7632e1f0e4132697ef1cdbe4cb781a401e1baf0ec958fba"], [18, 3, 1, "", "8:22 1dec6a051b1fff3a1bdeae59f4b0c13eae973e22d62993017cf9176ae6c41ef8"], [18, 3, 1, "", "5:8 97a3445c9540e7ad4cee9865d34bc4dd2fa75219dffd54e92dded06b85c59541"], [18, 3, 1, "", "5:15 794dbaeb036da65d453284a372c0a58b55b03099b8433c2c1acea02cf3ebfd44"], [18, 3, 1, "", "5:5 1f5f58ea8bff9c3f06d08ec8804d370315b1c1190ffc8f6354263a3d92fe64a7"], [18, 3, 1, "", "9:14 beaea22f979a7a281290ec83d8d0ac0786a9365b64f973a51a5c48539df32310"], [18, 3, 1, "", "5:14 1f27a382873eeb1cbf8a680f1f4445841e31a6ca70791b7e72d1f0064c2e99e4"], [18, 3, 1, "", "2:4 b86bc58a37e2d666845ddee6d0ec0fd647264ab45a39b676bc6bf201782eb03a"], [18, 3, 1, "", "5:7 e84118fd70dabb3e58425bef7f6dff825e6a847042faa9129285c5a1ed911a36"], [18, 3, 1, "", "2:6 0cd3d0fa123e7c11a9a250acaa0cce74c5f8760b6099acac8e084cea9be81ebd"], [18, 3, 1, "", "7:2 99e01849a304562c74b7705792700bbb8f792f332352a99fbdf6a23f3f2749a0"], [18, 3, 1, "", "9:10 61f14bc12e0d1c55c7aa99cf8c4e500d1effa786d1f50cc8ac8463693abeb1fa"], [18, 3, 1, "", "8:28 690427f07bce841d8ea70b8cb0864491ae88e1b7d4cfcf9ca2fb45657c8c0d87"], [18, 3, 1, "", "4:19 03dd78205c60d4db34d2c0df7ae70512ef3146fca9448710dd95263fcd3f6d2b"], [18, 3, 1, "", "4:16 149e44f235c43374c698f45f8d37c9cc0f3fdf6259dbed8ebf1e378cd322196d"], [18, 3, 1, "", "8:14 3f43cdcc50a1a53af990b4beeb71262819034dd32a82fcb54484c052b19b44c6"], [18, 3, 1, "", "7:10 3a5360261dcb8e8292661839009fff3c71ef4a3d1c9f45a2d85f861f4b707310"], [18, 3, 1, "", "5:4 f8d36262285cdd2b4bef51b17a98103be0501e5e38a087145322a3fd9713f59c"], [18, 3, 1, "", "5:16 2f24b0e12326e4ad6c1cff5ea009d0cc6878e98b4f8f16fd738a89a432461c62"], [18, 3, 1, "", "4:26 6a5074176f0372826a30df9614dbe4e54b3e06eab80a1ce84b7b9d7c94e3740d"], [18, 3, 1, "", "9:13 095cc1d51b861087a618aa1e4e9fc0377405a71c6d4d02c44502cfbfb34e962e"], [18, 3, 1, "", "5:18 242ee9281937fc599be5d057484f99ff16cac54d4dedfc9817b957bbec3eac6c"], [18, 3, 1, "", "8:1 fa365174cbf5682b2addb5a47523a886be22f15c45e88cb5d01ef13a92c0d9b2"], [18, 3, 1, "", "3:1 681fcd31b82b3e32670aecd9ea9b4eb8068d07a7b2cdeaa6d9fb1442eb63ed86"], [18, 3, 1, "", "8:29 96c9a3b88a3cf78a0260b534ac8bac2c2676692e6504f28abb95658a7c723ea2"], [18, 3, 1, "", "3:5 71b66b39ac5995dd5408a51d900c9e4a4c0b3f6de90df9f32eeaf0c9f79a747a"], [18, 3, 1, "", "4:17 cc4a5686c478a89047c0820552383801bd383016256838e3863695f994f8b314"], [18, 3, 1, "", "8:23 92013afe5f273d886cf33357afa293c5145b38dd0ea03a2758611998c0ac0b32"], [18, 3, 1, "", "7:1 58a815029e5c5abf31dbdc0ae371a884c35141c19fa227ecd118d8ec5c7977c3"], [18, 3, 1, "", "9:11 2ac52c80f7a45d49874b8b452b7d5541e0200bef9c38d6f5b32c0e20bf9296b3"], [18, 3, 1, "", "9:4 14fdcee19609abf8aeed5f7e20952a848faecfba256dd405eca3cc49a24b338f"], [18, 3, 1, "", "9:15 b0246b982f33561e6c330d7de3f8c8d00db491873c9db1eda52117c58981edbc"], [18, 3, 1, "", "7:14 a023dc4d0c98b62c2d9576d70e51108a0fdb29ba3f14769c7d87ab09d1f0938a"], [18, 3, 1, "", "8:27 750908f479d13e69946a538f5a81e56c3d71d08e5c2493c6129c77568fe3de66"], [18, 3, 1, "", "8:16 05382bcb6a5dca3a3b33debf11b819bbb3b2b29f4559e6beeaad692d688c87c8"], [18, 3, 1, "", "4:5 3b7581ecddc33582b4cf58929333c27e97df213d56721343355ed7008eff2fa2"], [18, 3, 1, "", "7:6 b88a85aa7e4b1891ac3ed4ca23a4b92b4e035715e966e1f848f1e21427d23845"], [18, 3, 1, "", "4:1 de2ae1e7180e12235906678b7ee4195bc10b9f11839f8d171f9c875c94521eca"], [18, 3, 1, "", "2:5 5948683124b4a837517cb460bac495efff05e298bed8420a688b19d16de45eb2"], [18, 3, 1, "", "3:4 bf9feda03dfdc034cc70417fab5c0fb8c43e76acb709672e810538a059178ac6"], [18, 3, 1, "", "5:12 994382b24fcb146882e480cba7da6ddcbbb55a473b76161b1167a520daba8fde"], [18, 3, 1, "", "2:3 ba3e26bd692acacc422e0367466b77045e1802b133f0ba5cdf155ae1e2c0b5d4"], [18, 3, 1, "", "1:2 317ff352b8f0f3c112a25e2c334aa6f7e2c227140ef1153851b0068b65544c4b"], [18, 3, 1, "", "8:6 62c1b4c8906b7867a552ab0c166e92d1673c4e6c996c6e82c55fb18155b337a5"], [18, 3, 1, "", "8:9 7478e15bd141efde6f849fddd3e660a3198328261280e11802f707445106483f"], [18, 3, 1, "", "8:32 571f4508156e008bb63439e1b7abe647297d7fbafe515b8c2a3a24456a52e99b"], [18, 3, 1, "", "2:1 e347ab2d0c9e7fb6d14b8e7ee107a2220a39391724c13eeaab6b25939b1be2d9"], [18, 3, 1, "", "6:1 b715c62ba79445fc86b207de20ae057aeb387fa46fc4a9f8b5d99105c88061e7"], [18, 3, 1, "", "3:12 7ed63b28b2b7484eed35560cff9dd3420475b6cf99b8b7e943fe944ad33957d9"], [18, 3, 1, "", "3:3 f967a5d91406384965a89b7d358d856f9b96ad76e062a2aa0cb0b238c5053633"], [18, 3, 1, "", "4:22 fea10cfdc65f1e4d588fe2818f275ba47fdfcddd88877c316ca57791ba5de14f"], [18, 3, 1, "", "3:9 d346ee1754805482153eb4b0ca31367a70b20b0e6b21c40c6d681b5c9b3409cc"], [18, 3, 1, "", "7:16 9a3ba3981279a98242813d19ecc21dcce387bb841f1be9398442ba10e7d9addd"], [18, 3, 1, "", "8:20 a35aa796d1ab80a5df343d39e3e12923a8a46fd0df82325bf334669986e7d03a"], [18, 3, 1, "", "5:1 ff08808a01947415fb2eb38d55e453078c88c4c344cfdd584e2fcd09ce24ec29"], [18, 3, 1, "", "9:3 bc677cb2ecd387ad028dfeba3096263c7bc2aa8bdf981bb3fc76e9d4bd8d0885"], [18, 3, 1, "", "4:8 1acb26f55ea7c004ebe759dee3d3aa058f514f0dc242d2f980413f9e5269d8e9"], [18, 3, 1, "", "4:24 c316a6c432e9e7d33fde24e96df550a3e74333f7b65cd38e5a7f799997d5db11"], [18, 3, 1, "", "8:4 557bd0675e3046e13b7a004ef78b8b0f946bcca78bc242cb76364e3f991f1d3a"], [18, 3, 1, "", "7:4 25fab97c21fc263acb73e4f9c015d9ebb7c96ec0f09fdfa35e4550aed472dde1"], [18, 3, 1, "", "7:8 6700d76d9b324a672ad7ab38cea76bb82dc3777d197b6f7e89d0e5f3156594b2"], [18, 3, 1, "", "9:12 5cbdd388b3d5de9f7fcb63733ebb916504fce634b415f2fcd87d3683cdcb52c6"], [18, 3, 1, "", "5:13 754c9ebda067292c99d20bc43c433c797e386d1c651bf1cd0d37d42596ad9b86"], [18, 3, 1, "", "5:11 ce6808e7d0727241eb783b7bdfb02998d6e5865d3d0d97dee49053512f5a3943"], [18, 3, 1, "", "5:2 aeefde9a0ac87118b21744a83a1a7e010b3cdd7a6d484f2225c2909cc9256ef6"], [18, 3, 1, "", "3:10 e8deafe60392b60bd424d7aa0309647dbf4ed1e7325348f23f15970de9f05ebf"], [18, 3, 1, "", "4:12 958c02a18095324946b8dff0ea0a0e73b7cf7e255dffeaad921362798fa774a8"], [18, 3, 1, "", "3:11 8d9978a993a2da848a7a6a9e23d189173372b34e01fa6d81ba7a78e75f621064"], [18, 3, 1, "", "5:17 45a7939e44809197b647eab86a5bbb791bbd9b7b492d99ff134fd6b1b35bd6f6"], [18, 3, 1, "", "4:21 f183cb055a44d89fb2eb1b2848aa4536e06650cf6344a523690b83a29d829f61"], [18, 3, 1, "", "8:17 c38a81f8df72f87ccafba9e41d742d2b2de00acfe77e463a03ec5d0e96082258"], [18, 3, 1, "", "8:25 1f13a26446ed0aea0e199436fd0adb97cab249490f3e88c061ca7f09229125e7"], [18, 3, 1, "", "4:2 437a4bdfe9c8e90e143c24e1ca0e4cb8226d0c5ca7f02bc701a25d5adc9b50c0"], [18, 3, 1, "", "2:8 4f92e492c63996bf71cb5f3ffb86c48dd7a928decb62b7ea6fa936acfbef7a78"], [18, 3, 1, "", "4:7 20c3b044f90c2789882b18d6e87d0e3e641507a2d6af5c0de0ae5274181a7d06"], [18, 3, 1, "", "9:2 0c3b33caf3b9c961df39107ec74da60de4eb20ab99798df119cb2faed79efe15"], [18, 3, 1, "", "7:7 ce0fe2c8975789b3ccac42978e94c8cf22385f6f021e809465af734f19bbe334"], [18, 3, 1, "", "9:6 8da2ed90a465a8e65f20c991391be8fcdc1d7b7d35ec5e06dfef767d9b68cae4"], [18, 3, 1, "", "7:13 3df5eb307218abb09b95ebf9bab92992011b11bb1c5d1e246c3160e5a71afd94"], [18, 3, 1, "", "4:9 f6b207663eafd42b6f7e8445b48751f5e9f3ca1c278b649e94105c3b0c9d95cb"], [18, 3, 1, "", "5:6 e1dedaef11fca8fa7e09c7906b87ca804da421ff7b5ada8a981d024d16ae5c6f"], [18, 3, 1, "", "4:15 d898ade965c0b2fab9cda5bc5233816f4058b485ac65840643912b375625ae78"], [18, 3, 1, "", "4:14 358d780a2a3e8a51b742e63c460cc75632190978e72b9815081a4a81aa80761e"], [18, 3, 1, "", "7:5 e33f94694a42a7f211aaec4bd688778421eba9168af369f075a51652a55c55d8"], [18, 3, 1, "", "8:13 070c24d985ad07d4a8affc27d166c94f9beaee7f6c83f82c5249ef04eb845c8a"], [18, 3, 1, "", "8:15 38a763a575ed36ac0f33c0e4c97708f46f5634a6bfca712737225d732788d27f"], [18, 3, 1, "", "4:11 7f48612f428ed200a7e825eccbdeb3e446b9610271bd51fd922132fbe878f65c"], [18, 3, 1, "", "8:30 41cab1feee08b6f4c71f9ce9cb18a539787287a0d87320b8477673fd090b1221"], [18, 3, 1, "", "9:1 6d998923ce960019bd73240feb0f4f1e3e9d705bbedbaf213c73707899dfd504"], [18, 3, 1, "", "8:3 aa4f1d2f9b7ef3586caec5b558b58e35cb2b8cd615ba21adcf9234ba7283bec9"], [18, 3, 1, "", "4:4 25fd85d527ce1e92367c4336524809c097742c03ed948860ca2f57d950ed5846"], [18, 3, 1, "", "9:7 df8e0a488a8a05da58f4656abffbbd5eb240a8a0ff05293049814a5fdf5acb4b"], [18, 3, 1, "", "4:10 cbca8f374f46d1ef54e4cf6beede54e85406b5090edddcbec4fdff0d1c91b6cf"], [18, 3, 1, "", "9:9 1dd15f42037f9a83cd43f4dd42e7ae00f8d5a9e674152e738a0abc09c7f2ba8a"], [18, 3, 1, "", "7:9 27ce20568cf31821f40322d7cbca37c6e7f9a154497206aa2cd66da3c71e14fe"], [18, 3, 1, "", "4:25 2a70cecfdc326c846957ef22ba6e0c76d8a4facbba9982e01c2fc53517b16b2b"], [18, 3, 1, "", "8:5 89634ecd6c544d1fbf8a649d790b5173d2a09803e97525c89f9d827df73ab265"], [18, 3, 1, "", "8:31 d23e4c8eeb0eed8bb71e11637e19abe752abf0f59454434c187efb281833b269"], [18, 3, 1, "", "4:13 72159700271717da9f616eff159a367b6f9b0637825319d7dec05001f401a601"], [18, 3, 1, "", "8:10 2210651d12709f733124d5831bdb32f27f192f93fa3be518eb6b7334a6531966"], [18, 3, 1, "", "8:26 942aadd6edb16dc7e80b6f2cd3392f324ea9d00f9e61794c8fa5ec6b65b30d82"], [18, 3, 1, "", "7:11 2b1fcd39b5b78562ea6e359c8e98307553d5ffc8a1c9188166ffd9fc296d0a8d"], [18, 3, 1, "", "8:18 08316305ae1b30302790dfc45803df2f527f449747eb34b2a91b407beec878b4"], [18, 3, 1, "", "3:2 1a8fde4fb240539c10a88279cc4dae22433448e6531485e2124cb8558d6c828c"], [18, 3, 1, "", "7:15 69b3fa403d23f715b291788890e24ebd09e6b009e67a21e5edf9c25f29e037eb"], [18, 3, 1, "", "8:2 7fcf965dcbfb27fdef8959d59a625da3fa44a0d931095edf51cd4b5db75eb01c"], [18, 3, 1, "", "3:6 0f5c895a4ac62ecc6ec04b6282dff022b535c2a19bd75b50defdbb28493da899"], [18, 3, 1, "", "4:27 4478129ff7c47921151d2dcf57a362bba167ad848f1379667903982fe9676594"], [18, 3, 1, "", "3:7 f0435a5375c7104a39cbb51a31167f29e447129fae4e42da7755fd5b0d546300"], [18, 3, 1, "", "5:9 8c23071abb8829ee058cb57ae16a5f81b804ff2c1d55f7ec813bdf648a0e5ae8"], [18, 3, 1, "", "8:8 06a9f847c5fd97acf184ee400bbbe296accf5d480e6cef5d1766f5fef9270c17"], [18, 3, 1, "", "8:19 770bb15fa73a6c965d591c00604c440c7de7c3e3257c6f0946cf7be4e1cb394b"], [18, 3, 1, "", "5:10 5fc750214c56a9e1435062359732e69a801b4413b5f235c73614e41074c91c13"], [18, 3, 1, "", "4:23 3e31ed577d258e6cdf238a0549751e8b896d9c2cb6ae51fc176c88803e14822f"], [18, 3, 1, "", "3:8 94a208b99cd67ebc20f0f3baf1d225f9f8e7bd033c2196e35b0a01a1aa4c092d"], [18, 3, 1, "", "2:2 6ee782d7b7403e35dd81c6622fb5562c3c6116ef95eca20a6496d36f6acfe442"], [18, 3, 1, "", "1:1 5144c7d76d836132f4544481a5a0aa566e56d0824bc6757bb51dfdf413f2809e"], [18, 3, 1, "", "7:3 780a665cd5b58bccb729342e33dea24cd6f074a7109cee63ca9412cf67d69b2c"], [18, 3, 1, "", "2:7 063dff1709d956a48b2bb9876a5fabfda25c3ed4b35d8449d19f6163c27811c5"], [18, 3, 1, "", "7:12 622d773bd119d86de850502b8e92eee57b581476e14eff7478ba5d558629c86f"], [18, 3, 1, "", "4:6 9d0d7ecaba0ada2895a59198323192c4c0562b596b94bea2c49be0968c22b934"], [18, 3, 1, "", "4:18 fb76d5f2ecb1ceb8b3aa709c4729fa2ce46d3bf98262aa34f8d39dcdabc2aa10"], [18, 3, 1, "", "5:19 162688f5929bce2f33343b1dcf6263ceb3ca10d03307199ad9ab3e4ec746aaf9"], [18, 3, 1, "", "5:3 632e60b88c4c64ddd9b7398bf3476151bc5701ad1b4a760220667139cf7bb56b"], [18, 3, 1, "", "4:20 5812abb90fe17f8f0b9ec36241547534230a80cfd63db34d650ad71f90d18b2e"], [18, 3, 1, "", "1:3 5aae1e903f79062d2e7d47807976de140feb73932e1bd4d1db63f2eda9a280e8"], [18, 3, 1, "", "4:3 35970b8df578395e654434eed83f9a06ec63a12c4bbf7e89bdfb97e21a7b9620"], [18, 3, 1, "", "9:5 717f7f256a61d53de344e5a6553b5529ee34e430a67efc99ceab0162e8631a2a"]], "14.9": [[3, 3, 1, "", "2:8 72843d941971110fefb9a9b6995ef90cd5b564d6639651630b631e41ee4e491e"], [3, 3, 1, "", "2:27 64374639950e73d231a40ccb24e159d9cd1d7dd8e03cfab109bd17a57ea06805"], [3, 3, 1, "", "1:1 aaf0db1f36f8f15b96618b5a70cec4a15e5d625748a8590acdfb9e046f222dd1"], [3, 3, 1, "", "2:23 2cd76e3de2de59d6830b6ea7fef86225bf36e7cfcecb6ebec75030fcfb2efc73"], [3, 3, 1, "", "1:8 9f3f6ee5e9400959e3a4445be267664e3ccdec6bf0887f243d3696b27b6c2ac2"], [3, 3, 1, "", "4:16 f1bf72c3463050e387b72d2514a1d90f3ce47bceb98da6b23877d0cf3a67ad9a"], [3, 3, 1, "", "4:20 8d75724256d8acc0107bb9928323bf6eebea21f3cb90023f550e681bd0f4c068"], [3, 3, 1, "", "1:7 3c9f984a5a8cf97fecfc89b84a15e8ae272e62c460b0988610134cebefe43a63"], [3, 3, 1, "", "3:5 f9822b671141f854469f2aa328c18a596471e264a51e4f3c1630f47b3b828d76"], [3, 3, 1, "", "4:19 288a6623bd127a3853dec6c8c81b675f11276f49d7085cdc4252566638ef0cad"], [3, 3, 1, "", "2:15 66ebe678e1ae9102e4d8521706cef63daeae10b848e263ab3766e4aa6cc9a1d9"], [3, 3, 1, "", "2:18 04832d6c14ff2380c1a19024f980142d165adb58520a40c0c8af80ffe1fb55c8"], [3, 3, 1, "", "4:22 bba6464e5850bc807bb84138c417abccf4d8e863b7cc927a7dc6c4f574742d9f"], [3, 3, 1, "", "4:6 725b600fb8ecdc9eddfb8e2568ae2102893884fcb7c6aa4e1963c948b242dabe"], [3, 3, 1, "", "4:1 55361e7d41c5c24510d526001510c8bad4aef48dbd51f81ef0d1fe0e7aa4128c"], [3, 3, 1, "", "4:8 ed06a87167d12f3592d3f1f3fe6b1b8dee1445d3084186ca2eb0c64e38d0a195"], [3, 3, 1, "", "1:4 8a8e13fcffd5809ce5f90c8ea9cefec9fa5ca58b1bea8566b16d1fc9a6040f1d"], [3, 3, 1, "", "4:28 5090abee767f23b1aea068bdf5cf40ac88c35f6bab4a3fe0c8da122c592d1093"], [3, 3, 1, "", "2:14 8e4b764f8f8a09f136954a2bfc947ddc4eda420f1148fad92fc5fa7a24c12c13"], [3, 3, 1, "", "2:20 f01b3809e31f3e711b3d853cd5dc8d1acdc431c60f9d0c04452abeccb6190de6"], [3, 3, 1, "", "2:26 c3218b553ed9d95d1235f5fc0fd5281890f0bf12ace5c8649ae55530225d53e1"], [3, 3, 1, "", "2:21 e610b83f08f3c1ffeb1693c97a13b45472e77067e9caff1501681e6e4ff7633c"], [3, 3, 1, "", "4:10 8bc4d6164a3454b1f92bc7c3b987ebd35d035f0b570af2120160837269eb6880"], [3, 3, 1, "", "2:4 0cf16c00febccc266cbb1905aa697021947ef02980576e67df40efe5cf32c0a4"], [3, 3, 1, "", "2:1 506663a2566f85e068c82d0103f1ca78bd821cb68b77fbdbcd52c1072331ad09"], [3, 3, 1, "", "1:12 4e24dc92aa06d5b4ad0e1df6508c329176170f30e1a94c6692df3e2e12215796"], [3, 3, 1, "", "4:4 537b298a9d54dde06ac687138d86b76d85a21e75ce6b341493c8b394b5239199"], [3, 3, 1, "", "4:7 d67675a77fe3ac8c7c6a93c703b80fb47b1307005a8bca11ae42fe53388b0e18"], [3, 3, 1, "", "4:24 3ceffa06884bb95ce527ddb9ed4cc31c620d57a422f0938a8257f78e4c4f844a"], [3, 3, 1, "", "2:9 6d27f6b19310c77c713cea4e5c7bb344db8cbb3fdf479386c7233e155236809f"], [3, 3, 1, "", "2:16 17c39504c2086447190664d68d7a3eae124510357ebc7f144f3d1b25f7026518"], [3, 3, 1, "", "2:10 cb39263ec9ad7cd027df0b037770018592ea1b93c52e02c1e911048464995f86"], [3, 3, 1, "", "1:2 66cc3c2c1a5ec6dd71396911c8316e01e72ca51ce4bc489387e1e7b0b3371827"], [3, 3, 1, "", "2:22 4380ca472e236c4d884dc55c2ab8da71766dbea2d3cc0895b010c2c48c9df55b"], [3, 3, 1, "", "1:3 19df557d0cd32382f3a39cabc59987441fef33fd672cfe083367c1432ed20de2"], [3, 3, 1, "", "2:29 9977dc1614c53e251615c07e9e08e617d47505e3cdbc9b1f313d120c80533919"], [3, 3, 1, "", "1:5 f7516801073f4902b37f8c6a2860b920595b14089f145b432e64e340de0fca99"], [3, 3, 1, "", "4:14 e2260bf8d1cd6ed1f8f560bde5a04eda03749ba3b9698be0e9e830379cc526ac"], [3, 3, 1, "", "3:4 de3fc414790cfa7bddbc44846eff2f3816840e6b0249dd0e743b4ee447d3a909"], [3, 3, 1, "", "4:17 8048713e7609c52f8f92a383762dac9c9e3c99f7aa1e987e0d6e2fe1af9c998a"], [3, 3, 1, "", "2:12 d9a23a581045be380483ef64273fb0970eb3a080cffb32f83f6ff8e0922acd5c"], [3, 3, 1, "", "1:14 c7857117b11bfd871d7e3b709cd608d66f29d41ebccc028b2b47eb0a71ae7fd5"], [3, 3, 1, "", "4:23 d976b884515464965ab2b569d6e256a24cbdd97a74803de060faefb3dcf17a9a"], [3, 3, 1, "", "2:7 2f5e3e2a6ede7f8249c7456439a30d94da8d1baf1c53135ae9fbdde73ae46077"], [3, 3, 1, "", "2:2 29e3e853007709641b0c2182f3e9bc70020808d3869acd0dcfa131141a8c00a0"], [3, 3, 1, "", "4:21 b3276319834228734d7f152a0a6ee88d4760ced117b6e497f7775f79453e1247"], [3, 3, 1, "", "4:9 836b27b41fb978acddad30353606e589d3d7a0f959fd869e0363f5f4da38a1e2"], [3, 3, 1, "", "4:18 1bf727a1dcaab6f5e8df8590d6bb1ba357978668aa0b347d821b88b023b5731b"], [3, 3, 1, "", "1:15 bb0494028f9d19ce98975cf71392baf6f4b01e861bd44b13c4eec3780403a9fa"], [3, 3, 1, "", "4:2 8cd576cd86befd359dfe276c5f05be757f54ff4b4b44768f9a4b71ec18287156"], [3, 3, 1, "", "2:24 4b79cb54112a7172b9965ddcc0ee752f7f3490dd18a445e79bd25bddb06908c0"], [3, 3, 1, "", "2:11 e7745cebb4a1cfb9d08a5ec1b5827d5cb745348158eb1ab0b3677d950118e4c7"], [3, 3, 1, "", "2:19 3700640ef18118308cf59e04636cc5b6f1c574e9b6d802e29ef33f0d5814bf71"], [3, 3, 1, "", "2:28 63fa9c1342877193573e6c29b715d5deac6bfb9eb8ea49fa19c104c6063e6b4c"], [3, 3, 1, "", "4:3 a8a99061757e28c4776e91bccebf019763e6c7876ea81a92d9a1c528165aaf18"], [3, 3, 1, "", "1:11 0ac084f03e5a81020440616fa419fc5d5b6861d4a201ef74c1be61813fdeca03"], [3, 3, 1, "", "2:6 8e912acb711b0d365e2b30de2a8c67f34bfc9132756c0ce068ee0cccafb9d8d4"], [3, 3, 1, "", "1:6 7a2ade6ee042d2fa1254f9e3a047fe526e3618d2f949b87f34a08121a165eb4f"], [3, 3, 1, "", "4:12 12d01e64bed3fb1d93c2baaba1c990b876b01143f65e13549b16e2f86722c1f8"], [3, 3, 1, "", "1:9 1245cb0d297861a8c0266d9628d353be5f835d30038c5d29c99d6ebd0af2a540"], [3, 3, 1, "", "2:17 9aed381332445df712568775e61af445c35e6c942e4722e7a4d38140ff9b3fa3"], [3, 3, 1, "", "1:10 1fa259887a9405988fa7b3381ca5a486089f705f216bc750d058d170e8641a6d"], [3, 3, 1, "", "4:13 2f1892ee92de8c871fc2ae0a0108195b7e93d76975e2ed4557897be68ac335ea"], [3, 3, 1, "", "3:6 c7df7b2b6d7b1fbd91b08418341411ea2e0a68ee04bf8ab36bcf50f60d63f1b8"], [3, 3, 1, "", "2:13 d684bf9d23507a618c9721f7ea2ec85c2736c06dbee658fa864d22a5e32c5d44"], [3, 3, 1, "", "2:5 7d99ef0d1b75056141e26deea64ad1a7c9653284138e25b5fdad0f5c30a465b0"], [3, 3, 1, "", "4:26 d4f7baf7b1415e0ddd6d71a215ed14fec816b15d9e58dcc2454d7f27e69004bd"], [3, 3, 1, "", "3:3 d569ecf4ccc75ebed4ac9a1fd2482c4db16dcb459e321909013b8a42be1b4bf4"], [3, 3, 1, "", "4:25 10ebf431ca0e173e09d0e95cc99d83fa560ba88808dfbb3c22cb34e450e43483"], [3, 3, 1, "", "4:11 28e96aa4ab999e28d472ac597a459b4f3cf5355e1f3d4e36729f80527e38a9a3"], [3, 3, 1, "", "4:5 48938e27d06bad943ff87be97fcc21540da3b77868b16a71eb117137d09d23fc"], [3, 3, 1, "", "2:25 5f2072da8fa1e8d184be3da512c28aed044a859e8fcd3ffe93c952419a84e822"], [3, 3, 1, "", "1:13 07f1cdb38f9bd8c127759860f4a51b104e71f573c2880fceec9bb97d393d32aa"], [3, 3, 1, "", "4:15 e869f661950b3fb36bb49810ed4fa5897bab056d9061a5614f1f983004a68702"], [3, 3, 1, "", "2:3 c89b01c453ba585643631dc3b2963abc8b1e4c53933b3721b3dfc7101393d2d2"], [3, 3, 1, "", "3:2 18e91497757f3ccef6d3e37f0ab6fa99650ef04419b74aa5cb0faaf8d646c8c1"], [3, 3, 1, "", "4:27 cd2421eeddd4a05db76bdfc69b504e9b4de55915c2ef18bfaa6e927a3e72ce16"], [3, 3, 1, "", "3:1 e00de8ccb48972edb964b7efe2cdb1840c249fb526d14c3331b293a3cf8cf79d"]], "22": [[13, 3, 1, "", "6:11 9227d85264bddc464ffe9527094d6daa871bb3d8c05d00cb821528e1c241cb04"], [13, 3, 1, "", "2:31 38657e66bcc21e14e87aa5238007bcac36dce73156c9c5af823e904c25658fc4"], [13, 3, 1, "", "7:2 95dbbdf815af777d799412933cfb1c6139d1a5a0618aca24c1ce9095e8a3bf75"], [13, 3, 1, "", "1:31 4230c88382f71375962eef4624b0fc37fa2ae2ebcaa2c7b401f490fc1fa26ce4"], [13, 3, 1, "", "6:6 e2e32a90c459f6211a5915bd66ddf72c97e86792880aa7a5af68a1028b4f1c27"], [13, 3, 1, "", "2:16 ae959551a354c13f23e569b07e21962fd29e91edad42a1637c61c47ffbba3178"], [13, 3, 1, "", "4:3 a9365d11f22e6d0282ff7a7829d262dd0237bb7df54f65c07d06cac38a8ef4e5"], [13, 3, 1, "", "6:18 b7cabc7b0d3991a23cd2b6064e873e856d12f722b48c78eb4f1e5c68cb9e9fb9"], [13, 3, 1, "", "3:58 719c2d431cf4fa8f1d481db9a1a415bbdba221e1f78a967d89e4fccfc93fa6bb"], [13, 3, 1, "", "6:8 6c6abff15d559e67cfbee302183c6b6cd9e2d0b27ef17f3fc6c2d2b1b8dc247d"], [13, 3, 1, "", "2:21 9a47e3602b2201c92e0dce3aa02e6d20feae619aec5f1e0369434cb2af047e9e"], [13, 3, 1, "", "1:63 770cd7d9c31bbb765ad40be40ea824f38ba9e412b3e507365f9c6a754c17551e"], [13, 3, 1, "", "1:68 641caa94a7b88594686c64a9e6c37cd6597bc61fb18259f047eb9c3a31ae1428"], [13, 3, 1, "", "2:25 5f20a84f69b2f4df1e103ed21420855eb0edd88111d65c915c9323f4e86af1d4"], [13, 3, 1, "", "1:43 2ad948609b5dfb44bd6f0f3b491e171298e449c937fe7d727429e71a03180fe6"], [13, 3, 1, "", "1:29 7c1cd463725b7565f2460515d804abdd2d46fec45b4ac95a28c0b1ff8e554c5c"], [13, 3, 1, "", "1:35 d8849406f6b817683c149ab81aefd6d29b706724c6023b66047d2edba3924f38"], [13, 3, 1, "", "1:7 bc22aaa1e0a33be94f875c5a08d1d776471f1e063929ab385e062a1114dde726"], [13, 3, 1, "", "1:13 f7001d16fded0766de3bb30882a297cbb7bd22abe36f34fae3214176bfd9411d"], [13, 3, 1, "", "3:59 9b44340bf99e2336f97d4544df886ba2d990b67388ac619ac2d18fb6b917a484"], [13, 3, 1, "", "1:33 e2996fb9db79d277b33c4f337dc25fa4d319a5b8869182db47869241a7d6deec"], [13, 3, 1, "", "1:58 c72b9ed4c401c89d36486c8d501951d76d0d37f6c2e0e8b06a1d4e20c2431428"], [13, 3, 1, "", "2:3 f507ddb8a4d78d5f4516c08061e3fd00ce3680761f88d8533d74cebf1747d8e5"], [13, 3, 1, "", "3:1 51ff09ea4d125dfa2dddd25429197d68e0ab90254402dd2d93ea531c65a622a0"], [13, 3, 1, "", "5:8 c7a214a478ecba87863b838e3cc1dc1e0211c41d45b466650cf9e1ee4af781b1"], [13, 3, 1, "", "3:19 bcda305ab21eb743bfbaf94192a7f091188f70e80d49d4ecc69cd944d560dbc0"], [13, 3, 1, "", "4:1 e080d5e0ebf43bfbc4219d2d2e397aef7c54aa4e7a03b032120b3ba79a54a4d6"], [13, 3, 1, "", "7:3 8b4f18328e73d75d6d74d43fa45304ecad3929469d9cfbf55a766168dac286fe"], [13, 3, 1, "", "3:26 8148c38c96dbc7562e0a236a6f7c2bf76b1224b0b409a58dbe086b5bd1d63c38"], [13, 3, 1, "", "3:40 c1e90e11afbfaff93f5efda1e0676fe9bc08b30d4293f557d10af6cef6e2f5b5"], [13, 3, 1, "", "1:61 bc842bb6d2622c3a029ef4614723d21fd262ddf085253092dd84e1a420f77ca7"], [13, 3, 1, "", "3:10 0f946393a931cc5b78f9934819f7aa4ba6b514ee373b349ecce52f591ebcf435"], [13, 3, 1, "", "6:9 9a59466198ee2c628bf21cf3451d438f7b681c05bff38179d054b394ca87b055"], [13, 3, 1, "", "2:29 fd2227497b01180261f81adb03ea6a85c78ad4ed2fef19428a5722d64a04012c"], [13, 3, 1, "", "3:54 2a483ecef64dcb6a3f27eff5e1df5885c60546538f60c4dbfe1df9f84440e25b"], [13, 3, 1, "", "3:31 3aee30c9effa5a942a1ada18c2ffb67bead416de8b1aa12b44d92fba4836a4e4"], [13, 3, 1, "", "1:30 2b98ca72c3cc9d2473a8d91c2d66d0d938ba4fb430280f13c5a0d23e30124b4a"], [13, 3, 1, "", "3:33 2bdd537d58814885175ea0a364633afe6412e67633eb7dac5eeeebbfce4eac16"], [13, 3, 1, "", "1:3 12f179e5416873944a2cc637d0784da3593495a2183782ee5eb02950eeae9da6"], [13, 3, 1, "", "3:42 07f663b7ccb32c2c12d99fcfcdaf84bba2f001085ffcbdc46af147dbd632e2bf"], [13, 3, 1, "", "6:4 36d8b0665a541f55861ac8eec58788b1300271d197914bcef79a5366d764a54e"], [13, 3, 1, "", "1:21 550d7fbd6817adc4a359813352ec379bf58efa791fd796c493eeaa84183afeda"], [13, 3, 1, "", "3:16 29c83fda93c055d8e8e1b5413124cd7b9321a5fcd2661ff0c6b2ad53c3a0cb10"], [13, 3, 1, "", "3:2 fa26d928624b04e379be24a2fc2001a49d414a019eebebf261e5a6c5951a3532"], [13, 3, 1, "", "3:41 cc1f051a457238506a16c5250f10a10b89a5a6c4be1b61afbf9fb31e8db6299a"], [13, 3, 1, "", "2:17 0e6100d8c3a6f0652c904a5a5da3ac3fdbc07c732bcb94f9ced925a3a67ea4df"], [13, 3, 1, "", "5:10 02ff55c63d8be9b67db3379370d75d0fc64e42c2a63af002328807ef6040df7d"], [13, 3, 1, "", "1:64 5c59322286016f2c772ca739ba5233cd7e28720d91ce9189183e1852db7b095a"], [13, 3, 1, "", "3:17 8f3aef39cde848c0aff944c3688510c0623f11c4956e906b2c149933ca1bfc31"], [13, 3, 1, "", "2:36 a04359b7328e6f0222e6c4296470962b896234b8db289d9a7c215eba9ef0a7db"], [13, 3, 1, "", "2:19 96cd932df092222c77d3bcb7d31fad0c2be26093f163662b926fb5cc7acf7f83"], [13, 3, 1, "", "1:55 d7a0475661c593f7c0566fc7018842861e7876cde7b82b1866534efc7c2e0443"], [13, 3, 1, "", "2:37 2c9e81813ba55fc43a7bcbb08d580d2da6ced81202c68a5c37a3be0227a000a7"], [13, 3, 1, "", "1:8 7c3fa30aaa8c0f3bc6f842ae4f591e7d875e79c277ac8f86b165d0913d3060a2"], [13, 3, 1, "", "2:1 bca76cef1fe93380b4b2764a1780560ecfc7d399d0133d974aa8b4272185398c"], [13, 3, 1, "", "1:42 32c579a792bd4dfc3a9a6d6af1d96694c344082c3e65ab27cea73e72c5b24be5"], [13, 3, 1, "", "1:59 81ecd8fe1fe33b56420762ca519c95224c123ed4439893049875d345aba5c512"], [13, 3, 1, "", "3:9 b2936dd6ad92f8cfa53239fd025460f7d3e1b679ede4b445d3115ece8999ed98"], [13, 3, 1, "", "1:53 c6aa9d96351da3b4fe364c7887ea1ba84b5643d1d7a3838ea2efb41907b794de"], [13, 3, 1, "", "1:52 1f33ae168aae6dde1001c1413bdefa412cf8161d3e84988f35963972258881d8"], [13, 3, 1, "", "1:37 c8194fd8db5397f0ac15a419724a3e5891b702d2969fb1bcb372ce18c98f8601"], [13, 3, 1, "", "3:51 f531c0d0ea7572debc684b12dbc0edf4d3924d960344eb4cbe9fdd03c62ba2cd"], [13, 3, 1, "", "7:6 76c9be8a2c13f41d46c1674de81af3faa54bf6a070033c81d62a9c8d437ac6ed"], [13, 3, 1, "", "3:8 1a6421d6b7caaf88bbb46cf868ffb92933d8f68b11221f3cc918d093f8888e72"], [13, 3, 1, "", "1:19 1cbe768ef7b25e59f62f8866acbe1cdbfc5a93786922d54a7ef4a8fb4496c6a0"], [13, 3, 1, "", "6:10 3812da6e1f78fd4f04190a7f0b03c53c355e7fd9497bdbb2cc363720db6d7f05"], [13, 3, 1, "", "3:14 a383ba34b050c0c54cc8abca1eb3edacee0c31437bceca025437faa04647913b"], [13, 3, 1, "", "3:44 080df59e1c6daaf9dcbaf8723b6d2151909c977c1ca58d4543b4648be9c8db54"], [13, 3, 1, "", "3:56 3ace63d8c3c27df97ec81e12c7db56b091597dd8e85b82a39419826a4e0e9964"], [13, 3, 1, "", "1:25 c65f4c6b8db4f51f6eaf6ddacab1fdb08f9479f2b15b0b5f882da8c81c84054f"], [13, 3, 1, "", "3:36 541ae9ba48b53ec96b54e4a5a32502dfa1000cf8754fe5ecc7d2312b34d2ee37"], [13, 3, 1, "", "1:67 5b49f664f474f3d6edcb8801c7593e791e1d1ad1349e8d219df81fa95929c9a4"], [13, 3, 1, "", "2:10 6b05bd0ba53bef61a1eb498458f8f387e92b3a84409fe2949e603bde1d9a915d"], [13, 3, 1, "", "1:41 d7006f1141083f004dce3c7fcfd3553336d9f21e9cddcd91cd327d990f2b43ad"], [13, 3, 1, "", "1:32 b481fc8900e3203d5e51d7456b51a12825e1ffc5c307841c43da63a0b09eefb9"], [13, 3, 1, "", "7:10 ce7ddc33151dcfba8a36c91bc23c8438759f7fce66fff26d097a1d2838d4028e"], [13, 3, 1, "", "5:12 61e5e0531c0e617d3d424dfdfc8416bbf5aeb5313b8b85f8073e6fac4da59243"], [13, 3, 1, "", "1:65 c7750120307aedb80af8ae7313dd6345535fd86e2c63679b6d61344356d21904"], [13, 3, 1, "", "6:16 2d7523471d7b595463ca7ca9c55972764ee91e9b48fd28620896baccbfe97aa7"], [13, 3, 1, "", "5:7 4a320730472da6e94d6e7eb0e60110ce54e50eaf2bd689ad2d9e77d9174281bb"], [13, 3, 1, "", "1:54 649109caddec8bfbd71e14d93cd7e1c50c27a223b51ebacfd28ace0d02e1526b"], [13, 3, 1, "", "3:55 412c8164a6ff9c0f787cf54c8a347a7a17608a58d8e21510f1752e83c5090438"], [13, 3, 1, "", "1:44 2db64ea95f20d553dde55920a82cd6514d6071a691fc62a0a2db860ef6134582"], [13, 3, 1, "", "2:35 8ef8f937a7b7b7adb9ce03d888fcf5148a91620cc4af1b10b59ac502f648b5c7"], [13, 3, 1, "", "3:57 b4b8fd6cf4f2c93377215e7dc6ab80bfd0fb116d3f2aa401c9b213f57ec725fb"], [13, 3, 1, "", "3:5 40c4d335089982458288126ed9615e8a2616285afc565532e391dd1ff35326f2"], [13, 3, 1, "", "1:11 34cd0c382f4f6e1a64167e53b3bd89895d35af1d3829d9d540bf6db843f635f8"], [13, 3, 1, "", "5:2 25daebb16bac887b6a619f1c15055cf292b836403ab183382752976a02a4257c"], [13, 3, 1, "", "6:7 7ef8c5e5436b9b3ccf1d5ddd8f024651de630ff3a775b15cfb2dbec38833c4dc"], [13, 3, 1, "", "7:9 f1479feedda5b57e1e5936f05df2da01ee75eb433febd48f24327a86fb66916e"], [13, 3, 1, "", "3:53 1e37a5e34d46afce6f7c07e6ac3a4bf3326a0f8b0b5f47b6398afc090f6bfe24"], [13, 3, 1, "", "7:1 b192c064956d68ec4e19d2db778867c39cd0ad9e6a3070f71d7d91ce413a2b61"], [13, 3, 1, "", "3:39 0c794e05658bfc67f5509b086682137d1e225b3d3125bc988b0f7dade8a602dd"], [13, 3, 1, "", "6:5 81f05b034ad37fdb0de0e9a2242a963b2cfd4886a5fa12d422e3944d67f850a4"], [13, 3, 1, "", "6:14 6156a4e0aabe75163b3c333a7cc831ca44acd71d75015372430ca8c0d1ca7495"], [13, 3, 1, "", "1:51 cb975dffbdba381c89169413a7000e7dce7ec25ef91c34b0c74b850f3647a2f4"], [13, 3, 1, "", "1:14 3344b7fd47aab10734e11041c74314f0ed34b6cdaf296d6d01a6c691f0c13183"], [13, 3, 1, "", "1:57 d3cdc1dbdbdaf3bf51d1c1d3e15c1fa5aef040e28178566c5cb0d654ebcab926"], [13, 3, 1, "", "1:6 a070ce88d95ce414fcca9658f1ecaa93e57637fe94c94a90c0d5f7c2674a098b"], [13, 3, 1, "", "2:4 4f9cf8829042709ab419bcfdac8f32f55808e17f6f72d0a868bc08b92f89d719"], [13, 3, 1, "", "3:11 4c9f00fb04a33159473b68a31e8ee74f70f23444dfe8e434256b0773119cc988"], [13, 3, 1, "", "2:30 22aada8b4f1f9e603a61146c28eb2887803435066842ef0118a7f1917ebeb814"], [13, 3, 1, "", "6:2 bab672735ba4bd11338fe18ef154010c328d60c6904b856a7e71670295861eb9"], [13, 3, 1, "", "5:3 3151135e30ed0eaa0046c0a2c933b3df4524b6ebd38636be511d97edf1093142"], [13, 3, 1, "", "1:70 8e992777ce18f719a5a9f6087fe030f71520760bfe4215255991b93ae2a6775a"], [13, 3, 1, "", "1:49 f7bcce04d256c567958ac3c7b038e42b735b6997898d7ff47aac48170c896eee"], [13, 3, 1, "", "5:11 544d1d040690c1ef7a2b666dc2a809d33f42b0b1114f00dc05d36f203757cfd5"], [13, 3, 1, "", "1:22 e940f5a23bca352679d2dc94ddb731f3a7a16e94572cc09fb942ecfe75186792"], [13, 3, 1, "", "2:28 80f90c8b08776edc6b8d2896a8d06cd39c50126b7b0a36a79b50b336f5e3b3cd"], [13, 3, 1, "", "3:50 d82b2f675143ea3e841f686833a7a7a875694a71bea0a335101d9f496b02b415"], [13, 3, 1, "", "1:16 988c5d9c0ec05e872a195f4cee6b0aa813fa0e0d2ddd4954cb63400dda9c839b"], [13, 3, 1, "", "6:17 44e6f48245cc97766452666dcc62fa1d73508669f7a630f942edc2e6047d67ff"], [13, 3, 1, "", "3:27 fc4d057ac8b2c2a9823f6f4514305fd0ecc50af30f6f7ac3ed854e7f8a7e14c0"], [13, 3, 1, "", "1:20 2950a79b4c2b514e58a5e7111b5028fd5c547bfac4ea6877f6a9c0caa7e705ef"], [13, 3, 1, "", "1:4 b9873fd50a4bcfa74822967e3a60e5e0de2ddcfdaf3e20b8687b32685ff64c0b"], [13, 3, 1, "", "6:1 8a3a017f2afb0587c55dfb386c7e5d180d3157b04f01968b1eb489ce80ca469f"], [13, 3, 1, "", "3:37 cb91ec0812f0c384bf095f2797ac51734ba4121d8e8ab16363d157860a106878"], [13, 3, 1, "", "6:12 9947ef35f98d51e42642de4b89c7ff24c303708a6fc048d6baf420acd0c2e144"], [13, 3, 1, "", "3:6 5154cd8c69374c45e9d741be110ba567134bb0b39eabcb8c458adbc972fdd2df"], [13, 3, 1, "", "4:2 3ec0655943bc0361bb5ee51dee65ef55fc0cdbba100b9689c377aa00b58bbfcf"], [13, 3, 1, "", "6:20 e09645a3d913b01ba7b2da0538ca2a8cf2971062f274bbb7b07eb2fcbdf50eb6"], [13, 3, 1, "", "3:34 3e4ce3eefa93e708f4edf4590415a8f929092e0676f38915c2d3bb267538656b"], [13, 3, 1, "", "1:62 7a946b3318f99a6748a231b8c03c16781c4292e0fcbbc4ac706a962861f317b5"], [13, 3, 1, "", "1:47 d044514182338ccadc9d1a05981c817324f604a615020a9507188e023305649a"], [13, 3, 1, "", "2:24 2eabf1ca886e5459326f2967d018156022a1148d68a4f0cad387ba9857bdbd77"], [13, 3, 1, "", "2:32 f12f6d554c25c5f85af01ebeffe90a992373ef8a69195825942db06fb5c04ea8"], [13, 3, 1, "", "6:13 1f08df8b8d9ead71e6d2a2b97ce398fa198247177be827becf8b36abac2eec70"], [13, 3, 1, "", "3:47 07b64182b91f96ec3d687a71dbf44e3ef75125b7a754d09ee0c8274a774ab7c9"], [13, 3, 1, "", "2:14 ac9efee8bc991667f505b75c53a5d2409171184521200c1315775ac64f7bfc7c"], [13, 3, 1, "", "1:17 cc0d67b9c4b0380c9a19ee2cc5f245a03585452dc63cab72a429c021d97dc83a"], [13, 3, 1, "", "3:13 503348cabcbc12fa0d9d17abf0e2019e91f2b649f8a985f9ccda7e84e2ac7ba4"], [13, 3, 1, "", "4:6 a8ae2c3d3244053dde269a59221580fbe43986dc1e0db3bb6a587f6818456d11"], [13, 3, 1, "", "1:40 fdcc738daa05173b5609e74f2b89807360390675b83c3a52323024cf32c4c93a"], [13, 3, 1, "", "1:24 5d80d07626a153308f8addc2b5e9471836ba12ce1bdb076f4af716b9a4e18c2c"], [13, 3, 1, "", "2:22 fba730a9b194b9c95c6372bcd456c87e55aaa5d71933a5ffbf3afbc6ce1bdaf8"], [13, 3, 1, "", "3:7 1fec5e0696f6525d77986c3fb4fe9afdfc0cb637119ad785681ba1c292856bae"], [13, 3, 1, "", "4:7 df6f74ba0870e9951d73e552be2119d9b8d9cde3bfe76879dbc0b4d621f4adff"], [13, 3, 1, "", "2:34 fe29bb239760aa31dc2989d7ef1b1e0c39eb0b86dba45b014c7a1944e999b5e4"], [13, 3, 1, "", "1:18 1c7dc5e2b8e5778cfaca9e65467b897d26825ba493e2eb3cec5435253680cdfb"], [13, 3, 1, "", "1:23 2910e2dc873a5bfe39300faefa630bf1d91844c07f36271ac590d8320e12b73d"], [13, 3, 1, "", "5:5 c9961878c937f4ee5de1788b5a9a58b77076276170d875a58a526fa90be99665"], [13, 3, 1, "", "2:33 15d41d994ebc27fa82da90d54388cdf07ae3e0f9ede2cfeb23369a24746bdeb7"], [13, 3, 1, "", "3:62 7b31b5b6ead309666eb975b9d0834ba47f9a3fa55195978c7d27e62afaadd0f0"], [13, 3, 1, "", "1:46 8acdb975ac984cda5246944ae4bb019bf2a339227c9774d52bc7a0676f46fc87"], [13, 3, 1, "", "2:9 e7b421b9d33bd170c0b1cb09c6bf1d3514538ae75bad8431dc915f4629b428fe"], [13, 3, 1, "", "3:60 fa9005c5774af5498655cd144555d0013c40b6180373f8c7e8918e1ba12e03aa"], [13, 3, 1, "", "3:46 74f321168c8014a105d3fe61537f3cf35443beabfa8f6fc079c2b904d6de8b85"], [13, 3, 1, "", "6:21 2e64f7a7609904f62a789b1086409483bd975bfc91a04b82c0b5263044395404"], [13, 3, 1, "", "7:5 cef34131dd6ae60d425b87a2ac6d953390e2dec00e679df1e058873e45adaf2a"], [13, 3, 1, "", "2:8 22f409acc30151195193e1ac9bc8011511fad86bb8a83517b941ceba06117903"], [13, 3, 1, "", "3:28 a8f57c97461cbdfb32ce6148c10dcf2b2deb5070adcb2fe1bb4850b3c211ba8d"], [13, 3, 1, "", "1:36 a32c2a79d6b620d5519660e13751e5cc22eea8de15c0b390067701e98f30a2a7"], [13, 3, 1, "", "6:15 6e26d5ced9abcc14efda425d56724492c38c2a89dfaaf7cc53fdcff38153f695"], [13, 3, 1, "", "5:4 9d980c1d9a3bd3147ff52fa56ba95e975ddb9eec707b8dcc601b03993a6bfbc5"], [13, 3, 1, "", "2:2 072e7d6791f5c1d9aca09df3602ec2e87a96ea771b13d9baee44cc7da4745443"], [13, 3, 1, "", "4:9 78dc81cd3902f11ea65d5e75e486faeb11ca34a926001792ce627e4c3f8fd23f"], [13, 3, 1, "", "7:7 29bb7394c69509f75799537c989b895449d8782786410554e4b948bd0a38ada0"], [13, 3, 1, "", "1:27 68737b33213261aa2bc36b9d8e4d651c615017faf9304e654e7db3705b897e44"], [13, 3, 1, "", "1:12 29847045f981474ebef77cf27630d2c65b6b9cf14a6df2196c16f636c42d885f"], [13, 3, 1, "", "3:49 9806b7c79391b43a6ff2c6de978f08dbf262be1f09d5994c4a3b5176b86d35da"], [13, 3, 1, "", "6:3 387233953cd06bc333811fa124272c964f24902926b1502b30fd6a1be40fc044"], [13, 3, 1, "", "1:60 a44bc0de8a6ee0c018ae873e38b231a58ebb326951a3fd5fe21546388c740593"], [13, 3, 1, "", "1:38 1fb8568338e94e2bd2cef7b0aa0fb1faadd19bbab344274b1b54a2f404f8e783"], [13, 3, 1, "", "2:15 0eaa7e064279eea86a9d365b6c251eb9d9b53356bcf44f642cefe63992aa99b6"], [13, 3, 1, "", "1:2 73d6369a132933d1c5b8a2cfddbb5f48324fe1b292208ff88d01629411bb9802"], [13, 3, 1, "", "1:10 763f676df4ed30cc6df7cd82179c4d111f881ba1c05d0d9cb16b54676f276e17"], [13, 3, 1, "", "6:23 3a414e98a1f7d173475399458067467182305c436b62978e990ae3071bb8dd27"], [13, 3, 1, "", "1:56 03796b443d5b6bee6e75a9e91f79f885c5c7a9c39ba82beb8257fc4d9bb65116"], [13, 3, 1, "", "2:7 19a597e10c09d8cd5266148bbaa227ca26d47e590e8cbe4a3a0b4a3b7b65ebf9"], [13, 3, 1, "", "1:66 18febf551f1317bbf8aa6f68c01133df1bacd637fbb0500335b6725a840eb292"], [13, 3, 1, "", "3:12 ad39aebc78473e0d03c855868bf7740446e20ac900ed24bdf0f239dc211dfb67"], [13, 3, 1, "", "3:4 de9b4bea7caed53ee7b0afc9fdfb7ce959dbe46af01b3c32dcdaca669dd8a0c0"], [13, 3, 1, "", "3:21 f7df1b813dc778c45c902762fd85f901ebede6cf627c93ddffa2731614f81305"], [13, 3, 1, "", "3:45 f4784be0f3397b59835c7c80fc3fa280f40f0c5a558cfeb0dd74943416b87ae3"], [13, 3, 1, "", "2:13 a2eef70002f2666dc49f2def9707cdfa752018ddd635ddf2f70e7086f1782b72"], [13, 3, 1, "", "5:9 90b9e3c561e86b008b46a75c32a8381e977ed63097178f6649d726503e1e5aa6"], [13, 3, 1, "", "3:43 7f8e00a6debc5e2204cfaa0b86e6518ec9b97c56b7803af2fb2df7eada835828"], [13, 3, 1, "", "7:4 fda22eb8953825d6e52da828c1a9d947bb194cfd63115300442e862a916c0b36"], [13, 3, 1, "", "2:23 de2789ffcd9d02a9bbc9c39b7b94cd196bfd6f0167acfd400d37b10d6188efc3"], [13, 3, 1, "", "3:38 e2937f6d2545e4b849a96cff1214ad6058a60ad6ba062f6d3f55147d0b5bbedf"], [13, 3, 1, "", "3:35 bffcbb94249f82f25927f78213e778f1a7f985c4920412526cbb8efaef4b7845"], [13, 3, 1, "", "2:5 a745f47cfa17415d3efa516e8a511b98dc10024c933e4b234e51839ab8b2c4bf"], [13, 3, 1, "", "4:5 818e1461216ec078c22ad83372847074fe214f98afcc5de45e628dae31f6c1f9"], [13, 3, 1, "", "1:69 d1c20d9b16467ccff234ee51ec9f7445d1242be7328a3b7fc74105e82aa6848f"], [13, 3, 1, "", "3:3 c48eae85f32cfba112d97ce5307d7272d0911f9df4e67ba250f055efc0a0be0b"], [13, 3, 1, "", "2:20 e0ac82fc15ff715d9cddb3bdc897151a9a4cf2819d813ac6da7a07d48fd07ad0"], [13, 3, 1, "", "2:38 240ab19a4ecb8be24c7140737462ed6c98ed2adeaae044fc076f6af615f3fa39"], [13, 3, 1, "", "3:61 435b90abb518be657a6bf0d3065224d00b9a224cd9f274e5cf1aeb3a1270b306"], [13, 3, 1, "", "3:29 a2c973cb292004179620ef85189058fef5ca0a6338ee56b885dfe5087c24658f"], [13, 3, 1, "", "2:27 68b2c581d553c7dc02a6bcb848acc9c08aaa51f9dfd03525f402337590b1c00f"], [13, 3, 1, "", "2:26 f98c5961068bd12ec95c8e6cc0e0981321c82dd46936f9674f1da53e1f4da5d9"], [13, 3, 1, "", "2:12 6481ad4cc845d4e7ffc277d6a32513834168222c01697bb90ede7f041f4b3ab3"], [13, 3, 1, "", "1:5 0c60e99f8efc707247c3e040ba544bc81e25f9c00c6018150077ad6e1e2b7015"], [13, 3, 1, "", "2:11 aea699b2678adf58e4f4bf56b5b412b83f1ded902ad91eb6d363bfc48e11ecb6"], [13, 3, 1, "", "1:39 2c4843ee0d6e3e1ad8d3a6bc4c387786a63a146301b093178a14861ed7e86461"], [13, 3, 1, "", "3:15 a674121d8b1308d5f75d1d8bee7bddb25bdbca12b53929f1b1c447349980e532"], [13, 3, 1, "", "3:22 7dbe8e81fc6ab3a89a0c7db915942f414747d3e1426a7f0a9e0eb76bbcf6f54a"], [13, 3, 1, "", "1:71 22204cedd5304e36d4991c6ec1da6276140e3d0d2decbed86fe6c623c9a4cd8b"], [13, 3, 1, "", "1:15 a8af143fd34f01e8f65e9f888d7d760a3b031967381aee5176d597fde23be59f"], [13, 3, 1, "", "5:6 e99e85bd28b33b69146abf6665f55cd679b81c2d26e54ed077ca48c986466401"], [13, 3, 1, "", "1:9 948be818103f72ba1df6ed3e5e0ca91049b4ccb4cd3b6ef73f2a2555d14fa31d"], [13, 3, 1, "", "1:1 39d60a2f6181ef9205caf904fd95f7ba0a390aeb492700ff04033297298fff41"], [13, 3, 1, "", "3:24 2eae510aa3c0984999efed6c99d780375dd3245fbf78f98b65affdd980165179"], [13, 3, 1, "", "2:6 834825290b52066ecedfd94cfeaaa564b134590cadb34cc3d93faffcfa68982a"], [13, 3, 1, "", "3:20 0937925a39e22d804ee545814336d49c733f31ea7756377335fefff6db62282f"], [13, 3, 1, "", "6:22 ec4f1cc8bf22f706c2134897ccf8d68dff4c3a033f4ca1578e692769fe6fa36f"], [13, 3, 1, "", "7:8 fb17b760d5c76e48d93d08f1722c8da1fd927224135f46c206a4d3fe54d4a55d"], [13, 3, 1, "", "3:48 f173b49637243cd66db248543679179b3894437aad904b62189d0106a6448977"], [13, 3, 1, "", "4:10 67eac47f7353bee4b01c2c0155a18d611ee18841d560d9d21ef05ad20fde5032"], [13, 3, 1, "", "6:19 87fde9a65891debe011e4dabc743129a995adf7c4605b39913aa4478ab811aab"], [13, 3, 1, "", "5:1 059896cc2c79a9ed0b43866fe3d923d7239e3a67a128c7e89e6869411edccc1c"], [13, 3, 1, "", "3:23 485c4204bb3fc6bde480eae99cb508323f08d53843fe840b571c140e2d09efaf"], [13, 3, 1, "", "3:52 f7e4dae4c4ddaa16ca26afebb3f35a670745389e64b88c65844e029c7a0cd97b"], [13, 3, 1, "", "3:32 71c84d73a44e48e642f979b9a86af1793a323f1925a436f71dd359c01bb520e4"], [13, 3, 1, "", "1:26 57205b0e3779a9c0f99384a2e74b444075d08f48e6ca14466b92c6288be50961"], [13, 3, 1, "", "4:8 d5f187840f02cfdf21c191f7e410d01ce205cd27e448a8ed69b3b623d6a75434"], [13, 3, 1, "", "3:25 bb5fda81378ad922bd59db0c0afb2d1243c2d1e2d61865303fb327146cc086cc"], [13, 3, 1, "", "1:28 a05b1f6d34aed3cf3fc1a88b0e4ffde453b1c30cc42ba145fc45a0eb33ae7654"], [13, 3, 1, "", "2:18 c763cce07ab00dfd3323500717b1eed3e55412bb79178870af3708ab08e16908"], [13, 3, 1, "", "1:34 e6bbea8fcf8570922fb2dbb84419a008ed40c04e0333e8759a764083b6de6314"], [13, 3, 1, "", "3:30 a70c379b4de9989a193e6532e92d5156358a876a75e38c960fda76d0d60c3647"], [13, 3, 1, "", "1:45 8967b0adae59edc96e1b580347bfc98961cd1a02ef5b17848e4d07b31d0bd2e0"], [13, 3, 1, "", "1:48 2aab1e6272ff7b563a82b6b37c18bca96b4c87c262d8f2e8b2c9cc0e81c7ec0e"], [13, 3, 1, "", "3:18 1d170272d80212e9ab38968ac21b6adb73b67fea20a811908cf097679cd04403"], [13, 3, 1, "", "1:50 3b2f9835bae0171b78f5e494a3aa32451cd8c1785291f2d6d8393e0839e5bf45"], [13, 3, 1, "", "4:4 f0766d5049dcbb5d0c9cd71d282ee6fadf59ca4944f8fcfe3f0a3076cbee4359"], [13, 3, 1, "", "1:72 d8eeb48a603b537546fcc36fa3e17ccba43d166b30fd0d2792edc9e29f75d4ba"]], "4.11": [[22, 3, 1, "", "1:21 a50cf2c5f56fb453ff79b573e1b12129846b5614280b059f31282bdbad00120a"], [22, 3, 1, "", "1:3 07e54228ecadbf143bd9829ea2af5cd942e05ae28f70c0bf04ece785266561b3"], [22, 3, 1, "", "1:8 65566a896e699d4581061cbfa9881b61ebbce21a79ba3ae60cfebc267d506a43"], [22, 3, 1, "", "2:3 9af98560b964faa10575d6b41e63eab6392b21e562bd53d52334986e8d562170"], [22, 3, 1, "", "1:7 596b59e14342649bfc88ebf54917a1503fc3ecb4de2d025b3df3a6048d0516ba"], [22, 3, 1, "", "1:17 b8f0794e107a5077c3c243a841267feca917797abb0af99397715c0652488ec7"], [22, 3, 1, "", "1:10 16ddd66245cad2e311b9193a332f01ac5e3875c354baf1b3bebb93bc4dd430af"], [22, 3, 1, "", "2:9 2df37a1590825b869d3fe88027b64189cf4a81a9bf29a7fbcb2ba1790f600026"], [22, 3, 1, "", "2:7 e149df36aa01e86286388dbbe81e921138ff3db34c7e3b70fe56471e82478501"], [22, 3, 1, "", "2:2 b57e3b6dad3a8e0cb95ec2f29b9c0c03d35a3d2274ce1372f790c18e6d8fe08a"], [22, 3, 1, "", "2:11 7705e77c0b72bbab2b260c177130bc9c9b2b0cd780adfef1c71bef4a3fa35b1c"], [22, 3, 1, "", "1:11 56149efe39f3ec896b5d41b41f82964eebe02b0be71a3cda53763e854c3559ed"], [22, 3, 1, "", "2:8 eccb8cf4151d93a2f40c470c83debcdb0664c35fb9b1a56d77688b9bbc34fa14"], [22, 3, 1, "", "1:4 3d989ed20cee6bc9220874459a4ea548220f9e445447a73f0477590d4aaa0908"], [22, 3, 1, "", "1:23 2875aa4e4c755754de18f56c5cc62a1f1dc459dbabf0d399d69338748e6c76a7"], [22, 3, 1, "", "2:6 6d966d386110f51effa3166dbdfd2297301ac38191e2cf2c2fb7bd2786dfaec6"], [22, 3, 1, "", "2:12 bcb966f534ed9405fc751a9c095cd83a0ebf9e78d42f0fa542522fc9ba0ec64f"], [22, 3, 1, "", "1:20 5c51e84731e68ffbfb71d7770138e0e073c19250eef8f79cfe653382420ed1eb"], [22, 3, 1, "", "1:26 69bc4664319d5665fede7b3cce71149d020a6355095a53a2e4628588ed83b8a2"], [22, 3, 1, "", "1:24 10f4ec2a3b2055e8ac3f6ac122c55a3d72a69b32bc92531cb8cd3174405fc276"], [22, 3, 1, "", "2:5 5f34cbfe6622d2c818a60366091bc5da0bc271de40adb90bbb62a83edca10e7e"], [22, 3, 1, "", "1:1 ec574263a104f5220dbeec30e0118b25ac35e37d6a614ad3bc5cd6e58681532d"], [22, 3, 1, "", "1:15 0824d734bae0a452fabd30f7eebe1ce756436f484b63cb76f82a47710b2b2613"], [22, 3, 1, "", "2:10 ab1548f30cb5de39a5164639b856c80192fe4565c992ebc857d91f330cfd95b1"], [22, 3, 1, "", "2:1 5f5949a619afc73e47aec91fbc3a9a63a26a1c89ac23fff54dedd659fa5ce152"], [22, 3, 1, "", "1:2 9fce4f034a0c87f5dc66db7b3e507d3b8d4ccadac4c182b83669e0c361da3f13"], [22, 3, 1, "", "1:27 bda0b012a16d3a292ca3bd3cd3bf7397fc037ec2df84e2d98d42f8caad457108"], [22, 3, 1, "", "1:19 b65cf13de25acfcffa5571a788c21ffc81a25f4caf34236efd82d429143e4f38"], [22, 3, 1, "", "1:22 16f17b053148dcb88c3d4eac54d2fa3ab5c26241239c5f849b5e78a7c1987c27"], [22, 3, 1, "", "1:14 4d8795302b12790cc45fa4ebd52923e953f775313a4540fe398a33d90911f943"], [22, 3, 1, "", "1:16 f3191b0a3434aec33dea3707cfa15d73aa4eed96e7edc9ef18c8d26970af27f2"], [22, 3, 1, "", "2:4 4e17b1a0b34e4bf31d8a8074de82b29eab2771c248d198c7505d85d025d02401"], [22, 3, 1, "", "2:13 6ea20905fb18b0e4a39823e4d29c64d3000f65f803a757758399867d375784b8"], [22, 3, 1, "", "1:25 e182b27b475774c568aecdb1bb2f1070177f14e235e96672e4884e9085b0e263"], [22, 3, 1, "", "1:9 ea4301cd4ad66803e16f0b4f0d2b5c2a336a7cf59a8a11148379d67b5d3371e0"], [22, 3, 1, "", "1:6 955ca7ce99e58bbbb5f65e867911434aaa20ce3d4b5859af83963a91b4528556"], [22, 3, 1, "", "1:18 93a93b729d2fc10096d6f3e153b0d420ed95d0a2c40e7b3766a6775b99f2d23b"], [22, 3, 1, "", "1:12 711825cc745b9af39e7e4048a16c47f77125cf76d5cbe980e5ff38079d76320f"], [22, 3, 1, "", "1:13 e999468acaca0c1905fc4050b53eecbc0ba5d19207fe6a97efd97bad0ba0f84e"], [22, 3, 1, "", "1:5 509cfea09ca67250d7134d86496da2f7ddccb10a30cc84e8fe0614e40a946388"]], "13.2.9": [[1, 3, 1, "", "1:3 074e1f0751b8cd12b037a8b551dc3d753dae8a3d8c8238db1bd5f168eab83a8f"], [1, 3, 1, "", "1:1 82da18a25355abd0b9d6d12edfe37ae45678bc9c547052772f63a9a356614526"], [1, 3, 1, "", "1:2 1779cf2215b4d1593fa40611459d55cb2246586eee4503f9d2e823cc1871c703"]], "4.6": [[22, 3, 1, "", "2:5 8acd4d89f0c821d4aa22815001aca5bc9e977dc1e2712743e735bcf6aed3c248"], [22, 3, 1, "", "1:8 db27fe1b97d6577e59cc0f00cdd1fab1ddfa6645da18b3a83e52010a01ff8caa"], [22, 3, 1, "", "1:7 b0e41c86f561de826ef136c25682433aef7f5636c0352e3d8756137e1446ab27"], [22, 3, 1, "", "1:5 2a45235137530e81bb8f2281cf9deca9542bed2f95dd65858edb54f18e243164"], [22, 3, 1, "", "1:9 929a4c4a21afe2d35b50abb7d7250277785667e33d2692b7c52fa2b6eecd4608"], [22, 3, 1, "", "1:6 3bd0fbff2aa919bc05fdb9a7a301baf9be62bfb0c6ebf65df45c88713582d37f"], [22, 3, 1, "", "1:3 6509cd4ac82ace29c2f9a29046a8fc164311d5de6ffc2956bb878dbbe701c889"], [22, 3, 1, "", "1:1 a13570cc647e2fe3f7daa098e9b82168dd6556c25ddc1bfb7dc12f25e9eae54e"], [22, 3, 1, "", "2:4 d667ede8ab6893069841a33b2cf0e47b19b05d5fa2872b3bebec06b8852063d1"], [22, 3, 1, "", "2:3 1d99ab5849365bb230cbc4a782bb93bc919bb2f07c62b63a7f63b380e66ac908"], [22, 3, 1, "", "2:2 6e4e49c145170caf512a89a36aab453064036bab3e47a5b7551d769810a454a8"], [22, 3, 1, "", "2:1 ba8be95a7ac75beeb55990710d7b232e90aaefa46fbc965fc5ee97ff250687b1"], [22, 3, 1, "", "1:4 494dee99ed22dbebd0d0ac76a1fa787b15f999f68855fefcdb9cd603d22489da"], [22, 3, 1, "", "1:2 94c7fbe22c296aee3cf9ce06a1da0aac2dca927a95d394cc715b6fe61265f90e"]], "5.2": [[19, 3, 1, "", "1:18 2406df736b1c1b7e052beb8d6a704041b3804de21cf83ac7e64bb84ea5c0180f"], [19, 3, 1, "", "1:23 d75c1d570151a0c0add5bd9dbd8879ab364860d21ddd5a1981f20b5a358d8ac6"], [19, 3, 1, "", "1:22 da482f0aac1389101e1acc7d29df971ea52cbb5a914a549589717f367179ec59"], [19, 3, 1, "", "1:5 6645895b56834ed4cc394b448f835a215f06b82857dcc694fa41f1413c2e8780"], [19, 3, 1, "", "1:31 b61a46d5ed3d3618df19128c327bc64de735101d00f7fc3b645d60b73ded72dd"], [19, 3, 1, "", "2:14 9d386d3779e3a03ab5fa632bb3790b3682a87d11304efd42205239ba9080f938"], [19, 3, 1, "", "1:2 62c9ac85366cbfb730c4705821715b95ce875f485a87b252fa3dd810128a62b6"], [19, 3, 1, "", "1:14 6103ce2aaa63552db1ddd1712d330355e209efd8b3f05e2ee118128d79c0f57a"], [19, 3, 1, "", "4:2 512af904f1afbc0ae83e21197bac2017c65eb4d2820eb33ef0e964251753ac99"], [19, 3, 1, "", "1:6 a4aa45e4d07c9304ffcc9d862e913507d5000a1730b669278ac285dc603a771c"], [19, 3, 1, "", "1:8 b07b1a9330e57dc967b57e196fbc8f1a408952860995a438d3d757900c0a9bb5"], [19, 3, 1, "", "1:17 cb358844aa1dd3a9c5395b092c62c4e62c28a58e0b909d2c9d99344e409fafac"], [19, 3, 1, "", "2:8 ca44a0d983f6a2c58de0d0da866f70042fb1589545be9d179d6b19542bf94f4f"], [19, 3, 1, "", "2:12 435aadfae6890acd5b2f7c089d2bf6c6bde46b865278bc446f816f2900ad444d"], [19, 3, 1, "", "3:7 bd944455b4e5b2992d60a0276dd284685483fbdb2ce0a6e8b861676e3d2069b7"], [19, 3, 1, "", "2:5 88a50cbe98942f52e03b0825ff7e25f2b0c89e3c3a66979381da5376a170cee7"], [19, 3, 1, "", "3:4 208f90ce72da5d32c30755d34df67702194f5fe887e9c7a1bd0554c4718eeede"], [19, 3, 1, "", "1:13 f951f3c203a03b558cf318fb35a3313fa155405830ed6d804fcdea0b828eb716"], [19, 3, 1, "", "1:12 3515e0658c65c83d72e0dd7ad0e82d86216d338c31040d3e27832951a2aa83b5"], [19, 3, 1, "", "1:21 b0f4dad87afccd06af733d465607f36dcde450f57438e710856d594b3dfb6e8d"], [19, 3, 1, "", "3:15 c479906bca39314417e1caa942e7ef8efbb0987857a2c5ea2e3dc30d69cc4a20"], [19, 3, 1, "", "3:12 46bd974ba3f88ec8c528de9c9907e74139719b19f51d32a06f37cede033afd44"], [19, 3, 1, "", "1:9 a8132d829bf34f884995af4cb9ae77e246d14ffc39f464dfd0579841244ed1a7"], [19, 3, 1, "", "1:33 5f55bfd0214be05b8229314e347c9671c485811ab7606a2c8c5a06c39aa89aae"], [19, 3, 1, "", "3:5 d4a0b43d9d6a5e0b17d67fcdf081a940f340d1b85d971f31c684778d9986fb2b"], [19, 3, 1, "", "1:11 c8519c37bf9a85c68075db3cb98c5ff8ab8db77174740ac05497368044b20534"], [19, 3, 1, "", "4:3 4df12d4b4abe0cd1029651c34033e70582bd69ad83cfc6a3a733e4bf20d8da0a"], [19, 3, 1, "", "1:25 5dfa02c07c1e043d1fbc3b8eab7d4555147d7e61752f59b311c2486f4a53c2ef"], [19, 3, 1, "", "2:9 d8b0cbea39dac23dc53d3b24c98a4832ca33e84bd17e7a35598838c1ec69d58b"], [19, 3, 1, "", "1:16 b71b81a6c560dbce28bfa29908e6476ea8fd75a9b27df354ac6d310149124194"], [19, 3, 1, "", "3:14 176644151cc57b936a43b35578e7182a3c89ac881b62ba4e3aa5bfede1008ecf"], [19, 3, 1, "", "3:13 f1887b73be484d54fe02b6a04ea8aee012209872ae40fb9179a705c3f4856242"], [19, 3, 1, "", "1:34 013fca3143fcb9507c780ebe41cc1f74a40222e55f6c4b695758e3b78c605d12"], [19, 3, 1, "", "4:1 ffe05e2b6f44aab3204db8f037bcbabda722b0b2a4c36233bd344165b0915664"], [19, 3, 1, "", "3:1 86e5cf86cc1727a1ec3d2c9b3c7770ba2d5a0a0be11e05f181cf89208cef7e8f"], [19, 3, 1, "", "2:4 52efa16e2d2072309e596e1e678e1ed4c435a2a10a044d200823d457ae75c86b"], [19, 3, 1, "", "1:20 c02d71a02dfad46132450d2be620a7cabbd2eabf47c6bd9b01945121cd5d3aa0"], [19, 3, 1, "", "3:10 80b589c7aaacf22228397ab8de7f859870551fa23bbc58316341c4fe297455b0"], [19, 3, 1, "", "1:1 939f66a2cc6a712f7ec20d7536b02ec2600f18a1799b2144aea19eec95022846"], [19, 3, 1, "", "3:11 d0a0133555000675455b2bf5ab37681e6e7bb93783c7e8ebd5178f80704e6ce1"], [19, 3, 1, "", "2:6 3dc2817ca063542426c88f985729203dbe054c09d6efe49d7eb52097ec52bca6"], [19, 3, 1, "", "3:9 325628fddc5edcfee5dde126d580262949d54d516c4f6d9243baff7c4f607da9"], [19, 3, 1, "", "4:4 8ae58cda06fc53f1738c98075991062f64264fcb87108570d670eb709bdfc97f"], [19, 3, 1, "", "1:10 6e903cc0782eee63efea8b0c7d9bd83aaeca3c3659c72b4f1b64b24dbae63273"], [19, 3, 1, "", "1:26 bc8d158c05838e267c985dd76e4808b795b9c9b82d65690a8d2744bf8753e87e"], [19, 3, 1, "", "3:6 289e79602b945e44a6b259d8d0c1e225e914afa943874c7698ef97f89f8f3def"], [19, 3, 1, "", "2:1 398db4748805660067dff91c2d8c07f0ce9a02f750eedab4d786b7097ea8a772"], [19, 3, 1, "", "1:15 b94ca5c69e41ecdd7da89cf82764d0e4561528548bd0a3491afd0dcc1dc27452"], [19, 3, 1, "", "1:3 e1814d800e0feb6269bf895ed95022e6deb5cc33cc635c2bb63b14baec538159"], [19, 3, 1, "", "1:29 3dda2685fefad7736c09572d77850f39aea37aff6a75b4775df949965c478004"], [19, 3, 1, "", "1:32 d75819f44a8d7f85c50196f3a44487fcbfdaa07c19627675b6bb09b4f2fc97c4"], [19, 3, 1, "", "1:4 3e48a4f72d15cce2c39a5d3dc6ee479532f77da0b1bf93691b99fc840384f6fe"], [19, 3, 1, "", "1:27 cd32c48d96ca8821d8b097e61f7031858e9955ae4cb198bb1001a71624f77a7f"], [19, 3, 1, "", "2:13 c18b1eaabbf21d6d906c4d4255fe8e1efcf58af3fbebbfffa7348ac6b6edf3c5"], [19, 3, 1, "", "1:7 7df489a39e2a1942c161d32a9ce2ef5ce0e4848eab53b9ff7321c1d546572c74"], [19, 3, 1, "", "2:11 9e91b8f7ea80554c6c9d801b284fd737f8072273ca2869a7a1a7c23f6cba1e10"], [19, 3, 1, "", "1:24 014416678ebb189d6688fb5242e5205e11770c286ca59a48f79dda7f6ae4a8b1"], [19, 3, 1, "", "2:3 caed82759506953820cc05207e2ff166b8c73479f82882f1d52cec340b5ea5f2"], [19, 3, 1, "", "3:8 47877ba9b3984b4661b6db0b34526c8edb770ea1f800c33d64c5523a6d44b8f2"], [19, 3, 1, "", "2:2 c49ac22e3f94f28c61a3b041503608d3e3f6a337ad9fdd9162106b3e8a729ddd"], [19, 3, 1, "", "1:19 685de37c2ee81a66dccabb7f81942c82479d896f00e1e1334d4a60a9ea3b6bdc"], [19, 3, 1, "", "2:10 f47bc7199534d69e8491c54e3507a6dab7fa624a91bc061b87c451e8ed8af807"], [19, 3, 1, "", "2:7 541bd9b4e34b9b13bac861950cbc1ff7a06f887ca4d3a08d65ca538b08a21639"], [19, 3, 1, "", "1:28 892be146ad066dad2bd25128cc3091054cbd49abdf7268f54e6f21339362e750"], [19, 3, 1, "", "3:2 968065a0acde4dc1fc6772c9a80d889371d997d4d812bece3bb143b855b791f3"], [19, 3, 1, "", "1:30 ae7dbf4db5d0804bb1b4f47f1a3d6ac4f752d00aacb5fd25e7d8f748f4760adc"], [19, 3, 1, "", "3:3 c046f561eb355602680f839ad87e202a633dd889397bbc12f7027ffc7b5a284a"]], "5": [[19, 3, 1, "", "4:9 5b38e89f8e8e644db16464772877616b08bec8b5dc081183f140b1944cd02d7d"], [19, 3, 1, "", "4:5 b919a4d8d9ed226bbf402a3d3d51992d55a4159a5723b7534992db054a299aa0"], [19, 3, 1, "", "3:8 edc7cf534c55c29625cd191432a05763797465d54cbd387fee8127a17ad0f1ed"], [19, 3, 1, "", "4:3 d6e77f76c3b70cd441241b2ddcb2ece4258490b36edc54866617c3d56b1d1db9"], [19, 3, 1, "", "4:2 b6d21ac4978904629594c63e865c13ff0e8188557a1ee1fc16bf38d292273905"], [19, 3, 1, "", "3:10 c9dfbc0519fed7bb3f112777102c928f15a4d5c3cfc13d4d3017e9c15259ce08"], [19, 3, 1, "", "3:4 1a8541da9715b497aff0fb8fd6116cd249a0350898d3dd89d00b2c30c7e82671"], [19, 3, 1, "", "2:2 1226159f94faa8a70839d078914f48a7ec073bb47550a83a77554fab5106550c"], [19, 3, 1, "", "3:14 94de4c12fad70f9cac54c2a50a2c65b9a5d0f42b1847bddbbb2e5c23d1e9917c"], [19, 3, 1, "", "3:1 ce737fd6a8e0011aa5361836e179e7da00b62d001685d8a3099eda2e5f94ff52"], [19, 3, 1, "", "3:15 7b6cefba0ed64069e11e48d9eddf7bdab4f5ec7b32d73b3a9c0c92d7fd078d3a"], [19, 3, 1, "", "1:2 97aa1ac1d06fc804666c43daa72ee75966f2d95b18e279d427a218d76ae31229"], [19, 3, 1, "", "1:1 74e294f01efeecaf5f7ea7508839e45750aee3872825525951cd7e1a5a369127"], [19, 3, 1, "", "4:6 7a5e47b54e578d0454d02d99d9d1735d8480757b894acfedb724f6f4945d4557"], [19, 3, 1, "", "1:8 9e80bd2a9954f565738c5bdf0455cf342bf2fbf27b91fa6fd9b86def2bfde161"], [19, 3, 1, "", "3:12 a30925ea032d35a24204cb5c81fc5ad636e77d19ce00fb38615985b1bec396d6"], [19, 3, 1, "", "3:6 0871ae0bb0826a8d223e8c2cee52f184b7c0e39f86c5063fcd676f7fbc614365"], [19, 3, 1, "", "4:12 0f085b2b200d131b0f3ad93e901232589ae5185e8b937688595401a2281802f1"], [19, 3, 1, "", "4:7 0261db6dc821115e2d72a8963d41e3816c27ff5dec58ab612b4b0043bab2628c"], [19, 3, 1, "", "4:8 d8bde8dafa190be72dc04dbd04f9dcc381ba9e56fc7c59ef14e0adf12d08da99"], [19, 3, 1, "", "2:5 c8b65f1ad8bbb7a147b1cfa9636cd2ebe6b61c1727898f08637df63d004a8391"], [19, 3, 1, "", "2:3 4951a056adbfabc5da1900d164468c7f4be7716b2094657ab9e28e53f3b985a9"], [19, 3, 1, "", "1:5 fb93c07735fd3880cae598758a01af1eb04fd98aa6fbdca79a2fd2e8a525c26d"], [19, 3, 1, "", "1:6 8cbff3175ce2f1524fa0ece5a443ba2edd4a78433ff410a98a31ed00f38a2bde"], [19, 3, 1, "", "2:8 8bfb976bafb3e725050a2a415fd644fc9981cf4b45e809c13c254477bafe4502"], [19, 3, 1, "", "1:4 788cc1b098646556626fa9669f0f2c05d8907e582b4bc899ecac453fcfc61dde"], [19, 3, 1, "", "2:6 5b84c7b52bafc282a2d2f47804bec3323bbdacc365ee09d0099d08c9d131bf81"], [19, 3, 1, "", "2:7 0bdc00a13a57ef1c0b6611c62de6e170f3d281e81b68d9cf86a7b8f227180905"], [19, 3, 1, "", "3:16 7a06ffc02f7927cd15e2513d53f8a618b2100301b066a92e111ba6ce488b6941"], [19, 3, 1, "", "4:4 6867ae30832eda7ee1fee559e718d1cc657447cfdb727917e47a405431cbb8fc"], [19, 3, 1, "", "3:9 174692122d916648a54e197fff15a1e7bf17984b9523fd06224c71a7484e0445"], [19, 3, 1, "", "4:11 7e28619896a113dc0b4fcbbfbc7c0e60f3fbe58465cdd9e0c57ae6883ca75849"], [19, 3, 1, "", "4:10 e7cdc075b361ca70248b735173fd1ae43a881787197759e135ebe311f34f316a"], [19, 3, 1, "", "2:4 b68597321297c9f745d6b9be53beda335702f6e28a1bb97a08c277dac931130d"], [19, 3, 1, "", "3:3 3689001f3e5a3fadb5bce3f16c76e8babf3aa8a1b12b24dc1d08cc2709b6336c"], [19, 3, 1, "", "1:7 9a88f2c440cf4fcdd3f5bf99543aa48a1574d061b3ee71b3dc371a4bb568af80"], [19, 3, 1, "", "3:13 e9940ece8b67430f6507527efb4e0837eea8ecd615884b2d4a3773018ca5df88"], [19, 3, 1, "", "4:1 6b0c9b448ffa1317860d5ce72327a183542c035ca71f57b637fe069226784ff8"], [19, 3, 1, "", "3:11 61b076c4aa153ed7b1ed996845d08b881a2327bfe131501f20b3ae9b3a2c042d"], [19, 3, 1, "", "1:3 37e388ffc7dca1dd4a94161e0cb558418e13e628a5cb1789796cb37117591344"], [19, 3, 1, "", "4:13 1b7c6f4e677eefe1fb3db44988440585f0a06c492b2c55de71cbc12e1ee26149"], [19, 3, 1, "", "2:1 d667b4f41510c041296f0f8c9950b33a0e697269e268024bd87aac1d04c4b450"], [19, 3, 1, "", "3:2 ee24110781d1935c43cf0567d764e1aadf2cc3db7f17740efe4e767ac0ee9632"], [19, 3, 1, "", "4:15 fd13d0bd953b8f054714e974f43ba2b7fa374ed3ffd288303907a4242b346c4e"], [19, 3, 1, "", "4:14 8bd4950f12c3fc2761c334a84cb412e80a671197a21ca640ebe447e01836d826"], [19, 3, 1, "", "3:5 0b306a42847f796ecf6339eefc0af21e5781a2cde421ae3141018b146e11ffb0"], [19, 3, 1, "", "3:7 959846317dd64ecd23fd6c93f96608048d818682c7cd48599dfffcd231a8557a"]], "18": [[20, 3, 1, "", "2:6 fa07c91c0b0de63411270c072bdc923db3f1db860082d3eddad31ca6eed189c5"], [20, 3, 1, "", "4:7 06a0e85326100e5036cbd423c273ca615cb80431541ea5e8806f3714ffb46193"], [20, 3, 1, "", "1:1 55f6d3282e08235092b6157374cbc8fad302ec5965229b94dca69fbf5a239934"], [20, 3, 1, "", "4:6 0cecb1f1189c7f1a06d3c8d132b1e51f25548a0bf043f3ed3a93308b36f1506f"], [20, 3, 1, "", "6:1 1a29f8f4ec010a8c63819db415dfd3ccd84eaad03d75e2973e3fe3313e327406"], [20, 3, 1, "", "3:2 a6fb6914ba7b4eb15927a700f8807dc472322bdd250e0bf7d0651861d8f533d7"], [20, 3, 1, "", "6:2 b3978159779eed65918ef78768828461f8b34e7ba551de7a8c9048cac3b6edcc"], [20, 3, 1, "", "1:2 7555cb7065456e8c9abbac7b69fc1d5e7a6e631762739806e629635a718a19ac"], [20, 3, 1, "", "5:3 232503cded53dd7221dcff57d6ac1d42bde0b44a3d83a1af322de4c453e185fa"], [20, 3, 1, "", "2:4 f54b92d3867600666f831b9a1ca07de6acba61ac72937335bd0451a3de4cbb27"], [20, 3, 1, "", "3:5 24cfe75773c77d73d1f5bb3607265ec98dccb02854a636db3ff8b96cacc593cd"], [20, 3, 1, "", "4:1 dbf3d3e47ad3d7220f2ffe8d071ff0607474ea6e8f4c3edd18a553ed36509d07"], [20, 3, 1, "", "3:3 5ac27b3cd3ea1dfc7dc3f49e598adc90192ce80d0ed32afdd344789524db1dc0"], [20, 3, 1, "", "5:1 3a9ce035689a8fb35cebf8668b6c24df7ee70eff17799938db3029dea0b1edf4"], [20, 3, 1, "", "4:3 c98120af9e1e4f6ac518733e42a91af54ae118579dc4ea7355c255e9b3e077e7"], [20, 3, 1, "", "6:5 483be06af44f42bd953cf6480fb4ba9de360289eef475b6671f2fc106a97e109"], [20, 3, 1, "", "3:6 7285d85fe56e6377849b918e1d006071c4bb14a18476290ddc8cce3adcc11a30"], [20, 3, 1, "", "4:4 662c29b5a73d3fc1aa97c39557c1a8401d2f480bba1ec488dba0c4bf1833fed3"], [20, 3, 1, "", "3:4 70f4de38c7e4be7d2cf02f89023684e7d042ecc57c81e178147630244368220a"], [20, 3, 1, "", "2:1 ec4163446ba1d6053faea2c9be55ae44b49f9e489b2fb4266106708fe16bdda3"], [20, 3, 1, "", "6:3 547cdabd4f386341f56db0ee6332a762b67d119af87f9944ebe2697637857ef7"], [20, 3, 1, "", "2:5 ddcd4deef3d419dcbf8b2c18aaa5d8bb453229bce34e4d7180d9e8f93d2bf303"], [20, 3, 1, "", "3:1 c64331512493388d716b5e98082811475682dcffee41348b82483eb48cd91fc5"], [20, 3, 1, "", "2:3 1233b4977ef4e5fd6c5969530904ff70690f361cc5fccddbf8952e1cc7d299f8"], [20, 3, 1, "", "4:5 294202b2babc6658a990fded4bd4d3b7339acad054913a48ad0243ba8a907189"], [20, 3, 1, "", "5:2 f870a40ce0c25e251e0e8856014efc6ad4611f1a28cdef8c9f460cfde2be372f"], [20, 3, 1, "", "4:2 fc37a08d96af01fa9eddc305c921ac70c13dabc6a3a41c58f09f74622cc29075"], [20, 3, 1, "", "2:2 43876d9ff9e824879a24c72af81dd273e69c3a6f6646e9c7751272942fec04b9"], [20, 3, 1, "", "6:4 82d166eb360bad50b80bad46ce10a4d656966e94303a0fced35f59151561be1e"]], "4.5": [[22, 3, 1, "", "3:2 92febc08b74e580a8eccc9d1233d135ee4e59041e9ad926ad857fd36d22ce44e"], [22, 3, 1, "", "1:14 788a386db9bca5ece0658ad379be6e9720a7502dacc604b6b7199c62d0600a86"], [22, 3, 1, "", "1:12 864ba312cb813aaa2c285d358764732ca53afa7b59f44b4a26e959f8ed5d1906"], [22, 3, 1, "", "2:3 ddd7e64188789d0613207e30279466396e9387d4c837a9a700715c38aae1c3cb"], [22, 3, 1, "", "3:8 686f435b04adf578310fab3434b24706f77b75b4b7c9a189b81799cd033a4244"], [22, 3, 1, "", "1:9 f7fc7e37e48e1d9beec7400be5000d3f97bbaf12e49da3f3db7b8478895128d1"], [22, 3, 1, "", "1:17 36a62c297e5ac360801a96f184401b9074a30dbdd36cc171b0c48cbb24144c7d"], [22, 3, 1, "", "2:1 a39b4fadca9c6209a8eb00ee7b0ba2b4d03af79dbb8378379345c8836b5bc7a5"], [22, 3, 1, "", "1:4 8fadd9f05034847f538c7ea8c1f61165df9bb4c87e711d4b4a4cfc7ea2d2aa76"], [22, 3, 1, "", "1:1 41a04bcc279a52fe4a0d644f08c7974945044713d151a621e622736caa79f834"], [22, 3, 1, "", "3:4 0ce4ccb5dd76241dbc1faba186867478c49bd6a850f7c9a71d95a3a7a4e406ad"], [22, 3, 1, "", "1:6 dbf85d1dbaa9e65e9ee411a69098c8ff2c3a6b0a9372e68ed8ea0f1f7e0e87bc"], [22, 3, 1, "", "1:2 6ec5fbcdfa7bc0e2e0fa597521d52d44f4cdb850f944944654faecd563781897"], [22, 3, 1, "", "3:5 8837c04fd5dbb01d08026d2cafaaafd8ab2287f60e984d4fb1792425c0089812"], [22, 3, 1, "", "1:10 9276d9aa4b9d2a7a1fb0208d0f4b3b20336b00b99e8f85483048116ed6672925"], [22, 3, 1, "", "3:1 5367bfc0baaa05cd86579ae2623abf07a4ae259cb95582431afbf551136ca939"], [22, 3, 1, "", "1:7 d3209c56e335f945e3a200cfdae47cd6e4386e6a13052c36cd96cb27f665ee36"], [22, 3, 1, "", "2:2 99627103e41c406457ad5ca125407339483d91f6d8d598e7da9524f857d3c7c1"], [22, 3, 1, "", "3:6 5959734aa5fddd303916db4c88648c4a0f7e216586b20e2ccc01f56a202afa58"], [22, 3, 1, "", "1:13 c34f5ea6b85e16a716ab014d804766dbd0f681269e22f5fb113072b3aac7b40a"], [22, 3, 1, "", "2:4 943e0f1a6572313a255e14bc95a0134edbbb021f031683bfb43b344ea0342979"], [22, 3, 1, "", "3:7 f66f5248019636eefd0a3849d4710a419847eb4da4ffab3af715a08c5c7f4c02"], [22, 3, 1, "", "1:11 5d6b1172331de835223d74f329d2a086a76f5d59d89900a06cb5022f9e99e1c2"], [22, 3, 1, "", "1:15 0e045bf46b8ce2319bc906617e1284401c1431e818f333adc0a52da4a692a36f"], [22, 3, 1, "", "1:16 b34358c9f5a38221a3128afbba7bcac38af1eb7ef2bfea390d1ddf04c523b76e"], [22, 3, 1, "", "1:3 b933c4ceea18830211cb015864f5ffc6aa7466256320ccd3eaefe96a2ad46495"], [22, 3, 1, "", "1:8 2a4978216847213cc9cc89c486697babf78f3a02b2df4a408a19dc42fcd37c62"], [22, 3, 1, "", "3:3 ab71eea2a3c33b3222811c295c4dc83aba111daba6b56f8fe94c3669bbf808b7"]], "20.4.1": [[17, 3, 1, "", "2:24 2b361f50a42eadd00c2c0ca748063e0d34342f34e39bae540bb8802a83f14882"], [17, 3, 1, "", "2:13 b45c38305f3c3ffa6bf27034b89cc6b8baac7a4e72914a0cfdf7eeee7da69266"], [17, 3, 1, "", "2:18 8a369cdda5e38c9d0c9235244570dc6350c8f7513c2a5dc0ce5b97503f92b7ef"], [17, 3, 1, "", "1:4 d6cdc5aaa72a1fe038b82e1c7963c4446c2bc7668ed2fae5540f1dd6416a865f"], [17, 3, 1, "", "2:14 d58dc97395dae9ccb1d8fe2a21911f6287c2676be72fea50a94301b4b85614fb"], [17, 3, 1, "", "2:25 225d33e4ff2e8e37f77d0d4ba4811088ee088d027a6ae4a1a4882ca9b039fa98"], [17, 3, 1, "", "2:17 2868c75bd1038a056153d19675c38e727498801f62dcf998f97e79d1feb762aa"], [17, 3, 1, "", "1:2 4c41fb4fb8823d556cfb539659a3c4703c73a1c321684dd511b7f178f2ee5439"], [17, 3, 1, "", "2:2 69d0900d72789c738bb16a2cd4d7cd0938784373e5835a4c87c5655968e72f06"], [17, 3, 1, "", "1:1 86e93126d0e6c567afa83d3532a9dda63596c2a3a1b8fa60469481ff4891e786"], [17, 3, 1, "", "2:8 944fc29dfd11666e10802285b2515966d675e8dd3dba1e06c0e50e2db56199cf"], [17, 3, 1, "", "2:30 4538f5121ec15ee6fbd7d3cb0bb690cc955c3d8655feceab5333045461750c15"], [17, 3, 1, "", "2:32 3f33b5ba4b848845ef3c885d9b0b6d3309d5d903bf48ba507cc368dc25cad1ce"], [17, 3, 1, "", "2:22 622a0124d322fc811ce341d23c250c1d22df2be7065199c523a053e04f93655b"], [17, 3, 1, "", "2:19 235bfe3d83907a5ee61a001a2b2acac3b0e021e603831aed451c1cc984b6a784"], [17, 3, 1, "", "2:26 17b373ea759d5c509466cee1cd0f9941a470f136a1109fb7f745dd87e096bcf9"], [17, 3, 1, "", "2:3 9676823aa002fa0b34ed9ceb6cdf528e036dd054cc9680fd769fbfbabbdf2f33"], [17, 3, 1, "", "2:20 273716f2c264d37ea340ce796a784d1e2b3cb3a16578a954da0dcab1900b6ca9"], [17, 3, 1, "", "2:4 485dc2a03abcfc575a18d12f44392c25e70e3d6c8c7defe90be8b259721e9cf2"], [17, 3, 1, "", "2:12 80a04645ad370bbb071324afb5d55d19b18f915e9fadfab568496d6a3a18fa5f"], [17, 3, 1, "", "2:9 3a4366c2f44243bd2284234dca5b270e4dc4a86d1f32a617a269adb290fb8985"], [17, 3, 1, "", "2:6 8bad01afe18f0792f1545d920186e04ba62d8ee647e2fa200dc707f23996d326"], [17, 3, 1, "", "2:1 939454db28503818aeec06820dacf2ab2a82bb11e9ebd50d2b097213c7223ae4"], [17, 3, 1, "", "2:21 1ff9a6a6d1f6eb7b4c668c7940b8c2e1490c37f93b536e4b0f4468a49095216f"], [17, 3, 1, "", "2:15 0f22177e56930189a013cc165f27159e88950b6309aec5aa8f36dad4fc00070b"], [17, 3, 1, "", "2:23 61ca7e8337e433a1f27f8ca82eda551971c4361a34cf11fb7c23f53368ee2593"], [17, 3, 1, "", "2:5 4e3b1a4397f68e72da8d33b18764d344b2cdc18f83b97ddefee8dbdef401dc87"], [17, 3, 1, "", "2:7 9beee8340868a57b1052f0fc0b375a60221fffc91fe52f2b2a049ecea579e62e"], [17, 3, 1, "", "1:3 6ff3d3159841229f8392ab25c21c4749d84f44f9448851671427adf3fa2c97f8"], [17, 3, 1, "", "1:5 b69c21d1eb5931b6f4848c2e230a9199999a3b94ade1ff93a4c66ba685343958"], [17, 3, 1, "", "2:31 38cb0f7a2daa5611bc22dac0b50c555f9d3ffb1127900a2f86ba5a79ff08498a"], [17, 3, 1, "", "2:27 34a0742ef58a8b7fe215596c5252975ec70b4b86687272048bf5ccbee1c21eda"], [17, 3, 1, "", "2:29 c8977ccaa62d4c406898dba6432a60322e5b401d6bd0f7cda07b4b0979bb29f6"], [17, 3, 1, "", "2:10 e4f9ae7e642ed779024a8e69cea6afc9bd400fd2105ce496a574bcc9be0bf3d7"], [17, 3, 1, "", "2:28 408711d561d0aa646b34d91388c4abb3e0e292eecb966dc171c8368efaca46c5"], [17, 3, 1, "", "2:11 a6923eaff6739eb4d6492f970c783cfdabc71c275843e5ef6405fff5af5b0432"], [17, 3, 1, "", "2:16 8b44cfe64ffb38c055354fd03755c38a67d369899996d279000749b6938b4130"]], "5.1": [[19, 3, 1, "", "4:1 6eab6a03669622290fe084028190344d03230efeca455f6bd9e2891ac8781c05"], [19, 3, 1, "", "1:5 e7b226edcf6dc4bc129b1212d923d2b0052764e5f3087f635a8f5c48af37d436"], [19, 3, 1, "", "1:15 6827708c08fa8d7048aaf70d448f1ed456a018a5621ccbad9e38ba38eb4f001f"], [19, 3, 1, "", "3:5 6b2bf289b930cfce356ecbd497063fe3f045ee08dc3919d303a7a90c52eae0fb"], [19, 3, 1, "", "5:8 785db35c5291babacd0f8648588325297f8f45c2eebe7fb665e52b8ac76eca68"], [19, 3, 1, "", "3:4 52b7260cc5a853d5a086c015be7f8a33e52909e289883c03c7dd49664172129d"], [19, 3, 1, "", "6:4 b78639be70162116c61abcb66a81cfa0e2adb505b2a71ffb60f9639cf7a038d5"], [19, 3, 1, "", "5:13 5d22fc340f1c7e324df48a970cf5ae8a4811f8a5ad3880704eda257dd3d2add8"], [19, 3, 1, "", "5:18 c5f72fee7eaf39bc3ba6e09ef2aeadf91898aa80c3ec33ac0edcf6154204e82f"], [19, 3, 1, "", "1:13 11934cfbec627d51e8441eeef28fa1983d4ed59d73d9dcbff26e5d4cf4007fed"], [19, 3, 1, "", "5:11 b55a395def7ce875a26f0fe8a3f186342864481fa72edba9c13c5d5f3f93c9e6"], [19, 3, 1, "", "7:2 d787720d08f2fd60c09276b2b5be62b0bd3a0ad5aef799a71bacba9691897fda"], [19, 3, 1, "", "5:16 0315d5b53fda43c91943de2a08eda96b79f469004237b8d0f02f52f4c1f35567"], [19, 3, 1, "", "5:12 fe437f18136d4053707f9c2e3b8a79e527d78c77863abc6bfd04f4a73204d3b5"], [19, 3, 1, "", "1:12 0905da49ff8fceb1c24a37a019ba80b02f466cbede9db934f3506067251411de"], [19, 3, 1, "", "5:7 6316acea87cf2eeeb7b2e0acb3d99f9f56716dc64ba70e167716659033b9bde4"], [19, 3, 1, "", "5:9 0c9d1f2587c2e5d8ed9ee166a68762909b9b7936245dc9d2341c1f7df6670e6e"], [19, 3, 1, "", "8:6 b7fb9cf107baa52a1c3140dbb24ee079813601a2c74f83321a61e14127737833"], [19, 3, 1, "", "4:10 686e4dfe42f5f913ee2465c883ade027d7e59e9e065e490993681639adbc6114"], [19, 3, 1, "", "5:4 2730f4be7e58310acdcc2e8df0d5792b76b2437850f3bea63f0e94ad25e46eee"], [19, 3, 1, "", "1:21 b32516046ade3590c7036c2a5ecbf17d55a9f6f00da394c3d5281096f8cf26dc"], [19, 3, 1, "", "7:7 3e6c88357b38cf981ef309c03b2df1cb25d9f796365ca21fbbd67f2d4571cd42"], [19, 3, 1, "", "4:6 e3791cb88451803cd0eccbbf5f370fc3c972abe87f321825dc692aacb617742b"], [19, 3, 1, "", "4:8 02aca8f7474b9b51097bfc5d6ab6e5f5fe22f7bd5eb8847ee5d4f3b70392c46b"], [19, 3, 1, "", "2:2 b5e4dea23898449138503e31ca3616865806df2f2af08e0460bf75c15cfda0d0"], [19, 3, 1, "", "6:5 cc0ee91216508f36e23696e7ee09cd4fa77b065e4c323a2cf3610c891336fe3f"], [19, 3, 1, "", "1:18 7d886e7fba9c09e14a0789ddb951c710bb88a50cf8e06a6bcdd6629fb55562f6"], [19, 3, 1, "", "7:1 071b1b905e799a04118d9b0fe22e82b9944ef00a527e80a327c0c4f6511fd52b"], [19, 3, 1, "", "1:16 5938b3e5c53f5eb860f3c7aae1864e4e5b74c0a93b9460455798ee597639f3bd"], [19, 3, 1, "", "1:19 655158cf590f06600319e8e2695db1b56219fadc4cc034888e17c53b07a84274"], [19, 3, 1, "", "1:17 6853dfde9579870712b9fa937c1b65941c6cd04e82272bc721064e696c10938b"], [19, 3, 1, "", "6:3 cdf387e98a664c3724ff90541e30f67670be603da49923fcb4e3a4ee54ba432e"], [19, 3, 1, "", "6:1 0ac86e5a12c490f5eb80008b0e18cc9da39af2074dfbdc99545777192814afa3"], [19, 3, 1, "", "2:3 9523bfb2f8baa5008bc1e0027689e39ccb5e220a0549096f0b83c5c7246298fc"], [19, 3, 1, "", "8:2 948b35cfd7619032dc69a5d84fa17b28a615e792a6f0e0d49e140816b136e7e9"], [19, 3, 1, "", "4:5 c1c27a19deb008cded1ee11e11c906c699c4a1a086d847190fd58dcc97f4785c"], [19, 3, 1, "", "1:3 d9b79bd4e33b5e5d59d8f9ed2df014f66c7fa0c487fc3b0b70e3700fdc7dc420"], [19, 3, 1, "", "1:8 a52f9ed5eaa2b34c018a779a37184c71defa111f92bc5a73d7642178df8e755f"], [19, 3, 1, "", "8:3 b21f2e9bea39902d97b0a75bd48f584b5bcb685635cecfeab096b27a096de184"], [19, 3, 1, "", "5:2 0b382770b9780b9239f762eb87f95835b03588805b1a4b3def28336d666ff7a1"], [19, 3, 1, "", "1:4 4f2142d8ccdb2e64efc1eaedfef6bdc5b02f5ab32bf7ed59698ff61681fd7384"], [19, 3, 1, "", "1:7 e762d3ac05f362349d87a2a26cc37f37eaa2148eadb4ab7a97745abed9a62df2"], [19, 3, 1, "", "3:1 24403c83d4acc034aaa73d968a14afbfe7d9f1bfdbee90b17ef960075453aaac"], [19, 3, 1, "", "6:6 a25a7095fc72a731e04329d8ab3d3101d3671e76267de53f09aa6d749f866a5d"], [19, 3, 1, "", "3:2 5f42a52d41b664edb742dfd664f01990bf8432d041e601e283d750cb83a85f90"], [19, 3, 1, "", "8:5 93891609dbf9042a20ed470adda1893453d146707a716c6a05793ff9c64e10f0"], [19, 3, 1, "", "5:6 656232ce77042076d43593f3f21939aac2c7066d0c750836345ff9ec0a42124b"], [19, 3, 1, "", "5:1 959fe2ad28f3934a1ce306646ec29b82f95de36f84a5c69840957aeac1b88eb9"], [19, 3, 1, "", "2:1 7afee4377bf01eee53e398835c943ac86067eba24c1cf64551d7f801915e5ece"], [19, 3, 1, "", "3:3 41b7c39a45d4144509bc833e84ea455b7d86c0a67c5d58960e14e6337b2c44d4"], [19, 3, 1, "", "4:11 0156b2335414d9b4db2b75d75ed55fbca446bd1b5b81604e0171ea7872fd44a2"], [19, 3, 1, "", "1:14 05ce4678c850feb8fbdc7b0bf9a65ccdd82414dec3163903b5ff487cf3cc1b8c"], [19, 3, 1, "", "5:3 1cfc9d659ff30640a5179ad40746d5c08c3c187b5271f28b88305b4de6ba138a"], [19, 3, 1, "", "8:1 f9dbdad2eec41e1e1c60cd8c0cacf14973b904c94631089f41ca0e1bbda98a17"], [19, 3, 1, "", "7:8 c6203fbb28f63565945031f16bc7f7096f16bee4c02f2c16161cb0c3cf80c7a5"], [19, 3, 1, "", "1:11 dd8b86458df1b70addc97086f4ada7c7692ff5103622010059fbf0283f8ffbb3"], [19, 3, 1, "", "8:4 9ea93d82c4cebaa6550a0787f2925118cf5370ed8a0c02104b3a623c197ae9c1"], [19, 3, 1, "", "5:15 4993d699bb304cc5b32245e03cfd7425d322876b5dc54fef12048c5874c667c0"], [19, 3, 1, "", "4:9 1c34cc598291b31ea8a8e18057c24a39a3b1260ccf47acdefb76df1c0ffd1b05"], [19, 3, 1, "", "7:3 3bf650bd8078af8405ff969b3616899e1bc80ef2ef591d2b291cf99f03008f32"], [19, 3, 1, "", "5:10 88a5cfae2ddc1c38d1df4a2dc1b86e99bcced79bc5b40afef543633e7c48bce9"], [19, 3, 1, "", "1:20 d3b46f205bcb595fe85d75191fcd80dd7933343080fd05b57200c0118ad6b609"], [19, 3, 1, "", "4:7 7f7d5841b9bc8e1f3eca2f3f52fb1c78bb016e93d8212e3225a673fd4bc4b053"], [19, 3, 1, "", "1:9 b439ed8b20762b4889891571152f54745dc81b2f6b4abc45db0448e2cac4888d"], [19, 3, 1, "", "4:3 853158ce8e75116be9bf2d63bc0d49626010b9d0fa0c5ebe80a595ef4da37aa3"], [19, 3, 1, "", "1:6 3ee68e9c11cc6de58983cada3e69d6e25c9096bea32debb22614bb2a25d155f0"], [19, 3, 1, "", "4:12 828f48eb56377d3b46c0da453d4e59253c0dc1419ef356ebdec3471ff072a7ef"], [19, 3, 1, "", "1:1 12df3c9420d70b5492aee216c48d595bec10c1bfc7c95589c1aa150787788c68"], [19, 3, 1, "", "5:5 0ba8c1ec907ade4c15c689e735f0a5a8b187b5496f656c893968eca7e5468b54"], [19, 3, 1, "", "1:2 241eeb37b7dae1635d202ba61372dfbf4a693e183ca1ece17e3818904f6c809d"], [19, 3, 1, "", "7:4 11486a40e40c1eaa6529d06f4f52771cd804d9d0cea29d215e5e9e6748877b01"], [19, 3, 1, "", "5:14 0258d7139362363521a799c8ad54725da66ba2ef0bd98e5d4a941a507679ac3e"], [19, 3, 1, "", "6:2 6a57abc9dd69b10cfed97889b75688970d20e1d41ef2a43eb713a41472cebe59"], [19, 3, 1, "", "1:10 db308f657bf02a10ddea3390b29681c6eccf4bb81b2069d5f1b2ecfbc7853dc1"], [19, 3, 1, "", "7:5 318a513cb1fdf4e37047eccc4975636818c7cd86126e00b5b3e132411c629003"], [19, 3, 1, "", "4:2 6b5457b32a2fa8723c542bd4b63d6de477dfc4e8406457a6b0ec05a421fbb295"], [19, 3, 1, "", "5:17 9f6d9020a6778f7a34629150159b8a67764f0aea6638d4f0d47a20fc22fbe70e"], [19, 3, 1, "", "4:4 32107632e6d0b56902397df91b587c925c1cf6ce0a1f364dd9a3708ce1e015f6"], [19, 3, 1, "", "7:6 de50b523931b5b23b262977da389190179884668be06d4b514d2908f9ad2aeab"]], "14": [[3, 3, 1, "", "5:1 4836b7a81f95f97d95f77726c269b4aa77f371889797ad03dd5ac5df22bb36d3"], [3, 3, 1, "", "1:15 79a170cb7c345638c6755e2d61f7444d2a35b53530a2cb6d81638b4f002de86e"], [3, 3, 1, "", "3:31 177724d6510ea45d50120fed6c28c92b69dca2fc3124541b67c96e933917bc0d"], [3, 3, 1, "", "7:9 5b6924c18d30552bc9b8351dcc65a6bd1e5d98680cbcb35bd254e872513eb96e"], [3, 3, 1, "", "5:15 6cc5106a9453f6b24aa3d1b25413993384c934c46830703cf83d6aea69144c37"], [3, 3, 1, "", "1:10 9db5af7bb0d5b4e2f0254774b4d7490d11b8de8e608b0b73eab3268c19fb91fb"], [3, 3, 1, "", "7:6 6bf1152c602ed8ba48c73c7fa1915bfad897fb93875da88dcb8ba9ffbffd7dca"], [3, 3, 1, "", "5:12 c2df785b7f8b4c342a0cd204655bf38f1cdcdf6da21e8f7033577a0779ea7dfa"], [3, 3, 1, "", "1:17 9f6fa9d43fbf2924e1c1ecc5b6eef6db41f10e0eda261f898fa00b0db1afddce"], [3, 3, 1, "", "5:39 45f1bccebe0303da8288a05a61a1209ff3203d962d252fcfa1fb0a549f9feb28"], [3, 3, 1, "", "1:2 3ac0c135867846c8545f48d505c7223de228d3c834e6c35369d20839f30645cc"], [3, 3, 1, "", "5:37 ff385d3524d4f2788d893d77f024a5876c248a7eeee84ac5626642a07c55e0aa"], [3, 3, 1, "", "9:4 1697af6564bdffc62e51d3c846e72831c1c12e73fe2790f11c7a21ebfaa07a71"], [3, 3, 1, "", "1:11 e602c23f513b2a0a4e008c3ea5961a7ed8f80dac05e98ee7a31d32e25387986d"], [3, 3, 1, "", "3:32 a16e3a0e1a36090a7b32f972287f4cdedbddc5e240a9b3c08929277f4696a99a"], [3, 3, 1, "", "8:8 c67d0f504519dd854e9530bae15b45de6b718e9b8c41f7cbf3e5178c96e8c04b"], [3, 3, 1, "", "7:30 0e8c1af4192bbb151c8e0d0e48a61bbc1f113b36ede83721e90db3fc6229e35a"], [3, 3, 1, "", "4:1 43517ff3b8cb455dc43e97cf0f608edaefcb7c7be9cbed87555264c018d5f507"], [3, 3, 1, "", "1:8 9cd87b048aec0624e781b4917dc99e0e3956051679365ab7d33211685d93833e"], [3, 3, 1, "", "1:9 43a9474bc05f5cd0e56b671046a19f56d4d25db70d02d706182d94772fbd9525"], [3, 3, 1, "", "5:16 6de1568e937c91c9d59930b38b47a437c2f0d6c186377eb0f20facbfed8ffed5"], [3, 3, 1, "", "3:5 5acaf482d5f5abc1db1e3f4e641bcd7d6c807d43c02ce713887758947708de2a"], [3, 3, 1, "", "3:6 a51e77fdf7a71f0b0eb300f601b6c822e9ab150f5103aa44a1d5ca3df82f5d6e"], [3, 3, 1, "", "3:7 ac1d3cb4221100b61e82b61f5b77c09f81760c8ad406f8180479d1578f69aad6"], [3, 3, 1, "", "2:1 14af7dc4459e85c32c0011005e8e1d05bae942ed8f5d4cb54aa713543425be90"], [3, 3, 1, "", "9:2 66ebea6978cb1daf3e00dfeebbba4e819b907b02a40349e360a6b094881ff7ff"], [3, 3, 1, "", "8:6 83eb26105dc85d77872ef84d2a9ee034d52e70b80e1aebf1653955eb3298caad"], [3, 3, 1, "", "5:7 b25e6462bc8422aa888e0dfcd2fce3eb82d9ad592ae8442b03f73c12fb73f326"], [3, 3, 1, "", "3:24 8902e7d1f80cd0a6e4e560838c03d8a2949169ae5cf6ffc22f241884a23bdc84"], [3, 3, 1, "", "1:16 25dffbf70cb2bb0cd22c431fd0a46235618a589b0bdbf4bf180b51ed37a9d5d6"], [3, 3, 1, "", "5:19 e64cf0d2e680eb773614e1b17642212b8071fe0e2601a1b4c95e71731c84a4e0"], [3, 3, 1, "", "3:3 a598a12193d0fc3d17a4719a6654b5c3e5de057fb03a8f36364aedb05933e05d"], [3, 3, 1, "", "7:15 64222f860a3b80479b545a9e1668b362fc096bd84fd135b83848cab59f535464"], [3, 3, 1, "", "1:4 1e043bf7a4a6c40020a77d37fba4d646c5e5114a2fd0ce467c817c77746df26f"], [3, 3, 1, "", "5:3 9d7737fbed1d15d12a68fb7556505470fade9e802af7fd449a008b5b02bcfcdc"], [3, 3, 1, "", "7:31 6a1fe59e480a0b1ad4b849816298fff68ba63985da52c560be04b860192302b0"], [3, 3, 1, "", "8:11 849224ffd513f258a847928a943322879b28ee64055165e1ea8d3bac7ae0e624"], [3, 3, 1, "", "2:5 66f72eec45e87d39e392824cbccd92cde109e25c1ee3731ca8e7b27a1bf1b778"], [3, 3, 1, "", "3:20 038e052fffa92303139c1be17bb4f7521e552611f2647cf22270e8358b9553e4"], [3, 3, 1, "", "5:29 3ff5dde150cb5c944aec2ecd5a8349fb90870bae072f2f54544f3c820bfa7fee"], [3, 3, 1, "", "6:9 77446948cc77c5f2d38ee156686b5607c4f0331f371b47e54e835ad173f80ba9"], [3, 3, 1, "", "7:19 41745bc2f1843a06a54a672f54f86ac947143da2a368e20e62f8df7a9d67ebeb"], [3, 3, 1, "", "8:7 2b077c03fd28171c667fe2cf4b197a2f463d319e9fc967f4718fc7013e240522"], [3, 3, 1, "", "6:3 ec28e48bd9269897b4f0446e74ae493289085d680cbdc44336623ee5d261c82b"], [3, 3, 1, "", "5:2 db9113301feaaf01f285b54f58e061b2b4b3902f5faf3d7d227eb0b315c29ed6"], [3, 3, 1, "", "1:6 62877b7edbba7547c96ed213430dab1fe6be842fc13b0905bf1e0e39c1574c5b"], [3, 3, 1, "", "7:20 00e9aea779512a6b5660ecaf0702c0d3ac4c3c845a967ca739fd4cac1be0b551"], [3, 3, 1, "", "3:13 6b80947a0c4468e18fade3520519a9b79a5d2d8115001c1eb8bfc0a4a029399f"], [3, 3, 1, "", "5:11 4e6c9e8735f706d3ed311192bdd242aebefbc9cd8b79ed32481799fc4e4d54ab"], [3, 3, 1, "", "5:5 a19dd69d00d64c388eab5b3d9c048c0137016955c4437b1898ac721c57e8f994"], [3, 3, 1, "", "3:29 21a2d8cb523c5773ae29d50f41763ed7ddb60176b8c96ed994bbb76bef1bf401"], [3, 3, 1, "", "3:11 0810d5dde86b8556c45ed507bfbec7f51260bd25badbaf62080b21443358840c"], [3, 3, 1, "", "3:28 c3776124fbef0e532209f8f067a47e7af3a3bf7032ceeab5cfb896c7651d07dd"], [3, 3, 1, "", "5:22 5cd65fc00ce58c6713964263dae05662f477e761c5b34c5bd4f050b3608b12bc"], [3, 3, 1, "", "2:14 d2248a6b249c97703150accda87c18ce1d43c45ffefa58683d93eab6824434a9"], [3, 3, 1, "", "3:19 8ed372f7349a77552ebc1390e264ac1254ab102736d6e6455ffb3143c4602dbe"], [3, 3, 1, "", "5:26 daa0b3886b8ff9f6ff8b555ad965ddbc2563f2cf44e1b869d632647511fde7f0"], [3, 3, 1, "", "1:23 87567b121feb41fb49a72ba0f88e7147e1ba7182f665fcd3118ee7cb4e446d2a"], [3, 3, 1, "", "3:27 3f386dfca473cbbe5216f7579aabaa0cda4f6d9bfe53ab258a43c18168692f75"], [3, 3, 1, "", "5:9 be6570673f514f4a0d3d22cd860599d6811f9cd474760042c53ed220001d5d06"], [3, 3, 1, "", "7:21 43af72288bd22a2547f54bfac05285b72065c3c2cb06c8de5b5ce6ba9efb055b"], [3, 3, 1, "", "6:5 6bc798373f758197663c5691e9bf15b398a778e6f199a05c44fa7aa932fe6c11"], [3, 3, 1, "", "8:2 6e3390d623ef6fb40f9e1687c6a8225b9eba4a6e72844ff3d2c96319a35975fc"], [3, 3, 1, "", "1:19 3cb5bba3fd185734dbe976155c21323253786de2fe38287190058d186d71d532"], [3, 3, 1, "", "5:20 8030bef3d19c581e3a4a96c91f3fd57388b1fb2bedea44b40c010da243302e7f"], [3, 3, 1, "", "5:14 e2e5c5f30f5fe02da3765cc72c29c109ec1284daaaacef2440cd86c7dca3ce84"], [3, 3, 1, "", "7:8 f9a3c4f788393bf20c3f6e2f1532ebe181eabd6d14c64bc76bbde37f384cc86b"], [3, 3, 1, "", "1:24 d9efa486af937ab8018d16e3b87ca3ba0732e7ca8ee67d91e37f85f401545d65"], [3, 3, 1, "", "3:17 6ea02148b0bd9c494f779eeaac0fa983285fd00082c3df4add60a7293f1b4d54"], [3, 3, 1, "", "2:8 80ceeb14a02b69d81e041c8aa913ebc5ae529cf2ee64c36a4e3d2490d9362418"], [3, 3, 1, "", "9:1 9dc68fa012d432e6ce69d9945c40a38ec3fa96e38601d3106e03acfe663fdc95"], [3, 3, 1, "", "8:3 db3d661af677fa5cf3df3f945d076f9f7636833ffe1dda2753c0bd7295c67912"], [3, 3, 1, "", "3:25 272e37c850f521889e6d9d7e6813f0a87f44a727cb59102b140179debf821a56"], [3, 3, 1, "", "7:26 923e223c194e910992be0f11cedf10480449de62681514efabd485fd092a163f"], [3, 3, 1, "", "7:14 3bfcbf98de455cd97691285c1acf7f4818c2d6a62889ebc042f7444e9a36d98b"], [3, 3, 1, "", "8:5 7bb5774d32bb848596abc22f98835526687c7290c92e9a0c480006e2ff78fcee"], [3, 3, 1, "", "8:10 28721531162ef5d6094a8ccb50a419eb494630777d043b260cc2e84dd9e65180"], [3, 3, 1, "", "2:9 5b655efb0d1d9c1ebf6eb86a27556a8c7c7f88e3eefb54012f7a4875c62c4c65"], [3, 3, 1, "", "1:22 d2c4cc3aa6df1ff8c7acad8083bd97da4c7bd274a886f15fd95a0d2495bdbb3c"], [3, 3, 1, "", "7:24 8cdb7a1fd01eee9c13a292e349acea9eb9ac949a2fa9265baef3c16015ddb27e"], [3, 3, 1, "", "7:4 1b245fbcb87f36b4177fc03be141f12a61d6353063182660fab4e0cdc454c0da"], [3, 3, 1, "", "7:22 2ddb4b51369e74bddbb00fcd04f1bb773bfba5a9e5dfc796d8df300f808159ff"], [3, 3, 1, "", "7:7 79e5b1e6a7d289558aff645ca9eef17ce05e04fedcea56361c3c5c8e0ee8da88"], [3, 3, 1, "", "3:10 804ea247d1050feb630c47dee50038329c0f8fa4a1c7bb724eb1d19b29eaaaa0"], [3, 3, 1, "", "7:11 7645908217267b4bb43c4e7b5562d641d9bd121bc47c13f2301e854c768d2dab"], [3, 3, 1, "", "1:20 d3626b9e94df64ec6a68712a8efc764bafebfd1c7736ff21617a39badd0aaffb"], [3, 3, 1, "", "2:13 651aeacef587c3880996a14a105866d5887bfa31fee311aca7513f5271e0ab59"], [3, 3, 1, "", "7:12 8e0c213bf3df7e68bb3d5a37c5d28f9a2951831f6a212231d780248a26766802"], [3, 3, 1, "", "1:13 fa112b87d033633e63c7f4216a3dac2dfa3bd0d440c7f574ab7a8375752d577d"], [3, 3, 1, "", "3:1 faccaa19e7b0dd16805a53e9927816227b3f4124f6860de31b266715a59bde86"], [3, 3, 1, "", "2:3 5ca85d6ded39a41b0210496968063f04f76d7902d519e0044cb431f2888c032e"], [3, 3, 1, "", "3:12 0b5983245cd5346dfd1276ced7307c04d4d81717e265035c72319454fbdfac52"], [3, 3, 1, "", "1:5 cc53b299dafa70bd4b1bc538690c6759ff1aad962a25dd458050dd834792d02d"], [3, 3, 1, "", "7:17 b5a17251d386bd737a55045cc108b41a18740d77abb50130269d9ebe6303ec72"], [3, 3, 1, "", "1:3 387b393db8ebbfbbaa31538cf9d1ed1fbd883a62e99cd43daae557d55d6e3778"], [3, 3, 1, "", "7:23 fa0a3046e6eb99fb80810bb3178f02f5e79ed989591df2df0d2770e7a189838e"], [3, 3, 1, "", "5:17 da1ee981a9e1da0bcc03eb523e05994e90313be4bbd2f3a91ac1cef0226944fe"], [3, 3, 1, "", "7:1 813cc34b517b6e85c804618d58441cbaec0e01369396ee4e16225d853a8ea8f3"], [3, 3, 1, "", "5:18 1f6a93e2bd7f34e4fba8c83590318721a361b61a42c82338c30914ca994e74b0"], [3, 3, 1, "", "7:5 e517d4937f6b8b583887c5043676af52be726cafd61bbc680f13f5656221172d"], [3, 3, 1, "", "6:2 9110a045c9c8c940ad03c36e93d5155d9143317d35c55691fb325a15db4b8607"], [3, 3, 1, "", "3:8 2bbb4365668a8e9949e6ea226fc1c4ca1bb0c3059e7c2972f064baed667ad506"], [3, 3, 1, "", "3:18 2356207dea29ed2d5aa6e5a78e4994316431b1fe5a8a50b76c7d4b8cdeddede4"], [3, 3, 1, "", "5:13 b626273c028df98bf83f9cc308f4b313b40fd4af9a828d4baa99d514847b7e4f"], [3, 3, 1, "", "1:7 df0355bf9d408621ab3501afd0c95fb72223e5ff74db7d62eaddc72e96f02fe7"], [3, 3, 1, "", "5:10 039f5baf7e3e9350742076c571ec8701657413eb2ab8cf7c8ba7e4a9c6525e47"], [3, 3, 1, "", "3:30 1efe56e648556f44aad0d45dd15797ab9f64720e38e3df135b9a6f95869b49b6"], [3, 3, 1, "", "2:10 ce3d4660375205a9a7a05150a0d32054e4b084831f3597693559ff0ac6ecc11a"], [3, 3, 1, "", "1:12 f8bbcd5c0b5f9b29fea6dd2805dd0de209e9d9b443342686960740d64e79321f"], [3, 3, 1, "", "3:15 34501af716aa34b93e15d351af04e08ef899126df7109cba1f2037f7ebaf9b3e"], [3, 3, 1, "", "8:1 eb93934c961caf16b01776dfdbf9b28bd8d888368b6ad7e96ed926a29f22bbf4"], [3, 3, 1, "", "6:10 9a4a1df8c10224f0c968a22de8bdb0bef1914575cfb19ea0eabb39bce468dd62"], [3, 3, 1, "", "3:33 3d7face163b14a1f83f142fc864a2664a8c9ff279c76d924be5a0d78c9df1a62"], [3, 3, 1, "", "3:4 a04567d394d65300bd24d7a6f612dfe96ab09a8e1d9d24007027cc4d257070ef"], [3, 3, 1, "", "6:4 51511e88fc1929d2b8a82b1599001557503f199917df1a80d734152884ff7c77"], [3, 3, 1, "", "5:30 d4015ccb1d4717c0b29f6d3f48fddfad1ac1f9f8a397e4963f0d571b37bd4a4b"], [3, 3, 1, "", "6:1 38d62c936f206c7f1e48f785bbde2d34f1bc2865287994876e882b1c0f65d05e"], [3, 3, 1, "", "5:27 120d3ec4ef8b8d96a2aeed9aae90b73656762d0a9cad70696c487cf430845448"], [3, 3, 1, "", "9:5 f79f3efcbf1195ffe54c0a60acbf4bf5874f53ef8c0b36f0851ce886a40598d3"], [3, 3, 1, "", "7:27 7b947c9844d14caa57b996745fe9aba3027e04b17242edb5d6ba5c93d9247024"], [3, 3, 1, "", "7:13 9cec53e98886d395fc8df4d58bb00bfcb91617b34acaf616395d8e52652246e5"], [3, 3, 1, "", "3:23 94b5df1f402d9ada3134d26046016aef437a8e86533892e27c5a99f4edf52a58"], [3, 3, 1, "", "3:22 87aea9dbee8a48f85557797bbc2d29f8e6fdb0dac7615ebc8e45ed28500441bc"], [3, 3, 1, "", "5:31 650724cc8ebda80bcd989f6e99e585db43a4590a015f45fedea21bb82f33dc3c"], [3, 3, 1, "", "2:2 fca421955d7d461ea14be29c223491277febdafc297c8580073d5de797c6d03d"], [3, 3, 1, "", "1:18 79b617624b18e886c67a3fd5303e3c3701a1bd761fbd598742fa457fc62de196"], [3, 3, 1, "", "6:8 27cab7337ca595be01ad78b78429ef14d328fa6a449fea686acad8144ea79c34"], [3, 3, 1, "", "2:11 58a169c5015aa314a9ea29344a5fd52675e580674d1e2c168b5a1cf37a662248"], [3, 3, 1, "", "6:6 c92c07a0326e48234f51c8b6a55bbc0ef651cc56135b5f0f5b5203095dac192e"], [3, 3, 1, "", "7:25 12921489bca7899128033af3093a7ba86cffca5d616df55a4805a78bec860c60"], [3, 3, 1, "", "1:14 e61e4578e8cd0a2124be00366bcc0ace261b47e5cc829bcf30274cd2b97c588f"], [3, 3, 1, "", "5:21 df9b14ad6a4ce87a81cdbfcb59cf04e07e8eb0a0c2de14823a7b87d1ee2a5700"], [3, 3, 1, "", "3:26 07fbe740bf19563ae613bfea97ef80ae7a163aeeb40db28860b3e3271f30dec9"], [3, 3, 1, "", "7:32 450d1f7e6a218347a2975757a64915986a919f11db07da137f1b613c0651d553"], [3, 3, 1, "", "6:7 4346e39808389249844816dc52643e4e1c2e04e1990eddc603e94ad0e797c809"], [3, 3, 1, "", "7:2 60cd8ef0b9e4e5913161b5314d0d298edd34ff20cb398eb5e69afcb53c884a65"], [3, 3, 1, "", "5:33 cc447ee2f7a5dac66d5e22eb032c6a31eb21d5526ca66fda96ebc2ad415fe6e6"], [3, 3, 1, "", "2:4 f5f0a1362543a52c48a0832fff6511e7b9cdc663430d2e625d748329455133e9"], [3, 3, 1, "", "5:6 823ca05b98ccb7e81d9e549d58a3aae35ebbed2f14813b3715bc9e393835a951"], [3, 3, 1, "", "5:35 42dffcc4cecdc17b20167b7319ca32561b6c3bac4a546b72a18301ddd55a407a"], [3, 3, 1, "", "2:6 3e16d751015c5913b6d155171e1fe22c30d873dd4c5557cff7f046161cdcea45"], [3, 3, 1, "", "5:28 809a2c313aa61cdd28a44cd5fcd05bcb52778a18127ddd942da86fc441d1c2de"], [3, 3, 1, "", "3:16 612a8b592294352e6c67e0fd45f33a2baa3584b57d904a270e78d4339281dd9e"], [3, 3, 1, "", "8:9 77ce43e27ab83c36305d9a185a5ca04f7f8829673d2b5697f77fd89d032f6cbe"], [3, 3, 1, "", "5:25 26d2b1e1d098bd315370c984c209e9bcfe05242d062331290c72be6bbe298b92"], [3, 3, 1, "", "5:32 ba289fa126ce5f48c2046c9cc9e5e7cbd13217e772757f9c2d12848473872ebd"], [3, 3, 1, "", "2:12 807c234d700c1c58154b62858df9203ffd5320127beface925513a72d43746a9"], [3, 3, 1, "", "5:8 1d855f70942b4b97e20f7a8c2376293535691ffc63e1a3c00d9ff48fbed1c016"], [3, 3, 1, "", "7:10 7fbdb92123ed136d12204172f71af7bdf831c5cca0d09fb88a8446f8a976e9cd"], [3, 3, 1, "", "1:21 65940ab579200a562e9131adc24d67f63cf6751522972925d98e3eae88aff033"], [3, 3, 1, "", "5:24 52ce21886a1f1adcb3176e37769e7fbf75f96b161b8f1ff617e40e254a1113b6"], [3, 3, 1, "", "5:4 1ca9460a4376c7d597c332cf181c59202868d0b5d8d5fe8255a7b430c6025ed1"], [3, 3, 1, "", "7:3 eb328b409e1e5b1f5bfe01c443065950ff895ff862c758235178db6ea7812a7b"], [3, 3, 1, "", "7:28 17b551577a4582157ce3c9a4dd5f1f653ac4f0fcca4d9b35db57fcb2edc04dda"], [3, 3, 1, "", "3:14 f525bc5d1cc46a6aa7cf36eff8be2a47a90c9803c8a06fe6f8dc345c61c9b080"], [3, 3, 1, "", "7:16 0e4fdf65d5d96641f5f69fd73231dc0d8b53d0a8ee40c16c7e62fc70ee53f047"], [3, 3, 1, "", "5:23 1d817e252ce6759b84635d64a683f45d0081ab7c687143959331fb141cce459a"], [3, 3, 1, "", "9:3 f1ca8332615aeed822d795872f0809ed29a4e1d2160faa1ee7da8b3e1f6e6346"], [3, 3, 1, "", "1:1 92b15a7349815675a6ada6d976e81b32a73c72307b7c303744b672b2b79f3ccb"], [3, 3, 1, "", "5:34 61fb8303812158a4adfaef901dc1452be9cb24ee1b643dfde5f612d0d0a7eacf"], [3, 3, 1, "", "3:2 6f1bc5b5d9ddca435a18802abb0879b3e878d2b97ae4b40649b17237e7aefb96"], [3, 3, 1, "", "5:38 a2c64e06759e68c6b0cf453b6868f12decc89182b9e88d83b02190bccc393951"], [3, 3, 1, "", "3:21 af34b5b94f5c4f453bbbfd85b46861f49c8a88f06df9ae12aa2283441c4c8138"], [3, 3, 1, "", "5:36 40f27fcd73d87d8592e01e22030b08faea5b83cae412960f492dcc2f8a684cc2"], [3, 3, 1, "", "9:6 a131476f47296126bd7d484e19183efe874d331eb45abb3ea465295d1c0645ca"], [3, 3, 1, "", "3:9 46a2d9694956884e4ad1725c0e2505ade9aa39d6718a015d2850e0cfd1d66063"], [3, 3, 1, "", "7:18 2649f9cf8cb9cc5a2907d411e6134e4e0997b0ab85f19a07509de9ffc29575b4"], [3, 3, 1, "", "2:7 452fb25c8aa516688bcf11408b978c40b71cfd10786c03becf5b16b12856c292"], [3, 3, 1, "", "8:4 418ed55705f495765526f09bf71b0e5b2725b130e6f0fce6aef783c6ebca4258"], [3, 3, 1, "", "7:29 96787ea2ff0300ae0e9ddc0818a3d47b177e6ce4c85c2c850a2784a954fa5c27"]], "4.9": [[22, 3, 1, "", "4:1 676be38dcb5032a5b66c95c6e0c85e8d4f049bf01933b118a0967607b5fbbf6c"], [22, 3, 1, "", "3:3 a31ec075c01c1bf5fe6b674ca2fa9dd54e2f8402cde5540b9faa80e0cb2b6d9a"], [22, 3, 1, "", "1:2 1d559796531e476dc3d85e19f7dc9e8b9e85dc14e75d7e22f7fd0d9cd3e0753c"], [22, 3, 1, "", "3:1 c2d4459a9d3124b6eb26bd54c1d0a2741f70e371c43c323dca07a05f424933ba"], [22, 3, 1, "", "1:7 8d410f326c8e233e5773842346d9f3d9783f75fad42585cb76ed490065470f5f"], [22, 3, 1, "", "2:1 e42bea781e368e51e6a841e48a716968a41dbbc44fbbebc2447280a69d1d25fb"], [22, 3, 1, "", "1:5 ea3bbe8655934a40bc687f54cf38d663ed640a043e0a93e57b63097ed7b378ec"], [22, 3, 1, "", "1:3 a61fcb03ca3303b870d5a7bf9412d89fa8c8a999d7275efa89ada3e204974f57"], [22, 3, 1, "", "1:4 f472521e59830a8a2807dd85f1821de685a14eda76e2e46a580818dcb6e86b8d"], [22, 3, 1, "", "1:1 45bfb5537d2e07e5037870981039b3817a257151920d49f5a8939e10ff7a0815"], [22, 3, 1, "", "3:2 77b18aa146d69730f692da58a1c8e9a4953cad14ad3289ca106e7a071fc98a83"], [22, 3, 1, "", "1:6 1dd464889720d923a6efc632871acb0d7f1fa780fec361617485a85c8eaef334"]], "1.1": [[8, 3, 1, "", "4:8 f6d36c515bd4436ca87447bc369bb7b1c69b50ca9215b1d6981dabce39f33593"], [8, 3, 1, "", "3:10 0fdf723a1e989eb9434d0479b0af810bec67bf6b5c463ca83f170e87ac426737"], [8, 3, 1, "", "2:3 913231e2b3ec529bb3f2e3657b340d11fa082044e00ab94da54e14e109b7d0ac"], [8, 3, 1, "", "4:11 0eda08ae37976f0d7d15570d790c9bc3107ea4533794e554872ea0d77af06d9c"], [8, 3, 1, "", "1:7 585a289861cd9b12366dc2314022378903323fea3cdbd6863a2e5bd96ed69446"], [8, 3, 1, "", "1:11 cd7a1f68c81b43b8536b355596a13da9ddc2e33d7b37a18af00eee2456c3fd06"], [8, 3, 1, "", "2:15 7f053104dd4947498f1bb5121b9fe28a23d78ead65d37dd580df0111d558d8dd"], [8, 3, 1, "", "4:10 d7b7b2e401f1bc24ffd16c1f417d18c3d12336cc2d2325ecc1c07d77ea0e513e"], [8, 3, 1, "", "2:1 cf3cbc9c40c36b3adb1ed7688c9146dbd4600e0a3b26d22e0a8e2d2787004b20"], [8, 3, 1, "", "2:6 11c90805ef23752a416f5a6a8b69230febfdf97b68edaf26f6517bd359492443"], [8, 3, 1, "", "2:17 6efef41c7a703e3b3562b12e95047110a954b19026060d22099de222c142ed8b"], [8, 3, 1, "", "1:6 7c348ba84b24afee5a0a39c44f15af8c05a07208877750c9a766d44ab767da7b"], [8, 3, 1, "", "1:12 a695d7fe1b36b6516b8530ec034376b8c43e7aa53cd0795f48e39482be5a38cf"], [8, 3, 1, "", "4:4 15f27fa3164d4f34e687dff0589a9406f64fd304a5cbac1d917e215a3420b24d"], [8, 3, 1, "", "1:2 818ed40aac2e52250ea0014e5de7fbcbcf1e8f325b74a015ac0085699523a43d"], [8, 3, 1, "", "2:16 44025e9b54bdddecd35c847f5628ffddbfc9e4721cd733f41c9186c904ef15b1"], [8, 3, 1, "", "4:14 87380f5c66b721c614a404b1852a6c1f93b93d02b04517c8be6e401f85832f82"], [8, 3, 1, "", "3:3 07f27f39d36356ac4cc58744dc4daecfe8c97cb7f9457db19d9494fb1ad0dfca"], [8, 3, 1, "", "4:5 bf197e4e3db74f8f9189b2d39392b793c47f8e26908e5ff493a91d3567e2e58d"], [8, 3, 1, "", "2:7 fdcfcebd0c9395a151b773b35ef5d5e2720a08080c54f279652f7668a0182897"], [8, 3, 1, "", "3:2 8b9c3254ca795d197ee149cc6a05067039977d8d19cfed0ec3bbf060d371ba02"], [8, 3, 1, "", "3:14 f87533ba7b47cb56f59c27e8d99d031d3c5c35b16c4d3ae271ddb9b3ee18c33b"], [8, 3, 1, "", "2:8 25a56f970c722a9217989c3250b9b75798453ac229d32dc74b97c2a6c84a2109"], [8, 3, 1, "", "2:10 97c8f4b93879c48bdb5318e6566c1d1354f510b903d8d6b9ecef494153773737"], [8, 3, 1, "", "2:14 acf02a4a250adb8e29284b356a6f4a386a936d32f0e85d3b304e708863f10929"], [8, 3, 1, "", "4:7 48013ee45666937c8ad55fb39de161c383ead549216e3bdc9e2882e83bcf0a90"], [8, 3, 1, "", "3:9 617b745c8533d592398a9cdda6ababa7108d653724d221af49db01201b37f99d"], [8, 3, 1, "", "1:14 94c8f2e37b34e95fffa62df717bbcd7d87653a8506a65f52d91e1706e0dfe9d8"], [8, 3, 1, "", "4:2 5265a200f292feb3f40a0a1fe1884a988c50521945182e3581d1e04067c1c746"], [8, 3, 1, "", "1:13 65c2d0a375d2b29b8836f90cfdf174fc8fe72f5198073097bb9401add5d0880b"], [8, 3, 1, "", "2:12 db3c5f8206004bb2cca82ca219a417ec2a4fe259773ae667ab3d10114d5740ee"], [8, 3, 1, "", "1:4 dc11c0150f1c1ea89b5e2e31e3d90c45c62fa5d26005eb9ed3a16e3f7a3fb68c"], [8, 3, 1, "", "1:3 85861dc839d41712fe2a39712eb1dcfd1dc88ba30f3782f92bd1986fe355c196"], [8, 3, 1, "", "4:3 5be24f2bcda1727c3b6e1ad27d2d7c8ffe6e487d292f2b48bd528e411c2ae1be"], [8, 3, 1, "", "3:5 dda9b4ee8e63bba9e91cfb85dc3d43db063c22f72bff45cafd2f6876bfbfd0e1"], [8, 3, 1, "", "2:5 7a81481a7b99562194bdd68e36bc46a25695efe04833a417b9408a585c0d8073"], [8, 3, 1, "", "3:1 42aa78f31bd39d9d54d95d846fc09f42910052efc6f2cb7eb50a7b34706f7c97"], [8, 3, 1, "", "3:4 150c7404a99f5330be2638cb2ac1bc7b36d679a98051361a985d7711fc138e3c"], [8, 3, 1, "", "3:13 534de23af559805d2b96e284fdd9afc9838e9e3f65b120c5401aa7cf130d439b"], [8, 3, 1, "", "4:15 d05cec36bfece44c3203af30f098975bd0f3d0cccd9687f0956cd9eca66c810f"], [8, 3, 1, "", "4:1 8811c1ef8e9707861f67d171dc813cc290188343fde68d68304072ab9d422c41"], [8, 3, 1, "", "3:7 563ed3d97a65d96209f45e597d0d76b8b47739154161a7cc64f041addf71436b"], [8, 3, 1, "", "4:17 afb0e775413f09199a584413d501b6ec88d107c1be87cac6e07bc33ecce6ad74"], [8, 3, 1, "", "3:8 1f8c2956cb9f8b946f0f56053a038a9ab8efaf6dd7881bb5d1d65e1c87b05900"], [8, 3, 1, "", "3:6 bb994ebfd651f73153ab5b7d1a32ca6551ee593448eacf3d370e164a3dec5eb1"], [8, 3, 1, "", "2:18 525edc88be77e71d6777eef00907902bcd024abb3c401a92d67f1ca997971c5a"], [8, 3, 1, "", "1:8 fc97ac93c58134f54e07f9f6ff5334dbf3afdc8b1e707525ddd8eb232a915c74"], [8, 3, 1, "", "2:13 1594b619675d7802bccfee40ca10262be9916e29f70d8f7fecbf5dddd00246f4"], [8, 3, 1, "", "3:12 849ea928df375ac126378ee4fd16534119a4f03f42721cd25145edc4d7850294"], [8, 3, 1, "", "4:9 949f3857c5bbb056b780f44c08df02afc05d59db42be92d94a86c97a20ae4943"], [8, 3, 1, "", "4:6 e53521056d56c3f85475811368708e304047e64d39a20604584fa7f38d9c7f86"], [8, 3, 1, "", "4:12 bf1b757e4fec099109dc75529b8709e0177c379698e8c762c5c27fe8fe0ac2d3"], [8, 3, 1, "", "3:11 ab0e8dc4979784d434b36c0192e6ae186044669dc49a67740bcea941c5a3fbb1"], [8, 3, 1, "", "4:13 ca3586f81ab3962899f5a1a79386ef8637003025a729a5b76bebdb5d1e43cb28"], [8, 3, 1, "", "1:9 8adc0c63aa968e623b7251ecc0776057325470f81d39879bb6dfb23d1985a407"], [8, 3, 1, "", "1:5 4ce6c16caad38e7ccb47adc109089c53cc047073ebba0a06457cbeded05f68e0"], [8, 3, 1, "", "2:2 13aa072e39fbda618587953663ec86d1a188fe0eb4db97252b906ca8e9c2fe51"], [8, 3, 1, "", "4:16 9a579e74f8de12da445c5197e2555aab86fc739d0defc1f685c0aa5dfb44cebc"], [8, 3, 1, "", "2:19 3ab99fa52627e6796ca7e01a7242052885523e5e0f93b9dd98ec22d483688e60"], [8, 3, 1, "", "1:1 07358ef439d78086f970b0606b6da177cb6cc2e64318f27af92832c21a67be43"], [8, 3, 1, "", "1:10 2f2276e84ea3e0251d343a2c859bafeefc4eb09d8d7222774ce538650c01980b"], [8, 3, 1, "", "2:9 1d6b46a99af9d8d5a9922ea6bf1c4898d71c34759d9b8533b122fe70c0df9c02"], [8, 3, 1, "", "2:4 a3dbc58c5b6f14fcb934d8fe2816aa264d6ae3a56685f6bae01cdec5e2cae935"], [8, 3, 1, "", "2:11 a24d947dafa49ce8e2c37571c7d28c4b895b8bb3b09bc1fd250ce2eb3f7b9a01"]], "6.17": [[5, 3, 1, "", "1:6 14a5fdd342f43c1ff636462e60afe9fe909a5f38112627348b199ae2ee002edc"], [5, 3, 1, "", "1:1 fed2673ffa3a36e3d8eea0ff13a1313ace5bd91f22d1a6589ae9660c512118e8"], [5, 3, 1, "", "2:2 cb91721c2c002487d3e82e8dceacd7595beb7cd8fe5de78218f6db9ec3b5ae27"], [5, 3, 1, "", "1:2 712169ee265f92b134c3f6fb57963cd9759c2cd5683f0424988fe3bb68bb64e7"], [5, 3, 1, "", "1:11 56c965d3891816793bf7330f4c08c63924c6a0b54ca2b9eeb47ea59f3ccfc2ae"], [5, 3, 1, "", "1:12 63a306e9f8570a302ee746010c5e0e69b20d7386957aff9338e0f773e20d22f3"], [5, 3, 1, "", "2:8 61a7161cbd8deb105732aa6f31fec380f4a218fb64f1a62dcf0a5596974f4a48"], [5, 3, 1, "", "2:1 89d8336661af98acfc92ac73c9a7646d5685ad8fb9a9c7ee727522c13e40f937"], [5, 3, 1, "", "1:13 20d907a5cbe82489d0014d547facc267d3c0c97e818349083a6b2185fd51dbc6"], [5, 3, 1, "", "1:5 d43533dc4e30c579c4621913ade291f4b6ce36cb6a11a56fe5604995829745cd"], [5, 3, 1, "", "2:5 3c569b4b1a7dad55b309e8e602764e8a557ccf8b0ee06a5f865bb3ef7d1eb28d"], [5, 3, 1, "", "1:4 0850025c14ab883b37fa1861427a418f09ca3b6e0847d51a890ffaa2652452e7"], [5, 3, 1, "", "2:4 ab6b81b2725ca076df34546e9b8460637727d1373cf69dd411daa57b1dca9eb1"], [5, 3, 1, "", "1:8 6c50b2d33d2418fa51153578714c4068528621dd3a445810a81473047b4a5d5b"], [5, 3, 1, "", "2:7 c6e6c37f75c0e92c4b7ad3bed59c5bc6e8cbbaa12fbb531e90c5623ffc57d20d"], [5, 3, 1, "", "1:7 e99f63a7d1d8d378bdcd5535ffac111aa7ed9148da25a75e8dab381f952ed846"], [5, 3, 1, "", "2:6 d30896d56b0bcbc14b8bd25c419011f7f60c59d2d837f98326500728db352704"], [5, 3, 1, "", "2:3 bc1bd4a44da1387d7a93190dd68ebc0396e1ecd754b7f47c469dcfee25264ce1"], [5, 3, 1, "", "1:3 24d6b64329dc27dfdf593e76d519f5ae054d199e4518e0738c4de51bf51a4e94"], [5, 3, 1, "", "1:10 5fdcd07260c9fbc40cbe285b674e158c7bf751f43e92b01e3880bcc6aba59521"], [5, 3, 1, "", "1:9 8c2fd758de86a4133bb6563e754fa800418e8e439e99df337ded2a469af6527b"]], "8": [[21, 3, 1, "", "1:7 9fc5558523a5dc96084b645182a9748a4ea46e67b31afc2341107cee0b0121aa"], [21, 3, 1, "", "1:4 6e23f656fcfe54a647a2278c5484a3fc80ed08112e18b6d4d6a5f11a8c2f6b5f"], [21, 3, 1, "", "2:8 93c30bb9a1f379d6fce63a4b7aded720c5328d70432fdb6c05a7aa2312426a73"], [21, 3, 1, "", "1:11 017c4fc4f03e296f8d96a0a62fc006c647bf0a9faaa94ad561061c93e9402928"], [21, 3, 1, "", "2:6 fe5fb38b0a811437c9b5e6e9f70af727c9013f79573eee3673146cf030c660c4"], [21, 3, 1, "", "1:13 3c6ccdcf4fec0d1389605503a83c401562b7c707fe92ad33814c8cd10b1d3b1e"], [21, 3, 1, "", "2:5 cf7b0c182db5007a86bf5c05bdfb68e63de338e95ef2e377bafa1708a7c00738"], [21, 3, 1, "", "1:1 fa270e107510c6e1cbbd96841a51e304e617eb94f030aaa20c17913ff260d725"], [21, 3, 1, "", "1:5 271df8c51d41c031901cb4d22bea984e6f6a8e260e878213b8ed7c580900eabc"], [21, 3, 1, "", "1:14 14d436071a7dda876a858e8877ad564c71299dacb6239d9bff7ea3299d8d6a65"], [21, 3, 1, "", "2:2 0c5f0f107d5b1e196ef1a3003b0eb3d235bc6cbebd98a9537e5a9caf9df0c146"], [21, 3, 1, "", "1:3 be1f15f55c52d38164795fc8324e4f7a5b3ca997e5de0de3c0c4ebe283e2d68e"], [21, 3, 1, "", "2:3 28b62503095184fa5c0dc9898c27c50ecaeebfef606f663370bdcaefa1c68cea"], [21, 3, 1, "", "1:8 99c4feb3265bf0e6b3a0c606397811171dba2b964d2471c4ccefa87af19ab501"], [21, 3, 1, "", "1:9 ed71cf991f9a7542c7a7106e4754bb01cdd386dcf21b1c27e7f21519ac4a12cc"], [21, 3, 1, "", "1:6 5c3b2ab8a0b6d48dff5c50e3ca9743ba453c77aadcaa49d6a9485a5fc393c244"], [21, 3, 1, "", "2:4 f02ee18552936ea98c3764181f5651c46b54e5af37f3149b17bd6906ecb33556"], [21, 3, 1, "", "1:2 d10976aa00e76b2bd9ae4e6118e2bb91d70d4093d2416f3c38179f5e2786f112"], [21, 3, 1, "", "1:12 ab96a34396479306ef71b507703ffdd2fe9dd68512c87538bc972ad910a8d508"], [21, 3, 1, "", "1:10 24c8c95a02e8ee0e3828c7b00c71b666881c4ac437e3c018d06b7d83ad58b70d"], [21, 3, 1, "", "2:1 990f51f353986bd884828681d0f82474e27e8ff3042cd1c0b1908f048e7c7315"], [21, 3, 1, "", "2:7 737bef4656101e6322af305e26b7c23b0c56fe07e9b5404ed0fe6daff16a8d02"]], "13.2.5": [[1, 3, 1, "", "1:1 b5b9bec9d76d46cbea5f3747e5f7b0132aac36d1c007bca045c1a1e350d88cde"]], "13": [[1, 3, 1, "", "2:35 f207e9ce744c5b946fc10ed77f0e4d48c9805dbebca1dbdb5557c6a076c1e78f"], [1, 3, 1, "", "2:44 ef068eea3b4195d63c4faeaf8ddec06130b9c97886f65d6a735641fdfa0bbe99"], [1, 3, 1, "", "2:54 044666250ed6ab719cc195deadec75751cf88ccd03d5d74f0424888448852461"], [1, 3, 1, "", "2:20 bdd154ea0f22fca637f51b6c83cb046352335e01a835e7578c6131621efacee3"], [1, 3, 1, "", "2:21 994a15d14865c9ac299a469fa02491a079be98f08e532c1842561696a2b061a9"], [1, 3, 1, "", "2:52 8aafb6d088ea34e1340f6dc625d312ae87a35784cb19b992667687abc8f9bb36"], [1, 3, 1, "", "2:37 9d7b1a8681c416a8fb1ffb7f988ebc46ebe4d70caee8109ff9f24e727f1f94fa"], [1, 3, 1, "", "2:31 f89ffdf2e417fe247529cb8ada441fde754938c091666370fb4a4907947ff762"], [1, 3, 1, "", "1:7 ddc3357e11fde52528c561fe21918b1245bd5e8f4b51c556ad29d044506d4dd5"], [1, 3, 1, "", "2:25 ec2aaeb5be71ab80801008bbbe736f283e0d5966c61fb962f3e0eeca5c099c6c"], [1, 3, 1, "", "2:43 5ce7389b0120f2188d0456318c21e6e97516400b08b9931e9fc08d0e36c18a35"], [1, 3, 1, "", "2:18 e79694d1fca990a102620dc1063eff04ea1dd5c1dfbe2141a22745bbe30aa92d"], [1, 3, 1, "", "2:36 dfd603b48e4714c2db10e165507f36aabf589e751ffecb158b59124480fe5b80"], [1, 3, 1, "", "2:10 02a0c085b317b40311d3351f46a1962249d001ea8178f149b1db9a76bfa770f6"], [1, 3, 1, "", "2:47 cd700e1e3816ad09e427ed80ad2362eeff80ffa5182360299496b6583c87ec3e"], [1, 3, 1, "", "2:58 6212b84580c14ced11ff1299672bb121d44059cb744a474b7e412ee35d653f43"], [1, 3, 1, "", "2:49 b241235f00eb9bda3db61fcee7dba7a5a395a008dda75dba1c18489f5ec52c23"], [1, 3, 1, "", "2:8 d49e8eff84e5ce88a93c8e6b4f4a4ba514b0028bb3d1b7d17254dc7f599ddb15"], [1, 3, 1, "", "2:1 8831d99bc357aecc925ce16cd58e47b873e3b06390d5fb7a155f553383be820f"], [1, 3, 1, "", "2:40 953d885e7fb1e0ea03c0ade5eaa5934bf60dd032fd3261d585adf05d7da0b2e8"], [1, 3, 1, "", "2:2 819b429cae29c60933aa33ed73c325f87704b027ac0198d05fae9f4bf69e4f9e"], [1, 3, 1, "", "2:15 9b687112a84218dfa3ca1c0398bd960887a07dd5a6bc8638b5b8d2cb839101cc"], [1, 3, 1, "", "2:39 83ee9ec2496eca5f9f1bf7225a184b339394c8fcd2aa146177bb9bffc0eac79a"], [1, 3, 1, "", "2:13 323fb400bdae437ffcf0829ed2261a1544d5ce01aec7bf434039ecdd05963f85"], [1, 3, 1, "", "2:11 124eb05c66c007133b357ef970ea0ae8451920e4a7920d8b84d5ec680201b0ed"], [1, 3, 1, "", "2:14 b475a70894edc2d24474d317e039db5c901e1875b816cab114567e81bd8ab90b"], [1, 3, 1, "", "2:48 415ad2d08817bd284d6e72dfa33b0e8321eb4afb36b1cad3da54238b9df07fd6"], [1, 3, 1, "", "1:6 b4754f2c355f2072357c0a755bb404f6751667b43571d332db5c965114f6b906"], [1, 3, 1, "", "2:30 8c88e030229dcaf650154b169b91390821d8dfd437a0dbe05acfc8e30cba2e0d"], [1, 3, 1, "", "2:7 a1e7b39f6c99e32a187f228c19c2009de7fe6fdb93f751ce5336f2008300d9e9"], [1, 3, 1, "", "1:5 9ea853c8e48bec469214a2d9b52929d6510733dbfd7da35ad72428a27b205528"], [1, 3, 1, "", "2:55 5b250c789906dbcf10378e94398f0b4e5540359c213277369259c48af0bbe0f9"], [1, 3, 1, "", "2:28 e318a8fb125755feb4d3ff217ad94ecfbed347ec2d3b5fc6b915785092ad356f"], [1, 3, 1, "", "1:4 3c8df296f170a3b399899cfa57fc5da2cb24c804bc939039d3e9458c342b6334"], [1, 3, 1, "", "2:45 85810ed8c5e753c8587f859f84c0c189be76078846edaa0d4b9844829fc5646f"], [1, 3, 1, "", "2:46 634ed90b7e9a1e93528b551b7e87ccc2f19cabaabd8cfe119731630c1555b2f8"], [1, 3, 1, "", "2:34 f1727bb25344abffe152fe96b9ae047c50c7467805d094633f7c5ba7a263e76a"], [1, 3, 1, "", "2:26 7272a1c6f97c65a1a242fddb8442c6a6775d841ecf8e6dca74890ea2b21b90ad"], [1, 3, 1, "", "2:53 90292e11d3564cdfea3b3a715f63a2a2bc7ff5c0e0a7bf7394d45a73612e1542"], [1, 3, 1, "", "2:32 f975580a1b931d94c926c545e6f59accc6089800804e55bf0d717b7fc1f63015"], [1, 3, 1, "", "1:8 f304103b55d7d87cca0e19cc4a96ed5406fa81e32277ba35a91b20c6ac85614f"], [1, 3, 1, "", "2:42 b5faaae83480acf33dea941d05390fe8ad7ccec79bfab2b30e87b0b938047593"], [1, 3, 1, "", "2:22 3ee32e5e73d9f2f1211fb65ca1c0f0d9d62156fe5ed050f460f1912ce3b036e3"], [1, 3, 1, "", "2:57 bc97a9ab750dc2ab4e8945d338a63dc76c13eb9d172e00871b1bc6678c592cfc"], [1, 3, 1, "", "1:1 37140f4cac4f331316da767c72dc2e92fb5dfe383af30c5eb742a269163ccd01"], [1, 3, 1, "", "2:5 2f27a78e70b3ce7bcc2fa8fbd9d7e48bcf5f81303e22b4473c9ad67be8183e5c"], [1, 3, 1, "", "2:23 cc38d8d58ef7f13fe4397cce653d8d17edbbf4e2f403bfbe1a8b43ec4ec6bc5b"], [1, 3, 1, "", "1:3 cebd4af12f069c0f4ce742eabdd258723662de0e0f1065a6bcfe8772e5e7194b"], [1, 3, 1, "", "2:29 45520f65cdd77c53947a088461ef31fee2930bb2ed25f58133a20ba182466c85"], [1, 3, 1, "", "2:19 e7a9d3069445027dd0df2d0ca2be3467b745bfedc8fda368fdea9ae8714a07b1"], [1, 3, 1, "", "2:27 7488d316ab0bbccd6abaa4b7e9fac3051db8b6b7e7abde9eea639f605061ae24"], [1, 3, 1, "", "2:17 d69474814037b5865fc97976164e1adab1e4e2d50965ee20568962b021550b4b"], [1, 3, 1, "", "2:24 c162024d8e33899473123cc87be077f31a4f25434418bb05acf6f8b0020d6d36"], [1, 3, 1, "", "2:4 2e27368f11256b44dd2ff0e2e21daa255d6bed7e9e9c923ff8043070e7560521"], [1, 3, 1, "", "2:9 8bdce4eb7ab793087e487d41f14318daea55698317ec8c2b834f93716676d8ba"], [1, 3, 1, "", "2:12 0b3817e206a78ddd0a8e8b4ed610b9f55b12348279d741c6b73e04f718ad7af6"], [1, 3, 1, "", "2:38 469d4af2bf4bb8bf7d70abbc6b17c1c1bb6fad4e1fefe9cabd15d3451fcdc72e"], [1, 3, 1, "", "2:51 3a524553119d48abe6bc7fdc94871d5862f0815aab4e5cfb1f63f69d71656f2b"], [1, 3, 1, "", "2:33 561ac627fa6ab3ebf3be1dfa0723e9ea019b53340fbf84caaf46c3b23415887a"], [1, 3, 1, "", "2:3 44b470444d5c0ced9e021ec324c2d117754a70bf3f44d00e5303fef3bee9f401"], [1, 3, 1, "", "2:16 21c4c3f4bc27f88194a4d70c18fea7e0c0dd30914282d878277d915ff3696c35"], [1, 3, 1, "", "1:2 e3cc14af5a12637d401f768630f9f0596ea7cd5c05458d5e49c6242fc7e178d8"], [1, 3, 1, "", "2:50 ad228252c455413a9d11054129ea0a307eb4301392fb4dc7aaaba0db8b102e6c"], [1, 3, 1, "", "2:6 baed00b7e77547d373721bf0e05d646d88cb96ded2722b7505577f118cac0b81"], [1, 3, 1, "", "2:41 276f7f393035ddb571a6f1e00ad388e9854d9e0dcd79acd44e10b7e2f2939fcc"], [1, 3, 1, "", "2:56 546608d35bfe5a90d5a66a076a3d517f618f561c82800080bab893cd87c9f7aa"]], "4.14.3": [[22, 3, 1, "", "1:12 c20fd04609ae44c467a3be462def3caaead0ee6b0c11a572851ac3bda8e9e7db"], [22, 3, 1, "", "1:4 560234cb87c2e6ff7cdbb0d27ca2bc465b9ad0c33b073139a622fc945d297d65"], [22, 3, 1, "", "2:5 686ca62c3062007fe2a2c7112962d70308c2004c4e6eed04508f5a30e22ed81d"], [22, 3, 1, "", "1:5 b16b3fc503b0ef9b2bb8a6286c781f2bff6bdc26cebcef598491234908bf0fe3"], [22, 3, 1, "", "2:3 e2a84e07dc44c60162e59d18213737a3fbdbe13962c4e3f32178970f3d2927ea"], [22, 3, 1, "", "4:2 a0ad068ff94137edb05b75c066208d34c26cad7e567ccbea22214e4480f035f5"], [22, 3, 1, "", "1:13 cbcb79548a5d9ac2995323208dcd3a9ccb79c785569231727fae4a32af08e791"], [22, 3, 1, "", "2:2 a4e8a63dc12eaffaf473b18138e9e501b7fedc18b8b3cb4105a41724426cd35a"], [22, 3, 1, "", "1:15 0a93ba5afb72ab5a83c7159ad67dc0478704a55a3d3ef9325b44d0aee4a5a11b"], [22, 3, 1, "", "3:9 b9f5585c56ad53d5720ebad44d77024dd47add4769f1886a76551f07ddaeb2ca"], [22, 3, 1, "", "1:14 3c29c57912c09c10856a76d6d990de41d91e40bfd828547a00735e0b544f7252"], [22, 3, 1, "", "1:2 4e446345859b9323669a875dd49ec52cce3e71e7f65700097e1ec21cf6f60506"], [22, 3, 1, "", "3:5 5ce3569a487aec0ffe76efa0ebd2f980162b7540452d2800b92474ac6b7fe730"], [22, 3, 1, "", "2:6 87777c1e9a852ae61349dd7554488c91f20c43dc493ec06547aa740dcba8ac22"], [22, 3, 1, "", "3:1 9792cf5e24351dd23a21b5298dab4d7c7f182536a15cd1082d892ea56f6fed7e"], [22, 3, 1, "", "4:1 f6a449af6e0ee8f776a596f24acb1ee832b6830604a4f17b42249cef950b08b8"], [22, 3, 1, "", "1:11 012616fbf6f9d9c37bc76e01c82464fb6d65c6787d308e10f7e7f8d4eb477716"], [22, 3, 1, "", "1:7 3bcbd78a434bf0ba38571a7dd6ed85585dd4e92b865edc90332ecf4b4daaa3bf"], [22, 3, 1, "", "3:8 3ded6c067304c60cab3a670cb056d96704403c4fd5c6719d0ccfba410623ced1"], [22, 3, 1, "", "1:6 2733e9f6847d7d23dfbaf715feec476d91d9caef20c3b3b354287dd0c3eebfe1"], [22, 3, 1, "", "2:1 362c1e5e7ef9d1bb007461a6e77c25fd2bdd4146d43523089f709b4eecdb11f2"], [22, 3, 1, "", "1:1 8fc35e5cf136f57bafd43ae857a0540f3e6377d540a98f10bf9575e151baba5c"], [22, 3, 1, "", "3:4 d14fa2465cadaa9f9404de8d4f1dc2c83ea23291fb5a15f281ccbc77646725a3"], [22, 3, 1, "", "4:6 c01105160b098b089c2c01853293cccd8231a07686ae97a7d7aba145d987c330"], [22, 3, 1, "", "3:10 d6269aed267968a9a469c7003f9ac3e0b12044648f1246e40ef2eea39d5610b4"], [22, 3, 1, "", "1:8 16c08c00ce2a3df58129efe63027ec80880b95b07f01d9fd2c0c7f505d079150"], [22, 3, 1, "", "4:5 7e879940c036b1acde707493ab1511307ccc68d03e5e0c62cfd4d9d230a8bc69"], [22, 3, 1, "", "4:3 ddc3e2f6339da6c1ddd05ef0d487698b078e2c06a7456b12337e4b04720ec88d"], [22, 3, 1, "", "1:3 a52ef65ad59c6a03acd104f52921c0bd1ab194c0d933c3d187455e8266facccb"], [22, 3, 1, "", "3:6 416a9c7f994a10348666cc1428fe679ecfbb5cc34c3fd991214116fd5405123c"], [22, 3, 1, "", "1:16 b0b24169a682ebd4af464f022caa0e0bc52dc45c2ab5969c01b1b6a2a313b7f4"], [22, 3, 1, "", "4:4 23b6ef8e94104fd9bfc08bddfadbc0e6b45e3af1816b852b6542fa4ef26a99b4"], [22, 3, 1, "", "3:7 9a1ce8dbae4264be182622bdedc1cd24fb5bc4c9c3d2a9805d7e83d22bebdac8"], [22, 3, 1, "", "3:3 b8dc302081286801fab56e83adfb0c6641a4aabc8e37c977089243aa1c6eb354"], [22, 3, 1, "", "3:2 735f380f9e5867b7964548adbbe1ef171e6362a7165d946fa2f88f1c49835e00"], [22, 3, 1, "", "1:17 98fed21cebc3cecb0b210e636cc45a37121a883718d0ba5e64b36abb86d70f58"], [22, 3, 1, "", "1:10 d8fc6c8065816c13c111ca417994ff7168f457d619f2299e9be1d36a9eb4e6dd"], [22, 3, 1, "", "4:8 68c7b26da67383cc4c0a68039f093046d35f47ac193122f01475bcb83de41546"], [22, 3, 1, "", "4:7 3b91fe9b60e23bf9452baf8b3ca1624e42e4109b50e88a340e7c1998b9a6772c"], [22, 3, 1, "", "2:4 1eae2df72c51ffcad42ba90f5618089142bb9116967a5bcd8c0f9f34b11bfcc2"], [22, 3, 1, "", "1:9 90c63f8b0b6e4ccfd99d0308b04e2980a4b53f0de2e3a67cbec4ff8019bc7e2d"], [22, 3, 1, "", "3:11 8160bcf42506146875a69bae6334ab1868c2957f6f1b085629deedafa0ad1914"]], "6.1": [[5, 3, 1, "", "2:1 de1b9a859c46ecfefda5689bb444367031a50378d16a3087529244fbfacc7a14"], [5, 3, 1, "", "1:8 38170dba00ba7905b21fcc6de0032cbe2a9a755064656f9471042b75a766087a"], [5, 3, 1, "", "4:9 32ed377e5c9c2596f96a684dd90844ffdc229f264ed21a3808700ab4504da3ad"], [5, 3, 1, "", "1:5 c25b90c83c8804de349ad596c8edc8441f9fe8e39ff8a624ad0833546a24ae23"], [5, 3, 1, "", "2:28 a769fb663d4c130101ac1256b738337cb674757045a4679d495dcbfd33b58fa4"], [5, 3, 1, "", "2:14 7d19f6d941207761fdd66c288b587bc5db2078e20c1090ffa7bd6c26d2c4b326"], [5, 3, 1, "", "2:36 44aae2e4e8860762d2e9a8257badc2d3b4e15d99c8c1183112c63da5a4a97767"], [5, 3, 1, "", "2:41 cc77160163ddf5f7888c6a059518c2ac68550018fad496be971cc878a9fc7936"], [5, 3, 1, "", "2:7 0a3334c8981286278440706cd534605dd5d26fd7728339f4453c3c0656a505fd"], [5, 3, 1, "", "4:41 7b686442be7876153393b5ff4396beffa63b880adc6f85d9ec57c64910ffdd94"], [5, 3, 1, "", "4:19 fdcfcd99d144b775aad90f71eb24b6100e2e7479ea4f930e27ec176ad1bcf45e"], [5, 3, 1, "", "3:6 2b2c1f21c6c47a7039204424df6509ab2e234eb00cf8ac170d92dea1c46e7e2f"], [5, 3, 1, "", "4:33 d3e2d2af5f02248e16a591d51f148029eccf722872db25063330ede8b6a8501e"], [5, 3, 1, "", "4:28 342c018f0de28ffea76b86b5ab53420bd7ad1e970b84e3fe2159000feb4bce6d"], [5, 3, 1, "", "2:43 b9568c7650933529d82ec97933b47ca7758c6acc5913bb42e52d17cd9f27f32c"], [5, 3, 1, "", "4:10 77a556beee4c1ec72f5a1678b30fff2abca44b0814767dc0489a1636d387ab35"], [5, 3, 1, "", "2:11 e1901939dcf94cb784e9632a7e67b2c977120936dd1cda31caed15974d1e6744"], [5, 3, 1, "", "2:17 5c6751a8315b541c35cced5cf85aa22ae15161a094f06a99ef59d69f0278d0f3"], [5, 3, 1, "", "2:49 f1e397dc12ceac4f862c1b38ab023057914016448490fbc8103227d260b67421"], [5, 3, 1, "", "2:26 3c9b370271add7bae1fba3b37de85653bf0fe577b8baba3bb9fe79b98e753b42"], [5, 3, 1, "", "2:5 a477daabd5c582a70c94d5bab888ce31a9067b4b67d3d3ddb98becdb8ebc2691"], [5, 3, 1, "", "3:7 8d84180501d511c73659c8b39c51cc56a9e0b643e8f8066b443d30b7a5c578a0"], [5, 3, 1, "", "2:21 4e17a33e1fba6baf81402a56c6561471e61546844fb7097dc554f10fa4929778"], [5, 3, 1, "", "5:1 59657af5a3d7ea75e221dd8f57fc291073859b55dcc28ea21acc8b6ded645814"], [5, 3, 1, "", "2:8 759294b08a5248e641c30cdae1634e7d0a607cbe713295dc177466b47ba35103"], [5, 3, 1, "", "5:3 654c72a974019f16a7138b882973ab8de2a0ae2d8dbfe9d9a5523ea10dd4f5f7"], [5, 3, 1, "", "2:9 b9f96f90499bd6bbd558e7bacdbbad3fc355aa23ae9e251b1b5dbb76ed7c4e35"], [5, 3, 1, "", "2:37 77716dd5cd96ee41a8745441d48419c274fefbea836e7c91d66326bfc5a593f5"], [5, 3, 1, "", "4:37 e37053a8b316b066e2adc833e9b61430341ce7681922450e1a6261795b2826e9"], [5, 3, 1, "", "4:5 e936ad7c41ed0a523e0faf110179d618e501a9859e20165109df8884466958b8"], [5, 3, 1, "", "2:27 56d424ef413f593ce60c84181e8a5f83929d41553c626cb36562bd0ed5d561a9"], [5, 3, 1, "", "2:50 ab7bcb73bcdab153eda299904b6530b93d546941dc2a9f1fe469c71a5d9164d0"], [5, 3, 1, "", "2:51 cd483894f0b24cca762db3e942673bbc3f69157bd4471bcabd6ef6bebac9928d"], [5, 3, 1, "", "2:16 b02deabfb27be189c179e72fcc8ef208927e305f0509bbabd1b39b64224750d8"], [5, 3, 1, "", "2:23 fa3aae99a5b64aab6689772966cab04c2b259d40ee747f5c6583f76fc3519dc1"], [5, 3, 1, "", "4:40 82d5e15e136abbd6e6ff175eff2bf1ae8a648a9eac9fc3e354e8fb962357eb0a"], [5, 3, 1, "", "4:13 25c0d061e2a3c9b25578a45ab2fb74a50fb9f07444e09ea9f8157c5cd42a04fd"], [5, 3, 1, "", "3:2 8421661fce97e956eb513ec4438a85672f6b2b9dd4c22ec09b6da1eb67e42ce7"], [5, 3, 1, "", "4:18 d09119cc5c2fcc6e8b84d570c685ead186c9f683703a7221ce13a35f660493f6"], [5, 3, 1, "", "4:17 9e93b8580cde2fd0c66a53470306bed82a53df0e551e80b90efd61ce4147e90a"], [5, 3, 1, "", "2:31 8fef4aa286d46e0b0767d45db83aa8d62ef879c4b31a258905d60aaa391524f6"], [5, 3, 1, "", "2:32 b6e03f526a8452468e623bed4ec289b78641df3140fae3d2647ea1d5baf04d09"], [5, 3, 1, "", "2:19 d78272015b933abc20846cd4159619480896126232de8bf6fbc87d628a93689f"], [5, 3, 1, "", "4:36 ef216b4956c9c82c492eaf33aa42b180dc04003c5c54b572e706d022ec656b5a"], [5, 3, 1, "", "2:38 c70336e37bd438cf7f23f90e11eed66a8b6c54cf7c17bb4e407c69e3e63f7f68"], [5, 3, 1, "", "2:30 c6abd6f66925af9e73351029d0689a15fd2b794d279be4a54cb01ca1434cee76"], [5, 3, 1, "", "2:44 0446046528dbd1e07766646b22eba2192eb014bf1364522b89a01dcd054f37a5"], [5, 3, 1, "", "3:5 fcf7505ef34f3b2536bb1c62facac6e82b7560f993f5a172a1e20eac4e552fce"], [5, 3, 1, "", "4:20 c48d7f31ca2fc7d1824b49aaabbadc6c96b2f1a67a8373d08b46e5ca9f66549e"], [5, 3, 1, "", "2:22 49717c7cdbf319feb99849ad9db98121620f7be8b82ffa9a612a31411b1408c8"], [5, 3, 1, "", "4:27 f7df761607610d04510f2afe7be1961f85aa037b3df985ce6816b252eb21d7c1"], [5, 3, 1, "", "4:7 1af57119939cf184ae0c7f698a5de9c73f8b5affe3969a6c6312a97c2ced8f8b"], [5, 3, 1, "", "1:6 7d0348796b44af2745ab732f9ca4c1ac8555cb7e9dc2e06a505306dbaf271804"], [5, 3, 1, "", "2:29 d753a742a21af7c6cfc9f1893ff4ee5b9a0ef089d0af76bc165411fb4c38b37e"], [5, 3, 1, "", "1:7 84cb5e1b176d63a2847bcd00a1e723d09f61471fdbd83c46dc4f1ba22c9a7cdc"], [5, 3, 1, "", "2:46 8012748a5a9f0df6b5ac50d6cadfc2e260145894007b76e558e68866ec8c495e"], [5, 3, 1, "", "2:4 d0d7680ff65e9d4365c3f3207dcd59cea17ce72c3f6475dbbdd5bd6762fba8fd"], [5, 3, 1, "", "4:15 b9e19a33b6f7298b9f07a4c4ae3dde602adf87fd2ac7151e3596eb02c4566734"], [5, 3, 1, "", "2:45 16163ffa5149a61156b6fa9822bd38c1dda85cc76895b18e45f59a579c78df48"], [5, 3, 1, "", "4:30 2a98510245f19b2c170b5e631738582547bafb0cd7dbc85065c606d2c34501a2"], [5, 3, 1, "", "4:26 ee945af2b118196e6ca9326841531db1d96dcd364df978b3110414f0deae444c"], [5, 3, 1, "", "4:2 bb6677a9dc0649570d5597a09439c6dcb77c13ccf031be9465c0b4c0b231f2e8"], [5, 3, 1, "", "4:39 de4767a880c9c8d3022d26accad869d8eabeeab119835136fb0594d46405d621"], [5, 3, 1, "", "2:39 3651a3d2d8aaca8d17e1fe47b3138585d5b28ed9e904f43961482867fdb88ff0"], [5, 3, 1, "", "2:13 8d94c902ac09fb3ef23d83106f3454d99a3c6980a3c488d3a5bf350cd7c115bd"], [5, 3, 1, "", "4:8 a86fa18a8c5f28ca1d4fdcb6057bbc8fcb5f9f73e20f08da2a49ceb506f76453"], [5, 3, 1, "", "2:20 ff0b985b3bdb5f39343fb2dbc69819ec1977bca9aa11748b2017b231464e073b"], [5, 3, 1, "", "4:23 7a97e95af16f54b01477dbe2da75f8a7b4f6e8c14800739cca2aadec4ded838e"], [5, 3, 1, "", "4:4 f37f0d22ddefd16a571b8bd9a562198423f0af50d7c14eb572d13e5a97bf972a"], [5, 3, 1, "", "2:40 515154f2ac48723da0d14f98872f3256c88d0f9d3194c4dbcb5268b9792c5c7d"], [5, 3, 1, "", "4:16 5ec103acbbe65af793d28ae454718aa627d30f80b637e1660d1dc5bad8480431"], [5, 3, 1, "", "2:52 b33fd7caed2c7f25c3d1ea22886e9ff2581064e5bbf75546c0c060ce623c25f1"], [5, 3, 1, "", "4:29 6157d0f70d0f638550ee4030d5e0c903aedbf4b30498d294d3bc171091856b76"], [5, 3, 1, "", "4:25 b22c92248f7691f65a628d02c08cf24a9047b02400d6a29c8b6dc20c64bee2f0"], [5, 3, 1, "", "4:3 5666d2be7d12a4b03c9634d49219ac173536d59607e2fb6b594996c27c1c276c"], [5, 3, 1, "", "4:35 d4860293b247bd862ff7f52f19df94330203138d7f331ce7064449e737085b44"], [5, 3, 1, "", "4:38 b7fa266e959f034fb8027350cfea9ce01444695e7e515512581302d9c3f8cb54"], [5, 3, 1, "", "2:48 c0922b72177bb7936fb1812bef8b7f4c3c04e5def41c08c3744d6c40c83416e2"], [5, 3, 1, "", "1:1 60b906dd347f40699e98ab1a2baaa4aeeb7f013757c103e406e2096bdf554659"], [5, 3, 1, "", "3:1 5060238ed0359d5cf017fd54608baba39f7484a5c262c3567c973dab5a3b2401"], [5, 3, 1, "", "4:24 a93bb37b3b0ded48637fc647acbfee3216df9f6e4313a3c9c2e6310c44ca889a"], [5, 3, 1, "", "2:47 73287ec37c278d47149516ea285d4901af4095df9725ce4ef23d63d2a88baa16"], [5, 3, 1, "", "5:2 cdb48fc283d2317f9e373c3e846c83ddc15b1e08c3586f226a9701b8fd1f6670"], [5, 3, 1, "", "2:34 a9b547b6bf662506793bdcbe453c85921749fe52183da9d7a851c9dcfe3fc529"], [5, 3, 1, "", "3:8 0fa4999d15c5909e9c331090f84b483c3f1de9dd8b6bf2785c2a4b9be82ce8e8"], [5, 3, 1, "", "4:1 5f85774d4af3b4503dd719ebb1c9c13936bb77a4d77eaa5539863456b86f6442"], [5, 3, 1, "", "2:15 d85083a7c7efbf6c5f2f30ff3b383e34fb721f2a53627e94a48aa095adc01022"], [5, 3, 1, "", "2:35 cfec980b14b64251c85de2818e75a873d7cb9465255ee4870a55303ac0a86589"], [5, 3, 1, "", "4:32 2ba416a11b94658791140c4b85a8ba28c2ec4ef4a778b59038105208dfbcb8ee"], [5, 3, 1, "", "2:18 e27dbc7a5cfa4584c075296125becf0c47bf01b4556f34e99a14431c2f5c206a"], [5, 3, 1, "", "4:11 3bcbb31dbf7a42ccd4882c4df20a73b8fe4169f3b44b0e93f75170ea5478cdb9"], [5, 3, 1, "", "4:14 cfc1a8dc708b20eefb9c1ffdb6f76cfc6b927e7cb106c89f58857d627b7f671f"], [5, 3, 1, "", "1:2 575189a16284541fb4bbcea4fd2cd80a17540f1900878b9907804b626afbf1ae"], [5, 3, 1, "", "2:53 49624995c2fe8bb8f83498d1cc6cef80c8e2621f8098235179ed89c68ecc1eac"], [5, 3, 1, "", "2:12 ab77fbf23a95c3856ea49c5147e46adf5284b4b9f98d28b6f3975123bcc32a80"], [5, 3, 1, "", "4:34 fe5533b1164a5ed44182fe95abf4c2f62bd09f82e7786433bf589bf505b65d95"], [5, 3, 1, "", "4:22 c7859a194ef5acc89935304303c6e48602e3e96c193f66dc0e0c704f89eea83c"], [5, 3, 1, "", "2:10 252e321eddbb83a6536bf06612aa9ae26862520ac3febe3596676ec5fe2adf75"], [5, 3, 1, "", "1:3 f757e802590cd6f5714520c2e31d6b89f187aeb5fac01af3c10af2139dc19037"], [5, 3, 1, "", "2:24 f88042b7a17f204fa49f503a68da4e3dd00eb96010156dc3e89ce7e65cf85a31"], [5, 3, 1, "", "2:6 410eb988349831e9c9de0dfd3fd26eba4040d5db0fea795b92247c2fdd32b111"], [5, 3, 1, "", "4:31 38f331a73b93c154c708a182d0ff821c2222cc48d99af70efa0b53dd5967dbcf"], [5, 3, 1, "", "2:3 59ece0d56caafd3f3b19ffd73ee6d39bc43e3de54f72aa7ba961c094ead62584"], [5, 3, 1, "", "4:12 0af74cc3c79b8880b899f2e3faa5630ff17845b08db731fcaca23547dff9d583"], [5, 3, 1, "", "3:4 025d4b330cba16ffba6c33fa8eebe317dc0aa2fa9762781ccf41fa3de3e209b9"], [5, 3, 1, "", "3:3 2be99cad76924c6697893416fcc29c4e016f80d67774faeb2db12c941e785f24"], [5, 3, 1, "", "2:25 18934c346329f7a9ea9765917175db6b45dc7c048013afe01459922d25a7bd62"], [5, 3, 1, "", "2:2 9dcd0672817fd04707e71530b3b2ea692843494c1fc724212b7170bdee0c57e4"], [5, 3, 1, "", "4:6 0e9c2d5b424df083445425b2eb9713bca7a87391b4a01ff7d5245b787dfbbb71"], [5, 3, 1, "", "2:42 19eb90436a5d32615593180082eddd69ea6768b7d84fbfe7706f603d07efbd2a"], [5, 3, 1, "", "1:4 3724b6486cd33fb55e2fe722c65814be93fdf913e013b3bd2ad12604bd114e92"], [5, 3, 1, "", "2:33 3bf0e02f2616b8c7222185ee3b336d41c1307df947f058084ce1eb330bdf1900"], [5, 3, 1, "", "4:21 47d6c8696f4c95779f7fc9cabbb952ffabf2ee35fa15de6e5d50e136660c67c3"]], "2.4": [[15, 3, 1, "", "6:1 9222cb981e760f03c8b46b8708ecf54b556f6fb343a0017cb16fba2bcb98c10f"], [15, 3, 1, "", "1:1 c40401452c29d8db5b9b193597726e18789ccd7a194187365e54cf4fb4b57067"], [15, 3, 1, "", "4:2 eaa3a29da7d1231106d2806b74071e86016eeeac6bda726a1b67b7946fc688fe"], [15, 3, 1, "", "5:1 c886554b68518a6cb11a6671911a00850d338a207bf5813cbf9a2dfd6f6ee63a"], [15, 3, 1, "", "1:3 34306366aa23941d86cf2fc0d347e2b007703424de36480b5357c7c4583e3671"], [15, 3, 1, "", "3:1 d35bc8c4c792333754935689e43e0ed039b2a0b85a1730fd03f18091f05a6c19"], [15, 3, 1, "", "4:1 74e9ccd35447ec63b8c0425e182a07fca94414ed3f7ddea9fa310ad919d551f9"], [15, 3, 1, "", "4:4 e33f767e24f5ea1c1341bf515463aec11114c952dba17c8c17dfa64f277d2291"], [15, 3, 1, "", "5:2 6c653b805698505c3026af600e00b55406a4b8149cd3a8840cc94e5ad0ff0a9f"], [15, 3, 1, "", "6:2 68a6151c72c232478bda2c413c1552acfd1e8304956b5733ef8a13c86768b079"], [15, 3, 1, "", "1:2 59045ce2e31e65cd7b1195587644af1891984b02d9dc612c1f7a61850d140332"], [15, 3, 1, "", "2:1 28f4df70edac5734cc64ff6089f04d400be4ce9f2af1664070e1b0326cb24d26"], [15, 3, 1, "", "4:3 22ca23a599d712303316952fe635355f16bf2f9ff55658bf7a1ecc55ecca4ce1"], [15, 3, 1, "", "2:2 b095fb9c6f26adc7950fc1088d0c04c0f72b0debd22e082dfe50903faa93af8d"]], "4.3": [[22, 3, 1, "", "1:38 b64f4f41ff39543e9a12b4c7c0a292db35c6c2a3b0ae33722cf7b5ec71852ce1"], [22, 3, 1, "", "1:33 cb35c3709e468c678e9fd298ff75cab85223c9b69520bb115ece6c07f023f163"], [22, 3, 1, "", "1:41 24889b443c8a3583df4a999169a461d56a81737c8776d003ea3e7968c2670737"], [22, 3, 1, "", "1:43 938539d9e20602a05fe699126091fadcead0ba21c69cbe4a271eb3dc3c3ed250"], [22, 3, 1, "", "1:8 09b53e4da86723e2bd2011d45d92331dab43e0172cfef5543bb7c74a77d1fc62"], [22, 3, 1, "", "1:39 ed886b0d040a0415b87015806dc7a838d193bb1e227659410f6314a41feff113"], [22, 3, 1, "", "1:7 99e00eb99e3b71db0f644227f19ee709ef82e2c6f386deaa36c2a399f7979685"], [22, 3, 1, "", "1:27 1a3ae601414d01796aaf6b322e02874830121fe0ab9b9bf076606a5329772a19"], [22, 3, 1, "", "1:17 ac4e3a21890e3221845618cc38dbace293fd0e68d017770aa5e7e78e2f5ab08e"], [22, 3, 1, "", "1:30 2e6d782fc4fad2d1e3f018b424d77847ffab9b7df0a4aa34218e81df37554d42"], [22, 3, 1, "", "1:4 ac65b3d93d3994e5d0068317e02275db13c2c1913d48494bb2de79b24ec72eec"], [22, 3, 1, "", "1:24 d3df0e58549b33e4a804eced95611bbf74505e40e62fb919b895a104ee2cdd93"], [22, 3, 1, "", "1:36 a86bf07935fb2c1b2bb4874fe3bcea6b86ba3cf8ed709399288fd302b122b3ef"], [22, 3, 1, "", "1:19 441b5d0aa5e6c402c6beb7fde327f5827525511f230577ba7c6fe5a18d28539c"], [22, 3, 1, "", "1:20 9480e4048cd08398ae0f13cb516a29613f3e742d3d99bc779578398b92272c24"], [22, 3, 1, "", "1:28 581c5941548d5821d9a034095690bb3c131fc9ba9dffcc9a2e85aee1b8d8cd88"], [22, 3, 1, "", "1:42 7b78ae0a4fa328edf20bd1ee52ca050c8a7913beeafc6215a0e8f6cbbab2a236"], [22, 3, 1, "", "1:12 1c7470e26077ea7a073dc2a1445c678484af7588bb3235586c9091f71603cc7e"], [22, 3, 1, "", "1:10 98f3e91912ee93fd291d169f31739e7c2c7b38d644d27336dfff508ebb7dfb99"], [22, 3, 1, "", "1:21 166b43ef343f45896926b2fbb09d952a0c23d942c2a113f0860ffe979b8437b3"], [22, 3, 1, "", "1:9 6cb77addba9281730832f2bbc4ddd2082c3530a2c17878646b47db6c10dd80cf"], [22, 3, 1, "", "1:26 699e51364da08d56388376c014ee12beee95aeae6302a1234dc8c567774a82e4"], [22, 3, 1, "", "1:1 7c27f15ca1c523ef1db5071f2a63bedb21181cf04aa94d9878250ca53b434971"], [22, 3, 1, "", "1:3 9858c13d3708357c30873cd608d2b3383dcc3035f0dd687ef3896541dd1695fd"], [22, 3, 1, "", "2:2 f9760034f4a5a74b8badb11d87b6f5ef432d7e91e80802425e89bbbbe5a20476"], [22, 3, 1, "", "1:14 bd7ead8e9ea1b7683e87bfdc7788222d47c759c66c031ef374dda05805dbd6d3"], [22, 3, 1, "", "1:40 865ad088e423aa6b12fff0c2f48ac1e92557389ec93b6582e7643d28c1707ed5"], [22, 3, 1, "", "1:34 d296305e4aa3dbcbb0a1effad25118ecc1395dc6b1b33bb86459f96b9531fd3e"], [22, 3, 1, "", "1:25 5689110f0fe899e7c5dff9675885b2c735444de21ad35f3a1ba69dc76fb327b6"], [22, 3, 1, "", "1:16 f3145e61ced027d25036f3200ca5bbb0618bc0477cb9b3603a1413652b3ac917"], [22, 3, 1, "", "1:29 d2b050f0a32abdd45281470a08c3d6427a82b2db396f1dc7ff325370895077b6"], [22, 3, 1, "", "1:37 a6a7931eaf2965dfdac9021f4d8a09873dfdc6abf5f148f661c3ec557f154dcd"], [22, 3, 1, "", "1:32 3737ba54b255bd74767127bd9ba5b403b1b0aa6d139fffa616bf524ed612b7e0"], [22, 3, 1, "", "1:31 b50023ba7c3a0f6e5d60727a63cc05db279f39c522363df22b0dd73fe324e5ff"], [22, 3, 1, "", "1:18 2385dd82b0f0349c33f8b5af00d47e3440494e1faa8b63553050feb2a8459e67"], [22, 3, 1, "", "1:13 32464bf4444f9dc7d6b1679119e45d5351fa00d79dea5e7ad487d3ddf76fc881"], [22, 3, 1, "", "1:22 ca76c9fea33319ebf91566f9a4e1cadfeadce5282e098010c5ef67471d744f45"], [22, 3, 1, "", "1:6 b94216bb8df77b4a82ab94c901933b3b6d6d065364960315dab51522e1c8c31e"], [22, 3, 1, "", "1:11 8a7e7470fb69b8816a48fa5e95512a5456665e561c4134f050a155f985eca72b"], [22, 3, 1, "", "1:2 930adef3b1506fb337f66675f973e54769ff8fca1db32c838183ef22a2422029"], [22, 3, 1, "", "2:1 de3e486bd6bfec35ccbc18c244a07b0400fb7afad866d64ad99471d9b5fb3d51"], [22, 3, 1, "", "1:35 1b458f804645a74fb0e0cc1aa355732c67172fd9e75c6ea28177303787c8e662"], [22, 3, 1, "", "1:5 1d12935dda46819ad41ab1cb8f82b49105c7771bd832109bde39a210a366c23f"], [22, 3, 1, "", "1:23 a2d98732aced3240075311e8a7738d2601f8a1e817a29a0b1d2d0ada3525abea"], [22, 3, 1, "", "1:15 9a544d8e0daca2681dbcfedf72121255fea14ab0944581480d57fba0890b95fe"]], "13.2.13": [[1, 3, 1, "", "1:2 d921bf1556555621ac4497f95036f2b36a900b3ca72209b3c8257b411f3434aa"], [1, 3, 1, "", "1:4 a408a04e473714cf160f9d5888fb173e91412fe640b793002c6cc41c7426ec78"], [1, 3, 1, "", "1:6 51678d511ec9b523bd052b51dce30e863238b3e09f7cf8640da14f382d4df5be"], [1, 3, 1, "", "1:7 91faee15159779bdfb246c3082526e3f01c0b8b71644bffad0bc701a7a23e5a0"], [1, 3, 1, "", "1:3 2b72505af01da754c8938fcc663e58c83b4bbcaabd1dc98ae2ab5e8da65fd8a2"], [1, 3, 1, "", "1:5 6cec52bab3d21f307cca338424ee3bb3802f2d59a4e3b224c7f00f72640ffd19"], [1, 3, 1, "", "1:1 db123f9e8d90ea8a65b70081bc86bdbeb74728f7fbb3abf94a19106591eacfd5"]], "14.9.4": [[3, 3, 1, "", "2:14 39b97104cbe16fdf9cdc1acf3f079ade2fd32c3ac33e7858ae07e79a0bbc7907"], [3, 3, 1, "", "2:5 b61a1df0de63c17349e99968166779c0689667f68065641b1e2150f748f65308"], [3, 3, 1, "", "3:1 148fc3beb5377b51b5edacfbb4ace5e23c7411944c711b49cd4964375b6fc241"], [3, 3, 1, "", "2:18 91a7d385f03fde69b74c5358096b89c7db65599637389124b36104c6f45d2b53"], [3, 3, 1, "", "3:7 38657ebf4baa69cb441b05dfa17a0c65b100642cb9c9c766425c0db3fd888577"], [3, 3, 1, "", "1:2 253940a0312803793da657e8bb0a7e478cbc89857c2a237d03548618de1ec256"], [3, 3, 1, "", "2:19 6737364b72e672ce8f63321ee00914ec76f3c688ef520853fa9e96db1550f2e5"], [3, 3, 1, "", "2:21 b5e402b7df0a8601f86f4a9fe385165d3998a9a9d0eda91d847641c00cac3469"], [3, 3, 1, "", "2:4 d10ea4290290cedc3b93488c82b41a90c8b0f81d39b7086609ec5f0800847605"], [3, 3, 1, "", "2:1 89af848f7138b85e851a6fce2956808b14f21021ce84337948db5477059f0233"], [3, 3, 1, "", "1:4 b3db0521d2ccad1a7ff3c83e38d7bfada206a50d8fced514e5605a753bcacab8"], [3, 3, 1, "", "2:17 ce270746d595abe4f9d7b06360f034018301bd6709bc75fe5c1fde0bc1629b78"], [3, 3, 1, "", "3:3 752f0ff05ebaea022db0ecba55adfcb69b6f6c23c86019b367b3543af220a26c"], [3, 3, 1, "", "2:7 f48db4f42fe8c1ac1316b5e2c8512944ed025def1e5c0e37911a3eca62f9d2d0"], [3, 3, 1, "", "3:2 fbaeca87efc96f46effc5215cbf8bc344900a3226501a59b1a547bb863112ec9"], [3, 3, 1, "", "2:3 947403e0d43bb6cfb3077d98850a6352967094b8f5cb8b7f5c87720092f9c7ce"], [3, 3, 1, "", "1:6 f036f3d708d6307e0393c1e54c59023aa992026100787bff26b010ac6a22a467"], [3, 3, 1, "", "3:6 6689718fd77318ab2f4a94867ff442dd6bfa733fdede8a658be7cdb6eabb0281"], [3, 3, 1, "", "3:4 a2d543d3938e4eaf6c88335ab06f4b99d478110d46ea60d86ee04356b323bcd9"], [3, 3, 1, "", "3:8 b41f690747dc7316182fec64bdba0c0beb06900a8bbaba23f018fcec1330a29d"], [3, 3, 1, "", "1:7 5ac0651992734c49cdd19081a8d8fe0dc4836c3ac46e8efe50194b2f7e10729f"], [3, 3, 1, "", "2:10 447a699862b4725e7b22ef7e24b1ab0783fec4db871aa6703ba6a7001eab753e"], [3, 3, 1, "", "1:3 8459bc1ffb9ad72f9f9ce23cfd6b93c218419c6681b8e4a7686dae5b8ac9e309"], [3, 3, 1, "", "2:16 f5d76df40ae4cadd8e2d9663fbe3c5b810519b7c72d0c10a68e00aa5f027118b"], [3, 3, 1, "", "3:5 12dd80327fd8a5c538a2841bd1c0e0122e4159042245c5ffce28e72f8be6691d"], [3, 3, 1, "", "2:22 e6032bec4cb34591f1ba4d23d2ce789f2b98a66582dd5c3aa70faf8101bd90f7"], [3, 3, 1, "", "1:5 1650a4f513fab2754fe189d6a8993c9c7855378082856282662768a8528dc575"], [3, 3, 1, "", "2:23 b1754db3d3ab0eb3fe598859fff3a8179aa499eb840ad97eba99417063259cb9"], [3, 3, 1, "", "2:15 57570b48e6c6c789ee1bcbc956a0f24f79597a3ef49766fcff1d1600dad9b834"], [3, 3, 1, "", "2:8 82ccbb720ea64a252b72a8aec77019bb5127c99487c3f35d9e6dadc715a2490d"], [3, 3, 1, "", "2:20 a6ecb99abfccb4f9199fc7b11b6264c36f5e5074d9a587814517d58bb28b0397"], [3, 3, 1, "", "1:8 07a8a2eb540fa895244a934632b5bf01b28d65714143604e47094193df81fafb"], [3, 3, 1, "", "2:6 aab266bf1130186940d08a2295560fbf7ce71f175fd96c37a30e54fc2c971f1e"], [3, 3, 1, "", "1:1 c1ebb5064acb14aea9a28d26b01046f531294fbbd5ca6410cce82bf98b8d7261"], [3, 3, 1, "", "2:13 9ac0b1cdc63a7e767baf563d906d9f2d9c9f560ba05a020309fdea70f031bf47"], [3, 3, 1, "", "2:12 15004350a8a539c4ce31613578db742e17945883ac27c5d3bf184e757faed1c6"], [3, 3, 1, "", "2:11 82acf15a92dae67f822e95bc38c6423ae258c77c41fe7312c0a6d9fbb981207e"], [3, 3, 1, "", "2:2 36e698199bc9da0c6a50931da2b24831e8a0c0750e8ce52aeac1278944de27a5"], [3, 3, 1, "", "2:9 bbeb20abca91e618378dccd524e3d3a000f6f9e7f3141dc46ca1370b9efb0aeb"]], "2.4.5": [[15, 3, 1, "", "1:1 ac492dd896d3af7d678cdc44d9708f856cbc67ce41ee48385f730c82f0fb65eb"], [15, 3, 1, "", "2:1 cf9f7d7333258a4d9a235a6a611a80fd87d664cafd5732da2eb6c1155dfad367"], [15, 3, 1, "", "1:4 cb50f037e2188c9a58f86b87d2c9d1f90186b0dcbe6117c343aa5fba6b2d7daa"], [15, 3, 1, "", "2:2 d3b402e15a8bff639df20fcf15d4306d568a4d8b0e65132224975ba1cd7ffd25"], [15, 3, 1, "", "1:2 8eeeebd628d07b2ea71c78a21c61dd978f7d9af4bd0b88a95768966881dd52b4"], [15, 3, 1, "", "1:3 4a6e317133ecb5ae53aefdc730f509e09e0c3713395895908d88d18e106527b7"]], "20": [[17, 3, 1, "", "3:9 f9383478e84fd632a980198c467de216499b1b303f98a98b7bf135b8d1439489"], [17, 3, 1, "", "3:4 180d58067482f5f9c52f37cffaf0d523e0d0e035274ae448c35b6fda359340f1"], [17, 3, 1, "", "5:2 950f5e9f05dfb90a7771b7b56a2c154f09546fdb6ee7b4947d3598357e680977"], [17, 3, 1, "", "1:7 41d7cadc4529963b5fae05cea05d12721cc023eac8db3ab3013c78712f677f92"], [17, 3, 1, "", "4:10 3b01afcc0d4c9f2696ea110f2556ea0c37503ac92544dd77a5853e2bc4cc735c"], [17, 3, 1, "", "4:3 bf49814afca1afc4a1ea61da7acaf9bb0ac3da4e8a3d40a8a0ad770017aaf4e2"], [17, 3, 1, "", "4:12 48dbce0bae72db846dd146bad2ff656a10cf5dd99c403720ad8a65ff71bf965e"], [17, 3, 1, "", "3:3 9331eac9772bb3030cfa592afd0542c15f135b1445df9e764e483111e6e799e5"], [17, 3, 1, "", "4:4 f2e3b68bee58b99bd43a9238014702fed0da098493aea6cd5ee8c35d689b2cfb"], [17, 3, 1, "", "4:5 74b6ccc123fd68357e50a1ba7a24fcfb694a68271bd2c7156e558945c62bb744"], [17, 3, 1, "", "5:9 82fe4be1744d0478a0bcbed88a26bf676ea9c239bd2e996210ce59ad724a104b"], [17, 3, 1, "", "5:1 dd8bbb6eef9dde4a235a404d36082ffd706c870db1421a4681408cf45d6a6bcc"], [17, 3, 1, "", "3:6 d1d17973e9a5ff51967bbb1a18254d34daf4d5227c030010273eb809898065d9"], [17, 3, 1, "", "3:7 f0c4063fc1e37447cdedd5fea1862370d0c86e3a81159fe2abded13af32e03e3"], [17, 3, 1, "", "4:29 9e9dd4998f98b6a17410d0f5050a5640b8a7d12b16d5ccc1fbf5ddfc4fa2c910"], [17, 3, 1, "", "1:5 b549b18e6de60d1ec130ab38737806e6ea0cbd0d471501c476916eefe2be7228"], [17, 3, 1, "", "3:8 00301fc63c37839058ebeb42729a0bfcaa17ba716e9b05a4b07854bda2b315de"], [17, 3, 1, "", "1:3 af67fc9d046886fb7c793c0a9eef775cd020529cf8ec85a93167f1e58f4122fa"], [17, 3, 1, "", "5:3 341839374d80c8018873df9d4ddc4bc416d5bc2dac1e9b09bc7a56b94374252a"], [17, 3, 1, "", "2:1 40ae367af875e89e010e4d22a7cfe13aa5dbaed9fc46011de6b52d138577092f"], [17, 3, 1, "", "4:24 8336e9a3dc539d94ebc4c3f4d1db0a002daac4a11ed04f66f0c8944f7c59dadc"], [17, 3, 1, "", "1:1 8cffdd9962e92466f819713aab704c780ae0d98dac229021c576afa2742830ba"], [17, 3, 1, "", "5:7 64745f1bbadaf610e425de55287699402147860a4554484ba0071db41bc7ed34"], [17, 3, 1, "", "4:18 8738a7304a24b50b3140d449d1bfca2c9baf6da9f0d078a51401795554fd4474"], [17, 3, 1, "", "4:6 41396541fe1131f8e3a05e47eb4dc795aca82ca7744db28c5808acbbcec8c548"], [17, 3, 1, "", "1:6 238647cd9313b6607667d9993c8bf87f5406351bd4a87045bd0850f5063f6b84"], [17, 3, 1, "", "3:5 f7aca0e43d4cdbae814c988be6387b18698d49063b82af0d472ad957e99f0b16"], [17, 3, 1, "", "2:4 b0d421770e39ab6631e15b540881bf6453ecda3a0bbc8c78183bba9be46e6c77"], [17, 3, 1, "", "4:15 57347ca4d51ad58880a851280bfb8d8e529e1b9951a52ca4929e47b94f19be4e"], [17, 3, 1, "", "4:30 d54d6148b8f96f7ae615b20d921e9536dec2d40191387304db5912c07457039c"], [17, 3, 1, "", "4:26 56c2e17cefa41716653ddebd7376d5e765866b6b48613007cbd6fa266ec588a1"], [17, 3, 1, "", "4:16 9a60784d14b99e43a10674a97c9f853c1fda603311694eaa435886353f7102ab"], [17, 3, 1, "", "4:13 10c68086f5de7156157c189ebd2864036d21287d9219fdce6f5e9df7658f3e2a"], [17, 3, 1, "", "4:8 73e7c3d42509b26c6836a37c592ce6b5f8b4b8d51bdd13b1e69c781dbdb074ac"], [17, 3, 1, "", "4:2 81bdfdb7218e324273181015cf2a0058601e53a6f07875e9c55f6b9ccd110600"], [17, 3, 1, "", "1:4 13beaa609262aa0b7e0b3212da54ac78e68086106c14cc11e081e7132158286b"], [17, 3, 1, "", "2:2 a154977cec887d19447bb9d7566684f5f07b10108feaad22add360f52cade411"], [17, 3, 1, "", "5:4 e4746196f1fb7989f818766502b19a237f5b3740241baf2dfd8cb4211c05f424"], [17, 3, 1, "", "4:22 42ff8c1ac6cc0dad7129ac746debad5fa96d773994a30fdf5b71496e0fe894be"], [17, 3, 1, "", "3:2 974d06554ff28647c4f903fa86768f1e175bc518e3c538c7d26f09ca32580f3a"], [17, 3, 1, "", "4:14 303da91f4606ee986ceddcb3a6dd2990ea1a5d6f4d8ff9eba1411b05f9cfa29c"], [17, 3, 1, "", "4:20 9cd6b3fdd12de5819ef5f034cd512142d9ea7275dd351bb3364534aede42230d"], [17, 3, 1, "", "4:11 39601be41eaf38c2fe68a562e68628c4c897e8c99f95ec75e583dbefab3af157"], [17, 3, 1, "", "4:25 862660c9a7927486f4ab97a5219efca956468b25a372e7f0b8778d938fea614f"], [17, 3, 1, "", "4:28 4ed573b9e2ba6991e0c8cd77151c8f7fb439090236dff6dcba9b8dd9d06d2604"], [17, 3, 1, "", "4:9 bab993a513c3b50842e8f5f1326263dc800e7186ea89baca43936ad3bdf15c79"], [17, 3, 1, "", "4:21 785c20cd4ee512f170f8821ae84ac3e0164356afb744c5eb7766d1b428f43f95"], [17, 3, 1, "", "4:31 ecc18764aaf923e05323ff7d8dbc3196f9c2a677d000895c4350a34de447d370"], [17, 3, 1, "", "5:5 93e969fde4270a39d3cee8c4a0b19185228c33e8b24df9d0ef270765e9824d81"], [17, 3, 1, "", "5:8 143bbe1668afc34dcafc68eddd7634b71e3847e8f9416dc8dedcee0d2d5198f5"], [17, 3, 1, "", "4:17 04d7c36c59b8db5f9cd9d437097d1287b1462b3d1a28b1af866979139758cf22"], [17, 3, 1, "", "4:23 75411eced63ec88091cc61ad48545c56af50d13cdfbb58da468cfcd471b1d753"], [17, 3, 1, "", "2:3 0f0739a1ed671f541972aa194b63778a35eef1f8a258625357bad1dfb79126ec"], [17, 3, 1, "", "1:2 4e9e7f12e6633dbb05180c17c6a222b11c2760152ee1a091050e70af0a2f4238"], [17, 3, 1, "", "3:1 2d88086f369da9c00a710d6478ff80775749dcb789b8f28b671fa96d22b5c01e"], [17, 3, 1, "", "4:1 8026222297277fbad4ed1549d49f0c3e75d7e5157adbb94d90360ceb716f2a3d"], [17, 3, 1, "", "4:19 d26201e9ec1b8ce4e8d0ce918281c597b4207dd5c717ab9d2f690dc2d3fa69f6"], [17, 3, 1, "", "4:7 145096281559894c5fdd9c34f4c59020e8018a542a295c4718a2158eb1c24db6"], [17, 3, 1, "", "5:6 20c309825d7777388bd6af5804c0c7762b4fe76a90f7d2eb118d92ba8f547c1c"], [17, 3, 1, "", "4:32 61b9b13308b8c7583de5aab70fe1644dee9867664a812351e4a713132df8f246"], [17, 3, 1, "", "4:27 6f0481d9039a52034b6e9c95142a26b01f4af587546d9d2ca76ccdcdce2cf14c"]], "4.4": [[22, 3, 1, "", "3:2 b76cf1e29c346895c7a64d1ebecd1285879329d64c6a566ec2b62a40874a44bf"], [22, 3, 1, "", "2:3 fa8054851ecf8587aa441b48e5bc8cc1e660b60f0c0542b45df2390c5f7fcea4"], [22, 3, 1, "", "1:5 c944934ba19e6c4ebe12cd9453b9f0747ab302ecb654be487cbd6b29567cefc9"], [22, 3, 1, "", "2:2 c1765e314370989e27d28ca48d5189af4457e08b3395ee284192a5060a4dd3b7"], [22, 3, 1, "", "4:1 0e048e80d2703d29c830283c91c9363981bcaef3c5713dc5917214cdc99e0a32"], [22, 3, 1, "", "2:1 1dec4d96c2383bcd59d32a561f257ee89281b2f6079093fa3efe7c807374bfdc"], [22, 3, 1, "", "1:1 a0e28c81206aaca44d668b56c00cdb06b2afcb1957637817f895be1919625591"], [22, 3, 1, "", "1:3 a35f25747728747c44c65bc742d89871b9d8fe529451364d18b141b6ef1d5512"], [22, 3, 1, "", "2:4 12398a33d4062f70cdd542b837f7158f3015de99e28242ccb150779a45e440da"], [22, 3, 1, "", "1:2 3842e56226791bfaa21a704608441353c9476f08a8ad83197c785ec4b705b6f6"], [22, 3, 1, "", "1:4 101671326f28fb3bee73ae610842cfdd0b7e1f09d04855a7041d29d72688b48d"], [22, 3, 1, "", "4:2 f90d6cbe2f05a1690b19b882378e0c5577f7f70fd8a6b6c0a9ec01d3c19d14b2"], [22, 3, 1, "", "3:4 31fd188232e88dbd814ef19206f91c486077f1d7d40d1682c48152055d1131ee"], [22, 3, 1, "", "3:1 4741170fc77c3caa889d2b61c37ca8bf858103e8dfb471f5259bf3977733f2d3"], [22, 3, 1, "", "3:3 c7d00bb480fddeed611bf8a4b29accfc6ba24e9843f57af35f84b92b3d91af55"]], "2.4.3": [[15, 3, 1, "", "2:3 de707bc1cc7a5d7d39af4acc4398ef7e645ac259968bb70066966823e3320d0b"], [15, 3, 1, "", "1:4 fb04cc8a0da09c17517d97ccfff5433116894258fe657d52d61fa56ae4f58b22"], [15, 3, 1, "", "2:2 49113c092a3bbaaee5ecc5e237faa3a1d6b023cb7963903b2987786386b06cbc"], [15, 3, 1, "", "2:9 3ab353f0319f1a988557a20ca5d4cbbe6564a0901c1e800e65fdb0f7d63244c4"], [15, 3, 1, "", "1:5 39e541881b32e1399af9d22c81f2c9acf7374597615a6e067f19a2a1483716bc"], [15, 3, 1, "", "1:22 7addf8fc9c1954d1f299f518261046655b25344da4e2566f4a6d2ad56af8f9a2"], [15, 3, 1, "", "1:18 b8c0a318a752dfac35fa253f5eaa5d86aa4d60c81746dbef4f79760bfbbb910e"], [15, 3, 1, "", "1:17 5cd753841d4cf1b3ac2e299d851b9d7d782ffec5218f862a6145c1bb97fe48af"], [15, 3, 1, "", "1:19 def3e28ea7543e8f1e3cd2976118a6057928353e8c252c4b3dbd25c489171d9e"], [15, 3, 1, "", "1:14 9efb52c23e09f3c839307b622ea91a74fb827775d9312350956fc958a2a13a48"], [15, 3, 1, "", "1:10 fcae3d231f80f39da6c1244a291d2760710458e799952561422e8c9280d35453"], [15, 3, 1, "", "2:6 1c3e432fbd868c7c0e6f540bab2df3a5a05a874a2cf90c0c008273c8750df94a"], [15, 3, 1, "", "1:11 1f4a7189ec6869ed715b2809e1dfdf0d1da660f106391d0ae75419cb2a3bc674"], [15, 3, 1, "", "2:5 4f2baa57a7d41e696d29d2b12dd05976c69c2dca1d26d41b65c2ae18930aa583"], [15, 3, 1, "", "2:4 8851975681aef35016e51dcd1065ff3a7c4dcc59185943068c52b5f39a45220c"], [15, 3, 1, "", "2:7 0ed79abbdbc256059087c1f145e130bf6ae83c5d9ee2cf63b10c872203678b32"], [15, 3, 1, "", "1:6 e930d37f51da1de444b9cdce508609ab005c7df01cf636cbae19629ed63527cd"], [15, 3, 1, "", "1:20 7be03faca47fa6b3d15b6e1bc4e6cb7412ac921daeaa997fec6b05a74ebf315f"], [15, 3, 1, "", "1:8 56156e06e89f2c8d0e82416fb36dbe038b0aad5dd5d553108e3cd3e560351052"], [15, 3, 1, "", "1:9 f684fbad635257607f2b55c5da42894852a1ba30d630ac6d1e217b81f6bfdf8d"], [15, 3, 1, "", "1:21 a0e4b322fa7da7cd532ed7b176659ab4f67e9391a98e3f8ff3a6aee868b8cc88"], [15, 3, 1, "", "1:23 f00c3c8190df9c8356e8d00d40dc820ee8c2066ee14bc6fa8b113f1c2338df01"], [15, 3, 1, "", "1:12 da4e7c81f503ecc2ccc9f9996edd96f76f669a45826eeb0bbb333d2e4a34dc91"], [15, 3, 1, "", "1:2 45573384a56c61616dc2f95c2ed80da8e157435fd2eaacf7dba7d34bd26d9f5c"], [15, 3, 1, "", "1:15 90e73387f32e74d98fccc01498d6b81106bfa39272684edd996c6bdc2ad8f099"], [15, 3, 1, "", "1:25 15953208cdd66d1e39876632dc159e551d824c61166d95fef941338342da8c30"], [15, 3, 1, "", "1:24 a94d2d7881175e1f816e2299655e250ae163b1ded65deba1d719d1480c2c8213"], [15, 3, 1, "", "1:3 b53030bb2f4fce14a508b6f1efada25625e0fd5ba0b3fecfd8c97e0cb04cda6a"], [15, 3, 1, "", "2:1 5fbdbcd887fb491134091fc535b453fbfc99b8b158a38e18667520fde61df8fd"], [15, 3, 1, "", "1:7 0c2fc993dbe174e0cd94651585b88f744f4e4a827c5145dd0137aa6eab3387f4"], [15, 3, 1, "", "1:1 838a11239236c63c53764779b279c93d7dd7d3de4c52d1940ac02c6568cca205"], [15, 3, 1, "", "2:10 da8b316abb73b8a595ca4e315dca897882f91c0dce9825eb81538e688460e26b"], [15, 3, 1, "", "1:13 c1fe3c1f3f5a441d07e72c6702bc49ef8f801249e1a6b368c41d41cb087234e7"], [15, 3, 1, "", "2:11 8cf076d0fe9b1af3dae27583a7489cd5da291f7a3ad82ee704b53d75a6b88bd3"], [15, 3, 1, "", "1:16 a4c17c7e7b65883a7408b8cb26441cee4c5a98f040aec9f252015fc7fa72a28e"], [15, 3, 1, "", "2:8 5af8baeae865b0b892668889094599d1003adefb8ca8775954c2bbb981df6244"]], "5.4": [[19, 3, 1, "", "2:3 fe6504c691ded75e993e4d66b216f7260d30ac52c0a60e35151af31c01905992"], [19, 3, 1, "", "1:3 4aef617035a62c693b0db6e84d556a1afe10c28af4f9b0ca18065503767f6015"], [19, 3, 1, "", "8:3 d0da6696f0030559710cd9ee013efb4dbfb95b1df235fe5f469bfcd2d24034c4"], [19, 3, 1, "", "9:3 6b75afdc8b9b09fcd7df94b0c730c87e30d4bb2de200714adf3a08575e90a90a"], [19, 3, 1, "", "1:1 dd60a44dea7a972ddea069491ecd9f406558f404e901527ddd0d2149eeb48ebd"], [19, 3, 1, "", "4:1 b62c95bf3039a32f793c95cd983bcc5cd80b8faeb5d469cc963c3a487f437fae"], [19, 3, 1, "", "7:3 00b9a97b9280c3716ddfa172c721a2bf0e2081a9fa912cffde3cda55d1197952"], [19, 3, 1, "", "5:3 fd8fba85c57e8cde11619040e0cf63b8bee10a4ad77a5a663655cf44f7527d00"], [19, 3, 1, "", "8:6 8b8f1725d0cf2ef6489bd548eec9d59fab537eca1f33a509f8141751325cba76"], [19, 3, 1, "", "7:11 f14008365b9b2173763090e4ac8e371acae7932276efa64dd5c4bef234a9b625"], [19, 3, 1, "", "5:2 4e77c3805f9c1fde39877a54a3b99be7582ff7dde64d6f8b033465fcfb625c8c"], [19, 3, 1, "", "6:2 9932447e7ad4cb062a332bea07f5eb902fa9f0482de8917d2a3bee05f86c2fdf"], [19, 3, 1, "", "7:6 4925bc389627a9c0258c8b5aa732c62f27ea3c62e2b3c0bbfd6e8f9c1350920e"], [19, 3, 1, "", "1:5 1cf4f4074ffc3e6745944b1dcd726ac4b7d65f44568c669f04ddfcbe8068d57e"], [19, 3, 1, "", "8:2 202123ed4c141cd00114f671cc7b4a9caaafd86ff150c865e93c8e9dad4257fc"], [19, 3, 1, "", "9:2 03c31f4e25eebbe78169c4bc173609effc1e8269dfe4f263b29363409e316dab"], [19, 3, 1, "", "9:1 ed45c176d905341bee988af8640b3011dd6a97d9c8fe53b45410925a79d5e056"], [19, 3, 1, "", "11:1 b9ccebce07421997dfd958ff40f0aef3a1b9e546fb3bcf0c2cefe7fbfdd64d01"], [19, 3, 1, "", "10:3 e86a7e2ae632d8ce6ffaeb404902846bb48e160aab297c2c2652d9b985f7982e"], [19, 3, 1, "", "11:2 33c34bf81e9f7a3651a3718b8ab5b88c0ba416ea85e283b4fbd4a7e30e78b48a"], [19, 3, 1, "", "7:5 3f7ea24067807e7941333db26d088679f21fbd2c64a2407cf545ff6861841872"], [19, 3, 1, "", "8:1 a64d7a8315d7d5f47ec10463a26465d1b20225bc5c426030b5af68285a662722"], [19, 3, 1, "", "2:1 ffb06275d46d70835ab2e118cff4b0071d02544ee94a260f428fd2b5533bed1c"], [19, 3, 1, "", "4:2 ee205e802f76cf743647cd0b8c7be7f9d118ea51ef62a9f8ccd237ee2a7c874c"], [19, 3, 1, "", "9:4 13343ca1b2a108f58c91e7fcdb4c9e4c975f5fa11d841db4951a8883a4bcc7d5"], [19, 3, 1, "", "1:7 de66751e709611b36e4517f705acf75d052724e2501a8c5ee5ab8c40757115e5"], [19, 3, 1, "", "4:3 10a9ff549fbafbc317a299a46f8f61ed3ec121a3f1c97d94c1a3ae2aeee961f7"], [19, 3, 1, "", "7:1 545a7b4ddaf1e7bfb2237db616a2cf9a24e53676e02591cec035c44ace0b0fd1"], [19, 3, 1, "", "3:1 7f3d87f0e2bf7a6dc15e6e0bcda2506008be955f016459a792ea2b99d16bacbf"], [19, 3, 1, "", "10:4 37eed365431808077ba3f82d504515f343520002fd244c7649305e39f6c96d7e"], [19, 3, 1, "", "7:8 ff3c524edac17baef16b63f1da2eead531f9c065f671838de8c437b87e87f859"], [19, 3, 1, "", "6:3 b76bff46c3fb725fb95fd036da6eec2951e358e24662e16fe7a2b277948422eb"], [19, 3, 1, "", "11:3 8e3a3ff978133c3bfffe09986eace47f5b4afb21f6c71af39fd93f4f27ad2860"], [19, 3, 1, "", "2:2 d04dcff15efbb13e790e1f78948bf446426570ec9618c3b921293adfc2012199"], [19, 3, 1, "", "5:1 74c808f389212d771098798db71f913b01fad773d198d3babf0a21ae6f4ce792"], [19, 3, 1, "", "5:4 7ee404fd4fb97fe0f1daafdb86a76994a1056bc3cbc4571522f37b405f651572"], [19, 3, 1, "", "7:7 0a3498e1551afa3c7f492391c8187746fccf5ebb43ae48f55741d4dd39aaceab"], [19, 3, 1, "", "7:10 8f94a20f9d18e18084cc5e7931d668de6254cce6b14813fce2f2a16d4a699598"], [19, 3, 1, "", "7:4 c48b717f055594a928a658edaf02b1fabf8a096bdefdb3fbc8f24437462635da"], [19, 3, 1, "", "1:6 5003a32c5e8a49a9e7d778d70ff05edcf2411bd284272a8bf7bd04d2df3a40fe"], [19, 3, 1, "", "8:4 b11dc2c5dfcaf758c45e4029e582f72a53c74e7c2c98575fb2b7461ae1e7d805"], [19, 3, 1, "", "10:2 5f1c0e7fad583c2e4331c5805f1dbf89717118d493a01549a42dfeaa3f0279ca"], [19, 3, 1, "", "10:1 746ffe5085ba7cfbb59d3c44688b6f8584fa574128327bb37f2f051173efb07d"], [19, 3, 1, "", "1:4 0db8e23416d53e90ad73fa4df5b10d7e3ef8d53418d42a8860380a85d5d1163a"], [19, 3, 1, "", "1:2 aa285e853a6324a841c40d2b74e066fb6002f1fb6707b20a81ff680616eae3fc"], [19, 3, 1, "", "7:2 a08c2a45fe77ae5f047f5e6cf64b8f743c4433b940e5f5fb0245051c079e7e8a"], [19, 3, 1, "", "8:5 36081581a365a6503d56139e07b8e1749757cf878634d805e84663d3172cb005"], [19, 3, 1, "", "6:1 b6dad8a8eb45a793423595800323ed5f357d864241174e7198f4101b4d5c9c9b"], [19, 3, 1, "", "7:9 624d69de485ef8707d6d98a26dcdfd92081861894d0c06dba07882fe19de3ee2"]], "15.8": [[18, 3, 1, "", "1:13 44d7f93b36e564d7dd23acdecf6d4a1a3a7cf215632d946a757ea1b25f3d6f7e"], [18, 3, 1, "", "1:5 cab57995b7b7f326223f4f7bb819e8eea5a8ad676cdbed06ce58b66817c6a3c9"], [18, 3, 1, "", "1:3 95c5c42ea8af76e5ec13e3556a9f4104b818bf056900164658866e0c491b17bb"], [18, 3, 1, "", "1:10 ac60d872c2d76afebdf1240a5b1a41539175dcd095ba1374d768e8bce3e15b83"], [18, 3, 1, "", "1:12 d24a178200c6d509f3d2649dd64705b91fb52709df2446bfa5b4e8fa8ad62f32"], [18, 3, 1, "", "1:8 103c691d3e10bb12cabdb5a93c6650a85e45c7e566560b225feecfadc4cbed76"], [18, 3, 1, "", "1:9 f9d27231592868802964cc99b81ef283fb6e96cd3abae622cbd859e5d1dd4caa"], [18, 3, 1, "", "1:7 aea23e828f184cda611d99e160befc6e9e895758347678db72a4029a5d852fd2"], [18, 3, 1, "", "1:1 5c3d236f194a8a669a999473090570b17a9c5b62ef5f44c8025bcba89e97b82f"], [18, 3, 1, "", "1:4 5034d75dc865e69bdf2efb3059a8f9cf91eff07283969d9f524cbfabd137b3c7"], [18, 3, 1, "", "1:14 42a669613202095a2133d66d495e0e881e4d7819d202aae70dc008b2a1f19724"], [18, 3, 1, "", "1:11 46590c95c001116b2b295d3fc9fa40d5606614d0db1cfd11751f0a52118c3ef7"], [18, 3, 1, "", "1:6 0836f8daa7f6588b9456d90b372c0946700d6eb342da49b2767e6605dba0c21b"], [18, 3, 1, "", "1:2 3261611ac54de3039f960d9c6a30c641626dd062081332cd0f8cb2e0db746c2f"]], "6.4": [[5, 3, 1, "", "3:1 a7432b290848cdb326249e41d85385bac2659f0c92a8910f5c4b99d0265b5698"], [5, 3, 1, "", "3:2 7138ff944bcb923505b9d2fa4a30aa458818aa139fb4984e581b3596335e20d6"], [5, 3, 1, "", "1:6 b4ca6e91fd6bb90201e1e60835720f1c24be9a3661057d51f74690cfb994103c"], [5, 3, 1, "", "2:2 55757b88b705045f14beab3a4d65b0322a4cdf93f6af7899259f023fbbbf19d7"], [5, 3, 1, "", "1:1 1d4d9b99c7ff55d188fc8016b22f47344c4c3445fe35e679b333494f12734d49"], [5, 3, 1, "", "3:3 030ea8f4788a3fe7352fd7cd5cae6b11246051da2ac11503021c46b689a6efab"], [5, 3, 1, "", "2:1 e1abf2626df40e58da556bcbf1090df55fad0782419d41dbae13e0d9560acd2e"], [5, 3, 1, "", "1:4 c778823466dda65727a8a0d7f36aa37564e056f58967af9cb158c4a8dfcfb520"], [5, 3, 1, "", "3:4 dd0d4a61f5776a3375247b226efcfb5fa58dfe453c3e8f8f2ddea7335c79fce1"], [5, 3, 1, "", "1:2 d029e4b409fa40ab8cb0723ee7541138703744c5d7f7e56f7416053cab3d75eb"], [5, 3, 1, "", "3:5 b525933c45b15659e45290ea33556f571313cd311572db7e944dab18d1eddf97"], [5, 3, 1, "", "1:5 a57114810d90bea4121cf2db0f3a6c62be0cdd60a8c6825d1654343e98e4219d"], [5, 3, 1, "", "1:3 db276e68d194ccc4d62df06b66ac0a0795f660ac571e227dcc8f8ddecfbcf258"], [5, 3, 1, "", "2:3 6b86f7170a1e3af586e115208768566779108a41d3159dfa073df5621234f93d"]], "22.4": [[13, 3, 1, "", "1:24 5f0c87c237f4329b033b02aa1a4e501b3ef81ac67ae21f801fc66e6f1860dbdc"], [13, 3, 1, "", "2:19 3a38d11b37270cb84ae0f2d6aeb76dd4852810ab70083e2f74a868de0b004dcb"], [13, 3, 1, "", "2:43 e12629bff77cc49dd0fd9697926e543b3db783726e728995ab6dcf3eb21b6637"], [13, 3, 1, "", "1:1 df3daccc1134fbde7da5c81da7286e4a8aee9877bdc758f10041315d7afdbc82"], [13, 3, 1, "", "2:6 b253c450a0ba8f47f8d9771eac1d50f4af75e1f2c3a1287d83242bd3fe0dece5"], [13, 3, 1, "", "1:3 c4b970759ed150c13e63c36cd2534ef92a591c902367bfc2ecccc00302882d45"], [13, 3, 1, "", "2:2 c5968dc1b0f463f09aeb9cd4b2aa570644d895641c7b98e829068c6a3b7bcead"], [13, 3, 1, "", "2:25 553eef4baa71f1f46de56c071450919bf2eca3dd6cf7bd9f4fde72bb42083db8"], [13, 3, 1, "", "2:32 db73f3b0c8c275ef4f5be8518eac860264aba6acc6f606edcf905e67a01f825a"], [13, 3, 1, "", "2:1 273042489d4acdfdbbb4c1c21595ddaf45d9567bc4f222b33e969448bfe38b69"], [13, 3, 1, "", "2:44 3906f6daca8c9ecacb9ceb21d3511d2db168376916cb202a32f59cbac41bd889"], [13, 3, 1, "", "1:4 2aa77d6c13b1986b1ca71de2a9193b60d5f2ad0e8326131351cbe4785d63394a"], [13, 3, 1, "", "1:9 a46c8e5b6d61001549276e9ceda68d5082cde5d8c411b9fcd4322e415159f543"], [13, 3, 1, "", "2:14 540a3815a037e2019aa295eebe637bce2924911055ffd22655e0f7105361d716"], [13, 3, 1, "", "2:16 7b42846b370887a3f35c3a27a083518bb3dc29223630fbcb50980f0b92d4c3c5"], [13, 3, 1, "", "2:31 3066b6559d893177f8936aea6fc3b373621f7ad26e0b80588ac312291a2c572a"], [13, 3, 1, "", "1:10 69d1797e8dae4213d66892c3b2df1eccc2ba619132a731ed8578a80930d8b125"], [13, 3, 1, "", "2:21 b999de4283114f3434ff6b2f3d644c97f9947cdb3682846f9e5cfe9198c41071"], [13, 3, 1, "", "2:9 d74eb6d81576b2d4afe799e9b3c3af708fffc38c914243232b77c7da8763f198"], [13, 3, 1, "", "1:19 a9dbcb5f2bc6a82cb619b70700efb6c5fb95c9028afc2ed8d33d54d9b8cc4285"], [13, 3, 1, "", "1:7 f2a6f18c824fdc7760e14c9983e4f55bb428d7bc2e926c5336d84aebcad96812"], [13, 3, 1, "", "2:8 74b6e657cec0604048f4b316ae345d1d3607cb8345b45d3c19a0762e701bb114"], [13, 3, 1, "", "2:24 1b9a50adc4326cc8e3aa3e0191f596d700af6e1ee878fcd463eddc88796901c9"], [13, 3, 1, "", "2:4 327bbebd420db49f61b331ce68c29a03205db8e1034271f35724e3bff4967225"], [13, 3, 1, "", "1:14 c267be0d4596f4e187e1217ff192f745f74d1ed2d2e60cffc633f57ab23a3d0f"], [13, 3, 1, "", "2:3 b3410bc20ea46ca83da705dd5c3d4bd7e5dbcbb0cb06be3739e98bde74815d2e"], [13, 3, 1, "", "1:13 91e48c407ab94676b42f914c8b5e3d221426fc65422e434aee70e89bc2a2575e"], [13, 3, 1, "", "2:45 0706a9b6e7d90d7b3533057e27539a37cf1b148a53e539ae61ad9dafdd8286f0"], [13, 3, 1, "", "1:5 1dbdb7b1cb424770dccf1f1ca6a22190bfded4e3a864ebe0c70138dcb08aa376"], [13, 3, 1, "", "2:28 ef6d7d774ab1ca21f1aef251798dada30ebf5aa565f69e642e4ce2ef193ab470"], [13, 3, 1, "", "1:17 e8ec5785b962e9d67a7073c3f3ed029663329777ffe7ed04740bb5bae1a2ca3d"], [13, 3, 1, "", "1:27 d6f5bc80d218fd2eb5f767c7df3d43a0fbb3a4f9d611ff09ec5e2db2d73b964b"], [13, 3, 1, "", "2:39 43d9d2ab6988505415d82f7db889a536048c143771389684c62cc7e58d4650fd"], [13, 3, 1, "", "1:12 934b550a3ace7fdebb140b888b4c6b0bd6fc15ba51a11245c09777b143e31c74"], [13, 3, 1, "", "1:33 7fbd7be9fcd499335adb0893a1a8a65bec287ca73feb1889dc5982a40247b238"], [13, 3, 1, "", "2:27 24edea8823258cf1aec3574d325ce870b217dc84940d5cbaef8363f52c84ce84"], [13, 3, 1, "", "2:36 251021164436aa4b642498f6a3d30aa2af316742c592de939c3153c932ff6d94"], [13, 3, 1, "", "1:35 6790bb787a1e84d353705bdf02d3ecff05ea2e3e901235703945395484fba35d"], [13, 3, 1, "", "2:10 bf756baa1fd54ce8e191d9722e682a9688658b4f09b5a2d2adc2be66ec71f671"], [13, 3, 1, "", "2:12 8f07653c7f5ffded5888d86d7b90df75357f168c0520bdf55624bb2c836d2f9b"], [13, 3, 1, "", "2:37 e493e8ca70b894b223615529525c358bb19c570024d3de0d8bd36a9ffa32c238"], [13, 3, 1, "", "2:34 7c4f40ae43ddedb5dc71bae0dff059a430abcc5ef5dc36e38ce185ef2631ff54"], [13, 3, 1, "", "1:20 210fc5aba0385a72ab09974dd17ebe68a03a97d12721b43936fe872062b67039"], [13, 3, 1, "", "2:35 d14404ffbac7fa6b204f853222509a2a09e59f7bbd912577a5a7ff4aeff0d298"], [13, 3, 1, "", "1:15 fbd2694649731061bfc93b035df30a2ffd8057aa228d378e6a1bbbd4d0c3b01b"], [13, 3, 1, "", "2:18 2237d36080e7a184ba2787ef43ea4309766b3fe20fcd28e287f48d8467f79652"], [13, 3, 1, "", "1:2 8a38fde192b47c9883e5f9c64b28fc71e84f6027fdf2b6510307bd918adb2c36"], [13, 3, 1, "", "1:32 4cc9da7a653b181d53c273bb4262f0da36f474bba28cccad6515df9569c34691"], [13, 3, 1, "", "1:36 173a7c080780f8a61d2439061e6ae4d2d179116636cebf6c3b387311b75d8cdc"], [13, 3, 1, "", "1:23 13837d13ce9ed671b2a8b76b9831fa0d911cd1db7ef3fd3c4dc3393776c153e8"], [13, 3, 1, "", "1:21 99debc3917e79cbba4f44a5de1c26fe2a35a28b999da0b9e0896c74136c7f55a"], [13, 3, 1, "", "1:22 4646e2e4cfd3b465d1c592a0f0fc10fc28890d013e8bc48635645162b72b1c25"], [13, 3, 1, "", "2:7 38d62d0687777daed55c786318f571e04236edf24b0be2be66fb64bcc79a1ec0"], [13, 3, 1, "", "2:15 4c30c61a09b304482477071c1e8940277819245caa2586bd24d5f47c8f0604ea"], [13, 3, 1, "", "2:5 322b37644fe5b701127925bfa2b7e952ba5a3875e5ea4488a332ddde869dc5fd"], [13, 3, 1, "", "2:20 913c7a58bd440f285a8792fb9cb87bfe92b9d9e3e781b519576338a87006b568"], [13, 3, 1, "", "1:26 a71927d83c22a012d774779a46a3cc373fd770ac798eaa5bccaa5727d5fc7d23"], [13, 3, 1, "", "2:11 d0ce672b39bf64337b97f071c7ba60f06f19162e6e462862b7d3ba89bbf35177"], [13, 3, 1, "", "2:26 f79e3715f39c38e8e39df76757e19cba8ddf802007d1b76f19778e8c66455608"], [13, 3, 1, "", "1:34 72a5a17c379fbb6bacbacf067b17b2ceea95cab6686fa06bc8a48211b01489fa"], [13, 3, 1, "", "2:42 538abae4915a252a44ef56d9fd5d1e9b54e0a5256c3493cfd1ed292abb455257"], [13, 3, 1, "", "1:16 a80431476395f4d9b37789b614a02fd3ed653fbfdbe231393ee74f8ffa344d62"], [13, 3, 1, "", "2:41 b5e53d8a4f2d5d92ff52782f5c95785d1d304ad5347ceb94c72d18c10a07aad1"], [13, 3, 1, "", "2:23 5cabacdc42396ecdc4239421e1c94751f7e18bae7137ce2e7a90b826dc77137d"], [13, 3, 1, "", "2:13 8f0cc6ef2c23c8cb4bee94667d1ec39ea29fbe2c83738e9a0a6911180130faee"], [13, 3, 1, "", "2:22 e95b22baaaaccde95e5436616a10d509d3d62c095e320c2f3c8dd4e40946315a"], [13, 3, 1, "", "1:8 402be3937906f8d4fa926dd2d3368473a0c85d6086a0eaf2ced7795159268355"], [13, 3, 1, "", "1:29 486e270c4089e2051cac9eaba641373777e921aa5c7fe474f0ca357161b85e9e"], [13, 3, 1, "", "1:18 94c265f36be700f5ab1b92a26255bccb819f831e2c5eb49430450911142fd3fc"], [13, 3, 1, "", "2:38 0830b44abd4b4c395984463fae9b127ebdbe221c966d5585ce9c6279c5e1253a"], [13, 3, 1, "", "1:28 6cff8dae509fe0e99e81732637131e38defb7dc8880572cd5eaab052c4f188ae"], [13, 3, 1, "", "1:25 eb8c9934a20fbabd92ca5744c146afd324847e0dfda556cf639c4dfb8f63fe77"], [13, 3, 1, "", "2:40 abea834cf3c23b93b75de1a6678a732d14decb29a408e444d3a290397ea29134"], [13, 3, 1, "", "2:30 c2122b8e33a87c74ed1103c4a38fb30ea601a8445ed9d99df70a31536b77d278"], [13, 3, 1, "", "1:11 a26371ca4aa01bab4d2e1d2db822d99d09f609cc2e368e34640291ed8b08987b"], [13, 3, 1, "", "2:29 05610e4ed44e10cfa011be9ec110980564ae67ea3f1a345629bc1726e0fbd447"], [13, 3, 1, "", "2:33 dea0ddd23f309d02462555b58271dfaff6e5958548830d4a0c6891eafc50b025"], [13, 3, 1, "", "1:30 ab3d0ca0fad9f39d9ea1ee3f6e6bd6a62feaf78a7c4ad89e4da7e1c9e1cd94e9"], [13, 3, 1, "", "1:31 88ba61d8f48ccf3c27d589bf4bce3d0792b2193ee35a423cf45e9b005f6270f3"], [13, 3, 1, "", "2:17 c180e76cf8759c8f1c126845c7c4691255b1fc7300dd6d998b1ec33d2ba5193a"], [13, 3, 1, "", "1:6 fce3a5b86ad0c82c14627febfea99be0d1adbc87a19da2a21ac7918c982c2165"]], "6.5.10": [[5, 3, 1, "", "2:1 1bb5b885646bba801baad9691ebaddf623dd4aaa4261744f0fb83b8b026b635b"], [5, 3, 1, "", "2:10 aa1553b4d77d65e20c4f21c81f7f481f61757cd3a2e996c6cdb03b04d102e93f"], [5, 3, 1, "", "1:5 562d40caca29e42fd9e6720706fed8695f5caea2e545f287ae8c03e6ee6db2ea"], [5, 3, 1, "", "2:15 d5cac296c4841b11d032f3f8c436aae5e3196e6c8b1ac76278a96a0d9713b852"], [5, 3, 1, "", "1:4 2a9810e20da91ce5a1634df073730e215ba4b469e104c426c9270f979aa97c01"], [5, 3, 1, "", "2:17 d7fc919d5ec540ac0eef14fa6ea2b5d26ca87b8a8dd1204ed7f5526c7c669f43"], [5, 3, 1, "", "2:5 243a77cae715bb740c108cb3cf10510655383e55689af1201db4edc1017ecb52"], [5, 3, 1, "", "1:2 7178659e8d13267c6d2cace3f92c866bde8b3c7f20b6284b91d1813f23ab2b48"], [5, 3, 1, "", "2:8 d7fce64f27e5e966da37da7025ecb83935790a56516a53756543ad92bf4ed4d2"], [5, 3, 1, "", "2:11 b68bcc8992526aa0a831e5dcbb9b1792ad9a389fb52b6f314b1118753322841c"], [5, 3, 1, "", "1:6 a334732322599082a903e3f83305caf0f889eec5caf952a203bf92469d3a7ebc"], [5, 3, 1, "", "2:6 2a3a9a4116094d25733de0cab8310e4330e09ce09ef7e57f0514cbd22b7da44f"], [5, 3, 1, "", "2:18 53ec6be8b47c6be5b010eea7546935286e1827c719d139f77363a74e1e7a7220"], [5, 3, 1, "", "2:16 8bc627e3bf0f027c3c06ec7c4a610c3cae859ce1cc52705452b6a2b18e6245a8"], [5, 3, 1, "", "2:14 54b18adecbfa6f101f756b60fda6240a68c94d6181b080c20c1fcbbe1e2b319a"], [5, 3, 1, "", "2:19 c7335948424f81e31b96930ee1dc2ecdeaf3b3a9deebd55825c5a52ff484e337"], [5, 3, 1, "", "2:9 00243d283fa4c9c0a35d15022e20300d26b61ece13bc0541fb6abbdc62083508"], [5, 3, 1, "", "2:20 49260bff9918873b5d8535276a39574ffd2b3a81c0ef8739ba1315dd51b7246e"], [5, 3, 1, "", "1:3 f899cb72136ebd3d961dc27d192d55c7b2c0be9c5ddb36fcac37dfc24b7f38b7"], [5, 3, 1, "", "2:12 a834153c99b871fe9e977b743df601c1c87e148ffa80105b101da6fab4145491"], [5, 3, 1, "", "1:1 63dad52c617e3ee41bf8bdd92adc2ef8b74de581ac2dd9eff2d4ae7a9d79e71b"], [5, 3, 1, "", "2:7 35df6c0e03bf68532c179009e4096b702f74a652fc496ed46f7ff46c2f66543b"], [5, 3, 1, "", "2:3 51a40a20e8b5e9e446c016a0c4b190ac02f0b1693e12a79e14c1eb0265f19dbc"], [5, 3, 1, "", "2:4 7bf354d6273ccc3c800c65f0c583c41706d2028f00ef46c96172bd6442282ba5"], [5, 3, 1, "", "2:13 9d43daaf0511fffc8a32f8ac5b4ad06460cd1377cdaf72b00b2c07c7e9f1c45f"], [5, 3, 1, "", "2:2 7bf58363b94e40971985a05b3232d9315c7404e7587a09a94399d1a424725557"]], "17": [[2, 3, 1, "", "2:8 72763ab828f9c57a7ba7ae57c095d30f4ef5bb34e5319df45f176f6570588e00"], [2, 3, 1, "", "1:2 2c6d410f6594c15bcbb289be0b5a44ae8b19c478583342e5405aef3abbdb8951"], [2, 3, 1, "", "2:14 b14552f886fa68d1904ccff6320f2d395f90fee027a70f30588a9ba68a53b172"], [2, 3, 1, "", "2:1 aca31f1758bf227f88cdd68e64370874768f51dd10e9211ec344537b1d7ba6cd"], [2, 3, 1, "", "2:13 5b5d7f2d72de32a5c8c9e36b4111885655abad9b351cd2bdd65dac06dcdf6660"], [2, 3, 1, "", "1:4 14b867fe8baaef726910084c46d92291fffbfe3b462586c4a7ecd134f8152d96"], [2, 3, 1, "", "2:9 051b06b8e012ef9e9c02369b0cb8074a99acd99781938a746c9de16fa2ce4dcd"], [2, 3, 1, "", "3:3 306a3b2eabc2ff31f77f6446060185578f9427fcc497d1588cb51a4c94ae4819"], [2, 3, 1, "", "2:12 3b07334d52a95685b653abaecb58f071b99276e911b0f4bc4ab80cda4ef4ff1f"], [2, 3, 1, "", "1:3 11baae79e2b2bec1ba1dccff05f08bedf2b603f0b2748f345dafa59243aab72f"], [2, 3, 1, "", "2:6 3df9c673e62071885a6938566ce59609242470b1c63272f358bf5f999f2324fe"], [2, 3, 1, "", "2:15 1bf7e1661a0f7e7762a5549fe82988a4afbe4436720588214b9ad3857ecc02a7"], [2, 3, 1, "", "1:5 3e1f608593a27c63b70db641f71e71a331b116739b77b1bc9ce207481f0dd8be"], [2, 3, 1, "", "3:2 0a94602025c891b37d5f98e1ccd525f0cd66c06df02df85b06336668d0711cbe"], [2, 3, 1, "", "3:4 d6389f23a8eff8343451429941d835b9e1b00fa45cf260112041467021172752"], [2, 3, 1, "", "3:1 dfbc3bd3bcdae5a3f76ab60f5c1fbcb25458c3975778746db7eea952015a2f79"], [2, 3, 1, "", "2:7 9c9a349252f3cb141e008067381e5a19c45f3b1738132bfebc02583b25c36873"], [2, 3, 1, "", "2:4 fa9d632297e07c71321455d7ac82181279f4349b2878ed60e0088fb76453fa21"], [2, 3, 1, "", "2:11 f182e5451b68bf0b4094178052d33c3a59b7d40c5282e4bf77de423b44b77f8d"], [2, 3, 1, "", "1:1 18cfbb89a43fe476f2c0e5f3299b552fe8abafac2b759f081654338c7597f688"], [2, 3, 1, "", "2:3 f04e33b2cedb200500a0733c23e46638bb219c9422ea4796905e57f57c0bc457"], [2, 3, 1, "", "2:5 17b8684e84e891ce119a119dcdf3b5cc1df0bd9132fc39002ef445333a7386cf"], [2, 3, 1, "", "2:10 a8ab421b6894b056917c74396d9ac843c73dad27e12268a43fad03a877c8009c"], [2, 3, 1, "", "2:2 ce72ccfc2f3e59228fae42edd3521e8333bddb6951896be2347ec2387355262a"], [2, 3, 1, "", "1:6 37c5ee82be489b2f1bd2eb9efdd02a9e9734ac2867c6bfc04f37f9877a9ab760"], [2, 3, 1, "", "1:7 a206190ea6bc9a6672886ed000599cd972f4abec22f754db4c4d9acbc6754a4c"]], "4.11.2": [[22, 3, 1, "", "2:9 03a369fe556766892948f430b4527499cd07a737e8ebb566d9f4935b1ed0bd81"], [22, 3, 1, "", "1:12 939150187e841861875019dc485b2aa948610bdabcf75995a8afad5299edfc9c"], [22, 3, 1, "", "1:8 f51fdfab79671ea2955e16f13e207e87820a37d5f55b1d4c22064de5c137211a"], [22, 3, 1, "", "2:2 5fc0a7214a5fa354bcf5cb9aca684565b666321cce8849cf8e89065c73dca2bc"], [22, 3, 1, "", "2:12 779b7205751c55010c330675d65578fe47e6bdaefe5a76eef9dc878a6ad61921"], [22, 3, 1, "", "1:13 89652dc80a444cd6f5989de7e2a59fcbee6155ba69450db9b25c7c463673bdf4"], [22, 3, 1, "", "1:2 9223cf2e73ff1760ca4c9edcf7ea6c2b6a71a16c836006c862557a4a50880a0b"], [22, 3, 1, "", "2:6 8f137c8f4826a9313a42e8c5bec10771adb0f8414465461fd20d604736c77eea"], [22, 3, 1, "", "2:13 83a4d8e45980a24abbd901d57911b4c082699c53464ebbe23837f6862ff654c0"], [22, 3, 1, "", "2:10 53b32f8e3a420b85e3831feb7488281662c227e49e7585de6de3f2147d00ec6d"], [22, 3, 1, "", "2:14 cc35a963cac35f4ca35b83a2c99092463e9f24c42b164f201487fd81193c4138"], [22, 3, 1, "", "2:3 cc7a74a98eb6db165a74e65d78a53928cd6ceb8d9b8f47c5549d190d9c561b5d"], [22, 3, 1, "", "1:9 b8004c9524d9dcc6e7c1fad6f95241fbb7388c13ce2a105eea1f0fe9fc97517a"], [22, 3, 1, "", "2:11 81829e6f383a4c65151f020b3440763a7261c3898230a6504f0d83bbb62f8f40"], [22, 3, 1, "", "2:1 5f76aa9810ba03c28ebf2942db3a8fb181ab22d0b664086601393227aa7bc9eb"], [22, 3, 1, "", "1:14 8bea878c1256e24db0fc455c3c525bca9c6c94300cfac8d7f432673f4a43fafd"], [22, 3, 1, "", "3:1 7acef59265b9dc0eb9021e3c4144a4243c0f3bcc0119c1cd151745c380b1bd69"], [22, 3, 1, "", "1:1 3eb2acc0e91b94225e6e44043b9ed3ef348d1fbdfb8db38506d619d240c6f6e5"], [22, 3, 1, "", "1:10 b6f79b18180060bbc48e3b28c798cfabb1fbe4261d4f29db7e66461a870e1b05"], [22, 3, 1, "", "1:11 7f5298c7fcf4553ee2096af2930625f9d951363c4f6529b7d5d99c07b1fc520f"], [22, 3, 1, "", "1:6 8a55fc830de2323e466a47edb68b3963f8dbb9972e1194ecb80a9c6b4a9252fd"], [22, 3, 1, "", "1:3 596c70e3ed03568cc8842491654b253cff2dd3c53ecff886f8790626e79cdf54"], [22, 3, 1, "", "1:4 a91c1cca73e27a37a40cfe16ebf7b3dd4618e680e133ba6257ba1c08b26b66a6"], [22, 3, 1, "", "2:5 f655a5cbd5d73a7e395bd286c59614f96f179cfba822ade23467a58dd59c9416"], [22, 3, 1, "", "1:5 fea4e03795d124973a8ffab094f6ee265a8f520b32a2c7d748015882a86761cc"], [22, 3, 1, "", "2:7 1d2016f00c240d05addd5fab89f965d3641505505bfb01110d95a59a9d0abfda"], [22, 3, 1, "", "3:2 151cb09b57de0325104c84d42d1aac2b8865f4dc1fdbf7fc0da0db0967ba3270"], [22, 3, 1, "", "2:8 a43584acfcb4f9504ce4581592588e3c52f9f07bc3fac6200626820608fe115a"], [22, 3, 1, "", "2:4 f0a3247f449084aa9aae9debf4ffa6a6913bb680bf0b458cb343993f72476848"], [22, 3, 1, "", "1:7 9511193dd174fc3bafe80e8350dddde4679a8741fb947fe3f5e1e891a33d51ae"]], "1": [[8, 3, 1, "", "3:2 397ee14d96917a0a9033a587347a2246e4118f1270d64cce0f7eefeeaf565980"], [8, 3, 1, "", "3:6 c669dced28f1bb44dbac7e17e855e184b1f14baecfa15e22b21d2379a5998be6"], [8, 3, 1, "", "1:2 2fd3ee99a2741348afeb5b1c225ce4f0f75e2a082a1761ab70b2514a188bf003"], [8, 3, 1, "", "3:5 70b86c11c1708aa3d4d6b52af002352aebaef77835c4b45ebc4233a789844230"], [8, 3, 1, "", "2:1 ac30f10574356a3a3472c8858b8b13e8b8ef034312c5823a3674a594b4e4e468"], [8, 3, 1, "", "3:3 969a1f3b691a3118abcd815618a71feba07fdd5be4c2a12ce37d0b49595d013a"], [8, 3, 1, "", "1:3 3cafe78bf672e065271c827827275c25ee801c1d3205969de17e9f49d6aab5ba"], [8, 3, 1, "", "3:4 0d6e2d5075e9ccebe0f79ee2d1d393c07fae6b8d4b6cbf7fbf59b1348185fc5d"], [8, 3, 1, "", "3:1 34f82930e1b6b4af471b30519f81d43725341882ad0a3e8e36d85ab7b3f5713b"], [8, 3, 1, "", "1:1 a07b4fe66cf65b8ce3a858b2856554611de4b9e53002b5ffa7fbb90c6cfc2b44"]], "21": [[6, 3, 1, "", "1:2 303e206ff87fda7c72da6833ecc1035fb2e1bc4de71a73e3c1d6fce85b12b068"], [6, 3, 1, "", "1:12 1da7fe0a23d93d524fed3110b8c116e9b7fe7f1563c51830ffd8b98ce562b9dd"], [6, 3, 1, "", "2:1 32c972f272a9d15a0eb8dc264c17c46b370c4bd9b1088bfd65a68fdb64c4b15e"], [6, 3, 1, "", "2:3 160ef01077e123c673f3437e37cc0c39bc2ecf284187af80088547f8c4dcea59"], [6, 3, 1, "", "1:13 42ee2288dd6a0bde172c2aa19bdd6c764e4c21913a22a4d9d65065b478aa14ba"], [6, 3, 1, "", "1:15 fab1088ce02afa3c8566f0f5033efbd1b6cfec69fc639a64273cc39e32f479e5"], [6, 3, 1, "", "4:1 a342af289e2343c6a6c563bb75a44dd7f003efc17cc5dddaf9db25fc1395f17c"], [6, 3, 1, "", "1:7 73a1ea71c6511f5c8fa189351be1febafe409c8be34b695dbf2b171521b6a22a"], [6, 3, 1, "", "3:7 8a5942ade1d1568f8a2e335a8767ab295816829fc64e2c4ef250f53feee9ec69"], [6, 3, 1, "", "1:3 a7324b60f99f6fb51284703d13f58460e71099e1fae889aca7365c5c7c1b5976"], [6, 3, 1, "", "1:6 39df1027aa9c166e4e50895b0a788131e1f5f2323e7cfd31b5e06e5b3c128c65"], [6, 3, 1, "", "1:14 a81529042a5b1033d4dfd23dc355a422cafc5e8a94dac4134dcc1cdbe6d6b01d"], [6, 3, 1, "", "1:11 3669dcdebc7765bda115346c9c6980555f7499a5575f7f12566645e7c5580b1b"], [6, 3, 1, "", "4:5 0fb23c674fc5c6699fc7b3869fdc36f00d967880169275042498442dc58a8872"], [6, 3, 1, "", "4:3 0950c80e76e16cc26a368f06ab710449600669547abe9b7d1b6e520dc0065ff9"], [6, 3, 1, "", "4:2 7456ec21405a4f2629a47ca17fd031b08d4bf3cde66139fe81c3b11248264ca1"], [6, 3, 1, "", "2:5 7d4b55c59ea318d78494221e436aedbac6a9c1c17661c2243e80990dd2188a52"], [6, 3, 1, "", "1:10 c2d1059fcd1026468253d1771f735c5e6a5bab43177231babeb00190e68633a2"], [6, 3, 1, "", "3:8 0e21072dc94fa05d0ff274b95c7cdfe5e96a5fddabfd26720dd20bcd7aecbf38"], [6, 3, 1, "", "3:2 1bf19f866a19f72882e1486cea9582179a769d7bd9a3d9378b982a74452ebb7b"], [6, 3, 1, "", "1:5 c336142c062c3b0f4238fbadf03105300bfcc6e13ec8c02ac9c02aa0bb4dcf50"], [6, 3, 1, "", "1:18 325e66e1fabd736adc5af45c19421a9268caa39bd78c98d091266005e54f20c8"], [6, 3, 1, "", "3:5 9ff777cfdc4b91eb8472493cfbc9e96b5e66329d621fb37d3c8603b420f63f79"], [6, 3, 1, "", "2:2 d3516af1c3ea4a3ba811bf1081ac06de4b8eb22057c37dc0bd4d086ee54db362"], [6, 3, 1, "", "2:4 dd7c836fa590b14a7da0c87f48b6eb0d11c83010e9f4ac1e0615ebecc9ba7eb3"], [6, 3, 1, "", "3:3 9abb006e22c228a40953b442c54e63fd9a10cc675390d5e7d61b1fb7221ec353"], [6, 3, 1, "", "1:8 bde0533495e75b4ceb809bb02e397e0d5daa1d7c3d1977865fcaf0ff5f4d989a"], [6, 3, 1, "", "3:6 69809b6272d266f36a20ad706492a4e3561e0afa136d36145d8804f83456d978"], [6, 3, 1, "", "1:16 aa45e16b2c9fb1e7d7ecf23ca38806bc2f369b1d1be518e74d28e24e6b54a8b4"], [6, 3, 1, "", "4:4 1e3dcb44d797a493ed568db4d4a7c292794fa22ef50cc810f94492b86ec20c75"], [6, 3, 1, "", "1:17 563032c0e9c472e10f9c487c70925926c24107c3258cc003fb04dd03b00c21af"], [6, 3, 1, "", "3:1 0104ba914d1d2a6dafc2b7914cc94254e1ab3678864a25c1864a89740a54294f"], [6, 3, 1, "", "3:4 af35e63fe34e63713827f5525caee153a033f726c0cf64300b5612781daf29fc"], [6, 3, 1, "", "1:4 9deadcb79842b0adc5ae917673a5a388d2bd4ed4c1732bf5a25e4e650395ca87"], [6, 3, 1, "", "1:1 5907d37d1b47c67dacab00d10295ab91ec2974c77016fc225a28413fdcecf896"], [6, 3, 1, "", "1:9 907e87e17820da8559bd8a486992acf18956b1456ecc61cb90278065e01374ca"]], "4.3.3": [[22, 3, 1, "", "1:1 9f2ef3098e38ced762fc72ca6a4bc1dec698a33084b9c778e96312d3ffe46bf1"], [22, 3, 1, "", "2:15 27d4b5e93c8a23fea7497ff03639ed73f72387be79afe5bb2ef004898a152b78"], [22, 3, 1, "", "2:13 fd5107a41862e15e8bf69245f1ca0a14bd39123490c3f4b6af8e4a980f4ec4ea"], [22, 3, 1, "", "2:8 278b33ab9e405eba53e40103ea42d106398186c9d15ba8ee1995c7a728b563d3"], [22, 3, 1, "", "2:5 9ad8b2b92eaa9597eb9af4e33da92fe59cbffaa97c890e6086435f557e43fb50"], [22, 3, 1, "", "2:4 b24ffd36ee78bac00ba6eef084b0bbaf5b5915c937f0c8172e3068776977c8c1"], [22, 3, 1, "", "2:1 c91bb9a77a65e19d420bace1cde89e8b2bd3a6b0a5554c2e2d6c5d4b2b8a6a45"], [22, 3, 1, "", "2:14 3c6952dc4550a4388ae5861a5f0f6e10a791a23bc1f697d783dbac6b3281a6ec"], [22, 3, 1, "", "2:10 b4b087216df02d090a94bd841759e6bcd8283ef3c137cfe09f138ae17ddd5071"], [22, 3, 1, "", "2:3 78b32c0312f4dd50cbc257f858487dcb75f68d6bdf006abab97290c56ce8d417"], [22, 3, 1, "", "2:12 ec17bdab7274d1767c59acd310b20c0c01f2da8a8b7716c404d17f1cc07484ba"], [22, 3, 1, "", "2:9 9dec417eca723a851afba4b1fbf40615b81b0b680eaadd85d45cecd136fda1a3"], [22, 3, 1, "", "2:11 f3bf5c08e43865c62017a10e1b7306084527a18b37767d4c100314a6e0c1c2f6"], [22, 3, 1, "", "2:6 b1e3f5d5efc7e3aacb83d9a6a8f313f9e28d458979266baee253365b8454376a"], [22, 3, 1, "", "2:16 adc4ea56adb80d9c82a72320b251471c3e69a20eb1fca729a0ba24c65f115ede"], [22, 3, 1, "", "2:2 49357a257118ef34e9a0f670c27a41b0d29de7f40242b56aed6fcbd777d0759b"], [22, 3, 1, "", "2:7 a9f676afe50447b4889e6b3ba228a3314e819d297389ab57b60c289c43192d76"], [22, 3, 1, "", "1:2 cec08d9131666b39b8d3688a587aa88db5e36d49b4c55c6fa925a6d90e9338b8"]], "14.4": [[3, 3, 1, "", "7:27 4025d7292308fbfa960b1bb6777f0012c20f86641c9d40465dbeefdf5b08c521"], [3, 3, 1, "", "7:10 3b60014467b97b96f55006cc958d04dba76f07721782eae6af5f4185ef0b50ed"], [3, 3, 1, "", "2:10 6da6b05924e3ca7b78a52d8b6bebba58a20200ccc2beec4a64d3e81ad77da76f"], [3, 3, 1, "", "7:1 f551c6d52274528f4d39e9f7ebb33850b7a9886014adda99bd7dfdea6a937703"], [3, 3, 1, "", "2:6 5be283d945e26887b35476d71c9983067056e07394062f8e074c437f23e48e7c"], [3, 3, 1, "", "2:2 8279dc6a8b235106f42ec6b4f7ac14f3cbc73a5387e8050967651ecbc6aba0b0"], [3, 3, 1, "", "1:6 704d759b8e808aade84bf9d91c6547afd260d382951c9e63b34d612e46adb44a"], [3, 3, 1, "", "4:2 f9d012717e48391d6a169f0d2134dd95a7d39ab75ea97dbf1dff6d58431a9ba5"], [3, 3, 1, "", "2:12 689d6488c7516efa05b316fc2b100ccd54fc41bf3bac4b72f0868c6a4f251d1d"], [3, 3, 1, "", "4:1 521fb43b24f85cbd6c81cae0c33b399291a86e51201554028deeb6b63c47e26a"], [3, 3, 1, "", "7:25 08f70ffd77b18c260a9e349a49a29aed866ef6fa09e0df2aa9f1a8228046edc8"], [3, 3, 1, "", "7:17 b147985d5033458a477fc80cfbdbe97b50bfe9cba065f8e54ce66e21162aa93b"], [3, 3, 1, "", "7:29 0db116cf8a599b71212419a8bae8425a590f80dc601f73ff9e537a80f6411a9a"], [3, 3, 1, "", "2:1 d584c25b23d784679f49bee07542de8692b945ee1f537fbbfe6de0748ac4fb71"], [3, 3, 1, "", "7:32 be9f93509f539e90659d105d4f3312acd8a85b94e8c3aa00920639811e1eb437"], [3, 3, 1, "", "6:3 fb291d2a2d9aa2c05d01d7c0697cf5633d229a13e733f5c63cf3880d0e198fe7"], [3, 3, 1, "", "7:19 86db3013b3c7a67a2925b579f72ceec4124fd83d53e5dc632e4b57d7cc2eaf3b"], [3, 3, 1, "", "5:5 3554e24b5a9b2499a683328f0576d51a86bd26bf117490738edb7ae2e7904a1c"], [3, 3, 1, "", "7:16 ef0cd3b9e3e74fb06c3b65260e11dad890b4f75033c75029d59385ec3657f7b4"], [3, 3, 1, "", "7:8 b37222b3100e2b80b7b034edb7a76cc840d78dd0fe191e49a45846b0e6903d8d"], [3, 3, 1, "", "7:35 73d81df70d3dae226f85d4fc1d947dcb6c50a3b857102f823d92d248260ce169"], [3, 3, 1, "", "5:4 f92935a62e26ce498f4d124d356e3e78782eef0ef6a3740c3cf24f7b09250efe"], [3, 3, 1, "", "4:3 688be0bee74edd58c2e2e383d5686e45abd8a325780d2d340605d0b7b3af96bc"], [3, 3, 1, "", "7:31 2831803e44ad7befd12a919e248e44a0be126600a95ea86bddaf2a682634f7ea"], [3, 3, 1, "", "7:12 92bfa8ddd580edf9895e16b361150c8c3d0cdd1c9ccde8524f7e6451e4e7fc64"], [3, 3, 1, "", "7:4 a879143703b2ebbf1c26fff249edc2ee837f8d4c7b131b30fc5b2da7cb149c8b"], [3, 3, 1, "", "7:37 0900771280a33d9ba8e1d92770357e08ea0ba60343df556c52ebd24218d890a6"], [3, 3, 1, "", "1:4 c828a2288a376f29a23988cc6c36a6e201e5de5b00188c8dae26d122a334a4e2"], [3, 3, 1, "", "2:9 8ba2db48a9fbc5cd1345c45bbc4ffcce13b8b4fd94cb3d312f53128b4459aaf9"], [3, 3, 1, "", "3:2 25bc4c9ccd15441cb75deda5c2ca31e035e40a8231453a5c22e52e2646c44186"], [3, 3, 1, "", "7:14 628e0a86e2c9490c0f27ad412acf3bfcaebb23591129c816d0863d06c698ea97"], [3, 3, 1, "", "7:9 f2348baa759c683ef36d18d117184e9e34670dd0247232e3c9765ce2bd5acf41"], [3, 3, 1, "", "6:2 20ccfad5b0eb356d3674f0df4b46713ca8de9f5e25b83f9ec21fa2ff02dc92cc"], [3, 3, 1, "", "7:20 c2e9b4fad1e4fc3b81216128713d9fd685d26f561850a43261e300f242650592"], [3, 3, 1, "", "2:3 1bf64d3433e9732df7b69f03bc39b74cb23d3c97ec46beaacab32fd3c95b7311"], [3, 3, 1, "", "7:6 0486289257a5a1890cd132dfa6c3f59e5fddf88be745323f21a5d89198421ac0"], [3, 3, 1, "", "5:1 46ec90b1b86c7151216c55420994d294c6454cf9a68db0d8835a9fb9b50e5984"], [3, 3, 1, "", "7:3 0c3ab46d2d4bbdfb7f8aa15e861edba999dcd3ab2c8247042b749fdfea5d82b2"], [3, 3, 1, "", "5:2 9ea7a212c6751d354e97c5eaa4a920477f382ff731fbf5eaf9539e771f658286"], [3, 3, 1, "", "7:5 e3f691f921462849f2125bb6f79621259b85389c58f9db3809ce843964ba6095"], [3, 3, 1, "", "7:11 ee8879063f069e206d0ee79c4f20ae8cdc570027eeec9cd9ba5327ad2ecc4697"], [3, 3, 1, "", "5:7 6c12e7861360d4792869765a4ef4afc10ef9b835148fd7c3b5b6a78c61e470db"], [3, 3, 1, "", "7:28 6e01c796d3afc2eeedc107698dfc4456b7446b5110ba7583416245987f3b16db"], [3, 3, 1, "", "1:1 1c091220f546537aa0376292e1056112fdb4f6accdb5704f2b02a353e1dc7f57"], [3, 3, 1, "", "5:3 d453f4e8c7603cc4a3af26b98e29a3619d3e4151e2257de52a6d49f61e7ac8d1"], [3, 3, 1, "", "7:2 4d1555490789b23e0b29f3539cc6b17f32c58c25a752e2dff0ab22d6d85ba927"], [3, 3, 1, "", "7:30 b12e44bc28cdd8d7415305251565ee0efd311e80ca5798f02424d3d97af7abf9"], [3, 3, 1, "", "7:21 f953ad67423f37e5b897c8c6668894471626c602b1893f1d007a340ddedbecbd"], [3, 3, 1, "", "2:8 d80167a0dcd4ced3ddd314d967d1072c823cab9fb8cd19ea7168bce3bda55d70"], [3, 3, 1, "", "7:7 5552d190c3a9cad12620fa1208ea5d3f5618d642ab37332f58d35c9d58779495"], [3, 3, 1, "", "3:1 fb831c1ad14c0df880fe0e2965047fd726fb0ed1e305c93656d65e870501e7cd"], [3, 3, 1, "", "7:26 6d3036f41d092e3cd2e55476c4918788be2ab98eb9c6d0b9e69ee70d433cbce7"], [3, 3, 1, "", "2:5 ba9481f2a0dab8367b56e1986f679ff8388f4d6fdbd58144bd8fec7d02d50597"], [3, 3, 1, "", "7:33 9360333f7d8597a9b299a8028b723451ce669aa9bf7571105bcffc0ed2665b48"], [3, 3, 1, "", "7:24 ab92461a17e2778df037251723d9e8305445c141efe44b6ca98f7ddd5804cbe9"], [3, 3, 1, "", "7:34 07f7dbb2dcd0707931f55e12d3c59fd8e10ecb809691978bc03ebcae149c872a"], [3, 3, 1, "", "5:6 2e5e179e6007b149b3d35850933d604403fbaf8f3cce6fdbd380b2f719d27cd8"], [3, 3, 1, "", "7:36 e9128513da136c0be871747b63ccd23562fce9810967916d929dfa3e17fdd8b7"], [3, 3, 1, "", "7:22 f961d6fe49562f6bd683b5e7dac9856e6b65949cdfe488452a9af791a1a20a38"], [3, 3, 1, "", "7:13 be583136a634bdd26f4a80930ae3ca6dbbdd6e0358978bd6923a42e1c84b0da7"], [3, 3, 1, "", "7:18 f72b277b5c1c9727052cdaaee9b8c8db7db662bebc2b7e7059b6af7aed73da62"], [3, 3, 1, "", "1:3 38c14cea741975dfcf0745579b4485aa6e7fb1819efc47af41906460216ba171"], [3, 3, 1, "", "2:4 b58069d3632126cd1d327344ae6ddc3ea80724b6edb47aae53f655412afbebe2"], [3, 3, 1, "", "1:2 28f8cbea9a3c14d13f591f4f492b25d66fb3fef3471e02a0bce1eb50f219a2fa"], [3, 3, 1, "", "7:23 0132fa4a1bb8914b9f99869812101355d04a8da7aad46c2a3fdb0838b020ca97"], [3, 3, 1, "", "1:5 9738803f2e1cc4b49daa374b470dec9c822944abdddc2d5553cc3a7d2ff81962"], [3, 3, 1, "", "3:3 21fe2e6b23a8c76e0b909cb3bb66d87811b819ce8cae90179b3d73eceff47c01"], [3, 3, 1, "", "1:7 01919a0675796333a57c77739f2e33e59788ca34fb915657ee4300af13e689ff"], [3, 3, 1, "", "6:1 9d8d566bf0cc9c442a6f8caa9750acaad5fd97b2051978a07e83ecde9be6c8ed"], [3, 3, 1, "", "7:38 32dbf2307aedd581270c9472e89c27976e8bafcdef78287e45a2d79c85a0e2fa"], [3, 3, 1, "", "2:11 e918fbab918fabdf9fdbc58cfc78079484a925ab64ba7147cf502d5a1ad77c81"], [3, 3, 1, "", "2:7 b51781ef00cf909b9c6f954d1f3ad0fcde40305f987b06a26fde3bc2fce0cebd"], [3, 3, 1, "", "7:15 c3092ffb4d6f8e51556d11db102ff26ff4a26fcc6d578001ab2367f0466f8681"]], "7.4": [[25, 3, 1, "", "1:7 75d27ef13729037fd83b4022475756231b8ae7d7944805b47de72178a03c8b1a"], [25, 3, 1, "", "1:6 26b8f032dee42ea2be31ad066b7ea126c0a123b1038d4a62f29eb01d10f33637"], [25, 3, 1, "", "1:11 3bb8d78cd408d9dd893e63b174a91171c065d65c7708b50a9d029c3bff7c32b1"], [25, 3, 1, "", "1:5 4b1f204406987d2425c7aa65db5e4321ca60c66f8abe6f59d4b9c954b56369fc"], [25, 3, 1, "", "1:8 d4d542c7748a3c35fbf6025eac3cfaadc015af1b45fc042ee9cdfe0b8b09c0db"], [25, 3, 1, "", "1:3 7495b43c987ba177e81ed96d19821da97b72ed887800433fa2c3b5d3899da923"], [25, 3, 1, "", "1:10 b6c301614db85e9f9a3aa268b8e6ec7397cfd563b3d321bedae74884809dc6ab"], [25, 3, 1, "", "1:4 c27b3a87d8e551f6925166f12702de6c3b84e10e0560e1124e14b34b75af3571"], [25, 3, 1, "", "1:1 2ab496292105588acffc417faa7257c109d7d2599887fea194b6276c78d7d9f9"], [25, 3, 1, "", "1:9 8f845fa5e99e7c007d619bef33689d1b260b69d4631f9648c454ffebb40c4360"], [25, 3, 1, "", "1:2 0802dcedbdb411093a11433793ec2d81046430a75caa08c88a0652e21e3f2b48"]], "2.4.2": [[15, 3, 1, "", "1:1 62ac30b5cfa63f4632a34f11e4698ea67c7ae55a34b3d28b393ca9d5fa086c06"], [15, 3, 1, "", "2:2 f646d235451afad8b859ba4be5f8fb7a8bfd7a81daf561627ab2473cdba57128"], [15, 3, 1, "", "1:2 5e13841395ee1fa0c45128b43036136b6cb4e4916df10822bac39fdbd3793ff4"], [15, 3, 1, "", "1:3 8f22427e1ba53391df74a01e8e153344365f804365f3a68124e8fb15dc383bb6"], [15, 3, 1, "", "2:1 990fc45d4abab0b67d0ef88df0be04d33d65c7522287bb90176a8a85a131faf8"]], "13.2.8": [[1, 3, 1, "", "1:1 b7f82a1f9a690d7f22754bcc39c0c5a7aa96121a1dd60e82b27d66a66723bc28"], [1, 3, 1, "", "2:5 d3ba7cfda60161cb47300e194e3d076342330aae22d93b71577c8de8eaa19e68"], [1, 3, 1, "", "4:2 51be5aebe1c07fea1dd288f810fd58b529feabbb2db4633c447eac8036526b22"], [1, 3, 1, "", "1:2 482470d45ab2936cb24974dba4d6dd68a83506c1c8d812b93b1125611ef28893"], [1, 3, 1, "", "4:1 d914e82b19183ec81ba7ca878ce84320d00af280cfaeebaf06a1bce3ce91dc34"], [1, 3, 1, "", "5:2 c57f5a4e85fdec7a28646b6dac958146ae5ffacab2268b24082814db828cc895"], [1, 3, 1, "", "5:1 ccd312dde256071afed24a8368cb4561a8238f97767345ad8286d082eb213a6e"], [1, 3, 1, "", "5:3 f06497bca4b72dd176f21ed2508cb69fa3833ef6cbd8a4b22af928fc995b81b8"], [1, 3, 1, "", "2:2 c57f6b3b535491797fe56ebb3d700049dd61c9daed4faeabf4b81ff930713d72"], [1, 3, 1, "", "2:6 15633d7af605c9b73e99840c7e31720cc2a83e5731086fef2f9861de505c03ce"], [1, 3, 1, "", "2:3 0f7a33e20540faa9a9f1f692378ac792ba6bdad3b1cae65e1aa6f5f1d46f15ad"], [1, 3, 1, "", "3:2 c2045a082f6a84673475a58ccde2204fadd47f7c6e23407bfaed9319e1242fdd"], [1, 3, 1, "", "3:1 a7056881313a129fd3ec31f81d6d3bb01a2c9d5f56b3d256ff553f5d47df7eda"], [1, 3, 1, "", "2:1 cb9be301d970ad119fddcd5b1aed8838b378d008a99aee3b37680273ef7c2735"], [1, 3, 1, "", "2:4 1f21807e410d91d0bdf2a148125d253f2e11d2ef02a10360f295161deb2db79d"]], "7": [[25, 3, 1, "", "1:2 7c5a50f4fdf5e813f75ac692c03fc8f4b3ef0e7f8d0ee6e1de095293de8bfffb"], [25, 3, 1, "", "4:4 08b9626baa3159ce1dfdeca36fdc64f24594ba26b6b57c9810b67ee7c84c26cb"], [25, 3, 1, "", "2:15 8aa9153a03b15bd583210b61b2721907a729d0f7febdc4e7a31ff91f096d0e47"], [25, 3, 1, "", "1:1 2174a4a8c9a0e42e91119740bc49a39ed632666f931bc9de2607ce70e1542bd8"], [25, 3, 1, "", "1:9 015386deba230b6b14d0f7cf80bf7dfbacb3ff23137205e63509bf82cc10cb4e"], [25, 3, 1, "", "1:6 195d2e43a2cb6b0474fb0ebaa8190f17c133efecdb317ae5ad83e396aaf05e0b"], [25, 3, 1, "", "2:6 436a9f15d2686b36fb1f179b13f38d0cce872399fc6c8d997896182219ca9b12"], [25, 3, 1, "", "4:3 317f39071a5788d82b4865c063b86490996160f886858c0f19fdba967e4204e8"], [25, 3, 1, "", "2:12 14ed04b36fe95b827d15d5985c20be8554b5d34cabcbdcff30e24ab1af96c712"], [25, 3, 1, "", "3:1 c643b7ee2f09d4d661349de57526a0d8f6ba3fa1f1d3cf25ce2abb1ca7ad5487"], [25, 3, 1, "", "2:17 ae3be52255b3602f2d17694a7c90103ed859c959d8b5e8b02d731dd9ee8ac70f"], [25, 3, 1, "", "2:4 db2fb6ad99eb58cdd6f4bdb9e2edeff34b4c9b422e25781877ba2d6267194842"], [25, 3, 1, "", "1:8 9590b37a5fb341bc26220cabf636eb0b9430c183eefc8266362a284afabdcf54"], [25, 3, 1, "", "2:5 61e4575688b23d6d7db99392e1b544003c08b7a838ac8fc1fdad3b1e44ad8ce6"], [25, 3, 1, "", "2:16 adfd4f4616593d54184002394d94d8724adb27b43f0a4ac9b591831eb3d24ce0"], [25, 3, 1, "", "2:14 c16b08cc3a5ca2e215cad78f4c6f8d9d9c03d11b6737b12ca2cf558d58a77b3e"], [25, 3, 1, "", "4:6 4de69432bc744f7df3566698f62d36feec0eb8432fae9503c73491871c1858d3"], [25, 3, 1, "", "4:1 e459e293d2e06ba989b65a863e33bf3d1559d14ba80224385e6471d4187db194"], [25, 3, 1, "", "2:1 1fc950d02b5b3c40129159c65daf7d001e7f01521a71c3d8b8a2058dbe50c167"], [25, 3, 1, "", "2:7 7594d6fedfa7f00a180909cf5235b4243c8be61026a444da258f79f104bdd93f"], [25, 3, 1, "", "2:3 5c1b55de587710b67a5131939b84300663f0c0699041210a7ce0779e6c1a0f65"], [25, 3, 1, "", "2:8 ac1f8731f3004fb8442f085915588c449be8d285a8cae244ac37519247a147c9"], [25, 3, 1, "", "1:3 4716f007f8ab2d62c80effe03cf31b1970b0da6143b16e60aed00dceda659994"], [25, 3, 1, "", "2:2 8c4334c679018baf9392151eb71d12964b85d09d0477dbea3910ea98adb3612f"], [25, 3, 1, "", "1:5 ca441fbadf454d310fef0a445ecd27e40458052ffd2566f775fd1f5d49ab6961"], [25, 3, 1, "", "1:11 18ea98ed7ee862889d2d483387c3b1e28a42e39e9d60b7bbc3e65d9e4deff0a5"], [25, 3, 1, "", "4:5 13806969584a605aded5db6ac700acea4334fa75cce1409689f2cdc10b30c2c8"], [25, 3, 1, "", "2:9 ae7960becaff9d4e85d3aa35ebbfdf4c482ac55566c5938d255ec72bb2cfe41e"], [25, 3, 1, "", "4:2 a56061a790ee2cc114f7f43c891827153cacfdd9d5bbdee36e4db521b6d5fc2f"], [25, 3, 1, "", "2:11 d07bf654cb1e5a9429203f2ebf243ae97b0345768f8f570784f2e53ba60d1a81"], [25, 3, 1, "", "1:7 ea8a4c823672702b1fff3e67be0d3834bfde988e46a4ab82202acfcc2d7b9898"], [25, 3, 1, "", "1:4 ff5ba133064323870b5d011bd88ce9eeacc9f115fdaa6244b44b18ee640a1431"], [25, 3, 1, "", "2:13 0bef3205d769452568c2d9b7420b359b46261b2fd90918adcdf762a9b9d97651"], [25, 3, 1, "", "1:10 916f9839884f7b71825ecd5be8ae92f6b7ab789a916c47ba1a5f366bd8ac4382"], [25, 3, 1, "", "2:10 74a8e2029bbf9068f3842d85c2c37aa40cf499e68bbff4aaad87bbcca3cddcff"]], "13.2.1": [[1, 3, 1, "", "4:1 1df8df023327dd4f97448aabeb73c307d5da815e417c8cba242c9e9bfc721c1d"], [1, 3, 1, "", "4:13 e9b710a4e7a5d951c56b3f75f26e35b7a826e3d5c1958e4e71d5502857541ad0"], [1, 3, 1, "", "4:14 4e93115858ebed6f679bcd9090c45327132a80d56ebcefa7ba556b066fc97d72"], [1, 3, 1, "", "4:20 4bcec9bb92108de19e67a173df0098642ddb36e508bfcd6556bd6ee10daced06"], [1, 3, 1, "", "4:19 f975dc2d5c0c2c15b963eccd4795930fa5cce62aa848ff640e9de66a52ea3cbc"], [1, 3, 1, "", "1:2 e8b558243f7bf0325a129db3b6a9dcfdeaf35a9b8aee0f97064da28323c33ce0"], [1, 3, 1, "", "4:3 e472ceda7230cf454f09e04024a0eaaa04baecb00eb12585de90bdece33f7f1d"], [1, 3, 1, "", "2:3 132910b8fef15bd7f371019b12f4f3ff9e87a2bad1099553cefb639d39ab7d5c"], [1, 3, 1, "", "4:24 9a1429077ce3fd1214a1e364203492d57772729632414f91b3c2cd2f3d0559ac"], [1, 3, 1, "", "4:16 7858b9613091a34085b288d29faa10cc8eba087a29ddb9ec313ffbdd3f6db23e"], [1, 3, 1, "", "4:2 585e4a1fa321aa3303ab0bd5552d8d1721f633efa71ec8860f55edcc75647378"], [1, 3, 1, "", "5:6 5b17e06e43d9f47282dbe761e0e463c0d2b276faa4045afc0ab58815012d19db"], [1, 3, 1, "", "4:9 27fceb61f07a31faf22bccecf31e526e2d22bf0615fbe8998ffcd1dd528e8e35"], [1, 3, 1, "", "2:5 02ef19bf80c5200669e96e008b98fccff3c5fa277c7fad57dece77bdf97528fc"], [1, 3, 1, "", "4:26 c66a6be45c57e16772d12a0c52d3d765424f9d564f839da0cb77fc8c01347d4f"], [1, 3, 1, "", "4:18 a692dae36ad20687143af0ddd8381c71260bb5e4917fbc7b203f47f6e384c986"], [1, 3, 1, "", "4:12 75c3e60c0e86babf3644778265ff04d82086fd20428ca94add2ab7fa29a4b786"], [1, 3, 1, "", "5:1 e23f26c1bdaac35fb187af2c3437a156c142109266b6922552c87a35c4fd7652"], [1, 3, 1, "", "4:15 5140f4b9a43b91808591e2b954a2980ff337e13a4e8335e3e29f7498a06a869e"], [1, 3, 1, "", "2:1 8af34535fc44405dd0d1185fc8ff42acca2853c54da038fc47f8bf644aeedc58"], [1, 3, 1, "", "4:28 55fa6aaa332a37320f9c7223150099eba092430986498c5ae328de57fa2e9487"], [1, 3, 1, "", "3:2 7089a3f20c79b60dbcbc66b2e3df9d1c5911e691c738cd1846adf88d4ac1e68b"], [1, 3, 1, "", "4:7 897555f2c7487adb369d557e88e95f68598fd643686dc9402f4f295226b210f6"], [1, 3, 1, "", "4:23 2765819a612a9117bbe617d8b73b4ff6a353b2f5cd2953bc1c894701ba157e98"], [1, 3, 1, "", "4:5 094f219b2ede048c90c66692b41e7a30763694b917cfced20fa4eb76afc6a626"], [1, 3, 1, "", "2:6 cd14e98a49d9891ed4fcd4b3b9a2704b3acc39acbfd6deb0698c5b2810227f7e"], [1, 3, 1, "", "4:25 dd2313cfedf44267dbb54d88f3314ca7c7076bfc167b691f549028e3e4965bef"], [1, 3, 1, "", "4:17 417c3d70bcfa0a289a99c07935492966631944ffed968fac67820222ee2f9f1d"], [1, 3, 1, "", "2:2 4d894bc4ab40b2e9fb23428a9ce2913d411c123546417eb804e57322674bae21"], [1, 3, 1, "", "4:10 e37b94209979512d83141b81df8da7e950dc0f59ee4df88e7a1977cf6547eb6a"], [1, 3, 1, "", "4:27 2cc4b06fbda49374ef17f4974acd16d167b72b9b46c9b13f70587ab9a098587c"], [1, 3, 1, "", "4:6 78bb46c24f2ca946ed0b4e7c6089e40d13e6c39431bb0fee1bab3542dde16f26"], [1, 3, 1, "", "5:5 ef4fb5367f8b8eec661ad431d7645eeb45c5a5691ee03447d7b267f66d6b2bc7"], [1, 3, 1, "", "4:11 f04d0e556354ad85a7cb772b90a5bea40dfc80d7258b591367ef1c4299bd26cd"], [1, 3, 1, "", "4:22 cbb68dabefc941e4d38db9be75022e8aef69299cd2368f981991501d97245972"], [1, 3, 1, "", "5:2 be22b61cc84fba1c898524be4f927f7ae8b8aec54323ad08f5b3a0d7ae1c6ff9"], [1, 3, 1, "", "3:1 8009c0049e3490fddc7e24a87c11b90f80ecb8de0220062b76efe87d97c52f20"], [1, 3, 1, "", "1:1 fb40c1f17f95fed4bda4668940636f75c4436a94cdf00ee6fd2ae36e0ea1c564"], [1, 3, 1, "", "4:8 eb4568cb53c1a9e06aea725449fa9eba6f2a425e98354dca4df23d483faa90e2"], [1, 3, 1, "", "4:21 2e1bf630eca35a69526f65ac5f8fbdfe0c2f92ca2b3ac6d6be31c9e1440e29a3"], [1, 3, 1, "", "4:29 6743b7e3fdc6f0ff88d22af6ed0826b488e6d15d91849cf2f44fe00b8824ed1c"], [1, 3, 1, "", "5:4 cf4ab277047420d2b26238c76cfc2a3cc9ba2c6e60092568995ceba4e201831f"], [1, 3, 1, "", "4:4 f31211e5b9f382a935e4e483c3fc10fc958066dcb3b64be6772d797738339919"], [1, 3, 1, "", "2:4 c0e37dc273ef977b6bdcb9424c48613b76cb248df209151bdc9e32a5e5e9d029"], [1, 3, 1, "", "5:3 778290a828a1c18436fe29f9d858726e4e341c74a14f532e55779389a4733012"]], "4.14": [[22, 3, 1, "", "2:6 74f5a55b32bebc82b21a7e2a9db5f21b1c14e6be7e935138309af650bb1b5ee1"], [22, 3, 1, "", "2:29 92ec09eb8c13eb5501dd2aa83335c6b18b661577435da0da11d655d174667b7d"], [22, 3, 1, "", "3:3 6bfff075569653189958ff85ac5cf2713c6e2e10a61755e557a5a274114a10f4"], [22, 3, 1, "", "2:17 cf5c8e900ca37acad0bc171bfa0c6b714f1d23d6b8cb493c3038690fdb8ae839"], [22, 3, 1, "", "2:3 9ad41a73cca1f1351639e50cba9344d86cdc286da8a2b7f88955ec691b73c9b7"], [22, 3, 1, "", "2:14 5ef125fa78302d1bd0ab1c9c6ce402e84343ce65094c6dbcaa49f0bd9aad81f8"], [22, 3, 1, "", "2:4 ddfa75fd9e0142c3c367eb0ba02a65e7221d9e86a4ddef947ebbcfa2bf8a4f60"], [22, 3, 1, "", "2:13 cfe83442e8b9e2c97e23204f4e49cab1e49d103de5746c223fe4e5a2f4d47494"], [22, 3, 1, "", "2:31 5375ee031b5992cc2d81fb87c92113aa2df9714381a2516c70a907104f22544f"], [22, 3, 1, "", "3:1 d79a7a7c2d74efad1b16985dc59f37eab43dacda82826ca7822557c72a0932ec"], [22, 3, 1, "", "2:24 e5f06b8eeaab8e4cd33caf943dbf9fe82b844d719bf0985302a75167735ee7fd"], [22, 3, 1, "", "2:41 55f986a2532a84d35f03d42bf891d3f758900a1764931afb6e6748f104d30de0"], [22, 3, 1, "", "2:12 8b26cdf579eba2baed79aeec149c7a4d4277036b4004f66485b0ecade29cd5ad"], [22, 3, 1, "", "2:1 71b5298b738eb859f8cc6f0ef4b99931284871ae39f1bdc321d865a23684d1cd"], [22, 3, 1, "", "2:40 a38f8ae59566df6812eb2e4a65493f7869a7ee5d1490a9ea14cca661e002257a"], [22, 3, 1, "", "3:7 c4bf3768ceb2465a2a096c8aef590aee129db81593c92b2b8d8529e5a0e7fdfa"], [22, 3, 1, "", "2:34 e9ab99af1e3626b5bc2ec4a97eb9b693d57cbf3941d58b50da79a3a97cd65b65"], [22, 3, 1, "", "2:2 737d3ffccd43df4591537722f4458fda52a59fc66125c7bfefb7f5640a36a8bc"], [22, 3, 1, "", "3:6 e2eeb47e603a2757ced1b1b048a74e8c70eff013d072dae88111c56d15f1a50a"], [22, 3, 1, "", "2:36 319beaaf1f1caf0096dba73af40779542bd6c1e51e16900e8189ad49bbf270b7"], [22, 3, 1, "", "2:28 a7da2fd26ad1dfa3533285dad37d02fed2b4908be213a6a3a98775b0c2ebdb51"], [22, 3, 1, "", "1:3 93c72453a949d0ff6dedc23875b1b7d9dbf23442a6be174a4e932b1facdb5265"], [22, 3, 1, "", "2:11 c31d4d2d2e461e81ba0e0d047ad24e21fe792abb8e791776c1087a6004460b67"], [22, 3, 1, "", "2:38 b40dd94eaa2e2861c1ac9a47ac10ee9e80b71b3fce42aa4c362c82feaafaf088"], [22, 3, 1, "", "2:25 42ce008b0a6cfe49436f4f3897238024485cda9f72a13fbfab9b3d7814f4111f"], [22, 3, 1, "", "2:20 a734eb2b309a56c538d9dd9dfb1c4826d69b2288840fcb2d3cd674d2e60ef9c2"], [22, 3, 1, "", "3:2 32d1b793cd39bce611678730276e1b4319fbec6614cd48c07f2d26a1e76e5679"], [22, 3, 1, "", "2:7 1f5b98767e075851c7d070ea2843150c47227558e39872de71e84085c4a044b6"], [22, 3, 1, "", "2:15 d8c93934a67920a9c041b06a6f58c10bca90f62627301c61c512c531cf54b8cb"], [22, 3, 1, "", "2:39 4b83f6d8b60d4cc3f44054e47b3add3b07386dbadb45a3e11809ac73890747d5"], [22, 3, 1, "", "2:46 8b74cbe1bf4dbd256643c98b2f8a49a0f64cb55a7774638a968c045d642880d1"], [22, 3, 1, "", "2:26 90d2a2db73cec5e5c1430778f7c4c4e671046095294db8fca4b4f056f598ef18"], [22, 3, 1, "", "2:21 cad8abc0d81bf2f72b8ee690d6d77d6170b0848acffa5edbfe5137073f871803"], [22, 3, 1, "", "2:8 920a8bda29bfda122db8cdb94e70a6c5a4fd76dc0dcc4e6a47f71c256eed960a"], [22, 3, 1, "", "1:1 89e96b4228d15b001e337309f76928a584c677698e9d8f56c3fd0bf4ef702172"], [22, 3, 1, "", "2:18 288d8383e4a918a8df537e25a4154df2c81df5a683c07e73b4544c524b308ed0"], [22, 3, 1, "", "2:19 cfc97b21efeb749f2447127d8a51da98dc6e41cb501744689a98e040ea67ea73"], [22, 3, 1, "", "2:42 ac51179a778b0f9f9797899d9ef592d947ee84fdc5a06197c3326fcf1bcebda8"], [22, 3, 1, "", "2:43 d108ec536a18cd310c0309f9f0992815ce2c842ccd88899e8bc3b86859afbb92"], [22, 3, 1, "", "2:10 cf9cf2053b0da4ee4b6530a47cadc73a560b803d10402cde9767cf463797e626"], [22, 3, 1, "", "2:44 01dcce0fab7d9e766e601132b4336c4324d2cb983b16cbc83cd69c7fa6031d79"], [22, 3, 1, "", "3:8 4eabb3c647de45efeb944bafbeabae6a318a9325155ef389199603ed1e19acc1"], [22, 3, 1, "", "3:5 ed43d8d7ebdf76d78bd1611b62a5a14e51cc7b74a08399dbbe6a89ca09432165"], [22, 3, 1, "", "2:37 0a0c6af41fd048b6c722a4d47422c162b6d1d238eb34928fd9b8d573a4d1e344"], [22, 3, 1, "", "2:45 46f39fc8f0d7ac26fb707ada2c7d2bb2adf405a080f461715483c86974008ef6"], [22, 3, 1, "", "1:2 b2051972bf09f0bc6966717b054dfab460bc29d92a31477488c0f18205bac5d0"], [22, 3, 1, "", "2:32 7a621c5f9277c4f46a52133620c001507d1ffde9ce5bc9b977dae5382a587119"], [22, 3, 1, "", "2:5 23cf56704ab7dff0f1809d6e8435b4c569536305b94f1a7f05e5b58529ee4a7d"], [22, 3, 1, "", "2:23 9b7e9c4d5c82583cf8a4c06355a662c0499656e0c927ae7d7b2567c8177d654a"], [22, 3, 1, "", "2:35 e44c013173ea636304b228c4399fefdf0e90a39d2d469805209757504b18f9d1"], [22, 3, 1, "", "2:33 198b15c57f80ef7b7004d08d14db0126c5a03181c18d4c5c5d9fb54b608cd93a"], [22, 3, 1, "", "2:9 6b1036112f36ab96e0fba76056076e5a4b5cebf3a68ee27c25399aec62dc6107"], [22, 3, 1, "", "2:30 d15a6c43afbdab395dde7bf007ffaa85c419254890a3a269617d7567fb692360"], [22, 3, 1, "", "2:27 f5d848b029abc9525e976478047895ce24e4ac85a7af51e1f425f22ab5340b9b"], [22, 3, 1, "", "2:22 2215e0ca6e0b0930e0b97655a732b0131268013502b68c2a789b71977bb44466"], [22, 3, 1, "", "3:4 01b2cb5f3106d4540ec427082a3baee106878240cfbf49a243c14625f8e7f690"], [22, 3, 1, "", "2:16 9cb44289a5c32876d21e093980654ac08ef05f7b857ee5acd5f952af4fe5882d"]], "20.2": [[17, 3, 1, "", "3:2 ad536eef612c80a23662ccb5976e09fc7a7cd564b3099362de958cb078de4636"], [17, 3, 1, "", "3:7 85bf012ed3c7f1fe9e724f38a2d891b1697ec17ecde0a3277e037fe496069d6a"], [17, 3, 1, "", "3:10 ae2d00ba71cdeeebcbc5ba13db842b607d9367375f608225d84eeb55ce0afb90"], [17, 3, 1, "", "2:3 77dd4bd0709e93df0c9294bd185bd0cb487a9e1991042f0cb0ecffb5df13bc60"], [17, 3, 1, "", "3:4 65f907abc0b4741ed3d04dfb54bf57f7733475bd00f7eb52a681cf2df6dd26cf"], [17, 3, 1, "", "1:4 1a1931bdd5b2a64999e14fa18b646001ec64e8e677c906ce614ba221a5dbf2c6"], [17, 3, 1, "", "2:10 a284d52790bdad317fdaac6d6bb30541a4dba804471aa74bf317849a3eba4ca2"], [17, 3, 1, "", "2:1 aeee3f491d3c18c862f68c8f41eed353a109270ae1f717f9d5620bd9e311fbc6"], [17, 3, 1, "", "3:3 0e6bc1537645755a80173fb2e360056fe473f07b84fa83e420a2119802b5688e"], [17, 3, 1, "", "2:4 7fa2a69e91d4ee885cc21d70cb2d326b60305f03bba8a17a36209a53457749bb"], [17, 3, 1, "", "1:7 ba0099799988b2f6d17799a6f6f9c33b477183b8eeec921be942c1c46fe6e668"], [17, 3, 1, "", "3:11 130f778e0740bb2eac48f0b045d7c7d7854a7f114684fd426c548a5289d530b9"], [17, 3, 1, "", "3:8 301c590c9b06bc5965288c7611ce54546237f2ab270ad8d08ada06606d3129bf"], [17, 3, 1, "", "1:10 78e85689e473377a80352ef6fe022993d405de27b2c6c0393cc70edc6d40e0e8"], [17, 3, 1, "", "3:12 a9469713d62e5ab294be5b5463896a680482fe532ef2db60c9a17dd040147917"], [17, 3, 1, "", "2:6 d8d72a951c13aa5fe8714a16539462fbbaf7ead2c1ad8ecd97cf3071f5db6ab8"], [17, 3, 1, "", "2:11 81811154b26e520b237186a9289476a52adca1dac91598bea29f6d2f8ad5c0af"], [17, 3, 1, "", "3:6 a67726cd1b3c0fa718910126228b74a584cd8d14685cff5a51c66aecafa25a2e"], [17, 3, 1, "", "1:6 67268d716ea7849d7125350436f4e4a6d5d38effc37ae5216408b2690ab8d033"], [17, 3, 1, "", "3:13 1f2493e72099adeeabdbdb5af0e9a9021fe478c82c788215781e06312b59c4e4"], [17, 3, 1, "", "3:1 a507e2ee0a755f9e9bef9483a14b746466426c98185a2634629bff10acf93070"], [17, 3, 1, "", "2:2 5242e5a075162a366a5adf0a32e20e73a4ed4c93a3b63541a8201de95af0cbfe"], [17, 3, 1, "", "1:9 6e54b9a8b956ed9a206672b6145a346a9d87f0734de85341ef04814529bcee31"], [17, 3, 1, "", "1:3 1d126893f14def3d9f5d85d0190f84dc53a460ce5e6da350afffa20da8714d0b"], [17, 3, 1, "", "1:8 7de42cd159846bf2a84aba1bcaf2c1f39e0a6092c7db776d8abb5854419ee2c1"], [17, 3, 1, "", "2:5 700ee188839152335fdb7422422a37ae9cb40c8bb9bc9940787cd260d61e7276"], [17, 3, 1, "", "2:12 99a2dde0b9166346d32d075006f6fff461527d79389470e64b255fb7a9f63733"], [17, 3, 1, "", "2:7 6a638cc0c5ef1383ed2612ba3ab85735c70a35cbabcde5839d61b426d3411406"], [17, 3, 1, "", "1:5 589f04afe8c234ee2c179f3f0931eaded30292da86287719098525edb953002c"], [17, 3, 1, "", "1:2 195f49e7c5486c12cd274b338a19d3eaa1a19f99570f7ee0b52a3b1eeb90251e"], [17, 3, 1, "", "3:9 db387e1df17fe1b34f0785313cbd032471da2d489046fbbd57783da324ddd87b"], [17, 3, 1, "", "1:1 35211e047d31106ec03bc1b7ccba14cee77f4c950b50ddedbd47d9cbe9dc876f"], [17, 3, 1, "", "2:8 704edbd352cfa964eac3571f6d328a271b59ec3801b0d4deb1b3ff167d9edcbf"], [17, 3, 1, "", "2:9 f217c6bc6e853a2b8556dbc0b41314003eaa542eca75e8a17d1573264d4e2151"], [17, 3, 1, "", "3:5 ef5cb13d4e805e4e81816f26647b316792ceb249829578bfaa57070acb415879"]], "4.13": [[22, 3, 1, "", "1:4 7f14d5ddfe3e2040c798b3f2d8f25e11b0f81f91269a2671aba43d70a8af5063"], [22, 3, 1, "", "1:2 663e533be7fe2c58643b5cb29f1fafabecaebe9a67814b0c45b7339f9d6bce98"], [22, 3, 1, "", "1:8 e083235f159e108c388da479f4936b36dd2295363c8b91b7e278346774955c83"], [22, 3, 1, "", "1:12 b43aecbed94e34ebbf059fd7dd52fc451df0deec59c26167f70142669b8ca293"], [22, 3, 1, "", "1:3 4f932d4a55167c3225e7142ff450c023aa8ab9c2ffd3b2a47def283f52f5f94e"], [22, 3, 1, "", "1:9 2617716de591dde4480a295b243e0b0c274432a579cc5786fce8def72047c033"], [22, 3, 1, "", "1:10 45afe066d5ef3c3b31decbde94b80e2c45c5c03be74022b5c37133f162b2544b"], [22, 3, 1, "", "1:11 d1ce3e872cb3cdd9970e74966c197ed43066d9c21e6b962361276044a54ee9fa"], [22, 3, 1, "", "1:5 9d15230a9c2fcfdf8a4f47962a5d4e7dcb5bb898443fee71fc2974ce3fa2df1b"], [22, 3, 1, "", "1:1 a7dbfe3171723b462343aa8888eb93779e47e2cb6564c4d0b5409518c3d3d3f9"], [22, 3, 1, "", "1:7 5711109d6669d3b8bf4917e6183c03969ae5401cf0c18e9b48a3ed6232f13fd1"], [22, 3, 1, "", "1:6 5e74c4465ead60c8c56f509d76b21f8c91f43c939d7054478a87b61c9e02bd7e"]], "13.2.3": [[1, 3, 1, "", "2:1 a1c77a2b2980c21e6e863dd1b876f7c14683644e96cf49df977a847b4e9e5e1a"], [1, 3, 1, "", "1:1 921207c7548372ce92fdca679bc3476d41831899b57c4e34b13268b01997e0f8"], [1, 3, 1, "", "2:2 0a92a3c710cbd1738e619ab4ed564919e5913e3252de308e5f6f347d1833cea7"], [1, 3, 1, "", "2:3 01d955a36e6ea356f588c104a043bbb024bd45ea952c638344667bf6abc1fc81"]], "13.2.12": [[1, 3, 1, "", "3:4 e7ee08c2d3407ba055bfeec7a59f1c8c56257bf55ff14412206210e1dbbe08a2"], [1, 3, 1, "", "1:2 001e5f299105a44ca3acba687e810549c184a7062f15f48c4c2907feedcd00db"], [1, 3, 1, "", "3:5 2c4a77cf5f2b9daf7f0535ffb85ee39298f774999cb40b3f78672fb5a2bd7a24"], [1, 3, 1, "", "2:3 4b053fefee6cf33683101e489e70e2569e4deb8d7aa26b06a840e03085ddb586"], [1, 3, 1, "", "2:2 0f5bcffb6ab2fd79ab1a1578fd84c818378597bd4bf7bc940dba19ff7cc9de02"], [1, 3, 1, "", "3:3 580975987fb8829aa62f5481e0c98f2f9a739c3d0a5cc0719d34be6815601aa3"], [1, 3, 1, "", "3:2 de64cdcc854596c8cf8a9e3bb1b6312bf4faac5928890297f69918e148a51d43"], [1, 3, 1, "", "3:6 f1ebf979a3ed2dde03dae2e93cc771988c8f5fa634afce4ee6b664c193adc1b4"], [1, 3, 1, "", "3:9 f1e97f65682f7f35e2f314273d3b307d456c7be2cce75abddd4bbacff9429ddc"], [1, 3, 1, "", "3:1 41f8276015dc58f76e82db668219043600611837b52a93fd9dbb18436201041a"], [1, 3, 1, "", "3:8 6bfc6057de86432e2367e8c9682ff52750a502d7bd68f37c400345417f514d4b"], [1, 3, 1, "", "3:10 2799842d7aed69f223fca391a95a67b96cb9d904f240678550cd095843a9163c"], [1, 3, 1, "", "1:1 233bac50acbcf5ce70191e350e3e9d720fd83236b2a754a5846e557024e5fb50"], [1, 3, 1, "", "2:1 bc29bb034a6a845f15d32f52bc63929f460f59dfafc941ba3d3ac7f591786021"], [1, 3, 1, "", "3:7 c19b0501aa117ddef6f66c5dc6c307c9c23cdfb62ecb953be67f2cf7448cda23"]], "13.2.11": [[1, 3, 1, "", "1:1 b627ddaa5ef649b306598dd5f6297c67a76f75ec92d0b5746f31fa0163690273"], [1, 3, 1, "", "2:8 8e4d1d0997dd94de884dbc95268544335e331949cd1d45db0be53a80200a5714"], [1, 3, 1, "", "3:1 7102958597ca2f19205e0e9f7c950d9b597adf5a8c1e6fe96e7661413a02f860"], [1, 3, 1, "", "2:9 7b2ec9db6d8b1c8ace22368047c47d159462712924d519696cffb84e602fcbfc"], [1, 3, 1, "", "3:3 d52e19f42f5927bd34a651b16184a11e9fce5ae8de504bde89af1da5a51e0c59"], [1, 3, 1, "", "1:2 da27332328b097f036a002143a0c62df334d3fafe943281b9e5ac3f53256ac87"], [1, 3, 1, "", "2:6 051e4b8ff27f299cff0e443ea677b2f935831974162b34dba8fd7b30feb610a7"], [1, 3, 1, "", "2:3 7be989fe417f083b8e5dd74846cda7e32d86a89db6194539d9733eb40ba837bc"], [1, 3, 1, "", "2:10 f8d09837569e3e2a9dace1f81b8514e10951252bd8ca780e1a7de6210fc4abe5"], [1, 3, 1, "", "2:2 19a78bf1c35131ec0625e919fd7f92ef2acc5b5986bdae84101d8449b0bf671a"], [1, 3, 1, "", "2:4 12c2336bf9e9b05b5fe0f3bab73c7b1cdb604d082afa1e7984eb3b79f71b3642"], [1, 3, 1, "", "2:1 811d25ac05c366571fee950dbae9130bfedbc07a6e6b74ecfd339fc993199f16"], [1, 3, 1, "", "3:2 b8684eebecaefb67c2e17229476d5544ed6ff0e7e8b51d4b8cab06a169d1541c"], [1, 3, 1, "", "2:7 c82af1ca7021a4e17089b436f3d65889b6c5d9a6e7600fae295b40ff0f0f6ec6"], [1, 3, 1, "", "2:5 a88dbeff7797209a81595c30a58d7f150b9104f217bcef43b2ee461555a5a0ce"]], "13.2.7": [[1, 3, 1, "", "2:2 c1cc259e5bd84ef7201ecf3eea15ae58c6db27ab49f9b20cca614c7397dc0cd0"], [1, 3, 1, "", "2:1 4a50bf4d79c29ee4da73fa4b82e49dbde7e5bb057e6709e84b888a7458ea5356"], [1, 3, 1, "", "1:1 e029467a0536bae96ae25a73cd801fbfc9c8874c35c9cef6110fda5cb0ae9916"], [1, 3, 1, "", "1:2 181e8dbd1bc511f8b6a2fd59595070b2e85422b0c0b2fa446b31cf0408650ba2"]], "16": [[4, 3, 1, "", "2:4 b5c6b6bfc6de8e05e13b1fa486c385523fa6472c257f7c8c4b2b86ec91d6664f"], [4, 3, 1, "", "2:1 7a15948904b2de411b7c6338a4b97095cd8046a23ef8462801fa784b9b75ba03"], [4, 3, 1, "", "1:1 f4d500cf3ddd573cf21ec19b03d0e534bb8caa50bdf5d11eecd095eeaae539f2"], [4, 3, 1, "", "1:2 d0ec8ad699ff1c4778bd35b0577f2de16559c4f7a8a67503e9d8b5ffb3feefe0"], [4, 3, 1, "", "2:2 890c034f6aea73b0142607337332d673a009ec8f47e288cd2cfdab3f5c91cee4"], [4, 3, 1, "", "1:3 df2cd62113f2dc6ca452da3c12891fd958bc64f17397066b0a128c09a0fef520"], [4, 3, 1, "", "2:3 77bbb6c647c37714e1fa9e1f81b3f63485155de50d4d371608e8f006a638a216"], [4, 3, 1, "", "1:4 7ce748762310bab19fffad785d50307098ea7d0e69ac336f7218ce22e6205dfa"]], "4.8": [[22, 3, 1, "", "2:5 80503a5bbbf247afc4589e84831bd9388ca01a63f6f99729d27e31db000127ad"], [22, 3, 1, "", "2:2 3124f0bbb81e269149020178aaf1e90f668b07b973c22882933da2f505d2ecc5"], [22, 3, 1, "", "1:1 9013893b3cd5acfa5451f4ad18860a989a9ad70cd891c50e846503ea7f274dcf"], [22, 3, 1, "", "2:4 8afd9b150960eee9cad7ad77a00f4d78e50ae87ac73c9a1198b12f79aa8ff09e"], [22, 3, 1, "", "1:3 0dc7132c60e97eae3fe8c4763fb5b0ee4e27b69d33014e5a64c902c25e992bba"], [22, 3, 1, "", "1:2 16cb713fd246c7e18f528a4ffd5338a0fbce00bff8b4aa68d64f137a4d38b4c1"], [22, 3, 1, "", "2:3 6257637cc04d7a1e7f32788a155b69595ebd5872f7e7366b15a24bc0cb01c3ec"], [22, 3, 1, "", "2:1 7e198679726fb24effe560d32f6ed44994be67d60bad4c175f3da2c84b40b0d9"]], "20.4": [[17, 3, 1, "", "2:17 7b97106af69b3585b467ae757b209987fcfa719d9d0056adfca9fbc914a2d73b"], [17, 3, 1, "", "2:15 924ac328fa7b1c896d1efd435201562db8738164a53715c1956c4c2da5a4012c"], [17, 3, 1, "", "2:8 c46a8e07cda751526560f7fc97ae3c1b78414ebc17c1ce3cd210620619ebbf25"], [17, 3, 1, "", "2:14 4f0f8d199b56a8e97493384b9448af0cf2c03e0ee0924725a9973869747db80f"], [17, 3, 1, "", "2:10 928fa72878c7bba4b1bce0f51d05314cb2480974eb15a3baa42edf4802016c4b"], [17, 3, 1, "", "2:6 ccd3909779e2ae52e078ac9ec0171a31569a1a5f27a764f1116aa514d4ab1e76"], [17, 3, 1, "", "2:13 ffbe98be6393f55c5b73a7849f41caadf322b1ac4e018fa42c59e7305db89820"], [17, 3, 1, "", "2:5 5c84ed6a518944136878abb4c88f566d332adfa28adc88939272040b8b6376d9"], [17, 3, 1, "", "2:3 3a3dab26920d694cfc94f0c1b2f51523cd3b42dbae5b61643d7c56834c7220cf"], [17, 3, 1, "", "2:4 0138c8400ce4f71c65b6aa2722efe3060cbd1d41df1c72e0d5f3b34a20f300b5"], [17, 3, 1, "", "2:16 7c1fe9eccd483e7a420e8b7c1d1c1164588a91adea0ff813953d9cf07171ea38"], [17, 3, 1, "", "2:2 3a923fd62e7cb8e223448548b2aa38404e63cc3e8b41254c70fa1d13076ad338"], [17, 3, 1, "", "2:19 30c1a84b2185098caed8510493324650b62ebcbc98651ffdef52e7656b859109"], [17, 3, 1, "", "2:7 cfa58e13c7d71f34271957f476e066a784af6a8ed0072bb215252e5c076b03c3"], [17, 3, 1, "", "2:12 b20e0ffba294f223744cb483c484961c3e57930764952f5beab1e3448b7f8cde"], [17, 3, 1, "", "2:1 0625ef0bcc1537bbd7e48bbb52e650fac001e4ce41c99c213d6d9c46b45e74e0"], [17, 3, 1, "", "2:11 923b9e5ad7c41a86ba16ba5fc020547055484598d353ee7d4600ac28f7464960"], [17, 3, 1, "", "2:18 a990d3628235419098482e04aad2d699f6205b88761be1c1cea45b6dad882cd1"], [17, 3, 1, "", "2:9 89ea10945ee36c0a8d05b165f2dab20d4778edf60bc0f8b3696a46d9199743b8"], [17, 3, 1, "", "1:1 6b8396da1325228a967d0d28720f37811bfec9f46d17c5b5d20ab8838236c8d1"]], "2.6": [[15, 3, 1, "", "3:2 c2adb1a3f82e557d2e62b7aa4e734ce8a14427d039fd743bf82710befacdae6a"], [15, 3, 1, "", "1:1 8394e357df5177d8ada084b53fdd141fc0e1a1ca7b937b28a47415ac0dce750f"], [15, 3, 1, "", "3:1 507c02a61084d5e2447a4401c3c9ff54ecfb2b0e46adf98b0e9f96d5fbcd8eb7"], [15, 3, 1, "", "3:3 7190ee3532730e20b19057227f945e1ad04d6f993bc33984e2dad01773e09ab2"], [15, 3, 1, "", "3:4 dc15f002b42ce194ade6b4b0f4f6b5ca7bb28176b493eac737f309f66b3e42da"], [15, 3, 1, "", "2:1 3f05a14ae9bd0f2dcdc7c65c76de451ed9485badef6dc6bb29c3fae69124e92d"]], "13.2.10": [[1, 3, 1, "", "1:3 63933d48ff890b9977fb1e7739ec4a0c3fce66da852cfc19921e9fef4c0c30c6"], [1, 3, 1, "", "1:2 81930ef591f96d6b1e90e5ad685dadeadd18244ffd6bf2b93e1e564d00df7002"], [1, 3, 1, "", "2:2 812969d17f6cf1c8f09c3aa7e496056b918a7936c5656724b5023957f1a6480d"], [1, 3, 1, "", "2:5 55f1527bb22419e4a271f37b4ddc4109e3478e34cbcaf56381afe6e82f4ff76a"], [1, 3, 1, "", "2:1 bf65af2170c2fce6c798624dc20ef98cdd4c56ba8a6d771db6d63c5b33b9fe50"], [1, 3, 1, "", "1:1 78b6ef76a225f8a6314dbb484e5f6c33a4323ad9202816ead2f71474e4fcdc82"], [1, 3, 1, "", "2:3 c0823a0a3da1888952864c8a1e51dcb076f7acb24133027a4c96805704a36b87"], [1, 3, 1, "", "2:4 be41407d903f76e4c4f3bb28728743dc02d28c58b2abb01664514d25f6707420"]], "13.2": [[1, 3, 1, "", "4:1 3211f6c48f79ae56d33f1f9bacd442f463c800f82da1ca3bc76e3afbd75c27ea"]], "13.2.2": [[1, 3, 1, "", "1:9 fbaba2bbfc24b35f86a4f7dd04dbe8282ddf984c2d109a9ee52a777dc8b3360f"], [1, 3, 1, "", "1:2 58fc80fa15a48bf125434201acfd61890abb0876c32f33ee234150c5a2db53fa"], [1, 3, 1, "", "1:6 b1317fa9240a0683317601af9dbd0d64b3bdfb9f8516093a3aa3febe38ef4940"], [1, 3, 1, "", "2:1 d4c02f4ddc98da8bafd4fc43fb7cb00dc77d84e6b42cf83332e1d8ab9e29250f"], [1, 3, 1, "", "1:5 0a8af2d1ed68a8e58507a513800cba27fe171d005323ccf9b1dea50098d45eda"], [1, 3, 1, "", "2:2 58b7d08514f893172d59bfa69761494f4bb62b45412529d75cd3eb80fe2a6e9d"], [1, 3, 1, "", "1:4 e3e52c127b3a45a28120d4a22599dc479401160fd2ab551667790d586a58ed83"], [1, 3, 1, "", "1:8 7b842e2904a1bd499fdf9166a26058c88d4357ca86b54fce379427f3db4f6c87"], [1, 3, 1, "", "1:1 8ce58553238726c00673ba1eb2613f145c385fd18764cfb47b1674bfa60a342b"], [1, 3, 1, "", "1:7 c678d8736b809e8b047bb8dec6b729baecd22ff0dc7cfca0cea327a1174294dc"], [1, 3, 1, "", "1:3 20bbdb81e00aa2ce6e15572b261930193367b58565a11d3b7df5fe4d2fb92058"]]}, "objtypes": {"0": "spec:term", "1": "spec:syntaxes", "2": "spec:code_terms", "3": "spec:paragraph"}, "objnames": {"0": ["spec", "term", "Specification term"], "1": ["spec", "syntaxes", "Specification syntactic category"], "2": ["spec", "code_terms", "Specification programmatic construct"], "3": ["spec", "paragraph", "Specification paragraph"]}, "titleterms": {"associ": [0, 10], "item": [0, 3, 10, 14, 22], "attribut": [1, 10, 17], "properti": 1, "built": [1, 10], "code": [1, 10], "gener": [1, 3, 8, 9, 10], "cold": 1, "inlin": [1, 10, 13], "no_builtin": 1, "target_featur": 1, "track_cal": 1, "condit": [1, 10, 20], "compil": [1, 10, 20], "cfg": 1, "cfg_attr": 1, "deriv": [1, 10, 17], "automatically_deriv": 1, "diagnost": 1, "document": 1, "doc": [1, 10], "foreign": [1, 10], "function": [1, 6, 7, 10, 17, 22], "interfac": [1, 10], "crate_nam": 1, "crate_typ": 1, "export_nam": 1, "link": 1, "link_nam": 1, "link_sect": 1, "link_ordin": 1, "no_link": 1, "no_main": 1, "no_mangl": 1, "repr": 1, "us": [1, 3, 10], "limit": 1, "recursion_limit": 1, "type_length_limit": 1, "macro": [1, 3, 10, 13, 17], "macro_export": 1, "macro_us": 1, "proc_macro": 1, "proc_macro_attribut": 1, "proc_macro_der": 1, "modul": [1, 10, 20], "path": [1, 3, 5, 10, 19], "prelud": [1, 3, 10], "no_implicit_prelud": 1, "no_std": 1, "runtim": 1, "global_alloc": 1, "panic_handl": 1, "windows_subsystem": 1, "test": 1, "ignor": 1, "should_pan": 1, "type": [1, 3, 5, 10, 22], "non_exhaust": 1, "concurr": 2, "send": [2, 10], "sync": [2, 10], "atom": [2, 10], "asynchron": 2, "comput": 2, "entiti": [3, 10], "resolut": [3, 10], "visibl": [3, 10], "scope": [3, 8, 10, 18], "bind": [3, 10, 19], "paramet": [3, 9, 10, 13, 22], "label": [3, 5, 10], "self": [3, 10], "textual": [3, 10], "hierarchi": [3, 10], "namespac": [3, 10], "import": [3, 10, 20], "shadow": [3, 10], "field": [3, 5, 10], "method": [3, 5, 8, 10], "call": [3, 5, 10], "simpl": [3, 10, 15], "express": [3, 5, 10, 21], "except": 4, "error": [4, 5, 10], "panic": [4, 10], "abort": [4, 10], "classif": [5, 22], "assigne": [5, 10], "constant": [5, 10, 25], "diverg": [5, 10], "place": [5, 10], "valu": [5, 10, 25], "liter": [5, 10, 15, 19], "block": [5, 6, 10], "async": [5, 10], "name": [5, 10], "unsaf": [5, 10], "oper": [5, 10], "borrow": [5, 10, 18], "derefer": [5, 10], "propag": [5, 10], "negat": [5, 10], "arithmet": [5, 10], "bit": [5, 10], "comparison": [5, 10], "lazi": [5, 10], "boolean": [5, 10, 15], "cast": [5, 10], "assign": [5, 10], "basic": [5, 10], "destructur": [5, 10], "compound": [5, 10], "underscor": [5, 10, 19], "parenthes": [5, 10, 19, 22], "arrai": [5, 10, 22], "index": [5, 10], "tupl": [5, 10, 19, 22], "struct": [5, 10, 19, 22], "invoc": [5, 10, 17], "conform": [5, 8, 9, 10, 11], "access": [5, 10], "closur": [5, 10, 22], "loop": [5, 10], "For": 5, "infinit": [5, 10], "while": [5, 10], "let": [5, 10, 21], "break": [5, 10], "continu": [5, 10], "rang": [5, 10, 19], "If": 5, "match": [5, 10, 17, 19], "return": [5, 10], "await": [5, 10], "preced": [5, 10], "captur": [5, 10], "overflow": [5, 10], "ffi": [6, 10], "abi": [6, 10, 13], "extern": [6, 10], "static": [6, 10, 22, 25], "extent": 8, "structur": [8, 10, 20, 22], "descript": 8, "syntax": 8, "notat": 8, "version": 8, "definit": [8, 10], "where": [9, 10], "claus": [9, 10], "argument": [9, 10, 13], "glossari": 10, "clobber": [10, 13], "kind": 10, "abstract": [10, 22], "data": [10, 22], "activ": 10, "addit": 10, "adjust": 10, "operand": 10, "align": 10, "all": 10, "configur": 10, "predic": 10, "anonym": 10, "ani": 10, "applic": 10, "binari": 10, "ariti": 10, "element": [10, 15], "constructor": 10, "repetit": [10, 17], "assembli": [10, 13], "direct": [10, 13], "instruct": [10, 13], "option": [10, 13], "implement": [10, 11], "trait": [10, 22], "project": 10, "control": 10, "flow": 10, "boundari": 10, "content": [10, 12], "auto": 10, "base": 10, "initi": [10, 18], "crate": [10, 20], "mode": [10, 19], "pattern": [10, 19], "xor": 10, "comment": [10, 15], "bool": [10, 22], "bound": [10, 22], "byte": [10, 15], "string": [10, 15], "c": 10, "represent": [10, 22], "sign": 10, "int": 10, "site": 10, "hygien": [10, 17], "calle": 10, "target": 10, "environ": 10, "char": [10, 22], "charact": [10, 15], "bodi": 10, "point": [10, 22], "root": [10, 20], "concret": 10, "condition": 10, "sourc": [10, 20], "context": 10, "promot": [10, 25], "constrain": 10, "construct": 10, "constructe": 10, "contain": 10, "copi": 10, "indic": [10, 12], "public": 10, "modifi": [10, 13], "dangl": 10, "race": 10, "decim": 10, "declar": [10, 17], "deconstructe": 10, "default": 10, "chain": 10, "destruct": [10, 18], "destructor": [10, 18], "discrimin": 10, "variabl": [10, 25], "divis": 10, "drop": [10, 18], "order": [10, 18], "extens": [10, 18], "dynam": 10, "size": 10, "elabor": 10, "elid": 10, "lifetim": [10, 22], "els": 10, "empti": 10, "statement": [10, 21], "enum": [10, 22], "variant": 10, "equal": [10, 22], "escap": 10, "evalu": 10, "execut": 10, "explicit": 10, "regist": [10, 13], "explicitli": 10, "export": 10, "without": 10, "f32": 10, "f64": 10, "fat": 10, "pointer": [10, 22], "list": [10, 23], "selector": 10, "final": 10, "arm": 10, "fix": 10, "float": [10, 15, 22], "suffix": 10, "fragment": 10, "specifi": 10, "full": 10, "elis": [10, 22], "qualifi": 10, "signatur": 10, "like": [10, 17], "fundament": 10, "futur": 10, "substitut": 10, "alia": 10, "union": [10, 22], "glob": 10, "global": 10, "greater": 10, "than": 10, "half": 10, "open": 10, "hexadecim": 10, "higher": 10, "rank": 10, "i8": 10, "i16": 10, "i32": 10, "i64": 10, "i128": 10, "identifi": [10, 15, 19], "immut": 10, "raw": [10, 15, 22], "refer": [10, 16, 18, 19, 22], "impl": [10, 22], "header": [10, 22], "coher": [10, 11], "implicit": 10, "implicitli": 10, "impli": 10, "inclus": 10, "incomplet": 10, "deconstructor": 10, "indirect": [10, 22], "inert": 10, "infer": [10, 22], "inher": 10, "inner": 10, "line": 10, "input": 10, "output": 10, "integ": [10, 15, 22], "interior": [10, 22], "mutabl": [10, 22], "intermedi": 10, "irrefut": 10, "isiz": 10, "iter": 10, "keyword": [10, 15], "layout": [10, 22], "left": 10, "less": 10, "lexic": [10, 15], "librari": 10, "local": 10, "expans": [10, 17], "matcher": 10, "transcript": [10, 17], "rule": [10, 17], "transcrib": 10, "main": 10, "guard": 10, "metavari": [10, 17], "mix": 10, "move": 10, "multi": 10, "segment": 10, "multipl": 10, "nan": 10, "box": 10, "nest": 10, "never": [10, 22], "non": 10, "null": 10, "numer": [10, 15, 22], "object": [10, 22], "safe": 10, "safeti": [10, 22], "obsolet": 10, "octal": 10, "opt": 10, "out": 10, "outer": 10, "outlin": 10, "outliv": 10, "overlap": 10, "owner": 10, "ownership": [10, 18], "partial": 10, "pass": [10, 18], "convent": [10, 18], "altern": 10, "plane": 10, "posit": 10, "primit": 10, "privat": 10, "proc": 10, "procedur": [10, 17], "punctuat": [10, 15], "pure": 10, "high": 10, "low": 10, "from": 10, "reachabl": 10, "receiv": 10, "record": [10, 19], "recurs": [10, 22], "refut": [10, 19], "class": [10, 13], "remaind": 10, "renam": 10, "repeat": 10, "reserv": [10, 15], "rest": [10, 19], "right": 10, "rustc": 10, "invari": 10, "scalar": [10, 22], "select": 10, "separ": [10, 15], "sequenc": [10, 22], "share": 10, "shift": 10, "shorthand": 10, "prefix": 10, "singl": 10, "slice": [10, 19, 22], "file": [10, 20], "str": [10, 22], "strict": [10, 15], "subexpress": 10, "subject": 10, "subpattern": 10, "subtract": 10, "subtrait": 10, "subtyp": [10, 22], "super": 10, "supertrait": 10, "syntact": 10, "categori": 10, "tail": 10, "temporari": [10, 25], "termin": 10, "thin": 10, "token": [10, 17], "transpar": 10, "trivial": 10, "ascript": 10, "coercion": [10, 22], "specif": [10, 12], "unif": [10, 22], "u8": 10, "u16": 10, "u32": 10, "u64": 10, "u128": 10, "unari": 10, "undefin": [10, 23], "behavior": [10, 23], "under": 10, "unhygien": 10, "unicod": 10, "unifi": 10, "uniqu": 10, "unit": 10, "unnam": 10, "unqualifi": 10, "rust": [10, 16], "unsafeti": [10, 24], "unsign": 10, "unsiz": 10, "unsuffix": 10, "usiz": 10, "valid": 10, "variad": 10, "part": 10, "varianc": [10, 22], "weak": [10, 15], "whitespac": 10, "zero": 10, "ferrocen": 12, "languag": 12, "appendic": 12, "tabl": 12, "support": 13, "asm": 13, "global_asm": 13, "set": 15, "licens": 16, "ada": 16, "manual": 16, "copyright": 16, "notic": 16, "apach": 16, "mit": 16, "program": 20, "other": 22, "alias": 22, "model": 22}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "ferrocene_spec": "1", "sphinx": 57}, "alltitles": {"Ferrocene Language Specification": [[12, "ferrocene-language-specification"]], "Contents:": [[12, null]], "Appendices:": [[12, null]], "Indices and tables": [[12, "indices-and-tables"]], "Inline Assembly": [[13, "inline-assembly"]], "Registers": [[13, "registers"]], "Register Classes": [[13, "register-classes"]], "Register Arguments": [[13, "register-arguments"]], "Assembly Instructions": [[13, "assembly-instructions"]], "Register Parameter Modifiers": [[13, "register-parameter-modifiers"]], "Directive Support": [[13, "directive-support"]], "ABI Clobbers": [[13, "abi-clobbers"]], "Assembly Options": [[13, "assembly-options"]], "Macros asm and global_asm": [[13, "macros-asm-and-global-asm"]], "Items": [[14, "items"]], "Macros": [[17, "macros"]], "Declarative Macros": [[17, "declarative-macros"]], "Metavariables": [[17, "metavariables"]], "Repetition": [[17, "repetition"]], "Procedural Macros": [[17, "procedural-macros"]], "Function-like Macros": [[17, "function-like-macros"]], "Derive Macros": [[17, "derive-macros"]], "Attribute Macros": [[17, "attribute-macros"]], "Macro Invocation": [[17, "macro-invocation"]], "Macro Expansion": [[17, "macro-expansion"]], "Macro Matching": [[17, "macro-matching"]], "Rule Matching": [[17, "rule-matching"]], "Token Matching": [[17, "token-matching"]], "Macro Transcription": [[17, "macro-transcription"]], "Hygiene": [[17, "hygiene"]], "Licenses": [[16, "licenses"]], "Ada Reference Manual Copyright Notice": [[16, "ada-reference-manual-copyright-notice"]], "Rust Reference Apache License": [[16, "rust-reference-apache-license"]], "Rust Reference MIT License": [[16, "rust-reference-mit-license"]], "Lexical Elements": [[15, "lexical-elements"]], "Character Set": [[15, "character-set"]], "Lexical Elements, Separators, and Punctuation": [[15, "lexical-elements-separators-and-punctuation"]], "Identifiers": [[15, "fls-21vnag69kbwe"]], "Literals": [[15, "literals"]], "Byte Literals": [[15, "byte-literals"]], "Byte String Literals": [[15, "byte-string-literals"]], "Simple Byte String Literals": [[15, "simple-byte-string-literals"]], "Raw Byte String Literals": [[15, "raw-byte-string-literals"]], "Numeric Literals": [[15, "numeric-literals"]], "Integer Literals": [[15, "integer-literals"]], "Float Literals": [[15, "float-literals"]], "Character Literals": [[15, "character-literals"]], "String Literals": [[15, "string-literals"]], "Simple String Literals": [[15, "simple-string-literals"]], "Raw String Literals": [[15, "raw-string-literals"]], "Boolean Literals": [[15, "boolean-literals"]], "Comments": [[15, "comments"]], "Keywords": [[15, "keywords"]], "Strict Keywords": [[15, "strict-keywords"]], "Reserved Keywords": [[15, "reserved-keywords"]], "Weak Keywords": [[15, "weak-keywords"]], "Unsafety": [[24, "unsafety"]], "Values": [[25, "values"]], "Constants": [[25, "constants"]], "Statics": [[25, "statics"]], "Temporaries": [[25, "temporaries"]], "Variables": [[25, "variables"]], "Constant Promotion": [[25, "constant-promotion"]], "Types and Traits": [[22, "types-and-traits"]], "Types": [[22, "types"]], "Type Classification": [[22, "type-classification"]], "Scalar Types": [[22, "scalar-types"]], "Bool Type": [[22, "bool-type"]], "Char Type": [[22, "char-type"]], "Numeric Types": [[22, "numeric-types"]], "Floating Point Types": [[22, "floating-point-types"]], "Integer Types": [[22, "integer-types"]], "Sequence Types": [[22, "sequence-types"]], "Array Types": [[22, "array-types"]], "Slice Types": [[22, "slice-types"]], "Str Type": [[22, "str-type"]], "Tuple Types": [[22, "tuple-types"]], "Abstract Data Types": [[22, "abstract-data-types"]], "Enum Types": [[22, "enum-types"]], "Struct Types": [[22, "struct-types"]], "Union Types": [[22, "union-types"]], "Function Types": [[22, "function-types"]], "Closure Types": [[22, "closure-types"]], "Function Item Types": [[22, "function-item-types"]], "Indirection Types": [[22, "indirection-types"]], "Function Pointer Types": [[22, "function-pointer-types"]], "Raw Pointer Types": [[22, "raw-pointer-types"]], "Reference Types": [[22, "reference-types"]], "Trait Types": [[22, "trait-types"]], "Impl Trait Types": [[22, "impl-trait-types"]], "Trait Object Types": [[22, "trait-object-types"]], "Other Types": [[22, "other-types"]], "Inferred Types": [[22, "inferred-types"]], "Type Parameters": [[22, "type-parameters"]], "Never Type": [[22, "never-type"]], "Parenthesized Types": [[22, "parenthesized-types"]], "Type Aliases": [[22, "type-aliases"]], "Representation": [[22, "representation"]], "Type Layout": [[22, "type-layout"]], "Type Representation": [[22, "type-representation"]], "Enum Type Representation": [[22, "enum-type-representation"]], "Struct Type Representation": [[22, "struct-type-representation"]], "Union Type Representation": [[22, "union-type-representation"]], "Type Model": [[22, "type-model"]], "Recursive Types": [[22, "recursive-types"]], "Type Unification": [[22, "type-unification"]], "Type Coercion": [[22, "type-coercion"]], "Structural Equality": [[22, "structural-equality"]], "Interior Mutability": [[22, "interior-mutability"]], "Type Inference": [[22, "type-inference"]], "Traits": [[22, "traits"]], "Object Safety": [[22, "object-safety"]], "Trait and Lifetime Bounds": [[22, "trait-and-lifetime-bounds"]], "Lifetimes": [[22, "lifetimes"]], "Subtyping and Variance": [[22, "subtyping-and-variance"]], "Lifetime Elision": [[22, "lifetime-elision"]], "Function Lifetime Elision": [[22, "function-lifetime-elision"]], "Static Lifetime Elision": [[22, "static-lifetime-elision"]], "Trait Object Lifetime Elision": [[22, "trait-object-lifetime-elision"]], "Impl Header Lifetime Elision": [[22, "impl-header-lifetime-elision"]], "List of undefined behavior": [[23, "list-of-undefined-behavior"]], "Patterns": [[19, "patterns"]], "Refutability": [[19, "refutability"]], "Identifier Patterns": [[19, "fls-7bxv8lybxm18"]], "Literal Patterns": [[19, "literal-patterns"]], "Parenthesized Patterns": [[19, "parenthesized-patterns"]], "Path Patterns": [[19, "path-patterns"]], "Range Patterns": [[19, "range-patterns"]], "Reference Patterns": [[19, "reference-patterns"]], "Rest Patterns": [[19, "rest-patterns"]], "Slice Patterns": [[19, "slice-patterns"]], "Struct Patterns": [[19, "struct-patterns"]], "Record Struct Patterns": [[19, "record-struct-patterns"]], "Tuple Struct Patterns": [[19, "tuple-struct-patterns"]], "Tuple Patterns": [[19, "tuple-patterns"]], "Underscore Patterns": [[19, "underscore-patterns"]], "Binding Modes": [[19, "binding-modes"]], "Pattern Matching": [[19, "pattern-matching"]], "Identifier Pattern Matching": [[19, "fls-vnai6ag4qrdb"]], "Literal Pattern Matching": [[19, "literal-pattern-matching"]], "Parenthesized Pattern Matching": [[19, "parenthesized-pattern-matching"]], "Path Pattern Matching": [[19, "path-pattern-matching"]], "Range Pattern Matching": [[19, "range-pattern-matching"]], "Reference Pattern Matching": [[19, "reference-pattern-matching"]], "Slice Pattern Matching": [[19, "slice-pattern-matching"]], "Record Struct Pattern Matching": [[19, "record-struct-pattern-matching"]], "Tuple Struct Pattern Matching": [[19, "tuple-struct-pattern-matching"]], "Tuple Pattern Matching": [[19, "tuple-pattern-matching"]], "Underscore Pattern Matching": [[19, "underscore-pattern-matching"]], "Program Structure and Compilation": [[20, "program-structure-and-compilation"]], "Source Files": [[20, "source-files"]], "Modules": [[20, "modules"]], "Crates": [[20, "crates"]], "Crate Imports": [[20, "crate-imports"]], "Compilation Roots": [[20, "compilation-roots"]], "Conditional Compilation": [[20, "conditional-compilation"]], "Statements": [[21, "statements"]], "Let Statements": [[21, "let-statements"]], "Expression Statements": [[21, "expression-statements"]], "Ownership and Destruction": [[18, "ownership-and-destruction"]], "Ownership": [[18, "ownership"]], "Initialization": [[18, "initialization"]], "References": [[18, "references"]], "Borrowing": [[18, "borrowing"]], "Passing Conventions": [[18, "passing-conventions"]], "Destruction": [[18, "destruction"]], "Destructors": [[18, "destructors"]], "Drop Scopes": [[18, "drop-scopes"]], "Drop Scope Extension": [[18, "drop-scope-extension"]], "Drop Order": [[18, "drop-order"]], "Functions": [[7, "functions"]], "FFI": [[6, "ffi"], [10, "ffi"]], "ABI": [[6, "abi"], [10, "abi"]], "External Blocks": [[6, "external-blocks"]], "External Functions": [[6, "external-functions"]], "External Statics": [[6, "external-statics"]], "Glossary": [[10, "glossary"]], "ABI clobber": [[10, "abi-clobber"]], "ABI kind": [[10, "abi-kind"]], "abort": [[10, "abort"]], "abstract data type": [[10, "abstract-data-type"]], "active attribute": [[10, "active-attribute"]], "addition assignment": [[10, "addition-assignment"]], "addition assignment expression": [[10, "addition-assignment-expression"]], "addition expression": [[10, "addition-expression"]], "adjusted call operand": [[10, "adjusted-call-operand"]], "alignment": [[10, "alignment"]], "all configuration predicate": [[10, "all-configuration-predicate"]], "anonymous loop expression": [[10, "anonymous-loop-expression"]], "anonymous return type": [[10, "anonymous-return-type"]], "anonymous type parameter": [[10, "anonymous-type-parameter"]], "any configuration predicate": [[10, "any-configuration-predicate"]], "Application Binary Interface": [[10, "application-binary-interface"]], "argument operand": [[10, "argument-operand"]], "arithmetic expression": [[10, "arithmetic-expression"]], "arithmetic operator": [[10, "arithmetic-operator"]], "arithmetic overflow": [[10, "arithmetic-overflow"]], "arity": [[10, "arity"]], "array": [[10, "array"]], "array element constructor": [[10, "array-element-constructor"]], "array expression": [[10, "array-expression"]], "array repetition constructor": [[10, "array-repetition-constructor"]], "array type": [[10, "array-type"]], "assembly code block": [[10, "assembly-code-block"]], "assembly directive": [[10, "assembly-directive"]], "assembly instruction": [[10, "assembly-instruction"]], "assembly option": [[10, "assembly-option"]], "assigned operand": [[10, "assigned-operand"]], "assignee expression": [[10, "assignee-expression"]], "assignee operand": [[10, "assignee-operand"]], "assignment": [[10, "assignment"]], "assignment expression": [[10, "assignment-expression"]], "associated constant": [[10, "associated-constant"]], "associated function": [[10, "associated-function"]], "associated implementation constant": [[10, "associated-implementation-constant"]], "associated implementation function": [[10, "associated-implementation-function"]], "associated implementation type": [[10, "associated-implementation-type"]], "associated item": [[10, "associated-item"]], "associated trait constant": [[10, "associated-trait-constant"]], "associated trait function": [[10, "associated-trait-function"]], "associated trait implementation item": [[10, "associated-trait-implementation-item"]], "associated trait item": [[10, "associated-trait-item"]], "associated trait type": [[10, "associated-trait-type"]], "associated type": [[10, "associated-type"]], "associated type projection": [[10, "associated-type-projection"]], "associativity": [[10, "associativity"]], "async block": [[10, "async-block"]], "async block expression": [[10, "async-block-expression"]], "async control flow boundary": [[10, "async-control-flow-boundary"]], "async function": [[10, "async-function"]], "atomic": [[10, "atomic"]], "atomic type": [[10, "atomic-type"]], "attribute": [[10, "attribute"]], "attribute content": [[10, "attribute-content"]], "attribute macro": [[10, "attribute-macro"]], "auto trait": [[10, "auto-trait"]], "await expression": [[10, "await-expression"]], "base initializer": [[10, "base-initializer"]], "basic assignment": [[10, "basic-assignment"]], "binary crate": [[10, "binary-crate"]], "binary literal": [[10, "binary-literal"]], "binary operator": [[10, "binary-operator"]], "binding": [[10, "binding"]], "binding argument": [[10, "binding-argument"]], "binding mode": [[10, "binding-mode"]], "binding pattern": [[10, "binding-pattern"]], "binding scope": [[10, "binding-scope"]], "bit and assignment": [[10, "bit-and-assignment"]], "bit and assignment expression": [[10, "bit-and-assignment-expression"]], "bit and expression": [[10, "bit-and-expression"]], "bit expression": [[10, "bit-expression"]], "bit or assignment": [[10, "bit-or-assignment"]], "bit or assignment expression": [[10, "bit-or-assignment-expression"]], "bit or expression": [[10, "bit-or-expression"]], "bit xor assignment": [[10, "bit-xor-assignment"]], "bit xor assignment expression": [[10, "bit-xor-assignment-expression"]], "bit xor expression": [[10, "bit-xor-expression"]], "block comment": [[10, "block-comment"]], "block expression": [[10, "block-expression"]], "bool": [[10, "bool"]], "boolean literal": [[10, "boolean-literal"]], "borrow": [[10, "borrow"]], "borrow expression": [[10, "borrow-expression"]], "borrowed": [[10, "borrowed"]], "borrowing": [[10, "borrowing"]], "bound": [[10, "bound"]], "bound pattern": [[10, "bound-pattern"]], "break expression": [[10, "break-expression"]], "break type": [[10, "break-type"]], "break value": [[10, "break-value"]], "built-in attribute": [[10, "built-in-attribute"]], "built-in trait": [[10, "built-in-trait"]], "byte literal": [[10, "byte-literal"]], "byte string literal": [[10, "byte-string-literal"]], "C": [[10, "c"]], "C representation": [[10, "c-representation"]], "C signed int type": [[10, "c-signed-int-type"]], "Call conformance": [[10, "call-conformance"]], "call expression": [[10, "call-expression"]], "call operand": [[10, "call-operand"]], "call resolution": [[10, "call-resolution"]], "call site hygiene": [[10, "call-site-hygiene"]], "callee type": [[10, "callee-type"]], "capture mode": [[10, "capture-mode"]], "capture target": [[10, "capture-target"]], "capturing": [[10, "capturing"]], "capturing environment": [[10, "capturing-environment"]], "capturing expression": [[10, "capturing-expression"]], "cast": [[10, "cast"]], "char": [[10, "char"]], "character literal": [[10, "character-literal"]], "closure body": [[10, "closure-body"]], "closure expression": [[10, "closure-expression"]], "closure parameter": [[10, "closure-parameter"]], "closure type": [[10, "closure-type"]], "code point": [[10, "code-point"]], "comment": [[10, "comment"]], "comparison expression": [[10, "comparison-expression"]], "compilation root": [[10, "compilation-root"]], "compound assignment": [[10, "compound-assignment"]], "compound assignment expression": [[10, "compound-assignment-expression"]], "concrete type": [[10, "concrete-type"]], "conditional compilation": [[10, "conditional-compilation"]], "conditionally-compiled source code": [[10, "conditionally-compiled-source-code"]], "configuration predicate": [[10, "configuration-predicate"]], "constant": [[10, "constant"]], "constant argument": [[10, "constant-argument"]], "constant context": [[10, "constant-context"]], "constant expression": [[10, "constant-expression"]], "constant function": [[10, "constant-function"]], "constant initializer": [[10, "constant-initializer"]], "constant parameter": [[10, "constant-parameter"]], "constant parameter initializer": [[10, "constant-parameter-initializer"]], "constant promotion": [[10, "constant-promotion"]], "constrain": [[10, "constrain"]], "construct": [[10, "construct"]], "constructee": [[10, "constructee"]], "container operand": [[10, "container-operand"]], "continue expression": [[10, "continue-expression"]], "control flow boundary": [[10, "control-flow-boundary"]], "copy type": [[10, "copy-type"]], "crate": [[10, "crate"]], "crate import": [[10, "crate-import"]], "crate indication": [[10, "crate-indication"]], "crate public modifier": [[10, "crate-public-modifier"]], "crate root": [[10, "crate-root"]], "crate root module": [[10, "crate-root-module"]], "dangling": [[10, "dangling"]], "data race": [[10, "data-race"]], "decimal literal": [[10, "decimal-literal"]], "declaration": [[10, "declaration"]], "declarative macro": [[10, "declarative-macro"]], "deconstructee": [[10, "deconstructee"]], "default representation": [[10, "default-representation"]], "definition site hygiene": [[10, "definition-site-hygiene"]], "dereference": [[10, "dereference"]], "dereference expression": [[10, "dereference-expression"]], "dereference type": [[10, "dereference-type"]], "dereference type chain": [[10, "dereference-type-chain"]], "derive macro": [[10, "derive-macro"]], "destruction": [[10, "destruction"]], "destructor": [[10, "destructor"]], "destructuring assignment": [[10, "destructuring-assignment"]], "direction modifier": [[10, "direction-modifier"]], "discriminant": [[10, "discriminant"]], "discriminant initializer": [[10, "discriminant-initializer"]], "discriminant type": [[10, "discriminant-type"]], "diverging expression": [[10, "diverging-expression"]], "diverging type variable": [[10, "diverging-type-variable"]], "division assignment": [[10, "division-assignment"]], "division assignment expression": [[10, "division-assignment-expression"]], "division expression": [[10, "division-expression"]], "doc comment": [[10, "doc-comment"]], "drop construct": [[10, "drop-construct"]], "drop order": [[10, "drop-order"]], "drop scope": [[10, "drop-scope"]], "drop scope extension": [[10, "drop-scope-extension"]], "drop type": [[10, "drop-type"]], "dropping": [[10, "dropping"]], "dynamically sized type": [[10, "dynamically-sized-type"]], "elaboration": [[10, "elaboration"]], "element type": [[10, "element-type"]], "elided": [[10, "elided"]], "elided lifetime": [[10, "elided-lifetime"]], "else expression": [[10, "else-expression"]], "empty statement": [[10, "empty-statement"]], "entity": [[10, "entity"]], "enum": [[10, "enum"]], "enum field": [[10, "enum-field"]], "enum type": [[10, "enum-type"]], "enum value": [[10, "enum-value"]], "enum variant": [[10, "enum-variant"]], "enum variant value": [[10, "enum-variant-value"]], "equals expression": [[10, "equals-expression"]], "error propagation expression": [[10, "error-propagation-expression"]], "escaped character": [[10, "escaped-character"]], "evaluated": [[10, "evaluated"]], "evaluation": [[10, "evaluation"]], "executed": [[10, "executed"]], "execution": [[10, "execution"]], "explicit register argument": [[10, "explicit-register-argument"]], "explicit register name": [[10, "explicit-register-name"]], "explicitly declared entity": [[10, "explicitly-declared-entity"]], "exported function": [[10, "exported-function"]], "exported static": [[10, "exported-static"]], "expression": [[10, "expression"]], "expression statement": [[10, "expression-statement"]], "expression-with-block": [[10, "expression-with-block"]], "expression-without-block": [[10, "expression-without-block"]], "external block": [[10, "external-block"]], "external function": [[10, "external-function"]], "external function item type": [[10, "external-function-item-type"]], "external static": [[10, "external-static"]], "f32": [[10, "f32"]], "f64": [[10, "f64"]], "fat pointer": [[10, "fat-pointer"]], "fat pointer type": [[10, "fat-pointer-type"]], "field": [[10, "field"]], "field access expression": [[10, "field-access-expression"]], "field index": [[10, "field-index"]], "field list": [[10, "field-list"]], "field resolution": [[10, "field-resolution"]], "field selector": [[10, "field-selector"]], "final match arm": [[10, "final-match-arm"]], "fixed sized type": [[10, "fixed-sized-type"]], "float literal": [[10, "float-literal"]], "float suffix": [[10, "float-suffix"]], "floating-point type": [[10, "floating-point-type"]], "floating-point type variable": [[10, "floating-point-type-variable"]], "floating-point value": [[10, "floating-point-value"]], "for loop": [[10, "for-loop"]], "for loop expression": [[10, "for-loop-expression"]], "Foreign Function Interface": [[10, "foreign-function-interface"]], "fragment specifier": [[10, "fragment-specifier"]], "full range expression": [[10, "full-range-expression"]], "function": [[10, "function"]], "function body": [[10, "function-body"]], "function item type": [[10, "function-item-type"]], "function lifetime elision": [[10, "function-lifetime-elision"]], "function parameter": [[10, "function-parameter"]], "function pointer type": [[10, "function-pointer-type"]], "function pointer type parameter": [[10, "function-pointer-type-parameter"]], "function qualifier": [[10, "function-qualifier"]], "function signature": [[10, "function-signature"]], "function type": [[10, "function-type"]], "function-like macro": [[10, "function-like-macro"]], "fundamental": [[10, "fundamental"]], "future": [[10, "future"]], "future operand": [[10, "future-operand"]], "generic argument": [[10, "generic-argument"]], "generic associated type": [[10, "generic-associated-type"]], "generic conformance": [[10, "generic-conformance"]], "generic enum": [[10, "generic-enum"]], "generic function": [[10, "generic-function"]], "generic implementation": [[10, "generic-implementation"]], "generic parameter": [[10, "generic-parameter"]], "generic parameter scope": [[10, "generic-parameter-scope"]], "generic struct": [[10, "generic-struct"]], "generic substitution": [[10, "generic-substitution"]], "generic trait": [[10, "generic-trait"]], "generic type": [[10, "generic-type"]], "generic type alias": [[10, "generic-type-alias"]], "generic union": [[10, "generic-union"]], "glob import": [[10, "glob-import"]], "global path": [[10, "global-path"]], "global type variable": [[10, "global-type-variable"]], "greater-than expression": [[10, "greater-than-expression"]], "greater-than-or-equals expression": [[10, "greater-than-or-equals-expression"]], "half-open range pattern": [[10, "half-open-range-pattern"]], "hexadecimal literal": [[10, "hexadecimal-literal"]], "higher-ranked trait bound": [[10, "higher-ranked-trait-bound"]], "hygiene": [[10, "hygiene"]], "hygienic": [[10, "hygienic"]], "i8": [[10, "i8"]], "i16": [[10, "i16"]], "i32": [[10, "i32"]], "i64": [[10, "i64"]], "i128": [[10, "i128"]], "identifier": [[10, "fls-kpsyz8yopova"]], "identifier pattern": [[10, "fls-1g9xxx8s498u"]], "if expression": [[10, "if-expression"]], "if let expression": [[10, "if-let-expression"]], "immutable": [[10, "immutable"]], "immutable borrow": [[10, "immutable-borrow"]], "immutable borrow expression": [[10, "immutable-borrow-expression"]], "immutable place expression": [[10, "immutable-place-expression"]], "immutable place expression context": [[10, "immutable-place-expression-context"]], "immutable raw pointer type": [[10, "immutable-raw-pointer-type"]], "immutable reference": [[10, "immutable-reference"]], "immutable static": [[10, "immutable-static"]], "immutable variable": [[10, "immutable-variable"]], "impl header lifetime elision": [[10, "impl-header-lifetime-elision"]], "impl trait type": [[10, "impl-trait-type"]], "implementation": [[10, "implementation"]], "implementation body": [[10, "implementation-body"]], "implementation coherence": [[10, "implementation-coherence"]], "implementation conformance": [[10, "implementation-conformance"]], "implemented trait": [[10, "implemented-trait"]], "implementing type": [[10, "implementing-type"]], "implicit borrow": [[10, "implicit-borrow"]], "implicitly declared entity": [[10, "implicitly-declared-entity"]], "implied bound": [[10, "implied-bound"]], "in scope": [[10, "in-scope"]], "inclusive range pattern": [[10, "inclusive-range-pattern"]], "incomplete associated constant": [[10, "incomplete-associated-constant"]], "incomplete associated function": [[10, "incomplete-associated-function"]], "incomplete associated type": [[10, "incomplete-associated-type"]], "index expression": [[10, "index-expression"]], "indexable type": [[10, "indexable-type"]], "indexed deconstructor": [[10, "indexed-deconstructor"]], "indexed field selector": [[10, "indexed-field-selector"]], "indexed initializer": [[10, "indexed-initializer"]], "indexed operand": [[10, "indexed-operand"]], "indexing operand": [[10, "indexing-operand"]], "indirection type": [[10, "indirection-type"]], "inert attribute": [[10, "inert-attribute"]], "inferred type": [[10, "inferred-type"]], "infinite loop": [[10, "infinite-loop"]], "infinite loop expression": [[10, "infinite-loop-expression"]], "inherent implementation": [[10, "inherent-implementation"]], "initialization": [[10, "initialization"]], "initialization expression": [[10, "initialization-expression"]], "initialization type": [[10, "initialization-type"]], "inline assembly": [[10, "inline-assembly"]], "inline module": [[10, "inline-module"]], "inner attribute": [[10, "inner-attribute"]], "inner block doc": [[10, "inner-block-doc"]], "inner doc comment": [[10, "inner-doc-comment"]], "inner line doc": [[10, "inner-line-doc"]], "input register": [[10, "input-register"]], "input register expression": [[10, "input-register-expression"]], "input-output register expression": [[10, "input-output-register-expression"]], "integer literal": [[10, "integer-literal"]], "integer suffix": [[10, "integer-suffix"]], "integer type": [[10, "integer-type"]], "integer type variable": [[10, "integer-type-variable"]], "interior mutability": [[10, "interior-mutability"]], "intermediate match arm": [[10, "intermediate-match-arm"]], "irrefutable constant": [[10, "irrefutable-constant"]], "irrefutable pattern": [[10, "irrefutable-pattern"]], "isize": [[10, "isize"]], "item": [[10, "item"]], "item scope": [[10, "item-scope"]], "item statement": [[10, "item-statement"]], "iteration expression": [[10, "iteration-expression"]], "keyword": [[10, "keyword"]], "label": [[10, "label"]], "label indication": [[10, "label-indication"]], "label scope": [[10, "label-scope"]], "layout": [[10, "layout"]], "lazy and expression": [[10, "lazy-and-expression"]], "lazy boolean expression": [[10, "lazy-boolean-expression"]], "lazy or expression": [[10, "lazy-or-expression"]], "left operand": [[10, "left-operand"]], "less-than expression": [[10, "less-than-expression"]], "less-than-or-equals expression": [[10, "less-than-or-equals-expression"]], "let initializer": [[10, "let-initializer"]], "let statement": [[10, "let-statement"]], "lexical element": [[10, "lexical-element"]], "library crate": [[10, "library-crate"]], "lifetime": [[10, "lifetime"]], "lifetime argument": [[10, "lifetime-argument"]], "lifetime bound": [[10, "lifetime-bound"]], "lifetime bound predicate": [[10, "lifetime-bound-predicate"]], "lifetime elision": [[10, "lifetime-elision"]], "lifetime parameter": [[10, "lifetime-parameter"]], "lifetime variable": [[10, "lifetime-variable"]], "line": [[10, "line"]], "line comment": [[10, "line-comment"]], "literal": [[10, "literal"]], "literal expression": [[10, "literal-expression"]], "literal pattern": [[10, "literal-pattern"]], "local trait": [[10, "local-trait"]], "local type": [[10, "local-type"]], "local variable": [[10, "local-variable"]], "loop": [[10, "loop"]], "loop body": [[10, "loop-body"]], "loop expression": [[10, "loop-expression"]], "macro": [[10, "macro"]], "macro expansion": [[10, "macro-expansion"]], "macro implementation function": [[10, "macro-implementation-function"]], "macro invocation": [[10, "macro-invocation"]], "macro match": [[10, "macro-match"]], "macro matcher": [[10, "macro-matcher"]], "macro matching": [[10, "macro-matching"]], "macro repetition": [[10, "macro-repetition"]], "macro repetition in matching": [[10, "macro-repetition-in-matching"]], "macro repetition in transcription": [[10, "macro-repetition-in-transcription"]], "macro rule": [[10, "macro-rule"]], "macro statement": [[10, "macro-statement"]], "macro transcriber": [[10, "macro-transcriber"]], "macro transcription": [[10, "macro-transcription"]], "main function": [[10, "main-function"]], "match arm": [[10, "match-arm"]], "match arm body": [[10, "match-arm-body"]], "match arm guard": [[10, "match-arm-guard"]], "match arm matcher": [[10, "match-arm-matcher"]], "match expression": [[10, "match-expression"]], "metavariable": [[10, "metavariable"]], "metavariable indication": [[10, "metavariable-indication"]], "method": [[10, "method"]], "method call expression": [[10, "method-call-expression"]], "method operand": [[10, "method-operand"]], "method resolution": [[10, "method-resolution"]], "mixed site hygiene": [[10, "mixed-site-hygiene"]], "modifying operand": [[10, "modifying-operand"]], "module": [[10, "module"]], "move type": [[10, "move-type"]], "multi segment path": [[10, "multi-segment-path"]], "multiplication assignment": [[10, "multiplication-assignment"]], "multiplication assignment expression": [[10, "multiplication-assignment-expression"]], "multiplication expression": [[10, "multiplication-expression"]], "mutability": [[10, "mutability"]], "mutable": [[10, "mutable"]], "mutable assignee expression": [[10, "mutable-assignee-expression"]], "mutable binding": [[10, "mutable-binding"]], "mutable borrow": [[10, "mutable-borrow"]], "mutable borrow expression": [[10, "mutable-borrow-expression"]], "mutable place expression": [[10, "mutable-place-expression"]], "mutable place expression context": [[10, "mutable-place-expression-context"]], "mutable raw pointer type": [[10, "mutable-raw-pointer-type"]], "mutable reference": [[10, "mutable-reference"]], "mutable reference type": [[10, "mutable-reference-type"]], "mutable static": [[10, "mutable-static"]], "mutable variable": [[10, "mutable-variable"]], "name": [[10, "name"]], "named block expression": [[10, "named-block-expression"]], "named deconstructor": [[10, "named-deconstructor"]], "named field selector": [[10, "named-field-selector"]], "named initializer": [[10, "named-initializer"]], "named loop expression": [[10, "named-loop-expression"]], "named register argument": [[10, "named-register-argument"]], "namespace": [[10, "namespace"]], "NaN-boxing": [[10, "nan-boxing"]], "negation expression": [[10, "negation-expression"]], "nesting import": [[10, "nesting-import"]], "never type": [[10, "never-type"]], "non-reference pattern": [[10, "non-reference-pattern"]], "not configuration predicate": [[10, "not-configuration-predicate"]], "not-equals expression": [[10, "not-equals-expression"]], "null": [[10, "null"]], "numeric literal": [[10, "numeric-literal"]], "numeric type": [[10, "numeric-type"]], "object safe": [[10, "object-safe"]], "object safety": [[10, "object-safety"]], "obsolete range pattern": [[10, "obsolete-range-pattern"]], "octal literal": [[10, "octal-literal"]], "operand": [[10, "operand"]], "operator expression": [[10, "operator-expression"]], "opt-out trait bound": [[10, "opt-out-trait-bound"]], "outer attribute": [[10, "outer-attribute"]], "outer block doc": [[10, "outer-block-doc"]], "outer doc comment": [[10, "outer-doc-comment"]], "outer line doc": [[10, "outer-line-doc"]], "outline module": [[10, "outline-module"]], "outlives bound": [[10, "outlives-bound"]], "output register": [[10, "output-register"]], "output register expression": [[10, "output-register-expression"]], "overlap": [[10, "overlap"]], "owner": [[10, "owner"]], "ownership": [[10, "ownership"]], "panic": [[10, "panic"]], "parenthesized expression": [[10, "parenthesized-expression"]], "parenthesized pattern": [[10, "parenthesized-pattern"]], "parenthesized type": [[10, "parenthesized-type"]], "partially hygienic": [[10, "partially-hygienic"]], "passing convention": [[10, "passing-convention"]], "path": [[10, "path"]], "path expression": [[10, "path-expression"]], "path expression resolution": [[10, "path-expression-resolution"]], "path pattern": [[10, "path-pattern"]], "path resolution": [[10, "path-resolution"]], "path segment": [[10, "path-segment"]], "pattern": [[10, "pattern"]], "pattern matching": [[10, "pattern-matching"]], "pattern-without-alternation": [[10, "pattern-without-alternation"]], "pattern-without-range": [[10, "pattern-without-range"]], "place": [[10, "place"]], "place expression": [[10, "place-expression"]], "place expression context": [[10, "place-expression-context"]], "plane": [[10, "plane"]], "pointer": [[10, "pointer"]], "pointer type": [[10, "pointer-type"]], "positional register argument": [[10, "positional-register-argument"]], "precedence": [[10, "precedence"]], "prelude": [[10, "prelude"]], "prelude entity": [[10, "prelude-entity"]], "prelude name": [[10, "prelude-name"]], "primitive representation": [[10, "primitive-representation"]], "private visibility": [[10, "private-visibility"]], "proc-macro crate": [[10, "proc-macro-crate"]], "procedural macro": [[10, "procedural-macro"]], "public visibility": [[10, "public-visibility"]], "punctuator": [[10, "punctuator"]], "pure identifier": [[10, "pure-identifier"]], "qualified path expression": [[10, "qualified-path-expression"]], "qualified type": [[10, "qualified-type"]], "qualified type path": [[10, "qualified-type-path"]], "qualifying trait": [[10, "qualifying-trait"]], "range expression": [[10, "range-expression"]], "range expression high bound": [[10, "range-expression-high-bound"]], "range expression low bound": [[10, "range-expression-low-bound"]], "range pattern": [[10, "range-pattern"]], "range pattern bound": [[10, "range-pattern-bound"]], "range pattern high bound": [[10, "range-pattern-high-bound"]], "range pattern low bound": [[10, "range-pattern-low-bound"]], "range-from expression": [[10, "range-from-expression"]], "range-from-to expression": [[10, "range-from-to-expression"]], "range-full expression": [[10, "range-full-expression"]], "range-inclusive expression": [[10, "range-inclusive-expression"]], "range-to expression": [[10, "range-to-expression"]], "range-to-inclusive expression": [[10, "range-to-inclusive-expression"]], "raw byte string literal": [[10, "raw-byte-string-literal"]], "raw pointer": [[10, "raw-pointer"]], "raw pointer type": [[10, "raw-pointer-type"]], "raw string literal": [[10, "raw-string-literal"]], "reachable control flow path": [[10, "reachable-control-flow-path"]], "receiver operand": [[10, "receiver-operand"]], "receiver type": [[10, "receiver-type"]], "record enum variant": [[10, "record-enum-variant"]], "record struct": [[10, "record-struct"]], "record struct field": [[10, "record-struct-field"]], "record struct pattern": [[10, "record-struct-pattern"]], "record struct type": [[10, "record-struct-type"]], "record struct value": [[10, "record-struct-value"]], "recursive type": [[10, "recursive-type"]], "reference": [[10, "reference"]], "reference identifier pattern": [[10, "reference-identifier-pattern"]], "reference pattern": [[10, "reference-pattern"]], "reference type": [[10, "reference-type"]], "referent": [[10, "referent"]], "refutability": [[10, "refutability"]], "refutable constant": [[10, "refutable-constant"]], "refutable pattern": [[10, "refutable-pattern"]], "refutable type": [[10, "refutable-type"]], "register": [[10, "register"]], "register argument": [[10, "register-argument"]], "register class": [[10, "register-class"]], "register class argument": [[10, "register-class-argument"]], "register class name": [[10, "register-class-name"]], "register expression": [[10, "register-expression"]], "register name": [[10, "register-name"]], "register parameter": [[10, "register-parameter"]], "register parameter modifier": [[10, "register-parameter-modifier"]], "remainder assignment": [[10, "remainder-assignment"]], "remainder assignment expression": [[10, "remainder-assignment-expression"]], "remainder expression": [[10, "remainder-expression"]], "renaming": [[10, "renaming"]], "repeat operand": [[10, "repeat-operand"]], "repetition operator": [[10, "repetition-operator"]], "representation": [[10, "representation"]], "representation modifier": [[10, "representation-modifier"]], "reserved keyword": [[10, "reserved-keyword"]], "resolution": [[10, "resolution"]], "rest pattern": [[10, "rest-pattern"]], "return expression": [[10, "return-expression"]], "return type": [[10, "return-type"]], "right operand": [[10, "right-operand"]], "rule matching": [[10, "rule-matching"]], "rustc": [[10, "rustc"]], "safety invariant": [[10, "safety-invariant"]], "scalar type": [[10, "scalar-type"]], "scope": [[10, "scope"]], "scope hierarchy": [[10, "scope-hierarchy"]], "selected field": [[10, "selected-field"]], "Self": [[10, "self"]], "self parameter": [[10, "self-parameter"]], "self public modifier": [[10, "self-public-modifier"]], "Self scope": [[10, "self-scope"]], "send type": [[10, "send-type"]], "separator": [[10, "separator"]], "sequence type": [[10, "sequence-type"]], "shadowing": [[10, "shadowing"]], "shared borrow": [[10, "shared-borrow"]], "shared reference": [[10, "shared-reference"]], "shared reference type": [[10, "shared-reference-type"]], "shift left assignment": [[10, "shift-left-assignment"]], "shift left assignment expression": [[10, "shift-left-assignment-expression"]], "shift left expression": [[10, "shift-left-expression"]], "shift right assignment": [[10, "shift-right-assignment"]], "shift right assignment expression": [[10, "shift-right-assignment-expression"]], "shift right expression": [[10, "shift-right-expression"]], "shorthand deconstructor": [[10, "shorthand-deconstructor"]], "shorthand initializer": [[10, "shorthand-initializer"]], "signed integer type": [[10, "signed-integer-type"]], "simple byte string literal": [[10, "simple-byte-string-literal"]], "simple import": [[10, "simple-import"]], "simple path": [[10, "simple-path"]], "simple path prefix": [[10, "simple-path-prefix"]], "simple path public modifier": [[10, "simple-path-public-modifier"]], "simple path resolution": [[10, "simple-path-resolution"]], "simple public modifier": [[10, "simple-public-modifier"]], "simple register expression": [[10, "simple-register-expression"]], "simple string literal": [[10, "simple-string-literal"]], "single segment path": [[10, "single-segment-path"]], "size": [[10, "size"]], "size operand": [[10, "size-operand"]], "sized type": [[10, "sized-type"]], "slice": [[10, "slice"]], "slice pattern": [[10, "slice-pattern"]], "slice type": [[10, "slice-type"]], "source file": [[10, "source-file"]], "statement": [[10, "statement"]], "static": [[10, "static"]], "static initializer": [[10, "static-initializer"]], "static lifetime elision": [[10, "static-lifetime-elision"]], "str": [[10, "str"]], "strict keyword": [[10, "strict-keyword"]], "string literal": [[10, "string-literal"]], "struct": [[10, "struct"]], "struct expression": [[10, "struct-expression"]], "struct field": [[10, "struct-field"]], "struct pattern": [[10, "struct-pattern"]], "struct type": [[10, "struct-type"]], "struct value": [[10, "struct-value"]], "structurally equal": [[10, "structurally-equal"]], "subexpression": [[10, "subexpression"]], "subject expression": [[10, "subject-expression"]], "subject let expression": [[10, "subject-let-expression"]], "subpattern": [[10, "subpattern"]], "subtraction assignment": [[10, "subtraction-assignment"]], "subtraction assignment expression": [[10, "subtraction-assignment-expression"]], "subtraction expression": [[10, "subtraction-expression"]], "subtrait": [[10, "subtrait"]], "subtype": [[10, "subtype"]], "subtyping": [[10, "subtyping"]], "suffixed float": [[10, "suffixed-float"]], "suffixed integer": [[10, "suffixed-integer"]], "super public modifier": [[10, "super-public-modifier"]], "supertrait": [[10, "supertrait"]], "sync type": [[10, "sync-type"]], "syntactic category": [[10, "syntactic-category"]], "tail expression": [[10, "tail-expression"]], "temporary": [[10, "temporary"]], "terminated": [[10, "terminated"]], "terminated macro invocation": [[10, "terminated-macro-invocation"]], "textual macro scope": [[10, "textual-macro-scope"]], "textual type": [[10, "textual-type"]], "thin pointer": [[10, "thin-pointer"]], "thin pointer type": [[10, "thin-pointer-type"]], "token matching": [[10, "token-matching"]], "tokens": [[10, "tokens"]], "trait": [[10, "trait"]], "trait body": [[10, "trait-body"]], "trait bound": [[10, "trait-bound"]], "trait implementation": [[10, "trait-implementation"]], "trait object lifetime elision": [[10, "trait-object-lifetime-elision"]], "trait object type": [[10, "trait-object-type"]], "trait type": [[10, "trait-type"]], "transparent representation": [[10, "transparent-representation"]], "trivial predicate": [[10, "trivial-predicate"]], "tuple": [[10, "tuple"]], "tuple enum variant": [[10, "tuple-enum-variant"]], "tuple enum variant value": [[10, "tuple-enum-variant-value"]], "tuple expression": [[10, "tuple-expression"]], "tuple field": [[10, "tuple-field"]], "tuple initializer": [[10, "tuple-initializer"]], "tuple pattern": [[10, "tuple-pattern"]], "tuple struct": [[10, "tuple-struct"]], "tuple struct call expression": [[10, "tuple-struct-call-expression"]], "tuple struct field": [[10, "tuple-struct-field"]], "tuple struct pattern": [[10, "tuple-struct-pattern"]], "tuple struct type": [[10, "tuple-struct-type"]], "tuple struct value": [[10, "tuple-struct-value"]], "tuple type": [[10, "tuple-type"]], "type": [[10, "type"]], "type alias": [[10, "type-alias"]], "type argument": [[10, "type-argument"]], "type ascription": [[10, "type-ascription"]], "type bound predicate": [[10, "type-bound-predicate"]], "type cast expression": [[10, "type-cast-expression"]], "type coercion": [[10, "type-coercion"]], "type inference": [[10, "type-inference"]], "type inference root": [[10, "type-inference-root"]], "type parameter": [[10, "type-parameter"]], "type parameter initializer": [[10, "type-parameter-initializer"]], "type parameter type": [[10, "type-parameter-type"]], "type path": [[10, "type-path"]], "type path resolution": [[10, "type-path-resolution"]], "type representation": [[10, "type-representation"]], "type specification": [[10, "type-specification"]], "type unification": [[10, "type-unification"]], "type variable": [[10, "type-variable"]], "u8": [[10, "u8"]], "u16": [[10, "u16"]], "u32": [[10, "u32"]], "u64": [[10, "u64"]], "u128": [[10, "u128"]], "unary operator": [[10, "unary-operator"]], "undefined behavior": [[10, "undefined-behavior"]], "under resolution": [[10, "under-resolution"]], "underscore expression": [[10, "underscore-expression"]], "underscore pattern": [[10, "underscore-pattern"]], "unhygienic": [[10, "unhygienic"]], "Unicode": [[10, "unicode"]], "unifiable": [[10, "unifiable"]], "unifiable types": [[10, "unifiable-types"]], "unified type": [[10, "unified-type"]], "unify": [[10, "unify"]], "union": [[10, "union"]], "union field": [[10, "union-field"]], "union type": [[10, "union-type"]], "union value": [[10, "union-value"]], "unique immutable reference": [[10, "unique-immutable-reference"]], "unit enum variant": [[10, "unit-enum-variant"]], "unit struct": [[10, "unit-struct"]], "unit struct constant": [[10, "unit-struct-constant"]], "unit struct type": [[10, "unit-struct-type"]], "unit struct value": [[10, "unit-struct-value"]], "unit tuple": [[10, "unit-tuple"]], "unit type": [[10, "unit-type"]], "unit value": [[10, "unit-value"]], "unnamed constant": [[10, "unnamed-constant"]], "unnamed lifetime": [[10, "unnamed-lifetime"]], "unqualified path expression": [[10, "unqualified-path-expression"]], "unsafe block": [[10, "unsafe-block"]], "unsafe block expression": [[10, "unsafe-block-expression"]], "unsafe context": [[10, "unsafe-context"]], "unsafe function": [[10, "unsafe-function"]], "unsafe function item type": [[10, "unsafe-function-item-type"]], "unsafe function pointer type": [[10, "unsafe-function-pointer-type"]], "unsafe operation": [[10, "unsafe-operation"]], "unsafe Rust": [[10, "unsafe-rust"]], "unsafe trait": [[10, "unsafe-trait"]], "unsafe trait implementation": [[10, "unsafe-trait-implementation"]], "unsafety": [[10, "unsafety"]], "unsigned integer type": [[10, "unsigned-integer-type"]], "unsized coercion": [[10, "unsized-coercion"]], "unsized type": [[10, "unsized-type"]], "unsuffixed float": [[10, "unsuffixed-float"]], "unsuffixed integer": [[10, "unsuffixed-integer"]], "use import": [[10, "use-import"]], "usize": [[10, "usize"]], "validity invariant": [[10, "validity-invariant"]], "value": [[10, "value"]], "value expression": [[10, "value-expression"]], "value expression context": [[10, "value-expression-context"]], "value operand": [[10, "value-operand"]], "variable": [[10, "variable"]], "variadic part": [[10, "variadic-part"]], "variance": [[10, "variance"]], "visibility": [[10, "visibility"]], "visibility modifier": [[10, "visibility-modifier"]], "weak keyword": [[10, "weak-keyword"]], "where clause": [[10, "where-clause"]], "where clause predicate": [[10, "where-clause-predicate"]], "while let loop": [[10, "while-let-loop"]], "while let loop expression": [[10, "while-let-loop-expression"]], "while loop": [[10, "while-loop"]], "while loop expression": [[10, "while-loop-expression"]], "whitespace string": [[10, "whitespace-string"]], "zero-sized type": [[10, "zero-sized-type"]], "zero-variant enum type": [[10, "zero-variant-enum-type"]], "Generics": [[9, "generics"]], "Generic Parameters": [[9, "generic-parameters"]], "Where Clauses": [[9, "where-clauses"]], "Generic Arguments": [[9, "generic-arguments"]], "Generic Conformance": [[9, "generic-conformance"]], "Implementations": [[11, "implementations"]], "Implementation Coherence": [[11, "implementation-coherence"]], "Implementation Conformance": [[11, "implementation-conformance"]], "General": [[8, "general"]], "Scope": [[8, "scope"]], "Extent": [[8, "extent"]], "Structure": [[8, "structure"]], "Conformity": [[8, "conformity"]], "Method of Description and Syntax Notation": [[8, "method-of-description-and-syntax-notation"]], "Versioning": [[8, "versioning"]], "Definitions": [[8, "definitions"]], "Associated Items": [[0, "associated-items"]], "Exceptions and Errors": [[4, "exceptions-and-errors"]], "Panic": [[4, "panic"]], "Abort": [[4, "abort"]], "Expressions": [[5, "expressions"]], "Expression Classification": [[5, "expression-classification"]], "Assignee Expressions": [[5, "assignee-expressions"]], "Constant Expressions": [[5, "constant-expressions"]], "Diverging Expressions": [[5, "diverging-expressions"]], "Place Expressions": [[5, "place-expressions"]], "Value Expressions": [[5, "value-expressions"]], "Literal Expressions": [[5, "literal-expressions"]], "Path Expressions": [[5, "path-expressions"]], "Block Expressions": [[5, "block-expressions"]], "Async Blocks": [[5, "async-blocks"]], "Named Blocks": [[5, "named-blocks"]], "Unsafe Blocks": [[5, "unsafe-blocks"]], "Operator Expressions": [[5, "operator-expressions"]], "Borrow Expression": [[5, "borrow-expression"]], "Dereference Expression": [[5, "dereference-expression"]], "Error Propagation Expression": [[5, "error-propagation-expression"]], "Negation Expression": [[5, "negation-expression"]], "Arithmetic Expressions": [[5, "arithmetic-expressions"]], "Bit Expressions": [[5, "bit-expressions"]], "Comparison Expressions": [[5, "comparison-expressions"]], "Lazy Boolean Expressions": [[5, "lazy-boolean-expressions"]], "Type Cast Expressions": [[5, "type-cast-expressions"]], "Assignment Expressions": [[5, "assignment-expressions"]], "Basic Assignment": [[5, "basic-assignment"]], "Destructuring Assignment": [[5, "destructuring-assignment"]], "Compound Assignment Expressions": [[5, "compound-assignment-expressions"]], "Underscore Expressions": [[5, "underscore-expressions"]], "Parenthesized Expressions": [[5, "parenthesized-expressions"]], "Array Expressions": [[5, "array-expressions"]], "Indexing Expressions": [[5, "indexing-expressions"]], "Tuple Expressions": [[5, "tuple-expressions"]], "Struct Expressions": [[5, "struct-expressions"]], "Invocation Expressions": [[5, "invocation-expressions"]], "Call Expressions": [[5, "call-expressions"]], "Method Call Expressions": [[5, "method-call-expressions"]], "Call Conformance": [[5, "call-conformance"]], "Field Access Expressions": [[5, "field-access-expressions"]], "Closure Expressions": [[5, "closure-expressions"]], "Loop Expressions": [[5, "loop-expressions"]], "For Loops": [[5, "for-loops"]], "Infinite Loops": [[5, "infinite-loops"]], "While Loops": [[5, "while-loops"]], "While Let Loops": [[5, "while-let-loops"]], "Loop Labels": [[5, "loop-labels"]], "Break Expressions": [[5, "break-expressions"]], "Continue Expressions": [[5, "continue-expressions"]], "Range Expressions": [[5, "range-expressions"]], "If and If Let Expressions": [[5, "if-and-if-let-expressions"]], "If Expressions": [[5, "if-expressions"]], "If Let Expressions": [[5, "if-let-expressions"]], "Match Expressions": [[5, "match-expressions"]], "Return Expressions": [[5, "return-expressions"]], "Await Expressions": [[5, "await-expressions"]], "Expression Precedence": [[5, "expression-precedence"]], "Capturing": [[5, "capturing"]], "Arithmetic Overflow": [[5, "arithmetic-overflow"]], "Entities and Resolution": [[3, "entities-and-resolution"]], "Entities": [[3, "entities"]], "Visibility": [[3, "visibility"]], "Paths": [[3, "paths"]], "Scopes": [[3, "scopes"]], "Binding Scopes": [[3, "binding-scopes"]], "Generic Parameter Scope": [[3, "generic-parameter-scope"]], "Item Scope": [[3, "item-scope"]], "Label Scope": [[3, "label-scope"]], "Self Scope": [[3, "self-scope"]], "Textual Macro Scope": [[3, "textual-macro-scope"]], "Scope Hierarchy": [[3, "scope-hierarchy"]], "Namespaces": [[3, "namespaces"]], "Preludes": [[3, "preludes"]], "Use Imports": [[3, "use-imports"]], "Shadowing": [[3, "shadowing"]], "Resolution": [[3, "resolution"]], "Field Resolution": [[3, "field-resolution"]], "Method Resolution": [[3, "method-resolution"]], "Call Resolution": [[3, "call-resolution"]], "Path Resolution": [[3, "path-resolution"]], "Simple Path Resolution": [[3, "simple-path-resolution"]], "Path Expression Resolution": [[3, "path-expression-resolution"]], "Type Path Resolution": [[3, "type-path-resolution"]], "Attributes": [[1, "attributes"]], "Attribute Properties": [[1, "attribute-properties"]], "Built-in Attributes": [[1, "built-in-attributes"]], "Code Generation Attributes": [[1, "code-generation-attributes"]], "Attribute cold": [[1, "attribute-cold"]], "Attribute inline": [[1, "attribute-inline"]], "Attribute no_builtins": [[1, "attribute-no-builtins"]], "Attribute target_feature": [[1, "attribute-target-feature"]], "Attribute track_caller": [[1, "attribute-track-caller"]], "Conditional Compilation Attributes": [[1, "conditional-compilation-attributes"]], "Attribute cfg": [[1, "attribute-cfg"]], "Attribute cfg_attr": [[1, "attribute-cfg-attr"]], "Derivation Attributes": [[1, "derivation-attributes"]], "Attribute automatically_derived": [[1, "attribute-automatically-derived"]], "Attribute derive": [[1, "attribute-derive"]], "Diagnostics Attributes": [[1, "diagnostics-attributes"]], "Documentation Attributes": [[1, "documentation-attributes"]], "Attribute doc": [[1, "attribute-doc"]], "Foreign Function Interface Attributes": [[1, "foreign-function-interface-attributes"]], "Attribute crate_name": [[1, "attribute-crate-name"]], "Attribute crate_type": [[1, "attribute-crate-type"]], "Attribute export_name": [[1, "attribute-export-name"]], "Attribute link": [[1, "attribute-link"]], "Attribute link_name": [[1, "attribute-link-name"]], "Attribute link_section": [[1, "attribute-link-section"]], "Attribute link_ordinal": [[1, "attribute-link-ordinal"]], "Attribute no_link": [[1, "attribute-no-link"]], "Attribute no_main": [[1, "attribute-no-main"]], "Attribute no_mangle": [[1, "attribute-no-mangle"]], "Attribute repr": [[1, "attribute-repr"]], "Attribute used": [[1, "attribute-used"]], "Limits Attributes": [[1, "limits-attributes"]], "Attribute recursion_limit": [[1, "attribute-recursion-limit"]], "Attribute type_length_limit": [[1, "attribute-type-length-limit"]], "Macros Attributes": [[1, "macros-attributes"]], "Attribute macro_export": [[1, "attribute-macro-export"]], "Attribute macro_use": [[1, "attribute-macro-use"]], "Attribute proc_macro": [[1, "attribute-proc-macro"]], "Attribute proc_macro_attribute": [[1, "attribute-proc-macro-attribute"]], "Attribute proc_macro_derive": [[1, "attribute-proc-macro-derive"]], "Modules Attributes": [[1, "modules-attributes"]], "Attribute path": [[1, "attribute-path"]], "Prelude Attributes": [[1, "prelude-attributes"]], "Attribute no_implicit_prelude": [[1, "attribute-no-implicit-prelude"]], "Attribute no_std": [[1, "attribute-no-std"]], "Runtime Attributes": [[1, "runtime-attributes"]], "Attribute global_allocator": [[1, "attribute-global-allocator"]], "Attribute panic_handler": [[1, "attribute-panic-handler"]], "Attribute windows_subsystem": [[1, "attribute-windows-subsystem"]], "Testing Attributes": [[1, "testing-attributes"]], "Attribute ignore": [[1, "attribute-ignore"]], "Attribute should_panic": [[1, "attribute-should-panic"]], "Attribute test": [[1, "attribute-test"]], "Type Attributes": [[1, "type-attributes"]], "Attribute non_exhaustive": [[1, "attribute-non-exhaustive"]], "Concurrency": [[2, "concurrency"]], "Send and Sync": [[2, "send-and-sync"]], "Atomics": [[2, "atomics"]], "Asynchronous Computation": [[2, "asynchronous-computation"]]}, "indexentries": {}}) \ No newline at end of file diff --git a/statements.html b/statements.html new file mode 100644 index 00000000..70f3e3b2 --- /dev/null +++ b/statements.html @@ -0,0 +1,248 @@ + + + + + + + + + + + + 8. Statements — Ferrocene Language Specification + + + + + + + + + + + + + + +
    + +
    +
    + +
    +

    8. Statements

    +

    Syntax

    +
    Statement ::=
    +    ExpressionStatement
    +  | Item
    +  | LetStatement
    +  | TerminatedMacroInvocation
    +  | ;
    +

    Legality Rules

    +

    8:1 +An expression statement is an expression whose result is ignored.

    +

    8:2 +An item statement is a statement that is expressed as an item.

    +

    8:3 +An empty statement is a statement expressed as character 0x3B +(semicolon).

    +

    8:4 +A macro statement is a statement expressed as a +terminated macro invocation.

    +

    Dynamic Semantics

    +

    8:5 +Execution is the process by which a statement achieves its runtime +effects.

    +

    8:6 +The execution of an empty statement has no effect.

    +
    +

    8.1. Let Statements

    +

    Syntax

    +
    LetStatement ::=
    +    OuterAttributeOrDoc* let PatternWithoutAlternation TypeAscription? LetInitializer? ;
    +
    +LetInitializer ::=
    +    = Expression (else BlockExpression)?
    +

    Legality Rules

    +

    8.1:1 +A let statement is a statement that introduces new bindings +produced by its pattern-without-alternation that are optionally +initialized to a value.

    +

    8.1:2 +A let initializer is a construct that provides the value of +the bindings of the let statement using an expression, or +alternatively executes a block expression.

    +

    8.1:3 +If a let statement lacks a block expression, then the pattern of +the let statement shall be an irrefutable pattern.

    +

    8.1:4 +The type of a binding introduced by a let statement is +determined as follows:

    + +

    8.1:7 +The type of the block expression of a let statement shall be the +never type.

    +

    8.1:8 +The value of a binding introduced by a let statement is +determined as follows:

    + +

    Dynamic Semantics

    +

    8.1:11 +The execution of a let statement with a let initializer proceeds +as follows:

    +
      +
    1. 8.1:12 +The expression of the let initializer is evaluated.

    2. +
    3. 8.1:13 +If the value of the expression is matched successfully against the +pattern of the let statement, then the value is assigned to +each binding introduced by the let statement.

    4. +
    5. 8.1:14 +Otherwise the block expression of the let initializer is evaluated.

    6. +
    +

    Examples

    +
    let local = 0;
    +let local: u32;
    +let (a, b) = (0, 0);
    +let Some(value) = vector.pop() else {
    +    panic!();
    +};
    +
    +
    +
    +
    +

    8.2. Expression Statements

    +

    Syntax

    +
    ExpressionStatement ::=
    +    ExpressionWithBlock ;?
    +  | ExpressionWithoutBlock ;
    +

    Legality Rules

    +

    8.2:1 +An expression statement is an expression whose result is ignored.

    +

    8.2:2 +The expected type of an expression statement without character 0x3B +(semicolon) is the unit type.

    +

    Dynamic Semantics

    +

    8.2:3 +The execution of an expression statement proceeds as follows:

    +
      +
    1. 8.2:4 +The operand is evaluated.

    2. +
    3. 8.2:5 +The value of the operand is dropped.

    4. +
    +

    Examples

    +
    let mut values = vec![1, 2, 3];
    +
    +
    +

    8.2:6 +The following expression statement ignores the result from pop().

    +
    values.pop();
    +
    +
    +

    8.2:7 +The following expression statement does not require a semicolon.

    +
    if values.is_empty() {
    +    values.push(42);
    +}
    +else {
    +    values.remove(0);
    +}
    +
    +
    +

    8.2:8 +The following expression statement is not an index expression.

    +
    [42];
    +
    +
    +
    +
    + + +
    +
    +

    + Copyright © The Ferrocene Developers. + + Contents released under the MIT or Apache 2.0 license. + +

    + + +

    Built from commit: 2d7de7f91004615d8c7b4fb2416718fb7bb4f769

    + +

    Ferrocene is a registered trademark of Critical Section GmbH.

    +
    +
    +
    + + + \ No newline at end of file diff --git a/types-and-traits.html b/types-and-traits.html new file mode 100644 index 00000000..d9327e0a --- /dev/null +++ b/types-and-traits.html @@ -0,0 +1,2900 @@ + + + + + + + + + + + + 4. Types and Traits — Ferrocene Language Specification + + + + + + + + + + + + + + +
    + +
    +
    + +
    +

    4. Types and Traits

    +
    +

    4.1. Types

    +

    Syntax

    +
    TypeSpecification ::=
    +    ImplTraitTypeSpecification
    +  | TraitObjectTypeSpecification
    +  | TypeSpecificationWithoutBounds
    +
    +TypeSpecificationList ::=
    +    TypeSpecification (, TypeSpecification)* ,?
    +
    +TypeSpecificationWithoutBounds ::=
    +    ArrayTypeSpecification
    +  | FunctionPointerTypeSpecification
    +  | ImplTraitTypeSpecificationOneBound
    +  | InferredType
    +  | MacroInvocation
    +  | NeverType
    +  | ParenthesizedTypeSpecification
    +  | QualifiedTypePath
    +  | RawPointerTypeSpecification
    +  | ReferenceTypeSpecification
    +  | SliceTypeSpecification
    +  | TraitObjectTypeSpecificationOneBound
    +  | TupleTypeSpecification
    +  | TypePath
    +
    +TypeAscription ::=
    +    : TypeSpecification
    +

    Legality Rules

    +

    4.1:1 +A type defines a set of values and a set of operations that act on +those values.

    +

    4.1:2 +A local type is a type that is defined in the current crate.

    +
    +
    +

    4.2. Type Classification

    +
    +

    Note

    +

    The contents of this section are informational.

    +
    +

    Legality Rules

    +

    4.2:1 +Types are organized in the following categories:

    + +
    +
    +

    4.3. Scalar Types

    +
    +

    4.3.1. Bool Type

    +

    Legality Rules

    +

    4.3.1:1 +Bool is a type whose values denote the truth values of +logic and Boolean algebra.

    +

    4.3.1:2 +Type bool appears in the language prelude under the name +bool.

    +

    4.3.1:3 +Boolean value false has bit pattern 0x00. Boolean value +true has bit pattern 0x01.

    +

    4.3.1:4 +The following operations are defined on type bool:

    +

    4.3.1:5 +Logical not

    + + + + + + + + + + + + + + + +

    4.3.1:6

    a

    !a

    4.3.1:7

    true

    false

    4.3.1:8

    false

    true

    +

    4.3.1:9 +Logical and

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    4.3.1:10

    a

    b

    a & b

    4.3.1:11

    true

    true

    true

    4.3.1:12

    true

    false

    false

    4.3.1:13

    false

    true

    false

    4.3.1:14

    false

    false

    false

    +

    4.3.1:15 +Logical or

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    4.3.1:16

    a

    b

    a | b

    4.3.1:17

    true

    true

    true

    4.3.1:18

    true

    false

    true

    4.3.1:19

    false

    true

    true

    4.3.1:20

    false

    false

    false

    +

    4.3.1:21 +Logical exclusive or (xor)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    4.3.1:22

    a

    b

    a ^ b

    4.3.1:23

    true

    true

    false

    4.3.1:24

    true

    false

    true

    4.3.1:25

    false

    true

    true

    4.3.1:26

    false

    false

    false

    +

    4.3.1:27 +Equality

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    4.3.1:28

    a

    b

    a == b

    4.3.1:29

    true

    true

    true

    4.3.1:30

    true

    false

    false

    4.3.1:31

    false

    true

    false

    4.3.1:32

    false

    false

    true

    +

    4.3.1:33 +Greater than

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    4.3.1:34

    a

    b

    a > b

    4.3.1:35

    true

    true

    false

    4.3.1:36

    true

    false

    true

    4.3.1:37

    false

    true

    false

    4.3.1:38

    false

    false

    false

    +

    4.3.1:39 +Operation a != b is equivalent to !(a == b).

    +

    4.3.1:40 +Operation a >= b is equivalent to a == b | a > b.

    +

    4.3.1:41 +Operation a < b is equivalent to !(a >= b).

    +

    4.3.1:42 +Operation a <= b is equivalent to a == b | a < b.

    +

    Undefined Behavior

    +

    4.3.1:43 +It is a validity invariant for a value of type bool to have +a bit pattern of 0x00 and 0x01.

    +
    +
    +

    4.3.2. Char Type

    +

    Legality Rules

    +

    4.3.2:1 +Char is a type whose values are represented as a 32-bit +unsigned word in the 0x000 - 0xD7FF or the 0xE000 - 0x10FFFF inclusive ranges +of Unicode.

    +

    Undefined Behavior

    +

    4.3.2:2 +It is a validity invariant for a value of type char to be +inside the 0x000 - 0xD7FF or the 0xE000 - 0x10FFFF inclusive ranges of +Unicode.

    +
    +
    +

    4.3.3. Numeric Types

    +
    +

    4.3.3.1. Floating Point Types

    +

    Legality Rules

    +

    4.3.3.1:1 +Type f32 is equivalent to the IEEE 754-2008 binary32 type.

    +

    4.3.3.1:2 +Type f64 is equivalent to the IEEE 754-2008 binary64 type.

    +
    +
    +

    4.3.3.2. Integer Types

    +

    Legality Rules

    +

    4.3.3.2:1 +Unsigned integer types define the following inclusive ranges over the +domain of whole numbers:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    4.3.3.2:2

    Type

    Minimum

    Maximum

    4.3.3.2:3

    u8

    0

    28 - 1

    4.3.3.2:4

    u16

    0

    216 - 1

    4.3.3.2:5

    u32

    0

    232 - 1

    4.3.3.2:6

    u64

    0

    264 - 1

    4.3.3.2:7

    u128

    0

    2128 - 1

    +

    4.3.3.2:8 +Type usize has the same number of bits as the platform’s +pointer type, and is at least 16-bits wide.

    +

    4.3.3.2:9 +Signed integer types define the following inclusive ranges over the +domain of whole numbers:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    4.3.3.2:10

    Type

    Minimum

    Maximum

    4.3.3.2:11

    i8

    - (27)

    27 - 1

    4.3.3.2:12

    i16

    - (215)

    215 - 1

    4.3.3.2:13

    i32

    - (231)

    231 - 1

    4.3.3.2:14

    i64

    - (263)

    263 - 1

    4.3.3.2:15

    i128

    - (2127)

    2127 - 1

    +

    4.3.3.2:16 +Type isize has the same number of bits as the platform’s +pointer type, and is at least 16-bits wide.

    +
    +
    +
    +
    +

    4.4. Sequence Types

    +
    +

    4.4.1. Array Types

    +

    Syntax

    +
    ArrayTypeSpecification ::=
    +    [ ElementType ; SizeOperand ]
    +
    +ElementType ::=
    +    TypeSpecification
    +

    Legality Rules

    +

    4.4.1:1 +An array type is a sequence type that represents a fixed sequence +of elements.

    +

    4.4.1:2 +The element type shall be a fixed sized type.

    +

    4.4.1:3 +The size operand shall be a constant expression.

    +

    4.4.1:4 +The type of the size operand is type usize.

    +

    Examples

    +

    4.4.1:5 +An array type in the context of a let statement:

    +
    let array: [i32; 3] = [1, 2, 3];
    +
    +
    +
    +
    +

    4.4.2. Slice Types

    +

    Syntax

    +
    SliceTypeSpecification ::=
    +    [ ElementType ]
    +

    Legality Rules

    +

    4.4.2:1 +A slice type is a sequence type that provides a view into a sequence +of elements.

    +

    4.4.2:2 +The element type shall be a fixed sized type.

    +

    4.4.2:3 +A slice type is a dynamically sized type.

    +

    Examples

    +

    4.4.2:4 +A slice type in the context of a let statement:

    +
    let array: [i32; 3] = [1, 2, 3];
    +let slice: &[i32] = &array[0..1];
    +
    +
    +
    +
    +

    4.4.3. Str Type

    +

    Legality Rules

    +

    4.4.3:1 +Str is a sequence type that represents a slice of 8-bit unsigned +bytes.

    +

    4.4.3:2 +Type str is a dynamically sized type.

    +

    4.4.3:3 +A value of type str shall denote a valid UTF-8 sequence of +characters.

    +

    Undefined Behavior

    +

    4.4.3:4 +It is a safety invariant for a value of type str to denote +a valid UTF-8 sequence of characters.

    +
    +
    +

    4.4.4. Tuple Types

    +

    Syntax

    +
    TupleTypeSpecification ::=
    +    ( TupleFieldList? )
    +
    +TupleFieldList ::=
    +    TupleField (, TupleField)* ,?
    +
    +TupleField ::=
    +    TypeSpecification
    +

    Legality Rules

    +

    4.4.4:1 +A tuple type is a sequence type that represents a heterogeneous list +of other types.

    +

    4.4.4:2 +If the type of a tuple field is a dynamically-sized type, then +the tuple field shall be the last tuple field in the +TupleFieldList.

    +

    Examples

    +
    ()
    +(char,)
    +(i32, f64, Vec<String>)
    +
    +
    +
    +
    +
    +

    4.5. Abstract Data Types

    +
    +

    4.5.1. Enum Types

    +

    Syntax

    +
    EnumDeclaration ::=
    +    enum Name GenericParameterList? WhereClause? { EnumVariantList? }
    +
    +EnumVariantList ::=
    +    EnumVariant (, EnumVariant)* ,?
    +
    +EnumVariant ::=
    +    OuterAttributeOrDoc* VisibilityModifier? Name EnumVariantKind?
    +
    +EnumVariantKind ::=
    +    DiscriminantInitializer
    +  | RecordStructFieldList
    +  | TupleStructFieldList
    +
    +DiscriminantInitializer ::=
    +    = Expression
    +

    Legality Rules

    +

    4.5.1:1 +An enum type is an abstract data type that contains +enum variants.

    +

    4.5.1:2 +A zero-variant enum type has no values.

    +

    4.5.1:3 +An enum variant is a construct that declares one of the +possible variations of an enum.

    +

    4.5.1:4 +The name of an enum variant shall be unique within the related +EnumDeclaration.

    +

    B.171:1 +A discriminant is an opaque integer that identifies an enum variant.

    +

    4.5.1:6 +A discriminant initializer shall be specified only when all enum +variants appear without an EnumVariantKind.

    +

    4.5.1:7 +The type of the expression of a discriminant initializer shall +be either:

    + +

    4.5.1:10 +The value of the expression of a discriminant initializer shall +be a constant expression.

    +

    4.5.1:11 +The value of a discriminant of an enum variant is determined +as follows:

    +
      +
    1. 4.5.1:12 +If the enum variant contains a discriminant initializer, then the +value is the value of its expression.

    2. +
    3. 4.5.1:13 +Otherwise, if the enum variant is the first enum variant in the +EnumVariantList, then the value is zero.

    4. +
    5. 4.5.1:14 +Otherwise the value is one greater than the value of the +discriminant of the previous enum variant.

    6. +
    +

    4.5.1:15 +It is a static error if two enum variants have discriminants +with the same value.

    +

    4.5.1:16 +It is a static error if the value of a discriminant exceeds the +maximum value of the type of the expression of a discriminant +initializer.

    +

    Undefined Behavior

    +

    4.5.1:17 +It is a validity invariant for a value of an enum type to have a +discriminant specified by the enum type.

    +

    Examples

    +
    enum ZeroVariantEnumType {}
    +
    +enum Animal {
    +   Cat,
    +   Dog(String),
    +   Otter { name: String, weight: f64, age: u8 }
    +}
    +
    +enum Discriminants {
    +    First,       // The discriminant is 0.
    +    Second,      // The discriminant is 1.
    +    Third = 12,  // The discriminant is 12.
    +    Fourth,      // The discriminant is 13.
    +    Fifth = 34,  // The discriminant is 34.
    +    Sixth        // The discriminant is 35.
    +}
    +
    +
    +
    +
    +

    4.5.2. Struct Types

    +

    Syntax

    +
    StructDeclaration ::=
    +    RecordStructDeclaration
    +  | TupleStructDeclaration
    +  | UnitStructDeclaration
    +
    +RecordStructDeclaration ::=
    +    struct Name GenericParameterList? WhereClause? RecordStructFieldList
    +
    +RecordStructFieldList ::=
    +    { (RecordStructField (, RecordStructField)* ,?)? }
    +
    +RecordStructField ::=
    +    OuterAttributeOrDoc* VisibilityModifier? Name TypeAscription
    +
    +TupleStructDeclaration ::=
    +    struct Name GenericParameterList? TupleStructFieldList WhereClause? ;
    +
    +TupleStructFieldList ::=
    +    ( (TupleStructField (, TupleStructField)* ,?)? )
    +
    +TupleStructField ::=
    +    OuterAttributeOrDoc* VisibilityModifier? TypeSpecification
    +
    +UnitStructDeclaration ::=
    +    struct Name GenericParameterList? WhereClause? ;
    +

    Legality Rules

    +

    4.5.2:1 +A struct type is an abstract data type that is a product of other +types.

    +

    4.5.2:2 +The name of a record struct field shall be unique within the +related RecordStructDeclaration.

    +

    4.5.2:3 +If the type of a record struct field is a dynamically sized type, +then the record struct field shall be the last record struct field in +the RecordStructFieldList.

    +

    4.5.2:4 +If the type of a tuple struct field is a dynamically sized type, +then the tuple struct field shall be the last tuple struct field in +the TupleStructFieldList.

    +

    Examples

    +
    struct UnitStruct;
    +
    +struct AnimalRecordStruct {
    +    name: String,
    +    weight: f64,
    +    age: u8
    +}
    +
    +struct AnimalTupleStruct (
    +    String,
    +    f64,
    +    u8
    +);
    +
    +
    +
    +
    +

    4.5.3. Union Types

    +

    Syntax

    +
    UnionDeclaration ::=
    +    union Name GenericParameterList? WhereClause? RecordStructFieldList
    +

    Legality Rules

    +

    4.5.3:1 +A union type is an abstract data type that is a sum of other +types.

    +

    4.5.3:2 +The name of a union field shall be unique within the related +RecordStructDeclaration.

    +

    4.5.3:3 +The type of a union field shall be either:

    + +

    Examples

    +
    union LeafNode {
    +    int: i32,
    +    float: f32,
    +    double: f64
    +}
    +
    +
    +
    +
    +
    +

    4.6. Function Types

    +
    +

    4.6.1. Closure Types

    +

    Legality Rules

    +

    4.6.1:1 +A closure type is a unique anonymous function type that encapsulates +all capture targets of a closure expression.

    +

    4.6.1:2 +A closure type implements the core::ops::FnOnce trait.

    +

    4.6.1:3 +A closure type that does not move out its capture targets +implements the core::ops::FnMut trait.

    +

    4.6.1:4 +A closure type that does not move out or mutate its capture targets +implements the core::ops::Fn trait.

    +

    4.6.1:5 +A closure type that does not encapsulate capture targets is +coercible to a function pointer type.

    +

    4.6.1:6 +A closure type implicitly implements the core::marker::Copy +trait if all the types of the values of the +capturing environment implement the core::marker::Copy trait.

    +

    4.6.1:7 +A closure type implicitly implements the core::clone::Clone +trait if all the types of the values of the +capturing environment implement the core::clone::Clone trait.

    +

    4.6.1:8 +A closure type implicitly implements the core::marker::Send +trait if all the types of the values of the +capturing environment implement the core::marker::Send trait.

    +

    4.6.1:9 +A closure type implicitly implements the core::marker::Sync +trait if all the types of the values of the capturing +environment implement the core::marker::Send trait.

    +
    +
    +

    4.6.2. Function Item Types

    +

    Legality Rules

    +

    4.6.2:1 +A function item type is a unique anonymous function type that +identifies a function.

    +

    4.6.2:2 +An external function item type is a function item type where the +related function is an external function.

    +

    4.6.2:3 +An unsafe function item type is a function item type where the related +function is an unsafe function.

    +

    4.6.2:4 +A function item type is coercible to a function pointer type.

    +

    4.6.2:5 +A function item type implements the core::clone::Clone trait, +the core::marker::Copy trait, the core::ops::Fn trait, +the core::ops::FnMut trait, the core::ops::FnOnce trait, +the core::marker::Send trait, and the core::marker::Sync +trait.

    +
    +
    +
    +

    4.7. Indirection Types

    +
    +

    4.7.1. Function Pointer Types

    +

    Syntax

    +
    FunctionPointerTypeSpecification ::=
    +    ForGenericParameterList? FunctionPointerTypeQualifierList fn
    +      ( FunctionPointerTypeParameterList? ) ReturnTypeWithoutBounds?
    +
    +FunctionPointerTypeQualifierList ::=
    +    unsafe? AbiSpecification?
    +
    +FunctionPointerTypeParameterList ::=
    +    FunctionPointerTypeParameter (, FunctionPointerTypeParameter)*
    +      (, VariadicPart | ,?)
    +
    +VariadicPart ::=
    +    OuterAttributeOrDoc* ...
    +
    +FunctionPointerTypeParameter ::=
    +    OuterAttributeOrDoc* (IdentifierOrUnderscore :)? TypeSpecification
    +

    Legality Rules

    +

    4.7.1:1 +A function pointer type is an indirection type that refers to a +function.

    +

    4.7.1:2 +An unsafe function pointer type is a function pointer type subject to +keyword unsafe.

    +

    4.7.1:3 +A variadic part indicates the presence of C-like optional +parameters.

    +

    4.7.1:4 +A variadic part shall be specified only when the ABI of the +function pointer type is either extern "C" or extern "cdecl".

    +

    4.7.1:5 +The return type of a function pointer type is determined as follows:

    + +

    Undefined Behavior

    +

    4.7.1:8 +It is a validity invariant for a value of a function pointer type +to be not null.

    +

    Examples

    +
    unsafe extern "C" fn (value: i32, ...) -> f64
    +
    +
    +
    +
    +

    4.7.2. Raw Pointer Types

    +

    Syntax

    +
    RawPointerTypeSpecification ::=
    +    * (const | mut) TypeSpecificationWithoutBounds
    +

    Legality Rules

    +

    4.7.2:1 +A raw pointer type is an indirection type without validity guarantees.

    +

    4.7.2:2 +A mutable raw pointer type is a raw pointer type subject to +keyword mut.

    +

    4.7.2:3 +An immutable raw pointer type is a raw pointer type subject to +keyword const.

    +

    4.7.2:4 +Comparing two values of raw pointer types compares the addresses +of the values.

    +

    4.7.2:5 +Comparing a value of a raw pointer type to a value of a +dynamically sized type compares the data being pointed to.

    +

    Examples

    +
    *const i128
    +*mut bool
    +
    +
    +
    +
    +

    4.7.3. Reference Types

    +

    Syntax

    +
    ReferenceTypeSpecification ::=
    +    & LifetimeIndication? mut? TypeSpecificationWithoutBounds
    +

    Legality Rules

    +

    4.7.3:1 +A reference type is an indirection type with ownership.

    +

    4.7.3:2 +A shared reference type is a reference type not subject to +keyword mut.

    +

    4.7.3:3 +A shared reference type prevents the direct mutation of a referenced +value.

    +

    4.7.3:4 +A shared reference type implements the core::marker::Copy +trait. Copying a shared reference performs a shallow copy.

    +

    4.7.3:5 +Releasing a shared reference has no effect on the value it refers to.

    +

    4.7.3:6 +A mutable reference type is a reference type subject to keyword +mut.

    +

    4.7.3:7 +A mutable reference type allows the direct mutation of a referenced +value.

    +

    4.7.3:8 +A mutable reference type does not implement the copy::marker::Copy +trait.

    +

    Undefined Behavior

    +

    4.7.3:9 +It is validity invariant for a value of a reference type to be +not null.

    +

    Examples

    +
    &i16
    +&'a mut f32
    +
    +
    +
    +
    +
    +

    4.8. Trait Types

    +
    +

    4.8.1. Impl Trait Types

    +

    Syntax

    +
    ImplTraitTypeSpecification ::=
    +    impl TypeBoundList
    +
    +ImplTraitTypeSpecificationOneBound ::=
    +    impl TraitBound
    +

    Legality Rules

    +

    4.8.1:1 +An impl trait type is a type that implements a trait, where the +type is known at compile time.

    +

    4.8.1:2 +An impl trait type shall appear only within a function parameter or +the return type of a function.

    +

    4.8.1:3 +An impl trait type shall not contain opt-out trait bounds.

    +

    Examples

    +
    fn anonymous_type_parameter
    +    (arg: impl Copy + Send + Sync) { ... }
    +
    +fn anonymous_return_type () -> impl MyTrait { ... }
    +
    +
    +
    +
    +

    4.8.2. Trait Object Types

    +

    Syntax

    +
    TraitObjectTypeSpecification ::=
    +    dyn TypeBoundList
    +
    +TraitObjectTypeSpecificationOneBound ::=
    +    dyn TraitBound
    +

    Legality Rules

    +

    4.8.2:1 +A trait object type is a type that implements a trait, where the +type is not known at compile time.

    +

    4.8.2:2 +The first trait bound of a trait object type shall denote an +object safe trait. Any subsequent trait bounds shall denote +auto traits.

    +

    4.8.2:3 +A trait object type shall not contain opt-out trait bounds.

    +

    4.8.2:4 +A trait object type shall contain at most one lifetime bound.

    +

    4.8.2:5 +A trait object type is a dynamically sized type. A +trait object type permits late binding of methods. A method +invoked via a trait object type involves dynamic dispatching.

    +

    Examples

    +
    dyn MyTrait
    +dyn MyTrait + Send
    +dyn MyTrait + 'static + Copy
    +
    +
    +
    +
    +
    +

    4.9. Other Types

    +
    +

    4.9.1. Inferred Types

    +

    Syntax

    +
    InferredType ::=
    +    _
    +

    Legality Rules

    +

    4.9.1:1 +An inferred type is a placeholder for a type deduced by +type inference.

    +

    4.9.1:2 +An inferred type shall not appear in the following positions:

    + +

    4.9.1:7 +An inferred type forces a tool to deduce a type, if possible.

    +

    Examples

    +
    let values: Vec<_> = (0 .. 10).collect();
    +
    +
    +
    +
    +

    4.9.2. Type Parameters

    +

    Legality Rules

    +

    4.9.2:1 +A type parameter type is a placeholder type of a type parameter +to be substituted by generic substitution.

    +

    Examples

    +
    fn type_parameter<T>(parameter: T) {}
    +
    +
    +
    +
    +

    4.9.3. Never Type

    +

    Syntax

    +
    NeverType ::=
    +    !
    +

    Legality Rules

    +

    4.9.3:1 +The never type is a type that represents the result of a computation +that never completes.

    +

    4.9.3:2 +The never type has no values.

    +

    Undefined Behavior

    +

    4.9.3:3 +It is validity invariant to not have a value of the never type.

    +

    Examples

    +
    let never_completes: ! = panic!();
    +
    +
    +
    +
    +

    4.9.4. Parenthesized Types

    +

    Syntax

    +
    ParenthesizedTypeSpecification ::=
    +    ( TypeSpecification )
    +

    Legality Rules

    +

    4.9.4:1 +A parenthesized type is a type that disambiguates the interpretation +of lexical elements.

    +

    Examples

    +
    &'a (dyn MyTrait + Send)
    +
    +
    +
    +
    +
    +

    4.10. Type Aliases

    +

    Syntax

    +
    TypeAliasDeclaration ::=
    +    type Name GenericParameterList? (: TypeBoundList)? WhereClause?
    +      (= InitializationType WhereClause?)? ;
    +
    +InitializationType ::=
    +    TypeSpecification
    +

    Legality Rules

    +

    4.10:1 +A type alias is an item that defines a name for a type.

    +

    4.10:2 +A type alias shall not have a TypeBoundList unless it is an +associated item.

    +

    4.10:3 +The last where clause is rejected, but may still be consumed by +macros.

    +

    Examples

    +
    type Point = (f64, f64);
    +
    +
    +
    +
    +

    4.11. Representation

    +
    +

    4.11.1. Type Layout

    +

    Legality Rules

    +

    4.11.1:1 +All values have an alignment and a size.

    +

    4.11.1:2 +The alignment of a value specifies which addresses are valid for +storing the value. Alignment is measured in bytes, is at least one, +and always a power of two. A value of alignment N is stored at an +address that is a multiple of N.

    +

    4.11.1:3 +The size of a type is the offset in bytes between successive elements +in array type [T, N] where T is the type of the value, +including any padding for alignment. Size is a multiple of the +alignment.

    +

    4.11.1:4 +The size of scalar types is as follows:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    4.11.1:5

    Type

    Size

    4.11.1:6

    bool

    1

    4.11.1:7

    u8, i8

    1

    4.11.1:8

    u16, i16

    2

    4.11.1:9

    u32, i32

    4

    4.11.1:10

    u64, i64

    8

    4.11.1:11

    u128, i128

    16

    4.11.1:12

    f32

    4

    4.11.1:13

    f64

    8

    4.11.1:14

    char

    4

    +

    4.11.1:15 +Types usize and isize have size big enough to contain every +address on the target platform.

    +

    4.11.1:16 +For type str, the layout is that of slice type +[u8].

    +

    4.11.1:17 +For array type [T; N] where T is the element type and N +is size operand, the alignment is that of T, and the size is +calculated as core::mem::size_of::<T>() * N.

    +

    4.11.1:18 +For a slice type, the layout is that of the array type it slices.

    +

    4.11.1:19 +For a tuple type, the layout is tool-defined. For a unit tuple, +the size is zero and the alignment is one.

    +

    4.11.1:20 +For a closure type, the layout is tool-defined.

    +

    4.11.1:21 +For a thin pointer, the size and alignment are those of type +usize.

    +

    4.11.1:22 +For a function pointer type, the size and alignment are those of +a thin pointer.

    +

    4.11.1:23 +For a fat pointer, the size and alignment are tool-defined, but +are at least those of a thin pointer.

    +

    4.11.1:24 +For a trait object type, the layout is the same as the value +being coerced into the trait object type at runtime.

    +

    4.11.1:25 +For a struct type, the memory layout is undefined, unless the +struct type is subject to attribute repr.

    +

    4.11.1:26 +For a union type, the memory layout is undefined, unless the +union type is subject to attribute repr. All union fields +share a common storage.

    +

    4.11.1:27 +The size of a recursive type shall be finite.

    +
    +
    +

    4.11.2. Type Representation

    +

    Legality Rules

    +

    4.11.2:1 +Type representation specifies the layout of fields of +abstract data types. Type representation changes the bit padding +between fields of abstract data types as well as their order, but +does not change the layout of the fields themselves.

    +

    4.11.2:2 +Type representation is classified into:

    + +

    4.11.2:7 +C representation lays out a type such that the type is +interoperable with the C language.

    +

    4.11.2:8 +Default representation makes no guarantees about the layout.

    +

    4.11.2:9 +Primitive representation is the type representation of individual +integer types. Primitive representation applies only to an +enum type that is not a zero-variant enum type. It is possible to +combine C representation and primitive representation.

    +

    4.11.2:10 +Transparent representation applies only to an enum type with a +single enum variant or a struct type where the struct type or +enum variant has a single field of non-zero size and any number +of fields of size zero and alignment one.

    +

    4.11.2:11 +Types subject to transparent representation have the same +type representation as the type of their field with non-zero +size.

    +

    4.11.2:12 +Type representation may be specified using attribute repr. An +enum type, a struct type, or a union type that is not subject to +attribute repr has default representation.

    +

    4.11.2:13 +Type representation may be specified using attribute repr and +modified further using attribute repr‘s Alignment +representation modifiers. A representation modifier shall apply only +to a struct type or a union type subject to C representation or +default representation.

    +
    +

    4.11.2.1. Enum Type Representation

    +

    Legality Rules

    +

    4.11.2.1:1 +Zero-variant enum types shall not be subject to C representation.

    +

    4.11.2.1:2 +The size and alignment of an enum type without fields +subject to C representation, default representation, or +primitive representation are those of its discriminant.

    +

    4.11.2.1:3 +The discriminant type of an enum type with C representation is +the corresponding c signed int type for the target platform’s C +ABI.

    +

    4.11.2.1:4 +The discriminant type of an enum type with default representation +is tool-defined.

    +

    4.11.2.1:5 +The discriminant type of an enum type with +primitive representation is the integer type specified by the +primitive representation.

    +

    4.11.2.1:6 +It is a static error if the discriminant type cannot hold all the +discriminant values of an enum type.

    +

    4.11.2.1:7 +An enum type subject to transparent representation shall have a single +enum variant with

    + +

    4.11.2.1:10 +An enum type subject to C representation or primitive +representation has the same type representation as a union type with +C representation that is laid out as follows:

    + +

    4.11.2.1:14 +An enum type subject to transparent representation has the same +type representation as the single field of non-zero size of its +enum variant if one is present, otherwise the enum type has size +zero and alignment one.

    +
    +
    +

    4.11.2.2. Struct Type Representation

    +

    Legality Rules

    +

    4.11.2.2:1 +The alignment of a struct type subject to C representation is +the alignment of the most-aligned field in it.

    +

    4.11.2.2:2 +The size of a struct type subject to C representation is +determined as follows:

    +
      +
    1. 4.11.2.2:3 +Initialize a current offset to zero.

    2. +
    3. 4.11.2.2:4 +For each field of the struct type in declarative order:

      +
        +
      1. 4.11.2.2:5 +Calculate the size and alignment of the field.

      2. +
      3. 4.11.2.2:6 +If the current offset is not a multiple of the field's +alignment, add byte padding to the current offset until it is a +multiple of the alignment. The offset of the field is the +current offset.

      4. +
      5. 4.11.2.2:7 +Increase the current offset by the size of the field.

      6. +
      7. 4.11.2.2:8 +Proceed with the next field.

      8. +
      +
    4. +
    5. 4.11.2.2:9 +Round up the current offset to the nearest multiple of the struct +type's alignment.

    6. +
    7. 4.11.2.2:10 +The size of the struct type is the current offset.

    8. +
    +

    4.11.2.2:11 +A struct type subject to transparent representation shall have:

    + +

    4.11.2.2:14 +A struct type subject to transparent representation has the same +type representation as the single field of non-zero size if one +is present, otherwise the struct type has size zero and alignment +one.

    +
    +
    +

    4.11.2.3. Union Type Representation

    +

    Legality Rules

    +

    4.11.2.3:1 +The size of a union type subject to C representation is +the maximum of the sizes of all its fields, rounded up to +alignment of the union type.

    +

    4.11.2.3:2 +The alignment of a union type subject to C representation is the +maximum of the alignments of all of its fields.

    +
    +
    +
    +
    +

    4.12. Type Model

    +
    +

    4.12.1. Recursive Types

    +

    Legality Rules

    +

    4.12.1:1 +A recursive type is a type whose contained types refer back to +the containing type, either directly or by referring to another type +which refers back to the original recursive type.

    +

    4.12.1:2 +A type that is not an abstract data type shall not be recursive.

    +

    Examples

    +
    enum List<T> {
    +    Nil,
    +    Cons(T, Box<List<T>>)
    +}
    +
    +
    +
    +
    +

    4.12.2. Type Unification

    +

    Legality Rules

    +

    4.12.2:1 +Type unification is the process by which type inference propagates +known types across the type inference root and assigns concrete +types to type variables, as well as a general mechanism to check +for compatibility between two types during method resolution.

    +

    4.12.2:2 +A type is said to unify with another type when the domains, +ranges, and structures of both types are compatible according to the +rules detailed below.

    +

    4.12.2:3 +Two types that unify are said to be unifiable types.

    +

    4.12.2:4 +Type unification is a symmetric operation. If type A unifies +with type B, then B also unifies with A and such +type unification results in the same observable effects.

    +

    4.12.2:5 +If one of the two types is a type variable, type unification +proceeds as follows:

    +
      +
    1. 4.12.2:6 +If either type is a global type variable, the +global type variable is assigned the type of the other unification +operand.

    2. +
    3. 4.12.2:7 +Otherwise, if either type is a diverging type variable, the +diverging type variable is assigned the type of the other +unification operand.

    4. +
    5. 4.12.2:8 +Otherwise, if one type T is an integer type variable, behavior +depends on the other type U:

      +
        +
      1. 4.12.2:9 +If U is an integer type or an integer type variable, the +integer type variable T is assigned type U.

      2. +
      3. 4.12.2:10 +Otherwise, type unification fails.

      4. +
      +
    6. +
    7. 4.12.2:11 +Otherwise, if one type T is an floating-point type variable, +behavior depends on the other type U:

      +
        +
      1. 4.12.2:12 +If U is an floating-point type or an +floating-point type variable, the floating-point type variable +T is assigned type U.

      2. +
      3. 4.12.2:13 +Otherwise, type unification fails.

      4. +
      +
    8. +
    9. 4.12.2:14 +Otherwise, neither type is a type variable, and the rules below +are in effect.

    10. +
    +

    4.12.2:15 +A scalar type is unifiable only with itself.

    +

    4.12.2:16 +The never type is unifiable with any other type.

    +

    4.12.2:17 +An array type is unifiable only with another array type when

    + +

    4.12.2:20 +A slice type is unifiable only with another slice type when the +element types of both slice types are unifiable.

    +

    4.12.2:21 +Type str is unifiable only with itself.

    +

    4.12.2:22 +A tuple type is unifiable only with another tuple type when:

    + +

    4.12.2:25 +An abstract data type is unifiable only with another +abstract data type when:

    + +

    4.12.2:28 +A closure type is unifiable only with another closure type when:

    + +

    4.12.2:31 +A function item type is unifiable only with another function item type +when:

    + +

    4.12.2:34 +A function pointer type is unifiable only with another +function pointer type when:

    + +

    4.12.2:42 +A raw pointer type is unifiable only with another raw pointer type +when:

    + +

    4.12.2:45 +A reference type is unifiable only with another reference type when:

    + +

    4.12.2:48 +An anonymous return type is unifiable with another type when:

    + +

    4.12.2:51 +An impl trait type is unifiable only with itself.

    +

    4.12.2:52 +A trait object type is unifiable only with another trait object type +when:

    +
      +
    • 4.12.2:53 +The bounds are unifiable, and

    • +
    • 4.12.2:54 +The lifetimes are unifiable.

    • +
    +

    4.12.2:55 +A type alias is unifiable with another type when the aliased type +is unifiable with the other type.

    +
    +
    +

    4.12.3. Type Coercion

    +

    Legality Rules

    +

    4.12.3:1 +Type coercion is an implicit operation that changes the type of a +value. Any implicit conversion allowed by type coercion can be made +explicit using a type cast expression.

    +

    4.12.3:2 +A type coercion takes place at a coercion site or within a +coercion-propagating expression.

    +

    4.12.3:3 +The following constructs constitute a coercion site:

    + +

    4.12.3:10 +The following expressions constitute a +coercion-propagating expression:

    + +

    4.12.3:15 +Type coercion from a source type to a target type is allowed to +occur when:

    + +

    4.12.3:29 +An unsized coercion is a type coercion that converts a sized type +into an unsized type. Unsized coercion from a source type to a +target type is allowed to occur when:

    +
      +
    • 4.12.3:30 +The source type is array type [T; N] and the target type is +slice type [T].

    • +
    • 4.12.3:31 +The source type is T and the target type is dyn U, where +T implements U + core::marker::Sized, and U is object safe.

    • +
    • 4.12.3:32 +The source type is

    • +
    +
    S<..., T, ...> {
    +    ...
    +    last_field: X
    +}
    +
    +
    +

    4.12.3:33 +where

    +
      +
    • 4.12.3:34 +S is a struct type,

    • +
    • 4.12.3:35 +T implements core::marker::Unsize<U>,

    • +
    • 4.12.3:36 +last_field is a struct field of S,

    • +
    • 4.12.3:37 +The type of last_field involves T and if the type of +last_field is W<T>, then W<T> implements +core::marker::Unsize<W<U>>,

    • +
    • 4.12.3:38 +T is not part of any other struct field of S.

    • +
    +

    4.12.3:39 +and the target type is S<..., U, ...>.

    +

    4.12.3:40 +Least upper bound coercion is a multi-type coercion that is used in +the following scenarios:

    + +

    4.12.3:47 +Least upper bound coercion considers a set of source types T1, +T2, ..., TN and target type U. The target type is +obtained as follows:

    +
      +
    1. 4.12.3:48 +Initialize target type U to source type T1.

    2. +
    3. 4.12.3:49 +For each current source type TC in the inclusive range T1 to +TN

      +
        +
      1. 4.12.3:50 +If TC can be coerced to U, then continue with the next source +type.

      2. +
      3. 4.12.3:51 +Otherwise, if U can be coerced to TC, make TC the target +type U.

      4. +
      5. 4.12.3:52 +Otherwise, if TC and U are non-capturing closure types, +function item types, function pointer types, or a +combination of those types, and a function pointer type exists +that both TC and U can coerce to, make that +function pointer type be target type U.

      6. +
      7. 4.12.3:53 +Otherwise, no coercion is performed.

      8. +
      9. 4.12.3:54 +Continue with the next source type.

      10. +
      +
    4. +
    +
    +
    +

    4.12.4. Structural Equality

    +

    Legality Rules

    +

    4.12.4:1 +A type is structurally equal when its values can be compared +for equality by structure.

    +

    4.12.4:2 +The following types are structurally equal:

    + +
    +
    +

    4.12.5. Interior Mutability

    +

    Legality Rules

    +

    4.12.5:1 +Interior mutability is a property of types whose values can +be modified through immutable references.

    +

    4.12.5:2 +A type is subject to interior mutability when it contains a +core::cell::UnsafeCell.

    +
    +
    +

    4.12.6. Type Inference

    +

    Legality Rules

    +

    4.12.6:1 +Type inference is the process of automatically determining the type of +expressions and patterns within a type inference root.

    +

    4.12.6:2 +A type inference root is an expression whose inner expressions +and patterns are subject to type inference independently of those +found in other type inference roots.

    +

    4.12.6:3 +The following expressions are considered type inference roots:

    + +

    4.12.6:12 +A type inference root imposes an expected type on its expression +depending on the type inference root as follows:

    + +

    4.12.6:21 +A type variable is a placeholder used during type inference to stand +in for an undetermined type of an expression or a pattern.

    +

    4.12.6:22 +A global type variable is a type variable that can refer to any +type.

    +

    4.12.6:23 +An integer type variable is a type variable that can refer only to +integer types.

    +

    4.12.6:24 +A floating-point type variable is a type variable that can refer only +to floating-point types.

    +

    4.12.6:25 +A diverging type variable is a type variable that can refer to any +type and originates from a diverging expression.

    +

    4.12.6:26 +A lifetime variable is a placeholder used during type inference to +stand in for an undetermined lifetime of a type.

    +

    4.12.6:27 +The type inference algorithm uses type unification to propagate known +types of expressions and patterns across the +type inference root being inferred. In the rules detailed below, a static +error occurs when type unification fails.

    +

    4.12.6:28 +Performing type inference may introduce a requirement that some type +must implement a trait, or that a type or lifetime must outlive +some other lifetime. Such requirements are referred to as +obligations and are detailed in the inference rules below.

    +

    4.12.6:29 +If insufficient type information is available at the time an +obligation is introduced, it may be deferred to be resolved later. +Any time new type information is derived during type inference, the +tool attempts to resolve all outstanding obligations and propagate +any resulting type information via type unification.

    +

    4.12.6:30 +When an associated type <Type as Trait>::Assoc is referenced within a +type inference root (either explicitly within the source code, or via the +inferece rules below), an obligation requiring that Type implements +Trait is introduced.

    +

    4.12.6:31 +Type inference for a type inference root proceeds as follows:

    +
      +
    1. 4.12.6:32 +Recursively process all expressions and statements in the +type inference root in program order.

      +
        +
      1. 4.12.6:33 +For each statement, apply the statement inference rules outlined below.

      2. +
      3. 4.12.6:34 +For each expression, apply the expression inference rules outlined below.

      4. +
      +
    2. +
    3. 4.12.6:35 +If there are any remaining integer type variables that have not been +unified with a concrete integer type, perform integer type fallback by +unifying them with i32.

    4. +
    5. 4.12.6:36 +If there are any remaining floating-point type variables that have not +been unified with a concrete floating-point type, perform floating-point +type fallback by unifying them with f64.

    6. +
    7. 4.12.6:37 +If there are any remaining diverging type variables that have not been +unified with a concrete type, unify them with the unit type.

    8. +
    9. 4.12.6:38 +If there are any remaining global type variables that have not been +unified with a concrete type, raise a static error.

    10. +
    11. 4.12.6:39 +If there are any remaining obligations that do not hold or cannot be +resolved with the available type information, raise a static error.

    12. +
    +

    4.12.6:40 +The type inference rules for statements are as follows:

    + +

    4.12.6:47 +Type inference of expressions may incorporate an expected type, +derived from the context the expression appears in. If the expression +is a coercion site or a coercion-propagating expression, the type +derived via type inference may be coerced to the expected type. If no +type coercion to the expected type is possible, or the expression +is not a coercion site or a coercion-propagating expression, the +inferred expression type is unified with the expected type.

    +

    4.12.6:48 +The type inference rules for expressions are as follows:

    + +

    4.12.6:106 +If an expression is a diverging expression, its type is a new +diverging type variable.

    +
    +
    +
    +

    4.13. Traits

    +

    Syntax

    +
    TraitDeclaration ::=
    +    unsafe? trait Name GenericParameterList? (: SupertraitList?)? WhereClause? TraitBody
    +
    +SupertraitList ::=
    +    TypeBoundList
    +
    +TraitBody ::=
    +    {
    +      InnerAttributeOrDoc*
    +      AssociatedItem*
    +    }
    +

    Legality Rules

    +

    4.13:1 +A trait is an item that describes an interface a type can +implement.

    +

    4.13:2 +A trait body is a construct that encapsulates the +associated items, inner attributes, and +inner doc comments of a trait.

    +

    4.13:3 +Within a trait, the type Self acts as a placeholder for a +type implementing the trait, and behaves like a type parameter.

    +

    4.13:4 +A local trait is a trait that is defined in the current crate.

    +

    B.378:1 +A subtrait is a trait with a supertrait.

    +

    4.13:6 +A supertrait is a transitive trait that a type must additionally +implement.

    +

    4.13:7 +A subtrait shall not be its own supertrait.

    +

    4.13:8 +A trait of the form

    +
    trait T: Bound {}
    +
    +
    +

    4.13:9 +is equivalent to a where clause of the following form:

    +
    trait T where Self: Bound {}
    +
    +
    +

    4.13:10 +An auto trait is a trait that is implicitly and automatically +implemented by a type when the types of its constituent fields +implement the trait.

    +

    4.13:11 +A type that has no fields implements all auto traits.

    +

    4.13:12 +If determining whether a type T implements an auto trait +would recursively depend on whether T implements said auto trait, this +requirement is ignored and assumed to hold.

    +

    4.13:13 +The following traits are auto traits:

    + +

    4.13:19 +No other traits are auto traits.

    +

    Examples

    +
    trait Sequence<T> {
    +    fn length(&self) -> u32;
    +    fn element_at(&self, position: u32) -> T;
    +}
    +
    +
    +

    4.13:20 +Shape is a supertrait of Circle.

    +
    trait Shape {
    +    fn area(&self) -> f64;
    +}
    +
    +
    +

    4.13:21 +Circle is a subtrait of Shape.

    +
    trait Circle: Shape {
    +    fn radius(&self) -> f64;
    +}
    +
    +
    +
    +

    4.13.1. Object Safety

    +

    Legality Rules

    +

    4.13.1:1 +A trait is object safe when:

    + +

    4.13.1:7 +An associated function is object safe when it is either an +object safe dispatchable function or an object safe +non-dispatchable function.

    +

    4.13.1:8 +A dispatchable function is object safe when:

    + +

    4.13.1:12 +A function is object safe when it specifies a +core::marker::Sized trait bound for Self in a +type bound predicate.

    +
    +
    +
    +

    4.14. Trait and Lifetime Bounds

    +

    Syntax

    +
    TypeBoundList ::=
    +    TypeBound (+ TypeBound)* +?
    +
    +TypeBound ::=
    +    LifetimeIndication
    +  | ParenthesizedTraitBound
    +  | TraitBound
    +
    +LifetimeIndication ::=
    +    Lifetime
    +  | '_
    +  | 'static
    +
    +LifetimeIndicationList ::=
    +    LifetimeIndication (+ LifetimeIndication)* +?
    +
    +ParenthesizedTraitBound ::=
    +    ( TraitBound )
    +
    +TraitBound ::=
    +    ?? ForGenericParameterList? TypePath
    +
    +ForGenericParameterList ::=
    +    for GenericParameterList
    +

    Legality Rules

    +

    4.14:1 +A bound imposes a constraint on a generic parameter by limiting the +set of possible generic substitutions.

    +

    4.14:2 +A bound does not impose a constraint on a generic parameter of a +type alias unless it is an associated item.

    +

    4.14:3 +A lifetime bound is a bound that imposes a constraint on the +lifetimes of generic parameters.

    +

    4.14:4 +A trait bound is a bound that imposes a constraint on the +traits of generic parameters.

    +

    4.14:5 +A ForGenericParameterList shall not specify ConstantParameters or +TypeParameters.

    +

    4.14:6 +A higher-ranked trait bound is a bound that specifies an infinite +list of bounds for all possible lifetimes specified by the +ForGenericParameterList.

    +

    4.14:7 +An opt-out trait bound is a trait bound with Punctuation ? +that nullifies an implicitly added trait bound.

    +

    4.14:8 +An outlives bound is a trait bound which requires that a +lifetime parameter or type outlives a lifetime parameter.

    +

    4.14:9 +Outlives bound 'a: 'b indicates that 'a outlives 'b.

    +

    4.14:10 +Outlives bound T: 'a indicates that all lifetime parameters of +T outlive 'a.

    +

    4.14:11 +An implied bound is a bound that is not expressed in syntax, but is +is the byproduct of relations between lifetime parameters and +function parameters, between lifetime parameters and a +return type, and between lifetime parameters and fields.

    +

    4.14:12 +A reference of the form &'a T, where 'a is a +lifetime parameter and T is a type, yields implied bound +T: 'a.

    +

    4.14:13 +If an outlives bound applies to the type of a field, then this +bound also applies to the related abstract data type as an +implied bound.

    +

    4.14:14 +If an outlives bound applies to the type of a function parameter +or to a return type, then this bound also applies to the related +function as an implied bound.

    +

    Examples

    +
    fn draw<T: Shape>(shape: T) { ... }
    +
    +
    +
    +

    4.14.1. Lifetimes

    +

    Syntax

    +
    Lifetime ::=
    +    ' NonKeywordIdentifier
    +
    +AttributedLifetime ::=
    +    OuterAttributeOrDoc* Lifetime
    +
    +AttributedLifetimeList ::=
    +    AttributedLifetime (, AttributedLifetime)* ,?
    +

    Legality Rules

    +

    4.14.1:1 +A lifetime specifies the expected longevity of a value.

    +

    4.14.1:2 +A lifetime bound shall apply to types and other lifetimes.

    +

    Examples

    +
    &'a i32
    +&'static Shape
    +
    +
    +

    4.14.1:3 +See Paragraph 4.12. for the declaration of Shape.

    +
    +
    +

    4.14.2. Subtyping and Variance

    +

    Legality Rules

    +

    4.14.2:1 +Subtyping is a property of types, allowing one type to be used +where another type is expected.

    +

    4.14.2:2 +Variance is a property of lifetime parameters and +type parameters that describes the circumstances under which a +generic type is a subtype of an instantiation of itself with +different generic arguments.

    +

    4.14.2:3 +A type is its own subtype.

    +

    4.14.2:4 +F<T> is said to be

    +
      +
    • 4.14.2:5 +Covariant over T, when T being a subtype of U implies +that F<T> is a subtype of F<U>, or

    • +
    • 4.14.2:6 +Contravariant over T, when T being a subtype of U +implies that F<U> is a subtype of F<T>, or

    • +
    • 4.14.2:7 +Invariant over T.

    • +
    +

    4.14.2:8 +Variance is determined as follows:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    4.14.2:9

    Type

    Variance in ‘a

    Variance in T

    4.14.2:10

    &'a T

    covariant

    covariant

    4.14.2:11

    &'a mut T

    covariant

    invariant

    4.14.2:12

    *const T

    covariant

    4.14.2:13

    *mut T

    invariant

    4.14.2:14

    [T]

    covariant

    4.14.2:15

    [T; N]

    covariant

    4.14.2:16

    fn() -> T

    covariant

    4.14.2:17

    fn(T) -> ()

    contravariant

    4.14.2:18

    fn(T) -> T

    invariant

    4.14.2:19

    core::call::UnsafeCell<T>

    invariant

    4.14.2:20

    core::marker::PhantomData<T>

    covariant

    4.14.2:21

    dyn Trait<T> + 'a

    covariant

    invariant

    +

    4.14.2:22 +A trait is invariant in all inputs, including the Self parameter.

    +

    4.14.2:23 +Lifetime parameters and type parameters are subject to +variance.

    +

    4.14.2:24 +The variance of a generic parameter of an abstract data type or +an tuple type is determined as follows:

    +
      +
    1. 4.14.2:25 +For each generic parameter G:

      +
        +
      1. 4.14.2:26 +Initialize variance V of the generic parameter to any.

      2. +
      3. 4.14.2:27 +For each field of the abstract data type or the +tuple type:

        +
          +
        1. 4.14.2:28 +If field type T uses G, then

          +
            +
          1. 4.14.2:29 +If V is any, set V to the variance of T over +G.

          2. +
          3. 4.14.2:30 +Otherwise if V and the variance of T over G differ, +set V to invariant.

          4. +
          +
        2. +
        +
      4. +
      5. 4.14.2:31 +It is a static error if variance V is any.

      6. +
      +
    2. +
    +

    4.14.2:32 +Expressions and statements may impose subtyping requirements +on their subexpressions. Such requirements are applied after +type inference, on the inferred types of the respective +expressions and patterns.

    +

    4.14.2:33 +It is a static error if any subtyping requirements are not met.

    +

    4.14.2:34 +The subtyping requirements for statements are as follows:

    + +

    4.14.2:38 +The subtyping requirements for expressions are as follows:

    + +

    4.14.2:46 +Any type coercion resulting in a method invocation imposes the same +subtyping requirements as an explicit invocation of that method would.

    +
    +
    +

    4.14.3. Lifetime Elision

    +

    Legality Rules

    +

    4.14.3:1 +Lifetime elision is a set of rules that automatically insert +lifetime parameters and/or lifetime arguments when they are +elided in the source code.

    +

    4.14.3:2 +A lifetime may be elided either implicitly or explicitly.

    +

    4.14.3:3 +A lifetime is elided explicitly if it is the '_ lifetime.

    +

    4.14.3:4 +A lifetime is elided implicitly if it is absent.

    +

    4.14.3:5 +Lifetime elision rules are introduced by certain constructs and may +be nested.

    +

    4.14.3:6 +An elided lifetime is subject to the set of lifetime elision rules +introduced by the innermost construct containing the elided lifetime.

    +

    4.14.3:7 +It is a static error to elide a lifetime in a position where no +lifetime elision rules are active.

    +

    4.14.3:8 +Lifetimes cannot be implicitly elided within impl trait types. +If no lifetime bound is present, the impl trait type is not considered +to be bound by any lifetime.

    +
    +

    4.14.3.1. Function Lifetime Elision

    +

    Legality Rules

    +

    4.14.3.1:1 +Function lifetime elision is a form of lifetime elision that applies +to functions, function pointer type parameters, and paths +that resolve to one of the core::ops::Fn, core::ops::FnMut, and +core::ops::FnOnce traits.

    +

    4.14.3.1:2 +An input lifetime is one of the following lifetimes:

    + +

    4.14.3.1:7 +An output lifetime is one of the following lifetimes:

    + +

    4.14.3.1:11 +Lifetime elision proceeds as follows:

    +
      +
    1. 4.14.3.1:12 +Each elided input lifetime is a distinct lifetime parameter in +its related construct.

    2. +
    3. 4.14.3.1:13 +If a construct has exactly one input lifetime, then that +lifetime is assigned to all elided output lifetimes.

    4. +
    5. 4.14.3.1:14 +If a function has a self parameter of the form &self, +&mut self, or self: T where T is a type with a +lifetime, then the lifetime of the self parameter is assigned +to all elided output lifetimes.

    6. +
    7. 4.14.3.1:15 +Otherwise this is a static error.

    8. +
    +

    Examples

    +

    4.14.3.1:16 +Given function f of the form

    +
    fn f <'a, 'b, T: ToCStr>(&'a mut self, args: &'b [T]) -> &'a mut Command;
    +
    +
    +

    4.14.3.1:17 +its lifetime elided form is

    +
    fn f <T: ToCStr>(&mut self, args: &[T]) -> &mut Command;
    +
    +
    +
    +
    +

    4.14.3.2. Static Lifetime Elision

    +

    Legality Rules

    +

    4.14.3.2:1 +Static lifetime elision is a form of lifetime elision that applies to +the type ascription of constants and statics.

    +

    4.14.3.2:2 +An elided lifetime of a reference type or path in the +type specification of a constant or static is inferred to be the +'static' lifetime.

    +

    4.14.3.2:3 +The lifetime of an associated implementation constant shall not be +elided.

    +

    4.14.3.2:4 +The lifetime of an associated trait constant shall not be elided.

    +

    Examples

    +

    4.14.3.2:5 +Given static S of the form

    +
    static S: &[&usize] = &[];
    +
    +
    +

    4.14.3.2:6 +its lifetime elided form is

    +
    static S: &'static [&'static usize] = &[];
    +
    +
    +
    +
    +

    4.14.3.3. Trait Object Lifetime Elision

    +

    Legality Rules

    +

    4.14.3.3:1 +Trait object lifetime elision is a form of lifetime elision that +applies to trait object types.

    +

    4.14.3.3:2 +An elided lifetime of a trait object type is inferred as follows:

    + +

    Examples

    +

    4.14.3.3:10 +Given type alias T of the form

    +
    type T<'a> = &'a dyn Trait;
    +
    +
    +

    4.14.3.3:11 +its lifetime elided form is

    +
    type T<'a> = &'a (dyn Trait + 'a);
    +
    +
    +
    +
    +

    4.14.3.4. Impl Header Lifetime Elision

    +

    Legality Rules

    +

    4.14.3.4:1 +Impl header lifetime elision is a form of lifetime elision that +applies to the implementing type and implemented trait (if any) of an +implementation.

    +

    4.14.3.4:2 +The impl header lifetime elision rules are as follows:

    + +

    Examples

    +

    4.14.3.4:6 +Given an implementation of the form

    +
    impl Trait<&u8, Strukt<'_>> for &i32 {}
    +
    +
    +

    4.14.3.4:7 +its lifetime elided form is

    +
    impl<'a, 'b, 'c> Trait<&'a u8, Strukt<'b>> for &'c i32 {}
    +
    +
    +

    4.14.3.4:8 +where 'a, 'b, and 'c are anonymous lifetime parameters that +cannot be named by user-written code.

    +
    +
    +
    +
    + + +
    +
    +

    + Copyright © The Ferrocene Developers. + + Contents released under the MIT or Apache 2.0 license. + +

    + + +

    Built from commit: 2d7de7f91004615d8c7b4fb2416718fb7bb4f769

    + +

    Ferrocene is a registered trademark of Critical Section GmbH.

    +
    +
    +
    + + + \ No newline at end of file diff --git a/undefined-behavior.html b/undefined-behavior.html new file mode 100644 index 00000000..d75c2c1b --- /dev/null +++ b/undefined-behavior.html @@ -0,0 +1,138 @@ + + + + + + + + + + + + C. List of undefined behavior — Ferrocene Language Specification + + + + + + + + + + + + + +
    + +
    + +
    +

    + Copyright © The Ferrocene Developers. + + Contents released under the MIT or Apache 2.0 license. + +

    + + +

    Built from commit: 2d7de7f91004615d8c7b4fb2416718fb7bb4f769

    + +

    Ferrocene is a registered trademark of Critical Section GmbH.

    +
    +
    +
    + + + \ No newline at end of file diff --git a/unsafety.html b/unsafety.html new file mode 100644 index 00000000..0b4055ba --- /dev/null +++ b/unsafety.html @@ -0,0 +1,138 @@ + + + + + + + + + + + + 19. Unsafety — Ferrocene Language Specification + + + + + + + + + + + + + + +
    + +
    +
    + +
    +

    19. Unsafety

    +

    Legality Rules

    +

    19:1 +Unsafety is the presence of unsafe operations and unsafe trait +implementations in program text.

    +

    19:2 +An unsafe operation is an operation that may result in +undefined behavior that is not diagnosed as a static error. +Unsafe operations are referred to as unsafe Rust.

    +

    19:3 +The unsafe operations are:

    + +

    19:10 +An unsafe context is either an unsafe block or an +unsafe function.

    +

    19:11 +An unsafe operation shall be used only within an unsafe context.

    +
    + + +
    +
    +

    + Copyright © The Ferrocene Developers. + + Contents released under the MIT or Apache 2.0 license. + +

    + + +

    Built from commit: 2d7de7f91004615d8c7b4fb2416718fb7bb4f769

    + +

    Ferrocene is a registered trademark of Critical Section GmbH.

    +
    +
    +
    + + + \ No newline at end of file diff --git a/values.html b/values.html new file mode 100644 index 00000000..0f071507 --- /dev/null +++ b/values.html @@ -0,0 +1,306 @@ + + + + + + + + + + + + 7. Values — Ferrocene Language Specification + + + + + + + + + + + + + + +
    + +
    +
    + +
    +

    7. Values

    +

    Legality Rules

    +

    7:1 +A value is either a literal or the result of a computation, that may +be stored in a memory location, and interpreted based on some type.

    +

    7:2 +Two values overlap when

    + +

    Undefined Behavior

    +

    7:7 +It is undefined behavior to create a value from uninitialized memory unless +the type of the value is a union type.

    +
    +

    7.1. Constants

    +

    Syntax

    +
    ConstantDeclaration ::=
    +    const (Name | _) TypeAscription ConstantInitializer? ;
    +
    +ConstantInitializer ::=
    +    = Expression
    +

    Legality Rules

    +

    7.1:1 +A constant is an immutable value whose uses are substituted by +the value.

    +

    7.1:2 +An unnamed constant is a constant declared with character 0x5F (low +line).

    +

    7.1:3 +The type specification of a constant shall have 'static +lifetime.

    +

    7.1:4 +The type of a constant shall implement the core::marker::Sized +trait.

    +

    7.1:5 +A constant initializer is a construct that provides the value of +its related constant.

    +

    7.1:6 +A constant shall have a constant initializer, unless it is an +associated trait constant.

    +

    7.1:7 +The expression of a constant initializer shall be a +constant expression.

    +

    7.1:8 +The value of a constant is determined by evaluating its +constant initializer.

    +

    7.1:9 +A use of a constant is a value expression and creates a copy of the +constant’s value.

    +

    Dynamic Semantics

    +

    7.1:10 +The elaboration of a constant evaluates its constant initializer.

    +

    7.1:11 +A path that refers to a constant is replaced with the value of +the constant.

    +

    Examples

    +
    const ZERO: u32 = 0;
    +
    +
    +
    +
    +

    7.2. Statics

    +

    Syntax

    +
    StaticDeclaration ::=
    +    static mut? Name TypeAscription StaticInitializer? ;
    +
    +StaticInitializer ::=
    +    = Expression
    +

    Legality Rules

    +

    7.2:1 +A static is a value that is associated with a specific memory +location.

    +

    7.2:2 +A static defined within a generic function exists once in the +output executable or library.

    +

    7.2:3 +The type specification of a static shall have 'static +lifetime.

    +

    7.2:4 +The type of a static shall implement the core::marker::Sized +trait.

    +

    7.2:5 +A mutable static is a static with keyword mut whose +value can be modified.

    +

    7.2:6 +Access to a mutable static shall require unsafe context.

    +

    7.2:7 +An immutable static is a static whose value cannot be modified.

    +

    7.2:8 +The type of an immutable static shall implement the +core::marker::Sync trait.

    +

    7.2:9 +A static initializer is a construct that provides the value of +its related static.

    +

    7.2:10 +A static shall have a static initializer, unless it is an +external static.

    +

    7.2:11 +The expression of a static initializer shall be a +constant expression.

    +

    7.2:12 +A use of a static is a place expression referring to the unique +location of the static.

    +

    Dynamic Semantics

    +

    7.2:13 +The elaboration of a static evaluates its static initializer.

    +

    7.2:14 +All paths that refer to a static refer to the same memory location.

    +

    7.2:15 +A static is not dropped during destruction.

    +

    7.2:16 +A mutable static whose type is not subject to +interior mutability may reside in read-only memory.

    +

    Undefined Behavior

    +

    7.2:17 +It is undefined behavior to mutate an immutable static whose type is +not subject to interior mutability.

    +

    Examples

    +
    static mut GLOBAL: u32 = 0;
    +
    +
    +
    +
    +

    7.3. Temporaries

    +

    Legality Rules

    +

    7.3:1 +A temporary is an anonymous variable produced by some intermediate +computation.

    +
    +
    +

    7.4. Variables

    +

    Legality Rules

    +

    7.4:1 +A variable is a placeholder for a value that is allocated on the +stack.

    +

    7.4:2 +The following constructs are variables:

    + +

    7.4:5 +A variable shall be used only after it has been initialized through all +reachable control flow paths up to the point of its usage.

    +

    Dynamic Semantics

    +

    7.4:6 +A variable is not initialized when allocated.

    +
    +

    7.4.1. Constant Promotion

    +

    Legality Rules

    +

    7.4.1:1 +Constant promotion is the process of converting a value expression +into a constant.

    +

    7.4.1:2 +Constant promotion is possible only when

    + +

    7.4.1:8 +Constant promotion is always possible for expression &mut [], +promoting the produced mutable borrow to have 'static lifetime.

    +

    7.4.1:9 +Constant promotion proceeds as follows:

    +
      +
    1. 7.4.1:10 +An anonymous constant is created, whose constant initializer holds +the result of the value expression.

    2. +
    3. 7.4.1:11 +The value of the anonymous constant is borrowed with +'static lifetime.

    4. +
    +
    +
    +
    + + +
    +
    +

    + Copyright © The Ferrocene Developers. + + Contents released under the MIT or Apache 2.0 license. + +

    + + +

    Built from commit: 2d7de7f91004615d8c7b4fb2416718fb7bb4f769

    + +

    Ferrocene is a registered trademark of Critical Section GmbH.

    +
    +
    +
    + + + \ No newline at end of file

    41`eR`3l$Vv=zMNJq(73Y|ij<8OWC=ZbCZutR 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 MmDnSJgEZ}b0mzqS2><{9 literal 0 HcmV?d00001 diff --git a/_static/fonts/roboto-mono-700.ttf.license b/_static/fonts/roboto-mono-700.ttf.license new file mode 100644 index 00000000..f6ce2d85 --- /dev/null +++ b/_static/fonts/roboto-mono-700.ttf.license @@ -0,0 +1,2 @@ +SPDX-License-Identifier: Apache-2.0 +SPDX-FileCopyrightText: Christian Robertson diff --git a/_static/fonts/roboto-mono-700.woff2 b/_static/fonts/roboto-mono-700.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..9eeebd1576e76dd0d560da662cda826bec7a1029 GIT binary patch literal 40716 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 UuMT(og>c8We`n_VzhGPD171WsGynhq literal 0 HcmV?d00001 diff --git a/_static/fonts/roboto-mono-700.woff2.license b/_static/fonts/roboto-mono-700.woff2.license new file mode 100644 index 00000000..f6ce2d85 --- /dev/null +++ b/_static/fonts/roboto-mono-700.woff2.license @@ -0,0 +1,2 @@ +SPDX-License-Identifier: Apache-2.0 +SPDX-FileCopyrightText: Christian Robertson diff --git a/_static/language_data.js b/_static/language_data.js new file mode 100644 index 00000000..250f5665 --- /dev/null +++ b/_static/language_data.js @@ -0,0 +1,199 @@ +/* + * language_data.js + * ~~~~~~~~~~~~~~~~ + * + * This script contains the language-specific data used by searchtools.js, + * namely the list of stopwords, stemmer, scorer and splitter. + * + * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +var stopwords = ["a", "and", "are", "as", "at", "be", "but", "by", "for", "if", "in", "into", "is", "it", "near", "no", "not", "of", "on", "or", "such", "that", "the", "their", "then", "there", "these", "they", "this", "to", "was", "will", "with"]; + + +/* Non-minified version is copied as a separate JS file, is available */ + +/** + * Porter Stemmer + */ +var Stemmer = function() { + + var step2list = { + ational: 'ate', + tional: 'tion', + enci: 'ence', + anci: 'ance', + izer: 'ize', + bli: 'ble', + alli: 'al', + entli: 'ent', + eli: 'e', + ousli: 'ous', + ization: 'ize', + ation: 'ate', + ator: 'ate', + alism: 'al', + iveness: 'ive', + fulness: 'ful', + ousness: 'ous', + aliti: 'al', + iviti: 'ive', + biliti: 'ble', + logi: 'log' + }; + + var step3list = { + icate: 'ic', + ative: '', + alize: 'al', + iciti: 'ic', + ical: 'ic', + ful: '', + ness: '' + }; + + var c = "[^aeiou]"; // consonant + var v = "[aeiouy]"; // vowel + var C = c + "[^aeiouy]*"; // consonant sequence + var V = v + "[aeiou]*"; // vowel sequence + + var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0 + var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1 + var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1 + var s_v = "^(" + C + ")?" + v; // vowel in stem + + this.stemWord = function (w) { + var stem; + var suffix; + var firstch; + var origword = w; + + if (w.length < 3) + return w; + + var re; + var re2; + var re3; + var re4; + + firstch = w.substr(0,1); + if (firstch == "y") + w = firstch.toUpperCase() + w.substr(1); + + // Step 1a + re = /^(.+?)(ss|i)es$/; + re2 = /^(.+?)([^s])s$/; + + if (re.test(w)) + w = w.replace(re,"$1$2"); + else if (re2.test(w)) + w = w.replace(re2,"$1$2"); + + // Step 1b + re = /^(.+?)eed$/; + re2 = /^(.+?)(ed|ing)$/; + if (re.test(w)) { + var fp = re.exec(w); + re = new RegExp(mgr0); + if (re.test(fp[1])) { + re = /.$/; + w = w.replace(re,""); + } + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1]; + re2 = new RegExp(s_v); + if (re2.test(stem)) { + w = stem; + re2 = /(at|bl|iz)$/; + re3 = new RegExp("([^aeiouylsz])\\1$"); + re4 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re2.test(w)) + w = w + "e"; + else if (re3.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + else if (re4.test(w)) + w = w + "e"; + } + } + + // Step 1c + re = /^(.+?)y$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(s_v); + if (re.test(stem)) + w = stem + "i"; + } + + // Step 2 + re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step2list[suffix]; + } + + // Step 3 + re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step3list[suffix]; + } + + // Step 4 + re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/; + re2 = /^(.+?)(s|t)(ion)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + if (re.test(stem)) + w = stem; + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1] + fp[2]; + re2 = new RegExp(mgr1); + if (re2.test(stem)) + w = stem; + } + + // Step 5 + re = /^(.+?)e$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + re2 = new RegExp(meq1); + re3 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) + w = stem; + } + re = /ll$/; + re2 = new RegExp(mgr1); + if (re.test(w) && re2.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + + // and turn initial Y back to y + if (firstch == "y") + w = firstch.toLowerCase() + w.substr(1); + return w; + } +} + diff --git a/_static/minus.png b/_static/minus.png new file mode 100644 index 0000000000000000000000000000000000000000..d96755fdaf8bb2214971e0db9c1fd3077d7c419d GIT binary patch literal 90 zcmeAS@N?(olHy`uVBq!ia0vp^+#t*WBp7;*Yy1LIik>cxAr*|t7R?Mi>2?kWtu=nj kDsEF_5m^0CR;1wuP-*O&G^0G}KYk!hp00i_>zopr08q^qX#fBK literal 0 HcmV?d00001 diff --git a/_static/plus.png b/_static/plus.png new file mode 100644 index 0000000000000000000000000000000000000000..7107cec93a979b9a5f64843235a16651d563ce2d GIT binary patch literal 90 zcmeAS@N?(olHy`uVBq!ia0vp^+#t*WBp7;*Yy1LIik>cxAr*|t7R?Mi>2?kWtu>-2 m3q%Vub%g%s<8sJhVPMczOq}xhg9DJoz~JfX=d#Wzp$Pyb1r*Kz literal 0 HcmV?d00001 diff --git a/_static/pygments.css b/_static/pygments.css new file mode 100644 index 00000000..348ec444 --- /dev/null +++ b/_static/pygments.css @@ -0,0 +1,7 @@ +pre { line-height: 125%; } +td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +.highlight .hll { background-color: #ffffcc } +.highlight { background: #ffffff; } \ No newline at end of file diff --git a/_static/searchtools.js b/_static/searchtools.js new file mode 100644 index 00000000..97d56a74 --- /dev/null +++ b/_static/searchtools.js @@ -0,0 +1,566 @@ +/* + * searchtools.js + * ~~~~~~~~~~~~~~~~ + * + * Sphinx JavaScript utilities for the full-text search. + * + * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ +"use strict"; + +/** + * Simple result scoring code. + */ +if (typeof Scorer === "undefined") { + var Scorer = { + // Implement the following function to further tweak the score for each result + // The function takes a result array [docname, title, anchor, descr, score, filename] + // and returns the new score. + /* + score: result => { + const [docname, title, anchor, descr, score, filename] = result + return score + }, + */ + + // query matches the full name of an object + objNameMatch: 11, + // or matches in the last dotted part of the object name + objPartialMatch: 6, + // Additive scores depending on the priority of the object + objPrio: { + 0: 15, // used to be importantResults + 1: 5, // used to be objectResults + 2: -5, // used to be unimportantResults + }, + // Used when the priority is not in the mapping. + objPrioDefault: 0, + + // query found in title + title: 15, + partialTitle: 7, + // query found in terms + term: 5, + partialTerm: 2, + }; +} + +const _removeChildren = (element) => { + while (element && element.lastChild) element.removeChild(element.lastChild); +}; + +/** + * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#escaping + */ +const _escapeRegExp = (string) => + string.replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string + +const _displayItem = (item, searchTerms) => { + const docBuilder = DOCUMENTATION_OPTIONS.BUILDER; + const docUrlRoot = DOCUMENTATION_OPTIONS.URL_ROOT; + const docFileSuffix = DOCUMENTATION_OPTIONS.FILE_SUFFIX; + const docLinkSuffix = DOCUMENTATION_OPTIONS.LINK_SUFFIX; + const showSearchSummary = DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY; + + const [docName, title, anchor, descr, score, _filename] = item; + + let listItem = document.createElement("li"); + let requestUrl; + let linkUrl; + if (docBuilder === "dirhtml") { + // dirhtml builder + let dirname = docName + "/"; + if (dirname.match(/\/index\/$/)) + dirname = dirname.substring(0, dirname.length - 6); + else if (dirname === "index/") dirname = ""; + requestUrl = docUrlRoot + dirname; + linkUrl = requestUrl; + } else { + // normal html builders + requestUrl = docUrlRoot + docName + docFileSuffix; + linkUrl = docName + docLinkSuffix; + } + let linkEl = listItem.appendChild(document.createElement("a")); + linkEl.href = linkUrl + anchor; + linkEl.dataset.score = score; + linkEl.innerHTML = title; + if (descr) + listItem.appendChild(document.createElement("span")).innerHTML = + " (" + descr + ")"; + else if (showSearchSummary) + fetch(requestUrl) + .then((responseData) => responseData.text()) + .then((data) => { + if (data) + listItem.appendChild( + Search.makeSearchSummary(data, searchTerms) + ); + }); + Search.output.appendChild(listItem); +}; +const _finishSearch = (resultCount) => { + Search.stopPulse(); + Search.title.innerText = _("Search Results"); + if (!resultCount) + Search.status.innerText = Documentation.gettext( + "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories." + ); + else + Search.status.innerText = _( + `Search finished, found ${resultCount} page(s) matching the search query.` + ); +}; +const _displayNextItem = ( + results, + resultCount, + searchTerms +) => { + // results left, load the summary and display it + // this is intended to be dynamic (don't sub resultsCount) + if (results.length) { + _displayItem(results.pop(), searchTerms); + setTimeout( + () => _displayNextItem(results, resultCount, searchTerms), + 5 + ); + } + // search finished, update title and status message + else _finishSearch(resultCount); +}; + +/** + * Default splitQuery function. Can be overridden in ``sphinx.search`` with a + * custom function per language. + * + * The regular expression works by splitting the string on consecutive characters + * that are not Unicode letters, numbers, underscores, or emoji characters. + * This is the same as ``\W+`` in Python, preserving the surrogate pair area. + */ +if (typeof splitQuery === "undefined") { + var splitQuery = (query) => query + .split(/[^\p{Letter}\p{Number}_\p{Emoji_Presentation}]+/gu) + .filter(term => term) // remove remaining empty strings +} + +/** + * Search Module + */ +const Search = { + _index: null, + _queued_query: null, + _pulse_status: -1, + + htmlToText: (htmlString) => { + const htmlElement = new DOMParser().parseFromString(htmlString, 'text/html'); + htmlElement.querySelectorAll(".headerlink").forEach((el) => { el.remove() }); + const docContent = htmlElement.querySelector('[role="main"]'); + if (docContent !== undefined) return docContent.textContent; + console.warn( + "Content block not found. Sphinx search tries to obtain it via '[role=main]'. Could you check your theme or template." + ); + return ""; + }, + + init: () => { + const query = new URLSearchParams(window.location.search).get("q"); + document + .querySelectorAll('input[name="q"]') + .forEach((el) => (el.value = query)); + if (query) Search.performSearch(query); + }, + + loadIndex: (url) => + (document.body.appendChild(document.createElement("script")).src = url), + + setIndex: (index) => { + Search._index = index; + if (Search._queued_query !== null) { + const query = Search._queued_query; + Search._queued_query = null; + Search.query(query); + } + }, + + hasIndex: () => Search._index !== null, + + deferQuery: (query) => (Search._queued_query = query), + + stopPulse: () => (Search._pulse_status = -1), + + startPulse: () => { + if (Search._pulse_status >= 0) return; + + const pulse = () => { + Search._pulse_status = (Search._pulse_status + 1) % 4; + Search.dots.innerText = ".".repeat(Search._pulse_status); + if (Search._pulse_status >= 0) window.setTimeout(pulse, 500); + }; + pulse(); + }, + + /** + * perform a search for something (or wait until index is loaded) + */ + performSearch: (query) => { + // create the required interface elements + const searchText = document.createElement("h2"); + searchText.textContent = _("Searching"); + const searchSummary = document.createElement("p"); + searchSummary.classList.add("search-summary"); + searchSummary.innerText = ""; + const searchList = document.createElement("ul"); + searchList.classList.add("search"); + + const out = document.getElementById("search-results"); + Search.title = out.appendChild(searchText); + Search.dots = Search.title.appendChild(document.createElement("span")); + Search.status = out.appendChild(searchSummary); + Search.output = out.appendChild(searchList); + + const searchProgress = document.getElementById("search-progress"); + // Some themes don't use the search progress node + if (searchProgress) { + searchProgress.innerText = _("Preparing search..."); + } + Search.startPulse(); + + // index already loaded, the browser was quick! + if (Search.hasIndex()) Search.query(query); + else Search.deferQuery(query); + }, + + /** + * execute search (requires search index to be loaded) + */ + query: (query) => { + const filenames = Search._index.filenames; + const docNames = Search._index.docnames; + const titles = Search._index.titles; + const allTitles = Search._index.alltitles; + const indexEntries = Search._index.indexentries; + + // stem the search terms and add them to the correct list + const stemmer = new Stemmer(); + const searchTerms = new Set(); + const excludedTerms = new Set(); + const highlightTerms = new Set(); + const objectTerms = new Set(splitQuery(query.toLowerCase().trim())); + splitQuery(query.trim()).forEach((queryTerm) => { + const queryTermLower = queryTerm.toLowerCase(); + + // maybe skip this "word" + // stopwords array is from language_data.js + if ( + stopwords.indexOf(queryTermLower) !== -1 || + queryTerm.match(/^\d+$/) + ) + return; + + // stem the word + let word = stemmer.stemWord(queryTermLower); + // select the correct list + if (word[0] === "-") excludedTerms.add(word.substr(1)); + else { + searchTerms.add(word); + highlightTerms.add(queryTermLower); + } + }); + + if (SPHINX_HIGHLIGHT_ENABLED) { // set in sphinx_highlight.js + localStorage.setItem("sphinx_highlight_terms", [...highlightTerms].join(" ")) + } + + // console.debug("SEARCH: searching for:"); + // console.info("required: ", [...searchTerms]); + // console.info("excluded: ", [...excludedTerms]); + + // array of [docname, title, anchor, descr, score, filename] + let results = []; + _removeChildren(document.getElementById("search-progress")); + + const queryLower = query.toLowerCase(); + for (const [title, foundTitles] of Object.entries(allTitles)) { + if (title.toLowerCase().includes(queryLower) && (queryLower.length >= title.length/2)) { + for (const [file, id] of foundTitles) { + let score = Math.round(100 * queryLower.length / title.length) + results.push([ + docNames[file], + titles[file] !== title ? `${titles[file]} > ${title}` : title, + id !== null ? "#" + id : "", + null, + score, + filenames[file], + ]); + } + } + } + + // search for explicit entries in index directives + for (const [entry, foundEntries] of Object.entries(indexEntries)) { + if (entry.includes(queryLower) && (queryLower.length >= entry.length/2)) { + for (const [file, id] of foundEntries) { + let score = Math.round(100 * queryLower.length / entry.length) + results.push([ + docNames[file], + titles[file], + id ? "#" + id : "", + null, + score, + filenames[file], + ]); + } + } + } + + // lookup as object + objectTerms.forEach((term) => + results.push(...Search.performObjectSearch(term, objectTerms)) + ); + + // lookup as search terms in fulltext + results.push(...Search.performTermsSearch(searchTerms, excludedTerms)); + + // let the scorer override scores with a custom scoring function + if (Scorer.score) results.forEach((item) => (item[4] = Scorer.score(item))); + + // now sort the results by score (in opposite order of appearance, since the + // display function below uses pop() to retrieve items) and then + // alphabetically + results.sort((a, b) => { + const leftScore = a[4]; + const rightScore = b[4]; + if (leftScore === rightScore) { + // same score: sort alphabetically + const leftTitle = a[1].toLowerCase(); + const rightTitle = b[1].toLowerCase(); + if (leftTitle === rightTitle) return 0; + return leftTitle > rightTitle ? -1 : 1; // inverted is intentional + } + return leftScore > rightScore ? 1 : -1; + }); + + // remove duplicate search results + // note the reversing of results, so that in the case of duplicates, the highest-scoring entry is kept + let seen = new Set(); + results = results.reverse().reduce((acc, result) => { + let resultStr = result.slice(0, 4).concat([result[5]]).map(v => String(v)).join(','); + if (!seen.has(resultStr)) { + acc.push(result); + seen.add(resultStr); + } + return acc; + }, []); + + results = results.reverse(); + + // for debugging + //Search.lastresults = results.slice(); // a copy + // console.info("search results:", Search.lastresults); + + // print the results + _displayNextItem(results, results.length, searchTerms); + }, + + /** + * search for object names + */ + performObjectSearch: (object, objectTerms) => { + const filenames = Search._index.filenames; + const docNames = Search._index.docnames; + const objects = Search._index.objects; + const objNames = Search._index.objnames; + const titles = Search._index.titles; + + const results = []; + + const objectSearchCallback = (prefix, match) => { + const name = match[4] + const fullname = (prefix ? prefix + "." : "") + name; + const fullnameLower = fullname.toLowerCase(); + if (fullnameLower.indexOf(object) < 0) return; + + let score = 0; + const parts = fullnameLower.split("."); + + // check for different match types: exact matches of full name or + // "last name" (i.e. last dotted part) + if (fullnameLower === object || parts.slice(-1)[0] === object) + score += Scorer.objNameMatch; + else if (parts.slice(-1)[0].indexOf(object) > -1) + score += Scorer.objPartialMatch; // matches in last name + + const objName = objNames[match[1]][2]; + const title = titles[match[0]]; + + // If more than one term searched for, we require other words to be + // found in the name/title/description + const otherTerms = new Set(objectTerms); + otherTerms.delete(object); + if (otherTerms.size > 0) { + const haystack = `${prefix} ${name} ${objName} ${title}`.toLowerCase(); + if ( + [...otherTerms].some((otherTerm) => haystack.indexOf(otherTerm) < 0) + ) + return; + } + + let anchor = match[3]; + if (anchor === "") anchor = fullname; + else if (anchor === "-") anchor = objNames[match[1]][1] + "-" + fullname; + + const descr = objName + _(", in ") + title; + + // add custom score for some objects according to scorer + if (Scorer.objPrio.hasOwnProperty(match[2])) + score += Scorer.objPrio[match[2]]; + else score += Scorer.objPrioDefault; + + results.push([ + docNames[match[0]], + fullname, + "#" + anchor, + descr, + score, + filenames[match[0]], + ]); + }; + Object.keys(objects).forEach((prefix) => + objects[prefix].forEach((array) => + objectSearchCallback(prefix, array) + ) + ); + return results; + }, + + /** + * search for full-text terms in the index + */ + performTermsSearch: (searchTerms, excludedTerms) => { + // prepare search + const terms = Search._index.terms; + const titleTerms = Search._index.titleterms; + const filenames = Search._index.filenames; + const docNames = Search._index.docnames; + const titles = Search._index.titles; + + const scoreMap = new Map(); + const fileMap = new Map(); + + // perform the search on the required terms + searchTerms.forEach((word) => { + const files = []; + const arr = [ + { files: terms[word], score: Scorer.term }, + { files: titleTerms[word], score: Scorer.title }, + ]; + // add support for partial matches + if (word.length > 2) { + const escapedWord = _escapeRegExp(word); + Object.keys(terms).forEach((term) => { + if (term.match(escapedWord) && !terms[word]) + arr.push({ files: terms[term], score: Scorer.partialTerm }); + }); + Object.keys(titleTerms).forEach((term) => { + if (term.match(escapedWord) && !titleTerms[word]) + arr.push({ files: titleTerms[word], score: Scorer.partialTitle }); + }); + } + + // no match but word was a required one + if (arr.every((record) => record.files === undefined)) return; + + // found search word in contents + arr.forEach((record) => { + if (record.files === undefined) return; + + let recordFiles = record.files; + if (recordFiles.length === undefined) recordFiles = [recordFiles]; + files.push(...recordFiles); + + // set score for the word in each file + recordFiles.forEach((file) => { + if (!scoreMap.has(file)) scoreMap.set(file, {}); + scoreMap.get(file)[word] = record.score; + }); + }); + + // create the mapping + files.forEach((file) => { + if (fileMap.has(file) && fileMap.get(file).indexOf(word) === -1) + fileMap.get(file).push(word); + else fileMap.set(file, [word]); + }); + }); + + // now check if the files don't contain excluded terms + const results = []; + for (const [file, wordList] of fileMap) { + // check if all requirements are matched + + // as search terms with length < 3 are discarded + const filteredTermCount = [...searchTerms].filter( + (term) => term.length > 2 + ).length; + if ( + wordList.length !== searchTerms.size && + wordList.length !== filteredTermCount + ) + continue; + + // ensure that none of the excluded terms is in the search result + if ( + [...excludedTerms].some( + (term) => + terms[term] === file || + titleTerms[term] === file || + (terms[term] || []).includes(file) || + (titleTerms[term] || []).includes(file) + ) + ) + break; + + // select one (max) score for the file. + const score = Math.max(...wordList.map((w) => scoreMap.get(file)[w])); + // add result to the result list + results.push([ + docNames[file], + titles[file], + "", + null, + score, + filenames[file], + ]); + } + return results; + }, + + /** + * helper function to return a node containing the + * search summary for a given text. keywords is a list + * of stemmed words. + */ + makeSearchSummary: (htmlText, keywords) => { + const text = Search.htmlToText(htmlText); + if (text === "") return null; + + const textLower = text.toLowerCase(); + const actualStartPosition = [...keywords] + .map((k) => textLower.indexOf(k.toLowerCase())) + .filter((i) => i > -1) + .slice(-1)[0]; + const startWithContext = Math.max(actualStartPosition - 120, 0); + + const top = startWithContext === 0 ? "" : "..."; + const tail = startWithContext + 240 < text.length ? "..." : ""; + + let summary = document.createElement("p"); + summary.classList.add("context"); + summary.textContent = top + text.substr(startWithContext, 240).trim() + tail; + + return summary; + }, +}; + +_ready(Search.init); diff --git a/_static/sphinx_highlight.js b/_static/sphinx_highlight.js new file mode 100644 index 00000000..aae669d7 --- /dev/null +++ b/_static/sphinx_highlight.js @@ -0,0 +1,144 @@ +/* Highlighting utilities for Sphinx HTML documentation. */ +"use strict"; + +const SPHINX_HIGHLIGHT_ENABLED = true + +/** + * highlight a given string on a node by wrapping it in + * span elements with the given class name. + */ +const _highlight = (node, addItems, text, className) => { + if (node.nodeType === Node.TEXT_NODE) { + const val = node.nodeValue; + const parent = node.parentNode; + const pos = val.toLowerCase().indexOf(text); + if ( + pos >= 0 && + !parent.classList.contains(className) && + !parent.classList.contains("nohighlight") + ) { + let span; + + const closestNode = parent.closest("body, svg, foreignObject"); + const isInSVG = closestNode && closestNode.matches("svg"); + if (isInSVG) { + span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); + } else { + span = document.createElement("span"); + span.classList.add(className); + } + + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + parent.insertBefore( + span, + parent.insertBefore( + document.createTextNode(val.substr(pos + text.length)), + node.nextSibling + ) + ); + node.nodeValue = val.substr(0, pos); + + if (isInSVG) { + const rect = document.createElementNS( + "http://www.w3.org/2000/svg", + "rect" + ); + const bbox = parent.getBBox(); + rect.x.baseVal.value = bbox.x; + rect.y.baseVal.value = bbox.y; + rect.width.baseVal.value = bbox.width; + rect.height.baseVal.value = bbox.height; + rect.setAttribute("class", className); + addItems.push({ parent: parent, target: rect }); + } + } + } else if (node.matches && !node.matches("button, select, textarea")) { + node.childNodes.forEach((el) => _highlight(el, addItems, text, className)); + } +}; +const _highlightText = (thisNode, text, className) => { + let addItems = []; + _highlight(thisNode, addItems, text, className); + addItems.forEach((obj) => + obj.parent.insertAdjacentElement("beforebegin", obj.target) + ); +}; + +/** + * Small JavaScript module for the documentation. + */ +const SphinxHighlight = { + + /** + * highlight the search words provided in localstorage in the text + */ + highlightSearchWords: () => { + if (!SPHINX_HIGHLIGHT_ENABLED) return; // bail if no highlight + + // get and clear terms from localstorage + const url = new URL(window.location); + const highlight = + localStorage.getItem("sphinx_highlight_terms") + || url.searchParams.get("highlight") + || ""; + localStorage.removeItem("sphinx_highlight_terms") + url.searchParams.delete("highlight"); + window.history.replaceState({}, "", url); + + // get individual terms from highlight string + const terms = highlight.toLowerCase().split(/\s+/).filter(x => x); + if (terms.length === 0) return; // nothing to do + + // There should never be more than one element matching "div.body" + const divBody = document.querySelectorAll("div.body"); + const body = divBody.length ? divBody[0] : document.querySelector("body"); + window.setTimeout(() => { + terms.forEach((term) => _highlightText(body, term, "highlighted")); + }, 10); + + const searchBox = document.getElementById("searchbox"); + if (searchBox === null) return; + searchBox.appendChild( + document + .createRange() + .createContextualFragment( + '