Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

2160 строки
1.2 MiB

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!DOCTYPE html>
<html
lang="en"
data-color-mode="auto" data-light-theme="light" data-dark-theme="dark"
data-a11y-animated-images="system" data-a11y-link-underlines="true"
>
<head>
<meta charset="utf-8">
<link rel="dns-prefetch" href="https://github.githubassets.com">
<link rel="dns-prefetch" href="https://avatars.githubusercontent.com">
<link rel="dns-prefetch" href="https://github-cloud.s3.amazonaws.com">
<link rel="dns-prefetch" href="https://user-images.githubusercontent.com/">
<link rel="preconnect" href="https://github.githubassets.com" crossorigin>
<link rel="preconnect" href="https://avatars.githubusercontent.com">
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/light-74231a1f3bbb.css" /><link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/dark-8a995f0bacd4.css" /><link data-color-theme="dark_dimmed" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_dimmed-f37fb7684b1f.css" /><link data-color-theme="dark_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_high_contrast-9ac301c3ebe5.css" /><link data-color-theme="dark_colorblind" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_colorblind-cd826e8636dc.css" /><link data-color-theme="light_colorblind" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_colorblind-f91b0f603451.css" /><link data-color-theme="light_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_high_contrast-83beb16e0ecf.css" /><link data-color-theme="light_tritanopia" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_tritanopia-6e122dab64fc.css" /><link data-color-theme="dark_tritanopia" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_tritanopia-18119e682df0.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-primitives-225433424a87.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-cba26849680f.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/global-b6cb3703b934.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/github-ea73c9cb5377.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/repository-4fce88777fa8.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/code-0210be90f4d3.css" />
<script type="application/json" id="client-env">{"locale":"en","featureFlags":["contentful_lp_flex_features_actions","contentful_lp_flex_features_codespaces","contentful_lp_flex_features_code_review","contentful_lp_flex_features_code_search","contentful_lp_flex_features_discussions","contentful_lp_flex_features_issues","copilot_immersive_issue_preview","copilot_new_references_ui","copilot_chat_repo_custom_instructions_preview","copilot_no_floating_button","copilot_topics_as_references","copilot_read_shared_conversation","copilot_duplicate_thread","dotcom_chat_client_side_skills","experimentation_azure_variant_endpoint","failbot_handle_non_errors","geojson_azure_maps","ghost_pilot_confidence_truncation_25","ghost_pilot_confidence_truncation_40","github_models_gateway_parse_params","github_models_o3_mini_streaming","insert_before_patch","issues_react_remove_placeholders","issues_react_blur_item_picker_on_close","issues_advanced_search_nested_ownership_filters","issues_dashboard_no_redirects","marketing_pages_search_explore_provider","primer_react_css_modules_ga","react_data_router_pull_requests","react_override_default_key","remove_child_patch","sample_network_conn_type","swp_enterprise_contact_form","site_copilot_pro_plus","site_proxima_australia_update","viewscreen_sandbox","issues_react_create_milestone","issues_react_cache_fix_workaround","lifecycle_label_name_updates","copilot_task_oriented_assistive_prompts","issue_types_prevent_private_type_creation","refresh_image_video_src","react_router_dispose_on_disconnect","codespaces_prebuild_region_target_update","turbo_app_id_restore","copilot_code_review_sign_up_closed"]}</script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/wp-runtime-e9dfd2db9d2c.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_oddbird_popover-polyfill_dist_popover_js-9da652f58479.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_arianotify-polyfill_ariaNotify-polyfill_js-node_modules_github_mi-3abb8f-46b9f4874d95.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/ui_packages_failbot_failbot_ts-952d624642a1.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/environment-f04cb2a9fc8c.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_primer_behaviors_dist_esm_index_mjs-0dbb79f97f8f.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_selector-observer_dist_index_esm_js-f690fd9ae3d5.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_relative-time-element_dist_index_js-62d275b7ddd9.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_text-expander-element_dist_index_js-78748950cb0c.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_auto-complete-element_dist_index_js-node_modules_github_catalyst_-8e9f78-a90ac05d2469.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_filter-input-element_dist_index_js-node_modules_github_remote-inp-b5f1d7-a1760ffda83d.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_markdown-toolbar-element_dist_index_js-ceef33f593fa.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_file-attachment-element_dist_index_js-node_modules_primer_view-co-c44a69-efa32db3a345.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/github-elements-394f8eb34f19.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/element-registry-0b7798be0424.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_braintree_browser-detection_dist_browser-detection_js-node_modules_githu-2906d7-2a07a295af40.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_lit-html_lit-html_js-be8cb88f481b.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_mini-throttle_dist_index_js-node_modules_morphdom_dist_morphdom-e-7c534c-a4a1922eb55f.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_turbo_dist_turbo_es2017-esm_js-a03ee12d659a.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_remote-form_dist_index_js-node_modules_delegated-events_dist_inde-893f9f-b6294cf703b7.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_color-convert_index_js-e3180fe3bcb3.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_quote-selection_dist_index_js-node_modules_github_session-resume_-947061-e7a6c4a19f98.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/ui_packages_updatable-content_updatable-content_ts-62f3e9c52ece.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/app_assets_modules_github_behaviors_task-list_ts-app_assets_modules_github_sso_ts-ui_packages-900dde-768abe60b1f8.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/app_assets_modules_github_sticky-scroll-into-view_ts-3e000c5d31a9.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/app_assets_modules_github_behaviors_ajax-error_ts-app_assets_modules_github_behaviors_include-d0d0a6-e7f74ee74d91.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/app_assets_modules_github_behaviors_commenting_edit_ts-app_assets_modules_github_behaviors_ht-83c235-4bcbbbfbe1d4.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/behaviors-1884a015a8c7.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_delegated-events_dist_index_js-node_modules_github_catalyst_lib_index_js-f6223d90c7ba.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/notifications-global-01e85cd1be94.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_mini-throttle_dist_index_js-node_modules_github_catalyst_lib_inde-dbbea9-26cce2010167.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/code-menu-d6d3c94ee97e.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/primer-react-99bc880bd101.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/react-core-25e9ddbd9991.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/react-lib-f1bca44e0926.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/octicons-react-cf2f2ab8dab4.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_emotion_is-prop-valid_dist_emotion-is-prop-valid_esm_js-node_modules_emo-434cb6-95f395b76298.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_mini-throttle_dist_index_js-node_modules_stacktrace-parser_dist_s-e7dcdd-9a233856b02c.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_oddbird_popover-polyfill_dist_popover-fn_js-55fea94174bf.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_dompurify_dist_purify_es_mjs-dd1d3ea6a436.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_lodash-es__Stack_js-node_modules_lodash-es__Uint8Array_js-node_modules_l-4faaa6-4a736fde5c2f.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_lodash-es__baseIsEqual_js-8929eb9718d5.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_react-intersection-observer_react-intersection-observer_modern_mjs-node_-b27033-ba82cef135e3.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_clsx_dist_clsx_m_js-node_modules_focus-visible_dist_focus-visible_js-nod-6408da-8b63db0f5fbb.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/ui_packages_aria-live_aria-live_ts-ui_packages_history_history_ts-ui_packages_promise-with-re-01dc80-b13b6c1d97b0.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/ui_packages_paths_index_ts-04e7ec2d63d9.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/ui_packages_ref-selector_RefSelector_tsx-7496afc3784d.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/ui_packages_commit-attribution_index_ts-ui_packages_commit-checks-status_index_ts-ui_packages-762eaa-d78307eadb45.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/ui_packages_code-view-shared_utilities_web-worker_ts-ui_packages_code-view-shared_worker-jobs-58da08-291e23fc6153.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/ui_packages_app-uuid_app-uuid_ts-ui_packages_document-metadata_document-metadata_ts-ui_packag-4d8de9-923439d5031b.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/ui_packages_code-view-shared_hooks_use-canonical-object_ts-ui_packages_code-view-shared_hooks-c2dbff-27f8152d69dc.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/app_assets_modules_github_blob-anchor_ts-ui_packages_code-nav_code-nav_ts-ui_packages_filter--8253c1-91468a3354f9.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/react-code-view-cffb178030a5.js"></script>
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react.a490b7c9fa319e5cb069.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/react-code-view.91744b0963019bd58290.module.css" />
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/notifications-subscriptions-menu-0e7e3f0bfc4b.js"></script>
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react.a490b7c9fa319e5cb069.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/notifications-subscriptions-menu.1bcff9205c241e99cff2.module.css" />
<title>doctest/doctest/doctest.h at master · doctest/doctest · GitHub</title>
<meta name="route-pattern" content="/:user_id/:repository/blob/*name(/*path)" data-turbo-transient>
<meta name="route-controller" content="blob" data-turbo-transient>
<meta name="route-action" content="show" data-turbo-transient>
<meta name="current-catalog-service-hash" content="f3abb0cc802f3d7b95fc8762b94bdcb13bf39634c40c357301c4aa1d67a256fb">
<meta name="request-id" content="4681:195F3A:6A4F3:6C944:67F3AFAD" data-pjax-transient="true"/><meta name="html-safe-nonce" content="393dd9f026accc8e86c8a3b6386fd85dedc9f4db9b1ed3bf268c46cd6485b603" data-pjax-transient="true"/><meta name="visitor-payload" content="eyJyZWZlcnJlciI6Imh0dHBzOi8vZ2l0aHViLmNvbS9kb2N0ZXN0L2RvY3Rlc3QvdHJlZS9tYXN0ZXIvZG9jdGVzdCIsInJlcXVlc3RfaWQiOiI0NjgxOjE5NUYzQTo2QTRGMzo2Qzk0NDo2N0YzQUZBRCIsInZpc2l0b3JfaWQiOiI0ODE4Nzk3Nzc4NDk4MjQ3NTEwIiwicmVnaW9uX2VkZ2UiOiJmcmEiLCJyZWdpb25fcmVuZGVyIjoiZnJhIn0=" data-pjax-transient="true"/><meta name="visitor-hmac" content="ba2a99a40fac7d4861012fc06ee2db178e44e758bde18396a6c711a94997cc7e" data-pjax-transient="true"/>
<meta name="hovercard-subject-tag" content="repository:22660515" data-turbo-transient>
<meta name="github-keyboard-shortcuts" content="repository,source-code,file-tree,copilot" data-turbo-transient="true" />
<meta name="selected-link" value="repo_source" data-turbo-transient>
<link rel="assets" href="https://github.githubassets.com/">
<meta name="google-site-verification" content="Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I">
<meta name="octolytics-url" content="https://collector.github.com/github/collect" />
<meta name="analytics-location" content="/&lt;user-name&gt;/&lt;repo-name&gt;/blob/show" data-turbo-transient="true" />
<meta name="user-login" content="">
<meta name="viewport" content="width=device-width">
<meta name="description" content="The fastest feature-rich C++11/14/17/20/23 single-header testing framework - doctest/doctest/doctest.h at master · doctest/doctest">
<link rel="search" type="application/opensearchdescription+xml" href="/opensearch.xml" title="GitHub">
<link rel="fluid-icon" href="https://github.com/fluidicon.png" title="GitHub">
<meta property="fb:app_id" content="1401488693436528">
<meta name="apple-itunes-app" content="app-id=1477376905, app-argument=https://github.com/doctest/doctest/blob/master/doctest/doctest.h" />
<meta name="twitter:image" content="https://opengraph.githubassets.com/4b09309a09e52c71fb4c9e6bf330e863adca28896e71ed7f98a5ae11d7521ee3/doctest/doctest" /><meta name="twitter:site" content="@github" /><meta name="twitter:card" content="summary_large_image" /><meta name="twitter:title" content="doctest/doctest/doctest.h at master · doctest/doctest" /><meta name="twitter:description" content="The fastest feature-rich C++11/14/17/20/23 single-header testing framework - doctest/doctest" />
<meta property="og:image" content="https://opengraph.githubassets.com/4b09309a09e52c71fb4c9e6bf330e863adca28896e71ed7f98a5ae11d7521ee3/doctest/doctest" /><meta property="og:image:alt" content="The fastest feature-rich C++11/14/17/20/23 single-header testing framework - doctest/doctest" /><meta property="og:image:width" content="1200" /><meta property="og:image:height" content="600" /><meta property="og:site_name" content="GitHub" /><meta property="og:type" content="object" /><meta property="og:title" content="doctest/doctest/doctest.h at master · doctest/doctest" /><meta property="og:url" content="https://github.com/doctest/doctest/blob/master/doctest/doctest.h" /><meta property="og:description" content="The fastest feature-rich C++11/14/17/20/23 single-header testing framework - doctest/doctest" />
<meta name="hostname" content="github.com">
<meta name="expected-hostname" content="github.com">
<meta http-equiv="x-pjax-version" content="53559f52364fedf0b620916d9212daa84bfd88b7c97581a990f067f2c330a241" data-turbo-track="reload">
<meta http-equiv="x-pjax-csp-version" content="e26f9f0ba624ee85cc7ac057d8faa8618a4f25a85eab052c33d018ac0f6b1a46" data-turbo-track="reload">
<meta http-equiv="x-pjax-css-version" content="205838381d6e5f35c535dbb12458f905bc43e0b186c86bf75aabbd0c0f36537c" data-turbo-track="reload">
<meta http-equiv="x-pjax-js-version" content="0b735bcb2cc5457270b7a2f02538e92ae7c29f0fa45fd309a7c0e1d0564f27dd" data-turbo-track="reload">
<meta name="turbo-cache-control" content="no-preview" data-turbo-transient="">
<meta name="turbo-cache-control" content="no-cache" data-turbo-transient>
<meta data-hydrostats="publish">
<meta name="go-import" content="github.com/doctest/doctest git https://github.com/doctest/doctest.git">
<meta name="octolytics-dimension-user_id" content="70880936" /><meta name="octolytics-dimension-user_login" content="doctest" /><meta name="octolytics-dimension-repository_id" content="22660515" /><meta name="octolytics-dimension-repository_nwo" content="doctest/doctest" /><meta name="octolytics-dimension-repository_public" content="true" /><meta name="octolytics-dimension-repository_is_fork" content="false" /><meta name="octolytics-dimension-repository_network_root_id" content="22660515" /><meta name="octolytics-dimension-repository_network_root_nwo" content="doctest/doctest" />
<meta name="turbo-body-classes" content="logged-out env-production page-responsive">
<meta name="browser-stats-url" content="https://api.github.com/_private/browser/stats">
<meta name="browser-errors-url" content="https://api.github.com/_private/browser/errors">
<meta name="release" content="796ee2164f2aad9d1a565f9c69f108fb43ec6f52">
<link rel="mask-icon" href="https://github.githubassets.com/assets/pinned-octocat-093da3e6fa40.svg" color="#000000">
<link rel="alternate icon" class="js-site-favicon" type="image/png" href="https://github.githubassets.com/favicons/favicon.png">
<link rel="icon" class="js-site-favicon" type="image/svg+xml" href="https://github.githubassets.com/favicons/favicon.svg" data-base-href="https://github.githubassets.com/favicons/favicon">
<meta name="theme-color" content="#1e2327">
<meta name="color-scheme" content="light dark" />
<meta name="msapplication-TileImage" content="/windows-tile.png">
<meta name="msapplication-TileColor" content="#ffffff">
<link rel="manifest" href="/manifest.json" crossOrigin="use-credentials">
</head>
<body class="logged-out env-production page-responsive" style="word-wrap: break-word;">
<div data-turbo-body class="logged-out env-production page-responsive" style="word-wrap: break-word;">
<div class="position-relative header-wrapper js-header-wrapper ">
<a href="#start-of-content" data-skip-target-assigned="false" class="px-2 py-4 color-bg-accent-emphasis color-fg-on-emphasis show-on-focus js-skip-to-content">Skip to content</a>
<span data-view-component="true" class="progress-pjax-loader Progress position-fixed width-full">
<span style="width: 0%;" data-view-component="true" class="Progress-item progress-pjax-loader-bar left-0 top-0 color-bg-accent-emphasis"></span>
</span>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/ui_packages_ui-commands_ui-commands_ts-2d52c8e72e64.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/keyboard-shortcuts-dialog-1edadb4bd04c.js"></script>
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react.a490b7c9fa319e5cb069.module.css" />
<react-partial
partial-name="keyboard-shortcuts-dialog"
data-ssr="false"
data-attempted-ssr="false"
>
<script type="application/json" data-target="react-partial.embeddedData">{"props":{"docsUrl":"https://docs.github.com/get-started/accessibility/keyboard-shortcuts"}}</script>
<div data-target="react-partial.reactRoot"></div>
</react-partial>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_remote-form_dist_index_js-node_modules_delegated-events_dist_inde-94fd67-4898d1bf4b51.js"></script>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/sessions-45d6658f8b6b.js"></script>
<header class="HeaderMktg header-logged-out js-details-container js-header Details f4 py-3" role="banner" data-is-top="true" data-color-mode=light data-light-theme=light data-dark-theme=dark>
<h2 class="sr-only">Navigation Menu</h2>
<button type="button" class="HeaderMktg-backdrop d-lg-none border-0 position-fixed top-0 left-0 width-full height-full js-details-target" aria-label="Toggle navigation">
<span class="d-none">Toggle navigation</span>
</button>
<div class="d-flex flex-column flex-lg-row flex-items-center px-3 px-md-4 px-lg-5 height-full position-relative z-1">
<div class="d-flex flex-justify-between flex-items-center width-full width-lg-auto">
<div class="flex-1">
<button aria-label="Toggle navigation" aria-expanded="false" type="button" data-view-component="true" class="js-details-target js-nav-padding-recalculate js-header-menu-toggle Button--link Button--medium Button d-lg-none color-fg-inherit p-1"> <span class="Button-content">
<span class="Button-label"><div class="HeaderMenu-toggle-bar rounded my-1"></div>
<div class="HeaderMenu-toggle-bar rounded my-1"></div>
<div class="HeaderMenu-toggle-bar rounded my-1"></div></span>
</span>
</button>
</div>
<a class="mr-lg-3 color-fg-inherit flex-order-2 js-prevent-focus-on-mobile-nav"
href="/"
aria-label="Homepage"
data-analytics-event="{&quot;category&quot;:&quot;Marketing nav&quot;,&quot;action&quot;:&quot;click to go to homepage&quot;,&quot;label&quot;:&quot;ref_page:Marketing;ref_cta:Logomark;ref_loc:Header&quot;}">
<svg height="32" aria-hidden="true" viewBox="0 0 24 24" version="1.1" width="32" data-view-component="true" class="octicon octicon-mark-github">
<path d="M12 1C5.9225 1 1 5.9225 1 12C1 16.8675 4.14875 20.9787 8.52125 22.4362C9.07125 22.5325 9.2775 22.2025 9.2775 21.9137C9.2775 21.6525 9.26375 20.7862 9.26375 19.865C6.5 20.3737 5.785 19.1912 5.565 18.5725C5.44125 18.2562 4.905 17.28 4.4375 17.0187C4.0525 16.8125 3.5025 16.3037 4.42375 16.29C5.29 16.2762 5.90875 17.0875 6.115 17.4175C7.105 19.0812 8.68625 18.6137 9.31875 18.325C9.415 17.61 9.70375 17.1287 10.02 16.8537C7.5725 16.5787 5.015 15.63 5.015 11.4225C5.015 10.2262 5.44125 9.23625 6.1425 8.46625C6.0325 8.19125 5.6475 7.06375 6.2525 5.55125C6.2525 5.55125 7.17375 5.2625 9.2775 6.67875C10.1575 6.43125 11.0925 6.3075 12.0275 6.3075C12.9625 6.3075 13.8975 6.43125 14.7775 6.67875C16.8813 5.24875 17.8025 5.55125 17.8025 5.55125C18.4075 7.06375 18.0225 8.19125 17.9125 8.46625C18.6138 9.23625 19.04 10.2125 19.04 11.4225C19.04 15.6437 16.4688 16.5787 14.0213 16.8537C14.42 17.1975 14.7638 17.8575 14.7638 18.8887C14.7638 20.36 14.75 21.5425 14.75 21.9137C14.75 22.2025 14.9563 22.5462 15.5063 22.4362C19.8513 20.9787 23 16.8537 23 12C23 5.9225 18.0775 1 12 1Z"></path>
</svg>
</a>
<div class="flex-1 flex-order-2 text-right">
<a
href="/login?return_to=https%3A%2F%2Fgithub.com%2Fdoctest%2Fdoctest%2Fblob%2Fmaster%2Fdoctest%2Fdoctest.h"
class="HeaderMenu-link HeaderMenu-button d-inline-flex d-lg-none flex-order-1 f5 no-underline border color-border-default rounded-2 px-2 py-1 color-fg-inherit js-prevent-focus-on-mobile-nav"
data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;site header menu&quot;,&quot;repository_id&quot;:null,&quot;auth_type&quot;:&quot;SIGN_UP&quot;,&quot;originating_url&quot;:&quot;https://github.com/doctest/doctest/blob/master/doctest/doctest.h&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="8d2cc0aa0b6a8bbd9394fabc16af40fd0c315fdea10d86a4dc092ce9a3ae407e"
data-analytics-event="{&quot;category&quot;:&quot;Marketing nav&quot;,&quot;action&quot;:&quot;click to Sign in&quot;,&quot;label&quot;:&quot;ref_page:Marketing;ref_cta:Sign in;ref_loc:Header&quot;}"
>
Sign in
</a>
</div>
</div>
<div class="HeaderMenu js-header-menu height-fit position-lg-relative d-lg-flex flex-column flex-auto top-0">
<div class="HeaderMenu-wrapper d-flex flex-column flex-self-start flex-lg-row flex-auto rounded rounded-lg-0">
<nav class="HeaderMenu-nav" aria-label="Global">
<ul class="d-lg-flex list-style-none">
<li class="HeaderMenu-item position-relative flex-wrap flex-justify-between flex-items-center d-block d-lg-flex flex-lg-nowrap flex-lg-items-center js-details-container js-header-menu-item">
<button type="button" class="HeaderMenu-link border-0 width-full width-lg-auto px-0 px-lg-2 py-lg-2 no-wrap d-flex flex-items-center flex-justify-between js-details-target" aria-expanded="false">
Product
<svg opacity="0.5" aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-chevron-down HeaderMenu-icon ml-1">
<path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path>
</svg>
</button>
<div class="HeaderMenu-dropdown dropdown-menu rounded m-0 p-0 pt-2 pt-lg-4 position-relative position-lg-absolute left-0 left-lg-n3 pb-2 pb-lg-4 d-lg-flex flex-wrap dropdown-menu-wide">
<div class="HeaderMenu-column px-lg-4 border-lg-right mb-4 mb-lg-0 pr-lg-7">
<div class="border-bottom pb-3 pb-lg-0 border-lg-bottom-0">
<ul class="list-style-none f5" >
<li>
<a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description pb-lg-3" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;github_copilot&quot;,&quot;context&quot;:&quot;product&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;github_copilot_link_product_navbar&quot;}" href="https://github.com/features/copilot">
<svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-copilot color-fg-subtle mr-3">
<path d="M23.922 16.992c-.861 1.495-5.859 5.023-11.922 5.023-6.063 0-11.061-3.528-11.922-5.023A.641.641 0 0 1 0 16.736v-2.869a.841.841 0 0 1 .053-.22c.372-.935 1.347-2.292 2.605-2.656.167-.429.414-1.055.644-1.517a10.195 10.195 0 0 1-.052-1.086c0-1.331.282-2.499 1.132-3.368.397-.406.89-.717 1.474-.952 1.399-1.136 3.392-2.093 6.122-2.093 2.731 0 4.767.957 6.166 2.093.584.235 1.077.546 1.474.952.85.869 1.132 2.037 1.132 3.368 0 .368-.014.733-.052 1.086.23.462.477 1.088.644 1.517 1.258.364 2.233 1.721 2.605 2.656a.832.832 0 0 1 .053.22v2.869a.641.641 0 0 1-.078.256ZM12.172 11h-.344a4.323 4.323 0 0 1-.355.508C10.703 12.455 9.555 13 7.965 13c-1.725 0-2.989-.359-3.782-1.259a2.005 2.005 0 0 1-.085-.104L4 11.741v6.585c1.435.779 4.514 2.179 8 2.179 3.486 0 6.565-1.4 8-2.179v-6.585l-.098-.104s-.033.045-.085.104c-.793.9-2.057 1.259-3.782 1.259-1.59 0-2.738-.545-3.508-1.492a4.323 4.323 0 0 1-.355-.508h-.016.016Zm.641-2.935c.136 1.057.403 1.913.878 2.497.442.544 1.134.938 2.344.938 1.573 0 2.292-.337 2.657-.751.384-.435.558-1.15.558-2.361 0-1.14-.243-1.847-.705-2.319-.477-.488-1.319-.862-2.824-1.025-1.487-.161-2.192.138-2.533.529-.269.307-.437.808-.438 1.578v.021c0 .265.021.562.063.893Zm-1.626 0c.042-.331.063-.628.063-.894v-.02c-.001-.77-.169-1.271-.438-1.578-.341-.391-1.046-.69-2.533-.529-1.505.163-2.347.537-2.824 1.025-.462.472-.705 1.179-.705 2.319 0 1.211.175 1.926.558 2.361.365.414 1.084.751 2.657.751 1.21 0 1.902-.394 2.344-.938.475-.584.742-1.44.878-2.497Z"></path><path d="M14.5 14.25a1 1 0 0 1 1 1v2a1 1 0 0 1-2 0v-2a1 1 0 0 1 1-1Zm-5 0a1 1 0 0 1 1 1v2a1 1 0 0 1-2 0v-2a1 1 0 0 1 1-1Z"></path>
</svg>
<div>
<div class="color-fg-default h4">GitHub Copilot</div>
Write better code with AI
</div>
</a></li>
<li>
<a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description pb-lg-3" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;github_advanced_security&quot;,&quot;context&quot;:&quot;product&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;github_advanced_security_link_product_navbar&quot;}" href="https://github.com/security/advanced-security">
<svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-shield-check color-fg-subtle mr-3">
<path d="M16.53 9.78a.75.75 0 0 0-1.06-1.06L11 13.19l-1.97-1.97a.75.75 0 0 0-1.06 1.06l2.5 2.5a.75.75 0 0 0 1.06 0l5-5Z"></path><path d="m12.54.637 8.25 2.675A1.75 1.75 0 0 1 22 4.976V10c0 6.19-3.771 10.704-9.401 12.83a1.704 1.704 0 0 1-1.198 0C5.77 20.705 2 16.19 2 10V4.976c0-.758.489-1.43 1.21-1.664L11.46.637a1.748 1.748 0 0 1 1.08 0Zm-.617 1.426-8.25 2.676a.249.249 0 0 0-.173.237V10c0 5.46 3.28 9.483 8.43 11.426a.199.199 0 0 0 .14 0C17.22 19.483 20.5 15.461 20.5 10V4.976a.25.25 0 0 0-.173-.237l-8.25-2.676a.253.253 0 0 0-.154 0Z"></path>
</svg>
<div>
<div class="color-fg-default h4">GitHub Advanced Security</div>
Find and fix vulnerabilities
</div>
</a></li>
<li>
<a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description pb-lg-3" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;actions&quot;,&quot;context&quot;:&quot;product&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;actions_link_product_navbar&quot;}" href="https://github.com/features/actions">
<svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-workflow color-fg-subtle mr-3">
<path d="M1 3a2 2 0 0 1 2-2h6.5a2 2 0 0 1 2 2v6.5a2 2 0 0 1-2 2H7v4.063C7 16.355 7.644 17 8.438 17H12.5v-2.5a2 2 0 0 1 2-2H21a2 2 0 0 1 2 2V21a2 2 0 0 1-2 2h-6.5a2 2 0 0 1-2-2v-2.5H8.437A2.939 2.939 0 0 1 5.5 15.562V11.5H3a2 2 0 0 1-2-2Zm2-.5a.5.5 0 0 0-.5.5v6.5a.5.5 0 0 0 .5.5h6.5a.5.5 0 0 0 .5-.5V3a.5.5 0 0 0-.5-.5ZM14.5 14a.5.5 0 0 0-.5.5V21a.5.5 0 0 0 .5.5H21a.5.5 0 0 0 .5-.5v-6.5a.5.5 0 0 0-.5-.5Z"></path>
</svg>
<div>
<div class="color-fg-default h4">Actions</div>
Automate any workflow
</div>
</a></li>
<li>
<a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description pb-lg-3" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;codespaces&quot;,&quot;context&quot;:&quot;product&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;codespaces_link_product_navbar&quot;}" href="https://github.com/features/codespaces">
<svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-codespaces color-fg-subtle mr-3">
<path d="M3.5 3.75C3.5 2.784 4.284 2 5.25 2h13.5c.966 0 1.75.784 1.75 1.75v7.5A1.75 1.75 0 0 1 18.75 13H5.25a1.75 1.75 0 0 1-1.75-1.75Zm-2 12c0-.966.784-1.75 1.75-1.75h17.5c.966 0 1.75.784 1.75 1.75v4a1.75 1.75 0 0 1-1.75 1.75H3.25a1.75 1.75 0 0 1-1.75-1.75ZM5.25 3.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h13.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Zm-2 12a.25.25 0 0 0-.25.25v4c0 .138.112.25.25.25h17.5a.25.25 0 0 0 .25-.25v-4a.25.25 0 0 0-.25-.25Z"></path><path d="M10 17.75a.75.75 0 0 1 .75-.75h6.5a.75.75 0 0 1 0 1.5h-6.5a.75.75 0 0 1-.75-.75Zm-4 0a.75.75 0 0 1 .75-.75h.5a.75.75 0 0 1 0 1.5h-.5a.75.75 0 0 1-.75-.75Z"></path>
</svg>
<div>
<div class="color-fg-default h4">Codespaces</div>
Instant dev environments
</div>
</a></li>
<li>
<a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description pb-lg-3" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;issues&quot;,&quot;context&quot;:&quot;product&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;issues_link_product_navbar&quot;}" href="https://github.com/features/issues">
<svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-issue-opened color-fg-subtle mr-3">
<path d="M12 1c6.075 0 11 4.925 11 11s-4.925 11-11 11S1 18.075 1 12 5.925 1 12 1ZM2.5 12a9.5 9.5 0 0 0 9.5 9.5 9.5 9.5 0 0 0 9.5-9.5A9.5 9.5 0 0 0 12 2.5 9.5 9.5 0 0 0 2.5 12Zm9.5 2a2 2 0 1 1-.001-3.999A2 2 0 0 1 12 14Z"></path>
</svg>
<div>
<div class="color-fg-default h4">Issues</div>
Plan and track work
</div>
</a></li>
<li>
<a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description pb-lg-3" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;code_review&quot;,&quot;context&quot;:&quot;product&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;code_review_link_product_navbar&quot;}" href="https://github.com/features/code-review">
<svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-code-review color-fg-subtle mr-3">
<path d="M10.3 6.74a.75.75 0 0 1-.04 1.06l-2.908 2.7 2.908 2.7a.75.75 0 1 1-1.02 1.1l-3.5-3.25a.75.75 0 0 1 0-1.1l3.5-3.25a.75.75 0 0 1 1.06.04Zm3.44 1.06a.75.75 0 1 1 1.02-1.1l3.5 3.25a.75.75 0 0 1 0 1.1l-3.5 3.25a.75.75 0 1 1-1.02-1.1l2.908-2.7-2.908-2.7Z"></path><path d="M1.5 4.25c0-.966.784-1.75 1.75-1.75h17.5c.966 0 1.75.784 1.75 1.75v12.5a1.75 1.75 0 0 1-1.75 1.75h-9.69l-3.573 3.573A1.458 1.458 0 0 1 5 21.043V18.5H3.25a1.75 1.75 0 0 1-1.75-1.75ZM3.25 4a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h2.5a.75.75 0 0 1 .75.75v3.19l3.72-3.72a.749.749 0 0 1 .53-.22h10a.25.25 0 0 0 .25-.25V4.25a.25.25 0 0 0-.25-.25Z"></path>
</svg>
<div>
<div class="color-fg-default h4">Code Review</div>
Manage code changes
</div>
</a></li>
<li>
<a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description pb-lg-3" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;discussions&quot;,&quot;context&quot;:&quot;product&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;discussions_link_product_navbar&quot;}" href="https://github.com/features/discussions">
<svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-comment-discussion color-fg-subtle mr-3">
<path d="M1.75 1h12.5c.966 0 1.75.784 1.75 1.75v9.5A1.75 1.75 0 0 1 14.25 14H8.061l-2.574 2.573A1.458 1.458 0 0 1 3 15.543V14H1.75A1.75 1.75 0 0 1 0 12.25v-9.5C0 1.784.784 1 1.75 1ZM1.5 2.75v9.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h6.5a.25.25 0 0 0 .25-.25v-9.5a.25.25 0 0 0-.25-.25H1.75a.25.25 0 0 0-.25.25Z"></path><path d="M22.5 8.75a.25.25 0 0 0-.25-.25h-3.5a.75.75 0 0 1 0-1.5h3.5c.966 0 1.75.784 1.75 1.75v9.5A1.75 1.75 0 0 1 22.25 20H21v1.543a1.457 1.457 0 0 1-2.487 1.03L15.939 20H10.75A1.75 1.75 0 0 1 9 18.25v-1.465a.75.75 0 0 1 1.5 0v1.465c0 .138.112.25.25.25h5.5a.75.75 0 0 1 .53.22l2.72 2.72v-2.19a.75.75 0 0 1 .75-.75h2a.25.25 0 0 0 .25-.25v-9.5Z"></path>
</svg>
<div>
<div class="color-fg-default h4">Discussions</div>
Collaborate outside of code
</div>
</a></li>
<li>
<a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;code_search&quot;,&quot;context&quot;:&quot;product&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;code_search_link_product_navbar&quot;}" href="https://github.com/features/code-search">
<svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-code-square color-fg-subtle mr-3">
<path d="M10.3 8.24a.75.75 0 0 1-.04 1.06L7.352 12l2.908 2.7a.75.75 0 1 1-1.02 1.1l-3.5-3.25a.75.75 0 0 1 0-1.1l3.5-3.25a.75.75 0 0 1 1.06.04Zm3.44 1.06a.75.75 0 1 1 1.02-1.1l3.5 3.25a.75.75 0 0 1 0 1.1l-3.5 3.25a.75.75 0 1 1-1.02-1.1l2.908-2.7-2.908-2.7Z"></path><path d="M2 3.75C2 2.784 2.784 2 3.75 2h16.5c.966 0 1.75.784 1.75 1.75v16.5A1.75 1.75 0 0 1 20.25 22H3.75A1.75 1.75 0 0 1 2 20.25Zm1.75-.25a.25.25 0 0 0-.25.25v16.5c0 .138.112.25.25.25h16.5a.25.25 0 0 0 .25-.25V3.75a.25.25 0 0 0-.25-.25Z"></path>
</svg>
<div>
<div class="color-fg-default h4">Code Search</div>
Find more, search less
</div>
</a></li>
</ul>
</div>
</div>
<div class="HeaderMenu-column px-lg-4">
<div class="border-bottom pb-3 pb-lg-0 border-lg-bottom-0 border-bottom-0">
<span class="d-block h4 color-fg-default my-1" id="product-explore-heading">Explore</span>
<ul class="list-style-none f5" aria-labelledby="product-explore-heading">
<li>
<a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;all_features&quot;,&quot;context&quot;:&quot;product&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;all_features_link_product_navbar&quot;}" href="https://github.com/features">
All features
</a></li>
<li>
<a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary Link--external" target="_blank" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;documentation&quot;,&quot;context&quot;:&quot;product&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;documentation_link_product_navbar&quot;}" href="https://docs.github.com">
Documentation
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-link-external HeaderMenu-external-icon color-fg-subtle">
<path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path>
</svg>
</a></li>
<li>
<a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary Link--external" target="_blank" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;github_skills&quot;,&quot;context&quot;:&quot;product&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;github_skills_link_product_navbar&quot;}" href="https://skills.github.com">
GitHub Skills
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-link-external HeaderMenu-external-icon color-fg-subtle">
<path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path>
</svg>
</a></li>
<li>
<a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary Link--external" target="_blank" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;blog&quot;,&quot;context&quot;:&quot;product&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;blog_link_product_navbar&quot;}" href="https://github.blog">
Blog
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-link-external HeaderMenu-external-icon color-fg-subtle">
<path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path>
</svg>
</a></li>
</ul>
</div>
</div>
</div>
</li>
<li class="HeaderMenu-item position-relative flex-wrap flex-justify-between flex-items-center d-block d-lg-flex flex-lg-nowrap flex-lg-items-center js-details-container js-header-menu-item">
<button type="button" class="HeaderMenu-link border-0 width-full width-lg-auto px-0 px-lg-2 py-lg-2 no-wrap d-flex flex-items-center flex-justify-between js-details-target" aria-expanded="false">
Solutions
<svg opacity="0.5" aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-chevron-down HeaderMenu-icon ml-1">
<path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path>
</svg>
</button>
<div class="HeaderMenu-dropdown dropdown-menu rounded m-0 p-0 pt-2 pt-lg-4 position-relative position-lg-absolute left-0 left-lg-n3 d-lg-flex flex-wrap dropdown-menu-wide">
<div class="HeaderMenu-column px-lg-4 border-lg-right mb-4 mb-lg-0 pr-lg-7">
<div class="border-bottom pb-3 pb-lg-0 border-lg-bottom-0 pb-lg-3 mb-3 mb-lg-0">
<span class="d-block h4 color-fg-default my-1" id="solutions-by-company-size-heading">By company size</span>
<ul class="list-style-none f5" aria-labelledby="solutions-by-company-size-heading">
<li>
<a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;enterprises&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;enterprises_link_solutions_navbar&quot;}" href="https://github.com/enterprise">
Enterprises
</a></li>
<li>
<a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;small_and_medium_teams&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;small_and_medium_teams_link_solutions_navbar&quot;}" href="https://github.com/team">
Small and medium teams
</a></li>
<li>
<a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;startups&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;startups_link_solutions_navbar&quot;}" href="https://github.com/enterprise/startups">
Startups
</a></li>
<li>
<a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;nonprofits&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;nonprofits_link_solutions_navbar&quot;}" href="/solutions/industry/nonprofits">
Nonprofits
</a></li>
</ul>
</div>
<div class="border-bottom pb-3 pb-lg-0 border-lg-bottom-0">
<span class="d-block h4 color-fg-default my-1" id="solutions-by-use-case-heading">By use case</span>
<ul class="list-style-none f5" aria-labelledby="solutions-by-use-case-heading">
<li>
<a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;devsecops&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;devsecops_link_solutions_navbar&quot;}" href="/solutions/use-case/devsecops">
DevSecOps
</a></li>
<li>
<a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;devops&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;devops_link_solutions_navbar&quot;}" href="/solutions/use-case/devops">
DevOps
</a></li>
<li>
<a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;ci_cd&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;ci_cd_link_solutions_navbar&quot;}" href="/solutions/use-case/ci-cd">
CI/CD
</a></li>
<li>
<a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;view_all_use_cases&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;view_all_use_cases_link_solutions_navbar&quot;}" href="/solutions/use-case">
View all use cases
</a></li>
</ul>
</div>
</div>
<div class="HeaderMenu-column px-lg-4">
<div class="border-bottom pb-3 pb-lg-0 border-lg-bottom-0">
<span class="d-block h4 color-fg-default my-1" id="solutions-by-industry-heading">By industry</span>
<ul class="list-style-none f5" aria-labelledby="solutions-by-industry-heading">
<li>
<a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;healthcare&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;healthcare_link_solutions_navbar&quot;}" href="/solutions/industry/healthcare">
Healthcare
</a></li>
<li>
<a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;financial_services&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;financial_services_link_solutions_navbar&quot;}" href="/solutions/industry/financial-services">
Financial services
</a></li>
<li>
<a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;manufacturing&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;manufacturing_link_solutions_navbar&quot;}" href="/solutions/industry/manufacturing">
Manufacturing
</a></li>
<li>
<a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;government&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;government_link_solutions_navbar&quot;}" href="/solutions/industry/government">
Government
</a></li>
<li>
<a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;view_all_industries&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;view_all_industries_link_solutions_navbar&quot;}" href="/solutions/industry">
View all industries
</a></li>
</ul>
</div>
</div>
<div class="HeaderMenu-trailing-link rounded-bottom-2 flex-shrink-0 mt-lg-4 px-lg-4 py-4 py-lg-3 f5 text-semibold">
<a href="/solutions">
View all solutions
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-chevron-right HeaderMenu-trailing-link-icon">
<path d="M6.22 3.22a.75.75 0 0 1 1.06 0l4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L9.94 8 6.22 4.28a.75.75 0 0 1 0-1.06Z"></path>
</svg>
</a> </div>
</div>
</li>
<li class="HeaderMenu-item position-relative flex-wrap flex-justify-between flex-items-center d-block d-lg-flex flex-lg-nowrap flex-lg-items-center js-details-container js-header-menu-item">
<button type="button" class="HeaderMenu-link border-0 width-full width-lg-auto px-0 px-lg-2 py-lg-2 no-wrap d-flex flex-items-center flex-justify-between js-details-target" aria-expanded="false">
Resources
<svg opacity="0.5" aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-chevron-down HeaderMenu-icon ml-1">
<path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path>
</svg>
</button>
<div class="HeaderMenu-dropdown dropdown-menu rounded m-0 p-0 pt-2 pt-lg-4 position-relative position-lg-absolute left-0 left-lg-n3 pb-2 pb-lg-4 d-lg-flex flex-wrap dropdown-menu-wide">
<div class="HeaderMenu-column px-lg-4 border-lg-right mb-4 mb-lg-0 pr-lg-7">
<div class="border-bottom pb-3 pb-lg-0 border-lg-bottom-0">
<span class="d-block h4 color-fg-default my-1" id="resources-topics-heading">Topics</span>
<ul class="list-style-none f5" aria-labelledby="resources-topics-heading">
<li>
<a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;ai&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;ai_link_resources_navbar&quot;}" href="/resources/articles/ai">
AI
</a></li>
<li>
<a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;devops&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;devops_link_resources_navbar&quot;}" href="/resources/articles/devops">
DevOps
</a></li>
<li>
<a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;security&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;security_link_resources_navbar&quot;}" href="/resources/articles/security">
Security
</a></li>
<li>
<a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;software_development&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;software_development_link_resources_navbar&quot;}" href="/resources/articles/software-development">
Software Development
</a></li>
<li>
<a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;view_all&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;view_all_link_resources_navbar&quot;}" href="/resources/articles">
View all
</a></li>
</ul>
</div>
</div>
<div class="HeaderMenu-column px-lg-4">
<div class="border-bottom pb-3 pb-lg-0 border-lg-bottom-0 border-bottom-0">
<span class="d-block h4 color-fg-default my-1" id="resources-explore-heading">Explore</span>
<ul class="list-style-none f5" aria-labelledby="resources-explore-heading">
<li>
<a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary Link--external" target="_blank" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;learning_pathways&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;learning_pathways_link_resources_navbar&quot;}" href="https://resources.github.com/learn/pathways">
Learning Pathways
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-link-external HeaderMenu-external-icon color-fg-subtle">
<path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path>
</svg>
</a></li>
<li>
<a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary Link--external" target="_blank" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;events_amp_webinars&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;events_amp_webinars_link_resources_navbar&quot;}" href="https://resources.github.com">
Events &amp; Webinars
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-link-external HeaderMenu-external-icon color-fg-subtle">
<path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path>
</svg>
</a></li>
<li>
<a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;ebooks_amp_whitepapers&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;ebooks_amp_whitepapers_link_resources_navbar&quot;}" href="https://github.com/resources/whitepapers">
Ebooks &amp; Whitepapers
</a></li>
<li>
<a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;customer_stories&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;customer_stories_link_resources_navbar&quot;}" href="https://github.com/customer-stories">
Customer Stories
</a></li>
<li>
<a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary Link--external" target="_blank" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;partners&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;partners_link_resources_navbar&quot;}" href="https://partner.github.com">
Partners
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-link-external HeaderMenu-external-icon color-fg-subtle">
<path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path>
</svg>
</a></li>
<li>
<a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;executive_insights&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;executive_insights_link_resources_navbar&quot;}" href="https://github.com/solutions/executive-insights">
Executive Insights
</a></li>
</ul>
</div>
</div>
</div>
</li>
<li class="HeaderMenu-item position-relative flex-wrap flex-justify-between flex-items-center d-block d-lg-flex flex-lg-nowrap flex-lg-items-center js-details-container js-header-menu-item">
<button type="button" class="HeaderMenu-link border-0 width-full width-lg-auto px-0 px-lg-2 py-lg-2 no-wrap d-flex flex-items-center flex-justify-between js-details-target" aria-expanded="false">
Open Source
<svg opacity="0.5" aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-chevron-down HeaderMenu-icon ml-1">
<path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path>
</svg>
</button>
<div class="HeaderMenu-dropdown dropdown-menu rounded m-0 p-0 pt-2 pt-lg-4 position-relative position-lg-absolute left-0 left-lg-n3 pb-2 pb-lg-4 px-lg-4">
<div class="HeaderMenu-column">
<div class="border-bottom pb-3 pb-lg-0 pb-lg-3 mb-3 mb-lg-0 mb-lg-3">
<ul class="list-style-none f5" >
<li>
<a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;github_sponsors&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;github_sponsors_link_open_source_navbar&quot;}" href="/sponsors">
<div>
<div class="color-fg-default h4">GitHub Sponsors</div>
Fund open source developers
</div>
</a></li>
</ul>
</div>
<div class="border-bottom pb-3 pb-lg-0 pb-lg-3 mb-3 mb-lg-0 mb-lg-3">
<ul class="list-style-none f5" >
<li>
<a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;the_readme_project&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;the_readme_project_link_open_source_navbar&quot;}" href="https://github.com/readme">
<div>
<div class="color-fg-default h4">The ReadME Project</div>
GitHub community articles
</div>
</a></li>
</ul>
</div>
<div class="border-bottom pb-3 pb-lg-0 border-bottom-0">
<span class="d-block h4 color-fg-default my-1" id="open-source-repositories-heading">Repositories</span>
<ul class="list-style-none f5" aria-labelledby="open-source-repositories-heading">
<li>
<a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;topics&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;topics_link_open_source_navbar&quot;}" href="https://github.com/topics">
Topics
</a></li>
<li>
<a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;trending&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;trending_link_open_source_navbar&quot;}" href="https://github.com/trending">
Trending
</a></li>
<li>
<a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;collections&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;collections_link_open_source_navbar&quot;}" href="https://github.com/collections">
Collections
</a></li>
</ul>
</div>
</div>
</div>
</li>
<li class="HeaderMenu-item position-relative flex-wrap flex-justify-between flex-items-center d-block d-lg-flex flex-lg-nowrap flex-lg-items-center js-details-container js-header-menu-item">
<button type="button" class="HeaderMenu-link border-0 width-full width-lg-auto px-0 px-lg-2 py-lg-2 no-wrap d-flex flex-items-center flex-justify-between js-details-target" aria-expanded="false">
Enterprise
<svg opacity="0.5" aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-chevron-down HeaderMenu-icon ml-1">
<path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path>
</svg>
</button>
<div class="HeaderMenu-dropdown dropdown-menu rounded m-0 p-0 pt-2 pt-lg-4 position-relative position-lg-absolute left-0 left-lg-n3 pb-2 pb-lg-4 px-lg-4">
<div class="HeaderMenu-column">
<div class="border-bottom pb-3 pb-lg-0 pb-lg-3 mb-3 mb-lg-0 mb-lg-3">
<ul class="list-style-none f5" >
<li>
<a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;enterprise_platform&quot;,&quot;context&quot;:&quot;enterprise&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;enterprise_platform_link_enterprise_navbar&quot;}" href="/enterprise">
<svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-stack color-fg-subtle mr-3">
<path d="M11.063 1.456a1.749 1.749 0 0 1 1.874 0l8.383 5.316a1.751 1.751 0 0 1 0 2.956l-8.383 5.316a1.749 1.749 0 0 1-1.874 0L2.68 9.728a1.751 1.751 0 0 1 0-2.956Zm1.071 1.267a.25.25 0 0 0-.268 0L3.483 8.039a.25.25 0 0 0 0 .422l8.383 5.316a.25.25 0 0 0 .268 0l8.383-5.316a.25.25 0 0 0 0-.422Z"></path><path d="M1.867 12.324a.75.75 0 0 1 1.035-.232l8.964 5.685a.25.25 0 0 0 .268 0l8.964-5.685a.75.75 0 0 1 .804 1.267l-8.965 5.685a1.749 1.749 0 0 1-1.874 0l-8.965-5.685a.75.75 0 0 1-.231-1.035Z"></path><path d="M1.867 16.324a.75.75 0 0 1 1.035-.232l8.964 5.685a.25.25 0 0 0 .268 0l8.964-5.685a.75.75 0 0 1 .804 1.267l-8.965 5.685a1.749 1.749 0 0 1-1.874 0l-8.965-5.685a.75.75 0 0 1-.231-1.035Z"></path>
</svg>
<div>
<div class="color-fg-default h4">Enterprise platform</div>
AI-powered developer platform
</div>
</a></li>
</ul>
</div>
<div class="border-bottom pb-3 pb-lg-0 border-bottom-0">
<span class="d-block h4 color-fg-default my-1" id="enterprise-available-add-ons-heading">Available add-ons</span>
<ul class="list-style-none f5" aria-labelledby="enterprise-available-add-ons-heading">
<li>
<a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description pb-lg-3" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;github_advanced_security&quot;,&quot;context&quot;:&quot;enterprise&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;github_advanced_security_link_enterprise_navbar&quot;}" href="https://github.com/security/advanced-security">
<svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-shield-check color-fg-subtle mr-3">
<path d="M16.53 9.78a.75.75 0 0 0-1.06-1.06L11 13.19l-1.97-1.97a.75.75 0 0 0-1.06 1.06l2.5 2.5a.75.75 0 0 0 1.06 0l5-5Z"></path><path d="m12.54.637 8.25 2.675A1.75 1.75 0 0 1 22 4.976V10c0 6.19-3.771 10.704-9.401 12.83a1.704 1.704 0 0 1-1.198 0C5.77 20.705 2 16.19 2 10V4.976c0-.758.489-1.43 1.21-1.664L11.46.637a1.748 1.748 0 0 1 1.08 0Zm-.617 1.426-8.25 2.676a.249.249 0 0 0-.173.237V10c0 5.46 3.28 9.483 8.43 11.426a.199.199 0 0 0 .14 0C17.22 19.483 20.5 15.461 20.5 10V4.976a.25.25 0 0 0-.173-.237l-8.25-2.676a.253.253 0 0 0-.154 0Z"></path>
</svg>
<div>
<div class="color-fg-default h4">GitHub Advanced Security</div>
Enterprise-grade security features
</div>
</a></li>
<li>
<a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description pb-lg-3" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;copilot_for_business&quot;,&quot;context&quot;:&quot;enterprise&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;copilot_for_business_link_enterprise_navbar&quot;}" href="/features/copilot/copilot-business">
<svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-copilot color-fg-subtle mr-3">
<path d="M23.922 16.992c-.861 1.495-5.859 5.023-11.922 5.023-6.063 0-11.061-3.528-11.922-5.023A.641.641 0 0 1 0 16.736v-2.869a.841.841 0 0 1 .053-.22c.372-.935 1.347-2.292 2.605-2.656.167-.429.414-1.055.644-1.517a10.195 10.195 0 0 1-.052-1.086c0-1.331.282-2.499 1.132-3.368.397-.406.89-.717 1.474-.952 1.399-1.136 3.392-2.093 6.122-2.093 2.731 0 4.767.957 6.166 2.093.584.235 1.077.546 1.474.952.85.869 1.132 2.037 1.132 3.368 0 .368-.014.733-.052 1.086.23.462.477 1.088.644 1.517 1.258.364 2.233 1.721 2.605 2.656a.832.832 0 0 1 .053.22v2.869a.641.641 0 0 1-.078.256ZM12.172 11h-.344a4.323 4.323 0 0 1-.355.508C10.703 12.455 9.555 13 7.965 13c-1.725 0-2.989-.359-3.782-1.259a2.005 2.005 0 0 1-.085-.104L4 11.741v6.585c1.435.779 4.514 2.179 8 2.179 3.486 0 6.565-1.4 8-2.179v-6.585l-.098-.104s-.033.045-.085.104c-.793.9-2.057 1.259-3.782 1.259-1.59 0-2.738-.545-3.508-1.492a4.323 4.323 0 0 1-.355-.508h-.016.016Zm.641-2.935c.136 1.057.403 1.913.878 2.497.442.544 1.134.938 2.344.938 1.573 0 2.292-.337 2.657-.751.384-.435.558-1.15.558-2.361 0-1.14-.243-1.847-.705-2.319-.477-.488-1.319-.862-2.824-1.025-1.487-.161-2.192.138-2.533.529-.269.307-.437.808-.438 1.578v.021c0 .265.021.562.063.893Zm-1.626 0c.042-.331.063-.628.063-.894v-.02c-.001-.77-.169-1.271-.438-1.578-.341-.391-1.046-.69-2.533-.529-1.505.163-2.347.537-2.824 1.025-.462.472-.705 1.179-.705 2.319 0 1.211.175 1.926.558 2.361.365.414 1.084.751 2.657.751 1.21 0 1.902-.394 2.344-.938.475-.584.742-1.44.878-2.497Z"></path><path d="M14.5 14.25a1 1 0 0 1 1 1v2a1 1 0 0 1-2 0v-2a1 1 0 0 1 1-1Zm-5 0a1 1 0 0 1 1 1v2a1 1 0 0 1-2 0v-2a1 1 0 0 1 1-1Z"></path>
</svg>
<div>
<div class="color-fg-default h4">Copilot for business</div>
Enterprise-grade AI features
</div>
</a></li>
<li>
<a class="HeaderMenu-dropdown-link d-block no-underline position-relative py-2 Link--secondary d-flex flex-items-center Link--has-description" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;premium_support&quot;,&quot;context&quot;:&quot;enterprise&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;premium_support_link_enterprise_navbar&quot;}" href="/premium-support">
<svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-comment-discussion color-fg-subtle mr-3">
<path d="M1.75 1h12.5c.966 0 1.75.784 1.75 1.75v9.5A1.75 1.75 0 0 1 14.25 14H8.061l-2.574 2.573A1.458 1.458 0 0 1 3 15.543V14H1.75A1.75 1.75 0 0 1 0 12.25v-9.5C0 1.784.784 1 1.75 1ZM1.5 2.75v9.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h6.5a.25.25 0 0 0 .25-.25v-9.5a.25.25 0 0 0-.25-.25H1.75a.25.25 0 0 0-.25.25Z"></path><path d="M22.5 8.75a.25.25 0 0 0-.25-.25h-3.5a.75.75 0 0 1 0-1.5h3.5c.966 0 1.75.784 1.75 1.75v9.5A1.75 1.75 0 0 1 22.25 20H21v1.543a1.457 1.457 0 0 1-2.487 1.03L15.939 20H10.75A1.75 1.75 0 0 1 9 18.25v-1.465a.75.75 0 0 1 1.5 0v1.465c0 .138.112.25.25.25h5.5a.75.75 0 0 1 .53.22l2.72 2.72v-2.19a.75.75 0 0 1 .75-.75h2a.25.25 0 0 0 .25-.25v-9.5Z"></path>
</svg>
<div>
<div class="color-fg-default h4">Premium Support</div>
Enterprise-grade 24/7 support
</div>
</a></li>
</ul>
</div>
</div>
</div>
</li>
<li class="HeaderMenu-item position-relative flex-wrap flex-justify-between flex-items-center d-block d-lg-flex flex-lg-nowrap flex-lg-items-center js-details-container js-header-menu-item">
<a class="HeaderMenu-link no-underline px-0 px-lg-2 py-3 py-lg-2 d-block d-lg-inline-block" data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;pricing&quot;,&quot;context&quot;:&quot;global&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;pricing_link_global_navbar&quot;}" href="https://github.com/pricing">Pricing</a>
</li>
</ul>
</nav>
<div class="d-flex flex-column flex-lg-row width-full flex-justify-end flex-lg-items-center text-center mt-3 mt-lg-0 text-lg-left ml-lg-3">
<qbsearch-input class="search-input" data-scope="repo:doctest/doctest" data-custom-scopes-path="/search/custom_scopes" data-delete-custom-scopes-csrf="Ry0mOchsIxE6eCJ6DWeBha2AfsMrNxRbIIGIxnyajdfbC6WZriF-DS3hr-W5ez9YzqKP59MHxlvf2zw87NwTQg" data-max-custom-scopes="10" data-header-redesign-enabled="false" data-initial-value="" data-blackbird-suggestions-path="/search/suggestions" data-jump-to-suggestions-path="/_graphql/GetSuggestedNavigationDestinations" data-current-repository="doctest/doctest" data-current-org="doctest" data-current-owner="" data-logged-in="false" data-copilot-chat-enabled="false" data-nl-search-enabled="false" data-retain-scroll-position="true">
<div
class="search-input-container search-with-dialog position-relative d-flex flex-row flex-items-center mr-4 rounded"
data-action="click:qbsearch-input#searchInputContainerClicked"
>
<button
type="button"
class="header-search-button placeholder input-button form-control d-flex flex-1 flex-self-stretch flex-items-center no-wrap width-full py-0 pl-2 pr-0 text-left border-0 box-shadow-none"
data-target="qbsearch-input.inputButton"
aria-label="Search or jump to…"
aria-haspopup="dialog"
placeholder="Search or jump to..."
data-hotkey=s,/
autocapitalize="off"
data-analytics-event="{&quot;location&quot;:&quot;navbar&quot;,&quot;action&quot;:&quot;searchbar&quot;,&quot;context&quot;:&quot;global&quot;,&quot;tag&quot;:&quot;input&quot;,&quot;label&quot;:&quot;searchbar_input_global_navbar&quot;}"
data-action="click:qbsearch-input#handleExpand"
>
<div class="mr-2 color-fg-muted">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-search">
<path d="M10.68 11.74a6 6 0 0 1-7.922-8.982 6 6 0 0 1 8.982 7.922l3.04 3.04a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215ZM11.5 7a4.499 4.499 0 1 0-8.997 0A4.499 4.499 0 0 0 11.5 7Z"></path>
</svg>
</div>
<span class="flex-1" data-target="qbsearch-input.inputButtonText">Search or jump to...</span>
<div class="d-flex" data-target="qbsearch-input.hotkeyIndicator">
<svg xmlns="http://www.w3.org/2000/svg" width="22" height="20" aria-hidden="true" class="mr-1"><path fill="none" stroke="#979A9C" opacity=".4" d="M3.5.5h12c1.7 0 3 1.3 3 3v13c0 1.7-1.3 3-3 3h-12c-1.7 0-3-1.3-3-3v-13c0-1.7 1.3-3 3-3z"></path><path fill="#979A9C" d="M11.8 6L8 15.1h-.9L10.8 6h1z"></path></svg>
</div>
</button>
<input type="hidden" name="type" class="js-site-search-type-field">
<div class="Overlay--hidden " data-modal-dialog-overlay>
<modal-dialog data-action="close:qbsearch-input#handleClose cancel:qbsearch-input#handleClose" data-target="qbsearch-input.searchSuggestionsDialog" role="dialog" id="search-suggestions-dialog" aria-modal="true" aria-labelledby="search-suggestions-dialog-header" data-view-component="true" class="Overlay Overlay--width-large Overlay--height-auto">
<h1 id="search-suggestions-dialog-header" class="sr-only">Search code, repositories, users, issues, pull requests...</h1>
<div class="Overlay-body Overlay-body--paddingNone">
<div data-view-component="true"> <div class="search-suggestions position-fixed width-full color-shadow-large border color-fg-default color-bg-default overflow-hidden d-flex flex-column query-builder-container"
style="border-radius: 12px;"
data-target="qbsearch-input.queryBuilderContainer"
hidden
>
<!-- '"` --><!-- </textarea></xmp> --></option></form><form id="query-builder-test-form" action="" accept-charset="UTF-8" method="get">
<query-builder data-target="qbsearch-input.queryBuilder" id="query-builder-query-builder-test" data-filter-key=":" data-view-component="true" class="QueryBuilder search-query-builder">
<div class="FormControl FormControl--fullWidth">
<label id="query-builder-test-label" for="query-builder-test" class="FormControl-label sr-only">
Search
</label>
<div
class="QueryBuilder-StyledInput width-fit "
data-target="query-builder.styledInput"
>
<span id="query-builder-test-leadingvisual-wrap" class="FormControl-input-leadingVisualWrap QueryBuilder-leadingVisualWrap">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-search FormControl-input-leadingVisual">
<path d="M10.68 11.74a6 6 0 0 1-7.922-8.982 6 6 0 0 1 8.982 7.922l3.04 3.04a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215ZM11.5 7a4.499 4.499 0 1 0-8.997 0A4.499 4.499 0 0 0 11.5 7Z"></path>
</svg>
</span>
<div data-target="query-builder.styledInputContainer" class="QueryBuilder-StyledInputContainer">
<div
aria-hidden="true"
class="QueryBuilder-StyledInputContent"
data-target="query-builder.styledInputContent"
></div>
<div class="QueryBuilder-InputWrapper">
<div aria-hidden="true" class="QueryBuilder-Sizer" data-target="query-builder.sizer"></div>
<input id="query-builder-test" name="query-builder-test" value="" autocomplete="off" type="text" role="combobox" spellcheck="false" aria-expanded="false" aria-describedby="validation-9e3f0a51-26ea-44b6-9a5a-408c1279f5fb" data-target="query-builder.input" data-action="
input:query-builder#inputChange
blur:query-builder#inputBlur
keydown:query-builder#inputKeydown
focus:query-builder#inputFocus
" data-view-component="true" class="FormControl-input QueryBuilder-Input FormControl-medium" />
</div>
</div>
<span class="sr-only" id="query-builder-test-clear">Clear</span>
<button role="button" id="query-builder-test-clear-button" aria-labelledby="query-builder-test-clear query-builder-test-label" data-target="query-builder.clearButton" data-action="
click:query-builder#clear
focus:query-builder#clearButtonFocus
blur:query-builder#clearButtonBlur
" variant="small" hidden="hidden" type="button" data-view-component="true" class="Button Button--iconOnly Button--invisible Button--medium mr-1 px-2 py-0 d-flex flex-items-center rounded-1 color-fg-muted"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x-circle-fill Button-visual">
<path d="M2.343 13.657A8 8 0 1 1 13.658 2.343 8 8 0 0 1 2.343 13.657ZM6.03 4.97a.751.751 0 0 0-1.042.018.751.751 0 0 0-.018 1.042L6.94 8 4.97 9.97a.749.749 0 0 0 .326 1.275.749.749 0 0 0 .734-.215L8 9.06l1.97 1.97a.749.749 0 0 0 1.275-.326.749.749 0 0 0-.215-.734L9.06 8l1.97-1.97a.749.749 0 0 0-.326-1.275.749.749 0 0 0-.734.215L8 6.94Z"></path>
</svg>
</button>
</div>
<template id="search-icon">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-search">
<path d="M10.68 11.74a6 6 0 0 1-7.922-8.982 6 6 0 0 1 8.982 7.922l3.04 3.04a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215ZM11.5 7a4.499 4.499 0 1 0-8.997 0A4.499 4.499 0 0 0 11.5 7Z"></path>
</svg>
</template>
<template id="code-icon">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-code">
<path d="m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z"></path>
</svg>
</template>
<template id="file-code-icon">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-file-code">
<path d="M4 1.75C4 .784 4.784 0 5.75 0h5.586c.464 0 .909.184 1.237.513l2.914 2.914c.329.328.513.773.513 1.237v8.586A1.75 1.75 0 0 1 14.25 15h-9a.75.75 0 0 1 0-1.5h9a.25.25 0 0 0 .25-.25V6h-2.75A1.75 1.75 0 0 1 10 4.25V1.5H5.75a.25.25 0 0 0-.25.25v2.5a.75.75 0 0 1-1.5 0Zm1.72 4.97a.75.75 0 0 1 1.06 0l2 2a.75.75 0 0 1 0 1.06l-2 2a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734l1.47-1.47-1.47-1.47a.75.75 0 0 1 0-1.06ZM3.28 7.78 1.81 9.25l1.47 1.47a.751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018l-2-2a.75.75 0 0 1 0-1.06l2-2a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Zm8.22-6.218V4.25c0 .138.112.25.25.25h2.688l-.011-.013-2.914-2.914-.013-.011Z"></path>
</svg>
</template>
<template id="history-icon">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-history">
<path d="m.427 1.927 1.215 1.215a8.002 8.002 0 1 1-1.6 5.685.75.75 0 1 1 1.493-.154 6.5 6.5 0 1 0 1.18-4.458l1.358 1.358A.25.25 0 0 1 3.896 6H.25A.25.25 0 0 1 0 5.75V2.104a.25.25 0 0 1 .427-.177ZM7.75 4a.75.75 0 0 1 .75.75v2.992l2.028.812a.75.75 0 0 1-.557 1.392l-2.5-1A.751.751 0 0 1 7 8.25v-3.5A.75.75 0 0 1 7.75 4Z"></path>
</svg>
</template>
<template id="repo-icon">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo">
<path d="M2 2.5A2.5 2.5 0 0 1 4.5 0h8.75a.75.75 0 0 1 .75.75v12.5a.75.75 0 0 1-.75.75h-2.5a.75.75 0 0 1 0-1.5h1.75v-2h-8a1 1 0 0 0-.714 1.7.75.75 0 1 1-1.072 1.05A2.495 2.495 0 0 1 2 11.5Zm10.5-1h-8a1 1 0 0 0-1 1v6.708A2.486 2.486 0 0 1 4.5 9h8ZM5 12.25a.25.25 0 0 1 .25-.25h3.5a.25.25 0 0 1 .25.25v3.25a.25.25 0 0 1-.4.2l-1.45-1.087a.249.249 0 0 0-.3 0L5.4 15.7a.25.25 0 0 1-.4-.2Z"></path>
</svg>
</template>
<template id="bookmark-icon">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-bookmark">
<path d="M3 2.75C3 1.784 3.784 1 4.75 1h6.5c.966 0 1.75.784 1.75 1.75v11.5a.75.75 0 0 1-1.227.579L8 11.722l-3.773 3.107A.751.751 0 0 1 3 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v9.91l3.023-2.489a.75.75 0 0 1 .954 0l3.023 2.49V2.75a.25.25 0 0 0-.25-.25Z"></path>
</svg>
</template>
<template id="plus-circle-icon">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-plus-circle">
<path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Zm7.25-3.25v2.5h2.5a.75.75 0 0 1 0 1.5h-2.5v2.5a.75.75 0 0 1-1.5 0v-2.5h-2.5a.75.75 0 0 1 0-1.5h2.5v-2.5a.75.75 0 0 1 1.5 0Z"></path>
</svg>
</template>
<template id="circle-icon">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-dot-fill">
<path d="M8 4a4 4 0 1 1 0 8 4 4 0 0 1 0-8Z"></path>
</svg>
</template>
<template id="trash-icon">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-trash">
<path d="M11 1.75V3h2.25a.75.75 0 0 1 0 1.5H2.75a.75.75 0 0 1 0-1.5H5V1.75C5 .784 5.784 0 6.75 0h2.5C10.216 0 11 .784 11 1.75ZM4.496 6.675l.66 6.6a.25.25 0 0 0 .249.225h5.19a.25.25 0 0 0 .249-.225l.66-6.6a.75.75 0 0 1 1.492.149l-.66 6.6A1.748 1.748 0 0 1 10.595 15h-5.19a1.75 1.75 0 0 1-1.741-1.575l-.66-6.6a.75.75 0 1 1 1.492-.15ZM6.5 1.75V3h3V1.75a.25.25 0 0 0-.25-.25h-2.5a.25.25 0 0 0-.25.25Z"></path>
</svg>
</template>
<template id="team-icon">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-people">
<path d="M2 5.5a3.5 3.5 0 1 1 5.898 2.549 5.508 5.508 0 0 1 3.034 4.084.75.75 0 1 1-1.482.235 4 4 0 0 0-7.9 0 .75.75 0 0 1-1.482-.236A5.507 5.507 0 0 1 3.102 8.05 3.493 3.493 0 0 1 2 5.5ZM11 4a3.001 3.001 0 0 1 2.22 5.018 5.01 5.01 0 0 1 2.56 3.012.749.749 0 0 1-.885.954.752.752 0 0 1-.549-.514 3.507 3.507 0 0 0-2.522-2.372.75.75 0 0 1-.574-.73v-.352a.75.75 0 0 1 .416-.672A1.5 1.5 0 0 0 11 5.5.75.75 0 0 1 11 4Zm-5.5-.5a2 2 0 1 0-.001 3.999A2 2 0 0 0 5.5 3.5Z"></path>
</svg>
</template>
<template id="project-icon">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-project">
<path d="M1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25V1.75C0 .784.784 0 1.75 0ZM1.5 1.75v12.5c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25V1.75a.25.25 0 0 0-.25-.25H1.75a.25.25 0 0 0-.25.25ZM11.75 3a.75.75 0 0 1 .75.75v7.5a.75.75 0 0 1-1.5 0v-7.5a.75.75 0 0 1 .75-.75Zm-8.25.75a.75.75 0 0 1 1.5 0v5.5a.75.75 0 0 1-1.5 0ZM8 3a.75.75 0 0 1 .75.75v3.5a.75.75 0 0 1-1.5 0v-3.5A.75.75 0 0 1 8 3Z"></path>
</svg>
</template>
<template id="pencil-icon">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-pencil">
<path d="M11.013 1.427a1.75 1.75 0 0 1 2.474 0l1.086 1.086a1.75 1.75 0 0 1 0 2.474l-8.61 8.61c-.21.21-.47.364-.756.445l-3.251.93a.75.75 0 0 1-.927-.928l.929-3.25c.081-.286.235-.547.445-.758l8.61-8.61Zm.176 4.823L9.75 4.81l-6.286 6.287a.253.253 0 0 0-.064.108l-.558 1.953 1.953-.558a.253.253 0 0 0 .108-.064Zm1.238-3.763a.25.25 0 0 0-.354 0L10.811 3.75l1.439 1.44 1.263-1.263a.25.25 0 0 0 0-.354Z"></path>
</svg>
</template>
<template id="copilot-icon">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-copilot">
<path d="M7.998 15.035c-4.562 0-7.873-2.914-7.998-3.749V9.338c.085-.628.677-1.686 1.588-2.065.013-.07.024-.143.036-.218.029-.183.06-.384.126-.612-.201-.508-.254-1.084-.254-1.656 0-.87.128-1.769.693-2.484.579-.733 1.494-1.124 2.724-1.261 1.206-.134 2.262.034 2.944.765.05.053.096.108.139.165.044-.057.094-.112.143-.165.682-.731 1.738-.899 2.944-.765 1.23.137 2.145.528 2.724 1.261.566.715.693 1.614.693 2.484 0 .572-.053 1.148-.254 1.656.066.228.098.429.126.612.012.076.024.148.037.218.924.385 1.522 1.471 1.591 2.095v1.872c0 .766-3.351 3.795-8.002 3.795Zm0-1.485c2.28 0 4.584-1.11 5.002-1.433V7.862l-.023-.116c-.49.21-1.075.291-1.727.291-1.146 0-2.059-.327-2.71-.991A3.222 3.222 0 0 1 8 6.303a3.24 3.24 0 0 1-.544.743c-.65.664-1.563.991-2.71.991-.652 0-1.236-.081-1.727-.291l-.023.116v4.255c.419.323 2.722 1.433 5.002 1.433ZM6.762 2.83c-.193-.206-.637-.413-1.682-.297-1.019.113-1.479.404-1.713.7-.247.312-.369.789-.369 1.554 0 .793.129 1.171.308 1.371.162.181.519.379 1.442.379.853 0 1.339-.235 1.638-.54.315-.322.527-.827.617-1.553.117-.935-.037-1.395-.241-1.614Zm4.155-.297c-1.044-.116-1.488.091-1.681.297-.204.219-.359.679-.242 1.614.091.726.303 1.231.618 1.553.299.305.784.54 1.638.54.922 0 1.28-.198 1.442-.379.179-.2.308-.578.308-1.371 0-.765-.123-1.242-.37-1.554-.233-.296-.693-.587-1.713-.7Z"></path><path d="M6.25 9.037a.75.75 0 0 1 .75.75v1.501a.75.75 0 0 1-1.5 0V9.787a.75.75 0 0 1 .75-.75Zm4.25.75v1.501a.75.75 0 0 1-1.5 0V9.787a.75.75 0 0 1 1.5 0Z"></path>
</svg>
</template>
<template id="copilot-error-icon">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-copilot-error">
<path d="M16 11.24c0 .112-.072.274-.21.467L13 9.688V7.862l-.023-.116c-.49.21-1.075.291-1.727.291-.198 0-.388-.009-.571-.029L6.833 5.226a4.01 4.01 0 0 0 .17-.782c.117-.935-.037-1.395-.241-1.614-.193-.206-.637-.413-1.682-.297-.683.076-1.115.231-1.395.415l-1.257-.91c.579-.564 1.413-.877 2.485-.996 1.206-.134 2.262.034 2.944.765.05.053.096.108.139.165.044-.057.094-.112.143-.165.682-.731 1.738-.899 2.944-.765 1.23.137 2.145.528 2.724 1.261.566.715.693 1.614.693 2.484 0 .572-.053 1.148-.254 1.656.066.228.098.429.126.612.012.076.024.148.037.218.924.385 1.522 1.471 1.591 2.095Zm-5.083-8.707c-1.044-.116-1.488.091-1.681.297-.204.219-.359.679-.242 1.614.091.726.303 1.231.618 1.553.299.305.784.54 1.638.54.922 0 1.28-.198 1.442-.379.179-.2.308-.578.308-1.371 0-.765-.123-1.242-.37-1.554-.233-.296-.693-.587-1.713-.7Zm2.511 11.074c-1.393.776-3.272 1.428-5.43 1.428-4.562 0-7.873-2.914-7.998-3.749V9.338c.085-.628.677-1.686 1.588-2.065.013-.07.024-.143.036-.218.029-.183.06-.384.126-.612-.18-.455-.241-.963-.252-1.475L.31 4.107A.747.747 0 0 1 0 3.509V3.49a.748.748 0 0 1 .625-.73c.156-.026.306.047.435.139l14.667 10.578a.592.592 0 0 1 .227.264.752.752 0 0 1 .046.249v.022a.75.75 0 0 1-1.19.596Zm-1.367-.991L5.635 7.964a5.128 5.128 0 0 1-.889.073c-.652 0-1.236-.081-1.727-.291l-.023.116v4.255c.419.323 2.722 1.433 5.002 1.433 1.539 0 3.089-.505 4.063-.934Z"></path>
</svg>
</template>
<template id="workflow-icon">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-workflow">
<path d="M0 1.75C0 .784.784 0 1.75 0h3.5C6.216 0 7 .784 7 1.75v3.5A1.75 1.75 0 0 1 5.25 7H4v4a1 1 0 0 0 1 1h4v-1.25C9 9.784 9.784 9 10.75 9h3.5c.966 0 1.75.784 1.75 1.75v3.5A1.75 1.75 0 0 1 14.25 16h-3.5A1.75 1.75 0 0 1 9 14.25v-.75H5A2.5 2.5 0 0 1 2.5 11V7h-.75A1.75 1.75 0 0 1 0 5.25Zm1.75-.25a.25.25 0 0 0-.25.25v3.5c0 .138.112.25.25.25h3.5a.25.25 0 0 0 .25-.25v-3.5a.25.25 0 0 0-.25-.25Zm9 9a.25.25 0 0 0-.25.25v3.5c0 .138.112.25.25.25h3.5a.25.25 0 0 0 .25-.25v-3.5a.25.25 0 0 0-.25-.25Z"></path>
</svg>
</template>
<template id="book-icon">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-book">
<path d="M0 1.75A.75.75 0 0 1 .75 1h4.253c1.227 0 2.317.59 3 1.501A3.743 3.743 0 0 1 11.006 1h4.245a.75.75 0 0 1 .75.75v10.5a.75.75 0 0 1-.75.75h-4.507a2.25 2.25 0 0 0-1.591.659l-.622.621a.75.75 0 0 1-1.06 0l-.622-.621A2.25 2.25 0 0 0 5.258 13H.75a.75.75 0 0 1-.75-.75Zm7.251 10.324.004-5.073-.002-2.253A2.25 2.25 0 0 0 5.003 2.5H1.5v9h3.757a3.75 3.75 0 0 1 1.994.574ZM8.755 4.75l-.004 7.322a3.752 3.752 0 0 1 1.992-.572H14.5v-9h-3.495a2.25 2.25 0 0 0-2.25 2.25Z"></path>
</svg>
</template>
<template id="code-review-icon">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-code-review">
<path d="M1.75 1h12.5c.966 0 1.75.784 1.75 1.75v8.5A1.75 1.75 0 0 1 14.25 13H8.061l-2.574 2.573A1.458 1.458 0 0 1 3 14.543V13H1.75A1.75 1.75 0 0 1 0 11.25v-8.5C0 1.784.784 1 1.75 1ZM1.5 2.75v8.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h6.5a.25.25 0 0 0 .25-.25v-8.5a.25.25 0 0 0-.25-.25H1.75a.25.25 0 0 0-.25.25Zm5.28 1.72a.75.75 0 0 1 0 1.06L5.31 7l1.47 1.47a.751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018l-2-2a.75.75 0 0 1 0-1.06l2-2a.75.75 0 0 1 1.06 0Zm2.44 0a.75.75 0 0 1 1.06 0l2 2a.75.75 0 0 1 0 1.06l-2 2a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L10.69 7 9.22 5.53a.75.75 0 0 1 0-1.06Z"></path>
</svg>
</template>
<template id="codespaces-icon">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-codespaces">
<path d="M0 11.25c0-.966.784-1.75 1.75-1.75h12.5c.966 0 1.75.784 1.75 1.75v3A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25Zm2-9.5C2 .784 2.784 0 3.75 0h8.5C13.216 0 14 .784 14 1.75v5a1.75 1.75 0 0 1-1.75 1.75h-8.5A1.75 1.75 0 0 1 2 6.75Zm1.75-.25a.25.25 0 0 0-.25.25v5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-5a.25.25 0 0 0-.25-.25Zm-2 9.5a.25.25 0 0 0-.25.25v3c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25v-3a.25.25 0 0 0-.25-.25Z"></path><path d="M7 12.75a.75.75 0 0 1 .75-.75h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1-.75-.75Zm-4 0a.75.75 0 0 1 .75-.75h.5a.75.75 0 0 1 0 1.5h-.5a.75.75 0 0 1-.75-.75Z"></path>
</svg>
</template>
<template id="comment-icon">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-comment">
<path d="M1 2.75C1 1.784 1.784 1 2.75 1h10.5c.966 0 1.75.784 1.75 1.75v7.5A1.75 1.75 0 0 1 13.25 12H9.06l-2.573 2.573A1.458 1.458 0 0 1 4 13.543V12H2.75A1.75 1.75 0 0 1 1 10.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h4.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path>
</svg>
</template>
<template id="comment-discussion-icon">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-comment-discussion">
<path d="M1.75 1h8.5c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0 1 10.25 10H7.061l-2.574 2.573A1.458 1.458 0 0 1 2 11.543V10h-.25A1.75 1.75 0 0 1 0 8.25v-5.5C0 1.784.784 1 1.75 1ZM1.5 2.75v5.5c0 .138.112.25.25.25h1a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h3.5a.25.25 0 0 0 .25-.25v-5.5a.25.25 0 0 0-.25-.25h-8.5a.25.25 0 0 0-.25.25Zm13 2a.25.25 0 0 0-.25-.25h-.5a.75.75 0 0 1 0-1.5h.5c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0 1 14.25 12H14v1.543a1.458 1.458 0 0 1-2.487 1.03L9.22 12.28a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215l2.22 2.22v-2.19a.75.75 0 0 1 .75-.75h1a.25.25 0 0 0 .25-.25Z"></path>
</svg>
</template>
<template id="organization-icon">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-organization">
<path d="M1.75 16A1.75 1.75 0 0 1 0 14.25V1.75C0 .784.784 0 1.75 0h8.5C11.216 0 12 .784 12 1.75v12.5c0 .085-.006.168-.018.25h2.268a.25.25 0 0 0 .25-.25V8.285a.25.25 0 0 0-.111-.208l-1.055-.703a.749.749 0 1 1 .832-1.248l1.055.703c.487.325.779.871.779 1.456v5.965A1.75 1.75 0 0 1 14.25 16h-3.5a.766.766 0 0 1-.197-.026c-.099.017-.2.026-.303.026h-3a.75.75 0 0 1-.75-.75V14h-1v1.25a.75.75 0 0 1-.75.75Zm-.25-1.75c0 .138.112.25.25.25H4v-1.25a.75.75 0 0 1 .75-.75h2.5a.75.75 0 0 1 .75.75v1.25h2.25a.25.25 0 0 0 .25-.25V1.75a.25.25 0 0 0-.25-.25h-8.5a.25.25 0 0 0-.25.25ZM3.75 6h.5a.75.75 0 0 1 0 1.5h-.5a.75.75 0 0 1 0-1.5ZM3 3.75A.75.75 0 0 1 3.75 3h.5a.75.75 0 0 1 0 1.5h-.5A.75.75 0 0 1 3 3.75Zm4 3A.75.75 0 0 1 7.75 6h.5a.75.75 0 0 1 0 1.5h-.5A.75.75 0 0 1 7 6.75ZM7.75 3h.5a.75.75 0 0 1 0 1.5h-.5a.75.75 0 0 1 0-1.5ZM3 9.75A.75.75 0 0 1 3.75 9h.5a.75.75 0 0 1 0 1.5h-.5A.75.75 0 0 1 3 9.75ZM7.75 9h.5a.75.75 0 0 1 0 1.5h-.5a.75.75 0 0 1 0-1.5Z"></path>
</svg>
</template>
<template id="rocket-icon">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-rocket">
<path d="M14.064 0h.186C15.216 0 16 .784 16 1.75v.186a8.752 8.752 0 0 1-2.564 6.186l-.458.459c-.314.314-.641.616-.979.904v3.207c0 .608-.315 1.172-.833 1.49l-2.774 1.707a.749.749 0 0 1-1.11-.418l-.954-3.102a1.214 1.214 0 0 1-.145-.125L3.754 9.816a1.218 1.218 0 0 1-.124-.145L.528 8.717a.749.749 0 0 1-.418-1.11l1.71-2.774A1.748 1.748 0 0 1 3.31 4h3.204c.288-.338.59-.665.904-.979l.459-.458A8.749 8.749 0 0 1 14.064 0ZM8.938 3.623h-.002l-.458.458c-.76.76-1.437 1.598-2.02 2.5l-1.5 2.317 2.143 2.143 2.317-1.5c.902-.583 1.74-1.26 2.499-2.02l.459-.458a7.25 7.25 0 0 0 2.123-5.127V1.75a.25.25 0 0 0-.25-.25h-.186a7.249 7.249 0 0 0-5.125 2.123ZM3.56 14.56c-.732.732-2.334 1.045-3.005 1.148a.234.234 0 0 1-.201-.064.234.234 0 0 1-.064-.201c.103-.671.416-2.273 1.15-3.003a1.502 1.502 0 1 1 2.12 2.12Zm6.94-3.935c-.088.06-.177.118-.266.175l-2.35 1.521.548 1.783 1.949-1.2a.25.25 0 0 0 .119-.213ZM3.678 8.116 5.2 5.766c.058-.09.117-.178.176-.266H3.309a.25.25 0 0 0-.213.119l-1.2 1.95ZM12 5a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path>
</svg>
</template>
<template id="shield-check-icon">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-shield-check">
<path d="m8.533.133 5.25 1.68A1.75 1.75 0 0 1 15 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.697 1.697 0 0 1-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 0 1 1.217-1.667l5.25-1.68a1.748 1.748 0 0 1 1.066 0Zm-.61 1.429.001.001-5.25 1.68a.251.251 0 0 0-.174.237V7c0 1.36.275 2.666 1.057 3.859.784 1.194 2.121 2.342 4.366 3.298a.196.196 0 0 0 .154 0c2.245-.957 3.582-2.103 4.366-3.297C13.225 9.666 13.5 8.358 13.5 7V3.48a.25.25 0 0 0-.174-.238l-5.25-1.68a.25.25 0 0 0-.153 0ZM11.28 6.28l-3.5 3.5a.75.75 0 0 1-1.06 0l-1.5-1.5a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215l.97.97 2.97-2.97a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z"></path>
</svg>
</template>
<template id="heart-icon">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-heart">
<path d="m8 14.25.345.666a.75.75 0 0 1-.69 0l-.008-.004-.018-.01a7.152 7.152 0 0 1-.31-.17 22.055 22.055 0 0 1-3.434-2.414C2.045 10.731 0 8.35 0 5.5 0 2.836 2.086 1 4.25 1 5.797 1 7.153 1.802 8 3.02 8.847 1.802 10.203 1 11.75 1 13.914 1 16 2.836 16 5.5c0 2.85-2.045 5.231-3.885 6.818a22.066 22.066 0 0 1-3.744 2.584l-.018.01-.006.003h-.002ZM4.25 2.5c-1.336 0-2.75 1.164-2.75 3 0 2.15 1.58 4.144 3.365 5.682A20.58 20.58 0 0 0 8 13.393a20.58 20.58 0 0 0 3.135-2.211C12.92 9.644 14.5 7.65 14.5 5.5c0-1.836-1.414-3-2.75-3-1.373 0-2.609.986-3.029 2.456a.749.749 0 0 1-1.442 0C6.859 3.486 5.623 2.5 4.25 2.5Z"></path>
</svg>
</template>
<template id="server-icon">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-server">
<path d="M1.75 1h12.5c.966 0 1.75.784 1.75 1.75v4c0 .372-.116.717-.314 1 .198.283.314.628.314 1v4a1.75 1.75 0 0 1-1.75 1.75H1.75A1.75 1.75 0 0 1 0 12.75v-4c0-.358.109-.707.314-1a1.739 1.739 0 0 1-.314-1v-4C0 1.784.784 1 1.75 1ZM1.5 2.75v4c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25v-4a.25.25 0 0 0-.25-.25H1.75a.25.25 0 0 0-.25.25Zm.25 5.75a.25.25 0 0 0-.25.25v4c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25v-4a.25.25 0 0 0-.25-.25ZM7 4.75A.75.75 0 0 1 7.75 4h4.5a.75.75 0 0 1 0 1.5h-4.5A.75.75 0 0 1 7 4.75ZM7.75 10h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1 0-1.5ZM3 4.75A.75.75 0 0 1 3.75 4h.5a.75.75 0 0 1 0 1.5h-.5A.75.75 0 0 1 3 4.75ZM3.75 10h.5a.75.75 0 0 1 0 1.5h-.5a.75.75 0 0 1 0-1.5Z"></path>
</svg>
</template>
<template id="globe-icon">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-globe">
<path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM5.78 8.75a9.64 9.64 0 0 0 1.363 4.177c.255.426.542.832.857 1.215.245-.296.551-.705.857-1.215A9.64 9.64 0 0 0 10.22 8.75Zm4.44-1.5a9.64 9.64 0 0 0-1.363-4.177c-.307-.51-.612-.919-.857-1.215a9.927 9.927 0 0 0-.857 1.215A9.64 9.64 0 0 0 5.78 7.25Zm-5.944 1.5H1.543a6.507 6.507 0 0 0 4.666 5.5c-.123-.181-.24-.365-.352-.552-.715-1.192-1.437-2.874-1.581-4.948Zm-2.733-1.5h2.733c.144-2.074.866-3.756 1.58-4.948.12-.197.237-.381.353-.552a6.507 6.507 0 0 0-4.666 5.5Zm10.181 1.5c-.144 2.074-.866 3.756-1.58 4.948-.12.197-.237.381-.353.552a6.507 6.507 0 0 0 4.666-5.5Zm2.733-1.5a6.507 6.507 0 0 0-4.666-5.5c.123.181.24.365.353.552.714 1.192 1.436 2.874 1.58 4.948Z"></path>
</svg>
</template>
<template id="issue-opened-icon">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-issue-opened">
<path d="M8 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Z"></path>
</svg>
</template>
<template id="device-mobile-icon">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-device-mobile">
<path d="M3.75 0h8.5C13.216 0 14 .784 14 1.75v12.5A1.75 1.75 0 0 1 12.25 16h-8.5A1.75 1.75 0 0 1 2 14.25V1.75C2 .784 2.784 0 3.75 0ZM3.5 1.75v12.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25V1.75a.25.25 0 0 0-.25-.25h-8.5a.25.25 0 0 0-.25.25ZM8 13a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z"></path>
</svg>
</template>
<template id="package-icon">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-package">
<path d="m8.878.392 5.25 3.045c.54.314.872.89.872 1.514v6.098a1.75 1.75 0 0 1-.872 1.514l-5.25 3.045a1.75 1.75 0 0 1-1.756 0l-5.25-3.045A1.75 1.75 0 0 1 1 11.049V4.951c0-.624.332-1.201.872-1.514L7.122.392a1.75 1.75 0 0 1 1.756 0ZM7.875 1.69l-4.63 2.685L8 7.133l4.755-2.758-4.63-2.685a.248.248 0 0 0-.25 0ZM2.5 5.677v5.372c0 .09.047.171.125.216l4.625 2.683V8.432Zm6.25 8.271 4.625-2.683a.25.25 0 0 0 .125-.216V5.677L8.75 8.432Z"></path>
</svg>
</template>
<template id="credit-card-icon">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-credit-card">
<path d="M10.75 9a.75.75 0 0 0 0 1.5h1.5a.75.75 0 0 0 0-1.5h-1.5Z"></path><path d="M0 3.75C0 2.784.784 2 1.75 2h12.5c.966 0 1.75.784 1.75 1.75v8.5A1.75 1.75 0 0 1 14.25 14H1.75A1.75 1.75 0 0 1 0 12.25ZM14.5 6.5h-13v5.75c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25Zm0-2.75a.25.25 0 0 0-.25-.25H1.75a.25.25 0 0 0-.25.25V5h13Z"></path>
</svg>
</template>
<template id="play-icon">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-play">
<path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Zm4.879-2.773 4.264 2.559a.25.25 0 0 1 0 .428l-4.264 2.559A.25.25 0 0 1 6 10.559V5.442a.25.25 0 0 1 .379-.215Z"></path>
</svg>
</template>
<template id="gift-icon">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-gift">
<path d="M2 2.75A2.75 2.75 0 0 1 4.75 0c.983 0 1.873.42 2.57 1.232.268.318.497.668.68 1.042.183-.375.411-.725.68-1.044C9.376.42 10.266 0 11.25 0a2.75 2.75 0 0 1 2.45 4h.55c.966 0 1.75.784 1.75 1.75v2c0 .698-.409 1.301-1 1.582v4.918A1.75 1.75 0 0 1 13.25 16H2.75A1.75 1.75 0 0 1 1 14.25V9.332C.409 9.05 0 8.448 0 7.75v-2C0 4.784.784 4 1.75 4h.55c-.192-.375-.3-.8-.3-1.25ZM7.25 9.5H2.5v4.75c0 .138.112.25.25.25h4.5Zm1.5 0v5h4.5a.25.25 0 0 0 .25-.25V9.5Zm0-4V8h5.5a.25.25 0 0 0 .25-.25v-2a.25.25 0 0 0-.25-.25Zm-7 0a.25.25 0 0 0-.25.25v2c0 .138.112.25.25.25h5.5V5.5h-5.5Zm3-4a1.25 1.25 0 0 0 0 2.5h2.309c-.233-.818-.542-1.401-.878-1.793-.43-.502-.915-.707-1.431-.707ZM8.941 4h2.309a1.25 1.25 0 0 0 0-2.5c-.516 0-1 .205-1.43.707-.337.392-.646.975-.879 1.793Z"></path>
</svg>
</template>
<template id="code-square-icon">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-code-square">
<path d="M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25V1.75a.25.25 0 0 0-.25-.25Zm7.47 3.97a.75.75 0 0 1 1.06 0l2 2a.75.75 0 0 1 0 1.06l-2 2a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L10.69 8 9.22 6.53a.75.75 0 0 1 0-1.06ZM6.78 6.53 5.31 8l1.47 1.47a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215l-2-2a.75.75 0 0 1 0-1.06l2-2a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z"></path>
</svg>
</template>
<template id="device-desktop-icon">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-device-desktop">
<path d="M14.25 1c.966 0 1.75.784 1.75 1.75v7.5A1.75 1.75 0 0 1 14.25 12h-3.727c.099 1.041.52 1.872 1.292 2.757A.752.752 0 0 1 11.25 16h-6.5a.75.75 0 0 1-.565-1.243c.772-.885 1.192-1.716 1.292-2.757H1.75A1.75 1.75 0 0 1 0 10.25v-7.5C0 1.784.784 1 1.75 1ZM1.75 2.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25ZM9.018 12H6.982a5.72 5.72 0 0 1-.765 2.5h3.566a5.72 5.72 0 0 1-.765-2.5Z"></path>
</svg>
</template>
<div class="position-relative">
<ul
role="listbox"
class="ActionListWrap QueryBuilder-ListWrap"
aria-label="Suggestions"
data-action="
combobox-commit:query-builder#comboboxCommit
mousedown:query-builder#resultsMousedown
"
data-target="query-builder.resultsList"
data-persist-list=false
id="query-builder-test-results"
></ul>
</div>
<div class="FormControl-inlineValidation" id="validation-9e3f0a51-26ea-44b6-9a5a-408c1279f5fb" hidden="hidden">
<span class="FormControl-inlineValidation--visual">
<svg aria-hidden="true" height="12" viewBox="0 0 12 12" version="1.1" width="12" data-view-component="true" class="octicon octicon-alert-fill">
<path d="M4.855.708c.5-.896 1.79-.896 2.29 0l4.675 8.351a1.312 1.312 0 0 1-1.146 1.954H1.33A1.313 1.313 0 0 1 .183 9.058ZM7 7V3H5v4Zm-1 3a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z"></path>
</svg>
</span>
<span></span>
</div> </div>
<div data-target="query-builder.screenReaderFeedback" aria-live="polite" aria-atomic="true" class="sr-only"></div>
</query-builder></form>
<div class="d-flex flex-row color-fg-muted px-3 text-small color-bg-default search-feedback-prompt">
<a target="_blank" href="https://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax" data-view-component="true" class="Link color-fg-accent text-normal ml-2">Search syntax tips</a> <div class="d-flex flex-1"></div>
</div>
</div>
</div>
</div>
</modal-dialog></div>
</div>
<div data-action="click:qbsearch-input#retract" class="dark-backdrop position-fixed" hidden data-target="qbsearch-input.darkBackdrop"></div>
<div class="color-fg-default">
<dialog-helper>
<dialog data-target="qbsearch-input.feedbackDialog" data-action="close:qbsearch-input#handleDialogClose cancel:qbsearch-input#handleDialogClose" id="feedback-dialog" aria-modal="true" aria-labelledby="feedback-dialog-title" aria-describedby="feedback-dialog-description" data-view-component="true" class="Overlay Overlay-whenNarrow Overlay--size-medium Overlay--motion-scaleFade Overlay--disableScroll">
<div data-view-component="true" class="Overlay-header">
<div class="Overlay-headerContentWrap">
<div class="Overlay-titleWrap">
<h1 class="Overlay-title " id="feedback-dialog-title">
Provide feedback
</h1>
</div>
<div class="Overlay-actionWrap">
<button data-close-dialog-id="feedback-dialog" aria-label="Close" type="button" data-view-component="true" class="close-button Overlay-closeButton"><svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x">
<path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path>
</svg></button>
</div>
</div>
</div>
<scrollable-region data-labelled-by="feedback-dialog-title">
<div data-view-component="true" class="Overlay-body"> <!-- '"` --><!-- </textarea></xmp> --></option></form><form id="code-search-feedback-form" data-turbo="false" action="/search/feedback" accept-charset="UTF-8" method="post"><input type="hidden" data-csrf="true" name="authenticity_token" value="YRCtZil/B9fI2qZfdS4e4M4lXe88RDvU5BEbopRC44pM7M9CvzD4ka1TKgip52PJit0DgB4ZgFn5+yVcOSa8Jw==" />
<p>We read every piece of feedback, and take your input very seriously.</p>
<textarea name="feedback" class="form-control width-full mb-2" style="height: 120px" id="feedback"></textarea>
<input name="include_email" id="include_email" aria-label="Include my email address so I can be contacted" class="form-control mr-2" type="checkbox">
<label for="include_email" style="font-weight: normal">Include my email address so I can be contacted</label>
</form></div>
</scrollable-region>
<div data-view-component="true" class="Overlay-footer Overlay-footer--alignEnd"> <button data-close-dialog-id="feedback-dialog" type="button" data-view-component="true" class="btn"> Cancel
</button>
<button form="code-search-feedback-form" data-action="click:qbsearch-input#submitFeedback" type="submit" data-view-component="true" class="btn-primary btn"> Submit feedback
</button>
</div>
</dialog></dialog-helper>
<custom-scopes data-target="qbsearch-input.customScopesManager">
<dialog-helper>
<dialog data-target="custom-scopes.customScopesModalDialog" data-action="close:qbsearch-input#handleDialogClose cancel:qbsearch-input#handleDialogClose" id="custom-scopes-dialog" aria-modal="true" aria-labelledby="custom-scopes-dialog-title" aria-describedby="custom-scopes-dialog-description" data-view-component="true" class="Overlay Overlay-whenNarrow Overlay--size-medium Overlay--motion-scaleFade Overlay--disableScroll">
<div data-view-component="true" class="Overlay-header Overlay-header--divided">
<div class="Overlay-headerContentWrap">
<div class="Overlay-titleWrap">
<h1 class="Overlay-title " id="custom-scopes-dialog-title">
Saved searches
</h1>
<h2 id="custom-scopes-dialog-description" class="Overlay-description">Use saved searches to filter your results more quickly</h2>
</div>
<div class="Overlay-actionWrap">
<button data-close-dialog-id="custom-scopes-dialog" aria-label="Close" type="button" data-view-component="true" class="close-button Overlay-closeButton"><svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x">
<path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path>
</svg></button>
</div>
</div>
</div>
<scrollable-region data-labelled-by="custom-scopes-dialog-title">
<div data-view-component="true" class="Overlay-body"> <div data-target="custom-scopes.customScopesModalDialogFlash"></div>
<div hidden class="create-custom-scope-form" data-target="custom-scopes.createCustomScopeForm">
<!-- '"` --><!-- </textarea></xmp> --></option></form><form id="custom-scopes-dialog-form" data-turbo="false" action="/search/custom_scopes" accept-charset="UTF-8" method="post"><input type="hidden" data-csrf="true" name="authenticity_token" value="sNM9fnoxpzqk2i39cz/759SOWZ/G9x+tJ6LLFsTdfXYnDOILSqpKe6b5d+1Aa31k8rTj5uZCKDiM4+XqH+s8og==" />
<div data-target="custom-scopes.customScopesModalDialogFlash"></div>
<input type="hidden" id="custom_scope_id" name="custom_scope_id" data-target="custom-scopes.customScopesIdField">
<div class="form-group">
<label for="custom_scope_name">Name</label>
<auto-check src="/search/custom_scopes/check_name" required only-validate-on-blur="false">
<input
type="text"
name="custom_scope_name"
id="custom_scope_name"
data-target="custom-scopes.customScopesNameField"
class="form-control"
autocomplete="off"
placeholder="github-ruby"
required
maxlength="50">
<input type="hidden" data-csrf="true" value="NH1mgIeeECvyCln2vKLC2VdJaEERQcfUzRlwlP4iB6N6QJLQnZX+LLfQZpJDrp2O/c9+PZ1MRdhPjJN1UgUFWg==" />
</auto-check>
</div>
<div class="form-group">
<label for="custom_scope_query">Query</label>
<input
type="text"
name="custom_scope_query"
id="custom_scope_query"
data-target="custom-scopes.customScopesQueryField"
class="form-control"
autocomplete="off"
placeholder="(repo:mona/a OR repo:mona/b) AND lang:python"
required
maxlength="500">
</div>
<p class="text-small color-fg-muted">
To see all available qualifiers, see our <a class="Link--inTextBlock" href="https://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax">documentation</a>.
</p>
</form> </div>
<div data-target="custom-scopes.manageCustomScopesForm">
<div data-target="custom-scopes.list"></div>
</div>
</div>
</scrollable-region>
<div data-view-component="true" class="Overlay-footer Overlay-footer--alignEnd Overlay-footer--divided"> <button data-action="click:custom-scopes#customScopesCancel" type="button" data-view-component="true" class="btn"> Cancel
</button>
<button form="custom-scopes-dialog-form" data-action="click:custom-scopes#customScopesSubmit" data-target="custom-scopes.customScopesSubmitButton" type="submit" data-view-component="true" class="btn-primary btn"> Create saved search
</button>
</div>
</dialog></dialog-helper>
</custom-scopes>
</div>
</qbsearch-input>
<div class="position-relative HeaderMenu-link-wrap d-lg-inline-block">
<a
href="/login?return_to=https%3A%2F%2Fgithub.com%2Fdoctest%2Fdoctest%2Fblob%2Fmaster%2Fdoctest%2Fdoctest.h"
class="HeaderMenu-link HeaderMenu-link--sign-in HeaderMenu-button flex-shrink-0 no-underline d-none d-lg-inline-flex border border-lg-0 rounded rounded-lg-0 px-2 py-1"
style="margin-left: 12px;"
data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;site header menu&quot;,&quot;repository_id&quot;:null,&quot;auth_type&quot;:&quot;SIGN_UP&quot;,&quot;originating_url&quot;:&quot;https://github.com/doctest/doctest/blob/master/doctest/doctest.h&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="8d2cc0aa0b6a8bbd9394fabc16af40fd0c315fdea10d86a4dc092ce9a3ae407e"
data-analytics-event="{&quot;category&quot;:&quot;Marketing nav&quot;,&quot;action&quot;:&quot;click to go to homepage&quot;,&quot;label&quot;:&quot;ref_page:Marketing;ref_cta:Sign in;ref_loc:Header&quot;}"
>
Sign in
</a>
</div>
<a href="/signup?ref_cta=Sign+up&amp;ref_loc=header+logged+out&amp;ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fblob%2Fshow&amp;source=header-repo&amp;source_repo=doctest%2Fdoctest"
class="HeaderMenu-link HeaderMenu-link--sign-up HeaderMenu-button flex-shrink-0 d-flex d-lg-inline-flex no-underline border color-border-default rounded px-2 py-1"
data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;site header menu&quot;,&quot;repository_id&quot;:null,&quot;auth_type&quot;:&quot;SIGN_UP&quot;,&quot;originating_url&quot;:&quot;https://github.com/doctest/doctest/blob/master/doctest/doctest.h&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="8d2cc0aa0b6a8bbd9394fabc16af40fd0c315fdea10d86a4dc092ce9a3ae407e"
data-analytics-event="{&quot;category&quot;:&quot;Sign up&quot;,&quot;action&quot;:&quot;click to sign up for account&quot;,&quot;label&quot;:&quot;ref_page:/&lt;user-name&gt;/&lt;repo-name&gt;/blob/show;ref_cta:Sign up;ref_loc:header logged out&quot;}"
>
Sign up
</a>
<button type="button" class="sr-only js-header-menu-focus-trap d-block d-lg-none">Reseting focus</button>
</div>
</div>
</div>
</div>
</header>
<div hidden="hidden" data-view-component="true" class="js-stale-session-flash stale-session-flash flash flash-warn flash-full">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert">
<path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path>
</svg>
<span class="js-stale-session-flash-signed-in" hidden>You signed in with another tab or window. <a class="Link--inTextBlock" href="">Reload</a> to refresh your session.</span>
<span class="js-stale-session-flash-signed-out" hidden>You signed out in another tab or window. <a class="Link--inTextBlock" href="">Reload</a> to refresh your session.</span>
<span class="js-stale-session-flash-switched" hidden>You switched accounts on another tab or window. <a class="Link--inTextBlock" href="">Reload</a> to refresh your session.</span>
<button id="icon-button-f89a461d-041f-4754-9839-c199f9169cbf" aria-labelledby="tooltip-4b311b0f-2c37-44d2-97b5-b2ce949bcabf" type="button" data-view-component="true" class="Button Button--iconOnly Button--invisible Button--medium flash-close js-flash-close"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x Button-visual">
<path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path>
</svg>
</button><tool-tip id="tooltip-4b311b0f-2c37-44d2-97b5-b2ce949bcabf" for="icon-button-f89a461d-041f-4754-9839-c199f9169cbf" popover="manual" data-direction="s" data-type="label" data-view-component="true" class="sr-only position-absolute">Dismiss alert</tool-tip>
</div>
</div>
<div id="start-of-content" class="show-on-focus"></div>
<div id="js-flash-container" class="flash-container" data-turbo-replace>
<template class="js-flash-template">
<div class="flash flash-full {{ className }}">
<div >
<button autofocus class="flash-close js-flash-close" type="button" aria-label="Dismiss this message">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x">
<path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path>
</svg>
</button>
<div aria-atomic="true" role="alert" class="js-flash-alert">
<div>{{ message }}</div>
</div>
</div>
</div>
</template>
</div>
<div
class="application-main "
data-commit-hovercards-enabled
data-discussion-hovercards-enabled
data-issue-and-pr-hovercards-enabled
data-project-hovercards-enabled
>
<div itemscope itemtype="http://schema.org/SoftwareSourceCode" class="">
<main id="js-repo-pjax-container" >
<div id="repository-container-header" class="pt-3 hide-full-screen" style="background-color: var(--page-header-bgColor, var(--color-page-header-bg));" data-turbo-replace>
<div class="d-flex flex-nowrap flex-justify-end mb-3 px-3 px-lg-5" style="gap: 1rem;">
<div class="flex-auto min-width-0 width-fit">
<div class=" d-flex flex-wrap flex-items-center wb-break-word f3 text-normal">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo color-fg-muted mr-2">
<path d="M2 2.5A2.5 2.5 0 0 1 4.5 0h8.75a.75.75 0 0 1 .75.75v12.5a.75.75 0 0 1-.75.75h-2.5a.75.75 0 0 1 0-1.5h1.75v-2h-8a1 1 0 0 0-.714 1.7.75.75 0 1 1-1.072 1.05A2.495 2.495 0 0 1 2 11.5Zm10.5-1h-8a1 1 0 0 0-1 1v6.708A2.486 2.486 0 0 1 4.5 9h8ZM5 12.25a.25.25 0 0 1 .25-.25h3.5a.25.25 0 0 1 .25.25v3.25a.25.25 0 0 1-.4.2l-1.45-1.087a.249.249 0 0 0-.3 0L5.4 15.7a.25.25 0 0 1-.4-.2Z"></path>
</svg>
<span class="author flex-self-stretch" itemprop="author">
<a class="url fn" rel="author" data-hovercard-type="organization" data-hovercard-url="/orgs/doctest/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/doctest">
doctest
</a> </span>
<span class="mx-1 flex-self-stretch color-fg-muted">/</span>
<strong itemprop="name" class="mr-2 flex-self-stretch">
<a data-pjax="#repo-content-pjax-container" data-turbo-frame="repo-content-turbo-frame" href="/doctest/doctest">doctest</a>
</strong>
<span></span><span class="Label Label--secondary v-align-middle mr-1">Public</span>
</div>
</div>
<div id="repository-details-container" class="flex-shrink-0" data-turbo-replace style="max-width: 70%;">
<ul class="pagehead-actions flex-shrink-0 d-none d-md-inline" style="padding: 2px 0;">
<li>
<include-fragment src="/doctest/doctest/sponsor_button"></include-fragment>
</li>
<li>
<a href="/login?return_to=%2Fdoctest%2Fdoctest" rel="nofollow" id="repository-details-watch-button" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;notification subscription menu watch&quot;,&quot;repository_id&quot;:null,&quot;auth_type&quot;:&quot;LOG_IN&quot;,&quot;originating_url&quot;:&quot;https://github.com/doctest/doctest/blob/master/doctest/doctest.h&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="960bf468301f9a771fd8864e5ea700583cec6a3a30c6eed2900ba17b8d1616d2" aria-label="You must be signed in to change notification settings" data-view-component="true" class="btn-sm btn"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-bell mr-2">
<path d="M8 16a2 2 0 0 0 1.985-1.75c.017-.137-.097-.25-.235-.25h-3.5c-.138 0-.252.113-.235.25A2 2 0 0 0 8 16ZM3 5a5 5 0 0 1 10 0v2.947c0 .05.015.098.042.139l1.703 2.555A1.519 1.519 0 0 1 13.482 13H2.518a1.516 1.516 0 0 1-1.263-2.36l1.703-2.554A.255.255 0 0 0 3 7.947Zm5-3.5A3.5 3.5 0 0 0 4.5 5v2.947c0 .346-.102.683-.294.97l-1.703 2.556a.017.017 0 0 0-.003.01l.001.006c0 .002.002.004.004.006l.006.004.007.001h10.964l.007-.001.006-.004.004-.006.001-.007a.017.017 0 0 0-.003-.01l-1.703-2.554a1.745 1.745 0 0 1-.294-.97V5A3.5 3.5 0 0 0 8 1.5Z"></path>
</svg>Notifications
</a> <tool-tip id="tooltip-3d869a79-ebdc-4e27-b22e-c064bc50defa" for="repository-details-watch-button" popover="manual" data-direction="s" data-type="description" data-view-component="true" class="sr-only position-absolute">You must be signed in to change notification settings</tool-tip>
</li>
<li>
<a icon="repo-forked" id="fork-button" href="/login?return_to=%2Fdoctest%2Fdoctest" rel="nofollow" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;repo details fork button&quot;,&quot;repository_id&quot;:22660515,&quot;auth_type&quot;:&quot;LOG_IN&quot;,&quot;originating_url&quot;:&quot;https://github.com/doctest/doctest/blob/master/doctest/doctest.h&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="07c6f25cf8611c78acf6dadbd06e177a8bea2e5ccd0f521c9ae4b095e6011935" data-view-component="true" class="btn-sm btn"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo-forked mr-2">
<path d="M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75v-.878a2.25 2.25 0 1 1 1.5 0v.878a2.25 2.25 0 0 1-2.25 2.25h-1.5v2.128a2.251 2.251 0 1 1-1.5 0V8.5h-1.5A2.25 2.25 0 0 1 3.5 6.25v-.878a2.25 2.25 0 1 1 1.5 0ZM5 3.25a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Zm6.75.75a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Zm-3 8.75a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Z"></path>
</svg>Fork
<span id="repo-network-counter" data-pjax-replace="true" data-turbo-replace="true" title="657" data-view-component="true" class="Counter">657</span>
</a>
</li>
<li>
<div data-view-component="true" class="BtnGroup d-flex">
<a href="/login?return_to=%2Fdoctest%2Fdoctest" rel="nofollow" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;star button&quot;,&quot;repository_id&quot;:22660515,&quot;auth_type&quot;:&quot;LOG_IN&quot;,&quot;originating_url&quot;:&quot;https://github.com/doctest/doctest/blob/master/doctest/doctest.h&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="8afdace2b8c24c6fd6c94b5d5843bd26235acb02370ae63461af275ca67df471" aria-label="You must be signed in to star a repository" data-view-component="true" class="tooltipped tooltipped-sw btn-sm btn"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-star v-align-text-bottom d-inline-block mr-2">
<path d="M8 .25a.75.75 0 0 1 .673.418l1.882 3.815 4.21.612a.75.75 0 0 1 .416 1.279l-3.046 2.97.719 4.192a.751.751 0 0 1-1.088.791L8 12.347l-3.766 1.98a.75.75 0 0 1-1.088-.79l.72-4.194L.818 6.374a.75.75 0 0 1 .416-1.28l4.21-.611L7.327.668A.75.75 0 0 1 8 .25Zm0 2.445L6.615 5.5a.75.75 0 0 1-.564.41l-3.097.45 2.24 2.184a.75.75 0 0 1 .216.664l-.528 3.084 2.769-1.456a.75.75 0 0 1 .698 0l2.77 1.456-.53-3.084a.75.75 0 0 1 .216-.664l2.24-2.183-3.096-.45a.75.75 0 0 1-.564-.41L8 2.694Z"></path>
</svg><span data-view-component="true" class="d-inline">
Star
</span> <span id="repo-stars-counter-star" aria-label="6159 users starred this repository" data-singular-suffix="user starred this repository" data-plural-suffix="users starred this repository" data-turbo-replace="true" title="6,159" data-view-component="true" class="Counter js-social-count">6.2k</span>
</a></div>
</li>
</ul>
</div>
</div>
<div id="responsive-meta-container" data-turbo-replace>
</div>
<nav data-pjax="#js-repo-pjax-container" aria-label="Repository" data-view-component="true" class="js-repo-nav js-sidenav-container-pjax js-responsive-underlinenav overflow-hidden UnderlineNav px-3 px-md-4 px-lg-5">
<ul data-view-component="true" class="UnderlineNav-body list-style-none">
<li data-view-component="true" class="d-inline-flex">
<a id="code-tab" href="/doctest/doctest" data-tab-item="i0code-tab" data-selected-links="repo_source repo_downloads repo_commits repo_releases repo_tags repo_branches repo_packages repo_deployments repo_attestations /doctest/doctest" data-pjax="#repo-content-pjax-container" data-turbo-frame="repo-content-turbo-frame" data-hotkey="g c" data-analytics-event="{&quot;category&quot;:&quot;Underline navbar&quot;,&quot;action&quot;:&quot;Click tab&quot;,&quot;label&quot;:&quot;Code&quot;,&quot;target&quot;:&quot;UNDERLINE_NAV.TAB&quot;}" aria-current="page" data-view-component="true" class="UnderlineNav-item no-wrap js-responsive-underlinenav-item js-selected-navigation-item selected">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-code UnderlineNav-octicon d-none d-sm-inline">
<path d="m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z"></path>
</svg>
<span data-content="Code">Code</span>
<span id="code-repo-tab-count" data-pjax-replace="" data-turbo-replace="" title="Not available" data-view-component="true" class="Counter"></span>
</a></li>
<li data-view-component="true" class="d-inline-flex">
<a id="issues-tab" href="/doctest/doctest/issues" data-tab-item="i1issues-tab" data-selected-links="repo_issues repo_labels repo_milestones /doctest/doctest/issues" data-pjax="#repo-content-pjax-container" data-turbo-frame="repo-content-turbo-frame" data-hotkey="g i" data-analytics-event="{&quot;category&quot;:&quot;Underline navbar&quot;,&quot;action&quot;:&quot;Click tab&quot;,&quot;label&quot;:&quot;Issues&quot;,&quot;target&quot;:&quot;UNDERLINE_NAV.TAB&quot;}" data-view-component="true" class="UnderlineNav-item no-wrap js-responsive-underlinenav-item js-selected-navigation-item">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-issue-opened UnderlineNav-octicon d-none d-sm-inline">
<path d="M8 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Z"></path>
</svg>
<span data-content="Issues">Issues</span>
<span id="issues-repo-tab-count" data-pjax-replace="" data-turbo-replace="" title="175" data-view-component="true" class="Counter">175</span>
</a></li>
<li data-view-component="true" class="d-inline-flex">
<a id="pull-requests-tab" href="/doctest/doctest/pulls" data-tab-item="i2pull-requests-tab" data-selected-links="repo_pulls checks /doctest/doctest/pulls" data-pjax="#repo-content-pjax-container" data-turbo-frame="repo-content-turbo-frame" data-hotkey="g p" data-analytics-event="{&quot;category&quot;:&quot;Underline navbar&quot;,&quot;action&quot;:&quot;Click tab&quot;,&quot;label&quot;:&quot;Pull requests&quot;,&quot;target&quot;:&quot;UNDERLINE_NAV.TAB&quot;}" data-view-component="true" class="UnderlineNav-item no-wrap js-responsive-underlinenav-item js-selected-navigation-item">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-git-pull-request UnderlineNav-octicon d-none d-sm-inline">
<path d="M1.5 3.25a2.25 2.25 0 1 1 3 2.122v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.25 2.25 0 0 1 1.5 3.25Zm5.677-.177L9.573.677A.25.25 0 0 1 10 .854V2.5h1A2.5 2.5 0 0 1 13.5 5v5.628a2.251 2.251 0 1 1-1.5 0V5a1 1 0 0 0-1-1h-1v1.646a.25.25 0 0 1-.427.177L7.177 3.427a.25.25 0 0 1 0-.354ZM3.75 2.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm0 9.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm8.25.75a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Z"></path>
</svg>
<span data-content="Pull requests">Pull requests</span>
<span id="pull-requests-repo-tab-count" data-pjax-replace="" data-turbo-replace="" title="34" data-view-component="true" class="Counter">34</span>
</a></li>
<li data-view-component="true" class="d-inline-flex">
<a id="discussions-tab" href="/doctest/doctest/discussions" data-tab-item="i3discussions-tab" data-selected-links="repo_discussions /doctest/doctest/discussions" data-pjax="#repo-content-pjax-container" data-turbo-frame="repo-content-turbo-frame" data-hotkey="g g" data-analytics-event="{&quot;category&quot;:&quot;Underline navbar&quot;,&quot;action&quot;:&quot;Click tab&quot;,&quot;label&quot;:&quot;Discussions&quot;,&quot;target&quot;:&quot;UNDERLINE_NAV.TAB&quot;}" data-view-component="true" class="UnderlineNav-item no-wrap js-responsive-underlinenav-item js-selected-navigation-item">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-comment-discussion UnderlineNav-octicon d-none d-sm-inline">
<path d="M1.75 1h8.5c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0 1 10.25 10H7.061l-2.574 2.573A1.458 1.458 0 0 1 2 11.543V10h-.25A1.75 1.75 0 0 1 0 8.25v-5.5C0 1.784.784 1 1.75 1ZM1.5 2.75v5.5c0 .138.112.25.25.25h1a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h3.5a.25.25 0 0 0 .25-.25v-5.5a.25.25 0 0 0-.25-.25h-8.5a.25.25 0 0 0-.25.25Zm13 2a.25.25 0 0 0-.25-.25h-.5a.75.75 0 0 1 0-1.5h.5c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0 1 14.25 12H14v1.543a1.458 1.458 0 0 1-2.487 1.03L9.22 12.28a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215l2.22 2.22v-2.19a.75.75 0 0 1 .75-.75h1a.25.25 0 0 0 .25-.25Z"></path>
</svg>
<span data-content="Discussions">Discussions</span>
<span id="discussions-repo-tab-count" data-pjax-replace="" data-turbo-replace="" title="Not available" data-view-component="true" class="Counter"></span>
</a></li>
<li data-view-component="true" class="d-inline-flex">
<a id="actions-tab" href="/doctest/doctest/actions" data-tab-item="i4actions-tab" data-selected-links="repo_actions /doctest/doctest/actions" data-pjax="#repo-content-pjax-container" data-turbo-frame="repo-content-turbo-frame" data-hotkey="g a" data-analytics-event="{&quot;category&quot;:&quot;Underline navbar&quot;,&quot;action&quot;:&quot;Click tab&quot;,&quot;label&quot;:&quot;Actions&quot;,&quot;target&quot;:&quot;UNDERLINE_NAV.TAB&quot;}" data-view-component="true" class="UnderlineNav-item no-wrap js-responsive-underlinenav-item js-selected-navigation-item">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-play UnderlineNav-octicon d-none d-sm-inline">
<path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Zm4.879-2.773 4.264 2.559a.25.25 0 0 1 0 .428l-4.264 2.559A.25.25 0 0 1 6 10.559V5.442a.25.25 0 0 1 .379-.215Z"></path>
</svg>
<span data-content="Actions">Actions</span>
<span id="actions-repo-tab-count" data-pjax-replace="" data-turbo-replace="" title="Not available" data-view-component="true" class="Counter"></span>
</a></li>
<li data-view-component="true" class="d-inline-flex">
<a id="security-tab" href="/doctest/doctest/security" data-tab-item="i5security-tab" data-selected-links="security overview alerts policy token_scanning code_scanning /doctest/doctest/security" data-pjax="#repo-content-pjax-container" data-turbo-frame="repo-content-turbo-frame" data-hotkey="g s" data-analytics-event="{&quot;category&quot;:&quot;Underline navbar&quot;,&quot;action&quot;:&quot;Click tab&quot;,&quot;label&quot;:&quot;Security&quot;,&quot;target&quot;:&quot;UNDERLINE_NAV.TAB&quot;}" data-view-component="true" class="UnderlineNav-item no-wrap js-responsive-underlinenav-item js-selected-navigation-item">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-shield UnderlineNav-octicon d-none d-sm-inline">
<path d="M7.467.133a1.748 1.748 0 0 1 1.066 0l5.25 1.68A1.75 1.75 0 0 1 15 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.697 1.697 0 0 1-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 0 1 1.217-1.667Zm.61 1.429a.25.25 0 0 0-.153 0l-5.25 1.68a.25.25 0 0 0-.174.238V7c0 1.358.275 2.666 1.057 3.86.784 1.194 2.121 2.34 4.366 3.297a.196.196 0 0 0 .154 0c2.245-.956 3.582-2.104 4.366-3.298C13.225 9.666 13.5 8.36 13.5 7V3.48a.251.251 0 0 0-.174-.237l-5.25-1.68ZM8.75 4.75v3a.75.75 0 0 1-1.5 0v-3a.75.75 0 0 1 1.5 0ZM9 10.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path>
</svg>
<span data-content="Security">Security</span>
<include-fragment src="/doctest/doctest/security/overall-count" accept="text/fragment+html"></include-fragment>
</a></li>
<li data-view-component="true" class="d-inline-flex">
<a id="insights-tab" href="/doctest/doctest/pulse" data-tab-item="i6insights-tab" data-selected-links="repo_graphs repo_contributors dependency_graph dependabot_updates pulse people community /doctest/doctest/pulse" data-pjax="#repo-content-pjax-container" data-turbo-frame="repo-content-turbo-frame" data-analytics-event="{&quot;category&quot;:&quot;Underline navbar&quot;,&quot;action&quot;:&quot;Click tab&quot;,&quot;label&quot;:&quot;Insights&quot;,&quot;target&quot;:&quot;UNDERLINE_NAV.TAB&quot;}" data-view-component="true" class="UnderlineNav-item no-wrap js-responsive-underlinenav-item js-selected-navigation-item">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-graph UnderlineNav-octicon d-none d-sm-inline">
<path d="M1.5 1.75V13.5h13.75a.75.75 0 0 1 0 1.5H.75a.75.75 0 0 1-.75-.75V1.75a.75.75 0 0 1 1.5 0Zm14.28 2.53-5.25 5.25a.75.75 0 0 1-1.06 0L7 7.06 4.28 9.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.25-3.25a.75.75 0 0 1 1.06 0L10 7.94l4.72-4.72a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z"></path>
</svg>
<span data-content="Insights">Insights</span>
<span id="insights-repo-tab-count" data-pjax-replace="" data-turbo-replace="" title="Not available" data-view-component="true" class="Counter"></span>
</a></li>
</ul>
<div style="visibility:hidden;" data-view-component="true" class="UnderlineNav-actions js-responsive-underlinenav-overflow position-absolute pr-3 pr-md-4 pr-lg-5 right-0"> <action-menu data-select-variant="none" data-view-component="true">
<focus-group direction="vertical" mnemonics retain>
<button id="action-menu-2b64f9d9-c45f-4640-bc34-a704657cabc2-button" popovertarget="action-menu-2b64f9d9-c45f-4640-bc34-a704657cabc2-overlay" aria-controls="action-menu-2b64f9d9-c45f-4640-bc34-a704657cabc2-list" aria-haspopup="true" aria-labelledby="tooltip-2b554e65-8dca-427c-b03b-53a07085252d" type="button" data-view-component="true" class="Button Button--iconOnly Button--secondary Button--medium UnderlineNav-item"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-kebab-horizontal Button-visual">
<path d="M8 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm13 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path>
</svg>
</button><tool-tip id="tooltip-2b554e65-8dca-427c-b03b-53a07085252d" for="action-menu-2b64f9d9-c45f-4640-bc34-a704657cabc2-button" popover="manual" data-direction="s" data-type="label" data-view-component="true" class="sr-only position-absolute">Additional navigation options</tool-tip>
<anchored-position data-target="action-menu.overlay" id="action-menu-2b64f9d9-c45f-4640-bc34-a704657cabc2-overlay" anchor="action-menu-2b64f9d9-c45f-4640-bc34-a704657cabc2-button" align="start" side="outside-bottom" anchor-offset="normal" popover="auto" data-view-component="true">
<div data-view-component="true" class="Overlay Overlay--size-auto">
<div data-view-component="true" class="Overlay-body Overlay-body--paddingNone"> <action-list>
<div data-view-component="true">
<ul aria-labelledby="action-menu-2b64f9d9-c45f-4640-bc34-a704657cabc2-button" id="action-menu-2b64f9d9-c45f-4640-bc34-a704657cabc2-list" role="menu" data-view-component="true" class="ActionListWrap--inset ActionListWrap">
<li hidden="hidden" data-menu-item="i0code-tab" data-targets="action-list.items" role="none" data-view-component="true" class="ActionListItem">
<a tabindex="-1" id="item-007643b5-726f-405a-a7b8-64774ebb3a5c" href="/doctest/doctest" role="menuitem" data-view-component="true" class="ActionListContent ActionListContent--visual16">
<span class="ActionListItem-visual ActionListItem-visual--leading">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-code">
<path d="m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z"></path>
</svg>
</span>
<span data-view-component="true" class="ActionListItem-label">
Code
</span>
</a>
</li>
<li hidden="hidden" data-menu-item="i1issues-tab" data-targets="action-list.items" role="none" data-view-component="true" class="ActionListItem">
<a tabindex="-1" id="item-37885ca4-1a62-45a3-b473-85b6027ad349" href="/doctest/doctest/issues" role="menuitem" data-view-component="true" class="ActionListContent ActionListContent--visual16">
<span class="ActionListItem-visual ActionListItem-visual--leading">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-issue-opened">
<path d="M8 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Z"></path>
</svg>
</span>
<span data-view-component="true" class="ActionListItem-label">
Issues
</span>
</a>
</li>
<li hidden="hidden" data-menu-item="i2pull-requests-tab" data-targets="action-list.items" role="none" data-view-component="true" class="ActionListItem">
<a tabindex="-1" id="item-eafc9eb7-6bac-40db-91f6-ed541dc41793" href="/doctest/doctest/pulls" role="menuitem" data-view-component="true" class="ActionListContent ActionListContent--visual16">
<span class="ActionListItem-visual ActionListItem-visual--leading">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-git-pull-request">
<path d="M1.5 3.25a2.25 2.25 0 1 1 3 2.122v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.25 2.25 0 0 1 1.5 3.25Zm5.677-.177L9.573.677A.25.25 0 0 1 10 .854V2.5h1A2.5 2.5 0 0 1 13.5 5v5.628a2.251 2.251 0 1 1-1.5 0V5a1 1 0 0 0-1-1h-1v1.646a.25.25 0 0 1-.427.177L7.177 3.427a.25.25 0 0 1 0-.354ZM3.75 2.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm0 9.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm8.25.75a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Z"></path>
</svg>
</span>
<span data-view-component="true" class="ActionListItem-label">
Pull requests
</span>
</a>
</li>
<li hidden="hidden" data-menu-item="i3discussions-tab" data-targets="action-list.items" role="none" data-view-component="true" class="ActionListItem">
<a tabindex="-1" id="item-99fed5b6-818a-4ad2-84f6-564e616652f1" href="/doctest/doctest/discussions" role="menuitem" data-view-component="true" class="ActionListContent ActionListContent--visual16">
<span class="ActionListItem-visual ActionListItem-visual--leading">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-comment-discussion">
<path d="M1.75 1h8.5c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0 1 10.25 10H7.061l-2.574 2.573A1.458 1.458 0 0 1 2 11.543V10h-.25A1.75 1.75 0 0 1 0 8.25v-5.5C0 1.784.784 1 1.75 1ZM1.5 2.75v5.5c0 .138.112.25.25.25h1a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h3.5a.25.25 0 0 0 .25-.25v-5.5a.25.25 0 0 0-.25-.25h-8.5a.25.25 0 0 0-.25.25Zm13 2a.25.25 0 0 0-.25-.25h-.5a.75.75 0 0 1 0-1.5h.5c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0 1 14.25 12H14v1.543a1.458 1.458 0 0 1-2.487 1.03L9.22 12.28a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215l2.22 2.22v-2.19a.75.75 0 0 1 .75-.75h1a.25.25 0 0 0 .25-.25Z"></path>
</svg>
</span>
<span data-view-component="true" class="ActionListItem-label">
Discussions
</span>
</a>
</li>
<li hidden="hidden" data-menu-item="i4actions-tab" data-targets="action-list.items" role="none" data-view-component="true" class="ActionListItem">
<a tabindex="-1" id="item-8d2923b4-45cb-43ae-89a9-7063dfd26fac" href="/doctest/doctest/actions" role="menuitem" data-view-component="true" class="ActionListContent ActionListContent--visual16">
<span class="ActionListItem-visual ActionListItem-visual--leading">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-play">
<path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Zm4.879-2.773 4.264 2.559a.25.25 0 0 1 0 .428l-4.264 2.559A.25.25 0 0 1 6 10.559V5.442a.25.25 0 0 1 .379-.215Z"></path>
</svg>
</span>
<span data-view-component="true" class="ActionListItem-label">
Actions
</span>
</a>
</li>
<li hidden="hidden" data-menu-item="i5security-tab" data-targets="action-list.items" role="none" data-view-component="true" class="ActionListItem">
<a tabindex="-1" id="item-18d33a74-ff03-49cd-af56-1eb92b6460a8" href="/doctest/doctest/security" role="menuitem" data-view-component="true" class="ActionListContent ActionListContent--visual16">
<span class="ActionListItem-visual ActionListItem-visual--leading">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-shield">
<path d="M7.467.133a1.748 1.748 0 0 1 1.066 0l5.25 1.68A1.75 1.75 0 0 1 15 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.697 1.697 0 0 1-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 0 1 1.217-1.667Zm.61 1.429a.25.25 0 0 0-.153 0l-5.25 1.68a.25.25 0 0 0-.174.238V7c0 1.358.275 2.666 1.057 3.86.784 1.194 2.121 2.34 4.366 3.297a.196.196 0 0 0 .154 0c2.245-.956 3.582-2.104 4.366-3.298C13.225 9.666 13.5 8.36 13.5 7V3.48a.251.251 0 0 0-.174-.237l-5.25-1.68ZM8.75 4.75v3a.75.75 0 0 1-1.5 0v-3a.75.75 0 0 1 1.5 0ZM9 10.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path>
</svg>
</span>
<span data-view-component="true" class="ActionListItem-label">
Security
</span>
</a>
</li>
<li hidden="hidden" data-menu-item="i6insights-tab" data-targets="action-list.items" role="none" data-view-component="true" class="ActionListItem">
<a tabindex="-1" id="item-29ccb2ca-13ae-46d9-8f2c-73191792763c" href="/doctest/doctest/pulse" role="menuitem" data-view-component="true" class="ActionListContent ActionListContent--visual16">
<span class="ActionListItem-visual ActionListItem-visual--leading">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-graph">
<path d="M1.5 1.75V13.5h13.75a.75.75 0 0 1 0 1.5H.75a.75.75 0 0 1-.75-.75V1.75a.75.75 0 0 1 1.5 0Zm14.28 2.53-5.25 5.25a.75.75 0 0 1-1.06 0L7 7.06 4.28 9.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.25-3.25a.75.75 0 0 1 1.06 0L10 7.94l4.72-4.72a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z"></path>
</svg>
</span>
<span data-view-component="true" class="ActionListItem-label">
Insights
</span>
</a>
</li>
</ul>
</div></action-list>
</div>
</div></anchored-position> </focus-group>
</action-menu></div>
</nav>
</div>
<turbo-frame id="repo-content-turbo-frame" target="_top" data-turbo-action="advance" class="">
<div id="repo-content-pjax-container" class="repository-content " >
<react-app
app-name="react-code-view"
initial-path="/doctest/doctest/blob/master/doctest/doctest.h"
style="display: block; min-height: calc(100vh - 64px);"
data-attempted-ssr="true"
data-ssr="true"
data-lazy="false"
data-alternate="false"
data-data-router-enabled="false"
>
<script type="application/json" data-target="react-app.embeddedData">{"payload":{"allShortcutsEnabled":false,"fileTree":{"doctest":{"items":[{"name":"extensions","path":"doctest/extensions","contentType":"directory"},{"name":"parts","path":"doctest/parts","contentType":"directory"},{"name":"BUILD.bazel","path":"doctest/BUILD.bazel","contentType":"file"},{"name":"doctest.h","path":"doctest/doctest.h","contentType":"file"}],"totalCount":4},"":{"items":[{"name":".github","path":".github","contentType":"directory"},{"name":"doc","path":"doc","contentType":"directory"},{"name":"doctest","path":"doctest","contentType":"directory"},{"name":"examples","path":"examples","contentType":"directory"},{"name":"scripts","path":"scripts","contentType":"directory"},{"name":".clang-format","path":".clang-format","contentType":"file"},{"name":".clang-tidy","path":".clang-tidy","contentType":"file"},{"name":".editorconfig","path":".editorconfig","contentType":"file"},{"name":".gitattributes","path":".gitattributes","contentType":"file"},{"name":".gitignore","path":".gitignore","contentType":"file"},{"name":"CHANGELOG.md","path":"CHANGELOG.md","contentType":"file"},{"name":"CMakeLists.txt","path":"CMakeLists.txt","contentType":"file"},{"name":"CONTRIBUTING.md","path":"CONTRIBUTING.md","contentType":"file"},{"name":"LICENSE.txt","path":"LICENSE.txt","contentType":"file"},{"name":"README.md","path":"README.md","contentType":"file"},{"name":"WORKSPACE","path":"WORKSPACE","contentType":"file"},{"name":"meson.build","path":"meson.build","contentType":"file"}],"totalCount":17}},"fileTreeProcessingTime":5.787009,"foldersToFetch":[],"repo":{"id":22660515,"defaultBranch":"master","name":"doctest","ownerLogin":"doctest","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2014-08-05T21:43:51.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/70880936?v=4","public":true,"private":false,"isOrgOwned":true},"codeLineWrapEnabled":false,"symbolsExpanded":false,"treeExpanded":true,"refInfo":{"name":"master","listCacheKey":"v0:1678883981.764","canEdit":false,"refType":"branch","currentOid":"ae7a13539fb71f270b87eb2e874fbac80bc8dda2"},"path":"doctest/doctest.h","currentUser":null,"blob":{"rawLines":["// ====================================================================== lgtm [cpp/missing-header-guard]","// == DO NOT MODIFY THIS FILE BY HAND - IT IS AUTO GENERATED BY CMAKE! ==","// ======================================================================","//","// doctest.h - the lightest feature-rich C++ single-header testing framework for unit tests and TDD","//","// Copyright (c) 2016-2023 Viktor Kirilov","//","// Distributed under the MIT Software License","// See accompanying file LICENSE.txt or copy at","// https://opensource.org/licenses/MIT","//","// The documentation can be found at the library's page:","// https://github.com/doctest/doctest/blob/master/doc/markdown/readme.md","//","// =================================================================================================","// =================================================================================================","// =================================================================================================","//","// The library is heavily influenced by Catch - https://github.com/catchorg/Catch2","// which uses the Boost Software License - Version 1.0","// see here - https://github.com/catchorg/Catch2/blob/master/LICENSE.txt","//","// The concept of subcases (sections in Catch) and expression decomposition are from there.","// Some parts of the code are taken directly:","// - stringification - the detection of \"ostream\u0026 operator\u003c\u003c(ostream\u0026, const T\u0026)\" and StringMaker\u003c\u003e","// - the Approx() helper class for floating point comparison","// - colors in the console","// - breaking into a debugger","// - signal / SEH handling","// - timer","// - XmlWriter class - thanks to Phil Nash for allowing the direct reuse (AKA copy/paste)","//","// The expression decomposing templates are taken from lest - https://github.com/martinmoene/lest","// which uses the Boost Software License - Version 1.0","// see here - https://github.com/martinmoene/lest/blob/master/LICENSE.txt","//","// =================================================================================================","// =================================================================================================","// =================================================================================================","","#ifndef DOCTEST_LIBRARY_INCLUDED","#define DOCTEST_LIBRARY_INCLUDED","","// =================================================================================================","// == VERSION ======================================================================================","// =================================================================================================","","#define DOCTEST_VERSION_MAJOR 2","#define DOCTEST_VERSION_MINOR 4","#define DOCTEST_VERSION_PATCH 11","","// util we need here","#define DOCTEST_TOSTR_IMPL(x) #x","#define DOCTEST_TOSTR(x) DOCTEST_TOSTR_IMPL(x)","","#define DOCTEST_VERSION_STR \\"," DOCTEST_TOSTR(DOCTEST_VERSION_MAJOR) \".\" \\"," DOCTEST_TOSTR(DOCTEST_VERSION_MINOR) \".\" \\"," DOCTEST_TOSTR(DOCTEST_VERSION_PATCH)","","#define DOCTEST_VERSION \\"," (DOCTEST_VERSION_MAJOR * 10000 + DOCTEST_VERSION_MINOR * 100 + DOCTEST_VERSION_PATCH)","","// =================================================================================================","// == COMPILER VERSION =============================================================================","// =================================================================================================","","// ideas for the version stuff are taken from here: https://github.com/cxxstuff/cxx_detect","","#ifdef _MSC_VER","#define DOCTEST_CPLUSPLUS _MSVC_LANG","#else","#define DOCTEST_CPLUSPLUS __cplusplus","#endif","","#define DOCTEST_COMPILER(MAJOR, MINOR, PATCH) ((MAJOR)*10000000 + (MINOR)*100000 + (PATCH))","","// GCC/Clang and GCC/MSVC are mutually exclusive, but Clang/MSVC are not because of clang-cl...","#if defined(_MSC_VER) \u0026\u0026 defined(_MSC_FULL_VER)","#if _MSC_VER == _MSC_FULL_VER / 10000","#define DOCTEST_MSVC DOCTEST_COMPILER(_MSC_VER / 100, _MSC_VER % 100, _MSC_FULL_VER % 10000)","#else // MSVC","#define DOCTEST_MSVC \\"," DOCTEST_COMPILER(_MSC_VER / 100, (_MSC_FULL_VER / 100000) % 100, _MSC_FULL_VER % 100000)","#endif // MSVC","#endif // MSVC","#if defined(__clang__) \u0026\u0026 defined(__clang_minor__) \u0026\u0026 defined(__clang_patchlevel__)","#define DOCTEST_CLANG DOCTEST_COMPILER(__clang_major__, __clang_minor__, __clang_patchlevel__)","#elif defined(__GNUC__) \u0026\u0026 defined(__GNUC_MINOR__) \u0026\u0026 defined(__GNUC_PATCHLEVEL__) \u0026\u0026 \\"," !defined(__INTEL_COMPILER)","#define DOCTEST_GCC DOCTEST_COMPILER(__GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__)","#endif // GCC","#if defined(__INTEL_COMPILER)","#define DOCTEST_ICC DOCTEST_COMPILER(__INTEL_COMPILER / 100, __INTEL_COMPILER % 100, 0)","#endif // ICC","","#ifndef DOCTEST_MSVC","#define DOCTEST_MSVC 0","#endif // DOCTEST_MSVC","#ifndef DOCTEST_CLANG","#define DOCTEST_CLANG 0","#endif // DOCTEST_CLANG","#ifndef DOCTEST_GCC","#define DOCTEST_GCC 0","#endif // DOCTEST_GCC","#ifndef DOCTEST_ICC","#define DOCTEST_ICC 0","#endif // DOCTEST_ICC","","// =================================================================================================","// == COMPILER WARNINGS HELPERS ====================================================================","// =================================================================================================","","#if DOCTEST_CLANG \u0026\u0026 !DOCTEST_ICC","#define DOCTEST_PRAGMA_TO_STR(x) _Pragma(#x)","#define DOCTEST_CLANG_SUPPRESS_WARNING_PUSH _Pragma(\"clang diagnostic push\")","#define DOCTEST_CLANG_SUPPRESS_WARNING(w) DOCTEST_PRAGMA_TO_STR(clang diagnostic ignored w)","#define DOCTEST_CLANG_SUPPRESS_WARNING_POP _Pragma(\"clang diagnostic pop\")","#define DOCTEST_CLANG_SUPPRESS_WARNING_WITH_PUSH(w) \\"," DOCTEST_CLANG_SUPPRESS_WARNING_PUSH DOCTEST_CLANG_SUPPRESS_WARNING(w)","#else // DOCTEST_CLANG","#define DOCTEST_CLANG_SUPPRESS_WARNING_PUSH","#define DOCTEST_CLANG_SUPPRESS_WARNING(w)","#define DOCTEST_CLANG_SUPPRESS_WARNING_POP","#define DOCTEST_CLANG_SUPPRESS_WARNING_WITH_PUSH(w)","#endif // DOCTEST_CLANG","","#if DOCTEST_GCC","#define DOCTEST_PRAGMA_TO_STR(x) _Pragma(#x)","#define DOCTEST_GCC_SUPPRESS_WARNING_PUSH _Pragma(\"GCC diagnostic push\")","#define DOCTEST_GCC_SUPPRESS_WARNING(w) DOCTEST_PRAGMA_TO_STR(GCC diagnostic ignored w)","#define DOCTEST_GCC_SUPPRESS_WARNING_POP _Pragma(\"GCC diagnostic pop\")","#define DOCTEST_GCC_SUPPRESS_WARNING_WITH_PUSH(w) \\"," DOCTEST_GCC_SUPPRESS_WARNING_PUSH DOCTEST_GCC_SUPPRESS_WARNING(w)","#else // DOCTEST_GCC","#define DOCTEST_GCC_SUPPRESS_WARNING_PUSH","#define DOCTEST_GCC_SUPPRESS_WARNING(w)","#define DOCTEST_GCC_SUPPRESS_WARNING_POP","#define DOCTEST_GCC_SUPPRESS_WARNING_WITH_PUSH(w)","#endif // DOCTEST_GCC","","#if DOCTEST_MSVC","#define DOCTEST_MSVC_SUPPRESS_WARNING_PUSH __pragma(warning(push))","#define DOCTEST_MSVC_SUPPRESS_WARNING(w) __pragma(warning(disable : w))","#define DOCTEST_MSVC_SUPPRESS_WARNING_POP __pragma(warning(pop))","#define DOCTEST_MSVC_SUPPRESS_WARNING_WITH_PUSH(w) \\"," DOCTEST_MSVC_SUPPRESS_WARNING_PUSH DOCTEST_MSVC_SUPPRESS_WARNING(w)","#else // DOCTEST_MSVC","#define DOCTEST_MSVC_SUPPRESS_WARNING_PUSH","#define DOCTEST_MSVC_SUPPRESS_WARNING(w)","#define DOCTEST_MSVC_SUPPRESS_WARNING_POP","#define DOCTEST_MSVC_SUPPRESS_WARNING_WITH_PUSH(w)","#endif // DOCTEST_MSVC","","// =================================================================================================","// == COMPILER WARNINGS ============================================================================","// =================================================================================================","","// both the header and the implementation suppress all of these,","// so it only makes sense to aggregate them like so","#define DOCTEST_SUPPRESS_COMMON_WARNINGS_PUSH \\"," DOCTEST_CLANG_SUPPRESS_WARNING_PUSH \\"," DOCTEST_CLANG_SUPPRESS_WARNING(\"-Wunknown-pragmas\") \\"," DOCTEST_CLANG_SUPPRESS_WARNING(\"-Wweak-vtables\") \\"," DOCTEST_CLANG_SUPPRESS_WARNING(\"-Wpadded\") \\"," DOCTEST_CLANG_SUPPRESS_WARNING(\"-Wmissing-prototypes\") \\"," DOCTEST_CLANG_SUPPRESS_WARNING(\"-Wc++98-compat\") \\"," DOCTEST_CLANG_SUPPRESS_WARNING(\"-Wc++98-compat-pedantic\") \\"," \\"," DOCTEST_GCC_SUPPRESS_WARNING_PUSH \\"," DOCTEST_GCC_SUPPRESS_WARNING(\"-Wunknown-pragmas\") \\"," DOCTEST_GCC_SUPPRESS_WARNING(\"-Wpragmas\") \\"," DOCTEST_GCC_SUPPRESS_WARNING(\"-Weffc++\") \\"," DOCTEST_GCC_SUPPRESS_WARNING(\"-Wstrict-overflow\") \\"," DOCTEST_GCC_SUPPRESS_WARNING(\"-Wstrict-aliasing\") \\"," DOCTEST_GCC_SUPPRESS_WARNING(\"-Wmissing-declarations\") \\"," DOCTEST_GCC_SUPPRESS_WARNING(\"-Wuseless-cast\") \\"," DOCTEST_GCC_SUPPRESS_WARNING(\"-Wnoexcept\") \\"," \\"," DOCTEST_MSVC_SUPPRESS_WARNING_PUSH \\"," /* these 4 also disabled globally via cmake: */ \\"," DOCTEST_MSVC_SUPPRESS_WARNING(4514) /* unreferenced inline function has been removed */ \\"," DOCTEST_MSVC_SUPPRESS_WARNING(4571) /* SEH related */ \\"," DOCTEST_MSVC_SUPPRESS_WARNING(4710) /* function not inlined */ \\"," DOCTEST_MSVC_SUPPRESS_WARNING(4711) /* function selected for inline expansion*/ \\"," /* common ones */ \\"," DOCTEST_MSVC_SUPPRESS_WARNING(4616) /* invalid compiler warning */ \\"," DOCTEST_MSVC_SUPPRESS_WARNING(4619) /* invalid compiler warning */ \\"," DOCTEST_MSVC_SUPPRESS_WARNING(4996) /* The compiler encountered a deprecated declaration */ \\"," DOCTEST_MSVC_SUPPRESS_WARNING(4706) /* assignment within conditional expression */ \\"," DOCTEST_MSVC_SUPPRESS_WARNING(4512) /* 'class' : assignment operator could not be generated */ \\"," DOCTEST_MSVC_SUPPRESS_WARNING(4127) /* conditional expression is constant */ \\"," DOCTEST_MSVC_SUPPRESS_WARNING(4820) /* padding */ \\"," DOCTEST_MSVC_SUPPRESS_WARNING(4625) /* copy constructor was implicitly deleted */ \\"," DOCTEST_MSVC_SUPPRESS_WARNING(4626) /* assignment operator was implicitly deleted */ \\"," DOCTEST_MSVC_SUPPRESS_WARNING(5027) /* move assignment operator implicitly deleted */ \\"," DOCTEST_MSVC_SUPPRESS_WARNING(5026) /* move constructor was implicitly deleted */ \\"," DOCTEST_MSVC_SUPPRESS_WARNING(4640) /* construction of local static object not thread-safe */ \\"," DOCTEST_MSVC_SUPPRESS_WARNING(5045) /* Spectre mitigation for memory load */ \\"," DOCTEST_MSVC_SUPPRESS_WARNING(5264) /* 'variable-name': 'const' variable is not used */ \\"," /* static analysis */ \\"," DOCTEST_MSVC_SUPPRESS_WARNING(26439) /* Function may not throw. Declare it 'noexcept' */ \\"," DOCTEST_MSVC_SUPPRESS_WARNING(26495) /* Always initialize a member variable */ \\"," DOCTEST_MSVC_SUPPRESS_WARNING(26451) /* Arithmetic overflow ... */ \\"," DOCTEST_MSVC_SUPPRESS_WARNING(26444) /* Avoid unnamed objects with custom ctor and dtor... */ \\"," DOCTEST_MSVC_SUPPRESS_WARNING(26812) /* Prefer 'enum class' over 'enum' */","","#define DOCTEST_SUPPRESS_COMMON_WARNINGS_POP \\"," DOCTEST_CLANG_SUPPRESS_WARNING_POP \\"," DOCTEST_GCC_SUPPRESS_WARNING_POP \\"," DOCTEST_MSVC_SUPPRESS_WARNING_POP","","DOCTEST_SUPPRESS_COMMON_WARNINGS_PUSH","","DOCTEST_CLANG_SUPPRESS_WARNING_PUSH","DOCTEST_CLANG_SUPPRESS_WARNING(\"-Wnon-virtual-dtor\")","DOCTEST_CLANG_SUPPRESS_WARNING(\"-Wdeprecated\")","","DOCTEST_GCC_SUPPRESS_WARNING_PUSH","DOCTEST_GCC_SUPPRESS_WARNING(\"-Wctor-dtor-privacy\")","DOCTEST_GCC_SUPPRESS_WARNING(\"-Wnon-virtual-dtor\")","DOCTEST_GCC_SUPPRESS_WARNING(\"-Wsign-promo\")","","DOCTEST_MSVC_SUPPRESS_WARNING_PUSH","DOCTEST_MSVC_SUPPRESS_WARNING(4623) // default constructor was implicitly defined as deleted","","#define DOCTEST_MAKE_STD_HEADERS_CLEAN_FROM_WARNINGS_ON_WALL_BEGIN \\"," DOCTEST_MSVC_SUPPRESS_WARNING_PUSH \\"," DOCTEST_MSVC_SUPPRESS_WARNING(4548) /* before comma no effect; expected side - effect */ \\"," DOCTEST_MSVC_SUPPRESS_WARNING(4265) /* virtual functions, but destructor is not virtual */ \\"," DOCTEST_MSVC_SUPPRESS_WARNING(4986) /* exception specification does not match previous */ \\"," DOCTEST_MSVC_SUPPRESS_WARNING(4350) /* 'member1' called instead of 'member2' */ \\"," DOCTEST_MSVC_SUPPRESS_WARNING(4668) /* not defined as a preprocessor macro */ \\"," DOCTEST_MSVC_SUPPRESS_WARNING(4365) /* signed/unsigned mismatch */ \\"," DOCTEST_MSVC_SUPPRESS_WARNING(4774) /* format string not a string literal */ \\"," DOCTEST_MSVC_SUPPRESS_WARNING(4820) /* padding */ \\"," DOCTEST_MSVC_SUPPRESS_WARNING(4625) /* copy constructor was implicitly deleted */ \\"," DOCTEST_MSVC_SUPPRESS_WARNING(4626) /* assignment operator was implicitly deleted */ \\"," DOCTEST_MSVC_SUPPRESS_WARNING(5027) /* move assignment operator implicitly deleted */ \\"," DOCTEST_MSVC_SUPPRESS_WARNING(5026) /* move constructor was implicitly deleted */ \\"," DOCTEST_MSVC_SUPPRESS_WARNING(4623) /* default constructor was implicitly deleted */ \\"," DOCTEST_MSVC_SUPPRESS_WARNING(5039) /* pointer to pot. throwing function passed to extern C */ \\"," DOCTEST_MSVC_SUPPRESS_WARNING(5045) /* Spectre mitigation for memory load */ \\"," DOCTEST_MSVC_SUPPRESS_WARNING(5105) /* macro producing 'defined' has undefined behavior */ \\"," DOCTEST_MSVC_SUPPRESS_WARNING(4738) /* storing float result in memory, loss of performance */ \\"," DOCTEST_MSVC_SUPPRESS_WARNING(5262) /* implicit fall-through */","","#define DOCTEST_MAKE_STD_HEADERS_CLEAN_FROM_WARNINGS_ON_WALL_END DOCTEST_MSVC_SUPPRESS_WARNING_POP","","// =================================================================================================","// == FEATURE DETECTION ============================================================================","// =================================================================================================","","// general compiler feature support table: https://en.cppreference.com/w/cpp/compiler_support","// MSVC C++11 feature support table: https://msdn.microsoft.com/en-us/library/hh567368.aspx","// GCC C++11 feature support table: https://gcc.gnu.org/projects/cxx-status.html","// MSVC version table:","// https://en.wikipedia.org/wiki/Microsoft_Visual_C%2B%2B#Internal_version_numbering","// MSVC++ 14.3 (17) _MSC_VER == 1930 (Visual Studio 2022)","// MSVC++ 14.2 (16) _MSC_VER == 1920 (Visual Studio 2019)","// MSVC++ 14.1 (15) _MSC_VER == 1910 (Visual Studio 2017)","// MSVC++ 14.0 _MSC_VER == 1900 (Visual Studio 2015)","// MSVC++ 12.0 _MSC_VER == 1800 (Visual Studio 2013)","// MSVC++ 11.0 _MSC_VER == 1700 (Visual Studio 2012)","// MSVC++ 10.0 _MSC_VER == 1600 (Visual Studio 2010)","// MSVC++ 9.0 _MSC_VER == 1500 (Visual Studio 2008)","// MSVC++ 8.0 _MSC_VER == 1400 (Visual Studio 2005)","","// Universal Windows Platform support","#if defined(WINAPI_FAMILY) \u0026\u0026 (WINAPI_FAMILY == WINAPI_FAMILY_APP)","#define DOCTEST_CONFIG_NO_WINDOWS_SEH","#endif // WINAPI_FAMILY","#if DOCTEST_MSVC \u0026\u0026 !defined(DOCTEST_CONFIG_WINDOWS_SEH)","#define DOCTEST_CONFIG_WINDOWS_SEH","#endif // MSVC","#if defined(DOCTEST_CONFIG_NO_WINDOWS_SEH) \u0026\u0026 defined(DOCTEST_CONFIG_WINDOWS_SEH)","#undef DOCTEST_CONFIG_WINDOWS_SEH","#endif // DOCTEST_CONFIG_NO_WINDOWS_SEH","","#if !defined(_WIN32) \u0026\u0026 !defined(__QNX__) \u0026\u0026 !defined(DOCTEST_CONFIG_POSIX_SIGNALS) \u0026\u0026 \\"," !defined(__EMSCRIPTEN__) \u0026\u0026 !defined(__wasi__)","#define DOCTEST_CONFIG_POSIX_SIGNALS","#endif // _WIN32","#if defined(DOCTEST_CONFIG_NO_POSIX_SIGNALS) \u0026\u0026 defined(DOCTEST_CONFIG_POSIX_SIGNALS)","#undef DOCTEST_CONFIG_POSIX_SIGNALS","#endif // DOCTEST_CONFIG_NO_POSIX_SIGNALS","","#ifndef DOCTEST_CONFIG_NO_EXCEPTIONS","#if !defined(__cpp_exceptions) \u0026\u0026 !defined(__EXCEPTIONS) \u0026\u0026 !defined(_CPPUNWIND) \\"," || defined(__wasi__)","#define DOCTEST_CONFIG_NO_EXCEPTIONS","#endif // no exceptions","#endif // DOCTEST_CONFIG_NO_EXCEPTIONS","","#ifdef DOCTEST_CONFIG_NO_EXCEPTIONS_BUT_WITH_ALL_ASSERTS","#ifndef DOCTEST_CONFIG_NO_EXCEPTIONS","#define DOCTEST_CONFIG_NO_EXCEPTIONS","#endif // DOCTEST_CONFIG_NO_EXCEPTIONS","#endif // DOCTEST_CONFIG_NO_EXCEPTIONS_BUT_WITH_ALL_ASSERTS","","#if defined(DOCTEST_CONFIG_NO_EXCEPTIONS) \u0026\u0026 !defined(DOCTEST_CONFIG_NO_TRY_CATCH_IN_ASSERTS)","#define DOCTEST_CONFIG_NO_TRY_CATCH_IN_ASSERTS","#endif // DOCTEST_CONFIG_NO_EXCEPTIONS \u0026\u0026 !DOCTEST_CONFIG_NO_TRY_CATCH_IN_ASSERTS","","#ifdef __wasi__","#define DOCTEST_CONFIG_NO_MULTITHREADING","#endif","","#if defined(DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN) \u0026\u0026 !defined(DOCTEST_CONFIG_IMPLEMENT)","#define DOCTEST_CONFIG_IMPLEMENT","#endif // DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN","","#if defined(_WIN32) || defined(__CYGWIN__)","#if DOCTEST_MSVC","#define DOCTEST_SYMBOL_EXPORT __declspec(dllexport)","#define DOCTEST_SYMBOL_IMPORT __declspec(dllimport)","#else // MSVC","#define DOCTEST_SYMBOL_EXPORT __attribute__((dllexport))","#define DOCTEST_SYMBOL_IMPORT __attribute__((dllimport))","#endif // MSVC","#else // _WIN32","#define DOCTEST_SYMBOL_EXPORT __attribute__((visibility(\"default\")))","#define DOCTEST_SYMBOL_IMPORT","#endif // _WIN32","","#ifdef DOCTEST_CONFIG_IMPLEMENTATION_IN_DLL","#ifdef DOCTEST_CONFIG_IMPLEMENT","#define DOCTEST_INTERFACE DOCTEST_SYMBOL_EXPORT","#else // DOCTEST_CONFIG_IMPLEMENT","#define DOCTEST_INTERFACE DOCTEST_SYMBOL_IMPORT","#endif // DOCTEST_CONFIG_IMPLEMENT","#else // DOCTEST_CONFIG_IMPLEMENTATION_IN_DLL","#define DOCTEST_INTERFACE","#endif // DOCTEST_CONFIG_IMPLEMENTATION_IN_DLL","","// needed for extern template instantiations","// see https://github.com/fmtlib/fmt/issues/2228","#if DOCTEST_MSVC","#define DOCTEST_INTERFACE_DECL","#define DOCTEST_INTERFACE_DEF DOCTEST_INTERFACE","#else // DOCTEST_MSVC","#define DOCTEST_INTERFACE_DECL DOCTEST_INTERFACE","#define DOCTEST_INTERFACE_DEF","#endif // DOCTEST_MSVC","","#define DOCTEST_EMPTY","","#if DOCTEST_MSVC","#define DOCTEST_NOINLINE __declspec(noinline)","#define DOCTEST_UNUSED","#define DOCTEST_ALIGNMENT(x)","#elif DOCTEST_CLANG \u0026\u0026 DOCTEST_CLANG \u003c DOCTEST_COMPILER(3, 5, 0)","#define DOCTEST_NOINLINE","#define DOCTEST_UNUSED","#define DOCTEST_ALIGNMENT(x)","#else","#define DOCTEST_NOINLINE __attribute__((noinline))","#define DOCTEST_UNUSED __attribute__((unused))","#define DOCTEST_ALIGNMENT(x) __attribute__((aligned(x)))","#endif","","#ifdef DOCTEST_CONFIG_NO_CONTRADICTING_INLINE","#define DOCTEST_INLINE_NOINLINE inline","#else","#define DOCTEST_INLINE_NOINLINE inline DOCTEST_NOINLINE","#endif","","#ifndef DOCTEST_NORETURN","#if DOCTEST_MSVC \u0026\u0026 (DOCTEST_MSVC \u003c DOCTEST_COMPILER(19, 0, 0))","#define DOCTEST_NORETURN","#else // DOCTEST_MSVC","#define DOCTEST_NORETURN [[noreturn]]","#endif // DOCTEST_MSVC","#endif // DOCTEST_NORETURN","","#ifndef DOCTEST_NOEXCEPT","#if DOCTEST_MSVC \u0026\u0026 (DOCTEST_MSVC \u003c DOCTEST_COMPILER(19, 0, 0))","#define DOCTEST_NOEXCEPT","#else // DOCTEST_MSVC","#define DOCTEST_NOEXCEPT noexcept","#endif // DOCTEST_MSVC","#endif // DOCTEST_NOEXCEPT","","#ifndef DOCTEST_CONSTEXPR","#if DOCTEST_MSVC \u0026\u0026 (DOCTEST_MSVC \u003c DOCTEST_COMPILER(19, 0, 0))","#define DOCTEST_CONSTEXPR const","#define DOCTEST_CONSTEXPR_FUNC inline","#else // DOCTEST_MSVC","#define DOCTEST_CONSTEXPR constexpr","#define DOCTEST_CONSTEXPR_FUNC constexpr","#endif // DOCTEST_MSVC","#endif // DOCTEST_CONSTEXPR","","#ifndef DOCTEST_NO_SANITIZE_INTEGER","#if DOCTEST_CLANG \u003e= DOCTEST_COMPILER(3, 7, 0)","#define DOCTEST_NO_SANITIZE_INTEGER __attribute__((no_sanitize(\"integer\")))","#else","#define DOCTEST_NO_SANITIZE_INTEGER","#endif","#endif // DOCTEST_NO_SANITIZE_INTEGER","","// =================================================================================================","// == FEATURE DETECTION END ========================================================================","// =================================================================================================","","#define DOCTEST_DECLARE_INTERFACE(name) \\"," virtual ~name(); \\"," name() = default; \\"," name(const name\u0026) = delete; \\"," name(name\u0026\u0026) = delete; \\"," name\u0026 operator=(const name\u0026) = delete; \\"," name\u0026 operator=(name\u0026\u0026) = delete;","","#define DOCTEST_DEFINE_INTERFACE(name) \\"," name::~name() = default;","","// internal macros for string concatenation and anonymous variable name generation","#define DOCTEST_CAT_IMPL(s1, s2) s1##s2","#define DOCTEST_CAT(s1, s2) DOCTEST_CAT_IMPL(s1, s2)","#ifdef __COUNTER__ // not standard and may be missing for some compilers","#define DOCTEST_ANONYMOUS(x) DOCTEST_CAT(x, __COUNTER__)","#else // __COUNTER__","#define DOCTEST_ANONYMOUS(x) DOCTEST_CAT(x, __LINE__)","#endif // __COUNTER__","","#ifndef DOCTEST_CONFIG_ASSERTION_PARAMETERS_BY_VALUE","#define DOCTEST_REF_WRAP(x) x\u0026","#else // DOCTEST_CONFIG_ASSERTION_PARAMETERS_BY_VALUE","#define DOCTEST_REF_WRAP(x) x","#endif // DOCTEST_CONFIG_ASSERTION_PARAMETERS_BY_VALUE","","// not using __APPLE__ because... this is how Catch does it","#ifdef __MAC_OS_X_VERSION_MIN_REQUIRED","#define DOCTEST_PLATFORM_MAC","#elif defined(__IPHONE_OS_VERSION_MIN_REQUIRED)","#define DOCTEST_PLATFORM_IPHONE","#elif defined(_WIN32)","#define DOCTEST_PLATFORM_WINDOWS","#elif defined(__wasi__)","#define DOCTEST_PLATFORM_WASI","#else // DOCTEST_PLATFORM","#define DOCTEST_PLATFORM_LINUX","#endif // DOCTEST_PLATFORM","","namespace doctest { namespace detail {"," static DOCTEST_CONSTEXPR int consume(const int*, int) noexcept { return 0; }","}}","","#define DOCTEST_GLOBAL_NO_WARNINGS(var, ...) \\"," DOCTEST_CLANG_SUPPRESS_WARNING_WITH_PUSH(\"-Wglobal-constructors\") \\"," static const int var = doctest::detail::consume(\u0026var, __VA_ARGS__); \\"," DOCTEST_CLANG_SUPPRESS_WARNING_POP","","#ifndef DOCTEST_BREAK_INTO_DEBUGGER","// should probably take a look at https://github.com/scottt/debugbreak","#ifdef DOCTEST_PLATFORM_LINUX","#if defined(__GNUC__) \u0026\u0026 (defined(__i386) || defined(__x86_64))","// Break at the location of the failing check if possible","#define DOCTEST_BREAK_INTO_DEBUGGER() __asm__(\"int $3\\n\" : :) // NOLINT(hicpp-no-assembler)","#else","#include \u003csignal.h\u003e","#define DOCTEST_BREAK_INTO_DEBUGGER() raise(SIGTRAP)","#endif","#elif defined(DOCTEST_PLATFORM_MAC)","#if defined(__x86_64) || defined(__x86_64__) || defined(__amd64__) || defined(__i386)","#define DOCTEST_BREAK_INTO_DEBUGGER() __asm__(\"int $3\\n\" : :) // NOLINT(hicpp-no-assembler)","#elif defined(__ppc__) || defined(__ppc64__)","// https://www.cocoawithlove.com/2008/03/break-into-debugger.html","#define DOCTEST_BREAK_INTO_DEBUGGER() __asm__(\"li r0, 20\\nsc\\nnop\\nli r0, 37\\nli r4, 2\\nsc\\nnop\\n\": : : \"memory\",\"r0\",\"r3\",\"r4\") // NOLINT(hicpp-no-assembler)","#else","#define DOCTEST_BREAK_INTO_DEBUGGER() __asm__(\"brk #0\"); // NOLINT(hicpp-no-assembler)","#endif","#elif DOCTEST_MSVC","#define DOCTEST_BREAK_INTO_DEBUGGER() __debugbreak()","#elif defined(__MINGW32__)","DOCTEST_GCC_SUPPRESS_WARNING_WITH_PUSH(\"-Wredundant-decls\")","extern \"C\" __declspec(dllimport) void __stdcall DebugBreak();","DOCTEST_GCC_SUPPRESS_WARNING_POP","#define DOCTEST_BREAK_INTO_DEBUGGER() ::DebugBreak()","#else // linux","#define DOCTEST_BREAK_INTO_DEBUGGER() (static_cast\u003cvoid\u003e(0))","#endif // linux","#endif // DOCTEST_BREAK_INTO_DEBUGGER","","// this is kept here for backwards compatibility since the config option was changed","#ifdef DOCTEST_CONFIG_USE_IOSFWD","#ifndef DOCTEST_CONFIG_USE_STD_HEADERS","#define DOCTEST_CONFIG_USE_STD_HEADERS","#endif","#endif // DOCTEST_CONFIG_USE_IOSFWD","","// for clang - always include ciso646 (which drags some std stuff) because","// we want to check if we are using libc++ with the _LIBCPP_VERSION macro in","// which case we don't want to forward declare stuff from std - for reference:","// https://github.com/doctest/doctest/issues/126","// https://github.com/doctest/doctest/issues/356","#if DOCTEST_CLANG","#include \u003cciso646\u003e","#endif // clang","","#ifdef _LIBCPP_VERSION","#ifndef DOCTEST_CONFIG_USE_STD_HEADERS","#define DOCTEST_CONFIG_USE_STD_HEADERS","#endif","#endif // _LIBCPP_VERSION","","#ifdef DOCTEST_CONFIG_USE_STD_HEADERS","#ifndef DOCTEST_CONFIG_INCLUDE_TYPE_TRAITS","#define DOCTEST_CONFIG_INCLUDE_TYPE_TRAITS","#endif // DOCTEST_CONFIG_INCLUDE_TYPE_TRAITS","DOCTEST_MAKE_STD_HEADERS_CLEAN_FROM_WARNINGS_ON_WALL_BEGIN","#include \u003ccstddef\u003e","#include \u003costream\u003e","#include \u003cistream\u003e","DOCTEST_MAKE_STD_HEADERS_CLEAN_FROM_WARNINGS_ON_WALL_END","#else // DOCTEST_CONFIG_USE_STD_HEADERS","","// Forward declaring 'X' in namespace std is not permitted by the C++ Standard.","DOCTEST_MSVC_SUPPRESS_WARNING_WITH_PUSH(4643)","","namespace std { // NOLINT(cert-dcl58-cpp)","typedef decltype(nullptr) nullptr_t; // NOLINT(modernize-use-using)","typedef decltype(sizeof(void*)) size_t; // NOLINT(modernize-use-using)","template \u003cclass charT\u003e","struct char_traits;","template \u003c\u003e","struct char_traits\u003cchar\u003e;","template \u003cclass charT, class traits\u003e","class basic_ostream; // NOLINT(fuchsia-virtual-inheritance)","typedef basic_ostream\u003cchar, char_traits\u003cchar\u003e\u003e ostream; // NOLINT(modernize-use-using)","template\u003cclass traits\u003e","// NOLINTNEXTLINE","basic_ostream\u003cchar, traits\u003e\u0026 operator\u003c\u003c(basic_ostream\u003cchar, traits\u003e\u0026, const char*);","template \u003cclass charT, class traits\u003e","class basic_istream;","typedef basic_istream\u003cchar, char_traits\u003cchar\u003e\u003e istream; // NOLINT(modernize-use-using)","template \u003cclass... Types\u003e","class tuple;","#if DOCTEST_MSVC \u003e= DOCTEST_COMPILER(19, 20, 0)","// see this issue on why this is needed: https://github.com/doctest/doctest/issues/183","template \u003cclass Ty\u003e","class allocator;","template \u003cclass Elem, class Traits, class Alloc\u003e","class basic_string;","using string = basic_string\u003cchar, char_traits\u003cchar\u003e, allocator\u003cchar\u003e\u003e;","#endif // VS 2019","} // namespace std","","DOCTEST_MSVC_SUPPRESS_WARNING_POP","","#endif // DOCTEST_CONFIG_USE_STD_HEADERS","","#ifdef DOCTEST_CONFIG_INCLUDE_TYPE_TRAITS","#include \u003ctype_traits\u003e","#endif // DOCTEST_CONFIG_INCLUDE_TYPE_TRAITS","","namespace doctest {","","using std::size_t;","","DOCTEST_INTERFACE extern bool is_running_in_test;","","#ifndef DOCTEST_CONFIG_STRING_SIZE_TYPE","#define DOCTEST_CONFIG_STRING_SIZE_TYPE unsigned","#endif","","// A 24 byte string class (can be as small as 17 for x64 and 13 for x86) that can hold strings with length","// of up to 23 chars on the stack before going on the heap - the last byte of the buffer is used for:","// - \"is small\" bit - the highest bit - if \"0\" then it is small - otherwise its \"1\" (128)","// - if small - capacity left before going on the heap - using the lowest 5 bits","// - if small - 2 bits are left unused - the second and third highest ones","// - if small - acts as a null terminator if strlen() is 23 (24 including the null terminator)","// and the \"is small\" bit remains \"0\" (\"as well as the capacity left\") so its OK","// Idea taken from this lecture about the string implementation of facebook/folly - fbstring","// https://www.youtube.com/watch?v=kPR8h4-qZdk","// TODO:","// - optimizations - like not deleting memory unnecessarily in operator= and etc.","// - resize/reserve/clear","// - replace","// - back/front","// - iterator stuff","// - find \u0026 friends","// - push_back/pop_back","// - assign/insert/erase","// - relational operators as free functions - taking const char* as one of the params","class DOCTEST_INTERFACE String","{","public:"," using size_type = DOCTEST_CONFIG_STRING_SIZE_TYPE;","","private:"," static DOCTEST_CONSTEXPR size_type len = 24; //!OCLINT avoid private static members"," static DOCTEST_CONSTEXPR size_type last = len - 1; //!OCLINT avoid private static members",""," struct view // len should be more than sizeof(view) - because of the final byte for flags"," {"," char* ptr;"," size_type size;"," size_type capacity;"," };",""," union"," {"," char buf[len]; // NOLINT(*-avoid-c-arrays)"," view data;"," };",""," char* allocate(size_type sz);",""," bool isOnStack() const noexcept { return (buf[last] \u0026 128) == 0; }"," void setOnHeap() noexcept;"," void setLast(size_type in = last) noexcept;"," void setSize(size_type sz) noexcept;",""," void copy(const String\u0026 other);","","public:"," static DOCTEST_CONSTEXPR size_type npos = static_cast\u003csize_type\u003e(-1);",""," String() noexcept;"," ~String();",""," // cppcheck-suppress noExplicitConstructor"," String(const char* in);"," String(const char* in, size_type in_size);",""," String(std::istream\u0026 in, size_type in_size);",""," String(const String\u0026 other);"," String\u0026 operator=(const String\u0026 other);",""," String\u0026 operator+=(const String\u0026 other);",""," String(String\u0026\u0026 other) noexcept;"," String\u0026 operator=(String\u0026\u0026 other) noexcept;",""," char operator[](size_type i) const;"," char\u0026 operator[](size_type i);",""," // the only functions I'm willing to leave in the interface - available for inlining"," const char* c_str() const { return const_cast\u003cString*\u003e(this)-\u003ec_str(); } // NOLINT"," char* c_str() {"," if (isOnStack()) {"," return reinterpret_cast\u003cchar*\u003e(buf);"," }"," return data.ptr;"," }",""," size_type size() const;"," size_type capacity() const;",""," String substr(size_type pos, size_type cnt = npos) \u0026\u0026;"," String substr(size_type pos, size_type cnt = npos) const \u0026;",""," size_type find(char ch, size_type pos = 0) const;"," size_type rfind(char ch, size_type pos = npos) const;",""," int compare(const char* other, bool no_case = false) const;"," int compare(const String\u0026 other, bool no_case = false) const;","","friend DOCTEST_INTERFACE std::ostream\u0026 operator\u003c\u003c(std::ostream\u0026 s, const String\u0026 in);","};","","DOCTEST_INTERFACE String operator+(const String\u0026 lhs, const String\u0026 rhs);","","DOCTEST_INTERFACE bool operator==(const String\u0026 lhs, const String\u0026 rhs);","DOCTEST_INTERFACE bool operator!=(const String\u0026 lhs, const String\u0026 rhs);","DOCTEST_INTERFACE bool operator\u003c(const String\u0026 lhs, const String\u0026 rhs);","DOCTEST_INTERFACE bool operator\u003e(const String\u0026 lhs, const String\u0026 rhs);","DOCTEST_INTERFACE bool operator\u003c=(const String\u0026 lhs, const String\u0026 rhs);","DOCTEST_INTERFACE bool operator\u003e=(const String\u0026 lhs, const String\u0026 rhs);","","class DOCTEST_INTERFACE Contains {","public:"," explicit Contains(const String\u0026 string);",""," bool checkWith(const String\u0026 other) const;",""," String string;","};","","DOCTEST_INTERFACE String toString(const Contains\u0026 in);","","DOCTEST_INTERFACE bool operator==(const String\u0026 lhs, const Contains\u0026 rhs);","DOCTEST_INTERFACE bool operator==(const Contains\u0026 lhs, const String\u0026 rhs);","DOCTEST_INTERFACE bool operator!=(const String\u0026 lhs, const Contains\u0026 rhs);","DOCTEST_INTERFACE bool operator!=(const Contains\u0026 lhs, const String\u0026 rhs);","","namespace Color {"," enum Enum"," {"," None = 0,"," White,"," Red,"," Green,"," Blue,"," Cyan,"," Yellow,"," Grey,",""," Bright = 0x10,",""," BrightRed = Bright | Red,"," BrightGreen = Bright | Green,"," LightGrey = Bright | Grey,"," BrightWhite = Bright | White"," };",""," DOCTEST_INTERFACE std::ostream\u0026 operator\u003c\u003c(std::ostream\u0026 s, Color::Enum code);","} // namespace Color","","namespace assertType {"," enum Enum"," {"," // macro traits",""," is_warn = 1,"," is_check = 2 * is_warn,"," is_require = 2 * is_check,",""," is_normal = 2 * is_require,"," is_throws = 2 * is_normal,"," is_throws_as = 2 * is_throws,"," is_throws_with = 2 * is_throws_as,"," is_nothrow = 2 * is_throws_with,",""," is_false = 2 * is_nothrow,"," is_unary = 2 * is_false, // not checked anywhere - used just to distinguish the types",""," is_eq = 2 * is_unary,"," is_ne = 2 * is_eq,",""," is_lt = 2 * is_ne,"," is_gt = 2 * is_lt,",""," is_ge = 2 * is_gt,"," is_le = 2 * is_ge,",""," // macro types",""," DT_WARN = is_normal | is_warn,"," DT_CHECK = is_normal | is_check,"," DT_REQUIRE = is_normal | is_require,",""," DT_WARN_FALSE = is_normal | is_false | is_warn,"," DT_CHECK_FALSE = is_normal | is_false | is_check,"," DT_REQUIRE_FALSE = is_normal | is_false | is_require,",""," DT_WARN_THROWS = is_throws | is_warn,"," DT_CHECK_THROWS = is_throws | is_check,"," DT_REQUIRE_THROWS = is_throws | is_require,",""," DT_WARN_THROWS_AS = is_throws_as | is_warn,"," DT_CHECK_THROWS_AS = is_throws_as | is_check,"," DT_REQUIRE_THROWS_AS = is_throws_as | is_require,",""," DT_WARN_THROWS_WITH = is_throws_with | is_warn,"," DT_CHECK_THROWS_WITH = is_throws_with | is_check,"," DT_REQUIRE_THROWS_WITH = is_throws_with | is_require,",""," DT_WARN_THROWS_WITH_AS = is_throws_with | is_throws_as | is_warn,"," DT_CHECK_THROWS_WITH_AS = is_throws_with | is_throws_as | is_check,"," DT_REQUIRE_THROWS_WITH_AS = is_throws_with | is_throws_as | is_require,",""," DT_WARN_NOTHROW = is_nothrow | is_warn,"," DT_CHECK_NOTHROW = is_nothrow | is_check,"," DT_REQUIRE_NOTHROW = is_nothrow | is_require,",""," DT_WARN_EQ = is_normal | is_eq | is_warn,"," DT_CHECK_EQ = is_normal | is_eq | is_check,"," DT_REQUIRE_EQ = is_normal | is_eq | is_require,",""," DT_WARN_NE = is_normal | is_ne | is_warn,"," DT_CHECK_NE = is_normal | is_ne | is_check,"," DT_REQUIRE_NE = is_normal | is_ne | is_require,",""," DT_WARN_GT = is_normal | is_gt | is_warn,"," DT_CHECK_GT = is_normal | is_gt | is_check,"," DT_REQUIRE_GT = is_normal | is_gt | is_require,",""," DT_WARN_LT = is_normal | is_lt | is_warn,"," DT_CHECK_LT = is_normal | is_lt | is_check,"," DT_REQUIRE_LT = is_normal | is_lt | is_require,",""," DT_WARN_GE = is_normal | is_ge | is_warn,"," DT_CHECK_GE = is_normal | is_ge | is_check,"," DT_REQUIRE_GE = is_normal | is_ge | is_require,",""," DT_WARN_LE = is_normal | is_le | is_warn,"," DT_CHECK_LE = is_normal | is_le | is_check,"," DT_REQUIRE_LE = is_normal | is_le | is_require,",""," DT_WARN_UNARY = is_normal | is_unary | is_warn,"," DT_CHECK_UNARY = is_normal | is_unary | is_check,"," DT_REQUIRE_UNARY = is_normal | is_unary | is_require,",""," DT_WARN_UNARY_FALSE = is_normal | is_false | is_unary | is_warn,"," DT_CHECK_UNARY_FALSE = is_normal | is_false | is_unary | is_check,"," DT_REQUIRE_UNARY_FALSE = is_normal | is_false | is_unary | is_require,"," };","} // namespace assertType","","DOCTEST_INTERFACE const char* assertString(assertType::Enum at);","DOCTEST_INTERFACE const char* failureString(assertType::Enum at);","DOCTEST_INTERFACE const char* skipPathFromFilename(const char* file);","","struct DOCTEST_INTERFACE TestCaseData","{"," String m_file; // the file in which the test was registered (using String - see #350)"," unsigned m_line; // the line where the test was registered"," const char* m_name; // name of the test case"," const char* m_test_suite; // the test suite in which the test was added"," const char* m_description;"," bool m_skip;"," bool m_no_breaks;"," bool m_no_output;"," bool m_may_fail;"," bool m_should_fail;"," int m_expected_failures;"," double m_timeout;","};","","struct DOCTEST_INTERFACE AssertData","{"," // common - for all asserts"," const TestCaseData* m_test_case;"," assertType::Enum m_at;"," const char* m_file;"," int m_line;"," const char* m_expr;"," bool m_failed;",""," // exception-related - for all asserts"," bool m_threw;"," String m_exception;",""," // for normal asserts"," String m_decomp;",""," // for specific exception-related asserts"," bool m_threw_as;"," const char* m_exception_type;",""," class DOCTEST_INTERFACE StringContains {"," private:"," Contains content;"," bool isContains;",""," public:"," StringContains(const String\u0026 str) : content(str), isContains(false) { }"," StringContains(Contains cntn) : content(static_cast\u003cContains\u0026\u0026\u003e(cntn)), isContains(true) { }",""," bool check(const String\u0026 str) { return isContains ? (content == str) : (content.string == str); }",""," operator const String\u0026() const { return content.string; }",""," const char* c_str() const { return content.string.c_str(); }"," } m_exception_string;",""," AssertData(assertType::Enum at, const char* file, int line, const char* expr,"," const char* exception_type, const StringContains\u0026 exception_string);","};","","struct DOCTEST_INTERFACE MessageData","{"," String m_string;"," const char* m_file;"," int m_line;"," assertType::Enum m_severity;","};","","struct DOCTEST_INTERFACE SubcaseSignature","{"," String m_name;"," const char* m_file;"," int m_line;",""," bool operator==(const SubcaseSignature\u0026 other) const;"," bool operator\u003c(const SubcaseSignature\u0026 other) const;","};","","struct DOCTEST_INTERFACE IContextScope","{"," DOCTEST_DECLARE_INTERFACE(IContextScope)"," virtual void stringify(std::ostream*) const = 0;","};","","namespace detail {"," struct DOCTEST_INTERFACE TestCase;","} // namespace detail","","struct ContextOptions //!OCLINT too many fields","{"," std::ostream* cout = nullptr; // stdout stream"," String binary_name; // the test binary name",""," const detail::TestCase* currentTest = nullptr;",""," // == parameters from the command line"," String out; // output filename"," String order_by; // how tests should be ordered"," unsigned rand_seed; // the seed for rand ordering",""," unsigned first; // the first (matching) test to be executed"," unsigned last; // the last (matching) test to be executed",""," int abort_after; // stop tests after this many failed assertions"," int subcase_filter_levels; // apply the subcase filters for the first N levels",""," bool success; // include successful assertions in output"," bool case_sensitive; // if filtering should be case sensitive"," bool exit; // if the program should be exited after the tests are ran/whatever"," bool duration; // print the time duration of each test case"," bool minimal; // minimal console output (only test failures)"," bool quiet; // no console output"," bool no_throw; // to skip exceptions-related assertion macros"," bool no_exitcode; // if the framework should return 0 as the exitcode"," bool no_run; // to not run the tests at all (can be done with an \"*\" exclude)"," bool no_intro; // to not print the intro of the framework"," bool no_version; // to not print the version of the framework"," bool no_colors; // if output to the console should be colorized"," bool force_colors; // forces the use of colors even when a tty cannot be detected"," bool no_breaks; // to not break into the debugger"," bool no_skip; // don't skip test cases which are marked to be skipped"," bool gnu_file_line; // if line numbers should be surrounded with :x: and not (x):"," bool no_path_in_filenames; // if the path to files should be removed from the output"," bool no_line_numbers; // if source code line numbers should be omitted from the output"," bool no_debug_output; // no output in the debug console when a debugger is attached"," bool no_skipped_summary; // don't print \"skipped\" in the summary !!! UNDOCUMENTED !!!"," bool no_time_in_output; // omit any time/timestamps from output !!! UNDOCUMENTED !!!",""," bool help; // to print the help"," bool version; // to print the version"," bool count; // if only the count of matching tests is to be retrieved"," bool list_test_cases; // to list all tests matching the filters"," bool list_test_suites; // to list all suites matching the filters"," bool list_reporters; // lists all registered reporters","};","","namespace detail {"," namespace types {","#ifdef DOCTEST_CONFIG_INCLUDE_TYPE_TRAITS"," using namespace std;","#else"," template \u003cbool COND, typename T = void\u003e"," struct enable_if { };",""," template \u003ctypename T\u003e"," struct enable_if\u003ctrue, T\u003e { using type = T; };",""," struct true_type { static DOCTEST_CONSTEXPR bool value = true; };"," struct false_type { static DOCTEST_CONSTEXPR bool value = false; };",""," template \u003ctypename T\u003e struct remove_reference { using type = T; };"," template \u003ctypename T\u003e struct remove_reference\u003cT\u0026\u003e { using type = T; };"," template \u003ctypename T\u003e struct remove_reference\u003cT\u0026\u0026\u003e { using type = T; };",""," template \u003ctypename T\u003e struct is_rvalue_reference : false_type { };"," template \u003ctypename T\u003e struct is_rvalue_reference\u003cT\u0026\u0026\u003e : true_type { };",""," template\u003ctypename T\u003e struct remove_const { using type = T; };"," template \u003ctypename T\u003e struct remove_const\u003cconst T\u003e { using type = T; };",""," // Compiler intrinsics"," template \u003ctypename T\u003e struct is_enum { static DOCTEST_CONSTEXPR bool value = __is_enum(T); };"," template \u003ctypename T\u003e struct underlying_type { using type = __underlying_type(T); };",""," template \u003ctypename T\u003e struct is_pointer : false_type { };"," template \u003ctypename T\u003e struct is_pointer\u003cT*\u003e : true_type { };",""," template \u003ctypename T\u003e struct is_array : false_type { };"," // NOLINTNEXTLINE(*-avoid-c-arrays)"," template \u003ctypename T, size_t SIZE\u003e struct is_array\u003cT[SIZE]\u003e : true_type { };","#endif"," }",""," // \u003cutility\u003e"," template \u003ctypename T\u003e"," T\u0026\u0026 declval();",""," template \u003cclass T\u003e"," DOCTEST_CONSTEXPR_FUNC T\u0026\u0026 forward(typename types::remove_reference\u003cT\u003e::type\u0026 t) DOCTEST_NOEXCEPT {"," return static_cast\u003cT\u0026\u0026\u003e(t);"," }",""," template \u003cclass T\u003e"," DOCTEST_CONSTEXPR_FUNC T\u0026\u0026 forward(typename types::remove_reference\u003cT\u003e::type\u0026\u0026 t) DOCTEST_NOEXCEPT {"," return static_cast\u003cT\u0026\u0026\u003e(t);"," }",""," template \u003ctypename T\u003e"," struct deferred_false : types::false_type { };","","// MSVS 2015 :(","#if !DOCTEST_CLANG \u0026\u0026 defined(_MSC_VER) \u0026\u0026 _MSC_VER \u003c= 1900"," template \u003ctypename T, typename = void\u003e"," struct has_global_insertion_operator : types::false_type { };",""," template \u003ctypename T\u003e"," struct has_global_insertion_operator\u003cT, decltype(::operator\u003c\u003c(declval\u003cstd::ostream\u0026\u003e(), declval\u003cconst T\u0026\u003e()), void())\u003e : types::true_type { };",""," template \u003ctypename T, typename = void\u003e"," struct has_insertion_operator { static DOCTEST_CONSTEXPR bool value = has_global_insertion_operator\u003cT\u003e::value; };",""," template \u003ctypename T, bool global\u003e"," struct insert_hack;",""," template \u003ctypename T\u003e"," struct insert_hack\u003cT, true\u003e {"," static void insert(std::ostream\u0026 os, const T\u0026 t) { ::operator\u003c\u003c(os, t); }"," };",""," template \u003ctypename T\u003e"," struct insert_hack\u003cT, false\u003e {"," static void insert(std::ostream\u0026 os, const T\u0026 t) { operator\u003c\u003c(os, t); }"," };",""," template \u003ctypename T\u003e"," using insert_hack_t = insert_hack\u003cT, has_global_insertion_operator\u003cT\u003e::value\u003e;","#else"," template \u003ctypename T, typename = void\u003e"," struct has_insertion_operator : types::false_type { };","#endif",""," template \u003ctypename T\u003e"," struct has_insertion_operator\u003cT, decltype(operator\u003c\u003c(declval\u003cstd::ostream\u0026\u003e(), declval\u003cconst T\u0026\u003e()), void())\u003e : types::true_type { };",""," template \u003ctypename T\u003e"," struct should_stringify_as_underlying_type {"," static DOCTEST_CONSTEXPR bool value = detail::types::is_enum\u003cT\u003e::value \u0026\u0026 !doctest::detail::has_insertion_operator\u003cT\u003e::value;"," };",""," DOCTEST_INTERFACE std::ostream* tlssPush();"," DOCTEST_INTERFACE String tlssPop();",""," template \u003cbool C\u003e"," struct StringMakerBase {"," template \u003ctypename T\u003e"," static String convert(const DOCTEST_REF_WRAP(T)) {","#ifdef DOCTEST_CONFIG_REQUIRE_STRINGIFICATION_FOR_ALL_USED_TYPES"," static_assert(deferred_false\u003cT\u003e::value, \"No stringification detected for type T. See string conversion manual\");","#endif"," return \"{?}\";"," }"," };",""," template \u003ctypename T\u003e"," struct filldata;",""," template \u003ctypename T\u003e"," void filloss(std::ostream* stream, const T\u0026 in) {"," filldata\u003cT\u003e::fill(stream, in);"," }",""," template \u003ctypename T, size_t N\u003e"," void filloss(std::ostream* stream, const T (\u0026in)[N]) { // NOLINT(*-avoid-c-arrays)"," // T[N], T(\u0026)[N], T(\u0026\u0026)[N] have same behaviour."," // Hence remove reference."," filloss\u003ctypename types::remove_reference\u003cdecltype(in)\u003e::type\u003e(stream, in);"," }",""," template \u003ctypename T\u003e"," String toStream(const T\u0026 in) {"," std::ostream* stream = tlssPush();"," filloss(stream, in);"," return tlssPop();"," }",""," template \u003c\u003e"," struct StringMakerBase\u003ctrue\u003e {"," template \u003ctypename T\u003e"," static String convert(const DOCTEST_REF_WRAP(T) in) {"," return toStream(in);"," }"," };","} // namespace detail","","template \u003ctypename T\u003e","struct StringMaker : public detail::StringMakerBase\u003c"," detail::has_insertion_operator\u003cT\u003e::value || detail::types::is_pointer\u003cT\u003e::value || detail::types::is_array\u003cT\u003e::value\u003e","{};","","#ifndef DOCTEST_STRINGIFY","#ifdef DOCTEST_CONFIG_DOUBLE_STRINGIFY","#define DOCTEST_STRINGIFY(...) toString(toString(__VA_ARGS__))","#else","#define DOCTEST_STRINGIFY(...) toString(__VA_ARGS__)","#endif","#endif","","template \u003ctypename T\u003e","String toString() {","#if DOCTEST_CLANG == 0 \u0026\u0026 DOCTEST_GCC == 0 \u0026\u0026 DOCTEST_ICC == 0"," String ret = __FUNCSIG__; // class doctest::String __cdecl doctest::toString\u003cTYPE\u003e(void)"," String::size_type beginPos = ret.find('\u003c');"," return ret.substr(beginPos + 1, ret.size() - beginPos - static_cast\u003cString::size_type\u003e(sizeof(\"\u003e(void)\")));","#else"," String ret = __PRETTY_FUNCTION__; // doctest::String toString() [with T = TYPE]"," String::size_type begin = ret.find('=') + 2;"," return ret.substr(begin, ret.size() - begin - 1);","#endif","}","","template \u003ctypename T, typename detail::types::enable_if\u003c!detail::should_stringify_as_underlying_type\u003cT\u003e::value, bool\u003e::type = true\u003e","String toString(const DOCTEST_REF_WRAP(T) value) {"," return StringMaker\u003cT\u003e::convert(value);","}","","#ifdef DOCTEST_CONFIG_TREAT_CHAR_STAR_AS_STRING","DOCTEST_INTERFACE String toString(const char* in);","#endif // DOCTEST_CONFIG_TREAT_CHAR_STAR_AS_STRING","","#if DOCTEST_MSVC \u003e= DOCTEST_COMPILER(19, 20, 0)","// see this issue on why this is needed: https://github.com/doctest/doctest/issues/183","DOCTEST_INTERFACE String toString(const std::string\u0026 in);","#endif // VS 2019","","DOCTEST_INTERFACE String toString(String in);","","DOCTEST_INTERFACE String toString(std::nullptr_t);","","DOCTEST_INTERFACE String toString(bool in);","","DOCTEST_INTERFACE String toString(float in);","DOCTEST_INTERFACE String toString(double in);","DOCTEST_INTERFACE String toString(double long in);","","DOCTEST_INTERFACE String toString(char in);","DOCTEST_INTERFACE String toString(char signed in);","DOCTEST_INTERFACE String toString(char unsigned in);","DOCTEST_INTERFACE String toString(short in);","DOCTEST_INTERFACE String toString(short unsigned in);","DOCTEST_INTERFACE String toString(signed in);","DOCTEST_INTERFACE String toString(unsigned in);","DOCTEST_INTERFACE String toString(long in);","DOCTEST_INTERFACE String toString(long unsigned in);","DOCTEST_INTERFACE String toString(long long in);","DOCTEST_INTERFACE String toString(long long unsigned in);","","template \u003ctypename T, typename detail::types::enable_if\u003cdetail::should_stringify_as_underlying_type\u003cT\u003e::value, bool\u003e::type = true\u003e","String toString(const DOCTEST_REF_WRAP(T) value) {"," using UT = typename detail::types::underlying_type\u003cT\u003e::type;"," return (DOCTEST_STRINGIFY(static_cast\u003cUT\u003e(value)));","}","","namespace detail {"," template \u003ctypename T\u003e"," struct filldata"," {"," static void fill(std::ostream* stream, const T\u0026 in) {","#if defined(_MSC_VER) \u0026\u0026 _MSC_VER \u003c= 1900"," insert_hack_t\u003cT\u003e::insert(*stream, in);","#else"," operator\u003c\u003c(*stream, in);","#endif"," }"," };","","DOCTEST_MSVC_SUPPRESS_WARNING_WITH_PUSH(4866)","// NOLINTBEGIN(*-avoid-c-arrays)"," template \u003ctypename T, size_t N\u003e"," struct filldata\u003cT[N]\u003e {"," static void fill(std::ostream* stream, const T(\u0026in)[N]) {"," *stream \u003c\u003c \"[\";"," for (size_t i = 0; i \u003c N; i++) {"," if (i != 0) { *stream \u003c\u003c \", \"; }"," *stream \u003c\u003c (DOCTEST_STRINGIFY(in[i]));"," }"," *stream \u003c\u003c \"]\";"," }"," };","// NOLINTEND(*-avoid-c-arrays)","DOCTEST_MSVC_SUPPRESS_WARNING_POP",""," // Specialized since we don't want the terminating null byte!","// NOLINTBEGIN(*-avoid-c-arrays)"," template \u003csize_t N\u003e"," struct filldata\u003cconst char[N]\u003e {"," static void fill(std::ostream* stream, const char (\u0026in)[N]) {"," *stream \u003c\u003c String(in, in[N - 1] ? N : N - 1);"," } // NOLINT(clang-analyzer-cplusplus.NewDeleteLeaks)"," };","// NOLINTEND(*-avoid-c-arrays)",""," template \u003c\u003e"," struct filldata\u003cconst void*\u003e {"," static void fill(std::ostream* stream, const void* in);"," };",""," template \u003ctypename T\u003e"," struct filldata\u003cT*\u003e {","DOCTEST_MSVC_SUPPRESS_WARNING_WITH_PUSH(4180)"," static void fill(std::ostream* stream, const T* in) {","DOCTEST_MSVC_SUPPRESS_WARNING_POP","DOCTEST_CLANG_SUPPRESS_WARNING_WITH_PUSH(\"-Wmicrosoft-cast\")"," filldata\u003cconst void*\u003e::fill(stream,","#if DOCTEST_GCC == 0 || DOCTEST_GCC \u003e= DOCTEST_COMPILER(4, 9, 0)"," reinterpret_cast\u003cconst void*\u003e(in)","#else"," *reinterpret_cast\u003cconst void* const*\u003e(\u0026in)","#endif"," );","DOCTEST_CLANG_SUPPRESS_WARNING_POP"," }"," };","}","","struct DOCTEST_INTERFACE Approx","{"," Approx(double value);",""," Approx operator()(double value) const;","","#ifdef DOCTEST_CONFIG_INCLUDE_TYPE_TRAITS"," template \u003ctypename T\u003e"," explicit Approx(const T\u0026 value,"," typename detail::types::enable_if\u003cstd::is_constructible\u003cdouble, T\u003e::value\u003e::type* ="," static_cast\u003cT*\u003e(nullptr)) {"," *this = static_cast\u003cdouble\u003e(value);"," }","#endif // DOCTEST_CONFIG_INCLUDE_TYPE_TRAITS",""," Approx\u0026 epsilon(double newEpsilon);","","#ifdef DOCTEST_CONFIG_INCLUDE_TYPE_TRAITS"," template \u003ctypename T\u003e"," typename std::enable_if\u003cstd::is_constructible\u003cdouble, T\u003e::value, Approx\u0026\u003e::type epsilon("," const T\u0026 newEpsilon) {"," m_epsilon = static_cast\u003cdouble\u003e(newEpsilon);"," return *this;"," }","#endif // DOCTEST_CONFIG_INCLUDE_TYPE_TRAITS",""," Approx\u0026 scale(double newScale);","","#ifdef DOCTEST_CONFIG_INCLUDE_TYPE_TRAITS"," template \u003ctypename T\u003e"," typename std::enable_if\u003cstd::is_constructible\u003cdouble, T\u003e::value, Approx\u0026\u003e::type scale("," const T\u0026 newScale) {"," m_scale = static_cast\u003cdouble\u003e(newScale);"," return *this;"," }","#endif // DOCTEST_CONFIG_INCLUDE_TYPE_TRAITS",""," // clang-format off"," DOCTEST_INTERFACE friend bool operator==(double lhs, const Approx \u0026 rhs);"," DOCTEST_INTERFACE friend bool operator==(const Approx \u0026 lhs, double rhs);"," DOCTEST_INTERFACE friend bool operator!=(double lhs, const Approx \u0026 rhs);"," DOCTEST_INTERFACE friend bool operator!=(const Approx \u0026 lhs, double rhs);"," DOCTEST_INTERFACE friend bool operator\u003c=(double lhs, const Approx \u0026 rhs);"," DOCTEST_INTERFACE friend bool operator\u003c=(const Approx \u0026 lhs, double rhs);"," DOCTEST_INTERFACE friend bool operator\u003e=(double lhs, const Approx \u0026 rhs);"," DOCTEST_INTERFACE friend bool operator\u003e=(const Approx \u0026 lhs, double rhs);"," DOCTEST_INTERFACE friend bool operator\u003c (double lhs, const Approx \u0026 rhs);"," DOCTEST_INTERFACE friend bool operator\u003c (const Approx \u0026 lhs, double rhs);"," DOCTEST_INTERFACE friend bool operator\u003e (double lhs, const Approx \u0026 rhs);"," DOCTEST_INTERFACE friend bool operator\u003e (const Approx \u0026 lhs, double rhs);","","#ifdef DOCTEST_CONFIG_INCLUDE_TYPE_TRAITS","#define DOCTEST_APPROX_PREFIX \\"," template \u003ctypename T\u003e friend typename std::enable_if\u003cstd::is_constructible\u003cdouble, T\u003e::value, bool\u003e::type",""," DOCTEST_APPROX_PREFIX operator==(const T\u0026 lhs, const Approx\u0026 rhs) { return operator==(static_cast\u003cdouble\u003e(lhs), rhs); }"," DOCTEST_APPROX_PREFIX operator==(const Approx\u0026 lhs, const T\u0026 rhs) { return operator==(rhs, lhs); }"," DOCTEST_APPROX_PREFIX operator!=(const T\u0026 lhs, const Approx\u0026 rhs) { return !operator==(lhs, rhs); }"," DOCTEST_APPROX_PREFIX operator!=(const Approx\u0026 lhs, const T\u0026 rhs) { return !operator==(rhs, lhs); }"," DOCTEST_APPROX_PREFIX operator\u003c=(const T\u0026 lhs, const Approx\u0026 rhs) { return static_cast\u003cdouble\u003e(lhs) \u003c rhs.m_value || lhs == rhs; }"," DOCTEST_APPROX_PREFIX operator\u003c=(const Approx\u0026 lhs, const T\u0026 rhs) { return lhs.m_value \u003c static_cast\u003cdouble\u003e(rhs) || lhs == rhs; }"," DOCTEST_APPROX_PREFIX operator\u003e=(const T\u0026 lhs, const Approx\u0026 rhs) { return static_cast\u003cdouble\u003e(lhs) \u003e rhs.m_value || lhs == rhs; }"," DOCTEST_APPROX_PREFIX operator\u003e=(const Approx\u0026 lhs, const T\u0026 rhs) { return lhs.m_value \u003e static_cast\u003cdouble\u003e(rhs) || lhs == rhs; }"," DOCTEST_APPROX_PREFIX operator\u003c (const T\u0026 lhs, const Approx\u0026 rhs) { return static_cast\u003cdouble\u003e(lhs) \u003c rhs.m_value \u0026\u0026 lhs != rhs; }"," DOCTEST_APPROX_PREFIX operator\u003c (const Approx\u0026 lhs, const T\u0026 rhs) { return lhs.m_value \u003c static_cast\u003cdouble\u003e(rhs) \u0026\u0026 lhs != rhs; }"," DOCTEST_APPROX_PREFIX operator\u003e (const T\u0026 lhs, const Approx\u0026 rhs) { return static_cast\u003cdouble\u003e(lhs) \u003e rhs.m_value \u0026\u0026 lhs != rhs; }"," DOCTEST_APPROX_PREFIX operator\u003e (const Approx\u0026 lhs, const T\u0026 rhs) { return lhs.m_value \u003e static_cast\u003cdouble\u003e(rhs) \u0026\u0026 lhs != rhs; }","#undef DOCTEST_APPROX_PREFIX","#endif // DOCTEST_CONFIG_INCLUDE_TYPE_TRAITS",""," // clang-format on",""," double m_epsilon;"," double m_scale;"," double m_value;","};","","DOCTEST_INTERFACE String toString(const Approx\u0026 in);","","DOCTEST_INTERFACE const ContextOptions* getContextOptions();","","template \u003ctypename F\u003e","struct DOCTEST_INTERFACE_DECL IsNaN","{"," F value; bool flipped;"," IsNaN(F f, bool flip = false) : value(f), flipped(flip) { }"," IsNaN\u003cF\u003e operator!() const { return { value, !flipped }; }"," operator bool() const;","};","#ifndef __MINGW32__","extern template struct DOCTEST_INTERFACE_DECL IsNaN\u003cfloat\u003e;","extern template struct DOCTEST_INTERFACE_DECL IsNaN\u003cdouble\u003e;","extern template struct DOCTEST_INTERFACE_DECL IsNaN\u003clong double\u003e;","#endif","DOCTEST_INTERFACE String toString(IsNaN\u003cfloat\u003e in);","DOCTEST_INTERFACE String toString(IsNaN\u003cdouble\u003e in);","DOCTEST_INTERFACE String toString(IsNaN\u003cdouble long\u003e in);","","#ifndef DOCTEST_CONFIG_DISABLE","","namespace detail {"," // clang-format off","#ifdef DOCTEST_CONFIG_TREAT_CHAR_STAR_AS_STRING"," template\u003cclass T\u003e struct decay_array { using type = T; };"," template\u003cclass T, unsigned N\u003e struct decay_array\u003cT[N]\u003e { using type = T*; };"," template\u003cclass T\u003e struct decay_array\u003cT[]\u003e { using type = T*; };",""," template\u003cclass T\u003e struct not_char_pointer { static DOCTEST_CONSTEXPR int value = 1; };"," template\u003c\u003e struct not_char_pointer\u003cchar*\u003e { static DOCTEST_CONSTEXPR int value = 0; };"," template\u003c\u003e struct not_char_pointer\u003cconst char*\u003e { static DOCTEST_CONSTEXPR int value = 0; };",""," template\u003cclass T\u003e struct can_use_op : public not_char_pointer\u003ctypename decay_array\u003cT\u003e::type\u003e {};","#endif // DOCTEST_CONFIG_TREAT_CHAR_STAR_AS_STRING"," // clang-format on",""," struct DOCTEST_INTERFACE TestFailureException"," {"," };",""," DOCTEST_INTERFACE bool checkIfShouldThrow(assertType::Enum at);","","#ifndef DOCTEST_CONFIG_NO_EXCEPTIONS"," DOCTEST_NORETURN","#endif // DOCTEST_CONFIG_NO_EXCEPTIONS"," DOCTEST_INTERFACE void throwException();",""," struct DOCTEST_INTERFACE Subcase"," {"," SubcaseSignature m_signature;"," bool m_entered = false;",""," Subcase(const String\u0026 name, const char* file, int line);"," Subcase(const Subcase\u0026) = delete;"," Subcase(Subcase\u0026\u0026) = delete;"," Subcase\u0026 operator=(const Subcase\u0026) = delete;"," Subcase\u0026 operator=(Subcase\u0026\u0026) = delete;"," ~Subcase();",""," operator bool() const;",""," private:"," bool checkFilters();"," };",""," template \u003ctypename L, typename R\u003e"," String stringifyBinaryExpr(const DOCTEST_REF_WRAP(L) lhs, const char* op,"," const DOCTEST_REF_WRAP(R) rhs) {"," return (DOCTEST_STRINGIFY(lhs)) + op + (DOCTEST_STRINGIFY(rhs));"," }","","#if DOCTEST_CLANG \u0026\u0026 DOCTEST_CLANG \u003c DOCTEST_COMPILER(3, 6, 0)","DOCTEST_CLANG_SUPPRESS_WARNING_WITH_PUSH(\"-Wunused-comparison\")","#endif","","// This will check if there is any way it could find a operator like member or friend and uses it.","// If not it doesn't find the operator or if the operator at global scope is defined after","// this template, the template won't be instantiated due to SFINAE. Once the template is not","// instantiated it can look for global operator using normal conversions.","#ifdef __NVCC__","#define SFINAE_OP(ret,op) ret","#else","#define SFINAE_OP(ret,op) decltype((void)(doctest::detail::declval\u003cL\u003e() op doctest::detail::declval\u003cR\u003e()),ret{})","#endif","","#define DOCTEST_DO_BINARY_EXPRESSION_COMPARISON(op, op_str, op_macro) \\"," template \u003ctypename R\u003e \\"," DOCTEST_NOINLINE SFINAE_OP(Result,op) operator op(R\u0026\u0026 rhs) { \\"," bool res = op_macro(doctest::detail::forward\u003cconst L\u003e(lhs), doctest::detail::forward\u003cR\u003e(rhs)); \\"," if(m_at \u0026 assertType::is_false) \\"," res = !res; \\"," if(!res || doctest::getContextOptions()-\u003esuccess) \\"," return Result(res, stringifyBinaryExpr(lhs, op_str, rhs)); \\"," return Result(res); \\"," }",""," // more checks could be added - like in Catch:"," // https://github.com/catchorg/Catch2/pull/1480/files"," // https://github.com/catchorg/Catch2/pull/1481/files","#define DOCTEST_FORBIT_EXPRESSION(rt, op) \\"," template \u003ctypename R\u003e \\"," rt\u0026 operator op(const R\u0026) { \\"," static_assert(deferred_false\u003cR\u003e::value, \\"," \"Expression Too Complex Please Rewrite As Binary Comparison!\"); \\"," return *this; \\"," }",""," struct DOCTEST_INTERFACE Result // NOLINT(*-member-init)"," {"," bool m_passed;"," String m_decomp;",""," Result() = default; // TODO: Why do we need this? (To remove NOLINT)"," Result(bool passed, const String\u0026 decomposition = String());",""," // forbidding some expressions based on this table: https://en.cppreference.com/w/cpp/language/operator_precedence"," DOCTEST_FORBIT_EXPRESSION(Result, \u0026)"," DOCTEST_FORBIT_EXPRESSION(Result, ^)"," DOCTEST_FORBIT_EXPRESSION(Result, |)"," DOCTEST_FORBIT_EXPRESSION(Result, \u0026\u0026)"," DOCTEST_FORBIT_EXPRESSION(Result, ||)"," DOCTEST_FORBIT_EXPRESSION(Result, ==)"," DOCTEST_FORBIT_EXPRESSION(Result, !=)"," DOCTEST_FORBIT_EXPRESSION(Result, \u003c)"," DOCTEST_FORBIT_EXPRESSION(Result, \u003e)"," DOCTEST_FORBIT_EXPRESSION(Result, \u003c=)"," DOCTEST_FORBIT_EXPRESSION(Result, \u003e=)"," DOCTEST_FORBIT_EXPRESSION(Result, =)"," DOCTEST_FORBIT_EXPRESSION(Result, +=)"," DOCTEST_FORBIT_EXPRESSION(Result, -=)"," DOCTEST_FORBIT_EXPRESSION(Result, *=)"," DOCTEST_FORBIT_EXPRESSION(Result, /=)"," DOCTEST_FORBIT_EXPRESSION(Result, %=)"," DOCTEST_FORBIT_EXPRESSION(Result, \u003c\u003c=)"," DOCTEST_FORBIT_EXPRESSION(Result, \u003e\u003e=)"," DOCTEST_FORBIT_EXPRESSION(Result, \u0026=)"," DOCTEST_FORBIT_EXPRESSION(Result, ^=)"," DOCTEST_FORBIT_EXPRESSION(Result, |=)"," };","","#ifndef DOCTEST_CONFIG_NO_COMPARISON_WARNING_SUPPRESSION",""," DOCTEST_CLANG_SUPPRESS_WARNING_PUSH"," DOCTEST_CLANG_SUPPRESS_WARNING(\"-Wsign-conversion\")"," DOCTEST_CLANG_SUPPRESS_WARNING(\"-Wsign-compare\")"," //DOCTEST_CLANG_SUPPRESS_WARNING(\"-Wdouble-promotion\")"," //DOCTEST_CLANG_SUPPRESS_WARNING(\"-Wconversion\")"," //DOCTEST_CLANG_SUPPRESS_WARNING(\"-Wfloat-equal\")",""," DOCTEST_GCC_SUPPRESS_WARNING_PUSH"," DOCTEST_GCC_SUPPRESS_WARNING(\"-Wsign-conversion\")"," DOCTEST_GCC_SUPPRESS_WARNING(\"-Wsign-compare\")"," //DOCTEST_GCC_SUPPRESS_WARNING(\"-Wdouble-promotion\")"," //DOCTEST_GCC_SUPPRESS_WARNING(\"-Wconversion\")"," //DOCTEST_GCC_SUPPRESS_WARNING(\"-Wfloat-equal\")",""," DOCTEST_MSVC_SUPPRESS_WARNING_PUSH"," // https://stackoverflow.com/questions/39479163 what's the difference between 4018 and 4389"," DOCTEST_MSVC_SUPPRESS_WARNING(4388) // signed/unsigned mismatch"," DOCTEST_MSVC_SUPPRESS_WARNING(4389) // 'operator' : signed/unsigned mismatch"," DOCTEST_MSVC_SUPPRESS_WARNING(4018) // 'expression' : signed/unsigned mismatch"," //DOCTEST_MSVC_SUPPRESS_WARNING(4805) // 'operation' : unsafe mix of type 'type' and type 'type' in operation","","#endif // DOCTEST_CONFIG_NO_COMPARISON_WARNING_SUPPRESSION",""," // clang-format off","#ifndef DOCTEST_CONFIG_TREAT_CHAR_STAR_AS_STRING","#define DOCTEST_COMPARISON_RETURN_TYPE bool","#else // DOCTEST_CONFIG_TREAT_CHAR_STAR_AS_STRING","#define DOCTEST_COMPARISON_RETURN_TYPE typename types::enable_if\u003ccan_use_op\u003cL\u003e::value || can_use_op\u003cR\u003e::value, bool\u003e::type"," inline bool eq(const char* lhs, const char* rhs) { return String(lhs) == String(rhs); }"," inline bool ne(const char* lhs, const char* rhs) { return String(lhs) != String(rhs); }"," inline bool lt(const char* lhs, const char* rhs) { return String(lhs) \u003c String(rhs); }"," inline bool gt(const char* lhs, const char* rhs) { return String(lhs) \u003e String(rhs); }"," inline bool le(const char* lhs, const char* rhs) { return String(lhs) \u003c= String(rhs); }"," inline bool ge(const char* lhs, const char* rhs) { return String(lhs) \u003e= String(rhs); }","#endif // DOCTEST_CONFIG_TREAT_CHAR_STAR_AS_STRING"," // clang-format on","","#define DOCTEST_RELATIONAL_OP(name, op) \\"," template \u003ctypename L, typename R\u003e \\"," DOCTEST_COMPARISON_RETURN_TYPE name(const DOCTEST_REF_WRAP(L) lhs, \\"," const DOCTEST_REF_WRAP(R) rhs) { \\"," return lhs op rhs; \\"," }",""," DOCTEST_RELATIONAL_OP(eq, ==)"," DOCTEST_RELATIONAL_OP(ne, !=)"," DOCTEST_RELATIONAL_OP(lt, \u003c)"," DOCTEST_RELATIONAL_OP(gt, \u003e)"," DOCTEST_RELATIONAL_OP(le, \u003c=)"," DOCTEST_RELATIONAL_OP(ge, \u003e=)","","#ifndef DOCTEST_CONFIG_TREAT_CHAR_STAR_AS_STRING","#define DOCTEST_CMP_EQ(l, r) l == r","#define DOCTEST_CMP_NE(l, r) l != r","#define DOCTEST_CMP_GT(l, r) l \u003e r","#define DOCTEST_CMP_LT(l, r) l \u003c r","#define DOCTEST_CMP_GE(l, r) l \u003e= r","#define DOCTEST_CMP_LE(l, r) l \u003c= r","#else // DOCTEST_CONFIG_TREAT_CHAR_STAR_AS_STRING","#define DOCTEST_CMP_EQ(l, r) eq(l, r)","#define DOCTEST_CMP_NE(l, r) ne(l, r)","#define DOCTEST_CMP_GT(l, r) gt(l, r)","#define DOCTEST_CMP_LT(l, r) lt(l, r)","#define DOCTEST_CMP_GE(l, r) ge(l, r)","#define DOCTEST_CMP_LE(l, r) le(l, r)","#endif // DOCTEST_CONFIG_TREAT_CHAR_STAR_AS_STRING",""," template \u003ctypename L\u003e"," // cppcheck-suppress copyCtorAndEqOperator"," struct Expression_lhs"," {"," L lhs;"," assertType::Enum m_at;",""," explicit Expression_lhs(L\u0026\u0026 in, assertType::Enum at)"," : lhs(static_cast\u003cL\u0026\u0026\u003e(in))"," , m_at(at) {}",""," DOCTEST_NOINLINE operator Result() {","// this is needed only for MSVC 2015","DOCTEST_MSVC_SUPPRESS_WARNING_WITH_PUSH(4800) // 'int': forcing value to bool"," bool res = static_cast\u003cbool\u003e(lhs);","DOCTEST_MSVC_SUPPRESS_WARNING_POP"," if(m_at \u0026 assertType::is_false) { //!OCLINT bitwise operator in conditional"," res = !res;"," }",""," if(!res || getContextOptions()-\u003esuccess) {"," return { res, (DOCTEST_STRINGIFY(lhs)) };"," }"," return { res };"," }",""," /* This is required for user-defined conversions from Expression_lhs to L */"," operator L() const { return lhs; }",""," // clang-format off"," DOCTEST_DO_BINARY_EXPRESSION_COMPARISON(==, \" == \", DOCTEST_CMP_EQ) //!OCLINT bitwise operator in conditional"," DOCTEST_DO_BINARY_EXPRESSION_COMPARISON(!=, \" != \", DOCTEST_CMP_NE) //!OCLINT bitwise operator in conditional"," DOCTEST_DO_BINARY_EXPRESSION_COMPARISON(\u003e, \" \u003e \", DOCTEST_CMP_GT) //!OCLINT bitwise operator in conditional"," DOCTEST_DO_BINARY_EXPRESSION_COMPARISON(\u003c, \" \u003c \", DOCTEST_CMP_LT) //!OCLINT bitwise operator in conditional"," DOCTEST_DO_BINARY_EXPRESSION_COMPARISON(\u003e=, \" \u003e= \", DOCTEST_CMP_GE) //!OCLINT bitwise operator in conditional"," DOCTEST_DO_BINARY_EXPRESSION_COMPARISON(\u003c=, \" \u003c= \", DOCTEST_CMP_LE) //!OCLINT bitwise operator in conditional"," // clang-format on",""," // forbidding some expressions based on this table: https://en.cppreference.com/w/cpp/language/operator_precedence"," DOCTEST_FORBIT_EXPRESSION(Expression_lhs, \u0026)"," DOCTEST_FORBIT_EXPRESSION(Expression_lhs, ^)"," DOCTEST_FORBIT_EXPRESSION(Expression_lhs, |)"," DOCTEST_FORBIT_EXPRESSION(Expression_lhs, \u0026\u0026)"," DOCTEST_FORBIT_EXPRESSION(Expression_lhs, ||)"," DOCTEST_FORBIT_EXPRESSION(Expression_lhs, =)"," DOCTEST_FORBIT_EXPRESSION(Expression_lhs, +=)"," DOCTEST_FORBIT_EXPRESSION(Expression_lhs, -=)"," DOCTEST_FORBIT_EXPRESSION(Expression_lhs, *=)"," DOCTEST_FORBIT_EXPRESSION(Expression_lhs, /=)"," DOCTEST_FORBIT_EXPRESSION(Expression_lhs, %=)"," DOCTEST_FORBIT_EXPRESSION(Expression_lhs, \u003c\u003c=)"," DOCTEST_FORBIT_EXPRESSION(Expression_lhs, \u003e\u003e=)"," DOCTEST_FORBIT_EXPRESSION(Expression_lhs, \u0026=)"," DOCTEST_FORBIT_EXPRESSION(Expression_lhs, ^=)"," DOCTEST_FORBIT_EXPRESSION(Expression_lhs, |=)"," // these 2 are unfortunate because they should be allowed - they have higher precedence over the comparisons, but the"," // ExpressionDecomposer class uses the left shift operator to capture the left operand of the binary expression..."," DOCTEST_FORBIT_EXPRESSION(Expression_lhs, \u003c\u003c)"," DOCTEST_FORBIT_EXPRESSION(Expression_lhs, \u003e\u003e)"," };","","#ifndef DOCTEST_CONFIG_NO_COMPARISON_WARNING_SUPPRESSION",""," DOCTEST_CLANG_SUPPRESS_WARNING_POP"," DOCTEST_MSVC_SUPPRESS_WARNING_POP"," DOCTEST_GCC_SUPPRESS_WARNING_POP","","#endif // DOCTEST_CONFIG_NO_COMPARISON_WARNING_SUPPRESSION","","#if DOCTEST_CLANG \u0026\u0026 DOCTEST_CLANG \u003c DOCTEST_COMPILER(3, 6, 0)","DOCTEST_CLANG_SUPPRESS_WARNING_POP","#endif",""," struct DOCTEST_INTERFACE ExpressionDecomposer"," {"," assertType::Enum m_at;",""," ExpressionDecomposer(assertType::Enum at);",""," // The right operator for capturing expressions is \"\u003c=\" instead of \"\u003c\u003c\" (based on the operator precedence table)"," // but then there will be warnings from GCC about \"-Wparentheses\" and since \"_Pragma()\" is problematic this will stay for now..."," // https://github.com/catchorg/Catch2/issues/870"," // https://github.com/catchorg/Catch2/issues/565"," template \u003ctypename L\u003e"," Expression_lhs\u003cL\u003e operator\u003c\u003c(L\u0026\u0026 operand) {"," return Expression_lhs\u003cL\u003e(static_cast\u003cL\u0026\u0026\u003e(operand), m_at);"," }",""," template \u003ctypename L,typename types::enable_if\u003c!doctest::detail::types::is_rvalue_reference\u003cL\u003e::value,void \u003e::type* = nullptr\u003e"," Expression_lhs\u003cconst L\u0026\u003e operator\u003c\u003c(const L \u0026operand) {"," return Expression_lhs\u003cconst L\u0026\u003e(operand, m_at);"," }"," };",""," struct DOCTEST_INTERFACE TestSuite"," {"," const char* m_test_suite = nullptr;"," const char* m_description = nullptr;"," bool m_skip = false;"," bool m_no_breaks = false;"," bool m_no_output = false;"," bool m_may_fail = false;"," bool m_should_fail = false;"," int m_expected_failures = 0;"," double m_timeout = 0;",""," TestSuite\u0026 operator*(const char* in);",""," template \u003ctypename T\u003e"," TestSuite\u0026 operator*(const T\u0026 in) {"," in.fill(*this);"," return *this;"," }"," };",""," using funcType = void (*)();",""," struct DOCTEST_INTERFACE TestCase : public TestCaseData"," {"," funcType m_test; // a function pointer to the test case",""," String m_type; // for templated test cases - gets appended to the real name"," int m_template_id; // an ID used to distinguish between the different versions of a templated test case"," String m_full_name; // contains the name (only for templated test cases!) + the template type",""," TestCase(funcType test, const char* file, unsigned line, const TestSuite\u0026 test_suite,"," const String\u0026 type = String(), int template_id = -1);",""," TestCase(const TestCase\u0026 other);"," TestCase(TestCase\u0026\u0026) = delete;",""," DOCTEST_MSVC_SUPPRESS_WARNING_WITH_PUSH(26434) // hides a non-virtual function"," TestCase\u0026 operator=(const TestCase\u0026 other);"," DOCTEST_MSVC_SUPPRESS_WARNING_POP",""," TestCase\u0026 operator=(TestCase\u0026\u0026) = delete;",""," TestCase\u0026 operator*(const char* in);",""," template \u003ctypename T\u003e"," TestCase\u0026 operator*(const T\u0026 in) {"," in.fill(*this);"," return *this;"," }",""," bool operator\u003c(const TestCase\u0026 other) const;",""," ~TestCase() = default;"," };",""," // forward declarations of functions used by the macros"," DOCTEST_INTERFACE int regTest(const TestCase\u0026 tc);"," DOCTEST_INTERFACE int setTestSuite(const TestSuite\u0026 ts);"," DOCTEST_INTERFACE bool isDebuggerActive();",""," template\u003ctypename T\u003e"," int instantiationHelper(const T\u0026) { return 0; }",""," namespace binaryAssertComparison {"," enum Enum"," {"," eq = 0,"," ne,"," gt,"," lt,"," ge,"," le"," };"," } // namespace binaryAssertComparison",""," // clang-format off"," template \u003cint, class L, class R\u003e struct RelationalComparator { bool operator()(const DOCTEST_REF_WRAP(L), const DOCTEST_REF_WRAP(R) ) const { return false; } };","","#define DOCTEST_BINARY_RELATIONAL_OP(n, op) \\"," template \u003cclass L, class R\u003e struct RelationalComparator\u003cn, L, R\u003e { bool operator()(const DOCTEST_REF_WRAP(L) lhs, const DOCTEST_REF_WRAP(R) rhs) const { return op(lhs, rhs); } };"," // clang-format on",""," DOCTEST_BINARY_RELATIONAL_OP(0, doctest::detail::eq)"," DOCTEST_BINARY_RELATIONAL_OP(1, doctest::detail::ne)"," DOCTEST_BINARY_RELATIONAL_OP(2, doctest::detail::gt)"," DOCTEST_BINARY_RELATIONAL_OP(3, doctest::detail::lt)"," DOCTEST_BINARY_RELATIONAL_OP(4, doctest::detail::ge)"," DOCTEST_BINARY_RELATIONAL_OP(5, doctest::detail::le)",""," struct DOCTEST_INTERFACE ResultBuilder : public AssertData"," {"," ResultBuilder(assertType::Enum at, const char* file, int line, const char* expr,"," const char* exception_type = \"\", const String\u0026 exception_string = \"\");",""," ResultBuilder(assertType::Enum at, const char* file, int line, const char* expr,"," const char* exception_type, const Contains\u0026 exception_string);",""," void setResult(const Result\u0026 res);",""," template \u003cint comparison, typename L, typename R\u003e"," DOCTEST_NOINLINE bool binary_assert(const DOCTEST_REF_WRAP(L) lhs,"," const DOCTEST_REF_WRAP(R) rhs) {"," m_failed = !RelationalComparator\u003ccomparison, L, R\u003e()(lhs, rhs);"," if (m_failed || getContextOptions()-\u003esuccess) {"," m_decomp = stringifyBinaryExpr(lhs, \", \", rhs);"," }"," return !m_failed;"," }",""," template \u003ctypename L\u003e"," DOCTEST_NOINLINE bool unary_assert(const DOCTEST_REF_WRAP(L) val) {"," m_failed = !val;",""," if (m_at \u0026 assertType::is_false) { //!OCLINT bitwise operator in conditional"," m_failed = !m_failed;"," }",""," if (m_failed || getContextOptions()-\u003esuccess) {"," m_decomp = (DOCTEST_STRINGIFY(val));"," }",""," return !m_failed;"," }",""," void translateException();",""," bool log();"," void react() const;"," };",""," namespace assertAction {"," enum Enum"," {"," nothing = 0,"," dbgbreak = 1,"," shouldthrow = 2"," };"," } // namespace assertAction",""," DOCTEST_INTERFACE void failed_out_of_a_testing_context(const AssertData\u0026 ad);",""," DOCTEST_INTERFACE bool decomp_assert(assertType::Enum at, const char* file, int line,"," const char* expr, const Result\u0026 result);","","#define DOCTEST_ASSERT_OUT_OF_TESTS(decomp) \\"," do { \\"," if(!is_running_in_test) { \\"," if(failed) { \\"," ResultBuilder rb(at, file, line, expr); \\"," rb.m_failed = failed; \\"," rb.m_decomp = decomp; \\"," failed_out_of_a_testing_context(rb); \\"," if(isDebuggerActive() \u0026\u0026 !getContextOptions()-\u003eno_breaks) \\"," DOCTEST_BREAK_INTO_DEBUGGER(); \\"," if(checkIfShouldThrow(at)) \\"," throwException(); \\"," } \\"," return !failed; \\"," } \\"," } while(false)","","#define DOCTEST_ASSERT_IN_TESTS(decomp) \\"," ResultBuilder rb(at, file, line, expr); \\"," rb.m_failed = failed; \\"," if(rb.m_failed || getContextOptions()-\u003esuccess) \\"," rb.m_decomp = decomp; \\"," if(rb.log()) \\"," DOCTEST_BREAK_INTO_DEBUGGER(); \\"," if(rb.m_failed \u0026\u0026 checkIfShouldThrow(at)) \\"," throwException()",""," template \u003cint comparison, typename L, typename R\u003e"," DOCTEST_NOINLINE bool binary_assert(assertType::Enum at, const char* file, int line,"," const char* expr, const DOCTEST_REF_WRAP(L) lhs,"," const DOCTEST_REF_WRAP(R) rhs) {"," bool failed = !RelationalComparator\u003ccomparison, L, R\u003e()(lhs, rhs);",""," // ###################################################################################"," // IF THE DEBUGGER BREAKS HERE - GO 1 LEVEL UP IN THE CALLSTACK FOR THE FAILING ASSERT"," // THIS IS THE EFFECT OF HAVING 'DOCTEST_CONFIG_SUPER_FAST_ASSERTS' DEFINED"," // ###################################################################################"," DOCTEST_ASSERT_OUT_OF_TESTS(stringifyBinaryExpr(lhs, \", \", rhs));"," DOCTEST_ASSERT_IN_TESTS(stringifyBinaryExpr(lhs, \", \", rhs));"," return !failed;"," }",""," template \u003ctypename L\u003e"," DOCTEST_NOINLINE bool unary_assert(assertType::Enum at, const char* file, int line,"," const char* expr, const DOCTEST_REF_WRAP(L) val) {"," bool failed = !val;",""," if(at \u0026 assertType::is_false) //!OCLINT bitwise operator in conditional"," failed = !failed;",""," // ###################################################################################"," // IF THE DEBUGGER BREAKS HERE - GO 1 LEVEL UP IN THE CALLSTACK FOR THE FAILING ASSERT"," // THIS IS THE EFFECT OF HAVING 'DOCTEST_CONFIG_SUPER_FAST_ASSERTS' DEFINED"," // ###################################################################################"," DOCTEST_ASSERT_OUT_OF_TESTS((DOCTEST_STRINGIFY(val)));"," DOCTEST_ASSERT_IN_TESTS((DOCTEST_STRINGIFY(val)));"," return !failed;"," }",""," struct DOCTEST_INTERFACE IExceptionTranslator"," {"," DOCTEST_DECLARE_INTERFACE(IExceptionTranslator)"," virtual bool translate(String\u0026) const = 0;"," };",""," template \u003ctypename T\u003e"," class ExceptionTranslator : public IExceptionTranslator //!OCLINT destructor of virtual class"," {"," public:"," explicit ExceptionTranslator(String (*translateFunction)(T))"," : m_translateFunction(translateFunction) {}",""," bool translate(String\u0026 res) const override {","#ifndef DOCTEST_CONFIG_NO_EXCEPTIONS"," try {"," throw; // lgtm [cpp/rethrow-no-exception]"," // cppcheck-suppress catchExceptionByValue"," } catch(const T\u0026 ex) {"," res = m_translateFunction(ex); //!OCLINT parameter reassignment"," return true;"," } catch(...) {} //!OCLINT - empty catch statement","#endif // DOCTEST_CONFIG_NO_EXCEPTIONS"," static_cast\u003cvoid\u003e(res); // to silence -Wunused-parameter"," return false;"," }",""," private:"," String (*m_translateFunction)(T);"," };",""," DOCTEST_INTERFACE void registerExceptionTranslatorImpl(const IExceptionTranslator* et);",""," // ContextScope base class used to allow implementing methods of ContextScope"," // that don't depend on the template parameter in doctest.cpp."," struct DOCTEST_INTERFACE ContextScopeBase : public IContextScope {"," ContextScopeBase(const ContextScopeBase\u0026) = delete;",""," ContextScopeBase\u0026 operator=(const ContextScopeBase\u0026) = delete;"," ContextScopeBase\u0026 operator=(ContextScopeBase\u0026\u0026) = delete;",""," ~ContextScopeBase() override = default;",""," protected:"," ContextScopeBase();"," ContextScopeBase(ContextScopeBase\u0026\u0026 other) noexcept;",""," void destroy();"," bool need_to_destroy{true};"," };",""," template \u003ctypename L\u003e class ContextScope : public ContextScopeBase"," {"," L lambda_;",""," public:"," explicit ContextScope(const L \u0026lambda) : lambda_(lambda) {}"," explicit ContextScope(L\u0026\u0026 lambda) : lambda_(static_cast\u003cL\u0026\u0026\u003e(lambda)) { }",""," ContextScope(const ContextScope\u0026) = delete;"," ContextScope(ContextScope\u0026\u0026) noexcept = default;",""," ContextScope\u0026 operator=(const ContextScope\u0026) = delete;"," ContextScope\u0026 operator=(ContextScope\u0026\u0026) = delete;",""," void stringify(std::ostream* s) const override { lambda_(s); }",""," ~ContextScope() override {"," if (need_to_destroy) {"," destroy();"," }"," }"," };",""," struct DOCTEST_INTERFACE MessageBuilder : public MessageData"," {"," std::ostream* m_stream;"," bool logged = false;",""," MessageBuilder(const char* file, int line, assertType::Enum severity);",""," MessageBuilder(const MessageBuilder\u0026) = delete;"," MessageBuilder(MessageBuilder\u0026\u0026) = delete;",""," MessageBuilder\u0026 operator=(const MessageBuilder\u0026) = delete;"," MessageBuilder\u0026 operator=(MessageBuilder\u0026\u0026) = delete;",""," ~MessageBuilder();",""," // the preferred way of chaining parameters for stringification","DOCTEST_MSVC_SUPPRESS_WARNING_WITH_PUSH(4866)"," template \u003ctypename T\u003e"," MessageBuilder\u0026 operator,(const T\u0026 in) {"," *m_stream \u003c\u003c (DOCTEST_STRINGIFY(in));"," return *this;"," }","DOCTEST_MSVC_SUPPRESS_WARNING_POP",""," // kept here just for backwards-compatibility - the comma operator should be preferred now"," template \u003ctypename T\u003e"," MessageBuilder\u0026 operator\u003c\u003c(const T\u0026 in) { return this-\u003eoperator,(in); }",""," // the `,` operator has the lowest operator precedence - if `\u003c\u003c` is used by the user then"," // the `,` operator will be called last which is not what we want and thus the `*` operator"," // is used first (has higher operator precedence compared to `\u003c\u003c`) so that we guarantee that"," // an operator of the MessageBuilder class is called first before the rest of the parameters"," template \u003ctypename T\u003e"," MessageBuilder\u0026 operator*(const T\u0026 in) { return this-\u003eoperator,(in); }",""," bool log();"," void react();"," };",""," template \u003ctypename L\u003e"," ContextScope\u003cL\u003e MakeContextScope(const L \u0026lambda) {"," return ContextScope\u003cL\u003e(lambda);"," }","} // namespace detail","","#define DOCTEST_DEFINE_DECORATOR(name, type, def) \\"," struct name \\"," { \\"," type data; \\"," name(type in = def) \\"," : data(in) {} \\"," void fill(detail::TestCase\u0026 state) const { state.DOCTEST_CAT(m_, name) = data; } \\"," void fill(detail::TestSuite\u0026 state) const { state.DOCTEST_CAT(m_, name) = data; } \\"," }","","DOCTEST_DEFINE_DECORATOR(test_suite, const char*, \"\");","DOCTEST_DEFINE_DECORATOR(description, const char*, \"\");","DOCTEST_DEFINE_DECORATOR(skip, bool, true);","DOCTEST_DEFINE_DECORATOR(no_breaks, bool, true);","DOCTEST_DEFINE_DECORATOR(no_output, bool, true);","DOCTEST_DEFINE_DECORATOR(timeout, double, 0);","DOCTEST_DEFINE_DECORATOR(may_fail, bool, true);","DOCTEST_DEFINE_DECORATOR(should_fail, bool, true);","DOCTEST_DEFINE_DECORATOR(expected_failures, int, 0);","","template \u003ctypename T\u003e","int registerExceptionTranslator(String (*translateFunction)(T)) {"," DOCTEST_CLANG_SUPPRESS_WARNING_WITH_PUSH(\"-Wexit-time-destructors\")"," static detail::ExceptionTranslator\u003cT\u003e exceptionTranslator(translateFunction);"," DOCTEST_CLANG_SUPPRESS_WARNING_POP"," detail::registerExceptionTranslatorImpl(\u0026exceptionTranslator);"," return 0;","}","","} // namespace doctest","","// in a separate namespace outside of doctest because the DOCTEST_TEST_SUITE macro","// introduces an anonymous namespace in which getCurrentTestSuite gets overridden","namespace doctest_detail_test_suite_ns {","DOCTEST_INTERFACE doctest::detail::TestSuite\u0026 getCurrentTestSuite();","} // namespace doctest_detail_test_suite_ns","","namespace doctest {","#else // DOCTEST_CONFIG_DISABLE","template \u003ctypename T\u003e","int registerExceptionTranslator(String (*)(T)) {"," return 0;","}","#endif // DOCTEST_CONFIG_DISABLE","","namespace detail {"," using assert_handler = void (*)(const AssertData\u0026);"," struct ContextState;","} // namespace detail","","class DOCTEST_INTERFACE Context","{"," detail::ContextState* p;",""," void parseArgs(int argc, const char* const* argv, bool withDefaults = false);","","public:"," explicit Context(int argc = 0, const char* const* argv = nullptr);",""," Context(const Context\u0026) = delete;"," Context(Context\u0026\u0026) = delete;",""," Context\u0026 operator=(const Context\u0026) = delete;"," Context\u0026 operator=(Context\u0026\u0026) = delete;",""," ~Context(); // NOLINT(performance-trivially-destructible)",""," void applyCommandLine(int argc, const char* const* argv);",""," void addFilter(const char* filter, const char* value);"," void clearFilters();"," void setOption(const char* option, bool value);"," void setOption(const char* option, int value);"," void setOption(const char* option, const char* value);",""," bool shouldExit();",""," void setAsDefaultForAssertsOutOfTestCases();",""," void setAssertHandler(detail::assert_handler ah);",""," void setCout(std::ostream* out);",""," int run();","};","","namespace TestCaseFailureReason {"," enum Enum"," {"," None = 0,"," AssertFailure = 1, // an assertion has failed in the test case"," Exception = 2, // test case threw an exception"," Crash = 4, // a crash..."," TooManyFailedAsserts = 8, // the abort-after option"," Timeout = 16, // see the timeout decorator"," ShouldHaveFailedButDidnt = 32, // see the should_fail decorator"," ShouldHaveFailedAndDid = 64, // see the should_fail decorator"," DidntFailExactlyNumTimes = 128, // see the expected_failures decorator"," FailedExactlyNumTimes = 256, // see the expected_failures decorator"," CouldHaveFailedAndDid = 512 // see the may_fail decorator"," };","} // namespace TestCaseFailureReason","","struct DOCTEST_INTERFACE CurrentTestCaseStats","{"," int numAssertsCurrentTest;"," int numAssertsFailedCurrentTest;"," double seconds;"," int failure_flags; // use TestCaseFailureReason::Enum"," bool testCaseSuccess;","};","","struct DOCTEST_INTERFACE TestCaseException","{"," String error_string;"," bool is_crash;","};","","struct DOCTEST_INTERFACE TestRunStats","{"," unsigned numTestCases;"," unsigned numTestCasesPassingFilters;"," unsigned numTestSuitesPassingFilters;"," unsigned numTestCasesFailed;"," int numAsserts;"," int numAssertsFailed;","};","","struct QueryData","{"," const TestRunStats* run_stats = nullptr;"," const TestCaseData** data = nullptr;"," unsigned num_data = 0;","};","","struct DOCTEST_INTERFACE IReporter","{"," // The constructor has to accept \"const ContextOptions\u0026\" as a single argument"," // which has most of the options for the run + a pointer to the stdout stream"," // Reporter(const ContextOptions\u0026 in)",""," // called when a query should be reported (listing test cases, printing the version, etc.)"," virtual void report_query(const QueryData\u0026) = 0;",""," // called when the whole test run starts"," virtual void test_run_start() = 0;"," // called when the whole test run ends (caching a pointer to the input doesn't make sense here)"," virtual void test_run_end(const TestRunStats\u0026) = 0;",""," // called when a test case is started (safe to cache a pointer to the input)"," virtual void test_case_start(const TestCaseData\u0026) = 0;"," // called when a test case is reentered because of unfinished subcases (safe to cache a pointer to the input)"," virtual void test_case_reenter(const TestCaseData\u0026) = 0;"," // called when a test case has ended"," virtual void test_case_end(const CurrentTestCaseStats\u0026) = 0;",""," // called when an exception is thrown from the test case (or it crashes)"," virtual void test_case_exception(const TestCaseException\u0026) = 0;",""," // called whenever a subcase is entered (don't cache pointers to the input)"," virtual void subcase_start(const SubcaseSignature\u0026) = 0;"," // called whenever a subcase is exited (don't cache pointers to the input)"," virtual void subcase_end() = 0;",""," // called for each assert (don't cache pointers to the input)"," virtual void log_assert(const AssertData\u0026) = 0;"," // called for each message (don't cache pointers to the input)"," virtual void log_message(const MessageData\u0026) = 0;",""," // called when a test case is skipped either because it doesn't pass the filters, has a skip decorator"," // or isn't in the execution range (between first and last) (safe to cache a pointer to the input)"," virtual void test_case_skipped(const TestCaseData\u0026) = 0;",""," DOCTEST_DECLARE_INTERFACE(IReporter)",""," // can obtain all currently active contexts and stringify them if one wishes to do so"," static int get_num_active_contexts();"," static const IContextScope* const* get_active_contexts();",""," // can iterate through contexts which have been stringified automatically in their destructors when an exception has been thrown"," static int get_num_stringified_contexts();"," static const String* get_stringified_contexts();","};","","namespace detail {"," using reporterCreatorFunc = IReporter* (*)(const ContextOptions\u0026);",""," DOCTEST_INTERFACE void registerReporterImpl(const char* name, int prio, reporterCreatorFunc c, bool isReporter);",""," template \u003ctypename Reporter\u003e"," IReporter* reporterCreator(const ContextOptions\u0026 o) {"," return new Reporter(o);"," }","} // namespace detail","","template \u003ctypename Reporter\u003e","int registerReporter(const char* name, int priority, bool isReporter) {"," detail::registerReporterImpl(name, priority, detail::reporterCreator\u003cReporter\u003e, isReporter);"," return 0;","}","} // namespace doctest","","#ifdef DOCTEST_CONFIG_ASSERTS_RETURN_VALUES","#define DOCTEST_FUNC_EMPTY [] { return false; }()","#else","#define DOCTEST_FUNC_EMPTY (void)0","#endif","","// if registering is not disabled","#ifndef DOCTEST_CONFIG_DISABLE","","#ifdef DOCTEST_CONFIG_ASSERTS_RETURN_VALUES","#define DOCTEST_FUNC_SCOPE_BEGIN [\u0026]","#define DOCTEST_FUNC_SCOPE_END ()","#define DOCTEST_FUNC_SCOPE_RET(v) return v","#else","#define DOCTEST_FUNC_SCOPE_BEGIN do","#define DOCTEST_FUNC_SCOPE_END while(false)","#define DOCTEST_FUNC_SCOPE_RET(v) (void)0","#endif","","// common code in asserts - for convenience","#define DOCTEST_ASSERT_LOG_REACT_RETURN(b) \\"," if(b.log()) DOCTEST_BREAK_INTO_DEBUGGER(); \\"," b.react(); \\"," DOCTEST_FUNC_SCOPE_RET(!b.m_failed)","","#ifdef DOCTEST_CONFIG_NO_TRY_CATCH_IN_ASSERTS","#define DOCTEST_WRAP_IN_TRY(x) x;","#else // DOCTEST_CONFIG_NO_TRY_CATCH_IN_ASSERTS","#define DOCTEST_WRAP_IN_TRY(x) \\"," try { \\"," x; \\"," } catch(...) { DOCTEST_RB.translateException(); }","#endif // DOCTEST_CONFIG_NO_TRY_CATCH_IN_ASSERTS","","#ifdef DOCTEST_CONFIG_VOID_CAST_EXPRESSIONS","#define DOCTEST_CAST_TO_VOID(...) \\"," DOCTEST_GCC_SUPPRESS_WARNING_WITH_PUSH(\"-Wuseless-cast\") \\"," static_cast\u003cvoid\u003e(__VA_ARGS__); \\"," DOCTEST_GCC_SUPPRESS_WARNING_POP","#else // DOCTEST_CONFIG_VOID_CAST_EXPRESSIONS","#define DOCTEST_CAST_TO_VOID(...) __VA_ARGS__;","#endif // DOCTEST_CONFIG_VOID_CAST_EXPRESSIONS","","// registers the test by initializing a dummy var with a function","#define DOCTEST_REGISTER_FUNCTION(global_prefix, f, decorators) \\"," global_prefix DOCTEST_GLOBAL_NO_WARNINGS(DOCTEST_ANONYMOUS(DOCTEST_ANON_VAR_), /* NOLINT */ \\"," doctest::detail::regTest( \\"," doctest::detail::TestCase( \\"," f, __FILE__, __LINE__, \\"," doctest_detail_test_suite_ns::getCurrentTestSuite()) * \\"," decorators))","","#define DOCTEST_IMPLEMENT_FIXTURE(der, base, func, decorators) \\"," namespace { /* NOLINT */ \\"," struct der : public base \\"," { \\"," void f(); \\"," }; \\"," static DOCTEST_INLINE_NOINLINE void func() { \\"," der v; \\"," v.f(); \\"," } \\"," DOCTEST_REGISTER_FUNCTION(DOCTEST_EMPTY, func, decorators) \\"," } \\"," DOCTEST_INLINE_NOINLINE void der::f() // NOLINT(misc-definitions-in-headers)","","#define DOCTEST_CREATE_AND_REGISTER_FUNCTION(f, decorators) \\"," static void f(); \\"," DOCTEST_REGISTER_FUNCTION(DOCTEST_EMPTY, f, decorators) \\"," static void f()","","#define DOCTEST_CREATE_AND_REGISTER_FUNCTION_IN_CLASS(f, proxy, decorators) \\"," static doctest::detail::funcType proxy() { return f; } \\"," DOCTEST_REGISTER_FUNCTION(inline, proxy(), decorators) \\"," static void f()","","// for registering tests","#define DOCTEST_TEST_CASE(decorators) \\"," DOCTEST_CREATE_AND_REGISTER_FUNCTION(DOCTEST_ANONYMOUS(DOCTEST_ANON_FUNC_), decorators)","","// for registering tests in classes - requires C++17 for inline variables!","#if DOCTEST_CPLUSPLUS \u003e= 201703L","#define DOCTEST_TEST_CASE_CLASS(decorators) \\"," DOCTEST_CREATE_AND_REGISTER_FUNCTION_IN_CLASS(DOCTEST_ANONYMOUS(DOCTEST_ANON_FUNC_), \\"," DOCTEST_ANONYMOUS(DOCTEST_ANON_PROXY_), \\"," decorators)","#else // DOCTEST_TEST_CASE_CLASS","#define DOCTEST_TEST_CASE_CLASS(...) \\"," TEST_CASES_CAN_BE_REGISTERED_IN_CLASSES_ONLY_IN_CPP17_MODE_OR_WITH_VS_2017_OR_NEWER","#endif // DOCTEST_TEST_CASE_CLASS","","// for registering tests with a fixture","#define DOCTEST_TEST_CASE_FIXTURE(c, decorators) \\"," DOCTEST_IMPLEMENT_FIXTURE(DOCTEST_ANONYMOUS(DOCTEST_ANON_CLASS_), c, \\"," DOCTEST_ANONYMOUS(DOCTEST_ANON_FUNC_), decorators)","","// for converting types to strings without the \u003ctypeinfo\u003e header and demangling","#define DOCTEST_TYPE_TO_STRING_AS(str, ...) \\"," namespace doctest { \\"," template \u003c\u003e \\"," inline String toString\u003c__VA_ARGS__\u003e() { \\"," return str; \\"," } \\"," } \\"," static_assert(true, \"\")","","#define DOCTEST_TYPE_TO_STRING(...) DOCTEST_TYPE_TO_STRING_AS(#__VA_ARGS__, __VA_ARGS__)","","#define DOCTEST_TEST_CASE_TEMPLATE_DEFINE_IMPL(dec, T, iter, func) \\"," template \u003ctypename T\u003e \\"," static void func(); \\"," namespace { /* NOLINT */ \\"," template \u003ctypename Tuple\u003e \\"," struct iter; \\"," template \u003ctypename Type, typename... Rest\u003e \\"," struct iter\u003cstd::tuple\u003cType, Rest...\u003e\u003e \\"," { \\"," iter(const char* file, unsigned line, int index) { \\"," doctest::detail::regTest(doctest::detail::TestCase(func\u003cType\u003e, file, line, \\"," doctest_detail_test_suite_ns::getCurrentTestSuite(), \\"," doctest::toString\u003cType\u003e(), \\"," int(line) * 1000 + index) \\"," * dec); \\"," iter\u003cstd::tuple\u003cRest...\u003e\u003e(file, line, index + 1); \\"," } \\"," }; \\"," template \u003c\u003e \\"," struct iter\u003cstd::tuple\u003c\u003e\u003e \\"," { \\"," iter(const char*, unsigned, int) {} \\"," }; \\"," } \\"," template \u003ctypename T\u003e \\"," static void func()","","#define DOCTEST_TEST_CASE_TEMPLATE_DEFINE(dec, T, id) \\"," DOCTEST_TEST_CASE_TEMPLATE_DEFINE_IMPL(dec, T, DOCTEST_CAT(id, ITERATOR), \\"," DOCTEST_ANONYMOUS(DOCTEST_ANON_TMP_))","","#define DOCTEST_TEST_CASE_TEMPLATE_INSTANTIATE_IMPL(id, anon, ...) \\"," DOCTEST_GLOBAL_NO_WARNINGS(DOCTEST_CAT(anon, DUMMY), /* NOLINT(cert-err58-cpp, fuchsia-statically-constructed-objects) */ \\"," doctest::detail::instantiationHelper( \\"," DOCTEST_CAT(id, ITERATOR)\u003c__VA_ARGS__\u003e(__FILE__, __LINE__, 0)))","","#define DOCTEST_TEST_CASE_TEMPLATE_INVOKE(id, ...) \\"," DOCTEST_TEST_CASE_TEMPLATE_INSTANTIATE_IMPL(id, DOCTEST_ANONYMOUS(DOCTEST_ANON_TMP_), std::tuple\u003c__VA_ARGS__\u003e) \\"," static_assert(true, \"\")","","#define DOCTEST_TEST_CASE_TEMPLATE_APPLY(id, ...) \\"," DOCTEST_TEST_CASE_TEMPLATE_INSTANTIATE_IMPL(id, DOCTEST_ANONYMOUS(DOCTEST_ANON_TMP_), __VA_ARGS__) \\"," static_assert(true, \"\")","","#define DOCTEST_TEST_CASE_TEMPLATE_IMPL(dec, T, anon, ...) \\"," DOCTEST_TEST_CASE_TEMPLATE_DEFINE_IMPL(dec, T, DOCTEST_CAT(anon, ITERATOR), anon); \\"," DOCTEST_TEST_CASE_TEMPLATE_INSTANTIATE_IMPL(anon, anon, std::tuple\u003c__VA_ARGS__\u003e) \\"," template \u003ctypename T\u003e \\"," static void anon()","","#define DOCTEST_TEST_CASE_TEMPLATE(dec, T, ...) \\"," DOCTEST_TEST_CASE_TEMPLATE_IMPL(dec, T, DOCTEST_ANONYMOUS(DOCTEST_ANON_TMP_), __VA_ARGS__)","","// for subcases","#define DOCTEST_SUBCASE(name) \\"," if(const doctest::detail::Subcase \u0026 DOCTEST_ANONYMOUS(DOCTEST_ANON_SUBCASE_) DOCTEST_UNUSED = \\"," doctest::detail::Subcase(name, __FILE__, __LINE__))","","// for grouping tests in test suites by using code blocks","#define DOCTEST_TEST_SUITE_IMPL(decorators, ns_name) \\"," namespace ns_name { namespace doctest_detail_test_suite_ns { \\"," static DOCTEST_NOINLINE doctest::detail::TestSuite\u0026 getCurrentTestSuite() noexcept { \\"," DOCTEST_MSVC_SUPPRESS_WARNING_WITH_PUSH(4640) \\"," DOCTEST_CLANG_SUPPRESS_WARNING_WITH_PUSH(\"-Wexit-time-destructors\") \\"," DOCTEST_GCC_SUPPRESS_WARNING_WITH_PUSH(\"-Wmissing-field-initializers\") \\"," static doctest::detail::TestSuite data{}; \\"," static bool inited = false; \\"," DOCTEST_MSVC_SUPPRESS_WARNING_POP \\"," DOCTEST_CLANG_SUPPRESS_WARNING_POP \\"," DOCTEST_GCC_SUPPRESS_WARNING_POP \\"," if(!inited) { \\"," data* decorators; \\"," inited = true; \\"," } \\"," return data; \\"," } \\"," } \\"," } \\"," namespace ns_name","","#define DOCTEST_TEST_SUITE(decorators) \\"," DOCTEST_TEST_SUITE_IMPL(decorators, DOCTEST_ANONYMOUS(DOCTEST_ANON_SUITE_))","","// for starting a testsuite block","#define DOCTEST_TEST_SUITE_BEGIN(decorators) \\"," DOCTEST_GLOBAL_NO_WARNINGS(DOCTEST_ANONYMOUS(DOCTEST_ANON_VAR_), /* NOLINT(cert-err58-cpp) */ \\"," doctest::detail::setTestSuite(doctest::detail::TestSuite() * decorators)) \\"," static_assert(true, \"\")","","// for ending a testsuite block","#define DOCTEST_TEST_SUITE_END \\"," DOCTEST_GLOBAL_NO_WARNINGS(DOCTEST_ANONYMOUS(DOCTEST_ANON_VAR_), /* NOLINT(cert-err58-cpp) */ \\"," doctest::detail::setTestSuite(doctest::detail::TestSuite() * \"\")) \\"," using DOCTEST_ANONYMOUS(DOCTEST_ANON_FOR_SEMICOLON_) = int","","// for registering exception translators","#define DOCTEST_REGISTER_EXCEPTION_TRANSLATOR_IMPL(translatorName, signature) \\"," inline doctest::String translatorName(signature); \\"," DOCTEST_GLOBAL_NO_WARNINGS(DOCTEST_ANONYMOUS(DOCTEST_ANON_TRANSLATOR_), /* NOLINT(cert-err58-cpp) */ \\"," doctest::registerExceptionTranslator(translatorName)) \\"," doctest::String translatorName(signature)","","#define DOCTEST_REGISTER_EXCEPTION_TRANSLATOR(signature) \\"," DOCTEST_REGISTER_EXCEPTION_TRANSLATOR_IMPL(DOCTEST_ANONYMOUS(DOCTEST_ANON_TRANSLATOR_), \\"," signature)","","// for registering reporters","#define DOCTEST_REGISTER_REPORTER(name, priority, reporter) \\"," DOCTEST_GLOBAL_NO_WARNINGS(DOCTEST_ANONYMOUS(DOCTEST_ANON_REPORTER_), /* NOLINT(cert-err58-cpp) */ \\"," doctest::registerReporter\u003creporter\u003e(name, priority, true)) \\"," static_assert(true, \"\")","","// for registering listeners","#define DOCTEST_REGISTER_LISTENER(name, priority, reporter) \\"," DOCTEST_GLOBAL_NO_WARNINGS(DOCTEST_ANONYMOUS(DOCTEST_ANON_REPORTER_), /* NOLINT(cert-err58-cpp) */ \\"," doctest::registerReporter\u003creporter\u003e(name, priority, false)) \\"," static_assert(true, \"\")","","// clang-format off","// for logging - disabling formatting because it's important to have these on 2 separate lines - see PR #557","#define DOCTEST_INFO(...) \\"," DOCTEST_INFO_IMPL(DOCTEST_ANONYMOUS(DOCTEST_CAPTURE_), \\"," DOCTEST_ANONYMOUS(DOCTEST_CAPTURE_OTHER_), \\"," __VA_ARGS__)","// clang-format on","","#define DOCTEST_INFO_IMPL(mb_name, s_name, ...) \\"," auto DOCTEST_ANONYMOUS(DOCTEST_CAPTURE_) = doctest::detail::MakeContextScope( \\"," [\u0026](std::ostream* s_name) { \\"," doctest::detail::MessageBuilder mb_name(__FILE__, __LINE__, doctest::assertType::is_warn); \\"," mb_name.m_stream = s_name; \\"," mb_name * __VA_ARGS__; \\"," })","","#define DOCTEST_CAPTURE(x) DOCTEST_INFO(#x \" := \", x)","","#define DOCTEST_ADD_AT_IMPL(type, file, line, mb, ...) \\"," DOCTEST_FUNC_SCOPE_BEGIN { \\"," doctest::detail::MessageBuilder mb(file, line, doctest::assertType::type); \\"," mb * __VA_ARGS__; \\"," if(mb.log()) \\"," DOCTEST_BREAK_INTO_DEBUGGER(); \\"," mb.react(); \\"," } DOCTEST_FUNC_SCOPE_END","","// clang-format off","#define DOCTEST_ADD_MESSAGE_AT(file, line, ...) DOCTEST_ADD_AT_IMPL(is_warn, file, line, DOCTEST_ANONYMOUS(DOCTEST_MESSAGE_), __VA_ARGS__)","#define DOCTEST_ADD_FAIL_CHECK_AT(file, line, ...) DOCTEST_ADD_AT_IMPL(is_check, file, line, DOCTEST_ANONYMOUS(DOCTEST_MESSAGE_), __VA_ARGS__)","#define DOCTEST_ADD_FAIL_AT(file, line, ...) DOCTEST_ADD_AT_IMPL(is_require, file, line, DOCTEST_ANONYMOUS(DOCTEST_MESSAGE_), __VA_ARGS__)","// clang-format on","","#define DOCTEST_MESSAGE(...) DOCTEST_ADD_MESSAGE_AT(__FILE__, __LINE__, __VA_ARGS__)","#define DOCTEST_FAIL_CHECK(...) DOCTEST_ADD_FAIL_CHECK_AT(__FILE__, __LINE__, __VA_ARGS__)","#define DOCTEST_FAIL(...) DOCTEST_ADD_FAIL_AT(__FILE__, __LINE__, __VA_ARGS__)","","#define DOCTEST_TO_LVALUE(...) __VA_ARGS__ // Not removed to keep backwards compatibility.","","#ifndef DOCTEST_CONFIG_SUPER_FAST_ASSERTS","","#define DOCTEST_ASSERT_IMPLEMENT_2(assert_type, ...) \\"," DOCTEST_CLANG_SUPPRESS_WARNING_WITH_PUSH(\"-Woverloaded-shift-op-parentheses\") \\"," /* NOLINTNEXTLINE(clang-analyzer-cplusplus.NewDeleteLeaks) */ \\"," doctest::detail::ResultBuilder DOCTEST_RB(doctest::assertType::assert_type, __FILE__, \\"," __LINE__, #__VA_ARGS__); \\"," DOCTEST_WRAP_IN_TRY(DOCTEST_RB.setResult( \\"," doctest::detail::ExpressionDecomposer(doctest::assertType::assert_type) \\"," \u003c\u003c __VA_ARGS__)) /* NOLINTNEXTLINE(clang-analyzer-cplusplus.NewDeleteLeaks) */ \\"," DOCTEST_ASSERT_LOG_REACT_RETURN(DOCTEST_RB) \\"," DOCTEST_CLANG_SUPPRESS_WARNING_POP","","#define DOCTEST_ASSERT_IMPLEMENT_1(assert_type, ...) \\"," DOCTEST_FUNC_SCOPE_BEGIN { \\"," DOCTEST_ASSERT_IMPLEMENT_2(assert_type, __VA_ARGS__); \\"," } DOCTEST_FUNC_SCOPE_END // NOLINT(clang-analyzer-cplusplus.NewDeleteLeaks)","","#define DOCTEST_BINARY_ASSERT(assert_type, comp, ...) \\"," DOCTEST_FUNC_SCOPE_BEGIN { \\"," doctest::detail::ResultBuilder DOCTEST_RB(doctest::assertType::assert_type, __FILE__, \\"," __LINE__, #__VA_ARGS__); \\"," DOCTEST_WRAP_IN_TRY( \\"," DOCTEST_RB.binary_assert\u003cdoctest::detail::binaryAssertComparison::comp\u003e( \\"," __VA_ARGS__)) \\"," DOCTEST_ASSERT_LOG_REACT_RETURN(DOCTEST_RB); \\"," } DOCTEST_FUNC_SCOPE_END","","#define DOCTEST_UNARY_ASSERT(assert_type, ...) \\"," DOCTEST_FUNC_SCOPE_BEGIN { \\"," doctest::detail::ResultBuilder DOCTEST_RB(doctest::assertType::assert_type, __FILE__, \\"," __LINE__, #__VA_ARGS__); \\"," DOCTEST_WRAP_IN_TRY(DOCTEST_RB.unary_assert(__VA_ARGS__)) \\"," DOCTEST_ASSERT_LOG_REACT_RETURN(DOCTEST_RB); \\"," } DOCTEST_FUNC_SCOPE_END","","#else // DOCTEST_CONFIG_SUPER_FAST_ASSERTS","","// necessary for \u003cASSERT\u003e_MESSAGE","#define DOCTEST_ASSERT_IMPLEMENT_2 DOCTEST_ASSERT_IMPLEMENT_1","","#define DOCTEST_ASSERT_IMPLEMENT_1(assert_type, ...) \\"," DOCTEST_CLANG_SUPPRESS_WARNING_WITH_PUSH(\"-Woverloaded-shift-op-parentheses\") \\"," doctest::detail::decomp_assert( \\"," doctest::assertType::assert_type, __FILE__, __LINE__, #__VA_ARGS__, \\"," doctest::detail::ExpressionDecomposer(doctest::assertType::assert_type) \\"," \u003c\u003c __VA_ARGS__) DOCTEST_CLANG_SUPPRESS_WARNING_POP","","#define DOCTEST_BINARY_ASSERT(assert_type, comparison, ...) \\"," doctest::detail::binary_assert\u003cdoctest::detail::binaryAssertComparison::comparison\u003e( \\"," doctest::assertType::assert_type, __FILE__, __LINE__, #__VA_ARGS__, __VA_ARGS__)","","#define DOCTEST_UNARY_ASSERT(assert_type, ...) \\"," doctest::detail::unary_assert(doctest::assertType::assert_type, __FILE__, __LINE__, \\"," #__VA_ARGS__, __VA_ARGS__)","","#endif // DOCTEST_CONFIG_SUPER_FAST_ASSERTS","","#define DOCTEST_WARN(...) DOCTEST_ASSERT_IMPLEMENT_1(DT_WARN, __VA_ARGS__)","#define DOCTEST_CHECK(...) DOCTEST_ASSERT_IMPLEMENT_1(DT_CHECK, __VA_ARGS__)","#define DOCTEST_REQUIRE(...) DOCTEST_ASSERT_IMPLEMENT_1(DT_REQUIRE, __VA_ARGS__)","#define DOCTEST_WARN_FALSE(...) DOCTEST_ASSERT_IMPLEMENT_1(DT_WARN_FALSE, __VA_ARGS__)","#define DOCTEST_CHECK_FALSE(...) DOCTEST_ASSERT_IMPLEMENT_1(DT_CHECK_FALSE, __VA_ARGS__)","#define DOCTEST_REQUIRE_FALSE(...) DOCTEST_ASSERT_IMPLEMENT_1(DT_REQUIRE_FALSE, __VA_ARGS__)","","// clang-format off","#define DOCTEST_WARN_MESSAGE(cond, ...) DOCTEST_FUNC_SCOPE_BEGIN { DOCTEST_INFO(__VA_ARGS__); DOCTEST_ASSERT_IMPLEMENT_2(DT_WARN, cond); } DOCTEST_FUNC_SCOPE_END","#define DOCTEST_CHECK_MESSAGE(cond, ...) DOCTEST_FUNC_SCOPE_BEGIN { DOCTEST_INFO(__VA_ARGS__); DOCTEST_ASSERT_IMPLEMENT_2(DT_CHECK, cond); } DOCTEST_FUNC_SCOPE_END","#define DOCTEST_REQUIRE_MESSAGE(cond, ...) DOCTEST_FUNC_SCOPE_BEGIN { DOCTEST_INFO(__VA_ARGS__); DOCTEST_ASSERT_IMPLEMENT_2(DT_REQUIRE, cond); } DOCTEST_FUNC_SCOPE_END","#define DOCTEST_WARN_FALSE_MESSAGE(cond, ...) DOCTEST_FUNC_SCOPE_BEGIN { DOCTEST_INFO(__VA_ARGS__); DOCTEST_ASSERT_IMPLEMENT_2(DT_WARN_FALSE, cond); } DOCTEST_FUNC_SCOPE_END","#define DOCTEST_CHECK_FALSE_MESSAGE(cond, ...) DOCTEST_FUNC_SCOPE_BEGIN { DOCTEST_INFO(__VA_ARGS__); DOCTEST_ASSERT_IMPLEMENT_2(DT_CHECK_FALSE, cond); } DOCTEST_FUNC_SCOPE_END","#define DOCTEST_REQUIRE_FALSE_MESSAGE(cond, ...) DOCTEST_FUNC_SCOPE_BEGIN { DOCTEST_INFO(__VA_ARGS__); DOCTEST_ASSERT_IMPLEMENT_2(DT_REQUIRE_FALSE, cond); } DOCTEST_FUNC_SCOPE_END","// clang-format on","","#define DOCTEST_WARN_EQ(...) DOCTEST_BINARY_ASSERT(DT_WARN_EQ, eq, __VA_ARGS__)","#define DOCTEST_CHECK_EQ(...) DOCTEST_BINARY_ASSERT(DT_CHECK_EQ, eq, __VA_ARGS__)","#define DOCTEST_REQUIRE_EQ(...) DOCTEST_BINARY_ASSERT(DT_REQUIRE_EQ, eq, __VA_ARGS__)","#define DOCTEST_WARN_NE(...) DOCTEST_BINARY_ASSERT(DT_WARN_NE, ne, __VA_ARGS__)","#define DOCTEST_CHECK_NE(...) DOCTEST_BINARY_ASSERT(DT_CHECK_NE, ne, __VA_ARGS__)","#define DOCTEST_REQUIRE_NE(...) DOCTEST_BINARY_ASSERT(DT_REQUIRE_NE, ne, __VA_ARGS__)","#define DOCTEST_WARN_GT(...) DOCTEST_BINARY_ASSERT(DT_WARN_GT, gt, __VA_ARGS__)","#define DOCTEST_CHECK_GT(...) DOCTEST_BINARY_ASSERT(DT_CHECK_GT, gt, __VA_ARGS__)","#define DOCTEST_REQUIRE_GT(...) DOCTEST_BINARY_ASSERT(DT_REQUIRE_GT, gt, __VA_ARGS__)","#define DOCTEST_WARN_LT(...) DOCTEST_BINARY_ASSERT(DT_WARN_LT, lt, __VA_ARGS__)","#define DOCTEST_CHECK_LT(...) DOCTEST_BINARY_ASSERT(DT_CHECK_LT, lt, __VA_ARGS__)","#define DOCTEST_REQUIRE_LT(...) DOCTEST_BINARY_ASSERT(DT_REQUIRE_LT, lt, __VA_ARGS__)","#define DOCTEST_WARN_GE(...) DOCTEST_BINARY_ASSERT(DT_WARN_GE, ge, __VA_ARGS__)","#define DOCTEST_CHECK_GE(...) DOCTEST_BINARY_ASSERT(DT_CHECK_GE, ge, __VA_ARGS__)","#define DOCTEST_REQUIRE_GE(...) DOCTEST_BINARY_ASSERT(DT_REQUIRE_GE, ge, __VA_ARGS__)","#define DOCTEST_WARN_LE(...) DOCTEST_BINARY_ASSERT(DT_WARN_LE, le, __VA_ARGS__)","#define DOCTEST_CHECK_LE(...) DOCTEST_BINARY_ASSERT(DT_CHECK_LE, le, __VA_ARGS__)","#define DOCTEST_REQUIRE_LE(...) DOCTEST_BINARY_ASSERT(DT_REQUIRE_LE, le, __VA_ARGS__)","","#define DOCTEST_WARN_UNARY(...) DOCTEST_UNARY_ASSERT(DT_WARN_UNARY, __VA_ARGS__)","#define DOCTEST_CHECK_UNARY(...) DOCTEST_UNARY_ASSERT(DT_CHECK_UNARY, __VA_ARGS__)","#define DOCTEST_REQUIRE_UNARY(...) DOCTEST_UNARY_ASSERT(DT_REQUIRE_UNARY, __VA_ARGS__)","#define DOCTEST_WARN_UNARY_FALSE(...) DOCTEST_UNARY_ASSERT(DT_WARN_UNARY_FALSE, __VA_ARGS__)","#define DOCTEST_CHECK_UNARY_FALSE(...) DOCTEST_UNARY_ASSERT(DT_CHECK_UNARY_FALSE, __VA_ARGS__)","#define DOCTEST_REQUIRE_UNARY_FALSE(...) DOCTEST_UNARY_ASSERT(DT_REQUIRE_UNARY_FALSE, __VA_ARGS__)","","#ifndef DOCTEST_CONFIG_NO_EXCEPTIONS","","#define DOCTEST_ASSERT_THROWS_AS(expr, assert_type, message, ...) \\"," DOCTEST_FUNC_SCOPE_BEGIN { \\"," if(!doctest::getContextOptions()-\u003eno_throw) { \\"," doctest::detail::ResultBuilder DOCTEST_RB(doctest::assertType::assert_type, __FILE__, \\"," __LINE__, #expr, #__VA_ARGS__, message); \\"," try { \\"," DOCTEST_CAST_TO_VOID(expr) \\"," } catch(const typename doctest::detail::types::remove_const\u003c \\"," typename doctest::detail::types::remove_reference\u003c__VA_ARGS__\u003e::type\u003e::type\u0026) {\\"," DOCTEST_RB.translateException(); \\"," DOCTEST_RB.m_threw_as = true; \\"," } catch(...) { DOCTEST_RB.translateException(); } \\"," DOCTEST_ASSERT_LOG_REACT_RETURN(DOCTEST_RB); \\"," } else { /* NOLINT(*-else-after-return) */ \\"," DOCTEST_FUNC_SCOPE_RET(false); \\"," } \\"," } DOCTEST_FUNC_SCOPE_END","","#define DOCTEST_ASSERT_THROWS_WITH(expr, expr_str, assert_type, ...) \\"," DOCTEST_FUNC_SCOPE_BEGIN { \\"," if(!doctest::getContextOptions()-\u003eno_throw) { \\"," doctest::detail::ResultBuilder DOCTEST_RB(doctest::assertType::assert_type, __FILE__, \\"," __LINE__, expr_str, \"\", __VA_ARGS__); \\"," try { \\"," DOCTEST_CAST_TO_VOID(expr) \\"," } catch(...) { DOCTEST_RB.translateException(); } \\"," DOCTEST_ASSERT_LOG_REACT_RETURN(DOCTEST_RB); \\"," } else { /* NOLINT(*-else-after-return) */ \\"," DOCTEST_FUNC_SCOPE_RET(false); \\"," } \\"," } DOCTEST_FUNC_SCOPE_END","","#define DOCTEST_ASSERT_NOTHROW(assert_type, ...) \\"," DOCTEST_FUNC_SCOPE_BEGIN { \\"," doctest::detail::ResultBuilder DOCTEST_RB(doctest::assertType::assert_type, __FILE__, \\"," __LINE__, #__VA_ARGS__); \\"," try { \\"," DOCTEST_CAST_TO_VOID(__VA_ARGS__) \\"," } catch(...) { DOCTEST_RB.translateException(); } \\"," DOCTEST_ASSERT_LOG_REACT_RETURN(DOCTEST_RB); \\"," } DOCTEST_FUNC_SCOPE_END","","// clang-format off","#define DOCTEST_WARN_THROWS(...) DOCTEST_ASSERT_THROWS_WITH((__VA_ARGS__), #__VA_ARGS__, DT_WARN_THROWS, \"\")","#define DOCTEST_CHECK_THROWS(...) DOCTEST_ASSERT_THROWS_WITH((__VA_ARGS__), #__VA_ARGS__, DT_CHECK_THROWS, \"\")","#define DOCTEST_REQUIRE_THROWS(...) DOCTEST_ASSERT_THROWS_WITH((__VA_ARGS__), #__VA_ARGS__, DT_REQUIRE_THROWS, \"\")","","#define DOCTEST_WARN_THROWS_AS(expr, ...) DOCTEST_ASSERT_THROWS_AS(expr, DT_WARN_THROWS_AS, \"\", __VA_ARGS__)","#define DOCTEST_CHECK_THROWS_AS(expr, ...) DOCTEST_ASSERT_THROWS_AS(expr, DT_CHECK_THROWS_AS, \"\", __VA_ARGS__)","#define DOCTEST_REQUIRE_THROWS_AS(expr, ...) DOCTEST_ASSERT_THROWS_AS(expr, DT_REQUIRE_THROWS_AS, \"\", __VA_ARGS__)","","#define DOCTEST_WARN_THROWS_WITH(expr, ...) DOCTEST_ASSERT_THROWS_WITH(expr, #expr, DT_WARN_THROWS_WITH, __VA_ARGS__)","#define DOCTEST_CHECK_THROWS_WITH(expr, ...) DOCTEST_ASSERT_THROWS_WITH(expr, #expr, DT_CHECK_THROWS_WITH, __VA_ARGS__)","#define DOCTEST_REQUIRE_THROWS_WITH(expr, ...) DOCTEST_ASSERT_THROWS_WITH(expr, #expr, DT_REQUIRE_THROWS_WITH, __VA_ARGS__)","","#define DOCTEST_WARN_THROWS_WITH_AS(expr, message, ...) DOCTEST_ASSERT_THROWS_AS(expr, DT_WARN_THROWS_WITH_AS, message, __VA_ARGS__)","#define DOCTEST_CHECK_THROWS_WITH_AS(expr, message, ...) DOCTEST_ASSERT_THROWS_AS(expr, DT_CHECK_THROWS_WITH_AS, message, __VA_ARGS__)","#define DOCTEST_REQUIRE_THROWS_WITH_AS(expr, message, ...) DOCTEST_ASSERT_THROWS_AS(expr, DT_REQUIRE_THROWS_WITH_AS, message, __VA_ARGS__)","","#define DOCTEST_WARN_NOTHROW(...) DOCTEST_ASSERT_NOTHROW(DT_WARN_NOTHROW, __VA_ARGS__)","#define DOCTEST_CHECK_NOTHROW(...) DOCTEST_ASSERT_NOTHROW(DT_CHECK_NOTHROW, __VA_ARGS__)","#define DOCTEST_REQUIRE_NOTHROW(...) DOCTEST_ASSERT_NOTHROW(DT_REQUIRE_NOTHROW, __VA_ARGS__)","","#define DOCTEST_WARN_THROWS_MESSAGE(expr, ...) DOCTEST_FUNC_SCOPE_BEGIN { DOCTEST_INFO(__VA_ARGS__); DOCTEST_WARN_THROWS(expr); } DOCTEST_FUNC_SCOPE_END","#define DOCTEST_CHECK_THROWS_MESSAGE(expr, ...) DOCTEST_FUNC_SCOPE_BEGIN { DOCTEST_INFO(__VA_ARGS__); DOCTEST_CHECK_THROWS(expr); } DOCTEST_FUNC_SCOPE_END","#define DOCTEST_REQUIRE_THROWS_MESSAGE(expr, ...) DOCTEST_FUNC_SCOPE_BEGIN { DOCTEST_INFO(__VA_ARGS__); DOCTEST_REQUIRE_THROWS(expr); } DOCTEST_FUNC_SCOPE_END","#define DOCTEST_WARN_THROWS_AS_MESSAGE(expr, ex, ...) DOCTEST_FUNC_SCOPE_BEGIN { DOCTEST_INFO(__VA_ARGS__); DOCTEST_WARN_THROWS_AS(expr, ex); } DOCTEST_FUNC_SCOPE_END","#define DOCTEST_CHECK_THROWS_AS_MESSAGE(expr, ex, ...) DOCTEST_FUNC_SCOPE_BEGIN { DOCTEST_INFO(__VA_ARGS__); DOCTEST_CHECK_THROWS_AS(expr, ex); } DOCTEST_FUNC_SCOPE_END","#define DOCTEST_REQUIRE_THROWS_AS_MESSAGE(expr, ex, ...) DOCTEST_FUNC_SCOPE_BEGIN { DOCTEST_INFO(__VA_ARGS__); DOCTEST_REQUIRE_THROWS_AS(expr, ex); } DOCTEST_FUNC_SCOPE_END","#define DOCTEST_WARN_THROWS_WITH_MESSAGE(expr, with, ...) DOCTEST_FUNC_SCOPE_BEGIN { DOCTEST_INFO(__VA_ARGS__); DOCTEST_WARN_THROWS_WITH(expr, with); } DOCTEST_FUNC_SCOPE_END","#define DOCTEST_CHECK_THROWS_WITH_MESSAGE(expr, with, ...) DOCTEST_FUNC_SCOPE_BEGIN { DOCTEST_INFO(__VA_ARGS__); DOCTEST_CHECK_THROWS_WITH(expr, with); } DOCTEST_FUNC_SCOPE_END","#define DOCTEST_REQUIRE_THROWS_WITH_MESSAGE(expr, with, ...) DOCTEST_FUNC_SCOPE_BEGIN { DOCTEST_INFO(__VA_ARGS__); DOCTEST_REQUIRE_THROWS_WITH(expr, with); } DOCTEST_FUNC_SCOPE_END","#define DOCTEST_WARN_THROWS_WITH_AS_MESSAGE(expr, with, ex, ...) DOCTEST_FUNC_SCOPE_BEGIN { DOCTEST_INFO(__VA_ARGS__); DOCTEST_WARN_THROWS_WITH_AS(expr, with, ex); } DOCTEST_FUNC_SCOPE_END","#define DOCTEST_CHECK_THROWS_WITH_AS_MESSAGE(expr, with, ex, ...) DOCTEST_FUNC_SCOPE_BEGIN { DOCTEST_INFO(__VA_ARGS__); DOCTEST_CHECK_THROWS_WITH_AS(expr, with, ex); } DOCTEST_FUNC_SCOPE_END","#define DOCTEST_REQUIRE_THROWS_WITH_AS_MESSAGE(expr, with, ex, ...) DOCTEST_FUNC_SCOPE_BEGIN { DOCTEST_INFO(__VA_ARGS__); DOCTEST_REQUIRE_THROWS_WITH_AS(expr, with, ex); } DOCTEST_FUNC_SCOPE_END","#define DOCTEST_WARN_NOTHROW_MESSAGE(expr, ...) DOCTEST_FUNC_SCOPE_BEGIN { DOCTEST_INFO(__VA_ARGS__); DOCTEST_WARN_NOTHROW(expr); } DOCTEST_FUNC_SCOPE_END","#define DOCTEST_CHECK_NOTHROW_MESSAGE(expr, ...) DOCTEST_FUNC_SCOPE_BEGIN { DOCTEST_INFO(__VA_ARGS__); DOCTEST_CHECK_NOTHROW(expr); } DOCTEST_FUNC_SCOPE_END","#define DOCTEST_REQUIRE_NOTHROW_MESSAGE(expr, ...) DOCTEST_FUNC_SCOPE_BEGIN { DOCTEST_INFO(__VA_ARGS__); DOCTEST_REQUIRE_NOTHROW(expr); } DOCTEST_FUNC_SCOPE_END","// clang-format on","","#endif // DOCTEST_CONFIG_NO_EXCEPTIONS","","// =================================================================================================","// == WHAT FOLLOWS IS VERSIONS OF THE MACROS THAT DO NOT DO ANY REGISTERING! ==","// == THIS CAN BE ENABLED BY DEFINING DOCTEST_CONFIG_DISABLE GLOBALLY! ==","// =================================================================================================","#else // DOCTEST_CONFIG_DISABLE","","#define DOCTEST_IMPLEMENT_FIXTURE(der, base, func, name) \\"," namespace /* NOLINT */ { \\"," template \u003ctypename DOCTEST_UNUSED_TEMPLATE_TYPE\u003e \\"," struct der : public base \\"," { void f(); }; \\"," } \\"," template \u003ctypename DOCTEST_UNUSED_TEMPLATE_TYPE\u003e \\"," inline void der\u003cDOCTEST_UNUSED_TEMPLATE_TYPE\u003e::f()","","#define DOCTEST_CREATE_AND_REGISTER_FUNCTION(f, name) \\"," template \u003ctypename DOCTEST_UNUSED_TEMPLATE_TYPE\u003e \\"," static inline void f()","","// for registering tests","#define DOCTEST_TEST_CASE(name) \\"," DOCTEST_CREATE_AND_REGISTER_FUNCTION(DOCTEST_ANONYMOUS(DOCTEST_ANON_FUNC_), name)","","// for registering tests in classes","#define DOCTEST_TEST_CASE_CLASS(name) \\"," DOCTEST_CREATE_AND_REGISTER_FUNCTION(DOCTEST_ANONYMOUS(DOCTEST_ANON_FUNC_), name)","","// for registering tests with a fixture","#define DOCTEST_TEST_CASE_FIXTURE(x, name) \\"," DOCTEST_IMPLEMENT_FIXTURE(DOCTEST_ANONYMOUS(DOCTEST_ANON_CLASS_), x, \\"," DOCTEST_ANONYMOUS(DOCTEST_ANON_FUNC_), name)","","// for converting types to strings without the \u003ctypeinfo\u003e header and demangling","#define DOCTEST_TYPE_TO_STRING_AS(str, ...) static_assert(true, \"\")","#define DOCTEST_TYPE_TO_STRING(...) static_assert(true, \"\")","","// for typed tests","#define DOCTEST_TEST_CASE_TEMPLATE(name, type, ...) \\"," template \u003ctypename type\u003e \\"," inline void DOCTEST_ANONYMOUS(DOCTEST_ANON_TMP_)()","","#define DOCTEST_TEST_CASE_TEMPLATE_DEFINE(name, type, id) \\"," template \u003ctypename type\u003e \\"," inline void DOCTEST_ANONYMOUS(DOCTEST_ANON_TMP_)()","","#define DOCTEST_TEST_CASE_TEMPLATE_INVOKE(id, ...) static_assert(true, \"\")","#define DOCTEST_TEST_CASE_TEMPLATE_APPLY(id, ...) static_assert(true, \"\")","","// for subcases","#define DOCTEST_SUBCASE(name)","","// for a testsuite block","#define DOCTEST_TEST_SUITE(name) namespace // NOLINT","","// for starting a testsuite block","#define DOCTEST_TEST_SUITE_BEGIN(name) static_assert(true, \"\")","","// for ending a testsuite block","#define DOCTEST_TEST_SUITE_END using DOCTEST_ANONYMOUS(DOCTEST_ANON_FOR_SEMICOLON_) = int","","#define DOCTEST_REGISTER_EXCEPTION_TRANSLATOR(signature) \\"," template \u003ctypename DOCTEST_UNUSED_TEMPLATE_TYPE\u003e \\"," static inline doctest::String DOCTEST_ANONYMOUS(DOCTEST_ANON_TRANSLATOR_)(signature)","","#define DOCTEST_REGISTER_REPORTER(name, priority, reporter)","#define DOCTEST_REGISTER_LISTENER(name, priority, reporter)","","#define DOCTEST_INFO(...) (static_cast\u003cvoid\u003e(0))","#define DOCTEST_CAPTURE(x) (static_cast\u003cvoid\u003e(0))","#define DOCTEST_ADD_MESSAGE_AT(file, line, ...) (static_cast\u003cvoid\u003e(0))","#define DOCTEST_ADD_FAIL_CHECK_AT(file, line, ...) (static_cast\u003cvoid\u003e(0))","#define DOCTEST_ADD_FAIL_AT(file, line, ...) (static_cast\u003cvoid\u003e(0))","#define DOCTEST_MESSAGE(...) (static_cast\u003cvoid\u003e(0))","#define DOCTEST_FAIL_CHECK(...) (static_cast\u003cvoid\u003e(0))","#define DOCTEST_FAIL(...) (static_cast\u003cvoid\u003e(0))","","#if defined(DOCTEST_CONFIG_EVALUATE_ASSERTS_EVEN_WHEN_DISABLED) \\"," \u0026\u0026 defined(DOCTEST_CONFIG_ASSERTS_RETURN_VALUES)","","#define DOCTEST_WARN(...) [\u0026] { return __VA_ARGS__; }()","#define DOCTEST_CHECK(...) [\u0026] { return __VA_ARGS__; }()","#define DOCTEST_REQUIRE(...) [\u0026] { return __VA_ARGS__; }()","#define DOCTEST_WARN_FALSE(...) [\u0026] { return !(__VA_ARGS__); }()","#define DOCTEST_CHECK_FALSE(...) [\u0026] { return !(__VA_ARGS__); }()","#define DOCTEST_REQUIRE_FALSE(...) [\u0026] { return !(__VA_ARGS__); }()","","#define DOCTEST_WARN_MESSAGE(cond, ...) [\u0026] { return cond; }()","#define DOCTEST_CHECK_MESSAGE(cond, ...) [\u0026] { return cond; }()","#define DOCTEST_REQUIRE_MESSAGE(cond, ...) [\u0026] { return cond; }()","#define DOCTEST_WARN_FALSE_MESSAGE(cond, ...) [\u0026] { return !(cond); }()","#define DOCTEST_CHECK_FALSE_MESSAGE(cond, ...) [\u0026] { return !(cond); }()","#define DOCTEST_REQUIRE_FALSE_MESSAGE(cond, ...) [\u0026] { return !(cond); }()","","namespace doctest {","namespace detail {","#define DOCTEST_RELATIONAL_OP(name, op) \\"," template \u003ctypename L, typename R\u003e \\"," bool name(const DOCTEST_REF_WRAP(L) lhs, const DOCTEST_REF_WRAP(R) rhs) { return lhs op rhs; }",""," DOCTEST_RELATIONAL_OP(eq, ==)"," DOCTEST_RELATIONAL_OP(ne, !=)"," DOCTEST_RELATIONAL_OP(lt, \u003c)"," DOCTEST_RELATIONAL_OP(gt, \u003e)"," DOCTEST_RELATIONAL_OP(le, \u003c=)"," DOCTEST_RELATIONAL_OP(ge, \u003e=)","} // namespace detail","} // namespace doctest","","#define DOCTEST_WARN_EQ(...) [\u0026] { return doctest::detail::eq(__VA_ARGS__); }()","#define DOCTEST_CHECK_EQ(...) [\u0026] { return doctest::detail::eq(__VA_ARGS__); }()","#define DOCTEST_REQUIRE_EQ(...) [\u0026] { return doctest::detail::eq(__VA_ARGS__); }()","#define DOCTEST_WARN_NE(...) [\u0026] { return doctest::detail::ne(__VA_ARGS__); }()","#define DOCTEST_CHECK_NE(...) [\u0026] { return doctest::detail::ne(__VA_ARGS__); }()","#define DOCTEST_REQUIRE_NE(...) [\u0026] { return doctest::detail::ne(__VA_ARGS__); }()","#define DOCTEST_WARN_LT(...) [\u0026] { return doctest::detail::lt(__VA_ARGS__); }()","#define DOCTEST_CHECK_LT(...) [\u0026] { return doctest::detail::lt(__VA_ARGS__); }()","#define DOCTEST_REQUIRE_LT(...) [\u0026] { return doctest::detail::lt(__VA_ARGS__); }()","#define DOCTEST_WARN_GT(...) [\u0026] { return doctest::detail::gt(__VA_ARGS__); }()","#define DOCTEST_CHECK_GT(...) [\u0026] { return doctest::detail::gt(__VA_ARGS__); }()","#define DOCTEST_REQUIRE_GT(...) [\u0026] { return doctest::detail::gt(__VA_ARGS__); }()","#define DOCTEST_WARN_LE(...) [\u0026] { return doctest::detail::le(__VA_ARGS__); }()","#define DOCTEST_CHECK_LE(...) [\u0026] { return doctest::detail::le(__VA_ARGS__); }()","#define DOCTEST_REQUIRE_LE(...) [\u0026] { return doctest::detail::le(__VA_ARGS__); }()","#define DOCTEST_WARN_GE(...) [\u0026] { return doctest::detail::ge(__VA_ARGS__); }()","#define DOCTEST_CHECK_GE(...) [\u0026] { return doctest::detail::ge(__VA_ARGS__); }()","#define DOCTEST_REQUIRE_GE(...) [\u0026] { return doctest::detail::ge(__VA_ARGS__); }()","#define DOCTEST_WARN_UNARY(...) [\u0026] { return __VA_ARGS__; }()","#define DOCTEST_CHECK_UNARY(...) [\u0026] { return __VA_ARGS__; }()","#define DOCTEST_REQUIRE_UNARY(...) [\u0026] { return __VA_ARGS__; }()","#define DOCTEST_WARN_UNARY_FALSE(...) [\u0026] { return !(__VA_ARGS__); }()","#define DOCTEST_CHECK_UNARY_FALSE(...) [\u0026] { return !(__VA_ARGS__); }()","#define DOCTEST_REQUIRE_UNARY_FALSE(...) [\u0026] { return !(__VA_ARGS__); }()","","#ifndef DOCTEST_CONFIG_NO_EXCEPTIONS","","#define DOCTEST_WARN_THROWS_WITH(expr, with, ...) [] { static_assert(false, \"Exception translation is not available when doctest is disabled.\"); return false; }()","#define DOCTEST_CHECK_THROWS_WITH(expr, with, ...) DOCTEST_WARN_THROWS_WITH(,,)","#define DOCTEST_REQUIRE_THROWS_WITH(expr, with, ...) DOCTEST_WARN_THROWS_WITH(,,)","#define DOCTEST_WARN_THROWS_WITH_AS(expr, with, ex, ...) DOCTEST_WARN_THROWS_WITH(,,)","#define DOCTEST_CHECK_THROWS_WITH_AS(expr, with, ex, ...) DOCTEST_WARN_THROWS_WITH(,,)","#define DOCTEST_REQUIRE_THROWS_WITH_AS(expr, with, ex, ...) DOCTEST_WARN_THROWS_WITH(,,)","","#define DOCTEST_WARN_THROWS_WITH_MESSAGE(expr, with, ...) DOCTEST_WARN_THROWS_WITH(,,)","#define DOCTEST_CHECK_THROWS_WITH_MESSAGE(expr, with, ...) DOCTEST_WARN_THROWS_WITH(,,)","#define DOCTEST_REQUIRE_THROWS_WITH_MESSAGE(expr, with, ...) DOCTEST_WARN_THROWS_WITH(,,)","#define DOCTEST_WARN_THROWS_WITH_AS_MESSAGE(expr, with, ex, ...) DOCTEST_WARN_THROWS_WITH(,,)","#define DOCTEST_CHECK_THROWS_WITH_AS_MESSAGE(expr, with, ex, ...) DOCTEST_WARN_THROWS_WITH(,,)","#define DOCTEST_REQUIRE_THROWS_WITH_AS_MESSAGE(expr, with, ex, ...) DOCTEST_WARN_THROWS_WITH(,,)","","#define DOCTEST_WARN_THROWS(...) [\u0026] { try { __VA_ARGS__; return false; } catch (...) { return true; } }()","#define DOCTEST_CHECK_THROWS(...) [\u0026] { try { __VA_ARGS__; return false; } catch (...) { return true; } }()","#define DOCTEST_REQUIRE_THROWS(...) [\u0026] { try { __VA_ARGS__; return false; } catch (...) { return true; } }()","#define DOCTEST_WARN_THROWS_AS(expr, ...) [\u0026] { try { expr; } catch (__VA_ARGS__) { return true; } catch (...) { } return false; }()","#define DOCTEST_CHECK_THROWS_AS(expr, ...) [\u0026] { try { expr; } catch (__VA_ARGS__) { return true; } catch (...) { } return false; }()","#define DOCTEST_REQUIRE_THROWS_AS(expr, ...) [\u0026] { try { expr; } catch (__VA_ARGS__) { return true; } catch (...) { } return false; }()","#define DOCTEST_WARN_NOTHROW(...) [\u0026] { try { __VA_ARGS__; return true; } catch (...) { return false; } }()","#define DOCTEST_CHECK_NOTHROW(...) [\u0026] { try { __VA_ARGS__; return true; } catch (...) { return false; } }()","#define DOCTEST_REQUIRE_NOTHROW(...) [\u0026] { try { __VA_ARGS__; return true; } catch (...) { return false; } }()","","#define DOCTEST_WARN_THROWS_MESSAGE(expr, ...) [\u0026] { try { __VA_ARGS__; return false; } catch (...) { return true; } }()","#define DOCTEST_CHECK_THROWS_MESSAGE(expr, ...) [\u0026] { try { __VA_ARGS__; return false; } catch (...) { return true; } }()","#define DOCTEST_REQUIRE_THROWS_MESSAGE(expr, ...) [\u0026] { try { __VA_ARGS__; return false; } catch (...) { return true; } }()","#define DOCTEST_WARN_THROWS_AS_MESSAGE(expr, ex, ...) [\u0026] { try { expr; } catch (__VA_ARGS__) { return true; } catch (...) { } return false; }()","#define DOCTEST_CHECK_THROWS_AS_MESSAGE(expr, ex, ...) [\u0026] { try { expr; } catch (__VA_ARGS__) { return true; } catch (...) { } return false; }()","#define DOCTEST_REQUIRE_THROWS_AS_MESSAGE(expr, ex, ...) [\u0026] { try { expr; } catch (__VA_ARGS__) { return true; } catch (...) { } return false; }()","#define DOCTEST_WARN_NOTHROW_MESSAGE(expr, ...) [\u0026] { try { __VA_ARGS__; return true; } catch (...) { return false; } }()","#define DOCTEST_CHECK_NOTHROW_MESSAGE(expr, ...) [\u0026] { try { __VA_ARGS__; return true; } catch (...) { return false; } }()","#define DOCTEST_REQUIRE_NOTHROW_MESSAGE(expr, ...) [\u0026] { try { __VA_ARGS__; return true; } catch (...) { return false; } }()","","#endif // DOCTEST_CONFIG_NO_EXCEPTIONS","","#else // DOCTEST_CONFIG_EVALUATE_ASSERTS_EVEN_WHEN_DISABLED","","#define DOCTEST_WARN(...) DOCTEST_FUNC_EMPTY","#define DOCTEST_CHECK(...) DOCTEST_FUNC_EMPTY","#define DOCTEST_REQUIRE(...) DOCTEST_FUNC_EMPTY","#define DOCTEST_WARN_FALSE(...) DOCTEST_FUNC_EMPTY","#define DOCTEST_CHECK_FALSE(...) DOCTEST_FUNC_EMPTY","#define DOCTEST_REQUIRE_FALSE(...) DOCTEST_FUNC_EMPTY","","#define DOCTEST_WARN_MESSAGE(cond, ...) DOCTEST_FUNC_EMPTY","#define DOCTEST_CHECK_MESSAGE(cond, ...) DOCTEST_FUNC_EMPTY","#define DOCTEST_REQUIRE_MESSAGE(cond, ...) DOCTEST_FUNC_EMPTY","#define DOCTEST_WARN_FALSE_MESSAGE(cond, ...) DOCTEST_FUNC_EMPTY","#define DOCTEST_CHECK_FALSE_MESSAGE(cond, ...) DOCTEST_FUNC_EMPTY","#define DOCTEST_REQUIRE_FALSE_MESSAGE(cond, ...) DOCTEST_FUNC_EMPTY","","#define DOCTEST_WARN_EQ(...) DOCTEST_FUNC_EMPTY","#define DOCTEST_CHECK_EQ(...) DOCTEST_FUNC_EMPTY","#define DOCTEST_REQUIRE_EQ(...) DOCTEST_FUNC_EMPTY","#define DOCTEST_WARN_NE(...) DOCTEST_FUNC_EMPTY","#define DOCTEST_CHECK_NE(...) DOCTEST_FUNC_EMPTY","#define DOCTEST_REQUIRE_NE(...) DOCTEST_FUNC_EMPTY","#define DOCTEST_WARN_GT(...) DOCTEST_FUNC_EMPTY","#define DOCTEST_CHECK_GT(...) DOCTEST_FUNC_EMPTY","#define DOCTEST_REQUIRE_GT(...) DOCTEST_FUNC_EMPTY","#define DOCTEST_WARN_LT(...) DOCTEST_FUNC_EMPTY","#define DOCTEST_CHECK_LT(...) DOCTEST_FUNC_EMPTY","#define DOCTEST_REQUIRE_LT(...) DOCTEST_FUNC_EMPTY","#define DOCTEST_WARN_GE(...) DOCTEST_FUNC_EMPTY","#define DOCTEST_CHECK_GE(...) DOCTEST_FUNC_EMPTY","#define DOCTEST_REQUIRE_GE(...) DOCTEST_FUNC_EMPTY","#define DOCTEST_WARN_LE(...) DOCTEST_FUNC_EMPTY","#define DOCTEST_CHECK_LE(...) DOCTEST_FUNC_EMPTY","#define DOCTEST_REQUIRE_LE(...) DOCTEST_FUNC_EMPTY","","#define DOCTEST_WARN_UNARY(...) DOCTEST_FUNC_EMPTY","#define DOCTEST_CHECK_UNARY(...) DOCTEST_FUNC_EMPTY","#define DOCTEST_REQUIRE_UNARY(...) DOCTEST_FUNC_EMPTY","#define DOCTEST_WARN_UNARY_FALSE(...) DOCTEST_FUNC_EMPTY","#define DOCTEST_CHECK_UNARY_FALSE(...) DOCTEST_FUNC_EMPTY","#define DOCTEST_REQUIRE_UNARY_FALSE(...) DOCTEST_FUNC_EMPTY","","#ifndef DOCTEST_CONFIG_NO_EXCEPTIONS","","#define DOCTEST_WARN_THROWS(...) DOCTEST_FUNC_EMPTY","#define DOCTEST_CHECK_THROWS(...) DOCTEST_FUNC_EMPTY","#define DOCTEST_REQUIRE_THROWS(...) DOCTEST_FUNC_EMPTY","#define DOCTEST_WARN_THROWS_AS(expr, ...) DOCTEST_FUNC_EMPTY","#define DOCTEST_CHECK_THROWS_AS(expr, ...) DOCTEST_FUNC_EMPTY","#define DOCTEST_REQUIRE_THROWS_AS(expr, ...) DOCTEST_FUNC_EMPTY","#define DOCTEST_WARN_THROWS_WITH(expr, ...) DOCTEST_FUNC_EMPTY","#define DOCTEST_CHECK_THROWS_WITH(expr, ...) DOCTEST_FUNC_EMPTY","#define DOCTEST_REQUIRE_THROWS_WITH(expr, ...) DOCTEST_FUNC_EMPTY","#define DOCTEST_WARN_THROWS_WITH_AS(expr, with, ...) DOCTEST_FUNC_EMPTY","#define DOCTEST_CHECK_THROWS_WITH_AS(expr, with, ...) DOCTEST_FUNC_EMPTY","#define DOCTEST_REQUIRE_THROWS_WITH_AS(expr, with, ...) DOCTEST_FUNC_EMPTY","#define DOCTEST_WARN_NOTHROW(...) DOCTEST_FUNC_EMPTY","#define DOCTEST_CHECK_NOTHROW(...) DOCTEST_FUNC_EMPTY","#define DOCTEST_REQUIRE_NOTHROW(...) DOCTEST_FUNC_EMPTY","","#define DOCTEST_WARN_THROWS_MESSAGE(expr, ...) DOCTEST_FUNC_EMPTY","#define DOCTEST_CHECK_THROWS_MESSAGE(expr, ...) DOCTEST_FUNC_EMPTY","#define DOCTEST_REQUIRE_THROWS_MESSAGE(expr, ...) DOCTEST_FUNC_EMPTY","#define DOCTEST_WARN_THROWS_AS_MESSAGE(expr, ex, ...) DOCTEST_FUNC_EMPTY","#define DOCTEST_CHECK_THROWS_AS_MESSAGE(expr, ex, ...) DOCTEST_FUNC_EMPTY","#define DOCTEST_REQUIRE_THROWS_AS_MESSAGE(expr, ex, ...) DOCTEST_FUNC_EMPTY","#define DOCTEST_WARN_THROWS_WITH_MESSAGE(expr, with, ...) DOCTEST_FUNC_EMPTY","#define DOCTEST_CHECK_THROWS_WITH_MESSAGE(expr, with, ...) DOCTEST_FUNC_EMPTY","#define DOCTEST_REQUIRE_THROWS_WITH_MESSAGE(expr, with, ...) DOCTEST_FUNC_EMPTY","#define DOCTEST_WARN_THROWS_WITH_AS_MESSAGE(expr, with, ex, ...) DOCTEST_FUNC_EMPTY","#define DOCTEST_CHECK_THROWS_WITH_AS_MESSAGE(expr, with, ex, ...) DOCTEST_FUNC_EMPTY","#define DOCTEST_REQUIRE_THROWS_WITH_AS_MESSAGE(expr, with, ex, ...) DOCTEST_FUNC_EMPTY","#define DOCTEST_WARN_NOTHROW_MESSAGE(expr, ...) DOCTEST_FUNC_EMPTY","#define DOCTEST_CHECK_NOTHROW_MESSAGE(expr, ...) DOCTEST_FUNC_EMPTY","#define DOCTEST_REQUIRE_NOTHROW_MESSAGE(expr, ...) DOCTEST_FUNC_EMPTY","","#endif // DOCTEST_CONFIG_NO_EXCEPTIONS","","#endif // DOCTEST_CONFIG_EVALUATE_ASSERTS_EVEN_WHEN_DISABLED","","#endif // DOCTEST_CONFIG_DISABLE","","#ifdef DOCTEST_CONFIG_NO_EXCEPTIONS","","#ifdef DOCTEST_CONFIG_NO_EXCEPTIONS_BUT_WITH_ALL_ASSERTS","#define DOCTEST_EXCEPTION_EMPTY_FUNC DOCTEST_FUNC_EMPTY","#else // DOCTEST_CONFIG_NO_EXCEPTIONS_BUT_WITH_ALL_ASSERTS","#define DOCTEST_EXCEPTION_EMPTY_FUNC [] { static_assert(false, \"Exceptions are disabled! \" \\"," \"Use DOCTEST_CONFIG_NO_EXCEPTIONS_BUT_WITH_ALL_ASSERTS if you want to compile with exceptions disabled.\"); return false; }()","","#undef DOCTEST_REQUIRE","#undef DOCTEST_REQUIRE_FALSE","#undef DOCTEST_REQUIRE_MESSAGE","#undef DOCTEST_REQUIRE_FALSE_MESSAGE","#undef DOCTEST_REQUIRE_EQ","#undef DOCTEST_REQUIRE_NE","#undef DOCTEST_REQUIRE_GT","#undef DOCTEST_REQUIRE_LT","#undef DOCTEST_REQUIRE_GE","#undef DOCTEST_REQUIRE_LE","#undef DOCTEST_REQUIRE_UNARY","#undef DOCTEST_REQUIRE_UNARY_FALSE","","#define DOCTEST_REQUIRE DOCTEST_EXCEPTION_EMPTY_FUNC","#define DOCTEST_REQUIRE_FALSE DOCTEST_EXCEPTION_EMPTY_FUNC","#define DOCTEST_REQUIRE_MESSAGE DOCTEST_EXCEPTION_EMPTY_FUNC","#define DOCTEST_REQUIRE_FALSE_MESSAGE DOCTEST_EXCEPTION_EMPTY_FUNC","#define DOCTEST_REQUIRE_EQ DOCTEST_EXCEPTION_EMPTY_FUNC","#define DOCTEST_REQUIRE_NE DOCTEST_EXCEPTION_EMPTY_FUNC","#define DOCTEST_REQUIRE_GT DOCTEST_EXCEPTION_EMPTY_FUNC","#define DOCTEST_REQUIRE_LT DOCTEST_EXCEPTION_EMPTY_FUNC","#define DOCTEST_REQUIRE_GE DOCTEST_EXCEPTION_EMPTY_FUNC","#define DOCTEST_REQUIRE_LE DOCTEST_EXCEPTION_EMPTY_FUNC","#define DOCTEST_REQUIRE_UNARY DOCTEST_EXCEPTION_EMPTY_FUNC","#define DOCTEST_REQUIRE_UNARY_FALSE DOCTEST_EXCEPTION_EMPTY_FUNC","","#endif // DOCTEST_CONFIG_NO_EXCEPTIONS_BUT_WITH_ALL_ASSERTS","","#define DOCTEST_WARN_THROWS(...) DOCTEST_EXCEPTION_EMPTY_FUNC","#define DOCTEST_CHECK_THROWS(...) DOCTEST_EXCEPTION_EMPTY_FUNC","#define DOCTEST_REQUIRE_THROWS(...) DOCTEST_EXCEPTION_EMPTY_FUNC","#define DOCTEST_WARN_THROWS_AS(expr, ...) DOCTEST_EXCEPTION_EMPTY_FUNC","#define DOCTEST_CHECK_THROWS_AS(expr, ...) DOCTEST_EXCEPTION_EMPTY_FUNC","#define DOCTEST_REQUIRE_THROWS_AS(expr, ...) DOCTEST_EXCEPTION_EMPTY_FUNC","#define DOCTEST_WARN_THROWS_WITH(expr, ...) DOCTEST_EXCEPTION_EMPTY_FUNC","#define DOCTEST_CHECK_THROWS_WITH(expr, ...) DOCTEST_EXCEPTION_EMPTY_FUNC","#define DOCTEST_REQUIRE_THROWS_WITH(expr, ...) DOCTEST_EXCEPTION_EMPTY_FUNC","#define DOCTEST_WARN_THROWS_WITH_AS(expr, with, ...) DOCTEST_EXCEPTION_EMPTY_FUNC","#define DOCTEST_CHECK_THROWS_WITH_AS(expr, with, ...) DOCTEST_EXCEPTION_EMPTY_FUNC","#define DOCTEST_REQUIRE_THROWS_WITH_AS(expr, with, ...) DOCTEST_EXCEPTION_EMPTY_FUNC","#define DOCTEST_WARN_NOTHROW(...) DOCTEST_EXCEPTION_EMPTY_FUNC","#define DOCTEST_CHECK_NOTHROW(...) DOCTEST_EXCEPTION_EMPTY_FUNC","#define DOCTEST_REQUIRE_NOTHROW(...) DOCTEST_EXCEPTION_EMPTY_FUNC","","#define DOCTEST_WARN_THROWS_MESSAGE(expr, ...) DOCTEST_EXCEPTION_EMPTY_FUNC","#define DOCTEST_CHECK_THROWS_MESSAGE(expr, ...) DOCTEST_EXCEPTION_EMPTY_FUNC","#define DOCTEST_REQUIRE_THROWS_MESSAGE(expr, ...) DOCTEST_EXCEPTION_EMPTY_FUNC","#define DOCTEST_WARN_THROWS_AS_MESSAGE(expr, ex, ...) DOCTEST_EXCEPTION_EMPTY_FUNC","#define DOCTEST_CHECK_THROWS_AS_MESSAGE(expr, ex, ...) DOCTEST_EXCEPTION_EMPTY_FUNC","#define DOCTEST_REQUIRE_THROWS_AS_MESSAGE(expr, ex, ...) DOCTEST_EXCEPTION_EMPTY_FUNC","#define DOCTEST_WARN_THROWS_WITH_MESSAGE(expr, with, ...) DOCTEST_EXCEPTION_EMPTY_FUNC","#define DOCTEST_CHECK_THROWS_WITH_MESSAGE(expr, with, ...) DOCTEST_EXCEPTION_EMPTY_FUNC","#define DOCTEST_REQUIRE_THROWS_WITH_MESSAGE(expr, with, ...) DOCTEST_EXCEPTION_EMPTY_FUNC","#define DOCTEST_WARN_THROWS_WITH_AS_MESSAGE(expr, with, ex, ...) DOCTEST_EXCEPTION_EMPTY_FUNC","#define DOCTEST_CHECK_THROWS_WITH_AS_MESSAGE(expr, with, ex, ...) DOCTEST_EXCEPTION_EMPTY_FUNC","#define DOCTEST_REQUIRE_THROWS_WITH_AS_MESSAGE(expr, with, ex, ...) DOCTEST_EXCEPTION_EMPTY_FUNC","#define DOCTEST_WARN_NOTHROW_MESSAGE(expr, ...) DOCTEST_EXCEPTION_EMPTY_FUNC","#define DOCTEST_CHECK_NOTHROW_MESSAGE(expr, ...) DOCTEST_EXCEPTION_EMPTY_FUNC","#define DOCTEST_REQUIRE_NOTHROW_MESSAGE(expr, ...) DOCTEST_EXCEPTION_EMPTY_FUNC","","#endif // DOCTEST_CONFIG_NO_EXCEPTIONS","","// clang-format off","// KEPT FOR BACKWARDS COMPATIBILITY - FORWARDING TO THE RIGHT MACROS","#define DOCTEST_FAST_WARN_EQ DOCTEST_WARN_EQ","#define DOCTEST_FAST_CHECK_EQ DOCTEST_CHECK_EQ","#define DOCTEST_FAST_REQUIRE_EQ DOCTEST_REQUIRE_EQ","#define DOCTEST_FAST_WARN_NE DOCTEST_WARN_NE","#define DOCTEST_FAST_CHECK_NE DOCTEST_CHECK_NE","#define DOCTEST_FAST_REQUIRE_NE DOCTEST_REQUIRE_NE","#define DOCTEST_FAST_WARN_GT DOCTEST_WARN_GT","#define DOCTEST_FAST_CHECK_GT DOCTEST_CHECK_GT","#define DOCTEST_FAST_REQUIRE_GT DOCTEST_REQUIRE_GT","#define DOCTEST_FAST_WARN_LT DOCTEST_WARN_LT","#define DOCTEST_FAST_CHECK_LT DOCTEST_CHECK_LT","#define DOCTEST_FAST_REQUIRE_LT DOCTEST_REQUIRE_LT","#define DOCTEST_FAST_WARN_GE DOCTEST_WARN_GE","#define DOCTEST_FAST_CHECK_GE DOCTEST_CHECK_GE","#define DOCTEST_FAST_REQUIRE_GE DOCTEST_REQUIRE_GE","#define DOCTEST_FAST_WARN_LE DOCTEST_WARN_LE","#define DOCTEST_FAST_CHECK_LE DOCTEST_CHECK_LE","#define DOCTEST_FAST_REQUIRE_LE DOCTEST_REQUIRE_LE","","#define DOCTEST_FAST_WARN_UNARY DOCTEST_WARN_UNARY","#define DOCTEST_FAST_CHECK_UNARY DOCTEST_CHECK_UNARY","#define DOCTEST_FAST_REQUIRE_UNARY DOCTEST_REQUIRE_UNARY","#define DOCTEST_FAST_WARN_UNARY_FALSE DOCTEST_WARN_UNARY_FALSE","#define DOCTEST_FAST_CHECK_UNARY_FALSE DOCTEST_CHECK_UNARY_FALSE","#define DOCTEST_FAST_REQUIRE_UNARY_FALSE DOCTEST_REQUIRE_UNARY_FALSE","","#define DOCTEST_TEST_CASE_TEMPLATE_INSTANTIATE(id, ...) DOCTEST_TEST_CASE_TEMPLATE_INVOKE(id,__VA_ARGS__)","// clang-format on","","// BDD style macros","// clang-format off","#define DOCTEST_SCENARIO(name) DOCTEST_TEST_CASE(\" Scenario: \" name)","#define DOCTEST_SCENARIO_CLASS(name) DOCTEST_TEST_CASE_CLASS(\" Scenario: \" name)","#define DOCTEST_SCENARIO_TEMPLATE(name, T, ...) DOCTEST_TEST_CASE_TEMPLATE(\" Scenario: \" name, T, __VA_ARGS__)","#define DOCTEST_SCENARIO_TEMPLATE_DEFINE(name, T, id) DOCTEST_TEST_CASE_TEMPLATE_DEFINE(\" Scenario: \" name, T, id)","","#define DOCTEST_GIVEN(name) DOCTEST_SUBCASE(\" Given: \" name)","#define DOCTEST_WHEN(name) DOCTEST_SUBCASE(\" When: \" name)","#define DOCTEST_AND_WHEN(name) DOCTEST_SUBCASE(\"And when: \" name)","#define DOCTEST_THEN(name) DOCTEST_SUBCASE(\" Then: \" name)","#define DOCTEST_AND_THEN(name) DOCTEST_SUBCASE(\" And: \" name)","// clang-format on","","// == SHORT VERSIONS OF THE MACROS","#ifndef DOCTEST_CONFIG_NO_SHORT_MACRO_NAMES","","#define TEST_CASE(name) DOCTEST_TEST_CASE(name)","#define TEST_CASE_CLASS(name) DOCTEST_TEST_CASE_CLASS(name)","#define TEST_CASE_FIXTURE(x, name) DOCTEST_TEST_CASE_FIXTURE(x, name)","#define TYPE_TO_STRING_AS(str, ...) DOCTEST_TYPE_TO_STRING_AS(str, __VA_ARGS__)","#define TYPE_TO_STRING(...) DOCTEST_TYPE_TO_STRING(__VA_ARGS__)","#define TEST_CASE_TEMPLATE(name, T, ...) DOCTEST_TEST_CASE_TEMPLATE(name, T, __VA_ARGS__)","#define TEST_CASE_TEMPLATE_DEFINE(name, T, id) DOCTEST_TEST_CASE_TEMPLATE_DEFINE(name, T, id)","#define TEST_CASE_TEMPLATE_INVOKE(id, ...) DOCTEST_TEST_CASE_TEMPLATE_INVOKE(id, __VA_ARGS__)","#define TEST_CASE_TEMPLATE_APPLY(id, ...) DOCTEST_TEST_CASE_TEMPLATE_APPLY(id, __VA_ARGS__)","#define SUBCASE(name) DOCTEST_SUBCASE(name)","#define TEST_SUITE(decorators) DOCTEST_TEST_SUITE(decorators)","#define TEST_SUITE_BEGIN(name) DOCTEST_TEST_SUITE_BEGIN(name)","#define TEST_SUITE_END DOCTEST_TEST_SUITE_END","#define REGISTER_EXCEPTION_TRANSLATOR(signature) DOCTEST_REGISTER_EXCEPTION_TRANSLATOR(signature)","#define REGISTER_REPORTER(name, priority, reporter) DOCTEST_REGISTER_REPORTER(name, priority, reporter)","#define REGISTER_LISTENER(name, priority, reporter) DOCTEST_REGISTER_LISTENER(name, priority, reporter)","#define INFO(...) DOCTEST_INFO(__VA_ARGS__)","#define CAPTURE(x) DOCTEST_CAPTURE(x)","#define ADD_MESSAGE_AT(file, line, ...) DOCTEST_ADD_MESSAGE_AT(file, line, __VA_ARGS__)","#define ADD_FAIL_CHECK_AT(file, line, ...) DOCTEST_ADD_FAIL_CHECK_AT(file, line, __VA_ARGS__)","#define ADD_FAIL_AT(file, line, ...) DOCTEST_ADD_FAIL_AT(file, line, __VA_ARGS__)","#define MESSAGE(...) DOCTEST_MESSAGE(__VA_ARGS__)","#define FAIL_CHECK(...) DOCTEST_FAIL_CHECK(__VA_ARGS__)","#define FAIL(...) DOCTEST_FAIL(__VA_ARGS__)","#define TO_LVALUE(...) DOCTEST_TO_LVALUE(__VA_ARGS__)","","#define WARN(...) DOCTEST_WARN(__VA_ARGS__)","#define WARN_FALSE(...) DOCTEST_WARN_FALSE(__VA_ARGS__)","#define WARN_THROWS(...) DOCTEST_WARN_THROWS(__VA_ARGS__)","#define WARN_THROWS_AS(expr, ...) DOCTEST_WARN_THROWS_AS(expr, __VA_ARGS__)","#define WARN_THROWS_WITH(expr, ...) DOCTEST_WARN_THROWS_WITH(expr, __VA_ARGS__)","#define WARN_THROWS_WITH_AS(expr, with, ...) DOCTEST_WARN_THROWS_WITH_AS(expr, with, __VA_ARGS__)","#define WARN_NOTHROW(...) DOCTEST_WARN_NOTHROW(__VA_ARGS__)","#define CHECK(...) DOCTEST_CHECK(__VA_ARGS__)","#define CHECK_FALSE(...) DOCTEST_CHECK_FALSE(__VA_ARGS__)","#define CHECK_THROWS(...) DOCTEST_CHECK_THROWS(__VA_ARGS__)","#define CHECK_THROWS_AS(expr, ...) DOCTEST_CHECK_THROWS_AS(expr, __VA_ARGS__)","#define CHECK_THROWS_WITH(expr, ...) DOCTEST_CHECK_THROWS_WITH(expr, __VA_ARGS__)","#define CHECK_THROWS_WITH_AS(expr, with, ...) DOCTEST_CHECK_THROWS_WITH_AS(expr, with, __VA_ARGS__)","#define CHECK_NOTHROW(...) DOCTEST_CHECK_NOTHROW(__VA_ARGS__)","#define REQUIRE(...) DOCTEST_REQUIRE(__VA_ARGS__)","#define REQUIRE_FALSE(...) DOCTEST_REQUIRE_FALSE(__VA_ARGS__)","#define REQUIRE_THROWS(...) DOCTEST_REQUIRE_THROWS(__VA_ARGS__)","#define REQUIRE_THROWS_AS(expr, ...) DOCTEST_REQUIRE_THROWS_AS(expr, __VA_ARGS__)","#define REQUIRE_THROWS_WITH(expr, ...) DOCTEST_REQUIRE_THROWS_WITH(expr, __VA_ARGS__)","#define REQUIRE_THROWS_WITH_AS(expr, with, ...) DOCTEST_REQUIRE_THROWS_WITH_AS(expr, with, __VA_ARGS__)","#define REQUIRE_NOTHROW(...) DOCTEST_REQUIRE_NOTHROW(__VA_ARGS__)","","#define WARN_MESSAGE(cond, ...) DOCTEST_WARN_MESSAGE(cond, __VA_ARGS__)","#define WARN_FALSE_MESSAGE(cond, ...) DOCTEST_WARN_FALSE_MESSAGE(cond, __VA_ARGS__)","#define WARN_THROWS_MESSAGE(expr, ...) DOCTEST_WARN_THROWS_MESSAGE(expr, __VA_ARGS__)","#define WARN_THROWS_AS_MESSAGE(expr, ex, ...) DOCTEST_WARN_THROWS_AS_MESSAGE(expr, ex, __VA_ARGS__)","#define WARN_THROWS_WITH_MESSAGE(expr, with, ...) DOCTEST_WARN_THROWS_WITH_MESSAGE(expr, with, __VA_ARGS__)","#define WARN_THROWS_WITH_AS_MESSAGE(expr, with, ex, ...) DOCTEST_WARN_THROWS_WITH_AS_MESSAGE(expr, with, ex, __VA_ARGS__)","#define WARN_NOTHROW_MESSAGE(expr, ...) DOCTEST_WARN_NOTHROW_MESSAGE(expr, __VA_ARGS__)","#define CHECK_MESSAGE(cond, ...) DOCTEST_CHECK_MESSAGE(cond, __VA_ARGS__)","#define CHECK_FALSE_MESSAGE(cond, ...) DOCTEST_CHECK_FALSE_MESSAGE(cond, __VA_ARGS__)","#define CHECK_THROWS_MESSAGE(expr, ...) DOCTEST_CHECK_THROWS_MESSAGE(expr, __VA_ARGS__)","#define CHECK_THROWS_AS_MESSAGE(expr, ex, ...) DOCTEST_CHECK_THROWS_AS_MESSAGE(expr, ex, __VA_ARGS__)","#define CHECK_THROWS_WITH_MESSAGE(expr, with, ...) DOCTEST_CHECK_THROWS_WITH_MESSAGE(expr, with, __VA_ARGS__)","#define CHECK_THROWS_WITH_AS_MESSAGE(expr, with, ex, ...) DOCTEST_CHECK_THROWS_WITH_AS_MESSAGE(expr, with, ex, __VA_ARGS__)","#define CHECK_NOTHROW_MESSAGE(expr, ...) DOCTEST_CHECK_NOTHROW_MESSAGE(expr, __VA_ARGS__)","#define REQUIRE_MESSAGE(cond, ...) DOCTEST_REQUIRE_MESSAGE(cond, __VA_ARGS__)","#define REQUIRE_FALSE_MESSAGE(cond, ...) DOCTEST_REQUIRE_FALSE_MESSAGE(cond, __VA_ARGS__)","#define REQUIRE_THROWS_MESSAGE(expr, ...) DOCTEST_REQUIRE_THROWS_MESSAGE(expr, __VA_ARGS__)","#define REQUIRE_THROWS_AS_MESSAGE(expr, ex, ...) DOCTEST_REQUIRE_THROWS_AS_MESSAGE(expr, ex, __VA_ARGS__)","#define REQUIRE_THROWS_WITH_MESSAGE(expr, with, ...) DOCTEST_REQUIRE_THROWS_WITH_MESSAGE(expr, with, __VA_ARGS__)","#define REQUIRE_THROWS_WITH_AS_MESSAGE(expr, with, ex, ...) DOCTEST_REQUIRE_THROWS_WITH_AS_MESSAGE(expr, with, ex, __VA_ARGS__)","#define REQUIRE_NOTHROW_MESSAGE(expr, ...) DOCTEST_REQUIRE_NOTHROW_MESSAGE(expr, __VA_ARGS__)","","#define SCENARIO(name) DOCTEST_SCENARIO(name)","#define SCENARIO_CLASS(name) DOCTEST_SCENARIO_CLASS(name)","#define SCENARIO_TEMPLATE(name, T, ...) DOCTEST_SCENARIO_TEMPLATE(name, T, __VA_ARGS__)","#define SCENARIO_TEMPLATE_DEFINE(name, T, id) DOCTEST_SCENARIO_TEMPLATE_DEFINE(name, T, id)","#define GIVEN(name) DOCTEST_GIVEN(name)","#define WHEN(name) DOCTEST_WHEN(name)","#define AND_WHEN(name) DOCTEST_AND_WHEN(name)","#define THEN(name) DOCTEST_THEN(name)","#define AND_THEN(name) DOCTEST_AND_THEN(name)","","#define WARN_EQ(...) DOCTEST_WARN_EQ(__VA_ARGS__)","#define CHECK_EQ(...) DOCTEST_CHECK_EQ(__VA_ARGS__)","#define REQUIRE_EQ(...) DOCTEST_REQUIRE_EQ(__VA_ARGS__)","#define WARN_NE(...) DOCTEST_WARN_NE(__VA_ARGS__)","#define CHECK_NE(...) DOCTEST_CHECK_NE(__VA_ARGS__)","#define REQUIRE_NE(...) DOCTEST_REQUIRE_NE(__VA_ARGS__)","#define WARN_GT(...) DOCTEST_WARN_GT(__VA_ARGS__)","#define CHECK_GT(...) DOCTEST_CHECK_GT(__VA_ARGS__)","#define REQUIRE_GT(...) DOCTEST_REQUIRE_GT(__VA_ARGS__)","#define WARN_LT(...) DOCTEST_WARN_LT(__VA_ARGS__)","#define CHECK_LT(...) DOCTEST_CHECK_LT(__VA_ARGS__)","#define REQUIRE_LT(...) DOCTEST_REQUIRE_LT(__VA_ARGS__)","#define WARN_GE(...) DOCTEST_WARN_GE(__VA_ARGS__)","#define CHECK_GE(...) DOCTEST_CHECK_GE(__VA_ARGS__)","#define REQUIRE_GE(...) DOCTEST_REQUIRE_GE(__VA_ARGS__)","#define WARN_LE(...) DOCTEST_WARN_LE(__VA_ARGS__)","#define CHECK_LE(...) DOCTEST_CHECK_LE(__VA_ARGS__)","#define REQUIRE_LE(...) DOCTEST_REQUIRE_LE(__VA_ARGS__)","#define WARN_UNARY(...) DOCTEST_WARN_UNARY(__VA_ARGS__)","#define CHECK_UNARY(...) DOCTEST_CHECK_UNARY(__VA_ARGS__)","#define REQUIRE_UNARY(...) DOCTEST_REQUIRE_UNARY(__VA_ARGS__)","#define WARN_UNARY_FALSE(...) DOCTEST_WARN_UNARY_FALSE(__VA_ARGS__)","#define CHECK_UNARY_FALSE(...) DOCTEST_CHECK_UNARY_FALSE(__VA_ARGS__)","#define REQUIRE_UNARY_FALSE(...) DOCTEST_REQUIRE_UNARY_FALSE(__VA_ARGS__)","","// KEPT FOR BACKWARDS COMPATIBILITY","#define FAST_WARN_EQ(...) DOCTEST_FAST_WARN_EQ(__VA_ARGS__)","#define FAST_CHECK_EQ(...) DOCTEST_FAST_CHECK_EQ(__VA_ARGS__)","#define FAST_REQUIRE_EQ(...) DOCTEST_FAST_REQUIRE_EQ(__VA_ARGS__)","#define FAST_WARN_NE(...) DOCTEST_FAST_WARN_NE(__VA_ARGS__)","#define FAST_CHECK_NE(...) DOCTEST_FAST_CHECK_NE(__VA_ARGS__)","#define FAST_REQUIRE_NE(...) DOCTEST_FAST_REQUIRE_NE(__VA_ARGS__)","#define FAST_WARN_GT(...) DOCTEST_FAST_WARN_GT(__VA_ARGS__)","#define FAST_CHECK_GT(...) DOCTEST_FAST_CHECK_GT(__VA_ARGS__)","#define FAST_REQUIRE_GT(...) DOCTEST_FAST_REQUIRE_GT(__VA_ARGS__)","#define FAST_WARN_LT(...) DOCTEST_FAST_WARN_LT(__VA_ARGS__)","#define FAST_CHECK_LT(...) DOCTEST_FAST_CHECK_LT(__VA_ARGS__)","#define FAST_REQUIRE_LT(...) DOCTEST_FAST_REQUIRE_LT(__VA_ARGS__)","#define FAST_WARN_GE(...) DOCTEST_FAST_WARN_GE(__VA_ARGS__)","#define FAST_CHECK_GE(...) DOCTEST_FAST_CHECK_GE(__VA_ARGS__)","#define FAST_REQUIRE_GE(...) DOCTEST_FAST_REQUIRE_GE(__VA_ARGS__)","#define FAST_WARN_LE(...) DOCTEST_FAST_WARN_LE(__VA_ARGS__)","#define FAST_CHECK_LE(...) DOCTEST_FAST_CHECK_LE(__VA_ARGS__)","#define FAST_REQUIRE_LE(...) DOCTEST_FAST_REQUIRE_LE(__VA_ARGS__)","","#define FAST_WARN_UNARY(...) DOCTEST_FAST_WARN_UNARY(__VA_ARGS__)","#define FAST_CHECK_UNARY(...) DOCTEST_FAST_CHECK_UNARY(__VA_ARGS__)","#define FAST_REQUIRE_UNARY(...) DOCTEST_FAST_REQUIRE_UNARY(__VA_ARGS__)","#define FAST_WARN_UNARY_FALSE(...) DOCTEST_FAST_WARN_UNARY_FALSE(__VA_ARGS__)","#define FAST_CHECK_UNARY_FALSE(...) DOCTEST_FAST_CHECK_UNARY_FALSE(__VA_ARGS__)","#define FAST_REQUIRE_UNARY_FALSE(...) DOCTEST_FAST_REQUIRE_UNARY_FALSE(__VA_ARGS__)","","#define TEST_CASE_TEMPLATE_INSTANTIATE(id, ...) DOCTEST_TEST_CASE_TEMPLATE_INSTANTIATE(id, __VA_ARGS__)","","#endif // DOCTEST_CONFIG_NO_SHORT_MACRO_NAMES","","#ifndef DOCTEST_CONFIG_DISABLE","","// this is here to clear the 'current test suite' for the current translation unit - at the top","DOCTEST_TEST_SUITE_END();","","#endif // DOCTEST_CONFIG_DISABLE","","DOCTEST_CLANG_SUPPRESS_WARNING_POP","DOCTEST_MSVC_SUPPRESS_WARNING_POP","DOCTEST_GCC_SUPPRESS_WARNING_POP","","DOCTEST_SUPPRESS_COMMON_WARNINGS_POP","","#endif // DOCTEST_LIBRARY_INCLUDED","","#ifndef DOCTEST_SINGLE_HEADER","#define DOCTEST_SINGLE_HEADER","#endif // DOCTEST_SINGLE_HEADER","","#if defined(DOCTEST_CONFIG_IMPLEMENT) || !defined(DOCTEST_SINGLE_HEADER)","","#ifndef DOCTEST_SINGLE_HEADER","#include \"doctest_fwd.h\"","#endif // DOCTEST_SINGLE_HEADER","","DOCTEST_CLANG_SUPPRESS_WARNING_WITH_PUSH(\"-Wunused-macros\")","","#ifndef DOCTEST_LIBRARY_IMPLEMENTATION","#define DOCTEST_LIBRARY_IMPLEMENTATION","","DOCTEST_CLANG_SUPPRESS_WARNING_POP","","DOCTEST_SUPPRESS_COMMON_WARNINGS_PUSH","","DOCTEST_CLANG_SUPPRESS_WARNING_PUSH","DOCTEST_CLANG_SUPPRESS_WARNING(\"-Wglobal-constructors\")","DOCTEST_CLANG_SUPPRESS_WARNING(\"-Wexit-time-destructors\")","DOCTEST_CLANG_SUPPRESS_WARNING(\"-Wsign-conversion\")","DOCTEST_CLANG_SUPPRESS_WARNING(\"-Wshorten-64-to-32\")","DOCTEST_CLANG_SUPPRESS_WARNING(\"-Wmissing-variable-declarations\")","DOCTEST_CLANG_SUPPRESS_WARNING(\"-Wswitch\")","DOCTEST_CLANG_SUPPRESS_WARNING(\"-Wswitch-enum\")","DOCTEST_CLANG_SUPPRESS_WARNING(\"-Wcovered-switch-default\")","DOCTEST_CLANG_SUPPRESS_WARNING(\"-Wmissing-noreturn\")","DOCTEST_CLANG_SUPPRESS_WARNING(\"-Wdisabled-macro-expansion\")","DOCTEST_CLANG_SUPPRESS_WARNING(\"-Wmissing-braces\")","DOCTEST_CLANG_SUPPRESS_WARNING(\"-Wmissing-field-initializers\")","DOCTEST_CLANG_SUPPRESS_WARNING(\"-Wunused-member-function\")","DOCTEST_CLANG_SUPPRESS_WARNING(\"-Wnonportable-system-include-path\")","","DOCTEST_GCC_SUPPRESS_WARNING_PUSH","DOCTEST_GCC_SUPPRESS_WARNING(\"-Wconversion\")","DOCTEST_GCC_SUPPRESS_WARNING(\"-Wsign-conversion\")","DOCTEST_GCC_SUPPRESS_WARNING(\"-Wmissing-field-initializers\")","DOCTEST_GCC_SUPPRESS_WARNING(\"-Wmissing-braces\")","DOCTEST_GCC_SUPPRESS_WARNING(\"-Wswitch\")","DOCTEST_GCC_SUPPRESS_WARNING(\"-Wswitch-enum\")","DOCTEST_GCC_SUPPRESS_WARNING(\"-Wswitch-default\")","DOCTEST_GCC_SUPPRESS_WARNING(\"-Wunsafe-loop-optimizations\")","DOCTEST_GCC_SUPPRESS_WARNING(\"-Wold-style-cast\")","DOCTEST_GCC_SUPPRESS_WARNING(\"-Wunused-function\")","DOCTEST_GCC_SUPPRESS_WARNING(\"-Wmultiple-inheritance\")","DOCTEST_GCC_SUPPRESS_WARNING(\"-Wsuggest-attribute\")","","DOCTEST_MSVC_SUPPRESS_WARNING_PUSH","DOCTEST_MSVC_SUPPRESS_WARNING(4267) // 'var' : conversion from 'x' to 'y', possible loss of data","DOCTEST_MSVC_SUPPRESS_WARNING(4530) // C++ exception handler used, but unwind semantics not enabled","DOCTEST_MSVC_SUPPRESS_WARNING(4577) // 'noexcept' used with no exception handling mode specified","DOCTEST_MSVC_SUPPRESS_WARNING(4774) // format string expected in argument is not a string literal","DOCTEST_MSVC_SUPPRESS_WARNING(4365) // conversion from 'int' to 'unsigned', signed/unsigned mismatch","DOCTEST_MSVC_SUPPRESS_WARNING(5039) // pointer to potentially throwing function passed to extern C","DOCTEST_MSVC_SUPPRESS_WARNING(4800) // forcing value to bool 'true' or 'false' (performance warning)","DOCTEST_MSVC_SUPPRESS_WARNING(5245) // unreferenced function with internal linkage has been removed","","DOCTEST_MAKE_STD_HEADERS_CLEAN_FROM_WARNINGS_ON_WALL_BEGIN","","// required includes - will go only in one translation unit!","#include \u003cctime\u003e","#include \u003ccmath\u003e","#include \u003cclimits\u003e","// borland (Embarcadero) compiler requires math.h and not cmath - https://github.com/doctest/doctest/pull/37","#ifdef __BORLANDC__","#include \u003cmath.h\u003e","#endif // __BORLANDC__","#include \u003cnew\u003e","#include \u003ccstdio\u003e","#include \u003ccstdlib\u003e","#include \u003ccstring\u003e","#include \u003climits\u003e","#include \u003cutility\u003e","#include \u003cfstream\u003e","#include \u003csstream\u003e","#ifndef DOCTEST_CONFIG_NO_INCLUDE_IOSTREAM","#include \u003ciostream\u003e","#endif // DOCTEST_CONFIG_NO_INCLUDE_IOSTREAM","#include \u003calgorithm\u003e","#include \u003ciomanip\u003e","#include \u003cvector\u003e","#ifndef DOCTEST_CONFIG_NO_MULTITHREADING","#include \u003catomic\u003e","#include \u003cmutex\u003e","#define DOCTEST_DECLARE_MUTEX(name) std::mutex name;","#define DOCTEST_DECLARE_STATIC_MUTEX(name) static DOCTEST_DECLARE_MUTEX(name)","#define DOCTEST_LOCK_MUTEX(name) std::lock_guard\u003cstd::mutex\u003e DOCTEST_ANONYMOUS(DOCTEST_ANON_LOCK_)(name);","#else // DOCTEST_CONFIG_NO_MULTITHREADING","#define DOCTEST_DECLARE_MUTEX(name)","#define DOCTEST_DECLARE_STATIC_MUTEX(name)","#define DOCTEST_LOCK_MUTEX(name)","#endif // DOCTEST_CONFIG_NO_MULTITHREADING","#include \u003cset\u003e","#include \u003cmap\u003e","#include \u003cunordered_set\u003e","#include \u003cexception\u003e","#include \u003cstdexcept\u003e","#include \u003ccsignal\u003e","#include \u003ccfloat\u003e","#include \u003ccctype\u003e","#include \u003ccstdint\u003e","#include \u003cstring\u003e","","#ifdef DOCTEST_PLATFORM_MAC","#include \u003csys/types.h\u003e","#include \u003cunistd.h\u003e","#include \u003csys/sysctl.h\u003e","#endif // DOCTEST_PLATFORM_MAC","","#ifdef DOCTEST_PLATFORM_WINDOWS","","// defines for a leaner windows.h","#ifndef WIN32_LEAN_AND_MEAN","#define WIN32_LEAN_AND_MEAN","#define DOCTEST_UNDEF_WIN32_LEAN_AND_MEAN","#endif // WIN32_LEAN_AND_MEAN","#ifndef NOMINMAX","#define NOMINMAX","#define DOCTEST_UNDEF_NOMINMAX","#endif // NOMINMAX","","// not sure what AfxWin.h is for - here I do what Catch does","#ifdef __AFXDLL","#include \u003cAfxWin.h\u003e","#else","#include \u003cwindows.h\u003e","#endif","#include \u003cio.h\u003e","","#else // DOCTEST_PLATFORM_WINDOWS","","#include \u003csys/time.h\u003e","#include \u003cunistd.h\u003e","","#endif // DOCTEST_PLATFORM_WINDOWS","","// this is a fix for https://github.com/doctest/doctest/issues/348","// https://mail.gnome.org/archives/xml/2012-January/msg00000.html","#if !defined(HAVE_UNISTD_H) \u0026\u0026 !defined(STDOUT_FILENO)","#define STDOUT_FILENO fileno(stdout)","#endif // HAVE_UNISTD_H","","DOCTEST_MAKE_STD_HEADERS_CLEAN_FROM_WARNINGS_ON_WALL_END","","// counts the number of elements in a C array","#define DOCTEST_COUNTOF(x) (sizeof(x) / sizeof(x[0]))","","#ifdef DOCTEST_CONFIG_DISABLE","#define DOCTEST_BRANCH_ON_DISABLED(if_disabled, if_not_disabled) if_disabled","#else // DOCTEST_CONFIG_DISABLE","#define DOCTEST_BRANCH_ON_DISABLED(if_disabled, if_not_disabled) if_not_disabled","#endif // DOCTEST_CONFIG_DISABLE","","#ifndef DOCTEST_CONFIG_OPTIONS_PREFIX","#define DOCTEST_CONFIG_OPTIONS_PREFIX \"dt-\"","#endif","","#ifndef DOCTEST_THREAD_LOCAL","#if defined(DOCTEST_CONFIG_NO_MULTITHREADING) || DOCTEST_MSVC \u0026\u0026 (DOCTEST_MSVC \u003c DOCTEST_COMPILER(19, 0, 0))","#define DOCTEST_THREAD_LOCAL","#else // DOCTEST_MSVC","#define DOCTEST_THREAD_LOCAL thread_local","#endif // DOCTEST_MSVC","#endif // DOCTEST_THREAD_LOCAL","","#ifndef DOCTEST_MULTI_LANE_ATOMICS_THREAD_LANES","#define DOCTEST_MULTI_LANE_ATOMICS_THREAD_LANES 32","#endif","","#ifndef DOCTEST_MULTI_LANE_ATOMICS_CACHE_LINE_SIZE","#define DOCTEST_MULTI_LANE_ATOMICS_CACHE_LINE_SIZE 64","#endif","","#ifdef DOCTEST_CONFIG_NO_UNPREFIXED_OPTIONS","#define DOCTEST_OPTIONS_PREFIX_DISPLAY DOCTEST_CONFIG_OPTIONS_PREFIX","#else","#define DOCTEST_OPTIONS_PREFIX_DISPLAY \"\"","#endif","","#if defined(WINAPI_FAMILY) \u0026\u0026 (WINAPI_FAMILY == WINAPI_FAMILY_APP)","#define DOCTEST_CONFIG_NO_MULTI_LANE_ATOMICS","#endif","","#ifndef DOCTEST_CDECL","#define DOCTEST_CDECL __cdecl","#endif","","namespace doctest {","","bool is_running_in_test = false;","","namespace {"," using namespace detail;",""," template \u003ctypename Ex\u003e"," DOCTEST_NORETURN void throw_exception(Ex const\u0026 e) {","#ifndef DOCTEST_CONFIG_NO_EXCEPTIONS"," throw e;","#else // DOCTEST_CONFIG_NO_EXCEPTIONS","#ifdef DOCTEST_CONFIG_HANDLE_EXCEPTION"," DOCTEST_CONFIG_HANDLE_EXCEPTION(e);","#else // DOCTEST_CONFIG_HANDLE_EXCEPTION","#ifndef DOCTEST_CONFIG_NO_INCLUDE_IOSTREAM"," std::cerr \u003c\u003c \"doctest will terminate because it needed to throw an exception.\\n\""," \u003c\u003c \"The message was: \" \u003c\u003c e.what() \u003c\u003c '\\n';","#endif // DOCTEST_CONFIG_NO_INCLUDE_IOSTREAM","#endif // DOCTEST_CONFIG_HANDLE_EXCEPTION"," std::terminate();","#endif // DOCTEST_CONFIG_NO_EXCEPTIONS"," }","","#ifndef DOCTEST_INTERNAL_ERROR","#define DOCTEST_INTERNAL_ERROR(msg) \\"," throw_exception(std::logic_error( \\"," __FILE__ \":\" DOCTEST_TOSTR(__LINE__) \": Internal doctest error: \" msg))","#endif // DOCTEST_INTERNAL_ERROR",""," // case insensitive strcmp"," int stricmp(const char* a, const char* b) {"," for(;; a++, b++) {"," const int d = tolower(*a) - tolower(*b);"," if(d != 0 || !*a)"," return d;"," }"," }",""," struct Endianness"," {"," enum Arch"," {"," Big,"," Little"," };",""," static Arch which() {"," int x = 1;"," // casting any data pointer to char* is allowed"," auto ptr = reinterpret_cast\u003cchar*\u003e(\u0026x);"," if(*ptr)"," return Little;"," return Big;"," }"," };","} // namespace","","namespace detail {"," DOCTEST_THREAD_LOCAL class"," {"," std::vector\u003cstd::streampos\u003e stack;"," std::stringstream ss;",""," public:"," std::ostream* push() {"," stack.push_back(ss.tellp());"," return \u0026ss;"," }",""," String pop() {"," if (stack.empty())"," DOCTEST_INTERNAL_ERROR(\"TLSS was empty when trying to pop!\");",""," std::streampos pos = stack.back();"," stack.pop_back();"," unsigned sz = static_cast\u003cunsigned\u003e(ss.tellp() - pos);"," ss.rdbuf()-\u003epubseekpos(pos, std::ios::in | std::ios::out);"," return String(ss, sz);"," }"," } g_oss;",""," std::ostream* tlssPush() {"," return g_oss.push();"," }",""," String tlssPop() {"," return g_oss.pop();"," }","","#ifndef DOCTEST_CONFIG_DISABLE","","namespace timer_large_integer","{","","#if defined(DOCTEST_PLATFORM_WINDOWS)"," using type = ULONGLONG;","#else // DOCTEST_PLATFORM_WINDOWS"," using type = std::uint64_t;","#endif // DOCTEST_PLATFORM_WINDOWS","}","","using ticks_t = timer_large_integer::type;","","#ifdef DOCTEST_CONFIG_GETCURRENTTICKS"," ticks_t getCurrentTicks() { return DOCTEST_CONFIG_GETCURRENTTICKS(); }","#elif defined(DOCTEST_PLATFORM_WINDOWS)"," ticks_t getCurrentTicks() {"," static LARGE_INTEGER hz = { {0} }, hzo = { {0} };"," if(!hz.QuadPart) {"," QueryPerformanceFrequency(\u0026hz);"," QueryPerformanceCounter(\u0026hzo);"," }"," LARGE_INTEGER t;"," QueryPerformanceCounter(\u0026t);"," return ((t.QuadPart - hzo.QuadPart) * LONGLONG(1000000)) / hz.QuadPart;"," }","#else // DOCTEST_PLATFORM_WINDOWS"," ticks_t getCurrentTicks() {"," timeval t;"," gettimeofday(\u0026t, nullptr);"," return static_cast\u003cticks_t\u003e(t.tv_sec) * 1000000 + static_cast\u003cticks_t\u003e(t.tv_usec);"," }","#endif // DOCTEST_PLATFORM_WINDOWS",""," struct Timer"," {"," void start() { m_ticks = getCurrentTicks(); }"," unsigned int getElapsedMicroseconds() const {"," return static_cast\u003cunsigned int\u003e(getCurrentTicks() - m_ticks);"," }"," //unsigned int getElapsedMilliseconds() const {"," // return static_cast\u003cunsigned int\u003e(getElapsedMicroseconds() / 1000);"," //}"," double getElapsedSeconds() const { return static_cast\u003cdouble\u003e(getCurrentTicks() - m_ticks) / 1000000.0; }",""," private:"," ticks_t m_ticks = 0;"," };","","#ifdef DOCTEST_CONFIG_NO_MULTITHREADING"," template \u003ctypename T\u003e"," using Atomic = T;","#else // DOCTEST_CONFIG_NO_MULTITHREADING"," template \u003ctypename T\u003e"," using Atomic = std::atomic\u003cT\u003e;","#endif // DOCTEST_CONFIG_NO_MULTITHREADING","","#if defined(DOCTEST_CONFIG_NO_MULTI_LANE_ATOMICS) || defined(DOCTEST_CONFIG_NO_MULTITHREADING)"," template \u003ctypename T\u003e"," using MultiLaneAtomic = Atomic\u003cT\u003e;","#else // DOCTEST_CONFIG_NO_MULTI_LANE_ATOMICS"," // Provides a multilane implementation of an atomic variable that supports add, sub, load,"," // store. Instead of using a single atomic variable, this splits up into multiple ones,"," // each sitting on a separate cache line. The goal is to provide a speedup when most"," // operations are modifying. It achieves this with two properties:"," //"," // * Multiple atomics are used, so chance of congestion from the same atomic is reduced."," // * Each atomic sits on a separate cache line, so false sharing is reduced."," //"," // The disadvantage is that there is a small overhead due to the use of TLS, and load/store"," // is slower because all atomics have to be accessed."," template \u003ctypename T\u003e"," class MultiLaneAtomic"," {"," struct CacheLineAlignedAtomic"," {"," Atomic\u003cT\u003e atomic{};"," char padding[DOCTEST_MULTI_LANE_ATOMICS_CACHE_LINE_SIZE - sizeof(Atomic\u003cT\u003e)];"," };"," CacheLineAlignedAtomic m_atomics[DOCTEST_MULTI_LANE_ATOMICS_THREAD_LANES];",""," static_assert(sizeof(CacheLineAlignedAtomic) == DOCTEST_MULTI_LANE_ATOMICS_CACHE_LINE_SIZE,"," \"guarantee one atomic takes exactly one cache line\");",""," public:"," T operator++() DOCTEST_NOEXCEPT { return fetch_add(1) + 1; }",""," T operator++(int) DOCTEST_NOEXCEPT { return fetch_add(1); }",""," T fetch_add(T arg, std::memory_order order = std::memory_order_seq_cst) DOCTEST_NOEXCEPT {"," return myAtomic().fetch_add(arg, order);"," }",""," T fetch_sub(T arg, std::memory_order order = std::memory_order_seq_cst) DOCTEST_NOEXCEPT {"," return myAtomic().fetch_sub(arg, order);"," }",""," operator T() const DOCTEST_NOEXCEPT { return load(); }",""," T load(std::memory_order order = std::memory_order_seq_cst) const DOCTEST_NOEXCEPT {"," auto result = T();"," for(auto const\u0026 c : m_atomics) {"," result += c.atomic.load(order);"," }"," return result;"," }",""," T operator=(T desired) DOCTEST_NOEXCEPT { // lgtm [cpp/assignment-does-not-return-this]"," store(desired);"," return desired;"," }",""," void store(T desired, std::memory_order order = std::memory_order_seq_cst) DOCTEST_NOEXCEPT {"," // first value becomes desired\", all others become 0."," for(auto\u0026 c : m_atomics) {"," c.atomic.store(desired, order);"," desired = {};"," }"," }",""," private:"," // Each thread has a different atomic that it operates on. If more than NumLanes threads"," // use this, some will use the same atomic. So performance will degrade a bit, but still"," // everything will work."," //"," // The logic here is a bit tricky. The call should be as fast as possible, so that there"," // is minimal to no overhead in determining the correct atomic for the current thread."," //"," // 1. A global static counter laneCounter counts continuously up."," // 2. Each successive thread will use modulo operation of that counter so it gets an atomic"," // assigned in a round-robin fashion."," // 3. This tlsLaneIdx is stored in the thread local data, so it is directly available with"," // little overhead."," Atomic\u003cT\u003e\u0026 myAtomic() DOCTEST_NOEXCEPT {"," static Atomic\u003csize_t\u003e laneCounter;"," DOCTEST_THREAD_LOCAL size_t tlsLaneIdx ="," laneCounter++ % DOCTEST_MULTI_LANE_ATOMICS_THREAD_LANES;",""," return m_atomics[tlsLaneIdx].atomic;"," }"," };","#endif // DOCTEST_CONFIG_NO_MULTI_LANE_ATOMICS",""," // this holds both parameters from the command line and runtime data for tests"," struct ContextState : ContextOptions, TestRunStats, CurrentTestCaseStats"," {"," MultiLaneAtomic\u003cint\u003e numAssertsCurrentTest_atomic;"," MultiLaneAtomic\u003cint\u003e numAssertsFailedCurrentTest_atomic;",""," std::vector\u003cstd::vector\u003cString\u003e\u003e filters = decltype(filters)(9); // 9 different filters",""," std::vector\u003cIReporter*\u003e reporters_currently_used;",""," assert_handler ah = nullptr;",""," Timer timer;",""," std::vector\u003cString\u003e stringifiedContexts; // logging from INFO() due to an exception",""," // stuff for subcases"," bool reachedLeaf;"," std::vector\u003cSubcaseSignature\u003e subcaseStack;"," std::vector\u003cSubcaseSignature\u003e nextSubcaseStack;"," std::unordered_set\u003cunsigned long long\u003e fullyTraversedSubcases;"," size_t currentSubcaseDepth;"," Atomic\u003cbool\u003e shouldLogCurrentException;",""," void resetRunData() {"," numTestCases = 0;"," numTestCasesPassingFilters = 0;"," numTestSuitesPassingFilters = 0;"," numTestCasesFailed = 0;"," numAsserts = 0;"," numAssertsFailed = 0;"," numAssertsCurrentTest = 0;"," numAssertsFailedCurrentTest = 0;"," }",""," void finalizeTestCaseData() {"," seconds = timer.getElapsedSeconds();",""," // update the non-atomic counters"," numAsserts += numAssertsCurrentTest_atomic;"," numAssertsFailed += numAssertsFailedCurrentTest_atomic;"," numAssertsCurrentTest = numAssertsCurrentTest_atomic;"," numAssertsFailedCurrentTest = numAssertsFailedCurrentTest_atomic;",""," if(numAssertsFailedCurrentTest)"," failure_flags |= TestCaseFailureReason::AssertFailure;",""," if(Approx(currentTest-\u003em_timeout).epsilon(DBL_EPSILON) != 0 \u0026\u0026"," Approx(seconds).epsilon(DBL_EPSILON) \u003e currentTest-\u003em_timeout)"," failure_flags |= TestCaseFailureReason::Timeout;",""," if(currentTest-\u003em_should_fail) {"," if(failure_flags) {"," failure_flags |= TestCaseFailureReason::ShouldHaveFailedAndDid;"," } else {"," failure_flags |= TestCaseFailureReason::ShouldHaveFailedButDidnt;"," }"," } else if(failure_flags \u0026\u0026 currentTest-\u003em_may_fail) {"," failure_flags |= TestCaseFailureReason::CouldHaveFailedAndDid;"," } else if(currentTest-\u003em_expected_failures \u003e 0) {"," if(numAssertsFailedCurrentTest == currentTest-\u003em_expected_failures) {"," failure_flags |= TestCaseFailureReason::FailedExactlyNumTimes;"," } else {"," failure_flags |= TestCaseFailureReason::DidntFailExactlyNumTimes;"," }"," }",""," bool ok_to_fail = (TestCaseFailureReason::ShouldHaveFailedAndDid \u0026 failure_flags) ||"," (TestCaseFailureReason::CouldHaveFailedAndDid \u0026 failure_flags) ||"," (TestCaseFailureReason::FailedExactlyNumTimes \u0026 failure_flags);",""," // if any subcase has failed - the whole test case has failed"," testCaseSuccess = !(failure_flags \u0026\u0026 !ok_to_fail);"," if(!testCaseSuccess)"," numTestCasesFailed++;"," }"," };",""," ContextState* g_cs = nullptr;",""," // used to avoid locks for the debug output"," // TODO: figure out if this is indeed necessary/correct - seems like either there still"," // could be a race or that there wouldn't be a race even if using the context directly"," DOCTEST_THREAD_LOCAL bool g_no_colors;","","#endif // DOCTEST_CONFIG_DISABLE","} // namespace detail","","char* String::allocate(size_type sz) {"," if (sz \u003c= last) {"," buf[sz] = '\\0';"," setLast(last - sz);"," return buf;"," } else {"," setOnHeap();"," data.size = sz;"," data.capacity = data.size + 1;"," data.ptr = new char[data.capacity];"," data.ptr[sz] = '\\0';"," return data.ptr;"," }","}","","void String::setOnHeap() noexcept { *reinterpret_cast\u003cunsigned char*\u003e(\u0026buf[last]) = 128; }","void String::setLast(size_type in) noexcept { buf[last] = char(in); }","void String::setSize(size_type sz) noexcept {"," if (isOnStack()) { buf[sz] = '\\0'; setLast(last - sz); }"," else { data.ptr[sz] = '\\0'; data.size = sz; }","}","","void String::copy(const String\u0026 other) {"," if(other.isOnStack()) {"," memcpy(buf, other.buf, len);"," } else {"," memcpy(allocate(other.data.size), other.data.ptr, other.data.size);"," }","}","","String::String() noexcept {"," buf[0] = '\\0';"," setLast();","}","","String::~String() {"," if(!isOnStack())"," delete[] data.ptr;","} // NOLINT(clang-analyzer-cplusplus.NewDeleteLeaks)","","String::String(const char* in)"," : String(in, strlen(in)) {}","","String::String(const char* in, size_type in_size) {"," memcpy(allocate(in_size), in, in_size);","}","","String::String(std::istream\u0026 in, size_type in_size) {"," in.read(allocate(in_size), in_size);","}","","String::String(const String\u0026 other) { copy(other); }","","String\u0026 String::operator=(const String\u0026 other) {"," if(this != \u0026other) {"," if(!isOnStack())"," delete[] data.ptr;",""," copy(other);"," }",""," return *this;","}","","String\u0026 String::operator+=(const String\u0026 other) {"," const size_type my_old_size = size();"," const size_type other_size = other.size();"," const size_type total_size = my_old_size + other_size;"," if(isOnStack()) {"," if(total_size \u003c len) {"," // append to the current stack space"," memcpy(buf + my_old_size, other.c_str(), other_size + 1);"," // NOLINTNEXTLINE(clang-analyzer-cplusplus.NewDeleteLeaks)"," setLast(last - total_size);"," } else {"," // alloc new chunk"," char* temp = new char[total_size + 1];"," // copy current data to new location before writing in the union"," memcpy(temp, buf, my_old_size); // skip the +1 ('\\0') for speed"," // update data in union"," setOnHeap();"," data.size = total_size;"," data.capacity = data.size + 1;"," data.ptr = temp;"," // transfer the rest of the data"," memcpy(data.ptr + my_old_size, other.c_str(), other_size + 1);"," }"," } else {"," if(data.capacity \u003e total_size) {"," // append to the current heap block"," data.size = total_size;"," memcpy(data.ptr + my_old_size, other.c_str(), other_size + 1);"," } else {"," // resize"," data.capacity *= 2;"," if(data.capacity \u003c= total_size)"," data.capacity = total_size + 1;"," // alloc new chunk"," char* temp = new char[data.capacity];"," // copy current data to new location before releasing it"," memcpy(temp, data.ptr, my_old_size); // skip the +1 ('\\0') for speed"," // release old chunk"," delete[] data.ptr;"," // update the rest of the union members"," data.size = total_size;"," data.ptr = temp;"," // transfer the rest of the data"," memcpy(data.ptr + my_old_size, other.c_str(), other_size + 1);"," }"," }",""," return *this;","}","","String::String(String\u0026\u0026 other) noexcept {"," memcpy(buf, other.buf, len);"," other.buf[0] = '\\0';"," other.setLast();","}","","String\u0026 String::operator=(String\u0026\u0026 other) noexcept {"," if(this != \u0026other) {"," if(!isOnStack())"," delete[] data.ptr;"," memcpy(buf, other.buf, len);"," other.buf[0] = '\\0';"," other.setLast();"," }"," return *this;","}","","char String::operator[](size_type i) const {"," return const_cast\u003cString*\u003e(this)-\u003eoperator[](i);","}","","char\u0026 String::operator[](size_type i) {"," if(isOnStack())"," return reinterpret_cast\u003cchar*\u003e(buf)[i];"," return data.ptr[i];","}","","DOCTEST_GCC_SUPPRESS_WARNING_WITH_PUSH(\"-Wmaybe-uninitialized\")","String::size_type String::size() const {"," if(isOnStack())"," return last - (size_type(buf[last]) \u0026 31); // using \"last\" would work only if \"len\" is 32"," return data.size;","}","DOCTEST_GCC_SUPPRESS_WARNING_POP","","String::size_type String::capacity() const {"," if(isOnStack())"," return len;"," return data.capacity;","}","","String String::substr(size_type pos, size_type cnt) \u0026\u0026 {"," cnt = std::min(cnt, size() - 1 - pos);"," char* cptr = c_str();"," memmove(cptr, cptr + pos, cnt);"," setSize(cnt);"," return std::move(*this);","}","","String String::substr(size_type pos, size_type cnt) const \u0026 {"," cnt = std::min(cnt, size() - 1 - pos);"," return String{ c_str() + pos, cnt };","}","","String::size_type String::find(char ch, size_type pos) const {"," const char* begin = c_str();"," const char* end = begin + size();"," const char* it = begin + pos;"," for (; it \u003c end \u0026\u0026 *it != ch; it++);"," if (it \u003c end) { return static_cast\u003csize_type\u003e(it - begin); }"," else { return npos; }","}","","String::size_type String::rfind(char ch, size_type pos) const {"," const char* begin = c_str();"," const char* it = begin + std::min(pos, size() - 1);"," for (; it \u003e= begin \u0026\u0026 *it != ch; it--);"," if (it \u003e= begin) { return static_cast\u003csize_type\u003e(it - begin); }"," else { return npos; }","}","","int String::compare(const char* other, bool no_case) const {"," if(no_case)"," return doctest::stricmp(c_str(), other);"," return std::strcmp(c_str(), other);","}","","int String::compare(const String\u0026 other, bool no_case) const {"," return compare(other.c_str(), no_case);","}","","String operator+(const String\u0026 lhs, const String\u0026 rhs) { return String(lhs) += rhs; }","","bool operator==(const String\u0026 lhs, const String\u0026 rhs) { return lhs.compare(rhs) == 0; }","bool operator!=(const String\u0026 lhs, const String\u0026 rhs) { return lhs.compare(rhs) != 0; }","bool operator\u003c (const String\u0026 lhs, const String\u0026 rhs) { return lhs.compare(rhs) \u003c 0; }","bool operator\u003e (const String\u0026 lhs, const String\u0026 rhs) { return lhs.compare(rhs) \u003e 0; }","bool operator\u003c=(const String\u0026 lhs, const String\u0026 rhs) { return (lhs != rhs) ? lhs.compare(rhs) \u003c 0 : true; }","bool operator\u003e=(const String\u0026 lhs, const String\u0026 rhs) { return (lhs != rhs) ? lhs.compare(rhs) \u003e 0 : true; }","","std::ostream\u0026 operator\u003c\u003c(std::ostream\u0026 s, const String\u0026 in) { return s \u003c\u003c in.c_str(); }","","Contains::Contains(const String\u0026 str) : string(str) { }","","bool Contains::checkWith(const String\u0026 other) const {"," return strstr(other.c_str(), string.c_str()) != nullptr;","}","","String toString(const Contains\u0026 in) {"," return \"Contains( \" + in.string + \" )\";","}","","bool operator==(const String\u0026 lhs, const Contains\u0026 rhs) { return rhs.checkWith(lhs); }","bool operator==(const Contains\u0026 lhs, const String\u0026 rhs) { return lhs.checkWith(rhs); }","bool operator!=(const String\u0026 lhs, const Contains\u0026 rhs) { return !rhs.checkWith(lhs); }","bool operator!=(const Contains\u0026 lhs, const String\u0026 rhs) { return !lhs.checkWith(rhs); }","","namespace {"," void color_to_stream(std::ostream\u0026, Color::Enum) DOCTEST_BRANCH_ON_DISABLED({}, ;)","} // namespace","","namespace Color {"," std::ostream\u0026 operator\u003c\u003c(std::ostream\u0026 s, Color::Enum code) {"," color_to_stream(s, code);"," return s;"," }","} // namespace Color","","// clang-format off","const char* assertString(assertType::Enum at) {"," DOCTEST_MSVC_SUPPRESS_WARNING_WITH_PUSH(4061) // enum 'x' in switch of enum 'y' is not explicitly handled"," #define DOCTEST_GENERATE_ASSERT_TYPE_CASE(assert_type) case assertType::DT_ ## assert_type: return #assert_type"," #define DOCTEST_GENERATE_ASSERT_TYPE_CASES(assert_type) \\"," DOCTEST_GENERATE_ASSERT_TYPE_CASE(WARN_ ## assert_type); \\"," DOCTEST_GENERATE_ASSERT_TYPE_CASE(CHECK_ ## assert_type); \\"," DOCTEST_GENERATE_ASSERT_TYPE_CASE(REQUIRE_ ## assert_type)"," switch(at) {"," DOCTEST_GENERATE_ASSERT_TYPE_CASE(WARN);"," DOCTEST_GENERATE_ASSERT_TYPE_CASE(CHECK);"," DOCTEST_GENERATE_ASSERT_TYPE_CASE(REQUIRE);",""," DOCTEST_GENERATE_ASSERT_TYPE_CASES(FALSE);",""," DOCTEST_GENERATE_ASSERT_TYPE_CASES(THROWS);",""," DOCTEST_GENERATE_ASSERT_TYPE_CASES(THROWS_AS);",""," DOCTEST_GENERATE_ASSERT_TYPE_CASES(THROWS_WITH);",""," DOCTEST_GENERATE_ASSERT_TYPE_CASES(THROWS_WITH_AS);",""," DOCTEST_GENERATE_ASSERT_TYPE_CASES(NOTHROW);",""," DOCTEST_GENERATE_ASSERT_TYPE_CASES(EQ);"," DOCTEST_GENERATE_ASSERT_TYPE_CASES(NE);"," DOCTEST_GENERATE_ASSERT_TYPE_CASES(GT);"," DOCTEST_GENERATE_ASSERT_TYPE_CASES(LT);"," DOCTEST_GENERATE_ASSERT_TYPE_CASES(GE);"," DOCTEST_GENERATE_ASSERT_TYPE_CASES(LE);",""," DOCTEST_GENERATE_ASSERT_TYPE_CASES(UNARY);"," DOCTEST_GENERATE_ASSERT_TYPE_CASES(UNARY_FALSE);",""," default: DOCTEST_INTERNAL_ERROR(\"Tried stringifying invalid assert type!\");"," }"," DOCTEST_MSVC_SUPPRESS_WARNING_POP","}","// clang-format on","","const char* failureString(assertType::Enum at) {"," if(at \u0026 assertType::is_warn) //!OCLINT bitwise operator in conditional"," return \"WARNING\";"," if(at \u0026 assertType::is_check) //!OCLINT bitwise operator in conditional"," return \"ERROR\";"," if(at \u0026 assertType::is_require) //!OCLINT bitwise operator in conditional"," return \"FATAL ERROR\";"," return \"\";","}","","DOCTEST_CLANG_SUPPRESS_WARNING_WITH_PUSH(\"-Wnull-dereference\")","DOCTEST_GCC_SUPPRESS_WARNING_WITH_PUSH(\"-Wnull-dereference\")","// depending on the current options this will remove the path of filenames","const char* skipPathFromFilename(const char* file) {","#ifndef DOCTEST_CONFIG_DISABLE"," if(getContextOptions()-\u003eno_path_in_filenames) {"," auto back = std::strrchr(file, '\\\\');"," auto forward = std::strrchr(file, '/');"," if(back || forward) {"," if(back \u003e forward)"," forward = back;"," return forward + 1;"," }"," }","#endif // DOCTEST_CONFIG_DISABLE"," return file;","}","DOCTEST_CLANG_SUPPRESS_WARNING_POP","DOCTEST_GCC_SUPPRESS_WARNING_POP","","bool SubcaseSignature::operator==(const SubcaseSignature\u0026 other) const {"," return m_line == other.m_line"," \u0026\u0026 std::strcmp(m_file, other.m_file) == 0"," \u0026\u0026 m_name == other.m_name;","}","","bool SubcaseSignature::operator\u003c(const SubcaseSignature\u0026 other) const {"," if(m_line != other.m_line)"," return m_line \u003c other.m_line;"," if(std::strcmp(m_file, other.m_file) != 0)"," return std::strcmp(m_file, other.m_file) \u003c 0;"," return m_name.compare(other.m_name) \u003c 0;","}","","DOCTEST_DEFINE_INTERFACE(IContextScope)","","namespace detail {"," void filldata\u003cconst void*\u003e::fill(std::ostream* stream, const void* in) {"," if (in) { *stream \u003c\u003c in; }"," else { *stream \u003c\u003c \"nullptr\"; }"," }",""," template \u003ctypename T\u003e"," String toStreamLit(T t) {"," std::ostream* os = tlssPush();"," os-\u003eoperator\u003c\u003c(t);"," return tlssPop();"," }","}","","#ifdef DOCTEST_CONFIG_TREAT_CHAR_STAR_AS_STRING","String toString(const char* in) { return String(\"\\\"\") + (in ? in : \"{null string}\") + \"\\\"\"; }","#endif // DOCTEST_CONFIG_TREAT_CHAR_STAR_AS_STRING","","#if DOCTEST_MSVC \u003e= DOCTEST_COMPILER(19, 20, 0)","// see this issue on why this is needed: https://github.com/doctest/doctest/issues/183","String toString(const std::string\u0026 in) { return in.c_str(); }","#endif // VS 2019","","String toString(String in) { return in; }","","String toString(std::nullptr_t) { return \"nullptr\"; }","","String toString(bool in) { return in ? \"true\" : \"false\"; }","","String toString(float in) { return toStreamLit(in); }","String toString(double in) { return toStreamLit(in); }","String toString(double long in) { return toStreamLit(in); }","","String toString(char in) { return toStreamLit(static_cast\u003csigned\u003e(in)); }","String toString(char signed in) { return toStreamLit(static_cast\u003csigned\u003e(in)); }","String toString(char unsigned in) { return toStreamLit(static_cast\u003cunsigned\u003e(in)); }","String toString(short in) { return toStreamLit(in); }","String toString(short unsigned in) { return toStreamLit(in); }","String toString(signed in) { return toStreamLit(in); }","String toString(unsigned in) { return toStreamLit(in); }","String toString(long in) { return toStreamLit(in); }","String toString(long unsigned in) { return toStreamLit(in); }","String toString(long long in) { return toStreamLit(in); }","String toString(long long unsigned in) { return toStreamLit(in); }","","Approx::Approx(double value)"," : m_epsilon(static_cast\u003cdouble\u003e(std::numeric_limits\u003cfloat\u003e::epsilon()) * 100)"," , m_scale(1.0)"," , m_value(value) {}","","Approx Approx::operator()(double value) const {"," Approx approx(value);"," approx.epsilon(m_epsilon);"," approx.scale(m_scale);"," return approx;","}","","Approx\u0026 Approx::epsilon(double newEpsilon) {"," m_epsilon = newEpsilon;"," return *this;","}","Approx\u0026 Approx::scale(double newScale) {"," m_scale = newScale;"," return *this;","}","","bool operator==(double lhs, const Approx\u0026 rhs) {"," // Thanks to Richard Harris for his help refining this formula"," return std::fabs(lhs - rhs.m_value) \u003c"," rhs.m_epsilon * (rhs.m_scale + std::max\u003cdouble\u003e(std::fabs(lhs), std::fabs(rhs.m_value)));","}","bool operator==(const Approx\u0026 lhs, double rhs) { return operator==(rhs, lhs); }","bool operator!=(double lhs, const Approx\u0026 rhs) { return !operator==(lhs, rhs); }","bool operator!=(const Approx\u0026 lhs, double rhs) { return !operator==(rhs, lhs); }","bool operator\u003c=(double lhs, const Approx\u0026 rhs) { return lhs \u003c rhs.m_value || lhs == rhs; }","bool operator\u003c=(const Approx\u0026 lhs, double rhs) { return lhs.m_value \u003c rhs || lhs == rhs; }","bool operator\u003e=(double lhs, const Approx\u0026 rhs) { return lhs \u003e rhs.m_value || lhs == rhs; }","bool operator\u003e=(const Approx\u0026 lhs, double rhs) { return lhs.m_value \u003e rhs || lhs == rhs; }","bool operator\u003c(double lhs, const Approx\u0026 rhs) { return lhs \u003c rhs.m_value \u0026\u0026 lhs != rhs; }","bool operator\u003c(const Approx\u0026 lhs, double rhs) { return lhs.m_value \u003c rhs \u0026\u0026 lhs != rhs; }","bool operator\u003e(double lhs, const Approx\u0026 rhs) { return lhs \u003e rhs.m_value \u0026\u0026 lhs != rhs; }","bool operator\u003e(const Approx\u0026 lhs, double rhs) { return lhs.m_value \u003e rhs \u0026\u0026 lhs != rhs; }","","String toString(const Approx\u0026 in) {"," return \"Approx( \" + doctest::toString(in.m_value) + \" )\";","}","const ContextOptions* getContextOptions() { return DOCTEST_BRANCH_ON_DISABLED(nullptr, g_cs); }","","DOCTEST_MSVC_SUPPRESS_WARNING_WITH_PUSH(4738)","template \u003ctypename F\u003e","IsNaN\u003cF\u003e::operator bool() const {"," return std::isnan(value) ^ flipped;","}","DOCTEST_MSVC_SUPPRESS_WARNING_POP","template struct DOCTEST_INTERFACE_DEF IsNaN\u003cfloat\u003e;","template struct DOCTEST_INTERFACE_DEF IsNaN\u003cdouble\u003e;","template struct DOCTEST_INTERFACE_DEF IsNaN\u003clong double\u003e;","template \u003ctypename F\u003e","String toString(IsNaN\u003cF\u003e in) { return String(in.flipped ? \"! \" : \"\") + \"IsNaN( \" + doctest::toString(in.value) + \" )\"; }","String toString(IsNaN\u003cfloat\u003e in) { return toString\u003cfloat\u003e(in); }","String toString(IsNaN\u003cdouble\u003e in) { return toString\u003cdouble\u003e(in); }","String toString(IsNaN\u003cdouble long\u003e in) { return toString\u003cdouble long\u003e(in); }","","} // namespace doctest","","#ifdef DOCTEST_CONFIG_DISABLE","namespace doctest {","Context::Context(int, const char* const*) {}","Context::~Context() = default;","void Context::applyCommandLine(int, const char* const*) {}","void Context::addFilter(const char*, const char*) {}","void Context::clearFilters() {}","void Context::setOption(const char*, bool) {}","void Context::setOption(const char*, int) {}","void Context::setOption(const char*, const char*) {}","bool Context::shouldExit() { return false; }","void Context::setAsDefaultForAssertsOutOfTestCases() {}","void Context::setAssertHandler(detail::assert_handler) {}","void Context::setCout(std::ostream*) {}","int Context::run() { return 0; }","","int IReporter::get_num_active_contexts() { return 0; }","const IContextScope* const* IReporter::get_active_contexts() { return nullptr; }","int IReporter::get_num_stringified_contexts() { return 0; }","const String* IReporter::get_stringified_contexts() { return nullptr; }","","int registerReporter(const char*, int, IReporter*) { return 0; }","","} // namespace doctest","#else // DOCTEST_CONFIG_DISABLE","","#if !defined(DOCTEST_CONFIG_COLORS_NONE)","#if !defined(DOCTEST_CONFIG_COLORS_WINDOWS) \u0026\u0026 !defined(DOCTEST_CONFIG_COLORS_ANSI)","#ifdef DOCTEST_PLATFORM_WINDOWS","#define DOCTEST_CONFIG_COLORS_WINDOWS","#else // linux","#define DOCTEST_CONFIG_COLORS_ANSI","#endif // platform","#endif // DOCTEST_CONFIG_COLORS_WINDOWS \u0026\u0026 DOCTEST_CONFIG_COLORS_ANSI","#endif // DOCTEST_CONFIG_COLORS_NONE","","namespace doctest_detail_test_suite_ns {","// holds the current test suite","doctest::detail::TestSuite\u0026 getCurrentTestSuite() {"," static doctest::detail::TestSuite data{};"," return data;","}","} // namespace doctest_detail_test_suite_ns","","namespace doctest {","namespace {"," // the int (priority) is part of the key for automatic sorting - sadly one can register a"," // reporter with a duplicate name and a different priority but hopefully that won't happen often :|"," using reporterMap = std::map\u003cstd::pair\u003cint, String\u003e, reporterCreatorFunc\u003e;",""," reporterMap\u0026 getReporters() {"," static reporterMap data;"," return data;"," }"," reporterMap\u0026 getListeners() {"," static reporterMap data;"," return data;"," }","} // namespace","namespace detail {","#define DOCTEST_ITERATE_THROUGH_REPORTERS(function, ...) \\"," for(auto\u0026 curr_rep : g_cs-\u003ereporters_currently_used) \\"," curr_rep-\u003efunction(__VA_ARGS__)",""," bool checkIfShouldThrow(assertType::Enum at) {"," if(at \u0026 assertType::is_require) //!OCLINT bitwise operator in conditional"," return true;",""," if((at \u0026 assertType::is_check) //!OCLINT bitwise operator in conditional"," \u0026\u0026 getContextOptions()-\u003eabort_after \u003e 0 \u0026\u0026"," (g_cs-\u003enumAssertsFailed + g_cs-\u003enumAssertsFailedCurrentTest_atomic) \u003e="," getContextOptions()-\u003eabort_after)"," return true;",""," return false;"," }","","#ifndef DOCTEST_CONFIG_NO_EXCEPTIONS"," DOCTEST_NORETURN void throwException() {"," g_cs-\u003eshouldLogCurrentException = false;"," throw TestFailureException(); // NOLINT(hicpp-exception-baseclass)"," }","#else // DOCTEST_CONFIG_NO_EXCEPTIONS"," void throwException() {}","#endif // DOCTEST_CONFIG_NO_EXCEPTIONS","} // namespace detail","","namespace {"," using namespace detail;"," // matching of a string against a wildcard mask (case sensitivity configurable) taken from"," // https://www.codeproject.com/Articles/1088/Wildcard-string-compare-globbing"," int wildcmp(const char* str, const char* wild, bool caseSensitive) {"," const char* cp = str;"," const char* mp = wild;",""," while((*str) \u0026\u0026 (*wild != '*')) {"," if((caseSensitive ? (*wild != *str) : (tolower(*wild) != tolower(*str))) \u0026\u0026"," (*wild != '?')) {"," return 0;"," }"," wild++;"," str++;"," }",""," while(*str) {"," if(*wild == '*') {"," if(!*++wild) {"," return 1;"," }"," mp = wild;"," cp = str + 1;"," } else if((caseSensitive ? (*wild == *str) : (tolower(*wild) == tolower(*str))) ||"," (*wild == '?')) {"," wild++;"," str++;"," } else {"," wild = mp; //!OCLINT parameter reassignment"," str = cp++; //!OCLINT parameter reassignment"," }"," }",""," while(*wild == '*') {"," wild++;"," }"," return !*wild;"," }",""," // checks if the name matches any of the filters (and can be configured what to do when empty)"," bool matchesAny(const char* name, const std::vector\u003cString\u003e\u0026 filters, bool matchEmpty,"," bool caseSensitive) {"," if (filters.empty() \u0026\u0026 matchEmpty)"," return true;"," for (auto\u0026 curr : filters)"," if (wildcmp(name, curr.c_str(), caseSensitive))"," return true;"," return false;"," }",""," DOCTEST_NO_SANITIZE_INTEGER"," unsigned long long hash(unsigned long long a, unsigned long long b) {"," return (a \u003c\u003c 5) + b;"," }",""," // C string hash function (djb2) - taken from http://www.cse.yorku.ca/~oz/hash.html"," DOCTEST_NO_SANITIZE_INTEGER"," unsigned long long hash(const char* str) {"," unsigned long long hash = 5381;"," char c;"," while ((c = *str++))"," hash = ((hash \u003c\u003c 5) + hash) + c; // hash * 33 + c"," return hash;"," }",""," unsigned long long hash(const SubcaseSignature\u0026 sig) {"," return hash(hash(hash(sig.m_file), hash(sig.m_name.c_str())), sig.m_line);"," }",""," unsigned long long hash(const std::vector\u003cSubcaseSignature\u003e\u0026 sigs, size_t count) {"," unsigned long long running = 0;"," auto end = sigs.begin() + count;"," for (auto it = sigs.begin(); it != end; it++) {"," running = hash(running, hash(*it));"," }"," return running;"," }",""," unsigned long long hash(const std::vector\u003cSubcaseSignature\u003e\u0026 sigs) {"," unsigned long long running = 0;"," for (const SubcaseSignature\u0026 sig : sigs) {"," running = hash(running, hash(sig));"," }"," return running;"," }","} // namespace","namespace detail {"," bool Subcase::checkFilters() {"," if (g_cs-\u003esubcaseStack.size() \u003c size_t(g_cs-\u003esubcase_filter_levels)) {"," if (!matchesAny(m_signature.m_name.c_str(), g_cs-\u003efilters[6], true, g_cs-\u003ecase_sensitive))"," return true;"," if (matchesAny(m_signature.m_name.c_str(), g_cs-\u003efilters[7], false, g_cs-\u003ecase_sensitive))"," return true;"," }"," return false;"," }",""," Subcase::Subcase(const String\u0026 name, const char* file, int line)"," : m_signature({name, file, line}) {"," if (!g_cs-\u003ereachedLeaf) {"," if (g_cs-\u003enextSubcaseStack.size() \u003c= g_cs-\u003esubcaseStack.size()"," || g_cs-\u003enextSubcaseStack[g_cs-\u003esubcaseStack.size()] == m_signature) {"," // Going down."," if (checkFilters()) { return; }",""," g_cs-\u003esubcaseStack.push_back(m_signature);"," g_cs-\u003ecurrentSubcaseDepth++;"," m_entered = true;"," DOCTEST_ITERATE_THROUGH_REPORTERS(subcase_start, m_signature);"," }"," } else {"," if (g_cs-\u003esubcaseStack[g_cs-\u003ecurrentSubcaseDepth] == m_signature) {"," // This subcase is reentered via control flow."," g_cs-\u003ecurrentSubcaseDepth++;"," m_entered = true;"," DOCTEST_ITERATE_THROUGH_REPORTERS(subcase_start, m_signature);"," } else if (g_cs-\u003enextSubcaseStack.size() \u003c= g_cs-\u003ecurrentSubcaseDepth"," \u0026\u0026 g_cs-\u003efullyTraversedSubcases.find(hash(hash(g_cs-\u003esubcaseStack, g_cs-\u003ecurrentSubcaseDepth), hash(m_signature)))"," == g_cs-\u003efullyTraversedSubcases.end()) {"," if (checkFilters()) { return; }"," // This subcase is part of the one to be executed next."," g_cs-\u003enextSubcaseStack.clear();"," g_cs-\u003enextSubcaseStack.insert(g_cs-\u003enextSubcaseStack.end(),"," g_cs-\u003esubcaseStack.begin(), g_cs-\u003esubcaseStack.begin() + g_cs-\u003ecurrentSubcaseDepth);"," g_cs-\u003enextSubcaseStack.push_back(m_signature);"," }"," }"," }",""," DOCTEST_MSVC_SUPPRESS_WARNING_WITH_PUSH(4996) // std::uncaught_exception is deprecated in C++17"," DOCTEST_GCC_SUPPRESS_WARNING_WITH_PUSH(\"-Wdeprecated-declarations\")"," DOCTEST_CLANG_SUPPRESS_WARNING_WITH_PUSH(\"-Wdeprecated-declarations\")",""," Subcase::~Subcase() {"," if (m_entered) {"," g_cs-\u003ecurrentSubcaseDepth--;",""," if (!g_cs-\u003ereachedLeaf) {"," // Leaf."," g_cs-\u003efullyTraversedSubcases.insert(hash(g_cs-\u003esubcaseStack));"," g_cs-\u003enextSubcaseStack.clear();"," g_cs-\u003ereachedLeaf = true;"," } else if (g_cs-\u003enextSubcaseStack.empty()) {"," // All children are finished."," g_cs-\u003efullyTraversedSubcases.insert(hash(g_cs-\u003esubcaseStack));"," }","","#if defined(__cpp_lib_uncaught_exceptions) \u0026\u0026 __cpp_lib_uncaught_exceptions \u003e= 201411L \u0026\u0026 (!defined(__MAC_OS_X_VERSION_MIN_REQUIRED) || __MAC_OS_X_VERSION_MIN_REQUIRED \u003e= 101200)"," if(std::uncaught_exceptions() \u003e 0","#else"," if(std::uncaught_exception()","#endif"," \u0026\u0026 g_cs-\u003eshouldLogCurrentException) {"," DOCTEST_ITERATE_THROUGH_REPORTERS("," test_case_exception, {\"exception thrown in subcase - will translate later \""," \"when the whole test case has been exited (cannot \""," \"translate while there is an active exception)\","," false});"," g_cs-\u003eshouldLogCurrentException = false;"," }",""," DOCTEST_ITERATE_THROUGH_REPORTERS(subcase_end, DOCTEST_EMPTY);"," }"," }",""," DOCTEST_CLANG_SUPPRESS_WARNING_POP"," DOCTEST_GCC_SUPPRESS_WARNING_POP"," DOCTEST_MSVC_SUPPRESS_WARNING_POP",""," Subcase::operator bool() const { return m_entered; }",""," Result::Result(bool passed, const String\u0026 decomposition)"," : m_passed(passed)"," , m_decomp(decomposition) {}",""," ExpressionDecomposer::ExpressionDecomposer(assertType::Enum at)"," : m_at(at) {}",""," TestSuite\u0026 TestSuite::operator*(const char* in) {"," m_test_suite = in;"," return *this;"," }",""," TestCase::TestCase(funcType test, const char* file, unsigned line, const TestSuite\u0026 test_suite,"," const String\u0026 type, int template_id) {"," m_file = file;"," m_line = line;"," m_name = nullptr; // will be later overridden in operator*"," m_test_suite = test_suite.m_test_suite;"," m_description = test_suite.m_description;"," m_skip = test_suite.m_skip;"," m_no_breaks = test_suite.m_no_breaks;"," m_no_output = test_suite.m_no_output;"," m_may_fail = test_suite.m_may_fail;"," m_should_fail = test_suite.m_should_fail;"," m_expected_failures = test_suite.m_expected_failures;"," m_timeout = test_suite.m_timeout;",""," m_test = test;"," m_type = type;"," m_template_id = template_id;"," }",""," TestCase::TestCase(const TestCase\u0026 other)"," : TestCaseData() {"," *this = other;"," }",""," DOCTEST_MSVC_SUPPRESS_WARNING_WITH_PUSH(26434) // hides a non-virtual function"," TestCase\u0026 TestCase::operator=(const TestCase\u0026 other) {"," TestCaseData::operator=(other);"," m_test = other.m_test;"," m_type = other.m_type;"," m_template_id = other.m_template_id;"," m_full_name = other.m_full_name;",""," if(m_template_id != -1)"," m_name = m_full_name.c_str();"," return *this;"," }"," DOCTEST_MSVC_SUPPRESS_WARNING_POP",""," TestCase\u0026 TestCase::operator*(const char* in) {"," m_name = in;"," // make a new name with an appended type for templated test case"," if(m_template_id != -1) {"," m_full_name = String(m_name) + \"\u003c\" + m_type + \"\u003e\";"," // redirect the name to point to the newly constructed full name"," m_name = m_full_name.c_str();"," }"," return *this;"," }",""," bool TestCase::operator\u003c(const TestCase\u0026 other) const {"," // this will be used only to differentiate between test cases - not relevant for sorting"," if(m_line != other.m_line)"," return m_line \u003c other.m_line;"," const int name_cmp = strcmp(m_name, other.m_name);"," if(name_cmp != 0)"," return name_cmp \u003c 0;"," const int file_cmp = m_file.compare(other.m_file);"," if(file_cmp != 0)"," return file_cmp \u003c 0;"," return m_template_id \u003c other.m_template_id;"," }",""," // all the registered tests"," std::set\u003cTestCase\u003e\u0026 getRegisteredTests() {"," static std::set\u003cTestCase\u003e data;"," return data;"," }","} // namespace detail","namespace {"," using namespace detail;"," // for sorting tests by file/line"," bool fileOrderComparator(const TestCase* lhs, const TestCase* rhs) {"," // this is needed because MSVC gives different case for drive letters"," // for __FILE__ when evaluated in a header and a source file"," const int res = lhs-\u003em_file.compare(rhs-\u003em_file, bool(DOCTEST_MSVC));"," if(res != 0)"," return res \u003c 0;"," if(lhs-\u003em_line != rhs-\u003em_line)"," return lhs-\u003em_line \u003c rhs-\u003em_line;"," return lhs-\u003em_template_id \u003c rhs-\u003em_template_id;"," }",""," // for sorting tests by suite/file/line"," bool suiteOrderComparator(const TestCase* lhs, const TestCase* rhs) {"," const int res = std::strcmp(lhs-\u003em_test_suite, rhs-\u003em_test_suite);"," if(res != 0)"," return res \u003c 0;"," return fileOrderComparator(lhs, rhs);"," }",""," // for sorting tests by name/suite/file/line"," bool nameOrderComparator(const TestCase* lhs, const TestCase* rhs) {"," const int res = std::strcmp(lhs-\u003em_name, rhs-\u003em_name);"," if(res != 0)"," return res \u003c 0;"," return suiteOrderComparator(lhs, rhs);"," }",""," DOCTEST_CLANG_SUPPRESS_WARNING_WITH_PUSH(\"-Wdeprecated-declarations\")"," void color_to_stream(std::ostream\u0026 s, Color::Enum code) {"," static_cast\u003cvoid\u003e(s); // for DOCTEST_CONFIG_COLORS_NONE or DOCTEST_CONFIG_COLORS_WINDOWS"," static_cast\u003cvoid\u003e(code); // for DOCTEST_CONFIG_COLORS_NONE","#ifdef DOCTEST_CONFIG_COLORS_ANSI"," if(g_no_colors ||"," (isatty(STDOUT_FILENO) == false \u0026\u0026 getContextOptions()-\u003eforce_colors == false))"," return;",""," auto col = \"\";"," // clang-format off"," switch(code) { //!OCLINT missing break in switch statement / unnecessary default statement in covered switch statement"," case Color::Red: col = \"[0;31m\"; break;"," case Color::Green: col = \"[0;32m\"; break;"," case Color::Blue: col = \"[0;34m\"; break;"," case Color::Cyan: col = \"[0;36m\"; break;"," case Color::Yellow: col = \"[0;33m\"; break;"," case Color::Grey: col = \"[1;30m\"; break;"," case Color::LightGrey: col = \"[0;37m\"; break;"," case Color::BrightRed: col = \"[1;31m\"; break;"," case Color::BrightGreen: col = \"[1;32m\"; break;"," case Color::BrightWhite: col = \"[1;37m\"; break;"," case Color::Bright: // invalid"," case Color::None:"," case Color::White:"," default: col = \"[0m\";"," }"," // clang-format on"," s \u003c\u003c \"\\033\" \u003c\u003c col;","#endif // DOCTEST_CONFIG_COLORS_ANSI","","#ifdef DOCTEST_CONFIG_COLORS_WINDOWS"," if(g_no_colors ||"," (_isatty(_fileno(stdout)) == false \u0026\u0026 getContextOptions()-\u003eforce_colors == false))"," return;",""," static struct ConsoleHelper {"," HANDLE stdoutHandle;"," WORD origFgAttrs;"," WORD origBgAttrs;",""," ConsoleHelper() {"," stdoutHandle = GetStdHandle(STD_OUTPUT_HANDLE);"," CONSOLE_SCREEN_BUFFER_INFO csbiInfo;"," GetConsoleScreenBufferInfo(stdoutHandle, \u0026csbiInfo);"," origFgAttrs = csbiInfo.wAttributes \u0026 ~(BACKGROUND_GREEN | BACKGROUND_RED |"," BACKGROUND_BLUE | BACKGROUND_INTENSITY);"," origBgAttrs = csbiInfo.wAttributes \u0026 ~(FOREGROUND_GREEN | FOREGROUND_RED |"," FOREGROUND_BLUE | FOREGROUND_INTENSITY);"," }"," } ch;","","#define DOCTEST_SET_ATTR(x) SetConsoleTextAttribute(ch.stdoutHandle, x | ch.origBgAttrs)",""," // clang-format off"," switch (code) {"," case Color::White: DOCTEST_SET_ATTR(FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_BLUE); break;"," case Color::Red: DOCTEST_SET_ATTR(FOREGROUND_RED); break;"," case Color::Green: DOCTEST_SET_ATTR(FOREGROUND_GREEN); break;"," case Color::Blue: DOCTEST_SET_ATTR(FOREGROUND_BLUE); break;"," case Color::Cyan: DOCTEST_SET_ATTR(FOREGROUND_BLUE | FOREGROUND_GREEN); break;"," case Color::Yellow: DOCTEST_SET_ATTR(FOREGROUND_RED | FOREGROUND_GREEN); break;"," case Color::Grey: DOCTEST_SET_ATTR(0); break;"," case Color::LightGrey: DOCTEST_SET_ATTR(FOREGROUND_INTENSITY); break;"," case Color::BrightRed: DOCTEST_SET_ATTR(FOREGROUND_INTENSITY | FOREGROUND_RED); break;"," case Color::BrightGreen: DOCTEST_SET_ATTR(FOREGROUND_INTENSITY | FOREGROUND_GREEN); break;"," case Color::BrightWhite: DOCTEST_SET_ATTR(FOREGROUND_INTENSITY | FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_BLUE); break;"," case Color::None:"," case Color::Bright: // invalid"," default: DOCTEST_SET_ATTR(ch.origFgAttrs);"," }"," // clang-format on","#endif // DOCTEST_CONFIG_COLORS_WINDOWS"," }"," DOCTEST_CLANG_SUPPRESS_WARNING_POP",""," std::vector\u003cconst IExceptionTranslator*\u003e\u0026 getExceptionTranslators() {"," static std::vector\u003cconst IExceptionTranslator*\u003e data;"," return data;"," }",""," String translateActiveException() {","#ifndef DOCTEST_CONFIG_NO_EXCEPTIONS"," String res;"," auto\u0026 translators = getExceptionTranslators();"," for(auto\u0026 curr : translators)"," if(curr-\u003etranslate(res))"," return res;"," // clang-format off"," DOCTEST_GCC_SUPPRESS_WARNING_WITH_PUSH(\"-Wcatch-value\")"," try {"," throw;"," } catch(std::exception\u0026 ex) {"," return ex.what();"," } catch(std::string\u0026 msg) {"," return msg.c_str();"," } catch(const char* msg) {"," return msg;"," } catch(...) {"," return \"unknown exception\";"," }"," DOCTEST_GCC_SUPPRESS_WARNING_POP","// clang-format on","#else // DOCTEST_CONFIG_NO_EXCEPTIONS"," return \"\";","#endif // DOCTEST_CONFIG_NO_EXCEPTIONS"," }","} // namespace","","namespace detail {"," // used by the macros for registering tests"," int regTest(const TestCase\u0026 tc) {"," getRegisteredTests().insert(tc);"," return 0;"," }",""," // sets the current test suite"," int setTestSuite(const TestSuite\u0026 ts) {"," doctest_detail_test_suite_ns::getCurrentTestSuite() = ts;"," return 0;"," }","","#ifdef DOCTEST_IS_DEBUGGER_ACTIVE"," bool isDebuggerActive() { return DOCTEST_IS_DEBUGGER_ACTIVE(); }","#else // DOCTEST_IS_DEBUGGER_ACTIVE","#ifdef DOCTEST_PLATFORM_LINUX"," class ErrnoGuard {"," public:"," ErrnoGuard() : m_oldErrno(errno) {}"," ~ErrnoGuard() { errno = m_oldErrno; }"," private:"," int m_oldErrno;"," };"," // See the comments in Catch2 for the reasoning behind this implementation:"," // https://github.com/catchorg/Catch2/blob/v2.13.1/include/internal/catch_debugger.cpp#L79-L102"," bool isDebuggerActive() {"," ErrnoGuard guard;"," std::ifstream in(\"/proc/self/status\");"," for(std::string line; std::getline(in, line);) {"," static const int PREFIX_LEN = 11;"," if(line.compare(0, PREFIX_LEN, \"TracerPid:\\t\") == 0) {"," return line.length() \u003e PREFIX_LEN \u0026\u0026 line[PREFIX_LEN] != '0';"," }"," }"," return false;"," }","#elif defined(DOCTEST_PLATFORM_MAC)"," // The following function is taken directly from the following technical note:"," // https://developer.apple.com/library/archive/qa/qa1361/_index.html"," // Returns true if the current process is being debugged (either"," // running under the debugger or has a debugger attached post facto)."," bool isDebuggerActive() {"," int mib[4];"," kinfo_proc info;"," size_t size;"," // Initialize the flags so that, if sysctl fails for some bizarre"," // reason, we get a predictable result."," info.kp_proc.p_flag = 0;"," // Initialize mib, which tells sysctl the info we want, in this case"," // we're looking for information about a specific process ID."," mib[0] = CTL_KERN;"," mib[1] = KERN_PROC;"," mib[2] = KERN_PROC_PID;"," mib[3] = getpid();"," // Call sysctl."," size = sizeof(info);"," if(sysctl(mib, DOCTEST_COUNTOF(mib), \u0026info, \u0026size, 0, 0) != 0) {"," std::cerr \u003c\u003c \"\\nCall to sysctl failed - unable to determine if debugger is active **\\n\";"," return false;"," }"," // We're being debugged if the P_TRACED flag is set."," return ((info.kp_proc.p_flag \u0026 P_TRACED) != 0);"," }","#elif DOCTEST_MSVC || defined(__MINGW32__) || defined(__MINGW64__)"," bool isDebuggerActive() { return ::IsDebuggerPresent() != 0; }","#else"," bool isDebuggerActive() { return false; }","#endif // Platform","#endif // DOCTEST_IS_DEBUGGER_ACTIVE",""," void registerExceptionTranslatorImpl(const IExceptionTranslator* et) {"," if(std::find(getExceptionTranslators().begin(), getExceptionTranslators().end(), et) =="," getExceptionTranslators().end())"," getExceptionTranslators().push_back(et);"," }",""," DOCTEST_THREAD_LOCAL std::vector\u003cIContextScope*\u003e g_infoContexts; // for logging with INFO()",""," ContextScopeBase::ContextScopeBase() {"," g_infoContexts.push_back(this);"," }",""," ContextScopeBase::ContextScopeBase(ContextScopeBase\u0026\u0026 other) noexcept {"," if (other.need_to_destroy) {"," other.destroy();"," }"," other.need_to_destroy = false;"," g_infoContexts.push_back(this);"," }",""," DOCTEST_MSVC_SUPPRESS_WARNING_WITH_PUSH(4996) // std::uncaught_exception is deprecated in C++17"," DOCTEST_GCC_SUPPRESS_WARNING_WITH_PUSH(\"-Wdeprecated-declarations\")"," DOCTEST_CLANG_SUPPRESS_WARNING_WITH_PUSH(\"-Wdeprecated-declarations\")",""," // destroy cannot be inlined into the destructor because that would mean calling stringify after"," // ContextScope has been destroyed (base class destructors run after derived class destructors)."," // Instead, ContextScope calls this method directly from its destructor."," void ContextScopeBase::destroy() {","#if defined(__cpp_lib_uncaught_exceptions) \u0026\u0026 __cpp_lib_uncaught_exceptions \u003e= 201411L \u0026\u0026 (!defined(__MAC_OS_X_VERSION_MIN_REQUIRED) || __MAC_OS_X_VERSION_MIN_REQUIRED \u003e= 101200)"," if(std::uncaught_exceptions() \u003e 0) {","#else"," if(std::uncaught_exception()) {","#endif"," std::ostringstream s;"," this-\u003estringify(\u0026s);"," g_cs-\u003estringifiedContexts.push_back(s.str().c_str());"," }"," g_infoContexts.pop_back();"," }",""," DOCTEST_CLANG_SUPPRESS_WARNING_POP"," DOCTEST_GCC_SUPPRESS_WARNING_POP"," DOCTEST_MSVC_SUPPRESS_WARNING_POP","} // namespace detail","namespace {"," using namespace detail;","","#if !defined(DOCTEST_CONFIG_POSIX_SIGNALS) \u0026\u0026 !defined(DOCTEST_CONFIG_WINDOWS_SEH)"," struct FatalConditionHandler"," {"," static void reset() {}"," static void allocateAltStackMem() {}"," static void freeAltStackMem() {}"," };","#else // DOCTEST_CONFIG_POSIX_SIGNALS || DOCTEST_CONFIG_WINDOWS_SEH",""," void reportFatal(const std::string\u0026);","","#ifdef DOCTEST_PLATFORM_WINDOWS",""," struct SignalDefs"," {"," DWORD id;"," const char* name;"," };"," // There is no 1-1 mapping between signals and windows exceptions."," // Windows can easily distinguish between SO and SigSegV,"," // but SigInt, SigTerm, etc are handled differently."," SignalDefs signalDefs[] = {"," {static_cast\u003cDWORD\u003e(EXCEPTION_ILLEGAL_INSTRUCTION),"," \"SIGILL - Illegal instruction signal\"},"," {static_cast\u003cDWORD\u003e(EXCEPTION_STACK_OVERFLOW), \"SIGSEGV - Stack overflow\"},"," {static_cast\u003cDWORD\u003e(EXCEPTION_ACCESS_VIOLATION),"," \"SIGSEGV - Segmentation violation signal\"},"," {static_cast\u003cDWORD\u003e(EXCEPTION_INT_DIVIDE_BY_ZERO), \"Divide by zero error\"},"," };",""," struct FatalConditionHandler"," {"," static LONG CALLBACK handleException(PEXCEPTION_POINTERS ExceptionInfo) {"," // Multiple threads may enter this filter/handler at once. We want the error message to be printed on the"," // console just once no matter how many threads have crashed."," DOCTEST_DECLARE_STATIC_MUTEX(mutex)"," static bool execute = true;"," {"," DOCTEST_LOCK_MUTEX(mutex)"," if(execute) {"," bool reported = false;"," for(size_t i = 0; i \u003c DOCTEST_COUNTOF(signalDefs); ++i) {"," if(ExceptionInfo-\u003eExceptionRecord-\u003eExceptionCode == signalDefs[i].id) {"," reportFatal(signalDefs[i].name);"," reported = true;"," break;"," }"," }"," if(reported == false)"," reportFatal(\"Unhandled SEH exception caught\");"," if(isDebuggerActive() \u0026\u0026 !g_cs-\u003eno_breaks)"," DOCTEST_BREAK_INTO_DEBUGGER();"," }"," execute = false;"," }"," std::exit(EXIT_FAILURE);"," }",""," static void allocateAltStackMem() {}"," static void freeAltStackMem() {}",""," FatalConditionHandler() {"," isSet = true;"," // 32k seems enough for doctest to handle stack overflow,"," // but the value was found experimentally, so there is no strong guarantee"," guaranteeSize = 32 * 1024;"," // Register an unhandled exception filter"," previousTop = SetUnhandledExceptionFilter(handleException);"," // Pass in guarantee size to be filled"," SetThreadStackGuarantee(\u0026guaranteeSize);",""," // On Windows uncaught exceptions from another thread, exceptions from"," // destructors, or calls to std::terminate are not a SEH exception",""," // The terminal handler gets called when:"," // - std::terminate is called FROM THE TEST RUNNER THREAD"," // - an exception is thrown from a destructor FROM THE TEST RUNNER THREAD"," original_terminate_handler = std::get_terminate();"," std::set_terminate([]() DOCTEST_NOEXCEPT {"," reportFatal(\"Terminate handler called\");"," if(isDebuggerActive() \u0026\u0026 !g_cs-\u003eno_breaks)"," DOCTEST_BREAK_INTO_DEBUGGER();"," std::exit(EXIT_FAILURE); // explicitly exit - otherwise the SIGABRT handler may be called as well"," });",""," // SIGABRT is raised when:"," // - std::terminate is called FROM A DIFFERENT THREAD"," // - an exception is thrown from a destructor FROM A DIFFERENT THREAD"," // - an uncaught exception is thrown FROM A DIFFERENT THREAD"," prev_sigabrt_handler = std::signal(SIGABRT, [](int signal) DOCTEST_NOEXCEPT {"," if(signal == SIGABRT) {"," reportFatal(\"SIGABRT - Abort (abnormal termination) signal\");"," if(isDebuggerActive() \u0026\u0026 !g_cs-\u003eno_breaks)"," DOCTEST_BREAK_INTO_DEBUGGER();"," std::exit(EXIT_FAILURE);"," }"," });",""," // The following settings are taken from google test, and more"," // specifically from UnitTest::Run() inside of gtest.cc",""," // the user does not want to see pop-up dialogs about crashes"," prev_error_mode_1 = SetErrorMode(SEM_FAILCRITICALERRORS | SEM_NOALIGNMENTFAULTEXCEPT |"," SEM_NOGPFAULTERRORBOX | SEM_NOOPENFILEERRORBOX);"," // This forces the abort message to go to stderr in all circumstances."," prev_error_mode_2 = _set_error_mode(_OUT_TO_STDERR);"," // In the debug version, Visual Studio pops up a separate dialog"," // offering a choice to debug the aborted program - we want to disable that."," prev_abort_behavior = _set_abort_behavior(0x0, _WRITE_ABORT_MSG | _CALL_REPORTFAULT);"," // In debug mode, the Windows CRT can crash with an assertion over invalid"," // input (e.g. passing an invalid file descriptor). The default handling"," // for these assertions is to pop up a dialog and wait for user input."," // Instead ask the CRT to dump such assertions to stderr non-interactively."," prev_report_mode = _CrtSetReportMode(_CRT_ASSERT, _CRTDBG_MODE_FILE | _CRTDBG_MODE_DEBUG);"," prev_report_file = _CrtSetReportFile(_CRT_ASSERT, _CRTDBG_FILE_STDERR);"," }",""," static void reset() {"," if(isSet) {"," // Unregister handler and restore the old guarantee"," SetUnhandledExceptionFilter(previousTop);"," SetThreadStackGuarantee(\u0026guaranteeSize);"," std::set_terminate(original_terminate_handler);"," std::signal(SIGABRT, prev_sigabrt_handler);"," SetErrorMode(prev_error_mode_1);"," _set_error_mode(prev_error_mode_2);"," _set_abort_behavior(prev_abort_behavior, _WRITE_ABORT_MSG | _CALL_REPORTFAULT);"," static_cast\u003cvoid\u003e(_CrtSetReportMode(_CRT_ASSERT, prev_report_mode));"," static_cast\u003cvoid\u003e(_CrtSetReportFile(_CRT_ASSERT, prev_report_file));"," isSet = false;"," }"," }",""," ~FatalConditionHandler() { reset(); }",""," private:"," static UINT prev_error_mode_1;"," static int prev_error_mode_2;"," static unsigned int prev_abort_behavior;"," static int prev_report_mode;"," static _HFILE prev_report_file;"," static void (DOCTEST_CDECL *prev_sigabrt_handler)(int);"," static std::terminate_handler original_terminate_handler;"," static bool isSet;"," static ULONG guaranteeSize;"," static LPTOP_LEVEL_EXCEPTION_FILTER previousTop;"," };",""," UINT FatalConditionHandler::prev_error_mode_1;"," int FatalConditionHandler::prev_error_mode_2;"," unsigned int FatalConditionHandler::prev_abort_behavior;"," int FatalConditionHandler::prev_report_mode;"," _HFILE FatalConditionHandler::prev_report_file;"," void (DOCTEST_CDECL *FatalConditionHandler::prev_sigabrt_handler)(int);"," std::terminate_handler FatalConditionHandler::original_terminate_handler;"," bool FatalConditionHandler::isSet = false;"," ULONG FatalConditionHandler::guaranteeSize = 0;"," LPTOP_LEVEL_EXCEPTION_FILTER FatalConditionHandler::previousTop = nullptr;","","#else // DOCTEST_PLATFORM_WINDOWS",""," struct SignalDefs"," {"," int id;"," const char* name;"," };"," SignalDefs signalDefs[] = {{SIGINT, \"SIGINT - Terminal interrupt signal\"},"," {SIGILL, \"SIGILL - Illegal instruction signal\"},"," {SIGFPE, \"SIGFPE - Floating point error signal\"},"," {SIGSEGV, \"SIGSEGV - Segmentation violation signal\"},"," {SIGTERM, \"SIGTERM - Termination request signal\"},"," {SIGABRT, \"SIGABRT - Abort (abnormal termination) signal\"}};",""," struct FatalConditionHandler"," {"," static bool isSet;"," static struct sigaction oldSigActions[DOCTEST_COUNTOF(signalDefs)];"," static stack_t oldSigStack;"," static size_t altStackSize;"," static char* altStackMem;",""," static void handleSignal(int sig) {"," const char* name = \"\u003cunknown signal\u003e\";"," for(std::size_t i = 0; i \u003c DOCTEST_COUNTOF(signalDefs); ++i) {"," SignalDefs\u0026 def = signalDefs[i];"," if(sig == def.id) {"," name = def.name;"," break;"," }"," }"," reset();"," reportFatal(name);"," raise(sig);"," }",""," static void allocateAltStackMem() {"," altStackMem = new char[altStackSize];"," }",""," static void freeAltStackMem() {"," delete[] altStackMem;"," }",""," FatalConditionHandler() {"," isSet = true;"," stack_t sigStack;"," sigStack.ss_sp = altStackMem;"," sigStack.ss_size = altStackSize;"," sigStack.ss_flags = 0;"," sigaltstack(\u0026sigStack, \u0026oldSigStack);"," struct sigaction sa = {};"," sa.sa_handler = handleSignal;"," sa.sa_flags = SA_ONSTACK;"," for(std::size_t i = 0; i \u003c DOCTEST_COUNTOF(signalDefs); ++i) {"," sigaction(signalDefs[i].id, \u0026sa, \u0026oldSigActions[i]);"," }"," }",""," ~FatalConditionHandler() { reset(); }"," static void reset() {"," if(isSet) {"," // Set signals back to previous values -- hopefully nobody overwrote them in the meantime"," for(std::size_t i = 0; i \u003c DOCTEST_COUNTOF(signalDefs); ++i) {"," sigaction(signalDefs[i].id, \u0026oldSigActions[i], nullptr);"," }"," // Return the old stack"," sigaltstack(\u0026oldSigStack, nullptr);"," isSet = false;"," }"," }"," };",""," bool FatalConditionHandler::isSet = false;"," struct sigaction FatalConditionHandler::oldSigActions[DOCTEST_COUNTOF(signalDefs)] = {};"," stack_t FatalConditionHandler::oldSigStack = {};"," size_t FatalConditionHandler::altStackSize = 4 * SIGSTKSZ;"," char* FatalConditionHandler::altStackMem = nullptr;","","#endif // DOCTEST_PLATFORM_WINDOWS","#endif // DOCTEST_CONFIG_POSIX_SIGNALS || DOCTEST_CONFIG_WINDOWS_SEH","","} // namespace","","namespace {"," using namespace detail;","","#ifdef DOCTEST_PLATFORM_WINDOWS","#define DOCTEST_OUTPUT_DEBUG_STRING(text) ::OutputDebugStringA(text)","#else"," // TODO: integration with XCode and other IDEs","#define DOCTEST_OUTPUT_DEBUG_STRING(text)","#endif // Platform",""," void addAssert(assertType::Enum at) {"," if((at \u0026 assertType::is_warn) == 0) //!OCLINT bitwise operator in conditional"," g_cs-\u003enumAssertsCurrentTest_atomic++;"," }",""," void addFailedAssert(assertType::Enum at) {"," if((at \u0026 assertType::is_warn) == 0) //!OCLINT bitwise operator in conditional"," g_cs-\u003enumAssertsFailedCurrentTest_atomic++;"," }","","#if defined(DOCTEST_CONFIG_POSIX_SIGNALS) || defined(DOCTEST_CONFIG_WINDOWS_SEH)"," void reportFatal(const std::string\u0026 message) {"," g_cs-\u003efailure_flags |= TestCaseFailureReason::Crash;",""," DOCTEST_ITERATE_THROUGH_REPORTERS(test_case_exception, {message.c_str(), true});",""," while (g_cs-\u003esubcaseStack.size()) {"," g_cs-\u003esubcaseStack.pop_back();"," DOCTEST_ITERATE_THROUGH_REPORTERS(subcase_end, DOCTEST_EMPTY);"," }",""," g_cs-\u003efinalizeTestCaseData();",""," DOCTEST_ITERATE_THROUGH_REPORTERS(test_case_end, *g_cs);",""," DOCTEST_ITERATE_THROUGH_REPORTERS(test_run_end, *g_cs);"," }","#endif // DOCTEST_CONFIG_POSIX_SIGNALS || DOCTEST_CONFIG_WINDOWS_SEH","} // namespace","","AssertData::AssertData(assertType::Enum at, const char* file, int line, const char* expr,"," const char* exception_type, const StringContains\u0026 exception_string)"," : m_test_case(g_cs-\u003ecurrentTest), m_at(at), m_file(file), m_line(line), m_expr(expr),"," m_failed(true), m_threw(false), m_threw_as(false), m_exception_type(exception_type),"," m_exception_string(exception_string) {","#if DOCTEST_MSVC"," if (m_expr[0] == ' ') // this happens when variadic macros are disabled under MSVC"," ++m_expr;","#endif // MSVC","}","","namespace detail {"," ResultBuilder::ResultBuilder(assertType::Enum at, const char* file, int line, const char* expr,"," const char* exception_type, const String\u0026 exception_string)"," : AssertData(at, file, line, expr, exception_type, exception_string) { }",""," ResultBuilder::ResultBuilder(assertType::Enum at, const char* file, int line, const char* expr,"," const char* exception_type, const Contains\u0026 exception_string)"," : AssertData(at, file, line, expr, exception_type, exception_string) { }",""," void ResultBuilder::setResult(const Result\u0026 res) {"," m_decomp = res.m_decomp;"," m_failed = !res.m_passed;"," }",""," void ResultBuilder::translateException() {"," m_threw = true;"," m_exception = translateActiveException();"," }",""," bool ResultBuilder::log() {"," if(m_at \u0026 assertType::is_throws) { //!OCLINT bitwise operator in conditional"," m_failed = !m_threw;"," } else if((m_at \u0026 assertType::is_throws_as) \u0026\u0026 (m_at \u0026 assertType::is_throws_with)) { //!OCLINT"," m_failed = !m_threw_as || !m_exception_string.check(m_exception);"," } else if(m_at \u0026 assertType::is_throws_as) { //!OCLINT bitwise operator in conditional"," m_failed = !m_threw_as;"," } else if(m_at \u0026 assertType::is_throws_with) { //!OCLINT bitwise operator in conditional"," m_failed = !m_exception_string.check(m_exception);"," } else if(m_at \u0026 assertType::is_nothrow) { //!OCLINT bitwise operator in conditional"," m_failed = m_threw;"," }",""," if(m_exception.size())"," m_exception = \"\\\"\" + m_exception + \"\\\"\";",""," if(is_running_in_test) {"," addAssert(m_at);"," DOCTEST_ITERATE_THROUGH_REPORTERS(log_assert, *this);",""," if(m_failed)"," addFailedAssert(m_at);"," } else if(m_failed) {"," failed_out_of_a_testing_context(*this);"," }",""," return m_failed \u0026\u0026 isDebuggerActive() \u0026\u0026 !getContextOptions()-\u003eno_breaks \u0026\u0026"," (g_cs-\u003ecurrentTest == nullptr || !g_cs-\u003ecurrentTest-\u003em_no_breaks); // break into debugger"," }",""," void ResultBuilder::react() const {"," if(m_failed \u0026\u0026 checkIfShouldThrow(m_at))"," throwException();"," }",""," void failed_out_of_a_testing_context(const AssertData\u0026 ad) {"," if(g_cs-\u003eah)"," g_cs-\u003eah(ad);"," else"," std::abort();"," }",""," bool decomp_assert(assertType::Enum at, const char* file, int line, const char* expr,"," const Result\u0026 result) {"," bool failed = !result.m_passed;",""," // ###################################################################################"," // IF THE DEBUGGER BREAKS HERE - GO 1 LEVEL UP IN THE CALLSTACK FOR THE FAILING ASSERT"," // THIS IS THE EFFECT OF HAVING 'DOCTEST_CONFIG_SUPER_FAST_ASSERTS' DEFINED"," // ###################################################################################"," DOCTEST_ASSERT_OUT_OF_TESTS(result.m_decomp);"," DOCTEST_ASSERT_IN_TESTS(result.m_decomp);"," return !failed;"," }",""," MessageBuilder::MessageBuilder(const char* file, int line, assertType::Enum severity) {"," m_stream = tlssPush();"," m_file = file;"," m_line = line;"," m_severity = severity;"," }",""," MessageBuilder::~MessageBuilder() {"," if (!logged)"," tlssPop();"," }",""," DOCTEST_DEFINE_INTERFACE(IExceptionTranslator)",""," bool MessageBuilder::log() {"," if (!logged) {"," m_string = tlssPop();"," logged = true;"," }",""," DOCTEST_ITERATE_THROUGH_REPORTERS(log_message, *this);",""," const bool isWarn = m_severity \u0026 assertType::is_warn;",""," // warn is just a message in this context so we don't treat it as an assert"," if(!isWarn) {"," addAssert(m_severity);"," addFailedAssert(m_severity);"," }",""," return isDebuggerActive() \u0026\u0026 !getContextOptions()-\u003eno_breaks \u0026\u0026 !isWarn \u0026\u0026"," (g_cs-\u003ecurrentTest == nullptr || !g_cs-\u003ecurrentTest-\u003em_no_breaks); // break into debugger"," }",""," void MessageBuilder::react() {"," if(m_severity \u0026 assertType::is_require) //!OCLINT bitwise operator in conditional"," throwException();"," }","} // namespace detail","namespace {"," using namespace detail;",""," // clang-format off","","// =================================================================================================","// The following code has been taken verbatim from Catch2/include/internal/catch_xmlwriter.h/cpp","// This is done so cherry-picking bug fixes is trivial - even the style/formatting is untouched.","// =================================================================================================",""," class XmlEncode {"," public:"," enum ForWhat { ForTextNodes, ForAttributes };",""," XmlEncode( std::string const\u0026 str, ForWhat forWhat = ForTextNodes );",""," void encodeTo( std::ostream\u0026 os ) const;",""," friend std::ostream\u0026 operator \u003c\u003c ( std::ostream\u0026 os, XmlEncode const\u0026 xmlEncode );",""," private:"," std::string m_str;"," ForWhat m_forWhat;"," };",""," class XmlWriter {"," public:",""," class ScopedElement {"," public:"," ScopedElement( XmlWriter* writer );",""," ScopedElement( ScopedElement\u0026\u0026 other ) DOCTEST_NOEXCEPT;"," ScopedElement\u0026 operator=( ScopedElement\u0026\u0026 other ) DOCTEST_NOEXCEPT;",""," ~ScopedElement();",""," ScopedElement\u0026 writeText( std::string const\u0026 text, bool indent = true );",""," template\u003ctypename T\u003e"," ScopedElement\u0026 writeAttribute( std::string const\u0026 name, T const\u0026 attribute ) {"," m_writer-\u003ewriteAttribute( name, attribute );"," return *this;"," }",""," private:"," mutable XmlWriter* m_writer = nullptr;"," };","","#ifndef DOCTEST_CONFIG_NO_INCLUDE_IOSTREAM"," XmlWriter( std::ostream\u0026 os = std::cout );","#else // DOCTEST_CONFIG_NO_INCLUDE_IOSTREAM"," XmlWriter( std::ostream\u0026 os );","#endif // DOCTEST_CONFIG_NO_INCLUDE_IOSTREAM"," ~XmlWriter();",""," XmlWriter( XmlWriter const\u0026 ) = delete;"," XmlWriter\u0026 operator=( XmlWriter const\u0026 ) = delete;",""," XmlWriter\u0026 startElement( std::string const\u0026 name );",""," ScopedElement scopedElement( std::string const\u0026 name );",""," XmlWriter\u0026 endElement();",""," XmlWriter\u0026 writeAttribute( std::string const\u0026 name, std::string const\u0026 attribute );",""," XmlWriter\u0026 writeAttribute( std::string const\u0026 name, const char* attribute );",""," XmlWriter\u0026 writeAttribute( std::string const\u0026 name, bool attribute );",""," template\u003ctypename T\u003e"," XmlWriter\u0026 writeAttribute( std::string const\u0026 name, T const\u0026 attribute ) {"," std::stringstream rss;"," rss \u003c\u003c attribute;"," return writeAttribute( name, rss.str() );"," }",""," XmlWriter\u0026 writeText( std::string const\u0026 text, bool indent = true );",""," //XmlWriter\u0026 writeComment( std::string const\u0026 text );",""," //void writeStylesheetRef( std::string const\u0026 url );",""," //XmlWriter\u0026 writeBlankLine();",""," void ensureTagClosed();",""," void writeDeclaration();",""," private:",""," void newlineIfNecessary();",""," bool m_tagIsOpen = false;"," bool m_needsNewline = false;"," std::vector\u003cstd::string\u003e m_tags;"," std::string m_indent;"," std::ostream\u0026 m_os;"," };","","// =================================================================================================","// The following code has been taken verbatim from Catch2/include/internal/catch_xmlwriter.h/cpp","// This is done so cherry-picking bug fixes is trivial - even the style/formatting is untouched.","// =================================================================================================","","using uchar = unsigned char;","","namespace {",""," size_t trailingBytes(unsigned char c) {"," if ((c \u0026 0xE0) == 0xC0) {"," return 2;"," }"," if ((c \u0026 0xF0) == 0xE0) {"," return 3;"," }"," if ((c \u0026 0xF8) == 0xF0) {"," return 4;"," }"," DOCTEST_INTERNAL_ERROR(\"Invalid multibyte utf-8 start byte encountered\");"," }",""," uint32_t headerValue(unsigned char c) {"," if ((c \u0026 0xE0) == 0xC0) {"," return c \u0026 0x1F;"," }"," if ((c \u0026 0xF0) == 0xE0) {"," return c \u0026 0x0F;"," }"," if ((c \u0026 0xF8) == 0xF0) {"," return c \u0026 0x07;"," }"," DOCTEST_INTERNAL_ERROR(\"Invalid multibyte utf-8 start byte encountered\");"," }",""," void hexEscapeChar(std::ostream\u0026 os, unsigned char c) {"," std::ios_base::fmtflags f(os.flags());"," os \u003c\u003c \"\\\\x\""," \u003c\u003c std::uppercase \u003c\u003c std::hex \u003c\u003c std::setfill('0') \u003c\u003c std::setw(2)"," \u003c\u003c static_cast\u003cint\u003e(c);"," os.flags(f);"," }","","} // anonymous namespace",""," XmlEncode::XmlEncode( std::string const\u0026 str, ForWhat forWhat )"," : m_str( str ),"," m_forWhat( forWhat )"," {}",""," void XmlEncode::encodeTo( std::ostream\u0026 os ) const {"," // Apostrophe escaping not necessary if we always use \" to write attributes"," // (see: https://www.w3.org/TR/xml/#syntax)",""," for( std::size_t idx = 0; idx \u003c m_str.size(); ++ idx ) {"," uchar c = m_str[idx];"," switch (c) {"," case '\u003c': os \u003c\u003c \"\u0026lt;\"; break;"," case '\u0026': os \u003c\u003c \"\u0026amp;\"; break;",""," case '\u003e':"," // See: https://www.w3.org/TR/xml/#syntax"," if (idx \u003e 2 \u0026\u0026 m_str[idx - 1] == ']' \u0026\u0026 m_str[idx - 2] == ']')"," os \u003c\u003c \"\u0026gt;\";"," else"," os \u003c\u003c c;"," break;",""," case '\\\"':"," if (m_forWhat == ForAttributes)"," os \u003c\u003c \"\u0026quot;\";"," else"," os \u003c\u003c c;"," break;",""," default:"," // Check for control characters and invalid utf-8",""," // Escape control characters in standard ascii"," // see https://stackoverflow.com/questions/404107/why-are-control-characters-illegal-in-xml-1-0"," if (c \u003c 0x09 || (c \u003e 0x0D \u0026\u0026 c \u003c 0x20) || c == 0x7F) {"," hexEscapeChar(os, c);"," break;"," }",""," // Plain ASCII: Write it to stream"," if (c \u003c 0x7F) {"," os \u003c\u003c c;"," break;"," }",""," // UTF-8 territory"," // Check if the encoding is valid and if it is not, hex escape bytes."," // Important: We do not check the exact decoded values for validity, only the encoding format"," // First check that this bytes is a valid lead byte:"," // This means that it is not encoded as 1111 1XXX"," // Or as 10XX XXXX"," if (c \u003c 0xC0 ||"," c \u003e= 0xF8) {"," hexEscapeChar(os, c);"," break;"," }",""," auto encBytes = trailingBytes(c);"," // Are there enough bytes left to avoid accessing out-of-bounds memory?"," if (idx + encBytes - 1 \u003e= m_str.size()) {"," hexEscapeChar(os, c);"," break;"," }"," // The header is valid, check data"," // The next encBytes bytes must together be a valid utf-8"," // This means: bitpattern 10XX XXXX and the extracted value is sane (ish)"," bool valid = true;"," uint32_t value = headerValue(c);"," for (std::size_t n = 1; n \u003c encBytes; ++n) {"," uchar nc = m_str[idx + n];"," valid \u0026= ((nc \u0026 0xC0) == 0x80);"," value = (value \u003c\u003c 6) | (nc \u0026 0x3F);"," }",""," if ("," // Wrong bit pattern of following bytes"," (!valid) ||"," // Overlong encodings"," (value \u003c 0x80) ||"," ( value \u003c 0x800 \u0026\u0026 encBytes \u003e 2) || // removed \"0x80 \u003c= value \u0026\u0026\" because redundant"," (0x800 \u003c value \u0026\u0026 value \u003c 0x10000 \u0026\u0026 encBytes \u003e 3) ||"," // Encoded value out of range"," (value \u003e= 0x110000)"," ) {"," hexEscapeChar(os, c);"," break;"," }",""," // If we got here, this is in fact a valid(ish) utf-8 sequence"," for (std::size_t n = 0; n \u003c encBytes; ++n) {"," os \u003c\u003c m_str[idx + n];"," }"," idx += encBytes - 1;"," break;"," }"," }"," }",""," std::ostream\u0026 operator \u003c\u003c ( std::ostream\u0026 os, XmlEncode const\u0026 xmlEncode ) {"," xmlEncode.encodeTo( os );"," return os;"," }",""," XmlWriter::ScopedElement::ScopedElement( XmlWriter* writer )"," : m_writer( writer )"," {}",""," XmlWriter::ScopedElement::ScopedElement( ScopedElement\u0026\u0026 other ) DOCTEST_NOEXCEPT"," : m_writer( other.m_writer ){"," other.m_writer = nullptr;"," }"," XmlWriter::ScopedElement\u0026 XmlWriter::ScopedElement::operator=( ScopedElement\u0026\u0026 other ) DOCTEST_NOEXCEPT {"," if ( m_writer ) {"," m_writer-\u003eendElement();"," }"," m_writer = other.m_writer;"," other.m_writer = nullptr;"," return *this;"," }","",""," XmlWriter::ScopedElement::~ScopedElement() {"," if( m_writer )"," m_writer-\u003eendElement();"," }",""," XmlWriter::ScopedElement\u0026 XmlWriter::ScopedElement::writeText( std::string const\u0026 text, bool indent ) {"," m_writer-\u003ewriteText( text, indent );"," return *this;"," }",""," XmlWriter::XmlWriter( std::ostream\u0026 os ) : m_os( os )"," {"," // writeDeclaration(); // called explicitly by the reporters that use the writer class - see issue #627"," }",""," XmlWriter::~XmlWriter() {"," while( !m_tags.empty() )"," endElement();"," }",""," XmlWriter\u0026 XmlWriter::startElement( std::string const\u0026 name ) {"," ensureTagClosed();"," newlineIfNecessary();"," m_os \u003c\u003c m_indent \u003c\u003c '\u003c' \u003c\u003c name;"," m_tags.push_back( name );"," m_indent += \" \";"," m_tagIsOpen = true;"," return *this;"," }",""," XmlWriter::ScopedElement XmlWriter::scopedElement( std::string const\u0026 name ) {"," ScopedElement scoped( this );"," startElement( name );"," return scoped;"," }",""," XmlWriter\u0026 XmlWriter::endElement() {"," newlineIfNecessary();"," m_indent = m_indent.substr( 0, m_indent.size()-2 );"," if( m_tagIsOpen ) {"," m_os \u003c\u003c \"/\u003e\";"," m_tagIsOpen = false;"," }"," else {"," m_os \u003c\u003c m_indent \u003c\u003c \"\u003c/\" \u003c\u003c m_tags.back() \u003c\u003c \"\u003e\";"," }"," m_os \u003c\u003c std::endl;"," m_tags.pop_back();"," return *this;"," }",""," XmlWriter\u0026 XmlWriter::writeAttribute( std::string const\u0026 name, std::string const\u0026 attribute ) {"," if( !name.empty() \u0026\u0026 !attribute.empty() )"," m_os \u003c\u003c ' ' \u003c\u003c name \u003c\u003c \"=\\\"\" \u003c\u003c XmlEncode( attribute, XmlEncode::ForAttributes ) \u003c\u003c '\"';"," return *this;"," }",""," XmlWriter\u0026 XmlWriter::writeAttribute( std::string const\u0026 name, const char* attribute ) {"," if( !name.empty() \u0026\u0026 attribute \u0026\u0026 attribute[0] != '\\0' )"," m_os \u003c\u003c ' ' \u003c\u003c name \u003c\u003c \"=\\\"\" \u003c\u003c XmlEncode( attribute, XmlEncode::ForAttributes ) \u003c\u003c '\"';"," return *this;"," }",""," XmlWriter\u0026 XmlWriter::writeAttribute( std::string const\u0026 name, bool attribute ) {"," m_os \u003c\u003c ' ' \u003c\u003c name \u003c\u003c \"=\\\"\" \u003c\u003c ( attribute ? \"true\" : \"false\" ) \u003c\u003c '\"';"," return *this;"," }",""," XmlWriter\u0026 XmlWriter::writeText( std::string const\u0026 text, bool indent ) {"," if( !text.empty() ){"," bool tagWasOpen = m_tagIsOpen;"," ensureTagClosed();"," if( tagWasOpen \u0026\u0026 indent )"," m_os \u003c\u003c m_indent;"," m_os \u003c\u003c XmlEncode( text );"," m_needsNewline = true;"," }"," return *this;"," }",""," //XmlWriter\u0026 XmlWriter::writeComment( std::string const\u0026 text ) {"," // ensureTagClosed();"," // m_os \u003c\u003c m_indent \u003c\u003c \"\u003c!--\" \u003c\u003c text \u003c\u003c \"--\u003e\";"," // m_needsNewline = true;"," // return *this;"," //}",""," //void XmlWriter::writeStylesheetRef( std::string const\u0026 url ) {"," // m_os \u003c\u003c \"\u003c?xml-stylesheet type=\\\"text/xsl\\\" href=\\\"\" \u003c\u003c url \u003c\u003c \"\\\"?\u003e\\n\";"," //}",""," //XmlWriter\u0026 XmlWriter::writeBlankLine() {"," // ensureTagClosed();"," // m_os \u003c\u003c '\\n';"," // return *this;"," //}",""," void XmlWriter::ensureTagClosed() {"," if( m_tagIsOpen ) {"," m_os \u003c\u003c \"\u003e\" \u003c\u003c std::endl;"," m_tagIsOpen = false;"," }"," }",""," void XmlWriter::writeDeclaration() {"," m_os \u003c\u003c \"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\";"," }",""," void XmlWriter::newlineIfNecessary() {"," if( m_needsNewline ) {"," m_os \u003c\u003c std::endl;"," m_needsNewline = false;"," }"," }","","// =================================================================================================","// End of copy-pasted code from Catch","// =================================================================================================",""," // clang-format on",""," struct XmlReporter : public IReporter"," {"," XmlWriter xml;"," DOCTEST_DECLARE_MUTEX(mutex)",""," // caching pointers/references to objects of these types - safe to do"," const ContextOptions\u0026 opt;"," const TestCaseData* tc = nullptr;",""," XmlReporter(const ContextOptions\u0026 co)"," : xml(*co.cout)"," , opt(co) {}",""," void log_contexts() {"," int num_contexts = get_num_active_contexts();"," if(num_contexts) {"," auto contexts = get_active_contexts();"," std::stringstream ss;"," for(int i = 0; i \u003c num_contexts; ++i) {"," contexts[i]-\u003estringify(\u0026ss);"," xml.scopedElement(\"Info\").writeText(ss.str());"," ss.str(\"\");"," }"," }"," }",""," unsigned line(unsigned l) const { return opt.no_line_numbers ? 0 : l; }",""," void test_case_start_impl(const TestCaseData\u0026 in) {"," bool open_ts_tag = false;"," if(tc != nullptr) { // we have already opened a test suite"," if(std::strcmp(tc-\u003em_test_suite, in.m_test_suite) != 0) {"," xml.endElement();"," open_ts_tag = true;"," }"," }"," else {"," open_ts_tag = true; // first test case ==\u003e first test suite"," }",""," if(open_ts_tag) {"," xml.startElement(\"TestSuite\");"," xml.writeAttribute(\"name\", in.m_test_suite);"," }",""," tc = \u0026in;"," xml.startElement(\"TestCase\")"," .writeAttribute(\"name\", in.m_name)"," .writeAttribute(\"filename\", skipPathFromFilename(in.m_file.c_str()))"," .writeAttribute(\"line\", line(in.m_line))"," .writeAttribute(\"description\", in.m_description);",""," if(Approx(in.m_timeout) != 0)"," xml.writeAttribute(\"timeout\", in.m_timeout);"," if(in.m_may_fail)"," xml.writeAttribute(\"may_fail\", true);"," if(in.m_should_fail)"," xml.writeAttribute(\"should_fail\", true);"," }",""," // ========================================================================================="," // WHAT FOLLOWS ARE OVERRIDES OF THE VIRTUAL METHODS OF THE REPORTER INTERFACE"," // =========================================================================================",""," void report_query(const QueryData\u0026 in) override {"," test_run_start();"," if(opt.list_reporters) {"," for(auto\u0026 curr : getListeners())"," xml.scopedElement(\"Listener\")"," .writeAttribute(\"priority\", curr.first.first)"," .writeAttribute(\"name\", curr.first.second);"," for(auto\u0026 curr : getReporters())"," xml.scopedElement(\"Reporter\")"," .writeAttribute(\"priority\", curr.first.first)"," .writeAttribute(\"name\", curr.first.second);"," } else if(opt.count || opt.list_test_cases) {"," for(unsigned i = 0; i \u003c in.num_data; ++i) {"," xml.scopedElement(\"TestCase\").writeAttribute(\"name\", in.data[i]-\u003em_name)"," .writeAttribute(\"testsuite\", in.data[i]-\u003em_test_suite)"," .writeAttribute(\"filename\", skipPathFromFilename(in.data[i]-\u003em_file.c_str()))"," .writeAttribute(\"line\", line(in.data[i]-\u003em_line))"," .writeAttribute(\"skipped\", in.data[i]-\u003em_skip);"," }"," xml.scopedElement(\"OverallResultsTestCases\")"," .writeAttribute(\"unskipped\", in.run_stats-\u003enumTestCasesPassingFilters);"," } else if(opt.list_test_suites) {"," for(unsigned i = 0; i \u003c in.num_data; ++i)"," xml.scopedElement(\"TestSuite\").writeAttribute(\"name\", in.data[i]-\u003em_test_suite);"," xml.scopedElement(\"OverallResultsTestCases\")"," .writeAttribute(\"unskipped\", in.run_stats-\u003enumTestCasesPassingFilters);"," xml.scopedElement(\"OverallResultsTestSuites\")"," .writeAttribute(\"unskipped\", in.run_stats-\u003enumTestSuitesPassingFilters);"," }"," xml.endElement();"," }",""," void test_run_start() override {"," xml.writeDeclaration();",""," // remove .exe extension - mainly to have the same output on UNIX and Windows"," std::string binary_name = skipPathFromFilename(opt.binary_name.c_str());","#ifdef DOCTEST_PLATFORM_WINDOWS"," if(binary_name.rfind(\".exe\") != std::string::npos)"," binary_name = binary_name.substr(0, binary_name.length() - 4);","#endif // DOCTEST_PLATFORM_WINDOWS",""," xml.startElement(\"doctest\").writeAttribute(\"binary\", binary_name);"," if(opt.no_version == false)"," xml.writeAttribute(\"version\", DOCTEST_VERSION_STR);",""," // only the consequential ones (TODO: filters)"," xml.scopedElement(\"Options\")"," .writeAttribute(\"order_by\", opt.order_by.c_str())"," .writeAttribute(\"rand_seed\", opt.rand_seed)"," .writeAttribute(\"first\", opt.first)"," .writeAttribute(\"last\", opt.last)"," .writeAttribute(\"abort_after\", opt.abort_after)"," .writeAttribute(\"subcase_filter_levels\", opt.subcase_filter_levels)"," .writeAttribute(\"case_sensitive\", opt.case_sensitive)"," .writeAttribute(\"no_throw\", opt.no_throw)"," .writeAttribute(\"no_skip\", opt.no_skip);"," }",""," void test_run_end(const TestRunStats\u0026 p) override {"," if(tc) // the TestSuite tag - only if there has been at least 1 test case"," xml.endElement();",""," xml.scopedElement(\"OverallResultsAsserts\")"," .writeAttribute(\"successes\", p.numAsserts - p.numAssertsFailed)"," .writeAttribute(\"failures\", p.numAssertsFailed);",""," xml.startElement(\"OverallResultsTestCases\")"," .writeAttribute(\"successes\","," p.numTestCasesPassingFilters - p.numTestCasesFailed)"," .writeAttribute(\"failures\", p.numTestCasesFailed);"," if(opt.no_skipped_summary == false)"," xml.writeAttribute(\"skipped\", p.numTestCases - p.numTestCasesPassingFilters);"," xml.endElement();",""," xml.endElement();"," }",""," void test_case_start(const TestCaseData\u0026 in) override {"," test_case_start_impl(in);"," xml.ensureTagClosed();"," }",""," void test_case_reenter(const TestCaseData\u0026) override {}",""," void test_case_end(const CurrentTestCaseStats\u0026 st) override {"," xml.startElement(\"OverallResultsAsserts\")"," .writeAttribute(\"successes\","," st.numAssertsCurrentTest - st.numAssertsFailedCurrentTest)"," .writeAttribute(\"failures\", st.numAssertsFailedCurrentTest)"," .writeAttribute(\"test_case_success\", st.testCaseSuccess);"," if(opt.duration)"," xml.writeAttribute(\"duration\", st.seconds);"," if(tc-\u003em_expected_failures)"," xml.writeAttribute(\"expected_failures\", tc-\u003em_expected_failures);"," xml.endElement();",""," xml.endElement();"," }",""," void test_case_exception(const TestCaseException\u0026 e) override {"," DOCTEST_LOCK_MUTEX(mutex)",""," xml.scopedElement(\"Exception\")"," .writeAttribute(\"crash\", e.is_crash)"," .writeText(e.error_string.c_str());"," }",""," void subcase_start(const SubcaseSignature\u0026 in) override {"," xml.startElement(\"SubCase\")"," .writeAttribute(\"name\", in.m_name)"," .writeAttribute(\"filename\", skipPathFromFilename(in.m_file))"," .writeAttribute(\"line\", line(in.m_line));"," xml.ensureTagClosed();"," }",""," void subcase_end() override { xml.endElement(); }",""," void log_assert(const AssertData\u0026 rb) override {"," if(!rb.m_failed \u0026\u0026 !opt.success)"," return;",""," DOCTEST_LOCK_MUTEX(mutex)",""," xml.startElement(\"Expression\")"," .writeAttribute(\"success\", !rb.m_failed)"," .writeAttribute(\"type\", assertString(rb.m_at))"," .writeAttribute(\"filename\", skipPathFromFilename(rb.m_file))"," .writeAttribute(\"line\", line(rb.m_line));",""," xml.scopedElement(\"Original\").writeText(rb.m_expr);",""," if(rb.m_threw)"," xml.scopedElement(\"Exception\").writeText(rb.m_exception.c_str());",""," if(rb.m_at \u0026 assertType::is_throws_as)"," xml.scopedElement(\"ExpectedException\").writeText(rb.m_exception_type);"," if(rb.m_at \u0026 assertType::is_throws_with)"," xml.scopedElement(\"ExpectedExceptionString\").writeText(rb.m_exception_string.c_str());"," if((rb.m_at \u0026 assertType::is_normal) \u0026\u0026 !rb.m_threw)"," xml.scopedElement(\"Expanded\").writeText(rb.m_decomp.c_str());",""," log_contexts();",""," xml.endElement();"," }",""," void log_message(const MessageData\u0026 mb) override {"," DOCTEST_LOCK_MUTEX(mutex)",""," xml.startElement(\"Message\")"," .writeAttribute(\"type\", failureString(mb.m_severity))"," .writeAttribute(\"filename\", skipPathFromFilename(mb.m_file))"," .writeAttribute(\"line\", line(mb.m_line));",""," xml.scopedElement(\"Text\").writeText(mb.m_string.c_str());",""," log_contexts();",""," xml.endElement();"," }",""," void test_case_skipped(const TestCaseData\u0026 in) override {"," if(opt.no_skipped_summary == false) {"," test_case_start_impl(in);"," xml.writeAttribute(\"skipped\", \"true\");"," xml.endElement();"," }"," }"," };",""," DOCTEST_REGISTER_REPORTER(\"xml\", 0, XmlReporter);",""," void fulltext_log_assert_to_stream(std::ostream\u0026 s, const AssertData\u0026 rb) {"," if((rb.m_at \u0026 (assertType::is_throws_as | assertType::is_throws_with)) =="," 0) //!OCLINT bitwise operator in conditional"," s \u003c\u003c Color::Cyan \u003c\u003c assertString(rb.m_at) \u003c\u003c \"( \" \u003c\u003c rb.m_expr \u003c\u003c \" ) \""," \u003c\u003c Color::None;",""," if(rb.m_at \u0026 assertType::is_throws) { //!OCLINT bitwise operator in conditional"," s \u003c\u003c (rb.m_threw ? \"threw as expected!\" : \"did NOT throw at all!\") \u003c\u003c \"\\n\";"," } else if((rb.m_at \u0026 assertType::is_throws_as) \u0026\u0026"," (rb.m_at \u0026 assertType::is_throws_with)) { //!OCLINT"," s \u003c\u003c Color::Cyan \u003c\u003c assertString(rb.m_at) \u003c\u003c \"( \" \u003c\u003c rb.m_expr \u003c\u003c \", \\\"\""," \u003c\u003c rb.m_exception_string.c_str()"," \u003c\u003c \"\\\", \" \u003c\u003c rb.m_exception_type \u003c\u003c \" ) \" \u003c\u003c Color::None;"," if(rb.m_threw) {"," if(!rb.m_failed) {"," s \u003c\u003c \"threw as expected!\\n\";"," } else {"," s \u003c\u003c \"threw a DIFFERENT exception! (contents: \" \u003c\u003c rb.m_exception \u003c\u003c \")\\n\";"," }"," } else {"," s \u003c\u003c \"did NOT throw at all!\\n\";"," }"," } else if(rb.m_at \u0026"," assertType::is_throws_as) { //!OCLINT bitwise operator in conditional"," s \u003c\u003c Color::Cyan \u003c\u003c assertString(rb.m_at) \u003c\u003c \"( \" \u003c\u003c rb.m_expr \u003c\u003c \", \""," \u003c\u003c rb.m_exception_type \u003c\u003c \" ) \" \u003c\u003c Color::None"," \u003c\u003c (rb.m_threw ? (rb.m_threw_as ? \"threw as expected!\" :"," \"threw a DIFFERENT exception: \") :"," \"did NOT throw at all!\")"," \u003c\u003c Color::Cyan \u003c\u003c rb.m_exception \u003c\u003c \"\\n\";"," } else if(rb.m_at \u0026"," assertType::is_throws_with) { //!OCLINT bitwise operator in conditional"," s \u003c\u003c Color::Cyan \u003c\u003c assertString(rb.m_at) \u003c\u003c \"( \" \u003c\u003c rb.m_expr \u003c\u003c \", \\\"\""," \u003c\u003c rb.m_exception_string.c_str()"," \u003c\u003c \"\\\" ) \" \u003c\u003c Color::None"," \u003c\u003c (rb.m_threw ? (!rb.m_failed ? \"threw as expected!\" :"," \"threw a DIFFERENT exception: \") :"," \"did NOT throw at all!\")"," \u003c\u003c Color::Cyan \u003c\u003c rb.m_exception \u003c\u003c \"\\n\";"," } else if(rb.m_at \u0026 assertType::is_nothrow) { //!OCLINT bitwise operator in conditional"," s \u003c\u003c (rb.m_threw ? \"THREW exception: \" : \"didn't throw!\") \u003c\u003c Color::Cyan"," \u003c\u003c rb.m_exception \u003c\u003c \"\\n\";"," } else {"," s \u003c\u003c (rb.m_threw ? \"THREW exception: \" :"," (!rb.m_failed ? \"is correct!\\n\" : \"is NOT correct!\\n\"));"," if(rb.m_threw)"," s \u003c\u003c rb.m_exception \u003c\u003c \"\\n\";"," else"," s \u003c\u003c \" values: \" \u003c\u003c assertString(rb.m_at) \u003c\u003c \"( \" \u003c\u003c rb.m_decomp \u003c\u003c \" )\\n\";"," }"," }",""," // TODO:"," // - log_message()"," // - respond to queries"," // - honor remaining options"," // - more attributes in tags"," struct JUnitReporter : public IReporter"," {"," XmlWriter xml;"," DOCTEST_DECLARE_MUTEX(mutex)"," Timer timer;"," std::vector\u003cString\u003e deepestSubcaseStackNames;",""," struct JUnitTestCaseData"," {"," static std::string getCurrentTimestamp() {"," // Beware, this is not reentrant because of backward compatibility issues"," // Also, UTC only, again because of backward compatibility (%z is C++11)"," time_t rawtime;"," std::time(\u0026rawtime);"," auto const timeStampSize = sizeof(\"2017-01-16T17:06:45Z\");",""," std::tm timeInfo;","#ifdef DOCTEST_PLATFORM_WINDOWS"," gmtime_s(\u0026timeInfo, \u0026rawtime);","#else // DOCTEST_PLATFORM_WINDOWS"," gmtime_r(\u0026rawtime, \u0026timeInfo);","#endif // DOCTEST_PLATFORM_WINDOWS",""," char timeStamp[timeStampSize];"," const char* const fmt = \"%Y-%m-%dT%H:%M:%SZ\";",""," std::strftime(timeStamp, timeStampSize, fmt, \u0026timeInfo);"," return std::string(timeStamp);"," }",""," struct JUnitTestMessage"," {"," JUnitTestMessage(const std::string\u0026 _message, const std::string\u0026 _type, const std::string\u0026 _details)"," : message(_message), type(_type), details(_details) {}",""," JUnitTestMessage(const std::string\u0026 _message, const std::string\u0026 _details)"," : message(_message), type(), details(_details) {}",""," std::string message, type, details;"," };",""," struct JUnitTestCase"," {"," JUnitTestCase(const std::string\u0026 _classname, const std::string\u0026 _name)"," : classname(_classname), name(_name), time(0), failures() {}",""," std::string classname, name;"," double time;"," std::vector\u003cJUnitTestMessage\u003e failures, errors;"," };",""," void add(const std::string\u0026 classname, const std::string\u0026 name) {"," testcases.emplace_back(classname, name);"," }",""," void appendSubcaseNamesToLastTestcase(std::vector\u003cString\u003e nameStack) {"," for(auto\u0026 curr: nameStack)"," if(curr.size())"," testcases.back().name += std::string(\"/\") + curr.c_str();"," }",""," void addTime(double time) {"," if(time \u003c 1e-4)"," time = 0;"," testcases.back().time = time;"," totalSeconds += time;"," }",""," void addFailure(const std::string\u0026 message, const std::string\u0026 type, const std::string\u0026 details) {"," testcases.back().failures.emplace_back(message, type, details);"," ++totalFailures;"," }",""," void addError(const std::string\u0026 message, const std::string\u0026 details) {"," testcases.back().errors.emplace_back(message, details);"," ++totalErrors;"," }",""," std::vector\u003cJUnitTestCase\u003e testcases;"," double totalSeconds = 0;"," int totalErrors = 0, totalFailures = 0;"," };",""," JUnitTestCaseData testCaseData;",""," // caching pointers/references to objects of these types - safe to do"," const ContextOptions\u0026 opt;"," const TestCaseData* tc = nullptr;",""," JUnitReporter(const ContextOptions\u0026 co)"," : xml(*co.cout)"," , opt(co) {}",""," unsigned line(unsigned l) const { return opt.no_line_numbers ? 0 : l; }",""," // ========================================================================================="," // WHAT FOLLOWS ARE OVERRIDES OF THE VIRTUAL METHODS OF THE REPORTER INTERFACE"," // =========================================================================================",""," void report_query(const QueryData\u0026) override {"," xml.writeDeclaration();"," }",""," void test_run_start() override {"," xml.writeDeclaration();"," }",""," void test_run_end(const TestRunStats\u0026 p) override {"," // remove .exe extension - mainly to have the same output on UNIX and Windows"," std::string binary_name = skipPathFromFilename(opt.binary_name.c_str());","#ifdef DOCTEST_PLATFORM_WINDOWS"," if(binary_name.rfind(\".exe\") != std::string::npos)"," binary_name = binary_name.substr(0, binary_name.length() - 4);","#endif // DOCTEST_PLATFORM_WINDOWS"," xml.startElement(\"testsuites\");"," xml.startElement(\"testsuite\").writeAttribute(\"name\", binary_name)"," .writeAttribute(\"errors\", testCaseData.totalErrors)"," .writeAttribute(\"failures\", testCaseData.totalFailures)"," .writeAttribute(\"tests\", p.numAsserts);"," if(opt.no_time_in_output == false) {"," xml.writeAttribute(\"time\", testCaseData.totalSeconds);"," xml.writeAttribute(\"timestamp\", JUnitTestCaseData::getCurrentTimestamp());"," }"," if(opt.no_version == false)"," xml.writeAttribute(\"doctest_version\", DOCTEST_VERSION_STR);",""," for(const auto\u0026 testCase : testCaseData.testcases) {"," xml.startElement(\"testcase\")"," .writeAttribute(\"classname\", testCase.classname)"," .writeAttribute(\"name\", testCase.name);"," if(opt.no_time_in_output == false)"," xml.writeAttribute(\"time\", testCase.time);"," // This is not ideal, but it should be enough to mimic gtest's junit output."," xml.writeAttribute(\"status\", \"run\");",""," for(const auto\u0026 failure : testCase.failures) {"," xml.scopedElement(\"failure\")"," .writeAttribute(\"message\", failure.message)"," .writeAttribute(\"type\", failure.type)"," .writeText(failure.details, false);"," }",""," for(const auto\u0026 error : testCase.errors) {"," xml.scopedElement(\"error\")"," .writeAttribute(\"message\", error.message)"," .writeText(error.details);"," }",""," xml.endElement();"," }"," xml.endElement();"," xml.endElement();"," }",""," void test_case_start(const TestCaseData\u0026 in) override {"," testCaseData.add(skipPathFromFilename(in.m_file.c_str()), in.m_name);"," timer.start();"," }",""," void test_case_reenter(const TestCaseData\u0026 in) override {"," testCaseData.addTime(timer.getElapsedSeconds());"," testCaseData.appendSubcaseNamesToLastTestcase(deepestSubcaseStackNames);"," deepestSubcaseStackNames.clear();",""," timer.start();"," testCaseData.add(skipPathFromFilename(in.m_file.c_str()), in.m_name);"," }",""," void test_case_end(const CurrentTestCaseStats\u0026) override {"," testCaseData.addTime(timer.getElapsedSeconds());"," testCaseData.appendSubcaseNamesToLastTestcase(deepestSubcaseStackNames);"," deepestSubcaseStackNames.clear();"," }",""," void test_case_exception(const TestCaseException\u0026 e) override {"," DOCTEST_LOCK_MUTEX(mutex)"," testCaseData.addError(\"exception\", e.error_string.c_str());"," }",""," void subcase_start(const SubcaseSignature\u0026 in) override {"," deepestSubcaseStackNames.push_back(in.m_name);"," }",""," void subcase_end() override {}",""," void log_assert(const AssertData\u0026 rb) override {"," if(!rb.m_failed) // report only failures \u0026 ignore the `success` option"," return;",""," DOCTEST_LOCK_MUTEX(mutex)",""," std::ostringstream os;"," os \u003c\u003c skipPathFromFilename(rb.m_file) \u003c\u003c (opt.gnu_file_line ? \":\" : \"(\")"," \u003c\u003c line(rb.m_line) \u003c\u003c (opt.gnu_file_line ? \":\" : \"):\") \u003c\u003c std::endl;",""," fulltext_log_assert_to_stream(os, rb);"," log_contexts(os);"," testCaseData.addFailure(rb.m_decomp.c_str(), assertString(rb.m_at), os.str());"," }",""," void log_message(const MessageData\u0026 mb) override {"," if(mb.m_severity \u0026 assertType::is_warn) // report only failures"," return;",""," DOCTEST_LOCK_MUTEX(mutex)",""," std::ostringstream os;"," os \u003c\u003c skipPathFromFilename(mb.m_file) \u003c\u003c (opt.gnu_file_line ? \":\" : \"(\")"," \u003c\u003c line(mb.m_line) \u003c\u003c (opt.gnu_file_line ? \":\" : \"):\") \u003c\u003c std::endl;",""," os \u003c\u003c mb.m_string.c_str() \u003c\u003c \"\\n\";"," log_contexts(os);",""," testCaseData.addFailure(mb.m_string.c_str(),"," mb.m_severity \u0026 assertType::is_check ? \"FAIL_CHECK\" : \"FAIL\", os.str());"," }",""," void test_case_skipped(const TestCaseData\u0026) override {}",""," void log_contexts(std::ostringstream\u0026 s) {"," int num_contexts = get_num_active_contexts();"," if(num_contexts) {"," auto contexts = get_active_contexts();",""," s \u003c\u003c \" logged: \";"," for(int i = 0; i \u003c num_contexts; ++i) {"," s \u003c\u003c (i == 0 ? \"\" : \" \");"," contexts[i]-\u003estringify(\u0026s);"," s \u003c\u003c std::endl;"," }"," }"," }"," };",""," DOCTEST_REGISTER_REPORTER(\"junit\", 0, JUnitReporter);",""," struct Whitespace"," {"," int nrSpaces;"," explicit Whitespace(int nr)"," : nrSpaces(nr) {}"," };",""," std::ostream\u0026 operator\u003c\u003c(std::ostream\u0026 out, const Whitespace\u0026 ws) {"," if(ws.nrSpaces != 0)"," out \u003c\u003c std::setw(ws.nrSpaces) \u003c\u003c ' ';"," return out;"," }",""," struct ConsoleReporter : public IReporter"," {"," std::ostream\u0026 s;"," bool hasLoggedCurrentTestStart;"," std::vector\u003cSubcaseSignature\u003e subcasesStack;"," size_t currentSubcaseLevel;"," DOCTEST_DECLARE_MUTEX(mutex)",""," // caching pointers/references to objects of these types - safe to do"," const ContextOptions\u0026 opt;"," const TestCaseData* tc;",""," ConsoleReporter(const ContextOptions\u0026 co)"," : s(*co.cout)"," , opt(co) {}",""," ConsoleReporter(const ContextOptions\u0026 co, std::ostream\u0026 ostr)"," : s(ostr)"," , opt(co) {}",""," // ========================================================================================="," // WHAT FOLLOWS ARE HELPERS USED BY THE OVERRIDES OF THE VIRTUAL METHODS OF THE INTERFACE"," // =========================================================================================",""," void separator_to_stream() {"," s \u003c\u003c Color::Yellow"," \u003c\u003c \"===============================================================================\""," \"\\n\";"," }",""," const char* getSuccessOrFailString(bool success, assertType::Enum at,"," const char* success_str) {"," if(success)"," return success_str;"," return failureString(at);"," }",""," Color::Enum getSuccessOrFailColor(bool success, assertType::Enum at) {"," return success ? Color::BrightGreen :"," (at \u0026 assertType::is_warn) ? Color::Yellow : Color::Red;"," }",""," void successOrFailColoredStringToStream(bool success, assertType::Enum at,"," const char* success_str = \"SUCCESS\") {"," s \u003c\u003c getSuccessOrFailColor(success, at)"," \u003c\u003c getSuccessOrFailString(success, at, success_str) \u003c\u003c \": \";"," }",""," void log_contexts() {"," int num_contexts = get_num_active_contexts();"," if(num_contexts) {"," auto contexts = get_active_contexts();",""," s \u003c\u003c Color::None \u003c\u003c \" logged: \";"," for(int i = 0; i \u003c num_contexts; ++i) {"," s \u003c\u003c (i == 0 ? \"\" : \" \");"," contexts[i]-\u003estringify(\u0026s);"," s \u003c\u003c \"\\n\";"," }"," }",""," s \u003c\u003c \"\\n\";"," }",""," // this was requested to be made virtual so users could override it"," virtual void file_line_to_stream(const char* file, int line,"," const char* tail = \"\") {"," s \u003c\u003c Color::LightGrey \u003c\u003c skipPathFromFilename(file) \u003c\u003c (opt.gnu_file_line ? \":\" : \"(\")"," \u003c\u003c (opt.no_line_numbers ? 0 : line) // 0 or the real num depending on the option"," \u003c\u003c (opt.gnu_file_line ? \":\" : \"):\") \u003c\u003c tail;"," }",""," void logTestStart() {"," if(hasLoggedCurrentTestStart)"," return;",""," separator_to_stream();"," file_line_to_stream(tc-\u003em_file.c_str(), tc-\u003em_line, \"\\n\");"," if(tc-\u003em_description)"," s \u003c\u003c Color::Yellow \u003c\u003c \"DESCRIPTION: \" \u003c\u003c Color::None \u003c\u003c tc-\u003em_description \u003c\u003c \"\\n\";"," if(tc-\u003em_test_suite \u0026\u0026 tc-\u003em_test_suite[0] != '\\0')"," s \u003c\u003c Color::Yellow \u003c\u003c \"TEST SUITE: \" \u003c\u003c Color::None \u003c\u003c tc-\u003em_test_suite \u003c\u003c \"\\n\";"," if(strncmp(tc-\u003em_name, \" Scenario:\", 11) != 0)"," s \u003c\u003c Color::Yellow \u003c\u003c \"TEST CASE: \";"," s \u003c\u003c Color::None \u003c\u003c tc-\u003em_name \u003c\u003c \"\\n\";",""," for(size_t i = 0; i \u003c currentSubcaseLevel; ++i) {"," if(subcasesStack[i].m_name[0] != '\\0')"," s \u003c\u003c \" \" \u003c\u003c subcasesStack[i].m_name \u003c\u003c \"\\n\";"," }",""," if(currentSubcaseLevel != subcasesStack.size()) {"," s \u003c\u003c Color::Yellow \u003c\u003c \"\\nDEEPEST SUBCASE STACK REACHED (DIFFERENT FROM THE CURRENT ONE):\\n\" \u003c\u003c Color::None;"," for(size_t i = 0; i \u003c subcasesStack.size(); ++i) {"," if(subcasesStack[i].m_name[0] != '\\0')"," s \u003c\u003c \" \" \u003c\u003c subcasesStack[i].m_name \u003c\u003c \"\\n\";"," }"," }",""," s \u003c\u003c \"\\n\";",""," hasLoggedCurrentTestStart = true;"," }",""," void printVersion() {"," if(opt.no_version == false)"," s \u003c\u003c Color::Cyan \u003c\u003c \"[doctest] \" \u003c\u003c Color::None \u003c\u003c \"doctest version is \\\"\""," \u003c\u003c DOCTEST_VERSION_STR \u003c\u003c \"\\\"\\n\";"," }",""," void printIntro() {"," if(opt.no_intro == false) {"," printVersion();"," s \u003c\u003c Color::Cyan \u003c\u003c \"[doctest] \" \u003c\u003c Color::None"," \u003c\u003c \"run with \\\"--\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"help\\\" for options\\n\";"," }"," }",""," void printHelp() {"," int sizePrefixDisplay = static_cast\u003cint\u003e(strlen(DOCTEST_OPTIONS_PREFIX_DISPLAY));"," printVersion();"," // clang-format off"," s \u003c\u003c Color::Cyan \u003c\u003c \"[doctest]\\n\" \u003c\u003c Color::None;"," s \u003c\u003c Color::Cyan \u003c\u003c \"[doctest] \" \u003c\u003c Color::None;"," s \u003c\u003c \"boolean values: \\\"1/on/yes/true\\\" or \\\"0/off/no/false\\\"\\n\";"," s \u003c\u003c Color::Cyan \u003c\u003c \"[doctest] \" \u003c\u003c Color::None;"," s \u003c\u003c \"filter values: \\\"str1,str2,str3\\\" (comma separated strings)\\n\";"," s \u003c\u003c Color::Cyan \u003c\u003c \"[doctest]\\n\" \u003c\u003c Color::None;"," s \u003c\u003c Color::Cyan \u003c\u003c \"[doctest] \" \u003c\u003c Color::None;"," s \u003c\u003c \"filters use wildcards for matching strings\\n\";"," s \u003c\u003c Color::Cyan \u003c\u003c \"[doctest] \" \u003c\u003c Color::None;"," s \u003c\u003c \"something passes a filter if any of the strings in a filter matches\\n\";","#ifndef DOCTEST_CONFIG_NO_UNPREFIXED_OPTIONS"," s \u003c\u003c Color::Cyan \u003c\u003c \"[doctest]\\n\" \u003c\u003c Color::None;"," s \u003c\u003c Color::Cyan \u003c\u003c \"[doctest] \" \u003c\u003c Color::None;"," s \u003c\u003c \"ALL FLAGS, OPTIONS AND FILTERS ALSO AVAILABLE WITH A \\\"\" DOCTEST_CONFIG_OPTIONS_PREFIX \"\\\" PREFIX!!!\\n\";","#endif"," s \u003c\u003c Color::Cyan \u003c\u003c \"[doctest]\\n\" \u003c\u003c Color::None;"," s \u003c\u003c Color::Cyan \u003c\u003c \"[doctest] \" \u003c\u003c Color::None;"," s \u003c\u003c \"Query flags - the program quits after them. Available:\\n\\n\";"," s \u003c\u003c \" -\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"?, --\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"help, -\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"h \""," \u003c\u003c Whitespace(sizePrefixDisplay*0) \u003c\u003c \"prints this message\\n\";"," s \u003c\u003c \" -\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"v, --\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"version \""," \u003c\u003c Whitespace(sizePrefixDisplay*1) \u003c\u003c \"prints the version\\n\";"," s \u003c\u003c \" -\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"c, --\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"count \""," \u003c\u003c Whitespace(sizePrefixDisplay*1) \u003c\u003c \"prints the number of matching tests\\n\";"," s \u003c\u003c \" -\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"ltc, --\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"list-test-cases \""," \u003c\u003c Whitespace(sizePrefixDisplay*1) \u003c\u003c \"lists all matching tests by name\\n\";"," s \u003c\u003c \" -\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"lts, --\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"list-test-suites \""," \u003c\u003c Whitespace(sizePrefixDisplay*1) \u003c\u003c \"lists all matching test suites\\n\";"," s \u003c\u003c \" -\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"lr, --\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"list-reporters \""," \u003c\u003c Whitespace(sizePrefixDisplay*1) \u003c\u003c \"lists all registered reporters\\n\\n\";"," // ================================================================================== \u003c\u003c 79"," s \u003c\u003c Color::Cyan \u003c\u003c \"[doctest] \" \u003c\u003c Color::None;"," s \u003c\u003c \"The available \u003cint\u003e/\u003cstring\u003e options/filters are:\\n\\n\";"," s \u003c\u003c \" -\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"tc, --\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"test-case=\u003cfilters\u003e \""," \u003c\u003c Whitespace(sizePrefixDisplay*1) \u003c\u003c \"filters tests by their name\\n\";"," s \u003c\u003c \" -\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"tce, --\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"test-case-exclude=\u003cfilters\u003e \""," \u003c\u003c Whitespace(sizePrefixDisplay*1) \u003c\u003c \"filters OUT tests by their name\\n\";"," s \u003c\u003c \" -\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"sf, --\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"source-file=\u003cfilters\u003e \""," \u003c\u003c Whitespace(sizePrefixDisplay*1) \u003c\u003c \"filters tests by their file\\n\";"," s \u003c\u003c \" -\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"sfe, --\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"source-file-exclude=\u003cfilters\u003e \""," \u003c\u003c Whitespace(sizePrefixDisplay*1) \u003c\u003c \"filters OUT tests by their file\\n\";"," s \u003c\u003c \" -\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"ts, --\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"test-suite=\u003cfilters\u003e \""," \u003c\u003c Whitespace(sizePrefixDisplay*1) \u003c\u003c \"filters tests by their test suite\\n\";"," s \u003c\u003c \" -\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"tse, --\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"test-suite-exclude=\u003cfilters\u003e \""," \u003c\u003c Whitespace(sizePrefixDisplay*1) \u003c\u003c \"filters OUT tests by their test suite\\n\";"," s \u003c\u003c \" -\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"sc, --\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"subcase=\u003cfilters\u003e \""," \u003c\u003c Whitespace(sizePrefixDisplay*1) \u003c\u003c \"filters subcases by their name\\n\";"," s \u003c\u003c \" -\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"sce, --\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"subcase-exclude=\u003cfilters\u003e \""," \u003c\u003c Whitespace(sizePrefixDisplay*1) \u003c\u003c \"filters OUT subcases by their name\\n\";"," s \u003c\u003c \" -\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"r, --\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"reporters=\u003cfilters\u003e \""," \u003c\u003c Whitespace(sizePrefixDisplay*1) \u003c\u003c \"reporters to use (console is default)\\n\";"," s \u003c\u003c \" -\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"o, --\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"out=\u003cstring\u003e \""," \u003c\u003c Whitespace(sizePrefixDisplay*1) \u003c\u003c \"output filename\\n\";"," s \u003c\u003c \" -\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"ob, --\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"order-by=\u003cstring\u003e \""," \u003c\u003c Whitespace(sizePrefixDisplay*1) \u003c\u003c \"how the tests should be ordered\\n\";"," s \u003c\u003c Whitespace(sizePrefixDisplay*3) \u003c\u003c \" \u003cstring\u003e - [file/suite/name/rand/none]\\n\";"," s \u003c\u003c \" -\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"rs, --\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"rand-seed=\u003cint\u003e \""," \u003c\u003c Whitespace(sizePrefixDisplay*1) \u003c\u003c \"seed for random ordering\\n\";"," s \u003c\u003c \" -\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"f, --\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"first=\u003cint\u003e \""," \u003c\u003c Whitespace(sizePrefixDisplay*1) \u003c\u003c \"the first test passing the filters to\\n\";"," s \u003c\u003c Whitespace(sizePrefixDisplay*3) \u003c\u003c \" execute - for range-based execution\\n\";"," s \u003c\u003c \" -\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"l, --\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"last=\u003cint\u003e \""," \u003c\u003c Whitespace(sizePrefixDisplay*1) \u003c\u003c \"the last test passing the filters to\\n\";"," s \u003c\u003c Whitespace(sizePrefixDisplay*3) \u003c\u003c \" execute - for range-based execution\\n\";"," s \u003c\u003c \" -\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"aa, --\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"abort-after=\u003cint\u003e \""," \u003c\u003c Whitespace(sizePrefixDisplay*1) \u003c\u003c \"stop after \u003cint\u003e failed assertions\\n\";"," s \u003c\u003c \" -\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"scfl,--\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"subcase-filter-levels=\u003cint\u003e \""," \u003c\u003c Whitespace(sizePrefixDisplay*1) \u003c\u003c \"apply filters for the first \u003cint\u003e levels\\n\";"," s \u003c\u003c Color::Cyan \u003c\u003c \"\\n[doctest] \" \u003c\u003c Color::None;"," s \u003c\u003c \"Bool options - can be used like flags and true is assumed. Available:\\n\\n\";"," s \u003c\u003c \" -\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"s, --\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"success=\u003cbool\u003e \""," \u003c\u003c Whitespace(sizePrefixDisplay*1) \u003c\u003c \"include successful assertions in output\\n\";"," s \u003c\u003c \" -\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"cs, --\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"case-sensitive=\u003cbool\u003e \""," \u003c\u003c Whitespace(sizePrefixDisplay*1) \u003c\u003c \"filters being treated as case sensitive\\n\";"," s \u003c\u003c \" -\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"e, --\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"exit=\u003cbool\u003e \""," \u003c\u003c Whitespace(sizePrefixDisplay*1) \u003c\u003c \"exits after the tests finish\\n\";"," s \u003c\u003c \" -\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"d, --\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"duration=\u003cbool\u003e \""," \u003c\u003c Whitespace(sizePrefixDisplay*1) \u003c\u003c \"prints the time duration of each test\\n\";"," s \u003c\u003c \" -\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"m, --\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"minimal=\u003cbool\u003e \""," \u003c\u003c Whitespace(sizePrefixDisplay*1) \u003c\u003c \"minimal console output (only failures)\\n\";"," s \u003c\u003c \" -\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"q, --\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"quiet=\u003cbool\u003e \""," \u003c\u003c Whitespace(sizePrefixDisplay*1) \u003c\u003c \"no console output\\n\";"," s \u003c\u003c \" -\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"nt, --\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"no-throw=\u003cbool\u003e \""," \u003c\u003c Whitespace(sizePrefixDisplay*1) \u003c\u003c \"skips exceptions-related assert checks\\n\";"," s \u003c\u003c \" -\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"ne, --\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"no-exitcode=\u003cbool\u003e \""," \u003c\u003c Whitespace(sizePrefixDisplay*1) \u003c\u003c \"returns (or exits) always with success\\n\";"," s \u003c\u003c \" -\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"nr, --\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"no-run=\u003cbool\u003e \""," \u003c\u003c Whitespace(sizePrefixDisplay*1) \u003c\u003c \"skips all runtime doctest operations\\n\";"," s \u003c\u003c \" -\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"ni, --\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"no-intro=\u003cbool\u003e \""," \u003c\u003c Whitespace(sizePrefixDisplay*1) \u003c\u003c \"omit the framework intro in the output\\n\";"," s \u003c\u003c \" -\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"nv, --\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"no-version=\u003cbool\u003e \""," \u003c\u003c Whitespace(sizePrefixDisplay*1) \u003c\u003c \"omit the framework version in the output\\n\";"," s \u003c\u003c \" -\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"nc, --\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"no-colors=\u003cbool\u003e \""," \u003c\u003c Whitespace(sizePrefixDisplay*1) \u003c\u003c \"disables colors in output\\n\";"," s \u003c\u003c \" -\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"fc, --\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"force-colors=\u003cbool\u003e \""," \u003c\u003c Whitespace(sizePrefixDisplay*1) \u003c\u003c \"use colors even when not in a tty\\n\";"," s \u003c\u003c \" -\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"nb, --\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"no-breaks=\u003cbool\u003e \""," \u003c\u003c Whitespace(sizePrefixDisplay*1) \u003c\u003c \"disables breakpoints in debuggers\\n\";"," s \u003c\u003c \" -\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"ns, --\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"no-skip=\u003cbool\u003e \""," \u003c\u003c Whitespace(sizePrefixDisplay*1) \u003c\u003c \"don't skip test cases marked as skip\\n\";"," s \u003c\u003c \" -\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"gfl, --\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"gnu-file-line=\u003cbool\u003e \""," \u003c\u003c Whitespace(sizePrefixDisplay*1) \u003c\u003c \":n: vs (n): for line numbers in output\\n\";"," s \u003c\u003c \" -\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"npf, --\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"no-path-filenames=\u003cbool\u003e \""," \u003c\u003c Whitespace(sizePrefixDisplay*1) \u003c\u003c \"only filenames and no paths in output\\n\";"," s \u003c\u003c \" -\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"nln, --\" DOCTEST_OPTIONS_PREFIX_DISPLAY \"no-line-numbers=\u003cbool\u003e \""," \u003c\u003c Whitespace(sizePrefixDisplay*1) \u003c\u003c \"0 instead of real line numbers in output\\n\";"," // ================================================================================== \u003c\u003c 79"," // clang-format on",""," s \u003c\u003c Color::Cyan \u003c\u003c \"\\n[doctest] \" \u003c\u003c Color::None;"," s \u003c\u003c \"for more information visit the project documentation\\n\\n\";"," }",""," void printRegisteredReporters() {"," printVersion();"," auto printReporters = [this] (const reporterMap\u0026 reporters, const char* type) {"," if(reporters.size()) {"," s \u003c\u003c Color::Cyan \u003c\u003c \"[doctest] \" \u003c\u003c Color::None \u003c\u003c \"listing all registered \" \u003c\u003c type \u003c\u003c \"\\n\";"," for(auto\u0026 curr : reporters)"," s \u003c\u003c \"priority: \" \u003c\u003c std::setw(5) \u003c\u003c curr.first.first"," \u003c\u003c \" name: \" \u003c\u003c curr.first.second \u003c\u003c \"\\n\";"," }"," };"," printReporters(getListeners(), \"listeners\");"," printReporters(getReporters(), \"reporters\");"," }",""," // ========================================================================================="," // WHAT FOLLOWS ARE OVERRIDES OF THE VIRTUAL METHODS OF THE REPORTER INTERFACE"," // =========================================================================================",""," void report_query(const QueryData\u0026 in) override {"," if(opt.version) {"," printVersion();"," } else if(opt.help) {"," printHelp();"," } else if(opt.list_reporters) {"," printRegisteredReporters();"," } else if(opt.count || opt.list_test_cases) {"," if(opt.list_test_cases) {"," s \u003c\u003c Color::Cyan \u003c\u003c \"[doctest] \" \u003c\u003c Color::None"," \u003c\u003c \"listing all test case names\\n\";"," separator_to_stream();"," }",""," for(unsigned i = 0; i \u003c in.num_data; ++i)"," s \u003c\u003c Color::None \u003c\u003c in.data[i]-\u003em_name \u003c\u003c \"\\n\";",""," separator_to_stream();",""," s \u003c\u003c Color::Cyan \u003c\u003c \"[doctest] \" \u003c\u003c Color::None"," \u003c\u003c \"unskipped test cases passing the current filters: \""," \u003c\u003c g_cs-\u003enumTestCasesPassingFilters \u003c\u003c \"\\n\";",""," } else if(opt.list_test_suites) {"," s \u003c\u003c Color::Cyan \u003c\u003c \"[doctest] \" \u003c\u003c Color::None \u003c\u003c \"listing all test suites\\n\";"," separator_to_stream();",""," for(unsigned i = 0; i \u003c in.num_data; ++i)"," s \u003c\u003c Color::None \u003c\u003c in.data[i]-\u003em_test_suite \u003c\u003c \"\\n\";",""," separator_to_stream();",""," s \u003c\u003c Color::Cyan \u003c\u003c \"[doctest] \" \u003c\u003c Color::None"," \u003c\u003c \"unskipped test cases passing the current filters: \""," \u003c\u003c g_cs-\u003enumTestCasesPassingFilters \u003c\u003c \"\\n\";"," s \u003c\u003c Color::Cyan \u003c\u003c \"[doctest] \" \u003c\u003c Color::None"," \u003c\u003c \"test suites with unskipped test cases passing the current filters: \""," \u003c\u003c g_cs-\u003enumTestSuitesPassingFilters \u003c\u003c \"\\n\";"," }"," }",""," void test_run_start() override {"," if(!opt.minimal)"," printIntro();"," }",""," void test_run_end(const TestRunStats\u0026 p) override {"," if(opt.minimal \u0026\u0026 p.numTestCasesFailed == 0)"," return;",""," separator_to_stream();"," s \u003c\u003c std::dec;",""," auto totwidth = int(std::ceil(log10(static_cast\u003cdouble\u003e(std::max(p.numTestCasesPassingFilters, static_cast\u003cunsigned\u003e(p.numAsserts))) + 1)));"," auto passwidth = int(std::ceil(log10(static_cast\u003cdouble\u003e(std::max(p.numTestCasesPassingFilters - p.numTestCasesFailed, static_cast\u003cunsigned\u003e(p.numAsserts - p.numAssertsFailed))) + 1)));"," auto failwidth = int(std::ceil(log10(static_cast\u003cdouble\u003e(std::max(p.numTestCasesFailed, static_cast\u003cunsigned\u003e(p.numAssertsFailed))) + 1)));"," const bool anythingFailed = p.numTestCasesFailed \u003e 0 || p.numAssertsFailed \u003e 0;"," s \u003c\u003c Color::Cyan \u003c\u003c \"[doctest] \" \u003c\u003c Color::None \u003c\u003c \"test cases: \" \u003c\u003c std::setw(totwidth)"," \u003c\u003c p.numTestCasesPassingFilters \u003c\u003c \" | \""," \u003c\u003c ((p.numTestCasesPassingFilters == 0 || anythingFailed) ? Color::None :"," Color::Green)"," \u003c\u003c std::setw(passwidth) \u003c\u003c p.numTestCasesPassingFilters - p.numTestCasesFailed \u003c\u003c \" passed\""," \u003c\u003c Color::None \u003c\u003c \" | \" \u003c\u003c (p.numTestCasesFailed \u003e 0 ? Color::Red : Color::None)"," \u003c\u003c std::setw(failwidth) \u003c\u003c p.numTestCasesFailed \u003c\u003c \" failed\" \u003c\u003c Color::None \u003c\u003c \" |\";"," if(opt.no_skipped_summary == false) {"," const int numSkipped = p.numTestCases - p.numTestCasesPassingFilters;"," s \u003c\u003c \" \" \u003c\u003c (numSkipped == 0 ? Color::None : Color::Yellow) \u003c\u003c numSkipped"," \u003c\u003c \" skipped\" \u003c\u003c Color::None;"," }"," s \u003c\u003c \"\\n\";"," s \u003c\u003c Color::Cyan \u003c\u003c \"[doctest] \" \u003c\u003c Color::None \u003c\u003c \"assertions: \" \u003c\u003c std::setw(totwidth)"," \u003c\u003c p.numAsserts \u003c\u003c \" | \""," \u003c\u003c ((p.numAsserts == 0 || anythingFailed) ? Color::None : Color::Green)"," \u003c\u003c std::setw(passwidth) \u003c\u003c (p.numAsserts - p.numAssertsFailed) \u003c\u003c \" passed\" \u003c\u003c Color::None"," \u003c\u003c \" | \" \u003c\u003c (p.numAssertsFailed \u003e 0 ? Color::Red : Color::None) \u003c\u003c std::setw(failwidth)"," \u003c\u003c p.numAssertsFailed \u003c\u003c \" failed\" \u003c\u003c Color::None \u003c\u003c \" |\\n\";"," s \u003c\u003c Color::Cyan \u003c\u003c \"[doctest] \" \u003c\u003c Color::None"," \u003c\u003c \"Status: \" \u003c\u003c (p.numTestCasesFailed \u003e 0 ? Color::Red : Color::Green)"," \u003c\u003c ((p.numTestCasesFailed \u003e 0) ? \"FAILURE!\" : \"SUCCESS!\") \u003c\u003c Color::None \u003c\u003c std::endl;"," }",""," void test_case_start(const TestCaseData\u0026 in) override {"," hasLoggedCurrentTestStart = false;"," tc = \u0026in;"," subcasesStack.clear();"," currentSubcaseLevel = 0;"," }",""," void test_case_reenter(const TestCaseData\u0026) override {"," subcasesStack.clear();"," }",""," void test_case_end(const CurrentTestCaseStats\u0026 st) override {"," if(tc-\u003em_no_output)"," return;",""," // log the preamble of the test case only if there is something"," // else to print - something other than that an assert has failed"," if(opt.duration ||"," (st.failure_flags \u0026\u0026 st.failure_flags != static_cast\u003cint\u003e(TestCaseFailureReason::AssertFailure)))"," logTestStart();",""," if(opt.duration)"," s \u003c\u003c Color::None \u003c\u003c std::setprecision(6) \u003c\u003c std::fixed \u003c\u003c st.seconds"," \u003c\u003c \" s: \" \u003c\u003c tc-\u003em_name \u003c\u003c \"\\n\";",""," if(st.failure_flags \u0026 TestCaseFailureReason::Timeout)"," s \u003c\u003c Color::Red \u003c\u003c \"Test case exceeded time limit of \" \u003c\u003c std::setprecision(6)"," \u003c\u003c std::fixed \u003c\u003c tc-\u003em_timeout \u003c\u003c \"!\\n\";",""," if(st.failure_flags \u0026 TestCaseFailureReason::ShouldHaveFailedButDidnt) {"," s \u003c\u003c Color::Red \u003c\u003c \"Should have failed but didn't! Marking it as failed!\\n\";"," } else if(st.failure_flags \u0026 TestCaseFailureReason::ShouldHaveFailedAndDid) {"," s \u003c\u003c Color::Yellow \u003c\u003c \"Failed as expected so marking it as not failed\\n\";"," } else if(st.failure_flags \u0026 TestCaseFailureReason::CouldHaveFailedAndDid) {"," s \u003c\u003c Color::Yellow \u003c\u003c \"Allowed to fail so marking it as not failed\\n\";"," } else if(st.failure_flags \u0026 TestCaseFailureReason::DidntFailExactlyNumTimes) {"," s \u003c\u003c Color::Red \u003c\u003c \"Didn't fail exactly \" \u003c\u003c tc-\u003em_expected_failures"," \u003c\u003c \" times so marking it as failed!\\n\";"," } else if(st.failure_flags \u0026 TestCaseFailureReason::FailedExactlyNumTimes) {"," s \u003c\u003c Color::Yellow \u003c\u003c \"Failed exactly \" \u003c\u003c tc-\u003em_expected_failures"," \u003c\u003c \" times as expected so marking it as not failed!\\n\";"," }"," if(st.failure_flags \u0026 TestCaseFailureReason::TooManyFailedAsserts) {"," s \u003c\u003c Color::Red \u003c\u003c \"Aborting - too many failed asserts!\\n\";"," }"," s \u003c\u003c Color::None; // lgtm [cpp/useless-expression]"," }",""," void test_case_exception(const TestCaseException\u0026 e) override {"," DOCTEST_LOCK_MUTEX(mutex)"," if(tc-\u003em_no_output)"," return;",""," logTestStart();",""," file_line_to_stream(tc-\u003em_file.c_str(), tc-\u003em_line, \" \");"," successOrFailColoredStringToStream(false, e.is_crash ? assertType::is_require :"," assertType::is_check);"," s \u003c\u003c Color::Red \u003c\u003c (e.is_crash ? \"test case CRASHED: \" : \"test case THREW exception: \")"," \u003c\u003c Color::Cyan \u003c\u003c e.error_string \u003c\u003c \"\\n\";",""," int num_stringified_contexts = get_num_stringified_contexts();"," if(num_stringified_contexts) {"," auto stringified_contexts = get_stringified_contexts();"," s \u003c\u003c Color::None \u003c\u003c \" logged: \";"," for(int i = num_stringified_contexts; i \u003e 0; --i) {"," s \u003c\u003c (i == num_stringified_contexts ? \"\" : \" \")"," \u003c\u003c stringified_contexts[i - 1] \u003c\u003c \"\\n\";"," }"," }"," s \u003c\u003c \"\\n\" \u003c\u003c Color::None;"," }",""," void subcase_start(const SubcaseSignature\u0026 subc) override {"," subcasesStack.push_back(subc);"," ++currentSubcaseLevel;"," hasLoggedCurrentTestStart = false;"," }",""," void subcase_end() override {"," --currentSubcaseLevel;"," hasLoggedCurrentTestStart = false;"," }",""," void log_assert(const AssertData\u0026 rb) override {"," if((!rb.m_failed \u0026\u0026 !opt.success) || tc-\u003em_no_output)"," return;",""," DOCTEST_LOCK_MUTEX(mutex)",""," logTestStart();",""," file_line_to_stream(rb.m_file, rb.m_line, \" \");"," successOrFailColoredStringToStream(!rb.m_failed, rb.m_at);",""," fulltext_log_assert_to_stream(s, rb);",""," log_contexts();"," }",""," void log_message(const MessageData\u0026 mb) override {"," if(tc-\u003em_no_output)"," return;",""," DOCTEST_LOCK_MUTEX(mutex)",""," logTestStart();",""," file_line_to_stream(mb.m_file, mb.m_line, \" \");"," s \u003c\u003c getSuccessOrFailColor(false, mb.m_severity)"," \u003c\u003c getSuccessOrFailString(mb.m_severity \u0026 assertType::is_warn, mb.m_severity,"," \"MESSAGE\") \u003c\u003c \": \";"," s \u003c\u003c Color::None \u003c\u003c mb.m_string \u003c\u003c \"\\n\";"," log_contexts();"," }",""," void test_case_skipped(const TestCaseData\u0026) override {}"," };",""," DOCTEST_REGISTER_REPORTER(\"console\", 0, ConsoleReporter);","","#ifdef DOCTEST_PLATFORM_WINDOWS"," struct DebugOutputWindowReporter : public ConsoleReporter"," {"," DOCTEST_THREAD_LOCAL static std::ostringstream oss;",""," DebugOutputWindowReporter(const ContextOptions\u0026 co)"," : ConsoleReporter(co, oss) {}","","#define DOCTEST_DEBUG_OUTPUT_REPORTER_OVERRIDE(func, type, arg) \\"," void func(type arg) override { \\"," bool with_col = g_no_colors; \\"," g_no_colors = false; \\"," ConsoleReporter::func(arg); \\"," if(oss.tellp() != std::streampos{}) { \\"," DOCTEST_OUTPUT_DEBUG_STRING(oss.str().c_str()); \\"," oss.str(\"\"); \\"," } \\"," g_no_colors = with_col; \\"," }",""," DOCTEST_DEBUG_OUTPUT_REPORTER_OVERRIDE(test_run_start, DOCTEST_EMPTY, DOCTEST_EMPTY)"," DOCTEST_DEBUG_OUTPUT_REPORTER_OVERRIDE(test_run_end, const TestRunStats\u0026, in)"," DOCTEST_DEBUG_OUTPUT_REPORTER_OVERRIDE(test_case_start, const TestCaseData\u0026, in)"," DOCTEST_DEBUG_OUTPUT_REPORTER_OVERRIDE(test_case_reenter, const TestCaseData\u0026, in)"," DOCTEST_DEBUG_OUTPUT_REPORTER_OVERRIDE(test_case_end, const CurrentTestCaseStats\u0026, in)"," DOCTEST_DEBUG_OUTPUT_REPORTER_OVERRIDE(test_case_exception, const TestCaseException\u0026, in)"," DOCTEST_DEBUG_OUTPUT_REPORTER_OVERRIDE(subcase_start, const SubcaseSignature\u0026, in)"," DOCTEST_DEBUG_OUTPUT_REPORTER_OVERRIDE(subcase_end, DOCTEST_EMPTY, DOCTEST_EMPTY)"," DOCTEST_DEBUG_OUTPUT_REPORTER_OVERRIDE(log_assert, const AssertData\u0026, in)"," DOCTEST_DEBUG_OUTPUT_REPORTER_OVERRIDE(log_message, const MessageData\u0026, in)"," DOCTEST_DEBUG_OUTPUT_REPORTER_OVERRIDE(test_case_skipped, const TestCaseData\u0026, in)"," };",""," DOCTEST_THREAD_LOCAL std::ostringstream DebugOutputWindowReporter::oss;","#endif // DOCTEST_PLATFORM_WINDOWS",""," // the implementation of parseOption()"," bool parseOptionImpl(int argc, const char* const* argv, const char* pattern, String* value) {"," // going from the end to the beginning and stopping on the first occurrence from the end"," for(int i = argc; i \u003e 0; --i) {"," auto index = i - 1;"," auto temp = std::strstr(argv[index], pattern);"," if(temp \u0026\u0026 (value || strlen(temp) == strlen(pattern))) { //!OCLINT prefer early exits and continue"," // eliminate matches in which the chars before the option are not '-'"," bool noBadCharsFound = true;"," auto curr = argv[index];"," while(curr != temp) {"," if(*curr++ != '-') {"," noBadCharsFound = false;"," break;"," }"," }"," if(noBadCharsFound \u0026\u0026 argv[index][0] == '-') {"," if(value) {"," // parsing the value of an option"," temp += strlen(pattern);"," const unsigned len = strlen(temp);"," if(len) {"," *value = temp;"," return true;"," }"," } else {"," // just a flag - no value"," return true;"," }"," }"," }"," }"," return false;"," }",""," // parses an option and returns the string after the '=' character"," bool parseOption(int argc, const char* const* argv, const char* pattern, String* value = nullptr,"," const String\u0026 defaultVal = String()) {"," if(value)"," *value = defaultVal;","#ifndef DOCTEST_CONFIG_NO_UNPREFIXED_OPTIONS"," // offset (normally 3 for \"dt-\") to skip prefix"," if(parseOptionImpl(argc, argv, pattern + strlen(DOCTEST_CONFIG_OPTIONS_PREFIX), value))"," return true;","#endif // DOCTEST_CONFIG_NO_UNPREFIXED_OPTIONS"," return parseOptionImpl(argc, argv, pattern, value);"," }",""," // locates a flag on the command line"," bool parseFlag(int argc, const char* const* argv, const char* pattern) {"," return parseOption(argc, argv, pattern);"," }",""," // parses a comma separated list of words after a pattern in one of the arguments in argv"," bool parseCommaSepArgs(int argc, const char* const* argv, const char* pattern,"," std::vector\u003cString\u003e\u0026 res) {"," String filtersString;"," if(parseOption(argc, argv, pattern, \u0026filtersString)) {"," // tokenize with \",\" as a separator, unless escaped with backslash"," std::ostringstream s;"," auto flush = [\u0026s, \u0026res]() {"," auto string = s.str();"," if(string.size() \u003e 0) {"," res.push_back(string.c_str());"," }"," s.str(\"\");"," };",""," bool seenBackslash = false;"," const char* current = filtersString.c_str();"," const char* end = current + strlen(current);"," while(current != end) {"," char character = *current++;"," if(seenBackslash) {"," seenBackslash = false;"," if(character == ',' || character == '\\\\') {"," s.put(character);"," continue;"," }"," s.put('\\\\');"," }"," if(character == '\\\\') {"," seenBackslash = true;"," } else if(character == ',') {"," flush();"," } else {"," s.put(character);"," }"," }",""," if(seenBackslash) {"," s.put('\\\\');"," }"," flush();"," return true;"," }"," return false;"," }",""," enum optionType"," {"," option_bool,"," option_int"," };",""," // parses an int/bool option from the command line"," bool parseIntOption(int argc, const char* const* argv, const char* pattern, optionType type,"," int\u0026 res) {"," String parsedValue;"," if(!parseOption(argc, argv, pattern, \u0026parsedValue))"," return false;",""," if(type) {"," // integer"," // TODO: change this to use std::stoi or something else! currently it uses undefined behavior - assumes '0' on failed parse..."," int theInt = std::atoi(parsedValue.c_str());"," if (theInt != 0) {"," res = theInt; //!OCLINT parameter reassignment"," return true;"," }"," } else {"," // boolean"," const char positive[][5] = { \"1\", \"true\", \"on\", \"yes\" }; // 5 - strlen(\"true\") + 1"," const char negative[][6] = { \"0\", \"false\", \"off\", \"no\" }; // 6 - strlen(\"false\") + 1",""," // if the value matches any of the positive/negative possibilities"," for (unsigned i = 0; i \u003c 4; i++) {"," if (parsedValue.compare(positive[i], true) == 0) {"," res = 1; //!OCLINT parameter reassignment"," return true;"," }"," if (parsedValue.compare(negative[i], true) == 0) {"," res = 0; //!OCLINT parameter reassignment"," return true;"," }"," }"," }"," return false;"," }","} // namespace","","Context::Context(int argc, const char* const* argv)"," : p(new detail::ContextState) {"," parseArgs(argc, argv, true);"," if(argc)"," p-\u003ebinary_name = argv[0];","}","","Context::~Context() {"," if(g_cs == p)"," g_cs = nullptr;"," delete p;","}","","void Context::applyCommandLine(int argc, const char* const* argv) {"," parseArgs(argc, argv);"," if(argc)"," p-\u003ebinary_name = argv[0];","}","","// parses args","void Context::parseArgs(int argc, const char* const* argv, bool withDefaults) {"," using namespace detail;",""," // clang-format off"," parseCommaSepArgs(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX \"source-file=\", p-\u003efilters[0]);"," parseCommaSepArgs(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX \"sf=\", p-\u003efilters[0]);"," parseCommaSepArgs(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX \"source-file-exclude=\",p-\u003efilters[1]);"," parseCommaSepArgs(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX \"sfe=\", p-\u003efilters[1]);"," parseCommaSepArgs(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX \"test-suite=\", p-\u003efilters[2]);"," parseCommaSepArgs(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX \"ts=\", p-\u003efilters[2]);"," parseCommaSepArgs(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX \"test-suite-exclude=\", p-\u003efilters[3]);"," parseCommaSepArgs(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX \"tse=\", p-\u003efilters[3]);"," parseCommaSepArgs(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX \"test-case=\", p-\u003efilters[4]);"," parseCommaSepArgs(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX \"tc=\", p-\u003efilters[4]);"," parseCommaSepArgs(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX \"test-case-exclude=\", p-\u003efilters[5]);"," parseCommaSepArgs(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX \"tce=\", p-\u003efilters[5]);"," parseCommaSepArgs(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX \"subcase=\", p-\u003efilters[6]);"," parseCommaSepArgs(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX \"sc=\", p-\u003efilters[6]);"," parseCommaSepArgs(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX \"subcase-exclude=\", p-\u003efilters[7]);"," parseCommaSepArgs(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX \"sce=\", p-\u003efilters[7]);"," parseCommaSepArgs(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX \"reporters=\", p-\u003efilters[8]);"," parseCommaSepArgs(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX \"r=\", p-\u003efilters[8]);"," // clang-format on",""," int intRes = 0;"," String strRes;","","#define DOCTEST_PARSE_AS_BOOL_OR_FLAG(name, sname, var, default) \\"," if(parseIntOption(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX name \"=\", option_bool, intRes) || \\"," parseIntOption(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX sname \"=\", option_bool, intRes)) \\"," p-\u003evar = static_cast\u003cbool\u003e(intRes); \\"," else if(parseFlag(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX name) || \\"," parseFlag(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX sname)) \\"," p-\u003evar = true; \\"," else if(withDefaults) \\"," p-\u003evar = default","","#define DOCTEST_PARSE_INT_OPTION(name, sname, var, default) \\"," if(parseIntOption(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX name \"=\", option_int, intRes) || \\"," parseIntOption(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX sname \"=\", option_int, intRes)) \\"," p-\u003evar = intRes; \\"," else if(withDefaults) \\"," p-\u003evar = default","","#define DOCTEST_PARSE_STR_OPTION(name, sname, var, default) \\"," if(parseOption(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX name \"=\", \u0026strRes, default) || \\"," parseOption(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX sname \"=\", \u0026strRes, default) || \\"," withDefaults) \\"," p-\u003evar = strRes",""," // clang-format off"," DOCTEST_PARSE_STR_OPTION(\"out\", \"o\", out, \"\");"," DOCTEST_PARSE_STR_OPTION(\"order-by\", \"ob\", order_by, \"file\");"," DOCTEST_PARSE_INT_OPTION(\"rand-seed\", \"rs\", rand_seed, 0);",""," DOCTEST_PARSE_INT_OPTION(\"first\", \"f\", first, 0);"," DOCTEST_PARSE_INT_OPTION(\"last\", \"l\", last, UINT_MAX);",""," DOCTEST_PARSE_INT_OPTION(\"abort-after\", \"aa\", abort_after, 0);"," DOCTEST_PARSE_INT_OPTION(\"subcase-filter-levels\", \"scfl\", subcase_filter_levels, INT_MAX);",""," DOCTEST_PARSE_AS_BOOL_OR_FLAG(\"success\", \"s\", success, false);"," DOCTEST_PARSE_AS_BOOL_OR_FLAG(\"case-sensitive\", \"cs\", case_sensitive, false);"," DOCTEST_PARSE_AS_BOOL_OR_FLAG(\"exit\", \"e\", exit, false);"," DOCTEST_PARSE_AS_BOOL_OR_FLAG(\"duration\", \"d\", duration, false);"," DOCTEST_PARSE_AS_BOOL_OR_FLAG(\"minimal\", \"m\", minimal, false);"," DOCTEST_PARSE_AS_BOOL_OR_FLAG(\"quiet\", \"q\", quiet, false);"," DOCTEST_PARSE_AS_BOOL_OR_FLAG(\"no-throw\", \"nt\", no_throw, false);"," DOCTEST_PARSE_AS_BOOL_OR_FLAG(\"no-exitcode\", \"ne\", no_exitcode, false);"," DOCTEST_PARSE_AS_BOOL_OR_FLAG(\"no-run\", \"nr\", no_run, false);"," DOCTEST_PARSE_AS_BOOL_OR_FLAG(\"no-intro\", \"ni\", no_intro, false);"," DOCTEST_PARSE_AS_BOOL_OR_FLAG(\"no-version\", \"nv\", no_version, false);"," DOCTEST_PARSE_AS_BOOL_OR_FLAG(\"no-colors\", \"nc\", no_colors, false);"," DOCTEST_PARSE_AS_BOOL_OR_FLAG(\"force-colors\", \"fc\", force_colors, false);"," DOCTEST_PARSE_AS_BOOL_OR_FLAG(\"no-breaks\", \"nb\", no_breaks, false);"," DOCTEST_PARSE_AS_BOOL_OR_FLAG(\"no-skip\", \"ns\", no_skip, false);"," DOCTEST_PARSE_AS_BOOL_OR_FLAG(\"gnu-file-line\", \"gfl\", gnu_file_line, !bool(DOCTEST_MSVC));"," DOCTEST_PARSE_AS_BOOL_OR_FLAG(\"no-path-filenames\", \"npf\", no_path_in_filenames, false);"," DOCTEST_PARSE_AS_BOOL_OR_FLAG(\"no-line-numbers\", \"nln\", no_line_numbers, false);"," DOCTEST_PARSE_AS_BOOL_OR_FLAG(\"no-debug-output\", \"ndo\", no_debug_output, false);"," DOCTEST_PARSE_AS_BOOL_OR_FLAG(\"no-skipped-summary\", \"nss\", no_skipped_summary, false);"," DOCTEST_PARSE_AS_BOOL_OR_FLAG(\"no-time-in-output\", \"ntio\", no_time_in_output, false);"," // clang-format on",""," if(withDefaults) {"," p-\u003ehelp = false;"," p-\u003eversion = false;"," p-\u003ecount = false;"," p-\u003elist_test_cases = false;"," p-\u003elist_test_suites = false;"," p-\u003elist_reporters = false;"," }"," if(parseFlag(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX \"help\") ||"," parseFlag(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX \"h\") ||"," parseFlag(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX \"?\")) {"," p-\u003ehelp = true;"," p-\u003eexit = true;"," }"," if(parseFlag(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX \"version\") ||"," parseFlag(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX \"v\")) {"," p-\u003eversion = true;"," p-\u003eexit = true;"," }"," if(parseFlag(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX \"count\") ||"," parseFlag(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX \"c\")) {"," p-\u003ecount = true;"," p-\u003eexit = true;"," }"," if(parseFlag(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX \"list-test-cases\") ||"," parseFlag(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX \"ltc\")) {"," p-\u003elist_test_cases = true;"," p-\u003eexit = true;"," }"," if(parseFlag(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX \"list-test-suites\") ||"," parseFlag(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX \"lts\")) {"," p-\u003elist_test_suites = true;"," p-\u003eexit = true;"," }"," if(parseFlag(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX \"list-reporters\") ||"," parseFlag(argc, argv, DOCTEST_CONFIG_OPTIONS_PREFIX \"lr\")) {"," p-\u003elist_reporters = true;"," p-\u003eexit = true;"," }","}","","// allows the user to add procedurally to the filters from the command line","void Context::addFilter(const char* filter, const char* value) { setOption(filter, value); }","","// allows the user to clear all filters from the command line","void Context::clearFilters() {"," for(auto\u0026 curr : p-\u003efilters)"," curr.clear();","}","","// allows the user to override procedurally the bool options from the command line","void Context::setOption(const char* option, bool value) {"," setOption(option, value ? \"true\" : \"false\");","}","","// allows the user to override procedurally the int options from the command line","void Context::setOption(const char* option, int value) {"," setOption(option, toString(value).c_str());","}","","// allows the user to override procedurally the string options from the command line","void Context::setOption(const char* option, const char* value) {"," auto argv = String(\"-\") + option + \"=\" + value;"," auto lvalue = argv.c_str();"," parseArgs(1, \u0026lvalue);","}","","// users should query this in their main() and exit the program if true","bool Context::shouldExit() { return p-\u003eexit; }","","void Context::setAsDefaultForAssertsOutOfTestCases() { g_cs = p; }","","void Context::setAssertHandler(detail::assert_handler ah) { p-\u003eah = ah; }","","void Context::setCout(std::ostream* out) { p-\u003ecout = out; }","","static class DiscardOStream : public std::ostream","{","private:"," class : public std::streambuf"," {"," private:"," // allowing some buffering decreases the amount of calls to overflow"," char buf[1024];",""," protected:"," std::streamsize xsputn(const char_type*, std::streamsize count) override { return count; }",""," int_type overflow(int_type ch) override {"," setp(std::begin(buf), std::end(buf));"," return traits_type::not_eof(ch);"," }"," } discardBuf;","","public:"," DiscardOStream()"," : std::ostream(\u0026discardBuf) {}","} discardOut;","","// the main function that does all the filtering and test running","int Context::run() {"," using namespace detail;",""," // save the old context state in case such was setup - for using asserts out of a testing context"," auto old_cs = g_cs;"," // this is the current contest"," g_cs = p;"," is_running_in_test = true;",""," g_no_colors = p-\u003eno_colors;"," p-\u003eresetRunData();",""," std::fstream fstr;"," if(p-\u003ecout == nullptr) {"," if(p-\u003equiet) {"," p-\u003ecout = \u0026discardOut;"," } else if(p-\u003eout.size()) {"," // to a file if specified"," fstr.open(p-\u003eout.c_str(), std::fstream::out);"," p-\u003ecout = \u0026fstr;"," } else {","#ifndef DOCTEST_CONFIG_NO_INCLUDE_IOSTREAM"," // stdout by default"," p-\u003ecout = \u0026std::cout;","#else // DOCTEST_CONFIG_NO_INCLUDE_IOSTREAM"," return EXIT_FAILURE;","#endif // DOCTEST_CONFIG_NO_INCLUDE_IOSTREAM"," }"," }",""," FatalConditionHandler::allocateAltStackMem();",""," auto cleanup_and_return = [\u0026]() {"," FatalConditionHandler::freeAltStackMem();",""," if(fstr.is_open())"," fstr.close();",""," // restore context"," g_cs = old_cs;"," is_running_in_test = false;",""," // we have to free the reporters which were allocated when the run started"," for(auto\u0026 curr : p-\u003ereporters_currently_used)"," delete curr;"," p-\u003ereporters_currently_used.clear();",""," if(p-\u003enumTestCasesFailed \u0026\u0026 !p-\u003eno_exitcode)"," return EXIT_FAILURE;"," return EXIT_SUCCESS;"," };",""," // setup default reporter if none is given through the command line"," if(p-\u003efilters[8].empty())"," p-\u003efilters[8].push_back(\"console\");",""," // check to see if any of the registered reporters has been selected"," for(auto\u0026 curr : getReporters()) {"," if(matchesAny(curr.first.second.c_str(), p-\u003efilters[8], false, p-\u003ecase_sensitive))"," p-\u003ereporters_currently_used.push_back(curr.second(*g_cs));"," }",""," // TODO: check if there is nothing in reporters_currently_used",""," // prepend all listeners"," for(auto\u0026 curr : getListeners())"," p-\u003ereporters_currently_used.insert(p-\u003ereporters_currently_used.begin(), curr.second(*g_cs));","","#ifdef DOCTEST_PLATFORM_WINDOWS"," if(isDebuggerActive() \u0026\u0026 p-\u003eno_debug_output == false)"," p-\u003ereporters_currently_used.push_back(new DebugOutputWindowReporter(*g_cs));","#endif // DOCTEST_PLATFORM_WINDOWS",""," // handle version, help and no_run"," if(p-\u003eno_run || p-\u003eversion || p-\u003ehelp || p-\u003elist_reporters) {"," DOCTEST_ITERATE_THROUGH_REPORTERS(report_query, QueryData());",""," return cleanup_and_return();"," }",""," std::vector\u003cconst TestCase*\u003e testArray;"," for(auto\u0026 curr : getRegisteredTests())"," testArray.push_back(\u0026curr);"," p-\u003enumTestCases = testArray.size();",""," // sort the collected records"," if(!testArray.empty()) {"," if(p-\u003eorder_by.compare(\"file\", true) == 0) {"," std::sort(testArray.begin(), testArray.end(), fileOrderComparator);"," } else if(p-\u003eorder_by.compare(\"suite\", true) == 0) {"," std::sort(testArray.begin(), testArray.end(), suiteOrderComparator);"," } else if(p-\u003eorder_by.compare(\"name\", true) == 0) {"," std::sort(testArray.begin(), testArray.end(), nameOrderComparator);"," } else if(p-\u003eorder_by.compare(\"rand\", true) == 0) {"," std::srand(p-\u003erand_seed);",""," // random_shuffle implementation"," const auto first = \u0026testArray[0];"," for(size_t i = testArray.size() - 1; i \u003e 0; --i) {"," int idxToSwap = std::rand() % (i + 1);",""," const auto temp = first[i];",""," first[i] = first[idxToSwap];"," first[idxToSwap] = temp;"," }"," } else if(p-\u003eorder_by.compare(\"none\", true) == 0) {"," // means no sorting - beneficial for death tests which call into the executable"," // with a specific test case in mind - we don't want to slow down the startup times"," }"," }",""," std::set\u003cString\u003e testSuitesPassingFilt;",""," bool query_mode = p-\u003ecount || p-\u003elist_test_cases || p-\u003elist_test_suites;"," std::vector\u003cconst TestCaseData*\u003e queryResults;",""," if(!query_mode)"," DOCTEST_ITERATE_THROUGH_REPORTERS(test_run_start, DOCTEST_EMPTY);",""," // invoke the registered functions if they match the filter criteria (or just count them)"," for(auto\u0026 curr : testArray) {"," const auto\u0026 tc = *curr;",""," bool skip_me = false;"," if(tc.m_skip \u0026\u0026 !p-\u003eno_skip)"," skip_me = true;",""," if(!matchesAny(tc.m_file.c_str(), p-\u003efilters[0], true, p-\u003ecase_sensitive))"," skip_me = true;"," if(matchesAny(tc.m_file.c_str(), p-\u003efilters[1], false, p-\u003ecase_sensitive))"," skip_me = true;"," if(!matchesAny(tc.m_test_suite, p-\u003efilters[2], true, p-\u003ecase_sensitive))"," skip_me = true;"," if(matchesAny(tc.m_test_suite, p-\u003efilters[3], false, p-\u003ecase_sensitive))"," skip_me = true;"," if(!matchesAny(tc.m_name, p-\u003efilters[4], true, p-\u003ecase_sensitive))"," skip_me = true;"," if(matchesAny(tc.m_name, p-\u003efilters[5], false, p-\u003ecase_sensitive))"," skip_me = true;",""," if(!skip_me)"," p-\u003enumTestCasesPassingFilters++;",""," // skip the test if it is not in the execution range"," if((p-\u003elast \u003c p-\u003enumTestCasesPassingFilters \u0026\u0026 p-\u003efirst \u003c= p-\u003elast) ||"," (p-\u003efirst \u003e p-\u003enumTestCasesPassingFilters))"," skip_me = true;",""," if(skip_me) {"," if(!query_mode)"," DOCTEST_ITERATE_THROUGH_REPORTERS(test_case_skipped, tc);"," continue;"," }",""," // do not execute the test if we are to only count the number of filter passing tests"," if(p-\u003ecount)"," continue;",""," // print the name of the test and don't execute it"," if(p-\u003elist_test_cases) {"," queryResults.push_back(\u0026tc);"," continue;"," }",""," // print the name of the test suite if not done already and don't execute it"," if(p-\u003elist_test_suites) {"," if((testSuitesPassingFilt.count(tc.m_test_suite) == 0) \u0026\u0026 tc.m_test_suite[0] != '\\0') {"," queryResults.push_back(\u0026tc);"," testSuitesPassingFilt.insert(tc.m_test_suite);"," p-\u003enumTestSuitesPassingFilters++;"," }"," continue;"," }",""," // execute the test if it passes all the filtering"," {"," p-\u003ecurrentTest = \u0026tc;",""," p-\u003efailure_flags = TestCaseFailureReason::None;"," p-\u003eseconds = 0;",""," // reset atomic counters"," p-\u003enumAssertsFailedCurrentTest_atomic = 0;"," p-\u003enumAssertsCurrentTest_atomic = 0;",""," p-\u003efullyTraversedSubcases.clear();",""," DOCTEST_ITERATE_THROUGH_REPORTERS(test_case_start, tc);",""," p-\u003etimer.start();",""," bool run_test = true;",""," do {"," // reset some of the fields for subcases (except for the set of fully passed ones)"," p-\u003ereachedLeaf = false;"," // May not be empty if previous subcase exited via exception."," p-\u003esubcaseStack.clear();"," p-\u003ecurrentSubcaseDepth = 0;",""," p-\u003eshouldLogCurrentException = true;",""," // reset stuff for logging with INFO()"," p-\u003estringifiedContexts.clear();","","#ifndef DOCTEST_CONFIG_NO_EXCEPTIONS"," try {","#endif // DOCTEST_CONFIG_NO_EXCEPTIONS","// MSVC 2015 diagnoses fatalConditionHandler as unused (because reset() is a static method)","DOCTEST_MSVC_SUPPRESS_WARNING_WITH_PUSH(4101) // unreferenced local variable"," FatalConditionHandler fatalConditionHandler; // Handle signals"," // execute the test"," tc.m_test();"," fatalConditionHandler.reset();","DOCTEST_MSVC_SUPPRESS_WARNING_POP","#ifndef DOCTEST_CONFIG_NO_EXCEPTIONS"," } catch(const TestFailureException\u0026) {"," p-\u003efailure_flags |= TestCaseFailureReason::AssertFailure;"," } catch(...) {"," DOCTEST_ITERATE_THROUGH_REPORTERS(test_case_exception,"," {translateActiveException(), false});"," p-\u003efailure_flags |= TestCaseFailureReason::Exception;"," }","#endif // DOCTEST_CONFIG_NO_EXCEPTIONS",""," // exit this loop if enough assertions have failed - even if there are more subcases"," if(p-\u003eabort_after \u003e 0 \u0026\u0026"," p-\u003enumAssertsFailed + p-\u003enumAssertsFailedCurrentTest_atomic \u003e= p-\u003eabort_after) {"," run_test = false;"," p-\u003efailure_flags |= TestCaseFailureReason::TooManyFailedAsserts;"," }",""," if(!p-\u003enextSubcaseStack.empty() \u0026\u0026 run_test)"," DOCTEST_ITERATE_THROUGH_REPORTERS(test_case_reenter, tc);"," if(p-\u003enextSubcaseStack.empty())"," run_test = false;"," } while(run_test);",""," p-\u003efinalizeTestCaseData();",""," DOCTEST_ITERATE_THROUGH_REPORTERS(test_case_end, *g_cs);",""," p-\u003ecurrentTest = nullptr;",""," // stop executing tests if enough assertions have failed"," if(p-\u003eabort_after \u003e 0 \u0026\u0026 p-\u003enumAssertsFailed \u003e= p-\u003eabort_after)"," break;"," }"," }",""," if(!query_mode) {"," DOCTEST_ITERATE_THROUGH_REPORTERS(test_run_end, *g_cs);"," } else {"," QueryData qdata;"," qdata.run_stats = g_cs;"," qdata.data = queryResults.data();"," qdata.num_data = unsigned(queryResults.size());"," DOCTEST_ITERATE_THROUGH_REPORTERS(report_query, qdata);"," }",""," return cleanup_and_return();","}","","DOCTEST_DEFINE_INTERFACE(IReporter)","","int IReporter::get_num_active_contexts() { return detail::g_infoContexts.size(); }","const IContextScope* const* IReporter::get_active_contexts() {"," return get_num_active_contexts() ? \u0026detail::g_infoContexts[0] : nullptr;","}","","int IReporter::get_num_stringified_contexts() { return detail::g_cs-\u003estringifiedContexts.size(); }","const String* IReporter::get_stringified_contexts() {"," return get_num_stringified_contexts() ? \u0026detail::g_cs-\u003estringifiedContexts[0] : nullptr;","}","","namespace detail {"," void registerReporterImpl(const char* name, int priority, reporterCreatorFunc c, bool isReporter) {"," if(isReporter)"," getReporters().insert(reporterMap::value_type(reporterMap::key_type(priority, name), c));"," else"," getListeners().insert(reporterMap::value_type(reporterMap::key_type(priority, name), c));"," }","} // namespace detail","","} // namespace doctest","","#endif // DOCTEST_CONFIG_DISABLE","","#ifdef DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN","DOCTEST_MSVC_SUPPRESS_WARNING_WITH_PUSH(4007) // 'function' : must be 'attribute' - see issue #182","int main(int argc, char** argv) { return doctest::Context(argc, argv).run(); }","DOCTEST_MSVC_SUPPRESS_WARNING_POP","#endif // DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN","","DOCTEST_CLANG_SUPPRESS_WARNING_POP","DOCTEST_MSVC_SUPPRESS_WARNING_POP","DOCTEST_GCC_SUPPRESS_WARNING_POP","","DOCTEST_SUPPRESS_COMMON_WARNINGS_POP","","#endif // DOCTEST_LIBRARY_IMPLEMENTATION","#endif // DOCTEST_CONFIG_IMPLEMENT","","#ifdef DOCTEST_UNDEF_WIN32_LEAN_AND_MEAN","#undef WIN32_LEAN_AND_MEAN","#undef DOCTEST_UNDEF_WIN32_LEAN_AND_MEAN","#endif // DOCTEST_UNDEF_WIN32_LEAN_AND_MEAN","","#ifdef DOCTEST_UNDEF_NOMINMAX","#undef NOMINMAX","#undef DOCTEST_UNDEF_NOMINMAX","#endif // DOCTEST_UNDEF_NOMINMAX"],"stylingDirectives":[[[0,105,"pl-c"],[0,2,"pl-c"]],[[0,73,"pl-c"]],[[0,73,"pl-c"]],[[0,2,"pl-c"],[0,2,"pl-c"]],[[0,99,"pl-c"],[0,2,"pl-c"]],[[0,2,"pl-c"],[0,2,"pl-c"]],[[0,41,"pl-c"],[0,2,"pl-c"]],[[0,2,"pl-c"],[0,2,"pl-c"]],[[0,45,"pl-c"],[0,2,"pl-c"]],[[0,47,"pl-c"],[0,2,"pl-c"]],[[0,38,"pl-c"],[0,2,"pl-c"]],[[0,2,"pl-c"],[0,2,"pl-c"]],[[0,56,"pl-c"],[0,2,"pl-c"]],[[0,72,"pl-c"],[0,2,"pl-c"]],[[0,2,"pl-c"],[0,2,"pl-c"]],[[0,100,"pl-c"]],[[0,100,"pl-c"]],[[0,100,"pl-c"]],[[0,2,"pl-c"],[0,2,"pl-c"]],[[0,82,"pl-c"],[0,2,"pl-c"]],[[0,54,"pl-c"],[0,2,"pl-c"]],[[0,72,"pl-c"],[0,2,"pl-c"]],[[0,2,"pl-c"],[0,2,"pl-c"]],[[0,91,"pl-c"],[0,2,"pl-c"]],[[0,45,"pl-c"],[0,2,"pl-c"]],[[0,99,"pl-c"],[0,2,"pl-c"]],[[0,60,"pl-c"],[0,2,"pl-c"]],[[0,26,"pl-c"],[0,2,"pl-c"]],[[0,29,"pl-c"],[0,2,"pl-c"]],[[0,26,"pl-c"],[0,2,"pl-c"]],[[0,10,"pl-c"],[0,2,"pl-c"]],[[0,89,"pl-c"],[0,2,"pl-c"]],[[0,2,"pl-c"],[0,2,"pl-c"]],[[0,97,"pl-c"],[0,2,"pl-c"]],[[0,54,"pl-c"],[0,2,"pl-c"]],[[0,73,"pl-c"],[0,2,"pl-c"]],[[0,2,"pl-c"],[0,2,"pl-c"]],[[0,100,"pl-c"]],[[0,100,"pl-c"]],[[0,100,"pl-c"]],[],[[1,7,"pl-k"]],[[1,7,"pl-k"],[8,32,"pl-en"]],[],[[0,100,"pl-c"]],[[0,100,"pl-c"]],[[0,100,"pl-c"]],[],[[1,7,"pl-k"],[8,29,"pl-en"],[30,31,"pl-c1"]],[[1,7,"pl-k"],[8,29,"pl-en"],[30,31,"pl-c1"]],[[1,7,"pl-k"],[8,29,"pl-en"],[30,32,"pl-c1"]],[],[[0,20,"pl-c"],[0,2,"pl-c"]],[[1,7,"pl-k"],[8,26,"pl-en"],[27,28,"pl-v"]],[[1,7,"pl-k"],[8,21,"pl-en"],[22,23,"pl-v"]],[],[[1,7,"pl-k"],[8,27,"pl-en"]],[[4,17,"pl-en"]],[],[],[],[[1,7,"pl-k"],[8,23,"pl-en"]],[[29,34,"pl-c1"],[61,64,"pl-c1"]],[],[[0,100,"pl-c"]],[[0,100,"pl-c"]],[[0,100,"pl-c"]],[],[[0,90,"pl-c"],[0,2,"pl-c"]],[],[[1,6,"pl-k"]],[[1,7,"pl-k"],[8,25,"pl-en"]],[[1,5,"pl-k"]],[[1,7,"pl-k"],[8,25,"pl-en"]],[[1,6,"pl-k"]],[],[[1,7,"pl-k"],[8,24,"pl-en"],[25,44,"pl-v"],[55,63,"pl-c1"],[74,80,"pl-c1"]],[],[[0,95,"pl-c"],[0,2,"pl-c"]],[[1,3,"pl-k"]],[[1,3,"pl-k"]],[[1,7,"pl-k"],[8,20,"pl-en"],[21,37,"pl-en"],[49,52,"pl-c1"],[65,68,"pl-c1"],[86,91,"pl-c1"]],[[1,5,"pl-k"],[6,13,"pl-c"],[6,8,"pl-c"]],[[1,7,"pl-k"],[8,20,"pl-en"]],[[4,20,"pl-en"],[32,35,"pl-c1"],[54,60,"pl-c1"]],[[1,6,"pl-k"],[7,14,"pl-c"],[7,9,"pl-c"]],[[1,6,"pl-k"],[7,14,"pl-c"],[7,9,"pl-c"]],[[1,3,"pl-k"]],[[1,7,"pl-k"],[8,21,"pl-en"],[22,38,"pl-en"]],[[1,5,"pl-k"]],[],[[1,7,"pl-k"],[8,19,"pl-en"],[20,36,"pl-en"]],[[7,13,"pl-c"],[7,9,"pl-c"]],[[1,3,"pl-k"]],[[1,7,"pl-k"],[8,19,"pl-en"],[20,36,"pl-en"],[56,59,"pl-c1"],[80,83,"pl-c1"],[85,86,"pl-c1"]],[[7,13,"pl-c"],[7,9,"pl-c"]],[],[[1,7,"pl-k"]],[[1,7,"pl-k"],[8,20,"pl-en"],[21,22,"pl-c1"]],[[1,6,"pl-k"],[7,22,"pl-c"],[7,9,"pl-c"]],[[1,7,"pl-k"]],[[1,7,"pl-k"],[8,21,"pl-en"],[22,23,"pl-c1"]],[[1,6,"pl-k"],[7,23,"pl-c"],[7,9,"pl-c"]],[[1,7,"pl-k"]],[[1,7,"pl-k"],[8,19,"pl-en"],[20,21,"pl-c1"]],[[1,6,"pl-k"],[7,21,"pl-c"],[7,9,"pl-c"]],[[1,7,"pl-k"]],[[1,7,"pl-k"],[8,19,"pl-en"],[20,21,"pl-c1"]],[[1,6,"pl-k"],[7,21,"pl-c"],[7,9,"pl-c"]],[],[[0,100,"pl-c"]],[[0,100,"pl-c"]],[[0,100,"pl-c"]],[],[[1,3,"pl-k"]],[[1,7,"pl-k"],[8,29,"pl-en"],[30,31,"pl-v"],[33,40,"pl-k"]],[[1,7,"pl-k"],[8,43,"pl-en"],[44,51,"pl-en"],[52,75,"pl-s"],[52,53,"pl-pds"],[74,75,"pl-pds"]],[[1,7,"pl-k"],[8,38,"pl-en"],[39,40,"pl-v"]],[[1,7,"pl-k"],[8,42,"pl-en"],[43,50,"pl-en"],[51,73,"pl-s"],[51,52,"pl-pds"],[72,73,"pl-pds"]],[[1,7,"pl-k"],[8,48,"pl-en"],[49,50,"pl-v"]],[[40,70,"pl-en"]],[[1,5,"pl-k"],[6,22,"pl-c"],[6,8,"pl-c"]],[[1,7,"pl-k"],[8,43,"pl-en"]],[[1,7,"pl-k"],[8,38,"pl-en"],[39,40,"pl-v"]],[[1,7,"pl-k"],[8,42,"pl-en"]],[[1,7,"pl-k"],[8,48,"pl-en"],[49,50,"pl-v"]],[[1,6,"pl-k"],[7,23,"pl-c"],[7,9,"pl-c"]],[],[[1,3,"pl-k"]],[[1,7,"pl-k"],[8,29,"pl-en"],[30,31,"pl-v"],[33,40,"pl-k"]],[[1,7,"pl-k"],[8,41,"pl-en"],[42,49,"pl-en"],[50,71,"pl-s"],[50,51,"pl-pds"],[70,71,"pl-pds"]],[[1,7,"pl-k"],[8,36,"pl-en"],[37,38,"pl-v"]],[[1,7,"pl-k"],[8,40,"pl-en"],[41,48,"pl-en"],[49,69,"pl-s"],[49,50,"pl-pds"],[68,69,"pl-pds"]],[[1,7,"pl-k"],[8,46,"pl-en"],[47,48,"pl-v"]],[[38,66,"pl-en"]],[[1,5,"pl-k"],[6,20,"pl-c"],[6,8,"pl-c"]],[[1,7,"pl-k"],[8,41,"pl-en"]],[[1,7,"pl-k"],[8,36,"pl-en"],[37,38,"pl-v"]],[[1,7,"pl-k"],[8,40,"pl-en"]],[[1,7,"pl-k"],[8,46,"pl-en"],[47,48,"pl-v"]],[[1,6,"pl-k"],[7,21,"pl-c"],[7,9,"pl-c"]],[],[[1,3,"pl-k"]],[[1,7,"pl-k"],[8,42,"pl-en"],[43,51,"pl-en"]],[[1,7,"pl-k"],[8,37,"pl-en"],[38,39,"pl-v"]],[[1,7,"pl-k"],[8,41,"pl-en"],[42,50,"pl-en"]],[[1,7,"pl-k"],[8,47,"pl-en"],[48,49,"pl-v"]],[[39,68,"pl-en"]],[[1,5,"pl-k"],[6,21,"pl-c"],[6,8,"pl-c"]],[[1,7,"pl-k"],[8,42,"pl-en"]],[[1,7,"pl-k"],[8,37,"pl-en"],[38,39,"pl-v"]],[[1,7,"pl-k"],[8,41,"pl-en"]],[[1,7,"pl-k"],[8,47,"pl-en"],[48,49,"pl-v"]],[[1,6,"pl-k"],[7,22,"pl-c"],[7,9,"pl-c"]],[],[[0,100,"pl-c"]],[[0,100,"pl-c"]],[[0,100,"pl-c"]],[],[[0,64,"pl-c"],[0,2,"pl-c"]],[[0,51,"pl-c"],[0,2,"pl-c"]],[[1,7,"pl-k"],[8,45,"pl-en"]],[],[[4,34,"pl-en"],[35,54,"pl-s"],[35,36,"pl-pds"],[53,54,"pl-pds"]],[[35,51,"pl-s"],[35,36,"pl-pds"],[50,51,"pl-pds"]],[[35,45,"pl-s"],[35,36,"pl-pds"],[44,45,"pl-pds"]],[[35,57,"pl-s"],[35,36,"pl-pds"],[56,57,"pl-pds"]],[[35,51,"pl-s"],[35,36,"pl-pds"],[50,51,"pl-pds"]],[[35,60,"pl-s"],[35,36,"pl-pds"],[59,60,"pl-pds"]],[],[],[[33,52,"pl-s"],[33,34,"pl-pds"],[51,52,"pl-pds"]],[[33,44,"pl-s"],[33,34,"pl-pds"],[43,44,"pl-pds"]],[[33,43,"pl-s"],[33,34,"pl-pds"],[42,43,"pl-pds"]],[[33,52,"pl-s"],[33,34,"pl-pds"],[51,52,"pl-pds"]],[[33,52,"pl-s"],[33,34,"pl-pds"],[51,52,"pl-pds"]],[[33,57,"pl-s"],[33,34,"pl-pds"],[56,57,"pl-pds"]],[[33,49,"pl-s"],[33,34,"pl-pds"],[48,49,"pl-pds"]],[[33,45,"pl-s"],[33,34,"pl-pds"],[44,45,"pl-pds"]],[],[],[[4,51,"pl-c"],[4,6,"pl-c"],[49,51,"pl-c"]],[[34,38,"pl-c1"],[40,91,"pl-c"],[40,42,"pl-c"],[89,91,"pl-c"]],[[34,38,"pl-c1"],[40,57,"pl-c"],[40,42,"pl-c"],[55,57,"pl-c"]],[[34,38,"pl-c1"],[40,66,"pl-c"],[40,42,"pl-c"],[64,66,"pl-c"]],[[34,38,"pl-c1"],[40,83,"pl-c"],[40,42,"pl-c"],[81,83,"pl-c"]],[[4,21,"pl-c"],[4,6,"pl-c"],[19,21,"pl-c"]],[[34,38,"pl-c1"],[40,70,"pl-c"],[40,42,"pl-c"],[68,70,"pl-c"]],[[34,38,"pl-c1"],[40,70,"pl-c"],[40,42,"pl-c"],[68,70,"pl-c"]],[[34,38,"pl-c1"],[40,95,"pl-c"],[40,42,"pl-c"],[93,95,"pl-c"]],[[34,38,"pl-c1"],[40,86,"pl-c"],[40,42,"pl-c"],[84,86,"pl-c"]],[[34,38,"pl-c1"],[40,98,"pl-c"],[40,42,"pl-c"],[96,98,"pl-c"]],[[34,38,"pl-c1"],[40,80,"pl-c"],[40,42,"pl-c"],[78,80,"pl-c"]],[[34,38,"pl-c1"],[40,53,"pl-c"],[40,42,"pl-c"],[51,53,"pl-c"]],[[34,38,"pl-c1"],[40,85,"pl-c"],[40,42,"pl-c"],[83,85,"pl-c"]],[[34,38,"pl-c1"],[40,88,"pl-c"],[40,42,"pl-c"],[86,88,"pl-c"]],[[34,38,"pl-c1"],[40,89,"pl-c"],[40,42,"pl-c"],[87,89,"pl-c"]],[[34,38,"pl-c1"],[40,85,"pl-c"],[40,42,"pl-c"],[83,85,"pl-c"]],[[34,38,"pl-c1"],[40,97,"pl-c"],[40,42,"pl-c"],[95,97,"pl-c"]],[[34,38,"pl-c1"],[40,80,"pl-c"],[40,42,"pl-c"],[78,80,"pl-c"]],[[34,38,"pl-c1"],[40,91,"pl-c"],[40,42,"pl-c"],[89,91,"pl-c"]],[[4,25,"pl-c"],[4,6,"pl-c"],[23,25,"pl-c"]],[[34,39,"pl-c1"],[41,92,"pl-c"],[41,43,"pl-c"],[90,92,"pl-c"]],[[34,39,"pl-c1"],[41,82,"pl-c"],[41,43,"pl-c"],[80,82,"pl-c"]],[[34,39,"pl-c1"],[41,70,"pl-c"],[41,43,"pl-c"],[68,70,"pl-c"]],[[34,39,"pl-c1"],[41,97,"pl-c"],[41,43,"pl-c"],[95,97,"pl-c"]],[[34,39,"pl-c1"],[41,78,"pl-c"],[41,43,"pl-c"],[76,78,"pl-c"]],[],[[1,7,"pl-k"],[8,44,"pl-en"]],[],[],[],[],[],[],[],[[0,30,"pl-en"],[31,51,"pl-s"],[31,32,"pl-pds"],[50,51,"pl-pds"]],[[31,45,"pl-s"],[31,32,"pl-pds"],[44,45,"pl-pds"]],[],[],[[29,50,"pl-s"],[29,30,"pl-pds"],[49,50,"pl-pds"]],[[29,49,"pl-s"],[29,30,"pl-pds"],[48,49,"pl-pds"]],[[29,43,"pl-s"],[29,30,"pl-pds"],[42,43,"pl-pds"]],[],[],[[30,34,"pl-c1"],[36,92,"pl-c"],[36,38,"pl-c"]],[],[[1,7,"pl-k"],[8,66,"pl-en"]],[],[[4,33,"pl-en"],[34,38,"pl-c1"],[40,92,"pl-c"],[40,42,"pl-c"],[90,92,"pl-c"]],[[34,38,"pl-c1"],[40,94,"pl-c"],[40,42,"pl-c"],[92,94,"pl-c"]],[[34,38,"pl-c1"],[40,93,"pl-c"],[40,42,"pl-c"],[91,93,"pl-c"]],[[34,38,"pl-c1"],[40,83,"pl-c"],[40,42,"pl-c"],[81,83,"pl-c"]],[[34,38,"pl-c1"],[40,81,"pl-c"],[40,42,"pl-c"],[79,81,"pl-c"]],[[34,38,"pl-c1"],[40,70,"pl-c"],[40,42,"pl-c"],[68,70,"pl-c"]],[[34,38,"pl-c1"],[40,80,"pl-c"],[40,42,"pl-c"],[78,80,"pl-c"]],[[34,38,"pl-c1"],[40,53,"pl-c"],[40,42,"pl-c"],[51,53,"pl-c"]],[[34,38,"pl-c1"],[40,85,"pl-c"],[40,42,"pl-c"],[83,85,"pl-c"]],[[34,38,"pl-c1"],[40,88,"pl-c"],[40,42,"pl-c"],[86,88,"pl-c"]],[[34,38,"pl-c1"],[40,89,"pl-c"],[40,42,"pl-c"],[87,89,"pl-c"]],[[34,38,"pl-c1"],[40,85,"pl-c"],[40,42,"pl-c"],[83,85,"pl-c"]],[[34,38,"pl-c1"],[40,88,"pl-c"],[40,42,"pl-c"],[86,88,"pl-c"]],[[34,38,"pl-c1"],[40,98,"pl-c"],[40,42,"pl-c"],[96,98,"pl-c"]],[[34,38,"pl-c1"],[40,80,"pl-c"],[40,42,"pl-c"],[78,80,"pl-c"]],[[34,38,"pl-c1"],[40,94,"pl-c"],[40,42,"pl-c"],[92,94,"pl-c"]],[[34,38,"pl-c1"],[40,97,"pl-c"],[40,42,"pl-c"],[95,97,"pl-c"]],[[34,38,"pl-c1"],[40,67,"pl-c"],[40,42,"pl-c"],[65,67,"pl-c"]],[],[[1,7,"pl-k"],[8,64,"pl-en"]],[],[[0,100,"pl-c"]],[[0,100,"pl-c"]],[[0,100,"pl-c"]],[],[[0,93,"pl-c"],[0,2,"pl-c"]],[[0,91,"pl-c"],[0,2,"pl-c"]],[[0,80,"pl-c"],[0,2,"pl-c"]],[[0,22,"pl-c"],[0,2,"pl-c"]],[[0,84,"pl-c"],[0,2,"pl-c"]],[[0,57,"pl-c"],[0,2,"pl-c"]],[[0,57,"pl-c"],[0,2,"pl-c"]],[[0,57,"pl-c"],[0,2,"pl-c"]],[[0,57,"pl-c"],[0,2,"pl-c"]],[[0,57,"pl-c"],[0,2,"pl-c"]],[[0,57,"pl-c"],[0,2,"pl-c"]],[[0,57,"pl-c"],[0,2,"pl-c"]],[[0,57,"pl-c"],[0,2,"pl-c"]],[[0,57,"pl-c"],[0,2,"pl-c"]],[],[[0,37,"pl-c"],[0,2,"pl-c"]],[[1,3,"pl-k"]],[[1,7,"pl-k"],[8,37,"pl-en"]],[[1,6,"pl-k"],[7,23,"pl-c"],[7,9,"pl-c"]],[[1,3,"pl-k"]],[[1,7,"pl-k"],[8,34,"pl-en"]],[[1,6,"pl-k"],[7,14,"pl-c"],[7,9,"pl-c"]],[[1,3,"pl-k"]],[[1,6,"pl-k"]],[[1,6,"pl-k"],[7,39,"pl-c"],[7,9,"pl-c"]],[],[[1,3,"pl-k"]],[],[[1,7,"pl-k"],[8,36,"pl-en"]],[[1,6,"pl-k"],[7,16,"pl-c"],[7,9,"pl-c"]],[[1,3,"pl-k"]],[[1,6,"pl-k"]],[[1,6,"pl-k"],[7,41,"pl-c"],[7,9,"pl-c"]],[],[[1,7,"pl-k"]],[[1,3,"pl-k"]],[],[[1,7,"pl-k"],[8,36,"pl-en"]],[[1,6,"pl-k"],[7,23,"pl-c"],[7,9,"pl-c"]],[[1,6,"pl-k"],[7,38,"pl-c"],[7,9,"pl-c"]],[],[[1,6,"pl-k"]],[[1,7,"pl-k"]],[[1,7,"pl-k"],[8,36,"pl-en"]],[[1,6,"pl-k"],[7,38,"pl-c"],[7,9,"pl-c"]],[[1,6,"pl-k"],[7,59,"pl-c"],[7,9,"pl-c"]],[],[[1,3,"pl-k"]],[[1,7,"pl-k"],[8,46,"pl-en"]],[[1,6,"pl-k"],[7,81,"pl-c"],[7,9,"pl-c"]],[],[[1,6,"pl-k"]],[[1,7,"pl-k"],[8,40,"pl-en"]],[[1,6,"pl-k"]],[],[[1,3,"pl-k"]],[[1,7,"pl-k"],[8,32,"pl-en"]],[[1,6,"pl-k"],[7,44,"pl-c"],[7,9,"pl-c"]],[],[[1,3,"pl-k"]],[[1,3,"pl-k"]],[[1,7,"pl-k"],[8,29,"pl-en"],[30,40,"pl-en"]],[[1,7,"pl-k"],[8,29,"pl-en"],[30,40,"pl-en"]],[[1,5,"pl-k"],[6,13,"pl-c"],[6,8,"pl-c"]],[[1,7,"pl-k"],[8,29,"pl-en"],[30,43,"pl-en"]],[[1,7,"pl-k"],[8,29,"pl-en"],[30,43,"pl-en"]],[[7,14,"pl-c"],[7,9,"pl-c"]],[[1,5,"pl-k"],[7,16,"pl-c"],[7,9,"pl-c"]],[[1,7,"pl-k"],[8,29,"pl-en"],[30,43,"pl-en"],[56,65,"pl-s"],[56,57,"pl-pds"],[64,65,"pl-pds"]],[[1,7,"pl-k"],[8,29,"pl-en"]],[[1,6,"pl-k"],[7,16,"pl-c"],[7,9,"pl-c"]],[],[[1,6,"pl-k"]],[[1,6,"pl-k"]],[[1,7,"pl-k"],[8,25,"pl-en"]],[[1,5,"pl-k"],[6,33,"pl-c"],[6,8,"pl-c"]],[[1,7,"pl-k"],[8,25,"pl-en"]],[[1,6,"pl-k"],[7,34,"pl-c"],[7,9,"pl-c"]],[[1,5,"pl-k"],[7,46,"pl-c"],[7,9,"pl-c"]],[[1,7,"pl-k"],[8,25,"pl-en"]],[[1,6,"pl-k"],[7,46,"pl-c"],[7,9,"pl-c"]],[],[[0,44,"pl-c"],[0,2,"pl-c"]],[[0,48,"pl-c"],[0,2,"pl-c"]],[[1,3,"pl-k"]],[[1,7,"pl-k"],[8,30,"pl-en"]],[[1,7,"pl-k"],[8,29,"pl-en"]],[[1,5,"pl-k"],[6,21,"pl-c"],[6,8,"pl-c"]],[[1,7,"pl-k"],[8,30,"pl-en"]],[[1,7,"pl-k"],[8,29,"pl-en"]],[[1,6,"pl-k"],[7,22,"pl-c"],[7,9,"pl-c"]],[],[[1,7,"pl-k"],[8,21,"pl-en"]],[],[[1,3,"pl-k"]],[[1,7,"pl-k"],[8,24,"pl-en"],[25,35,"pl-en"]],[[1,7,"pl-k"],[8,22,"pl-en"]],[[1,7,"pl-k"],[8,25,"pl-en"],[26,27,"pl-v"]],[[1,5,"pl-k"]],[[1,7,"pl-k"],[8,24,"pl-en"]],[[1,7,"pl-k"],[8,22,"pl-en"]],[[1,7,"pl-k"],[8,25,"pl-en"],[26,27,"pl-v"]],[[1,5,"pl-k"]],[[1,7,"pl-k"],[8,24,"pl-en"],[25,38,"pl-en"]],[[1,7,"pl-k"],[8,22,"pl-en"],[23,36,"pl-en"]],[[1,7,"pl-k"],[8,25,"pl-en"],[26,27,"pl-v"]],[[1,6,"pl-k"]],[],[[1,6,"pl-k"]],[[1,7,"pl-k"],[8,31,"pl-en"],[32,38,"pl-k"]],[[1,5,"pl-k"]],[[1,7,"pl-k"],[8,31,"pl-en"],[32,38,"pl-k"]],[[1,6,"pl-k"]],[],[[1,7,"pl-k"]],[[1,3,"pl-k"]],[[1,7,"pl-k"],[8,24,"pl-en"]],[[1,5,"pl-k"],[6,21,"pl-c"],[6,8,"pl-c"]],[[1,7,"pl-k"],[8,24,"pl-en"]],[[1,6,"pl-k"],[7,22,"pl-c"],[7,9,"pl-c"]],[[1,6,"pl-k"],[7,26,"pl-c"],[7,9,"pl-c"]],[],[[1,7,"pl-k"]],[[1,3,"pl-k"]],[[1,7,"pl-k"],[8,24,"pl-en"]],[[1,5,"pl-k"],[6,21,"pl-c"],[6,8,"pl-c"]],[[1,7,"pl-k"],[8,24,"pl-en"],[25,33,"pl-k"]],[[1,6,"pl-k"],[7,22,"pl-c"],[7,9,"pl-c"]],[[1,6,"pl-k"],[7,26,"pl-c"],[7,9,"pl-c"]],[],[[1,7,"pl-k"]],[[1,3,"pl-k"]],[[1,7,"pl-k"],[8,25,"pl-en"],[26,31,"pl-k"]],[[1,7,"pl-k"],[8,30,"pl-en"],[31,37,"pl-k"]],[[1,5,"pl-k"],[6,21,"pl-c"],[6,8,"pl-c"]],[[1,7,"pl-k"],[8,25,"pl-en"],[26,35,"pl-k"]],[[1,7,"pl-k"],[8,30,"pl-en"],[31,40,"pl-k"]],[[1,6,"pl-k"],[7,22,"pl-c"],[7,9,"pl-c"]],[[1,6,"pl-k"],[7,27,"pl-c"],[7,9,"pl-c"]],[],[[1,7,"pl-k"]],[[1,3,"pl-k"]],[[1,7,"pl-k"],[8,35,"pl-en"],[36,49,"pl-en"],[63,72,"pl-s"],[63,64,"pl-pds"],[71,72,"pl-pds"]],[[1,5,"pl-k"]],[[1,7,"pl-k"],[8,35,"pl-en"]],[[1,6,"pl-k"]],[[1,6,"pl-k"],[7,37,"pl-c"],[7,9,"pl-c"]],[],[[0,100,"pl-c"]],[[0,100,"pl-c"]],[[0,100,"pl-c"]],[],[[1,7,"pl-k"],[8,33,"pl-en"],[34,38,"pl-v"]],[[4,11,"pl-k"],[12,17,"pl-en"]],[[4,8,"pl-en"]],[[4,8,"pl-en"],[9,14,"pl-k"]],[[4,8,"pl-en"]],[[10,18,"pl-k"],[20,25,"pl-k"],[35,41,"pl-k"]],[[10,18,"pl-k"],[30,36,"pl-k"]],[],[[1,7,"pl-k"],[8,32,"pl-en"],[33,37,"pl-v"]],[[4,15,"pl-en"],[20,27,"pl-k"]],[],[[0,82,"pl-c"],[0,2,"pl-c"]],[[1,7,"pl-k"],[8,24,"pl-en"],[25,31,"pl-v"]],[[1,7,"pl-k"],[8,19,"pl-en"],[20,26,"pl-v"]],[[1,6,"pl-k"],[19,72,"pl-c"],[19,21,"pl-c"]],[[1,7,"pl-k"],[8,25,"pl-en"],[26,27,"pl-v"]],[[1,5,"pl-k"],[6,20,"pl-c"],[6,8,"pl-c"]],[[1,7,"pl-k"],[8,25,"pl-en"],[26,27,"pl-v"]],[[1,6,"pl-k"],[7,21,"pl-c"],[7,9,"pl-c"]],[],[[1,7,"pl-k"]],[[1,7,"pl-k"],[8,24,"pl-en"],[25,26,"pl-v"]],[[1,5,"pl-k"],[6,53,"pl-c"],[6,8,"pl-c"]],[[1,7,"pl-k"],[8,24,"pl-en"],[25,26,"pl-v"]],[[1,6,"pl-k"],[7,54,"pl-c"],[7,9,"pl-c"]],[],[[0,59,"pl-c"],[0,2,"pl-c"]],[[1,6,"pl-k"]],[[1,7,"pl-k"],[8,28,"pl-en"]],[[1,5,"pl-k"]],[[1,7,"pl-k"],[8,31,"pl-en"]],[[1,5,"pl-k"]],[[1,7,"pl-k"],[8,32,"pl-en"]],[[1,5,"pl-k"]],[[1,7,"pl-k"],[8,29,"pl-en"]],[[1,5,"pl-k"],[6,25,"pl-c"],[6,8,"pl-c"]],[[1,7,"pl-k"],[8,30,"pl-en"]],[[1,6,"pl-k"],[7,26,"pl-c"],[7,9,"pl-c"]],[],[[0,9,"pl-k"],[10,17,"pl-en"],[20,29,"pl-k"],[30,36,"pl-en"]],[[4,10,"pl-k"],[29,32,"pl-k"],[33,40,"pl-en"],[41,46,"pl-k"],[47,50,"pl-k"],[53,56,"pl-k"],[58,66,"pl-k"],[69,75,"pl-k"],[76,77,"pl-c1"]],[],[],[[1,7,"pl-k"],[8,34,"pl-en"]],[[4,44,"pl-en"],[45,68,"pl-s"],[45,46,"pl-pds"],[67,68,"pl-pds"]],[[11,16,"pl-k"]],[],[],[[1,7,"pl-k"]],[[0,70,"pl-c"],[0,2,"pl-c"]],[[1,6,"pl-k"]],[[1,3,"pl-k"]],[[0,57,"pl-c"],[0,2,"pl-c"]],[[1,7,"pl-k"],[8,35,"pl-en"],[38,45,"pl-k"],[46,56,"pl-s"],[46,47,"pl-pds"],[53,55,"pl-cce"],[55,56,"pl-pds"],[62,91,"pl-c"],[62,64,"pl-c"]],[[1,5,"pl-k"]],[[1,8,"pl-k"],[9,19,"pl-s"],[9,10,"pl-pds"],[18,19,"pl-pds"]],[[1,7,"pl-k"],[8,35,"pl-en"]],[[1,6,"pl-k"]],[[1,5,"pl-k"]],[[1,3,"pl-k"]],[[1,7,"pl-k"],[8,35,"pl-en"],[38,45,"pl-k"],[46,56,"pl-s"],[46,47,"pl-pds"],[53,55,"pl-cce"],[55,56,"pl-pds"],[62,91,"pl-c"],[62,64,"pl-c"]],[[1,5,"pl-k"]],[[0,65,"pl-c"],[0,2,"pl-c"]],[[1,7,"pl-k"],[8,35,"pl-en"],[38,45,"pl-k"],[46,98,"pl-s"],[46,47,"pl-pds"],[56,58,"pl-cce"],[60,62,"pl-cce"],[65,67,"pl-cce"],[76,78,"pl-cce"],[86,88,"pl-cce"],[90,92,"pl-cce"],[95,97,"pl-cce"],[97,98,"pl-pds"],[104,112,"pl-s"],[104,105,"pl-pds"],[111,112,"pl-pds"],[113,117,"pl-s"],[113,114,"pl-pds"],[116,117,"pl-pds"],[118,122,"pl-s"],[118,119,"pl-pds"],[121,122,"pl-pds"],[123,127,"pl-s"],[123,124,"pl-pds"],[126,127,"pl-pds"],[129,158,"pl-c"],[129,131,"pl-c"]],[[1,5,"pl-k"]],[[1,7,"pl-k"],[8,35,"pl-en"],[38,45,"pl-k"],[46,54,"pl-s"],[46,47,"pl-pds"],[53,54,"pl-pds"],[57,86,"pl-c"],[57,59,"pl-c"]],[[1,6,"pl-k"]],[[1,5,"pl-k"]],[[1,7,"pl-k"],[8,35,"pl-en"]],[[1,5,"pl-k"]],[[0,38,"pl-en"],[39,58,"pl-s"],[39,40,"pl-pds"],[57,58,"pl-pds"]],[],[],[[1,7,"pl-k"],[8,35,"pl-en"]],[[1,5,"pl-k"],[6,14,"pl-c"],[6,8,"pl-c"]],[[1,7,"pl-k"],[8,35,"pl-en"],[39,50,"pl-k"],[51,55,"pl-k"],[57,58,"pl-c1"]],[[1,6,"pl-k"],[7,15,"pl-c"],[7,9,"pl-c"]],[[1,6,"pl-k"],[7,37,"pl-c"],[7,9,"pl-c"]],[],[[0,84,"pl-c"],[0,2,"pl-c"]],[[1,6,"pl-k"]],[[1,7,"pl-k"]],[[1,7,"pl-k"],[8,38,"pl-en"]],[[1,6,"pl-k"]],[[1,6,"pl-k"],[7,35,"pl-c"],[7,9,"pl-c"]],[],[[0,74,"pl-c"],[0,2,"pl-c"]],[[0,76,"pl-c"],[0,2,"pl-c"]],[[0,78,"pl-c"],[0,2,"pl-c"]],[[0,48,"pl-c"],[0,2,"pl-c"]],[[0,48,"pl-c"],[0,2,"pl-c"]],[[1,3,"pl-k"]],[[1,8,"pl-k"],[9,18,"pl-s"],[9,10,"pl-pds"],[17,18,"pl-pds"]],[[1,6,"pl-k"],[7,15,"pl-c"],[7,9,"pl-c"]],[],[[1,6,"pl-k"]],[[1,7,"pl-k"]],[[1,7,"pl-k"],[8,38,"pl-en"]],[[1,6,"pl-k"]],[[1,6,"pl-k"],[7,25,"pl-c"],[7,9,"pl-c"]],[],[[1,6,"pl-k"]],[[1,7,"pl-k"]],[[1,7,"pl-k"],[8,42,"pl-en"]],[[1,6,"pl-k"],[7,44,"pl-c"],[7,9,"pl-c"]],[],[[1,8,"pl-k"],[9,18,"pl-s"],[9,10,"pl-pds"],[17,18,"pl-pds"]],[[1,8,"pl-k"],[9,18,"pl-s"],[9,10,"pl-pds"],[17,18,"pl-pds"]],[[1,8,"pl-k"],[9,18,"pl-s"],[9,10,"pl-pds"],[17,18,"pl-pds"]],[],[[1,5,"pl-k"],[6,39,"pl-c"],[6,8,"pl-c"]],[],[[0,79,"pl-c"],[0,2,"pl-c"]],[[0,39,"pl-en"],[40,44,"pl-c1"]],[],[[16,41,"pl-c"],[16,18,"pl-c"]],[[0,7,"pl-k"],[8,16,"pl-smi"],[17,24,"pl-c1"],[26,35,"pl-c1"],[37,67,"pl-c"],[37,39,"pl-c"]],[[0,7,"pl-k"],[8,16,"pl-smi"],[17,23,"pl-k"],[24,28,"pl-k"],[32,38,"pl-c1"],[40,70,"pl-c"],[40,42,"pl-c"]],[[0,9,"pl-k"],[10,15,"pl-k"],[16,21,"pl-en"]],[[0,6,"pl-k"],[7,18,"pl-en"]],[[0,9,"pl-k"]],[[0,6,"pl-k"],[7,18,"pl-en"],[19,23,"pl-k"]],[[0,9,"pl-k"],[10,15,"pl-k"],[16,21,"pl-en"],[23,28,"pl-k"],[29,35,"pl-en"]],[[0,5,"pl-k"],[6,19,"pl-en"],[21,59,"pl-c"],[21,23,"pl-c"]],[[0,7,"pl-k"],[22,26,"pl-k"],[40,44,"pl-k"],[56,86,"pl-c"],[56,58,"pl-c"]],[[0,8,"pl-k"],[9,14,"pl-k"],[15,21,"pl-en"]],[[0,17,"pl-c"],[0,2,"pl-c"]],[[14,18,"pl-k"],[29,37,"pl-k"],[54,58,"pl-k"],[70,75,"pl-k"],[76,80,"pl-k"]],[[0,9,"pl-k"],[10,15,"pl-k"],[16,21,"pl-en"],[23,28,"pl-k"],[29,35,"pl-en"]],[[0,5,"pl-k"],[6,19,"pl-en"]],[[0,7,"pl-k"],[22,26,"pl-k"],[40,44,"pl-k"],[56,86,"pl-c"],[56,58,"pl-c"]],[[0,9,"pl-k"],[10,15,"pl-k"]],[[0,5,"pl-k"],[6,11,"pl-en"]],[[1,3,"pl-k"]],[[0,86,"pl-c"],[0,2,"pl-c"]],[[0,9,"pl-k"],[10,15,"pl-k"],[16,18,"pl-en"]],[[0,5,"pl-k"],[6,15,"pl-en"]],[[0,9,"pl-k"],[10,15,"pl-k"],[16,20,"pl-en"],[22,27,"pl-k"],[28,34,"pl-en"],[36,41,"pl-k"],[42,47,"pl-en"]],[[0,5,"pl-k"],[6,18,"pl-en"]],[[0,5,"pl-k"],[28,32,"pl-k"],[46,50,"pl-k"],[63,67,"pl-k"]],[[1,6,"pl-k"],[7,17,"pl-c"],[7,9,"pl-c"]],[[2,18,"pl-c"],[2,4,"pl-c"]],[],[],[],[[1,6,"pl-k"],[7,40,"pl-c"],[7,9,"pl-c"]],[],[[1,6,"pl-k"]],[[1,8,"pl-k"],[9,22,"pl-s"],[9,10,"pl-pds"],[21,22,"pl-pds"]],[[1,6,"pl-k"],[7,44,"pl-c"],[7,9,"pl-c"]],[],[[0,9,"pl-k"],[10,17,"pl-en"]],[],[[0,5,"pl-k"],[11,17,"pl-c1"]],[],[[18,24,"pl-k"],[25,29,"pl-k"]],[],[[1,7,"pl-k"]],[[1,7,"pl-k"],[8,39,"pl-en"],[40,48,"pl-k"]],[[1,6,"pl-k"]],[],[[0,106,"pl-c"],[0,2,"pl-c"]],[[0,101,"pl-c"],[0,2,"pl-c"]],[[0,89,"pl-c"],[0,2,"pl-c"]],[[0,80,"pl-c"],[0,2,"pl-c"]],[[0,74,"pl-c"],[0,2,"pl-c"]],[[0,94,"pl-c"],[0,2,"pl-c"]],[[0,93,"pl-c"],[0,2,"pl-c"]],[[0,92,"pl-c"],[0,2,"pl-c"]],[[0,46,"pl-c"],[0,2,"pl-c"]],[[0,8,"pl-c"],[0,2,"pl-c"]],[[0,81,"pl-c"],[0,2,"pl-c"]],[[0,25,"pl-c"],[0,2,"pl-c"]],[[0,12,"pl-c"],[0,2,"pl-c"]],[[0,15,"pl-c"],[0,2,"pl-c"]],[[0,19,"pl-c"],[0,2,"pl-c"]],[[0,19,"pl-c"],[0,2,"pl-c"]],[[0,23,"pl-c"],[0,2,"pl-c"]],[[0,24,"pl-c"],[0,2,"pl-c"]],[[0,85,"pl-c"],[0,2,"pl-c"]],[[0,5,"pl-k"],[6,23,"pl-en"]],[],[[0,7,"pl-k"]],[[4,9,"pl-k"]],[],[[0,8,"pl-k"]],[[4,10,"pl-k"],[46,48,"pl-c1"],[55,93,"pl-c"],[55,57,"pl-c"]],[[4,10,"pl-k"],[52,53,"pl-c1"],[55,93,"pl-c"],[55,57,"pl-c"]],[],[[4,10,"pl-k"],[11,15,"pl-en"],[16,93,"pl-c"],[16,18,"pl-c"]],[],[[8,12,"pl-k"]],[],[],[],[],[[4,9,"pl-k"]],[],[[8,12,"pl-k"],[23,50,"pl-c"],[23,25,"pl-c"]],[],[],[],[[4,8,"pl-k"],[10,18,"pl-en"]],[],[[4,8,"pl-k"],[9,18,"pl-en"],[21,26,"pl-k"],[27,35,"pl-k"],[38,44,"pl-k"],[58,61,"pl-c1"],[66,67,"pl-c1"]],[[4,8,"pl-k"],[9,18,"pl-en"],[21,29,"pl-k"]],[[4,8,"pl-k"],[9,16,"pl-en"],[38,46,"pl-k"]],[[4,8,"pl-k"],[9,16,"pl-en"],[31,39,"pl-k"]],[],[[4,8,"pl-k"],[9,13,"pl-en"],[14,19,"pl-k"]],[],[[0,7,"pl-k"]],[[4,10,"pl-k"],[46,57,"pl-k"],[70,71,"pl-c1"]],[],[[4,10,"pl-en"],[13,21,"pl-k"]],[[4,11,"pl-en"]],[],[[4,46,"pl-c"],[4,6,"pl-c"]],[[4,10,"pl-en"],[11,16,"pl-k"],[17,21,"pl-k"]],[[4,10,"pl-en"],[11,16,"pl-k"],[17,21,"pl-k"]],[],[[4,10,"pl-en"]],[],[[4,10,"pl-en"],[11,16,"pl-k"]],[[12,20,"pl-k"],[22,27,"pl-k"]],[],[[12,20,"pl-k"],[23,28,"pl-k"]],[],[[4,10,"pl-en"],[27,35,"pl-k"]],[[12,20,"pl-k"],[38,46,"pl-k"]],[],[[4,8,"pl-k"],[10,18,"pl-k"],[34,39,"pl-k"]],[[4,8,"pl-k"],[10,18,"pl-k"]],[],[[4,88,"pl-c"],[4,6,"pl-c"]],[[4,9,"pl-k"],[10,14,"pl-k"],[16,21,"pl-en"],[24,29,"pl-k"],[32,38,"pl-k"],[39,49,"pl-k"],[59,63,"pl-c1"],[66,71,"pl-c1"],[77,86,"pl-c"],[77,79,"pl-c"]],[[4,8,"pl-k"],[16,21,"pl-en"]],[[8,10,"pl-k"],[12,21,"pl-c1"]],[[12,18,"pl-k"],[19,35,"pl-k"],[36,40,"pl-k"]],[],[[8,14,"pl-k"],[20,23,"pl-smi"]],[],[],[[14,18,"pl-en"],[21,26,"pl-k"]],[[14,22,"pl-en"],[25,30,"pl-k"]],[],[[11,17,"pl-en"]],[[11,17,"pl-en"],[55,60,"pl-k"]],[],[[14,18,"pl-en"],[19,23,"pl-k"],[44,45,"pl-c1"],[47,52,"pl-k"]],[[14,19,"pl-en"],[20,24,"pl-k"],[51,56,"pl-k"]],[],[[4,7,"pl-k"],[8,15,"pl-en"],[16,21,"pl-k"],[22,26,"pl-k"],[35,39,"pl-k"],[50,55,"pl-c1"],[57,62,"pl-k"]],[[4,7,"pl-k"],[8,15,"pl-en"],[16,21,"pl-k"],[37,41,"pl-k"],[52,57,"pl-c1"],[59,64,"pl-k"]],[],[[0,6,"pl-k"],[39,47,"pl-k"],[67,72,"pl-k"]],[],[],[[25,33,"pl-k"],[35,40,"pl-k"],[54,59,"pl-k"]],[],[[18,22,"pl-k"],[23,31,"pl-k"],[34,39,"pl-k"],[53,58,"pl-k"]],[[18,22,"pl-k"],[23,31,"pl-k"],[34,39,"pl-k"],[53,58,"pl-k"]],[[18,22,"pl-k"],[23,31,"pl-k"],[33,38,"pl-k"],[52,57,"pl-k"]],[[18,22,"pl-k"],[23,31,"pl-k"],[33,38,"pl-k"],[52,57,"pl-k"]],[[18,22,"pl-k"],[23,31,"pl-k"],[34,39,"pl-k"],[53,58,"pl-k"]],[[18,22,"pl-k"],[23,31,"pl-k"],[34,39,"pl-k"],[53,58,"pl-k"]],[],[[0,5,"pl-k"],[6,23,"pl-en"]],[[0,7,"pl-k"]],[[4,12,"pl-k"],[13,21,"pl-en"],[22,27,"pl-k"]],[],[[4,8,"pl-k"],[9,18,"pl-en"],[19,24,"pl-k"],[40,45,"pl-k"]],[],[],[],[],[[25,33,"pl-en"],[34,39,"pl-k"]],[],[[18,22,"pl-k"],[23,31,"pl-k"],[34,39,"pl-k"],[53,58,"pl-k"]],[[18,22,"pl-k"],[23,31,"pl-k"],[34,39,"pl-k"],[55,60,"pl-k"]],[[18,22,"pl-k"],[23,31,"pl-k"],[34,39,"pl-k"],[53,58,"pl-k"]],[[18,22,"pl-k"],[23,31,"pl-k"],[34,39,"pl-k"],[55,60,"pl-k"]],[],[[0,9,"pl-k"],[10,15,"pl-en"]],[[4,8,"pl-k"]],[],[[15,16,"pl-c1"]],[],[],[],[],[],[],[],[],[[17,21,"pl-c1"]],[],[],[],[],[],[],[],[[36,44,"pl-k"]],[[2,20,"pl-c"],[2,4,"pl-c"]],[],[[0,9,"pl-k"],[10,20,"pl-en"]],[[4,8,"pl-k"]],[],[[8,23,"pl-c"],[8,10,"pl-c"]],[],[[21,22,"pl-c1"]],[[21,22,"pl-c1"]],[[21,22,"pl-c1"]],[],[[25,26,"pl-c1"]],[[25,26,"pl-c1"]],[[25,26,"pl-c1"]],[[25,26,"pl-c1"]],[[25,26,"pl-c1"]],[],[[19,20,"pl-c1"]],[[19,20,"pl-c1"],[33,93,"pl-c"],[33,35,"pl-c"]],[],[[16,17,"pl-c1"]],[[16,17,"pl-c1"]],[],[[16,17,"pl-c1"]],[[16,17,"pl-c1"]],[],[[16,17,"pl-c1"]],[[16,17,"pl-c1"]],[],[[8,22,"pl-c"],[8,10,"pl-c"]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[2,25,"pl-c"],[2,4,"pl-c"]],[],[[18,23,"pl-k"],[24,28,"pl-k"],[30,42,"pl-en"]],[[18,23,"pl-k"],[24,28,"pl-k"],[30,43,"pl-en"]],[[18,23,"pl-k"],[24,28,"pl-k"],[30,50,"pl-en"],[51,56,"pl-k"],[57,61,"pl-k"]],[],[[0,6,"pl-k"],[7,24,"pl-en"]],[],[[30,100,"pl-c"],[30,32,"pl-c"]],[[4,12,"pl-k"],[30,71,"pl-c"],[30,32,"pl-c"]],[[4,9,"pl-k"],[10,14,"pl-k"],[30,54,"pl-c"],[30,32,"pl-c"]],[[4,9,"pl-k"],[10,14,"pl-k"],[30,75,"pl-c"],[30,32,"pl-c"]],[[4,9,"pl-k"],[10,14,"pl-k"]],[[4,8,"pl-k"]],[[4,8,"pl-k"]],[[4,8,"pl-k"]],[[4,8,"pl-k"]],[[4,8,"pl-k"]],[[4,7,"pl-k"]],[[4,10,"pl-k"]],[],[],[[0,6,"pl-k"],[7,24,"pl-en"]],[],[[4,31,"pl-c"],[4,6,"pl-c"]],[[4,9,"pl-k"]],[],[[4,9,"pl-k"],[10,14,"pl-k"]],[[4,7,"pl-k"]],[[4,9,"pl-k"],[10,14,"pl-k"]],[[4,8,"pl-k"]],[],[[4,42,"pl-c"],[4,6,"pl-c"]],[[4,8,"pl-k"]],[],[],[[4,25,"pl-c"],[4,6,"pl-c"]],[],[],[[4,45,"pl-c"],[4,6,"pl-c"]],[[4,8,"pl-k"]],[[4,9,"pl-k"],[10,14,"pl-k"]],[],[[4,9,"pl-k"],[10,27,"pl-en"]],[[8,16,"pl-k"]],[],[[12,16,"pl-k"]],[],[[8,15,"pl-k"]],[[12,26,"pl-en"],[27,32,"pl-k"],[73,78,"pl-c1"]],[[12,26,"pl-en"],[52,63,"pl-k"],[95,99,"pl-c1"]],[],[[12,16,"pl-k"],[17,22,"pl-en"],[23,28,"pl-k"],[44,50,"pl-k"],[92,98,"pl-smi"]],[],[[12,20,"pl-k"],[21,26,"pl-k"],[37,42,"pl-k"],[45,51,"pl-k"],[60,66,"pl-smi"]],[],[[12,17,"pl-k"],[18,22,"pl-k"],[24,29,"pl-en"],[32,37,"pl-k"],[40,46,"pl-k"],[55,61,"pl-smi"],[62,67,"pl-c1"]],[],[],[[4,14,"pl-en"],[36,41,"pl-k"],[42,46,"pl-k"],[54,57,"pl-k"],[64,69,"pl-k"],[70,74,"pl-k"]],[[8,13,"pl-k"],[14,18,"pl-k"],[36,41,"pl-k"]],[],[],[[0,6,"pl-k"],[7,24,"pl-en"]],[],[],[[4,9,"pl-k"],[10,14,"pl-k"]],[[4,7,"pl-k"]],[],[],[],[[0,6,"pl-k"],[7,24,"pl-en"]],[],[],[[4,9,"pl-k"],[10,14,"pl-k"]],[[4,7,"pl-k"]],[],[[4,8,"pl-k"],[9,17,"pl-k"],[20,25,"pl-k"],[51,56,"pl-k"]],[[4,8,"pl-k"],[9,17,"pl-k"],[19,24,"pl-k"],[50,55,"pl-k"]],[],[],[[0,6,"pl-k"],[7,24,"pl-en"]],[],[[4,29,"pl-en"]],[[4,11,"pl-k"],[12,16,"pl-k"],[17,26,"pl-en"],[42,47,"pl-k"]],[],[],[[0,9,"pl-k"],[10,16,"pl-en"]],[[4,10,"pl-k"],[11,28,"pl-en"]],[[2,21,"pl-c"],[2,4,"pl-c"]],[],[[0,6,"pl-k"],[7,21,"pl-en"],[22,47,"pl-c"],[22,24,"pl-c"]],[],[[25,32,"pl-c1"],[34,50,"pl-c"],[34,36,"pl-c"]],[[34,57,"pl-c"],[34,36,"pl-c"]],[],[[4,9,"pl-k"],[42,49,"pl-c1"]],[],[[4,42,"pl-c"],[4,6,"pl-c"]],[[24,42,"pl-c"],[24,26,"pl-c"]],[[24,54,"pl-c"],[24,26,"pl-c"]],[[4,12,"pl-k"],[24,53,"pl-c"],[24,26,"pl-c"]],[],[[4,12,"pl-k"],[20,63,"pl-c"],[20,22,"pl-c"]],[[4,12,"pl-k"],[20,62,"pl-c"],[20,22,"pl-c"]],[],[[4,7,"pl-k"],[31,78,"pl-c"],[31,33,"pl-c"]],[[4,7,"pl-k"],[31,82,"pl-c"],[31,33,"pl-c"]],[],[[4,8,"pl-k"],[31,73,"pl-c"],[31,33,"pl-c"]],[[4,8,"pl-k"],[31,71,"pl-c"],[31,33,"pl-c"]],[[4,8,"pl-k"],[31,98,"pl-c"],[31,33,"pl-c"]],[[4,8,"pl-k"],[31,75,"pl-c"],[31,33,"pl-c"]],[[4,8,"pl-k"],[31,77,"pl-c"],[31,33,"pl-c"]],[[4,8,"pl-k"],[31,51,"pl-c"],[31,33,"pl-c"]],[[4,8,"pl-k"],[31,77,"pl-c"],[31,33,"pl-c"]],[[4,8,"pl-k"],[31,82,"pl-c"],[31,33,"pl-c"]],[[4,8,"pl-k"],[31,95,"pl-c"],[31,33,"pl-c"]],[[4,8,"pl-k"],[31,73,"pl-c"],[31,33,"pl-c"]],[[4,8,"pl-k"],[31,75,"pl-c"],[31,33,"pl-c"]],[[4,8,"pl-k"],[31,78,"pl-c"],[31,33,"pl-c"]],[[4,8,"pl-k"],[31,93,"pl-c"],[31,33,"pl-c"]],[[4,8,"pl-k"],[31,64,"pl-c"],[31,33,"pl-c"]],[[4,8,"pl-k"],[31,86,"pl-c"],[31,33,"pl-c"]],[[4,8,"pl-k"],[31,92,"pl-c"],[31,33,"pl-c"]],[[4,8,"pl-k"],[31,88,"pl-c"],[31,33,"pl-c"]],[[4,8,"pl-k"],[31,95,"pl-c"],[31,33,"pl-c"]],[[4,8,"pl-k"],[31,92,"pl-c"],[31,33,"pl-c"]],[[4,8,"pl-k"],[31,91,"pl-c"],[31,33,"pl-c"]],[[4,8,"pl-k"],[31,91,"pl-c"],[31,33,"pl-c"]],[],[[4,8,"pl-k"],[27,47,"pl-c"],[27,29,"pl-c"]],[[4,8,"pl-k"],[27,50,"pl-c"],[27,29,"pl-c"]],[[4,8,"pl-k"],[27,84,"pl-c"],[27,29,"pl-c"]],[[4,8,"pl-k"],[27,68,"pl-c"],[27,29,"pl-c"]],[[4,8,"pl-k"],[27,69,"pl-c"],[27,29,"pl-c"]],[[4,8,"pl-k"],[27,60,"pl-c"],[27,29,"pl-c"]],[],[],[[0,9,"pl-k"],[10,16,"pl-en"]],[[4,13,"pl-k"],[14,19,"pl-en"]],[[1,6,"pl-k"]],[[8,13,"pl-k"],[14,23,"pl-k"],[24,27,"pl-en"],[27,28,"pl-k"]],[[1,5,"pl-k"]],[[8,17,"pl-k"],[18,22,"pl-k"],[29,37,"pl-k"],[42,46,"pl-k"]],[[8,14,"pl-k"],[15,24,"pl-en"]],[],[[8,17,"pl-k"],[18,26,"pl-k"]],[[8,14,"pl-k"],[15,24,"pl-en"],[25,29,"pl-c1"],[36,41,"pl-k"]],[],[[8,14,"pl-k"],[15,24,"pl-en"],[27,33,"pl-k"],[52,56,"pl-k"],[65,69,"pl-c1"]],[[8,14,"pl-k"],[15,25,"pl-en"],[28,34,"pl-k"],[53,57,"pl-k"],[66,71,"pl-c1"]],[],[[8,17,"pl-k"],[18,26,"pl-k"],[30,36,"pl-k"],[37,53,"pl-en"],[56,61,"pl-k"]],[[8,17,"pl-k"],[18,26,"pl-k"],[30,36,"pl-k"],[37,53,"pl-en"],[60,65,"pl-k"]],[[8,17,"pl-k"],[18,26,"pl-k"],[30,36,"pl-k"],[37,53,"pl-en"],[61,66,"pl-k"]],[],[[8,17,"pl-k"],[18,26,"pl-k"],[30,36,"pl-k"],[37,56,"pl-en"]],[[8,17,"pl-k"],[18,26,"pl-k"],[30,36,"pl-k"],[37,56,"pl-en"]],[],[[8,16,"pl-k"],[17,25,"pl-k"],[29,35,"pl-k"],[36,48,"pl-en"],[51,56,"pl-k"]],[[8,17,"pl-k"],[18,26,"pl-k"],[30,36,"pl-k"],[37,49,"pl-en"],[50,55,"pl-k"],[61,66,"pl-k"]],[],[[8,30,"pl-c"],[8,10,"pl-c"]],[[8,17,"pl-k"],[18,26,"pl-k"],[30,36,"pl-k"],[37,44,"pl-en"],[47,53,"pl-k"],[72,76,"pl-k"]],[[8,17,"pl-k"],[18,26,"pl-k"],[30,36,"pl-k"],[37,52,"pl-en"],[55,60,"pl-k"]],[],[[8,17,"pl-k"],[18,26,"pl-k"],[30,36,"pl-k"],[37,47,"pl-en"]],[[8,17,"pl-k"],[18,26,"pl-k"],[30,36,"pl-k"],[37,47,"pl-en"]],[],[[8,17,"pl-k"],[18,26,"pl-k"],[30,36,"pl-k"],[37,45,"pl-en"]],[[8,43,"pl-c"],[8,10,"pl-c"]],[[8,17,"pl-k"],[18,26,"pl-k"],[30,36,"pl-c1"],[43,49,"pl-k"],[50,58,"pl-en"]],[[1,6,"pl-k"]],[],[],[[4,16,"pl-c"],[4,6,"pl-c"]],[[4,13,"pl-k"],[14,22,"pl-k"]],[],[],[[4,13,"pl-k"],[14,19,"pl-k"],[20,21,"pl-en"]],[[39,47,"pl-k"]],[[8,14,"pl-k"],[15,26,"pl-k"]],[],[],[[4,13,"pl-k"],[14,19,"pl-k"],[20,21,"pl-en"]],[[39,47,"pl-k"]],[[8,14,"pl-k"],[15,26,"pl-k"]],[],[],[[4,13,"pl-k"],[14,22,"pl-k"]],[[4,10,"pl-k"],[11,25,"pl-en"]],[],[[0,15,"pl-c"],[0,2,"pl-c"]],[[1,3,"pl-k"]],[[4,13,"pl-k"],[14,22,"pl-k"],[26,34,"pl-k"],[37,41,"pl-k"]],[[4,10,"pl-k"],[11,40,"pl-en"]],[],[[4,13,"pl-k"],[14,22,"pl-k"]],[[4,10,"pl-k"],[11,40,"pl-en"],[55,63,"pl-k"],[100,105,"pl-k"],[114,118,"pl-k"]],[],[[4,13,"pl-k"],[14,22,"pl-k"],[26,34,"pl-k"],[37,41,"pl-k"]],[[4,10,"pl-k"],[11,33,"pl-en"],[36,42,"pl-k"],[61,65,"pl-k"]],[],[[4,13,"pl-k"],[14,22,"pl-k"],[26,30,"pl-k"]],[[4,10,"pl-k"],[11,22,"pl-en"]],[],[[4,13,"pl-k"],[14,22,"pl-k"]],[[4,10,"pl-k"],[11,22,"pl-en"],[26,30,"pl-c1"]],[[8,14,"pl-k"],[15,19,"pl-k"],[20,26,"pl-en"],[45,50,"pl-k"],[61,69,"pl-k"]],[],[],[[4,13,"pl-k"],[14,22,"pl-k"]],[[4,10,"pl-k"],[11,22,"pl-en"],[26,31,"pl-c1"]],[[8,14,"pl-k"],[15,19,"pl-k"],[20,26,"pl-en"],[45,50,"pl-k"],[59,67,"pl-k"]],[],[],[[4,13,"pl-k"],[14,22,"pl-k"]],[[4,9,"pl-k"],[10,23,"pl-c1"]],[[1,5,"pl-k"]],[[4,13,"pl-k"],[14,22,"pl-k"],[26,34,"pl-k"],[37,41,"pl-k"]],[[4,10,"pl-k"],[11,33,"pl-en"]],[],[],[[4,13,"pl-k"],[14,22,"pl-k"]],[[4,10,"pl-k"],[11,33,"pl-en"],[46,54,"pl-k"],[91,96,"pl-k"],[105,109,"pl-k"]],[],[[4,13,"pl-k"],[14,22,"pl-k"]],[[4,10,"pl-k"],[11,46,"pl-en"]],[[8,14,"pl-k"],[33,37,"pl-k"]],[],[],[[36,44,"pl-en"]],[[29,36,"pl-en"]],[],[[4,13,"pl-k"],[14,18,"pl-k"]],[[4,10,"pl-k"],[11,26,"pl-en"]],[[8,17,"pl-k"],[18,26,"pl-k"]],[[8,14,"pl-k"],[22,29,"pl-en"],[30,35,"pl-k"],[36,52,"pl-en"]],[[1,6,"pl-k"]],[[12,25,"pl-c1"],[52,122,"pl-s"],[52,53,"pl-pds"],[121,122,"pl-pds"]],[[1,6,"pl-k"]],[[12,18,"pl-k"],[19,24,"pl-s"],[19,20,"pl-pds"],[23,24,"pl-pds"]],[],[],[],[[4,13,"pl-k"],[14,22,"pl-k"]],[[4,10,"pl-k"],[11,19,"pl-en"]],[],[[4,13,"pl-k"],[14,22,"pl-k"]],[[4,8,"pl-k"],[9,16,"pl-en"],[39,44,"pl-k"]],[[21,25,"pl-c1"]],[],[],[[4,13,"pl-k"],[14,22,"pl-k"],[26,32,"pl-c1"]],[[4,8,"pl-k"],[9,16,"pl-en"],[39,44,"pl-k"],[45,46,"pl-en"],[59,86,"pl-c"],[59,61,"pl-c"]],[[8,55,"pl-c"],[8,10,"pl-c"]],[[8,34,"pl-c"],[8,10,"pl-c"]],[[16,24,"pl-k"],[49,57,"pl-c1"]],[],[],[[4,13,"pl-k"],[14,22,"pl-k"]],[[11,19,"pl-en"],[20,25,"pl-k"]],[[31,39,"pl-c1"]],[[8,15,"pl-c1"]],[[8,14,"pl-k"],[15,22,"pl-c1"]],[],[],[[4,13,"pl-k"]],[[4,10,"pl-k"],[11,26,"pl-en"],[27,31,"pl-c1"]],[[8,17,"pl-k"],[18,26,"pl-k"]],[[8,14,"pl-k"],[22,29,"pl-en"],[30,35,"pl-k"],[36,52,"pl-en"]],[[12,18,"pl-k"],[19,27,"pl-c1"]],[],[],[[2,21,"pl-c"],[2,4,"pl-c"]],[],[[0,9,"pl-k"],[10,18,"pl-k"]],[[0,6,"pl-k"],[7,18,"pl-en"],[21,27,"pl-k"],[28,34,"pl-en"]],[],[],[],[[1,7,"pl-k"]],[[1,6,"pl-k"]],[[1,7,"pl-k"],[8,25,"pl-en"]],[[1,5,"pl-k"]],[[1,7,"pl-k"],[8,25,"pl-en"]],[[1,6,"pl-k"]],[[1,6,"pl-k"]],[],[[0,9,"pl-k"],[10,18,"pl-k"]],[[7,15,"pl-en"]],[[1,3,"pl-k"]],[[30,92,"pl-c"],[30,32,"pl-c"]],[[37,41,"pl-c1"],[42,45,"pl-s"],[42,43,"pl-pds"],[44,45,"pl-pds"]],[[4,10,"pl-k"],[15,21,"pl-c1"],[33,34,"pl-c1"],[40,44,"pl-c1"],[60,71,"pl-k"],[91,97,"pl-k"],[98,107,"pl-s"],[98,99,"pl-pds"],[106,107,"pl-pds"]],[[1,5,"pl-k"]],[[38,83,"pl-c"],[38,40,"pl-c"]],[[34,38,"pl-c1"],[39,42,"pl-s"],[39,40,"pl-pds"],[41,42,"pl-pds"],[46,47,"pl-c1"]],[[4,10,"pl-k"],[15,21,"pl-c1"],[33,37,"pl-c1"],[50,51,"pl-c1"]],[[1,6,"pl-k"]],[],[],[[0,9,"pl-k"],[10,18,"pl-k"],[22,30,"pl-k"],[112,116,"pl-k"],[126,130,"pl-c1"]],[[7,15,"pl-en"],[16,21,"pl-k"],[22,38,"pl-en"]],[[4,10,"pl-k"],[27,34,"pl-c1"]],[],[],[[1,6,"pl-k"]],[[25,33,"pl-en"],[34,39,"pl-k"],[40,44,"pl-k"]],[[1,6,"pl-k"],[7,50,"pl-c"],[7,9,"pl-c"]],[],[[1,3,"pl-k"]],[[0,86,"pl-c"],[0,2,"pl-c"]],[[25,33,"pl-en"],[34,39,"pl-k"]],[[1,6,"pl-k"],[7,17,"pl-c"],[7,9,"pl-c"]],[],[[25,33,"pl-en"]],[],[[25,33,"pl-en"],[39,48,"pl-c1"]],[],[[25,33,"pl-en"],[34,38,"pl-k"]],[],[[25,33,"pl-en"],[34,39,"pl-k"]],[[25,33,"pl-en"],[34,40,"pl-k"]],[[25,33,"pl-en"],[34,40,"pl-k"],[41,45,"pl-k"]],[],[[25,33,"pl-en"],[34,38,"pl-k"]],[[25,33,"pl-en"],[34,38,"pl-k"],[39,45,"pl-k"]],[[25,33,"pl-en"],[34,38,"pl-k"],[39,47,"pl-k"]],[[25,33,"pl-en"],[34,39,"pl-k"]],[[25,33,"pl-en"],[34,39,"pl-k"],[40,48,"pl-k"]],[[25,33,"pl-en"],[34,40,"pl-k"]],[[25,33,"pl-en"],[34,42,"pl-k"]],[[25,33,"pl-en"],[34,38,"pl-k"]],[[25,33,"pl-en"],[34,38,"pl-k"],[39,47,"pl-k"]],[[25,33,"pl-en"],[34,38,"pl-k"],[39,43,"pl-k"]],[[25,33,"pl-en"],[34,38,"pl-k"],[39,43,"pl-k"],[44,52,"pl-k"]],[],[[0,9,"pl-k"],[10,18,"pl-k"],[22,30,"pl-k"],[111,115,"pl-k"],[125,129,"pl-c1"]],[[7,15,"pl-en"],[16,21,"pl-k"],[22,38,"pl-en"]],[[4,9,"pl-k"],[15,23,"pl-k"]],[[4,10,"pl-k"],[12,29,"pl-c1"],[30,41,"pl-k"]],[],[],[[0,9,"pl-k"],[10,16,"pl-en"]],[[4,13,"pl-k"],[14,22,"pl-k"]],[[4,10,"pl-k"],[11,19,"pl-en"]],[],[[8,14,"pl-k"],[15,19,"pl-k"],[20,24,"pl-en"],[47,52,"pl-k"]],[[1,3,"pl-k"]],[[8,21,"pl-c1"],[26,32,"pl-c1"]],[[1,5,"pl-k"]],[[8,16,"pl-k"]],[[1,6,"pl-k"]],[],[],[],[[0,39,"pl-en"],[40,44,"pl-c1"]],[[0,32,"pl-c"],[0,2,"pl-c"]],[[4,13,"pl-k"],[14,22,"pl-k"],[26,32,"pl-c1"]],[[4,10,"pl-k"],[11,19,"pl-en"]],[[8,14,"pl-k"],[15,19,"pl-k"],[20,24,"pl-en"],[47,52,"pl-k"],[53,54,"pl-en"]],[[23,26,"pl-s"],[23,24,"pl-pds"],[25,26,"pl-pds"]],[[12,15,"pl-k"],[17,23,"pl-c1"],[28,29,"pl-c1"]],[[16,18,"pl-k"],[25,26,"pl-c1"],[41,45,"pl-s"],[41,42,"pl-pds"],[44,45,"pl-pds"]],[[28,45,"pl-c1"]],[],[[23,26,"pl-s"],[23,24,"pl-pds"],[25,26,"pl-pds"]],[],[],[[0,30,"pl-c"],[0,2,"pl-c"]],[],[],[[4,65,"pl-c"],[4,6,"pl-c"]],[[0,32,"pl-c"],[0,2,"pl-c"]],[[4,13,"pl-k"],[14,20,"pl-c1"]],[[4,10,"pl-k"],[11,19,"pl-en"],[20,25,"pl-k"],[26,30,"pl-k"]],[[8,14,"pl-k"],[15,19,"pl-k"],[20,24,"pl-en"],[47,52,"pl-k"],[53,57,"pl-en"]],[[23,29,"pl-c1"],[41,42,"pl-c1"],[54,55,"pl-c1"]],[[10,60,"pl-c"],[10,12,"pl-c"]],[],[[0,30,"pl-c"],[0,2,"pl-c"]],[],[[4,13,"pl-k"]],[[4,10,"pl-k"],[11,19,"pl-en"],[20,25,"pl-k"],[26,30,"pl-k"]],[[8,14,"pl-k"],[15,19,"pl-k"],[20,24,"pl-en"],[47,52,"pl-k"],[53,57,"pl-k"]],[],[],[[4,13,"pl-k"],[14,22,"pl-k"]],[[4,10,"pl-k"],[11,19,"pl-en"]],[[0,39,"pl-en"],[40,44,"pl-c1"]],[[8,14,"pl-k"],[15,19,"pl-k"],[20,24,"pl-en"],[47,52,"pl-k"]],[],[[0,40,"pl-c1"],[41,59,"pl-s"],[41,42,"pl-pds"],[58,59,"pl-pds"]],[[21,26,"pl-k"],[27,31,"pl-k"],[35,39,"pl-c1"]],[[1,3,"pl-k"]],[[16,32,"pl-k"],[33,38,"pl-k"],[39,43,"pl-k"]],[[1,5,"pl-k"]],[[17,33,"pl-k"],[34,39,"pl-k"],[40,44,"pl-k"],[46,51,"pl-k"]],[[1,6,"pl-k"]],[],[],[],[],[],[],[[0,6,"pl-k"],[7,24,"pl-en"]],[],[[4,10,"pl-en"],[11,17,"pl-k"]],[],[[11,19,"pl-en"],[22,28,"pl-k"],[36,41,"pl-k"]],[],[[1,6,"pl-k"]],[[4,13,"pl-k"],[14,22,"pl-k"]],[[4,12,"pl-k"],[13,19,"pl-en"],[20,25,"pl-k"]],[[20,28,"pl-k"],[76,82,"pl-k"]],[[28,39,"pl-k"],[44,51,"pl-c1"]],[[9,13,"pl-c1"],[16,27,"pl-k"],[28,34,"pl-k"]],[],[[1,6,"pl-k"],[7,44,"pl-c"],[7,9,"pl-c"]],[],[[12,19,"pl-en"],[20,26,"pl-k"]],[],[[1,6,"pl-k"]],[[4,13,"pl-k"],[14,22,"pl-k"]],[[4,12,"pl-k"],[50,56,"pl-k"],[84,91,"pl-en"]],[[12,17,"pl-k"]],[[20,31,"pl-k"],[32,38,"pl-k"]],[[8,14,"pl-k"],[16,20,"pl-c1"]],[],[[1,6,"pl-k"],[7,45,"pl-c"],[7,9,"pl-c"]],[],[[12,17,"pl-en"],[18,24,"pl-k"]],[],[[1,6,"pl-k"]],[[4,13,"pl-k"],[14,22,"pl-k"]],[[4,12,"pl-k"],[50,56,"pl-k"],[84,89,"pl-en"]],[[12,17,"pl-k"]],[[18,29,"pl-k"],[30,36,"pl-k"]],[[8,14,"pl-k"],[16,20,"pl-c1"]],[],[[1,6,"pl-k"],[7,44,"pl-c"],[7,9,"pl-c"]],[],[[4,23,"pl-c"],[4,6,"pl-c"]],[[22,28,"pl-k"],[29,33,"pl-k"],[34,42,"pl-k"],[45,51,"pl-k"],[57,62,"pl-k"]],[[22,28,"pl-k"],[29,33,"pl-k"],[34,42,"pl-k"],[45,50,"pl-k"],[65,71,"pl-k"]],[[22,28,"pl-k"],[29,33,"pl-k"],[34,42,"pl-k"],[45,51,"pl-k"],[57,62,"pl-k"]],[[22,28,"pl-k"],[29,33,"pl-k"],[34,42,"pl-k"],[45,50,"pl-k"],[65,71,"pl-k"]],[[22,28,"pl-k"],[29,33,"pl-k"],[34,42,"pl-k"],[45,51,"pl-k"],[57,62,"pl-k"]],[[22,28,"pl-k"],[29,33,"pl-k"],[34,42,"pl-k"],[45,50,"pl-k"],[65,71,"pl-k"]],[[22,28,"pl-k"],[29,33,"pl-k"],[34,42,"pl-k"],[45,51,"pl-k"],[57,62,"pl-k"]],[[22,28,"pl-k"],[29,33,"pl-k"],[34,42,"pl-k"],[45,50,"pl-k"],[65,71,"pl-k"]],[[22,28,"pl-k"],[29,33,"pl-k"],[34,42,"pl-k"],[45,51,"pl-k"],[57,62,"pl-k"]],[[22,28,"pl-k"],[29,33,"pl-k"],[34,42,"pl-k"],[45,50,"pl-k"],[65,71,"pl-k"]],[[22,28,"pl-k"],[29,33,"pl-k"],[34,42,"pl-k"],[45,51,"pl-k"],[57,62,"pl-k"]],[[22,28,"pl-k"],[29,33,"pl-k"],[34,42,"pl-k"],[45,50,"pl-k"],[65,71,"pl-k"]],[],[[1,6,"pl-k"]],[[1,7,"pl-k"],[8,29,"pl-en"]],[[4,13,"pl-k"],[14,22,"pl-k"],[26,32,"pl-k"],[33,41,"pl-k"],[79,85,"pl-k"],[98,102,"pl-k"]],[],[[26,34,"pl-k"],[37,42,"pl-k"],[51,56,"pl-k"],[72,78,"pl-k"],[79,87,"pl-k"],[90,101,"pl-k"],[102,108,"pl-k"]],[[26,34,"pl-k"],[37,42,"pl-k"],[56,61,"pl-k"],[72,78,"pl-k"],[79,87,"pl-k"]],[[26,34,"pl-k"],[37,42,"pl-k"],[51,56,"pl-k"],[72,78,"pl-k"],[80,88,"pl-k"]],[[26,34,"pl-k"],[37,42,"pl-k"],[56,61,"pl-k"],[72,78,"pl-k"],[80,88,"pl-k"]],[[26,34,"pl-k"],[37,42,"pl-k"],[51,56,"pl-k"],[72,78,"pl-k"],[79,90,"pl-k"],[91,97,"pl-k"],[110,117,"pl-smi"]],[[26,34,"pl-k"],[37,42,"pl-k"],[56,61,"pl-k"],[72,78,"pl-k"],[83,90,"pl-smi"],[93,104,"pl-k"],[105,111,"pl-k"]],[[26,34,"pl-k"],[37,42,"pl-k"],[51,56,"pl-k"],[72,78,"pl-k"],[79,90,"pl-k"],[91,97,"pl-k"],[110,117,"pl-smi"]],[[26,34,"pl-k"],[37,42,"pl-k"],[56,61,"pl-k"],[72,78,"pl-k"],[83,90,"pl-smi"],[93,104,"pl-k"],[105,111,"pl-k"]],[[26,34,"pl-k"],[37,42,"pl-k"],[51,56,"pl-k"],[72,78,"pl-k"],[79,90,"pl-k"],[91,97,"pl-k"],[110,117,"pl-smi"]],[[26,34,"pl-k"],[37,42,"pl-k"],[56,61,"pl-k"],[72,78,"pl-k"],[83,90,"pl-smi"],[93,104,"pl-k"],[105,111,"pl-k"]],[[26,34,"pl-k"],[37,42,"pl-k"],[51,56,"pl-k"],[72,78,"pl-k"],[79,90,"pl-k"],[91,97,"pl-k"],[110,117,"pl-smi"]],[[26,34,"pl-k"],[37,42,"pl-k"],[56,61,"pl-k"],[72,78,"pl-k"],[83,90,"pl-smi"],[93,104,"pl-k"],[105,111,"pl-k"]],[[1,6,"pl-k"]],[[1,6,"pl-k"],[7,44,"pl-c"],[7,9,"pl-c"]],[],[[4,22,"pl-c"],[4,6,"pl-c"]],[],[[4,10,"pl-k"]],[[4,10,"pl-k"]],[[4,10,"pl-k"]],[],[],[[25,33,"pl-en"],[34,39,"pl-k"]],[],[[18,23,"pl-k"],[40,57,"pl-en"]],[],[[0,9,"pl-k"],[10,18,"pl-k"]],[[0,6,"pl-k"],[7,29,"pl-en"]],[],[[13,17,"pl-k"]],[[4,9,"pl-en"],[15,19,"pl-k"],[27,32,"pl-c1"]],[[13,21,"pl-k"],[25,30,"pl-k"],[33,39,"pl-k"]],[[4,12,"pl-k"],[13,17,"pl-en"],[20,25,"pl-k"]],[],[[1,7,"pl-k"]],[[0,6,"pl-k"],[7,16,"pl-k"],[16,22,"pl-k"],[23,45,"pl-en"],[52,57,"pl-k"]],[[0,6,"pl-k"],[7,16,"pl-k"],[16,22,"pl-k"],[23,45,"pl-en"],[52,58,"pl-k"]],[[0,6,"pl-k"],[7,16,"pl-k"],[16,22,"pl-k"],[23,45,"pl-en"],[52,56,"pl-k"],[57,63,"pl-k"]],[[1,6,"pl-k"]],[[25,33,"pl-en"],[40,45,"pl-k"]],[[25,33,"pl-en"],[40,46,"pl-k"]],[[25,33,"pl-en"],[40,46,"pl-k"],[47,51,"pl-k"]],[],[[1,7,"pl-k"]],[],[[0,9,"pl-k"],[10,16,"pl-en"]],[[4,23,"pl-c"],[4,6,"pl-c"]],[[1,6,"pl-k"]],[[4,12,"pl-k"],[13,18,"pl-k"],[19,20,"pl-en"],[36,42,"pl-k"],[43,54,"pl-en"],[63,68,"pl-k"]],[[4,12,"pl-k"],[13,18,"pl-k"],[19,20,"pl-en"],[22,30,"pl-k"],[36,42,"pl-k"],[43,54,"pl-en"],[63,68,"pl-k"]],[[4,12,"pl-k"],[13,18,"pl-k"],[19,20,"pl-en"],[36,42,"pl-k"],[43,54,"pl-en"],[63,68,"pl-k"]],[],[[4,12,"pl-k"],[13,18,"pl-k"],[19,20,"pl-en"],[24,30,"pl-k"],[31,47,"pl-en"],[63,69,"pl-k"],[88,91,"pl-k"],[100,101,"pl-c1"]],[[4,12,"pl-k"],[24,30,"pl-k"],[31,47,"pl-en"],[48,52,"pl-k"],[63,69,"pl-k"],[88,91,"pl-k"],[100,101,"pl-c1"]],[[4,12,"pl-k"],[24,30,"pl-k"],[31,47,"pl-en"],[48,53,"pl-k"],[54,58,"pl-k"],[63,69,"pl-k"],[88,91,"pl-k"],[100,101,"pl-c1"]],[],[[4,12,"pl-k"],[13,18,"pl-k"],[19,20,"pl-en"],[22,28,"pl-k"],[29,39,"pl-en"],[42,48,"pl-k"],[49,65,"pl-en"],[66,74,"pl-k"]],[[1,6,"pl-k"],[7,50,"pl-c"],[7,9,"pl-c"]],[[4,22,"pl-c"],[4,6,"pl-c"]],[],[[4,10,"pl-k"],[11,28,"pl-en"]],[],[],[],[[22,26,"pl-k"],[27,45,"pl-en"]],[],[[1,7,"pl-k"]],[],[[1,6,"pl-k"],[7,38,"pl-c"],[7,9,"pl-c"]],[[22,26,"pl-k"],[27,41,"pl-en"]],[],[[4,10,"pl-k"],[11,28,"pl-en"]],[],[],[[8,12,"pl-k"],[37,42,"pl-c1"]],[],[[8,15,"pl-en"],[16,21,"pl-k"],[36,41,"pl-k"],[42,46,"pl-k"],[54,57,"pl-k"]],[[8,15,"pl-en"],[16,21,"pl-k"],[34,40,"pl-k"]],[[8,15,"pl-en"],[29,35,"pl-k"]],[[17,25,"pl-k"],[27,32,"pl-k"],[45,51,"pl-k"]],[[17,25,"pl-k"],[40,46,"pl-k"]],[[8,16,"pl-en"]],[],[[8,16,"pl-k"],[17,21,"pl-en"],[24,29,"pl-k"]],[],[[8,16,"pl-k"]],[[12,16,"pl-k"],[17,29,"pl-en"]],[],[],[[4,13,"pl-k"],[14,22,"pl-k"],[26,34,"pl-k"]],[[11,30,"pl-en"],[31,36,"pl-k"],[37,53,"pl-en"],[62,67,"pl-k"]],[[31,36,"pl-k"]],[[8,14,"pl-k"],[16,33,"pl-c1"],[48,65,"pl-c1"]],[],[],[[1,3,"pl-k"]],[[0,40,"pl-en"],[41,62,"pl-s"],[41,42,"pl-pds"],[61,62,"pl-pds"]],[[1,6,"pl-k"]],[],[[0,98,"pl-c"],[0,2,"pl-c"]],[[0,90,"pl-c"],[0,2,"pl-c"]],[[0,92,"pl-c"],[0,2,"pl-c"]],[[0,73,"pl-c"],[0,2,"pl-c"]],[[1,6,"pl-k"]],[[1,7,"pl-k"],[8,17,"pl-en"],[18,24,"pl-v"]],[[1,5,"pl-k"]],[[1,7,"pl-k"],[8,17,"pl-en"],[18,24,"pl-v"],[36,40,"pl-k"]],[[1,6,"pl-k"]],[],[[1,7,"pl-k"],[8,47,"pl-en"],[48,68,"pl-v"]],[[4,13,"pl-k"],[14,22,"pl-k"]],[[21,30,"pl-en"]],[[4,8,"pl-k"],[15,23,"pl-c1"],[49,54,"pl-k"]],[[8,10,"pl-k"]],[],[[8,10,"pl-k"],[19,45,"pl-c1"],[49,56,"pl-smi"]],[[12,18,"pl-k"],[19,25,"pl-c1"],[31,50,"pl-c1"]],[[8,14,"pl-k"],[15,21,"pl-c1"]],[],[],[[4,50,"pl-c"],[4,6,"pl-c"]],[[4,57,"pl-c"],[4,6,"pl-c"]],[[4,57,"pl-c"],[4,6,"pl-c"]],[[1,7,"pl-k"],[8,33,"pl-en"],[34,40,"pl-v"]],[[4,13,"pl-k"],[14,22,"pl-k"]],[[8,16,"pl-k"],[17,19,"pl-en"],[20,25,"pl-k"]],[[8,21,"pl-c1"]],[[22,83,"pl-s"],[22,23,"pl-pds"],[82,83,"pl-pds"]],[[8,14,"pl-k"],[16,20,"pl-c1"]],[],[],[[4,10,"pl-k"],[11,28,"pl-en"],[36,60,"pl-c"],[36,38,"pl-c"]],[],[[8,12,"pl-k"]],[],[],[[8,14,"pl-en"],[19,26,"pl-k"],[28,76,"pl-c"],[28,30,"pl-c"]],[[8,14,"pl-en"],[15,19,"pl-k"],[28,33,"pl-k"]],[],[[8,122,"pl-c"],[8,10,"pl-c"]],[[8,33,"pl-en"]],[[8,33,"pl-en"]],[[8,33,"pl-en"]],[[8,33,"pl-en"]],[[8,33,"pl-en"]],[[8,33,"pl-en"]],[[8,33,"pl-en"]],[[8,33,"pl-en"]],[[8,33,"pl-en"]],[[8,33,"pl-en"]],[[8,33,"pl-en"]],[[8,33,"pl-en"]],[[8,33,"pl-en"]],[[8,33,"pl-en"]],[[8,33,"pl-en"]],[[8,33,"pl-en"]],[[8,33,"pl-en"]],[[8,33,"pl-en"]],[[8,33,"pl-en"]],[[8,33,"pl-en"]],[[8,33,"pl-en"]],[[8,33,"pl-en"]],[],[],[[1,7,"pl-k"]],[],[],[[4,34,"pl-en"],[35,54,"pl-s"],[35,36,"pl-pds"],[53,54,"pl-pds"]],[[35,51,"pl-s"],[35,36,"pl-pds"],[50,51,"pl-pds"]],[[4,58,"pl-c"],[4,6,"pl-c"]],[[4,52,"pl-c"],[4,6,"pl-c"]],[[4,53,"pl-c"],[4,6,"pl-c"]],[],[],[[33,52,"pl-s"],[33,34,"pl-pds"],[51,52,"pl-pds"]],[[33,49,"pl-s"],[33,34,"pl-pds"],[48,49,"pl-pds"]],[[4,56,"pl-c"],[4,6,"pl-c"]],[[4,50,"pl-c"],[4,6,"pl-c"]],[[4,51,"pl-c"],[4,6,"pl-c"]],[],[],[[4,95,"pl-c"],[4,6,"pl-c"]],[[34,38,"pl-c1"],[40,67,"pl-c"],[40,42,"pl-c"]],[[34,38,"pl-c1"],[40,80,"pl-c"],[40,42,"pl-c"]],[[34,38,"pl-c1"],[40,82,"pl-c"],[40,42,"pl-c"]],[[4,113,"pl-c"],[4,6,"pl-c"]],[],[[1,6,"pl-k"],[7,58,"pl-c"],[7,9,"pl-c"]],[],[[4,23,"pl-c"],[4,6,"pl-c"]],[[1,7,"pl-k"]],[[1,7,"pl-k"],[8,38,"pl-en"],[39,43,"pl-k"]],[[1,5,"pl-k"],[6,49,"pl-c"],[6,8,"pl-c"]],[[1,7,"pl-k"],[8,38,"pl-en"],[39,47,"pl-k"],[111,115,"pl-k"]],[[4,10,"pl-k"],[11,15,"pl-k"],[16,18,"pl-en"],[19,24,"pl-k"],[25,29,"pl-k"],[36,41,"pl-k"],[42,46,"pl-k"],[55,61,"pl-k"],[62,68,"pl-c1"],[77,83,"pl-c1"]],[[4,10,"pl-k"],[11,15,"pl-k"],[16,18,"pl-en"],[19,24,"pl-k"],[25,29,"pl-k"],[36,41,"pl-k"],[42,46,"pl-k"],[55,61,"pl-k"],[62,68,"pl-c1"],[77,83,"pl-c1"]],[[4,10,"pl-k"],[11,15,"pl-k"],[16,18,"pl-en"],[19,24,"pl-k"],[25,29,"pl-k"],[36,41,"pl-k"],[42,46,"pl-k"],[55,61,"pl-k"],[62,68,"pl-c1"],[77,83,"pl-c1"]],[[4,10,"pl-k"],[11,15,"pl-k"],[16,18,"pl-en"],[19,24,"pl-k"],[25,29,"pl-k"],[36,41,"pl-k"],[42,46,"pl-k"],[55,61,"pl-k"],[62,68,"pl-c1"],[77,83,"pl-c1"]],[[4,10,"pl-k"],[11,15,"pl-k"],[16,18,"pl-en"],[19,24,"pl-k"],[25,29,"pl-k"],[36,41,"pl-k"],[42,46,"pl-k"],[55,61,"pl-k"],[62,68,"pl-c1"],[77,83,"pl-c1"]],[[4,10,"pl-k"],[11,15,"pl-k"],[16,18,"pl-en"],[19,24,"pl-k"],[25,29,"pl-k"],[36,41,"pl-k"],[42,46,"pl-k"],[55,61,"pl-k"],[62,68,"pl-c1"],[77,83,"pl-c1"]],[[1,6,"pl-k"],[7,50,"pl-c"],[7,9,"pl-c"]],[[4,22,"pl-c"],[4,6,"pl-c"]],[],[[1,7,"pl-k"],[8,29,"pl-en"],[30,38,"pl-v"]],[[4,13,"pl-k"],[14,22,"pl-k"],[26,34,"pl-k"]],[[35,39,"pl-en"],[40,45,"pl-k"],[46,62,"pl-en"]],[[40,45,"pl-k"]],[[8,14,"pl-k"]],[],[],[[4,25,"pl-en"]],[],[],[],[],[],[],[[1,7,"pl-k"]],[[1,7,"pl-k"],[8,22,"pl-en"],[23,27,"pl-v"]],[[1,7,"pl-k"],[8,22,"pl-en"],[23,27,"pl-v"]],[[1,7,"pl-k"],[8,22,"pl-en"],[23,27,"pl-v"]],[[1,7,"pl-k"],[8,22,"pl-en"],[23,27,"pl-v"]],[[1,7,"pl-k"],[8,22,"pl-en"],[23,27,"pl-v"]],[[1,7,"pl-k"],[8,22,"pl-en"],[23,27,"pl-v"]],[[1,5,"pl-k"],[6,49,"pl-c"],[6,8,"pl-c"]],[[1,7,"pl-k"],[8,22,"pl-en"],[23,27,"pl-v"]],[[1,7,"pl-k"],[8,22,"pl-en"],[23,27,"pl-v"]],[[1,7,"pl-k"],[8,22,"pl-en"],[23,27,"pl-v"]],[[1,7,"pl-k"],[8,22,"pl-en"],[23,27,"pl-v"]],[[1,7,"pl-k"],[8,22,"pl-en"],[23,27,"pl-v"]],[[1,7,"pl-k"],[8,22,"pl-en"],[23,27,"pl-v"]],[[1,6,"pl-k"],[7,50,"pl-c"],[7,9,"pl-c"]],[],[[4,13,"pl-k"],[14,22,"pl-k"]],[[4,46,"pl-c"],[4,6,"pl-c"]],[[4,10,"pl-k"],[11,25,"pl-en"]],[],[],[],[],[[8,16,"pl-k"],[17,31,"pl-en"]],[[22,33,"pl-k"]],[],[],[[25,33,"pl-k"],[34,40,"pl-en"]],[[0,36,"pl-c"],[0,2,"pl-c"]],[[0,39,"pl-c1"],[40,44,"pl-c1"],[46,77,"pl-c"],[46,48,"pl-c"]],[[12,16,"pl-k"],[23,34,"pl-k"],[35,39,"pl-k"]],[],[[12,14,"pl-k"],[46,87,"pl-c"],[46,48,"pl-c"]],[],[],[],[[12,14,"pl-k"],[23,40,"pl-c1"],[44,51,"pl-smi"]],[[16,22,"pl-k"],[31,48,"pl-c1"]],[],[[12,18,"pl-k"]],[],[],[[8,84,"pl-c"],[8,10,"pl-c"],[82,84,"pl-c"]],[[8,16,"pl-k"],[17,18,"pl-en"],[21,26,"pl-k"],[29,35,"pl-k"]],[],[[8,27,"pl-c"],[8,10,"pl-c"]],[[8,47,"pl-en"],[52,58,"pl-s"],[52,53,"pl-pds"],[57,58,"pl-pds"],[76,117,"pl-c"],[76,78,"pl-c"]],[[8,47,"pl-en"],[52,58,"pl-s"],[52,53,"pl-pds"],[57,58,"pl-pds"],[76,117,"pl-c"],[76,78,"pl-c"]],[[8,47,"pl-en"],[52,58,"pl-s"],[52,53,"pl-pds"],[57,58,"pl-pds"],[76,117,"pl-c"],[76,78,"pl-c"]],[[8,47,"pl-en"],[52,58,"pl-s"],[52,53,"pl-pds"],[57,58,"pl-pds"],[76,117,"pl-c"],[76,78,"pl-c"]],[[8,47,"pl-en"],[52,58,"pl-s"],[52,53,"pl-pds"],[57,58,"pl-pds"],[76,117,"pl-c"],[76,78,"pl-c"]],[[8,47,"pl-en"],[52,58,"pl-s"],[52,53,"pl-pds"],[57,58,"pl-pds"],[76,117,"pl-c"],[76,78,"pl-c"]],[[8,26,"pl-c"],[8,10,"pl-c"]],[],[[8,122,"pl-c"],[8,10,"pl-c"]],[[8,33,"pl-en"]],[[8,33,"pl-en"]],[[8,33,"pl-en"]],[[8,33,"pl-en"]],[[8,33,"pl-en"]],[[8,33,"pl-en"]],[[8,33,"pl-en"]],[[8,33,"pl-en"]],[[8,33,"pl-en"]],[[8,33,"pl-en"]],[[8,33,"pl-en"]],[[8,33,"pl-en"]],[[8,33,"pl-en"]],[[8,33,"pl-en"]],[[8,33,"pl-en"]],[[8,33,"pl-en"]],[[8,125,"pl-c"],[8,10,"pl-c"]],[[8,122,"pl-c"],[8,10,"pl-c"]],[[8,33,"pl-en"]],[[8,33,"pl-en"]],[],[],[[1,7,"pl-k"]],[],[],[],[],[],[[1,6,"pl-k"],[7,58,"pl-c"],[7,9,"pl-c"]],[],[[1,3,"pl-k"]],[],[[1,6,"pl-k"]],[],[[4,10,"pl-k"],[11,28,"pl-en"]],[],[],[],[[8,28,"pl-en"]],[],[[8,120,"pl-c"],[8,10,"pl-c"]],[[8,136,"pl-c"],[8,10,"pl-c"]],[[8,56,"pl-c"],[8,10,"pl-c"]],[[8,56,"pl-c"],[8,10,"pl-c"]],[[8,17,"pl-k"],[18,26,"pl-k"]],[[26,34,"pl-k"]],[[12,18,"pl-k"],[37,48,"pl-k"]],[],[],[[8,17,"pl-k"],[18,26,"pl-k"],[29,37,"pl-k"],[110,114,"pl-k"],[126,133,"pl-c1"]],[[23,28,"pl-k"],[33,41,"pl-k"],[44,49,"pl-k"]],[[12,18,"pl-k"],[34,39,"pl-k"]],[],[],[],[[4,10,"pl-k"],[11,28,"pl-en"]],[],[[8,13,"pl-k"],[14,18,"pl-k"],[35,42,"pl-c1"]],[[8,13,"pl-k"],[14,18,"pl-k"],[36,43,"pl-c1"]],[[8,12,"pl-k"],[29,34,"pl-c1"]],[[8,12,"pl-k"],[34,39,"pl-c1"]],[[8,12,"pl-k"],[34,39,"pl-c1"]],[[8,12,"pl-k"],[33,38,"pl-c1"]],[[8,12,"pl-k"],[36,41,"pl-c1"]],[[8,11,"pl-k"],[42,43,"pl-c1"]],[[8,14,"pl-k"],[32,33,"pl-c1"]],[],[[19,27,"pl-k"],[29,34,"pl-k"],[35,39,"pl-k"]],[],[[8,17,"pl-k"],[18,26,"pl-k"]],[[19,27,"pl-k"],[29,34,"pl-k"]],[[15,19,"pl-c1"],[21,25,"pl-c1"]],[[12,18,"pl-k"],[20,24,"pl-c1"]],[],[],[],[[4,9,"pl-k"],[21,25,"pl-k"]],[],[[4,10,"pl-k"],[11,28,"pl-en"]],[],[[25,63,"pl-c"],[25,27,"pl-c"]],[],[[23,83,"pl-c"],[23,25,"pl-c"]],[[8,11,"pl-k"],[27,111,"pl-c"],[27,29,"pl-c"]],[[28,101,"pl-c"],[28,30,"pl-c"]],[],[[8,16,"pl-en"],[32,37,"pl-k"],[38,42,"pl-k"],[50,58,"pl-k"],[65,70,"pl-k"]],[[17,22,"pl-k"],[48,51,"pl-k"],[67,68,"pl-c1"]],[],[[8,16,"pl-en"],[17,22,"pl-k"]],[[8,16,"pl-en"],[31,37,"pl-k"]],[],[[8,47,"pl-en"],[48,53,"pl-c1"],[55,86,"pl-c"],[55,57,"pl-c"]],[[18,26,"pl-k"],[28,33,"pl-k"]],[],[],[[18,26,"pl-k"],[42,48,"pl-k"]],[],[[18,26,"pl-k"],[28,33,"pl-k"],[34,38,"pl-k"]],[],[[8,17,"pl-k"],[18,26,"pl-k"]],[[18,26,"pl-k"],[28,33,"pl-k"]],[[15,19,"pl-c1"],[21,25,"pl-c1"]],[[12,18,"pl-k"],[20,24,"pl-c1"]],[],[],[[8,12,"pl-k"],[13,21,"pl-k"],[23,28,"pl-k"],[46,51,"pl-k"]],[],[[8,17,"pl-en"],[22,29,"pl-k"]],[],[],[[4,59,"pl-c"],[4,6,"pl-c"]],[[22,25,"pl-k"],[27,34,"pl-en"],[35,40,"pl-k"]],[[22,25,"pl-k"],[27,39,"pl-en"],[40,45,"pl-k"]],[[22,26,"pl-k"],[27,43,"pl-en"]],[],[[4,12,"pl-k"],[13,21,"pl-k"]],[[4,7,"pl-k"],[8,27,"pl-en"],[28,33,"pl-k"],[40,46,"pl-k"],[47,48,"pl-c1"]],[],[[4,13,"pl-k"],[14,36,"pl-en"]],[[8,12,"pl-k"]],[],[[17,18,"pl-c1"]],[],[],[],[],[],[],[[6,41,"pl-c"],[6,8,"pl-c"]],[],[[4,23,"pl-c"],[4,6,"pl-c"]],[[4,13,"pl-k"],[14,17,"pl-k"],[19,24,"pl-k"],[25,26,"pl-en"],[28,33,"pl-k"],[34,35,"pl-en"],[37,43,"pl-k"],[44,64,"pl-en"],[71,75,"pl-k"],[76,84,"pl-en"],[87,92,"pl-k"],[93,109,"pl-en"],[118,123,"pl-k"],[149,154,"pl-k"],[157,163,"pl-k"],[164,169,"pl-c1"]],[],[[1,7,"pl-k"],[8,36,"pl-en"],[37,42,"pl-v"]],[[4,13,"pl-k"],[14,19,"pl-k"],[20,21,"pl-en"],[23,28,"pl-k"],[29,30,"pl-en"],[32,38,"pl-k"],[39,59,"pl-en"],[71,75,"pl-k"],[76,84,"pl-en"],[87,92,"pl-k"],[93,109,"pl-en"],[118,123,"pl-k"],[149,154,"pl-k"],[157,163,"pl-k"],[164,166,"pl-c1"]],[[4,22,"pl-c"],[4,6,"pl-c"]],[],[[4,32,"pl-en"],[33,34,"pl-c1"]],[[33,34,"pl-c1"]],[[33,34,"pl-c1"]],[[33,34,"pl-c1"]],[[33,34,"pl-c1"]],[[33,34,"pl-c1"]],[],[],[],[[8,21,"pl-c1"],[43,48,"pl-k"],[49,53,"pl-k"],[61,64,"pl-k"],[71,76,"pl-k"],[77,81,"pl-k"]],[[22,27,"pl-k"],[28,32,"pl-k"],[51,53,"pl-s"],[51,52,"pl-pds"],[52,53,"pl-pds"],[55,60,"pl-k"],[88,90,"pl-s"],[88,89,"pl-pds"],[89,90,"pl-pds"]],[],[[8,21,"pl-c1"],[43,48,"pl-k"],[49,53,"pl-k"],[61,64,"pl-k"],[71,76,"pl-k"],[77,81,"pl-k"]],[[22,27,"pl-k"],[28,32,"pl-k"],[50,55,"pl-k"]],[],[[8,12,"pl-k"],[13,22,"pl-smi"],[23,28,"pl-k"]],[],[[8,17,"pl-k"],[18,21,"pl-k"],[34,42,"pl-k"],[46,54,"pl-k"]],[[25,29,"pl-k"],[30,43,"pl-smi"],[44,49,"pl-k"],[50,66,"pl-smi"]],[[44,49,"pl-k"],[50,66,"pl-smi"]],[],[[12,14,"pl-k"],[28,45,"pl-c1"],[49,56,"pl-smi"]],[[27,46,"pl-c1"],[52,56,"pl-s"],[52,53,"pl-pds"],[55,56,"pl-pds"]],[],[[12,18,"pl-k"]],[],[],[[8,17,"pl-k"],[18,26,"pl-k"]],[[25,29,"pl-k"],[30,42,"pl-smi"],[43,48,"pl-k"],[49,65,"pl-smi"]],[],[],[[12,14,"pl-k"],[47,88,"pl-c"],[47,49,"pl-c"]],[],[],[],[[12,14,"pl-k"],[28,45,"pl-c1"],[49,56,"pl-smi"]],[[28,45,"pl-c1"]],[],[],[[12,18,"pl-k"]],[],[],[[8,12,"pl-k"],[13,31,"pl-smi"]],[],[[8,12,"pl-k"],[13,16,"pl-c1"]],[[8,12,"pl-k"],[13,18,"pl-smi"],[21,26,"pl-k"]],[],[],[[4,13,"pl-k"],[14,26,"pl-en"]],[[8,12,"pl-k"]],[],[[26,27,"pl-c1"]],[[26,27,"pl-c1"]],[[26,27,"pl-c1"]],[],[[6,31,"pl-c"],[6,8,"pl-c"]],[],[[22,26,"pl-k"],[27,58,"pl-en"],[59,64,"pl-k"]],[],[[22,26,"pl-k"],[27,40,"pl-en"],[62,67,"pl-k"],[68,72,"pl-k"],[80,83,"pl-k"]],[[41,46,"pl-k"],[47,51,"pl-k"],[59,64,"pl-k"]],[],[[1,7,"pl-k"],[8,35,"pl-en"],[36,42,"pl-v"]],[[4,6,"pl-k"]],[[8,10,"pl-k"]],[[12,14,"pl-k"]],[[30,32,"pl-smi"]],[[19,27,"pl-smi"]],[[19,27,"pl-smi"]],[[16,47,"pl-c1"]],[[16,18,"pl-k"],[19,35,"pl-c1"],[42,59,"pl-c1"],[63,72,"pl-smi"]],[[20,47,"pl-c1"]],[[16,18,"pl-k"],[19,37,"pl-c1"]],[[20,34,"pl-c1"]],[],[[12,18,"pl-k"]],[],[[6,11,"pl-k"],[12,17,"pl-c1"]],[],[[1,7,"pl-k"],[8,31,"pl-en"],[32,38,"pl-v"]],[[18,20,"pl-en"]],[],[[4,6,"pl-k"]],[],[[4,6,"pl-k"]],[[8,35,"pl-en"]],[[4,6,"pl-k"]],[[4,18,"pl-en"]],[],[[4,13,"pl-k"],[14,17,"pl-k"],[30,38,"pl-k"],[42,50,"pl-k"]],[[21,25,"pl-k"],[26,39,"pl-en"],[61,66,"pl-k"],[67,71,"pl-k"],[79,82,"pl-k"]],[[40,45,"pl-k"],[46,50,"pl-k"],[58,63,"pl-k"],[64,80,"pl-en"]],[[40,45,"pl-k"]],[[8,12,"pl-k"]],[],[[8,94,"pl-c"],[8,10,"pl-c"]],[[8,94,"pl-c"],[8,10,"pl-c"]],[[8,83,"pl-c"],[8,10,"pl-c"]],[[8,94,"pl-c"],[8,10,"pl-c"]],[[8,35,"pl-c1"],[36,55,"pl-c1"],[61,65,"pl-s"],[61,62,"pl-pds"],[64,65,"pl-pds"]],[[8,31,"pl-c1"],[32,51,"pl-c1"],[57,61,"pl-s"],[57,58,"pl-pds"],[60,61,"pl-pds"]],[[8,14,"pl-k"]],[],[],[[4,13,"pl-k"],[14,22,"pl-k"]],[[21,25,"pl-k"],[26,38,"pl-en"],[60,65,"pl-k"],[66,70,"pl-k"],[78,81,"pl-k"]],[[39,44,"pl-k"],[45,49,"pl-k"],[57,62,"pl-k"],[63,79,"pl-en"]],[[8,12,"pl-k"]],[],[[8,10,"pl-k"],[38,79,"pl-c"],[38,40,"pl-c"]],[],[],[[8,94,"pl-c"],[8,10,"pl-c"]],[[8,94,"pl-c"],[8,10,"pl-c"]],[[8,83,"pl-c"],[8,10,"pl-c"]],[[8,94,"pl-c"],[8,10,"pl-c"]],[[8,35,"pl-c1"],[37,54,"pl-c1"]],[[8,31,"pl-c1"],[33,50,"pl-c1"]],[[8,14,"pl-k"]],[],[],[[4,10,"pl-k"],[11,28,"pl-en"]],[],[[8,33,"pl-en"]],[[8,15,"pl-k"],[16,20,"pl-k"],[21,30,"pl-en"],[40,45,"pl-k"]],[],[],[[4,13,"pl-k"],[14,22,"pl-k"]],[[4,9,"pl-k"],[10,29,"pl-en"],[32,38,"pl-k"],[39,59,"pl-en"],[60,97,"pl-c"],[60,62,"pl-c"]],[],[[4,11,"pl-k"]],[[8,16,"pl-k"],[17,36,"pl-en"]],[],[],[[8,12,"pl-k"],[13,22,"pl-en"],[36,41,"pl-k"],[42,50,"pl-k"]],[[1,7,"pl-k"]],[[12,15,"pl-k"]],[[16,21,"pl-k"],[23,57,"pl-c"],[23,25,"pl-c"]],[[16,58,"pl-c"],[16,18,"pl-c"]],[[14,19,"pl-k"],[20,25,"pl-k"]],[[22,41,"pl-c1"],[47,79,"pl-c"],[47,49,"pl-c"]],[[16,22,"pl-k"],[23,27,"pl-c1"]],[[14,19,"pl-k"],[36,70,"pl-c"],[36,38,"pl-c"]],[[1,6,"pl-k"],[36,67,"pl-c"],[36,38,"pl-c"]],[[12,23,"pl-k"],[24,28,"pl-k"],[36,68,"pl-c"],[36,38,"pl-c"]],[[12,18,"pl-k"],[19,24,"pl-c1"]],[],[],[[4,12,"pl-k"]],[[8,14,"pl-en"]],[],[],[[22,26,"pl-k"],[27,58,"pl-en"],[59,64,"pl-k"]],[],[[4,81,"pl-c"],[4,6,"pl-c"]],[[4,66,"pl-c"],[4,6,"pl-c"]],[[4,10,"pl-k"],[11,28,"pl-en"]],[[8,24,"pl-en"],[25,30,"pl-k"],[52,58,"pl-k"]],[],[[26,34,"pl-k"],[36,41,"pl-k"],[63,69,"pl-k"]],[[26,34,"pl-k"],[58,64,"pl-k"]],[],[[8,25,"pl-en"],[28,36,"pl-k"],[39,46,"pl-k"]],[],[[4,14,"pl-k"]],[[8,24,"pl-en"]],[[8,24,"pl-en"],[51,59,"pl-k"]],[],[[8,12,"pl-k"],[13,20,"pl-en"]],[[8,12,"pl-k"],[29,33,"pl-c1"]],[],[],[[4,13,"pl-k"],[14,22,"pl-k"],[26,31,"pl-k"],[32,44,"pl-en"],[47,53,"pl-k"],[54,70,"pl-en"]],[],[],[],[[4,11,"pl-k"]],[[8,16,"pl-k"],[17,29,"pl-en"],[30,35,"pl-k"]],[[8,16,"pl-k"],[17,29,"pl-en"],[52,63,"pl-k"]],[],[[8,20,"pl-en"],[21,26,"pl-k"],[44,50,"pl-k"]],[[8,20,"pl-en"],[37,45,"pl-k"],[48,55,"pl-k"]],[],[[22,30,"pl-k"],[32,37,"pl-k"],[55,61,"pl-k"]],[[22,30,"pl-k"],[50,56,"pl-k"]],[],[[8,12,"pl-k"],[13,22,"pl-en"],[40,45,"pl-k"],[46,54,"pl-k"],[57,64,"pl-c1"]],[],[[8,21,"pl-en"],[24,32,"pl-k"]],[[12,14,"pl-k"]],[[16,23,"pl-c1"]],[],[],[],[],[[4,10,"pl-k"],[11,28,"pl-en"]],[],[],[[8,12,"pl-k"],[31,36,"pl-c1"]],[],[[8,22,"pl-en"],[23,28,"pl-k"],[29,33,"pl-k"],[41,44,"pl-k"]],[],[[8,22,"pl-en"],[23,28,"pl-k"],[48,54,"pl-k"]],[[8,22,"pl-en"],[43,49,"pl-k"]],[],[[24,32,"pl-k"],[34,39,"pl-k"],[59,65,"pl-k"]],[[24,32,"pl-k"],[54,60,"pl-k"]],[],[[8,23,"pl-en"]],[],[[8,71,"pl-c"],[8,10,"pl-c"]],[[0,39,"pl-en"],[40,44,"pl-c1"]],[[8,17,"pl-k"],[18,26,"pl-k"]],[[24,32,"pl-k"],[34,39,"pl-k"]],[[26,43,"pl-c1"]],[[12,18,"pl-k"],[20,24,"pl-c1"]],[],[],[],[[8,98,"pl-c"],[8,10,"pl-c"]],[[8,17,"pl-k"],[18,26,"pl-k"]],[[24,32,"pl-k"],[35,40,"pl-k"],[50,56,"pl-k"],[57,61,"pl-c1"],[63,71,"pl-smi"]],[],[[8,97,"pl-c"],[8,10,"pl-c"]],[[8,99,"pl-c"],[8,10,"pl-c"]],[[8,100,"pl-c"],[8,10,"pl-c"]],[[8,100,"pl-c"],[8,10,"pl-c"]],[[8,17,"pl-k"],[18,26,"pl-k"]],[[24,32,"pl-k"],[34,39,"pl-k"],[49,55,"pl-k"],[56,60,"pl-c1"],[62,70,"pl-smi"]],[],[[8,12,"pl-k"],[13,16,"pl-en"]],[[8,12,"pl-k"],[13,18,"pl-en"]],[],[],[[4,13,"pl-k"],[14,22,"pl-k"]],[[20,36,"pl-en"],[37,42,"pl-k"]],[[8,14,"pl-k"]],[],[[2,21,"pl-c"],[2,4,"pl-c"]],[],[[1,7,"pl-k"],[8,32,"pl-en"],[33,48,"pl-v"]],[[4,10,"pl-k"],[11,15,"pl-en"]],[],[],[[8,12,"pl-en"]],[],[[8,12,"pl-k"],[13,17,"pl-en"],[43,48,"pl-k"],[57,68,"pl-c1"]],[[8,12,"pl-k"],[13,17,"pl-en"],[44,49,"pl-k"],[58,69,"pl-c1"]],[[5,5,"pl-ii"]],[],[[0,24,"pl-en"],[37,42,"pl-k"],[43,47,"pl-k"],[50,52,"pl-s"],[50,51,"pl-pds"],[51,52,"pl-pds"]],[[0,24,"pl-en"],[38,43,"pl-k"],[44,48,"pl-k"],[51,53,"pl-s"],[51,52,"pl-pds"],[52,53,"pl-pds"]],[[0,24,"pl-en"],[31,35,"pl-k"],[37,41,"pl-c1"]],[[0,24,"pl-en"],[36,40,"pl-k"],[42,46,"pl-c1"]],[[0,24,"pl-en"],[36,40,"pl-k"],[42,46,"pl-c1"]],[[0,24,"pl-en"],[34,40,"pl-k"],[42,43,"pl-c1"]],[[0,24,"pl-en"],[35,39,"pl-k"],[41,45,"pl-c1"]],[[0,24,"pl-en"],[38,42,"pl-k"],[44,48,"pl-c1"]],[[0,24,"pl-en"],[44,47,"pl-k"],[49,50,"pl-c1"]],[],[[0,9,"pl-k"],[10,18,"pl-k"]],[[0,3,"pl-k"],[4,31,"pl-en"]],[[4,44,"pl-c1"],[45,70,"pl-s"],[45,46,"pl-pds"],[69,70,"pl-pds"]],[[4,10,"pl-k"],[42,61,"pl-c1"]],[],[[4,43,"pl-c1"]],[[4,10,"pl-k"],[11,12,"pl-c1"]],[],[],[[2,22,"pl-c"],[2,4,"pl-c"]],[],[[0,82,"pl-c"],[0,2,"pl-c"]],[[0,81,"pl-c"],[0,2,"pl-c"]],[[0,9,"pl-k"],[10,38,"pl-en"]],[[46,65,"pl-en"]],[[2,43,"pl-c"],[2,4,"pl-c"]],[],[[0,9,"pl-k"],[10,17,"pl-en"]],[[1,5,"pl-k"],[7,32,"pl-c"],[7,9,"pl-c"]],[[0,9,"pl-k"],[10,18,"pl-k"]],[[0,3,"pl-k"],[4,31,"pl-en"]],[[4,10,"pl-k"],[11,12,"pl-c1"]],[],[[7,32,"pl-c"],[7,9,"pl-c"]],[],[[0,9,"pl-k"],[10,16,"pl-en"]],[[4,9,"pl-k"],[27,31,"pl-k"],[36,41,"pl-k"]],[[4,10,"pl-k"],[11,23,"pl-en"]],[[2,21,"pl-c"],[2,4,"pl-c"]],[],[[0,5,"pl-k"],[6,23,"pl-en"]],[],[],[],[[4,8,"pl-k"],[9,18,"pl-en"],[19,22,"pl-k"],[29,34,"pl-k"],[35,39,"pl-k"],[41,46,"pl-k"],[54,58,"pl-k"],[74,79,"pl-c1"]],[],[[0,7,"pl-k"]],[[4,12,"pl-k"],[13,20,"pl-en"],[21,24,"pl-k"],[32,33,"pl-c1"],[35,40,"pl-k"],[41,45,"pl-k"],[47,52,"pl-k"],[61,68,"pl-c1"]],[],[[4,11,"pl-en"],[12,17,"pl-k"],[30,36,"pl-k"]],[[4,11,"pl-en"],[25,31,"pl-k"]],[],[[13,21,"pl-k"],[23,28,"pl-k"],[41,47,"pl-k"]],[[13,21,"pl-k"],[36,42,"pl-k"]],[],[[4,12,"pl-en"],[16,61,"pl-c"],[16,18,"pl-c"]],[],[[4,8,"pl-k"],[9,25,"pl-en"],[26,29,"pl-k"],[36,41,"pl-k"],[42,46,"pl-k"],[48,53,"pl-k"]],[],[[4,8,"pl-k"],[9,18,"pl-en"],[19,24,"pl-k"],[25,29,"pl-k"],[39,44,"pl-k"],[45,49,"pl-k"]],[[4,8,"pl-k"],[9,21,"pl-en"]],[[4,8,"pl-k"],[9,18,"pl-en"],[19,24,"pl-k"],[25,29,"pl-k"],[39,43,"pl-k"]],[[4,8,"pl-k"],[9,18,"pl-en"],[19,24,"pl-k"],[25,29,"pl-k"],[39,42,"pl-k"]],[[4,8,"pl-k"],[9,18,"pl-en"],[19,24,"pl-k"],[25,29,"pl-k"],[39,44,"pl-k"],[45,49,"pl-k"]],[],[[4,8,"pl-k"],[9,19,"pl-en"]],[],[[4,8,"pl-k"],[9,45,"pl-en"]],[],[[4,8,"pl-k"],[9,25,"pl-en"]],[],[[4,8,"pl-k"],[9,16,"pl-en"]],[],[[4,7,"pl-k"],[8,11,"pl-en"]],[],[],[[0,9,"pl-k"],[10,31,"pl-en"]],[[4,8,"pl-k"]],[],[[35,36,"pl-c1"]],[[35,36,"pl-c1"],[40,83,"pl-c"],[40,42,"pl-c"]],[[35,36,"pl-c1"],[40,71,"pl-c"],[40,42,"pl-c"]],[[35,36,"pl-c1"],[40,53,"pl-c"],[40,42,"pl-c"]],[[35,36,"pl-c1"],[40,65,"pl-c"],[40,42,"pl-c"]],[[35,37,"pl-c1"],[40,68,"pl-c"],[40,42,"pl-c"]],[[35,37,"pl-c1"],[40,72,"pl-c"],[40,42,"pl-c"]],[[35,37,"pl-c1"],[40,72,"pl-c"],[40,42,"pl-c"]],[[35,38,"pl-c1"],[40,78,"pl-c"],[40,42,"pl-c"]],[[35,38,"pl-c1"],[40,78,"pl-c"],[40,42,"pl-c"]],[[35,38,"pl-c1"],[40,69,"pl-c"],[40,42,"pl-c"]],[],[[2,36,"pl-c"],[2,4,"pl-c"]],[],[[0,6,"pl-k"],[7,24,"pl-en"]],[],[[4,7,"pl-k"]],[[4,7,"pl-k"]],[[4,10,"pl-k"]],[[4,7,"pl-k"],[26,60,"pl-c"],[26,28,"pl-c"]],[[4,8,"pl-k"]],[],[],[[0,6,"pl-k"],[7,24,"pl-en"]],[],[],[[4,8,"pl-k"]],[],[],[[0,6,"pl-k"],[7,24,"pl-en"]],[],[[4,12,"pl-k"]],[[4,12,"pl-k"]],[[4,12,"pl-k"]],[[4,12,"pl-k"]],[[4,7,"pl-k"]],[[4,7,"pl-k"]],[],[],[[0,6,"pl-k"],[7,16,"pl-en"]],[],[[4,9,"pl-k"],[37,44,"pl-c1"]],[[4,9,"pl-k"],[37,44,"pl-c1"]],[[4,12,"pl-k"],[37,38,"pl-c1"]],[],[],[[0,6,"pl-k"],[7,24,"pl-en"]],[],[[4,81,"pl-c"],[4,6,"pl-c"]],[[4,81,"pl-c"],[4,6,"pl-c"]],[[4,41,"pl-c"],[4,6,"pl-c"]],[],[[4,94,"pl-c"],[4,6,"pl-c"]],[[4,11,"pl-k"],[12,16,"pl-k"],[17,29,"pl-en"],[30,35,"pl-k"]],[],[[4,44,"pl-c"],[4,6,"pl-c"]],[[4,11,"pl-k"],[12,16,"pl-k"],[17,31,"pl-en"]],[[4,99,"pl-c"],[4,6,"pl-c"]],[[4,11,"pl-k"],[12,16,"pl-k"],[17,29,"pl-en"],[30,35,"pl-k"]],[],[[4,80,"pl-c"],[4,6,"pl-c"]],[[4,11,"pl-k"],[12,16,"pl-k"],[17,32,"pl-en"],[33,38,"pl-k"]],[[4,113,"pl-c"],[4,6,"pl-c"]],[[4,11,"pl-k"],[12,16,"pl-k"],[17,34,"pl-en"],[35,40,"pl-k"]],[[4,40,"pl-c"],[4,6,"pl-c"]],[[4,11,"pl-k"],[12,16,"pl-k"],[17,30,"pl-en"],[31,36,"pl-k"]],[],[[4,76,"pl-c"],[4,6,"pl-c"]],[[4,11,"pl-k"],[12,16,"pl-k"],[17,36,"pl-en"],[37,42,"pl-k"]],[],[[4,79,"pl-c"],[4,6,"pl-c"]],[[4,11,"pl-k"],[12,16,"pl-k"],[17,30,"pl-en"],[31,36,"pl-k"]],[[4,78,"pl-c"],[4,6,"pl-c"]],[[4,11,"pl-k"],[12,16,"pl-k"],[17,28,"pl-en"]],[],[[4,65,"pl-c"],[4,6,"pl-c"]],[[4,11,"pl-k"],[12,16,"pl-k"],[17,27,"pl-en"],[28,33,"pl-k"]],[[4,66,"pl-c"],[4,6,"pl-c"]],[[4,11,"pl-k"],[12,16,"pl-k"],[17,28,"pl-en"],[29,34,"pl-k"]],[],[[4,106,"pl-c"],[4,6,"pl-c"]],[[4,102,"pl-c"],[4,6,"pl-c"]],[[4,11,"pl-k"],[12,16,"pl-k"],[17,34,"pl-en"],[35,40,"pl-k"]],[],[[4,29,"pl-en"]],[],[[4,89,"pl-c"],[4,6,"pl-c"]],[[4,10,"pl-k"],[11,14,"pl-k"],[39,62,"pl-en"]],[[4,10,"pl-k"],[11,16,"pl-k"],[32,37,"pl-k"],[39,58,"pl-en"]],[],[[4,132,"pl-c"],[4,6,"pl-c"]],[[4,10,"pl-k"],[11,14,"pl-k"],[25,53,"pl-en"]],[[4,10,"pl-k"],[11,16,"pl-k"],[25,49,"pl-en"]],[],[],[[0,9,"pl-k"],[10,16,"pl-en"]],[[4,9,"pl-k"],[48,53,"pl-k"]],[],[[22,26,"pl-k"],[27,47,"pl-en"],[48,53,"pl-k"],[54,58,"pl-k"],[66,69,"pl-k"],[99,103,"pl-k"]],[],[[4,13,"pl-k"],[14,22,"pl-k"]],[[15,30,"pl-en"],[31,36,"pl-k"]],[[8,14,"pl-k"],[15,18,"pl-k"],[19,27,"pl-c1"]],[],[[2,21,"pl-c"],[2,4,"pl-c"]],[],[[0,9,"pl-k"],[10,18,"pl-k"]],[[0,3,"pl-k"],[4,20,"pl-en"],[21,26,"pl-k"],[27,31,"pl-k"],[39,42,"pl-k"],[53,57,"pl-k"]],[[4,32,"pl-c1"]],[[4,10,"pl-k"],[11,12,"pl-c1"]],[],[[2,22,"pl-c"],[2,4,"pl-c"]],[],[[1,6,"pl-k"]],[[1,7,"pl-k"],[8,26,"pl-en"],[32,38,"pl-k"],[39,44,"pl-c1"]],[[1,5,"pl-k"]],[[1,7,"pl-k"],[8,26,"pl-en"],[28,32,"pl-k"],[33,34,"pl-c1"]],[[1,6,"pl-k"]],[],[[0,33,"pl-c"],[0,2,"pl-c"]],[[1,7,"pl-k"]],[],[[1,6,"pl-k"]],[[1,7,"pl-k"],[8,32,"pl-en"]],[[1,7,"pl-k"],[8,30,"pl-en"]],[[1,7,"pl-k"],[8,30,"pl-en"],[31,32,"pl-v"],[34,40,"pl-k"]],[[1,5,"pl-k"]],[[1,7,"pl-k"],[8,32,"pl-en"],[33,35,"pl-k"]],[[1,7,"pl-k"],[8,30,"pl-en"],[31,36,"pl-k"],[37,42,"pl-c1"]],[[1,7,"pl-k"],[8,30,"pl-en"],[31,32,"pl-v"],[35,39,"pl-k"],[40,41,"pl-c1"]],[[1,6,"pl-k"]],[],[[0,43,"pl-c"],[0,2,"pl-c"]],[[1,7,"pl-k"],[8,39,"pl-en"],[40,41,"pl-v"]],[[4,6,"pl-k"]],[],[[4,26,"pl-en"]],[],[[1,6,"pl-k"]],[[1,7,"pl-k"],[8,27,"pl-en"],[28,29,"pl-v"]],[[1,5,"pl-k"],[6,47,"pl-c"],[6,8,"pl-c"]],[[1,7,"pl-k"],[8,27,"pl-en"],[28,29,"pl-v"]],[[4,7,"pl-k"]],[],[[6,11,"pl-k"],[30,48,"pl-c1"]],[[1,6,"pl-k"],[7,48,"pl-c"],[7,9,"pl-c"]],[],[[1,6,"pl-k"]],[[1,7,"pl-k"],[8,28,"pl-en"]],[[4,42,"pl-en"],[43,59,"pl-s"],[43,44,"pl-pds"],[58,59,"pl-pds"]],[],[],[[1,5,"pl-k"],[6,45,"pl-c"],[6,8,"pl-c"]],[[1,7,"pl-k"],[8,28,"pl-en"]],[[1,6,"pl-k"],[7,46,"pl-c"],[7,9,"pl-c"]],[],[[0,65,"pl-c"],[0,2,"pl-c"]],[[1,7,"pl-k"],[8,33,"pl-en"],[34,62,"pl-v"]],[[18,44,"pl-en"],[83,95,"pl-c"],[83,85,"pl-c"],[93,95,"pl-c"]],[],[[20,45,"pl-en"]],[],[[28,77,"pl-en"]],[],[],[[1,7,"pl-k"],[8,33,"pl-en"],[34,61,"pl-v"]],[[4,13,"pl-k"],[16,28,"pl-c"],[16,18,"pl-c"],[26,28,"pl-c"]],[[8,14,"pl-k"],[15,18,"pl-en"],[21,27,"pl-k"],[28,32,"pl-en"]],[],[[12,16,"pl-k"],[17,18,"pl-en"]],[],[[8,14,"pl-k"],[39,43,"pl-k"],[44,48,"pl-en"]],[],[[14,15,"pl-c1"]],[],[[8,33,"pl-en"]],[],[[28,32,"pl-k"],[33,39,"pl-en"],[42,80,"pl-c"],[42,44,"pl-c"]],[],[[1,7,"pl-k"],[8,44,"pl-en"],[45,58,"pl-v"]],[[4,10,"pl-k"],[11,15,"pl-k"],[16,17,"pl-en"]],[[4,29,"pl-en"]],[],[],[[1,7,"pl-k"],[8,53,"pl-en"],[54,74,"pl-v"]],[[4,10,"pl-k"],[37,42,"pl-en"],[47,53,"pl-k"]],[[4,29,"pl-en"],[30,36,"pl-k"]],[],[],[[0,24,"pl-c"],[0,2,"pl-c"]],[[1,7,"pl-k"],[8,25,"pl-en"],[26,36,"pl-v"]],[[4,40,"pl-en"]],[],[[0,74,"pl-c"],[0,2,"pl-c"]],[[1,3,"pl-k"]],[[1,7,"pl-k"],[8,31,"pl-en"],[32,42,"pl-v"]],[[4,49,"pl-en"]],[],[],[[1,5,"pl-k"],[6,32,"pl-c"],[6,8,"pl-c"]],[[1,7,"pl-k"],[8,31,"pl-en"]],[],[[1,6,"pl-k"],[7,33,"pl-c"],[7,9,"pl-c"]],[],[[0,39,"pl-c"],[0,2,"pl-c"]],[[1,7,"pl-k"],[8,33,"pl-en"],[34,47,"pl-v"]],[[4,29,"pl-en"]],[],[],[[0,79,"pl-c"],[0,2,"pl-c"]],[[1,7,"pl-k"],[8,33,"pl-en"]],[[4,13,"pl-k"],[14,21,"pl-en"]],[[8,17,"pl-k"]],[[8,14,"pl-k"]],[[12,18,"pl-k"]],[],[],[[4,17,"pl-en"],[18,22,"pl-c1"],[24,26,"pl-s"],[24,25,"pl-pds"],[25,26,"pl-pds"]],[],[[1,7,"pl-k"],[8,30,"pl-en"]],[],[[1,7,"pl-k"],[8,46,"pl-en"],[47,65,"pl-v"]],[[4,13,"pl-k"],[14,22,"pl-k"]],[[4,10,"pl-k"],[11,15,"pl-k"],[16,20,"pl-en"]],[[4,13,"pl-k"],[16,28,"pl-c"],[16,18,"pl-c"],[26,28,"pl-c"]],[[8,17,"pl-k"],[18,26,"pl-k"]],[[8,14,"pl-k"],[15,19,"pl-en"]],[[8,17,"pl-k"],[18,26,"pl-k"],[33,41,"pl-k"]],[[8,14,"pl-k"],[15,19,"pl-en"]],[],[[12,16,"pl-en"],[17,22,"pl-k"],[23,27,"pl-k"],[35,43,"pl-k"],[50,53,"pl-k"]],[[16,40,"pl-c1"],[41,66,"pl-c1"]],[[44,93,"pl-c1"]],[],[[44,47,"pl-c1"],[56,60,"pl-c1"],[63,68,"pl-c1"]],[],[[54,59,"pl-c1"],[62,63,"pl-c1"]],[],[],[[8,17,"pl-k"]],[[8,14,"pl-k"],[15,19,"pl-en"]],[],[[12,16,"pl-en"],[17,22,"pl-k"],[23,27,"pl-k"],[30,38,"pl-k"],[40,43,"pl-k"]],[],[],[[4,13,"pl-k"],[14,22,"pl-k"]],[[4,10,"pl-k"],[11,15,"pl-k"],[16,20,"pl-en"]],[],[[1,7,"pl-k"],[8,41,"pl-en"],[42,52,"pl-v"]],[[4,42,"pl-en"]],[],[],[[1,7,"pl-k"],[8,51,"pl-en"]],[[4,30,"pl-en"],[57,125,"pl-c"],[57,59,"pl-c"],[123,125,"pl-c"]],[],[[12,23,"pl-en"],[71,72,"pl-c1"]],[],[[1,7,"pl-k"],[8,41,"pl-en"]],[[4,47,"pl-en"]],[[18,22,"pl-c1"],[24,26,"pl-s"],[24,25,"pl-pds"],[25,26,"pl-pds"]],[],[[1,7,"pl-k"],[8,40,"pl-en"]],[[4,47,"pl-en"]],[[18,22,"pl-c1"],[24,26,"pl-s"],[24,25,"pl-pds"],[25,26,"pl-pds"]],[],[[1,7,"pl-k"],[8,39,"pl-en"]],[[4,42,"pl-en"]],[[4,47,"pl-en"]],[],[],[],[[1,7,"pl-k"],[8,34,"pl-en"]],[[4,35,"pl-en"]],[],[[0,15,"pl-c"],[0,2,"pl-c"]],[[1,7,"pl-k"],[8,23,"pl-en"],[24,28,"pl-v"]],[[4,6,"pl-k"],[7,12,"pl-k"],[40,57,"pl-en"]],[],[],[[0,57,"pl-c"],[0,2,"pl-c"]],[[1,7,"pl-k"],[8,31,"pl-en"],[32,51,"pl-v"]],[[4,13,"pl-k"],[14,21,"pl-en"],[24,33,"pl-k"],[34,62,"pl-en"]],[[12,18,"pl-k"],[64,83,"pl-en"],[86,94,"pl-k"]],[[16,55,"pl-c1"],[56,60,"pl-c1"]],[[16,56,"pl-c1"],[57,82,"pl-s"],[57,58,"pl-pds"],[81,82,"pl-pds"]],[[16,54,"pl-c1"],[55,85,"pl-s"],[55,56,"pl-pds"],[84,85,"pl-pds"]],[[16,22,"pl-k"]],[[16,22,"pl-k"],[23,27,"pl-k"],[59,64,"pl-c1"]],[],[],[],[[16,18,"pl-k"]],[],[[29,33,"pl-c1"]],[],[[16,22,"pl-k"]],[],[],[],[[4,13,"pl-k"],[14,21,"pl-en"]],[],[[1,7,"pl-k"],[8,26,"pl-en"],[27,37,"pl-v"]],[[4,27,"pl-en"]],[],[[0,33,"pl-c"],[0,2,"pl-c"]],[[1,7,"pl-k"],[8,32,"pl-en"],[33,43,"pl-v"]],[[4,30,"pl-en"],[69,97,"pl-c"],[69,71,"pl-c"],[95,97,"pl-c"]],[],[[18,22,"pl-c1"],[24,26,"pl-s"],[24,25,"pl-pds"],[25,26,"pl-pds"]],[],[[0,31,"pl-c"],[0,2,"pl-c"]],[[1,7,"pl-k"],[8,30,"pl-en"]],[[4,30,"pl-en"],[69,97,"pl-c"],[69,71,"pl-c"],[95,97,"pl-c"]],[],[],[],[[0,40,"pl-c"],[0,2,"pl-c"]],[[1,7,"pl-k"],[8,50,"pl-en"],[51,76,"pl-v"]],[[4,10,"pl-k"],[27,41,"pl-en"]],[[4,30,"pl-en"],[76,104,"pl-c"],[76,78,"pl-c"],[102,104,"pl-c"]],[],[],[],[[1,7,"pl-k"],[8,45,"pl-en"],[46,55,"pl-v"]],[[4,46,"pl-en"]],[],[],[[0,28,"pl-c"],[0,2,"pl-c"]],[[1,7,"pl-k"],[8,33,"pl-en"],[34,58,"pl-v"]],[[4,30,"pl-en"],[74,102,"pl-c"],[74,76,"pl-c"],[100,102,"pl-c"]],[[64,68,"pl-c1"]],[[18,22,"pl-c1"],[24,26,"pl-s"],[24,25,"pl-pds"],[25,26,"pl-pds"]],[],[[0,28,"pl-c"],[0,2,"pl-c"]],[[1,7,"pl-k"],[8,33,"pl-en"],[34,58,"pl-v"]],[[4,30,"pl-en"],[74,102,"pl-c"],[74,76,"pl-c"],[100,102,"pl-c"]],[[64,69,"pl-c1"]],[[18,22,"pl-c1"],[24,26,"pl-s"],[24,25,"pl-pds"],[25,26,"pl-pds"]],[],[[0,19,"pl-c"],[0,2,"pl-c"]],[[0,108,"pl-c"],[0,2,"pl-c"]],[[1,7,"pl-k"],[8,20,"pl-en"]],[[4,21,"pl-en"]],[],[],[[0,18,"pl-c"],[0,2,"pl-c"]],[],[[1,7,"pl-k"],[8,25,"pl-en"]],[[4,8,"pl-k"],[9,26,"pl-en"]],[],[[40,47,"pl-smi"]],[[16,24,"pl-smi"]],[],[],[],[[1,7,"pl-k"],[8,23,"pl-en"],[24,25,"pl-v"],[43,49,"pl-s"],[43,44,"pl-pds"],[48,49,"pl-pds"]],[],[[1,7,"pl-k"],[8,27,"pl-en"]],[],[[40,42,"pl-smi"]],[],[[8,10,"pl-k"],[14,17,"pl-c1"]],[[12,39,"pl-c1"]],[[11,16,"pl-c1"]],[],[],[[0,19,"pl-c"],[0,2,"pl-c"]],[[1,7,"pl-k"],[8,30,"pl-en"]],[[1,7,"pl-k"],[8,33,"pl-en"]],[[1,7,"pl-k"],[8,27,"pl-en"]],[[0,18,"pl-c"],[0,2,"pl-c"]],[],[[1,7,"pl-k"],[8,23,"pl-en"]],[[1,7,"pl-k"],[8,26,"pl-en"]],[[1,7,"pl-k"],[8,20,"pl-en"]],[],[[1,7,"pl-k"],[8,25,"pl-en"],[43,90,"pl-c"],[43,45,"pl-c"]],[],[[1,7,"pl-k"]],[],[[1,7,"pl-k"],[8,34,"pl-en"]],[[4,44,"pl-en"],[45,80,"pl-s"],[45,46,"pl-pds"],[79,80,"pl-pds"]],[[4,65,"pl-c"],[4,6,"pl-c"],[63,65,"pl-c"]],[],[],[[4,23,"pl-en"]],[[12,49,"pl-en"]],[[29,90,"pl-c"],[29,31,"pl-c"],[88,90,"pl-c"]],[],[],[],[[1,7,"pl-k"],[8,34,"pl-en"]],[],[[8,34,"pl-c1"]],[[29,79,"pl-c"],[29,31,"pl-c"]],[],[[1,7,"pl-k"],[8,29,"pl-en"]],[],[[39,49,"pl-smi"]],[],[[8,27,"pl-c1"]],[[27,40,"pl-smi"]],[],[[8,39,"pl-c1"]],[],[],[[1,7,"pl-k"],[8,28,"pl-en"]],[],[[39,49,"pl-smi"]],[],[[8,27,"pl-c1"],[39,51,"pl-c1"]],[[8,39,"pl-c1"]],[],[],[[1,5,"pl-k"],[6,42,"pl-c"],[6,8,"pl-c"]],[],[[0,33,"pl-c"],[0,2,"pl-c"]],[[1,7,"pl-k"],[8,34,"pl-en"]],[],[[1,7,"pl-k"],[8,34,"pl-en"]],[[4,44,"pl-en"],[45,80,"pl-s"],[45,46,"pl-pds"],[79,80,"pl-pds"]],[],[],[[12,49,"pl-en"]],[],[],[[1,7,"pl-k"],[8,29,"pl-en"]],[],[],[],[[1,7,"pl-k"],[8,28,"pl-en"]],[[4,33,"pl-en"]],[],[],[[7,43,"pl-c"],[7,9,"pl-c"]],[],[[1,7,"pl-k"],[8,20,"pl-en"]],[[1,7,"pl-k"],[8,21,"pl-en"]],[[1,7,"pl-k"],[8,23,"pl-en"]],[[1,7,"pl-k"],[8,26,"pl-en"]],[[1,7,"pl-k"],[8,27,"pl-en"]],[[1,7,"pl-k"],[8,29,"pl-en"]],[],[[0,19,"pl-c"],[0,2,"pl-c"]],[[1,7,"pl-k"],[8,28,"pl-en"],[67,79,"pl-c1"],[94,120,"pl-c1"]],[[1,7,"pl-k"],[8,29,"pl-en"],[68,80,"pl-c1"],[95,121,"pl-c1"]],[[1,7,"pl-k"],[8,31,"pl-en"],[70,82,"pl-c1"],[97,123,"pl-c1"]],[[1,7,"pl-k"],[8,34,"pl-en"],[73,85,"pl-c1"],[100,126,"pl-c1"]],[[1,7,"pl-k"],[8,35,"pl-en"],[74,86,"pl-c1"],[101,127,"pl-c1"]],[[1,7,"pl-k"],[8,37,"pl-en"],[76,88,"pl-c1"],[103,129,"pl-c1"]],[[0,18,"pl-c"],[0,2,"pl-c"]],[],[[1,7,"pl-k"],[8,23,"pl-en"]],[[1,7,"pl-k"],[8,24,"pl-en"]],[[1,7,"pl-k"],[8,26,"pl-en"]],[[1,7,"pl-k"],[8,23,"pl-en"]],[[1,7,"pl-k"],[8,24,"pl-en"]],[[1,7,"pl-k"],[8,26,"pl-en"]],[[1,7,"pl-k"],[8,23,"pl-en"]],[[1,7,"pl-k"],[8,24,"pl-en"]],[[1,7,"pl-k"],[8,26,"pl-en"]],[[1,7,"pl-k"],[8,23,"pl-en"]],[[1,7,"pl-k"],[8,24,"pl-en"]],[[1,7,"pl-k"],[8,26,"pl-en"]],[[1,7,"pl-k"],[8,23,"pl-en"]],[[1,7,"pl-k"],[8,24,"pl-en"]],[[1,7,"pl-k"],[8,26,"pl-en"]],[[1,7,"pl-k"],[8,23,"pl-en"]],[[1,7,"pl-k"],[8,24,"pl-en"]],[[1,7,"pl-k"],[8,26,"pl-en"]],[],[[1,7,"pl-k"],[8,26,"pl-en"]],[[1,7,"pl-k"],[8,27,"pl-en"]],[[1,7,"pl-k"],[8,29,"pl-en"]],[[1,7,"pl-k"],[8,32,"pl-en"]],[[1,7,"pl-k"],[8,33,"pl-en"]],[[1,7,"pl-k"],[8,35,"pl-en"]],[],[[1,7,"pl-k"]],[],[[1,7,"pl-k"],[8,32,"pl-en"]],[],[[8,10,"pl-k"],[12,38,"pl-c1"],[42,50,"pl-smi"]],[[43,53,"pl-smi"]],[],[[12,15,"pl-k"]],[[16,36,"pl-c1"]],[[14,19,"pl-k"],[20,25,"pl-k"],[26,34,"pl-k"]],[[20,28,"pl-k"]],[[27,45,"pl-c1"]],[[27,37,"pl-smi"],[40,44,"pl-c1"]],[[14,19,"pl-k"],[38,56,"pl-c1"]],[[12,43,"pl-c1"]],[[10,14,"pl-k"],[17,50,"pl-c"],[17,19,"pl-c"],[48,50,"pl-c"]],[[12,34,"pl-c1"],[35,40,"pl-c1"]],[],[],[],[[1,7,"pl-k"],[8,34,"pl-en"]],[],[[8,10,"pl-k"],[12,38,"pl-c1"],[42,50,"pl-smi"]],[[43,53,"pl-smi"]],[[75,77,"pl-s"],[75,76,"pl-pds"],[76,77,"pl-pds"]],[[12,15,"pl-k"]],[[16,36,"pl-c1"]],[[14,19,"pl-k"],[38,56,"pl-c1"]],[[12,43,"pl-c1"]],[[10,14,"pl-k"],[17,50,"pl-c"],[17,19,"pl-c"],[48,50,"pl-c"]],[[11,33,"pl-c1"],[34,39,"pl-c1"]],[],[],[],[[1,7,"pl-k"],[8,30,"pl-en"]],[],[[39,49,"pl-smi"]],[],[[8,11,"pl-k"]],[[12,32,"pl-c1"]],[[10,15,"pl-k"],[34,52,"pl-c1"]],[[8,39,"pl-c1"]],[],[],[[0,19,"pl-c"],[0,2,"pl-c"]],[[1,7,"pl-k"],[8,27,"pl-en"],[105,107,"pl-s"],[105,106,"pl-pds"],[106,107,"pl-pds"]],[[1,7,"pl-k"],[8,28,"pl-en"],[107,109,"pl-s"],[107,108,"pl-pds"],[108,109,"pl-pds"]],[[1,7,"pl-k"],[8,30,"pl-en"],[111,113,"pl-s"],[111,112,"pl-pds"],[112,113,"pl-pds"]],[],[[1,7,"pl-k"],[8,30,"pl-en"],[92,94,"pl-s"],[92,93,"pl-pds"],[93,94,"pl-pds"]],[[1,7,"pl-k"],[8,31,"pl-en"],[94,96,"pl-s"],[94,95,"pl-pds"],[95,96,"pl-pds"]],[[1,7,"pl-k"],[8,33,"pl-en"],[98,100,"pl-s"],[98,99,"pl-pds"],[99,100,"pl-pds"]],[],[[1,7,"pl-k"],[8,32,"pl-en"]],[[1,7,"pl-k"],[8,33,"pl-en"]],[[1,7,"pl-k"],[8,35,"pl-en"]],[],[[1,7,"pl-k"],[8,35,"pl-en"]],[[1,7,"pl-k"],[8,36,"pl-en"]],[[1,7,"pl-k"],[8,38,"pl-en"]],[],[[1,7,"pl-k"],[8,28,"pl-en"]],[[1,7,"pl-k"],[8,29,"pl-en"]],[[1,7,"pl-k"],[8,31,"pl-en"]],[],[[1,7,"pl-k"],[8,35,"pl-en"],[74,86,"pl-c1"],[101,120,"pl-c1"]],[[1,7,"pl-k"],[8,36,"pl-en"],[75,87,"pl-c1"],[102,122,"pl-c1"]],[[1,7,"pl-k"],[8,38,"pl-en"],[77,89,"pl-c1"],[104,126,"pl-c1"]],[[1,7,"pl-k"],[8,38,"pl-en"],[81,93,"pl-c1"],[108,130,"pl-c1"]],[[1,7,"pl-k"],[8,39,"pl-en"],[82,94,"pl-c1"],[109,132,"pl-c1"]],[[1,7,"pl-k"],[8,41,"pl-en"],[84,96,"pl-c1"],[111,136,"pl-c1"]],[[1,7,"pl-k"],[8,40,"pl-en"],[85,97,"pl-c1"],[112,136,"pl-c1"]],[[1,7,"pl-k"],[8,41,"pl-en"],[86,98,"pl-c1"],[113,138,"pl-c1"]],[[1,7,"pl-k"],[8,43,"pl-en"],[88,100,"pl-c1"],[115,142,"pl-c1"]],[[1,7,"pl-k"],[8,43,"pl-en"],[92,104,"pl-c1"],[119,146,"pl-c1"]],[[1,7,"pl-k"],[8,44,"pl-en"],[93,105,"pl-c1"],[120,148,"pl-c1"]],[[1,7,"pl-k"],[8,46,"pl-en"],[95,107,"pl-c1"],[122,152,"pl-c1"]],[[1,7,"pl-k"],[8,36,"pl-en"],[75,87,"pl-c1"],[102,122,"pl-c1"]],[[1,7,"pl-k"],[8,37,"pl-en"],[76,88,"pl-c1"],[103,124,"pl-c1"]],[[1,7,"pl-k"],[8,39,"pl-en"],[78,90,"pl-c1"],[105,128,"pl-c1"]],[[0,18,"pl-c"],[0,2,"pl-c"]],[],[[1,6,"pl-k"],[7,38,"pl-c"],[7,9,"pl-c"]],[],[[0,100,"pl-c"]],[[0,100,"pl-c"]],[[0,100,"pl-c"]],[[0,100,"pl-c"]],[[1,5,"pl-k"],[6,31,"pl-c"],[6,8,"pl-c"]],[],[[1,7,"pl-k"],[8,33,"pl-en"],[34,55,"pl-v"]],[[4,13,"pl-k"],[14,26,"pl-c"],[14,16,"pl-c"],[24,26,"pl-c"]],[[8,17,"pl-k"],[18,26,"pl-k"]],[[8,14,"pl-k"],[15,18,"pl-en"],[21,27,"pl-k"],[28,32,"pl-en"]],[[10,14,"pl-k"],[15,16,"pl-en"]],[],[[4,13,"pl-k"],[14,22,"pl-k"]],[[4,10,"pl-k"],[11,15,"pl-k"]],[],[[1,7,"pl-k"],[8,44,"pl-en"],[45,52,"pl-v"]],[[4,13,"pl-k"],[14,22,"pl-k"]],[[4,10,"pl-k"],[11,17,"pl-k"],[18,22,"pl-k"],[23,24,"pl-en"]],[],[[0,24,"pl-c"],[0,2,"pl-c"]],[[1,7,"pl-k"],[8,25,"pl-en"],[26,30,"pl-v"]],[[4,40,"pl-en"]],[],[[0,35,"pl-c"],[0,2,"pl-c"]],[[1,7,"pl-k"],[8,31,"pl-en"],[32,36,"pl-v"]],[[4,40,"pl-en"]],[],[[0,39,"pl-c"],[0,2,"pl-c"]],[[1,7,"pl-k"],[8,33,"pl-en"],[34,41,"pl-v"]],[[4,29,"pl-en"]],[],[],[[0,79,"pl-c"],[0,2,"pl-c"]],[[1,7,"pl-k"],[8,33,"pl-en"],[58,62,"pl-c1"],[64,66,"pl-s"],[64,65,"pl-pds"],[65,66,"pl-pds"]],[[1,7,"pl-k"],[8,30,"pl-en"],[50,54,"pl-c1"],[56,58,"pl-s"],[56,57,"pl-pds"],[57,58,"pl-pds"]],[],[[0,18,"pl-c"],[0,2,"pl-c"]],[[1,7,"pl-k"],[8,34,"pl-en"]],[[4,13,"pl-k"],[14,22,"pl-k"]],[[4,10,"pl-k"],[11,15,"pl-k"],[16,33,"pl-en"]],[],[[1,7,"pl-k"],[8,41,"pl-en"],[42,56,"pl-v"]],[[4,13,"pl-k"],[14,22,"pl-k"]],[[4,10,"pl-k"],[11,15,"pl-k"],[16,33,"pl-en"]],[],[[1,7,"pl-k"],[8,41,"pl-en"],[65,69,"pl-c1"],[71,73,"pl-s"],[71,72,"pl-pds"],[72,73,"pl-pds"]],[[1,7,"pl-k"],[8,40,"pl-en"],[64,68,"pl-c1"],[70,72,"pl-s"],[70,71,"pl-pds"],[71,72,"pl-pds"]],[],[[0,15,"pl-c"],[0,2,"pl-c"]],[[1,7,"pl-k"],[8,23,"pl-en"],[24,28,"pl-v"]],[],[[0,24,"pl-c"],[0,2,"pl-c"]],[[1,7,"pl-k"],[8,26,"pl-en"],[27,31,"pl-v"],[33,42,"pl-k"],[43,52,"pl-c"],[43,45,"pl-c"]],[],[[0,33,"pl-c"],[0,2,"pl-c"]],[[1,7,"pl-k"],[8,32,"pl-en"],[33,37,"pl-v"],[53,57,"pl-c1"],[59,61,"pl-s"],[59,60,"pl-pds"],[60,61,"pl-pds"]],[],[[0,31,"pl-c"],[0,2,"pl-c"]],[[1,7,"pl-k"],[8,30,"pl-en"],[31,36,"pl-k"],[37,54,"pl-en"]],[],[[1,7,"pl-k"],[8,45,"pl-en"],[46,55,"pl-v"]],[[4,13,"pl-k"],[14,22,"pl-k"],[51,52,"pl-k"]],[[4,10,"pl-k"],[11,17,"pl-k"],[34,51,"pl-en"]],[],[[1,7,"pl-k"],[8,33,"pl-en"],[34,58,"pl-v"]],[[1,7,"pl-k"],[8,33,"pl-en"],[34,58,"pl-v"]],[],[[1,7,"pl-k"],[8,20,"pl-en"],[27,38,"pl-k"],[39,43,"pl-k"],[45,46,"pl-c1"]],[[1,7,"pl-k"],[8,23,"pl-en"],[24,25,"pl-v"],[28,39,"pl-k"],[40,44,"pl-k"],[46,47,"pl-c1"]],[[1,7,"pl-k"],[8,30,"pl-en"],[49,60,"pl-k"],[61,65,"pl-k"],[67,68,"pl-c1"]],[[1,7,"pl-k"],[8,33,"pl-en"],[52,63,"pl-k"],[64,68,"pl-k"],[70,71,"pl-c1"]],[[1,7,"pl-k"],[8,27,"pl-en"],[46,57,"pl-k"],[58,62,"pl-k"],[64,65,"pl-c1"]],[[1,7,"pl-k"],[8,23,"pl-en"],[30,41,"pl-k"],[42,46,"pl-k"],[48,49,"pl-c1"]],[[1,7,"pl-k"],[8,26,"pl-en"],[33,44,"pl-k"],[45,49,"pl-k"],[51,52,"pl-c1"]],[[1,7,"pl-k"],[8,20,"pl-en"],[27,38,"pl-k"],[39,43,"pl-k"],[45,46,"pl-c1"]],[],[[1,3,"pl-k"]],[],[],[[1,7,"pl-k"],[8,20,"pl-en"],[32,38,"pl-k"]],[[1,7,"pl-k"],[8,21,"pl-en"],[33,39,"pl-k"]],[[1,7,"pl-k"],[8,23,"pl-en"],[35,41,"pl-k"]],[[1,7,"pl-k"],[8,26,"pl-en"],[38,44,"pl-k"]],[[1,7,"pl-k"],[8,27,"pl-en"],[39,45,"pl-k"]],[[1,7,"pl-k"],[8,29,"pl-en"],[41,47,"pl-k"]],[],[[1,7,"pl-k"],[8,28,"pl-en"],[46,52,"pl-k"]],[[1,7,"pl-k"],[8,29,"pl-en"],[47,53,"pl-k"]],[[1,7,"pl-k"],[8,31,"pl-en"],[49,55,"pl-k"]],[[1,7,"pl-k"],[8,34,"pl-en"],[52,58,"pl-k"]],[[1,7,"pl-k"],[8,35,"pl-en"],[53,59,"pl-k"]],[[1,7,"pl-k"],[8,37,"pl-en"],[55,61,"pl-k"]],[],[[0,9,"pl-k"],[10,17,"pl-en"]],[[0,9,"pl-k"],[10,16,"pl-en"]],[[1,7,"pl-k"],[8,29,"pl-en"],[30,38,"pl-v"]],[[4,13,"pl-k"],[14,22,"pl-k"],[26,34,"pl-k"]],[[4,8,"pl-k"],[9,13,"pl-en"],[14,19,"pl-k"],[20,36,"pl-en"],[45,50,"pl-k"],[78,84,"pl-k"]],[],[[4,25,"pl-en"]],[],[],[],[],[],[[2,21,"pl-c"],[2,4,"pl-c"]],[[2,22,"pl-c"],[2,4,"pl-c"]],[],[[1,7,"pl-k"],[8,23,"pl-en"],[35,41,"pl-k"],[42,61,"pl-c1"]],[[1,7,"pl-k"],[8,24,"pl-en"],[36,42,"pl-k"],[43,62,"pl-c1"]],[[1,7,"pl-k"],[8,26,"pl-en"],[38,44,"pl-k"],[45,64,"pl-c1"]],[[1,7,"pl-k"],[8,23,"pl-en"],[35,41,"pl-k"],[42,61,"pl-c1"]],[[1,7,"pl-k"],[8,24,"pl-en"],[36,42,"pl-k"],[43,62,"pl-c1"]],[[1,7,"pl-k"],[8,26,"pl-en"],[38,44,"pl-k"],[45,64,"pl-c1"]],[[1,7,"pl-k"],[8,23,"pl-en"],[35,41,"pl-k"],[42,61,"pl-c1"]],[[1,7,"pl-k"],[8,24,"pl-en"],[36,42,"pl-k"],[43,62,"pl-c1"]],[[1,7,"pl-k"],[8,26,"pl-en"],[38,44,"pl-k"],[45,64,"pl-c1"]],[[1,7,"pl-k"],[8,23,"pl-en"],[35,41,"pl-k"],[42,61,"pl-c1"]],[[1,7,"pl-k"],[8,24,"pl-en"],[36,42,"pl-k"],[43,62,"pl-c1"]],[[1,7,"pl-k"],[8,26,"pl-en"],[38,44,"pl-k"],[45,64,"pl-c1"]],[[1,7,"pl-k"],[8,23,"pl-en"],[35,41,"pl-k"],[42,61,"pl-c1"]],[[1,7,"pl-k"],[8,24,"pl-en"],[36,42,"pl-k"],[43,62,"pl-c1"]],[[1,7,"pl-k"],[8,26,"pl-en"],[38,44,"pl-k"],[45,64,"pl-c1"]],[[1,7,"pl-k"],[8,23,"pl-en"],[35,41,"pl-k"],[42,61,"pl-c1"]],[[1,7,"pl-k"],[8,24,"pl-en"],[36,42,"pl-k"],[43,62,"pl-c1"]],[[1,7,"pl-k"],[8,26,"pl-en"],[38,44,"pl-k"],[45,64,"pl-c1"]],[[1,7,"pl-k"],[8,26,"pl-en"],[38,44,"pl-k"]],[[1,7,"pl-k"],[8,27,"pl-en"],[39,45,"pl-k"]],[[1,7,"pl-k"],[8,29,"pl-en"],[41,47,"pl-k"]],[[1,7,"pl-k"],[8,32,"pl-en"],[44,50,"pl-k"]],[[1,7,"pl-k"],[8,33,"pl-en"],[45,51,"pl-k"]],[[1,7,"pl-k"],[8,35,"pl-en"],[47,53,"pl-k"]],[],[[1,7,"pl-k"]],[],[[1,7,"pl-k"],[8,32,"pl-en"],[55,68,"pl-c1"],[69,74,"pl-c1"],[76,142,"pl-s"],[76,77,"pl-pds"],[141,142,"pl-pds"],[145,151,"pl-k"],[152,157,"pl-c1"]],[[1,7,"pl-k"],[8,33,"pl-en"]],[[1,7,"pl-k"],[8,35,"pl-en"]],[[1,7,"pl-k"],[8,35,"pl-en"]],[[1,7,"pl-k"],[8,36,"pl-en"]],[[1,7,"pl-k"],[8,38,"pl-en"]],[],[[1,7,"pl-k"],[8,40,"pl-en"]],[[1,7,"pl-k"],[8,41,"pl-en"]],[[1,7,"pl-k"],[8,43,"pl-en"]],[[1,7,"pl-k"],[8,43,"pl-en"]],[[1,7,"pl-k"],[8,44,"pl-en"]],[[1,7,"pl-k"],[8,46,"pl-en"]],[],[[1,7,"pl-k"],[8,27,"pl-en"],[39,42,"pl-k"],[58,64,"pl-k"],[65,70,"pl-c1"],[74,79,"pl-k"],[88,94,"pl-k"],[95,99,"pl-c1"]],[[1,7,"pl-k"],[8,28,"pl-en"],[40,43,"pl-k"],[59,65,"pl-k"],[66,71,"pl-c1"],[75,80,"pl-k"],[89,95,"pl-k"],[96,100,"pl-c1"]],[[1,7,"pl-k"],[8,30,"pl-en"],[42,45,"pl-k"],[61,67,"pl-k"],[68,73,"pl-c1"],[77,82,"pl-k"],[91,97,"pl-k"],[98,102,"pl-c1"]],[[1,7,"pl-k"],[8,30,"pl-en"],[48,51,"pl-k"],[62,67,"pl-k"],[84,90,"pl-k"],[91,95,"pl-c1"],[99,104,"pl-k"],[115,121,"pl-k"],[122,127,"pl-c1"]],[[1,7,"pl-k"],[8,31,"pl-en"],[49,52,"pl-k"],[63,68,"pl-k"],[85,91,"pl-k"],[92,96,"pl-c1"],[100,105,"pl-k"],[116,122,"pl-k"],[123,128,"pl-c1"]],[[1,7,"pl-k"],[8,33,"pl-en"],[51,54,"pl-k"],[65,70,"pl-k"],[87,93,"pl-k"],[94,98,"pl-c1"],[102,107,"pl-k"],[118,124,"pl-k"],[125,130,"pl-c1"]],[[1,7,"pl-k"],[8,28,"pl-en"],[40,43,"pl-k"],[59,65,"pl-k"],[66,70,"pl-c1"],[74,79,"pl-k"],[88,94,"pl-k"],[95,100,"pl-c1"]],[[1,7,"pl-k"],[8,29,"pl-en"],[41,44,"pl-k"],[60,66,"pl-k"],[67,71,"pl-c1"],[75,80,"pl-k"],[89,95,"pl-k"],[96,101,"pl-c1"]],[[1,7,"pl-k"],[8,31,"pl-en"],[43,46,"pl-k"],[62,68,"pl-k"],[69,73,"pl-c1"],[77,82,"pl-k"],[91,97,"pl-k"],[98,103,"pl-c1"]],[],[[1,7,"pl-k"],[8,35,"pl-en"],[53,56,"pl-k"],[72,78,"pl-k"],[79,84,"pl-c1"],[88,93,"pl-k"],[102,108,"pl-k"],[109,113,"pl-c1"]],[[1,7,"pl-k"],[8,36,"pl-en"],[54,57,"pl-k"],[73,79,"pl-k"],[80,85,"pl-c1"],[89,94,"pl-k"],[103,109,"pl-k"],[110,114,"pl-c1"]],[[1,7,"pl-k"],[8,38,"pl-en"],[56,59,"pl-k"],[75,81,"pl-k"],[82,87,"pl-c1"],[91,96,"pl-k"],[105,111,"pl-k"],[112,116,"pl-c1"]],[[1,7,"pl-k"],[8,38,"pl-en"],[60,63,"pl-k"],[74,79,"pl-k"],[96,102,"pl-k"],[103,107,"pl-c1"],[111,116,"pl-k"],[127,133,"pl-k"],[134,139,"pl-c1"]],[[1,7,"pl-k"],[8,39,"pl-en"],[61,64,"pl-k"],[75,80,"pl-k"],[97,103,"pl-k"],[104,108,"pl-c1"],[112,117,"pl-k"],[128,134,"pl-k"],[135,140,"pl-c1"]],[[1,7,"pl-k"],[8,41,"pl-en"],[63,66,"pl-k"],[77,82,"pl-k"],[99,105,"pl-k"],[106,110,"pl-c1"],[114,119,"pl-k"],[130,136,"pl-k"],[137,142,"pl-c1"]],[[1,7,"pl-k"],[8,36,"pl-en"],[54,57,"pl-k"],[73,79,"pl-k"],[80,84,"pl-c1"],[88,93,"pl-k"],[102,108,"pl-k"],[109,114,"pl-c1"]],[[1,7,"pl-k"],[8,37,"pl-en"],[55,58,"pl-k"],[74,80,"pl-k"],[81,85,"pl-c1"],[89,94,"pl-k"],[103,109,"pl-k"],[110,115,"pl-c1"]],[[1,7,"pl-k"],[8,39,"pl-en"],[57,60,"pl-k"],[76,82,"pl-k"],[83,87,"pl-c1"],[91,96,"pl-k"],[105,111,"pl-k"],[112,117,"pl-c1"]],[],[[1,6,"pl-k"],[7,38,"pl-c"],[7,9,"pl-c"]],[],[[1,5,"pl-k"],[6,59,"pl-c"],[6,8,"pl-c"]],[],[[1,7,"pl-k"],[8,20,"pl-en"]],[[1,7,"pl-k"],[8,21,"pl-en"]],[[1,7,"pl-k"],[8,23,"pl-en"]],[[1,7,"pl-k"],[8,26,"pl-en"]],[[1,7,"pl-k"],[8,27,"pl-en"]],[[1,7,"pl-k"],[8,29,"pl-en"]],[],[[1,7,"pl-k"],[8,28,"pl-en"]],[[1,7,"pl-k"],[8,29,"pl-en"]],[[1,7,"pl-k"],[8,31,"pl-en"]],[[1,7,"pl-k"],[8,34,"pl-en"]],[[1,7,"pl-k"],[8,35,"pl-en"]],[[1,7,"pl-k"],[8,37,"pl-en"]],[],[[1,7,"pl-k"],[8,23,"pl-en"]],[[1,7,"pl-k"],[8,24,"pl-en"]],[[1,7,"pl-k"],[8,26,"pl-en"]],[[1,7,"pl-k"],[8,23,"pl-en"]],[[1,7,"pl-k"],[8,24,"pl-en"]],[[1,7,"pl-k"],[8,26,"pl-en"]],[[1,7,"pl-k"],[8,23,"pl-en"]],[[1,7,"pl-k"],[8,24,"pl-en"]],[[1,7,"pl-k"],[8,26,"pl-en"]],[[1,7,"pl-k"],[8,23,"pl-en"]],[[1,7,"pl-k"],[8,24,"pl-en"]],[[1,7,"pl-k"],[8,26,"pl-en"]],[[1,7,"pl-k"],[8,23,"pl-en"]],[[1,7,"pl-k"],[8,24,"pl-en"]],[[1,7,"pl-k"],[8,26,"pl-en"]],[[1,7,"pl-k"],[8,23,"pl-en"]],[[1,7,"pl-k"],[8,24,"pl-en"]],[[1,7,"pl-k"],[8,26,"pl-en"]],[],[[1,7,"pl-k"],[8,26,"pl-en"]],[[1,7,"pl-k"],[8,27,"pl-en"]],[[1,7,"pl-k"],[8,29,"pl-en"]],[[1,7,"pl-k"],[8,32,"pl-en"]],[[1,7,"pl-k"],[8,33,"pl-en"]],[[1,7,"pl-k"],[8,35,"pl-en"]],[],[[1,7,"pl-k"]],[],[[1,7,"pl-k"],[8,27,"pl-en"]],[[1,7,"pl-k"],[8,28,"pl-en"]],[[1,7,"pl-k"],[8,30,"pl-en"]],[[1,7,"pl-k"],[8,30,"pl-en"]],[[1,7,"pl-k"],[8,31,"pl-en"]],[[1,7,"pl-k"],[8,33,"pl-en"]],[[1,7,"pl-k"],[8,32,"pl-en"]],[[1,7,"pl-k"],[8,33,"pl-en"]],[[1,7,"pl-k"],[8,35,"pl-en"]],[[1,7,"pl-k"],[8,35,"pl-en"]],[[1,7,"pl-k"],[8,36,"pl-en"]],[[1,7,"pl-k"],[8,38,"pl-en"]],[[1,7,"pl-k"],[8,28,"pl-en"]],[[1,7,"pl-k"],[8,29,"pl-en"]],[[1,7,"pl-k"],[8,31,"pl-en"]],[],[[1,7,"pl-k"],[8,35,"pl-en"]],[[1,7,"pl-k"],[8,36,"pl-en"]],[[1,7,"pl-k"],[8,38,"pl-en"]],[[1,7,"pl-k"],[8,38,"pl-en"]],[[1,7,"pl-k"],[8,39,"pl-en"]],[[1,7,"pl-k"],[8,41,"pl-en"]],[[1,7,"pl-k"],[8,40,"pl-en"]],[[1,7,"pl-k"],[8,41,"pl-en"]],[[1,7,"pl-k"],[8,43,"pl-en"]],[[1,7,"pl-k"],[8,43,"pl-en"]],[[1,7,"pl-k"],[8,44,"pl-en"]],[[1,7,"pl-k"],[8,46,"pl-en"]],[[1,7,"pl-k"],[8,36,"pl-en"]],[[1,7,"pl-k"],[8,37,"pl-en"]],[[1,7,"pl-k"],[8,39,"pl-en"]],[],[[1,6,"pl-k"],[7,38,"pl-c"],[7,9,"pl-c"]],[],[[7,60,"pl-c"],[7,9,"pl-c"]],[],[[7,32,"pl-c"],[7,9,"pl-c"]],[],[[1,6,"pl-k"]],[],[[1,6,"pl-k"]],[[1,7,"pl-k"],[8,36,"pl-en"]],[[1,5,"pl-k"],[6,58,"pl-c"],[6,8,"pl-c"]],[[1,7,"pl-k"],[8,36,"pl-en"],[42,55,"pl-c1"],[56,61,"pl-c1"],[63,90,"pl-s"],[63,64,"pl-pds"],[89,90,"pl-pds"]],[[4,108,"pl-s"],[4,5,"pl-pds"],[107,108,"pl-pds"],[111,117,"pl-k"],[118,123,"pl-c1"]],[],[[1,6,"pl-k"]],[[1,6,"pl-k"]],[[1,6,"pl-k"]],[[1,6,"pl-k"]],[[1,6,"pl-k"]],[[1,6,"pl-k"]],[[1,6,"pl-k"]],[[1,6,"pl-k"]],[[1,6,"pl-k"]],[[1,6,"pl-k"]],[[1,6,"pl-k"]],[[1,6,"pl-k"]],[],[[1,7,"pl-k"],[8,23,"pl-en"]],[[1,7,"pl-k"],[8,29,"pl-en"]],[[1,7,"pl-k"],[8,31,"pl-en"]],[[1,7,"pl-k"],[8,37,"pl-en"]],[[1,7,"pl-k"],[8,26,"pl-en"]],[[1,7,"pl-k"],[8,26,"pl-en"]],[[1,7,"pl-k"],[8,26,"pl-en"]],[[1,7,"pl-k"],[8,26,"pl-en"]],[[1,7,"pl-k"],[8,26,"pl-en"]],[[1,7,"pl-k"],[8,26,"pl-en"]],[[1,7,"pl-k"],[8,29,"pl-en"]],[[1,7,"pl-k"],[8,35,"pl-en"]],[],[[1,6,"pl-k"],[7,59,"pl-c"],[7,9,"pl-c"]],[],[[1,7,"pl-k"],[8,27,"pl-en"]],[[1,7,"pl-k"],[8,28,"pl-en"]],[[1,7,"pl-k"],[8,30,"pl-en"]],[[1,7,"pl-k"],[8,30,"pl-en"]],[[1,7,"pl-k"],[8,31,"pl-en"]],[[1,7,"pl-k"],[8,33,"pl-en"]],[[1,7,"pl-k"],[8,32,"pl-en"]],[[1,7,"pl-k"],[8,33,"pl-en"]],[[1,7,"pl-k"],[8,35,"pl-en"]],[[1,7,"pl-k"],[8,35,"pl-en"]],[[1,7,"pl-k"],[8,36,"pl-en"]],[[1,7,"pl-k"],[8,38,"pl-en"]],[[1,7,"pl-k"],[8,28,"pl-en"]],[[1,7,"pl-k"],[8,29,"pl-en"]],[[1,7,"pl-k"],[8,31,"pl-en"]],[],[[1,7,"pl-k"],[8,35,"pl-en"]],[[1,7,"pl-k"],[8,36,"pl-en"]],[[1,7,"pl-k"],[8,38,"pl-en"]],[[1,7,"pl-k"],[8,38,"pl-en"]],[[1,7,"pl-k"],[8,39,"pl-en"]],[[1,7,"pl-k"],[8,41,"pl-en"]],[[1,7,"pl-k"],[8,40,"pl-en"]],[[1,7,"pl-k"],[8,41,"pl-en"]],[[1,7,"pl-k"],[8,43,"pl-en"]],[[1,7,"pl-k"],[8,43,"pl-en"]],[[1,7,"pl-k"],[8,44,"pl-en"]],[[1,7,"pl-k"],[8,46,"pl-en"]],[[1,7,"pl-k"],[8,36,"pl-en"]],[[1,7,"pl-k"],[8,37,"pl-en"]],[[1,7,"pl-k"],[8,39,"pl-en"]],[],[[1,6,"pl-k"],[7,38,"pl-c"],[7,9,"pl-c"]],[],[[0,19,"pl-c"],[0,2,"pl-c"]],[[0,68,"pl-c"],[0,2,"pl-c"]],[[1,7,"pl-k"],[8,28,"pl-en"]],[[1,7,"pl-k"],[8,29,"pl-en"]],[[1,7,"pl-k"],[8,31,"pl-en"]],[[1,7,"pl-k"],[8,28,"pl-en"]],[[1,7,"pl-k"],[8,29,"pl-en"]],[[1,7,"pl-k"],[8,31,"pl-en"]],[[1,7,"pl-k"],[8,28,"pl-en"]],[[1,7,"pl-k"],[8,29,"pl-en"]],[[1,7,"pl-k"],[8,31,"pl-en"]],[[1,7,"pl-k"],[8,28,"pl-en"]],[[1,7,"pl-k"],[8,29,"pl-en"]],[[1,7,"pl-k"],[8,31,"pl-en"]],[[1,7,"pl-k"],[8,28,"pl-en"]],[[1,7,"pl-k"],[8,29,"pl-en"]],[[1,7,"pl-k"],[8,31,"pl-en"]],[[1,7,"pl-k"],[8,28,"pl-en"]],[[1,7,"pl-k"],[8,29,"pl-en"]],[[1,7,"pl-k"],[8,31,"pl-en"]],[],[[1,7,"pl-k"],[8,31,"pl-en"]],[[1,7,"pl-k"],[8,32,"pl-en"]],[[1,7,"pl-k"],[8,34,"pl-en"]],[[1,7,"pl-k"],[8,37,"pl-en"]],[[1,7,"pl-k"],[8,38,"pl-en"]],[[1,7,"pl-k"],[8,40,"pl-en"]],[],[[1,7,"pl-k"],[8,46,"pl-en"]],[[0,18,"pl-c"],[0,2,"pl-c"]],[],[[0,19,"pl-c"],[0,2,"pl-c"]],[[0,19,"pl-c"],[0,2,"pl-c"]],[[1,7,"pl-k"],[8,24,"pl-en"],[25,29,"pl-v"],[49,63,"pl-s"],[49,50,"pl-pds"],[62,63,"pl-pds"]],[[1,7,"pl-k"],[8,30,"pl-en"],[31,35,"pl-v"],[61,75,"pl-s"],[61,62,"pl-pds"],[74,75,"pl-pds"]],[[1,7,"pl-k"],[8,33,"pl-en"],[76,90,"pl-s"],[76,77,"pl-pds"],[89,90,"pl-pds"]],[[1,7,"pl-k"],[8,40,"pl-en"],[41,52,"pl-v"],[88,102,"pl-s"],[88,89,"pl-pds"],[101,102,"pl-pds"]],[],[[1,7,"pl-k"],[8,21,"pl-en"],[22,26,"pl-v"],[48,60,"pl-s"],[48,49,"pl-pds"],[59,60,"pl-pds"]],[[1,7,"pl-k"],[8,20,"pl-en"],[21,25,"pl-v"],[48,60,"pl-s"],[48,49,"pl-pds"],[59,60,"pl-pds"]],[[1,7,"pl-k"],[8,24,"pl-en"],[25,29,"pl-v"],[48,60,"pl-s"],[48,49,"pl-pds"],[59,60,"pl-pds"]],[[1,7,"pl-k"],[8,20,"pl-en"],[21,25,"pl-v"],[48,60,"pl-s"],[48,49,"pl-pds"],[59,60,"pl-pds"]],[[1,7,"pl-k"],[8,24,"pl-en"],[25,29,"pl-v"],[48,60,"pl-s"],[48,49,"pl-pds"],[59,60,"pl-pds"]],[[0,18,"pl-c"],[0,2,"pl-c"]],[],[[0,34,"pl-c"],[0,2,"pl-c"]],[[1,7,"pl-k"]],[],[[1,7,"pl-k"],[8,17,"pl-en"],[18,22,"pl-v"]],[[1,7,"pl-k"],[8,23,"pl-en"],[24,28,"pl-v"]],[[1,7,"pl-k"],[8,25,"pl-en"],[26,33,"pl-v"]],[[1,7,"pl-k"],[8,25,"pl-en"]],[[1,7,"pl-k"],[8,22,"pl-en"]],[[1,7,"pl-k"],[8,26,"pl-en"]],[[1,7,"pl-k"],[8,33,"pl-en"],[34,45,"pl-v"]],[[1,7,"pl-k"],[8,33,"pl-en"]],[[1,7,"pl-k"],[8,32,"pl-en"]],[[1,7,"pl-k"],[8,15,"pl-en"],[16,20,"pl-v"]],[[1,7,"pl-k"],[8,18,"pl-en"],[19,29,"pl-v"]],[[1,7,"pl-k"],[8,24,"pl-en"],[25,29,"pl-v"]],[[1,7,"pl-k"],[8,22,"pl-en"]],[[1,7,"pl-k"],[8,37,"pl-en"],[38,47,"pl-v"]],[[1,7,"pl-k"],[8,25,"pl-en"],[26,50,"pl-v"]],[[1,7,"pl-k"],[8,25,"pl-en"],[26,50,"pl-v"]],[[1,7,"pl-k"],[8,12,"pl-en"]],[[1,7,"pl-k"],[8,15,"pl-en"],[16,17,"pl-v"]],[[1,7,"pl-k"],[8,22,"pl-en"]],[[1,7,"pl-k"],[8,25,"pl-en"]],[[1,7,"pl-k"],[8,19,"pl-en"]],[[1,7,"pl-k"],[8,15,"pl-en"]],[[1,7,"pl-k"],[8,18,"pl-en"]],[[1,7,"pl-k"],[8,12,"pl-en"]],[[1,7,"pl-k"],[8,17,"pl-en"]],[],[[1,7,"pl-k"],[8,12,"pl-en"]],[[1,7,"pl-k"],[8,18,"pl-en"]],[[1,7,"pl-k"],[8,19,"pl-en"]],[[1,7,"pl-k"],[8,22,"pl-en"]],[[1,7,"pl-k"],[8,24,"pl-en"]],[[1,7,"pl-k"],[8,27,"pl-en"]],[[1,7,"pl-k"],[8,20,"pl-en"]],[[1,7,"pl-k"],[8,13,"pl-en"]],[[1,7,"pl-k"],[8,19,"pl-en"]],[[1,7,"pl-k"],[8,20,"pl-en"]],[[1,7,"pl-k"],[8,23,"pl-en"]],[[1,7,"pl-k"],[8,25,"pl-en"]],[[1,7,"pl-k"],[8,28,"pl-en"]],[[1,7,"pl-k"],[8,21,"pl-en"]],[[1,7,"pl-k"],[8,15,"pl-en"]],[[1,7,"pl-k"],[8,21,"pl-en"]],[[1,7,"pl-k"],[8,22,"pl-en"]],[[1,7,"pl-k"],[8,25,"pl-en"]],[[1,7,"pl-k"],[8,27,"pl-en"]],[[1,7,"pl-k"],[8,30,"pl-en"]],[[1,7,"pl-k"],[8,23,"pl-en"]],[],[[1,7,"pl-k"],[8,20,"pl-en"]],[[1,7,"pl-k"],[8,26,"pl-en"]],[[1,7,"pl-k"],[8,27,"pl-en"]],[[1,7,"pl-k"],[8,30,"pl-en"]],[[1,7,"pl-k"],[8,32,"pl-en"]],[[1,7,"pl-k"],[8,35,"pl-en"]],[[1,7,"pl-k"],[8,28,"pl-en"]],[[1,7,"pl-k"],[8,21,"pl-en"]],[[1,7,"pl-k"],[8,27,"pl-en"]],[[1,7,"pl-k"],[8,28,"pl-en"]],[[1,7,"pl-k"],[8,31,"pl-en"]],[[1,7,"pl-k"],[8,33,"pl-en"]],[[1,7,"pl-k"],[8,36,"pl-en"]],[[1,7,"pl-k"],[8,29,"pl-en"]],[[1,7,"pl-k"],[8,23,"pl-en"]],[[1,7,"pl-k"],[8,29,"pl-en"]],[[1,7,"pl-k"],[8,30,"pl-en"]],[[1,7,"pl-k"],[8,33,"pl-en"]],[[1,7,"pl-k"],[8,35,"pl-en"]],[[1,7,"pl-k"],[8,38,"pl-en"]],[[1,7,"pl-k"],[8,31,"pl-en"]],[],[[1,7,"pl-k"],[8,16,"pl-en"],[17,21,"pl-v"]],[[1,7,"pl-k"],[8,22,"pl-en"],[23,27,"pl-v"]],[[1,7,"pl-k"],[8,25,"pl-en"]],[[1,7,"pl-k"],[8,32,"pl-en"],[33,44,"pl-v"]],[[1,7,"pl-k"],[8,13,"pl-en"],[14,18,"pl-v"]],[[1,7,"pl-k"],[8,12,"pl-en"],[13,17,"pl-v"]],[[1,7,"pl-k"],[8,16,"pl-en"],[17,21,"pl-v"]],[[1,7,"pl-k"],[8,12,"pl-en"],[13,17,"pl-v"]],[[1,7,"pl-k"],[8,16,"pl-en"],[17,21,"pl-v"]],[],[[1,7,"pl-k"],[8,15,"pl-en"]],[[1,7,"pl-k"],[8,16,"pl-en"]],[[1,7,"pl-k"],[8,18,"pl-en"]],[[1,7,"pl-k"],[8,15,"pl-en"]],[[1,7,"pl-k"],[8,16,"pl-en"]],[[1,7,"pl-k"],[8,18,"pl-en"]],[[1,7,"pl-k"],[8,15,"pl-en"]],[[1,7,"pl-k"],[8,16,"pl-en"]],[[1,7,"pl-k"],[8,18,"pl-en"]],[[1,7,"pl-k"],[8,15,"pl-en"]],[[1,7,"pl-k"],[8,16,"pl-en"]],[[1,7,"pl-k"],[8,18,"pl-en"]],[[1,7,"pl-k"],[8,15,"pl-en"]],[[1,7,"pl-k"],[8,16,"pl-en"]],[[1,7,"pl-k"],[8,18,"pl-en"]],[[1,7,"pl-k"],[8,15,"pl-en"]],[[1,7,"pl-k"],[8,16,"pl-en"]],[[1,7,"pl-k"],[8,18,"pl-en"]],[[1,7,"pl-k"],[8,18,"pl-en"]],[[1,7,"pl-k"],[8,19,"pl-en"]],[[1,7,"pl-k"],[8,21,"pl-en"]],[[1,7,"pl-k"],[8,24,"pl-en"]],[[1,7,"pl-k"],[8,25,"pl-en"]],[[1,7,"pl-k"],[8,27,"pl-en"]],[],[[0,35,"pl-c"],[0,2,"pl-c"]],[[1,7,"pl-k"],[8,20,"pl-en"]],[[1,7,"pl-k"],[8,21,"pl-en"]],[[1,7,"pl-k"],[8,23,"pl-en"]],[[1,7,"pl-k"],[8,20,"pl-en"]],[[1,7,"pl-k"],[8,21,"pl-en"]],[[1,7,"pl-k"],[8,23,"pl-en"]],[[1,7,"pl-k"],[8,20,"pl-en"]],[[1,7,"pl-k"],[8,21,"pl-en"]],[[1,7,"pl-k"],[8,23,"pl-en"]],[[1,7,"pl-k"],[8,20,"pl-en"]],[[1,7,"pl-k"],[8,21,"pl-en"]],[[1,7,"pl-k"],[8,23,"pl-en"]],[[1,7,"pl-k"],[8,20,"pl-en"]],[[1,7,"pl-k"],[8,21,"pl-en"]],[[1,7,"pl-k"],[8,23,"pl-en"]],[[1,7,"pl-k"],[8,20,"pl-en"]],[[1,7,"pl-k"],[8,21,"pl-en"]],[[1,7,"pl-k"],[8,23,"pl-en"]],[],[[1,7,"pl-k"],[8,23,"pl-en"]],[[1,7,"pl-k"],[8,24,"pl-en"]],[[1,7,"pl-k"],[8,26,"pl-en"]],[[1,7,"pl-k"],[8,29,"pl-en"]],[[1,7,"pl-k"],[8,30,"pl-en"]],[[1,7,"pl-k"],[8,32,"pl-en"]],[],[[1,7,"pl-k"],[8,38,"pl-en"]],[],[[1,6,"pl-k"],[7,45,"pl-c"],[7,9,"pl-c"]],[],[[1,7,"pl-k"]],[],[[0,95,"pl-c"],[0,2,"pl-c"]],[[0,22,"pl-en"]],[],[[1,6,"pl-k"],[7,32,"pl-c"],[7,9,"pl-c"]],[],[],[],[],[],[],[],[[7,34,"pl-c"],[7,9,"pl-c"]],[],[[1,7,"pl-k"]],[[1,7,"pl-k"],[8,29,"pl-en"]],[[1,6,"pl-k"],[7,31,"pl-c"],[7,9,"pl-c"]],[],[[1,3,"pl-k"]],[],[[1,7,"pl-k"]],[[1,8,"pl-k"],[9,24,"pl-s"],[9,10,"pl-pds"],[23,24,"pl-pds"]],[[1,6,"pl-k"],[7,31,"pl-c"],[7,9,"pl-c"]],[],[[0,40,"pl-en"],[41,58,"pl-s"],[41,42,"pl-pds"],[57,58,"pl-pds"]],[],[[1,7,"pl-k"]],[[1,7,"pl-k"],[8,38,"pl-en"]],[],[],[],[],[],[],[[0,30,"pl-en"],[31,54,"pl-s"],[31,32,"pl-pds"],[53,54,"pl-pds"]],[[31,56,"pl-s"],[31,32,"pl-pds"],[55,56,"pl-pds"]],[[31,50,"pl-s"],[31,32,"pl-pds"],[49,50,"pl-pds"]],[[31,51,"pl-s"],[31,32,"pl-pds"],[50,51,"pl-pds"]],[[31,64,"pl-s"],[31,32,"pl-pds"],[63,64,"pl-pds"]],[[31,41,"pl-s"],[31,32,"pl-pds"],[40,41,"pl-pds"]],[[31,46,"pl-s"],[31,32,"pl-pds"],[45,46,"pl-pds"]],[[31,57,"pl-s"],[31,32,"pl-pds"],[56,57,"pl-pds"]],[[31,51,"pl-s"],[31,32,"pl-pds"],[50,51,"pl-pds"]],[[31,59,"pl-s"],[31,32,"pl-pds"],[58,59,"pl-pds"]],[[31,49,"pl-s"],[31,32,"pl-pds"],[48,49,"pl-pds"]],[[31,61,"pl-s"],[31,32,"pl-pds"],[60,61,"pl-pds"]],[[31,57,"pl-s"],[31,32,"pl-pds"],[56,57,"pl-pds"]],[[31,66,"pl-s"],[31,32,"pl-pds"],[65,66,"pl-pds"]],[],[],[[29,43,"pl-s"],[29,30,"pl-pds"],[42,43,"pl-pds"]],[[29,48,"pl-s"],[29,30,"pl-pds"],[47,48,"pl-pds"]],[[29,59,"pl-s"],[29,30,"pl-pds"],[58,59,"pl-pds"]],[[29,47,"pl-s"],[29,30,"pl-pds"],[46,47,"pl-pds"]],[[29,39,"pl-s"],[29,30,"pl-pds"],[38,39,"pl-pds"]],[[29,44,"pl-s"],[29,30,"pl-pds"],[43,44,"pl-pds"]],[[29,47,"pl-s"],[29,30,"pl-pds"],[46,47,"pl-pds"]],[[29,58,"pl-s"],[29,30,"pl-pds"],[57,58,"pl-pds"]],[[29,47,"pl-s"],[29,30,"pl-pds"],[46,47,"pl-pds"]],[[29,48,"pl-s"],[29,30,"pl-pds"],[47,48,"pl-pds"]],[[29,53,"pl-s"],[29,30,"pl-pds"],[52,53,"pl-pds"]],[[29,50,"pl-s"],[29,30,"pl-pds"],[49,50,"pl-pds"]],[],[],[[30,34,"pl-c1"],[36,96,"pl-c"],[36,38,"pl-c"]],[[30,34,"pl-c1"],[36,99,"pl-c"],[36,38,"pl-c"]],[[30,34,"pl-c1"],[36,96,"pl-c"],[36,38,"pl-c"]],[[30,34,"pl-c1"],[36,97,"pl-c"],[36,38,"pl-c"]],[[30,34,"pl-c1"],[36,100,"pl-c"],[36,38,"pl-c"]],[[30,34,"pl-c1"],[36,98,"pl-c"],[36,38,"pl-c"]],[[30,34,"pl-c1"],[36,100,"pl-c"],[36,38,"pl-c"]],[[30,34,"pl-c1"],[36,99,"pl-c"],[36,38,"pl-c"]],[],[],[],[[0,60,"pl-c"],[0,2,"pl-c"]],[[1,8,"pl-k"],[9,16,"pl-s"],[9,10,"pl-pds"],[15,16,"pl-pds"]],[[1,8,"pl-k"],[9,16,"pl-s"],[9,10,"pl-pds"],[15,16,"pl-pds"]],[[1,8,"pl-k"],[9,18,"pl-s"],[9,10,"pl-pds"],[17,18,"pl-pds"]],[[0,108,"pl-c"],[0,2,"pl-c"]],[[1,6,"pl-k"]],[[1,8,"pl-k"],[9,17,"pl-s"],[9,10,"pl-pds"],[16,17,"pl-pds"]],[[1,6,"pl-k"],[7,22,"pl-c"],[7,9,"pl-c"]],[[1,8,"pl-k"],[9,14,"pl-s"],[9,10,"pl-pds"],[13,14,"pl-pds"]],[[1,8,"pl-k"],[9,17,"pl-s"],[9,10,"pl-pds"],[16,17,"pl-pds"]],[[1,8,"pl-k"],[9,18,"pl-s"],[9,10,"pl-pds"],[17,18,"pl-pds"]],[[1,8,"pl-k"],[9,18,"pl-s"],[9,10,"pl-pds"],[17,18,"pl-pds"]],[[1,8,"pl-k"],[9,17,"pl-s"],[9,10,"pl-pds"],[16,17,"pl-pds"]],[[1,8,"pl-k"],[9,18,"pl-s"],[9,10,"pl-pds"],[17,18,"pl-pds"]],[[1,8,"pl-k"],[9,18,"pl-s"],[9,10,"pl-pds"],[17,18,"pl-pds"]],[[1,8,"pl-k"],[9,18,"pl-s"],[9,10,"pl-pds"],[17,18,"pl-pds"]],[[1,7,"pl-k"]],[[1,8,"pl-k"],[9,19,"pl-s"],[9,10,"pl-pds"],[18,19,"pl-pds"]],[[1,6,"pl-k"],[7,44,"pl-c"],[7,9,"pl-c"]],[[1,8,"pl-k"],[9,20,"pl-s"],[9,10,"pl-pds"],[19,20,"pl-pds"]],[[1,8,"pl-k"],[9,18,"pl-s"],[9,10,"pl-pds"],[17,18,"pl-pds"]],[[1,8,"pl-k"],[9,17,"pl-s"],[9,10,"pl-pds"],[16,17,"pl-pds"]],[[1,7,"pl-k"]],[[1,8,"pl-k"],[9,17,"pl-s"],[9,10,"pl-pds"],[16,17,"pl-pds"]],[[1,8,"pl-k"],[9,16,"pl-s"],[9,10,"pl-pds"],[15,16,"pl-pds"]],[[1,7,"pl-k"],[8,29,"pl-en"],[30,34,"pl-v"]],[[1,7,"pl-k"],[8,36,"pl-en"],[37,41,"pl-v"],[43,49,"pl-k"],[50,71,"pl-en"]],[[1,7,"pl-k"],[8,26,"pl-en"],[27,31,"pl-v"],[61,78,"pl-en"]],[[1,5,"pl-k"],[6,41,"pl-c"],[6,8,"pl-c"]],[[1,7,"pl-k"],[8,29,"pl-en"],[30,34,"pl-v"]],[[1,7,"pl-k"],[8,36,"pl-en"],[37,41,"pl-v"]],[[1,7,"pl-k"],[8,26,"pl-en"],[27,31,"pl-v"]],[[1,6,"pl-k"],[7,42,"pl-c"],[7,9,"pl-c"]],[[1,8,"pl-k"],[9,14,"pl-s"],[9,10,"pl-pds"],[13,14,"pl-pds"]],[[1,8,"pl-k"],[9,14,"pl-s"],[9,10,"pl-pds"],[13,14,"pl-pds"]],[[1,8,"pl-k"],[9,24,"pl-s"],[9,10,"pl-pds"],[23,24,"pl-pds"]],[[1,8,"pl-k"],[9,20,"pl-s"],[9,10,"pl-pds"],[19,20,"pl-pds"]],[[1,8,"pl-k"],[9,20,"pl-s"],[9,10,"pl-pds"],[19,20,"pl-pds"]],[[1,8,"pl-k"],[9,18,"pl-s"],[9,10,"pl-pds"],[17,18,"pl-pds"]],[[1,8,"pl-k"],[9,17,"pl-s"],[9,10,"pl-pds"],[16,17,"pl-pds"]],[[1,8,"pl-k"],[9,17,"pl-s"],[9,10,"pl-pds"],[16,17,"pl-pds"]],[[1,8,"pl-k"],[9,18,"pl-s"],[9,10,"pl-pds"],[17,18,"pl-pds"]],[[1,8,"pl-k"],[9,17,"pl-s"],[9,10,"pl-pds"],[16,17,"pl-pds"]],[],[[1,6,"pl-k"]],[[1,8,"pl-k"],[9,22,"pl-s"],[9,10,"pl-pds"],[21,22,"pl-pds"]],[[1,8,"pl-k"],[9,19,"pl-s"],[9,10,"pl-pds"],[18,19,"pl-pds"]],[[1,8,"pl-k"],[9,23,"pl-s"],[9,10,"pl-pds"],[22,23,"pl-pds"]],[[1,6,"pl-k"],[7,30,"pl-c"],[7,9,"pl-c"]],[],[[1,6,"pl-k"]],[],[[0,33,"pl-c"],[0,2,"pl-c"]],[[1,7,"pl-k"]],[[1,7,"pl-k"],[8,27,"pl-en"]],[[1,7,"pl-k"],[8,41,"pl-en"]],[[1,6,"pl-k"],[7,29,"pl-c"],[7,9,"pl-c"]],[[1,7,"pl-k"]],[[1,7,"pl-k"],[8,16,"pl-en"]],[[1,7,"pl-k"],[8,30,"pl-en"]],[[1,6,"pl-k"],[7,18,"pl-c"],[7,9,"pl-c"]],[],[[0,60,"pl-c"],[0,2,"pl-c"]],[[1,6,"pl-k"]],[[1,8,"pl-k"],[9,19,"pl-s"],[9,10,"pl-pds"],[18,19,"pl-pds"]],[[1,5,"pl-k"]],[[1,8,"pl-k"],[9,20,"pl-s"],[9,10,"pl-pds"],[19,20,"pl-pds"]],[[1,6,"pl-k"]],[[1,8,"pl-k"],[9,15,"pl-s"],[9,10,"pl-pds"],[14,15,"pl-pds"]],[],[[1,5,"pl-k"],[6,33,"pl-c"],[6,8,"pl-c"]],[],[[1,8,"pl-k"],[9,21,"pl-s"],[9,10,"pl-pds"],[20,21,"pl-pds"]],[[1,8,"pl-k"],[9,19,"pl-s"],[9,10,"pl-pds"],[18,19,"pl-pds"]],[],[[1,6,"pl-k"],[7,34,"pl-c"],[7,9,"pl-c"]],[],[[0,66,"pl-c"],[0,2,"pl-c"]],[[0,65,"pl-c"],[0,2,"pl-c"]],[[1,3,"pl-k"]],[[1,7,"pl-k"],[8,21,"pl-en"],[22,28,"pl-en"]],[[7,23,"pl-c"],[7,9,"pl-c"]],[],[],[],[[0,45,"pl-c"],[0,2,"pl-c"]],[[1,7,"pl-k"],[8,23,"pl-en"],[24,25,"pl-v"],[28,34,"pl-k"],[40,46,"pl-k"],[49,50,"pl-c1"]],[],[[1,6,"pl-k"]],[[1,7,"pl-k"],[8,34,"pl-en"],[35,63,"pl-v"]],[[1,5,"pl-k"],[6,31,"pl-c"],[6,8,"pl-c"]],[[1,7,"pl-k"],[8,34,"pl-en"],[35,63,"pl-v"]],[[1,6,"pl-k"],[7,32,"pl-c"],[7,9,"pl-c"]],[],[[1,7,"pl-k"]],[[1,7,"pl-k"],[8,37,"pl-en"],[38,43,"pl-s"],[38,39,"pl-pds"],[42,43,"pl-pds"]],[[1,6,"pl-k"]],[],[[1,7,"pl-k"]],[[1,3,"pl-k"]],[[1,7,"pl-k"],[8,28,"pl-en"]],[[1,5,"pl-k"],[6,21,"pl-c"],[6,8,"pl-c"]],[[1,7,"pl-k"],[8,28,"pl-en"],[29,41,"pl-k"]],[[1,6,"pl-k"],[7,22,"pl-c"],[7,9,"pl-c"]],[[1,6,"pl-k"],[7,30,"pl-c"],[7,9,"pl-c"]],[],[[1,7,"pl-k"]],[[1,7,"pl-k"],[8,47,"pl-en"],[48,50,"pl-c1"]],[[1,6,"pl-k"]],[],[[1,7,"pl-k"]],[[1,7,"pl-k"],[8,50,"pl-en"],[51,53,"pl-c1"]],[[1,6,"pl-k"]],[],[[1,6,"pl-k"]],[[1,7,"pl-k"],[8,38,"pl-en"]],[[1,5,"pl-k"]],[[1,7,"pl-k"],[8,38,"pl-en"],[39,41,"pl-s"],[39,40,"pl-pds"],[40,41,"pl-pds"]],[[1,6,"pl-k"]],[],[[1,3,"pl-k"]],[[1,7,"pl-k"],[8,44,"pl-en"]],[[1,6,"pl-k"]],[],[[1,7,"pl-k"]],[[1,7,"pl-k"],[8,21,"pl-en"]],[[1,6,"pl-k"]],[],[[0,9,"pl-k"],[10,17,"pl-en"]],[],[[0,4,"pl-k"],[26,31,"pl-c1"]],[],[[0,9,"pl-k"]],[[4,9,"pl-k"],[10,19,"pl-k"],[20,26,"pl-en"],[26,27,"pl-k"]],[],[[4,13,"pl-k"],[14,22,"pl-k"]],[[21,25,"pl-k"],[26,41,"pl-en"],[45,50,"pl-k"]],[[1,7,"pl-k"]],[[8,13,"pl-k"]],[[1,5,"pl-k"],[7,38,"pl-c"],[7,9,"pl-c"]],[[1,6,"pl-k"]],[[8,39,"pl-c1"]],[[1,5,"pl-k"],[6,40,"pl-c"],[6,8,"pl-c"]],[[1,7,"pl-k"]],[[21,88,"pl-s"],[21,22,"pl-pds"],[85,87,"pl-cce"],[87,88,"pl-pds"]],[[21,40,"pl-s"],[21,22,"pl-pds"],[39,40,"pl-pds"],[46,50,"pl-c1"],[56,60,"pl-s"],[56,57,"pl-pds"],[57,59,"pl-cce"],[59,60,"pl-pds"]],[[1,6,"pl-k"],[7,44,"pl-c"],[7,9,"pl-c"]],[[1,6,"pl-k"],[7,41,"pl-c"],[7,9,"pl-c"]],[[8,22,"pl-c1"]],[[1,6,"pl-k"],[7,38,"pl-c"],[7,9,"pl-c"]],[],[],[[1,7,"pl-k"]],[[1,7,"pl-k"],[8,30,"pl-en"],[31,34,"pl-v"]],[[4,19,"pl-en"]],[[21,24,"pl-s"],[21,22,"pl-pds"],[23,24,"pl-pds"]],[[1,6,"pl-k"],[7,32,"pl-c"],[7,9,"pl-c"]],[],[[4,30,"pl-c"],[4,6,"pl-c"]],[[4,7,"pl-k"],[8,15,"pl-en"],[16,21,"pl-k"],[22,26,"pl-k"],[31,36,"pl-k"],[37,41,"pl-k"]],[[8,11,"pl-k"]],[[12,17,"pl-k"],[18,21,"pl-k"],[26,33,"pl-c1"],[40,47,"pl-c1"]],[[12,14,"pl-k"],[20,21,"pl-c1"]],[[16,22,"pl-k"]],[],[],[],[[4,10,"pl-k"],[11,21,"pl-en"]],[],[[8,12,"pl-k"]],[],[],[],[],[],[[8,14,"pl-k"],[20,25,"pl-en"]],[[12,15,"pl-k"],[20,21,"pl-c1"]],[[12,59,"pl-c"],[12,14,"pl-c"]],[[12,16,"pl-k"],[23,39,"pl-k"],[40,44,"pl-k"]],[[12,14,"pl-k"]],[[16,22,"pl-k"]],[[12,18,"pl-k"]],[],[],[[2,14,"pl-c"],[2,4,"pl-c"]],[],[[0,9,"pl-k"],[10,16,"pl-en"]],[[25,30,"pl-k"]],[],[],[],[],[[4,11,"pl-k"]],[[22,26,"pl-en"]],[[18,27,"pl-c1"],[31,36,"pl-c1"]],[[12,18,"pl-k"]],[],[],[[15,18,"pl-en"]],[[12,14,"pl-k"],[22,27,"pl-c1"]],[[16,38,"pl-c1"],[39,75,"pl-s"],[39,40,"pl-pds"],[74,75,"pl-pds"]],[],[[39,43,"pl-c1"]],[[18,26,"pl-c1"]],[[12,20,"pl-k"],[26,37,"pl-k"],[38,46,"pl-k"],[51,56,"pl-c1"]],[[15,20,"pl-c1"],[24,34,"pl-c1"]],[[12,18,"pl-k"],[19,25,"pl-c1"]],[],[],[],[[18,26,"pl-en"]],[[8,14,"pl-k"],[21,25,"pl-c1"]],[],[],[[11,18,"pl-en"]],[[8,14,"pl-k"],[21,24,"pl-c1"]],[],[],[[1,7,"pl-k"]],[],[[0,9,"pl-k"],[10,29,"pl-en"]],[],[],[[1,3,"pl-k"]],[[4,9,"pl-k"]],[[1,5,"pl-k"],[6,33,"pl-c"],[6,8,"pl-c"]],[[4,9,"pl-k"],[22,30,"pl-c1"]],[[1,6,"pl-k"],[7,34,"pl-c"],[7,9,"pl-c"]],[],[],[[0,5,"pl-k"],[6,13,"pl-c1"]],[],[[1,6,"pl-k"]],[[4,11,"pl-c1"],[12,27,"pl-en"],[32,38,"pl-k"],[39,69,"pl-c1"]],[[1,5,"pl-k"]],[[4,11,"pl-c1"],[12,27,"pl-en"]],[[8,14,"pl-k"],[37,38,"pl-c1"],[52,53,"pl-c1"]],[[8,10,"pl-k"],[15,23,"pl-smi"]],[[12,37,"pl-c1"]],[[12,35,"pl-c1"]],[],[],[[8,31,"pl-c1"]],[[8,14,"pl-k"],[19,27,"pl-smi"],[34,42,"pl-smi"],[46,54,"pl-c1"],[55,62,"pl-c1"],[70,78,"pl-smi"]],[],[[1,5,"pl-k"],[7,34,"pl-c"],[7,9,"pl-c"]],[[4,11,"pl-c1"],[12,27,"pl-en"]],[[8,15,"pl-c1"]],[[8,20,"pl-c1"],[25,32,"pl-c1"]],[[8,14,"pl-k"],[15,26,"pl-k"],[27,34,"pl-c1"],[38,44,"pl-smi"],[48,55,"pl-c1"],[58,69,"pl-k"],[70,77,"pl-c1"],[81,88,"pl-smi"]],[],[[1,6,"pl-k"],[7,34,"pl-c"],[7,9,"pl-c"]],[],[[4,10,"pl-k"],[11,16,"pl-en"]],[],[[8,12,"pl-k"],[21,26,"pl-en"],[41,56,"pl-c1"]],[[8,16,"pl-k"],[17,20,"pl-k"],[21,43,"pl-en"],[46,51,"pl-k"]],[[12,18,"pl-k"],[19,30,"pl-k"],[31,39,"pl-k"],[40,43,"pl-k"],[45,60,"pl-c1"]],[],[[8,55,"pl-c"],[8,10,"pl-c"]],[[8,80,"pl-c"],[8,10,"pl-c"]],[[8,11,"pl-c"],[8,10,"pl-c"]],[[8,14,"pl-k"],[15,32,"pl-en"],[35,40,"pl-k"],[43,49,"pl-k"],[50,61,"pl-k"],[62,68,"pl-k"],[70,85,"pl-c1"],[101,110,"pl-c1"]],[],[[4,12,"pl-k"]],[[8,15,"pl-c1"],[26,27,"pl-c1"]],[],[],[[1,6,"pl-k"]],[[4,13,"pl-k"],[14,22,"pl-k"]],[[4,9,"pl-k"]],[[1,5,"pl-k"],[6,41,"pl-c"],[6,8,"pl-c"]],[[4,13,"pl-k"],[14,22,"pl-k"]],[[4,9,"pl-k"]],[[1,6,"pl-k"],[7,42,"pl-c"],[7,9,"pl-c"]],[],[[1,3,"pl-k"]],[[4,13,"pl-k"],[14,22,"pl-k"]],[[4,9,"pl-k"]],[[1,5,"pl-k"],[6,45,"pl-c"],[6,8,"pl-c"]],[[4,94,"pl-c"],[4,6,"pl-c"]],[[4,91,"pl-c"],[4,6,"pl-c"]],[[4,88,"pl-c"],[4,6,"pl-c"]],[[4,70,"pl-c"],[4,6,"pl-c"]],[[4,6,"pl-c"],[4,6,"pl-c"]],[[4,92,"pl-c"],[4,6,"pl-c"]],[[4,80,"pl-c"],[4,6,"pl-c"]],[[4,6,"pl-c"],[4,6,"pl-c"]],[[4,95,"pl-c"],[4,6,"pl-c"]],[[4,57,"pl-c"],[4,6,"pl-c"]],[[4,13,"pl-k"],[14,22,"pl-k"]],[[4,9,"pl-k"],[10,25,"pl-en"]],[],[[8,14,"pl-k"],[15,37,"pl-en"]],[],[],[[12,16,"pl-k"],[70,76,"pl-k"]],[],[],[],[[8,21,"pl-en"],[22,28,"pl-k"]],[[22,73,"pl-s"],[22,23,"pl-pds"],[72,73,"pl-pds"]],[],[[4,11,"pl-k"]],[[10,18,"pl-k"],[42,48,"pl-k"],[49,58,"pl-c1"],[59,60,"pl-c1"],[64,65,"pl-c1"]],[],[[10,18,"pl-k"],[21,24,"pl-k"],[45,51,"pl-k"],[52,61,"pl-c1"],[62,63,"pl-c1"]],[],[[10,19,"pl-en"]],[[12,18,"pl-k"],[19,27,"pl-c1"],[30,39,"pl-c1"]],[],[],[[10,19,"pl-en"]],[[12,18,"pl-k"],[19,27,"pl-c1"],[30,39,"pl-c1"]],[],[],[[8,16,"pl-k"],[17,18,"pl-en"],[21,26,"pl-k"],[46,52,"pl-k"],[53,57,"pl-c1"]],[],[[10,14,"pl-en"],[68,73,"pl-k"]],[[12,16,"pl-k"],[26,27,"pl-c1"]],[[12,15,"pl-k"],[16,20,"pl-k"],[21,26,"pl-k"]],[[28,34,"pl-smi"],[35,39,"pl-c1"]],[],[[12,18,"pl-k"]],[],[],[[10,18,"pl-k"],[50,95,"pl-c"],[50,52,"pl-c"]],[[12,17,"pl-c1"]],[[12,18,"pl-k"]],[],[],[[8,12,"pl-k"],[13,18,"pl-en"]],[[12,65,"pl-c"],[12,14,"pl-c"]],[[12,15,"pl-k"],[16,20,"pl-k"]],[[18,24,"pl-smi"],[25,30,"pl-c1"]],[],[],[],[],[[4,12,"pl-k"]],[[8,96,"pl-c"],[8,10,"pl-c"]],[[8,96,"pl-c"],[8,10,"pl-c"]],[[8,32,"pl-c"],[8,10,"pl-c"]],[[8,10,"pl-c"],[8,10,"pl-c"]],[[8,96,"pl-c"],[8,10,"pl-c"]],[[8,94,"pl-c"],[8,10,"pl-c"]],[[8,10,"pl-c"],[8,10,"pl-c"]],[[8,73,"pl-c"],[8,10,"pl-c"]],[[8,99,"pl-c"],[8,10,"pl-c"]],[[8,48,"pl-c"],[8,10,"pl-c"]],[[8,98,"pl-c"],[8,10,"pl-c"]],[[8,30,"pl-c"],[8,10,"pl-c"]],[[19,27,"pl-en"]],[[12,18,"pl-k"],[26,32,"pl-c1"]],[[33,39,"pl-c1"]],[],[],[[12,18,"pl-k"],[41,47,"pl-smi"]],[],[],[[1,6,"pl-k"],[7,46,"pl-c"],[7,9,"pl-c"]],[],[[4,82,"pl-c"],[4,6,"pl-c"]],[[4,10,"pl-k"],[11,23,"pl-en"]],[],[[24,27,"pl-k"]],[[24,27,"pl-k"]],[],[[69,70,"pl-c1"],[73,95,"pl-c"],[73,75,"pl-c"]],[],[],[],[[28,35,"pl-c1"]],[],[],[],[[49,91,"pl-c"],[49,51,"pl-c"]],[],[[8,29,"pl-c"],[8,10,"pl-c"]],[[8,12,"pl-k"]],[],[],[[27,35,"pl-k"],[36,40,"pl-k"],[41,45,"pl-k"]],[[8,14,"pl-c1"]],[[15,19,"pl-k"]],[],[[8,12,"pl-k"],[13,25,"pl-en"]],[[42,43,"pl-c1"]],[[42,43,"pl-c1"]],[[42,43,"pl-c1"]],[[42,43,"pl-c1"]],[[42,43,"pl-c1"]],[[42,43,"pl-c1"]],[[42,43,"pl-c1"]],[[42,43,"pl-c1"]],[],[],[[8,12,"pl-k"],[13,33,"pl-en"]],[[28,45,"pl-c1"]],[],[[12,45,"pl-c"],[12,14,"pl-c"]],[],[],[],[],[],[[12,14,"pl-k"]],[],[],[[12,14,"pl-k"],[15,21,"pl-c1"],[35,44,"pl-smi"],[46,53,"pl-c1"],[70,71,"pl-c1"]],[[15,21,"pl-c1"],[31,38,"pl-c1"],[67,76,"pl-smi"]],[],[],[[12,14,"pl-k"],[28,41,"pl-smi"]],[[16,18,"pl-k"]],[],[[18,22,"pl-k"]],[],[],[[14,18,"pl-k"],[19,21,"pl-k"],[52,62,"pl-smi"]],[],[[14,18,"pl-k"],[19,21,"pl-k"],[35,54,"pl-smi"],[57,58,"pl-c1"]],[[16,18,"pl-k"],[63,82,"pl-smi"]],[],[[18,22,"pl-k"]],[],[],[],[],[[12,16,"pl-k"]],[],[],[],[[12,73,"pl-c"],[12,14,"pl-c"]],[],[[12,14,"pl-k"]],[],[],[],[],[[25,32,"pl-c1"]],[],[[4,47,"pl-c"],[4,6,"pl-c"]],[[4,91,"pl-c"],[4,6,"pl-c"]],[[4,90,"pl-c"],[4,6,"pl-c"]],[[25,29,"pl-k"]],[],[[1,6,"pl-k"],[7,32,"pl-c"],[7,9,"pl-c"]],[[2,21,"pl-c"],[2,4,"pl-c"]],[],[[0,4,"pl-k"],[6,22,"pl-en"]],[[4,6,"pl-k"]],[[18,22,"pl-s"],[18,19,"pl-pds"],[19,21,"pl-cce"],[21,22,"pl-pds"]],[[8,15,"pl-c1"]],[[8,14,"pl-k"]],[[6,10,"pl-k"]],[[8,17,"pl-c1"]],[[13,17,"pl-smi"]],[[13,21,"pl-smi"],[29,33,"pl-smi"],[36,37,"pl-c1"]],[[13,16,"pl-smi"],[19,22,"pl-k"],[23,27,"pl-k"],[33,41,"pl-smi"]],[[13,16,"pl-smi"],[23,27,"pl-s"],[23,24,"pl-pds"],[24,26,"pl-cce"],[26,27,"pl-pds"]],[[8,14,"pl-k"],[20,23,"pl-smi"]],[],[],[],[[0,4,"pl-k"],[5,22,"pl-en"],[25,33,"pl-k"],[37,53,"pl-k"],[54,62,"pl-k"],[63,67,"pl-k"],[84,87,"pl-c1"]],[[0,4,"pl-k"],[5,20,"pl-en"],[35,43,"pl-k"],[58,62,"pl-c1"]],[[0,4,"pl-k"],[5,20,"pl-en"],[35,43,"pl-k"]],[[4,6,"pl-k"],[8,17,"pl-c1"],[33,37,"pl-s"],[33,34,"pl-pds"],[34,36,"pl-cce"],[36,37,"pl-pds"],[39,46,"pl-c1"]],[[4,8,"pl-k"],[16,19,"pl-smi"],[26,30,"pl-s"],[26,27,"pl-pds"],[27,29,"pl-cce"],[29,30,"pl-pds"],[37,41,"pl-smi"]],[],[],[[0,4,"pl-k"],[5,17,"pl-en"],[18,23,"pl-k"]],[[4,6,"pl-k"],[13,22,"pl-c1"]],[[8,14,"pl-c1"],[26,29,"pl-smi"]],[[6,10,"pl-k"]],[[8,14,"pl-c1"],[15,23,"pl-c1"],[30,34,"pl-smi"],[35,39,"pl-smi"],[48,52,"pl-smi"],[53,56,"pl-smi"],[64,68,"pl-smi"],[69,73,"pl-smi"]],[],[],[],[[0,14,"pl-en"],[17,25,"pl-k"]],[[8,9,"pl-c1"],[13,17,"pl-s"],[13,14,"pl-pds"],[14,16,"pl-cce"],[16,17,"pl-pds"]],[[4,11,"pl-c1"]],[],[],[[0,15,"pl-en"]],[[4,6,"pl-k"],[8,17,"pl-c1"]],[[8,16,"pl-k"],[22,25,"pl-smi"]],[[2,52,"pl-c"],[2,4,"pl-c"]],[],[[0,14,"pl-en"],[15,20,"pl-k"],[21,25,"pl-k"]],[],[],[[0,14,"pl-en"],[15,20,"pl-k"],[21,25,"pl-k"]],[[4,10,"pl-c1"],[11,19,"pl-c1"]],[],[],[[0,14,"pl-en"]],[[7,11,"pl-c1"],[12,20,"pl-c1"]],[],[],[[0,14,"pl-en"],[15,20,"pl-k"],[38,42,"pl-c1"]],[],[[16,24,"pl-k"],[26,31,"pl-k"]],[[4,6,"pl-k"],[7,11,"pl-c1"]],[[8,10,"pl-k"],[12,21,"pl-c1"]],[[12,20,"pl-k"],[26,29,"pl-smi"]],[],[[8,12,"pl-c1"]],[],[],[[4,10,"pl-k"],[12,16,"pl-c1"]],[],[],[[16,24,"pl-k"],[27,32,"pl-k"]],[[4,9,"pl-k"],[34,38,"pl-c1"]],[[4,9,"pl-k"],[40,44,"pl-c1"]],[[4,9,"pl-k"]],[[4,6,"pl-k"],[7,16,"pl-c1"]],[[8,10,"pl-k"]],[[12,48,"pl-c"],[12,14,"pl-c"]],[[12,18,"pl-c1"],[44,49,"pl-c1"],[66,67,"pl-c1"]],[[12,70,"pl-c"],[12,14,"pl-c"]],[[12,19,"pl-c1"]],[[10,14,"pl-k"]],[[12,30,"pl-c"],[12,14,"pl-c"]],[[12,16,"pl-k"],[25,28,"pl-k"],[29,33,"pl-k"],[47,48,"pl-c1"]],[[12,76,"pl-c"],[12,14,"pl-c"]],[[12,18,"pl-c1"],[44,75,"pl-c"],[44,46,"pl-c"]],[[12,35,"pl-c"],[12,14,"pl-c"]],[[12,21,"pl-c1"]],[[17,21,"pl-smi"]],[[17,25,"pl-smi"],[33,37,"pl-smi"],[40,41,"pl-c1"]],[[17,20,"pl-smi"]],[[12,44,"pl-c"],[12,14,"pl-c"]],[[12,18,"pl-c1"],[24,27,"pl-smi"],[49,54,"pl-c1"],[71,72,"pl-c1"]],[],[[6,10,"pl-k"]],[[8,10,"pl-k"],[16,24,"pl-smi"]],[[12,47,"pl-c"],[12,14,"pl-c"]],[[17,21,"pl-smi"]],[[12,18,"pl-c1"],[24,27,"pl-smi"],[49,54,"pl-c1"],[71,72,"pl-c1"]],[[10,14,"pl-k"]],[[12,21,"pl-c"],[12,14,"pl-c"]],[[17,25,"pl-smi"],[29,30,"pl-c1"]],[[12,14,"pl-k"],[20,28,"pl-smi"]],[[21,29,"pl-smi"],[45,46,"pl-c1"]],[[12,30,"pl-c"],[12,14,"pl-c"]],[[12,16,"pl-k"],[25,28,"pl-k"],[29,33,"pl-k"],[39,47,"pl-smi"]],[[12,68,"pl-c"],[12,14,"pl-c"]],[[12,18,"pl-c1"],[30,33,"pl-smi"],[49,80,"pl-c"],[49,51,"pl-c"]],[[12,32,"pl-c"],[12,14,"pl-c"]],[[12,20,"pl-k"],[26,29,"pl-smi"]],[[12,51,"pl-c"],[12,14,"pl-c"]],[[17,21,"pl-smi"]],[[17,20,"pl-smi"]],[[12,44,"pl-c"],[12,14,"pl-c"]],[[12,18,"pl-c1"],[24,27,"pl-smi"],[49,54,"pl-c1"],[71,72,"pl-c1"]],[],[],[],[[4,10,"pl-k"],[12,16,"pl-c1"]],[],[],[[0,14,"pl-en"],[31,39,"pl-k"]],[[4,10,"pl-c1"],[22,25,"pl-smi"]],[[10,13,"pl-smi"],[14,15,"pl-c1"],[19,23,"pl-s"],[19,20,"pl-pds"],[20,22,"pl-cce"],[22,23,"pl-pds"]],[[10,17,"pl-c1"]],[],[],[[16,24,"pl-k"],[42,50,"pl-k"]],[[4,6,"pl-k"],[7,11,"pl-c1"]],[[8,10,"pl-k"],[12,21,"pl-c1"]],[[12,20,"pl-k"],[26,29,"pl-smi"]],[[8,14,"pl-c1"],[26,29,"pl-smi"]],[[14,17,"pl-smi"],[18,19,"pl-c1"],[23,27,"pl-s"],[23,24,"pl-pds"],[24,26,"pl-cce"],[26,27,"pl-pds"]],[[14,21,"pl-c1"]],[],[[4,10,"pl-k"],[12,16,"pl-c1"]],[],[],[[0,4,"pl-k"],[13,21,"pl-k"],[37,42,"pl-k"]],[[4,10,"pl-k"],[11,21,"pl-k"],[31,35,"pl-c1"],[38,46,"pl-smi"]],[],[],[[0,4,"pl-k"],[14,22,"pl-k"]],[[4,6,"pl-k"],[7,16,"pl-c1"]],[[8,14,"pl-k"],[15,31,"pl-k"],[32,36,"pl-k"]],[[4,10,"pl-k"],[16,19,"pl-smi"]],[],[],[[0,38,"pl-en"],[39,62,"pl-s"],[39,40,"pl-pds"],[61,62,"pl-pds"]],[[18,30,"pl-en"],[33,38,"pl-k"]],[[4,6,"pl-k"],[7,16,"pl-c1"]],[[8,14,"pl-k"],[23,32,"pl-c1"],[46,48,"pl-c1"],[51,97,"pl-c"],[51,53,"pl-c"]],[[4,10,"pl-k"],[16,20,"pl-smi"]],[],[],[],[[18,34,"pl-en"],[37,42,"pl-k"]],[[4,6,"pl-k"],[7,16,"pl-c1"]],[[8,14,"pl-k"]],[[4,10,"pl-k"],[16,24,"pl-smi"]],[],[],[[7,21,"pl-en"]],[[10,18,"pl-c1"],[24,28,"pl-c1"],[33,34,"pl-c1"]],[[4,8,"pl-k"],[17,22,"pl-c1"]],[[4,11,"pl-c1"]],[[4,11,"pl-c1"]],[[4,10,"pl-k"],[11,20,"pl-c1"],[22,26,"pl-c1"]],[],[],[[7,21,"pl-en"],[52,57,"pl-k"]],[[10,18,"pl-c1"],[24,28,"pl-c1"],[33,34,"pl-c1"]],[[4,10,"pl-k"],[19,24,"pl-c1"]],[],[],[[18,30,"pl-en"],[31,35,"pl-k"],[55,60,"pl-k"]],[[4,9,"pl-k"],[10,14,"pl-k"],[24,29,"pl-c1"]],[[4,9,"pl-k"],[10,14,"pl-k"],[30,34,"pl-c1"]],[[4,9,"pl-k"],[10,14,"pl-k"]],[[4,7,"pl-k"]],[[4,6,"pl-k"],[20,26,"pl-k"],[27,38,"pl-k"]],[[4,8,"pl-k"],[11,17,"pl-k"]],[],[],[[18,31,"pl-en"],[32,36,"pl-k"],[56,61,"pl-k"]],[[4,9,"pl-k"],[10,14,"pl-k"],[24,29,"pl-c1"]],[[4,9,"pl-k"],[10,14,"pl-k"],[29,37,"pl-c1"],[43,47,"pl-c1"],[52,53,"pl-c1"]],[[4,7,"pl-k"]],[[4,6,"pl-k"],[23,29,"pl-k"],[30,41,"pl-k"]],[[4,8,"pl-k"],[11,17,"pl-k"]],[],[],[[0,3,"pl-k"],[4,19,"pl-en"],[20,25,"pl-k"],[26,30,"pl-k"],[39,43,"pl-k"],[53,58,"pl-k"]],[[4,6,"pl-k"]],[[8,14,"pl-k"],[15,31,"pl-c1"],[32,37,"pl-c1"]],[[4,10,"pl-k"],[11,22,"pl-c1"],[23,28,"pl-c1"]],[],[],[[0,3,"pl-k"],[4,19,"pl-en"],[20,25,"pl-k"],[41,45,"pl-k"],[55,60,"pl-k"]],[[4,10,"pl-k"],[11,18,"pl-c1"],[25,30,"pl-c1"]],[],[],[[7,15,"pl-k"],[17,22,"pl-k"],[36,41,"pl-k"],[57,63,"pl-k"],[65,71,"pl-c1"]],[],[[0,4,"pl-k"],[5,13,"pl-k"],[16,21,"pl-k"],[35,40,"pl-k"],[56,62,"pl-k"],[67,74,"pl-c1"],[83,84,"pl-c1"]],[[0,4,"pl-k"],[5,13,"pl-k"],[16,21,"pl-k"],[35,40,"pl-k"],[56,62,"pl-k"],[67,74,"pl-c1"],[83,84,"pl-c1"]],[[0,4,"pl-k"],[5,13,"pl-k"],[16,21,"pl-k"],[35,40,"pl-k"],[56,62,"pl-k"],[67,74,"pl-c1"],[82,83,"pl-c1"]],[[0,4,"pl-k"],[5,13,"pl-k"],[16,21,"pl-k"],[35,40,"pl-k"],[56,62,"pl-k"],[67,74,"pl-c1"],[82,83,"pl-c1"]],[[0,4,"pl-k"],[5,13,"pl-k"],[16,21,"pl-k"],[35,40,"pl-k"],[56,62,"pl-k"],[82,89,"pl-c1"],[97,98,"pl-c1"],[101,105,"pl-c1"]],[[0,4,"pl-k"],[5,13,"pl-k"],[16,21,"pl-k"],[35,40,"pl-k"],[56,62,"pl-k"],[82,89,"pl-c1"],[97,98,"pl-c1"],[101,105,"pl-c1"]],[],[[14,22,"pl-k"],[42,47,"pl-k"],[62,68,"pl-k"],[77,82,"pl-c1"]],[],[[0,18,"pl-en"],[19,24,"pl-k"]],[],[[0,4,"pl-k"],[5,24,"pl-en"],[25,30,"pl-k"],[46,51,"pl-k"]],[[4,10,"pl-k"],[11,17,"pl-c1"],[24,29,"pl-c1"],[40,45,"pl-c1"],[52,59,"pl-c1"]],[],[],[[7,15,"pl-en"],[16,21,"pl-k"]],[[4,10,"pl-k"],[11,23,"pl-s"],[11,12,"pl-pds"],[22,23,"pl-pds"],[29,35,"pl-smi"],[38,42,"pl-s"],[38,39,"pl-pds"],[41,42,"pl-pds"]],[],[],[[0,4,"pl-k"],[5,13,"pl-k"],[16,21,"pl-k"],[35,40,"pl-k"],[58,64,"pl-k"],[69,78,"pl-c1"]],[[0,4,"pl-k"],[5,13,"pl-k"],[16,21,"pl-k"],[37,42,"pl-k"],[58,64,"pl-k"],[69,78,"pl-c1"]],[[0,4,"pl-k"],[5,13,"pl-k"],[16,21,"pl-k"],[35,40,"pl-k"],[58,64,"pl-k"],[70,79,"pl-c1"]],[[0,4,"pl-k"],[5,13,"pl-k"],[16,21,"pl-k"],[37,42,"pl-k"],[58,64,"pl-k"],[70,79,"pl-c1"]],[],[[0,9,"pl-k"]],[[4,8,"pl-k"],[9,24,"pl-en"]],[[2,14,"pl-c"],[2,4,"pl-c"]],[],[[0,9,"pl-k"],[10,15,"pl-en"]],[[18,26,"pl-k"]],[[8,23,"pl-c1"]],[[8,14,"pl-k"]],[],[[2,20,"pl-c"],[2,4,"pl-c"]],[],[[0,19,"pl-c"],[0,2,"pl-c"]],[[0,5,"pl-k"],[6,10,"pl-k"],[12,24,"pl-en"]],[[4,43,"pl-c1"],[44,48,"pl-c1"],[50,109,"pl-c"],[50,52,"pl-c"]],[[5,11,"pl-k"],[12,45,"pl-en"],[46,57,"pl-v"],[59,63,"pl-k"],[96,102,"pl-k"]],[[5,11,"pl-k"],[12,46,"pl-en"],[47,58,"pl-v"]],[[8,41,"pl-c1"]],[[8,41,"pl-c1"]],[[8,41,"pl-c1"]],[[4,10,"pl-k"]],[[8,41,"pl-c1"]],[[8,41,"pl-c1"]],[[8,41,"pl-c1"]],[],[[8,42,"pl-c1"],[43,48,"pl-c1"]],[],[[8,42,"pl-c1"]],[],[[8,42,"pl-c1"]],[],[[8,42,"pl-c1"]],[],[[8,42,"pl-c1"]],[],[[8,42,"pl-c1"]],[],[[8,42,"pl-c1"]],[[8,42,"pl-c1"]],[[8,42,"pl-c1"]],[[8,42,"pl-c1"]],[[8,42,"pl-c1"]],[[8,42,"pl-c1"]],[],[[8,42,"pl-c1"]],[[8,42,"pl-c1"]],[],[[8,15,"pl-k"],[17,39,"pl-c1"],[40,81,"pl-s"],[40,41,"pl-pds"],[80,81,"pl-pds"]],[],[],[],[[0,18,"pl-c"],[0,2,"pl-c"]],[],[[0,5,"pl-k"],[6,10,"pl-k"],[12,25,"pl-en"]],[[4,6,"pl-k"],[33,74,"pl-c"],[33,35,"pl-c"]],[[8,14,"pl-k"],[15,24,"pl-s"],[15,16,"pl-pds"],[23,24,"pl-pds"]],[[4,6,"pl-k"],[34,75,"pl-c"],[34,36,"pl-c"]],[[8,14,"pl-k"],[15,22,"pl-s"],[15,16,"pl-pds"],[21,22,"pl-pds"]],[[4,6,"pl-k"],[36,77,"pl-c"],[36,38,"pl-c"]],[[8,14,"pl-k"],[15,28,"pl-s"],[15,16,"pl-pds"],[27,28,"pl-pds"]],[[4,10,"pl-k"],[11,13,"pl-s"],[11,12,"pl-pds"],[12,13,"pl-pds"]],[],[],[[0,40,"pl-en"],[41,61,"pl-s"],[41,42,"pl-pds"],[60,61,"pl-pds"]],[[0,38,"pl-en"],[39,59,"pl-s"],[39,40,"pl-pds"],[58,59,"pl-pds"]],[[0,74,"pl-c"],[0,2,"pl-c"]],[[0,5,"pl-k"],[6,10,"pl-k"],[12,32,"pl-en"],[33,38,"pl-k"],[39,43,"pl-k"]],[[1,7,"pl-k"]],[[4,6,"pl-k"],[7,24,"pl-c1"],[28,48,"pl-smi"]],[[8,12,"pl-k"],[23,35,"pl-c1"],[42,46,"pl-s"],[42,43,"pl-pds"],[43,45,"pl-cce"],[45,46,"pl-pds"]],[[8,12,"pl-k"],[23,35,"pl-c1"],[42,45,"pl-s"],[42,43,"pl-pds"],[44,45,"pl-pds"]],[[8,10,"pl-k"]],[[12,14,"pl-k"]],[],[[12,18,"pl-k"],[29,30,"pl-c1"]],[],[],[[1,6,"pl-k"],[7,32,"pl-c"],[7,9,"pl-c"]],[[4,10,"pl-k"]],[],[],[],[],[[0,4,"pl-k"],[23,31,"pl-k"],[34,39,"pl-k"],[65,70,"pl-k"]],[[4,10,"pl-k"],[27,33,"pl-smi"]],[[11,22,"pl-c1"],[37,43,"pl-smi"],[48,49,"pl-c1"]],[[27,33,"pl-smi"]],[],[],[[0,4,"pl-k"],[23,31,"pl-k"],[33,38,"pl-k"],[64,69,"pl-k"]],[[4,6,"pl-k"],[23,29,"pl-smi"]],[[8,14,"pl-k"],[30,36,"pl-smi"]],[[4,6,"pl-k"],[7,18,"pl-c1"],[33,39,"pl-smi"],[44,45,"pl-c1"]],[[8,14,"pl-k"],[15,26,"pl-c1"],[41,47,"pl-smi"],[51,52,"pl-c1"]],[[4,10,"pl-k"],[18,25,"pl-c1"],[32,38,"pl-smi"],[42,43,"pl-c1"]],[],[],[[0,24,"pl-en"]],[],[[0,9,"pl-k"],[10,16,"pl-en"]],[[4,8,"pl-k"],[18,23,"pl-k"],[24,28,"pl-k"],[59,64,"pl-k"],[65,69,"pl-k"]],[[8,10,"pl-k"]],[[8,12,"pl-k"],[26,35,"pl-s"],[26,27,"pl-pds"],[34,35,"pl-pds"]],[],[],[[4,13,"pl-k"],[14,22,"pl-k"]],[[11,22,"pl-en"]],[[27,35,"pl-c1"]],[[12,20,"pl-smi"]],[[8,14,"pl-k"],[15,22,"pl-c1"]],[],[],[],[[1,6,"pl-k"]],[[7,15,"pl-en"],[16,21,"pl-k"],[22,26,"pl-k"],[34,40,"pl-k"],[41,47,"pl-c1"],[48,52,"pl-s"],[48,49,"pl-pds"],[49,51,"pl-cce"],[51,52,"pl-pds"],[67,82,"pl-s"],[67,68,"pl-pds"],[81,82,"pl-pds"],[86,90,"pl-s"],[86,87,"pl-pds"],[87,89,"pl-cce"],[89,90,"pl-pds"]],[[1,6,"pl-k"],[7,50,"pl-c"],[7,9,"pl-c"]],[],[[1,3,"pl-k"]],[[0,86,"pl-c"],[0,2,"pl-c"]],[[7,15,"pl-en"],[16,21,"pl-k"],[41,47,"pl-k"],[51,56,"pl-c1"]],[[1,6,"pl-k"],[7,17,"pl-c"],[7,9,"pl-c"]],[],[[7,15,"pl-en"],[29,35,"pl-k"]],[],[[7,15,"pl-en"],[21,30,"pl-c1"],[34,40,"pl-k"],[41,50,"pl-s"],[41,42,"pl-pds"],[49,50,"pl-pds"]],[],[[7,15,"pl-en"],[16,20,"pl-k"],[27,33,"pl-k"],[39,45,"pl-s"],[39,40,"pl-pds"],[44,45,"pl-pds"],[48,55,"pl-s"],[48,49,"pl-pds"],[54,55,"pl-pds"]],[],[[7,15,"pl-en"],[16,21,"pl-k"],[28,34,"pl-k"],[35,46,"pl-c1"]],[[7,15,"pl-en"],[16,22,"pl-k"],[29,35,"pl-k"],[36,47,"pl-c1"]],[[7,15,"pl-en"],[16,22,"pl-k"],[23,27,"pl-k"],[34,40,"pl-k"],[41,52,"pl-c1"]],[],[[7,15,"pl-en"],[16,20,"pl-k"],[27,33,"pl-k"],[34,45,"pl-c1"],[46,57,"pl-k"],[58,64,"pl-k"]],[[7,15,"pl-en"],[16,20,"pl-k"],[21,27,"pl-k"],[34,40,"pl-k"],[41,52,"pl-c1"],[53,64,"pl-k"],[65,71,"pl-k"]],[[7,15,"pl-en"],[16,20,"pl-k"],[21,29,"pl-k"],[36,42,"pl-k"],[43,54,"pl-c1"],[55,66,"pl-k"],[67,75,"pl-k"]],[[7,15,"pl-en"],[16,21,"pl-k"],[28,34,"pl-k"],[35,46,"pl-c1"]],[[7,15,"pl-en"],[16,21,"pl-k"],[22,30,"pl-k"],[37,43,"pl-k"],[44,55,"pl-c1"]],[[7,15,"pl-en"],[16,22,"pl-k"],[29,35,"pl-k"],[36,47,"pl-c1"]],[[7,15,"pl-en"],[16,24,"pl-k"],[31,37,"pl-k"],[38,49,"pl-c1"]],[[7,15,"pl-en"],[16,20,"pl-k"],[27,33,"pl-k"],[34,45,"pl-c1"]],[[7,15,"pl-en"],[16,20,"pl-k"],[21,29,"pl-k"],[36,42,"pl-k"],[43,54,"pl-c1"]],[[7,15,"pl-en"],[16,20,"pl-k"],[21,25,"pl-k"],[32,38,"pl-k"],[39,50,"pl-c1"]],[[7,15,"pl-en"],[16,20,"pl-k"],[21,25,"pl-k"],[26,34,"pl-k"],[41,47,"pl-k"],[48,59,"pl-c1"]],[],[[0,14,"pl-en"],[15,21,"pl-k"]],[[20,31,"pl-k"],[32,38,"pl-k"],[60,65,"pl-k"],[81,84,"pl-c1"]],[[18,21,"pl-c1"]],[],[],[[7,23,"pl-en"],[26,32,"pl-k"],[40,45,"pl-k"]],[[11,17,"pl-smi"]],[[11,18,"pl-c1"]],[[11,16,"pl-c1"]],[[4,10,"pl-k"]],[],[],[[8,23,"pl-en"],[24,30,"pl-k"]],[],[[4,10,"pl-k"],[12,16,"pl-c1"]],[],[[8,21,"pl-en"],[22,28,"pl-k"]],[],[[4,10,"pl-k"],[12,16,"pl-c1"]],[],[],[[0,4,"pl-k"],[5,13,"pl-k"],[16,22,"pl-k"],[28,33,"pl-k"]],[[4,66,"pl-c"],[4,6,"pl-c"]],[[4,10,"pl-k"],[11,20,"pl-c1"],[31,38,"pl-smi"]],[[15,24,"pl-smi"],[32,39,"pl-smi"],[51,57,"pl-k"],[59,68,"pl-c1"],[75,84,"pl-c1"],[89,96,"pl-smi"]],[],[[0,4,"pl-k"],[5,13,"pl-k"],[16,21,"pl-k"],[35,41,"pl-k"],[49,55,"pl-k"],[56,64,"pl-k"]],[[0,4,"pl-k"],[5,13,"pl-k"],[16,22,"pl-k"],[28,33,"pl-k"],[49,55,"pl-k"],[57,65,"pl-k"]],[[0,4,"pl-k"],[5,13,"pl-k"],[16,21,"pl-k"],[35,41,"pl-k"],[49,55,"pl-k"],[57,65,"pl-k"]],[[0,4,"pl-k"],[5,13,"pl-k"],[16,22,"pl-k"],[28,33,"pl-k"],[49,55,"pl-k"],[66,73,"pl-smi"]],[[0,4,"pl-k"],[5,13,"pl-k"],[16,21,"pl-k"],[35,41,"pl-k"],[49,55,"pl-k"],[60,67,"pl-smi"]],[[0,4,"pl-k"],[5,13,"pl-k"],[16,22,"pl-k"],[28,33,"pl-k"],[49,55,"pl-k"],[66,73,"pl-smi"]],[[0,4,"pl-k"],[5,13,"pl-k"],[16,21,"pl-k"],[35,41,"pl-k"],[49,55,"pl-k"],[60,67,"pl-smi"]],[[0,4,"pl-k"],[5,13,"pl-k"],[15,21,"pl-k"],[27,32,"pl-k"],[48,54,"pl-k"],[65,72,"pl-smi"]],[[0,4,"pl-k"],[5,13,"pl-k"],[15,20,"pl-k"],[34,40,"pl-k"],[48,54,"pl-k"],[59,66,"pl-smi"]],[[0,4,"pl-k"],[5,13,"pl-k"],[15,21,"pl-k"],[27,32,"pl-k"],[48,54,"pl-k"],[65,72,"pl-smi"]],[[0,4,"pl-k"],[5,13,"pl-k"],[15,20,"pl-k"],[34,40,"pl-k"],[48,54,"pl-k"],[59,66,"pl-smi"]],[],[[7,15,"pl-en"],[16,21,"pl-k"]],[[4,10,"pl-k"],[11,21,"pl-s"],[11,12,"pl-pds"],[20,21,"pl-pds"],[24,41,"pl-c1"],[45,52,"pl-smi"],[56,60,"pl-s"],[56,57,"pl-pds"],[59,60,"pl-pds"]],[],[[0,5,"pl-k"],[22,39,"pl-en"],[44,50,"pl-k"],[51,77,"pl-c1"],[78,85,"pl-c1"]],[],[[0,39,"pl-en"],[40,44,"pl-c1"]],[[0,9,"pl-k"],[10,18,"pl-k"]],[[10,18,"pl-k"],[19,23,"pl-en"],[26,31,"pl-k"]],[[4,10,"pl-k"],[11,21,"pl-c1"]],[],[],[[0,9,"pl-k"],[9,15,"pl-k"],[16,37,"pl-en"],[44,49,"pl-k"]],[[0,9,"pl-k"],[9,15,"pl-k"],[16,37,"pl-en"],[44,50,"pl-k"]],[[0,9,"pl-k"],[9,15,"pl-k"],[16,37,"pl-en"],[44,48,"pl-k"],[49,55,"pl-k"]],[[0,9,"pl-k"],[10,18,"pl-k"]],[[7,15,"pl-en"],[31,37,"pl-k"],[38,44,"pl-c1"],[48,55,"pl-smi"],[58,62,"pl-s"],[58,59,"pl-pds"],[61,62,"pl-pds"],[65,67,"pl-s"],[65,66,"pl-pds"],[66,67,"pl-pds"],[71,80,"pl-s"],[71,72,"pl-pds"],[79,80,"pl-pds"],[83,100,"pl-c1"],[104,109,"pl-smi"],[113,117,"pl-s"],[113,114,"pl-pds"],[116,117,"pl-pds"]],[[7,15,"pl-en"],[22,27,"pl-k"],[35,41,"pl-k"],[51,56,"pl-k"]],[[7,15,"pl-en"],[22,28,"pl-k"],[36,42,"pl-k"],[52,58,"pl-k"]],[[7,15,"pl-en"],[22,28,"pl-k"],[29,33,"pl-k"],[41,47,"pl-k"],[57,63,"pl-k"],[64,68,"pl-k"]],[],[[2,22,"pl-c"],[2,4,"pl-c"]],[],[[1,6,"pl-k"]],[[0,9,"pl-k"],[10,17,"pl-en"]],[[0,16,"pl-en"],[17,20,"pl-k"],[22,27,"pl-k"],[28,32,"pl-k"],[34,39,"pl-k"]],[[0,17,"pl-en"],[22,29,"pl-k"]],[[0,4,"pl-k"],[5,30,"pl-en"],[31,34,"pl-k"],[36,41,"pl-k"],[42,46,"pl-k"],[48,53,"pl-k"]],[[0,4,"pl-k"],[5,23,"pl-en"],[24,29,"pl-k"],[30,34,"pl-k"],[37,42,"pl-k"],[43,47,"pl-k"]],[[0,4,"pl-k"],[5,26,"pl-en"]],[[0,4,"pl-k"],[5,23,"pl-en"],[24,29,"pl-k"],[30,34,"pl-k"],[37,41,"pl-k"]],[[0,4,"pl-k"],[5,23,"pl-en"],[24,29,"pl-k"],[30,34,"pl-k"],[37,40,"pl-k"]],[[0,4,"pl-k"],[5,23,"pl-en"],[24,29,"pl-k"],[30,34,"pl-k"],[37,42,"pl-k"],[43,47,"pl-k"]],[[0,4,"pl-k"],[5,24,"pl-en"],[29,35,"pl-k"],[36,41,"pl-c1"]],[[0,4,"pl-k"],[5,50,"pl-en"]],[[0,4,"pl-k"],[5,30,"pl-en"]],[[0,4,"pl-k"],[5,21,"pl-en"]],[[0,3,"pl-k"],[5,17,"pl-en"],[22,28,"pl-k"],[29,30,"pl-c1"]],[],[[0,3,"pl-k"],[28,62,"pl-en"],[67,73,"pl-k"],[74,75,"pl-c1"]],[[0,5,"pl-k"],[21,26,"pl-k"],[28,58,"pl-en"],[63,69,"pl-k"],[70,77,"pl-c1"]],[[0,3,"pl-k"],[28,67,"pl-en"],[72,78,"pl-k"],[79,80,"pl-c1"]],[[0,5,"pl-k"],[28,63,"pl-en"],[68,74,"pl-k"],[75,82,"pl-c1"]],[],[[0,3,"pl-k"],[4,20,"pl-en"],[21,26,"pl-k"],[27,31,"pl-k"],[34,37,"pl-k"],[53,59,"pl-k"],[60,61,"pl-c1"]],[],[[2,22,"pl-c"],[2,4,"pl-c"]],[[1,5,"pl-k"],[6,31,"pl-c"],[6,8,"pl-c"]],[],[[1,3,"pl-k"]],[[1,3,"pl-k"]],[[1,6,"pl-k"]],[[1,7,"pl-k"],[8,37,"pl-en"]],[[1,5,"pl-k"],[6,14,"pl-c"],[6,8,"pl-c"]],[[1,7,"pl-k"],[8,34,"pl-en"]],[[1,6,"pl-k"],[7,18,"pl-c"],[7,9,"pl-c"]],[[1,6,"pl-k"],[7,69,"pl-c"],[7,9,"pl-c"]],[[1,6,"pl-k"],[7,36,"pl-c"],[7,9,"pl-c"]],[],[[0,9,"pl-k"],[10,38,"pl-en"]],[[0,31,"pl-c"],[0,2,"pl-c"]],[[28,47,"pl-en"]],[[4,10,"pl-k"]],[[4,10,"pl-k"]],[],[[2,43,"pl-c"],[2,4,"pl-c"]],[],[[0,9,"pl-k"],[10,17,"pl-en"]],[[0,9,"pl-k"]],[[4,93,"pl-c"],[4,6,"pl-c"]],[[4,103,"pl-c"],[4,6,"pl-c"]],[[4,9,"pl-k"],[43,46,"pl-k"]],[],[[17,29,"pl-en"]],[[8,14,"pl-k"]],[[8,14,"pl-k"]],[],[[17,29,"pl-en"]],[[8,14,"pl-k"]],[[8,14,"pl-k"]],[],[[2,14,"pl-c"],[2,4,"pl-c"]],[[0,9,"pl-k"],[10,16,"pl-en"]],[[1,7,"pl-k"],[8,41,"pl-en"]],[[4,7,"pl-k"],[8,12,"pl-k"]],[[14,22,"pl-en"]],[],[],[[8,10,"pl-k"],[40,81,"pl-c"],[40,42,"pl-c"]],[[12,18,"pl-k"],[19,23,"pl-c1"]],[],[[8,10,"pl-k"],[39,80,"pl-c"],[39,41,"pl-c"]],[[14,31,"pl-c1"],[35,46,"pl-smi"],[49,50,"pl-c1"]],[[18,34,"pl-smi"],[43,77,"pl-smi"]],[[19,36,"pl-c1"],[40,51,"pl-smi"]],[[12,18,"pl-k"],[19,23,"pl-c1"]],[],[[8,14,"pl-k"],[15,20,"pl-c1"]],[],[],[[1,7,"pl-k"]],[[21,25,"pl-k"],[26,40,"pl-en"]],[[14,39,"pl-smi"],[42,47,"pl-c1"]],[[8,13,"pl-k"],[14,34,"pl-smi"],[38,74,"pl-c"],[38,40,"pl-c"]],[],[[1,5,"pl-k"],[6,37,"pl-c"],[6,8,"pl-c"]],[[4,8,"pl-k"],[9,23,"pl-en"]],[[1,6,"pl-k"],[7,38,"pl-c"],[7,9,"pl-c"]],[[2,21,"pl-c"],[2,4,"pl-c"]],[],[[0,9,"pl-k"]],[[4,9,"pl-k"],[10,19,"pl-k"],[20,26,"pl-en"],[26,27,"pl-k"]],[[4,94,"pl-c"],[4,6,"pl-c"]],[[4,81,"pl-c"],[4,6,"pl-c"]],[[4,7,"pl-k"],[8,15,"pl-en"],[16,21,"pl-k"],[22,26,"pl-k"],[33,38,"pl-k"],[39,43,"pl-k"],[51,55,"pl-k"]],[[8,13,"pl-k"],[14,18,"pl-k"]],[[8,13,"pl-k"],[14,18,"pl-k"]],[],[[8,13,"pl-k"],[34,37,"pl-s"],[34,35,"pl-pds"],[36,37,"pl-pds"]],[[12,14,"pl-k"],[51,58,"pl-c1"],[69,76,"pl-c1"]],[[25,28,"pl-s"],[25,26,"pl-pds"],[27,28,"pl-pds"]],[[16,22,"pl-k"],[23,24,"pl-c1"]],[],[],[],[],[],[[8,13,"pl-k"]],[[12,14,"pl-k"],[24,27,"pl-s"],[24,25,"pl-pds"],[26,27,"pl-pds"]],[[16,18,"pl-k"]],[[20,26,"pl-k"],[27,28,"pl-c1"]],[],[],[[27,28,"pl-c1"]],[[14,18,"pl-k"],[19,21,"pl-k"],[58,65,"pl-c1"],[76,83,"pl-c1"]],[[32,35,"pl-s"],[32,33,"pl-pds"],[34,35,"pl-pds"]],[],[],[[14,18,"pl-k"]],[[29,61,"pl-c"],[29,31,"pl-c"]],[[29,61,"pl-c"],[29,31,"pl-c"]],[],[],[],[[8,13,"pl-k"],[23,26,"pl-s"],[23,24,"pl-pds"],[25,26,"pl-pds"]],[],[],[[8,14,"pl-k"]],[],[],[[4,98,"pl-c"],[4,6,"pl-c"]],[[4,8,"pl-k"],[9,19,"pl-en"],[20,25,"pl-k"],[26,30,"pl-k"],[38,43,"pl-k"],[74,78,"pl-k"]],[[8,12,"pl-k"]],[[8,10,"pl-k"],[20,25,"pl-c1"]],[[12,18,"pl-k"],[19,23,"pl-c1"]],[[8,11,"pl-k"],[13,17,"pl-k"]],[[12,14,"pl-k"],[16,23,"pl-c1"],[35,40,"pl-c1"]],[[16,22,"pl-k"],[23,27,"pl-c1"]],[[8,14,"pl-k"],[15,20,"pl-c1"]],[],[],[],[[4,12,"pl-k"],[13,17,"pl-k"],[18,22,"pl-k"],[23,27,"pl-en"],[28,36,"pl-k"],[37,41,"pl-k"],[42,46,"pl-k"],[50,58,"pl-k"],[59,63,"pl-k"],[64,68,"pl-k"]],[[8,14,"pl-k"],[21,22,"pl-c1"]],[],[],[[4,87,"pl-c"],[4,6,"pl-c"]],[],[[4,12,"pl-k"],[13,17,"pl-k"],[18,22,"pl-k"],[23,27,"pl-en"],[28,33,"pl-k"],[34,38,"pl-k"]],[[8,16,"pl-k"],[17,21,"pl-k"],[22,26,"pl-k"],[34,38,"pl-c1"]],[[8,12,"pl-k"]],[[8,13,"pl-k"]],[[29,30,"pl-c1"],[45,61,"pl-c"],[45,47,"pl-c"]],[[8,14,"pl-k"]],[],[],[[4,12,"pl-k"],[13,17,"pl-k"],[18,22,"pl-k"],[23,27,"pl-en"],[28,33,"pl-k"]],[[8,14,"pl-k"],[15,19,"pl-c1"],[20,24,"pl-c1"],[25,29,"pl-c1"],[34,40,"pl-smi"],[43,47,"pl-c1"],[52,58,"pl-smi"],[59,64,"pl-c1"],[74,80,"pl-smi"]],[],[],[[4,12,"pl-k"],[13,17,"pl-k"],[18,22,"pl-k"],[23,27,"pl-en"],[28,33,"pl-k"],[71,77,"pl-c1"]],[[8,16,"pl-k"],[17,21,"pl-k"],[22,26,"pl-k"],[37,38,"pl-c1"]],[[8,12,"pl-k"],[24,29,"pl-c1"]],[[8,11,"pl-k"],[13,17,"pl-k"],[28,33,"pl-c1"]],[[22,26,"pl-c1"],[36,40,"pl-c1"]],[],[[8,14,"pl-k"]],[],[],[[4,12,"pl-k"],[13,17,"pl-k"],[18,22,"pl-k"],[23,27,"pl-en"],[28,33,"pl-k"]],[[8,16,"pl-k"],[17,21,"pl-k"],[22,26,"pl-k"],[37,38,"pl-c1"]],[[8,11,"pl-k"],[13,18,"pl-k"]],[[22,26,"pl-c1"],[36,40,"pl-c1"]],[],[[8,14,"pl-k"]],[],[[2,14,"pl-c"],[2,4,"pl-c"]],[[0,9,"pl-k"],[10,16,"pl-en"]],[[4,8,"pl-k"],[9,30,"pl-en"]],[[8,10,"pl-k"],[18,30,"pl-smi"],[31,35,"pl-c1"],[40,46,"pl-c1"],[53,74,"pl-smi"]],[[12,14,"pl-k"],[17,27,"pl-c1"],[40,46,"pl-smi"],[47,52,"pl-c1"],[62,69,"pl-smi"],[70,71,"pl-c1"],[74,78,"pl-c1"],[86,100,"pl-smi"]],[[16,22,"pl-k"],[23,27,"pl-c1"]],[[12,14,"pl-k"],[16,26,"pl-c1"],[39,45,"pl-smi"],[46,51,"pl-c1"],[61,68,"pl-smi"],[69,70,"pl-c1"],[73,78,"pl-c1"],[86,100,"pl-smi"]],[[16,22,"pl-k"],[23,27,"pl-c1"]],[],[[8,14,"pl-k"],[15,20,"pl-c1"]],[],[],[[4,20,"pl-en"],[21,26,"pl-k"],[41,46,"pl-k"],[47,51,"pl-k"],[59,62,"pl-k"]],[],[[8,10,"pl-k"],[19,30,"pl-smi"]],[[12,14,"pl-k"],[22,38,"pl-smi"],[39,43,"pl-c1"],[55,67,"pl-smi"],[68,72,"pl-c1"]],[[25,41,"pl-smi"],[48,60,"pl-smi"],[61,65,"pl-c1"]],[[16,30,"pl-c"],[16,18,"pl-c"]],[[16,18,"pl-k"],[20,32,"pl-c1"],[38,44,"pl-k"]],[],[[22,34,"pl-smi"],[35,44,"pl-c1"]],[[22,41,"pl-smi"]],[[28,32,"pl-c1"]],[[16,49,"pl-c1"]],[],[[10,14,"pl-k"]],[[12,14,"pl-k"],[22,34,"pl-smi"],[41,60,"pl-smi"]],[[16,62,"pl-c"],[16,18,"pl-c"]],[[22,41,"pl-smi"]],[[28,32,"pl-c1"]],[[16,49,"pl-c1"]],[[14,18,"pl-k"],[19,21,"pl-k"],[29,45,"pl-smi"],[46,50,"pl-c1"],[62,81,"pl-smi"]],[[29,51,"pl-smi"],[52,56,"pl-c1"],[57,61,"pl-c1"],[62,66,"pl-c1"],[73,85,"pl-smi"],[93,112,"pl-smi"],[115,119,"pl-c1"]],[[29,51,"pl-smi"],[52,55,"pl-c1"]],[[16,18,"pl-k"],[20,32,"pl-c1"],[38,44,"pl-k"]],[[16,71,"pl-c"],[16,18,"pl-c"]],[[22,38,"pl-smi"],[39,44,"pl-c1"]],[[22,38,"pl-smi"],[39,45,"pl-c1"],[52,68,"pl-smi"],[69,72,"pl-c1"]],[[26,38,"pl-smi"],[39,44,"pl-c1"],[54,66,"pl-smi"],[67,72,"pl-c1"],[83,102,"pl-smi"]],[[22,38,"pl-smi"],[39,48,"pl-c1"]],[],[],[],[],[[4,43,"pl-en"],[44,48,"pl-c1"],[50,99,"pl-c"],[50,52,"pl-c"]],[[4,42,"pl-en"],[43,70,"pl-s"],[43,44,"pl-pds"],[69,70,"pl-pds"]],[[4,44,"pl-en"],[45,72,"pl-s"],[45,46,"pl-pds"],[71,72,"pl-pds"]],[],[[4,21,"pl-en"]],[[8,10,"pl-k"]],[[18,37,"pl-smi"]],[],[[12,14,"pl-k"],[23,34,"pl-smi"]],[[16,24,"pl-c"],[16,18,"pl-c"]],[[22,44,"pl-smi"],[45,51,"pl-c1"],[52,56,"pl-c1"],[63,75,"pl-smi"]],[[22,38,"pl-smi"],[39,44,"pl-c1"]],[[22,33,"pl-smi"],[36,40,"pl-c1"]],[[14,18,"pl-k"],[19,21,"pl-k"],[29,45,"pl-smi"],[46,51,"pl-c1"]],[[16,45,"pl-c"],[16,18,"pl-c"]],[[22,44,"pl-smi"],[45,51,"pl-c1"],[52,56,"pl-c1"],[63,75,"pl-smi"]],[],[],[[1,3,"pl-k"]],[[12,14,"pl-k"],[15,39,"pl-c1"],[44,45,"pl-c1"]],[[1,5,"pl-k"]],[[12,14,"pl-k"],[15,38,"pl-c1"]],[[1,6,"pl-k"]],[[25,50,"pl-smi"]],[[16,49,"pl-c1"]],[[46,99,"pl-s"],[46,47,"pl-pds"],[98,99,"pl-pds"]],[[48,99,"pl-s"],[48,49,"pl-pds"],[98,99,"pl-pds"]],[[48,95,"pl-s"],[48,49,"pl-pds"],[94,95,"pl-pds"]],[[48,53,"pl-c1"]],[[22,47,"pl-smi"],[50,55,"pl-c1"]],[],[],[[12,45,"pl-c1"]],[],[],[],[],[],[],[],[[13,21,"pl-k"],[22,26,"pl-en"],[29,34,"pl-k"],[37,43,"pl-k"]],[],[[4,18,"pl-en"],[19,23,"pl-k"],[32,37,"pl-k"]],[],[],[],[[4,46,"pl-en"]],[],[],[[26,34,"pl-k"],[36,41,"pl-k"],[42,46,"pl-k"]],[],[[8,14,"pl-k"],[16,20,"pl-c1"]],[],[],[[4,22,"pl-en"],[38,43,"pl-k"],[44,48,"pl-k"],[56,64,"pl-k"],[71,76,"pl-k"]],[[23,28,"pl-k"],[43,46,"pl-k"]],[],[],[[30,37,"pl-c1"],[39,79,"pl-c"],[39,41,"pl-c"]],[[41,53,"pl-smi"]],[[41,54,"pl-smi"]],[[41,47,"pl-smi"]],[[41,52,"pl-smi"]],[[41,52,"pl-smi"]],[[41,51,"pl-smi"]],[[41,54,"pl-smi"]],[[41,60,"pl-smi"]],[[41,50,"pl-smi"]],[],[],[],[],[],[],[[4,22,"pl-en"],[23,28,"pl-k"]],[],[[9,13,"pl-c1"]],[],[],[[4,43,"pl-en"],[44,49,"pl-c1"],[51,82,"pl-c"],[51,53,"pl-c"]],[[24,32,"pl-k"],[34,39,"pl-k"]],[[22,30,"pl-k"]],[[30,36,"pl-smi"]],[[30,36,"pl-smi"]],[[30,43,"pl-smi"]],[[30,41,"pl-smi"]],[],[[8,10,"pl-k"],[29,30,"pl-c1"]],[[33,38,"pl-c1"]],[[8,14,"pl-k"],[16,20,"pl-c1"]],[],[],[],[[24,32,"pl-k"],[34,39,"pl-k"],[40,44,"pl-k"]],[],[[8,72,"pl-c"],[8,10,"pl-c"]],[[8,10,"pl-k"],[29,30,"pl-c1"]],[[26,32,"pl-c1"],[43,46,"pl-s"],[43,44,"pl-pds"],[45,46,"pl-pds"],[58,61,"pl-s"],[58,59,"pl-pds"],[60,61,"pl-pds"]],[[12,76,"pl-c"],[12,14,"pl-c"]],[[33,38,"pl-c1"]],[],[[8,14,"pl-k"],[16,20,"pl-c1"]],[],[],[[4,8,"pl-k"],[19,27,"pl-k"],[29,34,"pl-k"],[52,57,"pl-k"]],[[8,96,"pl-c"],[8,10,"pl-c"]],[[8,10,"pl-k"],[27,33,"pl-smi"]],[[12,18,"pl-k"],[34,40,"pl-smi"]],[[8,13,"pl-k"],[14,17,"pl-k"],[29,35,"pl-c1"],[50,56,"pl-smi"]],[[8,10,"pl-k"],[23,24,"pl-c1"]],[[12,18,"pl-k"],[30,31,"pl-c1"]],[[8,13,"pl-k"],[14,17,"pl-k"],[36,43,"pl-c1"],[50,56,"pl-smi"]],[[8,10,"pl-k"],[23,24,"pl-c1"]],[[12,18,"pl-k"],[30,31,"pl-c1"]],[[8,14,"pl-k"],[37,50,"pl-smi"]],[],[],[[4,31,"pl-c"],[4,6,"pl-c"]],[[24,42,"pl-en"]],[[8,14,"pl-k"]],[[8,14,"pl-k"]],[],[[2,21,"pl-c"],[2,4,"pl-c"]],[[0,9,"pl-k"]],[[4,9,"pl-k"],[10,19,"pl-k"],[20,26,"pl-en"],[26,27,"pl-k"]],[[4,37,"pl-c"],[4,6,"pl-c"]],[[4,8,"pl-k"],[9,28,"pl-en"],[29,34,"pl-k"],[50,55,"pl-k"]],[[8,77,"pl-c"],[8,10,"pl-c"]],[[8,68,"pl-c"],[8,10,"pl-c"]],[[8,13,"pl-k"],[14,17,"pl-k"],[29,35,"pl-smi"],[36,43,"pl-c1"],[49,55,"pl-smi"],[57,61,"pl-c1"]],[[8,10,"pl-k"],[18,19,"pl-c1"]],[[12,18,"pl-k"],[25,26,"pl-c1"]],[[8,10,"pl-k"],[16,22,"pl-smi"],[31,37,"pl-smi"]],[[12,18,"pl-k"],[24,30,"pl-smi"],[38,44,"pl-smi"]],[[8,14,"pl-k"],[20,33,"pl-smi"],[41,54,"pl-smi"]],[],[],[[4,43,"pl-c"],[4,6,"pl-c"]],[[4,8,"pl-k"],[9,29,"pl-en"],[30,35,"pl-k"],[51,56,"pl-k"]],[[8,13,"pl-k"],[14,17,"pl-k"],[24,35,"pl-c1"],[41,53,"pl-smi"],[60,72,"pl-smi"]],[[8,10,"pl-k"],[18,19,"pl-c1"]],[[12,18,"pl-k"],[25,26,"pl-c1"]],[[8,14,"pl-k"],[15,34,"pl-c1"]],[],[],[[4,48,"pl-c"],[4,6,"pl-c"]],[[4,8,"pl-k"],[9,28,"pl-en"],[29,34,"pl-k"],[50,55,"pl-k"]],[[8,13,"pl-k"],[14,17,"pl-k"],[24,35,"pl-c1"],[41,47,"pl-smi"],[54,60,"pl-smi"]],[[8,10,"pl-k"],[18,19,"pl-c1"]],[[12,18,"pl-k"],[25,26,"pl-c1"]],[[8,14,"pl-k"],[15,35,"pl-c1"]],[],[],[[4,44,"pl-en"],[45,72,"pl-s"],[45,46,"pl-pds"],[71,72,"pl-pds"]],[[4,8,"pl-k"],[9,24,"pl-en"]],[[8,19,"pl-k"],[20,24,"pl-k"],[33,99,"pl-c"],[33,35,"pl-c"]],[[8,19,"pl-k"],[20,24,"pl-k"],[33,66,"pl-c"],[33,35,"pl-c"]],[[1,6,"pl-k"]],[[8,10,"pl-k"]],[[12,18,"pl-c1"],[37,42,"pl-c1"],[46,63,"pl-c1"],[67,79,"pl-smi"],[83,88,"pl-c1"]],[[12,18,"pl-k"]],[],[[8,12,"pl-k"],[19,21,"pl-s"],[19,20,"pl-pds"],[20,21,"pl-pds"]],[[8,27,"pl-c"],[8,10,"pl-c"]],[[12,18,"pl-k"],[27,130,"pl-c"],[27,29,"pl-c"]],[[16,20,"pl-k"],[47,55,"pl-s"],[47,48,"pl-pds"],[54,55,"pl-pds"],[57,62,"pl-k"]],[[16,20,"pl-k"],[47,55,"pl-s"],[47,48,"pl-pds"],[54,55,"pl-pds"],[57,62,"pl-k"]],[[16,20,"pl-k"],[47,55,"pl-s"],[47,48,"pl-pds"],[54,55,"pl-pds"],[57,62,"pl-k"]],[[16,20,"pl-k"],[47,55,"pl-s"],[47,48,"pl-pds"],[54,55,"pl-pds"],[57,62,"pl-k"]],[[16,20,"pl-k"],[47,55,"pl-s"],[47,48,"pl-pds"],[54,55,"pl-pds"],[57,62,"pl-k"]],[[16,20,"pl-k"],[47,55,"pl-s"],[47,48,"pl-pds"],[54,55,"pl-pds"],[57,62,"pl-k"]],[[16,20,"pl-k"],[47,55,"pl-s"],[47,48,"pl-pds"],[54,55,"pl-pds"],[57,62,"pl-k"]],[[16,20,"pl-k"],[47,55,"pl-s"],[47,48,"pl-pds"],[54,55,"pl-pds"],[57,62,"pl-k"]],[[16,20,"pl-k"],[47,55,"pl-s"],[47,48,"pl-pds"],[54,55,"pl-pds"],[57,62,"pl-k"]],[[16,20,"pl-k"],[47,55,"pl-s"],[47,48,"pl-pds"],[54,55,"pl-pds"],[57,62,"pl-k"]],[[16,20,"pl-k"],[36,46,"pl-c"],[36,38,"pl-c"]],[[16,20,"pl-k"]],[[16,20,"pl-k"]],[[16,23,"pl-k"],[47,52,"pl-s"],[47,48,"pl-pds"],[51,52,"pl-pds"]],[],[[8,26,"pl-c"],[8,10,"pl-c"]],[[13,19,"pl-s"],[13,14,"pl-pds"],[14,18,"pl-cce"],[18,19,"pl-pds"]],[[1,6,"pl-k"],[7,36,"pl-c"],[7,9,"pl-c"]],[],[[1,6,"pl-k"]],[[8,10,"pl-k"]],[[12,19,"pl-c1"],[20,27,"pl-c1"],[40,45,"pl-c1"],[49,66,"pl-c1"],[70,82,"pl-smi"],[86,91,"pl-c1"]],[[12,18,"pl-k"]],[],[[8,14,"pl-k"],[15,21,"pl-k"],[22,35,"pl-en"]],[],[],[],[],[[12,25,"pl-en"]],[[31,43,"pl-c1"]],[],[[16,42,"pl-c1"]],[[39,50,"pl-smi"]],[],[[39,50,"pl-smi"]],[],[],[],[],[[1,7,"pl-k"],[8,24,"pl-en"],[25,26,"pl-v"]],[],[[8,27,"pl-c"],[8,10,"pl-c"]],[[8,14,"pl-k"]],[[12,16,"pl-k"],[37,53,"pl-c1"],[108,113,"pl-k"]],[[12,16,"pl-k"],[37,53,"pl-c1"],[108,113,"pl-k"]],[[12,16,"pl-k"],[37,53,"pl-c1"],[108,113,"pl-k"]],[[12,16,"pl-k"],[37,53,"pl-c1"],[108,113,"pl-k"]],[[12,16,"pl-k"],[37,53,"pl-c1"],[108,113,"pl-k"]],[[12,16,"pl-k"],[37,53,"pl-c1"],[108,113,"pl-k"]],[[12,16,"pl-k"],[37,53,"pl-c1"],[54,55,"pl-c1"],[108,113,"pl-k"]],[[12,16,"pl-k"],[37,53,"pl-c1"],[108,113,"pl-k"]],[[12,16,"pl-k"],[37,53,"pl-c1"],[108,113,"pl-k"]],[[12,16,"pl-k"],[37,53,"pl-c1"],[108,113,"pl-k"]],[[12,16,"pl-k"],[37,53,"pl-c1"],[131,136,"pl-k"]],[[12,16,"pl-k"]],[[12,16,"pl-k"],[32,42,"pl-c"],[32,34,"pl-c"]],[[12,19,"pl-k"],[37,53,"pl-c1"],[57,68,"pl-smi"]],[],[[12,30,"pl-c"],[12,14,"pl-c"]],[[1,6,"pl-k"],[7,39,"pl-c"],[7,9,"pl-c"]],[],[],[],[[16,21,"pl-k"],[46,69,"pl-en"]],[[8,14,"pl-k"],[27,32,"pl-k"]],[[8,14,"pl-k"]],[],[],[[11,35,"pl-en"]],[[1,7,"pl-k"]],[],[[8,12,"pl-k"],[29,52,"pl-c1"]],[[8,11,"pl-k"],[12,16,"pl-k"]],[[12,14,"pl-k"],[21,30,"pl-c1"]],[[16,22,"pl-k"]],[[8,27,"pl-c"],[8,10,"pl-c"]],[[8,46,"pl-c1"],[47,62,"pl-s"],[47,48,"pl-pds"],[61,62,"pl-pds"]],[[8,11,"pl-k"]],[[12,17,"pl-k"]],[[10,15,"pl-k"],[21,30,"pl-c1"]],[[12,18,"pl-k"],[22,26,"pl-c1"]],[[10,15,"pl-k"]],[[12,18,"pl-k"],[23,28,"pl-c1"]],[[10,15,"pl-k"],[16,21,"pl-k"],[22,26,"pl-k"]],[[12,18,"pl-k"]],[[10,15,"pl-k"]],[[12,18,"pl-k"],[19,38,"pl-s"],[19,20,"pl-pds"],[37,38,"pl-pds"]],[],[],[[0,18,"pl-c"],[0,2,"pl-c"]],[[1,5,"pl-k"],[7,38,"pl-c"],[7,9,"pl-c"]],[[8,14,"pl-k"],[15,17,"pl-s"],[15,16,"pl-pds"],[16,17,"pl-pds"]],[[1,6,"pl-k"],[7,38,"pl-c"],[7,9,"pl-c"]],[],[[2,14,"pl-c"],[2,4,"pl-c"]],[],[[0,9,"pl-k"],[10,16,"pl-en"]],[[4,47,"pl-c"],[4,6,"pl-c"]],[[4,7,"pl-k"],[8,15,"pl-en"],[16,21,"pl-k"]],[[8,26,"pl-c1"],[29,35,"pl-c1"]],[[8,14,"pl-k"],[15,16,"pl-c1"]],[],[],[[4,34,"pl-c"],[4,6,"pl-c"]],[[4,7,"pl-k"],[8,20,"pl-en"],[21,26,"pl-k"]],[[8,57,"pl-c1"]],[[8,14,"pl-k"],[15,16,"pl-c1"]],[],[],[[1,6,"pl-k"]],[[4,8,"pl-k"],[9,25,"pl-en"],[30,36,"pl-k"],[37,63,"pl-c1"]],[[1,5,"pl-k"],[6,35,"pl-c"],[6,8,"pl-c"]],[[1,6,"pl-k"]],[[4,9,"pl-k"],[10,20,"pl-en"]],[[4,11,"pl-k"]],[[8,18,"pl-en"]],[[8,19,"pl-en"]],[[4,12,"pl-k"]],[[8,11,"pl-k"]],[],[[4,79,"pl-c"],[4,6,"pl-c"]],[[4,99,"pl-c"],[4,6,"pl-c"]],[[4,8,"pl-k"],[9,25,"pl-en"]],[],[[22,24,"pl-smi"],[25,44,"pl-s"],[25,26,"pl-pds"],[43,44,"pl-pds"]],[[8,11,"pl-k"],[30,42,"pl-c1"]],[[12,18,"pl-k"],[19,24,"pl-k"],[25,28,"pl-k"],[42,44,"pl-c1"]],[[12,14,"pl-k"],[20,27,"pl-c1"],[28,29,"pl-c1"],[43,57,"pl-s"],[43,44,"pl-pds"],[54,56,"pl-cce"],[56,57,"pl-pds"],[62,63,"pl-c1"]],[[16,22,"pl-k"],[28,34,"pl-c1"],[73,76,"pl-s"],[73,74,"pl-pds"],[75,76,"pl-pds"]],[],[],[[8,14,"pl-k"],[15,20,"pl-c1"]],[],[[1,5,"pl-k"]],[[4,82,"pl-c"],[4,6,"pl-c"]],[[4,72,"pl-c"],[4,6,"pl-c"]],[[4,68,"pl-c"],[4,6,"pl-c"]],[[4,73,"pl-c"],[4,6,"pl-c"]],[[4,8,"pl-k"],[9,25,"pl-en"]],[[8,11,"pl-k"],[23,24,"pl-c1"]],[],[[8,14,"pl-c1"]],[[8,73,"pl-c"],[8,10,"pl-c"]],[[8,47,"pl-c"],[8,10,"pl-c"]],[[13,20,"pl-smi"],[21,27,"pl-smi"],[30,31,"pl-c1"]],[[8,76,"pl-c"],[8,10,"pl-c"]],[[8,69,"pl-c"],[8,10,"pl-c"]],[[12,13,"pl-c1"]],[[12,13,"pl-c1"]],[[12,13,"pl-c1"]],[[12,13,"pl-c1"],[17,23,"pl-c1"]],[[8,23,"pl-c"],[8,10,"pl-c"]],[[15,21,"pl-k"]],[[8,10,"pl-k"],[11,17,"pl-c1"],[23,38,"pl-c1"],[59,60,"pl-c1"],[62,63,"pl-c1"],[68,69,"pl-c1"]],[[25,99,"pl-s"],[25,26,"pl-pds"],[26,28,"pl-cce"],[96,98,"pl-cce"],[98,99,"pl-pds"]],[[12,18,"pl-k"],[19,24,"pl-c1"]],[],[[8,60,"pl-c"],[8,10,"pl-c"]],[[8,14,"pl-k"],[22,29,"pl-smi"],[30,36,"pl-smi"],[52,53,"pl-c1"]],[],[[1,5,"pl-k"]],[[4,8,"pl-k"],[9,25,"pl-en"],[30,36,"pl-k"],[39,56,"pl-c1"],[62,63,"pl-c1"]],[[1,5,"pl-k"]],[[4,8,"pl-k"],[9,25,"pl-en"],[30,36,"pl-k"],[37,42,"pl-c1"]],[[1,6,"pl-k"],[7,18,"pl-c"],[7,9,"pl-c"]],[[1,6,"pl-k"],[7,36,"pl-c"],[7,9,"pl-c"]],[],[[4,8,"pl-k"],[9,40,"pl-en"],[41,46,"pl-k"]],[[8,10,"pl-k"],[11,20,"pl-c1"],[21,44,"pl-c1"],[47,52,"pl-c1"],[56,79,"pl-c1"],[82,85,"pl-c1"]],[[11,34,"pl-c1"],[37,40,"pl-c1"]],[[12,35,"pl-c1"],[38,47,"pl-c1"]],[],[],[[69,95,"pl-c"],[69,71,"pl-c"]],[],[[4,38,"pl-en"]],[[23,32,"pl-c1"],[33,37,"pl-c1"]],[],[],[[4,38,"pl-en"],[65,73,"pl-k"]],[[8,10,"pl-k"],[18,33,"pl-smi"]],[[18,25,"pl-c1"]],[],[[14,29,"pl-smi"],[32,37,"pl-c1"]],[[23,32,"pl-c1"],[33,37,"pl-c1"]],[],[],[[4,43,"pl-en"],[44,48,"pl-c1"],[50,99,"pl-c"],[50,52,"pl-c"]],[[4,42,"pl-en"],[43,70,"pl-s"],[43,44,"pl-pds"],[69,70,"pl-pds"]],[[4,44,"pl-en"],[45,72,"pl-s"],[45,46,"pl-pds"],[71,72,"pl-pds"]],[],[[4,100,"pl-c"],[4,6,"pl-c"]],[[4,100,"pl-c"],[4,6,"pl-c"]],[[4,76,"pl-c"],[4,6,"pl-c"]],[[4,8,"pl-k"],[9,34,"pl-en"]],[[1,3,"pl-k"]],[[8,10,"pl-k"],[11,35,"pl-c1"],[40,41,"pl-c1"]],[[1,5,"pl-k"]],[[8,10,"pl-k"],[11,34,"pl-c1"]],[],[],[[12,16,"pl-c1"],[18,27,"pl-c1"]],[[18,37,"pl-smi"],[38,47,"pl-c1"],[50,53,"pl-c1"],[56,61,"pl-c1"]],[],[[23,31,"pl-c1"]],[],[],[],[],[],[[2,21,"pl-c"],[2,4,"pl-c"]],[[0,9,"pl-k"]],[[4,9,"pl-k"],[10,19,"pl-k"],[20,26,"pl-en"],[26,27,"pl-k"]],[],[[1,3,"pl-k"]],[[4,10,"pl-k"],[11,32,"pl-en"]],[],[[8,14,"pl-k"],[15,19,"pl-k"],[20,25,"pl-en"]],[[8,14,"pl-k"],[15,19,"pl-k"],[20,39,"pl-en"]],[[8,14,"pl-k"],[15,19,"pl-k"],[20,35,"pl-en"]],[],[[1,5,"pl-k"],[6,67,"pl-c"],[6,8,"pl-c"]],[],[[4,8,"pl-k"],[9,20,"pl-en"],[21,26,"pl-k"]],[],[[1,6,"pl-k"]],[],[[4,10,"pl-k"],[11,21,"pl-en"]],[],[],[[8,13,"pl-k"],[14,18,"pl-k"]],[],[[4,70,"pl-c"],[4,6,"pl-c"]],[[4,61,"pl-c"],[4,6,"pl-c"]],[[4,56,"pl-c"],[4,6,"pl-c"]],[],[[13,24,"pl-k"]],[[13,50,"pl-s"],[13,14,"pl-pds"],[49,50,"pl-pds"]],[[13,24,"pl-k"],[59,85,"pl-s"],[59,60,"pl-pds"],[84,85,"pl-pds"]],[[13,24,"pl-k"]],[[13,54,"pl-s"],[13,14,"pl-pds"],[53,54,"pl-pds"]],[[13,24,"pl-k"],[63,85,"pl-s"],[63,64,"pl-pds"],[84,85,"pl-pds"]],[],[],[[4,10,"pl-k"],[11,32,"pl-en"]],[],[[8,14,"pl-k"],[29,44,"pl-en"]],[[12,117,"pl-c"],[12,14,"pl-c"]],[[12,73,"pl-c"],[12,14,"pl-c"]],[[12,40,"pl-c1"]],[[12,18,"pl-k"],[19,23,"pl-k"],[34,38,"pl-c1"]],[],[[16,34,"pl-c1"]],[[16,18,"pl-k"]],[[20,24,"pl-k"],[36,41,"pl-c1"]],[[20,23,"pl-k"],[24,30,"pl-c1"],[35,36,"pl-c1"],[42,57,"pl-c1"]],[[24,26,"pl-k"],[42,57,"pl-smi"],[59,72,"pl-smi"],[90,92,"pl-smi"]],[[28,39,"pl-c1"],[54,58,"pl-smi"]],[[39,43,"pl-c1"]],[[28,33,"pl-k"]],[],[],[[20,22,"pl-k"],[35,40,"pl-c1"]],[[24,35,"pl-c1"],[36,68,"pl-s"],[36,37,"pl-pds"],[67,68,"pl-pds"]],[[20,22,"pl-k"],[23,39,"pl-c1"],[52,61,"pl-smi"]],[[24,51,"pl-c1"]],[],[[26,31,"pl-c1"]],[],[[12,21,"pl-c1"]],[],[],[[8,14,"pl-k"],[15,19,"pl-k"],[20,39,"pl-en"]],[[8,14,"pl-k"],[15,19,"pl-k"],[20,35,"pl-en"]],[],[[8,29,"pl-en"]],[[20,24,"pl-c1"]],[[12,69,"pl-c"],[12,14,"pl-c"]],[[12,86,"pl-c"],[12,14,"pl-c"]],[[28,30,"pl-c1"],[33,37,"pl-c1"]],[[12,53,"pl-c"],[12,14,"pl-c"]],[[26,53,"pl-c1"]],[[12,50,"pl-c"],[12,14,"pl-c"]],[[12,35,"pl-c1"]],[],[[12,82,"pl-c"],[12,14,"pl-c"]],[[12,78,"pl-c"],[12,14,"pl-c"]],[],[[12,53,"pl-c"],[12,14,"pl-c"]],[[12,69,"pl-c"],[12,14,"pl-c"]],[[12,85,"pl-c"],[12,14,"pl-c"]],[[41,59,"pl-c1"]],[[12,30,"pl-c1"]],[[16,27,"pl-c1"],[28,54,"pl-s"],[28,29,"pl-pds"],[53,54,"pl-pds"]],[[16,18,"pl-k"],[19,35,"pl-c1"],[48,57,"pl-smi"]],[[20,47,"pl-c1"]],[[16,25,"pl-c1"],[41,113,"pl-c"],[41,43,"pl-c"]],[],[],[[12,38,"pl-c"],[12,14,"pl-c"]],[[12,65,"pl-c"],[12,14,"pl-c"]],[[12,81,"pl-c"],[12,14,"pl-c"]],[[12,72,"pl-c"],[12,14,"pl-c"]],[[35,46,"pl-c1"],[59,62,"pl-k"],[63,69,"pl-c1"]],[[16,18,"pl-k"],[19,25,"pl-c1"]],[[20,31,"pl-c1"],[32,79,"pl-s"],[32,33,"pl-pds"],[78,79,"pl-pds"]],[[20,22,"pl-k"],[23,39,"pl-c1"],[52,61,"pl-smi"]],[[24,51,"pl-c1"]],[[20,29,"pl-c1"]],[],[],[],[[12,74,"pl-c"],[12,14,"pl-c"]],[[12,67,"pl-c"],[12,14,"pl-c"]],[],[[12,73,"pl-c"],[12,14,"pl-c"]],[[32,44,"pl-c1"]],[],[[12,82,"pl-c"],[12,14,"pl-c"]],[[32,47,"pl-c1"]],[[12,76,"pl-c"],[12,14,"pl-c"]],[[12,88,"pl-c"],[12,14,"pl-c"]],[[34,53,"pl-c1"],[54,57,"pl-c1"]],[[12,86,"pl-c"],[12,14,"pl-c"]],[[12,84,"pl-c"],[12,14,"pl-c"]],[[12,82,"pl-c"],[12,14,"pl-c"]],[[12,87,"pl-c"],[12,14,"pl-c"]],[[31,48,"pl-c1"]],[[31,48,"pl-c1"]],[],[],[[8,14,"pl-k"],[15,19,"pl-k"],[20,25,"pl-en"]],[[12,14,"pl-k"]],[[16,67,"pl-c"],[16,18,"pl-c"]],[[16,43,"pl-c1"]],[[16,39,"pl-c1"]],[[16,34,"pl-c1"]],[[16,27,"pl-c1"]],[[16,28,"pl-c1"]],[[16,31,"pl-c1"]],[[16,35,"pl-c1"]],[[16,27,"pl-k"],[28,32,"pl-k"],[34,51,"pl-c1"]],[[16,27,"pl-k"],[28,32,"pl-k"],[34,51,"pl-c1"]],[[24,29,"pl-c1"]],[],[],[],[[8,30,"pl-en"],[35,40,"pl-c1"]],[],[[4,12,"pl-k"]],[[8,14,"pl-k"]],[[8,14,"pl-k"],[15,18,"pl-k"]],[[8,14,"pl-k"],[15,23,"pl-k"],[24,27,"pl-k"]],[[8,14,"pl-k"],[15,18,"pl-k"]],[[8,14,"pl-k"]],[[8,14,"pl-k"],[15,19,"pl-en"],[58,61,"pl-k"]],[[8,14,"pl-k"]],[[8,14,"pl-k"],[15,19,"pl-k"]],[[8,14,"pl-k"]],[[8,14,"pl-k"]],[],[],[],[[4,7,"pl-k"]],[[4,12,"pl-k"],[13,16,"pl-k"]],[[4,7,"pl-k"]],[],[[4,8,"pl-en"],[70,73,"pl-k"]],[],[[4,8,"pl-k"],[40,45,"pl-c1"]],[[49,50,"pl-c1"]],[[70,77,"pl-c1"]],[],[[1,5,"pl-k"],[6,33,"pl-c"],[6,8,"pl-c"]],[],[[4,10,"pl-k"],[11,21,"pl-en"]],[],[[8,11,"pl-k"]],[[8,13,"pl-k"],[14,18,"pl-k"]],[],[[40,76,"pl-s"],[40,41,"pl-pds"],[75,76,"pl-pds"]],[[40,77,"pl-s"],[40,41,"pl-pds"],[76,77,"pl-pds"]],[[40,78,"pl-s"],[40,41,"pl-pds"],[77,78,"pl-pds"]],[[41,82,"pl-s"],[41,42,"pl-pds"],[81,82,"pl-pds"]],[[41,79,"pl-s"],[41,42,"pl-pds"],[78,79,"pl-pds"]],[[41,88,"pl-s"],[41,42,"pl-pds"],[87,88,"pl-pds"]],[],[[4,10,"pl-k"],[11,32,"pl-en"]],[],[[8,14,"pl-k"],[15,19,"pl-k"]],[[8,14,"pl-k"],[15,21,"pl-k"],[22,31,"pl-en"]],[[8,14,"pl-k"],[15,22,"pl-c1"]],[[8,14,"pl-k"],[15,21,"pl-c1"]],[[8,14,"pl-k"],[15,19,"pl-k"]],[],[[8,14,"pl-k"],[15,19,"pl-k"],[20,32,"pl-en"],[33,36,"pl-k"]],[[12,17,"pl-k"],[18,22,"pl-k"],[31,49,"pl-s"],[31,32,"pl-pds"],[48,49,"pl-pds"]],[[12,15,"pl-k"],[21,27,"pl-c1"],[32,33,"pl-c1"],[39,54,"pl-c1"]],[],[[16,18,"pl-k"],[30,32,"pl-smi"]],[[31,35,"pl-smi"]],[[20,25,"pl-k"]],[],[],[[12,17,"pl-c1"]],[[12,23,"pl-c1"]],[[12,17,"pl-c1"]],[],[],[[8,14,"pl-k"],[15,19,"pl-k"],[20,39,"pl-en"]],[[26,29,"pl-k"],[30,34,"pl-k"]],[],[],[[8,14,"pl-k"],[15,19,"pl-k"],[20,35,"pl-en"]],[[12,20,"pl-k"]],[],[],[[8,29,"pl-en"]],[[20,24,"pl-c1"]],[[12,19,"pl-c1"]],[[21,26,"pl-smi"]],[[21,28,"pl-smi"]],[[21,29,"pl-smi"],[32,33,"pl-c1"]],[[12,23,"pl-c1"]],[[12,18,"pl-k"],[19,28,"pl-en"]],[[15,25,"pl-smi"]],[[15,23,"pl-smi"]],[[12,15,"pl-k"],[21,27,"pl-c1"],[32,33,"pl-c1"],[39,54,"pl-c1"]],[[16,25,"pl-c1"],[40,42,"pl-smi"]],[],[],[],[[8,30,"pl-en"],[35,40,"pl-c1"]],[[8,14,"pl-k"],[15,19,"pl-k"],[20,25,"pl-en"]],[[12,14,"pl-k"]],[[16,105,"pl-c"],[16,18,"pl-c"]],[[16,19,"pl-k"],[25,31,"pl-c1"],[36,37,"pl-c1"],[43,58,"pl-c1"]],[[20,29,"pl-c1"],[44,46,"pl-smi"],[67,74,"pl-c1"]],[],[[16,39,"pl-c"],[16,18,"pl-c"]],[[16,27,"pl-c1"],[42,49,"pl-c1"]],[[24,29,"pl-c1"]],[],[],[],[],[[4,8,"pl-k"],[52,57,"pl-c1"]],[[4,10,"pl-k"],[11,20,"pl-en"]],[[4,11,"pl-c1"]],[[4,10,"pl-c1"],[59,60,"pl-c1"]],[[4,8,"pl-k"],[58,65,"pl-c1"]],[],[[1,6,"pl-k"],[7,34,"pl-c"],[7,9,"pl-c"]],[[1,6,"pl-k"],[7,68,"pl-c"],[7,9,"pl-c"]],[],[[2,14,"pl-c"],[2,4,"pl-c"]],[],[[0,9,"pl-k"]],[[4,9,"pl-k"],[10,19,"pl-k"],[20,26,"pl-en"],[26,27,"pl-k"]],[],[[1,6,"pl-k"]],[[1,7,"pl-k"],[8,35,"pl-en"],[36,40,"pl-v"]],[[1,5,"pl-k"]],[[4,50,"pl-c"],[4,6,"pl-c"]],[[1,7,"pl-k"],[8,35,"pl-en"],[36,40,"pl-v"]],[[1,6,"pl-k"],[7,18,"pl-c"],[7,9,"pl-c"]],[],[[4,8,"pl-k"],[9,18,"pl-en"]],[[8,10,"pl-k"],[41,42,"pl-c1"],[44,85,"pl-c"],[44,46,"pl-c"]],[[18,46,"pl-smi"]],[],[],[[4,8,"pl-k"],[9,24,"pl-en"]],[[8,10,"pl-k"],[41,42,"pl-c1"],[44,85,"pl-c"],[44,46,"pl-c"]],[[18,52,"pl-smi"]],[],[],[[1,3,"pl-k"]],[[4,8,"pl-k"],[9,20,"pl-en"],[21,26,"pl-k"]],[[14,27,"pl-smi"]],[],[[8,41,"pl-c1"],[72,77,"pl-c1"],[81,85,"pl-c1"]],[],[[8,13,"pl-k"],[21,33,"pl-smi"],[34,38,"pl-c1"]],[[18,30,"pl-smi"],[31,39,"pl-c1"]],[[12,45,"pl-c1"]],[],[],[[14,34,"pl-c1"]],[],[[8,41,"pl-c1"]],[],[[8,41,"pl-c1"]],[],[[1,6,"pl-k"],[7,68,"pl-c"],[7,9,"pl-c"]],[[2,14,"pl-c"],[2,4,"pl-c"]],[],[[0,22,"pl-c1"],[44,49,"pl-k"],[50,54,"pl-k"],[62,65,"pl-k"],[72,77,"pl-k"],[78,82,"pl-k"]],[[4,9,"pl-k"],[10,14,"pl-k"],[32,37,"pl-k"]],[[6,17,"pl-c1"],[24,35,"pl-smi"],[38,42,"pl-c1"],[48,54,"pl-c1"],[62,68,"pl-c1"],[76,82,"pl-c1"]],[[4,12,"pl-c1"],[13,17,"pl-c1"],[20,27,"pl-c1"],[28,33,"pl-c1"],[36,46,"pl-c1"],[47,52,"pl-c1"],[55,71,"pl-c1"]],[[4,22,"pl-c1"]],[[1,3,"pl-k"]],[[4,6,"pl-k"],[15,16,"pl-c1"],[21,24,"pl-s"],[21,22,"pl-pds"],[23,24,"pl-pds"],[26,86,"pl-c"],[26,28,"pl-c"]],[],[[1,6,"pl-k"],[7,14,"pl-c"],[7,9,"pl-c"]],[],[],[[0,9,"pl-k"],[10,16,"pl-en"]],[[4,32,"pl-en"],[54,59,"pl-k"],[60,64,"pl-k"],[72,75,"pl-k"],[82,87,"pl-k"],[88,92,"pl-k"]],[[33,38,"pl-k"],[39,43,"pl-k"],[61,66,"pl-k"]],[],[],[[4,32,"pl-en"],[54,59,"pl-k"],[60,64,"pl-k"],[72,75,"pl-k"],[82,87,"pl-k"],[88,92,"pl-k"]],[[8,13,"pl-k"],[14,18,"pl-k"],[36,41,"pl-k"]],[],[],[[4,8,"pl-k"],[9,33,"pl-en"],[34,39,"pl-k"]],[[23,31,"pl-smi"]],[[24,32,"pl-smi"]],[],[],[[4,8,"pl-k"],[9,42,"pl-en"]],[[22,26,"pl-c1"]],[[22,46,"pl-c1"]],[],[],[[4,8,"pl-k"],[9,27,"pl-en"]],[[8,10,"pl-k"],[43,84,"pl-c"],[43,45,"pl-c"]],[],[[10,14,"pl-k"],[15,17,"pl-k"],[94,103,"pl-c"],[94,96,"pl-c"]],[[58,63,"pl-c1"]],[[10,14,"pl-k"],[15,17,"pl-k"],[53,94,"pl-c"],[53,55,"pl-c"]],[],[[10,14,"pl-k"],[15,17,"pl-k"],[55,96,"pl-c"],[55,57,"pl-c"]],[[43,48,"pl-c1"]],[[10,14,"pl-k"],[15,17,"pl-k"],[51,92,"pl-c"],[51,53,"pl-c"]],[],[],[],[[8,10,"pl-k"],[23,27,"pl-c1"]],[[26,30,"pl-s"],[26,27,"pl-pds"],[27,29,"pl-cce"],[29,30,"pl-pds"],[47,51,"pl-s"],[47,48,"pl-pds"],[48,50,"pl-cce"],[50,51,"pl-pds"]],[],[[8,10,"pl-k"]],[[12,21,"pl-c1"]],[[12,45,"pl-c1"],[59,63,"pl-c1"]],[],[[12,14,"pl-k"]],[[16,31,"pl-c1"]],[[10,14,"pl-k"],[15,17,"pl-k"]],[[12,43,"pl-c1"],[45,49,"pl-c1"]],[],[],[[8,14,"pl-k"],[27,43,"pl-c1"],[50,67,"pl-c1"],[71,80,"pl-smi"]],[[19,30,"pl-smi"],[34,41,"pl-c1"],[52,63,"pl-smi"],[65,76,"pl-smi"],[79,101,"pl-c"],[79,81,"pl-c"]],[],[],[[4,8,"pl-k"],[9,29,"pl-en"],[32,37,"pl-k"]],[[8,10,"pl-k"],[23,41,"pl-c1"]],[[12,26,"pl-c1"]],[],[],[[4,8,"pl-k"],[9,40,"pl-en"],[41,46,"pl-k"]],[[8,10,"pl-k"],[17,19,"pl-smi"]],[[18,20,"pl-c1"]],[[8,12,"pl-k"]],[[12,22,"pl-c1"]],[],[],[[4,8,"pl-k"],[9,22,"pl-en"],[44,49,"pl-k"],[50,54,"pl-k"],[62,65,"pl-k"],[72,77,"pl-k"],[78,82,"pl-k"]],[[23,28,"pl-k"]],[[8,12,"pl-k"],[30,38,"pl-smi"]],[],[[8,94,"pl-c"],[8,10,"pl-c"]],[[8,94,"pl-c"],[8,10,"pl-c"]],[[8,83,"pl-c"],[8,10,"pl-c"]],[[8,94,"pl-c"],[8,10,"pl-c"]],[[8,35,"pl-c1"],[43,51,"pl-smi"]],[[8,31,"pl-c1"],[39,47,"pl-smi"]],[[8,14,"pl-k"]],[],[],[[4,34,"pl-en"],[35,40,"pl-k"],[41,45,"pl-k"],[53,56,"pl-k"]],[[21,29,"pl-c1"]],[],[],[],[],[],[[4,35,"pl-en"]],[[8,10,"pl-k"]],[[12,19,"pl-c1"]],[],[],[[4,28,"pl-en"]],[],[[4,8,"pl-k"],[9,28,"pl-en"]],[[8,10,"pl-k"]],[[23,30,"pl-c1"]],[[21,25,"pl-c1"]],[],[],[[8,41,"pl-c1"],[56,60,"pl-c1"]],[],[[8,13,"pl-k"],[14,18,"pl-k"]],[],[[8,83,"pl-c"],[8,10,"pl-c"]],[[8,10,"pl-k"]],[[12,21,"pl-c1"]],[[12,27,"pl-c1"]],[],[],[[8,14,"pl-k"],[15,31,"pl-c1"],[38,55,"pl-c1"],[59,68,"pl-smi"]],[[19,30,"pl-smi"],[34,41,"pl-c1"],[52,63,"pl-smi"],[65,76,"pl-smi"],[79,101,"pl-c"],[79,81,"pl-c"]],[],[],[[4,8,"pl-k"],[9,30,"pl-en"]],[[8,10,"pl-k"],[48,89,"pl-c"],[48,50,"pl-c"]],[[12,26,"pl-c1"]],[],[[2,21,"pl-c"],[2,4,"pl-c"]],[[0,9,"pl-k"]],[[4,9,"pl-k"],[10,19,"pl-k"],[20,26,"pl-en"],[26,27,"pl-k"]],[],[[4,23,"pl-c"],[4,6,"pl-c"]],[],[[0,100,"pl-c"]],[[0,96,"pl-c"],[0,2,"pl-c"]],[[0,96,"pl-c"],[0,2,"pl-c"]],[[0,100,"pl-c"]],[],[[4,9,"pl-k"],[10,19,"pl-en"]],[[4,11,"pl-k"]],[[8,12,"pl-k"]],[],[[8,17,"pl-en"],[31,36,"pl-k"]],[],[[8,12,"pl-k"],[13,21,"pl-en"],[42,47,"pl-k"]],[],[[8,14,"pl-k"],[29,37,"pl-k"],[71,76,"pl-k"]],[],[[4,12,"pl-k"]],[],[],[],[],[[4,9,"pl-k"],[10,19,"pl-en"]],[[4,11,"pl-k"]],[],[[8,13,"pl-k"],[14,27,"pl-en"]],[[8,15,"pl-k"]],[[12,25,"pl-en"]],[],[[12,25,"pl-en"]],[[27,35,"pl-k"]],[],[[12,26,"pl-en"]],[],[[27,36,"pl-en"],[50,55,"pl-k"],[63,67,"pl-k"],[77,81,"pl-c1"]],[],[[12,20,"pl-k"],[21,29,"pl-k"]],[[27,41,"pl-en"],[55,60,"pl-k"],[70,75,"pl-k"]],[[26,40,"pl-c1"]],[[16,22,"pl-k"],[24,28,"pl-c1"]],[],[],[[8,16,"pl-k"]],[[12,19,"pl-k"],[42,49,"pl-c1"]],[],[],[[1,7,"pl-k"]],[[8,17,"pl-en"]],[[1,5,"pl-k"],[6,43,"pl-c"],[6,8,"pl-c"]],[[8,17,"pl-en"]],[[1,6,"pl-k"],[7,44,"pl-c"],[7,9,"pl-c"]],[[8,18,"pl-en"]],[],[[8,17,"pl-en"],[29,34,"pl-k"],[40,46,"pl-k"]],[[19,27,"pl-k"],[40,45,"pl-k"],[51,57,"pl-k"]],[],[[19,31,"pl-en"],[45,50,"pl-k"]],[],[[22,35,"pl-en"],[49,54,"pl-k"]],[],[[19,29,"pl-en"]],[],[[19,33,"pl-en"],[47,52,"pl-k"],[72,77,"pl-k"]],[],[[19,33,"pl-en"],[47,52,"pl-k"],[60,65,"pl-k"],[66,70,"pl-k"]],[],[[19,33,"pl-en"],[47,52,"pl-k"],[60,64,"pl-k"]],[],[[8,16,"pl-k"],[17,25,"pl-k"]],[[19,33,"pl-en"],[47,52,"pl-k"],[62,67,"pl-k"]],[],[],[[12,18,"pl-k"],[19,33,"pl-c1"],[45,48,"pl-c1"]],[],[],[[19,28,"pl-en"],[42,47,"pl-k"],[55,59,"pl-k"],[69,73,"pl-c1"]],[],[[8,61,"pl-c"],[8,10,"pl-c"]],[],[[8,60,"pl-c"],[8,10,"pl-c"]],[],[[8,38,"pl-c"],[8,10,"pl-c"]],[],[[8,12,"pl-k"],[13,28,"pl-en"]],[],[[8,12,"pl-k"],[13,29,"pl-en"]],[],[[4,12,"pl-k"]],[],[[8,12,"pl-k"],[13,31,"pl-en"]],[],[[8,12,"pl-k"],[27,32,"pl-c1"]],[[8,12,"pl-k"],[30,35,"pl-c1"]],[],[],[],[],[],[[0,100,"pl-c"]],[[0,96,"pl-c"],[0,2,"pl-c"]],[[0,96,"pl-c"],[0,2,"pl-c"]],[[0,100,"pl-c"]],[],[[0,5,"pl-k"],[14,22,"pl-k"],[23,27,"pl-k"]],[],[[0,9,"pl-k"]],[],[[4,10,"pl-c1"],[11,24,"pl-en"],[25,33,"pl-k"],[34,38,"pl-k"]],[[8,10,"pl-k"],[17,21,"pl-c1"],[26,30,"pl-c1"]],[[12,18,"pl-k"],[19,20,"pl-c1"]],[],[[8,10,"pl-k"],[17,21,"pl-c1"],[26,30,"pl-c1"]],[[12,18,"pl-k"],[19,20,"pl-c1"]],[],[[8,10,"pl-k"],[17,21,"pl-c1"],[26,30,"pl-c1"]],[[12,18,"pl-k"],[19,20,"pl-c1"]],[],[[8,30,"pl-c1"],[31,79,"pl-s"],[31,32,"pl-pds"],[78,79,"pl-pds"]],[],[],[[4,12,"pl-c1"],[13,24,"pl-en"],[25,33,"pl-k"],[34,38,"pl-k"]],[[8,10,"pl-k"],[17,21,"pl-c1"],[26,30,"pl-c1"]],[[12,18,"pl-k"],[23,27,"pl-c1"]],[],[[8,10,"pl-k"],[17,21,"pl-c1"],[26,30,"pl-c1"]],[[12,18,"pl-k"],[23,27,"pl-c1"]],[],[[8,10,"pl-k"],[17,21,"pl-c1"],[26,30,"pl-c1"]],[[12,18,"pl-k"],[23,27,"pl-c1"]],[],[[8,30,"pl-c1"],[31,79,"pl-s"],[31,32,"pl-pds"],[78,79,"pl-pds"]],[],[],[[4,8,"pl-k"],[9,22,"pl-en"],[41,49,"pl-k"],[50,54,"pl-k"]],[[32,33,"pl-smi"],[37,42,"pl-c1"]],[[14,19,"pl-s"],[14,15,"pl-pds"],[15,17,"pl-cce"],[18,19,"pl-pds"]],[[45,57,"pl-c1"],[58,61,"pl-s"],[58,59,"pl-pds"],[60,61,"pl-pds"],[66,75,"pl-c1"],[76,77,"pl-c1"]],[[15,26,"pl-k"],[27,30,"pl-k"]],[[11,16,"pl-c1"]],[],[],[[2,24,"pl-c"],[2,4,"pl-c"]],[],[[4,24,"pl-en"],[38,43,"pl-k"]],[],[[8,17,"pl-en"]],[],[],[[4,8,"pl-k"],[9,28,"pl-en"],[49,54,"pl-k"]],[[8,83,"pl-c"],[8,10,"pl-c"]],[[8,51,"pl-c"],[8,10,"pl-c"]],[],[[8,11,"pl-k"],[18,24,"pl-c1"],[31,32,"pl-c1"],[46,50,"pl-c1"]],[],[[12,18,"pl-k"]],[[12,16,"pl-k"],[17,20,"pl-s"],[17,18,"pl-pds"],[19,20,"pl-pds"],[30,36,"pl-s"],[30,31,"pl-pds"],[35,36,"pl-pds"],[38,43,"pl-k"]],[[12,16,"pl-k"],[17,20,"pl-s"],[17,18,"pl-pds"],[19,20,"pl-pds"],[30,37,"pl-s"],[30,31,"pl-pds"],[36,37,"pl-pds"],[39,44,"pl-k"]],[],[[12,16,"pl-k"],[17,20,"pl-s"],[17,18,"pl-pds"],[19,20,"pl-pds"]],[[16,57,"pl-c"],[16,18,"pl-c"]],[[16,18,"pl-k"],[26,27,"pl-c1"],[43,44,"pl-c1"],[49,52,"pl-s"],[49,50,"pl-pds"],[51,52,"pl-pds"],[68,69,"pl-c1"],[74,77,"pl-s"],[74,75,"pl-pds"],[76,77,"pl-pds"]],[[26,32,"pl-s"],[26,27,"pl-pds"],[31,32,"pl-pds"]],[[16,20,"pl-k"]],[],[[16,21,"pl-k"]],[],[[12,16,"pl-k"],[17,21,"pl-s"],[17,18,"pl-pds"],[18,20,"pl-cce"],[20,21,"pl-pds"]],[[16,18,"pl-k"]],[[26,34,"pl-s"],[26,27,"pl-pds"],[33,34,"pl-pds"]],[[16,20,"pl-k"]],[],[[16,21,"pl-k"]],[],[[12,19,"pl-k"]],[[16,65,"pl-c"],[16,18,"pl-c"]],[],[[16,62,"pl-c"],[16,18,"pl-c"]],[[16,111,"pl-c"],[16,18,"pl-c"]],[[16,18,"pl-k"],[24,28,"pl-c1"],[37,41,"pl-c1"],[49,53,"pl-c1"],[63,67,"pl-c1"]],[[20,33,"pl-c1"]],[[20,25,"pl-k"]],[],[],[[16,50,"pl-c"],[16,18,"pl-c"]],[[16,18,"pl-k"],[24,28,"pl-c1"]],[],[[20,25,"pl-k"]],[],[],[[16,34,"pl-c"],[16,18,"pl-c"]],[[16,85,"pl-c"],[16,18,"pl-c"]],[[16,109,"pl-c"],[16,18,"pl-c"]],[[16,68,"pl-c"],[16,18,"pl-c"]],[[16,65,"pl-c"],[16,18,"pl-c"]],[[16,34,"pl-c"],[16,18,"pl-c"]],[[16,18,"pl-k"],[25,29,"pl-c1"]],[[25,29,"pl-c1"]],[[20,33,"pl-c1"]],[[20,25,"pl-k"]],[],[],[[16,20,"pl-k"],[32,45,"pl-c1"]],[[16,87,"pl-c"],[16,18,"pl-c"]],[[16,18,"pl-k"],[37,38,"pl-c1"],[48,52,"pl-c1"]],[[20,33,"pl-c1"]],[[20,25,"pl-k"]],[],[[16,50,"pl-c"],[16,18,"pl-c"]],[[16,73,"pl-c"],[16,18,"pl-c"]],[[16,89,"pl-c"],[16,18,"pl-c"]],[[16,20,"pl-k"],[29,33,"pl-c1"]],[[16,24,"pl-c1"],[33,44,"pl-c1"]],[[16,19,"pl-k"],[26,32,"pl-c1"],[37,38,"pl-c1"]],[],[[36,40,"pl-c1"],[45,49,"pl-c1"]],[[38,39,"pl-c1"],[49,53,"pl-c1"]],[],[],[[16,18,"pl-k"]],[[20,59,"pl-c"],[20,22,"pl-c"]],[],[[20,41,"pl-c"],[20,22,"pl-c"]],[[29,33,"pl-c1"]],[[46,51,"pl-c1"],[68,69,"pl-c1"],[74,121,"pl-c"],[74,76,"pl-c"]],[[21,26,"pl-c1"],[46,53,"pl-c1"],[68,69,"pl-c1"]],[[20,49,"pl-c"],[20,22,"pl-c"]],[[30,38,"pl-c1"]],[],[[20,33,"pl-c1"]],[[20,25,"pl-k"]],[],[],[[16,78,"pl-c"],[16,18,"pl-c"]],[[16,19,"pl-k"],[26,32,"pl-c1"],[37,38,"pl-c1"]],[],[],[[34,35,"pl-c1"]],[[16,21,"pl-k"]],[],[],[],[],[[18,26,"pl-k"],[60,65,"pl-k"]],[[18,26,"pl-c1"]],[[8,14,"pl-k"]],[],[],[[4,43,"pl-en"]],[],[],[],[[4,43,"pl-en"]],[],[[14,22,"pl-smi"],[25,32,"pl-c1"]],[],[[56,64,"pl-k"]],[[8,10,"pl-k"]],[[22,32,"pl-c1"]],[],[[25,33,"pl-smi"]],[[14,22,"pl-smi"],[25,32,"pl-c1"]],[[8,14,"pl-k"],[16,20,"pl-c1"]],[],[],[],[[4,44,"pl-en"]],[[8,10,"pl-k"]],[[22,32,"pl-c1"]],[],[],[[30,65,"pl-en"],[79,84,"pl-k"],[92,96,"pl-k"]],[[18,27,"pl-c1"]],[[8,14,"pl-k"],[16,20,"pl-c1"]],[],[],[[4,24,"pl-en"]],[],[[8,111,"pl-c"],[8,10,"pl-c"]],[],[],[[4,25,"pl-en"]],[[8,13,"pl-k"],[23,28,"pl-c1"]],[[12,22,"pl-c1"]],[],[],[[15,38,"pl-en"],[52,57,"pl-k"]],[[8,23,"pl-c1"]],[[8,26,"pl-c1"]],[[28,31,"pl-s"],[28,29,"pl-pds"],[30,31,"pl-pds"]],[[15,24,"pl-c1"]],[[20,24,"pl-s"],[20,21,"pl-pds"],[23,24,"pl-pds"]],[[22,26,"pl-c1"]],[[8,14,"pl-k"],[16,20,"pl-c1"]],[],[],[[29,53,"pl-en"],[67,72,"pl-k"]],[[22,28,"pl-smi"],[30,34,"pl-c1"]],[[8,20,"pl-c1"]],[[8,14,"pl-k"]],[],[],[[15,36,"pl-en"]],[[8,26,"pl-c1"]],[[28,34,"pl-c1"],[36,37,"pl-c1"],[48,52,"pl-c1"],[55,56,"pl-c1"]],[[8,10,"pl-k"]],[[20,24,"pl-s"],[20,21,"pl-pds"],[23,24,"pl-pds"]],[[26,31,"pl-c1"]],[],[[8,12,"pl-k"]],[[32,36,"pl-s"],[32,33,"pl-pds"],[35,36,"pl-pds"],[47,51,"pl-c1"],[57,60,"pl-s"],[57,58,"pl-pds"],[59,60,"pl-pds"]],[],[],[[15,23,"pl-c1"]],[[8,14,"pl-k"],[16,20,"pl-c1"]],[],[],[[15,40,"pl-en"],[54,59,"pl-k"],[79,84,"pl-k"]],[[8,10,"pl-k"],[18,23,"pl-c1"],[40,45,"pl-c1"]],[[20,23,"pl-s"],[20,21,"pl-pds"],[22,23,"pl-pds"],[35,40,"pl-s"],[35,36,"pl-pds"],[37,39,"pl-cce"],[39,40,"pl-pds"],[44,53,"pl-c1"],[96,99,"pl-s"],[96,97,"pl-pds"],[98,99,"pl-pds"]],[[8,14,"pl-k"],[16,20,"pl-c1"]],[],[],[[15,40,"pl-en"],[54,59,"pl-k"],[67,72,"pl-k"],[73,77,"pl-k"]],[[8,10,"pl-k"],[18,23,"pl-c1"],[52,53,"pl-c1"],[58,62,"pl-s"],[58,59,"pl-pds"],[59,61,"pl-cce"],[61,62,"pl-pds"]],[[20,23,"pl-s"],[20,21,"pl-pds"],[22,23,"pl-pds"],[35,40,"pl-s"],[35,36,"pl-pds"],[37,39,"pl-cce"],[39,40,"pl-pds"],[44,53,"pl-c1"],[96,99,"pl-s"],[96,97,"pl-pds"],[98,99,"pl-pds"]],[[8,14,"pl-k"],[16,20,"pl-c1"]],[],[],[[15,40,"pl-en"],[54,59,"pl-k"],[67,71,"pl-k"]],[[16,19,"pl-s"],[16,17,"pl-pds"],[18,19,"pl-pds"],[31,36,"pl-s"],[31,32,"pl-pds"],[33,35,"pl-cce"],[35,36,"pl-pds"],[54,60,"pl-s"],[54,55,"pl-pds"],[59,60,"pl-pds"],[63,70,"pl-s"],[63,64,"pl-pds"],[69,70,"pl-pds"],[76,79,"pl-s"],[76,77,"pl-pds"],[78,79,"pl-pds"]],[[8,14,"pl-k"],[16,20,"pl-c1"]],[],[],[[15,35,"pl-en"],[49,54,"pl-k"],[62,66,"pl-k"]],[[8,10,"pl-k"],[18,23,"pl-c1"]],[[12,16,"pl-k"]],[[12,27,"pl-c1"]],[[12,14,"pl-k"]],[],[[20,29,"pl-c1"]],[[29,33,"pl-c1"]],[],[[8,14,"pl-k"],[16,20,"pl-c1"]],[],[],[[4,69,"pl-c"],[4,6,"pl-c"]],[[4,28,"pl-c"],[4,6,"pl-c"]],[[4,54,"pl-c"],[4,6,"pl-c"]],[[4,32,"pl-c"],[4,6,"pl-c"]],[[4,23,"pl-c"],[4,6,"pl-c"]],[[4,7,"pl-c"],[4,6,"pl-c"]],[],[[4,68,"pl-c"],[4,6,"pl-c"]],[[4,82,"pl-c"],[4,6,"pl-c"]],[[4,7,"pl-c"],[4,6,"pl-c"]],[],[[4,46,"pl-c"],[4,6,"pl-c"]],[[4,28,"pl-c"],[4,6,"pl-c"]],[[4,23,"pl-c"],[4,6,"pl-c"]],[[4,23,"pl-c"],[4,6,"pl-c"]],[[4,7,"pl-c"],[4,6,"pl-c"]],[],[[4,8,"pl-k"],[9,35,"pl-en"]],[[8,10,"pl-k"]],[[20,23,"pl-s"],[20,21,"pl-pds"],[22,23,"pl-pds"]],[[26,31,"pl-c1"]],[],[],[],[[4,8,"pl-k"],[9,36,"pl-en"]],[[16,62,"pl-s"],[16,17,"pl-pds"],[31,33,"pl-cce"],[36,38,"pl-cce"],[48,50,"pl-cce"],[55,57,"pl-cce"],[59,61,"pl-cce"],[61,62,"pl-pds"]],[],[],[[4,8,"pl-k"],[9,38,"pl-en"]],[[8,10,"pl-k"]],[],[[29,34,"pl-c1"]],[],[],[],[[0,100,"pl-c"]],[[0,37,"pl-c"],[0,2,"pl-c"]],[[0,100,"pl-c"]],[],[[4,22,"pl-c"],[4,6,"pl-c"]],[],[[4,10,"pl-k"],[11,22,"pl-en"],[25,31,"pl-k"],[32,41,"pl-en"]],[],[],[[8,29,"pl-en"]],[],[[8,77,"pl-c"],[8,10,"pl-c"]],[[8,13,"pl-k"]],[[8,13,"pl-k"],[35,42,"pl-c1"]],[],[[8,19,"pl-en"],[20,25,"pl-k"]],[],[],[],[[8,12,"pl-k"],[13,25,"pl-en"]],[[12,15,"pl-k"],[31,54,"pl-c1"]],[[12,14,"pl-k"]],[[16,20,"pl-k"],[45,64,"pl-c1"]],[],[[16,19,"pl-k"],[20,23,"pl-k"],[28,29,"pl-c1"]],[[33,42,"pl-c1"]],[[24,37,"pl-c1"],[38,44,"pl-s"],[38,39,"pl-pds"],[43,44,"pl-pds"],[46,55,"pl-c1"],[59,62,"pl-c1"]],[[23,26,"pl-c1"],[27,29,"pl-s"],[27,28,"pl-pds"],[28,29,"pl-pds"]],[],[],[],[],[[8,16,"pl-k"],[17,21,"pl-en"],[22,30,"pl-k"],[34,39,"pl-k"],[42,48,"pl-k"],[53,68,"pl-smi"],[71,72,"pl-c1"]],[],[[8,12,"pl-k"],[13,33,"pl-en"],[34,39,"pl-k"]],[[12,16,"pl-k"],[31,36,"pl-c1"]],[[12,14,"pl-k"],[21,28,"pl-c1"],[32,70,"pl-c"],[32,34,"pl-c"]],[[16,18,"pl-k"],[19,30,"pl-c1"],[35,47,"pl-smi"],[52,64,"pl-smi"],[69,70,"pl-c1"]],[[24,34,"pl-c1"]],[[34,38,"pl-c1"]],[],[],[[12,16,"pl-k"]],[[30,34,"pl-c1"],[36,75,"pl-c"],[36,38,"pl-c"]],[],[],[[12,14,"pl-k"]],[[20,32,"pl-c1"],[33,44,"pl-s"],[33,34,"pl-pds"],[43,44,"pl-pds"]],[[20,34,"pl-c1"],[35,41,"pl-s"],[35,36,"pl-pds"],[40,41,"pl-pds"],[46,58,"pl-smi"]],[],[],[],[[16,28,"pl-c1"],[29,39,"pl-s"],[29,30,"pl-pds"],[38,39,"pl-pds"]],[[21,35,"pl-c1"],[36,42,"pl-s"],[36,37,"pl-pds"],[41,42,"pl-pds"],[47,53,"pl-smi"]],[[21,35,"pl-c1"],[36,46,"pl-s"],[36,37,"pl-pds"],[45,46,"pl-pds"],[48,68,"pl-c1"],[72,78,"pl-smi"],[79,84,"pl-c1"]],[[21,35,"pl-c1"],[36,42,"pl-s"],[36,37,"pl-pds"],[41,42,"pl-pds"],[44,48,"pl-c1"],[52,58,"pl-smi"]],[[21,35,"pl-c1"],[36,49,"pl-s"],[36,37,"pl-pds"],[48,49,"pl-pds"],[54,67,"pl-smi"]],[],[[12,14,"pl-k"],[15,21,"pl-c1"],[25,34,"pl-smi"],[39,40,"pl-c1"]],[[20,34,"pl-c1"],[35,44,"pl-s"],[35,36,"pl-pds"],[43,44,"pl-pds"],[49,58,"pl-smi"]],[[12,14,"pl-k"],[18,28,"pl-smi"]],[[20,34,"pl-c1"],[35,45,"pl-s"],[35,36,"pl-pds"],[44,45,"pl-pds"],[47,51,"pl-c1"]],[[12,14,"pl-k"],[18,31,"pl-smi"]],[[20,34,"pl-c1"],[35,48,"pl-s"],[35,36,"pl-pds"],[47,48,"pl-pds"],[50,54,"pl-c1"]],[],[],[[8,100,"pl-c"],[8,10,"pl-c"]],[[8,86,"pl-c"],[8,10,"pl-c"]],[[8,100,"pl-c"],[8,10,"pl-c"]],[],[[8,12,"pl-k"],[13,25,"pl-en"],[26,31,"pl-k"],[47,55,"pl-k"]],[[12,26,"pl-c1"]],[[12,14,"pl-k"],[19,33,"pl-smi"]],[[16,19,"pl-k"],[20,24,"pl-k"],[33,45,"pl-c1"]],[[24,37,"pl-c1"],[38,48,"pl-s"],[38,39,"pl-pds"],[47,48,"pl-pds"]],[[29,43,"pl-c1"],[44,54,"pl-s"],[44,45,"pl-pds"],[53,54,"pl-pds"],[61,66,"pl-smi"],[67,72,"pl-smi"]],[[29,43,"pl-c1"],[44,50,"pl-s"],[44,45,"pl-pds"],[49,50,"pl-pds"],[57,62,"pl-smi"],[63,69,"pl-smi"]],[[16,19,"pl-k"],[20,24,"pl-k"],[33,45,"pl-c1"]],[[24,37,"pl-c1"],[38,48,"pl-s"],[38,39,"pl-pds"],[47,48,"pl-pds"]],[[29,43,"pl-c1"],[44,54,"pl-s"],[44,45,"pl-pds"],[53,54,"pl-pds"],[61,66,"pl-smi"],[67,72,"pl-smi"]],[[29,43,"pl-c1"],[44,50,"pl-s"],[44,45,"pl-pds"],[49,50,"pl-pds"],[57,62,"pl-smi"],[63,69,"pl-smi"]],[[14,18,"pl-k"],[19,21,"pl-k"],[26,31,"pl-smi"],[39,54,"pl-smi"]],[[16,19,"pl-k"],[20,28,"pl-k"],[33,34,"pl-c1"],[43,51,"pl-smi"]],[[24,37,"pl-c1"],[38,48,"pl-s"],[38,39,"pl-pds"],[47,48,"pl-pds"],[50,64,"pl-c1"],[65,71,"pl-s"],[65,66,"pl-pds"],[70,71,"pl-pds"],[76,80,"pl-smi"],[85,91,"pl-smi"]],[[25,39,"pl-c1"],[40,51,"pl-s"],[40,41,"pl-pds"],[50,51,"pl-pds"],[56,60,"pl-smi"],[65,77,"pl-smi"]],[[25,39,"pl-c1"],[40,50,"pl-s"],[40,41,"pl-pds"],[49,50,"pl-pds"],[52,72,"pl-c1"],[76,80,"pl-smi"],[85,91,"pl-smi"],[92,97,"pl-c1"]],[[25,39,"pl-c1"],[40,46,"pl-s"],[40,41,"pl-pds"],[45,46,"pl-pds"],[48,52,"pl-c1"],[56,60,"pl-smi"],[65,71,"pl-smi"]],[[25,39,"pl-c1"],[40,49,"pl-s"],[40,41,"pl-pds"],[48,49,"pl-pds"],[54,58,"pl-smi"],[63,69,"pl-smi"]],[],[[20,33,"pl-c1"],[34,59,"pl-s"],[34,35,"pl-pds"],[58,59,"pl-pds"]],[[25,39,"pl-c1"],[40,51,"pl-s"],[40,41,"pl-pds"],[50,51,"pl-pds"],[56,65,"pl-smi"],[67,93,"pl-smi"]],[[14,18,"pl-k"],[19,21,"pl-k"],[26,42,"pl-smi"]],[[16,19,"pl-k"],[20,28,"pl-k"],[33,34,"pl-c1"],[43,51,"pl-smi"]],[[24,37,"pl-c1"],[38,49,"pl-s"],[38,39,"pl-pds"],[48,49,"pl-pds"],[51,65,"pl-c1"],[66,72,"pl-s"],[66,67,"pl-pds"],[71,72,"pl-pds"],[77,81,"pl-smi"],[86,98,"pl-smi"]],[[20,33,"pl-c1"],[34,59,"pl-s"],[34,35,"pl-pds"],[58,59,"pl-pds"]],[[25,39,"pl-c1"],[40,51,"pl-s"],[40,41,"pl-pds"],[50,51,"pl-pds"],[56,65,"pl-smi"],[67,93,"pl-smi"]],[[20,33,"pl-c1"],[34,60,"pl-s"],[34,35,"pl-pds"],[59,60,"pl-pds"]],[[25,39,"pl-c1"],[40,51,"pl-s"],[40,41,"pl-pds"],[50,51,"pl-pds"],[56,65,"pl-smi"],[67,94,"pl-smi"]],[],[[16,26,"pl-c1"]],[],[],[[8,12,"pl-k"],[13,27,"pl-en"],[30,38,"pl-k"]],[[16,32,"pl-c1"]],[],[[12,89,"pl-c"],[12,14,"pl-c"]],[[38,58,"pl-c1"],[63,74,"pl-smi"],[75,80,"pl-c1"]],[[1,6,"pl-k"]],[[12,14,"pl-k"],[27,32,"pl-c1"],[33,39,"pl-s"],[33,34,"pl-pds"],[38,39,"pl-pds"]],[[42,48,"pl-c1"],[49,50,"pl-c1"],[64,70,"pl-c1"],[75,76,"pl-c1"]],[[1,6,"pl-k"],[7,34,"pl-c"],[7,9,"pl-c"]],[],[[16,28,"pl-c1"],[29,38,"pl-s"],[29,30,"pl-pds"],[37,38,"pl-pds"],[40,54,"pl-c1"],[55,63,"pl-s"],[55,56,"pl-pds"],[62,63,"pl-pds"]],[[12,14,"pl-k"],[19,29,"pl-smi"],[33,38,"pl-c1"]],[[20,34,"pl-c1"],[35,44,"pl-s"],[35,36,"pl-pds"],[43,44,"pl-pds"]],[],[[12,58,"pl-c"],[12,14,"pl-c"]],[[16,29,"pl-c1"],[30,39,"pl-s"],[30,31,"pl-pds"],[38,39,"pl-pds"]],[[21,35,"pl-c1"],[36,46,"pl-s"],[36,37,"pl-pds"],[45,46,"pl-pds"],[52,60,"pl-smi"],[61,66,"pl-c1"]],[[21,35,"pl-c1"],[36,47,"pl-s"],[36,37,"pl-pds"],[46,47,"pl-pds"],[53,62,"pl-smi"]],[[21,35,"pl-c1"],[36,43,"pl-s"],[36,37,"pl-pds"],[42,43,"pl-pds"],[49,54,"pl-smi"]],[[21,35,"pl-c1"],[36,42,"pl-s"],[36,37,"pl-pds"],[41,42,"pl-pds"],[48,52,"pl-smi"]],[[21,35,"pl-c1"],[36,49,"pl-s"],[36,37,"pl-pds"],[48,49,"pl-pds"],[55,66,"pl-smi"]],[[21,35,"pl-c1"],[36,59,"pl-s"],[36,37,"pl-pds"],[58,59,"pl-pds"],[65,86,"pl-smi"]],[[21,35,"pl-c1"],[36,52,"pl-s"],[36,37,"pl-pds"],[51,52,"pl-pds"],[58,72,"pl-smi"]],[[21,35,"pl-c1"],[36,46,"pl-s"],[36,37,"pl-pds"],[45,46,"pl-pds"],[52,60,"pl-smi"]],[[21,35,"pl-c1"],[36,45,"pl-s"],[36,37,"pl-pds"],[44,45,"pl-pds"],[51,58,"pl-smi"]],[],[],[[8,12,"pl-k"],[13,25,"pl-en"],[26,31,"pl-k"],[49,57,"pl-k"]],[[12,14,"pl-k"],[19,85,"pl-c"],[19,21,"pl-c"]],[[20,30,"pl-c1"]],[],[[16,29,"pl-c1"],[30,53,"pl-s"],[30,31,"pl-pds"],[52,53,"pl-pds"]],[[21,35,"pl-c1"],[36,47,"pl-s"],[36,37,"pl-pds"],[46,47,"pl-pds"],[51,61,"pl-smi"],[66,82,"pl-smi"]],[[21,35,"pl-c1"],[36,46,"pl-s"],[36,37,"pl-pds"],[45,46,"pl-pds"],[50,66,"pl-smi"]],[],[[16,28,"pl-c1"],[29,54,"pl-s"],[29,30,"pl-pds"],[53,54,"pl-pds"]],[[21,35,"pl-c1"],[36,47,"pl-s"],[36,37,"pl-pds"],[46,47,"pl-pds"]],[[38,64,"pl-smi"],[69,87,"pl-smi"]],[[21,35,"pl-c1"],[36,46,"pl-s"],[36,37,"pl-pds"],[45,46,"pl-pds"],[50,68,"pl-smi"]],[[12,14,"pl-k"],[19,37,"pl-smi"],[41,46,"pl-c1"]],[[20,34,"pl-c1"],[35,44,"pl-s"],[35,36,"pl-pds"],[43,44,"pl-pds"],[48,60,"pl-smi"],[65,91,"pl-smi"]],[[16,26,"pl-c1"]],[],[[16,26,"pl-c1"]],[],[],[[8,12,"pl-k"],[13,28,"pl-en"],[29,34,"pl-k"],[53,61,"pl-k"]],[[12,32,"pl-c1"]],[[16,31,"pl-c1"]],[],[],[[8,12,"pl-k"],[13,30,"pl-en"],[31,36,"pl-k"],[52,60,"pl-k"]],[],[[8,12,"pl-k"],[13,26,"pl-en"],[27,32,"pl-k"],[59,67,"pl-k"]],[[16,28,"pl-c1"],[29,52,"pl-s"],[29,30,"pl-pds"],[51,52,"pl-pds"]],[[21,35,"pl-c1"],[36,47,"pl-s"],[36,37,"pl-pds"],[46,47,"pl-pds"]],[[39,60,"pl-smi"],[66,93,"pl-smi"]],[[21,35,"pl-c1"],[36,46,"pl-s"],[36,37,"pl-pds"],[45,46,"pl-pds"],[51,78,"pl-smi"]],[[21,35,"pl-c1"],[36,55,"pl-s"],[36,37,"pl-pds"],[54,55,"pl-pds"],[60,75,"pl-smi"]],[[12,14,"pl-k"],[19,27,"pl-smi"]],[[20,34,"pl-c1"],[35,45,"pl-s"],[35,36,"pl-pds"],[44,45,"pl-pds"],[50,57,"pl-smi"]],[[12,14,"pl-k"],[19,38,"pl-smi"]],[[20,34,"pl-c1"],[35,54,"pl-s"],[35,36,"pl-pds"],[53,54,"pl-pds"],[60,79,"pl-smi"]],[[16,26,"pl-c1"]],[],[[16,26,"pl-c1"]],[],[],[[8,12,"pl-k"],[13,32,"pl-en"],[33,38,"pl-k"],[61,69,"pl-k"]],[[12,30,"pl-c1"]],[],[[16,29,"pl-c1"],[30,41,"pl-s"],[30,31,"pl-pds"],[40,41,"pl-pds"]],[[21,35,"pl-c1"],[36,43,"pl-s"],[36,37,"pl-pds"],[42,43,"pl-pds"],[47,55,"pl-smi"]],[[21,30,"pl-c1"],[33,45,"pl-smi"],[46,51,"pl-c1"]],[],[],[[8,12,"pl-k"],[13,26,"pl-en"],[27,32,"pl-k"],[55,63,"pl-k"]],[[16,28,"pl-c1"],[29,38,"pl-s"],[29,30,"pl-pds"],[37,38,"pl-pds"]],[[21,35,"pl-c1"],[36,42,"pl-s"],[36,37,"pl-pds"],[41,42,"pl-pds"],[47,53,"pl-smi"]],[[21,35,"pl-c1"],[36,46,"pl-s"],[36,37,"pl-pds"],[45,46,"pl-pds"],[48,68,"pl-c1"],[72,78,"pl-smi"]],[[21,35,"pl-c1"],[36,42,"pl-s"],[36,37,"pl-pds"],[41,42,"pl-pds"],[44,48,"pl-c1"],[52,58,"pl-smi"]],[[16,31,"pl-c1"]],[],[],[[8,12,"pl-k"],[13,24,"pl-en"],[27,35,"pl-k"],[42,52,"pl-c1"]],[],[[8,12,"pl-k"],[13,23,"pl-en"],[24,29,"pl-k"],[46,54,"pl-k"]],[[12,14,"pl-k"],[19,27,"pl-smi"],[36,43,"pl-smi"]],[[16,22,"pl-k"]],[],[[12,30,"pl-c1"]],[],[[16,28,"pl-c1"],[29,41,"pl-s"],[29,30,"pl-pds"],[40,41,"pl-pds"]],[[21,35,"pl-c1"],[36,45,"pl-s"],[36,37,"pl-pds"],[44,45,"pl-pds"],[51,59,"pl-smi"]],[[21,35,"pl-c1"],[36,42,"pl-s"],[36,37,"pl-pds"],[41,42,"pl-pds"],[44,56,"pl-c1"],[60,64,"pl-smi"]],[[21,35,"pl-c1"],[36,46,"pl-s"],[36,37,"pl-pds"],[45,46,"pl-pds"],[48,68,"pl-c1"],[72,78,"pl-smi"]],[[21,35,"pl-c1"],[36,42,"pl-s"],[36,37,"pl-pds"],[41,42,"pl-pds"],[44,48,"pl-c1"],[52,58,"pl-smi"]],[],[[16,29,"pl-c1"],[30,40,"pl-s"],[30,31,"pl-pds"],[39,40,"pl-pds"],[42,51,"pl-c1"],[55,61,"pl-smi"]],[],[[12,14,"pl-k"],[18,25,"pl-smi"]],[[20,33,"pl-c1"],[34,45,"pl-s"],[34,35,"pl-pds"],[44,45,"pl-pds"],[47,56,"pl-c1"],[60,71,"pl-smi"],[72,77,"pl-c1"]],[],[[12,14,"pl-k"],[18,22,"pl-smi"]],[[20,33,"pl-c1"],[34,53,"pl-s"],[34,35,"pl-pds"],[52,53,"pl-pds"],[55,64,"pl-c1"],[68,84,"pl-smi"]],[[12,14,"pl-k"],[18,22,"pl-smi"]],[[20,33,"pl-c1"],[34,59,"pl-s"],[34,35,"pl-pds"],[58,59,"pl-pds"],[61,70,"pl-c1"],[74,92,"pl-smi"],[93,98,"pl-c1"]],[[12,14,"pl-k"],[19,23,"pl-smi"],[56,63,"pl-smi"]],[[20,33,"pl-c1"],[34,44,"pl-s"],[34,35,"pl-pds"],[43,44,"pl-pds"],[46,55,"pl-c1"],[59,67,"pl-smi"],[68,73,"pl-c1"]],[],[[12,24,"pl-c1"]],[],[[16,26,"pl-c1"]],[],[],[[8,12,"pl-k"],[13,24,"pl-en"],[25,30,"pl-k"],[48,56,"pl-k"]],[[12,30,"pl-c1"]],[],[[16,28,"pl-c1"],[29,38,"pl-s"],[29,30,"pl-pds"],[37,38,"pl-pds"]],[[21,35,"pl-c1"],[36,42,"pl-s"],[36,37,"pl-pds"],[41,42,"pl-pds"],[44,57,"pl-c1"],[61,71,"pl-smi"]],[[21,35,"pl-c1"],[36,46,"pl-s"],[36,37,"pl-pds"],[45,46,"pl-pds"],[48,68,"pl-c1"],[72,78,"pl-smi"]],[[21,35,"pl-c1"],[36,42,"pl-s"],[36,37,"pl-pds"],[41,42,"pl-pds"],[44,48,"pl-c1"],[52,58,"pl-smi"]],[],[[16,29,"pl-c1"],[30,36,"pl-s"],[30,31,"pl-pds"],[35,36,"pl-pds"],[38,47,"pl-c1"],[51,59,"pl-smi"],[60,65,"pl-c1"]],[],[[12,24,"pl-c1"]],[],[[16,26,"pl-c1"]],[],[],[[8,12,"pl-k"],[13,30,"pl-en"],[31,36,"pl-k"],[55,63,"pl-k"]],[[12,14,"pl-k"],[19,37,"pl-smi"],[41,46,"pl-c1"]],[[16,36,"pl-c1"]],[[20,34,"pl-c1"],[35,44,"pl-s"],[35,36,"pl-pds"],[43,44,"pl-pds"],[46,52,"pl-s"],[46,47,"pl-pds"],[51,52,"pl-pds"]],[[20,30,"pl-c1"]],[],[],[],[],[[4,29,"pl-en"],[30,35,"pl-s"],[30,31,"pl-pds"],[34,35,"pl-pds"],[37,38,"pl-c1"]],[],[[4,8,"pl-k"],[9,38,"pl-en"],[56,61,"pl-k"]],[[8,10,"pl-k"],[15,19,"pl-smi"]],[[12,13,"pl-c1"],[15,56,"pl-c"],[15,17,"pl-c"]],[[32,44,"pl-c1"],[48,52,"pl-smi"],[57,61,"pl-s"],[57,58,"pl-pds"],[60,61,"pl-pds"],[68,74,"pl-smi"],[78,83,"pl-s"],[78,79,"pl-pds"],[82,83,"pl-pds"]],[],[],[[8,10,"pl-k"],[14,18,"pl-smi"],[46,87,"pl-c"],[46,48,"pl-c"]],[[21,28,"pl-smi"],[31,51,"pl-s"],[31,32,"pl-pds"],[50,51,"pl-pds"],[54,77,"pl-s"],[54,55,"pl-pds"],[76,77,"pl-pds"],[82,86,"pl-s"],[82,83,"pl-pds"],[83,85,"pl-cce"],[85,86,"pl-pds"]],[[10,14,"pl-k"],[15,17,"pl-k"],[22,26,"pl-smi"]],[[24,28,"pl-smi"],[62,71,"pl-c"],[62,64,"pl-c"]],[[32,44,"pl-c1"],[48,52,"pl-smi"],[57,61,"pl-s"],[57,58,"pl-pds"],[60,61,"pl-pds"],[68,74,"pl-smi"],[78,84,"pl-s"],[78,79,"pl-pds"],[81,83,"pl-cce"],[83,84,"pl-pds"]],[[22,40,"pl-smi"],[41,46,"pl-c1"]],[[19,25,"pl-s"],[19,20,"pl-pds"],[20,22,"pl-cce"],[24,25,"pl-pds"],[32,48,"pl-smi"],[52,57,"pl-s"],[52,53,"pl-pds"],[56,57,"pl-pds"]],[[12,14,"pl-k"],[18,25,"pl-smi"]],[[16,18,"pl-k"],[23,31,"pl-smi"]],[[25,47,"pl-s"],[25,26,"pl-pds"],[44,46,"pl-cce"],[46,47,"pl-pds"]],[[18,22,"pl-k"]],[[25,67,"pl-s"],[25,26,"pl-pds"],[66,67,"pl-pds"],[74,85,"pl-smi"],[89,94,"pl-s"],[89,90,"pl-pds"],[91,93,"pl-cce"],[93,94,"pl-pds"]],[],[[14,18,"pl-k"]],[[21,46,"pl-s"],[21,22,"pl-pds"],[43,45,"pl-cce"],[45,46,"pl-pds"]],[],[[10,14,"pl-k"],[15,17,"pl-k"],[21,25,"pl-smi"]],[[48,89,"pl-c"],[48,50,"pl-c"]],[[32,44,"pl-c1"],[48,52,"pl-smi"],[57,61,"pl-s"],[57,58,"pl-pds"],[60,61,"pl-pds"],[68,74,"pl-smi"],[78,82,"pl-s"],[78,79,"pl-pds"],[81,82,"pl-pds"]],[[22,38,"pl-smi"],[42,47,"pl-s"],[42,43,"pl-pds"],[46,47,"pl-pds"]],[[23,30,"pl-smi"],[37,47,"pl-smi"],[50,70,"pl-s"],[50,51,"pl-pds"],[69,70,"pl-pds"]],[[48,79,"pl-s"],[48,49,"pl-pds"],[78,79,"pl-pds"]],[[32,55,"pl-s"],[32,33,"pl-pds"],[54,55,"pl-pds"]],[[37,48,"pl-smi"],[52,56,"pl-s"],[52,53,"pl-pds"],[53,55,"pl-cce"],[55,56,"pl-pds"]],[[10,14,"pl-k"],[15,17,"pl-k"],[21,25,"pl-smi"]],[[50,91,"pl-c"],[50,52,"pl-c"]],[[32,44,"pl-c1"],[48,52,"pl-smi"],[57,61,"pl-s"],[57,58,"pl-pds"],[60,61,"pl-pds"],[68,74,"pl-smi"],[78,84,"pl-s"],[78,79,"pl-pds"],[81,83,"pl-cce"],[83,84,"pl-pds"]],[[22,40,"pl-smi"],[41,46,"pl-c1"]],[[19,26,"pl-s"],[19,20,"pl-pds"],[20,22,"pl-cce"],[25,26,"pl-pds"]],[[23,30,"pl-smi"],[38,46,"pl-smi"],[49,69,"pl-s"],[49,50,"pl-pds"],[68,69,"pl-pds"]],[[48,79,"pl-s"],[48,49,"pl-pds"],[78,79,"pl-pds"]],[[32,55,"pl-s"],[32,33,"pl-pds"],[54,55,"pl-pds"]],[[37,48,"pl-smi"],[52,56,"pl-s"],[52,53,"pl-pds"],[53,55,"pl-cce"],[55,56,"pl-pds"]],[[10,14,"pl-k"],[15,17,"pl-k"],[21,25,"pl-smi"],[54,95,"pl-c"],[54,56,"pl-c"]],[[21,28,"pl-smi"],[31,50,"pl-s"],[31,32,"pl-pds"],[49,50,"pl-pds"],[53,68,"pl-s"],[53,54,"pl-pds"],[67,68,"pl-pds"]],[[22,33,"pl-smi"],[37,41,"pl-s"],[37,38,"pl-pds"],[38,40,"pl-cce"],[40,41,"pl-pds"]],[[10,14,"pl-k"]],[[21,28,"pl-smi"],[31,50,"pl-s"],[31,32,"pl-pds"],[49,50,"pl-pds"]],[[37,45,"pl-smi"],[48,63,"pl-s"],[48,49,"pl-pds"],[60,62,"pl-cce"],[62,63,"pl-pds"],[66,85,"pl-s"],[66,67,"pl-pds"],[82,84,"pl-cce"],[84,85,"pl-pds"]],[[12,14,"pl-k"],[18,25,"pl-smi"]],[[24,35,"pl-smi"],[39,43,"pl-s"],[39,40,"pl-pds"],[40,42,"pl-cce"],[42,43,"pl-pds"]],[[12,16,"pl-k"]],[[21,33,"pl-s"],[21,22,"pl-pds"],[32,33,"pl-pds"],[37,49,"pl-c1"],[53,57,"pl-smi"],[62,66,"pl-s"],[62,63,"pl-pds"],[65,66,"pl-pds"],[73,81,"pl-smi"],[85,91,"pl-s"],[85,86,"pl-pds"],[88,90,"pl-cce"],[90,91,"pl-pds"]],[],[],[],[[4,12,"pl-c"],[4,6,"pl-c"]],[[4,22,"pl-c"],[4,6,"pl-c"]],[[4,27,"pl-c"],[4,6,"pl-c"]],[[4,32,"pl-c"],[4,6,"pl-c"]],[[4,32,"pl-c"],[4,6,"pl-c"]],[[4,10,"pl-k"],[11,24,"pl-en"],[27,33,"pl-k"],[34,43,"pl-en"]],[],[],[[8,29,"pl-en"]],[],[],[],[[8,14,"pl-k"],[15,32,"pl-en"]],[],[[12,18,"pl-k"],[31,50,"pl-en"]],[[16,89,"pl-c"],[16,18,"pl-c"]],[[16,88,"pl-c"],[16,18,"pl-c"]],[[16,22,"pl-c1"]],[[16,25,"pl-c1"]],[[16,20,"pl-k"],[21,26,"pl-k"],[43,49,"pl-k"],[50,72,"pl-s"],[50,51,"pl-pds"],[71,72,"pl-pds"]],[],[[21,23,"pl-c1"]],[[1,6,"pl-k"]],[[16,24,"pl-c1"]],[[1,5,"pl-k"],[6,33,"pl-c"],[6,8,"pl-c"]],[[16,24,"pl-c1"]],[[1,6,"pl-k"],[7,34,"pl-c"],[7,9,"pl-c"]],[],[[16,20,"pl-k"]],[[16,21,"pl-k"],[22,26,"pl-k"],[28,33,"pl-k"],[40,60,"pl-s"],[40,41,"pl-pds"],[59,60,"pl-pds"]],[],[[16,29,"pl-c1"]],[[16,22,"pl-k"],[23,34,"pl-c1"]],[],[],[[12,18,"pl-k"],[19,35,"pl-en"]],[],[[16,32,"pl-en"],[33,38,"pl-k"],[62,67,"pl-k"],[88,93,"pl-k"]],[],[],[[16,32,"pl-en"],[33,38,"pl-k"],[62,67,"pl-k"]],[],[],[],[],[],[[12,18,"pl-k"],[19,32,"pl-en"]],[],[[16,29,"pl-en"],[30,35,"pl-k"],[61,66,"pl-k"]],[[63,64,"pl-c1"]],[],[],[[16,22,"pl-k"]],[],[],[],[[12,16,"pl-k"],[17,20,"pl-en"],[21,26,"pl-k"],[51,56,"pl-k"]],[[26,38,"pl-c1"]],[],[],[[12,16,"pl-k"],[17,49,"pl-en"]],[[16,19,"pl-k"],[20,24,"pl-k"]],[[20,22,"pl-k"],[28,32,"pl-c1"]],[[34,38,"pl-c1"],[41,45,"pl-smi"],[49,60,"pl-c1"],[61,64,"pl-s"],[61,62,"pl-pds"],[63,64,"pl-pds"],[73,78,"pl-c1"]],[],[],[[12,16,"pl-k"],[17,24,"pl-en"],[25,31,"pl-k"]],[[16,18,"pl-k"],[19,23,"pl-c1"],[26,30,"pl-c1"]],[[20,24,"pl-c1"],[27,28,"pl-c1"]],[[26,30,"pl-c1"],[33,37,"pl-smi"],[40,44,"pl-c1"]],[[32,36,"pl-c1"]],[],[],[[12,16,"pl-k"],[17,27,"pl-en"],[28,33,"pl-k"],[56,61,"pl-k"],[81,86,"pl-k"]],[[26,30,"pl-c1"],[33,41,"pl-smi"],[42,54,"pl-c1"]],[],[],[],[[12,16,"pl-k"],[17,25,"pl-en"],[26,31,"pl-k"],[54,59,"pl-k"]],[[26,30,"pl-c1"],[33,39,"pl-smi"],[40,52,"pl-c1"]],[],[],[],[],[[12,18,"pl-k"],[34,35,"pl-c1"]],[[12,15,"pl-k"],[30,31,"pl-c1"],[49,50,"pl-c1"]],[],[],[],[],[[8,77,"pl-c"],[8,10,"pl-c"]],[[8,13,"pl-k"]],[[8,13,"pl-k"],[35,42,"pl-c1"]],[],[[8,21,"pl-en"],[22,27,"pl-k"]],[],[],[],[[8,16,"pl-k"],[17,21,"pl-en"],[22,30,"pl-k"],[34,39,"pl-k"],[42,48,"pl-k"],[53,68,"pl-smi"],[71,72,"pl-c1"]],[],[[8,100,"pl-c"],[8,10,"pl-c"]],[[8,86,"pl-c"],[8,10,"pl-c"]],[[8,100,"pl-c"],[8,10,"pl-c"]],[],[[8,12,"pl-k"],[13,25,"pl-en"],[26,31,"pl-k"],[44,52,"pl-k"]],[[16,32,"pl-c1"]],[],[],[[8,12,"pl-k"],[13,27,"pl-en"],[30,38,"pl-k"]],[[16,32,"pl-c1"]],[],[],[[8,12,"pl-k"],[13,25,"pl-en"],[26,31,"pl-k"],[49,57,"pl-k"]],[[12,89,"pl-c"],[12,14,"pl-c"]],[[38,58,"pl-c1"],[63,74,"pl-smi"],[75,80,"pl-c1"]],[[1,6,"pl-k"]],[[12,14,"pl-k"],[27,32,"pl-c1"],[33,39,"pl-s"],[33,34,"pl-pds"],[38,39,"pl-pds"]],[[42,48,"pl-c1"],[49,50,"pl-c1"],[64,70,"pl-c1"],[75,76,"pl-c1"]],[[1,6,"pl-k"],[7,34,"pl-c"],[7,9,"pl-c"]],[[16,28,"pl-c1"],[29,41,"pl-s"],[29,30,"pl-pds"],[40,41,"pl-pds"]],[[16,28,"pl-c1"],[29,40,"pl-s"],[29,30,"pl-pds"],[39,40,"pl-pds"],[42,56,"pl-c1"],[57,63,"pl-s"],[57,58,"pl-pds"],[62,63,"pl-pds"]],[[21,35,"pl-c1"],[36,44,"pl-s"],[36,37,"pl-pds"],[43,44,"pl-pds"],[59,70,"pl-smi"]],[[21,35,"pl-c1"],[36,46,"pl-s"],[36,37,"pl-pds"],[45,46,"pl-pds"],[61,74,"pl-smi"]],[[21,35,"pl-c1"],[36,43,"pl-s"],[36,37,"pl-pds"],[42,43,"pl-pds"],[47,57,"pl-smi"]],[[12,14,"pl-k"],[19,36,"pl-smi"],[40,45,"pl-c1"]],[[20,34,"pl-c1"],[35,41,"pl-s"],[35,36,"pl-pds"],[40,41,"pl-pds"],[56,68,"pl-smi"]],[[20,34,"pl-c1"],[35,46,"pl-s"],[35,36,"pl-pds"],[45,46,"pl-pds"],[48,86,"pl-c1"]],[],[[12,14,"pl-k"],[19,29,"pl-smi"],[33,38,"pl-c1"]],[[20,34,"pl-c1"],[35,52,"pl-s"],[35,36,"pl-pds"],[51,52,"pl-pds"]],[],[[12,15,"pl-k"],[16,21,"pl-k"],[22,26,"pl-k"],[52,61,"pl-smi"]],[[20,32,"pl-c1"],[33,43,"pl-s"],[33,34,"pl-pds"],[42,43,"pl-pds"]],[[21,35,"pl-c1"],[36,47,"pl-s"],[36,37,"pl-pds"],[46,47,"pl-pds"],[58,67,"pl-smi"]],[[21,35,"pl-c1"],[36,42,"pl-s"],[36,37,"pl-pds"],[41,42,"pl-pds"],[53,57,"pl-smi"]],[[16,18,"pl-k"],[23,40,"pl-smi"],[44,49,"pl-c1"]],[[24,38,"pl-c1"],[39,45,"pl-s"],[39,40,"pl-pds"],[44,45,"pl-pds"],[56,60,"pl-smi"]],[[16,92,"pl-c"],[16,18,"pl-c"]],[[20,34,"pl-c1"],[35,43,"pl-s"],[35,36,"pl-pds"],[42,43,"pl-pds"],[45,50,"pl-s"],[45,46,"pl-pds"],[49,50,"pl-pds"]],[],[[16,19,"pl-k"],[20,25,"pl-k"],[26,30,"pl-k"],[51,59,"pl-smi"]],[[24,37,"pl-c1"],[38,47,"pl-s"],[38,39,"pl-pds"],[46,47,"pl-pds"]],[[25,39,"pl-c1"],[40,49,"pl-s"],[40,41,"pl-pds"],[48,49,"pl-pds"],[59,66,"pl-smi"]],[[25,39,"pl-c1"],[40,46,"pl-s"],[40,41,"pl-pds"],[45,46,"pl-pds"],[56,60,"pl-smi"]],[[25,34,"pl-c1"],[43,50,"pl-smi"],[52,57,"pl-c1"]],[],[],[[16,19,"pl-k"],[20,25,"pl-k"],[26,30,"pl-k"],[49,55,"pl-smi"]],[[24,37,"pl-c1"],[38,45,"pl-s"],[38,39,"pl-pds"],[44,45,"pl-pds"]],[[25,39,"pl-c1"],[40,49,"pl-s"],[40,41,"pl-pds"],[48,49,"pl-pds"],[57,64,"pl-smi"]],[[25,34,"pl-c1"],[41,48,"pl-smi"]],[],[],[[20,30,"pl-c1"]],[],[[16,26,"pl-c1"]],[[16,26,"pl-c1"]],[],[],[[8,12,"pl-k"],[13,28,"pl-en"],[29,34,"pl-k"],[53,61,"pl-k"]],[[25,28,"pl-c1"],[29,49,"pl-c1"],[53,59,"pl-smi"],[60,65,"pl-c1"],[73,79,"pl-smi"]],[[18,23,"pl-c1"]],[],[],[[8,12,"pl-k"],[13,30,"pl-en"],[31,36,"pl-k"],[55,63,"pl-k"]],[[25,32,"pl-c1"],[39,56,"pl-c1"]],[[25,57,"pl-c1"]],[[37,42,"pl-c1"]],[],[[18,23,"pl-c1"]],[[25,28,"pl-c1"],[29,49,"pl-c1"],[53,59,"pl-smi"],[60,65,"pl-c1"],[73,79,"pl-smi"]],[],[],[[8,12,"pl-k"],[13,26,"pl-en"],[27,32,"pl-k"],[56,64,"pl-k"]],[[25,32,"pl-c1"],[39,56,"pl-c1"]],[[25,57,"pl-c1"]],[[37,42,"pl-c1"]],[],[],[[8,12,"pl-k"],[13,32,"pl-en"],[33,38,"pl-k"],[61,69,"pl-k"]],[[12,30,"pl-c1"]],[[25,33,"pl-c1"],[34,45,"pl-s"],[34,35,"pl-pds"],[44,45,"pl-pds"],[49,61,"pl-smi"],[62,67,"pl-c1"]],[],[],[[8,12,"pl-k"],[13,26,"pl-en"],[27,32,"pl-k"],[55,63,"pl-k"]],[[37,46,"pl-c1"],[50,56,"pl-smi"]],[],[],[[8,12,"pl-k"],[13,24,"pl-en"],[27,35,"pl-k"]],[],[[8,12,"pl-k"],[13,23,"pl-en"],[24,29,"pl-k"],[46,54,"pl-k"]],[[12,14,"pl-k"],[19,27,"pl-smi"],[29,82,"pl-c"],[29,31,"pl-c"]],[[16,22,"pl-k"]],[],[[12,30,"pl-c1"]],[],[],[[18,38,"pl-c1"],[42,48,"pl-smi"],[58,71,"pl-smi"],[74,77,"pl-s"],[74,75,"pl-pds"],[76,77,"pl-pds"],[80,83,"pl-s"],[80,81,"pl-pds"],[82,83,"pl-pds"]],[[17,21,"pl-c1"],[25,31,"pl-smi"],[41,54,"pl-smi"],[57,60,"pl-s"],[57,58,"pl-pds"],[59,60,"pl-pds"],[63,67,"pl-s"],[63,64,"pl-pds"],[66,67,"pl-pds"]],[],[[12,41,"pl-c1"]],[[12,24,"pl-c1"]],[[25,35,"pl-c1"],[39,47,"pl-smi"],[48,53,"pl-c1"],[57,69,"pl-c1"],[73,77,"pl-smi"],[83,86,"pl-c1"]],[],[],[[8,12,"pl-k"],[13,24,"pl-en"],[25,30,"pl-k"],[48,56,"pl-k"]],[[12,14,"pl-k"],[18,28,"pl-smi"],[52,75,"pl-c"],[52,54,"pl-c"]],[[16,22,"pl-k"]],[],[[12,30,"pl-c1"]],[],[],[[18,38,"pl-c1"],[42,48,"pl-smi"],[58,71,"pl-smi"],[74,77,"pl-s"],[74,75,"pl-pds"],[76,77,"pl-pds"],[80,83,"pl-s"],[80,81,"pl-pds"],[82,83,"pl-pds"]],[[17,21,"pl-c1"],[25,31,"pl-smi"],[41,54,"pl-smi"],[57,60,"pl-s"],[57,58,"pl-pds"],[59,60,"pl-pds"],[63,67,"pl-s"],[63,64,"pl-pds"],[66,67,"pl-pds"]],[],[[21,29,"pl-smi"],[30,35,"pl-c1"],[41,45,"pl-s"],[41,42,"pl-pds"],[42,44,"pl-cce"],[44,45,"pl-pds"]],[[12,24,"pl-c1"]],[],[[25,35,"pl-c1"],[39,47,"pl-smi"],[48,53,"pl-c1"]],[[19,29,"pl-smi"],[55,67,"pl-s"],[55,56,"pl-pds"],[66,67,"pl-pds"],[70,76,"pl-s"],[70,71,"pl-pds"],[75,76,"pl-pds"],[81,84,"pl-c1"]],[],[],[[8,12,"pl-k"],[13,30,"pl-en"],[31,36,"pl-k"],[52,60,"pl-k"]],[],[[8,12,"pl-k"],[13,25,"pl-en"]],[[12,15,"pl-k"],[31,54,"pl-c1"]],[[12,14,"pl-k"]],[[16,20,"pl-k"],[32,51,"pl-c1"]],[],[[21,33,"pl-s"],[21,22,"pl-pds"],[32,33,"pl-pds"]],[[16,19,"pl-k"],[20,23,"pl-k"],[28,29,"pl-c1"]],[[31,32,"pl-c1"],[35,37,"pl-s"],[35,36,"pl-pds"],[36,37,"pl-pds"],[40,52,"pl-s"],[40,41,"pl-pds"],[51,52,"pl-pds"]],[[33,42,"pl-c1"]],[],[],[],[],[],[],[[4,29,"pl-en"],[30,37,"pl-s"],[30,31,"pl-pds"],[36,37,"pl-pds"],[39,40,"pl-c1"]],[],[[4,10,"pl-k"],[11,21,"pl-en"]],[],[[8,11,"pl-k"]],[[8,16,"pl-k"],[17,27,"pl-en"],[28,31,"pl-k"]],[],[],[],[[18,26,"pl-k"],[48,53,"pl-k"]],[[8,10,"pl-k"],[14,22,"pl-smi"],[26,27,"pl-c1"]],[[19,28,"pl-c1"],[32,40,"pl-smi"],[45,48,"pl-s"],[45,46,"pl-pds"],[47,48,"pl-pds"]],[[8,14,"pl-k"]],[],[],[[4,10,"pl-k"],[11,26,"pl-en"],[29,35,"pl-k"],[36,45,"pl-en"]],[],[],[[8,12,"pl-k"]],[],[[8,14,"pl-c1"]],[[8,29,"pl-en"]],[],[[8,77,"pl-c"],[8,10,"pl-c"]],[[8,13,"pl-k"]],[[8,13,"pl-k"]],[],[[8,23,"pl-en"],[24,29,"pl-k"]],[],[],[],[[8,23,"pl-en"],[24,29,"pl-k"]],[],[],[],[[8,100,"pl-c"],[8,10,"pl-c"]],[[8,97,"pl-c"],[8,10,"pl-c"]],[[8,100,"pl-c"],[8,10,"pl-c"]],[],[[8,12,"pl-k"],[13,32,"pl-en"]],[],[[17,98,"pl-s"],[17,18,"pl-pds"],[97,98,"pl-pds"]],[[17,21,"pl-s"],[17,18,"pl-pds"],[18,20,"pl-cce"],[20,21,"pl-pds"]],[],[],[[8,13,"pl-k"],[14,18,"pl-k"],[20,42,"pl-en"],[43,47,"pl-k"]],[[43,48,"pl-k"],[49,53,"pl-k"]],[[12,14,"pl-k"]],[[16,22,"pl-k"]],[[12,18,"pl-k"],[19,32,"pl-c1"]],[],[],[[20,41,"pl-en"],[42,46,"pl-k"]],[[12,18,"pl-k"]],[],[],[],[[8,12,"pl-k"],[13,47,"pl-en"],[48,52,"pl-k"]],[[48,53,"pl-k"],[54,58,"pl-k"],[74,83,"pl-s"],[74,75,"pl-pds"],[82,83,"pl-pds"]],[[17,38,"pl-c1"]],[[17,39,"pl-c1"],[69,73,"pl-s"],[69,70,"pl-pds"],[72,73,"pl-pds"]],[],[],[[8,12,"pl-k"],[13,25,"pl-en"]],[[12,15,"pl-k"],[31,54,"pl-c1"]],[[12,14,"pl-k"]],[[16,20,"pl-k"],[32,51,"pl-c1"]],[],[[36,48,"pl-s"],[36,37,"pl-pds"],[47,48,"pl-pds"]],[[16,19,"pl-k"],[20,23,"pl-k"],[28,29,"pl-c1"]],[[31,32,"pl-c1"],[35,37,"pl-s"],[35,36,"pl-pds"],[36,37,"pl-pds"],[40,52,"pl-s"],[40,41,"pl-pds"],[51,52,"pl-pds"]],[[33,42,"pl-c1"]],[[25,29,"pl-s"],[25,26,"pl-pds"],[26,28,"pl-cce"],[28,29,"pl-pds"]],[],[],[],[[17,21,"pl-s"],[17,18,"pl-pds"],[18,20,"pl-cce"],[20,21,"pl-pds"]],[],[],[[8,75,"pl-c"],[8,10,"pl-c"]],[[8,15,"pl-k"],[16,20,"pl-k"],[21,40,"pl-en"],[41,46,"pl-k"],[47,51,"pl-k"],[59,62,"pl-k"]],[[40,45,"pl-k"],[46,50,"pl-k"],[59,61,"pl-s"],[59,60,"pl-pds"],[60,61,"pl-pds"]],[[37,57,"pl-c1"],[72,85,"pl-smi"],[88,91,"pl-s"],[88,89,"pl-pds"],[90,91,"pl-pds"],[94,97,"pl-s"],[94,95,"pl-pds"],[96,97,"pl-pds"]],[[20,35,"pl-smi"],[38,39,"pl-c1"],[48,92,"pl-c"],[48,50,"pl-c"]],[[20,33,"pl-smi"],[36,39,"pl-s"],[36,37,"pl-pds"],[38,39,"pl-pds"],[42,46,"pl-s"],[42,43,"pl-pds"],[45,46,"pl-pds"]],[],[],[[8,12,"pl-k"],[13,25,"pl-en"]],[[12,14,"pl-k"]],[[16,22,"pl-k"]],[],[[12,31,"pl-c1"]],[[12,31,"pl-c1"],[36,42,"pl-smi"],[43,48,"pl-c1"],[56,62,"pl-smi"],[64,68,"pl-s"],[64,65,"pl-pds"],[65,67,"pl-cce"],[67,68,"pl-pds"]],[[12,14,"pl-k"],[19,32,"pl-smi"]],[[38,53,"pl-s"],[38,39,"pl-pds"],[52,53,"pl-pds"],[76,89,"pl-smi"],[93,97,"pl-s"],[93,94,"pl-pds"],[94,96,"pl-cce"],[96,97,"pl-pds"]],[[12,14,"pl-k"],[19,31,"pl-smi"],[39,51,"pl-smi"],[52,53,"pl-c1"],[58,62,"pl-s"],[58,59,"pl-pds"],[59,61,"pl-cce"],[61,62,"pl-pds"]],[[38,52,"pl-s"],[38,39,"pl-pds"],[51,52,"pl-pds"],[75,87,"pl-smi"],[91,95,"pl-s"],[91,92,"pl-pds"],[92,94,"pl-cce"],[94,95,"pl-pds"]],[[12,14,"pl-k"],[15,22,"pl-c1"],[27,33,"pl-smi"],[35,48,"pl-s"],[35,36,"pl-pds"],[47,48,"pl-pds"],[50,52,"pl-c1"],[57,58,"pl-c1"]],[[38,52,"pl-s"],[38,39,"pl-pds"],[51,52,"pl-pds"]],[[36,42,"pl-smi"],[46,50,"pl-s"],[46,47,"pl-pds"],[47,49,"pl-cce"],[49,50,"pl-pds"]],[],[[12,15,"pl-k"],[16,22,"pl-c1"],[27,28,"pl-c1"]],[[16,18,"pl-k"],[36,42,"pl-smi"],[43,44,"pl-c1"],[49,53,"pl-s"],[49,50,"pl-pds"],[50,52,"pl-cce"],[52,53,"pl-pds"]],[[25,29,"pl-s"],[25,26,"pl-pds"],[28,29,"pl-pds"],[50,56,"pl-smi"],[60,64,"pl-s"],[60,61,"pl-pds"],[61,63,"pl-cce"],[63,64,"pl-pds"]],[],[],[[12,14,"pl-k"],[52,56,"pl-c1"]],[[38,107,"pl-s"],[38,39,"pl-pds"],[39,41,"pl-cce"],[104,106,"pl-cce"],[106,107,"pl-pds"]],[[16,19,"pl-k"],[20,26,"pl-c1"],[31,32,"pl-c1"],[52,56,"pl-c1"]],[[20,22,"pl-k"],[40,46,"pl-smi"],[47,48,"pl-c1"],[53,57,"pl-s"],[53,54,"pl-pds"],[54,56,"pl-cce"],[56,57,"pl-pds"]],[[29,33,"pl-s"],[29,30,"pl-pds"],[32,33,"pl-pds"],[54,60,"pl-smi"],[64,68,"pl-s"],[64,65,"pl-pds"],[65,67,"pl-cce"],[67,68,"pl-pds"]],[],[],[],[[17,21,"pl-s"],[17,18,"pl-pds"],[18,20,"pl-cce"],[20,21,"pl-pds"]],[],[[40,44,"pl-c1"]],[],[],[[8,12,"pl-k"],[13,25,"pl-en"]],[[12,14,"pl-k"],[19,29,"pl-smi"],[33,38,"pl-c1"]],[[36,48,"pl-s"],[36,37,"pl-pds"],[47,48,"pl-pds"],[67,90,"pl-s"],[67,68,"pl-pds"],[87,89,"pl-cce"],[89,90,"pl-pds"]],[[44,50,"pl-s"],[44,45,"pl-pds"],[45,49,"pl-cce"],[49,50,"pl-pds"]],[],[],[[8,12,"pl-k"],[13,23,"pl-en"]],[[12,14,"pl-k"],[19,27,"pl-smi"],[31,36,"pl-c1"]],[[16,28,"pl-c1"]],[[36,48,"pl-s"],[36,37,"pl-pds"],[47,48,"pl-pds"]],[[21,36,"pl-s"],[21,22,"pl-pds"],[31,33,"pl-cce"],[35,36,"pl-pds"],[68,90,"pl-s"],[68,69,"pl-pds"],[73,75,"pl-cce"],[87,89,"pl-cce"],[89,90,"pl-pds"]],[],[],[],[[8,12,"pl-k"],[13,22,"pl-en"]],[[12,15,"pl-k"],[36,47,"pl-k"],[48,51,"pl-k"],[53,59,"pl-c1"]],[[12,24,"pl-c1"]],[[12,31,"pl-c"],[12,14,"pl-c"]],[[32,45,"pl-s"],[32,33,"pl-pds"],[42,44,"pl-cce"],[44,45,"pl-pds"]],[[32,44,"pl-s"],[32,33,"pl-pds"],[43,44,"pl-pds"]],[[17,76,"pl-s"],[17,18,"pl-pds"],[34,36,"pl-cce"],[49,51,"pl-cce"],[55,57,"pl-cce"],[71,75,"pl-cce"],[75,76,"pl-pds"]],[[32,44,"pl-s"],[32,33,"pl-pds"],[43,44,"pl-pds"]],[[17,81,"pl-s"],[17,18,"pl-pds"],[34,36,"pl-cce"],[50,52,"pl-cce"],[78,80,"pl-cce"],[80,81,"pl-pds"]],[[32,45,"pl-s"],[32,33,"pl-pds"],[42,44,"pl-cce"],[44,45,"pl-pds"]],[[32,44,"pl-s"],[32,33,"pl-pds"],[43,44,"pl-pds"]],[[17,63,"pl-s"],[17,18,"pl-pds"],[60,62,"pl-cce"],[62,63,"pl-pds"]],[[32,44,"pl-s"],[32,33,"pl-pds"],[43,44,"pl-pds"]],[[17,88,"pl-s"],[17,18,"pl-pds"],[85,87,"pl-cce"],[87,88,"pl-pds"]],[[1,7,"pl-k"]],[[32,45,"pl-s"],[32,33,"pl-pds"],[42,44,"pl-cce"],[44,45,"pl-pds"]],[[32,44,"pl-s"],[32,33,"pl-pds"],[43,44,"pl-pds"]],[[17,74,"pl-s"],[17,18,"pl-pds"],[71,73,"pl-cce"],[73,74,"pl-pds"],[105,121,"pl-s"],[105,106,"pl-pds"],[106,108,"pl-cce"],[118,120,"pl-cce"],[120,121,"pl-pds"]],[[1,6,"pl-k"]],[[32,45,"pl-s"],[32,33,"pl-pds"],[42,44,"pl-cce"],[44,45,"pl-pds"]],[[32,44,"pl-s"],[32,33,"pl-pds"],[43,44,"pl-pds"]],[[17,77,"pl-s"],[17,18,"pl-pds"],[72,76,"pl-cce"],[76,77,"pl-pds"]],[[17,21,"pl-s"],[17,18,"pl-pds"],[20,21,"pl-pds"],[53,62,"pl-s"],[53,54,"pl-pds"],[61,62,"pl-pds"],[94,103,"pl-s"],[94,95,"pl-pds"],[102,103,"pl-pds"],[135,160,"pl-s"],[135,136,"pl-pds"],[159,160,"pl-pds"]],[[17,27,"pl-c1"],[46,47,"pl-c1"],[53,76,"pl-s"],[53,54,"pl-pds"],[73,75,"pl-cce"],[75,76,"pl-pds"]],[[17,21,"pl-s"],[17,18,"pl-pds"],[20,21,"pl-pds"],[53,62,"pl-s"],[53,54,"pl-pds"],[61,62,"pl-pds"],[94,126,"pl-s"],[94,95,"pl-pds"],[125,126,"pl-pds"]],[[17,27,"pl-c1"],[46,47,"pl-c1"],[52,74,"pl-s"],[52,53,"pl-pds"],[71,73,"pl-cce"],[73,74,"pl-pds"]],[[17,21,"pl-s"],[17,18,"pl-pds"],[20,21,"pl-pds"],[53,62,"pl-s"],[53,54,"pl-pds"],[61,62,"pl-pds"],[94,126,"pl-s"],[94,95,"pl-pds"],[125,126,"pl-pds"]],[[17,27,"pl-c1"],[46,47,"pl-c1"],[52,91,"pl-s"],[52,53,"pl-pds"],[88,90,"pl-cce"],[90,91,"pl-pds"]],[[17,21,"pl-s"],[17,18,"pl-pds"],[20,21,"pl-pds"],[53,62,"pl-s"],[53,54,"pl-pds"],[61,62,"pl-pds"],[94,126,"pl-s"],[94,95,"pl-pds"],[125,126,"pl-pds"]],[[17,27,"pl-c1"],[46,47,"pl-c1"],[52,88,"pl-s"],[52,53,"pl-pds"],[85,87,"pl-cce"],[87,88,"pl-pds"]],[[17,21,"pl-s"],[17,18,"pl-pds"],[20,21,"pl-pds"],[53,62,"pl-s"],[53,54,"pl-pds"],[61,62,"pl-pds"],[94,126,"pl-s"],[94,95,"pl-pds"],[125,126,"pl-pds"]],[[17,27,"pl-c1"],[46,47,"pl-c1"],[52,86,"pl-s"],[52,53,"pl-pds"],[83,85,"pl-cce"],[85,86,"pl-pds"]],[[17,21,"pl-s"],[17,18,"pl-pds"],[20,21,"pl-pds"],[53,62,"pl-s"],[53,54,"pl-pds"],[61,62,"pl-pds"],[94,126,"pl-s"],[94,95,"pl-pds"],[125,126,"pl-pds"]],[[17,27,"pl-c1"],[46,47,"pl-c1"],[52,88,"pl-s"],[52,53,"pl-pds"],[83,87,"pl-cce"],[87,88,"pl-pds"]],[[12,103,"pl-c"],[12,14,"pl-c"]],[[32,44,"pl-s"],[32,33,"pl-pds"],[43,44,"pl-pds"]],[[17,72,"pl-s"],[17,18,"pl-pds"],[67,71,"pl-cce"],[71,72,"pl-pds"]],[[17,21,"pl-s"],[17,18,"pl-pds"],[20,21,"pl-pds"],[53,62,"pl-s"],[53,54,"pl-pds"],[61,62,"pl-pds"],[94,126,"pl-s"],[94,95,"pl-pds"],[125,126,"pl-pds"]],[[17,27,"pl-c1"],[46,47,"pl-c1"],[52,87,"pl-s"],[52,53,"pl-pds"],[84,86,"pl-cce"],[86,87,"pl-pds"]],[[17,21,"pl-s"],[17,18,"pl-pds"],[20,21,"pl-pds"],[53,62,"pl-s"],[53,54,"pl-pds"],[61,62,"pl-pds"],[94,126,"pl-s"],[94,95,"pl-pds"],[125,126,"pl-pds"]],[[17,27,"pl-c1"],[46,47,"pl-c1"],[52,87,"pl-s"],[52,53,"pl-pds"],[84,86,"pl-cce"],[86,87,"pl-pds"]],[[17,21,"pl-s"],[17,18,"pl-pds"],[20,21,"pl-pds"],[53,62,"pl-s"],[53,54,"pl-pds"],[61,62,"pl-pds"],[94,126,"pl-s"],[94,95,"pl-pds"],[125,126,"pl-pds"]],[[17,27,"pl-c1"],[46,47,"pl-c1"],[52,87,"pl-s"],[52,53,"pl-pds"],[84,86,"pl-cce"],[86,87,"pl-pds"]],[[17,21,"pl-s"],[17,18,"pl-pds"],[20,21,"pl-pds"],[53,62,"pl-s"],[53,54,"pl-pds"],[61,62,"pl-pds"],[94,126,"pl-s"],[94,95,"pl-pds"],[125,126,"pl-pds"]],[[17,27,"pl-c1"],[46,47,"pl-c1"],[52,87,"pl-s"],[52,53,"pl-pds"],[84,86,"pl-cce"],[86,87,"pl-pds"]],[[17,21,"pl-s"],[17,18,"pl-pds"],[20,21,"pl-pds"],[53,62,"pl-s"],[53,54,"pl-pds"],[61,62,"pl-pds"],[94,126,"pl-s"],[94,95,"pl-pds"],[125,126,"pl-pds"]],[[17,27,"pl-c1"],[46,47,"pl-c1"],[52,93,"pl-s"],[52,53,"pl-pds"],[90,92,"pl-cce"],[92,93,"pl-pds"]],[[17,21,"pl-s"],[17,18,"pl-pds"],[20,21,"pl-pds"],[53,62,"pl-s"],[53,54,"pl-pds"],[61,62,"pl-pds"],[94,126,"pl-s"],[94,95,"pl-pds"],[125,126,"pl-pds"]],[[17,27,"pl-c1"],[46,47,"pl-c1"],[52,93,"pl-s"],[52,53,"pl-pds"],[90,92,"pl-cce"],[92,93,"pl-pds"]],[[17,21,"pl-s"],[17,18,"pl-pds"],[20,21,"pl-pds"],[53,62,"pl-s"],[53,54,"pl-pds"],[61,62,"pl-pds"],[94,126,"pl-s"],[94,95,"pl-pds"],[125,126,"pl-pds"]],[[17,27,"pl-c1"],[46,47,"pl-c1"],[52,90,"pl-s"],[52,53,"pl-pds"],[87,89,"pl-cce"],[89,90,"pl-pds"]],[[17,21,"pl-s"],[17,18,"pl-pds"],[20,21,"pl-pds"],[53,62,"pl-s"],[53,54,"pl-pds"],[61,62,"pl-pds"],[94,126,"pl-s"],[94,95,"pl-pds"],[125,126,"pl-pds"]],[[17,27,"pl-c1"],[46,47,"pl-c1"],[52,90,"pl-s"],[52,53,"pl-pds"],[87,89,"pl-cce"],[89,90,"pl-pds"]],[[17,21,"pl-s"],[17,18,"pl-pds"],[20,21,"pl-pds"],[53,62,"pl-s"],[53,54,"pl-pds"],[61,62,"pl-pds"],[94,126,"pl-s"],[94,95,"pl-pds"],[125,126,"pl-pds"]],[[17,27,"pl-c1"],[46,47,"pl-c1"],[52,93,"pl-s"],[52,53,"pl-pds"],[90,92,"pl-cce"],[92,93,"pl-pds"]],[[17,21,"pl-s"],[17,18,"pl-pds"],[20,21,"pl-pds"],[53,62,"pl-s"],[53,54,"pl-pds"],[61,62,"pl-pds"],[94,126,"pl-s"],[94,95,"pl-pds"],[125,126,"pl-pds"]],[[17,27,"pl-c1"],[46,47,"pl-c1"],[52,71,"pl-s"],[52,53,"pl-pds"],[68,70,"pl-cce"],[70,71,"pl-pds"]],[[17,21,"pl-s"],[17,18,"pl-pds"],[20,21,"pl-pds"],[53,62,"pl-s"],[53,54,"pl-pds"],[61,62,"pl-pds"],[94,126,"pl-s"],[94,95,"pl-pds"],[125,126,"pl-pds"]],[[17,27,"pl-c1"],[46,47,"pl-c1"],[52,87,"pl-s"],[52,53,"pl-pds"],[84,86,"pl-cce"],[86,87,"pl-pds"]],[[17,27,"pl-c1"],[46,47,"pl-c1"],[52,133,"pl-s"],[52,53,"pl-pds"],[130,132,"pl-cce"],[132,133,"pl-pds"]],[[17,21,"pl-s"],[17,18,"pl-pds"],[20,21,"pl-pds"],[53,62,"pl-s"],[53,54,"pl-pds"],[61,62,"pl-pds"],[94,126,"pl-s"],[94,95,"pl-pds"],[125,126,"pl-pds"]],[[17,27,"pl-c1"],[46,47,"pl-c1"],[52,80,"pl-s"],[52,53,"pl-pds"],[77,79,"pl-cce"],[79,80,"pl-pds"]],[[17,21,"pl-s"],[17,18,"pl-pds"],[20,21,"pl-pds"],[53,62,"pl-s"],[53,54,"pl-pds"],[61,62,"pl-pds"],[94,126,"pl-s"],[94,95,"pl-pds"],[125,126,"pl-pds"]],[[17,27,"pl-c1"],[46,47,"pl-c1"],[52,93,"pl-s"],[52,53,"pl-pds"],[90,92,"pl-cce"],[92,93,"pl-pds"]],[[17,27,"pl-c1"],[46,47,"pl-c1"],[52,130,"pl-s"],[52,53,"pl-pds"],[127,129,"pl-cce"],[129,130,"pl-pds"]],[[17,21,"pl-s"],[17,18,"pl-pds"],[20,21,"pl-pds"],[53,62,"pl-s"],[53,54,"pl-pds"],[61,62,"pl-pds"],[94,126,"pl-s"],[94,95,"pl-pds"],[125,126,"pl-pds"]],[[17,27,"pl-c1"],[46,47,"pl-c1"],[52,92,"pl-s"],[52,53,"pl-pds"],[89,91,"pl-cce"],[91,92,"pl-pds"]],[[17,27,"pl-c1"],[46,47,"pl-c1"],[52,130,"pl-s"],[52,53,"pl-pds"],[127,129,"pl-cce"],[129,130,"pl-pds"]],[[17,21,"pl-s"],[17,18,"pl-pds"],[20,21,"pl-pds"],[53,62,"pl-s"],[53,54,"pl-pds"],[61,62,"pl-pds"],[94,126,"pl-s"],[94,95,"pl-pds"],[125,126,"pl-pds"]],[[17,27,"pl-c1"],[46,47,"pl-c1"],[52,90,"pl-s"],[52,53,"pl-pds"],[87,89,"pl-cce"],[89,90,"pl-pds"]],[[17,21,"pl-s"],[17,18,"pl-pds"],[20,21,"pl-pds"],[53,62,"pl-s"],[53,54,"pl-pds"],[61,62,"pl-pds"],[94,126,"pl-s"],[94,95,"pl-pds"],[125,126,"pl-pds"]],[[17,27,"pl-c1"],[46,47,"pl-c1"],[52,96,"pl-s"],[52,53,"pl-pds"],[93,95,"pl-cce"],[95,96,"pl-pds"]],[[32,46,"pl-s"],[32,33,"pl-pds"],[33,35,"pl-cce"],[45,46,"pl-pds"]],[[17,92,"pl-s"],[17,18,"pl-pds"],[87,91,"pl-cce"],[91,92,"pl-pds"]],[[17,21,"pl-s"],[17,18,"pl-pds"],[20,21,"pl-pds"],[53,62,"pl-s"],[53,54,"pl-pds"],[61,62,"pl-pds"],[94,126,"pl-s"],[94,95,"pl-pds"],[125,126,"pl-pds"]],[[17,27,"pl-c1"],[46,47,"pl-c1"],[52,95,"pl-s"],[52,53,"pl-pds"],[92,94,"pl-cce"],[94,95,"pl-pds"]],[[17,21,"pl-s"],[17,18,"pl-pds"],[20,21,"pl-pds"],[53,62,"pl-s"],[53,54,"pl-pds"],[61,62,"pl-pds"],[94,126,"pl-s"],[94,95,"pl-pds"],[125,126,"pl-pds"]],[[17,27,"pl-c1"],[46,47,"pl-c1"],[52,95,"pl-s"],[52,53,"pl-pds"],[92,94,"pl-cce"],[94,95,"pl-pds"]],[[17,21,"pl-s"],[17,18,"pl-pds"],[20,21,"pl-pds"],[53,62,"pl-s"],[53,54,"pl-pds"],[61,62,"pl-pds"],[94,126,"pl-s"],[94,95,"pl-pds"],[125,126,"pl-pds"]],[[17,27,"pl-c1"],[46,47,"pl-c1"],[52,84,"pl-s"],[52,53,"pl-pds"],[81,83,"pl-cce"],[83,84,"pl-pds"]],[[17,21,"pl-s"],[17,18,"pl-pds"],[20,21,"pl-pds"],[53,62,"pl-s"],[53,54,"pl-pds"],[61,62,"pl-pds"],[94,126,"pl-s"],[94,95,"pl-pds"],[125,126,"pl-pds"]],[[17,27,"pl-c1"],[46,47,"pl-c1"],[52,93,"pl-s"],[52,53,"pl-pds"],[90,92,"pl-cce"],[92,93,"pl-pds"]],[[17,21,"pl-s"],[17,18,"pl-pds"],[20,21,"pl-pds"],[53,62,"pl-s"],[53,54,"pl-pds"],[61,62,"pl-pds"],[94,126,"pl-s"],[94,95,"pl-pds"],[125,126,"pl-pds"]],[[17,27,"pl-c1"],[46,47,"pl-c1"],[52,94,"pl-s"],[52,53,"pl-pds"],[91,93,"pl-cce"],[93,94,"pl-pds"]],[[17,21,"pl-s"],[17,18,"pl-pds"],[20,21,"pl-pds"],[53,62,"pl-s"],[53,54,"pl-pds"],[61,62,"pl-pds"],[94,126,"pl-s"],[94,95,"pl-pds"],[125,126,"pl-pds"]],[[17,27,"pl-c1"],[46,47,"pl-c1"],[52,73,"pl-s"],[52,53,"pl-pds"],[70,72,"pl-cce"],[72,73,"pl-pds"]],[[17,21,"pl-s"],[17,18,"pl-pds"],[20,21,"pl-pds"],[53,62,"pl-s"],[53,54,"pl-pds"],[61,62,"pl-pds"],[94,126,"pl-s"],[94,95,"pl-pds"],[125,126,"pl-pds"]],[[17,27,"pl-c1"],[46,47,"pl-c1"],[52,94,"pl-s"],[52,53,"pl-pds"],[91,93,"pl-cce"],[93,94,"pl-pds"]],[[17,21,"pl-s"],[17,18,"pl-pds"],[20,21,"pl-pds"],[53,62,"pl-s"],[53,54,"pl-pds"],[61,62,"pl-pds"],[94,126,"pl-s"],[94,95,"pl-pds"],[125,126,"pl-pds"]],[[17,27,"pl-c1"],[46,47,"pl-c1"],[52,94,"pl-s"],[52,53,"pl-pds"],[91,93,"pl-cce"],[93,94,"pl-pds"]],[[17,21,"pl-s"],[17,18,"pl-pds"],[20,21,"pl-pds"],[53,62,"pl-s"],[53,54,"pl-pds"],[61,62,"pl-pds"],[94,126,"pl-s"],[94,95,"pl-pds"],[125,126,"pl-pds"]],[[17,27,"pl-c1"],[46,47,"pl-c1"],[52,92,"pl-s"],[52,53,"pl-pds"],[89,91,"pl-cce"],[91,92,"pl-pds"]],[[17,21,"pl-s"],[17,18,"pl-pds"],[20,21,"pl-pds"],[53,62,"pl-s"],[53,54,"pl-pds"],[61,62,"pl-pds"],[94,126,"pl-s"],[94,95,"pl-pds"],[125,126,"pl-pds"]],[[17,27,"pl-c1"],[46,47,"pl-c1"],[52,94,"pl-s"],[52,53,"pl-pds"],[91,93,"pl-cce"],[93,94,"pl-pds"]],[[17,21,"pl-s"],[17,18,"pl-pds"],[20,21,"pl-pds"],[53,62,"pl-s"],[53,54,"pl-pds"],[61,62,"pl-pds"],[94,126,"pl-s"],[94,95,"pl-pds"],[125,126,"pl-pds"]],[[17,27,"pl-c1"],[46,47,"pl-c1"],[52,96,"pl-s"],[52,53,"pl-pds"],[93,95,"pl-cce"],[95,96,"pl-pds"]],[[17,21,"pl-s"],[17,18,"pl-pds"],[20,21,"pl-pds"],[53,62,"pl-s"],[53,54,"pl-pds"],[61,62,"pl-pds"],[94,126,"pl-s"],[94,95,"pl-pds"],[125,126,"pl-pds"]],[[17,27,"pl-c1"],[46,47,"pl-c1"],[52,81,"pl-s"],[52,53,"pl-pds"],[78,80,"pl-cce"],[80,81,"pl-pds"]],[[17,21,"pl-s"],[17,18,"pl-pds"],[20,21,"pl-pds"],[53,62,"pl-s"],[53,54,"pl-pds"],[61,62,"pl-pds"],[94,126,"pl-s"],[94,95,"pl-pds"],[125,126,"pl-pds"]],[[17,27,"pl-c1"],[46,47,"pl-c1"],[52,89,"pl-s"],[52,53,"pl-pds"],[86,88,"pl-cce"],[88,89,"pl-pds"]],[[17,21,"pl-s"],[17,18,"pl-pds"],[20,21,"pl-pds"],[53,62,"pl-s"],[53,54,"pl-pds"],[61,62,"pl-pds"],[94,126,"pl-s"],[94,95,"pl-pds"],[125,126,"pl-pds"]],[[17,27,"pl-c1"],[46,47,"pl-c1"],[52,89,"pl-s"],[52,53,"pl-pds"],[86,88,"pl-cce"],[88,89,"pl-pds"]],[[17,21,"pl-s"],[17,18,"pl-pds"],[20,21,"pl-pds"],[53,62,"pl-s"],[53,54,"pl-pds"],[61,62,"pl-pds"],[94,126,"pl-s"],[94,95,"pl-pds"],[125,126,"pl-pds"]],[[17,27,"pl-c1"],[46,47,"pl-c1"],[52,92,"pl-s"],[52,53,"pl-pds"],[89,91,"pl-cce"],[91,92,"pl-pds"]],[[17,21,"pl-s"],[17,18,"pl-pds"],[20,21,"pl-pds"],[53,62,"pl-s"],[53,54,"pl-pds"],[61,62,"pl-pds"],[94,126,"pl-s"],[94,95,"pl-pds"],[125,126,"pl-pds"]],[[17,27,"pl-c1"],[46,47,"pl-c1"],[52,94,"pl-s"],[52,53,"pl-pds"],[91,93,"pl-cce"],[93,94,"pl-pds"]],[[17,21,"pl-s"],[17,18,"pl-pds"],[20,21,"pl-pds"],[53,62,"pl-s"],[53,54,"pl-pds"],[61,62,"pl-pds"],[94,126,"pl-s"],[94,95,"pl-pds"],[125,126,"pl-pds"]],[[17,27,"pl-c1"],[46,47,"pl-c1"],[52,93,"pl-s"],[52,53,"pl-pds"],[90,92,"pl-cce"],[92,93,"pl-pds"]],[[17,21,"pl-s"],[17,18,"pl-pds"],[20,21,"pl-pds"],[53,62,"pl-s"],[53,54,"pl-pds"],[61,62,"pl-pds"],[94,126,"pl-s"],[94,95,"pl-pds"],[125,126,"pl-pds"]],[[17,27,"pl-c1"],[46,47,"pl-c1"],[52,96,"pl-s"],[52,53,"pl-pds"],[93,95,"pl-cce"],[95,96,"pl-pds"]],[[12,103,"pl-c"],[12,14,"pl-c"]],[[12,30,"pl-c"],[12,14,"pl-c"]],[],[[32,46,"pl-s"],[32,33,"pl-pds"],[33,35,"pl-cce"],[45,46,"pl-pds"]],[[17,75,"pl-s"],[17,18,"pl-pds"],[70,74,"pl-cce"],[74,75,"pl-pds"]],[],[],[[8,12,"pl-k"],[13,37,"pl-en"]],[[12,24,"pl-c1"]],[[12,16,"pl-k"],[35,39,"pl-c1"],[42,47,"pl-k"],[72,77,"pl-k"],[78,82,"pl-k"]],[[16,18,"pl-k"],[29,33,"pl-c1"]],[[40,52,"pl-s"],[40,41,"pl-pds"],[51,52,"pl-pds"],[71,96,"pl-s"],[71,72,"pl-pds"],[95,96,"pl-pds"],[108,112,"pl-s"],[108,109,"pl-pds"],[109,111,"pl-cce"],[111,112,"pl-pds"]],[[20,23,"pl-k"],[24,28,"pl-k"]],[[29,41,"pl-s"],[29,30,"pl-pds"],[40,41,"pl-pds"],[45,54,"pl-c1"],[55,56,"pl-c1"],[66,71,"pl-smi"],[72,77,"pl-smi"]],[[29,38,"pl-s"],[29,30,"pl-pds"],[37,38,"pl-pds"],[47,52,"pl-smi"],[53,59,"pl-smi"],[63,67,"pl-s"],[63,64,"pl-pds"],[64,66,"pl-cce"],[66,67,"pl-pds"]],[],[],[[12,26,"pl-c1"],[27,39,"pl-c1"],[43,54,"pl-s"],[43,44,"pl-pds"],[53,54,"pl-pds"]],[[12,26,"pl-c1"],[27,39,"pl-c1"],[43,54,"pl-s"],[43,44,"pl-pds"],[53,54,"pl-pds"]],[],[],[[8,100,"pl-c"],[8,10,"pl-c"]],[[8,86,"pl-c"],[8,10,"pl-c"]],[[8,100,"pl-c"],[8,10,"pl-c"]],[],[[8,12,"pl-k"],[13,25,"pl-en"],[26,31,"pl-k"],[47,55,"pl-k"]],[[12,14,"pl-k"],[19,26,"pl-smi"]],[[16,28,"pl-c1"]],[[14,18,"pl-k"],[19,21,"pl-k"],[26,30,"pl-smi"]],[[16,25,"pl-c1"]],[[14,18,"pl-k"],[19,21,"pl-k"],[26,40,"pl-smi"]],[[16,40,"pl-c1"]],[[14,18,"pl-k"],[19,21,"pl-k"],[26,31,"pl-smi"],[39,54,"pl-smi"]],[[16,18,"pl-k"],[23,38,"pl-smi"]],[[40,52,"pl-s"],[40,41,"pl-pds"],[51,52,"pl-pds"]],[[25,56,"pl-s"],[25,26,"pl-pds"],[53,55,"pl-cce"],[55,56,"pl-pds"]],[[20,39,"pl-c1"]],[],[],[[16,19,"pl-k"],[20,28,"pl-k"],[33,34,"pl-c1"],[43,51,"pl-smi"]],[[43,47,"pl-smi"],[52,58,"pl-smi"],[62,66,"pl-s"],[62,63,"pl-pds"],[63,65,"pl-cce"],[65,66,"pl-pds"]],[],[[16,35,"pl-c1"]],[],[[36,48,"pl-s"],[36,37,"pl-pds"],[47,48,"pl-pds"]],[[21,73,"pl-s"],[21,22,"pl-pds"],[72,73,"pl-pds"]],[[27,53,"pl-smi"],[57,61,"pl-s"],[57,58,"pl-pds"],[58,60,"pl-cce"],[60,61,"pl-pds"]],[],[[14,18,"pl-k"],[19,21,"pl-k"],[26,42,"pl-smi"]],[[36,48,"pl-s"],[36,37,"pl-pds"],[47,48,"pl-pds"],[67,94,"pl-s"],[67,68,"pl-pds"],[91,93,"pl-cce"],[93,94,"pl-pds"]],[[16,35,"pl-c1"]],[],[[16,19,"pl-k"],[20,28,"pl-k"],[33,34,"pl-c1"],[43,51,"pl-smi"]],[[43,47,"pl-smi"],[52,64,"pl-smi"],[68,72,"pl-s"],[68,69,"pl-pds"],[69,71,"pl-cce"],[71,72,"pl-pds"]],[],[[16,35,"pl-c1"]],[],[[36,48,"pl-s"],[36,37,"pl-pds"],[47,48,"pl-pds"]],[[21,73,"pl-s"],[21,22,"pl-pds"],[72,73,"pl-pds"]],[[27,53,"pl-smi"],[57,61,"pl-s"],[57,58,"pl-pds"],[58,60,"pl-cce"],[60,61,"pl-pds"]],[[36,48,"pl-s"],[36,37,"pl-pds"],[47,48,"pl-pds"]],[[21,90,"pl-s"],[21,22,"pl-pds"],[89,90,"pl-pds"]],[[27,54,"pl-smi"],[58,62,"pl-s"],[58,59,"pl-pds"],[59,61,"pl-cce"],[61,62,"pl-pds"]],[],[],[],[[8,12,"pl-k"],[13,27,"pl-en"],[30,38,"pl-k"]],[[12,14,"pl-k"],[20,27,"pl-smi"]],[[16,26,"pl-c1"]],[],[],[[8,12,"pl-k"],[13,25,"pl-en"],[26,31,"pl-k"],[49,57,"pl-k"]],[[12,14,"pl-k"],[19,26,"pl-smi"],[32,50,"pl-smi"],[54,55,"pl-c1"]],[[16,22,"pl-k"]],[],[[12,31,"pl-c1"]],[],[],[[12,16,"pl-k"],[28,31,"pl-c1"],[32,41,"pl-c1"],[42,47,"pl-c1"],[48,59,"pl-k"],[60,66,"pl-k"],[68,76,"pl-c1"],[79,105,"pl-smi"],[107,118,"pl-k"],[119,127,"pl-k"],[131,141,"pl-smi"],[147,148,"pl-c1"]],[[12,16,"pl-k"],[29,32,"pl-c1"],[33,42,"pl-c1"],[43,48,"pl-c1"],[49,60,"pl-k"],[61,67,"pl-k"],[69,77,"pl-c1"],[80,106,"pl-smi"],[111,129,"pl-smi"],[131,142,"pl-k"],[143,151,"pl-k"],[155,165,"pl-smi"],[170,186,"pl-smi"],[192,193,"pl-c1"]],[[12,16,"pl-k"],[29,32,"pl-c1"],[33,42,"pl-c1"],[43,48,"pl-c1"],[49,60,"pl-k"],[61,67,"pl-k"],[69,77,"pl-c1"],[80,98,"pl-smi"],[100,111,"pl-k"],[112,120,"pl-k"],[124,140,"pl-smi"],[146,147,"pl-c1"]],[[12,17,"pl-k"],[18,22,"pl-k"],[42,60,"pl-smi"],[63,64,"pl-c1"],[70,86,"pl-smi"],[89,90,"pl-c1"]],[[32,44,"pl-s"],[32,33,"pl-pds"],[43,44,"pl-pds"],[63,77,"pl-s"],[63,64,"pl-pds"],[76,77,"pl-pds"],[81,90,"pl-c1"]],[[19,45,"pl-smi"],[49,54,"pl-s"],[49,50,"pl-pds"],[53,54,"pl-pds"]],[[21,47,"pl-smi"],[51,52,"pl-c1"]],[],[[17,26,"pl-c1"],[43,69,"pl-smi"],[74,92,"pl-smi"],[96,105,"pl-s"],[96,97,"pl-pds"],[104,105,"pl-pds"]],[[32,37,"pl-s"],[32,33,"pl-pds"],[36,37,"pl-pds"],[44,62,"pl-smi"],[65,66,"pl-c1"]],[[17,26,"pl-c1"],[43,61,"pl-smi"],[65,74,"pl-s"],[65,66,"pl-pds"],[73,74,"pl-pds"],[93,97,"pl-s"],[93,94,"pl-pds"],[96,97,"pl-pds"]],[[12,14,"pl-k"],[19,37,"pl-smi"],[41,46,"pl-c1"]],[[16,21,"pl-k"],[22,25,"pl-k"],[41,53,"pl-smi"],[58,84,"pl-smi"]],[[21,24,"pl-s"],[21,22,"pl-pds"],[23,24,"pl-pds"],[43,44,"pl-c1"]],[[21,31,"pl-s"],[21,22,"pl-pds"],[30,31,"pl-pds"]],[],[[17,21,"pl-s"],[17,18,"pl-pds"],[18,20,"pl-cce"],[20,21,"pl-pds"]],[[32,44,"pl-s"],[32,33,"pl-pds"],[43,44,"pl-pds"],[63,77,"pl-s"],[63,64,"pl-pds"],[76,77,"pl-pds"],[81,90,"pl-c1"]],[[19,29,"pl-smi"],[33,38,"pl-s"],[33,34,"pl-pds"],[37,38,"pl-pds"]],[[21,31,"pl-smi"],[35,36,"pl-c1"]],[[17,26,"pl-c1"],[44,54,"pl-smi"],[59,75,"pl-smi"],[80,89,"pl-s"],[80,81,"pl-pds"],[88,89,"pl-pds"]],[[17,22,"pl-s"],[17,18,"pl-pds"],[21,22,"pl-pds"],[29,45,"pl-smi"],[48,49,"pl-c1"],[81,90,"pl-c1"]],[[19,35,"pl-smi"],[39,48,"pl-s"],[39,40,"pl-pds"],[47,48,"pl-pds"],[67,73,"pl-s"],[67,68,"pl-pds"],[70,72,"pl-cce"],[72,73,"pl-pds"]],[[32,44,"pl-s"],[32,33,"pl-pds"],[43,44,"pl-pds"]],[[17,27,"pl-s"],[17,18,"pl-pds"],[26,27,"pl-pds"],[34,52,"pl-smi"],[55,56,"pl-c1"]],[[21,39,"pl-smi"],[42,43,"pl-c1"],[47,57,"pl-s"],[47,48,"pl-pds"],[56,57,"pl-pds"],[60,70,"pl-s"],[60,61,"pl-pds"],[69,70,"pl-pds"]],[],[],[[8,12,"pl-k"],[13,28,"pl-en"],[29,34,"pl-k"],[53,61,"pl-k"]],[[40,45,"pl-c1"]],[],[[26,31,"pl-c1"]],[[34,35,"pl-c1"]],[],[],[[8,12,"pl-k"],[13,30,"pl-en"],[31,36,"pl-k"],[52,60,"pl-k"]],[[26,31,"pl-c1"]],[],[],[[8,12,"pl-k"],[13,26,"pl-en"],[27,32,"pl-k"],[59,67,"pl-k"]],[[12,14,"pl-k"],[19,30,"pl-smi"]],[[16,22,"pl-k"]],[],[[12,75,"pl-c"],[12,14,"pl-c"]],[[12,77,"pl-c"],[12,14,"pl-c"]],[[12,14,"pl-k"],[19,27,"pl-smi"]],[[19,32,"pl-smi"],[39,52,"pl-smi"],[56,67,"pl-k"],[68,71,"pl-k"]],[[16,28,"pl-c1"]],[],[[12,14,"pl-k"],[19,27,"pl-smi"]],[[36,53,"pl-c1"],[54,55,"pl-c1"],[77,84,"pl-smi"]],[[21,27,"pl-s"],[21,22,"pl-pds"],[26,27,"pl-pds"],[35,41,"pl-smi"],[45,49,"pl-s"],[45,46,"pl-pds"],[46,48,"pl-cce"],[48,49,"pl-pds"]],[],[[12,14,"pl-k"],[18,31,"pl-smi"]],[[35,70,"pl-s"],[35,36,"pl-pds"],[69,70,"pl-pds"],[74,91,"pl-c1"],[92,93,"pl-c1"]],[[39,48,"pl-smi"],[52,57,"pl-s"],[52,53,"pl-pds"],[54,56,"pl-cce"],[56,57,"pl-pds"]],[],[[12,14,"pl-k"],[18,31,"pl-smi"]],[[35,91,"pl-s"],[35,36,"pl-pds"],[88,90,"pl-cce"],[90,91,"pl-pds"]],[[14,18,"pl-k"],[19,21,"pl-k"],[25,38,"pl-smi"]],[[38,88,"pl-s"],[38,39,"pl-pds"],[85,87,"pl-cce"],[87,88,"pl-pds"]],[[14,18,"pl-k"],[19,21,"pl-k"],[25,38,"pl-smi"]],[[38,85,"pl-s"],[38,39,"pl-pds"],[82,84,"pl-cce"],[84,85,"pl-pds"]],[[14,18,"pl-k"],[19,21,"pl-k"],[25,38,"pl-smi"]],[[35,57,"pl-s"],[35,36,"pl-pds"],[56,57,"pl-pds"],[65,84,"pl-smi"]],[[21,56,"pl-s"],[21,22,"pl-pds"],[53,55,"pl-cce"],[55,56,"pl-pds"]],[[14,18,"pl-k"],[19,21,"pl-k"],[25,38,"pl-smi"]],[[38,55,"pl-s"],[38,39,"pl-pds"],[54,55,"pl-pds"],[63,82,"pl-smi"]],[[21,72,"pl-s"],[21,22,"pl-pds"],[69,71,"pl-cce"],[71,72,"pl-pds"]],[],[[12,14,"pl-k"],[18,31,"pl-smi"]],[[35,74,"pl-s"],[35,36,"pl-pds"],[71,73,"pl-cce"],[73,74,"pl-pds"]],[],[[30,62,"pl-c"],[30,32,"pl-c"]],[],[],[[8,12,"pl-k"],[13,32,"pl-en"],[33,38,"pl-k"],[61,69,"pl-k"]],[[12,30,"pl-c1"]],[[12,14,"pl-k"],[19,30,"pl-smi"]],[[16,22,"pl-k"]],[],[[12,24,"pl-c1"]],[],[[12,31,"pl-c1"],[36,42,"pl-smi"],[43,48,"pl-c1"],[56,62,"pl-smi"],[64,67,"pl-s"],[64,65,"pl-pds"],[66,67,"pl-pds"]],[[12,46,"pl-c1"],[47,52,"pl-c1"],[56,64,"pl-smi"]],[],[[34,42,"pl-smi"],[45,66,"pl-s"],[45,46,"pl-pds"],[65,66,"pl-pds"],[69,98,"pl-s"],[69,70,"pl-pds"],[97,98,"pl-pds"]],[[34,46,"pl-smi"],[50,54,"pl-s"],[50,51,"pl-pds"],[51,53,"pl-cce"],[53,54,"pl-pds"]],[],[[12,15,"pl-k"],[43,71,"pl-c1"]],[[12,14,"pl-k"]],[[16,20,"pl-k"],[44,68,"pl-c1"]],[[36,48,"pl-s"],[36,37,"pl-pds"],[47,48,"pl-pds"]],[[16,19,"pl-k"],[20,23,"pl-k"],[58,59,"pl-c1"]],[[58,60,"pl-s"],[58,59,"pl-pds"],[59,60,"pl-pds"],[63,75,"pl-s"],[63,64,"pl-pds"],[74,75,"pl-pds"]],[[50,51,"pl-c1"],[56,60,"pl-s"],[56,57,"pl-pds"],[57,59,"pl-cce"],[59,60,"pl-pds"]],[],[],[[17,21,"pl-s"],[17,18,"pl-pds"],[18,20,"pl-cce"],[20,21,"pl-pds"]],[],[],[[8,12,"pl-k"],[13,26,"pl-en"],[27,32,"pl-k"],[57,65,"pl-k"]],[[26,35,"pl-c1"]],[],[[40,45,"pl-c1"]],[],[],[[8,12,"pl-k"],[13,24,"pl-en"],[27,35,"pl-k"]],[],[[40,45,"pl-c1"]],[],[],[[8,12,"pl-k"],[13,23,"pl-en"],[24,29,"pl-k"],[46,54,"pl-k"]],[[12,14,"pl-k"],[20,28,"pl-smi"],[37,44,"pl-smi"],[53,64,"pl-smi"]],[[16,22,"pl-k"]],[],[[12,30,"pl-c1"]],[],[[12,24,"pl-c1"]],[],[[12,31,"pl-c1"],[35,41,"pl-smi"],[46,52,"pl-smi"],[54,57,"pl-s"],[54,55,"pl-pds"],[56,57,"pl-pds"]],[[12,46,"pl-c1"],[51,59,"pl-smi"],[64,68,"pl-smi"]],[],[[12,41,"pl-c1"]],[],[[12,24,"pl-c1"]],[],[],[[8,12,"pl-k"],[13,24,"pl-en"],[25,30,"pl-k"],[48,56,"pl-k"]],[[12,14,"pl-k"],[19,30,"pl-smi"]],[[16,22,"pl-k"]],[],[[12,30,"pl-c1"]],[],[[12,24,"pl-c1"]],[],[[12,31,"pl-c1"],[35,41,"pl-smi"],[46,52,"pl-smi"],[54,57,"pl-s"],[54,55,"pl-pds"],[56,57,"pl-pds"]],[[17,38,"pl-c1"],[39,44,"pl-c1"],[49,59,"pl-smi"]],[[17,39,"pl-c1"],[43,53,"pl-smi"],[80,90,"pl-smi"]],[[40,49,"pl-s"],[40,41,"pl-pds"],[48,49,"pl-pds"],[54,58,"pl-s"],[54,55,"pl-pds"],[57,58,"pl-pds"]],[[35,43,"pl-smi"],[47,51,"pl-s"],[47,48,"pl-pds"],[48,50,"pl-cce"],[50,51,"pl-pds"]],[[12,24,"pl-c1"]],[],[],[[8,12,"pl-k"],[13,30,"pl-en"],[31,36,"pl-k"],[52,60,"pl-k"]],[],[],[[4,29,"pl-en"],[30,39,"pl-s"],[30,31,"pl-pds"],[38,39,"pl-pds"],[41,42,"pl-c1"]],[],[[1,6,"pl-k"]],[[4,10,"pl-k"],[11,36,"pl-en"],[39,45,"pl-k"],[46,61,"pl-en"]],[],[[29,35,"pl-k"]],[],[[8,33,"pl-en"],[34,39,"pl-k"]],[],[],[[1,7,"pl-k"],[8,46,"pl-en"],[47,62,"pl-v"]],[[4,8,"pl-k"],[9,13,"pl-en"],[24,32,"pl-k"]],[[8,12,"pl-k"]],[[24,29,"pl-c1"]],[[8,29,"pl-c1"]],[[8,10,"pl-k"],[15,20,"pl-c1"]],[[12,39,"pl-c1"],[44,47,"pl-c1"],[50,55,"pl-c1"]],[[16,19,"pl-c1"],[20,22,"pl-s"],[20,21,"pl-pds"],[21,22,"pl-pds"]],[],[],[],[],[[8,46,"pl-en"]],[[8,46,"pl-en"],[61,66,"pl-k"]],[[8,46,"pl-en"],[64,69,"pl-k"]],[[8,46,"pl-en"],[66,71,"pl-k"]],[[8,46,"pl-en"],[62,67,"pl-k"]],[[8,46,"pl-en"],[68,73,"pl-k"]],[[8,46,"pl-en"],[62,67,"pl-k"]],[[8,46,"pl-en"]],[[8,46,"pl-en"],[59,64,"pl-k"]],[[8,46,"pl-en"],[60,65,"pl-k"]],[[8,46,"pl-en"],[66,71,"pl-k"]],[],[],[],[[1,6,"pl-k"],[7,34,"pl-c"],[7,9,"pl-c"]],[],[[4,42,"pl-c"],[4,6,"pl-c"]],[[4,8,"pl-k"],[9,24,"pl-en"],[25,28,"pl-k"],[35,40,"pl-k"],[41,45,"pl-k"],[47,52,"pl-k"],[60,65,"pl-k"],[66,70,"pl-k"]],[[8,96,"pl-c"],[8,10,"pl-c"]],[[8,11,"pl-k"],[12,15,"pl-k"],[30,31,"pl-c1"]],[[12,16,"pl-k"],[17,22,"pl-c1"],[29,30,"pl-c1"]],[[12,16,"pl-k"],[24,35,"pl-c1"],[41,46,"pl-c1"]],[[12,14,"pl-k"],[33,39,"pl-c1"],[49,55,"pl-c1"],[69,110,"pl-c"],[69,71,"pl-c"]],[[16,85,"pl-c"],[16,18,"pl-c"]],[[16,20,"pl-k"],[39,43,"pl-c1"]],[[16,20,"pl-k"],[44,49,"pl-c1"]],[[16,21,"pl-k"]],[[20,22,"pl-k"],[34,37,"pl-s"],[34,35,"pl-pds"],[36,37,"pl-pds"]],[[42,47,"pl-c1"]],[[24,29,"pl-k"]],[],[],[[16,18,"pl-k"],[43,48,"pl-c1"],[50,51,"pl-c1"],[56,59,"pl-s"],[56,57,"pl-pds"],[58,59,"pl-pds"]],[[20,22,"pl-k"]],[[24,57,"pl-c"],[24,26,"pl-c"]],[[32,38,"pl-c1"]],[[24,29,"pl-k"],[30,38,"pl-k"],[45,51,"pl-c1"]],[[24,26,"pl-k"]],[],[[28,34,"pl-k"],[35,39,"pl-c1"]],[],[[22,26,"pl-k"]],[[24,49,"pl-c"],[24,26,"pl-c"]],[[24,30,"pl-k"],[31,35,"pl-c1"]],[],[],[],[],[[8,14,"pl-k"],[15,20,"pl-c1"]],[],[],[[4,70,"pl-c"],[4,6,"pl-c"]],[[4,8,"pl-k"],[9,20,"pl-en"],[21,24,"pl-k"],[31,36,"pl-k"],[37,41,"pl-k"],[43,48,"pl-k"],[56,61,"pl-k"],[62,66,"pl-k"],[93,100,"pl-c1"]],[[21,26,"pl-k"]],[[8,10,"pl-k"]],[],[[1,7,"pl-k"]],[[8,55,"pl-c"],[8,10,"pl-c"]],[[8,10,"pl-k"],[11,26,"pl-c1"],[49,55,"pl-c1"]],[[12,18,"pl-k"],[19,23,"pl-c1"]],[[1,6,"pl-k"],[7,46,"pl-c"],[7,9,"pl-c"]],[[8,14,"pl-k"],[15,30,"pl-c1"]],[],[],[[4,41,"pl-c"],[4,6,"pl-c"]],[[4,8,"pl-k"],[9,18,"pl-en"],[19,22,"pl-k"],[29,34,"pl-k"],[35,39,"pl-k"],[41,46,"pl-k"],[54,59,"pl-k"],[60,64,"pl-k"]],[[8,14,"pl-k"],[15,26,"pl-c1"]],[],[],[[4,93,"pl-c"],[4,6,"pl-c"]],[[4,8,"pl-k"],[9,26,"pl-en"],[27,30,"pl-k"],[37,42,"pl-k"],[43,47,"pl-k"],[49,54,"pl-k"],[62,67,"pl-k"],[68,72,"pl-k"]],[],[],[[8,10,"pl-k"],[11,22,"pl-c1"]],[[12,78,"pl-c"],[12,14,"pl-c"]],[],[[12,16,"pl-k"]],[[16,20,"pl-k"],[32,35,"pl-c1"]],[[16,18,"pl-k"],[26,30,"pl-c1"],[35,36,"pl-c1"]],[[24,33,"pl-c1"],[41,46,"pl-c1"]],[],[[18,21,"pl-c1"],[22,24,"pl-s"],[22,23,"pl-pds"],[23,24,"pl-pds"]],[],[],[[12,16,"pl-k"],[33,38,"pl-c1"]],[[12,17,"pl-k"],[18,22,"pl-k"],[48,53,"pl-c1"]],[[12,17,"pl-k"],[18,22,"pl-k"],[40,46,"pl-c1"]],[[12,17,"pl-k"]],[[16,20,"pl-k"]],[[16,18,"pl-k"]],[[36,41,"pl-c1"]],[[20,22,"pl-k"],[36,39,"pl-s"],[36,37,"pl-pds"],[38,39,"pl-pds"],[56,60,"pl-s"],[56,57,"pl-pds"],[57,59,"pl-cce"],[59,60,"pl-pds"]],[[26,29,"pl-c1"]],[[24,32,"pl-k"]],[],[[22,25,"pl-c1"],[26,30,"pl-s"],[26,27,"pl-pds"],[27,29,"pl-cce"],[29,30,"pl-pds"]],[],[[16,18,"pl-k"],[32,36,"pl-s"],[32,33,"pl-pds"],[33,35,"pl-cce"],[35,36,"pl-pds"]],[[36,40,"pl-c1"]],[[18,22,"pl-k"],[23,25,"pl-k"],[39,42,"pl-s"],[39,40,"pl-pds"],[41,42,"pl-pds"]],[[20,25,"pl-c1"]],[[18,22,"pl-k"]],[[22,25,"pl-c1"]],[],[],[],[[12,14,"pl-k"]],[[18,21,"pl-c1"],[22,26,"pl-s"],[22,23,"pl-pds"],[23,25,"pl-cce"],[25,26,"pl-pds"]],[],[[12,17,"pl-c1"]],[[12,18,"pl-k"],[19,23,"pl-c1"]],[],[[8,14,"pl-k"],[15,20,"pl-c1"]],[],[],[[4,8,"pl-k"]],[],[],[],[],[],[[4,54,"pl-c"],[4,6,"pl-c"]],[[4,8,"pl-k"],[9,23,"pl-en"],[24,27,"pl-k"],[34,39,"pl-k"],[40,44,"pl-k"],[46,51,"pl-k"],[59,64,"pl-k"],[65,69,"pl-k"]],[[24,27,"pl-k"]],[],[[8,10,"pl-k"],[12,23,"pl-c1"]],[[12,18,"pl-k"],[19,24,"pl-c1"]],[],[[8,10,"pl-k"]],[[12,22,"pl-c"],[12,14,"pl-c"]],[[12,138,"pl-c"],[12,14,"pl-c"]],[[12,15,"pl-k"],[25,34,"pl-c1"],[47,52,"pl-c1"]],[[12,14,"pl-k"],[26,27,"pl-c1"]],[[30,62,"pl-c"],[30,32,"pl-c"]],[[16,22,"pl-k"],[23,27,"pl-c1"]],[],[[10,14,"pl-k"]],[[12,22,"pl-c"],[12,14,"pl-c"]],[[12,17,"pl-k"],[18,22,"pl-k"],[34,35,"pl-c1"],[41,44,"pl-s"],[41,42,"pl-pds"],[43,44,"pl-pds"],[46,52,"pl-s"],[46,47,"pl-pds"],[51,52,"pl-pds"],[54,58,"pl-s"],[54,55,"pl-pds"],[57,58,"pl-pds"],[60,65,"pl-s"],[60,61,"pl-pds"],[64,65,"pl-pds"],[70,95,"pl-c"],[70,72,"pl-c"]],[[12,17,"pl-k"],[18,22,"pl-k"],[34,35,"pl-c1"],[41,44,"pl-s"],[41,42,"pl-pds"],[43,44,"pl-pds"],[46,53,"pl-s"],[46,47,"pl-pds"],[52,53,"pl-pds"],[55,60,"pl-s"],[55,56,"pl-pds"],[59,60,"pl-pds"],[62,66,"pl-s"],[62,63,"pl-pds"],[65,66,"pl-pds"],[70,96,"pl-c"],[70,72,"pl-c"]],[],[[12,78,"pl-c"],[12,14,"pl-c"]],[[12,15,"pl-k"],[17,25,"pl-k"],[30,31,"pl-c1"],[37,38,"pl-c1"]],[[16,18,"pl-k"],[32,39,"pl-c1"],[53,57,"pl-c1"],[62,63,"pl-c1"]],[[26,27,"pl-c1"],[29,61,"pl-c"],[29,31,"pl-c"]],[[20,26,"pl-k"],[27,31,"pl-c1"]],[],[[16,18,"pl-k"],[32,39,"pl-c1"],[53,57,"pl-c1"],[62,63,"pl-c1"]],[[26,27,"pl-c1"],[29,61,"pl-c"],[29,31,"pl-c"]],[[20,26,"pl-k"],[27,31,"pl-c1"]],[],[],[],[[8,14,"pl-k"],[15,20,"pl-c1"]],[],[[2,14,"pl-c"],[2,4,"pl-c"]],[],[[0,16,"pl-c1"],[17,20,"pl-k"],[27,32,"pl-k"],[33,37,"pl-k"],[39,44,"pl-k"]],[[10,11,"pl-c1"],[12,15,"pl-k"]],[[4,13,"pl-c1"],[26,30,"pl-c1"]],[[4,6,"pl-k"]],[[11,22,"pl-smi"],[30,31,"pl-c1"]],[],[],[[0,17,"pl-en"]],[[4,6,"pl-k"]],[[15,22,"pl-c1"]],[[4,10,"pl-k"]],[],[],[[0,4,"pl-k"],[5,30,"pl-smi"],[31,34,"pl-k"],[41,46,"pl-k"],[47,51,"pl-k"],[53,58,"pl-k"]],[[4,13,"pl-c1"]],[[4,6,"pl-k"]],[[11,22,"pl-smi"],[30,31,"pl-c1"]],[],[],[[0,14,"pl-c"],[0,2,"pl-c"]],[[0,4,"pl-k"],[5,23,"pl-smi"],[24,27,"pl-k"],[34,39,"pl-k"],[40,44,"pl-k"],[46,51,"pl-k"],[59,63,"pl-k"]],[[4,9,"pl-k"],[10,19,"pl-k"],[20,26,"pl-en"],[26,27,"pl-k"]],[],[[4,23,"pl-c"],[4,6,"pl-c"]],[[4,21,"pl-c1"],[64,78,"pl-s"],[64,65,"pl-pds"],[77,78,"pl-pds"],[90,97,"pl-smi"],[98,99,"pl-c1"]],[[4,21,"pl-c1"],[64,69,"pl-s"],[64,65,"pl-pds"],[68,69,"pl-pds"],[90,97,"pl-smi"],[98,99,"pl-c1"]],[[4,21,"pl-c1"],[64,86,"pl-s"],[64,65,"pl-pds"],[85,86,"pl-pds"],[90,97,"pl-smi"],[98,99,"pl-c1"]],[[4,21,"pl-c1"],[64,70,"pl-s"],[64,65,"pl-pds"],[69,70,"pl-pds"],[90,97,"pl-smi"],[98,99,"pl-c1"]],[[4,21,"pl-c1"],[64,77,"pl-s"],[64,65,"pl-pds"],[76,77,"pl-pds"],[90,97,"pl-smi"],[98,99,"pl-c1"]],[[4,21,"pl-c1"],[64,69,"pl-s"],[64,65,"pl-pds"],[68,69,"pl-pds"],[90,97,"pl-smi"],[98,99,"pl-c1"]],[[4,21,"pl-c1"],[64,85,"pl-s"],[64,65,"pl-pds"],[84,85,"pl-pds"],[90,97,"pl-smi"],[98,99,"pl-c1"]],[[4,21,"pl-c1"],[64,70,"pl-s"],[64,65,"pl-pds"],[69,70,"pl-pds"],[90,97,"pl-smi"],[98,99,"pl-c1"]],[[4,21,"pl-c1"],[64,76,"pl-s"],[64,65,"pl-pds"],[75,76,"pl-pds"],[90,97,"pl-smi"],[98,99,"pl-c1"]],[[4,21,"pl-c1"],[64,69,"pl-s"],[64,65,"pl-pds"],[68,69,"pl-pds"],[90,97,"pl-smi"],[98,99,"pl-c1"]],[[4,21,"pl-c1"],[64,84,"pl-s"],[64,65,"pl-pds"],[83,84,"pl-pds"],[90,97,"pl-smi"],[98,99,"pl-c1"]],[[4,21,"pl-c1"],[64,70,"pl-s"],[64,65,"pl-pds"],[69,70,"pl-pds"],[90,97,"pl-smi"],[98,99,"pl-c1"]],[[4,21,"pl-c1"],[64,74,"pl-s"],[64,65,"pl-pds"],[73,74,"pl-pds"],[90,97,"pl-smi"],[98,99,"pl-c1"]],[[4,21,"pl-c1"],[64,69,"pl-s"],[64,65,"pl-pds"],[68,69,"pl-pds"],[90,97,"pl-smi"],[98,99,"pl-c1"]],[[4,21,"pl-c1"],[64,82,"pl-s"],[64,65,"pl-pds"],[81,82,"pl-pds"],[90,97,"pl-smi"],[98,99,"pl-c1"]],[[4,21,"pl-c1"],[64,70,"pl-s"],[64,65,"pl-pds"],[69,70,"pl-pds"],[90,97,"pl-smi"],[98,99,"pl-c1"]],[[4,21,"pl-c1"],[64,76,"pl-s"],[64,65,"pl-pds"],[75,76,"pl-pds"],[90,97,"pl-smi"],[98,99,"pl-c1"]],[[4,21,"pl-c1"],[64,68,"pl-s"],[64,65,"pl-pds"],[67,68,"pl-pds"],[90,97,"pl-smi"],[98,99,"pl-c1"]],[[4,22,"pl-c"],[4,6,"pl-c"]],[],[[4,7,"pl-k"],[20,21,"pl-c1"]],[],[],[[1,7,"pl-k"],[8,37,"pl-en"],[38,63,"pl-v"]],[[4,6,"pl-k"],[7,21,"pl-c1"],[69,72,"pl-s"],[69,70,"pl-pds"],[71,72,"pl-pds"]],[[7,21,"pl-c1"],[70,73,"pl-s"],[70,71,"pl-pds"],[72,73,"pl-pds"]],[[11,14,"pl-smi"],[17,28,"pl-k"],[29,33,"pl-k"]],[[4,8,"pl-k"],[9,11,"pl-k"],[12,21,"pl-c1"]],[[12,21,"pl-c1"]],[[11,14,"pl-smi"],[17,21,"pl-c1"]],[[4,8,"pl-k"],[9,11,"pl-k"]],[[7,10,"pl-smi"],[13,20,"pl-k"]],[],[[1,7,"pl-k"],[8,32,"pl-en"],[33,58,"pl-v"]],[[4,6,"pl-k"],[7,21,"pl-c1"],[69,72,"pl-s"],[69,70,"pl-pds"],[71,72,"pl-pds"]],[[7,21,"pl-c1"],[70,73,"pl-s"],[70,71,"pl-pds"],[72,73,"pl-pds"]],[[11,14,"pl-smi"]],[[4,8,"pl-k"],[9,11,"pl-k"]],[[7,10,"pl-smi"],[13,20,"pl-k"]],[],[[1,7,"pl-k"],[8,32,"pl-en"],[33,58,"pl-v"]],[[4,6,"pl-k"],[7,18,"pl-c1"],[66,69,"pl-s"],[66,67,"pl-pds"],[68,69,"pl-pds"],[80,87,"pl-k"]],[[7,18,"pl-c1"],[67,70,"pl-s"],[67,68,"pl-pds"],[69,70,"pl-pds"],[81,88,"pl-k"]],[],[[7,10,"pl-smi"]],[],[[4,23,"pl-c"],[4,6,"pl-c"]],[[4,28,"pl-c1"],[29,34,"pl-s"],[29,30,"pl-pds"],[33,34,"pl-pds"],[36,39,"pl-s"],[36,37,"pl-pds"],[38,39,"pl-pds"],[46,48,"pl-s"],[46,47,"pl-pds"],[47,48,"pl-pds"]],[[4,28,"pl-c1"],[29,39,"pl-s"],[29,30,"pl-pds"],[38,39,"pl-pds"],[41,45,"pl-s"],[41,42,"pl-pds"],[44,45,"pl-pds"],[57,63,"pl-s"],[57,58,"pl-pds"],[62,63,"pl-pds"]],[[4,28,"pl-c1"],[29,40,"pl-s"],[29,30,"pl-pds"],[39,40,"pl-pds"],[42,46,"pl-s"],[42,43,"pl-pds"],[45,46,"pl-pds"],[59,60,"pl-c1"]],[],[[4,28,"pl-c1"],[29,36,"pl-s"],[29,30,"pl-pds"],[35,36,"pl-pds"],[38,41,"pl-s"],[38,39,"pl-pds"],[40,41,"pl-pds"],[50,51,"pl-c1"]],[[4,28,"pl-c1"],[29,35,"pl-s"],[29,30,"pl-pds"],[34,35,"pl-pds"],[37,40,"pl-s"],[37,38,"pl-pds"],[39,40,"pl-pds"]],[],[[4,28,"pl-c1"],[29,42,"pl-s"],[29,30,"pl-pds"],[41,42,"pl-pds"],[44,48,"pl-s"],[44,45,"pl-pds"],[47,48,"pl-pds"],[63,64,"pl-c1"]],[[4,28,"pl-c1"],[29,52,"pl-s"],[29,30,"pl-pds"],[51,52,"pl-pds"],[54,60,"pl-s"],[54,55,"pl-pds"],[59,60,"pl-pds"]],[],[[4,33,"pl-c1"],[34,43,"pl-s"],[34,35,"pl-pds"],[42,43,"pl-pds"],[45,48,"pl-s"],[45,46,"pl-pds"],[47,48,"pl-pds"],[59,64,"pl-c1"]],[[4,33,"pl-c1"],[34,50,"pl-s"],[34,35,"pl-pds"],[49,50,"pl-pds"],[52,56,"pl-s"],[52,53,"pl-pds"],[55,56,"pl-pds"],[74,79,"pl-c1"]],[[4,33,"pl-c1"],[34,40,"pl-s"],[34,35,"pl-pds"],[39,40,"pl-pds"],[42,45,"pl-s"],[42,43,"pl-pds"],[44,45,"pl-pds"],[47,51,"pl-c1"],[53,58,"pl-c1"]],[[4,33,"pl-c1"],[34,44,"pl-s"],[34,35,"pl-pds"],[43,44,"pl-pds"],[46,49,"pl-s"],[46,47,"pl-pds"],[48,49,"pl-pds"],[61,66,"pl-c1"]],[[4,33,"pl-c1"],[34,43,"pl-s"],[34,35,"pl-pds"],[42,43,"pl-pds"],[45,48,"pl-s"],[45,46,"pl-pds"],[47,48,"pl-pds"],[59,64,"pl-c1"]],[[4,33,"pl-c1"],[34,41,"pl-s"],[34,35,"pl-pds"],[40,41,"pl-pds"],[43,46,"pl-s"],[43,44,"pl-pds"],[45,46,"pl-pds"],[55,60,"pl-c1"]],[[4,33,"pl-c1"],[34,44,"pl-s"],[34,35,"pl-pds"],[43,44,"pl-pds"],[46,50,"pl-s"],[46,47,"pl-pds"],[49,50,"pl-pds"],[62,67,"pl-c1"]],[[4,33,"pl-c1"],[34,47,"pl-s"],[34,35,"pl-pds"],[46,47,"pl-pds"],[49,53,"pl-s"],[49,50,"pl-pds"],[52,53,"pl-pds"],[68,73,"pl-c1"]],[[4,33,"pl-c1"],[34,42,"pl-s"],[34,35,"pl-pds"],[41,42,"pl-pds"],[44,48,"pl-s"],[44,45,"pl-pds"],[47,48,"pl-pds"],[58,63,"pl-c1"]],[[4,33,"pl-c1"],[34,44,"pl-s"],[34,35,"pl-pds"],[43,44,"pl-pds"],[46,50,"pl-s"],[46,47,"pl-pds"],[49,50,"pl-pds"],[62,67,"pl-c1"]],[[4,33,"pl-c1"],[34,46,"pl-s"],[34,35,"pl-pds"],[45,46,"pl-pds"],[48,52,"pl-s"],[48,49,"pl-pds"],[51,52,"pl-pds"],[66,71,"pl-c1"]],[[4,33,"pl-c1"],[34,45,"pl-s"],[34,35,"pl-pds"],[44,45,"pl-pds"],[47,51,"pl-s"],[47,48,"pl-pds"],[50,51,"pl-pds"],[64,69,"pl-c1"]],[[4,33,"pl-c1"],[34,48,"pl-s"],[34,35,"pl-pds"],[47,48,"pl-pds"],[50,54,"pl-s"],[50,51,"pl-pds"],[53,54,"pl-pds"],[70,75,"pl-c1"]],[[4,33,"pl-c1"],[34,45,"pl-s"],[34,35,"pl-pds"],[44,45,"pl-pds"],[47,51,"pl-s"],[47,48,"pl-pds"],[50,51,"pl-pds"],[64,69,"pl-c1"]],[[4,33,"pl-c1"],[34,43,"pl-s"],[34,35,"pl-pds"],[42,43,"pl-pds"],[45,49,"pl-s"],[45,46,"pl-pds"],[48,49,"pl-pds"],[60,65,"pl-c1"]],[[4,33,"pl-c1"],[34,49,"pl-s"],[34,35,"pl-pds"],[48,49,"pl-pds"],[51,56,"pl-s"],[51,52,"pl-pds"],[55,56,"pl-pds"],[74,78,"pl-c1"]],[[4,33,"pl-c1"],[34,53,"pl-s"],[34,35,"pl-pds"],[52,53,"pl-pds"],[55,60,"pl-s"],[55,56,"pl-pds"],[59,60,"pl-pds"],[84,89,"pl-c1"]],[[4,33,"pl-c1"],[34,51,"pl-s"],[34,35,"pl-pds"],[50,51,"pl-pds"],[53,58,"pl-s"],[53,54,"pl-pds"],[57,58,"pl-pds"],[77,82,"pl-c1"]],[[4,33,"pl-c1"],[34,51,"pl-s"],[34,35,"pl-pds"],[50,51,"pl-pds"],[53,58,"pl-s"],[53,54,"pl-pds"],[57,58,"pl-pds"],[77,82,"pl-c1"]],[[4,33,"pl-c1"],[34,54,"pl-s"],[34,35,"pl-pds"],[53,54,"pl-pds"],[56,61,"pl-s"],[56,57,"pl-pds"],[60,61,"pl-pds"],[83,88,"pl-c1"]],[[4,33,"pl-c1"],[34,53,"pl-s"],[34,35,"pl-pds"],[52,53,"pl-pds"],[55,61,"pl-s"],[55,56,"pl-pds"],[60,61,"pl-pds"],[82,87,"pl-c1"]],[[4,22,"pl-c"],[4,6,"pl-c"]],[],[[4,6,"pl-k"]],[[11,15,"pl-smi"],[30,35,"pl-c1"]],[[11,18,"pl-smi"],[30,35,"pl-c1"]],[[11,16,"pl-smi"],[30,35,"pl-c1"]],[[11,26,"pl-smi"],[30,35,"pl-c1"]],[[11,27,"pl-smi"],[30,35,"pl-c1"]],[[11,25,"pl-smi"],[30,35,"pl-c1"]],[],[[4,6,"pl-k"],[7,16,"pl-c1"],[59,65,"pl-s"],[59,60,"pl-pds"],[64,65,"pl-pds"]],[[7,16,"pl-c1"],[59,62,"pl-s"],[59,60,"pl-pds"],[61,62,"pl-pds"]],[[7,16,"pl-c1"],[59,62,"pl-s"],[59,60,"pl-pds"],[61,62,"pl-pds"]],[[11,15,"pl-smi"],[18,22,"pl-c1"]],[[11,15,"pl-smi"],[18,22,"pl-c1"]],[],[[4,6,"pl-k"],[7,16,"pl-c1"],[59,68,"pl-s"],[59,60,"pl-pds"],[67,68,"pl-pds"]],[[7,16,"pl-c1"],[59,62,"pl-s"],[59,60,"pl-pds"],[61,62,"pl-pds"]],[[11,18,"pl-smi"],[21,25,"pl-c1"]],[[11,15,"pl-smi"],[21,25,"pl-c1"]],[],[[4,6,"pl-k"],[7,16,"pl-c1"],[59,66,"pl-s"],[59,60,"pl-pds"],[65,66,"pl-pds"]],[[7,16,"pl-c1"],[59,62,"pl-s"],[59,60,"pl-pds"],[61,62,"pl-pds"]],[[11,16,"pl-smi"],[19,23,"pl-c1"]],[[11,15,"pl-smi"],[19,23,"pl-c1"]],[],[[4,6,"pl-k"],[7,16,"pl-c1"],[59,76,"pl-s"],[59,60,"pl-pds"],[75,76,"pl-pds"]],[[7,16,"pl-c1"],[59,64,"pl-s"],[59,60,"pl-pds"],[63,64,"pl-pds"]],[[11,26,"pl-smi"],[29,33,"pl-c1"]],[[11,15,"pl-smi"],[29,33,"pl-c1"]],[],[[4,6,"pl-k"],[7,16,"pl-c1"],[59,77,"pl-s"],[59,60,"pl-pds"],[76,77,"pl-pds"]],[[7,16,"pl-c1"],[59,64,"pl-s"],[59,60,"pl-pds"],[63,64,"pl-pds"]],[[11,27,"pl-smi"],[30,34,"pl-c1"]],[[11,15,"pl-smi"],[30,34,"pl-c1"]],[],[[4,6,"pl-k"],[7,16,"pl-c1"],[59,75,"pl-s"],[59,60,"pl-pds"],[74,75,"pl-pds"]],[[7,16,"pl-c1"],[59,63,"pl-s"],[59,60,"pl-pds"],[62,63,"pl-pds"]],[[11,25,"pl-smi"],[28,32,"pl-c1"]],[[11,15,"pl-smi"],[28,32,"pl-c1"]],[],[],[],[[0,75,"pl-c"],[0,2,"pl-c"]],[[0,4,"pl-k"],[5,23,"pl-smi"],[24,29,"pl-k"],[30,34,"pl-k"],[44,49,"pl-k"],[50,54,"pl-k"],[65,74,"pl-c1"]],[],[[0,61,"pl-c"],[0,2,"pl-c"]],[[0,4,"pl-k"],[5,26,"pl-smi"]],[[4,7,"pl-k"],[8,12,"pl-k"],[24,31,"pl-smi"]],[[13,18,"pl-c1"]],[],[],[[0,82,"pl-c"],[0,2,"pl-c"]],[[0,4,"pl-k"],[5,23,"pl-smi"],[24,29,"pl-k"],[30,34,"pl-k"],[44,48,"pl-k"]],[[4,13,"pl-c1"],[30,36,"pl-s"],[30,31,"pl-pds"],[35,36,"pl-pds"],[39,46,"pl-s"],[39,40,"pl-pds"],[45,46,"pl-pds"]],[],[],[[0,81,"pl-c"],[0,2,"pl-c"]],[[0,4,"pl-k"],[5,23,"pl-smi"],[24,29,"pl-k"],[30,34,"pl-k"],[44,47,"pl-k"]],[[4,13,"pl-c1"],[22,30,"pl-c1"],[38,43,"pl-c1"]],[],[],[[0,84,"pl-c"],[0,2,"pl-c"]],[[0,4,"pl-k"],[5,23,"pl-smi"],[24,29,"pl-k"],[30,34,"pl-k"],[44,49,"pl-k"],[50,54,"pl-k"]],[[4,8,"pl-k"],[18,24,"pl-c1"],[25,28,"pl-s"],[25,26,"pl-pds"],[27,28,"pl-pds"],[41,44,"pl-s"],[41,42,"pl-pds"],[43,44,"pl-pds"]],[[4,8,"pl-k"],[23,28,"pl-c1"]],[[4,13,"pl-c1"],[14,15,"pl-c1"]],[],[],[[0,71,"pl-c"],[0,2,"pl-c"]],[[0,4,"pl-k"],[5,24,"pl-smi"],[29,35,"pl-k"],[39,43,"pl-smi"]],[],[[0,4,"pl-k"],[5,50,"pl-smi"]],[],[[0,4,"pl-k"],[5,30,"pl-smi"],[63,65,"pl-smi"]],[],[[0,4,"pl-k"],[5,21,"pl-smi"],[46,50,"pl-smi"]],[],[[0,6,"pl-k"],[7,12,"pl-k"],[13,27,"pl-en"],[30,36,"pl-k"],[37,40,"pl-en"]],[],[[0,8,"pl-k"]],[[4,9,"pl-k"],[12,18,"pl-k"],[19,22,"pl-en"]],[],[[4,12,"pl-k"]],[[8,76,"pl-c"],[8,10,"pl-c"]],[[8,12,"pl-k"],[17,21,"pl-c1"]],[],[[4,14,"pl-k"]],[[24,30,"pl-en"],[31,36,"pl-k"],[72,80,"pl-k"],[83,89,"pl-k"]],[],[[17,25,"pl-en"],[39,47,"pl-k"]],[[12,16,"pl-c1"],[17,27,"pl-c1"],[34,42,"pl-c1"]],[[12,18,"pl-k"],[19,39,"pl-c1"]],[],[],[],[[0,7,"pl-k"]],[[4,18,"pl-en"]],[],[],[],[[0,65,"pl-c"],[0,2,"pl-c"]],[[0,3,"pl-k"],[4,16,"pl-smi"]],[[4,9,"pl-k"],[10,19,"pl-k"],[20,26,"pl-en"],[26,27,"pl-k"]],[],[[4,101,"pl-c"],[4,6,"pl-c"]],[[4,8,"pl-k"]],[[4,34,"pl-c"],[4,6,"pl-c"]],[],[[25,29,"pl-c1"]],[],[[21,30,"pl-smi"]],[[7,19,"pl-c1"]],[],[],[[4,6,"pl-k"],[10,14,"pl-smi"],[18,25,"pl-c1"]],[[8,10,"pl-k"],[14,19,"pl-smi"]],[[15,19,"pl-smi"]],[[10,14,"pl-k"],[15,17,"pl-k"],[21,24,"pl-smi"],[25,29,"pl-c1"]],[[12,37,"pl-c"],[12,14,"pl-c"]],[[17,21,"pl-c1"],[25,28,"pl-smi"],[29,34,"pl-c1"]],[[15,19,"pl-smi"]],[[10,14,"pl-k"]],[[1,7,"pl-k"]],[[12,32,"pl-c"],[12,14,"pl-c"]],[[15,19,"pl-smi"]],[[1,5,"pl-k"],[6,43,"pl-c"],[6,8,"pl-c"]],[[12,18,"pl-k"]],[[1,6,"pl-k"],[7,44,"pl-c"],[7,9,"pl-c"]],[],[],[],[[4,46,"pl-c1"]],[],[[4,8,"pl-k"]],[[8,46,"pl-c1"]],[],[[8,10,"pl-k"],[16,23,"pl-c1"]],[[17,22,"pl-c1"]],[],[[8,26,"pl-c"],[8,10,"pl-c"]],[],[[29,34,"pl-c1"]],[],[[8,82,"pl-c"],[8,10,"pl-c"]],[[8,11,"pl-k"],[12,16,"pl-k"],[28,52,"pl-smi"]],[[12,18,"pl-k"]],[[11,35,"pl-smi"],[36,41,"pl-c1"]],[],[[8,10,"pl-k"],[14,32,"pl-smi"],[40,51,"pl-smi"]],[[12,18,"pl-k"]],[[8,14,"pl-k"]],[],[],[[4,71,"pl-c"],[4,6,"pl-c"]],[[4,6,"pl-k"],[10,17,"pl-smi"],[18,19,"pl-c1"],[21,26,"pl-c1"]],[[11,18,"pl-smi"],[19,20,"pl-c1"],[22,31,"pl-c1"],[32,41,"pl-s"],[32,33,"pl-pds"],[40,41,"pl-pds"]],[],[[4,72,"pl-c"],[4,6,"pl-c"]],[[4,7,"pl-k"],[8,12,"pl-k"],[21,33,"pl-c1"]],[[8,10,"pl-k"],[11,21,"pl-c1"],[27,32,"pl-smi"],[33,39,"pl-smi"],[40,45,"pl-c1"],[52,59,"pl-smi"],[60,61,"pl-c1"],[64,69,"pl-c1"],[74,88,"pl-smi"]],[[15,39,"pl-smi"],[40,49,"pl-c1"],[55,61,"pl-c1"]],[],[],[[4,66,"pl-c"],[4,6,"pl-c"]],[],[[4,28,"pl-c"],[4,6,"pl-c"]],[[4,7,"pl-k"],[8,12,"pl-k"],[21,33,"pl-c1"]],[[11,35,"pl-smi"],[36,42,"pl-c1"],[46,70,"pl-smi"],[71,76,"pl-c1"],[85,91,"pl-c1"]],[],[[1,6,"pl-k"]],[[4,6,"pl-k"],[7,23,"pl-c1"],[32,47,"pl-smi"],[51,56,"pl-c1"]],[[11,35,"pl-smi"],[36,45,"pl-c1"],[46,49,"pl-k"],[50,75,"pl-c1"]],[[1,6,"pl-k"],[7,34,"pl-c"],[7,9,"pl-c"]],[],[[4,38,"pl-c"],[4,6,"pl-c"]],[[4,6,"pl-k"],[10,16,"pl-smi"],[23,30,"pl-smi"],[37,41,"pl-smi"],[48,62,"pl-smi"]],[[8,41,"pl-c1"],[56,65,"pl-c1"]],[],[[8,14,"pl-k"],[15,33,"pl-c1"]],[],[],[[16,21,"pl-k"]],[[4,7,"pl-k"],[8,12,"pl-k"],[21,39,"pl-c1"]],[[18,27,"pl-c1"]],[[7,19,"pl-smi"],[32,36,"pl-c1"]],[],[[4,33,"pl-c"],[4,6,"pl-c"]],[[4,6,"pl-k"],[18,23,"pl-c1"]],[[8,10,"pl-k"],[14,22,"pl-smi"],[23,30,"pl-c1"],[31,37,"pl-s"],[31,32,"pl-pds"],[36,37,"pl-pds"],[39,43,"pl-c1"],[48,49,"pl-c1"]],[[12,21,"pl-c1"],[32,37,"pl-c1"],[51,54,"pl-c1"]],[[10,14,"pl-k"],[15,17,"pl-k"],[21,29,"pl-smi"],[30,37,"pl-c1"],[38,45,"pl-s"],[38,39,"pl-pds"],[44,45,"pl-pds"],[47,51,"pl-c1"],[56,57,"pl-c1"]],[[12,21,"pl-c1"],[32,37,"pl-c1"],[51,54,"pl-c1"]],[[10,14,"pl-k"],[15,17,"pl-k"],[21,29,"pl-smi"],[30,37,"pl-c1"],[38,44,"pl-s"],[38,39,"pl-pds"],[43,44,"pl-pds"],[46,50,"pl-c1"],[55,56,"pl-c1"]],[[12,21,"pl-c1"],[32,37,"pl-c1"],[51,54,"pl-c1"]],[[10,14,"pl-k"],[15,17,"pl-k"],[21,29,"pl-smi"],[30,37,"pl-c1"],[38,44,"pl-s"],[38,39,"pl-pds"],[43,44,"pl-pds"],[46,50,"pl-c1"],[55,56,"pl-c1"]],[[12,22,"pl-c1"],[26,35,"pl-smi"]],[],[[12,44,"pl-c"],[12,14,"pl-c"]],[[12,17,"pl-k"],[18,22,"pl-k"],[42,43,"pl-c1"]],[[12,15,"pl-k"],[16,22,"pl-c1"],[37,41,"pl-c1"],[46,47,"pl-c1"],[53,54,"pl-c1"]],[[16,19,"pl-k"],[32,41,"pl-c1"],[51,52,"pl-c1"]],[],[[16,21,"pl-k"],[22,26,"pl-k"]],[],[],[],[],[[10,14,"pl-k"],[15,17,"pl-k"],[21,29,"pl-smi"],[30,37,"pl-c1"],[38,44,"pl-s"],[38,39,"pl-pds"],[43,44,"pl-pds"],[46,50,"pl-c1"],[55,56,"pl-c1"]],[[12,91,"pl-c"],[12,14,"pl-c"]],[[12,95,"pl-c"],[12,14,"pl-c"]],[],[],[],[],[],[[4,8,"pl-k"],[53,58,"pl-smi"],[65,80,"pl-smi"],[87,103,"pl-smi"]],[[16,21,"pl-k"]],[],[[4,6,"pl-k"]],[[8,41,"pl-c1"]],[],[[4,93,"pl-c"],[4,6,"pl-c"]],[[4,7,"pl-k"],[8,12,"pl-k"]],[[8,13,"pl-k"],[14,18,"pl-k"]],[],[[8,12,"pl-k"],[23,28,"pl-c1"]],[[8,10,"pl-k"],[14,20,"pl-smi"],[28,35,"pl-smi"]],[[22,26,"pl-c1"]],[],[[8,10,"pl-k"],[12,22,"pl-c1"],[26,32,"pl-smi"],[33,38,"pl-c1"],[45,52,"pl-smi"],[53,54,"pl-c1"],[57,61,"pl-c1"],[66,80,"pl-smi"]],[[22,26,"pl-c1"]],[[8,10,"pl-k"],[11,21,"pl-c1"],[25,31,"pl-smi"],[32,37,"pl-c1"],[44,51,"pl-smi"],[52,53,"pl-c1"],[56,61,"pl-c1"],[66,80,"pl-smi"]],[[22,26,"pl-c1"]],[[8,10,"pl-k"],[12,22,"pl-c1"],[26,38,"pl-smi"],[43,50,"pl-smi"],[51,52,"pl-c1"],[55,59,"pl-c1"],[64,78,"pl-smi"]],[[22,26,"pl-c1"]],[[8,10,"pl-k"],[11,21,"pl-c1"],[25,37,"pl-smi"],[42,49,"pl-smi"],[50,51,"pl-c1"],[54,59,"pl-c1"],[64,78,"pl-smi"]],[[22,26,"pl-c1"]],[[8,10,"pl-k"],[12,22,"pl-c1"],[26,32,"pl-smi"],[37,44,"pl-smi"],[45,46,"pl-c1"],[49,53,"pl-c1"],[58,72,"pl-smi"]],[[22,26,"pl-c1"]],[[8,10,"pl-k"],[11,21,"pl-c1"],[25,31,"pl-smi"],[36,43,"pl-smi"],[44,45,"pl-c1"],[48,53,"pl-c1"],[58,72,"pl-smi"]],[[22,26,"pl-c1"]],[],[[8,10,"pl-k"]],[[15,41,"pl-smi"]],[],[[8,60,"pl-c"],[8,10,"pl-c"]],[[8,10,"pl-k"],[15,19,"pl-smi"],[25,51,"pl-smi"],[58,63,"pl-smi"],[70,74,"pl-smi"]],[[15,20,"pl-smi"],[26,52,"pl-smi"]],[[22,26,"pl-c1"]],[],[[8,10,"pl-k"]],[[12,14,"pl-k"]],[[16,49,"pl-c1"]],[[12,20,"pl-k"]],[],[],[[8,93,"pl-c"],[8,10,"pl-c"]],[[8,10,"pl-k"],[14,19,"pl-smi"]],[[12,20,"pl-k"]],[],[[8,58,"pl-c"],[8,10,"pl-c"]],[[8,10,"pl-k"],[14,29,"pl-smi"]],[[25,34,"pl-c1"]],[[12,20,"pl-k"]],[],[],[[8,84,"pl-c"],[8,10,"pl-c"]],[[8,10,"pl-k"],[14,30,"pl-smi"]],[[12,14,"pl-k"],[38,43,"pl-c1"],[47,59,"pl-smi"],[64,65,"pl-c1"],[73,85,"pl-smi"],[86,87,"pl-c1"],[92,96,"pl-s"],[92,93,"pl-pds"],[93,95,"pl-cce"],[95,96,"pl-pds"]],[[29,38,"pl-c1"]],[[38,44,"pl-c1"],[48,60,"pl-smi"]],[[19,46,"pl-smi"]],[],[[12,20,"pl-k"]],[],[],[[8,58,"pl-c"],[8,10,"pl-c"]],[],[[15,26,"pl-smi"]],[],[[15,28,"pl-smi"]],[[15,22,"pl-smi"],[31,32,"pl-c1"]],[],[[12,36,"pl-c"],[12,14,"pl-c"]],[[15,49,"pl-smi"],[52,53,"pl-c1"]],[[15,43,"pl-smi"],[52,53,"pl-c1"]],[],[[15,37,"pl-smi"],[38,43,"pl-c1"]],[],[[12,45,"pl-c1"]],[],[[15,20,"pl-smi"],[21,26,"pl-c1"]],[],[[12,16,"pl-k"],[28,32,"pl-c1"]],[],[[12,14,"pl-k"]],[[16,98,"pl-c"],[16,18,"pl-c"]],[[19,30,"pl-smi"],[33,38,"pl-c1"]],[[16,77,"pl-c"],[16,18,"pl-c"]],[[19,31,"pl-smi"],[32,37,"pl-c1"]],[[19,38,"pl-smi"],[41,42,"pl-c1"]],[],[[19,44,"pl-smi"],[47,51,"pl-c1"]],[],[[16,54,"pl-c"],[16,18,"pl-c"]],[[19,38,"pl-smi"],[39,44,"pl-c1"]],[],[[1,7,"pl-k"]],[[16,19,"pl-k"]],[[7,38,"pl-c"],[7,9,"pl-c"]],[[0,91,"pl-c"],[0,2,"pl-c"]],[[0,39,"pl-c1"],[40,44,"pl-c1"],[46,76,"pl-c"],[46,48,"pl-c"]],[[65,82,"pl-c"],[65,67,"pl-c"]],[[20,39,"pl-c"],[20,22,"pl-c"]],[[23,29,"pl-c1"]],[[42,47,"pl-c1"]],[],[[1,7,"pl-k"]],[[18,23,"pl-k"],[24,29,"pl-k"]],[[23,36,"pl-smi"]],[[18,23,"pl-k"]],[[20,53,"pl-c1"]],[[55,79,"pl-c1"],[83,88,"pl-c1"]],[[23,36,"pl-smi"]],[],[[1,6,"pl-k"],[7,38,"pl-c"],[7,9,"pl-c"]],[],[[16,100,"pl-c"],[16,18,"pl-c"]],[[16,18,"pl-k"],[22,33,"pl-smi"],[36,37,"pl-c1"]],[[22,38,"pl-smi"],[44,78,"pl-smi"],[85,96,"pl-smi"]],[[31,36,"pl-c1"]],[[23,36,"pl-smi"]],[],[],[[16,18,"pl-k"],[23,39,"pl-smi"],[40,45,"pl-c1"]],[[20,53,"pl-c1"]],[[16,18,"pl-k"],[22,38,"pl-smi"],[39,44,"pl-c1"]],[[31,36,"pl-c1"]],[[14,19,"pl-k"]],[],[[15,35,"pl-c1"]],[],[[12,45,"pl-c1"]],[],[[15,26,"pl-smi"],[29,36,"pl-c1"]],[],[[12,68,"pl-c"],[12,14,"pl-c"]],[[12,14,"pl-k"],[18,29,"pl-smi"],[32,33,"pl-c1"],[40,56,"pl-smi"],[63,74,"pl-smi"]],[[16,21,"pl-k"]],[],[],[],[[4,6,"pl-k"]],[[8,41,"pl-c1"]],[[6,10,"pl-k"]],[],[[14,23,"pl-smi"]],[[14,18,"pl-smi"],[39,43,"pl-c1"]],[[14,22,"pl-smi"],[26,34,"pl-c1"],[48,52,"pl-c1"]],[[8,41,"pl-c1"]],[],[],[[4,10,"pl-k"],[11,29,"pl-c1"]],[],[],[[0,24,"pl-c1"]],[],[[0,3,"pl-k"],[4,38,"pl-smi"],[43,49,"pl-k"],[73,77,"pl-c1"]],[[0,5,"pl-k"],[21,26,"pl-k"],[28,58,"pl-c1"]],[[4,10,"pl-k"],[11,34,"pl-c1"],[63,64,"pl-c1"],[68,75,"pl-c1"]],[],[],[[0,3,"pl-k"],[4,43,"pl-smi"],[48,54,"pl-k"],[69,88,"pl-smi"],[89,93,"pl-c1"]],[[0,5,"pl-k"],[14,49,"pl-c1"]],[[4,10,"pl-k"],[11,39,"pl-c1"],[59,78,"pl-smi"],[79,80,"pl-c1"],[84,91,"pl-c1"]],[],[],[[0,9,"pl-k"],[10,16,"pl-en"]],[[4,8,"pl-k"],[9,29,"pl-en"],[30,35,"pl-k"],[36,40,"pl-k"],[48,51,"pl-k"],[85,89,"pl-k"]],[[8,10,"pl-k"]],[[12,24,"pl-c1"],[27,33,"pl-c1"],[34,57,"pl-c1"],[58,79,"pl-c1"]],[[8,12,"pl-k"]],[[12,24,"pl-c1"],[27,33,"pl-c1"],[34,57,"pl-c1"],[58,79,"pl-c1"]],[],[[2,21,"pl-c"],[2,4,"pl-c"]],[],[[2,22,"pl-c"],[2,4,"pl-c"]],[],[[1,6,"pl-k"],[7,32,"pl-c"],[7,9,"pl-c"]],[],[[1,6,"pl-k"]],[[0,39,"pl-c1"],[40,44,"pl-c1"],[46,98,"pl-c"],[46,48,"pl-c"]],[[0,3,"pl-k"],[4,8,"pl-smi"],[9,12,"pl-k"],[19,23,"pl-k"],[34,40,"pl-k"],[41,57,"pl-c1"],[70,73,"pl-c1"]],[],[[1,6,"pl-k"],[7,44,"pl-c"],[7,9,"pl-c"]],[],[],[],[],[],[],[],[[7,40,"pl-c"],[7,9,"pl-c"]],[[7,34,"pl-c"],[7,9,"pl-c"]],[],[[1,6,"pl-k"]],[[1,6,"pl-k"]],[[1,6,"pl-k"]],[[1,6,"pl-k"],[7,43,"pl-c"],[7,9,"pl-c"]],[],[[1,6,"pl-k"]],[[1,6,"pl-k"]],[[1,6,"pl-k"]],[[1,6,"pl-k"],[7,32,"pl-c"],[7,9,"pl-c"]]],"colorizedLines":null,"csv":null,"csvError":null,"dependabotInfo":{"showConfigurationBanner":false,"configFilePath":null,"networkDependabotPath":"/doctest/doctest/network/updates","dismissConfigurationNoticePath":"/settings/dismiss-notice/dependabot_configuration_notice","configurationNoticeDismissed":null},"displayName":"doctest.h","displayUrl":"https://github.com/doctest/doctest/blob/master/doctest/doctest.h?raw=true","headerInfo":{"blobSize":"314 KB","deleteTooltip":"You must be signed in to make or propose changes","editTooltip":"You must be signed in to make or propose changes","ghDesktopPath":"https://desktop.github.com","isGitLfs":false,"onBranch":true,"shortPath":"5c754cd","siteNavLoginPath":"/login?return_to=https%3A%2F%2Fgithub.com%2Fdoctest%2Fdoctest%2Fblob%2Fmaster%2Fdoctest%2Fdoctest.h","isCSV":false,"isRichtext":false,"toc":null,"lineInfo":{"truncatedLoc":"7106","truncatedSloc":"6010"},"mode":"file"},"image":false,"isCodeownersFile":null,"isPlain":false,"isValidLegacyIssueTemplate":false,"issueTemplate":null,"discussionTemplate":null,"language":"C++","languageID":43,"large":false,"planSupportInfo":{"repoIsFork":null,"repoOwnedByCurrentUser":null,"requestFullPath":"/doctest/doctest/blob/master/doctest/doctest.h","showFreeOrgGatedFeatureMessage":null,"showPlanSupportBanner":null,"upgradeDataAttributes":null,"upgradePath":null},"publishBannersInfo":{"dismissActionNoticePath":"/settings/dismiss-notice/publish_action_from_dockerfile","releasePath":"/doctest/doctest/releases/new?marketplace=true","showPublishActionBanner":false},"rawBlobUrl":"https://github.com/doctest/doctest/raw/refs/heads/master/doctest/doctest.h","renderImageOrRaw":false,"richText":null,"renderedFileInfo":null,"shortPath":null,"symbolsEnabled":true,"tabSize":4,"topBannersInfo":{"overridingGlobalFundingFile":false,"globalPreferredFundingPath":null,"showInvalidCitationWarning":false,"citationHelpUrl":"https://docs.github.com/github/creating-cloning-and-archiving-repositories/creating-a-repository-on-github/about-citation-files","actionsOnboardingTip":null},"truncated":false,"viewable":true,"workflowRedirectUrl":null,"symbols":{"timed_out":true,"not_analyzed":false,"symbols":[{"name":"consume","kind":"function","ident_start":23404,"ident_end":23411,"extent_start":23375,"extent_end":23451,"fully_qualified_name":"consume","ident_utf16":{"start":{"line_number":446,"utf16_col":33},"end":{"line_number":446,"utf16_col":40}},"extent_utf16":{"start":{"line_number":446,"utf16_col":4},"end":{"line_number":446,"utf16_col":80}}},{"name":"basic_ostream","kind":"class","ident_start":26837,"ident_end":26850,"extent_start":26831,"extent_end":26850,"fully_qualified_name":"basic_ostream","ident_utf16":{"start":{"line_number":529,"utf16_col":6},"end":{"line_number":529,"utf16_col":19}},"extent_utf16":{"start":{"line_number":529,"utf16_col":0},"end":{"line_number":529,"utf16_col":19}}},{"name":"ostream","kind":"type","ident_start":26938,"ident_end":26945,"extent_start":26891,"extent_end":26946,"fully_qualified_name":"ostream","ident_utf16":{"start":{"line_number":530,"utf16_col":47},"end":{"line_number":530,"utf16_col":54}},"extent_utf16":{"start":{"line_number":530,"utf16_col":0},"end":{"line_number":530,"utf16_col":55}}},{"name":"basic_istream","kind":"class","ident_start":27146,"ident_end":27159,"extent_start":27140,"extent_end":27159,"fully_qualified_name":"basic_istream","ident_utf16":{"start":{"line_number":535,"utf16_col":6},"end":{"line_number":535,"utf16_col":19}},"extent_utf16":{"start":{"line_number":535,"utf16_col":0},"end":{"line_number":535,"utf16_col":19}}},{"name":"istream","kind":"type","ident_start":27208,"ident_end":27215,"extent_start":27161,"extent_end":27216,"fully_qualified_name":"istream","ident_utf16":{"start":{"line_number":536,"utf16_col":47},"end":{"line_number":536,"utf16_col":54}},"extent_utf16":{"start":{"line_number":536,"utf16_col":0},"end":{"line_number":536,"utf16_col":55}}},{"name":"tuple","kind":"class","ident_start":27280,"ident_end":27285,"extent_start":27274,"extent_end":27285,"fully_qualified_name":"tuple","ident_utf16":{"start":{"line_number":538,"utf16_col":6},"end":{"line_number":538,"utf16_col":11}},"extent_utf16":{"start":{"line_number":538,"utf16_col":0},"end":{"line_number":538,"utf16_col":11}}},{"name":"allocator","kind":"class","ident_start":27448,"ident_end":27457,"extent_start":27442,"extent_end":27457,"fully_qualified_name":"allocator","ident_utf16":{"start":{"line_number":542,"utf16_col":6},"end":{"line_number":542,"utf16_col":15}},"extent_utf16":{"start":{"line_number":542,"utf16_col":0},"end":{"line_number":542,"utf16_col":15}}},{"name":"basic_string","kind":"class","ident_start":27514,"ident_end":27526,"extent_start":27508,"extent_end":27526,"fully_qualified_name":"basic_string","ident_utf16":{"start":{"line_number":544,"utf16_col":6},"end":{"line_number":544,"utf16_col":18}},"extent_utf16":{"start":{"line_number":544,"utf16_col":0},"end":{"line_number":544,"utf16_col":18}}},{"name":"DOCTEST_INTERFACE","kind":"class","ident_start":29125,"ident_end":29142,"extent_start":29119,"extent_end":29142,"fully_qualified_name":"DOCTEST_INTERFACE","ident_utf16":{"start":{"line_number":586,"utf16_col":6},"end":{"line_number":586,"utf16_col":23}},"extent_utf16":{"start":{"line_number":586,"utf16_col":0},"end":{"line_number":586,"utf16_col":23}}},{"name":"view","kind":"class","ident_start":29425,"ident_end":29429,"extent_start":29418,"extent_end":29593,"fully_qualified_name":"view","ident_utf16":{"start":{"line_number":595,"utf16_col":11},"end":{"line_number":595,"utf16_col":15}},"extent_utf16":{"start":{"line_number":595,"utf16_col":4},"end":{"line_number":600,"utf16_col":5}}},{"name":"isOnStack","kind":"function","ident_start":29734,"ident_end":29743,"extent_start":29729,"extent_end":29795,"fully_qualified_name":"isOnStack","ident_utf16":{"start":{"line_number":610,"utf16_col":9},"end":{"line_number":610,"utf16_col":18}},"extent_utf16":{"start":{"line_number":610,"utf16_col":4},"end":{"line_number":610,"utf16_col":70}}},{"name":"DOCTEST_INTERFACE","kind":"class","ident_start":31893,"ident_end":31910,"extent_start":31887,"extent_end":31910,"fully_qualified_name":"DOCTEST_INTERFACE","ident_utf16":{"start":{"line_number":673,"utf16_col":6},"end":{"line_number":673,"utf16_col":23}},"extent_utf16":{"start":{"line_number":673,"utf16_col":0},"end":{"line_number":673,"utf16_col":23}}},{"name":"Enum","kind":"type","ident_start":32431,"ident_end":32435,"extent_start":32426,"extent_end":32739,"fully_qualified_name":"Enum","ident_utf16":{"start":{"line_number":690,"utf16_col":9},"end":{"line_number":690,"utf16_col":13}},"extent_utf16":{"start":{"line_number":690,"utf16_col":4},"end":{"line_number":707,"utf16_col":5}}},{"name":"Enum","kind":"type","ident_start":32879,"ident_end":32883,"extent_start":32874,"extent_end":36155,"fully_qualified_name":"Enum","ident_utf16":{"start":{"line_number":713,"utf16_col":9},"end":{"line_number":713,"utf16_col":13}},"extent_utf16":{"start":{"line_number":713,"utf16_col":4},"end":{"line_number":800,"utf16_col":5}}},{"name":"DOCTEST_INTERFACE","kind":"class","ident_start":37499,"ident_end":37516,"extent_start":37493,"extent_end":37516,"fully_qualified_name":"DOCTEST_INTERFACE","ident_utf16":{"start":{"line_number":844,"utf16_col":10},"end":{"line_number":844,"utf16_col":27}},"extent_utf16":{"start":{"line_number":844,"utf16_col":4},"end":{"line_number":844,"utf16_col":27}}},{"name":"StringContains","kind":"function","ident_start":37723,"ident_end":37737,"extent_start":37723,"extent_end":37815,"fully_qualified_name":"StringContains","ident_utf16":{"start":{"line_number":851,"utf16_col":12},"end":{"line_number":851,"utf16_col":26}},"extent_utf16":{"start":{"line_number":851,"utf16_col":12},"end":{"line_number":851,"utf16_col":104}}},{"name":"check","kind":"function","ident_start":37834,"ident_end":37839,"extent_start":37829,"extent_end":37926,"fully_qualified_name":"check","ident_utf16":{"start":{"line_number":853,"utf16_col":17},"end":{"line_number":853,"utf16_col":22}},"extent_utf16":{"start":{"line_number":853,"utf16_col":12},"end":{"line_number":853,"utf16_col":109}}},{"name":"ContextOptions","kind":"class","ident_start":38894,"ident_end":38908,"extent_start":38887,"extent_end":41710,"fully_qualified_name":"ContextOptions","ident_utf16":{"start":{"line_number":892,"utf16_col":7},"end":{"line_number":892,"utf16_col":21}},"extent_utf16":{"start":{"line_number":892,"utf16_col":0},"end":{"line_number":938,"utf16_col":1}}},{"name":"enable_if","kind":"class","ident_start":41894,"ident_end":41903,"extent_start":41887,"extent_end":41907,"fully_qualified_name":"enable_if","ident_utf16":{"start":{"line_number":946,"utf16_col":15},"end":{"line_number":946,"utf16_col":24}},"extent_utf16":{"start":{"line_number":946,"utf16_col":8},"end":{"line_number":946,"utf16_col":28}}},{"name":"true_type","kind":"class","ident_start":42011,"ident_end":42020,"extent_start":42004,"extent_end":42068,"fully_qualified_name":"true_type","ident_utf16":{"start":{"line_number":951,"utf16_col":15},"end":{"line_number":951,"utf16_col":24}},"extent_utf16":{"start":{"line_number":951,"utf16_col":8},"end":{"line_number":951,"utf16_col":72}}},{"name":"false_type","kind":"class","ident_start":42085,"ident_end":42095,"extent_start":42078,"extent_end":42144,"fully_qualified_name":"false_type","ident_utf16":{"start":{"line_number":952,"utf16_col":15},"end":{"line_number":952,"utf16_col":25}},"extent_utf16":{"start":{"line_number":952,"utf16_col":8},"end":{"line_number":952,"utf16_col":74}}},{"name":"remove_reference","kind":"class","ident_start":42184,"ident_end":42200,"extent_start":42177,"extent_end":42220,"fully_qualified_name":"remove_reference","ident_utf16":{"start":{"line_number":954,"utf16_col":37},"end":{"line_number":954,"utf16_col":53}},"extent_utf16":{"start":{"line_number":954,"utf16_col":30},"end":{"line_number":954,"utf16_col":73}}},{"name":"is_rvalue_reference","kind":"class","ident_start":42419,"ident_end":42438,"extent_start":42412,"extent_end":42455,"fully_qualified_name":"is_rvalue_reference","ident_utf16":{"start":{"line_number":958,"utf16_col":37},"end":{"line_number":958,"utf16_col":56}},"extent_utf16":{"start":{"line_number":958,"utf16_col":30},"end":{"line_number":958,"utf16_col":73}}},{"name":"remove_const","kind":"class","ident_start":42573,"ident_end":42585,"extent_start":42566,"extent_end":42605,"fully_qualified_name":"remove_const","ident_utf16":{"start":{"line_number":961,"utf16_col":36},"end":{"line_number":961,"utf16_col":48}},"extent_utf16":{"start":{"line_number":961,"utf16_col":29},"end":{"line_number":961,"utf16_col":68}}},{"name":"is_enum","kind":"class","ident_start":42756,"ident_end":42763,"extent_start":42749,"extent_end":42819,"fully_qualified_name":"is_enum","ident_utf16":{"start":{"line_number":965,"utf16_col":37},"end":{"line_number":965,"utf16_col":44}},"extent_utf16":{"start":{"line_number":965,"utf16_col":30},"end":{"line_number":965,"utf16_col":100}}},{"name":"underlying_type","kind":"class","ident_start":42858,"ident_end":42873,"extent_start":42851,"extent_end":42912,"fully_qualified_name":"underlying_type","ident_utf16":{"start":{"line_number":966,"utf16_col":37},"end":{"line_number":966,"utf16_col":52}},"extent_utf16":{"start":{"line_number":966,"utf16_col":30},"end":{"line_number":966,"utf16_col":91}}},{"name":"is_pointer","kind":"class","ident_start":42952,"ident_end":42962,"extent_start":42945,"extent_end":42979,"fully_qualified_name":"is_pointer","ident_utf16":{"start":{"line_number":968,"utf16_col":37},"end":{"line_number":968,"utf16_col":47}},"extent_utf16":{"start":{"line_number":968,"utf16_col":30},"end":{"line_number":968,"utf16_col":64}}},{"name":"is_array","kind":"class","ident_start":43088,"ident_end":43096,"extent_start":43081,"extent_end":43113,"fully_qualified_name":"is_array","ident_utf16":{"start":{"line_number":971,"utf16_col":37},"end":{"line_number":971,"utf16_col":45}},"extent_utf16":{"start":{"line_number":971,"utf16_col":30},"end":{"line_number":971,"utf16_col":62}}},{"name":"deferred_false","kind":"class","ident_start":43699,"ident_end":43713,"extent_start":43692,"extent_end":43737,"fully_qualified_name":"deferred_false","ident_utf16":{"start":{"line_number":992,"utf16_col":11},"end":{"line_number":992,"utf16_col":25}},"extent_utf16":{"start":{"line_number":992,"utf16_col":4},"end":{"line_number":992,"utf16_col":49}}},{"name":"has_global_insertion_operator","kind":"class","ident_start":43870,"ident_end":43899,"extent_start":43863,"extent_end":43923,"fully_qualified_name":"has_global_insertion_operator","ident_utf16":{"start":{"line_number":997,"utf16_col":11},"end":{"line_number":997,"utf16_col":40}},"extent_utf16":{"start":{"line_number":997,"utf16_col":4},"end":{"line_number":997,"utf16_col":64}}},{"name":"has_insertion_operator","kind":"class","ident_start":44154,"ident_end":44176,"extent_start":44147,"extent_end":44259,"fully_qualified_name":"has_insertion_operator","ident_utf16":{"start":{"line_number":1003,"utf16_col":11},"end":{"line_number":1003,"utf16_col":33}},"extent_utf16":{"start":{"line_number":1003,"utf16_col":4},"end":{"line_number":1003,"utf16_col":116}}},{"name":"insert","kind":"function","ident_start":44406,"ident_end":44412,"extent_start":44394,"extent_end":44467,"fully_qualified_name":"insert","ident_utf16":{"start":{"line_number":1010,"utf16_col":20},"end":{"line_number":1010,"utf16_col":26}},"extent_utf16":{"start":{"line_number":1010,"utf16_col":8},"end":{"line_number":1010,"utf16_col":81}}},{"name":"insert","kind":"function","ident_start":44557,"ident_end":44563,"extent_start":44545,"extent_end":44616,"fully_qualified_name":"insert","ident_utf16":{"start":{"line_number":1015,"utf16_col":20},"end":{"line_number":1015,"utf16_col":26}},"extent_utf16":{"start":{"line_number":1015,"utf16_col":8},"end":{"line_number":1015,"utf16_col":79}}},{"name":"has_insertion_operator","kind":"class","ident_start":44794,"ident_end":44816,"extent_start":44787,"extent_end":44840,"fully_qualified_name":"has_insertion_operator","ident_utf16":{"start":{"line_number":1022,"utf16_col":11},"end":{"line_number":1022,"utf16_col":33}},"extent_utf16":{"start":{"line_number":1022,"utf16_col":4},"end":{"line_number":1022,"utf16_col":57}}},{"name":"should_stringify_as_underlying_type","kind":"class","ident_start":45052,"ident_end":45087,"extent_start":45045,"extent_end":45229,"fully_qualified_name":"should_stringify_as_underlying_type","ident_utf16":{"start":{"line_number":1029,"utf16_col":11},"end":{"line_number":1029,"utf16_col":46}},"extent_utf16":{"start":{"line_number":1029,"utf16_col":4},"end":{"line_number":1031,"utf16_col":5}}},{"name":"StringMakerBase","kind":"class","ident_start":45354,"ident_end":45369,"extent_start":45347,"extent_end":45699,"fully_qualified_name":"StringMakerBase","ident_utf16":{"start":{"line_number":1037,"utf16_col":11},"end":{"line_number":1037,"utf16_col":26}},"extent_utf16":{"start":{"line_number":1037,"utf16_col":4},"end":{"line_number":1045,"utf16_col":5}}},{"name":"convert","kind":"function","ident_start":45424,"ident_end":45431,"extent_start":45410,"extent_end":45693,"fully_qualified_name":"StringMakerBase::convert","ident_utf16":{"start":{"line_number":1039,"utf16_col":22},"end":{"line_number":1039,"utf16_col":29}},"extent_utf16":{"start":{"line_number":1039,"utf16_col":8},"end":{"line_number":1044,"utf16_col":9}}},{"name":"filloss","kind":"function","ident_start":45785,"ident_end":45792,"extent_start":45780,"extent_end":45874,"fully_qualified_name":"filloss","ident_utf16":{"start":{"line_number":1051,"utf16_col":9},"end":{"line_number":1051,"utf16_col":16}},"extent_utf16":{"start":{"line_number":1051,"utf16_col":4},"end":{"line_number":1053,"utf16_col":5}}},{"name":"filloss","kind":"function","ident_start":45921,"ident_end":45928,"extent_start":45916,"extent_end":46178,"fully_qualified_name":"filloss","ident_utf16":{"start":{"line_number":1056,"utf16_col":9},"end":{"line_number":1056,"utf16_col":16}},"extent_utf16":{"start":{"line_number":1056,"utf16_col":4},"end":{"line_number":1060,"utf16_col":5}}},{"name":"toStream","kind":"function","ident_start":46217,"ident_end":46225,"extent_start":46210,"extent_end":46344,"fully_qualified_name":"toStream","ident_utf16":{"start":{"line_number":1063,"utf16_col":11},"end":{"line_number":1063,"utf16_col":19}},"extent_utf16":{"start":{"line_number":1063,"utf16_col":4},"end":{"line_number":1067,"utf16_col":5}}},{"name":"convert","kind":"function","ident_start":46449,"ident_end":46456,"extent_start":46435,"extent_end":46531,"fully_qualified_name":"convert","ident_utf16":{"start":{"line_number":1072,"utf16_col":22},"end":{"line_number":1072,"utf16_col":29}},"extent_utf16":{"start":{"line_number":1072,"utf16_col":8},"end":{"line_number":1074,"utf16_col":9}}},{"name":"StringMaker","kind":"class","ident_start":46591,"ident_end":46602,"extent_start":46584,"extent_end":46761,"fully_qualified_name":"StringMaker","ident_utf16":{"start":{"line_number":1079,"utf16_col":7},"end":{"line_number":1079,"utf16_col":18}},"extent_utf16":{"start":{"line_number":1079,"utf16_col":0},"end":{"line_number":1081,"utf16_col":2}}},{"name":"toString","kind":"function","ident_start":46995,"ident_end":47003,"extent_start":46988,"extent_end":47525,"fully_qualified_name":"toString","ident_utf16":{"start":{"line_number":1092,"utf16_col":7},"end":{"line_number":1092,"utf16_col":15}},"extent_utf16":{"start":{"line_number":1092,"utf16_col":0},"end":{"line_number":1102,"utf16_col":1}}},{"name":"toString","kind":"function","ident_start":47666,"ident_end":47674,"extent_start":47659,"extent_end":47754,"fully_qualified_name":"toString","ident_utf16":{"start":{"line_number":1105,"utf16_col":7},"end":{"line_number":1105,"utf16_col":15}},"extent_utf16":{"start":{"line_number":1105,"utf16_col":0},"end":{"line_number":1107,"utf16_col":1}}},{"name":"toString","kind":"function","ident_start":49090,"ident_end":49098,"extent_start":49083,"extent_end":49256,"fully_qualified_name":"toString","ident_utf16":{"start":{"line_number":1141,"utf16_col":7},"end":{"line_number":1141,"utf16_col":15}},"extent_utf16":{"start":{"line_number":1141,"utf16_col":0},"end":{"line_number":1144,"utf16_col":1}}},{"name":"filldata","kind":"class","ident_start":49314,"ident_end":49322,"extent_start":49307,"extent_end":49541,"fully_qualified_name":"filldata","ident_utf16":{"start":{"line_number":1148,"utf16_col":11},"end":{"line_number":1148,"utf16_col":19}},"extent_utf16":{"start":{"line_number":1148,"utf16_col":4},"end":{"line_number":1157,"utf16_col":5}}},{"name":"fill","kind":"function","ident_start":49349,"ident_end":49353,"extent_start":49337,"extent_end":49535,"fully_qualified_name":"filldata::fill","ident_utf16":{"start":{"line_number":1150,"utf16_col":20},"end":{"line_number":1150,"utf16_col":24}},"extent_utf16":{"start":{"line_number":1150,"utf16_col":8},"end":{"line_number":1156,"utf16_col":9}}},{"name":"fill","kind":"function","ident_start":49707,"ident_end":49711,"extent_start":49695,"extent_end":49981,"fully_qualified_name":"fill","ident_utf16":{"start":{"line_number":1163,"utf16_col":20},"end":{"line_number":1163,"utf16_col":24}},"extent_utf16":{"start":{"line_number":1163,"utf16_col":8},"end":{"line_number":1170,"utf16_col":9}}},{"name":"fill","kind":"function","ident_start":50235,"ident_end":50239,"extent_start":50020,"extent_end":50352,"fully_qualified_name":"fill","ident_utf16":{"start":{"line_number":1179,"utf16_col":20},"end":{"line_number":1179,"utf16_col":24}},"extent_utf16":{"start":{"line_number":1173,"utf16_col":0},"end":{"line_number":1181,"utf16_col":9}}},{"name":"fill","kind":"function","ident_start":50684,"ident_end":50688,"extent_start":50672,"extent_end":51115,"fully_qualified_name":"fill","ident_utf16":{"start":{"line_number":1193,"utf16_col":20},"end":{"line_number":1193,"utf16_col":24}},"extent_utf16":{"start":{"line_number":1193,"utf16_col":8},"end":{"line_number":1204,"utf16_col":9}}},{"name":"Approx","kind":"function","ident_start":51312,"ident_end":51318,"extent_start":51303,"extent_end":51544,"fully_qualified_name":"Approx","ident_utf16":{"start":{"line_number":1216,"utf16_col":13},"end":{"line_number":1216,"utf16_col":19}},"extent_utf16":{"start":{"line_number":1216,"utf16_col":4},"end":{"line_number":1220,"utf16_col":5}}},{"name":"epsilon","kind":"function","ident_start":51784,"ident_end":51791,"extent_start":51704,"extent_end":51908,"fully_qualified_name":"epsilon","ident_utf16":{"start":{"line_number":1227,"utf16_col":84},"end":{"line_number":1227,"utf16_col":91}},"extent_utf16":{"start":{"line_number":1227,"utf16_col":4},"end":{"line_number":1231,"utf16_col":5}}},{"name":"scale","kind":"function","ident_start":52145,"ident_end":52150,"extent_start":52065,"extent_end":52261,"fully_qualified_name":"scale","ident_utf16":{"start":{"line_number":1238,"utf16_col":84},"end":{"line_number":1238,"utf16_col":89}},"extent_utf16":{"start":{"line_number":1238,"utf16_col":4},"end":{"line_number":1242,"utf16_col":5}}},{"name":"IsNaN","kind":"function","ident_start":55341,"ident_end":55346,"extent_start":55341,"extent_end":55400,"fully_qualified_name":"IsNaN","ident_utf16":{"start":{"line_number":1293,"utf16_col":4},"end":{"line_number":1293,"utf16_col":9}},"extent_utf16":{"start":{"line_number":1293,"utf16_col":4},"end":{"line_number":1293,"utf16_col":63}}},{"name":"decay_array","kind":"class","ident_start":56038,"ident_end":56049,"extent_start":56031,"extent_end":56075,"fully_qualified_name":"decay_array","ident_utf16":{"start":{"line_number":1311,"utf16_col":43},"end":{"line_number":1311,"utf16_col":54}},"extent_utf16":{"start":{"line_number":1311,"utf16_col":36},"end":{"line_number":1311,"utf16_col":80}}},{"name":"not_char_pointer","kind":"class","ident_start":56275,"ident_end":56291,"extent_start":56268,"extent_end":56348,"fully_qualified_name":"not_char_pointer","ident_utf16":{"start":{"line_number":1315,"utf16_col":31},"end":{"line_number":1315,"utf16_col":47}},"extent_utf16":{"start":{"line_number":1315,"utf16_col":24},"end":{"line_number":1315,"utf16_col":104}}},{"name":"can_use_op","kind":"class","ident_start":56592,"ident_end":56602,"extent_start":56585,"extent_end":56662,"fully_qualified_name":"can_use_op","ident_utf16":{"start":{"line_number":1319,"utf16_col":29},"end":{"line_number":1319,"utf16_col":39}},"extent_utf16":{"start":{"line_number":1319,"utf16_col":22},"end":{"line_number":1319,"utf16_col":99}}},{"name":"Subcase","kind":"function","ident_start":57214,"ident_end":57221,"extent_start":57214,"extent_end":57247,"fully_qualified_name":"Subcase","ident_utf16":{"start":{"line_number":1340,"utf16_col":8},"end":{"line_number":1340,"utf16_col":15}},"extent_utf16":{"start":{"line_number":1340,"utf16_col":8},"end":{"line_number":1340,"utf16_col":41}}},{"name":"Subcase","kind":"function","ident_start":57256,"ident_end":57263,"extent_start":57256,"extent_end":57284,"fully_qualified_name":"Subcase","ident_utf16":{"start":{"line_number":1341,"utf16_col":8},"end":{"line_number":1341,"utf16_col":15}},"extent_utf16":{"start":{"line_number":1341,"utf16_col":8},"end":{"line_number":1341,"utf16_col":36}}},{"name":"stringifyBinaryExpr","kind":"function","ident_start":57546,"ident_end":57565,"extent_start":57539,"extent_end":57755,"fully_qualified_name":"stringifyBinaryExpr","ident_utf16":{"start":{"line_number":1353,"utf16_col":11},"end":{"line_number":1353,"utf16_col":30}},"extent_utf16":{"start":{"line_number":1353,"utf16_col":4},"end":{"line_number":1356,"utf16_col":5}}},{"name":"Result","kind":"function","ident_start":60244,"ident_end":60250,"extent_start":60244,"extent_end":60263,"fully_qualified_name":"Result","ident_utf16":{"start":{"line_number":1399,"utf16_col":8},"end":{"line_number":1399,"utf16_col":14}},"extent_utf16":{"start":{"line_number":1399,"utf16_col":8},"end":{"line_number":1399,"utf16_col":27}}},{"name":"Expression_lhs","kind":"class","ident_start":65051,"ident_end":65065,"extent_start":65044,"extent_end":73973,"fully_qualified_name":"Expression_lhs","ident_utf16":{"start":{"line_number":1498,"utf16_col":11},"end":{"line_number":1498,"utf16_col":25}},"extent_utf16":{"start":{"line_number":1498,"utf16_col":4},"end":{"line_number":1719,"utf16_col":5}}},{"name":"Expression_lhs","kind":"function","ident_start":65151,"ident_end":65165,"extent_start":65142,"extent_end":65268,"fully_qualified_name":"Expression_lhs::Expression_lhs","ident_utf16":{"start":{"line_number":1503,"utf16_col":17},"end":{"line_number":1503,"utf16_col":31}},"extent_utf16":{"start":{"line_number":1503,"utf16_col":8},"end":{"line_number":1505,"utf16_col":29}}},{"name":"Result","kind":"function","ident_start":65304,"ident_end":65310,"extent_start":65278,"extent_end":65806,"fully_qualified_name":"Expression_lhs::Result","ident_utf16":{"start":{"line_number":1507,"utf16_col":34},"end":{"line_number":1507,"utf16_col":40}},"extent_utf16":{"start":{"line_number":1507,"utf16_col":8},"end":{"line_number":1520,"utf16_col":9}}},{"name":"if","kind":"function","ident_start":65523,"ident_end":65525,"extent_start":65477,"extent_end":65640,"fully_qualified_name":"Expression_lhs::if","ident_utf16":{"start":{"line_number":1512,"utf16_col":12},"end":{"line_number":1512,"utf16_col":14}},"extent_utf16":{"start":{"line_number":1511,"utf16_col":0},"end":{"line_number":1514,"utf16_col":13}}},{"name":"L","kind":"class","ident_start":71746,"ident_end":71747,"extent_start":71740,"extent_end":71747,"fully_qualified_name":"Expression_lhs::L","ident_utf16":{"start":{"line_number":1667,"utf16_col":25},"end":{"line_number":1667,"utf16_col":26}},"extent_utf16":{"start":{"line_number":1667,"utf16_col":19},"end":{"line_number":1667,"utf16_col":26}}},{"name":"R","kind":"class","ident_start":71755,"ident_end":71756,"extent_start":71749,"extent_end":71756,"fully_qualified_name":"Expression_lhs::R","ident_utf16":{"start":{"line_number":1667,"utf16_col":34},"end":{"line_number":1667,"utf16_col":35}},"extent_utf16":{"start":{"line_number":1667,"utf16_col":28},"end":{"line_number":1667,"utf16_col":35}}},{"name":"RelationalComparator","kind":"class","ident_start":71765,"ident_end":71785,"extent_start":71758,"extent_end":71902,"fully_qualified_name":"Expression_lhs::RelationalComparator","ident_utf16":{"start":{"line_number":1667,"utf16_col":44},"end":{"line_number":1667,"utf16_col":64}},"extent_utf16":{"start":{"line_number":1667,"utf16_col":37},"end":{"line_number":1667,"utf16_col":181}}},{"name":"R","kind":"class","ident_start":71980,"ident_end":71981,"extent_start":71974,"extent_end":71981,"fully_qualified_name":"Expression_lhs::R","ident_utf16":{"start":{"line_number":1670,"utf16_col":29},"end":{"line_number":1670,"utf16_col":30}},"extent_utf16":{"start":{"line_number":1670,"utf16_col":23},"end":{"line_number":1670,"utf16_col":30}}},{"name":"binary_assert","kind":"function","ident_start":73060,"ident_end":73073,"extent_start":73038,"extent_end":73435,"fully_qualified_name":"Expression_lhs::binary_assert","ident_utf16":{"start":{"line_number":1691,"utf16_col":30},"end":{"line_number":1691,"utf16_col":43}},"extent_utf16":{"start":{"line_number":1691,"utf16_col":8},"end":{"line_number":1698,"utf16_col":9}}},{"name":"unary_assert","kind":"function","ident_start":73497,"ident_end":73509,"extent_start":73475,"extent_end":73882,"fully_qualified_name":"Expression_lhs::unary_assert","ident_utf16":{"start":{"line_number":1701,"utf16_col":30},"end":{"line_number":1701,"utf16_col":42}},"extent_utf16":{"start":{"line_number":1701,"utf16_col":8},"end":{"line_number":1713,"utf16_col":9}}},{"name":"Enum","kind":"type","ident_start":74018,"ident_end":74022,"extent_start":74013,"extent_end":74128,"fully_qualified_name":"Enum","ident_utf16":{"start":{"line_number":1722,"utf16_col":13},"end":{"line_number":1722,"utf16_col":17}},"extent_utf16":{"start":{"line_number":1722,"utf16_col":8},"end":{"line_number":1727,"utf16_col":9}}},{"name":"binary_assert","kind":"function","ident_start":76864,"ident_end":76877,"extent_start":76842,"extent_end":77707,"fully_qualified_name":"binary_assert","ident_utf16":{"start":{"line_number":1763,"utf16_col":26},"end":{"line_number":1763,"utf16_col":39}},"extent_utf16":{"start":{"line_number":1763,"utf16_col":4},"end":{"line_number":1775,"utf16_col":5}}},{"name":"unary_assert","kind":"function","ident_start":77761,"ident_end":77773,"extent_start":77739,"extent_end":78573,"fully_qualified_name":"unary_assert","ident_utf16":{"start":{"line_number":1778,"utf16_col":26},"end":{"line_number":1778,"utf16_col":38}},"extent_utf16":{"start":{"line_number":1778,"utf16_col":4},"end":{"line_number":1792,"utf16_col":5}}},{"name":"ExceptionTranslator","kind":"class","ident_start":78782,"ident_end":78801,"extent_start":78776,"extent_end":79692,"fully_qualified_name":"ExceptionTranslator","ident_utf16":{"start":{"line_number":1801,"utf16_col":10},"end":{"line_number":1801,"utf16_col":29}},"extent_utf16":{"start":{"line_number":1801,"utf16_col":4},"end":{"line_number":1823,"utf16_col":5}}},{"name":"ExceptionTranslator","kind":"function","ident_start":78905,"ident_end":78924,"extent_start":78896,"extent_end":79016,"fully_qualified_name":"ExceptionTranslator::ExceptionTranslator","ident_utf16":{"start":{"line_number":1804,"utf16_col":17},"end":{"line_number":1804,"utf16_col":36}},"extent_utf16":{"start":{"line_number":1804,"utf16_col":8},"end":{"line_number":1805,"utf16_col":59}}},{"name":"translate","kind":"function","ident_start":79031,"ident_end":79040,"extent_start":79026,"extent_end":79630,"fully_qualified_name":"ExceptionTranslator::translate","ident_utf16":{"start":{"line_number":1807,"utf16_col":13},"end":{"line_number":1807,"utf16_col":22}},"extent_utf16":{"start":{"line_number":1807,"utf16_col":8},"end":{"line_number":1819,"utf16_col":9}}},{"name":"ContextScopeBase","kind":"function","ident_start":80016,"ident_end":80032,"extent_start":80016,"extent_end":80067,"fully_qualified_name":"ContextScopeBase","ident_utf16":{"start":{"line_number":1830,"utf16_col":8},"end":{"line_number":1830,"utf16_col":24}},"extent_utf16":{"start":{"line_number":1830,"utf16_col":8},"end":{"line_number":1830,"utf16_col":59}}},{"name":"ContextScope","kind":"class","ident_start":80461,"ident_end":80473,"extent_start":80455,"extent_end":81119,"fully_qualified_name":"ContextScope","ident_utf16":{"start":{"line_number":1845,"utf16_col":32},"end":{"line_number":1845,"utf16_col":44}},"extent_utf16":{"start":{"line_number":1845,"utf16_col":26},"end":{"line_number":1866,"utf16_col":5}}},{"name":"ContextScope","kind":"function","ident_start":80555,"ident_end":80567,"extent_start":80546,"extent_end":80605,"fully_qualified_name":"ContextScope::ContextScope","ident_utf16":{"start":{"line_number":1850,"utf16_col":17},"end":{"line_number":1850,"utf16_col":29}},"extent_utf16":{"start":{"line_number":1850,"utf16_col":8},"end":{"line_number":1850,"utf16_col":67}}},{"name":"ContextScope","kind":"function","ident_start":80623,"ident_end":80635,"extent_start":80614,"extent_end":80687,"fully_qualified_name":"ContextScope::ContextScope","ident_utf16":{"start":{"line_number":1851,"utf16_col":17},"end":{"line_number":1851,"utf16_col":29}},"extent_utf16":{"start":{"line_number":1851,"utf16_col":8},"end":{"line_number":1851,"utf16_col":81}}},{"name":"ContextScope","kind":"function","ident_start":80697,"ident_end":80709,"extent_start":80697,"extent_end":80740,"fully_qualified_name":"ContextScope::ContextScope","ident_utf16":{"start":{"line_number":1853,"utf16_col":8},"end":{"line_number":1853,"utf16_col":20}},"extent_utf16":{"start":{"line_number":1853,"utf16_col":8},"end":{"line_number":1853,"utf16_col":51}}},{"name":"ContextScope","kind":"function","ident_start":80749,"ident_end":80761,"extent_start":80749,"extent_end":80797,"fully_qualified_name":"ContextScope::ContextScope","ident_utf16":{"start":{"line_number":1854,"utf16_col":8},"end":{"line_number":1854,"utf16_col":20}},"extent_utf16":{"start":{"line_number":1854,"utf16_col":8},"end":{"line_number":1854,"utf16_col":56}}},{"name":"stringify","kind":"function","ident_start":80934,"ident_end":80943,"extent_start":80929,"extent_end":80991,"fully_qualified_name":"ContextScope::stringify","ident_utf16":{"start":{"line_number":1859,"utf16_col":13},"end":{"line_number":1859,"utf16_col":22}},"extent_utf16":{"start":{"line_number":1859,"utf16_col":8},"end":{"line_number":1859,"utf16_col":70}}},{"name":"MessageBuilder","kind":"function","ident_start":81352,"ident_end":81366,"extent_start":81352,"extent_end":81399,"fully_qualified_name":"MessageBuilder","ident_utf16":{"start":{"line_number":1875,"utf16_col":8},"end":{"line_number":1875,"utf16_col":22}},"extent_utf16":{"start":{"line_number":1875,"utf16_col":8},"end":{"line_number":1875,"utf16_col":55}}},{"name":"MessageBuilder","kind":"function","ident_start":81408,"ident_end":81422,"extent_start":81408,"extent_end":81450,"fully_qualified_name":"MessageBuilder","ident_utf16":{"start":{"line_number":1876,"utf16_col":8},"end":{"line_number":1876,"utf16_col":22}},"extent_utf16":{"start":{"line_number":1876,"utf16_col":8},"end":{"line_number":1876,"utf16_col":50}}},{"name":"MakeContextScope","kind":"function","ident_start":82744,"ident_end":82760,"extent_start":82728,"extent_end":82825,"fully_qualified_name":"MakeContextScope","ident_utf16":{"start":{"line_number":1908,"utf16_col":20},"end":{"line_number":1908,"utf16_col":36}},"extent_utf16":{"start":{"line_number":1908,"utf16_col":4},"end":{"line_number":1910,"utf16_col":5}}},{"name":"toStreamLit","kind":"function","ident_start":185307,"ident_end":185318,"extent_start":185300,"extent_end":185423,"fully_qualified_name":"toStreamLit","ident_utf16":{"start":{"line_number":3923,"utf16_col":11},"end":{"line_number":3923,"utf16_col":22}},"extent_utf16":{"start":{"line_number":3923,"utf16_col":4},"end":{"line_number":3927,"utf16_col":5}}},{"name":"toString","kind":"function","ident_start":185482,"ident_end":185490,"extent_start":185475,"extent_end":185568,"fully_qualified_name":"toString","ident_utf16":{"start":{"line_number":3931,"utf16_col":7},"end":{"line_number":3931,"utf16_col":15}},"extent_utf16":{"start":{"line_number":3931,"utf16_col":0},"end":{"line_number":3931,"utf16_col":93}}},{"name":"toString","kind":"function","ident_start":185763,"ident_end":185771,"extent_start":185756,"extent_end":185817,"fully_qualified_name":"toString","ident_utf16":{"start":{"line_number":3936,"utf16_col":7},"end":{"line_number":3936,"utf16_col":15}},"extent_utf16":{"start":{"line_number":3936,"utf16_col":0},"end":{"line_number":3936,"utf16_col":61}}},{"name":"toString","kind":"function","ident_start":185844,"ident_end":185852,"extent_start":185837,"extent_end":185878,"fully_qualified_name":"toString","ident_utf16":{"start":{"line_number":3939,"utf16_col":7},"end":{"line_number":3939,"utf16_col":15}},"extent_utf16":{"start":{"line_number":3939,"utf16_col":0},"end":{"line_number":3939,"utf16_col":41}}},{"name":"toString","kind":"function","ident_start":185887,"ident_end":185895,"extent_start":185880,"extent_end":185933,"fully_qualified_name":"toString","ident_utf16":{"start":{"line_number":3941,"utf16_col":7},"end":{"line_number":3941,"utf16_col":15}},"extent_utf16":{"start":{"line_number":3941,"utf16_col":0},"end":{"line_number":3941,"utf16_col":53}}},{"name":"toString","kind":"function","ident_start":185942,"ident_end":185950,"extent_start":185935,"extent_end":185993,"fully_qualified_name":"toString","ident_utf16":{"start":{"line_number":3943,"utf16_col":7},"end":{"line_number":3943,"utf16_col":15}},"extent_utf16":{"start":{"line_number":3943,"utf16_col":0},"end":{"line_number":3943,"utf16_col":58}}},{"name":"toString","kind":"function","ident_start":186002,"ident_end":186010,"extent_start":185995,"extent_end":186048,"fully_qualified_name":"toString","ident_utf16":{"start":{"line_number":3945,"utf16_col":7},"end":{"line_number":3945,"utf16_col":15}},"extent_utf16":{"start":{"line_number":3945,"utf16_col":0},"end":{"line_number":3945,"utf16_col":53}}},{"name":"toString","kind":"function","ident_start":186056,"ident_end":186064,"extent_start":186049,"extent_end":186103,"fully_qualified_name":"toString","ident_utf16":{"start":{"line_number":3946,"utf16_col":7},"end":{"line_number":3946,"utf16_col":15}},"extent_utf16":{"start":{"line_number":3946,"utf16_col":0},"end":{"line_number":3946,"utf16_col":54}}},{"name":"toString","kind":"function","ident_start":186111,"ident_end":186119,"extent_start":186104,"extent_end":186163,"fully_qualified_name":"toString","ident_utf16":{"start":{"line_number":3947,"utf16_col":7},"end":{"line_number":3947,"utf16_col":15}},"extent_utf16":{"start":{"line_number":3947,"utf16_col":0},"end":{"line_number":3947,"utf16_col":59}}},{"name":"toString","kind":"function","ident_start":186172,"ident_end":186180,"extent_start":186165,"extent_end":186238,"fully_qualified_name":"toString","ident_utf16":{"start":{"line_number":3949,"utf16_col":7},"end":{"line_number":3949,"utf16_col":15}},"extent_utf16":{"start":{"line_number":3949,"utf16_col":0},"end":{"line_number":3949,"utf16_col":73}}},{"name":"toString","kind":"function","ident_start":186246,"ident_end":186254,"extent_start":186239,"extent_end":186319,"fully_qualified_name":"toString","ident_utf16":{"start":{"line_number":3950,"utf16_col":7},"end":{"line_number":3950,"utf16_col":15}},"extent_utf16":{"start":{"line_number":3950,"utf16_col":0},"end":{"line_number":3950,"utf16_col":80}}},{"name":"toString","kind":"function","ident_start":186327,"ident_end":186335,"extent_start":186320,"extent_end":186404,"fully_qualified_name":"toString","ident_utf16":{"start":{"line_number":3951,"utf16_col":7},"end":{"line_number":3951,"utf16_col":15}},"extent_utf16":{"start":{"line_number":3951,"utf16_col":0},"end":{"line_number":3951,"utf16_col":84}}},{"name":"toString","kind":"function","ident_start":186412,"ident_end":186420,"extent_start":186405,"extent_end":186458,"fully_qualified_name":"toString","ident_utf16":{"start":{"line_number":3952,"utf16_col":7},"end":{"line_number":3952,"utf16_col":15}},"extent_utf16":{"start":{"line_number":3952,"utf16_col":0},"end":{"line_number":3952,"utf16_col":53}}},{"name":"toString","kind":"function","ident_start":186466,"ident_end":186474,"extent_start":186459,"extent_end":186521,"fully_qualified_name":"toString","ident_utf16":{"start":{"line_number":3953,"utf16_col":7},"end":{"line_number":3953,"utf16_col":15}},"extent_utf16":{"start":{"line_number":3953,"utf16_col":0},"end":{"line_number":3953,"utf16_col":62}}},{"name":"toString","kind":"function","ident_start":186529,"ident_end":186537,"extent_start":186522,"extent_end":186576,"fully_qualified_name":"toString","ident_utf16":{"start":{"line_number":3954,"utf16_col":7},"end":{"line_number":3954,"utf16_col":15}},"extent_utf16":{"start":{"line_number":3954,"utf16_col":0},"end":{"line_number":3954,"utf16_col":54}}},{"name":"toString","kind":"function","ident_start":186584,"ident_end":186592,"extent_start":186577,"extent_end":186633,"fully_qualified_name":"toString","ident_utf16":{"start":{"line_number":3955,"utf16_col":7},"end":{"line_number":3955,"utf16_col":15}},"extent_utf16":{"start":{"line_number":3955,"utf16_col":0},"end":{"line_number":3955,"utf16_col":56}}},{"name":"toString","kind":"function","ident_start":186641,"ident_end":186649,"extent_start":186634,"extent_end":186686,"fully_qualified_name":"toString","ident_utf16":{"start":{"line_number":3956,"utf16_col":7},"end":{"line_number":3956,"utf16_col":15}},"extent_utf16":{"start":{"line_number":3956,"utf16_col":0},"end":{"line_number":3956,"utf16_col":52}}},{"name":"toString","kind":"function","ident_start":186694,"ident_end":186702,"extent_start":186687,"extent_end":186748,"fully_qualified_name":"toString","ident_utf16":{"start":{"line_number":3957,"utf16_col":7},"end":{"line_number":3957,"utf16_col":15}},"extent_utf16":{"start":{"line_number":3957,"utf16_col":0},"end":{"line_number":3957,"utf16_col":61}}},{"name":"toString","kind":"function","ident_start":186756,"ident_end":186764,"extent_start":186749,"extent_end":186806,"fully_qualified_name":"toString","ident_utf16":{"start":{"line_number":3958,"utf16_col":7},"end":{"line_number":3958,"utf16_col":15}},"extent_utf16":{"start":{"line_number":3958,"utf16_col":0},"end":{"line_number":3958,"utf16_col":57}}},{"name":"toString","kind":"function","ident_start":186814,"ident_end":186822,"extent_start":186807,"extent_end":186873,"fully_qualified_name":"toString","ident_utf16":{"start":{"line_number":3959,"utf16_col":7},"end":{"line_number":3959,"utf16_col":15}},"extent_utf16":{"start":{"line_number":3959,"utf16_col":0},"end":{"line_number":3959,"utf16_col":66}}},{"name":"Approx","kind":"method","ident_start":186883,"ident_end":186889,"extent_start":186875,"extent_end":187040,"fully_qualified_name":"Approx::Approx","ident_utf16":{"start":{"line_number":3961,"utf16_col":8},"end":{"line_number":3961,"utf16_col":14}},"extent_utf16":{"start":{"line_number":3961,"utf16_col":0},"end":{"line_number":3964,"utf16_col":27}}},{"name":"toString","kind":"function","ident_start":188610,"ident_end":188618,"extent_start":188603,"extent_end":188702,"fully_qualified_name":"toString","ident_utf16":{"start":{"line_number":3999,"utf16_col":7},"end":{"line_number":3999,"utf16_col":15}},"extent_utf16":{"start":{"line_number":3999,"utf16_col":0},"end":{"line_number":4001,"utf16_col":1}}},{"name":"toString","kind":"function","ident_start":189170,"ident_end":189178,"extent_start":189163,"extent_end":189283,"fully_qualified_name":"toString","ident_utf16":{"start":{"line_number":4014,"utf16_col":7},"end":{"line_number":4014,"utf16_col":15}},"extent_utf16":{"start":{"line_number":4014,"utf16_col":0},"end":{"line_number":4014,"utf16_col":120}}},{"name":"toString","kind":"function","ident_start":189291,"ident_end":189299,"extent_start":189284,"extent_end":189348,"fully_qualified_name":"toString","ident_utf16":{"start":{"line_number":4015,"utf16_col":7},"end":{"line_number":4015,"utf16_col":15}},"extent_utf16":{"start":{"line_number":4015,"utf16_col":0},"end":{"line_number":4015,"utf16_col":64}}},{"name":"toString","kind":"function","ident_start":189356,"ident_end":189364,"extent_start":189349,"extent_end":189415,"fully_qualified_name":"toString","ident_utf16":{"start":{"line_number":4016,"utf16_col":7},"end":{"line_number":4016,"utf16_col":15}},"extent_utf16":{"start":{"line_number":4016,"utf16_col":0},"end":{"line_number":4016,"utf16_col":66}}},{"name":"toString","kind":"function","ident_start":189423,"ident_end":189431,"extent_start":189416,"extent_end":189492,"fully_qualified_name":"toString","ident_utf16":{"start":{"line_number":4017,"utf16_col":7},"end":{"line_number":4017,"utf16_col":15}},"extent_utf16":{"start":{"line_number":4017,"utf16_col":0},"end":{"line_number":4017,"utf16_col":76}}}]}},"copilotInfo":null,"copilotAccessAllowed":false,"modelsAccessAllowed":false,"modelsRepoIntegrationEnabled":false,"csrf_tokens":{"/doctest/doctest/branches":{"post":"oSfUnW8KYhmx7T2UzlFobsTlbfyuE9CDqBZ-RKtn75i26yf9OzJFX92uocu2PX3QtHd_EKaCrVtsonZMyJE0XA"},"/repos/preferences":{"post":"Qctp1SFgbgRL5Bg4U8ezRjky0K2jgiIfW2OsPBDPeGivcgJrNm_HD-PEeG5flAeIL8bilLD9pS0o7j9DkuKcLQ"}}},"title":"doctest/doctest/doctest.h at master · doctest/doctest","appPayload":{"helpUrl":"https://docs.github.com","findFileWorkerPath":"/assets-cdn/worker/find-file-worker-7d7eb7c71814.js","findInFileWorkerPath":"/assets-cdn/worker/find-in-file-worker-708ec8ade250.js","githubDevUrl":null,"enabled_features":{"code_nav_ui_events":false,"overview_shared_code_dropdown_button":true,"react_blob_overlay":false,"accessible_code_button":true,"github_models_repo_integration":false}}}</script>
<div data-target="react-app.reactRoot"><style data-styled="true" data-styled-version="5.3.11">.gISSDQ{width:100%;}/*!sc*/
@media screen and (min-width:544px){.gISSDQ{width:100%;}}/*!sc*/
@media screen and (min-width:768px){.gISSDQ{width:auto;}}/*!sc*/
.bHLmSv{position:absolute;inset:0 -2px;cursor:col-resize;background-color:transparent;-webkit-transition-delay:0.1s;transition-delay:0.1s;}/*!sc*/
.bHLmSv:hover{background-color:var(--bgColor-neutral-muted,var(--color-neutral-muted,rgba(175,184,193,0.2)));}/*!sc*/
.leYMvG{margin-left:auto;margin-right:auto;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;padding-bottom:40px;max-width:100%;margin-top:0;}/*!sc*/
.KMPzq{display:inherit;}/*!sc*/
.hfKjHv{width:100%;}/*!sc*/
.gZWyZE{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;gap:8px;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:100%;}/*!sc*/
.dwYKDk{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:start;-webkit-box-align:start;-ms-flex-align:start;align-items:start;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;gap:8px;}/*!sc*/
.ibcGmb{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:start;-webkit-box-align:start;-ms-flex-align:start;align-items:start;min-width:0;}/*!sc*/
.hKaEJF{display:block;margin-right:8px;}/*!sc*/
@media screen and (min-width:1360px){.hKaEJF{display:block;}}/*!sc*/
.XosP{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;font-size:14px;}/*!sc*/
.bCKfWo[data-size="medium"]{color:var(--fgColor-muted,var(--color-fg-muted,#656d76));padding-left:8px;padding-right:8px;display:none;}/*!sc*/
@media screen and (max-width:768px){.bCKfWo[data-size="medium"]{display:block;}}/*!sc*/
.gUkoLg{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;}/*!sc*/
.dmxRgG[data-size="medium"]{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}/*!sc*/
.dmxRgG[data-size="medium"] svg{color:var(--fgColor-muted,var(--color-fg-muted,#656d76));}/*!sc*/
.dmxRgG[data-size="medium"] > span{width:inherit;}/*!sc*/
.bZBlpz{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%;}/*!sc*/
.lhTYNA{margin-right:4px;color:var(--fgColor-muted,var(--color-fg-muted,#656d76));}/*!sc*/
.dbrgmi{font-size:14px;min-width:0;max-width:125px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}/*!sc*/
.bmcJak{min-width:0;}/*!sc*/
.dHJiml{-webkit-align-self:center;-ms-flex-item-align:center;align-self:center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;padding-left:8px;padding-right:8px;min-width:0;}/*!sc*/
.cEytCf{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;font-size:16px;min-width:0;-webkit-flex-shrink:1;-ms-flex-negative:1;flex-shrink:1;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;max-width:100%;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}/*!sc*/
.fzFXnm{max-width:100%;}/*!sc*/
.iMnkmv{max-width:100%;list-style:none;display:inline-block;}/*!sc*/
.ghzDag{display:inline-block;max-width:100%;}/*!sc*/
.kHuKdh{font-weight:600;}/*!sc*/
.hzJBof{padding-left:4px;padding-right:4px;font-weight:400;color:var(--fgColor-muted,var(--color-fg-muted,#656d76));font-size:16px;}/*!sc*/
.kgiVEz{font-weight:400;}/*!sc*/
.jGhzSQ{font-weight:600;display:inline-block;max-width:100%;font-size:16px;}/*!sc*/
.faNtbn{min-height:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:start;-webkit-box-align:start;-ms-flex-align:start;align-items:start;}/*!sc*/
.fmQaBv{margin-left:4px;margin-right:4px;}/*!sc*/
.vcvyP{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;min-width:160px;}/*!sc*/
.dwNhzn[data-size="medium"][data-no-visuals]{border-top-left-radius:0;border-bottom-left-radius:0;display:none;}/*!sc*/
.fGwBZA[data-size="medium"][data-no-visuals]{color:var(--fgColor-muted,var(--color-fg-muted,#656d76));}/*!sc*/
.dJxjrT{margin-left:16px;margin-right:16px;}/*!sc*/
.eFxKDQ{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}/*!sc*/
.dzCJzi{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:8px;min-width:273px;padding:8px;}/*!sc*/
@media screen and (min-width:544px){.dzCJzi{-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;}}/*!sc*/
.ldRxiI{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}/*!sc*/
.fVkfyA{width:100%;height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;min-width:0;margin-right:0;}/*!sc*/
.gNAmSV{height:40px;padding-left:4px;padding-bottom:16px;}/*!sc*/
.jNEwzY{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}/*!sc*/
.bsDwxw{font-size:12px;-webkit-flex:auto;-ms-flex:auto;flex:auto;padding-right:16px;color:var(--fgColor-muted,var(--color-fg-muted,#656d76));min-width:0;}/*!sc*/
.jdLMhu{top:0px;z-index:4;background:var(--bgColor-default,var(--color-canvas-default));position:-webkit-sticky;position:sticky;}/*!sc*/
.tOISc{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:100%;position:absolute;}/*!sc*/
.hqwSEx{display:none;min-width:0;padding-top:8px;padding-bottom:8px;}/*!sc*/
.bDVoEr{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;overflow:hidden;margin-left:8px;margin-right:8px;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;width:100%;}/*!sc*/
.kYLlPM{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}/*!sc*/
.gYjEmn{margin-left:4px;margin-right:8px;}/*!sc*/
.kGqOLL{text-overflow:ellipsis;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}/*!sc*/
.fHind{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;font-size:14px;min-width:0;-webkit-flex-shrink:1;-ms-flex-negative:1;flex-shrink:1;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;max-width:100%;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}/*!sc*/
.oDtgN{padding-left:4px;padding-right:4px;font-weight:400;color:var(--fgColor-muted,var(--color-fg-muted,#656d76));font-size:14px;}/*!sc*/
.dnZoUW{font-weight:600;display:inline-block;max-width:100%;font-size:14px;}/*!sc*/
.jRZWlf[data-size="small"]{color:var(--fgColor-default,var(--color-fg-default,#1F2328));margin-left:8px;}/*!sc*/
.kTvpNk{padding-left:8px;padding-top:8px;padding-bottom:8px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex:1;-ms-flex:1;flex:1;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;background-color:var(--bgColor-muted,var(--color-canvas-subtle,#f6f8fa));border:1px solid var(--borderColor-default,var(--color-border-default));border-radius:6px 6px 0px 0px;}/*!sc*/
.iNMjfP{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:8px;min-width:0;}/*!sc*/
.gtTaSn{font-size:14px;}/*!sc*/
.dXYHoy{--separator-color:transparent;}/*!sc*/
.jBWIdY{--separator-color:var(--borderColor-default,var(--color-border-default,#d0d7de));}/*!sc*/
.kcLCKF{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:8px;margin-right:8px;}/*!sc*/
.kVWtTz{gap:8px;}/*!sc*/
.gWqxTd{padding-left:8px;padding-right:8px;}/*!sc*/
.gWqxTd linkButtonSx:hover:not([disabled]){-webkit-text-decoration:none;text-decoration:none;}/*!sc*/
.gWqxTd linkButtonSx:focus:not([disabled]){-webkit-text-decoration:none;text-decoration:none;}/*!sc*/
.gWqxTd linkButtonSx:active:not([disabled]){-webkit-text-decoration:none;text-decoration:none;}/*!sc*/
.ivobqY[data-size="small"][data-no-visuals]{border-top-left-radius:0;border-bottom-left-radius:0;}/*!sc*/
.heuRGy[data-size="small"][data-no-visuals]{color:var(--fgColor-muted,var(--color-fg-muted,#656d76));position:relative;}/*!sc*/
.ffkqe[data-size="small"][data-no-visuals]{color:var(--fgColor-muted,var(--color-fg-muted,#656d76));}/*!sc*/
.hGyMdv{border:1px solid;border-top:none;border-color:var(--borderColor-default,var(--color-border-default,#d0d7de));border-radius:0px 0px 6px 6px;min-width:273px;}/*!sc*/
.dceWRL{background-color:var(--bgColor-default,var(--color-canvas-default));border:0px;border-width:0;border-radius:0px 0px 6px 6px;padding:0;min-width:0;margin-top:46px;}/*!sc*/
.dGXHv{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex:1;-ms-flex:1;flex:1;padding-top:8px;padding-bottom:8px;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;min-width:0;position:relative;}/*!sc*/
.bpDFns{position:relative;}/*!sc*/
.iJOeCH{-webkit-flex:1;-ms-flex:1;flex:1;position:relative;min-width:0;}/*!sc*/
.glDApP{tab-size:4;isolation:isolate;position:relative;overflow:auto;max-width:unset;}/*!sc*/
.cJGaMs{margin:1px 8px;position:absolute;z-index:1;}/*!sc*/
.iGLarr{position:absolute;}/*!sc*/
.gkZUDI{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}/*!sc*/
.cCoXib{position:fixed;top:0;right:0;height:100%;width:15px;-webkit-transition:-webkit-transform 0.3s;-webkit-transition:transform 0.3s;transition:transform 0.3s;z-index:1;}/*!sc*/
.cCoXib:hover{-webkit-transform:scaleX(1.5);-ms-transform:scaleX(1.5);transform:scaleX(1.5);}/*!sc*/
data-styled.g1[id="Box-sc-g0xbh4-0"]{content:"gISSDQ,bHLmSv,leYMvG,KMPzq,hfKjHv,gZWyZE,dwYKDk,ibcGmb,hKaEJF,XosP,bCKfWo,gUkoLg,dmxRgG,bZBlpz,lhTYNA,dbrgmi,bmcJak,dHJiml,cEytCf,fzFXnm,iMnkmv,ghzDag,kHuKdh,hzJBof,kgiVEz,jGhzSQ,faNtbn,fmQaBv,vcvyP,dwNhzn,fGwBZA,dJxjrT,eFxKDQ,dzCJzi,ldRxiI,fVkfyA,gNAmSV,jNEwzY,bsDwxw,jdLMhu,tOISc,hqwSEx,bDVoEr,kYLlPM,gYjEmn,kGqOLL,fHind,oDtgN,dnZoUW,jRZWlf,kTvpNk,iNMjfP,gtTaSn,dXYHoy,jBWIdY,kcLCKF,kVWtTz,gWqxTd,ivobqY,heuRGy,ffkqe,hGyMdv,dceWRL,dGXHv,bpDFns,iJOeCH,glDApP,cJGaMs,iGLarr,gkZUDI,cCoXib,"}/*!sc*/
.hWlpPn{position:relative;display:inline-block;}/*!sc*/
.hWlpPn::after{position:absolute;z-index:1000000;display:none;padding:0.5em 0.75em;font:normal normal 11px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";-webkit-font-smoothing:subpixel-antialiased;color:var(--tooltip-fgColor,var(--fgColor-onEmphasis,var(--color-fg-on-emphasis,#ffffff)));text-align:center;-webkit-text-decoration:none;text-decoration:none;text-shadow:none;text-transform:none;-webkit-letter-spacing:normal;-moz-letter-spacing:normal;-ms-letter-spacing:normal;letter-spacing:normal;word-wrap:break-word;white-space:pre;pointer-events:none;content:attr(aria-label);background:var(--tooltip-bgColor,var(--bgColor-emphasis,var(--color-neutral-emphasis-plus,#24292f)));border-radius:6px;opacity:0;}/*!sc*/
@-webkit-keyframes tooltip-appear{from{opacity:0;}to{opacity:1;}}/*!sc*/
@keyframes tooltip-appear{from{opacity:0;}to{opacity:1;}}/*!sc*/
.hWlpPn:hover::after,.hWlpPn:active::after,.hWlpPn:focus::after,.hWlpPn:focus-within::after{display:inline-block;-webkit-text-decoration:none;text-decoration:none;-webkit-animation-name:tooltip-appear;animation-name:tooltip-appear;-webkit-animation-duration:0.1s;animation-duration:0.1s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;-webkit-animation-delay:0s;animation-delay:0s;}/*!sc*/
.hWlpPn.tooltipped-no-delay:hover::after,.hWlpPn.tooltipped-no-delay:active::after,.hWlpPn.tooltipped-no-delay:focus::after,.hWlpPn.tooltipped-no-delay:focus-within::after{-webkit-animation-delay:0s;animation-delay:0s;}/*!sc*/
.hWlpPn.tooltipped-multiline:hover::after,.hWlpPn.tooltipped-multiline:active::after,.hWlpPn.tooltipped-multiline:focus::after,.hWlpPn.tooltipped-multiline:focus-within::after{display:table-cell;}/*!sc*/
.hWlpPn.tooltipped-s::after,.hWlpPn.tooltipped-se::after,.hWlpPn.tooltipped-sw::after{top:100%;right:50%;margin-top:6px;}/*!sc*/
.hWlpPn.tooltipped-se::after{right:auto;left:50%;margin-left:-16px;}/*!sc*/
.hWlpPn.tooltipped-sw::after{margin-right:-16px;}/*!sc*/
.hWlpPn.tooltipped-n::after,.hWlpPn.tooltipped-ne::after,.hWlpPn.tooltipped-nw::after{right:50%;bottom:100%;margin-bottom:6px;}/*!sc*/
.hWlpPn.tooltipped-ne::after{right:auto;left:50%;margin-left:-16px;}/*!sc*/
.hWlpPn.tooltipped-nw::after{margin-right:-16px;}/*!sc*/
.hWlpPn.tooltipped-s::after,.hWlpPn.tooltipped-n::after{-webkit-transform:translateX(50%);-ms-transform:translateX(50%);transform:translateX(50%);}/*!sc*/
.hWlpPn.tooltipped-w::after{right:100%;bottom:50%;margin-right:6px;-webkit-transform:translateY(50%);-ms-transform:translateY(50%);transform:translateY(50%);}/*!sc*/
.hWlpPn.tooltipped-e::after{bottom:50%;left:100%;margin-left:6px;-webkit-transform:translateY(50%);-ms-transform:translateY(50%);transform:translateY(50%);}/*!sc*/
.hWlpPn.tooltipped-multiline::after{width:-webkit-max-content;width:-moz-max-content;width:max-content;max-width:250px;word-wrap:break-word;white-space:pre-line;border-collapse:separate;}/*!sc*/
.hWlpPn.tooltipped-multiline.tooltipped-s::after,.hWlpPn.tooltipped-multiline.tooltipped-n::after{right:auto;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%);}/*!sc*/
.hWlpPn.tooltipped-multiline.tooltipped-w::after,.hWlpPn.tooltipped-multiline.tooltipped-e::after{right:100%;}/*!sc*/
.hWlpPn.tooltipped-align-right-2::after{right:0;margin-right:0;}/*!sc*/
.hWlpPn.tooltipped-align-left-2::after{left:0;margin-left:0;}/*!sc*/
data-styled.g16[id="Tooltip__TooltipBase-sc-17tf59c-0"]{content:"hWlpPn,"}/*!sc*/
.eAtkQz{display:inline-block;overflow:hidden;text-overflow:ellipsis;vertical-align:top;white-space:nowrap;max-width:125px;max-width:100%;}/*!sc*/
data-styled.g18[id="Truncate__StyledTruncate-sc-23o1d2-0"]{content:"eAtkQz,"}/*!sc*/
</style><meta data-hydrostats="publish"/> <!-- --> <!-- --> <button hidden="" data-testid="header-permalink-button" data-hotkey-scope="read-only-cursor-text-area"></button><button hidden=""></button><div><div style="--sticky-pane-height:100vh;--spacing:var(--spacing-none)" class="Box-sc-g0xbh4-0 prc-PageLayout-PageLayoutRoot-1zlEO"><div class="Box-sc-g0xbh4-0 prc-PageLayout-PageLayoutWrapper-s2ao4" data-width="full"><div class="Box-sc-g0xbh4-0 prc-PageLayout-PageLayoutContent-jzDMn"><div tabindex="0" class="Box-sc-g0xbh4-0 gISSDQ"><div class="Box-sc-g0xbh4-0 prc-PageLayout-PaneWrapper-nGO0U ReposFileTreePane-module__Pane--wS7IV ReposFileTreePane-module__HideTree--zU_Nd ReposFileTreePane-module__HidePane--Gj4XZ" style="--offset-header:0px;--spacing-row:var(--spacing-none);--spacing-column:var(--spacing-none)" data-is-hidden="false" data-position="start" data-sticky="true"><div class="Box-sc-g0xbh4-0 prc-PageLayout-HorizontalDivider-CYLp5 prc-PageLayout-PaneHorizontalDivider-4exOb" data-variant="none" data-position="start" style="--spacing-divider:var(--spacing-none);--spacing:var(--spacing-none)"></div><div class="Box-sc-g0xbh4-0 prc-PageLayout-Pane-Vl5LI" data-resizable="true" style="--spacing:var(--spacing-none);--pane-min-width:256px;--pane-max-width:calc(100vw - var(--pane-max-width-diff));--pane-width-size:var(--pane-width-large);--pane-width:320px"></div><div class="Box-sc-g0xbh4-0 prc-PageLayout-VerticalDivider-4A4Qm prc-PageLayout-PaneVerticalDivider-1c9vy" data-variant="none" data-position="start" style="--spacing:var(--spacing-none)"><div role="slider" aria-label="Draggable pane splitter" aria-valuemin="0" aria-valuemax="0" aria-valuenow="0" aria-valuetext="Pane width 0 pixels" tabindex="0" class="Box-sc-g0xbh4-0 bHLmSv"></div></div></div></div><div class="Box-sc-g0xbh4-0 prc-PageLayout-ContentWrapper-b-QRo CodeView-module__SplitPageLayout_Content--qxR1C" data-is-hidden="false"><div class="Box-sc-g0xbh4-0"></div><div class="Box-sc-g0xbh4-0 prc-PageLayout-Content--F7-I" data-width="full" style="--spacing:var(--spacing-none)"><div data-selector="repos-split-pane-content" tabindex="0" class="Box-sc-g0xbh4-0 leYMvG"><div class="Box-sc-g0xbh4-0 KMPzq"><div class="Box-sc-g0xbh4-0 hfKjHv container"><div class="px-3 pt-3 pb-0" id="StickyHeader"><div class="Box-sc-g0xbh4-0 gZWyZE"><div class="Box-sc-g0xbh4-0 dwYKDk"><div class="Box-sc-g0xbh4-0 ibcGmb react-code-view-header-wrap--narrow"><div class="Box-sc-g0xbh4-0 hKaEJF"><h2 class="Box-sc-g0xbh4-0 XosP prc-Heading-Heading-6CmGO"><button style="--button-color:fg.muted" type="button" aria-label="Expand file tree" data-testid="expand-file-tree-button-mobile" class="Box-sc-g0xbh4-0 bCKfWo prc-Button-ButtonBase-c50BI" data-loading="false" data-size="medium" data-variant="invisible" aria-describedby=":Rld9lab:-loading-announcement"><span data-component="buttonContent" class="Box-sc-g0xbh4-0 gUkoLg prc-Button-ButtonContent-HKbr-"><span data-component="leadingVisual" class="prc-Button-Visual-2epfX prc-Button-VisualWrap-Db-eB"><svg aria-hidden="true" focusable="false" class="octicon octicon-arrow-left" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M7.78 12.53a.75.75 0 0 1-1.06 0L2.47 8.28a.75.75 0 0 1 0-1.06l4.25-4.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L4.81 7h7.44a.75.75 0 0 1 0 1.5H4.81l2.97 2.97a.75.75 0 0 1 0 1.06Z"></path></svg></span><span data-component="text" class="prc-Button-Label-pTQ3x">Files</span></span></button><span role="tooltip" aria-label="Expand file tree" id="expand-button-file-tree-button" class="Tooltip__TooltipBase-sc-17tf59c-0 hWlpPn tooltipped-se"><button data-component="IconButton" type="button" data-testid="expand-file-tree-button" aria-controls="repos-file-tree" class="prc-Button-ButtonBase-c50BI position-relative ExpandFileTreeButton-module__expandButton--gL4is ExpandFileTreeButton-module__filesButtonBreakpoint--WfX9t fgColor-muted prc-Button-IconButton-szpyj" data-loading="false" data-no-visuals="true" data-size="medium" data-variant="invisible" aria-describedby=":R35d9lab:-loading-announcement" aria-labelledby="expand-button-file-tree-button"><svg aria-hidden="true" focusable="false" class="octicon octicon-sidebar-collapse" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M6.823 7.823a.25.25 0 0 1 0 .354l-2.396 2.396A.25.25 0 0 1 4 10.396V5.604a.25.25 0 0 1 .427-.177Z"></path><path d="M1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25V1.75C0 .784.784 0 1.75 0ZM1.5 1.75v12.5c0 .138.112.25.25.25H9.5v-13H1.75a.25.25 0 0 0-.25.25ZM11 14.5h3.25a.25.25 0 0 0 .25-.25V1.75a.25.25 0 0 0-.25-.25H11Z"></path></svg></button></span><button hidden="" data-testid="" data-hotkey-scope="read-only-cursor-text-area"></button></h2></div><div class="react-code-view-header-mb--narrow mr-2"><button type="button" aria-haspopup="true" aria-expanded="false" tabindex="0" aria-label="master branch" data-testid="anchor-button" class="Box-sc-g0xbh4-0 dmxRgG prc-Button-ButtonBase-c50BI ref-selector-class" data-loading="false" data-size="medium" data-variant="default" aria-describedby="branch-picker-repos-header-ref-selector-wide-loading-announcement" id="branch-picker-repos-header-ref-selector-wide"><span data-component="buttonContent" class="Box-sc-g0xbh4-0 gUkoLg prc-Button-ButtonContent-HKbr-"><span data-component="text" class="prc-Button-Label-pTQ3x"><div class="Box-sc-g0xbh4-0 bZBlpz"><div class="Box-sc-g0xbh4-0 lhTYNA"><svg aria-hidden="true" focusable="false" class="octicon octicon-git-branch" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M9.5 3.25a2.25 2.25 0 1 1 3 2.122V6A2.5 2.5 0 0 1 10 8.5H6a1 1 0 0 0-1 1v1.128a2.251 2.251 0 1 1-1.5 0V5.372a2.25 2.25 0 1 1 1.5 0v1.836A2.493 2.493 0 0 1 6 7h4a1 1 0 0 0 1-1v-.628A2.25 2.25 0 0 1 9.5 3.25Zm-6 0a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Zm8.25-.75a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5ZM4.25 12a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Z"></path></svg></div><div class="Box-sc-g0xbh4-0 dbrgmi ref-selector-button-text-container"><span class="Box-sc-g0xbh4-0 bmcJak prc-Text-Text-0ima0"> <!-- -->master</span></div></div></span><span data-component="trailingVisual" class="prc-Button-Visual-2epfX prc-Button-VisualWrap-Db-eB"><svg aria-hidden="true" focusable="false" class="octicon octicon-triangle-down" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m4.427 7.427 3.396 3.396a.25.25 0 0 0 .354 0l3.396-3.396A.25.25 0 0 0 11.396 7H4.604a.25.25 0 0 0-.177.427Z"></path></svg></span></span></button><button hidden="" data-hotkey-scope="read-only-cursor-text-area"></button></div><div class="Box-sc-g0xbh4-0 dHJiml react-code-view-header-mb--narrow"><div class="Box-sc-g0xbh4-0 cEytCf"><nav data-testid="breadcrumbs" aria-labelledby="repos-header-breadcrumb-heading" id="repos-header-breadcrumb" class="Box-sc-g0xbh4-0 fzFXnm"><h2 class="sr-only ScreenReaderHeading-module__userSelectNone--vW4Cq prc-Heading-Heading-6CmGO" data-testid="screen-reader-heading" id="repos-header-breadcrumb-heading">Breadcrumbs</h2><ol class="Box-sc-g0xbh4-0 iMnkmv"><li class="Box-sc-g0xbh4-0 ghzDag"><a class="Box-sc-g0xbh4-0 kHuKdh prc-Link-Link-85e08" sx="[object Object]" data-testid="breadcrumbs-repo-link" href="/doctest/doctest/tree/master">doctest</a></li><li class="Box-sc-g0xbh4-0 ghzDag"><span class="Box-sc-g0xbh4-0 hzJBof prc-Text-Text-0ima0" aria-hidden="true">/</span><a class="Box-sc-g0xbh4-0 kgiVEz prc-Link-Link-85e08" sx="[object Object]" href="/doctest/doctest/tree/master/doctest">doctest</a></li></ol></nav><div data-testid="breadcrumbs-filename" class="Box-sc-g0xbh4-0 ghzDag"><span class="Box-sc-g0xbh4-0 hzJBof prc-Text-Text-0ima0" aria-hidden="true">/</span><h1 class="Box-sc-g0xbh4-0 jGhzSQ prc-Heading-Heading-6CmGO" tabindex="-1" id="file-name-id">doctest.h</h1></div><button data-component="IconButton" type="button" class="prc-Button-ButtonBase-c50BI ml-2 prc-Button-IconButton-szpyj" data-loading="false" data-no-visuals="true" data-size="small" data-variant="invisible" aria-describedby=":Rftd9lab:-loading-announcement" aria-labelledby=":R1td9lab:"><svg aria-hidden="true" focusable="false" class="octicon octicon-copy" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg></button><span class="CopyToClipboardButton-module__tooltip--Dq1IB prc-TooltipV2-Tooltip-cYMVY" data-direction="nw" aria-label="Copy path" aria-hidden="true" id=":R1td9lab:">Copy path</span></div></div></div><div class="react-code-view-header-element--wide"><div class="Box-sc-g0xbh4-0 faNtbn"><div class="d-flex gap-2"> <div><div class="Box-sc-g0xbh4-0 fmQaBv"><span class="Box-sc-g0xbh4-0 vcvyP TextInput-wrapper prc-components-TextInputWrapper-i1ofR prc-components-TextInputBaseWrapper-ueK9q" data-leading-visual="true" data-trailing-visual="true" aria-busy="false"><span class="TextInput-icon" id=":Rb66d9lab:" aria-hidden="true"><svg aria-hidden="true" focusable="false" class="octicon octicon-search" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M10.68 11.74a6 6 0 0 1-7.922-8.982 6 6 0 0 1 8.982 7.922l3.04 3.04a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215ZM11.5 7a4.499 4.499 0 1 0-8.997 0A4.499 4.499 0 0 0 11.5 7Z"></path></svg></span><input type="text" aria-label="Go to file" role="combobox" aria-controls="file-results-list" aria-expanded="false" aria-haspopup="dialog" autoCorrect="off" spellcheck="false" placeholder="Go to file" aria-describedby=":Rb66d9lab: :Rb66d9labH1:" data-component="input" class="prc-components-Input-Ic-y8" value=""/><span class="TextInput-icon" id=":Rb66d9labH1:" aria-hidden="true"></span></span></div><button hidden="" data-testid="" data-hotkey-scope="read-only-cursor-text-area"></button><button hidden=""></button></div><button hidden="" data-testid="" data-hotkey-scope="read-only-cursor-text-area"></button><button hidden=""></button><button hidden="" data-testid="" data-hotkey-scope="read-only-cursor-text-area"></button><button hidden=""></button><button type="button" class="Box-sc-g0xbh4-0 dwNhzn prc-Button-ButtonBase-c50BI" data-loading="false" data-no-visuals="true" data-size="medium" data-variant="default" aria-describedby=":R5a6d9lab:-loading-announcement"><span data-component="buttonContent" class="Box-sc-g0xbh4-0 gUkoLg prc-Button-ButtonContent-HKbr-"><span data-component="text" class="prc-Button-Label-pTQ3x">Blame</span></span></button><button hidden="" data-testid="" data-hotkey-scope="read-only-cursor-text-area"></button><button data-component="IconButton" type="button" aria-label="More file actions" title="More file actions" data-testid="more-file-actions-button-nav-menu-wide" aria-haspopup="true" aria-expanded="false" tabindex="0" class="Box-sc-g0xbh4-0 fGwBZA prc-Button-ButtonBase-c50BI js-blob-dropdown-click prc-Button-IconButton-szpyj" data-loading="false" data-no-visuals="true" data-size="medium" data-variant="default" aria-describedby=":R2a6d9lab:-loading-announcement" id=":R2a6d9lab:"><svg aria-hidden="true" focusable="false" class="octicon octicon-kebab-horizontal" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M8 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm13 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path></svg></button> </div></div></div><div class="react-code-view-header-element--narrow"><div class="Box-sc-g0xbh4-0 faNtbn"><div class="d-flex gap-2"> <button hidden="" data-testid="" data-hotkey-scope="read-only-cursor-text-area"></button><button hidden=""></button><button hidden="" data-testid="" data-hotkey-scope="read-only-cursor-text-area"></button><button hidden=""></button><button type="button" class="Box-sc-g0xbh4-0 dwNhzn prc-Button-ButtonBase-c50BI" data-loading="false" data-no-visuals="true" data-size="medium" data-variant="default" aria-describedby=":R5a7d9lab:-loading-announcement"><span data-component="buttonContent" class="Box-sc-g0xbh4-0 gUkoLg prc-Button-ButtonContent-HKbr-"><span data-component="text" class="prc-Button-Label-pTQ3x">Blame</span></span></button><button hidden="" data-testid="" data-hotkey-scope="read-only-cursor-text-area"></button><button data-component="IconButton" type="button" aria-label="More file actions" title="More file actions" data-testid="more-file-actions-button-nav-menu-narrow" aria-haspopup="true" aria-expanded="false" tabindex="0" class="Box-sc-g0xbh4-0 fGwBZA prc-Button-ButtonBase-c50BI js-blob-dropdown-click prc-Button-IconButton-szpyj" data-loading="false" data-no-visuals="true" data-size="medium" data-variant="default" aria-describedby=":R2a7d9lab:-loading-announcement" id=":R2a7d9lab:"><svg aria-hidden="true" focusable="false" class="octicon octicon-kebab-horizontal" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M8 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm13 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path></svg></button> </div></div></div></div></div></div></div></div><div class="Box-sc-g0xbh4-0 dJxjrT react-code-view-bottom-padding"> <div class="Box-sc-g0xbh4-0 eFxKDQ"></div> <!-- --> <!-- --> </div><div class="Box-sc-g0xbh4-0 dJxjrT"> <!-- --> <!-- --> <button hidden="" data-testid="" data-hotkey-scope="read-only-cursor-text-area"></button><button hidden=""></button><div class="d-flex flex-column border rounded-2 mb-3 pl-1"><div class="Box-sc-g0xbh4-0 dzCJzi"><h2 class="sr-only ScreenReaderHeading-module__userSelectNone--vW4Cq prc-Heading-Heading-6CmGO" data-testid="screen-reader-heading">Latest commit</h2><div style="width:120px" class="Skeleton Skeleton--text" data-testid="loading"> </div><div class="d-flex flex-shrink-0 gap-2"><div data-testid="latest-commit-details" class="d-none d-sm-flex flex-items-center"></div><div class="d-flex gap-2"><h2 class="sr-only ScreenReaderHeading-module__userSelectNone--vW4Cq prc-Heading-Heading-6CmGO" data-testid="screen-reader-heading">History</h2><a href="/doctest/doctest/commits/master/doctest/doctest.h" class="prc-Button-ButtonBase-c50BI d-none d-lg-flex LinkButton-module__code-view-link-button--xvCGA flex-items-center fgColor-default" data-loading="false" data-size="small" data-variant="invisible" aria-describedby=":R5dlal9lab:-loading-announcement"><span data-component="buttonContent" data-align="center" class="prc-Button-ButtonContent-HKbr-"><span data-component="leadingVisual" class="prc-Button-Visual-2epfX prc-Button-VisualWrap-Db-eB"><svg aria-hidden="true" focusable="false" class="octicon octicon-history" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m.427 1.927 1.215 1.215a8.002 8.002 0 1 1-1.6 5.685.75.75 0 1 1 1.493-.154 6.5 6.5 0 1 0 1.18-4.458l1.358 1.358A.25.25 0 0 1 3.896 6H.25A.25.25 0 0 1 0 5.75V2.104a.25.25 0 0 1 .427-.177ZM7.75 4a.75.75 0 0 1 .75.75v2.992l2.028.812a.75.75 0 0 1-.557 1.392l-2.5-1A.751.751 0 0 1 7 8.25v-3.5A.75.75 0 0 1 7.75 4Z"></path></svg></span><span data-component="text" class="prc-Button-Label-pTQ3x"><span class="fgColor-default">History</span></span></span></a><div class="d-sm-none"></div><div class="d-flex d-lg-none"><span role="tooltip" aria-label="History" id="history-icon-button-tooltip" class="Tooltip__TooltipBase-sc-17tf59c-0 hWlpPn tooltipped-n"><a href="/doctest/doctest/commits/master/doctest/doctest.h" class="prc-Button-ButtonBase-c50BI LinkButton-module__code-view-link-button--xvCGA flex-items-center fgColor-default" data-loading="false" data-size="small" data-variant="invisible" aria-describedby=":Rpdlal9lab:-loading-announcement history-icon-button-tooltip"><span data-component="buttonContent" data-align="center" class="prc-Button-ButtonContent-HKbr-"><span data-component="leadingVisual" class="prc-Button-Visual-2epfX prc-Button-VisualWrap-Db-eB"><svg aria-hidden="true" focusable="false" class="octicon octicon-history" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m.427 1.927 1.215 1.215a8.002 8.002 0 1 1-1.6 5.685.75.75 0 1 1 1.493-.154 6.5 6.5 0 1 0 1.18-4.458l1.358 1.358A.25.25 0 0 1 3.896 6H.25A.25.25 0 0 1 0 5.75V2.104a.25.25 0 0 1 .427-.177ZM7.75 4a.75.75 0 0 1 .75.75v2.992l2.028.812a.75.75 0 0 1-.557 1.392l-2.5-1A.751.751 0 0 1 7 8.25v-3.5A.75.75 0 0 1 7.75 4Z"></path></svg></span></span></a></span></div></div></div></div></div><div class="Box-sc-g0xbh4-0 ldRxiI"><div class="Box-sc-g0xbh4-0 fVkfyA container"><div class="Box-sc-g0xbh4-0 gNAmSV react-code-size-details-banner"><div class="Box-sc-g0xbh4-0 jNEwzY react-code-size-details-banner"><div class="Box-sc-g0xbh4-0 bsDwxw text-mono"><div title="314 KB" data-testid="blob-size" class="Truncate__StyledTruncate-sc-23o1d2-0 eAtkQz"><span>7106 lines (6010 loc) · 314 KB</span></div></div></div></div><div class="Box-sc-g0xbh4-0 jdLMhu react-blob-view-header-sticky" id="repos-sticky-header"><div class="Box-sc-g0xbh4-0 tOISc"><div class="react-blob-sticky-header"><div class="Box-sc-g0xbh4-0 hqwSEx"><div class="Box-sc-g0xbh4-0 bDVoEr"><div class="Box-sc-g0xbh4-0 kYLlPM"><div class="Box-sc-g0xbh4-0 gYjEmn"><button type="button" aria-haspopup="true" aria-expanded="false" tabindex="0" aria-label="master branch" data-testid="anchor-button" class="Box-sc-g0xbh4-0 dmxRgG prc-Button-ButtonBase-c50BI ref-selector-class" data-loading="false" data-size="medium" data-variant="default" aria-describedby="branch-picker-repos-header-ref-selector-loading-announcement" id="branch-picker-repos-header-ref-selector"><span data-component="buttonContent" class="Box-sc-g0xbh4-0 gUkoLg prc-Button-ButtonContent-HKbr-"><span data-component="text" class="prc-Button-Label-pTQ3x"><div class="Box-sc-g0xbh4-0 bZBlpz"><div class="Box-sc-g0xbh4-0 lhTYNA"><svg aria-hidden="true" focusable="false" class="octicon octicon-git-branch" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M9.5 3.25a2.25 2.25 0 1 1 3 2.122V6A2.5 2.5 0 0 1 10 8.5H6a1 1 0 0 0-1 1v1.128a2.251 2.251 0 1 1-1.5 0V5.372a2.25 2.25 0 1 1 1.5 0v1.836A2.493 2.493 0 0 1 6 7h4a1 1 0 0 0 1-1v-.628A2.25 2.25 0 0 1 9.5 3.25Zm-6 0a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Zm8.25-.75a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5ZM4.25 12a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Z"></path></svg></div><div class="Box-sc-g0xbh4-0 dbrgmi ref-selector-button-text-container"><span class="Box-sc-g0xbh4-0 bmcJak prc-Text-Text-0ima0"> <!-- -->master</span></div></div></span><span data-component="trailingVisual" class="prc-Button-Visual-2epfX prc-Button-VisualWrap-Db-eB"><svg aria-hidden="true" focusable="false" class="octicon octicon-triangle-down" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m4.427 7.427 3.396 3.396a.25.25 0 0 0 .354 0l3.396-3.396A.25.25 0 0 0 11.396 7H4.604a.25.25 0 0 0-.177.427Z"></path></svg></span></span></button><button hidden="" data-hotkey-scope="read-only-cursor-text-area"></button></div><div class="Box-sc-g0xbh4-0 kGqOLL"><div class="Box-sc-g0xbh4-0 fHind"><nav data-testid="breadcrumbs" aria-labelledby="sticky-breadcrumb-heading" id="sticky-breadcrumb" class="Box-sc-g0xbh4-0 fzFXnm"><h2 class="sr-only ScreenReaderHeading-module__userSelectNone--vW4Cq prc-Heading-Heading-6CmGO" data-testid="screen-reader-heading" id="sticky-breadcrumb-heading">Breadcrumbs</h2><ol class="Box-sc-g0xbh4-0 iMnkmv"><li class="Box-sc-g0xbh4-0 ghzDag"><a class="Box-sc-g0xbh4-0 kHuKdh prc-Link-Link-85e08" sx="[object Object]" data-testid="breadcrumbs-repo-link" href="/doctest/doctest/tree/master">doctest</a></li><li class="Box-sc-g0xbh4-0 ghzDag"><span class="Box-sc-g0xbh4-0 oDtgN prc-Text-Text-0ima0" aria-hidden="true">/</span><a class="Box-sc-g0xbh4-0 kgiVEz prc-Link-Link-85e08" sx="[object Object]" href="/doctest/doctest/tree/master/doctest">doctest</a></li></ol></nav><div data-testid="breadcrumbs-filename" class="Box-sc-g0xbh4-0 ghzDag"><span class="Box-sc-g0xbh4-0 oDtgN prc-Text-Text-0ima0" aria-hidden="true">/</span><h1 class="Box-sc-g0xbh4-0 dnZoUW prc-Heading-Heading-6CmGO" tabindex="-1" id="sticky-file-name-id">doctest.h</h1></div></div></div></div><button style="--button-color:fg.default" type="button" class="Box-sc-g0xbh4-0 jRZWlf prc-Button-ButtonBase-c50BI" data-loading="false" data-size="small" data-variant="invisible" aria-describedby=":Riptal9lab:-loading-announcement"><span data-component="buttonContent" class="Box-sc-g0xbh4-0 gUkoLg prc-Button-ButtonContent-HKbr-"><span data-component="leadingVisual" class="prc-Button-Visual-2epfX prc-Button-VisualWrap-Db-eB"><svg aria-hidden="true" focusable="false" class="octicon octicon-arrow-up" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.47 7.78a.75.75 0 0 1 0-1.06l4.25-4.25a.75.75 0 0 1 1.06 0l4.25 4.25a.751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018L9 4.81v7.44a.75.75 0 0 1-1.5 0V4.81L4.53 7.78a.75.75 0 0 1-1.06 0Z"></path></svg></span><span data-component="text" class="prc-Button-Label-pTQ3x">Top</span></span></button></div></div></div><div class="Box-sc-g0xbh4-0 kTvpNk"><h2 class="sr-only ScreenReaderHeading-module__userSelectNone--vW4Cq prc-Heading-Heading-6CmGO" data-testid="screen-reader-heading">File metadata and controls</h2><div class="Box-sc-g0xbh4-0 iNMjfP"><ul aria-label="File view" class="Box-sc-g0xbh4-0 gtTaSn prc-SegmentedControl-SegmentedControl-e7570" data-size="small"><li class="Box-sc-g0xbh4-0 dXYHoy prc-SegmentedControl-Item-7Aq6h" data-selected="true"><button aria-current="true" class="prc-SegmentedControl-Button-ojWXD" type="button"><span class="prc-SegmentedControl-Content-gnQ4n"><div class="Box-sc-g0xbh4-0 prc-SegmentedControl-Text-c5gSh" data-text="Code">Code</div></span></button></li><li class="Box-sc-g0xbh4-0 jBWIdY prc-SegmentedControl-Item-7Aq6h"><button aria-current="false" class="prc-SegmentedControl-Button-ojWXD" type="button"><span class="prc-SegmentedControl-Content-gnQ4n"><div class="Box-sc-g0xbh4-0 prc-SegmentedControl-Text-c5gSh" data-text="Blame">Blame</div></span></button></li></ul><button hidden="" data-testid="" data-hotkey-scope="read-only-cursor-text-area"></button><button hidden="" data-testid="" data-hotkey-scope="read-only-cursor-text-area"></button><div class="Box-sc-g0xbh4-0 jNEwzY react-code-size-details-in-header"><div class="Box-sc-g0xbh4-0 bsDwxw text-mono"><div title="314 KB" data-testid="blob-size" class="Truncate__StyledTruncate-sc-23o1d2-0 eAtkQz"><span>7106 lines (6010 loc) · 314 KB</span></div></div></div></div><div class="Box-sc-g0xbh4-0 kcLCKF"><div class="Box-sc-g0xbh4-0 kVWtTz react-blob-header-edit-and-raw-actions"><div class="Box-sc-g0xbh4-0 prc-ButtonGroup-ButtonGroup-vcMeG"><div><a href="https://github.com/doctest/doctest/raw/refs/heads/master/doctest/doctest.h" data-testid="raw-button" class="Box-sc-g0xbh4-0 gWqxTd prc-Button-ButtonBase-c50BI" data-loading="false" data-no-visuals="true" data-size="small" data-variant="default" aria-describedby=":R5csptal9lab:-loading-announcement"><span data-component="buttonContent" class="Box-sc-g0xbh4-0 gUkoLg prc-Button-ButtonContent-HKbr-"><span data-component="text" class="prc-Button-Label-pTQ3x">Raw</span></span></a></div><div><button data-component="IconButton" type="button" aria-label="Copy raw content" data-testid="copy-raw-button" class="prc-Button-ButtonBase-c50BI prc-Button-IconButton-szpyj" data-loading="false" data-no-visuals="true" data-size="small" data-variant="default" aria-describedby=":Rpcsptal9lab:-loading-announcement"><svg aria-hidden="true" focusable="false" class="octicon octicon-copy" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg></button></div><div><span role="tooltip" aria-label="Download raw file" id=":Rdcsptal9lab:" class="Tooltip__TooltipBase-sc-17tf59c-0 hWlpPn tooltipped-n"><button data-component="IconButton" type="button" aria-label="Download raw content" data-testid="download-raw-button" class="Box-sc-g0xbh4-0 ivobqY prc-Button-ButtonBase-c50BI prc-Button-IconButton-szpyj" data-loading="false" data-no-visuals="true" data-size="small" data-variant="default" aria-describedby=":Rtcsptal9lab:-loading-announcement"><svg aria-hidden="true" focusable="false" class="octicon octicon-download" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M2.75 14A1.75 1.75 0 0 1 1 12.25v-2.5a.75.75 0 0 1 1.5 0v2.5c0 .138.112.25.25.25h10.5a.25.25 0 0 0 .25-.25v-2.5a.75.75 0 0 1 1.5 0v2.5A1.75 1.75 0 0 1 13.25 14Z"></path><path d="M7.25 7.689V2a.75.75 0 0 1 1.5 0v5.689l1.97-1.969a.749.749 0 1 1 1.06 1.06l-3.25 3.25a.749.749 0 0 1-1.06 0L4.22 6.78a.749.749 0 1 1 1.06-1.06l1.97 1.969Z"></path></svg></button></span></div></div><button hidden="" data-testid="raw-button-shortcut" data-hotkey-scope="read-only-cursor-text-area"></button><button hidden="" data-testid="copy-raw-button-shortcut" data-hotkey-scope="read-only-cursor-text-area"></button><button hidden="" data-testid="download-raw-button-shortcut" data-hotkey-scope="read-only-cursor-text-area"></button></div><span role="tooltip" aria-label="Open symbols panel" id=":R5sptal9lab:" class="Tooltip__TooltipBase-sc-17tf59c-0 hWlpPn tooltipped-nw"><button data-component="IconButton" type="button" aria-label="Symbols" aria-pressed="false" aria-expanded="false" aria-controls="symbols-pane" data-testid="symbols-button" class="Box-sc-g0xbh4-0 heuRGy prc-Button-ButtonBase-c50BI prc-Button-IconButton-szpyj" data-loading="false" data-no-visuals="true" data-size="small" data-variant="invisible" aria-describedby="symbols-button-loading-announcement" id="symbols-button"><svg aria-hidden="true" focusable="false" class="octicon octicon-code-square" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25V1.75a.25.25 0 0 0-.25-.25Zm7.47 3.97a.75.75 0 0 1 1.06 0l2 2a.75.75 0 0 1 0 1.06l-2 2a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L10.69 8 9.22 6.53a.75.75 0 0 1 0-1.06ZM6.78 6.53 5.31 8l1.47 1.47a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215l-2-2a.75.75 0 0 1 0-1.06l2-2a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z"></path></svg></button></span><div class="react-blob-header-edit-and-raw-actions-combined"><button data-component="IconButton" type="button" aria-label="Edit and raw actions" title="More file actions" data-testid="more-file-actions-button" aria-haspopup="true" aria-expanded="false" tabindex="0" class="Box-sc-g0xbh4-0 ffkqe prc-Button-ButtonBase-c50BI js-blob-dropdown-click prc-Button-IconButton-szpyj" data-loading="false" data-no-visuals="true" data-size="small" data-variant="invisible" aria-describedby=":Rnsptal9lab:-loading-announcement" id=":Rnsptal9lab:"><svg aria-hidden="true" focusable="false" class="octicon octicon-kebab-horizontal" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M8 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm13 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path></svg></button></div></div></div></div><div></div></div><div class="Box-sc-g0xbh4-0 hGyMdv"><section aria-labelledby="file-name-id-wide file-name-id-mobile" class="Box-sc-g0xbh4-0 dceWRL"><div class="Box-sc-g0xbh4-0 dGXHv"><div id="highlighted-line-menu-positioner" class="position-relative"><div id="copilot-button-positioner" class="Box-sc-g0xbh4-0 bpDFns"><div class="Box-sc-g0xbh4-0 iJOeCH"><div class="Box-sc-g0xbh4-0 glDApP react-code-file-contents" role="presentation" aria-hidden="true" data-tab-size="4" data-paste-markdown-skip="true" data-hpc="true"><div class="react-line-numbers" style="pointer-events:auto"><div data-line-number="1" class="react-line-number react-code-text" style="padding-right:16px">1</div><div data-line-number="2" class="react-line-number react-code-text" style="padding-right:16px">2</div><div data-line-number="3" class="react-line-number react-code-text" style="padding-right:16px">3</div><div data-line-number="4" class="react-line-number react-code-text" style="padding-right:16px">4</div><div data-line-number="5" class="react-line-number react-code-text" style="padding-right:16px">5</div><div data-line-number="6" class="react-line-number react-code-text" style="padding-right:16px">6</div><div data-line-number="7" class="react-line-number react-code-text" style="padding-right:16px">7</div><div data-line-number="8" class="react-line-number react-code-text" style="padding-right:16px">8</div><div data-line-number="9" class="react-line-number react-code-text" style="padding-right:16px">9</div><div data-line-number="10" class="react-line-number react-code-text" style="padding-right:16px">10</div><div data-line-number="11" class="react-line-number react-code-text" style="padding-right:16px">11</div><div data-line-number="12" class="react-line-number react-code-text" style="padding-right:16px">12</div><div data-line-number="13" class="react-line-number react-code-text" style="padding-right:16px">13</div><div data-line-number="14" class="react-line-number react-code-text" style="padding-right:16px">14</div><div data-line-number="15" class="react-line-number react-code-text" style="padding-right:16px">15</div><div data-line-number="16" class="react-line-number react-code-text" style="padding-right:16px">16</div><div data-line-number="17" class="react-line-number react-code-text" style="padding-right:16px">17</div><div data-line-number="18" class="react-line-number react-code-text" style="padding-right:16px">18</div><div data-line-number="19" class="react-line-number react-code-text" style="padding-right:16px">19</div><div data-line-number="20" class="react-line-number react-code-text" style="padding-right:16px">20</div><div data-line-number="21" class="react-line-number react-code-text" style="padding-right:16px">21</div><div data-line-number="22" class="react-line-number react-code-text" style="padding-right:16px">22</div><div data-line-number="23" class="react-line-number react-code-text" style="padding-right:16px">23</div><div data-line-number="24" class="react-line-number react-code-text" style="padding-right:16px">24</div><div data-line-number="25" class="react-line-number react-code-text" style="padding-right:16px">25</div><div data-line-number="26" class="react-line-number react-code-text" style="padding-right:16px">26</div><div data-line-number="27" class="react-line-number react-code-text" style="padding-right:16px">27</div><div data-line-number="28" class="react-line-number react-code-text" style="padding-right:16px">28</div><div data-line-number="29" class="react-line-number react-code-text" style="padding-right:16px">29</div><div data-line-number="30" class="react-line-number react-code-text" style="padding-right:16px">30</div><div data-line-number="31" class="react-line-number react-code-text" style="padding-right:16px">31</div><div data-line-number="32" class="react-line-number react-code-text" style="padding-right:16px">32</div><div data-line-number="33" class="react-line-number react-code-text" style="padding-right:16px">33</div><div data-line-number="34" class="react-line-number react-code-text" style="padding-right:16px">34</div><div data-line-number="35" class="react-line-number react-code-text" style="padding-right:16px">35</div><div data-line-number="36" class="react-line-number react-code-text" style="padding-right:16px">36</div><div data-line-number="37" class="react-line-number react-code-text" style="padding-right:16px">37</div><div data-line-number="38" class="react-line-number react-code-text" style="padding-right:16px">38</div><div data-line-number="39" class="react-line-number react-code-text" style="padding-right:16px">39</div><div data-line-number="40" class="react-line-number react-code-text" style="padding-right:16px">40</div><div data-line-number="41" class="react-line-number react-code-text" style="padding-right:16px">41</div><div data-line-number="42" class="react-line-number react-code-text" style="padding-right:16px">42</div><div data-line-number="43" class="react-line-number react-code-text" style="padding-right:16px">43</div><div data-line-number="44" class="react-line-number react-code-text" style="padding-right:16px">44</div><div data-line-number="45" class="react-line-number react-code-text" style="padding-right:16px">45</div><div data-line-number="46" class="react-line-number react-code-text" style="padding-right:16px">46</div><div data-line-number="47" class="react-line-number react-code-text" style="padding-right:16px">47</div><div data-line-number="48" class="react-line-number react-code-text" style="padding-right:16px">48</div><div data-line-number="49" class="react-line-number react-code-text" style="padding-right:16px">49</div><div data-line-number="50" class="react-line-number react-code-text" style="padding-right:16px">50</div><div data-line-number="51" class="react-line-number react-code-text" style="padding-right:16px">51</div><div data-line-number="52" class="react-line-number react-code-text" style="padding-right:16px">52</div><div data-line-number="53" class="react-line-number react-code-text" style="padding-right:16px">53</div><div data-line-number="54" class="react-line-number react-code-text" style="padding-right:16px">54</div><div data-line-number="55" class="react-line-number react-code-text" style="padding-right:16px">55</div><div data-line-number="56" class="react-line-number react-code-text" style="padding-right:16px">56</div><div data-line-number="57" class="react-line-number react-code-text" style="padding-right:16px">57</div><div data-line-number="58" class="react-line-number react-code-text" style="padding-right:16px">58</div><div data-line-number="59" class="react-line-number react-code-text" style="padding-right:16px">59</div><div data-line-number="60" class="react-line-number react-code-text" style="padding-right:16px">60</div><div data-line-number="61" class="react-line-number react-code-text" style="padding-right:16px">61</div><div data-line-number="62" class="react-line-number react-code-text" style="padding-right:16px">62</div><div data-line-number="63" class="react-line-number react-code-text" style="padding-right:16px">63</div><div data-line-number="64" class="react-line-number react-code-text" style="padding-right:16px">64</div><div data-line-number="65" class="react-line-number react-code-text" style="padding-right:16px">65</div><div data-line-number="66" class="react-line-number react-code-text" style="padding-right:16px">66</div><div data-line-number="67" class="react-line-number react-code-text" style="padding-right:16px">67</div><div data-line-number="68" class="react-line-number react-code-text" style="padding-right:16px">68</div><div data-line-number="69" class="react-line-number react-code-text" style="padding-right:16px">69</div><div data-line-number="70" class="react-line-number react-code-text" style="padding-right:16px">70</div><div data-line-number="71" class="react-line-number react-code-text" style="padding-right:16px">71</div><div data-line-number="72" class="react-line-number react-code-text" style="padding-right:16px">72</div><div data-line-number="73" class="react-line-number react-code-text" style="padding-right:16px">73</div><div data-line-number="74" class="react-line-number react-code-text" style="padding-right:16px">74</div><div data-line-number="75" class="react-line-number react-code-text" style="padding-right:16px">75</div><div data-line-number="76" class="react-line-number react-code-text" style="padding-right:16px">76</div><div data-line-number="77" class="react-line-number react-code-text" style="padding-right:16px">77</div><div data-line-number="78" class="react-line-number react-code-text" style="padding-right:16px">78</div><div data-line-number="79" class="react-line-number react-code-text" style="padding-right:16px">79</div><div data-line-number="80" class="react-line-number react-code-text" style="padding-right:16px">80</div><div data-line-number="81" class="react-line-number react-code-text" style="padding-right:16px">81</div><div data-line-number="82" class="react-line-number react-code-text" style="padding-right:16px">82</div><div data-line-number="83" class="react-line-number react-code-text" style="padding-right:16px">83</div><div data-line-number="84" class="react-line-number react-code-text" style="padding-right:16px">84</div><div data-line-number="85" class="react-line-number react-code-text" style="padding-right:16px">85</div><div data-line-number="86" class="react-line-number react-code-text" style="padding-right:16px">86</div><div data-line-number="87" class="react-line-number react-code-text" style="padding-right:16px">87</div><div data-line-number="88" class="react-line-number react-code-text" style="padding-right:16px">88</div><div data-line-number="89" class="react-line-number react-code-text" style="padding-right:16px">89</div><div data-line-number="90" class="react-line-number react-code-text" style="padding-right:16px">90</div><div data-line-number="91" class="react-line-number react-code-text" style="padding-right:16px">91</div><div data-line-number="92" class="react-line-number react-code-text" style="padding-right:16px">92</div><div data-line-number="93" class="react-line-number react-code-text" style="padding-right:16px">93</div><div data-line-number="94" class="react-line-number react-code-text" style="padding-right:16px">94</div><div data-line-number="95" class="react-line-number react-code-text" style="padding-right:16px">95</div><div data-line-number="96" class="react-line-number react-code-text" style="padding-right:16px">96</div><div data-line-number="97" class="react-line-number react-code-text" style="padding-right:16px">97</div><div data-line-number="98" class="react-line-number react-code-text" style="padding-right:16px">98</div><div data-line-number="99" class="react-line-number react-code-text" style="padding-right:16px">99</div><div data-line-number="100" class="react-line-number react-code-text" style="padding-right:16px">100</div><div data-line-number="101" class="react-line-number react-code-text" style="padding-right:16px">101</div><div data-line-number="102" class="react-line-number react-code-text" style="padding-right:16px">102</div><div data-line-number="103" class="react-line-number react-code-text" style="padding-right:16px">103</div><div data-line-number="104" class="react-line-number react-code-text" style="padding-right:16px">104</div><div data-line-number="105" class="react-line-number react-code-text" style="padding-right:16px">105</div><div data-line-number="106" class="react-line-number react-code-text" style="padding-right:16px">106</div><div data-line-number="107" class="react-line-number react-code-text" style="padding-right:16px">107</div><div data-line-number="108" class="react-line-number react-code-text" style="padding-right:16px">108</div><div data-line-number="109" class="react-line-number react-code-text" style="padding-right:16px">109</div><div data-line-number="110" class="react-line-number react-code-text" style="padding-right:16px">110</div><div data-line-number="111" class="react-line-number react-code-text" style="padding-right:16px">111</div><div data-line-number="112" class="react-line-number react-code-text" style="padding-right:16px">112</div><div data-line-number="113" class="react-line-number react-code-text" style="padding-right:16px">113</div><div data-line-number="114" class="react-line-number react-code-text" style="padding-right:16px">114</div><div data-line-number="115" class="react-line-number react-code-text" style="padding-right:16px">115</div><div data-line-number="116" class="react-line-number react-code-text" style="padding-right:16px">116</div><div data-line-number="117" class="react-line-number react-code-text" style="padding-right:16px">117</div><div data-line-number="118" class="react-line-number react-code-text" style="padding-right:16px">118</div><div data-line-number="119" class="react-line-number react-code-text" style="padding-right:16px">119</div><div data-line-number="120" class="react-line-number react-code-text" style="padding-right:16px">120</div><div data-line-number="121" class="react-line-number react-code-text" style="padding-right:16px">121</div><div data-line-number="122" class="react-line-number react-code-text" style="padding-right:16px">122</div><div data-line-number="123" class="react-line-number react-code-text" style="padding-right:16px">123</div><div data-line-number="124" class="react-line-number react-code-text" style="padding-right:16px">124</div><div data-line-number="125" class="react-line-number react-code-text" style="padding-right:16px">125</div><div data-line-number="126" class="react-line-number react-code-text" style="padding-right:16px">126</div><div data-line-number="127" class="react-line-number react-code-text" style="padding-right:16px">127</div><div data-line-number="128" class="react-line-number react-code-text" style="padding-right:16px">128</div><div data-line-number="129" class="react-line-number react-code-text" style="padding-right:16px">129</div><div data-line-number="130" class="react-line-number react-code-text" style="padding-right:16px">130</div><div data-line-number="131" class="react-line-number react-code-text" style="padding-right:16px">131</div><div data-line-number="132" class="react-line-number react-code-text" style="padding-right:16px">132</div><div data-line-number="133" class="react-line-number react-code-text" style="padding-right:16px">133</div><div data-line-number="134" class="react-line-number react-code-text" style="padding-right:16px">134</div><div data-line-number="135" class="react-line-number react-code-text" style="padding-right:16px">135</div><div data-line-number="136" class="react-line-number react-code-text" style="padding-right:16px">136</div><div data-line-number="137" class="react-line-number react-code-text" style="padding-right:16px">137</div><div data-line-number="138" class="react-line-number react-code-text" style="padding-right:16px">138</div><div data-line-number="139" class="react-line-number react-code-text" style="padding-right:16px">139</div><div data-line-number="140" class="react-line-number react-code-text" style="padding-right:16px">140</div><div data-line-number="141" class="react-line-number react-code-text" style="padding-right:16px">141</div><div data-line-number="142" class="react-line-number react-code-text" style="padding-right:16px">142</div><div data-line-number="143" class="react-line-number react-code-text" style="padding-right:16px">143</div><div data-line-number="144" class="react-line-number react-code-text" style="padding-right:16px">144</div><div data-line-number="145" class="react-line-number react-code-text" style="padding-right:16px">145</div><div data-line-number="146" class="react-line-number react-code-text" style="padding-right:16px">146</div><div data-line-number="147" class="react-line-number react-code-text" style="padding-right:16px">147</div><div data-line-number="148" class="react-line-number react-code-text" style="padding-right:16px">148</div><div data-line-number="149" class="react-line-number react-code-text" style="padding-right:16px">149</div><div data-line-number="150" class="react-line-number react-code-text" style="padding-right:16px">150</div><div data-line-number="151" class="react-line-number react-code-text" style="padding-right:16px">151</div><div data-line-number="152" class="react-line-number react-code-text" style="padding-right:16px">152</div><div data-line-number="153" class="react-line-number react-code-text" style="padding-right:16px">153</div><div data-line-number="154" class="react-line-number react-code-text" style="padding-right:16px">154</div><div data-line-number="155" class="react-line-number react-code-text" style="padding-right:16px">155</div><div data-line-number="156" class="react-line-number react-code-text" style="padding-right:16px">156</div><div data-line-number="157" class="react-line-number react-code-text" style="padding-right:16px">157</div><div data-line-number="158" class="react-line-number react-code-text" style="padding-right:16px">158</div><div data-line-number="159" class="react-line-number react-code-text" style="padding-right:16px">159</div><div data-line-number="160" class="react-line-number react-code-text" style="padding-right:16px">160</div><div data-line-number="161" class="react-line-number react-code-text" style="padding-right:16px">161</div><div data-line-number="162" class="react-line-number react-code-text" style="padding-right:16px">162</div><div data-line-number="163" class="react-line-number react-code-text" style="padding-right:16px">163</div><div data-line-number="164" class="react-line-number react-code-text" style="padding-right:16px">164</div><div data-line-number="165" class="react-line-number react-code-text" style="padding-right:16px">165</div><div data-line-number="166" class="react-line-number react-code-text" style="padding-right:16px">166</div><div data-line-number="167" class="react-line-number react-code-text" style="padding-right:16px">167</div><div data-line-number="168" class="react-line-number react-code-text" style="padding-right:16px">168</div><div data-line-number="169" class="react-line-number react-code-text" style="padding-right:16px">169</div><div data-line-number="170" class="react-line-number react-code-text" style="padding-right:16px">170</div><div data-line-number="171" class="react-line-number react-code-text" style="padding-right:16px">171</div><div data-line-number="172" class="react-line-number react-code-text" style="padding-right:16px">172</div><div data-line-number="173" class="react-line-number react-code-text" style="padding-right:16px">173</div><div data-line-number="174" class="react-line-number react-code-text" style="padding-right:16px">174</div><div data-line-number="175" class="react-line-number react-code-text" style="padding-right:16px">175</div><div data-line-number="176" class="react-line-number react-code-text" style="padding-right:16px">176</div><div data-line-number="177" class="react-line-number react-code-text" style="padding-right:16px">177</div><div data-line-number="178" class="react-line-number react-code-text" style="padding-right:16px">178</div><div data-line-number="179" class="react-line-number react-code-text" style="padding-right:16px">179</div><div data-line-number="180" class="react-line-number react-code-text" style="padding-right:16px">180</div><div data-line-number="181" class="react-line-number react-code-text" style="padding-right:16px">181</div><div data-line-number="182" class="react-line-number react-code-text" style="padding-right:16px">182</div><div data-line-number="183" class="react-line-number react-code-text" style="padding-right:16px">183</div><div data-line-number="184" class="react-line-number react-code-text" style="padding-right:16px">184</div><div data-line-number="185" class="react-line-number react-code-text" style="padding-right:16px">185</div><div data-line-number="186" class="react-line-number react-code-text" style="padding-right:16px">186</div><div data-line-number="187" class="react-line-number react-code-text" style="padding-right:16px">187</div><div data-line-number="188" class="react-line-number react-code-text" style="padding-right:16px">188</div><div data-line-number="189" class="react-line-number react-code-text" style="padding-right:16px">189</div><div data-line-number="190" class="react-line-number react-code-text" style="padding-right:16px">190</div><div data-line-number="191" class="react-line-number react-code-text" style="padding-right:16px">191</div><div data-line-number="192" class="react-line-number react-code-text" style="padding-right:16px">192</div><div data-line-number="193" class="react-line-number react-code-text" style="padding-right:16px">193</div><div data-line-number="194" class="react-line-number react-code-text" style="padding-right:16px">194</div><div data-line-number="195" class="react-line-number react-code-text" style="padding-right:16px">195</div><div data-line-number="196" class="react-line-number react-code-text" style="padding-right:16px">196</div><div data-line-number="197" class="react-line-number react-code-text" style="padding-right:16px">197</div><div data-line-number="198" class="react-line-number react-code-text" style="padding-right:16px">198</div><div data-line-number="199" class="react-line-number react-code-text" style="padding-right:16px">199</div><div data-line-number="200" class="react-line-number react-code-text" style="padding-right:16px">200</div><div data-line-number="201" class="react-line-number react-code-text" style="padding-right:16px">201</div><div data-line-number="202" class="react-line-number react-code-text" style="padding-right:16px">202</div><div data-line-number="203" class="react-line-number react-code-text" style="padding-right:16px">203</div><div data-line-number="204" class="react-line-number react-code-text" style="padding-right:16px">204</div><div data-line-number="205" class="react-line-number react-code-text" style="padding-right:16px">205</div><div data-line-number="206" class="react-line-number react-code-text" style="padding-right:16px">206</div><div data-line-number="207" class="react-line-number react-code-text" style="padding-right:16px">207</div><div data-line-number="208" class="react-line-number react-code-text" style="padding-right:16px">208</div><div data-line-number="209" class="react-line-number react-code-text" style="padding-right:16px">209</div><div data-line-number="210" class="react-line-number react-code-text" style="padding-right:16px">210</div><div data-line-number="211" class="react-line-number react-code-text" style="padding-right:16px">211</div><div data-line-number="212" class="react-line-number react-code-text" style="padding-right:16px">212</div><div data-line-number="213" class="react-line-number react-code-text" style="padding-right:16px">213</div><div data-line-number="214" class="react-line-number react-code-text" style="padding-right:16px">214</div><div data-line-number="215" class="react-line-number react-code-text" style="padding-right:16px">215</div><div data-line-number="216" class="react-line-number react-code-text" style="padding-right:16px">216</div><div data-line-number="217" class="react-line-number react-code-text" style="padding-right:16px">217</div><div data-line-number="218" class="react-line-number react-code-text" style="padding-right:16px">218</div><div data-line-number="219" class="react-line-number react-code-text" style="padding-right:16px">219</div><div data-line-number="220" class="react-line-number react-code-text" style="padding-right:16px">220</div><div data-line-number="221" class="react-line-number react-code-text" style="padding-right:16px">221</div><div data-line-number="222" class="react-line-number react-code-text" style="padding-right:16px">222</div><div data-line-number="223" class="react-line-number react-code-text" style="padding-right:16px">223</div><div data-line-number="224" class="react-line-number react-code-text" style="padding-right:16px">224</div><div data-line-number="225" class="react-line-number react-code-text" style="padding-right:16px">225</div><div data-line-number="226" class="react-line-number react-code-text" style="padding-right:16px">226</div><div data-line-number="227" class="react-line-number react-code-text" style="padding-right:16px">227</div><div data-line-number="228" class="react-line-number react-code-text" style="padding-right:16px">228</div><div data-line-number="229" class="react-line-number react-code-text" style="padding-right:16px">229</div><div data-line-number="230" class="react-line-number react-code-text" style="padding-right:16px">230</div><div data-line-number="231" class="react-line-number react-code-text" style="padding-right:16px">231</div><div data-line-number="232" class="react-line-number react-code-text" style="padding-right:16px">232</div><div data-line-number="233" class="react-line-number react-code-text" style="padding-right:16px">233</div><div data-line-number="234" class="react-line-number react-code-text" style="padding-right:16px">234</div><div data-line-number="235" class="react-line-number react-code-text" style="padding-right:16px">235</div><div data-line-number="236" class="react-line-number react-code-text" style="padding-right:16px">236</div><div data-line-number="237" class="react-line-number react-code-text" style="padding-right:16px">237</div><div data-line-number="238" class="react-line-number react-code-text" style="padding-right:16px">238</div><div data-line-number="239" class="react-line-number react-code-text" style="padding-right:16px">239</div><div data-line-number="240" class="react-line-number react-code-text" style="padding-right:16px">240</div><div data-line-number="241" class="react-line-number react-code-text" style="padding-right:16px">241</div><div data-line-number="242" class="react-line-number react-code-text" style="padding-right:16px">242</div><div data-line-number="243" class="react-line-number react-code-text" style="padding-right:16px">243</div><div data-line-number="244" class="react-line-number react-code-text" style="padding-right:16px">244</div><div data-line-number="245" class="react-line-number react-code-text" style="padding-right:16px">245</div><div data-line-number="246" class="react-line-number react-code-text" style="padding-right:16px">246</div><div data-line-number="247" class="react-line-number react-code-text" style="padding-right:16px">247</div><div data-line-number="248" class="react-line-number react-code-text" style="padding-right:16px">248</div><div data-line-number="249" class="react-line-number react-code-text" style="padding-right:16px">249</div><div data-line-number="250" class="react-line-number react-code-text" style="padding-right:16px">250</div><div data-line-number="251" class="react-line-number react-code-text" style="padding-right:16px">251</div><div data-line-number="252" class="react-line-number react-code-text" style="padding-right:16px">252</div><div data-line-number="253" class="react-line-number react-code-text" style="padding-right:16px">253</div><div data-line-number="254" class="react-line-number react-code-text" style="padding-right:16px">254</div><div data-line-number="255" class="react-line-number react-code-text" style="padding-right:16px">255</div><div data-line-number="256" class="react-line-number react-code-text" style="padding-right:16px">256</div><div data-line-number="257" class="react-line-number react-code-text" style="padding-right:16px">257</div><div data-line-number="258" class="react-line-number react-code-text" style="padding-right:16px">258</div><div data-line-number="259" class="react-line-number react-code-text" style="padding-right:16px">259</div><div data-line-number="260" class="react-line-number react-code-text" style="padding-right:16px">260</div><div data-line-number="261" class="react-line-number react-code-text" style="padding-right:16px">261</div><div data-line-number="262" class="react-line-number react-code-text" style="padding-right:16px">262</div><div data-line-number="263" class="react-line-number react-code-text" style="padding-right:16px">263</div><div data-line-number="264" class="react-line-number react-code-text" style="padding-right:16px">264</div><div data-line-number="265" class="react-line-number react-code-text" style="padding-right:16px">265</div><div data-line-number="266" class="react-line-number react-code-text" style="padding-right:16px">266</div><div data-line-number="267" class="react-line-number react-code-text" style="padding-right:16px">267</div><div data-line-number="268" class="react-line-number react-code-text" style="padding-right:16px">268</div><div data-line-number="269" class="react-line-number react-code-text" style="padding-right:16px">269</div><div data-line-number="270" class="react-line-number react-code-text" style="padding-right:16px">270</div><div data-line-number="271" class="react-line-number react-code-text" style="padding-right:16px">271</div><div data-line-number="272" class="react-line-number react-code-text" style="padding-right:16px">272</div><div data-line-number="273" class="react-line-number react-code-text" style="padding-right:16px">273</div><div data-line-number="274" class="react-line-number react-code-text" style="padding-right:16px">274</div><div data-line-number="275" class="react-line-number react-code-text" style="padding-right:16px">275</div><div data-line-number="276" class="react-line-number react-code-text" style="padding-right:16px">276</div><div data-line-number="277" class="react-line-number react-code-text" style="padding-right:16px">277</div><div data-line-number="278" class="react-line-number react-code-text" style="padding-right:16px">278</div><div data-line-number="279" class="react-line-number react-code-text" style="padding-right:16px">279</div><div data-line-number="280" class="react-line-number react-code-text" style="padding-right:16px">280</div><div data-line-number="281" class="react-line-number react-code-text" style="padding-right:16px">281</div><div data-line-number="282" class="react-line-number react-code-text" style="padding-right:16px">282</div><div data-line-number="283" class="react-line-number react-code-text" style="padding-right:16px">283</div><div data-line-number="284" class="react-line-number react-code-text" style="padding-right:16px">284</div><div data-line-number="285" class="react-line-number react-code-text" style="padding-right:16px">285</div><div data-line-number="286" class="react-line-number react-code-text" style="padding-right:16px">286</div><div data-line-number="287" class="react-line-number react-code-text" style="padding-right:16px">287</div><div data-line-number="288" class="react-line-number react-code-text" style="padding-right:16px">288</div><div data-line-number="289" class="react-line-number react-code-text" style="padding-right:16px">289</div><div data-line-number="290" class="react-line-number react-code-text" style="padding-right:16px">290</div><div data-line-number="291" class="react-line-number react-code-text" style="padding-right:16px">291</div><div data-line-number="292" class="react-line-number react-code-text" style="padding-right:16px">292</div><div data-line-number="293" class="react-line-number react-code-text" style="padding-right:16px">293</div><div data-line-number="294" class="react-line-number react-code-text" style="padding-right:16px">294</div><div data-line-number="295" class="react-line-number react-code-text" style="padding-right:16px">295</div><div data-line-number="296" class="react-line-number react-code-text" style="padding-right:16px">296</div><div data-line-number="297" class="react-line-number react-code-text" style="padding-right:16px">297</div><div data-line-number="298" class="react-line-number react-code-text" style="padding-right:16px">298</div><div data-line-number="299" class="react-line-number react-code-text" style="padding-right:16px">299</div><div data-line-number="300" class="react-line-number react-code-text" style="padding-right:16px">300</div><div data-line-number="301" class="react-line-number react-code-text" style="padding-right:16px">301</div><div data-line-number="302" class="react-line-number react-code-text" style="padding-right:16px">302</div><div data-line-number="303" class="react-line-number react-code-text" style="padding-right:16px">303</div><div data-line-number="304" class="react-line-number react-code-text" style="padding-right:16px">304</div><div data-line-number="305" class="react-line-number react-code-text" style="padding-right:16px">305</div><div data-line-number="306" class="react-line-number react-code-text" style="padding-right:16px">306</div><div data-line-number="307" class="react-line-number react-code-text" style="padding-right:16px">307</div><div data-line-number="308" class="react-line-number react-code-text" style="padding-right:16px">308</div><div data-line-number="309" class="react-line-number react-code-text" style="padding-right:16px">309</div><div data-line-number="310" class="react-line-number react-code-text" style="padding-right:16px">310</div><div data-line-number="311" class="react-line-number react-code-text" style="padding-right:16px">311</div><div data-line-number="312" class="react-line-number react-code-text" style="padding-right:16px">312</div><div data-line-number="313" class="react-line-number react-code-text" style="padding-right:16px">313</div><div data-line-number="314" class="react-line-number react-code-text" style="padding-right:16px">314</div><div data-line-number="315" class="react-line-number react-code-text" style="padding-right:16px">315</div><div data-line-number="316" class="react-line-number react-code-text" style="padding-right:16px">316</div><div data-line-number="317" class="react-line-number react-code-text" style="padding-right:16px">317</div><div data-line-number="318" class="react-line-number react-code-text" style="padding-right:16px">318</div><div data-line-number="319" class="react-line-number react-code-text" style="padding-right:16px">319</div><div data-line-number="320" class="react-line-number react-code-text" style="padding-right:16px">320</div><div data-line-number="321" class="react-line-number react-code-text" style="padding-right:16px">321</div><div data-line-number="322" class="react-line-number react-code-text" style="padding-right:16px">322</div><div data-line-number="323" class="react-line-number react-code-text" style="padding-right:16px">323</div><div data-line-number="324" class="react-line-number react-code-text" style="padding-right:16px">324</div><div data-line-number="325" class="react-line-number react-code-text" style="padding-right:16px">325</div><div data-line-number="326" class="react-line-number react-code-text" style="padding-right:16px">326</div><div data-line-number="327" class="react-line-number react-code-text" style="padding-right:16px">327</div><div data-line-number="328" class="react-line-number react-code-text" style="padding-right:16px">328</div><div data-line-number="329" class="react-line-number react-code-text" style="padding-right:16px">329</div><div data-line-number="330" class="react-line-number react-code-text" style="padding-right:16px">330</div><div data-line-number="331" class="react-line-number react-code-text" style="padding-right:16px">331</div><div data-line-number="332" class="react-line-number react-code-text" style="padding-right:16px">332</div><div data-line-number="333" class="react-line-number react-code-text" style="padding-right:16px">333</div><div data-line-number="334" class="react-line-number react-code-text" style="padding-right:16px">334</div><div data-line-number="335" class="react-line-number react-code-text" style="padding-right:16px">335</div><div data-line-number="336" class="react-line-number react-code-text" style="padding-right:16px">336</div><div data-line-number="337" class="react-line-number react-code-text" style="padding-right:16px">337</div><div data-line-number="338" class="react-line-number react-code-text" style="padding-right:16px">338</div><div data-line-number="339" class="react-line-number react-code-text" style="padding-right:16px">339</div><div data-line-number="340" class="react-line-number react-code-text" style="padding-right:16px">340</div><div data-line-number="341" class="react-line-number react-code-text" style="padding-right:16px">341</div><div data-line-number="342" class="react-line-number react-code-text" style="padding-right:16px">342</div><div data-line-number="343" class="react-line-number react-code-text" style="padding-right:16px">343</div><div data-line-number="344" class="react-line-number react-code-text" style="padding-right:16px">344</div><div data-line-number="345" class="react-line-number react-code-text" style="padding-right:16px">345</div><div data-line-number="346" class="react-line-number react-code-text" style="padding-right:16px">346</div><div data-line-number="347" class="react-line-number react-code-text" style="padding-right:16px">347</div><div data-line-number="348" class="react-line-number react-code-text" style="padding-right:16px">348</div><div data-line-number="349" class="react-line-number react-code-text" style="padding-right:16px">349</div><div data-line-number="350" class="react-line-number react-code-text" style="padding-right:16px">350</div><div data-line-number="351" class="react-line-number react-code-text" style="padding-right:16px">351</div><div data-line-number="352" class="react-line-number react-code-text" style="padding-right:16px">352</div><div data-line-number="353" class="react-line-number react-code-text" style="padding-right:16px">353</div><div data-line-number="354" class="react-line-number react-code-text" style="padding-right:16px">354</div><div data-line-number="355" class="react-line-number react-code-text" style="padding-right:16px">355</div><div data-line-number="356" class="react-line-number react-code-text" style="padding-right:16px">356</div><div data-line-number="357" class="react-line-number react-code-text" style="padding-right:16px">357</div><div data-line-number="358" class="react-line-number react-code-text" style="padding-right:16px">358</div><div data-line-number="359" class="react-line-number react-code-text" style="padding-right:16px">359</div><div data-line-number="360" class="react-line-number react-code-text" style="padding-right:16px">360</div><div data-line-number="361" class="react-line-number react-code-text" style="padding-right:16px">361</div><div data-line-number="362" class="react-line-number react-code-text" style="padding-right:16px">362</div><div data-line-number="363" class="react-line-number react-code-text" style="padding-right:16px">363</div><div data-line-number="364" class="react-line-number react-code-text" style="padding-right:16px">364</div><div data-line-number="365" class="react-line-number react-code-text" style="padding-right:16px">365</div><div data-line-number="366" class="react-line-number react-code-text" style="padding-right:16px">366</div><div data-line-number="367" class="react-line-number react-code-text" style="padding-right:16px">367</div><div data-line-number="368" class="react-line-number react-code-text" style="padding-right:16px">368</div><div data-line-number="369" class="react-line-number react-code-text" style="padding-right:16px">369</div><div data-line-number="370" class="react-line-number react-code-text" style="padding-right:16px">370</div><div data-line-number="371" class="react-line-number react-code-text" style="padding-right:16px">371</div><div data-line-number="372" class="react-line-number react-code-text" style="padding-right:16px">372</div><div data-line-number="373" class="react-line-number react-code-text" style="padding-right:16px">373</div><div data-line-number="374" class="react-line-number react-code-text" style="padding-right:16px">374</div><div data-line-number="375" class="react-line-number react-code-text" style="padding-right:16px">375</div><div data-line-number="376" class="react-line-number react-code-text" style="padding-right:16px">376</div><div data-line-number="377" class="react-line-number react-code-text" style="padding-right:16px">377</div><div data-line-number="378" class="react-line-number react-code-text" style="padding-right:16px">378</div><div data-line-number="379" class="react-line-number react-code-text" style="padding-right:16px">379</div><div data-line-number="380" class="react-line-number react-code-text" style="padding-right:16px">380</div><div data-line-number="381" class="react-line-number react-code-text" style="padding-right:16px">381</div><div data-line-number="382" class="react-line-number react-code-text" style="padding-right:16px">382</div><div data-line-number="383" class="react-line-number react-code-text" style="padding-right:16px">383</div><div data-line-number="384" class="react-line-number react-code-text" style="padding-right:16px">384</div><div data-line-number="385" class="react-line-number react-code-text" style="padding-right:16px">385</div><div data-line-number="386" class="react-line-number react-code-text" style="padding-right:16px">386</div><div data-line-number="387" class="react-line-number react-code-text" style="padding-right:16px">387</div><div data-line-number="388" class="react-line-number react-code-text" style="padding-right:16px">388</div><div data-line-number="389" class="react-line-number react-code-text" style="padding-right:16px">389</div><div data-line-number="390" class="react-line-number react-code-text" style="padding-right:16px">390</div><div data-line-number="391" class="react-line-number react-code-text" style="padding-right:16px">391</div><div data-line-number="392" class="react-line-number react-code-text" style="padding-right:16px">392</div><div data-line-number="393" class="react-line-number react-code-text" style="padding-right:16px">393</div><div data-line-number="394" class="react-line-number react-code-text" style="padding-right:16px">394</div><div data-line-number="395" class="react-line-number react-code-text" style="padding-right:16px">395</div><div data-line-number="396" class="react-line-number react-code-text" style="padding-right:16px">396</div><div data-line-number="397" class="react-line-number react-code-text" style="padding-right:16px">397</div><div data-line-number="398" class="react-line-number react-code-text" style="padding-right:16px">398</div><div data-line-number="399" class="react-line-number react-code-text" style="padding-right:16px">399</div><div data-line-number="400" class="react-line-number react-code-text" style="padding-right:16px">400</div><div data-line-number="401" class="react-line-number react-code-text" style="padding-right:16px">401</div><div data-line-number="402" class="react-line-number react-code-text" style="padding-right:16px">402</div><div data-line-number="403" class="react-line-number react-code-text" style="padding-right:16px">403</div><div data-line-number="404" class="react-line-number react-code-text" style="padding-right:16px">404</div><div data-line-number="405" class="react-line-number react-code-text" style="padding-right:16px">405</div><div data-line-number="406" class="react-line-number react-code-text" style="padding-right:16px">406</div><div data-line-number="407" class="react-line-number react-code-text" style="padding-right:16px">407</div><div data-line-number="408" class="react-line-number react-code-text" style="padding-right:16px">408</div><div data-line-number="409" class="react-line-number react-code-text" style="padding-right:16px">409</div><div data-line-number="410" class="react-line-number react-code-text" style="padding-right:16px">410</div><div data-line-number="411" class="react-line-number react-code-text" style="padding-right:16px">411</div><div data-line-number="412" class="react-line-number react-code-text" style="padding-right:16px">412</div><div data-line-number="413" class="react-line-number react-code-text" style="padding-right:16px">413</div><div data-line-number="414" class="react-line-number react-code-text" style="padding-right:16px">414</div><div data-line-number="415" class="react-line-number react-code-text" style="padding-right:16px">415</div><div data-line-number="416" class="react-line-number react-code-text" style="padding-right:16px">416</div><div data-line-number="417" class="react-line-number react-code-text" style="padding-right:16px">417</div><div data-line-number="418" class="react-line-number react-code-text" style="padding-right:16px">418</div><div data-line-number="419" class="react-line-number react-code-text" style="padding-right:16px">419</div><div data-line-number="420" class="react-line-number react-code-text" style="padding-right:16px">420</div><div data-line-number="421" class="react-line-number react-code-text" style="padding-right:16px">421</div><div data-line-number="422" class="react-line-number react-code-text" style="padding-right:16px">422</div><div data-line-number="423" class="react-line-number react-code-text" style="padding-right:16px">423</div><div data-line-number="424" class="react-line-number react-code-text" style="padding-right:16px">424</div><div data-line-number="425" class="react-line-number react-code-text" style="padding-right:16px">425</div><div data-line-number="426" class="react-line-number react-code-text" style="padding-right:16px">426</div><div data-line-number="427" class="react-line-number react-code-text" style="padding-right:16px">427</div><div data-line-number="428" class="react-line-number react-code-text" style="padding-right:16px">428</div><div data-line-number="429" class="react-line-number react-code-text" style="padding-right:16px">429</div><div data-line-number="430" class="react-line-number react-code-text" style="padding-right:16px">430</div><div data-line-number="431" class="react-line-number react-code-text" style="padding-right:16px">431</div><div data-line-number="432" class="react-line-number react-code-text" style="padding-right:16px">432</div><div data-line-number="433" class="react-line-number react-code-text" style="padding-right:16px">433</div><div data-line-number="434" class="react-line-number react-code-text" style="padding-right:16px">434</div><div data-line-number="435" class="react-line-number react-code-text" style="padding-right:16px">435</div><div data-line-number="436" class="react-line-number react-code-text" style="padding-right:16px">436</div><div data-line-number="437" class="react-line-number react-code-text" style="padding-right:16px">437</div><div data-line-number="438" class="react-line-number react-code-text" style="padding-right:16px">438</div><div data-line-number="439" class="react-line-number react-code-text" style="padding-right:16px">439</div><div data-line-number="440" class="react-line-number react-code-text" style="padding-right:16px">440</div><div data-line-number="441" class="react-line-number react-code-text" style="padding-right:16px">441</div><div data-line-number="442" class="react-line-number react-code-text" style="padding-right:16px">442</div><div data-line-number="443" class="react-line-number react-code-text" style="padding-right:16px">443</div><div data-line-number="444" class="react-line-number react-code-text" style="padding-right:16px">444</div><div data-line-number="445" class="react-line-number react-code-text" style="padding-right:16px">445</div><div data-line-number="446" class="react-line-number react-code-text" style="padding-right:16px">446</div><div data-line-number="447" class="react-line-number react-code-text" style="padding-right:16px">447</div><div data-line-number="448" class="react-line-number react-code-text" style="padding-right:16px">448</div><div data-line-number="449" class="react-line-number react-code-text" style="padding-right:16px">449</div><div data-line-number="450" class="react-line-number react-code-text" style="padding-right:16px">450</div><div data-line-number="451" class="react-line-number react-code-text" style="padding-right:16px">451</div><div data-line-number="452" class="react-line-number react-code-text" style="padding-right:16px">452</div><div data-line-number="453" class="react-line-number react-code-text" style="padding-right:16px">453</div><div data-line-number="454" class="react-line-number react-code-text" style="padding-right:16px">454</div><div data-line-number="455" class="react-line-number react-code-text" style="padding-right:16px">455</div><div data-line-number="456" class="react-line-number react-code-text" style="padding-right:16px">456</div><div data-line-number="457" class="react-line-number react-code-text" style="padding-right:16px">457</div><div data-line-number="458" class="react-line-number react-code-text" style="padding-right:16px">458</div><div data-line-number="459" class="react-line-number react-code-text" style="padding-right:16px">459</div><div data-line-number="460" class="react-line-number react-code-text" style="padding-right:16px">460</div><div data-line-number="461" class="react-line-number react-code-text" style="padding-right:16px">461</div><div data-line-number="462" class="react-line-number react-code-text" style="padding-right:16px">462</div><div data-line-number="463" class="react-line-number react-code-text" style="padding-right:16px">463</div><div data-line-number="464" class="react-line-number react-code-text" style="padding-right:16px">464</div><div data-line-number="465" class="react-line-number react-code-text" style="padding-right:16px">465</div><div data-line-number="466" class="react-line-number react-code-text" style="padding-right:16px">466</div><div data-line-number="467" class="react-line-number react-code-text" style="padding-right:16px">467</div><div data-line-number="468" class="react-line-number react-code-text" style="padding-right:16px">468</div><div data-line-number="469" class="react-line-number react-code-text" style="padding-right:16px">469</div><div data-line-number="470" class="react-line-number react-code-text" style="padding-right:16px">470</div><div data-line-number="471" class="react-line-number react-code-text" style="padding-right:16px">471</div><div data-line-number="472" class="react-line-number react-code-text" style="padding-right:16px">472</div><div data-line-number="473" class="react-line-number react-code-text" style="padding-right:16px">473</div><div data-line-number="474" class="react-line-number react-code-text" style="padding-right:16px">474</div><div data-line-number="475" class="react-line-number react-code-text" style="padding-right:16px">475</div><div data-line-number="476" class="react-line-number react-code-text" style="padding-right:16px">476</div><div data-line-number="477" class="react-line-number react-code-text" style="padding-right:16px">477</div><div data-line-number="478" class="react-line-number react-code-text" style="padding-right:16px">478</div><div data-line-number="479" class="react-line-number react-code-text" style="padding-right:16px">479</div><div data-line-number="480" class="react-line-number react-code-text" style="padding-right:16px">480</div><div data-line-number="481" class="react-line-number react-code-text" style="padding-right:16px">481</div><div data-line-number="482" class="react-line-number react-code-text" style="padding-right:16px">482</div><div data-line-number="483" class="react-line-number react-code-text" style="padding-right:16px">483</div><div data-line-number="484" class="react-line-number react-code-text" style="padding-right:16px">484</div><div data-line-number="485" class="react-line-number react-code-text" style="padding-right:16px">485</div><div data-line-number="486" class="react-line-number react-code-text" style="padding-right:16px">486</div><div data-line-number="487" class="react-line-number react-code-text" style="padding-right:16px">487</div><div data-line-number="488" class="react-line-number react-code-text" style="padding-right:16px">488</div><div data-line-number="489" class="react-line-number react-code-text" style="padding-right:16px">489</div><div data-line-number="490" class="react-line-number react-code-text" style="padding-right:16px">490</div><div data-line-number="491" class="react-line-number react-code-text" style="padding-right:16px">491</div><div data-line-number="492" class="react-line-number react-code-text" style="padding-right:16px">492</div><div data-line-number="493" class="react-line-number react-code-text" style="padding-right:16px">493</div><div data-line-number="494" class="react-line-number react-code-text" style="padding-right:16px">494</div><div data-line-number="495" class="react-line-number react-code-text" style="padding-right:16px">495</div><div data-line-number="496" class="react-line-number react-code-text" style="padding-right:16px">496</div><div data-line-number="497" class="react-line-number react-code-text" style="padding-right:16px">497</div><div data-line-number="498" class="react-line-number react-code-text" style="padding-right:16px">498</div><div data-line-number="499" class="react-line-number react-code-text" style="padding-right:16px">499</div><div data-line-number="500" class="react-line-number react-code-text" style="padding-right:16px">500</div><div data-line-number="501" class="react-line-number react-code-text" style="padding-right:16px">501</div><div data-line-number="502" class="react-line-number react-code-text" style="padding-right:16px">502</div><div data-line-number="503" class="react-line-number react-code-text" style="padding-right:16px">503</div><div data-line-number="504" class="react-line-number react-code-text" style="padding-right:16px">504</div><div data-line-number="505" class="react-line-number react-code-text" style="padding-right:16px">505</div><div data-line-number="506" class="react-line-number react-code-text" style="padding-right:16px">506</div><div data-line-number="507" class="react-line-number react-code-text" style="padding-right:16px">507</div><div data-line-number="508" class="react-line-number react-code-text" style="padding-right:16px">508</div><div data-line-number="509" class="react-line-number react-code-text" style="padding-right:16px">509</div><div data-line-number="510" class="react-line-number react-code-text" style="padding-right:16px">510</div><div data-line-number="511" class="react-line-number react-code-text" style="padding-right:16px">511</div><div data-line-number="512" class="react-line-number react-code-text" style="padding-right:16px">512</div><div data-line-number="513" class="react-line-number react-code-text" style="padding-right:16px">513</div><div data-line-number="514" class="react-line-number react-code-text" style="padding-right:16px">514</div><div data-line-number="515" class="react-line-number react-code-text" style="padding-right:16px">515</div><div data-line-number="516" class="react-line-number react-code-text" style="padding-right:16px">516</div><div data-line-number="517" class="react-line-number react-code-text" style="padding-right:16px">517</div><div data-line-number="518" class="react-line-number react-code-text" style="padding-right:16px">518</div><div data-line-number="519" class="react-line-number react-code-text" style="padding-right:16px">519</div><div data-line-number="520" class="react-line-number react-code-text" style="padding-right:16px">520</div><div data-line-number="521" class="react-line-number react-code-text" style="padding-right:16px">521</div><div data-line-number="522" class="react-line-number react-code-text" style="padding-right:16px">522</div><div data-line-number="523" class="react-line-number react-code-text" style="padding-right:16px">523</div><div data-line-number="524" class="react-line-number react-code-text" style="padding-right:16px">524</div><div data-line-number="525" class="react-line-number react-code-text" style="padding-right:16px">525</div><div data-line-number="526" class="react-line-number react-code-text" style="padding-right:16px">526</div><div data-line-number="527" class="react-line-number react-code-text" style="padding-right:16px">527</div><div data-line-number="528" class="react-line-number react-code-text" style="padding-right:16px">528</div><div data-line-number="529" class="react-line-number react-code-text" style="padding-right:16px">529</div><div data-line-number="530" class="react-line-number react-code-text" style="padding-right:16px">530</div><div data-line-number="531" class="react-line-number react-code-text" style="padding-right:16px">531</div><div data-line-number="532" class="react-line-number react-code-text" style="padding-right:16px">532</div><div data-line-number="533" class="react-line-number react-code-text" style="padding-right:16px">533</div><div data-line-number="534" class="react-line-number react-code-text" style="padding-right:16px">534</div><div data-line-number="535" class="react-line-number react-code-text" style="padding-right:16px">535</div><div data-line-number="536" class="react-line-number react-code-text" style="padding-right:16px">536</div><div data-line-number="537" class="react-line-number react-code-text" style="padding-right:16px">537</div><div data-line-number="538" class="react-line-number react-code-text" style="padding-right:16px">538</div><div data-line-number="539" class="react-line-number react-code-text" style="padding-right:16px">539</div><div data-line-number="540" class="react-line-number react-code-text" style="padding-right:16px">540</div><div data-line-number="541" class="react-line-number react-code-text" style="padding-right:16px">541</div><div data-line-number="542" class="react-line-number react-code-text" style="padding-right:16px">542</div><div data-line-number="543" class="react-line-number react-code-text" style="padding-right:16px">543</div><div data-line-number="544" class="react-line-number react-code-text" style="padding-right:16px">544</div><div data-line-number="545" class="react-line-number react-code-text" style="padding-right:16px">545</div><div data-line-number="546" class="react-line-number react-code-text" style="padding-right:16px">546</div><div data-line-number="547" class="react-line-number react-code-text" style="padding-right:16px">547</div><div data-line-number="548" class="react-line-number react-code-text" style="padding-right:16px">548</div><div data-line-number="549" class="react-line-number react-code-text" style="padding-right:16px">549</div><div data-line-number="550" class="react-line-number react-code-text" style="padding-right:16px">550</div><div data-line-number="551" class="react-line-number react-code-text" style="padding-right:16px">551</div><div data-line-number="552" class="react-line-number react-code-text" style="padding-right:16px">552</div><div data-line-number="553" class="react-line-number react-code-text" style="padding-right:16px">553</div><div data-line-number="554" class="react-line-number react-code-text" style="padding-right:16px">554</div><div data-line-number="555" class="react-line-number react-code-text" style="padding-right:16px">555</div><div data-line-number="556" class="react-line-number react-code-text" style="padding-right:16px">556</div><div data-line-number="557" class="react-line-number react-code-text" style="padding-right:16px">557</div><div data-line-number="558" class="react-line-number react-code-text" style="padding-right:16px">558</div><div data-line-number="559" class="react-line-number react-code-text" style="padding-right:16px">559</div><div data-line-number="560" class="react-line-number react-code-text" style="padding-right:16px">560</div><div data-line-number="561" class="react-line-number react-code-text" style="padding-right:16px">561</div><div data-line-number="562" class="react-line-number react-code-text" style="padding-right:16px">562</div><div data-line-number="563" class="react-line-number react-code-text" style="padding-right:16px">563</div><div data-line-number="564" class="react-line-number react-code-text" style="padding-right:16px">564</div><div data-line-number="565" class="react-line-number react-code-text" style="padding-right:16px">565</div><div data-line-number="566" class="react-line-number react-code-text" style="padding-right:16px">566</div><div data-line-number="567" class="react-line-number react-code-text" style="padding-right:16px">567</div><div data-line-number="568" class="react-line-number react-code-text" style="padding-right:16px">568</div><div data-line-number="569" class="react-line-number react-code-text" style="padding-right:16px">569</div><div data-line-number="570" class="react-line-number react-code-text" style="padding-right:16px">570</div><div data-line-number="571" class="react-line-number react-code-text" style="padding-right:16px">571</div><div data-line-number="572" class="react-line-number react-code-text" style="padding-right:16px">572</div><div data-line-number="573" class="react-line-number react-code-text" style="padding-right:16px">573</div><div data-line-number="574" class="react-line-number react-code-text" style="padding-right:16px">574</div><div data-line-number="575" class="react-line-number react-code-text" style="padding-right:16px">575</div><div data-line-number="576" class="react-line-number react-code-text" style="padding-right:16px">576</div><div data-line-number="577" class="react-line-number react-code-text" style="padding-right:16px">577</div><div data-line-number="578" class="react-line-number react-code-text" style="padding-right:16px">578</div><div data-line-number="579" class="react-line-number react-code-text" style="padding-right:16px">579</div><div data-line-number="580" class="react-line-number react-code-text" style="padding-right:16px">580</div><div data-line-number="581" class="react-line-number react-code-text" style="padding-right:16px">581</div><div data-line-number="582" class="react-line-number react-code-text" style="padding-right:16px">582</div><div data-line-number="583" class="react-line-number react-code-text" style="padding-right:16px">583</div><div data-line-number="584" class="react-line-number react-code-text" style="padding-right:16px">584</div><div data-line-number="585" class="react-line-number react-code-text" style="padding-right:16px">585</div><div data-line-number="586" class="react-line-number react-code-text" style="padding-right:16px">586</div><div data-line-number="587" class="react-line-number react-code-text" style="padding-right:16px">587</div><div data-line-number="588" class="react-line-number react-code-text" style="padding-right:16px">588</div><div data-line-number="589" class="react-line-number react-code-text" style="padding-right:16px">589</div><div data-line-number="590" class="react-line-number react-code-text" style="padding-right:16px">590</div><div data-line-number="591" class="react-line-number react-code-text" style="padding-right:16px">591</div><div data-line-number="592" class="react-line-number react-code-text" style="padding-right:16px">592</div><div data-line-number="593" class="react-line-number react-code-text" style="padding-right:16px">593</div><div data-line-number="594" class="react-line-number react-code-text" style="padding-right:16px">594</div><div data-line-number="595" class="react-line-number react-code-text" style="padding-right:16px">595</div><div data-line-number="596" class="react-line-number react-code-text" style="padding-right:16px">596<span class="Box-sc-g0xbh4-0 cJGaMs"><div aria-label="Collapse code section" role="button" class="Box-sc-g0xbh4-0 iGLarr"><svg aria-hidden="true" focusable="false" class="octicon octicon-chevron-down Octicon-sc-9kayk9-0" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></div></span></div><div data-line-number="597" class="child-of-line-595 react-line-number react-code-text" style="padding-right:16px">597</div><div data-line-number="598" class="child-of-line-595 react-line-number react-code-text" style="padding-right:16px">598</div><div data-line-number="599" class="child-of-line-595 react-line-number react-code-text" style="padding-right:16px">599</div><div data-line-number="600" class="child-of-line-595 react-line-number react-code-text" style="padding-right:16px">600</div><div data-line-number="601" class="react-line-number react-code-text" style="padding-right:16px">601</div><div data-line-number="602" class="react-line-number react-code-text" style="padding-right:16px">602</div><div data-line-number="603" class="react-line-number react-code-text" style="padding-right:16px">603</div><div data-line-number="604" class="react-line-number react-code-text" style="padding-right:16px">604</div><div data-line-number="605" class="react-line-number react-code-text" style="padding-right:16px">605</div><div data-line-number="606" class="react-line-number react-code-text" style="padding-right:16px">606</div><div data-line-number="607" class="react-line-number react-code-text" style="padding-right:16px">607</div><div data-line-number="608" class="react-line-number react-code-text" style="padding-right:16px">608</div><div data-line-number="609" class="react-line-number react-code-text" style="padding-right:16px">609</div><div data-line-number="610" class="react-line-number react-code-text" style="padding-right:16px">610</div><div data-line-number="611" class="react-line-number react-code-text" style="padding-right:16px">611</div><div data-line-number="612" class="react-line-number react-code-text" style="padding-right:16px">612</div><div data-line-number="613" class="react-line-number react-code-text" style="padding-right:16px">613</div><div data-line-number="614" class="react-line-number react-code-text" style="padding-right:16px">614</div><div data-line-number="615" class="react-line-number react-code-text" style="padding-right:16px">615</div><div data-line-number="616" class="react-line-number react-code-text" style="padding-right:16px">616</div><div data-line-number="617" class="react-line-number react-code-text" style="padding-right:16px">617</div><div data-line-number="618" class="react-line-number react-code-text" style="padding-right:16px">618</div><div data-line-number="619" class="react-line-number react-code-text" style="padding-right:16px">619</div><div data-line-number="620" class="react-line-number react-code-text" style="padding-right:16px">620</div><div data-line-number="621" class="react-line-number react-code-text" style="padding-right:16px">621</div><div data-line-number="622" class="react-line-number react-code-text" style="padding-right:16px">622</div><div data-line-number="623" class="react-line-number react-code-text" style="padding-right:16px">623</div><div data-line-number="624" class="react-line-number react-code-text" style="padding-right:16px">624</div><div data-line-number="625" class="react-line-number react-code-text" style="padding-right:16px">625</div><div data-line-number="626" class="react-line-number react-code-text" style="padding-right:16px">626</div><div data-line-number="627" class="react-line-number react-code-text" style="padding-right:16px">627</div><div data-line-number="628" class="react-line-number react-code-text" style="padding-right:16px">628</div><div data-line-number="629" class="react-line-number react-code-text" style="padding-right:16px">629</div><div data-line-number="630" class="react-line-number react-code-text" style="padding-right:16px">630</div><div data-line-number="631" class="react-line-number react-code-text" style="padding-right:16px">631</div><div data-line-number="632" class="react-line-number react-code-text" style="padding-right:16px">632</div><div data-line-number="633" class="react-line-number react-code-text" style="padding-right:16px">633</div><div data-line-number="634" class="react-line-number react-code-text" style="padding-right:16px">634</div><div data-line-number="635" class="react-line-number react-code-text" style="padding-right:16px">635</div><div data-line-number="636" class="react-line-number react-code-text" style="padding-right:16px">636</div><div data-line-number="637" class="react-line-number react-code-text" style="padding-right:16px">637</div><div data-line-number="638" class="react-line-number react-code-text" style="padding-right:16px">638</div><div data-line-number="639" class="react-line-number react-code-text" style="padding-right:16px">639</div><div data-line-number="640" class="react-line-number react-code-text" style="padding-right:16px">640</div><div data-line-number="641" class="react-line-number react-code-text" style="padding-right:16px">641</div><div data-line-number="642" class="react-line-number react-code-text" style="padding-right:16px">642</div><div data-line-number="643" class="react-line-number react-code-text" style="padding-right:16px">643</div><div data-line-number="644" class="react-line-number react-code-text" style="padding-right:16px">644</div><div data-line-number="645" class="react-line-number react-code-text" style="padding-right:16px">645</div><div data-line-number="646" class="react-line-number react-code-text" style="padding-right:16px">646</div><div data-line-number="647" class="react-line-number react-code-text" style="padding-right:16px">647</div><div data-line-number="648" class="react-line-number react-code-text" style="padding-right:16px">648</div><div data-line-number="649" class="react-line-number react-code-text" style="padding-right:16px">649</div><div data-line-number="650" class="react-line-number react-code-text" style="padding-right:16px">650</div><div data-line-number="651" class="react-line-number react-code-text" style="padding-right:16px">651</div><div data-line-number="652" class="react-line-number react-code-text" style="padding-right:16px">652</div><div data-line-number="653" class="react-line-number react-code-text" style="padding-right:16px">653</div><div data-line-number="654" class="react-line-number react-code-text" style="padding-right:16px">654</div><div data-line-number="655" class="react-line-number react-code-text" style="padding-right:16px">655</div><div data-line-number="656" class="react-line-number react-code-text" style="padding-right:16px">656</div><div data-line-number="657" class="react-line-number react-code-text" style="padding-right:16px">657</div><div data-line-number="658" class="react-line-number react-code-text" style="padding-right:16px">658</div><div data-line-number="659" class="react-line-number react-code-text" style="padding-right:16px">659</div><div data-line-number="660" class="react-line-number react-code-text" style="padding-right:16px">660</div><div data-line-number="661" class="react-line-number react-code-text" style="padding-right:16px">661</div><div data-line-number="662" class="react-line-number react-code-text" style="padding-right:16px">662</div><div data-line-number="663" class="react-line-number react-code-text" style="padding-right:16px">663</div><div data-line-number="664" class="react-line-number react-code-text" style="padding-right:16px">664</div><div data-line-number="665" class="react-line-number react-code-text" style="padding-right:16px">665</div><div data-line-number="666" class="react-line-number react-code-text" style="padding-right:16px">666</div><div data-line-number="667" class="react-line-number react-code-text" style="padding-right:16px">667</div><div data-line-number="668" class="react-line-number react-code-text" style="padding-right:16px">668</div><div data-line-number="669" class="react-line-number react-code-text" style="padding-right:16px">669</div><div data-line-number="670" class="react-line-number react-code-text" style="padding-right:16px">670</div><div data-line-number="671" class="react-line-number react-code-text" style="padding-right:16px">671</div><div data-line-number="672" class="react-line-number react-code-text" style="padding-right:16px">672</div><div data-line-number="673" class="react-line-number react-code-text" style="padding-right:16px">673</div><div data-line-number="674" class="react-line-number react-code-text" style="padding-right:16px">674</div><div data-line-number="675" class="react-line-number react-code-text" style="padding-right:16px">675</div><div data-line-number="676" class="react-line-number react-code-text" style="padding-right:16px">676</div><div data-line-number="677" class="react-line-number react-code-text" style="padding-right:16px">677</div><div data-line-number="678" class="react-line-number react-code-text" style="padding-right:16px">678</div><div data-line-number="679" class="react-line-number react-code-text" style="padding-right:16px">679</div><div data-line-number="680" class="react-line-number react-code-text" style="padding-right:16px">680</div><div data-line-number="681" class="react-line-number react-code-text" style="padding-right:16px">681</div><div data-line-number="682" class="react-line-number react-code-text" style="padding-right:16px">682</div><div data-line-number="683" class="react-line-number react-code-text" style="padding-right:16px">683</div><div data-line-number="684" class="react-line-number react-code-text" style="padding-right:16px">684</div><div data-line-number="685" class="react-line-number react-code-text" style="padding-right:16px">685</div><div data-line-number="686" class="react-line-number react-code-text" style="padding-right:16px">686</div><div data-line-number="687" class="react-line-number react-code-text" style="padding-right:16px">687</div><div data-line-number="688" class="react-line-number react-code-text" style="padding-right:16px">688</div><div data-line-number="689" class="react-line-number react-code-text" style="padding-right:16px">689</div><div data-line-number="690" class="react-line-number react-code-text" style="padding-right:16px">690</div><div data-line-number="691" class="react-line-number react-code-text" style="padding-right:16px">691<span class="Box-sc-g0xbh4-0 cJGaMs"><div aria-label="Collapse code section" role="button" class="Box-sc-g0xbh4-0 iGLarr"><svg aria-hidden="true" focusable="false" class="octicon octicon-chevron-down Octicon-sc-9kayk9-0" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></div></span></div><div data-line-number="692" class="child-of-line-690 react-line-number react-code-text" style="padding-right:16px">692</div><div data-line-number="693" class="child-of-line-690 react-line-number react-code-text" style="padding-right:16px">693</div><div data-line-number="694" class="child-of-line-690 react-line-number react-code-text" style="padding-right:16px">694</div><div data-line-number="695" class="child-of-line-690 react-line-number react-code-text" style="padding-right:16px">695</div><div data-line-number="696" class="child-of-line-690 react-line-number react-code-text" style="padding-right:16px">696</div><div data-line-number="697" class="child-of-line-690 react-line-number react-code-text" style="padding-right:16px">697</div><div data-line-number="698" class="child-of-line-690 react-line-number react-code-text" style="padding-right:16px">698</div><div data-line-number="699" class="child-of-line-690 react-line-number react-code-text" style="padding-right:16px">699</div><div data-line-number="700" class="child-of-line-690 react-line-number react-code-text" style="padding-right:16px">700</div><div data-line-number="701" class="child-of-line-690 react-line-number react-code-text" style="padding-right:16px">701</div><div data-line-number="702" class="child-of-line-690 react-line-number react-code-text" style="padding-right:16px">702</div><div data-line-number="703" class="child-of-line-690 react-line-number react-code-text" style="padding-right:16px">703</div><div data-line-number="704" class="child-of-line-690 react-line-number react-code-text" style="padding-right:16px">704</div><div data-line-number="705" class="child-of-line-690 react-line-number react-code-text" style="padding-right:16px">705</div><div data-line-number="706" class="child-of-line-690 react-line-number react-code-text" style="padding-right:16px">706</div><div data-line-number="707" class="child-of-line-690 react-line-number react-code-text" style="padding-right:16px">707</div><div data-line-number="708" class="react-line-number react-code-text" style="padding-right:16px">708</div><div data-line-number="709" class="react-line-number react-code-text" style="padding-right:16px">709</div><div data-line-number="710" class="react-line-number react-code-text" style="padding-right:16px">710</div><div data-line-number="711" class="react-line-number react-code-text" style="padding-right:16px">711</div><div data-line-number="712" class="react-line-number react-code-text" style="padding-right:16px">712</div><div data-line-number="713" class="react-line-number react-code-text" style="padding-right:16px">713</div><div data-line-number="714" class="react-line-number react-code-text" style="padding-right:16px">714<span class="Box-sc-g0xbh4-0 cJGaMs"><div aria-label="Collapse code section" role="button" class="Box-sc-g0xbh4-0 iGLarr"><svg aria-hidden="true" focusable="false" class="octicon octicon-chevron-down Octicon-sc-9kayk9-0" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></div></span></div><div data-line-number="715" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">715</div><div data-line-number="716" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">716</div><div data-line-number="717" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">717</div><div data-line-number="718" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">718</div><div data-line-number="719" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">719</div><div data-line-number="720" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">720</div><div data-line-number="721" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">721</div><div data-line-number="722" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">722</div><div data-line-number="723" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">723</div><div data-line-number="724" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">724</div><div data-line-number="725" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">725</div><div data-line-number="726" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">726</div><div data-line-number="727" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">727</div><div data-line-number="728" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">728</div><div data-line-number="729" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">729</div><div data-line-number="730" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">730</div><div data-line-number="731" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">731</div><div data-line-number="732" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">732</div><div data-line-number="733" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">733</div><div data-line-number="734" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">734</div><div data-line-number="735" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">735</div><div data-line-number="736" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">736</div><div data-line-number="737" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">737</div><div data-line-number="738" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">738</div><div data-line-number="739" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">739</div><div data-line-number="740" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">740</div><div data-line-number="741" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">741</div><div data-line-number="742" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">742</div><div data-line-number="743" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">743</div><div data-line-number="744" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">744</div><div data-line-number="745" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">745</div><div data-line-number="746" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">746</div><div data-line-number="747" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">747</div><div data-line-number="748" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">748</div><div data-line-number="749" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">749</div><div data-line-number="750" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">750</div><div data-line-number="751" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">751</div><div data-line-number="752" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">752</div><div data-line-number="753" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">753</div><div data-line-number="754" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">754</div><div data-line-number="755" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">755</div><div data-line-number="756" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">756</div><div data-line-number="757" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">757</div><div data-line-number="758" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">758</div><div data-line-number="759" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">759</div><div data-line-number="760" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">760</div><div data-line-number="761" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">761</div><div data-line-number="762" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">762</div><div data-line-number="763" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">763</div><div data-line-number="764" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">764</div><div data-line-number="765" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">765</div><div data-line-number="766" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">766</div><div data-line-number="767" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">767</div><div data-line-number="768" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">768</div><div data-line-number="769" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">769</div><div data-line-number="770" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">770</div><div data-line-number="771" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">771</div><div data-line-number="772" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">772</div><div data-line-number="773" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">773</div><div data-line-number="774" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">774</div><div data-line-number="775" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">775</div><div data-line-number="776" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">776</div><div data-line-number="777" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">777</div><div data-line-number="778" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">778</div><div data-line-number="779" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">779</div><div data-line-number="780" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">780</div><div data-line-number="781" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">781</div><div data-line-number="782" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">782</div><div data-line-number="783" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">783</div><div data-line-number="784" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">784</div><div data-line-number="785" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">785</div><div data-line-number="786" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">786</div><div data-line-number="787" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">787</div><div data-line-number="788" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">788</div><div data-line-number="789" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">789</div><div data-line-number="790" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">790</div><div data-line-number="791" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">791</div><div data-line-number="792" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">792</div><div data-line-number="793" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">793</div><div data-line-number="794" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">794</div><div data-line-number="795" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">795</div><div data-line-number="796" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">796</div><div data-line-number="797" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">797</div><div data-line-number="798" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">798</div><div data-line-number="799" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">799</div><div data-line-number="800" class="child-of-line-713 react-line-number react-code-text" style="padding-right:16px">800</div><div data-line-number="801" class="react-line-number react-code-text" style="padding-right:16px">801</div><div data-line-number="802" class="react-line-number react-code-text" style="padding-right:16px">802</div><div data-line-number="803" class="react-line-number react-code-text" style="padding-right:16px">803</div><div data-line-number="804" class="react-line-number react-code-text" style="padding-right:16px">804</div><div data-line-number="805" class="react-line-number react-code-text" style="padding-right:16px">805</div><div data-line-number="806" class="react-line-number react-code-text" style="padding-right:16px">806</div><div data-line-number="807" class="react-line-number react-code-text" style="padding-right:16px">807</div><div data-line-number="808" class="react-line-number react-code-text" style="padding-right:16px">808</div><div data-line-number="809" class="react-line-number react-code-text" style="padding-right:16px">809</div><div data-line-number="810" class="react-line-number react-code-text" style="padding-right:16px">810</div><div data-line-number="811" class="react-line-number react-code-text" style="padding-right:16px">811</div><div data-line-number="812" class="react-line-number react-code-text" style="padding-right:16px">812</div><div data-line-number="813" class="react-line-number react-code-text" style="padding-right:16px">813</div><div data-line-number="814" class="react-line-number react-code-text" style="padding-right:16px">814</div><div data-line-number="815" class="react-line-number react-code-text" style="padding-right:16px">815</div><div data-line-number="816" class="react-line-number react-code-text" style="padding-right:16px">816</div><div data-line-number="817" class="react-line-number react-code-text" style="padding-right:16px">817</div><div data-line-number="818" class="react-line-number react-code-text" style="padding-right:16px">818</div><div data-line-number="819" class="react-line-number react-code-text" style="padding-right:16px">819</div><div data-line-number="820" class="react-line-number react-code-text" style="padding-right:16px">820</div><div data-line-number="821" class="react-line-number react-code-text" style="padding-right:16px">821</div><div data-line-number="822" class="react-line-number react-code-text" style="padding-right:16px">822</div><div data-line-number="823" class="react-line-number react-code-text" style="padding-right:16px">823</div><div data-line-number="824" class="react-line-number react-code-text" style="padding-right:16px">824</div><div data-line-number="825" class="react-line-number react-code-text" style="padding-right:16px">825</div><div data-line-number="826" class="react-line-number react-code-text" style="padding-right:16px">826</div><div data-line-number="827" class="react-line-number react-code-text" style="padding-right:16px">827</div><div data-line-number="828" class="react-line-number react-code-text" style="padding-right:16px">828</div><div data-line-number="829" class="react-line-number react-code-text" style="padding-right:16px">829</div><div data-line-number="830" class="react-line-number react-code-text" style="padding-right:16px">830</div><div data-line-number="831" class="react-line-number react-code-text" style="padding-right:16px">831</div><div data-line-number="832" class="react-line-number react-code-text" style="padding-right:16px">832</div><div data-line-number="833" class="react-line-number react-code-text" style="padding-right:16px">833</div><div data-line-number="834" class="react-line-number react-code-text" style="padding-right:16px">834</div><div data-line-number="835" class="react-line-number react-code-text" style="padding-right:16px">835</div><div data-line-number="836" class="react-line-number react-code-text" style="padding-right:16px">836</div><div data-line-number="837" class="react-line-number react-code-text" style="padding-right:16px">837</div><div data-line-number="838" class="react-line-number react-code-text" style="padding-right:16px">838</div><div data-line-number="839" class="react-line-number react-code-text" style="padding-right:16px">839</div><div data-line-number="840" class="react-line-number react-code-text" style="padding-right:16px">840</div><div data-line-number="841" class="react-line-number react-code-text" style="padding-right:16px">841</div><div data-line-number="842" class="react-line-number react-code-text" style="padding-right:16px">842</div><div data-line-number="843" class="react-line-number react-code-text" style="padding-right:16px">843</div><div data-line-number="844" class="react-line-number react-code-text" style="padding-right:16px">844</div><div data-line-number="845" class="react-line-number react-code-text" style="padding-right:16px">845</div><div data-line-number="846" class="react-line-number react-code-text" style="padding-right:16px">846</div><div data-line-number="847" class="react-line-number react-code-text" style="padding-right:16px">847</div><div data-line-number="848" class="react-line-number react-code-text" style="padding-right:16px">848</div><div data-line-number="849" class="react-line-number react-code-text" style="padding-right:16px">849</div><div data-line-number="850" class="react-line-number react-code-text" style="padding-right:16px">850</div><div data-line-number="851" class="react-line-number react-code-text" style="padding-right:16px">851</div><div data-line-number="852" class="react-line-number react-code-text" style="padding-right:16px">852</div><div data-line-number="853" class="react-line-number react-code-text" style="padding-right:16px">853</div><div data-line-number="854" class="react-line-number react-code-text" style="padding-right:16px">854</div><div data-line-number="855" class="react-line-number react-code-text" style="padding-right:16px">855</div><div data-line-number="856" class="react-line-number react-code-text" style="padding-right:16px">856</div><div data-line-number="857" class="react-line-number react-code-text" style="padding-right:16px">857</div><div data-line-number="858" class="react-line-number react-code-text" style="padding-right:16px">858</div><div data-line-number="859" class="react-line-number react-code-text" style="padding-right:16px">859</div><div data-line-number="860" class="react-line-number react-code-text" style="padding-right:16px">860</div><div data-line-number="861" class="react-line-number react-code-text" style="padding-right:16px">861</div><div data-line-number="862" class="react-line-number react-code-text" style="padding-right:16px">862</div><div data-line-number="863" class="react-line-number react-code-text" style="padding-right:16px">863</div><div data-line-number="864" class="react-line-number react-code-text" style="padding-right:16px">864</div><div data-line-number="865" class="react-line-number react-code-text" style="padding-right:16px">865</div><div data-line-number="866" class="react-line-number react-code-text" style="padding-right:16px">866</div><div data-line-number="867" class="react-line-number react-code-text" style="padding-right:16px">867</div><div data-line-number="868" class="react-line-number react-code-text" style="padding-right:16px">868</div><div data-line-number="869" class="react-line-number react-code-text" style="padding-right:16px">869</div><div data-line-number="870" class="react-line-number react-code-text" style="padding-right:16px">870</div><div data-line-number="871" class="react-line-number react-code-text" style="padding-right:16px">871</div><div data-line-number="872" class="react-line-number react-code-text" style="padding-right:16px">872</div><div data-line-number="873" class="react-line-number react-code-text" style="padding-right:16px">873</div><div data-line-number="874" class="react-line-number react-code-text" style="padding-right:16px">874</div><div data-line-number="875" class="react-line-number react-code-text" style="padding-right:16px">875</div><div data-line-number="876" class="react-line-number react-code-text" style="padding-right:16px">876</div><div data-line-number="877" class="react-line-number react-code-text" style="padding-right:16px">877</div><div data-line-number="878" class="react-line-number react-code-text" style="padding-right:16px">878</div><div data-line-number="879" class="react-line-number react-code-text" style="padding-right:16px">879</div><div data-line-number="880" class="react-line-number react-code-text" style="padding-right:16px">880</div><div data-line-number="881" class="react-line-number react-code-text" style="padding-right:16px">881</div><div data-line-number="882" class="react-line-number react-code-text" style="padding-right:16px">882</div><div data-line-number="883" class="react-line-number react-code-text" style="padding-right:16px">883</div><div data-line-number="884" class="react-line-number react-code-text" style="padding-right:16px">884</div><div data-line-number="885" class="react-line-number react-code-text" style="padding-right:16px">885</div><div data-line-number="886" class="react-line-number react-code-text" style="padding-right:16px">886</div><div data-line-number="887" class="react-line-number react-code-text" style="padding-right:16px">887</div><div data-line-number="888" class="react-line-number react-code-text" style="padding-right:16px">888</div><div data-line-number="889" class="react-line-number react-code-text" style="padding-right:16px">889</div><div data-line-number="890" class="react-line-number react-code-text" style="padding-right:16px">890</div><div data-line-number="891" class="react-line-number react-code-text" style="padding-right:16px">891</div><div data-line-number="892" class="react-line-number react-code-text" style="padding-right:16px">892</div><div data-line-number="893" class="react-line-number react-code-text" style="padding-right:16px">893<span class="Box-sc-g0xbh4-0 cJGaMs"><div aria-label="Collapse code section" role="button" class="Box-sc-g0xbh4-0 iGLarr"><svg aria-hidden="true" focusable="false" class="octicon octicon-chevron-down Octicon-sc-9kayk9-0" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></div></span></div><div data-line-number="894" class="child-of-line-892 react-line-number react-code-text" style="padding-right:16px">894</div><div data-line-number="895" class="child-of-line-892 react-line-number react-code-text" style="padding-right:16px">895</div><div data-line-number="896" class="child-of-line-892 react-line-number react-code-text" style="padding-right:16px">896</div><div data-line-number="897" class="child-of-line-892 react-line-number react-code-text" style="padding-right:16px">897</div><div data-line-number="898" class="child-of-line-892 react-line-number react-code-text" style="padding-right:16px">898</div><div data-line-number="899" class="child-of-line-892 react-line-number react-code-text" style="padding-right:16px">899</div><div data-line-number="900" class="child-of-line-892 react-line-number react-code-text" style="padding-right:16px">900</div><div data-line-number="901" class="child-of-line-892 react-line-number react-code-text" style="padding-right:16px">901</div><div data-line-number="902" class="child-of-line-892 react-line-number react-code-text" style="padding-right:16px">902</div><div data-line-number="903" class="child-of-line-892 react-line-number react-code-text" style="padding-right:16px">903</div><div data-line-number="904" class="child-of-line-892 react-line-number react-code-text" style="padding-right:16px">904</div><div data-line-number="905" class="child-of-line-892 react-line-number react-code-text" style="padding-right:16px">905</div><div data-line-number="906" class="child-of-line-892 react-line-number react-code-text" style="padding-right:16px">906</div><div data-line-number="907" class="child-of-line-892 react-line-number react-code-text" style="padding-right:16px">907</div><div data-line-number="908" class="child-of-line-892 react-line-number react-code-text" style="padding-right:16px">908</div><div data-line-number="909" class="child-of-line-892 react-line-number react-code-text" style="padding-right:16px">909</div><div data-line-number="910" class="child-of-line-892 react-line-number react-code-text" style="padding-right:16px">910</div><div data-line-number="911" class="child-of-line-892 react-line-number react-code-text" style="padding-right:16px">911</div><div data-line-number="912" class="child-of-line-892 react-line-number react-code-text" style="padding-right:16px">912</div><div data-line-number="913" class="child-of-line-892 react-line-number react-code-text" style="padding-right:16px">913</div><div data-line-number="914" class="child-of-line-892 react-line-number react-code-text" style="padding-right:16px">914</div><div data-line-number="915" class="child-of-line-892 react-line-number react-code-text" style="padding-right:16px">915</div><div data-line-number="916" class="child-of-line-892 react-line-number react-code-text" style="padding-right:16px">916</div><div data-line-number="917" class="child-of-line-892 react-line-number react-code-text" style="padding-right:16px">917</div><div data-line-number="918" class="child-of-line-892 react-line-number react-code-text" style="padding-right:16px">918</div><div data-line-number="919" class="child-of-line-892 react-line-number react-code-text" style="padding-right:16px">919</div><div data-line-number="920" class="child-of-line-892 react-line-number react-code-text" style="padding-right:16px">920</div><div data-line-number="921" class="child-of-line-892 react-line-number react-code-text" style="padding-right:16px">921</div><div data-line-number="922" class="child-of-line-892 react-line-number react-code-text" style="padding-right:16px">922</div><div data-line-number="923" class="child-of-line-892 react-line-number react-code-text" style="padding-right:16px">923</div><div data-line-number="924" class="child-of-line-892 react-line-number react-code-text" style="padding-right:16px">924</div><div data-line-number="925" class="child-of-line-892 react-line-number react-code-text" style="padding-right:16px">925</div><div data-line-number="926" class="child-of-line-892 react-line-number react-code-text" style="padding-right:16px">926</div><div data-line-number="927" class="child-of-line-892 react-line-number react-code-text" style="padding-right:16px">927</div><div data-line-number="928" class="child-of-line-892 react-line-number react-code-text" style="padding-right:16px">928</div><div data-line-number="929" class="child-of-line-892 react-line-number react-code-text" style="padding-right:16px">929</div><div data-line-number="930" class="child-of-line-892 react-line-number react-code-text" style="padding-right:16px">930</div><div data-line-number="931" class="child-of-line-892 react-line-number react-code-text" style="padding-right:16px">931</div><div data-line-number="932" class="child-of-line-892 react-line-number react-code-text" style="padding-right:16px">932</div><div data-line-number="933" class="child-of-line-892 react-line-number react-code-text" style="padding-right:16px">933</div><div data-line-number="934" class="child-of-line-892 react-line-number react-code-text" style="padding-right:16px">934</div><div data-line-number="935" class="child-of-line-892 react-line-number react-code-text" style="padding-right:16px">935</div><div data-line-number="936" class="child-of-line-892 react-line-number react-code-text" style="padding-right:16px">936</div><div data-line-number="937" class="child-of-line-892 react-line-number react-code-text" style="padding-right:16px">937</div><div data-line-number="938" class="child-of-line-892 react-line-number react-code-text" style="padding-right:16px">938</div><div data-line-number="939" class="react-line-number react-code-text" style="padding-right:16px">939</div><div data-line-number="940" class="react-line-number react-code-text" style="padding-right:16px">940</div><div data-line-number="941" class="react-line-number react-code-text" style="padding-right:16px">941</div><div data-line-number="942" class="react-line-number react-code-text" style="padding-right:16px">942</div><div data-line-number="943" class="react-line-number react-code-text" style="padding-right:16px">943</div><div data-line-number="944" class="react-line-number react-code-text" style="padding-right:16px">944</div><div data-line-number="945" class="react-line-number react-code-text" style="padding-right:16px">945</div><div data-line-number="946" class="react-line-number react-code-text" style="padding-right:16px">946</div><div data-line-number="947" class="react-line-number react-code-text" style="padding-right:16px">947</div><div data-line-number="948" class="react-line-number react-code-text" style="padding-right:16px">948</div><div data-line-number="949" class="react-line-number react-code-text" style="padding-right:16px">949</div><div data-line-number="950" class="react-line-number react-code-text" style="padding-right:16px">950</div><div data-line-number="951" class="react-line-number react-code-text" style="padding-right:16px">951</div><div data-line-number="952" class="react-line-number react-code-text" style="padding-right:16px">952</div><div data-line-number="953" class="react-line-number react-code-text" style="padding-right:16px">953</div><div data-line-number="954" class="react-line-number react-code-text" style="padding-right:16px">954</div><div data-line-number="955" class="react-line-number react-code-text" style="padding-right:16px">955</div><div data-line-number="956" class="react-line-number react-code-text" style="padding-right:16px">956</div><div data-line-number="957" class="react-line-number react-code-text" style="padding-right:16px">957</div><div data-line-number="958" class="react-line-number react-code-text" style="padding-right:16px">958</div><div data-line-number="959" class="react-line-number react-code-text" style="padding-right:16px">959</div><div data-line-number="960" class="react-line-number react-code-text" style="padding-right:16px">960</div><div data-line-number="961" class="react-line-number react-code-text" style="padding-right:16px">961</div><div data-line-number="962" class="react-line-number react-code-text" style="padding-right:16px">962</div><div data-line-number="963" class="react-line-number react-code-text" style="padding-right:16px">963</div><div data-line-number="964" class="react-line-number react-code-text" style="padding-right:16px">964</div><div data-line-number="965" class="react-line-number react-code-text" style="padding-right:16px">965</div><div data-line-number="966" class="react-line-number react-code-text" style="padding-right:16px">966</div><div data-line-number="967" class="react-line-number react-code-text" style="padding-right:16px">967</div><div data-line-number="968" class="react-line-number react-code-text" style="padding-right:16px">968</div><div data-line-number="969" class="react-line-number react-code-text" style="padding-right:16px">969</div><div data-line-number="970" class="react-line-number react-code-text" style="padding-right:16px">970</div><div data-line-number="971" class="react-line-number react-code-text" style="padding-right:16px">971</div><div data-line-number="972" class="react-line-number react-code-text" style="padding-right:16px">972</div><div data-line-number="973" class="react-line-number react-code-text" style="padding-right:16px">973</div><div data-line-number="974" class="react-line-number react-code-text" style="padding-right:16px">974</div><div data-line-number="975" class="react-line-number react-code-text" style="padding-right:16px">975</div><div data-line-number="976" class="react-line-number react-code-text" style="padding-right:16px">976</div><div data-line-number="977" class="react-line-number react-code-text" style="padding-right:16px">977</div><div data-line-number="978" class="react-line-number react-code-text" style="padding-right:16px">978</div><div data-line-number="979" class="react-line-number react-code-text" style="padding-right:16px">979</div><div data-line-number="980" class="react-line-number react-code-text" style="padding-right:16px">980</div><div data-line-number="981" class="react-line-number react-code-text" style="padding-right:16px">981</div><div data-line-number="982" class="react-line-number react-code-text" style="padding-right:16px">982</div><div data-line-number="983" class="react-line-number react-code-text" style="padding-right:16px">983</div><div data-line-number="984" class="react-line-number react-code-text" style="padding-right:16px">984</div><div data-line-number="985" class="react-line-number react-code-text" style="padding-right:16px">985</div><div data-line-number="986" class="react-line-number react-code-text" style="padding-right:16px">986</div><div data-line-number="987" class="react-line-number react-code-text" style="padding-right:16px">987</div><div data-line-number="988" class="react-line-number react-code-text" style="padding-right:16px">988</div><div data-line-number="989" class="react-line-number react-code-text" style="padding-right:16px">989</div><div data-line-number="990" class="react-line-number react-code-text" style="padding-right:16px">990</div><div data-line-number="991" class="react-line-number react-code-text" style="padding-right:16px">991</div><div data-line-number="992" class="react-line-number react-code-text" style="padding-right:16px">992</div><div data-line-number="993" class="react-line-number react-code-text" style="padding-right:16px">993</div><div data-line-number="994" class="react-line-number react-code-text" style="padding-right:16px">994</div><div data-line-number="995" class="react-line-number react-code-text" style="padding-right:16px">995</div><div data-line-number="996" class="react-line-number react-code-text" style="padding-right:16px">996</div><div data-line-number="997" class="react-line-number react-code-text" style="padding-right:16px">997</div><div data-line-number="998" class="react-line-number react-code-text" style="padding-right:16px">998</div><div data-line-number="999" class="react-line-number react-code-text" style="padding-right:16px">999</div><div data-line-number="1000" class="react-line-number react-code-text" style="padding-right:16px">1000</div></div><div class="react-code-lines"><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC1" class="react-file-line html-div" data-testid="code-cell" data-line-number="1" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> ====================================================================== lgtm [cpp/missing-header-guard]</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC2" class="react-file-line html-div" data-testid="code-cell" data-line-number="2" style="position:relative"><span class="pl-c">// == DO NOT MODIFY THIS FILE BY HAND - IT IS AUTO GENERATED BY CMAKE! ==</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC3" class="react-file-line html-div" data-testid="code-cell" data-line-number="3" style="position:relative"><span class="pl-c">// ======================================================================</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC4" class="react-file-line html-div" data-testid="code-cell" data-line-number="4" style="position:relative"><span class="pl-c"><span class="pl-c">//</span></span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC5" class="react-file-line html-div" data-testid="code-cell" data-line-number="5" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> doctest.h - the lightest feature-rich C++ single-header testing framework for unit tests and TDD</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC6" class="react-file-line html-div" data-testid="code-cell" data-line-number="6" style="position:relative"><span class="pl-c"><span class="pl-c">//</span></span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC7" class="react-file-line html-div" data-testid="code-cell" data-line-number="7" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> Copyright (c) 2016-2023 Viktor Kirilov</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC8" class="react-file-line html-div" data-testid="code-cell" data-line-number="8" style="position:relative"><span class="pl-c"><span class="pl-c">//</span></span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC9" class="react-file-line html-div" data-testid="code-cell" data-line-number="9" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> Distributed under the MIT Software License</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC10" class="react-file-line html-div" data-testid="code-cell" data-line-number="10" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> See accompanying file LICENSE.txt or copy at</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC11" class="react-file-line html-div" data-testid="code-cell" data-line-number="11" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> https://opensource.org/licenses/MIT</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC12" class="react-file-line html-div" data-testid="code-cell" data-line-number="12" style="position:relative"><span class="pl-c"><span class="pl-c">//</span></span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC13" class="react-file-line html-div" data-testid="code-cell" data-line-number="13" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> The documentation can be found at the library&#039;s page:</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC14" class="react-file-line html-div" data-testid="code-cell" data-line-number="14" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> https://github.com/doctest/doctest/blob/master/doc/markdown/readme.md</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC15" class="react-file-line html-div" data-testid="code-cell" data-line-number="15" style="position:relative"><span class="pl-c"><span class="pl-c">//</span></span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC16" class="react-file-line html-div" data-testid="code-cell" data-line-number="16" style="position:relative"><span class="pl-c">// =================================================================================================</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC17" class="react-file-line html-div" data-testid="code-cell" data-line-number="17" style="position:relative"><span class="pl-c">// =================================================================================================</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC18" class="react-file-line html-div" data-testid="code-cell" data-line-number="18" style="position:relative"><span class="pl-c">// =================================================================================================</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC19" class="react-file-line html-div" data-testid="code-cell" data-line-number="19" style="position:relative"><span class="pl-c"><span class="pl-c">//</span></span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC20" class="react-file-line html-div" data-testid="code-cell" data-line-number="20" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> The library is heavily influenced by Catch - https://github.com/catchorg/Catch2</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC21" class="react-file-line html-div" data-testid="code-cell" data-line-number="21" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> which uses the Boost Software License - Version 1.0</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC22" class="react-file-line html-div" data-testid="code-cell" data-line-number="22" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> see here - https://github.com/catchorg/Catch2/blob/master/LICENSE.txt</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC23" class="react-file-line html-div" data-testid="code-cell" data-line-number="23" style="position:relative"><span class="pl-c"><span class="pl-c">//</span></span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC24" class="react-file-line html-div" data-testid="code-cell" data-line-number="24" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> The concept of subcases (sections in Catch) and expression decomposition are from there.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC25" class="react-file-line html-div" data-testid="code-cell" data-line-number="25" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> Some parts of the code are taken directly:</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC26" class="react-file-line html-div" data-testid="code-cell" data-line-number="26" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> - stringification - the detection of &quot;ostream&amp; operator&lt;&lt;(ostream&amp;, const T&amp;)&quot; and StringMaker&lt;&gt;</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC27" class="react-file-line html-div" data-testid="code-cell" data-line-number="27" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> - the Approx() helper class for floating point comparison</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC28" class="react-file-line html-div" data-testid="code-cell" data-line-number="28" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> - colors in the console</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC29" class="react-file-line html-div" data-testid="code-cell" data-line-number="29" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> - breaking into a debugger</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC30" class="react-file-line html-div" data-testid="code-cell" data-line-number="30" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> - signal / SEH handling</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC31" class="react-file-line html-div" data-testid="code-cell" data-line-number="31" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> - timer</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC32" class="react-file-line html-div" data-testid="code-cell" data-line-number="32" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> - XmlWriter class - thanks to Phil Nash for allowing the direct reuse (AKA copy/paste)</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC33" class="react-file-line html-div" data-testid="code-cell" data-line-number="33" style="position:relative"><span class="pl-c"><span class="pl-c">//</span></span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC34" class="react-file-line html-div" data-testid="code-cell" data-line-number="34" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> The expression decomposing templates are taken from lest - https://github.com/martinmoene/lest</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC35" class="react-file-line html-div" data-testid="code-cell" data-line-number="35" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> which uses the Boost Software License - Version 1.0</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC36" class="react-file-line html-div" data-testid="code-cell" data-line-number="36" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> see here - https://github.com/martinmoene/lest/blob/master/LICENSE.txt</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC37" class="react-file-line html-div" data-testid="code-cell" data-line-number="37" style="position:relative"><span class="pl-c"><span class="pl-c">//</span></span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC38" class="react-file-line html-div" data-testid="code-cell" data-line-number="38" style="position:relative"><span class="pl-c">// =================================================================================================</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC39" class="react-file-line html-div" data-testid="code-cell" data-line-number="39" style="position:relative"><span class="pl-c">// =================================================================================================</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC40" class="react-file-line html-div" data-testid="code-cell" data-line-number="40" style="position:relative"><span class="pl-c">// =================================================================================================</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC41" class="react-file-line html-div" data-testid="code-cell" data-line-number="41" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC42" class="react-file-line html-div" data-testid="code-cell" data-line-number="42" style="position:relative">#<span class="pl-k">ifndef</span> DOCTEST_LIBRARY_INCLUDED</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC43" class="react-file-line html-div" data-testid="code-cell" data-line-number="43" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_LIBRARY_INCLUDED</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC44" class="react-file-line html-div" data-testid="code-cell" data-line-number="44" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC45" class="react-file-line html-div" data-testid="code-cell" data-line-number="45" style="position:relative"><span class="pl-c">// =================================================================================================</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC46" class="react-file-line html-div" data-testid="code-cell" data-line-number="46" style="position:relative"><span class="pl-c">// == VERSION ======================================================================================</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC47" class="react-file-line html-div" data-testid="code-cell" data-line-number="47" style="position:relative"><span class="pl-c">// =================================================================================================</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC48" class="react-file-line html-div" data-testid="code-cell" data-line-number="48" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC49" class="react-file-line html-div" data-testid="code-cell" data-line-number="49" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_VERSION_MAJOR</span> <span class="pl-c1">2</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC50" class="react-file-line html-div" data-testid="code-cell" data-line-number="50" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_VERSION_MINOR</span> <span class="pl-c1">4</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC51" class="react-file-line html-div" data-testid="code-cell" data-line-number="51" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_VERSION_PATCH</span> <span class="pl-c1">11</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC52" class="react-file-line html-div" data-testid="code-cell" data-line-number="52" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC53" class="react-file-line html-div" data-testid="code-cell" data-line-number="53" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> util we need here</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC54" class="react-file-line html-div" data-testid="code-cell" data-line-number="54" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_TOSTR_IMPL</span>(<span class="pl-v">x</span>) #x</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC55" class="react-file-line html-div" data-testid="code-cell" data-line-number="55" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_TOSTR</span>(<span class="pl-v">x</span>) DOCTEST_TOSTR_IMPL(x)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC56" class="react-file-line html-div" data-testid="code-cell" data-line-number="56" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC57" class="react-file-line html-div" data-testid="code-cell" data-line-number="57" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_VERSION_STR</span> \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC58" class="react-file-line html-div" data-testid="code-cell" data-line-number="58" style="position:relative"> <span class="pl-en">DOCTEST_TOSTR</span>(DOCTEST_VERSION_MAJOR) &quot;.&quot; \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC59" class="react-file-line html-div" data-testid="code-cell" data-line-number="59" style="position:relative"> DOCTEST_TOSTR(DOCTEST_VERSION_MINOR) &quot;.&quot; \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC60" class="react-file-line html-div" data-testid="code-cell" data-line-number="60" style="position:relative"> DOCTEST_TOSTR(DOCTEST_VERSION_PATCH)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC61" class="react-file-line html-div" data-testid="code-cell" data-line-number="61" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC62" class="react-file-line html-div" data-testid="code-cell" data-line-number="62" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_VERSION</span> \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC63" class="react-file-line html-div" data-testid="code-cell" data-line-number="63" style="position:relative"> (DOCTEST_VERSION_MAJOR * <span class="pl-c1">10000</span> + DOCTEST_VERSION_MINOR * <span class="pl-c1">100</span> + DOCTEST_VERSION_PATCH)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC64" class="react-file-line html-div" data-testid="code-cell" data-line-number="64" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC65" class="react-file-line html-div" data-testid="code-cell" data-line-number="65" style="position:relative"><span class="pl-c">// =================================================================================================</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC66" class="react-file-line html-div" data-testid="code-cell" data-line-number="66" style="position:relative"><span class="pl-c">// == COMPILER VERSION =============================================================================</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC67" class="react-file-line html-div" data-testid="code-cell" data-line-number="67" style="position:relative"><span class="pl-c">// =================================================================================================</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC68" class="react-file-line html-div" data-testid="code-cell" data-line-number="68" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC69" class="react-file-line html-div" data-testid="code-cell" data-line-number="69" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> ideas for the version stuff are taken from here: https://github.com/cxxstuff/cxx_detect</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC70" class="react-file-line html-div" data-testid="code-cell" data-line-number="70" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC71" class="react-file-line html-div" data-testid="code-cell" data-line-number="71" style="position:relative">#<span class="pl-k">ifdef</span> _MSC_VER</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC72" class="react-file-line html-div" data-testid="code-cell" data-line-number="72" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_CPLUSPLUS</span> _MSVC_LANG</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC73" class="react-file-line html-div" data-testid="code-cell" data-line-number="73" style="position:relative">#<span class="pl-k">else</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC74" class="react-file-line html-div" data-testid="code-cell" data-line-number="74" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_CPLUSPLUS</span> __cplusplus</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC75" class="react-file-line html-div" data-testid="code-cell" data-line-number="75" style="position:relative">#<span class="pl-k">endif</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC76" class="react-file-line html-div" data-testid="code-cell" data-line-number="76" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC77" class="react-file-line html-div" data-testid="code-cell" data-line-number="77" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_COMPILER</span>(<span class="pl-v">MAJOR, MINOR, PATCH</span>) ((MAJOR)*<span class="pl-c1">10000000</span> + (MINOR)*<span class="pl-c1">100000</span> + (PATCH))</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC78" class="react-file-line html-div" data-testid="code-cell" data-line-number="78" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC79" class="react-file-line html-div" data-testid="code-cell" data-line-number="79" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> GCC/Clang and GCC/MSVC are mutually exclusive, but Clang/MSVC are not because of clang-cl...</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC80" class="react-file-line html-div" data-testid="code-cell" data-line-number="80" style="position:relative">#<span class="pl-k">if</span> defined(_MSC_VER) &amp;&amp; defined(_MSC_FULL_VER)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC81" class="react-file-line html-div" data-testid="code-cell" data-line-number="81" style="position:relative">#<span class="pl-k">if</span> _MSC_VER == _MSC_FULL_VER / 10000</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC82" class="react-file-line html-div" data-testid="code-cell" data-line-number="82" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_MSVC</span> <span class="pl-en">DOCTEST_COMPILER</span>(_MSC_VER / <span class="pl-c1">100</span>, _MSC_VER % <span class="pl-c1">100</span>, _MSC_FULL_VER % <span class="pl-c1">10000</span>)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC83" class="react-file-line html-div" data-testid="code-cell" data-line-number="83" style="position:relative">#<span class="pl-k">else</span> <span class="pl-c"><span class="pl-c">//</span> MSVC</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC84" class="react-file-line html-div" data-testid="code-cell" data-line-number="84" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_MSVC</span> \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC85" class="react-file-line html-div" data-testid="code-cell" data-line-number="85" style="position:relative"> <span class="pl-en">DOCTEST_COMPILER</span>(_MSC_VER / <span class="pl-c1">100</span>, (_MSC_FULL_VER / <span class="pl-c1">100000</span>) % 100, _MSC_FULL_VER % 100000)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC86" class="react-file-line html-div" data-testid="code-cell" data-line-number="86" style="position:relative">#<span class="pl-k">endif</span> <span class="pl-c"><span class="pl-c">//</span> MSVC</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC87" class="react-file-line html-div" data-testid="code-cell" data-line-number="87" style="position:relative">#<span class="pl-k">endif</span> <span class="pl-c"><span class="pl-c">//</span> MSVC</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC88" class="react-file-line html-div" data-testid="code-cell" data-line-number="88" style="position:relative">#<span class="pl-k">if</span> defined(__clang__) &amp;&amp; defined(__clang_minor__) &amp;&amp; defined(__clang_patchlevel__)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC89" class="react-file-line html-div" data-testid="code-cell" data-line-number="89" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_CLANG</span> <span class="pl-en">DOCTEST_COMPILER</span>(__clang_major__, __clang_minor__, __clang_patchlevel__)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC90" class="react-file-line html-div" data-testid="code-cell" data-line-number="90" style="position:relative">#<span class="pl-k">elif</span> defined(__GNUC__) &amp;&amp; defined(__GNUC_MINOR__) &amp;&amp; defined(__GNUC_PATCHLEVEL__) &amp;&amp; \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC91" class="react-file-line html-div" data-testid="code-cell" data-line-number="91" style="position:relative"> !defined(__INTEL_COMPILER)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC92" class="react-file-line html-div" data-testid="code-cell" data-line-number="92" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_GCC</span> <span class="pl-en">DOCTEST_COMPILER</span>(__GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC93" class="react-file-line html-div" data-testid="code-cell" data-line-number="93" style="position:relative">#endif <span class="pl-c"><span class="pl-c">//</span> GCC</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC94" class="react-file-line html-div" data-testid="code-cell" data-line-number="94" style="position:relative">#<span class="pl-k">if</span> defined(__INTEL_COMPILER)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC95" class="react-file-line html-div" data-testid="code-cell" data-line-number="95" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_ICC</span> <span class="pl-en">DOCTEST_COMPILER</span>(__INTEL_COMPILER / <span class="pl-c1">100</span>, __INTEL_COMPILER % <span class="pl-c1">100</span>, <span class="pl-c1">0</span>)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC96" class="react-file-line html-div" data-testid="code-cell" data-line-number="96" style="position:relative">#endif <span class="pl-c"><span class="pl-c">//</span> ICC</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC97" class="react-file-line html-div" data-testid="code-cell" data-line-number="97" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC98" class="react-file-line html-div" data-testid="code-cell" data-line-number="98" style="position:relative">#<span class="pl-k">ifndef</span> DOCTEST_MSVC</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC99" class="react-file-line html-div" data-testid="code-cell" data-line-number="99" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_MSVC</span> <span class="pl-c1">0</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC100" class="react-file-line html-div" data-testid="code-cell" data-line-number="100" style="position:relative">#<span class="pl-k">endif</span> <span class="pl-c"><span class="pl-c">//</span> DOCTEST_MSVC</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC101" class="react-file-line html-div" data-testid="code-cell" data-line-number="101" style="position:relative">#<span class="pl-k">ifndef</span> DOCTEST_CLANG</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC102" class="react-file-line html-div" data-testid="code-cell" data-line-number="102" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_CLANG</span> <span class="pl-c1">0</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC103" class="react-file-line html-div" data-testid="code-cell" data-line-number="103" style="position:relative">#<span class="pl-k">endif</span> <span class="pl-c"><span class="pl-c">//</span> DOCTEST_CLANG</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC104" class="react-file-line html-div" data-testid="code-cell" data-line-number="104" style="position:relative">#<span class="pl-k">ifndef</span> DOCTEST_GCC</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC105" class="react-file-line html-div" data-testid="code-cell" data-line-number="105" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_GCC</span> <span class="pl-c1">0</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC106" class="react-file-line html-div" data-testid="code-cell" data-line-number="106" style="position:relative">#<span class="pl-k">endif</span> <span class="pl-c"><span class="pl-c">//</span> DOCTEST_GCC</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC107" class="react-file-line html-div" data-testid="code-cell" data-line-number="107" style="position:relative">#<span class="pl-k">ifndef</span> DOCTEST_ICC</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC108" class="react-file-line html-div" data-testid="code-cell" data-line-number="108" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_ICC</span> <span class="pl-c1">0</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC109" class="react-file-line html-div" data-testid="code-cell" data-line-number="109" style="position:relative">#<span class="pl-k">endif</span> <span class="pl-c"><span class="pl-c">//</span> DOCTEST_ICC</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC110" class="react-file-line html-div" data-testid="code-cell" data-line-number="110" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC111" class="react-file-line html-div" data-testid="code-cell" data-line-number="111" style="position:relative"><span class="pl-c">// =================================================================================================</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC112" class="react-file-line html-div" data-testid="code-cell" data-line-number="112" style="position:relative"><span class="pl-c">// == COMPILER WARNINGS HELPERS ====================================================================</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC113" class="react-file-line html-div" data-testid="code-cell" data-line-number="113" style="position:relative"><span class="pl-c">// =================================================================================================</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC114" class="react-file-line html-div" data-testid="code-cell" data-line-number="114" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC115" class="react-file-line html-div" data-testid="code-cell" data-line-number="115" style="position:relative">#<span class="pl-k">if</span> DOCTEST_CLANG &amp;&amp; !DOCTEST_ICC</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC116" class="react-file-line html-div" data-testid="code-cell" data-line-number="116" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_PRAGMA_TO_STR</span>(<span class="pl-v">x</span>) <span class="pl-k">_Pragma</span>(#x)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC117" class="react-file-line html-div" data-testid="code-cell" data-line-number="117" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_CLANG_SUPPRESS_WARNING_PUSH</span> <span class="pl-en">_Pragma</span>(<span class="pl-s"><span class="pl-pds">&quot;</span>clang diagnostic push<span class="pl-pds">&quot;</span></span>)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC118" class="react-file-line html-div" data-testid="code-cell" data-line-number="118" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_CLANG_SUPPRESS_WARNING</span>(<span class="pl-v">w</span>) DOCTEST_PRAGMA_TO_STR(clang diagnostic ignored w)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC119" class="react-file-line html-div" data-testid="code-cell" data-line-number="119" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_CLANG_SUPPRESS_WARNING_POP</span> <span class="pl-en">_Pragma</span>(<span class="pl-s"><span class="pl-pds">&quot;</span>clang diagnostic pop<span class="pl-pds">&quot;</span></span>)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC120" class="react-file-line html-div" data-testid="code-cell" data-line-number="120" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_CLANG_SUPPRESS_WARNING_WITH_PUSH</span>(<span class="pl-v">w</span>) \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC121" class="react-file-line html-div" data-testid="code-cell" data-line-number="121" style="position:relative"> DOCTEST_CLANG_SUPPRESS_WARNING_PUSH <span class="pl-en">DOCTEST_CLANG_SUPPRESS_WARNING</span>(w)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC122" class="react-file-line html-div" data-testid="code-cell" data-line-number="122" style="position:relative">#<span class="pl-k">else</span> <span class="pl-c"><span class="pl-c">//</span> DOCTEST_CLANG</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC123" class="react-file-line html-div" data-testid="code-cell" data-line-number="123" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_CLANG_SUPPRESS_WARNING_PUSH</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC124" class="react-file-line html-div" data-testid="code-cell" data-line-number="124" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_CLANG_SUPPRESS_WARNING</span>(<span class="pl-v">w</span>)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC125" class="react-file-line html-div" data-testid="code-cell" data-line-number="125" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_CLANG_SUPPRESS_WARNING_POP</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC126" class="react-file-line html-div" data-testid="code-cell" data-line-number="126" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_CLANG_SUPPRESS_WARNING_WITH_PUSH</span>(<span class="pl-v">w</span>)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC127" class="react-file-line html-div" data-testid="code-cell" data-line-number="127" style="position:relative">#<span class="pl-k">endif</span> <span class="pl-c"><span class="pl-c">//</span> DOCTEST_CLANG</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC128" class="react-file-line html-div" data-testid="code-cell" data-line-number="128" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC129" class="react-file-line html-div" data-testid="code-cell" data-line-number="129" style="position:relative">#<span class="pl-k">if</span> DOCTEST_GCC</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC130" class="react-file-line html-div" data-testid="code-cell" data-line-number="130" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_PRAGMA_TO_STR</span>(<span class="pl-v">x</span>) <span class="pl-k">_Pragma</span>(#x)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC131" class="react-file-line html-div" data-testid="code-cell" data-line-number="131" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_GCC_SUPPRESS_WARNING_PUSH</span> <span class="pl-en">_Pragma</span>(<span class="pl-s"><span class="pl-pds">&quot;</span>GCC diagnostic push<span class="pl-pds">&quot;</span></span>)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC132" class="react-file-line html-div" data-testid="code-cell" data-line-number="132" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_GCC_SUPPRESS_WARNING</span>(<span class="pl-v">w</span>) DOCTEST_PRAGMA_TO_STR(GCC diagnostic ignored w)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC133" class="react-file-line html-div" data-testid="code-cell" data-line-number="133" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_GCC_SUPPRESS_WARNING_POP</span> <span class="pl-en">_Pragma</span>(<span class="pl-s"><span class="pl-pds">&quot;</span>GCC diagnostic pop<span class="pl-pds">&quot;</span></span>)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC134" class="react-file-line html-div" data-testid="code-cell" data-line-number="134" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_GCC_SUPPRESS_WARNING_WITH_PUSH</span>(<span class="pl-v">w</span>) \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC135" class="react-file-line html-div" data-testid="code-cell" data-line-number="135" style="position:relative"> DOCTEST_GCC_SUPPRESS_WARNING_PUSH <span class="pl-en">DOCTEST_GCC_SUPPRESS_WARNING</span>(w)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC136" class="react-file-line html-div" data-testid="code-cell" data-line-number="136" style="position:relative">#<span class="pl-k">else</span> <span class="pl-c"><span class="pl-c">//</span> DOCTEST_GCC</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC137" class="react-file-line html-div" data-testid="code-cell" data-line-number="137" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_GCC_SUPPRESS_WARNING_PUSH</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC138" class="react-file-line html-div" data-testid="code-cell" data-line-number="138" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_GCC_SUPPRESS_WARNING</span>(<span class="pl-v">w</span>)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC139" class="react-file-line html-div" data-testid="code-cell" data-line-number="139" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_GCC_SUPPRESS_WARNING_POP</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC140" class="react-file-line html-div" data-testid="code-cell" data-line-number="140" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_GCC_SUPPRESS_WARNING_WITH_PUSH</span>(<span class="pl-v">w</span>)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC141" class="react-file-line html-div" data-testid="code-cell" data-line-number="141" style="position:relative">#<span class="pl-k">endif</span> <span class="pl-c"><span class="pl-c">//</span> DOCTEST_GCC</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC142" class="react-file-line html-div" data-testid="code-cell" data-line-number="142" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC143" class="react-file-line html-div" data-testid="code-cell" data-line-number="143" style="position:relative">#<span class="pl-k">if</span> DOCTEST_MSVC</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC144" class="react-file-line html-div" data-testid="code-cell" data-line-number="144" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_MSVC_SUPPRESS_WARNING_PUSH</span> <span class="pl-en">__pragma</span>(warning(push))</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC145" class="react-file-line html-div" data-testid="code-cell" data-line-number="145" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_MSVC_SUPPRESS_WARNING</span>(<span class="pl-v">w</span>) __pragma(warning(disable : w))</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC146" class="react-file-line html-div" data-testid="code-cell" data-line-number="146" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_MSVC_SUPPRESS_WARNING_POP</span> <span class="pl-en">__pragma</span>(warning(pop))</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC147" class="react-file-line html-div" data-testid="code-cell" data-line-number="147" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_MSVC_SUPPRESS_WARNING_WITH_PUSH</span>(<span class="pl-v">w</span>) \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC148" class="react-file-line html-div" data-testid="code-cell" data-line-number="148" style="position:relative"> DOCTEST_MSVC_SUPPRESS_WARNING_PUSH <span class="pl-en">DOCTEST_MSVC_SUPPRESS_WARNING</span>(w)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC149" class="react-file-line html-div" data-testid="code-cell" data-line-number="149" style="position:relative">#<span class="pl-k">else</span> <span class="pl-c"><span class="pl-c">//</span> DOCTEST_MSVC</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC150" class="react-file-line html-div" data-testid="code-cell" data-line-number="150" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_MSVC_SUPPRESS_WARNING_PUSH</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC151" class="react-file-line html-div" data-testid="code-cell" data-line-number="151" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_MSVC_SUPPRESS_WARNING</span>(<span class="pl-v">w</span>)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC152" class="react-file-line html-div" data-testid="code-cell" data-line-number="152" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_MSVC_SUPPRESS_WARNING_POP</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC153" class="react-file-line html-div" data-testid="code-cell" data-line-number="153" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_MSVC_SUPPRESS_WARNING_WITH_PUSH</span>(<span class="pl-v">w</span>)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC154" class="react-file-line html-div" data-testid="code-cell" data-line-number="154" style="position:relative">#<span class="pl-k">endif</span> <span class="pl-c"><span class="pl-c">//</span> DOCTEST_MSVC</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC155" class="react-file-line html-div" data-testid="code-cell" data-line-number="155" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC156" class="react-file-line html-div" data-testid="code-cell" data-line-number="156" style="position:relative"><span class="pl-c">// =================================================================================================</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC157" class="react-file-line html-div" data-testid="code-cell" data-line-number="157" style="position:relative"><span class="pl-c">// == COMPILER WARNINGS ============================================================================</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC158" class="react-file-line html-div" data-testid="code-cell" data-line-number="158" style="position:relative"><span class="pl-c">// =================================================================================================</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC159" class="react-file-line html-div" data-testid="code-cell" data-line-number="159" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC160" class="react-file-line html-div" data-testid="code-cell" data-line-number="160" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> both the header and the implementation suppress all of these,</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC161" class="react-file-line html-div" data-testid="code-cell" data-line-number="161" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> so it only makes sense to aggregate them like so</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC162" class="react-file-line html-div" data-testid="code-cell" data-line-number="162" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_SUPPRESS_COMMON_WARNINGS_PUSH</span> \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC163" class="react-file-line html-div" data-testid="code-cell" data-line-number="163" style="position:relative"> DOCTEST_CLANG_SUPPRESS_WARNING_PUSH \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC164" class="react-file-line html-div" data-testid="code-cell" data-line-number="164" style="position:relative"> <span class="pl-en">DOCTEST_CLANG_SUPPRESS_WARNING</span>(<span class="pl-s"><span class="pl-pds">&quot;</span>-Wunknown-pragmas<span class="pl-pds">&quot;</span></span>) \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC165" class="react-file-line html-div" data-testid="code-cell" data-line-number="165" style="position:relative"> DOCTEST_CLANG_SUPPRESS_WARNING(<span class="pl-s"><span class="pl-pds">&quot;</span>-Wweak-vtables<span class="pl-pds">&quot;</span></span>) \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC166" class="react-file-line html-div" data-testid="code-cell" data-line-number="166" style="position:relative"> DOCTEST_CLANG_SUPPRESS_WARNING(<span class="pl-s"><span class="pl-pds">&quot;</span>-Wpadded<span class="pl-pds">&quot;</span></span>) \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC167" class="react-file-line html-div" data-testid="code-cell" data-line-number="167" style="position:relative"> DOCTEST_CLANG_SUPPRESS_WARNING(<span class="pl-s"><span class="pl-pds">&quot;</span>-Wmissing-prototypes<span class="pl-pds">&quot;</span></span>) \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC168" class="react-file-line html-div" data-testid="code-cell" data-line-number="168" style="position:relative"> DOCTEST_CLANG_SUPPRESS_WARNING(<span class="pl-s"><span class="pl-pds">&quot;</span>-Wc++98-compat<span class="pl-pds">&quot;</span></span>) \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC169" class="react-file-line html-div" data-testid="code-cell" data-line-number="169" style="position:relative"> DOCTEST_CLANG_SUPPRESS_WARNING(<span class="pl-s"><span class="pl-pds">&quot;</span>-Wc++98-compat-pedantic<span class="pl-pds">&quot;</span></span>) \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC170" class="react-file-line html-div" data-testid="code-cell" data-line-number="170" style="position:relative"> \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC171" class="react-file-line html-div" data-testid="code-cell" data-line-number="171" style="position:relative"> DOCTEST_GCC_SUPPRESS_WARNING_PUSH \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC172" class="react-file-line html-div" data-testid="code-cell" data-line-number="172" style="position:relative"> DOCTEST_GCC_SUPPRESS_WARNING(<span class="pl-s"><span class="pl-pds">&quot;</span>-Wunknown-pragmas<span class="pl-pds">&quot;</span></span>) \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC173" class="react-file-line html-div" data-testid="code-cell" data-line-number="173" style="position:relative"> DOCTEST_GCC_SUPPRESS_WARNING(<span class="pl-s"><span class="pl-pds">&quot;</span>-Wpragmas<span class="pl-pds">&quot;</span></span>) \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC174" class="react-file-line html-div" data-testid="code-cell" data-line-number="174" style="position:relative"> DOCTEST_GCC_SUPPRESS_WARNING(<span class="pl-s"><span class="pl-pds">&quot;</span>-Weffc++<span class="pl-pds">&quot;</span></span>) \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC175" class="react-file-line html-div" data-testid="code-cell" data-line-number="175" style="position:relative"> DOCTEST_GCC_SUPPRESS_WARNING(<span class="pl-s"><span class="pl-pds">&quot;</span>-Wstrict-overflow<span class="pl-pds">&quot;</span></span>) \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC176" class="react-file-line html-div" data-testid="code-cell" data-line-number="176" style="position:relative"> DOCTEST_GCC_SUPPRESS_WARNING(<span class="pl-s"><span class="pl-pds">&quot;</span>-Wstrict-aliasing<span class="pl-pds">&quot;</span></span>) \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC177" class="react-file-line html-div" data-testid="code-cell" data-line-number="177" style="position:relative"> DOCTEST_GCC_SUPPRESS_WARNING(<span class="pl-s"><span class="pl-pds">&quot;</span>-Wmissing-declarations<span class="pl-pds">&quot;</span></span>) \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC178" class="react-file-line html-div" data-testid="code-cell" data-line-number="178" style="position:relative"> DOCTEST_GCC_SUPPRESS_WARNING(<span class="pl-s"><span class="pl-pds">&quot;</span>-Wuseless-cast<span class="pl-pds">&quot;</span></span>) \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC179" class="react-file-line html-div" data-testid="code-cell" data-line-number="179" style="position:relative"> DOCTEST_GCC_SUPPRESS_WARNING(<span class="pl-s"><span class="pl-pds">&quot;</span>-Wnoexcept<span class="pl-pds">&quot;</span></span>) \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC180" class="react-file-line html-div" data-testid="code-cell" data-line-number="180" style="position:relative"> \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC181" class="react-file-line html-div" data-testid="code-cell" data-line-number="181" style="position:relative"> DOCTEST_MSVC_SUPPRESS_WARNING_PUSH \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC182" class="react-file-line html-div" data-testid="code-cell" data-line-number="182" style="position:relative"> <span class="pl-c"><span class="pl-c">/*</span> these 4 also disabled globally via cmake: <span class="pl-c">*/</span></span> \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC183" class="react-file-line html-div" data-testid="code-cell" data-line-number="183" style="position:relative"> DOCTEST_MSVC_SUPPRESS_WARNING(<span class="pl-c1">4514</span>) <span class="pl-c"><span class="pl-c">/*</span> unreferenced inline function has been removed <span class="pl-c">*/</span></span> \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC184" class="react-file-line html-div" data-testid="code-cell" data-line-number="184" style="position:relative"> DOCTEST_MSVC_SUPPRESS_WARNING(<span class="pl-c1">4571</span>) <span class="pl-c"><span class="pl-c">/*</span> SEH related <span class="pl-c">*/</span></span> \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC185" class="react-file-line html-div" data-testid="code-cell" data-line-number="185" style="position:relative"> DOCTEST_MSVC_SUPPRESS_WARNING(<span class="pl-c1">4710</span>) <span class="pl-c"><span class="pl-c">/*</span> function not inlined <span class="pl-c">*/</span></span> \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC186" class="react-file-line html-div" data-testid="code-cell" data-line-number="186" style="position:relative"> DOCTEST_MSVC_SUPPRESS_WARNING(<span class="pl-c1">4711</span>) <span class="pl-c"><span class="pl-c">/*</span> function selected for inline expansion<span class="pl-c">*/</span></span> \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC187" class="react-file-line html-div" data-testid="code-cell" data-line-number="187" style="position:relative"> <span class="pl-c"><span class="pl-c">/*</span> common ones <span class="pl-c">*/</span></span> \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC188" class="react-file-line html-div" data-testid="code-cell" data-line-number="188" style="position:relative"> DOCTEST_MSVC_SUPPRESS_WARNING(<span class="pl-c1">4616</span>) <span class="pl-c"><span class="pl-c">/*</span> invalid compiler warning <span class="pl-c">*/</span></span> \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC189" class="react-file-line html-div" data-testid="code-cell" data-line-number="189" style="position:relative"> DOCTEST_MSVC_SUPPRESS_WARNING(<span class="pl-c1">4619</span>) <span class="pl-c"><span class="pl-c">/*</span> invalid compiler warning <span class="pl-c">*/</span></span> \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC190" class="react-file-line html-div" data-testid="code-cell" data-line-number="190" style="position:relative"> DOCTEST_MSVC_SUPPRESS_WARNING(<span class="pl-c1">4996</span>) <span class="pl-c"><span class="pl-c">/*</span> The compiler encountered a deprecated declaration <span class="pl-c">*/</span></span> \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC191" class="react-file-line html-div" data-testid="code-cell" data-line-number="191" style="position:relative"> DOCTEST_MSVC_SUPPRESS_WARNING(<span class="pl-c1">4706</span>) <span class="pl-c"><span class="pl-c">/*</span> assignment within conditional expression <span class="pl-c">*/</span></span> \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC192" class="react-file-line html-div" data-testid="code-cell" data-line-number="192" style="position:relative"> DOCTEST_MSVC_SUPPRESS_WARNING(<span class="pl-c1">4512</span>) <span class="pl-c"><span class="pl-c">/*</span> &#039;class&#039; : assignment operator could not be generated <span class="pl-c">*/</span></span> \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC193" class="react-file-line html-div" data-testid="code-cell" data-line-number="193" style="position:relative"> DOCTEST_MSVC_SUPPRESS_WARNING(<span class="pl-c1">4127</span>) <span class="pl-c"><span class="pl-c">/*</span> conditional expression is constant <span class="pl-c">*/</span></span> \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC194" class="react-file-line html-div" data-testid="code-cell" data-line-number="194" style="position:relative"> DOCTEST_MSVC_SUPPRESS_WARNING(<span class="pl-c1">4820</span>) <span class="pl-c"><span class="pl-c">/*</span> padding <span class="pl-c">*/</span></span> \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC195" class="react-file-line html-div" data-testid="code-cell" data-line-number="195" style="position:relative"> DOCTEST_MSVC_SUPPRESS_WARNING(<span class="pl-c1">4625</span>) <span class="pl-c"><span class="pl-c">/*</span> copy constructor was implicitly deleted <span class="pl-c">*/</span></span> \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC196" class="react-file-line html-div" data-testid="code-cell" data-line-number="196" style="position:relative"> DOCTEST_MSVC_SUPPRESS_WARNING(<span class="pl-c1">4626</span>) <span class="pl-c"><span class="pl-c">/*</span> assignment operator was implicitly deleted <span class="pl-c">*/</span></span> \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC197" class="react-file-line html-div" data-testid="code-cell" data-line-number="197" style="position:relative"> DOCTEST_MSVC_SUPPRESS_WARNING(<span class="pl-c1">5027</span>) <span class="pl-c"><span class="pl-c">/*</span> move assignment operator implicitly deleted <span class="pl-c">*/</span></span> \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC198" class="react-file-line html-div" data-testid="code-cell" data-line-number="198" style="position:relative"> DOCTEST_MSVC_SUPPRESS_WARNING(<span class="pl-c1">5026</span>) <span class="pl-c"><span class="pl-c">/*</span> move constructor was implicitly deleted <span class="pl-c">*/</span></span> \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC199" class="react-file-line html-div" data-testid="code-cell" data-line-number="199" style="position:relative"> DOCTEST_MSVC_SUPPRESS_WARNING(<span class="pl-c1">4640</span>) <span class="pl-c"><span class="pl-c">/*</span> construction of local static object not thread-safe <span class="pl-c">*/</span></span> \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC200" class="react-file-line html-div" data-testid="code-cell" data-line-number="200" style="position:relative"> DOCTEST_MSVC_SUPPRESS_WARNING(<span class="pl-c1">5045</span>) <span class="pl-c"><span class="pl-c">/*</span> Spectre mitigation for memory load <span class="pl-c">*/</span></span> \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC201" class="react-file-line html-div" data-testid="code-cell" data-line-number="201" style="position:relative"> DOCTEST_MSVC_SUPPRESS_WARNING(<span class="pl-c1">5264</span>) <span class="pl-c"><span class="pl-c">/*</span> &#039;variable-name&#039;: &#039;const&#039; variable is not used <span class="pl-c">*/</span></span> \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC202" class="react-file-line html-div" data-testid="code-cell" data-line-number="202" style="position:relative"> <span class="pl-c"><span class="pl-c">/*</span> static analysis <span class="pl-c">*/</span></span> \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC203" class="react-file-line html-div" data-testid="code-cell" data-line-number="203" style="position:relative"> DOCTEST_MSVC_SUPPRESS_WARNING(<span class="pl-c1">26439</span>) <span class="pl-c"><span class="pl-c">/*</span> Function may not throw. Declare it &#039;noexcept&#039; <span class="pl-c">*/</span></span> \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC204" class="react-file-line html-div" data-testid="code-cell" data-line-number="204" style="position:relative"> DOCTEST_MSVC_SUPPRESS_WARNING(<span class="pl-c1">26495</span>) <span class="pl-c"><span class="pl-c">/*</span> Always initialize a member variable <span class="pl-c">*/</span></span> \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC205" class="react-file-line html-div" data-testid="code-cell" data-line-number="205" style="position:relative"> DOCTEST_MSVC_SUPPRESS_WARNING(<span class="pl-c1">26451</span>) <span class="pl-c"><span class="pl-c">/*</span> Arithmetic overflow ... <span class="pl-c">*/</span></span> \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC206" class="react-file-line html-div" data-testid="code-cell" data-line-number="206" style="position:relative"> DOCTEST_MSVC_SUPPRESS_WARNING(<span class="pl-c1">26444</span>) <span class="pl-c"><span class="pl-c">/*</span> Avoid unnamed objects with custom ctor and dtor... <span class="pl-c">*/</span></span> \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC207" class="react-file-line html-div" data-testid="code-cell" data-line-number="207" style="position:relative"> DOCTEST_MSVC_SUPPRESS_WARNING(<span class="pl-c1">26812</span>) <span class="pl-c"><span class="pl-c">/*</span> Prefer &#039;enum class&#039; over &#039;enum&#039; <span class="pl-c">*/</span></span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC208" class="react-file-line html-div" data-testid="code-cell" data-line-number="208" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC209" class="react-file-line html-div" data-testid="code-cell" data-line-number="209" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_SUPPRESS_COMMON_WARNINGS_POP</span> \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC210" class="react-file-line html-div" data-testid="code-cell" data-line-number="210" style="position:relative"> DOCTEST_CLANG_SUPPRESS_WARNING_POP \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC211" class="react-file-line html-div" data-testid="code-cell" data-line-number="211" style="position:relative"> DOCTEST_GCC_SUPPRESS_WARNING_POP \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC212" class="react-file-line html-div" data-testid="code-cell" data-line-number="212" style="position:relative"> DOCTEST_MSVC_SUPPRESS_WARNING_POP</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC213" class="react-file-line html-div" data-testid="code-cell" data-line-number="213" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC214" class="react-file-line html-div" data-testid="code-cell" data-line-number="214" style="position:relative">DOCTEST_SUPPRESS_COMMON_WARNINGS_PUSH</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC215" class="react-file-line html-div" data-testid="code-cell" data-line-number="215" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC216" class="react-file-line html-div" data-testid="code-cell" data-line-number="216" style="position:relative">DOCTEST_CLANG_SUPPRESS_WARNING_PUSH</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC217" class="react-file-line html-div" data-testid="code-cell" data-line-number="217" style="position:relative"><span class="pl-en">DOCTEST_CLANG_SUPPRESS_WARNING</span>(<span class="pl-s"><span class="pl-pds">&quot;</span>-Wnon-virtual-dtor<span class="pl-pds">&quot;</span></span>)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC218" class="react-file-line html-div" data-testid="code-cell" data-line-number="218" style="position:relative">DOCTEST_CLANG_SUPPRESS_WARNING(<span class="pl-s"><span class="pl-pds">&quot;</span>-Wdeprecated<span class="pl-pds">&quot;</span></span>)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC219" class="react-file-line html-div" data-testid="code-cell" data-line-number="219" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC220" class="react-file-line html-div" data-testid="code-cell" data-line-number="220" style="position:relative">DOCTEST_GCC_SUPPRESS_WARNING_PUSH</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC221" class="react-file-line html-div" data-testid="code-cell" data-line-number="221" style="position:relative">DOCTEST_GCC_SUPPRESS_WARNING(<span class="pl-s"><span class="pl-pds">&quot;</span>-Wctor-dtor-privacy<span class="pl-pds">&quot;</span></span>)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC222" class="react-file-line html-div" data-testid="code-cell" data-line-number="222" style="position:relative">DOCTEST_GCC_SUPPRESS_WARNING(<span class="pl-s"><span class="pl-pds">&quot;</span>-Wnon-virtual-dtor<span class="pl-pds">&quot;</span></span>)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC223" class="react-file-line html-div" data-testid="code-cell" data-line-number="223" style="position:relative">DOCTEST_GCC_SUPPRESS_WARNING(<span class="pl-s"><span class="pl-pds">&quot;</span>-Wsign-promo<span class="pl-pds">&quot;</span></span>)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC224" class="react-file-line html-div" data-testid="code-cell" data-line-number="224" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC225" class="react-file-line html-div" data-testid="code-cell" data-line-number="225" style="position:relative">DOCTEST_MSVC_SUPPRESS_WARNING_PUSH</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC226" class="react-file-line html-div" data-testid="code-cell" data-line-number="226" style="position:relative">DOCTEST_MSVC_SUPPRESS_WARNING(<span class="pl-c1">4623</span>) <span class="pl-c"><span class="pl-c">//</span> default constructor was implicitly defined as deleted</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC227" class="react-file-line html-div" data-testid="code-cell" data-line-number="227" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC228" class="react-file-line html-div" data-testid="code-cell" data-line-number="228" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_MAKE_STD_HEADERS_CLEAN_FROM_WARNINGS_ON_WALL_BEGIN</span> \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC229" class="react-file-line html-div" data-testid="code-cell" data-line-number="229" style="position:relative"> DOCTEST_MSVC_SUPPRESS_WARNING_PUSH \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC230" class="react-file-line html-div" data-testid="code-cell" data-line-number="230" style="position:relative"> <span class="pl-en">DOCTEST_MSVC_SUPPRESS_WARNING</span>(<span class="pl-c1">4548</span>) <span class="pl-c"><span class="pl-c">/*</span> before comma no effect; expected side - effect <span class="pl-c">*/</span></span> \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC231" class="react-file-line html-div" data-testid="code-cell" data-line-number="231" style="position:relative"> DOCTEST_MSVC_SUPPRESS_WARNING(<span class="pl-c1">4265</span>) <span class="pl-c"><span class="pl-c">/*</span> virtual functions, but destructor is not virtual <span class="pl-c">*/</span></span> \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC232" class="react-file-line html-div" data-testid="code-cell" data-line-number="232" style="position:relative"> DOCTEST_MSVC_SUPPRESS_WARNING(<span class="pl-c1">4986</span>) <span class="pl-c"><span class="pl-c">/*</span> exception specification does not match previous <span class="pl-c">*/</span></span> \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC233" class="react-file-line html-div" data-testid="code-cell" data-line-number="233" style="position:relative"> DOCTEST_MSVC_SUPPRESS_WARNING(<span class="pl-c1">4350</span>) <span class="pl-c"><span class="pl-c">/*</span> &#039;member1&#039; called instead of &#039;member2&#039; <span class="pl-c">*/</span></span> \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC234" class="react-file-line html-div" data-testid="code-cell" data-line-number="234" style="position:relative"> DOCTEST_MSVC_SUPPRESS_WARNING(<span class="pl-c1">4668</span>) <span class="pl-c"><span class="pl-c">/*</span> not defined as a preprocessor macro <span class="pl-c">*/</span></span> \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC235" class="react-file-line html-div" data-testid="code-cell" data-line-number="235" style="position:relative"> DOCTEST_MSVC_SUPPRESS_WARNING(<span class="pl-c1">4365</span>) <span class="pl-c"><span class="pl-c">/*</span> signed/unsigned mismatch <span class="pl-c">*/</span></span> \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC236" class="react-file-line html-div" data-testid="code-cell" data-line-number="236" style="position:relative"> DOCTEST_MSVC_SUPPRESS_WARNING(<span class="pl-c1">4774</span>) <span class="pl-c"><span class="pl-c">/*</span> format string not a string literal <span class="pl-c">*/</span></span> \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC237" class="react-file-line html-div" data-testid="code-cell" data-line-number="237" style="position:relative"> DOCTEST_MSVC_SUPPRESS_WARNING(<span class="pl-c1">4820</span>) <span class="pl-c"><span class="pl-c">/*</span> padding <span class="pl-c">*/</span></span> \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC238" class="react-file-line html-div" data-testid="code-cell" data-line-number="238" style="position:relative"> DOCTEST_MSVC_SUPPRESS_WARNING(<span class="pl-c1">4625</span>) <span class="pl-c"><span class="pl-c">/*</span> copy constructor was implicitly deleted <span class="pl-c">*/</span></span> \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC239" class="react-file-line html-div" data-testid="code-cell" data-line-number="239" style="position:relative"> DOCTEST_MSVC_SUPPRESS_WARNING(<span class="pl-c1">4626</span>) <span class="pl-c"><span class="pl-c">/*</span> assignment operator was implicitly deleted <span class="pl-c">*/</span></span> \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC240" class="react-file-line html-div" data-testid="code-cell" data-line-number="240" style="position:relative"> DOCTEST_MSVC_SUPPRESS_WARNING(<span class="pl-c1">5027</span>) <span class="pl-c"><span class="pl-c">/*</span> move assignment operator implicitly deleted <span class="pl-c">*/</span></span> \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC241" class="react-file-line html-div" data-testid="code-cell" data-line-number="241" style="position:relative"> DOCTEST_MSVC_SUPPRESS_WARNING(<span class="pl-c1">5026</span>) <span class="pl-c"><span class="pl-c">/*</span> move constructor was implicitly deleted <span class="pl-c">*/</span></span> \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC242" class="react-file-line html-div" data-testid="code-cell" data-line-number="242" style="position:relative"> DOCTEST_MSVC_SUPPRESS_WARNING(<span class="pl-c1">4623</span>) <span class="pl-c"><span class="pl-c">/*</span> default constructor was implicitly deleted <span class="pl-c">*/</span></span> \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC243" class="react-file-line html-div" data-testid="code-cell" data-line-number="243" style="position:relative"> DOCTEST_MSVC_SUPPRESS_WARNING(<span class="pl-c1">5039</span>) <span class="pl-c"><span class="pl-c">/*</span> pointer to pot. throwing function passed to extern C <span class="pl-c">*/</span></span> \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC244" class="react-file-line html-div" data-testid="code-cell" data-line-number="244" style="position:relative"> DOCTEST_MSVC_SUPPRESS_WARNING(<span class="pl-c1">5045</span>) <span class="pl-c"><span class="pl-c">/*</span> Spectre mitigation for memory load <span class="pl-c">*/</span></span> \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC245" class="react-file-line html-div" data-testid="code-cell" data-line-number="245" style="position:relative"> DOCTEST_MSVC_SUPPRESS_WARNING(<span class="pl-c1">5105</span>) <span class="pl-c"><span class="pl-c">/*</span> macro producing &#039;defined&#039; has undefined behavior <span class="pl-c">*/</span></span> \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC246" class="react-file-line html-div" data-testid="code-cell" data-line-number="246" style="position:relative"> DOCTEST_MSVC_SUPPRESS_WARNING(<span class="pl-c1">4738</span>) <span class="pl-c"><span class="pl-c">/*</span> storing float result in memory, loss of performance <span class="pl-c">*/</span></span> \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC247" class="react-file-line html-div" data-testid="code-cell" data-line-number="247" style="position:relative"> DOCTEST_MSVC_SUPPRESS_WARNING(<span class="pl-c1">5262</span>) <span class="pl-c"><span class="pl-c">/*</span> implicit fall-through <span class="pl-c">*/</span></span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC248" class="react-file-line html-div" data-testid="code-cell" data-line-number="248" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC249" class="react-file-line html-div" data-testid="code-cell" data-line-number="249" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_MAKE_STD_HEADERS_CLEAN_FROM_WARNINGS_ON_WALL_END</span> DOCTEST_MSVC_SUPPRESS_WARNING_POP</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC250" class="react-file-line html-div" data-testid="code-cell" data-line-number="250" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC251" class="react-file-line html-div" data-testid="code-cell" data-line-number="251" style="position:relative"><span class="pl-c">// =================================================================================================</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC252" class="react-file-line html-div" data-testid="code-cell" data-line-number="252" style="position:relative"><span class="pl-c">// == FEATURE DETECTION ============================================================================</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC253" class="react-file-line html-div" data-testid="code-cell" data-line-number="253" style="position:relative"><span class="pl-c">// =================================================================================================</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC254" class="react-file-line html-div" data-testid="code-cell" data-line-number="254" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC255" class="react-file-line html-div" data-testid="code-cell" data-line-number="255" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> general compiler feature support table: https://en.cppreference.com/w/cpp/compiler_support</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC256" class="react-file-line html-div" data-testid="code-cell" data-line-number="256" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> MSVC C++11 feature support table: https://msdn.microsoft.com/en-us/library/hh567368.aspx</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC257" class="react-file-line html-div" data-testid="code-cell" data-line-number="257" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> GCC C++11 feature support table: https://gcc.gnu.org/projects/cxx-status.html</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC258" class="react-file-line html-div" data-testid="code-cell" data-line-number="258" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> MSVC version table:</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC259" class="react-file-line html-div" data-testid="code-cell" data-line-number="259" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> https://en.wikipedia.org/wiki/Microsoft_Visual_C%2B%2B#Internal_version_numbering</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC260" class="react-file-line html-div" data-testid="code-cell" data-line-number="260" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> MSVC++ 14.3 (17) _MSC_VER == 1930 (Visual Studio 2022)</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC261" class="react-file-line html-div" data-testid="code-cell" data-line-number="261" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> MSVC++ 14.2 (16) _MSC_VER == 1920 (Visual Studio 2019)</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC262" class="react-file-line html-div" data-testid="code-cell" data-line-number="262" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> MSVC++ 14.1 (15) _MSC_VER == 1910 (Visual Studio 2017)</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC263" class="react-file-line html-div" data-testid="code-cell" data-line-number="263" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> MSVC++ 14.0 _MSC_VER == 1900 (Visual Studio 2015)</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC264" class="react-file-line html-div" data-testid="code-cell" data-line-number="264" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> MSVC++ 12.0 _MSC_VER == 1800 (Visual Studio 2013)</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC265" class="react-file-line html-div" data-testid="code-cell" data-line-number="265" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> MSVC++ 11.0 _MSC_VER == 1700 (Visual Studio 2012)</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC266" class="react-file-line html-div" data-testid="code-cell" data-line-number="266" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> MSVC++ 10.0 _MSC_VER == 1600 (Visual Studio 2010)</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC267" class="react-file-line html-div" data-testid="code-cell" data-line-number="267" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> MSVC++ 9.0 _MSC_VER == 1500 (Visual Studio 2008)</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC268" class="react-file-line html-div" data-testid="code-cell" data-line-number="268" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> MSVC++ 8.0 _MSC_VER == 1400 (Visual Studio 2005)</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC269" class="react-file-line html-div" data-testid="code-cell" data-line-number="269" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC270" class="react-file-line html-div" data-testid="code-cell" data-line-number="270" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> Universal Windows Platform support</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC271" class="react-file-line html-div" data-testid="code-cell" data-line-number="271" style="position:relative">#<span class="pl-k">if</span> defined(WINAPI_FAMILY) &amp;&amp; (WINAPI_FAMILY == WINAPI_FAMILY_APP)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC272" class="react-file-line html-div" data-testid="code-cell" data-line-number="272" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_CONFIG_NO_WINDOWS_SEH</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC273" class="react-file-line html-div" data-testid="code-cell" data-line-number="273" style="position:relative">#<span class="pl-k">endif</span> <span class="pl-c"><span class="pl-c">//</span> WINAPI_FAMILY</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC274" class="react-file-line html-div" data-testid="code-cell" data-line-number="274" style="position:relative">#<span class="pl-k">if</span> DOCTEST_MSVC &amp;&amp; !defined(DOCTEST_CONFIG_WINDOWS_SEH)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC275" class="react-file-line html-div" data-testid="code-cell" data-line-number="275" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_CONFIG_WINDOWS_SEH</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC276" class="react-file-line html-div" data-testid="code-cell" data-line-number="276" style="position:relative">#<span class="pl-k">endif</span> <span class="pl-c"><span class="pl-c">//</span> MSVC</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC277" class="react-file-line html-div" data-testid="code-cell" data-line-number="277" style="position:relative">#<span class="pl-k">if</span> defined(DOCTEST_CONFIG_NO_WINDOWS_SEH) &amp;&amp; defined(DOCTEST_CONFIG_WINDOWS_SEH)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC278" class="react-file-line html-div" data-testid="code-cell" data-line-number="278" style="position:relative">#<span class="pl-k">undef</span> DOCTEST_CONFIG_WINDOWS_SEH</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC279" class="react-file-line html-div" data-testid="code-cell" data-line-number="279" style="position:relative">#<span class="pl-k">endif</span> <span class="pl-c"><span class="pl-c">//</span> DOCTEST_CONFIG_NO_WINDOWS_SEH</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC280" class="react-file-line html-div" data-testid="code-cell" data-line-number="280" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC281" class="react-file-line html-div" data-testid="code-cell" data-line-number="281" style="position:relative">#<span class="pl-k">if</span> !defined(_WIN32) &amp;&amp; !defined(__QNX__) &amp;&amp; !defined(DOCTEST_CONFIG_POSIX_SIGNALS) &amp;&amp; \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC282" class="react-file-line html-div" data-testid="code-cell" data-line-number="282" style="position:relative"> !defined(__EMSCRIPTEN__) &amp;&amp; !defined(__wasi__)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC283" class="react-file-line html-div" data-testid="code-cell" data-line-number="283" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_CONFIG_POSIX_SIGNALS</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC284" class="react-file-line html-div" data-testid="code-cell" data-line-number="284" style="position:relative">#<span class="pl-k">endif</span> <span class="pl-c"><span class="pl-c">//</span> _WIN32</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC285" class="react-file-line html-div" data-testid="code-cell" data-line-number="285" style="position:relative">#<span class="pl-k">if</span> defined(DOCTEST_CONFIG_NO_POSIX_SIGNALS) &amp;&amp; defined(DOCTEST_CONFIG_POSIX_SIGNALS)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC286" class="react-file-line html-div" data-testid="code-cell" data-line-number="286" style="position:relative">#<span class="pl-k">undef</span> DOCTEST_CONFIG_POSIX_SIGNALS</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC287" class="react-file-line html-div" data-testid="code-cell" data-line-number="287" style="position:relative">#<span class="pl-k">endif</span> <span class="pl-c"><span class="pl-c">//</span> DOCTEST_CONFIG_NO_POSIX_SIGNALS</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC288" class="react-file-line html-div" data-testid="code-cell" data-line-number="288" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC289" class="react-file-line html-div" data-testid="code-cell" data-line-number="289" style="position:relative">#<span class="pl-k">ifndef</span> DOCTEST_CONFIG_NO_EXCEPTIONS</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC290" class="react-file-line html-div" data-testid="code-cell" data-line-number="290" style="position:relative">#<span class="pl-k">if</span> !defined(__cpp_exceptions) &amp;&amp; !defined(__EXCEPTIONS) &amp;&amp; !defined(_CPPUNWIND) \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC291" class="react-file-line html-div" data-testid="code-cell" data-line-number="291" style="position:relative"> || defined(__wasi__)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC292" class="react-file-line html-div" data-testid="code-cell" data-line-number="292" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_CONFIG_NO_EXCEPTIONS</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC293" class="react-file-line html-div" data-testid="code-cell" data-line-number="293" style="position:relative">#<span class="pl-k">endif</span> <span class="pl-c"><span class="pl-c">//</span> no exceptions</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC294" class="react-file-line html-div" data-testid="code-cell" data-line-number="294" style="position:relative">#<span class="pl-k">endif</span> <span class="pl-c"><span class="pl-c">//</span> DOCTEST_CONFIG_NO_EXCEPTIONS</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC295" class="react-file-line html-div" data-testid="code-cell" data-line-number="295" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC296" class="react-file-line html-div" data-testid="code-cell" data-line-number="296" style="position:relative">#<span class="pl-k">ifdef</span> DOCTEST_CONFIG_NO_EXCEPTIONS_BUT_WITH_ALL_ASSERTS</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC297" class="react-file-line html-div" data-testid="code-cell" data-line-number="297" style="position:relative">#<span class="pl-k">ifndef</span> DOCTEST_CONFIG_NO_EXCEPTIONS</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC298" class="react-file-line html-div" data-testid="code-cell" data-line-number="298" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_CONFIG_NO_EXCEPTIONS</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC299" class="react-file-line html-div" data-testid="code-cell" data-line-number="299" style="position:relative">#<span class="pl-k">endif</span> <span class="pl-c"><span class="pl-c">//</span> DOCTEST_CONFIG_NO_EXCEPTIONS</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC300" class="react-file-line html-div" data-testid="code-cell" data-line-number="300" style="position:relative">#<span class="pl-k">endif</span> <span class="pl-c"><span class="pl-c">//</span> DOCTEST_CONFIG_NO_EXCEPTIONS_BUT_WITH_ALL_ASSERTS</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC301" class="react-file-line html-div" data-testid="code-cell" data-line-number="301" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC302" class="react-file-line html-div" data-testid="code-cell" data-line-number="302" style="position:relative">#<span class="pl-k">if</span> defined(DOCTEST_CONFIG_NO_EXCEPTIONS) &amp;&amp; !defined(DOCTEST_CONFIG_NO_TRY_CATCH_IN_ASSERTS)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC303" class="react-file-line html-div" data-testid="code-cell" data-line-number="303" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_CONFIG_NO_TRY_CATCH_IN_ASSERTS</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC304" class="react-file-line html-div" data-testid="code-cell" data-line-number="304" style="position:relative">#<span class="pl-k">endif</span> <span class="pl-c"><span class="pl-c">//</span> DOCTEST_CONFIG_NO_EXCEPTIONS &amp;&amp; !DOCTEST_CONFIG_NO_TRY_CATCH_IN_ASSERTS</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC305" class="react-file-line html-div" data-testid="code-cell" data-line-number="305" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC306" class="react-file-line html-div" data-testid="code-cell" data-line-number="306" style="position:relative">#<span class="pl-k">ifdef</span> __wasi__</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC307" class="react-file-line html-div" data-testid="code-cell" data-line-number="307" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_CONFIG_NO_MULTITHREADING</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC308" class="react-file-line html-div" data-testid="code-cell" data-line-number="308" style="position:relative">#<span class="pl-k">endif</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC309" class="react-file-line html-div" data-testid="code-cell" data-line-number="309" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC310" class="react-file-line html-div" data-testid="code-cell" data-line-number="310" style="position:relative">#<span class="pl-k">if</span> defined(DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN) &amp;&amp; !defined(DOCTEST_CONFIG_IMPLEMENT)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC311" class="react-file-line html-div" data-testid="code-cell" data-line-number="311" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_CONFIG_IMPLEMENT</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC312" class="react-file-line html-div" data-testid="code-cell" data-line-number="312" style="position:relative">#<span class="pl-k">endif</span> <span class="pl-c"><span class="pl-c">//</span> DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC313" class="react-file-line html-div" data-testid="code-cell" data-line-number="313" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC314" class="react-file-line html-div" data-testid="code-cell" data-line-number="314" style="position:relative">#<span class="pl-k">if</span> defined(_WIN32) || defined(__CYGWIN__)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC315" class="react-file-line html-div" data-testid="code-cell" data-line-number="315" style="position:relative">#<span class="pl-k">if</span> DOCTEST_MSVC</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC316" class="react-file-line html-div" data-testid="code-cell" data-line-number="316" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_SYMBOL_EXPORT</span> <span class="pl-en">__declspec</span>(dllexport)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC317" class="react-file-line html-div" data-testid="code-cell" data-line-number="317" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_SYMBOL_IMPORT</span> <span class="pl-en">__declspec</span>(dllimport)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC318" class="react-file-line html-div" data-testid="code-cell" data-line-number="318" style="position:relative">#<span class="pl-k">else</span> <span class="pl-c"><span class="pl-c">//</span> MSVC</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC319" class="react-file-line html-div" data-testid="code-cell" data-line-number="319" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_SYMBOL_EXPORT</span> <span class="pl-en">__attribute__</span>((dllexport))</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC320" class="react-file-line html-div" data-testid="code-cell" data-line-number="320" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_SYMBOL_IMPORT</span> <span class="pl-en">__attribute__</span>((dllimport))</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC321" class="react-file-line html-div" data-testid="code-cell" data-line-number="321" style="position:relative">#endif <span class="pl-c"><span class="pl-c">//</span> MSVC</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC322" class="react-file-line html-div" data-testid="code-cell" data-line-number="322" style="position:relative">#<span class="pl-k">else</span> <span class="pl-c"><span class="pl-c">//</span> _WIN32</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC323" class="react-file-line html-div" data-testid="code-cell" data-line-number="323" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_SYMBOL_EXPORT</span> <span class="pl-en">__attribute__</span>((visibility(<span class="pl-s"><span class="pl-pds">&quot;</span>default<span class="pl-pds">&quot;</span></span>)))</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC324" class="react-file-line html-div" data-testid="code-cell" data-line-number="324" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_SYMBOL_IMPORT</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC325" class="react-file-line html-div" data-testid="code-cell" data-line-number="325" style="position:relative">#<span class="pl-k">endif</span> <span class="pl-c"><span class="pl-c">//</span> _WIN32</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC326" class="react-file-line html-div" data-testid="code-cell" data-line-number="326" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC327" class="react-file-line html-div" data-testid="code-cell" data-line-number="327" style="position:relative">#<span class="pl-k">ifdef</span> DOCTEST_CONFIG_IMPLEMENTATION_IN_DLL</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC328" class="react-file-line html-div" data-testid="code-cell" data-line-number="328" style="position:relative">#<span class="pl-k">ifdef</span> DOCTEST_CONFIG_IMPLEMENT</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC329" class="react-file-line html-div" data-testid="code-cell" data-line-number="329" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_INTERFACE</span> DOCTEST_SYMBOL_EXPORT</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC330" class="react-file-line html-div" data-testid="code-cell" data-line-number="330" style="position:relative">#<span class="pl-k">else</span> <span class="pl-c"><span class="pl-c">//</span> DOCTEST_CONFIG_IMPLEMENT</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC331" class="react-file-line html-div" data-testid="code-cell" data-line-number="331" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_INTERFACE</span> DOCTEST_SYMBOL_IMPORT</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC332" class="react-file-line html-div" data-testid="code-cell" data-line-number="332" style="position:relative">#<span class="pl-k">endif</span> <span class="pl-c"><span class="pl-c">//</span> DOCTEST_CONFIG_IMPLEMENT</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC333" class="react-file-line html-div" data-testid="code-cell" data-line-number="333" style="position:relative">#<span class="pl-k">else</span> <span class="pl-c"><span class="pl-c">//</span> DOCTEST_CONFIG_IMPLEMENTATION_IN_DLL</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC334" class="react-file-line html-div" data-testid="code-cell" data-line-number="334" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_INTERFACE</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC335" class="react-file-line html-div" data-testid="code-cell" data-line-number="335" style="position:relative">#<span class="pl-k">endif</span> <span class="pl-c"><span class="pl-c">//</span> DOCTEST_CONFIG_IMPLEMENTATION_IN_DLL</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC336" class="react-file-line html-div" data-testid="code-cell" data-line-number="336" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC337" class="react-file-line html-div" data-testid="code-cell" data-line-number="337" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> needed for extern template instantiations</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC338" class="react-file-line html-div" data-testid="code-cell" data-line-number="338" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> see https://github.com/fmtlib/fmt/issues/2228</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC339" class="react-file-line html-div" data-testid="code-cell" data-line-number="339" style="position:relative">#<span class="pl-k">if</span> DOCTEST_MSVC</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC340" class="react-file-line html-div" data-testid="code-cell" data-line-number="340" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_INTERFACE_DECL</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC341" class="react-file-line html-div" data-testid="code-cell" data-line-number="341" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_INTERFACE_DEF</span> DOCTEST_INTERFACE</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC342" class="react-file-line html-div" data-testid="code-cell" data-line-number="342" style="position:relative">#<span class="pl-k">else</span> <span class="pl-c"><span class="pl-c">//</span> DOCTEST_MSVC</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC343" class="react-file-line html-div" data-testid="code-cell" data-line-number="343" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_INTERFACE_DECL</span> DOCTEST_INTERFACE</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC344" class="react-file-line html-div" data-testid="code-cell" data-line-number="344" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_INTERFACE_DEF</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC345" class="react-file-line html-div" data-testid="code-cell" data-line-number="345" style="position:relative">#<span class="pl-k">endif</span> <span class="pl-c"><span class="pl-c">//</span> DOCTEST_MSVC</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC346" class="react-file-line html-div" data-testid="code-cell" data-line-number="346" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC347" class="react-file-line html-div" data-testid="code-cell" data-line-number="347" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_EMPTY</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC348" class="react-file-line html-div" data-testid="code-cell" data-line-number="348" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC349" class="react-file-line html-div" data-testid="code-cell" data-line-number="349" style="position:relative">#<span class="pl-k">if</span> DOCTEST_MSVC</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC350" class="react-file-line html-div" data-testid="code-cell" data-line-number="350" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_NOINLINE</span> <span class="pl-en">__declspec</span>(noinline)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC351" class="react-file-line html-div" data-testid="code-cell" data-line-number="351" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_UNUSED</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC352" class="react-file-line html-div" data-testid="code-cell" data-line-number="352" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_ALIGNMENT</span>(<span class="pl-v">x</span>)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC353" class="react-file-line html-div" data-testid="code-cell" data-line-number="353" style="position:relative">#<span class="pl-k">elif</span> DOCTEST_CLANG &amp;&amp; DOCTEST_CLANG &lt; DOCTEST_COMPILER(3, 5, 0)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC354" class="react-file-line html-div" data-testid="code-cell" data-line-number="354" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_NOINLINE</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC355" class="react-file-line html-div" data-testid="code-cell" data-line-number="355" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_UNUSED</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC356" class="react-file-line html-div" data-testid="code-cell" data-line-number="356" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_ALIGNMENT</span>(<span class="pl-v">x</span>)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC357" class="react-file-line html-div" data-testid="code-cell" data-line-number="357" style="position:relative">#<span class="pl-k">else</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC358" class="react-file-line html-div" data-testid="code-cell" data-line-number="358" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_NOINLINE</span> <span class="pl-en">__attribute__</span>((noinline))</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC359" class="react-file-line html-div" data-testid="code-cell" data-line-number="359" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_UNUSED</span> <span class="pl-en">__attribute__</span>((unused))</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC360" class="react-file-line html-div" data-testid="code-cell" data-line-number="360" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_ALIGNMENT</span>(<span class="pl-v">x</span>) __attribute__((aligned(x)))</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC361" class="react-file-line html-div" data-testid="code-cell" data-line-number="361" style="position:relative">#<span class="pl-k">endif</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC362" class="react-file-line html-div" data-testid="code-cell" data-line-number="362" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC363" class="react-file-line html-div" data-testid="code-cell" data-line-number="363" style="position:relative">#<span class="pl-k">ifdef</span> DOCTEST_CONFIG_NO_CONTRADICTING_INLINE</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC364" class="react-file-line html-div" data-testid="code-cell" data-line-number="364" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_INLINE_NOINLINE</span> <span class="pl-k">inline</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC365" class="react-file-line html-div" data-testid="code-cell" data-line-number="365" style="position:relative">#<span class="pl-k">else</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC366" class="react-file-line html-div" data-testid="code-cell" data-line-number="366" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_INLINE_NOINLINE</span> <span class="pl-k">inline</span> DOCTEST_NOINLINE</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC367" class="react-file-line html-div" data-testid="code-cell" data-line-number="367" style="position:relative">#<span class="pl-k">endif</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC368" class="react-file-line html-div" data-testid="code-cell" data-line-number="368" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC369" class="react-file-line html-div" data-testid="code-cell" data-line-number="369" style="position:relative">#<span class="pl-k">ifndef</span> DOCTEST_NORETURN</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC370" class="react-file-line html-div" data-testid="code-cell" data-line-number="370" style="position:relative">#<span class="pl-k">if</span> DOCTEST_MSVC &amp;&amp; (DOCTEST_MSVC &lt; DOCTEST_COMPILER(19, 0, 0))</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC371" class="react-file-line html-div" data-testid="code-cell" data-line-number="371" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_NORETURN</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC372" class="react-file-line html-div" data-testid="code-cell" data-line-number="372" style="position:relative">#<span class="pl-k">else</span> <span class="pl-c"><span class="pl-c">//</span> DOCTEST_MSVC</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC373" class="react-file-line html-div" data-testid="code-cell" data-line-number="373" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_NORETURN</span> [[noreturn]]</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC374" class="react-file-line html-div" data-testid="code-cell" data-line-number="374" style="position:relative">#<span class="pl-k">endif</span> <span class="pl-c"><span class="pl-c">//</span> DOCTEST_MSVC</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC375" class="react-file-line html-div" data-testid="code-cell" data-line-number="375" style="position:relative">#<span class="pl-k">endif</span> <span class="pl-c"><span class="pl-c">//</span> DOCTEST_NORETURN</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC376" class="react-file-line html-div" data-testid="code-cell" data-line-number="376" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC377" class="react-file-line html-div" data-testid="code-cell" data-line-number="377" style="position:relative">#<span class="pl-k">ifndef</span> DOCTEST_NOEXCEPT</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC378" class="react-file-line html-div" data-testid="code-cell" data-line-number="378" style="position:relative">#<span class="pl-k">if</span> DOCTEST_MSVC &amp;&amp; (DOCTEST_MSVC &lt; DOCTEST_COMPILER(19, 0, 0))</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC379" class="react-file-line html-div" data-testid="code-cell" data-line-number="379" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_NOEXCEPT</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC380" class="react-file-line html-div" data-testid="code-cell" data-line-number="380" style="position:relative">#<span class="pl-k">else</span> <span class="pl-c"><span class="pl-c">//</span> DOCTEST_MSVC</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC381" class="react-file-line html-div" data-testid="code-cell" data-line-number="381" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_NOEXCEPT</span> <span class="pl-k">noexcept</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC382" class="react-file-line html-div" data-testid="code-cell" data-line-number="382" style="position:relative">#<span class="pl-k">endif</span> <span class="pl-c"><span class="pl-c">//</span> DOCTEST_MSVC</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC383" class="react-file-line html-div" data-testid="code-cell" data-line-number="383" style="position:relative">#<span class="pl-k">endif</span> <span class="pl-c"><span class="pl-c">//</span> DOCTEST_NOEXCEPT</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC384" class="react-file-line html-div" data-testid="code-cell" data-line-number="384" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC385" class="react-file-line html-div" data-testid="code-cell" data-line-number="385" style="position:relative">#<span class="pl-k">ifndef</span> DOCTEST_CONSTEXPR</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC386" class="react-file-line html-div" data-testid="code-cell" data-line-number="386" style="position:relative">#<span class="pl-k">if</span> DOCTEST_MSVC &amp;&amp; (DOCTEST_MSVC &lt; DOCTEST_COMPILER(19, 0, 0))</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC387" class="react-file-line html-div" data-testid="code-cell" data-line-number="387" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_CONSTEXPR</span> <span class="pl-k">const</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC388" class="react-file-line html-div" data-testid="code-cell" data-line-number="388" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_CONSTEXPR_FUNC</span> <span class="pl-k">inline</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC389" class="react-file-line html-div" data-testid="code-cell" data-line-number="389" style="position:relative">#<span class="pl-k">else</span> <span class="pl-c"><span class="pl-c">//</span> DOCTEST_MSVC</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC390" class="react-file-line html-div" data-testid="code-cell" data-line-number="390" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_CONSTEXPR</span> <span class="pl-k">constexpr</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC391" class="react-file-line html-div" data-testid="code-cell" data-line-number="391" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_CONSTEXPR_FUNC</span> <span class="pl-k">constexpr</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC392" class="react-file-line html-div" data-testid="code-cell" data-line-number="392" style="position:relative">#<span class="pl-k">endif</span> <span class="pl-c"><span class="pl-c">//</span> DOCTEST_MSVC</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC393" class="react-file-line html-div" data-testid="code-cell" data-line-number="393" style="position:relative">#<span class="pl-k">endif</span> <span class="pl-c"><span class="pl-c">//</span> DOCTEST_CONSTEXPR</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC394" class="react-file-line html-div" data-testid="code-cell" data-line-number="394" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC395" class="react-file-line html-div" data-testid="code-cell" data-line-number="395" style="position:relative">#<span class="pl-k">ifndef</span> DOCTEST_NO_SANITIZE_INTEGER</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC396" class="react-file-line html-div" data-testid="code-cell" data-line-number="396" style="position:relative">#<span class="pl-k">if</span> DOCTEST_CLANG &gt;= DOCTEST_COMPILER(3, 7, 0)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC397" class="react-file-line html-div" data-testid="code-cell" data-line-number="397" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_NO_SANITIZE_INTEGER</span> <span class="pl-en">__attribute__</span>((no_sanitize(<span class="pl-s"><span class="pl-pds">&quot;</span>integer<span class="pl-pds">&quot;</span></span>)))</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC398" class="react-file-line html-div" data-testid="code-cell" data-line-number="398" style="position:relative">#<span class="pl-k">else</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC399" class="react-file-line html-div" data-testid="code-cell" data-line-number="399" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_NO_SANITIZE_INTEGER</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC400" class="react-file-line html-div" data-testid="code-cell" data-line-number="400" style="position:relative">#<span class="pl-k">endif</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC401" class="react-file-line html-div" data-testid="code-cell" data-line-number="401" style="position:relative">#<span class="pl-k">endif</span> <span class="pl-c"><span class="pl-c">//</span> DOCTEST_NO_SANITIZE_INTEGER</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC402" class="react-file-line html-div" data-testid="code-cell" data-line-number="402" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC403" class="react-file-line html-div" data-testid="code-cell" data-line-number="403" style="position:relative"><span class="pl-c">// =================================================================================================</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC404" class="react-file-line html-div" data-testid="code-cell" data-line-number="404" style="position:relative"><span class="pl-c">// == FEATURE DETECTION END ========================================================================</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC405" class="react-file-line html-div" data-testid="code-cell" data-line-number="405" style="position:relative"><span class="pl-c">// =================================================================================================</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC406" class="react-file-line html-div" data-testid="code-cell" data-line-number="406" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC407" class="react-file-line html-div" data-testid="code-cell" data-line-number="407" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_DECLARE_INTERFACE</span>(<span class="pl-v">name</span>) \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC408" class="react-file-line html-div" data-testid="code-cell" data-line-number="408" style="position:relative"> <span class="pl-k">virtual</span> <span class="pl-en">~name</span>(); \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC409" class="react-file-line html-div" data-testid="code-cell" data-line-number="409" style="position:relative"> <span class="pl-en">name</span>() = default; \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC410" class="react-file-line html-div" data-testid="code-cell" data-line-number="410" style="position:relative"> <span class="pl-en">name</span>(<span class="pl-k">const</span> name&amp;) = delete; \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC411" class="react-file-line html-div" data-testid="code-cell" data-line-number="411" style="position:relative"> <span class="pl-en">name</span>(name&amp;&amp;) = delete; \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC412" class="react-file-line html-div" data-testid="code-cell" data-line-number="412" style="position:relative"> name&amp; <span class="pl-k">operator</span>=(<span class="pl-k">const</span> name&amp;) = <span class="pl-k">delete</span>; \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC413" class="react-file-line html-div" data-testid="code-cell" data-line-number="413" style="position:relative"> name&amp; <span class="pl-k">operator</span>=(name&amp;&amp;) = <span class="pl-k">delete</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC414" class="react-file-line html-div" data-testid="code-cell" data-line-number="414" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC415" class="react-file-line html-div" data-testid="code-cell" data-line-number="415" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_DEFINE_INTERFACE</span>(<span class="pl-v">name</span>) \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC416" class="react-file-line html-div" data-testid="code-cell" data-line-number="416" style="position:relative"> <span class="pl-en">name::~name</span>() = <span class="pl-k">default</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC417" class="react-file-line html-div" data-testid="code-cell" data-line-number="417" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC418" class="react-file-line html-div" data-testid="code-cell" data-line-number="418" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> internal macros for string concatenation and anonymous variable name generation</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC419" class="react-file-line html-div" data-testid="code-cell" data-line-number="419" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_CAT_IMPL</span>(<span class="pl-v">s1, s2</span>) s1##s2</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC420" class="react-file-line html-div" data-testid="code-cell" data-line-number="420" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_CAT</span>(<span class="pl-v">s1, s2</span>) DOCTEST_CAT_IMPL(s1, s2)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC421" class="react-file-line html-div" data-testid="code-cell" data-line-number="421" style="position:relative">#<span class="pl-k">ifdef</span> __COUNTER__ <span class="pl-c"><span class="pl-c">//</span> not standard and may be missing for some compilers</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC422" class="react-file-line html-div" data-testid="code-cell" data-line-number="422" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_ANONYMOUS</span>(<span class="pl-v">x</span>) DOCTEST_CAT(x, __COUNTER__)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC423" class="react-file-line html-div" data-testid="code-cell" data-line-number="423" style="position:relative">#<span class="pl-k">else</span> <span class="pl-c"><span class="pl-c">//</span> __COUNTER__</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC424" class="react-file-line html-div" data-testid="code-cell" data-line-number="424" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_ANONYMOUS</span>(<span class="pl-v">x</span>) DOCTEST_CAT(x, __LINE__)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC425" class="react-file-line html-div" data-testid="code-cell" data-line-number="425" style="position:relative">#<span class="pl-k">endif</span> <span class="pl-c"><span class="pl-c">//</span> __COUNTER__</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC426" class="react-file-line html-div" data-testid="code-cell" data-line-number="426" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC427" class="react-file-line html-div" data-testid="code-cell" data-line-number="427" style="position:relative">#<span class="pl-k">ifndef</span> DOCTEST_CONFIG_ASSERTION_PARAMETERS_BY_VALUE</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC428" class="react-file-line html-div" data-testid="code-cell" data-line-number="428" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_REF_WRAP</span>(<span class="pl-v">x</span>) x&amp;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC429" class="react-file-line html-div" data-testid="code-cell" data-line-number="429" style="position:relative">#<span class="pl-k">else</span> <span class="pl-c"><span class="pl-c">//</span> DOCTEST_CONFIG_ASSERTION_PARAMETERS_BY_VALUE</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC430" class="react-file-line html-div" data-testid="code-cell" data-line-number="430" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_REF_WRAP</span>(<span class="pl-v">x</span>) x</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC431" class="react-file-line html-div" data-testid="code-cell" data-line-number="431" style="position:relative">#<span class="pl-k">endif</span> <span class="pl-c"><span class="pl-c">//</span> DOCTEST_CONFIG_ASSERTION_PARAMETERS_BY_VALUE</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC432" class="react-file-line html-div" data-testid="code-cell" data-line-number="432" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC433" class="react-file-line html-div" data-testid="code-cell" data-line-number="433" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> not using __APPLE__ because... this is how Catch does it</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC434" class="react-file-line html-div" data-testid="code-cell" data-line-number="434" style="position:relative">#<span class="pl-k">ifdef</span> __MAC_OS_X_VERSION_MIN_REQUIRED</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC435" class="react-file-line html-div" data-testid="code-cell" data-line-number="435" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_PLATFORM_MAC</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC436" class="react-file-line html-div" data-testid="code-cell" data-line-number="436" style="position:relative">#<span class="pl-k">elif</span> defined(__IPHONE_OS_VERSION_MIN_REQUIRED)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC437" class="react-file-line html-div" data-testid="code-cell" data-line-number="437" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_PLATFORM_IPHONE</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC438" class="react-file-line html-div" data-testid="code-cell" data-line-number="438" style="position:relative">#<span class="pl-k">elif</span> defined(_WIN32)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC439" class="react-file-line html-div" data-testid="code-cell" data-line-number="439" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_PLATFORM_WINDOWS</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC440" class="react-file-line html-div" data-testid="code-cell" data-line-number="440" style="position:relative">#<span class="pl-k">elif</span> defined(__wasi__)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC441" class="react-file-line html-div" data-testid="code-cell" data-line-number="441" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_PLATFORM_WASI</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC442" class="react-file-line html-div" data-testid="code-cell" data-line-number="442" style="position:relative">#<span class="pl-k">else</span> <span class="pl-c"><span class="pl-c">//</span> DOCTEST_PLATFORM</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC443" class="react-file-line html-div" data-testid="code-cell" data-line-number="443" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_PLATFORM_LINUX</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC444" class="react-file-line html-div" data-testid="code-cell" data-line-number="444" style="position:relative">#<span class="pl-k">endif</span> <span class="pl-c"><span class="pl-c">//</span> DOCTEST_PLATFORM</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC445" class="react-file-line html-div" data-testid="code-cell" data-line-number="445" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC446" class="react-file-line html-div" data-testid="code-cell" data-line-number="446" style="position:relative"><span class="pl-k">namespace</span> <span class="pl-en">doctest</span> { <span class="pl-k">namespace</span> <span class="pl-en">detail</span> {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC447" class="react-file-line html-div" data-testid="code-cell" data-line-number="447" style="position:relative"> <span class="pl-k">static</span> DOCTEST_CONSTEXPR <span class="pl-k">int</span> <span class="pl-en">consume</span>(<span class="pl-k">const</span> <span class="pl-k">int</span>*, <span class="pl-k">int</span>) <span class="pl-k">noexcept</span> { <span class="pl-k">return</span> <span class="pl-c1">0</span>; }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC448" class="react-file-line html-div" data-testid="code-cell" data-line-number="448" style="position:relative">}}</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC449" class="react-file-line html-div" data-testid="code-cell" data-line-number="449" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC450" class="react-file-line html-div" data-testid="code-cell" data-line-number="450" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_GLOBAL_NO_WARNINGS</span>(var, ...) \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC451" class="react-file-line html-div" data-testid="code-cell" data-line-number="451" style="position:relative"> <span class="pl-en">DOCTEST_CLANG_SUPPRESS_WARNING_WITH_PUSH</span>(<span class="pl-s"><span class="pl-pds">&quot;</span>-Wglobal-constructors<span class="pl-pds">&quot;</span></span>) \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC452" class="react-file-line html-div" data-testid="code-cell" data-line-number="452" style="position:relative"> static <span class="pl-k">const</span> int var = doctest::detail::consume(&amp;var, __VA_ARGS__); \</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC453" class="react-file-line html-div" data-testid="code-cell" data-line-number="453" style="position:relative"> DOCTEST_CLANG_SUPPRESS_WARNING_POP</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC454" class="react-file-line html-div" data-testid="code-cell" data-line-number="454" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC455" class="react-file-line html-div" data-testid="code-cell" data-line-number="455" style="position:relative">#<span class="pl-k">ifndef</span> DOCTEST_BREAK_INTO_DEBUGGER</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC456" class="react-file-line html-div" data-testid="code-cell" data-line-number="456" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> should probably take a look at https://github.com/scottt/debugbreak</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC457" class="react-file-line html-div" data-testid="code-cell" data-line-number="457" style="position:relative">#<span class="pl-k">ifdef</span> DOCTEST_PLATFORM_LINUX</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC458" class="react-file-line html-div" data-testid="code-cell" data-line-number="458" style="position:relative">#<span class="pl-k">if</span> defined(__GNUC__) &amp;&amp; (defined(__i386) || defined(__x86_64))</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC459" class="react-file-line html-div" data-testid="code-cell" data-line-number="459" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> Break at the location of the failing check if possible</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC460" class="react-file-line html-div" data-testid="code-cell" data-line-number="460" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_BREAK_INTO_DEBUGGER</span>() <span class="pl-k">__asm__</span>(<span class="pl-s"><span class="pl-pds">&quot;</span>int $3<span class="pl-cce">\n</span><span class="pl-pds">&quot;</span></span> : :) <span class="pl-c"><span class="pl-c">//</span> NOLINT(hicpp-no-assembler)</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC461" class="react-file-line html-div" data-testid="code-cell" data-line-number="461" style="position:relative">#<span class="pl-k">else</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC462" class="react-file-line html-div" data-testid="code-cell" data-line-number="462" style="position:relative">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds">&lt;</span>signal.h<span class="pl-pds">&gt;</span></span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC463" class="react-file-line html-div" data-testid="code-cell" data-line-number="463" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_BREAK_INTO_DEBUGGER</span>() raise(SIGTRAP)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC464" class="react-file-line html-div" data-testid="code-cell" data-line-number="464" style="position:relative">#<span class="pl-k">endif</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC465" class="react-file-line html-div" data-testid="code-cell" data-line-number="465" style="position:relative">#<span class="pl-k">elif</span> defined(DOCTEST_PLATFORM_MAC)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC466" class="react-file-line html-div" data-testid="code-cell" data-line-number="466" style="position:relative">#<span class="pl-k">if</span> defined(__x86_64) || defined(__x86_64__) || defined(__amd64__) || defined(__i386)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC467" class="react-file-line html-div" data-testid="code-cell" data-line-number="467" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_BREAK_INTO_DEBUGGER</span>() <span class="pl-k">__asm__</span>(<span class="pl-s"><span class="pl-pds">&quot;</span>int $3<span class="pl-cce">\n</span><span class="pl-pds">&quot;</span></span> : :) <span class="pl-c"><span class="pl-c">//</span> NOLINT(hicpp-no-assembler)</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC468" class="react-file-line html-div" data-testid="code-cell" data-line-number="468" style="position:relative">#<span class="pl-k">elif</span> defined(__ppc__) || defined(__ppc64__)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC469" class="react-file-line html-div" data-testid="code-cell" data-line-number="469" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> https://www.cocoawithlove.com/2008/03/break-into-debugger.html</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC470" class="react-file-line html-div" data-testid="code-cell" data-line-number="470" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_BREAK_INTO_DEBUGGER</span>() <span class="pl-k">__asm__</span>(<span class="pl-s"><span class="pl-pds">&quot;</span>li r0, 20<span class="pl-cce">\n</span>sc<span class="pl-cce">\n</span>nop<span class="pl-cce">\n</span>li r0, 37<span class="pl-cce">\n</span>li r4, 2<span class="pl-cce">\n</span>sc<span class="pl-cce">\n</span>nop<span class="pl-cce">\n</span><span class="pl-pds">&quot;</span></span>: : : <span class="pl-s"><span class="pl-pds">&quot;</span>memory<span class="pl-pds">&quot;</span></span>,<span class="pl-s"><span class="pl-pds">&quot;</span>r0<span class="pl-pds">&quot;</span></span>,<span class="pl-s"><span class="pl-pds">&quot;</span>r3<span class="pl-pds">&quot;</span></span>,<span class="pl-s"><span class="pl-pds">&quot;</span>r4<span class="pl-pds">&quot;</span></span>) <span class="pl-c"><span class="pl-c">//</span> NOLINT(hicpp-no-assembler)</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC471" class="react-file-line html-div" data-testid="code-cell" data-line-number="471" style="position:relative">#<span class="pl-k">else</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC472" class="react-file-line html-div" data-testid="code-cell" data-line-number="472" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_BREAK_INTO_DEBUGGER</span>() <span class="pl-k">__asm__</span>(<span class="pl-s"><span class="pl-pds">&quot;</span>brk #0<span class="pl-pds">&quot;</span></span>); <span class="pl-c"><span class="pl-c">//</span> NOLINT(hicpp-no-assembler)</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC473" class="react-file-line html-div" data-testid="code-cell" data-line-number="473" style="position:relative">#<span class="pl-k">endif</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC474" class="react-file-line html-div" data-testid="code-cell" data-line-number="474" style="position:relative">#<span class="pl-k">elif</span> DOCTEST_MSVC</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC475" class="react-file-line html-div" data-testid="code-cell" data-line-number="475" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_BREAK_INTO_DEBUGGER</span>() __debugbreak()</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC476" class="react-file-line html-div" data-testid="code-cell" data-line-number="476" style="position:relative">#<span class="pl-k">elif</span> defined(__MINGW32__)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC477" class="react-file-line html-div" data-testid="code-cell" data-line-number="477" style="position:relative"><span class="pl-en">DOCTEST_GCC_SUPPRESS_WARNING_WITH_PUSH</span>(<span class="pl-s"><span class="pl-pds">&quot;</span>-Wredundant-decls<span class="pl-pds">&quot;</span></span>)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC478" class="react-file-line html-div" data-testid="code-cell" data-line-number="478" style="position:relative">extern &quot;C&quot; __declspec(dllimport) void __stdcall DebugBreak();</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC479" class="react-file-line html-div" data-testid="code-cell" data-line-number="479" style="position:relative">DOCTEST_GCC_SUPPRESS_WARNING_POP</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC480" class="react-file-line html-div" data-testid="code-cell" data-line-number="480" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_BREAK_INTO_DEBUGGER</span>() ::DebugBreak()</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC481" class="react-file-line html-div" data-testid="code-cell" data-line-number="481" style="position:relative">#<span class="pl-k">else</span> <span class="pl-c"><span class="pl-c">//</span> linux</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC482" class="react-file-line html-div" data-testid="code-cell" data-line-number="482" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_BREAK_INTO_DEBUGGER</span>() (<span class="pl-k">static_cast</span>&lt;<span class="pl-k">void</span>&gt;(<span class="pl-c1">0</span>))</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC483" class="react-file-line html-div" data-testid="code-cell" data-line-number="483" style="position:relative">#<span class="pl-k">endif</span> <span class="pl-c"><span class="pl-c">//</span> linux</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC484" class="react-file-line html-div" data-testid="code-cell" data-line-number="484" style="position:relative">#<span class="pl-k">endif</span> <span class="pl-c"><span class="pl-c">//</span> DOCTEST_BREAK_INTO_DEBUGGER</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC485" class="react-file-line html-div" data-testid="code-cell" data-line-number="485" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC486" class="react-file-line html-div" data-testid="code-cell" data-line-number="486" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> this is kept here for backwards compatibility since the config option was changed</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC487" class="react-file-line html-div" data-testid="code-cell" data-line-number="487" style="position:relative">#<span class="pl-k">ifdef</span> DOCTEST_CONFIG_USE_IOSFWD</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC488" class="react-file-line html-div" data-testid="code-cell" data-line-number="488" style="position:relative">#<span class="pl-k">ifndef</span> DOCTEST_CONFIG_USE_STD_HEADERS</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC489" class="react-file-line html-div" data-testid="code-cell" data-line-number="489" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_CONFIG_USE_STD_HEADERS</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC490" class="react-file-line html-div" data-testid="code-cell" data-line-number="490" style="position:relative">#<span class="pl-k">endif</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC491" class="react-file-line html-div" data-testid="code-cell" data-line-number="491" style="position:relative">#<span class="pl-k">endif</span> <span class="pl-c"><span class="pl-c">//</span> DOCTEST_CONFIG_USE_IOSFWD</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC492" class="react-file-line html-div" data-testid="code-cell" data-line-number="492" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC493" class="react-file-line html-div" data-testid="code-cell" data-line-number="493" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> for clang - always include ciso646 (which drags some std stuff) because</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC494" class="react-file-line html-div" data-testid="code-cell" data-line-number="494" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> we want to check if we are using libc++ with the _LIBCPP_VERSION macro in</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC495" class="react-file-line html-div" data-testid="code-cell" data-line-number="495" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> which case we don&#039;t want to forward declare stuff from std - for reference:</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC496" class="react-file-line html-div" data-testid="code-cell" data-line-number="496" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> https://github.com/doctest/doctest/issues/126</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC497" class="react-file-line html-div" data-testid="code-cell" data-line-number="497" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> https://github.com/doctest/doctest/issues/356</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC498" class="react-file-line html-div" data-testid="code-cell" data-line-number="498" style="position:relative">#<span class="pl-k">if</span> DOCTEST_CLANG</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC499" class="react-file-line html-div" data-testid="code-cell" data-line-number="499" style="position:relative">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds">&lt;</span>ciso646<span class="pl-pds">&gt;</span></span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC500" class="react-file-line html-div" data-testid="code-cell" data-line-number="500" style="position:relative">#<span class="pl-k">endif</span> <span class="pl-c"><span class="pl-c">//</span> clang</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC501" class="react-file-line html-div" data-testid="code-cell" data-line-number="501" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC502" class="react-file-line html-div" data-testid="code-cell" data-line-number="502" style="position:relative">#<span class="pl-k">ifdef</span> _LIBCPP_VERSION</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC503" class="react-file-line html-div" data-testid="code-cell" data-line-number="503" style="position:relative">#<span class="pl-k">ifndef</span> DOCTEST_CONFIG_USE_STD_HEADERS</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC504" class="react-file-line html-div" data-testid="code-cell" data-line-number="504" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_CONFIG_USE_STD_HEADERS</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC505" class="react-file-line html-div" data-testid="code-cell" data-line-number="505" style="position:relative">#<span class="pl-k">endif</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC506" class="react-file-line html-div" data-testid="code-cell" data-line-number="506" style="position:relative">#<span class="pl-k">endif</span> <span class="pl-c"><span class="pl-c">//</span> _LIBCPP_VERSION</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC507" class="react-file-line html-div" data-testid="code-cell" data-line-number="507" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC508" class="react-file-line html-div" data-testid="code-cell" data-line-number="508" style="position:relative">#<span class="pl-k">ifdef</span> DOCTEST_CONFIG_USE_STD_HEADERS</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC509" class="react-file-line html-div" data-testid="code-cell" data-line-number="509" style="position:relative">#<span class="pl-k">ifndef</span> DOCTEST_CONFIG_INCLUDE_TYPE_TRAITS</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC510" class="react-file-line html-div" data-testid="code-cell" data-line-number="510" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_CONFIG_INCLUDE_TYPE_TRAITS</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC511" class="react-file-line html-div" data-testid="code-cell" data-line-number="511" style="position:relative">#<span class="pl-k">endif</span> <span class="pl-c"><span class="pl-c">//</span> DOCTEST_CONFIG_INCLUDE_TYPE_TRAITS</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC512" class="react-file-line html-div" data-testid="code-cell" data-line-number="512" style="position:relative">DOCTEST_MAKE_STD_HEADERS_CLEAN_FROM_WARNINGS_ON_WALL_BEGIN</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC513" class="react-file-line html-div" data-testid="code-cell" data-line-number="513" style="position:relative">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds">&lt;</span>cstddef<span class="pl-pds">&gt;</span></span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC514" class="react-file-line html-div" data-testid="code-cell" data-line-number="514" style="position:relative">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds">&lt;</span>ostream<span class="pl-pds">&gt;</span></span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC515" class="react-file-line html-div" data-testid="code-cell" data-line-number="515" style="position:relative">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds">&lt;</span>istream<span class="pl-pds">&gt;</span></span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC516" class="react-file-line html-div" data-testid="code-cell" data-line-number="516" style="position:relative">DOCTEST_MAKE_STD_HEADERS_CLEAN_FROM_WARNINGS_ON_WALL_END</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC517" class="react-file-line html-div" data-testid="code-cell" data-line-number="517" style="position:relative">#<span class="pl-k">else</span> <span class="pl-c"><span class="pl-c">//</span> DOCTEST_CONFIG_USE_STD_HEADERS</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC518" class="react-file-line html-div" data-testid="code-cell" data-line-number="518" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC519" class="react-file-line html-div" data-testid="code-cell" data-line-number="519" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> Forward declaring &#039;X&#039; in namespace std is not permitted by the C++ Standard.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC520" class="react-file-line html-div" data-testid="code-cell" data-line-number="520" style="position:relative"><span class="pl-en">DOCTEST_MSVC_SUPPRESS_WARNING_WITH_PUSH</span>(<span class="pl-c1">4643</span>)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC521" class="react-file-line html-div" data-testid="code-cell" data-line-number="521" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC522" class="react-file-line html-div" data-testid="code-cell" data-line-number="522" style="position:relative">namespace std { <span class="pl-c"><span class="pl-c">//</span> NOLINT(cert-dcl58-cpp)</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC523" class="react-file-line html-div" data-testid="code-cell" data-line-number="523" style="position:relative"><span class="pl-k">typedef</span> <span class="pl-smi">decltype</span>(<span class="pl-c1">nullptr</span>) <span class="pl-c1">nullptr_t</span>; <span class="pl-c"><span class="pl-c">//</span> NOLINT(modernize-use-using)</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC524" class="react-file-line html-div" data-testid="code-cell" data-line-number="524" style="position:relative"><span class="pl-k">typedef</span> <span class="pl-smi">decltype</span>(<span class="pl-k">sizeof</span>(<span class="pl-k">void</span>*)) <span class="pl-c1">size_t</span>; <span class="pl-c"><span class="pl-c">//</span> NOLINT(modernize-use-using)</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC525" class="react-file-line html-div" data-testid="code-cell" data-line-number="525" style="position:relative"><span class="pl-k">template </span>&lt;<span class="pl-k">class</span> <span class="pl-en">charT</span>&gt;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC526" class="react-file-line html-div" data-testid="code-cell" data-line-number="526" style="position:relative"><span class="pl-k">struct</span> <span class="pl-en">char_traits</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC527" class="react-file-line html-div" data-testid="code-cell" data-line-number="527" style="position:relative"><span class="pl-k">template </span>&lt;&gt;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC528" class="react-file-line html-div" data-testid="code-cell" data-line-number="528" style="position:relative"><span class="pl-k">struct</span> <span class="pl-en">char_traits</span>&lt;<span class="pl-k">char</span>&gt;;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC529" class="react-file-line html-div" data-testid="code-cell" data-line-number="529" style="position:relative"><span class="pl-k">template </span>&lt;<span class="pl-k">class</span> <span class="pl-en">charT</span>, <span class="pl-k">class</span> <span class="pl-en">traits</span>&gt;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC530" class="react-file-line html-div" data-testid="code-cell" data-line-number="530" style="position:relative"><span class="pl-k">class</span> <span class="pl-en">basic_ostream</span>; <span class="pl-c"><span class="pl-c">//</span> NOLINT(fuchsia-virtual-inheritance)</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC531" class="react-file-line html-div" data-testid="code-cell" data-line-number="531" style="position:relative"><span class="pl-k">typedef</span> basic_ostream&lt;<span class="pl-k">char</span>, char_traits&lt;<span class="pl-k">char</span>&gt;&gt; ostream; <span class="pl-c"><span class="pl-c">//</span> NOLINT(modernize-use-using)</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC532" class="react-file-line html-div" data-testid="code-cell" data-line-number="532" style="position:relative"><span class="pl-k">template</span>&lt;<span class="pl-k">class</span> <span class="pl-en">traits</span>&gt;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC533" class="react-file-line html-div" data-testid="code-cell" data-line-number="533" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> NOLINTNEXTLINE</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC534" class="react-file-line html-div" data-testid="code-cell" data-line-number="534" style="position:relative">basic_ostream&lt;<span class="pl-k">char</span>, traits&gt;&amp; <span class="pl-k">operator</span>&lt;&lt;(basic_ostream&lt;<span class="pl-k">char</span>, traits&gt;&amp;, <span class="pl-k">const</span> <span class="pl-k">char</span>*);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC535" class="react-file-line html-div" data-testid="code-cell" data-line-number="535" style="position:relative"><span class="pl-k">template </span>&lt;<span class="pl-k">class</span> <span class="pl-en">charT</span>, <span class="pl-k">class</span> <span class="pl-en">traits</span>&gt;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC536" class="react-file-line html-div" data-testid="code-cell" data-line-number="536" style="position:relative"><span class="pl-k">class</span> <span class="pl-en">basic_istream</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC537" class="react-file-line html-div" data-testid="code-cell" data-line-number="537" style="position:relative"><span class="pl-k">typedef</span> basic_istream&lt;<span class="pl-k">char</span>, char_traits&lt;<span class="pl-k">char</span>&gt;&gt; istream; <span class="pl-c"><span class="pl-c">//</span> NOLINT(modernize-use-using)</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC538" class="react-file-line html-div" data-testid="code-cell" data-line-number="538" style="position:relative"><span class="pl-k">template </span>&lt;<span class="pl-k">class</span>... Types&gt;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC539" class="react-file-line html-div" data-testid="code-cell" data-line-number="539" style="position:relative"><span class="pl-k">class</span> <span class="pl-en">tuple</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC540" class="react-file-line html-div" data-testid="code-cell" data-line-number="540" style="position:relative">#<span class="pl-k">if</span> DOCTEST_MSVC &gt;= DOCTEST_COMPILER(19, 20, 0)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC541" class="react-file-line html-div" data-testid="code-cell" data-line-number="541" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> see this issue on why this is needed: https://github.com/doctest/doctest/issues/183</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC542" class="react-file-line html-div" data-testid="code-cell" data-line-number="542" style="position:relative"><span class="pl-k">template </span>&lt;<span class="pl-k">class</span> <span class="pl-en">Ty</span>&gt;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC543" class="react-file-line html-div" data-testid="code-cell" data-line-number="543" style="position:relative"><span class="pl-k">class</span> <span class="pl-en">allocator</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC544" class="react-file-line html-div" data-testid="code-cell" data-line-number="544" style="position:relative"><span class="pl-k">template </span>&lt;<span class="pl-k">class</span> <span class="pl-en">Elem</span>, <span class="pl-k">class</span> <span class="pl-en">Traits</span>, <span class="pl-k">class</span> <span class="pl-en">Alloc</span>&gt;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC545" class="react-file-line html-div" data-testid="code-cell" data-line-number="545" style="position:relative"><span class="pl-k">class</span> <span class="pl-en">basic_string</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC546" class="react-file-line html-div" data-testid="code-cell" data-line-number="546" style="position:relative"><span class="pl-k">using</span> string = basic_string&lt;<span class="pl-k">char</span>, char_traits&lt;<span class="pl-k">char</span>&gt;, allocator&lt;<span class="pl-k">char</span>&gt;&gt;;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC547" class="react-file-line html-div" data-testid="code-cell" data-line-number="547" style="position:relative">#<span class="pl-k">endif</span> <span class="pl-c"><span class="pl-c">//</span> VS 2019</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC548" class="react-file-line html-div" data-testid="code-cell" data-line-number="548" style="position:relative">} <span class="pl-c"><span class="pl-c">//</span> namespace std</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC549" class="react-file-line html-div" data-testid="code-cell" data-line-number="549" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC550" class="react-file-line html-div" data-testid="code-cell" data-line-number="550" style="position:relative">DOCTEST_MSVC_SUPPRESS_WARNING_POP</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC551" class="react-file-line html-div" data-testid="code-cell" data-line-number="551" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC552" class="react-file-line html-div" data-testid="code-cell" data-line-number="552" style="position:relative">#<span class="pl-k">endif</span> <span class="pl-c"><span class="pl-c">//</span> DOCTEST_CONFIG_USE_STD_HEADERS</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC553" class="react-file-line html-div" data-testid="code-cell" data-line-number="553" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC554" class="react-file-line html-div" data-testid="code-cell" data-line-number="554" style="position:relative">#<span class="pl-k">ifdef</span> DOCTEST_CONFIG_INCLUDE_TYPE_TRAITS</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC555" class="react-file-line html-div" data-testid="code-cell" data-line-number="555" style="position:relative">#<span class="pl-k">include</span> <span class="pl-s"><span class="pl-pds">&lt;</span>type_traits<span class="pl-pds">&gt;</span></span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC556" class="react-file-line html-div" data-testid="code-cell" data-line-number="556" style="position:relative">#<span class="pl-k">endif</span> <span class="pl-c"><span class="pl-c">//</span> DOCTEST_CONFIG_INCLUDE_TYPE_TRAITS</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC557" class="react-file-line html-div" data-testid="code-cell" data-line-number="557" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC558" class="react-file-line html-div" data-testid="code-cell" data-line-number="558" style="position:relative"><span class="pl-k">namespace</span> <span class="pl-en">doctest</span> {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC559" class="react-file-line html-div" data-testid="code-cell" data-line-number="559" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC560" class="react-file-line html-div" data-testid="code-cell" data-line-number="560" style="position:relative"><span class="pl-k">using</span> std::<span class="pl-c1">size_t</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC561" class="react-file-line html-div" data-testid="code-cell" data-line-number="561" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC562" class="react-file-line html-div" data-testid="code-cell" data-line-number="562" style="position:relative">DOCTEST_INTERFACE <span class="pl-k">extern</span> <span class="pl-k">bool</span> is_running_in_test;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC563" class="react-file-line html-div" data-testid="code-cell" data-line-number="563" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC564" class="react-file-line html-div" data-testid="code-cell" data-line-number="564" style="position:relative">#<span class="pl-k">ifndef</span> DOCTEST_CONFIG_STRING_SIZE_TYPE</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC565" class="react-file-line html-div" data-testid="code-cell" data-line-number="565" style="position:relative">#<span class="pl-k">define</span> <span class="pl-en">DOCTEST_CONFIG_STRING_SIZE_TYPE</span> <span class="pl-k">unsigned</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC566" class="react-file-line html-div" data-testid="code-cell" data-line-number="566" style="position:relative">#<span class="pl-k">endif</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC567" class="react-file-line html-div" data-testid="code-cell" data-line-number="567" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC568" class="react-file-line html-div" data-testid="code-cell" data-line-number="568" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> A 24 byte string class (can be as small as 17 for x64 and 13 for x86) that can hold strings with length</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC569" class="react-file-line html-div" data-testid="code-cell" data-line-number="569" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> of up to 23 chars on the stack before going on the heap - the last byte of the buffer is used for:</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC570" class="react-file-line html-div" data-testid="code-cell" data-line-number="570" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> - &quot;is small&quot; bit - the highest bit - if &quot;0&quot; then it is small - otherwise its &quot;1&quot; (128)</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC571" class="react-file-line html-div" data-testid="code-cell" data-line-number="571" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> - if small - capacity left before going on the heap - using the lowest 5 bits</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC572" class="react-file-line html-div" data-testid="code-cell" data-line-number="572" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> - if small - 2 bits are left unused - the second and third highest ones</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC573" class="react-file-line html-div" data-testid="code-cell" data-line-number="573" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> - if small - acts as a null terminator if strlen() is 23 (24 including the null terminator)</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC574" class="react-file-line html-div" data-testid="code-cell" data-line-number="574" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> and the &quot;is small&quot; bit remains &quot;0&quot; (&quot;as well as the capacity left&quot;) so its OK</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC575" class="react-file-line html-div" data-testid="code-cell" data-line-number="575" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> Idea taken from this lecture about the string implementation of facebook/folly - fbstring</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC576" class="react-file-line html-div" data-testid="code-cell" data-line-number="576" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> https://www.youtube.com/watch?v=kPR8h4-qZdk</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC577" class="react-file-line html-div" data-testid="code-cell" data-line-number="577" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> TODO:</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC578" class="react-file-line html-div" data-testid="code-cell" data-line-number="578" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> - optimizations - like not deleting memory unnecessarily in operator= and etc.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC579" class="react-file-line html-div" data-testid="code-cell" data-line-number="579" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> - resize/reserve/clear</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC580" class="react-file-line html-div" data-testid="code-cell" data-line-number="580" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> - replace</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC581" class="react-file-line html-div" data-testid="code-cell" data-line-number="581" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> - back/front</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC582" class="react-file-line html-div" data-testid="code-cell" data-line-number="582" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> - iterator stuff</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC583" class="react-file-line html-div" data-testid="code-cell" data-line-number="583" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> - find &amp; friends</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC584" class="react-file-line html-div" data-testid="code-cell" data-line-number="584" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> - push_back/pop_back</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC585" class="react-file-line html-div" data-testid="code-cell" data-line-number="585" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> - assign/insert/erase</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC586" class="react-file-line html-div" data-testid="code-cell" data-line-number="586" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> - relational operators as free functions - taking const char* as one of the params</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC587" class="react-file-line html-div" data-testid="code-cell" data-line-number="587" style="position:relative"><span class="pl-k">class</span> <span class="pl-en">DOCTEST_INTERFACE</span> String</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC588" class="react-file-line html-div" data-testid="code-cell" data-line-number="588" style="position:relative">{</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC589" class="react-file-line html-div" data-testid="code-cell" data-line-number="589" style="position:relative"><span class="pl-k">public:</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC590" class="react-file-line html-div" data-testid="code-cell" data-line-number="590" style="position:relative"> <span class="pl-k">using</span> size_type = DOCTEST_CONFIG_STRING_SIZE_TYPE;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC591" class="react-file-line html-div" data-testid="code-cell" data-line-number="591" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC592" class="react-file-line html-div" data-testid="code-cell" data-line-number="592" style="position:relative"><span class="pl-k">private:</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC593" class="react-file-line html-div" data-testid="code-cell" data-line-number="593" style="position:relative"> <span class="pl-k">static</span> DOCTEST_CONSTEXPR size_type len = <span class="pl-c1">24</span>; <span class="pl-c"><span class="pl-c">//</span>!OCLINT avoid private static members</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC594" class="react-file-line html-div" data-testid="code-cell" data-line-number="594" style="position:relative"> <span class="pl-k">static</span> DOCTEST_CONSTEXPR size_type last = len - <span class="pl-c1">1</span>; <span class="pl-c"><span class="pl-c">//</span>!OCLINT avoid private static members</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC595" class="react-file-line html-div" data-testid="code-cell" data-line-number="595" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC596" class="react-file-line html-div" data-testid="code-cell" data-line-number="596" style="position:relative"> <span class="pl-k">struct</span> <span class="pl-en">view</span> <span class="pl-c"><span class="pl-c">//</span> len should be more than sizeof(view) - because of the final byte for flags</span></div></div></div><div class="child-of-line-595 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC597" class="react-file-line html-div" data-testid="code-cell" data-line-number="597" style="position:relative"> {</div></div></div><div class="child-of-line-595 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC598" class="react-file-line html-div" data-testid="code-cell" data-line-number="598" style="position:relative"> <span class="pl-k">char</span>* ptr;</div></div></div><div class="child-of-line-595 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC599" class="react-file-line html-div" data-testid="code-cell" data-line-number="599" style="position:relative"> size_type size;</div></div></div><div class="child-of-line-595 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC600" class="react-file-line html-div" data-testid="code-cell" data-line-number="600" style="position:relative"> size_type capacity;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC601" class="react-file-line html-div" data-testid="code-cell" data-line-number="601" style="position:relative"> };</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC602" class="react-file-line html-div" data-testid="code-cell" data-line-number="602" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC603" class="react-file-line html-div" data-testid="code-cell" data-line-number="603" style="position:relative"> <span class="pl-k">union</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC604" class="react-file-line html-div" data-testid="code-cell" data-line-number="604" style="position:relative"> {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC605" class="react-file-line html-div" data-testid="code-cell" data-line-number="605" style="position:relative"> <span class="pl-k">char</span> buf[len]; <span class="pl-c"><span class="pl-c">//</span> NOLINT(*-avoid-c-arrays)</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC606" class="react-file-line html-div" data-testid="code-cell" data-line-number="606" style="position:relative"> view data;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC607" class="react-file-line html-div" data-testid="code-cell" data-line-number="607" style="position:relative"> };</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC608" class="react-file-line html-div" data-testid="code-cell" data-line-number="608" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC609" class="react-file-line html-div" data-testid="code-cell" data-line-number="609" style="position:relative"> <span class="pl-k">char</span>* <span class="pl-en">allocate</span>(size_type sz);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC610" class="react-file-line html-div" data-testid="code-cell" data-line-number="610" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC611" class="react-file-line html-div" data-testid="code-cell" data-line-number="611" style="position:relative"> <span class="pl-k">bool</span> <span class="pl-en">isOnStack</span>() <span class="pl-k">const</span> <span class="pl-k">noexcept</span> { <span class="pl-k">return</span> (buf[last] &amp; <span class="pl-c1">128</span>) == <span class="pl-c1">0</span>; }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC612" class="react-file-line html-div" data-testid="code-cell" data-line-number="612" style="position:relative"> <span class="pl-k">void</span> <span class="pl-en">setOnHeap</span>() <span class="pl-k">noexcept</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC613" class="react-file-line html-div" data-testid="code-cell" data-line-number="613" style="position:relative"> <span class="pl-k">void</span> <span class="pl-en">setLast</span>(size_type in = last) <span class="pl-k">noexcept</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC614" class="react-file-line html-div" data-testid="code-cell" data-line-number="614" style="position:relative"> <span class="pl-k">void</span> <span class="pl-en">setSize</span>(size_type sz) <span class="pl-k">noexcept</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC615" class="react-file-line html-div" data-testid="code-cell" data-line-number="615" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC616" class="react-file-line html-div" data-testid="code-cell" data-line-number="616" style="position:relative"> <span class="pl-k">void</span> <span class="pl-en">copy</span>(<span class="pl-k">const</span> String&amp; other);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC617" class="react-file-line html-div" data-testid="code-cell" data-line-number="617" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC618" class="react-file-line html-div" data-testid="code-cell" data-line-number="618" style="position:relative"><span class="pl-k">public:</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC619" class="react-file-line html-div" data-testid="code-cell" data-line-number="619" style="position:relative"> <span class="pl-k">static</span> DOCTEST_CONSTEXPR size_type npos = <span class="pl-k">static_cast</span>&lt;size_type&gt;(-<span class="pl-c1">1</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC620" class="react-file-line html-div" data-testid="code-cell" data-line-number="620" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC621" class="react-file-line html-div" data-testid="code-cell" data-line-number="621" style="position:relative"> <span class="pl-en">String</span>() <span class="pl-k">noexcept</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC622" class="react-file-line html-div" data-testid="code-cell" data-line-number="622" style="position:relative"> <span class="pl-en">~String</span>();</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC623" class="react-file-line html-div" data-testid="code-cell" data-line-number="623" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC624" class="react-file-line html-div" data-testid="code-cell" data-line-number="624" style="position:relative"> <span class="pl-c"><span class="pl-c">//</span> cppcheck-suppress noExplicitConstructor</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC625" class="react-file-line html-div" data-testid="code-cell" data-line-number="625" style="position:relative"> <span class="pl-en">String</span>(<span class="pl-k">const</span> <span class="pl-k">char</span>* in);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC626" class="react-file-line html-div" data-testid="code-cell" data-line-number="626" style="position:relative"> <span class="pl-en">String</span>(<span class="pl-k">const</span> <span class="pl-k">char</span>* in, size_type in_size);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC627" class="react-file-line html-div" data-testid="code-cell" data-line-number="627" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC628" class="react-file-line html-div" data-testid="code-cell" data-line-number="628" style="position:relative"> <span class="pl-en">String</span>(std::istream&amp; in, size_type in_size);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC629" class="react-file-line html-div" data-testid="code-cell" data-line-number="629" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC630" class="react-file-line html-div" data-testid="code-cell" data-line-number="630" style="position:relative"> <span class="pl-en">String</span>(<span class="pl-k">const</span> String&amp; other);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC631" class="react-file-line html-div" data-testid="code-cell" data-line-number="631" style="position:relative"> String&amp; <span class="pl-k">operator</span>=(<span class="pl-k">const</span> String&amp; other);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC632" class="react-file-line html-div" data-testid="code-cell" data-line-number="632" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC633" class="react-file-line html-div" data-testid="code-cell" data-line-number="633" style="position:relative"> String&amp; <span class="pl-k">operator</span>+=(<span class="pl-k">const</span> String&amp; other);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC634" class="react-file-line html-div" data-testid="code-cell" data-line-number="634" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC635" class="react-file-line html-div" data-testid="code-cell" data-line-number="635" style="position:relative"> <span class="pl-en">String</span>(String&amp;&amp; other) <span class="pl-k">noexcept</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC636" class="react-file-line html-div" data-testid="code-cell" data-line-number="636" style="position:relative"> String&amp; <span class="pl-k">operator</span>=(String&amp;&amp; other) <span class="pl-k">noexcept</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC637" class="react-file-line html-div" data-testid="code-cell" data-line-number="637" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC638" class="react-file-line html-div" data-testid="code-cell" data-line-number="638" style="position:relative"> <span class="pl-k">char</span> <span class="pl-k">operator</span>[](size_type i) <span class="pl-k">const</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC639" class="react-file-line html-div" data-testid="code-cell" data-line-number="639" style="position:relative"> <span class="pl-k">char</span>&amp; <span class="pl-k">operator</span>[](size_type i);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC640" class="react-file-line html-div" data-testid="code-cell" data-line-number="640" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC641" class="react-file-line html-div" data-testid="code-cell" data-line-number="641" style="position:relative"> <span class="pl-c"><span class="pl-c">//</span> the only functions I&#039;m willing to leave in the interface - available for inlining</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC642" class="react-file-line html-div" data-testid="code-cell" data-line-number="642" style="position:relative"> <span class="pl-k">const</span> <span class="pl-k">char</span>* <span class="pl-en">c_str</span>() <span class="pl-k">const</span> { <span class="pl-k">return</span> <span class="pl-k">const_cast</span>&lt;String*&gt;(<span class="pl-c1">this</span>)-&gt;<span class="pl-c1">c_str</span>(); } <span class="pl-c"><span class="pl-c">//</span> NOLINT</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC643" class="react-file-line html-div" data-testid="code-cell" data-line-number="643" style="position:relative"> <span class="pl-k">char</span>* <span class="pl-en">c_str</span>() {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC644" class="react-file-line html-div" data-testid="code-cell" data-line-number="644" style="position:relative"> <span class="pl-k">if</span> (<span class="pl-c1">isOnStack</span>()) {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC645" class="react-file-line html-div" data-testid="code-cell" data-line-number="645" style="position:relative"> <span class="pl-k">return</span> <span class="pl-k">reinterpret_cast</span>&lt;<span class="pl-k">char</span>*&gt;(buf);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC646" class="react-file-line html-div" data-testid="code-cell" data-line-number="646" style="position:relative"> }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC647" class="react-file-line html-div" data-testid="code-cell" data-line-number="647" style="position:relative"> <span class="pl-k">return</span> data.<span class="pl-smi">ptr</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC648" class="react-file-line html-div" data-testid="code-cell" data-line-number="648" style="position:relative"> }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC649" class="react-file-line html-div" data-testid="code-cell" data-line-number="649" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC650" class="react-file-line html-div" data-testid="code-cell" data-line-number="650" style="position:relative"> size_type <span class="pl-en">size</span>() <span class="pl-k">const</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC651" class="react-file-line html-div" data-testid="code-cell" data-line-number="651" style="position:relative"> size_type <span class="pl-en">capacity</span>() <span class="pl-k">const</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC652" class="react-file-line html-div" data-testid="code-cell" data-line-number="652" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC653" class="react-file-line html-div" data-testid="code-cell" data-line-number="653" style="position:relative"> String <span class="pl-en">substr</span>(size_type pos, size_type cnt = npos) &amp;&amp;;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC654" class="react-file-line html-div" data-testid="code-cell" data-line-number="654" style="position:relative"> String <span class="pl-en">substr</span>(size_type pos, size_type cnt = npos) <span class="pl-k">const</span> &amp;;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC655" class="react-file-line html-div" data-testid="code-cell" data-line-number="655" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC656" class="react-file-line html-div" data-testid="code-cell" data-line-number="656" style="position:relative"> size_type <span class="pl-en">find</span>(<span class="pl-k">char</span> ch, size_type pos = <span class="pl-c1">0</span>) <span class="pl-k">const</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC657" class="react-file-line html-div" data-testid="code-cell" data-line-number="657" style="position:relative"> size_type <span class="pl-en">rfind</span>(<span class="pl-k">char</span> ch, size_type pos = npos) <span class="pl-k">const</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC658" class="react-file-line html-div" data-testid="code-cell" data-line-number="658" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC659" class="react-file-line html-div" data-testid="code-cell" data-line-number="659" style="position:relative"> <span class="pl-k">int</span> <span class="pl-en">compare</span>(<span class="pl-k">const</span> <span class="pl-k">char</span>* other, <span class="pl-k">bool</span> no_case = <span class="pl-c1">false</span>) <span class="pl-k">const</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC660" class="react-file-line html-div" data-testid="code-cell" data-line-number="660" style="position:relative"> <span class="pl-k">int</span> <span class="pl-en">compare</span>(<span class="pl-k">const</span> String&amp; other, <span class="pl-k">bool</span> no_case = <span class="pl-c1">false</span>) <span class="pl-k">const</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC661" class="react-file-line html-div" data-testid="code-cell" data-line-number="661" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC662" class="react-file-line html-div" data-testid="code-cell" data-line-number="662" style="position:relative"><span class="pl-k">friend</span> DOCTEST_INTERFACE std::ostream&amp; <span class="pl-k">operator</span>&lt;&lt;(std::ostream&amp; s, <span class="pl-k">const</span> String&amp; in);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC663" class="react-file-line html-div" data-testid="code-cell" data-line-number="663" style="position:relative">};</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC664" class="react-file-line html-div" data-testid="code-cell" data-line-number="664" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC665" class="react-file-line html-div" data-testid="code-cell" data-line-number="665" style="position:relative">DOCTEST_INTERFACE String <span class="pl-k">operator</span>+(<span class="pl-k">const</span> String&amp; lhs, <span class="pl-k">const</span> String&amp; rhs);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC666" class="react-file-line html-div" data-testid="code-cell" data-line-number="666" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC667" class="react-file-line html-div" data-testid="code-cell" data-line-number="667" style="position:relative">DOCTEST_INTERFACE <span class="pl-k">bool</span> <span class="pl-k">operator</span>==(<span class="pl-k">const</span> String&amp; lhs, <span class="pl-k">const</span> String&amp; rhs);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC668" class="react-file-line html-div" data-testid="code-cell" data-line-number="668" style="position:relative">DOCTEST_INTERFACE <span class="pl-k">bool</span> <span class="pl-k">operator</span>!=(<span class="pl-k">const</span> String&amp; lhs, <span class="pl-k">const</span> String&amp; rhs);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC669" class="react-file-line html-div" data-testid="code-cell" data-line-number="669" style="position:relative">DOCTEST_INTERFACE <span class="pl-k">bool</span> <span class="pl-k">operator</span>&lt;(<span class="pl-k">const</span> String&amp; lhs, <span class="pl-k">const</span> String&amp; rhs);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC670" class="react-file-line html-div" data-testid="code-cell" data-line-number="670" style="position:relative">DOCTEST_INTERFACE <span class="pl-k">bool</span> <span class="pl-k">operator</span>&gt;(<span class="pl-k">const</span> String&amp; lhs, <span class="pl-k">const</span> String&amp; rhs);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC671" class="react-file-line html-div" data-testid="code-cell" data-line-number="671" style="position:relative">DOCTEST_INTERFACE <span class="pl-k">bool</span> <span class="pl-k">operator</span>&lt;=(<span class="pl-k">const</span> String&amp; lhs, <span class="pl-k">const</span> String&amp; rhs);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC672" class="react-file-line html-div" data-testid="code-cell" data-line-number="672" style="position:relative">DOCTEST_INTERFACE <span class="pl-k">bool</span> <span class="pl-k">operator</span>&gt;=(<span class="pl-k">const</span> String&amp; lhs, <span class="pl-k">const</span> String&amp; rhs);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC673" class="react-file-line html-div" data-testid="code-cell" data-line-number="673" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC674" class="react-file-line html-div" data-testid="code-cell" data-line-number="674" style="position:relative"><span class="pl-k">class</span> <span class="pl-en">DOCTEST_INTERFACE</span> Contains {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC675" class="react-file-line html-div" data-testid="code-cell" data-line-number="675" style="position:relative"><span class="pl-k">public:</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC676" class="react-file-line html-div" data-testid="code-cell" data-line-number="676" style="position:relative"> <span class="pl-k">explicit</span> <span class="pl-en">Contains</span>(<span class="pl-k">const</span> String&amp; string);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC677" class="react-file-line html-div" data-testid="code-cell" data-line-number="677" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC678" class="react-file-line html-div" data-testid="code-cell" data-line-number="678" style="position:relative"> <span class="pl-k">bool</span> <span class="pl-en">checkWith</span>(<span class="pl-k">const</span> String&amp; other) <span class="pl-k">const</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC679" class="react-file-line html-div" data-testid="code-cell" data-line-number="679" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC680" class="react-file-line html-div" data-testid="code-cell" data-line-number="680" style="position:relative"> String string;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC681" class="react-file-line html-div" data-testid="code-cell" data-line-number="681" style="position:relative">};</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC682" class="react-file-line html-div" data-testid="code-cell" data-line-number="682" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC683" class="react-file-line html-div" data-testid="code-cell" data-line-number="683" style="position:relative">DOCTEST_INTERFACE String <span class="pl-en">toString</span>(<span class="pl-k">const</span> Contains&amp; in);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC684" class="react-file-line html-div" data-testid="code-cell" data-line-number="684" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC685" class="react-file-line html-div" data-testid="code-cell" data-line-number="685" style="position:relative">DOCTEST_INTERFACE <span class="pl-k">bool</span> <span class="pl-k">operator</span>==(<span class="pl-k">const</span> String&amp; lhs, <span class="pl-k">const</span> Contains&amp; rhs);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC686" class="react-file-line html-div" data-testid="code-cell" data-line-number="686" style="position:relative">DOCTEST_INTERFACE <span class="pl-k">bool</span> <span class="pl-k">operator</span>==(<span class="pl-k">const</span> Contains&amp; lhs, <span class="pl-k">const</span> String&amp; rhs);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC687" class="react-file-line html-div" data-testid="code-cell" data-line-number="687" style="position:relative">DOCTEST_INTERFACE <span class="pl-k">bool</span> <span class="pl-k">operator</span>!=(<span class="pl-k">const</span> String&amp; lhs, <span class="pl-k">const</span> Contains&amp; rhs);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC688" class="react-file-line html-div" data-testid="code-cell" data-line-number="688" style="position:relative">DOCTEST_INTERFACE <span class="pl-k">bool</span> <span class="pl-k">operator</span>!=(<span class="pl-k">const</span> Contains&amp; lhs, <span class="pl-k">const</span> String&amp; rhs);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC689" class="react-file-line html-div" data-testid="code-cell" data-line-number="689" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC690" class="react-file-line html-div" data-testid="code-cell" data-line-number="690" style="position:relative"><span class="pl-k">namespace</span> <span class="pl-en">Color</span> {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC691" class="react-file-line html-div" data-testid="code-cell" data-line-number="691" style="position:relative"> <span class="pl-k">enum</span> Enum</div></div></div><div class="child-of-line-690 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC692" class="react-file-line html-div" data-testid="code-cell" data-line-number="692" style="position:relative"> {</div></div></div><div class="child-of-line-690 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC693" class="react-file-line html-div" data-testid="code-cell" data-line-number="693" style="position:relative"> None = <span class="pl-c1">0</span>,</div></div></div><div class="child-of-line-690 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC694" class="react-file-line html-div" data-testid="code-cell" data-line-number="694" style="position:relative"> White,</div></div></div><div class="child-of-line-690 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC695" class="react-file-line html-div" data-testid="code-cell" data-line-number="695" style="position:relative"> Red,</div></div></div><div class="child-of-line-690 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC696" class="react-file-line html-div" data-testid="code-cell" data-line-number="696" style="position:relative"> Green,</div></div></div><div class="child-of-line-690 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC697" class="react-file-line html-div" data-testid="code-cell" data-line-number="697" style="position:relative"> Blue,</div></div></div><div class="child-of-line-690 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC698" class="react-file-line html-div" data-testid="code-cell" data-line-number="698" style="position:relative"> Cyan,</div></div></div><div class="child-of-line-690 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC699" class="react-file-line html-div" data-testid="code-cell" data-line-number="699" style="position:relative"> Yellow,</div></div></div><div class="child-of-line-690 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC700" class="react-file-line html-div" data-testid="code-cell" data-line-number="700" style="position:relative"> Grey,</div></div></div><div class="child-of-line-690 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC701" class="react-file-line html-div" data-testid="code-cell" data-line-number="701" style="position:relative">
</div></div></div><div class="child-of-line-690 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC702" class="react-file-line html-div" data-testid="code-cell" data-line-number="702" style="position:relative"> Bright = <span class="pl-c1">0x10</span>,</div></div></div><div class="child-of-line-690 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC703" class="react-file-line html-div" data-testid="code-cell" data-line-number="703" style="position:relative">
</div></div></div><div class="child-of-line-690 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC704" class="react-file-line html-div" data-testid="code-cell" data-line-number="704" style="position:relative"> BrightRed = Bright | Red,</div></div></div><div class="child-of-line-690 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC705" class="react-file-line html-div" data-testid="code-cell" data-line-number="705" style="position:relative"> BrightGreen = Bright | Green,</div></div></div><div class="child-of-line-690 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC706" class="react-file-line html-div" data-testid="code-cell" data-line-number="706" style="position:relative"> LightGrey = Bright | Grey,</div></div></div><div class="child-of-line-690 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC707" class="react-file-line html-div" data-testid="code-cell" data-line-number="707" style="position:relative"> BrightWhite = Bright | White</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC708" class="react-file-line html-div" data-testid="code-cell" data-line-number="708" style="position:relative"> };</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC709" class="react-file-line html-div" data-testid="code-cell" data-line-number="709" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC710" class="react-file-line html-div" data-testid="code-cell" data-line-number="710" style="position:relative"> DOCTEST_INTERFACE std::ostream&amp; <span class="pl-k">operator</span>&lt;&lt;(std::ostream&amp; s, Color::Enum code);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC711" class="react-file-line html-div" data-testid="code-cell" data-line-number="711" style="position:relative">} <span class="pl-c"><span class="pl-c">//</span> namespace Color</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC712" class="react-file-line html-div" data-testid="code-cell" data-line-number="712" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC713" class="react-file-line html-div" data-testid="code-cell" data-line-number="713" style="position:relative"><span class="pl-k">namespace</span> <span class="pl-en">assertType</span> {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC714" class="react-file-line html-div" data-testid="code-cell" data-line-number="714" style="position:relative"> <span class="pl-k">enum</span> Enum</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC715" class="react-file-line html-div" data-testid="code-cell" data-line-number="715" style="position:relative"> {</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC716" class="react-file-line html-div" data-testid="code-cell" data-line-number="716" style="position:relative"> <span class="pl-c"><span class="pl-c">//</span> macro traits</span></div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC717" class="react-file-line html-div" data-testid="code-cell" data-line-number="717" style="position:relative">
</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC718" class="react-file-line html-div" data-testid="code-cell" data-line-number="718" style="position:relative"> is_warn = <span class="pl-c1">1</span>,</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC719" class="react-file-line html-div" data-testid="code-cell" data-line-number="719" style="position:relative"> is_check = <span class="pl-c1">2</span> * is_warn,</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC720" class="react-file-line html-div" data-testid="code-cell" data-line-number="720" style="position:relative"> is_require = <span class="pl-c1">2</span> * is_check,</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC721" class="react-file-line html-div" data-testid="code-cell" data-line-number="721" style="position:relative">
</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC722" class="react-file-line html-div" data-testid="code-cell" data-line-number="722" style="position:relative"> is_normal = <span class="pl-c1">2</span> * is_require,</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC723" class="react-file-line html-div" data-testid="code-cell" data-line-number="723" style="position:relative"> is_throws = <span class="pl-c1">2</span> * is_normal,</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC724" class="react-file-line html-div" data-testid="code-cell" data-line-number="724" style="position:relative"> is_throws_as = <span class="pl-c1">2</span> * is_throws,</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC725" class="react-file-line html-div" data-testid="code-cell" data-line-number="725" style="position:relative"> is_throws_with = <span class="pl-c1">2</span> * is_throws_as,</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC726" class="react-file-line html-div" data-testid="code-cell" data-line-number="726" style="position:relative"> is_nothrow = <span class="pl-c1">2</span> * is_throws_with,</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC727" class="react-file-line html-div" data-testid="code-cell" data-line-number="727" style="position:relative">
</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC728" class="react-file-line html-div" data-testid="code-cell" data-line-number="728" style="position:relative"> is_false = <span class="pl-c1">2</span> * is_nothrow,</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC729" class="react-file-line html-div" data-testid="code-cell" data-line-number="729" style="position:relative"> is_unary = <span class="pl-c1">2</span> * is_false, <span class="pl-c"><span class="pl-c">//</span> not checked anywhere - used just to distinguish the types</span></div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC730" class="react-file-line html-div" data-testid="code-cell" data-line-number="730" style="position:relative">
</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC731" class="react-file-line html-div" data-testid="code-cell" data-line-number="731" style="position:relative"> is_eq = <span class="pl-c1">2</span> * is_unary,</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC732" class="react-file-line html-div" data-testid="code-cell" data-line-number="732" style="position:relative"> is_ne = <span class="pl-c1">2</span> * is_eq,</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC733" class="react-file-line html-div" data-testid="code-cell" data-line-number="733" style="position:relative">
</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC734" class="react-file-line html-div" data-testid="code-cell" data-line-number="734" style="position:relative"> is_lt = <span class="pl-c1">2</span> * is_ne,</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC735" class="react-file-line html-div" data-testid="code-cell" data-line-number="735" style="position:relative"> is_gt = <span class="pl-c1">2</span> * is_lt,</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC736" class="react-file-line html-div" data-testid="code-cell" data-line-number="736" style="position:relative">
</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC737" class="react-file-line html-div" data-testid="code-cell" data-line-number="737" style="position:relative"> is_ge = <span class="pl-c1">2</span> * is_gt,</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC738" class="react-file-line html-div" data-testid="code-cell" data-line-number="738" style="position:relative"> is_le = <span class="pl-c1">2</span> * is_ge,</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC739" class="react-file-line html-div" data-testid="code-cell" data-line-number="739" style="position:relative">
</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC740" class="react-file-line html-div" data-testid="code-cell" data-line-number="740" style="position:relative"> <span class="pl-c"><span class="pl-c">//</span> macro types</span></div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC741" class="react-file-line html-div" data-testid="code-cell" data-line-number="741" style="position:relative">
</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC742" class="react-file-line html-div" data-testid="code-cell" data-line-number="742" style="position:relative"> DT_WARN = is_normal | is_warn,</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC743" class="react-file-line html-div" data-testid="code-cell" data-line-number="743" style="position:relative"> DT_CHECK = is_normal | is_check,</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC744" class="react-file-line html-div" data-testid="code-cell" data-line-number="744" style="position:relative"> DT_REQUIRE = is_normal | is_require,</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC745" class="react-file-line html-div" data-testid="code-cell" data-line-number="745" style="position:relative">
</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC746" class="react-file-line html-div" data-testid="code-cell" data-line-number="746" style="position:relative"> DT_WARN_FALSE = is_normal | is_false | is_warn,</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC747" class="react-file-line html-div" data-testid="code-cell" data-line-number="747" style="position:relative"> DT_CHECK_FALSE = is_normal | is_false | is_check,</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC748" class="react-file-line html-div" data-testid="code-cell" data-line-number="748" style="position:relative"> DT_REQUIRE_FALSE = is_normal | is_false | is_require,</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC749" class="react-file-line html-div" data-testid="code-cell" data-line-number="749" style="position:relative">
</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC750" class="react-file-line html-div" data-testid="code-cell" data-line-number="750" style="position:relative"> DT_WARN_THROWS = is_throws | is_warn,</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC751" class="react-file-line html-div" data-testid="code-cell" data-line-number="751" style="position:relative"> DT_CHECK_THROWS = is_throws | is_check,</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC752" class="react-file-line html-div" data-testid="code-cell" data-line-number="752" style="position:relative"> DT_REQUIRE_THROWS = is_throws | is_require,</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC753" class="react-file-line html-div" data-testid="code-cell" data-line-number="753" style="position:relative">
</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC754" class="react-file-line html-div" data-testid="code-cell" data-line-number="754" style="position:relative"> DT_WARN_THROWS_AS = is_throws_as | is_warn,</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC755" class="react-file-line html-div" data-testid="code-cell" data-line-number="755" style="position:relative"> DT_CHECK_THROWS_AS = is_throws_as | is_check,</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC756" class="react-file-line html-div" data-testid="code-cell" data-line-number="756" style="position:relative"> DT_REQUIRE_THROWS_AS = is_throws_as | is_require,</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC757" class="react-file-line html-div" data-testid="code-cell" data-line-number="757" style="position:relative">
</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC758" class="react-file-line html-div" data-testid="code-cell" data-line-number="758" style="position:relative"> DT_WARN_THROWS_WITH = is_throws_with | is_warn,</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC759" class="react-file-line html-div" data-testid="code-cell" data-line-number="759" style="position:relative"> DT_CHECK_THROWS_WITH = is_throws_with | is_check,</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC760" class="react-file-line html-div" data-testid="code-cell" data-line-number="760" style="position:relative"> DT_REQUIRE_THROWS_WITH = is_throws_with | is_require,</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC761" class="react-file-line html-div" data-testid="code-cell" data-line-number="761" style="position:relative">
</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC762" class="react-file-line html-div" data-testid="code-cell" data-line-number="762" style="position:relative"> DT_WARN_THROWS_WITH_AS = is_throws_with | is_throws_as | is_warn,</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC763" class="react-file-line html-div" data-testid="code-cell" data-line-number="763" style="position:relative"> DT_CHECK_THROWS_WITH_AS = is_throws_with | is_throws_as | is_check,</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC764" class="react-file-line html-div" data-testid="code-cell" data-line-number="764" style="position:relative"> DT_REQUIRE_THROWS_WITH_AS = is_throws_with | is_throws_as | is_require,</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC765" class="react-file-line html-div" data-testid="code-cell" data-line-number="765" style="position:relative">
</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC766" class="react-file-line html-div" data-testid="code-cell" data-line-number="766" style="position:relative"> DT_WARN_NOTHROW = is_nothrow | is_warn,</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC767" class="react-file-line html-div" data-testid="code-cell" data-line-number="767" style="position:relative"> DT_CHECK_NOTHROW = is_nothrow | is_check,</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC768" class="react-file-line html-div" data-testid="code-cell" data-line-number="768" style="position:relative"> DT_REQUIRE_NOTHROW = is_nothrow | is_require,</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC769" class="react-file-line html-div" data-testid="code-cell" data-line-number="769" style="position:relative">
</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC770" class="react-file-line html-div" data-testid="code-cell" data-line-number="770" style="position:relative"> DT_WARN_EQ = is_normal | is_eq | is_warn,</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC771" class="react-file-line html-div" data-testid="code-cell" data-line-number="771" style="position:relative"> DT_CHECK_EQ = is_normal | is_eq | is_check,</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC772" class="react-file-line html-div" data-testid="code-cell" data-line-number="772" style="position:relative"> DT_REQUIRE_EQ = is_normal | is_eq | is_require,</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC773" class="react-file-line html-div" data-testid="code-cell" data-line-number="773" style="position:relative">
</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC774" class="react-file-line html-div" data-testid="code-cell" data-line-number="774" style="position:relative"> DT_WARN_NE = is_normal | is_ne | is_warn,</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC775" class="react-file-line html-div" data-testid="code-cell" data-line-number="775" style="position:relative"> DT_CHECK_NE = is_normal | is_ne | is_check,</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC776" class="react-file-line html-div" data-testid="code-cell" data-line-number="776" style="position:relative"> DT_REQUIRE_NE = is_normal | is_ne | is_require,</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC777" class="react-file-line html-div" data-testid="code-cell" data-line-number="777" style="position:relative">
</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC778" class="react-file-line html-div" data-testid="code-cell" data-line-number="778" style="position:relative"> DT_WARN_GT = is_normal | is_gt | is_warn,</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC779" class="react-file-line html-div" data-testid="code-cell" data-line-number="779" style="position:relative"> DT_CHECK_GT = is_normal | is_gt | is_check,</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC780" class="react-file-line html-div" data-testid="code-cell" data-line-number="780" style="position:relative"> DT_REQUIRE_GT = is_normal | is_gt | is_require,</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC781" class="react-file-line html-div" data-testid="code-cell" data-line-number="781" style="position:relative">
</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC782" class="react-file-line html-div" data-testid="code-cell" data-line-number="782" style="position:relative"> DT_WARN_LT = is_normal | is_lt | is_warn,</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC783" class="react-file-line html-div" data-testid="code-cell" data-line-number="783" style="position:relative"> DT_CHECK_LT = is_normal | is_lt | is_check,</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC784" class="react-file-line html-div" data-testid="code-cell" data-line-number="784" style="position:relative"> DT_REQUIRE_LT = is_normal | is_lt | is_require,</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC785" class="react-file-line html-div" data-testid="code-cell" data-line-number="785" style="position:relative">
</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC786" class="react-file-line html-div" data-testid="code-cell" data-line-number="786" style="position:relative"> DT_WARN_GE = is_normal | is_ge | is_warn,</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC787" class="react-file-line html-div" data-testid="code-cell" data-line-number="787" style="position:relative"> DT_CHECK_GE = is_normal | is_ge | is_check,</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC788" class="react-file-line html-div" data-testid="code-cell" data-line-number="788" style="position:relative"> DT_REQUIRE_GE = is_normal | is_ge | is_require,</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC789" class="react-file-line html-div" data-testid="code-cell" data-line-number="789" style="position:relative">
</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC790" class="react-file-line html-div" data-testid="code-cell" data-line-number="790" style="position:relative"> DT_WARN_LE = is_normal | is_le | is_warn,</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC791" class="react-file-line html-div" data-testid="code-cell" data-line-number="791" style="position:relative"> DT_CHECK_LE = is_normal | is_le | is_check,</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC792" class="react-file-line html-div" data-testid="code-cell" data-line-number="792" style="position:relative"> DT_REQUIRE_LE = is_normal | is_le | is_require,</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC793" class="react-file-line html-div" data-testid="code-cell" data-line-number="793" style="position:relative">
</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC794" class="react-file-line html-div" data-testid="code-cell" data-line-number="794" style="position:relative"> DT_WARN_UNARY = is_normal | is_unary | is_warn,</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC795" class="react-file-line html-div" data-testid="code-cell" data-line-number="795" style="position:relative"> DT_CHECK_UNARY = is_normal | is_unary | is_check,</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC796" class="react-file-line html-div" data-testid="code-cell" data-line-number="796" style="position:relative"> DT_REQUIRE_UNARY = is_normal | is_unary | is_require,</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC797" class="react-file-line html-div" data-testid="code-cell" data-line-number="797" style="position:relative">
</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC798" class="react-file-line html-div" data-testid="code-cell" data-line-number="798" style="position:relative"> DT_WARN_UNARY_FALSE = is_normal | is_false | is_unary | is_warn,</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC799" class="react-file-line html-div" data-testid="code-cell" data-line-number="799" style="position:relative"> DT_CHECK_UNARY_FALSE = is_normal | is_false | is_unary | is_check,</div></div></div><div class="child-of-line-713 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC800" class="react-file-line html-div" data-testid="code-cell" data-line-number="800" style="position:relative"> DT_REQUIRE_UNARY_FALSE = is_normal | is_false | is_unary | is_require,</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC801" class="react-file-line html-div" data-testid="code-cell" data-line-number="801" style="position:relative"> };</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC802" class="react-file-line html-div" data-testid="code-cell" data-line-number="802" style="position:relative">} <span class="pl-c"><span class="pl-c">//</span> namespace assertType</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC803" class="react-file-line html-div" data-testid="code-cell" data-line-number="803" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC804" class="react-file-line html-div" data-testid="code-cell" data-line-number="804" style="position:relative">DOCTEST_INTERFACE <span class="pl-k">const</span> <span class="pl-k">char</span>* <span class="pl-en">assertString</span>(assertType::Enum at);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC805" class="react-file-line html-div" data-testid="code-cell" data-line-number="805" style="position:relative">DOCTEST_INTERFACE <span class="pl-k">const</span> <span class="pl-k">char</span>* <span class="pl-en">failureString</span>(assertType::Enum at);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC806" class="react-file-line html-div" data-testid="code-cell" data-line-number="806" style="position:relative">DOCTEST_INTERFACE <span class="pl-k">const</span> <span class="pl-k">char</span>* <span class="pl-en">skipPathFromFilename</span>(<span class="pl-k">const</span> <span class="pl-k">char</span>* file);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC807" class="react-file-line html-div" data-testid="code-cell" data-line-number="807" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC808" class="react-file-line html-div" data-testid="code-cell" data-line-number="808" style="position:relative"><span class="pl-k">struct</span> <span class="pl-en">DOCTEST_INTERFACE</span> TestCaseData</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC809" class="react-file-line html-div" data-testid="code-cell" data-line-number="809" style="position:relative">{</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC810" class="react-file-line html-div" data-testid="code-cell" data-line-number="810" style="position:relative"> String m_file; <span class="pl-c"><span class="pl-c">//</span> the file in which the test was registered (using String - see #350)</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC811" class="react-file-line html-div" data-testid="code-cell" data-line-number="811" style="position:relative"> <span class="pl-k">unsigned</span> m_line; <span class="pl-c"><span class="pl-c">//</span> the line where the test was registered</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC812" class="react-file-line html-div" data-testid="code-cell" data-line-number="812" style="position:relative"> <span class="pl-k">const</span> <span class="pl-k">char</span>* m_name; <span class="pl-c"><span class="pl-c">//</span> name of the test case</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC813" class="react-file-line html-div" data-testid="code-cell" data-line-number="813" style="position:relative"> <span class="pl-k">const</span> <span class="pl-k">char</span>* m_test_suite; <span class="pl-c"><span class="pl-c">//</span> the test suite in which the test was added</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC814" class="react-file-line html-div" data-testid="code-cell" data-line-number="814" style="position:relative"> <span class="pl-k">const</span> <span class="pl-k">char</span>* m_description;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC815" class="react-file-line html-div" data-testid="code-cell" data-line-number="815" style="position:relative"> <span class="pl-k">bool</span> m_skip;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC816" class="react-file-line html-div" data-testid="code-cell" data-line-number="816" style="position:relative"> <span class="pl-k">bool</span> m_no_breaks;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC817" class="react-file-line html-div" data-testid="code-cell" data-line-number="817" style="position:relative"> <span class="pl-k">bool</span> m_no_output;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC818" class="react-file-line html-div" data-testid="code-cell" data-line-number="818" style="position:relative"> <span class="pl-k">bool</span> m_may_fail;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC819" class="react-file-line html-div" data-testid="code-cell" data-line-number="819" style="position:relative"> <span class="pl-k">bool</span> m_should_fail;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC820" class="react-file-line html-div" data-testid="code-cell" data-line-number="820" style="position:relative"> <span class="pl-k">int</span> m_expected_failures;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC821" class="react-file-line html-div" data-testid="code-cell" data-line-number="821" style="position:relative"> <span class="pl-k">double</span> m_timeout;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC822" class="react-file-line html-div" data-testid="code-cell" data-line-number="822" style="position:relative">};</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC823" class="react-file-line html-div" data-testid="code-cell" data-line-number="823" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC824" class="react-file-line html-div" data-testid="code-cell" data-line-number="824" style="position:relative"><span class="pl-k">struct</span> <span class="pl-en">DOCTEST_INTERFACE</span> AssertData</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC825" class="react-file-line html-div" data-testid="code-cell" data-line-number="825" style="position:relative">{</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC826" class="react-file-line html-div" data-testid="code-cell" data-line-number="826" style="position:relative"> <span class="pl-c"><span class="pl-c">//</span> common - for all asserts</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC827" class="react-file-line html-div" data-testid="code-cell" data-line-number="827" style="position:relative"> <span class="pl-k">const</span> TestCaseData* m_test_case;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC828" class="react-file-line html-div" data-testid="code-cell" data-line-number="828" style="position:relative"> assertType::Enum m_at;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC829" class="react-file-line html-div" data-testid="code-cell" data-line-number="829" style="position:relative"> <span class="pl-k">const</span> <span class="pl-k">char</span>* m_file;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC830" class="react-file-line html-div" data-testid="code-cell" data-line-number="830" style="position:relative"> <span class="pl-k">int</span> m_line;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC831" class="react-file-line html-div" data-testid="code-cell" data-line-number="831" style="position:relative"> <span class="pl-k">const</span> <span class="pl-k">char</span>* m_expr;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC832" class="react-file-line html-div" data-testid="code-cell" data-line-number="832" style="position:relative"> <span class="pl-k">bool</span> m_failed;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC833" class="react-file-line html-div" data-testid="code-cell" data-line-number="833" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC834" class="react-file-line html-div" data-testid="code-cell" data-line-number="834" style="position:relative"> <span class="pl-c"><span class="pl-c">//</span> exception-related - for all asserts</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC835" class="react-file-line html-div" data-testid="code-cell" data-line-number="835" style="position:relative"> <span class="pl-k">bool</span> m_threw;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC836" class="react-file-line html-div" data-testid="code-cell" data-line-number="836" style="position:relative"> String m_exception;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC837" class="react-file-line html-div" data-testid="code-cell" data-line-number="837" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC838" class="react-file-line html-div" data-testid="code-cell" data-line-number="838" style="position:relative"> <span class="pl-c"><span class="pl-c">//</span> for normal asserts</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC839" class="react-file-line html-div" data-testid="code-cell" data-line-number="839" style="position:relative"> String m_decomp;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC840" class="react-file-line html-div" data-testid="code-cell" data-line-number="840" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC841" class="react-file-line html-div" data-testid="code-cell" data-line-number="841" style="position:relative"> <span class="pl-c"><span class="pl-c">//</span> for specific exception-related asserts</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC842" class="react-file-line html-div" data-testid="code-cell" data-line-number="842" style="position:relative"> <span class="pl-k">bool</span> m_threw_as;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC843" class="react-file-line html-div" data-testid="code-cell" data-line-number="843" style="position:relative"> <span class="pl-k">const</span> <span class="pl-k">char</span>* m_exception_type;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC844" class="react-file-line html-div" data-testid="code-cell" data-line-number="844" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC845" class="react-file-line html-div" data-testid="code-cell" data-line-number="845" style="position:relative"> <span class="pl-k">class</span> <span class="pl-en">DOCTEST_INTERFACE</span> StringContains {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC846" class="react-file-line html-div" data-testid="code-cell" data-line-number="846" style="position:relative"> <span class="pl-k">private:</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC847" class="react-file-line html-div" data-testid="code-cell" data-line-number="847" style="position:relative"> Contains content;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC848" class="react-file-line html-div" data-testid="code-cell" data-line-number="848" style="position:relative"> <span class="pl-k">bool</span> isContains;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC849" class="react-file-line html-div" data-testid="code-cell" data-line-number="849" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC850" class="react-file-line html-div" data-testid="code-cell" data-line-number="850" style="position:relative"> <span class="pl-k">public:</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC851" class="react-file-line html-div" data-testid="code-cell" data-line-number="851" style="position:relative"> <span class="pl-en">StringContains</span>(<span class="pl-k">const</span> String&amp; str) : content(str), isContains(<span class="pl-c1">false</span>) { }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC852" class="react-file-line html-div" data-testid="code-cell" data-line-number="852" style="position:relative"> <span class="pl-en">StringContains</span>(Contains cntn) : content(<span class="pl-k">static_cast</span>&lt;Contains&amp;&amp;&gt;(cntn)), isContains(<span class="pl-c1">true</span>) { }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC853" class="react-file-line html-div" data-testid="code-cell" data-line-number="853" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC854" class="react-file-line html-div" data-testid="code-cell" data-line-number="854" style="position:relative"> <span class="pl-k">bool</span> <span class="pl-en">check</span>(<span class="pl-k">const</span> String&amp; str) { <span class="pl-k">return</span> isContains ? (content == str) : (content.<span class="pl-smi">string</span> == str); }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC855" class="react-file-line html-div" data-testid="code-cell" data-line-number="855" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC856" class="react-file-line html-div" data-testid="code-cell" data-line-number="856" style="position:relative"> <span class="pl-k">operator</span> <span class="pl-k">const</span> String&amp;() <span class="pl-k">const</span> { <span class="pl-k">return</span> content.<span class="pl-smi">string</span>; }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC857" class="react-file-line html-div" data-testid="code-cell" data-line-number="857" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC858" class="react-file-line html-div" data-testid="code-cell" data-line-number="858" style="position:relative"> <span class="pl-k">const</span> <span class="pl-k">char</span>* <span class="pl-en">c_str</span>() <span class="pl-k">const</span> { <span class="pl-k">return</span> content.<span class="pl-smi">string</span>.<span class="pl-c1">c_str</span>(); }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC859" class="react-file-line html-div" data-testid="code-cell" data-line-number="859" style="position:relative"> } m_exception_string;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC860" class="react-file-line html-div" data-testid="code-cell" data-line-number="860" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC861" class="react-file-line html-div" data-testid="code-cell" data-line-number="861" style="position:relative"> <span class="pl-en">AssertData</span>(assertType::Enum at, <span class="pl-k">const</span> <span class="pl-k">char</span>* file, <span class="pl-k">int</span> line, <span class="pl-k">const</span> <span class="pl-k">char</span>* expr,</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC862" class="react-file-line html-div" data-testid="code-cell" data-line-number="862" style="position:relative"> <span class="pl-k">const</span> <span class="pl-k">char</span>* exception_type, <span class="pl-k">const</span> StringContains&amp; exception_string);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC863" class="react-file-line html-div" data-testid="code-cell" data-line-number="863" style="position:relative">};</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC864" class="react-file-line html-div" data-testid="code-cell" data-line-number="864" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC865" class="react-file-line html-div" data-testid="code-cell" data-line-number="865" style="position:relative"><span class="pl-k">struct</span> <span class="pl-en">DOCTEST_INTERFACE</span> MessageData</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC866" class="react-file-line html-div" data-testid="code-cell" data-line-number="866" style="position:relative">{</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC867" class="react-file-line html-div" data-testid="code-cell" data-line-number="867" style="position:relative"> String m_string;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC868" class="react-file-line html-div" data-testid="code-cell" data-line-number="868" style="position:relative"> <span class="pl-k">const</span> <span class="pl-k">char</span>* m_file;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC869" class="react-file-line html-div" data-testid="code-cell" data-line-number="869" style="position:relative"> <span class="pl-k">int</span> m_line;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC870" class="react-file-line html-div" data-testid="code-cell" data-line-number="870" style="position:relative"> assertType::Enum m_severity;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC871" class="react-file-line html-div" data-testid="code-cell" data-line-number="871" style="position:relative">};</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC872" class="react-file-line html-div" data-testid="code-cell" data-line-number="872" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC873" class="react-file-line html-div" data-testid="code-cell" data-line-number="873" style="position:relative"><span class="pl-k">struct</span> <span class="pl-en">DOCTEST_INTERFACE</span> SubcaseSignature</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC874" class="react-file-line html-div" data-testid="code-cell" data-line-number="874" style="position:relative">{</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC875" class="react-file-line html-div" data-testid="code-cell" data-line-number="875" style="position:relative"> String m_name;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC876" class="react-file-line html-div" data-testid="code-cell" data-line-number="876" style="position:relative"> <span class="pl-k">const</span> <span class="pl-k">char</span>* m_file;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC877" class="react-file-line html-div" data-testid="code-cell" data-line-number="877" style="position:relative"> <span class="pl-k">int</span> m_line;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC878" class="react-file-line html-div" data-testid="code-cell" data-line-number="878" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC879" class="react-file-line html-div" data-testid="code-cell" data-line-number="879" style="position:relative"> <span class="pl-k">bool</span> <span class="pl-k">operator</span>==(<span class="pl-k">const</span> SubcaseSignature&amp; other) <span class="pl-k">const</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC880" class="react-file-line html-div" data-testid="code-cell" data-line-number="880" style="position:relative"> <span class="pl-k">bool</span> <span class="pl-k">operator</span>&lt;(<span class="pl-k">const</span> SubcaseSignature&amp; other) <span class="pl-k">const</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC881" class="react-file-line html-div" data-testid="code-cell" data-line-number="881" style="position:relative">};</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC882" class="react-file-line html-div" data-testid="code-cell" data-line-number="882" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC883" class="react-file-line html-div" data-testid="code-cell" data-line-number="883" style="position:relative"><span class="pl-k">struct</span> <span class="pl-en">DOCTEST_INTERFACE</span> IContextScope</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC884" class="react-file-line html-div" data-testid="code-cell" data-line-number="884" style="position:relative">{</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC885" class="react-file-line html-div" data-testid="code-cell" data-line-number="885" style="position:relative"> <span class="pl-en">DOCTEST_DECLARE_INTERFACE</span>(IContextScope)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC886" class="react-file-line html-div" data-testid="code-cell" data-line-number="886" style="position:relative"> <span class="pl-k">virtual</span> <span class="pl-k">void</span> <span class="pl-en">stringify</span>(std::ostream*) <span class="pl-k">const</span> = 0;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC887" class="react-file-line html-div" data-testid="code-cell" data-line-number="887" style="position:relative">};</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC888" class="react-file-line html-div" data-testid="code-cell" data-line-number="888" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC889" class="react-file-line html-div" data-testid="code-cell" data-line-number="889" style="position:relative"><span class="pl-k">namespace</span> <span class="pl-en">detail</span> {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC890" class="react-file-line html-div" data-testid="code-cell" data-line-number="890" style="position:relative"> <span class="pl-k">struct</span> <span class="pl-en">DOCTEST_INTERFACE</span> TestCase;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC891" class="react-file-line html-div" data-testid="code-cell" data-line-number="891" style="position:relative">} <span class="pl-c"><span class="pl-c">//</span> namespace detail</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC892" class="react-file-line html-div" data-testid="code-cell" data-line-number="892" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC893" class="react-file-line html-div" data-testid="code-cell" data-line-number="893" style="position:relative"><span class="pl-k">struct</span> <span class="pl-en">ContextOptions</span> <span class="pl-c"><span class="pl-c">//</span>!OCLINT too many fields</span></div></div></div><div class="child-of-line-892 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC894" class="react-file-line html-div" data-testid="code-cell" data-line-number="894" style="position:relative">{</div></div></div><div class="child-of-line-892 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC895" class="react-file-line html-div" data-testid="code-cell" data-line-number="895" style="position:relative"> std::ostream* cout = <span class="pl-c1">nullptr</span>; <span class="pl-c"><span class="pl-c">//</span> stdout stream</span></div></div></div><div class="child-of-line-892 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC896" class="react-file-line html-div" data-testid="code-cell" data-line-number="896" style="position:relative"> String binary_name; <span class="pl-c"><span class="pl-c">//</span> the test binary name</span></div></div></div><div class="child-of-line-892 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC897" class="react-file-line html-div" data-testid="code-cell" data-line-number="897" style="position:relative">
</div></div></div><div class="child-of-line-892 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC898" class="react-file-line html-div" data-testid="code-cell" data-line-number="898" style="position:relative"> <span class="pl-k">const</span> detail::TestCase* currentTest = <span class="pl-c1">nullptr</span>;</div></div></div><div class="child-of-line-892 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC899" class="react-file-line html-div" data-testid="code-cell" data-line-number="899" style="position:relative">
</div></div></div><div class="child-of-line-892 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC900" class="react-file-line html-div" data-testid="code-cell" data-line-number="900" style="position:relative"> <span class="pl-c"><span class="pl-c">//</span> == parameters from the command line</span></div></div></div><div class="child-of-line-892 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC901" class="react-file-line html-div" data-testid="code-cell" data-line-number="901" style="position:relative"> String out; <span class="pl-c"><span class="pl-c">//</span> output filename</span></div></div></div><div class="child-of-line-892 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC902" class="react-file-line html-div" data-testid="code-cell" data-line-number="902" style="position:relative"> String order_by; <span class="pl-c"><span class="pl-c">//</span> how tests should be ordered</span></div></div></div><div class="child-of-line-892 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC903" class="react-file-line html-div" data-testid="code-cell" data-line-number="903" style="position:relative"> <span class="pl-k">unsigned</span> rand_seed; <span class="pl-c"><span class="pl-c">//</span> the seed for rand ordering</span></div></div></div><div class="child-of-line-892 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC904" class="react-file-line html-div" data-testid="code-cell" data-line-number="904" style="position:relative">
</div></div></div><div class="child-of-line-892 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC905" class="react-file-line html-div" data-testid="code-cell" data-line-number="905" style="position:relative"> <span class="pl-k">unsigned</span> first; <span class="pl-c"><span class="pl-c">//</span> the first (matching) test to be executed</span></div></div></div><div class="child-of-line-892 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC906" class="react-file-line html-div" data-testid="code-cell" data-line-number="906" style="position:relative"> <span class="pl-k">unsigned</span> last; <span class="pl-c"><span class="pl-c">//</span> the last (matching) test to be executed</span></div></div></div><div class="child-of-line-892 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC907" class="react-file-line html-div" data-testid="code-cell" data-line-number="907" style="position:relative">
</div></div></div><div class="child-of-line-892 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC908" class="react-file-line html-div" data-testid="code-cell" data-line-number="908" style="position:relative"> <span class="pl-k">int</span> abort_after; <span class="pl-c"><span class="pl-c">//</span> stop tests after this many failed assertions</span></div></div></div><div class="child-of-line-892 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC909" class="react-file-line html-div" data-testid="code-cell" data-line-number="909" style="position:relative"> <span class="pl-k">int</span> subcase_filter_levels; <span class="pl-c"><span class="pl-c">//</span> apply the subcase filters for the first N levels</span></div></div></div><div class="child-of-line-892 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC910" class="react-file-line html-div" data-testid="code-cell" data-line-number="910" style="position:relative">
</div></div></div><div class="child-of-line-892 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC911" class="react-file-line html-div" data-testid="code-cell" data-line-number="911" style="position:relative"> <span class="pl-k">bool</span> success; <span class="pl-c"><span class="pl-c">//</span> include successful assertions in output</span></div></div></div><div class="child-of-line-892 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC912" class="react-file-line html-div" data-testid="code-cell" data-line-number="912" style="position:relative"> <span class="pl-k">bool</span> case_sensitive; <span class="pl-c"><span class="pl-c">//</span> if filtering should be case sensitive</span></div></div></div><div class="child-of-line-892 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC913" class="react-file-line html-div" data-testid="code-cell" data-line-number="913" style="position:relative"> <span class="pl-k">bool</span> exit; <span class="pl-c"><span class="pl-c">//</span> if the program should be exited after the tests are ran/whatever</span></div></div></div><div class="child-of-line-892 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC914" class="react-file-line html-div" data-testid="code-cell" data-line-number="914" style="position:relative"> <span class="pl-k">bool</span> duration; <span class="pl-c"><span class="pl-c">//</span> print the time duration of each test case</span></div></div></div><div class="child-of-line-892 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC915" class="react-file-line html-div" data-testid="code-cell" data-line-number="915" style="position:relative"> <span class="pl-k">bool</span> minimal; <span class="pl-c"><span class="pl-c">//</span> minimal console output (only test failures)</span></div></div></div><div class="child-of-line-892 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC916" class="react-file-line html-div" data-testid="code-cell" data-line-number="916" style="position:relative"> <span class="pl-k">bool</span> quiet; <span class="pl-c"><span class="pl-c">//</span> no console output</span></div></div></div><div class="child-of-line-892 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC917" class="react-file-line html-div" data-testid="code-cell" data-line-number="917" style="position:relative"> <span class="pl-k">bool</span> no_throw; <span class="pl-c"><span class="pl-c">//</span> to skip exceptions-related assertion macros</span></div></div></div><div class="child-of-line-892 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC918" class="react-file-line html-div" data-testid="code-cell" data-line-number="918" style="position:relative"> <span class="pl-k">bool</span> no_exitcode; <span class="pl-c"><span class="pl-c">//</span> if the framework should return 0 as the exitcode</span></div></div></div><div class="child-of-line-892 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC919" class="react-file-line html-div" data-testid="code-cell" data-line-number="919" style="position:relative"> <span class="pl-k">bool</span> no_run; <span class="pl-c"><span class="pl-c">//</span> to not run the tests at all (can be done with an &quot;*&quot; exclude)</span></div></div></div><div class="child-of-line-892 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC920" class="react-file-line html-div" data-testid="code-cell" data-line-number="920" style="position:relative"> <span class="pl-k">bool</span> no_intro; <span class="pl-c"><span class="pl-c">//</span> to not print the intro of the framework</span></div></div></div><div class="child-of-line-892 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC921" class="react-file-line html-div" data-testid="code-cell" data-line-number="921" style="position:relative"> <span class="pl-k">bool</span> no_version; <span class="pl-c"><span class="pl-c">//</span> to not print the version of the framework</span></div></div></div><div class="child-of-line-892 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC922" class="react-file-line html-div" data-testid="code-cell" data-line-number="922" style="position:relative"> <span class="pl-k">bool</span> no_colors; <span class="pl-c"><span class="pl-c">//</span> if output to the console should be colorized</span></div></div></div><div class="child-of-line-892 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC923" class="react-file-line html-div" data-testid="code-cell" data-line-number="923" style="position:relative"> <span class="pl-k">bool</span> force_colors; <span class="pl-c"><span class="pl-c">//</span> forces the use of colors even when a tty cannot be detected</span></div></div></div><div class="child-of-line-892 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC924" class="react-file-line html-div" data-testid="code-cell" data-line-number="924" style="position:relative"> <span class="pl-k">bool</span> no_breaks; <span class="pl-c"><span class="pl-c">//</span> to not break into the debugger</span></div></div></div><div class="child-of-line-892 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC925" class="react-file-line html-div" data-testid="code-cell" data-line-number="925" style="position:relative"> <span class="pl-k">bool</span> no_skip; <span class="pl-c"><span class="pl-c">//</span> don&#039;t skip test cases which are marked to be skipped</span></div></div></div><div class="child-of-line-892 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC926" class="react-file-line html-div" data-testid="code-cell" data-line-number="926" style="position:relative"> <span class="pl-k">bool</span> gnu_file_line; <span class="pl-c"><span class="pl-c">//</span> if line numbers should be surrounded with :x: and not (x):</span></div></div></div><div class="child-of-line-892 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC927" class="react-file-line html-div" data-testid="code-cell" data-line-number="927" style="position:relative"> <span class="pl-k">bool</span> no_path_in_filenames; <span class="pl-c"><span class="pl-c">//</span> if the path to files should be removed from the output</span></div></div></div><div class="child-of-line-892 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC928" class="react-file-line html-div" data-testid="code-cell" data-line-number="928" style="position:relative"> <span class="pl-k">bool</span> no_line_numbers; <span class="pl-c"><span class="pl-c">//</span> if source code line numbers should be omitted from the output</span></div></div></div><div class="child-of-line-892 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC929" class="react-file-line html-div" data-testid="code-cell" data-line-number="929" style="position:relative"> <span class="pl-k">bool</span> no_debug_output; <span class="pl-c"><span class="pl-c">//</span> no output in the debug console when a debugger is attached</span></div></div></div><div class="child-of-line-892 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC930" class="react-file-line html-div" data-testid="code-cell" data-line-number="930" style="position:relative"> <span class="pl-k">bool</span> no_skipped_summary; <span class="pl-c"><span class="pl-c">//</span> don&#039;t print &quot;skipped&quot; in the summary !!! UNDOCUMENTED !!!</span></div></div></div><div class="child-of-line-892 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC931" class="react-file-line html-div" data-testid="code-cell" data-line-number="931" style="position:relative"> <span class="pl-k">bool</span> no_time_in_output; <span class="pl-c"><span class="pl-c">//</span> omit any time/timestamps from output !!! UNDOCUMENTED !!!</span></div></div></div><div class="child-of-line-892 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC932" class="react-file-line html-div" data-testid="code-cell" data-line-number="932" style="position:relative">
</div></div></div><div class="child-of-line-892 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC933" class="react-file-line html-div" data-testid="code-cell" data-line-number="933" style="position:relative"> <span class="pl-k">bool</span> help; <span class="pl-c"><span class="pl-c">//</span> to print the help</span></div></div></div><div class="child-of-line-892 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC934" class="react-file-line html-div" data-testid="code-cell" data-line-number="934" style="position:relative"> <span class="pl-k">bool</span> version; <span class="pl-c"><span class="pl-c">//</span> to print the version</span></div></div></div><div class="child-of-line-892 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC935" class="react-file-line html-div" data-testid="code-cell" data-line-number="935" style="position:relative"> <span class="pl-k">bool</span> count; <span class="pl-c"><span class="pl-c">//</span> if only the count of matching tests is to be retrieved</span></div></div></div><div class="child-of-line-892 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC936" class="react-file-line html-div" data-testid="code-cell" data-line-number="936" style="position:relative"> <span class="pl-k">bool</span> list_test_cases; <span class="pl-c"><span class="pl-c">//</span> to list all tests matching the filters</span></div></div></div><div class="child-of-line-892 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC937" class="react-file-line html-div" data-testid="code-cell" data-line-number="937" style="position:relative"> <span class="pl-k">bool</span> list_test_suites; <span class="pl-c"><span class="pl-c">//</span> to list all suites matching the filters</span></div></div></div><div class="child-of-line-892 react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC938" class="react-file-line html-div" data-testid="code-cell" data-line-number="938" style="position:relative"> <span class="pl-k">bool</span> list_reporters; <span class="pl-c"><span class="pl-c">//</span> lists all registered reporters</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC939" class="react-file-line html-div" data-testid="code-cell" data-line-number="939" style="position:relative">};</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC940" class="react-file-line html-div" data-testid="code-cell" data-line-number="940" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC941" class="react-file-line html-div" data-testid="code-cell" data-line-number="941" style="position:relative"><span class="pl-k">namespace</span> <span class="pl-en">detail</span> {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC942" class="react-file-line html-div" data-testid="code-cell" data-line-number="942" style="position:relative"> <span class="pl-k">namespace</span> <span class="pl-en">types</span> {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC943" class="react-file-line html-div" data-testid="code-cell" data-line-number="943" style="position:relative">#<span class="pl-k">ifdef</span> DOCTEST_CONFIG_INCLUDE_TYPE_TRAITS</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC944" class="react-file-line html-div" data-testid="code-cell" data-line-number="944" style="position:relative"> <span class="pl-k">using</span> <span class="pl-k">namespace</span> <span class="pl-en">std</span><span class="pl-k">;</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC945" class="react-file-line html-div" data-testid="code-cell" data-line-number="945" style="position:relative">#<span class="pl-k">else</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC946" class="react-file-line html-div" data-testid="code-cell" data-line-number="946" style="position:relative"> <span class="pl-k">template </span>&lt;<span class="pl-k">bool</span> COND, <span class="pl-k">typename</span> T = <span class="pl-k">void</span>&gt;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC947" class="react-file-line html-div" data-testid="code-cell" data-line-number="947" style="position:relative"> <span class="pl-k">struct</span> <span class="pl-en">enable_if</span> { };</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC948" class="react-file-line html-div" data-testid="code-cell" data-line-number="948" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC949" class="react-file-line html-div" data-testid="code-cell" data-line-number="949" style="position:relative"> <span class="pl-k">template </span>&lt;<span class="pl-k">typename</span> T&gt;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC950" class="react-file-line html-div" data-testid="code-cell" data-line-number="950" style="position:relative"> <span class="pl-k">struct</span> <span class="pl-en">enable_if</span>&lt;<span class="pl-c1">true</span>, T&gt; { <span class="pl-k">using</span> type = T; };</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC951" class="react-file-line html-div" data-testid="code-cell" data-line-number="951" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC952" class="react-file-line html-div" data-testid="code-cell" data-line-number="952" style="position:relative"> <span class="pl-k">struct</span> <span class="pl-en">true_type</span> { <span class="pl-k">static</span> DOCTEST_CONSTEXPR <span class="pl-k">bool</span> value = <span class="pl-c1">true</span>; };</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC953" class="react-file-line html-div" data-testid="code-cell" data-line-number="953" style="position:relative"> <span class="pl-k">struct</span> <span class="pl-en">false_type</span> { <span class="pl-k">static</span> DOCTEST_CONSTEXPR <span class="pl-k">bool</span> value = <span class="pl-c1">false</span>; };</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC954" class="react-file-line html-div" data-testid="code-cell" data-line-number="954" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC955" class="react-file-line html-div" data-testid="code-cell" data-line-number="955" style="position:relative"> <span class="pl-k">template </span>&lt;<span class="pl-k">typename</span> T&gt; <span class="pl-k">struct</span> <span class="pl-en">remove_reference</span> { <span class="pl-k">using</span> type = T; };</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC956" class="react-file-line html-div" data-testid="code-cell" data-line-number="956" style="position:relative"> <span class="pl-k">template </span>&lt;<span class="pl-k">typename</span> T&gt; <span class="pl-k">struct</span> <span class="pl-en">remove_reference</span>&lt;T&amp;&gt; { <span class="pl-k">using</span> type = T; };</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC957" class="react-file-line html-div" data-testid="code-cell" data-line-number="957" style="position:relative"> <span class="pl-k">template </span>&lt;<span class="pl-k">typename</span> T&gt; <span class="pl-k">struct</span> <span class="pl-en">remove_reference</span>&lt;T&amp;&amp;&gt; { <span class="pl-k">using</span> type = T; };</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC958" class="react-file-line html-div" data-testid="code-cell" data-line-number="958" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC959" class="react-file-line html-div" data-testid="code-cell" data-line-number="959" style="position:relative"> <span class="pl-k">template </span>&lt;<span class="pl-k">typename</span> T&gt; <span class="pl-k">struct</span> <span class="pl-en">is_rvalue_reference</span> : false_type { };</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC960" class="react-file-line html-div" data-testid="code-cell" data-line-number="960" style="position:relative"> <span class="pl-k">template </span>&lt;<span class="pl-k">typename</span> T&gt; <span class="pl-k">struct</span> <span class="pl-en">is_rvalue_reference</span>&lt;T&amp;&amp;&gt; : true_type { };</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC961" class="react-file-line html-div" data-testid="code-cell" data-line-number="961" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC962" class="react-file-line html-div" data-testid="code-cell" data-line-number="962" style="position:relative"> <span class="pl-k">template</span>&lt;<span class="pl-k">typename</span> T&gt; <span class="pl-k">struct</span> <span class="pl-en">remove_const</span> { <span class="pl-k">using</span> type = T; };</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC963" class="react-file-line html-div" data-testid="code-cell" data-line-number="963" style="position:relative"> <span class="pl-k">template </span>&lt;<span class="pl-k">typename</span> T&gt; <span class="pl-k">struct</span> <span class="pl-en">remove_const</span>&lt;<span class="pl-k">const</span> T&gt; { <span class="pl-k">using</span> type = T; };</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC964" class="react-file-line html-div" data-testid="code-cell" data-line-number="964" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC965" class="react-file-line html-div" data-testid="code-cell" data-line-number="965" style="position:relative"> <span class="pl-c"><span class="pl-c">//</span> Compiler intrinsics</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC966" class="react-file-line html-div" data-testid="code-cell" data-line-number="966" style="position:relative"> <span class="pl-k">template </span>&lt;<span class="pl-k">typename</span> T&gt; <span class="pl-k">struct</span> <span class="pl-en">is_enum</span> { <span class="pl-k">static</span> DOCTEST_CONSTEXPR <span class="pl-k">bool</span> value = __is_enum(T); };</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC967" class="react-file-line html-div" data-testid="code-cell" data-line-number="967" style="position:relative"> <span class="pl-k">template </span>&lt;<span class="pl-k">typename</span> T&gt; <span class="pl-k">struct</span> <span class="pl-en">underlying_type</span> { <span class="pl-k">using</span> type = __underlying_type(T); };</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC968" class="react-file-line html-div" data-testid="code-cell" data-line-number="968" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC969" class="react-file-line html-div" data-testid="code-cell" data-line-number="969" style="position:relative"> <span class="pl-k">template </span>&lt;<span class="pl-k">typename</span> T&gt; <span class="pl-k">struct</span> <span class="pl-en">is_pointer</span> : false_type { };</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC970" class="react-file-line html-div" data-testid="code-cell" data-line-number="970" style="position:relative"> <span class="pl-k">template </span>&lt;<span class="pl-k">typename</span> T&gt; <span class="pl-k">struct</span> <span class="pl-en">is_pointer</span>&lt;T*&gt; : true_type { };</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC971" class="react-file-line html-div" data-testid="code-cell" data-line-number="971" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC972" class="react-file-line html-div" data-testid="code-cell" data-line-number="972" style="position:relative"> <span class="pl-k">template </span>&lt;<span class="pl-k">typename</span> T&gt; <span class="pl-k">struct</span> <span class="pl-en">is_array</span> : false_type { };</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC973" class="react-file-line html-div" data-testid="code-cell" data-line-number="973" style="position:relative"> <span class="pl-c"><span class="pl-c">//</span> NOLINTNEXTLINE(*-avoid-c-arrays)</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC974" class="react-file-line html-div" data-testid="code-cell" data-line-number="974" style="position:relative"> <span class="pl-k">template </span>&lt;<span class="pl-k">typename</span> T, <span class="pl-c1">size_t</span> SIZE&gt; <span class="pl-k">struct</span> <span class="pl-en">is_array</span>&lt;T[SIZE]&gt; : true_type { };</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC975" class="react-file-line html-div" data-testid="code-cell" data-line-number="975" style="position:relative">#<span class="pl-k">endif</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC976" class="react-file-line html-div" data-testid="code-cell" data-line-number="976" style="position:relative"> }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC977" class="react-file-line html-div" data-testid="code-cell" data-line-number="977" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC978" class="react-file-line html-div" data-testid="code-cell" data-line-number="978" style="position:relative"> <span class="pl-c"><span class="pl-c">//</span> &lt;utility&gt;</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC979" class="react-file-line html-div" data-testid="code-cell" data-line-number="979" style="position:relative"> <span class="pl-k">template </span>&lt;<span class="pl-k">typename</span> T&gt;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC980" class="react-file-line html-div" data-testid="code-cell" data-line-number="980" style="position:relative"> T&amp;&amp; declval();</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC981" class="react-file-line html-div" data-testid="code-cell" data-line-number="981" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC982" class="react-file-line html-div" data-testid="code-cell" data-line-number="982" style="position:relative"> <span class="pl-k">template </span>&lt;<span class="pl-k">class</span> <span class="pl-en">T</span>&gt;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC983" class="react-file-line html-div" data-testid="code-cell" data-line-number="983" style="position:relative"> DOCTEST_CONSTEXPR_FUNC T&amp;&amp; forward(<span class="pl-k">typename</span> types::remove_reference&lt;T&gt;::type&amp; t) DOCTEST_NOEXCEPT {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC984" class="react-file-line html-div" data-testid="code-cell" data-line-number="984" style="position:relative"> <span class="pl-k">return</span> <span class="pl-k">static_cast</span>&lt;T&amp;&amp;&gt;(t);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC985" class="react-file-line html-div" data-testid="code-cell" data-line-number="985" style="position:relative"> }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC986" class="react-file-line html-div" data-testid="code-cell" data-line-number="986" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC987" class="react-file-line html-div" data-testid="code-cell" data-line-number="987" style="position:relative"> <span class="pl-k">template </span>&lt;<span class="pl-k">class</span> <span class="pl-en">T</span>&gt;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC988" class="react-file-line html-div" data-testid="code-cell" data-line-number="988" style="position:relative"> DOCTEST_CONSTEXPR_FUNC T&amp;&amp; forward(<span class="pl-k">typename</span> types::remove_reference&lt;T&gt;::type&amp;&amp; t) DOCTEST_NOEXCEPT {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC989" class="react-file-line html-div" data-testid="code-cell" data-line-number="989" style="position:relative"> <span class="pl-k">return</span> <span class="pl-k">static_cast</span>&lt;T&amp;&amp;&gt;(t);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC990" class="react-file-line html-div" data-testid="code-cell" data-line-number="990" style="position:relative"> }</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC991" class="react-file-line html-div" data-testid="code-cell" data-line-number="991" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC992" class="react-file-line html-div" data-testid="code-cell" data-line-number="992" style="position:relative"> <span class="pl-k">template </span>&lt;<span class="pl-k">typename</span> T&gt;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC993" class="react-file-line html-div" data-testid="code-cell" data-line-number="993" style="position:relative"> <span class="pl-k">struct</span> <span class="pl-en">deferred_false</span> : types::false_type { };</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC994" class="react-file-line html-div" data-testid="code-cell" data-line-number="994" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC995" class="react-file-line html-div" data-testid="code-cell" data-line-number="995" style="position:relative"><span class="pl-c"><span class="pl-c">//</span> MSVS 2015 :(</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC996" class="react-file-line html-div" data-testid="code-cell" data-line-number="996" style="position:relative">#<span class="pl-k">if</span> !DOCTEST_CLANG &amp;&amp; defined(_MSC_VER) &amp;&amp; _MSC_VER &lt;= 1900</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC997" class="react-file-line html-div" data-testid="code-cell" data-line-number="997" style="position:relative"> <span class="pl-k">template </span>&lt;<span class="pl-k">typename</span> T, <span class="pl-k">typename</span> = <span class="pl-k">void</span>&gt;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC998" class="react-file-line html-div" data-testid="code-cell" data-line-number="998" style="position:relative"> <span class="pl-k">struct</span> <span class="pl-en">has_global_insertion_operator</span> : types::false_type { };</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC999" class="react-file-line html-div" data-testid="code-cell" data-line-number="999" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC1000" class="react-file-line html-div" data-testid="code-cell" data-line-number="1000" style="position:relative"> <span class="pl-k">template </span>&lt;<span class="pl-k">typename</span> T&gt;</div></div></div></div></div><div class="Box-sc-g0xbh4-0 gkZUDI"><a class="prc-Link-Link-85e08" href="https://github.com/doctest/doctest/raw/refs/heads/master/doctest/doctest.h">View remainder of file in raw view</a></div></div><div id="copilot-button-container"></div></div><div id="highlighted-line-menu-container"></div></div></div><button hidden="" data-testid="hotkey-button" data-hotkey-scope="read-only-cursor-text-area"></button><button hidden=""></button></section></div></div></div> <!-- --> <!-- --> </div></div></div><div class="Box-sc-g0xbh4-0"></div></div></div></div></div><div id="find-result-marks-container" class="Box-sc-g0xbh4-0 cCoXib"></div><button hidden="" data-testid="" data-hotkey-scope="read-only-cursor-text-area"></button><button hidden=""></button></div> <!-- --> <!-- --> <script type="application/json" id="__PRIMER_DATA_:R0:__">{"resolvedServerColorMode":"day"}</script></div>
</react-app>
</turbo-frame>
</div>
</turbo-frame>
</main>
</div>
</div>
<footer class="footer pt-8 pb-6 f6 color-fg-muted p-responsive" role="contentinfo" >
<h2 class='sr-only'>Footer</h2>
<div class="d-flex flex-justify-center flex-items-center flex-column-reverse flex-lg-row flex-wrap flex-lg-nowrap">
<div class="d-flex flex-items-center flex-shrink-0 mx-2">
<a aria-label="Homepage" title="GitHub" class="footer-octicon mr-2" href="https://github.com">
<svg aria-hidden="true" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-mark-github">
<path d="M12 1C5.9225 1 1 5.9225 1 12C1 16.8675 4.14875 20.9787 8.52125 22.4362C9.07125 22.5325 9.2775 22.2025 9.2775 21.9137C9.2775 21.6525 9.26375 20.7862 9.26375 19.865C6.5 20.3737 5.785 19.1912 5.565 18.5725C5.44125 18.2562 4.905 17.28 4.4375 17.0187C4.0525 16.8125 3.5025 16.3037 4.42375 16.29C5.29 16.2762 5.90875 17.0875 6.115 17.4175C7.105 19.0812 8.68625 18.6137 9.31875 18.325C9.415 17.61 9.70375 17.1287 10.02 16.8537C7.5725 16.5787 5.015 15.63 5.015 11.4225C5.015 10.2262 5.44125 9.23625 6.1425 8.46625C6.0325 8.19125 5.6475 7.06375 6.2525 5.55125C6.2525 5.55125 7.17375 5.2625 9.2775 6.67875C10.1575 6.43125 11.0925 6.3075 12.0275 6.3075C12.9625 6.3075 13.8975 6.43125 14.7775 6.67875C16.8813 5.24875 17.8025 5.55125 17.8025 5.55125C18.4075 7.06375 18.0225 8.19125 17.9125 8.46625C18.6138 9.23625 19.04 10.2125 19.04 11.4225C19.04 15.6437 16.4688 16.5787 14.0213 16.8537C14.42 17.1975 14.7638 17.8575 14.7638 18.8887C14.7638 20.36 14.75 21.5425 14.75 21.9137C14.75 22.2025 14.9563 22.5462 15.5063 22.4362C19.8513 20.9787 23 16.8537 23 12C23 5.9225 18.0775 1 12 1Z"></path>
</svg>
</a>
<span>
&copy; 2025 GitHub,&nbsp;Inc.
</span>
</div>
<nav aria-label="Footer">
<h3 class="sr-only" id="sr-footer-heading">Footer navigation</h3>
<ul class="list-style-none d-flex flex-justify-center flex-wrap mb-2 mb-lg-0" aria-labelledby="sr-footer-heading">
<li class="mx-2">
<a data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to Terms&quot;,&quot;label&quot;:&quot;text:terms&quot;}" href="https://docs.github.com/site-policy/github-terms/github-terms-of-service" data-view-component="true" class="Link--secondary Link">Terms</a>
</li>
<li class="mx-2">
<a data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to privacy&quot;,&quot;label&quot;:&quot;text:privacy&quot;}" href="https://docs.github.com/site-policy/privacy-policies/github-privacy-statement" data-view-component="true" class="Link--secondary Link">Privacy</a>
</li>
<li class="mx-2">
<a data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to security&quot;,&quot;label&quot;:&quot;text:security&quot;}" href="https://github.com/security" data-view-component="true" class="Link--secondary Link">Security</a>
</li>
<li class="mx-2">
<a data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to status&quot;,&quot;label&quot;:&quot;text:status&quot;}" href="https://www.githubstatus.com/" data-view-component="true" class="Link--secondary Link">Status</a>
</li>
<li class="mx-2">
<a data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to docs&quot;,&quot;label&quot;:&quot;text:docs&quot;}" href="https://docs.github.com/" data-view-component="true" class="Link--secondary Link">Docs</a>
</li>
<li class="mx-2">
<a data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to contact&quot;,&quot;label&quot;:&quot;text:contact&quot;}" href="https://support.github.com?tags=dotcom-footer" data-view-component="true" class="Link--secondary Link">Contact</a>
</li>
<li class="mx-2" >
<cookie-consent-link>
<button
type="button"
class="Link--secondary underline-on-hover border-0 p-0 color-bg-transparent"
data-action="click:cookie-consent-link#showConsentManagement"
data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;cookies&quot;,&quot;context&quot;:&quot;subfooter&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;cookies_link_subfooter_footer&quot;}"
>
Manage cookies
</button>
</cookie-consent-link>
</li>
<li class="mx-2">
<cookie-consent-link>
<button
type="button"
class="Link--secondary underline-on-hover border-0 p-0 color-bg-transparent"
data-action="click:cookie-consent-link#showConsentManagement"
data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;dont_share_info&quot;,&quot;context&quot;:&quot;subfooter&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;dont_share_info_link_subfooter_footer&quot;}"
>
Do not share my personal information
</button>
</cookie-consent-link>
</li>
</ul>
</nav>
</div>
</footer>
<ghcc-consent id="ghcc" class="position-fixed bottom-0 left-0" style="z-index: 999999" data-initial-cookie-consent-allowed="" data-cookie-consent-required="false"></ghcc-consent>
<div id="ajax-error-message" class="ajax-error-message flash flash-error" hidden>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert">
<path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path>
</svg>
<button type="button" class="flash-close js-ajax-error-dismiss" aria-label="Dismiss error">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x">
<path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path>
</svg>
</button>
You cant perform that action at this time.
</div>
<template id="site-details-dialog">
<details class="details-reset details-overlay details-overlay-dark lh-default color-fg-default hx_rsm" open>
<summary role="button" aria-label="Close dialog"></summary>
<details-dialog class="Box Box--overlay d-flex flex-column anim-fade-in fast hx_rsm-dialog hx_rsm-modal">
<button class="Box-btn-octicon m-0 btn-octicon position-absolute right-0 top-0" type="button" aria-label="Close dialog" data-close-dialog>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x">
<path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path>
</svg>
</button>
<div class="octocat-spinner my-6 js-details-dialog-spinner"></div>
</details-dialog>
</details>
</template>
<div class="Popover js-hovercard-content position-absolute" style="display: none; outline: none;">
<div class="Popover-message Popover-message--bottom-left Popover-message--large Box color-shadow-large" style="width:360px;">
</div>
</div>
<template id="snippet-clipboard-copy-button">
<div class="zeroclipboard-container position-absolute right-0 top-0">
<clipboard-copy aria-label="Copy" class="ClipboardButton btn js-clipboard-copy m-2 p-0" data-copy-feedback="Copied!" data-tooltip-direction="w">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-copy js-clipboard-copy-icon m-2">
<path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check js-clipboard-check-icon color-fg-success d-none m-2">
<path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path>
</svg>
</clipboard-copy>
</div>
</template>
<template id="snippet-clipboard-copy-button-unpositioned">
<div class="zeroclipboard-container">
<clipboard-copy aria-label="Copy" class="ClipboardButton btn btn-invisible js-clipboard-copy m-2 p-0 d-flex flex-justify-center flex-items-center" data-copy-feedback="Copied!" data-tooltip-direction="w">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-copy js-clipboard-copy-icon">
<path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path>
</svg>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check js-clipboard-check-icon color-fg-success d-none">
<path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path>
</svg>
</clipboard-copy>
</div>
</template>
</div>
<div id="js-global-screen-reader-notice" class="sr-only mt-n1" aria-live="polite" aria-atomic="true" ></div>
<div id="js-global-screen-reader-notice-assertive" class="sr-only mt-n1" aria-live="assertive" aria-atomic="true"></div>
</body>
</html>