From 5a19cad42e3df02fa320b5bb92d17e206f1cec02 Mon Sep 17 00:00:00 2001 From: GrosQuildu Date: Thu, 7 May 2026 14:02:42 +0200 Subject: [PATCH 1/3] init rust chapter --- assets/_custom.scss | 24 + .../languages/rust/10-security-overview.md | 132 ++++ .../languages/rust/20-dynamic-analysis.md | 744 ++++++++++++++++++ .../docs/languages/rust/30-static-analysis.md | 152 ++++ .../rust/30-static-analysis/30-dylint.svg | 1 + content/docs/languages/rust/40-gotchas.md | 71 ++ .../languages/rust/50-memory-zeroization.md | 142 ++++ .../docs/languages/rust/60-model-checking.md | 214 +++++ .../languages/rust/70-specialized-testing.md | 30 + .../rust/80-supply-chain-analysis.md | 143 ++++ content/docs/languages/rust/_index.md | 20 + 11 files changed, 1673 insertions(+) create mode 100644 content/docs/languages/rust/10-security-overview.md create mode 100644 content/docs/languages/rust/20-dynamic-analysis.md create mode 100644 content/docs/languages/rust/30-static-analysis.md create mode 100644 content/docs/languages/rust/30-static-analysis/30-dylint.svg create mode 100644 content/docs/languages/rust/40-gotchas.md create mode 100644 content/docs/languages/rust/50-memory-zeroization.md create mode 100644 content/docs/languages/rust/60-model-checking.md create mode 100644 content/docs/languages/rust/70-specialized-testing.md create mode 100644 content/docs/languages/rust/80-supply-chain-analysis.md create mode 100644 content/docs/languages/rust/_index.md diff --git a/assets/_custom.scss b/assets/_custom.scss index 41a9400..db390f4 100644 --- a/assets/_custom.scss +++ b/assets/_custom.scss @@ -125,6 +125,30 @@ p { text-wrap: wrap; } +#rust-banner-code { + .highlight { + padding: 0; + margin: 0; + + pre { + background: transparent !important; + border: none; + padding-top: 0; + margin: 0; + text-align: center; + text-wrap: wrap; + word-break: break-word; + overflow-wrap: anywhere; + font-size: 1.1rem; + line-height: 1.5; + } + + code:first-child::before { + display: none; + } + } +} + ul.no-bullet-point-list { list-style-type: none; diff --git a/content/docs/languages/rust/10-security-overview.md b/content/docs/languages/rust/10-security-overview.md new file mode 100644 index 0000000..3ada5f2 --- /dev/null +++ b/content/docs/languages/rust/10-security-overview.md @@ -0,0 +1,132 @@ +--- +title: "Security overview" +slug: lang-rust-security-overview +weight: 10 +--- + +# Rust security overview + +## Safety and security + +The Rust compiler guarantees the memory safety of Rust programs: no undefined behavior or data race will happen during runtime, no matter the inputs. + +Therefore, when security-testing Rust programs, it’s important to understand what is and what is not considered undefined behavior (UB). There is no sense in looking for double-free bugs in (safe) Rust, right? For the guarantees made by the Rust compiler, see the ["Behavior considered undefined"](https://doc.rust-lang.org/reference/behavior-considered-undefined.html) Rust Reference page. + +Another important Rust concept is [*safety*](https://doc.rust-lang.org/nomicon/safe-unsafe-meaning.html). A code is marked `unsafe` when it requires special scrutiny: it may produce undefined behavior if written poorly, and it is the developer’s responsibility (not the compiler’s) to ensure the code upholds some specific contract. + +{{< mermaid >}} +flowchart LR + subgraph Input[" "] + direction TB + A[Safe Rust] + C[Unsafe Rust] + end + A --> B[Is Sound] + C --> D{Sound?} + D -->|Yes| B + D -->|No| E[Not Sound] + B --> F[No Undefined Behavior] + E --> G[UB Possible] + F --> H[Vulnerabilities Possible] + G --> H + + style Input fill:none,stroke:none + style A fill:#000,color:#fff,stroke:#000 + style B fill:#000,color:#fff,stroke:#000 + style C fill:#ad182b,color:#fff,stroke:#ad182b + style D fill:#ad182b,color:#fff,stroke:#ad182b + style E fill:#ad182b,color:#fff,stroke:#ad182b + style F fill:#000,color:#fff,stroke:#000 + style G fill:#ad182b,color:#fff,stroke:#ad182b + style H fill:#ad182b,color:#fff,stroke:#ad182b +{{< /mermaid >}} + +Security testing would need to ensure that any `unsafe` code is [*sound*](https://docs.rs/dtolnay/0.0.7/dtolnay/macro._03__soundness_bugs.html#soundness). In a basic audit, one would check a weaker property: that the implemented uses of `unsafe` code do not produce undefined behavior. But advanced testing would ensure soundness: that any uses of `unsafe` code do not produce UB. In fact, unsound code is quite a common source of vulnerabilities: code that worked correctly for a long time until a specific input triggered the bug. + +Note that detecting unsafe code in Rust is easy, which greatly reduces the security testing effort. On the other hand, some unsafe code may be “hidden” in (transitive) dependencies, which is worth keeping in mind during audits. + +There’s more. Some safe (defined) behavior may result in vulnerabilities. The ["Behavior not considered unsafe"](https://doc.rust-lang.org/reference/behavior-not-considered-unsafe.html) list points to notable safe behaviors that are a common source of security bugs: + +* [General race conditions](https://doc.rust-lang.org/nomicon/races.html) + * Deadlocks (blocking bugs) + * Incorrect state synchronization (non-blocking bugs) +* Resource leaks +* Pointer exposures +* Arithmetic errors +* Nondeterminism +* Logic errors + +Moreover, safe Rust may happen to be unsound in some rare cases. Check [the issues on the Rust GitHub](https://github.com/rust-lang/rust/issues?q=is%3Aissue%20state%3Aopen%20label%3AI-unsound) and the ["Counterexamples in Type Systems"](https://counterexamples.org/intro.html) resource for more information. Usually auditors don’t need to focus on these edge cases. + +## Resource leaks + +Although Rust's memory safety guarantees make it difficult to accidentally create memory leaks, they don’t make it impossible (according to the [Rust documentation](https://doc.rust-lang.org/book/ch15-06-reference-cycles.html)). In the worst case, a memory leak could enable a denial-of-service attack—bad, but not terrible. + +Similarly, safe Rust is allowed to leak other resources like file descriptors, shared memory, database connections, and zombie threads. + +Rust is also allowed to exit without calling destructors. This may be problematic when your program does an HTTP call, destroys a secret, or closes a database connection in a destructor, for example. + +## Pointer exposure + +Pointer exposure is a rare but interesting class of bug where [a pointer to process memory is leaked](https://codeandbitters.com/main-as-usize/). An attacker would use such data to defeat the operating system’s address space layout randomization (ASLR). This would help with low-level exploitation (of a memory corruption bug, if the attacker were able to find one). + +Pointer exposure is considered safe, because it does not make your program exploitable or behave strangely. However, you should avoid such unnecessary data exposures just in case. + +## Arithmetic errors + +Dealing with numbers is safe in Rust, but some operations may produce unexpected results. There are three main sources of bugs: + +* [Integer overflows](https://doc.rust-lang.org/reference/expressions/operator-expr.html#overflow) +* [Imprecision of float operations](https://seclists.org/oss-sec/2023/q2/99) +* [Rounding errors](https://github.com/crytic/roundme) + +There are [three types of integer overflows](https://phrack.org/issues/60/10.html#article): arithmetic, widthness, and signedness. + +Rust can handle arithmetic overflows in a few ways: [wrap over](https://doc.rust-lang.org/std/intrinsics/fn.wrapping_add.html), [wrap with information](https://doc.rust-lang.org/std/intrinsics/fn.add_with_overflow.html), [check](https://doc.rust-lang.org/std/primitive.i32.html#method.checked_add), [saturate](https://doc.rust-lang.org/std/intrinsics/fn.saturating_add.html), [produce undefined behavior](https://doc.rust-lang.org/std/intrinsics/fn.unchecked_add.html), and panic. + +| Example | Result | Description | +|--------------------------|-----------|----------------------------------------| +| 255u8.wrapping_add(1) | 0 | Silently wraps around to zero | +| 255u8.overflowing_add(1) | (0, true) | Wraps and returns overflow flag | +| 255u8.checked_add(1) | None | Returns Option, None on overflow | +| 255u8.saturating_add(1) | 255 | Clamps at max value | +| 255u8.unchecked_add(1) | UB | Unsafe, undefined behavior on overflow | +| 255u8 + 1 (debug) | panic | Default behavior in debug builds | +| 255u8 + 1 (release) | 0 | Silently wraps in release builds | + +The default behavior is to wrap over, except in debug builds, where the default is to panic. The most common assumption auditors make when reviewing Rust programs is that overflows should not happen and any integer overflow is a potential bug. If you want to make auditors' lives easier, then be explicit about arithmetic that is expected to wrap over or saturate. + +You can read more about integer overflows in [RFC 560](https://github.com/rust-lang/rfcs/blob/ae1394021c001cae2bcdfe3d7f3098dc9e3fbd27/text/0560-integer-overflow.md) and the blog post ["Myths and Legends about Integer Overflow in Rust"](https://huonw.github.io/blog/2016/04/myths-and-legends-about-integer-overflow-in-rust/). + +Widthness and signedness overflows can occur when converting between numeric types. Thanks to Rust’s lack of implicit conversions, unexpected overflows are easy to deal with, using one of the following: + +* A [checked conversion](https://doc.rust-lang.org/std/convert/trait.TryFrom.html) with overflows handled explicitly (e.g., with a panic) +* An [`as` cast](https://doc.rust-lang.org/rust-by-example/types/cast.html) that may result in a wrap-over (but is always well defined, [unlike in C](https://stackoverflow.com/questions/16188263/is-signed-integer-overflow-still-undefined-behavior-in-c)) + +The latter cast method is more error-prone and should get the same amount of scrutiny as arithmetic overflows. An [`as` cast](https://doc.rust-lang.org/rust-by-example/types/cast.html) silently truncates bigger integer types converted to smaller integer types, even in debug mode. + +## Nondeterminism + +A Rust program that behaves differently when compiled or executed multiple times may be problematic for some kinds of systems—for example, when the program is expected to be interoperable between machines with different CPU architectures, or when data is computed and synchronized between machines as in the case of blockchain nodes. + +There are two types of nondeterminism in Rust: introduced during compilation and during runtime. + +The following are sources of compilation-time nondeterminism: + +* Architecture-dependent integral types (like `usize` and `libc::c_char`) and pointer sizes +* [Float numbers](https://internals.rust-lang.org/t/pre-rfc-dealing-with-broken-floating-point/2673) +* [NaN bit representation](https://github.com/rust-lang/rfcs/blob/master/text/3514-float-semantics.md) +* Struct field reordering +* Enum discriminant values + +The following are sources of runtime nondeterminism: + +* Iterations over [`HashMap`](https://dev.to/gnunicorn/hunting-down-a-non-determinism-bug-in-our-rust-wasm-build-4fk1) and `HashSet` +* Struct padding +* Pointers (specific memory addresses) + +## Logic errors + +Logic errors are a very wide topic covering areas like [traits’ logic constraints](https://doc.rust-lang.org/reference/behavior-not-considered-unsafe.html#logic-errors), weak authentication, broken cryptography, insufficient data validation, [infinite recursion](https://blog.trailofbits.com/2025/02/21/dont-recurse-on-untrusted-input/), [operating system–level TOCTOU bugs](https://blog.trailofbits.com/2020/08/12/sinter-new-user-mode-security-enforcement-for-macos/#:~:text=2.%20Mitigating%20the%20TOCTOU%20risks%20in%20real%2Dtime%20security%20decisions), error handling, unhandled [panics](https://blog.cloudflare.com/18-november-2025-outage/), and secrets exposure. + +An interesting class of logic bugs in Rust is related to ["unwind safety"](https://doc.rust-lang.org/std/panic/trait.UnwindSafe.html#what-is-unwind-safety). A thread that panics when some data is in an invalid state may allow other threads (or the same if the `catch_unwind` mechanism is used) to observe the invalid state. This may break some logic invariants or be the cause of memory corruption (in the presence of unsafe code). If the whole program is not completely killed in the event of a panic, then reviewing for this type of safety is required. diff --git a/content/docs/languages/rust/20-dynamic-analysis.md b/content/docs/languages/rust/20-dynamic-analysis.md new file mode 100644 index 0000000..1dc7900 --- /dev/null +++ b/content/docs/languages/rust/20-dynamic-analysis.md @@ -0,0 +1,744 @@ +--- +title: "Dynamic analysis" +slug: lang-rust-dynamic-analysis +weight: 20 +--- + +# Rust dynamic analysis + +There are two categories of dynamic analysis: fuzz testing and "standard" testing, like unit and functional testing. + +In this chapter, we will focus on standard testing. This is the basic level of testing that every project should have implemented. While basic, standard testing can be built up with a lot of security-wise improvements. To read about Rust fuzzing, see the [Rust fuzzing chapter](/docs/fuzzing/rust/) of this handbook. + +The standard tool for executing unit tests for Rust codebases is [`cargo test`](https://doc.rust-lang.org/cargo/commands/cargo-test.html). The basic setup and usage of the tool is well known, so we will skip the introduction. You can also try [`cargo nextest`](https://nexte.st/index.html), a new test runner. + +```rust +#[cfg(test)] +mod tests { + #[test] + fn true_dilemma() { + assert_ne!(true, false); + } +} +``` + +Once you have the unit tests written and all of them pass, let’s improve on them. + +{{< hint info >}} +To speed up the CI pipeline, use [`cargo-line-test`](https://github.com/trailofbits/cargo-line-test). It executes only the tests that exercise modified files and lines. It may be especially useful when using advanced but slow testing methods described later in this section. +{{< /hint >}} + +## Randomization + +### Test order shuffling + +Tests that depend on a global state or have dependencies between each other may be buggy but pass when executed normally. By default, tests are executed in multiple threads and in (mostly) alphabetical order. Therefore, they are quasi-deterministic. + +To find problematic test dependencies, increase the entropy of execution. Ideally, run tests without parallel execution in a random order: + +```sh +cargo test -- -Z unstable-options --test-threads 1 --shuffle +``` + +Note that random order shuffling is [not possible with `nextest`](https://github.com/nextest-rs/nextest/discussions/1784). + +{{< hint danger >}} +This approach is not scalable and should not be extensively used in CI/CD pipelines. Instead, start such tests manually once in a while. +{{< /hint >}} + +Execute the `cargo test` command above multiple times. If any run reports a failed test, use the displayed "shuffle seed" to reliably repeat the error. + +{{< details "Example to try: cargo test shuffle seed" >}} + +The tests below fail randomly when run with cargo test. To get a reproducible failure, run this: + +```sh +cargo test -- -Z unstable-options --test-threads 1 --shuffle-seed 1337 +``` + +```rust +fn main() { println!("Hello, world!"); } + +static mut GLOB_VAR: i32 = 2; + +unsafe fn global_var_set(arg: i32) { + GLOB_VAR = arg; +} + +#[cfg(test)] +mod tests { + use crate::{GLOB_VAR, global_var_set}; + + #[test] + fn a_true_dilemma() { + unsafe { assert_eq!(GLOB_VAR, 2); } + unsafe { global_var_set(5); } + unsafe { assert_eq!(GLOB_VAR, 5); } + assert_ne!(true, false); + } + + #[test] + fn not_true_dilemma() { + unsafe { assert_eq!(GLOB_VAR, 2); } + assert_ne!(true, false); + } +} +``` +{{< /details >}} + + +### Features randomization + +Rust code supports conditional compilation via [Cargo features](https://doc.rust-lang.org/cargo/reference/features.html). Ideally, tests would cover all possible versions of a program. To ensure that, we need to run tests against all possible (or supported) combinations of features. + +For this task, use [`cargo hack`](https://github.com/taiki-e/cargo-hack). Start with testing your code against all the features taken separately, then combine multiple features in one run: + +{{< tabs "cargo hack" >}} +{{< tab "Shell" >}} +```sh +cargo +stable install cargo-hack --locked +cargo hack test -Z avoid-dev-deps --each-feature +cargo hack test -Z avoid-dev-deps --feature-powerset --depth 2 +``` +{{< /tab>}} +{{< tab "CI" >}} +```yaml +- uses: taiki-e/install-action@6da51af62171044932d435033daa70a0eb3383ba + with: + tool: cargo-hack +- run: cargo hack test -Z avoid-dev-deps --feature-powerset --depth 2 --workspace +``` +{{< /tab>}} +{{< /tabs >}} + +{{< hint info >}} +Look for the info: running string in the test output to check what features were used. + +Use the `--print-command-list` option for a dry run. + +Use the `--keep-going` option to skip over compilation failures. +{{< /hint >}} + +{{< details "Example to try: cargo hack with three features" >}} + +The test below passes when run with the cargo test command. It also passes with `cargo hack test --each-feature`. To find the code path that makes the test fail, run this: + +```sh +cargo hack test --feature-powerset --depth 2 +``` + +```toml +# cargo.toml +[features] +fone = [] +ftwo = [] +fthree = [] +``` + +```rust +fn main() { println!("Hello, world!"); } + +#[allow(unreachable_code)] +fn feature_one() -> i32 { + #[cfg(all(feature = "fone", feature = "fthree", not(feature = "ftwo")))] + { + return 3; + } + #[cfg(feature = "fone")] { + return 1; + } + #[cfg(feature = "ftwo")] { + return 2; + } + return 0; +} + + +#[cfg(test)] +mod tests { + use crate::{feature_one}; + + #[test] + fn feature_test1() { + let z = feature_one(); + assert!(z < 3); + } +} +``` +{{< /details >}} + +## Integer overflows + +Most integer overflows are detected at runtime in debug builds (or when the [`overflow-checks` flag](https://doc.rust-lang.org/rustc/codegen-options/index.html#overflow-checks) is set). There is also [Clippy’s `arithmetic_side_effects` lint](https://rust-lang.github.io/rust-clippy/master/index.html#arithmetic_side_effects), which can statically find possible overflows. + +However, neither of these approaches detects overflows in explicit casts. To make your tests detect overflows in `expr as T` expressions, you can use the [`cast_checks`](https://github.com/trailofbits/cast_checks) tool. + +Install it by adding the following to your project’s `Cargo.toml` file: + +```toml +[dependencies] +cast_checks = "0.1.5" +``` + +Then, mark functions where you suspect overflows may be possible with `#[cast_checks::enable]` and run tests as usual. + +Alternatively, enable the inner attributes feature with `#![feature(custom_inner_attributes, proc_macro_hygiene)]` and put the `#![cast_checks::enable]` attribute in relevant modules. + +{{< details "Example to try: cast_checks in action" >}} +In this example, the `int_overflow_simple` test always passes, as arithmetic overflows are detected with standard overflow checks. However, to detect overflow in the `int_overflow_in_cast` test, `cast_checks` needs to be used. + +```rust +#![feature(custom_inner_attributes, proc_macro_hygiene)] + +fn main() { println!("Hello, world!"); } + +mod overflow_lib { + #![cast_checks::enable] + + pub(crate) fn do_overflow(a: i32) -> i32 { + return a * 8; + } + + pub(crate) fn as_u16(z: i32) -> u16 { + z as u16 + } +} + +#[cfg(test)] +mod tests { + use crate::{overflow_lib::as_u16, overflow_lib::do_overflow}; + + #[should_panic] + #[test] + fn int_overflow_simple() { + let y_str = "2147483647"; + let y = y_str.parse::().unwrap(); + let x = do_overflow(y); + } + + #[should_panic] + #[test] + fn int_overflow_in_cast() { + let y_str = "2147483647"; + let y = y_str.parse::().unwrap(); + println!("{}", y); + let a = as_u16(y); + } +} +``` +{{< /details >}} + +Due to performance considerations, you are likely to want to enable the overflow checks only for testing and debug builds, not for release. + + +## Sanitizers + +While Rust is memory-safe, one may open a gate to the unsafe world and introduce all the well-known vulnerabilities like use-after-free and reading of uninitialized memory. Moreover, the Rust compiler does not provide strong guarantees about [memory leaks](https://doc.rust-lang.org/book/ch15-06-reference-cycles.html) and [general race conditions](https://doc.rust-lang.org/nomicon/races.html). + +To find deep bugs, we can run tests with [various sanitizers](https://doc.rust-lang.org/beta/unstable-book/compiler-flags/sanitizer.html). Sanitization in this context means that builds are instrumented during compilation and linked with specialized runtime libraries. Then, when executed, the instrumentation looks for a specific class of issues. Running tests with sanitizers comes with the downsides of increased compilation time, execution time, and memory usage. + +These are the available sanitizers supported by Rust: + +* AddressSanitizer +* HWAddressSanitizer +* LeakSanitizer +* MemorySanitizer +* ThreadSanitizer + +To enable them, add the `RUSTFLAGS` environment variable. + +{{< hint warning >}} +At this time, nightly toolchains must be used for sanitizers. If you use the stable toolchain, the compilation fails with the following error: + +`error: failed to run rustc to learn about target-specific information` +{{< /hint >}} + +{{< tabs "rust sanitizers" >}} +{{< tab "Cargo test" >}} +```sh +for sanitizer in "address" "leak" "memory" "thread"; do + echo "Testing with $sanitizer"; + RUSTFLAGS="-Z sanitizer=$sanitizer" RUSTDOCFLAGS="$RUSTFLAGS" \ + cargo test --target x86_64-unknown-linux-gnu; +done +``` +{{< /tab>}} +{{< tab "Cargo nextest" >}} +```sh +for sanitizer in "address" "leak" "memory" "thread"; do + echo "Testing with $sanitizer"; + RUSTFLAGS="-Z sanitizer=$sanitizer" RUSTDOCFLAGS="$RUSTFLAGS" \ + cargo nextest run --target x86_64-unknown-linux-gnu; +done +``` +{{< /tab>}} +{{< /tabs >}} + +A few tips: + +* If compilation fails, [add an explicit `--target` option](https://github.com/rust-lang/rust/issues/48199#issuecomment-743406233) and use the nightly toolchain. + +* Use the `rustup toolchain list` command to find available toolchains. + +* Not all targets are created equal. Check [which are supported by the given sanitizer](https://github.com/rust-lang/rust/issues/123615#issuecomment-2041791236). + +* Use both `RUSTFLAGS` and `RUSTDOCFLAGS` if there are any doctests. + +* Sanitizers are not compatible with each other. Compile with one sanitizer at a time. One exception is AddressSanitizer and LeakSanitizer that can work together. + +* [It is required](https://doc.rust-lang.org/beta/unstable-book/compiler-flags/sanitizer.html#instrumentation-of-external-dependencies-and-std) to recompile the standard library with `-Zbuild-std` when using ThreadSanitizer and MemorySanitizer. It is recommended for AddressSanitizer. + +* MemorySanitizer needs all the code to be sanitized. Any C/C++ dependencies must be built with the `-fsanitize=memory` flag (in addition to the standard library). + +* Note the following for ThreadSanitizer: + + * A known limitation is lack of support for `std::sync::atomic::fence` and inline assembly code. + + * To reduce false positives, use a single thread for testing (`RUST_TEST_THREADS=1` or `--test-threads=1`). Note that ThreadSanitizer errors on multi-threaded test execution may indicate bugs in tests themselves (not in the actual code) and may be worth investigating. + + +{{< details "Example to try: testing with ASAN" >}} + +The test below passes, but there is actually a bug. AddressSanitizer can help us find it. + +```sh +RUSTFLAGS='-Z sanitizer=address' cargo -Zbuild-std test +``` + +```rust +fn main() { println!("Hello, world!"); } + +#[cfg(test)] +mod tests { + #[test] + fn uaf() { + let a = vec![7, 3, 3, 1]; + let b = a.as_ptr(); + drop(a); + let z = unsafe { *b }; + } +} +``` + +{{< /details >}} + +## Miri + +[Miri](https://github.com/rust-lang/miri) is an interpreter for Rust’s "mid-level intermediate representation." Miri helps to detect undefined behaviors like these: + +* Memory corruption bugs +* Memory leaks +* Uses of uninitialized data +* Memory alignment issues +* Issues with aliasing +* Data races + +To use Miri, you must point it at some executable code (it performs dynamic analysis). The easiest is to run your tests through Miri. Note that the nightly toolchain is required. + +{{< tabs "miri tests" >}} +{{< tab "Miri with cargo test" >}} +```sh +rustup +nightly component add miri cargo miri test +``` +{{< /tab>}} +{{< tab "Miri with nextest" >}} +```sh +cargo miri nextest run +``` +{{< /tab>}} +{{< /tabs >}} + +Alternatively, you can replace debug builds with Miri for use in testing environments. You need to replace the compiled binary with the invocation of a full Cargo command, as Miri does not compile instrumented binaries but rather is an interpreter. + +```sh +cargo miri run +``` + +Lastly, you can combine fuzzing with Miri. The fuzzer should produce inputs that make the test harnesses cover a decent fraction of the code, probably more than unit tests. Miri can take advantage of the generated inputs: + +1. [Fuzz your code as usual](/docs/fuzzing/rust/). +2. For every file generated by the fuzzer, run the code under Miri. + +Unfortunately, [there is no single command](https://github.com/rust-fuzz/cargo-fuzz/issues/370) to combine fuzzing with Miri. You need to add a test for every harness. To do that efficiently you can use test fixtures via [`rstest`](https://docs.rs/rstest/latest/rstest/) crate. For example, the code to fuzz the binary `fuzz_target_1` could look like this: + +```rust +#![cfg_attr(not(any(miri, test)), no_main)] + +use libfuzzer_sys::fuzz_target; +use rust_tests::check_buf; +fn harness(data: &[u8]) { + check_buf(data); +} + +fuzz_target!(|data: &[u8]| { + harness(data); +}); + +#[cfg(test)] +#[cfg(miri)] +mod tests { + use { + crate::{harness}, + rstest::rstest, + std::{fs::File, io::Read, path::PathBuf}, + }; + + #[rstest] + fn miri(#[files("corpus/fuzz_target_1/*")] path: PathBuf) { + let mut input = File::open(path).unwrap(); + let mut buf = Vec::new(); + input.read_to_end(&mut buf).unwrap(); + harness(&buf); + } +} +``` + +You'd then run this command. The Miri isolation must be disabled in order to access the corpus files. + +```sh +MIRIFLAGS="-Zmiri-disable-isolation" cargo miri nextest run --bin fuzz_target_1 +``` + +Keep these tips in mind while using Miri: + +* Miri can be pretty slow. + + * Use it carefully in CI jobs. + + * Try to slice your tests into reasonably sized functions. + + * Disable the longest-running tests if needed. + + * Consider disabling the most heavy Miri detectors like `-Zmiri-disable-stacked-borrows` and `-Zmiri-disable-validation`. + + * Use [`--test-threads` or `-j` flag with `nextest`](https://nexte.st/docs/integrations/miri/#benefits) to improve the speed. + + * Data races on resources shared between testing threads [will not be detected](https://github.com/rust-lang/miri#:~:text=Note%3A%20This%20one%2Dtest%2Dper%2Dprocess%20model%20means). + +* Note that doctests are [not supported yet](https://github.com/nextest-rs/nextest/issues/16) by `nextest`. + +* For safe programs, Miri still can provide value. + + * Bugs may lie inside unsafe dependencies. + + * Memory leaks and some data races can be present even in safe Rust. + +* Miri implements a very limited subset of operating system APIs. + + * It includes only basic support for stdout printing, filesystem access, and environment variables. + + * It has no FFI support. + + * You may need to split your tests into "impure" functions (those that call unimplemented APIs) and "pure" functions (those that do not), and run Miri only on the latter. + +* Use `MIRIFLAGS="-Zmiri-disable-isolation"` and `RUSTFLAGS="-Zrandomize-layout"` to make runs less deterministic. + +* Miri downloads and compiles Rust sysroot when compiling your code. + + * You must enable network access and [disable dependency vendoring](https://fuchsia.dev/fuchsia-src/development/languages/rust/miri#setup_miri) to use Miri. + +* Some of Miri’s checks are not enabled by default. + + * For example, use `-Zmiri-tree-borrows` to replace experimental stacked borrows with (also experimental and newer) tree borrows. + +* Keep an eye on [Ralf’s blog](https://www.ralfj.de/blog/), where new Miri features are summarized. + +{{< details "Example to try: Miri in action" >}} + +The test below should pass or fail on the assertion. Miri would detect undefined behavior. + +```rust +fn main() { println!("Hello, world!"); } + +#[cfg(test)] +mod tests { + fn x() {} + + + #[test] + fn miri_example() { + let f = x as *const usize; + let y = unsafe { + *f.map_addr(|a| a + 8) + }; + assert_eq!(y, 0x841f0f); + } +} +``` + +{{< /details >}} + +## Property testing with proptest + +Normal unit tests are great for testing a single scenario. You test code by providing a single, specific value and checking if the code behaves as expected. + +But instead of using a single value, you can generate a set of inputs and execute the unit test multiple times to check if it works correctly for every input. This is called "property testing," as you are effectively verifying that some property (the test case) holds for all (or many) expected inputs. + +How do you know if you should use property testing over normal unit testing? + +* Property testing: Complex code, tedious to enumerate examples, high correctness requirements, [high-leverage scenarios](/docs/fuzzing/#what-to-fuzz) +* Unit testing: Simple code, behavior best communicated by specific cases, regression tests + +Let’s use the [proptest](https://github.com/proptest-rs/proptest) tool for the task. It is a tool inspired by the famous [QuickCheck](https://hackage.haskell.org/package/QuickCheck). + +First, install the tool as a dev dependency: + +```toml +[dev-dependencies] +proptest = "1.5.0" +``` + +To use proptest, you must write unit tests. But instead of hard-coding values that are used for testing, you define generators for values (called "strategies" in proptest’s docs). Proptest will execute the unit test dozens of times with randomly generated values. + +Proptest ships with many [configurable strategies](https://docs.rs/proptest/latest/proptest/): + +* Range-like generator for integers +* Regex generator for strings +* Simple generators for `bit`, `bool`, and `char` values +* Random-size generators for `std::collections` +* Generators for `Option` and `Result` + +The generators [can be combined together](https://proptest-rs.github.io/proptest/proptest/tutorial/macro-prop-compose.html). You can also use macros to further combine and restrict generation: + +* Do mapping with `prop_map!` +* Do filtering with `prop_filter!` +* Create enums with `prop_oneof!` +* Do recursion with `prop_recursive!` + +Let’s see some example code: + +```rust +fn simple_thingy_dingy(a: u64, b: &str) -> u64 { + return a + match b.parse::() { + Ok(x) => x, + Err(_) => b.len() as u64, + }; +} + +#[cfg(test)] +mod tests { + use crate::simple_thingy_dingy; + use proptest::prelude::*; + + proptest! { + #![proptest_config(ProptestConfig::with_cases(100))] + #[test] + fn test_simple_thingy_dingy(a in 1337..7331u64, b in "[0-9]{1,3}") { + println!("{a} | {b}"); + let sum = simple_thingy_dingy(a, &b); + assert!(sum >= a); + assert!(sum > 1337); + } + } +} +``` + +The `simple_thingy_dingy` function is a function we want to unit-test. To do so, we need to wrap the test for it with the `proptest!` helper. Then, we use two generators for values `a` and `b`: a range-like generator for integers and a regex generator for strings. + +Now, we just need to run `cargo test` and wait for the proptest to finish. Running `cargo test -- --show-output` will enable us to observe what values were generated. + +By default, proptest executes a unit test 256 times, but we can change that with `ProptestConfig::with_cases`. + +If the test finds an input failing the unit test, it writes the input to the `proptest-regressions` directory. + +As can be seen, we have to write a strategy for every single value we use. However, we could instead create [a strategy for a type](https://proptest-rs.github.io/proptest/proptest/tutorial/arbitrary.html) using the `Arbitrary` trait. + +```rust +#[cfg(test)] +mod tests { + use proptest::prelude::*; + use proptest_derive::Arbitrary; + + #[derive(Debug, Arbitrary)] + struct Point { + #[proptest(strategy = "-100i32..=100")] + x: i32, + #[proptest(strategy = "-100i32..=100")] + y: i32, + } + + impl Point { + fn distance_from_origin(&self) -> f64 { + ((self.x.pow(2) + self.y.pow(2)) as f64).sqrt() + } + } + + proptest! { + #[test] + fn test_distance_is_non_negative(point: Point) { + prop_assert!(point.distance_from_origin() >= 0.0); + } + + #[test] + fn test_distance_within_bounds(point: Point) { + // Max distance: sqrt(100^2 + 100^2) ≈ 141.4 + prop_assert!(point.distance_from_origin() <= 150.0); + } + } +} +``` + +{{< hint info >}} +You can combine proptest with other improvements like sanitizers and Miri to enhance your testing even further. + +To use proptest with Miri, you have to disable persistence (the `proptest-regressions` directory): + +```sh +PROPTEST_DISABLE_FAILURE_PERSISTENCE=true \ +MIRIFLAGS='-Zmiri-env-forward=PROPTEST_DISABLE_FAILURE_PERSISTENCE' \ +cargo miri test +``` +{{< /hint >}} + +Finally, use our [`property-based-testing`](https://github.com/trailofbits/skills/tree/main/plugins/property-based-testing) Claude skill to automate the testing. + +## Coverage + +It is critically important to know how much coverage your tests have. Coverage gathering consists of three steps: + +* Compile-time instrumentation +* Execution of tests, producing "raw" data +* Conversion of "raw" data to a usable format + +There are three common instrumentation backends (engines): + +* [GCC `gcov`](https://gcc.gnu.org/onlinedocs/gcc/Gcov.html) + * Produces `gcno` raw data (during compilation) and `gcda` raw data (during execution) +* [LLVM SanitizerCoverage](https://clang.llvm.org/docs/SanitizerCoverage.html) + * Produces `profraw` raw data + * Can produce `gcno` and `gcda` raw data, but this is not supported in Rust wrappers +* ptrace-based + * Produces `profraw` raw data + +Three popular tools wrap the above engines for easier consumption in Rust projects: [`grcov`](https://github.com/mozilla/grcov), [`cargo-llvm-cov`](https://github.com/taiki-e/cargo-llvm-cov), and [`cargo-tarpaulin`](https://github.com/xd009642/tarpaulin). Instead of these, you can directly use [the tools described in the Rust fuzzing chapter](https://trailofbits.github.io/testing-handbook-preview/pr-preview/pr-2/docs/fuzzing/rust/techniques/coverage-analysis/). + +| Feature/tool | `grcov` | `cargo-llvm-cov` | `cargo-tarpaulin` | +| :---- | :---- | :---- | :---- | +| Backends | LLVM, `gcov` | LLVM | LLVM, ptrace | +| Coverage | Lines, functions, branches | Lines, functions, regions | Lines | +| Output format | LCOV, JSON, HTML, Cobertura, Coveralls+, Markdown, ADE | Text, LCOV, JSON, HTML, Cobertura, Codecov | Text, LCOV, JSON, HTML, XML | +| To exclude files | `--ignore` | [`--ignore-filename-regex`](https://github.com/taiki-e/cargo-llvm-cov?tab=readme-ov-file#exclude-file-from-coverage) | `--exclude-files` | +| To exclude functions | With in-code markers and regexes | [With attributes](https://github.com/taiki-e/cargo-llvm-cov?tab=readme-ov-file#exclude-function-from-coverage) | [With attributes](https://github.com/xd009642/tarpaulin?tab=readme-ov-file#ignoring-code-in-files) | +| To exclude test coverage | No | [With external module](https://github.com/taiki-e/coverage-helper/tree/v0.2.0) | `--ignore-tests` | +| To enable coverage for C/C++ | Unknown | [`--include-ffi`](https://github.com/taiki-e/cargo-llvm-cov?tab=readme-ov-file#get-coverage-of-cc-code-linked-to-rust-librarybinary) | `--follow-exec` | +| Merges data from multiple runs? | No | [Yes](https://github.com/taiki-e/cargo-llvm-cov?tab=readme-ov-file#merge-coverages-generated-under-different-test-conditions) | [Yes](https://github.com/xd009642/tarpaulin?tab=readme-ov-file#command-line) (but only shows delta) | + +While checking coverage statistics from a command line and using one of many coverage visualizers, an HTML report is often what you need. + +| HTML output/tool | `grcov` | `cargo-llvm-cov` | `cargo-tarpaulin` | +| :---- | :---- | :---- | :---- | +| Examples | [Open `grcov`](https://trailofbits.github.io/samples_rust_coverage/grcov/index.html?:) [Open `grcov` with `lcov`](https://trailofbits.github.io/samples_rust_coverage/grcov_lcov/index.html?:) | [Open `llvm-cov`](https://trailofbits.github.io/samples_rust_coverage/llvm_cov/index.html?:) [Open `llvm-cov-pretty`](https://trailofbits.github.io/samples_rust_coverage/llvm_cov_pretty/index.html?:) | [Open `tarpaulin`](https://trailofbits.github.io/samples_rust_coverage/tarpaulin-report.html?:) | +| Handles Rust’s constructions? | Yes | Yes | Yes | +| Expands Rust’s generics? | No | `--show-instantiations` | No | +| Includes number of hits? | Yes | Yes | No | +| Supports multi-file output? | Yes | Yes | No | + +These are our general recommendations for generating test coverage: + +* Use `cargo-llvm-cov` (with [`llvm-cov-pretty`](https://github.com/dnaka91/llvm-cov-pretty)) for rapid testing. It is the easiest to run, it resolves generics, and it produces pretty HTML output. +* Use either `cargo-llvm-cov` or `grcov` for complex projects. Both are decent and can produce readable outputs. +* Use `cargo-tarpaulin` when other tools work incorrectly. [The developers claim](https://github.com/xd009642/tarpaulin?tab=readme-ov-file#nuances-with-llvm-coverage) that this can happen in the event of the following: + * The code panics unexpectedly. + * There are race conditions. + * The code forks. + +For profiling, consider using [`measureme`](https://github.com/rust-lang/measureme), possibly with [Miri and Chrome DevTools](https://medium.com/source-and-buggy/data-driven-performance-optimization-with-rust-and-miri-70cb6dde0d35). + +{{< hint info >}} +Go to the [Testing Handbook repository’s `samples/rust_coverage`](https://github.com/trailofbits/testing-handbook/tree/main/samples/rust_coverage/) folder. +There you will find Dockerfile-generating HTML reports using the described tools. +{{< /hint >}} + + +## Validation of tests (mutation testing) + +Who tests tests? What if tests miss an important branch? What if your critical test has a bug that makes it pass incorrectly? We recommend using mutation testing to validate your tests. + +### Gaps in test coverage + +Mutation testing involves modifying the source code and then running the tests to see if they catch those modifications (called mutants). You can read more about this testing technique in our blog post ["Use mutation testing to find the bugs your tests don't catch"](https://blog.trailofbits.com/2025/09/18/use-mutation-testing-to-find-the-bugs-your-tests-dont-catch/). + +For starters, you need basic but decent unit test coverage. Then, use one of the following tools to automatically get a list of code areas that are not sufficiently tested or may be buggy. + +[`cargo-mutants`](https://mutants.rs/welcome.html) + +* Easy to use +* Parses the AST of every file with the [`syn` library](https://docs.rs/syn/latest/syn/) +* Partially type-aware +* Can [divide jobs](https://mutants.rs/shards.html) between multiple machines + +[`universalmutator`](https://github.com/agroce/universalmutator) + +* Multiple languages supported +* Require more manual setup than `cargo-mutants` +* Two parsing modes: regexes and [Comby](https://github.com/comby-tools/comby) +* Trivial Compiler Equivalence (TCE) optimization to eliminate redundant mutants before test runs + +### Bugs in existing tests + +A unique approach to finding bugs in tests is to mutate them and check if they pass. If they do, it indicates that something may be wrong with them. This is different from mutating the actual code: we aim to find bugs in the tests, not coverage gaps or bugs in the code. + +To automate the process of mutation and validation, [use Necessist](https://github.com/trailofbits/necessist). + +```sh +cargo install necessist necessist +``` + +Necessist works by iterating over the statements in each test, removing them one at a time, and checking whether the test still passes. A mutated test that passes with an instruction removed is shown as the following: + +``` +filename:line-line `removed code` passed +``` + +If a test still passes after an instruction was removed, then that instruction is redundant and does not change the test’s behavior, indicating there may be a bug in the test. A manual investigation is then needed to determine if there really is a bug. + +{{< hint info >}} +While Necessist aims to find bugs in the tests, its findings can sometimes reveal issues in the actual code. +{{< /hint >}} + +{{< details "Example to try: testing with Necessist" >}} + +Necessist should report that the `parser_detects_errors` test passes even if one line is removed from it. This indicates that the magic number in either the test or the `validate_data` function is incorrect, preventing the "real" bug from being tested properly. + +```rust +fn validate_data(data: &Data) -> Result<(), ()> { + if !data.magic.eq(&[0x13, 0x37]) { return Err(()) } + if data.len as usize != data.content.len() { return Err(()) } + return Ok(()); +} + +struct Data { + magic: [u8; 2], + len: u8, + content: String +} + +#[cfg(test)] +mod tests { + use crate::{Data, validate_data}; + + #[test] + fn parser_detects_errors() { + let mut blob = Data{ + magic: [0x73, 0x31], + len: 2, + content: "AB".parse().unwrap(), + }; + blob.content = blob.content + "Y"; + let result = validate_data(&blob); + assert!(result.is_err()); + } +} +``` + +{{< /details >}} + +Necessist is slow and sometimes produces a nontrivial number of false positives. We recommend running it manually from time to time instead of in a CI pipeline. + +The tool produces a `necessist.db` file that can be used to resume an interrupted run. The database should be retained between runs to accelerate new tests. + +## Resources + +* ["The Rust Programming Language," chapter 11: Testing](https://web.mit.edu/rust-lang_v1.25/arch/amd64_ubuntu1404/share/doc/rust/html/book/second-edition/ch11-00-testing.html): The basics of unit and integration testing in Rust +* [Ed Page’s "Iterating on Testing in Rust"](https://epage.github.io/blog/2023/06/iterating-on-test/): Lists potential issues with `cargo` `test` and introduces `cargo-nextest` +* [Unsafe Rust and Miri by Ralf Jung \- Rust Zürisee June 2023](https://www.youtube.com/watch?v=svR0p6fSUYY) diff --git a/content/docs/languages/rust/30-static-analysis.md b/content/docs/languages/rust/30-static-analysis.md new file mode 100644 index 0000000..cca1fa5 --- /dev/null +++ b/content/docs/languages/rust/30-static-analysis.md @@ -0,0 +1,152 @@ +--- +title: "Static analysis" +slug: lang-rust-static-analysis +weight: 30 +--- + +# Rust static analysis + +Static analysis involves analyzing source code without executing it. + +## Clippy + +Clippy is the fundamental linter. Just use it. + +[Clippy lints](https://rust-lang.github.io/rust-clippy/master/index.html) are categorized into groups and levels. Groups categorize lints by the types of issues they detect. Levels indicate what to do when a lint finds an issue: + +* Allow: Ignore the issue +* Warn: Print a message to stdout +* Deny: Return an error code (useful in CI pipelines) + +Clippy is a wrapper over the `rustc` compiler, so when Clippy is run, it executes [its own set of lints](https://doc.rust-lang.org/rustc/lints/listing/index.html) in addition to `rustc`’s. These lints are similarly categorized and can be controlled with the same flags and configuration options. + +For one-off security reviews, you want to get indicators of buggy code. For that, use the default configuration. It enables all warnings and deny lints: + +```sh +cargo clippy +``` + +For audits of very mature codebases, you want to enable more groups: + +```sh +cargo clippy -- -W clippy::pedantic -W clippy::nursery +``` + +Finally, you can get them all (`rustc` allow lints must be enabled one by one, and some require additional features): + +```sh +cargo clippy -- \ + -Zcrate-attr="feature(non_exhaustive_omitted_patterns_lint)" \ + -Zcrate-attr="feature(strict_provenance)" \ + -Zcrate-attr="feature(multiple_supertrait_upcastable)" \ + -Zcrate-attr="feature(must_not_suspend)" \ + -W $(rustc -W help | grep ' allow' | cut -w -f2 | awk 'ORS=" -W"') \ + clippy::pedantic -W clippy::nursery -W clippy::restriction -A dead_code +``` + +{{< hint info >}} +These are our favorite lints: +* [`arithmetic_side_effects`](https://rust-lang.github.io/rust-clippy/master/index.html#arithmetic_side_effects): Detects potential side effects of arithmetic operations (e.g., integer overflows, division by zero) +* [`string_slice`](https://rust-lang.github.io/rust-clippy/master/index.html#string_slice): Detects potential slices that do not align with Unicode codepoints +* [`must_use_candidate`](https://rust-lang.github.io/rust-clippy/master/index.html#must_use_candidate): Checks for unused `#[must_use]` candidates + +``` +# WARNING: The next command modifies files! +cargo clippy --fix --allow-dirty -- -W clippy::must-use-candidate +cargo check --all-targets +``` +{{< /hint >}} + + +If Clippy produces a lot of results, you may want to output findings in SARIF format and use [SARIF Explorer](https://github.com/trailofbits/vscode-sarif-explorer) to review them in a code editor. Use the third-party [`clippy-sarif`](https://crates.io/crates/clippy-sarif) tool for the task: + +```sh +cargo clippy --message-format=json | clippy-sarif +``` + +For continuous use, such as in a CI/CD pipeline, you want to minimize false positives and focus on the important lints. For that, follow these guidelines: + +* Use the default Clippy configuration. +* Enable recommended `clippy::restriction` lints (see the example below). +* Enable selected lints from `clippy::pedantic` groups (these should be enabled case by case depending on your project). +* Turn warnings into errors so that CI/CD fails on any issue. +* Add `#[allow(..)]` attributes in the code to silence specific findings of enabled lints when really needed. Make sure to comment why the lint was disabled in the specific location. + +```sh +cargo clippy -- \ + -Dwarnings -A clippy::style -W clippy::arithmetic-side-effects \ + -W clippy::string_slice -W clippy::infinite_loop \ + -W clippy::float_cmp_const + # then enable style and pedantic like -W clippy::same-item-push -W clippy::cast_lossless +``` + +You can contribute new lints to Clippy. To do so, [follow the official guidance](https://doc.rust-lang.org/clippy/development/index.html). + +{{< hint info >}} +To stop Clippy from producing warnings for tests, use the following configuration (e.g., in the `clippy.toml` file): + +```toml +allow-expect-in-tests = true +allow-panic-in-tests = true +allow-unwrap-in-tests = true +``` +{{< /hint >}} + + +## Dylint + +[Dylint](https://github.com/trailofbits/dylint) runs lints from dynamic libraries named by the user, allowing developers to maintain their own personal lint collections. While you could write new Clippy lints and send a pull request, this is not always an ideal solution: + +* The new lints cannot be project-specific. +* The new lints cannot target third-party crates. +* Complex lints may not be wanted due to maintenance effort. +* Lints with a high false-positive rate may not be wanted. + +Moreover, using Dylint over Clippy [helps for dealing with the unstable `rustc` API and for sharing lints with other people](https://blog.trailofbits.com/2021/11/09/write-rust-lints-without-forking-clippy/). + +{{< resourceFigure "30-dylint.svg" "Clippy vs Dylint linking" >}} +Slide from "Linting with Dylint" EuroRust 2024 talk. +{{< /resourceFigure >}} + +### Quick start + +Install the tool: + +```sh +cargo install cargo-dylint dylint-link +``` + +Run with lints provided by Trail of Bits: + +```sh +cargo dylint --no-deps \ + --git https://github.com/trailofbits/dylint \ + --pattern examples/general cargo dylint --no-deps \ + --git https://github.com/trailofbits/dylint \ + --pattern examples/supplementary \ + -- --message-format=json | clippy-sarif > dylint.sarif +``` + +### Write your own lint + +You can write your own lint, but it is a nontrivial task and is beyond the scope of this chapter. At a high level, you will need to decide on the type of lint: + +* Pre-expansion: Run on the AST before macros are expanded +* Early: Run on the AST after macros have been expanded +* Late: Run on the high-level intermediate representation (HIR)—that is, after names have been resolved, types have been checked, etc. + +Check out [Samuel Moelius’s ‘Linting with Dylint’ EuroRust 2024](https://youtu.be/MjlPUA7sAmA?t=548) talk' for detailed guidelines + +## Other tools + +### Semgrep + +Semgrep has support for the Rust language. Check the [Semgrep page](/docs/static-analysis/semgrep/) in the handbook for more information on the tool. + +```rust +semgrep --config "p/rust" +``` + +### no-panic + +The [`dtolnay/no-panic` macro](https://github.com/dtolnay/no-panic) can be used to prove the absence of panics in given functions, using the compiler as the analysis engine. \ No newline at end of file diff --git a/content/docs/languages/rust/30-static-analysis/30-dylint.svg b/content/docs/languages/rust/30-static-analysis/30-dylint.svg new file mode 100644 index 0000000..0e7e79d --- /dev/null +++ b/content/docs/languages/rust/30-static-analysis/30-dylint.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/content/docs/languages/rust/40-gotchas.md b/content/docs/languages/rust/40-gotchas.md new file mode 100644 index 0000000..09c87b6 --- /dev/null +++ b/content/docs/languages/rust/40-gotchas.md @@ -0,0 +1,71 @@ +--- +title: "Gotchas and footguns" +slug: lang-rust-gotchas-and-footguns +weight: 40 +--- + +# Rust gotchas and footguns + +This section provides a checklist that can be used during manual Rust code reviews. The list represents common issues we have encountered during our audits. It is not comprehensive, but it is a good starting point to quickly bootstrap an audit. + +## For safe code + +{{< checklist >}} + +- [ ] Check string comparisons. + * Often partial-match (`starts_with`, `ends_with`, `contains`) is used instead of equality. + * Case (in)sensitivity of comparisons often results in issues. +- [ ] Check string conversions to other data types (like `Vec`) and vice versa. These may come with UTF-8 encoding issues. Three options to handle utf8–bytes conversions: + * `unwrap` \- strict, panics on non-convertible data + * `from_utf_lossy` \- lossy, rewrites invalid utf8 bytes to U+FFFD (replacement character) + * `OsStr` \- direct, just returns the bytes +- [ ] Verify that the `with_capacity` method of the `Vec`, `HashMap`, `HashSet`, and `IndexSet` classes (and possibly other classes) is not called with user-controlled data. Large values can lead to denial of service. + * Also check that the provided capacity is smaller than the `isize::MAX` bytes [to prevent panics](https://doc.rust-lang.org/std/vec/struct.Vec.html#panics). + * Note that some methods—[like Serde’s `size_hint`](https://github.com/serde-rs/serde/issues/744)—may indirectly expose the `with_capacity` method. +- [ ] Verify that users cannot create arbitrarily deep recursive structs. A drop of such a struct can lead to a stack overflow. (See ["If a Tree Falls in a Forest, Does It Overflow the Stack?](https://matklad.github.io/2022/11/18/if-a-tree-falls-in-a-forest-does-it-overflow-the-stack.html) for an example.) +- [ ] Verify that `std::process::exit` is used sparingly. Calling this function causes a process to exit immediately, thereby sidestepping all registered drop handlers. +- [ ] Verify that proper bounds checks are performed before array accesses. An out-of-bounds array access can lead to denial of service. +- [ ] Verify that proper checks are performed before type conversions to prevent loss of precision (e.g., `u64` to `f64`, as the mantissa of type `f64` is only 52 bits wide). +- [ ] Check that the number of fields passed into the [`serialize_struct` method matches the actual number of serialized fields](https://github.com/trailofbits/dylint/tree/master/examples/general/wrong_serialize_struct_arg). Some serialization formats, such as `serde-binary`, could truncate the serialized data if the number of fields is incorrect. This would mean that deserializing the data would result in a different value than the original. +- [ ] Review all methods and actions that may cause panics. Other sections of the Handbook describe tools that can help with reviewing operations that could lead to panics. + * `unwrap` and `expect` (the most common panicking methods) + * [`todo!`,](https://doc.rust-lang.org/std/macro.todo.html) [`unimplemented!`](http://doc.rust-lang.org/std/macro.unimplemented.html), [`assert!`](https://doc.rust-lang.org/std/macro.assert.html) and [`unreachable!`](https://doc.rust-lang.org/std/macro.unreachable.html) macros + * Out-of-bounds accesses + * Large allocations + * String slicing at non-character boundaries + * `RefCell` + * This struct enforces borrowing rules at runtime, and `borrow_mut` calls may panic. + * [`HeaderMap`](https://docs.rs/http/latest/http/header/struct.HeaderMap.html#limitations) + * This struct panics after more than 32,000 elements are added. + * `Duration::from_secs_f{32,64}` and `Duration::new` + * `Duration::from_secs_f{32,64}` panics with negative inputs; `Duration::new` panics when the nanoseconds value overflows into the seconds counter. +- [ ] Verify that it is not possible to modify keys while they’re in a collection type like a `HashMap` or `BinaryHeap`, as this leads to undefined behavior. +- [ ] Verify that `debug_assert!` and other debug macros are not used for actual data validation. Such macros are removed from production builds. +- [ ] Verify that raw file descriptors are explicitly closed in all execution flow paths. Raw descriptors are not closed on `Drop`. + * Verify that file descriptors are not closed two times: automatically on `Drop` and explicitly via the [`close` method](https://docs.rs/nix/latest/nix/unistd/fn.close.html). +- [ ] Explicitly flush `BufWriter`s to get flush errors; errors are ignored on automatic flushing when values are dropped. +- [ ] Ensure that absolute paths are not used with [`PathBuf::join`](https://doc.rust-lang.org/std/path/struct.PathBuf.html#method.join), as this may lead to path traversal issues. +- [ ] Verify that functions used only in tests are guarded by `#[cfg(test)]`. +- [ ] Verify that each use of `#![allow(...)]` is justified and that `#[allow(...)]` is not used excessively. +- [ ] Operator precedence of bitwise operators (`&`, `^`, `|`) compared to comparison operators (`==`, `!=`) differs between Rust and C. This is something to be aware of when rewriting C code. +- [ ] Verify that test-only Cargo features (like mocks) are not included in `[dependencies]` and are not part of the `default` feature set. Use `cargo tree -e features` to validate your project. +- [ ] Review code against possible issues resulting from operating system interactions (see the [C/C++ chapter for ideas](/docs/languages/c-cpp/)). Any syscall, libc function call, and other interaction with the operating system should be checked against known gotchas. +- [ ] Review the ["Secure Rust Guidelines checklist"](https://anssi-fr.github.io/rust-guide/checklist.html). + +{{< /checklist >}} + +## For unsafe code + +Common issues to check for in unsafe code are given below. For more information, read the [Rustonomicon](https://doc.rust-lang.org/nomicon/intro.html). + +{{< checklist >}} + +- [ ] Any union access is unsafe in Rust. Verify that the union field that matches the underlying data is used. +- [ ] Look for uses of libc APIs like `memset` or `memcpy`. Most of them can be replaced with safe Rust counterparts. +- [ ] If `#repr(packed)` is used on a struct, then check that [`write_unaligned`](https://doc.rust-lang.org/std/ptr/fn.write_unaligned.html#on-packed-structs) is used for unaligned fields. +- [ ] Check for uses of [`std::mem::uninitialized`](https://doc.rust-lang.org/std/mem/fn.uninitialized.html). +- [ ] Check for uses of [`std::mem::forget`](https://doc.rust-lang.org/std/mem/fn.forget.html). +- [ ] Check for uses of `transmute` or `cast` from a non-mutable reference `&` to a mutable `&mut` (likely an undefined behavior). +- [ ] Review uses of `static mut` and [recommend using synchronization instead](https://github.com/rust-lang/rust/issues/53639). + +{{< /checklist >}} \ No newline at end of file diff --git a/content/docs/languages/rust/50-memory-zeroization.md b/content/docs/languages/rust/50-memory-zeroization.md new file mode 100644 index 0000000..ce2e57d --- /dev/null +++ b/content/docs/languages/rust/50-memory-zeroization.md @@ -0,0 +1,142 @@ +--- +title: "Memory zeroization" +slug: lang-rust-memory-zeroization +weight: 50 +--- + +# Rust memory zeroization + +Zeroization in the presence of optimizing compilers is difficult. In Rust, it is particularly tricky because of the constraints the compiler imposes on memory management. The compiler can infer significant information about aliasing information that allows unexpected copies of secret data to appear on the stack. For example, consider the pitfall described in the blog post ["A pitfall of Rust's move/copy/drop semantics and zeroing data"](https://benma.github.io/2020/10/16/rust-zeroize-move.html). + +There are three levels of "zeroization security" that can be considered, depending on the security goals. + +**Pros and cons of different approaches** + +| Security level | Pros | Cons | +| :---- | :---- | :---- | +| **1** | Provides concrete coding rules for ensuring that a value is zeroed before it is dropped; low coding overhead | Does not achieve guaranteed zeroization; allows compiler to make copies that are not explicitly zeroed | +| **2** | Prevents moves from creating copies and leaving the parent data on the stack | Cannot prevent downstream dereferences from creating copies on the stack; more coding overhead | +| **3** | No need to fight with the compiler; provides the best guarantees around data isolation; achieves a conceptually simple model of data’s lifetime and zeroization | Time-consuming to implement; resource-expensive in runtime; does not provide 100% certain memory zeroization because of possible hardware-level uncertainties | + +## Security level 1: Use ZeroizeOnDrop (the common practice) + +Roughly, the idea is to ensure that values are zeroed whenever they fall out of scope. The [`zeroize`](https://docs.rs/zeroize/latest/zeroize/) crate is the most common way to achieve this goal. Owned values derive the `ZeroizeOnDrop` trait, causing values to call their component’s `zeroize` methods when the compiler inserts a drop on that value. This approach offers a simple model of zeroization where you do not fight the compiler and simply attempt to guarantee that each drop is covered by zeroization. This approach can be made easier by using the [`secrecy`](https://docs.rs/secrecy/0.8.0/secrecy/) crate, which provides wrappers around various types. + +Unfortunately, moves can, and often do, create copies. These copies happen specifically [when stack values are moved](https://docs.rs/zeroize/latest/zeroize/#stackheap-zeroing-notes). However, ABI constraints or optimization of heap values can also result in a copy. + + +{{< details "Example to try: failed zeroization" >}} + +The simplest case is where a stack value implementing the `ZeroizeOnDrop` trait does not result in zeroization because a value is moved. + +```rust +use crypto_bigint::{rand_core::OsRng, Random, U256}; + +#[derive(zeroize::ZeroizeOnDrop)] +struct X { + i: U256, +} + +impl X { + fn generate() -> X { + X { + i: U256::random(&mut OsRng), + } + } + + fn take(self) { + println!("currently {}", self.i); + drop(self); + println!("dropped"); + } +} + +fn main() { + let x = X::generate(); + println!("generated value"); + let ptr: *const X = &x; + unsafe { + let svd = (*ptr).i; + println!("saved"); + x.take(); + println!("dropped"); + let new = (*ptr).i; + assert_ne!(svd, new); // assertion fails + } +} +``` + +{{< /details >}} + + +## Security level 2: Zeroization target is not moved + +An alternative to the best-effort approach is to fight the compiler and attempt to guarantee that copies do not live in memory. You can attempt to prevent spurious compiler-introduced copies created by moves by disallowing moves through the [`pin`](https://doc.rust-lang.org/std/pin/) feature. The code below demonstrates how using the `pin` feature fixes the data disclosure demonstrated in the example above. + +```rust +use std::{ops::Deref, pin::Pin}; + +use crypto_bigint::{rand_core::OsRng, Random, U256}; + +#[derive(zeroize::ZeroizeOnDrop)] +struct X { + i: U256, +} + +impl X { + fn generate() -> X { + X { + i: U256::random(&mut OsRng), + } + } + + fn take(&self) { + println!("currently {}", self.i); + println!("dropped"); + } +} + +fn main() { + let x = Pin::new(Box::new(X::generate())); + println!("generated value"); + let ptr: *const X = x.deref(); + unsafe { + let svd = (*ptr).i; + println!("saved"); + x.take(); + drop(x); + println!("dropped"); + let new = (*ptr).i; + assert_ne!(svd, new); // assertion passes + } +} +``` + +The [`clear_on_drop`](https://docs.rs/clear_on_drop/latest/clear_on_drop/index.html) crate attempts to achieve this behavior by default and roughly performs the role of `pin` plus `ZeroizeOnDrop`. + +However, this approach still does not prevent unexpected copies of data from being created in the process's memory. The example above discloses a copy of the `x` value on the stack, as shown in the assembler code below. + +```asm +100002260 e2 23 01 91 add x2,sp,#0x48 + $U11e80:8 = COPY 0x48:8 + tmpCY = INT_CARRY sp, $U11e80:8 + tmpOV = INT_SCARRY sp, $U11e80:8 + $U11f80:8 = INT_ADD sp, $U11e80:8 + tmpNG = INT_SLESS $U11f80:8, 0:8 + tmpZR = INT_EQUAL $U11f80:8, 0:8 + x2 = COPY $U11f80:8 +100002264 e9 27 00 f9 str x9,[sp, #local_78] + $U6500:8 = INT_ADD sp, 0x48:8 + STORE ram($U6500:8), x9 +``` + +The dereferenced value ends up stored on the stack because of downstream dereferences. In the example above, the `u256` type implements the `Copy` trait, and the call to the `println` function produces a copy (as the function’s ABI requires). It is almost impossible to precisely control downstream dereferences because you would need to manually review the final compiled binary to check that there are no copies of zeroed data. + +## Security level 3: Tear down processes, allocators, and the stack intermittently + +To really guarantee that data is no longer in memory (though the definition of *guarantee* depends on the kernel, hardware, etc.), you can tear down processes or worker threads and clear all memory associated with them at set points where the data should leave memory (i.e., after a request has been processed). The easiest version of this approach is a worker process that only returns a result and is killed after finishing a request. + +This approach effectively relies on the kernel to provide memory-level process isolation. It should prevent compromise of secrets if the main process is compromised. However, it will not prevent secrets from residing in RAM memory until overwritten at some random point in time (the data may be retrieved with specialized lab equipment). + +A more complex approach would be to have the code iterate over subprocesses’ and threads’ writable memory regions and overwrite them with zeros or random data just before they are killed. However, even with such an overly complex solution, you may not be sure about data zeroization because a process-level implementation cannot provide guarantees that are effectively hardware-level. + diff --git a/content/docs/languages/rust/60-model-checking.md b/content/docs/languages/rust/60-model-checking.md new file mode 100644 index 0000000..8a05223 --- /dev/null +++ b/content/docs/languages/rust/60-model-checking.md @@ -0,0 +1,214 @@ +--- +title: "Model checking" +slug: lang-rust-model-checking +weight: 60 +--- + +# Rust model checking + +Model checking means verifying that a program works correctly for all possible inputs. + +Instead of testing with a single value (like with unit testing) or with a set of values (like with property testing), we check all possible values—and hope that smart algorithms will make it possible to finish testing in a reasonable time. + + +## Prusti + +[Prusti](https://github.com/viperproject/prusti-dev) is based on [Viper](https://www.pm.inf.ethz.ch/research/viper.html), a framework for building verification tools. It uses symbolic execution and the [Z3 theorem prover](https://github.com/Z3Prover/z3). + +{{< hint warning >}} +It is an academic project that seems to be stale. However, it can be used to experiment with this type of testing. For production uses consider other tools like Kani or Verus. +{{< /hint >}} + +### Installation + +The developers recommend using the [Visual Studio Code extension](https://marketplace.visualstudio.com/items?itemName=viper-admin.prusti-assistant). Command-line tools can be [downloaded from the Prusti GitHub’s releases page](https://github.com/viperproject/prusti-dev/releases). + +### Usage + +You can simply run Prusti on your code and it will look for the following: + +* Absence of reachable panics +* Absence of reachable, failing assertions +* Absence of integer overflows + + +Prusti detects all functions in a project (even unreachable ones) and checks them "independently." It simply assumes that function arguments can take any value—that they are bounded only by their types. + +Please note that Prusti [does not check testing code](https://viperproject.github.io/prusti-dev/user-guide/tour/testing.html). + +To restrict values, and to define more code properties for verification, you have to create specifications for functions. + +### Function specifications + +The main power of Prusti lies in its ability to specify and validate functions’ contracts (or specifications). A function’s specification consists of preconditions and postconditions. + +* Preconditions + * These conditions are checked before calls. + * Prusti verifies that all calls to the function are done with arguments meeting the preconditions. + * Preconditions limit the set of possible values for postcondition checks. +* Postconditions + * These conditions are checked after function returns. + * Prusti verifies that postconditions are met at all exit points of the function. + +In the example below, conditions are implemented with Rust attributes: `requires` (preconditions) and `ensures` (postconditions). Prusti will check if all calls to `prusti_check` pass the argument that is less than or equal to 20\. Then it will check if possible return values from the `prusti_check` function are below 10, assuming the input is less than or equal to 20\. + +```rust +use prusti_contracts::*; +fn main() { + prusti_check(20); + prusti_check(11); +} + +#[requires(x <= 20)] +#[ensures(x < 10)] +fn prusti_check(x: u32) -> u32 { + if x >= 10 { + return x / 100; + } + return x; +} +``` + +If values violating conditions are found, Prusti returns an error and can produce [an example set of values that demonstrate the problem](https://viperproject.github.io/prusti-dev/user-guide/verify/counterexample.html). + +{{< hint danger >}} +Prusti does not support loops automatically. You have to specify [`body_invariants`](https://viperproject.github.io/prusti-dev/user-guide/tour/loop_invariants.html) to enable code verification. +{{< /hint >}} + +## Kani + +[Kani](https://github.com/model-checking/kani) is a frontend for [CBMC](https://www.cprover.org/cbmc/) (Bounded Model Checker for C and C++). + +### Installation + +You can simply [use Cargo to install it](https://model-checking.github.io/kani/install-guide.html). + +```sh +cargo install --locked kani-verifier cargo kani setup +``` + +### Basic usage + +Using Kani is similar to writing normal unit tests. You first write a test and then run this command: + +```sh +cargo kani +``` + +However, instead of using concrete values, use `kani::any()` to create a "symbolic" (or unbounded or nondeterministic) variable. Such variables can take any value (of their type). + +Running the test, Kani will verify the absence of the following conditions for all possible values of the symbolic variables: + +* Failing assertions +* Panics +* Memory safety issues +* Integer overflows + +If the code to test is too complex, Kani may take a long time to finish or may not even terminate at all. To overcome this, you can use three features: + +* [`kani::assume`](https://model-checking.github.io/kani/tutorial-first-steps.html#assertions-assumptions-and-harnesses): For restricting (bounding) symbolic values. It is a bit similar to [Prusti’s preconditions](https://trailofbits.github.io/docs/languages/rust/rust-advanced-testing/#function-specifications). +* [`kani::unwind`](https://model-checking.github.io/kani/tutorial-loop-unwinding.html): For controlling bounds for loops. Kani will assume that loops can loop only the configured number of times. The greater the number, the slower the execution. But if the number is configured to be too small, Kani will fail too early. This is the mechanism that overcomes Prusti’s limitation with the `body_invariant` `statement`. +* [`kani::Arbitrary`](https://model-checking.github.io/kani/tutorial-nondeterministic-variables.html#custom-nondeterministic-types): For defining per-type limitations for symbolic values + +Let’s see an example: + +```rust +pub struct Book { + title: String, + pages: u16 +} + +fn read_book(r: Book) -> u16 { + return if r.title == "The Black Book" { + 0 + } else { + let mut letters = 0; + for page in 0..r.pages { + if page == 13 { + panic!("Bad luck"); + } + letters += page; + } + letters + } +} + +#[cfg(kani)] +mod verification { + use crate::{Book, read_book}; + + impl kani::Arbitrary for Book { + fn any() -> Self { + let titles = vec!["The Black Book", "Lord of the ToB", + "The White Book"]; + let title_id: usize = kani::any(); + kani::assume(title_id < titles.len()); + Book { title: titles[title_id].to_string(), pages: kani::any() } + } + } + + #[kani::proof] + #[kani::unwind(18)] + fn verify_book() { + let book: Book = kani::any(); + kani::assume(book.pages < 4096); + let y = read_book(book); + assert!(y < 100); + } +} +``` + +Here we have a simple structure and a function that panics for some inputs. + +We define a new `verification` module under the `#cfg(kani)` attribute. This lets us disable Kani-specific code when not needed. Then, we implement the `kani::Arbitrary` trait to tell Kani how to generate symbolic `Books`: by limiting the set of `titles` to three possible values and using unbounded numbers in the `pages` field. + +Then, we use the `#[kani::proof]` attribute and write a test similar to normal unit tests, with three main differences: + +* Generating a symbolic `book` variable (using our `kani::Arbitrary` implementation) +* Restricting `book.pages` to be less than 4096 +* Limiting the number of loops to 20 with `#[kani::unwind(20)]` + +The [Kani documentation recommends](https://model-checking.github.io/kani/tutorial-loop-unwinding.html) setting the `#[kani::unwind(X)]` attribute experimentally: + +* Start with a number that is slightly larger than the maximum of the expected numbers of all loops’ repetitions. +* If Kani takes too much time to finish, lower the `unwind` number. +* If Kani errors out with `FAILURE: unwinding assertion loop X`, increase the unwind number. + +If Kani finds a `FAILURE`, then we can generate example values that will trigger the failure with one of two methods: + +* Generating a normal unit test with `cargo kani --concrete-playback print -Z concrete-playback` +* [Generating an HTML report](https://github.com/model-checking/kani/blob/8942fc8b21065efdca42ceda44f1eb18bfb0e1f1/CHANGELOG.md?plain=1#L328) with `cargo kani --visualize --enable-unstable` + +{{< hint danger >}} +Kani does not scale well for the following: +* Strings with unbounded content (i.e., long strings with arbitrary data) +* Structures of symbolic sizes that involve heap allocations. +{{< /hint >}} + +## Other model checkers + +[Creusot](https://github.com/xldenis/creusot) +* Based on [Why3](https://www.why3.org/) +* Allows you to provide and verify function specifications + +[Crux-mir](https://github.com/GaloisInc/crucible/tree/master/crux-mir) +* Symbolic analysis +* Enables writing of "symbolized" unit tests + +[Flux](https://github.com/flux-rs/flux) +* Refinement type checker +* Allows you to annotate functions with complex conditions + +[Verus](https://github.com/verus-lang/verus) +* SMT-based +* Lets you add `requires`/`ensures` clauses to functions + +[Aeneas](https://github.com/AeneasVerif/aeneas) +* Converts Rust code to pure lambda calculus (LEAN, Coq, etc.) + +[MIRAI](https://github.com/endorlabs/MIRAI) +* Implements abstract interpretation, taint analysis, and constant time analysis + +[Stateright](https://www.stateright.rs/title-page.html) +* TLA+ for Rust +* Lets you model the state machine of a system and test properties on it diff --git a/content/docs/languages/rust/70-specialized-testing.md b/content/docs/languages/rust/70-specialized-testing.md new file mode 100644 index 0000000..d83e71f --- /dev/null +++ b/content/docs/languages/rust/70-specialized-testing.md @@ -0,0 +1,30 @@ +--- +title: "Specialized testing" +slug: lang-rust-specialized-testing +weight: 70 +--- + +# Rust specialized testing + +## Concurrency testing + +[Shuttle](https://github.com/awslabs/shuttle) + +* Unsound, but scalable +* Works analogously to property testing + +[Loom](https://docs.rs/loom/latest/loom/) + +* Sound, but slow +* Works analogously to model checkers + +## Fault injections + +[MadSim](https://github.com/madsim-rs/madsim) + +* Replaces the `tokio` and `tonic` crates with simulated versions +* Injects faults and increases randomness + +[fail-rs](https://github.com/tikv/fail-rs) + +* Needs you to manually add `fail_point!` macros into the code \ No newline at end of file diff --git a/content/docs/languages/rust/80-supply-chain-analysis.md b/content/docs/languages/rust/80-supply-chain-analysis.md new file mode 100644 index 0000000..82d83d7 --- /dev/null +++ b/content/docs/languages/rust/80-supply-chain-analysis.md @@ -0,0 +1,143 @@ +--- +title: "Supply chain analysis" +slug: lang-rust-supply-chain-analysis +weight: 80 +--- + +# Rust supply chain analysis + +## Vetting + +The tools in this section are more for "understanding" than "checking." That is, running them does not produce bug reports, but can help you assess the maturity and security of dependencies. The tools below are quantitative rather than qualitative; you will need to perform manual, in-depth review of the outputs to extract any solid evidence about the maturity. + +### [cargo-supply-chain](https://github.com/rust-secure-code/cargo-supply-chain) + +The tool reveals who you are implicitly trusting via dependencies. You want that set to be small. The tool detects both the dependencies (libraries) and authors (publishers). + +```sh +$ cargo supply-chain crates + +Dependency crates with the people and teams that can publish them to crates.io: + +1. libc: team "github:rust-lang:libc", team "github:rust-lang:libs", someguy, someother-guy +2. unicode-bidi: team "github:servo:cargo-publish", asterix, obelix +3. bitflags: team "github:bitflags:owners", team "github:rust-lang-nursery:libs", NotMe, notY0u +``` + +### [cargo-vet](https://mozilla.github.io/cargo-vet/) + +The tool checks if dependencies were audited by a "trusted party." + +```sh +$ cargo vet + +Vetting Failed! +1 unvetted dependencies: + regex-syntax:0.8.8 missing ["safe-to-deploy"] + +recommended audits for safe-to-deploy: + Command Publisher Used By Audit Size + cargo vet diff regex-syntax 0.8.5 0.8.8 TheGuy regex and regex-automata 14 files changed + +``` + +The `cargo-vet` failure shown above means the `regex-syntax` crate is "not safe for deployment," but there is an available audit for an older version of the crate. + +There are some [preconfigured auditors](https://raw.githubusercontent.com/bholley/cargo-vet/main/registry.toml), and [more can be imported](https://mozilla.github.io/cargo-vet/importing-audits.html). We recommend adding the following: + +* [`rust-crate-audits`](https://github.com/google/rust-crate-audits): A collection of Google’s audits +* [`bytecodealliance/wasmtime`](https://github.com/bytecodealliance/wasmtime/blob/main/supply-chain/audits.toml) + +### [cargo-crev](https://github.com/crev-dev/cargo-crev) + +The tool is another tool for distributed code reviews. + +```sh +$ cargo crev verify --show-all + +status reviews issues owner downloads loc lpidx geiger flgs crate version latest_t +none 0 3 0 0 0 1 45104K 695354K 7558 115 err ____ memchr 2.7.6 ↓2.7.1 +``` + +It cryptographically signs/verifies the audit (if that matters to you) and is more decentralized in nature than `cargo-vet`, but may require more manual configurations and cannot help with version-diff trust. + +{{< hint info >}} +Use the [`cravette` tool](https://github.com/crev-dev/crevette) to convert audits from `crev` to `vet` format. +{{< /hint >}} + +### [cargo-deny](https://github.com/EmbarkStudios/cargo-deny) + +This plugin can be used for linting your dependencies. Use it if you want to automatically detect and warn about crates with these issues: + +* Have an incompatible license +* Have multiple versions in your dependency tree +* Are explicitly banned by you +* Have public security advisories + +### [cargo-unmaintained](https://github.com/trailofbits/cargo-unmaintained) + +This Trail of Bits’ tool can be used in addition to `cargo` `audit` (see below) to detect unmaintained dependencies in a heuristic way. + +### [cackle](https://github.com/cackle-rs/cackle) + +The tool lists APIs (filesystem, network, environment, sockets, etc.) used by your project’s dependencies. This allows you to detect suspicious transitive dependencies that access APIs you didn’t expect them to use. + + +## Looking for vulnerabilities + +The ultimate tool for detection of vulnerabilities is [`cargo audit`](https://crates.io/crates/cargo-audit). You should just use it. The tool compares dependencies against a database with known vulnerabilities: + +```sh +$ cargo audit + + Scanning Cargo.lock for vulnerabilities (32 crate dependencies) +Crate: h2 +Version: 0.3.20 +Title: Degradation of service in h2 servers with CONTINUATION Flood +Date: 2024-04-03 +ID: RUSTSEC-2024-0332 +URL: https://rustsec.org/advisories/RUSTSEC-2024-0332 +Solution: Upgrade to ^0.3.26 OR >=0.4.4 +Dependency tree: +h2 0.3.20 +└── project 0.1.0 +``` + +Even if a dependency doesn’t have vulnerabilities, it’s still worth knowing if it can be updated to a newer version. For that task, use the [`cargo outdated` tool](https://github.com/kbknapp/cargo-outdated). + +```sh +$ cargo outdated --workspace + +All dependencies are up to date, yay! +``` + +{{< hint info >}} +A "removed" label in the output means that the dependency would be removed from the dependency tree if its parent were updated. +{{< /hint >}} + +Another way to detect crates with newer versions available [is to use `cargo edit`](https://github.com/killercup/cargo-edit?tab=readme-ov-file#cargo-upgrade): + +```sh +cargo upgrade --incompatible --dry-run +``` + +## Divergent versions + +It may happen that your project depends on multiple different versions of the same dependency. While that’s not necessarily a security problem, it’s better to limit the number of divergent versions of a crate. + +To detect dependencies with multiple versions, use the [`cargo-deny`](https://github.com/EmbarkStudios/cargo-deny) tool. + +```sh +cargo deny check bans --exclude-dev +``` + +{{< hint info >}} +Look for `warning[duplicate]` outputs. +{{< /hint >}} + +Similarly, a dependency that is obtained from multiple sources (e.g., crates.io and github.com) may indicate some issues. To report such offending dependencies, use [`cargo-vendor`](https://doc.rust-lang.org/cargo/commands/cargo-vendor.html). + +```sh +cargo vendor --locked ./tmp_path +``` +Finally, to find dependencies specified in multiple `Cargo.toml` files, consider using [`cargo-autoinherit`](https://github.com/mainmatter/cargo-autoinherit). \ No newline at end of file diff --git a/content/docs/languages/rust/_index.md b/content/docs/languages/rust/_index.md new file mode 100644 index 0000000..24707b5 --- /dev/null +++ b/content/docs/languages/rust/_index.md @@ -0,0 +1,20 @@ +--- +title: "Rust" +slug: lang-rust +weight: 1 +bookCollapseSection: true +--- + +# Rust security + +Rust is a multi-paradigm, general-purpose, memory-safe programming language. + +{{< rawHtml >}} +
+{{< highlight rust >}} +fn main(){unsafe{(|f:&dyn Fn(u128)->Box+'static>|f(0x315214c3639feaf55946ee9e32u128).for_each(|c|print!("{c}")))(Box::leak(Box::new(|mut n|Box::new((0..0xD).map(move|_|{let c=char::from_u32_unchecked(((n%251)^0x1F)as _);n/=251;c}))as _)))}} +{{< /highlight >}} +
+{{< /rawHtml >}} + +{{< section >}} From 653be24b74555d5a728728fb392a0839e7e8b23d Mon Sep 17 00:00:00 2001 From: GrosQuildu Date: Fri, 8 May 2026 13:57:04 +0200 Subject: [PATCH 2/3] coverage section done --- .../rust/20-dynamic-analysis/grcov_llvm1.png | Bin 0 -> 34856 bytes .../rust/20-dynamic-analysis/grcov_llvm2.png | Bin 0 -> 66737 bytes .../20-dynamic-analysis/grcov_llvm_lcov1.png | Bin 0 -> 62284 bytes .../20-dynamic-analysis/grcov_llvm_lcov2.png | Bin 0 -> 86359 bytes .../index.md} | 121 +- .../rust/20-dynamic-analysis/llvm_cov1.png | Bin 0 -> 52047 bytes .../rust/20-dynamic-analysis/llvm_cov2.png | Bin 0 -> 63062 bytes .../20-dynamic-analysis/llvm_cov_pretty1.png | Bin 0 -> 50637 bytes .../20-dynamic-analysis/llvm_cov_pretty2.png | Bin 0 -> 73703 bytes .../rust/20-dynamic-analysis/tarpaulin1.png | Bin 0 -> 25581 bytes .../rust/20-dynamic-analysis/tarpaulin2.png | Bin 0 -> 60764 bytes materials/rust/coverage/Cargo.toml | 4 + materials/rust/coverage/Dockerfile | 20 + materials/rust/coverage/README.md | 19 + materials/rust/coverage/get_coverage.sh | 51 + materials/rust/coverage/src/main.rs | 107 + materials/rust/coverage/src/second.rs | 7 + .../languages/rust/coverage/grcov_lcov.info | 116 ++ .../rust/coverage/grcov_llvm/badges/flat.svg | 23 + .../grcov_llvm/badges/flat_square.svg | 13 + .../grcov_llvm/badges/for_the_badge.svg | 13 + .../coverage/grcov_llvm/badges/plastic.svg | 25 + .../coverage/grcov_llvm/badges/social.svg | 27 + .../rust/coverage/grcov_llvm/bulma.min.css | 1 + .../rust/coverage/grcov_llvm/coverage.json | 1 + .../rust/coverage/grcov_llvm/index.html | 92 + .../rust/coverage/grcov_llvm/src/index.html | 121 ++ .../rust/coverage/grcov_llvm/src/main.rs.html | 1764 +++++++++++++++++ .../coverage/grcov_llvm/src/second.rs.html | 164 ++ .../rust/coverage/grcov_llvm_lcov.info | 126 ++ .../rust/coverage/grcov_llvm_lcov/amber.png | Bin 0 -> 141 bytes .../rust/coverage/grcov_llvm_lcov/cmd_line | 1 + .../rust/coverage/grcov_llvm_lcov/emerald.png | Bin 0 -> 141 bytes .../rust/coverage/grcov_llvm_lcov/gcov.css | 1125 +++++++++++ .../rust/coverage/grcov_llvm_lcov/glass.png | Bin 0 -> 167 bytes .../rust/coverage/grcov_llvm_lcov/index.html | 114 ++ .../rust/coverage/grcov_llvm_lcov/ruby.png | Bin 0 -> 141 bytes .../rust/coverage/grcov_llvm_lcov/snow.png | Bin 0 -> 141 bytes .../src/index-detail-sort-f.html | 144 ++ .../src/index-detail-sort-l.html | 144 ++ .../grcov_llvm_lcov/src/index-detail.html | 144 ++ .../grcov_llvm_lcov/src/index-sort-f.html | 126 ++ .../grcov_llvm_lcov/src/index-sort-l.html | 126 ++ .../coverage/grcov_llvm_lcov/src/index.html | 126 ++ .../grcov_llvm_lcov/src/main.rs.func-c.html | 204 ++ .../grcov_llvm_lcov/src/main.rs.func.html | 204 ++ .../grcov_llvm_lcov/src/main.rs.gcov.html | 191 ++ .../grcov_llvm_lcov/src/second.rs.func-c.html | 92 + .../grcov_llvm_lcov/src/second.rs.func.html | 92 + .../grcov_llvm_lcov/src/second.rs.gcov.html | 91 + .../rust/coverage/grcov_llvm_lcov/updown.png | Bin 0 -> 117 bytes .../rust/coverage/llvm_cov/control.js | 99 + .../coverage/home/test/src/main.rs.html | 1 + .../coverage/home/test/src/second.rs.html | 1 + .../rust/coverage/llvm_cov/index.html | 1 + .../rust/coverage/llvm_cov/style.css | 194 ++ .../rust/coverage/llvm_cov_pretty/index.html | 1 + .../coverage/llvm_cov_pretty/src/main.rs.html | 1 + .../llvm_cov_pretty/src/second.rs.html | 1 + .../rust/coverage/llvm_cov_pretty/style.css | 1 + .../rust/coverage/llvm_cov_pretty/syntax.css | 1 + .../rust/coverage/tarpaulin-report.html | 794 ++++++++ 62 files changed, 6809 insertions(+), 25 deletions(-) create mode 100644 content/docs/languages/rust/20-dynamic-analysis/grcov_llvm1.png create mode 100644 content/docs/languages/rust/20-dynamic-analysis/grcov_llvm2.png create mode 100644 content/docs/languages/rust/20-dynamic-analysis/grcov_llvm_lcov1.png create mode 100644 content/docs/languages/rust/20-dynamic-analysis/grcov_llvm_lcov2.png rename content/docs/languages/rust/{20-dynamic-analysis.md => 20-dynamic-analysis/index.md} (84%) create mode 100644 content/docs/languages/rust/20-dynamic-analysis/llvm_cov1.png create mode 100644 content/docs/languages/rust/20-dynamic-analysis/llvm_cov2.png create mode 100644 content/docs/languages/rust/20-dynamic-analysis/llvm_cov_pretty1.png create mode 100644 content/docs/languages/rust/20-dynamic-analysis/llvm_cov_pretty2.png create mode 100644 content/docs/languages/rust/20-dynamic-analysis/tarpaulin1.png create mode 100644 content/docs/languages/rust/20-dynamic-analysis/tarpaulin2.png create mode 100644 materials/rust/coverage/Cargo.toml create mode 100644 materials/rust/coverage/Dockerfile create mode 100644 materials/rust/coverage/README.md create mode 100644 materials/rust/coverage/get_coverage.sh create mode 100644 materials/rust/coverage/src/main.rs create mode 100644 materials/rust/coverage/src/second.rs create mode 100644 static/languages/rust/coverage/grcov_lcov.info create mode 100644 static/languages/rust/coverage/grcov_llvm/badges/flat.svg create mode 100644 static/languages/rust/coverage/grcov_llvm/badges/flat_square.svg create mode 100644 static/languages/rust/coverage/grcov_llvm/badges/for_the_badge.svg create mode 100644 static/languages/rust/coverage/grcov_llvm/badges/plastic.svg create mode 100644 static/languages/rust/coverage/grcov_llvm/badges/social.svg create mode 100644 static/languages/rust/coverage/grcov_llvm/bulma.min.css create mode 100644 static/languages/rust/coverage/grcov_llvm/coverage.json create mode 100644 static/languages/rust/coverage/grcov_llvm/index.html create mode 100644 static/languages/rust/coverage/grcov_llvm/src/index.html create mode 100644 static/languages/rust/coverage/grcov_llvm/src/main.rs.html create mode 100644 static/languages/rust/coverage/grcov_llvm/src/second.rs.html create mode 100644 static/languages/rust/coverage/grcov_llvm_lcov.info create mode 100644 static/languages/rust/coverage/grcov_llvm_lcov/amber.png create mode 100644 static/languages/rust/coverage/grcov_llvm_lcov/cmd_line create mode 100644 static/languages/rust/coverage/grcov_llvm_lcov/emerald.png create mode 100644 static/languages/rust/coverage/grcov_llvm_lcov/gcov.css create mode 100644 static/languages/rust/coverage/grcov_llvm_lcov/glass.png create mode 100644 static/languages/rust/coverage/grcov_llvm_lcov/index.html create mode 100644 static/languages/rust/coverage/grcov_llvm_lcov/ruby.png create mode 100644 static/languages/rust/coverage/grcov_llvm_lcov/snow.png create mode 100644 static/languages/rust/coverage/grcov_llvm_lcov/src/index-detail-sort-f.html create mode 100644 static/languages/rust/coverage/grcov_llvm_lcov/src/index-detail-sort-l.html create mode 100644 static/languages/rust/coverage/grcov_llvm_lcov/src/index-detail.html create mode 100644 static/languages/rust/coverage/grcov_llvm_lcov/src/index-sort-f.html create mode 100644 static/languages/rust/coverage/grcov_llvm_lcov/src/index-sort-l.html create mode 100644 static/languages/rust/coverage/grcov_llvm_lcov/src/index.html create mode 100644 static/languages/rust/coverage/grcov_llvm_lcov/src/main.rs.func-c.html create mode 100644 static/languages/rust/coverage/grcov_llvm_lcov/src/main.rs.func.html create mode 100644 static/languages/rust/coverage/grcov_llvm_lcov/src/main.rs.gcov.html create mode 100644 static/languages/rust/coverage/grcov_llvm_lcov/src/second.rs.func-c.html create mode 100644 static/languages/rust/coverage/grcov_llvm_lcov/src/second.rs.func.html create mode 100644 static/languages/rust/coverage/grcov_llvm_lcov/src/second.rs.gcov.html create mode 100644 static/languages/rust/coverage/grcov_llvm_lcov/updown.png create mode 100644 static/languages/rust/coverage/llvm_cov/control.js create mode 100644 static/languages/rust/coverage/llvm_cov/coverage/home/test/src/main.rs.html create mode 100644 static/languages/rust/coverage/llvm_cov/coverage/home/test/src/second.rs.html create mode 100644 static/languages/rust/coverage/llvm_cov/index.html create mode 100644 static/languages/rust/coverage/llvm_cov/style.css create mode 100644 static/languages/rust/coverage/llvm_cov_pretty/index.html create mode 100644 static/languages/rust/coverage/llvm_cov_pretty/src/main.rs.html create mode 100644 static/languages/rust/coverage/llvm_cov_pretty/src/second.rs.html create mode 100644 static/languages/rust/coverage/llvm_cov_pretty/style.css create mode 100644 static/languages/rust/coverage/llvm_cov_pretty/syntax.css create mode 100644 static/languages/rust/coverage/tarpaulin-report.html diff --git a/content/docs/languages/rust/20-dynamic-analysis/grcov_llvm1.png b/content/docs/languages/rust/20-dynamic-analysis/grcov_llvm1.png new file mode 100644 index 0000000000000000000000000000000000000000..38de13e24109670014e1e41f793d9462f8f75814 GIT binary patch literal 34856 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 bo|Wh1HZsjWrO(1II_9!cO7Dv#j06536^^MW literal 0 HcmV?d00001 diff --git a/content/docs/languages/rust/20-dynamic-analysis/grcov_llvm2.png b/content/docs/languages/rust/20-dynamic-analysis/grcov_llvm2.png new file mode 100644 index 0000000000000000000000000000000000000000..f8d6006ce09f289472d5844f790c1766eeb60642 GIT binary patch literal 66737 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 IZWQu=0AEpU%>V!Z literal 0 HcmV?d00001 diff --git a/content/docs/languages/rust/20-dynamic-analysis/grcov_llvm_lcov1.png b/content/docs/languages/rust/20-dynamic-analysis/grcov_llvm_lcov1.png new file mode 100644 index 0000000000000000000000000000000000000000..16136521ceb52cf0f96d4f46d508d86b98116163 GIT binary patch literal 62284 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%0D*-2>w=%Iwup;W_aTqF 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 Mf~I_>tOe|U0AlCd9smFU literal 0 HcmV?d00001 diff --git a/content/docs/languages/rust/20-dynamic-analysis/grcov_llvm_lcov2.png b/content/docs/languages/rust/20-dynamic-analysis/grcov_llvm_lcov2.png new file mode 100644 index 0000000000000000000000000000000000000000..146c8e650b9bb71739ff9ca3cb469db760f4d140 GIT binary patch literal 86359 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 +The `gcov` engine is [no longer supported by Rust](https://github.com/rust-lang/rust/pull/131829). +The engine and gcov-style format is still often used for C/C++ codebases. +{{< /hint >}} -* [GCC `gcov`](https://gcc.gnu.org/onlinedocs/gcc/Gcov.html) - * Produces `gcno` raw data (during compilation) and `gcda` raw data (during execution) -* [LLVM SanitizerCoverage](https://clang.llvm.org/docs/SanitizerCoverage.html) - * Produces `profraw` raw data - * Can produce `gcno` and `gcda` raw data, but this is not supported in Rust wrappers -* ptrace-based - * Produces `profraw` raw data +{{< hint warning >}} +SanitizerCoverage is not meant for general coverage analysis, [but for fuzzing](https://trailofbits.github.io/testing-handbook-preview/pr-preview/pr-2/docs/fuzzing/rust/techniques/coverage-analysis/). +{{< /hint >}} -Three popular tools wrap the above engines for easier consumption in Rust projects: [`grcov`](https://github.com/mozilla/grcov), [`cargo-llvm-cov`](https://github.com/taiki-e/cargo-llvm-cov), and [`cargo-tarpaulin`](https://github.com/xd009642/tarpaulin). Instead of these, you can directly use [the tools described in the Rust fuzzing chapter](https://trailofbits.github.io/testing-handbook-preview/pr-preview/pr-2/docs/fuzzing/rust/techniques/coverage-analysis/). +Three popular tools wrap the above engines for easier consumption in Rust projects: [`grcov`](https://github.com/mozilla/grcov), [`llvm-cov`](https://github.com/taiki-e/cargo-llvm-cov), and [`tarpaulin`](https://github.com/xd009642/tarpaulin). -| Feature/tool | `grcov` | `cargo-llvm-cov` | `cargo-tarpaulin` | +| Feature/tool | `grcov` | `llvm-cov` | `tarpaulin` | | :---- | :---- | :---- | :---- | -| Backends | LLVM, `gcov` | LLVM | LLVM, ptrace | -| Coverage | Lines, functions, branches | Lines, functions, regions | Lines | +| Backends | LLVM | LLVM | LLVM, ptrace | +| Consumes | `profraw`/`profdata` or `gcno`/`gcda` | `profraw`/`profdata` | its own raw output | +| Coverage | Lines, functions, branches | Lines, functions, branches, regions, MC/DC | Lines | | Output format | LCOV, JSON, HTML, Cobertura, Coveralls+, Markdown, ADE | Text, LCOV, JSON, HTML, Cobertura, Codecov | Text, LCOV, JSON, HTML, XML | | To exclude files | `--ignore` | [`--ignore-filename-regex`](https://github.com/taiki-e/cargo-llvm-cov?tab=readme-ov-file#exclude-file-from-coverage) | `--exclude-files` | | To exclude functions | With in-code markers and regexes | [With attributes](https://github.com/taiki-e/cargo-llvm-cov?tab=readme-ov-file#exclude-function-from-coverage) | [With attributes](https://github.com/xd009642/tarpaulin?tab=readme-ov-file#ignoring-code-in-files) | | To exclude test coverage | No | [With external module](https://github.com/taiki-e/coverage-helper/tree/v0.2.0) | `--ignore-tests` | -| To enable coverage for C/C++ | Unknown | [`--include-ffi`](https://github.com/taiki-e/cargo-llvm-cov?tab=readme-ov-file#get-coverage-of-cc-code-linked-to-rust-librarybinary) | `--follow-exec` | -| Merges data from multiple runs? | No | [Yes](https://github.com/taiki-e/cargo-llvm-cov?tab=readme-ov-file#merge-coverages-generated-under-different-test-conditions) | [Yes](https://github.com/xd009642/tarpaulin?tab=readme-ov-file#command-line) (but only shows delta) | +| To enable coverage for C/C++ | Unknown | [`--include-ffi`](https://github.com/taiki-e/cargo-llvm-cov?tab=readme-ov-file#get-coverage-of-cc-code-linked-to-rust-librarybinary) | Unknown | +| Merges runs across different builds? | No | [Yes](https://github.com/taiki-e/cargo-llvm-cov?tab=readme-ov-file#merge-coverages-generated-under-different-test-conditions) | [Yes](https://github.com/xd009642/tarpaulin?tab=readme-ov-file#command-line) (but only shows delta) | While checking coverage statistics from a command line and using one of many coverage visualizers, an HTML report is often what you need. -| HTML output/tool | `grcov` | `cargo-llvm-cov` | `cargo-tarpaulin` | +| HTML output/tool | `grcov` | `llvm-cov` | `tarpaulin` | | :---- | :---- | :---- | :---- | -| Examples | [Open `grcov`](https://trailofbits.github.io/samples_rust_coverage/grcov/index.html?:) [Open `grcov` with `lcov`](https://trailofbits.github.io/samples_rust_coverage/grcov_lcov/index.html?:) | [Open `llvm-cov`](https://trailofbits.github.io/samples_rust_coverage/llvm_cov/index.html?:) [Open `llvm-cov-pretty`](https://trailofbits.github.io/samples_rust_coverage/llvm_cov_pretty/index.html?:) | [Open `tarpaulin`](https://trailofbits.github.io/samples_rust_coverage/tarpaulin-report.html?:) | +| Examples | [Open `grcov`](/languages/rust/coverage/grcov/?:) [Open `grcov` with `lcov`](/languages/rust/coverage/grcov_lcov/?:) | [Open `llvm-cov`](/languages/rust/coverage/llvm_cov/?:) [Open `llvm-cov-pretty`](/languages/rust/coverage/llvm_cov_pretty/?:) | [Open `tarpaulin`](/languages/rust/coverage/tarpaulin-report.html?:) | | Handles Rust’s constructions? | Yes | Yes | Yes | | Expands Rust’s generics? | No | `--show-instantiations` | No | -| Includes number of hits? | Yes | Yes | No | +| Includes number of hits? | Yes | Yes | Yes | | Supports multi-file output? | Yes | Yes | No | +{{< tabs "coverage html reports" >}} +{{< tab "grcov llvm" >}} +![grcov HTML report](grcov_llvm1.png) + +--- + +![grcov HTML report 2](grcov_llvm2.png) +{{< /tab>}} + +{{< tab "grcov llvm with lcov" >}} +![grcov + lcov HTML report](grcov_llvm_lcov1.png) + +--- + +![grcov + lcov HTML report 2](grcov_llvm_lcov2.png) +{{< /tab>}} + +{{< tab "llvm-cov" >}} +![llvm-cov HTML report](llvm_cov1.png) + +--- + +![llvm-cov HTML report 2](llvm_cov2.png) +{{< /tab>}} + +{{< tab "llvm-cov with llvm-cov-pretty" >}} +![llvm-cov-pretty HTML report](llvm_cov_pretty1.png) + +--- + +![llvm-cov-pretty HTML report 2](llvm_cov_pretty2.png) +{{< /tab>}} + +{{< tab "tarpaulin" >}} +![tarpaulin HTML report](tarpaulin1.png) + +--- + +![tarpaulin HTML report 2](tarpaulin2.png) +{{< /tab>}} + +{{< /tabs >}} + These are our general recommendations for generating test coverage: -* Use `cargo-llvm-cov` (with [`llvm-cov-pretty`](https://github.com/dnaka91/llvm-cov-pretty)) for rapid testing. It is the easiest to run, it resolves generics, and it produces pretty HTML output. -* Use either `cargo-llvm-cov` or `grcov` for complex projects. Both are decent and can produce readable outputs. -* Use `cargo-tarpaulin` when other tools work incorrectly. [The developers claim](https://github.com/xd009642/tarpaulin?tab=readme-ov-file#nuances-with-llvm-coverage) that this can happen in the event of the following: +* Use `llvm-cov` (with [`llvm-cov-pretty`](https://github.com/dnaka91/llvm-cov-pretty)) for rapid testing. It is the easiest to run, it resolves generics, and it produces pretty HTML output. +* Use either `llvm-cov` or `grcov` for complex projects. Both are decent and can produce readable outputs. +* Use `tarpaulin` when other tools work incorrectly. [The developers claim](https://github.com/xd009642/tarpaulin?tab=readme-ov-file#nuances-with-llvm-coverage) that this can happen in the event of the following: * The code panics unexpectedly. * There are race conditions. * The code forks. @@ -645,8 +716,8 @@ These are our general recommendations for generating test coverage: For profiling, consider using [`measureme`](https://github.com/rust-lang/measureme), possibly with [Miri and Chrome DevTools](https://medium.com/source-and-buggy/data-driven-performance-optimization-with-rust-and-miri-70cb6dde0d35). {{< hint info >}} -Go to the [Testing Handbook repository’s `samples/rust_coverage`](https://github.com/trailofbits/testing-handbook/tree/main/samples/rust_coverage/) folder. -There you will find Dockerfile-generating HTML reports using the described tools. +Go to the [Testing Handbook repository’s `materials/rust/coverage`](https://github.com/trailofbits/testing-handbook/tree/main/materials/rust/coverage) folder. +There you will find a Dockerfile that generated HTML reports shown above. {{< /hint >}} diff --git a/content/docs/languages/rust/20-dynamic-analysis/llvm_cov1.png b/content/docs/languages/rust/20-dynamic-analysis/llvm_cov1.png new file mode 100644 index 0000000000000000000000000000000000000000..4d64de69d665925cc5c2392507cee8bd1b23af3a GIT binary patch literal 52047 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

6~B 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 literal 0 HcmV?d00001 diff --git a/content/docs/languages/rust/20-dynamic-analysis/llvm_cov_pretty2.png b/content/docs/languages/rust/20-dynamic-analysis/llvm_cov_pretty2.png new file mode 100644 index 0000000000000000000000000000000000000000..d3b3cee712edae7b1e1e7389ff146a25c8605338 GIT binary patch literal 73703 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 MYK%>dX> zXgmpjD(3|x;RocCke^iNUZPLU>t@;#K1|J7R%b~h`2$EYB=`}e>n#h^_PlHAiWTEa z;R+}OjDD?u<)yY1Z$o!LJHXaQ zvtVxwOyTq|=~SnL_J78UpV&{DS;nL#vNC=rN#I0bT}Y=lHv{zas3+IDcQBsQexYBE zHOIP;o$QCmVeJ6U-nf1NA;A$YMe=VTu()zt@}JjwBY~=_UvjvBfy6p@mriJdFISZ}=VIxyj&aJvqJAd`sQ z?mpV=uZC*+jeqYGDI>Y?ProILG5o3v;;JAxNkUM`2c;jla6X>k9`=3?e{XY(ofF&`4Db(17tgMdLML37I3k8w|5&pe8ziH<0 z`<+1ve>GEi$!60=)c9NW|Iymt$2N|k#q|0XLD9!qe~;{cx7a`m{f_?s|2IvCZVAz) zQQq=-c;f-(8`*zfnE=Iv5DY89&r>Su$3AawWtYxjOad)#Gm!4j(f#(H>`Y)-5#Rb& zr}0-m=s>l#&!wEld&d10)BSU{Zv^pSB7g&?8(yV^Jz~&`j|xt+A@TqB^#UqUF`1D0 zQ9{`7hChvk7aXVkdxBqyCPJav+bXw8Y(+tnw?tf?Y@znD4OBJAEaTk5=9OeR+5bJVzZRU|(San~ z?|(#ExX(kJd!c<60Sx#obe!{%9b5?f->1=7i)`bTmC$c9&mt2``L}BP?^^FeI!S}R zPn)ZZpzu{5U|f>8(*9quYWhNJ`llvHp3(gz{M+;WSD$}tO$2guw*;}6q3{0{^alKI zHN!sjJ@)&*2PdH4Qv#WNg~x#NEh$};3liI-5d2LF%h6QJ09d@n6$a?DgecXNLI=7wqJ$DkYi(d+HQ zsyRYB`=UB|YVZY=r7@~u8R=iTG=C8{dOmpC*xGj8w}yv#kR)l}R^YZFpT}rL$J=%r z+B|b1b*E3lRX+ZbiMy(AuDod<`^X9vV%ug*^lYNRV)^S67D|)`eFqd%(713!IgaTf zWk0to(VLuW5x`_XHM!Sk!VdE=5h7VJwJyJ3(W@3Y4GIg z)7XBsipZr0KHbf@9@;M+X|>xF(>~9yNc=vYLf5fVhQ~|K(aI{%k5AISPWY~nN{!h4 zT<2zI_1Arh(rBD>n6|euiCA}GEf(EI15QJGPL|zdaZPo*7pyl94+%>O3+M%>4x;e% zh!00_yhufEaKi8#=q+PK<4cjOE|0@*sgZ~jb>nlwGTkx<5p3r*>l$tWTvO$v=Og5{;Aw?)?c*q0v>?`wqP_bB<^dKHlNNbVav^fh z$p2;&CY})K+JN(mu&+t);XXxhgI01RB>*ANNPQU%+7YK(Xzwl(#)s)GnDmTd=C_N1 z)B|g&5fo+iyb)4nOU^%s)+!U z?5Qr=3SutHBs9+WLdh(j%Dc3TT#MM)8>eS7j{jr!by7H zSCd+#0*7T0rvp6PKD5a8y`)M5Q-3YiG-XTb5u>l>wQP`K7J$vKO&*yysSBSY{Ze%>?@FlRmF_~!%pP-OBa~zG})7yd~DK0Zpkp*Z}OZnRR0t-a|Nq2F(GGZ z2C6|9vkJQ5d@)f~KAN-rKoic3U#)UFAz3AHRYmP9$PHpr&QV3e@5_pBRY9A@c^$dU zX07T~qWLTXf~GcO#ib19z1&JF${TBJRw}WUyejj`ok5u7=q11!i+&X~ElLRg%1-E< zFO9wrwQdK7~PtcE7EP zLYhLp6Om^^X;lDmPlM+B>K2ClWt)}D2kEWU*S7o4fdx^pDJZ@UQ>hxKDIPMEDEcQZ z=4*i=7Bs7FU$>mygTAP33mNsilJHxl=BOlulz=wzma~IqBq8j~r%RsgFMz!DNGptP z*tD~{gvzOz$C4{^q-*!D^Mw0p4DXhso^naHdqg{kj=cuh()ifchz$xe$U_e@GG+~J z-(s@t0BB9-ZVAvA=V>{Rh_dT@nUlv4YLs&w+#11ykUzXQo6eEM%$@uLVy~5T2zu+l z`81NM#;lV&aSL z-I;H0=o9twDh zgZj@=`%b#SH;fKbR{|1c{K(cNr}R*4p)l-^#tio{-#7P8f<~FYj1TeALxk|2KcD|p zmW5&Zm`R`#6L+qQ`m%8Dat-3k34}<6O`!EAzYx~Dtkwx}W=X)CHU{v!8PIusetSWEhLM1zJxdk?5#w$za8RZz? z%ntzox@$4!bxWH;lORs*#%`?7iZtQdx_+dJBUBvbLVq%M6gv^a4O{^_4t^ z);$wKU}bh|W@W?GDRnClFDRChV0y5|679Cbag<6y<0x8Xkm98G3-qU;tFT_6Si z`h|1qDRo8DrTR?oL)Iz9<+K_W8Y(q;b2lkDBW$w~Z7Sz;0h=0p{lWy$)%C`n%VrQ3 zl`c@$Mu4F&9Lp;&Kh?j`*0jTEx#1=nx@aVeczs`mx3{5mp&v6h(@`88QmbAD`KXs4 zorO4^e?IJ=DDq=~JFUC4$%`>-x4)!zcIFEMfxIC;-#MAI6b^)@V@BaAOj2n%9XjGU z%I0xCu;@}2dfoKw<}mvkF|(!zl1%2qJ4Ny`k)nlrRv7A=6*Q-4+A3YDZuJBqRHd7P z>T}D4&F3=$odm)qF#~+H>D;+`+|tnjI4gq*Kjtqqz+Z>dy#qna)PBf>E>)Geg}W{k zMsPoUQUa*vJQgIsq@EH*i?AF7VY=}JvPpojKn{)OG*4QB!CD5Hi`Vj#F5M%&FWk=U zc5Uo?-mMR>Yl2yEiQNPvXAm)bKK|rz)Wgm+mNWC9!46+OSj&Y55fj+JiQaKdfcPLM zaj4_b!Ze*;z_axV^9Sj~sYp8-no+D18;#aOUgsGwyI=S|IXogn4HRkpSHyFRo71*E z@yne!1;N>3IhN{m<^faamLlQ72#<}ypmXC#0@0_iYB@{6eVGf zi=#po(-+o$q=d!99q`E@tg_qDMSrznJ`Nh@Gl|MZ9uYZogotv2p78kSDAwB!3WJ~D zQw-X~>|&KuLSHZP#ih?>{BcdloZ;l)g==h5zUWq=`g z#C)dvU7FpZgoVUSZ>}-2Aes&)K;(a`gtjrQaF5R9)EAI zd*_(m$jPV4X4CWD?xIQJdMv-2E#D3!D5-MfA`4*i0gH~J%BUC&h*Zw zpV2+e3rl{Vm*_J8DqV>&M8ju2(voGjVPLQu=EHjj{OcX%i>|8OERs{Eh$4;}?zi~H zf@t9{?HRa@|5067g{-Zj7D~_NMZ{~NaMOwFR(S9erxHn}t>Bx%d3u(fH@+V>@ui&* zwLwgkRQy|>$wDAouiixQ98RYgct%rFDzUL?$pJPL0NU(Z1+SBK*LpUqA_gj>A$E`FpQu`|j)viG!gT(HMbLTmj=QxTsx$hUDbvB4r^)d`EGCS->8iV4rtx;f(OUso9>$t2F5c@H8gylVPze)U9Ur!{GRCS0|E>WDn@= z+v(&4h0xvP^DbviFo-t#m=D2i!c%eca)R-l0&o$sczW2QW}jZADna6H{Yc9tj}sw< zb{p|(ah`q+omvF{xllW|Us99SQu}ElPY!3nKJMc3VKbI|QHCGC>{YoA6*d{|ig^1~ z24LO)COSX3GV`tYR*Tu%R4dNz;{kMSLYEphk)=!-?u=2eNN7IYWoaUh$pD1!_*QEB zy>V2F>1|c~xikVSAeM4pjYKE)Z>&HF$?(IlPwwQa8=`=!8d@Eqa1DAZk^%8=A3kA` zpqNMLY6rS;#YbFVAcB~q6iO<8JMF_&J-cC1Nz148^#Tgv2A6_AY&87q%)8J8MBWna zd+TFkxN2m)%#V-cvv5i>k})hP!D4PHRd*)nBhhDGzTNGtLI` z^<=Xi9zp43E6xh;$`~TPUo!Kg6w?9dv)I5sc^tpfS!{|M7#uAnwJ8IqzXAm#Jwa)z zv1xx{>bNc|$}xukJIcc2w^lWY1HEr5)MO`k*_IE_l+neSY#tSr`WA<$^N3O{?Kexo z8`kQ^{sY2F;E^y)gQF2Ygj7l9Gp?snF8RNq*p(y#*GKW&gYJ)UQt;22MN%4_SV)Js z-|tctRgw?wj36py`#s_mN+FI(`mYZsu>wLFZW8chV%eBR4ei!*o`z`+ln8Jhy1wWtgf-MNdQD`&_z?HZ|TP zuiWqWZf1GYc=W}HOEdvnV@&C-17nwQkN<|VXV8GB_L_EA zo`h45haXRl#bSE>Lhg@&q#TYd7Pl`)=}P}sMAzjX3@4FE9ddhFe$q?D#Ir$K04%Vi3OhWhW-Na?CvjtU-;n! z@u*94Si(mcS1nO+>5nae87;KlLylR+ZM-5}1HrLXY*p{qyG^gmEv_9(yVUQ})XQj< z>k`0d5%uwpKI%Jq$4B-4G-zAXDV_|(1tRrBprt1tx$Nb|a)%TRhWcaLD;8yk7~lm) zu(M+yER-w(cm=YWVfb1%WL{e}q1EV8swkx88n#W#v+g3))+!#k@2i7=6E>i5(xS&l z3TPFcjB%!B`}53{YwP0{w{4NlA}f3n%6OzraiswcHk!=jMu`XUzP@qviLVllwFjA1 z@B%!mPI=|_joya46H(XZ)-qinQKxcZNsvP$LccdZw~#Nju9RRX>F@sF?US*~L!-D# zo!!Hcz9YKnUK?_ApD4N{-7GU&#CbMRC<&NOh`>sEiFJWcPCvZ7j0k0)&j`o9VkPG( z4h;+O1ys3rXxoBs(4sJPtlTS?_hBb+Q8s-bD4uavM=ry4w3xHknOYUcTT#zsI%u5Y z)S(<+iM8!eB5OMNS^Ja}DPJb!-?2t4c#^0mkH!_qrep8b#Y*OB4h3d~DdzPLX{2h^ z#ql96w<|2jkbnDRLqAI#c)lgQZ{K0xZxu%q^ar(DGZ{bN#WolX+=CX3@g5@|6uH(o zeVIf(UQX)YgEIyi;hfnpc6sYEL2lwl6ZT|OPDSfpFfvg(4Hh7HY4u!E>o%?@Oo?Zs zcoq&vV^(qsF&Pj9<1@(~`oT0Gw-t-j0nB}E)~hD;S*^tAH@Lzt)DT#~W@bimSUeNa zV9uqIV!UrM1~q2V1HOzeI`zP^_DZYF)2yBXi{J@7MappVW65J72f;vAj5-F2!1QKC z2ni|*^D(sKrT@lR#G5yuuq5^3oNa0v#qIAqF{~=CAt46+K$%^W?zSLiPvyb2(u%e} zFZ3lVq5vh_ZK{jvrR2REs9gMf8x;u-Y$HNsju9yZdxwI9ACw9{A#XnKLET^U(CE0V zQkp0HLFsbC!jgc{GcIk>KqKPAhaorM1(V5UXM)i-m(?QA_QUf!B^AqpJPO73ZSIb66k_aq+0LzgCI}{KIY4(XukZ6UsRy<>`2O(Y86VOwm(;XZtAZs z-1G?oCb=iNewhDZb9lYBgerwd-eVXreHqTTbzZ?}k1aN&#HNriJg3*7sjf__XEC(u zM2RmfR^tsBjMRR}aBYO-w!4C|RzHi70*NG1{JI zPWqwTue-b1rm_@D!Lnt6+fs~Rtcn7C1Y0ySv9+P%^s(N>p_d@PF-)|^x&4L(0_j0h*D)OHg3brvs4a|%K}gtuu{*%(l6Bk zM9*;MofDYAD0@Y`aFno)vve2;=tj2vCnI{w41w`H*3^qxK>`OB3ekduEM9gN^MJeB zTf*%MO+V0S?6v4JtqDRQbQ)gD@3Hp9*vvrcf%lw-^h>j0>VL3(Vly~cUc+twy#4M#5!hveX)L4A+W(@tsgrF|L#=@ zf^~5viT)laXYl4U=4{lb&6ldW4Eys|7~4{dM)Fg=X!mY}zWg%Eou*@gR)B=Ftyk+q zXuJB=ZEF7}_ShWr!~s*&`L1e3*?juJiqqH|3Gb4r3Z6`_SDk}u@xVsshVq?QVgYd{ z_dLp_(dYEwOFbH^?N9-Q3Qbn!3fSv1h90kVqyRHg$KsQ^K5lDdes^~mSIRRstKbAz zt`-b?=tsI#m>NODP`#FGx$F$%jlT->ZRW)xa+V)FA$s&Z{6eJVHeXCV;OpXS2z;Pk z#|eEHBqsSNjHb%{&RssoY@FCXG@3-@pae}zkG)Blf8Iw?rgMC6Iyx9l9i|pCXIK+t z#%cMRf$cIVJ{H-y+%;fqkHe0+Y*~wbRvO#NFh3E%F%qO9`H>s?3?SN^YGGwHu|VTneVUoMdbxf%<`iJS11 zlo|Z4XpyW%TvuIxe`^y(JlZjBr%k}U37Ni3z3*zfl(hSg=3*hme8AgXssBF3hYkM+ zZpA{jScIQQA^ZO!%^!3)P(m>6x9)@2Bn=-{vU7>rgCxcOV#ww~A3B3Sd-8+6|KrmC zzEb=nz>o+Y|3jScAO44fNc%gvXl`>B5nY*8E@s;7D*iVf6HHDbMRGA9WUyJ+ii|M> zr%7GFqrMW>HHnRwvw*dH>fGg$fO+t@Zu3vMnkhFAG8Q|S`UbCB&_FjO!#^yp|M@0D z_W_TK&c^T#o2NM){5!~@>MhLh=Qq9yrog%gGjakl%{ z6Y~9Xu6tY}Omv6XuwB&ge!F*+hySc#10~n`%}c#=sVK{?;tl#X6`Js#fvS=_a&()} zQby4y*NInN0sJXp*L<>|Hk;zn_w(B!dlg}ucUx>)Lc}hr6vbnMp3B+X7vJBXxjNpN zhDU}Y=KO_4CdsRL{Ck8Ib=4wspAkrCciNac*%exD&qJdw9jU14KvS>5it5T%tX>L? zj4mfLs9X3X*;5t{$Ad7xzXsczZr?oE>C#>C)ZBlP4wn(tGZ2OF2cd3?c{%0bulct{ z7)Krh`^ZQ-z$SUT>@`Z6d@#BD@9;3M1+ZJSHNFFmUdQjq!%tHL#O>nxGZsZZ>okVO z(HS|V?Jb2>z@;Fs)f_(}vKC618V~8X%a4Dp8^THe1rT>v_V?ND-Ah$d9g=aw05~IF zO^okpaOAg-vyw#lad1D*^JWf`x{;@>*gf$_bcYK&dPoRvkd`jGax@#?=k|+><@JD& z3&mBBlexon_RkKVudd)2Jq-H>+F3uFtf4UTKllP4B1FWul8dG=r}~ZVz}-{bexE_! zl$^9>?(UBwCtL6z+DPP#C&RlhS;o)z@4d0*GN;AI38p>)Jd==ogVfIj=d&rLnL!=u z!LPXdij)Cg6Ol9Kr_ZPBsY>|+5k6nX>b4|hWHcP?(SLUi`T>)Typ{5EjJK(& zC8t6?8hEbTXY!srcOo~;{&ULhQ1FJ3153-zO^J?^70$8{_lfE5Y6u!0G1te`N(#vh z-Bwjyb@SvNQ$!=zI;>vTV`hI$ctG9}h+Z!O60a0`y?CXRQIz!$r=PVp(7z$%7qw}U zK*`$d^U=TDQ{FW*%~e?#KjbUw6jP_$qy`NSH`r>&%;NcB*CG?PcmAfa;rd4tb_ z&ZZXrnZ)-CLRVT~!7g3{D9j};jRP+0sk||4mY$M1Z9cD!sHU0={ z_CKhgU+E%b*Y(>tyAf_8I`B^V(Y$nBOWBZ{!$$apv9(YP6xKh6Pwru!Zd)k_H+k!a@@WYNi~Y8P=0!sP)@>5@i?9A;TAYcK&H2)1pA5%+xE$WM`5M)@ zs$=LxbTb(EaMGWq`2Qf=*@vLWki1}kEzP@Wb8}xK@GnU5uwwCjFk zo+yigDXZ;1>kcf))3C_BtHg4KL#{D^;iautk_|_qbTK$|ek!i=Z=5NwSh|WtK z8UeenQ00A3zl9Ex^%J}R+#R!14e|yy>FqF^b+ZN$3Z%7FyrOdlR^#Axg)oZ;KA{Lu6Q<%9jb!R!{uPoNtad_1{}oMOxVrL#YU5#$1?i?M()W`;<-LQc!Cxd?GHJJs!bLv}7PosrzHY(iiW|;cTQrRj?lL z93J|Zz|D%ZRQ<*G~#FjL9`Xu0&Zr z^W&~7Y|N%NHiMG~wD#0lkGMLjvJu5jDQ*8?BEzb!OpUIkw#@1LGq}@k^M*c~rSf2U z3x&3i8B#MWaDI?7Leag}BO=AZ?HUq}>@k2yz%12xOTzg|W#k!!0W!+ys6NW1_trVa zM6#i_))Oy<>F+vJi2d`91Gs>{!GZPBWtTS*h+M6aQ(gU9{hKqk-;Q{dJ-cYyl!W@; zV>cO$R0j3)C9KY?V-s8<*~xvwCow^z-s1VyO601`@Bptli zf3TZY)7UO-v=fqFCRQpa{&;dJ0|rF98(XGZLXDg!#D}-!Lh`|@QEL)gv+Iel)~(TP z?nM9U1qTMmvXxCPDFL4V3zp)_?8MnAti}u72>l!Wj~yD(vN)?5dBNo~kuyV3rQ4PG5vl#7r`l6a@T9na|V%{wgKJ3!8l*+`3s;%i)D%@gB>%%CU*X zkQV4-S2N|RIx;@hyvBINIxy}^;F&Uh@Q!aN)3sRT?cM!bQ1ktf>;>q08d`EiLL5;g zQY+ipx zdl@6d*faLK=r0NW7C^S-O=O2=LSnu{Ha+}gN!p6PXzJMhu_D{G+q+sbMp7y9AaH2$ zp4T(7qD>dIdw_GgPpQw0kG==>o05o1@nXHfm(|jBjmdc`QP|={z?&(@=*RYMwz06{ zmM~orn*7PBRursmw%VCI)GwOa11SGyDdlToCk1AuCAHe#$BNb04> zudF~0mla>p?ip8A+HHDmR*M(1!SQM}Ew3tDcd^yH{qz+gE3YTgN4^Qv6-yR^a^|ea zli>H3S42p#B7t}IIsnljej@K1sd=Z4zNf3Zy19h`~HjjpPeyIymh`^RfzumZ6T8F^#F$VVIHdK@1UPEjaU_hZe@f2Ni*;6IruuaEFh zfws)?+R>o=a|WIv>7cnO*K3uh;d{S~_LnL73BguQ71d_Um(Z)uX`>bH{1Z{ni3`lb zZ%R%wjz$n{ys0F@OO)g}@ciZB))ziz# zq`sVXDb5Z$Af&4@f!I{kDxVMapeS{RyIBrQGD7jtH2Oo#wfApuRyAIrR}>)mniaKef;###1l z^_nrn@-%JfjUth(Z2?s{?54adtm9MH%7KgHmlv1Uq<(QmHk$RBb)r)SGmY!J6Ci#L z0l(`2hbN8uotnqmBdZRyu*aQJTQUr7T<;Zq3*kzANx4$i; z??rySc#G$H(om=t{Ob!&vlzEhuV+BynK4V*z226V-K3`~T8zroR0!dnkBSJ}h=A@K ziB-C(R|1@4+;JkWW|ME|u73Ik#hu#Y&l&QL;`sfBg$}98ERdZ|maYiWE1F0k)pUD# z-tY6)B?Z_Eo4$?;N1Hu*4Qe<{y&X))Tnw& z+?}@+DoAbH`zEncc^0YXxI{AMoeV-9$zZ^{J=K`snl}ZYor7d8J_~{^taa!r(6Q0W zkMWR{BVU`2l^a?VrR6Fq1(d4{SH&12swHCPmgE3b4adU7Pl(6)2079L6FWYnR9)0= zp`SkAl-iq|?cqXTjJoG*;!np9STU4g(Q0zTxA5rGP!u?uyJ zzuUFTZ{cd`pFjnLg}ad*53_!hZrD#{8?wXHnCy7-3H{V~n`#BZh8;6VyX+{Pg%iX= z?))&cZgFPkZYU9mf4vr2xg5^#%mUH-n%4#wtKsCsY*BljVONxj>n|V9_>(0 zHGfMjj$K+EuIx~$vEi>F9ITn>fJm3G4xN9%R>__@0ygxRQOKd8z2*-Xg1!e(pFNq< zGW$NMDv4;Q*p@XL4Jp&Ly+UPsaJQKYj2CjI6j2BI0$$LCNkEgf@@yN@Qx7La(m_(6l6A?RA*58Qp*qu<9CGLDIVfNE7z@+4WK||*|Ia+urx0Y0P2{@gj=15R~d}?Z+arSq|8D^clW1M%-Ds0E#_Cjf9Aas z*dA$Pd99vk5kq+t5~-c-b8Nx*`W(1V={8qJLPVvzlq>^G8N8NkT2nrkq*?+6(rYGpDm6T#wHzXlCTbuz?)&7JPGkX}noZsBm+9lBm@vmJ%GfIc1+%xp3k#IBrja zbAVxU;m!frP?av<#9aETQW4?C;L_7gV>NNX=3NMfypGQ0gtX7uRK2{X=N4v9fo8do%~ju;@GHcD&J#f?aBfJKZfrp4E+qt_-yHG8t0Ce6K7~WcE=dKXf}8O-V)X;)J_& z9*Q%)&uGYMIW$KuE9-xHl;Lata6Jvze#X#4Q_iBb9K+{sL6P7!K2Wpn_4dGf!RCKfiZ}ZCHApHM4u;I;D*tVk8YH8} zuj370x}dYf?h*roxF-w~WKe;>-LC5XGqnfv`f+PiAoSG(N|aID@s?RrU^p99XAt3-6gOGll5ckJA;+c zbwO$71M*A6qRi6mRMR5e3D#L92u)P}c1{f*g7~>uR-Y>wIH{FKSx8hN17Vrq$+3oJ zX}vnQDo#Tfc{4Y~Z~bKyeS#eTFd6y4v8zJ)17 zD|YWMJRnXgbs)=rI~oIdi_yMGwRCBAXgK21@I)#*dLKFYVw1-JIjd~L^BviNB1KPF zPU&J@Y$ff{x6X=jgS&x+a-lCd0>2x*Anr2T=bLKA(?8XuN@8(aT~mbcGKZ?l?KkTp zBrb)&Xt`tBxSsA>=qEwK_sO>$41V1eaa8BZzKSLfo~9!a3e1hH4(dN1(f%+VHp+|@xovZn-m>OwF=klt-{mcV}r}D7mCBo?%X#T zzQu7W;IIX)Pdzf|(ZRavxf+y~p^#HSmoe>&Mq#v!jP?k=(U?SdEldl%m&Lx**HWuTGj0nyI95%|RFU#3^(D^C{7m~SPVpKr-O zM|`KSxvg{DAy!JfH#97Cp9k5H2*g*Q$%Xek*08?)V5v9SwlI7N4P!rDnrx=D|AbAG z<69kM^hUp+gjS*YM}bG?$nbEfGP$VHZH2*6^{qOW(Z1*q8lS8a1*4?R$49btI+P>( zlo%MX^9@Hmld;nZVRcBs^z5EiRJE!U+$II&FjJ|D%Q2Eo<%!QU4Y0&{&T}C>3&rIt zq%M?Ccd@)U+}id8H$csh#Y1rDRB00O%+rR$aHv)Tfb79#YBsh;XHxP@TB6@{=sOBo zq^wV*wPHWY8DO!Yo@Rh+ws11>T?p)Ls^A8XCE5@zZWu*gkr5%tr+}o%Z8pfqP{N8{c(QdCI(pZ`VRR%mZn{g$D)l5C7I{0#Bkq~sgsfp zU2e$CtJhL!$9=f3Hg%xu-Z(vJqZKq%9DDO1OEe(voR<*b!6k{k9Vlbl{iH>L&kVyQ=Z1V6=70oD5TltG(DXn{n z$er-}BC(#oeR`!>qlp^{car=|G$!#HcC6hm4l&)7npBoDRwZQ_Rh~{%@@$H`N zze;$npmcKkg-|(VypKz+nt-5gca!*r9iC3qY*p?jRB&XMsvyKr@v5InLSFC`=P`Y( zx>S7s%a!dRmf(Hfjd_APcAXW;%y8$JKzZLPZY70be&Iva-x|Zm2?*`^OdWZ{Fpt{7 ztd1u=2gx5!I-;{i&a~@^Z?jXVhpg_um^ziyHY3R`Ny$N-2!UjxRY|**I*UT_gCgS2evje5B#pc9jC(Cj}?WJS5s4ZI(U6yK4b1z%W1vHT^5=`T+6k!e5lsau)}hJqbkjeumZ)sA@3n9Qq7DZ zMY`UO4Tr3-pQiAAa^55q8l%`cajAHp$u9XrK{pChr+|3?6&UEWTLOOo8(k1J?Dj=M zh%Fj8NZfrrK|NtODam0`H&0S2ZgTrP_lVLxY1RW11#otZj{uKaAYF9Jbia6@vH3?Oj+O z`o)?bu*15yzc5)mA-cTfRpQ8q;q}y4n$>oRvl3KWWyaX-4jJF9fyX@)KNMpGQDC&a zEmB}`ZZfRq0GSCFm3y};K5Ik1B`L<6l&<#xPaVt&`|PBKA(zR1;S`>qcxuG*S`+p7 zbHbL{?$bbaO5{}3ajM7jLlIK(pg;^|9p?3h5V z_?_M|U`s#$wA^U42~y!--@kR$AHzpo_Pkvv&M|$;c5frwdJAuu^K_YIsgIZFmkDZZ z&V7(4i*SyZPUrn_Q27?~DOZ)l+h-3=4B}{mH%wD89tFlQ(ly8VyKnxsR<3z86MO z=x4o{x|dqR;DHlg*?WvUg|rF3GIG93<_=LgN8~y5i8Z4UWupT@(X7++gD>UgJJ~f9(!A zyLpcJJM_%Ah>L%M2$hIe@qfEubwD3fbPuJuSsBnQYL|x>^grCO$e%TKQh8(lw-cHS zLLT_bGK7rsIOR0V2l@g3w!YGz?tgi99h@NZ%=(7xV@@;w$CX7lqyMva7rE(0{V!|m z=I%dO`~Uq}88OrLr8yG21t9m7;JQ+*vee!x;apPqv}q{iV*A};X(g-s!2i5)UlPnX z_Ji4&!ssx-&(6sqiXT^x*bwWr5fi`TW9b{E!E$;y^W9Q1(sHdryiY*h+DaZcSqA0Qc_o;{yxXl-WS2g~8ZJSJfJ zqodPGE4`5%*Wvr`mP5VCwU_Mbnw4b4F7hQ8H!ou|+CMis4t(1b@;y_P7@XVtTZF$d zHFSenan-YVc}kT!%3*L26(YQ^xDS8+K>NcV`s0VRRfORC%K5ioT+YHgbeW@8z8>D@ zzJ(rwH`*}e`0^{up<1QXtY8EY3E`8Sa5;r_^Llt|Z1%l9i0~p}Qe-Lr8&1{%04>c7 zIRwW)^^~;DwhN>L1qV(C%h5~WdhQg@{pSvQVY$_KHqQE2Xji*oU zr9Lc7rtf8)p~DWNo2ktdA6QUu*TRI-j~0mLQ+_0FD9x=M#g80YXPNTaDy!i4PV4?P zaI^JM#m2J#oMj-{_wxnzj7C+}0;vyu_`g=Z{p8J( z1&QA0F)7e}O*?-t=M1AL(aA9*wU@hqLtC!($-V{ItCrKtY&Xsp@ zw+f&*B=d}Ypx`}g(%dlW;+S0=WW6HCIqkPb)v{swglEy-w&FyUj0U~}886mr%sZz(S&Wb9DJMYyFmv@Ti=cR(MZO2-r7Hl45)0g z&Lpp}E-iI@yT?CdvOxokD65^Os4w?y5D{JHJqyQ%!>u{LF}OMn^SNT3Ww(QWj*S_d zNsPyS!9cc*G~ek8en$lj|9vLttDNAqtIpU*30IE$?T9pyg{Gb+BD2pK_-h7^c0VJU zR1QvMcnf`B6Z7`A2sr?liULQYRgUXN4x^*M@%VwUcq^+6Phn zqt8;UuW#{j+L`PA*;UEp%5Ou2DAl|<){@{|a$LVbD(?WF2Po&~EBJ?VKm^Sy&~H`2 zE}W9WQx|^RZY|=B@lDs^oXd(gNZ^i5dHy{@KE5#g&5UrB_KFtn%GOGEXFpQ@%RAIY z%$u-Eb}574+fqH3+o`T6#qBMx&SdsLxj`)@Viwk+HEm3M8`^<9TS^<-0-!QfM)c7? z;x@-ZF*vmM+7)lfgkG4=Fo8A;YaAa)1MmXrYljv-61ZW$myhpbgzfSX86T!?3N*U*xa@Ld;x#s@1d8F>d?~qdqZl(%qA!O2u3?Icam! z9E@Af*07m>(6A{!1o_H4xwT2)!q&UkaEIUDvdtn%=WA%;=qYdrM}RRyu-_q34WLN; z_zko7nNZ*YY~rL#{M5hU_@WytwBgsc#3S}P|1^LT%YUQW0bbKM!tO}Vy!~{^Z{z)< zx0}HQyHR9u1^0wE(D@qCF=5`t$r9G_?Ut+QK^O0NpLGh}HyF_4>AHeZx@Hw=9uT;4 z9A^Y{0h`w2YqLJwYs88EC5Ns%)h;5Z=K*lGtdOayVPumD^a&x1YmO}}eCz8ABE0){ z-hqr$<1;sR2yE!%_BwU1gk|*;@|coxIrN1~y&_{X%6kd3G+RdtLwl|l%jNdsqpD%j&1gadLdA&tq-6d_ z@q&yrXXGbaEWkgm?aRf@5fud{2fLzv2qm&sG?WS_{{b83Q*JZ)*w_yuyDt4c$lrlT zk?EBwt3@jYS^1-R3V~9RqRH095r$4>3Do23foWlQd&a}#(SIpcL^sqeCvlBdjq`7PK(58NVAA2 z$xL1Qweo3YCP!q9Zv*19k^^5G6xHA_-v{>HgR9SV?`cF2^VQL2g1|xN*S#;pojCQ* z?^BY1OE4BKMGHI}Y-DSq1nsM=VW`hmQ5A~N2BmCNMZ`xdgN;FGVMxSzMmejx9|}g? zKf+}Blo8w!61Gj2N9YaXoBaiOZil0VKQQNXBgV}Y9_EJ^^3sRX7a$z5A)&Sh@6VGS zP~wBF%TBQEC6;@;M*-Q~)D*k_10v(_SxiGWsU*aT?;#A6hy*ghwaj^cy?#Mts$F znEnU@w1iL(-&>gAunO9zdxTlDxEcV331jm#;;7xislPyE7A;A$CpL36?0s0+az<_I z(zqdg4Fi6Ajv!`r5s)X(+c~WM+UHWT|r{+_QKkEKDm@yHPqcd?xQ&1#< zQOJvB&JEk1VVhzuQw*MjrBP6vmU12t#!?YI_)7MvX=gTyM@h*^Jg-`u{0{}CdGyOf z(H1gx!wYF-jGn%+at+-(v>cnX>~uo-6$o|MGJc?OMF8`3zPCYMcM}S~4i%5vg zZ}~VwYJAy_R4AlAa_OHjmrE;=)LC5ZSUv8VA>cR|Oeh-miX~#2CoWE_lJZF{2^Wtv zQ|X+R&^gCYUrjnfH8y~M$Jc;6P4w=LuSqc-&s;=RUjWckWqu-6PI61|Yw-2~8P~cj zQCLgX8!2#yC7a56zm`V`C3Ge6bgq;mA2WrzjgWg%47NlsO<^PtjffkM$TD4m< zYZB#aonMa|9@+}RGV^aWQYmpO73?~*G81v0D(DLW;|nd2DM1fwhIF&Np*-Aq*S&4O zk2gQ8si?TqM0HdjZ(_L&6DK`w-9YL`NCzbt+KeYGipHY>d=+z^>(`3hdQ(nL zc!Cx%hKcE((cZCK3ZL;b`H9X((mjZWPFVILk?^=?)EVS0y+&b8C?4~eKw0i`NhU%3 zrrePDpCr8b`CHiArRW^cU$!FVtyHLMXEv-2πBhGDT!Q*#1Oa+Q|u^<^jR35H)| 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

|1J}IEWx6+WUVkihy2>Ghxly4ABt!dOt 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 literal 0 HcmV?d00001 diff --git a/materials/rust/coverage/Cargo.toml b/materials/rust/coverage/Cargo.toml new file mode 100644 index 0000000..ef8459e --- /dev/null +++ b/materials/rust/coverage/Cargo.toml @@ -0,0 +1,4 @@ +[package] +name = "tmp" +version = "0.1.0" +edition = "2021" diff --git a/materials/rust/coverage/Dockerfile b/materials/rust/coverage/Dockerfile new file mode 100644 index 0000000..5c5e6be --- /dev/null +++ b/materials/rust/coverage/Dockerfile @@ -0,0 +1,20 @@ +FROM rust:1.95.0-slim-trixie + +RUN apt update +RUN apt install -y pkg-config libssl-dev lcov +RUN cargo install cargo-tarpaulin +RUN cargo install cargo-llvm-cov --locked +RUN cargo install llvm-cov-pretty +RUN rustup component add llvm-tools-preview +RUN cargo install grcov + +WORKDIR /home/test + +ARG CACHEBUST + +COPY ./Cargo.toml /home/test/ +COPY ./src /home/test/src +COPY ./get_coverage.sh /home/test/ +RUN mkdir /home/test/outputs + +CMD ["/bin/bash", "./get_coverage.sh"] \ No newline at end of file diff --git a/materials/rust/coverage/README.md b/materials/rust/coverage/README.md new file mode 100644 index 0000000..78ec428 --- /dev/null +++ b/materials/rust/coverage/README.md @@ -0,0 +1,19 @@ +# Rust coverage + +A simple Rust project and a script for generating HTML coverage reports using various tools. + +Build and run docker container: +```sh +docker build --build-arg CACHEBUST=$(date +%s) -t tob_cov_test . +docker run -it --rm tob_cov_test +``` + +Copy content from the container: +```sh +docker cp tob_cov_test:/home/test/outputs . +``` + +Review results opening relevant HTML files: +```sh +find . -not -path '*/src/*' -name 'index.html' -or -name tarpaulin-report.htm +``` diff --git a/materials/rust/coverage/get_coverage.sh b/materials/rust/coverage/get_coverage.sh new file mode 100644 index 0000000..4b4e55f --- /dev/null +++ b/materials/rust/coverage/get_coverage.sh @@ -0,0 +1,51 @@ +#!/bin/bash + +set -euo pipefail + +# gather coverage + +# llvm-cov +# ./outputs/llvm_cov/index.html +cargo llvm-cov --html --show-instantiations && \ +mv ./target/llvm-cov/html ./outputs/llvm_cov && \ +cargo clean + +# ./outputs/llvm_cov_pretty/index.html +cargo llvm-cov --json --show-instantiations | llvm-cov-pretty --output-dir ./outputs/llvm_cov_pretty && \ +cargo clean + +# tarpaulin +# ./outputs/tarpaulin-report.html +cargo tarpaulin --ignore-tests --count --engine llvm --out html --force-clean && \ +mv tarpaulin-report.html ./outputs && \ +cargo clean + +# tarpaulin ptrace +# MUST RUN MANUALLY with insecure docker settings: +# docker run -it --security-opt seccomp=unconfined tob_cov_test bash +# cargo tarpaulin --ignore-tests --count --engine ptrace --out html --force-clean && \ +# mv tarpaulin-report.html ./outputs && \ +# cargo clean + +# grcov llvm +export RUSTFLAGS="-Cinstrument-coverage" +export LLVM_PROFILE_FILE="tob_test-%p-%m.profraw" +cargo test +# ./outputs/grcov_llvm/index.html +grcov . -s . --binary-path ./target/debug/ -t html --branch --ignore-not-existing -o ./outputs/grcov_llvm && \ +grcov . -s . --binary-path ./target/debug/ -t lcov --branch --ignore-not-existing -o ./outputs/grcov_llvm_lcov.info +# ./outputs/grcov_llvm_lcov/index.html +genhtml -o ./outputs/grcov_llvm_lcov --show-details --ignore-errors source --legend ./outputs/grcov_llvm_lcov.info +cargo clean +find . -name '*.profraw' -exec rm '{}' \; +unset LLVM_PROFILE_FILE RUSTFLAGS + +# grcov with gcov - deprecated +# export RUSTC_BOOTSTRAP=1 +# export CARGO_INCREMENTAL=0 +# export RUSTFLAGS="-Zprofile -Ccodegen-units=1 -Copt-level=0 -Clink-dead-code -Coverflow-checks=off -Zpanic_abort_tests -Cpanic=abort" +# export RUSTDOCFLAGS="-Cpanic=abort" +# cargo test && \ +# grcov . -s . --binary-path ./target/debug/ -t html --branch --ignore-not-existing -o ./outputs/grcov && \ +# grcov . -s . --binary-path ./target/debug/ -t lcov --branch --ignore-not-existing -o ./outputs/grcov_lcov.info && \ +# genhtml -o ./outputs/grcov_lcov --show-details --ignore-errors source --legend ./outputs/grcov_lcov.info \ No newline at end of file diff --git a/materials/rust/coverage/src/main.rs b/materials/rust/coverage/src/main.rs new file mode 100644 index 0000000..9ec9f3e --- /dev/null +++ b/materials/rust/coverage/src/main.rs @@ -0,0 +1,107 @@ +mod second; + +fn main() { println!("Hello, world!"); } + +fn validate_data_simple(data: &Data) -> Result<(), ()> { + if !data.magic.eq(&[0x13, 0x37]) { return Err(()) } + if data.len as usize != data.content.len() { return Err(()) } + return Ok(()); +} + +fn validate_data_match(data: &Data) -> i32 { + let x: u32 = match data.content.parse::() { + Ok(_x) => { + let y = 2 * _x; + if y < 6 { + y + } else { + y * 2 + } + } + Err(_) => 0 + }; + if x == 0 { + -1 + } else { + (x as i32) + 1 + } +} + +// https://doc.rust-lang.org/book/ch10-01-syntax.html +fn largest(list: &[T]) -> &T { + let mut largest = &list[0]; + for item in list { + if item > largest { + largest = item; + } + } + largest +} + +fn validate_data_generics(data: &Data) { + let number_list = vec![34, 50, 25, 100, 65]; + + let result = largest(&number_list); + println!("The largest number is {}", result); + + let char_list = vec!['y', 'm', 'a', 'q']; + + let result = largest(&char_list); + println!("The largest char is {}", result); + + let result = largest(data.content.as_bytes()); + println!("The largest content char is {}", result); +} + +struct Data { + magic: [u8; 2], + len: u8, + content: String +} + +#[cfg(test)] +mod tests { + use crate::second::validate_data_panic; + use crate::{Data, validate_data_generics, validate_data_match, validate_data_simple}; + + #[test] + fn parser_detects_errors() { + let mut blob = Data{ magic: [0x73, 0x31], len: 2, content: "AB".parse().unwrap() }; + blob.content = blob.content + "Y"; + let result = validate_data_simple(&blob); + assert!(result.is_err()); + } + + #[test] + fn check_match() { + let blob = Data{ magic: [0x73, 0x31], len: 2, content: "XX".parse().unwrap() }; + let x = validate_data_match(&blob); + assert_eq!(x, -1); + } + + #[test] + fn check_match2() { + let blob = Data{ magic: [0x73, 0x31], len: 2, content: "40".parse().unwrap() }; + let x = validate_data_match(&blob); + assert_eq!(x, 161); + } + + #[test] + fn check_generic() { + let blob = Data{ magic: [0x73, 0x31], len: 2, content: "QWE".parse().unwrap() }; + validate_data_generics(&blob); + } + + #[test] + #[should_panic] + fn check_panic() { + let blob = Data{ magic: [0x73, 0x31], len: 0, content: "4".parse().unwrap() }; + validate_data_panic(&blob); + } + + #[test] + fn check_not_panic() { + let blob = Data{ magic: [0x73, 0x31], len: 2, content: "4".parse().unwrap() }; + validate_data_panic(&blob); + } +} \ No newline at end of file diff --git a/materials/rust/coverage/src/second.rs b/materials/rust/coverage/src/second.rs new file mode 100644 index 0000000..0f11a80 --- /dev/null +++ b/materials/rust/coverage/src/second.rs @@ -0,0 +1,7 @@ +use crate::Data; + +pub(crate) fn validate_data_panic(data: &Data) { + if data.len == 0 { + panic!("panic") + } +} \ No newline at end of file diff --git a/static/languages/rust/coverage/grcov_lcov.info b/static/languages/rust/coverage/grcov_lcov.info new file mode 100644 index 0000000..fede761 --- /dev/null +++ b/static/languages/rust/coverage/grcov_lcov.info @@ -0,0 +1,116 @@ +TN: +SF:src/second.rs +FN:3,tmp::second::validate_data_panic +FNDA:1,tmp::second::validate_data_panic +FNF:1 +FNH:1 +BRF:0 +BRH:0 +DA:3,4 +DA:4,4 +DA:5,2 +DA:6,2 +DA:7,2 +LF:5 +LH:5 +end_of_record +SF:src/main.rs +FN:31,tmp::largest:: +FN:31,tmp::largest:: +FN:3,tmp::main +FN:83,tmp::tests::check_match2 +FN:90,tmp::tests::check_generic +FN:41,tmp::validate_data_generics +FN:68,tmp::tests::parser_detects_errors +FN:31,tmp::largest:: +FN:5,tmp::validate_data_simple +FN:97,tmp::tests::check_panic +FN:103,tmp::tests::check_not_panic +FN:31,tmp::largest::<_> +FN:76,tmp::tests::check_match +FN:11,tmp::validate_data_match +FNDA:1,tmp::largest:: +FNDA:1,tmp::largest:: +FNDA:0,tmp::main +FNDA:1,tmp::tests::check_match2 +FNDA:1,tmp::tests::check_generic +FNDA:1,tmp::validate_data_generics +FNDA:1,tmp::tests::parser_detects_errors +FNDA:1,tmp::largest:: +FNDA:1,tmp::validate_data_simple +FNDA:1,tmp::tests::check_panic +FNDA:1,tmp::tests::check_not_panic +FNDA:0,tmp::largest::<_> +FNDA:1,tmp::tests::check_match +FNDA:1,tmp::validate_data_match +FNF:14 +FNH:12 +BRF:0 +BRH:0 +DA:3,0 +DA:5,2 +DA:6,2 +DA:7,0 +DA:8,0 +DA:9,2 +DA:11,4 +DA:12,4 +DA:13,2 +DA:14,2 +DA:15,2 +DA:16,0 +DA:18,2 +DA:21,2 +DA:23,4 +DA:24,2 +DA:26,2 +DA:28,4 +DA:31,6 +DA:32,6 +DA:33,24 +DA:34,24 +DA:35,6 +DA:36,18 +DA:38,6 +DA:39,6 +DA:41,2 +DA:42,2 +DA:44,2 +DA:45,2 +DA:47,2 +DA:49,2 +DA:50,2 +DA:52,2 +DA:53,2 +DA:54,2 +DA:68,2 +DA:69,2 +DA:70,2 +DA:71,2 +DA:72,2 +DA:73,2 +DA:76,2 +DA:77,2 +DA:78,2 +DA:79,2 +DA:80,2 +DA:83,2 +DA:84,2 +DA:85,2 +DA:86,2 +DA:87,2 +DA:90,2 +DA:91,2 +DA:92,2 +DA:93,2 +DA:97,2 +DA:98,2 +DA:99,2 +DA:100,2 +DA:103,2 +DA:104,2 +DA:105,2 +DA:106,2 +LF:64 +LH:60 +end_of_record diff --git a/static/languages/rust/coverage/grcov_llvm/badges/flat.svg b/static/languages/rust/coverage/grcov_llvm/badges/flat.svg new file mode 100644 index 0000000..03e135b --- /dev/null +++ b/static/languages/rust/coverage/grcov_llvm/badges/flat.svg @@ -0,0 +1,23 @@ + + coverage: 94% + + + + + + + + + + + + + + + coverage + + 94% + + + \ No newline at end of file diff --git a/static/languages/rust/coverage/grcov_llvm/badges/flat_square.svg b/static/languages/rust/coverage/grcov_llvm/badges/flat_square.svg new file mode 100644 index 0000000..b7a4567 --- /dev/null +++ b/static/languages/rust/coverage/grcov_llvm/badges/flat_square.svg @@ -0,0 +1,13 @@ + + coverage: 94% + + + + + + coverage + 94% + + + \ No newline at end of file diff --git a/static/languages/rust/coverage/grcov_llvm/badges/for_the_badge.svg b/static/languages/rust/coverage/grcov_llvm/badges/for_the_badge.svg new file mode 100644 index 0000000..70b55d3 --- /dev/null +++ b/static/languages/rust/coverage/grcov_llvm/badges/for_the_badge.svg @@ -0,0 +1,13 @@ + + COVERAGE: 94% + + + + + + COVERAGE + 94% + + + \ No newline at end of file diff --git a/static/languages/rust/coverage/grcov_llvm/badges/plastic.svg b/static/languages/rust/coverage/grcov_llvm/badges/plastic.svg new file mode 100644 index 0000000..c84a8ce --- /dev/null +++ b/static/languages/rust/coverage/grcov_llvm/badges/plastic.svg @@ -0,0 +1,25 @@ + + coverage: 94% + + + + + + + + + + + + + + + + + coverage + + 94% + + + \ No newline at end of file diff --git a/static/languages/rust/coverage/grcov_llvm/badges/social.svg b/static/languages/rust/coverage/grcov_llvm/badges/social.svg new file mode 100644 index 0000000..da39da4 --- /dev/null +++ b/static/languages/rust/coverage/grcov_llvm/badges/social.svg @@ -0,0 +1,27 @@ + + Coverage: 94% + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/static/languages/rust/coverage/grcov_llvm/bulma.min.css b/static/languages/rust/coverage/grcov_llvm/bulma.min.css new file mode 100644 index 0000000..a807a31 --- /dev/null +++ b/static/languages/rust/coverage/grcov_llvm/bulma.min.css @@ -0,0 +1 @@ +/*! bulma.io v0.9.1 | MIT License | github.com/jgthms/bulma */@-webkit-keyframes spinAround{from{transform:rotate(0)}to{transform:rotate(359deg)}}@keyframes spinAround{from{transform:rotate(0)}to{transform:rotate(359deg)}}.breadcrumb,.button,.delete,.file,.is-unselectable,.modal-close,.pagination-ellipsis,.pagination-link,.pagination-next,.pagination-previous,.tabs{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.navbar-link:not(.is-arrowless)::after,.select:not(.is-multiple):not(.is-loading)::after{border:3px solid transparent;border-radius:2px;border-right:0;border-top:0;content:" ";display:block;height:.625em;margin-top:-.4375em;pointer-events:none;position:absolute;top:50%;transform:rotate(-45deg);transform-origin:center;width:.625em}.block:not(:last-child),.box:not(:last-child),.breadcrumb:not(:last-child),.content:not(:last-child),.highlight:not(:last-child),.level:not(:last-child),.message:not(:last-child),.notification:not(:last-child),.pagination:not(:last-child),.progress:not(:last-child),.subtitle:not(:last-child),.table-container:not(:last-child),.table:not(:last-child),.tabs:not(:last-child),.title:not(:last-child){margin-bottom:1.5rem}.delete,.modal-close{-moz-appearance:none;-webkit-appearance:none;background-color:rgba(10,10,10,.2);border:none;border-radius:290486px;cursor:pointer;pointer-events:auto;display:inline-block;flex-grow:0;flex-shrink:0;font-size:0;height:20px;max-height:20px;max-width:20px;min-height:20px;min-width:20px;outline:0;position:relative;vertical-align:top;width:20px}.delete::after,.delete::before,.modal-close::after,.modal-close::before{background-color:#fff;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}.delete::before,.modal-close::before{height:2px;width:50%}.delete::after,.modal-close::after{height:50%;width:2px}.delete:focus,.delete:hover,.modal-close:focus,.modal-close:hover{background-color:rgba(10,10,10,.3)}.delete:active,.modal-close:active{background-color:rgba(10,10,10,.4)}.is-small.delete,.is-small.modal-close{height:16px;max-height:16px;max-width:16px;min-height:16px;min-width:16px;width:16px}.is-medium.delete,.is-medium.modal-close{height:24px;max-height:24px;max-width:24px;min-height:24px;min-width:24px;width:24px}.is-large.delete,.is-large.modal-close{height:32px;max-height:32px;max-width:32px;min-height:32px;min-width:32px;width:32px}.button.is-loading::after,.control.is-loading::after,.loader,.select.is-loading::after{-webkit-animation:spinAround .5s infinite linear;animation:spinAround .5s infinite linear;border:2px solid #dbdbdb;border-radius:290486px;border-right-color:transparent;border-top-color:transparent;content:"";display:block;height:1em;position:relative;width:1em}.hero-video,.image.is-16by9 .has-ratio,.image.is-16by9 img,.image.is-1by1 .has-ratio,.image.is-1by1 img,.image.is-1by2 .has-ratio,.image.is-1by2 img,.image.is-1by3 .has-ratio,.image.is-1by3 img,.image.is-2by1 .has-ratio,.image.is-2by1 img,.image.is-2by3 .has-ratio,.image.is-2by3 img,.image.is-3by1 .has-ratio,.image.is-3by1 img,.image.is-3by2 .has-ratio,.image.is-3by2 img,.image.is-3by4 .has-ratio,.image.is-3by4 img,.image.is-3by5 .has-ratio,.image.is-3by5 img,.image.is-4by3 .has-ratio,.image.is-4by3 img,.image.is-4by5 .has-ratio,.image.is-4by5 img,.image.is-5by3 .has-ratio,.image.is-5by3 img,.image.is-5by4 .has-ratio,.image.is-5by4 img,.image.is-9by16 .has-ratio,.image.is-9by16 img,.image.is-square .has-ratio,.image.is-square img,.is-overlay,.modal,.modal-background{bottom:0;left:0;position:absolute;right:0;top:0}.button,.file-cta,.file-name,.input,.pagination-ellipsis,.pagination-link,.pagination-next,.pagination-previous,.select select,.textarea{-moz-appearance:none;-webkit-appearance:none;align-items:center;border:1px solid transparent;border-radius:4px;box-shadow:none;display:inline-flex;font-size:1rem;height:2.5em;justify-content:flex-start;line-height:1.5;padding-bottom:calc(.5em - 1px);padding-left:calc(.75em - 1px);padding-right:calc(.75em - 1px);padding-top:calc(.5em - 1px);position:relative;vertical-align:top}.button:active,.button:focus,.file-cta:active,.file-cta:focus,.file-name:active,.file-name:focus,.input:active,.input:focus,.is-active.button,.is-active.file-cta,.is-active.file-name,.is-active.input,.is-active.pagination-ellipsis,.is-active.pagination-link,.is-active.pagination-next,.is-active.pagination-previous,.is-active.textarea,.is-focused.button,.is-focused.file-cta,.is-focused.file-name,.is-focused.input,.is-focused.pagination-ellipsis,.is-focused.pagination-link,.is-focused.pagination-next,.is-focused.pagination-previous,.is-focused.textarea,.pagination-ellipsis:active,.pagination-ellipsis:focus,.pagination-link:active,.pagination-link:focus,.pagination-next:active,.pagination-next:focus,.pagination-previous:active,.pagination-previous:focus,.select select.is-active,.select select.is-focused,.select select:active,.select select:focus,.textarea:active,.textarea:focus{outline:0}.button[disabled],.file-cta[disabled],.file-name[disabled],.input[disabled],.pagination-ellipsis[disabled],.pagination-link[disabled],.pagination-next[disabled],.pagination-previous[disabled],.select fieldset[disabled] select,.select select[disabled],.textarea[disabled],fieldset[disabled] .button,fieldset[disabled] .file-cta,fieldset[disabled] .file-name,fieldset[disabled] .input,fieldset[disabled] .pagination-ellipsis,fieldset[disabled] .pagination-link,fieldset[disabled] .pagination-next,fieldset[disabled] .pagination-previous,fieldset[disabled] .select select,fieldset[disabled] .textarea{cursor:not-allowed}/*! minireset.css v0.0.6 | MIT License | github.com/jgthms/minireset.css */blockquote,body,dd,dl,dt,fieldset,figure,h1,h2,h3,h4,h5,h6,hr,html,iframe,legend,li,ol,p,pre,textarea,ul{margin:0;padding:0}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:400}ul{list-style:none}button,input,select,textarea{margin:0}html{box-sizing:border-box}*,::after,::before{box-sizing:inherit}img,video{height:auto;max-width:100%}iframe{border:0}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}td:not([align]),th:not([align]){text-align:inherit}html{background-color:#fff;font-size:16px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;min-width:300px;overflow-x:hidden;overflow-y:scroll;text-rendering:optimizeLegibility;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;-ms-text-size-adjust:100%;text-size-adjust:100%}article,aside,figure,footer,header,hgroup,section{display:block}body,button,input,optgroup,select,textarea{font-family:BlinkMacSystemFont,-apple-system,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",Helvetica,Arial,sans-serif}code,pre{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto;font-family:monospace}body{color:#4a4a4a;font-size:1em;font-weight:400;line-height:1.5}a{color:#3273dc;cursor:pointer;text-decoration:none}a strong{color:currentColor}a:hover{color:#363636}code{background-color:#f5f5f5;color:#da1039;font-size:.875em;font-weight:400;padding:.25em .5em .25em}hr{background-color:#f5f5f5;border:none;display:block;height:2px;margin:1.5rem 0}img{height:auto;max-width:100%}input[type=checkbox],input[type=radio]{vertical-align:baseline}small{font-size:.875em}span{font-style:inherit;font-weight:inherit}strong{color:#363636;font-weight:700}fieldset{border:none}pre{-webkit-overflow-scrolling:touch;background-color:#f5f5f5;color:#4a4a4a;font-size:.875em;overflow-x:auto;padding:1.25rem 1.5rem;white-space:pre;word-wrap:normal}pre code{background-color:transparent;color:currentColor;font-size:1em;padding:0}table td,table th{vertical-align:top}table td:not([align]),table th:not([align]){text-align:inherit}table th{color:#363636}.box{background-color:#fff;border-radius:6px;box-shadow:0 .5em 1em -.125em rgba(10,10,10,.1),0 0 0 1px rgba(10,10,10,.02);color:#4a4a4a;display:block;padding:1.25rem}a.box:focus,a.box:hover{box-shadow:0 .5em 1em -.125em rgba(10,10,10,.1),0 0 0 1px #3273dc}a.box:active{box-shadow:inset 0 1px 2px rgba(10,10,10,.2),0 0 0 1px #3273dc}.button{background-color:#fff;border-color:#dbdbdb;border-width:1px;color:#363636;cursor:pointer;justify-content:center;padding-bottom:calc(.5em - 1px);padding-left:1em;padding-right:1em;padding-top:calc(.5em - 1px);text-align:center;white-space:nowrap}.button strong{color:inherit}.button .icon,.button .icon.is-large,.button .icon.is-medium,.button .icon.is-small{height:1.5em;width:1.5em}.button .icon:first-child:not(:last-child){margin-left:calc(-.5em - 1px);margin-right:.25em}.button .icon:last-child:not(:first-child){margin-left:.25em;margin-right:calc(-.5em - 1px)}.button .icon:first-child:last-child{margin-left:calc(-.5em - 1px);margin-right:calc(-.5em - 1px)}.button.is-hovered,.button:hover{border-color:#b5b5b5;color:#363636}.button.is-focused,.button:focus{border-color:#3273dc;color:#363636}.button.is-focused:not(:active),.button:focus:not(:active){box-shadow:0 0 0 .125em rgba(50,115,220,.25)}.button.is-active,.button:active{border-color:#4a4a4a;color:#363636}.button.is-text{background-color:transparent;border-color:transparent;color:#4a4a4a;text-decoration:underline}.button.is-text.is-focused,.button.is-text.is-hovered,.button.is-text:focus,.button.is-text:hover{background-color:#f5f5f5;color:#363636}.button.is-text.is-active,.button.is-text:active{background-color:#e8e8e8;color:#363636}.button.is-text[disabled],fieldset[disabled] .button.is-text{background-color:transparent;border-color:transparent;box-shadow:none}.button.is-white{background-color:#fff;border-color:transparent;color:#0a0a0a}.button.is-white.is-hovered,.button.is-white:hover{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}.button.is-white.is-focused,.button.is-white:focus{border-color:transparent;color:#0a0a0a}.button.is-white.is-focused:not(:active),.button.is-white:focus:not(:active){box-shadow:0 0 0 .125em rgba(255,255,255,.25)}.button.is-white.is-active,.button.is-white:active{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}.button.is-white[disabled],fieldset[disabled] .button.is-white{background-color:#fff;border-color:transparent;box-shadow:none}.button.is-white.is-inverted{background-color:#0a0a0a;color:#fff}.button.is-white.is-inverted.is-hovered,.button.is-white.is-inverted:hover{background-color:#000}.button.is-white.is-inverted[disabled],fieldset[disabled] .button.is-white.is-inverted{background-color:#0a0a0a;border-color:transparent;box-shadow:none;color:#fff}.button.is-white.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a!important}.button.is-white.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-white.is-outlined.is-focused,.button.is-white.is-outlined.is-hovered,.button.is-white.is-outlined:focus,.button.is-white.is-outlined:hover{background-color:#fff;border-color:#fff;color:#0a0a0a}.button.is-white.is-outlined.is-loading::after{border-color:transparent transparent #fff #fff!important}.button.is-white.is-outlined.is-loading.is-focused::after,.button.is-white.is-outlined.is-loading.is-hovered::after,.button.is-white.is-outlined.is-loading:focus::after,.button.is-white.is-outlined.is-loading:hover::after{border-color:transparent transparent #0a0a0a #0a0a0a!important}.button.is-white.is-outlined[disabled],fieldset[disabled] .button.is-white.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}.button.is-white.is-inverted.is-outlined.is-focused,.button.is-white.is-inverted.is-outlined.is-hovered,.button.is-white.is-inverted.is-outlined:focus,.button.is-white.is-inverted.is-outlined:hover{background-color:#0a0a0a;color:#fff}.button.is-white.is-inverted.is-outlined.is-loading.is-focused::after,.button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-white.is-inverted.is-outlined.is-loading:focus::after,.button.is-white.is-inverted.is-outlined.is-loading:hover::after{border-color:transparent transparent #fff #fff!important}.button.is-white.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}.button.is-black{background-color:#0a0a0a;border-color:transparent;color:#fff}.button.is-black.is-hovered,.button.is-black:hover{background-color:#040404;border-color:transparent;color:#fff}.button.is-black.is-focused,.button.is-black:focus{border-color:transparent;color:#fff}.button.is-black.is-focused:not(:active),.button.is-black:focus:not(:active){box-shadow:0 0 0 .125em rgba(10,10,10,.25)}.button.is-black.is-active,.button.is-black:active{background-color:#000;border-color:transparent;color:#fff}.button.is-black[disabled],fieldset[disabled] .button.is-black{background-color:#0a0a0a;border-color:transparent;box-shadow:none}.button.is-black.is-inverted{background-color:#fff;color:#0a0a0a}.button.is-black.is-inverted.is-hovered,.button.is-black.is-inverted:hover{background-color:#f2f2f2}.button.is-black.is-inverted[disabled],fieldset[disabled] .button.is-black.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#0a0a0a}.button.is-black.is-loading::after{border-color:transparent transparent #fff #fff!important}.button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}.button.is-black.is-outlined.is-focused,.button.is-black.is-outlined.is-hovered,.button.is-black.is-outlined:focus,.button.is-black.is-outlined:hover{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.button.is-black.is-outlined.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a!important}.button.is-black.is-outlined.is-loading.is-focused::after,.button.is-black.is-outlined.is-loading.is-hovered::after,.button.is-black.is-outlined.is-loading:focus::after,.button.is-black.is-outlined.is-loading:hover::after{border-color:transparent transparent #fff #fff!important}.button.is-black.is-outlined[disabled],fieldset[disabled] .button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}.button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-black.is-inverted.is-outlined.is-focused,.button.is-black.is-inverted.is-outlined.is-hovered,.button.is-black.is-inverted.is-outlined:focus,.button.is-black.is-inverted.is-outlined:hover{background-color:#fff;color:#0a0a0a}.button.is-black.is-inverted.is-outlined.is-loading.is-focused::after,.button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-black.is-inverted.is-outlined.is-loading:focus::after,.button.is-black.is-inverted.is-outlined.is-loading:hover::after{border-color:transparent transparent #0a0a0a #0a0a0a!important}.button.is-black.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-light{background-color:#f5f5f5;border-color:transparent;color:rgba(0,0,0,.7)}.button.is-light.is-hovered,.button.is-light:hover{background-color:#eee;border-color:transparent;color:rgba(0,0,0,.7)}.button.is-light.is-focused,.button.is-light:focus{border-color:transparent;color:rgba(0,0,0,.7)}.button.is-light.is-focused:not(:active),.button.is-light:focus:not(:active){box-shadow:0 0 0 .125em rgba(245,245,245,.25)}.button.is-light.is-active,.button.is-light:active{background-color:#e8e8e8;border-color:transparent;color:rgba(0,0,0,.7)}.button.is-light[disabled],fieldset[disabled] .button.is-light{background-color:#f5f5f5;border-color:transparent;box-shadow:none}.button.is-light.is-inverted{background-color:rgba(0,0,0,.7);color:#f5f5f5}.button.is-light.is-inverted.is-hovered,.button.is-light.is-inverted:hover{background-color:rgba(0,0,0,.7)}.button.is-light.is-inverted[disabled],fieldset[disabled] .button.is-light.is-inverted{background-color:rgba(0,0,0,.7);border-color:transparent;box-shadow:none;color:#f5f5f5}.button.is-light.is-loading::after{border-color:transparent transparent rgba(0,0,0,.7) rgba(0,0,0,.7)!important}.button.is-light.is-outlined{background-color:transparent;border-color:#f5f5f5;color:#f5f5f5}.button.is-light.is-outlined.is-focused,.button.is-light.is-outlined.is-hovered,.button.is-light.is-outlined:focus,.button.is-light.is-outlined:hover{background-color:#f5f5f5;border-color:#f5f5f5;color:rgba(0,0,0,.7)}.button.is-light.is-outlined.is-loading::after{border-color:transparent transparent #f5f5f5 #f5f5f5!important}.button.is-light.is-outlined.is-loading.is-focused::after,.button.is-light.is-outlined.is-loading.is-hovered::after,.button.is-light.is-outlined.is-loading:focus::after,.button.is-light.is-outlined.is-loading:hover::after{border-color:transparent transparent rgba(0,0,0,.7) rgba(0,0,0,.7)!important}.button.is-light.is-outlined[disabled],fieldset[disabled] .button.is-light.is-outlined{background-color:transparent;border-color:#f5f5f5;box-shadow:none;color:#f5f5f5}.button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,.7);color:rgba(0,0,0,.7)}.button.is-light.is-inverted.is-outlined.is-focused,.button.is-light.is-inverted.is-outlined.is-hovered,.button.is-light.is-inverted.is-outlined:focus,.button.is-light.is-inverted.is-outlined:hover{background-color:rgba(0,0,0,.7);color:#f5f5f5}.button.is-light.is-inverted.is-outlined.is-loading.is-focused::after,.button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-light.is-inverted.is-outlined.is-loading:focus::after,.button.is-light.is-inverted.is-outlined.is-loading:hover::after{border-color:transparent transparent #f5f5f5 #f5f5f5!important}.button.is-light.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,.7);box-shadow:none;color:rgba(0,0,0,.7)}.button.is-dark{background-color:#363636;border-color:transparent;color:#fff}.button.is-dark.is-hovered,.button.is-dark:hover{background-color:#2f2f2f;border-color:transparent;color:#fff}.button.is-dark.is-focused,.button.is-dark:focus{border-color:transparent;color:#fff}.button.is-dark.is-focused:not(:active),.button.is-dark:focus:not(:active){box-shadow:0 0 0 .125em rgba(54,54,54,.25)}.button.is-dark.is-active,.button.is-dark:active{background-color:#292929;border-color:transparent;color:#fff}.button.is-dark[disabled],fieldset[disabled] .button.is-dark{background-color:#363636;border-color:transparent;box-shadow:none}.button.is-dark.is-inverted{background-color:#fff;color:#363636}.button.is-dark.is-inverted.is-hovered,.button.is-dark.is-inverted:hover{background-color:#f2f2f2}.button.is-dark.is-inverted[disabled],fieldset[disabled] .button.is-dark.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#363636}.button.is-dark.is-loading::after{border-color:transparent transparent #fff #fff!important}.button.is-dark.is-outlined{background-color:transparent;border-color:#363636;color:#363636}.button.is-dark.is-outlined.is-focused,.button.is-dark.is-outlined.is-hovered,.button.is-dark.is-outlined:focus,.button.is-dark.is-outlined:hover{background-color:#363636;border-color:#363636;color:#fff}.button.is-dark.is-outlined.is-loading::after{border-color:transparent transparent #363636 #363636!important}.button.is-dark.is-outlined.is-loading.is-focused::after,.button.is-dark.is-outlined.is-loading.is-hovered::after,.button.is-dark.is-outlined.is-loading:focus::after,.button.is-dark.is-outlined.is-loading:hover::after{border-color:transparent transparent #fff #fff!important}.button.is-dark.is-outlined[disabled],fieldset[disabled] .button.is-dark.is-outlined{background-color:transparent;border-color:#363636;box-shadow:none;color:#363636}.button.is-dark.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-dark.is-inverted.is-outlined.is-focused,.button.is-dark.is-inverted.is-outlined.is-hovered,.button.is-dark.is-inverted.is-outlined:focus,.button.is-dark.is-inverted.is-outlined:hover{background-color:#fff;color:#363636}.button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after,.button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-dark.is-inverted.is-outlined.is-loading:focus::after,.button.is-dark.is-inverted.is-outlined.is-loading:hover::after{border-color:transparent transparent #363636 #363636!important}.button.is-dark.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-dark.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-primary{background-color:#00d1b2;border-color:transparent;color:#fff}.button.is-primary.is-hovered,.button.is-primary:hover{background-color:#00c4a7;border-color:transparent;color:#fff}.button.is-primary.is-focused,.button.is-primary:focus{border-color:transparent;color:#fff}.button.is-primary.is-focused:not(:active),.button.is-primary:focus:not(:active){box-shadow:0 0 0 .125em rgba(0,209,178,.25)}.button.is-primary.is-active,.button.is-primary:active{background-color:#00b89c;border-color:transparent;color:#fff}.button.is-primary[disabled],fieldset[disabled] .button.is-primary{background-color:#00d1b2;border-color:transparent;box-shadow:none}.button.is-primary.is-inverted{background-color:#fff;color:#00d1b2}.button.is-primary.is-inverted.is-hovered,.button.is-primary.is-inverted:hover{background-color:#f2f2f2}.button.is-primary.is-inverted[disabled],fieldset[disabled] .button.is-primary.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#00d1b2}.button.is-primary.is-loading::after{border-color:transparent transparent #fff #fff!important}.button.is-primary.is-outlined{background-color:transparent;border-color:#00d1b2;color:#00d1b2}.button.is-primary.is-outlined.is-focused,.button.is-primary.is-outlined.is-hovered,.button.is-primary.is-outlined:focus,.button.is-primary.is-outlined:hover{background-color:#00d1b2;border-color:#00d1b2;color:#fff}.button.is-primary.is-outlined.is-loading::after{border-color:transparent transparent #00d1b2 #00d1b2!important}.button.is-primary.is-outlined.is-loading.is-focused::after,.button.is-primary.is-outlined.is-loading.is-hovered::after,.button.is-primary.is-outlined.is-loading:focus::after,.button.is-primary.is-outlined.is-loading:hover::after{border-color:transparent transparent #fff #fff!important}.button.is-primary.is-outlined[disabled],fieldset[disabled] .button.is-primary.is-outlined{background-color:transparent;border-color:#00d1b2;box-shadow:none;color:#00d1b2}.button.is-primary.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-primary.is-inverted.is-outlined.is-focused,.button.is-primary.is-inverted.is-outlined.is-hovered,.button.is-primary.is-inverted.is-outlined:focus,.button.is-primary.is-inverted.is-outlined:hover{background-color:#fff;color:#00d1b2}.button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after,.button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-primary.is-inverted.is-outlined.is-loading:focus::after,.button.is-primary.is-inverted.is-outlined.is-loading:hover::after{border-color:transparent transparent #00d1b2 #00d1b2!important}.button.is-primary.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-primary.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-primary.is-light{background-color:#ebfffc;color:#00947e}.button.is-primary.is-light.is-hovered,.button.is-primary.is-light:hover{background-color:#defffa;border-color:transparent;color:#00947e}.button.is-primary.is-light.is-active,.button.is-primary.is-light:active{background-color:#d1fff8;border-color:transparent;color:#00947e}.button.is-link{background-color:#3273dc;border-color:transparent;color:#fff}.button.is-link.is-hovered,.button.is-link:hover{background-color:#276cda;border-color:transparent;color:#fff}.button.is-link.is-focused,.button.is-link:focus{border-color:transparent;color:#fff}.button.is-link.is-focused:not(:active),.button.is-link:focus:not(:active){box-shadow:0 0 0 .125em rgba(50,115,220,.25)}.button.is-link.is-active,.button.is-link:active{background-color:#2366d1;border-color:transparent;color:#fff}.button.is-link[disabled],fieldset[disabled] .button.is-link{background-color:#3273dc;border-color:transparent;box-shadow:none}.button.is-link.is-inverted{background-color:#fff;color:#3273dc}.button.is-link.is-inverted.is-hovered,.button.is-link.is-inverted:hover{background-color:#f2f2f2}.button.is-link.is-inverted[disabled],fieldset[disabled] .button.is-link.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#3273dc}.button.is-link.is-loading::after{border-color:transparent transparent #fff #fff!important}.button.is-link.is-outlined{background-color:transparent;border-color:#3273dc;color:#3273dc}.button.is-link.is-outlined.is-focused,.button.is-link.is-outlined.is-hovered,.button.is-link.is-outlined:focus,.button.is-link.is-outlined:hover{background-color:#3273dc;border-color:#3273dc;color:#fff}.button.is-link.is-outlined.is-loading::after{border-color:transparent transparent #3273dc #3273dc!important}.button.is-link.is-outlined.is-loading.is-focused::after,.button.is-link.is-outlined.is-loading.is-hovered::after,.button.is-link.is-outlined.is-loading:focus::after,.button.is-link.is-outlined.is-loading:hover::after{border-color:transparent transparent #fff #fff!important}.button.is-link.is-outlined[disabled],fieldset[disabled] .button.is-link.is-outlined{background-color:transparent;border-color:#3273dc;box-shadow:none;color:#3273dc}.button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-link.is-inverted.is-outlined.is-focused,.button.is-link.is-inverted.is-outlined.is-hovered,.button.is-link.is-inverted.is-outlined:focus,.button.is-link.is-inverted.is-outlined:hover{background-color:#fff;color:#3273dc}.button.is-link.is-inverted.is-outlined.is-loading.is-focused::after,.button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-link.is-inverted.is-outlined.is-loading:focus::after,.button.is-link.is-inverted.is-outlined.is-loading:hover::after{border-color:transparent transparent #3273dc #3273dc!important}.button.is-link.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-link.is-light{background-color:#eef3fc;color:#2160c4}.button.is-link.is-light.is-hovered,.button.is-link.is-light:hover{background-color:#e3ecfa;border-color:transparent;color:#2160c4}.button.is-link.is-light.is-active,.button.is-link.is-light:active{background-color:#d8e4f8;border-color:transparent;color:#2160c4}.button.is-info{background-color:#3298dc;border-color:transparent;color:#fff}.button.is-info.is-hovered,.button.is-info:hover{background-color:#2793da;border-color:transparent;color:#fff}.button.is-info.is-focused,.button.is-info:focus{border-color:transparent;color:#fff}.button.is-info.is-focused:not(:active),.button.is-info:focus:not(:active){box-shadow:0 0 0 .125em rgba(50,152,220,.25)}.button.is-info.is-active,.button.is-info:active{background-color:#238cd1;border-color:transparent;color:#fff}.button.is-info[disabled],fieldset[disabled] .button.is-info{background-color:#3298dc;border-color:transparent;box-shadow:none}.button.is-info.is-inverted{background-color:#fff;color:#3298dc}.button.is-info.is-inverted.is-hovered,.button.is-info.is-inverted:hover{background-color:#f2f2f2}.button.is-info.is-inverted[disabled],fieldset[disabled] .button.is-info.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#3298dc}.button.is-info.is-loading::after{border-color:transparent transparent #fff #fff!important}.button.is-info.is-outlined{background-color:transparent;border-color:#3298dc;color:#3298dc}.button.is-info.is-outlined.is-focused,.button.is-info.is-outlined.is-hovered,.button.is-info.is-outlined:focus,.button.is-info.is-outlined:hover{background-color:#3298dc;border-color:#3298dc;color:#fff}.button.is-info.is-outlined.is-loading::after{border-color:transparent transparent #3298dc #3298dc!important}.button.is-info.is-outlined.is-loading.is-focused::after,.button.is-info.is-outlined.is-loading.is-hovered::after,.button.is-info.is-outlined.is-loading:focus::after,.button.is-info.is-outlined.is-loading:hover::after{border-color:transparent transparent #fff #fff!important}.button.is-info.is-outlined[disabled],fieldset[disabled] .button.is-info.is-outlined{background-color:transparent;border-color:#3298dc;box-shadow:none;color:#3298dc}.button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-info.is-inverted.is-outlined.is-focused,.button.is-info.is-inverted.is-outlined.is-hovered,.button.is-info.is-inverted.is-outlined:focus,.button.is-info.is-inverted.is-outlined:hover{background-color:#fff;color:#3298dc}.button.is-info.is-inverted.is-outlined.is-loading.is-focused::after,.button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-info.is-inverted.is-outlined.is-loading:focus::after,.button.is-info.is-inverted.is-outlined.is-loading:hover::after{border-color:transparent transparent #3298dc #3298dc!important}.button.is-info.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-info.is-light{background-color:#eef6fc;color:#1d72aa}.button.is-info.is-light.is-hovered,.button.is-info.is-light:hover{background-color:#e3f1fa;border-color:transparent;color:#1d72aa}.button.is-info.is-light.is-active,.button.is-info.is-light:active{background-color:#d8ebf8;border-color:transparent;color:#1d72aa}.button.is-success{background-color:#48c774;border-color:transparent;color:#fff}.button.is-success.is-hovered,.button.is-success:hover{background-color:#3ec46d;border-color:transparent;color:#fff}.button.is-success.is-focused,.button.is-success:focus{border-color:transparent;color:#fff}.button.is-success.is-focused:not(:active),.button.is-success:focus:not(:active){box-shadow:0 0 0 .125em rgba(72,199,116,.25)}.button.is-success.is-active,.button.is-success:active{background-color:#3abb67;border-color:transparent;color:#fff}.button.is-success[disabled],fieldset[disabled] .button.is-success{background-color:#48c774;border-color:transparent;box-shadow:none}.button.is-success.is-inverted{background-color:#fff;color:#48c774}.button.is-success.is-inverted.is-hovered,.button.is-success.is-inverted:hover{background-color:#f2f2f2}.button.is-success.is-inverted[disabled],fieldset[disabled] .button.is-success.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#48c774}.button.is-success.is-loading::after{border-color:transparent transparent #fff #fff!important}.button.is-success.is-outlined{background-color:transparent;border-color:#48c774;color:#48c774}.button.is-success.is-outlined.is-focused,.button.is-success.is-outlined.is-hovered,.button.is-success.is-outlined:focus,.button.is-success.is-outlined:hover{background-color:#48c774;border-color:#48c774;color:#fff}.button.is-success.is-outlined.is-loading::after{border-color:transparent transparent #48c774 #48c774!important}.button.is-success.is-outlined.is-loading.is-focused::after,.button.is-success.is-outlined.is-loading.is-hovered::after,.button.is-success.is-outlined.is-loading:focus::after,.button.is-success.is-outlined.is-loading:hover::after{border-color:transparent transparent #fff #fff!important}.button.is-success.is-outlined[disabled],fieldset[disabled] .button.is-success.is-outlined{background-color:transparent;border-color:#48c774;box-shadow:none;color:#48c774}.button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-success.is-inverted.is-outlined.is-focused,.button.is-success.is-inverted.is-outlined.is-hovered,.button.is-success.is-inverted.is-outlined:focus,.button.is-success.is-inverted.is-outlined:hover{background-color:#fff;color:#48c774}.button.is-success.is-inverted.is-outlined.is-loading.is-focused::after,.button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-success.is-inverted.is-outlined.is-loading:focus::after,.button.is-success.is-inverted.is-outlined.is-loading:hover::after{border-color:transparent transparent #48c774 #48c774!important}.button.is-success.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-success.is-light{background-color:#effaf3;color:#257942}.button.is-success.is-light.is-hovered,.button.is-success.is-light:hover{background-color:#e6f7ec;border-color:transparent;color:#257942}.button.is-success.is-light.is-active,.button.is-success.is-light:active{background-color:#dcf4e4;border-color:transparent;color:#257942}.button.is-warning{background-color:#ffdd57;border-color:transparent;color:rgba(0,0,0,.7)}.button.is-warning.is-hovered,.button.is-warning:hover{background-color:#ffdb4a;border-color:transparent;color:rgba(0,0,0,.7)}.button.is-warning.is-focused,.button.is-warning:focus{border-color:transparent;color:rgba(0,0,0,.7)}.button.is-warning.is-focused:not(:active),.button.is-warning:focus:not(:active){box-shadow:0 0 0 .125em rgba(255,221,87,.25)}.button.is-warning.is-active,.button.is-warning:active{background-color:#ffd83d;border-color:transparent;color:rgba(0,0,0,.7)}.button.is-warning[disabled],fieldset[disabled] .button.is-warning{background-color:#ffdd57;border-color:transparent;box-shadow:none}.button.is-warning.is-inverted{background-color:rgba(0,0,0,.7);color:#ffdd57}.button.is-warning.is-inverted.is-hovered,.button.is-warning.is-inverted:hover{background-color:rgba(0,0,0,.7)}.button.is-warning.is-inverted[disabled],fieldset[disabled] .button.is-warning.is-inverted{background-color:rgba(0,0,0,.7);border-color:transparent;box-shadow:none;color:#ffdd57}.button.is-warning.is-loading::after{border-color:transparent transparent rgba(0,0,0,.7) rgba(0,0,0,.7)!important}.button.is-warning.is-outlined{background-color:transparent;border-color:#ffdd57;color:#ffdd57}.button.is-warning.is-outlined.is-focused,.button.is-warning.is-outlined.is-hovered,.button.is-warning.is-outlined:focus,.button.is-warning.is-outlined:hover{background-color:#ffdd57;border-color:#ffdd57;color:rgba(0,0,0,.7)}.button.is-warning.is-outlined.is-loading::after{border-color:transparent transparent #ffdd57 #ffdd57!important}.button.is-warning.is-outlined.is-loading.is-focused::after,.button.is-warning.is-outlined.is-loading.is-hovered::after,.button.is-warning.is-outlined.is-loading:focus::after,.button.is-warning.is-outlined.is-loading:hover::after{border-color:transparent transparent rgba(0,0,0,.7) rgba(0,0,0,.7)!important}.button.is-warning.is-outlined[disabled],fieldset[disabled] .button.is-warning.is-outlined{background-color:transparent;border-color:#ffdd57;box-shadow:none;color:#ffdd57}.button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,.7);color:rgba(0,0,0,.7)}.button.is-warning.is-inverted.is-outlined.is-focused,.button.is-warning.is-inverted.is-outlined.is-hovered,.button.is-warning.is-inverted.is-outlined:focus,.button.is-warning.is-inverted.is-outlined:hover{background-color:rgba(0,0,0,.7);color:#ffdd57}.button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after,.button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-warning.is-inverted.is-outlined.is-loading:focus::after,.button.is-warning.is-inverted.is-outlined.is-loading:hover::after{border-color:transparent transparent #ffdd57 #ffdd57!important}.button.is-warning.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,.7);box-shadow:none;color:rgba(0,0,0,.7)}.button.is-warning.is-light{background-color:#fffbeb;color:#947600}.button.is-warning.is-light.is-hovered,.button.is-warning.is-light:hover{background-color:#fff8de;border-color:transparent;color:#947600}.button.is-warning.is-light.is-active,.button.is-warning.is-light:active{background-color:#fff6d1;border-color:transparent;color:#947600}.button.is-danger{background-color:#f14668;border-color:transparent;color:#fff}.button.is-danger.is-hovered,.button.is-danger:hover{background-color:#f03a5f;border-color:transparent;color:#fff}.button.is-danger.is-focused,.button.is-danger:focus{border-color:transparent;color:#fff}.button.is-danger.is-focused:not(:active),.button.is-danger:focus:not(:active){box-shadow:0 0 0 .125em rgba(241,70,104,.25)}.button.is-danger.is-active,.button.is-danger:active{background-color:#ef2e55;border-color:transparent;color:#fff}.button.is-danger[disabled],fieldset[disabled] .button.is-danger{background-color:#f14668;border-color:transparent;box-shadow:none}.button.is-danger.is-inverted{background-color:#fff;color:#f14668}.button.is-danger.is-inverted.is-hovered,.button.is-danger.is-inverted:hover{background-color:#f2f2f2}.button.is-danger.is-inverted[disabled],fieldset[disabled] .button.is-danger.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#f14668}.button.is-danger.is-loading::after{border-color:transparent transparent #fff #fff!important}.button.is-danger.is-outlined{background-color:transparent;border-color:#f14668;color:#f14668}.button.is-danger.is-outlined.is-focused,.button.is-danger.is-outlined.is-hovered,.button.is-danger.is-outlined:focus,.button.is-danger.is-outlined:hover{background-color:#f14668;border-color:#f14668;color:#fff}.button.is-danger.is-outlined.is-loading::after{border-color:transparent transparent #f14668 #f14668!important}.button.is-danger.is-outlined.is-loading.is-focused::after,.button.is-danger.is-outlined.is-loading.is-hovered::after,.button.is-danger.is-outlined.is-loading:focus::after,.button.is-danger.is-outlined.is-loading:hover::after{border-color:transparent transparent #fff #fff!important}.button.is-danger.is-outlined[disabled],fieldset[disabled] .button.is-danger.is-outlined{background-color:transparent;border-color:#f14668;box-shadow:none;color:#f14668}.button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-danger.is-inverted.is-outlined.is-focused,.button.is-danger.is-inverted.is-outlined.is-hovered,.button.is-danger.is-inverted.is-outlined:focus,.button.is-danger.is-inverted.is-outlined:hover{background-color:#fff;color:#f14668}.button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after,.button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-danger.is-inverted.is-outlined.is-loading:focus::after,.button.is-danger.is-inverted.is-outlined.is-loading:hover::after{border-color:transparent transparent #f14668 #f14668!important}.button.is-danger.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-danger.is-light{background-color:#feecf0;color:#cc0f35}.button.is-danger.is-light.is-hovered,.button.is-danger.is-light:hover{background-color:#fde0e6;border-color:transparent;color:#cc0f35}.button.is-danger.is-light.is-active,.button.is-danger.is-light:active{background-color:#fcd4dc;border-color:transparent;color:#cc0f35}.button.is-small{border-radius:2px;font-size:.75rem}.button.is-normal{font-size:1rem}.button.is-medium{font-size:1.25rem}.button.is-large{font-size:1.5rem}.button[disabled],fieldset[disabled] .button{background-color:#fff;border-color:#dbdbdb;box-shadow:none;opacity:.5}.button.is-fullwidth{display:flex;width:100%}.button.is-loading{color:transparent!important;pointer-events:none}.button.is-loading::after{position:absolute;left:calc(50% - (1em / 2));top:calc(50% - (1em / 2));position:absolute!important}.button.is-static{background-color:#f5f5f5;border-color:#dbdbdb;color:#7a7a7a;box-shadow:none;pointer-events:none}.button.is-rounded{border-radius:290486px;padding-left:calc(1em + .25em);padding-right:calc(1em + .25em)}.buttons{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}.buttons .button{margin-bottom:.5rem}.buttons .button:not(:last-child):not(.is-fullwidth){margin-right:.5rem}.buttons:last-child{margin-bottom:-.5rem}.buttons:not(:last-child){margin-bottom:1rem}.buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large){border-radius:2px;font-size:.75rem}.buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large){font-size:1.25rem}.buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium){font-size:1.5rem}.buttons.has-addons .button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.buttons.has-addons .button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0;margin-right:-1px}.buttons.has-addons .button:last-child{margin-right:0}.buttons.has-addons .button.is-hovered,.buttons.has-addons .button:hover{z-index:2}.buttons.has-addons .button.is-active,.buttons.has-addons .button.is-focused,.buttons.has-addons .button.is-selected,.buttons.has-addons .button:active,.buttons.has-addons .button:focus{z-index:3}.buttons.has-addons .button.is-active:hover,.buttons.has-addons .button.is-focused:hover,.buttons.has-addons .button.is-selected:hover,.buttons.has-addons .button:active:hover,.buttons.has-addons .button:focus:hover{z-index:4}.buttons.has-addons .button.is-expanded{flex-grow:1;flex-shrink:1}.buttons.is-centered{justify-content:center}.buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth){margin-left:.25rem;margin-right:.25rem}.buttons.is-right{justify-content:flex-end}.buttons.is-right:not(.has-addons) .button:not(.is-fullwidth){margin-left:.25rem;margin-right:.25rem}.container{flex-grow:1;margin:0 auto;position:relative;width:auto}.container.is-fluid{max-width:none!important;padding-left:32px;padding-right:32px;width:100%}@media screen and (min-width:1024px){.container{max-width:960px}}@media screen and (max-width:1215px){.container.is-widescreen:not(.is-max-desktop){max-width:1152px}}@media screen and (max-width:1407px){.container.is-fullhd:not(.is-max-desktop):not(.is-max-widescreen){max-width:1344px}}@media screen and (min-width:1216px){.container:not(.is-max-desktop){max-width:1152px}}@media screen and (min-width:1408px){.container:not(.is-max-desktop):not(.is-max-widescreen){max-width:1344px}}.content li+li{margin-top:.25em}.content blockquote:not(:last-child),.content dl:not(:last-child),.content ol:not(:last-child),.content p:not(:last-child),.content pre:not(:last-child),.content table:not(:last-child),.content ul:not(:last-child){margin-bottom:1em}.content h1,.content h2,.content h3,.content h4,.content h5,.content h6{color:#363636;font-weight:600;line-height:1.125}.content h1{font-size:2em;margin-bottom:.5em}.content h1:not(:first-child){margin-top:1em}.content h2{font-size:1.75em;margin-bottom:.5714em}.content h2:not(:first-child){margin-top:1.1428em}.content h3{font-size:1.5em;margin-bottom:.6666em}.content h3:not(:first-child){margin-top:1.3333em}.content h4{font-size:1.25em;margin-bottom:.8em}.content h5{font-size:1.125em;margin-bottom:.8888em}.content h6{font-size:1em;margin-bottom:1em}.content blockquote{background-color:#f5f5f5;border-left:5px solid #dbdbdb;padding:1.25em 1.5em}.content ol{list-style-position:outside;margin-left:2em;margin-top:1em}.content ol:not([type]){list-style-type:decimal}.content ol:not([type]).is-lower-alpha{list-style-type:lower-alpha}.content ol:not([type]).is-lower-roman{list-style-type:lower-roman}.content ol:not([type]).is-upper-alpha{list-style-type:upper-alpha}.content ol:not([type]).is-upper-roman{list-style-type:upper-roman}.content ul{list-style:disc outside;margin-left:2em;margin-top:1em}.content ul ul{list-style-type:circle;margin-top:.5em}.content ul ul ul{list-style-type:square}.content dd{margin-left:2em}.content figure{margin-left:2em;margin-right:2em;text-align:center}.content figure:not(:first-child){margin-top:2em}.content figure:not(:last-child){margin-bottom:2em}.content figure img{display:inline-block}.content figure figcaption{font-style:italic}.content pre{-webkit-overflow-scrolling:touch;overflow-x:auto;padding:1.25em 1.5em;white-space:pre;word-wrap:normal}.content sub,.content sup{font-size:75%}.content table{width:100%}.content table td,.content table th{border:1px solid #dbdbdb;border-width:0 0 1px;padding:.5em .75em;vertical-align:top}.content table th{color:#363636}.content table th:not([align]){text-align:inherit}.content table thead td,.content table thead th{border-width:0 0 2px;color:#363636}.content table tfoot td,.content table tfoot th{border-width:2px 0 0;color:#363636}.content table tbody tr:last-child td,.content table tbody tr:last-child th{border-bottom-width:0}.content .tabs li+li{margin-top:0}.content.is-small{font-size:.75rem}.content.is-medium{font-size:1.25rem}.content.is-large{font-size:1.5rem}.icon{align-items:center;display:inline-flex;justify-content:center;height:1.5rem;width:1.5rem}.icon.is-small{height:1rem;width:1rem}.icon.is-medium{height:2rem;width:2rem}.icon.is-large{height:3rem;width:3rem}.image{display:block;position:relative}.image img{display:block;height:auto;width:100%}.image img.is-rounded{border-radius:290486px}.image.is-fullwidth{width:100%}.image.is-16by9 .has-ratio,.image.is-16by9 img,.image.is-1by1 .has-ratio,.image.is-1by1 img,.image.is-1by2 .has-ratio,.image.is-1by2 img,.image.is-1by3 .has-ratio,.image.is-1by3 img,.image.is-2by1 .has-ratio,.image.is-2by1 img,.image.is-2by3 .has-ratio,.image.is-2by3 img,.image.is-3by1 .has-ratio,.image.is-3by1 img,.image.is-3by2 .has-ratio,.image.is-3by2 img,.image.is-3by4 .has-ratio,.image.is-3by4 img,.image.is-3by5 .has-ratio,.image.is-3by5 img,.image.is-4by3 .has-ratio,.image.is-4by3 img,.image.is-4by5 .has-ratio,.image.is-4by5 img,.image.is-5by3 .has-ratio,.image.is-5by3 img,.image.is-5by4 .has-ratio,.image.is-5by4 img,.image.is-9by16 .has-ratio,.image.is-9by16 img,.image.is-square .has-ratio,.image.is-square img{height:100%;width:100%}.image.is-1by1,.image.is-square{padding-top:100%}.image.is-5by4{padding-top:80%}.image.is-4by3{padding-top:75%}.image.is-3by2{padding-top:66.6666%}.image.is-5by3{padding-top:60%}.image.is-16by9{padding-top:56.25%}.image.is-2by1{padding-top:50%}.image.is-3by1{padding-top:33.3333%}.image.is-4by5{padding-top:125%}.image.is-3by4{padding-top:133.3333%}.image.is-2by3{padding-top:150%}.image.is-3by5{padding-top:166.6666%}.image.is-9by16{padding-top:177.7777%}.image.is-1by2{padding-top:200%}.image.is-1by3{padding-top:300%}.image.is-16x16{height:16px;width:16px}.image.is-24x24{height:24px;width:24px}.image.is-32x32{height:32px;width:32px}.image.is-48x48{height:48px;width:48px}.image.is-64x64{height:64px;width:64px}.image.is-96x96{height:96px;width:96px}.image.is-128x128{height:128px;width:128px}.notification{background-color:#f5f5f5;border-radius:4px;position:relative;padding:1.25rem 2.5rem 1.25rem 1.5rem}.notification a:not(.button):not(.dropdown-item){color:currentColor;text-decoration:underline}.notification strong{color:currentColor}.notification code,.notification pre{background:#fff}.notification pre code{background:0 0}.notification>.delete{right:.5rem;position:absolute;top:.5rem}.notification .content,.notification .subtitle,.notification .title{color:currentColor}.notification.is-white{background-color:#fff;color:#0a0a0a}.notification.is-black{background-color:#0a0a0a;color:#fff}.notification.is-light{background-color:#f5f5f5;color:rgba(0,0,0,.7)}.notification.is-dark{background-color:#363636;color:#fff}.notification.is-primary{background-color:#00d1b2;color:#fff}.notification.is-primary.is-light{background-color:#ebfffc;color:#00947e}.notification.is-link{background-color:#3273dc;color:#fff}.notification.is-link.is-light{background-color:#eef3fc;color:#2160c4}.notification.is-info{background-color:#3298dc;color:#fff}.notification.is-info.is-light{background-color:#eef6fc;color:#1d72aa}.notification.is-success{background-color:#48c774;color:#fff}.notification.is-success.is-light{background-color:#effaf3;color:#257942}.notification.is-warning{background-color:#ffdd57;color:rgba(0,0,0,.7)}.notification.is-warning.is-light{background-color:#fffbeb;color:#947600}.notification.is-danger{background-color:#f14668;color:#fff}.notification.is-danger.is-light{background-color:#feecf0;color:#cc0f35}.progress{-moz-appearance:none;-webkit-appearance:none;border:none;border-radius:290486px;display:block;height:1rem;overflow:hidden;padding:0;width:100%}.progress::-webkit-progress-bar{background-color:#ededed}.progress::-webkit-progress-value{background-color:#4a4a4a}.progress::-moz-progress-bar{background-color:#4a4a4a}.progress::-ms-fill{background-color:#4a4a4a;border:none}.progress.is-white::-webkit-progress-value{background-color:#fff}.progress.is-white::-moz-progress-bar{background-color:#fff}.progress.is-white::-ms-fill{background-color:#fff}.progress.is-white:indeterminate{background-image:linear-gradient(to right,#fff 30%,#ededed 30%)}.progress.is-black::-webkit-progress-value{background-color:#0a0a0a}.progress.is-black::-moz-progress-bar{background-color:#0a0a0a}.progress.is-black::-ms-fill{background-color:#0a0a0a}.progress.is-black:indeterminate{background-image:linear-gradient(to right,#0a0a0a 30%,#ededed 30%)}.progress.is-light::-webkit-progress-value{background-color:#f5f5f5}.progress.is-light::-moz-progress-bar{background-color:#f5f5f5}.progress.is-light::-ms-fill{background-color:#f5f5f5}.progress.is-light:indeterminate{background-image:linear-gradient(to right,#f5f5f5 30%,#ededed 30%)}.progress.is-dark::-webkit-progress-value{background-color:#363636}.progress.is-dark::-moz-progress-bar{background-color:#363636}.progress.is-dark::-ms-fill{background-color:#363636}.progress.is-dark:indeterminate{background-image:linear-gradient(to right,#363636 30%,#ededed 30%)}.progress.is-primary::-webkit-progress-value{background-color:#00d1b2}.progress.is-primary::-moz-progress-bar{background-color:#00d1b2}.progress.is-primary::-ms-fill{background-color:#00d1b2}.progress.is-primary:indeterminate{background-image:linear-gradient(to right,#00d1b2 30%,#ededed 30%)}.progress.is-link::-webkit-progress-value{background-color:#3273dc}.progress.is-link::-moz-progress-bar{background-color:#3273dc}.progress.is-link::-ms-fill{background-color:#3273dc}.progress.is-link:indeterminate{background-image:linear-gradient(to right,#3273dc 30%,#ededed 30%)}.progress.is-info::-webkit-progress-value{background-color:#3298dc}.progress.is-info::-moz-progress-bar{background-color:#3298dc}.progress.is-info::-ms-fill{background-color:#3298dc}.progress.is-info:indeterminate{background-image:linear-gradient(to right,#3298dc 30%,#ededed 30%)}.progress.is-success::-webkit-progress-value{background-color:#48c774}.progress.is-success::-moz-progress-bar{background-color:#48c774}.progress.is-success::-ms-fill{background-color:#48c774}.progress.is-success:indeterminate{background-image:linear-gradient(to right,#48c774 30%,#ededed 30%)}.progress.is-warning::-webkit-progress-value{background-color:#ffdd57}.progress.is-warning::-moz-progress-bar{background-color:#ffdd57}.progress.is-warning::-ms-fill{background-color:#ffdd57}.progress.is-warning:indeterminate{background-image:linear-gradient(to right,#ffdd57 30%,#ededed 30%)}.progress.is-danger::-webkit-progress-value{background-color:#f14668}.progress.is-danger::-moz-progress-bar{background-color:#f14668}.progress.is-danger::-ms-fill{background-color:#f14668}.progress.is-danger:indeterminate{background-image:linear-gradient(to right,#f14668 30%,#ededed 30%)}.progress:indeterminate{-webkit-animation-duration:1.5s;animation-duration:1.5s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-name:moveIndeterminate;animation-name:moveIndeterminate;-webkit-animation-timing-function:linear;animation-timing-function:linear;background-color:#ededed;background-image:linear-gradient(to right,#4a4a4a 30%,#ededed 30%);background-position:top left;background-repeat:no-repeat;background-size:150% 150%}.progress:indeterminate::-webkit-progress-bar{background-color:transparent}.progress:indeterminate::-moz-progress-bar{background-color:transparent}.progress:indeterminate::-ms-fill{animation-name:none}.progress.is-small{height:.75rem}.progress.is-medium{height:1.25rem}.progress.is-large{height:1.5rem}@-webkit-keyframes moveIndeterminate{from{background-position:200% 0}to{background-position:-200% 0}}@keyframes moveIndeterminate{from{background-position:200% 0}to{background-position:-200% 0}}.table{background-color:#fff;color:#363636}.table td,.table th{border:1px solid #dbdbdb;border-width:0 0 1px;padding:.5em .75em;vertical-align:top}.table td.is-white,.table th.is-white{background-color:#fff;border-color:#fff;color:#0a0a0a}.table td.is-black,.table th.is-black{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.table td.is-light,.table th.is-light{background-color:#f5f5f5;border-color:#f5f5f5;color:rgba(0,0,0,.7)}.table td.is-dark,.table th.is-dark{background-color:#363636;border-color:#363636;color:#fff}.table td.is-primary,.table th.is-primary{background-color:#00d1b2;border-color:#00d1b2;color:#fff}.table td.is-link,.table th.is-link{background-color:#3273dc;border-color:#3273dc;color:#fff}.table td.is-info,.table th.is-info{background-color:#3298dc;border-color:#3298dc;color:#fff}.table td.is-success,.table th.is-success{background-color:#48c774;border-color:#48c774;color:#fff}.table td.is-warning,.table th.is-warning{background-color:#ffdd57;border-color:#ffdd57;color:rgba(0,0,0,.7)}.table td.is-danger,.table th.is-danger{background-color:#f14668;border-color:#f14668;color:#fff}.table td.is-narrow,.table th.is-narrow{white-space:nowrap;width:1%}.table td.is-selected,.table th.is-selected{background-color:#00d1b2;color:#fff}.table td.is-selected a,.table td.is-selected strong,.table th.is-selected a,.table th.is-selected strong{color:currentColor}.table td.is-vcentered,.table th.is-vcentered{vertical-align:middle}.table th{color:#363636}.table th:not([align]){text-align:inherit}.table tr.is-selected{background-color:#00d1b2;color:#fff}.table tr.is-selected a,.table tr.is-selected strong{color:currentColor}.table tr.is-selected td,.table tr.is-selected th{border-color:#fff;color:currentColor}.table thead{background-color:transparent}.table thead td,.table thead th{border-width:0 0 2px;color:#363636}.table tfoot{background-color:transparent}.table tfoot td,.table tfoot th{border-width:2px 0 0;color:#363636}.table tbody{background-color:transparent}.table tbody tr:last-child td,.table tbody tr:last-child th{border-bottom-width:0}.table.is-bordered td,.table.is-bordered th{border-width:1px}.table.is-bordered tr:last-child td,.table.is-bordered tr:last-child th{border-bottom-width:1px}.table.is-fullwidth{width:100%}.table.is-hoverable tbody tr:not(.is-selected):hover{background-color:#fafafa}.table.is-hoverable.is-striped tbody tr:not(.is-selected):hover{background-color:#fafafa}.table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even){background-color:#f5f5f5}.table.is-narrow td,.table.is-narrow th{padding:.25em .5em}.table.is-striped tbody tr:not(.is-selected):nth-child(even){background-color:#fafafa}.table-container{-webkit-overflow-scrolling:touch;overflow:auto;overflow-y:hidden;max-width:100%}.tags{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}.tags .tag{margin-bottom:.5rem}.tags .tag:not(:last-child){margin-right:.5rem}.tags:last-child{margin-bottom:-.5rem}.tags:not(:last-child){margin-bottom:1rem}.tags.are-medium .tag:not(.is-normal):not(.is-large){font-size:1rem}.tags.are-large .tag:not(.is-normal):not(.is-medium){font-size:1.25rem}.tags.is-centered{justify-content:center}.tags.is-centered .tag{margin-right:.25rem;margin-left:.25rem}.tags.is-right{justify-content:flex-end}.tags.is-right .tag:not(:first-child){margin-left:.5rem}.tags.is-right .tag:not(:last-child){margin-right:0}.tags.has-addons .tag{margin-right:0}.tags.has-addons .tag:not(:first-child){margin-left:0;border-top-left-radius:0;border-bottom-left-radius:0}.tags.has-addons .tag:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.tag:not(body){align-items:center;background-color:#f5f5f5;border-radius:4px;color:#4a4a4a;display:inline-flex;font-size:.75rem;height:2em;justify-content:center;line-height:1.5;padding-left:.75em;padding-right:.75em;white-space:nowrap}.tag:not(body) .delete{margin-left:.25rem;margin-right:-.375rem}.tag:not(body).is-white{background-color:#fff;color:#0a0a0a}.tag:not(body).is-black{background-color:#0a0a0a;color:#fff}.tag:not(body).is-light{background-color:#f5f5f5;color:rgba(0,0,0,.7)}.tag:not(body).is-dark{background-color:#363636;color:#fff}.tag:not(body).is-primary{background-color:#00d1b2;color:#fff}.tag:not(body).is-primary.is-light{background-color:#ebfffc;color:#00947e}.tag:not(body).is-link{background-color:#3273dc;color:#fff}.tag:not(body).is-link.is-light{background-color:#eef3fc;color:#2160c4}.tag:not(body).is-info{background-color:#3298dc;color:#fff}.tag:not(body).is-info.is-light{background-color:#eef6fc;color:#1d72aa}.tag:not(body).is-success{background-color:#48c774;color:#fff}.tag:not(body).is-success.is-light{background-color:#effaf3;color:#257942}.tag:not(body).is-warning{background-color:#ffdd57;color:rgba(0,0,0,.7)}.tag:not(body).is-warning.is-light{background-color:#fffbeb;color:#947600}.tag:not(body).is-danger{background-color:#f14668;color:#fff}.tag:not(body).is-danger.is-light{background-color:#feecf0;color:#cc0f35}.tag:not(body).is-normal{font-size:.75rem}.tag:not(body).is-medium{font-size:1rem}.tag:not(body).is-large{font-size:1.25rem}.tag:not(body) .icon:first-child:not(:last-child){margin-left:-.375em;margin-right:.1875em}.tag:not(body) .icon:last-child:not(:first-child){margin-left:.1875em;margin-right:-.375em}.tag:not(body) .icon:first-child:last-child{margin-left:-.375em;margin-right:-.375em}.tag:not(body).is-delete{margin-left:1px;padding:0;position:relative;width:2em}.tag:not(body).is-delete::after,.tag:not(body).is-delete::before{background-color:currentColor;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}.tag:not(body).is-delete::before{height:1px;width:50%}.tag:not(body).is-delete::after{height:50%;width:1px}.tag:not(body).is-delete:focus,.tag:not(body).is-delete:hover{background-color:#e8e8e8}.tag:not(body).is-delete:active{background-color:#dbdbdb}.tag:not(body).is-rounded{border-radius:290486px}a.tag:hover{text-decoration:underline}.subtitle,.title{word-break:break-word}.subtitle em,.subtitle span,.title em,.title span{font-weight:inherit}.subtitle sub,.title sub{font-size:.75em}.subtitle sup,.title sup{font-size:.75em}.subtitle .tag,.title .tag{vertical-align:middle}.title{color:#363636;font-size:2rem;font-weight:600;line-height:1.125}.title strong{color:inherit;font-weight:inherit}.title+.highlight{margin-top:-.75rem}.title:not(.is-spaced)+.subtitle{margin-top:-1.25rem}.title.is-1{font-size:3rem}.title.is-2{font-size:2.5rem}.title.is-3{font-size:2rem}.title.is-4{font-size:1.5rem}.title.is-5{font-size:1.25rem}.title.is-6{font-size:1rem}.title.is-7{font-size:.75rem}.subtitle{color:#4a4a4a;font-size:1.25rem;font-weight:400;line-height:1.25}.subtitle strong{color:#363636;font-weight:600}.subtitle:not(.is-spaced)+.title{margin-top:-1.25rem}.subtitle.is-1{font-size:3rem}.subtitle.is-2{font-size:2.5rem}.subtitle.is-3{font-size:2rem}.subtitle.is-4{font-size:1.5rem}.subtitle.is-5{font-size:1.25rem}.subtitle.is-6{font-size:1rem}.subtitle.is-7{font-size:.75rem}.heading{display:block;font-size:11px;letter-spacing:1px;margin-bottom:5px;text-transform:uppercase}.highlight{font-weight:400;max-width:100%;overflow:hidden;padding:0}.highlight pre{overflow:auto;max-width:100%}.number{align-items:center;background-color:#f5f5f5;border-radius:290486px;display:inline-flex;font-size:1.25rem;height:2em;justify-content:center;margin-right:1.5rem;min-width:2.5em;padding:.25rem .5rem;text-align:center;vertical-align:top}.input,.select select,.textarea{background-color:#fff;border-color:#dbdbdb;border-radius:4px;color:#363636}.input::-moz-placeholder,.select select::-moz-placeholder,.textarea::-moz-placeholder{color:rgba(54,54,54,.3)}.input::-webkit-input-placeholder,.select select::-webkit-input-placeholder,.textarea::-webkit-input-placeholder{color:rgba(54,54,54,.3)}.input:-moz-placeholder,.select select:-moz-placeholder,.textarea:-moz-placeholder{color:rgba(54,54,54,.3)}.input:-ms-input-placeholder,.select select:-ms-input-placeholder,.textarea:-ms-input-placeholder{color:rgba(54,54,54,.3)}.input:hover,.is-hovered.input,.is-hovered.textarea,.select select.is-hovered,.select select:hover,.textarea:hover{border-color:#b5b5b5}.input:active,.input:focus,.is-active.input,.is-active.textarea,.is-focused.input,.is-focused.textarea,.select select.is-active,.select select.is-focused,.select select:active,.select select:focus,.textarea:active,.textarea:focus{border-color:#3273dc;box-shadow:0 0 0 .125em rgba(50,115,220,.25)}.input[disabled],.select fieldset[disabled] select,.select select[disabled],.textarea[disabled],fieldset[disabled] .input,fieldset[disabled] .select select,fieldset[disabled] .textarea{background-color:#f5f5f5;border-color:#f5f5f5;box-shadow:none;color:#7a7a7a}.input[disabled]::-moz-placeholder,.select fieldset[disabled] select::-moz-placeholder,.select select[disabled]::-moz-placeholder,.textarea[disabled]::-moz-placeholder,fieldset[disabled] .input::-moz-placeholder,fieldset[disabled] .select select::-moz-placeholder,fieldset[disabled] .textarea::-moz-placeholder{color:rgba(122,122,122,.3)}.input[disabled]::-webkit-input-placeholder,.select fieldset[disabled] select::-webkit-input-placeholder,.select select[disabled]::-webkit-input-placeholder,.textarea[disabled]::-webkit-input-placeholder,fieldset[disabled] .input::-webkit-input-placeholder,fieldset[disabled] .select select::-webkit-input-placeholder,fieldset[disabled] .textarea::-webkit-input-placeholder{color:rgba(122,122,122,.3)}.input[disabled]:-moz-placeholder,.select fieldset[disabled] select:-moz-placeholder,.select select[disabled]:-moz-placeholder,.textarea[disabled]:-moz-placeholder,fieldset[disabled] .input:-moz-placeholder,fieldset[disabled] .select select:-moz-placeholder,fieldset[disabled] .textarea:-moz-placeholder{color:rgba(122,122,122,.3)}.input[disabled]:-ms-input-placeholder,.select fieldset[disabled] select:-ms-input-placeholder,.select select[disabled]:-ms-input-placeholder,.textarea[disabled]:-ms-input-placeholder,fieldset[disabled] .input:-ms-input-placeholder,fieldset[disabled] .select select:-ms-input-placeholder,fieldset[disabled] .textarea:-ms-input-placeholder{color:rgba(122,122,122,.3)}.input,.textarea{box-shadow:inset 0 .0625em .125em rgba(10,10,10,.05);max-width:100%;width:100%}.input[readonly],.textarea[readonly]{box-shadow:none}.is-white.input,.is-white.textarea{border-color:#fff}.is-white.input:active,.is-white.input:focus,.is-white.is-active.input,.is-white.is-active.textarea,.is-white.is-focused.input,.is-white.is-focused.textarea,.is-white.textarea:active,.is-white.textarea:focus{box-shadow:0 0 0 .125em rgba(255,255,255,.25)}.is-black.input,.is-black.textarea{border-color:#0a0a0a}.is-black.input:active,.is-black.input:focus,.is-black.is-active.input,.is-black.is-active.textarea,.is-black.is-focused.input,.is-black.is-focused.textarea,.is-black.textarea:active,.is-black.textarea:focus{box-shadow:0 0 0 .125em rgba(10,10,10,.25)}.is-light.input,.is-light.textarea{border-color:#f5f5f5}.is-light.input:active,.is-light.input:focus,.is-light.is-active.input,.is-light.is-active.textarea,.is-light.is-focused.input,.is-light.is-focused.textarea,.is-light.textarea:active,.is-light.textarea:focus{box-shadow:0 0 0 .125em rgba(245,245,245,.25)}.is-dark.input,.is-dark.textarea{border-color:#363636}.is-dark.input:active,.is-dark.input:focus,.is-dark.is-active.input,.is-dark.is-active.textarea,.is-dark.is-focused.input,.is-dark.is-focused.textarea,.is-dark.textarea:active,.is-dark.textarea:focus{box-shadow:0 0 0 .125em rgba(54,54,54,.25)}.is-primary.input,.is-primary.textarea{border-color:#00d1b2}.is-primary.input:active,.is-primary.input:focus,.is-primary.is-active.input,.is-primary.is-active.textarea,.is-primary.is-focused.input,.is-primary.is-focused.textarea,.is-primary.textarea:active,.is-primary.textarea:focus{box-shadow:0 0 0 .125em rgba(0,209,178,.25)}.is-link.input,.is-link.textarea{border-color:#3273dc}.is-link.input:active,.is-link.input:focus,.is-link.is-active.input,.is-link.is-active.textarea,.is-link.is-focused.input,.is-link.is-focused.textarea,.is-link.textarea:active,.is-link.textarea:focus{box-shadow:0 0 0 .125em rgba(50,115,220,.25)}.is-info.input,.is-info.textarea{border-color:#3298dc}.is-info.input:active,.is-info.input:focus,.is-info.is-active.input,.is-info.is-active.textarea,.is-info.is-focused.input,.is-info.is-focused.textarea,.is-info.textarea:active,.is-info.textarea:focus{box-shadow:0 0 0 .125em rgba(50,152,220,.25)}.is-success.input,.is-success.textarea{border-color:#48c774}.is-success.input:active,.is-success.input:focus,.is-success.is-active.input,.is-success.is-active.textarea,.is-success.is-focused.input,.is-success.is-focused.textarea,.is-success.textarea:active,.is-success.textarea:focus{box-shadow:0 0 0 .125em rgba(72,199,116,.25)}.is-warning.input,.is-warning.textarea{border-color:#ffdd57}.is-warning.input:active,.is-warning.input:focus,.is-warning.is-active.input,.is-warning.is-active.textarea,.is-warning.is-focused.input,.is-warning.is-focused.textarea,.is-warning.textarea:active,.is-warning.textarea:focus{box-shadow:0 0 0 .125em rgba(255,221,87,.25)}.is-danger.input,.is-danger.textarea{border-color:#f14668}.is-danger.input:active,.is-danger.input:focus,.is-danger.is-active.input,.is-danger.is-active.textarea,.is-danger.is-focused.input,.is-danger.is-focused.textarea,.is-danger.textarea:active,.is-danger.textarea:focus{box-shadow:0 0 0 .125em rgba(241,70,104,.25)}.is-small.input,.is-small.textarea{border-radius:2px;font-size:.75rem}.is-medium.input,.is-medium.textarea{font-size:1.25rem}.is-large.input,.is-large.textarea{font-size:1.5rem}.is-fullwidth.input,.is-fullwidth.textarea{display:block;width:100%}.is-inline.input,.is-inline.textarea{display:inline;width:auto}.input.is-rounded{border-radius:290486px;padding-left:calc(calc(.75em - 1px) + .375em);padding-right:calc(calc(.75em - 1px) + .375em)}.input.is-static{background-color:transparent;border-color:transparent;box-shadow:none;padding-left:0;padding-right:0}.textarea{display:block;max-width:100%;min-width:100%;padding:calc(.75em - 1px);resize:vertical}.textarea:not([rows]){max-height:40em;min-height:8em}.textarea[rows]{height:initial}.textarea.has-fixed-size{resize:none}.checkbox,.radio{cursor:pointer;display:inline-block;line-height:1.25;position:relative}.checkbox input,.radio input{cursor:pointer}.checkbox:hover,.radio:hover{color:#363636}.checkbox input[disabled],.checkbox[disabled],.radio input[disabled],.radio[disabled],fieldset[disabled] .checkbox,fieldset[disabled] .radio{color:#7a7a7a;cursor:not-allowed}.radio+.radio{margin-left:.5em}.select{display:inline-block;max-width:100%;position:relative;vertical-align:top}.select:not(.is-multiple){height:2.5em}.select:not(.is-multiple):not(.is-loading)::after{border-color:#3273dc;right:1.125em;z-index:4}.select.is-rounded select{border-radius:290486px;padding-left:1em}.select select{cursor:pointer;display:block;font-size:1em;max-width:100%;outline:0}.select select::-ms-expand{display:none}.select select[disabled]:hover,fieldset[disabled] .select select:hover{border-color:#f5f5f5}.select select:not([multiple]){padding-right:2.5em}.select select[multiple]{height:auto;padding:0}.select select[multiple] option{padding:.5em 1em}.select:not(.is-multiple):not(.is-loading):hover::after{border-color:#363636}.select.is-white:not(:hover)::after{border-color:#fff}.select.is-white select{border-color:#fff}.select.is-white select.is-hovered,.select.is-white select:hover{border-color:#f2f2f2}.select.is-white select.is-active,.select.is-white select.is-focused,.select.is-white select:active,.select.is-white select:focus{box-shadow:0 0 0 .125em rgba(255,255,255,.25)}.select.is-black:not(:hover)::after{border-color:#0a0a0a}.select.is-black select{border-color:#0a0a0a}.select.is-black select.is-hovered,.select.is-black select:hover{border-color:#000}.select.is-black select.is-active,.select.is-black select.is-focused,.select.is-black select:active,.select.is-black select:focus{box-shadow:0 0 0 .125em rgba(10,10,10,.25)}.select.is-light:not(:hover)::after{border-color:#f5f5f5}.select.is-light select{border-color:#f5f5f5}.select.is-light select.is-hovered,.select.is-light select:hover{border-color:#e8e8e8}.select.is-light select.is-active,.select.is-light select.is-focused,.select.is-light select:active,.select.is-light select:focus{box-shadow:0 0 0 .125em rgba(245,245,245,.25)}.select.is-dark:not(:hover)::after{border-color:#363636}.select.is-dark select{border-color:#363636}.select.is-dark select.is-hovered,.select.is-dark select:hover{border-color:#292929}.select.is-dark select.is-active,.select.is-dark select.is-focused,.select.is-dark select:active,.select.is-dark select:focus{box-shadow:0 0 0 .125em rgba(54,54,54,.25)}.select.is-primary:not(:hover)::after{border-color:#00d1b2}.select.is-primary select{border-color:#00d1b2}.select.is-primary select.is-hovered,.select.is-primary select:hover{border-color:#00b89c}.select.is-primary select.is-active,.select.is-primary select.is-focused,.select.is-primary select:active,.select.is-primary select:focus{box-shadow:0 0 0 .125em rgba(0,209,178,.25)}.select.is-link:not(:hover)::after{border-color:#3273dc}.select.is-link select{border-color:#3273dc}.select.is-link select.is-hovered,.select.is-link select:hover{border-color:#2366d1}.select.is-link select.is-active,.select.is-link select.is-focused,.select.is-link select:active,.select.is-link select:focus{box-shadow:0 0 0 .125em rgba(50,115,220,.25)}.select.is-info:not(:hover)::after{border-color:#3298dc}.select.is-info select{border-color:#3298dc}.select.is-info select.is-hovered,.select.is-info select:hover{border-color:#238cd1}.select.is-info select.is-active,.select.is-info select.is-focused,.select.is-info select:active,.select.is-info select:focus{box-shadow:0 0 0 .125em rgba(50,152,220,.25)}.select.is-success:not(:hover)::after{border-color:#48c774}.select.is-success select{border-color:#48c774}.select.is-success select.is-hovered,.select.is-success select:hover{border-color:#3abb67}.select.is-success select.is-active,.select.is-success select.is-focused,.select.is-success select:active,.select.is-success select:focus{box-shadow:0 0 0 .125em rgba(72,199,116,.25)}.select.is-warning:not(:hover)::after{border-color:#ffdd57}.select.is-warning select{border-color:#ffdd57}.select.is-warning select.is-hovered,.select.is-warning select:hover{border-color:#ffd83d}.select.is-warning select.is-active,.select.is-warning select.is-focused,.select.is-warning select:active,.select.is-warning select:focus{box-shadow:0 0 0 .125em rgba(255,221,87,.25)}.select.is-danger:not(:hover)::after{border-color:#f14668}.select.is-danger select{border-color:#f14668}.select.is-danger select.is-hovered,.select.is-danger select:hover{border-color:#ef2e55}.select.is-danger select.is-active,.select.is-danger select.is-focused,.select.is-danger select:active,.select.is-danger select:focus{box-shadow:0 0 0 .125em rgba(241,70,104,.25)}.select.is-small{border-radius:2px;font-size:.75rem}.select.is-medium{font-size:1.25rem}.select.is-large{font-size:1.5rem}.select.is-disabled::after{border-color:#7a7a7a}.select.is-fullwidth{width:100%}.select.is-fullwidth select{width:100%}.select.is-loading::after{margin-top:0;position:absolute;right:.625em;top:.625em;transform:none}.select.is-loading.is-small:after{font-size:.75rem}.select.is-loading.is-medium:after{font-size:1.25rem}.select.is-loading.is-large:after{font-size:1.5rem}.file{align-items:stretch;display:flex;justify-content:flex-start;position:relative}.file.is-white .file-cta{background-color:#fff;border-color:transparent;color:#0a0a0a}.file.is-white.is-hovered .file-cta,.file.is-white:hover .file-cta{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}.file.is-white.is-focused .file-cta,.file.is-white:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(255,255,255,.25);color:#0a0a0a}.file.is-white.is-active .file-cta,.file.is-white:active .file-cta{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}.file.is-black .file-cta{background-color:#0a0a0a;border-color:transparent;color:#fff}.file.is-black.is-hovered .file-cta,.file.is-black:hover .file-cta{background-color:#040404;border-color:transparent;color:#fff}.file.is-black.is-focused .file-cta,.file.is-black:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(10,10,10,.25);color:#fff}.file.is-black.is-active .file-cta,.file.is-black:active .file-cta{background-color:#000;border-color:transparent;color:#fff}.file.is-light .file-cta{background-color:#f5f5f5;border-color:transparent;color:rgba(0,0,0,.7)}.file.is-light.is-hovered .file-cta,.file.is-light:hover .file-cta{background-color:#eee;border-color:transparent;color:rgba(0,0,0,.7)}.file.is-light.is-focused .file-cta,.file.is-light:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(245,245,245,.25);color:rgba(0,0,0,.7)}.file.is-light.is-active .file-cta,.file.is-light:active .file-cta{background-color:#e8e8e8;border-color:transparent;color:rgba(0,0,0,.7)}.file.is-dark .file-cta{background-color:#363636;border-color:transparent;color:#fff}.file.is-dark.is-hovered .file-cta,.file.is-dark:hover .file-cta{background-color:#2f2f2f;border-color:transparent;color:#fff}.file.is-dark.is-focused .file-cta,.file.is-dark:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(54,54,54,.25);color:#fff}.file.is-dark.is-active .file-cta,.file.is-dark:active .file-cta{background-color:#292929;border-color:transparent;color:#fff}.file.is-primary .file-cta{background-color:#00d1b2;border-color:transparent;color:#fff}.file.is-primary.is-hovered .file-cta,.file.is-primary:hover .file-cta{background-color:#00c4a7;border-color:transparent;color:#fff}.file.is-primary.is-focused .file-cta,.file.is-primary:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(0,209,178,.25);color:#fff}.file.is-primary.is-active .file-cta,.file.is-primary:active .file-cta{background-color:#00b89c;border-color:transparent;color:#fff}.file.is-link .file-cta{background-color:#3273dc;border-color:transparent;color:#fff}.file.is-link.is-hovered .file-cta,.file.is-link:hover .file-cta{background-color:#276cda;border-color:transparent;color:#fff}.file.is-link.is-focused .file-cta,.file.is-link:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(50,115,220,.25);color:#fff}.file.is-link.is-active .file-cta,.file.is-link:active .file-cta{background-color:#2366d1;border-color:transparent;color:#fff}.file.is-info .file-cta{background-color:#3298dc;border-color:transparent;color:#fff}.file.is-info.is-hovered .file-cta,.file.is-info:hover .file-cta{background-color:#2793da;border-color:transparent;color:#fff}.file.is-info.is-focused .file-cta,.file.is-info:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(50,152,220,.25);color:#fff}.file.is-info.is-active .file-cta,.file.is-info:active .file-cta{background-color:#238cd1;border-color:transparent;color:#fff}.file.is-success .file-cta{background-color:#48c774;border-color:transparent;color:#fff}.file.is-success.is-hovered .file-cta,.file.is-success:hover .file-cta{background-color:#3ec46d;border-color:transparent;color:#fff}.file.is-success.is-focused .file-cta,.file.is-success:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(72,199,116,.25);color:#fff}.file.is-success.is-active .file-cta,.file.is-success:active .file-cta{background-color:#3abb67;border-color:transparent;color:#fff}.file.is-warning .file-cta{background-color:#ffdd57;border-color:transparent;color:rgba(0,0,0,.7)}.file.is-warning.is-hovered .file-cta,.file.is-warning:hover .file-cta{background-color:#ffdb4a;border-color:transparent;color:rgba(0,0,0,.7)}.file.is-warning.is-focused .file-cta,.file.is-warning:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(255,221,87,.25);color:rgba(0,0,0,.7)}.file.is-warning.is-active .file-cta,.file.is-warning:active .file-cta{background-color:#ffd83d;border-color:transparent;color:rgba(0,0,0,.7)}.file.is-danger .file-cta{background-color:#f14668;border-color:transparent;color:#fff}.file.is-danger.is-hovered .file-cta,.file.is-danger:hover .file-cta{background-color:#f03a5f;border-color:transparent;color:#fff}.file.is-danger.is-focused .file-cta,.file.is-danger:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(241,70,104,.25);color:#fff}.file.is-danger.is-active .file-cta,.file.is-danger:active .file-cta{background-color:#ef2e55;border-color:transparent;color:#fff}.file.is-small{font-size:.75rem}.file.is-medium{font-size:1.25rem}.file.is-medium .file-icon .fa{font-size:21px}.file.is-large{font-size:1.5rem}.file.is-large .file-icon .fa{font-size:28px}.file.has-name .file-cta{border-bottom-right-radius:0;border-top-right-radius:0}.file.has-name .file-name{border-bottom-left-radius:0;border-top-left-radius:0}.file.has-name.is-empty .file-cta{border-radius:4px}.file.has-name.is-empty .file-name{display:none}.file.is-boxed .file-label{flex-direction:column}.file.is-boxed .file-cta{flex-direction:column;height:auto;padding:1em 3em}.file.is-boxed .file-name{border-width:0 1px 1px}.file.is-boxed .file-icon{height:1.5em;width:1.5em}.file.is-boxed .file-icon .fa{font-size:21px}.file.is-boxed.is-small .file-icon .fa{font-size:14px}.file.is-boxed.is-medium .file-icon .fa{font-size:28px}.file.is-boxed.is-large .file-icon .fa{font-size:35px}.file.is-boxed.has-name .file-cta{border-radius:4px 4px 0 0}.file.is-boxed.has-name .file-name{border-radius:0 0 4px 4px;border-width:0 1px 1px}.file.is-centered{justify-content:center}.file.is-fullwidth .file-label{width:100%}.file.is-fullwidth .file-name{flex-grow:1;max-width:none}.file.is-right{justify-content:flex-end}.file.is-right .file-cta{border-radius:0 4px 4px 0}.file.is-right .file-name{border-radius:4px 0 0 4px;border-width:1px 0 1px 1px;order:-1}.file-label{align-items:stretch;display:flex;cursor:pointer;justify-content:flex-start;overflow:hidden;position:relative}.file-label:hover .file-cta{background-color:#eee;color:#363636}.file-label:hover .file-name{border-color:#d5d5d5}.file-label:active .file-cta{background-color:#e8e8e8;color:#363636}.file-label:active .file-name{border-color:#cfcfcf}.file-input{height:100%;left:0;opacity:0;outline:0;position:absolute;top:0;width:100%}.file-cta,.file-name{border-color:#dbdbdb;border-radius:4px;font-size:1em;padding-left:1em;padding-right:1em;white-space:nowrap}.file-cta{background-color:#f5f5f5;color:#4a4a4a}.file-name{border-color:#dbdbdb;border-style:solid;border-width:1px 1px 1px 0;display:block;max-width:16em;overflow:hidden;text-align:inherit;text-overflow:ellipsis}.file-icon{align-items:center;display:flex;height:1em;justify-content:center;margin-right:.5em;width:1em}.file-icon .fa{font-size:14px}.label{color:#363636;display:block;font-size:1rem;font-weight:700}.label:not(:last-child){margin-bottom:.5em}.label.is-small{font-size:.75rem}.label.is-medium{font-size:1.25rem}.label.is-large{font-size:1.5rem}.help{display:block;font-size:.75rem;margin-top:.25rem}.help.is-white{color:#fff}.help.is-black{color:#0a0a0a}.help.is-light{color:#f5f5f5}.help.is-dark{color:#363636}.help.is-primary{color:#00d1b2}.help.is-link{color:#3273dc}.help.is-info{color:#3298dc}.help.is-success{color:#48c774}.help.is-warning{color:#ffdd57}.help.is-danger{color:#f14668}.field:not(:last-child){margin-bottom:.75rem}.field.has-addons{display:flex;justify-content:flex-start}.field.has-addons .control:not(:last-child){margin-right:-1px}.field.has-addons .control:not(:first-child):not(:last-child) .button,.field.has-addons .control:not(:first-child):not(:last-child) .input,.field.has-addons .control:not(:first-child):not(:last-child) .select select{border-radius:0}.field.has-addons .control:first-child:not(:only-child) .button,.field.has-addons .control:first-child:not(:only-child) .input,.field.has-addons .control:first-child:not(:only-child) .select select{border-bottom-right-radius:0;border-top-right-radius:0}.field.has-addons .control:last-child:not(:only-child) .button,.field.has-addons .control:last-child:not(:only-child) .input,.field.has-addons .control:last-child:not(:only-child) .select select{border-bottom-left-radius:0;border-top-left-radius:0}.field.has-addons .control .button:not([disabled]).is-hovered,.field.has-addons .control .button:not([disabled]):hover,.field.has-addons .control .input:not([disabled]).is-hovered,.field.has-addons .control .input:not([disabled]):hover,.field.has-addons .control .select select:not([disabled]).is-hovered,.field.has-addons .control .select select:not([disabled]):hover{z-index:2}.field.has-addons .control .button:not([disabled]).is-active,.field.has-addons .control .button:not([disabled]).is-focused,.field.has-addons .control .button:not([disabled]):active,.field.has-addons .control .button:not([disabled]):focus,.field.has-addons .control .input:not([disabled]).is-active,.field.has-addons .control .input:not([disabled]).is-focused,.field.has-addons .control .input:not([disabled]):active,.field.has-addons .control .input:not([disabled]):focus,.field.has-addons .control .select select:not([disabled]).is-active,.field.has-addons .control .select select:not([disabled]).is-focused,.field.has-addons .control .select select:not([disabled]):active,.field.has-addons .control .select select:not([disabled]):focus{z-index:3}.field.has-addons .control .button:not([disabled]).is-active:hover,.field.has-addons .control .button:not([disabled]).is-focused:hover,.field.has-addons .control .button:not([disabled]):active:hover,.field.has-addons .control .button:not([disabled]):focus:hover,.field.has-addons .control .input:not([disabled]).is-active:hover,.field.has-addons .control .input:not([disabled]).is-focused:hover,.field.has-addons .control .input:not([disabled]):active:hover,.field.has-addons .control .input:not([disabled]):focus:hover,.field.has-addons .control .select select:not([disabled]).is-active:hover,.field.has-addons .control .select select:not([disabled]).is-focused:hover,.field.has-addons .control .select select:not([disabled]):active:hover,.field.has-addons .control .select select:not([disabled]):focus:hover{z-index:4}.field.has-addons .control.is-expanded{flex-grow:1;flex-shrink:1}.field.has-addons.has-addons-centered{justify-content:center}.field.has-addons.has-addons-right{justify-content:flex-end}.field.has-addons.has-addons-fullwidth .control{flex-grow:1;flex-shrink:0}.field.is-grouped{display:flex;justify-content:flex-start}.field.is-grouped>.control{flex-shrink:0}.field.is-grouped>.control:not(:last-child){margin-bottom:0;margin-right:.75rem}.field.is-grouped>.control.is-expanded{flex-grow:1;flex-shrink:1}.field.is-grouped.is-grouped-centered{justify-content:center}.field.is-grouped.is-grouped-right{justify-content:flex-end}.field.is-grouped.is-grouped-multiline{flex-wrap:wrap}.field.is-grouped.is-grouped-multiline>.control:last-child,.field.is-grouped.is-grouped-multiline>.control:not(:last-child){margin-bottom:.75rem}.field.is-grouped.is-grouped-multiline:last-child{margin-bottom:-.75rem}.field.is-grouped.is-grouped-multiline:not(:last-child){margin-bottom:0}@media screen and (min-width:769px),print{.field.is-horizontal{display:flex}}.field-label .label{font-size:inherit}@media screen and (max-width:768px){.field-label{margin-bottom:.5rem}}@media screen and (min-width:769px),print{.field-label{flex-basis:0;flex-grow:1;flex-shrink:0;margin-right:1.5rem;text-align:right}.field-label.is-small{font-size:.75rem;padding-top:.375em}.field-label.is-normal{padding-top:.375em}.field-label.is-medium{font-size:1.25rem;padding-top:.375em}.field-label.is-large{font-size:1.5rem;padding-top:.375em}}.field-body .field .field{margin-bottom:0}@media screen and (min-width:769px),print{.field-body{display:flex;flex-basis:0;flex-grow:5;flex-shrink:1}.field-body .field{margin-bottom:0}.field-body>.field{flex-shrink:1}.field-body>.field:not(.is-narrow){flex-grow:1}.field-body>.field:not(:last-child){margin-right:.75rem}}.control{box-sizing:border-box;clear:both;font-size:1rem;position:relative;text-align:inherit}.control.has-icons-left .input:focus~.icon,.control.has-icons-left .select:focus~.icon,.control.has-icons-right .input:focus~.icon,.control.has-icons-right .select:focus~.icon{color:#4a4a4a}.control.has-icons-left .input.is-small~.icon,.control.has-icons-left .select.is-small~.icon,.control.has-icons-right .input.is-small~.icon,.control.has-icons-right .select.is-small~.icon{font-size:.75rem}.control.has-icons-left .input.is-medium~.icon,.control.has-icons-left .select.is-medium~.icon,.control.has-icons-right .input.is-medium~.icon,.control.has-icons-right .select.is-medium~.icon{font-size:1.25rem}.control.has-icons-left .input.is-large~.icon,.control.has-icons-left .select.is-large~.icon,.control.has-icons-right .input.is-large~.icon,.control.has-icons-right .select.is-large~.icon{font-size:1.5rem}.control.has-icons-left .icon,.control.has-icons-right .icon{color:#dbdbdb;height:2.5em;pointer-events:none;position:absolute;top:0;width:2.5em;z-index:4}.control.has-icons-left .input,.control.has-icons-left .select select{padding-left:2.5em}.control.has-icons-left .icon.is-left{left:0}.control.has-icons-right .input,.control.has-icons-right .select select{padding-right:2.5em}.control.has-icons-right .icon.is-right{right:0}.control.is-loading::after{position:absolute!important;right:.625em;top:.625em;z-index:4}.control.is-loading.is-small:after{font-size:.75rem}.control.is-loading.is-medium:after{font-size:1.25rem}.control.is-loading.is-large:after{font-size:1.5rem}.breadcrumb{font-size:1rem;white-space:nowrap}.breadcrumb a{align-items:center;color:#3273dc;display:flex;justify-content:center;padding:0 .75em}.breadcrumb a:hover{color:#363636}.breadcrumb li{align-items:center;display:flex}.breadcrumb li:first-child a{padding-left:0}.breadcrumb li.is-active a{color:#363636;cursor:default;pointer-events:none}.breadcrumb li+li::before{color:#b5b5b5;content:"\0002f"}.breadcrumb ol,.breadcrumb ul{align-items:flex-start;display:flex;flex-wrap:wrap;justify-content:flex-start}.breadcrumb .icon:first-child{margin-right:.5em}.breadcrumb .icon:last-child{margin-left:.5em}.breadcrumb.is-centered ol,.breadcrumb.is-centered ul{justify-content:center}.breadcrumb.is-right ol,.breadcrumb.is-right ul{justify-content:flex-end}.breadcrumb.is-small{font-size:.75rem}.breadcrumb.is-medium{font-size:1.25rem}.breadcrumb.is-large{font-size:1.5rem}.breadcrumb.has-arrow-separator li+li::before{content:"\02192"}.breadcrumb.has-bullet-separator li+li::before{content:"\02022"}.breadcrumb.has-dot-separator li+li::before{content:"\000b7"}.breadcrumb.has-succeeds-separator li+li::before{content:"\0227B"}.card{background-color:#fff;border-radius:.25rem;box-shadow:0 .5em 1em -.125em rgba(10,10,10,.1),0 0 0 1px rgba(10,10,10,.02);color:#4a4a4a;max-width:100%;overflow:hidden;position:relative}.card-header{background-color:transparent;align-items:stretch;box-shadow:0 .125em .25em rgba(10,10,10,.1);display:flex}.card-header-title{align-items:center;color:#363636;display:flex;flex-grow:1;font-weight:700;padding:.75rem 1rem}.card-header-title.is-centered{justify-content:center}.card-header-icon{align-items:center;cursor:pointer;display:flex;justify-content:center;padding:.75rem 1rem}.card-image{display:block;position:relative}.card-content{background-color:transparent;padding:1.5rem}.card-footer{background-color:transparent;border-top:1px solid #ededed;align-items:stretch;display:flex}.card-footer-item{align-items:center;display:flex;flex-basis:0;flex-grow:1;flex-shrink:0;justify-content:center;padding:.75rem}.card-footer-item:not(:last-child){border-right:1px solid #ededed}.card .media:not(:last-child){margin-bottom:1.5rem}.dropdown{display:inline-flex;position:relative;vertical-align:top}.dropdown.is-active .dropdown-menu,.dropdown.is-hoverable:hover .dropdown-menu{display:block}.dropdown.is-right .dropdown-menu{left:auto;right:0}.dropdown.is-up .dropdown-menu{bottom:100%;padding-bottom:4px;padding-top:initial;top:auto}.dropdown-menu{display:none;left:0;min-width:12rem;padding-top:4px;position:absolute;top:100%;z-index:20}.dropdown-content{background-color:#fff;border-radius:4px;box-shadow:0 .5em 1em -.125em rgba(10,10,10,.1),0 0 0 1px rgba(10,10,10,.02);padding-bottom:.5rem;padding-top:.5rem}.dropdown-item{color:#4a4a4a;display:block;font-size:.875rem;line-height:1.5;padding:.375rem 1rem;position:relative}a.dropdown-item,button.dropdown-item{padding-right:3rem;text-align:inherit;white-space:nowrap;width:100%}a.dropdown-item:hover,button.dropdown-item:hover{background-color:#f5f5f5;color:#0a0a0a}a.dropdown-item.is-active,button.dropdown-item.is-active{background-color:#3273dc;color:#fff}.dropdown-divider{background-color:#ededed;border:none;display:block;height:1px;margin:.5rem 0}.level{align-items:center;justify-content:space-between}.level code{border-radius:4px}.level img{display:inline-block;vertical-align:top}.level.is-mobile{display:flex}.level.is-mobile .level-left,.level.is-mobile .level-right{display:flex}.level.is-mobile .level-left+.level-right{margin-top:0}.level.is-mobile .level-item:not(:last-child){margin-bottom:0;margin-right:.75rem}.level.is-mobile .level-item:not(.is-narrow){flex-grow:1}@media screen and (min-width:769px),print{.level{display:flex}.level>.level-item:not(.is-narrow){flex-grow:1}}.level-item{align-items:center;display:flex;flex-basis:auto;flex-grow:0;flex-shrink:0;justify-content:center}.level-item .subtitle,.level-item .title{margin-bottom:0}@media screen and (max-width:768px){.level-item:not(:last-child){margin-bottom:.75rem}}.level-left,.level-right{flex-basis:auto;flex-grow:0;flex-shrink:0}.level-left .level-item.is-flexible,.level-right .level-item.is-flexible{flex-grow:1}@media screen and (min-width:769px),print{.level-left .level-item:not(:last-child),.level-right .level-item:not(:last-child){margin-right:.75rem}}.level-left{align-items:center;justify-content:flex-start}@media screen and (max-width:768px){.level-left+.level-right{margin-top:1.5rem}}@media screen and (min-width:769px),print{.level-left{display:flex}}.level-right{align-items:center;justify-content:flex-end}@media screen and (min-width:769px),print{.level-right{display:flex}}.media{align-items:flex-start;display:flex;text-align:inherit}.media .content:not(:last-child){margin-bottom:.75rem}.media .media{border-top:1px solid rgba(219,219,219,.5);display:flex;padding-top:.75rem}.media .media .content:not(:last-child),.media .media .control:not(:last-child){margin-bottom:.5rem}.media .media .media{padding-top:.5rem}.media .media .media+.media{margin-top:.5rem}.media+.media{border-top:1px solid rgba(219,219,219,.5);margin-top:1rem;padding-top:1rem}.media.is-large+.media{margin-top:1.5rem;padding-top:1.5rem}.media-left,.media-right{flex-basis:auto;flex-grow:0;flex-shrink:0}.media-left{margin-right:1rem}.media-right{margin-left:1rem}.media-content{flex-basis:auto;flex-grow:1;flex-shrink:1;text-align:inherit}@media screen and (max-width:768px){.media-content{overflow-x:auto}}.menu{font-size:1rem}.menu.is-small{font-size:.75rem}.menu.is-medium{font-size:1.25rem}.menu.is-large{font-size:1.5rem}.menu-list{line-height:1.25}.menu-list a{border-radius:2px;color:#4a4a4a;display:block;padding:.5em .75em}.menu-list a:hover{background-color:#f5f5f5;color:#363636}.menu-list a.is-active{background-color:#3273dc;color:#fff}.menu-list li ul{border-left:1px solid #dbdbdb;margin:.75em;padding-left:.75em}.menu-label{color:#7a7a7a;font-size:.75em;letter-spacing:.1em;text-transform:uppercase}.menu-label:not(:first-child){margin-top:1em}.menu-label:not(:last-child){margin-bottom:1em}.message{background-color:#f5f5f5;border-radius:4px;font-size:1rem}.message strong{color:currentColor}.message a:not(.button):not(.tag):not(.dropdown-item){color:currentColor;text-decoration:underline}.message.is-small{font-size:.75rem}.message.is-medium{font-size:1.25rem}.message.is-large{font-size:1.5rem}.message.is-white{background-color:#fff}.message.is-white .message-header{background-color:#fff;color:#0a0a0a}.message.is-white .message-body{border-color:#fff}.message.is-black{background-color:#fafafa}.message.is-black .message-header{background-color:#0a0a0a;color:#fff}.message.is-black .message-body{border-color:#0a0a0a}.message.is-light{background-color:#fafafa}.message.is-light .message-header{background-color:#f5f5f5;color:rgba(0,0,0,.7)}.message.is-light .message-body{border-color:#f5f5f5}.message.is-dark{background-color:#fafafa}.message.is-dark .message-header{background-color:#363636;color:#fff}.message.is-dark .message-body{border-color:#363636}.message.is-primary{background-color:#ebfffc}.message.is-primary .message-header{background-color:#00d1b2;color:#fff}.message.is-primary .message-body{border-color:#00d1b2;color:#00947e}.message.is-link{background-color:#eef3fc}.message.is-link .message-header{background-color:#3273dc;color:#fff}.message.is-link .message-body{border-color:#3273dc;color:#2160c4}.message.is-info{background-color:#eef6fc}.message.is-info .message-header{background-color:#3298dc;color:#fff}.message.is-info .message-body{border-color:#3298dc;color:#1d72aa}.message.is-success{background-color:#effaf3}.message.is-success .message-header{background-color:#48c774;color:#fff}.message.is-success .message-body{border-color:#48c774;color:#257942}.message.is-warning{background-color:#fffbeb}.message.is-warning .message-header{background-color:#ffdd57;color:rgba(0,0,0,.7)}.message.is-warning .message-body{border-color:#ffdd57;color:#947600}.message.is-danger{background-color:#feecf0}.message.is-danger .message-header{background-color:#f14668;color:#fff}.message.is-danger .message-body{border-color:#f14668;color:#cc0f35}.message-header{align-items:center;background-color:#4a4a4a;border-radius:4px 4px 0 0;color:#fff;display:flex;font-weight:700;justify-content:space-between;line-height:1.25;padding:.75em 1em;position:relative}.message-header .delete{flex-grow:0;flex-shrink:0;margin-left:.75em}.message-header+.message-body{border-width:0;border-top-left-radius:0;border-top-right-radius:0}.message-body{border-color:#dbdbdb;border-radius:4px;border-style:solid;border-width:0 0 0 4px;color:#4a4a4a;padding:1.25em 1.5em}.message-body code,.message-body pre{background-color:#fff}.message-body pre code{background-color:transparent}.modal{align-items:center;display:none;flex-direction:column;justify-content:center;overflow:hidden;position:fixed;z-index:40}.modal.is-active{display:flex}.modal-background{background-color:rgba(10,10,10,.86)}.modal-card,.modal-content{margin:0 20px;max-height:calc(100vh - 160px);overflow:auto;position:relative;width:100%}@media screen and (min-width:769px){.modal-card,.modal-content{margin:0 auto;max-height:calc(100vh - 40px);width:640px}}.modal-close{background:0 0;height:40px;position:fixed;right:20px;top:20px;width:40px}.modal-card{display:flex;flex-direction:column;max-height:calc(100vh - 40px);overflow:hidden;-ms-overflow-y:visible}.modal-card-foot,.modal-card-head{align-items:center;background-color:#f5f5f5;display:flex;flex-shrink:0;justify-content:flex-start;padding:20px;position:relative}.modal-card-head{border-bottom:1px solid #dbdbdb;border-top-left-radius:6px;border-top-right-radius:6px}.modal-card-title{color:#363636;flex-grow:1;flex-shrink:0;font-size:1.5rem;line-height:1}.modal-card-foot{border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-top:1px solid #dbdbdb}.modal-card-foot .button:not(:last-child){margin-right:.5em}.modal-card-body{-webkit-overflow-scrolling:touch;background-color:#fff;flex-grow:1;flex-shrink:1;overflow:auto;padding:20px}.navbar{background-color:#fff;min-height:3.25rem;position:relative;z-index:30}.navbar.is-white{background-color:#fff;color:#0a0a0a}.navbar.is-white .navbar-brand .navbar-link,.navbar.is-white .navbar-brand>.navbar-item{color:#0a0a0a}.navbar.is-white .navbar-brand .navbar-link.is-active,.navbar.is-white .navbar-brand .navbar-link:focus,.navbar.is-white .navbar-brand .navbar-link:hover,.navbar.is-white .navbar-brand>a.navbar-item.is-active,.navbar.is-white .navbar-brand>a.navbar-item:focus,.navbar.is-white .navbar-brand>a.navbar-item:hover{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-brand .navbar-link::after{border-color:#0a0a0a}.navbar.is-white .navbar-burger{color:#0a0a0a}@media screen and (min-width:1024px){.navbar.is-white .navbar-end .navbar-link,.navbar.is-white .navbar-end>.navbar-item,.navbar.is-white .navbar-start .navbar-link,.navbar.is-white .navbar-start>.navbar-item{color:#0a0a0a}.navbar.is-white .navbar-end .navbar-link.is-active,.navbar.is-white .navbar-end .navbar-link:focus,.navbar.is-white .navbar-end .navbar-link:hover,.navbar.is-white .navbar-end>a.navbar-item.is-active,.navbar.is-white .navbar-end>a.navbar-item:focus,.navbar.is-white .navbar-end>a.navbar-item:hover,.navbar.is-white .navbar-start .navbar-link.is-active,.navbar.is-white .navbar-start .navbar-link:focus,.navbar.is-white .navbar-start .navbar-link:hover,.navbar.is-white .navbar-start>a.navbar-item.is-active,.navbar.is-white .navbar-start>a.navbar-item:focus,.navbar.is-white .navbar-start>a.navbar-item:hover{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-end .navbar-link::after,.navbar.is-white .navbar-start .navbar-link::after{border-color:#0a0a0a}.navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-white .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-white .navbar-item.has-dropdown:hover .navbar-link{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-dropdown a.navbar-item.is-active{background-color:#fff;color:#0a0a0a}}.navbar.is-black{background-color:#0a0a0a;color:#fff}.navbar.is-black .navbar-brand .navbar-link,.navbar.is-black .navbar-brand>.navbar-item{color:#fff}.navbar.is-black .navbar-brand .navbar-link.is-active,.navbar.is-black .navbar-brand .navbar-link:focus,.navbar.is-black .navbar-brand .navbar-link:hover,.navbar.is-black .navbar-brand>a.navbar-item.is-active,.navbar.is-black .navbar-brand>a.navbar-item:focus,.navbar.is-black .navbar-brand>a.navbar-item:hover{background-color:#000;color:#fff}.navbar.is-black .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-black .navbar-burger{color:#fff}@media screen and (min-width:1024px){.navbar.is-black .navbar-end .navbar-link,.navbar.is-black .navbar-end>.navbar-item,.navbar.is-black .navbar-start .navbar-link,.navbar.is-black .navbar-start>.navbar-item{color:#fff}.navbar.is-black .navbar-end .navbar-link.is-active,.navbar.is-black .navbar-end .navbar-link:focus,.navbar.is-black .navbar-end .navbar-link:hover,.navbar.is-black .navbar-end>a.navbar-item.is-active,.navbar.is-black .navbar-end>a.navbar-item:focus,.navbar.is-black .navbar-end>a.navbar-item:hover,.navbar.is-black .navbar-start .navbar-link.is-active,.navbar.is-black .navbar-start .navbar-link:focus,.navbar.is-black .navbar-start .navbar-link:hover,.navbar.is-black .navbar-start>a.navbar-item.is-active,.navbar.is-black .navbar-start>a.navbar-item:focus,.navbar.is-black .navbar-start>a.navbar-item:hover{background-color:#000;color:#fff}.navbar.is-black .navbar-end .navbar-link::after,.navbar.is-black .navbar-start .navbar-link::after{border-color:#fff}.navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-black .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-black .navbar-item.has-dropdown:hover .navbar-link{background-color:#000;color:#fff}.navbar.is-black .navbar-dropdown a.navbar-item.is-active{background-color:#0a0a0a;color:#fff}}.navbar.is-light{background-color:#f5f5f5;color:rgba(0,0,0,.7)}.navbar.is-light .navbar-brand .navbar-link,.navbar.is-light .navbar-brand>.navbar-item{color:rgba(0,0,0,.7)}.navbar.is-light .navbar-brand .navbar-link.is-active,.navbar.is-light .navbar-brand .navbar-link:focus,.navbar.is-light .navbar-brand .navbar-link:hover,.navbar.is-light .navbar-brand>a.navbar-item.is-active,.navbar.is-light .navbar-brand>a.navbar-item:focus,.navbar.is-light .navbar-brand>a.navbar-item:hover{background-color:#e8e8e8;color:rgba(0,0,0,.7)}.navbar.is-light .navbar-brand .navbar-link::after{border-color:rgba(0,0,0,.7)}.navbar.is-light .navbar-burger{color:rgba(0,0,0,.7)}@media screen and (min-width:1024px){.navbar.is-light .navbar-end .navbar-link,.navbar.is-light .navbar-end>.navbar-item,.navbar.is-light .navbar-start .navbar-link,.navbar.is-light .navbar-start>.navbar-item{color:rgba(0,0,0,.7)}.navbar.is-light .navbar-end .navbar-link.is-active,.navbar.is-light .navbar-end .navbar-link:focus,.navbar.is-light .navbar-end .navbar-link:hover,.navbar.is-light .navbar-end>a.navbar-item.is-active,.navbar.is-light .navbar-end>a.navbar-item:focus,.navbar.is-light .navbar-end>a.navbar-item:hover,.navbar.is-light .navbar-start .navbar-link.is-active,.navbar.is-light .navbar-start .navbar-link:focus,.navbar.is-light .navbar-start .navbar-link:hover,.navbar.is-light .navbar-start>a.navbar-item.is-active,.navbar.is-light .navbar-start>a.navbar-item:focus,.navbar.is-light .navbar-start>a.navbar-item:hover{background-color:#e8e8e8;color:rgba(0,0,0,.7)}.navbar.is-light .navbar-end .navbar-link::after,.navbar.is-light .navbar-start .navbar-link::after{border-color:rgba(0,0,0,.7)}.navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-light .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-light .navbar-item.has-dropdown:hover .navbar-link{background-color:#e8e8e8;color:rgba(0,0,0,.7)}.navbar.is-light .navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:rgba(0,0,0,.7)}}.navbar.is-dark{background-color:#363636;color:#fff}.navbar.is-dark .navbar-brand .navbar-link,.navbar.is-dark .navbar-brand>.navbar-item{color:#fff}.navbar.is-dark .navbar-brand .navbar-link.is-active,.navbar.is-dark .navbar-brand .navbar-link:focus,.navbar.is-dark .navbar-brand .navbar-link:hover,.navbar.is-dark .navbar-brand>a.navbar-item.is-active,.navbar.is-dark .navbar-brand>a.navbar-item:focus,.navbar.is-dark .navbar-brand>a.navbar-item:hover{background-color:#292929;color:#fff}.navbar.is-dark .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-dark .navbar-burger{color:#fff}@media screen and (min-width:1024px){.navbar.is-dark .navbar-end .navbar-link,.navbar.is-dark .navbar-end>.navbar-item,.navbar.is-dark .navbar-start .navbar-link,.navbar.is-dark .navbar-start>.navbar-item{color:#fff}.navbar.is-dark .navbar-end .navbar-link.is-active,.navbar.is-dark .navbar-end .navbar-link:focus,.navbar.is-dark .navbar-end .navbar-link:hover,.navbar.is-dark .navbar-end>a.navbar-item.is-active,.navbar.is-dark .navbar-end>a.navbar-item:focus,.navbar.is-dark .navbar-end>a.navbar-item:hover,.navbar.is-dark .navbar-start .navbar-link.is-active,.navbar.is-dark .navbar-start .navbar-link:focus,.navbar.is-dark .navbar-start .navbar-link:hover,.navbar.is-dark .navbar-start>a.navbar-item.is-active,.navbar.is-dark .navbar-start>a.navbar-item:focus,.navbar.is-dark .navbar-start>a.navbar-item:hover{background-color:#292929;color:#fff}.navbar.is-dark .navbar-end .navbar-link::after,.navbar.is-dark .navbar-start .navbar-link::after{border-color:#fff}.navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link{background-color:#292929;color:#fff}.navbar.is-dark .navbar-dropdown a.navbar-item.is-active{background-color:#363636;color:#fff}}.navbar.is-primary{background-color:#00d1b2;color:#fff}.navbar.is-primary .navbar-brand .navbar-link,.navbar.is-primary .navbar-brand>.navbar-item{color:#fff}.navbar.is-primary .navbar-brand .navbar-link.is-active,.navbar.is-primary .navbar-brand .navbar-link:focus,.navbar.is-primary .navbar-brand .navbar-link:hover,.navbar.is-primary .navbar-brand>a.navbar-item.is-active,.navbar.is-primary .navbar-brand>a.navbar-item:focus,.navbar.is-primary .navbar-brand>a.navbar-item:hover{background-color:#00b89c;color:#fff}.navbar.is-primary .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-primary .navbar-burger{color:#fff}@media screen and (min-width:1024px){.navbar.is-primary .navbar-end .navbar-link,.navbar.is-primary .navbar-end>.navbar-item,.navbar.is-primary .navbar-start .navbar-link,.navbar.is-primary .navbar-start>.navbar-item{color:#fff}.navbar.is-primary .navbar-end .navbar-link.is-active,.navbar.is-primary .navbar-end .navbar-link:focus,.navbar.is-primary .navbar-end .navbar-link:hover,.navbar.is-primary .navbar-end>a.navbar-item.is-active,.navbar.is-primary .navbar-end>a.navbar-item:focus,.navbar.is-primary .navbar-end>a.navbar-item:hover,.navbar.is-primary .navbar-start .navbar-link.is-active,.navbar.is-primary .navbar-start .navbar-link:focus,.navbar.is-primary .navbar-start .navbar-link:hover,.navbar.is-primary .navbar-start>a.navbar-item.is-active,.navbar.is-primary .navbar-start>a.navbar-item:focus,.navbar.is-primary .navbar-start>a.navbar-item:hover{background-color:#00b89c;color:#fff}.navbar.is-primary .navbar-end .navbar-link::after,.navbar.is-primary .navbar-start .navbar-link::after{border-color:#fff}.navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link{background-color:#00b89c;color:#fff}.navbar.is-primary .navbar-dropdown a.navbar-item.is-active{background-color:#00d1b2;color:#fff}}.navbar.is-link{background-color:#3273dc;color:#fff}.navbar.is-link .navbar-brand .navbar-link,.navbar.is-link .navbar-brand>.navbar-item{color:#fff}.navbar.is-link .navbar-brand .navbar-link.is-active,.navbar.is-link .navbar-brand .navbar-link:focus,.navbar.is-link .navbar-brand .navbar-link:hover,.navbar.is-link .navbar-brand>a.navbar-item.is-active,.navbar.is-link .navbar-brand>a.navbar-item:focus,.navbar.is-link .navbar-brand>a.navbar-item:hover{background-color:#2366d1;color:#fff}.navbar.is-link .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-link .navbar-burger{color:#fff}@media screen and (min-width:1024px){.navbar.is-link .navbar-end .navbar-link,.navbar.is-link .navbar-end>.navbar-item,.navbar.is-link .navbar-start .navbar-link,.navbar.is-link .navbar-start>.navbar-item{color:#fff}.navbar.is-link .navbar-end .navbar-link.is-active,.navbar.is-link .navbar-end .navbar-link:focus,.navbar.is-link .navbar-end .navbar-link:hover,.navbar.is-link .navbar-end>a.navbar-item.is-active,.navbar.is-link .navbar-end>a.navbar-item:focus,.navbar.is-link .navbar-end>a.navbar-item:hover,.navbar.is-link .navbar-start .navbar-link.is-active,.navbar.is-link .navbar-start .navbar-link:focus,.navbar.is-link .navbar-start .navbar-link:hover,.navbar.is-link .navbar-start>a.navbar-item.is-active,.navbar.is-link .navbar-start>a.navbar-item:focus,.navbar.is-link .navbar-start>a.navbar-item:hover{background-color:#2366d1;color:#fff}.navbar.is-link .navbar-end .navbar-link::after,.navbar.is-link .navbar-start .navbar-link::after{border-color:#fff}.navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-link .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-link .navbar-item.has-dropdown:hover .navbar-link{background-color:#2366d1;color:#fff}.navbar.is-link .navbar-dropdown a.navbar-item.is-active{background-color:#3273dc;color:#fff}}.navbar.is-info{background-color:#3298dc;color:#fff}.navbar.is-info .navbar-brand .navbar-link,.navbar.is-info .navbar-brand>.navbar-item{color:#fff}.navbar.is-info .navbar-brand .navbar-link.is-active,.navbar.is-info .navbar-brand .navbar-link:focus,.navbar.is-info .navbar-brand .navbar-link:hover,.navbar.is-info .navbar-brand>a.navbar-item.is-active,.navbar.is-info .navbar-brand>a.navbar-item:focus,.navbar.is-info .navbar-brand>a.navbar-item:hover{background-color:#238cd1;color:#fff}.navbar.is-info .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-info .navbar-burger{color:#fff}@media screen and (min-width:1024px){.navbar.is-info .navbar-end .navbar-link,.navbar.is-info .navbar-end>.navbar-item,.navbar.is-info .navbar-start .navbar-link,.navbar.is-info .navbar-start>.navbar-item{color:#fff}.navbar.is-info .navbar-end .navbar-link.is-active,.navbar.is-info .navbar-end .navbar-link:focus,.navbar.is-info .navbar-end .navbar-link:hover,.navbar.is-info .navbar-end>a.navbar-item.is-active,.navbar.is-info .navbar-end>a.navbar-item:focus,.navbar.is-info .navbar-end>a.navbar-item:hover,.navbar.is-info .navbar-start .navbar-link.is-active,.navbar.is-info .navbar-start .navbar-link:focus,.navbar.is-info .navbar-start .navbar-link:hover,.navbar.is-info .navbar-start>a.navbar-item.is-active,.navbar.is-info .navbar-start>a.navbar-item:focus,.navbar.is-info .navbar-start>a.navbar-item:hover{background-color:#238cd1;color:#fff}.navbar.is-info .navbar-end .navbar-link::after,.navbar.is-info .navbar-start .navbar-link::after{border-color:#fff}.navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-info .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-info .navbar-item.has-dropdown:hover .navbar-link{background-color:#238cd1;color:#fff}.navbar.is-info .navbar-dropdown a.navbar-item.is-active{background-color:#3298dc;color:#fff}}.navbar.is-success{background-color:#48c774;color:#fff}.navbar.is-success .navbar-brand .navbar-link,.navbar.is-success .navbar-brand>.navbar-item{color:#fff}.navbar.is-success .navbar-brand .navbar-link.is-active,.navbar.is-success .navbar-brand .navbar-link:focus,.navbar.is-success .navbar-brand .navbar-link:hover,.navbar.is-success .navbar-brand>a.navbar-item.is-active,.navbar.is-success .navbar-brand>a.navbar-item:focus,.navbar.is-success .navbar-brand>a.navbar-item:hover{background-color:#3abb67;color:#fff}.navbar.is-success .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-success .navbar-burger{color:#fff}@media screen and (min-width:1024px){.navbar.is-success .navbar-end .navbar-link,.navbar.is-success .navbar-end>.navbar-item,.navbar.is-success .navbar-start .navbar-link,.navbar.is-success .navbar-start>.navbar-item{color:#fff}.navbar.is-success .navbar-end .navbar-link.is-active,.navbar.is-success .navbar-end .navbar-link:focus,.navbar.is-success .navbar-end .navbar-link:hover,.navbar.is-success .navbar-end>a.navbar-item.is-active,.navbar.is-success .navbar-end>a.navbar-item:focus,.navbar.is-success .navbar-end>a.navbar-item:hover,.navbar.is-success .navbar-start .navbar-link.is-active,.navbar.is-success .navbar-start .navbar-link:focus,.navbar.is-success .navbar-start .navbar-link:hover,.navbar.is-success .navbar-start>a.navbar-item.is-active,.navbar.is-success .navbar-start>a.navbar-item:focus,.navbar.is-success .navbar-start>a.navbar-item:hover{background-color:#3abb67;color:#fff}.navbar.is-success .navbar-end .navbar-link::after,.navbar.is-success .navbar-start .navbar-link::after{border-color:#fff}.navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-success .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-success .navbar-item.has-dropdown:hover .navbar-link{background-color:#3abb67;color:#fff}.navbar.is-success .navbar-dropdown a.navbar-item.is-active{background-color:#48c774;color:#fff}}.navbar.is-warning{background-color:#ffdd57;color:rgba(0,0,0,.7)}.navbar.is-warning .navbar-brand .navbar-link,.navbar.is-warning .navbar-brand>.navbar-item{color:rgba(0,0,0,.7)}.navbar.is-warning .navbar-brand .navbar-link.is-active,.navbar.is-warning .navbar-brand .navbar-link:focus,.navbar.is-warning .navbar-brand .navbar-link:hover,.navbar.is-warning .navbar-brand>a.navbar-item.is-active,.navbar.is-warning .navbar-brand>a.navbar-item:focus,.navbar.is-warning .navbar-brand>a.navbar-item:hover{background-color:#ffd83d;color:rgba(0,0,0,.7)}.navbar.is-warning .navbar-brand .navbar-link::after{border-color:rgba(0,0,0,.7)}.navbar.is-warning .navbar-burger{color:rgba(0,0,0,.7)}@media screen and (min-width:1024px){.navbar.is-warning .navbar-end .navbar-link,.navbar.is-warning .navbar-end>.navbar-item,.navbar.is-warning .navbar-start .navbar-link,.navbar.is-warning .navbar-start>.navbar-item{color:rgba(0,0,0,.7)}.navbar.is-warning .navbar-end .navbar-link.is-active,.navbar.is-warning .navbar-end .navbar-link:focus,.navbar.is-warning .navbar-end .navbar-link:hover,.navbar.is-warning .navbar-end>a.navbar-item.is-active,.navbar.is-warning .navbar-end>a.navbar-item:focus,.navbar.is-warning .navbar-end>a.navbar-item:hover,.navbar.is-warning .navbar-start .navbar-link.is-active,.navbar.is-warning .navbar-start .navbar-link:focus,.navbar.is-warning .navbar-start .navbar-link:hover,.navbar.is-warning .navbar-start>a.navbar-item.is-active,.navbar.is-warning .navbar-start>a.navbar-item:focus,.navbar.is-warning .navbar-start>a.navbar-item:hover{background-color:#ffd83d;color:rgba(0,0,0,.7)}.navbar.is-warning .navbar-end .navbar-link::after,.navbar.is-warning .navbar-start .navbar-link::after{border-color:rgba(0,0,0,.7)}.navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link{background-color:#ffd83d;color:rgba(0,0,0,.7)}.navbar.is-warning .navbar-dropdown a.navbar-item.is-active{background-color:#ffdd57;color:rgba(0,0,0,.7)}}.navbar.is-danger{background-color:#f14668;color:#fff}.navbar.is-danger .navbar-brand .navbar-link,.navbar.is-danger .navbar-brand>.navbar-item{color:#fff}.navbar.is-danger .navbar-brand .navbar-link.is-active,.navbar.is-danger .navbar-brand .navbar-link:focus,.navbar.is-danger .navbar-brand .navbar-link:hover,.navbar.is-danger .navbar-brand>a.navbar-item.is-active,.navbar.is-danger .navbar-brand>a.navbar-item:focus,.navbar.is-danger .navbar-brand>a.navbar-item:hover{background-color:#ef2e55;color:#fff}.navbar.is-danger .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-danger .navbar-burger{color:#fff}@media screen and (min-width:1024px){.navbar.is-danger .navbar-end .navbar-link,.navbar.is-danger .navbar-end>.navbar-item,.navbar.is-danger .navbar-start .navbar-link,.navbar.is-danger .navbar-start>.navbar-item{color:#fff}.navbar.is-danger .navbar-end .navbar-link.is-active,.navbar.is-danger .navbar-end .navbar-link:focus,.navbar.is-danger .navbar-end .navbar-link:hover,.navbar.is-danger .navbar-end>a.navbar-item.is-active,.navbar.is-danger .navbar-end>a.navbar-item:focus,.navbar.is-danger .navbar-end>a.navbar-item:hover,.navbar.is-danger .navbar-start .navbar-link.is-active,.navbar.is-danger .navbar-start .navbar-link:focus,.navbar.is-danger .navbar-start .navbar-link:hover,.navbar.is-danger .navbar-start>a.navbar-item.is-active,.navbar.is-danger .navbar-start>a.navbar-item:focus,.navbar.is-danger .navbar-start>a.navbar-item:hover{background-color:#ef2e55;color:#fff}.navbar.is-danger .navbar-end .navbar-link::after,.navbar.is-danger .navbar-start .navbar-link::after{border-color:#fff}.navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link{background-color:#ef2e55;color:#fff}.navbar.is-danger .navbar-dropdown a.navbar-item.is-active{background-color:#f14668;color:#fff}}.navbar>.container{align-items:stretch;display:flex;min-height:3.25rem;width:100%}.navbar.has-shadow{box-shadow:0 2px 0 0 #f5f5f5}.navbar.is-fixed-bottom,.navbar.is-fixed-top{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom{bottom:0}.navbar.is-fixed-bottom.has-shadow{box-shadow:0 -2px 0 0 #f5f5f5}.navbar.is-fixed-top{top:0}body.has-navbar-fixed-top,html.has-navbar-fixed-top{padding-top:3.25rem}body.has-navbar-fixed-bottom,html.has-navbar-fixed-bottom{padding-bottom:3.25rem}.navbar-brand,.navbar-tabs{align-items:stretch;display:flex;flex-shrink:0;min-height:3.25rem}.navbar-brand a.navbar-item:focus,.navbar-brand a.navbar-item:hover{background-color:transparent}.navbar-tabs{-webkit-overflow-scrolling:touch;max-width:100vw;overflow-x:auto;overflow-y:hidden}.navbar-burger{color:#4a4a4a;cursor:pointer;display:block;height:3.25rem;position:relative;width:3.25rem;margin-left:auto}.navbar-burger span{background-color:currentColor;display:block;height:1px;left:calc(50% - 8px);position:absolute;transform-origin:center;transition-duration:86ms;transition-property:background-color,opacity,transform;transition-timing-function:ease-out;width:16px}.navbar-burger span:nth-child(1){top:calc(50% - 6px)}.navbar-burger span:nth-child(2){top:calc(50% - 1px)}.navbar-burger span:nth-child(3){top:calc(50% + 4px)}.navbar-burger:hover{background-color:rgba(0,0,0,.05)}.navbar-burger.is-active span:nth-child(1){transform:translateY(5px) rotate(45deg)}.navbar-burger.is-active span:nth-child(2){opacity:0}.navbar-burger.is-active span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}.navbar-menu{display:none}.navbar-item,.navbar-link{color:#4a4a4a;display:block;line-height:1.5;padding:.5rem .75rem;position:relative}.navbar-item .icon:only-child,.navbar-link .icon:only-child{margin-left:-.25rem;margin-right:-.25rem}.navbar-link,a.navbar-item{cursor:pointer}.navbar-link.is-active,.navbar-link:focus,.navbar-link:focus-within,.navbar-link:hover,a.navbar-item.is-active,a.navbar-item:focus,a.navbar-item:focus-within,a.navbar-item:hover{background-color:#fafafa;color:#3273dc}.navbar-item{flex-grow:0;flex-shrink:0}.navbar-item img{max-height:1.75rem}.navbar-item.has-dropdown{padding:0}.navbar-item.is-expanded{flex-grow:1;flex-shrink:1}.navbar-item.is-tab{border-bottom:1px solid transparent;min-height:3.25rem;padding-bottom:calc(.5rem - 1px)}.navbar-item.is-tab:focus,.navbar-item.is-tab:hover{background-color:transparent;border-bottom-color:#3273dc}.navbar-item.is-tab.is-active{background-color:transparent;border-bottom-color:#3273dc;border-bottom-style:solid;border-bottom-width:3px;color:#3273dc;padding-bottom:calc(.5rem - 3px)}.navbar-content{flex-grow:1;flex-shrink:1}.navbar-link:not(.is-arrowless){padding-right:2.5em}.navbar-link:not(.is-arrowless)::after{border-color:#3273dc;margin-top:-.375em;right:1.125em}.navbar-dropdown{font-size:.875rem;padding-bottom:.5rem;padding-top:.5rem}.navbar-dropdown .navbar-item{padding-left:1.5rem;padding-right:1.5rem}.navbar-divider{background-color:#f5f5f5;border:none;display:none;height:2px;margin:.5rem 0}@media screen and (max-width:1023px){.navbar>.container{display:block}.navbar-brand .navbar-item,.navbar-tabs .navbar-item{align-items:center;display:flex}.navbar-link::after{display:none}.navbar-menu{background-color:#fff;box-shadow:0 8px 16px rgba(10,10,10,.1);padding:.5rem 0}.navbar-menu.is-active{display:block}.navbar.is-fixed-bottom-touch,.navbar.is-fixed-top-touch{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom-touch{bottom:0}.navbar.is-fixed-bottom-touch.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,.1)}.navbar.is-fixed-top-touch{top:0}.navbar.is-fixed-top .navbar-menu,.navbar.is-fixed-top-touch .navbar-menu{-webkit-overflow-scrolling:touch;max-height:calc(100vh - 3.25rem);overflow:auto}body.has-navbar-fixed-top-touch,html.has-navbar-fixed-top-touch{padding-top:3.25rem}body.has-navbar-fixed-bottom-touch,html.has-navbar-fixed-bottom-touch{padding-bottom:3.25rem}}@media screen and (min-width:1024px){.navbar,.navbar-end,.navbar-menu,.navbar-start{align-items:stretch;display:flex}.navbar{min-height:3.25rem}.navbar.is-spaced{padding:1rem 2rem}.navbar.is-spaced .navbar-end,.navbar.is-spaced .navbar-start{align-items:center}.navbar.is-spaced .navbar-link,.navbar.is-spaced a.navbar-item{border-radius:4px}.navbar.is-transparent .navbar-link.is-active,.navbar.is-transparent .navbar-link:focus,.navbar.is-transparent .navbar-link:hover,.navbar.is-transparent a.navbar-item.is-active,.navbar.is-transparent a.navbar-item:focus,.navbar.is-transparent a.navbar-item:hover{background-color:transparent!important}.navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link{background-color:transparent!important}.navbar.is-transparent .navbar-dropdown a.navbar-item:focus,.navbar.is-transparent .navbar-dropdown a.navbar-item:hover{background-color:#f5f5f5;color:#0a0a0a}.navbar.is-transparent .navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#3273dc}.navbar-burger{display:none}.navbar-item,.navbar-link{align-items:center;display:flex}.navbar-item.has-dropdown{align-items:stretch}.navbar-item.has-dropdown-up .navbar-link::after{transform:rotate(135deg) translate(.25em,-.25em)}.navbar-item.has-dropdown-up .navbar-dropdown{border-bottom:2px solid #dbdbdb;border-radius:6px 6px 0 0;border-top:none;bottom:100%;box-shadow:0 -8px 8px rgba(10,10,10,.1);top:auto}.navbar-item.is-active .navbar-dropdown,.navbar-item.is-hoverable:focus .navbar-dropdown,.navbar-item.is-hoverable:focus-within .navbar-dropdown,.navbar-item.is-hoverable:hover .navbar-dropdown{display:block}.navbar-item.is-active .navbar-dropdown.is-boxed,.navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed,.navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed,.navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-item.is-active .navbar-dropdown,.navbar.is-spaced .navbar-item.is-hoverable:focus .navbar-dropdown,.navbar.is-spaced .navbar-item.is-hoverable:focus-within .navbar-dropdown,.navbar.is-spaced .navbar-item.is-hoverable:hover .navbar-dropdown{opacity:1;pointer-events:auto;transform:translateY(0)}.navbar-menu{flex-grow:1;flex-shrink:0}.navbar-start{justify-content:flex-start;margin-right:auto}.navbar-end{justify-content:flex-end;margin-left:auto}.navbar-dropdown{background-color:#fff;border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-top:2px solid #dbdbdb;box-shadow:0 8px 8px rgba(10,10,10,.1);display:none;font-size:.875rem;left:0;min-width:100%;position:absolute;top:100%;z-index:20}.navbar-dropdown .navbar-item{padding:.375rem 1rem;white-space:nowrap}.navbar-dropdown a.navbar-item{padding-right:3rem}.navbar-dropdown a.navbar-item:focus,.navbar-dropdown a.navbar-item:hover{background-color:#f5f5f5;color:#0a0a0a}.navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#3273dc}.navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-dropdown{border-radius:6px;border-top:none;box-shadow:0 8px 8px rgba(10,10,10,.1),0 0 0 1px rgba(10,10,10,.1);display:block;opacity:0;pointer-events:none;top:calc(100% + (-4px));transform:translateY(-5px);transition-duration:86ms;transition-property:opacity,transform}.navbar-dropdown.is-right{left:auto;right:0}.navbar-divider{display:block}.container>.navbar .navbar-brand,.navbar>.container .navbar-brand{margin-left:-.75rem}.container>.navbar .navbar-menu,.navbar>.container .navbar-menu{margin-right:-.75rem}.navbar.is-fixed-bottom-desktop,.navbar.is-fixed-top-desktop{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom-desktop{bottom:0}.navbar.is-fixed-bottom-desktop.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,.1)}.navbar.is-fixed-top-desktop{top:0}body.has-navbar-fixed-top-desktop,html.has-navbar-fixed-top-desktop{padding-top:3.25rem}body.has-navbar-fixed-bottom-desktop,html.has-navbar-fixed-bottom-desktop{padding-bottom:3.25rem}body.has-spaced-navbar-fixed-top,html.has-spaced-navbar-fixed-top{padding-top:5.25rem}body.has-spaced-navbar-fixed-bottom,html.has-spaced-navbar-fixed-bottom{padding-bottom:5.25rem}.navbar-link.is-active,a.navbar-item.is-active{color:#0a0a0a}.navbar-link.is-active:not(:focus):not(:hover),a.navbar-item.is-active:not(:focus):not(:hover){background-color:transparent}.navbar-item.has-dropdown.is-active .navbar-link,.navbar-item.has-dropdown:focus .navbar-link,.navbar-item.has-dropdown:hover .navbar-link{background-color:#fafafa}}.hero.is-fullheight-with-navbar{min-height:calc(100vh - 3.25rem)}.pagination{font-size:1rem;margin:-.25rem}.pagination.is-small{font-size:.75rem}.pagination.is-medium{font-size:1.25rem}.pagination.is-large{font-size:1.5rem}.pagination.is-rounded .pagination-next,.pagination.is-rounded .pagination-previous{padding-left:1em;padding-right:1em;border-radius:290486px}.pagination.is-rounded .pagination-link{border-radius:290486px}.pagination,.pagination-list{align-items:center;display:flex;justify-content:center;text-align:center}.pagination-ellipsis,.pagination-link,.pagination-next,.pagination-previous{font-size:1em;justify-content:center;margin:.25rem;padding-left:.5em;padding-right:.5em;text-align:center}.pagination-link,.pagination-next,.pagination-previous{border-color:#dbdbdb;color:#363636;min-width:2.5em}.pagination-link:hover,.pagination-next:hover,.pagination-previous:hover{border-color:#b5b5b5;color:#363636}.pagination-link:focus,.pagination-next:focus,.pagination-previous:focus{border-color:#3273dc}.pagination-link:active,.pagination-next:active,.pagination-previous:active{box-shadow:inset 0 1px 2px rgba(10,10,10,.2)}.pagination-link[disabled],.pagination-next[disabled],.pagination-previous[disabled]{background-color:#dbdbdb;border-color:#dbdbdb;box-shadow:none;color:#7a7a7a;opacity:.5}.pagination-next,.pagination-previous{padding-left:.75em;padding-right:.75em;white-space:nowrap}.pagination-link.is-current{background-color:#3273dc;border-color:#3273dc;color:#fff}.pagination-ellipsis{color:#b5b5b5;pointer-events:none}.pagination-list{flex-wrap:wrap}@media screen and (max-width:768px){.pagination{flex-wrap:wrap}.pagination-next,.pagination-previous{flex-grow:1;flex-shrink:1}.pagination-list li{flex-grow:1;flex-shrink:1}}@media screen and (min-width:769px),print{.pagination-list{flex-grow:1;flex-shrink:1;justify-content:flex-start;order:1}.pagination-previous{order:2}.pagination-next{order:3}.pagination{justify-content:space-between}.pagination.is-centered .pagination-previous{order:1}.pagination.is-centered .pagination-list{justify-content:center;order:2}.pagination.is-centered .pagination-next{order:3}.pagination.is-right .pagination-previous{order:1}.pagination.is-right .pagination-next{order:2}.pagination.is-right .pagination-list{justify-content:flex-end;order:3}}.panel{border-radius:6px;box-shadow:0 .5em 1em -.125em rgba(10,10,10,.1),0 0 0 1px rgba(10,10,10,.02);font-size:1rem}.panel:not(:last-child){margin-bottom:1.5rem}.panel.is-white .panel-heading{background-color:#fff;color:#0a0a0a}.panel.is-white .panel-tabs a.is-active{border-bottom-color:#fff}.panel.is-white .panel-block.is-active .panel-icon{color:#fff}.panel.is-black .panel-heading{background-color:#0a0a0a;color:#fff}.panel.is-black .panel-tabs a.is-active{border-bottom-color:#0a0a0a}.panel.is-black .panel-block.is-active .panel-icon{color:#0a0a0a}.panel.is-light .panel-heading{background-color:#f5f5f5;color:rgba(0,0,0,.7)}.panel.is-light .panel-tabs a.is-active{border-bottom-color:#f5f5f5}.panel.is-light .panel-block.is-active .panel-icon{color:#f5f5f5}.panel.is-dark .panel-heading{background-color:#363636;color:#fff}.panel.is-dark .panel-tabs a.is-active{border-bottom-color:#363636}.panel.is-dark .panel-block.is-active .panel-icon{color:#363636}.panel.is-primary .panel-heading{background-color:#00d1b2;color:#fff}.panel.is-primary .panel-tabs a.is-active{border-bottom-color:#00d1b2}.panel.is-primary .panel-block.is-active .panel-icon{color:#00d1b2}.panel.is-link .panel-heading{background-color:#3273dc;color:#fff}.panel.is-link .panel-tabs a.is-active{border-bottom-color:#3273dc}.panel.is-link .panel-block.is-active .panel-icon{color:#3273dc}.panel.is-info .panel-heading{background-color:#3298dc;color:#fff}.panel.is-info .panel-tabs a.is-active{border-bottom-color:#3298dc}.panel.is-info .panel-block.is-active .panel-icon{color:#3298dc}.panel.is-success .panel-heading{background-color:#48c774;color:#fff}.panel.is-success .panel-tabs a.is-active{border-bottom-color:#48c774}.panel.is-success .panel-block.is-active .panel-icon{color:#48c774}.panel.is-warning .panel-heading{background-color:#ffdd57;color:rgba(0,0,0,.7)}.panel.is-warning .panel-tabs a.is-active{border-bottom-color:#ffdd57}.panel.is-warning .panel-block.is-active .panel-icon{color:#ffdd57}.panel.is-danger .panel-heading{background-color:#f14668;color:#fff}.panel.is-danger .panel-tabs a.is-active{border-bottom-color:#f14668}.panel.is-danger .panel-block.is-active .panel-icon{color:#f14668}.panel-block:not(:last-child),.panel-tabs:not(:last-child){border-bottom:1px solid #ededed}.panel-heading{background-color:#ededed;border-radius:6px 6px 0 0;color:#363636;font-size:1.25em;font-weight:700;line-height:1.25;padding:.75em 1em}.panel-tabs{align-items:flex-end;display:flex;font-size:.875em;justify-content:center}.panel-tabs a{border-bottom:1px solid #dbdbdb;margin-bottom:-1px;padding:.5em}.panel-tabs a.is-active{border-bottom-color:#4a4a4a;color:#363636}.panel-list a{color:#4a4a4a}.panel-list a:hover{color:#3273dc}.panel-block{align-items:center;color:#363636;display:flex;justify-content:flex-start;padding:.5em .75em}.panel-block input[type=checkbox]{margin-right:.75em}.panel-block>.control{flex-grow:1;flex-shrink:1;width:100%}.panel-block.is-wrapped{flex-wrap:wrap}.panel-block.is-active{border-left-color:#3273dc;color:#363636}.panel-block.is-active .panel-icon{color:#3273dc}.panel-block:last-child{border-bottom-left-radius:6px;border-bottom-right-radius:6px}a.panel-block,label.panel-block{cursor:pointer}a.panel-block:hover,label.panel-block:hover{background-color:#f5f5f5}.panel-icon{display:inline-block;font-size:14px;height:1em;line-height:1em;text-align:center;vertical-align:top;width:1em;color:#7a7a7a;margin-right:.75em}.panel-icon .fa{font-size:inherit;line-height:inherit}.tabs{-webkit-overflow-scrolling:touch;align-items:stretch;display:flex;font-size:1rem;justify-content:space-between;overflow:hidden;overflow-x:auto;white-space:nowrap}.tabs a{align-items:center;border-bottom-color:#dbdbdb;border-bottom-style:solid;border-bottom-width:1px;color:#4a4a4a;display:flex;justify-content:center;margin-bottom:-1px;padding:.5em 1em;vertical-align:top}.tabs a:hover{border-bottom-color:#363636;color:#363636}.tabs li{display:block}.tabs li.is-active a{border-bottom-color:#3273dc;color:#3273dc}.tabs ul{align-items:center;border-bottom-color:#dbdbdb;border-bottom-style:solid;border-bottom-width:1px;display:flex;flex-grow:1;flex-shrink:0;justify-content:flex-start}.tabs ul.is-left{padding-right:.75em}.tabs ul.is-center{flex:none;justify-content:center;padding-left:.75em;padding-right:.75em}.tabs ul.is-right{justify-content:flex-end;padding-left:.75em}.tabs .icon:first-child{margin-right:.5em}.tabs .icon:last-child{margin-left:.5em}.tabs.is-centered ul{justify-content:center}.tabs.is-right ul{justify-content:flex-end}.tabs.is-boxed a{border:1px solid transparent;border-radius:4px 4px 0 0}.tabs.is-boxed a:hover{background-color:#f5f5f5;border-bottom-color:#dbdbdb}.tabs.is-boxed li.is-active a{background-color:#fff;border-color:#dbdbdb;border-bottom-color:transparent!important}.tabs.is-fullwidth li{flex-grow:1;flex-shrink:0}.tabs.is-toggle a{border-color:#dbdbdb;border-style:solid;border-width:1px;margin-bottom:0;position:relative}.tabs.is-toggle a:hover{background-color:#f5f5f5;border-color:#b5b5b5;z-index:2}.tabs.is-toggle li+li{margin-left:-1px}.tabs.is-toggle li:first-child a{border-top-left-radius:4px;border-bottom-left-radius:4px}.tabs.is-toggle li:last-child a{border-top-right-radius:4px;border-bottom-right-radius:4px}.tabs.is-toggle li.is-active a{background-color:#3273dc;border-color:#3273dc;color:#fff;z-index:1}.tabs.is-toggle ul{border-bottom:none}.tabs.is-toggle.is-toggle-rounded li:first-child a{border-bottom-left-radius:290486px;border-top-left-radius:290486px;padding-left:1.25em}.tabs.is-toggle.is-toggle-rounded li:last-child a{border-bottom-right-radius:290486px;border-top-right-radius:290486px;padding-right:1.25em}.tabs.is-small{font-size:.75rem}.tabs.is-medium{font-size:1.25rem}.tabs.is-large{font-size:1.5rem}.column{display:block;flex-basis:0;flex-grow:1;flex-shrink:1;padding:.75rem}.columns.is-mobile>.column.is-narrow{flex:none}.columns.is-mobile>.column.is-full{flex:none;width:100%}.columns.is-mobile>.column.is-three-quarters{flex:none;width:75%}.columns.is-mobile>.column.is-two-thirds{flex:none;width:66.6666%}.columns.is-mobile>.column.is-half{flex:none;width:50%}.columns.is-mobile>.column.is-one-third{flex:none;width:33.3333%}.columns.is-mobile>.column.is-one-quarter{flex:none;width:25%}.columns.is-mobile>.column.is-one-fifth{flex:none;width:20%}.columns.is-mobile>.column.is-two-fifths{flex:none;width:40%}.columns.is-mobile>.column.is-three-fifths{flex:none;width:60%}.columns.is-mobile>.column.is-four-fifths{flex:none;width:80%}.columns.is-mobile>.column.is-offset-three-quarters{margin-left:75%}.columns.is-mobile>.column.is-offset-two-thirds{margin-left:66.6666%}.columns.is-mobile>.column.is-offset-half{margin-left:50%}.columns.is-mobile>.column.is-offset-one-third{margin-left:33.3333%}.columns.is-mobile>.column.is-offset-one-quarter{margin-left:25%}.columns.is-mobile>.column.is-offset-one-fifth{margin-left:20%}.columns.is-mobile>.column.is-offset-two-fifths{margin-left:40%}.columns.is-mobile>.column.is-offset-three-fifths{margin-left:60%}.columns.is-mobile>.column.is-offset-four-fifths{margin-left:80%}.columns.is-mobile>.column.is-0{flex:none;width:0%}.columns.is-mobile>.column.is-offset-0{margin-left:0}.columns.is-mobile>.column.is-1{flex:none;width:8.33333%}.columns.is-mobile>.column.is-offset-1{margin-left:8.33333%}.columns.is-mobile>.column.is-2{flex:none;width:16.66667%}.columns.is-mobile>.column.is-offset-2{margin-left:16.66667%}.columns.is-mobile>.column.is-3{flex:none;width:25%}.columns.is-mobile>.column.is-offset-3{margin-left:25%}.columns.is-mobile>.column.is-4{flex:none;width:33.33333%}.columns.is-mobile>.column.is-offset-4{margin-left:33.33333%}.columns.is-mobile>.column.is-5{flex:none;width:41.66667%}.columns.is-mobile>.column.is-offset-5{margin-left:41.66667%}.columns.is-mobile>.column.is-6{flex:none;width:50%}.columns.is-mobile>.column.is-offset-6{margin-left:50%}.columns.is-mobile>.column.is-7{flex:none;width:58.33333%}.columns.is-mobile>.column.is-offset-7{margin-left:58.33333%}.columns.is-mobile>.column.is-8{flex:none;width:66.66667%}.columns.is-mobile>.column.is-offset-8{margin-left:66.66667%}.columns.is-mobile>.column.is-9{flex:none;width:75%}.columns.is-mobile>.column.is-offset-9{margin-left:75%}.columns.is-mobile>.column.is-10{flex:none;width:83.33333%}.columns.is-mobile>.column.is-offset-10{margin-left:83.33333%}.columns.is-mobile>.column.is-11{flex:none;width:91.66667%}.columns.is-mobile>.column.is-offset-11{margin-left:91.66667%}.columns.is-mobile>.column.is-12{flex:none;width:100%}.columns.is-mobile>.column.is-offset-12{margin-left:100%}@media screen and (max-width:768px){.column.is-narrow-mobile{flex:none}.column.is-full-mobile{flex:none;width:100%}.column.is-three-quarters-mobile{flex:none;width:75%}.column.is-two-thirds-mobile{flex:none;width:66.6666%}.column.is-half-mobile{flex:none;width:50%}.column.is-one-third-mobile{flex:none;width:33.3333%}.column.is-one-quarter-mobile{flex:none;width:25%}.column.is-one-fifth-mobile{flex:none;width:20%}.column.is-two-fifths-mobile{flex:none;width:40%}.column.is-three-fifths-mobile{flex:none;width:60%}.column.is-four-fifths-mobile{flex:none;width:80%}.column.is-offset-three-quarters-mobile{margin-left:75%}.column.is-offset-two-thirds-mobile{margin-left:66.6666%}.column.is-offset-half-mobile{margin-left:50%}.column.is-offset-one-third-mobile{margin-left:33.3333%}.column.is-offset-one-quarter-mobile{margin-left:25%}.column.is-offset-one-fifth-mobile{margin-left:20%}.column.is-offset-two-fifths-mobile{margin-left:40%}.column.is-offset-three-fifths-mobile{margin-left:60%}.column.is-offset-four-fifths-mobile{margin-left:80%}.column.is-0-mobile{flex:none;width:0%}.column.is-offset-0-mobile{margin-left:0}.column.is-1-mobile{flex:none;width:8.33333%}.column.is-offset-1-mobile{margin-left:8.33333%}.column.is-2-mobile{flex:none;width:16.66667%}.column.is-offset-2-mobile{margin-left:16.66667%}.column.is-3-mobile{flex:none;width:25%}.column.is-offset-3-mobile{margin-left:25%}.column.is-4-mobile{flex:none;width:33.33333%}.column.is-offset-4-mobile{margin-left:33.33333%}.column.is-5-mobile{flex:none;width:41.66667%}.column.is-offset-5-mobile{margin-left:41.66667%}.column.is-6-mobile{flex:none;width:50%}.column.is-offset-6-mobile{margin-left:50%}.column.is-7-mobile{flex:none;width:58.33333%}.column.is-offset-7-mobile{margin-left:58.33333%}.column.is-8-mobile{flex:none;width:66.66667%}.column.is-offset-8-mobile{margin-left:66.66667%}.column.is-9-mobile{flex:none;width:75%}.column.is-offset-9-mobile{margin-left:75%}.column.is-10-mobile{flex:none;width:83.33333%}.column.is-offset-10-mobile{margin-left:83.33333%}.column.is-11-mobile{flex:none;width:91.66667%}.column.is-offset-11-mobile{margin-left:91.66667%}.column.is-12-mobile{flex:none;width:100%}.column.is-offset-12-mobile{margin-left:100%}}@media screen and (min-width:769px),print{.column.is-narrow,.column.is-narrow-tablet{flex:none}.column.is-full,.column.is-full-tablet{flex:none;width:100%}.column.is-three-quarters,.column.is-three-quarters-tablet{flex:none;width:75%}.column.is-two-thirds,.column.is-two-thirds-tablet{flex:none;width:66.6666%}.column.is-half,.column.is-half-tablet{flex:none;width:50%}.column.is-one-third,.column.is-one-third-tablet{flex:none;width:33.3333%}.column.is-one-quarter,.column.is-one-quarter-tablet{flex:none;width:25%}.column.is-one-fifth,.column.is-one-fifth-tablet{flex:none;width:20%}.column.is-two-fifths,.column.is-two-fifths-tablet{flex:none;width:40%}.column.is-three-fifths,.column.is-three-fifths-tablet{flex:none;width:60%}.column.is-four-fifths,.column.is-four-fifths-tablet{flex:none;width:80%}.column.is-offset-three-quarters,.column.is-offset-three-quarters-tablet{margin-left:75%}.column.is-offset-two-thirds,.column.is-offset-two-thirds-tablet{margin-left:66.6666%}.column.is-offset-half,.column.is-offset-half-tablet{margin-left:50%}.column.is-offset-one-third,.column.is-offset-one-third-tablet{margin-left:33.3333%}.column.is-offset-one-quarter,.column.is-offset-one-quarter-tablet{margin-left:25%}.column.is-offset-one-fifth,.column.is-offset-one-fifth-tablet{margin-left:20%}.column.is-offset-two-fifths,.column.is-offset-two-fifths-tablet{margin-left:40%}.column.is-offset-three-fifths,.column.is-offset-three-fifths-tablet{margin-left:60%}.column.is-offset-four-fifths,.column.is-offset-four-fifths-tablet{margin-left:80%}.column.is-0,.column.is-0-tablet{flex:none;width:0%}.column.is-offset-0,.column.is-offset-0-tablet{margin-left:0}.column.is-1,.column.is-1-tablet{flex:none;width:8.33333%}.column.is-offset-1,.column.is-offset-1-tablet{margin-left:8.33333%}.column.is-2,.column.is-2-tablet{flex:none;width:16.66667%}.column.is-offset-2,.column.is-offset-2-tablet{margin-left:16.66667%}.column.is-3,.column.is-3-tablet{flex:none;width:25%}.column.is-offset-3,.column.is-offset-3-tablet{margin-left:25%}.column.is-4,.column.is-4-tablet{flex:none;width:33.33333%}.column.is-offset-4,.column.is-offset-4-tablet{margin-left:33.33333%}.column.is-5,.column.is-5-tablet{flex:none;width:41.66667%}.column.is-offset-5,.column.is-offset-5-tablet{margin-left:41.66667%}.column.is-6,.column.is-6-tablet{flex:none;width:50%}.column.is-offset-6,.column.is-offset-6-tablet{margin-left:50%}.column.is-7,.column.is-7-tablet{flex:none;width:58.33333%}.column.is-offset-7,.column.is-offset-7-tablet{margin-left:58.33333%}.column.is-8,.column.is-8-tablet{flex:none;width:66.66667%}.column.is-offset-8,.column.is-offset-8-tablet{margin-left:66.66667%}.column.is-9,.column.is-9-tablet{flex:none;width:75%}.column.is-offset-9,.column.is-offset-9-tablet{margin-left:75%}.column.is-10,.column.is-10-tablet{flex:none;width:83.33333%}.column.is-offset-10,.column.is-offset-10-tablet{margin-left:83.33333%}.column.is-11,.column.is-11-tablet{flex:none;width:91.66667%}.column.is-offset-11,.column.is-offset-11-tablet{margin-left:91.66667%}.column.is-12,.column.is-12-tablet{flex:none;width:100%}.column.is-offset-12,.column.is-offset-12-tablet{margin-left:100%}}@media screen and (max-width:1023px){.column.is-narrow-touch{flex:none}.column.is-full-touch{flex:none;width:100%}.column.is-three-quarters-touch{flex:none;width:75%}.column.is-two-thirds-touch{flex:none;width:66.6666%}.column.is-half-touch{flex:none;width:50%}.column.is-one-third-touch{flex:none;width:33.3333%}.column.is-one-quarter-touch{flex:none;width:25%}.column.is-one-fifth-touch{flex:none;width:20%}.column.is-two-fifths-touch{flex:none;width:40%}.column.is-three-fifths-touch{flex:none;width:60%}.column.is-four-fifths-touch{flex:none;width:80%}.column.is-offset-three-quarters-touch{margin-left:75%}.column.is-offset-two-thirds-touch{margin-left:66.6666%}.column.is-offset-half-touch{margin-left:50%}.column.is-offset-one-third-touch{margin-left:33.3333%}.column.is-offset-one-quarter-touch{margin-left:25%}.column.is-offset-one-fifth-touch{margin-left:20%}.column.is-offset-two-fifths-touch{margin-left:40%}.column.is-offset-three-fifths-touch{margin-left:60%}.column.is-offset-four-fifths-touch{margin-left:80%}.column.is-0-touch{flex:none;width:0%}.column.is-offset-0-touch{margin-left:0}.column.is-1-touch{flex:none;width:8.33333%}.column.is-offset-1-touch{margin-left:8.33333%}.column.is-2-touch{flex:none;width:16.66667%}.column.is-offset-2-touch{margin-left:16.66667%}.column.is-3-touch{flex:none;width:25%}.column.is-offset-3-touch{margin-left:25%}.column.is-4-touch{flex:none;width:33.33333%}.column.is-offset-4-touch{margin-left:33.33333%}.column.is-5-touch{flex:none;width:41.66667%}.column.is-offset-5-touch{margin-left:41.66667%}.column.is-6-touch{flex:none;width:50%}.column.is-offset-6-touch{margin-left:50%}.column.is-7-touch{flex:none;width:58.33333%}.column.is-offset-7-touch{margin-left:58.33333%}.column.is-8-touch{flex:none;width:66.66667%}.column.is-offset-8-touch{margin-left:66.66667%}.column.is-9-touch{flex:none;width:75%}.column.is-offset-9-touch{margin-left:75%}.column.is-10-touch{flex:none;width:83.33333%}.column.is-offset-10-touch{margin-left:83.33333%}.column.is-11-touch{flex:none;width:91.66667%}.column.is-offset-11-touch{margin-left:91.66667%}.column.is-12-touch{flex:none;width:100%}.column.is-offset-12-touch{margin-left:100%}}@media screen and (min-width:1024px){.column.is-narrow-desktop{flex:none}.column.is-full-desktop{flex:none;width:100%}.column.is-three-quarters-desktop{flex:none;width:75%}.column.is-two-thirds-desktop{flex:none;width:66.6666%}.column.is-half-desktop{flex:none;width:50%}.column.is-one-third-desktop{flex:none;width:33.3333%}.column.is-one-quarter-desktop{flex:none;width:25%}.column.is-one-fifth-desktop{flex:none;width:20%}.column.is-two-fifths-desktop{flex:none;width:40%}.column.is-three-fifths-desktop{flex:none;width:60%}.column.is-four-fifths-desktop{flex:none;width:80%}.column.is-offset-three-quarters-desktop{margin-left:75%}.column.is-offset-two-thirds-desktop{margin-left:66.6666%}.column.is-offset-half-desktop{margin-left:50%}.column.is-offset-one-third-desktop{margin-left:33.3333%}.column.is-offset-one-quarter-desktop{margin-left:25%}.column.is-offset-one-fifth-desktop{margin-left:20%}.column.is-offset-two-fifths-desktop{margin-left:40%}.column.is-offset-three-fifths-desktop{margin-left:60%}.column.is-offset-four-fifths-desktop{margin-left:80%}.column.is-0-desktop{flex:none;width:0%}.column.is-offset-0-desktop{margin-left:0}.column.is-1-desktop{flex:none;width:8.33333%}.column.is-offset-1-desktop{margin-left:8.33333%}.column.is-2-desktop{flex:none;width:16.66667%}.column.is-offset-2-desktop{margin-left:16.66667%}.column.is-3-desktop{flex:none;width:25%}.column.is-offset-3-desktop{margin-left:25%}.column.is-4-desktop{flex:none;width:33.33333%}.column.is-offset-4-desktop{margin-left:33.33333%}.column.is-5-desktop{flex:none;width:41.66667%}.column.is-offset-5-desktop{margin-left:41.66667%}.column.is-6-desktop{flex:none;width:50%}.column.is-offset-6-desktop{margin-left:50%}.column.is-7-desktop{flex:none;width:58.33333%}.column.is-offset-7-desktop{margin-left:58.33333%}.column.is-8-desktop{flex:none;width:66.66667%}.column.is-offset-8-desktop{margin-left:66.66667%}.column.is-9-desktop{flex:none;width:75%}.column.is-offset-9-desktop{margin-left:75%}.column.is-10-desktop{flex:none;width:83.33333%}.column.is-offset-10-desktop{margin-left:83.33333%}.column.is-11-desktop{flex:none;width:91.66667%}.column.is-offset-11-desktop{margin-left:91.66667%}.column.is-12-desktop{flex:none;width:100%}.column.is-offset-12-desktop{margin-left:100%}}@media screen and (min-width:1216px){.column.is-narrow-widescreen{flex:none}.column.is-full-widescreen{flex:none;width:100%}.column.is-three-quarters-widescreen{flex:none;width:75%}.column.is-two-thirds-widescreen{flex:none;width:66.6666%}.column.is-half-widescreen{flex:none;width:50%}.column.is-one-third-widescreen{flex:none;width:33.3333%}.column.is-one-quarter-widescreen{flex:none;width:25%}.column.is-one-fifth-widescreen{flex:none;width:20%}.column.is-two-fifths-widescreen{flex:none;width:40%}.column.is-three-fifths-widescreen{flex:none;width:60%}.column.is-four-fifths-widescreen{flex:none;width:80%}.column.is-offset-three-quarters-widescreen{margin-left:75%}.column.is-offset-two-thirds-widescreen{margin-left:66.6666%}.column.is-offset-half-widescreen{margin-left:50%}.column.is-offset-one-third-widescreen{margin-left:33.3333%}.column.is-offset-one-quarter-widescreen{margin-left:25%}.column.is-offset-one-fifth-widescreen{margin-left:20%}.column.is-offset-two-fifths-widescreen{margin-left:40%}.column.is-offset-three-fifths-widescreen{margin-left:60%}.column.is-offset-four-fifths-widescreen{margin-left:80%}.column.is-0-widescreen{flex:none;width:0%}.column.is-offset-0-widescreen{margin-left:0}.column.is-1-widescreen{flex:none;width:8.33333%}.column.is-offset-1-widescreen{margin-left:8.33333%}.column.is-2-widescreen{flex:none;width:16.66667%}.column.is-offset-2-widescreen{margin-left:16.66667%}.column.is-3-widescreen{flex:none;width:25%}.column.is-offset-3-widescreen{margin-left:25%}.column.is-4-widescreen{flex:none;width:33.33333%}.column.is-offset-4-widescreen{margin-left:33.33333%}.column.is-5-widescreen{flex:none;width:41.66667%}.column.is-offset-5-widescreen{margin-left:41.66667%}.column.is-6-widescreen{flex:none;width:50%}.column.is-offset-6-widescreen{margin-left:50%}.column.is-7-widescreen{flex:none;width:58.33333%}.column.is-offset-7-widescreen{margin-left:58.33333%}.column.is-8-widescreen{flex:none;width:66.66667%}.column.is-offset-8-widescreen{margin-left:66.66667%}.column.is-9-widescreen{flex:none;width:75%}.column.is-offset-9-widescreen{margin-left:75%}.column.is-10-widescreen{flex:none;width:83.33333%}.column.is-offset-10-widescreen{margin-left:83.33333%}.column.is-11-widescreen{flex:none;width:91.66667%}.column.is-offset-11-widescreen{margin-left:91.66667%}.column.is-12-widescreen{flex:none;width:100%}.column.is-offset-12-widescreen{margin-left:100%}}@media screen and (min-width:1408px){.column.is-narrow-fullhd{flex:none}.column.is-full-fullhd{flex:none;width:100%}.column.is-three-quarters-fullhd{flex:none;width:75%}.column.is-two-thirds-fullhd{flex:none;width:66.6666%}.column.is-half-fullhd{flex:none;width:50%}.column.is-one-third-fullhd{flex:none;width:33.3333%}.column.is-one-quarter-fullhd{flex:none;width:25%}.column.is-one-fifth-fullhd{flex:none;width:20%}.column.is-two-fifths-fullhd{flex:none;width:40%}.column.is-three-fifths-fullhd{flex:none;width:60%}.column.is-four-fifths-fullhd{flex:none;width:80%}.column.is-offset-three-quarters-fullhd{margin-left:75%}.column.is-offset-two-thirds-fullhd{margin-left:66.6666%}.column.is-offset-half-fullhd{margin-left:50%}.column.is-offset-one-third-fullhd{margin-left:33.3333%}.column.is-offset-one-quarter-fullhd{margin-left:25%}.column.is-offset-one-fifth-fullhd{margin-left:20%}.column.is-offset-two-fifths-fullhd{margin-left:40%}.column.is-offset-three-fifths-fullhd{margin-left:60%}.column.is-offset-four-fifths-fullhd{margin-left:80%}.column.is-0-fullhd{flex:none;width:0%}.column.is-offset-0-fullhd{margin-left:0}.column.is-1-fullhd{flex:none;width:8.33333%}.column.is-offset-1-fullhd{margin-left:8.33333%}.column.is-2-fullhd{flex:none;width:16.66667%}.column.is-offset-2-fullhd{margin-left:16.66667%}.column.is-3-fullhd{flex:none;width:25%}.column.is-offset-3-fullhd{margin-left:25%}.column.is-4-fullhd{flex:none;width:33.33333%}.column.is-offset-4-fullhd{margin-left:33.33333%}.column.is-5-fullhd{flex:none;width:41.66667%}.column.is-offset-5-fullhd{margin-left:41.66667%}.column.is-6-fullhd{flex:none;width:50%}.column.is-offset-6-fullhd{margin-left:50%}.column.is-7-fullhd{flex:none;width:58.33333%}.column.is-offset-7-fullhd{margin-left:58.33333%}.column.is-8-fullhd{flex:none;width:66.66667%}.column.is-offset-8-fullhd{margin-left:66.66667%}.column.is-9-fullhd{flex:none;width:75%}.column.is-offset-9-fullhd{margin-left:75%}.column.is-10-fullhd{flex:none;width:83.33333%}.column.is-offset-10-fullhd{margin-left:83.33333%}.column.is-11-fullhd{flex:none;width:91.66667%}.column.is-offset-11-fullhd{margin-left:91.66667%}.column.is-12-fullhd{flex:none;width:100%}.column.is-offset-12-fullhd{margin-left:100%}}.columns{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}.columns:last-child{margin-bottom:-.75rem}.columns:not(:last-child){margin-bottom:calc(1.5rem - .75rem)}.columns.is-centered{justify-content:center}.columns.is-gapless{margin-left:0;margin-right:0;margin-top:0}.columns.is-gapless>.column{margin:0;padding:0!important}.columns.is-gapless:not(:last-child){margin-bottom:1.5rem}.columns.is-gapless:last-child{margin-bottom:0}.columns.is-mobile{display:flex}.columns.is-multiline{flex-wrap:wrap}.columns.is-vcentered{align-items:center}@media screen and (min-width:769px),print{.columns:not(.is-desktop){display:flex}}@media screen and (min-width:1024px){.columns.is-desktop{display:flex}}.columns.is-variable{--columnGap:0.75rem;margin-left:calc(-1 * var(--columnGap));margin-right:calc(-1 * var(--columnGap))}.columns.is-variable .column{padding-left:var(--columnGap);padding-right:var(--columnGap)}.columns.is-variable.is-0{--columnGap:0rem}@media screen and (max-width:768px){.columns.is-variable.is-0-mobile{--columnGap:0rem}}@media screen and (min-width:769px),print{.columns.is-variable.is-0-tablet{--columnGap:0rem}}@media screen and (min-width:769px) and (max-width:1023px){.columns.is-variable.is-0-tablet-only{--columnGap:0rem}}@media screen and (max-width:1023px){.columns.is-variable.is-0-touch{--columnGap:0rem}}@media screen and (min-width:1024px){.columns.is-variable.is-0-desktop{--columnGap:0rem}}@media screen and (min-width:1024px) and (max-width:1215px){.columns.is-variable.is-0-desktop-only{--columnGap:0rem}}@media screen and (min-width:1216px){.columns.is-variable.is-0-widescreen{--columnGap:0rem}}@media screen and (min-width:1216px) and (max-width:1407px){.columns.is-variable.is-0-widescreen-only{--columnGap:0rem}}@media screen and (min-width:1408px){.columns.is-variable.is-0-fullhd{--columnGap:0rem}}.columns.is-variable.is-1{--columnGap:0.25rem}@media screen and (max-width:768px){.columns.is-variable.is-1-mobile{--columnGap:0.25rem}}@media screen and (min-width:769px),print{.columns.is-variable.is-1-tablet{--columnGap:0.25rem}}@media screen and (min-width:769px) and (max-width:1023px){.columns.is-variable.is-1-tablet-only{--columnGap:0.25rem}}@media screen and (max-width:1023px){.columns.is-variable.is-1-touch{--columnGap:0.25rem}}@media screen and (min-width:1024px){.columns.is-variable.is-1-desktop{--columnGap:0.25rem}}@media screen and (min-width:1024px) and (max-width:1215px){.columns.is-variable.is-1-desktop-only{--columnGap:0.25rem}}@media screen and (min-width:1216px){.columns.is-variable.is-1-widescreen{--columnGap:0.25rem}}@media screen and (min-width:1216px) and (max-width:1407px){.columns.is-variable.is-1-widescreen-only{--columnGap:0.25rem}}@media screen and (min-width:1408px){.columns.is-variable.is-1-fullhd{--columnGap:0.25rem}}.columns.is-variable.is-2{--columnGap:0.5rem}@media screen and (max-width:768px){.columns.is-variable.is-2-mobile{--columnGap:0.5rem}}@media screen and (min-width:769px),print{.columns.is-variable.is-2-tablet{--columnGap:0.5rem}}@media screen and (min-width:769px) and (max-width:1023px){.columns.is-variable.is-2-tablet-only{--columnGap:0.5rem}}@media screen and (max-width:1023px){.columns.is-variable.is-2-touch{--columnGap:0.5rem}}@media screen and (min-width:1024px){.columns.is-variable.is-2-desktop{--columnGap:0.5rem}}@media screen and (min-width:1024px) and (max-width:1215px){.columns.is-variable.is-2-desktop-only{--columnGap:0.5rem}}@media screen and (min-width:1216px){.columns.is-variable.is-2-widescreen{--columnGap:0.5rem}}@media screen and (min-width:1216px) and (max-width:1407px){.columns.is-variable.is-2-widescreen-only{--columnGap:0.5rem}}@media screen and (min-width:1408px){.columns.is-variable.is-2-fullhd{--columnGap:0.5rem}}.columns.is-variable.is-3{--columnGap:0.75rem}@media screen and (max-width:768px){.columns.is-variable.is-3-mobile{--columnGap:0.75rem}}@media screen and (min-width:769px),print{.columns.is-variable.is-3-tablet{--columnGap:0.75rem}}@media screen and (min-width:769px) and (max-width:1023px){.columns.is-variable.is-3-tablet-only{--columnGap:0.75rem}}@media screen and (max-width:1023px){.columns.is-variable.is-3-touch{--columnGap:0.75rem}}@media screen and (min-width:1024px){.columns.is-variable.is-3-desktop{--columnGap:0.75rem}}@media screen and (min-width:1024px) and (max-width:1215px){.columns.is-variable.is-3-desktop-only{--columnGap:0.75rem}}@media screen and (min-width:1216px){.columns.is-variable.is-3-widescreen{--columnGap:0.75rem}}@media screen and (min-width:1216px) and (max-width:1407px){.columns.is-variable.is-3-widescreen-only{--columnGap:0.75rem}}@media screen and (min-width:1408px){.columns.is-variable.is-3-fullhd{--columnGap:0.75rem}}.columns.is-variable.is-4{--columnGap:1rem}@media screen and (max-width:768px){.columns.is-variable.is-4-mobile{--columnGap:1rem}}@media screen and (min-width:769px),print{.columns.is-variable.is-4-tablet{--columnGap:1rem}}@media screen and (min-width:769px) and (max-width:1023px){.columns.is-variable.is-4-tablet-only{--columnGap:1rem}}@media screen and (max-width:1023px){.columns.is-variable.is-4-touch{--columnGap:1rem}}@media screen and (min-width:1024px){.columns.is-variable.is-4-desktop{--columnGap:1rem}}@media screen and (min-width:1024px) and (max-width:1215px){.columns.is-variable.is-4-desktop-only{--columnGap:1rem}}@media screen and (min-width:1216px){.columns.is-variable.is-4-widescreen{--columnGap:1rem}}@media screen and (min-width:1216px) and (max-width:1407px){.columns.is-variable.is-4-widescreen-only{--columnGap:1rem}}@media screen and (min-width:1408px){.columns.is-variable.is-4-fullhd{--columnGap:1rem}}.columns.is-variable.is-5{--columnGap:1.25rem}@media screen and (max-width:768px){.columns.is-variable.is-5-mobile{--columnGap:1.25rem}}@media screen and (min-width:769px),print{.columns.is-variable.is-5-tablet{--columnGap:1.25rem}}@media screen and (min-width:769px) and (max-width:1023px){.columns.is-variable.is-5-tablet-only{--columnGap:1.25rem}}@media screen and (max-width:1023px){.columns.is-variable.is-5-touch{--columnGap:1.25rem}}@media screen and (min-width:1024px){.columns.is-variable.is-5-desktop{--columnGap:1.25rem}}@media screen and (min-width:1024px) and (max-width:1215px){.columns.is-variable.is-5-desktop-only{--columnGap:1.25rem}}@media screen and (min-width:1216px){.columns.is-variable.is-5-widescreen{--columnGap:1.25rem}}@media screen and (min-width:1216px) and (max-width:1407px){.columns.is-variable.is-5-widescreen-only{--columnGap:1.25rem}}@media screen and (min-width:1408px){.columns.is-variable.is-5-fullhd{--columnGap:1.25rem}}.columns.is-variable.is-6{--columnGap:1.5rem}@media screen and (max-width:768px){.columns.is-variable.is-6-mobile{--columnGap:1.5rem}}@media screen and (min-width:769px),print{.columns.is-variable.is-6-tablet{--columnGap:1.5rem}}@media screen and (min-width:769px) and (max-width:1023px){.columns.is-variable.is-6-tablet-only{--columnGap:1.5rem}}@media screen and (max-width:1023px){.columns.is-variable.is-6-touch{--columnGap:1.5rem}}@media screen and (min-width:1024px){.columns.is-variable.is-6-desktop{--columnGap:1.5rem}}@media screen and (min-width:1024px) and (max-width:1215px){.columns.is-variable.is-6-desktop-only{--columnGap:1.5rem}}@media screen and (min-width:1216px){.columns.is-variable.is-6-widescreen{--columnGap:1.5rem}}@media screen and (min-width:1216px) and (max-width:1407px){.columns.is-variable.is-6-widescreen-only{--columnGap:1.5rem}}@media screen and (min-width:1408px){.columns.is-variable.is-6-fullhd{--columnGap:1.5rem}}.columns.is-variable.is-7{--columnGap:1.75rem}@media screen and (max-width:768px){.columns.is-variable.is-7-mobile{--columnGap:1.75rem}}@media screen and (min-width:769px),print{.columns.is-variable.is-7-tablet{--columnGap:1.75rem}}@media screen and (min-width:769px) and (max-width:1023px){.columns.is-variable.is-7-tablet-only{--columnGap:1.75rem}}@media screen and (max-width:1023px){.columns.is-variable.is-7-touch{--columnGap:1.75rem}}@media screen and (min-width:1024px){.columns.is-variable.is-7-desktop{--columnGap:1.75rem}}@media screen and (min-width:1024px) and (max-width:1215px){.columns.is-variable.is-7-desktop-only{--columnGap:1.75rem}}@media screen and (min-width:1216px){.columns.is-variable.is-7-widescreen{--columnGap:1.75rem}}@media screen and (min-width:1216px) and (max-width:1407px){.columns.is-variable.is-7-widescreen-only{--columnGap:1.75rem}}@media screen and (min-width:1408px){.columns.is-variable.is-7-fullhd{--columnGap:1.75rem}}.columns.is-variable.is-8{--columnGap:2rem}@media screen and (max-width:768px){.columns.is-variable.is-8-mobile{--columnGap:2rem}}@media screen and (min-width:769px),print{.columns.is-variable.is-8-tablet{--columnGap:2rem}}@media screen and (min-width:769px) and (max-width:1023px){.columns.is-variable.is-8-tablet-only{--columnGap:2rem}}@media screen and (max-width:1023px){.columns.is-variable.is-8-touch{--columnGap:2rem}}@media screen and (min-width:1024px){.columns.is-variable.is-8-desktop{--columnGap:2rem}}@media screen and (min-width:1024px) and (max-width:1215px){.columns.is-variable.is-8-desktop-only{--columnGap:2rem}}@media screen and (min-width:1216px){.columns.is-variable.is-8-widescreen{--columnGap:2rem}}@media screen and (min-width:1216px) and (max-width:1407px){.columns.is-variable.is-8-widescreen-only{--columnGap:2rem}}@media screen and (min-width:1408px){.columns.is-variable.is-8-fullhd{--columnGap:2rem}}.tile{align-items:stretch;display:block;flex-basis:0;flex-grow:1;flex-shrink:1;min-height:-webkit-min-content;min-height:-moz-min-content;min-height:min-content}.tile.is-ancestor{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}.tile.is-ancestor:last-child{margin-bottom:-.75rem}.tile.is-ancestor:not(:last-child){margin-bottom:.75rem}.tile.is-child{margin:0!important}.tile.is-parent{padding:.75rem}.tile.is-vertical{flex-direction:column}.tile.is-vertical>.tile.is-child:not(:last-child){margin-bottom:1.5rem!important}@media screen and (min-width:769px),print{.tile:not(.is-child){display:flex}.tile.is-1{flex:none;width:8.33333%}.tile.is-2{flex:none;width:16.66667%}.tile.is-3{flex:none;width:25%}.tile.is-4{flex:none;width:33.33333%}.tile.is-5{flex:none;width:41.66667%}.tile.is-6{flex:none;width:50%}.tile.is-7{flex:none;width:58.33333%}.tile.is-8{flex:none;width:66.66667%}.tile.is-9{flex:none;width:75%}.tile.is-10{flex:none;width:83.33333%}.tile.is-11{flex:none;width:91.66667%}.tile.is-12{flex:none;width:100%}}.has-text-white{color:#fff!important}a.has-text-white:focus,a.has-text-white:hover{color:#e6e6e6!important}.has-background-white{background-color:#fff!important}.has-text-black{color:#0a0a0a!important}a.has-text-black:focus,a.has-text-black:hover{color:#000!important}.has-background-black{background-color:#0a0a0a!important}.has-text-light{color:#f5f5f5!important}a.has-text-light:focus,a.has-text-light:hover{color:#dbdbdb!important}.has-background-light{background-color:#f5f5f5!important}.has-text-dark{color:#363636!important}a.has-text-dark:focus,a.has-text-dark:hover{color:#1c1c1c!important}.has-background-dark{background-color:#363636!important}.has-text-primary{color:#00d1b2!important}a.has-text-primary:focus,a.has-text-primary:hover{color:#009e86!important}.has-background-primary{background-color:#00d1b2!important}.has-text-primary-light{color:#ebfffc!important}a.has-text-primary-light:focus,a.has-text-primary-light:hover{color:#b8fff4!important}.has-background-primary-light{background-color:#ebfffc!important}.has-text-primary-dark{color:#00947e!important}a.has-text-primary-dark:focus,a.has-text-primary-dark:hover{color:#00c7a9!important}.has-background-primary-dark{background-color:#00947e!important}.has-text-link{color:#3273dc!important}a.has-text-link:focus,a.has-text-link:hover{color:#205bbc!important}.has-background-link{background-color:#3273dc!important}.has-text-link-light{color:#eef3fc!important}a.has-text-link-light:focus,a.has-text-link-light:hover{color:#c2d5f5!important}.has-background-link-light{background-color:#eef3fc!important}.has-text-link-dark{color:#2160c4!important}a.has-text-link-dark:focus,a.has-text-link-dark:hover{color:#3b79de!important}.has-background-link-dark{background-color:#2160c4!important}.has-text-info{color:#3298dc!important}a.has-text-info:focus,a.has-text-info:hover{color:#207dbc!important}.has-background-info{background-color:#3298dc!important}.has-text-info-light{color:#eef6fc!important}a.has-text-info-light:focus,a.has-text-info-light:hover{color:#c2e0f5!important}.has-background-info-light{background-color:#eef6fc!important}.has-text-info-dark{color:#1d72aa!important}a.has-text-info-dark:focus,a.has-text-info-dark:hover{color:#248fd6!important}.has-background-info-dark{background-color:#1d72aa!important}.has-text-success{color:#48c774!important}a.has-text-success:focus,a.has-text-success:hover{color:#34a85c!important}.has-background-success{background-color:#48c774!important}.has-text-success-light{color:#effaf3!important}a.has-text-success-light:focus,a.has-text-success-light:hover{color:#c8eed6!important}.has-background-success-light{background-color:#effaf3!important}.has-text-success-dark{color:#257942!important}a.has-text-success-dark:focus,a.has-text-success-dark:hover{color:#31a058!important}.has-background-success-dark{background-color:#257942!important}.has-text-warning{color:#ffdd57!important}a.has-text-warning:focus,a.has-text-warning:hover{color:#ffd324!important}.has-background-warning{background-color:#ffdd57!important}.has-text-warning-light{color:#fffbeb!important}a.has-text-warning-light:focus,a.has-text-warning-light:hover{color:#fff1b8!important}.has-background-warning-light{background-color:#fffbeb!important}.has-text-warning-dark{color:#947600!important}a.has-text-warning-dark:focus,a.has-text-warning-dark:hover{color:#c79f00!important}.has-background-warning-dark{background-color:#947600!important}.has-text-danger{color:#f14668!important}a.has-text-danger:focus,a.has-text-danger:hover{color:#ee1742!important}.has-background-danger{background-color:#f14668!important}.has-text-danger-light{color:#feecf0!important}a.has-text-danger-light:focus,a.has-text-danger-light:hover{color:#fabdc9!important}.has-background-danger-light{background-color:#feecf0!important}.has-text-danger-dark{color:#cc0f35!important}a.has-text-danger-dark:focus,a.has-text-danger-dark:hover{color:#ee2049!important}.has-background-danger-dark{background-color:#cc0f35!important}.has-text-black-bis{color:#121212!important}.has-background-black-bis{background-color:#121212!important}.has-text-black-ter{color:#242424!important}.has-background-black-ter{background-color:#242424!important}.has-text-grey-darker{color:#363636!important}.has-background-grey-darker{background-color:#363636!important}.has-text-grey-dark{color:#4a4a4a!important}.has-background-grey-dark{background-color:#4a4a4a!important}.has-text-grey{color:#7a7a7a!important}.has-background-grey{background-color:#7a7a7a!important}.has-text-grey-light{color:#b5b5b5!important}.has-background-grey-light{background-color:#b5b5b5!important}.has-text-grey-lighter{color:#dbdbdb!important}.has-background-grey-lighter{background-color:#dbdbdb!important}.has-text-white-ter{color:#f5f5f5!important}.has-background-white-ter{background-color:#f5f5f5!important}.has-text-white-bis{color:#fafafa!important}.has-background-white-bis{background-color:#fafafa!important}.is-flex-direction-row{flex-direction:row!important}.is-flex-direction-row-reverse{flex-direction:row-reverse!important}.is-flex-direction-column{flex-direction:column!important}.is-flex-direction-column-reverse{flex-direction:column-reverse!important}.is-flex-wrap-nowrap{flex-wrap:nowrap!important}.is-flex-wrap-wrap{flex-wrap:wrap!important}.is-flex-wrap-wrap-reverse{flex-wrap:wrap-reverse!important}.is-justify-content-flex-start{justify-content:flex-start!important}.is-justify-content-flex-end{justify-content:flex-end!important}.is-justify-content-center{justify-content:center!important}.is-justify-content-space-between{justify-content:space-between!important}.is-justify-content-space-around{justify-content:space-around!important}.is-justify-content-space-evenly{justify-content:space-evenly!important}.is-justify-content-start{justify-content:start!important}.is-justify-content-end{justify-content:end!important}.is-justify-content-left{justify-content:left!important}.is-justify-content-right{justify-content:right!important}.is-align-content-flex-start{align-content:flex-start!important}.is-align-content-flex-end{align-content:flex-end!important}.is-align-content-center{align-content:center!important}.is-align-content-space-between{align-content:space-between!important}.is-align-content-space-around{align-content:space-around!important}.is-align-content-space-evenly{align-content:space-evenly!important}.is-align-content-stretch{align-content:stretch!important}.is-align-content-start{align-content:start!important}.is-align-content-end{align-content:end!important}.is-align-content-baseline{align-content:baseline!important}.is-align-items-stretch{align-items:stretch!important}.is-align-items-flex-start{align-items:flex-start!important}.is-align-items-flex-end{align-items:flex-end!important}.is-align-items-center{align-items:center!important}.is-align-items-baseline{align-items:baseline!important}.is-align-items-start{align-items:start!important}.is-align-items-end{align-items:end!important}.is-align-items-self-start{align-items:self-start!important}.is-align-items-self-end{align-items:self-end!important}.is-align-self-auto{align-self:auto!important}.is-align-self-flex-start{align-self:flex-start!important}.is-align-self-flex-end{align-self:flex-end!important}.is-align-self-center{align-self:center!important}.is-align-self-baseline{align-self:baseline!important}.is-align-self-stretch{align-self:stretch!important}.is-flex-grow-0{flex-grow:0!important}.is-flex-grow-1{flex-grow:1!important}.is-flex-grow-2{flex-grow:2!important}.is-flex-grow-3{flex-grow:3!important}.is-flex-grow-4{flex-grow:4!important}.is-flex-grow-5{flex-grow:5!important}.is-flex-shrink-0{flex-shrink:0!important}.is-flex-shrink-1{flex-shrink:1!important}.is-flex-shrink-2{flex-shrink:2!important}.is-flex-shrink-3{flex-shrink:3!important}.is-flex-shrink-4{flex-shrink:4!important}.is-flex-shrink-5{flex-shrink:5!important}.is-clearfix::after{clear:both;content:" ";display:table}.is-pulled-left{float:left!important}.is-pulled-right{float:right!important}.is-radiusless{border-radius:0!important}.is-shadowless{box-shadow:none!important}.is-clickable{cursor:pointer!important}.is-clipped{overflow:hidden!important}.is-relative{position:relative!important}.is-marginless{margin:0!important}.is-paddingless{padding:0!important}.m-0{margin:0!important}.mt-0{margin-top:0!important}.mr-0{margin-right:0!important}.mb-0{margin-bottom:0!important}.ml-0{margin-left:0!important}.mx-0{margin-left:0!important;margin-right:0!important}.my-0{margin-top:0!important;margin-bottom:0!important}.m-1{margin:.25rem!important}.mt-1{margin-top:.25rem!important}.mr-1{margin-right:.25rem!important}.mb-1{margin-bottom:.25rem!important}.ml-1{margin-left:.25rem!important}.mx-1{margin-left:.25rem!important;margin-right:.25rem!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.m-2{margin:.5rem!important}.mt-2{margin-top:.5rem!important}.mr-2{margin-right:.5rem!important}.mb-2{margin-bottom:.5rem!important}.ml-2{margin-left:.5rem!important}.mx-2{margin-left:.5rem!important;margin-right:.5rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.m-3{margin:.75rem!important}.mt-3{margin-top:.75rem!important}.mr-3{margin-right:.75rem!important}.mb-3{margin-bottom:.75rem!important}.ml-3{margin-left:.75rem!important}.mx-3{margin-left:.75rem!important;margin-right:.75rem!important}.my-3{margin-top:.75rem!important;margin-bottom:.75rem!important}.m-4{margin:1rem!important}.mt-4{margin-top:1rem!important}.mr-4{margin-right:1rem!important}.mb-4{margin-bottom:1rem!important}.ml-4{margin-left:1rem!important}.mx-4{margin-left:1rem!important;margin-right:1rem!important}.my-4{margin-top:1rem!important;margin-bottom:1rem!important}.m-5{margin:1.5rem!important}.mt-5{margin-top:1.5rem!important}.mr-5{margin-right:1.5rem!important}.mb-5{margin-bottom:1.5rem!important}.ml-5{margin-left:1.5rem!important}.mx-5{margin-left:1.5rem!important;margin-right:1.5rem!important}.my-5{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.m-6{margin:3rem!important}.mt-6{margin-top:3rem!important}.mr-6{margin-right:3rem!important}.mb-6{margin-bottom:3rem!important}.ml-6{margin-left:3rem!important}.mx-6{margin-left:3rem!important;margin-right:3rem!important}.my-6{margin-top:3rem!important;margin-bottom:3rem!important}.p-0{padding:0!important}.pt-0{padding-top:0!important}.pr-0{padding-right:0!important}.pb-0{padding-bottom:0!important}.pl-0{padding-left:0!important}.px-0{padding-left:0!important;padding-right:0!important}.py-0{padding-top:0!important;padding-bottom:0!important}.p-1{padding:.25rem!important}.pt-1{padding-top:.25rem!important}.pr-1{padding-right:.25rem!important}.pb-1{padding-bottom:.25rem!important}.pl-1{padding-left:.25rem!important}.px-1{padding-left:.25rem!important;padding-right:.25rem!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.p-2{padding:.5rem!important}.pt-2{padding-top:.5rem!important}.pr-2{padding-right:.5rem!important}.pb-2{padding-bottom:.5rem!important}.pl-2{padding-left:.5rem!important}.px-2{padding-left:.5rem!important;padding-right:.5rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.p-3{padding:.75rem!important}.pt-3{padding-top:.75rem!important}.pr-3{padding-right:.75rem!important}.pb-3{padding-bottom:.75rem!important}.pl-3{padding-left:.75rem!important}.px-3{padding-left:.75rem!important;padding-right:.75rem!important}.py-3{padding-top:.75rem!important;padding-bottom:.75rem!important}.p-4{padding:1rem!important}.pt-4{padding-top:1rem!important}.pr-4{padding-right:1rem!important}.pb-4{padding-bottom:1rem!important}.pl-4{padding-left:1rem!important}.px-4{padding-left:1rem!important;padding-right:1rem!important}.py-4{padding-top:1rem!important;padding-bottom:1rem!important}.p-5{padding:1.5rem!important}.pt-5{padding-top:1.5rem!important}.pr-5{padding-right:1.5rem!important}.pb-5{padding-bottom:1.5rem!important}.pl-5{padding-left:1.5rem!important}.px-5{padding-left:1.5rem!important;padding-right:1.5rem!important}.py-5{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.p-6{padding:3rem!important}.pt-6{padding-top:3rem!important}.pr-6{padding-right:3rem!important}.pb-6{padding-bottom:3rem!important}.pl-6{padding-left:3rem!important}.px-6{padding-left:3rem!important;padding-right:3rem!important}.py-6{padding-top:3rem!important;padding-bottom:3rem!important}.is-size-1{font-size:3rem!important}.is-size-2{font-size:2.5rem!important}.is-size-3{font-size:2rem!important}.is-size-4{font-size:1.5rem!important}.is-size-5{font-size:1.25rem!important}.is-size-6{font-size:1rem!important}.is-size-7{font-size:.75rem!important}@media screen and (max-width:768px){.is-size-1-mobile{font-size:3rem!important}.is-size-2-mobile{font-size:2.5rem!important}.is-size-3-mobile{font-size:2rem!important}.is-size-4-mobile{font-size:1.5rem!important}.is-size-5-mobile{font-size:1.25rem!important}.is-size-6-mobile{font-size:1rem!important}.is-size-7-mobile{font-size:.75rem!important}}@media screen and (min-width:769px),print{.is-size-1-tablet{font-size:3rem!important}.is-size-2-tablet{font-size:2.5rem!important}.is-size-3-tablet{font-size:2rem!important}.is-size-4-tablet{font-size:1.5rem!important}.is-size-5-tablet{font-size:1.25rem!important}.is-size-6-tablet{font-size:1rem!important}.is-size-7-tablet{font-size:.75rem!important}}@media screen and (max-width:1023px){.is-size-1-touch{font-size:3rem!important}.is-size-2-touch{font-size:2.5rem!important}.is-size-3-touch{font-size:2rem!important}.is-size-4-touch{font-size:1.5rem!important}.is-size-5-touch{font-size:1.25rem!important}.is-size-6-touch{font-size:1rem!important}.is-size-7-touch{font-size:.75rem!important}}@media screen and (min-width:1024px){.is-size-1-desktop{font-size:3rem!important}.is-size-2-desktop{font-size:2.5rem!important}.is-size-3-desktop{font-size:2rem!important}.is-size-4-desktop{font-size:1.5rem!important}.is-size-5-desktop{font-size:1.25rem!important}.is-size-6-desktop{font-size:1rem!important}.is-size-7-desktop{font-size:.75rem!important}}@media screen and (min-width:1216px){.is-size-1-widescreen{font-size:3rem!important}.is-size-2-widescreen{font-size:2.5rem!important}.is-size-3-widescreen{font-size:2rem!important}.is-size-4-widescreen{font-size:1.5rem!important}.is-size-5-widescreen{font-size:1.25rem!important}.is-size-6-widescreen{font-size:1rem!important}.is-size-7-widescreen{font-size:.75rem!important}}@media screen and (min-width:1408px){.is-size-1-fullhd{font-size:3rem!important}.is-size-2-fullhd{font-size:2.5rem!important}.is-size-3-fullhd{font-size:2rem!important}.is-size-4-fullhd{font-size:1.5rem!important}.is-size-5-fullhd{font-size:1.25rem!important}.is-size-6-fullhd{font-size:1rem!important}.is-size-7-fullhd{font-size:.75rem!important}}.has-text-centered{text-align:center!important}.has-text-justified{text-align:justify!important}.has-text-left{text-align:left!important}.has-text-right{text-align:right!important}@media screen and (max-width:768px){.has-text-centered-mobile{text-align:center!important}}@media screen and (min-width:769px),print{.has-text-centered-tablet{text-align:center!important}}@media screen and (min-width:769px) and (max-width:1023px){.has-text-centered-tablet-only{text-align:center!important}}@media screen and (max-width:1023px){.has-text-centered-touch{text-align:center!important}}@media screen and (min-width:1024px){.has-text-centered-desktop{text-align:center!important}}@media screen and (min-width:1024px) and (max-width:1215px){.has-text-centered-desktop-only{text-align:center!important}}@media screen and (min-width:1216px){.has-text-centered-widescreen{text-align:center!important}}@media screen and (min-width:1216px) and (max-width:1407px){.has-text-centered-widescreen-only{text-align:center!important}}@media screen and (min-width:1408px){.has-text-centered-fullhd{text-align:center!important}}@media screen and (max-width:768px){.has-text-justified-mobile{text-align:justify!important}}@media screen and (min-width:769px),print{.has-text-justified-tablet{text-align:justify!important}}@media screen and (min-width:769px) and (max-width:1023px){.has-text-justified-tablet-only{text-align:justify!important}}@media screen and (max-width:1023px){.has-text-justified-touch{text-align:justify!important}}@media screen and (min-width:1024px){.has-text-justified-desktop{text-align:justify!important}}@media screen and (min-width:1024px) and (max-width:1215px){.has-text-justified-desktop-only{text-align:justify!important}}@media screen and (min-width:1216px){.has-text-justified-widescreen{text-align:justify!important}}@media screen and (min-width:1216px) and (max-width:1407px){.has-text-justified-widescreen-only{text-align:justify!important}}@media screen and (min-width:1408px){.has-text-justified-fullhd{text-align:justify!important}}@media screen and (max-width:768px){.has-text-left-mobile{text-align:left!important}}@media screen and (min-width:769px),print{.has-text-left-tablet{text-align:left!important}}@media screen and (min-width:769px) and (max-width:1023px){.has-text-left-tablet-only{text-align:left!important}}@media screen and (max-width:1023px){.has-text-left-touch{text-align:left!important}}@media screen and (min-width:1024px){.has-text-left-desktop{text-align:left!important}}@media screen and (min-width:1024px) and (max-width:1215px){.has-text-left-desktop-only{text-align:left!important}}@media screen and (min-width:1216px){.has-text-left-widescreen{text-align:left!important}}@media screen and (min-width:1216px) and (max-width:1407px){.has-text-left-widescreen-only{text-align:left!important}}@media screen and (min-width:1408px){.has-text-left-fullhd{text-align:left!important}}@media screen and (max-width:768px){.has-text-right-mobile{text-align:right!important}}@media screen and (min-width:769px),print{.has-text-right-tablet{text-align:right!important}}@media screen and (min-width:769px) and (max-width:1023px){.has-text-right-tablet-only{text-align:right!important}}@media screen and (max-width:1023px){.has-text-right-touch{text-align:right!important}}@media screen and (min-width:1024px){.has-text-right-desktop{text-align:right!important}}@media screen and (min-width:1024px) and (max-width:1215px){.has-text-right-desktop-only{text-align:right!important}}@media screen and (min-width:1216px){.has-text-right-widescreen{text-align:right!important}}@media screen and (min-width:1216px) and (max-width:1407px){.has-text-right-widescreen-only{text-align:right!important}}@media screen and (min-width:1408px){.has-text-right-fullhd{text-align:right!important}}.is-capitalized{text-transform:capitalize!important}.is-lowercase{text-transform:lowercase!important}.is-uppercase{text-transform:uppercase!important}.is-italic{font-style:italic!important}.has-text-weight-light{font-weight:300!important}.has-text-weight-normal{font-weight:400!important}.has-text-weight-medium{font-weight:500!important}.has-text-weight-semibold{font-weight:600!important}.has-text-weight-bold{font-weight:700!important}.is-family-primary{font-family:BlinkMacSystemFont,-apple-system,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",Helvetica,Arial,sans-serif!important}.is-family-secondary{font-family:BlinkMacSystemFont,-apple-system,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",Helvetica,Arial,sans-serif!important}.is-family-sans-serif{font-family:BlinkMacSystemFont,-apple-system,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",Helvetica,Arial,sans-serif!important}.is-family-monospace{font-family:monospace!important}.is-family-code{font-family:monospace!important}.is-block{display:block!important}@media screen and (max-width:768px){.is-block-mobile{display:block!important}}@media screen and (min-width:769px),print{.is-block-tablet{display:block!important}}@media screen and (min-width:769px) and (max-width:1023px){.is-block-tablet-only{display:block!important}}@media screen and (max-width:1023px){.is-block-touch{display:block!important}}@media screen and (min-width:1024px){.is-block-desktop{display:block!important}}@media screen and (min-width:1024px) and (max-width:1215px){.is-block-desktop-only{display:block!important}}@media screen and (min-width:1216px){.is-block-widescreen{display:block!important}}@media screen and (min-width:1216px) and (max-width:1407px){.is-block-widescreen-only{display:block!important}}@media screen and (min-width:1408px){.is-block-fullhd{display:block!important}}.is-flex{display:flex!important}@media screen and (max-width:768px){.is-flex-mobile{display:flex!important}}@media screen and (min-width:769px),print{.is-flex-tablet{display:flex!important}}@media screen and (min-width:769px) and (max-width:1023px){.is-flex-tablet-only{display:flex!important}}@media screen and (max-width:1023px){.is-flex-touch{display:flex!important}}@media screen and (min-width:1024px){.is-flex-desktop{display:flex!important}}@media screen and (min-width:1024px) and (max-width:1215px){.is-flex-desktop-only{display:flex!important}}@media screen and (min-width:1216px){.is-flex-widescreen{display:flex!important}}@media screen and (min-width:1216px) and (max-width:1407px){.is-flex-widescreen-only{display:flex!important}}@media screen and (min-width:1408px){.is-flex-fullhd{display:flex!important}}.is-inline{display:inline!important}@media screen and (max-width:768px){.is-inline-mobile{display:inline!important}}@media screen and (min-width:769px),print{.is-inline-tablet{display:inline!important}}@media screen and (min-width:769px) and (max-width:1023px){.is-inline-tablet-only{display:inline!important}}@media screen and (max-width:1023px){.is-inline-touch{display:inline!important}}@media screen and (min-width:1024px){.is-inline-desktop{display:inline!important}}@media screen and (min-width:1024px) and (max-width:1215px){.is-inline-desktop-only{display:inline!important}}@media screen and (min-width:1216px){.is-inline-widescreen{display:inline!important}}@media screen and (min-width:1216px) and (max-width:1407px){.is-inline-widescreen-only{display:inline!important}}@media screen and (min-width:1408px){.is-inline-fullhd{display:inline!important}}.is-inline-block{display:inline-block!important}@media screen and (max-width:768px){.is-inline-block-mobile{display:inline-block!important}}@media screen and (min-width:769px),print{.is-inline-block-tablet{display:inline-block!important}}@media screen and (min-width:769px) and (max-width:1023px){.is-inline-block-tablet-only{display:inline-block!important}}@media screen and (max-width:1023px){.is-inline-block-touch{display:inline-block!important}}@media screen and (min-width:1024px){.is-inline-block-desktop{display:inline-block!important}}@media screen and (min-width:1024px) and (max-width:1215px){.is-inline-block-desktop-only{display:inline-block!important}}@media screen and (min-width:1216px){.is-inline-block-widescreen{display:inline-block!important}}@media screen and (min-width:1216px) and (max-width:1407px){.is-inline-block-widescreen-only{display:inline-block!important}}@media screen and (min-width:1408px){.is-inline-block-fullhd{display:inline-block!important}}.is-inline-flex{display:inline-flex!important}@media screen and (max-width:768px){.is-inline-flex-mobile{display:inline-flex!important}}@media screen and (min-width:769px),print{.is-inline-flex-tablet{display:inline-flex!important}}@media screen and (min-width:769px) and (max-width:1023px){.is-inline-flex-tablet-only{display:inline-flex!important}}@media screen and (max-width:1023px){.is-inline-flex-touch{display:inline-flex!important}}@media screen and (min-width:1024px){.is-inline-flex-desktop{display:inline-flex!important}}@media screen and (min-width:1024px) and (max-width:1215px){.is-inline-flex-desktop-only{display:inline-flex!important}}@media screen and (min-width:1216px){.is-inline-flex-widescreen{display:inline-flex!important}}@media screen and (min-width:1216px) and (max-width:1407px){.is-inline-flex-widescreen-only{display:inline-flex!important}}@media screen and (min-width:1408px){.is-inline-flex-fullhd{display:inline-flex!important}}.is-hidden{display:none!important}.is-sr-only{border:none!important;clip:rect(0,0,0,0)!important;height:.01em!important;overflow:hidden!important;padding:0!important;position:absolute!important;white-space:nowrap!important;width:.01em!important}@media screen and (max-width:768px){.is-hidden-mobile{display:none!important}}@media screen and (min-width:769px),print{.is-hidden-tablet{display:none!important}}@media screen and (min-width:769px) and (max-width:1023px){.is-hidden-tablet-only{display:none!important}}@media screen and (max-width:1023px){.is-hidden-touch{display:none!important}}@media screen and (min-width:1024px){.is-hidden-desktop{display:none!important}}@media screen and (min-width:1024px) and (max-width:1215px){.is-hidden-desktop-only{display:none!important}}@media screen and (min-width:1216px){.is-hidden-widescreen{display:none!important}}@media screen and (min-width:1216px) and (max-width:1407px){.is-hidden-widescreen-only{display:none!important}}@media screen and (min-width:1408px){.is-hidden-fullhd{display:none!important}}.is-invisible{visibility:hidden!important}@media screen and (max-width:768px){.is-invisible-mobile{visibility:hidden!important}}@media screen and (min-width:769px),print{.is-invisible-tablet{visibility:hidden!important}}@media screen and (min-width:769px) and (max-width:1023px){.is-invisible-tablet-only{visibility:hidden!important}}@media screen and (max-width:1023px){.is-invisible-touch{visibility:hidden!important}}@media screen and (min-width:1024px){.is-invisible-desktop{visibility:hidden!important}}@media screen and (min-width:1024px) and (max-width:1215px){.is-invisible-desktop-only{visibility:hidden!important}}@media screen and (min-width:1216px){.is-invisible-widescreen{visibility:hidden!important}}@media screen and (min-width:1216px) and (max-width:1407px){.is-invisible-widescreen-only{visibility:hidden!important}}@media screen and (min-width:1408px){.is-invisible-fullhd{visibility:hidden!important}}.hero{align-items:stretch;display:flex;flex-direction:column;justify-content:space-between}.hero .navbar{background:0 0}.hero .tabs ul{border-bottom:none}.hero.is-white{background-color:#fff;color:#0a0a0a}.hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-white strong{color:inherit}.hero.is-white .title{color:#0a0a0a}.hero.is-white .subtitle{color:rgba(10,10,10,.9)}.hero.is-white .subtitle a:not(.button),.hero.is-white .subtitle strong{color:#0a0a0a}@media screen and (max-width:1023px){.hero.is-white .navbar-menu{background-color:#fff}}.hero.is-white .navbar-item,.hero.is-white .navbar-link{color:rgba(10,10,10,.7)}.hero.is-white .navbar-link.is-active,.hero.is-white .navbar-link:hover,.hero.is-white a.navbar-item.is-active,.hero.is-white a.navbar-item:hover{background-color:#f2f2f2;color:#0a0a0a}.hero.is-white .tabs a{color:#0a0a0a;opacity:.9}.hero.is-white .tabs a:hover{opacity:1}.hero.is-white .tabs li.is-active a{opacity:1}.hero.is-white .tabs.is-boxed a,.hero.is-white .tabs.is-toggle a{color:#0a0a0a}.hero.is-white .tabs.is-boxed a:hover,.hero.is-white .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-white .tabs.is-boxed li.is-active a,.hero.is-white .tabs.is-boxed li.is-active a:hover,.hero.is-white .tabs.is-toggle li.is-active a,.hero.is-white .tabs.is-toggle li.is-active a:hover{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.hero.is-white.is-bold{background-image:linear-gradient(141deg,#e6e6e6 0,#fff 71%,#fff 100%)}@media screen and (max-width:768px){.hero.is-white.is-bold .navbar-menu{background-image:linear-gradient(141deg,#e6e6e6 0,#fff 71%,#fff 100%)}}.hero.is-black{background-color:#0a0a0a;color:#fff}.hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-black strong{color:inherit}.hero.is-black .title{color:#fff}.hero.is-black .subtitle{color:rgba(255,255,255,.9)}.hero.is-black .subtitle a:not(.button),.hero.is-black .subtitle strong{color:#fff}@media screen and (max-width:1023px){.hero.is-black .navbar-menu{background-color:#0a0a0a}}.hero.is-black .navbar-item,.hero.is-black .navbar-link{color:rgba(255,255,255,.7)}.hero.is-black .navbar-link.is-active,.hero.is-black .navbar-link:hover,.hero.is-black a.navbar-item.is-active,.hero.is-black a.navbar-item:hover{background-color:#000;color:#fff}.hero.is-black .tabs a{color:#fff;opacity:.9}.hero.is-black .tabs a:hover{opacity:1}.hero.is-black .tabs li.is-active a{opacity:1}.hero.is-black .tabs.is-boxed a,.hero.is-black .tabs.is-toggle a{color:#fff}.hero.is-black .tabs.is-boxed a:hover,.hero.is-black .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-black .tabs.is-boxed li.is-active a,.hero.is-black .tabs.is-boxed li.is-active a:hover,.hero.is-black .tabs.is-toggle li.is-active a,.hero.is-black .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#0a0a0a}.hero.is-black.is-bold{background-image:linear-gradient(141deg,#000 0,#0a0a0a 71%,#181616 100%)}@media screen and (max-width:768px){.hero.is-black.is-bold .navbar-menu{background-image:linear-gradient(141deg,#000 0,#0a0a0a 71%,#181616 100%)}}.hero.is-light{background-color:#f5f5f5;color:rgba(0,0,0,.7)}.hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-light strong{color:inherit}.hero.is-light .title{color:rgba(0,0,0,.7)}.hero.is-light .subtitle{color:rgba(0,0,0,.9)}.hero.is-light .subtitle a:not(.button),.hero.is-light .subtitle strong{color:rgba(0,0,0,.7)}@media screen and (max-width:1023px){.hero.is-light .navbar-menu{background-color:#f5f5f5}}.hero.is-light .navbar-item,.hero.is-light .navbar-link{color:rgba(0,0,0,.7)}.hero.is-light .navbar-link.is-active,.hero.is-light .navbar-link:hover,.hero.is-light a.navbar-item.is-active,.hero.is-light a.navbar-item:hover{background-color:#e8e8e8;color:rgba(0,0,0,.7)}.hero.is-light .tabs a{color:rgba(0,0,0,.7);opacity:.9}.hero.is-light .tabs a:hover{opacity:1}.hero.is-light .tabs li.is-active a{opacity:1}.hero.is-light .tabs.is-boxed a,.hero.is-light .tabs.is-toggle a{color:rgba(0,0,0,.7)}.hero.is-light .tabs.is-boxed a:hover,.hero.is-light .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-light .tabs.is-boxed li.is-active a,.hero.is-light .tabs.is-boxed li.is-active a:hover,.hero.is-light .tabs.is-toggle li.is-active a,.hero.is-light .tabs.is-toggle li.is-active a:hover{background-color:rgba(0,0,0,.7);border-color:rgba(0,0,0,.7);color:#f5f5f5}.hero.is-light.is-bold{background-image:linear-gradient(141deg,#dfd8d9 0,#f5f5f5 71%,#fff 100%)}@media screen and (max-width:768px){.hero.is-light.is-bold .navbar-menu{background-image:linear-gradient(141deg,#dfd8d9 0,#f5f5f5 71%,#fff 100%)}}.hero.is-dark{background-color:#363636;color:#fff}.hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-dark strong{color:inherit}.hero.is-dark .title{color:#fff}.hero.is-dark .subtitle{color:rgba(255,255,255,.9)}.hero.is-dark .subtitle a:not(.button),.hero.is-dark .subtitle strong{color:#fff}@media screen and (max-width:1023px){.hero.is-dark .navbar-menu{background-color:#363636}}.hero.is-dark .navbar-item,.hero.is-dark .navbar-link{color:rgba(255,255,255,.7)}.hero.is-dark .navbar-link.is-active,.hero.is-dark .navbar-link:hover,.hero.is-dark a.navbar-item.is-active,.hero.is-dark a.navbar-item:hover{background-color:#292929;color:#fff}.hero.is-dark .tabs a{color:#fff;opacity:.9}.hero.is-dark .tabs a:hover{opacity:1}.hero.is-dark .tabs li.is-active a{opacity:1}.hero.is-dark .tabs.is-boxed a,.hero.is-dark .tabs.is-toggle a{color:#fff}.hero.is-dark .tabs.is-boxed a:hover,.hero.is-dark .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-dark .tabs.is-boxed li.is-active a,.hero.is-dark .tabs.is-boxed li.is-active a:hover,.hero.is-dark .tabs.is-toggle li.is-active a,.hero.is-dark .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#363636}.hero.is-dark.is-bold{background-image:linear-gradient(141deg,#1f191a 0,#363636 71%,#46403f 100%)}@media screen and (max-width:768px){.hero.is-dark.is-bold .navbar-menu{background-image:linear-gradient(141deg,#1f191a 0,#363636 71%,#46403f 100%)}}.hero.is-primary{background-color:#00d1b2;color:#fff}.hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-primary strong{color:inherit}.hero.is-primary .title{color:#fff}.hero.is-primary .subtitle{color:rgba(255,255,255,.9)}.hero.is-primary .subtitle a:not(.button),.hero.is-primary .subtitle strong{color:#fff}@media screen and (max-width:1023px){.hero.is-primary .navbar-menu{background-color:#00d1b2}}.hero.is-primary .navbar-item,.hero.is-primary .navbar-link{color:rgba(255,255,255,.7)}.hero.is-primary .navbar-link.is-active,.hero.is-primary .navbar-link:hover,.hero.is-primary a.navbar-item.is-active,.hero.is-primary a.navbar-item:hover{background-color:#00b89c;color:#fff}.hero.is-primary .tabs a{color:#fff;opacity:.9}.hero.is-primary .tabs a:hover{opacity:1}.hero.is-primary .tabs li.is-active a{opacity:1}.hero.is-primary .tabs.is-boxed a,.hero.is-primary .tabs.is-toggle a{color:#fff}.hero.is-primary .tabs.is-boxed a:hover,.hero.is-primary .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-primary .tabs.is-boxed li.is-active a,.hero.is-primary .tabs.is-boxed li.is-active a:hover,.hero.is-primary .tabs.is-toggle li.is-active a,.hero.is-primary .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#00d1b2}.hero.is-primary.is-bold{background-image:linear-gradient(141deg,#009e6c 0,#00d1b2 71%,#00e7eb 100%)}@media screen and (max-width:768px){.hero.is-primary.is-bold .navbar-menu{background-image:linear-gradient(141deg,#009e6c 0,#00d1b2 71%,#00e7eb 100%)}}.hero.is-link{background-color:#3273dc;color:#fff}.hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-link strong{color:inherit}.hero.is-link .title{color:#fff}.hero.is-link .subtitle{color:rgba(255,255,255,.9)}.hero.is-link .subtitle a:not(.button),.hero.is-link .subtitle strong{color:#fff}@media screen and (max-width:1023px){.hero.is-link .navbar-menu{background-color:#3273dc}}.hero.is-link .navbar-item,.hero.is-link .navbar-link{color:rgba(255,255,255,.7)}.hero.is-link .navbar-link.is-active,.hero.is-link .navbar-link:hover,.hero.is-link a.navbar-item.is-active,.hero.is-link a.navbar-item:hover{background-color:#2366d1;color:#fff}.hero.is-link .tabs a{color:#fff;opacity:.9}.hero.is-link .tabs a:hover{opacity:1}.hero.is-link .tabs li.is-active a{opacity:1}.hero.is-link .tabs.is-boxed a,.hero.is-link .tabs.is-toggle a{color:#fff}.hero.is-link .tabs.is-boxed a:hover,.hero.is-link .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-link .tabs.is-boxed li.is-active a,.hero.is-link .tabs.is-boxed li.is-active a:hover,.hero.is-link .tabs.is-toggle li.is-active a,.hero.is-link .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#3273dc}.hero.is-link.is-bold{background-image:linear-gradient(141deg,#1577c6 0,#3273dc 71%,#4366e5 100%)}@media screen and (max-width:768px){.hero.is-link.is-bold .navbar-menu{background-image:linear-gradient(141deg,#1577c6 0,#3273dc 71%,#4366e5 100%)}}.hero.is-info{background-color:#3298dc;color:#fff}.hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-info strong{color:inherit}.hero.is-info .title{color:#fff}.hero.is-info .subtitle{color:rgba(255,255,255,.9)}.hero.is-info .subtitle a:not(.button),.hero.is-info .subtitle strong{color:#fff}@media screen and (max-width:1023px){.hero.is-info .navbar-menu{background-color:#3298dc}}.hero.is-info .navbar-item,.hero.is-info .navbar-link{color:rgba(255,255,255,.7)}.hero.is-info .navbar-link.is-active,.hero.is-info .navbar-link:hover,.hero.is-info a.navbar-item.is-active,.hero.is-info a.navbar-item:hover{background-color:#238cd1;color:#fff}.hero.is-info .tabs a{color:#fff;opacity:.9}.hero.is-info .tabs a:hover{opacity:1}.hero.is-info .tabs li.is-active a{opacity:1}.hero.is-info .tabs.is-boxed a,.hero.is-info .tabs.is-toggle a{color:#fff}.hero.is-info .tabs.is-boxed a:hover,.hero.is-info .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-info .tabs.is-boxed li.is-active a,.hero.is-info .tabs.is-boxed li.is-active a:hover,.hero.is-info .tabs.is-toggle li.is-active a,.hero.is-info .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#3298dc}.hero.is-info.is-bold{background-image:linear-gradient(141deg,#159dc6 0,#3298dc 71%,#4389e5 100%)}@media screen and (max-width:768px){.hero.is-info.is-bold .navbar-menu{background-image:linear-gradient(141deg,#159dc6 0,#3298dc 71%,#4389e5 100%)}}.hero.is-success{background-color:#48c774;color:#fff}.hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-success strong{color:inherit}.hero.is-success .title{color:#fff}.hero.is-success .subtitle{color:rgba(255,255,255,.9)}.hero.is-success .subtitle a:not(.button),.hero.is-success .subtitle strong{color:#fff}@media screen and (max-width:1023px){.hero.is-success .navbar-menu{background-color:#48c774}}.hero.is-success .navbar-item,.hero.is-success .navbar-link{color:rgba(255,255,255,.7)}.hero.is-success .navbar-link.is-active,.hero.is-success .navbar-link:hover,.hero.is-success a.navbar-item.is-active,.hero.is-success a.navbar-item:hover{background-color:#3abb67;color:#fff}.hero.is-success .tabs a{color:#fff;opacity:.9}.hero.is-success .tabs a:hover{opacity:1}.hero.is-success .tabs li.is-active a{opacity:1}.hero.is-success .tabs.is-boxed a,.hero.is-success .tabs.is-toggle a{color:#fff}.hero.is-success .tabs.is-boxed a:hover,.hero.is-success .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-success .tabs.is-boxed li.is-active a,.hero.is-success .tabs.is-boxed li.is-active a:hover,.hero.is-success .tabs.is-toggle li.is-active a,.hero.is-success .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#48c774}.hero.is-success.is-bold{background-image:linear-gradient(141deg,#29b342 0,#48c774 71%,#56d296 100%)}@media screen and (max-width:768px){.hero.is-success.is-bold .navbar-menu{background-image:linear-gradient(141deg,#29b342 0,#48c774 71%,#56d296 100%)}}.hero.is-warning{background-color:#ffdd57;color:rgba(0,0,0,.7)}.hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-warning strong{color:inherit}.hero.is-warning .title{color:rgba(0,0,0,.7)}.hero.is-warning .subtitle{color:rgba(0,0,0,.9)}.hero.is-warning .subtitle a:not(.button),.hero.is-warning .subtitle strong{color:rgba(0,0,0,.7)}@media screen and (max-width:1023px){.hero.is-warning .navbar-menu{background-color:#ffdd57}}.hero.is-warning .navbar-item,.hero.is-warning .navbar-link{color:rgba(0,0,0,.7)}.hero.is-warning .navbar-link.is-active,.hero.is-warning .navbar-link:hover,.hero.is-warning a.navbar-item.is-active,.hero.is-warning a.navbar-item:hover{background-color:#ffd83d;color:rgba(0,0,0,.7)}.hero.is-warning .tabs a{color:rgba(0,0,0,.7);opacity:.9}.hero.is-warning .tabs a:hover{opacity:1}.hero.is-warning .tabs li.is-active a{opacity:1}.hero.is-warning .tabs.is-boxed a,.hero.is-warning .tabs.is-toggle a{color:rgba(0,0,0,.7)}.hero.is-warning .tabs.is-boxed a:hover,.hero.is-warning .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-warning .tabs.is-boxed li.is-active a,.hero.is-warning .tabs.is-boxed li.is-active a:hover,.hero.is-warning .tabs.is-toggle li.is-active a,.hero.is-warning .tabs.is-toggle li.is-active a:hover{background-color:rgba(0,0,0,.7);border-color:rgba(0,0,0,.7);color:#ffdd57}.hero.is-warning.is-bold{background-image:linear-gradient(141deg,#ffaf24 0,#ffdd57 71%,#fffa70 100%)}@media screen and (max-width:768px){.hero.is-warning.is-bold .navbar-menu{background-image:linear-gradient(141deg,#ffaf24 0,#ffdd57 71%,#fffa70 100%)}}.hero.is-danger{background-color:#f14668;color:#fff}.hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-danger strong{color:inherit}.hero.is-danger .title{color:#fff}.hero.is-danger .subtitle{color:rgba(255,255,255,.9)}.hero.is-danger .subtitle a:not(.button),.hero.is-danger .subtitle strong{color:#fff}@media screen and (max-width:1023px){.hero.is-danger .navbar-menu{background-color:#f14668}}.hero.is-danger .navbar-item,.hero.is-danger .navbar-link{color:rgba(255,255,255,.7)}.hero.is-danger .navbar-link.is-active,.hero.is-danger .navbar-link:hover,.hero.is-danger a.navbar-item.is-active,.hero.is-danger a.navbar-item:hover{background-color:#ef2e55;color:#fff}.hero.is-danger .tabs a{color:#fff;opacity:.9}.hero.is-danger .tabs a:hover{opacity:1}.hero.is-danger .tabs li.is-active a{opacity:1}.hero.is-danger .tabs.is-boxed a,.hero.is-danger .tabs.is-toggle a{color:#fff}.hero.is-danger .tabs.is-boxed a:hover,.hero.is-danger .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-danger .tabs.is-boxed li.is-active a,.hero.is-danger .tabs.is-boxed li.is-active a:hover,.hero.is-danger .tabs.is-toggle li.is-active a,.hero.is-danger .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#f14668}.hero.is-danger.is-bold{background-image:linear-gradient(141deg,#fa0a62 0,#f14668 71%,#f7595f 100%)}@media screen and (max-width:768px){.hero.is-danger.is-bold .navbar-menu{background-image:linear-gradient(141deg,#fa0a62 0,#f14668 71%,#f7595f 100%)}}.hero.is-small .hero-body{padding:1.5rem}@media screen and (min-width:769px),print{.hero.is-medium .hero-body{padding:9rem 1.5rem}}@media screen and (min-width:769px),print{.hero.is-large .hero-body{padding:18rem 1.5rem}}.hero.is-fullheight .hero-body,.hero.is-fullheight-with-navbar .hero-body,.hero.is-halfheight .hero-body{align-items:center;display:flex}.hero.is-fullheight .hero-body>.container,.hero.is-fullheight-with-navbar .hero-body>.container,.hero.is-halfheight .hero-body>.container{flex-grow:1;flex-shrink:1}.hero.is-halfheight{min-height:50vh}.hero.is-fullheight{min-height:100vh}.hero-video{overflow:hidden}.hero-video video{left:50%;min-height:100%;min-width:100%;position:absolute;top:50%;transform:translate3d(-50%,-50%,0)}.hero-video.is-transparent{opacity:.3}@media screen and (max-width:768px){.hero-video{display:none}}.hero-buttons{margin-top:1.5rem}@media screen and (max-width:768px){.hero-buttons .button{display:flex}.hero-buttons .button:not(:last-child){margin-bottom:.75rem}}@media screen and (min-width:769px),print{.hero-buttons{display:flex;justify-content:center}.hero-buttons .button:not(:last-child){margin-right:1.5rem}}.hero-foot,.hero-head{flex-grow:0;flex-shrink:0}.hero-body{flex-grow:1;flex-shrink:0;padding:3rem 1.5rem}.section{padding:3rem 1.5rem}@media screen and (min-width:1024px){.section.is-medium{padding:9rem 1.5rem}.section.is-large{padding:18rem 1.5rem}}.footer{background-color:#fafafa;padding:3rem 1.5rem 6rem} \ No newline at end of file diff --git a/static/languages/rust/coverage/grcov_llvm/coverage.json b/static/languages/rust/coverage/grcov_llvm/coverage.json new file mode 100644 index 0000000..ac22a17 --- /dev/null +++ b/static/languages/rust/coverage/grcov_llvm/coverage.json @@ -0,0 +1 @@ +{"schemaVersion":1,"label":"coverage","message":"94.20%","color":"green"} \ No newline at end of file diff --git a/static/languages/rust/coverage/grcov_llvm/index.html b/static/languages/rust/coverage/grcov_llvm/index.html new file mode 100644 index 0000000..0e76f52 --- /dev/null +++ b/static/languages/rust/coverage/grcov_llvm/index.html @@ -0,0 +1,92 @@ + + + + + Grcov report - top_level + + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DirectoryLine CoverageFunctionsBranches
src + + 94.2% + + + 94.2% + + 65 / 69 + 65%13 / 20 100%0 / 0
+
+ +
+

Date: 2026-05-08 10:13

+
+ +
+ + diff --git a/static/languages/rust/coverage/grcov_llvm/src/index.html b/static/languages/rust/coverage/grcov_llvm/src/index.html new file mode 100644 index 0000000..38cd01f --- /dev/null +++ b/static/languages/rust/coverage/grcov_llvm/src/index.html @@ -0,0 +1,121 @@ + + + + + Grcov report - src + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileLine CoverageFunctionsBranches
main.rs + + 93.75% + + + 93.75% + + 60 / 64 + 66.67%12 / 18 100%0 / 0
second.rs + + 100% + + + 100% + + 5 / 5 + 50%1 / 2 100%0 / 0
+
+ +
+

Date: 2026-05-08 10:13

+
+ +
+ + diff --git a/static/languages/rust/coverage/grcov_llvm/src/main.rs.html b/static/languages/rust/coverage/grcov_llvm/src/main.rs.html new file mode 100644 index 0000000..ed859f8 --- /dev/null +++ b/static/languages/rust/coverage/grcov_llvm/src/main.rs.html @@ -0,0 +1,1764 @@ + + + + + Grcov report - main.rs + + +
+ + + +
+
+ 1 +
+
+ +
+
+
mod second;
+
+
+
+ 2 +
+
+ +
+
+

+            
+
+
+ 3 +
+
+ +
+
+
fn main() { println!("Hello, world!"); }
+
+
+
+ 4 +
+
+ +
+
+

+            
+
+
+ 5 +
+
+ 2 +
+
+
fn validate_data_simple(data: &Data) -> Result<(), ()> {
+
+
+
+ 6 +
+
+ 2 +
+
+
    if !data.magic.eq(&[0x13, 0x37]) { return Err(()) }
+
+
+
+ 7 +
+
+ +
+
+
    if data.len as usize != data.content.len() { return Err(()) }
+
+
+
+ 8 +
+
+ +
+
+
    return Ok(());
+
+
+
+ 9 +
+
+ 2 +
+
+
}
+
+
+
+ 10 +
+
+ +
+
+

+            
+
+
+ 11 +
+
+ 4 +
+
+
fn validate_data_match(data: &Data) -> i32 {
+
+
+
+ 12 +
+
+ 4 +
+
+
    let x: u32 = match data.content.parse::<u32>() {
+
+
+
+ 13 +
+
+ 2 +
+
+
        Ok(_x) => {
+
+
+
+ 14 +
+
+ 2 +
+
+
            let y = 2 * _x;
+
+
+
+ 15 +
+
+ 2 +
+
+
            if y < 6 {
+
+
+
+ 16 +
+
+ +
+
+
                y
+
+
+
+ 17 +
+
+ +
+
+
            } else {
+
+
+
+ 18 +
+
+ 2 +
+
+
                y * 2
+
+
+
+ 19 +
+
+ +
+
+
            }
+
+
+
+ 20 +
+
+ +
+
+
        }
+
+
+
+ 21 +
+
+ 2 +
+
+
        Err(_) => 0
+
+
+
+ 22 +
+
+ +
+
+
    };
+
+
+
+ 23 +
+
+ 4 +
+
+
    if x == 0 {
+
+
+
+ 24 +
+
+ 2 +
+
+
        -1
+
+
+
+ 25 +
+
+ +
+
+
    } else {
+
+
+
+ 26 +
+
+ 2 +
+
+
        (x as i32) + 1
+
+
+
+ 27 +
+
+ +
+
+
    }
+
+
+
+ 28 +
+
+ 4 +
+
+
}
+
+
+
+ 29 +
+
+ +
+
+

+            
+
+
+ 30 +
+
+ +
+
+
// https://doc.rust-lang.org/book/ch10-01-syntax.html
+
+
+
+ 31 +
+
+ 6 +
+
+
fn largest<T: PartialOrd>(list: &[T]) -> &T {
+
+
+
+ 32 +
+
+ 6 +
+
+
    let mut largest = &list[0];
+
+
+
+ 33 +
+
+ 24 +
+
+
    for item in list {
+
+
+
+ 34 +
+
+ 24 +
+
+
        if item > largest {
+
+
+
+ 35 +
+
+ 6 +
+
+
            largest = item;
+
+
+
+ 36 +
+
+ 18 +
+
+
        }
+
+
+
+ 37 +
+
+ +
+
+
    }
+
+
+
+ 38 +
+
+ 6 +
+
+
    largest
+
+
+
+ 39 +
+
+ 6 +
+
+
}
+
+
+
+ 40 +
+
+ +
+
+

+            
+
+
+ 41 +
+
+ 2 +
+
+
fn validate_data_generics(data: &Data) {
+
+
+
+ 42 +
+
+ 2 +
+
+
    let number_list = vec![34, 50, 25, 100, 65];
+
+
+
+ 43 +
+
+ +
+
+

+            
+
+
+ 44 +
+
+ 2 +
+
+
    let result = largest(&number_list);
+
+
+
+ 45 +
+
+ 2 +
+
+
    println!("The largest number is {}", result);
+
+
+
+ 46 +
+
+ +
+
+

+            
+
+
+ 47 +
+
+ 2 +
+
+
    let char_list = vec!['y', 'm', 'a', 'q'];
+
+
+
+ 48 +
+
+ +
+
+

+            
+
+
+ 49 +
+
+ 2 +
+
+
    let result = largest(&char_list);
+
+
+
+ 50 +
+
+ 2 +
+
+
    println!("The largest char is {}", result);
+
+
+
+ 51 +
+
+ +
+
+

+            
+
+
+ 52 +
+
+ 2 +
+
+
    let result = largest(data.content.as_bytes());
+
+
+
+ 53 +
+
+ 2 +
+
+
    println!("The largest content char is {}", result);
+
+
+
+ 54 +
+
+ 2 +
+
+
}
+
+
+
+ 55 +
+
+ +
+
+

+            
+
+
+ 56 +
+
+ +
+
+
struct Data {
+
+
+
+ 57 +
+
+ +
+
+
    magic: [u8; 2],
+
+
+
+ 58 +
+
+ +
+
+
    len: u8,
+
+
+
+ 59 +
+
+ +
+
+
    content: String
+
+
+
+ 60 +
+
+ +
+
+
}
+
+
+
+ 61 +
+
+ +
+
+

+            
+
+
+ 62 +
+
+ +
+
+
#[cfg(test)]
+
+
+
+ 63 +
+
+ +
+
+
mod tests {
+
+
+
+ 64 +
+
+ +
+
+
    use crate::second::validate_data_panic;
+
+
+
+ 65 +
+
+ +
+
+
    use crate::{Data, validate_data_generics, validate_data_match, validate_data_simple};
+
+
+
+ 66 +
+
+ +
+
+

+            
+
+
+ 67 +
+
+ +
+
+
    #[test]
+
+
+
+ 68 +
+
+ 2 +
+
+
    fn parser_detects_errors() {
+
+
+
+ 69 +
+
+ 2 +
+
+
        let mut blob = Data{ magic: [0x73, 0x31], len: 2, content: "AB".parse().unwrap() };
+
+
+
+ 70 +
+
+ 2 +
+
+
        blob.content = blob.content + "Y";
+
+
+
+ 71 +
+
+ 2 +
+
+
        let result = validate_data_simple(&blob);
+
+
+
+ 72 +
+
+ 2 +
+
+
        assert!(result.is_err());
+
+
+
+ 73 +
+
+ 2 +
+
+
    }
+
+
+
+ 74 +
+
+ +
+
+

+            
+
+
+ 75 +
+
+ +
+
+
    #[test]
+
+
+
+ 76 +
+
+ 2 +
+
+
    fn check_match() {
+
+
+
+ 77 +
+
+ 2 +
+
+
        let blob = Data{ magic: [0x73, 0x31], len: 2, content: "XX".parse().unwrap() };
+
+
+
+ 78 +
+
+ 2 +
+
+
        let x = validate_data_match(&blob);
+
+
+
+ 79 +
+
+ 2 +
+
+
        assert_eq!(x, -1);
+
+
+
+ 80 +
+
+ 2 +
+
+
    }
+
+
+
+ 81 +
+
+ +
+
+

+            
+
+
+ 82 +
+
+ +
+
+
    #[test]
+
+
+
+ 83 +
+
+ 2 +
+
+
    fn check_match2() {
+
+
+
+ 84 +
+
+ 2 +
+
+
        let blob = Data{ magic: [0x73, 0x31], len: 2, content: "40".parse().unwrap() };
+
+
+
+ 85 +
+
+ 2 +
+
+
        let x = validate_data_match(&blob);
+
+
+
+ 86 +
+
+ 2 +
+
+
        assert_eq!(x, 161);
+
+
+
+ 87 +
+
+ 2 +
+
+
    }
+
+
+
+ 88 +
+
+ +
+
+

+            
+
+
+ 89 +
+
+ +
+
+
    #[test]
+
+
+
+ 90 +
+
+ 2 +
+
+
    fn check_generic() {
+
+
+
+ 91 +
+
+ 2 +
+
+
        let blob = Data{ magic: [0x73, 0x31], len: 2, content: "QWE".parse().unwrap() };
+
+
+
+ 92 +
+
+ 2 +
+
+
        validate_data_generics(&blob);
+
+
+
+ 93 +
+
+ 2 +
+
+
    }
+
+
+
+ 94 +
+
+ +
+
+

+            
+
+
+ 95 +
+
+ +
+
+
    #[test]
+
+
+
+ 96 +
+
+ +
+
+
    #[should_panic]
+
+
+
+ 97 +
+
+ 2 +
+
+
    fn check_panic() {
+
+
+
+ 98 +
+
+ 2 +
+
+
        let blob = Data{ magic: [0x73, 0x31], len: 0, content: "4".parse().unwrap() };
+
+
+
+ 99 +
+
+ 2 +
+
+
        validate_data_panic(&blob);
+
+
+
+ 100 +
+
+ 2 +
+
+
    }
+
+
+
+ 101 +
+
+ +
+
+

+            
+
+
+ 102 +
+
+ +
+
+
    #[test]
+
+
+
+ 103 +
+
+ 2 +
+
+
    fn check_not_panic() {
+
+
+
+ 104 +
+
+ 2 +
+
+
        let blob = Data{ magic: [0x73, 0x31], len: 2, content: "4".parse().unwrap() };
+
+
+
+ 105 +
+
+ 2 +
+
+
        validate_data_panic(&blob);
+
+
+
+ 106 +
+
+ 2 +
+
+
    }
+
+
+
+ 107 +
+
+ +
+
+
}
+
+
+
+
+ +
+

Date: 2026-05-08 10:13

+
+ +
+ + diff --git a/static/languages/rust/coverage/grcov_llvm/src/second.rs.html b/static/languages/rust/coverage/grcov_llvm/src/second.rs.html new file mode 100644 index 0000000..d19dca0 --- /dev/null +++ b/static/languages/rust/coverage/grcov_llvm/src/second.rs.html @@ -0,0 +1,164 @@ + + + + + Grcov report - second.rs + + +
+ + + +
+
+ 1 +
+
+ +
+
+
use crate::Data;
+
+
+
+ 2 +
+
+ +
+
+

+            
+
+
+ 3 +
+
+ 4 +
+
+
pub(crate) fn validate_data_panic(data: &Data) {
+
+
+
+ 4 +
+
+ 4 +
+
+
    if data.len == 0 {
+
+
+
+ 5 +
+
+ 2 +
+
+
        panic!("panic")
+
+
+
+ 6 +
+
+ 2 +
+
+
    }
+
+
+
+ 7 +
+
+ 2 +
+
+
}
+
+
+
+
+ +
+

Date: 2026-05-08 10:13

+
+ +
+ + diff --git a/static/languages/rust/coverage/grcov_llvm_lcov.info b/static/languages/rust/coverage/grcov_llvm_lcov.info new file mode 100644 index 0000000..1ccc2b8 --- /dev/null +++ b/static/languages/rust/coverage/grcov_llvm_lcov.info @@ -0,0 +1,126 @@ +TN: +SF:src/second.rs +FN:3,tmp::second::validate_data_panic +FN:3,tmp::second::validate_data_panic +FNDA:0,tmp::second::validate_data_panic +FNDA:1,tmp::second::validate_data_panic +FNF:2 +FNH:1 +BRF:0 +BRH:0 +DA:3,4 +DA:4,4 +DA:5,2 +DA:6,2 +DA:7,2 +LF:5 +LH:5 +end_of_record +SF:src/main.rs +FN:97,tmp::tests::check_panic +FN:68,tmp::tests::parser_detects_errors +FN:11,tmp::validate_data_match +FN:5,tmp::validate_data_simple +FN:31,tmp::largest:: +FN:3,tmp::main +FN:41,tmp::validate_data_generics +FN:31,tmp::largest:: +FN:103,tmp::tests::check_not_panic +FN:31,tmp::largest:: +FN:31,tmp::largest::<_> +FN:83,tmp::tests::check_match2 +FN:41,tmp::validate_data_generics +FN:11,tmp::validate_data_match +FN:5,tmp::validate_data_simple +FN:3,tmp::main +FN:76,tmp::tests::check_match +FN:90,tmp::tests::check_generic +FNDA:1,tmp::tests::check_panic +FNDA:1,tmp::tests::parser_detects_errors +FNDA:1,tmp::validate_data_match +FNDA:0,tmp::validate_data_simple +FNDA:1,tmp::largest:: +FNDA:0,tmp::main +FNDA:0,tmp::validate_data_generics +FNDA:1,tmp::largest:: +FNDA:1,tmp::tests::check_not_panic +FNDA:1,tmp::largest:: +FNDA:0,tmp::largest::<_> +FNDA:1,tmp::tests::check_match2 +FNDA:1,tmp::validate_data_generics +FNDA:0,tmp::validate_data_match +FNDA:1,tmp::validate_data_simple +FNDA:0,tmp::main +FNDA:1,tmp::tests::check_match +FNDA:1,tmp::tests::check_generic +FNF:18 +FNH:12 +BRF:0 +BRH:0 +DA:3,0 +DA:5,2 +DA:6,2 +DA:7,0 +DA:8,0 +DA:9,2 +DA:11,4 +DA:12,4 +DA:13,2 +DA:14,2 +DA:15,2 +DA:16,0 +DA:18,2 +DA:21,2 +DA:23,4 +DA:24,2 +DA:26,2 +DA:28,4 +DA:31,6 +DA:32,6 +DA:33,24 +DA:34,24 +DA:35,6 +DA:36,18 +DA:38,6 +DA:39,6 +DA:41,2 +DA:42,2 +DA:44,2 +DA:45,2 +DA:47,2 +DA:49,2 +DA:50,2 +DA:52,2 +DA:53,2 +DA:54,2 +DA:68,2 +DA:69,2 +DA:70,2 +DA:71,2 +DA:72,2 +DA:73,2 +DA:76,2 +DA:77,2 +DA:78,2 +DA:79,2 +DA:80,2 +DA:83,2 +DA:84,2 +DA:85,2 +DA:86,2 +DA:87,2 +DA:90,2 +DA:91,2 +DA:92,2 +DA:93,2 +DA:97,2 +DA:98,2 +DA:99,2 +DA:100,2 +DA:103,2 +DA:104,2 +DA:105,2 +DA:106,2 +LF:64 +LH:60 +end_of_record diff --git a/static/languages/rust/coverage/grcov_llvm_lcov/amber.png b/static/languages/rust/coverage/grcov_llvm_lcov/amber.png new file mode 100644 index 0000000000000000000000000000000000000000..2cab170d8359081983a4e343848dfe06bc490f12 GIT binary patch literal 141 zcmeAS@N?(olHy`uVBq!ia0vp^j3CU&3?x-=hn)ga>?NMQuI!iC1^G2tW}LqE04T&+ z;1OBOz`!j8!i<;h*8KqrvZOouIx;Y9?C1WI$O`1M1^9%x{(levWG?NMQuI!iC1^Jb!lvI6;R0X`wF(yt=9xVZRt1vCRixIA4P dLn>}1Cji+@42)0J?}79&c)I$ztaD0e0sy@GAL0N2 literal 0 HcmV?d00001 diff --git a/static/languages/rust/coverage/grcov_llvm_lcov/gcov.css b/static/languages/rust/coverage/grcov_llvm_lcov/gcov.css new file mode 100644 index 0000000..1cacc83 --- /dev/null +++ b/static/languages/rust/coverage/grcov_llvm_lcov/gcov.css @@ -0,0 +1,1125 @@ +/* All views: initial background and text color */ +body +{ + color: #000000; + background-color: #ffffff; +} + +/* All views: standard link format*/ +a:link +{ + color: #284fa8; + text-decoration: underline; +} + +/* All views: standard link - visited format */ +a:visited +{ + color: #00cb40; + text-decoration: underline; +} + +/* All views: standard link - activated format */ +a:active +{ + color: #ff0040; + text-decoration: underline; +} + +/* All views: main title format */ +td.title +{ + text-align: center; + padding-bottom: 10px; + font-family: sans-serif; + font-size: 20pt; + font-style: italic; + font-weight: bold; +} +/* table footnote */ +td.footnote +{ + text-align: left; + padding-left: 100px; + padding-right: 10px; + background-color: #dae7fe; /* light blue table background color */ + /* dark blue table header color + background-color: #6688d4; */ + white-space: nowrap; + font-family: sans-serif; + font-style: italic; + font-size:70%; +} +/* "Line coverage date bins" leader */ +td.subTableHeader +{ + text-align: center; + padding-bottom: 6px; + font-family: sans-serif; + font-weight: bold; + vertical-align: center; +} + +/* All views: header item format */ +td.headerItem +{ + text-align: right; + padding-right: 6px; + font-family: sans-serif; + font-weight: bold; + vertical-align: top; + white-space: nowrap; +} + +/* All views: header item value format */ +td.headerValue +{ + text-align: left; + color: #284fa8; + font-family: sans-serif; + font-weight: bold; + white-space: nowrap; +} + +/* All views: header item coverage table heading */ +td.headerCovTableHead +{ + text-align: center; + padding-right: 6px; + padding-left: 6px; + padding-bottom: 0px; + font-family: sans-serif; + white-space: nowrap; +} + +/* All views: header item coverage table entry */ +td.headerCovTableEntry +{ + text-align: right; + color: #284fa8; + font-family: sans-serif; + font-weight: bold; + white-space: nowrap; + padding-left: 12px; + padding-right: 4px; + background-color: #dae7fe; +} + +/* All views: header item coverage table entry for high coverage rate */ +td.headerCovTableEntryHi +{ + text-align: right; + color: #000000; + font-family: sans-serif; + font-weight: bold; + white-space: nowrap; + padding-left: 12px; + padding-right: 4px; + background-color: #a7fc9d; +} + +/* All views: header item coverage table entry for medium coverage rate */ +td.headerCovTableEntryMed +{ + text-align: right; + color: #000000; + font-family: sans-serif; + font-weight: bold; + white-space: nowrap; + padding-left: 12px; + padding-right: 4px; + background-color: #ffea20; +} + +/* All views: header item coverage table entry for ow coverage rate */ +td.headerCovTableEntryLo +{ + text-align: right; + color: #000000; + font-family: sans-serif; + font-weight: bold; + white-space: nowrap; + padding-left: 12px; + padding-right: 4px; + background-color: #ff0000; +} + +/* All views: header legend value for legend entry */ +td.headerValueLeg +{ + text-align: left; + color: #000000; + font-family: sans-serif; + font-size: 80%; + white-space: nowrap; + padding-top: 4px; +} + +/* All views: color of horizontal ruler */ +td.ruler +{ + background-color: #6688d4; +} + +/* All views: version string format */ +td.versionInfo +{ + text-align: center; + padding-top: 2px; + font-family: sans-serif; + font-style: italic; +} + +/* Directory view/File view (all)/Test case descriptions: + table headline format */ +td.tableHead +{ + text-align: center; + color: #ffffff; + background-color: #6688d4; + font-family: sans-serif; + font-size: 120%; + font-weight: bold; + white-space: nowrap; + padding-left: 4px; + padding-right: 4px; +} + +span.tableHeadSort +{ + padding-right: 4px; +} + +/* Directory view/File view (all): filename entry format */ +td.coverFile +{ + text-align: left; + padding-left: 10px; + padding-right: 20px; + color: #284fa8; + background-color: #dae7fe; + font-family: monospace; +} + +/* Directory view/File view (all): directory name entry format */ +td.coverDirectory +{ + text-align: left; + padding-left: 10px; + padding-right: 20px; + color: #284fa8; + background-color: #b8d0ff; + font-family: monospace; +} + +/* Directory view/File view (all): filename entry format */ +td.overallOwner +{ + text-align: center; + font-weight: bold; + font-family: sans-serif; + background-color: #dae7fe; + padding-right: 10px; + padding-left: 10px; +} + +/* Directory view/File view (all): filename entry format */ +td.ownerName +{ + text-align: right; + font-style: italic; + font-family: sans-serif; + background-color: #E5DBDB; + padding-right: 10px; + padding-left: 20px; +} + +/* Directory view/File view (all): bar-graph entry format*/ +td.coverBar +{ + padding-left: 10px; + padding-right: 10px; + background-color: #dae7fe; +} + +/* Directory view/File view (all): bar-graph entry format*/ +td.owner_coverBar +{ + padding-left: 10px; + padding-right: 10px; + background-color: #E5DBDB; +} + +/* Directory view/File view (all): bar-graph outline color */ +td.coverBarOutline +{ + background-color: #000000; +} + +/* Directory view/File view (all): percentage entry for files with + high coverage rate */ +td.coverPerHi +{ + text-align: right; + padding-left: 10px; + padding-right: 10px; + background-color: #a7fc9d; + font-weight: bold; + font-family: sans-serif; +} + +/* 'owner' entry: slightly lighter color than 'coverPerHi' */ +td.owner_coverPerHi +{ + text-align: right; + padding-left: 10px; + padding-right: 10px; + background-color: #82E0AA; + font-weight: bold; + font-family: sans-serif; +} + +/* Directory view/File view (all): line count entry */ +td.coverNumDflt +{ + text-align: right; + padding-left: 10px; + padding-right: 10px; + background-color: #dae7fe; + white-space: nowrap; + font-family: sans-serif; +} + +/* td background color and font for the 'owner' section of the table */ +td.ownerTla +{ + text-align: right; + padding-left: 10px; + padding-right: 10px; + background-color: #E5DBDB; + white-space: nowrap; + font-family: sans-serif; + font-style: italic; +} + +/* Directory view/File view (all): line count entry for files with + high coverage rate */ +td.coverNumHi +{ + text-align: right; + padding-left: 10px; + padding-right: 10px; + background-color: #a7fc9d; + white-space: nowrap; + font-family: sans-serif; +} + +td.owner_coverNumHi +{ + text-align: right; + padding-left: 10px; + padding-right: 10px; + background-color: #82E0AA; + white-space: nowrap; + font-family: sans-serif; +} + +/* Directory view/File view (all): percentage entry for files with + medium coverage rate */ +td.coverPerMed +{ + text-align: right; + padding-left: 10px; + padding-right: 10px; + background-color: #ffea20; + font-weight: bold; + font-family: sans-serif; +} + +td.owner_coverPerMed +{ + text-align: right; + padding-left: 10px; + padding-right: 10px; + background-color: #F9E79F; + font-weight: bold; + font-family: sans-serif; +} + +/* Directory view/File view (all): line count entry for files with + medium coverage rate */ +td.coverNumMed +{ + text-align: right; + padding-left: 10px; + padding-right: 10px; + background-color: #ffea20; + white-space: nowrap; + font-family: sans-serif; +} + +td.owner_coverNumMed +{ + text-align: right; + padding-left: 10px; + padding-right: 10px; + background-color: #F9E79F; + white-space: nowrap; + font-family: sans-serif; +} + +/* Directory view/File view (all): percentage entry for files with + low coverage rate */ +td.coverPerLo +{ + text-align: right; + padding-left: 10px; + padding-right: 10px; + background-color: #ff0000; + font-weight: bold; + font-family: sans-serif; +} + +td.owner_coverPerLo +{ + text-align: right; + padding-left: 10px; + padding-right: 10px; + background-color: #EC7063; + font-weight: bold; + font-family: sans-serif; +} + +/* Directory view/File view (all): line count entry for files with + low coverage rate */ +td.coverNumLo +{ + text-align: right; + padding-left: 10px; + padding-right: 10px; + background-color: #ff0000; + white-space: nowrap; + font-family: sans-serif; +} + +td.owner_coverNumLo +{ + text-align: right; + padding-left: 10px; + padding-right: 10px; + background-color: #EC7063; + white-space: nowrap; + font-family: sans-serif; +} + +/* File view (all): "show/hide details" link format */ +a.detail:link +{ + color: #b8d0ff; + font-size:80%; +} + +/* File view (all): "show/hide details" link - visited format */ +a.detail:visited +{ + color: #b8d0ff; + font-size:80%; +} + +/* File view (all): "show/hide details" link - activated format */ +a.detail:active +{ + color: #ffffff; + font-size:80%; +} + +/* File view (detail): test name entry */ +td.testName +{ + text-align: right; + padding-right: 10px; + background-color: #dae7fe; + font-family: sans-serif; +} + +/* File view (detail): test percentage entry */ +td.testPer +{ + text-align: right; + padding-left: 10px; + padding-right: 10px; + background-color: #dae7fe; + font-family: sans-serif; +} + +/* File view (detail): test lines count entry */ +td.testNum +{ + text-align: right; + padding-left: 10px; + padding-right: 10px; + background-color: #dae7fe; + font-family: sans-serif; +} + +/* Test case descriptions: test name format*/ +dt +{ + font-family: sans-serif; + font-weight: bold; +} + +/* Test case descriptions: description table body */ +td.testDescription +{ + padding-top: 10px; + padding-left: 30px; + padding-bottom: 10px; + padding-right: 30px; + background-color: #dae7fe; +} + +/* Source code view: function entry */ +td.coverFn +{ + text-align: left; + padding-left: 10px; + padding-right: 20px; + color: #284fa8; + background-color: #dae7fe; + font-family: monospace; +} + +/* Source code view: function entry zero count*/ +td.coverFnLo +{ + text-align: right; + padding-left: 10px; + padding-right: 10px; + background-color: #ff0000; + font-weight: bold; + font-family: sans-serif; +} + +/* Source code view: function entry nonzero count*/ +td.coverFnHi +{ + text-align: right; + padding-left: 10px; + padding-right: 10px; + background-color: #dae7fe; + font-weight: bold; + font-family: sans-serif; +} + +td.coverFnAlias +{ + text-align: right; + padding-left: 10px; + padding-right: 20px; + color: #284fa8; + /* make this a slightly different color than the leader - otherwise, + otherwise the alias is hard to distinguish in the table */ + background-color: #E5DBDB; /* very light pale grey/blue */ + font-family: monospace; +} + +/* Source code view: function entry zero count*/ +td.coverFnAliasLo +{ + text-align: right; + padding-left: 10px; + padding-right: 10px; + background-color: #EC7063; /* lighter red */ + font-family: sans-serif; +} + +/* Source code view: function entry nonzero count*/ +td.coverFnAliasHi +{ + text-align: right; + padding-left: 10px; + padding-right: 10px; + background-color: #dae7fe; + font-weight: bold; + font-family: sans-serif; +} + +/* Source code view: source code format */ +pre.source +{ + font-family: monospace; + white-space: pre; + margin-top: 2px; +} + +/* elided/removed code */ +span.elidedSource +{ + font-family: sans-serif; + /*font-size: 8pt; */ + font-style: italic; + background-color: lightgrey; +} + +/* Source code view: line number format */ +span.lineNum +{ + background-color: #efe383; +} + +/* Source code view: line number format when there are deleted + lines in the corresponding location */ +span.lineNumWithDelete +{ + foreground-color: #efe383; + background-color: lightgrey; +} + +/* Source code view: format for Cov legend */ +span.coverLegendCov +{ + padding-left: 10px; + padding-right: 10px; + padding-bottom: 2px; + background-color: #cad7fe; +} + +/* Source code view: format for NoCov legend */ +span.coverLegendNoCov +{ + padding-left: 10px; + padding-right: 10px; + padding-bottom: 2px; + background-color: #ff6230; +} + +/* Source code view: format for the source code heading line */ +pre.sourceHeading +{ + white-space: pre; + font-family: monospace; + font-weight: bold; + margin: 0px; +} + +/* All views: header legend value for low rate */ +td.headerValueLegL +{ + font-family: sans-serif; + text-align: center; + white-space: nowrap; + padding-left: 4px; + padding-right: 2px; + background-color: #ff0000; + font-size: 80%; +} + +/* All views: header legend value for med rate */ +td.headerValueLegM +{ + font-family: sans-serif; + text-align: center; + white-space: nowrap; + padding-left: 2px; + padding-right: 2px; + background-color: #ffea20; + font-size: 80%; +} + +/* All views: header legend value for hi rate */ +td.headerValueLegH +{ + font-family: sans-serif; + text-align: center; + white-space: nowrap; + padding-left: 2px; + padding-right: 4px; + background-color: #a7fc9d; + font-size: 80%; +} + +/* All views except source code view: legend format for low coverage */ +span.coverLegendCovLo +{ + padding-left: 10px; + padding-right: 10px; + padding-top: 2px; + background-color: #ff0000; +} + +/* All views except source code view: legend format for med coverage */ +span.coverLegendCovMed +{ + padding-left: 10px; + padding-right: 10px; + padding-top: 2px; + background-color: #ffea20; +} + +/* All views except source code view: legend format for hi coverage */ +span.coverLegendCovHi +{ + padding-left: 10px; + padding-right: 10px; + padding-top: 2px; + background-color: #a7fc9d; +} + +a.branchTla:link +{ + color: #000000; +} + +a.branchTla:visited +{ + color: #000000; +} + +a.mcdcTla:link +{ + color: #000000; +} + +a.mcdcTla:visited +{ + color: #000000; +} + +/* Source code view/table entry background: format for lines classified as "Uncovered New Code (+ => 0): +Newly added code is not tested" */ +td.tlaUNC +{ + text-align: right; + background-color: #FF6230; +} +td.tlaBgUNC { + background-color: #FF6230; +} + +/* Source code view/table entry background: format for lines classified as "Uncovered New Code (+ => 0): +Newly added code is not tested" */ +span.tlaUNC +{ + text-align: left; + background-color: #FF6230; +} +span.tlaBgUNC { + background-color: #FF6230; +} +a.tlaBgUNC { + background-color: #FF6230; + color: #000000; +} + +td.headerCovTableHeadUNC { + text-align: center; + padding-right: 6px; + padding-left: 6px; + padding-bottom: 0px; + font-family: sans-serif; + white-space: nowrap; + background-color: #FF6230; +} + +/* Source code view/table entry background: format for lines classified as "Lost Baseline Coverage (1 => 0): +Unchanged code is no longer tested" */ +td.tlaLBC +{ + text-align: right; + background-color: #FF6230; +} +td.tlaBgLBC { + background-color: #FF6230; +} + +/* Source code view/table entry background: format for lines classified as "Lost Baseline Coverage (1 => 0): +Unchanged code is no longer tested" */ +span.tlaLBC +{ + text-align: left; + background-color: #FF6230; +} +span.tlaBgLBC { + background-color: #FF6230; +} +a.tlaBgLBC { + background-color: #FF6230; + color: #000000; +} + +td.headerCovTableHeadLBC { + text-align: center; + padding-right: 6px; + padding-left: 6px; + padding-bottom: 0px; + font-family: sans-serif; + white-space: nowrap; + background-color: #FF6230; +} + +/* Source code view/table entry background: format for lines classified as "Uncovered Included Code (# => 0): +Previously unused code is untested" */ +td.tlaUIC +{ + text-align: right; + background-color: #FF6230; +} +td.tlaBgUIC { + background-color: #FF6230; +} + +/* Source code view/table entry background: format for lines classified as "Uncovered Included Code (# => 0): +Previously unused code is untested" */ +span.tlaUIC +{ + text-align: left; + background-color: #FF6230; +} +span.tlaBgUIC { + background-color: #FF6230; +} +a.tlaBgUIC { + background-color: #FF6230; + color: #000000; +} + +td.headerCovTableHeadUIC { + text-align: center; + padding-right: 6px; + padding-left: 6px; + padding-bottom: 0px; + font-family: sans-serif; + white-space: nowrap; + background-color: #FF6230; +} + +/* Source code view/table entry background: format for lines classified as "Uncovered Baseline Code (0 => 0): +Unchanged code was untested before, is untested now" */ +td.tlaUBC +{ + text-align: right; + background-color: #FF6230; +} +td.tlaBgUBC { + background-color: #FF6230; +} + +/* Source code view/table entry background: format for lines classified as "Uncovered Baseline Code (0 => 0): +Unchanged code was untested before, is untested now" */ +span.tlaUBC +{ + text-align: left; + background-color: #FF6230; +} +span.tlaBgUBC { + background-color: #FF6230; +} +a.tlaBgUBC { + background-color: #FF6230; + color: #000000; +} + +td.headerCovTableHeadUBC { + text-align: center; + padding-right: 6px; + padding-left: 6px; + padding-bottom: 0px; + font-family: sans-serif; + white-space: nowrap; + background-color: #FF6230; +} + +/* Source code view/table entry background: format for lines classified as "Gained Baseline Coverage (0 => 1): +Unchanged code is tested now" */ +td.tlaGBC +{ + text-align: right; + background-color: #CAD7FE; +} +td.tlaBgGBC { + background-color: #CAD7FE; +} + +/* Source code view/table entry background: format for lines classified as "Gained Baseline Coverage (0 => 1): +Unchanged code is tested now" */ +span.tlaGBC +{ + text-align: left; + background-color: #CAD7FE; +} +span.tlaBgGBC { + background-color: #CAD7FE; +} +a.tlaBgGBC { + background-color: #CAD7FE; + color: #000000; +} + +td.headerCovTableHeadGBC { + text-align: center; + padding-right: 6px; + padding-left: 6px; + padding-bottom: 0px; + font-family: sans-serif; + white-space: nowrap; + background-color: #CAD7FE; +} + +/* Source code view/table entry background: format for lines classified as "Gained Included Coverage (# => 1): +Previously unused code is tested now" */ +td.tlaGIC +{ + text-align: right; + background-color: #CAD7FE; +} +td.tlaBgGIC { + background-color: #CAD7FE; +} + +/* Source code view/table entry background: format for lines classified as "Gained Included Coverage (# => 1): +Previously unused code is tested now" */ +span.tlaGIC +{ + text-align: left; + background-color: #CAD7FE; +} +span.tlaBgGIC { + background-color: #CAD7FE; +} +a.tlaBgGIC { + background-color: #CAD7FE; + color: #000000; +} + +td.headerCovTableHeadGIC { + text-align: center; + padding-right: 6px; + padding-left: 6px; + padding-bottom: 0px; + font-family: sans-serif; + white-space: nowrap; + background-color: #CAD7FE; +} + +/* Source code view/table entry background: format for lines classified as "Gained New Coverage (+ => 1): +Newly added code is tested" */ +td.tlaGNC +{ + text-align: right; + background-color: #CAD7FE; +} +td.tlaBgGNC { + background-color: #CAD7FE; +} + +/* Source code view/table entry background: format for lines classified as "Gained New Coverage (+ => 1): +Newly added code is tested" */ +span.tlaGNC +{ + text-align: left; + background-color: #CAD7FE; +} +span.tlaBgGNC { + background-color: #CAD7FE; +} +a.tlaBgGNC { + background-color: #CAD7FE; + color: #000000; +} + +td.headerCovTableHeadGNC { + text-align: center; + padding-right: 6px; + padding-left: 6px; + padding-bottom: 0px; + font-family: sans-serif; + white-space: nowrap; + background-color: #CAD7FE; +} + +/* Source code view/table entry background: format for lines classified as "Covered Baseline Code (1 => 1): +Unchanged code was tested before and is still tested" */ +td.tlaCBC +{ + text-align: right; + background-color: #CAD7FE; +} +td.tlaBgCBC { + background-color: #CAD7FE; +} + +/* Source code view/table entry background: format for lines classified as "Covered Baseline Code (1 => 1): +Unchanged code was tested before and is still tested" */ +span.tlaCBC +{ + text-align: left; + background-color: #CAD7FE; +} +span.tlaBgCBC { + background-color: #CAD7FE; +} +a.tlaBgCBC { + background-color: #CAD7FE; + color: #000000; +} + +td.headerCovTableHeadCBC { + text-align: center; + padding-right: 6px; + padding-left: 6px; + padding-bottom: 0px; + font-family: sans-serif; + white-space: nowrap; + background-color: #CAD7FE; +} + +/* Source code view/table entry background: format for lines classified as "Excluded Uncovered Baseline (0 => #): +Previously untested code is unused now" */ +td.tlaEUB +{ + text-align: right; + background-color: #FFFFFF; +} +td.tlaBgEUB { + background-color: #FFFFFF; +} + +/* Source code view/table entry background: format for lines classified as "Excluded Uncovered Baseline (0 => #): +Previously untested code is unused now" */ +span.tlaEUB +{ + text-align: left; + background-color: #FFFFFF; +} +span.tlaBgEUB { + background-color: #FFFFFF; +} +a.tlaBgEUB { + background-color: #FFFFFF; + color: #000000; +} + +td.headerCovTableHeadEUB { + text-align: center; + padding-right: 6px; + padding-left: 6px; + padding-bottom: 0px; + font-family: sans-serif; + white-space: nowrap; + background-color: #FFFFFF; +} + +/* Source code view/table entry background: format for lines classified as "Excluded Covered Baseline (1 => #): +Previously tested code is unused now" */ +td.tlaECB +{ + text-align: right; + background-color: #FFFFFF; +} +td.tlaBgECB { + background-color: #FFFFFF; +} + +/* Source code view/table entry background: format for lines classified as "Excluded Covered Baseline (1 => #): +Previously tested code is unused now" */ +span.tlaECB +{ + text-align: left; + background-color: #FFFFFF; +} +span.tlaBgECB { + background-color: #FFFFFF; +} +a.tlaBgECB { + background-color: #FFFFFF; + color: #000000; +} + +td.headerCovTableHeadECB { + text-align: center; + padding-right: 6px; + padding-left: 6px; + padding-bottom: 0px; + font-family: sans-serif; + white-space: nowrap; + background-color: #FFFFFF; +} + +/* Source code view/table entry background: format for lines classified as "Deleted Uncovered Baseline (0 => -): +Previously untested code has been deleted" */ +td.tlaDUB +{ + text-align: right; + background-color: #FFFFFF; +} +td.tlaBgDUB { + background-color: #FFFFFF; +} + +/* Source code view/table entry background: format for lines classified as "Deleted Uncovered Baseline (0 => -): +Previously untested code has been deleted" */ +span.tlaDUB +{ + text-align: left; + background-color: #FFFFFF; +} +span.tlaBgDUB { + background-color: #FFFFFF; +} +a.tlaBgDUB { + background-color: #FFFFFF; + color: #000000; +} + +td.headerCovTableHeadDUB { + text-align: center; + padding-right: 6px; + padding-left: 6px; + padding-bottom: 0px; + font-family: sans-serif; + white-space: nowrap; + background-color: #FFFFFF; +} + +/* Source code view/table entry background: format for lines classified as "Deleted Covered Baseline (1 => -): +Previously tested code has been deleted" */ +td.tlaDCB +{ + text-align: right; + background-color: #FFFFFF; +} +td.tlaBgDCB { + background-color: #FFFFFF; +} + +/* Source code view/table entry background: format for lines classified as "Deleted Covered Baseline (1 => -): +Previously tested code has been deleted" */ +span.tlaDCB +{ + text-align: left; + background-color: #FFFFFF; +} +span.tlaBgDCB { + background-color: #FFFFFF; +} +a.tlaBgDCB { + background-color: #FFFFFF; + color: #000000; +} + +td.headerCovTableHeadDCB { + text-align: center; + padding-right: 6px; + padding-left: 6px; + padding-bottom: 0px; + font-family: sans-serif; + white-space: nowrap; + background-color: #FFFFFF; +} + +/* Source code view: format for date/owner bin that is not hit */ +span.missBins +{ + background-color: #ff0000 /* red */ +} diff --git a/static/languages/rust/coverage/grcov_llvm_lcov/glass.png b/static/languages/rust/coverage/grcov_llvm_lcov/glass.png new file mode 100644 index 0000000000000000000000000000000000000000..e1abc00680a3093c49fdb775ae6bdb6764c95af2 GIT binary patch literal 167 zcmeAS@N?(olHy`uVBq!ia0vp^j3CU&3?x-=hn)gaEa{HEjtmSN`?>!lvI6;R0X`wF z|Ns97GD8ntt^-nxB|(0{3=Yq3q=7g|-tI089jvk*Kn`btM`SSr1Gf+eGhVt|_XjA* zUgGKN%6^Gmn4d%Ph(nkFP>9RZ#WAE}PI3Z}&BVayv3^M*kj3EX>gTe~DWM4f=_Dpv literal 0 HcmV?d00001 diff --git a/static/languages/rust/coverage/grcov_llvm_lcov/index.html b/static/languages/rust/coverage/grcov_llvm_lcov/index.html new file mode 100644 index 0000000..2cd833d --- /dev/null +++ b/static/languages/rust/coverage/grcov_llvm_lcov/index.html @@ -0,0 +1,114 @@ + + + + + + + LCOV - grcov_llvm_lcov.info + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top levelCoverageTotalHit
Test:grcov_llvm_lcov.infoLines:94.2 %6965
Test Date:2026-05-08 10:13:24Functions:86.7 %1513
Legend: Rating: + low: < 75 % + medium: >= 75 % + high: >= 90 % +
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Directory Sort by file nameLine Coverage Sort by line coverageFunction Coverage Sort by function coverage
Rate Total Hit Rate Total Hit
src/ +
94.2%94.2%
+
94.2 %696586.7 %1513
+
+
+ + + + +
Generated by: LCOV version 2.0-1
+
+ + + diff --git a/static/languages/rust/coverage/grcov_llvm_lcov/ruby.png b/static/languages/rust/coverage/grcov_llvm_lcov/ruby.png new file mode 100644 index 0000000000000000000000000000000000000000..991b6d4ec9e78be165e3ef757eed1aada287364d GIT binary patch literal 141 zcmeAS@N?(olHy`uVBq!ia0vp^j3CU&3?x-=hn)ga>?NMQuI!iC1^FceV#7`HfI^%F z9+AZi4BSE>%y{W;-5;PJOS+@4BLl<6e(pbstUx|nfKQ0)e^Y%R^MdiLxj>4`)5S5Q b;#P73kj=!v_*DHKNFRfztDnm{r-UW|iOwIS literal 0 HcmV?d00001 diff --git a/static/languages/rust/coverage/grcov_llvm_lcov/snow.png b/static/languages/rust/coverage/grcov_llvm_lcov/snow.png new file mode 100644 index 0000000000000000000000000000000000000000..2cdae107fceec6e7f02ac7acb4a34a82a540caa5 GIT binary patch literal 141 zcmeAS@N?(olHy`uVBq!ia0vp^j3CU&3?x-=hn)ga>?NMQuI!iC1^MM!lvI6;R0X`wF|Ns97GD8ntt^-nBo-U3d c6}OTTfNUlP#;5A{K>8RwUHx3vIVCg!071?oo&W#< literal 0 HcmV?d00001 diff --git a/static/languages/rust/coverage/grcov_llvm_lcov/src/index-detail-sort-f.html b/static/languages/rust/coverage/grcov_llvm_lcov/src/index-detail-sort-f.html new file mode 100644 index 0000000..c98822f --- /dev/null +++ b/static/languages/rust/coverage/grcov_llvm_lcov/src/index-detail-sort-f.html @@ -0,0 +1,144 @@ + + + + + + + LCOV - grcov_llvm_lcov.info - src + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - srcCoverageTotalHit
Test:grcov_llvm_lcov.infoLines:94.2 %6965
Test Date:2026-05-08 10:13:24Functions:86.7 %1513
Legend: Rating: + low: < 75 % + medium: >= 75 % + high: >= 90 % +
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

File Sort by file nameLine Coverage ( hide details ) Sort by line coverageFunction Coverage Sort by function coverage
Rate Total Hit Rate Total Hit
main.rs +
93.8%93.8%
+
93.8 %646085.7 %1412
<unnamed>93.8 %646085.7 %1412
second.rs +
100.0%
+
100.0 %55100.0 %11
<unnamed>100.0 %55100.0 %11
+
+
+ + + + +
Generated by: LCOV version 2.0-1
+
+ + + diff --git a/static/languages/rust/coverage/grcov_llvm_lcov/src/index-detail-sort-l.html b/static/languages/rust/coverage/grcov_llvm_lcov/src/index-detail-sort-l.html new file mode 100644 index 0000000..a36da5e --- /dev/null +++ b/static/languages/rust/coverage/grcov_llvm_lcov/src/index-detail-sort-l.html @@ -0,0 +1,144 @@ + + + + + + + LCOV - grcov_llvm_lcov.info - src + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - srcCoverageTotalHit
Test:grcov_llvm_lcov.infoLines:94.2 %6965
Test Date:2026-05-08 10:13:24Functions:86.7 %1513
Legend: Rating: + low: < 75 % + medium: >= 75 % + high: >= 90 % +
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

File Sort by file nameLine Coverage ( hide details ) Sort by line coverageFunction Coverage Sort by function coverage
Rate Total Hit Rate Total Hit
main.rs +
93.8%93.8%
+
93.8 %646085.7 %1412
<unnamed>93.8 %646085.7 %1412
second.rs +
100.0%
+
100.0 %55100.0 %11
<unnamed>100.0 %55100.0 %11
+
+
+ + + + +
Generated by: LCOV version 2.0-1
+
+ + + diff --git a/static/languages/rust/coverage/grcov_llvm_lcov/src/index-detail.html b/static/languages/rust/coverage/grcov_llvm_lcov/src/index-detail.html new file mode 100644 index 0000000..a72d43e --- /dev/null +++ b/static/languages/rust/coverage/grcov_llvm_lcov/src/index-detail.html @@ -0,0 +1,144 @@ + + + + + + + LCOV - grcov_llvm_lcov.info - src + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - srcCoverageTotalHit
Test:grcov_llvm_lcov.infoLines:94.2 %6965
Test Date:2026-05-08 10:13:24Functions:86.7 %1513
Legend: Rating: + low: < 75 % + medium: >= 75 % + high: >= 90 % +
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

File Sort by file nameLine Coverage ( hide details ) Sort by line coverageFunction Coverage Sort by function coverage
Rate Total Hit Rate Total Hit
main.rs +
93.8%93.8%
+
93.8 %646085.7 %1412
<unnamed>93.8 %646085.7 %1412
second.rs +
100.0%
+
100.0 %55100.0 %11
<unnamed>100.0 %55100.0 %11
+
+
+ + + + +
Generated by: LCOV version 2.0-1
+
+ + + diff --git a/static/languages/rust/coverage/grcov_llvm_lcov/src/index-sort-f.html b/static/languages/rust/coverage/grcov_llvm_lcov/src/index-sort-f.html new file mode 100644 index 0000000..22eb497 --- /dev/null +++ b/static/languages/rust/coverage/grcov_llvm_lcov/src/index-sort-f.html @@ -0,0 +1,126 @@ + + + + + + + LCOV - grcov_llvm_lcov.info - src + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - srcCoverageTotalHit
Test:grcov_llvm_lcov.infoLines:94.2 %6965
Test Date:2026-05-08 10:13:24Functions:86.7 %1513
Legend: Rating: + low: < 75 % + medium: >= 75 % + high: >= 90 % +
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

File Sort by file nameLine Coverage ( show details ) Sort by line coverageFunction Coverage Sort by function coverage
Rate Total Hit Rate Total Hit
main.rs +
93.8%93.8%
+
93.8 %646085.7 %1412
second.rs +
100.0%
+
100.0 %55100.0 %11
+
+
+ + + + +
Generated by: LCOV version 2.0-1
+
+ + + diff --git a/static/languages/rust/coverage/grcov_llvm_lcov/src/index-sort-l.html b/static/languages/rust/coverage/grcov_llvm_lcov/src/index-sort-l.html new file mode 100644 index 0000000..0367e20 --- /dev/null +++ b/static/languages/rust/coverage/grcov_llvm_lcov/src/index-sort-l.html @@ -0,0 +1,126 @@ + + + + + + + LCOV - grcov_llvm_lcov.info - src + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - srcCoverageTotalHit
Test:grcov_llvm_lcov.infoLines:94.2 %6965
Test Date:2026-05-08 10:13:24Functions:86.7 %1513
Legend: Rating: + low: < 75 % + medium: >= 75 % + high: >= 90 % +
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

File Sort by file nameLine Coverage ( show details ) Sort by line coverageFunction Coverage Sort by function coverage
Rate Total Hit Rate Total Hit
main.rs +
93.8%93.8%
+
93.8 %646085.7 %1412
second.rs +
100.0%
+
100.0 %55100.0 %11
+
+
+ + + + +
Generated by: LCOV version 2.0-1
+
+ + + diff --git a/static/languages/rust/coverage/grcov_llvm_lcov/src/index.html b/static/languages/rust/coverage/grcov_llvm_lcov/src/index.html new file mode 100644 index 0000000..fddfca5 --- /dev/null +++ b/static/languages/rust/coverage/grcov_llvm_lcov/src/index.html @@ -0,0 +1,126 @@ + + + + + + + LCOV - grcov_llvm_lcov.info - src + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - srcCoverageTotalHit
Test:grcov_llvm_lcov.infoLines:94.2 %6965
Test Date:2026-05-08 10:13:24Functions:86.7 %1513
Legend: Rating: + low: < 75 % + medium: >= 75 % + high: >= 90 % +
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

File Sort by file nameLine Coverage ( show details ) Sort by line coverageFunction Coverage Sort by function coverage
Rate Total Hit Rate Total Hit
main.rs +
93.8%93.8%
+
93.8 %646085.7 %1412
second.rs +
100.0%
+
100.0 %55100.0 %11
+
+
+ + + + +
Generated by: LCOV version 2.0-1
+
+ + + diff --git a/static/languages/rust/coverage/grcov_llvm_lcov/src/main.rs.func-c.html b/static/languages/rust/coverage/grcov_llvm_lcov/src/main.rs.func-c.html new file mode 100644 index 0000000..71a330b --- /dev/null +++ b/static/languages/rust/coverage/grcov_llvm_lcov/src/main.rs.func-c.html @@ -0,0 +1,204 @@ + + + + + + + LCOV - grcov_llvm_lcov.info - src/main.rs - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - src - main.rs (source / functions)CoverageTotalHit
Test:grcov_llvm_lcov.infoLines:93.8 %6460
Test Date:2026-05-08 10:13:24Functions:85.7 %1412
Legend: Lines:     + hit + not hit +
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Function Name Sort by function nameHit count Sort by function hit count
tmp::main0
tmp::tests::check_generic1
tmp::tests::check_match1
tmp::tests::check_match21
tmp::tests::check_not_panic1
tmp::tests::check_panic1
tmp::tests::parser_detects_errors1
tmp::validate_data_generics1
tmp::validate_data_match1
tmp::validate_data_simple1
tmp::largest::<_>3
tmp::largest::<_>0
tmp::largest::<char>1
tmp::largest::<i32>1
tmp::largest::<u8>1
+
+
+ + + +
Generated by: LCOV version 2.0-1
+
+ + + diff --git a/static/languages/rust/coverage/grcov_llvm_lcov/src/main.rs.func.html b/static/languages/rust/coverage/grcov_llvm_lcov/src/main.rs.func.html new file mode 100644 index 0000000..bda3e14 --- /dev/null +++ b/static/languages/rust/coverage/grcov_llvm_lcov/src/main.rs.func.html @@ -0,0 +1,204 @@ + + + + + + + LCOV - grcov_llvm_lcov.info - src/main.rs - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - src - main.rs (source / functions)CoverageTotalHit
Test:grcov_llvm_lcov.infoLines:93.8 %6460
Test Date:2026-05-08 10:13:24Functions:85.7 %1412
Legend: Lines:     + hit + not hit +
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Function Name Sort by function nameHit count Sort by function hit count
tmp::largest::<_>3
tmp::largest::<_>0
tmp::largest::<char>1
tmp::largest::<i32>1
tmp::largest::<u8>1
tmp::main0
tmp::tests::check_generic1
tmp::tests::check_match1
tmp::tests::check_match21
tmp::tests::check_not_panic1
tmp::tests::check_panic1
tmp::tests::parser_detects_errors1
tmp::validate_data_generics1
tmp::validate_data_match1
tmp::validate_data_simple1
+
+
+ + + +
Generated by: LCOV version 2.0-1
+
+ + + diff --git a/static/languages/rust/coverage/grcov_llvm_lcov/src/main.rs.gcov.html b/static/languages/rust/coverage/grcov_llvm_lcov/src/main.rs.gcov.html new file mode 100644 index 0000000..8220635 --- /dev/null +++ b/static/languages/rust/coverage/grcov_llvm_lcov/src/main.rs.gcov.html @@ -0,0 +1,191 @@ + + + + + + + LCOV - grcov_llvm_lcov.info - src/main.rs + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - src - main.rs (source / functions)CoverageTotalHit
Test:grcov_llvm_lcov.infoLines:93.8 %6460
Test Date:2026-05-08 10:13:24Functions:85.7 %1412
Legend: Lines:     + hit + not hit +
+
+ + + + + + + + +

+
            Line data    Source code
+
+       1              : mod second;
+       2              : 
+       3            0 : fn main() { println!("Hello, world!"); }
+       4              : 
+       5            2 : fn validate_data_simple(data: &Data) -> Result<(), ()> {
+       6            2 :     if !data.magic.eq(&[0x13, 0x37]) { return Err(()) }
+       7            0 :     if data.len as usize != data.content.len() { return Err(()) }
+       8            0 :     return Ok(());
+       9            2 : }
+      10              : 
+      11            4 : fn validate_data_match(data: &Data) -> i32 {
+      12            4 :     let x: u32 = match data.content.parse::<u32>() {
+      13            2 :         Ok(_x) => {
+      14            2 :             let y = 2 * _x;
+      15            2 :             if y < 6 {
+      16            0 :                 y
+      17              :             } else {
+      18            2 :                 y * 2
+      19              :             }
+      20              :         }
+      21            2 :         Err(_) => 0
+      22              :     };
+      23            4 :     if x == 0 {
+      24            2 :         -1
+      25              :     } else {
+      26            2 :         (x as i32) + 1
+      27              :     }
+      28            4 : }
+      29              : 
+      30              : // https://doc.rust-lang.org/book/ch10-01-syntax.html
+      31            6 : fn largest<T: PartialOrd>(list: &[T]) -> &T {
+      32            6 :     let mut largest = &list[0];
+      33           24 :     for item in list {
+      34           24 :         if item > largest {
+      35            6 :             largest = item;
+      36           18 :         }
+      37              :     }
+      38            6 :     largest
+      39            6 : }
+      40              : 
+      41            2 : fn validate_data_generics(data: &Data) {
+      42            2 :     let number_list = vec![34, 50, 25, 100, 65];
+      43              : 
+      44            2 :     let result = largest(&number_list);
+      45            2 :     println!("The largest number is {}", result);
+      46              : 
+      47            2 :     let char_list = vec!['y', 'm', 'a', 'q'];
+      48              : 
+      49            2 :     let result = largest(&char_list);
+      50            2 :     println!("The largest char is {}", result);
+      51              : 
+      52            2 :     let result = largest(data.content.as_bytes());
+      53            2 :     println!("The largest content char is {}", result);
+      54            2 : }
+      55              : 
+      56              : struct Data {
+      57              :     magic: [u8; 2],
+      58              :     len: u8,
+      59              :     content: String
+      60              : }
+      61              : 
+      62              : #[cfg(test)]
+      63              : mod tests {
+      64              :     use crate::second::validate_data_panic;
+      65              :     use crate::{Data, validate_data_generics, validate_data_match, validate_data_simple};
+      66              : 
+      67              :     #[test]
+      68            2 :     fn parser_detects_errors() {
+      69            2 :         let mut blob = Data{ magic: [0x73, 0x31], len: 2, content: "AB".parse().unwrap() };
+      70            2 :         blob.content = blob.content + "Y";
+      71            2 :         let result = validate_data_simple(&blob);
+      72            2 :         assert!(result.is_err());
+      73            2 :     }
+      74              : 
+      75              :     #[test]
+      76            2 :     fn check_match() {
+      77            2 :         let blob = Data{ magic: [0x73, 0x31], len: 2, content: "XX".parse().unwrap() };
+      78            2 :         let x = validate_data_match(&blob);
+      79            2 :         assert_eq!(x, -1);
+      80            2 :     }
+      81              : 
+      82              :     #[test]
+      83            2 :     fn check_match2() {
+      84            2 :         let blob = Data{ magic: [0x73, 0x31], len: 2, content: "40".parse().unwrap() };
+      85            2 :         let x = validate_data_match(&blob);
+      86            2 :         assert_eq!(x, 161);
+      87            2 :     }
+      88              : 
+      89              :     #[test]
+      90            2 :     fn check_generic() {
+      91            2 :         let blob = Data{ magic: [0x73, 0x31], len: 2, content: "QWE".parse().unwrap() };
+      92            2 :         validate_data_generics(&blob);
+      93            2 :     }
+      94              : 
+      95              :     #[test]
+      96              :     #[should_panic]
+      97            2 :     fn check_panic() {
+      98            2 :         let blob = Data{ magic: [0x73, 0x31], len: 0, content: "4".parse().unwrap() };
+      99            2 :         validate_data_panic(&blob);
+     100            2 :     }
+     101              : 
+     102              :     #[test]
+     103            2 :     fn check_not_panic() {
+     104            2 :         let blob = Data{ magic: [0x73, 0x31], len: 2, content: "4".parse().unwrap() };
+     105            2 :         validate_data_panic(&blob);
+     106            2 :     }
+     107              : }
+        
+
+
+ + + + +
Generated by: LCOV version 2.0-1
+
+ + + diff --git a/static/languages/rust/coverage/grcov_llvm_lcov/src/second.rs.func-c.html b/static/languages/rust/coverage/grcov_llvm_lcov/src/second.rs.func-c.html new file mode 100644 index 0000000..aa7b6fe --- /dev/null +++ b/static/languages/rust/coverage/grcov_llvm_lcov/src/second.rs.func-c.html @@ -0,0 +1,92 @@ + + + + + + + LCOV - grcov_llvm_lcov.info - src/second.rs - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - src - second.rs (source / functions)CoverageTotalHit
Test:grcov_llvm_lcov.infoLines:100.0 %55
Test Date:2026-05-08 10:13:24Functions:100.0 %11
Legend: Lines:     + hit + not hit +
+
+ +
+ + + + + + + + + + + + + + + + + + +

Function Name Sort by function nameHit count Sort by function hit count
tmp::second::validate_data_panic1
+
+
+ + + +
Generated by: LCOV version 2.0-1
+
+ + + diff --git a/static/languages/rust/coverage/grcov_llvm_lcov/src/second.rs.func.html b/static/languages/rust/coverage/grcov_llvm_lcov/src/second.rs.func.html new file mode 100644 index 0000000..1ba9078 --- /dev/null +++ b/static/languages/rust/coverage/grcov_llvm_lcov/src/second.rs.func.html @@ -0,0 +1,92 @@ + + + + + + + LCOV - grcov_llvm_lcov.info - src/second.rs - functions + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - src - second.rs (source / functions)CoverageTotalHit
Test:grcov_llvm_lcov.infoLines:100.0 %55
Test Date:2026-05-08 10:13:24Functions:100.0 %11
Legend: Lines:     + hit + not hit +
+
+ +
+ + + + + + + + + + + + + + + + + + +

Function Name Sort by function nameHit count Sort by function hit count
tmp::second::validate_data_panic1
+
+
+ + + +
Generated by: LCOV version 2.0-1
+
+ + + diff --git a/static/languages/rust/coverage/grcov_llvm_lcov/src/second.rs.gcov.html b/static/languages/rust/coverage/grcov_llvm_lcov/src/second.rs.gcov.html new file mode 100644 index 0000000..00d6dd5 --- /dev/null +++ b/static/languages/rust/coverage/grcov_llvm_lcov/src/second.rs.gcov.html @@ -0,0 +1,91 @@ + + + + + + + LCOV - grcov_llvm_lcov.info - src/second.rs + + + + + + + + + + + + + + +
LCOV - code coverage report
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Current view:top level - src - second.rs (source / functions)CoverageTotalHit
Test:grcov_llvm_lcov.infoLines:100.0 %55
Test Date:2026-05-08 10:13:24Functions:100.0 %11
Legend: Lines:     + hit + not hit +
+
+ + + + + + + + +

+
            Line data    Source code
+
+       1              : use crate::Data;
+       2              : 
+       3            4 : pub(crate) fn validate_data_panic(data: &Data) {
+       4            4 :     if data.len == 0 {
+       5            2 :         panic!("panic")
+       6            2 :     }
+       7            2 : }
+        
+
+
+ + + + +
Generated by: LCOV version 2.0-1
+
+ + + diff --git a/static/languages/rust/coverage/grcov_llvm_lcov/updown.png b/static/languages/rust/coverage/grcov_llvm_lcov/updown.png new file mode 100644 index 0000000000000000000000000000000000000000..aa56a238b3e6c435265250f9266cd1b8caba0f20 GIT binary patch literal 117 zcmeAS@N?(olHy`uVBq!ia0vp^AT}Qd8;}%R+`Ae`*?77*hG?8mPH5^{)z4*}Q$iB}huR`+ literal 0 HcmV?d00001 diff --git a/static/languages/rust/coverage/llvm_cov/control.js b/static/languages/rust/coverage/llvm_cov/control.js new file mode 100644 index 0000000..5897b00 --- /dev/null +++ b/static/languages/rust/coverage/llvm_cov/control.js @@ -0,0 +1,99 @@ + +function next_uncovered(selector, reverse, scroll_selector) { + function visit_element(element) { + element.classList.add("seen"); + element.classList.add("selected"); + + if (!scroll_selector) { + scroll_selector = "tr:has(.selected) td.line-number" + } + + const scroll_to = document.querySelector(scroll_selector); + if (scroll_to) { + scroll_to.scrollIntoView({behavior: "smooth", block: "center", inline: "end"}); + } + } + + function select_one() { + if (!reverse) { + const previously_selected = document.querySelector(".selected"); + + if (previously_selected) { + previously_selected.classList.remove("selected"); + } + + return document.querySelector(selector + ":not(.seen)"); + } else { + const previously_selected = document.querySelector(".selected"); + + if (previously_selected) { + previously_selected.classList.remove("selected"); + previously_selected.classList.remove("seen"); + } + + const nodes = document.querySelectorAll(selector + ".seen"); + if (nodes) { + const last = nodes[nodes.length - 1]; // last + return last; + } else { + return undefined; + } + } + } + + function reset_all() { + if (!reverse) { + const all_seen = document.querySelectorAll(selector + ".seen"); + + if (all_seen) { + all_seen.forEach(e => e.classList.remove("seen")); + } + } else { + const all_seen = document.querySelectorAll(selector + ":not(.seen)"); + + if (all_seen) { + all_seen.forEach(e => e.classList.add("seen")); + } + } + + } + + const uncovered = select_one(); + + if (uncovered) { + visit_element(uncovered); + } else { + reset_all(); + + const uncovered = select_one(); + + if (uncovered) { + visit_element(uncovered); + } + } +} + +function next_line(reverse) { + next_uncovered("td.uncovered-line", reverse) +} + +function next_region(reverse) { + next_uncovered("span.red.region", reverse); +} + +function next_branch(reverse) { + next_uncovered("span.red.branch", reverse); +} + +document.addEventListener("keypress", function(event) { + const reverse = event.shiftKey; + if (event.code == "KeyL") { + next_line(reverse); + } + if (event.code == "KeyB") { + next_branch(reverse); + } + if (event.code == "KeyR") { + next_region(reverse); + } +}); diff --git a/static/languages/rust/coverage/llvm_cov/coverage/home/test/src/main.rs.html b/static/languages/rust/coverage/llvm_cov/coverage/home/test/src/main.rs.html new file mode 100644 index 0000000..a171adc --- /dev/null +++ b/static/languages/rust/coverage/llvm_cov/coverage/home/test/src/main.rs.html @@ -0,0 +1 @@ +

Coverage Report

Created: 2026-05-08 10:13

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/home/test/src/main.rs
Line
Count
Source
1
mod second;
2
3
0
fn main() { println!("Hello, world!"); }
4
5
1
fn validate_data_simple(data: &Data) -> Result<(), ()> {
6
1
    if !data.magic.eq(&[0x13, 0x37]) { return Err(()) 
}0
7
0
    if data.len as usize != data.content.len() { return Err(()) }
8
0
    return Ok(());
9
1
}
10
11
2
fn validate_data_match(data: &Data) -> i32 {
12
2
    let x: u32 = match data.content.parse::<u32>() {
13
1
        Ok(_x) => {
14
1
            let y = 2 * _x;
15
1
            if y < 6 {
16
0
                y
17
            } else {
18
1
                y * 2
19
            }
20
        }
21
1
        Err(_) => 0
22
    };
23
2
    if x == 0 {
24
1
        -1
25
    } else {
26
1
        (x as i32) + 1
27
    }
28
2
}
29
30
// https://doc.rust-lang.org/book/ch10-01-syntax.html
31
3
fn largest<T: PartialOrd>(list: &[T]) -> &T {
32
3
    let mut largest = &list[0];
33
12
    for item in 
list3
{
34
12
        if item > largest {
35
3
            largest = item;
36
9
        }
37
    }
38
3
    largest
39
3
}
tmp::largest::<char>
Line
Count
Source
31
1
fn largest<T: PartialOrd>(list: &[T]) -> &T {
32
1
    let mut largest = &list[0];
33
4
    for item in 
list1
{
34
4
        if item > largest {
35
0
            largest = item;
36
4
        }
37
    }
38
1
    largest
39
1
}
tmp::largest::<u8>
Line
Count
Source
31
1
fn largest<T: PartialOrd>(list: &[T]) -> &T {
32
1
    let mut largest = &list[0];
33
3
    for item in 
list1
{
34
3
        if item > largest {
35
1
            largest = item;
36
2
        }
37
    }
38
1
    largest
39
1
}
tmp::largest::<i32>
Line
Count
Source
31
1
fn largest<T: PartialOrd>(list: &[T]) -> &T {
32
1
    let mut largest = &list[0];
33
5
    for item in 
list1
{
34
5
        if item > largest {
35
2
            largest = item;
36
3
        }
37
    }
38
1
    largest
39
1
}
40
41
1
fn validate_data_generics(data: &Data) {
42
1
    let number_list = vec![34, 50, 25, 100, 65];
43
44
1
    let result = largest(&number_list);
45
1
    println!("The largest number is {}", result);
46
47
1
    let char_list = vec!['y', 'm', 'a', 'q'];
48
49
1
    let result = largest(&char_list);
50
1
    println!("The largest char is {}", result);
51
52
1
    let result = largest(data.content.as_bytes());
53
1
    println!("The largest content char is {}", result);
54
1
}
55
56
struct Data {
57
    magic: [u8; 2],
58
    len: u8,
59
    content: String
60
}
61
62
#[cfg(test)]
63
mod tests {
64
    use crate::second::validate_data_panic;
65
    use crate::{Data, validate_data_generics, validate_data_match, validate_data_simple};
66
67
    #[test]
68
1
    fn parser_detects_errors() {
69
1
        let mut blob = Data{ magic: [0x73, 0x31], len: 2, content: "AB".parse().unwrap() };
70
1
        blob.content = blob.content + "Y";
71
1
        let result = validate_data_simple(&blob);
72
1
        assert!(result.is_err());
73
1
    }
74
75
    #[test]
76
1
    fn check_match() {
77
1
        let blob = Data{ magic: [0x73, 0x31], len: 2, content: "XX".parse().unwrap() };
78
1
        let x = validate_data_match(&blob);
79
1
        assert_eq!(x, -1);
80
1
    }
81
82
    #[test]
83
1
    fn check_match2() {
84
1
        let blob = Data{ magic: [0x73, 0x31], len: 2, content: "40".parse().unwrap() };
85
1
        let x = validate_data_match(&blob);
86
1
        assert_eq!(x, 161);
87
1
    }
88
89
    #[test]
90
1
    fn check_generic() {
91
1
        let blob = Data{ magic: [0x73, 0x31], len: 2, content: "QWE".parse().unwrap() };
92
1
        validate_data_generics(&blob);
93
1
    }
94
95
    #[test]
96
    #[should_panic]
97
1
    fn check_panic() {
98
1
        let blob = Data{ magic: [0x73, 0x31], len: 0, content: "4".parse().unwrap() };
99
1
        validate_data_panic(&blob);
100
1
    }
101
102
    #[test]
103
1
    fn check_not_panic() {
104
1
        let blob = Data{ magic: [0x73, 0x31], len: 2, content: "4".parse().unwrap() };
105
1
        validate_data_panic(&blob);
106
1
    }
107
}
\ No newline at end of file diff --git a/static/languages/rust/coverage/llvm_cov/coverage/home/test/src/second.rs.html b/static/languages/rust/coverage/llvm_cov/coverage/home/test/src/second.rs.html new file mode 100644 index 0000000..6468665 --- /dev/null +++ b/static/languages/rust/coverage/llvm_cov/coverage/home/test/src/second.rs.html @@ -0,0 +1 @@ +

Coverage Report

Created: 2026-05-08 10:13

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/home/test/src/second.rs
Line
Count
Source
1
use crate::Data;
2
3
2
pub(crate) fn validate_data_panic(data: &Data) {
4
2
    if data.len == 0 {
5
1
        panic!("panic")
6
1
    }
7
1
}
\ No newline at end of file diff --git a/static/languages/rust/coverage/llvm_cov/index.html b/static/languages/rust/coverage/llvm_cov/index.html new file mode 100644 index 0000000..00f40eb --- /dev/null +++ b/static/languages/rust/coverage/llvm_cov/index.html @@ -0,0 +1 @@ +

Coverage Report

Created: 2026-05-08 10:13

Click here for information about interpreting this report.

FilenameFunction CoverageLine CoverageRegion CoverageBranch Coverage
main.rs
  90.91% (10/11)
  93.75% (60/64)
  91.30% (105/115)
- (0/0)
second.rs
 100.00% (1/1)
 100.00% (5/5)
 100.00% (5/5)
- (0/0)
Totals
  91.67% (11/12)
  94.20% (65/69)
  91.67% (110/120)
- (0/0)
Generated by llvm-cov -- llvm version 22.1.2-rust-1.95.0-stable
\ No newline at end of file diff --git a/static/languages/rust/coverage/llvm_cov/style.css b/static/languages/rust/coverage/llvm_cov/style.css new file mode 100644 index 0000000..ae4f09f --- /dev/null +++ b/static/languages/rust/coverage/llvm_cov/style.css @@ -0,0 +1,194 @@ +.red { + background-color: #f004; +} +.cyan { + background-color: cyan; +} +html { + scroll-behavior: smooth; +} +body { + font-family: -apple-system, sans-serif; +} +pre { + margin-top: 0px !important; + margin-bottom: 0px !important; +} +.source-name-title { + padding: 5px 10px; + border-bottom: 1px solid #8888; + background-color: #0002; + line-height: 35px; +} +.centered { + display: table; + margin-left: left; + margin-right: auto; + border: 1px solid #8888; + border-radius: 3px; +} +.expansion-view { + margin-left: 0px; + margin-top: 5px; + margin-right: 5px; + margin-bottom: 5px; + border: 1px solid #8888; + border-radius: 3px; +} +table { + border-collapse: collapse; +} +.light-row { + border: 1px solid #8888; + border-left: none; + border-right: none; +} +.light-row-bold { + border: 1px solid #8888; + border-left: none; + border-right: none; + font-weight: bold; +} +.column-entry { + text-align: left; +} +.column-entry-bold { + font-weight: bold; + text-align: left; +} +.column-entry-yellow { + text-align: left; + background-color: #ff06; +} +.column-entry-red { + text-align: left; + background-color: #f004; +} +.column-entry-gray { + text-align: left; + background-color: #fff4; +} +.column-entry-green { + text-align: left; + background-color: #0f04; +} +.line-number { + text-align: right; +} +.covered-line { + text-align: right; + color: #06d; +} +.uncovered-line { + text-align: right; + color: #d00; +} +.uncovered-line.selected { + color: #f00; + font-weight: bold; +} +.region.red.selected { + background-color: #f008; + font-weight: bold; +} +.branch.red.selected { + background-color: #f008; + font-weight: bold; +} +.tooltip { + position: relative; + display: inline; + background-color: #bef; + text-decoration: none; +} +.tooltip span.tooltip-content { + position: absolute; + width: 100px; + margin-left: -50px; + color: #FFFFFF; + background: #000000; + height: 30px; + line-height: 30px; + text-align: center; + visibility: hidden; + border-radius: 6px; +} +.tooltip span.tooltip-content:after { + content: ''; + position: absolute; + top: 100%; + left: 50%; + margin-left: -8px; + width: 0; height: 0; + border-top: 8px solid #000000; + border-right: 8px solid transparent; + border-left: 8px solid transparent; +} +:hover.tooltip span.tooltip-content { + visibility: visible; + opacity: 0.8; + bottom: 30px; + left: 50%; + z-index: 999; +} +th, td { + vertical-align: top; + padding: 2px 8px; + border-collapse: collapse; + border-right: 1px solid #8888; + border-left: 1px solid #8888; + text-align: left; +} +td pre { + display: inline-block; + text-decoration: inherit; +} +td:first-child { + border-left: none; +} +td:last-child { + border-right: none; +} +tr:hover { + background-color: #eee; +} +tr:last-child { + border-bottom: none; +} +tr:has(> td >a:target), tr:has(> td.uncovered-line.selected) { + background-color: #8884; +} +a { + color: inherit; +} +.control { + position: fixed; + top: 0em; + right: 0em; + padding: 1em; + background: #FFF8; +} +@media (prefers-color-scheme: dark) { + body { + background-color: #222; + color: whitesmoke; + } + tr:hover { + background-color: #111; + } + .covered-line { + color: #39f; + } + .uncovered-line { + color: #f55; + } + .tooltip { + background-color: #068; + } + .control { + background: #2228; + } + tr:has(> td >a:target), tr:has(> td.uncovered-line.selected) { + background-color: #8884; + } +} diff --git a/static/languages/rust/coverage/llvm_cov_pretty/index.html b/static/languages/rust/coverage/llvm_cov_pretty/index.html new file mode 100644 index 0000000..9a980ca --- /dev/null +++ b/static/languages/rust/coverage/llvm_cov_pretty/index.html @@ -0,0 +1 @@ +Index

Coverage Report

Created at 2026-05-08 10:13

FilenameLine Coverage

94.20 %

Function Coverage

91.67 %

Region Coverage

91.67 %

src/main.rs
93.75 %60 / 64
90.91 %10 / 11
91.30 %105 / 115
src/second.rs
100.00 %5 / 5
100.00 %1 / 1
100.00 %5 / 5
\ No newline at end of file diff --git a/static/languages/rust/coverage/llvm_cov_pretty/src/main.rs.html b/static/languages/rust/coverage/llvm_cov_pretty/src/main.rs.html new file mode 100644 index 0000000..60999c2 --- /dev/null +++ b/static/languages/rust/coverage/llvm_cov_pretty/src/main.rs.html @@ -0,0 +1 @@ +src/main.rs

src/main.rs

Lines

93.75 %

Functions

90.91 %

Regions

91.30 %

LineCountSource (jump to first uncovered line)
1
mod second;
2
30
fn main() { println!("Hello, world!"); }
4
51
fn validate_data_simple(data: &Data) -> Result<(), ()> {
61
    if !data.magic.eq(&[0x13, 0x37]) { return Err(()) }
70
    if data.len as usize != data.content.len() { return Err(()) }
80
    return Ok(());
91
}
10
112
fn validate_data_match(data: &Data) -> i32 {
122
    let x: u32 = match data.content.parse::<u32>() {
131
        Ok(_x) => {
141
            let y = 2 * _x;
151
            if y < 6 {
160
                y
17
            } else {
181
                y * 2
19
            }
20
        }
211
        Err(_) => 0
22
    };
232
    if x == 0 {
241
        -1
25
    } else {
261
        (x as i32) + 1
27
    }
282
}
29
30
// https://doc.rust-lang.org/book/ch10-01-syntax.html
313
fn largest<T: PartialOrd>(list: &[T]) -> &T {
323
    let mut largest = &list[0];
333
    for item in list {
343
        if item > largest {
353
            largest = item;
369
        }
37
    }
383
    largest
393
}
40
411
fn validate_data_generics(data: &Data) {
421
    let number_list = vec![34, 50, 25, 100, 65];
43
441
    let result = largest(&number_list);
451
    println!("The largest number is {}", result);
46
471
    let char_list = vec!['y', 'm', 'a', 'q'];
48
491
    let result = largest(&char_list);
501
    println!("The largest char is {}", result);
51
521
    let result = largest(data.content.as_bytes());
531
    println!("The largest content char is {}", result);
541
}
55
56
struct Data {
57
    magic: [u8; 2],
58
    len: u8,
59
    content: String
60
}
61
62
#[cfg(test)]
63
mod tests {
64
    use crate::second::validate_data_panic;
65
    use crate::{Data, validate_data_generics, validate_data_match, validate_data_simple};
66
67
    #[test]
681
    fn parser_detects_errors() {
691
        let mut blob = Data{ magic: [0x73, 0x31], len: 2, content: "AB".parse().unwrap() };
701
        blob.content = blob.content + "Y";
711
        let result = validate_data_simple(&blob);
721
        assert!(result.is_err());
731
    }
74
75
    #[test]
761
    fn check_match() {
771
        let blob = Data{ magic: [0x73, 0x31], len: 2, content: "XX".parse().unwrap() };
781
        let x = validate_data_match(&blob);
791
        assert_eq!(x, -1);
801
    }
81
82
    #[test]
831
    fn check_match2() {
841
        let blob = Data{ magic: [0x73, 0x31], len: 2, content: "40".parse().unwrap() };
851
        let x = validate_data_match(&blob);
861
        assert_eq!(x, 161);
871
    }
88
89
    #[test]
901
    fn check_generic() {
911
        let blob = Data{ magic: [0x73, 0x31], len: 2, content: "QWE".parse().unwrap() };
921
        validate_data_generics(&blob);
931
    }
94
95
    #[test]
96
    #[should_panic]
971
    fn check_panic() {
981
        let blob = Data{ magic: [0x73, 0x31], len: 0, content: "4".parse().unwrap() };
991
        validate_data_panic(&blob);
1001
    }
101
102
    #[test]
1031
    fn check_not_panic() {
1041
        let blob = Data{ magic: [0x73, 0x31], len: 2, content: "4".parse().unwrap() };
1051
        validate_data_panic(&blob);
1061
    }
107
}
\ No newline at end of file diff --git a/static/languages/rust/coverage/llvm_cov_pretty/src/second.rs.html b/static/languages/rust/coverage/llvm_cov_pretty/src/second.rs.html new file mode 100644 index 0000000..1aa7462 --- /dev/null +++ b/static/languages/rust/coverage/llvm_cov_pretty/src/second.rs.html @@ -0,0 +1 @@ +src/second.rs

src/second.rs

Lines

100.00 %

Functions

100.00 %

Regions

100.00 %

LineCountSource
1
use crate::Data;
2
32
pub(crate) fn validate_data_panic(data: &Data) {
42
    if data.len == 0 {
51
        panic!("panic")
61
    }
71
}
\ No newline at end of file diff --git a/static/languages/rust/coverage/llvm_cov_pretty/style.css b/static/languages/rust/coverage/llvm_cov_pretty/style.css new file mode 100644 index 0000000..1a98437 --- /dev/null +++ b/static/languages/rust/coverage/llvm_cov_pretty/style.css @@ -0,0 +1 @@ +/*! tailwindcss v3.4.11 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}body{--tw-bg-opacity:1;background-color:rgb(226 232 240/var(--tw-bg-opacity));--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity))}@media (prefers-color-scheme:dark){body{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity));--tw-text-opacity:1;color:rgb(241 245 249/var(--tw-text-opacity))}}a{color:rgb(37 99 235/var(--tw-text-opacity))}a,a:hover{--tw-text-opacity:1}a:hover{color:rgb(29 78 216/var(--tw-text-opacity));text-decoration-line:underline}@media (prefers-color-scheme:dark){a{color:rgb(96 165 250/var(--tw-text-opacity))}a,a:hover{--tw-text-opacity:1}a:hover{color:rgb(147 197 253/var(--tw-text-opacity))}}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.index-area{margin:1rem}.index-title{padding-bottom:2rem;font-size:1.875rem;line-height:2.25rem}.index-date{padding-bottom:2rem;font-size:1.125rem;line-height:1.75rem;font-weight:700}.index-table{width:100%;border-collapse:collapse;border-radius:.25rem;--tw-bg-opacity:1;background-color:rgb(203 213 225/var(--tw-bg-opacity))}@media (prefers-color-scheme:dark){.index-table{--tw-bg-opacity:1;background-color:rgb(51 65 85/var(--tw-bg-opacity))}}.index-table td,.index-table th{border-top-width:1px;border-bottom-width:1px;--tw-border-opacity:1;border-color:rgb(100 116 139/var(--tw-border-opacity));padding-left:.5rem;padding-right:.5rem}.index-table td:hover,.index-table th:hover{background-color:rgba(51,65,85,.25)}@media (prefers-color-scheme:dark){.index-table td:hover,.index-table th:hover{background-color:rgba(203,213,225,.25)}}.index-table tr:last-child td,.index-table tr:last-child th{border-style:none}.index-table td:not(:first-child){text-align:center}.index-table td:nth-child(2),.index-table td:nth-child(5),.index-table td:nth-child(8){visibility:collapse}@media (min-width:1024px){.index-table td:nth-child(2),.index-table td:nth-child(5),.index-table td:nth-child(8){visibility:visible}}.index-header th{padding-top:.5rem;padding-bottom:.5rem;vertical-align:top}.index-header p{font-size:1.25rem;line-height:1.75rem;font-weight:700}.progress-bar{height:.75rem;border-radius:9999px;--tw-bg-opacity:1;background-color:rgb(148 163 184/var(--tw-bg-opacity))}@media (min-width:1024px){.progress-bar{min-width:6rem}}@media (prefers-color-scheme:dark){.progress-bar{--tw-bg-opacity:1;background-color:rgb(100 116 139/var(--tw-bg-opacity))}}.progress-bar div:only-child{height:.75rem;border-radius:9999px}@media (min-width:1024px){.progress-bar div:only-child{min-width:.75rem}}.source-area{margin:1rem;-webkit-user-select:none;-moz-user-select:none;user-select:none;border-radius:.25rem;--tw-bg-opacity:1;background-color:rgb(203 213 225/var(--tw-bg-opacity))}@media (prefers-color-scheme:dark){.source-area{--tw-bg-opacity:1;background-color:rgb(51 65 85/var(--tw-bg-opacity))}}.source-path{-webkit-user-select:text;-moz-user-select:text;user-select:text;padding:1rem}.source-coverage{margin-top:1rem;margin-bottom:1rem;display:flex;flex-direction:row;justify-content:space-evenly;text-align:center;font-weight:700}.source-coverage p:first-child{font-size:.875rem;line-height:1.25rem}.source-coverage p:nth-child(2){font-size:1.25rem;line-height:1.75rem}.source-table{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.875rem;line-height:1.25rem}.source-table td{padding:0}.source-table thead{font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.source-table thead th{--tw-bg-opacity:1;background-color:rgb(148 163 184/var(--tw-bg-opacity));padding:.5rem;text-align:left}@media (prefers-color-scheme:dark){.source-table thead th{--tw-bg-opacity:1;background-color:rgb(71 85 105/var(--tw-bg-opacity))}}.source-table tbody tr{padding:0}.source-table tbody tr:hover{background-color:rgba(51,65,85,.25)}@media (prefers-color-scheme:dark){.source-table tbody tr:hover{background-color:rgba(203,213,225,.25)}}.source-table tbody tr td:first-child,.source-table tbody tr td:nth-child(2){--tw-bg-opacity:1;background-color:rgb(203 213 225/var(--tw-bg-opacity));padding-left:.5rem;padding-right:.5rem;text-align:right;vertical-align:top}@media (prefers-color-scheme:dark){.source-table tbody tr td:first-child,.source-table tbody tr td:nth-child(2){--tw-bg-opacity:1;background-color:rgb(51 65 85/var(--tw-bg-opacity))}}.source-table tbody tr td:nth-child(3){width:100%;cursor:text;-webkit-user-select:text;-moz-user-select:text;user-select:text}.source-table tbody tr td:nth-child(3) pre{padding-left:.5rem}.source-message{margin:.5rem;border-radius:.25rem;--tw-bg-opacity:1;background-color:rgb(148 163 184/var(--tw-bg-opacity));padding:.5rem}@media (prefers-color-scheme:dark){.source-message{--tw-bg-opacity:1;background-color:rgb(71 85 105/var(--tw-bg-opacity))}}.covered{--tw-bg-opacity:1;background-color:rgb(74 222 128/var(--tw-bg-opacity))}.covered:hover{--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity))}@media (prefers-color-scheme:dark){.covered{--tw-bg-opacity:1;background-color:rgb(22 101 52/var(--tw-bg-opacity))}.covered:hover{--tw-bg-opacity:1;background-color:rgb(21 128 61/var(--tw-bg-opacity))}}.uncovered{--tw-bg-opacity:1;background-color:rgb(248 113 113/var(--tw-bg-opacity))}.uncovered:hover{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity))}@media (prefers-color-scheme:dark){.uncovered{--tw-bg-opacity:1;background-color:rgb(153 27 27/var(--tw-bg-opacity))}.uncovered:hover{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity))}}.partially-covered{--tw-bg-opacity:1;background-color:rgb(250 204 21/var(--tw-bg-opacity))}.partially-covered:hover{--tw-bg-opacity:1;background-color:rgb(234 179 8/var(--tw-bg-opacity))}@media (prefers-color-scheme:dark){.partially-covered{--tw-bg-opacity:1;background-color:rgb(133 77 14/var(--tw-bg-opacity))}.partially-covered:hover{--tw-bg-opacity:1;background-color:rgb(161 98 7/var(--tw-bg-opacity))}}.gutter.covered{--tw-bg-opacity:1!important;background-color:rgb(74 222 128/var(--tw-bg-opacity))!important}@media (prefers-color-scheme:dark){.gutter.covered{--tw-bg-opacity:1!important;background-color:rgb(22 101 52/var(--tw-bg-opacity))!important}}.gutter.uncovered{--tw-bg-opacity:1!important;background-color:rgb(248 113 113/var(--tw-bg-opacity))!important}@media (prefers-color-scheme:dark){.gutter.uncovered{--tw-bg-opacity:1!important;background-color:rgb(153 27 27/var(--tw-bg-opacity))!important}}.gutter.partially-covered{--tw-bg-opacity:1!important;background-color:rgb(250 204 21/var(--tw-bg-opacity))!important}@media (prefers-color-scheme:dark){.gutter.partially-covered{--tw-bg-opacity:1!important;background-color:rgb(133 77 14/var(--tw-bg-opacity))!important}}.page-footer{padding-left:1rem;padding-top:1rem;font-size:.875rem;line-height:1.25rem;font-weight:700}.level-text-veryhigh{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity))}@media (prefers-color-scheme:dark){.level-text-veryhigh{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity))}}.level-text-high{--tw-text-opacity:1;color:rgb(234 179 8/var(--tw-text-opacity))}@media (prefers-color-scheme:dark){.level-text-high{--tw-text-opacity:1;color:rgb(202 138 4/var(--tw-text-opacity))}}.level-text-medium{--tw-text-opacity:1;color:rgb(245 158 11/var(--tw-text-opacity))}@media (prefers-color-scheme:dark){.level-text-medium{--tw-text-opacity:1;color:rgb(217 119 6/var(--tw-text-opacity))}}.level-text-low{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity))}@media (prefers-color-scheme:dark){.level-text-low{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity))}}.level-bg-veryhigh{--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity))}@media (prefers-color-scheme:dark){.level-bg-veryhigh{--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity))}}.level-bg-high{--tw-bg-opacity:1;background-color:rgb(234 179 8/var(--tw-bg-opacity))}@media (prefers-color-scheme:dark){.level-bg-high{--tw-bg-opacity:1;background-color:rgb(202 138 4/var(--tw-bg-opacity))}}.level-bg-medium{--tw-bg-opacity:1;background-color:rgb(245 158 11/var(--tw-bg-opacity))}@media (prefers-color-scheme:dark){.level-bg-medium{--tw-bg-opacity:1;background-color:rgb(217 119 6/var(--tw-bg-opacity))}}.level-bg-low{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity))}@media (prefers-color-scheme:dark){.level-bg-low{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity))}}.block{display:block}.table{display:table} \ No newline at end of file diff --git a/static/languages/rust/coverage/llvm_cov_pretty/syntax.css b/static/languages/rust/coverage/llvm_cov_pretty/syntax.css new file mode 100644 index 0000000..ed0020e --- /dev/null +++ b/static/languages/rust/coverage/llvm_cov_pretty/syntax.css @@ -0,0 +1 @@ +.syntect-code{color:#383a42;background-color:#fafafa}.syntect-comment{color:#a0a1a7}.syntect-variable.syntect-parameter.syntect-function{color:#383a42}.syntect-keyword{color:#a626a4}.syntect-variable{color:#e45649}.syntect-entity.syntect-name.syntect-function,.syntect-meta.syntect-require,.syntect-support.syntect-function.syntect-any-method{color:#0184bc}.syntect-entity.syntect-name.syntect-class,.syntect-entity.syntect-name.syntect-type.syntect-class,.syntect-support.syntect-class{color:#c18401}.syntect-meta.syntect-class{color:#c18401}.syntect-keyword.syntect-other.syntect-special-method{color:#0184bc}.syntect-storage{color:#a626a4}.syntect-support.syntect-function{color:#0184bc}.syntect-string{color:#50a14f}.syntect-constant.syntect-numeric{color:#c18401}.syntect-none{color:#c18401}.syntect-none{color:#c18401}.syntect-constant{color:#c18401}.syntect-entity.syntect-name.syntect-tag{color:#e45649}.syntect-entity.syntect-other.syntect-attribute-name{color:#c18401}.syntect-entity.syntect-other.syntect-attribute-name.syntect-id,.syntect-punctuation.syntect-definition.syntect-entity{color:#c18401}.syntect-meta.syntect-selector{color:#a626a4}.syntect-entity.syntect-name.syntect-section,.syntect-markup.syntect-heading .syntect-punctuation.syntect-definition.syntect-heading{color:#0184bc}.syntect-markup.syntect-bold,.syntect-punctuation.syntect-definition.syntect-bold{color:#a626a4}.syntect-markup.syntect-italic,.syntect-punctuation.syntect-definition.syntect-italic{color:#a626a4}.syntect-markup.syntect-raw.syntect-inline{color:#50a14f}.syntect-meta.syntect-link{color:#50a14f}.syntect-markup.syntect-quote{color:#50a14f}.syntect-source.syntect-java .syntect-meta.syntect-class.syntect-java .syntect-meta.syntect-method.syntect-java{color:#383a42}.syntect-source.syntect-java .syntect-meta.syntect-class.syntect-java .syntect-meta.syntect-class.syntect-body.syntect-java{color:#383a42}.syntect-source.syntect-js .syntect-meta.syntect-function.syntect-js .syntect-variable.syntect-parameter.syntect-function.syntect-js{color:#e45649}.syntect-source.syntect-js .syntect-variable.syntect-other.syntect-readwrite.syntect-js{color:#e45649}.syntect-source.syntect-js .syntect-variable.syntect-other.syntect-object.syntect-js{color:#383a42}.syntect-source.syntect-js .syntect-meta.syntect-function-call.syntect-method.syntect-js .syntect-variable.syntect-other.syntect-readwrite.syntect-js{color:#e45649}.syntect-source.syntect-js .syntect-meta.syntect-block.syntect-js .syntect-variable.syntect-other.syntect-readwrite.syntect-js{color:#e45649}.syntect-source.syntect-js .syntect-meta.syntect-block.syntect-js .syntect-variable.syntect-other.syntect-object.syntect-js{color:#383a42}.syntect-source.syntect-js .syntect-meta.syntect-block.syntect-js .syntect-meta.syntect-function-call.syntect-method.syntect-js .syntect-variable.syntect-other.syntect-readwrite.syntect-js{color:#383a42}.syntect-source.syntect-js .syntect-meta.syntect-function-call.syntect-method.syntect-js .syntect-variable.syntect-function.syntect-js{color:#383a42}.syntect-source.syntect-js .syntect-meta.syntect-property.syntect-object.syntect-js .syntect-entity.syntect-name.syntect-function.syntect-js{color:#0184bc}.syntect-source.syntect-js .syntect-support.syntect-constant.syntect-prototype.syntect-js{color:#383a42}.syntect-markup.syntect-inserted{color:#98c379}.syntect-markup.syntect-deleted{color:#e06c75}.syntect-markup.syntect-changed{color:#e5c07b}.syntect-string.syntect-regexp{color:#50a14f}.syntect-constant.syntect-character.syntect-escape{color:#0997b3}.syntect-invalid.syntect-illegal{color:#fafafa;background-color:#e06c75}.syntect-invalid.syntect-broken{color:#fafafa;background-color:#e5c07b}.syntect-invalid.syntect-deprecated{color:#fafafa;background-color:#e5c07b}.syntect-invalid.syntect-unimplemented{color:#fafafa;background-color:#c678dd}@media (prefers-color-scheme:dark){.syntect-code{color:#dcdfe4;background-color:#282c34}.syntect-comment{color:#5c6370}.syntect-variable.syntect-parameter.syntect-function{color:#dcdfe4}.syntect-keyword{color:#c678dd}.syntect-variable{color:#e06c75}.syntect-entity.syntect-name.syntect-function,.syntect-meta.syntect-require,.syntect-support.syntect-function.syntect-any-method{color:#61afef}.syntect-entity.syntect-name.syntect-class,.syntect-entity.syntect-name.syntect-type.syntect-class,.syntect-support.syntect-class{color:#e5c07b}.syntect-meta.syntect-class{color:#e5c07b}.syntect-keyword.syntect-other.syntect-special-method{color:#61afef}.syntect-storage{color:#c678dd}.syntect-support.syntect-function{color:#61afef}.syntect-string{color:#98c379}.syntect-constant.syntect-numeric{color:#e5c07b}.syntect-none{color:#e5c07b}.syntect-none{color:#e5c07b}.syntect-constant{color:#e5c07b}.syntect-entity.syntect-name.syntect-tag{color:#e06c75}.syntect-entity.syntect-other.syntect-attribute-name{color:#e5c07b}.syntect-entity.syntect-other.syntect-attribute-name.syntect-id,.syntect-punctuation.syntect-definition.syntect-entity{color:#e5c07b}.syntect-meta.syntect-selector{color:#c678dd}.syntect-entity.syntect-name.syntect-section,.syntect-markup.syntect-heading .syntect-punctuation.syntect-definition.syntect-heading{color:#61afef}.syntect-markup.syntect-bold,.syntect-punctuation.syntect-definition.syntect-bold{color:#c678dd}.syntect-markup.syntect-italic,.syntect-punctuation.syntect-definition.syntect-italic{color:#c678dd}.syntect-markup.syntect-raw.syntect-inline{color:#98c379}.syntect-meta.syntect-link{color:#98c379}.syntect-markup.syntect-quote{color:#98c379}.syntect-source.syntect-java .syntect-meta.syntect-class.syntect-java .syntect-meta.syntect-method.syntect-java{color:#dcdfe4}.syntect-source.syntect-java .syntect-meta.syntect-class.syntect-java .syntect-meta.syntect-class.syntect-body.syntect-java{color:#dcdfe4}.syntect-source.syntect-js .syntect-meta.syntect-function.syntect-js .syntect-variable.syntect-parameter.syntect-function.syntect-js{color:#e06c75}.syntect-source.syntect-js .syntect-variable.syntect-other.syntect-readwrite.syntect-js{color:#e06c75}.syntect-source.syntect-js .syntect-variable.syntect-other.syntect-object.syntect-js{color:#dcdfe4}.syntect-source.syntect-js .syntect-meta.syntect-function-call.syntect-method.syntect-js .syntect-variable.syntect-other.syntect-readwrite.syntect-js{color:#e06c75}.syntect-source.syntect-js .syntect-meta.syntect-block.syntect-js .syntect-variable.syntect-other.syntect-readwrite.syntect-js{color:#e06c75}.syntect-source.syntect-js .syntect-meta.syntect-block.syntect-js .syntect-variable.syntect-other.syntect-object.syntect-js{color:#dcdfe4}.syntect-source.syntect-js .syntect-meta.syntect-block.syntect-js .syntect-meta.syntect-function-call.syntect-method.syntect-js .syntect-variable.syntect-other.syntect-readwrite.syntect-js{color:#dcdfe4}.syntect-source.syntect-js .syntect-meta.syntect-function-call.syntect-method.syntect-js .syntect-variable.syntect-function.syntect-js{color:#dcdfe4}.syntect-source.syntect-js .syntect-meta.syntect-property.syntect-object.syntect-js .syntect-entity.syntect-name.syntect-function.syntect-js{color:#61afef}.syntect-source.syntect-js .syntect-support.syntect-constant.syntect-prototype.syntect-js{color:#dcdfe4}.syntect-markup.syntect-inserted{color:#98c379}.syntect-markup.syntect-deleted{color:#e06c75}.syntect-markup.syntect-changed{color:#e5c07b}.syntect-string.syntect-regexp{color:#98c379}.syntect-constant.syntect-character.syntect-escape{color:#56b6c2}.syntect-invalid.syntect-illegal{color:#dcdfe4;background-color:#e06c75}.syntect-invalid.syntect-broken{color:#dcdfe4;background-color:#e5c07b}.syntect-invalid.syntect-deprecated{color:#dcdfe4;background-color:#e5c07b}.syntect-invalid.syntect-unimplemented{color:#dcdfe4;background-color:#c678dd}} \ No newline at end of file diff --git a/static/languages/rust/coverage/tarpaulin-report.html b/static/languages/rust/coverage/tarpaulin-report.html new file mode 100644 index 0000000..2fb975b --- /dev/null +++ b/static/languages/rust/coverage/tarpaulin-report.html @@ -0,0 +1,794 @@ + + + + + + + +
+ + + + + + \ No newline at end of file From efe0e4440ff1def003242483f838963580b6f869 Mon Sep 17 00:00:00 2001 From: GrosQuildu Date: Fri, 8 May 2026 14:35:46 +0200 Subject: [PATCH 3/3] fix minor bugs --- .../languages/rust/10-security-overview.md | 4 +-- .../rust/20-dynamic-analysis/index.md | 31 ++++++++++--------- 2 files changed, 19 insertions(+), 16 deletions(-) diff --git a/content/docs/languages/rust/10-security-overview.md b/content/docs/languages/rust/10-security-overview.md index 3ada5f2..e219690 100644 --- a/content/docs/languages/rust/10-security-overview.md +++ b/content/docs/languages/rust/10-security-overview.md @@ -41,7 +41,7 @@ flowchart LR style H fill:#ad182b,color:#fff,stroke:#ad182b {{< /mermaid >}} -Security testing would need to ensure that any `unsafe` code is [*sound*](https://docs.rs/dtolnay/0.0.7/dtolnay/macro._03__soundness_bugs.html#soundness). In a basic audit, one would check a weaker property: that the implemented uses of `unsafe` code do not produce undefined behavior. But advanced testing would ensure soundness: that any uses of `unsafe` code do not produce UB. In fact, unsound code is quite a common source of vulnerabilities: code that worked correctly for a long time until a specific input triggered the bug. +Security testing would need to ensure that any `unsafe` code is [*sound*](https://docs.rs/dtolnay/0.0.7/dtolnay/macro._03__soundness_bugs.html#soundness). In a basic audit, one would check a weaker property: that the actually implemented uses of `unsafe` code do not produce undefined behavior. But advanced testing would ensure soundness: no possible safe caller can use the `unsafe` code to produce UB. In fact, unsound code is quite a common source of vulnerabilities: code that worked correctly for a long time until a specific input triggered the bug. Note that detecting unsafe code in Rust is easy, which greatly reduces the security testing effort. On the other hand, some unsafe code may be “hidden” in (transitive) dependencies, which is worth keeping in mind during audits. @@ -80,7 +80,7 @@ Dealing with numbers is safe in Rust, but some operations may produce unexpected * [Imprecision of float operations](https://seclists.org/oss-sec/2023/q2/99) * [Rounding errors](https://github.com/crytic/roundme) -There are [three types of integer overflows](https://phrack.org/issues/60/10.html#article): arithmetic, widthness, and signedness. +There are [three types of integer bugs](https://phrack.org/issues/60/10.html#article): arithmetic overflows, widthness overflows, and signedness related. Rust can handle arithmetic overflows in a few ways: [wrap over](https://doc.rust-lang.org/std/intrinsics/fn.wrapping_add.html), [wrap with information](https://doc.rust-lang.org/std/intrinsics/fn.add_with_overflow.html), [check](https://doc.rust-lang.org/std/primitive.i32.html#method.checked_add), [saturate](https://doc.rust-lang.org/std/intrinsics/fn.saturating_add.html), [produce undefined behavior](https://doc.rust-lang.org/std/intrinsics/fn.unchecked_add.html), and panic. diff --git a/content/docs/languages/rust/20-dynamic-analysis/index.md b/content/docs/languages/rust/20-dynamic-analysis/index.md index 4957593..2300c7b 100644 --- a/content/docs/languages/rust/20-dynamic-analysis/index.md +++ b/content/docs/languages/rust/20-dynamic-analysis/index.md @@ -96,9 +96,9 @@ For this task, use [`cargo hack`](https://github.com/taiki-e/cargo-hack). Start {{< tabs "cargo hack" >}} {{< tab "Shell" >}} ```sh -cargo +stable install cargo-hack --locked -cargo hack test -Z avoid-dev-deps --each-feature -cargo hack test -Z avoid-dev-deps --feature-powerset --depth 2 +cargo +nightly install cargo-hack --locked +cargo hack test --no-dev-deps --each-feature +cargo hack test --no-dev-deps --feature-powerset --depth 2 ``` {{< /tab>}} {{< tab "CI" >}} @@ -106,7 +106,7 @@ cargo hack test -Z avoid-dev-deps --feature-powerset --depth 2 - uses: taiki-e/install-action@6da51af62171044932d435033daa70a0eb3383ba with: tool: cargo-hack -- run: cargo hack test -Z avoid-dev-deps --feature-powerset --depth 2 --workspace +- run: cargo hack test --feature-powerset --depth 2 --workspace ``` {{< /tab>}} {{< /tabs >}} @@ -128,7 +128,7 @@ cargo hack test --feature-powerset --depth 2 ``` ```toml -# cargo.toml +# Cargo.toml [features] fone = [] ftwo = [] @@ -257,18 +257,20 @@ At this time, nightly toolchains must be used for sanitizers. If you use the sta {{< tab "Cargo test" >}} ```sh for sanitizer in "address" "leak" "memory" "thread"; do - echo "Testing with $sanitizer"; - RUSTFLAGS="-Z sanitizer=$sanitizer" RUSTDOCFLAGS="$RUSTFLAGS" \ - cargo test --target x86_64-unknown-linux-gnu; + echo "Testing with $sanitizer" + export RUSTFLAGS="-Z sanitizer=$sanitizer" + export RUSTDOCFLAGS="$RUSTFLAGS" + cargo test --target x86_64-unknown-linux-gnu done ``` {{< /tab>}} {{< tab "Cargo nextest" >}} ```sh for sanitizer in "address" "leak" "memory" "thread"; do - echo "Testing with $sanitizer"; - RUSTFLAGS="-Z sanitizer=$sanitizer" RUSTDOCFLAGS="$RUSTFLAGS" \ - cargo nextest run --target x86_64-unknown-linux-gnu; + echo "Testing with $sanitizer" + export RUSTFLAGS="-Z sanitizer=$sanitizer" + export RUSTDOCFLAGS="$RUSTFLAGS" + cargo nextest run --target x86_64-unknown-linux-gnu done ``` {{< /tab>}} @@ -302,7 +304,7 @@ A few tips: The test below passes, but there is actually a bug. AddressSanitizer can help us find it. ```sh -RUSTFLAGS='-Z sanitizer=address' cargo -Zbuild-std test +RUSTFLAGS='-Z sanitizer=address' cargo -Zbuild-std --target x86_64-unknown-linux-gnu test ``` ```rust @@ -338,7 +340,8 @@ To use Miri, you must point it at some executable code (it performs dynamic anal {{< tabs "miri tests" >}} {{< tab "Miri with cargo test" >}} ```sh -rustup +nightly component add miri cargo miri test +rustup +nightly component add miri +cargo miri test ``` {{< /tab>}} {{< tab "Miri with nextest" >}} @@ -752,7 +755,7 @@ A unique approach to finding bugs in tests is to mutate them and check if they p To automate the process of mutation and validation, [use Necessist](https://github.com/trailofbits/necessist). ```sh -cargo install necessist necessist +cargo install necessist ``` Necessist works by iterating over the statements in each test, removing them one at a time, and checking whether the test still passes. A mutated test that passes with an instruction removed is shown as the following:

uVsNFzzpagx!rd3)A+2DA5uh8 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 YsIipXGd^#$(%wf2tkm5; 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