diff --git a/CLAUDE.md b/CLAUDE.md index bcbab3ec..39600cc9 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -11,6 +11,30 @@ Experimental package — breaking all the time and loving the learning curve. St **Prefix:** `lnk_` **Branch:** `main` (v0.49.0 as of 2026-09-01) +## Status (2026-09-26, late) — observation validation (#283) + +**`lnk_habitat_validate()` scores a run against fish, not against bcfishpass.** +Capture on accessible / spawning / rearing, cost in km, miss reasons from the +bundle's own predicates with gradient and width relaxed, and FISS absences. +Driver: `data-raw/habitat_validate.R --bundles=:,...`. Method, +baseline and the step-5 command: `research/habitat_validation.md`. + +**Facts not worth re-deriving:** +- **fresh#218 is a join artifact, not duplication.** Every persist table is unique + on `(id_segment, watershed_group_code)`; a bare `id_segment` join fans out 22x + (#203). Join on the full key and the persist schemas are fine. +- **`default`'s `pipeline.schema` is `fresh`, which the bcfishpass bundle writes.** + So `schema` is required, and the function stops if `.log` records a WSG + under another config. `fresh_default` was built by overriding the schema. +- **CH spawn-staged capture is the overlay.** 237 of 245 locations sit in + `user_habitat_classification` spawning reaches that `default` forces. Read + `share_*_outside_uhc`. +- **BT rearing 0.1349 scores in-sample** (it is the P95 of the same locations); + hold records out via the `observations` argument. +- A FISS site that caught fish but listed no species is **not** an absence. That was + 63 % of BT absences in the first draft. `toupper(NULL)` is `character(0)`, which + made an absent `--wsgs` select zero WSGs, and only running the driver found it. + ## Status (2026-09-25) — per-bundle habitat thresholds (#282); #284 parked **Thresholds now live in the bundle.** Every bundle declares diff --git a/NAMESPACE b/NAMESPACE index 37a19407..23ff364f 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -21,6 +21,7 @@ export(lnk_config) export(lnk_config_verify) export(lnk_db_conn) export(lnk_fanout_judge) +export(lnk_habitat_validate) export(lnk_inputs_verify) export(lnk_load) export(lnk_load_overrides) diff --git a/R/lnk_habitat_validate.R b/R/lnk_habitat_validate.R new file mode 100644 index 00000000..f91a3ab9 --- /dev/null +++ b/R/lnk_habitat_validate.R @@ -0,0 +1,969 @@ +#' Validate modelled habitat against fish observations +#' +#' Scores a persisted run against fish observations rather than against +#' another model. For each watershed group and species it reports how many +#' observations land on modelled accessible, spawning and rearing segments +#' (**capture**), how much habitat the run models to achieve that (**cost**, +#' so capture cannot be bought by calling everything habitat), and, for each +#' observation outside modelled habitat, what excluded its segment +#' (**misses** — the direct evidence for which threshold is binding). Sites +#' sampled with the species not caught can be supplied as **absences**, a +#' false-positive check. +#' +#' Runs over two persist schemas (two config bundles) stack row-wise, so +#' bundles can be diffed on the same observations. +#' +#' @section Which observations count: +#' `observations` is any source of fish records located on the FWA network: +#' `bcfishobs.observations` by default, or another table, or a data frame of +#' your own. From it, keeping: +#' - records not flagged `data_error` or `release_exclude` in +#' `loaded$observation_exclusions` (matched on `observation_key`), and not +#' from a `source` starting with any of `source_exclude` (by default the +#' `Releases Database`: stocked fish are not evidence of habitat use); +#' - observation species admitted for the model species by `species_obs`, +#' and only in WSGs where `loaded$wsg_species_presence` marks the model +#' species present (so DV records count as BT only where BT is present); +#' - `match_type` classes in `match_types` (default A/B, bcfishobs's matches +#' to a stream within 100 m; C, 100-500 m from a stream, and the D/E +#' waterbody matches are left out); +#' - one per species x `blue_line_key` x metre (repeat visits are one +#' location; a location is spawn- or rear-staged if any record there is). +#' +#' Stage comes from `is_spawn` / `is_rear` where the source carries them, +#' and otherwise from bcfishobs's `activity_code`, `activity` and +#' `life_stage` wording; a record with neither counts in the `any` stage only. +#' +#' A filter whose column the source does not have is an error, not a silent +#' pass: set `match_types = NULL` or `source_exclude = NULL` for a source +#' without `match_type` or `source`. Pass a subset to score held-out records +#' (by project, date or WSG). +#' +#' @section Which segment an observation is on: +#' The pipeline breaks streams at observations, so most points sit on a +#' segment boundary. The segment **starting** within 1 m of the point (the +#' upstream one) is used, else the one containing it. A location with no +#' segment is counted in `n_unattached` and nowhere else. All joins between +#' `streams`, `streams_access` and `streams_habitat_` are on the full key +#' `(id_segment, watershed_group_code)`: `id_segment` repeats across groups. +#' +#' `buffer_m > 0` also counts an observation as captured when modelled +#' habitat starts within `buffer_m` metres **upstream** along the same +#' `blue_line_key` and WSG, because observation points often mark the +#' downstream end of a sampled site. It follows the mainstem only (never a +#' tributary), stops at the WSG boundary, and is measured along the stream, +#' so it does not depend on segmentation. Accessibility is always the point's +#' own segment. Near lakes the buffer reaches connector flow lines, which +#' are rearing without any threshold test, so buffered rearing capture there +#' says nothing about thresholds. +#' +#' @section Reading the numbers: +#' - **Accessible** is `streams_access.access_ IN (1, 2)`, the definition +#' [lnk_rollup_wsg()]'s `accessible_km` uses, so capture and cost agree. +#' The spawning and rearing flags are gated by the pipeline's own +#' `streams_habitat.accessible`, which differs slightly, so +#' `share_spawning` is not strictly a subset of `share_accessible`. +#' - **Accessible capture is partly circular.** Observations are pipeline +#' inputs: they lift barriers (`observation_threshold` in +#' `parameters_fresh.csv`), they are break points, and where +#' `apply_habitat_overlay` is on, `user_habitat_classification` forces +#' habitat. Spawning and rearing capture is the score. +#' `n_in_uhc_spawn` / `n_in_uhc_rear` count locations inside a +#' `user_habitat_classification` reach confirming that habitat type for the +#' species (indicator 1) anywhere in the window capture reads (the +#' point's segment up to `buffer_m` upstream); with `overlay_applied` TRUE the +#' segments wholly +#' inside such a reach are forced to habitat, so most of those locations are +#' captured by construction. `share_spawning_outside_uhc` and +#' `share_rearing_any_outside_uhc` repeat the capture without them, which is +#' the part of the score the observations did not decide. +#' - **Thresholds set from these observations score in-sample.** A cutoff +#' calibrated on the same records (e.g. a use quantile) is partly +#' guaranteed its capture; hold records out to score it fairly. +#' - `rearing` is stream rearing, the flag thresholds govern and that +#' `rearing_km` costs. `rearing_any` adds lake and wetland rearing. +#' - Known biases, reported rather than corrected: observation points often +#' sit at the downstream end of a site (see `buffer_m`); sampling clusters +#' near road access; and fish are only observed where they have access, so +#' observed gradients are cut off at the access limit. +#' +#' @section Miss reasons: +#' `miss_reason_spawn` keys on `spawning` and `miss_reason_rear` on +#' `rearing_any`, so a location on lake or wetland rearing is captured for +#' the rear reason (compare them with `n_rearing_any`, not `n_rearing`). +#' Both re-evaluate the bundle's own +#' habitat predicates ([fresh::frs_habitat_predicates()] over `cfg$rules` +#' and its thresholds CSV, channel-width model) on the segment, then again +#' with the gradient and the channel width each moved to the stage's +#' minimum: +#' - `NA` — captured; `no_segment` — the location attaches to no segment; +#' - `not_accessible` — the segment's `access_` is not 1 or 2; +#' - `fails_gradient` / `fails_width` / `width_null` — passes once that one +#' value is relaxed (`width_null` when the width is NULL); +#' `gradient_below_min` when the gradient fails by sitting below the +#' window (a negative gradient), not above it; +#' - `fails_gradient_or_width` — either relaxation alone passes (through +#' different branches of the rule); +#' - `fails_gradient_and_width` — passes only with both relaxed; +#' - `rule_excludes` — fails even then: edge type, waterbody or lake size; +#' - `post_predicate` — passes the predicate but is not habitat: removed by +#' clustering (connectivity to spawning) or access gating. +#' +#' @param conn A [DBI::DBIConnection-class] object (from [lnk_db_conn()]). +#' @param aoi Character vector of watershed group codes. Each must be +#' persisted in `schema`, with `streams_access` built (fails loud +#' otherwise). +#' @param cfg An `lnk_config` object from [lnk_config()]: the bundle that +#' produced `schema`. Supplies the rules and thresholds for the miss +#' reasons. Where `.log` records a WSG's run, its `config_name` +#' must be `cfg$name`. +#' @param loaded Named list from [lnk_load_overrides()]. Uses +#' `observation_exclusions`, `wsg_species_presence`, `parameters_fresh` +#' and (when present) `user_habitat_classification`. +#' @param species Character vector of model species codes (e.g. +#' `c("CH", "BT")`). Each must name `.streams_habitat_` and +#' `.streams_access.access_`. +#' @param schema Persist schema to score. Required: a bundle's +#' `pipeline.schema` is not a reliable guide to which schema it built +#' (`default` declares `fresh`, which the `bcfishpass` bundle writes). +#' @param observations Fish records: a schema-qualified table name (default +#' `"bcfishobs.observations"`) or a data frame. Required columns: +#' `species_code`, `watershed_group_code`, `blue_line_key`, +#' `downstream_route_measure`, and for a table `observation_key`. A data +#' frame without `observation_key` gets its own row numbers as keys, and +#' then `loaded$observation_exclusions` must be `NULL` (the exclusions are +#' matched on that key). Species and WSG codes are compared upper-cased +#' and trimmed. Optional: `match_type`, `source`, `is_spawn`, `is_rear` +#' (logical, 0/1 or t/true/yes), `activity_code`, `activity`, +#' `life_stage`. +#' @param species_obs Named list mapping a model species to the observation +#' species codes that count as it. Species not named map to themselves. +#' Default pools DV records with BT (`list(BT = c("BT", "DV"))`). +#' @param match_types Character vector of `match_type` classes (first +#' letter) to keep, or `NULL` for no match-type filter. Default +#' `c("A", "B")`. +#' @param source_exclude Character vector of `source` prefixes to drop, or +#' `NULL` for none. Default `"Releases Database"`. +#' @param buffer_m Numeric scalar >= 0. Upstream distance within which +#' modelled habitat still captures an observation. Default 0. +#' @param absences Optional data frame of sites sampled with the species +#' not caught: `watershed_group_code`, `blue_line_key`, +#' `downstream_route_measure`, `species_code` (model species). The caller +#' locates them on the network. Rows for a species not present in the WSG +#' are dropped. Absences are captured the same way observations are, +#' `buffer_m` included, so the two rates stay comparable. A WSG x species +#' with no rows in `absences` reports `NA` (not assessed), so pass only +#' sites from the areas that were surveyed. Default `NULL`. +#' +#' @return A list of two data frames: +#' - `summary`: one row per `watershed_group_code` x `species_code` x +#' `stage` (`any`, `spawn`, `rear`), with `schema`, `config_name`, +#' `buffer_m`, `overlay_applied`, `run_logged` (whether `.log` +#' records the WSG), `n_obs` (locations on a segment), `n_unattached`, +#' `n_accessible`, `n_inaccessible`, `n_spawning`, `n_rearing`, +#' `n_rearing_any`, `n_habitat` (spawning or any rearing), the matching +#' `share_*` (of `n_obs`; `NA` when `n_obs` is 0), `n_in_uhc_spawn`, +#' `n_in_uhc_rear`, the `*_outside_uhc` counts and shares, and cost +#' `accessible_km`, `spawning_km`, `rearing_km` from [lnk_rollup_wsg()]. +#' With `absences`, also `n_absence`, `n_absence_accessible`, +#' `n_absence_spawning`, `n_absence_rearing` (stream) and +#' `n_absence_rearing_any` (the same on every stage). +#' - `observations`: one row per retained location, with its segment's +#' `gradient`, `channel_width`, `channel_width_source`, `edge_type`, +#' `stream_order`, `waterbody_type`, `access`, the capture flags, +#' `in_uhc_spawn`, `in_uhc_rear`, the predicate results, and the two miss +#' reasons. +#' +#' @examples +#' \dontrun{ +#' conn <- lnk_db_conn(dbname = "fwapg", host = "localhost", port = 5432L, +#' user = "postgres", password = "postgres") +#' cfg <- lnk_config("default") +#' loaded <- lnk_load_overrides(cfg) +#' +#' # How many CH and BT observations in Morice sit on modelled habitat in +#' # the `default` bundle's schema, and at what cost in km? +#' v <- lnk_habitat_validate(conn, aoi = "MORR", cfg = cfg, loaded = loaded, +#' species = c("CH", "BT"), +#' schema = "fresh_default") +#' v$summary[v$summary$stage == "rear", +#' c("species_code", "n_obs", "share_rearing_any", "rearing_km")] +#' +#' # What keeps the rearing misses out of habitat? +#' table(v$observations$miss_reason_rear, useNA = "ifany") +#' } +#' +#' @family compare +#' @seealso [lnk_rollup_wsg()], [lnk_compare_rollup()] +#' @export +# nolint start: indentation_linter +lnk_habitat_validate <- function(conn, aoi, cfg, loaded, species, schema, + observations = "bcfishobs.observations", + species_obs = list(BT = c("BT", "DV")), + match_types = c("A", "B"), + source_exclude = "Releases Database", + buffer_m = 0, + absences = NULL) { + stopifnot( + inherits(conn, "DBIConnection"), + inherits(cfg, "lnk_config"), + is.list(loaded), + is.character(aoi), length(aoi) >= 1L, !anyNA(aoi), + all(grepl("^[A-Z]{3,5}$", aoi)), + is.character(species), length(species) >= 1L, !anyNA(species), + # Interpolated into `streams_habitat_` / `access_`. + all(grepl("^[A-Za-z]+$", species)), + is.character(schema), length(schema) == 1L, !is.na(schema), + grepl("^[a-z_][a-z0-9_]*$", schema), + is.list(species_obs), + length(species_obs) == 0L || !is.null(names(species_obs)), + all(vapply(species_obs, is.character, logical(1))), + is.null(match_types) || + (is.character(match_types) && length(match_types) >= 1L && + all(grepl("^[A-Z]$", match_types))), + is.null(source_exclude) || + (is.character(source_exclude) && length(source_exclude) >= 1L && + !anyNA(source_exclude) && all(nzchar(source_exclude))), + is.data.frame(observations) || + (is.character(observations) && length(observations) == 1L), + is.numeric(buffer_m), length(buffer_m) == 1L, !is.na(buffer_m), + buffer_m >= 0, is.finite(buffer_m), + is.null(absences) || is.data.frame(absences) + ) + if (is.character(observations)) { + .lnk_validate_identifier(observations, "observations table") + } + for (nm in c("wsg_species_presence", "parameters_fresh")) { + if (is.null(loaded[[nm]])) { + stop("loaded$", nm, " is required", call. = FALSE) + } + } + aoi <- unique(aoi) + species <- unique(toupper(species)) + species_obs <- lapply(species_obs, toupper) + names(species_obs) <- toupper(names(species_obs)) + + .lnk_hv_check_schema(conn, schema, aoi, species) + logged <- .lnk_hv_check_log(conn, schema, aoi, cfg) + + spec <- .lnk_hv_spec(loaded$wsg_species_presence, aoi, species, + species_obs) + obs <- .lnk_hv_obs(conn, schema, observations, spec, loaded, species, + match_types, source_exclude, buffer_m) + obs <- .lnk_hv_dedup(obs) + obs <- .lnk_hv_predicates(conn, schema, obs, cfg, loaded, species) + obs <- .lnk_hv_reasons(obs) + + cost <- do.call(rbind, lapply(aoi, function(w) { + lnk_rollup_wsg(conn, aoi = w, species = species, schema = schema) + })) + names(cost)[names(cost) == "wsg"] <- "watershed_group_code" + names(cost)[names(cost) == "species"] <- "species_code" + + abs_sum <- NULL + if (!is.null(absences)) { + abs_sum <- .lnk_hv_absences(conn, schema, absences, spec, aoi, species, + buffer_m) + } + + summary <- .lnk_hv_summary(obs, cost, abs_sum, aoi, species) + summary$run_logged <- summary$watershed_group_code %in% logged + summary <- cbind( + data.frame( + schema = schema, config_name = cfg$name %||% NA_character_, + buffer_m = buffer_m, + overlay_applied = !is.null(loaded$user_habitat_classification) && + isTRUE(cfg$pipeline$apply_habitat_overlay %||% TRUE), + stringsAsFactors = FALSE), + summary) + rownames(obs) <- NULL + list(summary = summary, observations = obs) +} + + +# --------------------------------------------------------------------------- +# Internal helpers +# --------------------------------------------------------------------------- + +#' Fail loud on WSGs or species the schema cannot score. +#' @noRd +.lnk_hv_check_schema <- function(conn, schema, aoi, species) { + aoi_arr <- paste0("{", paste(aoi, collapse = ","), "}") + have <- DBI::dbGetQuery(conn, sprintf( + "SELECT 'streams' AS tbl, watershed_group_code + FROM (SELECT DISTINCT watershed_group_code FROM %1$s.streams + WHERE watershed_group_code = ANY($1)) s + UNION ALL + SELECT 'streams_access', watershed_group_code + FROM (SELECT DISTINCT watershed_group_code FROM %1$s.streams_access + WHERE watershed_group_code = ANY($1)) a", schema), + params = list(aoi_arr)) + miss_streams <- setdiff(aoi, have$watershed_group_code[have$tbl == "streams"]) + if (length(miss_streams) > 0L) { + stop("not persisted in ", schema, ".streams: ", + paste(miss_streams, collapse = ", "), call. = FALSE) + } + miss_access <- setdiff( + aoi, have$watershed_group_code[have$tbl == "streams_access"]) + if (length(miss_access) > 0L) { + stop("no ", schema, ".streams_access rows for: ", + paste(miss_access, collapse = ", "), + " (build access with lnk_pipeline_run(mapping_code = TRUE))", + call. = FALSE) + } + for (sp in species) { + tbl <- paste0("streams_habitat_", tolower(sp)) + if (!DBI::dbExistsTable(conn, DBI::Id(schema = schema, table = tbl))) { + stop(schema, ".", tbl, " does not exist", call. = FALSE) + } + } + invisible(NULL) +} + +#' WSGs whose latest logged run is recorded, after checking the config. +#' +#' A schema is scored with `cfg`'s rules, so a WSG logged as built by a +#' different config is an error. WSGs with no log row (built before the log +#' existed) are allowed and returned as unlogged. +#' @noRd +.lnk_hv_check_log <- function(conn, schema, aoi, cfg) { + if (!DBI::dbExistsTable(conn, DBI::Id(schema = schema, table = "log"))) { + return(character(0)) + } + lg <- DBI::dbGetQuery(conn, sprintf( + "SELECT DISTINCT ON (watershed_group_code) + watershed_group_code, config_name + FROM %s.log + WHERE watershed_group_code = ANY($1) + ORDER BY watershed_group_code, date_start DESC", schema), + params = list(paste0("{", paste(aoi, collapse = ","), "}"))) + bad <- lg[!is.na(lg$config_name) & lg$config_name != cfg$name, , + drop = FALSE] + if (nrow(bad) > 0L) { + stop(schema, ".log records these WSGs as built by another config than '", + cfg$name, "': ", + paste(sprintf("%s (%s)", bad$watershed_group_code, bad$config_name), + collapse = ", "), + call. = FALSE) + } + lg$watershed_group_code +} + +#' Admitted (WSG, model species, observation species) triples. +#' +#' An observation species counts for a model species only in WSGs where +#' the model species is present. +#' @noRd +.lnk_hv_spec <- function(presence, aoi, species, species_obs) { + rows <- lapply(aoi, function(w) { + row <- presence[presence$watershed_group_code == w, , drop = FALSE] + if (nrow(row) == 0L) return(NULL) + present <- intersect(species, .lnk_wsg_species_present(row[1, ])) + if (length(present) == 0L) return(NULL) + do.call(rbind, lapply(present, function(sp) { + data.frame(watershed_group_code = w, species_code = sp, + obs_species = unique(species_obs[[sp]] %||% sp), + stringsAsFactors = FALSE) + })) + }) + out <- do.call(rbind, rows) + if (is.null(out)) { + out <- data.frame(watershed_group_code = character(0), + species_code = character(0), + obs_species = character(0), stringsAsFactors = FALSE) + } + out +} + +#' Spawn / rear stage from bcfishobs activity and life stage. +#' +#' Spawning from activity; rearing from activity or a juvenile life stage. +#' Adult, holding, migrating and plain "observed" records carry no stage. +#' @noRd +.lnk_obs_stage <- function(activity_code, activity, life_stage) { + act <- paste(activity_code, activity) + list( + is_spawn = grepl("\\bSPL\\b|\\bSPM\\b|\\bS\\b|Spawning", act), + is_rear = grepl("\\bR\\b|\\bREA\\b|Rearing", act) | + grepl("Fry|Parr|Juvenile", life_stage) + ) +} + +#' SQL for "this flag, or the flag on habitat starting within the buffer". +#' @noRd +.lnk_hv_buffered <- function(schema, sp, flag_sql, buf) { + sprintf( + "(coalesce(%3$s, false) OR EXISTS ( + SELECT 1 FROM %1$s.streams s2 + JOIN %1$s.streams_habitat_%2$s h + ON h.id_segment = s2.id_segment + AND h.watershed_group_code = s2.watershed_group_code + WHERE s2.blue_line_key = a.blue_line_key + AND s2.watershed_group_code = a.watershed_group_code + AND s2.downstream_route_measure >= a.seg_drm + AND s2.downstream_route_measure < a.m + %4$s + AND (%3$s)))", + schema, sp, flag_sql, buf) +} + +#' Drop a session temp table if present (a bare DROP IF EXISTS NOTICEs). +#' @noRd +.lnk_hv_drop_temp <- function(conn, name) { + hit <- DBI::dbGetQuery(conn, "SELECT to_regclass($1) IS NOT NULL AS x", + params = list(paste0("pg_temp.", name)))$x + if (isTRUE(hit)) .lnk_db_execute(conn, paste0("DROP TABLE pg_temp.", name)) + invisible(NULL) +} + +#' Resolve the observation source to a table and the columns it carries. +#' +#' A data frame goes to a session temp table. Optional columns a source +#' lacks become typed NULLs, so one query serves every source. +#' @noRd +.lnk_hv_source <- function(conn, observations) { + cols_req <- c("species_code", "watershed_group_code", "blue_line_key", + "downstream_route_measure") + cols_opt <- c("observation_key", "match_type", "source", "is_spawn", + "is_rear", "activity_code", "activity", "life_stage") + key_generated <- FALSE + if (is.data.frame(observations)) { + d <- as.data.frame(observations) + miss <- setdiff(cols_req, names(d)) + if (length(miss) > 0L) { + stop("observations is missing columns: ", paste(miss, collapse = ", "), + call. = FALSE) + } + d <- d[, intersect(c(cols_req, cols_opt), names(d)), drop = FALSE] + if (!"observation_key" %in% names(d)) { + # The caller's own row numbers, so results join back to their rows. + d$observation_key <- as.character(seq_len(nrow(d))) + key_generated <- TRUE + } + DBI::dbWriteTable(conn, "lnk_vd_src", d, temporary = TRUE, + overwrite = TRUE) + src <- "pg_temp.lnk_vd_src" + } else { + src <- observations + } + cols <- names(DBI::dbGetQuery(conn, sprintf("SELECT * FROM %s LIMIT 0", + src))) + miss <- setdiff(c(cols_req, "observation_key"), cols) + if (length(miss) > 0L) { + stop(src, " is missing columns: ", paste(miss, collapse = ", "), + call. = FALSE) + } + list(src = src, cols = intersect(c(cols_req, cols_opt), cols), + key_generated = key_generated) +} + +#' Filter observations, attach each to its segment, and flag capture. +#' @noRd +.lnk_hv_obs <- function(conn, schema, observations, spec, loaded, species, + match_types, source_exclude, buffer_m) { + s <- .lnk_hv_source(conn, observations) + has <- function(cl) cl %in% s$cols + opt <- function(cl, type) { + if (has(cl)) sprintf("o.%s::%s", cl, type) else sprintf("NULL::%s", type) + } + # A stage flag may arrive as logical, 0/1 (readr's reading of a 0/1 + # column), or t/true/yes text; none of those casts to boolean alike. + opt_flag <- function(cl) { + if (!has(cl)) return("NULL::boolean") + sprintf(paste("CASE WHEN o.%1$s IS NULL THEN NULL", + "ELSE lower(trim(o.%1$s::text)) IN", + "('t', 'true', '1', '1.0', 'y', 'yes') END"), cl) + } + if (!is.null(match_types) && !has("match_type")) { + stop(s$src, " has no match_type column; pass match_types = NULL", + call. = FALSE) + } + if (!is.null(source_exclude) && !has("source")) { + stop(s$src, " has no source column; pass source_exclude = NULL", + call. = FALSE) + } + excl <- loaded$observation_exclusions + keys <- character(0) + if (!is.null(excl) && nrow(excl) > 0L) { + keys <- excl$observation_key[excl$data_error %in% c(TRUE, "t") | + excl$release_exclude %in% c(TRUE, "t")] + } + if (s$key_generated && length(keys) > 0L) { + stop("observations has no observation_key, so ", + "loaded$observation_exclusions cannot be applied; add the key, or ", + "set loaded$observation_exclusions <- NULL for a source it does ", + "not describe", call. = FALSE) + } + # Prefixes compared literally, so there are no LIKE wildcards to escape. + DBI::dbWriteTable(conn, "lnk_vd_srcx", + data.frame(prefix = as.character(source_exclude)), + temporary = TRUE, overwrite = TRUE) + where_match <- if (is.null(match_types)) "" else + "AND left(o.match_type::text, 1) = ANY($1)" + where_source <- if (is.null(source_exclude)) "" else + "AND NOT EXISTS (SELECT 1 FROM pg_temp.lnk_vd_srcx x + WHERE left(coalesce(o.source::text, ''), + length(x.prefix)) = x.prefix)" + DBI::dbWriteTable(conn, "lnk_vd_excl", + data.frame(observation_key = as.character(keys)), + temporary = TRUE, overwrite = TRUE) + DBI::dbWriteTable(conn, "lnk_vd_spec", spec, + temporary = TRUE, overwrite = TRUE) + uhc <- loaded$user_habitat_classification + uhc <- if (is.null(uhc) || nrow(uhc) == 0L) { + data.frame(species_code = character(0), blue_line_key = integer(0), + downstream_route_measure = numeric(0), + upstream_route_measure = numeric(0), + spawning = integer(0), rearing = integer(0)) + } else { + # Indicator 1 is confirmed habitat, the only value the overlay forces; + # -1 / -4 are confirmed non-habitat. + as.data.frame(uhc)[, c("species_code", "blue_line_key", + "downstream_route_measure", + "upstream_route_measure", "spawning", "rearing")] + } + DBI::dbWriteTable(conn, "lnk_vd_uhc", uhc, temporary = TRUE, + overwrite = TRUE) + + .lnk_hv_drop_temp(conn, "lnk_vd_obs") + DBI::dbExecute(conn, sprintf( + "CREATE TEMP TABLE lnk_vd_obs AS + SELECT o.* FROM ( + SELECT o.observation_key::text AS observation_key, sp.species_code, + upper(trim(o.species_code::text)) AS obs_species, + upper(trim(o.watershed_group_code::text)) + AS watershed_group_code, + o.blue_line_key::integer AS blue_line_key, + o.downstream_route_measure::double precision AS m, + left(%2$s, 1) AS match_class, + %3$s AS activity_code, %4$s AS activity, %5$s AS life_stage, + %6$s AS src_is_spawn, %7$s AS src_is_rear + FROM %1$s o + JOIN pg_temp.lnk_vd_spec sp + ON sp.watershed_group_code = upper(trim(o.watershed_group_code::text)) + AND sp.obs_species = upper(trim(o.species_code::text)) + WHERE TRUE %8$s %9$s) o + WHERE NOT EXISTS (SELECT 1 FROM pg_temp.lnk_vd_excl e + WHERE e.observation_key = o.observation_key)", + s$src, opt("match_type", "text"), opt("activity_code", "text"), + opt("activity", "text"), opt("life_stage", "text"), + opt_flag("is_spawn"), opt_flag("is_rear"), + where_match, where_source), + params = if (is.null(match_types)) NULL else + list(paste0("{", paste(match_types, collapse = ","), "}"))) + + # The segment the model tests: the one STARTING within 1 m (upstream), + # else the one containing the point. n_cand > 1 is the expected case of + # a point just below a break. + .lnk_hv_drop_temp(conn, "lnk_vd_att") + .lnk_db_execute(conn, sprintf( + "CREATE TEMP TABLE lnk_vd_att AS + SELECT o.*, s.id_segment, s.n_cand, s.seg_drm, s.gradient, + s.channel_width, s.channel_width_source, s.edge_type, + s.stream_order, s.waterbody_key + FROM pg_temp.lnk_vd_obs o + LEFT JOIN LATERAL ( + SELECT s.id_segment, s.downstream_route_measure AS seg_drm, + s.gradient, s.channel_width, s.channel_width_source, + s.edge_type, s.stream_order, s.waterbody_key, + count(*) OVER ()::int AS n_cand + FROM %s.streams s + WHERE s.blue_line_key = o.blue_line_key + AND s.watershed_group_code = o.watershed_group_code + AND (abs(s.downstream_route_measure - o.m) < 1 + OR (s.downstream_route_measure <= o.m + AND o.m < s.upstream_route_measure)) + ORDER BY (abs(s.downstream_route_measure - o.m) < 1) DESC, + s.downstream_route_measure DESC + LIMIT 1) s ON true", schema)) + + buf <- format(buffer_m, scientific = FALSE) + per_species <- paste(vapply(species, function(sp) { + spl <- tolower(sp) + sprintf( + "SELECT a.*, wb.waterbody_type, + x.access_%1$s AS access, + coalesce(x.access_%1$s IN (1, 2), false) AS accessible, + %3$s AS spawning, + %4$s AS rearing, + %5$s AS rearing_any, + EXISTS ( + SELECT 1 FROM pg_temp.lnk_vd_uhc u + WHERE u.species_code = a.species_code + AND u.blue_line_key = a.blue_line_key + AND u.spawning = 1 + AND u.upstream_route_measure >= least(a.m, a.seg_drm) + AND u.downstream_route_measure + <= greatest(a.m, a.seg_drm) + %7$s) AS in_uhc_spawn, + EXISTS ( + SELECT 1 FROM pg_temp.lnk_vd_uhc u + WHERE u.species_code = a.species_code + AND u.blue_line_key = a.blue_line_key + AND u.rearing = 1 + AND u.upstream_route_measure >= least(a.m, a.seg_drm) + AND u.downstream_route_measure + <= greatest(a.m, a.seg_drm) + %7$s) AS in_uhc_rear + FROM pg_temp.lnk_vd_att a + LEFT JOIN %2$s.streams_access x + ON x.id_segment = a.id_segment + AND x.watershed_group_code = a.watershed_group_code + LEFT JOIN %2$s.streams_habitat_%1$s h + ON h.id_segment = a.id_segment + AND h.watershed_group_code = a.watershed_group_code + LEFT JOIN whse_basemapping.fwa_waterbodies wb + ON wb.waterbody_key = a.waterbody_key + WHERE a.species_code = %6$s", + spl, schema, + .lnk_hv_buffered(schema, spl, "h.spawning", buf), + .lnk_hv_buffered(schema, spl, "h.rearing", buf), + .lnk_hv_buffered(schema, spl, + "h.rearing OR h.lake_rearing OR h.wetland_rearing", + buf), + .lnk_quote_literal(sp), buf) + }, character(1)), collapse = "\n UNION ALL\n ") + + out <- DBI::dbGetQuery(conn, paste(per_species, + "ORDER BY species_code, observation_key")) + # A location with no segment has no habitat to test. + none <- is.na(out$id_segment) + out$accessible[none] <- NA + out$spawning[none] <- NA + out$rearing[none] <- NA + out$rearing_any[none] <- NA + out +} + +#' One row per species x blue_line_key x metre. +#' +#' Stage flags are OR-ed across the records at a location; the first +#' record (by observation_key) supplies everything else. +#' @noRd +.lnk_hv_dedup <- function(obs) { + # A source's own stage wins where it gives one; bcfishobs wording otherwise. + st <- .lnk_obs_stage(obs$activity_code, obs$activity, obs$life_stage) + own_spawn <- obs$src_is_spawn %||% rep(NA, nrow(obs)) + own_rear <- obs$src_is_rear %||% rep(NA, nrow(obs)) + obs$is_spawn <- ifelse(is.na(own_spawn), st$is_spawn, own_spawn) + obs$is_rear <- ifelse(is.na(own_rear), st$is_rear, own_rear) + obs$src_is_spawn <- NULL + obs$src_is_rear <- NULL + obs$n_records <- rep(1L, nrow(obs)) + if (nrow(obs) == 0L) return(obs) + loc <- paste(obs$species_code, obs$blue_line_key, round(obs$m)) + ord <- order(loc, obs$observation_key) + obs <- obs[ord, , drop = FALSE] + loc <- loc[ord] + any_spawn <- tapply(obs$is_spawn, loc, any) + any_rear <- tapply(obs$is_rear, loc, any) + n_rec <- tapply(obs$observation_key, loc, length) + sp_rec <- tapply(obs$obs_species, loc, + function(x) paste(sort(unique(x)), collapse = ";")) + keep <- !duplicated(loc) + out <- obs[keep, , drop = FALSE] + k <- loc[keep] + out$is_spawn <- unname(any_spawn[k]) + out$is_rear <- unname(any_rear[k]) + out$n_records <- as.integer(unname(n_rec[k])) + out$obs_species <- unname(sp_rec[k]) + out +} + +#' One species' predicate inputs, assembled as frs_habitat_classify() does. +#' @noRd +.lnk_hv_sp_params <- function(params, params_fresh, sp) { + ps <- params[[sp]] + fp <- params_fresh[params_fresh$species_code == sp, , drop = FALSE] + if (is.null(ps) || nrow(fp) == 0L) { + stop("no habitat parameters for species ", sp, " in the bundle", + call. = FALSE) + } + gmin <- fp$spawn_gradient_min[1] + list(species_code = sp, + spawn_gradient_max = ps$spawn_gradient_max, + spawn_gradient_min = if (is.null(gmin) || is.na(gmin)) 0 else gmin, + params_sp = ps) +} + +#' The stage minimums the predicates test against, from the same inputs. +#' +#' Spawning's gradient floor is `spawn_gradient_min` (parameters_fresh), +#' which fresh's spawn predicate uses directly; rearing's is the literal 0 +#' fresh writes into the rear predicate (`c(0, rear_g[2])`). Widths are the +#' `ranges$$channel_width` minimums both predicates inherit. No +#' bundled rules.yaml sets a rule-level gradient, and the rule-level +#' `channel_width: [0, 9999]` on river polygons contains every minimum. +#' @noRd +.lnk_hv_stage_min <- function(spp) { + rng <- spp$params_sp$ranges + list( + spawn = c(gradient = spp$spawn_gradient_min, + width = rng$spawn$channel_width[1] %||% 0), + rear = c(gradient = 0, + width = rng$rear$channel_width[1] %||% 0)) +} + +#' A predicate with s.gradient and/or s.channel_width fixed to a value. +#' @noRd +.lnk_hv_relax <- function(pred, gradient = NULL, width = NULL) { + if (!is.null(gradient)) { + pred <- gsub("\\bs\\.gradient\\b", + sprintf("(%s::double precision)", format(gradient, scientific = FALSE)), + pred, perl = TRUE) + } + if (!is.null(width)) { + pred <- gsub("\\bs\\.channel_width\\b", + sprintf("(%s::double precision)", format(width, scientific = FALSE)), + pred, perl = TRUE) + } + pred +} + +#' Evaluate the bundle's habitat predicates on each observation's segment. +#' +#' Adds pred_, pred__g (gradient relaxed), pred__w +#' (width relaxed) and pred__gw. The rear stage ORs stream, lake and +#' wetland rearing, as `rearing_any` does. +#' @noRd +.lnk_hv_predicates <- function(conn, schema, obs, cfg, loaded, species) { + cols <- paste0("pred_", rep(c("spawn", "rear"), each = 4L), + c("", "_g", "_w", "_gw")) + for (cl in cols) obs[[cl]] <- rep(NA, nrow(obs)) + obs$gradient_min_spawn <- rep(NA_real_, nrow(obs)) + obs$gradient_min_rear <- rep(NA_real_, nrow(obs)) + att <- obs[!is.na(obs$id_segment), , drop = FALSE] + if (nrow(att) == 0L) return(obs) + + params <- fresh::frs_params(csv = .lnk_habitat_thresholds_csv(cfg), + rules_yaml = cfg$rules) + seg <- unique(att[, c("species_code", "id_segment", + "watershed_group_code")]) + DBI::dbWriteTable(conn, "lnk_vd_seg", seg, temporary = TRUE, + overwrite = TRUE) + + for (sp in species) { + mins <- .lnk_hv_stage_min( + .lnk_hv_sp_params(params, loaded$parameters_fresh, sp)) + is_sp <- obs$species_code == sp + obs$gradient_min_spawn[is_sp] <- mins$spawn[["gradient"]] + obs$gradient_min_rear[is_sp] <- mins$rear[["gradient"]] + } + + res <- lapply(species, function(sp) { + if (!any(seg$species_code == sp)) return(NULL) + spp <- .lnk_hv_sp_params(params, loaded$parameters_fresh, sp) + # Channel-width model: the default, and the only one fresh@v0.33.0 (the + # pinned minimum) has; it takes no `model` argument. + pr <- fresh::frs_habitat_predicates(spp) + mins <- .lnk_hv_stage_min(spp) + stage_pred <- list( + spawn = pr$spawn, + rear = sprintf("(%s) OR (%s) OR (%s)", pr$rear, pr$lake_rear, + pr$wetland_rear)) + exprs <- unlist(lapply(c("spawn", "rear"), function(st) { + g <- mins[[st]][["gradient"]] + w <- mins[[st]][["width"]] + p <- stage_pred[[st]] + v <- c(p, + .lnk_hv_relax(p, gradient = g), + .lnk_hv_relax(p, width = w), + .lnk_hv_relax(p, gradient = g, width = w)) + sprintf("coalesce((%s), false) AS pred_%s%s", v, st, + c("", "_g", "_w", "_gw")) + })) + DBI::dbGetQuery(conn, sprintf( + "SELECT %s AS species_code, s.id_segment, s.watershed_group_code, + %s + FROM %s.streams s + JOIN pg_temp.lnk_vd_seg k + ON k.id_segment = s.id_segment + AND k.watershed_group_code = s.watershed_group_code + AND k.species_code = %s", + .lnk_quote_literal(sp), paste(exprs, collapse = ",\n "), + schema, .lnk_quote_literal(sp))) + }) + res <- do.call(rbind, res) + key_o <- paste(obs$species_code, obs$id_segment, obs$watershed_group_code) + key_r <- paste(res$species_code, res$id_segment, res$watershed_group_code) + i <- match(key_o, key_r) + hit <- !is.na(obs$id_segment) & !is.na(i) + for (cl in cols) obs[[cl]][hit] <- res[[cl]][i[hit]] + obs +} + +#' Miss reason for one stage from its capture flag and predicate results. +#' @noRd +.lnk_habitat_miss_reason <- function(captured, accessible, channel_width, + p, p_g, p_w, p_gw, + gradient = NA_real_, + gradient_min = NA_real_) { + below <- gradient < gradient_min + out <- rep(NA_character_, length(captured)) + out[is.na(captured)] <- "no_segment" + miss <- captured %in% FALSE + set <- function(cond, why) { + idx <- miss & is.na(out) & (cond %in% TRUE) + out[idx] <<- why + } + set(!accessible, "not_accessible") + set(p, "post_predicate") + set(p_g & !p_w & below, "gradient_below_min") + set(p_g & !p_w, "fails_gradient") + set(p_w & !p_g & is.na(channel_width), "width_null") + set(p_w & !p_g, "fails_width") + # Either relaxation alone passes (different OR-branches of the rule). + set(p_g & p_w, "fails_gradient_or_width") + set(p_gw, "fails_gradient_and_width") + set(rep(TRUE, length(out)), "rule_excludes") + out +} + +#' Add miss_reason_spawn / miss_reason_rear. +#' @noRd +.lnk_hv_reasons <- function(obs) { + obs$miss_reason_spawn <- .lnk_habitat_miss_reason( + obs$spawning, obs$accessible, obs$channel_width, obs$pred_spawn, + obs$pred_spawn_g, obs$pred_spawn_w, obs$pred_spawn_gw, + obs$gradient, obs$gradient_min_spawn) + obs$miss_reason_rear <- .lnk_habitat_miss_reason( + obs$rearing_any, obs$accessible, obs$channel_width, obs$pred_rear, + obs$pred_rear_g, obs$pred_rear_w, obs$pred_rear_gw, + obs$gradient, obs$gradient_min_rear) + obs +} + +#' Attach absence sites to their segment and count capture. +#' @noRd +.lnk_hv_absences <- function(conn, schema, absences, spec, aoi, species, + buffer_m) { + cols <- c("watershed_group_code", "blue_line_key", + "downstream_route_measure", "species_code") + miss <- setdiff(cols, names(absences)) + if (length(miss) > 0L) { + stop("absences is missing columns: ", paste(miss, collapse = ", "), + call. = FALSE) + } + a <- as.data.frame(absences)[, cols] + a$species_code <- toupper(a$species_code) + present <- paste(spec$watershed_group_code, spec$species_code) + a <- a[paste(a$watershed_group_code, a$species_code) %in% present, , + drop = FALSE] + DBI::dbWriteTable(conn, "lnk_vd_abs", a, temporary = TRUE, + overwrite = TRUE) + buf <- format(buffer_m, scientific = FALSE) + per_species <- paste(vapply(species, function(sp) { + spl <- tolower(sp) + sprintf( + "SELECT a.watershed_group_code, a.species_code, + a.id_segment IS NOT NULL AS attached, + coalesce(x.access_%1$s IN (1, 2), false) AS accessible, + %4$s AS spawning, + %5$s AS rearing, + %6$s AS rearing_any + FROM ( + SELECT b.watershed_group_code, b.species_code, b.blue_line_key, + b.downstream_route_measure AS m, s.id_segment, s.seg_drm + FROM pg_temp.lnk_vd_abs b + LEFT JOIN LATERAL ( + SELECT s.id_segment, s.downstream_route_measure AS seg_drm + FROM %2$s.streams s + WHERE s.blue_line_key = b.blue_line_key + AND s.watershed_group_code = b.watershed_group_code + AND (abs(s.downstream_route_measure + - b.downstream_route_measure) < 1 + OR (s.downstream_route_measure <= b.downstream_route_measure + AND b.downstream_route_measure < s.upstream_route_measure)) + ORDER BY (abs(s.downstream_route_measure + - b.downstream_route_measure) < 1) DESC, + s.downstream_route_measure DESC + LIMIT 1) s ON true + WHERE b.species_code = %3$s) a + LEFT JOIN %2$s.streams_access x + ON x.id_segment = a.id_segment + AND x.watershed_group_code = a.watershed_group_code + LEFT JOIN %2$s.streams_habitat_%1$s h + ON h.id_segment = a.id_segment + AND h.watershed_group_code = a.watershed_group_code", + spl, schema, .lnk_quote_literal(sp), + .lnk_hv_buffered(schema, spl, "h.spawning", buf), + .lnk_hv_buffered(schema, spl, "h.rearing", buf), + .lnk_hv_buffered(schema, spl, + "h.rearing OR h.lake_rearing OR h.wetland_rearing", + buf)) + }, character(1)), collapse = "\n UNION ALL\n ") + d <- DBI::dbGetQuery(conn, per_species) + d <- d[d$attached, , drop = FALSE] + grid <- expand.grid(watershed_group_code = aoi, species_code = species, + stringsAsFactors = FALSE) + key_d <- factor(paste(d$watershed_group_code, d$species_code), + levels = paste(grid$watershed_group_code, grid$species_code)) + # A WSG x species with no absence rows was not assessed: NA, not 0. + count_by <- function(flag) { + n <- tapply(flag, key_d, sum) + as.integer(ifelse(is.na(n), NA_integer_, n)) + } + grid$n_absence <- count_by(rep(TRUE, nrow(d))) + grid$n_absence_accessible <- count_by(d$accessible) + grid$n_absence_spawning <- count_by(d$spawning) + grid$n_absence_rearing <- count_by(d$rearing) + grid$n_absence_rearing_any <- count_by(d$rearing_any) + grid +} + +#' Per WSG x species x stage capture table, joined to cost and absences. +#' @noRd +.lnk_hv_summary <- function(obs, cost, abs_sum, aoi, species) { + stages <- c("any", "spawn", "rear") + grid <- expand.grid(stage = stages, species_code = species, + watershed_group_code = aoi, stringsAsFactors = FALSE) + grid <- grid[, c("watershed_group_code", "species_code", "stage")] + rows <- lapply(seq_len(nrow(grid)), function(i) { + g <- grid[i, ] + d <- obs[obs$watershed_group_code == g$watershed_group_code & + obs$species_code == g$species_code, , drop = FALSE] + if (g$stage == "spawn") d <- d[d$is_spawn, , drop = FALSE] + if (g$stage == "rear") d <- d[d$is_rear, , drop = FALSE] + un <- is.na(d$id_segment) + n_un <- sum(un) + d <- d[!un, , drop = FALSE] + n <- nrow(d) + share <- function(k) if (n == 0L) NA_real_ else k / n + n_acc <- sum(d$accessible) + n_sp <- sum(d$spawning) + n_re <- sum(d$rearing) + n_ra <- sum(d$rearing_any) + n_hab <- sum(d$spawning | d$rearing_any) + data.frame( + n_obs = n, n_unattached = n_un, + n_accessible = n_acc, n_inaccessible = n - n_acc, + n_spawning = n_sp, n_rearing = n_re, n_rearing_any = n_ra, + n_habitat = n_hab, + share_accessible = share(n_acc), share_spawning = share(n_sp), + share_rearing = share(n_re), share_rearing_any = share(n_ra), + share_habitat = share(n_hab), + n_in_uhc_spawn = sum(d$in_uhc_spawn), + n_in_uhc_rear = sum(d$in_uhc_rear), + # The same capture with the overlay's reaches taken out: the part of + # the score the observations did not decide by construction. + n_obs_outside_uhc_spawn = sum(!d$in_uhc_spawn), + n_spawning_outside_uhc = sum(d$spawning & !d$in_uhc_spawn), + n_obs_outside_uhc_rear = sum(!d$in_uhc_rear), + n_rearing_any_outside_uhc = sum(d$rearing_any & !d$in_uhc_rear)) + }) + out <- cbind(grid, do.call(rbind, rows)) + out$share_spawning_outside_uhc <- ifelse( + out$n_obs_outside_uhc_spawn > 0, + out$n_spawning_outside_uhc / out$n_obs_outside_uhc_spawn, NA_real_) + out$share_rearing_any_outside_uhc <- ifelse( + out$n_obs_outside_uhc_rear > 0, + out$n_rearing_any_outside_uhc / out$n_obs_outside_uhc_rear, NA_real_) + out <- merge(out, cost, by = c("watershed_group_code", "species_code"), + all.x = TRUE, sort = FALSE) + if (!is.null(abs_sum)) { + out <- merge(out, abs_sum, by = c("watershed_group_code", "species_code"), + all.x = TRUE, sort = FALSE) + } + out <- out[order(out$watershed_group_code, out$species_code, + match(out$stage, stages)), , drop = FALSE] + rownames(out) <- NULL + out +} +# nolint end: indentation_linter diff --git a/R/lnk_preflight_fresh.R b/R/lnk_preflight_fresh.R index 7e27a9ed..ad9196bc 100644 --- a/R/lnk_preflight_fresh.R +++ b/R/lnk_preflight_fresh.R @@ -98,7 +98,8 @@ lnk_preflight_fresh <- function(required = .lnk_fresh_required(), .lnk_fresh_required <- function() { c("frs_break_apply", "frs_break_find", "frs_candidates_pick", "frs_col_generate", "frs_col_join", "frs_habitat_classify", - "frs_habitat_overlay", "frs_network_features", "frs_order_child", + "frs_habitat_overlay", "frs_habitat_predicates", "frs_network_features", + "frs_order_child", "frs_params", "frs_wsg_drainage", "frs_wsg_outlets") } diff --git a/data-raw/habitat_validate.R b/data-raw/habitat_validate.R new file mode 100644 index 00000000..3391e918 --- /dev/null +++ b/data-raw/habitat_validate.R @@ -0,0 +1,406 @@ +#!/usr/bin/env Rscript +# habitat_validate.R — score persisted runs against fish observations (link#283). +# +# For each bundle:schema pair, runs lnk_habitat_validate() over every WSG the +# schema has `streams_access` for (or --wsgs=), at each buffer, and writes +# aggregates only. With two bundles, it diffs them on the WSGs both hold, after +# asserting both retained the same observations. +# +# Read-only against docker fwapg (:5432): session temp tables only. +# +# Rscript data-raw/habitat_validate.R \ +# --bundles=default:fresh_default,bcfishpass:fresh \ +# [--wsgs=MORR,BULK] [--species=CH,BT] [--buffers=0,100] [--out=] +# +# Absences (optional): with LNK_KNOWLEDGE_DIR pointing at the private +# `knowledge` repo, FISS data-submission sites that were sampled (effort +# recorded or no-fish-captured) become absences of a species when either +# - no fish were caught (`nfc`) and no species is listed, or +# - species are listed, none is the species (BT: Bull Trout or Dolly +# Varden, pooled as the observations are), and none is a taxon that could +# be it (`Unidentified Species`; `Salmon (General)` for CH; +# `Unidentifiable Trout` for BT). +# A site that caught fish but listed no species (most sites with an empty +# list) says nothing about which species were absent, and is left out. +# Sites snap to the nearest FWA stream within 100 m, the distance bcfishobs +# A/B matches (the observations kept) use. `knowledge` is private and link is public, so no site row is +# written here, only counts. +# +# Writes to data-raw/logs/habitat_validate_283/ (or --out): +# summary.csv lnk_habitat_validate()$summary, all bundles x buffers +# totals.csv summed over each bundle's WSGs, per species x stage x buffer +# totals_shared.csv the same over the WSGs both bundles hold (two bundles) +# misses.csv miss-reason counts per bundle x species x stage (buffer 0) +# misses_binned.csv missed locations by gradient x width bin (buffer 0) +# diff.csv bundle A vs B per WSG x species x stage x buffer +# stamp.txt environment stamp, including per-schema run-log coverage + +suppressPackageStartupMessages({ + pkgload::load_all(quiet = TRUE) + library(DBI) +}) + +opt <- function(name, default = NULL) { + a <- grep(paste0("^--", name, "="), commandArgs(trailingOnly = TRUE), + value = TRUE) + if (length(a) == 0L) return(default) + sub(paste0("^--", name, "="), "", a[length(a)]) +} +split_csv <- function(x) { + if (is.null(x)) return(NULL) + v <- trimws(strsplit(x, ",")[[1]]) + v[nzchar(v)] +} + +bundles_arg <- opt("bundles") +if (is.null(bundles_arg)) { + stop("--bundles=:[,:] is required: a ", + "bundle's pipeline.schema does not say which schema it built", + call. = FALSE) +} +bundles <- do.call(rbind, lapply(split_csv(bundles_arg), function(b) { + p <- strsplit(b, ":", fixed = TRUE)[[1]] + if (length(p) != 2L || !all(nzchar(p))) { + stop("bad --bundles entry '", b, "': want :", call. = FALSE) + } + data.frame(config = p[1], schema = p[2], stringsAsFactors = FALSE) +})) +if (nrow(bundles) > 2L) stop("at most two bundles", call. = FALSE) +if (anyDuplicated(bundles$schema)) { + stop("the two bundles name the same schema", call. = FALSE) +} +species <- toupper(split_csv(opt("species", "CH,BT"))) +if (length(species) == 0L) stop("--species is empty", call. = FALSE) +buffers <- as.numeric(split_csv(opt("buffers", "0,100"))) +if (anyNA(buffers) || !0 %in% buffers) { + stop("--buffers must be numbers and include 0 (the misses are buffer 0)", + call. = FALSE) +} +wsgs_arg <- toupper(split_csv(opt("wsgs"))) +dir_out <- opt("out", file.path("data-raw", "logs", "habitat_validate_283")) +fs::dir_create(dir_out) +# Clear this script's outputs first, so a partial or one-bundle run cannot +# leave an older stamp or diff beside new CSVs. +outputs <- c("summary.csv", "totals.csv", "totals_shared.csv", "misses.csv", + "misses_binned.csv", "diff.csv", "stamp.txt") +unlink(file.path(dir_out, outputs)) + +conn <- lnk_db_conn(dbname = "fwapg", host = "localhost", port = 5432L, + user = "postgres", password = "postgres") + +# -- WSGs per bundle: those with access built --------------------------------- +bundle_wsgs <- lapply(seq_len(nrow(bundles)), function(i) { + w <- dbGetQuery(conn, sprintf( + "SELECT DISTINCT watershed_group_code FROM %s.streams_access + ORDER BY 1", bundles$schema[i]))$watershed_group_code + # toupper(NULL) is character(0), so test length, not NULL. + if (length(wsgs_arg) > 0L) { + miss <- setdiff(wsgs_arg, w) + if (length(miss) > 0L) { + stop(bundles$schema[i], " has no access for: ", + paste(miss, collapse = ", "), call. = FALSE) + } + w <- wsgs_arg + } + w +}) +if (nrow(bundles) == 2L && + length(intersect(bundle_wsgs[[1]], bundle_wsgs[[2]])) == 0L) { + stop("the two bundles share no WSGs", call. = FALSE) +} + +# -- absences from FISS sites (optional) -------------------------------------- +fiss_absences <- function() { + dir_k <- Sys.getenv("LNK_KNOWLEDGE_DIR", "") + if (!nzchar(dir_k)) return(NULL) + files <- Sys.glob(file.path(dir_k, "data", "*", "fiss_sites_*_all.csv")) + if (length(files) == 0L) { + stop("LNK_KNOWLEDGE_DIR set but no fiss_sites_*_all.csv under ", dir_k, + call. = FALSE) + } + num <- function(x) suppressWarnings(as.numeric(x)) + sites <- do.call(rbind, lapply(files, function(f) { + d <- utils::read.csv(f, colClasses = "character", na.strings = c("", "NA")) + data.frame(site_key = d$site_key, + utm_zone = num(d$utm_zone), utm_easting = num(d$utm_easting), + utm_northing = num(d$utm_northing), + sampled = d$effort_recorded %in% "TRUE" | d$nfc %in% "TRUE", + nfc = d$nfc %in% "TRUE", + species_list = ifelse(is.na(d$species_list), "", + d$species_list), + stringsAsFactors = FALSE) + })) + sites <- sites[sites$sampled & !is.na(sites$utm_zone) & + !is.na(sites$utm_easting) & !is.na(sites$utm_northing), ] + # A report spanning two groups appears in both snapshots under one key. + sites <- sites[!duplicated(sites$site_key), ] + dbWriteTable(conn, "hv_fiss", sites[, c("site_key", "utm_zone", + "utm_easting", "utm_northing")], + temporary = TRUE, overwrite = TRUE) + snap <- dbGetQuery(conn, " + WITH p AS ( + SELECT site_key, + st_transform(st_setsrid(st_makepoint(utm_easting, utm_northing), + 26900 + utm_zone::int), 3005) AS geom + FROM pg_temp.hv_fiss) + SELECT p.site_key, f.watershed_group_code, f.blue_line_key, + f.downstream_route_measure + + st_linelocatepoint(st_force2d(f.geom), p.geom) * f.length_metre + AS downstream_route_measure + FROM p + JOIN LATERAL ( + SELECT f.watershed_group_code, f.blue_line_key, + f.downstream_route_measure, f.length_metre, f.geom + FROM whse_basemapping.fwa_stream_networks_sp f + WHERE st_dwithin(f.geom, p.geom, 100) + AND f.edge_type <> 1425 + ORDER BY f.geom <-> p.geom + LIMIT 1) f ON true") + sites <- merge(sites, snap, by = "site_key") + # Only the snapshot WSGs were surveyed; a site snapping across a boundary + # would give its neighbour a partial count that reads as coverage. + covered <- toupper(basename(dirname(files))) + sites <- sites[sites$watershed_group_code %in% covered, ] + listed <- nzchar(trimws(sites$species_list)) + no_fish <- sites$nfc & !listed + caught <- list( + CH = grepl("Chinook", sites$species_list, ignore.case = TRUE), + BT = grepl("Bull Trout|Dolly Varden", sites$species_list, + ignore.case = TRUE)) + maybe <- list( + CH = grepl("Unidentified|Salmon \\(General\\)", sites$species_list, + ignore.case = TRUE), + BT = grepl("Unidentified|Unidentifiable Trout", sites$species_list, + ignore.case = TRUE)) + sp_abs <- intersect(species, names(caught)) + if (length(setdiff(species, sp_abs)) > 0L) { + message("no FISS absence rule for: ", + paste(setdiff(species, sp_abs), collapse = ", "), + "; not assessed") + } + if (length(sp_abs) == 0L) { + return(structure(list(), reason = "no FISS absence rule for the species")) + } + is_abs_of <- function(sp) no_fish | (listed & !caught[[sp]] & !maybe[[sp]]) + n_abs <- vapply(sp_abs, function(sp) sum(is_abs_of(sp)), integer(1)) + out <- do.call(rbind, lapply(sp_abs, function(sp) { + s <- sites[is_abs_of(sp), ] + data.frame(watershed_group_code = s$watershed_group_code, + blue_line_key = s$blue_line_key, + downstream_route_measure = s$downstream_route_measure, + species_code = rep(sp, nrow(s)), stringsAsFactors = FALSE) + })) + attr(out, "n_sites_sampled") <- nrow(sites) + attr(out, "n_absence_sites") <- n_abs + attr(out, "covered") <- sort(unique(covered)) + sha <- suppressWarnings(tryCatch( + system2("git", c("-C", shQuote(dir_k), "rev-parse", "--short", "HEAD"), + stdout = TRUE, stderr = FALSE), + error = function(e) character(0))) + attr(out, "knowledge_sha") <- if (length(sha) == 1L) sha else "not a git repo" + out +} +absences <- fiss_absences() +abs_note <- attr(absences, "reason") +if (!is.null(abs_note)) absences <- NULL + +# -- validate ------------------------------------------------------------------ +runs <- list() +for (i in seq_len(nrow(bundles))) { + cfg <- lnk_config(bundles$config[i]) + loaded <- suppressWarnings(lnk_load_overrides(cfg)) + for (b in buffers) { + message(sprintf("validating %s:%s, %d WSGs, buffer %s m", + bundles$config[i], bundles$schema[i], + length(bundle_wsgs[[i]]), b)) + runs[[length(runs) + 1L]] <- c( + lnk_habitat_validate(conn, aoi = bundle_wsgs[[i]], cfg = cfg, + loaded = loaded, species = species, + schema = bundles$schema[i], buffer_m = b, + absences = absences), + list(bundle = paste0(bundles$config[i], ":", bundles$schema[i]))) + } +} + +summary <- do.call(rbind, lapply(runs, `[[`, "summary")) +utils::write.csv(summary, file.path(dir_out, "summary.csv"), row.names = FALSE, + na = "") + +# -- totals over WSGs ------------------------------------------------------------ +cols_n <- grep("^n_", names(summary), value = TRUE) +cols_km <- c("accessible_km", "spawning_km", "rearing_km") +key <- c("schema", "config_name", "buffer_m", "species_code", "stage") +make_totals <- function(s) { + grp <- interaction(s[key], drop = TRUE, lex.order = TRUE) + out <- do.call(rbind, lapply(split(s, grp), function(d) { + # Absence columns stay NA when not assessed; everything else sums. + sums <- lapply(d[c(cols_n, cols_km)], function(x) { + if (all(is.na(x))) NA_real_ else sum(x, na.rm = TRUE) + }) + cbind(d[1, key], as.data.frame(sums), n_wsg = nrow(d), + n_wsg_logged = sum(d$run_logged)) + })) + for (k in c("accessible", "spawning", "rearing", "rearing_any", "habitat")) { + out[[paste0("share_", k)]] <- ifelse( + out$n_obs > 0, out[[paste0("n_", k)]] / out$n_obs, NA_real_) + } + out$share_spawning_outside_uhc <- ifelse( + out$n_obs_outside_uhc_spawn > 0, + out$n_spawning_outside_uhc / out$n_obs_outside_uhc_spawn, NA_real_) + out$share_rearing_any_outside_uhc <- ifelse( + out$n_obs_outside_uhc_rear > 0, + out$n_rearing_any_outside_uhc / out$n_obs_outside_uhc_rear, NA_real_) + rownames(out) <- NULL + out +} +utils::write.csv(make_totals(summary), file.path(dir_out, "totals.csv"), + row.names = FALSE, na = "") +shared <- Reduce(intersect, bundle_wsgs) +if (nrow(bundles) == 2L) { + # Each bundle's own totals are over different WSG sets; compare these. + utils::write.csv( + make_totals(summary[summary$watershed_group_code %in% shared, ]), + file.path(dir_out, "totals_shared.csv"), row.names = FALSE, na = "") +} + +# -- misses (buffer 0) ------------------------------------------------------------- +# `any` is captured when the location is spawning or any rearing, matching +# totals' n_habitat; its reason is then the rear reason. +stage_rows <- function(obs) { + base <- data.frame( + species_code = obs$species_code, gradient = obs$gradient, + channel_width = obs$channel_width, edge_type = obs$edge_type, + is_spawn = obs$is_spawn, is_rear = obs$is_rear, + reason_any = ifelse(obs$spawning %in% TRUE, NA_character_, + obs$miss_reason_rear), + reason_spawn = obs$miss_reason_spawn, + reason_rear = obs$miss_reason_rear, stringsAsFactors = FALSE) + pick <- function(d, stage, col) { + cbind(data.frame(stage = rep(stage, nrow(d))), d[, c("species_code", + "gradient", "channel_width", "edge_type")], reason = d[[col]]) + } + rbind(pick(base, "any", "reason_any"), + pick(base[base$is_spawn, , drop = FALSE], "spawn", "reason_spawn"), + pick(base[base$is_rear, , drop = FALSE], "rear", "reason_rear")) +} +breaks_g <- c(-Inf, 0.0025, 0.01, 0.02, 0.03, 0.045, 0.055, 0.07, 0.105, + 0.135, 0.15, 0.20, 0.25, Inf) +breaks_w <- c(0, 1.5, 2, 3, 4, 6, 10, 20, Inf) +misses <- list() +binned <- list() +for (r in runs[vapply(runs, function(r) r$summary$buffer_m[1] == 0, TRUE)]) { + d <- stage_rows(r$observations) + d$reason[is.na(d$reason)] <- "captured" + tab <- as.data.frame(table(stage = d$stage, species_code = d$species_code, + reason = d$reason), stringsAsFactors = FALSE) + tab <- tab[tab$Freq > 0, ] + names(tab)[names(tab) == "Freq"] <- "n" + misses[[length(misses) + 1L]] <- cbind( + data.frame(bundle = rep(r$bundle, nrow(tab))), tab) + m <- d[!d$reason %in% c("captured", "no_segment"), ] + m$gradient_bin <- as.character(cut(m$gradient, breaks_g, right = TRUE)) + m$width_bin <- ifelse(is.na(m$channel_width), "NULL", + as.character(cut(m$channel_width, breaks_w, + right = FALSE))) + b <- as.data.frame(table(stage = m$stage, species_code = m$species_code, + reason = m$reason, gradient_bin = m$gradient_bin, + width_bin = m$width_bin, useNA = "ifany"), + stringsAsFactors = FALSE) + b <- b[b$Freq > 0, ] + names(b)[names(b) == "Freq"] <- "n" + binned[[length(binned) + 1L]] <- cbind( + data.frame(bundle = rep(r$bundle, nrow(b))), b) +} +utils::write.csv(do.call(rbind, misses), file.path(dir_out, "misses.csv"), + row.names = FALSE, na = "") +utils::write.csv(do.call(rbind, binned), file.path(dir_out, "misses_binned.csv"), + row.names = FALSE, na = "") + +# -- diff (two bundles, shared WSGs) -------------------------------------------------- +if (nrow(bundles) == 2L) { + # Both bundles must be scored on the same observations, or the diff mixes + # a filter difference into a model difference. + keys <- lapply(runs[vapply(runs, function(r) r$summary$buffer_m[1] == 0, + TRUE)], function(r) { + o <- r$observations[r$observations$watershed_group_code %in% shared, ] + sort(paste(o$species_code, o$watershed_group_code, o$observation_key)) + }) + if (!identical(keys[[1]], keys[[2]])) { + stop("the two bundles retained different observations on shared WSGs (", + length(setdiff(keys[[1]], keys[[2]])), " only in A, ", + length(setdiff(keys[[2]], keys[[1]])), " only in B)", call. = FALSE) + } + cols_cmp <- c("n_obs", "n_accessible", "n_spawning", "n_rearing", + "n_rearing_any", "share_accessible", "share_spawning", + "share_rearing", "share_rearing_any", + "share_spawning_outside_uhc", "share_rearing_any_outside_uhc", + "accessible_km", "spawning_km", "rearing_km") + by <- c("watershed_group_code", "species_code", "stage", "buffer_m") + a <- summary[summary$schema == bundles$schema[1] & + summary$watershed_group_code %in% shared, c(by, cols_cmp)] + b <- summary[summary$schema == bundles$schema[2] & + summary$watershed_group_code %in% shared, c(by, cols_cmp)] + d <- merge(a, b, by = by, suffixes = c("_a", "_b")) + for (cl in setdiff(cols_cmp, "n_obs")) { + d[[paste0(cl, "_delta")]] <- d[[paste0(cl, "_b")]] - d[[paste0(cl, "_a")]] + } + d <- cbind(data.frame( + bundle_a = rep(paste0(bundles$config[1], ":", bundles$schema[1]), nrow(d)), + bundle_b = rep(paste0(bundles$config[2], ":", bundles$schema[2]), nrow(d))), + d) + d <- d[order(d$buffer_m, d$species_code, d$stage, d$watershed_group_code), ] + utils::write.csv(d, file.path(dir_out, "diff.csv"), row.names = FALSE, + na = "") +} + +# -- stamp --------------------------------------------------------------------------- +fresh_sha <- .lnk_pkg_git_sha("fresh") +link_dirty <- length(system(paste( + "git status --porcelain -- R inst/extdata/configs", + "data-raw/habitat_validate.R"), intern = TRUE)) > 0L +log_lines <- vapply(seq_len(nrow(bundles)), function(i) { + s <- bundles$schema[i] + w <- bundle_wsgs[[i]] + if (!dbExistsTable(conn, Id(schema = s, table = "log"))) { + return(sprintf("bundle %s:%s — %d WSGs scored; no run log", + bundles$config[i], s, length(w))) + } + lg <- dbGetQuery(conn, sprintf( + "SELECT count(DISTINCT watershed_group_code) AS n_wsg, + string_agg(DISTINCT coalesce(fresh_version, 'NA'), ', ') AS fresh, + min(date_start)::date AS first, max(date_start)::date AS last + FROM %s.log WHERE watershed_group_code = ANY($1)", s), + params = list(paste0("{", paste(w, collapse = ","), "}"))) + sprintf(paste("bundle %s:%s — %d WSGs scored; %d with a run-log row", + "(fresh %s, %s to %s); the rest predate the log"), + bundles$config[i], s, length(w), as.integer(lg$n_wsg), + lg$fresh, lg$first, lg$last) +}, character(1)) +stamp <- c( + sprintf("date: %s", format(Sys.time(), "%Y-%m-%d %H:%M %Z")), + sprintf("link: %s @ %s%s", utils::packageVersion("link"), + system("git rev-parse --short HEAD", intern = TRUE), + if (link_dirty) " (dirty)" else ""), + sprintf("fresh installed (builds the miss-reason predicates): %s @ %s", + utils::packageVersion("fresh"), + if (is.na(fresh_sha)) "no recorded sha" else fresh_sha), + "db: docker fwapg localhost:5432", + log_lines, + sprintf("species: %s; buffers: %s m", paste(species, collapse = ","), + paste(buffers, collapse = ",")), + sprintf("bcfishobs.observations rows: %s", + dbGetQuery(conn, "SELECT count(*) FROM bcfishobs.observations")[[1]]), + if (!is.null(abs_note)) sprintf("absences: none (%s)", abs_note) else + if (is.null(absences)) "absences: none (LNK_KNOWLEDGE_DIR unset)" else + sprintf(paste("absences: %d sampled FISS sites snapped within the", + "snapshot WSGs (%s); usable as absences, before presence:", + "%s; other WSGs report NA; knowledge @ %s"), + attr(absences, "n_sites_sampled"), + paste(attr(absences, "covered"), collapse = ","), + paste(names(attr(absences, "n_absence_sites")), + attr(absences, "n_absence_sites"), collapse = ", "), + attr(absences, "knowledge_sha"))) +writeLines(stamp, file.path(dir_out, "stamp.txt")) + +dbDisconnect(conn) +message("wrote ", dir_out) diff --git a/data-raw/logs/habitat_validate_283/diff.csv b/data-raw/logs/habitat_validate_283/diff.csv new file mode 100644 index 00000000..f2af53a1 --- /dev/null +++ b/data-raw/logs/habitat_validate_283/diff.csv @@ -0,0 +1,613 @@ +"bundle_a","bundle_b","watershed_group_code","species_code","stage","buffer_m","n_obs_a","n_accessible_a","n_spawning_a","n_rearing_a","n_rearing_any_a","share_accessible_a","share_spawning_a","share_rearing_a","share_rearing_any_a","share_spawning_outside_uhc_a","share_rearing_any_outside_uhc_a","accessible_km_a","spawning_km_a","rearing_km_a","n_obs_b","n_accessible_b","n_spawning_b","n_rearing_b","n_rearing_any_b","share_accessible_b","share_spawning_b","share_rearing_b","share_rearing_any_b","share_spawning_outside_uhc_b","share_rearing_any_outside_uhc_b","accessible_km_b","spawning_km_b","rearing_km_b","n_accessible_delta","n_spawning_delta","n_rearing_delta","n_rearing_any_delta","share_accessible_delta","share_spawning_delta","share_rearing_delta","share_rearing_any_delta","share_spawning_outside_uhc_delta","share_rearing_any_outside_uhc_delta","accessible_km_delta","spawning_km_delta","rearing_km_delta" +"default:fresh_default","bcfishpass:fresh","BBAR","BT","any",0,16,16,10,13,13,1,0.625,0.8125,0.8125,0.625,0.8125,1761.57,329.41,560.67,16,16,10,13,13,1,0.625,0.8125,0.8125,0.625,0.8125,1262.45,296.02,478.21,0,0,0,0,0,0,0,0,0,0,-499.12,-33.39,-82.46 +"default:fresh_default","bcfishpass:fresh","BULK","BT","any",0,468,464,231,334,334,0.991452991452991,0.493589743589744,0.713675213675214,0.713675213675214,0.493589743589744,0.713675213675214,7713.98,1852.11,3012.7,468,443,222,327,327,0.946581196581197,0.474358974358974,0.698717948717949,0.698717948717949,0.474358974358974,0.698717948717949,7676.5,1866.31,3021.51,-21,-9,-7,-7,-0.0448717948717949,-0.0192307692307693,-0.014957264957265,-0.014957264957265,-0.0192307692307693,-0.014957264957265,-37.4799999999996,14.2,8.8100000000004 +"default:fresh_default","bcfishpass:fresh","CARP","BT","any",0,6,6,4,4,6,1,0.666666666666667,0.666666666666667,1,0.666666666666667,1,4420.57,502.37,1026.27,6,6,4,6,6,1,0.666666666666667,1,1,0.666666666666667,1,4296.5,497.07,1072.63,0,0,2,0,0,0,0.333333333333333,0,0,0,-124.07,-5.30000000000001,46.3600000000001 +"default:fresh_default","bcfishpass:fresh","CHES","BT","any",0,3,3,3,3,3,1,1,1,1,1,1,2904.74,376.85,796.72,3,1,1,1,1,0.333333333333333,0.333333333333333,0.333333333333333,0.333333333333333,0.333333333333333,0.333333333333333,901.21,145.45,336.47,-2,-2,-2,-2,-0.666666666666667,-0.666666666666667,-0.666666666666667,-0.666666666666667,-0.666666666666667,-0.666666666666667,-2003.53,-231.4,-460.25 +"default:fresh_default","bcfishpass:fresh","CHWK","BT","any",0,62,62,34,45,52,1,0.548387096774194,0.725806451612903,0.838709677419355,0.548387096774194,0.838709677419355,793.94,310.02,353.48,62,62,34,53,53,1,0.548387096774194,0.854838709677419,0.854838709677419,0.548387096774194,0.854838709677419,822.24,316.56,418.39,0,0,8,1,0,0,0.129032258064516,0.0161290322580645,0,0.0161290322580645,28.3,6.54000000000002,64.91 +"default:fresh_default","bcfishpass:fresh","COTR","BT","any",0,85,84,45,68,68,0.988235294117647,0.529411764705882,0.8,0.8,0.529411764705882,0.8,6856.99,1480.88,2433.36,85,84,46,68,68,0.988235294117647,0.541176470588235,0.8,0.8,0.541176470588235,0.8,6878.95,1490.06,2340.71,0,1,0,0,0,0.0117647058823529,0,0,0.0117647058823529,0,21.96,9.17999999999984,-92.6500000000001 +"default:fresh_default","bcfishpass:fresh","CRKD","BT","any",0,4,4,4,4,4,1,1,1,1,1,1,5115.69,695.8,1448.76,4,4,4,4,4,1,1,1,1,1,1,5051.55,695.63,1448.44,0,0,0,0,0,0,0,0,0,0,-64.1399999999994,-0.169999999999959,-0.319999999999936 +"default:fresh_default","bcfishpass:fresh","DOGC","BT","any",0,17,17,13,17,17,1,0.764705882352941,1,1,0.764705882352941,1,1260.46,286.17,502.72,17,17,13,17,17,1,0.764705882352941,1,1,0.764705882352941,1,1251.04,288.83,481.5,0,0,0,0,0,0,0,0,0,0,-9.42000000000007,2.65999999999997,-21.22 +"default:fresh_default","bcfishpass:fresh","FINA","BT","any",0,107,107,89,97,105,1,0.831775700934579,0.906542056074766,0.981308411214953,0.831775700934579,0.981308411214953,7889.87,1325.37,2218.78,107,107,89,105,105,1,0.831775700934579,0.981308411214953,0.981308411214953,0.831775700934579,0.981308411214953,6084.04,1277.62,2845.63,0,0,8,0,0,0,0.0747663551401869,0,0,0,-1805.83,-47.75,626.85 +"default:fresh_default","bcfishpass:fresh","FINL","BT","any",0,32,32,25,29,29,1,0.78125,0.90625,0.90625,0.78125,0.90625,4515.86,1365.64,2107.58,32,32,25,29,29,1,0.78125,0.90625,0.90625,0.78125,0.90625,4480.99,1365.64,2085.7,0,0,0,0,0,0,0,0,0,0,-34.8699999999999,0,-21.8800000000001 +"default:fresh_default","bcfishpass:fresh","FIRE","BT","any",0,172,172,128,151,157,1,0.744186046511628,0.877906976744186,0.912790697674419,0.744186046511628,0.912790697674419,6663.44,1012.79,1911.07,172,172,128,155,155,1,0.744186046511628,0.901162790697674,0.901162790697674,0.744186046511628,0.901162790697674,6589.52,1012.26,2016.75,0,0,4,-2,0,0,0.0232558139534884,-0.0116279069767441,0,-0.0116279069767441,-73.9199999999992,-0.529999999999973,105.68 +"default:fresh_default","bcfishpass:fresh","FOXR","BT","any",0,33,33,26,31,31,1,0.787878787878788,0.93939393939394,0.93939393939394,0.787878787878788,0.93939393939394,3665.56,928.18,1525.02,33,33,26,31,31,1,0.787878787878788,0.93939393939394,0.93939393939394,0.787878787878788,0.93939393939394,3587.54,922.1,1511.59,0,0,0,0,0,0,0,0,0,0,-78.02,-6.07999999999993,-13.4300000000001 +"default:fresh_default","bcfishpass:fresh","FRAN","BT","any",0,102,102,48,71,73,1,0.470588235294118,0.696078431372549,0.715686274509804,0.470588235294118,0.715686274509804,9078.53,1120.86,2355.24,102,100,47,71,71,0.980392156862745,0.46078431372549,0.696078431372549,0.696078431372549,0.46078431372549,0.696078431372549,9265.93,1150.92,2834.02,-2,-1,0,-2,-0.0196078431372549,-0.00980392156862747,0,-0.0196078431372549,-0.00980392156862747,-0.0196078431372549,187.4,30.0600000000002,478.78 +"default:fresh_default","bcfishpass:fresh","FRCN","BT","any",0,95,95,50,88,89,1,0.526315789473684,0.926315789473684,0.936842105263158,0.526315789473684,0.936842105263158,1504.38,663.33,889.13,95,94,50,88,88,0.989473684210526,0.526315789473684,0.926315789473684,0.926315789473684,0.526315789473684,0.926315789473684,1502.48,691.1,964.06,-1,0,0,-1,-0.0105263157894737,0,0,-0.0105263157894737,0,-0.0105263157894737,-1.90000000000009,27.77,74.93 +"default:fresh_default","bcfishpass:fresh","HARR","BT","any",0,43,42,22,32,36,0.976744186046512,0.511627906976744,0.744186046511628,0.837209302325581,0.511627906976744,0.837209302325581,1619.34,470.27,588.62,43,38,19,33,33,0.883720930232558,0.441860465116279,0.767441860465116,0.767441860465116,0.441860465116279,0.767441860465116,1561.45,468.9,827.82,-4,-3,1,-3,-0.0930232558139534,-0.0697674418604651,0.0232558139534884,-0.0697674418604651,-0.0697674418604651,-0.0697674418604651,-57.8899999999999,-1.37,239.2 +"default:fresh_default","bcfishpass:fresh","INGR","BT","any",0,27,27,23,26,26,1,0.851851851851852,0.962962962962963,0.962962962962963,0.851851851851852,0.962962962962963,3925.58,1111.41,1736.58,27,27,23,26,26,1,0.851851851851852,0.962962962962963,0.962962962962963,0.851851851851852,0.962962962962963,3907.56,1111.41,1783.68,0,0,0,0,0,0,0,0,0,0,-18.02,0,47.1000000000001 +"default:fresh_default","bcfishpass:fresh","KISP","BT","any",0,195,192,122,159,162,0.984615384615385,0.625641025641026,0.815384615384615,0.830769230769231,0.625641025641026,0.830769230769231,4529.14,1258.71,1894.95,195,187,120,161,161,0.958974358974359,0.615384615384615,0.825641025641026,0.825641025641026,0.615384615384615,0.825641025641026,4475.39,1261.15,1962.71,-5,-2,2,-1,-0.0256410256410257,-0.0102564102564102,0.0102564102564102,-0.00512820512820522,-0.0102564102564102,-0.00512820512820522,-53.75,2.44000000000005,67.76 +"default:fresh_default","bcfishpass:fresh","KLUM","BT","any",0,314,302,194,243,244,0.961783439490446,0.617834394904459,0.773885350318471,0.777070063694268,0.617834394904459,0.777070063694268,2173.93,929.96,1229.04,314,275,183,232,232,0.875796178343949,0.582802547770701,0.738853503184713,0.738853503184713,0.582802547770701,0.738853503184713,1930.45,894.45,1189.16,-27,-11,-11,-12,-0.0859872611464968,-0.035031847133758,-0.0350318471337581,-0.0382165605095542,-0.035031847133758,-0.0382165605095542,-243.48,-35.51,-39.8799999999999 +"default:fresh_default","bcfishpass:fresh","LBTN","BT","any",0,2,2,2,2,2,1,1,1,1,1,1,9061.71,2027.4,2961.53,2,2,2,2,2,1,1,1,1,1,1,8647.79,2026.94,2189.51,0,0,0,0,0,0,0,0,0,0,-413.919999999998,-0.460000000000036,-772.02 +"default:fresh_default","bcfishpass:fresh","LCHL","BT","any",0,6,6,5,6,6,1,0.833333333333333,1,1,0.833333333333333,1,5533.57,908.41,1581.55,6,6,5,6,6,1,0.833333333333333,1,1,0.833333333333333,1,5236.61,896.14,1550.64,0,0,0,0,0,0,0,0,0,0,-296.96,-12.27,-30.9099999999999 +"default:fresh_default","bcfishpass:fresh","LFRA","BT","any",0,78,78,57,64,69,1,0.730769230769231,0.82051282051282,0.884615384615385,0.730769230769231,0.884615384615385,3569.06,1241.71,1516.52,78,78,58,70,70,1,0.743589743589744,0.897435897435897,0.897435897435897,0.743589743589744,0.897435897435897,3415.8,1284.59,1805.62,0,1,6,1,0,0.0128205128205129,0.076923076923077,0.0128205128205129,0.0128205128205129,0.0128205128205129,-153.26,42.8799999999999,289.1 +"default:fresh_default","bcfishpass:fresh","LKEL","BT","any",0,63,63,36,45,48,1,0.571428571428571,0.714285714285714,0.761904761904762,0.571428571428571,0.761904761904762,405.16,144.67,218.77,63,63,36,48,48,1,0.571428571428571,0.761904761904762,0.761904761904762,0.571428571428571,0.761904761904762,401.02,144.74,222.78,0,0,3,0,0,0,0.0476190476190476,0,0,0,-4.14000000000004,0.0700000000000216,4.00999999999999 +"default:fresh_default","bcfishpass:fresh","LOMI","BT","any",0,27,26,20,25,25,0.962962962962963,0.740740740740741,0.925925925925926,0.925925925925926,0.740740740740741,0.925925925925926,3639.43,1004.03,1513.07,27,26,20,25,25,0.962962962962963,0.740740740740741,0.925925925925926,0.925925925925926,0.740740740740741,0.925925925925926,3436.23,967.82,1517.42,0,0,0,0,0,0,0,0,0,0,-203.2,-36.2099999999999,4.35000000000014 +"default:fresh_default","bcfishpass:fresh","LPCE","BT","any",0,55,53,42,42,42,0.963636363636364,0.763636363636364,0.763636363636364,0.763636363636364,0.763636363636364,0.763636363636364,3571.54,1000.37,1386.86,55,53,42,40,40,0.963636363636364,0.763636363636364,0.727272727272727,0.727272727272727,0.763636363636364,0.727272727272727,3130.17,918.71,1261.4,0,0,-2,-2,0,0,-0.0363636363636364,-0.0363636363636364,0,-0.0363636363636364,-441.37,-81.66,-125.46 +"default:fresh_default","bcfishpass:fresh","LSAL","BT","any",0,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","LSKE","BT","any",0,230,227,168,193,193,0.98695652173913,0.730434782608696,0.839130434782609,0.839130434782609,0.730434782608696,0.839130434782609,3075.25,1326.45,1709.47,230,216,163,186,186,0.939130434782609,0.708695652173913,0.808695652173913,0.808695652173913,0.708695652173913,0.808695652173913,2884.31,1315.64,1751.5,-11,-5,-7,-7,-0.0478260869565217,-0.0217391304347826,-0.0304347826086957,-0.0304347826086957,-0.0217391304347826,-0.0304347826086957,-190.94,-10.8099999999999,42.03 +"default:fresh_default","bcfishpass:fresh","MESI","BT","any",0,64,64,50,60,60,1,0.78125,0.9375,0.9375,0.78125,0.9375,2825.32,691.09,1077.07,64,64,50,60,60,1,0.78125,0.9375,0.9375,0.78125,0.9375,2767.09,685.99,1126.99,0,0,0,0,0,0,0,0,0,0,-58.23,-5.10000000000002,49.9200000000001 +"default:fresh_default","bcfishpass:fresh","MFRA","BT","any",0,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","MORK","BT","any",0,79,79,70,72,73,1,0.886075949367089,0.911392405063291,0.924050632911392,0.886075949367089,0.924050632911392,7202.59,2148.8,3077.39,79,79,70,73,73,1,0.886075949367089,0.924050632911392,0.924050632911392,0.886075949367089,0.924050632911392,8075.86,2434.23,3397.59,0,0,1,0,0,0,0.0126582278481013,0,0,0,873.27,285.43,320.2 +"default:fresh_default","bcfishpass:fresh","MORR","BT","any",0,357,357,154,258,265,1,0.431372549019608,0.722689075630252,0.742296918767507,0.431372549019608,0.742296918767507,4865.96,960.8,1685.2,357,349,151,258,258,0.977591036414566,0.42296918767507,0.722689075630252,0.722689075630252,0.42296918767507,0.722689075630252,4765.64,952.61,1829.89,-8,-3,0,-7,-0.0224089635854342,-0.00840336134453784,0,-0.0196078431372549,-0.00840336134453784,-0.0196078431372549,-100.32,-8.18999999999994,144.69 +"default:fresh_default","bcfishpass:fresh","MSKE","BT","any",0,69,68,46,51,51,0.985507246376812,0.666666666666667,0.739130434782609,0.739130434782609,0.666666666666667,0.739130434782609,2691.58,922.19,1383.97,69,62,46,51,51,0.898550724637681,0.666666666666667,0.739130434782609,0.739130434782609,0.666666666666667,0.739130434782609,2667.19,921.62,1383.52,-6,0,0,0,-0.0869565217391305,0,0,0,0,0,-24.3899999999999,-0.57000000000005,-0.450000000000045 +"default:fresh_default","bcfishpass:fresh","NARC","BT","any",0,7,7,7,7,7,1,1,1,1,1,1,4336.98,873.49,1703.68,7,7,7,7,7,1,1,1,1,1,1,2994.54,633.18,1162.09,0,0,0,0,0,0,0,0,0,0,-1342.44,-240.31,-541.59 +"default:fresh_default","bcfishpass:fresh","NATR","BT","any",0,57,57,37,47,48,1,0.649122807017544,0.824561403508772,0.842105263157895,0.649122807017544,0.842105263157895,9819.51,1803.66,3496.13,57,53,33,44,44,0.929824561403509,0.578947368421053,0.771929824561403,0.771929824561403,0.578947368421053,0.771929824561403,8011.09,1516.19,3071.31,-4,-4,-3,-4,-0.0701754385964912,-0.0701754385964912,-0.0526315789473685,-0.0701754385964912,-0.0701754385964912,-0.0701754385964912,-1808.42,-287.47,-424.82 +"default:fresh_default","bcfishpass:fresh","NECR","BT","any",0,12,12,12,12,12,1,1,1,1,1,1,6329.74,991.14,1943.82,12,12,12,12,12,1,1,1,1,1,1,6156.77,989.82,1875.61,0,0,0,0,0,0,0,0,0,0,-172.969999999999,-1.31999999999994,-68.21 +"default:fresh_default","bcfishpass:fresh","OSPK","BT","any",0,12,12,10,12,12,1,0.833333333333333,1,1,0.833333333333333,1,1882.44,594.62,877.22,12,12,10,12,12,1,0.833333333333333,1,1,0.833333333333333,1,1881.19,594.62,866.44,0,0,0,0,0,0,0,0,0,0,-1.25,0,-10.78 +"default:fresh_default","bcfishpass:fresh","PARA","BT","any",0,77,77,60,67,70,1,0.779220779220779,0.87012987012987,0.909090909090909,0.779220779220779,0.909090909090909,4400.24,720.29,1330.46,77,77,60,70,70,1,0.779220779220779,0.909090909090909,0.909090909090909,0.779220779220779,0.909090909090909,4256.87,718.23,1769.82,0,0,3,0,0,0,0.038961038961039,0,0,0,-143.37,-2.05999999999995,439.36 +"default:fresh_default","bcfishpass:fresh","PARS","BT","any",0,281,281,231,259,259,1,0.822064056939502,0.921708185053381,0.921708185053381,0.822064056939502,0.921708185053381,6883.03,1685.38,2635.01,281,280,231,259,259,0.99644128113879,0.822064056939502,0.921708185053381,0.921708185053381,0.822064056939502,0.921708185053381,6822.47,1683.36,2575.08,-1,0,0,0,-0.00355871886120995,0,0,0,0,0,-60.5599999999995,-2.02000000000021,-59.9300000000003 +"default:fresh_default","bcfishpass:fresh","PCEA","BT","any",0,176,176,134,151,161,1,0.761363636363636,0.857954545454545,0.914772727272727,0.761363636363636,0.914772727272727,7091.82,921.92,1489.72,176,176,135,163,163,1,0.767045454545455,0.926136363636364,0.926136363636364,0.767045454545455,0.926136363636364,5002.96,925.72,2023.48,0,1,12,2,0,0.00568181818181823,0.0681818181818182,0.0113636363636364,0.00568181818181823,0.0113636363636364,-2088.86,3.80000000000007,533.76 +"default:fresh_default","bcfishpass:fresh","PINE","BT","any",0,249,249,225,240,240,1,0.903614457831325,0.963855421686747,0.963855421686747,0.903614457831325,0.963855421686747,5539.06,1645.08,2409.65,249,249,225,241,241,1,0.903614457831325,0.967871485943775,0.967871485943775,0.903614457831325,0.967871485943775,5425.97,1643.51,2376.18,0,0,1,1,0,0,0.00401606425702816,0.00401606425702816,0,0.00401606425702816,-113.09,-1.56999999999994,-33.4700000000003 +"default:fresh_default","bcfishpass:fresh","SALR","BT","any",0,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","SETN","BT","any",0,180,177,115,143,150,0.983333333333333,0.638888888888889,0.794444444444444,0.833333333333333,0.638888888888889,0.833333333333333,3258.86,851.7,1239.78,180,175,115,151,151,0.972222222222222,0.638888888888889,0.838888888888889,0.838888888888889,0.638888888888889,0.838888888888889,2844.64,816.05,1339.7,-2,0,8,1,-0.0111111111111111,0,0.0444444444444445,0.00555555555555554,0,0.00555555555555554,-414.22,-35.6500000000001,99.9200000000001 +"default:fresh_default","bcfishpass:fresh","TABR","BT","any",0,10,10,4,4,4,1,0.4,0.4,0.4,0.4,0.4,3402.26,678.31,1061,10,10,4,4,4,1,0.4,0.4,0.4,0.4,0.4,3305.18,677.05,1035.42,0,0,0,0,0,0,0,0,0,0,-97.0800000000004,-1.25999999999999,-25.5799999999999 +"default:fresh_default","bcfishpass:fresh","TOOD","BT","any",0,36,36,31,34,34,1,0.861111111111111,0.944444444444444,0.944444444444444,0.861111111111111,0.944444444444444,4697.77,1131.97,1815.93,36,36,31,34,34,1,0.861111111111111,0.944444444444444,0.944444444444444,0.861111111111111,0.944444444444444,4466.1,1118.51,1850.91,0,0,0,0,0,0,0,0,0,0,-231.67,-13.46,34.98 +"default:fresh_default","bcfishpass:fresh","TWAC","BT","any",0,2,2,2,2,2,1,1,1,1,1,1,1060.41,227.23,402.55,2,2,2,2,2,1,1,1,1,1,1,1002.12,226.3,393.93,0,0,0,0,0,0,0,0,0,0,-58.2900000000001,-0.929999999999978,-8.62 +"default:fresh_default","bcfishpass:fresh","UFRA","BT","any",0,87,87,44,58,58,1,0.505747126436782,0.666666666666667,0.666666666666667,0.505747126436782,0.666666666666667,2752.86,948.12,1217.11,87,87,45,59,59,1,0.517241379310345,0.67816091954023,0.67816091954023,0.517241379310345,0.67816091954023,2107.1,952.9,1239.84,0,1,1,1,0,0.0114942528735632,0.0114942528735632,0.0114942528735632,0.0114942528735632,0.0114942528735632,-645.76,4.77999999999997,22.73 +"default:fresh_default","bcfishpass:fresh","UNRS","BT","any",0,2,2,0,2,2,1,0,1,1,0,1,7487.48,645.96,1280.54,2,2,0,2,2,1,0,1,1,0,1,7431.77,644.82,1864.53,0,0,0,0,0,0,0,0,0,0,-55.7099999999991,-1.13999999999999,583.99 +"default:fresh_default","bcfishpass:fresh","UOMI","BT","any",0,82,82,42,50,51,1,0.51219512195122,0.609756097560976,0.621951219512195,0.51219512195122,0.621951219512195,3764.77,911.83,1451.62,82,82,42,54,54,1,0.51219512195122,0.658536585365854,0.658536585365854,0.51219512195122,0.658536585365854,3703.16,907.88,1459.1,0,0,4,3,0,0,0.0487804878048781,0.0365853658536586,0,0.0365853658536586,-61.6100000000001,-3.95000000000005,7.48000000000002 +"default:fresh_default","bcfishpass:fresh","UPCE","BT","any",0,153,152,138,138,138,0.993464052287582,0.901960784313726,0.901960784313726,0.901960784313726,0.901960784313726,0.901960784313726,5689.87,1682.32,2340.3,153,152,138,139,139,0.993464052287582,0.901960784313726,0.908496732026144,0.908496732026144,0.901960784313726,0.908496732026144,5261.16,1657.29,2320.94,0,0,1,1,0,0,0.00653594771241828,0.00653594771241828,0,0.00653594771241828,-428.71,-25.03,-19.3600000000001 +"default:fresh_default","bcfishpass:fresh","USKE","BT","any",0,32,32,28,31,31,1,0.875,0.96875,0.96875,0.875,0.96875,2969.07,739.68,1264.94,32,32,28,31,31,1,0.875,0.96875,0.96875,0.875,0.96875,3451.92,878.03,1438.52,0,0,0,0,0,0,0,0,0,0,482.85,138.35,173.58 +"default:fresh_default","bcfishpass:fresh","WILL","BT","any",0,54,54,39,51,51,1,0.722222222222222,0.944444444444444,0.944444444444444,0.722222222222222,0.944444444444444,4562.41,1055.35,1720.76,54,54,39,50,50,1,0.722222222222222,0.925925925925926,0.925925925925926,0.722222222222222,0.925925925925926,4515.45,1052.18,1690.35,0,0,-1,-1,0,0,-0.0185185185185185,-0.0185185185185185,0,-0.0185185185185185,-46.96,-3.16999999999985,-30.4100000000001 +"default:fresh_default","bcfishpass:fresh","ZYMO","BT","any",0,280,276,129,188,196,0.985714285714286,0.460714285714286,0.671428571428571,0.7,0.460714285714286,0.7,2058.68,594.73,897.89,280,244,122,186,186,0.871428571428571,0.435714285714286,0.664285714285714,0.664285714285714,0.435714285714286,0.664285714285714,1840.06,575.42,863.2,-32,-7,-2,-10,-0.114285714285714,-0.025,-0.00714285714285712,-0.0357142857142857,-0.025,-0.0357142857142857,-218.62,-19.3100000000001,-34.6899999999999 +"default:fresh_default","bcfishpass:fresh","BBAR","BT","rear",0,0,0,0,0,0,,,,,,,1761.57,329.41,560.67,0,0,0,0,0,,,,,,,1262.45,296.02,478.21,0,0,0,0,,,,,,,-499.12,-33.39,-82.46 +"default:fresh_default","bcfishpass:fresh","BULK","BT","rear",0,255,252,92,157,157,0.988235294117647,0.36078431372549,0.615686274509804,0.615686274509804,0.36078431372549,0.615686274509804,7713.98,1852.11,3012.7,255,232,83,150,150,0.909803921568627,0.325490196078431,0.588235294117647,0.588235294117647,0.325490196078431,0.588235294117647,7676.5,1866.31,3021.51,-20,-9,-7,-7,-0.0784313725490197,-0.0352941176470588,-0.0274509803921569,-0.0274509803921569,-0.0352941176470588,-0.0274509803921569,-37.4799999999996,14.2,8.8100000000004 +"default:fresh_default","bcfishpass:fresh","CARP","BT","rear",0,0,0,0,0,0,,,,,,,4420.57,502.37,1026.27,0,0,0,0,0,,,,,,,4296.5,497.07,1072.63,0,0,0,0,,,,,,,-124.07,-5.30000000000001,46.3600000000001 +"default:fresh_default","bcfishpass:fresh","CHES","BT","rear",0,0,0,0,0,0,,,,,,,2904.74,376.85,796.72,0,0,0,0,0,,,,,,,901.21,145.45,336.47,0,0,0,0,,,,,,,-2003.53,-231.4,-460.25 +"default:fresh_default","bcfishpass:fresh","CHWK","BT","rear",0,5,5,4,4,4,1,0.8,0.8,0.8,0.8,0.8,793.94,310.02,353.48,5,5,4,4,4,1,0.8,0.8,0.8,0.8,0.8,822.24,316.56,418.39,0,0,0,0,0,0,0,0,0,0,28.3,6.54000000000002,64.91 +"default:fresh_default","bcfishpass:fresh","COTR","BT","rear",0,0,0,0,0,0,,,,,,,6856.99,1480.88,2433.36,0,0,0,0,0,,,,,,,6878.95,1490.06,2340.71,0,0,0,0,,,,,,,21.96,9.17999999999984,-92.6500000000001 +"default:fresh_default","bcfishpass:fresh","CRKD","BT","rear",0,0,0,0,0,0,,,,,,,5115.69,695.8,1448.76,0,0,0,0,0,,,,,,,5051.55,695.63,1448.44,0,0,0,0,,,,,,,-64.1399999999994,-0.169999999999959,-0.319999999999936 +"default:fresh_default","bcfishpass:fresh","DOGC","BT","rear",0,0,0,0,0,0,,,,,,,1260.46,286.17,502.72,0,0,0,0,0,,,,,,,1251.04,288.83,481.5,0,0,0,0,,,,,,,-9.42000000000007,2.65999999999997,-21.22 +"default:fresh_default","bcfishpass:fresh","FINA","BT","rear",0,0,0,0,0,0,,,,,,,7889.87,1325.37,2218.78,0,0,0,0,0,,,,,,,6084.04,1277.62,2845.63,0,0,0,0,,,,,,,-1805.83,-47.75,626.85 +"default:fresh_default","bcfishpass:fresh","FINL","BT","rear",0,0,0,0,0,0,,,,,,,4515.86,1365.64,2107.58,0,0,0,0,0,,,,,,,4480.99,1365.64,2085.7,0,0,0,0,,,,,,,-34.8699999999999,0,-21.8800000000001 +"default:fresh_default","bcfishpass:fresh","FIRE","BT","rear",0,66,66,57,62,62,1,0.863636363636364,0.93939393939394,0.93939393939394,0.863636363636364,0.93939393939394,6663.44,1012.79,1911.07,66,66,57,62,62,1,0.863636363636364,0.93939393939394,0.93939393939394,0.863636363636364,0.93939393939394,6589.52,1012.26,2016.75,0,0,0,0,0,0,0,0,0,0,-73.9199999999992,-0.529999999999973,105.68 +"default:fresh_default","bcfishpass:fresh","FOXR","BT","rear",0,0,0,0,0,0,,,,,,,3665.56,928.18,1525.02,0,0,0,0,0,,,,,,,3587.54,922.1,1511.59,0,0,0,0,,,,,,,-78.02,-6.07999999999993,-13.4300000000001 +"default:fresh_default","bcfishpass:fresh","FRAN","BT","rear",0,90,90,41,62,62,1,0.455555555555556,0.688888888888889,0.688888888888889,0.455555555555556,0.688888888888889,9078.53,1120.86,2355.24,90,88,40,60,60,0.977777777777778,0.444444444444444,0.666666666666667,0.666666666666667,0.444444444444444,0.666666666666667,9265.93,1150.92,2834.02,-2,-1,-2,-2,-0.0222222222222223,-0.0111111111111111,-0.0222222222222223,-0.0222222222222223,-0.0111111111111111,-0.0222222222222223,187.4,30.0600000000002,478.78 +"default:fresh_default","bcfishpass:fresh","FRCN","BT","rear",0,5,5,2,4,4,1,0.4,0.8,0.8,0.4,0.8,1504.38,663.33,889.13,5,5,2,4,4,1,0.4,0.8,0.8,0.4,0.8,1502.48,691.1,964.06,0,0,0,0,0,0,0,0,0,0,-1.90000000000009,27.77,74.93 +"default:fresh_default","bcfishpass:fresh","HARR","BT","rear",0,7,7,3,6,6,1,0.428571428571429,0.857142857142857,0.857142857142857,0.428571428571429,0.857142857142857,1619.34,470.27,588.62,7,7,3,6,6,1,0.428571428571429,0.857142857142857,0.857142857142857,0.428571428571429,0.857142857142857,1561.45,468.9,827.82,0,0,0,0,0,0,0,0,0,0,-57.8899999999999,-1.37,239.2 +"default:fresh_default","bcfishpass:fresh","INGR","BT","rear",0,0,0,0,0,0,,,,,,,3925.58,1111.41,1736.58,0,0,0,0,0,,,,,,,3907.56,1111.41,1783.68,0,0,0,0,,,,,,,-18.02,0,47.1000000000001 +"default:fresh_default","bcfishpass:fresh","KISP","BT","rear",0,56,53,27,37,37,0.946428571428571,0.482142857142857,0.660714285714286,0.660714285714286,0.482142857142857,0.660714285714286,4529.14,1258.71,1894.95,56,51,26,37,37,0.910714285714286,0.464285714285714,0.660714285714286,0.660714285714286,0.464285714285714,0.660714285714286,4475.39,1261.15,1962.71,-2,-1,0,0,-0.0357142857142857,-0.0178571428571428,0,0,-0.0178571428571428,0,-53.75,2.44000000000005,67.76 +"default:fresh_default","bcfishpass:fresh","KLUM","BT","rear",0,141,137,66,95,96,0.971631205673759,0.468085106382979,0.673758865248227,0.680851063829787,0.468085106382979,0.680851063829787,2173.93,929.96,1229.04,141,121,61,90,90,0.858156028368794,0.432624113475177,0.638297872340426,0.638297872340426,0.432624113475177,0.638297872340426,1930.45,894.45,1189.16,-16,-5,-5,-6,-0.113475177304964,-0.0354609929078014,-0.0354609929078014,-0.0425531914893617,-0.0354609929078014,-0.0425531914893617,-243.48,-35.51,-39.8799999999999 +"default:fresh_default","bcfishpass:fresh","LBTN","BT","rear",0,0,0,0,0,0,,,,,,,9061.71,2027.4,2961.53,0,0,0,0,0,,,,,,,8647.79,2026.94,2189.51,0,0,0,0,,,,,,,-413.919999999998,-0.460000000000036,-772.02 +"default:fresh_default","bcfishpass:fresh","LCHL","BT","rear",0,0,0,0,0,0,,,,,,,5533.57,908.41,1581.55,0,0,0,0,0,,,,,,,5236.61,896.14,1550.64,0,0,0,0,,,,,,,-296.96,-12.27,-30.9099999999999 +"default:fresh_default","bcfishpass:fresh","LFRA","BT","rear",0,2,2,2,2,2,1,1,1,1,1,1,3569.06,1241.71,1516.52,2,2,2,2,2,1,1,1,1,1,1,3415.8,1284.59,1805.62,0,0,0,0,0,0,0,0,0,0,-153.26,42.8799999999999,289.1 +"default:fresh_default","bcfishpass:fresh","LKEL","BT","rear",0,26,26,11,16,16,1,0.423076923076923,0.615384615384615,0.615384615384615,0.423076923076923,0.615384615384615,405.16,144.67,218.77,26,26,11,16,16,1,0.423076923076923,0.615384615384615,0.615384615384615,0.423076923076923,0.615384615384615,401.02,144.74,222.78,0,0,0,0,0,0,0,0,0,0,-4.14000000000004,0.0700000000000216,4.00999999999999 +"default:fresh_default","bcfishpass:fresh","LOMI","BT","rear",0,0,0,0,0,0,,,,,,,3639.43,1004.03,1513.07,0,0,0,0,0,,,,,,,3436.23,967.82,1517.42,0,0,0,0,,,,,,,-203.2,-36.2099999999999,4.35000000000014 +"default:fresh_default","bcfishpass:fresh","LPCE","BT","rear",0,0,0,0,0,0,,,,,,,3571.54,1000.37,1386.86,0,0,0,0,0,,,,,,,3130.17,918.71,1261.4,0,0,0,0,,,,,,,-441.37,-81.66,-125.46 +"default:fresh_default","bcfishpass:fresh","LSAL","BT","rear",0,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","LSKE","BT","rear",0,111,109,69,85,85,0.981981981981982,0.621621621621622,0.765765765765766,0.765765765765766,0.621621621621622,0.765765765765766,3075.25,1326.45,1709.47,111,102,66,81,81,0.918918918918919,0.594594594594595,0.72972972972973,0.72972972972973,0.594594594594595,0.72972972972973,2884.31,1315.64,1751.5,-7,-3,-4,-4,-0.063063063063063,-0.027027027027027,-0.036036036036036,-0.036036036036036,-0.027027027027027,-0.036036036036036,-190.94,-10.8099999999999,42.03 +"default:fresh_default","bcfishpass:fresh","MESI","BT","rear",0,0,0,0,0,0,,,,,,,2825.32,691.09,1077.07,0,0,0,0,0,,,,,,,2767.09,685.99,1126.99,0,0,0,0,,,,,,,-58.23,-5.10000000000002,49.9200000000001 +"default:fresh_default","bcfishpass:fresh","MFRA","BT","rear",0,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","MORK","BT","rear",0,0,0,0,0,0,,,,,,,7202.59,2148.8,3077.39,0,0,0,0,0,,,,,,,8075.86,2434.23,3397.59,0,0,0,0,,,,,,,873.27,285.43,320.2 +"default:fresh_default","bcfishpass:fresh","MORR","BT","rear",0,106,106,28,63,65,1,0.264150943396226,0.594339622641509,0.613207547169811,0.264150943396226,0.613207547169811,4865.96,960.8,1685.2,106,102,27,63,63,0.962264150943396,0.254716981132075,0.594339622641509,0.594339622641509,0.254716981132075,0.594339622641509,4765.64,952.61,1829.89,-4,-1,0,-2,-0.0377358490566038,-0.00943396226415094,0,-0.0188679245283019,-0.00943396226415094,-0.0188679245283019,-100.32,-8.18999999999994,144.69 +"default:fresh_default","bcfishpass:fresh","MSKE","BT","rear",0,5,4,0,0,0,0.8,0,0,0,0,0,2691.58,922.19,1383.97,5,3,0,0,0,0.6,0,0,0,0,0,2667.19,921.62,1383.52,-1,0,0,0,-0.2,0,0,0,0,0,-24.3899999999999,-0.57000000000005,-0.450000000000045 +"default:fresh_default","bcfishpass:fresh","NARC","BT","rear",0,0,0,0,0,0,,,,,,,4336.98,873.49,1703.68,0,0,0,0,0,,,,,,,2994.54,633.18,1162.09,0,0,0,0,,,,,,,-1342.44,-240.31,-541.59 +"default:fresh_default","bcfishpass:fresh","NATR","BT","rear",0,0,0,0,0,0,,,,,,,9819.51,1803.66,3496.13,0,0,0,0,0,,,,,,,8011.09,1516.19,3071.31,0,0,0,0,,,,,,,-1808.42,-287.47,-424.82 +"default:fresh_default","bcfishpass:fresh","NECR","BT","rear",0,0,0,0,0,0,,,,,,,6329.74,991.14,1943.82,0,0,0,0,0,,,,,,,6156.77,989.82,1875.61,0,0,0,0,,,,,,,-172.969999999999,-1.31999999999994,-68.21 +"default:fresh_default","bcfishpass:fresh","OSPK","BT","rear",0,0,0,0,0,0,,,,,,,1882.44,594.62,877.22,0,0,0,0,0,,,,,,,1881.19,594.62,866.44,0,0,0,0,,,,,,,-1.25,0,-10.78 +"default:fresh_default","bcfishpass:fresh","PARA","BT","rear",0,0,0,0,0,0,,,,,,,4400.24,720.29,1330.46,0,0,0,0,0,,,,,,,4256.87,718.23,1769.82,0,0,0,0,,,,,,,-143.37,-2.05999999999995,439.36 +"default:fresh_default","bcfishpass:fresh","PARS","BT","rear",0,0,0,0,0,0,,,,,,,6883.03,1685.38,2635.01,0,0,0,0,0,,,,,,,6822.47,1683.36,2575.08,0,0,0,0,,,,,,,-60.5599999999995,-2.02000000000021,-59.9300000000003 +"default:fresh_default","bcfishpass:fresh","PCEA","BT","rear",0,0,0,0,0,0,,,,,,,7091.82,921.92,1489.72,0,0,0,0,0,,,,,,,5002.96,925.72,2023.48,0,0,0,0,,,,,,,-2088.86,3.80000000000007,533.76 +"default:fresh_default","bcfishpass:fresh","PINE","BT","rear",0,0,0,0,0,0,,,,,,,5539.06,1645.08,2409.65,0,0,0,0,0,,,,,,,5425.97,1643.51,2376.18,0,0,0,0,,,,,,,-113.09,-1.56999999999994,-33.4700000000003 +"default:fresh_default","bcfishpass:fresh","SALR","BT","rear",0,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","SETN","BT","rear",0,1,1,1,1,1,1,1,1,1,1,1,3258.86,851.7,1239.78,1,1,1,1,1,1,1,1,1,1,1,2844.64,816.05,1339.7,0,0,0,0,0,0,0,0,0,0,-414.22,-35.6500000000001,99.9200000000001 +"default:fresh_default","bcfishpass:fresh","TABR","BT","rear",0,0,0,0,0,0,,,,,,,3402.26,678.31,1061,0,0,0,0,0,,,,,,,3305.18,677.05,1035.42,0,0,0,0,,,,,,,-97.0800000000004,-1.25999999999999,-25.5799999999999 +"default:fresh_default","bcfishpass:fresh","TOOD","BT","rear",0,0,0,0,0,0,,,,,,,4697.77,1131.97,1815.93,0,0,0,0,0,,,,,,,4466.1,1118.51,1850.91,0,0,0,0,,,,,,,-231.67,-13.46,34.98 +"default:fresh_default","bcfishpass:fresh","TWAC","BT","rear",0,1,1,1,1,1,1,1,1,1,1,1,1060.41,227.23,402.55,1,1,1,1,1,1,1,1,1,1,1,1002.12,226.3,393.93,0,0,0,0,0,0,0,0,0,0,-58.2900000000001,-0.929999999999978,-8.62 +"default:fresh_default","bcfishpass:fresh","UFRA","BT","rear",0,0,0,0,0,0,,,,,,,2752.86,948.12,1217.11,0,0,0,0,0,,,,,,,2107.1,952.9,1239.84,0,0,0,0,,,,,,,-645.76,4.77999999999997,22.73 +"default:fresh_default","bcfishpass:fresh","UNRS","BT","rear",0,0,0,0,0,0,,,,,,,7487.48,645.96,1280.54,0,0,0,0,0,,,,,,,7431.77,644.82,1864.53,0,0,0,0,,,,,,,-55.7099999999991,-1.13999999999999,583.99 +"default:fresh_default","bcfishpass:fresh","UOMI","BT","rear",0,22,22,6,8,9,1,0.272727272727273,0.363636363636364,0.409090909090909,0.272727272727273,0.409090909090909,3764.77,911.83,1451.62,22,22,6,10,10,1,0.272727272727273,0.454545454545455,0.454545454545455,0.272727272727273,0.454545454545455,3703.16,907.88,1459.1,0,0,2,1,0,0,0.0909090909090909,0.0454545454545454,0,0.0454545454545454,-61.6100000000001,-3.95000000000005,7.48000000000002 +"default:fresh_default","bcfishpass:fresh","UPCE","BT","rear",0,0,0,0,0,0,,,,,,,5689.87,1682.32,2340.3,0,0,0,0,0,,,,,,,5261.16,1657.29,2320.94,0,0,0,0,,,,,,,-428.71,-25.03,-19.3600000000001 +"default:fresh_default","bcfishpass:fresh","USKE","BT","rear",0,1,1,1,1,1,1,1,1,1,1,1,2969.07,739.68,1264.94,1,1,1,1,1,1,1,1,1,1,1,3451.92,878.03,1438.52,0,0,0,0,0,0,0,0,0,0,482.85,138.35,173.58 +"default:fresh_default","bcfishpass:fresh","WILL","BT","rear",0,0,0,0,0,0,,,,,,,4562.41,1055.35,1720.76,0,0,0,0,0,,,,,,,4515.45,1052.18,1690.35,0,0,0,0,,,,,,,-46.96,-3.16999999999985,-30.4100000000001 +"default:fresh_default","bcfishpass:fresh","ZYMO","BT","rear",0,147,147,53,86,88,1,0.360544217687075,0.585034013605442,0.598639455782313,0.360544217687075,0.598639455782313,2058.68,594.73,897.89,147,123,47,78,78,0.836734693877551,0.319727891156463,0.530612244897959,0.530612244897959,0.319727891156463,0.530612244897959,1840.06,575.42,863.2,-24,-6,-8,-10,-0.163265306122449,-0.0408163265306122,-0.0544217687074829,-0.0680272108843537,-0.0408163265306122,-0.0680272108843537,-218.62,-19.3100000000001,-34.6899999999999 +"default:fresh_default","bcfishpass:fresh","BBAR","BT","spawn",0,0,0,0,0,0,,,,,,,1761.57,329.41,560.67,0,0,0,0,0,,,,,,,1262.45,296.02,478.21,0,0,0,0,,,,,,,-499.12,-33.39,-82.46 +"default:fresh_default","bcfishpass:fresh","BULK","BT","spawn",0,12,12,4,9,9,1,0.333333333333333,0.75,0.75,0.333333333333333,0.75,7713.98,1852.11,3012.7,12,11,4,9,9,0.916666666666667,0.333333333333333,0.75,0.75,0.333333333333333,0.75,7676.5,1866.31,3021.51,-1,0,0,0,-0.0833333333333334,0,0,0,0,0,-37.4799999999996,14.2,8.8100000000004 +"default:fresh_default","bcfishpass:fresh","CARP","BT","spawn",0,0,0,0,0,0,,,,,,,4420.57,502.37,1026.27,0,0,0,0,0,,,,,,,4296.5,497.07,1072.63,0,0,0,0,,,,,,,-124.07,-5.30000000000001,46.3600000000001 +"default:fresh_default","bcfishpass:fresh","CHES","BT","spawn",0,0,0,0,0,0,,,,,,,2904.74,376.85,796.72,0,0,0,0,0,,,,,,,901.21,145.45,336.47,0,0,0,0,,,,,,,-2003.53,-231.4,-460.25 +"default:fresh_default","bcfishpass:fresh","CHWK","BT","spawn",0,5,5,4,4,5,1,0.8,0.8,1,0.8,1,793.94,310.02,353.48,5,5,4,5,5,1,0.8,1,1,0.8,1,822.24,316.56,418.39,0,0,1,0,0,0,0.2,0,0,0,28.3,6.54000000000002,64.91 +"default:fresh_default","bcfishpass:fresh","COTR","BT","spawn",0,0,0,0,0,0,,,,,,,6856.99,1480.88,2433.36,0,0,0,0,0,,,,,,,6878.95,1490.06,2340.71,0,0,0,0,,,,,,,21.96,9.17999999999984,-92.6500000000001 +"default:fresh_default","bcfishpass:fresh","CRKD","BT","spawn",0,0,0,0,0,0,,,,,,,5115.69,695.8,1448.76,0,0,0,0,0,,,,,,,5051.55,695.63,1448.44,0,0,0,0,,,,,,,-64.1399999999994,-0.169999999999959,-0.319999999999936 +"default:fresh_default","bcfishpass:fresh","DOGC","BT","spawn",0,0,0,0,0,0,,,,,,,1260.46,286.17,502.72,0,0,0,0,0,,,,,,,1251.04,288.83,481.5,0,0,0,0,,,,,,,-9.42000000000007,2.65999999999997,-21.22 +"default:fresh_default","bcfishpass:fresh","FINA","BT","spawn",0,0,0,0,0,0,,,,,,,7889.87,1325.37,2218.78,0,0,0,0,0,,,,,,,6084.04,1277.62,2845.63,0,0,0,0,,,,,,,-1805.83,-47.75,626.85 +"default:fresh_default","bcfishpass:fresh","FINL","BT","spawn",0,0,0,0,0,0,,,,,,,4515.86,1365.64,2107.58,0,0,0,0,0,,,,,,,4480.99,1365.64,2085.7,0,0,0,0,,,,,,,-34.8699999999999,0,-21.8800000000001 +"default:fresh_default","bcfishpass:fresh","FIRE","BT","spawn",0,4,4,1,3,3,1,0.25,0.75,0.75,0.25,0.75,6663.44,1012.79,1911.07,4,4,1,2,2,1,0.25,0.5,0.5,0.25,0.5,6589.52,1012.26,2016.75,0,0,-1,-1,0,0,-0.25,-0.25,0,-0.25,-73.9199999999992,-0.529999999999973,105.68 +"default:fresh_default","bcfishpass:fresh","FOXR","BT","spawn",0,0,0,0,0,0,,,,,,,3665.56,928.18,1525.02,0,0,0,0,0,,,,,,,3587.54,922.1,1511.59,0,0,0,0,,,,,,,-78.02,-6.07999999999993,-13.4300000000001 +"default:fresh_default","bcfishpass:fresh","FRAN","BT","spawn",0,1,1,0,1,1,1,0,1,1,0,1,9078.53,1120.86,2355.24,1,1,0,1,1,1,0,1,1,0,1,9265.93,1150.92,2834.02,0,0,0,0,0,0,0,0,0,0,187.4,30.0600000000002,478.78 +"default:fresh_default","bcfishpass:fresh","FRCN","BT","spawn",0,1,1,1,1,1,1,1,1,1,1,1,1504.38,663.33,889.13,1,1,1,1,1,1,1,1,1,1,1,1502.48,691.1,964.06,0,0,0,0,0,0,0,0,0,0,-1.90000000000009,27.77,74.93 +"default:fresh_default","bcfishpass:fresh","HARR","BT","spawn",0,0,0,0,0,0,,,,,,,1619.34,470.27,588.62,0,0,0,0,0,,,,,,,1561.45,468.9,827.82,0,0,0,0,,,,,,,-57.8899999999999,-1.37,239.2 +"default:fresh_default","bcfishpass:fresh","INGR","BT","spawn",0,0,0,0,0,0,,,,,,,3925.58,1111.41,1736.58,0,0,0,0,0,,,,,,,3907.56,1111.41,1783.68,0,0,0,0,,,,,,,-18.02,0,47.1000000000001 +"default:fresh_default","bcfishpass:fresh","KISP","BT","spawn",0,5,5,2,3,3,1,0.4,0.6,0.6,0.4,0.6,4529.14,1258.71,1894.95,5,5,2,3,3,1,0.4,0.6,0.6,0.4,0.6,4475.39,1261.15,1962.71,0,0,0,0,0,0,0,0,0,0,-53.75,2.44000000000005,67.76 +"default:fresh_default","bcfishpass:fresh","KLUM","BT","spawn",0,0,0,0,0,0,,,,,,,2173.93,929.96,1229.04,0,0,0,0,0,,,,,,,1930.45,894.45,1189.16,0,0,0,0,,,,,,,-243.48,-35.51,-39.8799999999999 +"default:fresh_default","bcfishpass:fresh","LBTN","BT","spawn",0,0,0,0,0,0,,,,,,,9061.71,2027.4,2961.53,0,0,0,0,0,,,,,,,8647.79,2026.94,2189.51,0,0,0,0,,,,,,,-413.919999999998,-0.460000000000036,-772.02 +"default:fresh_default","bcfishpass:fresh","LCHL","BT","spawn",0,0,0,0,0,0,,,,,,,5533.57,908.41,1581.55,0,0,0,0,0,,,,,,,5236.61,896.14,1550.64,0,0,0,0,,,,,,,-296.96,-12.27,-30.9099999999999 +"default:fresh_default","bcfishpass:fresh","LFRA","BT","spawn",0,1,1,1,1,1,1,1,1,1,1,1,3569.06,1241.71,1516.52,1,1,1,1,1,1,1,1,1,1,1,3415.8,1284.59,1805.62,0,0,0,0,0,0,0,0,0,0,-153.26,42.8799999999999,289.1 +"default:fresh_default","bcfishpass:fresh","LKEL","BT","spawn",0,0,0,0,0,0,,,,,,,405.16,144.67,218.77,0,0,0,0,0,,,,,,,401.02,144.74,222.78,0,0,0,0,,,,,,,-4.14000000000004,0.0700000000000216,4.00999999999999 +"default:fresh_default","bcfishpass:fresh","LOMI","BT","spawn",0,0,0,0,0,0,,,,,,,3639.43,1004.03,1513.07,0,0,0,0,0,,,,,,,3436.23,967.82,1517.42,0,0,0,0,,,,,,,-203.2,-36.2099999999999,4.35000000000014 +"default:fresh_default","bcfishpass:fresh","LPCE","BT","spawn",0,0,0,0,0,0,,,,,,,3571.54,1000.37,1386.86,0,0,0,0,0,,,,,,,3130.17,918.71,1261.4,0,0,0,0,,,,,,,-441.37,-81.66,-125.46 +"default:fresh_default","bcfishpass:fresh","LSAL","BT","spawn",0,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","LSKE","BT","spawn",0,3,3,2,2,2,1,0.666666666666667,0.666666666666667,0.666666666666667,0.666666666666667,0.666666666666667,3075.25,1326.45,1709.47,3,3,2,2,2,1,0.666666666666667,0.666666666666667,0.666666666666667,0.666666666666667,0.666666666666667,2884.31,1315.64,1751.5,0,0,0,0,0,0,0,0,0,0,-190.94,-10.8099999999999,42.03 +"default:fresh_default","bcfishpass:fresh","MESI","BT","spawn",0,0,0,0,0,0,,,,,,,2825.32,691.09,1077.07,0,0,0,0,0,,,,,,,2767.09,685.99,1126.99,0,0,0,0,,,,,,,-58.23,-5.10000000000002,49.9200000000001 +"default:fresh_default","bcfishpass:fresh","MFRA","BT","spawn",0,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","MORK","BT","spawn",0,0,0,0,0,0,,,,,,,7202.59,2148.8,3077.39,0,0,0,0,0,,,,,,,8075.86,2434.23,3397.59,0,0,0,0,,,,,,,873.27,285.43,320.2 +"default:fresh_default","bcfishpass:fresh","MORR","BT","spawn",0,23,23,7,15,15,1,0.304347826086957,0.652173913043478,0.652173913043478,0.304347826086957,0.652173913043478,4865.96,960.8,1685.2,23,23,7,15,15,1,0.304347826086957,0.652173913043478,0.652173913043478,0.304347826086957,0.652173913043478,4765.64,952.61,1829.89,0,0,0,0,0,0,0,0,0,0,-100.32,-8.18999999999994,144.69 +"default:fresh_default","bcfishpass:fresh","MSKE","BT","spawn",0,4,4,2,2,2,1,0.5,0.5,0.5,0.5,0.5,2691.58,922.19,1383.97,4,3,2,2,2,0.75,0.5,0.5,0.5,0.5,0.5,2667.19,921.62,1383.52,-1,0,0,0,-0.25,0,0,0,0,0,-24.3899999999999,-0.57000000000005,-0.450000000000045 +"default:fresh_default","bcfishpass:fresh","NARC","BT","spawn",0,0,0,0,0,0,,,,,,,4336.98,873.49,1703.68,0,0,0,0,0,,,,,,,2994.54,633.18,1162.09,0,0,0,0,,,,,,,-1342.44,-240.31,-541.59 +"default:fresh_default","bcfishpass:fresh","NATR","BT","spawn",0,0,0,0,0,0,,,,,,,9819.51,1803.66,3496.13,0,0,0,0,0,,,,,,,8011.09,1516.19,3071.31,0,0,0,0,,,,,,,-1808.42,-287.47,-424.82 +"default:fresh_default","bcfishpass:fresh","NECR","BT","spawn",0,0,0,0,0,0,,,,,,,6329.74,991.14,1943.82,0,0,0,0,0,,,,,,,6156.77,989.82,1875.61,0,0,0,0,,,,,,,-172.969999999999,-1.31999999999994,-68.21 +"default:fresh_default","bcfishpass:fresh","OSPK","BT","spawn",0,0,0,0,0,0,,,,,,,1882.44,594.62,877.22,0,0,0,0,0,,,,,,,1881.19,594.62,866.44,0,0,0,0,,,,,,,-1.25,0,-10.78 +"default:fresh_default","bcfishpass:fresh","PARA","BT","spawn",0,0,0,0,0,0,,,,,,,4400.24,720.29,1330.46,0,0,0,0,0,,,,,,,4256.87,718.23,1769.82,0,0,0,0,,,,,,,-143.37,-2.05999999999995,439.36 +"default:fresh_default","bcfishpass:fresh","PARS","BT","spawn",0,0,0,0,0,0,,,,,,,6883.03,1685.38,2635.01,0,0,0,0,0,,,,,,,6822.47,1683.36,2575.08,0,0,0,0,,,,,,,-60.5599999999995,-2.02000000000021,-59.9300000000003 +"default:fresh_default","bcfishpass:fresh","PCEA","BT","spawn",0,1,1,0,0,1,1,0,0,1,0,1,7091.82,921.92,1489.72,1,1,0,1,1,1,0,1,1,0,1,5002.96,925.72,2023.48,0,0,1,0,0,0,1,0,0,0,-2088.86,3.80000000000007,533.76 +"default:fresh_default","bcfishpass:fresh","PINE","BT","spawn",0,3,3,3,3,3,1,1,1,1,1,1,5539.06,1645.08,2409.65,3,3,3,3,3,1,1,1,1,1,1,5425.97,1643.51,2376.18,0,0,0,0,0,0,0,0,0,0,-113.09,-1.56999999999994,-33.4700000000003 +"default:fresh_default","bcfishpass:fresh","SALR","BT","spawn",0,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","SETN","BT","spawn",0,3,2,2,2,2,0.666666666666667,0.666666666666667,0.666666666666667,0.666666666666667,0.666666666666667,0.666666666666667,3258.86,851.7,1239.78,3,2,2,2,2,0.666666666666667,0.666666666666667,0.666666666666667,0.666666666666667,0.666666666666667,0.666666666666667,2844.64,816.05,1339.7,0,0,0,0,0,0,0,0,0,0,-414.22,-35.6500000000001,99.9200000000001 +"default:fresh_default","bcfishpass:fresh","TABR","BT","spawn",0,0,0,0,0,0,,,,,,,3402.26,678.31,1061,0,0,0,0,0,,,,,,,3305.18,677.05,1035.42,0,0,0,0,,,,,,,-97.0800000000004,-1.25999999999999,-25.5799999999999 +"default:fresh_default","bcfishpass:fresh","TOOD","BT","spawn",0,0,0,0,0,0,,,,,,,4697.77,1131.97,1815.93,0,0,0,0,0,,,,,,,4466.1,1118.51,1850.91,0,0,0,0,,,,,,,-231.67,-13.46,34.98 +"default:fresh_default","bcfishpass:fresh","TWAC","BT","spawn",0,0,0,0,0,0,,,,,,,1060.41,227.23,402.55,0,0,0,0,0,,,,,,,1002.12,226.3,393.93,0,0,0,0,,,,,,,-58.2900000000001,-0.929999999999978,-8.62 +"default:fresh_default","bcfishpass:fresh","UFRA","BT","spawn",0,0,0,0,0,0,,,,,,,2752.86,948.12,1217.11,0,0,0,0,0,,,,,,,2107.1,952.9,1239.84,0,0,0,0,,,,,,,-645.76,4.77999999999997,22.73 +"default:fresh_default","bcfishpass:fresh","UNRS","BT","spawn",0,0,0,0,0,0,,,,,,,7487.48,645.96,1280.54,0,0,0,0,0,,,,,,,7431.77,644.82,1864.53,0,0,0,0,,,,,,,-55.7099999999991,-1.13999999999999,583.99 +"default:fresh_default","bcfishpass:fresh","UOMI","BT","spawn",0,0,0,0,0,0,,,,,,,3764.77,911.83,1451.62,0,0,0,0,0,,,,,,,3703.16,907.88,1459.1,0,0,0,0,,,,,,,-61.6100000000001,-3.95000000000005,7.48000000000002 +"default:fresh_default","bcfishpass:fresh","UPCE","BT","spawn",0,1,1,1,1,1,1,1,1,1,1,1,5689.87,1682.32,2340.3,1,1,1,1,1,1,1,1,1,1,1,5261.16,1657.29,2320.94,0,0,0,0,0,0,0,0,0,0,-428.71,-25.03,-19.3600000000001 +"default:fresh_default","bcfishpass:fresh","USKE","BT","spawn",0,0,0,0,0,0,,,,,,,2969.07,739.68,1264.94,0,0,0,0,0,,,,,,,3451.92,878.03,1438.52,0,0,0,0,,,,,,,482.85,138.35,173.58 +"default:fresh_default","bcfishpass:fresh","WILL","BT","spawn",0,0,0,0,0,0,,,,,,,4562.41,1055.35,1720.76,0,0,0,0,0,,,,,,,4515.45,1052.18,1690.35,0,0,0,0,,,,,,,-46.96,-3.16999999999985,-30.4100000000001 +"default:fresh_default","bcfishpass:fresh","ZYMO","BT","spawn",0,14,14,7,10,10,1,0.5,0.714285714285714,0.714285714285714,0.5,0.714285714285714,2058.68,594.73,897.89,14,12,7,9,9,0.857142857142857,0.5,0.642857142857143,0.642857142857143,0.5,0.642857142857143,1840.06,575.42,863.2,-2,0,-1,-1,-0.142857142857143,0,-0.0714285714285714,-0.0714285714285714,0,-0.0714285714285714,-218.62,-19.3100000000001,-34.6899999999999 +"default:fresh_default","bcfishpass:fresh","BBAR","CH","any",0,5,3,1,1,1,0.6,0.2,0.2,0.2,0.2,0.2,275.36,160.2,169.06,5,3,1,1,1,0.6,0.2,0.2,0.2,0.2,0.2,269.11,160.2,167.83,0,0,0,0,0,0,0,0,0,0,-6.25,0,-1.22999999999999 +"default:fresh_default","bcfishpass:fresh","BULK","CH","any",0,110,110,104,107,107,1,0.945454545454545,0.972727272727273,0.972727272727273,0.934782608695652,0.972727272727273,5178.19,1264.07,2038.12,110,110,102,107,107,1,0.927272727272727,0.972727272727273,0.972727272727273,0.934782608695652,0.972727272727273,5089.63,1260.25,1730.12,0,-2,0,0,0,-0.0181818181818182,0,0,0,0,-88.5599999999995,-3.81999999999994,-308 +"default:fresh_default","bcfishpass:fresh","CARP","CH","any",0,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","CHES","CH","any",0,87,85,80,81,82,0.977011494252874,0.919540229885057,0.931034482758621,0.942528735632184,0.883333333333333,0.942528735632184,780.54,88.26,258.88,87,85,80,81,81,0.977011494252874,0.919540229885057,0.931034482758621,0.931034482758621,0.883333333333333,0.931034482758621,750.66,88.26,149.77,0,0,0,-1,0,0,0,-0.0114942528735632,0,-0.0114942528735632,-29.88,0,-109.11 +"default:fresh_default","bcfishpass:fresh","CHWK","CH","any",0,21,21,15,14,17,1,0.714285714285714,0.666666666666667,0.80952380952381,0.68421052631579,0.80952380952381,698.92,257.8,310.79,21,19,12,12,12,0.904761904761905,0.571428571428571,0.571428571428571,0.571428571428571,0.578947368421053,0.571428571428571,662.37,253.93,301.07,-2,-3,-2,-5,-0.0952380952380952,-0.142857142857143,-0.0952380952380952,-0.238095238095238,-0.105263157894737,-0.238095238095238,-36.55,-3.87,-9.72000000000003 +"default:fresh_default","bcfishpass:fresh","COTR","CH","any",0,100,95,70,77,77,0.95,0.7,0.77,0.77,0.508196721311475,0.77,4143.01,702.76,1364.58,100,95,67,71,71,0.95,0.67,0.71,0.71,0.508196721311475,0.71,4119.15,694.8,1033.8,0,-3,-6,-6,0,-0.0299999999999999,-0.06,-0.06,0,-0.06,-23.8600000000006,-7.96000000000004,-330.78 +"default:fresh_default","bcfishpass:fresh","CRKD","CH","any",0,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","DOGC","CH","any",0,5,5,5,5,5,1,1,1,1,1,1,358.78,162,196.9,5,5,5,5,5,1,1,1,1,1,1,358.45,162,180.33,0,0,0,0,0,0,0,0,0,0,-0.329999999999984,0,-16.57 +"default:fresh_default","bcfishpass:fresh","FINA","CH","any",0,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","FINL","CH","any",0,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","FIRE","CH","any",0,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","FOXR","CH","any",0,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","FRAN","CH","any",0,23,23,21,20,21,1,0.91304347826087,0.869565217391304,0.91304347826087,0.833333333333333,0.91304347826087,7351.32,597.53,1631.89,23,23,17,17,17,1,0.739130434782609,0.739130434782609,0.739130434782609,0.833333333333333,0.739130434782609,7176.56,540.43,971.87,0,-4,-3,-4,0,-0.173913043478261,-0.130434782608696,-0.173913043478261,0,-0.173913043478261,-174.759999999999,-57.1,-660.02 +"default:fresh_default","bcfishpass:fresh","FRCN","CH","any",0,31,30,26,27,27,0.967741935483871,0.838709677419355,0.870967741935484,0.870967741935484,0.722222222222222,0.870967741935484,749.15,451.01,481.99,31,30,21,27,27,0.967741935483871,0.67741935483871,0.870967741935484,0.870967741935484,0.722222222222222,0.870967741935484,716.2,428.99,474.71,0,-5,0,0,0,-0.161290322580645,0,0,0,0,-32.9499999999999,-22.02,-7.28000000000003 +"default:fresh_default","bcfishpass:fresh","HARR","CH","any",0,118,116,110,109,111,0.983050847457627,0.932203389830508,0.923728813559322,0.940677966101695,0.927272727272727,0.940677966101695,1148.93,329.59,385.83,118,116,109,109,109,0.983050847457627,0.923728813559322,0.923728813559322,0.923728813559322,0.927272727272727,0.923728813559322,1126.73,327.72,377.22,0,-1,0,-2,0,-0.00847457627118642,0,-0.0169491525423729,0,-0.0169491525423729,-22.2,-1.86999999999995,-8.60999999999996 +"default:fresh_default","bcfishpass:fresh","INGR","CH","any",0,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","KISP","CH","any",0,89,89,82,76,79,1,0.921348314606742,0.853932584269663,0.887640449438202,0.865384615384615,0.887640449438202,2841.44,862.28,1178.83,89,89,75,76,76,1,0.842696629213483,0.853932584269663,0.853932584269663,0.865384615384615,0.853932584269663,2786.73,860.45,1050.59,0,-7,0,-3,0,-0.0786516853932585,0,-0.0337078651685393,0,-0.0337078651685393,-54.71,-1.82999999999993,-128.24 +"default:fresh_default","bcfishpass:fresh","KLUM","CH","any",0,104,99,87,88,90,0.951923076923077,0.836538461538462,0.846153846153846,0.865384615384615,0.776315789473684,0.865384615384615,1523.16,708.12,905.48,104,99,84,87,87,0.951923076923077,0.807692307692308,0.836538461538462,0.836538461538462,0.776315789473684,0.836538461538462,1481.08,707.93,830.68,0,-3,-1,-3,0,-0.0288461538461539,-0.00961538461538458,-0.0288461538461539,0,-0.0288461538461539,-42.0800000000002,-0.190000000000055,-74.8000000000001 +"default:fresh_default","bcfishpass:fresh","LBTN","CH","any",0,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","LCHL","CH","any",0,38,38,35,34,34,1,0.921052631578947,0.894736842105263,0.894736842105263,0.892857142857143,0.894736842105263,4358.83,468.47,1153.83,38,38,32,34,34,1,0.842105263157895,0.894736842105263,0.894736842105263,0.892857142857143,0.894736842105263,4159.73,464.81,826.81,0,-3,0,0,0,-0.0789473684210527,0,0,0,0,-199.1,-3.66000000000003,-327.02 +"default:fresh_default","bcfishpass:fresh","LFRA","CH","any",0,165,161,105,132,133,0.975757575757576,0.636363636363636,0.8,0.806060606060606,0.589041095890411,0.806060606060606,3074.38,826.28,1254.99,165,159,104,132,132,0.963636363636364,0.63030303030303,0.8,0.8,0.589041095890411,0.8,2754.05,820.43,1176.68,-2,-1,0,-1,-0.0121212121212121,-0.0060606060606061,0,-0.00606060606060599,0,-0.00606060606060599,-320.33,-5.85000000000002,-78.31 +"default:fresh_default","bcfishpass:fresh","LKEL","CH","any",0,14,14,12,11,12,1,0.857142857142857,0.785714285714286,0.857142857142857,0.777777777777778,0.857142857142857,332.18,106.7,162.87,14,14,10,11,11,1,0.714285714285714,0.785714285714286,0.785714285714286,0.777777777777778,0.785714285714286,328.21,106.49,123.85,0,-2,0,-1,0,-0.142857142857143,0,-0.0714285714285714,0,-0.0714285714285714,-3.97000000000003,-0.210000000000008,-39.02 +"default:fresh_default","bcfishpass:fresh","LOMI","CH","any",0,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","LPCE","CH","any",0,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","LSAL","CH","any",0,17,17,17,17,17,1,1,1,1,1,1,3029.07,317.62,1060.92,17,17,17,17,17,1,1,1,1,1,1,2968.08,312.6,617.6,0,0,0,0,0,0,0,0,0,0,-60.9900000000002,-5.01999999999998,-443.32 +"default:fresh_default","bcfishpass:fresh","LSKE","CH","any",0,122,119,106,106,106,0.975409836065574,0.868852459016393,0.868852459016393,0.868852459016393,0.804878048780488,0.868852459016393,2101.75,1052.46,1308.55,122,119,99,106,106,0.975409836065574,0.811475409836066,0.868852459016393,0.868852459016393,0.804878048780488,0.868852459016393,2086.32,1049.22,1167.34,0,-7,0,0,0,-0.0573770491803278,0,0,0,0,-15.4299999999998,-3.24000000000001,-141.21 +"default:fresh_default","bcfishpass:fresh","MESI","CH","any",0,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","MFRA","CH","any",0,2,1,0,0,0,0.5,0,0,0,0,0,277.46,100.9,121.94,2,1,0,0,0,0.5,0,0,0,0,0,231.06,96.92,104.06,0,0,0,0,0,0,0,0,0,0,-46.4,-3.98,-17.88 +"default:fresh_default","bcfishpass:fresh","MORK","CH","any",0,156,155,145,145,146,0.993589743589744,0.92948717948718,0.92948717948718,0.935897435897436,0.828125,0.935897435897436,5953.1,1577.65,2499.11,156,155,140,143,143,0.993589743589744,0.897435897435897,0.916666666666667,0.916666666666667,0.828125,0.916666666666667,5705.82,1556.47,2225.04,0,-5,-2,-3,0,-0.032051282051282,-0.0128205128205129,-0.0192307692307693,0,-0.0192307692307693,-247.280000000001,-21.1800000000001,-274.07 +"default:fresh_default","bcfishpass:fresh","MORR","CH","any",0,41,41,33,35,38,1,0.804878048780488,0.853658536585366,0.926829268292683,0.588235294117647,0.926829268292683,3341.35,646.28,1171.33,41,41,31,33,33,1,0.75609756097561,0.804878048780488,0.804878048780488,0.588235294117647,0.804878048780488,3328.25,644.81,880.69,0,-2,-2,-5,0,-0.0487804878048781,-0.048780487804878,-0.121951219512195,0,-0.121951219512195,-13.0999999999999,-1.47000000000003,-290.64 +"default:fresh_default","bcfishpass:fresh","MSKE","CH","any",0,42,40,36,38,38,0.952380952380952,0.857142857142857,0.904761904761905,0.904761904761905,0.833333333333333,0.904761904761905,1516.21,676.83,856.12,42,40,34,36,36,0.952380952380952,0.80952380952381,0.857142857142857,0.857142857142857,0.833333333333333,0.857142857142857,1506.83,676.03,779.76,0,-2,-2,-2,0,-0.0476190476190476,-0.0476190476190477,-0.0476190476190477,0,-0.0476190476190477,-9.38000000000011,-0.800000000000068,-76.36 +"default:fresh_default","bcfishpass:fresh","NARC","CH","any",0,22,22,21,20,20,1,0.954545454545455,0.909090909090909,0.909090909090909,0.75,0.909090909090909,3563.45,506.51,1327.21,22,22,19,20,20,1,0.863636363636364,0.909090909090909,0.909090909090909,0.75,0.909090909090909,2335,387.57,563.65,0,-2,0,0,0,-0.0909090909090909,0,0,0,0,-1228.45,-118.94,-763.56 +"default:fresh_default","bcfishpass:fresh","NATR","CH","any",0,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","NECR","CH","any",0,101,101,93,97,97,1,0.920792079207921,0.96039603960396,0.96039603960396,0.88235294117647,0.96039603960396,5608.47,516.15,1649.24,101,101,93,96,96,1,0.920792079207921,0.95049504950495,0.95049504950495,0.88235294117647,0.95049504950495,5489.42,515.99,1079.18,0,0,-1,-1,0,0,-0.00990099009900991,-0.00990099009900991,0,-0.00990099009900991,-119.05,-0.159999999999968,-570.06 +"default:fresh_default","bcfishpass:fresh","OSPK","CH","any",0,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","PARA","CH","any",0,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","PARS","CH","any",0,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","PCEA","CH","any",0,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","PINE","CH","any",0,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","SALR","CH","any",0,7,7,6,6,6,1,0.857142857142857,0.857142857142857,0.857142857142857,0.5,0.857142857142857,3174.7,234.92,966.25,7,7,6,6,6,1,0.857142857142857,0.857142857142857,0.857142857142857,0.5,0.857142857142857,3134.03,206.59,442.55,0,0,0,0,0,0,0,0,0,0,-40.6699999999996,-28.33,-523.7 +"default:fresh_default","bcfishpass:fresh","SETN","CH","any",0,117,116,111,111,112,0.991452991452991,0.948717948717949,0.948717948717949,0.957264957264957,0.5,0.957264957264957,1500.97,543.88,663.52,117,116,111,111,111,0.991452991452991,0.948717948717949,0.948717948717949,0.948717948717949,0.5,0.948717948717949,1497.15,537.97,609.35,0,0,0,-1,0,0,0,-0.00854700854700863,0,-0.00854700854700863,-3.81999999999994,-5.90999999999997,-54.17 +"default:fresh_default","bcfishpass:fresh","TABR","CH","any",0,50,48,29,32,32,0.96,0.58,0.64,0.64,0.543478260869565,0.64,2633.55,410.85,789.94,50,48,29,32,32,0.96,0.58,0.64,0.64,0.543478260869565,0.64,2566.6,410.27,642.88,0,0,0,0,0,0,0,0,0,0,-66.9500000000003,-0.580000000000041,-147.06 +"default:fresh_default","bcfishpass:fresh","TOOD","CH","any",0,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","TWAC","CH","any",0,9,9,8,9,9,1,0.888888888888889,1,1,0.888888888888889,1,705.9,144.23,228.3,9,9,8,9,9,1,0.888888888888889,1,1,0.888888888888889,1,689.03,144.23,173.02,0,0,0,0,0,0,0,0,0,0,-16.87,0,-55.28 +"default:fresh_default","bcfishpass:fresh","UFRA","CH","any",0,51,51,45,45,45,1,0.88235294117647,0.88235294117647,0.88235294117647,0.727272727272727,0.88235294117647,1487.28,642.83,764.56,51,51,44,45,45,1,0.862745098039216,0.88235294117647,0.88235294117647,0.727272727272727,0.88235294117647,1243.66,632.76,726.73,0,-1,0,0,0,-0.0196078431372548,0,0,0,0,-243.62,-10.07,-37.8299999999999 +"default:fresh_default","bcfishpass:fresh","UNRS","CH","any",0,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","UOMI","CH","any",0,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","UPCE","CH","any",0,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","USKE","CH","any",0,8,8,8,8,8,1,1,1,1,1,1,1528.86,498.83,733.99,8,8,8,8,8,1,1,1,1,1,1,1518.35,498.83,593.41,0,0,0,0,0,0,0,0,0,0,-10.51,0,-140.58 +"default:fresh_default","bcfishpass:fresh","WILL","CH","any",0,58,58,53,53,53,1,0.913793103448276,0.913793103448276,0.913793103448276,0.722222222222222,0.913793103448276,3601.38,640.69,1364.26,58,58,52,53,53,1,0.896551724137931,0.913793103448276,0.913793103448276,0.722222222222222,0.913793103448276,3537.67,630.48,1029.73,0,-1,0,0,0,-0.0172413793103449,0,0,0,0,-63.71,-10.21,-334.53 +"default:fresh_default","bcfishpass:fresh","ZYMO","CH","any",0,21,19,14,16,16,0.904761904761905,0.666666666666667,0.761904761904762,0.761904761904762,0.461538461538462,0.761904761904762,1211.06,463.12,602.24,21,19,13,16,16,0.904761904761905,0.619047619047619,0.761904761904762,0.761904761904762,0.461538461538462,0.761904761904762,1200.73,462.91,539.94,0,-1,0,0,0,-0.0476190476190476,0,0,0,0,-10.3299999999999,-0.20999999999998,-62.3 +"default:fresh_default","bcfishpass:fresh","BBAR","CH","rear",0,0,0,0,0,0,,,,,,,275.36,160.2,169.06,0,0,0,0,0,,,,,,,269.11,160.2,167.83,0,0,0,0,,,,,,,-6.25,0,-1.22999999999999 +"default:fresh_default","bcfishpass:fresh","BULK","CH","rear",0,11,11,6,9,9,1,0.545454545454545,0.818181818181818,0.818181818181818,0.545454545454545,0.818181818181818,5178.19,1264.07,2038.12,11,11,6,9,9,1,0.545454545454545,0.818181818181818,0.818181818181818,0.545454545454545,0.818181818181818,5089.63,1260.25,1730.12,0,0,0,0,0,0,0,0,0,0,-88.5599999999995,-3.81999999999994,-308 +"default:fresh_default","bcfishpass:fresh","CARP","CH","rear",0,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","CHES","CH","rear",0,1,1,1,1,1,1,1,1,1,1,1,780.54,88.26,258.88,1,1,1,1,1,1,1,1,1,1,1,750.66,88.26,149.77,0,0,0,0,0,0,0,0,0,0,-29.88,0,-109.11 +"default:fresh_default","bcfishpass:fresh","CHWK","CH","rear",0,4,4,3,3,3,1,0.75,0.75,0.75,0.75,0.75,698.92,257.8,310.79,4,4,3,3,3,1,0.75,0.75,0.75,0.75,0.75,662.37,253.93,301.07,0,0,0,0,0,0,0,0,0,0,-36.55,-3.87,-9.72000000000003 +"default:fresh_default","bcfishpass:fresh","COTR","CH","rear",0,48,45,28,33,33,0.9375,0.583333333333333,0.6875,0.6875,0.444444444444444,0.6875,4143.01,702.76,1364.58,48,45,28,31,31,0.9375,0.583333333333333,0.645833333333333,0.645833333333333,0.444444444444444,0.645833333333333,4119.15,694.8,1033.8,0,0,-2,-2,0,0,-0.0416666666666666,-0.0416666666666666,0,-0.0416666666666666,-23.8600000000006,-7.96000000000004,-330.78 +"default:fresh_default","bcfishpass:fresh","CRKD","CH","rear",0,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","DOGC","CH","rear",0,0,0,0,0,0,,,,,,,358.78,162,196.9,0,0,0,0,0,,,,,,,358.45,162,180.33,0,0,0,0,,,,,,,-0.329999999999984,0,-16.57 +"default:fresh_default","bcfishpass:fresh","FINA","CH","rear",0,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","FINL","CH","rear",0,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","FIRE","CH","rear",0,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","FOXR","CH","rear",0,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","FRAN","CH","rear",0,4,4,2,2,2,1,0.5,0.5,0.5,0.5,0.5,7351.32,597.53,1631.89,4,4,2,2,2,1,0.5,0.5,0.5,0.5,0.5,7176.56,540.43,971.87,0,0,0,0,0,0,0,0,0,0,-174.759999999999,-57.1,-660.02 +"default:fresh_default","bcfishpass:fresh","FRCN","CH","rear",0,13,13,10,13,13,1,0.769230769230769,1,1,0.727272727272727,1,749.15,451.01,481.99,13,13,10,13,13,1,0.769230769230769,1,1,0.727272727272727,1,716.2,428.99,474.71,0,0,0,0,0,0,0,0,0,0,-32.9499999999999,-22.02,-7.28000000000003 +"default:fresh_default","bcfishpass:fresh","HARR","CH","rear",0,46,45,44,44,44,0.978260869565217,0.956521739130435,0.956521739130435,0.956521739130435,0.956521739130435,0.956521739130435,1148.93,329.59,385.83,46,45,44,44,44,0.978260869565217,0.956521739130435,0.956521739130435,0.956521739130435,0.956521739130435,0.956521739130435,1126.73,327.72,377.22,0,0,0,0,0,0,0,0,0,0,-22.2,-1.86999999999995,-8.60999999999996 +"default:fresh_default","bcfishpass:fresh","INGR","CH","rear",0,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","KISP","CH","rear",0,12,12,10,10,10,1,0.833333333333333,0.833333333333333,0.833333333333333,0.818181818181818,0.833333333333333,2841.44,862.28,1178.83,12,12,10,10,10,1,0.833333333333333,0.833333333333333,0.833333333333333,0.818181818181818,0.833333333333333,2786.73,860.45,1050.59,0,0,0,0,0,0,0,0,0,0,-54.71,-1.82999999999993,-128.24 +"default:fresh_default","bcfishpass:fresh","KLUM","CH","rear",0,19,19,14,16,16,1,0.736842105263158,0.842105263157895,0.842105263157895,0.666666666666667,0.842105263157895,1523.16,708.12,905.48,19,19,14,15,15,1,0.736842105263158,0.789473684210526,0.789473684210526,0.666666666666667,0.789473684210526,1481.08,707.93,830.68,0,0,-1,-1,0,0,-0.0526315789473684,-0.0526315789473684,0,-0.0526315789473684,-42.0800000000002,-0.190000000000055,-74.8000000000001 +"default:fresh_default","bcfishpass:fresh","LBTN","CH","rear",0,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","LCHL","CH","rear",0,23,23,20,19,19,1,0.869565217391304,0.826086956521739,0.826086956521739,0.823529411764706,0.826086956521739,4358.83,468.47,1153.83,23,23,17,19,19,1,0.739130434782609,0.826086956521739,0.826086956521739,0.823529411764706,0.826086956521739,4159.73,464.81,826.81,0,-3,0,0,0,-0.130434782608696,0,0,0,0,-199.1,-3.66000000000003,-327.02 +"default:fresh_default","bcfishpass:fresh","LFRA","CH","rear",0,66,65,39,54,54,0.984848484848485,0.590909090909091,0.818181818181818,0.818181818181818,0.55,0.818181818181818,3074.38,826.28,1254.99,66,63,39,54,54,0.954545454545455,0.590909090909091,0.818181818181818,0.818181818181818,0.55,0.818181818181818,2754.05,820.43,1176.68,-2,0,0,0,-0.0303030303030303,0,0,0,0,0,-320.33,-5.85000000000002,-78.31 +"default:fresh_default","bcfishpass:fresh","LKEL","CH","rear",0,2,2,1,2,2,1,0.5,1,1,0.5,1,332.18,106.7,162.87,2,2,1,2,2,1,0.5,1,1,0.5,1,328.21,106.49,123.85,0,0,0,0,0,0,0,0,0,0,-3.97000000000003,-0.210000000000008,-39.02 +"default:fresh_default","bcfishpass:fresh","LOMI","CH","rear",0,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","LPCE","CH","rear",0,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","LSAL","CH","rear",0,4,4,4,4,4,1,1,1,1,1,1,3029.07,317.62,1060.92,4,4,4,4,4,1,1,1,1,1,1,2968.08,312.6,617.6,0,0,0,0,0,0,0,0,0,0,-60.9900000000002,-5.01999999999998,-443.32 +"default:fresh_default","bcfishpass:fresh","LSKE","CH","rear",0,35,35,26,29,29,1,0.742857142857143,0.828571428571429,0.828571428571429,0.71875,0.828571428571429,2101.75,1052.46,1308.55,35,35,25,29,29,1,0.714285714285714,0.828571428571429,0.828571428571429,0.71875,0.828571428571429,2086.32,1049.22,1167.34,0,-1,0,0,0,-0.0285714285714286,0,0,0,0,-15.4299999999998,-3.24000000000001,-141.21 +"default:fresh_default","bcfishpass:fresh","MESI","CH","rear",0,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","MFRA","CH","rear",0,2,1,0,0,0,0.5,0,0,0,0,0,277.46,100.9,121.94,2,1,0,0,0,0.5,0,0,0,0,0,231.06,96.92,104.06,0,0,0,0,0,0,0,0,0,0,-46.4,-3.98,-17.88 +"default:fresh_default","bcfishpass:fresh","MORK","CH","rear",0,32,31,24,25,25,0.96875,0.75,0.78125,0.78125,0.529411764705882,0.78125,5953.1,1577.65,2499.11,32,31,24,25,25,0.96875,0.75,0.78125,0.78125,0.529411764705882,0.78125,5705.82,1556.47,2225.04,0,0,0,0,0,0,0,0,0,0,-247.280000000001,-21.1800000000001,-274.07 +"default:fresh_default","bcfishpass:fresh","MORR","CH","rear",0,2,2,1,2,2,1,0.5,1,1,0.5,1,3341.35,646.28,1171.33,2,2,1,2,2,1,0.5,1,1,0.5,1,3328.25,644.81,880.69,0,0,0,0,0,0,0,0,0,0,-13.0999999999999,-1.47000000000003,-290.64 +"default:fresh_default","bcfishpass:fresh","MSKE","CH","rear",0,2,1,1,1,1,0.5,0.5,0.5,0.5,0,0.5,1516.21,676.83,856.12,2,1,1,1,1,0.5,0.5,0.5,0.5,0,0.5,1506.83,676.03,779.76,0,0,0,0,0,0,0,0,0,0,-9.38000000000011,-0.800000000000068,-76.36 +"default:fresh_default","bcfishpass:fresh","NARC","CH","rear",0,6,6,6,5,5,1,1,0.833333333333333,0.833333333333333,1,0.833333333333333,3563.45,506.51,1327.21,6,6,5,5,5,1,0.833333333333333,0.833333333333333,0.833333333333333,1,0.833333333333333,2335,387.57,563.65,0,-1,0,0,0,-0.166666666666667,0,0,0,0,-1228.45,-118.94,-763.56 +"default:fresh_default","bcfishpass:fresh","NATR","CH","rear",0,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","NECR","CH","rear",0,6,6,4,6,6,1,0.666666666666667,1,1,0.6,1,5608.47,516.15,1649.24,6,6,4,6,6,1,0.666666666666667,1,1,0.6,1,5489.42,515.99,1079.18,0,0,0,0,0,0,0,0,0,0,-119.05,-0.159999999999968,-570.06 +"default:fresh_default","bcfishpass:fresh","OSPK","CH","rear",0,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","PARA","CH","rear",0,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","PARS","CH","rear",0,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","PCEA","CH","rear",0,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","PINE","CH","rear",0,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","SALR","CH","rear",0,2,2,1,1,1,1,0.5,0.5,0.5,0.5,0.5,3174.7,234.92,966.25,2,2,1,1,1,1,0.5,0.5,0.5,0.5,0.5,3134.03,206.59,442.55,0,0,0,0,0,0,0,0,0,0,-40.6699999999996,-28.33,-523.7 +"default:fresh_default","bcfishpass:fresh","SETN","CH","rear",0,85,85,85,85,85,1,1,1,1,1,1,1500.97,543.88,663.52,85,85,85,85,85,1,1,1,1,1,1,1497.15,537.97,609.35,0,0,0,0,0,0,0,0,0,0,-3.81999999999994,-5.90999999999997,-54.17 +"default:fresh_default","bcfishpass:fresh","TABR","CH","rear",0,25,24,17,18,18,0.96,0.68,0.72,0.72,0.636363636363636,0.72,2633.55,410.85,789.94,25,24,17,18,18,0.96,0.68,0.72,0.72,0.636363636363636,0.72,2566.6,410.27,642.88,0,0,0,0,0,0,0,0,0,0,-66.9500000000003,-0.580000000000041,-147.06 +"default:fresh_default","bcfishpass:fresh","TOOD","CH","rear",0,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","TWAC","CH","rear",0,7,7,7,7,7,1,1,1,1,1,1,705.9,144.23,228.3,7,7,7,7,7,1,1,1,1,1,1,689.03,144.23,173.02,0,0,0,0,0,0,0,0,0,0,-16.87,0,-55.28 +"default:fresh_default","bcfishpass:fresh","UFRA","CH","rear",0,6,6,3,3,3,1,0.5,0.5,0.5,0.25,0.5,1487.28,642.83,764.56,6,6,3,3,3,1,0.5,0.5,0.5,0.25,0.5,1243.66,632.76,726.73,0,0,0,0,0,0,0,0,0,0,-243.62,-10.07,-37.8299999999999 +"default:fresh_default","bcfishpass:fresh","UNRS","CH","rear",0,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","UOMI","CH","rear",0,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","UPCE","CH","rear",0,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","USKE","CH","rear",0,0,0,0,0,0,,,,,,,1528.86,498.83,733.99,0,0,0,0,0,,,,,,,1518.35,498.83,593.41,0,0,0,0,,,,,,,-10.51,0,-140.58 +"default:fresh_default","bcfishpass:fresh","WILL","CH","rear",0,42,42,38,39,39,1,0.904761904761905,0.928571428571429,0.928571428571429,0.666666666666667,0.928571428571429,3601.38,640.69,1364.26,42,42,38,39,39,1,0.904761904761905,0.928571428571429,0.928571428571429,0.666666666666667,0.928571428571429,3537.67,630.48,1029.73,0,0,0,0,0,0,0,0,0,0,-63.71,-10.21,-334.53 +"default:fresh_default","bcfishpass:fresh","ZYMO","CH","rear",0,5,4,0,1,1,0.8,0,0.2,0.2,0,0.2,1211.06,463.12,602.24,5,4,0,1,1,0.8,0,0.2,0.2,0,0.2,1200.73,462.91,539.94,0,0,0,0,0,0,0,0,0,0,-10.3299999999999,-0.20999999999998,-62.3 +"default:fresh_default","bcfishpass:fresh","BBAR","CH","spawn",0,0,0,0,0,0,,,,,,,275.36,160.2,169.06,0,0,0,0,0,,,,,,,269.11,160.2,167.83,0,0,0,0,,,,,,,-6.25,0,-1.22999999999999 +"default:fresh_default","bcfishpass:fresh","BULK","CH","spawn",0,16,16,16,15,15,1,1,0.9375,0.9375,,0.9375,5178.19,1264.07,2038.12,16,16,15,15,15,1,0.9375,0.9375,0.9375,,0.9375,5089.63,1260.25,1730.12,0,-1,0,0,0,-0.0625,0,0,,0,-88.5599999999995,-3.81999999999994,-308 +"default:fresh_default","bcfishpass:fresh","CARP","CH","spawn",0,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","CHES","CH","spawn",0,3,2,2,2,2,0.666666666666667,0.666666666666667,0.666666666666667,0.666666666666667,0,0.666666666666667,780.54,88.26,258.88,3,2,2,2,2,0.666666666666667,0.666666666666667,0.666666666666667,0.666666666666667,0,0.666666666666667,750.66,88.26,149.77,0,0,0,0,0,0,0,0,0,0,-29.88,0,-109.11 +"default:fresh_default","bcfishpass:fresh","CHWK","CH","spawn",0,8,8,6,5,7,1,0.75,0.625,0.875,0.666666666666667,0.875,698.92,257.8,310.79,8,8,5,5,5,1,0.625,0.625,0.625,0.666666666666667,0.625,662.37,253.93,301.07,0,-1,0,-2,0,-0.125,0,-0.25,0,-0.25,-36.55,-3.87,-9.72000000000003 +"default:fresh_default","bcfishpass:fresh","COTR","CH","spawn",0,15,14,15,14,14,0.933333333333333,1,0.933333333333333,0.933333333333333,,0.933333333333333,4143.01,702.76,1364.58,15,14,12,12,12,0.933333333333333,0.8,0.8,0.8,,0.8,4119.15,694.8,1033.8,0,-3,-2,-2,0,-0.2,-0.133333333333333,-0.133333333333333,,-0.133333333333333,-23.8600000000006,-7.96000000000004,-330.78 +"default:fresh_default","bcfishpass:fresh","CRKD","CH","spawn",0,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","DOGC","CH","spawn",0,2,2,2,2,2,1,1,1,1,,1,358.78,162,196.9,2,2,2,2,2,1,1,1,1,,1,358.45,162,180.33,0,0,0,0,0,0,0,0,,0,-0.329999999999984,0,-16.57 +"default:fresh_default","bcfishpass:fresh","FINA","CH","spawn",0,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","FINL","CH","spawn",0,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","FIRE","CH","spawn",0,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","FOXR","CH","spawn",0,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","FRAN","CH","spawn",0,4,4,4,3,4,1,1,0.75,1,,1,7351.32,597.53,1631.89,4,4,3,3,3,1,0.75,0.75,0.75,,0.75,7176.56,540.43,971.87,0,-1,0,-1,0,-0.25,0,-0.25,,-0.25,-174.759999999999,-57.1,-660.02 +"default:fresh_default","bcfishpass:fresh","FRCN","CH","spawn",0,5,5,5,3,3,1,1,0.6,0.6,,0.6,749.15,451.01,481.99,5,5,2,3,3,1,0.4,0.6,0.6,,0.6,716.2,428.99,474.71,0,-3,0,0,0,-0.6,0,0,,0,-32.9499999999999,-22.02,-7.28000000000003 +"default:fresh_default","bcfishpass:fresh","HARR","CH","spawn",0,4,4,4,3,3,1,1,0.75,0.75,,0.75,1148.93,329.59,385.83,4,4,3,3,3,1,0.75,0.75,0.75,,0.75,1126.73,327.72,377.22,0,-1,0,0,0,-0.25,0,0,,0,-22.2,-1.86999999999995,-8.60999999999996 +"default:fresh_default","bcfishpass:fresh","INGR","CH","spawn",0,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","KISP","CH","spawn",0,30,30,30,25,26,1,1,0.833333333333333,0.866666666666667,,0.866666666666667,2841.44,862.28,1178.83,30,30,25,25,25,1,0.833333333333333,0.833333333333333,0.833333333333333,,0.833333333333333,2786.73,860.45,1050.59,0,-5,0,-1,0,-0.166666666666667,0,-0.0333333333333333,,-0.0333333333333333,-54.71,-1.82999999999993,-128.24 +"default:fresh_default","bcfishpass:fresh","KLUM","CH","spawn",0,20,19,20,18,19,0.95,1,0.9,0.95,,0.95,1523.16,708.12,905.48,20,19,17,18,18,0.95,0.85,0.9,0.9,,0.9,1481.08,707.93,830.68,0,-3,0,-1,0,-0.15,0,-0.0499999999999999,,-0.0499999999999999,-42.0800000000002,-0.190000000000055,-74.8000000000001 +"default:fresh_default","bcfishpass:fresh","LBTN","CH","spawn",0,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","LCHL","CH","spawn",0,2,2,2,2,2,1,1,1,1,,1,4358.83,468.47,1153.83,2,2,2,2,2,1,1,1,1,,1,4159.73,464.81,826.81,0,0,0,0,0,0,0,0,,0,-199.1,-3.66000000000003,-327.02 +"default:fresh_default","bcfishpass:fresh","LFRA","CH","spawn",0,10,10,10,10,10,1,1,1,1,,1,3074.38,826.28,1254.99,10,10,9,10,10,1,0.9,1,1,,1,2754.05,820.43,1176.68,0,-1,0,0,0,-0.1,0,0,,0,-320.33,-5.85000000000002,-78.31 +"default:fresh_default","bcfishpass:fresh","LKEL","CH","spawn",0,3,3,3,2,2,1,1,0.666666666666667,0.666666666666667,,0.666666666666667,332.18,106.7,162.87,3,3,2,2,2,1,0.666666666666667,0.666666666666667,0.666666666666667,,0.666666666666667,328.21,106.49,123.85,0,-1,0,0,0,-0.333333333333333,0,0,,0,-3.97000000000003,-0.210000000000008,-39.02 +"default:fresh_default","bcfishpass:fresh","LOMI","CH","spawn",0,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","LPCE","CH","spawn",0,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","LSAL","CH","spawn",0,0,0,0,0,0,,,,,,,3029.07,317.62,1060.92,0,0,0,0,0,,,,,,,2968.08,312.6,617.6,0,0,0,0,,,,,,,-60.9900000000002,-5.01999999999998,-443.32 +"default:fresh_default","bcfishpass:fresh","LSKE","CH","spawn",0,24,23,24,22,22,0.958333333333333,1,0.916666666666667,0.916666666666667,,0.916666666666667,2101.75,1052.46,1308.55,24,23,21,22,22,0.958333333333333,0.875,0.916666666666667,0.916666666666667,,0.916666666666667,2086.32,1049.22,1167.34,0,-3,0,0,0,-0.125,0,0,,0,-15.4299999999998,-3.24000000000001,-141.21 +"default:fresh_default","bcfishpass:fresh","MESI","CH","spawn",0,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","MFRA","CH","spawn",0,0,0,0,0,0,,,,,,,277.46,100.9,121.94,0,0,0,0,0,,,,,,,231.06,96.92,104.06,0,0,0,0,,,,,,,-46.4,-3.98,-17.88 +"default:fresh_default","bcfishpass:fresh","MORK","CH","spawn",0,25,25,25,23,24,1,1,0.92,0.96,,0.96,5953.1,1577.65,2499.11,25,25,22,22,22,1,0.88,0.88,0.88,,0.88,5705.82,1556.47,2225.04,0,-3,-1,-2,0,-0.12,-0.04,-0.08,,-0.08,-247.280000000001,-21.1800000000001,-274.07 +"default:fresh_default","bcfishpass:fresh","MORR","CH","spawn",0,9,9,9,7,9,1,1,0.777777777777778,1,,1,3341.35,646.28,1171.33,9,9,7,7,7,1,0.777777777777778,0.777777777777778,0.777777777777778,,0.777777777777778,3328.25,644.81,880.69,0,-2,0,-2,0,-0.222222222222222,0,-0.222222222222222,,-0.222222222222222,-13.0999999999999,-1.47000000000003,-290.64 +"default:fresh_default","bcfishpass:fresh","MSKE","CH","spawn",0,4,3,4,3,3,0.75,1,0.75,0.75,,0.75,1516.21,676.83,856.12,4,3,2,2,2,0.75,0.5,0.5,0.5,,0.5,1506.83,676.03,779.76,0,-2,-1,-1,0,-0.5,-0.25,-0.25,,-0.25,-9.38000000000011,-0.800000000000068,-76.36 +"default:fresh_default","bcfishpass:fresh","NARC","CH","spawn",0,9,9,9,8,8,1,1,0.888888888888889,0.888888888888889,,0.888888888888889,3563.45,506.51,1327.21,9,9,8,8,8,1,0.888888888888889,0.888888888888889,0.888888888888889,,0.888888888888889,2335,387.57,563.65,0,-1,0,0,0,-0.111111111111111,0,0,,0,-1228.45,-118.94,-763.56 +"default:fresh_default","bcfishpass:fresh","NATR","CH","spawn",0,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","NECR","CH","spawn",0,9,9,9,9,9,1,1,1,1,,1,5608.47,516.15,1649.24,9,9,9,9,9,1,1,1,1,,1,5489.42,515.99,1079.18,0,0,0,0,0,0,0,0,,0,-119.05,-0.159999999999968,-570.06 +"default:fresh_default","bcfishpass:fresh","OSPK","CH","spawn",0,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","PARA","CH","spawn",0,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","PARS","CH","spawn",0,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","PCEA","CH","spawn",0,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","PINE","CH","spawn",0,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","SALR","CH","spawn",0,4,4,4,4,4,1,1,1,1,,1,3174.7,234.92,966.25,4,4,4,4,4,1,1,1,1,,1,3134.03,206.59,442.55,0,0,0,0,0,0,0,0,,0,-40.6699999999996,-28.33,-523.7 +"default:fresh_default","bcfishpass:fresh","SETN","CH","spawn",0,17,17,16,16,16,1,0.941176470588235,0.941176470588235,0.941176470588235,0,0.941176470588235,1500.97,543.88,663.52,17,17,16,16,16,1,0.941176470588235,0.941176470588235,0.941176470588235,0,0.941176470588235,1497.15,537.97,609.35,0,0,0,0,0,0,0,0,0,0,-3.81999999999994,-5.90999999999997,-54.17 +"default:fresh_default","bcfishpass:fresh","TABR","CH","spawn",0,0,0,0,0,0,,,,,,,2633.55,410.85,789.94,0,0,0,0,0,,,,,,,2566.6,410.27,642.88,0,0,0,0,,,,,,,-66.9500000000003,-0.580000000000041,-147.06 +"default:fresh_default","bcfishpass:fresh","TOOD","CH","spawn",0,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","TWAC","CH","spawn",0,0,0,0,0,0,,,,,,,705.9,144.23,228.3,0,0,0,0,0,,,,,,,689.03,144.23,173.02,0,0,0,0,,,,,,,-16.87,0,-55.28 +"default:fresh_default","bcfishpass:fresh","UFRA","CH","spawn",0,11,11,11,11,11,1,1,1,1,,1,1487.28,642.83,764.56,11,11,10,11,11,1,0.909090909090909,1,1,,1,1243.66,632.76,726.73,0,-1,0,0,0,-0.0909090909090909,0,0,,0,-243.62,-10.07,-37.8299999999999 +"default:fresh_default","bcfishpass:fresh","UNRS","CH","spawn",0,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","UOMI","CH","spawn",0,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","UPCE","CH","spawn",0,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","USKE","CH","spawn",0,0,0,0,0,0,,,,,,,1528.86,498.83,733.99,0,0,0,0,0,,,,,,,1518.35,498.83,593.41,0,0,0,0,,,,,,,-10.51,0,-140.58 +"default:fresh_default","bcfishpass:fresh","WILL","CH","spawn",0,3,3,3,2,2,1,1,0.666666666666667,0.666666666666667,,0.666666666666667,3601.38,640.69,1364.26,3,3,2,2,2,1,0.666666666666667,0.666666666666667,0.666666666666667,,0.666666666666667,3537.67,630.48,1029.73,0,-1,0,0,0,-0.333333333333333,0,0,,0,-63.71,-10.21,-334.53 +"default:fresh_default","bcfishpass:fresh","ZYMO","CH","spawn",0,8,7,8,7,7,0.875,1,0.875,0.875,,0.875,1211.06,463.12,602.24,8,7,7,7,7,0.875,0.875,0.875,0.875,,0.875,1200.73,462.91,539.94,0,-1,0,0,0,-0.125,0,0,,0,-10.3299999999999,-0.20999999999998,-62.3 +"default:fresh_default","bcfishpass:fresh","BBAR","BT","any",100,16,16,10,14,14,1,0.625,0.875,0.875,0.625,0.875,1761.57,329.41,560.67,16,16,10,14,14,1,0.625,0.875,0.875,0.625,0.875,1262.45,296.02,478.21,0,0,0,0,0,0,0,0,0,0,-499.12,-33.39,-82.46 +"default:fresh_default","bcfishpass:fresh","BULK","BT","any",100,468,464,239,338,338,0.991452991452991,0.510683760683761,0.722222222222222,0.722222222222222,0.510683760683761,0.722222222222222,7713.98,1852.11,3012.7,468,443,230,329,329,0.946581196581197,0.491452991452991,0.702991452991453,0.702991452991453,0.491452991452991,0.702991452991453,7676.5,1866.31,3021.51,-21,-9,-9,-9,-0.0448717948717949,-0.0192307692307692,-0.0192307692307693,-0.0192307692307693,-0.0192307692307692,-0.0192307692307693,-37.4799999999996,14.2,8.8100000000004 +"default:fresh_default","bcfishpass:fresh","CARP","BT","any",100,6,6,4,4,6,1,0.666666666666667,0.666666666666667,1,0.666666666666667,1,4420.57,502.37,1026.27,6,6,4,6,6,1,0.666666666666667,1,1,0.666666666666667,1,4296.5,497.07,1072.63,0,0,2,0,0,0,0.333333333333333,0,0,0,-124.07,-5.30000000000001,46.3600000000001 +"default:fresh_default","bcfishpass:fresh","CHES","BT","any",100,3,3,3,3,3,1,1,1,1,1,1,2904.74,376.85,796.72,3,1,1,1,1,0.333333333333333,0.333333333333333,0.333333333333333,0.333333333333333,0.333333333333333,0.333333333333333,901.21,145.45,336.47,-2,-2,-2,-2,-0.666666666666667,-0.666666666666667,-0.666666666666667,-0.666666666666667,-0.666666666666667,-0.666666666666667,-2003.53,-231.4,-460.25 +"default:fresh_default","bcfishpass:fresh","CHWK","BT","any",100,62,62,41,52,56,1,0.661290322580645,0.838709677419355,0.903225806451613,0.661290322580645,0.903225806451613,793.94,310.02,353.48,62,62,41,57,57,1,0.661290322580645,0.919354838709677,0.919354838709677,0.661290322580645,0.919354838709677,822.24,316.56,418.39,0,0,5,1,0,0,0.0806451612903225,0.0161290322580645,0,0.0161290322580645,28.3,6.54000000000002,64.91 +"default:fresh_default","bcfishpass:fresh","COTR","BT","any",100,85,84,47,69,69,0.988235294117647,0.552941176470588,0.811764705882353,0.811764705882353,0.552941176470588,0.811764705882353,6856.99,1480.88,2433.36,85,84,48,69,69,0.988235294117647,0.564705882352941,0.811764705882353,0.811764705882353,0.564705882352941,0.811764705882353,6878.95,1490.06,2340.71,0,1,0,0,0,0.0117647058823529,0,0,0.0117647058823529,0,21.96,9.17999999999984,-92.6500000000001 +"default:fresh_default","bcfishpass:fresh","CRKD","BT","any",100,4,4,4,4,4,1,1,1,1,1,1,5115.69,695.8,1448.76,4,4,4,4,4,1,1,1,1,1,1,5051.55,695.63,1448.44,0,0,0,0,0,0,0,0,0,0,-64.1399999999994,-0.169999999999959,-0.319999999999936 +"default:fresh_default","bcfishpass:fresh","DOGC","BT","any",100,17,17,13,17,17,1,0.764705882352941,1,1,0.764705882352941,1,1260.46,286.17,502.72,17,17,13,17,17,1,0.764705882352941,1,1,0.764705882352941,1,1251.04,288.83,481.5,0,0,0,0,0,0,0,0,0,0,-9.42000000000007,2.65999999999997,-21.22 +"default:fresh_default","bcfishpass:fresh","FINA","BT","any",100,107,107,96,99,105,1,0.897196261682243,0.925233644859813,0.981308411214953,0.897196261682243,0.981308411214953,7889.87,1325.37,2218.78,107,107,96,105,105,1,0.897196261682243,0.981308411214953,0.981308411214953,0.897196261682243,0.981308411214953,6084.04,1277.62,2845.63,0,0,6,0,0,0,0.0560747663551402,0,0,0,-1805.83,-47.75,626.85 +"default:fresh_default","bcfishpass:fresh","FINL","BT","any",100,32,32,25,29,29,1,0.78125,0.90625,0.90625,0.78125,0.90625,4515.86,1365.64,2107.58,32,32,25,29,29,1,0.78125,0.90625,0.90625,0.78125,0.90625,4480.99,1365.64,2085.7,0,0,0,0,0,0,0,0,0,0,-34.8699999999999,0,-21.8800000000001 +"default:fresh_default","bcfishpass:fresh","FIRE","BT","any",100,172,172,135,155,157,1,0.784883720930233,0.901162790697674,0.912790697674419,0.784883720930233,0.912790697674419,6663.44,1012.79,1911.07,172,172,135,155,155,1,0.784883720930233,0.901162790697674,0.901162790697674,0.784883720930233,0.901162790697674,6589.52,1012.26,2016.75,0,0,0,-2,0,0,0,-0.0116279069767441,0,-0.0116279069767441,-73.9199999999992,-0.529999999999973,105.68 +"default:fresh_default","bcfishpass:fresh","FOXR","BT","any",100,33,33,26,31,31,1,0.787878787878788,0.93939393939394,0.93939393939394,0.787878787878788,0.93939393939394,3665.56,928.18,1525.02,33,33,26,31,31,1,0.787878787878788,0.93939393939394,0.93939393939394,0.787878787878788,0.93939393939394,3587.54,922.1,1511.59,0,0,0,0,0,0,0,0,0,0,-78.02,-6.07999999999993,-13.4300000000001 +"default:fresh_default","bcfishpass:fresh","FRAN","BT","any",100,102,102,55,74,74,1,0.53921568627451,0.725490196078431,0.725490196078431,0.53921568627451,0.725490196078431,9078.53,1120.86,2355.24,102,100,54,71,71,0.980392156862745,0.529411764705882,0.696078431372549,0.696078431372549,0.529411764705882,0.696078431372549,9265.93,1150.92,2834.02,-2,-1,-3,-3,-0.0196078431372549,-0.00980392156862742,-0.0294117647058824,-0.0294117647058824,-0.00980392156862742,-0.0294117647058824,187.4,30.0600000000002,478.78 +"default:fresh_default","bcfishpass:fresh","FRCN","BT","any",100,95,95,54,91,92,1,0.568421052631579,0.957894736842105,0.968421052631579,0.568421052631579,0.968421052631579,1504.38,663.33,889.13,95,94,54,91,91,0.989473684210526,0.568421052631579,0.957894736842105,0.957894736842105,0.568421052631579,0.957894736842105,1502.48,691.1,964.06,-1,0,0,-1,-0.0105263157894737,0,0,-0.0105263157894737,0,-0.0105263157894737,-1.90000000000009,27.77,74.93 +"default:fresh_default","bcfishpass:fresh","HARR","BT","any",100,43,42,24,35,38,0.976744186046512,0.558139534883721,0.813953488372093,0.883720930232558,0.558139534883721,0.883720930232558,1619.34,470.27,588.62,43,38,21,35,35,0.883720930232558,0.488372093023256,0.813953488372093,0.813953488372093,0.488372093023256,0.813953488372093,1561.45,468.9,827.82,-4,-3,0,-3,-0.0930232558139534,-0.0697674418604651,0,-0.0697674418604651,-0.0697674418604651,-0.0697674418604651,-57.8899999999999,-1.37,239.2 +"default:fresh_default","bcfishpass:fresh","INGR","BT","any",100,27,27,23,26,26,1,0.851851851851852,0.962962962962963,0.962962962962963,0.851851851851852,0.962962962962963,3925.58,1111.41,1736.58,27,27,23,26,26,1,0.851851851851852,0.962962962962963,0.962962962962963,0.851851851851852,0.962962962962963,3907.56,1111.41,1783.68,0,0,0,0,0,0,0,0,0,0,-18.02,0,47.1000000000001 +"default:fresh_default","bcfishpass:fresh","KISP","BT","any",100,195,192,128,162,165,0.984615384615385,0.656410256410256,0.830769230769231,0.846153846153846,0.656410256410256,0.846153846153846,4529.14,1258.71,1894.95,195,187,125,162,162,0.958974358974359,0.641025641025641,0.830769230769231,0.830769230769231,0.641025641025641,0.830769230769231,4475.39,1261.15,1962.71,-5,-3,0,-3,-0.0256410256410257,-0.0153846153846153,0,-0.0153846153846153,-0.0153846153846153,-0.0153846153846153,-53.75,2.44000000000005,67.76 +"default:fresh_default","bcfishpass:fresh","KLUM","BT","any",100,314,302,203,248,248,0.961783439490446,0.646496815286624,0.789808917197452,0.789808917197452,0.646496815286624,0.789808917197452,2173.93,929.96,1229.04,314,275,191,235,235,0.875796178343949,0.60828025477707,0.748407643312102,0.748407643312102,0.60828025477707,0.748407643312102,1930.45,894.45,1189.16,-27,-12,-13,-13,-0.0859872611464968,-0.0382165605095541,-0.0414012738853504,-0.0414012738853504,-0.0382165605095541,-0.0414012738853504,-243.48,-35.51,-39.8799999999999 +"default:fresh_default","bcfishpass:fresh","LBTN","BT","any",100,2,2,2,2,2,1,1,1,1,1,1,9061.71,2027.4,2961.53,2,2,2,2,2,1,1,1,1,1,1,8647.79,2026.94,2189.51,0,0,0,0,0,0,0,0,0,0,-413.919999999998,-0.460000000000036,-772.02 +"default:fresh_default","bcfishpass:fresh","LCHL","BT","any",100,6,6,6,6,6,1,1,1,1,1,1,5533.57,908.41,1581.55,6,6,6,6,6,1,1,1,1,1,1,5236.61,896.14,1550.64,0,0,0,0,0,0,0,0,0,0,-296.96,-12.27,-30.9099999999999 +"default:fresh_default","bcfishpass:fresh","LFRA","BT","any",100,78,78,60,66,70,1,0.769230769230769,0.846153846153846,0.897435897435897,0.769230769230769,0.897435897435897,3569.06,1241.71,1516.52,78,78,61,70,70,1,0.782051282051282,0.897435897435897,0.897435897435897,0.782051282051282,0.897435897435897,3415.8,1284.59,1805.62,0,1,4,0,0,0.0128205128205128,0.0512820512820513,0,0.0128205128205128,0,-153.26,42.8799999999999,289.1 +"default:fresh_default","bcfishpass:fresh","LKEL","BT","any",100,63,63,37,48,50,1,0.587301587301587,0.761904761904762,0.793650793650794,0.587301587301587,0.793650793650794,405.16,144.67,218.77,63,63,37,49,49,1,0.587301587301587,0.777777777777778,0.777777777777778,0.587301587301587,0.777777777777778,401.02,144.74,222.78,0,0,1,-1,0,0,0.0158730158730159,-0.0158730158730158,0,-0.0158730158730158,-4.14000000000004,0.0700000000000216,4.00999999999999 +"default:fresh_default","bcfishpass:fresh","LOMI","BT","any",100,27,26,20,25,25,0.962962962962963,0.740740740740741,0.925925925925926,0.925925925925926,0.740740740740741,0.925925925925926,3639.43,1004.03,1513.07,27,26,20,25,25,0.962962962962963,0.740740740740741,0.925925925925926,0.925925925925926,0.740740740740741,0.925925925925926,3436.23,967.82,1517.42,0,0,0,0,0,0,0,0,0,0,-203.2,-36.2099999999999,4.35000000000014 +"default:fresh_default","bcfishpass:fresh","LPCE","BT","any",100,55,53,42,42,42,0.963636363636364,0.763636363636364,0.763636363636364,0.763636363636364,0.763636363636364,0.763636363636364,3571.54,1000.37,1386.86,55,53,42,40,40,0.963636363636364,0.763636363636364,0.727272727272727,0.727272727272727,0.763636363636364,0.727272727272727,3130.17,918.71,1261.4,0,0,-2,-2,0,0,-0.0363636363636364,-0.0363636363636364,0,-0.0363636363636364,-441.37,-81.66,-125.46 +"default:fresh_default","bcfishpass:fresh","LSAL","BT","any",100,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","LSKE","BT","any",100,230,227,177,195,195,0.98695652173913,0.769565217391304,0.847826086956522,0.847826086956522,0.769565217391304,0.847826086956522,3075.25,1326.45,1709.47,230,216,171,187,187,0.939130434782609,0.743478260869565,0.81304347826087,0.81304347826087,0.743478260869565,0.81304347826087,2884.31,1315.64,1751.5,-11,-6,-8,-8,-0.0478260869565217,-0.0260869565217391,-0.0347826086956522,-0.0347826086956522,-0.0260869565217391,-0.0347826086956522,-190.94,-10.8099999999999,42.03 +"default:fresh_default","bcfishpass:fresh","MESI","BT","any",100,64,64,51,60,60,1,0.796875,0.9375,0.9375,0.796875,0.9375,2825.32,691.09,1077.07,64,64,51,60,60,1,0.796875,0.9375,0.9375,0.796875,0.9375,2767.09,685.99,1126.99,0,0,0,0,0,0,0,0,0,0,-58.23,-5.10000000000002,49.9200000000001 +"default:fresh_default","bcfishpass:fresh","MFRA","BT","any",100,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","MORK","BT","any",100,79,79,70,72,73,1,0.886075949367089,0.911392405063291,0.924050632911392,0.886075949367089,0.924050632911392,7202.59,2148.8,3077.39,79,79,70,73,73,1,0.886075949367089,0.924050632911392,0.924050632911392,0.886075949367089,0.924050632911392,8075.86,2434.23,3397.59,0,0,1,0,0,0,0.0126582278481013,0,0,0,873.27,285.43,320.2 +"default:fresh_default","bcfishpass:fresh","MORR","BT","any",100,357,357,162,260,267,1,0.453781512605042,0.728291316526611,0.747899159663866,0.453781512605042,0.747899159663866,4865.96,960.8,1685.2,357,349,159,260,260,0.977591036414566,0.445378151260504,0.728291316526611,0.728291316526611,0.445378151260504,0.728291316526611,4765.64,952.61,1829.89,-8,-3,0,-7,-0.0224089635854342,-0.00840336134453779,0,-0.0196078431372549,-0.00840336134453779,-0.0196078431372549,-100.32,-8.18999999999994,144.69 +"default:fresh_default","bcfishpass:fresh","MSKE","BT","any",100,69,68,46,52,52,0.985507246376812,0.666666666666667,0.753623188405797,0.753623188405797,0.666666666666667,0.753623188405797,2691.58,922.19,1383.97,69,62,46,52,52,0.898550724637681,0.666666666666667,0.753623188405797,0.753623188405797,0.666666666666667,0.753623188405797,2667.19,921.62,1383.52,-6,0,0,0,-0.0869565217391305,0,0,0,0,0,-24.3899999999999,-0.57000000000005,-0.450000000000045 +"default:fresh_default","bcfishpass:fresh","NARC","BT","any",100,7,7,7,7,7,1,1,1,1,1,1,4336.98,873.49,1703.68,7,7,7,7,7,1,1,1,1,1,1,2994.54,633.18,1162.09,0,0,0,0,0,0,0,0,0,0,-1342.44,-240.31,-541.59 +"default:fresh_default","bcfishpass:fresh","NATR","BT","any",100,57,57,39,47,48,1,0.68421052631579,0.824561403508772,0.842105263157895,0.68421052631579,0.842105263157895,9819.51,1803.66,3496.13,57,53,35,44,44,0.929824561403509,0.614035087719298,0.771929824561403,0.771929824561403,0.614035087719298,0.771929824561403,8011.09,1516.19,3071.31,-4,-4,-3,-4,-0.0701754385964912,-0.0701754385964912,-0.0526315789473685,-0.0701754385964912,-0.0701754385964912,-0.0701754385964912,-1808.42,-287.47,-424.82 +"default:fresh_default","bcfishpass:fresh","NECR","BT","any",100,12,12,12,12,12,1,1,1,1,1,1,6329.74,991.14,1943.82,12,12,12,12,12,1,1,1,1,1,1,6156.77,989.82,1875.61,0,0,0,0,0,0,0,0,0,0,-172.969999999999,-1.31999999999994,-68.21 +"default:fresh_default","bcfishpass:fresh","OSPK","BT","any",100,12,12,10,12,12,1,0.833333333333333,1,1,0.833333333333333,1,1882.44,594.62,877.22,12,12,10,12,12,1,0.833333333333333,1,1,0.833333333333333,1,1881.19,594.62,866.44,0,0,0,0,0,0,0,0,0,0,-1.25,0,-10.78 +"default:fresh_default","bcfishpass:fresh","PARA","BT","any",100,77,77,62,68,70,1,0.805194805194805,0.883116883116883,0.909090909090909,0.805194805194805,0.909090909090909,4400.24,720.29,1330.46,77,77,62,70,70,1,0.805194805194805,0.909090909090909,0.909090909090909,0.805194805194805,0.909090909090909,4256.87,718.23,1769.82,0,0,2,0,0,0,0.025974025974026,0,0,0,-143.37,-2.05999999999995,439.36 +"default:fresh_default","bcfishpass:fresh","PARS","BT","any",100,281,281,233,262,262,1,0.829181494661922,0.932384341637011,0.932384341637011,0.829181494661922,0.932384341637011,6883.03,1685.38,2635.01,281,280,233,262,262,0.99644128113879,0.829181494661922,0.932384341637011,0.932384341637011,0.829181494661922,0.932384341637011,6822.47,1683.36,2575.08,-1,0,0,0,-0.00355871886120995,0,0,0,0,0,-60.5599999999995,-2.02000000000021,-59.9300000000003 +"default:fresh_default","bcfishpass:fresh","PCEA","BT","any",100,176,176,140,154,161,1,0.795454545454545,0.875,0.914772727272727,0.795454545454545,0.914772727272727,7091.82,921.92,1489.72,176,176,141,163,163,1,0.801136363636364,0.926136363636364,0.926136363636364,0.801136363636364,0.926136363636364,5002.96,925.72,2023.48,0,1,9,2,0,0.00568181818181823,0.0511363636363636,0.0113636363636364,0.00568181818181823,0.0113636363636364,-2088.86,3.80000000000007,533.76 +"default:fresh_default","bcfishpass:fresh","PINE","BT","any",100,249,249,227,241,241,1,0.911646586345382,0.967871485943775,0.967871485943775,0.911646586345382,0.967871485943775,5539.06,1645.08,2409.65,249,249,227,242,242,1,0.911646586345382,0.971887550200803,0.971887550200803,0.911646586345382,0.971887550200803,5425.97,1643.51,2376.18,0,0,1,1,0,0,0.00401606425702805,0.00401606425702805,0,0.00401606425702805,-113.09,-1.56999999999994,-33.4700000000003 +"default:fresh_default","bcfishpass:fresh","SALR","BT","any",100,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","SETN","BT","any",100,180,177,122,149,154,0.983333333333333,0.677777777777778,0.827777777777778,0.855555555555556,0.677777777777778,0.855555555555556,3258.86,851.7,1239.78,180,175,122,155,155,0.972222222222222,0.677777777777778,0.861111111111111,0.861111111111111,0.677777777777778,0.861111111111111,2844.64,816.05,1339.7,-2,0,6,1,-0.0111111111111111,0,0.0333333333333334,0.00555555555555565,0,0.00555555555555565,-414.22,-35.6500000000001,99.9200000000001 +"default:fresh_default","bcfishpass:fresh","TABR","BT","any",100,10,10,4,4,4,1,0.4,0.4,0.4,0.4,0.4,3402.26,678.31,1061,10,10,4,4,4,1,0.4,0.4,0.4,0.4,0.4,3305.18,677.05,1035.42,0,0,0,0,0,0,0,0,0,0,-97.0800000000004,-1.25999999999999,-25.5799999999999 +"default:fresh_default","bcfishpass:fresh","TOOD","BT","any",100,36,36,31,35,35,1,0.861111111111111,0.972222222222222,0.972222222222222,0.861111111111111,0.972222222222222,4697.77,1131.97,1815.93,36,36,31,35,35,1,0.861111111111111,0.972222222222222,0.972222222222222,0.861111111111111,0.972222222222222,4466.1,1118.51,1850.91,0,0,0,0,0,0,0,0,0,0,-231.67,-13.46,34.98 +"default:fresh_default","bcfishpass:fresh","TWAC","BT","any",100,2,2,2,2,2,1,1,1,1,1,1,1060.41,227.23,402.55,2,2,2,2,2,1,1,1,1,1,1,1002.12,226.3,393.93,0,0,0,0,0,0,0,0,0,0,-58.2900000000001,-0.929999999999978,-8.62 +"default:fresh_default","bcfishpass:fresh","UFRA","BT","any",100,87,87,46,58,58,1,0.528735632183908,0.666666666666667,0.666666666666667,0.528735632183908,0.666666666666667,2752.86,948.12,1217.11,87,87,47,59,59,1,0.540229885057471,0.67816091954023,0.67816091954023,0.540229885057471,0.67816091954023,2107.1,952.9,1239.84,0,1,1,1,0,0.0114942528735632,0.0114942528735632,0.0114942528735632,0.0114942528735632,0.0114942528735632,-645.76,4.77999999999997,22.73 +"default:fresh_default","bcfishpass:fresh","UNRS","BT","any",100,2,2,2,2,2,1,1,1,1,1,1,7487.48,645.96,1280.54,2,2,2,2,2,1,1,1,1,1,1,7431.77,644.82,1864.53,0,0,0,0,0,0,0,0,0,0,-55.7099999999991,-1.13999999999999,583.99 +"default:fresh_default","bcfishpass:fresh","UOMI","BT","any",100,82,82,46,53,53,1,0.560975609756098,0.646341463414634,0.646341463414634,0.560975609756098,0.646341463414634,3764.77,911.83,1451.62,82,82,46,54,54,1,0.560975609756098,0.658536585365854,0.658536585365854,0.560975609756098,0.658536585365854,3703.16,907.88,1459.1,0,0,1,1,0,0,0.0121951219512195,0.0121951219512195,0,0.0121951219512195,-61.6100000000001,-3.95000000000005,7.48000000000002 +"default:fresh_default","bcfishpass:fresh","UPCE","BT","any",100,153,152,138,138,138,0.993464052287582,0.901960784313726,0.901960784313726,0.901960784313726,0.901960784313726,0.901960784313726,5689.87,1682.32,2340.3,153,152,138,139,139,0.993464052287582,0.901960784313726,0.908496732026144,0.908496732026144,0.901960784313726,0.908496732026144,5261.16,1657.29,2320.94,0,0,1,1,0,0,0.00653594771241828,0.00653594771241828,0,0.00653594771241828,-428.71,-25.03,-19.3600000000001 +"default:fresh_default","bcfishpass:fresh","USKE","BT","any",100,32,32,29,31,31,1,0.90625,0.96875,0.96875,0.90625,0.96875,2969.07,739.68,1264.94,32,32,30,31,31,1,0.9375,0.96875,0.96875,0.9375,0.96875,3451.92,878.03,1438.52,0,1,0,0,0,0.03125,0,0,0.03125,0,482.85,138.35,173.58 +"default:fresh_default","bcfishpass:fresh","WILL","BT","any",100,54,54,41,51,51,1,0.759259259259259,0.944444444444444,0.944444444444444,0.759259259259259,0.944444444444444,4562.41,1055.35,1720.76,54,54,41,50,50,1,0.759259259259259,0.925925925925926,0.925925925925926,0.759259259259259,0.925925925925926,4515.45,1052.18,1690.35,0,0,-1,-1,0,0,-0.0185185185185185,-0.0185185185185185,0,-0.0185185185185185,-46.96,-3.16999999999985,-30.4100000000001 +"default:fresh_default","bcfishpass:fresh","ZYMO","BT","any",100,280,276,135,193,200,0.985714285714286,0.482142857142857,0.689285714285714,0.714285714285714,0.482142857142857,0.714285714285714,2058.68,594.73,897.89,280,244,128,188,188,0.871428571428571,0.457142857142857,0.671428571428571,0.671428571428571,0.457142857142857,0.671428571428571,1840.06,575.42,863.2,-32,-7,-5,-12,-0.114285714285714,-0.025,-0.0178571428571429,-0.0428571428571429,-0.025,-0.0428571428571429,-218.62,-19.3100000000001,-34.6899999999999 +"default:fresh_default","bcfishpass:fresh","BBAR","BT","rear",100,0,0,0,0,0,,,,,,,1761.57,329.41,560.67,0,0,0,0,0,,,,,,,1262.45,296.02,478.21,0,0,0,0,,,,,,,-499.12,-33.39,-82.46 +"default:fresh_default","bcfishpass:fresh","BULK","BT","rear",100,255,252,95,159,159,0.988235294117647,0.372549019607843,0.623529411764706,0.623529411764706,0.372549019607843,0.623529411764706,7713.98,1852.11,3012.7,255,232,86,151,151,0.909803921568627,0.337254901960784,0.592156862745098,0.592156862745098,0.337254901960784,0.592156862745098,7676.5,1866.31,3021.51,-20,-9,-8,-8,-0.0784313725490197,-0.0352941176470588,-0.0313725490196078,-0.0313725490196078,-0.0352941176470588,-0.0313725490196078,-37.4799999999996,14.2,8.8100000000004 +"default:fresh_default","bcfishpass:fresh","CARP","BT","rear",100,0,0,0,0,0,,,,,,,4420.57,502.37,1026.27,0,0,0,0,0,,,,,,,4296.5,497.07,1072.63,0,0,0,0,,,,,,,-124.07,-5.30000000000001,46.3600000000001 +"default:fresh_default","bcfishpass:fresh","CHES","BT","rear",100,0,0,0,0,0,,,,,,,2904.74,376.85,796.72,0,0,0,0,0,,,,,,,901.21,145.45,336.47,0,0,0,0,,,,,,,-2003.53,-231.4,-460.25 +"default:fresh_default","bcfishpass:fresh","CHWK","BT","rear",100,5,5,4,4,4,1,0.8,0.8,0.8,0.8,0.8,793.94,310.02,353.48,5,5,4,4,4,1,0.8,0.8,0.8,0.8,0.8,822.24,316.56,418.39,0,0,0,0,0,0,0,0,0,0,28.3,6.54000000000002,64.91 +"default:fresh_default","bcfishpass:fresh","COTR","BT","rear",100,0,0,0,0,0,,,,,,,6856.99,1480.88,2433.36,0,0,0,0,0,,,,,,,6878.95,1490.06,2340.71,0,0,0,0,,,,,,,21.96,9.17999999999984,-92.6500000000001 +"default:fresh_default","bcfishpass:fresh","CRKD","BT","rear",100,0,0,0,0,0,,,,,,,5115.69,695.8,1448.76,0,0,0,0,0,,,,,,,5051.55,695.63,1448.44,0,0,0,0,,,,,,,-64.1399999999994,-0.169999999999959,-0.319999999999936 +"default:fresh_default","bcfishpass:fresh","DOGC","BT","rear",100,0,0,0,0,0,,,,,,,1260.46,286.17,502.72,0,0,0,0,0,,,,,,,1251.04,288.83,481.5,0,0,0,0,,,,,,,-9.42000000000007,2.65999999999997,-21.22 +"default:fresh_default","bcfishpass:fresh","FINA","BT","rear",100,0,0,0,0,0,,,,,,,7889.87,1325.37,2218.78,0,0,0,0,0,,,,,,,6084.04,1277.62,2845.63,0,0,0,0,,,,,,,-1805.83,-47.75,626.85 +"default:fresh_default","bcfishpass:fresh","FINL","BT","rear",100,0,0,0,0,0,,,,,,,4515.86,1365.64,2107.58,0,0,0,0,0,,,,,,,4480.99,1365.64,2085.7,0,0,0,0,,,,,,,-34.8699999999999,0,-21.8800000000001 +"default:fresh_default","bcfishpass:fresh","FIRE","BT","rear",100,66,66,57,62,62,1,0.863636363636364,0.93939393939394,0.93939393939394,0.863636363636364,0.93939393939394,6663.44,1012.79,1911.07,66,66,57,62,62,1,0.863636363636364,0.93939393939394,0.93939393939394,0.863636363636364,0.93939393939394,6589.52,1012.26,2016.75,0,0,0,0,0,0,0,0,0,0,-73.9199999999992,-0.529999999999973,105.68 +"default:fresh_default","bcfishpass:fresh","FOXR","BT","rear",100,0,0,0,0,0,,,,,,,3665.56,928.18,1525.02,0,0,0,0,0,,,,,,,3587.54,922.1,1511.59,0,0,0,0,,,,,,,-78.02,-6.07999999999993,-13.4300000000001 +"default:fresh_default","bcfishpass:fresh","FRAN","BT","rear",100,90,90,45,63,63,1,0.5,0.7,0.7,0.5,0.7,9078.53,1120.86,2355.24,90,88,44,60,60,0.977777777777778,0.488888888888889,0.666666666666667,0.666666666666667,0.488888888888889,0.666666666666667,9265.93,1150.92,2834.02,-2,-1,-3,-3,-0.0222222222222223,-0.0111111111111111,-0.0333333333333333,-0.0333333333333333,-0.0111111111111111,-0.0333333333333333,187.4,30.0600000000002,478.78 +"default:fresh_default","bcfishpass:fresh","FRCN","BT","rear",100,5,5,2,5,5,1,0.4,1,1,0.4,1,1504.38,663.33,889.13,5,5,2,5,5,1,0.4,1,1,0.4,1,1502.48,691.1,964.06,0,0,0,0,0,0,0,0,0,0,-1.90000000000009,27.77,74.93 +"default:fresh_default","bcfishpass:fresh","HARR","BT","rear",100,7,7,4,7,7,1,0.571428571428571,1,1,0.571428571428571,1,1619.34,470.27,588.62,7,7,4,7,7,1,0.571428571428571,1,1,0.571428571428571,1,1561.45,468.9,827.82,0,0,0,0,0,0,0,0,0,0,-57.8899999999999,-1.37,239.2 +"default:fresh_default","bcfishpass:fresh","INGR","BT","rear",100,0,0,0,0,0,,,,,,,3925.58,1111.41,1736.58,0,0,0,0,0,,,,,,,3907.56,1111.41,1783.68,0,0,0,0,,,,,,,-18.02,0,47.1000000000001 +"default:fresh_default","bcfishpass:fresh","KISP","BT","rear",100,56,53,28,38,38,0.946428571428571,0.5,0.678571428571429,0.678571428571429,0.5,0.678571428571429,4529.14,1258.71,1894.95,56,51,27,37,37,0.910714285714286,0.482142857142857,0.660714285714286,0.660714285714286,0.482142857142857,0.660714285714286,4475.39,1261.15,1962.71,-2,-1,-1,-1,-0.0357142857142857,-0.0178571428571428,-0.0178571428571429,-0.0178571428571429,-0.0178571428571428,-0.0178571428571429,-53.75,2.44000000000005,67.76 +"default:fresh_default","bcfishpass:fresh","KLUM","BT","rear",100,141,137,72,98,98,0.971631205673759,0.51063829787234,0.695035460992908,0.695035460992908,0.51063829787234,0.695035460992908,2173.93,929.96,1229.04,141,121,66,92,92,0.858156028368794,0.468085106382979,0.652482269503546,0.652482269503546,0.468085106382979,0.652482269503546,1930.45,894.45,1189.16,-16,-6,-6,-6,-0.113475177304964,-0.0425531914893617,-0.0425531914893617,-0.0425531914893617,-0.0425531914893617,-0.0425531914893617,-243.48,-35.51,-39.8799999999999 +"default:fresh_default","bcfishpass:fresh","LBTN","BT","rear",100,0,0,0,0,0,,,,,,,9061.71,2027.4,2961.53,0,0,0,0,0,,,,,,,8647.79,2026.94,2189.51,0,0,0,0,,,,,,,-413.919999999998,-0.460000000000036,-772.02 +"default:fresh_default","bcfishpass:fresh","LCHL","BT","rear",100,0,0,0,0,0,,,,,,,5533.57,908.41,1581.55,0,0,0,0,0,,,,,,,5236.61,896.14,1550.64,0,0,0,0,,,,,,,-296.96,-12.27,-30.9099999999999 +"default:fresh_default","bcfishpass:fresh","LFRA","BT","rear",100,2,2,2,2,2,1,1,1,1,1,1,3569.06,1241.71,1516.52,2,2,2,2,2,1,1,1,1,1,1,3415.8,1284.59,1805.62,0,0,0,0,0,0,0,0,0,0,-153.26,42.8799999999999,289.1 +"default:fresh_default","bcfishpass:fresh","LKEL","BT","rear",100,26,26,12,18,18,1,0.461538461538462,0.692307692307692,0.692307692307692,0.461538461538462,0.692307692307692,405.16,144.67,218.77,26,26,12,17,17,1,0.461538461538462,0.653846153846154,0.653846153846154,0.461538461538462,0.653846153846154,401.02,144.74,222.78,0,0,-1,-1,0,0,-0.0384615384615384,-0.0384615384615384,0,-0.0384615384615384,-4.14000000000004,0.0700000000000216,4.00999999999999 +"default:fresh_default","bcfishpass:fresh","LOMI","BT","rear",100,0,0,0,0,0,,,,,,,3639.43,1004.03,1513.07,0,0,0,0,0,,,,,,,3436.23,967.82,1517.42,0,0,0,0,,,,,,,-203.2,-36.2099999999999,4.35000000000014 +"default:fresh_default","bcfishpass:fresh","LPCE","BT","rear",100,0,0,0,0,0,,,,,,,3571.54,1000.37,1386.86,0,0,0,0,0,,,,,,,3130.17,918.71,1261.4,0,0,0,0,,,,,,,-441.37,-81.66,-125.46 +"default:fresh_default","bcfishpass:fresh","LSAL","BT","rear",100,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","LSKE","BT","rear",100,111,109,74,87,87,0.981981981981982,0.666666666666667,0.783783783783784,0.783783783783784,0.666666666666667,0.783783783783784,3075.25,1326.45,1709.47,111,102,70,82,82,0.918918918918919,0.630630630630631,0.738738738738739,0.738738738738739,0.630630630630631,0.738738738738739,2884.31,1315.64,1751.5,-7,-4,-5,-5,-0.063063063063063,-0.036036036036036,-0.045045045045045,-0.045045045045045,-0.036036036036036,-0.045045045045045,-190.94,-10.8099999999999,42.03 +"default:fresh_default","bcfishpass:fresh","MESI","BT","rear",100,0,0,0,0,0,,,,,,,2825.32,691.09,1077.07,0,0,0,0,0,,,,,,,2767.09,685.99,1126.99,0,0,0,0,,,,,,,-58.23,-5.10000000000002,49.9200000000001 +"default:fresh_default","bcfishpass:fresh","MFRA","BT","rear",100,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","MORK","BT","rear",100,0,0,0,0,0,,,,,,,7202.59,2148.8,3077.39,0,0,0,0,0,,,,,,,8075.86,2434.23,3397.59,0,0,0,0,,,,,,,873.27,285.43,320.2 +"default:fresh_default","bcfishpass:fresh","MORR","BT","rear",100,106,106,32,64,66,1,0.30188679245283,0.60377358490566,0.622641509433962,0.30188679245283,0.622641509433962,4865.96,960.8,1685.2,106,102,31,64,64,0.962264150943396,0.292452830188679,0.60377358490566,0.60377358490566,0.292452830188679,0.60377358490566,4765.64,952.61,1829.89,-4,-1,0,-2,-0.0377358490566038,-0.00943396226415094,0,-0.0188679245283019,-0.00943396226415094,-0.0188679245283019,-100.32,-8.18999999999994,144.69 +"default:fresh_default","bcfishpass:fresh","MSKE","BT","rear",100,5,4,0,0,0,0.8,0,0,0,0,0,2691.58,922.19,1383.97,5,3,0,0,0,0.6,0,0,0,0,0,2667.19,921.62,1383.52,-1,0,0,0,-0.2,0,0,0,0,0,-24.3899999999999,-0.57000000000005,-0.450000000000045 +"default:fresh_default","bcfishpass:fresh","NARC","BT","rear",100,0,0,0,0,0,,,,,,,4336.98,873.49,1703.68,0,0,0,0,0,,,,,,,2994.54,633.18,1162.09,0,0,0,0,,,,,,,-1342.44,-240.31,-541.59 +"default:fresh_default","bcfishpass:fresh","NATR","BT","rear",100,0,0,0,0,0,,,,,,,9819.51,1803.66,3496.13,0,0,0,0,0,,,,,,,8011.09,1516.19,3071.31,0,0,0,0,,,,,,,-1808.42,-287.47,-424.82 +"default:fresh_default","bcfishpass:fresh","NECR","BT","rear",100,0,0,0,0,0,,,,,,,6329.74,991.14,1943.82,0,0,0,0,0,,,,,,,6156.77,989.82,1875.61,0,0,0,0,,,,,,,-172.969999999999,-1.31999999999994,-68.21 +"default:fresh_default","bcfishpass:fresh","OSPK","BT","rear",100,0,0,0,0,0,,,,,,,1882.44,594.62,877.22,0,0,0,0,0,,,,,,,1881.19,594.62,866.44,0,0,0,0,,,,,,,-1.25,0,-10.78 +"default:fresh_default","bcfishpass:fresh","PARA","BT","rear",100,0,0,0,0,0,,,,,,,4400.24,720.29,1330.46,0,0,0,0,0,,,,,,,4256.87,718.23,1769.82,0,0,0,0,,,,,,,-143.37,-2.05999999999995,439.36 +"default:fresh_default","bcfishpass:fresh","PARS","BT","rear",100,0,0,0,0,0,,,,,,,6883.03,1685.38,2635.01,0,0,0,0,0,,,,,,,6822.47,1683.36,2575.08,0,0,0,0,,,,,,,-60.5599999999995,-2.02000000000021,-59.9300000000003 +"default:fresh_default","bcfishpass:fresh","PCEA","BT","rear",100,0,0,0,0,0,,,,,,,7091.82,921.92,1489.72,0,0,0,0,0,,,,,,,5002.96,925.72,2023.48,0,0,0,0,,,,,,,-2088.86,3.80000000000007,533.76 +"default:fresh_default","bcfishpass:fresh","PINE","BT","rear",100,0,0,0,0,0,,,,,,,5539.06,1645.08,2409.65,0,0,0,0,0,,,,,,,5425.97,1643.51,2376.18,0,0,0,0,,,,,,,-113.09,-1.56999999999994,-33.4700000000003 +"default:fresh_default","bcfishpass:fresh","SALR","BT","rear",100,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","SETN","BT","rear",100,1,1,1,1,1,1,1,1,1,1,1,3258.86,851.7,1239.78,1,1,1,1,1,1,1,1,1,1,1,2844.64,816.05,1339.7,0,0,0,0,0,0,0,0,0,0,-414.22,-35.6500000000001,99.9200000000001 +"default:fresh_default","bcfishpass:fresh","TABR","BT","rear",100,0,0,0,0,0,,,,,,,3402.26,678.31,1061,0,0,0,0,0,,,,,,,3305.18,677.05,1035.42,0,0,0,0,,,,,,,-97.0800000000004,-1.25999999999999,-25.5799999999999 +"default:fresh_default","bcfishpass:fresh","TOOD","BT","rear",100,0,0,0,0,0,,,,,,,4697.77,1131.97,1815.93,0,0,0,0,0,,,,,,,4466.1,1118.51,1850.91,0,0,0,0,,,,,,,-231.67,-13.46,34.98 +"default:fresh_default","bcfishpass:fresh","TWAC","BT","rear",100,1,1,1,1,1,1,1,1,1,1,1,1060.41,227.23,402.55,1,1,1,1,1,1,1,1,1,1,1,1002.12,226.3,393.93,0,0,0,0,0,0,0,0,0,0,-58.2900000000001,-0.929999999999978,-8.62 +"default:fresh_default","bcfishpass:fresh","UFRA","BT","rear",100,0,0,0,0,0,,,,,,,2752.86,948.12,1217.11,0,0,0,0,0,,,,,,,2107.1,952.9,1239.84,0,0,0,0,,,,,,,-645.76,4.77999999999997,22.73 +"default:fresh_default","bcfishpass:fresh","UNRS","BT","rear",100,0,0,0,0,0,,,,,,,7487.48,645.96,1280.54,0,0,0,0,0,,,,,,,7431.77,644.82,1864.53,0,0,0,0,,,,,,,-55.7099999999991,-1.13999999999999,583.99 +"default:fresh_default","bcfishpass:fresh","UOMI","BT","rear",100,22,22,8,9,9,1,0.363636363636364,0.409090909090909,0.409090909090909,0.363636363636364,0.409090909090909,3764.77,911.83,1451.62,22,22,8,10,10,1,0.363636363636364,0.454545454545455,0.454545454545455,0.363636363636364,0.454545454545455,3703.16,907.88,1459.1,0,0,1,1,0,0,0.0454545454545454,0.0454545454545454,0,0.0454545454545454,-61.6100000000001,-3.95000000000005,7.48000000000002 +"default:fresh_default","bcfishpass:fresh","UPCE","BT","rear",100,0,0,0,0,0,,,,,,,5689.87,1682.32,2340.3,0,0,0,0,0,,,,,,,5261.16,1657.29,2320.94,0,0,0,0,,,,,,,-428.71,-25.03,-19.3600000000001 +"default:fresh_default","bcfishpass:fresh","USKE","BT","rear",100,1,1,1,1,1,1,1,1,1,1,1,2969.07,739.68,1264.94,1,1,1,1,1,1,1,1,1,1,1,3451.92,878.03,1438.52,0,0,0,0,0,0,0,0,0,0,482.85,138.35,173.58 +"default:fresh_default","bcfishpass:fresh","WILL","BT","rear",100,0,0,0,0,0,,,,,,,4562.41,1055.35,1720.76,0,0,0,0,0,,,,,,,4515.45,1052.18,1690.35,0,0,0,0,,,,,,,-46.96,-3.16999999999985,-30.4100000000001 +"default:fresh_default","bcfishpass:fresh","ZYMO","BT","rear",100,147,147,55,88,90,1,0.374149659863946,0.598639455782313,0.612244897959184,0.374149659863946,0.612244897959184,2058.68,594.73,897.89,147,123,49,79,79,0.836734693877551,0.333333333333333,0.537414965986395,0.537414965986395,0.333333333333333,0.537414965986395,1840.06,575.42,863.2,-24,-6,-9,-11,-0.163265306122449,-0.0408163265306123,-0.0612244897959183,-0.0748299319727891,-0.0408163265306123,-0.0748299319727891,-218.62,-19.3100000000001,-34.6899999999999 +"default:fresh_default","bcfishpass:fresh","BBAR","BT","spawn",100,0,0,0,0,0,,,,,,,1761.57,329.41,560.67,0,0,0,0,0,,,,,,,1262.45,296.02,478.21,0,0,0,0,,,,,,,-499.12,-33.39,-82.46 +"default:fresh_default","bcfishpass:fresh","BULK","BT","spawn",100,12,12,4,9,9,1,0.333333333333333,0.75,0.75,0.333333333333333,0.75,7713.98,1852.11,3012.7,12,11,4,9,9,0.916666666666667,0.333333333333333,0.75,0.75,0.333333333333333,0.75,7676.5,1866.31,3021.51,-1,0,0,0,-0.0833333333333334,0,0,0,0,0,-37.4799999999996,14.2,8.8100000000004 +"default:fresh_default","bcfishpass:fresh","CARP","BT","spawn",100,0,0,0,0,0,,,,,,,4420.57,502.37,1026.27,0,0,0,0,0,,,,,,,4296.5,497.07,1072.63,0,0,0,0,,,,,,,-124.07,-5.30000000000001,46.3600000000001 +"default:fresh_default","bcfishpass:fresh","CHES","BT","spawn",100,0,0,0,0,0,,,,,,,2904.74,376.85,796.72,0,0,0,0,0,,,,,,,901.21,145.45,336.47,0,0,0,0,,,,,,,-2003.53,-231.4,-460.25 +"default:fresh_default","bcfishpass:fresh","CHWK","BT","spawn",100,5,5,4,4,5,1,0.8,0.8,1,0.8,1,793.94,310.02,353.48,5,5,4,5,5,1,0.8,1,1,0.8,1,822.24,316.56,418.39,0,0,1,0,0,0,0.2,0,0,0,28.3,6.54000000000002,64.91 +"default:fresh_default","bcfishpass:fresh","COTR","BT","spawn",100,0,0,0,0,0,,,,,,,6856.99,1480.88,2433.36,0,0,0,0,0,,,,,,,6878.95,1490.06,2340.71,0,0,0,0,,,,,,,21.96,9.17999999999984,-92.6500000000001 +"default:fresh_default","bcfishpass:fresh","CRKD","BT","spawn",100,0,0,0,0,0,,,,,,,5115.69,695.8,1448.76,0,0,0,0,0,,,,,,,5051.55,695.63,1448.44,0,0,0,0,,,,,,,-64.1399999999994,-0.169999999999959,-0.319999999999936 +"default:fresh_default","bcfishpass:fresh","DOGC","BT","spawn",100,0,0,0,0,0,,,,,,,1260.46,286.17,502.72,0,0,0,0,0,,,,,,,1251.04,288.83,481.5,0,0,0,0,,,,,,,-9.42000000000007,2.65999999999997,-21.22 +"default:fresh_default","bcfishpass:fresh","FINA","BT","spawn",100,0,0,0,0,0,,,,,,,7889.87,1325.37,2218.78,0,0,0,0,0,,,,,,,6084.04,1277.62,2845.63,0,0,0,0,,,,,,,-1805.83,-47.75,626.85 +"default:fresh_default","bcfishpass:fresh","FINL","BT","spawn",100,0,0,0,0,0,,,,,,,4515.86,1365.64,2107.58,0,0,0,0,0,,,,,,,4480.99,1365.64,2085.7,0,0,0,0,,,,,,,-34.8699999999999,0,-21.8800000000001 +"default:fresh_default","bcfishpass:fresh","FIRE","BT","spawn",100,4,4,2,3,3,1,0.5,0.75,0.75,0.5,0.75,6663.44,1012.79,1911.07,4,4,2,2,2,1,0.5,0.5,0.5,0.5,0.5,6589.52,1012.26,2016.75,0,0,-1,-1,0,0,-0.25,-0.25,0,-0.25,-73.9199999999992,-0.529999999999973,105.68 +"default:fresh_default","bcfishpass:fresh","FOXR","BT","spawn",100,0,0,0,0,0,,,,,,,3665.56,928.18,1525.02,0,0,0,0,0,,,,,,,3587.54,922.1,1511.59,0,0,0,0,,,,,,,-78.02,-6.07999999999993,-13.4300000000001 +"default:fresh_default","bcfishpass:fresh","FRAN","BT","spawn",100,1,1,0,1,1,1,0,1,1,0,1,9078.53,1120.86,2355.24,1,1,0,1,1,1,0,1,1,0,1,9265.93,1150.92,2834.02,0,0,0,0,0,0,0,0,0,0,187.4,30.0600000000002,478.78 +"default:fresh_default","bcfishpass:fresh","FRCN","BT","spawn",100,1,1,1,1,1,1,1,1,1,1,1,1504.38,663.33,889.13,1,1,1,1,1,1,1,1,1,1,1,1502.48,691.1,964.06,0,0,0,0,0,0,0,0,0,0,-1.90000000000009,27.77,74.93 +"default:fresh_default","bcfishpass:fresh","HARR","BT","spawn",100,0,0,0,0,0,,,,,,,1619.34,470.27,588.62,0,0,0,0,0,,,,,,,1561.45,468.9,827.82,0,0,0,0,,,,,,,-57.8899999999999,-1.37,239.2 +"default:fresh_default","bcfishpass:fresh","INGR","BT","spawn",100,0,0,0,0,0,,,,,,,3925.58,1111.41,1736.58,0,0,0,0,0,,,,,,,3907.56,1111.41,1783.68,0,0,0,0,,,,,,,-18.02,0,47.1000000000001 +"default:fresh_default","bcfishpass:fresh","KISP","BT","spawn",100,5,5,2,3,3,1,0.4,0.6,0.6,0.4,0.6,4529.14,1258.71,1894.95,5,5,2,3,3,1,0.4,0.6,0.6,0.4,0.6,4475.39,1261.15,1962.71,0,0,0,0,0,0,0,0,0,0,-53.75,2.44000000000005,67.76 +"default:fresh_default","bcfishpass:fresh","KLUM","BT","spawn",100,0,0,0,0,0,,,,,,,2173.93,929.96,1229.04,0,0,0,0,0,,,,,,,1930.45,894.45,1189.16,0,0,0,0,,,,,,,-243.48,-35.51,-39.8799999999999 +"default:fresh_default","bcfishpass:fresh","LBTN","BT","spawn",100,0,0,0,0,0,,,,,,,9061.71,2027.4,2961.53,0,0,0,0,0,,,,,,,8647.79,2026.94,2189.51,0,0,0,0,,,,,,,-413.919999999998,-0.460000000000036,-772.02 +"default:fresh_default","bcfishpass:fresh","LCHL","BT","spawn",100,0,0,0,0,0,,,,,,,5533.57,908.41,1581.55,0,0,0,0,0,,,,,,,5236.61,896.14,1550.64,0,0,0,0,,,,,,,-296.96,-12.27,-30.9099999999999 +"default:fresh_default","bcfishpass:fresh","LFRA","BT","spawn",100,1,1,1,1,1,1,1,1,1,1,1,3569.06,1241.71,1516.52,1,1,1,1,1,1,1,1,1,1,1,3415.8,1284.59,1805.62,0,0,0,0,0,0,0,0,0,0,-153.26,42.8799999999999,289.1 +"default:fresh_default","bcfishpass:fresh","LKEL","BT","spawn",100,0,0,0,0,0,,,,,,,405.16,144.67,218.77,0,0,0,0,0,,,,,,,401.02,144.74,222.78,0,0,0,0,,,,,,,-4.14000000000004,0.0700000000000216,4.00999999999999 +"default:fresh_default","bcfishpass:fresh","LOMI","BT","spawn",100,0,0,0,0,0,,,,,,,3639.43,1004.03,1513.07,0,0,0,0,0,,,,,,,3436.23,967.82,1517.42,0,0,0,0,,,,,,,-203.2,-36.2099999999999,4.35000000000014 +"default:fresh_default","bcfishpass:fresh","LPCE","BT","spawn",100,0,0,0,0,0,,,,,,,3571.54,1000.37,1386.86,0,0,0,0,0,,,,,,,3130.17,918.71,1261.4,0,0,0,0,,,,,,,-441.37,-81.66,-125.46 +"default:fresh_default","bcfishpass:fresh","LSAL","BT","spawn",100,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","LSKE","BT","spawn",100,3,3,2,2,2,1,0.666666666666667,0.666666666666667,0.666666666666667,0.666666666666667,0.666666666666667,3075.25,1326.45,1709.47,3,3,2,2,2,1,0.666666666666667,0.666666666666667,0.666666666666667,0.666666666666667,0.666666666666667,2884.31,1315.64,1751.5,0,0,0,0,0,0,0,0,0,0,-190.94,-10.8099999999999,42.03 +"default:fresh_default","bcfishpass:fresh","MESI","BT","spawn",100,0,0,0,0,0,,,,,,,2825.32,691.09,1077.07,0,0,0,0,0,,,,,,,2767.09,685.99,1126.99,0,0,0,0,,,,,,,-58.23,-5.10000000000002,49.9200000000001 +"default:fresh_default","bcfishpass:fresh","MFRA","BT","spawn",100,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","MORK","BT","spawn",100,0,0,0,0,0,,,,,,,7202.59,2148.8,3077.39,0,0,0,0,0,,,,,,,8075.86,2434.23,3397.59,0,0,0,0,,,,,,,873.27,285.43,320.2 +"default:fresh_default","bcfishpass:fresh","MORR","BT","spawn",100,23,23,8,15,15,1,0.347826086956522,0.652173913043478,0.652173913043478,0.347826086956522,0.652173913043478,4865.96,960.8,1685.2,23,23,8,15,15,1,0.347826086956522,0.652173913043478,0.652173913043478,0.347826086956522,0.652173913043478,4765.64,952.61,1829.89,0,0,0,0,0,0,0,0,0,0,-100.32,-8.18999999999994,144.69 +"default:fresh_default","bcfishpass:fresh","MSKE","BT","spawn",100,4,4,2,2,2,1,0.5,0.5,0.5,0.5,0.5,2691.58,922.19,1383.97,4,3,2,2,2,0.75,0.5,0.5,0.5,0.5,0.5,2667.19,921.62,1383.52,-1,0,0,0,-0.25,0,0,0,0,0,-24.3899999999999,-0.57000000000005,-0.450000000000045 +"default:fresh_default","bcfishpass:fresh","NARC","BT","spawn",100,0,0,0,0,0,,,,,,,4336.98,873.49,1703.68,0,0,0,0,0,,,,,,,2994.54,633.18,1162.09,0,0,0,0,,,,,,,-1342.44,-240.31,-541.59 +"default:fresh_default","bcfishpass:fresh","NATR","BT","spawn",100,0,0,0,0,0,,,,,,,9819.51,1803.66,3496.13,0,0,0,0,0,,,,,,,8011.09,1516.19,3071.31,0,0,0,0,,,,,,,-1808.42,-287.47,-424.82 +"default:fresh_default","bcfishpass:fresh","NECR","BT","spawn",100,0,0,0,0,0,,,,,,,6329.74,991.14,1943.82,0,0,0,0,0,,,,,,,6156.77,989.82,1875.61,0,0,0,0,,,,,,,-172.969999999999,-1.31999999999994,-68.21 +"default:fresh_default","bcfishpass:fresh","OSPK","BT","spawn",100,0,0,0,0,0,,,,,,,1882.44,594.62,877.22,0,0,0,0,0,,,,,,,1881.19,594.62,866.44,0,0,0,0,,,,,,,-1.25,0,-10.78 +"default:fresh_default","bcfishpass:fresh","PARA","BT","spawn",100,0,0,0,0,0,,,,,,,4400.24,720.29,1330.46,0,0,0,0,0,,,,,,,4256.87,718.23,1769.82,0,0,0,0,,,,,,,-143.37,-2.05999999999995,439.36 +"default:fresh_default","bcfishpass:fresh","PARS","BT","spawn",100,0,0,0,0,0,,,,,,,6883.03,1685.38,2635.01,0,0,0,0,0,,,,,,,6822.47,1683.36,2575.08,0,0,0,0,,,,,,,-60.5599999999995,-2.02000000000021,-59.9300000000003 +"default:fresh_default","bcfishpass:fresh","PCEA","BT","spawn",100,1,1,0,0,1,1,0,0,1,0,1,7091.82,921.92,1489.72,1,1,0,1,1,1,0,1,1,0,1,5002.96,925.72,2023.48,0,0,1,0,0,0,1,0,0,0,-2088.86,3.80000000000007,533.76 +"default:fresh_default","bcfishpass:fresh","PINE","BT","spawn",100,3,3,3,3,3,1,1,1,1,1,1,5539.06,1645.08,2409.65,3,3,3,3,3,1,1,1,1,1,1,5425.97,1643.51,2376.18,0,0,0,0,0,0,0,0,0,0,-113.09,-1.56999999999994,-33.4700000000003 +"default:fresh_default","bcfishpass:fresh","SALR","BT","spawn",100,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","SETN","BT","spawn",100,3,2,2,2,2,0.666666666666667,0.666666666666667,0.666666666666667,0.666666666666667,0.666666666666667,0.666666666666667,3258.86,851.7,1239.78,3,2,2,2,2,0.666666666666667,0.666666666666667,0.666666666666667,0.666666666666667,0.666666666666667,0.666666666666667,2844.64,816.05,1339.7,0,0,0,0,0,0,0,0,0,0,-414.22,-35.6500000000001,99.9200000000001 +"default:fresh_default","bcfishpass:fresh","TABR","BT","spawn",100,0,0,0,0,0,,,,,,,3402.26,678.31,1061,0,0,0,0,0,,,,,,,3305.18,677.05,1035.42,0,0,0,0,,,,,,,-97.0800000000004,-1.25999999999999,-25.5799999999999 +"default:fresh_default","bcfishpass:fresh","TOOD","BT","spawn",100,0,0,0,0,0,,,,,,,4697.77,1131.97,1815.93,0,0,0,0,0,,,,,,,4466.1,1118.51,1850.91,0,0,0,0,,,,,,,-231.67,-13.46,34.98 +"default:fresh_default","bcfishpass:fresh","TWAC","BT","spawn",100,0,0,0,0,0,,,,,,,1060.41,227.23,402.55,0,0,0,0,0,,,,,,,1002.12,226.3,393.93,0,0,0,0,,,,,,,-58.2900000000001,-0.929999999999978,-8.62 +"default:fresh_default","bcfishpass:fresh","UFRA","BT","spawn",100,0,0,0,0,0,,,,,,,2752.86,948.12,1217.11,0,0,0,0,0,,,,,,,2107.1,952.9,1239.84,0,0,0,0,,,,,,,-645.76,4.77999999999997,22.73 +"default:fresh_default","bcfishpass:fresh","UNRS","BT","spawn",100,0,0,0,0,0,,,,,,,7487.48,645.96,1280.54,0,0,0,0,0,,,,,,,7431.77,644.82,1864.53,0,0,0,0,,,,,,,-55.7099999999991,-1.13999999999999,583.99 +"default:fresh_default","bcfishpass:fresh","UOMI","BT","spawn",100,0,0,0,0,0,,,,,,,3764.77,911.83,1451.62,0,0,0,0,0,,,,,,,3703.16,907.88,1459.1,0,0,0,0,,,,,,,-61.6100000000001,-3.95000000000005,7.48000000000002 +"default:fresh_default","bcfishpass:fresh","UPCE","BT","spawn",100,1,1,1,1,1,1,1,1,1,1,1,5689.87,1682.32,2340.3,1,1,1,1,1,1,1,1,1,1,1,5261.16,1657.29,2320.94,0,0,0,0,0,0,0,0,0,0,-428.71,-25.03,-19.3600000000001 +"default:fresh_default","bcfishpass:fresh","USKE","BT","spawn",100,0,0,0,0,0,,,,,,,2969.07,739.68,1264.94,0,0,0,0,0,,,,,,,3451.92,878.03,1438.52,0,0,0,0,,,,,,,482.85,138.35,173.58 +"default:fresh_default","bcfishpass:fresh","WILL","BT","spawn",100,0,0,0,0,0,,,,,,,4562.41,1055.35,1720.76,0,0,0,0,0,,,,,,,4515.45,1052.18,1690.35,0,0,0,0,,,,,,,-46.96,-3.16999999999985,-30.4100000000001 +"default:fresh_default","bcfishpass:fresh","ZYMO","BT","spawn",100,14,14,7,11,11,1,0.5,0.785714285714286,0.785714285714286,0.5,0.785714285714286,2058.68,594.73,897.89,14,12,7,9,9,0.857142857142857,0.5,0.642857142857143,0.642857142857143,0.5,0.642857142857143,1840.06,575.42,863.2,-2,0,-2,-2,-0.142857142857143,0,-0.142857142857143,-0.142857142857143,0,-0.142857142857143,-218.62,-19.3100000000001,-34.6899999999999 +"default:fresh_default","bcfishpass:fresh","BBAR","CH","any",100,5,3,1,1,1,0.6,0.2,0.2,0.2,0.2,0.2,275.36,160.2,169.06,5,3,1,1,1,0.6,0.2,0.2,0.2,0.2,0.2,269.11,160.2,167.83,0,0,0,0,0,0,0,0,0,0,-6.25,0,-1.22999999999999 +"default:fresh_default","bcfishpass:fresh","BULK","CH","any",100,110,110,105,108,108,1,0.954545454545455,0.981818181818182,0.981818181818182,0.945054945054945,0.981818181818182,5178.19,1264.07,2038.12,110,110,105,108,108,1,0.954545454545455,0.981818181818182,0.981818181818182,0.945054945054945,0.981818181818182,5089.63,1260.25,1730.12,0,0,0,0,0,0,0,0,0,0,-88.5599999999995,-3.81999999999994,-308 +"default:fresh_default","bcfishpass:fresh","CARP","CH","any",100,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","CHES","CH","any",100,87,85,81,82,83,0.977011494252874,0.931034482758621,0.942528735632184,0.954022988505747,0.915254237288136,0.954022988505747,780.54,88.26,258.88,87,85,81,82,82,0.977011494252874,0.931034482758621,0.942528735632184,0.942528735632184,0.915254237288136,0.942528735632184,750.66,88.26,149.77,0,0,0,-1,0,0,0,-0.0114942528735632,0,-0.0114942528735632,-29.88,0,-109.11 +"default:fresh_default","bcfishpass:fresh","CHWK","CH","any",100,21,21,17,16,19,1,0.80952380952381,0.761904761904762,0.904761904761905,0.789473684210526,0.904761904761905,698.92,257.8,310.79,21,19,14,14,14,0.904761904761905,0.666666666666667,0.666666666666667,0.666666666666667,0.68421052631579,0.666666666666667,662.37,253.93,301.07,-2,-3,-2,-5,-0.0952380952380952,-0.142857142857143,-0.0952380952380952,-0.238095238095238,-0.105263157894737,-0.238095238095238,-36.55,-3.87,-9.72000000000003 +"default:fresh_default","bcfishpass:fresh","COTR","CH","any",100,100,95,72,77,78,0.95,0.72,0.77,0.78,0.533333333333333,0.78,4143.01,702.76,1364.58,100,95,70,73,73,0.95,0.7,0.73,0.73,0.533333333333333,0.73,4119.15,694.8,1033.8,0,-2,-4,-5,0,-0.02,-0.04,-0.05,0,-0.05,-23.8600000000006,-7.96000000000004,-330.78 +"default:fresh_default","bcfishpass:fresh","CRKD","CH","any",100,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","DOGC","CH","any",100,5,5,5,5,5,1,1,1,1,1,1,358.78,162,196.9,5,5,5,5,5,1,1,1,1,1,1,358.45,162,180.33,0,0,0,0,0,0,0,0,0,0,-0.329999999999984,0,-16.57 +"default:fresh_default","bcfishpass:fresh","FINA","CH","any",100,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","FINL","CH","any",100,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","FIRE","CH","any",100,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","FOXR","CH","any",100,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","FRAN","CH","any",100,23,23,21,20,21,1,0.91304347826087,0.869565217391304,0.91304347826087,0.833333333333333,0.91304347826087,7351.32,597.53,1631.89,23,23,17,17,17,1,0.739130434782609,0.739130434782609,0.739130434782609,0.833333333333333,0.739130434782609,7176.56,540.43,971.87,0,-4,-3,-4,0,-0.173913043478261,-0.130434782608696,-0.173913043478261,0,-0.173913043478261,-174.759999999999,-57.1,-660.02 +"default:fresh_default","bcfishpass:fresh","FRCN","CH","any",100,31,30,26,27,27,0.967741935483871,0.838709677419355,0.870967741935484,0.870967741935484,0.722222222222222,0.870967741935484,749.15,451.01,481.99,31,30,22,27,27,0.967741935483871,0.709677419354839,0.870967741935484,0.870967741935484,0.722222222222222,0.870967741935484,716.2,428.99,474.71,0,-4,0,0,0,-0.129032258064516,0,0,0,0,-32.9499999999999,-22.02,-7.28000000000003 +"default:fresh_default","bcfishpass:fresh","HARR","CH","any",100,118,116,110,109,111,0.983050847457627,0.932203389830508,0.923728813559322,0.940677966101695,0.927272727272727,0.940677966101695,1148.93,329.59,385.83,118,116,109,109,109,0.983050847457627,0.923728813559322,0.923728813559322,0.923728813559322,0.927272727272727,0.923728813559322,1126.73,327.72,377.22,0,-1,0,-2,0,-0.00847457627118642,0,-0.0169491525423729,0,-0.0169491525423729,-22.2,-1.86999999999995,-8.60999999999996 +"default:fresh_default","bcfishpass:fresh","INGR","CH","any",100,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","KISP","CH","any",100,89,89,84,78,81,1,0.943820224719101,0.876404494382023,0.910112359550562,0.901960784313726,0.910112359550562,2841.44,862.28,1178.83,89,89,77,78,78,1,0.865168539325843,0.876404494382023,0.876404494382023,0.901960784313726,0.876404494382023,2786.73,860.45,1050.59,0,-7,0,-3,0,-0.0786516853932584,0,-0.0337078651685393,0,-0.0337078651685393,-54.71,-1.82999999999993,-128.24 +"default:fresh_default","bcfishpass:fresh","KLUM","CH","any",100,104,99,88,88,90,0.951923076923077,0.846153846153846,0.846153846153846,0.865384615384615,0.789473684210526,0.865384615384615,1523.16,708.12,905.48,104,99,85,87,87,0.951923076923077,0.817307692307692,0.836538461538462,0.836538461538462,0.789473684210526,0.836538461538462,1481.08,707.93,830.68,0,-3,-1,-3,0,-0.0288461538461539,-0.00961538461538458,-0.0288461538461539,0,-0.0288461538461539,-42.0800000000002,-0.190000000000055,-74.8000000000001 +"default:fresh_default","bcfishpass:fresh","LBTN","CH","any",100,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","LCHL","CH","any",100,38,38,36,36,36,1,0.947368421052632,0.947368421052632,0.947368421052632,0.916666666666667,0.947368421052632,4358.83,468.47,1153.83,38,38,32,36,36,1,0.842105263157895,0.947368421052632,0.947368421052632,0.916666666666667,0.947368421052632,4159.73,464.81,826.81,0,-4,0,0,0,-0.105263157894737,0,0,0,0,-199.1,-3.66000000000003,-327.02 +"default:fresh_default","bcfishpass:fresh","LFRA","CH","any",100,165,161,108,135,136,0.975757575757576,0.654545454545455,0.818181818181818,0.824242424242424,0.60958904109589,0.824242424242424,3074.38,826.28,1254.99,165,159,107,135,135,0.963636363636364,0.648484848484848,0.818181818181818,0.818181818181818,0.60958904109589,0.818181818181818,2754.05,820.43,1176.68,-2,-1,0,-1,-0.0121212121212121,-0.0060606060606061,0,-0.00606060606060599,0,-0.00606060606060599,-320.33,-5.85000000000002,-78.31 +"default:fresh_default","bcfishpass:fresh","LKEL","CH","any",100,14,14,13,12,12,1,0.928571428571429,0.857142857142857,0.857142857142857,0.888888888888889,0.857142857142857,332.18,106.7,162.87,14,14,11,11,11,1,0.785714285714286,0.785714285714286,0.785714285714286,0.888888888888889,0.785714285714286,328.21,106.49,123.85,0,-2,-1,-1,0,-0.142857142857143,-0.0714285714285714,-0.0714285714285714,0,-0.0714285714285714,-3.97000000000003,-0.210000000000008,-39.02 +"default:fresh_default","bcfishpass:fresh","LOMI","CH","any",100,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","LPCE","CH","any",100,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","LSAL","CH","any",100,17,17,17,17,17,1,1,1,1,1,1,3029.07,317.62,1060.92,17,17,17,17,17,1,1,1,1,1,1,2968.08,312.6,617.6,0,0,0,0,0,0,0,0,0,0,-60.9900000000002,-5.01999999999998,-443.32 +"default:fresh_default","bcfishpass:fresh","LSKE","CH","any",100,122,119,109,110,110,0.975409836065574,0.89344262295082,0.901639344262295,0.901639344262295,0.839506172839506,0.901639344262295,2101.75,1052.46,1308.55,122,119,103,110,110,0.975409836065574,0.844262295081967,0.901639344262295,0.901639344262295,0.839506172839506,0.901639344262295,2086.32,1049.22,1167.34,0,-6,0,0,0,-0.0491803278688524,0,0,0,0,-15.4299999999998,-3.24000000000001,-141.21 +"default:fresh_default","bcfishpass:fresh","MESI","CH","any",100,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","MFRA","CH","any",100,2,1,0,0,0,0.5,0,0,0,0,0,277.46,100.9,121.94,2,1,0,0,0,0.5,0,0,0,0,0,231.06,96.92,104.06,0,0,0,0,0,0,0,0,0,0,-46.4,-3.98,-17.88 +"default:fresh_default","bcfishpass:fresh","MORK","CH","any",100,156,155,145,145,146,0.993589743589744,0.92948717948718,0.92948717948718,0.935897435897436,0.816666666666667,0.935897435897436,5953.1,1577.65,2499.11,156,155,141,144,144,0.993589743589744,0.903846153846154,0.923076923076923,0.923076923076923,0.816666666666667,0.923076923076923,5705.82,1556.47,2225.04,0,-4,-1,-2,0,-0.0256410256410257,-0.00641025641025639,-0.0128205128205128,0,-0.0128205128205128,-247.280000000001,-21.1800000000001,-274.07 +"default:fresh_default","bcfishpass:fresh","MORR","CH","any",100,41,41,33,35,38,1,0.804878048780488,0.853658536585366,0.926829268292683,0.5625,0.926829268292683,3341.35,646.28,1171.33,41,41,31,34,34,1,0.75609756097561,0.829268292682927,0.829268292682927,0.5625,0.829268292682927,3328.25,644.81,880.69,0,-2,-1,-4,0,-0.0487804878048781,-0.024390243902439,-0.0975609756097562,0,-0.0975609756097562,-13.0999999999999,-1.47000000000003,-290.64 +"default:fresh_default","bcfishpass:fresh","MSKE","CH","any",100,42,40,38,38,38,0.952380952380952,0.904761904761905,0.904761904761905,0.904761904761905,0.88235294117647,0.904761904761905,1516.21,676.83,856.12,42,40,34,36,36,0.952380952380952,0.80952380952381,0.857142857142857,0.857142857142857,0.88235294117647,0.857142857142857,1506.83,676.03,779.76,0,-4,-2,-2,0,-0.0952380952380952,-0.0476190476190477,-0.0476190476190477,0,-0.0476190476190477,-9.38000000000011,-0.800000000000068,-76.36 +"default:fresh_default","bcfishpass:fresh","NARC","CH","any",100,22,22,21,21,21,1,0.954545454545455,0.954545454545455,0.954545454545455,0.75,0.954545454545455,3563.45,506.51,1327.21,22,22,20,21,21,1,0.909090909090909,0.954545454545455,0.954545454545455,0.75,0.954545454545455,2335,387.57,563.65,0,-1,0,0,0,-0.0454545454545455,0,0,0,0,-1228.45,-118.94,-763.56 +"default:fresh_default","bcfishpass:fresh","NATR","CH","any",100,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","NECR","CH","any",100,101,101,93,97,97,1,0.920792079207921,0.96039603960396,0.96039603960396,0.88235294117647,0.96039603960396,5608.47,516.15,1649.24,101,101,93,96,96,1,0.920792079207921,0.95049504950495,0.95049504950495,0.88235294117647,0.95049504950495,5489.42,515.99,1079.18,0,0,-1,-1,0,0,-0.00990099009900991,-0.00990099009900991,0,-0.00990099009900991,-119.05,-0.159999999999968,-570.06 +"default:fresh_default","bcfishpass:fresh","OSPK","CH","any",100,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","PARA","CH","any",100,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","PARS","CH","any",100,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","PCEA","CH","any",100,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","PINE","CH","any",100,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","SALR","CH","any",100,7,7,6,6,6,1,0.857142857142857,0.857142857142857,0.857142857142857,0.5,0.857142857142857,3174.7,234.92,966.25,7,7,6,6,6,1,0.857142857142857,0.857142857142857,0.857142857142857,0.5,0.857142857142857,3134.03,206.59,442.55,0,0,0,0,0,0,0,0,0,0,-40.6699999999996,-28.33,-523.7 +"default:fresh_default","bcfishpass:fresh","SETN","CH","any",100,117,116,111,112,113,0.991452991452991,0.948717948717949,0.957264957264957,0.965811965811966,0.454545454545455,0.965811965811966,1500.97,543.88,663.52,117,116,111,112,112,0.991452991452991,0.948717948717949,0.957264957264957,0.957264957264957,0.454545454545455,0.957264957264957,1497.15,537.97,609.35,0,0,0,-1,0,0,0,-0.00854700854700852,0,-0.00854700854700852,-3.81999999999994,-5.90999999999997,-54.17 +"default:fresh_default","bcfishpass:fresh","TABR","CH","any",100,50,48,32,33,33,0.96,0.64,0.66,0.66,0.622222222222222,0.66,2633.55,410.85,789.94,50,48,32,33,33,0.96,0.64,0.66,0.66,0.622222222222222,0.66,2566.6,410.27,642.88,0,0,0,0,0,0,0,0,0,0,-66.9500000000003,-0.580000000000041,-147.06 +"default:fresh_default","bcfishpass:fresh","TOOD","CH","any",100,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","TWAC","CH","any",100,9,9,8,9,9,1,0.888888888888889,1,1,0.888888888888889,1,705.9,144.23,228.3,9,9,8,9,9,1,0.888888888888889,1,1,0.888888888888889,1,689.03,144.23,173.02,0,0,0,0,0,0,0,0,0,0,-16.87,0,-55.28 +"default:fresh_default","bcfishpass:fresh","UFRA","CH","any",100,51,51,45,46,46,1,0.88235294117647,0.901960784313726,0.901960784313726,0.727272727272727,0.901960784313726,1487.28,642.83,764.56,51,51,45,46,46,1,0.88235294117647,0.901960784313726,0.901960784313726,0.727272727272727,0.901960784313726,1243.66,632.76,726.73,0,0,0,0,0,0,0,0,0,0,-243.62,-10.07,-37.8299999999999 +"default:fresh_default","bcfishpass:fresh","UNRS","CH","any",100,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","UOMI","CH","any",100,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","UPCE","CH","any",100,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","USKE","CH","any",100,8,8,8,8,8,1,1,1,1,1,1,1528.86,498.83,733.99,8,8,8,8,8,1,1,1,1,1,1,1518.35,498.83,593.41,0,0,0,0,0,0,0,0,0,0,-10.51,0,-140.58 +"default:fresh_default","bcfishpass:fresh","WILL","CH","any",100,58,58,55,55,55,1,0.948275862068966,0.948275862068966,0.948275862068966,0.833333333333333,0.948275862068966,3601.38,640.69,1364.26,58,58,54,55,55,1,0.931034482758621,0.948275862068966,0.948275862068966,0.833333333333333,0.948275862068966,3537.67,630.48,1029.73,0,-1,0,0,0,-0.0172413793103449,0,0,0,0,-63.71,-10.21,-334.53 +"default:fresh_default","bcfishpass:fresh","ZYMO","CH","any",100,21,19,15,16,16,0.904761904761905,0.714285714285714,0.761904761904762,0.761904761904762,0.538461538461538,0.761904761904762,1211.06,463.12,602.24,21,19,14,16,16,0.904761904761905,0.666666666666667,0.761904761904762,0.761904761904762,0.538461538461538,0.761904761904762,1200.73,462.91,539.94,0,-1,0,0,0,-0.0476190476190477,0,0,0,0,-10.3299999999999,-0.20999999999998,-62.3 +"default:fresh_default","bcfishpass:fresh","BBAR","CH","rear",100,0,0,0,0,0,,,,,,,275.36,160.2,169.06,0,0,0,0,0,,,,,,,269.11,160.2,167.83,0,0,0,0,,,,,,,-6.25,0,-1.22999999999999 +"default:fresh_default","bcfishpass:fresh","BULK","CH","rear",100,11,11,6,9,9,1,0.545454545454545,0.818181818181818,0.818181818181818,0.545454545454545,0.818181818181818,5178.19,1264.07,2038.12,11,11,6,9,9,1,0.545454545454545,0.818181818181818,0.818181818181818,0.545454545454545,0.818181818181818,5089.63,1260.25,1730.12,0,0,0,0,0,0,0,0,0,0,-88.5599999999995,-3.81999999999994,-308 +"default:fresh_default","bcfishpass:fresh","CARP","CH","rear",100,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","CHES","CH","rear",100,1,1,1,1,1,1,1,1,1,1,1,780.54,88.26,258.88,1,1,1,1,1,1,1,1,1,1,1,750.66,88.26,149.77,0,0,0,0,0,0,0,0,0,0,-29.88,0,-109.11 +"default:fresh_default","bcfishpass:fresh","CHWK","CH","rear",100,4,4,4,4,4,1,1,1,1,1,1,698.92,257.8,310.79,4,4,4,4,4,1,1,1,1,1,1,662.37,253.93,301.07,0,0,0,0,0,0,0,0,0,0,-36.55,-3.87,-9.72000000000003 +"default:fresh_default","bcfishpass:fresh","COTR","CH","rear",100,48,45,29,33,33,0.9375,0.604166666666667,0.6875,0.6875,0.472222222222222,0.6875,4143.01,702.76,1364.58,48,45,29,31,31,0.9375,0.604166666666667,0.645833333333333,0.645833333333333,0.472222222222222,0.645833333333333,4119.15,694.8,1033.8,0,0,-2,-2,0,0,-0.0416666666666666,-0.0416666666666666,0,-0.0416666666666666,-23.8600000000006,-7.96000000000004,-330.78 +"default:fresh_default","bcfishpass:fresh","CRKD","CH","rear",100,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","DOGC","CH","rear",100,0,0,0,0,0,,,,,,,358.78,162,196.9,0,0,0,0,0,,,,,,,358.45,162,180.33,0,0,0,0,,,,,,,-0.329999999999984,0,-16.57 +"default:fresh_default","bcfishpass:fresh","FINA","CH","rear",100,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","FINL","CH","rear",100,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","FIRE","CH","rear",100,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","FOXR","CH","rear",100,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","FRAN","CH","rear",100,4,4,2,2,2,1,0.5,0.5,0.5,0.5,0.5,7351.32,597.53,1631.89,4,4,2,2,2,1,0.5,0.5,0.5,0.5,0.5,7176.56,540.43,971.87,0,0,0,0,0,0,0,0,0,0,-174.759999999999,-57.1,-660.02 +"default:fresh_default","bcfishpass:fresh","FRCN","CH","rear",100,13,13,10,13,13,1,0.769230769230769,1,1,0.727272727272727,1,749.15,451.01,481.99,13,13,10,13,13,1,0.769230769230769,1,1,0.727272727272727,1,716.2,428.99,474.71,0,0,0,0,0,0,0,0,0,0,-32.9499999999999,-22.02,-7.28000000000003 +"default:fresh_default","bcfishpass:fresh","HARR","CH","rear",100,46,45,44,44,44,0.978260869565217,0.956521739130435,0.956521739130435,0.956521739130435,0.956521739130435,0.956521739130435,1148.93,329.59,385.83,46,45,44,44,44,0.978260869565217,0.956521739130435,0.956521739130435,0.956521739130435,0.956521739130435,0.956521739130435,1126.73,327.72,377.22,0,0,0,0,0,0,0,0,0,0,-22.2,-1.86999999999995,-8.60999999999996 +"default:fresh_default","bcfishpass:fresh","INGR","CH","rear",100,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","KISP","CH","rear",100,12,12,10,10,10,1,0.833333333333333,0.833333333333333,0.833333333333333,0.818181818181818,0.833333333333333,2841.44,862.28,1178.83,12,12,10,10,10,1,0.833333333333333,0.833333333333333,0.833333333333333,0.818181818181818,0.833333333333333,2786.73,860.45,1050.59,0,0,0,0,0,0,0,0,0,0,-54.71,-1.82999999999993,-128.24 +"default:fresh_default","bcfishpass:fresh","KLUM","CH","rear",100,19,19,14,16,16,1,0.736842105263158,0.842105263157895,0.842105263157895,0.666666666666667,0.842105263157895,1523.16,708.12,905.48,19,19,14,15,15,1,0.736842105263158,0.789473684210526,0.789473684210526,0.666666666666667,0.789473684210526,1481.08,707.93,830.68,0,0,-1,-1,0,0,-0.0526315789473684,-0.0526315789473684,0,-0.0526315789473684,-42.0800000000002,-0.190000000000055,-74.8000000000001 +"default:fresh_default","bcfishpass:fresh","LBTN","CH","rear",100,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","LCHL","CH","rear",100,23,23,21,21,21,1,0.91304347826087,0.91304347826087,0.91304347826087,0.846153846153846,0.91304347826087,4358.83,468.47,1153.83,23,23,17,21,21,1,0.739130434782609,0.91304347826087,0.91304347826087,0.846153846153846,0.91304347826087,4159.73,464.81,826.81,0,-4,0,0,0,-0.173913043478261,0,0,0,0,-199.1,-3.66000000000003,-327.02 +"default:fresh_default","bcfishpass:fresh","LFRA","CH","rear",100,66,65,40,55,55,0.984848484848485,0.606060606060606,0.833333333333333,0.833333333333333,0.566666666666667,0.833333333333333,3074.38,826.28,1254.99,66,63,40,55,55,0.954545454545455,0.606060606060606,0.833333333333333,0.833333333333333,0.566666666666667,0.833333333333333,2754.05,820.43,1176.68,-2,0,0,0,-0.0303030303030303,0,0,0,0,0,-320.33,-5.85000000000002,-78.31 +"default:fresh_default","bcfishpass:fresh","LKEL","CH","rear",100,2,2,2,2,2,1,1,1,1,1,1,332.18,106.7,162.87,2,2,2,2,2,1,1,1,1,1,1,328.21,106.49,123.85,0,0,0,0,0,0,0,0,0,0,-3.97000000000003,-0.210000000000008,-39.02 +"default:fresh_default","bcfishpass:fresh","LOMI","CH","rear",100,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","LPCE","CH","rear",100,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","LSAL","CH","rear",100,4,4,4,4,4,1,1,1,1,1,1,3029.07,317.62,1060.92,4,4,4,4,4,1,1,1,1,1,1,2968.08,312.6,617.6,0,0,0,0,0,0,0,0,0,0,-60.9900000000002,-5.01999999999998,-443.32 +"default:fresh_default","bcfishpass:fresh","LSKE","CH","rear",100,35,35,27,30,30,1,0.771428571428571,0.857142857142857,0.857142857142857,0.75,0.857142857142857,2101.75,1052.46,1308.55,35,35,26,30,30,1,0.742857142857143,0.857142857142857,0.857142857142857,0.75,0.857142857142857,2086.32,1049.22,1167.34,0,-1,0,0,0,-0.0285714285714286,0,0,0,0,-15.4299999999998,-3.24000000000001,-141.21 +"default:fresh_default","bcfishpass:fresh","MESI","CH","rear",100,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","MFRA","CH","rear",100,2,1,0,0,0,0.5,0,0,0,0,0,277.46,100.9,121.94,2,1,0,0,0,0.5,0,0,0,0,0,231.06,96.92,104.06,0,0,0,0,0,0,0,0,0,0,-46.4,-3.98,-17.88 +"default:fresh_default","bcfishpass:fresh","MORK","CH","rear",100,32,31,24,25,25,0.96875,0.75,0.78125,0.78125,0.529411764705882,0.78125,5953.1,1577.65,2499.11,32,31,24,25,25,0.96875,0.75,0.78125,0.78125,0.529411764705882,0.78125,5705.82,1556.47,2225.04,0,0,0,0,0,0,0,0,0,0,-247.280000000001,-21.1800000000001,-274.07 +"default:fresh_default","bcfishpass:fresh","MORR","CH","rear",100,2,2,1,2,2,1,0.5,1,1,0.5,1,3341.35,646.28,1171.33,2,2,1,2,2,1,0.5,1,1,0.5,1,3328.25,644.81,880.69,0,0,0,0,0,0,0,0,0,0,-13.0999999999999,-1.47000000000003,-290.64 +"default:fresh_default","bcfishpass:fresh","MSKE","CH","rear",100,2,1,2,1,1,0.5,1,0.5,0.5,,0.5,1516.21,676.83,856.12,2,1,1,1,1,0.5,0.5,0.5,0.5,,0.5,1506.83,676.03,779.76,0,-1,0,0,0,-0.5,0,0,,0,-9.38000000000011,-0.800000000000068,-76.36 +"default:fresh_default","bcfishpass:fresh","NARC","CH","rear",100,6,6,6,5,5,1,1,0.833333333333333,0.833333333333333,1,0.833333333333333,3563.45,506.51,1327.21,6,6,5,5,5,1,0.833333333333333,0.833333333333333,0.833333333333333,1,0.833333333333333,2335,387.57,563.65,0,-1,0,0,0,-0.166666666666667,0,0,0,0,-1228.45,-118.94,-763.56 +"default:fresh_default","bcfishpass:fresh","NATR","CH","rear",100,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","NECR","CH","rear",100,6,6,4,6,6,1,0.666666666666667,1,1,0.6,1,5608.47,516.15,1649.24,6,6,4,6,6,1,0.666666666666667,1,1,0.6,1,5489.42,515.99,1079.18,0,0,0,0,0,0,0,0,0,0,-119.05,-0.159999999999968,-570.06 +"default:fresh_default","bcfishpass:fresh","OSPK","CH","rear",100,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","PARA","CH","rear",100,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","PARS","CH","rear",100,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","PCEA","CH","rear",100,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","PINE","CH","rear",100,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","SALR","CH","rear",100,2,2,1,1,1,1,0.5,0.5,0.5,0.5,0.5,3174.7,234.92,966.25,2,2,1,1,1,1,0.5,0.5,0.5,0.5,0.5,3134.03,206.59,442.55,0,0,0,0,0,0,0,0,0,0,-40.6699999999996,-28.33,-523.7 +"default:fresh_default","bcfishpass:fresh","SETN","CH","rear",100,85,85,85,85,85,1,1,1,1,1,1,1500.97,543.88,663.52,85,85,85,85,85,1,1,1,1,1,1,1497.15,537.97,609.35,0,0,0,0,0,0,0,0,0,0,-3.81999999999994,-5.90999999999997,-54.17 +"default:fresh_default","bcfishpass:fresh","TABR","CH","rear",100,25,24,18,18,18,0.96,0.72,0.72,0.72,0.681818181818182,0.72,2633.55,410.85,789.94,25,24,18,18,18,0.96,0.72,0.72,0.72,0.681818181818182,0.72,2566.6,410.27,642.88,0,0,0,0,0,0,0,0,0,0,-66.9500000000003,-0.580000000000041,-147.06 +"default:fresh_default","bcfishpass:fresh","TOOD","CH","rear",100,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","TWAC","CH","rear",100,7,7,7,7,7,1,1,1,1,1,1,705.9,144.23,228.3,7,7,7,7,7,1,1,1,1,1,1,689.03,144.23,173.02,0,0,0,0,0,0,0,0,0,0,-16.87,0,-55.28 +"default:fresh_default","bcfishpass:fresh","UFRA","CH","rear",100,6,6,3,3,3,1,0.5,0.5,0.5,0.25,0.5,1487.28,642.83,764.56,6,6,3,3,3,1,0.5,0.5,0.5,0.25,0.5,1243.66,632.76,726.73,0,0,0,0,0,0,0,0,0,0,-243.62,-10.07,-37.8299999999999 +"default:fresh_default","bcfishpass:fresh","UNRS","CH","rear",100,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","UOMI","CH","rear",100,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","UPCE","CH","rear",100,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","USKE","CH","rear",100,0,0,0,0,0,,,,,,,1528.86,498.83,733.99,0,0,0,0,0,,,,,,,1518.35,498.83,593.41,0,0,0,0,,,,,,,-10.51,0,-140.58 +"default:fresh_default","bcfishpass:fresh","WILL","CH","rear",100,42,42,40,41,41,1,0.952380952380952,0.976190476190476,0.976190476190476,0.833333333333333,0.976190476190476,3601.38,640.69,1364.26,42,42,40,41,41,1,0.952380952380952,0.976190476190476,0.976190476190476,0.833333333333333,0.976190476190476,3537.67,630.48,1029.73,0,0,0,0,0,0,0,0,0,0,-63.71,-10.21,-334.53 +"default:fresh_default","bcfishpass:fresh","ZYMO","CH","rear",100,5,4,0,1,1,0.8,0,0.2,0.2,0,0.2,1211.06,463.12,602.24,5,4,0,1,1,0.8,0,0.2,0.2,0,0.2,1200.73,462.91,539.94,0,0,0,0,0,0,0,0,0,0,-10.3299999999999,-0.20999999999998,-62.3 +"default:fresh_default","bcfishpass:fresh","BBAR","CH","spawn",100,0,0,0,0,0,,,,,,,275.36,160.2,169.06,0,0,0,0,0,,,,,,,269.11,160.2,167.83,0,0,0,0,,,,,,,-6.25,0,-1.22999999999999 +"default:fresh_default","bcfishpass:fresh","BULK","CH","spawn",100,16,16,16,16,16,1,1,1,1,,1,5178.19,1264.07,2038.12,16,16,16,16,16,1,1,1,1,,1,5089.63,1260.25,1730.12,0,0,0,0,0,0,0,0,,0,-88.5599999999995,-3.81999999999994,-308 +"default:fresh_default","bcfishpass:fresh","CARP","CH","spawn",100,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","CHES","CH","spawn",100,3,2,2,2,2,0.666666666666667,0.666666666666667,0.666666666666667,0.666666666666667,0,0.666666666666667,780.54,88.26,258.88,3,2,2,2,2,0.666666666666667,0.666666666666667,0.666666666666667,0.666666666666667,0,0.666666666666667,750.66,88.26,149.77,0,0,0,0,0,0,0,0,0,0,-29.88,0,-109.11 +"default:fresh_default","bcfishpass:fresh","CHWK","CH","spawn",100,8,8,7,6,8,1,0.875,0.75,1,0.833333333333333,1,698.92,257.8,310.79,8,8,6,6,6,1,0.75,0.75,0.75,0.833333333333333,0.75,662.37,253.93,301.07,0,-1,0,-2,0,-0.125,0,-0.25,0,-0.25,-36.55,-3.87,-9.72000000000003 +"default:fresh_default","bcfishpass:fresh","COTR","CH","spawn",100,15,14,15,14,14,0.933333333333333,1,0.933333333333333,0.933333333333333,,0.933333333333333,4143.01,702.76,1364.58,15,14,13,13,13,0.933333333333333,0.866666666666667,0.866666666666667,0.866666666666667,,0.866666666666667,4119.15,694.8,1033.8,0,-2,-1,-1,0,-0.133333333333333,-0.0666666666666667,-0.0666666666666667,,-0.0666666666666667,-23.8600000000006,-7.96000000000004,-330.78 +"default:fresh_default","bcfishpass:fresh","CRKD","CH","spawn",100,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","DOGC","CH","spawn",100,2,2,2,2,2,1,1,1,1,,1,358.78,162,196.9,2,2,2,2,2,1,1,1,1,,1,358.45,162,180.33,0,0,0,0,0,0,0,0,,0,-0.329999999999984,0,-16.57 +"default:fresh_default","bcfishpass:fresh","FINA","CH","spawn",100,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","FINL","CH","spawn",100,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","FIRE","CH","spawn",100,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","FOXR","CH","spawn",100,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","FRAN","CH","spawn",100,4,4,4,3,4,1,1,0.75,1,,1,7351.32,597.53,1631.89,4,4,3,3,3,1,0.75,0.75,0.75,,0.75,7176.56,540.43,971.87,0,-1,0,-1,0,-0.25,0,-0.25,,-0.25,-174.759999999999,-57.1,-660.02 +"default:fresh_default","bcfishpass:fresh","FRCN","CH","spawn",100,5,5,5,3,3,1,1,0.6,0.6,,0.6,749.15,451.01,481.99,5,5,3,3,3,1,0.6,0.6,0.6,,0.6,716.2,428.99,474.71,0,-2,0,0,0,-0.4,0,0,,0,-32.9499999999999,-22.02,-7.28000000000003 +"default:fresh_default","bcfishpass:fresh","HARR","CH","spawn",100,4,4,4,3,3,1,1,0.75,0.75,,0.75,1148.93,329.59,385.83,4,4,3,3,3,1,0.75,0.75,0.75,,0.75,1126.73,327.72,377.22,0,-1,0,0,0,-0.25,0,0,,0,-22.2,-1.86999999999995,-8.60999999999996 +"default:fresh_default","bcfishpass:fresh","INGR","CH","spawn",100,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","KISP","CH","spawn",100,30,30,30,25,26,1,1,0.833333333333333,0.866666666666667,,0.866666666666667,2841.44,862.28,1178.83,30,30,25,25,25,1,0.833333333333333,0.833333333333333,0.833333333333333,,0.833333333333333,2786.73,860.45,1050.59,0,-5,0,-1,0,-0.166666666666667,0,-0.0333333333333333,,-0.0333333333333333,-54.71,-1.82999999999993,-128.24 +"default:fresh_default","bcfishpass:fresh","KLUM","CH","spawn",100,20,19,20,18,19,0.95,1,0.9,0.95,,0.95,1523.16,708.12,905.48,20,19,17,18,18,0.95,0.85,0.9,0.9,,0.9,1481.08,707.93,830.68,0,-3,0,-1,0,-0.15,0,-0.0499999999999999,,-0.0499999999999999,-42.0800000000002,-0.190000000000055,-74.8000000000001 +"default:fresh_default","bcfishpass:fresh","LBTN","CH","spawn",100,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","LCHL","CH","spawn",100,2,2,2,2,2,1,1,1,1,,1,4358.83,468.47,1153.83,2,2,2,2,2,1,1,1,1,,1,4159.73,464.81,826.81,0,0,0,0,0,0,0,0,,0,-199.1,-3.66000000000003,-327.02 +"default:fresh_default","bcfishpass:fresh","LFRA","CH","spawn",100,10,10,10,10,10,1,1,1,1,,1,3074.38,826.28,1254.99,10,10,9,10,10,1,0.9,1,1,,1,2754.05,820.43,1176.68,0,-1,0,0,0,-0.1,0,0,,0,-320.33,-5.85000000000002,-78.31 +"default:fresh_default","bcfishpass:fresh","LKEL","CH","spawn",100,3,3,3,2,2,1,1,0.666666666666667,0.666666666666667,,0.666666666666667,332.18,106.7,162.87,3,3,2,2,2,1,0.666666666666667,0.666666666666667,0.666666666666667,,0.666666666666667,328.21,106.49,123.85,0,-1,0,0,0,-0.333333333333333,0,0,,0,-3.97000000000003,-0.210000000000008,-39.02 +"default:fresh_default","bcfishpass:fresh","LOMI","CH","spawn",100,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","LPCE","CH","spawn",100,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","LSAL","CH","spawn",100,0,0,0,0,0,,,,,,,3029.07,317.62,1060.92,0,0,0,0,0,,,,,,,2968.08,312.6,617.6,0,0,0,0,,,,,,,-60.9900000000002,-5.01999999999998,-443.32 +"default:fresh_default","bcfishpass:fresh","LSKE","CH","spawn",100,24,23,24,22,22,0.958333333333333,1,0.916666666666667,0.916666666666667,,0.916666666666667,2101.75,1052.46,1308.55,24,23,21,22,22,0.958333333333333,0.875,0.916666666666667,0.916666666666667,,0.916666666666667,2086.32,1049.22,1167.34,0,-3,0,0,0,-0.125,0,0,,0,-15.4299999999998,-3.24000000000001,-141.21 +"default:fresh_default","bcfishpass:fresh","MESI","CH","spawn",100,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","MFRA","CH","spawn",100,0,0,0,0,0,,,,,,,277.46,100.9,121.94,0,0,0,0,0,,,,,,,231.06,96.92,104.06,0,0,0,0,,,,,,,-46.4,-3.98,-17.88 +"default:fresh_default","bcfishpass:fresh","MORK","CH","spawn",100,25,25,25,23,24,1,1,0.92,0.96,,0.96,5953.1,1577.65,2499.11,25,25,22,22,22,1,0.88,0.88,0.88,,0.88,5705.82,1556.47,2225.04,0,-3,-1,-2,0,-0.12,-0.04,-0.08,,-0.08,-247.280000000001,-21.1800000000001,-274.07 +"default:fresh_default","bcfishpass:fresh","MORR","CH","spawn",100,9,9,9,7,9,1,1,0.777777777777778,1,,1,3341.35,646.28,1171.33,9,9,7,7,7,1,0.777777777777778,0.777777777777778,0.777777777777778,,0.777777777777778,3328.25,644.81,880.69,0,-2,0,-2,0,-0.222222222222222,0,-0.222222222222222,,-0.222222222222222,-13.0999999999999,-1.47000000000003,-290.64 +"default:fresh_default","bcfishpass:fresh","MSKE","CH","spawn",100,4,3,4,3,3,0.75,1,0.75,0.75,,0.75,1516.21,676.83,856.12,4,3,2,2,2,0.75,0.5,0.5,0.5,,0.5,1506.83,676.03,779.76,0,-2,-1,-1,0,-0.5,-0.25,-0.25,,-0.25,-9.38000000000011,-0.800000000000068,-76.36 +"default:fresh_default","bcfishpass:fresh","NARC","CH","spawn",100,9,9,9,9,9,1,1,1,1,,1,3563.45,506.51,1327.21,9,9,9,9,9,1,1,1,1,,1,2335,387.57,563.65,0,0,0,0,0,0,0,0,,0,-1228.45,-118.94,-763.56 +"default:fresh_default","bcfishpass:fresh","NATR","CH","spawn",100,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","NECR","CH","spawn",100,9,9,9,9,9,1,1,1,1,,1,5608.47,516.15,1649.24,9,9,9,9,9,1,1,1,1,,1,5489.42,515.99,1079.18,0,0,0,0,0,0,0,0,,0,-119.05,-0.159999999999968,-570.06 +"default:fresh_default","bcfishpass:fresh","OSPK","CH","spawn",100,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","PARA","CH","spawn",100,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","PARS","CH","spawn",100,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","PCEA","CH","spawn",100,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","PINE","CH","spawn",100,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","SALR","CH","spawn",100,4,4,4,4,4,1,1,1,1,,1,3174.7,234.92,966.25,4,4,4,4,4,1,1,1,1,,1,3134.03,206.59,442.55,0,0,0,0,0,0,0,0,,0,-40.6699999999996,-28.33,-523.7 +"default:fresh_default","bcfishpass:fresh","SETN","CH","spawn",100,17,17,16,16,16,1,0.941176470588235,0.941176470588235,0.941176470588235,0,0.941176470588235,1500.97,543.88,663.52,17,17,16,16,16,1,0.941176470588235,0.941176470588235,0.941176470588235,0,0.941176470588235,1497.15,537.97,609.35,0,0,0,0,0,0,0,0,0,0,-3.81999999999994,-5.90999999999997,-54.17 +"default:fresh_default","bcfishpass:fresh","TABR","CH","spawn",100,0,0,0,0,0,,,,,,,2633.55,410.85,789.94,0,0,0,0,0,,,,,,,2566.6,410.27,642.88,0,0,0,0,,,,,,,-66.9500000000003,-0.580000000000041,-147.06 +"default:fresh_default","bcfishpass:fresh","TOOD","CH","spawn",100,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","TWAC","CH","spawn",100,0,0,0,0,0,,,,,,,705.9,144.23,228.3,0,0,0,0,0,,,,,,,689.03,144.23,173.02,0,0,0,0,,,,,,,-16.87,0,-55.28 +"default:fresh_default","bcfishpass:fresh","UFRA","CH","spawn",100,11,11,11,11,11,1,1,1,1,,1,1487.28,642.83,764.56,11,11,11,11,11,1,1,1,1,,1,1243.66,632.76,726.73,0,0,0,0,0,0,0,0,,0,-243.62,-10.07,-37.8299999999999 +"default:fresh_default","bcfishpass:fresh","UNRS","CH","spawn",100,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","UOMI","CH","spawn",100,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","UPCE","CH","spawn",100,0,0,0,0,0,,,,,,,,,,0,0,0,0,0,,,,,,,,,,0,0,0,0,,,,,,,,, +"default:fresh_default","bcfishpass:fresh","USKE","CH","spawn",100,0,0,0,0,0,,,,,,,1528.86,498.83,733.99,0,0,0,0,0,,,,,,,1518.35,498.83,593.41,0,0,0,0,,,,,,,-10.51,0,-140.58 +"default:fresh_default","bcfishpass:fresh","WILL","CH","spawn",100,3,3,3,2,2,1,1,0.666666666666667,0.666666666666667,,0.666666666666667,3601.38,640.69,1364.26,3,3,2,2,2,1,0.666666666666667,0.666666666666667,0.666666666666667,,0.666666666666667,3537.67,630.48,1029.73,0,-1,0,0,0,-0.333333333333333,0,0,,0,-63.71,-10.21,-334.53 +"default:fresh_default","bcfishpass:fresh","ZYMO","CH","spawn",100,8,7,8,7,7,0.875,1,0.875,0.875,,0.875,1211.06,463.12,602.24,8,7,7,7,7,0.875,0.875,0.875,0.875,,0.875,1200.73,462.91,539.94,0,-1,0,0,0,-0.125,0,0,,0,-10.3299999999999,-0.20999999999998,-62.3 diff --git a/data-raw/logs/habitat_validate_283/misses.csv b/data-raw/logs/habitat_validate_283/misses.csv new file mode 100644 index 00000000..4136ee86 --- /dev/null +++ b/data-raw/logs/habitat_validate_283/misses.csv @@ -0,0 +1,89 @@ +"bundle","stage","species_code","reason","n" +"default:fresh_default","any","BT","captured",4207 +"default:fresh_default","rear","BT","captured",700 +"default:fresh_default","spawn","BT","captured",38 +"default:fresh_default","any","CH","captured",1577 +"default:fresh_default","rear","CH","captured",434 +"default:fresh_default","spawn","CH","captured",246 +"default:fresh_default","any","BT","fails_gradient",344 +"default:fresh_default","rear","BT","fails_gradient",123 +"default:fresh_default","spawn","BT","fails_gradient",21 +"default:fresh_default","any","CH","fails_gradient",51 +"default:fresh_default","rear","CH","fails_gradient",25 +"default:fresh_default","spawn","CH","fails_gradient",1 +"default:fresh_default","any","BT","fails_gradient_and_width",100 +"default:fresh_default","rear","BT","fails_gradient_and_width",37 +"default:fresh_default","spawn","BT","fails_gradient_and_width",6 +"default:fresh_default","any","CH","fails_gradient_and_width",8 +"default:fresh_default","rear","CH","fails_gradient_and_width",7 +"default:fresh_default","any","BT","fails_width",126 +"default:fresh_default","rear","BT","fails_width",61 +"default:fresh_default","spawn","BT","fails_width",5 +"default:fresh_default","any","CH","fails_width",10 +"default:fresh_default","rear","CH","fails_width",5 +"default:fresh_default","any","BT","not_accessible",42 +"default:fresh_default","rear","BT","not_accessible",13 +"default:fresh_default","spawn","BT","not_accessible",1 +"default:fresh_default","any","CH","not_accessible",27 +"default:fresh_default","rear","CH","not_accessible",10 +"default:fresh_default","spawn","CH","not_accessible",1 +"default:fresh_default","any","BT","post_predicate",89 +"default:fresh_default","rear","BT","post_predicate",47 +"default:fresh_default","any","CH","post_predicate",14 +"default:fresh_default","rear","CH","post_predicate",6 +"default:fresh_default","any","BT","rule_excludes",36 +"default:fresh_default","rear","BT","rule_excludes",11 +"default:fresh_default","spawn","BT","rule_excludes",6 +"default:fresh_default","any","CH","rule_excludes",11 +"default:fresh_default","rear","CH","rule_excludes",2 +"default:fresh_default","spawn","CH","rule_excludes",1 +"default:fresh_default","any","BT","width_null",160 +"default:fresh_default","rear","BT","width_null",61 +"default:fresh_default","spawn","BT","width_null",5 +"default:fresh_default","any","CH","width_null",47 +"default:fresh_default","rear","CH","width_null",23 +"default:fresh_default","spawn","CH","width_null",1 +"bcfishpass:fresh","any","BT","captured",4786 +"bcfishpass:fresh","rear","BT","captured",670 +"bcfishpass:fresh","spawn","BT","captured",41 +"bcfishpass:fresh","any","CH","captured",1722 +"bcfishpass:fresh","rear","CH","captured",519 +"bcfishpass:fresh","spawn","CH","captured",274 +"bcfishpass:fresh","any","BT","fails_gradient",276 +"bcfishpass:fresh","rear","BT","fails_gradient",101 +"bcfishpass:fresh","spawn","BT","fails_gradient",18 +"bcfishpass:fresh","any","CH","fails_gradient",75 +"bcfishpass:fresh","rear","CH","fails_gradient",28 +"bcfishpass:fresh","spawn","CH","fails_gradient",11 +"bcfishpass:fresh","any","BT","fails_gradient_and_width",74 +"bcfishpass:fresh","rear","BT","fails_gradient_and_width",28 +"bcfishpass:fresh","spawn","BT","fails_gradient_and_width",5 +"bcfishpass:fresh","any","CH","fails_gradient_and_width",8 +"bcfishpass:fresh","rear","CH","fails_gradient_and_width",7 +"bcfishpass:fresh","spawn","CH","fails_gradient_and_width",1 +"bcfishpass:fresh","any","BT","fails_width",131 +"bcfishpass:fresh","rear","BT","fails_width",62 +"bcfishpass:fresh","spawn","BT","fails_width",5 +"bcfishpass:fresh","any","CH","fails_width",12 +"bcfishpass:fresh","rear","CH","fails_width",6 +"bcfishpass:fresh","spawn","CH","fails_width",2 +"bcfishpass:fresh","any","BT","not_accessible",181 +"bcfishpass:fresh","rear","BT","not_accessible",89 +"bcfishpass:fresh","spawn","BT","not_accessible",6 +"bcfishpass:fresh","any","CH","not_accessible",48 +"bcfishpass:fresh","rear","CH","not_accessible",15 +"bcfishpass:fresh","spawn","CH","not_accessible",7 +"bcfishpass:fresh","any","BT","post_predicate",71 +"bcfishpass:fresh","rear","BT","post_predicate",38 +"bcfishpass:fresh","any","CH","post_predicate",16 +"bcfishpass:fresh","rear","CH","post_predicate",7 +"bcfishpass:fresh","spawn","BT","rule_excludes",6 +"bcfishpass:fresh","any","CH","rule_excludes",66 +"bcfishpass:fresh","rear","CH","rule_excludes",7 +"bcfishpass:fresh","spawn","CH","rule_excludes",25 +"bcfishpass:fresh","any","BT","width_null",189 +"bcfishpass:fresh","rear","BT","width_null",64 +"bcfishpass:fresh","spawn","BT","width_null",5 +"bcfishpass:fresh","any","CH","width_null",52 +"bcfishpass:fresh","rear","CH","width_null",26 +"bcfishpass:fresh","spawn","CH","width_null",2 diff --git a/data-raw/logs/habitat_validate_283/misses_binned.csv b/data-raw/logs/habitat_validate_283/misses_binned.csv new file mode 100644 index 00000000..59b5958d --- /dev/null +++ b/data-raw/logs/habitat_validate_283/misses_binned.csv @@ -0,0 +1,853 @@ +"bundle","stage","species_code","reason","gradient_bin","width_bin","n" +"default:fresh_default","any","BT","fails_width","(-Inf,0.0025]","[0,1.5)",7 +"default:fresh_default","rear","BT","fails_width","(-Inf,0.0025]","[0,1.5)",3 +"default:fresh_default","any","CH","fails_width","(-Inf,0.0025]","[0,1.5)",4 +"default:fresh_default","rear","CH","fails_width","(-Inf,0.0025]","[0,1.5)",1 +"default:fresh_default","any","BT","rule_excludes","(-Inf,0.0025]","[0,1.5)",2 +"default:fresh_default","any","BT","fails_width","(0.0025,0.01]","[0,1.5)",2 +"default:fresh_default","any","CH","fails_width","(0.0025,0.01]","[0,1.5)",1 +"default:fresh_default","rear","CH","fails_width","(0.0025,0.01]","[0,1.5)",1 +"default:fresh_default","any","BT","post_predicate","(0.0025,0.01]","[0,1.5)",1 +"default:fresh_default","rear","BT","post_predicate","(0.0025,0.01]","[0,1.5)",1 +"default:fresh_default","any","BT","fails_width","(0.01,0.02]","[0,1.5)",12 +"default:fresh_default","rear","BT","fails_width","(0.01,0.02]","[0,1.5)",5 +"default:fresh_default","spawn","BT","fails_width","(0.01,0.02]","[0,1.5)",1 +"default:fresh_default","any","CH","fails_width","(0.01,0.02]","[0,1.5)",3 +"default:fresh_default","rear","CH","fails_width","(0.01,0.02]","[0,1.5)",1 +"default:fresh_default","any","BT","post_predicate","(0.01,0.02]","[0,1.5)",1 +"default:fresh_default","rear","BT","post_predicate","(0.01,0.02]","[0,1.5)",1 +"default:fresh_default","any","BT","fails_width","(0.02,0.03]","[0,1.5)",15 +"default:fresh_default","rear","BT","fails_width","(0.02,0.03]","[0,1.5)",5 +"default:fresh_default","any","CH","fails_width","(0.02,0.03]","[0,1.5)",1 +"default:fresh_default","rear","CH","fails_width","(0.02,0.03]","[0,1.5)",1 +"default:fresh_default","any","BT","rule_excludes","(0.02,0.03]","[0,1.5)",1 +"default:fresh_default","any","BT","fails_width","(0.03,0.045]","[0,1.5)",28 +"default:fresh_default","rear","BT","fails_width","(0.03,0.045]","[0,1.5)",17 +"default:fresh_default","spawn","BT","fails_width","(0.03,0.045]","[0,1.5)",1 +"default:fresh_default","any","CH","fails_width","(0.03,0.045]","[0,1.5)",1 +"default:fresh_default","rear","CH","fails_width","(0.03,0.045]","[0,1.5)",1 +"default:fresh_default","any","BT","fails_width","(0.045,0.055]","[0,1.5)",13 +"default:fresh_default","rear","BT","fails_width","(0.045,0.055]","[0,1.5)",8 +"default:fresh_default","spawn","BT","fails_gradient_and_width","(0.055,0.07]","[0,1.5)",1 +"default:fresh_default","any","CH","fails_gradient_and_width","(0.055,0.07]","[0,1.5)",2 +"default:fresh_default","rear","CH","fails_gradient_and_width","(0.055,0.07]","[0,1.5)",2 +"default:fresh_default","any","BT","fails_width","(0.055,0.07]","[0,1.5)",15 +"default:fresh_default","rear","BT","fails_width","(0.055,0.07]","[0,1.5)",4 +"default:fresh_default","spawn","BT","fails_gradient_and_width","(0.07,0.105]","[0,1.5)",2 +"default:fresh_default","any","CH","fails_gradient_and_width","(0.07,0.105]","[0,1.5)",1 +"default:fresh_default","rear","CH","fails_gradient_and_width","(0.07,0.105]","[0,1.5)",1 +"default:fresh_default","any","BT","fails_width","(0.07,0.105]","[0,1.5)",34 +"default:fresh_default","rear","BT","fails_width","(0.07,0.105]","[0,1.5)",19 +"default:fresh_default","any","CH","not_accessible","(0.07,0.105]","[0,1.5)",1 +"default:fresh_default","any","BT","fails_gradient_and_width","(0.105,0.135]","[0,1.5)",12 +"default:fresh_default","rear","BT","fails_gradient_and_width","(0.105,0.135]","[0,1.5)",7 +"default:fresh_default","any","CH","fails_gradient_and_width","(0.105,0.135]","[0,1.5)",1 +"default:fresh_default","rear","CH","fails_gradient_and_width","(0.105,0.135]","[0,1.5)",1 +"default:fresh_default","any","BT","fails_gradient_and_width","(0.135,0.15]","[0,1.5)",6 +"default:fresh_default","rear","BT","fails_gradient_and_width","(0.135,0.15]","[0,1.5)",1 +"default:fresh_default","any","BT","fails_gradient_and_width","(0.15,0.2]","[0,1.5)",6 +"default:fresh_default","rear","BT","fails_gradient_and_width","(0.15,0.2]","[0,1.5)",3 +"default:fresh_default","spawn","BT","fails_gradient_and_width","(0.15,0.2]","[0,1.5)",1 +"default:fresh_default","any","BT","not_accessible","(0.15,0.2]","[0,1.5)",3 +"default:fresh_default","any","BT","post_predicate","(0.15,0.2]","[0,1.5)",1 +"default:fresh_default","rear","BT","post_predicate","(0.15,0.2]","[0,1.5)",1 +"default:fresh_default","any","BT","fails_gradient_and_width","(0.2,0.25]","[0,1.5)",4 +"default:fresh_default","spawn","BT","fails_gradient_and_width","(0.2,0.25]","[0,1.5)",1 +"default:fresh_default","any","BT","fails_gradient_and_width","(0.25, Inf]","[0,1.5)",5 +"default:fresh_default","any","BT","rule_excludes","(-Inf,0.0025]","[1.5,2)",6 +"default:fresh_default","rear","BT","rule_excludes","(-Inf,0.0025]","[1.5,2)",2 +"default:fresh_default","spawn","BT","rule_excludes","(-Inf,0.0025]","[1.5,2)",1 +"default:fresh_default","any","CH","rule_excludes","(-Inf,0.0025]","[1.5,2)",1 +"default:fresh_default","any","CH","post_predicate","(0.0025,0.01]","[1.5,2)",1 +"default:fresh_default","rear","CH","post_predicate","(0.0025,0.01]","[1.5,2)",1 +"default:fresh_default","spawn","BT","fails_width","(0.01,0.02]","[1.5,2)",1 +"default:fresh_default","any","BT","post_predicate","(0.01,0.02]","[1.5,2)",3 +"default:fresh_default","rear","BT","post_predicate","(0.01,0.02]","[1.5,2)",2 +"default:fresh_default","spawn","BT","rule_excludes","(0.02,0.03]","[1.5,2)",1 +"default:fresh_default","spawn","BT","fails_width","(0.03,0.045]","[1.5,2)",1 +"default:fresh_default","any","BT","post_predicate","(0.03,0.045]","[1.5,2)",1 +"default:fresh_default","rear","BT","post_predicate","(0.03,0.045]","[1.5,2)",1 +"default:fresh_default","any","CH","post_predicate","(0.03,0.045]","[1.5,2)",1 +"default:fresh_default","spawn","BT","fails_width","(0.045,0.055]","[1.5,2)",1 +"default:fresh_default","any","CH","fails_gradient","(0.055,0.07]","[1.5,2)",2 +"default:fresh_default","rear","CH","fails_gradient","(0.055,0.07]","[1.5,2)",2 +"default:fresh_default","any","CH","not_accessible","(0.055,0.07]","[1.5,2)",1 +"default:fresh_default","rear","CH","not_accessible","(0.055,0.07]","[1.5,2)",1 +"default:fresh_default","any","BT","post_predicate","(0.055,0.07]","[1.5,2)",1 +"default:fresh_default","any","CH","fails_gradient","(0.07,0.105]","[1.5,2)",2 +"default:fresh_default","rear","CH","fails_gradient","(0.07,0.105]","[1.5,2)",2 +"default:fresh_default","spawn","BT","fails_gradient_and_width","(0.07,0.105]","[1.5,2)",1 +"default:fresh_default","any","BT","post_predicate","(0.07,0.105]","[1.5,2)",8 +"default:fresh_default","rear","BT","post_predicate","(0.07,0.105]","[1.5,2)",5 +"default:fresh_default","any","BT","fails_gradient","(0.105,0.135]","[1.5,2)",15 +"default:fresh_default","rear","BT","fails_gradient","(0.105,0.135]","[1.5,2)",8 +"default:fresh_default","any","BT","fails_gradient","(0.135,0.15]","[1.5,2)",3 +"default:fresh_default","rear","BT","fails_gradient","(0.135,0.15]","[1.5,2)",2 +"default:fresh_default","any","BT","fails_gradient","(0.15,0.2]","[1.5,2)",6 +"default:fresh_default","rear","BT","fails_gradient","(0.15,0.2]","[1.5,2)",4 +"default:fresh_default","any","BT","not_accessible","(0.15,0.2]","[1.5,2)",1 +"default:fresh_default","rear","BT","not_accessible","(0.15,0.2]","[1.5,2)",1 +"default:fresh_default","any","BT","fails_gradient","(0.2,0.25]","[1.5,2)",3 +"default:fresh_default","rear","BT","fails_gradient","(0.2,0.25]","[1.5,2)",2 +"default:fresh_default","any","BT","rule_excludes","(0.2,0.25]","[1.5,2)",1 +"default:fresh_default","any","BT","fails_gradient","(0.25, Inf]","[1.5,2)",4 +"default:fresh_default","rear","BT","fails_gradient","(0.25, Inf]","[1.5,2)",1 +"default:fresh_default","any","BT","not_accessible","(0.25, Inf]","[1.5,2)",1 +"default:fresh_default","rear","BT","not_accessible","(0.25, Inf]","[1.5,2)",1 +"default:fresh_default","any","BT","rule_excludes","(-Inf,0.0025]","[10,20)",3 +"default:fresh_default","rear","BT","rule_excludes","(-Inf,0.0025]","[10,20)",1 +"default:fresh_default","spawn","CH","rule_excludes","(-Inf,0.0025]","[10,20)",1 +"default:fresh_default","any","CH","not_accessible","(0.03,0.045]","[10,20)",2 +"default:fresh_default","any","BT","not_accessible","(0.045,0.055]","[10,20)",1 +"default:fresh_default","spawn","BT","fails_gradient","(0.055,0.07]","[10,20)",1 +"default:fresh_default","any","CH","fails_gradient","(0.055,0.07]","[10,20)",7 +"default:fresh_default","rear","CH","fails_gradient","(0.055,0.07]","[10,20)",1 +"default:fresh_default","any","BT","not_accessible","(0.055,0.07]","[10,20)",1 +"default:fresh_default","any","CH","fails_gradient","(0.07,0.105]","[10,20)",6 +"default:fresh_default","rear","CH","fails_gradient","(0.07,0.105]","[10,20)",1 +"default:fresh_default","any","CH","not_accessible","(0.07,0.105]","[10,20)",1 +"default:fresh_default","any","BT","post_predicate","(0.07,0.105]","[10,20)",4 +"default:fresh_default","rear","BT","post_predicate","(0.07,0.105]","[10,20)",2 +"default:fresh_default","any","BT","fails_gradient","(0.105,0.135]","[10,20)",21 +"default:fresh_default","rear","BT","fails_gradient","(0.105,0.135]","[10,20)",4 +"default:fresh_default","any","BT","not_accessible","(0.105,0.135]","[10,20)",1 +"default:fresh_default","any","CH","not_accessible","(0.105,0.135]","[10,20)",1 +"default:fresh_default","any","BT","fails_gradient","(0.135,0.15]","[10,20)",5 +"default:fresh_default","rear","BT","fails_gradient","(0.135,0.15]","[10,20)",2 +"default:fresh_default","any","CH","fails_gradient","(0.135,0.15]","[10,20)",1 +"default:fresh_default","rear","CH","fails_gradient","(0.135,0.15]","[10,20)",1 +"default:fresh_default","any","BT","not_accessible","(0.135,0.15]","[10,20)",1 +"default:fresh_default","spawn","BT","not_accessible","(0.135,0.15]","[10,20)",1 +"default:fresh_default","any","BT","fails_gradient","(0.15,0.2]","[10,20)",6 +"default:fresh_default","rear","BT","fails_gradient","(0.15,0.2]","[10,20)",1 +"default:fresh_default","any","BT","fails_gradient","(0.2,0.25]","[10,20)",1 +"default:fresh_default","any","BT","not_accessible","(0.2,0.25]","[10,20)",1 +"default:fresh_default","any","BT","fails_gradient","(0.25, Inf]","[10,20)",5 +"default:fresh_default","rear","BT","fails_gradient","(0.25, Inf]","[10,20)",3 +"default:fresh_default","any","BT","not_accessible","(0.25, Inf]","[10,20)",1 +"default:fresh_default","any","CH","not_accessible","(0.25, Inf]","[10,20)",1 +"default:fresh_default","rear","CH","not_accessible","(0.25, Inf]","[10,20)",1 +"default:fresh_default","any","BT","rule_excludes","(-Inf,0.0025]","[2,3)",6 +"default:fresh_default","rear","BT","rule_excludes","(-Inf,0.0025]","[2,3)",1 +"default:fresh_default","any","CH","rule_excludes","(-Inf,0.0025]","[2,3)",1 +"default:fresh_default","any","CH","post_predicate","(0.01,0.02]","[2,3)",2 +"default:fresh_default","any","CH","not_accessible","(0.02,0.03]","[2,3)",1 +"default:fresh_default","any","CH","post_predicate","(0.02,0.03]","[2,3)",4 +"default:fresh_default","rear","CH","post_predicate","(0.02,0.03]","[2,3)",3 +"default:fresh_default","spawn","BT","rule_excludes","(0.02,0.03]","[2,3)",1 +"default:fresh_default","any","CH","not_accessible","(0.03,0.045]","[2,3)",1 +"default:fresh_default","rear","CH","not_accessible","(0.03,0.045]","[2,3)",1 +"default:fresh_default","any","CH","post_predicate","(0.03,0.045]","[2,3)",1 +"default:fresh_default","rear","CH","post_predicate","(0.03,0.045]","[2,3)",1 +"default:fresh_default","any","CH","post_predicate","(0.045,0.055]","[2,3)",1 +"default:fresh_default","rear","CH","post_predicate","(0.045,0.055]","[2,3)",1 +"default:fresh_default","spawn","BT","fails_gradient","(0.055,0.07]","[2,3)",1 +"default:fresh_default","any","CH","fails_gradient","(0.055,0.07]","[2,3)",4 +"default:fresh_default","rear","CH","fails_gradient","(0.055,0.07]","[2,3)",3 +"default:fresh_default","any","BT","post_predicate","(0.055,0.07]","[2,3)",4 +"default:fresh_default","rear","BT","post_predicate","(0.055,0.07]","[2,3)",1 +"default:fresh_default","spawn","BT","fails_gradient","(0.07,0.105]","[2,3)",3 +"default:fresh_default","any","CH","fails_gradient","(0.07,0.105]","[2,3)",4 +"default:fresh_default","rear","CH","fails_gradient","(0.07,0.105]","[2,3)",4 +"default:fresh_default","any","BT","post_predicate","(0.07,0.105]","[2,3)",17 +"default:fresh_default","rear","BT","post_predicate","(0.07,0.105]","[2,3)",7 +"default:fresh_default","any","BT","fails_gradient","(0.105,0.135]","[2,3)",33 +"default:fresh_default","rear","BT","fails_gradient","(0.105,0.135]","[2,3)",23 +"default:fresh_default","spawn","BT","fails_gradient","(0.105,0.135]","[2,3)",3 +"default:fresh_default","any","CH","fails_gradient","(0.105,0.135]","[2,3)",1 +"default:fresh_default","any","BT","not_accessible","(0.105,0.135]","[2,3)",1 +"default:fresh_default","rear","BT","not_accessible","(0.105,0.135]","[2,3)",1 +"default:fresh_default","any","BT","fails_gradient","(0.135,0.15]","[2,3)",4 +"default:fresh_default","rear","BT","fails_gradient","(0.135,0.15]","[2,3)",2 +"default:fresh_default","any","BT","fails_gradient","(0.15,0.2]","[2,3)",10 +"default:fresh_default","rear","BT","fails_gradient","(0.15,0.2]","[2,3)",7 +"default:fresh_default","spawn","BT","fails_gradient","(0.15,0.2]","[2,3)",1 +"default:fresh_default","any","CH","fails_gradient","(0.15,0.2]","[2,3)",1 +"default:fresh_default","rear","CH","fails_gradient","(0.15,0.2]","[2,3)",1 +"default:fresh_default","any","BT","not_accessible","(0.15,0.2]","[2,3)",1 +"default:fresh_default","any","CH","not_accessible","(0.15,0.2]","[2,3)",1 +"default:fresh_default","rear","CH","not_accessible","(0.15,0.2]","[2,3)",1 +"default:fresh_default","any","BT","fails_gradient","(0.2,0.25]","[2,3)",3 +"default:fresh_default","rear","BT","fails_gradient","(0.2,0.25]","[2,3)",1 +"default:fresh_default","any","BT","not_accessible","(0.2,0.25]","[2,3)",1 +"default:fresh_default","rear","BT","not_accessible","(0.2,0.25]","[2,3)",1 +"default:fresh_default","any","BT","fails_gradient","(0.25, Inf]","[2,3)",6 +"default:fresh_default","rear","BT","fails_gradient","(0.25, Inf]","[2,3)",2 +"default:fresh_default","any","BT","not_accessible","(0.25, Inf]","[2,3)",4 +"default:fresh_default","rear","BT","not_accessible","(0.25, Inf]","[2,3)",1 +"default:fresh_default","any","CH","not_accessible","(-Inf,0.0025]","[20,Inf)",1 +"default:fresh_default","any","BT","rule_excludes","(-Inf,0.0025]","[20,Inf)",1 +"default:fresh_default","spawn","BT","rule_excludes","(-Inf,0.0025]","[20,Inf)",1 +"default:fresh_default","any","CH","rule_excludes","(-Inf,0.0025]","[20,Inf)",4 +"default:fresh_default","rear","CH","rule_excludes","(-Inf,0.0025]","[20,Inf)",2 +"default:fresh_default","any","CH","not_accessible","(0.01,0.02]","[20,Inf)",1 +"default:fresh_default","any","CH","fails_gradient","(0.055,0.07]","[20,Inf)",2 +"default:fresh_default","any","BT","post_predicate","(0.055,0.07]","[20,Inf)",2 +"default:fresh_default","rear","BT","post_predicate","(0.055,0.07]","[20,Inf)",1 +"default:fresh_default","any","CH","fails_gradient","(0.07,0.105]","[20,Inf)",2 +"default:fresh_default","any","CH","not_accessible","(0.07,0.105]","[20,Inf)",1 +"default:fresh_default","spawn","CH","not_accessible","(0.07,0.105]","[20,Inf)",1 +"default:fresh_default","any","BT","fails_gradient","(0.105,0.135]","[20,Inf)",2 +"default:fresh_default","rear","BT","fails_gradient","(0.105,0.135]","[20,Inf)",1 +"default:fresh_default","any","BT","not_accessible","(0.105,0.135]","[20,Inf)",1 +"default:fresh_default","any","BT","fails_gradient","(0.135,0.15]","[20,Inf)",2 +"default:fresh_default","any","BT","not_accessible","(0.135,0.15]","[20,Inf)",1 +"default:fresh_default","any","CH","not_accessible","(0.135,0.15]","[20,Inf)",1 +"default:fresh_default","any","BT","fails_gradient","(0.15,0.2]","[20,Inf)",1 +"default:fresh_default","rear","BT","fails_gradient","(0.15,0.2]","[20,Inf)",1 +"default:fresh_default","any","CH","fails_gradient","(0.15,0.2]","[20,Inf)",1 +"default:fresh_default","spawn","CH","fails_gradient","(0.15,0.2]","[20,Inf)",1 +"default:fresh_default","any","CH","not_accessible","(0.15,0.2]","[20,Inf)",1 +"default:fresh_default","rear","CH","fails_gradient","(0.2,0.25]","[20,Inf)",1 +"default:fresh_default","any","BT","fails_gradient","(0.25, Inf]","[20,Inf)",1 +"default:fresh_default","any","CH","not_accessible","(-Inf,0.0025]","[3,4)",1 +"default:fresh_default","any","BT","rule_excludes","(-Inf,0.0025]","[3,4)",1 +"default:fresh_default","any","CH","rule_excludes","(-Inf,0.0025]","[3,4)",1 +"default:fresh_default","any","CH","post_predicate","(0.0025,0.01]","[3,4)",1 +"default:fresh_default","any","CH","post_predicate","(0.01,0.02]","[3,4)",2 +"default:fresh_default","spawn","BT","fails_gradient","(0.055,0.07]","[3,4)",1 +"default:fresh_default","any","CH","fails_gradient","(0.055,0.07]","[3,4)",1 +"default:fresh_default","rear","CH","fails_gradient","(0.055,0.07]","[3,4)",1 +"default:fresh_default","any","BT","post_predicate","(0.055,0.07]","[3,4)",2 +"default:fresh_default","rear","BT","post_predicate","(0.055,0.07]","[3,4)",2 +"default:fresh_default","any","BT","fails_gradient","(0.07,0.105]","[3,4)",1 +"default:fresh_default","spawn","BT","fails_gradient","(0.07,0.105]","[3,4)",2 +"default:fresh_default","any","BT","post_predicate","(0.07,0.105]","[3,4)",10 +"default:fresh_default","rear","BT","post_predicate","(0.07,0.105]","[3,4)",5 +"default:fresh_default","any","BT","fails_gradient","(0.105,0.135]","[3,4)",31 +"default:fresh_default","rear","BT","fails_gradient","(0.105,0.135]","[3,4)",10 +"default:fresh_default","any","BT","fails_gradient","(0.135,0.15]","[3,4)",6 +"default:fresh_default","rear","BT","fails_gradient","(0.135,0.15]","[3,4)",3 +"default:fresh_default","any","BT","fails_gradient","(0.15,0.2]","[3,4)",10 +"default:fresh_default","rear","BT","fails_gradient","(0.15,0.2]","[3,4)",3 +"default:fresh_default","any","CH","not_accessible","(0.15,0.2]","[3,4)",1 +"default:fresh_default","rear","CH","not_accessible","(0.15,0.2]","[3,4)",1 +"default:fresh_default","any","BT","fails_gradient","(0.2,0.25]","[3,4)",2 +"default:fresh_default","spawn","BT","fails_gradient","(0.2,0.25]","[3,4)",1 +"default:fresh_default","any","BT","not_accessible","(0.2,0.25]","[3,4)",1 +"default:fresh_default","rear","BT","not_accessible","(0.2,0.25]","[3,4)",1 +"default:fresh_default","any","BT","fails_gradient","(0.25, Inf]","[3,4)",5 +"default:fresh_default","any","CH","fails_gradient","(0.25, Inf]","[3,4)",1 +"default:fresh_default","any","BT","rule_excludes","(-Inf,0.0025]","[4,6)",2 +"default:fresh_default","rear","BT","rule_excludes","(-Inf,0.0025]","[4,6)",1 +"default:fresh_default","spawn","BT","rule_excludes","(-Inf,0.0025]","[4,6)",1 +"default:fresh_default","any","CH","rule_excludes","(-Inf,0.0025]","[4,6)",1 +"default:fresh_default","any","CH","not_accessible","(0.0025,0.01]","[4,6)",1 +"default:fresh_default","rear","CH","not_accessible","(0.0025,0.01]","[4,6)",1 +"default:fresh_default","any","BT","not_accessible","(0.03,0.045]","[4,6)",1 +"default:fresh_default","spawn","BT","fails_gradient","(0.055,0.07]","[4,6)",2 +"default:fresh_default","any","CH","fails_gradient","(0.055,0.07]","[4,6)",1 +"default:fresh_default","rear","CH","fails_gradient","(0.055,0.07]","[4,6)",1 +"default:fresh_default","any","BT","not_accessible","(0.055,0.07]","[4,6)",1 +"default:fresh_default","any","BT","post_predicate","(0.055,0.07]","[4,6)",4 +"default:fresh_default","spawn","BT","fails_gradient","(0.07,0.105]","[4,6)",1 +"default:fresh_default","any","CH","fails_gradient","(0.07,0.105]","[4,6)",2 +"default:fresh_default","rear","CH","fails_gradient","(0.07,0.105]","[4,6)",1 +"default:fresh_default","any","BT","post_predicate","(0.07,0.105]","[4,6)",7 +"default:fresh_default","rear","BT","post_predicate","(0.07,0.105]","[4,6)",4 +"default:fresh_default","any","BT","fails_gradient","(0.105,0.135]","[4,6)",27 +"default:fresh_default","rear","BT","fails_gradient","(0.105,0.135]","[4,6)",7 +"default:fresh_default","spawn","BT","fails_gradient","(0.105,0.135]","[4,6)",2 +"default:fresh_default","any","CH","fails_gradient","(0.105,0.135]","[4,6)",1 +"default:fresh_default","any","BT","fails_gradient","(0.135,0.15]","[4,6)",9 +"default:fresh_default","rear","BT","fails_gradient","(0.135,0.15]","[4,6)",3 +"default:fresh_default","any","BT","fails_gradient","(0.15,0.2]","[4,6)",8 +"default:fresh_default","rear","BT","fails_gradient","(0.15,0.2]","[4,6)",3 +"default:fresh_default","any","BT","fails_gradient","(0.2,0.25]","[4,6)",6 +"default:fresh_default","rear","BT","fails_gradient","(0.2,0.25]","[4,6)",1 +"default:fresh_default","any","BT","fails_gradient","(0.25, Inf]","[4,6)",5 +"default:fresh_default","rear","BT","fails_gradient","(0.25, Inf]","[4,6)",1 +"default:fresh_default","any","BT","not_accessible","(0.25, Inf]","[4,6)",5 +"default:fresh_default","rear","BT","not_accessible","(0.25, Inf]","[4,6)",1 +"default:fresh_default","any","CH","not_accessible","(-Inf,0.0025]","[6,10)",1 +"default:fresh_default","rear","CH","not_accessible","(-Inf,0.0025]","[6,10)",1 +"default:fresh_default","any","CH","rule_excludes","(-Inf,0.0025]","[6,10)",1 +"default:fresh_default","any","CH","not_accessible","(0.02,0.03]","[6,10)",1 +"default:fresh_default","any","CH","post_predicate","(0.045,0.055]","[6,10)",1 +"default:fresh_default","any","CH","fails_gradient","(0.055,0.07]","[6,10)",5 +"default:fresh_default","rear","CH","fails_gradient","(0.055,0.07]","[6,10)",4 +"default:fresh_default","any","BT","not_accessible","(0.055,0.07]","[6,10)",2 +"default:fresh_default","any","BT","post_predicate","(0.055,0.07]","[6,10)",5 +"default:fresh_default","rear","BT","post_predicate","(0.055,0.07]","[6,10)",2 +"default:fresh_default","any","BT","fails_gradient","(0.07,0.105]","[6,10)",1 +"default:fresh_default","rear","BT","fails_gradient","(0.07,0.105]","[6,10)",1 +"default:fresh_default","spawn","BT","fails_gradient","(0.07,0.105]","[6,10)",1 +"default:fresh_default","any","CH","fails_gradient","(0.07,0.105]","[6,10)",7 +"default:fresh_default","rear","CH","fails_gradient","(0.07,0.105]","[6,10)",2 +"default:fresh_default","any","BT","not_accessible","(0.07,0.105]","[6,10)",1 +"default:fresh_default","any","BT","post_predicate","(0.07,0.105]","[6,10)",17 +"default:fresh_default","rear","BT","post_predicate","(0.07,0.105]","[6,10)",11 +"default:fresh_default","any","BT","fails_gradient","(0.105,0.135]","[6,10)",48 +"default:fresh_default","rear","BT","fails_gradient","(0.105,0.135]","[6,10)",15 +"default:fresh_default","any","BT","fails_gradient","(0.135,0.15]","[6,10)",12 +"default:fresh_default","rear","BT","fails_gradient","(0.135,0.15]","[6,10)",1 +"default:fresh_default","any","BT","fails_gradient","(0.15,0.2]","[6,10)",24 +"default:fresh_default","rear","BT","fails_gradient","(0.15,0.2]","[6,10)",6 +"default:fresh_default","any","BT","not_accessible","(0.15,0.2]","[6,10)",2 +"default:fresh_default","rear","BT","not_accessible","(0.15,0.2]","[6,10)",1 +"default:fresh_default","any","CH","not_accessible","(0.15,0.2]","[6,10)",1 +"default:fresh_default","any","BT","fails_gradient","(0.2,0.25]","[6,10)",10 +"default:fresh_default","rear","BT","fails_gradient","(0.2,0.25]","[6,10)",3 +"default:fresh_default","spawn","BT","fails_gradient","(0.2,0.25]","[6,10)",2 +"default:fresh_default","any","BT","fails_gradient","(0.25, Inf]","[6,10)",8 +"default:fresh_default","rear","BT","fails_gradient","(0.25, Inf]","[6,10)",2 +"default:fresh_default","any","BT","not_accessible","(0.25, Inf]","[6,10)",2 +"default:fresh_default","any","CH","not_accessible","(0.25, Inf]","[6,10)",1 +"default:fresh_default","any","CH","not_accessible","(-Inf,0.0025]","NULL",1 +"default:fresh_default","rear","CH","not_accessible","(-Inf,0.0025]","NULL",1 +"default:fresh_default","any","BT","rule_excludes","(-Inf,0.0025]","NULL",10 +"default:fresh_default","rear","BT","rule_excludes","(-Inf,0.0025]","NULL",6 +"default:fresh_default","spawn","BT","rule_excludes","(-Inf,0.0025]","NULL",1 +"default:fresh_default","any","CH","rule_excludes","(-Inf,0.0025]","NULL",2 +"default:fresh_default","any","BT","width_null","(-Inf,0.0025]","NULL",34 +"default:fresh_default","rear","BT","width_null","(-Inf,0.0025]","NULL",5 +"default:fresh_default","spawn","BT","width_null","(-Inf,0.0025]","NULL",1 +"default:fresh_default","any","CH","width_null","(-Inf,0.0025]","NULL",24 +"default:fresh_default","rear","CH","width_null","(-Inf,0.0025]","NULL",10 +"default:fresh_default","any","BT","width_null","(0.0025,0.01]","NULL",21 +"default:fresh_default","rear","BT","width_null","(0.0025,0.01]","NULL",3 +"default:fresh_default","any","CH","width_null","(0.0025,0.01]","NULL",6 +"default:fresh_default","rear","CH","width_null","(0.0025,0.01]","NULL",4 +"default:fresh_default","any","BT","width_null","(0.01,0.02]","NULL",16 +"default:fresh_default","rear","BT","width_null","(0.01,0.02]","NULL",5 +"default:fresh_default","spawn","BT","width_null","(0.01,0.02]","NULL",3 +"default:fresh_default","any","CH","width_null","(0.01,0.02]","NULL",7 +"default:fresh_default","rear","CH","width_null","(0.01,0.02]","NULL",2 +"default:fresh_default","spawn","CH","width_null","(0.01,0.02]","NULL",1 +"default:fresh_default","any","BT","width_null","(0.02,0.03]","NULL",11 +"default:fresh_default","rear","BT","width_null","(0.02,0.03]","NULL",9 +"default:fresh_default","any","CH","width_null","(0.02,0.03]","NULL",4 +"default:fresh_default","rear","CH","width_null","(0.02,0.03]","NULL",3 +"default:fresh_default","any","BT","rule_excludes","(0.03,0.045]","NULL",1 +"default:fresh_default","any","BT","width_null","(0.03,0.045]","NULL",19 +"default:fresh_default","rear","BT","width_null","(0.03,0.045]","NULL",10 +"default:fresh_default","spawn","BT","width_null","(0.03,0.045]","NULL",1 +"default:fresh_default","any","CH","width_null","(0.03,0.045]","NULL",5 +"default:fresh_default","rear","CH","width_null","(0.03,0.045]","NULL",3 +"default:fresh_default","any","BT","post_predicate","(0.045,0.055]","NULL",1 +"default:fresh_default","rear","BT","post_predicate","(0.045,0.055]","NULL",1 +"default:fresh_default","any","BT","rule_excludes","(0.045,0.055]","NULL",2 +"default:fresh_default","any","BT","width_null","(0.045,0.055]","NULL",10 +"default:fresh_default","rear","BT","width_null","(0.045,0.055]","NULL",4 +"default:fresh_default","any","CH","width_null","(0.045,0.055]","NULL",1 +"default:fresh_default","rear","CH","width_null","(0.045,0.055]","NULL",1 +"default:fresh_default","any","CH","fails_gradient_and_width","(0.055,0.07]","NULL",4 +"default:fresh_default","rear","CH","fails_gradient_and_width","(0.055,0.07]","NULL",3 +"default:fresh_default","any","CH","not_accessible","(0.055,0.07]","NULL",1 +"default:fresh_default","rear","CH","not_accessible","(0.055,0.07]","NULL",1 +"default:fresh_default","any","BT","width_null","(0.055,0.07]","NULL",14 +"default:fresh_default","rear","BT","width_null","(0.055,0.07]","NULL",8 +"default:fresh_default","any","CH","not_accessible","(0.07,0.105]","NULL",1 +"default:fresh_default","rear","CH","not_accessible","(0.07,0.105]","NULL",1 +"default:fresh_default","any","BT","width_null","(0.07,0.105]","NULL",35 +"default:fresh_default","rear","BT","width_null","(0.07,0.105]","NULL",17 +"default:fresh_default","any","BT","fails_gradient_and_width","(0.105,0.135]","NULL",19 +"default:fresh_default","rear","BT","fails_gradient_and_width","(0.105,0.135]","NULL",6 +"default:fresh_default","any","BT","not_accessible","(0.105,0.135]","NULL",1 +"default:fresh_default","rear","BT","not_accessible","(0.105,0.135]","NULL",1 +"default:fresh_default","any","CH","not_accessible","(0.105,0.135]","NULL",1 +"default:fresh_default","any","BT","fails_gradient_and_width","(0.135,0.15]","NULL",9 +"default:fresh_default","rear","BT","fails_gradient_and_width","(0.135,0.15]","NULL",3 +"default:fresh_default","any","BT","not_accessible","(0.135,0.15]","NULL",1 +"default:fresh_default","any","BT","fails_gradient_and_width","(0.15,0.2]","NULL",12 +"default:fresh_default","rear","BT","fails_gradient_and_width","(0.15,0.2]","NULL",4 +"default:fresh_default","any","BT","fails_gradient_and_width","(0.2,0.25]","NULL",5 +"default:fresh_default","rear","BT","fails_gradient_and_width","(0.2,0.25]","NULL",3 +"default:fresh_default","any","BT","not_accessible","(0.2,0.25]","NULL",1 +"default:fresh_default","rear","BT","not_accessible","(0.2,0.25]","NULL",1 +"default:fresh_default","any","BT","fails_gradient_and_width","(0.25, Inf]","NULL",22 +"default:fresh_default","rear","BT","fails_gradient_and_width","(0.25, Inf]","NULL",10 +"default:fresh_default","any","BT","not_accessible","(0.25, Inf]","NULL",4 +"default:fresh_default","rear","BT","not_accessible","(0.25, Inf]","NULL",3 +"default:fresh_default","any","CH","not_accessible","(0.25, Inf]","NULL",1 +"bcfishpass:fresh","any","BT","fails_width","(-Inf,0.0025]","[0,1.5)",14 +"bcfishpass:fresh","rear","BT","fails_width","(-Inf,0.0025]","[0,1.5)",5 +"bcfishpass:fresh","any","CH","fails_width","(-Inf,0.0025]","[0,1.5)",4 +"bcfishpass:fresh","rear","CH","fails_width","(-Inf,0.0025]","[0,1.5)",1 +"bcfishpass:fresh","any","CH","rule_excludes","(-Inf,0.0025]","[0,1.5)",4 +"bcfishpass:fresh","rear","CH","rule_excludes","(-Inf,0.0025]","[0,1.5)",1 +"bcfishpass:fresh","spawn","CH","rule_excludes","(-Inf,0.0025]","[0,1.5)",2 +"bcfishpass:fresh","any","BT","fails_width","(0.0025,0.01]","[0,1.5)",5 +"bcfishpass:fresh","rear","BT","fails_width","(0.0025,0.01]","[0,1.5)",1 +"bcfishpass:fresh","any","CH","fails_width","(0.0025,0.01]","[0,1.5)",1 +"bcfishpass:fresh","rear","CH","fails_width","(0.0025,0.01]","[0,1.5)",1 +"bcfishpass:fresh","any","BT","fails_width","(0.01,0.02]","[0,1.5)",16 +"bcfishpass:fresh","rear","BT","fails_width","(0.01,0.02]","[0,1.5)",7 +"bcfishpass:fresh","spawn","BT","fails_width","(0.01,0.02]","[0,1.5)",1 +"bcfishpass:fresh","any","CH","fails_width","(0.01,0.02]","[0,1.5)",4 +"bcfishpass:fresh","rear","CH","fails_width","(0.01,0.02]","[0,1.5)",2 +"bcfishpass:fresh","any","BT","fails_width","(0.02,0.03]","[0,1.5)",14 +"bcfishpass:fresh","rear","BT","fails_width","(0.02,0.03]","[0,1.5)",5 +"bcfishpass:fresh","any","CH","fails_width","(0.02,0.03]","[0,1.5)",1 +"bcfishpass:fresh","rear","CH","fails_width","(0.02,0.03]","[0,1.5)",1 +"bcfishpass:fresh","any","BT","fails_width","(0.03,0.045]","[0,1.5)",23 +"bcfishpass:fresh","rear","BT","fails_width","(0.03,0.045]","[0,1.5)",15 +"bcfishpass:fresh","spawn","BT","fails_width","(0.03,0.045]","[0,1.5)",1 +"bcfishpass:fresh","any","CH","fails_width","(0.03,0.045]","[0,1.5)",2 +"bcfishpass:fresh","rear","CH","fails_width","(0.03,0.045]","[0,1.5)",1 +"bcfishpass:fresh","any","BT","not_accessible","(0.03,0.045]","[0,1.5)",1 +"bcfishpass:fresh","rear","BT","not_accessible","(0.03,0.045]","[0,1.5)",1 +"bcfishpass:fresh","any","BT","fails_width","(0.045,0.055]","[0,1.5)",12 +"bcfishpass:fresh","rear","BT","fails_width","(0.045,0.055]","[0,1.5)",8 +"bcfishpass:fresh","spawn","BT","fails_gradient_and_width","(0.055,0.07]","[0,1.5)",1 +"bcfishpass:fresh","any","CH","fails_gradient_and_width","(0.055,0.07]","[0,1.5)",2 +"bcfishpass:fresh","rear","CH","fails_gradient_and_width","(0.055,0.07]","[0,1.5)",2 +"bcfishpass:fresh","any","BT","fails_width","(0.055,0.07]","[0,1.5)",14 +"bcfishpass:fresh","rear","BT","fails_width","(0.055,0.07]","[0,1.5)",3 +"bcfishpass:fresh","any","BT","not_accessible","(0.055,0.07]","[0,1.5)",1 +"bcfishpass:fresh","rear","BT","not_accessible","(0.055,0.07]","[0,1.5)",1 +"bcfishpass:fresh","spawn","BT","fails_gradient_and_width","(0.07,0.105]","[0,1.5)",2 +"bcfishpass:fresh","any","CH","fails_gradient_and_width","(0.07,0.105]","[0,1.5)",1 +"bcfishpass:fresh","rear","CH","fails_gradient_and_width","(0.07,0.105]","[0,1.5)",1 +"bcfishpass:fresh","any","BT","fails_width","(0.07,0.105]","[0,1.5)",33 +"bcfishpass:fresh","rear","BT","fails_width","(0.07,0.105]","[0,1.5)",18 +"bcfishpass:fresh","any","BT","not_accessible","(0.07,0.105]","[0,1.5)",1 +"bcfishpass:fresh","any","CH","not_accessible","(0.07,0.105]","[0,1.5)",1 +"bcfishpass:fresh","any","BT","fails_gradient_and_width","(0.105,0.135]","[0,1.5)",10 +"bcfishpass:fresh","rear","BT","fails_gradient_and_width","(0.105,0.135]","[0,1.5)",7 +"bcfishpass:fresh","any","CH","fails_gradient_and_width","(0.105,0.135]","[0,1.5)",1 +"bcfishpass:fresh","rear","CH","fails_gradient_and_width","(0.105,0.135]","[0,1.5)",1 +"bcfishpass:fresh","any","BT","fails_gradient_and_width","(0.135,0.15]","[0,1.5)",3 +"bcfishpass:fresh","any","BT","not_accessible","(0.135,0.15]","[0,1.5)",1 +"bcfishpass:fresh","any","BT","fails_gradient_and_width","(0.15,0.2]","[0,1.5)",5 +"bcfishpass:fresh","rear","BT","fails_gradient_and_width","(0.15,0.2]","[0,1.5)",3 +"bcfishpass:fresh","any","BT","fails_gradient_and_width","(0.2,0.25]","[0,1.5)",2 +"bcfishpass:fresh","spawn","BT","fails_gradient_and_width","(0.2,0.25]","[0,1.5)",1 +"bcfishpass:fresh","any","BT","not_accessible","(0.2,0.25]","[0,1.5)",2 +"bcfishpass:fresh","rear","BT","not_accessible","(0.2,0.25]","[0,1.5)",1 +"bcfishpass:fresh","spawn","BT","not_accessible","(0.2,0.25]","[0,1.5)",1 +"bcfishpass:fresh","any","BT","fails_gradient_and_width","(0.25, Inf]","[0,1.5)",3 +"bcfishpass:fresh","rear","BT","fails_gradient_and_width","(0.25, Inf]","[0,1.5)",1 +"bcfishpass:fresh","any","BT","not_accessible","(0.25, Inf]","[0,1.5)",2 +"bcfishpass:fresh","any","BT","not_accessible","(-Inf,0.0025]","[1.5,2)",2 +"bcfishpass:fresh","rear","BT","not_accessible","(-Inf,0.0025]","[1.5,2)",2 +"bcfishpass:fresh","any","BT","post_predicate","(-Inf,0.0025]","[1.5,2)",1 +"bcfishpass:fresh","rear","BT","post_predicate","(-Inf,0.0025]","[1.5,2)",1 +"bcfishpass:fresh","spawn","BT","rule_excludes","(-Inf,0.0025]","[1.5,2)",1 +"bcfishpass:fresh","any","CH","rule_excludes","(-Inf,0.0025]","[1.5,2)",3 +"bcfishpass:fresh","rear","CH","rule_excludes","(-Inf,0.0025]","[1.5,2)",1 +"bcfishpass:fresh","spawn","CH","rule_excludes","(-Inf,0.0025]","[1.5,2)",1 +"bcfishpass:fresh","any","CH","post_predicate","(0.0025,0.01]","[1.5,2)",1 +"bcfishpass:fresh","rear","CH","post_predicate","(0.0025,0.01]","[1.5,2)",1 +"bcfishpass:fresh","spawn","BT","fails_width","(0.01,0.02]","[1.5,2)",1 +"bcfishpass:fresh","any","BT","post_predicate","(0.01,0.02]","[1.5,2)",3 +"bcfishpass:fresh","rear","BT","post_predicate","(0.01,0.02]","[1.5,2)",2 +"bcfishpass:fresh","any","BT","not_accessible","(0.02,0.03]","[1.5,2)",1 +"bcfishpass:fresh","rear","BT","not_accessible","(0.02,0.03]","[1.5,2)",1 +"bcfishpass:fresh","spawn","BT","rule_excludes","(0.02,0.03]","[1.5,2)",1 +"bcfishpass:fresh","spawn","BT","fails_width","(0.03,0.045]","[1.5,2)",1 +"bcfishpass:fresh","any","CH","post_predicate","(0.03,0.045]","[1.5,2)",1 +"bcfishpass:fresh","spawn","BT","fails_width","(0.045,0.055]","[1.5,2)",1 +"bcfishpass:fresh","any","BT","post_predicate","(0.045,0.055]","[1.5,2)",1 +"bcfishpass:fresh","rear","BT","post_predicate","(0.045,0.055]","[1.5,2)",1 +"bcfishpass:fresh","any","CH","fails_gradient","(0.055,0.07]","[1.5,2)",2 +"bcfishpass:fresh","rear","CH","fails_gradient","(0.055,0.07]","[1.5,2)",2 +"bcfishpass:fresh","any","BT","not_accessible","(0.055,0.07]","[1.5,2)",1 +"bcfishpass:fresh","any","CH","not_accessible","(0.055,0.07]","[1.5,2)",1 +"bcfishpass:fresh","rear","CH","not_accessible","(0.055,0.07]","[1.5,2)",1 +"bcfishpass:fresh","any","BT","post_predicate","(0.055,0.07]","[1.5,2)",1 +"bcfishpass:fresh","any","CH","fails_gradient","(0.07,0.105]","[1.5,2)",3 +"bcfishpass:fresh","rear","CH","fails_gradient","(0.07,0.105]","[1.5,2)",3 +"bcfishpass:fresh","spawn","BT","fails_gradient_and_width","(0.07,0.105]","[1.5,2)",1 +"bcfishpass:fresh","any","BT","not_accessible","(0.07,0.105]","[1.5,2)",3 +"bcfishpass:fresh","rear","BT","not_accessible","(0.07,0.105]","[1.5,2)",1 +"bcfishpass:fresh","any","BT","post_predicate","(0.07,0.105]","[1.5,2)",7 +"bcfishpass:fresh","rear","BT","post_predicate","(0.07,0.105]","[1.5,2)",4 +"bcfishpass:fresh","any","BT","fails_gradient","(0.105,0.135]","[1.5,2)",13 +"bcfishpass:fresh","rear","BT","fails_gradient","(0.105,0.135]","[1.5,2)",9 +"bcfishpass:fresh","any","BT","fails_gradient","(0.135,0.15]","[1.5,2)",3 +"bcfishpass:fresh","rear","BT","fails_gradient","(0.135,0.15]","[1.5,2)",2 +"bcfishpass:fresh","any","BT","fails_gradient","(0.15,0.2]","[1.5,2)",5 +"bcfishpass:fresh","rear","BT","fails_gradient","(0.15,0.2]","[1.5,2)",3 +"bcfishpass:fresh","any","BT","not_accessible","(0.15,0.2]","[1.5,2)",5 +"bcfishpass:fresh","rear","BT","not_accessible","(0.15,0.2]","[1.5,2)",4 +"bcfishpass:fresh","any","BT","fails_gradient","(0.2,0.25]","[1.5,2)",2 +"bcfishpass:fresh","any","BT","not_accessible","(0.2,0.25]","[1.5,2)",1 +"bcfishpass:fresh","rear","BT","not_accessible","(0.2,0.25]","[1.5,2)",1 +"bcfishpass:fresh","any","BT","not_accessible","(0.25, Inf]","[1.5,2)",2 +"bcfishpass:fresh","any","BT","not_accessible","(-Inf,0.0025]","[10,20)",1 +"bcfishpass:fresh","any","CH","rule_excludes","(-Inf,0.0025]","[10,20)",16 +"bcfishpass:fresh","spawn","CH","rule_excludes","(-Inf,0.0025]","[10,20)",8 +"bcfishpass:fresh","any","BT","not_accessible","(0.0025,0.01]","[10,20)",1 +"bcfishpass:fresh","rear","BT","not_accessible","(0.0025,0.01]","[10,20)",1 +"bcfishpass:fresh","any","CH","rule_excludes","(0.0025,0.01]","[10,20)",3 +"bcfishpass:fresh","spawn","CH","rule_excludes","(0.0025,0.01]","[10,20)",2 +"bcfishpass:fresh","any","BT","not_accessible","(0.01,0.02]","[10,20)",4 +"bcfishpass:fresh","rear","BT","not_accessible","(0.01,0.02]","[10,20)",1 +"bcfishpass:fresh","any","CH","not_accessible","(0.01,0.02]","[10,20)",1 +"bcfishpass:fresh","any","BT","not_accessible","(0.02,0.03]","[10,20)",1 +"bcfishpass:fresh","any","BT","not_accessible","(0.03,0.045]","[10,20)",1 +"bcfishpass:fresh","any","CH","not_accessible","(0.03,0.045]","[10,20)",3 +"bcfishpass:fresh","any","CH","rule_excludes","(0.03,0.045]","[10,20)",1 +"bcfishpass:fresh","spawn","CH","rule_excludes","(0.03,0.045]","[10,20)",1 +"bcfishpass:fresh","spawn","CH","fails_gradient","(0.045,0.055]","[10,20)",1 +"bcfishpass:fresh","any","BT","not_accessible","(0.045,0.055]","[10,20)",1 +"bcfishpass:fresh","rear","BT","not_accessible","(0.045,0.055]","[10,20)",1 +"bcfishpass:fresh","spawn","BT","fails_gradient","(0.055,0.07]","[10,20)",1 +"bcfishpass:fresh","any","CH","fails_gradient","(0.055,0.07]","[10,20)",10 +"bcfishpass:fresh","rear","CH","fails_gradient","(0.055,0.07]","[10,20)",1 +"bcfishpass:fresh","spawn","CH","fails_gradient","(0.055,0.07]","[10,20)",2 +"bcfishpass:fresh","any","BT","not_accessible","(0.055,0.07]","[10,20)",1 +"bcfishpass:fresh","any","CH","fails_gradient","(0.07,0.105]","[10,20)",7 +"bcfishpass:fresh","rear","CH","fails_gradient","(0.07,0.105]","[10,20)",1 +"bcfishpass:fresh","any","BT","not_accessible","(0.07,0.105]","[10,20)",2 +"bcfishpass:fresh","rear","BT","not_accessible","(0.07,0.105]","[10,20)",1 +"bcfishpass:fresh","any","CH","not_accessible","(0.07,0.105]","[10,20)",1 +"bcfishpass:fresh","any","BT","post_predicate","(0.07,0.105]","[10,20)",1 +"bcfishpass:fresh","any","BT","fails_gradient","(0.105,0.135]","[10,20)",16 +"bcfishpass:fresh","rear","BT","fails_gradient","(0.105,0.135]","[10,20)",3 +"bcfishpass:fresh","any","BT","not_accessible","(0.105,0.135]","[10,20)",2 +"bcfishpass:fresh","rear","BT","not_accessible","(0.105,0.135]","[10,20)",1 +"bcfishpass:fresh","any","CH","not_accessible","(0.105,0.135]","[10,20)",1 +"bcfishpass:fresh","any","BT","fails_gradient","(0.135,0.15]","[10,20)",4 +"bcfishpass:fresh","rear","BT","fails_gradient","(0.135,0.15]","[10,20)",1 +"bcfishpass:fresh","any","CH","fails_gradient","(0.135,0.15]","[10,20)",1 +"bcfishpass:fresh","rear","CH","fails_gradient","(0.135,0.15]","[10,20)",1 +"bcfishpass:fresh","any","BT","fails_gradient","(0.15,0.2]","[10,20)",4 +"bcfishpass:fresh","rear","BT","fails_gradient","(0.15,0.2]","[10,20)",2 +"bcfishpass:fresh","any","CH","fails_gradient","(0.15,0.2]","[10,20)",1 +"bcfishpass:fresh","spawn","CH","fails_gradient","(0.15,0.2]","[10,20)",1 +"bcfishpass:fresh","any","BT","not_accessible","(0.15,0.2]","[10,20)",1 +"bcfishpass:fresh","any","BT","fails_gradient","(0.2,0.25]","[10,20)",3 +"bcfishpass:fresh","any","CH","fails_gradient","(0.2,0.25]","[10,20)",2 +"bcfishpass:fresh","spawn","CH","fails_gradient","(0.2,0.25]","[10,20)",2 +"bcfishpass:fresh","any","BT","fails_gradient","(0.25, Inf]","[10,20)",3 +"bcfishpass:fresh","rear","BT","fails_gradient","(0.25, Inf]","[10,20)",1 +"bcfishpass:fresh","any","BT","not_accessible","(0.25, Inf]","[10,20)",5 +"bcfishpass:fresh","rear","BT","not_accessible","(0.25, Inf]","[10,20)",2 +"bcfishpass:fresh","spawn","BT","not_accessible","(0.25, Inf]","[10,20)",1 +"bcfishpass:fresh","any","CH","not_accessible","(0.25, Inf]","[10,20)",2 +"bcfishpass:fresh","rear","CH","not_accessible","(0.25, Inf]","[10,20)",1 +"bcfishpass:fresh","any","BT","not_accessible","(-Inf,0.0025]","[2,3)",2 +"bcfishpass:fresh","rear","BT","not_accessible","(-Inf,0.0025]","[2,3)",2 +"bcfishpass:fresh","any","CH","rule_excludes","(-Inf,0.0025]","[2,3)",1 +"bcfishpass:fresh","spawn","CH","fails_width","(0.0025,0.01]","[2,3)",1 +"bcfishpass:fresh","spawn","CH","fails_width","(0.01,0.02]","[2,3)",1 +"bcfishpass:fresh","any","BT","not_accessible","(0.01,0.02]","[2,3)",1 +"bcfishpass:fresh","rear","BT","not_accessible","(0.01,0.02]","[2,3)",1 +"bcfishpass:fresh","any","CH","post_predicate","(0.01,0.02]","[2,3)",2 +"bcfishpass:fresh","any","CH","rule_excludes","(0.01,0.02]","[2,3)",1 +"bcfishpass:fresh","any","BT","not_accessible","(0.02,0.03]","[2,3)",2 +"bcfishpass:fresh","rear","BT","not_accessible","(0.02,0.03]","[2,3)",2 +"bcfishpass:fresh","any","CH","not_accessible","(0.02,0.03]","[2,3)",1 +"bcfishpass:fresh","any","CH","post_predicate","(0.02,0.03]","[2,3)",4 +"bcfishpass:fresh","rear","CH","post_predicate","(0.02,0.03]","[2,3)",3 +"bcfishpass:fresh","spawn","BT","rule_excludes","(0.02,0.03]","[2,3)",1 +"bcfishpass:fresh","any","CH","not_accessible","(0.03,0.045]","[2,3)",1 +"bcfishpass:fresh","rear","CH","not_accessible","(0.03,0.045]","[2,3)",1 +"bcfishpass:fresh","any","CH","post_predicate","(0.03,0.045]","[2,3)",1 +"bcfishpass:fresh","rear","CH","post_predicate","(0.03,0.045]","[2,3)",1 +"bcfishpass:fresh","any","BT","not_accessible","(0.045,0.055]","[2,3)",1 +"bcfishpass:fresh","any","CH","post_predicate","(0.045,0.055]","[2,3)",1 +"bcfishpass:fresh","rear","CH","post_predicate","(0.045,0.055]","[2,3)",1 +"bcfishpass:fresh","spawn","BT","fails_gradient","(0.055,0.07]","[2,3)",1 +"bcfishpass:fresh","any","CH","fails_gradient","(0.055,0.07]","[2,3)",4 +"bcfishpass:fresh","rear","CH","fails_gradient","(0.055,0.07]","[2,3)",3 +"bcfishpass:fresh","any","BT","post_predicate","(0.055,0.07]","[2,3)",5 +"bcfishpass:fresh","rear","BT","post_predicate","(0.055,0.07]","[2,3)",2 +"bcfishpass:fresh","any","BT","fails_gradient","(0.07,0.105]","[2,3)",1 +"bcfishpass:fresh","rear","BT","fails_gradient","(0.07,0.105]","[2,3)",1 +"bcfishpass:fresh","spawn","BT","fails_gradient","(0.07,0.105]","[2,3)",2 +"bcfishpass:fresh","any","CH","fails_gradient","(0.07,0.105]","[2,3)",4 +"bcfishpass:fresh","rear","CH","fails_gradient","(0.07,0.105]","[2,3)",4 +"bcfishpass:fresh","any","BT","not_accessible","(0.07,0.105]","[2,3)",7 +"bcfishpass:fresh","rear","BT","not_accessible","(0.07,0.105]","[2,3)",5 +"bcfishpass:fresh","spawn","BT","not_accessible","(0.07,0.105]","[2,3)",1 +"bcfishpass:fresh","any","BT","post_predicate","(0.07,0.105]","[2,3)",13 +"bcfishpass:fresh","rear","BT","post_predicate","(0.07,0.105]","[2,3)",5 +"bcfishpass:fresh","any","BT","fails_gradient","(0.105,0.135]","[2,3)",31 +"bcfishpass:fresh","rear","BT","fails_gradient","(0.105,0.135]","[2,3)",21 +"bcfishpass:fresh","spawn","BT","fails_gradient","(0.105,0.135]","[2,3)",3 +"bcfishpass:fresh","any","CH","fails_gradient","(0.105,0.135]","[2,3)",1 +"bcfishpass:fresh","any","BT","not_accessible","(0.105,0.135]","[2,3)",6 +"bcfishpass:fresh","rear","BT","not_accessible","(0.105,0.135]","[2,3)",4 +"bcfishpass:fresh","any","BT","fails_gradient","(0.135,0.15]","[2,3)",4 +"bcfishpass:fresh","rear","BT","fails_gradient","(0.135,0.15]","[2,3)",2 +"bcfishpass:fresh","any","BT","fails_gradient","(0.15,0.2]","[2,3)",9 +"bcfishpass:fresh","rear","BT","fails_gradient","(0.15,0.2]","[2,3)",5 +"bcfishpass:fresh","spawn","BT","fails_gradient","(0.15,0.2]","[2,3)",1 +"bcfishpass:fresh","any","CH","fails_gradient","(0.15,0.2]","[2,3)",1 +"bcfishpass:fresh","rear","CH","fails_gradient","(0.15,0.2]","[2,3)",1 +"bcfishpass:fresh","any","BT","fails_gradient","(0.2,0.25]","[2,3)",3 +"bcfishpass:fresh","rear","BT","fails_gradient","(0.2,0.25]","[2,3)",1 +"bcfishpass:fresh","any","BT","not_accessible","(0.2,0.25]","[2,3)",1 +"bcfishpass:fresh","rear","BT","not_accessible","(0.2,0.25]","[2,3)",1 +"bcfishpass:fresh","any","CH","not_accessible","(0.2,0.25]","[2,3)",1 +"bcfishpass:fresh","rear","CH","not_accessible","(0.2,0.25]","[2,3)",1 +"bcfishpass:fresh","any","BT","fails_gradient","(0.25, Inf]","[2,3)",1 +"bcfishpass:fresh","any","BT","not_accessible","(0.25, Inf]","[2,3)",7 +"bcfishpass:fresh","rear","BT","not_accessible","(0.25, Inf]","[2,3)",3 +"bcfishpass:fresh","any","CH","not_accessible","(-Inf,0.0025]","[20,Inf)",1 +"bcfishpass:fresh","spawn","BT","rule_excludes","(-Inf,0.0025]","[20,Inf)",1 +"bcfishpass:fresh","any","CH","rule_excludes","(-Inf,0.0025]","[20,Inf)",17 +"bcfishpass:fresh","rear","CH","rule_excludes","(-Inf,0.0025]","[20,Inf)",2 +"bcfishpass:fresh","spawn","CH","rule_excludes","(-Inf,0.0025]","[20,Inf)",6 +"bcfishpass:fresh","any","CH","rule_excludes","(0.0025,0.01]","[20,Inf)",1 +"bcfishpass:fresh","any","BT","not_accessible","(0.01,0.02]","[20,Inf)",2 +"bcfishpass:fresh","any","CH","not_accessible","(0.01,0.02]","[20,Inf)",2 +"bcfishpass:fresh","spawn","CH","not_accessible","(0.01,0.02]","[20,Inf)",1 +"bcfishpass:fresh","any","BT","not_accessible","(0.02,0.03]","[20,Inf)",3 +"bcfishpass:fresh","rear","BT","not_accessible","(0.02,0.03]","[20,Inf)",1 +"bcfishpass:fresh","any","BT","not_accessible","(0.03,0.045]","[20,Inf)",2 +"bcfishpass:fresh","any","CH","not_accessible","(0.03,0.045]","[20,Inf)",1 +"bcfishpass:fresh","spawn","CH","fails_gradient","(0.045,0.055]","[20,Inf)",2 +"bcfishpass:fresh","any","BT","not_accessible","(0.045,0.055]","[20,Inf)",1 +"bcfishpass:fresh","rear","BT","not_accessible","(0.045,0.055]","[20,Inf)",1 +"bcfishpass:fresh","any","CH","fails_gradient","(0.055,0.07]","[20,Inf)",3 +"bcfishpass:fresh","rear","CH","fails_gradient","(0.055,0.07]","[20,Inf)",1 +"bcfishpass:fresh","any","BT","post_predicate","(0.055,0.07]","[20,Inf)",2 +"bcfishpass:fresh","rear","BT","post_predicate","(0.055,0.07]","[20,Inf)",1 +"bcfishpass:fresh","any","CH","fails_gradient","(0.07,0.105]","[20,Inf)",4 +"bcfishpass:fresh","spawn","CH","fails_gradient","(0.07,0.105]","[20,Inf)",1 +"bcfishpass:fresh","any","CH","not_accessible","(0.07,0.105]","[20,Inf)",1 +"bcfishpass:fresh","spawn","CH","not_accessible","(0.07,0.105]","[20,Inf)",1 +"bcfishpass:fresh","any","BT","fails_gradient","(0.105,0.135]","[20,Inf)",3 +"bcfishpass:fresh","rear","BT","fails_gradient","(0.105,0.135]","[20,Inf)",1 +"bcfishpass:fresh","any","CH","fails_gradient","(0.105,0.135]","[20,Inf)",1 +"bcfishpass:fresh","spawn","CH","fails_gradient","(0.105,0.135]","[20,Inf)",1 +"bcfishpass:fresh","any","BT","not_accessible","(0.105,0.135]","[20,Inf)",2 +"bcfishpass:fresh","any","BT","fails_gradient","(0.135,0.15]","[20,Inf)",2 +"bcfishpass:fresh","any","CH","fails_gradient","(0.135,0.15]","[20,Inf)",1 +"bcfishpass:fresh","any","CH","not_accessible","(0.135,0.15]","[20,Inf)",1 +"bcfishpass:fresh","any","BT","fails_gradient","(0.15,0.2]","[20,Inf)",1 +"bcfishpass:fresh","rear","BT","fails_gradient","(0.15,0.2]","[20,Inf)",1 +"bcfishpass:fresh","any","CH","fails_gradient","(0.15,0.2]","[20,Inf)",1 +"bcfishpass:fresh","spawn","CH","fails_gradient","(0.15,0.2]","[20,Inf)",1 +"bcfishpass:fresh","any","CH","not_accessible","(0.15,0.2]","[20,Inf)",1 +"bcfishpass:fresh","any","CH","fails_gradient","(0.2,0.25]","[20,Inf)",1 +"bcfishpass:fresh","rear","CH","fails_gradient","(0.2,0.25]","[20,Inf)",1 +"bcfishpass:fresh","any","CH","not_accessible","(0.25, Inf]","[20,Inf)",2 +"bcfishpass:fresh","spawn","CH","not_accessible","(0.25, Inf]","[20,Inf)",1 +"bcfishpass:fresh","any","BT","not_accessible","(-Inf,0.0025]","[3,4)",1 +"bcfishpass:fresh","rear","BT","not_accessible","(-Inf,0.0025]","[3,4)",1 +"bcfishpass:fresh","any","CH","not_accessible","(-Inf,0.0025]","[3,4)",1 +"bcfishpass:fresh","any","CH","rule_excludes","(-Inf,0.0025]","[3,4)",1 +"bcfishpass:fresh","any","CH","post_predicate","(0.0025,0.01]","[3,4)",1 +"bcfishpass:fresh","any","BT","not_accessible","(0.01,0.02]","[3,4)",2 +"bcfishpass:fresh","rear","BT","not_accessible","(0.01,0.02]","[3,4)",2 +"bcfishpass:fresh","any","CH","post_predicate","(0.01,0.02]","[3,4)",2 +"bcfishpass:fresh","any","CH","rule_excludes","(0.01,0.02]","[3,4)",1 +"bcfishpass:fresh","any","BT","not_accessible","(0.02,0.03]","[3,4)",2 +"bcfishpass:fresh","rear","BT","not_accessible","(0.02,0.03]","[3,4)",1 +"bcfishpass:fresh","any","CH","post_predicate","(0.02,0.03]","[3,4)",1 +"bcfishpass:fresh","any","BT","not_accessible","(0.03,0.045]","[3,4)",3 +"bcfishpass:fresh","rear","BT","not_accessible","(0.03,0.045]","[3,4)",1 +"bcfishpass:fresh","any","CH","rule_excludes","(0.03,0.045]","[3,4)",1 +"bcfishpass:fresh","rear","CH","rule_excludes","(0.03,0.045]","[3,4)",1 +"bcfishpass:fresh","spawn","CH","rule_excludes","(0.03,0.045]","[3,4)",1 +"bcfishpass:fresh","spawn","CH","fails_gradient_and_width","(0.045,0.055]","[3,4)",1 +"bcfishpass:fresh","any","BT","not_accessible","(0.045,0.055]","[3,4)",1 +"bcfishpass:fresh","spawn","BT","fails_gradient","(0.055,0.07]","[3,4)",1 +"bcfishpass:fresh","any","CH","fails_gradient","(0.055,0.07]","[3,4)",1 +"bcfishpass:fresh","rear","CH","fails_gradient","(0.055,0.07]","[3,4)",1 +"bcfishpass:fresh","any","BT","post_predicate","(0.055,0.07]","[3,4)",2 +"bcfishpass:fresh","rear","BT","post_predicate","(0.055,0.07]","[3,4)",2 +"bcfishpass:fresh","any","BT","fails_gradient","(0.07,0.105]","[3,4)",1 +"bcfishpass:fresh","spawn","BT","fails_gradient","(0.07,0.105]","[3,4)",2 +"bcfishpass:fresh","any","CH","fails_gradient","(0.07,0.105]","[3,4)",1 +"bcfishpass:fresh","rear","CH","fails_gradient","(0.07,0.105]","[3,4)",1 +"bcfishpass:fresh","any","BT","not_accessible","(0.07,0.105]","[3,4)",1 +"bcfishpass:fresh","rear","BT","not_accessible","(0.07,0.105]","[3,4)",1 +"bcfishpass:fresh","any","BT","post_predicate","(0.07,0.105]","[3,4)",8 +"bcfishpass:fresh","rear","BT","post_predicate","(0.07,0.105]","[3,4)",4 +"bcfishpass:fresh","any","BT","fails_gradient","(0.105,0.135]","[3,4)",33 +"bcfishpass:fresh","rear","BT","fails_gradient","(0.105,0.135]","[3,4)",8 +"bcfishpass:fresh","any","BT","not_accessible","(0.105,0.135]","[3,4)",1 +"bcfishpass:fresh","rear","BT","not_accessible","(0.105,0.135]","[3,4)",1 +"bcfishpass:fresh","any","BT","fails_gradient","(0.135,0.15]","[3,4)",6 +"bcfishpass:fresh","rear","BT","fails_gradient","(0.135,0.15]","[3,4)",3 +"bcfishpass:fresh","any","BT","not_accessible","(0.135,0.15]","[3,4)",1 +"bcfishpass:fresh","any","BT","fails_gradient","(0.15,0.2]","[3,4)",12 +"bcfishpass:fresh","rear","BT","fails_gradient","(0.15,0.2]","[3,4)",4 +"bcfishpass:fresh","any","BT","fails_gradient","(0.2,0.25]","[3,4)",2 +"bcfishpass:fresh","any","BT","not_accessible","(0.2,0.25]","[3,4)",2 +"bcfishpass:fresh","rear","BT","not_accessible","(0.2,0.25]","[3,4)",1 +"bcfishpass:fresh","spawn","BT","not_accessible","(0.2,0.25]","[3,4)",1 +"bcfishpass:fresh","any","BT","fails_gradient","(0.25, Inf]","[3,4)",3 +"bcfishpass:fresh","any","CH","fails_gradient","(0.25, Inf]","[3,4)",1 +"bcfishpass:fresh","any","BT","not_accessible","(0.25, Inf]","[3,4)",2 +"bcfishpass:fresh","any","CH","not_accessible","(0.25, Inf]","[3,4)",1 +"bcfishpass:fresh","rear","CH","not_accessible","(0.25, Inf]","[3,4)",1 +"bcfishpass:fresh","any","BT","not_accessible","(-Inf,0.0025]","[4,6)",3 +"bcfishpass:fresh","rear","BT","not_accessible","(-Inf,0.0025]","[4,6)",1 +"bcfishpass:fresh","any","CH","not_accessible","(-Inf,0.0025]","[4,6)",2 +"bcfishpass:fresh","spawn","BT","rule_excludes","(-Inf,0.0025]","[4,6)",1 +"bcfishpass:fresh","any","CH","rule_excludes","(-Inf,0.0025]","[4,6)",5 +"bcfishpass:fresh","rear","CH","rule_excludes","(-Inf,0.0025]","[4,6)",1 +"bcfishpass:fresh","spawn","CH","rule_excludes","(-Inf,0.0025]","[4,6)",1 +"bcfishpass:fresh","any","CH","not_accessible","(0.0025,0.01]","[4,6)",1 +"bcfishpass:fresh","rear","CH","not_accessible","(0.0025,0.01]","[4,6)",1 +"bcfishpass:fresh","any","BT","not_accessible","(0.01,0.02]","[4,6)",2 +"bcfishpass:fresh","rear","BT","not_accessible","(0.01,0.02]","[4,6)",1 +"bcfishpass:fresh","any","BT","not_accessible","(0.02,0.03]","[4,6)",4 +"bcfishpass:fresh","rear","BT","not_accessible","(0.02,0.03]","[4,6)",1 +"bcfishpass:fresh","any","CH","not_accessible","(0.02,0.03]","[4,6)",1 +"bcfishpass:fresh","rear","CH","not_accessible","(0.02,0.03]","[4,6)",1 +"bcfishpass:fresh","any","BT","not_accessible","(0.03,0.045]","[4,6)",8 +"bcfishpass:fresh","rear","BT","not_accessible","(0.03,0.045]","[4,6)",4 +"bcfishpass:fresh","any","BT","not_accessible","(0.045,0.055]","[4,6)",2 +"bcfishpass:fresh","rear","BT","not_accessible","(0.045,0.055]","[4,6)",1 +"bcfishpass:fresh","any","CH","not_accessible","(0.045,0.055]","[4,6)",1 +"bcfishpass:fresh","rear","CH","not_accessible","(0.045,0.055]","[4,6)",1 +"bcfishpass:fresh","any","CH","post_predicate","(0.045,0.055]","[4,6)",1 +"bcfishpass:fresh","rear","CH","post_predicate","(0.045,0.055]","[4,6)",1 +"bcfishpass:fresh","spawn","BT","fails_gradient","(0.055,0.07]","[4,6)",2 +"bcfishpass:fresh","any","CH","fails_gradient","(0.055,0.07]","[4,6)",1 +"bcfishpass:fresh","rear","CH","fails_gradient","(0.055,0.07]","[4,6)",1 +"bcfishpass:fresh","any","BT","not_accessible","(0.055,0.07]","[4,6)",4 +"bcfishpass:fresh","rear","BT","not_accessible","(0.055,0.07]","[4,6)",2 +"bcfishpass:fresh","any","BT","post_predicate","(0.055,0.07]","[4,6)",4 +"bcfishpass:fresh","spawn","BT","fails_gradient","(0.07,0.105]","[4,6)",1 +"bcfishpass:fresh","any","CH","fails_gradient","(0.07,0.105]","[4,6)",2 +"bcfishpass:fresh","rear","CH","fails_gradient","(0.07,0.105]","[4,6)",1 +"bcfishpass:fresh","any","BT","not_accessible","(0.07,0.105]","[4,6)",2 +"bcfishpass:fresh","rear","BT","not_accessible","(0.07,0.105]","[4,6)",1 +"bcfishpass:fresh","any","BT","post_predicate","(0.07,0.105]","[4,6)",4 +"bcfishpass:fresh","rear","BT","post_predicate","(0.07,0.105]","[4,6)",1 +"bcfishpass:fresh","any","BT","fails_gradient","(0.105,0.135]","[4,6)",19 +"bcfishpass:fresh","rear","BT","fails_gradient","(0.105,0.135]","[4,6)",6 +"bcfishpass:fresh","spawn","BT","fails_gradient","(0.105,0.135]","[4,6)",2 +"bcfishpass:fresh","any","CH","fails_gradient","(0.105,0.135]","[4,6)",1 +"bcfishpass:fresh","any","BT","not_accessible","(0.105,0.135]","[4,6)",1 +"bcfishpass:fresh","any","BT","fails_gradient","(0.135,0.15]","[4,6)",6 +"bcfishpass:fresh","rear","BT","fails_gradient","(0.135,0.15]","[4,6)",1 +"bcfishpass:fresh","any","BT","fails_gradient","(0.15,0.2]","[4,6)",9 +"bcfishpass:fresh","rear","BT","fails_gradient","(0.15,0.2]","[4,6)",4 +"bcfishpass:fresh","any","BT","not_accessible","(0.2,0.25]","[4,6)",1 +"bcfishpass:fresh","any","BT","fails_gradient","(0.25, Inf]","[4,6)",4 +"bcfishpass:fresh","rear","BT","fails_gradient","(0.25, Inf]","[4,6)",1 +"bcfishpass:fresh","any","BT","not_accessible","(0.25, Inf]","[4,6)",3 +"bcfishpass:fresh","rear","BT","not_accessible","(0.25, Inf]","[4,6)",1 +"bcfishpass:fresh","any","CH","not_accessible","(-Inf,0.0025]","[6,10)",1 +"bcfishpass:fresh","rear","CH","not_accessible","(-Inf,0.0025]","[6,10)",1 +"bcfishpass:fresh","any","CH","rule_excludes","(-Inf,0.0025]","[6,10)",4 +"bcfishpass:fresh","spawn","CH","rule_excludes","(-Inf,0.0025]","[6,10)",2 +"bcfishpass:fresh","any","BT","not_accessible","(0.0025,0.01]","[6,10)",1 +"bcfishpass:fresh","any","CH","rule_excludes","(0.0025,0.01]","[6,10)",1 +"bcfishpass:fresh","spawn","CH","rule_excludes","(0.0025,0.01]","[6,10)",1 +"bcfishpass:fresh","any","BT","not_accessible","(0.01,0.02]","[6,10)",2 +"bcfishpass:fresh","rear","BT","not_accessible","(0.01,0.02]","[6,10)",1 +"bcfishpass:fresh","any","CH","not_accessible","(0.01,0.02]","[6,10)",2 +"bcfishpass:fresh","rear","CH","not_accessible","(0.01,0.02]","[6,10)",1 +"bcfishpass:fresh","spawn","CH","not_accessible","(0.01,0.02]","[6,10)",1 +"bcfishpass:fresh","any","CH","rule_excludes","(0.01,0.02]","[6,10)",1 +"bcfishpass:fresh","any","BT","not_accessible","(0.02,0.03]","[6,10)",3 +"bcfishpass:fresh","rear","BT","not_accessible","(0.02,0.03]","[6,10)",1 +"bcfishpass:fresh","any","CH","not_accessible","(0.02,0.03]","[6,10)",1 +"bcfishpass:fresh","any","BT","not_accessible","(0.03,0.045]","[6,10)",6 +"bcfishpass:fresh","rear","BT","not_accessible","(0.03,0.045]","[6,10)",3 +"bcfishpass:fresh","any","CH","not_accessible","(0.03,0.045]","[6,10)",2 +"bcfishpass:fresh","any","BT","not_accessible","(0.045,0.055]","[6,10)",2 +"bcfishpass:fresh","rear","BT","not_accessible","(0.045,0.055]","[6,10)",2 +"bcfishpass:fresh","any","CH","post_predicate","(0.045,0.055]","[6,10)",1 +"bcfishpass:fresh","any","CH","fails_gradient","(0.055,0.07]","[6,10)",11 +"bcfishpass:fresh","rear","CH","fails_gradient","(0.055,0.07]","[6,10)",4 +"bcfishpass:fresh","any","BT","not_accessible","(0.055,0.07]","[6,10)",6 +"bcfishpass:fresh","spawn","BT","not_accessible","(0.055,0.07]","[6,10)",1 +"bcfishpass:fresh","any","BT","post_predicate","(0.055,0.07]","[6,10)",4 +"bcfishpass:fresh","rear","BT","post_predicate","(0.055,0.07]","[6,10)",2 +"bcfishpass:fresh","spawn","BT","fails_gradient","(0.07,0.105]","[6,10)",1 +"bcfishpass:fresh","any","CH","fails_gradient","(0.07,0.105]","[6,10)",7 +"bcfishpass:fresh","rear","CH","fails_gradient","(0.07,0.105]","[6,10)",2 +"bcfishpass:fresh","any","BT","not_accessible","(0.07,0.105]","[6,10)",2 +"bcfishpass:fresh","rear","BT","not_accessible","(0.07,0.105]","[6,10)",1 +"bcfishpass:fresh","any","CH","not_accessible","(0.07,0.105]","[6,10)",3 +"bcfishpass:fresh","spawn","CH","not_accessible","(0.07,0.105]","[6,10)",2 +"bcfishpass:fresh","any","BT","post_predicate","(0.07,0.105]","[6,10)",15 +"bcfishpass:fresh","rear","BT","post_predicate","(0.07,0.105]","[6,10)",13 +"bcfishpass:fresh","any","BT","fails_gradient","(0.105,0.135]","[6,10)",40 +"bcfishpass:fresh","rear","BT","fails_gradient","(0.105,0.135]","[6,10)",13 +"bcfishpass:fresh","any","CH","fails_gradient","(0.105,0.135]","[6,10)",3 +"bcfishpass:fresh","any","BT","not_accessible","(0.105,0.135]","[6,10)",1 +"bcfishpass:fresh","any","BT","fails_gradient","(0.135,0.15]","[6,10)",9 +"bcfishpass:fresh","rear","BT","fails_gradient","(0.135,0.15]","[6,10)",1 +"bcfishpass:fresh","any","BT","not_accessible","(0.135,0.15]","[6,10)",1 +"bcfishpass:fresh","rear","BT","not_accessible","(0.135,0.15]","[6,10)",1 +"bcfishpass:fresh","spawn","BT","not_accessible","(0.135,0.15]","[6,10)",1 +"bcfishpass:fresh","any","BT","fails_gradient","(0.15,0.2]","[6,10)",11 +"bcfishpass:fresh","rear","BT","fails_gradient","(0.15,0.2]","[6,10)",5 +"bcfishpass:fresh","any","BT","not_accessible","(0.15,0.2]","[6,10)",1 +"bcfishpass:fresh","rear","BT","not_accessible","(0.15,0.2]","[6,10)",1 +"bcfishpass:fresh","any","CH","not_accessible","(0.15,0.2]","[6,10)",1 +"bcfishpass:fresh","any","BT","fails_gradient","(0.2,0.25]","[6,10)",6 +"bcfishpass:fresh","rear","BT","fails_gradient","(0.2,0.25]","[6,10)",2 +"bcfishpass:fresh","spawn","BT","fails_gradient","(0.2,0.25]","[6,10)",1 +"bcfishpass:fresh","any","BT","not_accessible","(0.2,0.25]","[6,10)",2 +"bcfishpass:fresh","rear","BT","not_accessible","(0.2,0.25]","[6,10)",1 +"bcfishpass:fresh","any","CH","not_accessible","(0.2,0.25]","[6,10)",1 +"bcfishpass:fresh","any","BT","fails_gradient","(0.25, Inf]","[6,10)",7 +"bcfishpass:fresh","any","BT","not_accessible","(0.25, Inf]","[6,10)",4 +"bcfishpass:fresh","rear","BT","not_accessible","(0.25, Inf]","[6,10)",1 +"bcfishpass:fresh","any","CH","not_accessible","(-Inf,0.0025]","NULL",3 +"bcfishpass:fresh","rear","CH","not_accessible","(-Inf,0.0025]","NULL",3 +"bcfishpass:fresh","spawn","BT","rule_excludes","(-Inf,0.0025]","NULL",1 +"bcfishpass:fresh","any","CH","rule_excludes","(-Inf,0.0025]","NULL",4 +"bcfishpass:fresh","rear","CH","rule_excludes","(-Inf,0.0025]","NULL",1 +"bcfishpass:fresh","any","BT","width_null","(-Inf,0.0025]","NULL",51 +"bcfishpass:fresh","rear","BT","width_null","(-Inf,0.0025]","NULL",11 +"bcfishpass:fresh","spawn","BT","width_null","(-Inf,0.0025]","NULL",1 +"bcfishpass:fresh","any","CH","width_null","(-Inf,0.0025]","NULL",27 +"bcfishpass:fresh","rear","CH","width_null","(-Inf,0.0025]","NULL",11 +"bcfishpass:fresh","spawn","CH","width_null","(-Inf,0.0025]","NULL",1 +"bcfishpass:fresh","any","BT","width_null","(0.0025,0.01]","NULL",25 +"bcfishpass:fresh","rear","BT","width_null","(0.0025,0.01]","NULL",3 +"bcfishpass:fresh","any","CH","width_null","(0.0025,0.01]","NULL",7 +"bcfishpass:fresh","rear","CH","width_null","(0.0025,0.01]","NULL",5 +"bcfishpass:fresh","any","BT","width_null","(0.01,0.02]","NULL",18 +"bcfishpass:fresh","rear","BT","width_null","(0.01,0.02]","NULL",5 +"bcfishpass:fresh","spawn","BT","width_null","(0.01,0.02]","NULL",3 +"bcfishpass:fresh","any","CH","width_null","(0.01,0.02]","NULL",7 +"bcfishpass:fresh","rear","CH","width_null","(0.01,0.02]","NULL",2 +"bcfishpass:fresh","spawn","CH","width_null","(0.01,0.02]","NULL",1 +"bcfishpass:fresh","any","BT","width_null","(0.02,0.03]","NULL",13 +"bcfishpass:fresh","rear","BT","width_null","(0.02,0.03]","NULL",9 +"bcfishpass:fresh","any","CH","width_null","(0.02,0.03]","NULL",4 +"bcfishpass:fresh","rear","CH","width_null","(0.02,0.03]","NULL",3 +"bcfishpass:fresh","any","BT","not_accessible","(0.03,0.045]","NULL",2 +"bcfishpass:fresh","rear","BT","not_accessible","(0.03,0.045]","NULL",2 +"bcfishpass:fresh","any","CH","rule_excludes","(0.03,0.045]","NULL",1 +"bcfishpass:fresh","any","BT","width_null","(0.03,0.045]","NULL",20 +"bcfishpass:fresh","rear","BT","width_null","(0.03,0.045]","NULL",8 +"bcfishpass:fresh","spawn","BT","width_null","(0.03,0.045]","NULL",1 +"bcfishpass:fresh","any","CH","width_null","(0.03,0.045]","NULL",6 +"bcfishpass:fresh","rear","CH","width_null","(0.03,0.045]","NULL",4 +"bcfishpass:fresh","any","BT","not_accessible","(0.045,0.055]","NULL",1 +"bcfishpass:fresh","rear","BT","not_accessible","(0.045,0.055]","NULL",1 +"bcfishpass:fresh","any","BT","width_null","(0.045,0.055]","NULL",11 +"bcfishpass:fresh","rear","BT","width_null","(0.045,0.055]","NULL",4 +"bcfishpass:fresh","any","CH","width_null","(0.045,0.055]","NULL",1 +"bcfishpass:fresh","rear","CH","width_null","(0.045,0.055]","NULL",1 +"bcfishpass:fresh","any","CH","fails_gradient_and_width","(0.055,0.07]","NULL",4 +"bcfishpass:fresh","rear","CH","fails_gradient_and_width","(0.055,0.07]","NULL",3 +"bcfishpass:fresh","any","CH","not_accessible","(0.055,0.07]","NULL",1 +"bcfishpass:fresh","rear","CH","not_accessible","(0.055,0.07]","NULL",1 +"bcfishpass:fresh","any","BT","width_null","(0.055,0.07]","NULL",14 +"bcfishpass:fresh","rear","BT","width_null","(0.055,0.07]","NULL",8 +"bcfishpass:fresh","any","BT","not_accessible","(0.07,0.105]","NULL",4 +"bcfishpass:fresh","rear","BT","not_accessible","(0.07,0.105]","NULL",3 +"bcfishpass:fresh","any","CH","not_accessible","(0.07,0.105]","NULL",1 +"bcfishpass:fresh","rear","CH","not_accessible","(0.07,0.105]","NULL",1 +"bcfishpass:fresh","any","BT","width_null","(0.07,0.105]","NULL",37 +"bcfishpass:fresh","rear","BT","width_null","(0.07,0.105]","NULL",16 +"bcfishpass:fresh","any","BT","fails_gradient_and_width","(0.105,0.135]","NULL",20 +"bcfishpass:fresh","rear","BT","fails_gradient_and_width","(0.105,0.135]","NULL",8 +"bcfishpass:fresh","any","CH","not_accessible","(0.105,0.135]","NULL",1 +"bcfishpass:fresh","any","BT","fails_gradient_and_width","(0.135,0.15]","NULL",8 +"bcfishpass:fresh","rear","BT","fails_gradient_and_width","(0.135,0.15]","NULL",1 +"bcfishpass:fresh","any","BT","not_accessible","(0.135,0.15]","NULL",1 +"bcfishpass:fresh","rear","BT","not_accessible","(0.135,0.15]","NULL",1 +"bcfishpass:fresh","any","BT","fails_gradient_and_width","(0.15,0.2]","NULL",6 +"bcfishpass:fresh","rear","BT","fails_gradient_and_width","(0.15,0.2]","NULL",3 +"bcfishpass:fresh","any","BT","not_accessible","(0.15,0.2]","NULL",2 +"bcfishpass:fresh","rear","BT","not_accessible","(0.15,0.2]","NULL",1 +"bcfishpass:fresh","any","BT","fails_gradient_and_width","(0.2,0.25]","NULL",5 +"bcfishpass:fresh","rear","BT","fails_gradient_and_width","(0.2,0.25]","NULL",2 +"bcfishpass:fresh","any","BT","not_accessible","(0.2,0.25]","NULL",1 +"bcfishpass:fresh","rear","BT","not_accessible","(0.2,0.25]","NULL",1 +"bcfishpass:fresh","any","CH","not_accessible","(0.2,0.25]","NULL",1 +"bcfishpass:fresh","spawn","CH","not_accessible","(0.2,0.25]","NULL",1 +"bcfishpass:fresh","any","BT","fails_gradient_and_width","(0.25, Inf]","NULL",12 +"bcfishpass:fresh","rear","BT","fails_gradient_and_width","(0.25, Inf]","NULL",3 +"bcfishpass:fresh","any","BT","not_accessible","(0.25, Inf]","NULL",13 +"bcfishpass:fresh","rear","BT","not_accessible","(0.25, Inf]","NULL",9 +"bcfishpass:fresh","any","CH","not_accessible","(0.25, Inf]","NULL",1 diff --git a/data-raw/logs/habitat_validate_283/stamp.txt b/data-raw/logs/habitat_validate_283/stamp.txt new file mode 100644 index 00000000..94129d1c --- /dev/null +++ b/data-raw/logs/habitat_validate_283/stamp.txt @@ -0,0 +1,9 @@ +date: 2026-09-26 13:39 PDT +link: 0.51.1 @ 0c19e0a +fresh installed (builds the miss-reason predicates): 0.34.0 @ no recorded sha +db: docker fwapg localhost:5432 +bundle default:fresh_default — 55 WSGs scored; 4 with a run-log row (fresh 0.32.0, 0.33.0, 2026-08-06 to 2026-08-27); the rest predate the log +bundle bcfishpass:fresh — 59 WSGs scored; 39 with a run-log row (fresh 0.33.0, 2026-08-31 to 2026-09-26); the rest predate the log +species: CH,BT; buffers: 0,100 m +bcfishobs.observations rows: 373050 +absences: 4174 sampled FISS sites snapped within the snapshot WSGs (COTR,LNTH,PINE,UNTH,UPCE); usable as absences, before presence: CH 1906, BT 1535; other WSGs report NA; knowledge @ 508bf44 diff --git a/data-raw/logs/habitat_validate_283/summary.csv b/data-raw/logs/habitat_validate_283/summary.csv new file mode 100644 index 00000000..abae60e1 --- /dev/null +++ b/data-raw/logs/habitat_validate_283/summary.csv @@ -0,0 +1,1369 @@ +"schema","config_name","buffer_m","overlay_applied","watershed_group_code","species_code","stage","n_obs","n_unattached","n_accessible","n_inaccessible","n_spawning","n_rearing","n_rearing_any","n_habitat","share_accessible","share_spawning","share_rearing","share_rearing_any","share_habitat","n_in_uhc_spawn","n_in_uhc_rear","n_obs_outside_uhc_spawn","n_spawning_outside_uhc","n_obs_outside_uhc_rear","n_rearing_any_outside_uhc","share_spawning_outside_uhc","share_rearing_any_outside_uhc","accessible_km","spawning_km","rearing_km","n_absence","n_absence_accessible","n_absence_spawning","n_absence_rearing","n_absence_rearing_any","run_logged" +"fresh_default","default",0,TRUE,"ADMS","BT","any",37,0,37,0,24,27,29,29,1,0.648648648648649,0.72972972972973,0.783783783783784,0.783783783783784,0,0,37,24,37,29,0.648648648648649,0.783783783783784,1332.83,360.42,526.17,,,,,,FALSE +"fresh_default","default",0,TRUE,"ADMS","BT","spawn",1,0,1,0,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1332.83,360.42,526.17,,,,,,FALSE +"fresh_default","default",0,TRUE,"ADMS","BT","rear",6,0,6,0,3,4,4,4,1,0.5,0.666666666666667,0.666666666666667,0.666666666666667,0,0,6,3,6,4,0.5,0.666666666666667,1332.83,360.42,526.17,,,,,,FALSE +"fresh_default","default",0,TRUE,"ADMS","CH","any",11,0,11,0,9,8,10,10,1,0.818181818181818,0.727272727272727,0.909090909090909,0.909090909090909,7,0,4,2,11,10,0.5,0.909090909090909,842.06,277.53,351.69,,,,,,FALSE +"fresh_default","default",0,TRUE,"ADMS","CH","spawn",5,0,5,0,5,4,5,5,1,1,0.8,1,1,5,0,0,0,5,5,,1,842.06,277.53,351.69,,,,,,FALSE +"fresh_default","default",0,TRUE,"ADMS","CH","rear",2,0,2,0,2,2,2,2,1,1,1,1,1,1,0,1,1,2,2,1,1,842.06,277.53,351.69,,,,,,FALSE +"fresh_default","default",0,TRUE,"BBAR","BT","any",16,0,16,0,10,13,13,13,1,0.625,0.8125,0.8125,0.8125,0,0,16,10,16,13,0.625,0.8125,1761.57,329.41,560.67,,,,,,FALSE +"fresh_default","default",0,TRUE,"BBAR","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,1761.57,329.41,560.67,,,,,,FALSE +"fresh_default","default",0,TRUE,"BBAR","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,1761.57,329.41,560.67,,,,,,FALSE +"fresh_default","default",0,TRUE,"BBAR","CH","any",5,0,3,2,1,1,1,1,0.6,0.2,0.2,0.2,0.2,0,0,5,1,5,1,0.2,0.2,275.36,160.2,169.06,,,,,,FALSE +"fresh_default","default",0,TRUE,"BBAR","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,275.36,160.2,169.06,,,,,,FALSE +"fresh_default","default",0,TRUE,"BBAR","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,275.36,160.2,169.06,,,,,,FALSE +"fresh_default","default",0,TRUE,"BULK","BT","any",468,0,464,4,231,334,334,334,0.991452991452991,0.493589743589744,0.713675213675214,0.713675213675214,0.713675213675214,0,0,468,231,468,334,0.493589743589744,0.713675213675214,7713.98,1852.11,3012.7,,,,,,FALSE +"fresh_default","default",0,TRUE,"BULK","BT","spawn",12,0,12,0,4,9,9,9,1,0.333333333333333,0.75,0.75,0.75,0,0,12,4,12,9,0.333333333333333,0.75,7713.98,1852.11,3012.7,,,,,,FALSE +"fresh_default","default",0,TRUE,"BULK","BT","rear",255,0,252,3,92,157,157,157,0.988235294117647,0.36078431372549,0.615686274509804,0.615686274509804,0.615686274509804,0,0,255,92,255,157,0.36078431372549,0.615686274509804,7713.98,1852.11,3012.7,,,,,,FALSE +"fresh_default","default",0,TRUE,"BULK","CH","any",110,0,110,0,104,107,107,108,1,0.945454545454545,0.972727272727273,0.972727272727273,0.981818181818182,18,0,92,86,110,107,0.934782608695652,0.972727272727273,5178.19,1264.07,2038.12,,,,,,FALSE +"fresh_default","default",0,TRUE,"BULK","CH","spawn",16,0,16,0,16,15,15,16,1,1,0.9375,0.9375,1,16,0,0,0,16,15,,0.9375,5178.19,1264.07,2038.12,,,,,,FALSE +"fresh_default","default",0,TRUE,"BULK","CH","rear",11,0,11,0,6,9,9,9,1,0.545454545454545,0.818181818181818,0.818181818181818,0.818181818181818,0,0,11,6,11,9,0.545454545454545,0.818181818181818,5178.19,1264.07,2038.12,,,,,,FALSE +"fresh_default","default",0,TRUE,"CARP","BT","any",6,0,6,0,4,4,6,6,1,0.666666666666667,0.666666666666667,1,1,0,0,6,4,6,6,0.666666666666667,1,4420.57,502.37,1026.27,,,,,,FALSE +"fresh_default","default",0,TRUE,"CARP","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,4420.57,502.37,1026.27,,,,,,FALSE +"fresh_default","default",0,TRUE,"CARP","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,4420.57,502.37,1026.27,,,,,,FALSE +"fresh_default","default",0,TRUE,"CARP","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",0,TRUE,"CARP","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",0,TRUE,"CARP","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",0,TRUE,"CHES","BT","any",3,0,3,0,3,3,3,3,1,1,1,1,1,0,0,3,3,3,3,1,1,2904.74,376.85,796.72,,,,,,FALSE +"fresh_default","default",0,TRUE,"CHES","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,2904.74,376.85,796.72,,,,,,FALSE +"fresh_default","default",0,TRUE,"CHES","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,2904.74,376.85,796.72,,,,,,FALSE +"fresh_default","default",0,TRUE,"CHES","CH","any",87,0,85,2,80,81,82,82,0.977011494252874,0.919540229885057,0.931034482758621,0.942528735632184,0.942528735632184,27,0,60,53,87,82,0.883333333333333,0.942528735632184,780.54,88.26,258.88,,,,,,FALSE +"fresh_default","default",0,TRUE,"CHES","CH","spawn",3,0,2,1,2,2,2,2,0.666666666666667,0.666666666666667,0.666666666666667,0.666666666666667,0.666666666666667,2,0,1,0,3,2,0,0.666666666666667,780.54,88.26,258.88,,,,,,FALSE +"fresh_default","default",0,TRUE,"CHES","CH","rear",1,0,1,0,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,780.54,88.26,258.88,,,,,,FALSE +"fresh_default","default",0,TRUE,"CHWK","BT","any",62,0,62,0,34,45,52,52,1,0.548387096774194,0.725806451612903,0.838709677419355,0.838709677419355,0,0,62,34,62,52,0.548387096774194,0.838709677419355,793.94,310.02,353.48,,,,,,FALSE +"fresh_default","default",0,TRUE,"CHWK","BT","spawn",5,0,5,0,4,4,5,5,1,0.8,0.8,1,1,0,0,5,4,5,5,0.8,1,793.94,310.02,353.48,,,,,,FALSE +"fresh_default","default",0,TRUE,"CHWK","BT","rear",5,0,5,0,4,4,4,4,1,0.8,0.8,0.8,0.8,0,0,5,4,5,4,0.8,0.8,793.94,310.02,353.48,,,,,,FALSE +"fresh_default","default",0,TRUE,"CHWK","CH","any",21,0,21,0,15,14,17,17,1,0.714285714285714,0.666666666666667,0.80952380952381,0.80952380952381,2,0,19,13,21,17,0.68421052631579,0.80952380952381,698.92,257.8,310.79,,,,,,FALSE +"fresh_default","default",0,TRUE,"CHWK","CH","spawn",8,0,8,0,6,5,7,7,1,0.75,0.625,0.875,0.875,2,0,6,4,8,7,0.666666666666667,0.875,698.92,257.8,310.79,,,,,,FALSE +"fresh_default","default",0,TRUE,"CHWK","CH","rear",4,0,4,0,3,3,3,3,1,0.75,0.75,0.75,0.75,0,0,4,3,4,3,0.75,0.75,698.92,257.8,310.79,,,,,,FALSE +"fresh_default","default",0,TRUE,"COTR","BT","any",85,0,84,1,45,68,68,68,0.988235294117647,0.529411764705882,0.8,0.8,0.8,0,0,85,45,85,68,0.529411764705882,0.8,6856.99,1480.88,2433.36,75,65,31,38,40,FALSE +"fresh_default","default",0,TRUE,"COTR","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,6856.99,1480.88,2433.36,75,65,31,38,40,FALSE +"fresh_default","default",0,TRUE,"COTR","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,6856.99,1480.88,2433.36,75,65,31,38,40,FALSE +"fresh_default","default",0,TRUE,"COTR","CH","any",100,0,95,5,70,77,77,78,0.95,0.7,0.77,0.77,0.78,39,0,61,31,100,77,0.508196721311475,0.77,4143.01,702.76,1364.58,68,25,11,13,15,FALSE +"fresh_default","default",0,TRUE,"COTR","CH","spawn",15,0,14,1,15,14,14,15,0.933333333333333,1,0.933333333333333,0.933333333333333,1,15,0,0,0,15,14,,0.933333333333333,4143.01,702.76,1364.58,68,25,11,13,15,FALSE +"fresh_default","default",0,TRUE,"COTR","CH","rear",48,0,45,3,28,33,33,33,0.9375,0.583333333333333,0.6875,0.6875,0.6875,12,0,36,16,48,33,0.444444444444444,0.6875,4143.01,702.76,1364.58,68,25,11,13,15,FALSE +"fresh_default","default",0,TRUE,"CRKD","BT","any",4,0,4,0,4,4,4,4,1,1,1,1,1,0,0,4,4,4,4,1,1,5115.69,695.8,1448.76,,,,,,FALSE +"fresh_default","default",0,TRUE,"CRKD","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,5115.69,695.8,1448.76,,,,,,FALSE +"fresh_default","default",0,TRUE,"CRKD","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,5115.69,695.8,1448.76,,,,,,FALSE +"fresh_default","default",0,TRUE,"CRKD","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",0,TRUE,"CRKD","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",0,TRUE,"CRKD","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",0,TRUE,"DOGC","BT","any",17,0,17,0,13,17,17,17,1,0.764705882352941,1,1,1,0,0,17,13,17,17,0.764705882352941,1,1260.46,286.17,502.72,,,,,,FALSE +"fresh_default","default",0,TRUE,"DOGC","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,1260.46,286.17,502.72,,,,,,FALSE +"fresh_default","default",0,TRUE,"DOGC","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,1260.46,286.17,502.72,,,,,,FALSE +"fresh_default","default",0,TRUE,"DOGC","CH","any",5,0,5,0,5,5,5,5,1,1,1,1,1,2,0,3,3,5,5,1,1,358.78,162,196.9,,,,,,FALSE +"fresh_default","default",0,TRUE,"DOGC","CH","spawn",2,0,2,0,2,2,2,2,1,1,1,1,1,2,0,0,0,2,2,,1,358.78,162,196.9,,,,,,FALSE +"fresh_default","default",0,TRUE,"DOGC","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,358.78,162,196.9,,,,,,FALSE +"fresh_default","default",0,TRUE,"FINA","BT","any",107,0,107,0,89,97,105,105,1,0.831775700934579,0.906542056074766,0.981308411214953,0.981308411214953,0,0,107,89,107,105,0.831775700934579,0.981308411214953,7889.87,1325.37,2218.78,,,,,,FALSE +"fresh_default","default",0,TRUE,"FINA","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,7889.87,1325.37,2218.78,,,,,,FALSE +"fresh_default","default",0,TRUE,"FINA","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,7889.87,1325.37,2218.78,,,,,,FALSE +"fresh_default","default",0,TRUE,"FINA","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",0,TRUE,"FINA","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",0,TRUE,"FINA","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",0,TRUE,"FINL","BT","any",32,0,32,0,25,29,29,29,1,0.78125,0.90625,0.90625,0.90625,0,0,32,25,32,29,0.78125,0.90625,4515.86,1365.64,2107.58,,,,,,FALSE +"fresh_default","default",0,TRUE,"FINL","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,4515.86,1365.64,2107.58,,,,,,FALSE +"fresh_default","default",0,TRUE,"FINL","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,4515.86,1365.64,2107.58,,,,,,FALSE +"fresh_default","default",0,TRUE,"FINL","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",0,TRUE,"FINL","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",0,TRUE,"FINL","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",0,TRUE,"FIRE","BT","any",172,0,172,0,128,151,157,157,1,0.744186046511628,0.877906976744186,0.912790697674419,0.912790697674419,0,0,172,128,172,157,0.744186046511628,0.912790697674419,6663.44,1012.79,1911.07,,,,,,FALSE +"fresh_default","default",0,TRUE,"FIRE","BT","spawn",4,0,4,0,1,3,3,3,1,0.25,0.75,0.75,0.75,0,0,4,1,4,3,0.25,0.75,6663.44,1012.79,1911.07,,,,,,FALSE +"fresh_default","default",0,TRUE,"FIRE","BT","rear",66,0,66,0,57,62,62,62,1,0.863636363636364,0.93939393939394,0.93939393939394,0.93939393939394,0,0,66,57,66,62,0.863636363636364,0.93939393939394,6663.44,1012.79,1911.07,,,,,,FALSE +"fresh_default","default",0,TRUE,"FIRE","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",0,TRUE,"FIRE","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",0,TRUE,"FIRE","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",0,TRUE,"FOXR","BT","any",33,0,33,0,26,31,31,31,1,0.787878787878788,0.93939393939394,0.93939393939394,0.93939393939394,0,0,33,26,33,31,0.787878787878788,0.93939393939394,3665.56,928.18,1525.02,,,,,,FALSE +"fresh_default","default",0,TRUE,"FOXR","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,3665.56,928.18,1525.02,,,,,,FALSE +"fresh_default","default",0,TRUE,"FOXR","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,3665.56,928.18,1525.02,,,,,,FALSE +"fresh_default","default",0,TRUE,"FOXR","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",0,TRUE,"FOXR","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",0,TRUE,"FOXR","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",0,TRUE,"FRAN","BT","any",102,0,102,0,48,71,73,73,1,0.470588235294118,0.696078431372549,0.715686274509804,0.715686274509804,0,0,102,48,102,73,0.470588235294118,0.715686274509804,9078.53,1120.86,2355.24,,,,,,FALSE +"fresh_default","default",0,TRUE,"FRAN","BT","spawn",1,0,1,0,0,1,1,1,1,0,1,1,1,0,0,1,0,1,1,0,1,9078.53,1120.86,2355.24,,,,,,FALSE +"fresh_default","default",0,TRUE,"FRAN","BT","rear",90,0,90,0,41,62,62,62,1,0.455555555555556,0.688888888888889,0.688888888888889,0.688888888888889,0,0,90,41,90,62,0.455555555555556,0.688888888888889,9078.53,1120.86,2355.24,,,,,,FALSE +"fresh_default","default",0,TRUE,"FRAN","CH","any",23,0,23,0,21,20,21,21,1,0.91304347826087,0.869565217391304,0.91304347826087,0.91304347826087,11,0,12,10,23,21,0.833333333333333,0.91304347826087,7351.32,597.53,1631.89,,,,,,FALSE +"fresh_default","default",0,TRUE,"FRAN","CH","spawn",4,0,4,0,4,3,4,4,1,1,0.75,1,1,4,0,0,0,4,4,,1,7351.32,597.53,1631.89,,,,,,FALSE +"fresh_default","default",0,TRUE,"FRAN","CH","rear",4,0,4,0,2,2,2,2,1,0.5,0.5,0.5,0.5,0,0,4,2,4,2,0.5,0.5,7351.32,597.53,1631.89,,,,,,FALSE +"fresh_default","default",0,TRUE,"FRCN","BT","any",95,0,95,0,50,88,89,89,1,0.526315789473684,0.926315789473684,0.936842105263158,0.936842105263158,0,0,95,50,95,89,0.526315789473684,0.936842105263158,1504.38,663.33,889.13,,,,,,FALSE +"fresh_default","default",0,TRUE,"FRCN","BT","spawn",1,0,1,0,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1504.38,663.33,889.13,,,,,,FALSE +"fresh_default","default",0,TRUE,"FRCN","BT","rear",5,0,5,0,2,4,4,4,1,0.4,0.8,0.8,0.8,0,0,5,2,5,4,0.4,0.8,1504.38,663.33,889.13,,,,,,FALSE +"fresh_default","default",0,TRUE,"FRCN","CH","any",31,0,30,1,26,27,27,30,0.967741935483871,0.838709677419355,0.870967741935484,0.870967741935484,0.967741935483871,13,0,18,13,31,27,0.722222222222222,0.870967741935484,749.15,451.01,481.99,,,,,,FALSE +"fresh_default","default",0,TRUE,"FRCN","CH","spawn",5,0,5,0,5,3,3,5,1,1,0.6,0.6,1,5,0,0,0,5,3,,0.6,749.15,451.01,481.99,,,,,,FALSE +"fresh_default","default",0,TRUE,"FRCN","CH","rear",13,0,13,0,10,13,13,13,1,0.769230769230769,1,1,1,2,0,11,8,13,13,0.727272727272727,1,749.15,451.01,481.99,,,,,,FALSE +"fresh_default","default",0,TRUE,"HARR","BT","any",43,0,42,1,22,32,36,36,0.976744186046512,0.511627906976744,0.744186046511628,0.837209302325581,0.837209302325581,0,0,43,22,43,36,0.511627906976744,0.837209302325581,1619.34,470.27,588.62,,,,,,FALSE +"fresh_default","default",0,TRUE,"HARR","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,1619.34,470.27,588.62,,,,,,FALSE +"fresh_default","default",0,TRUE,"HARR","BT","rear",7,0,7,0,3,6,6,6,1,0.428571428571429,0.857142857142857,0.857142857142857,0.857142857142857,0,0,7,3,7,6,0.428571428571429,0.857142857142857,1619.34,470.27,588.62,,,,,,FALSE +"fresh_default","default",0,TRUE,"HARR","CH","any",118,0,116,2,110,109,111,112,0.983050847457627,0.932203389830508,0.923728813559322,0.940677966101695,0.949152542372881,8,0,110,102,118,111,0.927272727272727,0.940677966101695,1148.93,329.59,385.83,,,,,,FALSE +"fresh_default","default",0,TRUE,"HARR","CH","spawn",4,0,4,0,4,3,3,4,1,1,0.75,0.75,1,4,0,0,0,4,3,,0.75,1148.93,329.59,385.83,,,,,,FALSE +"fresh_default","default",0,TRUE,"HARR","CH","rear",46,0,45,1,44,44,44,44,0.978260869565217,0.956521739130435,0.956521739130435,0.956521739130435,0.956521739130435,0,0,46,44,46,44,0.956521739130435,0.956521739130435,1148.93,329.59,385.83,,,,,,FALSE +"fresh_default","default",0,TRUE,"INGR","BT","any",27,0,27,0,23,26,26,26,1,0.851851851851852,0.962962962962963,0.962962962962963,0.962962962962963,0,0,27,23,27,26,0.851851851851852,0.962962962962963,3925.58,1111.41,1736.58,,,,,,FALSE +"fresh_default","default",0,TRUE,"INGR","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,3925.58,1111.41,1736.58,,,,,,FALSE +"fresh_default","default",0,TRUE,"INGR","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,3925.58,1111.41,1736.58,,,,,,FALSE +"fresh_default","default",0,TRUE,"INGR","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",0,TRUE,"INGR","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",0,TRUE,"INGR","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",0,TRUE,"KISP","BT","any",195,0,192,3,122,159,162,162,0.984615384615385,0.625641025641026,0.815384615384615,0.830769230769231,0.830769230769231,0,0,195,122,195,162,0.625641025641026,0.830769230769231,4529.14,1258.71,1894.95,,,,,,FALSE +"fresh_default","default",0,TRUE,"KISP","BT","spawn",5,0,5,0,2,3,3,3,1,0.4,0.6,0.6,0.6,0,0,5,2,5,3,0.4,0.6,4529.14,1258.71,1894.95,,,,,,FALSE +"fresh_default","default",0,TRUE,"KISP","BT","rear",56,0,53,3,27,37,37,37,0.946428571428571,0.482142857142857,0.660714285714286,0.660714285714286,0.660714285714286,0,0,56,27,56,37,0.482142857142857,0.660714285714286,4529.14,1258.71,1894.95,,,,,,FALSE +"fresh_default","default",0,TRUE,"KISP","CH","any",89,0,89,0,82,76,79,83,1,0.921348314606742,0.853932584269663,0.887640449438202,0.932584269662921,37,0,52,45,89,79,0.865384615384615,0.887640449438202,2841.44,862.28,1178.83,,,,,,FALSE +"fresh_default","default",0,TRUE,"KISP","CH","spawn",30,0,30,0,30,25,26,30,1,1,0.833333333333333,0.866666666666667,1,30,0,0,0,30,26,,0.866666666666667,2841.44,862.28,1178.83,,,,,,FALSE +"fresh_default","default",0,TRUE,"KISP","CH","rear",12,0,12,0,10,10,10,10,1,0.833333333333333,0.833333333333333,0.833333333333333,0.833333333333333,1,0,11,9,12,10,0.818181818181818,0.833333333333333,2841.44,862.28,1178.83,,,,,,FALSE +"fresh_default","default",0,TRUE,"KLUM","BT","any",314,0,302,12,194,243,244,244,0.961783439490446,0.617834394904459,0.773885350318471,0.777070063694268,0.777070063694268,0,0,314,194,314,244,0.617834394904459,0.777070063694268,2173.93,929.96,1229.04,,,,,,FALSE +"fresh_default","default",0,TRUE,"KLUM","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,2173.93,929.96,1229.04,,,,,,FALSE +"fresh_default","default",0,TRUE,"KLUM","BT","rear",141,0,137,4,66,95,96,96,0.971631205673759,0.468085106382979,0.673758865248227,0.680851063829787,0.680851063829787,0,0,141,66,141,96,0.468085106382979,0.680851063829787,2173.93,929.96,1229.04,,,,,,FALSE +"fresh_default","default",0,TRUE,"KLUM","CH","any",104,0,99,5,87,88,90,91,0.951923076923077,0.836538461538462,0.846153846153846,0.865384615384615,0.875,28,0,76,59,104,90,0.776315789473684,0.865384615384615,1523.16,708.12,905.48,,,,,,FALSE +"fresh_default","default",0,TRUE,"KLUM","CH","spawn",20,0,19,1,20,18,19,20,0.95,1,0.9,0.95,1,20,0,0,0,20,19,,0.95,1523.16,708.12,905.48,,,,,,FALSE +"fresh_default","default",0,TRUE,"KLUM","CH","rear",19,0,19,0,14,16,16,16,1,0.736842105263158,0.842105263157895,0.842105263157895,0.842105263157895,4,0,15,10,19,16,0.666666666666667,0.842105263157895,1523.16,708.12,905.48,,,,,,FALSE +"fresh_default","default",0,TRUE,"KOTL","BT","any",206,0,203,3,116,164,173,173,0.985436893203884,0.563106796116505,0.796116504854369,0.839805825242718,0.839805825242718,0,0,206,116,206,173,0.563106796116505,0.839805825242718,3619.68,1035.15,1599.21,,,,,,TRUE +"fresh_default","default",0,TRUE,"KOTL","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,3619.68,1035.15,1599.21,,,,,,TRUE +"fresh_default","default",0,TRUE,"KOTL","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,3619.68,1035.15,1599.21,,,,,,TRUE +"fresh_default","default",0,TRUE,"KOTL","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh_default","default",0,TRUE,"KOTL","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh_default","default",0,TRUE,"KOTL","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh_default","default",0,TRUE,"LARL","BT","any",165,0,164,1,99,128,134,134,0.993939393939394,0.6,0.775757575757576,0.812121212121212,0.812121212121212,0,0,165,99,165,134,0.6,0.812121212121212,2242.72,563.88,845.5,,,,,,TRUE +"fresh_default","default",0,TRUE,"LARL","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,2242.72,563.88,845.5,,,,,,TRUE +"fresh_default","default",0,TRUE,"LARL","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,2242.72,563.88,845.5,,,,,,TRUE +"fresh_default","default",0,TRUE,"LARL","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh_default","default",0,TRUE,"LARL","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh_default","default",0,TRUE,"LARL","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh_default","default",0,TRUE,"LBTN","BT","any",2,0,2,0,2,2,2,2,1,1,1,1,1,0,0,2,2,2,2,1,1,9061.71,2027.4,2961.53,,,,,,FALSE +"fresh_default","default",0,TRUE,"LBTN","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,9061.71,2027.4,2961.53,,,,,,FALSE +"fresh_default","default",0,TRUE,"LBTN","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,9061.71,2027.4,2961.53,,,,,,FALSE +"fresh_default","default",0,TRUE,"LBTN","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",0,TRUE,"LBTN","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",0,TRUE,"LBTN","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",0,TRUE,"LCHL","BT","any",6,0,6,0,5,6,6,6,1,0.833333333333333,1,1,1,0,0,6,5,6,6,0.833333333333333,1,5533.57,908.41,1581.55,,,,,,FALSE +"fresh_default","default",0,TRUE,"LCHL","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,5533.57,908.41,1581.55,,,,,,FALSE +"fresh_default","default",0,TRUE,"LCHL","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,5533.57,908.41,1581.55,,,,,,FALSE +"fresh_default","default",0,TRUE,"LCHL","CH","any",38,0,38,0,35,34,34,37,1,0.921052631578947,0.894736842105263,0.894736842105263,0.973684210526316,10,0,28,25,38,34,0.892857142857143,0.894736842105263,4358.83,468.47,1153.83,,,,,,FALSE +"fresh_default","default",0,TRUE,"LCHL","CH","spawn",2,0,2,0,2,2,2,2,1,1,1,1,1,2,0,0,0,2,2,,1,4358.83,468.47,1153.83,,,,,,FALSE +"fresh_default","default",0,TRUE,"LCHL","CH","rear",23,0,23,0,20,19,19,22,1,0.869565217391304,0.826086956521739,0.826086956521739,0.956521739130435,6,0,17,14,23,19,0.823529411764706,0.826086956521739,4358.83,468.47,1153.83,,,,,,FALSE +"fresh_default","default",0,TRUE,"LFRA","BT","any",78,0,78,0,57,64,69,69,1,0.730769230769231,0.82051282051282,0.884615384615385,0.884615384615385,0,0,78,57,78,69,0.730769230769231,0.884615384615385,3569.06,1241.71,1516.52,,,,,,FALSE +"fresh_default","default",0,TRUE,"LFRA","BT","spawn",1,0,1,0,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,3569.06,1241.71,1516.52,,,,,,FALSE +"fresh_default","default",0,TRUE,"LFRA","BT","rear",2,0,2,0,2,2,2,2,1,1,1,1,1,0,0,2,2,2,2,1,1,3569.06,1241.71,1516.52,,,,,,FALSE +"fresh_default","default",0,TRUE,"LFRA","CH","any",165,0,161,4,105,132,133,133,0.975757575757576,0.636363636363636,0.8,0.806060606060606,0.806060606060606,19,0,146,86,165,133,0.589041095890411,0.806060606060606,3074.38,826.28,1254.99,,,,,,FALSE +"fresh_default","default",0,TRUE,"LFRA","CH","spawn",10,0,10,0,10,10,10,10,1,1,1,1,1,10,0,0,0,10,10,,1,3074.38,826.28,1254.99,,,,,,FALSE +"fresh_default","default",0,TRUE,"LFRA","CH","rear",66,0,65,1,39,54,54,54,0.984848484848485,0.590909090909091,0.818181818181818,0.818181818181818,0.818181818181818,6,0,60,33,66,54,0.55,0.818181818181818,3074.38,826.28,1254.99,,,,,,FALSE +"fresh_default","default",0,TRUE,"LKEL","BT","any",63,0,63,0,36,45,48,48,1,0.571428571428571,0.714285714285714,0.761904761904762,0.761904761904762,0,0,63,36,63,48,0.571428571428571,0.761904761904762,405.16,144.67,218.77,,,,,,FALSE +"fresh_default","default",0,TRUE,"LKEL","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,405.16,144.67,218.77,,,,,,FALSE +"fresh_default","default",0,TRUE,"LKEL","BT","rear",26,0,26,0,11,16,16,16,1,0.423076923076923,0.615384615384615,0.615384615384615,0.615384615384615,0,0,26,11,26,16,0.423076923076923,0.615384615384615,405.16,144.67,218.77,,,,,,FALSE +"fresh_default","default",0,TRUE,"LKEL","CH","any",14,0,14,0,12,11,12,14,1,0.857142857142857,0.785714285714286,0.857142857142857,1,5,0,9,7,14,12,0.777777777777778,0.857142857142857,332.18,106.7,162.87,,,,,,FALSE +"fresh_default","default",0,TRUE,"LKEL","CH","spawn",3,0,3,0,3,2,2,3,1,1,0.666666666666667,0.666666666666667,1,3,0,0,0,3,2,,0.666666666666667,332.18,106.7,162.87,,,,,,FALSE +"fresh_default","default",0,TRUE,"LKEL","CH","rear",2,0,2,0,1,2,2,2,1,0.5,1,1,1,0,0,2,1,2,2,0.5,1,332.18,106.7,162.87,,,,,,FALSE +"fresh_default","default",0,TRUE,"LOMI","BT","any",27,0,26,1,20,25,25,25,0.962962962962963,0.740740740740741,0.925925925925926,0.925925925925926,0.925925925925926,0,0,27,20,27,25,0.740740740740741,0.925925925925926,3639.43,1004.03,1513.07,,,,,,FALSE +"fresh_default","default",0,TRUE,"LOMI","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,3639.43,1004.03,1513.07,,,,,,FALSE +"fresh_default","default",0,TRUE,"LOMI","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,3639.43,1004.03,1513.07,,,,,,FALSE +"fresh_default","default",0,TRUE,"LOMI","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",0,TRUE,"LOMI","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",0,TRUE,"LOMI","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",0,TRUE,"LPCE","BT","any",55,0,53,2,42,42,42,42,0.963636363636364,0.763636363636364,0.763636363636364,0.763636363636364,0.763636363636364,0,0,55,42,55,42,0.763636363636364,0.763636363636364,3571.54,1000.37,1386.86,,,,,,FALSE +"fresh_default","default",0,TRUE,"LPCE","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,3571.54,1000.37,1386.86,,,,,,FALSE +"fresh_default","default",0,TRUE,"LPCE","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,3571.54,1000.37,1386.86,,,,,,FALSE +"fresh_default","default",0,TRUE,"LPCE","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",0,TRUE,"LPCE","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",0,TRUE,"LPCE","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",0,TRUE,"LSAL","BT","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",0,TRUE,"LSAL","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",0,TRUE,"LSAL","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",0,TRUE,"LSAL","CH","any",17,0,17,0,17,17,17,17,1,1,1,1,1,6,0,11,11,17,17,1,1,3029.07,317.62,1060.92,,,,,,FALSE +"fresh_default","default",0,TRUE,"LSAL","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,3029.07,317.62,1060.92,,,,,,FALSE +"fresh_default","default",0,TRUE,"LSAL","CH","rear",4,0,4,0,4,4,4,4,1,1,1,1,1,2,0,2,2,4,4,1,1,3029.07,317.62,1060.92,,,,,,FALSE +"fresh_default","default",0,TRUE,"LSKE","BT","any",230,0,227,3,168,193,193,193,0.98695652173913,0.730434782608696,0.839130434782609,0.839130434782609,0.839130434782609,0,0,230,168,230,193,0.730434782608696,0.839130434782609,3075.25,1326.45,1709.47,,,,,,FALSE +"fresh_default","default",0,TRUE,"LSKE","BT","spawn",3,0,3,0,2,2,2,2,1,0.666666666666667,0.666666666666667,0.666666666666667,0.666666666666667,0,0,3,2,3,2,0.666666666666667,0.666666666666667,3075.25,1326.45,1709.47,,,,,,FALSE +"fresh_default","default",0,TRUE,"LSKE","BT","rear",111,0,109,2,69,85,85,85,0.981981981981982,0.621621621621622,0.765765765765766,0.765765765765766,0.765765765765766,0,0,111,69,111,85,0.621621621621622,0.765765765765766,3075.25,1326.45,1709.47,,,,,,FALSE +"fresh_default","default",0,TRUE,"LSKE","CH","any",122,0,119,3,106,106,106,111,0.975409836065574,0.868852459016393,0.868852459016393,0.868852459016393,0.90983606557377,40,0,82,66,122,106,0.804878048780488,0.868852459016393,2101.75,1052.46,1308.55,,,,,,FALSE +"fresh_default","default",0,TRUE,"LSKE","CH","spawn",24,0,23,1,24,22,22,24,0.958333333333333,1,0.916666666666667,0.916666666666667,1,24,0,0,0,24,22,,0.916666666666667,2101.75,1052.46,1308.55,,,,,,FALSE +"fresh_default","default",0,TRUE,"LSKE","CH","rear",35,0,35,0,26,29,29,30,1,0.742857142857143,0.828571428571429,0.828571428571429,0.857142857142857,3,0,32,23,35,29,0.71875,0.828571428571429,2101.75,1052.46,1308.55,,,,,,FALSE +"fresh_default","default",0,TRUE,"MESI","BT","any",64,0,64,0,50,60,60,60,1,0.78125,0.9375,0.9375,0.9375,0,0,64,50,64,60,0.78125,0.9375,2825.32,691.09,1077.07,,,,,,FALSE +"fresh_default","default",0,TRUE,"MESI","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,2825.32,691.09,1077.07,,,,,,FALSE +"fresh_default","default",0,TRUE,"MESI","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,2825.32,691.09,1077.07,,,,,,FALSE +"fresh_default","default",0,TRUE,"MESI","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",0,TRUE,"MESI","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",0,TRUE,"MESI","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",0,TRUE,"MFRA","BT","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",0,TRUE,"MFRA","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",0,TRUE,"MFRA","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",0,TRUE,"MFRA","CH","any",2,0,1,1,0,0,0,0,0.5,0,0,0,0,0,0,2,0,2,0,0,0,277.46,100.9,121.94,,,,,,FALSE +"fresh_default","default",0,TRUE,"MFRA","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,277.46,100.9,121.94,,,,,,FALSE +"fresh_default","default",0,TRUE,"MFRA","CH","rear",2,0,1,1,0,0,0,0,0.5,0,0,0,0,0,0,2,0,2,0,0,0,277.46,100.9,121.94,,,,,,FALSE +"fresh_default","default",0,TRUE,"MORK","BT","any",79,0,79,0,70,72,73,73,1,0.886075949367089,0.911392405063291,0.924050632911392,0.924050632911392,0,0,79,70,79,73,0.886075949367089,0.924050632911392,7202.59,2148.8,3077.39,,,,,,FALSE +"fresh_default","default",0,TRUE,"MORK","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,7202.59,2148.8,3077.39,,,,,,FALSE +"fresh_default","default",0,TRUE,"MORK","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,7202.59,2148.8,3077.39,,,,,,FALSE +"fresh_default","default",0,TRUE,"MORK","CH","any",156,0,155,1,145,145,146,148,0.993589743589744,0.92948717948718,0.92948717948718,0.935897435897436,0.948717948717949,92,0,64,53,156,146,0.828125,0.935897435897436,5953.1,1577.65,2499.11,,,,,,FALSE +"fresh_default","default",0,TRUE,"MORK","CH","spawn",25,0,25,0,25,23,24,25,1,1,0.92,0.96,1,25,0,0,0,25,24,,0.96,5953.1,1577.65,2499.11,,,,,,FALSE +"fresh_default","default",0,TRUE,"MORK","CH","rear",32,0,31,1,24,25,25,25,0.96875,0.75,0.78125,0.78125,0.78125,15,0,17,9,32,25,0.529411764705882,0.78125,5953.1,1577.65,2499.11,,,,,,FALSE +"fresh_default","default",0,TRUE,"MORR","BT","any",357,0,357,0,154,258,265,265,1,0.431372549019608,0.722689075630252,0.742296918767507,0.742296918767507,0,0,357,154,357,265,0.431372549019608,0.742296918767507,4865.96,960.8,1685.2,,,,,,FALSE +"fresh_default","default",0,TRUE,"MORR","BT","spawn",23,0,23,0,7,15,15,15,1,0.304347826086957,0.652173913043478,0.652173913043478,0.652173913043478,0,0,23,7,23,15,0.304347826086957,0.652173913043478,4865.96,960.8,1685.2,,,,,,FALSE +"fresh_default","default",0,TRUE,"MORR","BT","rear",106,0,106,0,28,63,65,65,1,0.264150943396226,0.594339622641509,0.613207547169811,0.613207547169811,0,0,106,28,106,65,0.264150943396226,0.613207547169811,4865.96,960.8,1685.2,,,,,,FALSE +"fresh_default","default",0,TRUE,"MORR","CH","any",41,0,41,0,33,35,38,38,1,0.804878048780488,0.853658536585366,0.926829268292683,0.926829268292683,24,0,17,10,41,38,0.588235294117647,0.926829268292683,3341.35,646.28,1171.33,,,,,,FALSE +"fresh_default","default",0,TRUE,"MORR","CH","spawn",9,0,9,0,9,7,9,9,1,1,0.777777777777778,1,1,9,0,0,0,9,9,,1,3341.35,646.28,1171.33,,,,,,FALSE +"fresh_default","default",0,TRUE,"MORR","CH","rear",2,0,2,0,1,2,2,2,1,0.5,1,1,1,0,0,2,1,2,2,0.5,1,3341.35,646.28,1171.33,,,,,,FALSE +"fresh_default","default",0,TRUE,"MSKE","BT","any",69,0,68,1,46,51,51,51,0.985507246376812,0.666666666666667,0.739130434782609,0.739130434782609,0.739130434782609,0,0,69,46,69,51,0.666666666666667,0.739130434782609,2691.58,922.19,1383.97,,,,,,FALSE +"fresh_default","default",0,TRUE,"MSKE","BT","spawn",4,0,4,0,2,2,2,2,1,0.5,0.5,0.5,0.5,0,0,4,2,4,2,0.5,0.5,2691.58,922.19,1383.97,,,,,,FALSE +"fresh_default","default",0,TRUE,"MSKE","BT","rear",5,0,4,1,0,0,0,0,0.8,0,0,0,0,0,0,5,0,5,0,0,0,2691.58,922.19,1383.97,,,,,,FALSE +"fresh_default","default",0,TRUE,"MSKE","CH","any",42,0,40,2,36,38,38,39,0.952380952380952,0.857142857142857,0.904761904761905,0.904761904761905,0.928571428571429,6,0,36,30,42,38,0.833333333333333,0.904761904761905,1516.21,676.83,856.12,,,,,,FALSE +"fresh_default","default",0,TRUE,"MSKE","CH","spawn",4,0,3,1,4,3,3,4,0.75,1,0.75,0.75,1,4,0,0,0,4,3,,0.75,1516.21,676.83,856.12,,,,,,FALSE +"fresh_default","default",0,TRUE,"MSKE","CH","rear",2,0,1,1,1,1,1,1,0.5,0.5,0.5,0.5,0.5,1,0,1,0,2,1,0,0.5,1516.21,676.83,856.12,,,,,,FALSE +"fresh_default","default",0,TRUE,"NARC","BT","any",7,0,7,0,7,7,7,7,1,1,1,1,1,0,0,7,7,7,7,1,1,4336.98,873.49,1703.68,,,,,,FALSE +"fresh_default","default",0,TRUE,"NARC","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,4336.98,873.49,1703.68,,,,,,FALSE +"fresh_default","default",0,TRUE,"NARC","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,4336.98,873.49,1703.68,,,,,,FALSE +"fresh_default","default",0,TRUE,"NARC","CH","any",22,0,22,0,21,20,20,22,1,0.954545454545455,0.909090909090909,0.909090909090909,1,18,0,4,3,22,20,0.75,0.909090909090909,3563.45,506.51,1327.21,,,,,,FALSE +"fresh_default","default",0,TRUE,"NARC","CH","spawn",9,0,9,0,9,8,8,9,1,1,0.888888888888889,0.888888888888889,1,9,0,0,0,9,8,,0.888888888888889,3563.45,506.51,1327.21,,,,,,FALSE +"fresh_default","default",0,TRUE,"NARC","CH","rear",6,0,6,0,6,5,5,6,1,1,0.833333333333333,0.833333333333333,1,5,0,1,1,6,5,1,0.833333333333333,3563.45,506.51,1327.21,,,,,,FALSE +"fresh_default","default",0,TRUE,"NATR","BT","any",57,0,57,0,37,47,48,48,1,0.649122807017544,0.824561403508772,0.842105263157895,0.842105263157895,0,0,57,37,57,48,0.649122807017544,0.842105263157895,9819.51,1803.66,3496.13,,,,,,FALSE +"fresh_default","default",0,TRUE,"NATR","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,9819.51,1803.66,3496.13,,,,,,FALSE +"fresh_default","default",0,TRUE,"NATR","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,9819.51,1803.66,3496.13,,,,,,FALSE +"fresh_default","default",0,TRUE,"NATR","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",0,TRUE,"NATR","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",0,TRUE,"NATR","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",0,TRUE,"NECR","BT","any",12,0,12,0,12,12,12,12,1,1,1,1,1,0,0,12,12,12,12,1,1,6329.74,991.14,1943.82,,,,,,FALSE +"fresh_default","default",0,TRUE,"NECR","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,6329.74,991.14,1943.82,,,,,,FALSE +"fresh_default","default",0,TRUE,"NECR","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,6329.74,991.14,1943.82,,,,,,FALSE +"fresh_default","default",0,TRUE,"NECR","CH","any",101,0,101,0,93,97,97,97,1,0.920792079207921,0.96039603960396,0.96039603960396,0.96039603960396,33,0,68,60,101,97,0.88235294117647,0.96039603960396,5608.47,516.15,1649.24,,,,,,FALSE +"fresh_default","default",0,TRUE,"NECR","CH","spawn",9,0,9,0,9,9,9,9,1,1,1,1,1,9,0,0,0,9,9,,1,5608.47,516.15,1649.24,,,,,,FALSE +"fresh_default","default",0,TRUE,"NECR","CH","rear",6,0,6,0,4,6,6,6,1,0.666666666666667,1,1,1,1,0,5,3,6,6,0.6,1,5608.47,516.15,1649.24,,,,,,FALSE +"fresh_default","default",0,TRUE,"OSPK","BT","any",12,0,12,0,10,12,12,12,1,0.833333333333333,1,1,1,0,0,12,10,12,12,0.833333333333333,1,1882.44,594.62,877.22,,,,,,FALSE +"fresh_default","default",0,TRUE,"OSPK","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,1882.44,594.62,877.22,,,,,,FALSE +"fresh_default","default",0,TRUE,"OSPK","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,1882.44,594.62,877.22,,,,,,FALSE +"fresh_default","default",0,TRUE,"OSPK","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",0,TRUE,"OSPK","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",0,TRUE,"OSPK","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",0,TRUE,"PARA","BT","any",77,0,77,0,60,67,70,70,1,0.779220779220779,0.87012987012987,0.909090909090909,0.909090909090909,0,0,77,60,77,70,0.779220779220779,0.909090909090909,4400.24,720.29,1330.46,,,,,,FALSE +"fresh_default","default",0,TRUE,"PARA","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,4400.24,720.29,1330.46,,,,,,FALSE +"fresh_default","default",0,TRUE,"PARA","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,4400.24,720.29,1330.46,,,,,,FALSE +"fresh_default","default",0,TRUE,"PARA","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",0,TRUE,"PARA","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",0,TRUE,"PARA","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",0,TRUE,"PARS","BT","any",281,0,281,0,231,259,259,259,1,0.822064056939502,0.921708185053381,0.921708185053381,0.921708185053381,0,0,281,231,281,259,0.822064056939502,0.921708185053381,6883.03,1685.38,2635.01,,,,,,FALSE +"fresh_default","default",0,TRUE,"PARS","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,6883.03,1685.38,2635.01,,,,,,FALSE +"fresh_default","default",0,TRUE,"PARS","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,6883.03,1685.38,2635.01,,,,,,FALSE +"fresh_default","default",0,TRUE,"PARS","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",0,TRUE,"PARS","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",0,TRUE,"PARS","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",0,TRUE,"PCEA","BT","any",176,0,176,0,134,151,161,161,1,0.761363636363636,0.857954545454545,0.914772727272727,0.914772727272727,0,0,176,134,176,161,0.761363636363636,0.914772727272727,7091.82,921.92,1489.72,,,,,,FALSE +"fresh_default","default",0,TRUE,"PCEA","BT","spawn",1,0,1,0,0,0,1,1,1,0,0,1,1,0,0,1,0,1,1,0,1,7091.82,921.92,1489.72,,,,,,FALSE +"fresh_default","default",0,TRUE,"PCEA","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,7091.82,921.92,1489.72,,,,,,FALSE +"fresh_default","default",0,TRUE,"PCEA","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",0,TRUE,"PCEA","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",0,TRUE,"PCEA","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",0,TRUE,"PINE","BT","any",249,0,249,0,225,240,240,240,1,0.903614457831325,0.963855421686747,0.963855421686747,0.963855421686747,0,0,249,225,249,240,0.903614457831325,0.963855421686747,5539.06,1645.08,2409.65,213,193,115,153,153,TRUE +"fresh_default","default",0,TRUE,"PINE","BT","spawn",3,0,3,0,3,3,3,3,1,1,1,1,1,0,0,3,3,3,3,1,1,5539.06,1645.08,2409.65,213,193,115,153,153,TRUE +"fresh_default","default",0,TRUE,"PINE","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,5539.06,1645.08,2409.65,213,193,115,153,153,TRUE +"fresh_default","default",0,TRUE,"PINE","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh_default","default",0,TRUE,"PINE","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh_default","default",0,TRUE,"PINE","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh_default","default",0,TRUE,"SALR","BT","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",0,TRUE,"SALR","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",0,TRUE,"SALR","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",0,TRUE,"SALR","CH","any",7,0,7,0,6,6,6,6,1,0.857142857142857,0.857142857142857,0.857142857142857,0.857142857142857,5,0,2,1,7,6,0.5,0.857142857142857,3174.7,234.92,966.25,,,,,,FALSE +"fresh_default","default",0,TRUE,"SALR","CH","spawn",4,0,4,0,4,4,4,4,1,1,1,1,1,4,0,0,0,4,4,,1,3174.7,234.92,966.25,,,,,,FALSE +"fresh_default","default",0,TRUE,"SALR","CH","rear",2,0,2,0,1,1,1,1,1,0.5,0.5,0.5,0.5,0,0,2,1,2,1,0.5,0.5,3174.7,234.92,966.25,,,,,,FALSE +"fresh_default","default",0,TRUE,"SETN","BT","any",180,0,177,3,115,143,150,150,0.983333333333333,0.638888888888889,0.794444444444444,0.833333333333333,0.833333333333333,0,0,180,115,180,150,0.638888888888889,0.833333333333333,3258.86,851.7,1239.78,,,,,,FALSE +"fresh_default","default",0,TRUE,"SETN","BT","spawn",3,0,2,1,2,2,2,2,0.666666666666667,0.666666666666667,0.666666666666667,0.666666666666667,0.666666666666667,0,0,3,2,3,2,0.666666666666667,0.666666666666667,3258.86,851.7,1239.78,,,,,,FALSE +"fresh_default","default",0,TRUE,"SETN","BT","rear",1,0,1,0,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,3258.86,851.7,1239.78,,,,,,FALSE +"fresh_default","default",0,TRUE,"SETN","CH","any",117,0,116,1,111,111,112,112,0.991452991452991,0.948717948717949,0.948717948717949,0.957264957264957,0.957264957264957,105,0,12,6,117,112,0.5,0.957264957264957,1500.97,543.88,663.52,,,,,,FALSE +"fresh_default","default",0,TRUE,"SETN","CH","spawn",17,0,17,0,16,16,16,16,1,0.941176470588235,0.941176470588235,0.941176470588235,0.941176470588235,16,0,1,0,17,16,0,0.941176470588235,1500.97,543.88,663.52,,,,,,FALSE +"fresh_default","default",0,TRUE,"SETN","CH","rear",85,0,85,0,85,85,85,85,1,1,1,1,1,82,0,3,3,85,85,1,1,1500.97,543.88,663.52,,,,,,FALSE +"fresh_default","default",0,TRUE,"SLOC","BT","any",96,0,93,3,39,59,62,62,0.96875,0.40625,0.614583333333333,0.645833333333333,0.645833333333333,0,0,96,39,96,62,0.40625,0.645833333333333,1117.37,395.66,574.02,,,,,,TRUE +"fresh_default","default",0,TRUE,"SLOC","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,1117.37,395.66,574.02,,,,,,TRUE +"fresh_default","default",0,TRUE,"SLOC","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,1117.37,395.66,574.02,,,,,,TRUE +"fresh_default","default",0,TRUE,"SLOC","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh_default","default",0,TRUE,"SLOC","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh_default","default",0,TRUE,"SLOC","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh_default","default",0,TRUE,"TABR","BT","any",10,0,10,0,4,4,4,4,1,0.4,0.4,0.4,0.4,0,0,10,4,10,4,0.4,0.4,3402.26,678.31,1061,,,,,,FALSE +"fresh_default","default",0,TRUE,"TABR","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,3402.26,678.31,1061,,,,,,FALSE +"fresh_default","default",0,TRUE,"TABR","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,3402.26,678.31,1061,,,,,,FALSE +"fresh_default","default",0,TRUE,"TABR","CH","any",50,0,48,2,29,32,32,32,0.96,0.58,0.64,0.64,0.64,4,0,46,25,50,32,0.543478260869565,0.64,2633.55,410.85,789.94,,,,,,FALSE +"fresh_default","default",0,TRUE,"TABR","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,2633.55,410.85,789.94,,,,,,FALSE +"fresh_default","default",0,TRUE,"TABR","CH","rear",25,0,24,1,17,18,18,18,0.96,0.68,0.72,0.72,0.72,3,0,22,14,25,18,0.636363636363636,0.72,2633.55,410.85,789.94,,,,,,FALSE +"fresh_default","default",0,TRUE,"TOOD","BT","any",36,0,36,0,31,34,34,34,1,0.861111111111111,0.944444444444444,0.944444444444444,0.944444444444444,0,0,36,31,36,34,0.861111111111111,0.944444444444444,4697.77,1131.97,1815.93,,,,,,FALSE +"fresh_default","default",0,TRUE,"TOOD","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,4697.77,1131.97,1815.93,,,,,,FALSE +"fresh_default","default",0,TRUE,"TOOD","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,4697.77,1131.97,1815.93,,,,,,FALSE +"fresh_default","default",0,TRUE,"TOOD","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",0,TRUE,"TOOD","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",0,TRUE,"TOOD","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",0,TRUE,"TWAC","BT","any",2,0,2,0,2,2,2,2,1,1,1,1,1,0,0,2,2,2,2,1,1,1060.41,227.23,402.55,,,,,,FALSE +"fresh_default","default",0,TRUE,"TWAC","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,1060.41,227.23,402.55,,,,,,FALSE +"fresh_default","default",0,TRUE,"TWAC","BT","rear",1,0,1,0,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1060.41,227.23,402.55,,,,,,FALSE +"fresh_default","default",0,TRUE,"TWAC","CH","any",9,0,9,0,8,9,9,9,1,0.888888888888889,1,1,1,0,0,9,8,9,9,0.888888888888889,1,705.9,144.23,228.3,,,,,,FALSE +"fresh_default","default",0,TRUE,"TWAC","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,705.9,144.23,228.3,,,,,,FALSE +"fresh_default","default",0,TRUE,"TWAC","CH","rear",7,0,7,0,7,7,7,7,1,1,1,1,1,0,0,7,7,7,7,1,1,705.9,144.23,228.3,,,,,,FALSE +"fresh_default","default",0,TRUE,"UFRA","BT","any",87,0,87,0,44,58,58,58,1,0.505747126436782,0.666666666666667,0.666666666666667,0.666666666666667,0,0,87,44,87,58,0.505747126436782,0.666666666666667,2752.86,948.12,1217.11,,,,,,FALSE +"fresh_default","default",0,TRUE,"UFRA","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,2752.86,948.12,1217.11,,,,,,FALSE +"fresh_default","default",0,TRUE,"UFRA","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,2752.86,948.12,1217.11,,,,,,FALSE +"fresh_default","default",0,TRUE,"UFRA","CH","any",51,0,51,0,45,45,45,45,1,0.88235294117647,0.88235294117647,0.88235294117647,0.88235294117647,29,0,22,16,51,45,0.727272727272727,0.88235294117647,1487.28,642.83,764.56,,,,,,FALSE +"fresh_default","default",0,TRUE,"UFRA","CH","spawn",11,0,11,0,11,11,11,11,1,1,1,1,1,11,0,0,0,11,11,,1,1487.28,642.83,764.56,,,,,,FALSE +"fresh_default","default",0,TRUE,"UFRA","CH","rear",6,0,6,0,3,3,3,3,1,0.5,0.5,0.5,0.5,2,0,4,1,6,3,0.25,0.5,1487.28,642.83,764.56,,,,,,FALSE +"fresh_default","default",0,TRUE,"UNRS","BT","any",2,0,2,0,0,2,2,2,1,0,1,1,1,0,0,2,0,2,2,0,1,7487.48,645.96,1280.54,,,,,,FALSE +"fresh_default","default",0,TRUE,"UNRS","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,7487.48,645.96,1280.54,,,,,,FALSE +"fresh_default","default",0,TRUE,"UNRS","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,7487.48,645.96,1280.54,,,,,,FALSE +"fresh_default","default",0,TRUE,"UNRS","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",0,TRUE,"UNRS","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",0,TRUE,"UNRS","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",0,TRUE,"UOMI","BT","any",82,0,82,0,42,50,51,51,1,0.51219512195122,0.609756097560976,0.621951219512195,0.621951219512195,0,0,82,42,82,51,0.51219512195122,0.621951219512195,3764.77,911.83,1451.62,,,,,,FALSE +"fresh_default","default",0,TRUE,"UOMI","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,3764.77,911.83,1451.62,,,,,,FALSE +"fresh_default","default",0,TRUE,"UOMI","BT","rear",22,0,22,0,6,8,9,9,1,0.272727272727273,0.363636363636364,0.409090909090909,0.409090909090909,0,0,22,6,22,9,0.272727272727273,0.409090909090909,3764.77,911.83,1451.62,,,,,,FALSE +"fresh_default","default",0,TRUE,"UOMI","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",0,TRUE,"UOMI","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",0,TRUE,"UOMI","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",0,TRUE,"UPCE","BT","any",153,0,152,1,138,138,138,138,0.993464052287582,0.901960784313726,0.901960784313726,0.901960784313726,0.901960784313726,0,0,153,138,153,138,0.901960784313726,0.901960784313726,5689.87,1682.32,2340.3,570,556,441,444,493,FALSE +"fresh_default","default",0,TRUE,"UPCE","BT","spawn",1,0,1,0,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,5689.87,1682.32,2340.3,570,556,441,444,493,FALSE +"fresh_default","default",0,TRUE,"UPCE","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,5689.87,1682.32,2340.3,570,556,441,444,493,FALSE +"fresh_default","default",0,TRUE,"UPCE","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",0,TRUE,"UPCE","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",0,TRUE,"UPCE","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",0,TRUE,"USKE","BT","any",32,0,32,0,28,31,31,31,1,0.875,0.96875,0.96875,0.96875,0,0,32,28,32,31,0.875,0.96875,2969.07,739.68,1264.94,,,,,,FALSE +"fresh_default","default",0,TRUE,"USKE","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,2969.07,739.68,1264.94,,,,,,FALSE +"fresh_default","default",0,TRUE,"USKE","BT","rear",1,0,1,0,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,2969.07,739.68,1264.94,,,,,,FALSE +"fresh_default","default",0,TRUE,"USKE","CH","any",8,0,8,0,8,8,8,8,1,1,1,1,1,0,0,8,8,8,8,1,1,1528.86,498.83,733.99,,,,,,FALSE +"fresh_default","default",0,TRUE,"USKE","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,1528.86,498.83,733.99,,,,,,FALSE +"fresh_default","default",0,TRUE,"USKE","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,1528.86,498.83,733.99,,,,,,FALSE +"fresh_default","default",0,TRUE,"WILL","BT","any",54,0,54,0,39,51,51,51,1,0.722222222222222,0.944444444444444,0.944444444444444,0.944444444444444,0,0,54,39,54,51,0.722222222222222,0.944444444444444,4562.41,1055.35,1720.76,,,,,,FALSE +"fresh_default","default",0,TRUE,"WILL","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,4562.41,1055.35,1720.76,,,,,,FALSE +"fresh_default","default",0,TRUE,"WILL","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,4562.41,1055.35,1720.76,,,,,,FALSE +"fresh_default","default",0,TRUE,"WILL","CH","any",58,0,58,0,53,53,53,54,1,0.913793103448276,0.913793103448276,0.913793103448276,0.931034482758621,40,0,18,13,58,53,0.722222222222222,0.913793103448276,3601.38,640.69,1364.26,,,,,,FALSE +"fresh_default","default",0,TRUE,"WILL","CH","spawn",3,0,3,0,3,2,2,3,1,1,0.666666666666667,0.666666666666667,1,3,0,0,0,3,2,,0.666666666666667,3601.38,640.69,1364.26,,,,,,FALSE +"fresh_default","default",0,TRUE,"WILL","CH","rear",42,0,42,0,38,39,39,39,1,0.904761904761905,0.928571428571429,0.928571428571429,0.928571428571429,30,0,12,8,42,39,0.666666666666667,0.928571428571429,3601.38,640.69,1364.26,,,,,,FALSE +"fresh_default","default",0,TRUE,"ZYMO","BT","any",280,0,276,4,129,188,196,196,0.985714285714286,0.460714285714286,0.671428571428571,0.7,0.7,0,0,280,129,280,196,0.460714285714286,0.7,2058.68,594.73,897.89,,,,,,FALSE +"fresh_default","default",0,TRUE,"ZYMO","BT","spawn",14,0,14,0,7,10,10,10,1,0.5,0.714285714285714,0.714285714285714,0.714285714285714,0,0,14,7,14,10,0.5,0.714285714285714,2058.68,594.73,897.89,,,,,,FALSE +"fresh_default","default",0,TRUE,"ZYMO","BT","rear",147,0,147,0,53,86,88,88,1,0.360544217687075,0.585034013605442,0.598639455782313,0.598639455782313,0,0,147,53,147,88,0.360544217687075,0.598639455782313,2058.68,594.73,897.89,,,,,,FALSE +"fresh_default","default",0,TRUE,"ZYMO","CH","any",21,0,19,2,14,16,16,17,0.904761904761905,0.666666666666667,0.761904761904762,0.761904761904762,0.80952380952381,8,0,13,6,21,16,0.461538461538462,0.761904761904762,1211.06,463.12,602.24,,,,,,FALSE +"fresh_default","default",0,TRUE,"ZYMO","CH","spawn",8,0,7,1,8,7,7,8,0.875,1,0.875,0.875,1,8,0,0,0,8,7,,0.875,1211.06,463.12,602.24,,,,,,FALSE +"fresh_default","default",0,TRUE,"ZYMO","CH","rear",5,0,4,1,0,1,1,1,0.8,0,0.2,0.2,0.2,0,0,5,0,5,1,0,0.2,1211.06,463.12,602.24,,,,,,FALSE +"fresh_default","default",100,TRUE,"ADMS","BT","any",37,0,37,0,25,28,29,29,1,0.675675675675676,0.756756756756757,0.783783783783784,0.783783783783784,0,0,37,25,37,29,0.675675675675676,0.783783783783784,1332.83,360.42,526.17,,,,,,FALSE +"fresh_default","default",100,TRUE,"ADMS","BT","spawn",1,0,1,0,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1332.83,360.42,526.17,,,,,,FALSE +"fresh_default","default",100,TRUE,"ADMS","BT","rear",6,0,6,0,3,4,4,4,1,0.5,0.666666666666667,0.666666666666667,0.666666666666667,0,0,6,3,6,4,0.5,0.666666666666667,1332.83,360.42,526.17,,,,,,FALSE +"fresh_default","default",100,TRUE,"ADMS","CH","any",11,0,11,0,10,9,10,10,1,0.909090909090909,0.818181818181818,0.909090909090909,0.909090909090909,7,0,4,3,11,10,0.75,0.909090909090909,842.06,277.53,351.69,,,,,,FALSE +"fresh_default","default",100,TRUE,"ADMS","CH","spawn",5,0,5,0,5,4,5,5,1,1,0.8,1,1,5,0,0,0,5,5,,1,842.06,277.53,351.69,,,,,,FALSE +"fresh_default","default",100,TRUE,"ADMS","CH","rear",2,0,2,0,2,2,2,2,1,1,1,1,1,1,0,1,1,2,2,1,1,842.06,277.53,351.69,,,,,,FALSE +"fresh_default","default",100,TRUE,"BBAR","BT","any",16,0,16,0,10,14,14,14,1,0.625,0.875,0.875,0.875,0,0,16,10,16,14,0.625,0.875,1761.57,329.41,560.67,,,,,,FALSE +"fresh_default","default",100,TRUE,"BBAR","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,1761.57,329.41,560.67,,,,,,FALSE +"fresh_default","default",100,TRUE,"BBAR","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,1761.57,329.41,560.67,,,,,,FALSE +"fresh_default","default",100,TRUE,"BBAR","CH","any",5,0,3,2,1,1,1,1,0.6,0.2,0.2,0.2,0.2,0,0,5,1,5,1,0.2,0.2,275.36,160.2,169.06,,,,,,FALSE +"fresh_default","default",100,TRUE,"BBAR","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,275.36,160.2,169.06,,,,,,FALSE +"fresh_default","default",100,TRUE,"BBAR","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,275.36,160.2,169.06,,,,,,FALSE +"fresh_default","default",100,TRUE,"BULK","BT","any",468,0,464,4,239,338,338,338,0.991452991452991,0.510683760683761,0.722222222222222,0.722222222222222,0.722222222222222,0,0,468,239,468,338,0.510683760683761,0.722222222222222,7713.98,1852.11,3012.7,,,,,,FALSE +"fresh_default","default",100,TRUE,"BULK","BT","spawn",12,0,12,0,4,9,9,9,1,0.333333333333333,0.75,0.75,0.75,0,0,12,4,12,9,0.333333333333333,0.75,7713.98,1852.11,3012.7,,,,,,FALSE +"fresh_default","default",100,TRUE,"BULK","BT","rear",255,0,252,3,95,159,159,159,0.988235294117647,0.372549019607843,0.623529411764706,0.623529411764706,0.623529411764706,0,0,255,95,255,159,0.372549019607843,0.623529411764706,7713.98,1852.11,3012.7,,,,,,FALSE +"fresh_default","default",100,TRUE,"BULK","CH","any",110,0,110,0,105,108,108,108,1,0.954545454545455,0.981818181818182,0.981818181818182,0.981818181818182,19,0,91,86,110,108,0.945054945054945,0.981818181818182,5178.19,1264.07,2038.12,,,,,,FALSE +"fresh_default","default",100,TRUE,"BULK","CH","spawn",16,0,16,0,16,16,16,16,1,1,1,1,1,16,0,0,0,16,16,,1,5178.19,1264.07,2038.12,,,,,,FALSE +"fresh_default","default",100,TRUE,"BULK","CH","rear",11,0,11,0,6,9,9,9,1,0.545454545454545,0.818181818181818,0.818181818181818,0.818181818181818,0,0,11,6,11,9,0.545454545454545,0.818181818181818,5178.19,1264.07,2038.12,,,,,,FALSE +"fresh_default","default",100,TRUE,"CARP","BT","any",6,0,6,0,4,4,6,6,1,0.666666666666667,0.666666666666667,1,1,0,0,6,4,6,6,0.666666666666667,1,4420.57,502.37,1026.27,,,,,,FALSE +"fresh_default","default",100,TRUE,"CARP","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,4420.57,502.37,1026.27,,,,,,FALSE +"fresh_default","default",100,TRUE,"CARP","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,4420.57,502.37,1026.27,,,,,,FALSE +"fresh_default","default",100,TRUE,"CARP","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",100,TRUE,"CARP","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",100,TRUE,"CARP","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",100,TRUE,"CHES","BT","any",3,0,3,0,3,3,3,3,1,1,1,1,1,0,0,3,3,3,3,1,1,2904.74,376.85,796.72,,,,,,FALSE +"fresh_default","default",100,TRUE,"CHES","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,2904.74,376.85,796.72,,,,,,FALSE +"fresh_default","default",100,TRUE,"CHES","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,2904.74,376.85,796.72,,,,,,FALSE +"fresh_default","default",100,TRUE,"CHES","CH","any",87,0,85,2,81,82,83,83,0.977011494252874,0.931034482758621,0.942528735632184,0.954022988505747,0.954022988505747,28,0,59,54,87,83,0.915254237288136,0.954022988505747,780.54,88.26,258.88,,,,,,FALSE +"fresh_default","default",100,TRUE,"CHES","CH","spawn",3,0,2,1,2,2,2,2,0.666666666666667,0.666666666666667,0.666666666666667,0.666666666666667,0.666666666666667,2,0,1,0,3,2,0,0.666666666666667,780.54,88.26,258.88,,,,,,FALSE +"fresh_default","default",100,TRUE,"CHES","CH","rear",1,0,1,0,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,780.54,88.26,258.88,,,,,,FALSE +"fresh_default","default",100,TRUE,"CHWK","BT","any",62,0,62,0,41,52,56,56,1,0.661290322580645,0.838709677419355,0.903225806451613,0.903225806451613,0,0,62,41,62,56,0.661290322580645,0.903225806451613,793.94,310.02,353.48,,,,,,FALSE +"fresh_default","default",100,TRUE,"CHWK","BT","spawn",5,0,5,0,4,4,5,5,1,0.8,0.8,1,1,0,0,5,4,5,5,0.8,1,793.94,310.02,353.48,,,,,,FALSE +"fresh_default","default",100,TRUE,"CHWK","BT","rear",5,0,5,0,4,4,4,4,1,0.8,0.8,0.8,0.8,0,0,5,4,5,4,0.8,0.8,793.94,310.02,353.48,,,,,,FALSE +"fresh_default","default",100,TRUE,"CHWK","CH","any",21,0,21,0,17,16,19,19,1,0.80952380952381,0.761904761904762,0.904761904761905,0.904761904761905,2,0,19,15,21,19,0.789473684210526,0.904761904761905,698.92,257.8,310.79,,,,,,FALSE +"fresh_default","default",100,TRUE,"CHWK","CH","spawn",8,0,8,0,7,6,8,8,1,0.875,0.75,1,1,2,0,6,5,8,8,0.833333333333333,1,698.92,257.8,310.79,,,,,,FALSE +"fresh_default","default",100,TRUE,"CHWK","CH","rear",4,0,4,0,4,4,4,4,1,1,1,1,1,0,0,4,4,4,4,1,1,698.92,257.8,310.79,,,,,,FALSE +"fresh_default","default",100,TRUE,"COTR","BT","any",85,0,84,1,47,69,69,69,0.988235294117647,0.552941176470588,0.811764705882353,0.811764705882353,0.811764705882353,0,0,85,47,85,69,0.552941176470588,0.811764705882353,6856.99,1480.88,2433.36,75,65,31,38,40,FALSE +"fresh_default","default",100,TRUE,"COTR","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,6856.99,1480.88,2433.36,75,65,31,38,40,FALSE +"fresh_default","default",100,TRUE,"COTR","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,6856.99,1480.88,2433.36,75,65,31,38,40,FALSE +"fresh_default","default",100,TRUE,"COTR","CH","any",100,0,95,5,72,77,78,79,0.95,0.72,0.77,0.78,0.79,40,0,60,32,100,78,0.533333333333333,0.78,4143.01,702.76,1364.58,68,25,11,13,15,FALSE +"fresh_default","default",100,TRUE,"COTR","CH","spawn",15,0,14,1,15,14,14,15,0.933333333333333,1,0.933333333333333,0.933333333333333,1,15,0,0,0,15,14,,0.933333333333333,4143.01,702.76,1364.58,68,25,11,13,15,FALSE +"fresh_default","default",100,TRUE,"COTR","CH","rear",48,0,45,3,29,33,33,33,0.9375,0.604166666666667,0.6875,0.6875,0.6875,12,0,36,17,48,33,0.472222222222222,0.6875,4143.01,702.76,1364.58,68,25,11,13,15,FALSE +"fresh_default","default",100,TRUE,"CRKD","BT","any",4,0,4,0,4,4,4,4,1,1,1,1,1,0,0,4,4,4,4,1,1,5115.69,695.8,1448.76,,,,,,FALSE +"fresh_default","default",100,TRUE,"CRKD","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,5115.69,695.8,1448.76,,,,,,FALSE +"fresh_default","default",100,TRUE,"CRKD","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,5115.69,695.8,1448.76,,,,,,FALSE +"fresh_default","default",100,TRUE,"CRKD","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",100,TRUE,"CRKD","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",100,TRUE,"CRKD","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",100,TRUE,"DOGC","BT","any",17,0,17,0,13,17,17,17,1,0.764705882352941,1,1,1,0,0,17,13,17,17,0.764705882352941,1,1260.46,286.17,502.72,,,,,,FALSE +"fresh_default","default",100,TRUE,"DOGC","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,1260.46,286.17,502.72,,,,,,FALSE +"fresh_default","default",100,TRUE,"DOGC","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,1260.46,286.17,502.72,,,,,,FALSE +"fresh_default","default",100,TRUE,"DOGC","CH","any",5,0,5,0,5,5,5,5,1,1,1,1,1,2,0,3,3,5,5,1,1,358.78,162,196.9,,,,,,FALSE +"fresh_default","default",100,TRUE,"DOGC","CH","spawn",2,0,2,0,2,2,2,2,1,1,1,1,1,2,0,0,0,2,2,,1,358.78,162,196.9,,,,,,FALSE +"fresh_default","default",100,TRUE,"DOGC","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,358.78,162,196.9,,,,,,FALSE +"fresh_default","default",100,TRUE,"FINA","BT","any",107,0,107,0,96,99,105,105,1,0.897196261682243,0.925233644859813,0.981308411214953,0.981308411214953,0,0,107,96,107,105,0.897196261682243,0.981308411214953,7889.87,1325.37,2218.78,,,,,,FALSE +"fresh_default","default",100,TRUE,"FINA","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,7889.87,1325.37,2218.78,,,,,,FALSE +"fresh_default","default",100,TRUE,"FINA","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,7889.87,1325.37,2218.78,,,,,,FALSE +"fresh_default","default",100,TRUE,"FINA","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",100,TRUE,"FINA","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",100,TRUE,"FINA","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",100,TRUE,"FINL","BT","any",32,0,32,0,25,29,29,29,1,0.78125,0.90625,0.90625,0.90625,0,0,32,25,32,29,0.78125,0.90625,4515.86,1365.64,2107.58,,,,,,FALSE +"fresh_default","default",100,TRUE,"FINL","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,4515.86,1365.64,2107.58,,,,,,FALSE +"fresh_default","default",100,TRUE,"FINL","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,4515.86,1365.64,2107.58,,,,,,FALSE +"fresh_default","default",100,TRUE,"FINL","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",100,TRUE,"FINL","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",100,TRUE,"FINL","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",100,TRUE,"FIRE","BT","any",172,0,172,0,135,155,157,157,1,0.784883720930233,0.901162790697674,0.912790697674419,0.912790697674419,0,0,172,135,172,157,0.784883720930233,0.912790697674419,6663.44,1012.79,1911.07,,,,,,FALSE +"fresh_default","default",100,TRUE,"FIRE","BT","spawn",4,0,4,0,2,3,3,3,1,0.5,0.75,0.75,0.75,0,0,4,2,4,3,0.5,0.75,6663.44,1012.79,1911.07,,,,,,FALSE +"fresh_default","default",100,TRUE,"FIRE","BT","rear",66,0,66,0,57,62,62,62,1,0.863636363636364,0.93939393939394,0.93939393939394,0.93939393939394,0,0,66,57,66,62,0.863636363636364,0.93939393939394,6663.44,1012.79,1911.07,,,,,,FALSE +"fresh_default","default",100,TRUE,"FIRE","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",100,TRUE,"FIRE","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",100,TRUE,"FIRE","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",100,TRUE,"FOXR","BT","any",33,0,33,0,26,31,31,31,1,0.787878787878788,0.93939393939394,0.93939393939394,0.93939393939394,0,0,33,26,33,31,0.787878787878788,0.93939393939394,3665.56,928.18,1525.02,,,,,,FALSE +"fresh_default","default",100,TRUE,"FOXR","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,3665.56,928.18,1525.02,,,,,,FALSE +"fresh_default","default",100,TRUE,"FOXR","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,3665.56,928.18,1525.02,,,,,,FALSE +"fresh_default","default",100,TRUE,"FOXR","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",100,TRUE,"FOXR","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",100,TRUE,"FOXR","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",100,TRUE,"FRAN","BT","any",102,0,102,0,55,74,74,74,1,0.53921568627451,0.725490196078431,0.725490196078431,0.725490196078431,0,0,102,55,102,74,0.53921568627451,0.725490196078431,9078.53,1120.86,2355.24,,,,,,FALSE +"fresh_default","default",100,TRUE,"FRAN","BT","spawn",1,0,1,0,0,1,1,1,1,0,1,1,1,0,0,1,0,1,1,0,1,9078.53,1120.86,2355.24,,,,,,FALSE +"fresh_default","default",100,TRUE,"FRAN","BT","rear",90,0,90,0,45,63,63,63,1,0.5,0.7,0.7,0.7,0,0,90,45,90,63,0.5,0.7,9078.53,1120.86,2355.24,,,,,,FALSE +"fresh_default","default",100,TRUE,"FRAN","CH","any",23,0,23,0,21,20,21,21,1,0.91304347826087,0.869565217391304,0.91304347826087,0.91304347826087,11,0,12,10,23,21,0.833333333333333,0.91304347826087,7351.32,597.53,1631.89,,,,,,FALSE +"fresh_default","default",100,TRUE,"FRAN","CH","spawn",4,0,4,0,4,3,4,4,1,1,0.75,1,1,4,0,0,0,4,4,,1,7351.32,597.53,1631.89,,,,,,FALSE +"fresh_default","default",100,TRUE,"FRAN","CH","rear",4,0,4,0,2,2,2,2,1,0.5,0.5,0.5,0.5,0,0,4,2,4,2,0.5,0.5,7351.32,597.53,1631.89,,,,,,FALSE +"fresh_default","default",100,TRUE,"FRCN","BT","any",95,0,95,0,54,91,92,92,1,0.568421052631579,0.957894736842105,0.968421052631579,0.968421052631579,0,0,95,54,95,92,0.568421052631579,0.968421052631579,1504.38,663.33,889.13,,,,,,FALSE +"fresh_default","default",100,TRUE,"FRCN","BT","spawn",1,0,1,0,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1504.38,663.33,889.13,,,,,,FALSE +"fresh_default","default",100,TRUE,"FRCN","BT","rear",5,0,5,0,2,5,5,5,1,0.4,1,1,1,0,0,5,2,5,5,0.4,1,1504.38,663.33,889.13,,,,,,FALSE +"fresh_default","default",100,TRUE,"FRCN","CH","any",31,0,30,1,26,27,27,30,0.967741935483871,0.838709677419355,0.870967741935484,0.870967741935484,0.967741935483871,13,0,18,13,31,27,0.722222222222222,0.870967741935484,749.15,451.01,481.99,,,,,,FALSE +"fresh_default","default",100,TRUE,"FRCN","CH","spawn",5,0,5,0,5,3,3,5,1,1,0.6,0.6,1,5,0,0,0,5,3,,0.6,749.15,451.01,481.99,,,,,,FALSE +"fresh_default","default",100,TRUE,"FRCN","CH","rear",13,0,13,0,10,13,13,13,1,0.769230769230769,1,1,1,2,0,11,8,13,13,0.727272727272727,1,749.15,451.01,481.99,,,,,,FALSE +"fresh_default","default",100,TRUE,"HARR","BT","any",43,0,42,1,24,35,38,38,0.976744186046512,0.558139534883721,0.813953488372093,0.883720930232558,0.883720930232558,0,0,43,24,43,38,0.558139534883721,0.883720930232558,1619.34,470.27,588.62,,,,,,FALSE +"fresh_default","default",100,TRUE,"HARR","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,1619.34,470.27,588.62,,,,,,FALSE +"fresh_default","default",100,TRUE,"HARR","BT","rear",7,0,7,0,4,7,7,7,1,0.571428571428571,1,1,1,0,0,7,4,7,7,0.571428571428571,1,1619.34,470.27,588.62,,,,,,FALSE +"fresh_default","default",100,TRUE,"HARR","CH","any",118,0,116,2,110,109,111,112,0.983050847457627,0.932203389830508,0.923728813559322,0.940677966101695,0.949152542372881,8,0,110,102,118,111,0.927272727272727,0.940677966101695,1148.93,329.59,385.83,,,,,,FALSE +"fresh_default","default",100,TRUE,"HARR","CH","spawn",4,0,4,0,4,3,3,4,1,1,0.75,0.75,1,4,0,0,0,4,3,,0.75,1148.93,329.59,385.83,,,,,,FALSE +"fresh_default","default",100,TRUE,"HARR","CH","rear",46,0,45,1,44,44,44,44,0.978260869565217,0.956521739130435,0.956521739130435,0.956521739130435,0.956521739130435,0,0,46,44,46,44,0.956521739130435,0.956521739130435,1148.93,329.59,385.83,,,,,,FALSE +"fresh_default","default",100,TRUE,"INGR","BT","any",27,0,27,0,23,26,26,26,1,0.851851851851852,0.962962962962963,0.962962962962963,0.962962962962963,0,0,27,23,27,26,0.851851851851852,0.962962962962963,3925.58,1111.41,1736.58,,,,,,FALSE +"fresh_default","default",100,TRUE,"INGR","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,3925.58,1111.41,1736.58,,,,,,FALSE +"fresh_default","default",100,TRUE,"INGR","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,3925.58,1111.41,1736.58,,,,,,FALSE +"fresh_default","default",100,TRUE,"INGR","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",100,TRUE,"INGR","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",100,TRUE,"INGR","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",100,TRUE,"KISP","BT","any",195,0,192,3,128,162,165,165,0.984615384615385,0.656410256410256,0.830769230769231,0.846153846153846,0.846153846153846,0,0,195,128,195,165,0.656410256410256,0.846153846153846,4529.14,1258.71,1894.95,,,,,,FALSE +"fresh_default","default",100,TRUE,"KISP","BT","spawn",5,0,5,0,2,3,3,3,1,0.4,0.6,0.6,0.6,0,0,5,2,5,3,0.4,0.6,4529.14,1258.71,1894.95,,,,,,FALSE +"fresh_default","default",100,TRUE,"KISP","BT","rear",56,0,53,3,28,38,38,38,0.946428571428571,0.5,0.678571428571429,0.678571428571429,0.678571428571429,0,0,56,28,56,38,0.5,0.678571428571429,4529.14,1258.71,1894.95,,,,,,FALSE +"fresh_default","default",100,TRUE,"KISP","CH","any",89,0,89,0,84,78,81,85,1,0.943820224719101,0.876404494382023,0.910112359550562,0.955056179775281,38,0,51,46,89,81,0.901960784313726,0.910112359550562,2841.44,862.28,1178.83,,,,,,FALSE +"fresh_default","default",100,TRUE,"KISP","CH","spawn",30,0,30,0,30,25,26,30,1,1,0.833333333333333,0.866666666666667,1,30,0,0,0,30,26,,0.866666666666667,2841.44,862.28,1178.83,,,,,,FALSE +"fresh_default","default",100,TRUE,"KISP","CH","rear",12,0,12,0,10,10,10,10,1,0.833333333333333,0.833333333333333,0.833333333333333,0.833333333333333,1,0,11,9,12,10,0.818181818181818,0.833333333333333,2841.44,862.28,1178.83,,,,,,FALSE +"fresh_default","default",100,TRUE,"KLUM","BT","any",314,0,302,12,203,248,248,248,0.961783439490446,0.646496815286624,0.789808917197452,0.789808917197452,0.789808917197452,0,0,314,203,314,248,0.646496815286624,0.789808917197452,2173.93,929.96,1229.04,,,,,,FALSE +"fresh_default","default",100,TRUE,"KLUM","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,2173.93,929.96,1229.04,,,,,,FALSE +"fresh_default","default",100,TRUE,"KLUM","BT","rear",141,0,137,4,72,98,98,98,0.971631205673759,0.51063829787234,0.695035460992908,0.695035460992908,0.695035460992908,0,0,141,72,141,98,0.51063829787234,0.695035460992908,2173.93,929.96,1229.04,,,,,,FALSE +"fresh_default","default",100,TRUE,"KLUM","CH","any",104,0,99,5,88,88,90,91,0.951923076923077,0.846153846153846,0.846153846153846,0.865384615384615,0.875,28,0,76,60,104,90,0.789473684210526,0.865384615384615,1523.16,708.12,905.48,,,,,,FALSE +"fresh_default","default",100,TRUE,"KLUM","CH","spawn",20,0,19,1,20,18,19,20,0.95,1,0.9,0.95,1,20,0,0,0,20,19,,0.95,1523.16,708.12,905.48,,,,,,FALSE +"fresh_default","default",100,TRUE,"KLUM","CH","rear",19,0,19,0,14,16,16,16,1,0.736842105263158,0.842105263157895,0.842105263157895,0.842105263157895,4,0,15,10,19,16,0.666666666666667,0.842105263157895,1523.16,708.12,905.48,,,,,,FALSE +"fresh_default","default",100,TRUE,"KOTL","BT","any",206,0,203,3,127,169,174,174,0.985436893203884,0.616504854368932,0.820388349514563,0.844660194174757,0.844660194174757,0,0,206,127,206,174,0.616504854368932,0.844660194174757,3619.68,1035.15,1599.21,,,,,,TRUE +"fresh_default","default",100,TRUE,"KOTL","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,3619.68,1035.15,1599.21,,,,,,TRUE +"fresh_default","default",100,TRUE,"KOTL","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,3619.68,1035.15,1599.21,,,,,,TRUE +"fresh_default","default",100,TRUE,"KOTL","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh_default","default",100,TRUE,"KOTL","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh_default","default",100,TRUE,"KOTL","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh_default","default",100,TRUE,"LARL","BT","any",165,0,164,1,102,133,140,140,0.993939393939394,0.618181818181818,0.806060606060606,0.848484848484849,0.848484848484849,0,0,165,102,165,140,0.618181818181818,0.848484848484849,2242.72,563.88,845.5,,,,,,TRUE +"fresh_default","default",100,TRUE,"LARL","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,2242.72,563.88,845.5,,,,,,TRUE +"fresh_default","default",100,TRUE,"LARL","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,2242.72,563.88,845.5,,,,,,TRUE +"fresh_default","default",100,TRUE,"LARL","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh_default","default",100,TRUE,"LARL","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh_default","default",100,TRUE,"LARL","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh_default","default",100,TRUE,"LBTN","BT","any",2,0,2,0,2,2,2,2,1,1,1,1,1,0,0,2,2,2,2,1,1,9061.71,2027.4,2961.53,,,,,,FALSE +"fresh_default","default",100,TRUE,"LBTN","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,9061.71,2027.4,2961.53,,,,,,FALSE +"fresh_default","default",100,TRUE,"LBTN","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,9061.71,2027.4,2961.53,,,,,,FALSE +"fresh_default","default",100,TRUE,"LBTN","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",100,TRUE,"LBTN","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",100,TRUE,"LBTN","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",100,TRUE,"LCHL","BT","any",6,0,6,0,6,6,6,6,1,1,1,1,1,0,0,6,6,6,6,1,1,5533.57,908.41,1581.55,,,,,,FALSE +"fresh_default","default",100,TRUE,"LCHL","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,5533.57,908.41,1581.55,,,,,,FALSE +"fresh_default","default",100,TRUE,"LCHL","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,5533.57,908.41,1581.55,,,,,,FALSE +"fresh_default","default",100,TRUE,"LCHL","CH","any",38,0,38,0,36,36,36,37,1,0.947368421052632,0.947368421052632,0.947368421052632,0.973684210526316,14,0,24,22,38,36,0.916666666666667,0.947368421052632,4358.83,468.47,1153.83,,,,,,FALSE +"fresh_default","default",100,TRUE,"LCHL","CH","spawn",2,0,2,0,2,2,2,2,1,1,1,1,1,2,0,0,0,2,2,,1,4358.83,468.47,1153.83,,,,,,FALSE +"fresh_default","default",100,TRUE,"LCHL","CH","rear",23,0,23,0,21,21,21,22,1,0.91304347826087,0.91304347826087,0.91304347826087,0.956521739130435,10,0,13,11,23,21,0.846153846153846,0.91304347826087,4358.83,468.47,1153.83,,,,,,FALSE +"fresh_default","default",100,TRUE,"LFRA","BT","any",78,0,78,0,60,66,70,70,1,0.769230769230769,0.846153846153846,0.897435897435897,0.897435897435897,0,0,78,60,78,70,0.769230769230769,0.897435897435897,3569.06,1241.71,1516.52,,,,,,FALSE +"fresh_default","default",100,TRUE,"LFRA","BT","spawn",1,0,1,0,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,3569.06,1241.71,1516.52,,,,,,FALSE +"fresh_default","default",100,TRUE,"LFRA","BT","rear",2,0,2,0,2,2,2,2,1,1,1,1,1,0,0,2,2,2,2,1,1,3569.06,1241.71,1516.52,,,,,,FALSE +"fresh_default","default",100,TRUE,"LFRA","CH","any",165,0,161,4,108,135,136,136,0.975757575757576,0.654545454545455,0.818181818181818,0.824242424242424,0.824242424242424,19,0,146,89,165,136,0.60958904109589,0.824242424242424,3074.38,826.28,1254.99,,,,,,FALSE +"fresh_default","default",100,TRUE,"LFRA","CH","spawn",10,0,10,0,10,10,10,10,1,1,1,1,1,10,0,0,0,10,10,,1,3074.38,826.28,1254.99,,,,,,FALSE +"fresh_default","default",100,TRUE,"LFRA","CH","rear",66,0,65,1,40,55,55,55,0.984848484848485,0.606060606060606,0.833333333333333,0.833333333333333,0.833333333333333,6,0,60,34,66,55,0.566666666666667,0.833333333333333,3074.38,826.28,1254.99,,,,,,FALSE +"fresh_default","default",100,TRUE,"LKEL","BT","any",63,0,63,0,37,48,50,50,1,0.587301587301587,0.761904761904762,0.793650793650794,0.793650793650794,0,0,63,37,63,50,0.587301587301587,0.793650793650794,405.16,144.67,218.77,,,,,,FALSE +"fresh_default","default",100,TRUE,"LKEL","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,405.16,144.67,218.77,,,,,,FALSE +"fresh_default","default",100,TRUE,"LKEL","BT","rear",26,0,26,0,12,18,18,18,1,0.461538461538462,0.692307692307692,0.692307692307692,0.692307692307692,0,0,26,12,26,18,0.461538461538462,0.692307692307692,405.16,144.67,218.77,,,,,,FALSE +"fresh_default","default",100,TRUE,"LKEL","CH","any",14,0,14,0,13,12,12,14,1,0.928571428571429,0.857142857142857,0.857142857142857,1,5,0,9,8,14,12,0.888888888888889,0.857142857142857,332.18,106.7,162.87,,,,,,FALSE +"fresh_default","default",100,TRUE,"LKEL","CH","spawn",3,0,3,0,3,2,2,3,1,1,0.666666666666667,0.666666666666667,1,3,0,0,0,3,2,,0.666666666666667,332.18,106.7,162.87,,,,,,FALSE +"fresh_default","default",100,TRUE,"LKEL","CH","rear",2,0,2,0,2,2,2,2,1,1,1,1,1,0,0,2,2,2,2,1,1,332.18,106.7,162.87,,,,,,FALSE +"fresh_default","default",100,TRUE,"LOMI","BT","any",27,0,26,1,20,25,25,25,0.962962962962963,0.740740740740741,0.925925925925926,0.925925925925926,0.925925925925926,0,0,27,20,27,25,0.740740740740741,0.925925925925926,3639.43,1004.03,1513.07,,,,,,FALSE +"fresh_default","default",100,TRUE,"LOMI","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,3639.43,1004.03,1513.07,,,,,,FALSE +"fresh_default","default",100,TRUE,"LOMI","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,3639.43,1004.03,1513.07,,,,,,FALSE +"fresh_default","default",100,TRUE,"LOMI","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",100,TRUE,"LOMI","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",100,TRUE,"LOMI","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",100,TRUE,"LPCE","BT","any",55,0,53,2,42,42,42,42,0.963636363636364,0.763636363636364,0.763636363636364,0.763636363636364,0.763636363636364,0,0,55,42,55,42,0.763636363636364,0.763636363636364,3571.54,1000.37,1386.86,,,,,,FALSE +"fresh_default","default",100,TRUE,"LPCE","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,3571.54,1000.37,1386.86,,,,,,FALSE +"fresh_default","default",100,TRUE,"LPCE","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,3571.54,1000.37,1386.86,,,,,,FALSE +"fresh_default","default",100,TRUE,"LPCE","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",100,TRUE,"LPCE","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",100,TRUE,"LPCE","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",100,TRUE,"LSAL","BT","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",100,TRUE,"LSAL","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",100,TRUE,"LSAL","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",100,TRUE,"LSAL","CH","any",17,0,17,0,17,17,17,17,1,1,1,1,1,6,0,11,11,17,17,1,1,3029.07,317.62,1060.92,,,,,,FALSE +"fresh_default","default",100,TRUE,"LSAL","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,3029.07,317.62,1060.92,,,,,,FALSE +"fresh_default","default",100,TRUE,"LSAL","CH","rear",4,0,4,0,4,4,4,4,1,1,1,1,1,2,0,2,2,4,4,1,1,3029.07,317.62,1060.92,,,,,,FALSE +"fresh_default","default",100,TRUE,"LSKE","BT","any",230,0,227,3,177,195,195,195,0.98695652173913,0.769565217391304,0.847826086956522,0.847826086956522,0.847826086956522,0,0,230,177,230,195,0.769565217391304,0.847826086956522,3075.25,1326.45,1709.47,,,,,,FALSE +"fresh_default","default",100,TRUE,"LSKE","BT","spawn",3,0,3,0,2,2,2,2,1,0.666666666666667,0.666666666666667,0.666666666666667,0.666666666666667,0,0,3,2,3,2,0.666666666666667,0.666666666666667,3075.25,1326.45,1709.47,,,,,,FALSE +"fresh_default","default",100,TRUE,"LSKE","BT","rear",111,0,109,2,74,87,87,87,0.981981981981982,0.666666666666667,0.783783783783784,0.783783783783784,0.783783783783784,0,0,111,74,111,87,0.666666666666667,0.783783783783784,3075.25,1326.45,1709.47,,,,,,FALSE +"fresh_default","default",100,TRUE,"LSKE","CH","any",122,0,119,3,109,110,110,115,0.975409836065574,0.89344262295082,0.901639344262295,0.901639344262295,0.942622950819672,41,0,81,68,122,110,0.839506172839506,0.901639344262295,2101.75,1052.46,1308.55,,,,,,FALSE +"fresh_default","default",100,TRUE,"LSKE","CH","spawn",24,0,23,1,24,22,22,24,0.958333333333333,1,0.916666666666667,0.916666666666667,1,24,0,0,0,24,22,,0.916666666666667,2101.75,1052.46,1308.55,,,,,,FALSE +"fresh_default","default",100,TRUE,"LSKE","CH","rear",35,0,35,0,27,30,30,31,1,0.771428571428571,0.857142857142857,0.857142857142857,0.885714285714286,3,0,32,24,35,30,0.75,0.857142857142857,2101.75,1052.46,1308.55,,,,,,FALSE +"fresh_default","default",100,TRUE,"MESI","BT","any",64,0,64,0,51,60,60,60,1,0.796875,0.9375,0.9375,0.9375,0,0,64,51,64,60,0.796875,0.9375,2825.32,691.09,1077.07,,,,,,FALSE +"fresh_default","default",100,TRUE,"MESI","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,2825.32,691.09,1077.07,,,,,,FALSE +"fresh_default","default",100,TRUE,"MESI","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,2825.32,691.09,1077.07,,,,,,FALSE +"fresh_default","default",100,TRUE,"MESI","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",100,TRUE,"MESI","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",100,TRUE,"MESI","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",100,TRUE,"MFRA","BT","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",100,TRUE,"MFRA","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",100,TRUE,"MFRA","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",100,TRUE,"MFRA","CH","any",2,0,1,1,0,0,0,0,0.5,0,0,0,0,0,0,2,0,2,0,0,0,277.46,100.9,121.94,,,,,,FALSE +"fresh_default","default",100,TRUE,"MFRA","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,277.46,100.9,121.94,,,,,,FALSE +"fresh_default","default",100,TRUE,"MFRA","CH","rear",2,0,1,1,0,0,0,0,0.5,0,0,0,0,0,0,2,0,2,0,0,0,277.46,100.9,121.94,,,,,,FALSE +"fresh_default","default",100,TRUE,"MORK","BT","any",79,0,79,0,70,72,73,73,1,0.886075949367089,0.911392405063291,0.924050632911392,0.924050632911392,0,0,79,70,79,73,0.886075949367089,0.924050632911392,7202.59,2148.8,3077.39,,,,,,FALSE +"fresh_default","default",100,TRUE,"MORK","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,7202.59,2148.8,3077.39,,,,,,FALSE +"fresh_default","default",100,TRUE,"MORK","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,7202.59,2148.8,3077.39,,,,,,FALSE +"fresh_default","default",100,TRUE,"MORK","CH","any",156,0,155,1,145,145,146,148,0.993589743589744,0.92948717948718,0.92948717948718,0.935897435897436,0.948717948717949,96,0,60,49,156,146,0.816666666666667,0.935897435897436,5953.1,1577.65,2499.11,,,,,,FALSE +"fresh_default","default",100,TRUE,"MORK","CH","spawn",25,0,25,0,25,23,24,25,1,1,0.92,0.96,1,25,0,0,0,25,24,,0.96,5953.1,1577.65,2499.11,,,,,,FALSE +"fresh_default","default",100,TRUE,"MORK","CH","rear",32,0,31,1,24,25,25,25,0.96875,0.75,0.78125,0.78125,0.78125,15,0,17,9,32,25,0.529411764705882,0.78125,5953.1,1577.65,2499.11,,,,,,FALSE +"fresh_default","default",100,TRUE,"MORR","BT","any",357,0,357,0,162,260,267,267,1,0.453781512605042,0.728291316526611,0.747899159663866,0.747899159663866,0,0,357,162,357,267,0.453781512605042,0.747899159663866,4865.96,960.8,1685.2,,,,,,FALSE +"fresh_default","default",100,TRUE,"MORR","BT","spawn",23,0,23,0,8,15,15,15,1,0.347826086956522,0.652173913043478,0.652173913043478,0.652173913043478,0,0,23,8,23,15,0.347826086956522,0.652173913043478,4865.96,960.8,1685.2,,,,,,FALSE +"fresh_default","default",100,TRUE,"MORR","BT","rear",106,0,106,0,32,64,66,66,1,0.30188679245283,0.60377358490566,0.622641509433962,0.622641509433962,0,0,106,32,106,66,0.30188679245283,0.622641509433962,4865.96,960.8,1685.2,,,,,,FALSE +"fresh_default","default",100,TRUE,"MORR","CH","any",41,0,41,0,33,35,38,38,1,0.804878048780488,0.853658536585366,0.926829268292683,0.926829268292683,25,0,16,9,41,38,0.5625,0.926829268292683,3341.35,646.28,1171.33,,,,,,FALSE +"fresh_default","default",100,TRUE,"MORR","CH","spawn",9,0,9,0,9,7,9,9,1,1,0.777777777777778,1,1,9,0,0,0,9,9,,1,3341.35,646.28,1171.33,,,,,,FALSE +"fresh_default","default",100,TRUE,"MORR","CH","rear",2,0,2,0,1,2,2,2,1,0.5,1,1,1,0,0,2,1,2,2,0.5,1,3341.35,646.28,1171.33,,,,,,FALSE +"fresh_default","default",100,TRUE,"MSKE","BT","any",69,0,68,1,46,52,52,52,0.985507246376812,0.666666666666667,0.753623188405797,0.753623188405797,0.753623188405797,0,0,69,46,69,52,0.666666666666667,0.753623188405797,2691.58,922.19,1383.97,,,,,,FALSE +"fresh_default","default",100,TRUE,"MSKE","BT","spawn",4,0,4,0,2,2,2,2,1,0.5,0.5,0.5,0.5,0,0,4,2,4,2,0.5,0.5,2691.58,922.19,1383.97,,,,,,FALSE +"fresh_default","default",100,TRUE,"MSKE","BT","rear",5,0,4,1,0,0,0,0,0.8,0,0,0,0,0,0,5,0,5,0,0,0,2691.58,922.19,1383.97,,,,,,FALSE +"fresh_default","default",100,TRUE,"MSKE","CH","any",42,0,40,2,38,38,38,40,0.952380952380952,0.904761904761905,0.904761904761905,0.904761904761905,0.952380952380952,8,0,34,30,42,38,0.88235294117647,0.904761904761905,1516.21,676.83,856.12,,,,,,FALSE +"fresh_default","default",100,TRUE,"MSKE","CH","spawn",4,0,3,1,4,3,3,4,0.75,1,0.75,0.75,1,4,0,0,0,4,3,,0.75,1516.21,676.83,856.12,,,,,,FALSE +"fresh_default","default",100,TRUE,"MSKE","CH","rear",2,0,1,1,2,1,1,2,0.5,1,0.5,0.5,1,2,0,0,0,2,1,,0.5,1516.21,676.83,856.12,,,,,,FALSE +"fresh_default","default",100,TRUE,"NARC","BT","any",7,0,7,0,7,7,7,7,1,1,1,1,1,0,0,7,7,7,7,1,1,4336.98,873.49,1703.68,,,,,,FALSE +"fresh_default","default",100,TRUE,"NARC","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,4336.98,873.49,1703.68,,,,,,FALSE +"fresh_default","default",100,TRUE,"NARC","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,4336.98,873.49,1703.68,,,,,,FALSE +"fresh_default","default",100,TRUE,"NARC","CH","any",22,0,22,0,21,21,21,22,1,0.954545454545455,0.954545454545455,0.954545454545455,1,18,0,4,3,22,21,0.75,0.954545454545455,3563.45,506.51,1327.21,,,,,,FALSE +"fresh_default","default",100,TRUE,"NARC","CH","spawn",9,0,9,0,9,9,9,9,1,1,1,1,1,9,0,0,0,9,9,,1,3563.45,506.51,1327.21,,,,,,FALSE +"fresh_default","default",100,TRUE,"NARC","CH","rear",6,0,6,0,6,5,5,6,1,1,0.833333333333333,0.833333333333333,1,5,0,1,1,6,5,1,0.833333333333333,3563.45,506.51,1327.21,,,,,,FALSE +"fresh_default","default",100,TRUE,"NATR","BT","any",57,0,57,0,39,47,48,48,1,0.68421052631579,0.824561403508772,0.842105263157895,0.842105263157895,0,0,57,39,57,48,0.68421052631579,0.842105263157895,9819.51,1803.66,3496.13,,,,,,FALSE +"fresh_default","default",100,TRUE,"NATR","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,9819.51,1803.66,3496.13,,,,,,FALSE +"fresh_default","default",100,TRUE,"NATR","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,9819.51,1803.66,3496.13,,,,,,FALSE +"fresh_default","default",100,TRUE,"NATR","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",100,TRUE,"NATR","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",100,TRUE,"NATR","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",100,TRUE,"NECR","BT","any",12,0,12,0,12,12,12,12,1,1,1,1,1,0,0,12,12,12,12,1,1,6329.74,991.14,1943.82,,,,,,FALSE +"fresh_default","default",100,TRUE,"NECR","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,6329.74,991.14,1943.82,,,,,,FALSE +"fresh_default","default",100,TRUE,"NECR","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,6329.74,991.14,1943.82,,,,,,FALSE +"fresh_default","default",100,TRUE,"NECR","CH","any",101,0,101,0,93,97,97,97,1,0.920792079207921,0.96039603960396,0.96039603960396,0.96039603960396,33,0,68,60,101,97,0.88235294117647,0.96039603960396,5608.47,516.15,1649.24,,,,,,FALSE +"fresh_default","default",100,TRUE,"NECR","CH","spawn",9,0,9,0,9,9,9,9,1,1,1,1,1,9,0,0,0,9,9,,1,5608.47,516.15,1649.24,,,,,,FALSE +"fresh_default","default",100,TRUE,"NECR","CH","rear",6,0,6,0,4,6,6,6,1,0.666666666666667,1,1,1,1,0,5,3,6,6,0.6,1,5608.47,516.15,1649.24,,,,,,FALSE +"fresh_default","default",100,TRUE,"OSPK","BT","any",12,0,12,0,10,12,12,12,1,0.833333333333333,1,1,1,0,0,12,10,12,12,0.833333333333333,1,1882.44,594.62,877.22,,,,,,FALSE +"fresh_default","default",100,TRUE,"OSPK","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,1882.44,594.62,877.22,,,,,,FALSE +"fresh_default","default",100,TRUE,"OSPK","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,1882.44,594.62,877.22,,,,,,FALSE +"fresh_default","default",100,TRUE,"OSPK","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",100,TRUE,"OSPK","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",100,TRUE,"OSPK","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",100,TRUE,"PARA","BT","any",77,0,77,0,62,68,70,70,1,0.805194805194805,0.883116883116883,0.909090909090909,0.909090909090909,0,0,77,62,77,70,0.805194805194805,0.909090909090909,4400.24,720.29,1330.46,,,,,,FALSE +"fresh_default","default",100,TRUE,"PARA","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,4400.24,720.29,1330.46,,,,,,FALSE +"fresh_default","default",100,TRUE,"PARA","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,4400.24,720.29,1330.46,,,,,,FALSE +"fresh_default","default",100,TRUE,"PARA","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",100,TRUE,"PARA","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",100,TRUE,"PARA","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",100,TRUE,"PARS","BT","any",281,0,281,0,233,262,262,262,1,0.829181494661922,0.932384341637011,0.932384341637011,0.932384341637011,0,0,281,233,281,262,0.829181494661922,0.932384341637011,6883.03,1685.38,2635.01,,,,,,FALSE +"fresh_default","default",100,TRUE,"PARS","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,6883.03,1685.38,2635.01,,,,,,FALSE +"fresh_default","default",100,TRUE,"PARS","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,6883.03,1685.38,2635.01,,,,,,FALSE +"fresh_default","default",100,TRUE,"PARS","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",100,TRUE,"PARS","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",100,TRUE,"PARS","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",100,TRUE,"PCEA","BT","any",176,0,176,0,140,154,161,161,1,0.795454545454545,0.875,0.914772727272727,0.914772727272727,0,0,176,140,176,161,0.795454545454545,0.914772727272727,7091.82,921.92,1489.72,,,,,,FALSE +"fresh_default","default",100,TRUE,"PCEA","BT","spawn",1,0,1,0,0,0,1,1,1,0,0,1,1,0,0,1,0,1,1,0,1,7091.82,921.92,1489.72,,,,,,FALSE +"fresh_default","default",100,TRUE,"PCEA","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,7091.82,921.92,1489.72,,,,,,FALSE +"fresh_default","default",100,TRUE,"PCEA","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",100,TRUE,"PCEA","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",100,TRUE,"PCEA","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",100,TRUE,"PINE","BT","any",249,0,249,0,227,241,241,241,1,0.911646586345382,0.967871485943775,0.967871485943775,0.967871485943775,0,0,249,227,249,241,0.911646586345382,0.967871485943775,5539.06,1645.08,2409.65,213,193,118,154,154,TRUE +"fresh_default","default",100,TRUE,"PINE","BT","spawn",3,0,3,0,3,3,3,3,1,1,1,1,1,0,0,3,3,3,3,1,1,5539.06,1645.08,2409.65,213,193,118,154,154,TRUE +"fresh_default","default",100,TRUE,"PINE","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,5539.06,1645.08,2409.65,213,193,118,154,154,TRUE +"fresh_default","default",100,TRUE,"PINE","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh_default","default",100,TRUE,"PINE","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh_default","default",100,TRUE,"PINE","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh_default","default",100,TRUE,"SALR","BT","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",100,TRUE,"SALR","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",100,TRUE,"SALR","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",100,TRUE,"SALR","CH","any",7,0,7,0,6,6,6,6,1,0.857142857142857,0.857142857142857,0.857142857142857,0.857142857142857,5,0,2,1,7,6,0.5,0.857142857142857,3174.7,234.92,966.25,,,,,,FALSE +"fresh_default","default",100,TRUE,"SALR","CH","spawn",4,0,4,0,4,4,4,4,1,1,1,1,1,4,0,0,0,4,4,,1,3174.7,234.92,966.25,,,,,,FALSE +"fresh_default","default",100,TRUE,"SALR","CH","rear",2,0,2,0,1,1,1,1,1,0.5,0.5,0.5,0.5,0,0,2,1,2,1,0.5,0.5,3174.7,234.92,966.25,,,,,,FALSE +"fresh_default","default",100,TRUE,"SETN","BT","any",180,0,177,3,122,149,154,154,0.983333333333333,0.677777777777778,0.827777777777778,0.855555555555556,0.855555555555556,0,0,180,122,180,154,0.677777777777778,0.855555555555556,3258.86,851.7,1239.78,,,,,,FALSE +"fresh_default","default",100,TRUE,"SETN","BT","spawn",3,0,2,1,2,2,2,2,0.666666666666667,0.666666666666667,0.666666666666667,0.666666666666667,0.666666666666667,0,0,3,2,3,2,0.666666666666667,0.666666666666667,3258.86,851.7,1239.78,,,,,,FALSE +"fresh_default","default",100,TRUE,"SETN","BT","rear",1,0,1,0,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,3258.86,851.7,1239.78,,,,,,FALSE +"fresh_default","default",100,TRUE,"SETN","CH","any",117,0,116,1,111,112,113,113,0.991452991452991,0.948717948717949,0.957264957264957,0.965811965811966,0.965811965811966,106,0,11,5,117,113,0.454545454545455,0.965811965811966,1500.97,543.88,663.52,,,,,,FALSE +"fresh_default","default",100,TRUE,"SETN","CH","spawn",17,0,17,0,16,16,16,16,1,0.941176470588235,0.941176470588235,0.941176470588235,0.941176470588235,16,0,1,0,17,16,0,0.941176470588235,1500.97,543.88,663.52,,,,,,FALSE +"fresh_default","default",100,TRUE,"SETN","CH","rear",85,0,85,0,85,85,85,85,1,1,1,1,1,83,0,2,2,85,85,1,1,1500.97,543.88,663.52,,,,,,FALSE +"fresh_default","default",100,TRUE,"SLOC","BT","any",96,0,93,3,44,63,66,66,0.96875,0.458333333333333,0.65625,0.6875,0.6875,0,0,96,44,96,66,0.458333333333333,0.6875,1117.37,395.66,574.02,,,,,,TRUE +"fresh_default","default",100,TRUE,"SLOC","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,1117.37,395.66,574.02,,,,,,TRUE +"fresh_default","default",100,TRUE,"SLOC","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,1117.37,395.66,574.02,,,,,,TRUE +"fresh_default","default",100,TRUE,"SLOC","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh_default","default",100,TRUE,"SLOC","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh_default","default",100,TRUE,"SLOC","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh_default","default",100,TRUE,"TABR","BT","any",10,0,10,0,4,4,4,4,1,0.4,0.4,0.4,0.4,0,0,10,4,10,4,0.4,0.4,3402.26,678.31,1061,,,,,,FALSE +"fresh_default","default",100,TRUE,"TABR","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,3402.26,678.31,1061,,,,,,FALSE +"fresh_default","default",100,TRUE,"TABR","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,3402.26,678.31,1061,,,,,,FALSE +"fresh_default","default",100,TRUE,"TABR","CH","any",50,0,48,2,32,33,33,33,0.96,0.64,0.66,0.66,0.66,5,0,45,28,50,33,0.622222222222222,0.66,2633.55,410.85,789.94,,,,,,FALSE +"fresh_default","default",100,TRUE,"TABR","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,2633.55,410.85,789.94,,,,,,FALSE +"fresh_default","default",100,TRUE,"TABR","CH","rear",25,0,24,1,18,18,18,18,0.96,0.72,0.72,0.72,0.72,3,0,22,15,25,18,0.681818181818182,0.72,2633.55,410.85,789.94,,,,,,FALSE +"fresh_default","default",100,TRUE,"TOOD","BT","any",36,0,36,0,31,35,35,35,1,0.861111111111111,0.972222222222222,0.972222222222222,0.972222222222222,0,0,36,31,36,35,0.861111111111111,0.972222222222222,4697.77,1131.97,1815.93,,,,,,FALSE +"fresh_default","default",100,TRUE,"TOOD","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,4697.77,1131.97,1815.93,,,,,,FALSE +"fresh_default","default",100,TRUE,"TOOD","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,4697.77,1131.97,1815.93,,,,,,FALSE +"fresh_default","default",100,TRUE,"TOOD","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",100,TRUE,"TOOD","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",100,TRUE,"TOOD","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",100,TRUE,"TWAC","BT","any",2,0,2,0,2,2,2,2,1,1,1,1,1,0,0,2,2,2,2,1,1,1060.41,227.23,402.55,,,,,,FALSE +"fresh_default","default",100,TRUE,"TWAC","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,1060.41,227.23,402.55,,,,,,FALSE +"fresh_default","default",100,TRUE,"TWAC","BT","rear",1,0,1,0,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1060.41,227.23,402.55,,,,,,FALSE +"fresh_default","default",100,TRUE,"TWAC","CH","any",9,0,9,0,8,9,9,9,1,0.888888888888889,1,1,1,0,0,9,8,9,9,0.888888888888889,1,705.9,144.23,228.3,,,,,,FALSE +"fresh_default","default",100,TRUE,"TWAC","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,705.9,144.23,228.3,,,,,,FALSE +"fresh_default","default",100,TRUE,"TWAC","CH","rear",7,0,7,0,7,7,7,7,1,1,1,1,1,0,0,7,7,7,7,1,1,705.9,144.23,228.3,,,,,,FALSE +"fresh_default","default",100,TRUE,"UFRA","BT","any",87,0,87,0,46,58,58,58,1,0.528735632183908,0.666666666666667,0.666666666666667,0.666666666666667,0,0,87,46,87,58,0.528735632183908,0.666666666666667,2752.86,948.12,1217.11,,,,,,FALSE +"fresh_default","default",100,TRUE,"UFRA","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,2752.86,948.12,1217.11,,,,,,FALSE +"fresh_default","default",100,TRUE,"UFRA","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,2752.86,948.12,1217.11,,,,,,FALSE +"fresh_default","default",100,TRUE,"UFRA","CH","any",51,0,51,0,45,46,46,46,1,0.88235294117647,0.901960784313726,0.901960784313726,0.901960784313726,29,0,22,16,51,46,0.727272727272727,0.901960784313726,1487.28,642.83,764.56,,,,,,FALSE +"fresh_default","default",100,TRUE,"UFRA","CH","spawn",11,0,11,0,11,11,11,11,1,1,1,1,1,11,0,0,0,11,11,,1,1487.28,642.83,764.56,,,,,,FALSE +"fresh_default","default",100,TRUE,"UFRA","CH","rear",6,0,6,0,3,3,3,3,1,0.5,0.5,0.5,0.5,2,0,4,1,6,3,0.25,0.5,1487.28,642.83,764.56,,,,,,FALSE +"fresh_default","default",100,TRUE,"UNRS","BT","any",2,0,2,0,2,2,2,2,1,1,1,1,1,0,0,2,2,2,2,1,1,7487.48,645.96,1280.54,,,,,,FALSE +"fresh_default","default",100,TRUE,"UNRS","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,7487.48,645.96,1280.54,,,,,,FALSE +"fresh_default","default",100,TRUE,"UNRS","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,7487.48,645.96,1280.54,,,,,,FALSE +"fresh_default","default",100,TRUE,"UNRS","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",100,TRUE,"UNRS","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",100,TRUE,"UNRS","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",100,TRUE,"UOMI","BT","any",82,0,82,0,46,53,53,53,1,0.560975609756098,0.646341463414634,0.646341463414634,0.646341463414634,0,0,82,46,82,53,0.560975609756098,0.646341463414634,3764.77,911.83,1451.62,,,,,,FALSE +"fresh_default","default",100,TRUE,"UOMI","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,3764.77,911.83,1451.62,,,,,,FALSE +"fresh_default","default",100,TRUE,"UOMI","BT","rear",22,0,22,0,8,9,9,9,1,0.363636363636364,0.409090909090909,0.409090909090909,0.409090909090909,0,0,22,8,22,9,0.363636363636364,0.409090909090909,3764.77,911.83,1451.62,,,,,,FALSE +"fresh_default","default",100,TRUE,"UOMI","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",100,TRUE,"UOMI","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",100,TRUE,"UOMI","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",100,TRUE,"UPCE","BT","any",153,0,152,1,138,138,138,138,0.993464052287582,0.901960784313726,0.901960784313726,0.901960784313726,0.901960784313726,0,0,153,138,153,138,0.901960784313726,0.901960784313726,5689.87,1682.32,2340.3,570,556,442,445,493,FALSE +"fresh_default","default",100,TRUE,"UPCE","BT","spawn",1,0,1,0,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,5689.87,1682.32,2340.3,570,556,442,445,493,FALSE +"fresh_default","default",100,TRUE,"UPCE","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,5689.87,1682.32,2340.3,570,556,442,445,493,FALSE +"fresh_default","default",100,TRUE,"UPCE","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",100,TRUE,"UPCE","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",100,TRUE,"UPCE","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh_default","default",100,TRUE,"USKE","BT","any",32,0,32,0,29,31,31,31,1,0.90625,0.96875,0.96875,0.96875,0,0,32,29,32,31,0.90625,0.96875,2969.07,739.68,1264.94,,,,,,FALSE +"fresh_default","default",100,TRUE,"USKE","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,2969.07,739.68,1264.94,,,,,,FALSE +"fresh_default","default",100,TRUE,"USKE","BT","rear",1,0,1,0,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,2969.07,739.68,1264.94,,,,,,FALSE +"fresh_default","default",100,TRUE,"USKE","CH","any",8,0,8,0,8,8,8,8,1,1,1,1,1,0,0,8,8,8,8,1,1,1528.86,498.83,733.99,,,,,,FALSE +"fresh_default","default",100,TRUE,"USKE","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,1528.86,498.83,733.99,,,,,,FALSE +"fresh_default","default",100,TRUE,"USKE","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,1528.86,498.83,733.99,,,,,,FALSE +"fresh_default","default",100,TRUE,"WILL","BT","any",54,0,54,0,41,51,51,51,1,0.759259259259259,0.944444444444444,0.944444444444444,0.944444444444444,0,0,54,41,54,51,0.759259259259259,0.944444444444444,4562.41,1055.35,1720.76,,,,,,FALSE +"fresh_default","default",100,TRUE,"WILL","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,4562.41,1055.35,1720.76,,,,,,FALSE +"fresh_default","default",100,TRUE,"WILL","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,4562.41,1055.35,1720.76,,,,,,FALSE +"fresh_default","default",100,TRUE,"WILL","CH","any",58,0,58,0,55,55,55,56,1,0.948275862068966,0.948275862068966,0.948275862068966,0.96551724137931,40,0,18,15,58,55,0.833333333333333,0.948275862068966,3601.38,640.69,1364.26,,,,,,FALSE +"fresh_default","default",100,TRUE,"WILL","CH","spawn",3,0,3,0,3,2,2,3,1,1,0.666666666666667,0.666666666666667,1,3,0,0,0,3,2,,0.666666666666667,3601.38,640.69,1364.26,,,,,,FALSE +"fresh_default","default",100,TRUE,"WILL","CH","rear",42,0,42,0,40,41,41,41,1,0.952380952380952,0.976190476190476,0.976190476190476,0.976190476190476,30,0,12,10,42,41,0.833333333333333,0.976190476190476,3601.38,640.69,1364.26,,,,,,FALSE +"fresh_default","default",100,TRUE,"ZYMO","BT","any",280,0,276,4,135,193,200,200,0.985714285714286,0.482142857142857,0.689285714285714,0.714285714285714,0.714285714285714,0,0,280,135,280,200,0.482142857142857,0.714285714285714,2058.68,594.73,897.89,,,,,,FALSE +"fresh_default","default",100,TRUE,"ZYMO","BT","spawn",14,0,14,0,7,11,11,11,1,0.5,0.785714285714286,0.785714285714286,0.785714285714286,0,0,14,7,14,11,0.5,0.785714285714286,2058.68,594.73,897.89,,,,,,FALSE +"fresh_default","default",100,TRUE,"ZYMO","BT","rear",147,0,147,0,55,88,90,90,1,0.374149659863946,0.598639455782313,0.612244897959184,0.612244897959184,0,0,147,55,147,90,0.374149659863946,0.612244897959184,2058.68,594.73,897.89,,,,,,FALSE +"fresh_default","default",100,TRUE,"ZYMO","CH","any",21,0,19,2,15,16,16,17,0.904761904761905,0.714285714285714,0.761904761904762,0.761904761904762,0.80952380952381,8,0,13,7,21,16,0.538461538461538,0.761904761904762,1211.06,463.12,602.24,,,,,,FALSE +"fresh_default","default",100,TRUE,"ZYMO","CH","spawn",8,0,7,1,8,7,7,8,0.875,1,0.875,0.875,1,8,0,0,0,8,7,,0.875,1211.06,463.12,602.24,,,,,,FALSE +"fresh_default","default",100,TRUE,"ZYMO","CH","rear",5,0,4,1,0,1,1,1,0.8,0,0.2,0.2,0.2,0,0,5,0,5,1,0,0.2,1211.06,463.12,602.24,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"BBAR","BT","any",16,0,16,0,10,13,13,13,1,0.625,0.8125,0.8125,0.8125,0,0,16,10,16,13,0.625,0.8125,1262.45,296.02,478.21,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"BBAR","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,1262.45,296.02,478.21,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"BBAR","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,1262.45,296.02,478.21,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"BBAR","CH","any",5,0,3,2,1,1,1,1,0.6,0.2,0.2,0.2,0.2,0,0,5,1,5,1,0.2,0.2,269.11,160.2,167.83,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"BBAR","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,269.11,160.2,167.83,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"BBAR","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,269.11,160.2,167.83,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"BOWR","BT","any",38,0,34,4,24,30,30,30,0.894736842105263,0.631578947368421,0.789473684210526,0.789473684210526,0.789473684210526,0,0,38,24,38,30,0.631578947368421,0.789473684210526,3695.08,1046.27,1618.82,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"BOWR","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,3695.08,1046.27,1618.82,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"BOWR","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,3695.08,1046.27,1618.82,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"BOWR","CH","any",96,0,91,5,76,79,79,79,0.947916666666667,0.791666666666667,0.822916666666667,0.822916666666667,0.822916666666667,39,0,57,40,96,79,0.701754385964912,0.822916666666667,2516.89,655.31,913.88,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"BOWR","CH","spawn",19,0,18,1,16,16,16,16,0.947368421052632,0.842105263157895,0.842105263157895,0.842105263157895,0.842105263157895,19,0,0,0,19,16,,0.842105263157895,2516.89,655.31,913.88,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"BOWR","CH","rear",54,0,51,3,43,44,44,44,0.944444444444444,0.796296296296296,0.814814814814815,0.814814814814815,0.814814814814815,22,0,32,22,54,44,0.6875,0.814814814814815,2516.89,655.31,913.88,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"BULK","BT","any",468,0,443,25,222,327,327,327,0.946581196581197,0.474358974358974,0.698717948717949,0.698717948717949,0.698717948717949,0,0,468,222,468,327,0.474358974358974,0.698717948717949,7676.5,1866.31,3021.51,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"BULK","BT","spawn",12,0,11,1,4,9,9,9,0.916666666666667,0.333333333333333,0.75,0.75,0.75,0,0,12,4,12,9,0.333333333333333,0.75,7676.5,1866.31,3021.51,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"BULK","BT","rear",255,0,232,23,83,150,150,150,0.909803921568627,0.325490196078431,0.588235294117647,0.588235294117647,0.588235294117647,0,0,255,83,255,150,0.325490196078431,0.588235294117647,7676.5,1866.31,3021.51,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"BULK","CH","any",110,0,110,0,102,107,107,107,1,0.927272727272727,0.972727272727273,0.972727272727273,0.972727272727273,18,0,92,86,110,107,0.934782608695652,0.972727272727273,5089.63,1260.25,1730.12,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"BULK","CH","spawn",16,0,16,0,15,15,15,15,1,0.9375,0.9375,0.9375,0.9375,16,0,0,0,16,15,,0.9375,5089.63,1260.25,1730.12,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"BULK","CH","rear",11,0,11,0,6,9,9,9,1,0.545454545454545,0.818181818181818,0.818181818181818,0.818181818181818,0,0,11,6,11,9,0.545454545454545,0.818181818181818,5089.63,1260.25,1730.12,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"CARP","BT","any",6,0,6,0,4,6,6,6,1,0.666666666666667,1,1,1,0,0,6,4,6,6,0.666666666666667,1,4296.5,497.07,1072.63,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"CARP","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,4296.5,497.07,1072.63,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"CARP","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,4296.5,497.07,1072.63,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"CARP","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"CARP","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"CARP","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"CHES","BT","any",3,0,1,2,1,1,1,1,0.333333333333333,0.333333333333333,0.333333333333333,0.333333333333333,0.333333333333333,0,0,3,1,3,1,0.333333333333333,0.333333333333333,901.21,145.45,336.47,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"CHES","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,901.21,145.45,336.47,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"CHES","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,901.21,145.45,336.47,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"CHES","CH","any",87,0,85,2,80,81,81,81,0.977011494252874,0.919540229885057,0.931034482758621,0.931034482758621,0.931034482758621,27,0,60,53,87,81,0.883333333333333,0.931034482758621,750.66,88.26,149.77,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"CHES","CH","spawn",3,0,2,1,2,2,2,2,0.666666666666667,0.666666666666667,0.666666666666667,0.666666666666667,0.666666666666667,2,0,1,0,3,2,0,0.666666666666667,750.66,88.26,149.77,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"CHES","CH","rear",1,0,1,0,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,750.66,88.26,149.77,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"CHWK","BT","any",62,0,62,0,34,53,53,53,1,0.548387096774194,0.854838709677419,0.854838709677419,0.854838709677419,0,0,62,34,62,53,0.548387096774194,0.854838709677419,822.24,316.56,418.39,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"CHWK","BT","spawn",5,0,5,0,4,5,5,5,1,0.8,1,1,1,0,0,5,4,5,5,0.8,1,822.24,316.56,418.39,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"CHWK","BT","rear",5,0,5,0,4,4,4,4,1,0.8,0.8,0.8,0.8,0,0,5,4,5,4,0.8,0.8,822.24,316.56,418.39,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"CHWK","CH","any",21,0,19,2,12,12,12,12,0.904761904761905,0.571428571428571,0.571428571428571,0.571428571428571,0.571428571428571,2,0,19,11,21,12,0.578947368421053,0.571428571428571,662.37,253.93,301.07,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"CHWK","CH","spawn",8,0,8,0,5,5,5,5,1,0.625,0.625,0.625,0.625,2,0,6,4,8,5,0.666666666666667,0.625,662.37,253.93,301.07,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"CHWK","CH","rear",4,0,4,0,3,3,3,3,1,0.75,0.75,0.75,0.75,0,0,4,3,4,3,0.75,0.75,662.37,253.93,301.07,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"COTR","BT","any",85,0,84,1,46,68,68,68,0.988235294117647,0.541176470588235,0.8,0.8,0.8,0,0,85,46,85,68,0.541176470588235,0.8,6878.95,1490.06,2340.71,75,65,31,40,40,TRUE +"fresh","bcfishpass",0,FALSE,"COTR","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,6878.95,1490.06,2340.71,75,65,31,40,40,TRUE +"fresh","bcfishpass",0,FALSE,"COTR","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,6878.95,1490.06,2340.71,75,65,31,40,40,TRUE +"fresh","bcfishpass",0,FALSE,"COTR","CH","any",100,0,95,5,67,71,71,71,0.95,0.67,0.71,0.71,0.71,39,0,61,31,100,71,0.508196721311475,0.71,4119.15,694.8,1033.8,68,25,11,12,12,TRUE +"fresh","bcfishpass",0,FALSE,"COTR","CH","spawn",15,0,14,1,12,12,12,12,0.933333333333333,0.8,0.8,0.8,0.8,15,0,0,0,15,12,,0.8,4119.15,694.8,1033.8,68,25,11,12,12,TRUE +"fresh","bcfishpass",0,FALSE,"COTR","CH","rear",48,0,45,3,28,31,31,31,0.9375,0.583333333333333,0.645833333333333,0.645833333333333,0.645833333333333,12,0,36,16,48,31,0.444444444444444,0.645833333333333,4119.15,694.8,1033.8,68,25,11,12,12,TRUE +"fresh","bcfishpass",0,FALSE,"CRKD","BT","any",4,0,4,0,4,4,4,4,1,1,1,1,1,0,0,4,4,4,4,1,1,5051.55,695.63,1448.44,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"CRKD","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,5051.55,695.63,1448.44,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"CRKD","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,5051.55,695.63,1448.44,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"CRKD","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"CRKD","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"CRKD","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"DOGC","BT","any",17,0,17,0,13,17,17,17,1,0.764705882352941,1,1,1,0,0,17,13,17,17,0.764705882352941,1,1251.04,288.83,481.5,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"DOGC","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,1251.04,288.83,481.5,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"DOGC","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,1251.04,288.83,481.5,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"DOGC","CH","any",5,0,5,0,5,5,5,5,1,1,1,1,1,2,0,3,3,5,5,1,1,358.45,162,180.33,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"DOGC","CH","spawn",2,0,2,0,2,2,2,2,1,1,1,1,1,2,0,0,0,2,2,,1,358.45,162,180.33,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"DOGC","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,358.45,162,180.33,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"ELKR","BT","any",582,0,578,4,515,564,564,564,0.993127147766323,0.884879725085911,0.969072164948454,0.969072164948454,0.969072164948454,0,0,582,515,582,564,0.884879725085911,0.969072164948454,4208.11,1526.83,2107.52,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"ELKR","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,4208.11,1526.83,2107.52,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"ELKR","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,4208.11,1526.83,2107.52,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"ELKR","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"ELKR","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"ELKR","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"FINA","BT","any",107,0,107,0,89,105,105,105,1,0.831775700934579,0.981308411214953,0.981308411214953,0.981308411214953,0,0,107,89,107,105,0.831775700934579,0.981308411214953,6084.04,1277.62,2845.63,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"FINA","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,6084.04,1277.62,2845.63,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"FINA","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,6084.04,1277.62,2845.63,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"FINA","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"FINA","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"FINA","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"FINL","BT","any",32,0,32,0,25,29,29,29,1,0.78125,0.90625,0.90625,0.90625,0,0,32,25,32,29,0.78125,0.90625,4480.99,1365.64,2085.7,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"FINL","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,4480.99,1365.64,2085.7,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"FINL","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,4480.99,1365.64,2085.7,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"FINL","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"FINL","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"FINL","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"FIRE","BT","any",172,0,172,0,128,155,155,155,1,0.744186046511628,0.901162790697674,0.901162790697674,0.901162790697674,0,0,172,128,172,155,0.744186046511628,0.901162790697674,6589.52,1012.26,2016.75,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"FIRE","BT","spawn",4,0,4,0,1,2,2,2,1,0.25,0.5,0.5,0.5,0,0,4,1,4,2,0.25,0.5,6589.52,1012.26,2016.75,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"FIRE","BT","rear",66,0,66,0,57,62,62,62,1,0.863636363636364,0.93939393939394,0.93939393939394,0.93939393939394,0,0,66,57,66,62,0.863636363636364,0.93939393939394,6589.52,1012.26,2016.75,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"FIRE","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"FIRE","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"FIRE","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"FOXR","BT","any",33,0,33,0,26,31,31,31,1,0.787878787878788,0.93939393939394,0.93939393939394,0.93939393939394,0,0,33,26,33,31,0.787878787878788,0.93939393939394,3587.54,922.1,1511.59,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"FOXR","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,3587.54,922.1,1511.59,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"FOXR","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,3587.54,922.1,1511.59,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"FOXR","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"FOXR","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"FOXR","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"FRAN","BT","any",102,0,100,2,47,71,71,71,0.980392156862745,0.46078431372549,0.696078431372549,0.696078431372549,0.696078431372549,0,0,102,47,102,71,0.46078431372549,0.696078431372549,9265.93,1150.92,2834.02,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"FRAN","BT","spawn",1,0,1,0,0,1,1,1,1,0,1,1,1,0,0,1,0,1,1,0,1,9265.93,1150.92,2834.02,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"FRAN","BT","rear",90,0,88,2,40,60,60,60,0.977777777777778,0.444444444444444,0.666666666666667,0.666666666666667,0.666666666666667,0,0,90,40,90,60,0.444444444444444,0.666666666666667,9265.93,1150.92,2834.02,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"FRAN","CH","any",23,0,23,0,17,17,17,17,1,0.739130434782609,0.739130434782609,0.739130434782609,0.739130434782609,11,0,12,10,23,17,0.833333333333333,0.739130434782609,7176.56,540.43,971.87,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"FRAN","CH","spawn",4,0,4,0,3,3,3,3,1,0.75,0.75,0.75,0.75,4,0,0,0,4,3,,0.75,7176.56,540.43,971.87,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"FRAN","CH","rear",4,0,4,0,2,2,2,2,1,0.5,0.5,0.5,0.5,0,0,4,2,4,2,0.5,0.5,7176.56,540.43,971.87,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"FRCN","BT","any",95,0,94,1,50,88,88,88,0.989473684210526,0.526315789473684,0.926315789473684,0.926315789473684,0.926315789473684,0,0,95,50,95,88,0.526315789473684,0.926315789473684,1502.48,691.1,964.06,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"FRCN","BT","spawn",1,0,1,0,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1502.48,691.1,964.06,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"FRCN","BT","rear",5,0,5,0,2,4,4,4,1,0.4,0.8,0.8,0.8,0,0,5,2,5,4,0.4,0.8,1502.48,691.1,964.06,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"FRCN","CH","any",31,0,30,1,21,27,27,27,0.967741935483871,0.67741935483871,0.870967741935484,0.870967741935484,0.870967741935484,13,0,18,13,31,27,0.722222222222222,0.870967741935484,716.2,428.99,474.71,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"FRCN","CH","spawn",5,0,5,0,2,3,3,3,1,0.4,0.6,0.6,0.6,5,0,0,0,5,3,,0.6,716.2,428.99,474.71,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"FRCN","CH","rear",13,0,13,0,10,13,13,13,1,0.769230769230769,1,1,1,2,0,11,8,13,13,0.727272727272727,1,716.2,428.99,474.71,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"HARR","BT","any",43,0,38,5,19,33,33,33,0.883720930232558,0.441860465116279,0.767441860465116,0.767441860465116,0.767441860465116,0,0,43,19,43,33,0.441860465116279,0.767441860465116,1561.45,468.9,827.82,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"HARR","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,1561.45,468.9,827.82,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"HARR","BT","rear",7,0,7,0,3,6,6,6,1,0.428571428571429,0.857142857142857,0.857142857142857,0.857142857142857,0,0,7,3,7,6,0.428571428571429,0.857142857142857,1561.45,468.9,827.82,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"HARR","CH","any",118,0,116,2,109,109,109,109,0.983050847457627,0.923728813559322,0.923728813559322,0.923728813559322,0.923728813559322,8,0,110,102,118,109,0.927272727272727,0.923728813559322,1126.73,327.72,377.22,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"HARR","CH","spawn",4,0,4,0,3,3,3,3,1,0.75,0.75,0.75,0.75,4,0,0,0,4,3,,0.75,1126.73,327.72,377.22,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"HARR","CH","rear",46,0,45,1,44,44,44,44,0.978260869565217,0.956521739130435,0.956521739130435,0.956521739130435,0.956521739130435,0,0,46,44,46,44,0.956521739130435,0.956521739130435,1126.73,327.72,377.22,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"INGR","BT","any",27,0,27,0,23,26,26,26,1,0.851851851851852,0.962962962962963,0.962962962962963,0.962962962962963,0,0,27,23,27,26,0.851851851851852,0.962962962962963,3907.56,1111.41,1783.68,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"INGR","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,3907.56,1111.41,1783.68,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"INGR","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,3907.56,1111.41,1783.68,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"INGR","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"INGR","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"INGR","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"KISP","BT","any",195,0,187,8,120,161,161,161,0.958974358974359,0.615384615384615,0.825641025641026,0.825641025641026,0.825641025641026,0,0,195,120,195,161,0.615384615384615,0.825641025641026,4475.39,1261.15,1962.71,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"KISP","BT","spawn",5,0,5,0,2,3,3,3,1,0.4,0.6,0.6,0.6,0,0,5,2,5,3,0.4,0.6,4475.39,1261.15,1962.71,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"KISP","BT","rear",56,0,51,5,26,37,37,37,0.910714285714286,0.464285714285714,0.660714285714286,0.660714285714286,0.660714285714286,0,0,56,26,56,37,0.464285714285714,0.660714285714286,4475.39,1261.15,1962.71,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"KISP","CH","any",89,0,89,0,75,76,76,76,1,0.842696629213483,0.853932584269663,0.853932584269663,0.853932584269663,37,0,52,45,89,76,0.865384615384615,0.853932584269663,2786.73,860.45,1050.59,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"KISP","CH","spawn",30,0,30,0,25,25,25,25,1,0.833333333333333,0.833333333333333,0.833333333333333,0.833333333333333,30,0,0,0,30,25,,0.833333333333333,2786.73,860.45,1050.59,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"KISP","CH","rear",12,0,12,0,10,10,10,10,1,0.833333333333333,0.833333333333333,0.833333333333333,0.833333333333333,1,0,11,9,12,10,0.818181818181818,0.833333333333333,2786.73,860.45,1050.59,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"KLUM","BT","any",314,0,275,39,183,232,232,232,0.875796178343949,0.582802547770701,0.738853503184713,0.738853503184713,0.738853503184713,0,0,314,183,314,232,0.582802547770701,0.738853503184713,1930.45,894.45,1189.16,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"KLUM","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,1930.45,894.45,1189.16,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"KLUM","BT","rear",141,0,121,20,61,90,90,90,0.858156028368794,0.432624113475177,0.638297872340426,0.638297872340426,0.638297872340426,0,0,141,61,141,90,0.432624113475177,0.638297872340426,1930.45,894.45,1189.16,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"KLUM","CH","any",104,0,99,5,84,87,87,87,0.951923076923077,0.807692307692308,0.836538461538462,0.836538461538462,0.836538461538462,28,0,76,59,104,87,0.776315789473684,0.836538461538462,1481.08,707.93,830.68,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"KLUM","CH","spawn",20,0,19,1,17,18,18,18,0.95,0.85,0.9,0.9,0.9,20,0,0,0,20,18,,0.9,1481.08,707.93,830.68,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"KLUM","CH","rear",19,0,19,0,14,15,15,15,1,0.736842105263158,0.789473684210526,0.789473684210526,0.789473684210526,4,0,15,10,19,15,0.666666666666667,0.789473684210526,1481.08,707.93,830.68,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"KOTR","BT","any",184,0,183,1,138,162,162,162,0.994565217391304,0.75,0.880434782608696,0.880434782608696,0.880434782608696,0,0,184,138,184,162,0.75,0.880434782608696,2533.85,899.57,1305.15,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"KOTR","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,2533.85,899.57,1305.15,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"KOTR","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,2533.85,899.57,1305.15,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"KOTR","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"KOTR","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"KOTR","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"LBTN","BT","any",2,0,2,0,2,2,2,2,1,1,1,1,1,0,0,2,2,2,2,1,1,8647.79,2026.94,2189.51,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"LBTN","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,8647.79,2026.94,2189.51,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"LBTN","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,8647.79,2026.94,2189.51,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"LBTN","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"LBTN","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"LBTN","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"LCHL","BT","any",6,0,6,0,5,6,6,6,1,0.833333333333333,1,1,1,0,0,6,5,6,6,0.833333333333333,1,5236.61,896.14,1550.64,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"LCHL","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,5236.61,896.14,1550.64,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"LCHL","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,5236.61,896.14,1550.64,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"LCHL","CH","any",38,0,38,0,32,34,34,34,1,0.842105263157895,0.894736842105263,0.894736842105263,0.894736842105263,10,0,28,25,38,34,0.892857142857143,0.894736842105263,4159.73,464.81,826.81,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"LCHL","CH","spawn",2,0,2,0,2,2,2,2,1,1,1,1,1,2,0,0,0,2,2,,1,4159.73,464.81,826.81,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"LCHL","CH","rear",23,0,23,0,17,19,19,19,1,0.739130434782609,0.826086956521739,0.826086956521739,0.826086956521739,6,0,17,14,23,19,0.823529411764706,0.826086956521739,4159.73,464.81,826.81,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"LFRA","BT","any",78,0,78,0,58,70,70,70,1,0.743589743589744,0.897435897435897,0.897435897435897,0.897435897435897,0,0,78,58,78,70,0.743589743589744,0.897435897435897,3415.8,1284.59,1805.62,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"LFRA","BT","spawn",1,0,1,0,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,3415.8,1284.59,1805.62,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"LFRA","BT","rear",2,0,2,0,2,2,2,2,1,1,1,1,1,0,0,2,2,2,2,1,1,3415.8,1284.59,1805.62,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"LFRA","CH","any",165,0,159,6,104,132,132,132,0.963636363636364,0.63030303030303,0.8,0.8,0.8,19,0,146,86,165,132,0.589041095890411,0.8,2754.05,820.43,1176.68,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"LFRA","CH","spawn",10,0,10,0,9,10,10,10,1,0.9,1,1,1,10,0,0,0,10,10,,1,2754.05,820.43,1176.68,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"LFRA","CH","rear",66,0,63,3,39,54,54,54,0.954545454545455,0.590909090909091,0.818181818181818,0.818181818181818,0.818181818181818,6,0,60,33,66,54,0.55,0.818181818181818,2754.05,820.43,1176.68,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"LKEL","BT","any",63,0,63,0,36,48,48,48,1,0.571428571428571,0.761904761904762,0.761904761904762,0.761904761904762,0,0,63,36,63,48,0.571428571428571,0.761904761904762,401.02,144.74,222.78,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"LKEL","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,401.02,144.74,222.78,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"LKEL","BT","rear",26,0,26,0,11,16,16,16,1,0.423076923076923,0.615384615384615,0.615384615384615,0.615384615384615,0,0,26,11,26,16,0.423076923076923,0.615384615384615,401.02,144.74,222.78,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"LKEL","CH","any",14,0,14,0,10,11,11,11,1,0.714285714285714,0.785714285714286,0.785714285714286,0.785714285714286,5,0,9,7,14,11,0.777777777777778,0.785714285714286,328.21,106.49,123.85,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"LKEL","CH","spawn",3,0,3,0,2,2,2,2,1,0.666666666666667,0.666666666666667,0.666666666666667,0.666666666666667,3,0,0,0,3,2,,0.666666666666667,328.21,106.49,123.85,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"LKEL","CH","rear",2,0,2,0,1,2,2,2,1,0.5,1,1,1,0,0,2,1,2,2,0.5,1,328.21,106.49,123.85,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"LNTH","BT","any",108,0,108,0,84,102,102,102,1,0.777777777777778,0.944444444444444,0.944444444444444,0.944444444444444,0,0,108,84,108,102,0.777777777777778,0.944444444444444,3027.89,781.94,1238.82,208,86,50,70,70,TRUE +"fresh","bcfishpass",0,FALSE,"LNTH","BT","spawn",3,0,3,0,3,3,3,3,1,1,1,1,1,0,0,3,3,3,3,1,1,3027.89,781.94,1238.82,208,86,50,70,70,TRUE +"fresh","bcfishpass",0,FALSE,"LNTH","BT","rear",1,0,1,0,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,3027.89,781.94,1238.82,208,86,50,70,70,TRUE +"fresh","bcfishpass",0,FALSE,"LNTH","CH","any",56,0,54,2,48,48,48,48,0.964285714285714,0.857142857142857,0.857142857142857,0.857142857142857,0.857142857142857,24,0,32,26,56,48,0.8125,0.857142857142857,1137.26,471.29,559.54,242,111,63,73,73,TRUE +"fresh","bcfishpass",0,FALSE,"LNTH","CH","spawn",18,0,18,0,16,16,16,16,1,0.888888888888889,0.888888888888889,0.888888888888889,0.888888888888889,18,0,0,0,18,16,,0.888888888888889,1137.26,471.29,559.54,242,111,63,73,73,TRUE +"fresh","bcfishpass",0,FALSE,"LNTH","CH","rear",23,0,23,0,23,23,23,23,1,1,1,1,1,6,0,17,17,23,23,1,1,1137.26,471.29,559.54,242,111,63,73,73,TRUE +"fresh","bcfishpass",0,FALSE,"LOMI","BT","any",27,0,26,1,20,25,25,25,0.962962962962963,0.740740740740741,0.925925925925926,0.925925925925926,0.925925925925926,0,0,27,20,27,25,0.740740740740741,0.925925925925926,3436.23,967.82,1517.42,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"LOMI","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,3436.23,967.82,1517.42,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"LOMI","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,3436.23,967.82,1517.42,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"LOMI","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"LOMI","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"LOMI","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"LPCE","BT","any",55,0,53,2,42,40,40,42,0.963636363636364,0.763636363636364,0.727272727272727,0.727272727272727,0.763636363636364,0,0,55,42,55,40,0.763636363636364,0.727272727272727,3130.17,918.71,1261.4,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"LPCE","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,3130.17,918.71,1261.4,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"LPCE","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,3130.17,918.71,1261.4,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"LPCE","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"LPCE","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"LPCE","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"LSAL","BT","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"LSAL","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"LSAL","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"LSAL","CH","any",17,0,17,0,17,17,17,17,1,1,1,1,1,6,0,11,11,17,17,1,1,2968.08,312.6,617.6,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"LSAL","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,2968.08,312.6,617.6,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"LSAL","CH","rear",4,0,4,0,4,4,4,4,1,1,1,1,1,2,0,2,2,4,4,1,1,2968.08,312.6,617.6,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"LSKE","BT","any",230,0,216,14,163,186,186,186,0.939130434782609,0.708695652173913,0.808695652173913,0.808695652173913,0.808695652173913,0,0,230,163,230,186,0.708695652173913,0.808695652173913,2884.31,1315.64,1751.5,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"LSKE","BT","spawn",3,0,3,0,2,2,2,2,1,0.666666666666667,0.666666666666667,0.666666666666667,0.666666666666667,0,0,3,2,3,2,0.666666666666667,0.666666666666667,2884.31,1315.64,1751.5,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"LSKE","BT","rear",111,0,102,9,66,81,81,81,0.918918918918919,0.594594594594595,0.72972972972973,0.72972972972973,0.72972972972973,0,0,111,66,111,81,0.594594594594595,0.72972972972973,2884.31,1315.64,1751.5,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"LSKE","CH","any",122,0,119,3,99,106,106,106,0.975409836065574,0.811475409836066,0.868852459016393,0.868852459016393,0.868852459016393,40,0,82,66,122,106,0.804878048780488,0.868852459016393,2086.32,1049.22,1167.34,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"LSKE","CH","spawn",24,0,23,1,21,22,22,22,0.958333333333333,0.875,0.916666666666667,0.916666666666667,0.916666666666667,24,0,0,0,24,22,,0.916666666666667,2086.32,1049.22,1167.34,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"LSKE","CH","rear",35,0,35,0,25,29,29,29,1,0.714285714285714,0.828571428571429,0.828571428571429,0.828571428571429,3,0,32,23,35,29,0.71875,0.828571428571429,2086.32,1049.22,1167.34,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"MCGR","BT","any",39,0,35,4,33,35,35,35,0.897435897435897,0.846153846153846,0.897435897435897,0.897435897435897,0.897435897435897,0,0,39,33,39,35,0.846153846153846,0.897435897435897,3628.5,1002.82,1460.17,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"MCGR","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,3628.5,1002.82,1460.17,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"MCGR","BT","rear",1,0,1,0,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,3628.5,1002.82,1460.17,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"MCGR","CH","any",40,0,38,2,33,35,35,35,0.95,0.825,0.875,0.875,0.875,14,0,26,20,40,35,0.769230769230769,0.875,2512.15,704.08,935.51,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"MCGR","CH","spawn",5,0,5,0,4,4,4,4,1,0.8,0.8,0.8,0.8,5,0,0,0,5,4,,0.8,2512.15,704.08,935.51,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"MCGR","CH","rear",3,0,3,0,2,2,2,2,1,0.666666666666667,0.666666666666667,0.666666666666667,0.666666666666667,1,0,2,1,3,2,0.5,0.666666666666667,2512.15,704.08,935.51,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"MESI","BT","any",64,0,64,0,50,60,60,60,1,0.78125,0.9375,0.9375,0.9375,0,0,64,50,64,60,0.78125,0.9375,2767.09,685.99,1126.99,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"MESI","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,2767.09,685.99,1126.99,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"MESI","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,2767.09,685.99,1126.99,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"MESI","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"MESI","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"MESI","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"MFRA","BT","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"MFRA","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"MFRA","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"MFRA","CH","any",2,0,1,1,0,0,0,0,0.5,0,0,0,0,0,0,2,0,2,0,0,0,231.06,96.92,104.06,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"MFRA","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,231.06,96.92,104.06,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"MFRA","CH","rear",2,0,1,1,0,0,0,0,0.5,0,0,0,0,0,0,2,0,2,0,0,0,231.06,96.92,104.06,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"MORK","BT","any",79,0,79,0,70,73,73,73,1,0.886075949367089,0.924050632911392,0.924050632911392,0.924050632911392,0,0,79,70,79,73,0.886075949367089,0.924050632911392,8075.86,2434.23,3397.59,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"MORK","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,8075.86,2434.23,3397.59,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"MORK","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,8075.86,2434.23,3397.59,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"MORK","CH","any",156,0,155,1,140,143,143,143,0.993589743589744,0.897435897435897,0.916666666666667,0.916666666666667,0.916666666666667,92,0,64,53,156,143,0.828125,0.916666666666667,5705.82,1556.47,2225.04,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"MORK","CH","spawn",25,0,25,0,22,22,22,22,1,0.88,0.88,0.88,0.88,25,0,0,0,25,22,,0.88,5705.82,1556.47,2225.04,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"MORK","CH","rear",32,0,31,1,24,25,25,25,0.96875,0.75,0.78125,0.78125,0.78125,15,0,17,9,32,25,0.529411764705882,0.78125,5705.82,1556.47,2225.04,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"MORR","BT","any",357,0,349,8,151,258,258,258,0.977591036414566,0.42296918767507,0.722689075630252,0.722689075630252,0.722689075630252,0,0,357,151,357,258,0.42296918767507,0.722689075630252,4765.64,952.61,1829.89,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"MORR","BT","spawn",23,0,23,0,7,15,15,15,1,0.304347826086957,0.652173913043478,0.652173913043478,0.652173913043478,0,0,23,7,23,15,0.304347826086957,0.652173913043478,4765.64,952.61,1829.89,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"MORR","BT","rear",106,0,102,4,27,63,63,63,0.962264150943396,0.254716981132075,0.594339622641509,0.594339622641509,0.594339622641509,0,0,106,27,106,63,0.254716981132075,0.594339622641509,4765.64,952.61,1829.89,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"MORR","CH","any",41,0,41,0,31,33,33,33,1,0.75609756097561,0.804878048780488,0.804878048780488,0.804878048780488,24,0,17,10,41,33,0.588235294117647,0.804878048780488,3328.25,644.81,880.69,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"MORR","CH","spawn",9,0,9,0,7,7,7,7,1,0.777777777777778,0.777777777777778,0.777777777777778,0.777777777777778,9,0,0,0,9,7,,0.777777777777778,3328.25,644.81,880.69,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"MORR","CH","rear",2,0,2,0,1,2,2,2,1,0.5,1,1,1,0,0,2,1,2,2,0.5,1,3328.25,644.81,880.69,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"MSKE","BT","any",69,0,62,7,46,51,51,51,0.898550724637681,0.666666666666667,0.739130434782609,0.739130434782609,0.739130434782609,0,0,69,46,69,51,0.666666666666667,0.739130434782609,2667.19,921.62,1383.52,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"MSKE","BT","spawn",4,0,3,1,2,2,2,2,0.75,0.5,0.5,0.5,0.5,0,0,4,2,4,2,0.5,0.5,2667.19,921.62,1383.52,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"MSKE","BT","rear",5,0,3,2,0,0,0,0,0.6,0,0,0,0,0,0,5,0,5,0,0,0,2667.19,921.62,1383.52,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"MSKE","CH","any",42,0,40,2,34,36,36,36,0.952380952380952,0.80952380952381,0.857142857142857,0.857142857142857,0.857142857142857,6,0,36,30,42,36,0.833333333333333,0.857142857142857,1506.83,676.03,779.76,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"MSKE","CH","spawn",4,0,3,1,2,2,2,2,0.75,0.5,0.5,0.5,0.5,4,0,0,0,4,2,,0.5,1506.83,676.03,779.76,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"MSKE","CH","rear",2,0,1,1,1,1,1,1,0.5,0.5,0.5,0.5,0.5,1,0,1,0,2,1,0,0.5,1506.83,676.03,779.76,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"NARC","BT","any",7,0,7,0,7,7,7,7,1,1,1,1,1,0,0,7,7,7,7,1,1,2994.54,633.18,1162.09,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"NARC","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,2994.54,633.18,1162.09,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"NARC","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,2994.54,633.18,1162.09,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"NARC","CH","any",22,0,22,0,19,20,20,20,1,0.863636363636364,0.909090909090909,0.909090909090909,0.909090909090909,18,0,4,3,22,20,0.75,0.909090909090909,2335,387.57,563.65,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"NARC","CH","spawn",9,0,9,0,8,8,8,8,1,0.888888888888889,0.888888888888889,0.888888888888889,0.888888888888889,9,0,0,0,9,8,,0.888888888888889,2335,387.57,563.65,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"NARC","CH","rear",6,0,6,0,5,5,5,5,1,0.833333333333333,0.833333333333333,0.833333333333333,0.833333333333333,5,0,1,1,6,5,1,0.833333333333333,2335,387.57,563.65,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"NATR","BT","any",57,0,53,4,33,44,44,44,0.929824561403509,0.578947368421053,0.771929824561403,0.771929824561403,0.771929824561403,0,0,57,33,57,44,0.578947368421053,0.771929824561403,8011.09,1516.19,3071.31,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"NATR","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,8011.09,1516.19,3071.31,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"NATR","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,8011.09,1516.19,3071.31,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"NATR","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"NATR","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"NATR","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"NECR","BT","any",12,0,12,0,12,12,12,12,1,1,1,1,1,0,0,12,12,12,12,1,1,6156.77,989.82,1875.61,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"NECR","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,6156.77,989.82,1875.61,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"NECR","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,6156.77,989.82,1875.61,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"NECR","CH","any",101,0,101,0,93,96,96,96,1,0.920792079207921,0.95049504950495,0.95049504950495,0.95049504950495,33,0,68,60,101,96,0.88235294117647,0.95049504950495,5489.42,515.99,1079.18,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"NECR","CH","spawn",9,0,9,0,9,9,9,9,1,1,1,1,1,9,0,0,0,9,9,,1,5489.42,515.99,1079.18,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"NECR","CH","rear",6,0,6,0,4,6,6,6,1,0.666666666666667,1,1,1,1,0,5,3,6,6,0.6,1,5489.42,515.99,1079.18,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"OSPK","BT","any",12,0,12,0,10,12,12,12,1,0.833333333333333,1,1,1,0,0,12,10,12,12,0.833333333333333,1,1881.19,594.62,866.44,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"OSPK","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,1881.19,594.62,866.44,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"OSPK","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,1881.19,594.62,866.44,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"OSPK","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"OSPK","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"OSPK","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"PARA","BT","any",77,0,77,0,60,70,70,70,1,0.779220779220779,0.909090909090909,0.909090909090909,0.909090909090909,0,0,77,60,77,70,0.779220779220779,0.909090909090909,4256.87,718.23,1769.82,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"PARA","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,4256.87,718.23,1769.82,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"PARA","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,4256.87,718.23,1769.82,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"PARA","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"PARA","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"PARA","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"PARS","BT","any",281,0,280,1,231,259,259,259,0.99644128113879,0.822064056939502,0.921708185053381,0.921708185053381,0.921708185053381,0,0,281,231,281,259,0.822064056939502,0.921708185053381,6822.47,1683.36,2575.08,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"PARS","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,6822.47,1683.36,2575.08,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"PARS","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,6822.47,1683.36,2575.08,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"PARS","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"PARS","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"PARS","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"PCEA","BT","any",176,0,176,0,135,163,163,163,1,0.767045454545455,0.926136363636364,0.926136363636364,0.926136363636364,0,0,176,135,176,163,0.767045454545455,0.926136363636364,5002.96,925.72,2023.48,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"PCEA","BT","spawn",1,0,1,0,0,1,1,1,1,0,1,1,1,0,0,1,0,1,1,0,1,5002.96,925.72,2023.48,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"PCEA","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,5002.96,925.72,2023.48,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"PCEA","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"PCEA","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"PCEA","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"PINE","BT","any",249,0,249,0,225,241,241,241,1,0.903614457831325,0.967871485943775,0.967871485943775,0.967871485943775,0,0,249,225,249,241,0.903614457831325,0.967871485943775,5425.97,1643.51,2376.18,213,191,115,153,153,TRUE +"fresh","bcfishpass",0,FALSE,"PINE","BT","spawn",3,0,3,0,3,3,3,3,1,1,1,1,1,0,0,3,3,3,3,1,1,5425.97,1643.51,2376.18,213,191,115,153,153,TRUE +"fresh","bcfishpass",0,FALSE,"PINE","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,5425.97,1643.51,2376.18,213,191,115,153,153,TRUE +"fresh","bcfishpass",0,FALSE,"PINE","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"PINE","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"PINE","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"SALR","BT","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"SALR","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"SALR","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"SALR","CH","any",7,0,7,0,6,6,6,6,1,0.857142857142857,0.857142857142857,0.857142857142857,0.857142857142857,5,0,2,1,7,6,0.5,0.857142857142857,3134.03,206.59,442.55,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"SALR","CH","spawn",4,0,4,0,4,4,4,4,1,1,1,1,1,4,0,0,0,4,4,,1,3134.03,206.59,442.55,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"SALR","CH","rear",2,0,2,0,1,1,1,1,1,0.5,0.5,0.5,0.5,0,0,2,1,2,1,0.5,0.5,3134.03,206.59,442.55,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"SETN","BT","any",180,0,175,5,115,151,151,151,0.972222222222222,0.638888888888889,0.838888888888889,0.838888888888889,0.838888888888889,0,0,180,115,180,151,0.638888888888889,0.838888888888889,2844.64,816.05,1339.7,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"SETN","BT","spawn",3,0,2,1,2,2,2,2,0.666666666666667,0.666666666666667,0.666666666666667,0.666666666666667,0.666666666666667,0,0,3,2,3,2,0.666666666666667,0.666666666666667,2844.64,816.05,1339.7,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"SETN","BT","rear",1,0,1,0,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,2844.64,816.05,1339.7,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"SETN","CH","any",117,0,116,1,111,111,111,111,0.991452991452991,0.948717948717949,0.948717948717949,0.948717948717949,0.948717948717949,105,0,12,6,117,111,0.5,0.948717948717949,1497.15,537.97,609.35,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"SETN","CH","spawn",17,0,17,0,16,16,16,16,1,0.941176470588235,0.941176470588235,0.941176470588235,0.941176470588235,16,0,1,0,17,16,0,0.941176470588235,1497.15,537.97,609.35,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"SETN","CH","rear",85,0,85,0,85,85,85,85,1,1,1,1,1,82,0,3,3,85,85,1,1,1497.15,537.97,609.35,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"TABR","BT","any",10,0,10,0,4,4,4,4,1,0.4,0.4,0.4,0.4,0,0,10,4,10,4,0.4,0.4,3305.18,677.05,1035.42,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"TABR","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,3305.18,677.05,1035.42,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"TABR","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,3305.18,677.05,1035.42,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"TABR","CH","any",50,0,48,2,29,32,32,32,0.96,0.58,0.64,0.64,0.64,4,0,46,25,50,32,0.543478260869565,0.64,2566.6,410.27,642.88,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"TABR","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,2566.6,410.27,642.88,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"TABR","CH","rear",25,0,24,1,17,18,18,18,0.96,0.68,0.72,0.72,0.72,3,0,22,14,25,18,0.636363636363636,0.72,2566.6,410.27,642.88,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"THOM","BT","any",4,0,4,0,3,4,4,4,1,0.75,1,1,1,0,0,4,3,4,4,0.75,1,1808.68,338.34,563,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"THOM","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,1808.68,338.34,563,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"THOM","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,1808.68,338.34,563,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"THOM","CH","any",29,0,29,0,26,26,26,26,1,0.896551724137931,0.896551724137931,0.896551724137931,0.896551724137931,23,0,6,4,29,26,0.666666666666667,0.896551724137931,513.62,203.23,209.51,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"THOM","CH","spawn",21,0,21,0,20,20,20,20,1,0.952380952380952,0.952380952380952,0.952380952380952,0.952380952380952,21,0,0,0,21,20,,0.952380952380952,513.62,203.23,209.51,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"THOM","CH","rear",4,0,4,0,4,4,4,4,1,1,1,1,1,3,0,1,1,4,4,1,1,513.62,203.23,209.51,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"TOOD","BT","any",36,0,36,0,31,34,34,34,1,0.861111111111111,0.944444444444444,0.944444444444444,0.944444444444444,0,0,36,31,36,34,0.861111111111111,0.944444444444444,4466.1,1118.51,1850.91,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"TOOD","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,4466.1,1118.51,1850.91,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"TOOD","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,4466.1,1118.51,1850.91,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"TOOD","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"TOOD","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"TOOD","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"TWAC","BT","any",2,0,2,0,2,2,2,2,1,1,1,1,1,0,0,2,2,2,2,1,1,1002.12,226.3,393.93,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"TWAC","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,1002.12,226.3,393.93,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"TWAC","BT","rear",1,0,1,0,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1002.12,226.3,393.93,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"TWAC","CH","any",9,0,9,0,8,9,9,9,1,0.888888888888889,1,1,1,0,0,9,8,9,9,0.888888888888889,1,689.03,144.23,173.02,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"TWAC","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,689.03,144.23,173.02,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"TWAC","CH","rear",7,0,7,0,7,7,7,7,1,1,1,1,1,0,0,7,7,7,7,1,1,689.03,144.23,173.02,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"UFRA","BT","any",87,0,87,0,45,59,59,59,1,0.517241379310345,0.67816091954023,0.67816091954023,0.67816091954023,0,0,87,45,87,59,0.517241379310345,0.67816091954023,2107.1,952.9,1239.84,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"UFRA","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,2107.1,952.9,1239.84,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"UFRA","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,2107.1,952.9,1239.84,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"UFRA","CH","any",51,0,51,0,44,45,45,45,1,0.862745098039216,0.88235294117647,0.88235294117647,0.88235294117647,29,0,22,16,51,45,0.727272727272727,0.88235294117647,1243.66,632.76,726.73,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"UFRA","CH","spawn",11,0,11,0,10,11,11,11,1,0.909090909090909,1,1,1,11,0,0,0,11,11,,1,1243.66,632.76,726.73,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"UFRA","CH","rear",6,0,6,0,3,3,3,3,1,0.5,0.5,0.5,0.5,2,0,4,1,6,3,0.25,0.5,1243.66,632.76,726.73,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"UNRS","BT","any",2,0,2,0,0,2,2,2,1,0,1,1,1,0,0,2,0,2,2,0,1,7431.77,644.82,1864.53,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"UNRS","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,7431.77,644.82,1864.53,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"UNRS","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,7431.77,644.82,1864.53,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"UNRS","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"UNRS","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"UNRS","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"UNTH","BT","any",147,0,140,7,80,122,122,122,0.952380952380952,0.54421768707483,0.829931972789116,0.829931972789116,0.829931972789116,0,0,147,80,147,122,0.54421768707483,0.829931972789116,1077.2,544.45,719.29,152,119,67,83,83,TRUE +"fresh","bcfishpass",0,FALSE,"UNTH","BT","spawn",2,0,1,1,1,1,1,1,0.5,0.5,0.5,0.5,0.5,0,0,2,1,2,1,0.5,0.5,1077.2,544.45,719.29,152,119,67,83,83,TRUE +"fresh","bcfishpass",0,FALSE,"UNTH","BT","rear",2,0,2,0,1,1,1,1,1,0.5,0.5,0.5,0.5,0,0,2,1,2,1,0.5,0.5,1077.2,544.45,719.29,152,119,67,83,83,TRUE +"fresh","bcfishpass",0,FALSE,"UNTH","CH","any",44,0,41,3,31,33,33,33,0.931818181818182,0.704545454545455,0.75,0.75,0.75,21,0,23,13,44,33,0.565217391304348,0.75,760.6,429.83,470.93,171,113,73,80,80,TRUE +"fresh","bcfishpass",0,FALSE,"UNTH","CH","spawn",14,0,14,0,11,11,11,11,1,0.785714285714286,0.785714285714286,0.785714285714286,0.785714285714286,14,0,0,0,14,11,,0.785714285714286,760.6,429.83,470.93,171,113,73,80,80,TRUE +"fresh","bcfishpass",0,FALSE,"UNTH","CH","rear",21,0,21,0,17,17,17,17,1,0.80952380952381,0.80952380952381,0.80952380952381,0.80952380952381,6,0,15,11,21,17,0.733333333333333,0.80952380952381,760.6,429.83,470.93,171,113,73,80,80,TRUE +"fresh","bcfishpass",0,FALSE,"UOMI","BT","any",82,0,82,0,42,54,54,54,1,0.51219512195122,0.658536585365854,0.658536585365854,0.658536585365854,0,0,82,42,82,54,0.51219512195122,0.658536585365854,3703.16,907.88,1459.1,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"UOMI","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,3703.16,907.88,1459.1,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"UOMI","BT","rear",22,0,22,0,6,10,10,10,1,0.272727272727273,0.454545454545455,0.454545454545455,0.454545454545455,0,0,22,6,22,10,0.272727272727273,0.454545454545455,3703.16,907.88,1459.1,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"UOMI","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"UOMI","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"UOMI","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"UPCE","BT","any",153,0,152,1,138,139,139,139,0.993464052287582,0.901960784313726,0.908496732026144,0.908496732026144,0.908496732026144,0,0,153,138,153,139,0.901960784313726,0.908496732026144,5261.16,1657.29,2320.94,570,556,441,485,485,TRUE +"fresh","bcfishpass",0,FALSE,"UPCE","BT","spawn",1,0,1,0,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,5261.16,1657.29,2320.94,570,556,441,485,485,TRUE +"fresh","bcfishpass",0,FALSE,"UPCE","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,5261.16,1657.29,2320.94,570,556,441,485,485,TRUE +"fresh","bcfishpass",0,FALSE,"UPCE","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"UPCE","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"UPCE","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"USKE","BT","any",32,0,32,0,28,31,31,31,1,0.875,0.96875,0.96875,0.96875,0,0,32,28,32,31,0.875,0.96875,3451.92,878.03,1438.52,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"USKE","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,3451.92,878.03,1438.52,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"USKE","BT","rear",1,0,1,0,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,3451.92,878.03,1438.52,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"USKE","CH","any",8,0,8,0,8,8,8,8,1,1,1,1,1,0,0,8,8,8,8,1,1,1518.35,498.83,593.41,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"USKE","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,1518.35,498.83,593.41,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"USKE","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,1518.35,498.83,593.41,,,,,,FALSE +"fresh","bcfishpass",0,FALSE,"UTRE","BT","any",6,0,6,0,4,6,6,6,1,0.666666666666667,1,1,1,0,0,6,4,6,6,0.666666666666667,1,1851.52,204.25,585.34,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"UTRE","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,1851.52,204.25,585.34,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"UTRE","BT","rear",1,0,1,0,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1851.52,204.25,585.34,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"UTRE","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"UTRE","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"UTRE","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"WILL","BT","any",54,0,54,0,39,50,50,50,1,0.722222222222222,0.925925925925926,0.925925925925926,0.925925925925926,0,0,54,39,54,50,0.722222222222222,0.925925925925926,4515.45,1052.18,1690.35,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"WILL","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,4515.45,1052.18,1690.35,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"WILL","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,4515.45,1052.18,1690.35,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"WILL","CH","any",58,0,58,0,52,53,53,53,1,0.896551724137931,0.913793103448276,0.913793103448276,0.913793103448276,40,0,18,13,58,53,0.722222222222222,0.913793103448276,3537.67,630.48,1029.73,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"WILL","CH","spawn",3,0,3,0,2,2,2,2,1,0.666666666666667,0.666666666666667,0.666666666666667,0.666666666666667,3,0,0,0,3,2,,0.666666666666667,3537.67,630.48,1029.73,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"WILL","CH","rear",42,0,42,0,38,39,39,39,1,0.904761904761905,0.928571428571429,0.928571428571429,0.928571428571429,30,0,12,8,42,39,0.666666666666667,0.928571428571429,3537.67,630.48,1029.73,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"ZYMO","BT","any",280,0,244,36,122,186,186,186,0.871428571428571,0.435714285714286,0.664285714285714,0.664285714285714,0.664285714285714,0,0,280,122,280,186,0.435714285714286,0.664285714285714,1840.06,575.42,863.2,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"ZYMO","BT","spawn",14,0,12,2,7,9,9,9,0.857142857142857,0.5,0.642857142857143,0.642857142857143,0.642857142857143,0,0,14,7,14,9,0.5,0.642857142857143,1840.06,575.42,863.2,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"ZYMO","BT","rear",147,0,123,24,47,78,78,78,0.836734693877551,0.319727891156463,0.530612244897959,0.530612244897959,0.530612244897959,0,0,147,47,147,78,0.319727891156463,0.530612244897959,1840.06,575.42,863.2,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"ZYMO","CH","any",21,0,19,2,13,16,16,16,0.904761904761905,0.619047619047619,0.761904761904762,0.761904761904762,0.761904761904762,8,0,13,6,21,16,0.461538461538462,0.761904761904762,1200.73,462.91,539.94,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"ZYMO","CH","spawn",8,0,7,1,7,7,7,7,0.875,0.875,0.875,0.875,0.875,8,0,0,0,8,7,,0.875,1200.73,462.91,539.94,,,,,,TRUE +"fresh","bcfishpass",0,FALSE,"ZYMO","CH","rear",5,0,4,1,0,1,1,1,0.8,0,0.2,0.2,0.2,0,0,5,0,5,1,0,0.2,1200.73,462.91,539.94,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"BBAR","BT","any",16,0,16,0,10,14,14,14,1,0.625,0.875,0.875,0.875,0,0,16,10,16,14,0.625,0.875,1262.45,296.02,478.21,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"BBAR","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,1262.45,296.02,478.21,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"BBAR","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,1262.45,296.02,478.21,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"BBAR","CH","any",5,0,3,2,1,1,1,1,0.6,0.2,0.2,0.2,0.2,0,0,5,1,5,1,0.2,0.2,269.11,160.2,167.83,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"BBAR","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,269.11,160.2,167.83,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"BBAR","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,269.11,160.2,167.83,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"BOWR","BT","any",38,0,34,4,27,31,31,31,0.894736842105263,0.710526315789474,0.81578947368421,0.81578947368421,0.81578947368421,0,0,38,27,38,31,0.710526315789474,0.81578947368421,3695.08,1046.27,1618.82,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"BOWR","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,3695.08,1046.27,1618.82,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"BOWR","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,3695.08,1046.27,1618.82,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"BOWR","CH","any",96,0,91,5,79,83,83,83,0.947916666666667,0.822916666666667,0.864583333333333,0.864583333333333,0.864583333333333,41,0,55,41,96,83,0.745454545454545,0.864583333333333,2516.89,655.31,913.88,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"BOWR","CH","spawn",19,0,18,1,16,17,17,17,0.947368421052632,0.842105263157895,0.894736842105263,0.894736842105263,0.894736842105263,19,0,0,0,19,17,,0.894736842105263,2516.89,655.31,913.88,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"BOWR","CH","rear",54,0,51,3,43,46,46,46,0.944444444444444,0.796296296296296,0.851851851851852,0.851851851851852,0.851851851851852,24,0,30,20,54,46,0.666666666666667,0.851851851851852,2516.89,655.31,913.88,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"BULK","BT","any",468,0,443,25,230,329,329,329,0.946581196581197,0.491452991452991,0.702991452991453,0.702991452991453,0.702991452991453,0,0,468,230,468,329,0.491452991452991,0.702991452991453,7676.5,1866.31,3021.51,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"BULK","BT","spawn",12,0,11,1,4,9,9,9,0.916666666666667,0.333333333333333,0.75,0.75,0.75,0,0,12,4,12,9,0.333333333333333,0.75,7676.5,1866.31,3021.51,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"BULK","BT","rear",255,0,232,23,86,151,151,151,0.909803921568627,0.337254901960784,0.592156862745098,0.592156862745098,0.592156862745098,0,0,255,86,255,151,0.337254901960784,0.592156862745098,7676.5,1866.31,3021.51,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"BULK","CH","any",110,0,110,0,105,108,108,108,1,0.954545454545455,0.981818181818182,0.981818181818182,0.981818181818182,19,0,91,86,110,108,0.945054945054945,0.981818181818182,5089.63,1260.25,1730.12,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"BULK","CH","spawn",16,0,16,0,16,16,16,16,1,1,1,1,1,16,0,0,0,16,16,,1,5089.63,1260.25,1730.12,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"BULK","CH","rear",11,0,11,0,6,9,9,9,1,0.545454545454545,0.818181818181818,0.818181818181818,0.818181818181818,0,0,11,6,11,9,0.545454545454545,0.818181818181818,5089.63,1260.25,1730.12,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"CARP","BT","any",6,0,6,0,4,6,6,6,1,0.666666666666667,1,1,1,0,0,6,4,6,6,0.666666666666667,1,4296.5,497.07,1072.63,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"CARP","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,4296.5,497.07,1072.63,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"CARP","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,4296.5,497.07,1072.63,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"CARP","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"CARP","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"CARP","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"CHES","BT","any",3,0,1,2,1,1,1,1,0.333333333333333,0.333333333333333,0.333333333333333,0.333333333333333,0.333333333333333,0,0,3,1,3,1,0.333333333333333,0.333333333333333,901.21,145.45,336.47,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"CHES","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,901.21,145.45,336.47,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"CHES","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,901.21,145.45,336.47,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"CHES","CH","any",87,0,85,2,81,82,82,82,0.977011494252874,0.931034482758621,0.942528735632184,0.942528735632184,0.942528735632184,28,0,59,54,87,82,0.915254237288136,0.942528735632184,750.66,88.26,149.77,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"CHES","CH","spawn",3,0,2,1,2,2,2,2,0.666666666666667,0.666666666666667,0.666666666666667,0.666666666666667,0.666666666666667,2,0,1,0,3,2,0,0.666666666666667,750.66,88.26,149.77,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"CHES","CH","rear",1,0,1,0,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,750.66,88.26,149.77,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"CHWK","BT","any",62,0,62,0,41,57,57,57,1,0.661290322580645,0.919354838709677,0.919354838709677,0.919354838709677,0,0,62,41,62,57,0.661290322580645,0.919354838709677,822.24,316.56,418.39,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"CHWK","BT","spawn",5,0,5,0,4,5,5,5,1,0.8,1,1,1,0,0,5,4,5,5,0.8,1,822.24,316.56,418.39,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"CHWK","BT","rear",5,0,5,0,4,4,4,4,1,0.8,0.8,0.8,0.8,0,0,5,4,5,4,0.8,0.8,822.24,316.56,418.39,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"CHWK","CH","any",21,0,19,2,14,14,14,14,0.904761904761905,0.666666666666667,0.666666666666667,0.666666666666667,0.666666666666667,2,0,19,13,21,14,0.68421052631579,0.666666666666667,662.37,253.93,301.07,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"CHWK","CH","spawn",8,0,8,0,6,6,6,6,1,0.75,0.75,0.75,0.75,2,0,6,5,8,6,0.833333333333333,0.75,662.37,253.93,301.07,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"CHWK","CH","rear",4,0,4,0,4,4,4,4,1,1,1,1,1,0,0,4,4,4,4,1,1,662.37,253.93,301.07,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"COTR","BT","any",85,0,84,1,48,69,69,69,0.988235294117647,0.564705882352941,0.811764705882353,0.811764705882353,0.811764705882353,0,0,85,48,85,69,0.564705882352941,0.811764705882353,6878.95,1490.06,2340.71,75,65,31,40,40,TRUE +"fresh","bcfishpass",100,FALSE,"COTR","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,6878.95,1490.06,2340.71,75,65,31,40,40,TRUE +"fresh","bcfishpass",100,FALSE,"COTR","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,6878.95,1490.06,2340.71,75,65,31,40,40,TRUE +"fresh","bcfishpass",100,FALSE,"COTR","CH","any",100,0,95,5,70,73,73,73,0.95,0.7,0.73,0.73,0.73,40,0,60,32,100,73,0.533333333333333,0.73,4119.15,694.8,1033.8,68,25,11,12,12,TRUE +"fresh","bcfishpass",100,FALSE,"COTR","CH","spawn",15,0,14,1,13,13,13,13,0.933333333333333,0.866666666666667,0.866666666666667,0.866666666666667,0.866666666666667,15,0,0,0,15,13,,0.866666666666667,4119.15,694.8,1033.8,68,25,11,12,12,TRUE +"fresh","bcfishpass",100,FALSE,"COTR","CH","rear",48,0,45,3,29,31,31,31,0.9375,0.604166666666667,0.645833333333333,0.645833333333333,0.645833333333333,12,0,36,17,48,31,0.472222222222222,0.645833333333333,4119.15,694.8,1033.8,68,25,11,12,12,TRUE +"fresh","bcfishpass",100,FALSE,"CRKD","BT","any",4,0,4,0,4,4,4,4,1,1,1,1,1,0,0,4,4,4,4,1,1,5051.55,695.63,1448.44,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"CRKD","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,5051.55,695.63,1448.44,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"CRKD","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,5051.55,695.63,1448.44,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"CRKD","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"CRKD","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"CRKD","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"DOGC","BT","any",17,0,17,0,13,17,17,17,1,0.764705882352941,1,1,1,0,0,17,13,17,17,0.764705882352941,1,1251.04,288.83,481.5,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"DOGC","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,1251.04,288.83,481.5,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"DOGC","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,1251.04,288.83,481.5,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"DOGC","CH","any",5,0,5,0,5,5,5,5,1,1,1,1,1,2,0,3,3,5,5,1,1,358.45,162,180.33,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"DOGC","CH","spawn",2,0,2,0,2,2,2,2,1,1,1,1,1,2,0,0,0,2,2,,1,358.45,162,180.33,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"DOGC","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,358.45,162,180.33,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"ELKR","BT","any",582,0,578,4,526,568,568,568,0.993127147766323,0.903780068728522,0.97594501718213,0.97594501718213,0.97594501718213,0,0,582,526,582,568,0.903780068728522,0.97594501718213,4208.11,1526.83,2107.52,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"ELKR","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,4208.11,1526.83,2107.52,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"ELKR","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,4208.11,1526.83,2107.52,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"ELKR","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"ELKR","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"ELKR","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"FINA","BT","any",107,0,107,0,96,105,105,105,1,0.897196261682243,0.981308411214953,0.981308411214953,0.981308411214953,0,0,107,96,107,105,0.897196261682243,0.981308411214953,6084.04,1277.62,2845.63,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"FINA","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,6084.04,1277.62,2845.63,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"FINA","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,6084.04,1277.62,2845.63,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"FINA","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"FINA","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"FINA","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"FINL","BT","any",32,0,32,0,25,29,29,29,1,0.78125,0.90625,0.90625,0.90625,0,0,32,25,32,29,0.78125,0.90625,4480.99,1365.64,2085.7,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"FINL","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,4480.99,1365.64,2085.7,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"FINL","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,4480.99,1365.64,2085.7,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"FINL","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"FINL","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"FINL","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"FIRE","BT","any",172,0,172,0,135,155,155,155,1,0.784883720930233,0.901162790697674,0.901162790697674,0.901162790697674,0,0,172,135,172,155,0.784883720930233,0.901162790697674,6589.52,1012.26,2016.75,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"FIRE","BT","spawn",4,0,4,0,2,2,2,2,1,0.5,0.5,0.5,0.5,0,0,4,2,4,2,0.5,0.5,6589.52,1012.26,2016.75,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"FIRE","BT","rear",66,0,66,0,57,62,62,62,1,0.863636363636364,0.93939393939394,0.93939393939394,0.93939393939394,0,0,66,57,66,62,0.863636363636364,0.93939393939394,6589.52,1012.26,2016.75,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"FIRE","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"FIRE","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"FIRE","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"FOXR","BT","any",33,0,33,0,26,31,31,31,1,0.787878787878788,0.93939393939394,0.93939393939394,0.93939393939394,0,0,33,26,33,31,0.787878787878788,0.93939393939394,3587.54,922.1,1511.59,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"FOXR","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,3587.54,922.1,1511.59,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"FOXR","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,3587.54,922.1,1511.59,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"FOXR","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"FOXR","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"FOXR","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"FRAN","BT","any",102,0,100,2,54,71,71,71,0.980392156862745,0.529411764705882,0.696078431372549,0.696078431372549,0.696078431372549,0,0,102,54,102,71,0.529411764705882,0.696078431372549,9265.93,1150.92,2834.02,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"FRAN","BT","spawn",1,0,1,0,0,1,1,1,1,0,1,1,1,0,0,1,0,1,1,0,1,9265.93,1150.92,2834.02,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"FRAN","BT","rear",90,0,88,2,44,60,60,60,0.977777777777778,0.488888888888889,0.666666666666667,0.666666666666667,0.666666666666667,0,0,90,44,90,60,0.488888888888889,0.666666666666667,9265.93,1150.92,2834.02,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"FRAN","CH","any",23,0,23,0,17,17,17,17,1,0.739130434782609,0.739130434782609,0.739130434782609,0.739130434782609,11,0,12,10,23,17,0.833333333333333,0.739130434782609,7176.56,540.43,971.87,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"FRAN","CH","spawn",4,0,4,0,3,3,3,3,1,0.75,0.75,0.75,0.75,4,0,0,0,4,3,,0.75,7176.56,540.43,971.87,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"FRAN","CH","rear",4,0,4,0,2,2,2,2,1,0.5,0.5,0.5,0.5,0,0,4,2,4,2,0.5,0.5,7176.56,540.43,971.87,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"FRCN","BT","any",95,0,94,1,54,91,91,91,0.989473684210526,0.568421052631579,0.957894736842105,0.957894736842105,0.957894736842105,0,0,95,54,95,91,0.568421052631579,0.957894736842105,1502.48,691.1,964.06,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"FRCN","BT","spawn",1,0,1,0,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1502.48,691.1,964.06,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"FRCN","BT","rear",5,0,5,0,2,5,5,5,1,0.4,1,1,1,0,0,5,2,5,5,0.4,1,1502.48,691.1,964.06,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"FRCN","CH","any",31,0,30,1,22,27,27,27,0.967741935483871,0.709677419354839,0.870967741935484,0.870967741935484,0.870967741935484,13,0,18,13,31,27,0.722222222222222,0.870967741935484,716.2,428.99,474.71,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"FRCN","CH","spawn",5,0,5,0,3,3,3,3,1,0.6,0.6,0.6,0.6,5,0,0,0,5,3,,0.6,716.2,428.99,474.71,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"FRCN","CH","rear",13,0,13,0,10,13,13,13,1,0.769230769230769,1,1,1,2,0,11,8,13,13,0.727272727272727,1,716.2,428.99,474.71,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"HARR","BT","any",43,0,38,5,21,35,35,35,0.883720930232558,0.488372093023256,0.813953488372093,0.813953488372093,0.813953488372093,0,0,43,21,43,35,0.488372093023256,0.813953488372093,1561.45,468.9,827.82,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"HARR","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,1561.45,468.9,827.82,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"HARR","BT","rear",7,0,7,0,4,7,7,7,1,0.571428571428571,1,1,1,0,0,7,4,7,7,0.571428571428571,1,1561.45,468.9,827.82,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"HARR","CH","any",118,0,116,2,109,109,109,109,0.983050847457627,0.923728813559322,0.923728813559322,0.923728813559322,0.923728813559322,8,0,110,102,118,109,0.927272727272727,0.923728813559322,1126.73,327.72,377.22,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"HARR","CH","spawn",4,0,4,0,3,3,3,3,1,0.75,0.75,0.75,0.75,4,0,0,0,4,3,,0.75,1126.73,327.72,377.22,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"HARR","CH","rear",46,0,45,1,44,44,44,44,0.978260869565217,0.956521739130435,0.956521739130435,0.956521739130435,0.956521739130435,0,0,46,44,46,44,0.956521739130435,0.956521739130435,1126.73,327.72,377.22,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"INGR","BT","any",27,0,27,0,23,26,26,26,1,0.851851851851852,0.962962962962963,0.962962962962963,0.962962962962963,0,0,27,23,27,26,0.851851851851852,0.962962962962963,3907.56,1111.41,1783.68,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"INGR","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,3907.56,1111.41,1783.68,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"INGR","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,3907.56,1111.41,1783.68,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"INGR","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"INGR","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"INGR","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"KISP","BT","any",195,0,187,8,125,162,162,162,0.958974358974359,0.641025641025641,0.830769230769231,0.830769230769231,0.830769230769231,0,0,195,125,195,162,0.641025641025641,0.830769230769231,4475.39,1261.15,1962.71,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"KISP","BT","spawn",5,0,5,0,2,3,3,3,1,0.4,0.6,0.6,0.6,0,0,5,2,5,3,0.4,0.6,4475.39,1261.15,1962.71,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"KISP","BT","rear",56,0,51,5,27,37,37,37,0.910714285714286,0.482142857142857,0.660714285714286,0.660714285714286,0.660714285714286,0,0,56,27,56,37,0.482142857142857,0.660714285714286,4475.39,1261.15,1962.71,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"KISP","CH","any",89,0,89,0,77,78,78,78,1,0.865168539325843,0.876404494382023,0.876404494382023,0.876404494382023,38,0,51,46,89,78,0.901960784313726,0.876404494382023,2786.73,860.45,1050.59,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"KISP","CH","spawn",30,0,30,0,25,25,25,25,1,0.833333333333333,0.833333333333333,0.833333333333333,0.833333333333333,30,0,0,0,30,25,,0.833333333333333,2786.73,860.45,1050.59,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"KISP","CH","rear",12,0,12,0,10,10,10,10,1,0.833333333333333,0.833333333333333,0.833333333333333,0.833333333333333,1,0,11,9,12,10,0.818181818181818,0.833333333333333,2786.73,860.45,1050.59,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"KLUM","BT","any",314,0,275,39,191,235,235,235,0.875796178343949,0.60828025477707,0.748407643312102,0.748407643312102,0.748407643312102,0,0,314,191,314,235,0.60828025477707,0.748407643312102,1930.45,894.45,1189.16,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"KLUM","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,1930.45,894.45,1189.16,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"KLUM","BT","rear",141,0,121,20,66,92,92,92,0.858156028368794,0.468085106382979,0.652482269503546,0.652482269503546,0.652482269503546,0,0,141,66,141,92,0.468085106382979,0.652482269503546,1930.45,894.45,1189.16,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"KLUM","CH","any",104,0,99,5,85,87,87,87,0.951923076923077,0.817307692307692,0.836538461538462,0.836538461538462,0.836538461538462,28,0,76,60,104,87,0.789473684210526,0.836538461538462,1481.08,707.93,830.68,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"KLUM","CH","spawn",20,0,19,1,17,18,18,18,0.95,0.85,0.9,0.9,0.9,20,0,0,0,20,18,,0.9,1481.08,707.93,830.68,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"KLUM","CH","rear",19,0,19,0,14,15,15,15,1,0.736842105263158,0.789473684210526,0.789473684210526,0.789473684210526,4,0,15,10,19,15,0.666666666666667,0.789473684210526,1481.08,707.93,830.68,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"KOTR","BT","any",184,0,183,1,142,163,163,163,0.994565217391304,0.771739130434783,0.885869565217391,0.885869565217391,0.885869565217391,0,0,184,142,184,163,0.771739130434783,0.885869565217391,2533.85,899.57,1305.15,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"KOTR","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,2533.85,899.57,1305.15,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"KOTR","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,2533.85,899.57,1305.15,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"KOTR","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"KOTR","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"KOTR","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"LBTN","BT","any",2,0,2,0,2,2,2,2,1,1,1,1,1,0,0,2,2,2,2,1,1,8647.79,2026.94,2189.51,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"LBTN","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,8647.79,2026.94,2189.51,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"LBTN","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,8647.79,2026.94,2189.51,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"LBTN","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"LBTN","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"LBTN","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"LCHL","BT","any",6,0,6,0,6,6,6,6,1,1,1,1,1,0,0,6,6,6,6,1,1,5236.61,896.14,1550.64,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"LCHL","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,5236.61,896.14,1550.64,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"LCHL","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,5236.61,896.14,1550.64,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"LCHL","CH","any",38,0,38,0,32,36,36,36,1,0.842105263157895,0.947368421052632,0.947368421052632,0.947368421052632,14,0,24,22,38,36,0.916666666666667,0.947368421052632,4159.73,464.81,826.81,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"LCHL","CH","spawn",2,0,2,0,2,2,2,2,1,1,1,1,1,2,0,0,0,2,2,,1,4159.73,464.81,826.81,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"LCHL","CH","rear",23,0,23,0,17,21,21,21,1,0.739130434782609,0.91304347826087,0.91304347826087,0.91304347826087,10,0,13,11,23,21,0.846153846153846,0.91304347826087,4159.73,464.81,826.81,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"LFRA","BT","any",78,0,78,0,61,70,70,70,1,0.782051282051282,0.897435897435897,0.897435897435897,0.897435897435897,0,0,78,61,78,70,0.782051282051282,0.897435897435897,3415.8,1284.59,1805.62,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"LFRA","BT","spawn",1,0,1,0,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,3415.8,1284.59,1805.62,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"LFRA","BT","rear",2,0,2,0,2,2,2,2,1,1,1,1,1,0,0,2,2,2,2,1,1,3415.8,1284.59,1805.62,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"LFRA","CH","any",165,0,159,6,107,135,135,135,0.963636363636364,0.648484848484848,0.818181818181818,0.818181818181818,0.818181818181818,19,0,146,89,165,135,0.60958904109589,0.818181818181818,2754.05,820.43,1176.68,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"LFRA","CH","spawn",10,0,10,0,9,10,10,10,1,0.9,1,1,1,10,0,0,0,10,10,,1,2754.05,820.43,1176.68,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"LFRA","CH","rear",66,0,63,3,40,55,55,55,0.954545454545455,0.606060606060606,0.833333333333333,0.833333333333333,0.833333333333333,6,0,60,34,66,55,0.566666666666667,0.833333333333333,2754.05,820.43,1176.68,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"LKEL","BT","any",63,0,63,0,37,49,49,49,1,0.587301587301587,0.777777777777778,0.777777777777778,0.777777777777778,0,0,63,37,63,49,0.587301587301587,0.777777777777778,401.02,144.74,222.78,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"LKEL","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,401.02,144.74,222.78,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"LKEL","BT","rear",26,0,26,0,12,17,17,17,1,0.461538461538462,0.653846153846154,0.653846153846154,0.653846153846154,0,0,26,12,26,17,0.461538461538462,0.653846153846154,401.02,144.74,222.78,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"LKEL","CH","any",14,0,14,0,11,11,11,11,1,0.785714285714286,0.785714285714286,0.785714285714286,0.785714285714286,5,0,9,8,14,11,0.888888888888889,0.785714285714286,328.21,106.49,123.85,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"LKEL","CH","spawn",3,0,3,0,2,2,2,2,1,0.666666666666667,0.666666666666667,0.666666666666667,0.666666666666667,3,0,0,0,3,2,,0.666666666666667,328.21,106.49,123.85,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"LKEL","CH","rear",2,0,2,0,2,2,2,2,1,1,1,1,1,0,0,2,2,2,2,1,1,328.21,106.49,123.85,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"LNTH","BT","any",108,0,108,0,88,103,103,103,1,0.814814814814815,0.953703703703704,0.953703703703704,0.953703703703704,0,0,108,88,108,103,0.814814814814815,0.953703703703704,3027.89,781.94,1238.82,208,86,54,71,71,TRUE +"fresh","bcfishpass",100,FALSE,"LNTH","BT","spawn",3,0,3,0,3,3,3,3,1,1,1,1,1,0,0,3,3,3,3,1,1,3027.89,781.94,1238.82,208,86,54,71,71,TRUE +"fresh","bcfishpass",100,FALSE,"LNTH","BT","rear",1,0,1,0,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,3027.89,781.94,1238.82,208,86,54,71,71,TRUE +"fresh","bcfishpass",100,FALSE,"LNTH","CH","any",56,0,54,2,48,48,48,48,0.964285714285714,0.857142857142857,0.857142857142857,0.857142857142857,0.857142857142857,26,0,30,25,56,48,0.833333333333333,0.857142857142857,1137.26,471.29,559.54,242,111,64,74,74,TRUE +"fresh","bcfishpass",100,FALSE,"LNTH","CH","spawn",18,0,18,0,16,16,16,16,1,0.888888888888889,0.888888888888889,0.888888888888889,0.888888888888889,18,0,0,0,18,16,,0.888888888888889,1137.26,471.29,559.54,242,111,64,74,74,TRUE +"fresh","bcfishpass",100,FALSE,"LNTH","CH","rear",23,0,23,0,23,23,23,23,1,1,1,1,1,6,0,17,17,23,23,1,1,1137.26,471.29,559.54,242,111,64,74,74,TRUE +"fresh","bcfishpass",100,FALSE,"LOMI","BT","any",27,0,26,1,20,25,25,25,0.962962962962963,0.740740740740741,0.925925925925926,0.925925925925926,0.925925925925926,0,0,27,20,27,25,0.740740740740741,0.925925925925926,3436.23,967.82,1517.42,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"LOMI","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,3436.23,967.82,1517.42,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"LOMI","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,3436.23,967.82,1517.42,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"LOMI","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"LOMI","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"LOMI","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"LPCE","BT","any",55,0,53,2,42,40,40,42,0.963636363636364,0.763636363636364,0.727272727272727,0.727272727272727,0.763636363636364,0,0,55,42,55,40,0.763636363636364,0.727272727272727,3130.17,918.71,1261.4,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"LPCE","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,3130.17,918.71,1261.4,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"LPCE","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,3130.17,918.71,1261.4,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"LPCE","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"LPCE","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"LPCE","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"LSAL","BT","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"LSAL","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"LSAL","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"LSAL","CH","any",17,0,17,0,17,17,17,17,1,1,1,1,1,6,0,11,11,17,17,1,1,2968.08,312.6,617.6,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"LSAL","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,2968.08,312.6,617.6,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"LSAL","CH","rear",4,0,4,0,4,4,4,4,1,1,1,1,1,2,0,2,2,4,4,1,1,2968.08,312.6,617.6,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"LSKE","BT","any",230,0,216,14,171,187,187,187,0.939130434782609,0.743478260869565,0.81304347826087,0.81304347826087,0.81304347826087,0,0,230,171,230,187,0.743478260869565,0.81304347826087,2884.31,1315.64,1751.5,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"LSKE","BT","spawn",3,0,3,0,2,2,2,2,1,0.666666666666667,0.666666666666667,0.666666666666667,0.666666666666667,0,0,3,2,3,2,0.666666666666667,0.666666666666667,2884.31,1315.64,1751.5,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"LSKE","BT","rear",111,0,102,9,70,82,82,82,0.918918918918919,0.630630630630631,0.738738738738739,0.738738738738739,0.738738738738739,0,0,111,70,111,82,0.630630630630631,0.738738738738739,2884.31,1315.64,1751.5,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"LSKE","CH","any",122,0,119,3,103,110,110,110,0.975409836065574,0.844262295081967,0.901639344262295,0.901639344262295,0.901639344262295,41,0,81,68,122,110,0.839506172839506,0.901639344262295,2086.32,1049.22,1167.34,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"LSKE","CH","spawn",24,0,23,1,21,22,22,22,0.958333333333333,0.875,0.916666666666667,0.916666666666667,0.916666666666667,24,0,0,0,24,22,,0.916666666666667,2086.32,1049.22,1167.34,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"LSKE","CH","rear",35,0,35,0,26,30,30,30,1,0.742857142857143,0.857142857142857,0.857142857142857,0.857142857142857,3,0,32,24,35,30,0.75,0.857142857142857,2086.32,1049.22,1167.34,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"MCGR","BT","any",39,0,35,4,33,35,35,35,0.897435897435897,0.846153846153846,0.897435897435897,0.897435897435897,0.897435897435897,0,0,39,33,39,35,0.846153846153846,0.897435897435897,3628.5,1002.82,1460.17,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"MCGR","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,3628.5,1002.82,1460.17,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"MCGR","BT","rear",1,0,1,0,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,3628.5,1002.82,1460.17,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"MCGR","CH","any",40,0,38,2,34,36,36,36,0.95,0.85,0.9,0.9,0.9,17,0,23,18,40,36,0.782608695652174,0.9,2512.15,704.08,935.51,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"MCGR","CH","spawn",5,0,5,0,4,4,4,4,1,0.8,0.8,0.8,0.8,5,0,0,0,5,4,,0.8,2512.15,704.08,935.51,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"MCGR","CH","rear",3,0,3,0,2,2,2,2,1,0.666666666666667,0.666666666666667,0.666666666666667,0.666666666666667,2,0,1,0,3,2,0,0.666666666666667,2512.15,704.08,935.51,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"MESI","BT","any",64,0,64,0,51,60,60,60,1,0.796875,0.9375,0.9375,0.9375,0,0,64,51,64,60,0.796875,0.9375,2767.09,685.99,1126.99,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"MESI","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,2767.09,685.99,1126.99,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"MESI","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,2767.09,685.99,1126.99,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"MESI","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"MESI","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"MESI","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"MFRA","BT","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"MFRA","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"MFRA","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"MFRA","CH","any",2,0,1,1,0,0,0,0,0.5,0,0,0,0,0,0,2,0,2,0,0,0,231.06,96.92,104.06,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"MFRA","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,231.06,96.92,104.06,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"MFRA","CH","rear",2,0,1,1,0,0,0,0,0.5,0,0,0,0,0,0,2,0,2,0,0,0,231.06,96.92,104.06,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"MORK","BT","any",79,0,79,0,70,73,73,73,1,0.886075949367089,0.924050632911392,0.924050632911392,0.924050632911392,0,0,79,70,79,73,0.886075949367089,0.924050632911392,8075.86,2434.23,3397.59,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"MORK","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,8075.86,2434.23,3397.59,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"MORK","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,8075.86,2434.23,3397.59,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"MORK","CH","any",156,0,155,1,141,144,144,144,0.993589743589744,0.903846153846154,0.923076923076923,0.923076923076923,0.923076923076923,96,0,60,49,156,144,0.816666666666667,0.923076923076923,5705.82,1556.47,2225.04,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"MORK","CH","spawn",25,0,25,0,22,22,22,22,1,0.88,0.88,0.88,0.88,25,0,0,0,25,22,,0.88,5705.82,1556.47,2225.04,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"MORK","CH","rear",32,0,31,1,24,25,25,25,0.96875,0.75,0.78125,0.78125,0.78125,15,0,17,9,32,25,0.529411764705882,0.78125,5705.82,1556.47,2225.04,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"MORR","BT","any",357,0,349,8,159,260,260,260,0.977591036414566,0.445378151260504,0.728291316526611,0.728291316526611,0.728291316526611,0,0,357,159,357,260,0.445378151260504,0.728291316526611,4765.64,952.61,1829.89,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"MORR","BT","spawn",23,0,23,0,8,15,15,15,1,0.347826086956522,0.652173913043478,0.652173913043478,0.652173913043478,0,0,23,8,23,15,0.347826086956522,0.652173913043478,4765.64,952.61,1829.89,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"MORR","BT","rear",106,0,102,4,31,64,64,64,0.962264150943396,0.292452830188679,0.60377358490566,0.60377358490566,0.60377358490566,0,0,106,31,106,64,0.292452830188679,0.60377358490566,4765.64,952.61,1829.89,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"MORR","CH","any",41,0,41,0,31,34,34,34,1,0.75609756097561,0.829268292682927,0.829268292682927,0.829268292682927,25,0,16,9,41,34,0.5625,0.829268292682927,3328.25,644.81,880.69,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"MORR","CH","spawn",9,0,9,0,7,7,7,7,1,0.777777777777778,0.777777777777778,0.777777777777778,0.777777777777778,9,0,0,0,9,7,,0.777777777777778,3328.25,644.81,880.69,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"MORR","CH","rear",2,0,2,0,1,2,2,2,1,0.5,1,1,1,0,0,2,1,2,2,0.5,1,3328.25,644.81,880.69,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"MSKE","BT","any",69,0,62,7,46,52,52,52,0.898550724637681,0.666666666666667,0.753623188405797,0.753623188405797,0.753623188405797,0,0,69,46,69,52,0.666666666666667,0.753623188405797,2667.19,921.62,1383.52,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"MSKE","BT","spawn",4,0,3,1,2,2,2,2,0.75,0.5,0.5,0.5,0.5,0,0,4,2,4,2,0.5,0.5,2667.19,921.62,1383.52,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"MSKE","BT","rear",5,0,3,2,0,0,0,0,0.6,0,0,0,0,0,0,5,0,5,0,0,0,2667.19,921.62,1383.52,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"MSKE","CH","any",42,0,40,2,34,36,36,36,0.952380952380952,0.80952380952381,0.857142857142857,0.857142857142857,0.857142857142857,8,0,34,30,42,36,0.88235294117647,0.857142857142857,1506.83,676.03,779.76,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"MSKE","CH","spawn",4,0,3,1,2,2,2,2,0.75,0.5,0.5,0.5,0.5,4,0,0,0,4,2,,0.5,1506.83,676.03,779.76,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"MSKE","CH","rear",2,0,1,1,1,1,1,1,0.5,0.5,0.5,0.5,0.5,2,0,0,0,2,1,,0.5,1506.83,676.03,779.76,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"NARC","BT","any",7,0,7,0,7,7,7,7,1,1,1,1,1,0,0,7,7,7,7,1,1,2994.54,633.18,1162.09,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"NARC","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,2994.54,633.18,1162.09,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"NARC","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,2994.54,633.18,1162.09,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"NARC","CH","any",22,0,22,0,20,21,21,21,1,0.909090909090909,0.954545454545455,0.954545454545455,0.954545454545455,18,0,4,3,22,21,0.75,0.954545454545455,2335,387.57,563.65,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"NARC","CH","spawn",9,0,9,0,9,9,9,9,1,1,1,1,1,9,0,0,0,9,9,,1,2335,387.57,563.65,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"NARC","CH","rear",6,0,6,0,5,5,5,5,1,0.833333333333333,0.833333333333333,0.833333333333333,0.833333333333333,5,0,1,1,6,5,1,0.833333333333333,2335,387.57,563.65,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"NATR","BT","any",57,0,53,4,35,44,44,44,0.929824561403509,0.614035087719298,0.771929824561403,0.771929824561403,0.771929824561403,0,0,57,35,57,44,0.614035087719298,0.771929824561403,8011.09,1516.19,3071.31,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"NATR","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,8011.09,1516.19,3071.31,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"NATR","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,8011.09,1516.19,3071.31,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"NATR","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"NATR","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"NATR","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"NECR","BT","any",12,0,12,0,12,12,12,12,1,1,1,1,1,0,0,12,12,12,12,1,1,6156.77,989.82,1875.61,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"NECR","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,6156.77,989.82,1875.61,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"NECR","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,6156.77,989.82,1875.61,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"NECR","CH","any",101,0,101,0,93,96,96,96,1,0.920792079207921,0.95049504950495,0.95049504950495,0.95049504950495,33,0,68,60,101,96,0.88235294117647,0.95049504950495,5489.42,515.99,1079.18,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"NECR","CH","spawn",9,0,9,0,9,9,9,9,1,1,1,1,1,9,0,0,0,9,9,,1,5489.42,515.99,1079.18,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"NECR","CH","rear",6,0,6,0,4,6,6,6,1,0.666666666666667,1,1,1,1,0,5,3,6,6,0.6,1,5489.42,515.99,1079.18,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"OSPK","BT","any",12,0,12,0,10,12,12,12,1,0.833333333333333,1,1,1,0,0,12,10,12,12,0.833333333333333,1,1881.19,594.62,866.44,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"OSPK","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,1881.19,594.62,866.44,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"OSPK","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,1881.19,594.62,866.44,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"OSPK","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"OSPK","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"OSPK","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"PARA","BT","any",77,0,77,0,62,70,70,70,1,0.805194805194805,0.909090909090909,0.909090909090909,0.909090909090909,0,0,77,62,77,70,0.805194805194805,0.909090909090909,4256.87,718.23,1769.82,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"PARA","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,4256.87,718.23,1769.82,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"PARA","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,4256.87,718.23,1769.82,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"PARA","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"PARA","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"PARA","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"PARS","BT","any",281,0,280,1,233,262,262,262,0.99644128113879,0.829181494661922,0.932384341637011,0.932384341637011,0.932384341637011,0,0,281,233,281,262,0.829181494661922,0.932384341637011,6822.47,1683.36,2575.08,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"PARS","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,6822.47,1683.36,2575.08,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"PARS","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,6822.47,1683.36,2575.08,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"PARS","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"PARS","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"PARS","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"PCEA","BT","any",176,0,176,0,141,163,163,163,1,0.801136363636364,0.926136363636364,0.926136363636364,0.926136363636364,0,0,176,141,176,163,0.801136363636364,0.926136363636364,5002.96,925.72,2023.48,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"PCEA","BT","spawn",1,0,1,0,0,1,1,1,1,0,1,1,1,0,0,1,0,1,1,0,1,5002.96,925.72,2023.48,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"PCEA","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,5002.96,925.72,2023.48,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"PCEA","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"PCEA","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"PCEA","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"PINE","BT","any",249,0,249,0,227,242,242,242,1,0.911646586345382,0.971887550200803,0.971887550200803,0.971887550200803,0,0,249,227,249,242,0.911646586345382,0.971887550200803,5425.97,1643.51,2376.18,213,191,118,153,153,TRUE +"fresh","bcfishpass",100,FALSE,"PINE","BT","spawn",3,0,3,0,3,3,3,3,1,1,1,1,1,0,0,3,3,3,3,1,1,5425.97,1643.51,2376.18,213,191,118,153,153,TRUE +"fresh","bcfishpass",100,FALSE,"PINE","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,5425.97,1643.51,2376.18,213,191,118,153,153,TRUE +"fresh","bcfishpass",100,FALSE,"PINE","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"PINE","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"PINE","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"SALR","BT","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"SALR","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"SALR","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"SALR","CH","any",7,0,7,0,6,6,6,6,1,0.857142857142857,0.857142857142857,0.857142857142857,0.857142857142857,5,0,2,1,7,6,0.5,0.857142857142857,3134.03,206.59,442.55,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"SALR","CH","spawn",4,0,4,0,4,4,4,4,1,1,1,1,1,4,0,0,0,4,4,,1,3134.03,206.59,442.55,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"SALR","CH","rear",2,0,2,0,1,1,1,1,1,0.5,0.5,0.5,0.5,0,0,2,1,2,1,0.5,0.5,3134.03,206.59,442.55,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"SETN","BT","any",180,0,175,5,122,155,155,155,0.972222222222222,0.677777777777778,0.861111111111111,0.861111111111111,0.861111111111111,0,0,180,122,180,155,0.677777777777778,0.861111111111111,2844.64,816.05,1339.7,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"SETN","BT","spawn",3,0,2,1,2,2,2,2,0.666666666666667,0.666666666666667,0.666666666666667,0.666666666666667,0.666666666666667,0,0,3,2,3,2,0.666666666666667,0.666666666666667,2844.64,816.05,1339.7,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"SETN","BT","rear",1,0,1,0,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,2844.64,816.05,1339.7,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"SETN","CH","any",117,0,116,1,111,112,112,112,0.991452991452991,0.948717948717949,0.957264957264957,0.957264957264957,0.957264957264957,106,0,11,5,117,112,0.454545454545455,0.957264957264957,1497.15,537.97,609.35,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"SETN","CH","spawn",17,0,17,0,16,16,16,16,1,0.941176470588235,0.941176470588235,0.941176470588235,0.941176470588235,16,0,1,0,17,16,0,0.941176470588235,1497.15,537.97,609.35,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"SETN","CH","rear",85,0,85,0,85,85,85,85,1,1,1,1,1,83,0,2,2,85,85,1,1,1497.15,537.97,609.35,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"TABR","BT","any",10,0,10,0,4,4,4,4,1,0.4,0.4,0.4,0.4,0,0,10,4,10,4,0.4,0.4,3305.18,677.05,1035.42,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"TABR","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,3305.18,677.05,1035.42,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"TABR","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,3305.18,677.05,1035.42,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"TABR","CH","any",50,0,48,2,32,33,33,33,0.96,0.64,0.66,0.66,0.66,5,0,45,28,50,33,0.622222222222222,0.66,2566.6,410.27,642.88,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"TABR","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,2566.6,410.27,642.88,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"TABR","CH","rear",25,0,24,1,18,18,18,18,0.96,0.72,0.72,0.72,0.72,3,0,22,15,25,18,0.681818181818182,0.72,2566.6,410.27,642.88,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"THOM","BT","any",4,0,4,0,3,4,4,4,1,0.75,1,1,1,0,0,4,3,4,4,0.75,1,1808.68,338.34,563,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"THOM","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,1808.68,338.34,563,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"THOM","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,1808.68,338.34,563,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"THOM","CH","any",29,0,29,0,26,26,26,26,1,0.896551724137931,0.896551724137931,0.896551724137931,0.896551724137931,23,0,6,4,29,26,0.666666666666667,0.896551724137931,513.62,203.23,209.51,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"THOM","CH","spawn",21,0,21,0,20,20,20,20,1,0.952380952380952,0.952380952380952,0.952380952380952,0.952380952380952,21,0,0,0,21,20,,0.952380952380952,513.62,203.23,209.51,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"THOM","CH","rear",4,0,4,0,4,4,4,4,1,1,1,1,1,3,0,1,1,4,4,1,1,513.62,203.23,209.51,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"TOOD","BT","any",36,0,36,0,31,35,35,35,1,0.861111111111111,0.972222222222222,0.972222222222222,0.972222222222222,0,0,36,31,36,35,0.861111111111111,0.972222222222222,4466.1,1118.51,1850.91,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"TOOD","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,4466.1,1118.51,1850.91,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"TOOD","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,4466.1,1118.51,1850.91,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"TOOD","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"TOOD","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"TOOD","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"TWAC","BT","any",2,0,2,0,2,2,2,2,1,1,1,1,1,0,0,2,2,2,2,1,1,1002.12,226.3,393.93,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"TWAC","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,1002.12,226.3,393.93,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"TWAC","BT","rear",1,0,1,0,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1002.12,226.3,393.93,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"TWAC","CH","any",9,0,9,0,8,9,9,9,1,0.888888888888889,1,1,1,0,0,9,8,9,9,0.888888888888889,1,689.03,144.23,173.02,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"TWAC","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,689.03,144.23,173.02,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"TWAC","CH","rear",7,0,7,0,7,7,7,7,1,1,1,1,1,0,0,7,7,7,7,1,1,689.03,144.23,173.02,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"UFRA","BT","any",87,0,87,0,47,59,59,59,1,0.540229885057471,0.67816091954023,0.67816091954023,0.67816091954023,0,0,87,47,87,59,0.540229885057471,0.67816091954023,2107.1,952.9,1239.84,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"UFRA","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,2107.1,952.9,1239.84,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"UFRA","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,2107.1,952.9,1239.84,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"UFRA","CH","any",51,0,51,0,45,46,46,46,1,0.88235294117647,0.901960784313726,0.901960784313726,0.901960784313726,29,0,22,16,51,46,0.727272727272727,0.901960784313726,1243.66,632.76,726.73,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"UFRA","CH","spawn",11,0,11,0,11,11,11,11,1,1,1,1,1,11,0,0,0,11,11,,1,1243.66,632.76,726.73,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"UFRA","CH","rear",6,0,6,0,3,3,3,3,1,0.5,0.5,0.5,0.5,2,0,4,1,6,3,0.25,0.5,1243.66,632.76,726.73,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"UNRS","BT","any",2,0,2,0,2,2,2,2,1,1,1,1,1,0,0,2,2,2,2,1,1,7431.77,644.82,1864.53,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"UNRS","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,7431.77,644.82,1864.53,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"UNRS","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,7431.77,644.82,1864.53,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"UNRS","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"UNRS","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"UNRS","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"UNTH","BT","any",147,0,140,7,89,123,123,123,0.952380952380952,0.605442176870748,0.836734693877551,0.836734693877551,0.836734693877551,0,0,147,89,147,123,0.605442176870748,0.836734693877551,1077.2,544.45,719.29,152,119,68,84,84,TRUE +"fresh","bcfishpass",100,FALSE,"UNTH","BT","spawn",2,0,1,1,1,1,1,1,0.5,0.5,0.5,0.5,0.5,0,0,2,1,2,1,0.5,0.5,1077.2,544.45,719.29,152,119,68,84,84,TRUE +"fresh","bcfishpass",100,FALSE,"UNTH","BT","rear",2,0,2,0,1,1,1,1,1,0.5,0.5,0.5,0.5,0,0,2,1,2,1,0.5,0.5,1077.2,544.45,719.29,152,119,68,84,84,TRUE +"fresh","bcfishpass",100,FALSE,"UNTH","CH","any",44,0,41,3,32,34,34,34,0.931818181818182,0.727272727272727,0.772727272727273,0.772727272727273,0.772727272727273,21,0,23,13,44,34,0.565217391304348,0.772727272727273,760.6,429.83,470.93,171,113,74,81,81,TRUE +"fresh","bcfishpass",100,FALSE,"UNTH","CH","spawn",14,0,14,0,12,12,12,12,1,0.857142857142857,0.857142857142857,0.857142857142857,0.857142857142857,14,0,0,0,14,12,,0.857142857142857,760.6,429.83,470.93,171,113,74,81,81,TRUE +"fresh","bcfishpass",100,FALSE,"UNTH","CH","rear",21,0,21,0,17,17,17,17,1,0.80952380952381,0.80952380952381,0.80952380952381,0.80952380952381,6,0,15,11,21,17,0.733333333333333,0.80952380952381,760.6,429.83,470.93,171,113,74,81,81,TRUE +"fresh","bcfishpass",100,FALSE,"UOMI","BT","any",82,0,82,0,46,54,54,54,1,0.560975609756098,0.658536585365854,0.658536585365854,0.658536585365854,0,0,82,46,82,54,0.560975609756098,0.658536585365854,3703.16,907.88,1459.1,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"UOMI","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,3703.16,907.88,1459.1,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"UOMI","BT","rear",22,0,22,0,8,10,10,10,1,0.363636363636364,0.454545454545455,0.454545454545455,0.454545454545455,0,0,22,8,22,10,0.363636363636364,0.454545454545455,3703.16,907.88,1459.1,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"UOMI","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"UOMI","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"UOMI","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"UPCE","BT","any",153,0,152,1,138,139,139,139,0.993464052287582,0.901960784313726,0.908496732026144,0.908496732026144,0.908496732026144,0,0,153,138,153,139,0.901960784313726,0.908496732026144,5261.16,1657.29,2320.94,570,556,442,485,485,TRUE +"fresh","bcfishpass",100,FALSE,"UPCE","BT","spawn",1,0,1,0,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,5261.16,1657.29,2320.94,570,556,442,485,485,TRUE +"fresh","bcfishpass",100,FALSE,"UPCE","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,5261.16,1657.29,2320.94,570,556,442,485,485,TRUE +"fresh","bcfishpass",100,FALSE,"UPCE","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"UPCE","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"UPCE","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"USKE","BT","any",32,0,32,0,30,31,31,31,1,0.9375,0.96875,0.96875,0.96875,0,0,32,30,32,31,0.9375,0.96875,3451.92,878.03,1438.52,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"USKE","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,3451.92,878.03,1438.52,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"USKE","BT","rear",1,0,1,0,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,3451.92,878.03,1438.52,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"USKE","CH","any",8,0,8,0,8,8,8,8,1,1,1,1,1,0,0,8,8,8,8,1,1,1518.35,498.83,593.41,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"USKE","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,1518.35,498.83,593.41,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"USKE","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,1518.35,498.83,593.41,,,,,,FALSE +"fresh","bcfishpass",100,FALSE,"UTRE","BT","any",6,0,6,0,4,6,6,6,1,0.666666666666667,1,1,1,0,0,6,4,6,6,0.666666666666667,1,1851.52,204.25,585.34,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"UTRE","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,1851.52,204.25,585.34,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"UTRE","BT","rear",1,0,1,0,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1851.52,204.25,585.34,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"UTRE","CH","any",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"UTRE","CH","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"UTRE","CH","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,,,,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"WILL","BT","any",54,0,54,0,41,50,50,50,1,0.759259259259259,0.925925925925926,0.925925925925926,0.925925925925926,0,0,54,41,54,50,0.759259259259259,0.925925925925926,4515.45,1052.18,1690.35,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"WILL","BT","spawn",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,4515.45,1052.18,1690.35,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"WILL","BT","rear",0,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,,,4515.45,1052.18,1690.35,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"WILL","CH","any",58,0,58,0,54,55,55,55,1,0.931034482758621,0.948275862068966,0.948275862068966,0.948275862068966,40,0,18,15,58,55,0.833333333333333,0.948275862068966,3537.67,630.48,1029.73,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"WILL","CH","spawn",3,0,3,0,2,2,2,2,1,0.666666666666667,0.666666666666667,0.666666666666667,0.666666666666667,3,0,0,0,3,2,,0.666666666666667,3537.67,630.48,1029.73,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"WILL","CH","rear",42,0,42,0,40,41,41,41,1,0.952380952380952,0.976190476190476,0.976190476190476,0.976190476190476,30,0,12,10,42,41,0.833333333333333,0.976190476190476,3537.67,630.48,1029.73,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"ZYMO","BT","any",280,0,244,36,128,188,188,188,0.871428571428571,0.457142857142857,0.671428571428571,0.671428571428571,0.671428571428571,0,0,280,128,280,188,0.457142857142857,0.671428571428571,1840.06,575.42,863.2,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"ZYMO","BT","spawn",14,0,12,2,7,9,9,9,0.857142857142857,0.5,0.642857142857143,0.642857142857143,0.642857142857143,0,0,14,7,14,9,0.5,0.642857142857143,1840.06,575.42,863.2,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"ZYMO","BT","rear",147,0,123,24,49,79,79,79,0.836734693877551,0.333333333333333,0.537414965986395,0.537414965986395,0.537414965986395,0,0,147,49,147,79,0.333333333333333,0.537414965986395,1840.06,575.42,863.2,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"ZYMO","CH","any",21,0,19,2,14,16,16,16,0.904761904761905,0.666666666666667,0.761904761904762,0.761904761904762,0.761904761904762,8,0,13,7,21,16,0.538461538461538,0.761904761904762,1200.73,462.91,539.94,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"ZYMO","CH","spawn",8,0,7,1,7,7,7,7,0.875,0.875,0.875,0.875,0.875,8,0,0,0,8,7,,0.875,1200.73,462.91,539.94,,,,,,TRUE +"fresh","bcfishpass",100,FALSE,"ZYMO","CH","rear",5,0,4,1,0,1,1,1,0.8,0,0.2,0.2,0.2,0,0,5,0,5,1,0,0.2,1200.73,462.91,539.94,,,,,,TRUE diff --git a/data-raw/logs/habitat_validate_283/totals.csv b/data-raw/logs/habitat_validate_283/totals.csv new file mode 100644 index 00000000..cc8f42f6 --- /dev/null +++ b/data-raw/logs/habitat_validate_283/totals.csv @@ -0,0 +1,25 @@ +"schema","config_name","buffer_m","species_code","stage","n_obs","n_unattached","n_accessible","n_inaccessible","n_spawning","n_rearing","n_rearing_any","n_habitat","n_in_uhc_spawn","n_in_uhc_rear","n_obs_outside_uhc_spawn","n_spawning_outside_uhc","n_obs_outside_uhc_rear","n_rearing_any_outside_uhc","n_absence","n_absence_accessible","n_absence_spawning","n_absence_rearing","n_absence_rearing_any","accessible_km","spawning_km","rearing_km","n_wsg","n_wsg_logged","share_accessible","share_spawning","share_rearing","share_rearing_any","share_habitat","share_spawning_outside_uhc","share_rearing_any_outside_uhc" +"fresh","bcfishpass",0,"BT","any",5708,0,5526,182,3847,4784,4784,4786,0,0,5708,3847,5708,4784,1218,1017,704,831,831,219264.85,52856.04,86470.4,59,39,0.968114926419061,0.673966362999299,0.83812193412754,0.83812193412754,0.838472319551507,0.673966362999299,0.83812193412754 +"fresh","bcfishpass",0,"BT","rear",1052,0,963,89,442,670,670,670,0,0,1052,442,1052,670,1218,1017,704,831,831,219264.85,52856.04,86470.4,59,39,0.915399239543726,0.420152091254753,0.636882129277566,0.636882129277566,0.636882129277566,0.420152091254753,0.636882129277566 +"fresh","bcfishpass",0,"BT","spawn",86,0,80,6,41,61,61,61,0,0,86,41,86,61,1218,1017,704,831,831,219264.85,52856.04,86470.4,59,39,0.930232558139535,0.476744186046512,0.709302325581395,0.709302325581395,0.709302325581395,0.476744186046512,0.709302325581395 +"fresh","bcfishpass",0,"CH","any",1999,0,1950,49,1637,1722,1722,1722,750,0,1249,951,1999,1722,481,249,147,165,165,78257.18,18104.08,24659.63,59,39,0.975487743871936,0.818909454727364,0.861430715357679,0.861430715357679,0.861430715357679,0.761409127301842,0.861430715357679 +"fresh","bcfishpass",0,"CH","rear",615,0,600,15,479,519,519,519,213,0,402,272,615,519,481,249,147,165,165,78257.18,18104.08,24659.63,59,39,0.975609756097561,0.778861788617886,0.84390243902439,0.84390243902439,0.84390243902439,0.676616915422886,0.84390243902439 +"fresh","bcfishpass",0,"CH","spawn",322,0,315,7,274,279,279,279,314,0,8,4,322,279,481,249,147,165,165,78257.18,18104.08,24659.63,59,39,0.978260869565217,0.850931677018634,0.866459627329193,0.866459627329193,0.866459627329193,0.5,0.866459627329193 +"fresh","bcfishpass",100,"BT","any",5708,0,5526,182,3996,4825,4825,4827,0,0,5708,3996,5708,4825,1218,1017,713,833,833,219264.85,52856.04,86470.4,59,39,0.968114926419061,0.700070077084793,0.845304835318851,0.845304835318851,0.845655220742817,0.700070077084793,0.845304835318851 +"fresh","bcfishpass",100,"BT","rear",1052,0,963,89,469,679,679,679,0,0,1052,469,1052,679,1218,1017,713,833,833,219264.85,52856.04,86470.4,59,39,0.915399239543726,0.445817490494297,0.645437262357414,0.645437262357414,0.645437262357414,0.445817490494297,0.645437262357414 +"fresh","bcfishpass",100,"BT","spawn",86,0,80,6,43,61,61,61,0,0,86,43,86,61,1218,1017,713,833,833,219264.85,52856.04,86470.4,59,39,0.930232558139535,0.5,0.709302325581395,0.709302325581395,0.709302325581395,0.5,0.709302325581395 +"fresh","bcfishpass",100,"CH","any",1999,0,1950,49,1672,1753,1753,1753,775,0,1224,958,1999,1753,481,249,149,167,167,78257.18,18104.08,24659.63,59,39,0.975487743871936,0.836418209104552,0.876938469234617,0.876938469234617,0.876938469234617,0.782679738562091,0.876938469234617 +"fresh","bcfishpass",100,"CH","rear",615,0,600,15,487,528,528,528,222,0,393,273,615,528,481,249,149,167,167,78257.18,18104.08,24659.63,59,39,0.975609756097561,0.791869918699187,0.858536585365854,0.858536585365854,0.858536585365854,0.694656488549618,0.858536585365854 +"fresh","bcfishpass",100,"CH","spawn",322,0,315,7,281,285,285,285,314,0,8,5,322,285,481,249,149,167,167,78257.18,18104.08,24659.63,59,39,0.978260869565217,0.872670807453416,0.885093167701863,0.885093167701863,0.885093167701863,0.625,0.885093167701863 +"fresh_default","default",0,"BT","any",5104,0,5061,43,3287,4107,4207,4207,0,0,5104,3287,5104,4207,858,814,587,635,686,219134.6,49453.94,78825.1,55,4,0.991575235109718,0.644004702194357,0.804663009404389,0.824255485893417,0.824255485893417,0.644004702194357,0.824255485893417 +"fresh_default","default",0,"BT","rear",1053,0,1040,13,467,694,700,700,0,0,1053,467,1053,700,858,814,587,635,686,219134.6,49453.94,78825.1,55,4,0.987654320987654,0.44349477682811,0.659069325735992,0.664767331433998,0.664767331433998,0.44349477682811,0.664767331433998 +"fresh_default","default",0,"BT","spawn",82,0,81,1,38,58,60,60,0,0,82,38,82,60,858,814,587,635,686,219134.6,49453.94,78825.1,55,4,0.98780487804878,0.463414634146341,0.707317073170732,0.731707317073171,0.731707317073171,0.463414634146341,0.731707317073171 +"fresh_default","default",0,"CH","any",1745,0,1712,33,1487,1528,1549,1577,636,0,1109,852,1745,1549,68,25,11,13,15,74890.81,16236.35,27953.21,55,4,0.9810888252149,0.85214899713467,0.875644699140401,0.887679083094556,0.903724928366762,0.768259693417493,0.887679083094556 +"fresh_default","default",0,"CH","rear",512,0,502,10,397,434,434,439,176,0,336,221,512,434,68,25,11,13,15,74890.81,16236.35,27953.21,55,4,0.98046875,0.775390625,0.84765625,0.84765625,0.857421875,0.657738095238095,0.84765625 +"fresh_default","default",0,"CH","spawn",250,0,244,6,246,220,229,247,242,0,8,4,250,229,68,25,11,13,15,74890.81,16236.35,27953.21,55,4,0.976,0.984,0.88,0.916,0.988,0.5,0.916 +"fresh_default","default",100,"BT","any",5104,0,5061,43,3427,4191,4264,4264,0,0,5104,3427,5104,4264,858,814,591,637,687,219134.6,49453.94,78825.1,55,4,0.991575235109718,0.671434169278997,0.821120689655172,0.835423197492163,0.835423197492163,0.671434169278997,0.835423197492163 +"fresh_default","default",100,"BT","rear",1053,0,1040,13,496,711,715,715,0,0,1053,496,1053,715,858,814,591,637,687,219134.6,49453.94,78825.1,55,4,0.987654320987654,0.471035137701804,0.675213675213675,0.679012345679012,0.679012345679012,0.471035137701804,0.679012345679012 +"fresh_default","default",100,"BT","spawn",82,0,81,1,40,59,61,61,0,0,82,40,82,61,858,814,591,637,687,219134.6,49453.94,78825.1,55,4,0.98780487804878,0.48780487804878,0.719512195121951,0.74390243902439,0.74390243902439,0.48780487804878,0.74390243902439 +"fresh_default","default",100,"CH","any",1745,0,1712,33,1513,1551,1571,1596,654,0,1091,862,1745,1571,68,25,11,13,15,74890.81,16236.35,27953.21,55,4,0.9810888252149,0.867048710601719,0.888825214899713,0.900286532951289,0.914613180515759,0.790100824931256,0.900286532951289 +"fresh_default","default",100,"CH","rear",512,0,502,10,407,441,441,445,182,0,330,225,512,441,68,25,11,13,15,74890.81,16236.35,27953.21,55,4,0.98046875,0.794921875,0.861328125,0.861328125,0.869140625,0.681818181818182,0.861328125 +"fresh_default","default",100,"CH","spawn",250,0,244,6,247,223,232,248,242,0,8,5,250,232,68,25,11,13,15,74890.81,16236.35,27953.21,55,4,0.976,0.988,0.892,0.928,0.992,0.625,0.928 diff --git a/data-raw/logs/habitat_validate_283/totals_shared.csv b/data-raw/logs/habitat_validate_283/totals_shared.csv new file mode 100644 index 00000000..7cf617e4 --- /dev/null +++ b/data-raw/logs/habitat_validate_283/totals_shared.csv @@ -0,0 +1,25 @@ +"schema","config_name","buffer_m","species_code","stage","n_obs","n_unattached","n_accessible","n_inaccessible","n_spawning","n_rearing","n_rearing_any","n_habitat","n_in_uhc_spawn","n_in_uhc_rear","n_obs_outside_uhc_spawn","n_spawning_outside_uhc","n_obs_outside_uhc_rear","n_rearing_any_outside_uhc","n_absence","n_absence_accessible","n_absence_spawning","n_absence_rearing","n_absence_rearing_any","accessible_km","spawning_km","rearing_km","n_wsg","n_wsg_logged","share_accessible","share_spawning","share_rearing","share_rearing_any","share_habitat","share_spawning_outside_uhc","share_rearing_any_outside_uhc" +"fresh","bcfishpass",0,"BT","any",4600,0,4438,162,2966,3759,3759,3761,0,0,4600,2966,4600,3759,858,812,587,678,678,197434.02,46511.57,76872.29,51,33,0.964782608695652,0.644782608695652,0.817173913043478,0.817173913043478,0.817608695652174,0.644782608695652,0.817173913043478 +"fresh","bcfishpass",0,"BT","rear",1047,0,958,89,438,666,666,666,0,0,1047,438,1047,666,858,812,587,678,678,197434.02,46511.57,76872.29,51,33,0.914995224450812,0.418338108882521,0.636103151862464,0.636103151862464,0.636103151862464,0.418338108882521,0.636103151862464 +"fresh","bcfishpass",0,"BT","spawn",81,0,76,5,37,57,57,57,0,0,81,37,81,57,858,812,587,678,678,197434.02,46511.57,76872.29,51,33,0.938271604938272,0.45679012345679,0.703703703703704,0.703703703703704,0.703703703703704,0.45679012345679,0.703703703703704 +"fresh","bcfishpass",0,"CH","any",1734,0,1697,37,1423,1501,1501,1501,629,0,1105,848,1734,1501,68,25,11,12,12,70816.66,15640.34,21570.26,51,33,0.978662053056517,0.820645905420992,0.86562860438293,0.86562860438293,0.86562860438293,0.767420814479638,0.86562860438293 +"fresh","bcfishpass",0,"CH","rear",510,0,498,12,390,429,429,429,175,0,335,220,510,429,68,25,11,12,12,70816.66,15640.34,21570.26,51,33,0.976470588235294,0.764705882352941,0.841176470588235,0.841176470588235,0.841176470588235,0.656716417910448,0.841176470588235 +"fresh","bcfishpass",0,"CH","spawn",245,0,239,6,207,212,212,212,237,0,8,4,245,212,68,25,11,12,12,70816.66,15640.34,21570.26,51,33,0.975510204081633,0.844897959183673,0.86530612244898,0.86530612244898,0.86530612244898,0.5,0.86530612244898 +"fresh","bcfishpass",100,"BT","any",4600,0,4438,162,3084,3792,3792,3794,0,0,4600,3084,4600,3792,858,812,591,678,678,197434.02,46511.57,76872.29,51,33,0.964782608695652,0.670434782608696,0.824347826086957,0.824347826086957,0.824782608695652,0.670434782608696,0.824347826086957 +"fresh","bcfishpass",100,"BT","rear",1047,0,958,89,465,675,675,675,0,0,1047,465,1047,675,858,812,591,678,678,197434.02,46511.57,76872.29,51,33,0.914995224450812,0.444126074498567,0.644699140401146,0.644699140401146,0.644699140401146,0.444126074498567,0.644699140401146 +"fresh","bcfishpass",100,"BT","spawn",81,0,76,5,39,57,57,57,0,0,81,39,81,57,858,812,591,678,678,197434.02,46511.57,76872.29,51,33,0.938271604938272,0.481481481481481,0.703703703703704,0.703703703703704,0.703703703703704,0.481481481481481,0.703703703703704 +"fresh","bcfishpass",100,"CH","any",1734,0,1697,37,1453,1526,1526,1526,647,0,1087,857,1734,1526,68,25,11,12,12,70816.66,15640.34,21570.26,51,33,0.978662053056517,0.837946943483276,0.880046136101499,0.880046136101499,0.880046136101499,0.788408463661454,0.880046136101499 +"fresh","bcfishpass",100,"CH","rear",510,0,498,12,398,436,436,436,181,0,329,224,510,436,68,25,11,12,12,70816.66,15640.34,21570.26,51,33,0.976470588235294,0.780392156862745,0.854901960784314,0.854901960784314,0.854901960784314,0.680851063829787,0.854901960784314 +"fresh","bcfishpass",100,"CH","spawn",245,0,239,6,213,216,216,216,237,0,8,5,245,216,68,25,11,12,12,70816.66,15640.34,21570.26,51,33,0.975510204081633,0.869387755102041,0.881632653061225,0.881632653061225,0.881632653061225,0.625,0.881632653061225 +"fresh_default","default",0,"BT","any",4600,0,4564,36,3009,3729,3809,3809,0,0,4600,3009,4600,3809,858,814,587,635,686,210822,47098.83,75280.2,51,1,0.992173913043478,0.654130434782609,0.810652173913043,0.82804347826087,0.82804347826087,0.654130434782609,0.82804347826087 +"fresh_default","default",0,"BT","rear",1047,0,1034,13,464,690,696,696,0,0,1047,464,1047,696,858,814,587,635,686,210822,47098.83,75280.2,51,1,0.987583572110793,0.443170964660936,0.659025787965616,0.664756446991404,0.664756446991404,0.443170964660936,0.664756446991404 +"fresh_default","default",0,"BT","spawn",81,0,80,1,37,57,59,59,0,0,81,37,81,59,858,814,587,635,686,210822,47098.83,75280.2,51,1,0.987654320987654,0.45679012345679,0.703703703703704,0.728395061728395,0.728395061728395,0.45679012345679,0.728395061728395 +"fresh_default","default",0,"CH","any",1734,0,1701,33,1478,1520,1539,1567,629,0,1105,850,1734,1539,68,25,11,13,15,74048.75,15958.82,27601.52,51,1,0.980968858131488,0.852364475201845,0.876585928489043,0.887543252595156,0.903690888119954,0.769230769230769,0.887543252595156 +"fresh_default","default",0,"CH","rear",510,0,500,10,395,432,432,437,175,0,335,220,510,432,68,25,11,13,15,74048.75,15958.82,27601.52,51,1,0.980392156862745,0.774509803921569,0.847058823529412,0.847058823529412,0.856862745098039,0.656716417910448,0.847058823529412 +"fresh_default","default",0,"CH","spawn",245,0,239,6,241,216,224,242,237,0,8,4,245,224,68,25,11,13,15,74048.75,15958.82,27601.52,51,1,0.975510204081633,0.983673469387755,0.881632653061225,0.914285714285714,0.987755102040816,0.5,0.914285714285714 +"fresh_default","default",100,"BT","any",4600,0,4564,36,3129,3798,3855,3855,0,0,4600,3129,4600,3855,858,814,591,637,687,210822,47098.83,75280.2,51,1,0.992173913043478,0.680217391304348,0.825652173913043,0.83804347826087,0.83804347826087,0.680217391304348,0.83804347826087 +"fresh_default","default",100,"BT","rear",1047,0,1034,13,493,707,711,711,0,0,1047,493,1047,711,858,814,591,637,687,210822,47098.83,75280.2,51,1,0.987583572110793,0.470869149952244,0.675262655205349,0.679083094555874,0.679083094555874,0.470869149952244,0.679083094555874 +"fresh_default","default",100,"BT","spawn",81,0,80,1,39,58,60,60,0,0,81,39,81,60,858,814,591,637,687,210822,47098.83,75280.2,51,1,0.987654320987654,0.481481481481481,0.716049382716049,0.740740740740741,0.740740740740741,0.481481481481481,0.740740740740741 +"fresh_default","default",100,"CH","any",1734,0,1701,33,1503,1542,1561,1586,647,0,1087,859,1734,1561,68,25,11,13,15,74048.75,15958.82,27601.52,51,1,0.980968858131488,0.866782006920415,0.889273356401384,0.900230680507497,0.914648212226067,0.790248390064397,0.900230680507497 +"fresh_default","default",100,"CH","rear",510,0,500,10,405,439,439,443,181,0,329,224,510,439,68,25,11,13,15,74048.75,15958.82,27601.52,51,1,0.980392156862745,0.794117647058823,0.86078431372549,0.86078431372549,0.868627450980392,0.680851063829787,0.86078431372549 +"fresh_default","default",100,"CH","spawn",245,0,239,6,242,219,227,243,237,0,8,5,245,227,68,25,11,13,15,74048.75,15958.82,27601.52,51,1,0.975510204081633,0.987755102040816,0.893877551020408,0.926530612244898,0.991836734693878,0.625,0.926530612244898 diff --git a/man/lnk_access.Rd b/man/lnk_access.Rd index a7a5fe97..8e579a21 100644 --- a/man/lnk_access.Rd +++ b/man/lnk_access.Rd @@ -139,6 +139,7 @@ Other compare: \code{\link{lnk_compare_mapping_code}()}, \code{\link{lnk_compare_rollup}()}, \code{\link{lnk_compare_wsg}()}, +\code{\link{lnk_habitat_validate}()}, \code{\link{lnk_log_read}()}, \code{\link{lnk_mapping_code}()}, \code{\link{lnk_parity_annotate}()}, diff --git a/man/lnk_compare_mapping_code.Rd b/man/lnk_compare_mapping_code.Rd index a4785d05..564042da 100644 --- a/man/lnk_compare_mapping_code.Rd +++ b/man/lnk_compare_mapping_code.Rd @@ -102,6 +102,7 @@ Other compare: \code{\link{lnk_access}()}, \code{\link{lnk_compare_rollup}()}, \code{\link{lnk_compare_wsg}()}, +\code{\link{lnk_habitat_validate}()}, \code{\link{lnk_log_read}()}, \code{\link{lnk_mapping_code}()}, \code{\link{lnk_parity_annotate}()}, diff --git a/man/lnk_compare_rollup.Rd b/man/lnk_compare_rollup.Rd index f3ee6214..5389d5b9 100644 --- a/man/lnk_compare_rollup.Rd +++ b/man/lnk_compare_rollup.Rd @@ -96,6 +96,7 @@ Other compare: \code{\link{lnk_access}()}, \code{\link{lnk_compare_mapping_code}()}, \code{\link{lnk_compare_wsg}()}, +\code{\link{lnk_habitat_validate}()}, \code{\link{lnk_log_read}()}, \code{\link{lnk_mapping_code}()}, \code{\link{lnk_parity_annotate}()}, diff --git a/man/lnk_compare_wsg.Rd b/man/lnk_compare_wsg.Rd index 49542890..0f5c2338 100644 --- a/man/lnk_compare_wsg.Rd +++ b/man/lnk_compare_wsg.Rd @@ -152,6 +152,7 @@ Other compare: \code{\link{lnk_access}()}, \code{\link{lnk_compare_mapping_code}()}, \code{\link{lnk_compare_rollup}()}, +\code{\link{lnk_habitat_validate}()}, \code{\link{lnk_log_read}()}, \code{\link{lnk_mapping_code}()}, \code{\link{lnk_parity_annotate}()}, diff --git a/man/lnk_habitat_validate.Rd b/man/lnk_habitat_validate.Rd new file mode 100644 index 00000000..7ed839a1 --- /dev/null +++ b/man/lnk_habitat_validate.Rd @@ -0,0 +1,260 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/lnk_habitat_validate.R +\name{lnk_habitat_validate} +\alias{lnk_habitat_validate} +\title{Validate modelled habitat against fish observations} +\usage{ +lnk_habitat_validate( + conn, + aoi, + cfg, + loaded, + species, + schema, + observations = "bcfishobs.observations", + species_obs = list(BT = c("BT", "DV")), + match_types = c("A", "B"), + source_exclude = "Releases Database", + buffer_m = 0, + absences = NULL +) +} +\arguments{ +\item{conn}{A \link[DBI:DBIConnection-class]{DBI::DBIConnection} object (from \code{\link[=lnk_db_conn]{lnk_db_conn()}}).} + +\item{aoi}{Character vector of watershed group codes. Each must be +persisted in \code{schema}, with \code{streams_access} built (fails loud +otherwise).} + +\item{cfg}{An \code{lnk_config} object from \code{\link[=lnk_config]{lnk_config()}}: the bundle that +produced \code{schema}. Supplies the rules and thresholds for the miss +reasons. Where \verb{.log} records a WSG's run, its \code{config_name} +must be \code{cfg$name}.} + +\item{loaded}{Named list from \code{\link[=lnk_load_overrides]{lnk_load_overrides()}}. Uses +\code{observation_exclusions}, \code{wsg_species_presence}, \code{parameters_fresh} +and (when present) \code{user_habitat_classification}.} + +\item{species}{Character vector of model species codes (e.g. +\code{c("CH", "BT")}). Each must name \verb{.streams_habitat_} and +\verb{.streams_access.access_}.} + +\item{schema}{Persist schema to score. Required: a bundle's +\code{pipeline.schema} is not a reliable guide to which schema it built +(\code{default} declares \code{fresh}, which the \code{bcfishpass} bundle writes).} + +\item{observations}{Fish records: a schema-qualified table name (default +\code{"bcfishobs.observations"}) or a data frame. Required columns: +\code{species_code}, \code{watershed_group_code}, \code{blue_line_key}, +\code{downstream_route_measure}, and for a table \code{observation_key}. A data +frame without \code{observation_key} gets its own row numbers as keys, and +then \code{loaded$observation_exclusions} must be \code{NULL} (the exclusions are +matched on that key). Species and WSG codes are compared upper-cased +and trimmed. Optional: \code{match_type}, \code{source}, \code{is_spawn}, \code{is_rear} +(logical, 0/1 or t/true/yes), \code{activity_code}, \code{activity}, +\code{life_stage}.} + +\item{species_obs}{Named list mapping a model species to the observation +species codes that count as it. Species not named map to themselves. +Default pools DV records with BT (\code{list(BT = c("BT", "DV"))}).} + +\item{match_types}{Character vector of \code{match_type} classes (first +letter) to keep, or \code{NULL} for no match-type filter. Default +\code{c("A", "B")}.} + +\item{source_exclude}{Character vector of \code{source} prefixes to drop, or +\code{NULL} for none. Default \code{"Releases Database"}.} + +\item{buffer_m}{Numeric scalar >= 0. Upstream distance within which +modelled habitat still captures an observation. Default 0.} + +\item{absences}{Optional data frame of sites sampled with the species +not caught: \code{watershed_group_code}, \code{blue_line_key}, +\code{downstream_route_measure}, \code{species_code} (model species). The caller +locates them on the network. Rows for a species not present in the WSG +are dropped. Absences are captured the same way observations are, +\code{buffer_m} included, so the two rates stay comparable. A WSG x species +with no rows in \code{absences} reports \code{NA} (not assessed), so pass only +sites from the areas that were surveyed. Default \code{NULL}.} +} +\value{ +A list of two data frames: +\itemize{ +\item \code{summary}: one row per \code{watershed_group_code} x \code{species_code} x +\code{stage} (\code{any}, \code{spawn}, \code{rear}), with \code{schema}, \code{config_name}, +\code{buffer_m}, \code{overlay_applied}, \code{run_logged} (whether \verb{.log} +records the WSG), \code{n_obs} (locations on a segment), \code{n_unattached}, +\code{n_accessible}, \code{n_inaccessible}, \code{n_spawning}, \code{n_rearing}, +\code{n_rearing_any}, \code{n_habitat} (spawning or any rearing), the matching +\verb{share_*} (of \code{n_obs}; \code{NA} when \code{n_obs} is 0), \code{n_in_uhc_spawn}, +\code{n_in_uhc_rear}, the \verb{*_outside_uhc} counts and shares, and cost +\code{accessible_km}, \code{spawning_km}, \code{rearing_km} from \code{\link[=lnk_rollup_wsg]{lnk_rollup_wsg()}}. +With \code{absences}, also \code{n_absence}, \code{n_absence_accessible}, +\code{n_absence_spawning}, \code{n_absence_rearing} (stream) and +\code{n_absence_rearing_any} (the same on every stage). +\item \code{observations}: one row per retained location, with its segment's +\code{gradient}, \code{channel_width}, \code{channel_width_source}, \code{edge_type}, +\code{stream_order}, \code{waterbody_type}, \code{access}, the capture flags, +\code{in_uhc_spawn}, \code{in_uhc_rear}, the predicate results, and the two miss +reasons. +} +} +\description{ +Scores a persisted run against fish observations rather than against +another model. For each watershed group and species it reports how many +observations land on modelled accessible, spawning and rearing segments +(\strong{capture}), how much habitat the run models to achieve that (\strong{cost}, +so capture cannot be bought by calling everything habitat), and, for each +observation outside modelled habitat, what excluded its segment +(\strong{misses} — the direct evidence for which threshold is binding). Sites +sampled with the species not caught can be supplied as \strong{absences}, a +false-positive check. +} +\details{ +Runs over two persist schemas (two config bundles) stack row-wise, so +bundles can be diffed on the same observations. +} +\section{Which observations count}{ + +\code{observations} is any source of fish records located on the FWA network: +\code{bcfishobs.observations} by default, or another table, or a data frame of +your own. From it, keeping: +\itemize{ +\item records not flagged \code{data_error} or \code{release_exclude} in +\code{loaded$observation_exclusions} (matched on \code{observation_key}), and not +from a \code{source} starting with any of \code{source_exclude} (by default the +\verb{Releases Database}: stocked fish are not evidence of habitat use); +\item observation species admitted for the model species by \code{species_obs}, +and only in WSGs where \code{loaded$wsg_species_presence} marks the model +species present (so DV records count as BT only where BT is present); +\item \code{match_type} classes in \code{match_types} (default A/B, bcfishobs's matches +to a stream within 100 m; C, 100-500 m from a stream, and the D/E +waterbody matches are left out); +\item one per species x \code{blue_line_key} x metre (repeat visits are one +location; a location is spawn- or rear-staged if any record there is). +} + +Stage comes from \code{is_spawn} / \code{is_rear} where the source carries them, +and otherwise from bcfishobs's \code{activity_code}, \code{activity} and +\code{life_stage} wording; a record with neither counts in the \code{any} stage only. + +A filter whose column the source does not have is an error, not a silent +pass: set \code{match_types = NULL} or \code{source_exclude = NULL} for a source +without \code{match_type} or \code{source}. Pass a subset to score held-out records +(by project, date or WSG). +} + +\section{Which segment an observation is on}{ + +The pipeline breaks streams at observations, so most points sit on a +segment boundary. The segment \strong{starting} within 1 m of the point (the +upstream one) is used, else the one containing it. A location with no +segment is counted in \code{n_unattached} and nowhere else. All joins between +\code{streams}, \code{streams_access} and \verb{streams_habitat_} are on the full key +\verb{(id_segment, watershed_group_code)}: \code{id_segment} repeats across groups. + +\code{buffer_m > 0} also counts an observation as captured when modelled +habitat starts within \code{buffer_m} metres \strong{upstream} along the same +\code{blue_line_key} and WSG, because observation points often mark the +downstream end of a sampled site. It follows the mainstem only (never a +tributary), stops at the WSG boundary, and is measured along the stream, +so it does not depend on segmentation. Accessibility is always the point's +own segment. Near lakes the buffer reaches connector flow lines, which +are rearing without any threshold test, so buffered rearing capture there +says nothing about thresholds. +} + +\section{Reading the numbers}{ + +\itemize{ +\item \strong{Accessible} is \verb{streams_access.access_ IN (1, 2)}, the definition +\code{\link[=lnk_rollup_wsg]{lnk_rollup_wsg()}}'s \code{accessible_km} uses, so capture and cost agree. +The spawning and rearing flags are gated by the pipeline's own +\code{streams_habitat.accessible}, which differs slightly, so +\code{share_spawning} is not strictly a subset of \code{share_accessible}. +\item \strong{Accessible capture is partly circular.} Observations are pipeline +inputs: they lift barriers (\code{observation_threshold} in +\code{parameters_fresh.csv}), they are break points, and where +\code{apply_habitat_overlay} is on, \code{user_habitat_classification} forces +habitat. Spawning and rearing capture is the score. +\code{n_in_uhc_spawn} / \code{n_in_uhc_rear} count locations inside a +\code{user_habitat_classification} reach confirming that habitat type for the +species (indicator 1) anywhere in the window capture reads (the +point's segment up to \code{buffer_m} upstream); with \code{overlay_applied} TRUE the +segments wholly +inside such a reach are forced to habitat, so most of those locations are +captured by construction. \code{share_spawning_outside_uhc} and +\code{share_rearing_any_outside_uhc} repeat the capture without them, which is +the part of the score the observations did not decide. +\item \strong{Thresholds set from these observations score in-sample.} A cutoff +calibrated on the same records (e.g. a use quantile) is partly +guaranteed its capture; hold records out to score it fairly. +\item \code{rearing} is stream rearing, the flag thresholds govern and that +\code{rearing_km} costs. \code{rearing_any} adds lake and wetland rearing. +\item Known biases, reported rather than corrected: observation points often +sit at the downstream end of a site (see \code{buffer_m}); sampling clusters +near road access; and fish are only observed where they have access, so +observed gradients are cut off at the access limit. +} +} + +\section{Miss reasons}{ + +\code{miss_reason_spawn} keys on \code{spawning} and \code{miss_reason_rear} on +\code{rearing_any}, so a location on lake or wetland rearing is captured for +the rear reason (compare them with \code{n_rearing_any}, not \code{n_rearing}). +Both re-evaluate the bundle's own +habitat predicates (\code{\link[fresh:frs_habitat_predicates]{fresh::frs_habitat_predicates()}} over \code{cfg$rules} +and its thresholds CSV, channel-width model) on the segment, then again +with the gradient and the channel width each moved to the stage's +minimum: +\itemize{ +\item \code{NA} — captured; \code{no_segment} — the location attaches to no segment; +\item \code{not_accessible} — the segment's \verb{access_} is not 1 or 2; +\item \code{fails_gradient} / \code{fails_width} / \code{width_null} — passes once that one +value is relaxed (\code{width_null} when the width is NULL); +\code{gradient_below_min} when the gradient fails by sitting below the +window (a negative gradient), not above it; +\item \code{fails_gradient_or_width} — either relaxation alone passes (through +different branches of the rule); +\item \code{fails_gradient_and_width} — passes only with both relaxed; +\item \code{rule_excludes} — fails even then: edge type, waterbody or lake size; +\item \code{post_predicate} — passes the predicate but is not habitat: removed by +clustering (connectivity to spawning) or access gating. +} +} + +\examples{ +\dontrun{ +conn <- lnk_db_conn(dbname = "fwapg", host = "localhost", port = 5432L, + user = "postgres", password = "postgres") +cfg <- lnk_config("default") +loaded <- lnk_load_overrides(cfg) + +# How many CH and BT observations in Morice sit on modelled habitat in +# the `default` bundle's schema, and at what cost in km? +v <- lnk_habitat_validate(conn, aoi = "MORR", cfg = cfg, loaded = loaded, + species = c("CH", "BT"), + schema = "fresh_default") +v$summary[v$summary$stage == "rear", + c("species_code", "n_obs", "share_rearing_any", "rearing_km")] + +# What keeps the rearing misses out of habitat? +table(v$observations$miss_reason_rear, useNA = "ifany") +} + +} +\seealso{ +\code{\link[=lnk_rollup_wsg]{lnk_rollup_wsg()}}, \code{\link[=lnk_compare_rollup]{lnk_compare_rollup()}} + +Other compare: +\code{\link{lnk_access}()}, +\code{\link{lnk_compare_mapping_code}()}, +\code{\link{lnk_compare_rollup}()}, +\code{\link{lnk_compare_wsg}()}, +\code{\link{lnk_log_read}()}, +\code{\link{lnk_mapping_code}()}, +\code{\link{lnk_parity_annotate}()}, +\code{\link{lnk_rollup_wsg}()} +} +\concept{compare} diff --git a/man/lnk_log_read.Rd b/man/lnk_log_read.Rd index ead2fd3f..90226d02 100644 --- a/man/lnk_log_read.Rd +++ b/man/lnk_log_read.Rd @@ -77,6 +77,7 @@ Other compare: \code{\link{lnk_compare_mapping_code}()}, \code{\link{lnk_compare_rollup}()}, \code{\link{lnk_compare_wsg}()}, +\code{\link{lnk_habitat_validate}()}, \code{\link{lnk_mapping_code}()}, \code{\link{lnk_parity_annotate}()}, \code{\link{lnk_rollup_wsg}()} diff --git a/man/lnk_mapping_code.Rd b/man/lnk_mapping_code.Rd index 084b9164..c48c0d8d 100644 --- a/man/lnk_mapping_code.Rd +++ b/man/lnk_mapping_code.Rd @@ -125,6 +125,7 @@ Other compare: \code{\link{lnk_compare_mapping_code}()}, \code{\link{lnk_compare_rollup}()}, \code{\link{lnk_compare_wsg}()}, +\code{\link{lnk_habitat_validate}()}, \code{\link{lnk_log_read}()}, \code{\link{lnk_parity_annotate}()}, \code{\link{lnk_rollup_wsg}()} diff --git a/man/lnk_parity_annotate.Rd b/man/lnk_parity_annotate.Rd index 99c698e8..1d3c5d52 100644 --- a/man/lnk_parity_annotate.Rd +++ b/man/lnk_parity_annotate.Rd @@ -64,6 +64,7 @@ Other compare: \code{\link{lnk_compare_mapping_code}()}, \code{\link{lnk_compare_rollup}()}, \code{\link{lnk_compare_wsg}()}, +\code{\link{lnk_habitat_validate}()}, \code{\link{lnk_log_read}()}, \code{\link{lnk_mapping_code}()}, \code{\link{lnk_rollup_wsg}()} diff --git a/man/lnk_rollup_wsg.Rd b/man/lnk_rollup_wsg.Rd index 3f8d253b..416f61d7 100644 --- a/man/lnk_rollup_wsg.Rd +++ b/man/lnk_rollup_wsg.Rd @@ -105,6 +105,7 @@ Other compare: \code{\link{lnk_compare_mapping_code}()}, \code{\link{lnk_compare_rollup}()}, \code{\link{lnk_compare_wsg}()}, +\code{\link{lnk_habitat_validate}()}, \code{\link{lnk_log_read}()}, \code{\link{lnk_mapping_code}()}, \code{\link{lnk_parity_annotate}()} diff --git a/planning/archive/2026-09-issue-283-habitat-validation/README.md b/planning/archive/2026-09-issue-283-habitat-validation/README.md new file mode 100644 index 00000000..7a99af95 --- /dev/null +++ b/planning/archive/2026-09-issue-283-habitat-validation/README.md @@ -0,0 +1,52 @@ +## Outcome + +Built `lnk_habitat_validate()` and `data-raw/habitat_validate.R`, which score a persisted +run against fish observations rather than against bcfishpass. Per WSG × species × stage +they report capture, cost in km, miss reasons and FISS absences. The miss reasons come +from the bundle's own predicates, re-evaluated with the gradient and the width relaxed. + +The design moved three times on measurement: +- The issue's "use per-WSG schemas, fresh#218 duplicates" turned out to be a bare + `id_segment` join artifact. +- `schema` became required because `default` declares the schema the bcfishpass + bundle writes. +- Capture outside `user_habitat_classification` reaches was added once the baseline + showed CH spawn-staged capture is almost all overlay. + +The method, the baseline and the #284 step-5 command are in +[`research/habitat_validation.md`](../../../research/habitat_validation.md). + +## Measurement + +`default:fresh_default` vs `bcfishpass:fresh`, 51 shared WSGs, buffer 0: +- **BT, rear-staged (n 1,047):** any-rearing capture 66.5 % on 75,280 km (default) vs + 63.6 % on 76,872 km (bcfishpass). +- **CH, any stage (n 1,734):** stream-rearing capture 87.7 % vs 86.6 %, for 28 % more + rearing km. +- **CH, spawn-staged:** 237 of 245 locations sit in UHC spawning reaches. That is why + `default` reads 98.4 % and bcfishpass 84.5 %. Outside those reaches n is 8. +- **Buffer 100 m:** +0.4–2.8 points on spawning, 0–1.6 on rearing. +- **Reconciliation:** `fresh_default` alone retains 5,104 BT+DV and 1,745 CH locations, + exactly #284's counts. + +**The wrong turns, kept:** +- The first absence rule counted FISS sites that caught fish but listed no species. They + were 63 % of BT absences in a 5-WSG probe. +- The first UHC flag ignored the indicator, so 98.7 % of flagged records were in + spawning-only reaches. +- The first spawn gradient floor was derived twice, from two sources that happen to + agree today. +- `toupper(NULL)` is `character(0)`, so the first full run scored zero WSGs. +- The first predicate call passed `model =`, which the pinned `fresh@v0.33.0` lacks. + Only the full suite's drift guard led to it. + +Review: a plan review plus five code-check rounds (`review-*.md`). Round 2 found a +defect inside a round-1 fix. Round 3 named three mechanisms and enumerated 59 rows, and +round 4 re-walked them. + +## Evidence + +`data-raw/logs/habitat_validate_283/*` (link @ `0c19e0a`; `stamp.txt` records the run-log +coverage of each schema). + +Closed by: PR for #283 (branch `283-validate-modelled-habitat-against-fish`) diff --git a/planning/archive/2026-09-issue-283-habitat-validation/findings.md b/planning/archive/2026-09-issue-283-habitat-validation/findings.md new file mode 100644 index 00000000..9b7cc9cf --- /dev/null +++ b/planning/archive/2026-09-issue-283-habitat-validation/findings.md @@ -0,0 +1,53 @@ +# Findings — Validate modelled habitat against fish observations (#283) + +## Issue context + +**If we do it:** "is this threshold set better?" gets a number per species and watershed group, so candidate CH/BT thresholds can be compared rather than eyeballed. **If we never do:** threshold changes are judged against bcfishpass parity, which measures agreement with a model rather than with fish. + +## Problem + +link compares its output with bcfishpass (`compare_*`, `wsg_compare.R`, `parity_crosssection.R`) but never with fish observations. The only observation-vs-model comparison is the Babine SK work in `research/default_vs_bcfishpass.md` §6-7, done by hand for one species against `user_habitat_classification`. + +## Proposed Solution + +A function (working name `lnk_habitat_validate()`) and a driver that, for a run schema, species set and WSG set, report: + +- **Capture:** share of observations (after `observation_exclusions`, releases removed) on or within a buffer of modelled spawning / rearing / accessible segments, split by life stage where known. +- **Cost:** km of modelled spawning and rearing, so capture can't be raised by just calling everything habitat. +- **Misses:** gradient, channel width and edge type of the segments under observations that fell outside modelled habitat. This is the direct evidence for which threshold is binding. +- **Absences (optional input):** sites sampled with no fish captured (FISS no-fish-captured records), used as a false-positive check. + +Output is a tidy table per bundle × species × WSG, so two bundles can be diffed. Use the per-WSG schemas; `fresh.streams_habitat_*` in the local snapshot is duplicated per group (fresh#218). + +Known biases to report alongside the numbers, not correct silently: +- observation points often sit at the downstream end of a sampling site; +- sampling clusters near road access; +- observations exist only where fish have access, so observed gradients are cut off at the access limit. + + +## fresh#218 is a bare-`id_segment` join artifact (measured 2026-09-26) + +Docker fwapg :5432. + +| query | rows | +|---|---| +| `fresh.streams_habitat_ch` total / distinct `(id_segment, watershed_group_code)` | 2,329,201 / 2,329,201 | +| `fresh_default.streams_habitat_ch` total / distinct full PK | 786,317 / 786,317 | +| Naver Creek (blk 356363814, COTR) `streams ⋈ streams_habitat_ch` on full PK | 187 | +| same on bare `id_segment` | 4,301 | + +Naver's `id_segment` range is 35796–35982; those integers are other segments in other +WSGs (#203). No duplication. #283 body corrected. fresh#218 itself (a fresh-repo issue) +is left for the user — offered in the PR report. + +## Circularity + +Observations feed the model: barrier overrides (`observation_threshold` BT 1, CH 5, +`observation_species` BT `BT;DV`, CH `CH;CM;CO;PK;SK`), observation break points, and +`user_habitat_classification` (field-confirmed habitat). So accessible capture partly +reads the model's own input. Spawning/rearing capture is the score. + +## Coverage for the baseline + +`fresh_default` 55 WSGs (all with `streams_access`); `fresh` 59 WSGs with access; 51 shared. +`fresh_default_tuned` does not exist. FISS snapshot WSGs in `fresh_default`: COTR, PINE, UPCE. diff --git a/planning/archive/2026-09-issue-283-habitat-validation/progress.md b/planning/archive/2026-09-issue-283-habitat-validation/progress.md new file mode 100644 index 00000000..80b83fa3 --- /dev/null +++ b/planning/archive/2026-09-issue-283-habitat-validation/progress.md @@ -0,0 +1,34 @@ +# Progress — Validate modelled habitat against fish observations (#283) + +## Session 2026-09-26 + +- Plan-mode exploration — phases approved by user; decisions: read-only baseline + (no model runs; default_tuned scoring stays #284 step 5), access = `streams_access` +- Created branch `283-validate-modelled-habitat-against-fish` off origin/main +- Scaffolded PWF baseline from issue #283 with approved phases +- Next: Phase 1 +- Phase 1: #283 body corrected (fresh#218 join artifact, circularity, scope); commit fc856d8 +- Plan review (Plan agent) returned 1 blocker + 4 gaps + 6 assumptions; verified B1 (default's + pipeline.schema is `fresh`, 65 bcfishpass log rows), G1 (fresh exports frs_params / + frs_habitat_predicates), folded in — see task_plan "Design changes"; review saved to + review-plan.md +- Phases 2-3: lnk_habitat_validate() + 71 tests incl. DB fixture; mutation check — bare + id_segment habitat join fails 6 tests; lint clean. MORR/BULK smoke run in ~3 s. +- /code-check: 4 rounds (review-round1..4.md). R1 4 findings (UHC indicator, integer64, + absence rearing definition, negative gradient label); R2 6 (FISS "caught fish, no species" + counted as absences — 63% of BT absences in the probe; zero-row crash; `any`-stage reason; + spawn gradient floor derived twice — inside an R1 fix; unbuffered absences; stale outputs); + R3 named 3 mechanisms and enumerated 59 rows, 6 inconsistent; R4 re-walked the + enumeration, 2 left (absence silent-zero on the WSG axis; stamp wording) — fixed. + Found by running the driver, not by review: `toupper(NULL)` is character(0), so an absent + --wsgs selected zero WSGs. +- Reconciliation (AC1): `fresh_default` retains BT+DV 5,104 and CH 1,745 locations, exactly + #284's pooled counts. +- Outside-UHC capture added after the baseline showed 237/245 spawn-staged CH in UHC + reaches (9a4c191); R5 found the UHC test read the point while buffered capture read a + window — fixed (0c19e0a). +- Final baseline at 0c19e0a → data-raw/logs/habitat_validate_283/; research/habitat_validation.md +- Full suite: preflight drift guard failed on the undeclared fresh symbol -> declared; and + fresh@v0.33.0 (pinned minimum) has no `model` arg on frs_habitat_predicates -> dropped, + guarded by a test that fails with it restored (fb5a27a). Remaining 3 failures are the + :63333 tunnel being down. diff --git a/planning/archive/2026-09-issue-283-habitat-validation/review-plan.md b/planning/archive/2026-09-issue-283-habitat-validation/review-plan.md new file mode 100644 index 00000000..841dd8cc --- /dev/null +++ b/planning/archive/2026-09-issue-283-habitat-validation/review-plan.md @@ -0,0 +1,22 @@ +# Plan review — #283 (Plan agent, 2026-09-26) + +Returned as reply text (the Plan agent has no Write tool); recorded here with the +disposition of each finding. Claims marked *verified* were re-probed before acting. + +| ID | Finding | Disposition | +|---|---|---| +| B1 | `schema = cfg$pipeline$schema` default scores the wrong bundle: `default` declares `fresh`, which bcfishpass builds (65 `bcfishpass` log rows) | *verified*; `schema` now required; `.log` config_name must match `cfg$name` where logged | +| G1 | Miss reasons from the thresholds CSV + #284 `pred_set` cannot match `rules.yaml` (stream rear rule has no `in_waterbody: false`; lake/wetland rules skip thresholds; 1050/1150 `thresholds: false`; bcfishpass BT `rear: []` is open on any edge) | *verified* (predicates printed for both bundles); reasons now re-evaluate `fresh::frs_habitat_predicates()` with gradient / width relaxed | +| G2 | Unattached observations counted as inaccessible (8 in `fresh_default`) | `n_unattached`, reason `no_segment` | +| G3 | Lake / wetland rearing unscored (16,651 BT segments `lake_rearing` and not `rearing`); A/B match drops D/E waterbody matches | `rearing_any` added; A/B documented as stream matches | +| G4 | `lnk_points_snap()` writes a permanent table and returns no WSG; FISS absence rule unstated; 3 WSGs only | driver snaps in a temp table; absence = sampled site where the species was not caught; stated not decision-grade | +| A1 | Scoring `default_tuned` against the observations that set BT 0.1349 is in-sample | documented in roxygen + research; `observations` arg takes any table for hold-outs | +| A2 | Access circularity checked; codes 0/1/2 only in persisted WSGs | noted | +| A3 | spawning/rearing gated on `streams_habitat.accessible`, not `streams_access` | documented (`share_spawning` not a strict subset of `share_accessible`) | +| A4 | Baseline diff conflates config with build vintage (50/51 shared WSGs unlogged in `fresh_default`) | `run_logged` column; driver stamps per-WSG log state; diff not read as a pure config effect | +| A5 | `n_in_uhc` differs by bundle (`apply_habitat_overlay: no` in bcfishpass) | `overlay_applied` column | +| A6 | Assert identical observation sets across bundles | driver asserts per WSG x species | +| AC1 | Sanity check against #284 must use the pooled 5,104 over 55 WSGs | driver runs `fresh_default` on all 55 | +| AC2 | Baseline compares bundles, not thresholds | scope decided by the user (read-only); stated in PR | +| — | `buffer_m` semantics (mainstem only, WSG-bounded, lake connectors) | documented | +| — | unqualified temp-table DROP | `pg_temp.` prefix | diff --git a/planning/archive/2026-09-issue-283-habitat-validation/review-round1.md b/planning/archive/2026-09-issue-283-habitat-validation/review-round1.md new file mode 100644 index 00000000..39bafcf0 --- /dev/null +++ b/planning/archive/2026-09-issue-283-habitat-validation/review-round1.md @@ -0,0 +1,79 @@ +# Code-check round 1 — lnk_habitat_validate() (#283) + +Reviewer: subagent, 2026-09-26. Diff: `diff_r1.patch` (R/lnk_habitat_validate.R, +tests/testthat/test-lnk_habitat_validate.R). Tests run from a copy of the repo with the +fixture schema renamed (`zz_lnk_validate_rev1`): `[ FAIL 0 | PASS 71 ]`. Live read-only +run: `aoi = c("MORR","BULK")`, `species = c("CH","BT","CO")`, `schema = "fresh_default"`, +cfg `default` (13 s). + +Checked and clean: the full-key joins (all three persist tables carry a unique +`(id_segment, watershed_group_code)` index; `fwa_waterbodies.waterbody_key` is unique, so +the waterbody join cannot fan out); the tiebreaks in the attach LATERAL (no two segments share +`(blue_line_key, watershed_group_code, downstream_route_measure)` in `fresh` or +`fresh_default`); the predicate re-evaluation against the pipeline (0 rows with +`rearing_any` TRUE and `pred_rear` FALSE; spawning TRUE with `pred_spawn` FALSE only on +UHC-forced rows); relaxation to the stage minimum (min gradient is 0 and min widths are +2 / 1.5 / 4 / 2.1 for every species in both bundles, so no rule branch rejects the relaxed +value); the Releases filter (every release source starts `Releases Database`); the exclusion +filter matching `.lnk_pipeline_prep_observations`; SQL interpolation (all identifiers and +literals validated or quoted); and the zero-row paths. + +## Findings + +- **[bug — silently wrong number]** `R/lnk_habitat_validate.R:444-449` (the `in_uhc` EXISTS) + and `:732` (`n_in_uhc`), against the roxygen at `:61-63`. `in_uhc` is TRUE for any + `user_habitat_classification` row of the species whose range contains the point. It + ignores the row's `spawning` / `rearing` indicator values and which habitat type the stage is + about. `fresh::frs_habitat_overlay()` forces a flag only where that type's indicator is + `1` (`lower(trim(k.::text)) IN ('true','t','1')`), and it forces whole segments contained + in the range, not points. The docs say "with `overlay_applied` TRUE those are captured by + construction", and `n_in_uhc` sits beside `n_spawning`, `n_rearing` and `n_rearing_any` on + every stage row, so a reader will subtract it to get out-of-sample capture. For rearing that + subtraction is almost entirely wrong. The bundled UHC (15,696 rows) has `rearing` NA on + 15,033 rows, and it also carries confirmed non-habitat rows (`-1` / `-4`; 546 rows with no + `1` in either column). Measured: + - Live MORR+BULK run: 123 `in_uhc` locations. 122 are spawning-only reaches and 1 is + rearing-only. BULK CO `stage == "rear"` reports `n_in_uhc = 10`, but only 1 of those 10 + locations is in a reach that forces rearing. + - Province-wide, A/B records by species: 20,415 fall inside a UHC reach. For 20,149 (98.7%) + no containing row has `rearing = 1`. For 68, no containing row has a `1` in either column: + these are confirmed non-habitat, and they are counted as "captured by construction". + - The fixture's UHC frame has no `spawning` / `rearing` columns, so the tests cannot reach + this. + + Fix: compute per-type flags (for example `in_uhc_spawn` from `spawning` = 1, and + `in_uhc_rear` from `rearing` = 1) and count the one that matches each capture column. + Alternatively, restrict to rows with an indicator of 1 and reword the doc. To match the + overlay exactly, test the segment range, not the point. + +- **[fragile]** `R/lnk_habitat_validate.R:423` (`count(*) OVER () AS n_cand`). Postgres + `count()` is `bigint`, so RPostgres returns `n_cand` as `bit64::integer64`. That type is + inconsistent with every other integer column in the returned `observations` frame + (`id_segment`, `access` and `edge_type` are all `integer`). It computes correctly only while + bit64's S3 methods are registered. After `saveRDS()`/`readRDS()` in a session that has not + loaded bit64, the values read as denormal doubles: measured `sum(o$n_cand)` = `6.59e-321`, + `max()` = `9.88e-324`. `ifelse()`, `c()` with doubles, and most serializers strip or corrupt + it the same way. Fix: `count(*) OVER ()::int AS n_cand`. + +- **[fragile — inconsistent definition under one name]** `R/lnk_habitat_validate.R:660-661` + and `:697`. `n_absence_rearing` counts + `h.rearing OR h.lake_rearing OR h.wetland_rearing`, which is the *any*-rearing definition. + The capture columns it will be compared against name that `rearing_any`, and keep + `n_rearing` / `share_rearing` for stream rearing (`:442`, `:67-68` of the docs). So a + false-positive rate built from `n_absence_rearing` and a capture rate built from + `share_rearing` measure different things with no signal. The same split affects the miss + reasons: `miss_reason_rear` keys on `rearing_any` (`:632`), so the rear misses in + `table(miss_reason_rear)` — the `@examples` pairs it with `share_rearing` — do not add up to + `n_obs - n_rearing`. Lake- and wetland-rearing locations are `NA` (captured) there while + counting as misses in `share_rearing`. Fix: either name it `n_absence_rearing_any` (and say in + the Miss reasons section that "captured" means `rearing_any`), or count stream `rearing` there. + +- **[minor — mislabel]** `R/lnk_habitat_validate.R:572-578` with `:615`. Gradient is relaxed + to the stage minimum (0), but 7,122 `fresh_default.streams` segments have + `gradient < 0`. On those segments `BETWEEN 0 AND max` fails for being *below* the window, + relaxing to 0 passes, and the miss is reported as `fails_gradient`, the label that is read as + "the max gradient threshold is binding". Raising that threshold would not capture them. + Measured: 46 A/B records sit on negative-gradient segments province-wide, all on waterbody + or non-stream edge types (none in MORR/BULK). The effect is small, but it points the + calibration evidence (#284) the wrong way. Fix: attribute `gradient < 0` separately, or + relax to `max(value, min)` only when the value is above the window. diff --git a/planning/archive/2026-09-issue-283-habitat-validation/review-round2.md b/planning/archive/2026-09-issue-283-habitat-validation/review-round2.md new file mode 100644 index 00000000..4553da01 --- /dev/null +++ b/planning/archive/2026-09-issue-283-habitat-validation/review-round2.md @@ -0,0 +1,119 @@ +# Code-check round 2 — lnk_habitat_validate() + data-raw/habitat_validate.R (#283) + +Reviewer: subagent, 2026-09-26. Diff: `diff_r2.patch`. Tests run from a copy of the repo with the +fixture schema renamed (`zz_lnk_validate_rev2`): `[ FAIL 0 | WARN 0 | SKIP 0 | PASS 75 ]`. +Live runs from the copy, output to scratch only: +`--bundles=default:fresh_default,bcfishpass:fresh --wsgs=MORR,BULK,PINE,COTR,UPCE` with +`LNK_KNOWLEDGE_DIR=~/Projects/repo/knowledge` (39 s), plus one single-WSG run (below). + +Round-1 fixes checked: +- (1) `in_uhc_spawn` / `in_uhc_rear`: complete. The loaded UHC `spawning` / `rearing` are `int` + (values -4 / -1 / 1 / NA) in both bundles, so `u.spawning = 1` is a valid comparison and selects + exactly what the overlay forces. +- (2) `n_cand::int`: complete. The other count the driver reads (`n_wsg` in the stamp) is wrapped + in `as.integer()`. +- (3) `n_absence_rearing` (stream) and `n_absence_rearing_any`: complete as named. A related + asymmetry remains (see the buffer finding below). +- (4) `gradient_below_min`: correct for today's bundles, but the min it tests against comes from + a different source than the predicate's lower bound (see below). It is also only attributed on + the `p_g & !p_w` arm, so a below-window gradient that also needs a width relaxation still reads + `fails_gradient_and_width`. That is minor. + +## Findings + +- **[bug — silently wrong numbers]** `data-raw/habitat_validate.R:97-107, 135-145`: FISS sites that + caught fish but recorded no species are counted as absences of every species. + - The driver treats a site as "not caught" whenever `species_list` lacks the species name. In + the knowledge snapshots `species_list` is empty for 5,303 of the 8,301 driver-sampled unique + sites. + - Only 1,022 of those are no-fish-caught. For 3,378 of the snapped sites `total_fish > 0` and + `fish_counted` is TRUE: fish were caught and counted, but the Step-2 species cell was blank + (`knowledge/scripts/0220-fiss-xls-parse-nfc.R:354` builds `species_list` from non-NA species + only). A further 407 have effort recorded but no count entered at all. + - Measured on the live run, `fresh_default` BT, MORR+BULK+PINE+COTR+UPCE: `n_absence` = 3,095. + Of those, **1,948 (63%)** come from "fish caught, no species" sites and 88 from "effort, no + count". Only 739 come from sites with a species list and 320 from no-fish-caught sites. + - The false-positive columns (`n_absence_spawning` 1,772 of the 1,948) are dominated by sites + that are not evidence of absence. + - Same class, smaller: `Salmon (General)` (13 sites), `Unidentified Species` (50) and + `Unidentifiable Trout - only fry` (7) are read as "did not catch CH/BT". None of them can rule + the species out. This is knowledge#18's lesson: classify against the source's code table. + - Fix: count a site as an absence only when `nfc` is TRUE, or when `species_list` is non-empty + and names no generic or unidentified taxon that could be the species. Stop or report on any + other shape. + +- **[bug — crash]** `data-raw/habitat_validate.R:196-211` (`stage_rows`): + `data.frame(stage = "spawn", species_code = obs$species_code[obs$is_spawn], ...)` raises + *"arguments imply differing number of rows: 1, 0"* whenever a subset is empty. The scalar `stage` + cannot recycle against a zero-length column. + - Reproduced: `--bundles=default:fresh_default --wsgs=UPCE --species=CH --buffers=0` dies in + `stage_rows` after `summary.csv` and `totals.csv` are written, with no `misses*.csv` and no + `stamp.txt`. + - It fires for any run where a species has no spawn-staged (or no rear-staged, or no) locations. + In the live 5-WSG set that covers COTR BT spawn, PINE CH spawn, UPCE BT/CH, so every held-out, + single-WSG or single-species run is exposed. + - Fix: `rep(stage, n)` or return a typed 0-row frame. + +- **[bug — mislabel, silently wrong number]** `data-raw/habitat_validate.R:198-200`: `misses.csv` + stage `any` counts `miss_reason_rear`, which keys on `rearing_any`. + - The summary and totals `any` stage define capture as `n_habitat = spawning | rearing_any`, so a + spawning-only location is "captured" in `totals.csv` and a miss in `misses.csv` under the same + stage label. + - Measured: `default` CH `any` has `n_habitat` 224 in totals but 222 `captured` in misses.csv. + The 2 spawning-only locations appear there with a rear miss reason, as if the model missed + them. + - Fix: label that block `rear_all` (or similar), or derive the `any` reason as NA when either + stage captured. + +- **[fragile — one fact derived twice]** `R/lnk_habitat_validate.R:550-554` vs `:599-600, :613-619, :649`: + the spawn predicate's lower gradient bound comes from `parameters_fresh$spawn_gradient_min` + (`.lnk_hv_sp_params` → `frs_habitat_predicates()`, `sprintf("s.gradient >= %s", spawn_gradient_min)`). + - The relaxation value and `gradient_min_spawn` (used for `gradient_below_min`) come from + `rng$spawn$gradient[1]`, which `frs_params()` hardcodes to `0` (`fresh/R/frs_params.R:489`, + `ranges$gradient <- c(0, gradient_max)`). + - Today every `spawn_gradient_min` in both bundles is 0, so the two agree by coincidence. + - Once a bundle sets a positive `spawn_gradient_min`, which is a live fresh-owned parameter and + the kind #284 calibrates, the following go wrong silently: + - relaxing gradient to 0 still fails the predicate, so `pred_spawn_g` / `_gw` are FALSE; + - every spawn gradient miss (above max or below min) falls through to `rule_excludes` or + `fails_width`; + - `gradient_below_min` never fires for gradients in `[0, min)`. + - Fix: take the spawn relax and below-min value from `spawn_gradient_min` (the value the + predicate uses). + +- **[fragile — inconsistent pair under one row]** `R/lnk_habitat_validate.R:701-731` vs `:458-497`: + capture flags are buffered (`buffer_m` extends spawning / rearing upstream), but the absence + counts are always evaluated on the point's own segment. + - The `buffer_m = 100` summary rows therefore pair a buffered capture rate with an unbuffered + false-positive count. + - The driver writes both side by side for each buffer (summary.csv, totals.csv). A precision and + recall read at buffer 100 flatters the buffer: capture rises, and the absence false-positive + rate cannot. + - Same shape as round-1 finding 3 (paired columns with different definitions). + - Fix: buffer the absence flags the same way, or blank `n_absence_*` on `buffer_m > 0` rows and + say so in the docs. + +- **[fragile — stale artifacts beside fresh ones]** `data-raw/habitat_validate.R:66-67, 244-276, 314`: + the default output directory is fixed (`data-raw/logs/habitat_validate_283/`, a committed-log + location) and nothing is cleared before writing. + - A one-bundle rerun never rewrites `diff.csv`, so the previous two-bundle diff survives beside + the new `summary.csv` and a `stamp.txt` describing only one bundle. + - A run that dies before the stamp leaves the previous run's `stamp.txt` describing new CSVs. + Examples are the `stage_rows` crash above, or `--buffers` without 0, where `keys[[1]]` is out + of bounds. + - `--buffers` without 0 also writes `misses.csv` / `misses_binned.csv` as the single line `""` + (`write.csv(NULL)`). + - Fix: delete the known outputs at start (or write to a fresh subdirectory), and require 0 in + `--buffers` when misses or the diff are produced. + +Checked and clean: +- the `in_uhc` indicator types; +- log table shape in both schemas (`config_name`, `date_start` never NULL, `fresh_version`); +- the diff guard (fires on differing retained keys; identical here); +- `n_cand` type; +- SQL interpolation (schema regex in the function; driver schema is operator input); +- temp-table reuse across the four in-session runs; +- dedup naming via `tapply` name lookup (locale-safe); +- totals grouping (`config_name` never NA). + +/Users/airvine/Projects/repo/link/planning/active/review-round2.md diff --git a/planning/archive/2026-09-issue-283-habitat-validation/review-round3.md b/planning/archive/2026-09-issue-283-habitat-validation/review-round3.md new file mode 100644 index 00000000..8c989d19 --- /dev/null +++ b/planning/archive/2026-09-issue-283-habitat-validation/review-round3.md @@ -0,0 +1,192 @@ +# Code-check round 3 — lnk_habitat_validate() + data-raw/habitat_validate.R (#283) + +Reviewer: subagent, 2026-09-26. Diff: `diff_r3.patch`. Everything run from a copy of the repo +(`scratchpad/linkcopy3`, fixture schema renamed `zz_lnk_validate_rev3`): + +- `NOT_CRAN=true devtools::test(filter = "habitat_validate")`: `[ FAIL 0 | WARN 0 | SKIP 0 | PASS 81 ]`. +- Driver, `--bundles=default:fresh_default,bcfishpass:fresh --wsgs=MORR,BULK,COTR` with + `LNK_KNOWLEDGE_DIR` set, output to scratch. Cross-checked `misses.csv` against `totals.csv` + (buffer 0) for all 12 bundle x species x stage rows. Captured counts agree exactly + (`any` = `n_habitat`, `spawn` = `n_spawning`, `rear` = `n_rearing_any`). So do the non-`no_segment` + totals (= `n_obs`) and `no_segment` (= `n_unattached`). `not_accessible` is below + `n_inaccessible` only where an inaccessible location is captured, which is the accepted + habitat-vs-access gate difference. +- Driver, `--species=CO --wsgs=MORR` with `LNK_KNOWLEDGE_DIR` set: crashes (finding 1). + +## The mechanisms + +Rounds 1 and 2 found instances of three mechanisms. + +**M1. One definition, re-implemented per consumer.** Each derived fact is computed separately by +every consumer, and nothing but coincidence kept the copies in step. The facts: *captured*, +*accessible*, *attached*, *stage*, *stage minimum*, *species identity*, *bundle identity*, and +*population* (which WSGs, and which points count as on the network). The consumers: the +observation SQL, the absence SQL, the predicate relaxation, the miss labels, the summary, and the +driver's totals, misses and diff. +- R1: `in_uhc` ignored the indicator the overlay uses; `n_absence_rearing` did not match `n_rearing`. +- R2: the misses `any` stage did not match the totals `any` stage; the spawn floor was taken from + two sources; absences were unbuffered while observations were buffered. + +The fixes that held replaced a copy with a single source that both consumers read +(`.lnk_hv_buffered()`, `.lnk_hv_stage_min()`). Findings 2, 3 and 4 below are copies that still +exist: the network distance, the bundle key, and the WSG population. + +**M2. A value normalised at one end only.** `integer64` from the DB was treated as integer, and +`toupper(NULL)` was treated as `NULL`. Finding 5 is the same thing: species codes are uppercased +on three paths and not on a fourth. + +**M3. The shape of "nothing" differs by constructor.** A scalar cannot recycle into a 0-row frame, +`do.call(rbind, list())` returns `NULL`, and `sprintf()` or `paste0()` given a zero-length +argument returns `character(0)`. The code also treats NA, 0, `NULL` and `character(0)` as the +same thing in places. Finding 1 and part of finding 6 are this. + +## Findings + +- **[bug — crash]** `data-raw/habitat_validate.R:169-177`: when none of `--species` has a FISS + rule, `out <- do.call(rbind, lapply(sp_abs, ...))` is `NULL` and `attr(out, ...) <-` aborts. + - Reproduced: `--species=CO` with `LNK_KNOWLEDGE_DIR` set dies with *"attempt to set an + attribute on NULL"* in `fiss_absences()`. The output directory is left empty, because the + outputs were unlinked at start. + - Same mechanism, silent form. With `--species=CH,CO`, CO has no rule, yet it gets + `n_absence*` = **0** in summary, totals and diff (`.lnk_hv_absences()` zero-fills the grid). + That 0 means "not assessed" and reads as "no absence sites". Only a `message()` says otherwise. + - Fix: return `NULL` when `sp_abs` is empty. Set `n_absence*` to `NA` for species outside + `sp_abs` after the call, or pass absences only for those species and NA-fill the rest. + +- **[fragile — two definitions of "on the network"]** `data-raw/habitat_validate.R:146`: absence + sites snap to the nearest FWA stream within **150 m**. Observations are kept only for + `match_type` A/B, which bcfishobs defines as *"stream; within 100m"*. + - Measured on the knowledge snapshots: of 7,236 sampled sites that snap, **1,247 (17%)** are + 100–150 m from their stream. That is outside the distance at which an observation would be + admitted. + - These are the sites most likely to sit on an unmapped tributary, where the snapped segment + belongs to another stream. So they inflate `n_absence_spawning` / `_rearing` (the + false-positive check) with points the observation side would have refused. + - Fix: snap within 100 m to match A/B (or state the asymmetry in the stamp). + +- **[fragile — bundle identity keyed two ways]** `data-raw/habitat_validate.R:200, 259, 272`: each + file keys a bundle differently. + - `runs[[..]]$bundle` is the **config name** only, and `misses.csv` / `misses_binned.csv` are + keyed on it. + - `summary.csv` / `totals.csv` key on `schema` + `config_name`, and `diff.csv` on + `config:schema`. + - Two bundles sharing a config therefore write identically labelled, inseparable rows to both + misses files. Example: `default:fresh_default,default:`, which the log + check allows and which is the natural #284 before/after comparison. + - Fix: `bundle = paste0(config, ":", schema)`, as `diff.csv` does. + +- **[fragile — totals and diff over different populations]** `data-raw/habitat_validate.R:87-101, + 209-217`: each bundle is scored over its **own** WSGs, and `totals.csv` sums over them. Only + `diff.csv` is restricted to the shared set. + - In the default no-`--wsgs` run the sets differ: `fresh_default` has 55 access WSGs and `fresh` + has 59, with 51 shared. + - Only in `fresh_default`: ADMS, KOTL, LARL, SLOC. + - Only in `fresh`: BOWR, ELKR, KOTR, LNTH, MCGR, THOM, UNTH, UTRE. + - The two bundles' totals rows are therefore different populations: different `n_obs`, km and + absences. They read as a bundle comparison, and `n_wsg` is the only tell. + - Fix: with two bundles, score both on the intersection (or also write shared-only totals). + +- **[fragile — silent zero]** `R/lnk_habitat_validate.R:209-210, 331`: the code uppercases + `species`, `names(species_obs)` and `absences$species_code`, but not the **values** of + `species_obs`. + - `species_obs = list(BT = c("bt", "dv"))` passes `stopifnot`, joins against bcfishobs' uppercase + `species_code` (`sp.obs_species = o.species_code`), and retains zero observations with no error. + - The summary then reports `n_obs` 0, which reads as "no observations". + - Fix: `species_obs <- lapply(species_obs, toupper)`. + +- **[fragile — stamp]** `data-raw/habitat_validate.R:322-356`: two paths can lose the stamp. + - The stamp queries `.log` unconditionally, while `lnk_habitat_validate()` explicitly + accepts a schema with no `log` table (`.lnk_hv_check_log` returns `character(0)`). So such a + schema scores, writes every CSV, and then dies before `stamp.txt`, leaving outputs with no + stamp. + - `attr(absences, "knowledge_sha")` comes from `system2(..., stdout = TRUE)`. On a + `LNK_KNOWLEDGE_DIR` that is not a git checkout, that returns `character(0)` with a *warning*, + which `tryCatch(error = )` does not catch. `sprintf()` given a zero-length argument then + returns `character(0)`, and the whole absences line vanishes from `stamp.txt` silently. + - Neither fires today: both schemas have a `log` and knowledge is a git repo. + - Fix: guard the log query with `dbExistsTable`, and `if (!length(sha)) NA` the sha. + +Notes (not findings): +- The roxygen says the default A/B filter leaves out "the C-E waterbody matches". C is + *"matched - stream; 100-500m; lookup"* (31,551 rows), a stream match beyond 100 m, not a + waterbody match. The code is right; the sentence is wrong. +- `fresh installed ... @ no recorded sha` appeared in the stamp on this machine. That is + `.lnk_pkg_git_sha()` against a local install, not this diff. + +## Enumeration + +Every fact derived in more than one place, every possibly-empty constructor, and every value the +relaxation or labels take from outside the predicate. ✓ = consistent (measured where marked). + +### M1 — one fact, several derivations + +| Fact | Where it is derived | Consistent? | +|---|---|---| +| accessible | obs SQL `coalesce(access IN (1,2), false)`, NA if unattached (:465, :506); absence SQL, same expression, unattached dropped (:728, :764); `lnk_rollup_wsg` `accessible_km` `access IN (1,2)`; miss label `!accessible` | ✓. Rollup's inner join to habitat vs obs' left join to access: measured 0 segments lacking a habitat or access row in either schema | +| spawning capture | obs + absences via `.lnk_hv_buffered(h.spawning)`; `spawning_km` on `h.spawning`; `miss_reason_spawn` keys on `obs$spawning` | ✓ (one helper) | +| rearing (stream) | obs + absences `h.rearing` (buffered helper); `rearing_km` on `h.rearing` | ✓ | +| rearing_any | obs + absences `h.rearing OR h.lake_rearing OR h.wetland_rearing`; `miss_reason_rear` keys on it; predicate rear stage ORs `pr$rear`, `pr$lake_rear`, `pr$wetland_rear` | ✓. `streams_habitat_` has exactly those three rearing columns | +| habitat (`any`) | summary `n_habitat = spawning \| rearing_any`; totals `share_habitat`; misses `any` = NA if spawning else rear reason | ✓ measured, 12/12 rows | +| attached / n_obs | summary `!is.na(id_segment)`; absences `id_segment IS NOT NULL`; `no_segment` ⇔ captured NA ⇔ id_segment NA | ✓ measured (`no_segment` = `n_unattached`) | +| attach rule | obs LATERAL (:444-457) and absence LATERAL (:736-748): two copies of one SQL | ✓ identical predicates and ORDER BY | +| buffer window | obs and absences share `.lnk_hv_buffered`; accessibility is always own segment | ✓ | +| stage | `.lnk_obs_stage` → dedup OR → summary and misses both read `is_spawn` / `is_rear`; absences stage-less, same value on every stage (documented) | ✓ | +| species admission | obs: `spec` (presence ∩ species) × `species_obs`; absences: filtered on the same `spec` (WSG, species) | ✓ | +| species pooling (BT = BT+DV) | function: `species_obs` default; driver FISS rule: regex `Bull Trout\|Dolly Varden` | ✓ today. Two lists that agree because the driver never overrides `species_obs` | +| species case | `species`, `names(species_obs)`, `absences$species_code` uppercased; `species_obs` values not | ✗ **finding 5** | +| on-network distance | obs: bcfishobs A/B ≤ 100 m; absences: nearest FWA ≤ 150 m | ✗ **finding 2** | +| counting unit | obs: one per species × blk × metre; absences: one per site | differs, but each rate is within its own set. Not a finding | +| spawn gradient floor (relax + `gradient_below_min`) | `.lnk_hv_stage_min` ← `.lnk_hv_sp_params` `spawn_gradient_min` (NA/NULL → 0), the same assembly as `frs_habitat_classify` → `frs_habitat_predicates` | ✓ single source (R2 fix) | +| rear gradient floor | link literal `0`; fresh literal `c(0, rear_g[2])` on the rules path; CSV path has no lower bound (relaxing is harmless there) | ✓. Tracks the predicate, not `parameters_fresh$rear_gradient_min` (0 in both bundles, read by no fresh code). That is correct: fresh would ignore a non-zero value, and so should the relaxation | +| stage width floor | `ranges$$channel_width[1]`; predicate inherits the same range on the rules path, the CSV path and `lake_rear` / `wetland_rear` (`size_rear`) | ✓. Every rule-level `channel_width` in both bundles' `rules.yaml` is `[0, 9999]` (18 + 12), and none sets a rule-level `gradient` | +| inclusive bounds | predicate `BETWEEN` / `>=`; relaxation sets the value to the bound | ✓ | +| `width_null` label | `is.na(channel_width)`, the column the predicate reads | ✓. NULL gradient: 0 rows in both schemas, so no gradient analogue is needed | +| UHC indicator | validate `u.spawning = 1`; overlay `lower(trim(x::text)) IN ('true','t','1')` | ✓. Loaded values are int {-4,-1,1,NA} in both bundles | +| `overlay_applied` | same expression as `lnk_pipeline_classify` | ✓ | +| obs exclusions | `%in% c(TRUE, "t")` on `data_error` / `release_exclude`, same as `.lnk_pipeline_prep_observations` | ✓ (the Releases Database drop is extra and documented) | +| config check vs run_logged vs stamp count | check: latest row per WSG; `run_logged` and stamp: any row | ✓. No NULL `date_start` rows (measured), so `DESC` NULLS FIRST cannot pick a null | +| log existence | function tolerates a missing log; stamp does not | ✗ **finding 6** | +| cost where species absent | `n_obs` 0 by `spec`; cost from habitat rows | ✓ measured: no `streams_habitat_ch/bt` rows in any species-absent WSG in either schema (24 CH, 3 BT WSGs) | +| present but unmodelled | presence says present, no habitat rows → flags FALSE | ✓ measured: none in either schema (unguarded) | +| bundle identity | summary/totals: schema + config_name; diff: config:schema; misses: config | ✗ **finding 3** | +| WSG population | totals: per-bundle WSGs; diff: shared WSGs | ✗ **finding 4** | +| observations identical across bundles | diff guard on species + WSG + observation_key, buffer 0 | ✓. Dedup representative uses locale-dependent `order()`, same session for both | +| misses population | buffer-0 runs only; `stage_rows` uses the same `is_spawn` / `is_rear` | ✓ | +| bins vs bounds | gradient bins `(a,b]` match `<= max`; width bins `[a,b)` match `>= min` | ✓ (display only) | + +### M3 — "nothing" shapes + +| Site | Empty input | Result | +|---|---|---| +| `.lnk_hv_spec` `do.call(rbind, ...)` | no present species | typed 0-row frame ✓ | +| `.lnk_hv_spec` `obs_species = unique(species_obs[[sp]] %\|\|% sp)` | `species_obs = list(BT = character(0))` (passes `stopifnot`) | `data.frame` errors 1 vs 0 rows: loud, not silent | +| `lnk_vd_excl` `data.frame(observation_key = as.character(keys))` | no exclusions | 0-row ✓ | +| UHC | NULL or 0-row | typed 0-row ✓ | +| `.lnk_hv_dedup` | 0 rows | early return, columns added ✓ | +| `.lnk_hv_predicates` `rep(NA, nrow(obs))` / `res` NULL | nothing attached | NA columns; `paste(NULL...)` → `character(0)` → no match ✓ | +| `.lnk_habitat_miss_reason` scalar `gradient` default | length 0 | recycles to 0 ✓ | +| `.lnk_hv_absences` `count_by` | 0 attached absences | tapply NA → 0 ✓ (tested) | +| `.lnk_hv_summary` per-cell `data.frame(scalars)` | empty cell | 1-row, `share` NA ✓ | +| outer `cbind(data.frame(schema = scalar, ...), summary)` | summary has ≥ 3 rows by construction | ✓ | +| driver `split_csv(NULL)` / `toupper(NULL)` | no `--wsgs` | `length()` test ✓ | +| driver `--bundles=` (empty) | `do.call(rbind, list())` → NULL, `nrow(NULL) > 2L` → `if (logical(0))` | loud but opaque error. Not a finding | +| driver `--buffers=` (empty) | `numeric(0)` → `!0 %in%` stop ✓ | | +| `fiss_absences` `do.call(rbind, lapply(sp_abs, ...))` | no species with a rule | NULL → `attr<-` crash ✗ **finding 1** | +| `fiss_absences` per-species frame | species with 0 absence sites | `rep(sp, nrow(s))` ✓ | +| `.lnk_hv_absences` zero-fill | species with no rule | 0 instead of NA ✗ **finding 1** | +| `stage_rows` `pick` | empty spawn/rear subset | `rep(stage, nrow(d))` ✓ (R2 fix) | +| misses/binned `ifelse` / `cut` on 0 rows | no misses | 0-length columns into a 0-row frame ✓ | +| stamp `sprintf(..., knowledge_sha)` | `system2` → `character(0)` | line dropped silently ✗ **finding 6** | +| stamp log query | no `log` table | error after CSVs are written ✗ **finding 6** | + +### Values the relaxation and labels take from outside the predicate's own input + +| Value | Source | Same as the predicate? | +|---|---|---| +| spawn gradient relax / `gradient_min_spawn` | `spawn_gradient_min` via `.lnk_hv_sp_params` | ✓ | +| rear gradient relax / `gradient_min_rear` | literal 0 | ✓ (fresh's literal 0) | +| spawn / rear width relax | `ranges$$channel_width[1]` | ✓ | +| `width_null` | segment `channel_width` | ✓ | +| `not_accessible` | `streams_access` | differs from the habitat gate: accepted tradeoff | +| model | cw only | accepted tradeoff | +| `format(x, scientific = FALSE)` (7 significant digits) vs predicate `%.10g` | shipped minimums (0, 0.0025, 1.5, 2, 4) are exact under both | ✓ today; a minimum with more than 7 significant digits could round below the bound | diff --git a/planning/archive/2026-09-issue-283-habitat-validation/review-round4.md b/planning/archive/2026-09-issue-283-habitat-validation/review-round4.md new file mode 100644 index 00000000..36a01560 --- /dev/null +++ b/planning/archive/2026-09-issue-283-habitat-validation/review-round4.md @@ -0,0 +1,175 @@ +# Code-check round 4 — terminal verification of the round-3 fixes (#283) + +Reviewer: subagent, 2026-09-26. Diff: `diff_r4.patch`. Everything was run from a copy +(`scratchpad/linkcopy4`, fixture schema renamed `zz_lnk_validate_rev4`). The repo was not touched, +apart from this file. + +What was run: +- `NOT_CRAN=true devtools::test(filter = "habitat_validate")`: `[ FAIL 0 | WARN 0 | SKIP 0 | PASS 82 ]`. +- Mutation: with `species_obs <- lapply(species_obs, toupper)` removed, the new case test fails + (`test-lnk_habitat_validate.R:281`, FAIL 1). The guard fires. +- Driver, all exit 0, outputs in `scratchpad/r4out/{A..E}`: + - **A**: two bundles, `--wsgs=COTR,MORR --buffers=0,100`, knowledge set. + - **B**: one bundle, the same WSGs, knowledge unset. No `totals_shared.csv` or `diff.csv` is + written, and no error is raised. + - **C**: two bundles, `--species=CH,CO`, knowledge set. + - **D**: one bundle, `--species=CO`, knowledge set. This is the round-3 crash case, and it no + longer crashes. + - **E**: one bundle, knowledge copied into a directory that is not a git repo. The stamp reads + `knowledge @ not a git repo`. +- Cross-checks on A: + - `totals.csv` equals the per-group sums of `summary.csv` for `n_obs`, `n_habitat` and + `n_absence`. + - `misses.csv` `captured` equals `n_habitat` / `n_spawning` / `n_rearing_any` in 12 of 12 rows. + - `misses.csv` row totals equal `n_obs + n_unattached` in 12 of 12 rows. + - `totals_shared.csv` is identical to `totals.csv`, as it must be when `--wsgs` is given. + - Both misses files are labelled `default:fresh_default` / `bcfishpass:fresh`. +- On C, CO carries `n_absence*` = NA through `summary.csv`, `totals.csv` and `totals_shared.csv`. + CH carries its counts. `diff.csv` has no absence columns, so NA cannot reach it. + +## Findings + +- **[fragile — silent zero, WSG axis]** `R/lnk_habitat_validate.R:767-780`, `data-raw/habitat_validate.R:109, 377-383`. + This is round 3's M3 mechanism, finding 1, moved from the species axis to the WSG axis. + - The FISS snapshots cover **5** WSGs: `knowledge/data/{cotr,lnth,pine,unth,upce}/fiss_sites_*_all.csv`. + - After snapping, absence rows land in **50** WSGs, mostly as edge spillover (for example PARS + 148 and LPCE 607). MORR receives 0. + - `.lnk_hv_absences()` zero-fills the whole `aoi × species` grid. So every WSG outside the + snapshots reports `n_absence = 0`, and a partly covered WSG reports a partial count. Run A + shows MORR CH `n_absence 0` beside COTR CH `68`. That 0 means "not in the FISS snapshot" and + reads as "sampled, no absence sites". + - Pooled rates in `totals` are unaffected, because 0/0 WSGs add nothing. Per-WSG rows, `n_wsg` + and any per-WSG absence rate are affected. + - Nothing records the covered set. The stamp says only "all WSGs, before presence". + - Fix: record the snapshot WSGs (from the file names) in the stamp. Then either NA `n_absence*` + in `summary.csv` for WSGs outside that set, or state in the header that n_absence is 0 there + and should not be read. +- **[minor — stamp states a falsehood]** `data-raw/habitat_validate.R:170, 377`. Fix 1 made + `fiss_absences()` return `NULL` when no requested species has a rule. The stamp then treats + `is.null(absences)` as `"absences: none (LNK_KNOWLEDGE_DIR unset)"`. + - Reproduced in run D (`--species=CO` with `LNK_KNOWLEDGE_DIR` set). The stamp claims the + variable was unset. + - In the same situation, `summary.csv` has no `n_absence*` columns at all (D), while run C has + them as NA. "Not assessed" therefore arrives in two shapes, depending on whether any other + species had a rule. + - Fix: branch the stamp on `nzchar(Sys.getenv("LNK_KNOWLEDGE_DIR"))`, and say "no requested + species has a FISS absence rule". +- **[minor — exported function keeps the species-axis zero]** `R/lnk_habitat_validate.R:767-773`, + roxygen `:128-133`. The driver now NAs species without a rule. `lnk_habitat_validate()` itself + still returns `n_absence*` = 0 for any `species` that has no rows in `absences`. + - A direct caller who passes CH-only absences with `species = c("CH", "CO")` gets CO = 0. + - The function cannot tell "assessed, none found" from "not assessed". The roxygen should say + that a species absent from `absences` is reported as 0, not NA, and that the caller must NA it. + The alternative is to NA-fill species with no rows and accept that "assessed, zero sites" also + becomes NA. + +Notes (not findings): +- `data-raw/habitat_validate.R:244`: the "share no WSGs" `stop()` moved up from the diff block. It + still fires after `summary.csv` / `totals.csv` are written and before `stamp.txt`. The diff-block + observation-identity `stop()` (:313) fires after the misses files. Both are loud, but both leave + outputs without a stamp, which is the shape round 3's finding 6 closed for the log. + `bundle_wsgs` is known before any scoring, so the disjointness check could run there. +- `data-raw/habitat_validate.R:323-326`: `diff.csv` selects each side by `schema` only, while its + labels are `config:schema`. Two bundles on one schema, for example + `default:fresh_default,bcfishpass:fresh_default` over unlogged WSGs, which the log check allows, + give 4 rows per key. + - The deltas are all 0. That is correct: capture is a function of the schema, not the config. + - So the rows are duplicated but not wrong. A guard that the two schemas differ would close it. +- The stamp for a log table with no rows for the scored WSGs prints `(fresh NA, NA to NA)`. That + happens for `fresh_default` over COTR,MORR. It is cosmetic, because the preceding "0 with a + run-log row" is correct. +- Two edge cases in `knowledge_sha`. A `LNK_KNOWLEDGE_DIR` nested inside a different git checkout + would report that checkout's sha. A missing `git` binary reads as "not a git repo". +- `make_totals` now returns NA for a column that is all-NA within a group. That applies to km too, + where the old code summed with `na.rm` to 0. km is NA only where a species has no habitat rows + in any WSG of the group. That was measured: no WSG × species in either schema has habitat rows + with zero spawning. So NA means "not modelled", which matches the per-WSG summary. This is + consistent, not a regression. + +## Enumeration, re-walked against the current code + +### M1: one fact, several derivations + +| Fact | Now | Consistent? | +|---|---|---| +| accessible | obs `:467`, NA if unattached `:508`; absences `:730`, unattached dropped `:766`; rollup `access IN (1,2)` | y | +| spawning capture | `.lnk_hv_buffered(h.spawning)` in obs and absences | y | +| rearing (stream) | `.lnk_hv_buffered(h.rearing)` in obs and absences | y | +| rearing_any | obs `:498`, absences `:761`, predicate rear stage `:632`, `miss_reason_rear` `:700` | y | +| habitat (`any`) | summary `:805`; misses `reason_any` `:259`. Measured 12/12 | y | +| attached / n_obs | summary `:796`; absences `:729`; `no_segment` ⇔ NA. Measured totals = n_obs + n_unattached | y | +| attach rule | obs LATERAL `:446-459` and absence LATERAL `:738-750`: identical predicate and ORDER BY | y | +| buffer window | one helper `:362`; accessibility is the own segment | y | +| stage | `.lnk_obs_stage` → dedup → summary + `stage_rows` | y | +| species admission | `spec` shared by obs `:427` and absences `:719` | y | +| species pooling (BT = BT+DV) | function default `species_obs`; driver regex `Bull Trout\|Dolly Varden` | y (still two lists that agree; the driver never overrides `species_obs`) | +| species case | `species` `:210`, `species_obs` values `:211` (fix 5), names `:212`, `absences$species_code` `:718`; driver `toupper` `:69`. Mutation-tested | **y (fixed)** | +| on-network distance | obs A/B ≤ 100 m; absences `st_dwithin(..., 100)` `:148` | **y (fixed)** | +| counting unit | per-location vs per-site, each rate within its own set | y (not a finding) | +| spawn gradient floor | `.lnk_hv_stage_min` ← `.lnk_hv_sp_params` | y | +| rear gradient floor | literal 0 `:575` | y | +| stage width floor | `ranges$$channel_width[1]` | y | +| inclusive bounds | relax to the bound; `BETWEEN` / `>=` | y | +| `width_null` label | `is.na(channel_width)` `:683` | y | +| UHC indicator | `u.spawning = 1` / `u.rearing = 1` | y | +| `overlay_applied` | `:243-244` | y | +| obs exclusions | `%in% c(TRUE, "t")` `:393-394` | y | +| config check vs run_logged vs stamp count | check: latest per WSG; `run_logged` and stamp: any row | y | +| log existence | function `:298`; stamp `:348` (fix 6) | **y (fixed)** | +| cost where species absent | NA km per WSG; totals NA if all-NA in the group | y (see note) | +| present but unmodelled | none in either schema (from round 3) | y (unguarded, unchanged) | +| bundle identity | summary/totals: schema + config_name; misses `:205` config:schema (fix 3); diff labels config:schema but selects by schema `:323-326` | **y (fixed)**, residual in notes | +| WSG population | totals: per-bundle; `totals_shared.csv` and diff: the same `shared` `:242` (fix 4) | **y (fixed)** | +| observations identical across bundles | guard `:308-317` over `shared` | y | +| misses population | buffer-0 runs, same `is_spawn` / `is_rear` | y | +| bins vs bounds | display only | y | +| absence "assessed" (new fact) | driver: `names(attr(absences, "n_absence_sites"))` `:213`; function: zero-fill `:767-773` | **n** — species axis fixed in the driver only (finding 3); WSG axis not handled (finding 1) | + +### M3: shapes of "nothing" + +| Site | Empty input | Result now | +|---|---|---| +| `.lnk_hv_spec` rbind | no present species | typed 0-row, y | +| `.lnk_hv_spec` `species_obs[[sp]]` = `character(0)` | `list(BT = character(0))` | loud `data.frame` error, y (unchanged) | +| `lnk_vd_excl` | no exclusions | 0-row, y | +| UHC | NULL / 0-row | typed 0-row, y | +| `.lnk_hv_dedup` | 0 rows | early return, y | +| `.lnk_hv_predicates` | nothing attached | NA columns, y | +| `.lnk_habitat_miss_reason` scalar default | length 0 | recycles, y | +| `.lnk_hv_absences` `count_by` | 0 attached | 0, y (tested) | +| `.lnk_hv_summary` per cell | empty cell | 1-row, share NA, y | +| outer `cbind` | ≥ 3 rows | y | +| driver `split_csv(NULL)` / `toupper(NULL)` | no `--wsgs` | `length()` test, y | +| driver `--bundles=` empty | NULL → opaque error | loud, not a finding (unchanged) | +| driver `--buffers=` empty | stop, y | | +| `fiss_absences` rbind, no species with a rule | now `return(NULL)` `:170` | **y (fixed; run D exits 0)**, but see finding 2 on how the stamp reads the NULL | +| `fiss_absences` per-species frame | 0 sites | `rep(sp, 0)`, y | +| zero-fill for a species with no rule | driver NAs it `:211-215`; NA survives summary, totals, totals_shared (run C) | **y (fixed in the driver)**; the function still returns 0 (finding 3) | +| zero-fill for a WSG outside the FISS snapshots | 0 | **n** (finding 1) | +| `make_totals` all-NA column | NA (was 0) | y | +| `shared` with one bundle | `Reduce(intersect, list(w))` = w; only used when there are 2 bundles | y | +| `stage_rows` `pick` | empty subset | y | +| misses / binned on 0 rows | 0-row frame | y | +| stamp `knowledge_sha` | `character(0)` → `"not a git repo"` `:186` | **y (fixed; run E)** | +| stamp log query | no `log` → "no run log" `:348` | **y (fixed)** | +| stamp log, zero matching rows | `string_agg` NULL → "NA" | y (cosmetic) | +| stamp `absences` NULL | knowledge set but no rule → "LNK_KNOWLEDGE_DIR unset" | **n** (finding 2) | + +### Values the relaxation and labels take from outside the predicate + +| Value | Source | Same as the predicate? | +|---|---|---| +| spawn gradient relax / `gradient_min_spawn` | `spawn_gradient_min` via `.lnk_hv_sp_params` | y | +| rear gradient relax / `gradient_min_rear` | literal 0 | y | +| spawn / rear width relax | `ranges$$channel_width[1]` | y | +| `width_null` | segment `channel_width` | y | +| `not_accessible` | `streams_access` | accepted tradeoff | +| model | cw only | accepted tradeoff | +| `format(x, scientific = FALSE)` vs `%.10g` | shipped minimums are exact | y (unchanged; a minimum with more than 7 significant digits would round) | + +## Verdict + +The six round-3 fixes hold and none regressed. Totals, totals_shared, diff and misses agree with +each other and with the summary on the measured runs. The remaining defect is the same "not +assessed reads as 0" mechanism on the WSG axis (finding 1), plus the stamp and API wording that go +with it (findings 2 and 3). diff --git a/planning/archive/2026-09-issue-283-habitat-validation/review-round5.md b/planning/archive/2026-09-issue-283-habitat-validation/review-round5.md new file mode 100644 index 00000000..17ad8ee9 --- /dev/null +++ b/planning/archive/2026-09-issue-283-habitat-validation/review-round5.md @@ -0,0 +1,52 @@ +# Review round 5 — `*_outside_uhc` counts (commit 9a4c191) + +Scope: `.lnk_hv_summary()` new counts/shares, driver `make_totals()` and `diff.csv`. +Tests from a copy (fixture schema renamed `zz_lnk_validate_r5`): +`NOT_CRAN=true devtools::test(filter="habitat_validate")` -> FAIL 0 | PASS 86. + +## Checked and consistent (no finding) + +- **Pairs with existing counts.** `n_obs_outside_uhc_spawn = n_obs - n_in_uhc_spawn` and + `_rear` likewise, by construction: the same `d` (stage-subset, unattached rows already + dropped at `d <- d[!un, ]`) feeds all of them. `in_uhc_*` are SQL `EXISTS`, so never NULL; + `spawning` / `rearing_any` are NA only on unattached rows, which are removed first. +- **UHC semantics.** `in_uhc_*` tests indicator `= 1` on species + `blue_line_key`, which is + what `fresh::frs_habitat_overlay()` forces (`lower(trim(k.::text)) IN ('true','t','1')`, + keyed on `blue_line_key`, `SET spawning/rearing = TRUE`). Forced `rearing` is inside + `rearing_any`, so pairing `rearing_any` with `in_uhc_rear` is right. +- **Zero-row groups.** `sum(!logical(0))` is `0L`; the share `ifelse(0 > 0, ..)` gives `NA`, + matching the `share()` convention for `n_obs == 0`. +- **make_totals.** The new `n_*` columns match `^n_` so they are summed; they are never NA, so + the all-NA branch cannot misfire; shares are recomputed from summed counts, not averaged. +- **diff.csv across bundles.** Both bundles load byte-identical + `overrides/user_habitat_classification.csv` (cmp), so the outside-UHC denominators are the + same observation set on both sides; with `bcfishpass` at `apply_habitat_overlay: no` the + delta is a like-for-like comparison on the non-overlay population, as intended. + +## Finding 1 (real, moderate): at `buffer_m > 0` the outside-UHC share still includes overlay-forced capture + +`in_uhc_*` tests the **point** (`a.m BETWEEN u.drm AND u.urm`), but at `buffer_m > 0` +`.lnk_hv_buffered()` also credits habitat on any segment starting in `[a.seg_drm, a.m + buf)`. +An observation just **below** a UHC reach is therefore counted as outside UHC, yet is captured +by the overlay-forced segment inside the reach. The doc added in this commit says the share is +"the part of the score the observations did not decide" — at buffer 100 that is not true. + +Size (read-only probe on docker fwapg, bcfishobs A/B, province-wide, not yet filtered to +presence or modelled WSGs): CH locations inside a UHC spawning reach 1764; CH locations +**outside** one but with a UHC spawning reach starting < 100 m upstream on the same +`blue_line_key`: **52**. Rearing: 22 inside, 2 below. BT: no UHC rows. So up to ~52 CH +locations per the full run can move into `n_spawning_outside_uhc` at buffer 100 by +construction — only in the overlay-on bundle, so it also lands in +`share_spawning_outside_uhc_delta` in diff.csv as an apparent model difference. + +Same mechanism, smaller, at buffer 0: the attach rule picks a segment **starting within 1 m +upstream** of the point, so a point < 1 m below a UHC start (both are break points) attaches +to a forced segment while `a.m` tests outside. + +Fix options: (a) test the reach against the range capture actually reads, e.g. +`u.upstream_route_measure >= a.m AND u.downstream_route_measure <= greatest(a.m, a.seg_drm) + ` +(strict `<` for `buf > 0` to mirror `.lnk_hv_buffered`), accepting that `n_in_uhc_*` then +varies with `buffer_m`; or (b) keep the point test and state in the roxygen that the +outside-UHC share is exact only at `buffer_m = 0`. + +Nothing else found. diff --git a/planning/archive/2026-09-issue-283-habitat-validation/review-round6.md b/planning/archive/2026-09-issue-283-habitat-validation/review-round6.md new file mode 100644 index 00000000..0936ff31 --- /dev/null +++ b/planning/archive/2026-09-issue-283-habitat-validation/review-round6.md @@ -0,0 +1,109 @@ +# Review round 6: source-agnostic `observations` (staged delta diff_r6.patch) + +Reviewed `R/lnk_habitat_validate.R` and `tests/testthat/test-lnk_habitat_validate.R` in full. +The tests ran in a `cp -r` copy with the fixture schema renamed: 100 expectations, 0 failures. +Probes ran against local docker fwapg, using temp tables and a renamed probe schema that was +dropped afterwards. + +## Findings + +### 1. A source with no key silently skips `observation_exclusions` (medium, silently wrong numbers) + +`R/lnk_habitat_validate.R:465-469` and `:524-525`. When a source has no `observation_key`, +the key is generated as `'row' || row_number()`, and the exclusion `NOT EXISTS` can never match +a generated key. So `data_error` and `release_exclude` records are counted, with no message. + +This contradicts the delta's own rule, "a filter whose column the source does not have is an +error, not a silent pass" (roxygen lines 37-40). That rule is enforced for `match_type` and +`source` but not for this filter. The most likely data-frame use is the one the docs suggest: +a held-out subset of bcfishobs. A user who selects columns and drops `observation_key` gets +this silently. + +Measured on the fixture. `o3` is the `data_error` record. +- `o3` at its fixture position: the location at 50 has `n_records` 2 with the key and 3 without it. +- `o3` moved to 250: `n_obs` for `any` is 4 with the key and 5 without it. + +Fix: when the source has no `observation_key` and the exclusion key set is non-empty, error. +The error should name the opt-out (`loaded$observation_exclusions <- NULL`), the same way the +other two filters name theirs. + +### 2. Generated `observation_key` is not deterministic, and "rowN" is not input row N (medium, reproducibility) + +`R/lnk_habitat_validate.R:468`. `row_number() OVER ()` has no ORDER BY. + +For a permanent table the plan is `WindowAgg -> Gather (3 workers) -> Parallel Seq Scan`. This +was checked with EXPLAIN on `bcfishobs.observations` using the same join and filter shape. +Three identical read-only runs that assigned the keys produced three different key-to-record +maps (md5 `86eee…`, `650c…`, `2578…`). + +The key reaches the output (`observations$observation_key`). It also chooses the "first record +by observation_key" that `.lnk_hv_dedup` keeps for each location, and that record supplies `m`, +`match_class`, `activity` and the other per-record fields. So the output table is not +byte-reproducible. Counts move only when records at one `round(m)` carry different `m`. That +was 0 of 1383 MORR/BULK bcfishobs locations, but nothing stops another source having it. + +Separately, the generated number is assigned after the join and filters, so it does not name +the caller's row. In the fixture, input row 1 (`o1`) came back as `row6` and input row 9 as +`row3`. A caller cannot join results back to their own data frame. + +Fix: +- **Data frame:** add `observation_key = as.character(seq_len(nrow(d)))` in R before + `dbWriteTable`. That is deterministic and maps back to the caller's rows. +- **Table:** either require `observation_key`, or order the window by every selected source + column. + +### 3. Species and WSG codes are normalised on one end only (medium, silent zero) + +`R/lnk_habitat_validate.R:520-522` against `:238-240`. `species` and `species_obs` are +upper-cased, and `aoi` is forced to `^[A-Z]{3,5}$`, but the observation side is compared raw. + +Measured on a data-frame source: +- `species_code = "bt"`, `watershed_group_code = "aaaa"` and `species_code = "BT "` each give + `n_obs` 0 on every row, with no error. + +bcfishobs is upper-case, so the default is unaffected. The delta's purpose is to accept other +sources, and this is where they will differ. + +Fix: `upper(trim(...))` on both observation columns in the SELECT and the JOIN. The join is +already a seq-scan hash join (see the plan above), so no index is lost. Alternatively, +normalise the data frame in R before writing it. + +### 4. An empty string in `source_exclude` drops every record (low, silent zero) + +`:220-222` validation plus `:477-479`. `left(x, length('')) = ''` is true for every row, +including NULL sources after `coalesce`. So `source_exclude = ""` gives `n_obs` 0 everywhere +(measured, probe E). Add `all(nzchar(source_exclude))` to the `stopifnot`. + +### 5. `is_spawn` / `is_rear` stored as double error with a Postgres cast message (low, loud) + +`opt("is_spawn", "boolean")` at `:528`. A 0/1 column read by readr arrives as double. It fails +with `cannot cast type double precision to boolean`, which does not say which argument is +wrong. Integer, logical and `"yes"`/`"t"` text all work. On the data-frame path, coerce with +`as.logical()` in R, or check the type and name the column in the error. + +## Checked and not a defect + +- **SQL injection.** The table name goes through `.lnk_validate_identifier` (`^[a-zA-Z_][a-zA-Z0-9_.]*$`). + Only whitelisted column names are written or interpolated (`cols_keep`, `opt()`/`has()` over + fixed names). Values travel by `dbWriteTable` or a bound `$1`. `source_exclude` travels by + temp table, and a `LIKE` wildcard (`a_`, `50%`) is matched literally (probed). +- **Temp-table overwrite.** RPostgres 1.4.10 `dbRemoveTable(temporary = TRUE)` qualifies the + DROP with the session's `pg_temp_N`. A same-named permanent table in `search_path` cannot be + dropped by `lnk_vd_src` or `lnk_vd_srcx`. Repeated calls in one session, data frame then + table, give correct results. +- **Odd inputs, all correct.** + - A 0-row data frame. + - Factor codes, and character `blue_line_key` and measure. + - `integer64` `blue_line_key`. + - A tibble. + - A numeric `observation_key`. + - An all-NA logical `is_spawn` column. + - `match_types = NULL` (the `params = NULL` path, which keeps match C). + - `is_spawn` / `is_rear` NA falling back to wording. +- **Stage flags** can never be NA after the `ifelse` fallback, so `d[d$is_spawn, ]` is safe. +- **`data-raw/habitat_validate.R`** calls with named arguments, so inserting `source_exclude` + before `buffer_m` breaks no caller. A positional numeric would fail `is.character` loudly. +- **Latent, not a bug today:** the optional-column set is written twice, in `cols_keep` + (`:429-431`) and in the `opt()`/`has()` calls (`:457-528`). The two agree now. If a column + were added to one and not the other, a data frame's column would be dropped before writing + and read as NULL. diff --git a/planning/archive/2026-09-issue-283-habitat-validation/task_plan.md b/planning/archive/2026-09-issue-283-habitat-validation/task_plan.md new file mode 100644 index 00000000..14775a10 --- /dev/null +++ b/planning/archive/2026-09-issue-283-habitat-validation/task_plan.md @@ -0,0 +1,129 @@ +# Task: Validate modelled habitat against fish observations per species and watershed group (#283) + +link compares its output with bcfishpass but never with fish observations. The only +observation-vs-model comparison is the Babine SK work (by hand, one species). #284 set +calibrated CH/BT thresholds in `default_tuned` and left them unscored pending this validator. + +## Context +link scores itself only against bcfishpass (a model), never against fish. #284 just set +calibrated CH/BT thresholds in `default_tuned` and left them **unscored** — its step 5 +waits on this validator. #284 also already wrote the hard SQL, one-off, in +`data-raw/query_habitat_thresholds_obs.R` (observation → segment the model tests, exclusion / +release / presence / match-type ledger, DV pooled with BT, stage from activity/life_stage). +#283 turns that into a package function plus a driver that emit a tidy +bundle × species × WSG table, so two bundles can be diffed. + +**Measured during exploration (changes the issue body):** +- **fresh#218 is a join artifact, not duplication.** `fresh.streams_habitat_ch` is + 2,329,201 rows = 2,329,201 distinct `(id_segment, watershed_group_code)`; Naver Creek + joins 187 rows on the full PK and 4,301 on bare `id_segment` (#203). The issue's + "use the per-WSG schemas" guidance is unnecessary — the persist schemas are correct + when joined on the full PK. Issue body gets corrected in Phase 1; fresh#218 gets a + comment/edit offered separately (not in this PR). +- **Accessible capture is partly circular.** Observations are pipeline inputs: they lift + barriers (`observation_threshold` BT 1, CH 5), are break points, and + `user_habitat_classification` forces habitat. Report that, don't hide it: capture on + spawning/rearing is the meaningful score; accessible capture is a sanity check, and + observations on *inaccessible* segments are reported as access misses. +- `fresh_default` (55 WSGs) and `fresh` (bcfishpass config, 59 WSGs with access) share + 51 WSGs, both with `streams_access`. `fresh_default_tuned` does not exist yet. + FISS snapshot WSGs in `fresh_default`: COTR, PINE, UPCE. + +## Design +- **`lnk_habitat_validate(conn, aoi, cfg, loaded, species, schema = cfg$pipeline$schema, + observations = "bcfishobs.observations", species_obs = list(BT = c("BT", "DV")), + match_types = c("A", "B"), buffer_m = 0, absences = NULL)`** — noun_verb, issue's + working name, `@family compare`. `aoi` is a vector of WSG codes. +- Returns `list(summary, observations)`: + - `summary`: one row per `wsg × species × stage` (`any`, `spawn`, `rear`) with + `n_obs`, `n_accessible`, `n_spawning`, `n_rearing`, `n_habitat` (spawn|rear), + `share_*`, `n_inaccessible`, `n_in_uhc`, cost `accessible_km`, `spawning_km`, + `rearing_km` (via existing `lnk_rollup_wsg()`), plus absence columns + (`n_absence`, `n_absence_spawning`, `n_absence_rearing`) when `absences` is given, + and `schema`, `config_name`, `buffer_m` so bundles stack. + - `observations`: one row per retained location with segment `gradient`, + `channel_width`, `channel_width_source`, `edge_type`, `waterbody_type`, flags, and a + diagnostic `miss_reason` (`not_accessible`, `fails_gradient`, `fails_width`, + `width_null`, `waterbody`, `connectivity` = passes predicate but not habitat) computed + against the bundle's `parameters_habitat_thresholds.csv`. Labelled diagnostic: it + approximates `rules.yaml`, it is not the rules. +- **Access = `streams_access.access_ IN (1, 2)`**, same definition as + `lnk_rollup_wsg()`'s `accessible_km`, so capture and cost agree. Fail loud when a WSG + has no `streams_access` rows. (#284 used `streams_habitat.accessible`; the difference is + noted in research.) +- **Segment attach = #284's rule** (segment starting within 1 m, i.e. upstream; else the + containing one), all joins on the full PK. **`buffer_m`** extends capture upstream along + the same `blue_line_key` (observation points sit at the downstream end of sites); + default 0, the driver reports 0 and 100 as the sensitivity for that bias. +- Filters reuse the pipeline's logic: exclusions as `.lnk_pipeline_prep_observations()`, + presence via `.lnk_wsg_species_present()`; `species_obs` admits DV only where BT is + present (operator decision in #284). Stage regex moves from the #284 script into + `.lnk_obs_stage()`. +- `absences`: generic frame `(watershed_group_code, blue_line_key, + downstream_route_measure, species_code)`; the caller locates them. FISS parsing stays in + the driver because `knowledge` is private — only aggregates are committed. + +## Design changes from the plan review (review-plan.md, 2026-09-26) + +- `schema` is **required** (B1): `default` declares `pipeline.schema: fresh`, which the + bcfishpass bundle writes. Where `.log` records a WSG, its `config_name` must + equal `cfg$name`; unlogged WSGs pass and are flagged `run_logged = FALSE`. +- Miss reasons re-evaluate the bundle's own predicates (`fresh::frs_habitat_predicates()` + over `cfg$rules` + thresholds) with gradient / width relaxed (G1), instead of + re-implementing the rules from the thresholds CSV. +- Unattached locations counted as `n_unattached`, not as inaccessible (G2). +- `rearing_any` (stream + lake + wetland) reported beside stream `rearing` (G3). +- `pg_temp.` on temp-table drops. + +## Phases +### Phase 1: Correct the frame +- [x] Edit #283 body: fresh#218 finding (full-PK join is correct), circularity of + accessible capture, the decided output shape +- [x] Record the fresh#218 measurement in `findings.md` + +### Phase 2: Tests first +- [x] `tests/testthat/test-lnk_habitat_validate.R`: arg validation; `.lnk_obs_stage()` + on activity/life_stage fixtures; `miss_reason` classification; summary shares +- [x] DB integration test (`skip_if_no_db()`) on a fixture schema `zz_lnk_validate_probe` + with `streams`, `streams_habitat_bt`, `streams_access`, and a fixture observations + table: two WSGs sharing `id_segment` values (full-PK guard — restore a bare join and + watch it fail), an excluded key, a release, a DV record in a no-BT WSG, a buffer case, + one absence + +### Phase 3: `lnk_habitat_validate()` +- [x] `R/lnk_habitat_validate.R`: exported function + internal SQL builders / helpers + (temp tables, parameterised; species alpha-validated as in `lnk_rollup_wsg()`) +- [x] Runnable-by-design `@examples` (`\dontrun{}`, DB required — same as siblings) +- [x] `devtools::document()`, tests green, `lintr::lint_package()` clean + +### Phase 4: Driver + baseline run +- [x] `data-raw/habitat_validate.R` (`--schemas=`, `--wsgs=`, `--species=`, + `--buffers=0,100`, optional `LNK_KNOWLEDGE_DIR` for FISS absences via + `lnk_points_snap()`), writes `data-raw/logs/habitat_validate_283/`: `summary.csv`, + `misses_binned.csv` (gradient / width / edge-type bins, aggregates only), + `diff.csv` (bundle A vs B per species × WSG × stage), `stamp.txt` +- [x] Run read-only: `fresh_default` vs `fresh` on their 51 shared WSGs, CH + BT +- [x] Sanity: summary obs counts reconcile with #284's ledger for `fresh_default` + +### Phase 5: Record +- [x] `research/habitat_validation.md` (method, biases incl. circularity, baseline + numbers); index in `research/README.md`; point `research/habitat_thresholds.md` + step 5 at it +- [x] CLAUDE.md status above the marker; NEWS entry deferred to `/gh-pr-merge` (release bookkeeping) + +## Out of scope +Running `default_tuned` / candidate thresholds — that is #284 step 5 and needs its own +run decisions (config, schema, closure, `dams`, `mapping_code`) stated at launch. + +## Validation +- [x] Tests: new file 91 pass incl. DB fixture; full suite FAIL 3 / PASS 2042, the 3 being the `:63333` tunnel down (test-lnk_db_conn, test-lnk_wsg_resolve x2), untouched by this branch. `devtools::check()`: its 1 ERROR is those same tunnel tests; 3 WARNINGs + 2 NOTEs are pre-existing files. lintr clean on new R code. The full suite caught one real defect: the preflight drift guard needed `frs_habitat_predicates` declared (fb5a27a), and review of that found the v0.33.0 `model =` incompatibility +- [x] `/code-check`: 5 rounds (review-round1..5.md); loop ended by enumeration (R3/R4, 59 rows), R5's finding fixed and pinned by a test +- [x] PWF checkboxes match landed work +- [ ] `/planning-archive` on completion + +## Verification +`Rscript -e 'devtools::test(filter = "habitat_validate")'`; then +`Rscript data-raw/habitat_validate.R --schemas=fresh_default,fresh --species=CH,BT` +and check `summary.csv` n_obs for `fresh_default` against +`data-raw/logs/habitat_thresholds_284/obs_ledger.csv` step 7 (same filters, access +definition aside). diff --git a/research/README.md b/research/README.md index 1e49931d..ae38c544 100644 --- a/research/README.md +++ b/research/README.md @@ -29,6 +29,7 @@ renamed. | File | Covers | |---|---| | [`habitat_thresholds.md`](habitat_thresholds.md) | CH and BT gradient and channel-width thresholds: observation evidence, literature, and the `default_tuned` candidates | +| [`habitat_validation.md`](habitat_validation.md) | Scoring a run against fish observations (`lnk_habitat_validate()`): capture, cost, miss reasons, absences; `default` vs `bcfishpass` baseline | ## Runs, scope and infrastructure diff --git a/research/habitat_thresholds.md b/research/habitat_thresholds.md index 6df7d35f..1ad32d68 100644 --- a/research/habitat_thresholds.md +++ b/research/habitat_thresholds.md @@ -1,6 +1,6 @@ # Habitat thresholds — CH and BT gradient and channel width -**Verified:** 2026-09-26 · **Issues:** #284 (this), #283 (scoring, pending), #282 (`default_tuned`) · **Produced by:** `data-raw/query_habitat_thresholds_obs.R`, `data-raw/query_habitat_thresholds_fiss.R` → `data-raw/logs/habitat_thresholds_284/`; literature review archived with #284's PWF (`literature.md`) · **Status:** candidates set in `default_tuned`, **unscored** +**Verified:** 2026-09-26 · **Issues:** #284 (this), #283 (the validator, [`habitat_validation.md`](habitat_validation.md)), #282 (`default_tuned`) · **Produced by:** `data-raw/query_habitat_thresholds_obs.R`, `data-raw/query_habitat_thresholds_fiss.R` → `data-raw/logs/habitat_thresholds_284/`; literature review archived with #284's PWF (`literature.md`) · **Status:** candidates set in `default_tuned`, **unscored** ## Verdict @@ -257,6 +257,17 @@ committed here. ## Step 5 — scoring (#283) +The validator exists: `lnk_habitat_validate()` and `data-raw/habitat_validate.R` +([`habitat_validation.md`](habitat_validation.md) has the method, the baseline, and the +command). Two findings from it change how this step is read: + +- **CH spawning cannot be scored on spawn-staged observations.** 237 of 245 sit in + `user_habitat_classification` spawning reaches, which `default` forces to habitat. + Use the any-stage capture and `share_spawning_outside_uhc`. +- **BT rearing 0.1349 scores in-sample,** because it is the P95 of the same BT+DV + locations. Hold records out (by project, date or WSG) through the function's + `observations` argument. + Run `default` and `default_tuned` on pilot WSGs with both species present and observations to score against. The run decisions have to be stated before launch: diff --git a/research/habitat_validation.md b/research/habitat_validation.md new file mode 100644 index 00000000..e81ab5d5 --- /dev/null +++ b/research/habitat_validation.md @@ -0,0 +1,138 @@ +# Habitat validation against fish observations + +**Verified:** 2026-09-26 · **Issues:** #283 (this), #284 (step 5 scores with it), #203 (full-key joins), fresh#218 · **Produced by:** `lnk_habitat_validate()` via `data-raw/habitat_validate.R` → `data-raw/logs/habitat_validate_283/` (link @ `0c19e0a`) · **Status:** baseline only; `default_tuned` not yet scored + +## What it measures + +For a persisted run (one bundle's schema), per WSG × species × stage (`any`, `spawn`, +`rear`): + +- **Capture:** the share of observation locations on segments the run models as + accessible, spawning, stream rearing, or any rearing (stream, lake or wetland). +- **Cost:** `accessible_km`, `spawning_km` and `rearing_km` from `lnk_rollup_wsg()`, so + capture cannot be raised by calling more of the network habitat. +- **Misses:** why each missed location's segment is not habitat. The bundle's own + predicates (`fresh::frs_habitat_predicates()` over its `rules.yaml` and thresholds) are + re-evaluated with the gradient, then the width, relaxed to the stage minimum. + `fails_gradient` means the gradient maximum is what binds. +- **Absences:** FISS sites sampled without the species, as a false-positive check. + +The driver scores two bundles and diffs them on the WSGs both hold. It first asserts +that both retained the same observations. + +## Method + +- **Observations:** `bcfishobs.observations` with `observation_exclusions` + (`data_error | release_exclude`) and every `Releases Database` record removed. Species + must be present in the WSG per `wsg_species_presence`. DV records count as BT where BT + is present (the #284 pooling). Match types are A/B only (stream, within 100 m). One + location per species × `blue_line_key` × metre, which is staged if any record there is. +- **Other sources:** `observations` takes any table or data frame that has + `species_code`, `watershed_group_code`, `blue_line_key` and + `downstream_route_measure`, so crew data, eDNA or a held-out subset can be scored the + same way. A source can give its own `is_spawn` / `is_rear`. The two bcfishobs filters + (`match_types`, `source_exclude`) default on. When the source lacks the column a filter + needs, the function errors rather than skipping it, so a source without them passes + `NULL`. Measured: with the defaults, the bcfishobs path reproduces this baseline + exactly (120 of 120 summary rows, 5 WSGs). +- **The segment:** the one *starting* within 1 m of the point, because the pipeline + breaks at observations; otherwise the containing one. Every join is on the full + `(id_segment, watershed_group_code)` key. +- **Accessible:** `streams_access.access_ IN (1, 2)`, the definition `accessible_km` + uses. The habitat flags are gated by `streams_habitat.accessible`, which differs + slightly, so spawning capture is not strictly a subset of accessible capture. #284 + used the latter. +- **Buffer:** `buffer_m` credits habitat that starts within that distance *upstream* on + the same stream, because points often mark the downstream end of a site. The UHC flags + test the same window. The driver reports 0 and 100 m. +- **Absences:** from the private `knowledge` repo's FISS snapshots (COTR, LNTH, PINE, UNTH + and UPCE), snapped within 100 m and kept only inside those WSGs. A site is an absence + of a species when it caught no fish, or when it listed species and none of them could + be that species. A site that caught fish but listed none is left out: that is most + empty lists, and counting them was 63 % of BT absences in the first draft. A WSG × + species with no absence rows reports `NA`, not 0. + +## Reading it: what the score is not + +1. **Accessible capture is partly circular.** Observations lift barriers + (`observation_threshold` BT 1, CH 5) and are break points. It reads 96–99 % and says + little. +2. **CH spawning capture is almost entirely the overlay.** With + `apply_habitat_overlay` on, `default` forces `user_habitat_classification` reaches to + habitat. **237 of the 245** spawn-staged CH locations in the shared WSGs sit in a + confirmed spawning reach. Outside those reaches there are **8** locations, and 4 are + captured under either bundle. Spawn-staged CH capture cannot score a CH spawning + threshold. The `*_outside_uhc` shares are the part the observations did not decide. +3. **Thresholds set from these observations score in-sample.** BT `rear_gradient_max` + 0.1349 in `default_tuned` is the snapped P95 of these same BT+DV locations, so part of + its capture gain is guaranteed. Score it on held-out records by passing a different + `observations` table to the function (by project, by date, or by WSG). +4. **The two schemas differ in build vintage as well as config.** 4 of the 55 + `fresh_default` WSGs and 39 of the 59 `fresh` WSGs have run-log rows. The rest predate + the log, so the diff below is not a pure config effect. +5. **Known biases:** sampling clusters near road access. And fish are only observed + where they have access, so observed gradients are cut off at the access limit. + +## Baseline: `default` vs `bcfishpass`, 51 shared WSGs, buffer 0 + +`totals_shared.csv`. Shares are % of observation locations (n_obs). + +| species | stage | n | bundle | spawning | stream rearing | any rearing | spawning outside UHC | spawning km | rearing km | +|---|---|---|---|---|---|---|---|---|---| +| CH | any | 1,734 | bcfishpass | 82.1 | 86.6 | 86.6 | 76.7 | 15,640 | 21,570 | +| CH | any | 1,734 | default | 85.2 | 87.7 | 88.8 | 76.9 | 15,959 | 27,602 | +| CH | spawn | 245 | bcfishpass | 84.5 | 86.5 | 86.5 | 50.0 (n 8) | | | +| CH | spawn | 245 | default | 98.4 | 88.2 | 91.4 | 50.0 (n 8) | | | +| CH | rear | 510 | bcfishpass | 76.5 | 84.1 | 84.1 | | | | +| CH | rear | 510 | default | 77.5 | 84.7 | 84.7 | | | | +| BT | any | 4,600 | bcfishpass | 64.5 | 81.7 | 81.7 | 64.5 | 46,512 | 76,872 | +| BT | any | 4,600 | default | 65.4 | 81.1 | 82.8 | 65.4 | 47,099 | 75,280 | +| BT | rear | 1,047 | bcfishpass | 41.8 | 63.6 | 63.6 | | | | +| BT | rear | 1,047 | default | 44.3 | 65.9 | 66.5 | | | | +| BT | spawn | 81 | bcfishpass | 45.7 | 70.4 | 70.4 | | | | +| BT | spawn | 81 | default | 45.7 | 70.4 | 72.8 | | | | + +BT has no `user_habitat_classification` rows, so its outside-UHC share is its share. + +- **BT:** `default` captures slightly more rear-staged locations (66.5 vs 63.6 % on any + rearing) with 1,592 km *less* rearing. That is the edge-type rule (bcfishpass's BT + `rear: []` tests any edge), not the thresholds, which are the same in both bundles. +- **CH:** `default` models 6,032 km (28 %) more rearing for 1.1 points more stream + rearing capture on the any stage (2.2 with lake and wetland rearing). That is the cost + column doing its job. +- **Buffer 100 m** adds 0.4–2.8 points of spawning capture and 0–1.6 of rearing capture + across rows. The "downstream end of the site" bias is real but small. + +**Absences** (only 3 of the 51 shared WSGs are FISS snapshots: COTR, PINE, UPCE). CH: +68 sites, 11 (16 %) on modelled spawning, 12–15 on rearing. BT: 858 sites, 587 (68 %) on +modelled spawning, 678–686 on rearing. Most FISS sampling is juvenile electrofishing, +which says little about BT spawning. Not decision-grade. + +**Misses** (`misses.csv`, `default` over its 55 WSGs, any stage): BT 344 `fails_gradient`, 160 +`width_null`, 126 `fails_width`, 100 `fails_gradient_and_width`, 89 `post_predicate` +(clustering or gating), 42 `not_accessible`. CH 51 `fails_gradient`, 47 `width_null`, +27 `not_accessible`. For BT the gradient maximum is the binding threshold, which is +what #284 moved. NULL width is the second: 160 locations, which is consistent with +#284's finding that 49 % of accessible BT stream length has no width. +`misses_binned.csv` carries the gradient × width bins for each. + +## Reconciliation with #284 + +At buffer 0 on its own 55 WSGs, `fresh_default` retains **5,104** BT+DV and **1,745** CH +locations, exactly #284's pooled counts. The filters are the same code path. + +## Using it for #284 step 5 + +Model `default_tuned` into its own schema (`fresh_default_tuned`), stating the run +decisions at launch. Then run: + + Rscript data-raw/habitat_validate.R \ + --bundles=default:fresh_default,default_tuned:fresh_default_tuned --wsgs=... + +- Read `share_rearing_any` against `rearing_km` for BT on the rear stage. +- Read `share_*_outside_uhc` for CH. +- Hold out records for the in-sample BT value (point 3 above). + +`diff.csv` gives the per-WSG deltas. It is per WSG × species × stage, so step 5's +question 2 (how much newly admitted BT rearing sits above spawning) still needs a +segment-level diff. diff --git a/tests/testthat/test-lnk_habitat_validate.R b/tests/testthat/test-lnk_habitat_validate.R new file mode 100644 index 00000000..44e4731a --- /dev/null +++ b/tests/testthat/test-lnk_habitat_validate.R @@ -0,0 +1,473 @@ +# lnk_habitat_validate() — observation-based scoring of a persisted run. +# Closing parens sit on the last argument line, as in the other test files. +# nolint start: indentation_linter + +test_that(".lnk_obs_stage reads spawning from activity and rearing from activity or juvenile stage", { + st <- link:::.lnk_obs_stage( + activity_code = c("SPL", "R", NA, "OBS", "S", "M"), + activity = c("Spawning - live", "Rearing", NA, "Observed", NA, "Migrating"), + life_stage = c("Adult", NA, "Fry", "Adult", NA, "Juvenile")) + expect_identical(st$is_spawn, c(TRUE, FALSE, FALSE, FALSE, TRUE, FALSE)) + expect_identical(st$is_rear, c(FALSE, TRUE, TRUE, FALSE, FALSE, TRUE)) +}) + +test_that(".lnk_obs_stage does not read NA activity as a stage", { + st <- link:::.lnk_obs_stage(NA_character_, NA_character_, NA_character_) + expect_false(st$is_spawn) + expect_false(st$is_rear) +}) + +test_that(".lnk_habitat_miss_reason attributes each miss once, in order", { + r <- link:::.lnk_habitat_miss_reason( + captured = c(TRUE, NA, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE), + accessible = c(TRUE, NA, FALSE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE), + channel_width = c(5, NA, 5, 5, 5, NA, 5, 5, 5, 5), + p = c(TRUE, NA, TRUE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE), + p_g = c(TRUE, NA, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, FALSE), + p_w = c(TRUE, NA, TRUE, TRUE, FALSE, TRUE, TRUE, TRUE, FALSE, FALSE), + p_gw = c(TRUE, NA, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, FALSE)) + expect_identical(r, c(NA, "no_segment", "not_accessible", "post_predicate", + "fails_gradient", "width_null", "fails_width", + "fails_gradient_or_width", "fails_gradient_and_width", + "rule_excludes")) +}) + +test_that(".lnk_habitat_miss_reason separates a gradient below the window from one above it", { + r <- link:::.lnk_habitat_miss_reason( + captured = c(FALSE, FALSE), accessible = c(TRUE, TRUE), + channel_width = c(5, 5), p = c(FALSE, FALSE), p_g = c(TRUE, TRUE), + p_w = c(FALSE, FALSE), p_gw = c(TRUE, TRUE), + gradient = c(-0.02, 0.2), gradient_min = c(0, 0)) + expect_identical(r, c("gradient_below_min", "fails_gradient")) +}) + +test_that(".lnk_hv_relax fixes gradient and width without touching lookalike columns", { + p <- "s.gradient BETWEEN 0 AND 0.05 AND s.channel_width >= 2 AND s.gradient_x > 1" + r <- link:::.lnk_hv_relax(p, gradient = 0, width = 2) + expect_false(grepl("s\\.gradient ", r)) + expect_false(grepl("s\\.channel_width", r)) + expect_true(grepl("s.gradient_x", r, fixed = TRUE)) + expect_identical(link:::.lnk_hv_relax(p), p) +}) + +test_that(".lnk_hv_stage_min takes the spawn gradient floor from parameters_fresh", { + spp <- list(spawn_gradient_min = 0.0025, + params_sp = list(ranges = list( + spawn = list(gradient = c(0, 0.05), channel_width = c(4, 9999)), + rear = list(gradient = c(0, 0.1), channel_width = c(1.5, 9999))))) + m <- link:::.lnk_hv_stage_min(spp) + expect_identical(m$spawn[["gradient"]], 0.0025) + expect_identical(m$spawn[["width"]], 4) + expect_identical(m$rear[["gradient"]], 0) + expect_identical(m$rear[["width"]], 1.5) +}) + +test_that("the predicate call passes no argument fresh@v0.33.0 lacks", { + # DESCRIPTION pins fresh >= 0.33.0, whose frs_habitat_predicates() takes + # only `sp_params`; `model =` arrived later and would error there. + calls <- list() + walk <- function(e) { + if (is.call(e)) { + if (identical(e[[1]], quote(fresh::frs_habitat_predicates))) { + calls[[length(calls) + 1L]] <<- e + } + for (a in as.list(e)[-1]) if (!missing(a)) walk(a) + } + } + walk(body(link:::.lnk_hv_predicates)) + expect_length(calls, 1L) + expect_length(as.list(calls[[1]])[-1], 1L) + expect_null(names(as.list(calls[[1]])[-1])) +}) + +test_that(".lnk_hv_spec admits observation species only where the model species is present", { + presence <- data.frame( + watershed_group_code = c("AAAA", "BBBB"), + bt = c("t", ""), ch = c("t", "t"), notes = c("", ""), + stringsAsFactors = FALSE) + s <- link:::.lnk_hv_spec( + presence, aoi = c("AAAA", "BBBB", "CCCC"), species = c("BT", "CH"), + species_obs = list(BT = c("BT", "DV"))) + got <- paste(s$watershed_group_code, s$species_code, s$obs_species) + expect_setequal(got, c("AAAA BT BT", "AAAA BT DV", "AAAA CH CH", + "BBBB CH CH")) +}) + +test_that(".lnk_hv_spec returns a typed empty frame when nothing is present", { + presence <- data.frame(watershed_group_code = "AAAA", bt = "", + stringsAsFactors = FALSE) + s <- link:::.lnk_hv_spec(presence, "AAAA", "BT", list()) + expect_identical(nrow(s), 0L) + expect_named(s, c("watershed_group_code", "species_code", "obs_species")) +}) + +test_that(".lnk_hv_dedup merges records at one location and ORs their stages", { + obs <- data.frame( + observation_key = c("b", "a", "c"), + species_code = "BT", obs_species = c("BT", "DV", "BT"), + blue_line_key = 1L, m = c(50.2, 50, 120), + activity_code = c("S", NA, NA), activity = c("Spawning", NA, NA), + life_stage = c(NA, "Fry", NA), stringsAsFactors = FALSE) + d <- link:::.lnk_hv_dedup(obs) + expect_identical(nrow(d), 2L) + loc50 <- d[round(d$m) == 50, ] + expect_identical(loc50$observation_key, "a") + expect_true(loc50$is_spawn) + expect_true(loc50$is_rear) + expect_identical(loc50$n_records, 2L) + expect_identical(loc50$obs_species, "BT;DV") +}) + +test_that("lnk_habitat_validate validates its arguments before touching the DB", { + cfg <- lnk_config("default") + conn <- structure(list(), class = c("PqConnection", "DBIConnection")) + expect_error(lnk_habitat_validate(conn, "MORR", cfg, list(), "BT"), + "schema") + expect_error(lnk_habitat_validate(conn, "morr", cfg, list(), "BT", "s")) + expect_error(lnk_habitat_validate(conn, "MORR", cfg, list(), "B;T", "s")) + expect_error(lnk_habitat_validate(conn, "MORR", cfg, list(), "BT", "s", + buffer_m = -1)) + expect_error(lnk_habitat_validate(conn, "MORR", cfg, list(), "BT", "s", + match_types = "A'")) + expect_error(lnk_habitat_validate(conn, "MORR", cfg, list(), "BT", "s", + observations = "x; drop"), + "disallowed") + expect_error(lnk_habitat_validate(conn, "MORR", cfg, list(), "BT", "s"), + "wsg_species_presence") +}) + + +# -- DB fixture -------------------------------------------------------------- +# Two WSGs share id_segment values, so a bare id_segment join would attach +# BBBB's spawning segment to an AAAA observation. BT is present in AAAA +# only, so BBBB's DV and BT records must not count. +# +# AAAA, blue_line_key 1: +# seg 1 0-100 gradient 0.01 width 5 access 1 rearing +# seg 2 100-200 gradient 0.08 width 5 access 0 - +# seg 3 200-300 gradient 0.01 width 5 access 1 spawning, rearing +# seg 4 300-400 gradient 0.20 width 5 access 1 - +# seg 5 400-500 gradient 0.01 width NULL access 1 - +local_validate_fixture <- function(conn, env = parent.frame()) { + s <- "zz_lnk_validate_probe" + DBI::dbExecute(conn, sprintf("DROP SCHEMA IF EXISTS %s CASCADE", s)) + DBI::dbExecute(conn, sprintf("CREATE SCHEMA %s", s)) + withr::defer( + try(DBI::dbExecute(conn, sprintf("DROP SCHEMA %s CASCADE", s)), + silent = TRUE), envir = env) + wsg <- c(rep("AAAA", 5), "BBBB", "BBBB") + ids <- c(1:5, 1L, 2L) + DBI::dbWriteTable(conn, DBI::Id(schema = s, table = "streams"), data.frame( + id_segment = ids, watershed_group_code = wsg, + blue_line_key = c(rep(1L, 5), 2L, 2L), + downstream_route_measure = c(0, 100, 200, 300, 400, 0, 100), + upstream_route_measure = c(100, 200, 300, 400, 500, 100, 200), + length_metre = 100, + gradient = c(0.01, 0.08, 0.01, 0.20, 0.01, 0.01, 0.01), + channel_width = c(5, 5, 5, 5, NA, 5, 5), + channel_width_source = "MODELLED", + edge_type = 1000L, stream_order = 3L, + waterbody_key = NA_integer_)) + DBI::dbWriteTable(conn, DBI::Id(schema = s, table = "streams_access"), + data.frame( + id_segment = ids, watershed_group_code = wsg, + access_bt = c(1L, 0L, 1L, 1L, 1L, 1L, 1L))) + DBI::dbWriteTable(conn, DBI::Id(schema = s, table = "streams_habitat_bt"), + data.frame( + id_segment = ids, watershed_group_code = wsg, + accessible = TRUE, + spawning = c(FALSE, FALSE, TRUE, FALSE, FALSE, TRUE, TRUE), + rearing = c(TRUE, FALSE, TRUE, FALSE, FALSE, TRUE, TRUE), + lake_rearing = FALSE, wetland_rearing = FALSE)) + DBI::dbWriteTable(conn, DBI::Id(schema = s, table = "observations"), + data.frame( + observation_key = paste0("o", 1:11), + species_code = c("BT", "DV", "BT", "BT", "DV", "BT", "BT", "BT", + "BT", "BT", "BT"), + watershed_group_code = c("AAAA", "AAAA", "AAAA", "AAAA", "BBBB", + "AAAA", "AAAA", "BBBB", "AAAA", "AAAA", "AAAA"), + blue_line_key = c(1L, 1L, 1L, 1L, 2L, 1L, 1L, 2L, 1L, 1L, 1L), + downstream_route_measure = c(100, 50, 50, 60, 50, 150, 50.2, 150, + 300, 400, 600), + match_type = c("A. matched", "B. matched", "A.", "A.", "A.", + "C. not matched", "A.", "A.", "A.", "A.", "A."), + activity_code = c("R", NA, NA, NA, NA, NA, "S", NA, NA, NA, NA), + activity = c("Rearing", NA, NA, NA, NA, NA, "Spawning", NA, NA, NA, NA), + life_stage = c(NA, "Fry", NA, NA, NA, NA, NA, NA, NA, NA, NA), + source = c("FISS", "FISS", "FISS", "Releases Database (x)", + rep("FISS", 7)))) + s +} + +validate_loaded <- function() { + list( + wsg_species_presence = data.frame( + watershed_group_code = c("AAAA", "BBBB"), bt = c("t", ""), + notes = "", stringsAsFactors = FALSE), + parameters_fresh = utils::read.csv( + lnk_config("default")$files$parameters_fresh$path, + stringsAsFactors = FALSE), + observation_exclusions = data.frame( + observation_key = "o3", data_error = "t", release_exclude = "", + stringsAsFactors = FALSE), + # A spawning-only reach and a confirmed non-habitat reach, both over o2, + # and a spawning reach 50 m above o1. + user_habitat_classification = data.frame( + species_code = "BT", blue_line_key = 1L, + downstream_route_measure = c(0, 40, 150), + upstream_route_measure = c(60, 70, 160), + spawning = c(1L, -1L, 1L), rearing = c(NA, -4L, NA))) +} + +validate_conn <- function(env = parent.frame()) { + skip_if_no_db() + conn <- lnk_db_conn(dbname = "fwapg", host = "localhost", port = 5432L, + user = "postgres", password = "postgres") + withr::defer(DBI::dbDisconnect(conn), envir = env) + conn +} + +run_validate <- function(conn, s, aoi = c("AAAA", "BBBB"), ...) { + lnk_habitat_validate( + conn, aoi = aoi, cfg = lnk_config("default"), + loaded = validate_loaded(), species = "BT", schema = s, + observations = paste0(s, ".observations"), ...) +} + +test_that("lnk_habitat_validate scores a fixture run on the full key", { + conn <- validate_conn() + s <- local_validate_fixture(conn) + v <- run_validate(conn, s) + + # o3 excluded, o4 a release, o5 DV where BT is absent, o6 match C, + # o8 BT where BT is absent; o2 and o7 are one location. + obs <- v$observations + expect_setequal(obs$observation_key, c("o1", "o2", "o9", "o10", "o11")) + + o <- function(k) obs[obs$observation_key == k, ] + # Starts at 100 -> segment 2 of AAAA, not the containing segment 1, and + # not BBBB's segment 2 (spawning). + expect_identical(o("o1")$id_segment, 2L) + expect_false(o("o1")$spawning) + expect_false(o("o1")$accessible) + expect_identical(o("o1")$miss_reason_rear, "not_accessible") + + expect_true(o("o2")$rearing) + expect_true(o("o2")$in_uhc_spawn) + expect_false(o("o2")$in_uhc_rear) + expect_identical(o("o2")$obs_species, "BT;DV") + expect_true(is.na(o("o2")$miss_reason_rear)) + # Passes the spawning predicate but is not spawning: clustering. + expect_identical(o("o2")$miss_reason_spawn, "post_predicate") + + expect_identical(o("o9")$miss_reason_spawn, "fails_gradient") + expect_identical(o("o9")$miss_reason_rear, "fails_gradient") + expect_identical(o("o10")$miss_reason_spawn, "width_null") + expect_identical(o("o10")$miss_reason_rear, "width_null") + expect_true(is.na(o("o11")$id_segment)) + expect_identical(o("o11")$miss_reason_rear, "no_segment") + + sm <- v$summary + a_any <- sm[sm$watershed_group_code == "AAAA" & sm$stage == "any", ] + expect_identical(a_any$n_obs, 4L) + expect_identical(a_any$n_unattached, 1L) + expect_identical(a_any$n_accessible, 3L) + expect_identical(a_any$n_inaccessible, 1L) + expect_identical(a_any$n_rearing, 1L) + expect_identical(a_any$n_spawning, 0L) + expect_equal(a_any$share_rearing, 0.25) + expect_identical(a_any$n_in_uhc_spawn, 1L) + expect_identical(a_any$n_in_uhc_rear, 0L) + # o2 (loc 50) is the only location in a spawning UHC reach. + expect_identical(a_any$n_obs_outside_uhc_spawn, 3L) + expect_identical(a_any$n_spawning_outside_uhc, 0L) + expect_equal(a_any$share_spawning_outside_uhc, 0) + expect_equal(a_any$share_rearing_any_outside_uhc, 0.25) + expect_true(is.integer(obs$n_cand)) + expect_equal(a_any$spawning_km, 0.1) + expect_identical(sm$n_obs[sm$watershed_group_code == "AAAA" & + sm$stage == "spawn"], 1L) + expect_identical(sm$n_obs[sm$watershed_group_code == "AAAA" & + sm$stage == "rear"], 2L) + b <- sm[sm$watershed_group_code == "BBBB", ] + expect_identical(nrow(b), 3L) + expect_true(all(b$n_obs == 0L)) + expect_true(all(is.na(b$share_rearing))) + expect_identical(unique(sm$schema), s) + expect_identical(unique(sm$config_name), "default") + expect_identical(unique(sm$buffer_m), 0) + expect_false(any(sm$run_logged)) +}) + +test_that("species_obs values are case-insensitive", { + conn <- validate_conn() + s <- local_validate_fixture(conn) + v <- run_validate(conn, s, aoi = "AAAA", species_obs = list(bt = c("bt", "dv"))) + expect_identical(v$summary$n_obs[v$summary$stage == "any"], 4L) +}) + +test_that("observations can be a data frame from any source", { + conn <- validate_conn() + s <- local_validate_fixture(conn) + mine <- data.frame( + species_code = "BT", watershed_group_code = "AAAA", blue_line_key = 1L, + downstream_route_measure = c(100, 50, 300), + is_rear = c(TRUE, NA, FALSE), + # Its own stage wins over bcfishobs wording where given. + activity = c(NA, "Spawning", "Spawning"), is_spawn = c(NA, NA, FALSE)) + ld <- validate_loaded() + ld$observation_exclusions <- NULL + v <- lnk_habitat_validate( + conn, aoi = "AAAA", cfg = lnk_config("default"), + loaded = ld, species = "BT", schema = s, + observations = mine, match_types = NULL, source_exclude = NULL) + sm <- v$summary + expect_identical(sm$n_obs[sm$stage == "any"], 3L) + expect_identical(sm$n_obs[sm$stage == "rear"], 1L) + expect_identical(sm$n_obs[sm$stage == "spawn"], 1L) + # Keys are the caller's row numbers, so results join back. + expect_setequal(v$observations$observation_key, c("1", "2", "3")) + expect_identical( + v$observations$observation_key[round(v$observations$m) == 300], "3") + # The upstream segment rule still applies: 100 is segment 2. + expect_identical( + v$observations$id_segment[round(v$observations$m) == 100], 2L) +}) + +test_that("a filter whose column the source lacks is an error, not a pass", { + conn <- validate_conn() + s <- local_validate_fixture(conn) + mine <- data.frame(species_code = "BT", watershed_group_code = "AAAA", + blue_line_key = 1L, downstream_route_measure = 50) + ld <- validate_loaded() + ld$observation_exclusions <- NULL + go <- function(obs = mine, loaded = ld, ...) lnk_habitat_validate( + conn, aoi = "AAAA", cfg = lnk_config("default"), + loaded = loaded, species = "BT", schema = s, + observations = obs, ...) + expect_error(go(source_exclude = NULL), "match_types = NULL") + expect_error(go(match_types = NULL), "source_exclude = NULL") + # Exclusions are keyed on observation_key; without one they cannot apply. + expect_error(go(loaded = validate_loaded(), match_types = NULL, + source_exclude = NULL), "observation_exclusions") + expect_error(go(match_types = NULL, source_exclude = "")) + expect_error(go(obs = mine[, -2], match_types = NULL, source_exclude = NULL), + "watershed_group_code") +}) + +test_that("source_exclude matches a literal prefix, not a LIKE pattern", { + conn <- validate_conn() + s <- local_validate_fixture(conn) + mine <- data.frame(species_code = "BT", watershed_group_code = "AAAA", + blue_line_key = 1L, downstream_route_measure = c(50, 300), + source = c("50% stocked", "500 survey")) + ld <- validate_loaded() + ld$observation_exclusions <- NULL + v <- lnk_habitat_validate( + conn, aoi = "AAAA", cfg = lnk_config("default"), + loaded = ld, species = "BT", schema = s, + observations = mine, match_types = NULL, source_exclude = "50%") + expect_identical(round(v$observations$m), 300) +}) + +test_that("codes are normalised on the observation side, and 0/1 flags read as stage", { + conn <- validate_conn() + s <- local_validate_fixture(conn) + mine <- data.frame(species_code = c("bt", "BT "), + watershed_group_code = c("aaaa", "AAAA"), + blue_line_key = 1L, downstream_route_measure = c(50, 300), + is_spawn = c(1, 0)) + ld <- validate_loaded() + ld$observation_exclusions <- NULL + v <- lnk_habitat_validate( + conn, aoi = "AAAA", cfg = lnk_config("default"), + loaded = ld, species = "BT", schema = s, + observations = mine, match_types = NULL, source_exclude = NULL) + sm <- v$summary + expect_identical(sm$n_obs[sm$stage == "any"], 2L) + expect_identical(sm$n_obs[sm$stage == "spawn"], 1L) +}) + +test_that("buffer_m captures habitat upstream along the same stream", { + conn <- validate_conn() + s <- local_validate_fixture(conn) + o1 <- function(b) { + v <- run_validate(conn, s, aoi = "AAAA", buffer_m = b) + v$observations[v$observations$observation_key == "o1", ] + } + # Segment 3 (spawning) starts 100 m above o1. + expect_false(o1(99)$spawning) + expect_true(o1(101)$spawning) + # Accessibility stays the point's own segment. + expect_false(o1(101)$accessible) + # The UHC reach 50 m up is inside the buffered window, not the point's. + expect_false(o1(0)$in_uhc_spawn) + expect_true(o1(51)$in_uhc_spawn) +}) + +test_that("absences are counted against the segment containing them", { + conn <- validate_conn() + s <- local_validate_fixture(conn) + v <- run_validate(conn, s, absences = data.frame( + watershed_group_code = c("AAAA", "AAAA", "BBBB"), + blue_line_key = c(1L, 1L, 2L), + downstream_route_measure = c(250, 150, 50), + species_code = "bt")) + a <- v$summary[v$summary$watershed_group_code == "AAAA" & + v$summary$stage == "any", ] + expect_identical(a$n_absence, 2L) + expect_identical(a$n_absence_spawning, 1L) + expect_identical(a$n_absence_accessible, 1L) + # BT is absent from BBBB, so its absence row is dropped and BBBB was not + # assessed: NA, not 0. + expect_true(all(is.na( + v$summary$n_absence[v$summary$watershed_group_code == "BBBB"]))) +}) + +test_that("absences are buffered like observations", { + conn <- validate_conn() + s <- local_validate_fixture(conn) + n_spawn <- function(b) { + v <- run_validate(conn, s, aoi = "AAAA", buffer_m = b, + absences = data.frame(watershed_group_code = "AAAA", blue_line_key = 1L, + downstream_route_measure = 150, + species_code = "BT")) + v$summary$n_absence_spawning[1] + } + # Segment 3 (spawning) starts at 200, above the segment 2 start at 100. + expect_identical(n_spawn(0), 0L) + expect_identical(n_spawn(51), 1L) +}) + +test_that("lnk_habitat_validate fails loud on a WSG the schema cannot score", { + conn <- validate_conn() + s <- local_validate_fixture(conn) + expect_error(run_validate(conn, s, aoi = c("AAAA", "ZZZZ")), + "not persisted.*ZZZZ") + DBI::dbExecute(conn, sprintf( + "DELETE FROM %s.streams_access WHERE watershed_group_code = 'BBBB'", s)) + expect_error(run_validate(conn, s), "streams_access rows for: BBBB") +}) + +test_that("lnk_habitat_validate refuses a schema logged as another config's", { + conn <- validate_conn() + s <- local_validate_fixture(conn) + DBI::dbExecute(conn, sprintf( + "CREATE TABLE %s.log (watershed_group_code text, config_name text, + date_start timestamptz)", s)) + DBI::dbExecute(conn, sprintf( + "INSERT INTO %s.log VALUES + ('AAAA', 'default', '2026-01-01'), ('AAAA', 'bcfishpass', '2026-02-01')", + s)) + expect_error(run_validate(conn, s), "AAAA \\(bcfishpass\\)") + DBI::dbExecute(conn, sprintf( + "UPDATE %s.log SET config_name = 'default'", s)) + v <- run_validate(conn, s) + expect_identical( + unique(v$summary$run_logged[v$summary$watershed_group_code == "AAAA"]), + TRUE) + expect_identical( + unique(v$summary$run_logged[v$summary$watershed_group_code == "BBBB"]), + FALSE) +}) +# nolint end: indentation_linter