



  

<!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">

<script type="importmap">{"imports":{"react":"https://github.githubassets.com/assets/react-e27d1b3e03961e68.js","react-dom":"https://github.githubassets.com/assets/react-dom-e5fd46a22d5c4058.js","react-dom/client":"https://github.githubassets.com/assets/react-dom-client-1b4a3ee065998cea.js","react-is":"https://github.githubassets.com/assets/react-is-e0b593954b4706d8.js","react-reconciler":"https://github.githubassets.com/assets/react-reconciler-8e99e505c4429605.js","react/compiler-runtime":"https://github.githubassets.com/assets/react-compiler-runtime-4610bd6d3de9c049.js","react/jsx-dev-runtime":"https://github.githubassets.com/assets/react-jsx-dev-runtime-ea55d68667d559e5.js","react/jsx-runtime":"https://github.githubassets.com/assets/react-jsx-runtime-4915cb0f5b3aff04.js","scheduler":"https://github.githubassets.com/assets/scheduler-58b860b049ca307c.js"}}</script>
<meta name="react-profiling" content="0" data-turbo-transient="true" />
<meta name="react-import-map" content="react,react-dom,react-dom/client,react-dom/profiling,react-is,react-reconciler,react/compiler-runtime,react/jsx-dev-runtime,react/jsx-runtime,scheduler@777f63f87cd0" data-turbo-track="reload" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/react-e27d1b3e03961e68.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/react-compiler-runtime-4610bd6d3de9c049.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/scheduler-58b860b049ca307c.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/react-dom-e5fd46a22d5c4058.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/react-dom-client-1b4a3ee065998cea.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/react-is-e0b593954b4706d8.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/react-jsx-runtime-4915cb0f5b3aff04.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/react-reconciler-8e99e505c4429605.js" />

  


  <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/light-99f877e9ddfc0e51.css" /><link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/light_high_contrast-48fdd0811afbab3c.css" /><link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/dark-79ad2ace604703b3.css" /><link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/dark_high_contrast-24484a076f02295f.css" /><link data-color-theme="light" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light-99f877e9ddfc0e51.css" /><link data-color-theme="light_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_high_contrast-48fdd0811afbab3c.css" /><link data-color-theme="light_colorblind" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_colorblind-f4bf1142976e4bbf.css" /><link data-color-theme="light_colorblind_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_colorblind_high_contrast-f661b49995ba0bd8.css" /><link data-color-theme="light_tritanopia" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_tritanopia-0b38d22346321c92.css" /><link data-color-theme="light_tritanopia_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_tritanopia_high_contrast-f1c62c9e70259b9f.css" /><link data-color-theme="dark" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark-79ad2ace604703b3.css" /><link data-color-theme="dark_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_high_contrast-24484a076f02295f.css" /><link data-color-theme="dark_colorblind" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_colorblind-f50cacf0a86b9929.css" /><link data-color-theme="dark_colorblind_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_colorblind_high_contrast-e61d4f4ca17852c2.css" /><link data-color-theme="dark_tritanopia" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_tritanopia-39c10993d5603fac.css" /><link data-color-theme="dark_tritanopia_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_tritanopia_high_contrast-73236c840c0c7d90.css" /><link data-color-theme="dark_dimmed" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_dimmed-0de76f07cc035b10.css" /><link data-color-theme="dark_dimmed_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_dimmed_high_contrast-fd1500c8744e40d6.css" />

  <style type="text/css">
    :root {
      --tab-size-preference: 4;
    }

    pre, code {
      tab-size: var(--tab-size-preference);
    }
  </style>

    <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-primitives-ed9ca172356fd545.css" />
    <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-1d2c7f7b52a6068b.css" />
    <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/global-54ba76e934a49d7c.css" />
    <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/github-456bd5deb85c7ecd.css" />
  <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/repository-11ee8a031c040c1a.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/code-2d56bdb0166c0238.css" />

  

  <script type="application/json" id="client-env">{"locale":"en","featureFlags":["actions_enable_background_steps","actions_new_hosted_runner_image_select_sizes_and_versions","activity_diff_file_tree","activity_repos_file_tree","activity_repos_overview_header","activity_repos_overview_sidebar","agent_author_search_expansion","agent_author_search_expansion_ui_pulls","alternate_user_config_repo","async_conversion_coverage_enabled","billing_billable_licenses_cost_center_bucket_fix","billing_budget_expiration","billing_cost_center_list_assigned_resources","billing_discount_threshold_notification","code_quality_enablement_banner_targeting","code_quality_remove_preview","code_view_raf_sticky_lines","codespaces_prebuild_region_target_update","coding_agent_third_party_model_ui","copilot_agent_snippy","copilot_api_agentic_issue_marshal_yaml","copilot_automation_repo_mcp_servers","copilot_automations_pagination","copilot_chat_auto_mode_v2","copilot_chat_clear_model_selection_for_default_change","copilot_chat_header_reorder","copilot_chat_max_upsell","copilot_chat_models_browser_cache","copilot_chat_vision_dotcom_chat_ga_gate","copilot_css_textarea_autosize","copilot_custom_copilots","copilot_custom_copilots_feature_preview","copilot_duplicate_thread","copilot_extensions_removal_on_marketplace","copilot_fix_failed_workflows_all_skus","copilot_hide_hovercard","copilot_immersive_embedded_header_button","copilot_immersive_file_preview_keep_mounted","copilot_immersive_task_hyperlinking","copilot_mc_cli_resume_any_users_task","copilot_mission_control_agent_merge_fix_ci","copilot_mission_control_agent_merge_resolve_conflicts","copilot_mission_control_early_stop","copilot_mission_control_environment_list_icons","copilot_mission_control_managed_sandbox_environments","copilot_mission_control_needs_attention","copilot_mission_control_reasoning_effort","copilot_mission_control_sandbox_client_side_clone","copilot_mission_control_sandbox_remote_bypass","copilot_mission_control_session_filters","copilot_mission_control_task_alive_updates","copilot_mission_control_task_sharing","copilot_org_policy_page_focus_mode","copilot_share_active_subthread","copilot_spaces_ga","copilot_spaces_individual_policies_ga","copilot_spark_handle_nil_friendly_name","copilot_swe_agent_authorization_status_ui","copilot_swe_agent_automation_resource_scoped_writes","copilot_swe_agent_hide_model_picker_if_only_auto","copilot_swe_agent_issue_comment_trigger","copilot_swe_agent_pr_comment_model_picker","copilot_swe_agent_pull_request_comment_trigger","copilot_swe_agent_pull_request_merged_trigger","copilot_swe_agent_pull_request_opened_trigger","copilot_swe_agent_pull_request_synchronize_trigger","copilot_swe_agent_use_subagents","copilot_task_api_github_rest_style","copilot_task_scoped_alive_channel","copilot_token_based_billing","copilot_unconfigured_is_inherited","copilot_user_can_upgrade_plan_field","copilot_workbench_sunset","copilot_workbench_sunset_redirect","copilot_workbench_ubb","dashboard_indexeddb_caching","dashboard_lists_max_age_filter","dashboard_universe_2025_feedback_dialog","glc_code_quality_repo_settings_workflow_config","hide_github_models_ui","hyperspace_2025_logged_out_batch_1","hyperspace_2025_logged_out_batch_2","hyperspace_2025_logged_out_batch_3","in_product_messaging_datadog_monitoring","ipm_global_transactional_message_copilot","ipm_global_transactional_message_issues","ipm_global_transactional_message_prs","ipm_global_transactional_message_repos","ipm_global_transactional_message_spaces","ipm_ubb_individual_budget_banner","issue_fields_multi_select","issue_inline_avatars","issue_pinned_views","issue_pinned_views_optimistic_updates","issue_relative_time_micro","issues_dashboard_sso_structured_errors","issues_expanded_file_types","issues_hide_closed_sub_issues","issues_lazy_load_comment_box_suggestions","issues_optimistic_linked_branch_create","issues_react_chrome_container_query_fix","labels_archiving","labels_archiving_info","landing_pages_ninetailed","lifecycle_label_name_updates","marketing_cookie_consent_banner","marketing_pages_search_explore_provider","memex_client_env_github_domain","memex_default_issue_create_repository","memex_lazy_hydrate_agent_tasks","memex_live_update_hovercard","memex_mwl_filter_field_delimiter","memex_remove_deprecated_type_issue","merge_queue_restricted_pushers_warning","merge_status_checks_refetch_dedupe","merge_status_header_feedback","oauth_authorize_clickjacking_protection","octocaptcha_origin_optimization","primer_react_css_anchor_positioning","primer_react_merged_forwarded_refs","prs_copilot_app_open_action","prs_css_anchor_positioning","pull_request_commit_checks_dialog","pull_request_copilot_attribution_header","pull_request_overview_panel_edit_description","pull_request_persister","pull_request_stacks_feedback_dialog","pull_request_virtualization_image_estimate","pull_request_virtualization_scroll_compensation","pull_request_virtualization_scroll_intent","quick_search_lazy_suggestions","react_blob_isolate_code_lines","react_blob_ssr_content_visibility","react_data_router_tanstack_allowed","react_query_props_with_key","react_sandbox_future_tanstack","repo_app_turbo","repo_issues_sidebar_layout","repo_pulls_dashboard_persistence","repo_pulls_dashboard_sidebar_links","repos_contributors_limited_default_range","review_involves_filter","rule_ignored_file_paths","rulesets_actor_list_editor","sample_network_conn_type","security_center_artifact_filters_popover","see_who_reacted","semantic_similarity_duplicate_issue_detection","session_logs_ungroup_reasoning_text","set_sha256_on_repo_creation_form","site_banner_desktop_copilot_app","site_ghca_pixel_mona","site_github_app_ga_page","site_github_app_ga_page_highlight","site_github_app_mobile_native_share","site_global_banner_dev_days_attendee","site_global_banner_learn_copilot_sdk","site_global_nav_spark_models_removed","spark_prompt_secret_scanning","spark_server_connection_status","suggest_custom_property_values_copilot","suppress_automated_browser_vitals","swp_forms_disable_octocaptcha","thread_resolution_reason","ui_service_compute_proxy_control","ui_service_referrer_metrics","ui_service_staleness_detection","update_issue_suggestions","user_code_paste_ux","viewscreen_sandbox","warn_inaccessible_attachments","webp_support","workbench_store_readonly","workstream_plugin_bootstrap"],"githubDomain":"https://github.com","copilotApiOverrideUrl":"https://api.githubcopilot.com","cmcApiUrl":"https://api.github.com/cmc_internal/api"}</script>
<script crossorigin="anonymous" type="module" src="https://github.githubassets.com/assets/high-contrast-cookie-e3d808ee18eb9784.js"></script>
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/wp-runtime-d0e712808f201ef1.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/app-foundation-74e9766bd696d26a.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/app-runtime-ecf766ea8a2c7fd6.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/fetch-utilities-8e3d9c5d57d50312.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/ser-cd1b421ad0ad7ed5.js" />
<script crossorigin="anonymous" type="module" src="https://github.githubassets.com/assets/environment-61cbdbc14ca92159.js" defer="defer"></script>
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/app-runtime.b6099d51b9e67b57.module.css" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/catalyst-86a8f5de995615f8.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/selector-observer-e88088f989b27670.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/relative-time-element-7cdf4e0db98b997c.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/by-6b3c07383371bf58.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/ja9-36f036c13c2e3a4c.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/kw-866fd9513ae95106.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/r1-b075aab3204f32f9.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/jz5-7c5d1669717041f8.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/hj-5126390ff433704d.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/j05-dce4d588268f0f7e.js" />
<script crossorigin="anonymous" type="module" src="https://github.githubassets.com/assets/github-elements-1adb1d8c74044da9.js" defer="defer"></script>
<script crossorigin="anonymous" type="module" src="https://github.githubassets.com/assets/element-registry-1a7659d5cb4f8269.js" defer="defer"></script>
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/runtime-helpers-f3f5d71440009c48.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/aria-live-76b18916d0c8ec4d.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/hotkey-5109c77d7ac61078.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/react-core-fbb00aaa3ab9abdf.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/04n-51c49ba758739f13.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/ur-024971cb63acad59.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/4t-364e19c63d726e9a.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/6ny-c969fbae697a356f.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/yhq-3a209035a30b1a09.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/z1v-da5b33b877bfa358.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/wo-09f85d22a6c8931b.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/9y-81cfe57dc9040f3e.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/j0-41a4cf04cbd99503.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/0p-81491ed0d9d666e2.js" />
<script crossorigin="anonymous" type="module" src="https://github.githubassets.com/assets/behaviors-acc18f300bdd5b9f.js" defer="defer"></script>
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/react-core.5858534b1c27f133.module.css" />
<script crossorigin="anonymous" type="module" src="https://github.githubassets.com/assets/code-menu-f832f583b1c927a9.js" defer="defer"></script>
  
  <link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/primer-react-12ebdc24dcff1ecc.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/ncx-9a860680a5f230b9.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/j6-363f0ebf4f62f310.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/t7l-bf6f21d7e7a43c35.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/fe-7576d9b281e2106a.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/wsr-5fd3071e5a9061ab.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/0n-ecadb2ffe6b01ba2.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/xv-51cb34754bda73a9.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/n4u-6317ce1c31aed1db.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/j8s-d90ce3a169b741ed.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/la-de176c4ee471f2b3.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/eag-d9eea130fa716df9.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/y2-87df441f1bc5a264.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/kcz-607e36c8a3751cf0.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/x4-65dba777efd828f3.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/gzu-1a09248f686325f6.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/bi0-e2f78de823e39ca9.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/on-95be29ba1ef725d9.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/b1-1dbc371cef78c3c1.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/0l5-c4edb8ab48c5846d.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/c2z-c92998400310b94b.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/f9-038758dcbfe08dab.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/0k-b7df0a74912a42bf.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/sp-915c6643cc0d7d44.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/og-93ae8b358505d372.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/b9-69d9b60a1b1fcd59.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/ec-8ea7978d3fcd114e.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/du-a401e69a37d95bcc.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/ql0-1c18210f6b9e2263.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/20-0a2e46387735f1f4.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/dsj-cb1e4ddbce4f007b.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/wp-9f5235d335ab624b.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/ko6-9e80f7ac359e3c43.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/uw-8c275f7ac25b7cf6.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/bsb-4f4ac8c20da73fac.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/w5-13e3a7548bb20af9.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/fm-c00a7677663ba326.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/z-45022d3da7b8817e.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/h0-010921512138e12f.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/5p-ae5db0820116fb43.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/8vq-b2af216e992e11ef.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/g5-88f2a4514daa19ca.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/xc-f5d51b571cd317cb.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/arw-51e8918a1b75a80f.js" />
<script crossorigin="anonymous" type="module" src="https://github.githubassets.com/assets/code-view-c72427a42c7b1dd6.js" defer="defer"></script>
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react-css.9d59d1018a52a53c.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/ql0.de7a55ca73db5693.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/z.812a998e1961b84d.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/xc.13e027137438fd9f.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/code-view.5099f1f900111d1b.module.css" />

  <link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/hu-1fc0b2a167afc025.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/fb-ef2c91536abed646.js" />
<script crossorigin="anonymous" type="module" src="https://github.githubassets.com/assets/notifications-subscriptions-menu-6f8f2a4b24a472b0.js" defer="defer"></script>
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react-css.9d59d1018a52a53c.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/notifications-subscriptions-menu.3ae223c973c2cef3.module.css" />


  <title>pythonnet/CHANGELOG.md at 20e673f42ca62df984ee148726c0e027172636a5 · tminka/pythonnet · 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="fetch-nonce" content="v2:1901edff-e218-1b89-c7a7-16fa8ef29d33">

    
  <meta name="current-catalog-service-hash" content="f3abb0cc802f3d7b95fc8762b94bdcb13bf39634c40c357301c4aa1d67a256fb">


  <meta name="request-id" content="D400:CBF4F:11FD57FA:10DB97CF:6AACAFEF" data-pjax-transient="true"/><meta name="html-safe-nonce" content="8cb9e6fbba2532b594d3321b85acbe86329ffd6ac29601d7f6a663408a967ca5" data-pjax-transient="true"/><meta name="visitor-payload" content="eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJENDAwOkNCRjRGOjExRkQ1N0ZBOjEwREI5N0NGOjZBQUNBRkVGIiwidmlzaXRvcl9pZCI6IjMyNjk5MjM0NjY1NTQxNTkwODciLCJyZWdpb25fZWRnZSI6ImZyYSIsInJlZ2lvbl9yZW5kZXIiOiJmcmEifQ==" data-pjax-transient="true"/><meta name="visitor-hmac" content="effc338e45180293a0f3c9ae219d0873243663cd9192d393c5b713d8a3e0a5ef" data-pjax-transient="true"/>


    <meta name="hovercard-subject-tag" content="repository:322286678" 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="Python for .NET is a package that gives Python programmers nearly seamless integration with the .NET Common Language Runtime (CLR) and provides a powerful application scripting tool for .NET developers. - pythonnet/CHANGELOG.md at 20e673f42ca62df984ee148726c0e027172636a5 · tminka/pythonnet">

      <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/tminka/pythonnet/blob/20e673f42ca62df984ee148726c0e027172636a5/CHANGELOG.md" />

      <meta name="twitter:image" content="https://opengraph.githubassets.com/bf28eb52f0f9281d8b1a3334e99840b8e8b4a6d6aa3020cc55bcc140e4802966/tminka/pythonnet" /><meta name="twitter:site" content="@github" /><meta name="twitter:card" content="summary_large_image" /><meta name="twitter:title" content="pythonnet/CHANGELOG.md at 20e673f42ca62df984ee148726c0e027172636a5 · tminka/pythonnet" /><meta name="twitter:description" content="Python for .NET is a package that gives Python programmers nearly seamless integration with the .NET Common Language Runtime (CLR) and provides a powerful application scripting tool for .NET develo..." />
  <meta property="og:image" content="https://opengraph.githubassets.com/bf28eb52f0f9281d8b1a3334e99840b8e8b4a6d6aa3020cc55bcc140e4802966/tminka/pythonnet" /><meta property="og:image:alt" content="Python for .NET is a package that gives Python programmers nearly seamless integration with the .NET Common Language Runtime (CLR) and provides a powerful application scripting tool for .NET develo..." /><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="pythonnet/CHANGELOG.md at 20e673f42ca62df984ee148726c0e027172636a5 · tminka/pythonnet" /><meta property="og:url" content="https://github.com/tminka/pythonnet/blob/20e673f42ca62df984ee148726c0e027172636a5/CHANGELOG.md" /><meta property="og:description" content="Python for .NET is a package that gives Python programmers nearly seamless integration with the .NET Common Language Runtime (CLR) and provides a powerful application scripting tool for .NET develo..." />
  




      <meta name="hostname" content="github.com">



        <meta name="expected-hostname" content="github.com">


  <meta http-equiv="x-pjax-version" content="1b7a4ff13706175db9ddcddd8b7c27b8946d9e20d9cdccd9cb54b37d67bc242f" data-turbo-track="reload">
  <meta http-equiv="x-pjax-csp-version" content="0c5c6e5334a905d8f9521e09eadcffba484d422e0d262e07ff922e6bc18b2ac6" data-turbo-track="reload">
  <meta http-equiv="x-pjax-css-version" content="ec4c7b86d7b57240253150b827ea48b04e08d8760dc6553d2a04f62000f3fe0c" data-turbo-track="reload">
  <meta http-equiv="x-pjax-js-version" content="4644d0c4c253864cb5744c15cc28e64149f3c1e0e485c44cbd24a4b86ca508ad" 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/tminka/pythonnet git https://github.com/tminka/pythonnet.git">

  <meta name="octolytics-dimension-user_id" content="8955276" /><meta name="octolytics-dimension-user_login" content="tminka" /><meta name="octolytics-dimension-repository_id" content="322286678" /><meta name="octolytics-dimension-repository_nwo" content="tminka/pythonnet" /><meta name="octolytics-dimension-repository_public" content="true" /><meta name="octolytics-dimension-repository_is_fork" content="true" /><meta name="octolytics-dimension-repository_parent_id" content="14748123" /><meta name="octolytics-dimension-repository_parent_nwo" content="pythonnet/pythonnet" /><meta name="octolytics-dimension-repository_network_root_id" content="14748123" /><meta name="octolytics-dimension-repository_network_root_nwo" content="pythonnet/pythonnet" />
  



    

    <meta name="turbo-body-classes" content="logged-out env-production page-responsive">
  <meta name="disable-turbo" content="false">


  <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="4a04228f6072ee1ec5cd2227074bd1c1a8308ce2" data-turbo-track="reload">
  <meta name="ui-target" content="full">

  <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" />


  <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 id="__primerPortalRoot__" style="z-index: 1000; position: absolute; width: 100%;" data-turbo-permanent></div>
      

    <div class="position-relative header-wrapper js-header-wrapper ">
      <a href="#start-of-content" data-skip-target-assigned="false" class="px-2 tmp-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>      
      <link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/l7j-2ddd8b435dadae28.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/keyboard-shortcuts-dialog-98a85b4ad3bf8229.js" fetchpriority="low" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react-css.9d59d1018a52a53c.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/keyboard-shortcuts-dialog.9f1b311c6a3e620b.module.css" />

<react-partial
  partial-name="keyboard-shortcuts-dialog"
  data-ssr="false"
  data-attempted-ssr="false"
  data-react-profiling="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>





      

          
          

                <link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/2l-8671acba87bc0dcb.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/i26-f2ae65b837c90ae7.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/fz5-23f28c0f388769c9.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/lht-26506ea833dda5be.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/p1-76a75a6081059b19.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/3d-82c347d20a13fb90.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/tua-c4ca62c5e0e0318e.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/4s-c22d880230690e1f.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/marketing-header-5251d405164cfa54.js" fetchpriority="low" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react-css.9d59d1018a52a53c.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react-brand-css.6a01c236ff527e7e.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/4s.e3d02f110161be52.module.css" />

<react-partial
  partial-name="marketing-header"
  data-ssr="true"
  data-attempted-ssr="true"
  data-react-profiling="false"
>
  
  <script type="application/json" data-target="react-partial.embeddedData">{"props":{"color_mode":"dark","logged_in":false,"marketing_page":false,"home_path":"/","login_path":"/login?return_to=https%3A%2F%2Fgithub.com%2Ftminka%2Fpythonnet%2Fblob%2F20e673f42ca62df984ee148726c0e027172636a5%2FCHANGELOG.md","signup_path":"/signup?ref_cta=Sign+up\u0026ref_loc=header+logged+out\u0026ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fblob%2Fshow\u0026source=header-repo\u0026source_repo=tminka%2Fpythonnet","signup_enabled":true,"is_signup_controller":false,"show_search_and_nav":true,"hide_search":false,"private_mode_enabled":false,"should_use_dotcom_links":true,"auth_hydro_click":"{\"event_type\":\"authentication.click\",\"payload\":{\"location_in_page\":\"site header menu\",\"repository_id\":null,\"auth_type\":\"SIGN_UP\",\"originating_url\":\"https://github.com/tminka/pythonnet/blob/20e673f42ca62df984ee148726c0e027172636a5/CHANGELOG.md\",\"user_id\":null}}","auth_hydro_click_hmac":"eb05b9977f326be75093e4efedfef51d85dfa29e083f74d20e4677ed1ea74e79","overlay":false,"fixed":false}}</script>
  <div data-target="react-partial.reactRoot"><div data-color-mode="dark" data-light-theme="light" data-dark-theme="dark"><header class="MarketingHeader-module__root__Tk7n3 HeaderMktg header-logged-out" role="banner" data-marketing-header="true" data-color-mode="dark" data-light-theme="light" data-dark-theme="dark" data-is-top="true"><h2 class="MarketingHeader-module__visuallyHidden__sqKsl">Navigation Menu</h2><button type="button" class="MarketingHeader-module__backdrop__sw4RU" aria-label="Close navigation menu"></button><div class="MarketingHeader-module__bar__mBSyE"><div class="MarketingHeader-module__topRow__yeury"><div class="MarketingHeader-module__toggleSlot__hDxbh"><button type="button" class="HeaderMenuToggle-module__toggle__i8EiC" aria-label="Toggle navigation" aria-expanded="false"><span class="HeaderMenuToggle-module__toggleBar__jVN0H"></span><span class="HeaderMenuToggle-module__toggleBar__jVN0H"></span><span class="HeaderMenuToggle-module__toggleBar__jVN0H"></span></button></div><a href="/" aria-label="Homepage" class="HeaderLogo-module__logo__UFyHI" data-analytics-event="{&quot;action&quot;:&quot;homepage&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;logo&quot;,&quot;location&quot;:&quot;header&quot;,&quot;label&quot;:&quot;homepage_link_logo_header&quot;}"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-mark-github" viewBox="0 0 24 24" width="32" height="32" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M10.226 17.284c-2.965-.36-5.054-2.493-5.054-5.256 0-1.123.404-2.336 1.078-3.144-.292-.741-.247-2.314.09-2.965.898-.112 2.111.36 2.83 1.01.853-.269 1.752-.404 2.853-.404 1.1 0 1.999.135 2.807.382.696-.629 1.932-1.1 2.83-.988.315.606.36 2.179.067 2.942.72.854 1.101 2 1.101 3.167 0 2.763-2.089 4.852-5.098 5.234.763.494 1.28 1.572 1.28 2.807v2.336c0 .674.561 1.056 1.235.786 4.066-1.55 7.255-5.615 7.255-10.646C23.5 6.188 18.334 1 11.978 1 5.62 1 .5 6.188.5 12.545c0 4.986 3.167 9.12 7.435 10.669.606.225 1.19-.18 1.19-.786V20.63a2.9 2.9 0 0 1-1.078.224c-1.483 0-2.359-.808-2.987-2.313-.247-.607-.517-.966-1.034-1.033-.27-.023-.359-.135-.359-.27 0-.27.45-.471.898-.471.652 0 1.213.404 1.797 1.235.45.651.921.943 1.483.943.561 0 .92-.202 1.437-.719.382-.381.674-.718.944-.943"></path></svg></a><div class="AuthCTAs-module__mobileActions__NNzeV"><a class="Primer_Brand__Button-module__Button___scH9Z Primer_Brand__Button-module__Button--subtle___F7pEE Primer_Brand__Button-module__Button--size-small___zQrEw AuthCTAs-module__cta__WpwQq" href="/login?return_to=https%3A%2F%2Fgithub.com%2Ftminka%2Fpythonnet%2Fblob%2F20e673f42ca62df984ee148726c0e027172636a5%2FCHANGELOG.md" data-analytics-event="{&quot;action&quot;:&quot;sign_in&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;auth_cta&quot;,&quot;location&quot;:&quot;header&quot;,&quot;label&quot;:&quot;sign_in_link_auth_cta_header&quot;}" 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/tminka/pythonnet/blob/20e673f42ca62df984ee148726c0e027172636a5/CHANGELOG.md&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="eb05b9977f326be75093e4efedfef51d85dfa29e083f74d20e4677ed1ea74e79"><span class="Primer_Brand__Button-module__Button__text___ED0bX"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ Primer_Brand__Button-module__Button--label___qrkyz Primer_Brand__Button-module__Button--label-subtle___8ndWH">Sign in</span></span></a><button class="Primer_Brand__Button-module__Button___scH9Z Primer_Brand__Button-module__Button--subtle___F7pEE Primer_Brand__Button-module__Button--size-small___zQrEw HeaderAppearanceSettings-module__trigger__hUheK" type="button" aria-haspopup="dialog" aria-labelledby="_R_3dd_"><span class="Primer_Brand__Button-module__Button__leading-visual___jjtTe" data-testid="Button-leading-visual"><svg data-component="Octicon" focusable="false" aria-hidden="true" class="octicon octicon-sliders Primer_Brand__Button-module__Button__icon-visual____qybb" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M15 2.75a.75.75 0 0 1-.75.75h-4a.75.75 0 0 1 0-1.5h4a.75.75 0 0 1 .75.75Zm-8.5.75v1.25a.75.75 0 0 0 1.5 0v-4a.75.75 0 0 0-1.5 0V2H1.75a.75.75 0 0 0 0 1.5H6.5Zm1.25 5.25a.75.75 0 0 0 0-1.5h-6a.75.75 0 0 0 0 1.5h6ZM15 8a.75.75 0 0 1-.75.75H11.5V10a.75.75 0 1 1-1.5 0V6a.75.75 0 0 1 1.5 0v1.25h2.75A.75.75 0 0 1 15 8Zm-9 5.25v-2a.75.75 0 0 0-1.5 0v1.25H1.75a.75.75 0 0 0 0 1.5H4.5v1.25a.75.75 0 0 0 1.5 0v-2Zm9 0a.75.75 0 0 1-.75.75h-6a.75.75 0 0 1 0-1.5h6a.75.75 0 0 1 .75.75Z"></path></svg></span><span class="Primer_Brand__Button-module__Button__text___ED0bX"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ Primer_Brand__Button-module__Button--label___qrkyz Primer_Brand__Button-module__Button--label-subtle___8ndWH"></span></span></button><div class="Primer_Brand__Tooltip-module__Tooltip___0Eipx" data-direction="s" aria-hidden="true" id="_R_3dd_">Appearance settings</div></div></div><div class="MarketingHeader-module__menu__GIy3y"><div class="MarketingHeader-module__menuWrapper__owstH"><nav class="MarketingNavigation-module__nav__W0KYY" aria-label="Global"><ul class="MarketingNavigation-module__list__tFbMb"><li><div class="NavDropdown-module__container__l2YeI"><button type="button" class="NavDropdown-module__button__PEHWX" aria-expanded="false" aria-controls="_R_nd_">Platform<svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-triangle-right NavDropdown-module__buttonIcon__Tkl8_" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m6.427 4.427 3.396 3.396a.25.25 0 0 1 0 .354l-3.396 3.396A.25.25 0 0 1 6 11.396V4.604a.25.25 0 0 1 .427-.177Z"></path></svg></button><div id="_R_nd_" class="NavDropdown-module__dropdown__xm1jd"><ul class="NavDropdown-module__list__zuCgG"><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_5knd_">AI CODE CREATION</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_5knd_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/features/copilot" data-analytics-event="{&quot;action&quot;:&quot;github_copilot&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;github_copilot_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-copilot NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><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>GitHub Copilot</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Write better code with AI</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/features/ai/github-app" data-analytics-event="{&quot;action&quot;:&quot;github_copilot_app&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;github_copilot_app_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-mark-github NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M6.766 11.328c-2.063-.25-3.516-1.734-3.516-3.656 0-.781.281-1.625.75-2.188-.203-.515-.172-1.609.063-2.062.625-.078 1.468.25 1.968.703.594-.187 1.219-.281 1.985-.281.765 0 1.39.094 1.953.265.484-.437 1.344-.765 1.969-.687.218.422.25 1.515.046 2.047.5.593.766 1.39.766 2.203 0 1.922-1.453 3.375-3.547 3.64.531.344.89 1.094.89 1.954v1.625c0 .468.391.734.86.547C13.781 14.359 16 11.53 16 8.03 16 3.61 12.406 0 7.984 0 3.563 0 0 3.61 0 8.031a7.88 7.88 0 0 0 5.172 7.422c.422.156.828-.125.828-.547v-1.25c-.219.094-.5.156-.75.156-1.031 0-1.64-.562-2.078-1.609-.172-.422-.36-.672-.719-.719-.187-.015-.25-.093-.25-.187 0-.188.313-.328.625-.328.453 0 .844.281 1.25.86.313.452.64.655 1.031.655s.641-.14 1-.5c.266-.265.47-.5.657-.656"></path></svg>GitHub Copilot app</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Direct agents from issue to merge</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/mcp" data-analytics-event="{&quot;action&quot;:&quot;mcp_registry&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;mcp_registry_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-mcp NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M5.52 1.12a3.578 3.578 0 0 1 6.078 2.98 3.578 3.578 0 0 1 2.982 6.08l-3.292 3.293a.252.252 0 0 0 0 .354l.843.843a.749.749 0 1 1-1.06 1.06l-.844-.843a1.75 1.75 0 0 1 0-2.474L13.52 9.12a2.08 2.08 0 0 0 0-2.94 2.08 2.08 0 0 0-2.94 0L7.731 9.03A.75.75 0 0 1 6.67 7.97l2.85-2.85a2.08 2.08 0 0 0 0-2.94 2.08 2.08 0 0 0-2.94 0l-4.799 4.8A.75.75 0 0 1 .72 5.92Z"></path><path d="M7.52 3.12a.749.749 0 1 1 1.06 1.06L5.731 7.03A2.079 2.079 0 0 0 8.67 9.97l2.85-2.85a.749.749 0 1 1 1.06 1.06l-2.849 2.85A3.578 3.578 0 0 1 4.67 5.97Z"></path></svg>MCP Registry</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Integrate external tools</span></span></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_9knd_">DEVELOPER WORKFLOWS</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_9knd_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/features/actions" data-analytics-event="{&quot;action&quot;:&quot;actions&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;actions_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-workflow NavLink-module__icon__ltGNM" 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 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>Actions</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Automate any workflow</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/features/codespaces" data-analytics-event="{&quot;action&quot;:&quot;codespaces&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;codespaces_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-codespaces NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><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>Codespaces</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Instant dev environments</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/features/issues" data-analytics-event="{&quot;action&quot;:&quot;issues&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;issues_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-issue-opened NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><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>Issues</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Plan and track work</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/features/code-review" data-analytics-event="{&quot;action&quot;:&quot;code_review&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;code_review_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-code NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><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>Code Review</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Manage code changes</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/features/code-quality" data-analytics-event="{&quot;action&quot;:&quot;code_quality&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;code_quality_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-codescan-checkmark NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M10.28 6.28a.75.75 0 1 0-1.06-1.06L6.25 8.19l-.97-.97a.75.75 0 0 0-1.06 1.06l1.5 1.5a.75.75 0 0 0 1.06 0l3.5-3.5Z"></path><path d="M7.5 15a7.5 7.5 0 1 1 5.807-2.754l2.473 2.474a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215l-2.474-2.473A7.472 7.472 0 0 1 7.5 15Zm0-13.5a6 6 0 1 0 4.094 10.386.748.748 0 0 1 .293-.292 6.002 6.002 0 0 0 1.117-6.486A6.002 6.002 0 0 0 7.5 1.5Z"></path></svg>Code Quality</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Enforce quality at merge</span></span></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_dknd_">APPLICATION SECURITY</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_dknd_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/security/advanced-security" data-analytics-event="{&quot;action&quot;:&quot;github_advanced_security&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;github_advanced_security_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-shield-check NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><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>GitHub Advanced Security</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Find and fix vulnerabilities</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/security/advanced-security/code-security" data-analytics-event="{&quot;action&quot;:&quot;code_security&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;code_security_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-code-square NavLink-module__icon__ltGNM" 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>Code security</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Secure your code as you build</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/security/advanced-security/secret-protection" data-analytics-event="{&quot;action&quot;:&quot;secret_protection&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;secret_protection_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-lock NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M4 4a4 4 0 0 1 8 0v2h.25c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0 1 12.25 15h-8.5A1.75 1.75 0 0 1 2 13.25v-5.5C2 6.784 2.784 6 3.75 6H4Zm8.25 3.5h-8.5a.25.25 0 0 0-.25.25v5.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-5.5a.25.25 0 0 0-.25-.25ZM10.5 6V4a2.5 2.5 0 1 0-5 0v2Z"></path></svg>Secret protection</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Stop leaks before they start</span></span></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ NavGroup-module__hasSeparator__FnMrN"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_hknd_">EXPLORE</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_hknd_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/why-github" data-analytics-event="{&quot;action&quot;:&quot;why_github&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;why_github_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Why GitHub</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://docs.github.com" data-analytics-event="{&quot;action&quot;:&quot;documentation&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;documentation_link_platform_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Documentation</span><svg data-component="Octicon" focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><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="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://github.blog" data-analytics-event="{&quot;action&quot;:&quot;blog&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;blog_link_platform_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Blog</span><svg data-component="Octicon" focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><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="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://github.blog/changelog" data-analytics-event="{&quot;action&quot;:&quot;changelog&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;changelog_link_platform_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Changelog</span><svg data-component="Octicon" focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><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="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/marketplace" data-analytics-event="{&quot;action&quot;:&quot;marketplace&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;marketplace_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Marketplace</span></a></li></ul></div></li></ul><div class="NavDropdown-module__trailingLinkContainer__VgJGL"><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--arrow-end___esdN8" href="https://github.com/features" data-analytics-event="{&quot;action&quot;:&quot;view_all_features&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;view_all_features_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">View all features</span><svg class="Primer_Brand__ExpandableArrow-module__ExpandableArrow___aaZs9 Primer_Brand__Link-module__Link-arrow___yd78i" width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true" focusable="false"><path fill="currentColor" d="M7.28033 3.21967C6.98744 2.92678 6.51256 2.92678 6.21967 3.21967C5.92678 3.51256 5.92678 3.98744 6.21967 4.28033L7.28033 3.21967ZM11 8L11.5303 8.53033C11.8232 8.23744 11.8232 7.76256 11.5303 7.46967L11 8ZM6.21967 11.7197C5.92678 12.0126 5.92678 12.4874 6.21967 12.7803C6.51256 13.0732 6.98744 13.0732 7.28033 12.7803L6.21967 11.7197ZM6.21967 4.28033L10.4697 8.53033L11.5303 7.46967L7.28033 3.21967L6.21967 4.28033ZM10.4697 7.46967L6.21967 11.7197L7.28033 12.7803L11.5303 8.53033L10.4697 7.46967Z"></path><path class="Primer_Brand__ExpandableArrow-module__ExpandableArrow-stem___0K8Hz" stroke="currentColor" d="M1.75 8H11" stroke-width="1.5" stroke-linecap="round"></path></svg></a></div></div></div></li><li><div class="NavDropdown-module__container__l2YeI"><button type="button" class="NavDropdown-module__button__PEHWX" aria-expanded="false" aria-controls="_R_17d_">Solutions<svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-triangle-right NavDropdown-module__buttonIcon__Tkl8_" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m6.427 4.427 3.396 3.396a.25.25 0 0 1 0 .354l-3.396 3.396A.25.25 0 0 1 6 11.396V4.604a.25.25 0 0 1 .427-.177Z"></path></svg></button><div id="_R_17d_" class="NavDropdown-module__dropdown__xm1jd"><ul class="NavDropdown-module__list__zuCgG"><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_5l7d_">BY COMPANY SIZE</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_5l7d_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/enterprise" data-analytics-event="{&quot;action&quot;:&quot;enterprises&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;enterprises_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Enterprises</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/team" data-analytics-event="{&quot;action&quot;:&quot;small_and_medium_teams&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;small_and_medium_teams_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Small and medium teams</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/enterprise/startups" data-analytics-event="{&quot;action&quot;:&quot;startups&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;startups_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Startups</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/industry/nonprofits" data-analytics-event="{&quot;action&quot;:&quot;nonprofits&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;nonprofits_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Nonprofits</span></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_9l7d_">BY USE CASE</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_9l7d_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/use-case/app-modernization" data-analytics-event="{&quot;action&quot;:&quot;app_modernization&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;app_modernization_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">App Modernization</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/use-case/devsecops" data-analytics-event="{&quot;action&quot;:&quot;devsecops&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;devsecops_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">DevSecOps</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/use-case/devops" data-analytics-event="{&quot;action&quot;:&quot;devops&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;devops_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">DevOps</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/use-case/ci-cd" data-analytics-event="{&quot;action&quot;:&quot;ci/cd&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;ci/cd_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">CI/CD</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--arrow-end___esdN8" href="https://github.com/solutions/use-case" data-analytics-event="{&quot;action&quot;:&quot;view_all_use_cases&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;view_all_use_cases_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">View all use cases</span><svg class="Primer_Brand__ExpandableArrow-module__ExpandableArrow___aaZs9 Primer_Brand__Link-module__Link-arrow___yd78i" width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true" focusable="false"><path fill="currentColor" d="M7.28033 3.21967C6.98744 2.92678 6.51256 2.92678 6.21967 3.21967C5.92678 3.51256 5.92678 3.98744 6.21967 4.28033L7.28033 3.21967ZM11 8L11.5303 8.53033C11.8232 8.23744 11.8232 7.76256 11.5303 7.46967L11 8ZM6.21967 11.7197C5.92678 12.0126 5.92678 12.4874 6.21967 12.7803C6.51256 13.0732 6.98744 13.0732 7.28033 12.7803L6.21967 11.7197ZM6.21967 4.28033L10.4697 8.53033L11.5303 7.46967L7.28033 3.21967L6.21967 4.28033ZM10.4697 7.46967L6.21967 11.7197L7.28033 12.7803L11.5303 8.53033L10.4697 7.46967Z"></path><path class="Primer_Brand__ExpandableArrow-module__ExpandableArrow-stem___0K8Hz" stroke="currentColor" d="M1.75 8H11" stroke-width="1.5" stroke-linecap="round"></path></svg></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_dl7d_">BY INDUSTRY</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_dl7d_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/industry/healthcare" data-analytics-event="{&quot;action&quot;:&quot;healthcare&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;healthcare_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Healthcare</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/industry/financial-services" data-analytics-event="{&quot;action&quot;:&quot;financial_services&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;financial_services_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Financial services</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/industry/manufacturing" data-analytics-event="{&quot;action&quot;:&quot;manufacturing&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;manufacturing_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Manufacturing</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/industry/government" data-analytics-event="{&quot;action&quot;:&quot;government&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;government_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Government</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--arrow-end___esdN8" href="https://github.com/solutions/industry" data-analytics-event="{&quot;action&quot;:&quot;view_all_industries&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;view_all_industries_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">View all industries</span><svg class="Primer_Brand__ExpandableArrow-module__ExpandableArrow___aaZs9 Primer_Brand__Link-module__Link-arrow___yd78i" width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true" focusable="false"><path fill="currentColor" d="M7.28033 3.21967C6.98744 2.92678 6.51256 2.92678 6.21967 3.21967C5.92678 3.51256 5.92678 3.98744 6.21967 4.28033L7.28033 3.21967ZM11 8L11.5303 8.53033C11.8232 8.23744 11.8232 7.76256 11.5303 7.46967L11 8ZM6.21967 11.7197C5.92678 12.0126 5.92678 12.4874 6.21967 12.7803C6.51256 13.0732 6.98744 13.0732 7.28033 12.7803L6.21967 11.7197ZM6.21967 4.28033L10.4697 8.53033L11.5303 7.46967L7.28033 3.21967L6.21967 4.28033ZM10.4697 7.46967L6.21967 11.7197L7.28033 12.7803L11.5303 8.53033L10.4697 7.46967Z"></path><path class="Primer_Brand__ExpandableArrow-module__ExpandableArrow-stem___0K8Hz" stroke="currentColor" d="M1.75 8H11" stroke-width="1.5" stroke-linecap="round"></path></svg></a></li></ul></div></li></ul><div class="NavDropdown-module__trailingLinkContainer__VgJGL"><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--arrow-end___esdN8" href="https://github.com/solutions" data-analytics-event="{&quot;action&quot;:&quot;view_all_solutions&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;view_all_solutions_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">View all solutions</span><svg class="Primer_Brand__ExpandableArrow-module__ExpandableArrow___aaZs9 Primer_Brand__Link-module__Link-arrow___yd78i" width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true" focusable="false"><path fill="currentColor" d="M7.28033 3.21967C6.98744 2.92678 6.51256 2.92678 6.21967 3.21967C5.92678 3.51256 5.92678 3.98744 6.21967 4.28033L7.28033 3.21967ZM11 8L11.5303 8.53033C11.8232 8.23744 11.8232 7.76256 11.5303 7.46967L11 8ZM6.21967 11.7197C5.92678 12.0126 5.92678 12.4874 6.21967 12.7803C6.51256 13.0732 6.98744 13.0732 7.28033 12.7803L6.21967 11.7197ZM6.21967 4.28033L10.4697 8.53033L11.5303 7.46967L7.28033 3.21967L6.21967 4.28033ZM10.4697 7.46967L6.21967 11.7197L7.28033 12.7803L11.5303 8.53033L10.4697 7.46967Z"></path><path class="Primer_Brand__ExpandableArrow-module__ExpandableArrow-stem___0K8Hz" stroke="currentColor" d="M1.75 8H11" stroke-width="1.5" stroke-linecap="round"></path></svg></a></div></div></div></li><li><div class="NavDropdown-module__container__l2YeI"><button type="button" class="NavDropdown-module__button__PEHWX" aria-expanded="false" aria-controls="_R_1nd_">Resources<svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-triangle-right NavDropdown-module__buttonIcon__Tkl8_" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m6.427 4.427 3.396 3.396a.25.25 0 0 1 0 .354l-3.396 3.396A.25.25 0 0 1 6 11.396V4.604a.25.25 0 0 1 .427-.177Z"></path></svg></button><div id="_R_1nd_" class="NavDropdown-module__dropdown__xm1jd"><ul class="NavDropdown-module__list__zuCgG"><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_5lnd_">EXPLORE BY TOPIC</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_5lnd_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/resources/articles?topic=ai" data-analytics-event="{&quot;action&quot;:&quot;ai&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;ai_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">AI</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/resources/articles?topic=software-development" data-analytics-event="{&quot;action&quot;:&quot;software_development&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;software_development_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Software Development</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/resources/articles?topic=devops" data-analytics-event="{&quot;action&quot;:&quot;devops&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;devops_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">DevOps</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/resources/articles?topic=security" data-analytics-event="{&quot;action&quot;:&quot;security&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;security_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Security</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--arrow-end___esdN8" href="https://github.com/resources/articles" data-analytics-event="{&quot;action&quot;:&quot;view_all_topics&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;view_all_topics_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">View all topics</span><svg class="Primer_Brand__ExpandableArrow-module__ExpandableArrow___aaZs9 Primer_Brand__Link-module__Link-arrow___yd78i" width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true" focusable="false"><path fill="currentColor" d="M7.28033 3.21967C6.98744 2.92678 6.51256 2.92678 6.21967 3.21967C5.92678 3.51256 5.92678 3.98744 6.21967 4.28033L7.28033 3.21967ZM11 8L11.5303 8.53033C11.8232 8.23744 11.8232 7.76256 11.5303 7.46967L11 8ZM6.21967 11.7197C5.92678 12.0126 5.92678 12.4874 6.21967 12.7803C6.51256 13.0732 6.98744 13.0732 7.28033 12.7803L6.21967 11.7197ZM6.21967 4.28033L10.4697 8.53033L11.5303 7.46967L7.28033 3.21967L6.21967 4.28033ZM10.4697 7.46967L6.21967 11.7197L7.28033 12.7803L11.5303 8.53033L10.4697 7.46967Z"></path><path class="Primer_Brand__ExpandableArrow-module__ExpandableArrow-stem___0K8Hz" stroke="currentColor" d="M1.75 8H11" stroke-width="1.5" stroke-linecap="round"></path></svg></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_9lnd_">EXPLORE BY TYPE</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_9lnd_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/customer-stories" data-analytics-event="{&quot;action&quot;:&quot;customer_stories&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;customer_stories_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Customer stories</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/resources/events" data-analytics-event="{&quot;action&quot;:&quot;events__webinars&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;events__webinars_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Events &amp; webinars</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/resources/whitepapers" data-analytics-event="{&quot;action&quot;:&quot;ebooks__reports&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;ebooks__reports_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Ebooks &amp; reports</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/executive-insights" data-analytics-event="{&quot;action&quot;:&quot;business_insights&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;business_insights_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Business insights</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://skills.github.com" data-analytics-event="{&quot;action&quot;:&quot;github_skills&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;github_skills_link_resources_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">GitHub Skills</span><svg data-component="Octicon" focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><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></li><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_dlnd_">SUPPORT &amp; SERVICES</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_dlnd_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://docs.github.com" data-analytics-event="{&quot;action&quot;:&quot;documentation&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;documentation_link_resources_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Documentation</span><svg data-component="Octicon" focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><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="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://support.github.com" data-analytics-event="{&quot;action&quot;:&quot;customer_support&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;customer_support_link_resources_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Customer support</span><svg data-component="Octicon" focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><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="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/orgs/community/discussions" data-analytics-event="{&quot;action&quot;:&quot;community_forum&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;community_forum_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Community forum</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/trust-center" data-analytics-event="{&quot;action&quot;:&quot;trust_center&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;trust_center_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Trust center</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/partners" data-analytics-event="{&quot;action&quot;:&quot;partners&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;partners_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Partners</span></a></li></ul></div></li></ul><div class="NavDropdown-module__trailingLinkContainer__VgJGL"><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--arrow-end___esdN8" href="https://github.com/resources" data-analytics-event="{&quot;action&quot;:&quot;view_all_resources&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;view_all_resources_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">View all resources</span><svg class="Primer_Brand__ExpandableArrow-module__ExpandableArrow___aaZs9 Primer_Brand__Link-module__Link-arrow___yd78i" width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true" focusable="false"><path fill="currentColor" d="M7.28033 3.21967C6.98744 2.92678 6.51256 2.92678 6.21967 3.21967C5.92678 3.51256 5.92678 3.98744 6.21967 4.28033L7.28033 3.21967ZM11 8L11.5303 8.53033C11.8232 8.23744 11.8232 7.76256 11.5303 7.46967L11 8ZM6.21967 11.7197C5.92678 12.0126 5.92678 12.4874 6.21967 12.7803C6.51256 13.0732 6.98744 13.0732 7.28033 12.7803L6.21967 11.7197ZM6.21967 4.28033L10.4697 8.53033L11.5303 7.46967L7.28033 3.21967L6.21967 4.28033ZM10.4697 7.46967L6.21967 11.7197L7.28033 12.7803L11.5303 8.53033L10.4697 7.46967Z"></path><path class="Primer_Brand__ExpandableArrow-module__ExpandableArrow-stem___0K8Hz" stroke="currentColor" d="M1.75 8H11" stroke-width="1.5" stroke-linecap="round"></path></svg></a></div></div></div></li><li><div class="NavDropdown-module__container__l2YeI"><button type="button" class="NavDropdown-module__button__PEHWX" aria-expanded="false" aria-controls="_R_27d_">Open Source<svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-triangle-right NavDropdown-module__buttonIcon__Tkl8_" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m6.427 4.427 3.396 3.396a.25.25 0 0 1 0 .354l-3.396 3.396A.25.25 0 0 1 6 11.396V4.604a.25.25 0 0 1 .427-.177Z"></path></svg></button><div id="_R_27d_" class="NavDropdown-module__dropdown__xm1jd"><ul class="NavDropdown-module__list__zuCgG"><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_5m7d_">COMMUNITY</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_5m7d_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/open-source/sponsors" data-analytics-event="{&quot;action&quot;:&quot;github_sponsors&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;github_sponsors_link_open_source_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-sponsor-tiers NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M10.586 1C12.268 1 13.5 2.37 13.5 4.25c0 1.745-.996 3.359-2.622 4.831-.166.15-.336.297-.509.438l1.116 5.584a.75.75 0 0 1-.991.852l-2.409-.876a.25.25 0 0 0-.17 0l-2.409.876a.75.75 0 0 1-.991-.852L5.63 9.519a13.78 13.78 0 0 1-.51-.438C3.497 7.609 2.5 5.995 2.5 4.25 2.5 2.37 3.732 1 5.414 1c.963 0 1.843.403 2.474 1.073L8 2.198l.112-.125a3.385 3.385 0 0 1 2.283-1.068L10.586 1Zm-3.621 9.495-.718 3.594 1.155-.42a1.75 1.75 0 0 1 1.028-.051l.168.051 1.154.42-.718-3.592c-.199.13-.37.235-.505.314l-.169.097a.75.75 0 0 1-.72 0 9.54 9.54 0 0 1-.515-.308l-.16-.105ZM10.586 2.5c-.863 0-1.611.58-1.866 1.459-.209.721-1.231.721-1.44 0C7.025 3.08 6.277 2.5 5.414 2.5 4.598 2.5 4 3.165 4 4.25c0 1.23.786 2.504 2.128 3.719.49.443 1.018.846 1.546 1.198l.325.21.076-.047.251-.163a13.341 13.341 0 0 0 1.546-1.198C11.214 6.754 12 5.479 12 4.25c0-1.085-.598-1.75-1.414-1.75Z"></path></svg>GitHub Sponsors</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Fund open source developers</span></span></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_9m7d_">PROGRAMS</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_9m7d_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://securitylab.github.com" data-analytics-event="{&quot;action&quot;:&quot;security_lab&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;security_lab_link_open_source_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Security Lab</span><svg data-component="Octicon" focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><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="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://maintainers.github.com" data-analytics-event="{&quot;action&quot;:&quot;maintainer_community&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;maintainer_community_link_open_source_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Maintainer Community</span><svg data-component="Octicon" focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><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="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://stars.github.com" data-analytics-event="{&quot;action&quot;:&quot;github_stars&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;github_stars_link_open_source_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">GitHub Stars</span><svg data-component="Octicon" focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><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="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://archiveprogram.github.com" data-analytics-event="{&quot;action&quot;:&quot;archive_program&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;archive_program_link_open_source_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Archive Program</span><svg data-component="Octicon" focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><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></li><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_dm7d_">REPOSITORIES</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_dm7d_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/topics" data-analytics-event="{&quot;action&quot;:&quot;topics&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;topics_link_open_source_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Topics</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/trending" data-analytics-event="{&quot;action&quot;:&quot;trending&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;trending_link_open_source_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Trending</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/collections" data-analytics-event="{&quot;action&quot;:&quot;collections&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;collections_link_open_source_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Collections</span></a></li></ul></div></li></ul></div></div></li><li><div class="NavDropdown-module__container__l2YeI"><button type="button" class="NavDropdown-module__button__PEHWX" aria-expanded="false" aria-controls="_R_2nd_">Enterprise<svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-triangle-right NavDropdown-module__buttonIcon__Tkl8_" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m6.427 4.427 3.396 3.396a.25.25 0 0 1 0 .354l-3.396 3.396A.25.25 0 0 1 6 11.396V4.604a.25.25 0 0 1 .427-.177Z"></path></svg></button><div id="_R_2nd_" class="NavDropdown-module__dropdown__xm1jd"><ul class="NavDropdown-module__list__zuCgG"><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_5mnd_">ENTERPRISE SOLUTIONS</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_5mnd_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/enterprise" data-analytics-event="{&quot;action&quot;:&quot;enterprise_platform&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;enterprise&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;enterprise_platform_link_enterprise_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-stack NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M7.122.392a1.75 1.75 0 0 1 1.756 0l5.003 2.902c.83.481.83 1.68 0 2.162L8.878 8.358a1.75 1.75 0 0 1-1.756 0L2.119 5.456a1.251 1.251 0 0 1 0-2.162ZM8.125 1.69a.248.248 0 0 0-.25 0l-4.63 2.685 4.63 2.685a.248.248 0 0 0 .25 0l4.63-2.685ZM1.601 7.789a.75.75 0 0 1 1.025-.273l5.249 3.044a.248.248 0 0 0 .25 0l5.249-3.044a.75.75 0 0 1 .752 1.298l-5.248 3.044a1.75 1.75 0 0 1-1.756 0L1.874 8.814A.75.75 0 0 1 1.6 7.789Zm0 3.5a.75.75 0 0 1 1.025-.273l5.249 3.044a.248.248 0 0 0 .25 0l5.249-3.044a.75.75 0 0 1 .752 1.298l-5.248 3.044a1.75 1.75 0 0 1-1.756 0l-5.248-3.044a.75.75 0 0 1-.273-1.025Z"></path></svg>Enterprise platform</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">AI-powered developer platform</span></span></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_9mnd_">AVAILABLE ADD-ONS</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_9mnd_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/security/advanced-security" data-analytics-event="{&quot;action&quot;:&quot;github_advanced_security&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;enterprise&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;github_advanced_security_link_enterprise_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-shield-check NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><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>GitHub Advanced Security</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Enterprise-grade security features</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/features/copilot/copilot-business" data-analytics-event="{&quot;action&quot;:&quot;copilot_for_business&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;enterprise&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;copilot_for_business_link_enterprise_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-copilot NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><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>Copilot for Business</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Enterprise-grade AI features</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/enterprise/premium-support" data-analytics-event="{&quot;action&quot;:&quot;premium_support&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;enterprise&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;premium_support_link_enterprise_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-comment-discussion NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><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>Premium Support</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Enterprise-grade 24/7 support</span></span></a></li></ul></div></li></ul></div></div></li><li><a href="https://github.com/pricing" data-analytics-event="{&quot;action&quot;:&quot;pricing&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;pricing&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;pricing_link_pricing_navbar&quot;}" class="MarketingNavigation-module__navLink__hUomM">Pricing</a></li></ul></nav><div class="MarketingHeader-module__ctaContainer__tBmPz"><div class="HeaderSearch-module__searchSlot__oVOUS"><button class="Primer_Brand__Button-module__Button___scH9Z Primer_Brand__Button-module__Button--subtle___F7pEE Primer_Brand__Button-module__Button--size-small___zQrEw HeaderSearch-module__trigger__zsF9q" type="button" aria-haspopup="dialog" aria-expanded="false" aria-label="Search or jump to, type / to search" data-analytics-event="{&quot;action&quot;:&quot;searchbar&quot;,&quot;tag&quot;:&quot;input&quot;,&quot;context&quot;:&quot;global&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;searchbar_input_global_navbar&quot;}"><span class="Primer_Brand__Button-module__Button__text___ED0bX"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ Primer_Brand__Button-module__Button--label___qrkyz Primer_Brand__Button-module__Button--label-subtle___8ndWH"><span class="HeaderSearch-module__content__kMpxU"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-search HeaderSearch-module__icon__wcrHX" 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 class="HeaderSearch-module__label__d1iWG">Search</span><kbd class="HeaderSearch-module__kbd__HNG0o" aria-hidden="true">/</kbd></span></span></span></button><div class="d-none"></div></div><div class="AuthCTAs-module__signInWrap__q2P60"><a class="Primer_Brand__Button-module__Button___scH9Z Primer_Brand__Button-module__Button--subtle___F7pEE Primer_Brand__Button-module__Button--size-small___zQrEw AuthCTAs-module__cta__WpwQq AuthCTAs-module__desktopActionGap__UZuXT AuthCTAs-module__hiddenBelowLg__BfKBw" href="/login?return_to=https%3A%2F%2Fgithub.com%2Ftminka%2Fpythonnet%2Fblob%2F20e673f42ca62df984ee148726c0e027172636a5%2FCHANGELOG.md" data-analytics-event="{&quot;action&quot;:&quot;sign_in&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;auth_cta&quot;,&quot;location&quot;:&quot;header&quot;,&quot;label&quot;:&quot;sign_in_link_auth_cta_header&quot;}" 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/tminka/pythonnet/blob/20e673f42ca62df984ee148726c0e027172636a5/CHANGELOG.md&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="eb05b9977f326be75093e4efedfef51d85dfa29e083f74d20e4677ed1ea74e79"><span class="Primer_Brand__Button-module__Button__text___ED0bX"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ Primer_Brand__Button-module__Button--label___qrkyz Primer_Brand__Button-module__Button--label-subtle___8ndWH">Sign in</span></span></a></div><a class="Primer_Brand__Button-module__Button___scH9Z Primer_Brand__Button-module__Button--secondary___gHnw_ Primer_Brand__Button-module__Button--size-small___zQrEw AuthCTAs-module__cta__WpwQq" 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=tminka%2Fpythonnet" data-analytics-event="{&quot;action&quot;:&quot;sign_up&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;auth_cta&quot;,&quot;location&quot;:&quot;header&quot;,&quot;label&quot;:&quot;sign_up_link_auth_cta_header&quot;}" 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/tminka/pythonnet/blob/20e673f42ca62df984ee148726c0e027172636a5/CHANGELOG.md&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="eb05b9977f326be75093e4efedfef51d85dfa29e083f74d20e4677ed1ea74e79"><span class="Primer_Brand__Button-module__Button__text___ED0bX"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ Primer_Brand__Button-module__Button--label___qrkyz Primer_Brand__Button-module__Button--label-secondary___eJ0_a">Sign up</span></span></a><button class="Primer_Brand__Button-module__Button___scH9Z Primer_Brand__Button-module__Button--subtle___F7pEE Primer_Brand__Button-module__Button--size-small___zQrEw HeaderAppearanceSettings-module__trigger__hUheK" type="button" aria-haspopup="dialog" aria-labelledby="_R_fbd_"><span class="Primer_Brand__Button-module__Button__leading-visual___jjtTe" data-testid="Button-leading-visual"><svg data-component="Octicon" focusable="false" aria-hidden="true" class="octicon octicon-sliders Primer_Brand__Button-module__Button__icon-visual____qybb" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M15 2.75a.75.75 0 0 1-.75.75h-4a.75.75 0 0 1 0-1.5h4a.75.75 0 0 1 .75.75Zm-8.5.75v1.25a.75.75 0 0 0 1.5 0v-4a.75.75 0 0 0-1.5 0V2H1.75a.75.75 0 0 0 0 1.5H6.5Zm1.25 5.25a.75.75 0 0 0 0-1.5h-6a.75.75 0 0 0 0 1.5h6ZM15 8a.75.75 0 0 1-.75.75H11.5V10a.75.75 0 1 1-1.5 0V6a.75.75 0 0 1 1.5 0v1.25h2.75A.75.75 0 0 1 15 8Zm-9 5.25v-2a.75.75 0 0 0-1.5 0v1.25H1.75a.75.75 0 0 0 0 1.5H4.5v1.25a.75.75 0 0 0 1.5 0v-2Zm9 0a.75.75 0 0 1-.75.75h-6a.75.75 0 0 1 0-1.5h6a.75.75 0 0 1 .75.75Z"></path></svg></span><span class="Primer_Brand__Button-module__Button__text___ED0bX"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ Primer_Brand__Button-module__Button--label___qrkyz Primer_Brand__Button-module__Button--label-subtle___8ndWH"></span></span></button><div class="Primer_Brand__Tooltip-module__Tooltip___0Eipx" data-direction="s" aria-hidden="true" id="_R_fbd_">Appearance settings</div></div></div></div></div><div class="MarketingHeader-module__bottomBorder__uZT38" aria-hidden="true"></div></header></div></div>
</react-partial>



      <div hidden="hidden" data-view-component="true" class="js-stale-session-flash stale-session-flash flash flash-warn flash-full">
  
        <svg aria-hidden="true" data-component="Octicon" 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-adefc468-651b-49e4-9e43-27ba34d9b5f9" aria-labelledby="tooltip-f5619270-76bd-4a10-8119-6a2c1cfd66d8" type="button" data-view-component="true" class="Button Button--iconOnly Button--invisible Button--medium flash-close js-flash-close">  <svg aria-hidden="true" data-component="Octicon" 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-f5619270-76bd-4a10-8119-6a2c1cfd66d8" for="icon-button-adefc468-651b-49e4-9e43-27ba34d9b5f9" 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" data-component="Octicon" 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="tmp-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 tmp-mb-3  tmp-px-3 tmp-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" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo-forked color-fg-muted mr-2 tmp-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>
    
    <span class="author flex-self-stretch" itemprop="author">
      <a class="url fn" rel="author" data-hovercard-type="user" data-hovercard-url="/users/tminka/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/tminka">
        tminka
</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="/tminka/pythonnet">pythonnet</a>
    </strong>

    <span></span><span class="Label Label--secondary v-align-middle mr-1">Public</span>
  </div>
    <span class="text-small lh-condensed-ultra no-wrap mt-1" data-repository-hovercards-enabled>
      forked from <a data-hovercard-type="repository" data-hovercard-url="/pythonnet/pythonnet/hovercard" class="Link--inTextBlock" href="/pythonnet/pythonnet">pythonnet/pythonnet</a>
    </span>


          </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>
            <a href="/login?return_to=%2Ftminka%2Fpythonnet" 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/tminka/pythonnet/blob/20e673f42ca62df984ee148726c0e027172636a5/CHANGELOG.md&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="14d0fc494078b0eae3ff03c4fbbd8c49349199d4cfba41a166ca778fc9c486ee" aria-label="You must be signed in to change notification settings" data-view-component="true" class="btn-sm btn">    <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-bell mr-2 tmp-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-9812f61e-46aa-4b09-82d5-3b27045dafb6" 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=%2Ftminka%2Fpythonnet" 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;:322286678,&quot;auth_type&quot;:&quot;LOG_IN&quot;,&quot;originating_url&quot;:&quot;https://github.com/tminka/pythonnet/blob/20e673f42ca62df984ee148726c0e027172636a5/CHANGELOG.md&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="3bef3ff1df3527c2479eb010839d6740d2d9e66d4aa79b2cae15f3331a4e2f2a" data-view-component="true" class="btn-sm btn">    <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo-forked mr-2 tmp-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="0" data-view-component="true" class="Counter">0</span>
</a>
  </li>

  <li>
        <div data-view-component="true" class="BtnGroup d-flex">
        <a href="/login?return_to=%2Ftminka%2Fpythonnet" 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;:322286678,&quot;auth_type&quot;:&quot;LOG_IN&quot;,&quot;originating_url&quot;:&quot;https://github.com/tminka/pythonnet/blob/20e673f42ca62df984ee148726c0e027172636a5/CHANGELOG.md&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="63c56ee793f382e4294bd29e8e477238dc01b4f0f20f2adb4377a7502a3ac275" 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" data-component="Octicon" 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 tmp-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="0 users starred this repository" data-singular-suffix="user starred this repository" data-plural-suffix="users starred this repository" data-turbo-replace="true" title="0" data-view-component="true" class="Counter js-social-count">0</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 tmp-px-3 px-md-4 tmp-px-md-4 px-lg-5 tmp-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="/tminka/pythonnet" 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 /tminka/pythonnet" data-pjax="#repo-content-pjax-container" data-turbo-frame="repo-content-turbo-frame" data-hotkey="g c" data-command-id="repositories:go-to-code" data-react-nav="code-view" data-react-nav-anchor="code-view-repo-link" 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" data-component="Octicon" 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="pull-requests-tab" href="/tminka/pythonnet/pulls" data-tab-item="i1pull-requests-tab" data-selected-links="repo_pulls checks /tminka/pythonnet/pulls" data-pjax="#repo-content-pjax-container" data-turbo-frame="repo-content-turbo-frame" data-hotkey="g p" data-command-id="repositories:go-to-pull-requests" 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" data-component="Octicon" 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="0" hidden="hidden" data-view-component="true" class="Counter">0</span>


    
</a></li>
      <li data-view-component="true" class="d-inline-flex">
  <a id="actions-tab" href="/tminka/pythonnet/actions" data-tab-item="i2actions-tab" data-selected-links="repo_actions /tminka/pythonnet/actions" data-pjax="#repo-content-pjax-container" data-turbo-frame="repo-content-turbo-frame" data-hotkey="g a" data-command-id="repositories:go-to-actions" data-react-nav="actions-workflows" 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" data-component="Octicon" 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="projects-tab" href="/tminka/pythonnet/projects" data-tab-item="i3projects-tab" data-selected-links="repo_projects new_repo_project repo_project /tminka/pythonnet/projects" data-pjax="#repo-content-pjax-container" data-turbo-frame="repo-content-turbo-frame" data-hotkey="g b" data-command-id="repositories:go-to-projects" data-react-nav="repo" data-analytics-event="{&quot;category&quot;:&quot;Underline navbar&quot;,&quot;action&quot;:&quot;Click tab&quot;,&quot;label&quot;:&quot;Projects&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" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-table UnderlineNav-octicon d-none d-sm-inline">
    <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.25ZM6.5 6.5v8h7.75a.25.25 0 0 0 .25-.25V6.5Zm8-1.5V1.75a.25.25 0 0 0-.25-.25H6.5V5Zm-13 1.5v7.75c0 .138.112.25.25.25H5v-8ZM5 5V1.5H1.75a.25.25 0 0 0-.25.25V5Z"></path>
</svg>
        <span data-content="Projects">Projects</span>
          <span id="projects-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-and-quality-tab" href="/tminka/pythonnet/security" data-tab-item="i4security-and-quality-tab" data-selected-links="security overview alerts policy token_scanning code_scanning /tminka/pythonnet/security" data-pjax="#repo-content-pjax-container" data-turbo-frame="repo-content-turbo-frame" data-hotkey="g s" data-command-id="repositories:go-to-security" data-analytics-event="{&quot;category&quot;:&quot;Underline navbar&quot;,&quot;action&quot;:&quot;Click tab&quot;,&quot;label&quot;:&quot;Security and quality&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" data-component="Octicon" 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 and quality">Security and quality</span>
          <span id="security-and-quality-repo-tab-count" data-pjax-replace="" data-turbo-replace="" title="0" hidden="hidden" data-view-component="true" class="Counter">0</span>


    
</a></li>
      <li data-view-component="true" class="d-inline-flex">
  <a id="insights-tab" href="/tminka/pythonnet/pulse" data-tab-item="i5insights-tab" data-selected-links="repo_graphs repo_contributors dependency_graph dependabot_updates pulse people community /tminka/pythonnet/pulse" data-pjax="#repo-content-pjax-container" data-turbo-frame="repo-content-turbo-frame" data-command-id="repositories:go-to-insights" 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" data-component="Octicon" 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 tmp-pr-3 pr-md-4 tmp-pr-md-4 pr-lg-5 tmp-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-ca0c8f8c-3a24-4992-bef9-ec77dc03cdb3-button" popovertarget="action-menu-ca0c8f8c-3a24-4992-bef9-ec77dc03cdb3-overlay" aria-controls="action-menu-ca0c8f8c-3a24-4992-bef9-ec77dc03cdb3-list" aria-haspopup="true" aria-labelledby="tooltip-d35ee5ee-286b-49ac-a2a0-fac730293f07" type="button" data-view-component="true" class="Button Button--iconOnly Button--secondary Button--medium UnderlineNav-item">  <svg aria-hidden="true" data-component="Octicon" 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-d35ee5ee-286b-49ac-a2a0-fac730293f07" for="action-menu-ca0c8f8c-3a24-4992-bef9-ec77dc03cdb3-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-ca0c8f8c-3a24-4992-bef9-ec77dc03cdb3-overlay" anchor="action-menu-ca0c8f8c-3a24-4992-bef9-ec77dc03cdb3-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-ca0c8f8c-3a24-4992-bef9-ec77dc03cdb3-button" id="action-menu-ca0c8f8c-3a24-4992-bef9-ec77dc03cdb3-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-9b26e8ed-61b1-4abd-a7b3-9e94dc43d003" href="/tminka/pythonnet" role="menuitem" data-view-component="true" class="ActionListContent ActionListContent--visual16">
        <span class="ActionListItem-visual ActionListItem-visual--leading">
          <svg aria-hidden="true" data-component="Octicon" 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="i1pull-requests-tab" data-targets="action-list.items" role="none" data-view-component="true" class="ActionListItem">
    
    
    <a tabindex="-1" id="item-3ce9b7b0-a286-443e-85e1-ce0e4b932147" href="/tminka/pythonnet/pulls" role="menuitem" data-view-component="true" class="ActionListContent ActionListContent--visual16">
        <span class="ActionListItem-visual ActionListItem-visual--leading">
          <svg aria-hidden="true" data-component="Octicon" 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="i2actions-tab" data-targets="action-list.items" role="none" data-view-component="true" class="ActionListItem">
    
    
    <a tabindex="-1" id="item-a2720eec-a594-454f-b1d8-290aabc20330" href="/tminka/pythonnet/actions" role="menuitem" data-view-component="true" class="ActionListContent ActionListContent--visual16">
        <span class="ActionListItem-visual ActionListItem-visual--leading">
          <svg aria-hidden="true" data-component="Octicon" 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="i3projects-tab" data-targets="action-list.items" role="none" data-view-component="true" class="ActionListItem">
    
    
    <a tabindex="-1" id="item-6f6d4767-4b89-4f65-b588-2c00b7805969" href="/tminka/pythonnet/projects" role="menuitem" data-view-component="true" class="ActionListContent ActionListContent--visual16">
        <span class="ActionListItem-visual ActionListItem-visual--leading">
          <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-table">
    <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.25ZM6.5 6.5v8h7.75a.25.25 0 0 0 .25-.25V6.5Zm8-1.5V1.75a.25.25 0 0 0-.25-.25H6.5V5Zm-13 1.5v7.75c0 .138.112.25.25.25H5v-8ZM5 5V1.5H1.75a.25.25 0 0 0-.25.25V5Z"></path>
</svg>
        </span>
      
        <span data-view-component="true" class="ActionListItem-label">
          Projects
</span>      
</a>
  
</li>
        <li hidden="hidden" data-menu-item="i4security-and-quality-tab" data-targets="action-list.items" role="none" data-view-component="true" class="ActionListItem">
    
    
    <a tabindex="-1" id="item-82a17c71-51b4-4513-b723-11cf49676cce" href="/tminka/pythonnet/security" role="menuitem" data-view-component="true" class="ActionListContent ActionListContent--visual16">
        <span class="ActionListItem-visual ActionListItem-visual--leading">
          <svg aria-hidden="true" data-component="Octicon" 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 and quality
</span>      
</a>
  
</li>
        <li hidden="hidden" data-menu-item="i5insights-tab" data-targets="action-list.items" role="none" data-view-component="true" class="ActionListItem">
    
    
    <a tabindex="-1" id="item-7eea2352-1548-42d8-8cf2-6f5b4180923b" href="/tminka/pythonnet/pulse" role="menuitem" data-view-component="true" class="ActionListContent ActionListContent--visual16">
        <span class="ActionListItem-visual ActionListItem-visual--leading">
          <svg aria-hidden="true" data-component="Octicon" 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="code-view"
  initial-path="/tminka/pythonnet/blob/20e673f42ca62df984ee148726c0e027172636a5/CHANGELOG.md"
  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="true"
  data-react-profiling="false"
>
  
  <script type="application/json" data-target="react-app.embeddedData">{"payload":{"codeViewBlobRoute":{"csv":null,"csvError":null,"headerInfo":{"toc":[{"level":1,"text":"Changelog","anchor":"changelog","htmlText":"Changelog"},{"level":2,"text":"Unreleased","anchor":"unreleased","htmlText":"Unreleased"},{"level":3,"text":"Added","anchor":"added","htmlText":"Added"},{"level":3,"text":"Changed","anchor":"changed","htmlText":"Changed"},{"level":3,"text":"Fixed","anchor":"fixed","htmlText":"Fixed"},{"level":3,"text":"Removed","anchor":"removed","htmlText":"Removed"},{"level":2,"text":"[2.5.0][] - 2020-06-14","anchor":"250---2020-06-14","htmlText":"[2.5.0][] - 2020-06-14"},{"level":3,"text":"Added","anchor":"added-1","htmlText":"Added"},{"level":3,"text":"Changed","anchor":"changed-1","htmlText":"Changed"},{"level":3,"text":"Fixed","anchor":"fixed-1","htmlText":"Fixed"},{"level":2,"text":"[2.4.0][] - 2019-05-15","anchor":"240---2019-05-15","htmlText":"[2.4.0][] - 2019-05-15"},{"level":3,"text":"Added","anchor":"added-2","htmlText":"Added"},{"level":3,"text":"Changed","anchor":"changed-2","htmlText":"Changed"},{"level":3,"text":"Fixed","anchor":"fixed-2","htmlText":"Fixed"},{"level":2,"text":"2.3.0 - 2017-03-11","anchor":"230---2017-03-11","htmlText":"2.3.0 - 2017-03-11"},{"level":3,"text":"Added","anchor":"added-3","htmlText":"Added"},{"level":3,"text":"Changed","anchor":"changed-3","htmlText":"Changed"},{"level":3,"text":"Deprecated","anchor":"deprecated","htmlText":"Deprecated"},{"level":3,"text":"Fixed","anchor":"fixed-3","htmlText":"Fixed"},{"level":3,"text":"Removed","anchor":"removed-1","htmlText":"Removed"},{"level":2,"text":"2.2.2 - 2017-01-29","anchor":"222---2017-01-29","htmlText":"2.2.2 - 2017-01-29"},{"level":3,"text":"Fixed","anchor":"fixed-4","htmlText":"Fixed"},{"level":2,"text":"2.2.1 - 2017-01-26","anchor":"221---2017-01-26","htmlText":"2.2.1 - 2017-01-26"},{"level":3,"text":"Added","anchor":"added-4","htmlText":"Added"},{"level":3,"text":"Changed","anchor":"changed-4","htmlText":"Changed"},{"level":3,"text":"Removed","anchor":"removed-2","htmlText":"Removed"},{"level":3,"text":"Fixed","anchor":"fixed-5","htmlText":"Fixed"},{"level":2,"text":"2.2.0-dev1 - 2016-09-19","anchor":"220-dev1---2016-09-19","htmlText":"2.2.0-dev1 - 2016-09-19"},{"level":3,"text":"Changed","anchor":"changed-5","htmlText":"Changed"},{"level":3,"text":"Fixed","anchor":"fixed-6","htmlText":"Fixed"},{"level":2,"text":"2.1.0 - 2016-04-12","anchor":"210---2016-04-12","htmlText":"2.1.0 - 2016-04-12"},{"level":3,"text":"Added","anchor":"added-5","htmlText":"Added"},{"level":3,"text":"Changed","anchor":"changed-6","htmlText":"Changed"},{"level":3,"text":"Removed","anchor":"removed-3","htmlText":"Removed"},{"level":2,"text":"2.0.0 - 2015-06-26","anchor":"200---2015-06-26","htmlText":"2.0.0 - 2015-06-26"},{"level":2,"text":"2.0.0-alpha.2","anchor":"200-alpha2","htmlText":"2.0.0-alpha.2"},{"level":3,"text":"Changed","anchor":"changed-7","htmlText":"Changed"},{"level":2,"text":"2.0.0-alpha.1","anchor":"200-alpha1","htmlText":"2.0.0-alpha.1"},{"level":3,"text":"Changed","anchor":"changed-8","htmlText":"Changed"},{"level":2,"text":"1.0.0 - 2006-04-08","anchor":"100---2006-04-08","htmlText":"1.0.0 - 2006-04-08"},{"level":3,"text":"Changed","anchor":"changed-9","htmlText":"Changed"},{"level":2,"text":"1.0.0-rc.2","anchor":"100-rc2","htmlText":"1.0.0-rc.2"},{"level":3,"text":"Changed","anchor":"changed-10","htmlText":"Changed"},{"level":2,"text":"1.0.0-rc.1","anchor":"100-rc1","htmlText":"1.0.0-rc.1"},{"level":3,"text":"Changed","anchor":"changed-11","htmlText":"Changed"},{"level":2,"text":"1.0.0-beta.5","anchor":"100-beta5","htmlText":"1.0.0-beta.5"},{"level":3,"text":"Changed","anchor":"changed-12","htmlText":"Changed"},{"level":2,"text":"1.0.0-beta.4","anchor":"100-beta4","htmlText":"1.0.0-beta.4"},{"level":3,"text":"Changed","anchor":"changed-13","htmlText":"Changed"},{"level":2,"text":"1.0.0-beta.3","anchor":"100-beta3","htmlText":"1.0.0-beta.3"},{"level":3,"text":"Changed","anchor":"changed-14","htmlText":"Changed"},{"level":2,"text":"1.0.0-beta.2","anchor":"100-beta2","htmlText":"1.0.0-beta.2"},{"level":3,"text":"Changed","anchor":"changed-15","htmlText":"Changed"},{"level":2,"text":"1.0.0-beta.1","anchor":"100-beta1","htmlText":"1.0.0-beta.1"},{"level":3,"text":"Changed","anchor":"changed-16","htmlText":"Changed"},{"level":2,"text":"1.0.0-alpha.2","anchor":"100-alpha2","htmlText":"1.0.0-alpha.2"},{"level":3,"text":"Changed","anchor":"changed-17","htmlText":"Changed"},{"level":2,"text":"1.0.0-alpha.1","anchor":"100-alpha1","htmlText":"1.0.0-alpha.1"},{"level":3,"text":"Added","anchor":"added-6","htmlText":"Added"}]},"issueTemplate":null,"discussionTemplate":null,"richText":"\u003carticle class=\"markdown-body entry-content container-lg\" itemprop=\"text\"\u003e\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch1 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eChangelog\u003c/h1\u003e\u003ca id=\"user-content-changelog\" class=\"anchor\" aria-label=\"Permalink: Changelog\" href=\"#changelog\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eAll notable changes to Python.NET will be documented in this file. This\nproject adheres to \u003ca href=\"http://semver.org/\" rel=\"nofollow\"\u003eSemantic Versioning\u003c/a\u003e.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003eThis document follows the conventions laid out in \u003ca href=\"http://keepachangelog.com/\" rel=\"nofollow\"\u003eKeep a CHANGELOG\u003c/a\u003e.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e\u003ca href=\"/tminka/pythonnet/compare/v2.3.0...HEAD\"\u003eUnreleased\u003c/a\u003e\u003c/h2\u003e\u003ca id=\"user-content-unreleased\" class=\"anchor\" aria-label=\"Permalink: Unreleased\" href=\"#unreleased\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eAdded\u003c/h3\u003e\u003ca id=\"user-content-added\" class=\"anchor\" aria-label=\"Permalink: Added\" href=\"#added\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eAbility to instantiate new .NET arrays using \u003ccode\u003eArray[T](dim1, dim2, ...)\u003c/code\u003e syntax\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eChanged\u003c/h3\u003e\u003ca id=\"user-content-changed\" class=\"anchor\" aria-label=\"Permalink: Changed\" href=\"#changed\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eDrop support for Python 2, 3.4, and 3.5\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ewchar_t\u003c/code\u003e size aka \u003ccode\u003eRuntime.UCS\u003c/code\u003e is now determined at runtime\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eclr.AddReference\u003c/code\u003e may now throw errors besides \u003ccode\u003eFileNotFoundException\u003c/code\u003e, that provide more\ndetails about the cause of the failure\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eclr.AddReference\u003c/code\u003e no longer adds \".dll\" implicitly\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ePyIter(PyObject)\u003c/code\u003e constructor replaced with static \u003ccode\u003ePyIter.GetIter(PyObject)\u003c/code\u003e method\u003c/li\u003e\n\u003cli\u003eBREAKING: Return values from .NET methods that return an interface are now automatically\nwrapped in that interface. This is a breaking change for users that rely on being\nable to access members that are part of the implementation class, but not the\ninterface.  Use the new \u003cstrong\u003eimplementation\u003c/strong\u003e or \u003cstrong\u003eraw_implementation\u003c/strong\u003e properties to\nif you need to \"downcast\" to the implementation class.\u003c/li\u003e\n\u003cli\u003eBREAKING: Parameters marked with \u003ccode\u003eParameterAttributes.Out\u003c/code\u003e are no longer returned in addition\nto the regular method return value (unless they are passed with \u003ccode\u003eref\u003c/code\u003e or \u003ccode\u003eout\u003c/code\u003e keyword).\u003c/li\u003e\n\u003cli\u003eBREAKING: Drop support for the long-deprecated CLR.* prefix.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ePyObject\u003c/code\u003e now implements \u003ccode\u003eIEnumerable\u0026lt;PyObject\u0026gt;\u003c/code\u003e in addition to \u003ccode\u003eIEnumerable\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eFixed\u003c/h3\u003e\u003ca id=\"user-content-fixed\" class=\"anchor\" aria-label=\"Permalink: Fixed\" href=\"#fixed\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eFix incorrect dereference of wrapper object in \u003ccode\u003etp_repr\u003c/code\u003e, which may result in a program crash\u003c/li\u003e\n\u003cli\u003eFix incorrect dereference in params array handling\u003c/li\u003e\n\u003cli\u003eFixes issue with function resolution when calling overloaded function with keyword arguments from python ([#1097][i1097])\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eobject[]\u003c/code\u003e parameters taking precedence when should not in overload resolution\u003c/li\u003e\n\u003cli\u003eFixed a bug where all .NET class instances were considered Iterable\u003c/li\u003e\n\u003cli\u003eFix incorrect choice of method to invoke when using keyword arguments.\u003c/li\u003e\n\u003cli\u003eFix non-delegate types incorrectly appearing as callable.\u003c/li\u003e\n\u003cli\u003eIndexers can now be used with interface objects\u003c/li\u003e\n\u003cli\u003eFixed a bug where indexers could not be used if they were inherited\u003c/li\u003e\n\u003cli\u003eMade it possible to use \u003ccode\u003e__len__\u003c/code\u003e also on \u003ccode\u003eICollection\u0026lt;\u0026gt;\u003c/code\u003e interface objects\u003c/li\u003e\n\u003cli\u003eMade it possible to call \u003ccode\u003eToString\u003c/code\u003e, \u003ccode\u003eGetHashCode\u003c/code\u003e, and \u003ccode\u003eGetType\u003c/code\u003e on inteface objects\u003c/li\u003e\n\u003cli\u003eFixed objects returned by enumerating \u003ccode\u003ePyObject\u003c/code\u003e being disposed too soon\u003c/li\u003e\n\u003cli\u003eIncorrectly using a non-generic type with type parameters now produces a helpful Python error instead of throwing NullReferenceException\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eRemoved\u003c/h3\u003e\u003ca id=\"user-content-removed\" class=\"anchor\" aria-label=\"Permalink: Removed\" href=\"#removed\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eimplicit assembly loading (you have to explicitly \u003ccode\u003eclr.AddReference\u003c/code\u003e before doing import)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e[2.5.0][] - 2020-06-14\u003c/h2\u003e\u003ca id=\"user-content-250---2020-06-14\" class=\"anchor\" aria-label=\"Permalink: [2.5.0][] - 2020-06-14\" href=\"#250---2020-06-14\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eThis version improves performance on benchmarks significantly compared to 2.3.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eAdded\u003c/h3\u003e\u003ca id=\"user-content-added-1\" class=\"anchor\" aria-label=\"Permalink: Added\" href=\"#added-1\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eAutomatic NuGet package generation in appveyor and local builds\u003c/li\u003e\n\u003cli\u003eFunction that sets \u003ccode\u003ePy_NoSiteFlag\u003c/code\u003e to 1.\u003c/li\u003e\n\u003cli\u003eSupport for Jetson Nano.\u003c/li\u003e\n\u003cli\u003eSupport for \u003ccode\u003e__len__\u003c/code\u003e for .NET classes that implement ICollection\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ePyExport\u003c/code\u003e attribute to hide .NET types from Python\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ePythonException.Format\u003c/code\u003e method to format exceptions the same as\n\u003ccode\u003etraceback.format_exception\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eRuntime.None\u003c/code\u003e to be able to pass \u003ccode\u003eNone\u003c/code\u003e as parameter into Python from .NET\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ePyObject.IsNone()\u003c/code\u003e to check if a Python object is None in .NET.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.8\u003c/li\u003e\n\u003cli\u003eCodecs as the designated way to handle automatic conversions between\n.NET and Python types\u003c/li\u003e\n\u003cli\u003eAdded Python 3 buffer api support and PyBuffer interface for fast byte and numpy array read/write ([#980][p980])\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eChanged\u003c/h3\u003e\u003ca id=\"user-content-changed-1\" class=\"anchor\" aria-label=\"Permalink: Changed\" href=\"#changed-1\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eAdded argument types information to \"No method matches given arguments\" message\u003c/li\u003e\n\u003cli\u003eMoved wheel import in setup.py inside of a try/except to prevent pip collection failures\u003c/li\u003e\n\u003cli\u003eRemoves \u003ccode\u003ePyLong_GetMax\u003c/code\u003e and \u003ccode\u003ePyClass_New\u003c/code\u003e when targetting Python3\u003c/li\u003e\n\u003cli\u003eImproved performance of calls from Python to C#\u003c/li\u003e\n\u003cli\u003eAdded support for converting python iterators to C# arrays\u003c/li\u003e\n\u003cli\u003eChanged usage of the obsolete function\n\u003ccode\u003eGetDelegateForFunctionPointer(IntPtr, Type)\u003c/code\u003e to\n\u003ccode\u003eGetDelegateForFunctionPointer\u0026lt;TDelegate\u0026gt;(IntPtr)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eWhen calling C# from Python, enable passing argument of any type to a\nparameter of C# type \u003ccode\u003eobject\u003c/code\u003e by wrapping it into \u003ccode\u003ePyObject\u003c/code\u003e instance.\n([#881][i881])\u003c/li\u003e\n\u003cli\u003eAdded support for kwarg parameters when calling .NET methods from Python\u003c/li\u003e\n\u003cli\u003eChanged method for finding MSBuild using vswhere\u003c/li\u003e\n\u003cli\u003eReworked \u003ccode\u003eFinalizer\u003c/code\u003e. Now objects drop into its queue upon finalization,\nwhich is periodically drained when new objects are created.\u003c/li\u003e\n\u003cli\u003eMarked \u003ccode\u003eRuntime.OperatingSystemName\u003c/code\u003e and \u003ccode\u003eRuntime.MachineName\u003c/code\u003e as\n\u003ccode\u003eObsolete\u003c/code\u003e, should never have been \u003ccode\u003epublic\u003c/code\u003e in the first place. They also\ndon't necessarily return a result that matches the \u003ccode\u003eplatform\u003c/code\u003e module's.\u003c/li\u003e\n\u003cli\u003eUnconditionally depend on \u003ccode\u003epycparser\u003c/code\u003e for the interop module generation\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eFixed\u003c/h3\u003e\u003ca id=\"user-content-fixed-1\" class=\"anchor\" aria-label=\"Permalink: Fixed\" href=\"#fixed-1\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eFixed runtime that fails loading when using pythonnet in an environment\ntogether with Nuitka\u003c/li\u003e\n\u003cli\u003eFixes bug where delegates get casts (dotnetcore)\u003c/li\u003e\n\u003cli\u003eDetermine size of interpreter longs at runtime\u003c/li\u003e\n\u003cli\u003eHandling exceptions ocurred in ModuleObject's getattribute\u003c/li\u003e\n\u003cli\u003eFill \u003ccode\u003e__classcell__\u003c/code\u003e correctly for Python subclasses of .NET types\u003c/li\u003e\n\u003cli\u003eFixed issue with params methods that are not passed an array.\u003c/li\u003e\n\u003cli\u003eUse UTF8 to encode strings passed to \u003ccode\u003ePyRun_String\u003c/code\u003e on Python 3\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e[2.4.0][] - 2019-05-15\u003c/h2\u003e\u003ca id=\"user-content-240---2019-05-15\" class=\"anchor\" aria-label=\"Permalink: [2.4.0][] - 2019-05-15\" href=\"#240---2019-05-15\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eAdded\u003c/h3\u003e\u003ca id=\"user-content-added-2\" class=\"anchor\" aria-label=\"Permalink: Added\" href=\"#added-2\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eAdded support for embedding python into dotnet core 2.0 (NetStandard 2.0)\u003c/li\u003e\n\u003cli\u003eAdded new build system (pythonnet.15.sln) based on dotnetcore-sdk/xplat(crossplatform msbuild).\nCurrently there two side-by-side build systems that produces the same output (net40) from the same sources.\nAfter a some transition time, current (mono/ msbuild 14.0) build system will be removed.\u003c/li\u003e\n\u003cli\u003eNUnit upgraded to 3.7 (eliminates travis-ci random bug)\u003c/li\u003e\n\u003cli\u003eAdded C# \u003ccode\u003ePythonEngine.AddShutdownHandler\u003c/code\u003e to help client code clean up on shutdown.\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eclr.GetClrType\u003c/code\u003e (\u003ca href=\"https://github.com/pythonnet/pythonnet/issues/432\" data-hovercard-type=\"issue\" data-hovercard-url=\"/pythonnet/pythonnet/issues/432/hovercard\"\u003e#432\u003c/a\u003e)(\u003ca href=\"https://github.com/pythonnet/pythonnet/pull/433\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"/pythonnet/pythonnet/pull/433/hovercard\"\u003e#433\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllowed passing \u003ccode\u003eNone\u003c/code\u003e for nullable args (\u003ca href=\"https://github.com/pythonnet/pythonnet/pull/460\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"/pythonnet/pythonnet/pull/460/hovercard\"\u003e#460\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded keyword arguments based on C# syntax for calling CPython methods (\u003ca href=\"https://github.com/pythonnet/pythonnet/pull/461\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"/pythonnet/pythonnet/pull/461/hovercard\"\u003e#461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCatches exceptions thrown in C# iterators (yield returns) and rethrows them in python (\u003ca href=\"https://github.com/pythonnet/pythonnet/issues/475\" data-hovercard-type=\"issue\" data-hovercard-url=\"/pythonnet/pythonnet/issues/475/hovercard\"\u003e#475\u003c/a\u003e)(\u003ca href=\"https://github.com/pythonnet/pythonnet/pull/693\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"/pythonnet/pythonnet/pull/693/hovercard\"\u003e#693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplemented GetDynamicMemberNames() for PyObject to allow dynamic object members to be visible in the debugger (\u003ca href=\"https://github.com/pythonnet/pythonnet/issues/443\" data-hovercard-type=\"issue\" data-hovercard-url=\"/pythonnet/pythonnet/issues/443/hovercard\"\u003e#443\u003c/a\u003e)(\u003ca href=\"https://github.com/pythonnet/pythonnet/pull/690\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"/pythonnet/pythonnet/pull/690/hovercard\"\u003e#690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIncorporated reference-style links to issues and pull requests in the CHANGELOG (\u003ca href=\"https://github.com/pythonnet/pythonnet/issues/608\" data-hovercard-type=\"issue\" data-hovercard-url=\"/pythonnet/pythonnet/issues/608/hovercard\"\u003e#608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded PyObject finalizer support, Python objects referred by C# can be auto collect now ([#692][p692]).\u003c/li\u003e\n\u003cli\u003eAdded detailed comments about aproaches and dangers to handle multi-app-domains (\u003ca href=\"https://github.com/pythonnet/pythonnet/pull/625\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"/pythonnet/pythonnet/pull/625/hovercard\"\u003e#625\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePython 3.7 support, builds and testing added. Defaults changed from Python 3.6 to 3.7 ([#698][p698])\u003c/li\u003e\n\u003cli\u003eAdded support for C# types to provide \u003ccode\u003e__repr__\u003c/code\u003e ([#680][p680])\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eChanged\u003c/h3\u003e\u003ca id=\"user-content-changed-2\" class=\"anchor\" aria-label=\"Permalink: Changed\" href=\"#changed-2\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003ePythonException included C# call stack\u003c/li\u003e\n\u003cli\u003eReattach python exception traceback information (#545)\u003c/li\u003e\n\u003cli\u003ePythonEngine.Intialize will now call \u003ccode\u003ePy_InitializeEx\u003c/code\u003e with a default value of 0, so signals will not be configured by default on embedding. This is different from the previous behaviour, where \u003ccode\u003ePy_Initialize\u003c/code\u003e was called instead, which sets initSigs to 1. (\u003ca href=\"https://github.com/pythonnet/pythonnet/issues/449\" data-hovercard-type=\"issue\" data-hovercard-url=\"/pythonnet/pythonnet/issues/449/hovercard\"\u003e#449\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactored MethodBinder.Bind in preparation to make it extensible (#829)\u003c/li\u003e\n\u003cli\u003eLook for installed Windows 10 sdk's during installation instead of relying on specific versions.\u003c/li\u003e\n\u003cli\u003eRemove \u003ccode\u003eLoadLibrary\u003c/code\u003e call. ([#880][p880])\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eFixed\u003c/h3\u003e\u003ca id=\"user-content-fixed-2\" class=\"anchor\" aria-label=\"Permalink: Fixed\" href=\"#fixed-2\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eFixed secondary PythonEngine.Initialize call, all sensitive static variables now reseted.\nThis is a hidden bug. Once python cleaning up enough memory, objects from previous engine run becomes corrupted. (\u003ca href=\"https://github.com/pythonnet/pythonnet/pull/534\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"/pythonnet/pythonnet/pull/534/hovercard\"\u003e#534\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed Visual Studio 2017 compat (\u003ca href=\"https://github.com/pythonnet/pythonnet/issues/434\" data-hovercard-type=\"issue\" data-hovercard-url=\"/pythonnet/pythonnet/issues/434/hovercard\"\u003e#434\u003c/a\u003e) for setup.py\u003c/li\u003e\n\u003cli\u003eFixed crashes when integrating pythonnet in Unity3d (\u003ca href=\"https://github.com/pythonnet/pythonnet/issues/714\" data-hovercard-type=\"issue\" data-hovercard-url=\"/pythonnet/pythonnet/issues/714/hovercard\"\u003e#714\u003c/a\u003e),\nrelated to unloading the Application Domain\u003c/li\u003e\n\u003cli\u003eFixed interop methods with Py_ssize_t. NetCoreApp 2.0 is more sensitive than net40 and requires this fix. (\u003ca href=\"https://github.com/pythonnet/pythonnet/pull/531\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"/pythonnet/pythonnet/pull/531/hovercard\"\u003e#531\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed crash on exit of the Python interpreter if a python class\nderived from a .NET class has a \u003ccode\u003e__namespace__\u003c/code\u003e or \u003ccode\u003e__assembly__\u003c/code\u003e\nattribute (\u003ca href=\"https://github.com/pythonnet/pythonnet/issues/481\" data-hovercard-type=\"issue\" data-hovercard-url=\"/pythonnet/pythonnet/issues/481/hovercard\"\u003e#481\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed conversion of 'float' and 'double' values (\u003ca href=\"https://github.com/pythonnet/pythonnet/issues/486\" data-hovercard-type=\"issue\" data-hovercard-url=\"/pythonnet/pythonnet/issues/486/hovercard\"\u003e#486\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed 'clrmethod' for python 2 (\u003ca href=\"https://github.com/pythonnet/pythonnet/issues/492\" data-hovercard-type=\"issue\" data-hovercard-url=\"/pythonnet/pythonnet/issues/492/hovercard\"\u003e#492\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed double calling of constructor when deriving from .NET class (\u003ca href=\"https://github.com/pythonnet/pythonnet/issues/495\" data-hovercard-type=\"issue\" data-hovercard-url=\"/pythonnet/pythonnet/issues/495/hovercard\"\u003e#495\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eclr.GetClrType\u003c/code\u003e when iterating over \u003ccode\u003eSystem\u003c/code\u003e members (\u003ca href=\"https://github.com/pythonnet/pythonnet/pull/607\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"/pythonnet/pythonnet/pull/607/hovercard\"\u003e#607\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eLockRecursionException\u003c/code\u003e when loading assemblies (\u003ca href=\"https://github.com/pythonnet/pythonnet/issues/627\" data-hovercard-type=\"issue\" data-hovercard-url=\"/pythonnet/pythonnet/issues/627/hovercard\"\u003e#627\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed errors breaking .NET Remoting on method invoke (\u003ca href=\"https://github.com/pythonnet/pythonnet/issues/276\" data-hovercard-type=\"issue\" data-hovercard-url=\"/pythonnet/pythonnet/issues/276/hovercard\"\u003e#276\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed PyObject.GetHashCode (\u003ca href=\"https://github.com/pythonnet/pythonnet/issues/676\" data-hovercard-type=\"issue\" data-hovercard-url=\"/pythonnet/pythonnet/issues/676/hovercard\"\u003e#676\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix memory leaks due to spurious handle incrementation ([#691][i691])\u003c/li\u003e\n\u003cli\u003eFix spurious assembly loading exceptions from private types ([#703][i703])\u003c/li\u003e\n\u003cli\u003eFix inheritance of non-abstract base methods (\u003ca href=\"https://github.com/pythonnet/pythonnet/pull/755\" data-hovercard-type=\"issue\" data-hovercard-url=\"/pythonnet/pythonnet/issues/755/hovercard\"\u003e#755\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e\u003ca href=\"/tminka/pythonnet/compare/v2.2.2...v2.3.0\"\u003e2.3.0\u003c/a\u003e - 2017-03-11\u003c/h2\u003e\u003ca id=\"user-content-230---2017-03-11\" class=\"anchor\" aria-label=\"Permalink: 2.3.0 - 2017-03-11\" href=\"#230---2017-03-11\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eAdded\u003c/h3\u003e\u003ca id=\"user-content-added-3\" class=\"anchor\" aria-label=\"Permalink: Added\" href=\"#added-3\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eAdded Code Coverage (\u003ca href=\"https://github.com/pythonnet/pythonnet/pull/345\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"/pythonnet/pythonnet/pull/345/hovercard\"\u003e#345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003ePySys_SetArgvEx\u003c/code\u003e (\u003ca href=\"https://github.com/pythonnet/pythonnet/pull/347\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"/pythonnet/pythonnet/pull/347/hovercard\"\u003e#347\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded XML Documentation (\u003ca href=\"https://github.com/pythonnet/pythonnet/pull/349\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"/pythonnet/pythonnet/pull/349/hovercard\"\u003e#349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eEmbedded_Tests\u003c/code\u003e on AppVeyor (\u003ca href=\"https://github.com/pythonnet/pythonnet/issues/224\" data-hovercard-type=\"issue\" data-hovercard-url=\"/pythonnet/pythonnet/issues/224/hovercard\"\u003e#224\u003c/a\u003e)(\u003ca href=\"https://github.com/pythonnet/pythonnet/pull/353\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"/pythonnet/pythonnet/pull/353/hovercard\"\u003e#353\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eEmbedded_Tests\u003c/code\u003e on Travis (\u003ca href=\"https://github.com/pythonnet/pythonnet/issues/224\" data-hovercard-type=\"issue\" data-hovercard-url=\"/pythonnet/pythonnet/issues/224/hovercard\"\u003e#224\u003c/a\u003e)(\u003ca href=\"https://github.com/pythonnet/pythonnet/pull/391\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"/pythonnet/pythonnet/pull/391/hovercard\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded PY3 settings to solution configuration-manager (\u003ca href=\"https://github.com/pythonnet/pythonnet/pull/346\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"/pythonnet/pythonnet/pull/346/hovercard\"\u003e#346\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eSlack\u003c/code\u003e (\u003ca href=\"https://github.com/pythonnet/pythonnet/pull/384\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"/pythonnet/pythonnet/pull/384/hovercard\"\u003e#384\u003c/a\u003e)(\u003ca href=\"https://github.com/pythonnet/pythonnet/issues/383\" data-hovercard-type=\"issue\" data-hovercard-url=\"/pythonnet/pythonnet/issues/383/hovercard\"\u003e#383\u003c/a\u003e)(\u003ca href=\"https://github.com/pythonnet/pythonnet/pull/386\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"/pythonnet/pythonnet/pull/386/hovercard\"\u003e#386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded function of passing an arbitrary .NET object as the value\nof an attribute of \u003ccode\u003ePyObject\u003c/code\u003e (\u003ca href=\"https://github.com/pythonnet/pythonnet/issues/370\" data-hovercard-type=\"issue\" data-hovercard-url=\"/pythonnet/pythonnet/issues/370/hovercard\"\u003e#370\u003c/a\u003e)(\u003ca href=\"https://github.com/pythonnet/pythonnet/pull/373\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"/pythonnet/pythonnet/pull/373/hovercard\"\u003e#373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eCoverity scan\u003c/code\u003e (\u003ca href=\"https://github.com/pythonnet/pythonnet/issues/390\" data-hovercard-type=\"issue\" data-hovercard-url=\"/pythonnet/pythonnet/issues/390/hovercard\"\u003e#390\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003ebumpversion\u003c/code\u003e for version control (\u003ca href=\"https://github.com/pythonnet/pythonnet/issues/319\" data-hovercard-type=\"issue\" data-hovercard-url=\"/pythonnet/pythonnet/issues/319/hovercard\"\u003e#319\u003c/a\u003e)(\u003ca href=\"https://github.com/pythonnet/pythonnet/pull/398\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"/pythonnet/pythonnet/pull/398/hovercard\"\u003e#398\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003etox\u003c/code\u003e for local testing (\u003ca href=\"https://github.com/pythonnet/pythonnet/pull/345\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"/pythonnet/pythonnet/pull/345/hovercard\"\u003e#345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003erequirements.txt\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdded to \u003ccode\u003ePythonEngine\u003c/code\u003e methods \u003ccode\u003eEval\u003c/code\u003e and \u003ccode\u003eExec\u003c/code\u003e (\u003ca href=\"https://github.com/pythonnet/pythonnet/pull/389\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"/pythonnet/pythonnet/pull/389/hovercard\"\u003e#389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded implementations of \u003ccode\u003eICustomMarshal\u003c/code\u003e (\u003ca href=\"https://github.com/pythonnet/pythonnet/pull/407\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"/pythonnet/pythonnet/pull/407/hovercard\"\u003e#407\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded docker images (\u003ca href=\"https://github.com/pythonnet/pythonnet/issues/322\" data-hovercard-type=\"issue\" data-hovercard-url=\"/pythonnet/pythonnet/issues/322/hovercard\"\u003e#322\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded hooks in \u003ccode\u003epyinstaller\u003c/code\u003e and \u003ccode\u003ecx_freeze\u003c/code\u003e for \u003ccode\u003epythonnet\u003c/code\u003e (\u003ca href=\"https://github.com/pythonnet/pythonnet/issues/66\" data-hovercard-type=\"issue\" data-hovercard-url=\"/pythonnet/pythonnet/issues/66/hovercard\"\u003e#66\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eChanged\u003c/h3\u003e\u003ca id=\"user-content-changed-3\" class=\"anchor\" aria-label=\"Permalink: Changed\" href=\"#changed-3\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eRefactored python \u003ccode\u003eunittests\u003c/code\u003e (\u003ca href=\"https://github.com/pythonnet/pythonnet/pull/329\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"/pythonnet/pythonnet/pull/329/hovercard\"\u003e#329\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactored python \u003ccode\u003esetup.py\u003c/code\u003e (\u003ca href=\"https://github.com/pythonnet/pythonnet/pull/337\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"/pythonnet/pythonnet/pull/337/hovercard\"\u003e#337\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactored remaining of Build Directives on \u003ccode\u003eruntime.cs\u003c/code\u003e (\u003ca href=\"https://github.com/pythonnet/pythonnet/pull/339\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"/pythonnet/pythonnet/pull/339/hovercard\"\u003e#339\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactored \u003ccode\u003eEmbedded_Tests\u003c/code\u003e to make easier to write tests (\u003ca href=\"https://github.com/pythonnet/pythonnet/pull/369\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"/pythonnet/pythonnet/pull/369/hovercard\"\u003e#369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eunittests\u003c/code\u003e to \u003ccode\u003epytest\u003c/code\u003e (\u003ca href=\"https://github.com/pythonnet/pythonnet/pull/368\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"/pythonnet/pythonnet/pull/368/hovercard\"\u003e#368\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpgraded NUnit framework from \u003ccode\u003e2.6.3\u003c/code\u003e to \u003ccode\u003e3.5.0\u003c/code\u003e (\u003ca href=\"https://github.com/pythonnet/pythonnet/pull/341\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"/pythonnet/pythonnet/pull/341/hovercard\"\u003e#341\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDowngraded NUnit framework from \u003ccode\u003e3.5.0\u003c/code\u003e to \u003ccode\u003e2.6.4\u003c/code\u003e (\u003ca href=\"https://github.com/pythonnet/pythonnet/pull/353\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"/pythonnet/pythonnet/pull/353/hovercard\"\u003e#353\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpgraded NUnit framework from \u003ccode\u003e2.6.4\u003c/code\u003e to \u003ccode\u003e3.6.0\u003c/code\u003e (\u003ca href=\"https://github.com/pythonnet/pythonnet/pull/371\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"/pythonnet/pythonnet/pull/371/hovercard\"\u003e#371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUnfroze Mono version on Travis (\u003ca href=\"https://github.com/pythonnet/pythonnet/pull/345\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"/pythonnet/pythonnet/pull/345/hovercard\"\u003e#345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003econda.recipe\u003c/code\u003e build to only pull-requests (\u003ca href=\"https://github.com/pythonnet/pythonnet/pull/345\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"/pythonnet/pythonnet/pull/345/hovercard\"\u003e#345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCombine \u003ccode\u003ePy_DEBUG\u003c/code\u003e and \u003ccode\u003ePYTHON_WITH_PYDEBUG\u003c/code\u003e flags (\u003ca href=\"https://github.com/pythonnet/pythonnet/issues/362\" data-hovercard-type=\"issue\" data-hovercard-url=\"/pythonnet/pythonnet/issues/362/hovercard\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eDeprecated\u003c/h3\u003e\u003ca id=\"user-content-deprecated\" class=\"anchor\" aria-label=\"Permalink: Deprecated\" href=\"#deprecated\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eDeprecated \u003ccode\u003eRunString\u003c/code\u003e (\u003ca href=\"https://github.com/pythonnet/pythonnet/issues/401\" data-hovercard-type=\"issue\" data-hovercard-url=\"/pythonnet/pythonnet/issues/401/hovercard\"\u003e#401\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eFixed\u003c/h3\u003e\u003ca id=\"user-content-fixed-3\" class=\"anchor\" aria-label=\"Permalink: Fixed\" href=\"#fixed-3\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eFixed crash during Initialization (\u003ca href=\"https://github.com/pythonnet/pythonnet/issues/262\" data-hovercard-type=\"issue\" data-hovercard-url=\"/pythonnet/pythonnet/issues/262/hovercard\"\u003e#262\u003c/a\u003e)(\u003ca href=\"https://github.com/pythonnet/pythonnet/pull/343\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"/pythonnet/pythonnet/pull/343/hovercard\"\u003e#343\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed crash during Shutdown (\u003ca href=\"https://github.com/pythonnet/pythonnet/pull/365\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"/pythonnet/pythonnet/pull/365/hovercard\"\u003e#365\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed multiple build warnings\u003c/li\u003e\n\u003cli\u003eFixed method signature match for Object Type (\u003ca href=\"https://github.com/pythonnet/pythonnet/issues/203\" data-hovercard-type=\"issue\" data-hovercard-url=\"/pythonnet/pythonnet/issues/203/hovercard\"\u003e#203\u003c/a\u003e)(\u003ca href=\"https://github.com/pythonnet/pythonnet/pull/377\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"/pythonnet/pythonnet/pull/377/hovercard\"\u003e#377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed outdated version number in AssemblyInfo (\u003ca href=\"https://github.com/pythonnet/pythonnet/pull/398\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"/pythonnet/pythonnet/pull/398/hovercard\"\u003e#398\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed wrong version number in \u003ccode\u003econda.recipe\u003c/code\u003e (\u003ca href=\"https://github.com/pythonnet/pythonnet/pull/398\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"/pythonnet/pythonnet/pull/398/hovercard\"\u003e#398\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed fixture location for Python tests and \u003ccode\u003eEmbedded_Tests\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003ePythonException\u003c/code\u003e crash during Shutdown (\u003ca href=\"https://github.com/pythonnet/pythonnet/pull/400\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"/pythonnet/pythonnet/pull/400/hovercard\"\u003e#400\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eAppDomain\u003c/code\u003e unload during GC (\u003ca href=\"https://github.com/pythonnet/pythonnet/issues/397\" data-hovercard-type=\"issue\" data-hovercard-url=\"/pythonnet/pythonnet/issues/397/hovercard\"\u003e#397\u003c/a\u003e)(\u003ca href=\"https://github.com/pythonnet/pythonnet/pull/400\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"/pythonnet/pythonnet/pull/400/hovercard\"\u003e#400\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003ePy_Main\u003c/code\u003e \u0026amp; \u003ccode\u003ePySys_SetArgvEx\u003c/code\u003e \u003ccode\u003eno mem error\u003c/code\u003e on \u003ccode\u003eUCS4/PY3\u003c/code\u003e (\u003ca href=\"https://github.com/pythonnet/pythonnet/pull/399\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"/pythonnet/pythonnet/pull/399/hovercard\"\u003e#399\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003ePython.Runtime.dll.config\u003c/code\u003e on macOS (\u003ca href=\"https://github.com/pythonnet/pythonnet/issues/120\" data-hovercard-type=\"issue\" data-hovercard-url=\"/pythonnet/pythonnet/issues/120/hovercard\"\u003e#120\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed crash on \u003ccode\u003ePythonEngine.Version\u003c/code\u003e (\u003ca href=\"https://github.com/pythonnet/pythonnet/issues/413\" data-hovercard-type=\"issue\" data-hovercard-url=\"/pythonnet/pythonnet/issues/413/hovercard\"\u003e#413\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003ePythonEngine.PythonPath\u003c/code\u003e issues (\u003ca href=\"https://github.com/pythonnet/pythonnet/issues/179\" data-hovercard-type=\"issue\" data-hovercard-url=\"/pythonnet/pythonnet/issues/179/hovercard\"\u003e#179\u003c/a\u003e)(\u003ca href=\"https://github.com/pythonnet/pythonnet/issues/414\" data-hovercard-type=\"issue\" data-hovercard-url=\"/pythonnet/pythonnet/issues/414/hovercard\"\u003e#414\u003c/a\u003e)(\u003ca href=\"https://github.com/pythonnet/pythonnet/pull/415\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"/pythonnet/pythonnet/pull/415/hovercard\"\u003e#415\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed missing information on 'No method matches given arguments' by adding the method name\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eRemoved\u003c/h3\u003e\u003ca id=\"user-content-removed-1\" class=\"anchor\" aria-label=\"Permalink: Removed\" href=\"#removed-1\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eRemoved \u003ccode\u003esix\u003c/code\u003e dependency for \u003ccode\u003eunittests\u003c/code\u003e (\u003ca href=\"https://github.com/pythonnet/pythonnet/pull/329\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"/pythonnet/pythonnet/pull/329/hovercard\"\u003e#329\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoved \u003ccode\u003eMono.Unix\u003c/code\u003e dependency for \u003ccode\u003eUCS4\u003c/code\u003e (\u003ca href=\"https://github.com/pythonnet/pythonnet/pull/360\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"/pythonnet/pythonnet/pull/360/hovercard\"\u003e#360\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoved need for \u003ccode\u003ePython.Runtime.dll.config\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRemoved PY32 build option \u003ccode\u003ePYTHON_WITH_WIDE_UNICODE\u003c/code\u003e (\u003ca href=\"https://github.com/pythonnet/pythonnet/issues/417\" data-hovercard-type=\"issue\" data-hovercard-url=\"/pythonnet/pythonnet/issues/417/hovercard\"\u003e#417\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e\u003ca href=\"/tminka/pythonnet/compare/v2.2.1...v2.2.2\"\u003e2.2.2\u003c/a\u003e - 2017-01-29\u003c/h2\u003e\u003ca id=\"user-content-222---2017-01-29\" class=\"anchor\" aria-label=\"Permalink: 2.2.2 - 2017-01-29\" href=\"#222---2017-01-29\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eFixed\u003c/h3\u003e\u003ca id=\"user-content-fixed-4\" class=\"anchor\" aria-label=\"Permalink: Fixed\" href=\"#fixed-4\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eMissing files from packaging (\u003ca href=\"https://github.com/pythonnet/pythonnet/issues/336\" data-hovercard-type=\"issue\" data-hovercard-url=\"/pythonnet/pythonnet/issues/336/hovercard\"\u003e#336\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e\u003ca href=\"/tminka/pythonnet/compare/v2.2.0-dev1...v2.2.1\"\u003e2.2.1\u003c/a\u003e - 2017-01-26\u003c/h2\u003e\u003ca id=\"user-content-221---2017-01-26\" class=\"anchor\" aria-label=\"Permalink: 2.2.1 - 2017-01-26\" href=\"#221---2017-01-26\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003e\u003ccode\u003ev2.2.0\u003c/code\u003e had a release issue on PyPi. Bumped to \u003ccode\u003ev2.2.1\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eAdded\u003c/h3\u003e\u003ca id=\"user-content-added-4\" class=\"anchor\" aria-label=\"Permalink: Added\" href=\"#added-4\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003ePython 3.6 support (\u003ca href=\"https://github.com/pythonnet/pythonnet/pull/310\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"/pythonnet/pythonnet/pull/310/hovercard\"\u003e#310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003e__version__\u003c/code\u003e to module (\u003ca href=\"https://github.com/pythonnet/pythonnet/pull/312\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"/pythonnet/pythonnet/pull/312/hovercard\"\u003e#312\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003econda\u003c/code\u003e recipe (\u003ca href=\"https://github.com/pythonnet/pythonnet/pull/281\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"/pythonnet/pythonnet/pull/281/hovercard\"\u003e#281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNuget update on build (\u003ca href=\"https://github.com/pythonnet/pythonnet/pull/268\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"/pythonnet/pythonnet/pull/268/hovercard\"\u003e#268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003e__cause__\u003c/code\u003e attribute on exception (\u003ca href=\"https://github.com/pythonnet/pythonnet/pull/287\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"/pythonnet/pythonnet/pull/287/hovercard\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eChanged\u003c/h3\u003e\u003ca id=\"user-content-changed-4\" class=\"anchor\" aria-label=\"Permalink: Changed\" href=\"#changed-4\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eLicense to MIT (\u003ca href=\"https://github.com/pythonnet/pythonnet/pull/314\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"/pythonnet/pythonnet/pull/314/hovercard\"\u003e#314\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eProject clean-up (\u003ca href=\"https://github.com/pythonnet/pythonnet/pull/320\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"/pythonnet/pythonnet/pull/320/hovercard\"\u003e#320\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactor \u003ccode\u003e#if\u003c/code\u003e directives\u003c/li\u003e\n\u003cli\u003eRename Decref/Incref to XDecref/XIncre (\u003ca href=\"https://github.com/pythonnet/pythonnet/pull/275\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"/pythonnet/pythonnet/pull/275/hovercard\"\u003e#275\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove printing if Decref is called with NULL (\u003ca href=\"https://github.com/pythonnet/pythonnet/pull/275\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"/pythonnet/pythonnet/pull/275/hovercard\"\u003e#275\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eRemoved\u003c/h3\u003e\u003ca id=\"user-content-removed-2\" class=\"anchor\" aria-label=\"Permalink: Removed\" href=\"#removed-2\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003ePython 2.6 support (\u003ca href=\"https://github.com/pythonnet/pythonnet/issues/270\" data-hovercard-type=\"issue\" data-hovercard-url=\"/pythonnet/pythonnet/issues/270/hovercard\"\u003e#270\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePython 3.2 support (\u003ca href=\"https://github.com/pythonnet/pythonnet/issues/270\" data-hovercard-type=\"issue\" data-hovercard-url=\"/pythonnet/pythonnet/issues/270/hovercard\"\u003e#270\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eFixed\u003c/h3\u003e\u003ca id=\"user-content-fixed-5\" class=\"anchor\" aria-label=\"Permalink: Fixed\" href=\"#fixed-5\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eFixed \u003ccode\u003eisinstance\u003c/code\u003e refcount_leak (\u003ca href=\"https://github.com/pythonnet/pythonnet/pull/273\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"/pythonnet/pythonnet/pull/273/hovercard\"\u003e#273\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eComparison Operators (\u003ca href=\"https://github.com/pythonnet/pythonnet/pull/294\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"/pythonnet/pythonnet/pull/294/hovercard\"\u003e#294\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved Linux support (\u003ca href=\"https://github.com/pythonnet/pythonnet/pull/300\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"/pythonnet/pythonnet/pull/300/hovercard\"\u003e#300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eException pickling (\u003ca href=\"https://github.com/pythonnet/pythonnet/pull/286\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"/pythonnet/pythonnet/pull/286/hovercard\"\u003e#286\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e\u003ca href=\"/tminka/pythonnet/compare/v2.1.0...v2.2.0-dev1\"\u003e2.2.0-dev1\u003c/a\u003e - 2016-09-19\u003c/h2\u003e\u003ca id=\"user-content-220-dev1---2016-09-19\" class=\"anchor\" aria-label=\"Permalink: 2.2.0-dev1 - 2016-09-19\" href=\"#220-dev1---2016-09-19\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eChanged\u003c/h3\u003e\u003ca id=\"user-content-changed-5\" class=\"anchor\" aria-label=\"Permalink: Changed\" href=\"#changed-5\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eSwitch to C# 6.0 (\u003ca href=\"https://github.com/pythonnet/pythonnet/pull/219\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"/pythonnet/pythonnet/pull/219/hovercard\"\u003e#219\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esetup.py\u003c/code\u003e improvements for locating build tools (\u003ca href=\"https://github.com/pythonnet/pythonnet/pull/208\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"/pythonnet/pythonnet/pull/208/hovercard\"\u003e#208\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eunmanaged exports updated (\u003ca href=\"https://github.com/pythonnet/pythonnet/pull/206\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"/pythonnet/pythonnet/pull/206/hovercard\"\u003e#206\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMono update pinned to 4.2.4.4 (\u003ca href=\"https://github.com/pythonnet/pythonnet/pull/233\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"/pythonnet/pythonnet/pull/233/hovercard\"\u003e#233\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eFixed\u003c/h3\u003e\u003ca id=\"user-content-fixed-6\" class=\"anchor\" aria-label=\"Permalink: Fixed\" href=\"#fixed-6\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eFixed relative imports (\u003ca href=\"https://github.com/pythonnet/pythonnet/pull/219\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"/pythonnet/pythonnet/pull/219/hovercard\"\u003e#219\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed recursive types (\u003ca href=\"https://github.com/pythonnet/pythonnet/pull/250\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"/pythonnet/pythonnet/pull/250/hovercard\"\u003e#250\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDemo fix - stream reading (\u003ca href=\"https://github.com/pythonnet/pythonnet/pull/225\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"/pythonnet/pythonnet/pull/225/hovercard\"\u003e#225\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e\u003ca href=\"/tminka/pythonnet/compare/v2.0.0...v2.1.0\"\u003e2.1.0\u003c/a\u003e - 2016-04-12\u003c/h2\u003e\u003ca id=\"user-content-210---2016-04-12\" class=\"anchor\" aria-label=\"Permalink: 2.1.0 - 2016-04-12\" href=\"#210---2016-04-12\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eAdded\u003c/h3\u003e\u003ca id=\"user-content-added-5\" class=\"anchor\" aria-label=\"Permalink: Added\" href=\"#added-5\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eAdded Python 3.2 support. (\u003ca href=\"https://github.com/pythonnet/pythonnet/pull/78\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"/pythonnet/pythonnet/pull/78/hovercard\"\u003e#78\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded Python 3.3 support. (\u003ca href=\"https://github.com/pythonnet/pythonnet/pull/78\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"/pythonnet/pythonnet/pull/78/hovercard\"\u003e#78\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded Python 3.4 support. (\u003ca href=\"https://github.com/pythonnet/pythonnet/pull/78\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"/pythonnet/pythonnet/pull/78/hovercard\"\u003e#78\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded Python 3.5 support. (\u003ca href=\"https://github.com/pythonnet/pythonnet/pull/163\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"/pythonnet/pythonnet/pull/163/hovercard\"\u003e#163\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eManaged types can be sub-classed in Python (\u003ca href=\"https://github.com/pythonnet/pythonnet/pull/78\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"/pythonnet/pythonnet/pull/78/hovercard\"\u003e#78\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUses dynamic objects for cleaner code when embedding Python (\u003ca href=\"https://github.com/pythonnet/pythonnet/pull/78\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"/pythonnet/pythonnet/pull/78/hovercard\"\u003e#78\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eChanged\u003c/h3\u003e\u003ca id=\"user-content-changed-6\" class=\"anchor\" aria-label=\"Permalink: Changed\" href=\"#changed-6\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eBetter Linux support (with or without --enable-shared option) (\u003ca href=\"https://github.com/pythonnet/pythonnet/pull/78\" data-hovercard-type=\"pull_request\" data-hovercard-url=\"/pythonnet/pythonnet/pull/78/hovercard\"\u003e#78\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eRemoved\u003c/h3\u003e\u003ca id=\"user-content-removed-3\" class=\"anchor\" aria-label=\"Permalink: Removed\" href=\"#removed-3\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eImplicit Type Casting (\u003ca href=\"https://github.com/pythonnet/pythonnet/issues/131\" data-hovercard-type=\"issue\" data-hovercard-url=\"/pythonnet/pythonnet/issues/131/hovercard\"\u003e#131\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e\u003ca href=\"/tminka/pythonnet/compare/1.0...v2.0.0\"\u003e2.0.0\u003c/a\u003e - 2015-06-26\u003c/h2\u003e\u003ca id=\"user-content-200---2015-06-26\" class=\"anchor\" aria-label=\"Permalink: 2.0.0 - 2015-06-26\" href=\"#200---2015-06-26\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eRelease\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e2.0.0-alpha.2\u003c/h2\u003e\u003ca id=\"user-content-200-alpha2\" class=\"anchor\" aria-label=\"Permalink: 2.0.0-alpha.2\" href=\"#200-alpha2\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eChanged\u003c/h3\u003e\u003ca id=\"user-content-changed-7\" class=\"anchor\" aria-label=\"Permalink: Changed\" href=\"#changed-7\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eFirst work on Python 2.5 compatibility. The destination version can be\nset by defining PYTHON24 or PYTHON25. Python 2.6 compatibility is in\nwork.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eAdded VS 2005 solution and project files including a UnitTest\nconfiguration which runs the unit test suite.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eEnhanced unit test suite. All test cases are combined in a single\ntest suite now.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eFixed bugs in generics support for all Python versions.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eFixed exception bugs for Python 2.5+. When compiled for Python 2.5+ all\nmanaged exceptions are based on Python's \u003ccode\u003eexceptions.Exception\u003c/code\u003e class.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eAdded deprecation warnings for importing from \u003ccode\u003eCLR.*\u003c/code\u003e and the CLR module.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eImplemented support for methods with variable arguments\n\u003ccode\u003espam(params object[] egg)\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eFixed Mono support by adding a custom marshaler for UCS-4 unicode,\nfixing a some ref counter bugs and creating a new makefile.mono.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eAdded a standard python extension to load the clr environment.\nThe \u003ccode\u003esrc/monoclr/\u003c/code\u003e directory contains additional sample code like a\nPython binary linked against \u003ccode\u003elibpython2.x.so\u003c/code\u003e and some example code\nhow to embed Mono and PythonNet in a C application.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eAdded yet another python prompt. This time it's a C application that\nembedds both Python and Mono. It may be useful as an example app for\nothers and I need it to debug a nasty bug.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eImplemented \u003ccode\u003eModuleFunctionAttribute\u003c/code\u003e and added\n\u003ccode\u003eForbidPythonThreadsAttribute\u003c/code\u003e. The latter is required for module\nfunctions which invoke Python methods.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eAdded \u003ccode\u003eclr.setPreload()\u003c/code\u003e, \u003ccode\u003eclr.getPreload()\u003c/code\u003e,\n\u003ccode\u003eclr.AddReference(\"assembly name\")\u003c/code\u003e, \u003ccode\u003eclr.FindAssembly(\"name\")\u003c/code\u003e\nand \u003ccode\u003eclr.ListAssemblies(verbose)\u003c/code\u003e. Automatic preloading can be enabled\nwith clr.setPreload/True). Preloading is automatically enabled for\ninteractive Python shells and disabled in all other cases.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eNew Makefile that works for Windows and Mono and autodetects the Python\nversion and UCS 2/4 setting.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eAdded code for Python 2.3. PythonNet can be build for Python 2.3 again\nbut it is not fully supported.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eChanged the PythonException.Message value so it displays the name of\nthe exception class \u003ccode\u003eException\u003c/code\u003e instead of its representation\n\u003ccode\u003e\u0026lt;type 'exceptions.Exception'\u0026gt;\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eAdded \u003ccode\u003ePython.Runtime.dll.config\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e2.0.0-alpha.1\u003c/h2\u003e\u003ca id=\"user-content-200-alpha1\" class=\"anchor\" aria-label=\"Permalink: 2.0.0-alpha.1\" href=\"#200-alpha1\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eChanged\u003c/h3\u003e\u003ca id=\"user-content-changed-8\" class=\"anchor\" aria-label=\"Permalink: Changed\" href=\"#changed-8\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eMoved the Python for .NET project to Sourceforge and moved version\ncontrol to Subversion.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eRemoved \u003ccode\u003eCallConvCdecl\u003c/code\u003e attributes and the IL hack that they supported.\n.NET 2.x now supports \u003ccode\u003eUnmanagedFunctionPointer\u003c/code\u003e, which does the right\nthing without the hackery required in 1.x. This removes a dependency\non ILASM to build the package and better supports Mono (in theory).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eRefactored import and assembly management machinery. The old \u003ccode\u003eCLR.\u003c/code\u003e\nsyntax for import is deprecated, but still supported until 3.x. The\nrecommended style now is to use \u003ccode\u003efrom System import xxx\u003c/code\u003e, etc. We\nalso now support \u003ccode\u003efrom X import *\u003c/code\u003e correctly.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eImplemented a (lowercase) \u003ccode\u003eclr\u003c/code\u003e module to match IronPython for code\ncompatibility. Methods of this module should be used to explicitly\nload assemblies. Implicit (name-based) assembly loading will still\nwork until 3.x, but it is deprecated.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eImplemented support for generic types and generic methods using the\nsame patterns and syntax as IronPython. See the documentation for\nusage details.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eMany small and large performance improvements, switched to generic\ncollections for some internals, better algorithms for assembly\nscanning, etc.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eFixed an unboxing issue in generated delegate implementation code\nthat affected delegates that return value types.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e\u003ca href=\"https://github.com/pythonnet/pythonnet/releases/tag/1.0\"\u003e1.0.0\u003c/a\u003e - 2006-04-08\u003c/h2\u003e\u003ca id=\"user-content-100---2006-04-08\" class=\"anchor\" aria-label=\"Permalink: 1.0.0 - 2006-04-08\" href=\"#100---2006-04-08\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eChanged\u003c/h3\u003e\u003ca id=\"user-content-changed-9\" class=\"anchor\" aria-label=\"Permalink: Changed\" href=\"#changed-9\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eBackported the refactored import and assembly management from the 2.x\nline, mainly to improve the possibility of code-compatibility with\nIronPython.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e1.0.0-rc.2\u003c/h2\u003e\u003ca id=\"user-content-100-rc2\" class=\"anchor\" aria-label=\"Permalink: 1.0.0-rc.2\" href=\"#100-rc2\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eChanged\u003c/h3\u003e\u003ca id=\"user-content-changed-10\" class=\"anchor\" aria-label=\"Permalink: Changed\" href=\"#changed-10\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eChanged some uses of Finalize as a static method name that confused the\nMono compiler and people reading the code. Note that this may be a\nbreaking change if anyone was calling \u003ccode\u003ePythonEngine.Finalize()\u003c/code\u003e. If so,\nyou should now use \u003ccode\u003ePythonEngine.Shutdown()\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eTweaked assembly lookup to ensure that assemblies can be found in the\ncurrent working directory, even after changing directories using things\nlike \u003ccode\u003eos.chdir()\u003c/code\u003e from Python.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eFixed some incorrect finalizers (thanks to Greg Chapman for the report)\nthat may have caused some threading oddities.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eTweaked support for out and ref parameters. If a method has a return\ntype of void and a single ref or out parameter, that parameter will be\nreturned as the result of the method. This matches the current behavior\nof IronPython and makes it more likely that code can be moved between\nPython for .NET and IP in the future.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eRefactored part of the assembly manager to remove a potential case of\nthread-deadlock in multi-threaded applications.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eAdded a \u003ccode\u003e__str__\u003c/code\u003e method to managed exceptions that returns the Message\nattribute of the exception and the StackTrace (if available).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e1.0.0-rc.1\u003c/h2\u003e\u003ca id=\"user-content-100-rc1\" class=\"anchor\" aria-label=\"Permalink: 1.0.0-rc.1\" href=\"#100-rc1\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eChanged\u003c/h3\u003e\u003ca id=\"user-content-changed-11\" class=\"anchor\" aria-label=\"Permalink: Changed\" href=\"#changed-11\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eImplemented a workaround for the fact that exceptions cannot be new-style\nclasses in the CPython interpreter. Managed exceptions can now be raised\nand caught naturally from Python (hooray!)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eImplemented support for invoking methods with out and ref parameters.\nBecause there is no real equivalent to these in Python, methods that\nhave out or ref parameters will return a tuple. The tuple will contain\nthe result of the method as its first item, followed by out parameter\nvalues in the order of their declaration in the method signature.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eFixed a refcount problem that caused a crash when CLR was imported in\nan existing installed Python interpreter.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eAdded an automatic conversion from Python strings to \u003ccode\u003ebyte[]\u003c/code\u003e. This makes\nit easier to pass \u003ccode\u003ebyte[]\u003c/code\u003e data to managed methods (or set properties,\netc.) as a Python string without having to write explicit conversion\ncode. Also works for sbyte arrays. Note that \u003ccode\u003ebyte\u003c/code\u003e and \u003ccode\u003esbyte\u003c/code\u003e arrays\nreturned from managed methods or obtained from properties or fields\ndo \u003cem\u003enot\u003c/em\u003e get converted to Python strings - they remain instances of\n\u003ccode\u003eByte[]\u003c/code\u003e or \u003ccode\u003eSByte[]\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eAdded conversion of generic Python sequences to object arrays when\nappropriate (thanks to Mackenzie Straight for the patch).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eAdded a bit of cautionary documentation for embedders, focused on\ncorrect handling of the Python global interpreter lock from managed\ncode for code that calls into Python.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003e\u003ccode\u003ePyObject.FromManagedObject\u003c/code\u003e now correctly returns the Python None object\nif the input is a null reference. Also added a new \u003ccode\u003eAsManagedObject\u003c/code\u003e\nmethod to \u003ccode\u003ePyObject\u003c/code\u003e, making it easier to convert a Python-wrapped managed\nobject to the real managed object.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eCreated a simple installer for windows platforms.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e1.0.0-beta.5\u003c/h2\u003e\u003ca id=\"user-content-100-beta5\" class=\"anchor\" aria-label=\"Permalink: 1.0.0-beta.5\" href=\"#100-beta5\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eChanged\u003c/h3\u003e\u003ca id=\"user-content-changed-12\" class=\"anchor\" aria-label=\"Permalink: Changed\" href=\"#changed-12\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eRefactored and fixed threading and global interpreter lock handling,\nwhich was badly broken before. Also added a number of threading and\nGIL-handling tests.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eRelated to the GIL fixes, added a note to embedders in the README\nabout using the AcquireLock and ReleaseLock methods of the PythonEngine\nclass to manage the GIL.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eFixed a problem in \u003ccode\u003eSingle \u0026lt;--\u0026gt; float\u003c/code\u003e conversion for cultures that use\ndifferent decimal symbols than Python.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eAdded a new \u003ccode\u003eReloadModule\u003c/code\u003e method to the \u003ccode\u003ePythonEngine\u003c/code\u003e class that hooks\nPython module reloading (\u003ccode\u003ePyImport_ReloadModule\u003c/code\u003e).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eAdded a new \u003ccode\u003eStringAsModule\u003c/code\u003e method to the PythonEngine class that can\ncreate a module from a managed string of code.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eAdded a default \u003ccode\u003e__str__\u003c/code\u003e implementation for Python wrappers of managed\nobjects that calls the \u003ccode\u003eToString\u003c/code\u003e method of the managed object.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e1.0.0-beta.4\u003c/h2\u003e\u003ca id=\"user-content-100-beta4\" class=\"anchor\" aria-label=\"Permalink: 1.0.0-beta.4\" href=\"#100-beta4\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eChanged\u003c/h3\u003e\u003ca id=\"user-content-changed-13\" class=\"anchor\" aria-label=\"Permalink: Changed\" href=\"#changed-13\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eFixed a problem that made it impossible to override \"special\" methods\nlike \u003ccode\u003e__getitem__\u003c/code\u003e in subclasses of managed classes. Now the tests all\npass, and there is much rejoicing.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eManaged classes reflected to Python now have an \u003ccode\u003e__doc__\u003c/code\u003e attribute that\ncontains a listing of the class constructor signatures.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eFixed a problem that prevented passing null (None) for array arguments.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eAdded a number of new argument conversion tests. Thanks to Laurent\nCaumont for giving Python for .NET a good workout with managed DirectX.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eUpdated the bundled C Python runtime and libraries to Python 2.4. The\ncurrent release is known to also run with Python 2.3. It is known\n\u003cem\u003enot\u003c/em\u003e to work with older versions due to changes in CPython type\nobject structure.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eMostly fixed the differences in the way that import works depending\non whether you are using the bundled interpreter or an existing Python\ninterpreter. The hack I used makes import work uniformly for imports\ndone in Python modules. Unfortunately, there is still a limitation\nwhen using the interpreter interactively: you need to do \u003ccode\u003eimport CLR\u003c/code\u003e\nfirst before importing any sub-names when running with an existing\nPython interpreter.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003eThe reason is that the first import of \u003ccode\u003eCLR\u003c/code\u003e installs the CLR import\nhook, but for an existing interpreter the standard importer is still\nin control for the duration of that first import, so sub-names won't\nbe found until the next import, which will use the now-installed hook.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eAdded support to directly iterate over objects that support IEnumerator\n(as well as IEnumerable). Thanks to Greg Chapman for prodding me ;)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eAdded a section to the README dealing with rebuilding Python for .NET\nagainst other CPython versions.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eFixed a problem with accessing properties when only the interface for\nan object is known. For example, \u003ccode\u003eICollection(ob).Count\u003c/code\u003e failed because\nPython for .NET mistakenly decided that Count was abstract.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eFixed some problems with how COM-based objects are exposed and how\nmembers of inherited interfaces are exposed. Thanks to Bruce Dodson\nfor patches on this.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eChanged the Runtime class to use a const string to target the\nappropriate CPython dll in DllImport attributes. Now you only\nhave to change one line to target a new Python version.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e1.0.0-beta.3\u003c/h2\u003e\u003ca id=\"user-content-100-beta3\" class=\"anchor\" aria-label=\"Permalink: 1.0.0-beta.3\" href=\"#100-beta3\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eChanged\u003c/h3\u003e\u003ca id=\"user-content-changed-14\" class=\"anchor\" aria-label=\"Permalink: Changed\" href=\"#changed-14\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eA dumb bug that could cause a crash on startup on some platforms was\nfixed. Decided to update the beta for this, as a number of people\nwere running into the problem.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e1.0.0-beta.2\u003c/h2\u003e\u003ca id=\"user-content-100-beta2\" class=\"anchor\" aria-label=\"Permalink: 1.0.0-beta.2\" href=\"#100-beta2\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eChanged\u003c/h3\u003e\u003ca id=\"user-content-changed-15\" class=\"anchor\" aria-label=\"Permalink: Changed\" href=\"#changed-15\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eExceptions raised as a result of getting or setting properties were\nnot very helpful (target invokation exception). This has been changed\nto pass through the inner exception the way that methods do, which is\nmuch more likely to be the real exception that caused the problem.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eEvents were refactored as the implementation was based on some bad\nassumptions. As a result, subscription and unsubscription now works\ncorrectly. A change from beta 1 is that event objects are no longer\ndirectly callable - this was not appropriate, since the internal\nimplementation of an event is private and cant work reliably. Instead,\nyou should the appropriate \u003ccode\u003eOnSomeEvent\u003c/code\u003e method published by a class\nto fire an event.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eThe distribution did not include the key file, making it a pain for\npeople to build from source. Added the key file to the distribution\nbuildout for beta 2.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eAssemblies can now be found and loaded if they are on the PYTHONPATH.\nPreviously only the appbase and the GAC were checked. The system now\nchecks PYTHONPATH first, then the appbase, then the GAC.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eFixed a bug in constructor invokation during object instantiation.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e1.0.0-beta.1\u003c/h2\u003e\u003ca id=\"user-content-100-beta1\" class=\"anchor\" aria-label=\"Permalink: 1.0.0-beta.1\" href=\"#100-beta1\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eChanged\u003c/h3\u003e\u003ca id=\"user-content-changed-16\" class=\"anchor\" aria-label=\"Permalink: Changed\" href=\"#changed-16\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eAdded the baseline of the managed embedding API. Some of the details\nare still subject to change based on some real-world use and feedback.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003eThe embedding API is based on the \u003ccode\u003ePyObject\u003c/code\u003e class, along with a number\nof specific \u003ccode\u003ePyDict\u003c/code\u003e, \u003ccode\u003ePyList\u003c/code\u003e, (etc.) classes that expose the respective\ninterfaces of the built-in Python types. The basic structure and usage\nis intended be familar to anyone who has used Python / C++ wrapper\nlibraries like CXX or Boost.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eStarted integrating NUnit2 to support unit tests for the embedding\nlayer - still need to add the embedding tests (many already exist,\nbut were written for an older version of NUnit).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eAdded Python iteration protocol support for arrays and managed objects\nthat implement IEnumerable. This means that you can now use the Python\nidiom \u003ccode\u003efor item in object:\u003c/code\u003e on any array or IEnumerable object.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eAdded automatic conversion from Python sequence types to managed array\ntypes. This means, for example, that you can now call a managed method\nlike AddRange that expects an array with any Python object that supports\nthe Python sequence protocol, provided the items of the sequence are\nconvertible to the item type of the managed array.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eAdded new demo scripts, mostly more substantial winforms examples.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eFinished the unit tests for event support, and fixed lots of problems\nwith events and delegates as a result. This is one of the trickier\nparts of the integration layer, and there is good coverage of these\nin the unit tests now.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eDid a fair amount of profiling with an eval version of ANTS (which is\nquite nice, BTW) and made a few changes as a result.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eType management was refactored, fixing the issue that caused segfaults\nwhen GC was enabled. Unit tests, stress tests and demo apps now all run\nnicely with Python GC enabled. There are one or two things left to fix,\nbut the fixes should not have any user impact.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eChanged to base PythonNet on Python 2.3.2. This is considered the most\nstable release, and a good 25 - 30% faster as well.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eAdded a new \u003ccode\u003eCLR.dll\u003c/code\u003e that acts as an extension module that allows an\nexisting unmodified Python 2.3 installation to simply \u003ccode\u003eimport CLR\u003c/code\u003e to\nbootstrap the managed integration layer.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eA bug was causing managed methods to only expose overloads declared in\na particular class, hiding inherited overloads of the same name. Fixed\nthe bug and added some unit tests.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eAdded a virtual \u003ccode\u003e__doc__\u003c/code\u003e attribute to managed methods that contains\nthe signature of the method. This also means that the Python \u003ccode\u003ehelp\u003c/code\u003e\nfunction now provides signature info when used on a managed class.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eCalling managed methods and events \u003ccode\u003eunbound\u003c/code\u003e (passing the instance as\nthe first argument) now works. There is a caveat for methods - if a\nclass declares both static and instance methods with the same name,\nit is not possible to call that instance method unbound (the static\nmethod will always be called).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eOverload selection for overloaded methods is now much better and uses\na method resolution algorithm similar to that used by Jython.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eChanged the managed python.exe wrapper to run as an STA thread, which\nseems to be more compatible with winforms apps. This needs a better\nsolution long-term. One possibility would be a command line switch\nso that -sta or -mta could control the python.exe apartment state.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eAdded support for the Python boolean type (True, False). Bool values\nnow appear as True or False to Python.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e1.0.0-alpha.2\u003c/h2\u003e\u003ca id=\"user-content-100-alpha2\" class=\"anchor\" aria-label=\"Permalink: 1.0.0-alpha.2\" href=\"#100-alpha2\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eChanged\u003c/h3\u003e\u003ca id=\"user-content-changed-17\" class=\"anchor\" aria-label=\"Permalink: Changed\" href=\"#changed-17\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eAdded a Mono makefile. Thanks to Camilo Uribe for help in testing and\nworking out problems on Mono. Note that it not currently possible to\nbuild PythonNet using mono, due to the use of some IL attributes that\nthe mono assembler / disassembler doesn't support yet.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003ePreliminary tests show that PythonNet \u003cem\u003edoes\u003c/em\u003e actually run under mono,\nthough the test suite bombs out before the end with an \"out of memory\"\nerror from the mono runtime. It's just a guess at this point, but I\nsuspect there may be a limited pool for allocating certain reflection\nstructures, and Python uses the reflection infrastructure quite heavily.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eRemoved decoys like the non-working embedding APIs; lots of internal\nrefactoring.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eImplemented indexer support. Managed instances that implement indexers\ncan now be used naturally from Python (e.g. \u003ccode\u003esomeobject[0]\u003c/code\u003e).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eImplemented sequence protocol support for managed arrays.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eImplemented basic thread state management; calls to managed methods\nno longer block Python. I won't go so far as to say the thread\nchoreography is \"finished\", as I don't have a comprehensive set of\ntests to back that up yet (and it will take some work to write a\nsufficiently large and evil set of tests).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eFixed a bug that caused conversions of managed strings to PyUnicode to\nproduce mangled values in certain situations.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eFixed a number of problems related to subclassing a managed class,\nincluding the fact that it didn't work :)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp dir=\"auto\"\u003eFixed all of the bugs that were causing tests to fail. This release\ncontains all new bugs and new failing tests. Progress! :)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e1.0.0-alpha.1\u003c/h2\u003e\u003ca id=\"user-content-100-alpha1\" class=\"anchor\" aria-label=\"Permalink: 1.0.0-alpha.1\" href=\"#100-alpha1\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eAdded\u003c/h3\u003e\u003ca id=\"user-content-added-6\" class=\"anchor\" aria-label=\"Permalink: Added\" href=\"#added-6\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eInitial (mostly) working experimental release.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/article\u003e","richTextTruncated":false,"renderedFileInfo":null,"symbols":{"timed_out":false,"not_analyzed":false,"symbols":[{"name":"Changelog","fully_qualified_name":"Changelog","kind":"section_1","ident_start":2,"ident_end":11,"extent_start":0,"extent_end":36747,"ident_utf16":{"start":{"line_number":0,"utf16_col":2},"end":{"line_number":0,"utf16_col":11}},"extent_utf16":{"start":{"line_number":0,"utf16_col":0},"end":{"line_number":808,"utf16_col":0}}},{"name":"[Unreleased][]","fully_qualified_name":"[Unreleased][]","kind":"section_2","ident_start":206,"ident_end":220,"extent_start":203,"extent_end":2692,"ident_utf16":{"start":{"line_number":7,"utf16_col":3},"end":{"line_number":7,"utf16_col":17}},"extent_utf16":{"start":{"line_number":7,"utf16_col":0},"end":{"line_number":50,"utf16_col":0}}},{"name":"Added","fully_qualified_name":"Added","kind":"section_3","ident_start":226,"ident_end":231,"extent_start":222,"extent_end":318,"ident_utf16":{"start":{"line_number":9,"utf16_col":4},"end":{"line_number":9,"utf16_col":9}},"extent_utf16":{"start":{"line_number":9,"utf16_col":0},"end":{"line_number":13,"utf16_col":0}}},{"name":"Changed","fully_qualified_name":"Changed","kind":"section_3","ident_start":322,"ident_end":329,"extent_start":318,"extent_end":1472,"ident_utf16":{"start":{"line_number":13,"utf16_col":4},"end":{"line_number":13,"utf16_col":11}},"extent_utf16":{"start":{"line_number":13,"utf16_col":0},"end":{"line_number":30,"utf16_col":0}}},{"name":"Fixed","fully_qualified_name":"Fixed","kind":"section_3","ident_start":1476,"ident_end":1481,"extent_start":1472,"extent_end":2584,"ident_utf16":{"start":{"line_number":30,"utf16_col":4},"end":{"line_number":30,"utf16_col":9}},"extent_utf16":{"start":{"line_number":30,"utf16_col":0},"end":{"line_number":46,"utf16_col":0}}},{"name":"Removed","fully_qualified_name":"Removed","kind":"section_3","ident_start":2588,"ident_end":2595,"extent_start":2584,"extent_end":2692,"ident_utf16":{"start":{"line_number":46,"utf16_col":4},"end":{"line_number":46,"utf16_col":11}},"extent_utf16":{"start":{"line_number":46,"utf16_col":0},"end":{"line_number":50,"utf16_col":0}}},{"name":"[2.5.0][] - 2020-06-14","fully_qualified_name":"[2.5.0][] - 2020-06-14","kind":"section_2","ident_start":2695,"ident_end":2717,"extent_start":2692,"extent_end":5324,"ident_utf16":{"start":{"line_number":50,"utf16_col":3},"end":{"line_number":50,"utf16_col":25}},"extent_utf16":{"start":{"line_number":50,"utf16_col":0},"end":{"line_number":103,"utf16_col":0}}},{"name":"Added","fully_qualified_name":"Added","kind":"section_3","ident_start":2803,"ident_end":2808,"extent_start":2799,"extent_end":3573,"ident_utf16":{"start":{"line_number":54,"utf16_col":4},"end":{"line_number":54,"utf16_col":9}},"extent_utf16":{"start":{"line_number":54,"utf16_col":0},"end":{"line_number":70,"utf16_col":0}}},{"name":"Changed","fully_qualified_name":"Changed","kind":"section_3","ident_start":3577,"ident_end":3584,"extent_start":3573,"extent_end":4839,"ident_utf16":{"start":{"line_number":70,"utf16_col":4},"end":{"line_number":70,"utf16_col":11}},"extent_utf16":{"start":{"line_number":70,"utf16_col":0},"end":{"line_number":92,"utf16_col":0}}},{"name":"Fixed","fully_qualified_name":"Fixed","kind":"section_3","ident_start":4843,"ident_end":4848,"extent_start":4839,"extent_end":5324,"ident_utf16":{"start":{"line_number":92,"utf16_col":4},"end":{"line_number":92,"utf16_col":9}},"extent_utf16":{"start":{"line_number":92,"utf16_col":0},"end":{"line_number":103,"utf16_col":0}}},{"name":"[2.4.0][] - 2019-05-15","fully_qualified_name":"[2.4.0][] - 2019-05-15","kind":"section_2","ident_start":5327,"ident_end":5349,"extent_start":5324,"extent_end":8863,"ident_utf16":{"start":{"line_number":103,"utf16_col":3},"end":{"line_number":103,"utf16_col":25}},"extent_utf16":{"start":{"line_number":103,"utf16_col":0},"end":{"line_number":156,"utf16_col":0}}},{"name":"Added","fully_qualified_name":"Added","kind":"section_3","ident_start":5355,"ident_end":5360,"extent_start":5351,"extent_end":6843,"ident_utf16":{"start":{"line_number":105,"utf16_col":4},"end":{"line_number":105,"utf16_col":9}},"extent_utf16":{"start":{"line_number":105,"utf16_col":0},"end":{"line_number":124,"utf16_col":0}}},{"name":"Changed","fully_qualified_name":"Changed","kind":"section_3","ident_start":6847,"ident_end":6854,"extent_start":6843,"extent_end":7458,"ident_utf16":{"start":{"line_number":124,"utf16_col":4},"end":{"line_number":124,"utf16_col":11}},"extent_utf16":{"start":{"line_number":124,"utf16_col":0},"end":{"line_number":133,"utf16_col":0}}},{"name":"Fixed","fully_qualified_name":"Fixed","kind":"section_3","ident_start":7462,"ident_end":7467,"extent_start":7458,"extent_end":8863,"ident_utf16":{"start":{"line_number":133,"utf16_col":4},"end":{"line_number":133,"utf16_col":9}},"extent_utf16":{"start":{"line_number":133,"utf16_col":0},"end":{"line_number":156,"utf16_col":0}}},{"name":"[2.3.0][] - 2017-03-11","fully_qualified_name":"[2.3.0][] - 2017-03-11","kind":"section_2","ident_start":8866,"ident_end":8888,"extent_start":8863,"extent_end":11839,"ident_utf16":{"start":{"line_number":156,"utf16_col":3},"end":{"line_number":156,"utf16_col":25}},"extent_utf16":{"start":{"line_number":156,"utf16_col":0},"end":{"line_number":220,"utf16_col":0}}},{"name":"Added","fully_qualified_name":"Added","kind":"section_3","ident_start":8894,"ident_end":8899,"extent_start":8890,"extent_end":9864,"ident_utf16":{"start":{"line_number":158,"utf16_col":4},"end":{"line_number":158,"utf16_col":9}},"extent_utf16":{"start":{"line_number":158,"utf16_col":0},"end":{"line_number":178,"utf16_col":0}}},{"name":"Changed","fully_qualified_name":"Changed","kind":"section_3","ident_start":9868,"ident_end":9875,"extent_start":9864,"extent_end":10575,"ident_utf16":{"start":{"line_number":178,"utf16_col":4},"end":{"line_number":178,"utf16_col":11}},"extent_utf16":{"start":{"line_number":178,"utf16_col":0},"end":{"line_number":192,"utf16_col":0}}},{"name":"Deprecated","fully_qualified_name":"Deprecated","kind":"section_3","ident_start":10579,"ident_end":10589,"extent_start":10575,"extent_end":10634,"ident_utf16":{"start":{"line_number":192,"utf16_col":4},"end":{"line_number":192,"utf16_col":14}},"extent_utf16":{"start":{"line_number":192,"utf16_col":0},"end":{"line_number":196,"utf16_col":0}}},{"name":"Fixed","fully_qualified_name":"Fixed","kind":"section_3","ident_start":10638,"ident_end":10643,"extent_start":10634,"extent_end":11583,"ident_utf16":{"start":{"line_number":196,"utf16_col":4},"end":{"line_number":196,"utf16_col":9}},"extent_utf16":{"start":{"line_number":196,"utf16_col":0},"end":{"line_number":213,"utf16_col":0}}},{"name":"Removed","fully_qualified_name":"Removed","kind":"section_3","ident_start":11587,"ident_end":11594,"extent_start":11583,"extent_end":11839,"ident_utf16":{"start":{"line_number":213,"utf16_col":4},"end":{"line_number":213,"utf16_col":11}},"extent_utf16":{"start":{"line_number":213,"utf16_col":0},"end":{"line_number":220,"utf16_col":0}}},{"name":"[2.2.2][] - 2017-01-29","fully_qualified_name":"[2.2.2][] - 2017-01-29","kind":"section_2","ident_start":11842,"ident_end":11864,"extent_start":11839,"extent_end":11926,"ident_utf16":{"start":{"line_number":220,"utf16_col":3},"end":{"line_number":220,"utf16_col":25}},"extent_utf16":{"start":{"line_number":220,"utf16_col":0},"end":{"line_number":226,"utf16_col":0}}},{"name":"Fixed","fully_qualified_name":"Fixed","kind":"section_3","ident_start":11870,"ident_end":11875,"extent_start":11866,"extent_end":11926,"ident_utf16":{"start":{"line_number":222,"utf16_col":4},"end":{"line_number":222,"utf16_col":9}},"extent_utf16":{"start":{"line_number":222,"utf16_col":0},"end":{"line_number":226,"utf16_col":0}}},{"name":"[2.2.1][] - 2017-01-26","fully_qualified_name":"[2.2.1][] - 2017-01-26","kind":"section_2","ident_start":11929,"ident_end":11951,"extent_start":11926,"extent_end":12766,"ident_utf16":{"start":{"line_number":226,"utf16_col":3},"end":{"line_number":226,"utf16_col":25}},"extent_utf16":{"start":{"line_number":226,"utf16_col":0},"end":{"line_number":258,"utf16_col":0}}},{"name":"Added","fully_qualified_name":"Added","kind":"section_3","ident_start":12019,"ident_end":12024,"extent_start":12015,"extent_end":12255,"ident_utf16":{"start":{"line_number":230,"utf16_col":4},"end":{"line_number":230,"utf16_col":9}},"extent_utf16":{"start":{"line_number":230,"utf16_col":0},"end":{"line_number":238,"utf16_col":0}}},{"name":"Changed","fully_qualified_name":"Changed","kind":"section_3","ident_start":12259,"ident_end":12266,"extent_start":12255,"extent_end":12492,"ident_utf16":{"start":{"line_number":238,"utf16_col":4},"end":{"line_number":238,"utf16_col":11}},"extent_utf16":{"start":{"line_number":238,"utf16_col":0},"end":{"line_number":246,"utf16_col":0}}},{"name":"Removed","fully_qualified_name":"Removed","kind":"section_3","ident_start":12496,"ident_end":12503,"extent_start":12492,"extent_end":12582,"ident_utf16":{"start":{"line_number":246,"utf16_col":4},"end":{"line_number":246,"utf16_col":11}},"extent_utf16":{"start":{"line_number":246,"utf16_col":0},"end":{"line_number":251,"utf16_col":0}}},{"name":"Fixed","fully_qualified_name":"Fixed","kind":"section_3","ident_start":12586,"ident_end":12591,"extent_start":12582,"extent_end":12766,"ident_utf16":{"start":{"line_number":251,"utf16_col":4},"end":{"line_number":251,"utf16_col":9}},"extent_utf16":{"start":{"line_number":251,"utf16_col":0},"end":{"line_number":258,"utf16_col":0}}},{"name":"[2.2.0-dev1][] - 2016-09-19","fully_qualified_name":"[2.2.0-dev1][] - 2016-09-19","kind":"section_2","ident_start":12769,"ident_end":12796,"extent_start":12766,"extent_end":13150,"ident_utf16":{"start":{"line_number":258,"utf16_col":3},"end":{"line_number":258,"utf16_col":30}},"extent_utf16":{"start":{"line_number":258,"utf16_col":0},"end":{"line_number":273,"utf16_col":0}}},{"name":"Changed","fully_qualified_name":"Changed","kind":"section_3","ident_start":12802,"ident_end":12809,"extent_start":12798,"extent_end":13010,"ident_utf16":{"start":{"line_number":260,"utf16_col":4},"end":{"line_number":260,"utf16_col":11}},"extent_utf16":{"start":{"line_number":260,"utf16_col":0},"end":{"line_number":267,"utf16_col":0}}},{"name":"Fixed","fully_qualified_name":"Fixed","kind":"section_3","ident_start":13014,"ident_end":13019,"extent_start":13010,"extent_end":13150,"ident_utf16":{"start":{"line_number":267,"utf16_col":4},"end":{"line_number":267,"utf16_col":9}},"extent_utf16":{"start":{"line_number":267,"utf16_col":0},"end":{"line_number":273,"utf16_col":0}}},{"name":"[2.1.0][] - 2016-04-12","fully_qualified_name":"[2.1.0][] - 2016-04-12","kind":"section_2","ident_start":13153,"ident_end":13175,"extent_start":13150,"extent_end":13648,"ident_utf16":{"start":{"line_number":273,"utf16_col":3},"end":{"line_number":273,"utf16_col":25}},"extent_utf16":{"start":{"line_number":273,"utf16_col":0},"end":{"line_number":292,"utf16_col":0}}},{"name":"Added","fully_qualified_name":"Added","kind":"section_3","ident_start":13181,"ident_end":13186,"extent_start":13177,"extent_end":13500,"ident_utf16":{"start":{"line_number":275,"utf16_col":4},"end":{"line_number":275,"utf16_col":9}},"extent_utf16":{"start":{"line_number":275,"utf16_col":0},"end":{"line_number":284,"utf16_col":0}}},{"name":"Changed","fully_qualified_name":"Changed","kind":"section_3","ident_start":13504,"ident_end":13511,"extent_start":13500,"extent_end":13593,"ident_utf16":{"start":{"line_number":284,"utf16_col":4},"end":{"line_number":284,"utf16_col":11}},"extent_utf16":{"start":{"line_number":284,"utf16_col":0},"end":{"line_number":288,"utf16_col":0}}},{"name":"Removed","fully_qualified_name":"Removed","kind":"section_3","ident_start":13597,"ident_end":13604,"extent_start":13593,"extent_end":13648,"ident_utf16":{"start":{"line_number":288,"utf16_col":4},"end":{"line_number":288,"utf16_col":11}},"extent_utf16":{"start":{"line_number":288,"utf16_col":0},"end":{"line_number":292,"utf16_col":0}}},{"name":"[2.0.0][] - 2015-06-26","fully_qualified_name":"[2.0.0][] - 2015-06-26","kind":"section_2","ident_start":13651,"ident_end":13673,"extent_start":13648,"extent_end":13688,"ident_utf16":{"start":{"line_number":292,"utf16_col":3},"end":{"line_number":292,"utf16_col":25}},"extent_utf16":{"start":{"line_number":292,"utf16_col":0},"end":{"line_number":296,"utf16_col":0}}},{"name":"2.0.0-alpha.2","fully_qualified_name":"2.0.0-alpha.2","kind":"section_2","ident_start":13691,"ident_end":13704,"extent_start":13688,"extent_end":16007,"ident_utf16":{"start":{"line_number":296,"utf16_col":3},"end":{"line_number":296,"utf16_col":16}},"extent_utf16":{"start":{"line_number":296,"utf16_col":0},"end":{"line_number":354,"utf16_col":0}}},{"name":"Changed","fully_qualified_name":"Changed","kind":"section_3","ident_start":13710,"ident_end":13717,"extent_start":13706,"extent_end":16007,"ident_utf16":{"start":{"line_number":298,"utf16_col":4},"end":{"line_number":298,"utf16_col":11}},"extent_utf16":{"start":{"line_number":298,"utf16_col":0},"end":{"line_number":354,"utf16_col":0}}},{"name":"2.0.0-alpha.1","fully_qualified_name":"2.0.0-alpha.1","kind":"section_2","ident_start":16010,"ident_end":16023,"extent_start":16007,"extent_end":17400,"ident_utf16":{"start":{"line_number":354,"utf16_col":3},"end":{"line_number":354,"utf16_col":16}},"extent_utf16":{"start":{"line_number":354,"utf16_col":0},"end":{"line_number":387,"utf16_col":0}}},{"name":"Changed","fully_qualified_name":"Changed","kind":"section_3","ident_start":16029,"ident_end":16036,"extent_start":16025,"extent_end":17400,"ident_utf16":{"start":{"line_number":356,"utf16_col":4},"end":{"line_number":356,"utf16_col":11}},"extent_utf16":{"start":{"line_number":356,"utf16_col":0},"end":{"line_number":387,"utf16_col":0}}},{"name":"[1.0.0][] - 2006-04-08","fully_qualified_name":"[1.0.0][] - 2006-04-08","kind":"section_2","ident_start":17403,"ident_end":17425,"extent_start":17400,"extent_end":17602,"ident_utf16":{"start":{"line_number":387,"utf16_col":3},"end":{"line_number":387,"utf16_col":25}},"extent_utf16":{"start":{"line_number":387,"utf16_col":0},"end":{"line_number":395,"utf16_col":0}}},{"name":"Changed","fully_qualified_name":"Changed","kind":"section_3","ident_start":17431,"ident_end":17438,"extent_start":17427,"extent_end":17602,"ident_utf16":{"start":{"line_number":389,"utf16_col":4},"end":{"line_number":389,"utf16_col":11}},"extent_utf16":{"start":{"line_number":389,"utf16_col":0},"end":{"line_number":395,"utf16_col":0}}},{"name":"1.0.0-rc.2","fully_qualified_name":"1.0.0-rc.2","kind":"section_2","ident_start":17605,"ident_end":17615,"extent_start":17602,"extent_end":18828,"ident_utf16":{"start":{"line_number":395,"utf16_col":3},"end":{"line_number":395,"utf16_col":13}},"extent_utf16":{"start":{"line_number":395,"utf16_col":0},"end":{"line_number":423,"utf16_col":0}}},{"name":"Changed","fully_qualified_name":"Changed","kind":"section_3","ident_start":17621,"ident_end":17628,"extent_start":17617,"extent_end":18828,"ident_utf16":{"start":{"line_number":397,"utf16_col":4},"end":{"line_number":397,"utf16_col":11}},"extent_utf16":{"start":{"line_number":397,"utf16_col":0},"end":{"line_number":423,"utf16_col":0}}},{"name":"1.0.0-rc.1","fully_qualified_name":"1.0.0-rc.1","kind":"section_2","ident_start":18831,"ident_end":18841,"extent_start":18828,"extent_end":20664,"ident_utf16":{"start":{"line_number":423,"utf16_col":3},"end":{"line_number":423,"utf16_col":13}},"extent_utf16":{"start":{"line_number":423,"utf16_col":0},"end":{"line_number":462,"utf16_col":0}}},{"name":"Changed","fully_qualified_name":"Changed","kind":"section_3","ident_start":18847,"ident_end":18854,"extent_start":18843,"extent_end":20664,"ident_utf16":{"start":{"line_number":425,"utf16_col":4},"end":{"line_number":425,"utf16_col":11}},"extent_utf16":{"start":{"line_number":425,"utf16_col":0},"end":{"line_number":462,"utf16_col":0}}},{"name":"1.0.0-beta.5","fully_qualified_name":"1.0.0-beta.5","kind":"section_2","ident_start":20667,"ident_end":20679,"extent_start":20664,"extent_end":21565,"ident_utf16":{"start":{"line_number":462,"utf16_col":3},"end":{"line_number":462,"utf16_col":15}},"extent_utf16":{"start":{"line_number":462,"utf16_col":0},"end":{"line_number":486,"utf16_col":0}}},{"name":"Changed","fully_qualified_name":"Changed","kind":"section_3","ident_start":20685,"ident_end":20692,"extent_start":20681,"extent_end":21565,"ident_utf16":{"start":{"line_number":464,"utf16_col":4},"end":{"line_number":464,"utf16_col":11}},"extent_utf16":{"start":{"line_number":464,"utf16_col":0},"end":{"line_number":486,"utf16_col":0}}},{"name":"1.0.0-beta.4","fully_qualified_name":"1.0.0-beta.4","kind":"section_2","ident_start":21568,"ident_end":21580,"extent_start":21565,"extent_end":23976,"ident_utf16":{"start":{"line_number":486,"utf16_col":3},"end":{"line_number":486,"utf16_col":15}},"extent_utf16":{"start":{"line_number":486,"utf16_col":0},"end":{"line_number":538,"utf16_col":0}}},{"name":"Changed","fully_qualified_name":"Changed","kind":"section_3","ident_start":21586,"ident_end":21593,"extent_start":21582,"extent_end":23976,"ident_utf16":{"start":{"line_number":488,"utf16_col":4},"end":{"line_number":488,"utf16_col":11}},"extent_utf16":{"start":{"line_number":488,"utf16_col":0},"end":{"line_number":538,"utf16_col":0}}},{"name":"1.0.0-beta.3","fully_qualified_name":"1.0.0-beta.3","kind":"section_2","ident_start":23979,"ident_end":23991,"extent_start":23976,"extent_end":24185,"ident_utf16":{"start":{"line_number":538,"utf16_col":3},"end":{"line_number":538,"utf16_col":15}},"extent_utf16":{"start":{"line_number":538,"utf16_col":0},"end":{"line_number":546,"utf16_col":0}}},{"name":"Changed","fully_qualified_name":"Changed","kind":"section_3","ident_start":23997,"ident_end":24004,"extent_start":23993,"extent_end":24185,"ident_utf16":{"start":{"line_number":540,"utf16_col":4},"end":{"line_number":540,"utf16_col":11}},"extent_utf16":{"start":{"line_number":540,"utf16_col":0},"end":{"line_number":546,"utf16_col":0}}},{"name":"1.0.0-beta.2","fully_qualified_name":"1.0.0-beta.2","kind":"section_2","ident_start":24188,"ident_end":24200,"extent_start":24185,"extent_end":25413,"ident_utf16":{"start":{"line_number":546,"utf16_col":3},"end":{"line_number":546,"utf16_col":15}},"extent_utf16":{"start":{"line_number":546,"utf16_col":0},"end":{"line_number":573,"utf16_col":0}}},{"name":"Changed","fully_qualified_name":"Changed","kind":"section_3","ident_start":24206,"ident_end":24213,"extent_start":24202,"extent_end":25413,"ident_utf16":{"start":{"line_number":548,"utf16_col":4},"end":{"line_number":548,"utf16_col":11}},"extent_utf16":{"start":{"line_number":548,"utf16_col":0},"end":{"line_number":573,"utf16_col":0}}},{"name":"1.0.0-beta.1","fully_qualified_name":"1.0.0-beta.1","kind":"section_2","ident_start":25416,"ident_end":25428,"extent_start":25413,"extent_end":29031,"ident_utf16":{"start":{"line_number":573,"utf16_col":3},"end":{"line_number":573,"utf16_col":15}},"extent_utf16":{"start":{"line_number":573,"utf16_col":0},"end":{"line_number":647,"utf16_col":0}}},{"name":"Changed","fully_qualified_name":"Changed","kind":"section_3","ident_start":25434,"ident_end":25441,"extent_start":25430,"extent_end":29031,"ident_utf16":{"start":{"line_number":575,"utf16_col":4},"end":{"line_number":575,"utf16_col":11}},"extent_utf16":{"start":{"line_number":575,"utf16_col":0},"end":{"line_number":647,"utf16_col":0}}},{"name":"1.0.0-alpha.2","fully_qualified_name":"1.0.0-alpha.2","kind":"section_2","ident_start":29034,"ident_end":29047,"extent_start":29031,"extent_end":30718,"ident_utf16":{"start":{"line_number":647,"utf16_col":3},"end":{"line_number":647,"utf16_col":16}},"extent_utf16":{"start":{"line_number":647,"utf16_col":0},"end":{"line_number":685,"utf16_col":0}}},{"name":"Changed","fully_qualified_name":"Changed","kind":"section_3","ident_start":29053,"ident_end":29060,"extent_start":29049,"extent_end":30718,"ident_utf16":{"start":{"line_number":649,"utf16_col":4},"end":{"line_number":649,"utf16_col":11}},"extent_utf16":{"start":{"line_number":649,"utf16_col":0},"end":{"line_number":685,"utf16_col":0}}},{"name":"1.0.0-alpha.1","fully_qualified_name":"1.0.0-alpha.1","kind":"section_2","ident_start":30721,"ident_end":30734,"extent_start":30718,"extent_end":36747,"ident_utf16":{"start":{"line_number":685,"utf16_col":3},"end":{"line_number":685,"utf16_col":16}},"extent_utf16":{"start":{"line_number":685,"utf16_col":0},"end":{"line_number":808,"utf16_col":0}}},{"name":"Added","fully_qualified_name":"Added","kind":"section_3","ident_start":30740,"ident_end":30745,"extent_start":30736,"extent_end":36747,"ident_utf16":{"start":{"line_number":687,"utf16_col":4},"end":{"line_number":687,"utf16_col":9}},"extent_utf16":{"start":{"line_number":687,"utf16_col":0},"end":{"line_number":808,"utf16_col":0}}}]}},"codeViewLayoutRoute":{"repo":{"id":322286678,"defaultBranch":"master","name":"pythonnet","ownerLogin":"tminka","currentUserCanPush":false,"isFork":true,"isEmpty":false,"createdAt":"2020-12-17T12:21:46.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/8955276?v=4","public":true,"private":false,"isOrgOwned":false,"isArchived":false},"currentUser":null,"uploadToken":"Rpo9dBPzmQo5ti2yfdIa9ReZVLd5-tfpAlP7VIp61NA5wokWB0jPXdOT-CqXzZc4BC1Xo1RQ1zXoYkYWgtLa1Q","allShortcutsEnabled":false,"treeExpanded":true,"path":"CHANGELOG.md","symbolsExpanded":false,"refInfo":{"name":"20e673f42ca62df984ee148726c0e027172636a5","listCacheKey":"v0:1611855978.0","canEdit":false,"currentOid":"20e673f42ca62df984ee148726c0e027172636a5"},"helpUrl":"https://docs.github.com","githubDevUrl":null},"codeViewFileTreeLayoutRoute":{"fileTree":{"":{"items":[{"name":".github","path":".github","contentType":"directory"},{"name":"ci","path":"ci","contentType":"directory"},{"name":"demo","path":"demo","contentType":"directory"},{"name":"pythonnet","path":"pythonnet","contentType":"directory"},{"name":"src","path":"src","contentType":"directory"},{"name":"tools","path":"tools","contentType":"directory"},{"name":".editorconfig","path":".editorconfig","contentType":"file"},{"name":".gitignore","path":".gitignore","contentType":"file"},{"name":".mention-bot","path":".mention-bot","contentType":"file"},{"name":"AUTHORS.md","path":"AUTHORS.md","contentType":"file"},{"name":"CHANGELOG.md","path":"CHANGELOG.md","contentType":"file"},{"name":"CONTRIBUTING.md","path":"CONTRIBUTING.md","contentType":"file"},{"name":"Directory.Build.props","path":"Directory.Build.props","contentType":"file"},{"name":"LICENSE","path":"LICENSE","contentType":"file"},{"name":"README.rst","path":"README.rst","contentType":"file"},{"name":"appveyor.yml","path":"appveyor.yml","contentType":"file"},{"name":"clr.py","path":"clr.py","contentType":"file"},{"name":"pyproject.toml","path":"pyproject.toml","contentType":"file"},{"name":"pythonnet.sln","path":"pythonnet.sln","contentType":"file"},{"name":"requirements.txt","path":"requirements.txt","contentType":"file"},{"name":"setup.cfg","path":"setup.cfg","contentType":"file"},{"name":"setup.py","path":"setup.py","contentType":"file"}],"totalCount":22}},"fileTreeProcessingTime":37.464703,"foldersToFetch":[]},"codeViewBlobLayoutRoute":{"codeLineWrapEnabled":false,"refInfo":{"name":"20e673f42ca62df984ee148726c0e027172636a5","listCacheKey":"v0:1611855978.0","canEdit":false,"refType":"tree","currentOid":"20e673f42ca62df984ee148726c0e027172636a5","canEditOnDefaultBranch":false,"fileExistsOnDefault":true},"path":"CHANGELOG.md","blob":{"copilotSWEAgentEnabled":false,"dependabotInfo":{"showConfigurationBanner":false,"configFilePath":null,"networkDependabotPath":"/tminka/pythonnet/network/updates","dismissConfigurationNoticePath":"/settings/dismiss-notice/dependabot_configuration_notice","configurationNoticeDismissed":null},"displayName":"CHANGELOG.md","displayUrl":"https://github.com/tminka/pythonnet/blob/20e673f42ca62df984ee148726c0e027172636a5/CHANGELOG.md?raw=true","headerInfo":{"blobSize":"35.9 KB","deleteTooltip":"You must be signed in to make or propose changes","editTooltip":"You must be signed in to make or propose changes","ghDesktopPath":null,"isGitLfs":false,"onBranch":false,"shortPath":"2420d40","siteNavLoginPath":"/login?return_to=https%3A%2F%2Fgithub.com%2Ftminka%2Fpythonnet%2Fblob%2F20e673f42ca62df984ee148726c0e027172636a5%2FCHANGELOG.md","isCSV":false,"isRichtext":true,"lineInfo":{"truncatedLoc":"808","truncatedSloc":"620"},"mode":"file"},"image":false,"isCodeownersFile":null,"isPlain":false,"isValidLegacyIssueTemplate":false,"isIssueTemplate":false,"isDiscussionTemplate":false,"language":"Markdown","languageID":222,"large":false,"planSupportInfo":{"repoIsFork":null,"repoOwnedByCurrentUser":null,"requestFullPath":"/tminka/pythonnet/blob/20e673f42ca62df984ee148726c0e027172636a5/CHANGELOG.md","showFreeOrgGatedFeatureMessage":null,"showPlanSupportBanner":null,"upgradeDataAttributes":null,"upgradePath":null},"publishBannersInfo":{"dismissActionNoticePath":"/settings/dismiss-notice/publish_action_from_dockerfile","releasePath":"/tminka/pythonnet/releases/new?marketplace=true","showPublishActionBanner":false},"rawBlobUrl":"https://github.com/tminka/pythonnet/raw/20e673f42ca62df984ee148726c0e027172636a5/CHANGELOG.md","renderImageOrRaw":false,"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},"copilotInfo":null,"copilotAccessAllowed":false,"copilotSpacesEnabled":false,"modelsAccessAllowed":false,"modelsRepoIntegrationEnabled":false,"isMarketplaceEnabled":true},"codeViewBlobLayoutRoute.StyledBlob":{"rawLines":["# Changelog","","All notable changes to Python.NET will be documented in this file. This","project adheres to [Semantic Versioning][].","","This document follows the conventions laid out in [Keep a CHANGELOG][].","","## [Unreleased][]","","### Added","","-   Ability to instantiate new .NET arrays using `Array[T](dim1, dim2, ...)` syntax","","### Changed","-   Drop support for Python 2, 3.4, and 3.5","-   `wchar_t` size aka `Runtime.UCS` is now determined at runtime","-   `clr.AddReference` may now throw errors besides `FileNotFoundException`, that provide more","details about the cause of the failure","-   `clr.AddReference` no longer adds \".dll\" implicitly","-   `PyIter(PyObject)` constructor replaced with static `PyIter.GetIter(PyObject)` method","-   BREAKING: Return values from .NET methods that return an interface are now automatically","     wrapped in that interface. This is a breaking change for users that rely on being","     able to access members that are part of the implementation class, but not the","     interface.  Use the new __implementation__ or __raw_implementation__ properties to","     if you need to \"downcast\" to the implementation class.","-   BREAKING: Parameters marked with `ParameterAttributes.Out` are no longer returned in addition","     to the regular method return value (unless they are passed with `ref` or `out` keyword).","-   BREAKING: Drop support for the long-deprecated CLR.* prefix.","-   `PyObject` now implements `IEnumerable\u003cPyObject\u003e` in addition to `IEnumerable`","","### Fixed","","-    Fix incorrect dereference of wrapper object in `tp_repr`, which may result in a program crash","-    Fix incorrect dereference in params array handling","-    Fixes issue with function resolution when calling overloaded function with keyword arguments from python ([#1097][i1097])","-    Fix `object[]` parameters taking precedence when should not in overload resolution","-    Fixed a bug where all .NET class instances were considered Iterable","-    Fix incorrect choice of method to invoke when using keyword arguments.","-    Fix non-delegate types incorrectly appearing as callable.","-    Indexers can now be used with interface objects","-    Fixed a bug where indexers could not be used if they were inherited","-    Made it possible to use `__len__` also on `ICollection\u003c\u003e` interface objects","-    Made it possible to call `ToString`, `GetHashCode`, and `GetType` on inteface objects","-    Fixed objects returned by enumerating `PyObject` being disposed too soon","-    Incorrectly using a non-generic type with type parameters now produces a helpful Python error instead of throwing NullReferenceException","","### Removed","","-   implicit assembly loading (you have to explicitly `clr.AddReference` before doing import)","","## [2.5.0][] - 2020-06-14","","This version improves performance on benchmarks significantly compared to 2.3.","","### Added","","-   Automatic NuGet package generation in appveyor and local builds","-   Function that sets `Py_NoSiteFlag` to 1.","-   Support for Jetson Nano.","-   Support for `__len__` for .NET classes that implement ICollection","-   `PyExport` attribute to hide .NET types from Python","-   `PythonException.Format` method to format exceptions the same as","    `traceback.format_exception`","-   `Runtime.None` to be able to pass `None` as parameter into Python from .NET","-   `PyObject.IsNone()` to check if a Python object is None in .NET.","-   Support for Python 3.8","-   Codecs as the designated way to handle automatic conversions between","    .NET and Python types","-   Added Python 3 buffer api support and PyBuffer interface for fast byte and numpy array read/write ([#980][p980])","","### Changed","","-   Added argument types information to \"No method matches given arguments\" message","-   Moved wheel import in setup.py inside of a try/except to prevent pip collection failures","-   Removes `PyLong_GetMax` and `PyClass_New` when targetting Python3","-   Improved performance of calls from Python to C#","-   Added support for converting python iterators to C# arrays","-   Changed usage of the obsolete function","    `GetDelegateForFunctionPointer(IntPtr, Type)` to","    `GetDelegateForFunctionPointer\u003cTDelegate\u003e(IntPtr)`","-   When calling C# from Python, enable passing argument of any type to a","    parameter of C# type `object` by wrapping it into `PyObject` instance.","    ([#881][i881])","-   Added support for kwarg parameters when calling .NET methods from Python","-   Changed method for finding MSBuild using vswhere","-   Reworked `Finalizer`. Now objects drop into its queue upon finalization,","    which is periodically drained when new objects are created.","-   Marked `Runtime.OperatingSystemName` and `Runtime.MachineName` as","    `Obsolete`, should never have been `public` in the first place. They also","    don't necessarily return a result that matches the `platform` module's.","-   Unconditionally depend on `pycparser` for the interop module generation","","### Fixed","","-   Fixed runtime that fails loading when using pythonnet in an environment","    together with Nuitka","-   Fixes bug where delegates get casts (dotnetcore)","-   Determine size of interpreter longs at runtime","-   Handling exceptions ocurred in ModuleObject's getattribute","-   Fill `__classcell__` correctly for Python subclasses of .NET types","-   Fixed issue with params methods that are not passed an array.","-   Use UTF8 to encode strings passed to `PyRun_String` on Python 3","","## [2.4.0][] - 2019-05-15","","### Added","","-   Added support for embedding python into dotnet core 2.0 (NetStandard 2.0)","-   Added new build system (pythonnet.15.sln) based on dotnetcore-sdk/xplat(crossplatform msbuild).","    Currently there two side-by-side build systems that produces the same output (net40) from the same sources.","    After a some transition time, current (mono/ msbuild 14.0) build system will be removed.","-   NUnit upgraded to 3.7 (eliminates travis-ci random bug)","-   Added C# `PythonEngine.AddShutdownHandler` to help client code clean up on shutdown.","-   Added `clr.GetClrType` ([#432][i432])([#433][p433])","-   Allowed passing `None` for nullable args ([#460][p460])","-   Added keyword arguments based on C# syntax for calling CPython methods ([#461][p461])","-   Catches exceptions thrown in C# iterators (yield returns) and rethrows them in python ([#475][i475])([#693][p693])","-   Implemented GetDynamicMemberNames() for PyObject to allow dynamic object members to be visible in the debugger ([#443][i443])([#690][p690])","-   Incorporated reference-style links to issues and pull requests in the CHANGELOG ([#608][i608])","-   Added PyObject finalizer support, Python objects referred by C# can be auto collect now ([#692][p692]).","-   Added detailed comments about aproaches and dangers to handle multi-app-domains ([#625][p625])","-   Python 3.7 support, builds and testing added. Defaults changed from Python 3.6 to 3.7 ([#698][p698])","-   Added support for C# types to provide `__repr__` ([#680][p680])","","### Changed","","-   PythonException included C# call stack","-   Reattach python exception traceback information (#545)","-   PythonEngine.Intialize will now call `Py_InitializeEx` with a default value of 0, so signals will not be configured by default on embedding. This is different from the previous behaviour, where `Py_Initialize` was called instead, which sets initSigs to 1. ([#449][i449])","-   Refactored MethodBinder.Bind in preparation to make it extensible (#829)","-   Look for installed Windows 10 sdk's during installation instead of relying on specific versions.","-   Remove `LoadLibrary` call. ([#880][p880])","","### Fixed","","-   Fixed secondary PythonEngine.Initialize call, all sensitive static variables now reseted.","    This is a hidden bug. Once python cleaning up enough memory, objects from previous engine run becomes corrupted. ([#534][p534])","-   Fixed Visual Studio 2017 compat ([#434][i434]) for setup.py","-   Fixed crashes when integrating pythonnet in Unity3d ([#714][i714]),","    related to unloading the Application Domain","-   Fixed interop methods with Py_ssize_t. NetCoreApp 2.0 is more sensitive than net40 and requires this fix. ([#531][p531])","-   Fixed crash on exit of the Python interpreter if a python class","    derived from a .NET class has a `__namespace__` or `__assembly__`","    attribute ([#481][i481])","-   Fixed conversion of 'float' and 'double' values ([#486][i486])","-   Fixed 'clrmethod' for python 2 ([#492][i492])","-   Fixed double calling of constructor when deriving from .NET class ([#495][i495])","-   Fixed `clr.GetClrType` when iterating over `System` members ([#607][p607])","-   Fixed `LockRecursionException` when loading assemblies ([#627][i627])","-   Fixed errors breaking .NET Remoting on method invoke ([#276][i276])","-   Fixed PyObject.GetHashCode ([#676][i676])","-   Fix memory leaks due to spurious handle incrementation ([#691][i691])","-   Fix spurious assembly loading exceptions from private types ([#703][i703])","-   Fix inheritance of non-abstract base methods ([#755][i755])","","","## [2.3.0][] - 2017-03-11","","### Added","","-   Added Code Coverage ([#345][p345])","-   Added `PySys_SetArgvEx` ([#347][p347])","-   Added XML Documentation ([#349][p349])","-   Added `Embedded_Tests` on AppVeyor ([#224][i224])([#353][p353])","-   Added `Embedded_Tests` on Travis ([#224][i224])([#391][p391])","-   Added PY3 settings to solution configuration-manager ([#346][p346])","-   Added `Slack` ([#384][p384])([#383][i383])([#386][p386])","-   Added function of passing an arbitrary .NET object as the value","    of an attribute of `PyObject` ([#370][i370])([#373][p373])","-   Added `Coverity scan` ([#390][i390])","-   Added `bumpversion` for version control ([#319][i319])([#398][p398])","-   Added `tox` for local testing ([#345][p345])","-   Added `requirements.txt`","-   Added to `PythonEngine` methods `Eval` and `Exec` ([#389][p389])","-   Added implementations of `ICustomMarshal` ([#407][p407])","-   Added docker images ([#322][i322])","-   Added hooks in `pyinstaller` and `cx_freeze` for `pythonnet` ([#66][i66])","","### Changed","","-   Refactored python `unittests` ([#329][p329])","-   Refactored python `setup.py` ([#337][p337])","-   Refactored remaining of Build Directives on `runtime.cs` ([#339][p339])","-   Refactored `Embedded_Tests` to make easier to write tests ([#369][p369])","-   Changed `unittests` to `pytest` ([#368][p368])","-   Upgraded NUnit framework from `2.6.3` to `3.5.0` ([#341][p341])","-   Downgraded NUnit framework from `3.5.0` to `2.6.4` ([#353][p353])","-   Upgraded NUnit framework from `2.6.4` to `3.6.0` ([#371][p371])","-   Unfroze Mono version on Travis ([#345][p345])","-   Changed `conda.recipe` build to only pull-requests ([#345][p345])","-   Combine `Py_DEBUG` and `PYTHON_WITH_PYDEBUG` flags ([#362][i362])","","### Deprecated","","-   Deprecated `RunString` ([#401][i401])","","### Fixed","","-   Fixed crash during Initialization ([#262][i262])([#343][p343])","-   Fixed crash during Shutdown ([#365][p365])","-   Fixed multiple build warnings","-   Fixed method signature match for Object Type ([#203][i203])([#377][p377])","-   Fixed outdated version number in AssemblyInfo ([#398][p398])","-   Fixed wrong version number in `conda.recipe` ([#398][p398])","-   Fixed fixture location for Python tests and `Embedded_Tests`","-   Fixed `PythonException` crash during Shutdown ([#400][p400])","-   Fixed `AppDomain` unload during GC ([#397][i397])([#400][p400])","-   Fixed `Py_Main` \u0026 `PySys_SetArgvEx` `no mem error` on `UCS4/PY3` ([#399][p399])","-   Fixed `Python.Runtime.dll.config` on macOS ([#120][i120])","-   Fixed crash on `PythonEngine.Version` ([#413][i413])","-   Fixed `PythonEngine.PythonPath` issues ([#179][i179])([#414][i414])([#415][p415])","-   Fixed missing information on 'No method matches given arguments' by adding the method name","","### Removed","","-   Removed `six` dependency for `unittests` ([#329][p329])","-   Removed `Mono.Unix` dependency for `UCS4` ([#360][p360])","-   Removed need for `Python.Runtime.dll.config`","-   Removed PY32 build option `PYTHON_WITH_WIDE_UNICODE` ([#417][i417])","","## [2.2.2][] - 2017-01-29","","### Fixed","","-   Missing files from packaging ([#336][i336])","","## [2.2.1][] - 2017-01-26","","-   `v2.2.0` had a release issue on PyPi. Bumped to `v2.2.1`","","### Added","","-   Python 3.6 support ([#310][p310])","-   Added `__version__` to module ([#312][p312])","-   Added `conda` recipe ([#281][p281])","-   Nuget update on build ([#268][p268])","-   Added `__cause__` attribute on exception ([#287][p287])","","### Changed","","-   License to MIT ([#314][p314])","-   Project clean-up ([#320][p320])","-   Refactor `#if` directives","-   Rename Decref/Incref to XDecref/XIncre ([#275][p275])","-   Remove printing if Decref is called with NULL ([#275][p275])","","### Removed","","-   Python 2.6 support ([#270][i270])","-   Python 3.2 support ([#270][i270])","","### Fixed","","-   Fixed `isinstance` refcount_leak ([#273][p273])","-   Comparison Operators ([#294][p294])","-   Improved Linux support ([#300][p300])","-   Exception pickling ([#286][p286])","","## [2.2.0-dev1][] - 2016-09-19","","### Changed","","-   Switch to C# 6.0 ([#219][p219])","-   `setup.py` improvements for locating build tools ([#208][p208])","-   unmanaged exports updated ([#206][p206])","-   Mono update pinned to 4.2.4.4 ([#233][p233])","","### Fixed","","-   Fixed relative imports ([#219][p219])","-   Fixed recursive types ([#250][p250])","-   Demo fix - stream reading ([#225][p225])","","## [2.1.0][] - 2016-04-12","","### Added","","-   Added Python 3.2 support. ([#78][p78])","-   Added Python 3.3 support. ([#78][p78])","-   Added Python 3.4 support. ([#78][p78])","-   Added Python 3.5 support. ([#163][p163])","-   Managed types can be sub-classed in Python ([#78][p78])","-   Uses dynamic objects for cleaner code when embedding Python ([#78][p78])","","### Changed","","-   Better Linux support (with or without --enable-shared option) ([#78][p78])","","### Removed","","-   Implicit Type Casting ([#131][i131])","","## [2.0.0][] - 2015-06-26","","-   Release","","## 2.0.0-alpha.2","","### Changed","","-   First work on Python 2.5 compatibility. The destination version can be","    set by defining PYTHON24 or PYTHON25. Python 2.6 compatibility is in","    work.","","-   Added VS 2005 solution and project files including a UnitTest","    configuration which runs the unit test suite.","","-   Enhanced unit test suite. All test cases are combined in a single","    test suite now.","","-   Fixed bugs in generics support for all Python versions.","","-   Fixed exception bugs for Python 2.5+. When compiled for Python 2.5+ all","    managed exceptions are based on Python's `exceptions.Exception` class.","","-   Added deprecation warnings for importing from `CLR.*` and the CLR module.","","-   Implemented support for methods with variable arguments","    `spam(params object[] egg)`","","-   Fixed Mono support by adding a custom marshaler for UCS-4 unicode,","    fixing a some ref counter bugs and creating a new makefile.mono.","","-   Added a standard python extension to load the clr environment.","    The `src/monoclr/` directory contains additional sample code like a","    Python binary linked against `libpython2.x.so` and some example code","    how to embed Mono and PythonNet in a C application.","","-   Added yet another python prompt. This time it's a C application that","    embedds both Python and Mono. It may be useful as an example app for","    others and I need it to debug a nasty bug.","","-   Implemented `ModuleFunctionAttribute` and added","    `ForbidPythonThreadsAttribute`. The latter is required for module","    functions which invoke Python methods.","","-   Added `clr.setPreload()`, `clr.getPreload()`,","    `clr.AddReference(\"assembly name\")`, `clr.FindAssembly(\"name\")`","    and `clr.ListAssemblies(verbose)`. Automatic preloading can be enabled","    with clr.setPreload/True). Preloading is automatically enabled for","    interactive Python shells and disabled in all other cases.","","-   New Makefile that works for Windows and Mono and autodetects the Python","    version and UCS 2/4 setting.","","-   Added code for Python 2.3. PythonNet can be build for Python 2.3 again","    but it is not fully supported.","","-   Changed the PythonException.Message value so it displays the name of","    the exception class `Exception` instead of its representation","    `\u003ctype 'exceptions.Exception'\u003e`.","","-   Added `Python.Runtime.dll.config`.","","## 2.0.0-alpha.1","","### Changed","","-   Moved the Python for .NET project to Sourceforge and moved version","    control to Subversion.","","-   Removed `CallConvCdecl` attributes and the IL hack that they supported.","    .NET 2.x now supports `UnmanagedFunctionPointer`, which does the right","    thing without the hackery required in 1.x. This removes a dependency","    on ILASM to build the package and better supports Mono (in theory).","","-   Refactored import and assembly management machinery. The old `CLR.`","    syntax for import is deprecated, but still supported until 3.x. The","    recommended style now is to use `from System import xxx`, etc. We","    also now support `from X import *` correctly.","","-   Implemented a (lowercase) `clr` module to match IronPython for code","    compatibility. Methods of this module should be used to explicitly","    load assemblies. Implicit (name-based) assembly loading will still","    work until 3.x, but it is deprecated.","","-   Implemented support for generic types and generic methods using the","    same patterns and syntax as IronPython. See the documentation for","    usage details.","","-   Many small and large performance improvements, switched to generic","    collections for some internals, better algorithms for assembly","    scanning, etc.","","-   Fixed an unboxing issue in generated delegate implementation code","    that affected delegates that return value types.","","## [1.0.0][] - 2006-04-08","","### Changed","","-   Backported the refactored import and assembly management from the 2.x","    line, mainly to improve the possibility of code-compatibility with","    IronPython.","","## 1.0.0-rc.2","","### Changed","","-   Changed some uses of Finalize as a static method name that confused the","    Mono compiler and people reading the code. Note that this may be a","    breaking change if anyone was calling `PythonEngine.Finalize()`. If so,","    you should now use `PythonEngine.Shutdown()`.","","-   Tweaked assembly lookup to ensure that assemblies can be found in the","    current working directory, even after changing directories using things","    like `os.chdir()` from Python.","","-   Fixed some incorrect finalizers (thanks to Greg Chapman for the report)","    that may have caused some threading oddities.","","-   Tweaked support for out and ref parameters. If a method has a return","    type of void and a single ref or out parameter, that parameter will be","    returned as the result of the method. This matches the current behavior","    of IronPython and makes it more likely that code can be moved between","    Python for .NET and IP in the future.","","-   Refactored part of the assembly manager to remove a potential case of","    thread-deadlock in multi-threaded applications.","","-   Added a `__str__` method to managed exceptions that returns the Message","    attribute of the exception and the StackTrace (if available).","","## 1.0.0-rc.1","","### Changed","","-   Implemented a workaround for the fact that exceptions cannot be new-style","    classes in the CPython interpreter. Managed exceptions can now be raised","    and caught naturally from Python (hooray!)","","-   Implemented support for invoking methods with out and ref parameters.","    Because there is no real equivalent to these in Python, methods that","    have out or ref parameters will return a tuple. The tuple will contain","    the result of the method as its first item, followed by out parameter","    values in the order of their declaration in the method signature.","","-   Fixed a refcount problem that caused a crash when CLR was imported in","    an existing installed Python interpreter.","","-   Added an automatic conversion from Python strings to `byte[]`. This makes","    it easier to pass `byte[]` data to managed methods (or set properties,","    etc.) as a Python string without having to write explicit conversion","    code. Also works for sbyte arrays. Note that `byte` and `sbyte` arrays","    returned from managed methods or obtained from properties or fields","    do _not_ get converted to Python strings - they remain instances of","    `Byte[]` or `SByte[]`.","","-   Added conversion of generic Python sequences to object arrays when","    appropriate (thanks to Mackenzie Straight for the patch).","","-   Added a bit of cautionary documentation for embedders, focused on","    correct handling of the Python global interpreter lock from managed","    code for code that calls into Python.","","-   `PyObject.FromManagedObject` now correctly returns the Python None object","    if the input is a null reference. Also added a new `AsManagedObject`","    method to `PyObject`, making it easier to convert a Python-wrapped managed","    object to the real managed object.","","-   Created a simple installer for windows platforms.","","## 1.0.0-beta.5","","### Changed","","-   Refactored and fixed threading and global interpreter lock handling,","    which was badly broken before. Also added a number of threading and","    GIL-handling tests.","","-   Related to the GIL fixes, added a note to embedders in the README","    about using the AcquireLock and ReleaseLock methods of the PythonEngine","    class to manage the GIL.","","-   Fixed a problem in `Single \u003c--\u003e float` conversion for cultures that use","    different decimal symbols than Python.","","-   Added a new `ReloadModule` method to the `PythonEngine` class that hooks","    Python module reloading (`PyImport_ReloadModule`).","","-   Added a new `StringAsModule` method to the PythonEngine class that can","    create a module from a managed string of code.","","-   Added a default `__str__` implementation for Python wrappers of managed","    objects that calls the `ToString` method of the managed object.","","## 1.0.0-beta.4","","### Changed","","-   Fixed a problem that made it impossible to override \"special\" methods","    like `__getitem__` in subclasses of managed classes. Now the tests all","    pass, and there is much rejoicing.","","-   Managed classes reflected to Python now have an `__doc__` attribute that","    contains a listing of the class constructor signatures.","","-   Fixed a problem that prevented passing null (None) for array arguments.","","-   Added a number of new argument conversion tests. Thanks to Laurent","    Caumont for giving Python for .NET a good workout with managed DirectX.","","-   Updated the bundled C Python runtime and libraries to Python 2.4. The","    current release is known to also run with Python 2.3. It is known","    _not_ to work with older versions due to changes in CPython type","    object structure.","","-   Mostly fixed the differences in the way that import works depending","    on whether you are using the bundled interpreter or an existing Python","    interpreter. The hack I used makes import work uniformly for imports","    done in Python modules. Unfortunately, there is still a limitation","    when using the interpreter interactively: you need to do `import CLR`","    first before importing any sub-names when running with an existing","    Python interpreter.","","    The reason is that the first import of `CLR` installs the CLR import","    hook, but for an existing interpreter the standard importer is still","    in control for the duration of that first import, so sub-names won't","    be found until the next import, which will use the now-installed hook.","","-   Added support to directly iterate over objects that support IEnumerator","    (as well as IEnumerable). Thanks to Greg Chapman for prodding me ;)","","-   Added a section to the README dealing with rebuilding Python for .NET","    against other CPython versions.","","-   Fixed a problem with accessing properties when only the interface for","    an object is known. For example, `ICollection(ob).Count` failed because","    Python for .NET mistakenly decided that Count was abstract.","","-   Fixed some problems with how COM-based objects are exposed and how","    members of inherited interfaces are exposed. Thanks to Bruce Dodson","    for patches on this.","","-   Changed the Runtime class to use a const string to target the","    appropriate CPython dll in DllImport attributes. Now you only","    have to change one line to target a new Python version.","","## 1.0.0-beta.3","","### Changed","","-   A dumb bug that could cause a crash on startup on some platforms was","    fixed. Decided to update the beta for this, as a number of people","    were running into the problem.","","## 1.0.0-beta.2","","### Changed","","-   Exceptions raised as a result of getting or setting properties were","    not very helpful (target invokation exception). This has been changed","    to pass through the inner exception the way that methods do, which is","    much more likely to be the real exception that caused the problem.","","-   Events were refactored as the implementation was based on some bad","    assumptions. As a result, subscription and unsubscription now works","    correctly. A change from beta 1 is that event objects are no longer","    directly callable - this was not appropriate, since the internal","    implementation of an event is private and cant work reliably. Instead,","    you should the appropriate `OnSomeEvent` method published by a class","    to fire an event.","","-   The distribution did not include the key file, making it a pain for","    people to build from source. Added the key file to the distribution","    buildout for beta 2.","","-   Assemblies can now be found and loaded if they are on the PYTHONPATH.","    Previously only the appbase and the GAC were checked. The system now","    checks PYTHONPATH first, then the appbase, then the GAC.","","-   Fixed a bug in constructor invokation during object instantiation.","","## 1.0.0-beta.1","","### Changed","","-   Added the baseline of the managed embedding API. Some of the details","    are still subject to change based on some real-world use and feedback.","","    The embedding API is based on the `PyObject` class, along with a number","    of specific `PyDict`, `PyList`, (etc.) classes that expose the respective","    interfaces of the built-in Python types. The basic structure and usage","    is intended be familar to anyone who has used Python / C++ wrapper","    libraries like CXX or Boost.","","-   Started integrating NUnit2 to support unit tests for the embedding","    layer - still need to add the embedding tests (many already exist,","    but were written for an older version of NUnit).","","-   Added Python iteration protocol support for arrays and managed objects","    that implement IEnumerable. This means that you can now use the Python","    idiom `for item in object:` on any array or IEnumerable object.","","-   Added automatic conversion from Python sequence types to managed array","    types. This means, for example, that you can now call a managed method","    like AddRange that expects an array with any Python object that supports","    the Python sequence protocol, provided the items of the sequence are","    convertible to the item type of the managed array.","","-   Added new demo scripts, mostly more substantial winforms examples.","","-   Finished the unit tests for event support, and fixed lots of problems","    with events and delegates as a result. This is one of the trickier","    parts of the integration layer, and there is good coverage of these","    in the unit tests now.","","-   Did a fair amount of profiling with an eval version of ANTS (which is","    quite nice, BTW) and made a few changes as a result.","","-   Type management was refactored, fixing the issue that caused segfaults","    when GC was enabled. Unit tests, stress tests and demo apps now all run","    nicely with Python GC enabled. There are one or two things left to fix,","    but the fixes should not have any user impact.","","-   Changed to base PythonNet on Python 2.3.2. This is considered the most","    stable release, and a good 25 - 30% faster as well.","","-   Added a new `CLR.dll` that acts as an extension module that allows an","    existing unmodified Python 2.3 installation to simply `import CLR` to","    bootstrap the managed integration layer.","","-   A bug was causing managed methods to only expose overloads declared in","    a particular class, hiding inherited overloads of the same name. Fixed","    the bug and added some unit tests.","","-   Added a virtual `__doc__` attribute to managed methods that contains","    the signature of the method. This also means that the Python `help`","    function now provides signature info when used on a managed class.","","-   Calling managed methods and events `unbound` (passing the instance as","    the first argument) now works. There is a caveat for methods - if a","    class declares both static and instance methods with the same name,","    it is not possible to call that instance method unbound (the static","    method will always be called).","","-   Overload selection for overloaded methods is now much better and uses","    a method resolution algorithm similar to that used by Jython.","","-   Changed the managed python.exe wrapper to run as an STA thread, which","    seems to be more compatible with winforms apps. This needs a better","    solution long-term. One possibility would be a command line switch","    so that -sta or -mta could control the python.exe apartment state.","","-   Added support for the Python boolean type (True, False). Bool values","    now appear as True or False to Python.","","## 1.0.0-alpha.2","","### Changed","","-   Added a Mono makefile. Thanks to Camilo Uribe for help in testing and","    working out problems on Mono. Note that it not currently possible to","    build PythonNet using mono, due to the use of some IL attributes that","    the mono assembler / disassembler doesn't support yet.","","-   Preliminary tests show that PythonNet _does_ actually run under mono,","    though the test suite bombs out before the end with an \"out of memory\"","    error from the mono runtime. It's just a guess at this point, but I","    suspect there may be a limited pool for allocating certain reflection","    structures, and Python uses the reflection infrastructure quite heavily.","","-   Removed decoys like the non-working embedding APIs; lots of internal","    refactoring.","","-   Implemented indexer support. Managed instances that implement indexers","    can now be used naturally from Python (e.g. `someobject[0]`).","","-   Implemented sequence protocol support for managed arrays.","","-   Implemented basic thread state management; calls to managed methods","    no longer block Python. I won't go so far as to say the thread","    choreography is \"finished\", as I don't have a comprehensive set of","    tests to back that up yet (and it will take some work to write a","    sufficiently large and evil set of tests).","","-   Fixed a bug that caused conversions of managed strings to PyUnicode to","    produce mangled values in certain situations.","","-   Fixed a number of problems related to subclassing a managed class,","    including the fact that it didn't work :)","","-   Fixed all of the bugs that were causing tests to fail. This release","    contains all new bugs and new failing tests. Progress! :)","","## 1.0.0-alpha.1","","### Added","","-   Initial (mostly) working experimental release.","","[keep a changelog]: http://keepachangelog.com/","","[semantic versioning]: http://semver.org/","","[unreleased]: ../../compare/v2.3.0...HEAD","","[2.3.0]: ../../compare/v2.2.2...v2.3.0","","[2.2.2]: ../../compare/v2.2.1...v2.2.2","","[2.2.1]: ../../compare/v2.2.0-dev1...v2.2.1","","[2.2.0-dev1]: ../../compare/v2.1.0...v2.2.0-dev1","","[2.1.0]: ../../compare/v2.0.0...v2.1.0","","[2.0.0]: ../../compare/1.0...v2.0.0","","[1.0.0]: https://github.com/pythonnet/pythonnet/releases/tag/1.0","","[i714]: https://github.com/pythonnet/pythonnet/issues/714","[i608]: https://github.com/pythonnet/pythonnet/issues/608","[i443]: https://github.com/pythonnet/pythonnet/issues/443","[p690]: https://github.com/pythonnet/pythonnet/pull/690","[i475]: https://github.com/pythonnet/pythonnet/issues/475","[p693]: https://github.com/pythonnet/pythonnet/pull/693","[i432]: https://github.com/pythonnet/pythonnet/issues/432","[p433]: https://github.com/pythonnet/pythonnet/pull/433","[p460]: https://github.com/pythonnet/pythonnet/pull/460","[p461]: https://github.com/pythonnet/pythonnet/pull/461","[p433]: https://github.com/pythonnet/pythonnet/pull/433","[i434]: https://github.com/pythonnet/pythonnet/issues/434","[i481]: https://github.com/pythonnet/pythonnet/issues/481","[i486]: https://github.com/pythonnet/pythonnet/issues/486","[i492]: https://github.com/pythonnet/pythonnet/issues/492","[i495]: https://github.com/pythonnet/pythonnet/issues/495","[p607]: https://github.com/pythonnet/pythonnet/pull/607","[i627]: https://github.com/pythonnet/pythonnet/issues/627","[i276]: https://github.com/pythonnet/pythonnet/issues/276","[i676]: https://github.com/pythonnet/pythonnet/issues/676","[p345]: https://github.com/pythonnet/pythonnet/pull/345","[p347]: https://github.com/pythonnet/pythonnet/pull/347","[p349]: https://github.com/pythonnet/pythonnet/pull/349","[i224]: https://github.com/pythonnet/pythonnet/issues/224","[p353]: https://github.com/pythonnet/pythonnet/pull/353","[p391]: https://github.com/pythonnet/pythonnet/pull/391","[p346]: https://github.com/pythonnet/pythonnet/pull/346","[p384]: https://github.com/pythonnet/pythonnet/pull/384","[i383]: https://github.com/pythonnet/pythonnet/issues/383","[p386]: https://github.com/pythonnet/pythonnet/pull/386","[i370]: https://github.com/pythonnet/pythonnet/issues/370","[p373]: https://github.com/pythonnet/pythonnet/pull/373","[i390]: https://github.com/pythonnet/pythonnet/issues/390","[i319]: https://github.com/pythonnet/pythonnet/issues/319","[p398]: https://github.com/pythonnet/pythonnet/pull/398","[p345]: https://github.com/pythonnet/pythonnet/pull/345","[p389]: https://github.com/pythonnet/pythonnet/pull/389","[p407]: https://github.com/pythonnet/pythonnet/pull/407","[i322]: https://github.com/pythonnet/pythonnet/issues/322","[i66]: https://github.com/pythonnet/pythonnet/issues/66","[p329]: https://github.com/pythonnet/pythonnet/pull/329","[p337]: https://github.com/pythonnet/pythonnet/pull/337","[p339]: https://github.com/pythonnet/pythonnet/pull/339","[p369]: https://github.com/pythonnet/pythonnet/pull/369","[p368]: https://github.com/pythonnet/pythonnet/pull/368","[p341]: https://github.com/pythonnet/pythonnet/pull/341","[p353]: https://github.com/pythonnet/pythonnet/pull/353","[p371]: https://github.com/pythonnet/pythonnet/pull/371","[p345]: https://github.com/pythonnet/pythonnet/pull/345","[i362]: https://github.com/pythonnet/pythonnet/issues/362","[i401]: https://github.com/pythonnet/pythonnet/issues/401","[i262]: https://github.com/pythonnet/pythonnet/issues/262","[p343]: https://github.com/pythonnet/pythonnet/pull/343","[p365]: https://github.com/pythonnet/pythonnet/pull/365","[i203]: https://github.com/pythonnet/pythonnet/issues/203","[p377]: https://github.com/pythonnet/pythonnet/pull/377","[p398]: https://github.com/pythonnet/pythonnet/pull/398","[p400]: https://github.com/pythonnet/pythonnet/pull/400","[i397]: https://github.com/pythonnet/pythonnet/issues/397","[p399]: https://github.com/pythonnet/pythonnet/pull/399","[i120]: https://github.com/pythonnet/pythonnet/issues/120","[i413]: https://github.com/pythonnet/pythonnet/issues/413","[i179]: https://github.com/pythonnet/pythonnet/issues/179","[i414]: https://github.com/pythonnet/pythonnet/issues/414","[p415]: https://github.com/pythonnet/pythonnet/pull/415","[p329]: https://github.com/pythonnet/pythonnet/pull/329","[p360]: https://github.com/pythonnet/pythonnet/pull/360","[i417]: https://github.com/pythonnet/pythonnet/issues/417","[i336]: https://github.com/pythonnet/pythonnet/issues/336","[p310]: https://github.com/pythonnet/pythonnet/pull/310","[p312]: https://github.com/pythonnet/pythonnet/pull/312","[p281]: https://github.com/pythonnet/pythonnet/pull/281","[p268]: https://github.com/pythonnet/pythonnet/pull/268","[p287]: https://github.com/pythonnet/pythonnet/pull/287","[p314]: https://github.com/pythonnet/pythonnet/pull/314","[p320]: https://github.com/pythonnet/pythonnet/pull/320","[p275]: https://github.com/pythonnet/pythonnet/pull/275","[i270]: https://github.com/pythonnet/pythonnet/issues/270","[p273]: https://github.com/pythonnet/pythonnet/pull/273","[p294]: https://github.com/pythonnet/pythonnet/pull/294","[p300]: https://github.com/pythonnet/pythonnet/pull/300","[p286]: https://github.com/pythonnet/pythonnet/pull/286","[p219]: https://github.com/pythonnet/pythonnet/pull/219","[p208]: https://github.com/pythonnet/pythonnet/pull/208","[p206]: https://github.com/pythonnet/pythonnet/pull/206","[p233]: https://github.com/pythonnet/pythonnet/pull/233","[p219]: https://github.com/pythonnet/pythonnet/pull/219","[p250]: https://github.com/pythonnet/pythonnet/pull/250","[p225]: https://github.com/pythonnet/pythonnet/pull/225","[p78]: https://github.com/pythonnet/pythonnet/pull/78","[p163]: https://github.com/pythonnet/pythonnet/pull/163","[p625]: https://github.com/pythonnet/pythonnet/pull/625","[i131]: https://github.com/pythonnet/pythonnet/issues/131","[p531]: https://github.com/pythonnet/pythonnet/pull/531","[i755]: https://github.com/pythonnet/pythonnet/pull/755","[p534]: https://github.com/pythonnet/pythonnet/pull/534","[i449]: https://github.com/pythonnet/pythonnet/issues/449"],"stylingDirectives":[[[0,11,"pl-mh"],[2,11,"pl-en"]],[],[],[[19,20,"pl-s"],[39,40,"pl-s"],[40,41,"pl-s"],[41,42,"pl-s"]],[],[[50,51,"pl-s"],[67,68,"pl-s"],[68,69,"pl-s"],[69,70,"pl-s"]],[],[[0,17,"pl-mh"],[3,17,"pl-en"],[3,4,"pl-s"],[14,15,"pl-s"],[15,16,"pl-s"],[16,17,"pl-s"]],[],[[0,9,"pl-mh"],[4,9,"pl-en"]],[],[[0,1,"pl-v"],[49,50,"pl-s"],[50,75,"pl-c1"],[75,76,"pl-s"]],[],[[0,11,"pl-mh"],[4,11,"pl-en"]],[[0,1,"pl-v"]],[[0,1,"pl-v"],[4,5,"pl-s"],[5,12,"pl-c1"],[12,13,"pl-s"],[23,24,"pl-s"],[24,35,"pl-c1"],[35,36,"pl-s"]],[[0,1,"pl-v"],[4,5,"pl-s"],[5,21,"pl-c1"],[21,22,"pl-s"],[52,53,"pl-s"],[53,74,"pl-c1"],[74,75,"pl-s"]],[],[[0,1,"pl-v"],[4,5,"pl-s"],[5,21,"pl-c1"],[21,22,"pl-s"]],[[0,1,"pl-v"],[4,5,"pl-s"],[5,21,"pl-c1"],[21,22,"pl-s"],[56,57,"pl-s"],[57,81,"pl-c1"],[81,82,"pl-s"]],[[0,1,"pl-v"]],[],[],[[29,31,"pl-s"],[45,47,"pl-s"],[51,53,"pl-s"],[71,73,"pl-s"]],[],[[0,1,"pl-v"],[37,38,"pl-s"],[38,61,"pl-c1"],[61,62,"pl-s"]],[[69,70,"pl-s"],[70,73,"pl-c1"],[73,74,"pl-s"],[78,79,"pl-s"],[79,82,"pl-c1"],[82,83,"pl-s"]],[[0,1,"pl-v"],[55,56,"pl-s"]],[[0,1,"pl-v"],[4,5,"pl-s"],[5,13,"pl-c1"],[13,14,"pl-s"],[30,31,"pl-s"],[31,52,"pl-c1"],[52,53,"pl-s"],[69,70,"pl-s"],[70,81,"pl-c1"],[81,82,"pl-s"]],[],[[0,9,"pl-mh"],[4,9,"pl-en"]],[],[[0,1,"pl-v"],[52,53,"pl-s"],[53,60,"pl-c1"],[60,61,"pl-s"]],[[0,1,"pl-v"]],[[0,1,"pl-v"],[111,112,"pl-s"],[112,117,"pl-s"],[113,117,"pl-corl"],[117,118,"pl-s"],[118,119,"pl-s"],[119,124,"pl-en"],[124,125,"pl-s"]],[[0,1,"pl-v"],[9,10,"pl-s"],[10,18,"pl-c1"],[18,19,"pl-s"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[[0,1,"pl-v"],[29,30,"pl-s"],[30,37,"pl-c1"],[37,38,"pl-s"],[47,48,"pl-s"],[48,61,"pl-c1"],[61,62,"pl-s"]],[[0,1,"pl-v"],[30,31,"pl-s"],[31,39,"pl-c1"],[39,40,"pl-s"],[42,43,"pl-s"],[43,54,"pl-c1"],[54,55,"pl-s"],[61,62,"pl-s"],[62,69,"pl-c1"],[69,70,"pl-s"]],[[0,1,"pl-v"],[43,44,"pl-s"],[44,52,"pl-c1"],[52,53,"pl-s"]],[[0,1,"pl-v"]],[],[[0,11,"pl-mh"],[4,11,"pl-en"]],[],[[0,1,"pl-v"],[54,55,"pl-s"],[55,71,"pl-c1"],[71,72,"pl-s"]],[],[[0,25,"pl-mh"],[3,25,"pl-en"],[3,4,"pl-s"],[9,10,"pl-s"],[10,11,"pl-s"],[11,12,"pl-s"]],[],[],[],[[0,9,"pl-mh"],[4,9,"pl-en"]],[],[[0,1,"pl-v"]],[[0,1,"pl-v"],[23,24,"pl-s"],[24,37,"pl-c1"],[37,38,"pl-s"]],[[0,1,"pl-v"]],[[0,1,"pl-v"],[16,17,"pl-s"],[17,24,"pl-c1"],[24,25,"pl-s"]],[[0,1,"pl-v"],[4,5,"pl-s"],[5,13,"pl-c1"],[13,14,"pl-s"]],[[0,1,"pl-v"],[4,5,"pl-s"],[5,27,"pl-c1"],[27,28,"pl-s"]],[[4,5,"pl-s"],[5,31,"pl-c1"],[31,32,"pl-s"]],[[0,1,"pl-v"],[4,5,"pl-s"],[5,17,"pl-c1"],[17,18,"pl-s"],[38,39,"pl-s"],[39,43,"pl-c1"],[43,44,"pl-s"]],[[0,1,"pl-v"],[4,5,"pl-s"],[5,22,"pl-c1"],[22,23,"pl-s"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[],[[0,1,"pl-v"],[103,104,"pl-s"],[104,108,"pl-s"],[105,108,"pl-corl"],[108,109,"pl-s"],[109,110,"pl-s"],[110,114,"pl-en"],[114,115,"pl-s"]],[],[[0,11,"pl-mh"],[4,11,"pl-en"]],[],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[[0,1,"pl-v"],[12,13,"pl-s"],[13,26,"pl-c1"],[26,27,"pl-s"],[32,33,"pl-s"],[33,44,"pl-c1"],[44,45,"pl-s"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[[4,5,"pl-s"],[5,48,"pl-c1"],[48,49,"pl-s"]],[[4,5,"pl-s"],[5,53,"pl-c1"],[53,54,"pl-s"]],[[0,1,"pl-v"]],[[25,26,"pl-s"],[26,32,"pl-c1"],[32,33,"pl-s"],[54,55,"pl-s"],[55,63,"pl-c1"],[63,64,"pl-s"]],[[5,6,"pl-s"],[6,10,"pl-s"],[7,10,"pl-corl"],[10,11,"pl-s"],[11,12,"pl-s"],[12,16,"pl-en"],[16,17,"pl-s"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[[0,1,"pl-v"],[13,14,"pl-s"],[14,23,"pl-c1"],[23,24,"pl-s"]],[],[[0,1,"pl-v"],[11,12,"pl-s"],[12,39,"pl-c1"],[39,40,"pl-s"],[45,46,"pl-s"],[46,65,"pl-c1"],[65,66,"pl-s"]],[[4,5,"pl-s"],[5,13,"pl-c1"],[13,14,"pl-s"],[39,40,"pl-s"],[40,46,"pl-c1"],[46,47,"pl-s"]],[[55,56,"pl-s"],[56,64,"pl-c1"],[64,65,"pl-s"]],[[0,1,"pl-v"],[30,31,"pl-s"],[31,40,"pl-c1"],[40,41,"pl-s"]],[],[[0,9,"pl-mh"],[4,9,"pl-en"]],[],[[0,1,"pl-v"]],[],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[[0,1,"pl-v"],[9,10,"pl-s"],[10,23,"pl-c1"],[23,24,"pl-s"]],[[0,1,"pl-v"]],[[0,1,"pl-v"],[41,42,"pl-s"],[42,54,"pl-c1"],[54,55,"pl-s"]],[],[[0,25,"pl-mh"],[3,25,"pl-en"],[3,4,"pl-s"],[9,10,"pl-s"],[10,11,"pl-s"],[11,12,"pl-s"]],[],[[0,9,"pl-mh"],[4,9,"pl-en"]],[],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[],[],[[0,1,"pl-v"]],[[0,1,"pl-v"],[13,14,"pl-s"],[14,45,"pl-c1"],[45,46,"pl-s"]],[[0,1,"pl-v"],[10,11,"pl-s"],[11,25,"pl-c1"],[25,26,"pl-s"],[28,29,"pl-s"],[29,33,"pl-s"],[30,33,"pl-corl"],[33,34,"pl-s"],[34,35,"pl-s"],[35,39,"pl-en"],[39,40,"pl-s"],[42,43,"pl-s"],[43,47,"pl-s"],[44,47,"pl-corl"],[47,48,"pl-s"],[48,49,"pl-s"],[49,53,"pl-en"],[53,54,"pl-s"]],[[0,1,"pl-v"],[20,21,"pl-s"],[21,25,"pl-c1"],[25,26,"pl-s"],[46,47,"pl-s"],[47,51,"pl-s"],[48,51,"pl-corl"],[51,52,"pl-s"],[52,53,"pl-s"],[53,57,"pl-en"],[57,58,"pl-s"]],[[0,1,"pl-v"],[76,77,"pl-s"],[77,81,"pl-s"],[78,81,"pl-corl"],[81,82,"pl-s"],[82,83,"pl-s"],[83,87,"pl-en"],[87,88,"pl-s"]],[[0,1,"pl-v"],[91,92,"pl-s"],[92,96,"pl-s"],[93,96,"pl-corl"],[96,97,"pl-s"],[97,98,"pl-s"],[98,102,"pl-en"],[102,103,"pl-s"],[105,106,"pl-s"],[106,110,"pl-s"],[107,110,"pl-corl"],[110,111,"pl-s"],[111,112,"pl-s"],[112,116,"pl-en"],[116,117,"pl-s"]],[[0,1,"pl-v"],[116,117,"pl-s"],[117,121,"pl-s"],[118,121,"pl-corl"],[121,122,"pl-s"],[122,123,"pl-s"],[123,127,"pl-en"],[127,128,"pl-s"],[130,131,"pl-s"],[131,135,"pl-s"],[132,135,"pl-corl"],[135,136,"pl-s"],[136,137,"pl-s"],[137,141,"pl-en"],[141,142,"pl-s"]],[[0,1,"pl-v"],[85,86,"pl-s"],[86,90,"pl-s"],[87,90,"pl-corl"],[90,91,"pl-s"],[91,92,"pl-s"],[92,96,"pl-en"],[96,97,"pl-s"]],[[0,1,"pl-v"],[93,94,"pl-s"],[94,98,"pl-s"],[95,98,"pl-corl"],[98,99,"pl-s"],[99,100,"pl-s"],[100,104,"pl-en"],[104,105,"pl-s"]],[[0,1,"pl-v"],[85,86,"pl-s"],[86,90,"pl-s"],[87,90,"pl-corl"],[90,91,"pl-s"],[91,92,"pl-s"],[92,96,"pl-en"],[96,97,"pl-s"]],[[0,1,"pl-v"],[91,92,"pl-s"],[92,96,"pl-s"],[93,96,"pl-corl"],[96,97,"pl-s"],[97,98,"pl-s"],[98,102,"pl-en"],[102,103,"pl-s"]],[[0,1,"pl-v"],[42,43,"pl-s"],[43,51,"pl-c1"],[51,52,"pl-s"],[54,55,"pl-s"],[55,59,"pl-s"],[56,59,"pl-corl"],[59,60,"pl-s"],[60,61,"pl-s"],[61,65,"pl-en"],[65,66,"pl-s"]],[],[[0,11,"pl-mh"],[4,11,"pl-en"]],[],[[0,1,"pl-v"]],[[0,1,"pl-v"],[53,57,"pl-s"],[54,57,"pl-corl"]],[[0,1,"pl-v"],[41,42,"pl-s"],[42,57,"pl-c1"],[57,58,"pl-s"],[198,199,"pl-s"],[199,212,"pl-c1"],[212,213,"pl-s"],[261,262,"pl-s"],[262,266,"pl-s"],[263,266,"pl-corl"],[266,267,"pl-s"],[267,268,"pl-s"],[268,272,"pl-en"],[272,273,"pl-s"]],[[0,1,"pl-v"],[71,75,"pl-s"],[72,75,"pl-corl"]],[[0,1,"pl-v"]],[[0,1,"pl-v"],[11,12,"pl-s"],[12,23,"pl-c1"],[23,24,"pl-s"],[32,33,"pl-s"],[33,37,"pl-s"],[34,37,"pl-corl"],[37,38,"pl-s"],[38,39,"pl-s"],[39,43,"pl-en"],[43,44,"pl-s"]],[],[[0,9,"pl-mh"],[4,9,"pl-en"]],[],[[0,1,"pl-v"]],[[118,119,"pl-s"],[119,123,"pl-s"],[120,123,"pl-corl"],[123,124,"pl-s"],[124,125,"pl-s"],[125,129,"pl-en"],[129,130,"pl-s"]],[[0,1,"pl-v"],[37,38,"pl-s"],[38,42,"pl-s"],[39,42,"pl-corl"],[42,43,"pl-s"],[43,44,"pl-s"],[44,48,"pl-en"],[48,49,"pl-s"]],[[0,1,"pl-v"],[57,58,"pl-s"],[58,62,"pl-s"],[59,62,"pl-corl"],[62,63,"pl-s"],[63,64,"pl-s"],[64,68,"pl-en"],[68,69,"pl-s"]],[],[[0,1,"pl-v"],[111,112,"pl-s"],[112,116,"pl-s"],[113,116,"pl-corl"],[116,117,"pl-s"],[117,118,"pl-s"],[118,122,"pl-en"],[122,123,"pl-s"]],[[0,1,"pl-v"]],[[36,37,"pl-s"],[37,50,"pl-c1"],[50,51,"pl-s"],[55,56,"pl-s"],[56,68,"pl-c1"],[68,69,"pl-s"]],[[15,16,"pl-s"],[16,20,"pl-s"],[17,20,"pl-corl"],[20,21,"pl-s"],[21,22,"pl-s"],[22,26,"pl-en"],[26,27,"pl-s"]],[[0,1,"pl-v"],[53,54,"pl-s"],[54,58,"pl-s"],[55,58,"pl-corl"],[58,59,"pl-s"],[59,60,"pl-s"],[60,64,"pl-en"],[64,65,"pl-s"]],[[0,1,"pl-v"],[36,37,"pl-s"],[37,41,"pl-s"],[38,41,"pl-corl"],[41,42,"pl-s"],[42,43,"pl-s"],[43,47,"pl-en"],[47,48,"pl-s"]],[[0,1,"pl-v"],[71,72,"pl-s"],[72,76,"pl-s"],[73,76,"pl-corl"],[76,77,"pl-s"],[77,78,"pl-s"],[78,82,"pl-en"],[82,83,"pl-s"]],[[0,1,"pl-v"],[10,11,"pl-s"],[11,25,"pl-c1"],[25,26,"pl-s"],[47,48,"pl-s"],[48,54,"pl-c1"],[54,55,"pl-s"],[65,66,"pl-s"],[66,70,"pl-s"],[67,70,"pl-corl"],[70,71,"pl-s"],[71,72,"pl-s"],[72,76,"pl-en"],[76,77,"pl-s"]],[[0,1,"pl-v"],[10,11,"pl-s"],[11,33,"pl-c1"],[33,34,"pl-s"],[60,61,"pl-s"],[61,65,"pl-s"],[62,65,"pl-corl"],[65,66,"pl-s"],[66,67,"pl-s"],[67,71,"pl-en"],[71,72,"pl-s"]],[[0,1,"pl-v"],[58,59,"pl-s"],[59,63,"pl-s"],[60,63,"pl-corl"],[63,64,"pl-s"],[64,65,"pl-s"],[65,69,"pl-en"],[69,70,"pl-s"]],[[0,1,"pl-v"],[32,33,"pl-s"],[33,37,"pl-s"],[34,37,"pl-corl"],[37,38,"pl-s"],[38,39,"pl-s"],[39,43,"pl-en"],[43,44,"pl-s"]],[[0,1,"pl-v"],[60,61,"pl-s"],[61,65,"pl-s"],[62,65,"pl-corl"],[65,66,"pl-s"],[66,67,"pl-s"],[67,71,"pl-en"],[71,72,"pl-s"]],[[0,1,"pl-v"],[65,66,"pl-s"],[66,70,"pl-s"],[67,70,"pl-corl"],[70,71,"pl-s"],[71,72,"pl-s"],[72,76,"pl-en"],[76,77,"pl-s"]],[[0,1,"pl-v"],[50,51,"pl-s"],[51,55,"pl-s"],[52,55,"pl-corl"],[55,56,"pl-s"],[56,57,"pl-s"],[57,61,"pl-en"],[61,62,"pl-s"]],[],[],[[0,25,"pl-mh"],[3,25,"pl-en"],[3,4,"pl-s"],[9,10,"pl-s"],[10,11,"pl-s"],[11,12,"pl-s"]],[],[[0,9,"pl-mh"],[4,9,"pl-en"]],[],[[0,1,"pl-v"],[25,26,"pl-s"],[26,30,"pl-s"],[27,30,"pl-corl"],[30,31,"pl-s"],[31,32,"pl-s"],[32,36,"pl-en"],[36,37,"pl-s"]],[[0,1,"pl-v"],[10,11,"pl-s"],[11,26,"pl-c1"],[26,27,"pl-s"],[29,30,"pl-s"],[30,34,"pl-s"],[31,34,"pl-corl"],[34,35,"pl-s"],[35,36,"pl-s"],[36,40,"pl-en"],[40,41,"pl-s"]],[[0,1,"pl-v"],[29,30,"pl-s"],[30,34,"pl-s"],[31,34,"pl-corl"],[34,35,"pl-s"],[35,36,"pl-s"],[36,40,"pl-en"],[40,41,"pl-s"]],[[0,1,"pl-v"],[10,11,"pl-s"],[11,25,"pl-c1"],[25,26,"pl-s"],[40,41,"pl-s"],[41,45,"pl-s"],[42,45,"pl-corl"],[45,46,"pl-s"],[46,47,"pl-s"],[47,51,"pl-en"],[51,52,"pl-s"],[54,55,"pl-s"],[55,59,"pl-s"],[56,59,"pl-corl"],[59,60,"pl-s"],[60,61,"pl-s"],[61,65,"pl-en"],[65,66,"pl-s"]],[[0,1,"pl-v"],[10,11,"pl-s"],[11,25,"pl-c1"],[25,26,"pl-s"],[38,39,"pl-s"],[39,43,"pl-s"],[40,43,"pl-corl"],[43,44,"pl-s"],[44,45,"pl-s"],[45,49,"pl-en"],[49,50,"pl-s"],[52,53,"pl-s"],[53,57,"pl-s"],[54,57,"pl-corl"],[57,58,"pl-s"],[58,59,"pl-s"],[59,63,"pl-en"],[63,64,"pl-s"]],[[0,1,"pl-v"],[58,59,"pl-s"],[59,63,"pl-s"],[60,63,"pl-corl"],[63,64,"pl-s"],[64,65,"pl-s"],[65,69,"pl-en"],[69,70,"pl-s"]],[[0,1,"pl-v"],[10,11,"pl-s"],[11,16,"pl-c1"],[16,17,"pl-s"],[19,20,"pl-s"],[20,24,"pl-s"],[21,24,"pl-corl"],[24,25,"pl-s"],[25,26,"pl-s"],[26,30,"pl-en"],[30,31,"pl-s"],[33,34,"pl-s"],[34,38,"pl-s"],[35,38,"pl-corl"],[38,39,"pl-s"],[39,40,"pl-s"],[40,44,"pl-en"],[44,45,"pl-s"],[47,48,"pl-s"],[48,52,"pl-s"],[49,52,"pl-corl"],[52,53,"pl-s"],[53,54,"pl-s"],[54,58,"pl-en"],[58,59,"pl-s"]],[[0,1,"pl-v"]],[[23,24,"pl-s"],[24,32,"pl-c1"],[32,33,"pl-s"],[35,36,"pl-s"],[36,40,"pl-s"],[37,40,"pl-corl"],[40,41,"pl-s"],[41,42,"pl-s"],[42,46,"pl-en"],[46,47,"pl-s"],[49,50,"pl-s"],[50,54,"pl-s"],[51,54,"pl-corl"],[54,55,"pl-s"],[55,56,"pl-s"],[56,60,"pl-en"],[60,61,"pl-s"]],[[0,1,"pl-v"],[10,11,"pl-s"],[11,24,"pl-c1"],[24,25,"pl-s"],[27,28,"pl-s"],[28,32,"pl-s"],[29,32,"pl-corl"],[32,33,"pl-s"],[33,34,"pl-s"],[34,38,"pl-en"],[38,39,"pl-s"]],[[0,1,"pl-v"],[10,11,"pl-s"],[11,22,"pl-c1"],[22,23,"pl-s"],[45,46,"pl-s"],[46,50,"pl-s"],[47,50,"pl-corl"],[50,51,"pl-s"],[51,52,"pl-s"],[52,56,"pl-en"],[56,57,"pl-s"],[59,60,"pl-s"],[60,64,"pl-s"],[61,64,"pl-corl"],[64,65,"pl-s"],[65,66,"pl-s"],[66,70,"pl-en"],[70,71,"pl-s"]],[[0,1,"pl-v"],[10,11,"pl-s"],[11,14,"pl-c1"],[14,15,"pl-s"],[35,36,"pl-s"],[36,40,"pl-s"],[37,40,"pl-corl"],[40,41,"pl-s"],[41,42,"pl-s"],[42,46,"pl-en"],[46,47,"pl-s"]],[[0,1,"pl-v"],[10,11,"pl-s"],[11,27,"pl-c1"],[27,28,"pl-s"]],[[0,1,"pl-v"],[13,14,"pl-s"],[14,26,"pl-c1"],[26,27,"pl-s"],[36,37,"pl-s"],[37,41,"pl-c1"],[41,42,"pl-s"],[47,48,"pl-s"],[48,52,"pl-c1"],[52,53,"pl-s"],[55,56,"pl-s"],[56,60,"pl-s"],[57,60,"pl-corl"],[60,61,"pl-s"],[61,62,"pl-s"],[62,66,"pl-en"],[66,67,"pl-s"]],[[0,1,"pl-v"],[29,30,"pl-s"],[30,44,"pl-c1"],[44,45,"pl-s"],[47,48,"pl-s"],[48,52,"pl-s"],[49,52,"pl-corl"],[52,53,"pl-s"],[53,54,"pl-s"],[54,58,"pl-en"],[58,59,"pl-s"]],[[0,1,"pl-v"],[25,26,"pl-s"],[26,30,"pl-s"],[27,30,"pl-corl"],[30,31,"pl-s"],[31,32,"pl-s"],[32,36,"pl-en"],[36,37,"pl-s"]],[[0,1,"pl-v"],[19,20,"pl-s"],[20,31,"pl-c1"],[31,32,"pl-s"],[37,38,"pl-s"],[38,47,"pl-c1"],[47,48,"pl-s"],[53,54,"pl-s"],[54,63,"pl-c1"],[63,64,"pl-s"],[66,67,"pl-s"],[67,70,"pl-s"],[68,70,"pl-corl"],[70,71,"pl-s"],[71,72,"pl-s"],[72,75,"pl-en"],[75,76,"pl-s"]],[],[[0,11,"pl-mh"],[4,11,"pl-en"]],[],[[0,1,"pl-v"],[22,23,"pl-s"],[23,32,"pl-c1"],[32,33,"pl-s"],[35,36,"pl-s"],[36,40,"pl-s"],[37,40,"pl-corl"],[40,41,"pl-s"],[41,42,"pl-s"],[42,46,"pl-en"],[46,47,"pl-s"]],[[0,1,"pl-v"],[22,23,"pl-s"],[23,31,"pl-c1"],[31,32,"pl-s"],[34,35,"pl-s"],[35,39,"pl-s"],[36,39,"pl-corl"],[39,40,"pl-s"],[40,41,"pl-s"],[41,45,"pl-en"],[45,46,"pl-s"]],[[0,1,"pl-v"],[48,49,"pl-s"],[49,59,"pl-c1"],[59,60,"pl-s"],[62,63,"pl-s"],[63,67,"pl-s"],[64,67,"pl-corl"],[67,68,"pl-s"],[68,69,"pl-s"],[69,73,"pl-en"],[73,74,"pl-s"]],[[0,1,"pl-v"],[15,16,"pl-s"],[16,30,"pl-c1"],[30,31,"pl-s"],[63,64,"pl-s"],[64,68,"pl-s"],[65,68,"pl-corl"],[68,69,"pl-s"],[69,70,"pl-s"],[70,74,"pl-en"],[74,75,"pl-s"]],[[0,1,"pl-v"],[12,13,"pl-s"],[13,22,"pl-c1"],[22,23,"pl-s"],[27,28,"pl-s"],[28,34,"pl-c1"],[34,35,"pl-s"],[37,38,"pl-s"],[38,42,"pl-s"],[39,42,"pl-corl"],[42,43,"pl-s"],[43,44,"pl-s"],[44,48,"pl-en"],[48,49,"pl-s"]],[[0,1,"pl-v"],[34,35,"pl-s"],[35,40,"pl-c1"],[40,41,"pl-s"],[45,46,"pl-s"],[46,51,"pl-c1"],[51,52,"pl-s"],[54,55,"pl-s"],[55,59,"pl-s"],[56,59,"pl-corl"],[59,60,"pl-s"],[60,61,"pl-s"],[61,65,"pl-en"],[65,66,"pl-s"]],[[0,1,"pl-v"],[36,37,"pl-s"],[37,42,"pl-c1"],[42,43,"pl-s"],[47,48,"pl-s"],[48,53,"pl-c1"],[53,54,"pl-s"],[56,57,"pl-s"],[57,61,"pl-s"],[58,61,"pl-corl"],[61,62,"pl-s"],[62,63,"pl-s"],[63,67,"pl-en"],[67,68,"pl-s"]],[[0,1,"pl-v"],[34,35,"pl-s"],[35,40,"pl-c1"],[40,41,"pl-s"],[45,46,"pl-s"],[46,51,"pl-c1"],[51,52,"pl-s"],[54,55,"pl-s"],[55,59,"pl-s"],[56,59,"pl-corl"],[59,60,"pl-s"],[60,61,"pl-s"],[61,65,"pl-en"],[65,66,"pl-s"]],[[0,1,"pl-v"],[36,37,"pl-s"],[37,41,"pl-s"],[38,41,"pl-corl"],[41,42,"pl-s"],[42,43,"pl-s"],[43,47,"pl-en"],[47,48,"pl-s"]],[[0,1,"pl-v"],[12,13,"pl-s"],[13,25,"pl-c1"],[25,26,"pl-s"],[56,57,"pl-s"],[57,61,"pl-s"],[58,61,"pl-corl"],[61,62,"pl-s"],[62,63,"pl-s"],[63,67,"pl-en"],[67,68,"pl-s"]],[[0,1,"pl-v"],[12,13,"pl-s"],[13,21,"pl-c1"],[21,22,"pl-s"],[27,28,"pl-s"],[28,47,"pl-c1"],[47,48,"pl-s"],[56,57,"pl-s"],[57,61,"pl-s"],[58,61,"pl-corl"],[61,62,"pl-s"],[62,63,"pl-s"],[63,67,"pl-en"],[67,68,"pl-s"]],[],[[0,14,"pl-mh"],[4,14,"pl-en"]],[],[[0,1,"pl-v"],[15,16,"pl-s"],[16,25,"pl-c1"],[25,26,"pl-s"],[28,29,"pl-s"],[29,33,"pl-s"],[30,33,"pl-corl"],[33,34,"pl-s"],[34,35,"pl-s"],[35,39,"pl-en"],[39,40,"pl-s"]],[],[[0,9,"pl-mh"],[4,9,"pl-en"]],[],[[0,1,"pl-v"],[39,40,"pl-s"],[40,44,"pl-s"],[41,44,"pl-corl"],[44,45,"pl-s"],[45,46,"pl-s"],[46,50,"pl-en"],[50,51,"pl-s"],[53,54,"pl-s"],[54,58,"pl-s"],[55,58,"pl-corl"],[58,59,"pl-s"],[59,60,"pl-s"],[60,64,"pl-en"],[64,65,"pl-s"]],[[0,1,"pl-v"],[33,34,"pl-s"],[34,38,"pl-s"],[35,38,"pl-corl"],[38,39,"pl-s"],[39,40,"pl-s"],[40,44,"pl-en"],[44,45,"pl-s"]],[[0,1,"pl-v"]],[[0,1,"pl-v"],[50,51,"pl-s"],[51,55,"pl-s"],[52,55,"pl-corl"],[55,56,"pl-s"],[56,57,"pl-s"],[57,61,"pl-en"],[61,62,"pl-s"],[64,65,"pl-s"],[65,69,"pl-s"],[66,69,"pl-corl"],[69,70,"pl-s"],[70,71,"pl-s"],[71,75,"pl-en"],[75,76,"pl-s"]],[[0,1,"pl-v"],[51,52,"pl-s"],[52,56,"pl-s"],[53,56,"pl-corl"],[56,57,"pl-s"],[57,58,"pl-s"],[58,62,"pl-en"],[62,63,"pl-s"]],[[0,1,"pl-v"],[34,35,"pl-s"],[35,47,"pl-c1"],[47,48,"pl-s"],[50,51,"pl-s"],[51,55,"pl-s"],[52,55,"pl-corl"],[55,56,"pl-s"],[56,57,"pl-s"],[57,61,"pl-en"],[61,62,"pl-s"]],[[0,1,"pl-v"],[48,49,"pl-s"],[49,63,"pl-c1"],[63,64,"pl-s"]],[[0,1,"pl-v"],[10,11,"pl-s"],[11,26,"pl-c1"],[26,27,"pl-s"],[51,52,"pl-s"],[52,56,"pl-s"],[53,56,"pl-corl"],[56,57,"pl-s"],[57,58,"pl-s"],[58,62,"pl-en"],[62,63,"pl-s"]],[[0,1,"pl-v"],[10,11,"pl-s"],[11,20,"pl-c1"],[20,21,"pl-s"],[40,41,"pl-s"],[41,45,"pl-s"],[42,45,"pl-corl"],[45,46,"pl-s"],[46,47,"pl-s"],[47,51,"pl-en"],[51,52,"pl-s"],[54,55,"pl-s"],[55,59,"pl-s"],[56,59,"pl-corl"],[59,60,"pl-s"],[60,61,"pl-s"],[61,65,"pl-en"],[65,66,"pl-s"]],[[0,1,"pl-v"],[10,11,"pl-s"],[11,18,"pl-c1"],[18,19,"pl-s"],[22,23,"pl-s"],[23,38,"pl-c1"],[38,39,"pl-s"],[40,41,"pl-s"],[41,53,"pl-c1"],[53,54,"pl-s"],[58,59,"pl-s"],[59,67,"pl-c1"],[67,68,"pl-s"],[70,71,"pl-s"],[71,75,"pl-s"],[72,75,"pl-corl"],[75,76,"pl-s"],[76,77,"pl-s"],[77,81,"pl-en"],[81,82,"pl-s"]],[[0,1,"pl-v"],[10,11,"pl-s"],[11,36,"pl-c1"],[36,37,"pl-s"],[48,49,"pl-s"],[49,53,"pl-s"],[50,53,"pl-corl"],[53,54,"pl-s"],[54,55,"pl-s"],[55,59,"pl-en"],[59,60,"pl-s"]],[[0,1,"pl-v"],[19,20,"pl-s"],[20,40,"pl-c1"],[40,41,"pl-s"],[43,44,"pl-s"],[44,48,"pl-s"],[45,48,"pl-corl"],[48,49,"pl-s"],[49,50,"pl-s"],[50,54,"pl-en"],[54,55,"pl-s"]],[[0,1,"pl-v"],[10,11,"pl-s"],[11,34,"pl-c1"],[34,35,"pl-s"],[44,45,"pl-s"],[45,49,"pl-s"],[46,49,"pl-corl"],[49,50,"pl-s"],[50,51,"pl-s"],[51,55,"pl-en"],[55,56,"pl-s"],[58,59,"pl-s"],[59,63,"pl-s"],[60,63,"pl-corl"],[63,64,"pl-s"],[64,65,"pl-s"],[65,69,"pl-en"],[69,70,"pl-s"],[72,73,"pl-s"],[73,77,"pl-s"],[74,77,"pl-corl"],[77,78,"pl-s"],[78,79,"pl-s"],[79,83,"pl-en"],[83,84,"pl-s"]],[[0,1,"pl-v"]],[],[[0,11,"pl-mh"],[4,11,"pl-en"]],[],[[0,1,"pl-v"],[12,13,"pl-s"],[13,16,"pl-c1"],[16,17,"pl-s"],[33,34,"pl-s"],[34,43,"pl-c1"],[43,44,"pl-s"],[46,47,"pl-s"],[47,51,"pl-s"],[48,51,"pl-corl"],[51,52,"pl-s"],[52,53,"pl-s"],[53,57,"pl-en"],[57,58,"pl-s"]],[[0,1,"pl-v"],[12,13,"pl-s"],[13,22,"pl-c1"],[22,23,"pl-s"],[39,40,"pl-s"],[40,44,"pl-c1"],[44,45,"pl-s"],[47,48,"pl-s"],[48,52,"pl-s"],[49,52,"pl-corl"],[52,53,"pl-s"],[53,54,"pl-s"],[54,58,"pl-en"],[58,59,"pl-s"]],[[0,1,"pl-v"],[21,22,"pl-s"],[22,47,"pl-c1"],[47,48,"pl-s"]],[[0,1,"pl-v"],[30,31,"pl-s"],[31,55,"pl-c1"],[55,56,"pl-s"],[58,59,"pl-s"],[59,63,"pl-s"],[60,63,"pl-corl"],[63,64,"pl-s"],[64,65,"pl-s"],[65,69,"pl-en"],[69,70,"pl-s"]],[],[[0,25,"pl-mh"],[3,25,"pl-en"],[3,4,"pl-s"],[9,10,"pl-s"],[10,11,"pl-s"],[11,12,"pl-s"]],[],[[0,9,"pl-mh"],[4,9,"pl-en"]],[],[[0,1,"pl-v"],[34,35,"pl-s"],[35,39,"pl-s"],[36,39,"pl-corl"],[39,40,"pl-s"],[40,41,"pl-s"],[41,45,"pl-en"],[45,46,"pl-s"]],[],[[0,25,"pl-mh"],[3,25,"pl-en"],[3,4,"pl-s"],[9,10,"pl-s"],[10,11,"pl-s"],[11,12,"pl-s"]],[],[[0,1,"pl-v"],[4,5,"pl-s"],[5,11,"pl-c1"],[11,12,"pl-s"],[52,53,"pl-s"],[53,59,"pl-c1"],[59,60,"pl-s"]],[],[[0,9,"pl-mh"],[4,9,"pl-en"]],[],[[0,1,"pl-v"],[24,25,"pl-s"],[25,29,"pl-s"],[26,29,"pl-corl"],[29,30,"pl-s"],[30,31,"pl-s"],[31,35,"pl-en"],[35,36,"pl-s"]],[[0,1,"pl-v"],[10,11,"pl-s"],[11,22,"pl-c1"],[22,23,"pl-s"],[35,36,"pl-s"],[36,40,"pl-s"],[37,40,"pl-corl"],[40,41,"pl-s"],[41,42,"pl-s"],[42,46,"pl-en"],[46,47,"pl-s"]],[[0,1,"pl-v"],[10,11,"pl-s"],[11,16,"pl-c1"],[16,17,"pl-s"],[26,27,"pl-s"],[27,31,"pl-s"],[28,31,"pl-corl"],[31,32,"pl-s"],[32,33,"pl-s"],[33,37,"pl-en"],[37,38,"pl-s"]],[[0,1,"pl-v"],[27,28,"pl-s"],[28,32,"pl-s"],[29,32,"pl-corl"],[32,33,"pl-s"],[33,34,"pl-s"],[34,38,"pl-en"],[38,39,"pl-s"]],[[0,1,"pl-v"],[10,11,"pl-s"],[11,20,"pl-c1"],[20,21,"pl-s"],[46,47,"pl-s"],[47,51,"pl-s"],[48,51,"pl-corl"],[51,52,"pl-s"],[52,53,"pl-s"],[53,57,"pl-en"],[57,58,"pl-s"]],[],[[0,11,"pl-mh"],[4,11,"pl-en"]],[],[[0,1,"pl-v"],[20,21,"pl-s"],[21,25,"pl-s"],[22,25,"pl-corl"],[25,26,"pl-s"],[26,27,"pl-s"],[27,31,"pl-en"],[31,32,"pl-s"]],[[0,1,"pl-v"],[22,23,"pl-s"],[23,27,"pl-s"],[24,27,"pl-corl"],[27,28,"pl-s"],[28,29,"pl-s"],[29,33,"pl-en"],[33,34,"pl-s"]],[[0,1,"pl-v"],[13,14,"pl-s"],[14,17,"pl-c1"],[17,18,"pl-s"]],[[0,1,"pl-v"],[44,45,"pl-s"],[45,49,"pl-s"],[46,49,"pl-corl"],[49,50,"pl-s"],[50,51,"pl-s"],[51,55,"pl-en"],[55,56,"pl-s"]],[[0,1,"pl-v"],[51,52,"pl-s"],[52,56,"pl-s"],[53,56,"pl-corl"],[56,57,"pl-s"],[57,58,"pl-s"],[58,62,"pl-en"],[62,63,"pl-s"]],[],[[0,11,"pl-mh"],[4,11,"pl-en"]],[],[[0,1,"pl-v"],[24,25,"pl-s"],[25,29,"pl-s"],[26,29,"pl-corl"],[29,30,"pl-s"],[30,31,"pl-s"],[31,35,"pl-en"],[35,36,"pl-s"]],[[0,1,"pl-v"],[24,25,"pl-s"],[25,29,"pl-s"],[26,29,"pl-corl"],[29,30,"pl-s"],[30,31,"pl-s"],[31,35,"pl-en"],[35,36,"pl-s"]],[],[[0,9,"pl-mh"],[4,9,"pl-en"]],[],[[0,1,"pl-v"],[10,11,"pl-s"],[11,21,"pl-c1"],[21,22,"pl-s"],[38,39,"pl-s"],[39,43,"pl-s"],[40,43,"pl-corl"],[43,44,"pl-s"],[44,45,"pl-s"],[45,49,"pl-en"],[49,50,"pl-s"]],[[0,1,"pl-v"],[26,27,"pl-s"],[27,31,"pl-s"],[28,31,"pl-corl"],[31,32,"pl-s"],[32,33,"pl-s"],[33,37,"pl-en"],[37,38,"pl-s"]],[[0,1,"pl-v"],[28,29,"pl-s"],[29,33,"pl-s"],[30,33,"pl-corl"],[33,34,"pl-s"],[34,35,"pl-s"],[35,39,"pl-en"],[39,40,"pl-s"]],[[0,1,"pl-v"],[24,25,"pl-s"],[25,29,"pl-s"],[26,29,"pl-corl"],[29,30,"pl-s"],[30,31,"pl-s"],[31,35,"pl-en"],[35,36,"pl-s"]],[],[[0,30,"pl-mh"],[3,30,"pl-en"],[3,4,"pl-s"],[14,15,"pl-s"],[15,16,"pl-s"],[16,17,"pl-s"]],[],[[0,11,"pl-mh"],[4,11,"pl-en"]],[],[[0,1,"pl-v"],[22,23,"pl-s"],[23,27,"pl-s"],[24,27,"pl-corl"],[27,28,"pl-s"],[28,29,"pl-s"],[29,33,"pl-en"],[33,34,"pl-s"]],[[0,1,"pl-v"],[4,5,"pl-s"],[5,13,"pl-c1"],[13,14,"pl-s"],[54,55,"pl-s"],[55,59,"pl-s"],[56,59,"pl-corl"],[59,60,"pl-s"],[60,61,"pl-s"],[61,65,"pl-en"],[65,66,"pl-s"]],[[0,1,"pl-v"],[31,32,"pl-s"],[32,36,"pl-s"],[33,36,"pl-corl"],[36,37,"pl-s"],[37,38,"pl-s"],[38,42,"pl-en"],[42,43,"pl-s"]],[[0,1,"pl-v"],[35,36,"pl-s"],[36,40,"pl-s"],[37,40,"pl-corl"],[40,41,"pl-s"],[41,42,"pl-s"],[42,46,"pl-en"],[46,47,"pl-s"]],[],[[0,9,"pl-mh"],[4,9,"pl-en"]],[],[[0,1,"pl-v"],[28,29,"pl-s"],[29,33,"pl-s"],[30,33,"pl-corl"],[33,34,"pl-s"],[34,35,"pl-s"],[35,39,"pl-en"],[39,40,"pl-s"]],[[0,1,"pl-v"],[27,28,"pl-s"],[28,32,"pl-s"],[29,32,"pl-corl"],[32,33,"pl-s"],[33,34,"pl-s"],[34,38,"pl-en"],[38,39,"pl-s"]],[[0,1,"pl-v"],[31,32,"pl-s"],[32,36,"pl-s"],[33,36,"pl-corl"],[36,37,"pl-s"],[37,38,"pl-s"],[38,42,"pl-en"],[42,43,"pl-s"]],[],[[0,25,"pl-mh"],[3,25,"pl-en"],[3,4,"pl-s"],[9,10,"pl-s"],[10,11,"pl-s"],[11,12,"pl-s"]],[],[[0,9,"pl-mh"],[4,9,"pl-en"]],[],[[0,1,"pl-v"],[31,32,"pl-s"],[32,35,"pl-s"],[33,35,"pl-corl"],[35,36,"pl-s"],[36,37,"pl-s"],[37,40,"pl-en"],[40,41,"pl-s"]],[[0,1,"pl-v"],[31,32,"pl-s"],[32,35,"pl-s"],[33,35,"pl-corl"],[35,36,"pl-s"],[36,37,"pl-s"],[37,40,"pl-en"],[40,41,"pl-s"]],[[0,1,"pl-v"],[31,32,"pl-s"],[32,35,"pl-s"],[33,35,"pl-corl"],[35,36,"pl-s"],[36,37,"pl-s"],[37,40,"pl-en"],[40,41,"pl-s"]],[[0,1,"pl-v"],[31,32,"pl-s"],[32,36,"pl-s"],[33,36,"pl-corl"],[36,37,"pl-s"],[37,38,"pl-s"],[38,42,"pl-en"],[42,43,"pl-s"]],[[0,1,"pl-v"],[48,49,"pl-s"],[49,52,"pl-s"],[50,52,"pl-corl"],[52,53,"pl-s"],[53,54,"pl-s"],[54,57,"pl-en"],[57,58,"pl-s"]],[[0,1,"pl-v"],[65,66,"pl-s"],[66,69,"pl-s"],[67,69,"pl-corl"],[69,70,"pl-s"],[70,71,"pl-s"],[71,74,"pl-en"],[74,75,"pl-s"]],[],[[0,11,"pl-mh"],[4,11,"pl-en"]],[],[[0,1,"pl-v"],[67,68,"pl-s"],[68,71,"pl-s"],[69,71,"pl-corl"],[71,72,"pl-s"],[72,73,"pl-s"],[73,76,"pl-en"],[76,77,"pl-s"]],[],[[0,11,"pl-mh"],[4,11,"pl-en"]],[],[[0,1,"pl-v"],[27,28,"pl-s"],[28,32,"pl-s"],[29,32,"pl-corl"],[32,33,"pl-s"],[33,34,"pl-s"],[34,38,"pl-en"],[38,39,"pl-s"]],[],[[0,25,"pl-mh"],[3,25,"pl-en"],[3,4,"pl-s"],[9,10,"pl-s"],[10,11,"pl-s"],[11,12,"pl-s"]],[],[[0,1,"pl-v"]],[],[[0,16,"pl-mh"],[3,16,"pl-en"]],[],[[0,11,"pl-mh"],[4,11,"pl-en"]],[],[[0,1,"pl-v"]],[],[],[],[[0,1,"pl-v"]],[],[],[[0,1,"pl-v"]],[],[],[[0,1,"pl-v"]],[],[[0,1,"pl-v"]],[[45,46,"pl-s"],[46,66,"pl-c1"],[66,67,"pl-s"]],[],[[0,1,"pl-v"],[50,51,"pl-s"],[51,56,"pl-c1"],[56,57,"pl-s"]],[],[[0,1,"pl-v"]],[[4,5,"pl-s"],[5,30,"pl-c1"],[30,31,"pl-s"]],[],[[0,1,"pl-v"]],[],[],[[0,1,"pl-v"]],[[8,9,"pl-s"],[9,21,"pl-c1"],[21,22,"pl-s"]],[[33,34,"pl-s"],[34,49,"pl-c1"],[49,50,"pl-s"]],[],[],[[0,1,"pl-v"]],[],[],[],[[0,1,"pl-v"],[16,17,"pl-s"],[17,40,"pl-c1"],[40,41,"pl-s"]],[[4,5,"pl-s"],[5,33,"pl-c1"],[33,34,"pl-s"]],[],[],[[0,1,"pl-v"],[10,11,"pl-s"],[11,27,"pl-c1"],[27,28,"pl-s"],[30,31,"pl-s"],[31,47,"pl-c1"],[47,48,"pl-s"]],[[4,5,"pl-s"],[5,38,"pl-c1"],[38,39,"pl-s"],[41,42,"pl-s"],[42,66,"pl-c1"],[66,67,"pl-s"]],[[8,9,"pl-s"],[9,36,"pl-c1"],[36,37,"pl-s"]],[],[],[],[[0,1,"pl-v"]],[],[],[[0,1,"pl-v"]],[],[],[[0,1,"pl-v"]],[[24,25,"pl-s"],[25,34,"pl-c1"],[34,35,"pl-s"]],[[4,5,"pl-s"],[5,34,"pl-c1"],[34,35,"pl-s"]],[],[[0,1,"pl-v"],[10,11,"pl-s"],[11,36,"pl-c1"],[36,37,"pl-s"]],[],[[0,16,"pl-mh"],[3,16,"pl-en"]],[],[[0,11,"pl-mh"],[4,11,"pl-en"]],[],[[0,1,"pl-v"]],[],[],[[0,1,"pl-v"],[12,13,"pl-s"],[13,26,"pl-c1"],[26,27,"pl-s"]],[[26,27,"pl-s"],[27,51,"pl-c1"],[51,52,"pl-s"]],[],[],[],[[0,1,"pl-v"],[65,66,"pl-s"],[66,70,"pl-c1"],[70,71,"pl-s"]],[],[[36,37,"pl-s"],[37,59,"pl-c1"],[59,60,"pl-s"]],[[21,22,"pl-s"],[22,37,"pl-c1"],[37,38,"pl-s"]],[],[[0,1,"pl-v"],[30,31,"pl-s"],[31,34,"pl-c1"],[34,35,"pl-s"]],[],[],[],[],[[0,1,"pl-v"]],[],[],[],[[0,1,"pl-v"]],[],[],[],[[0,1,"pl-v"]],[],[],[[0,25,"pl-mh"],[3,25,"pl-en"],[3,4,"pl-s"],[9,10,"pl-s"],[10,11,"pl-s"],[11,12,"pl-s"]],[],[[0,11,"pl-mh"],[4,11,"pl-en"]],[],[[0,1,"pl-v"]],[],[],[],[[0,13,"pl-mh"],[3,13,"pl-en"]],[],[[0,11,"pl-mh"],[4,11,"pl-en"]],[],[[0,1,"pl-v"]],[],[[42,43,"pl-s"],[43,66,"pl-c1"],[66,67,"pl-s"]],[[23,24,"pl-s"],[24,47,"pl-c1"],[47,48,"pl-s"]],[],[[0,1,"pl-v"]],[],[[9,10,"pl-s"],[10,20,"pl-c1"],[20,21,"pl-s"]],[],[[0,1,"pl-v"]],[],[],[[0,1,"pl-v"]],[],[],[],[],[],[[0,1,"pl-v"]],[],[],[[0,1,"pl-v"],[12,13,"pl-s"],[13,20,"pl-c1"],[20,21,"pl-s"]],[],[],[[0,13,"pl-mh"],[3,13,"pl-en"]],[],[[0,11,"pl-mh"],[4,11,"pl-en"]],[],[[0,1,"pl-v"]],[],[],[],[[0,1,"pl-v"]],[],[],[],[],[],[[0,1,"pl-v"]],[],[],[[0,1,"pl-v"],[57,58,"pl-s"],[58,64,"pl-c1"],[64,65,"pl-s"]],[[22,23,"pl-s"],[23,29,"pl-c1"],[29,30,"pl-s"]],[],[[49,50,"pl-s"],[50,54,"pl-c1"],[54,55,"pl-s"],[60,61,"pl-s"],[61,66,"pl-c1"],[66,67,"pl-s"]],[],[[7,8,"pl-s"],[11,12,"pl-s"]],[[4,5,"pl-s"],[5,11,"pl-c1"],[11,12,"pl-s"],[16,17,"pl-s"],[17,24,"pl-c1"],[24,25,"pl-s"]],[],[[0,1,"pl-v"]],[],[],[[0,1,"pl-v"]],[],[],[],[[0,1,"pl-v"],[4,5,"pl-s"],[5,31,"pl-c1"],[31,32,"pl-s"]],[[55,56,"pl-s"],[56,71,"pl-c1"],[71,72,"pl-s"]],[[14,15,"pl-s"],[15,23,"pl-c1"],[23,24,"pl-s"]],[],[],[[0,1,"pl-v"]],[],[[0,15,"pl-mh"],[3,15,"pl-en"]],[],[[0,11,"pl-mh"],[4,11,"pl-en"]],[],[[0,1,"pl-v"]],[],[],[],[[0,1,"pl-v"]],[],[],[],[[0,1,"pl-v"],[23,24,"pl-s"],[24,41,"pl-c1"],[41,42,"pl-s"]],[],[],[[0,1,"pl-v"],[16,17,"pl-s"],[17,29,"pl-c1"],[29,30,"pl-s"],[45,46,"pl-s"],[46,58,"pl-c1"],[58,59,"pl-s"]],[[29,30,"pl-s"],[30,51,"pl-c1"],[51,52,"pl-s"]],[],[[0,1,"pl-v"],[16,17,"pl-s"],[17,31,"pl-c1"],[31,32,"pl-s"]],[],[],[[0,1,"pl-v"],[20,21,"pl-s"],[21,28,"pl-c1"],[28,29,"pl-s"]],[[27,28,"pl-s"],[28,36,"pl-c1"],[36,37,"pl-s"]],[],[[0,15,"pl-mh"],[3,15,"pl-en"]],[],[[0,11,"pl-mh"],[4,11,"pl-en"]],[],[[0,1,"pl-v"]],[[9,10,"pl-s"],[10,21,"pl-c1"],[21,22,"pl-s"]],[],[],[[0,1,"pl-v"],[52,53,"pl-s"],[53,60,"pl-c1"],[60,61,"pl-s"]],[],[],[[0,1,"pl-v"]],[],[[0,1,"pl-v"]],[],[],[[0,1,"pl-v"]],[],[[4,5,"pl-s"],[8,9,"pl-s"]],[],[],[[0,1,"pl-v"]],[],[],[],[[61,62,"pl-s"],[62,72,"pl-c1"],[72,73,"pl-s"]],[],[],[],[[43,44,"pl-s"],[44,47,"pl-c1"],[47,48,"pl-s"]],[],[],[],[],[[0,1,"pl-v"]],[],[],[[0,1,"pl-v"]],[],[],[[0,1,"pl-v"]],[[37,38,"pl-s"],[38,59,"pl-c1"],[59,60,"pl-s"]],[],[],[[0,1,"pl-v"]],[],[],[],[[0,1,"pl-v"]],[],[],[],[[0,15,"pl-mh"],[3,15,"pl-en"]],[],[[0,11,"pl-mh"],[4,11,"pl-en"]],[],[[0,1,"pl-v"]],[],[],[],[[0,15,"pl-mh"],[3,15,"pl-en"]],[],[[0,11,"pl-mh"],[4,11,"pl-en"]],[],[[0,1,"pl-v"]],[],[],[],[],[[0,1,"pl-v"]],[],[],[],[],[[31,32,"pl-s"],[32,43,"pl-c1"],[43,44,"pl-s"]],[],[],[[0,1,"pl-v"]],[],[],[],[[0,1,"pl-v"]],[],[],[],[[0,1,"pl-v"]],[],[[0,15,"pl-mh"],[3,15,"pl-en"]],[],[[0,11,"pl-mh"],[4,11,"pl-en"]],[],[[0,1,"pl-v"]],[],[],[[38,39,"pl-s"],[39,47,"pl-c1"],[47,48,"pl-s"]],[[16,17,"pl-s"],[17,23,"pl-c1"],[23,24,"pl-s"],[26,27,"pl-s"],[27,33,"pl-c1"],[33,34,"pl-s"]],[],[],[],[],[[0,1,"pl-v"]],[],[],[],[[0,1,"pl-v"]],[],[[10,11,"pl-s"],[11,30,"pl-c1"],[30,31,"pl-s"]],[],[[0,1,"pl-v"]],[],[],[],[],[],[[0,1,"pl-v"]],[],[[0,1,"pl-v"]],[],[],[],[],[[0,1,"pl-v"]],[],[],[[0,1,"pl-v"]],[],[],[],[],[[0,1,"pl-v"]],[],[],[[0,1,"pl-v"],[16,17,"pl-s"],[17,24,"pl-c1"],[24,25,"pl-s"]],[[58,59,"pl-s"],[59,69,"pl-c1"],[69,70,"pl-s"]],[],[],[[0,1,"pl-v"]],[],[],[],[[0,1,"pl-v"],[20,21,"pl-s"],[21,28,"pl-c1"],[28,29,"pl-s"]],[[65,66,"pl-s"],[66,70,"pl-c1"],[70,71,"pl-s"]],[],[],[[0,1,"pl-v"],[39,40,"pl-s"],[40,47,"pl-c1"],[47,48,"pl-s"]],[],[],[],[],[],[[0,1,"pl-v"]],[],[],[[0,1,"pl-v"]],[],[],[],[],[[0,1,"pl-v"]],[],[],[[0,16,"pl-mh"],[3,16,"pl-en"]],[],[[0,11,"pl-mh"],[4,11,"pl-en"]],[],[[0,1,"pl-v"]],[],[],[],[],[[0,1,"pl-v"],[42,43,"pl-s"],[47,48,"pl-s"]],[],[],[],[],[],[[0,1,"pl-v"]],[],[],[[0,1,"pl-v"]],[[48,49,"pl-s"],[49,62,"pl-c1"],[62,63,"pl-s"]],[],[[0,1,"pl-v"]],[],[[0,1,"pl-v"]],[],[],[],[],[],[[0,1,"pl-v"]],[],[],[[0,1,"pl-v"]],[],[],[[0,1,"pl-v"]],[],[],[[0,16,"pl-mh"],[3,16,"pl-en"]],[],[[0,9,"pl-mh"],[4,9,"pl-en"]],[],[[0,1,"pl-v"]],[],[[0,1,"pl-s"],[1,17,"pl-en"],[17,18,"pl-s"],[20,46,"pl-corl"]],[],[[0,1,"pl-s"],[1,20,"pl-en"],[20,21,"pl-s"],[23,41,"pl-corl"]],[],[[0,1,"pl-s"],[1,11,"pl-en"],[11,12,"pl-s"],[14,41,"pl-corl"]],[],[[0,1,"pl-s"],[1,6,"pl-en"],[6,7,"pl-s"],[9,38,"pl-corl"]],[],[[0,1,"pl-s"],[1,6,"pl-en"],[6,7,"pl-s"],[9,38,"pl-corl"]],[],[[0,1,"pl-s"],[1,6,"pl-en"],[6,7,"pl-s"],[9,43,"pl-corl"]],[],[[0,1,"pl-s"],[1,11,"pl-en"],[11,12,"pl-s"],[14,48,"pl-corl"]],[],[[0,1,"pl-s"],[1,6,"pl-en"],[6,7,"pl-s"],[9,38,"pl-corl"]],[],[[0,1,"pl-s"],[1,6,"pl-en"],[6,7,"pl-s"],[9,35,"pl-corl"]],[],[[0,1,"pl-s"],[1,6,"pl-en"],[6,7,"pl-s"],[9,64,"pl-corl"]],[],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,57,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,57,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,57,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,55,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,57,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,55,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,57,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,55,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,55,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,55,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,55,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,57,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,57,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,57,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,57,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,57,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,55,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,57,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,57,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,57,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,55,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,55,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,55,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,57,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,55,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,55,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,55,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,55,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,57,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,55,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,57,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,55,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,57,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,57,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,55,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,55,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,55,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,55,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,57,"pl-corl"]],[[0,1,"pl-s"],[1,4,"pl-en"],[4,5,"pl-s"],[7,55,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,55,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,55,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,55,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,55,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,55,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,55,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,55,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,55,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,55,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,57,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,57,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,57,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,55,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,55,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,57,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,55,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,55,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,55,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,57,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,55,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,57,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,57,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,57,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,57,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,55,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,55,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,55,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,57,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,57,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,55,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,55,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,55,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,55,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,55,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,55,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,55,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,55,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,57,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,55,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,55,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,55,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,55,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,55,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,55,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,55,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,55,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,55,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,55,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,55,"pl-corl"]],[[0,1,"pl-s"],[1,4,"pl-en"],[4,5,"pl-s"],[7,53,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,55,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,55,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,57,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,55,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,55,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,55,"pl-corl"]],[[0,1,"pl-s"],[1,5,"pl-en"],[5,6,"pl-s"],[8,57,"pl-corl"]]],"colorizedLines":null}},"title":"pythonnet/CHANGELOG.md at 20e673f42ca62df984ee148726c0e027172636a5 · tminka/pythonnet","appPayload":{},"meta":{"title":"pythonnet/CHANGELOG.md at 20e673f42ca62df984ee148726c0e027172636a5 · tminka/pythonnet"}}</script>
  <div data-target="react-app.reactRoot"><meta name="github-code-view-meta-stats" id="github-code-view-meta-stats" data-hydrostats="publish"/> <!-- --> <a hidden="" id="code-view-repo-link" href="/tminka/pythonnet" data-discover="true"></a> <div class="d-none"></div><div><div style="--spacing:var(--spacing-none)" class="prc-PageLayout-PageLayoutRoot--KH-d" data-component="SplitPageLayout" data-has-sidebar="true"><div class="prc-PageLayout-SidebarWrapper-kLG4B CopilotSidePanelSidebar-module__SidePanel__L3O0C CopilotSidePanelSidebar-module__HiddenSidePanel__TBRGn" style="--spacing-column:var(--spacing-none)" data-is-hidden="false" data-position="end" data-sticky="true" data-responsive-variant="fullscreen"><div class="prc-PageLayout-VerticalDivider-9QRmK prc-PageLayout-SidebarVerticalDivider-0Rl0V" data-component="PageLayout.VerticalDivider" data-variant="line" data-position="end" style="--spacing:var(--spacing-none)"><div class="prc-PageLayout-DraggableHandle-9s6B4" data-component="PageLayout.DragHandle" role="slider" aria-label="Draggable pane splitter" aria-valuemin="450" aria-valuemax="768" aria-valuenow="544" aria-valuetext="Pane width 544 pixels" tabindex="0"></div></div><div class="prc-PageLayout-Sidebar-iciWg" data-component="SplitPageLayout.Sidebar" data-resizable="true" style="--spacing:var(--spacing-normal);--pane-min-width:450px;--pane-max-width:768px;--pane-width-custom:544px;--pane-width-size:var(--pane-width-custom);--pane-width:544px"><div class="height-full" data-testid="copilot-code-view-side-panel"><div id="copilot-side-panel-content" class="height-full"></div></div></div></div><div class="prc-PageLayout-PageLayoutWrapper-2BhU2" data-width="full"><div class="prc-PageLayout-PageLayoutContent-BneH9"><div id="repos-file-tree-sidebar" class="CodeViewFileTreeLayout-module__sidebar__n_Aau" tabindex="0"><div class="prc-PageLayout-PaneWrapper-pHPop ReposFileTreePane-module__Pane__rBZpI ReposFileTreePane-module__HideTree__AYZnm ReposFileTreePane-module__HidePane__VHAVt" 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="prc-PageLayout-HorizontalDivider-JLVqp prc-PageLayout-PaneHorizontalDivider-9tbnE" data-component="PageLayout.HorizontalDivider" data-variant-regular="none" data-variant-narrow="none" data-position="start" style="--spacing-divider:var(--spacing-none);--spacing:var(--spacing-none)"></div><div class="prc-PageLayout-Pane-AyzHK" data-component="SplitPageLayout.Pane" 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="prc-PageLayout-VerticalDivider-9QRmK prc-PageLayout-PaneVerticalDivider-le57g" data-component="PageLayout.VerticalDivider" data-variant-narrow="none" data-variant-regular="line" data-variant-wide="line" data-position="start" style="--spacing:var(--spacing-none)"><div class="prc-PageLayout-DraggableHandle-9s6B4" data-component="PageLayout.DragHandle" role="slider" aria-label="Draggable pane splitter" aria-valuemin="256" aria-valuemax="600" aria-valuenow="320" aria-valuetext="Pane width 320 pixels" tabindex="0"></div></div></div></div><div data-component="SplitPageLayout.Content" class="prc-PageLayout-ContentWrapper-gR9eG"><div class="prc-PageLayout-Content-xWL-A" data-width="full" style="--spacing:var(--spacing-none)"><div class="SharedPageLayout-module__content__IwGAp" data-selector="repos-split-pane-content" id="repos-split-pane-content" tabindex="0"> <!-- --> <div class="container CodeViewHeader-module__Box__JkPOb"><div class="CodeViewHeader-module__StickyHeader__Qn7UN" id="StickyHeader"><div class="CodeViewHeader-module__Box_1__SbNDV"><div class="CodeViewHeader-module__Box_2__TB46f"><div class="react-code-view-header-wrap--narrow CodeViewHeader-module__Box_3__q1zUL"><div class="CodeViewHeader-module__treeToggleWrapper__RQ__9"><h2 class="use-tree-pane-module__Heading__s4QbZ prc-Heading-Heading-MtWFE" data-component="Heading"><button data-component="Button" type="button" aria-label="Expand file tree" data-testid="expand-file-tree-button-mobile" class="prc-Button-ButtonBase-9n-Xk ExpandFileTreeButton-module__Button_1__Svs95" data-loading="false" data-size="medium" data-variant="invisible"><span data-component="buttonContent" data-align="center" class="prc-Button-ButtonContent-Iohp5"><span data-component="leadingVisual" class="prc-Button-Visual-YNt2F prc-Button-LeadingVisual-UySKu prc-Button-VisualWrap-E4cnq"><svg data-component="Octicon" 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-FWkx3">Files</span></span></button><button data-component="IconButton" type="button" data-testid="expand-file-tree-button" aria-controls="repos-file-tree" class="prc-Button-ButtonBase-9n-Xk position-relative ExpandFileTreeButton-module__expandButton__hDOcv ExpandFileTreeButton-module__filesButtonBreakpoint__zEvz3 fgColor-muted prc-Button-IconButton-fyge7" data-loading="false" data-no-visuals="true" data-size="medium" data-variant="invisible" aria-labelledby="_R_4lla9lik5_"><svg data-component="Octicon" 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 class="prc-TooltipV2-Tooltip-tLeuB" data-direction="se" data-component="Tooltip" aria-hidden="true" id="_R_4lla9lik5_">Expand file tree</span><div class="d-none"></div></h2></div><div class="react-code-view-header-mb--narrow mr-2"><button data-component="Button" type="button" aria-haspopup="true" aria-expanded="false" tabindex="0" aria-label="20e673f42ca62df984ee148726c0e027172636a5 branch" data-testid="anchor-button" data-icv-name="Switch branches/tags" class="prc-Button-ButtonBase-9n-Xk ref-selector-class RefSelectorAnchoredOverlay-module__RefSelectorOverlayBtn__a3WK3" data-loading="false" data-size="medium" data-variant="default" id="ref-picker-repos-header-ref-selector-wide"><span data-component="buttonContent" data-align="center" class="prc-Button-ButtonContent-Iohp5"><span data-component="leadingVisual" class="prc-Button-Visual-YNt2F prc-Button-LeadingVisual-UySKu prc-Button-VisualWrap-E4cnq"><svg data-component="Octicon" 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></span><span data-component="text" class="prc-Button-Label-FWkx3"><div class="RefSelectorAnchoredOverlay-module__RefSelectorOverlayContainer__yaf4p"><div style="max-width:125px" class="ref-selector-button-text-container RefSelectorAnchoredOverlay-module__RefSelectorBtnTextContainer__Di3rk"><span class="RefSelectorAnchoredOverlay-module__RefSelectorText__w_fmP">20e673f42ca62df984ee148726c0e027172636a5</span></div></div></span><span data-component="trailingVisual" class="prc-Button-Visual-YNt2F prc-Button-VisualWrap-E4cnq"><svg data-component="Octicon" 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><div class="d-none"></div></div><div class="react-code-view-header-mb--narrow CodeViewHeader-module__Box_5__MQ0hL"><div class="Breadcrumb-module__container__Vxvev Breadcrumb-module__lg__Rjz0A"><nav data-testid="breadcrumbs" aria-labelledby="repos-header-breadcrumb-heading" id="repos-header-breadcrumb" class="Breadcrumb-module__nav__rQFDj"><h2 class="sr-only ScreenReaderHeading-module__userSelectNone__rwWIk prc-Heading-Heading-MtWFE" data-component="Heading" data-testid="screen-reader-heading" id="repos-header-breadcrumb-heading">Breadcrumbs</h2><ol class="Breadcrumb-module__list__ZH6zr"><li class="Breadcrumb-module__listItem__Ib0x_"><a class="Breadcrumb-module__repoLink__O2Nbs prc-Link-Link-9ZwDx" data-component="Link" data-testid="breadcrumbs-repo-link" href="/tminka/pythonnet/tree/20e673f42ca62df984ee148726c0e027172636a5" data-discover="true">pythonnet</a></li></ol></nav><div data-testid="breadcrumbs-filename" class="Breadcrumb-module__filename__equZR"><span class="Breadcrumb-module__separator__eNwsI Breadcrumb-module__lg__Rjz0A" aria-hidden="true">/</span><h1 class="Breadcrumb-module__filenameHeading__MNMtw Breadcrumb-module__lg__Rjz0A prc-Heading-Heading-MtWFE" data-component="Heading" tabindex="-1" id="file-name-id">CHANGELOG.md</h1></div><button data-component="IconButton" type="button" class="prc-Button-ButtonBase-9n-Xk ml-2 prc-Button-IconButton-fyge7" data-loading="false" data-no-visuals="true" data-size="small" data-variant="invisible" aria-labelledby="_R_7lla9lik5_"><svg data-component="Octicon" 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="CopyToClipboardIconButton-module__tooltip__WyiwL prc-TooltipV2-Tooltip-tLeuB" data-direction="nw" data-component="Tooltip" aria-label="Copy path" aria-hidden="true" id="_R_7lla9lik5_">Copy path</span></div></div></div><div class="react-code-view-header-element--wide"><div class="CodeViewHeader-module__Box_7___0R6c"><div class="d-flex gap-2"><div><div class="CodeViewHeader-module__FileResultsList__JDzUy"><span class="d-flex FileResultsList-module__FilesSearchBox__ivVkc TextInput-wrapper prc-components-TextInputWrapper-Hpdqi prc-components-TextInputBaseWrapper-wY-n0" data-no-trailing-action="true" data-component="TextInput" data-leading-visual="true" data-trailing-visual="true" aria-busy="false"><span class="TextInput-icon" id="_R_5ipla9lik5_" aria-hidden="true" data-component="TextInput.LeadingVisual"><svg data-component="Octicon" 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="_R_5ipla9lik5_ _R_5ipla9lik5H1_" data-component="input" class="prc-components-Input-IwWrt" value=""/><span class="TextInput-icon" id="_R_5ipla9lik5H1_" aria-hidden="true" data-component="TextInput.TrailingVisual"></span></span></div><div class="d-none"></div></div><button data-component="Button" type="button" style="display:none" class="prc-Button-ButtonBase-9n-Xk NavigationMenu-module__Button__LpKgm" data-loading="false" data-no-visuals="true" data-size="medium" data-variant="default"><span data-component="buttonContent" data-align="center" class="prc-Button-ButtonContent-Iohp5"><span data-component="text" class="prc-Button-Label-FWkx3">Blame</span></span></button><div class="d-none"></div><button data-component="IconButton" type="button" data-testid="more-file-actions-button-nav-menu-wide" aria-haspopup="true" aria-expanded="false" tabindex="0" class="prc-Button-ButtonBase-9n-Xk js-blob-dropdown-click NavigationMenu-module__IconButton__HpX3G prc-Button-IconButton-fyge7" data-loading="false" data-no-visuals="true" data-size="medium" data-variant="default" aria-labelledby="_R_v4pla9lik5_" id="_R_14pla9lik5_"><svg data-component="Octicon" 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><span class="prc-TooltipV2-Tooltip-tLeuB" data-direction="nw" data-component="Tooltip" aria-hidden="true" id="_R_v4pla9lik5_">More file actions</span></div></div></div><div class="react-code-view-header-element--narrow"><div class="CodeViewHeader-module__Box_7___0R6c"><div class="d-flex gap-2"><button data-component="Button" type="button" style="display:none" class="prc-Button-ButtonBase-9n-Xk NavigationMenu-module__Button__LpKgm" data-loading="false" data-no-visuals="true" data-size="medium" data-variant="default"><span data-component="buttonContent" data-align="center" class="prc-Button-ButtonContent-Iohp5"><span data-component="text" class="prc-Button-Label-FWkx3">Blame</span></span></button><div class="d-none"></div><button data-component="IconButton" type="button" data-testid="more-file-actions-button-nav-menu-narrow" aria-haspopup="true" aria-expanded="false" tabindex="0" class="prc-Button-ButtonBase-9n-Xk js-blob-dropdown-click NavigationMenu-module__IconButton__HpX3G prc-Button-IconButton-fyge7" data-loading="false" data-no-visuals="true" data-size="medium" data-variant="default" aria-labelledby="_R_v4tla9lik5_" id="_R_14tla9lik5_"><svg data-component="Octicon" 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><span class="prc-TooltipV2-Tooltip-tLeuB" data-direction="nw" data-component="Tooltip" aria-hidden="true" id="_R_v4tla9lik5_">More file actions</span></div></div></div></div></div></div></div><div class="CodeView-module__contentWrapper__cG2JH"><div class="react-code-view-bottom-padding"><div class="BlobTopBanners-module__Box__v_nvx"></div></div> <div class="d-none"></div><div class="d-flex flex-column border rounded-2 tmp-mb-3 pl-1"><div class="LatestCommit-module__Box__B25ZT"><h2 class="sr-only ScreenReaderHeading-module__userSelectNone__rwWIk prc-Heading-Heading-MtWFE" data-component="Heading" 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__rwWIk prc-Heading-Heading-MtWFE" data-component="Heading" data-testid="screen-reader-heading">History</h2><a data-component="LinkButton" href="/tminka/pythonnet/commits/20e673f42ca62df984ee148726c0e027172636a5/CHANGELOG.md" class="prc-Button-ButtonBase-9n-Xk d-none d-lg-flex LinkButton-module__linkButton__nFnov flex-items-center fgColor-default" data-loading="false" data-size="small" data-variant="invisible"><span data-component="buttonContent" data-align="center" class="prc-Button-ButtonContent-Iohp5"><span data-component="leadingVisual" class="prc-Button-Visual-YNt2F prc-Button-LeadingVisual-UySKu prc-Button-VisualWrap-E4cnq"><svg data-component="Octicon" 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-FWkx3"><span class="fgColor-default">History</span></span></span></a><div class="d-sm-none"></div><div class="d-flex d-lg-none"><a data-component="LinkButton" aria-label="View commit history for this file." href="/tminka/pythonnet/commits/20e673f42ca62df984ee148726c0e027172636a5/CHANGELOG.md" class="prc-Button-ButtonBase-9n-Xk LinkButton-module__linkButton__nFnov flex-items-center fgColor-default" data-loading="false" data-size="small" data-variant="invisible" aria-describedby="_R_4mlala9lik5_"><span data-component="buttonContent" data-align="center" class="prc-Button-ButtonContent-Iohp5"><span data-component="leadingVisual" class="prc-Button-Visual-YNt2F prc-Button-LeadingVisual-UySKu prc-Button-VisualWrap-E4cnq"><svg data-component="Octicon" 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 class="prc-TooltipV2-Tooltip-tLeuB" data-direction="s" data-component="Tooltip" role="tooltip" aria-hidden="true" id="_R_4mlala9lik5_">History</span></div></div></div></div></div><div class="d-flex flex-row"><div class="container BlobViewContent-module__blobContainer__DtH2d"><div class="react-code-size-details-banner BlobViewContent-module__codeSizeDetails__e5sUw"><div class="react-code-size-details-banner CodeSizeDetails-module__Box__VcD6l"><div class="text-mono CodeSizeDetails-module__Box_1__GVxQL"><div data-testid="blob-size" class="CodeSizeDetails-module__Truncate_1__lE93V prc-Truncate-Truncate-2G1eo" data-inline="true" title="35.9 KB" style="--truncate-max-width:100%"><span>808 lines (620 loc) · 35.9 KB</span></div></div></div></div><div class="react-blob-view-header-sticky BlobViewContent-module__stickyHeader__VwxB5" id="repos-sticky-header"><div class="BlobViewHeader-module__Box__yhm9u"><div class="react-blob-sticky-header"><div class="FileNameStickyHeader-module__outerWrapper__ZL4Xc FileNameStickyHeader-module__outerWrapperHidden__Zpynk"><div class="FileNameStickyHeader-module__Box_1__Hazu5"><div class="FileNameStickyHeader-module__Box_2__hoolP"><div class="FileNameStickyHeader-module__Box_3__MVKsk"><button data-component="Button" type="button" aria-haspopup="true" aria-expanded="false" tabindex="0" aria-label="20e673f branch" data-testid="anchor-button" data-icv-name="Switch branches/tags" class="prc-Button-ButtonBase-9n-Xk ref-selector-class RefSelectorAnchoredOverlay-module__RefSelectorOverlayBtn__a3WK3" data-loading="false" data-size="medium" data-variant="default" id="ref-picker-repos-header-ref-selector"><span data-component="buttonContent" data-align="center" class="prc-Button-ButtonContent-Iohp5"><span data-component="leadingVisual" class="prc-Button-Visual-YNt2F prc-Button-LeadingVisual-UySKu prc-Button-VisualWrap-E4cnq"><svg data-component="Octicon" 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></span><span data-component="text" class="prc-Button-Label-FWkx3"><div class="RefSelectorAnchoredOverlay-module__RefSelectorOverlayContainer__yaf4p"><div style="max-width:125px" class="ref-selector-button-text-container RefSelectorAnchoredOverlay-module__RefSelectorBtnTextContainer__Di3rk"><span class="RefSelectorAnchoredOverlay-module__RefSelectorText__w_fmP">20e673f</span></div></div></span><span data-component="trailingVisual" class="prc-Button-Visual-YNt2F prc-Button-VisualWrap-E4cnq"><svg data-component="Octicon" 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><div class="d-none"></div></div><div class="FileNameStickyHeader-module__Box_4__FLhtt"><div class="Breadcrumb-module__container__Vxvev Breadcrumb-module__md__Wb1Gs"><nav data-testid="breadcrumbs" aria-labelledby="sticky-breadcrumb-heading" id="sticky-breadcrumb" class="Breadcrumb-module__nav__rQFDj"><h2 class="sr-only ScreenReaderHeading-module__userSelectNone__rwWIk prc-Heading-Heading-MtWFE" data-component="Heading" data-testid="screen-reader-heading" id="sticky-breadcrumb-heading">Breadcrumbs</h2><ol class="Breadcrumb-module__list__ZH6zr"><li class="Breadcrumb-module__listItem__Ib0x_"><a class="Breadcrumb-module__repoLink__O2Nbs prc-Link-Link-9ZwDx" data-component="Link" data-testid="breadcrumbs-repo-link" href="/tminka/pythonnet/tree/20e673f42ca62df984ee148726c0e027172636a5" data-discover="true">pythonnet</a></li></ol></nav><div data-testid="breadcrumbs-filename" class="Breadcrumb-module__filename__equZR"><span class="Breadcrumb-module__separator__eNwsI Breadcrumb-module__md__Wb1Gs" aria-hidden="true">/</span><h1 class="Breadcrumb-module__filenameHeading__MNMtw Breadcrumb-module__md__Wb1Gs prc-Heading-Heading-MtWFE" data-component="Heading" tabindex="-1" id="sticky-file-name-id">CHANGELOG.md</h1></div><button data-component="IconButton" type="button" class="prc-Button-ButtonBase-9n-Xk ml-2 prc-Button-IconButton-fyge7" data-loading="false" data-no-visuals="true" data-size="small" data-variant="invisible" aria-labelledby="_R_7lcpala9lik5_"><svg data-component="Octicon" 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="CopyToClipboardIconButton-module__tooltip__WyiwL prc-TooltipV2-Tooltip-tLeuB" data-direction="s" data-component="Tooltip" aria-label="Copy path" aria-hidden="true" id="_R_7lcpala9lik5_">Copy path</span></div></div></div><button data-component="Button" type="button" class="prc-Button-ButtonBase-9n-Xk FileNameStickyHeader-module__Button__LSEU_ FileNameStickyHeader-module__GoToTopButton__nxAFn" data-loading="false" data-size="small" data-variant="invisible"><span data-component="buttonContent" data-align="center" class="prc-Button-ButtonContent-Iohp5"><span data-component="leadingVisual" class="prc-Button-Visual-YNt2F prc-Button-LeadingVisual-UySKu prc-Button-VisualWrap-E4cnq"><svg data-component="Octicon" 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-FWkx3">Top</span></span></button></div></div></div><div class="BlobViewHeader-module__Box_1__VEmuQ"><h2 class="sr-only ScreenReaderHeading-module__userSelectNone__rwWIk prc-Heading-Heading-MtWFE" data-component="Heading" data-testid="screen-reader-heading">File metadata and controls</h2><div class="BlobViewHeader-module__Box_2__icUs2"><ul aria-label="File view" class="prc-SegmentedControl-SegmentedControl-lqIXp BlobTabButtons-module__SegmentedControl__jen2u" data-variant="default" data-size="small" data-component="SegmentedControl"><li class="prc-SegmentedControl-Item-tSCQh" data-selected="" data-component="SegmentedControl.Button"><button aria-pressed="true" class="prc-SegmentedControl-Button-E48xz" type="button" style="--separator-color:transparent"><span class="prc-SegmentedControl-Content-1COlk segmentedControl-content"><div class="prc-SegmentedControl-Text-7S2y2 segmentedControl-text" data-text="Preview">Preview</div></span></button></li><li class="prc-SegmentedControl-Item-tSCQh" data-component="SegmentedControl.Button"><button aria-pressed="false" class="prc-SegmentedControl-Button-E48xz" type="button" style="--separator-color:var(--borderColor-default)"><span class="prc-SegmentedControl-Content-1COlk segmentedControl-content"><div class="prc-SegmentedControl-Text-7S2y2 segmentedControl-text" data-text="Code">Code</div></span></button></li><li class="prc-SegmentedControl-Item-tSCQh" data-component="SegmentedControl.Button"><button aria-pressed="false" class="prc-SegmentedControl-Button-E48xz" type="button" style="--separator-color:var(--borderColor-default)"><span class="prc-SegmentedControl-Content-1COlk segmentedControl-content"><div class="prc-SegmentedControl-Text-7S2y2 segmentedControl-text" data-text="Blame">Blame</div></span></button></li></ul><div class="d-none"></div><div class="react-code-size-details-in-header CodeSizeDetails-module__Box__VcD6l"><div class="text-mono CodeSizeDetails-module__Box_1__GVxQL"><div data-testid="blob-size" class="CodeSizeDetails-module__Truncate_1__lE93V prc-Truncate-Truncate-2G1eo" data-inline="true" title="35.9 KB" style="--truncate-max-width:100%"><span>808 lines (620 loc) · 35.9 KB</span></div></div></div></div><div class="BlobViewHeader-module__Box_3__ng6v2"><div class="d-none"></div><div class="react-blob-header-edit-and-raw-actions BlobViewHeader-module__Box_4__J4Y4W"><div class="d-none"></div><div class="prc-ButtonGroup-ButtonGroup-vFUrY" data-component="ButtonGroup"><div class="prc-ButtonGroup-Item-PqvDl"><a data-component="LinkButton" href="https://github.com/tminka/pythonnet/raw/20e673f42ca62df984ee148726c0e027172636a5/CHANGELOG.md" data-testid="raw-button" class="prc-Button-ButtonBase-9n-Xk LinkButton-module__linkButton__nFnov BlobViewHeader-module__LinkButton__X9kx2" data-loading="false" data-no-visuals="true" data-size="small" data-variant="default"><span data-component="buttonContent" data-align="center" class="prc-Button-ButtonContent-Iohp5"><span data-component="text" class="prc-Button-Label-FWkx3">Raw</span></span></a></div><div class="prc-ButtonGroup-Item-PqvDl"><button data-component="IconButton" type="button" data-testid="copy-raw-button" class="prc-Button-ButtonBase-9n-Xk prc-Button-IconButton-fyge7" data-loading="false" data-no-visuals="true" data-size="small" data-variant="default" aria-labelledby="_R_qaucpala9lik5_"><svg data-component="Octicon" 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="prc-TooltipV2-Tooltip-tLeuB" data-direction="n" data-component="Tooltip" aria-hidden="true" id="_R_qaucpala9lik5_">Copy raw file</span></div><div class="prc-ButtonGroup-Item-PqvDl"><button data-component="IconButton" type="button" data-testid="download-raw-button" class="prc-Button-ButtonBase-9n-Xk BlobViewHeader-module__downloadButton__ef459 prc-Button-IconButton-fyge7" data-loading="false" data-no-visuals="true" data-size="small" data-variant="default" aria-labelledby="_R_eaucpala9lik5_"><svg data-component="Octicon" 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 class="prc-TooltipV2-Tooltip-tLeuB" data-direction="n" data-component="Tooltip" aria-hidden="true" id="_R_eaucpala9lik5_">Download raw file</span></div></div></div><button data-component="IconButton" type="button" aria-pressed="false" class="prc-Button-ButtonBase-9n-Xk tmp-mr-2 TableOfContents-module__IconButton__jrlNM prc-Button-IconButton-fyge7" data-loading="false" data-no-visuals="true" data-size="small" data-variant="invisible" aria-labelledby="_R_3ucpala9lik5_"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-list-unordered" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M5.75 2.5h8.5a.75.75 0 0 1 0 1.5h-8.5a.75.75 0 0 1 0-1.5Zm0 5h8.5a.75.75 0 0 1 0 1.5h-8.5a.75.75 0 0 1 0-1.5Zm0 5h8.5a.75.75 0 0 1 0 1.5h-8.5a.75.75 0 0 1 0-1.5ZM2 14a1 1 0 1 1 0-2 1 1 0 0 1 0 2Zm1-6a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM2 4a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z"></path></svg></button><span class="prc-TooltipV2-Tooltip-tLeuB" data-direction="n" data-component="Tooltip" aria-hidden="true" id="_R_3ucpala9lik5_">Outline</span><div class="react-blob-header-edit-and-raw-actions-combined"><button data-component="IconButton" type="button" title="More file actions" data-testid="more-file-actions-button" aria-haspopup="true" aria-expanded="false" tabindex="0" class="prc-Button-ButtonBase-9n-Xk js-blob-dropdown-click BlobViewHeader-module__IconButton__XrMQY prc-Button-IconButton-fyge7" data-loading="false" data-no-visuals="true" data-size="small" data-variant="invisible" aria-labelledby="_R_fkecpala9lik5_" id="_R_kecpala9lik5_"><svg data-component="Octicon" 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><span class="prc-TooltipV2-Tooltip-tLeuB" data-direction="nw" data-component="Tooltip" aria-hidden="true" id="_R_fkecpala9lik5_">Edit and raw actions</span></div></div></div></div><div></div></div><div class="BlobViewContent-module__blobContentWrapper__JS0W6"><section aria-labelledby="file-name-id-wide file-name-id-mobile" class="BlobContent-module__blobContentSection__VOgZq BlobContent-module__blobContentSectionMarkdown__mPLOK" style="margin-top:46px"><div class="js-snippet-clipboard-copy-unpositioned BlobContent-module__markdownBlob__T8jpG" data-hpc="true" containertiming="hpc"><article class="markdown-body entry-content container-lg" itemprop="text"><div class="markdown-heading" dir="auto"><h1 tabindex="-1" class="heading-element" dir="auto">Changelog</h1><a id="user-content-changelog" class="anchor" aria-label="Permalink: Changelog" href="#changelog"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<p dir="auto">All notable changes to Python.NET will be documented in this file. This
project adheres to <a href="http://semver.org/" rel="nofollow">Semantic Versioning</a>.</p>
<p dir="auto">This document follows the conventions laid out in <a href="http://keepachangelog.com/" rel="nofollow">Keep a CHANGELOG</a>.</p>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto"><a href="/tminka/pythonnet/compare/v2.3.0...HEAD">Unreleased</a></h2><a id="user-content-unreleased" class="anchor" aria-label="Permalink: Unreleased" href="#unreleased"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">Added</h3><a id="user-content-added" class="anchor" aria-label="Permalink: Added" href="#added"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Ability to instantiate new .NET arrays using <code>Array[T](dim1, dim2, ...)</code> syntax</li>
</ul>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">Changed</h3><a id="user-content-changed" class="anchor" aria-label="Permalink: Changed" href="#changed"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Drop support for Python 2, 3.4, and 3.5</li>
<li><code>wchar_t</code> size aka <code>Runtime.UCS</code> is now determined at runtime</li>
<li><code>clr.AddReference</code> may now throw errors besides <code>FileNotFoundException</code>, that provide more
details about the cause of the failure</li>
<li><code>clr.AddReference</code> no longer adds ".dll" implicitly</li>
<li><code>PyIter(PyObject)</code> constructor replaced with static <code>PyIter.GetIter(PyObject)</code> method</li>
<li>BREAKING: Return values from .NET methods that return an interface are now automatically
wrapped in that interface. This is a breaking change for users that rely on being
able to access members that are part of the implementation class, but not the
interface.  Use the new <strong>implementation</strong> or <strong>raw_implementation</strong> properties to
if you need to "downcast" to the implementation class.</li>
<li>BREAKING: Parameters marked with <code>ParameterAttributes.Out</code> are no longer returned in addition
to the regular method return value (unless they are passed with <code>ref</code> or <code>out</code> keyword).</li>
<li>BREAKING: Drop support for the long-deprecated CLR.* prefix.</li>
<li><code>PyObject</code> now implements <code>IEnumerable&lt;PyObject&gt;</code> in addition to <code>IEnumerable</code></li>
</ul>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">Fixed</h3><a id="user-content-fixed" class="anchor" aria-label="Permalink: Fixed" href="#fixed"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Fix incorrect dereference of wrapper object in <code>tp_repr</code>, which may result in a program crash</li>
<li>Fix incorrect dereference in params array handling</li>
<li>Fixes issue with function resolution when calling overloaded function with keyword arguments from python ([#1097][i1097])</li>
<li>Fix <code>object[]</code> parameters taking precedence when should not in overload resolution</li>
<li>Fixed a bug where all .NET class instances were considered Iterable</li>
<li>Fix incorrect choice of method to invoke when using keyword arguments.</li>
<li>Fix non-delegate types incorrectly appearing as callable.</li>
<li>Indexers can now be used with interface objects</li>
<li>Fixed a bug where indexers could not be used if they were inherited</li>
<li>Made it possible to use <code>__len__</code> also on <code>ICollection&lt;&gt;</code> interface objects</li>
<li>Made it possible to call <code>ToString</code>, <code>GetHashCode</code>, and <code>GetType</code> on inteface objects</li>
<li>Fixed objects returned by enumerating <code>PyObject</code> being disposed too soon</li>
<li>Incorrectly using a non-generic type with type parameters now produces a helpful Python error instead of throwing NullReferenceException</li>
</ul>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">Removed</h3><a id="user-content-removed" class="anchor" aria-label="Permalink: Removed" href="#removed"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>implicit assembly loading (you have to explicitly <code>clr.AddReference</code> before doing import)</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">[2.5.0][] - 2020-06-14</h2><a id="user-content-250---2020-06-14" class="anchor" aria-label="Permalink: [2.5.0][] - 2020-06-14" href="#250---2020-06-14"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<p dir="auto">This version improves performance on benchmarks significantly compared to 2.3.</p>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">Added</h3><a id="user-content-added-1" class="anchor" aria-label="Permalink: Added" href="#added-1"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Automatic NuGet package generation in appveyor and local builds</li>
<li>Function that sets <code>Py_NoSiteFlag</code> to 1.</li>
<li>Support for Jetson Nano.</li>
<li>Support for <code>__len__</code> for .NET classes that implement ICollection</li>
<li><code>PyExport</code> attribute to hide .NET types from Python</li>
<li><code>PythonException.Format</code> method to format exceptions the same as
<code>traceback.format_exception</code></li>
<li><code>Runtime.None</code> to be able to pass <code>None</code> as parameter into Python from .NET</li>
<li><code>PyObject.IsNone()</code> to check if a Python object is None in .NET.</li>
<li>Support for Python 3.8</li>
<li>Codecs as the designated way to handle automatic conversions between
.NET and Python types</li>
<li>Added Python 3 buffer api support and PyBuffer interface for fast byte and numpy array read/write ([#980][p980])</li>
</ul>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">Changed</h3><a id="user-content-changed-1" class="anchor" aria-label="Permalink: Changed" href="#changed-1"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Added argument types information to "No method matches given arguments" message</li>
<li>Moved wheel import in setup.py inside of a try/except to prevent pip collection failures</li>
<li>Removes <code>PyLong_GetMax</code> and <code>PyClass_New</code> when targetting Python3</li>
<li>Improved performance of calls from Python to C#</li>
<li>Added support for converting python iterators to C# arrays</li>
<li>Changed usage of the obsolete function
<code>GetDelegateForFunctionPointer(IntPtr, Type)</code> to
<code>GetDelegateForFunctionPointer&lt;TDelegate&gt;(IntPtr)</code></li>
<li>When calling C# from Python, enable passing argument of any type to a
parameter of C# type <code>object</code> by wrapping it into <code>PyObject</code> instance.
([#881][i881])</li>
<li>Added support for kwarg parameters when calling .NET methods from Python</li>
<li>Changed method for finding MSBuild using vswhere</li>
<li>Reworked <code>Finalizer</code>. Now objects drop into its queue upon finalization,
which is periodically drained when new objects are created.</li>
<li>Marked <code>Runtime.OperatingSystemName</code> and <code>Runtime.MachineName</code> as
<code>Obsolete</code>, should never have been <code>public</code> in the first place. They also
don't necessarily return a result that matches the <code>platform</code> module's.</li>
<li>Unconditionally depend on <code>pycparser</code> for the interop module generation</li>
</ul>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">Fixed</h3><a id="user-content-fixed-1" class="anchor" aria-label="Permalink: Fixed" href="#fixed-1"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Fixed runtime that fails loading when using pythonnet in an environment
together with Nuitka</li>
<li>Fixes bug where delegates get casts (dotnetcore)</li>
<li>Determine size of interpreter longs at runtime</li>
<li>Handling exceptions ocurred in ModuleObject's getattribute</li>
<li>Fill <code>__classcell__</code> correctly for Python subclasses of .NET types</li>
<li>Fixed issue with params methods that are not passed an array.</li>
<li>Use UTF8 to encode strings passed to <code>PyRun_String</code> on Python 3</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">[2.4.0][] - 2019-05-15</h2><a id="user-content-240---2019-05-15" class="anchor" aria-label="Permalink: [2.4.0][] - 2019-05-15" href="#240---2019-05-15"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">Added</h3><a id="user-content-added-2" class="anchor" aria-label="Permalink: Added" href="#added-2"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Added support for embedding python into dotnet core 2.0 (NetStandard 2.0)</li>
<li>Added new build system (pythonnet.15.sln) based on dotnetcore-sdk/xplat(crossplatform msbuild).
Currently there two side-by-side build systems that produces the same output (net40) from the same sources.
After a some transition time, current (mono/ msbuild 14.0) build system will be removed.</li>
<li>NUnit upgraded to 3.7 (eliminates travis-ci random bug)</li>
<li>Added C# <code>PythonEngine.AddShutdownHandler</code> to help client code clean up on shutdown.</li>
<li>Added <code>clr.GetClrType</code> (<a href="https://github.com/pythonnet/pythonnet/issues/432" data-hovercard-type="issue" data-hovercard-url="/pythonnet/pythonnet/issues/432/hovercard">#432</a>)(<a href="https://github.com/pythonnet/pythonnet/pull/433" data-hovercard-type="pull_request" data-hovercard-url="/pythonnet/pythonnet/pull/433/hovercard">#433</a>)</li>
<li>Allowed passing <code>None</code> for nullable args (<a href="https://github.com/pythonnet/pythonnet/pull/460" data-hovercard-type="pull_request" data-hovercard-url="/pythonnet/pythonnet/pull/460/hovercard">#460</a>)</li>
<li>Added keyword arguments based on C# syntax for calling CPython methods (<a href="https://github.com/pythonnet/pythonnet/pull/461" data-hovercard-type="pull_request" data-hovercard-url="/pythonnet/pythonnet/pull/461/hovercard">#461</a>)</li>
<li>Catches exceptions thrown in C# iterators (yield returns) and rethrows them in python (<a href="https://github.com/pythonnet/pythonnet/issues/475" data-hovercard-type="issue" data-hovercard-url="/pythonnet/pythonnet/issues/475/hovercard">#475</a>)(<a href="https://github.com/pythonnet/pythonnet/pull/693" data-hovercard-type="pull_request" data-hovercard-url="/pythonnet/pythonnet/pull/693/hovercard">#693</a>)</li>
<li>Implemented GetDynamicMemberNames() for PyObject to allow dynamic object members to be visible in the debugger (<a href="https://github.com/pythonnet/pythonnet/issues/443" data-hovercard-type="issue" data-hovercard-url="/pythonnet/pythonnet/issues/443/hovercard">#443</a>)(<a href="https://github.com/pythonnet/pythonnet/pull/690" data-hovercard-type="pull_request" data-hovercard-url="/pythonnet/pythonnet/pull/690/hovercard">#690</a>)</li>
<li>Incorporated reference-style links to issues and pull requests in the CHANGELOG (<a href="https://github.com/pythonnet/pythonnet/issues/608" data-hovercard-type="issue" data-hovercard-url="/pythonnet/pythonnet/issues/608/hovercard">#608</a>)</li>
<li>Added PyObject finalizer support, Python objects referred by C# can be auto collect now ([#692][p692]).</li>
<li>Added detailed comments about aproaches and dangers to handle multi-app-domains (<a href="https://github.com/pythonnet/pythonnet/pull/625" data-hovercard-type="pull_request" data-hovercard-url="/pythonnet/pythonnet/pull/625/hovercard">#625</a>)</li>
<li>Python 3.7 support, builds and testing added. Defaults changed from Python 3.6 to 3.7 ([#698][p698])</li>
<li>Added support for C# types to provide <code>__repr__</code> ([#680][p680])</li>
</ul>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">Changed</h3><a id="user-content-changed-2" class="anchor" aria-label="Permalink: Changed" href="#changed-2"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>PythonException included C# call stack</li>
<li>Reattach python exception traceback information (#545)</li>
<li>PythonEngine.Intialize will now call <code>Py_InitializeEx</code> with a default value of 0, so signals will not be configured by default on embedding. This is different from the previous behaviour, where <code>Py_Initialize</code> was called instead, which sets initSigs to 1. (<a href="https://github.com/pythonnet/pythonnet/issues/449" data-hovercard-type="issue" data-hovercard-url="/pythonnet/pythonnet/issues/449/hovercard">#449</a>)</li>
<li>Refactored MethodBinder.Bind in preparation to make it extensible (#829)</li>
<li>Look for installed Windows 10 sdk's during installation instead of relying on specific versions.</li>
<li>Remove <code>LoadLibrary</code> call. ([#880][p880])</li>
</ul>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">Fixed</h3><a id="user-content-fixed-2" class="anchor" aria-label="Permalink: Fixed" href="#fixed-2"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Fixed secondary PythonEngine.Initialize call, all sensitive static variables now reseted.
This is a hidden bug. Once python cleaning up enough memory, objects from previous engine run becomes corrupted. (<a href="https://github.com/pythonnet/pythonnet/pull/534" data-hovercard-type="pull_request" data-hovercard-url="/pythonnet/pythonnet/pull/534/hovercard">#534</a>)</li>
<li>Fixed Visual Studio 2017 compat (<a href="https://github.com/pythonnet/pythonnet/issues/434" data-hovercard-type="issue" data-hovercard-url="/pythonnet/pythonnet/issues/434/hovercard">#434</a>) for setup.py</li>
<li>Fixed crashes when integrating pythonnet in Unity3d (<a href="https://github.com/pythonnet/pythonnet/issues/714" data-hovercard-type="issue" data-hovercard-url="/pythonnet/pythonnet/issues/714/hovercard">#714</a>),
related to unloading the Application Domain</li>
<li>Fixed interop methods with Py_ssize_t. NetCoreApp 2.0 is more sensitive than net40 and requires this fix. (<a href="https://github.com/pythonnet/pythonnet/pull/531" data-hovercard-type="pull_request" data-hovercard-url="/pythonnet/pythonnet/pull/531/hovercard">#531</a>)</li>
<li>Fixed crash on exit of the Python interpreter if a python class
derived from a .NET class has a <code>__namespace__</code> or <code>__assembly__</code>
attribute (<a href="https://github.com/pythonnet/pythonnet/issues/481" data-hovercard-type="issue" data-hovercard-url="/pythonnet/pythonnet/issues/481/hovercard">#481</a>)</li>
<li>Fixed conversion of 'float' and 'double' values (<a href="https://github.com/pythonnet/pythonnet/issues/486" data-hovercard-type="issue" data-hovercard-url="/pythonnet/pythonnet/issues/486/hovercard">#486</a>)</li>
<li>Fixed 'clrmethod' for python 2 (<a href="https://github.com/pythonnet/pythonnet/issues/492" data-hovercard-type="issue" data-hovercard-url="/pythonnet/pythonnet/issues/492/hovercard">#492</a>)</li>
<li>Fixed double calling of constructor when deriving from .NET class (<a href="https://github.com/pythonnet/pythonnet/issues/495" data-hovercard-type="issue" data-hovercard-url="/pythonnet/pythonnet/issues/495/hovercard">#495</a>)</li>
<li>Fixed <code>clr.GetClrType</code> when iterating over <code>System</code> members (<a href="https://github.com/pythonnet/pythonnet/pull/607" data-hovercard-type="pull_request" data-hovercard-url="/pythonnet/pythonnet/pull/607/hovercard">#607</a>)</li>
<li>Fixed <code>LockRecursionException</code> when loading assemblies (<a href="https://github.com/pythonnet/pythonnet/issues/627" data-hovercard-type="issue" data-hovercard-url="/pythonnet/pythonnet/issues/627/hovercard">#627</a>)</li>
<li>Fixed errors breaking .NET Remoting on method invoke (<a href="https://github.com/pythonnet/pythonnet/issues/276" data-hovercard-type="issue" data-hovercard-url="/pythonnet/pythonnet/issues/276/hovercard">#276</a>)</li>
<li>Fixed PyObject.GetHashCode (<a href="https://github.com/pythonnet/pythonnet/issues/676" data-hovercard-type="issue" data-hovercard-url="/pythonnet/pythonnet/issues/676/hovercard">#676</a>)</li>
<li>Fix memory leaks due to spurious handle incrementation ([#691][i691])</li>
<li>Fix spurious assembly loading exceptions from private types ([#703][i703])</li>
<li>Fix inheritance of non-abstract base methods (<a href="https://github.com/pythonnet/pythonnet/pull/755" data-hovercard-type="issue" data-hovercard-url="/pythonnet/pythonnet/issues/755/hovercard">#755</a>)</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto"><a href="/tminka/pythonnet/compare/v2.2.2...v2.3.0">2.3.0</a> - 2017-03-11</h2><a id="user-content-230---2017-03-11" class="anchor" aria-label="Permalink: 2.3.0 - 2017-03-11" href="#230---2017-03-11"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">Added</h3><a id="user-content-added-3" class="anchor" aria-label="Permalink: Added" href="#added-3"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Added Code Coverage (<a href="https://github.com/pythonnet/pythonnet/pull/345" data-hovercard-type="pull_request" data-hovercard-url="/pythonnet/pythonnet/pull/345/hovercard">#345</a>)</li>
<li>Added <code>PySys_SetArgvEx</code> (<a href="https://github.com/pythonnet/pythonnet/pull/347" data-hovercard-type="pull_request" data-hovercard-url="/pythonnet/pythonnet/pull/347/hovercard">#347</a>)</li>
<li>Added XML Documentation (<a href="https://github.com/pythonnet/pythonnet/pull/349" data-hovercard-type="pull_request" data-hovercard-url="/pythonnet/pythonnet/pull/349/hovercard">#349</a>)</li>
<li>Added <code>Embedded_Tests</code> on AppVeyor (<a href="https://github.com/pythonnet/pythonnet/issues/224" data-hovercard-type="issue" data-hovercard-url="/pythonnet/pythonnet/issues/224/hovercard">#224</a>)(<a href="https://github.com/pythonnet/pythonnet/pull/353" data-hovercard-type="pull_request" data-hovercard-url="/pythonnet/pythonnet/pull/353/hovercard">#353</a>)</li>
<li>Added <code>Embedded_Tests</code> on Travis (<a href="https://github.com/pythonnet/pythonnet/issues/224" data-hovercard-type="issue" data-hovercard-url="/pythonnet/pythonnet/issues/224/hovercard">#224</a>)(<a href="https://github.com/pythonnet/pythonnet/pull/391" data-hovercard-type="pull_request" data-hovercard-url="/pythonnet/pythonnet/pull/391/hovercard">#391</a>)</li>
<li>Added PY3 settings to solution configuration-manager (<a href="https://github.com/pythonnet/pythonnet/pull/346" data-hovercard-type="pull_request" data-hovercard-url="/pythonnet/pythonnet/pull/346/hovercard">#346</a>)</li>
<li>Added <code>Slack</code> (<a href="https://github.com/pythonnet/pythonnet/pull/384" data-hovercard-type="pull_request" data-hovercard-url="/pythonnet/pythonnet/pull/384/hovercard">#384</a>)(<a href="https://github.com/pythonnet/pythonnet/issues/383" data-hovercard-type="issue" data-hovercard-url="/pythonnet/pythonnet/issues/383/hovercard">#383</a>)(<a href="https://github.com/pythonnet/pythonnet/pull/386" data-hovercard-type="pull_request" data-hovercard-url="/pythonnet/pythonnet/pull/386/hovercard">#386</a>)</li>
<li>Added function of passing an arbitrary .NET object as the value
of an attribute of <code>PyObject</code> (<a href="https://github.com/pythonnet/pythonnet/issues/370" data-hovercard-type="issue" data-hovercard-url="/pythonnet/pythonnet/issues/370/hovercard">#370</a>)(<a href="https://github.com/pythonnet/pythonnet/pull/373" data-hovercard-type="pull_request" data-hovercard-url="/pythonnet/pythonnet/pull/373/hovercard">#373</a>)</li>
<li>Added <code>Coverity scan</code> (<a href="https://github.com/pythonnet/pythonnet/issues/390" data-hovercard-type="issue" data-hovercard-url="/pythonnet/pythonnet/issues/390/hovercard">#390</a>)</li>
<li>Added <code>bumpversion</code> for version control (<a href="https://github.com/pythonnet/pythonnet/issues/319" data-hovercard-type="issue" data-hovercard-url="/pythonnet/pythonnet/issues/319/hovercard">#319</a>)(<a href="https://github.com/pythonnet/pythonnet/pull/398" data-hovercard-type="pull_request" data-hovercard-url="/pythonnet/pythonnet/pull/398/hovercard">#398</a>)</li>
<li>Added <code>tox</code> for local testing (<a href="https://github.com/pythonnet/pythonnet/pull/345" data-hovercard-type="pull_request" data-hovercard-url="/pythonnet/pythonnet/pull/345/hovercard">#345</a>)</li>
<li>Added <code>requirements.txt</code></li>
<li>Added to <code>PythonEngine</code> methods <code>Eval</code> and <code>Exec</code> (<a href="https://github.com/pythonnet/pythonnet/pull/389" data-hovercard-type="pull_request" data-hovercard-url="/pythonnet/pythonnet/pull/389/hovercard">#389</a>)</li>
<li>Added implementations of <code>ICustomMarshal</code> (<a href="https://github.com/pythonnet/pythonnet/pull/407" data-hovercard-type="pull_request" data-hovercard-url="/pythonnet/pythonnet/pull/407/hovercard">#407</a>)</li>
<li>Added docker images (<a href="https://github.com/pythonnet/pythonnet/issues/322" data-hovercard-type="issue" data-hovercard-url="/pythonnet/pythonnet/issues/322/hovercard">#322</a>)</li>
<li>Added hooks in <code>pyinstaller</code> and <code>cx_freeze</code> for <code>pythonnet</code> (<a href="https://github.com/pythonnet/pythonnet/issues/66" data-hovercard-type="issue" data-hovercard-url="/pythonnet/pythonnet/issues/66/hovercard">#66</a>)</li>
</ul>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">Changed</h3><a id="user-content-changed-3" class="anchor" aria-label="Permalink: Changed" href="#changed-3"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Refactored python <code>unittests</code> (<a href="https://github.com/pythonnet/pythonnet/pull/329" data-hovercard-type="pull_request" data-hovercard-url="/pythonnet/pythonnet/pull/329/hovercard">#329</a>)</li>
<li>Refactored python <code>setup.py</code> (<a href="https://github.com/pythonnet/pythonnet/pull/337" data-hovercard-type="pull_request" data-hovercard-url="/pythonnet/pythonnet/pull/337/hovercard">#337</a>)</li>
<li>Refactored remaining of Build Directives on <code>runtime.cs</code> (<a href="https://github.com/pythonnet/pythonnet/pull/339" data-hovercard-type="pull_request" data-hovercard-url="/pythonnet/pythonnet/pull/339/hovercard">#339</a>)</li>
<li>Refactored <code>Embedded_Tests</code> to make easier to write tests (<a href="https://github.com/pythonnet/pythonnet/pull/369" data-hovercard-type="pull_request" data-hovercard-url="/pythonnet/pythonnet/pull/369/hovercard">#369</a>)</li>
<li>Changed <code>unittests</code> to <code>pytest</code> (<a href="https://github.com/pythonnet/pythonnet/pull/368" data-hovercard-type="pull_request" data-hovercard-url="/pythonnet/pythonnet/pull/368/hovercard">#368</a>)</li>
<li>Upgraded NUnit framework from <code>2.6.3</code> to <code>3.5.0</code> (<a href="https://github.com/pythonnet/pythonnet/pull/341" data-hovercard-type="pull_request" data-hovercard-url="/pythonnet/pythonnet/pull/341/hovercard">#341</a>)</li>
<li>Downgraded NUnit framework from <code>3.5.0</code> to <code>2.6.4</code> (<a href="https://github.com/pythonnet/pythonnet/pull/353" data-hovercard-type="pull_request" data-hovercard-url="/pythonnet/pythonnet/pull/353/hovercard">#353</a>)</li>
<li>Upgraded NUnit framework from <code>2.6.4</code> to <code>3.6.0</code> (<a href="https://github.com/pythonnet/pythonnet/pull/371" data-hovercard-type="pull_request" data-hovercard-url="/pythonnet/pythonnet/pull/371/hovercard">#371</a>)</li>
<li>Unfroze Mono version on Travis (<a href="https://github.com/pythonnet/pythonnet/pull/345" data-hovercard-type="pull_request" data-hovercard-url="/pythonnet/pythonnet/pull/345/hovercard">#345</a>)</li>
<li>Changed <code>conda.recipe</code> build to only pull-requests (<a href="https://github.com/pythonnet/pythonnet/pull/345" data-hovercard-type="pull_request" data-hovercard-url="/pythonnet/pythonnet/pull/345/hovercard">#345</a>)</li>
<li>Combine <code>Py_DEBUG</code> and <code>PYTHON_WITH_PYDEBUG</code> flags (<a href="https://github.com/pythonnet/pythonnet/issues/362" data-hovercard-type="issue" data-hovercard-url="/pythonnet/pythonnet/issues/362/hovercard">#362</a>)</li>
</ul>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">Deprecated</h3><a id="user-content-deprecated" class="anchor" aria-label="Permalink: Deprecated" href="#deprecated"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Deprecated <code>RunString</code> (<a href="https://github.com/pythonnet/pythonnet/issues/401" data-hovercard-type="issue" data-hovercard-url="/pythonnet/pythonnet/issues/401/hovercard">#401</a>)</li>
</ul>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">Fixed</h3><a id="user-content-fixed-3" class="anchor" aria-label="Permalink: Fixed" href="#fixed-3"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Fixed crash during Initialization (<a href="https://github.com/pythonnet/pythonnet/issues/262" data-hovercard-type="issue" data-hovercard-url="/pythonnet/pythonnet/issues/262/hovercard">#262</a>)(<a href="https://github.com/pythonnet/pythonnet/pull/343" data-hovercard-type="pull_request" data-hovercard-url="/pythonnet/pythonnet/pull/343/hovercard">#343</a>)</li>
<li>Fixed crash during Shutdown (<a href="https://github.com/pythonnet/pythonnet/pull/365" data-hovercard-type="pull_request" data-hovercard-url="/pythonnet/pythonnet/pull/365/hovercard">#365</a>)</li>
<li>Fixed multiple build warnings</li>
<li>Fixed method signature match for Object Type (<a href="https://github.com/pythonnet/pythonnet/issues/203" data-hovercard-type="issue" data-hovercard-url="/pythonnet/pythonnet/issues/203/hovercard">#203</a>)(<a href="https://github.com/pythonnet/pythonnet/pull/377" data-hovercard-type="pull_request" data-hovercard-url="/pythonnet/pythonnet/pull/377/hovercard">#377</a>)</li>
<li>Fixed outdated version number in AssemblyInfo (<a href="https://github.com/pythonnet/pythonnet/pull/398" data-hovercard-type="pull_request" data-hovercard-url="/pythonnet/pythonnet/pull/398/hovercard">#398</a>)</li>
<li>Fixed wrong version number in <code>conda.recipe</code> (<a href="https://github.com/pythonnet/pythonnet/pull/398" data-hovercard-type="pull_request" data-hovercard-url="/pythonnet/pythonnet/pull/398/hovercard">#398</a>)</li>
<li>Fixed fixture location for Python tests and <code>Embedded_Tests</code></li>
<li>Fixed <code>PythonException</code> crash during Shutdown (<a href="https://github.com/pythonnet/pythonnet/pull/400" data-hovercard-type="pull_request" data-hovercard-url="/pythonnet/pythonnet/pull/400/hovercard">#400</a>)</li>
<li>Fixed <code>AppDomain</code> unload during GC (<a href="https://github.com/pythonnet/pythonnet/issues/397" data-hovercard-type="issue" data-hovercard-url="/pythonnet/pythonnet/issues/397/hovercard">#397</a>)(<a href="https://github.com/pythonnet/pythonnet/pull/400" data-hovercard-type="pull_request" data-hovercard-url="/pythonnet/pythonnet/pull/400/hovercard">#400</a>)</li>
<li>Fixed <code>Py_Main</code> &amp; <code>PySys_SetArgvEx</code> <code>no mem error</code> on <code>UCS4/PY3</code> (<a href="https://github.com/pythonnet/pythonnet/pull/399" data-hovercard-type="pull_request" data-hovercard-url="/pythonnet/pythonnet/pull/399/hovercard">#399</a>)</li>
<li>Fixed <code>Python.Runtime.dll.config</code> on macOS (<a href="https://github.com/pythonnet/pythonnet/issues/120" data-hovercard-type="issue" data-hovercard-url="/pythonnet/pythonnet/issues/120/hovercard">#120</a>)</li>
<li>Fixed crash on <code>PythonEngine.Version</code> (<a href="https://github.com/pythonnet/pythonnet/issues/413" data-hovercard-type="issue" data-hovercard-url="/pythonnet/pythonnet/issues/413/hovercard">#413</a>)</li>
<li>Fixed <code>PythonEngine.PythonPath</code> issues (<a href="https://github.com/pythonnet/pythonnet/issues/179" data-hovercard-type="issue" data-hovercard-url="/pythonnet/pythonnet/issues/179/hovercard">#179</a>)(<a href="https://github.com/pythonnet/pythonnet/issues/414" data-hovercard-type="issue" data-hovercard-url="/pythonnet/pythonnet/issues/414/hovercard">#414</a>)(<a href="https://github.com/pythonnet/pythonnet/pull/415" data-hovercard-type="pull_request" data-hovercard-url="/pythonnet/pythonnet/pull/415/hovercard">#415</a>)</li>
<li>Fixed missing information on 'No method matches given arguments' by adding the method name</li>
</ul>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">Removed</h3><a id="user-content-removed-1" class="anchor" aria-label="Permalink: Removed" href="#removed-1"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Removed <code>six</code> dependency for <code>unittests</code> (<a href="https://github.com/pythonnet/pythonnet/pull/329" data-hovercard-type="pull_request" data-hovercard-url="/pythonnet/pythonnet/pull/329/hovercard">#329</a>)</li>
<li>Removed <code>Mono.Unix</code> dependency for <code>UCS4</code> (<a href="https://github.com/pythonnet/pythonnet/pull/360" data-hovercard-type="pull_request" data-hovercard-url="/pythonnet/pythonnet/pull/360/hovercard">#360</a>)</li>
<li>Removed need for <code>Python.Runtime.dll.config</code></li>
<li>Removed PY32 build option <code>PYTHON_WITH_WIDE_UNICODE</code> (<a href="https://github.com/pythonnet/pythonnet/issues/417" data-hovercard-type="issue" data-hovercard-url="/pythonnet/pythonnet/issues/417/hovercard">#417</a>)</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto"><a href="/tminka/pythonnet/compare/v2.2.1...v2.2.2">2.2.2</a> - 2017-01-29</h2><a id="user-content-222---2017-01-29" class="anchor" aria-label="Permalink: 2.2.2 - 2017-01-29" href="#222---2017-01-29"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">Fixed</h3><a id="user-content-fixed-4" class="anchor" aria-label="Permalink: Fixed" href="#fixed-4"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Missing files from packaging (<a href="https://github.com/pythonnet/pythonnet/issues/336" data-hovercard-type="issue" data-hovercard-url="/pythonnet/pythonnet/issues/336/hovercard">#336</a>)</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto"><a href="/tminka/pythonnet/compare/v2.2.0-dev1...v2.2.1">2.2.1</a> - 2017-01-26</h2><a id="user-content-221---2017-01-26" class="anchor" aria-label="Permalink: 2.2.1 - 2017-01-26" href="#221---2017-01-26"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li><code>v2.2.0</code> had a release issue on PyPi. Bumped to <code>v2.2.1</code></li>
</ul>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">Added</h3><a id="user-content-added-4" class="anchor" aria-label="Permalink: Added" href="#added-4"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Python 3.6 support (<a href="https://github.com/pythonnet/pythonnet/pull/310" data-hovercard-type="pull_request" data-hovercard-url="/pythonnet/pythonnet/pull/310/hovercard">#310</a>)</li>
<li>Added <code>__version__</code> to module (<a href="https://github.com/pythonnet/pythonnet/pull/312" data-hovercard-type="pull_request" data-hovercard-url="/pythonnet/pythonnet/pull/312/hovercard">#312</a>)</li>
<li>Added <code>conda</code> recipe (<a href="https://github.com/pythonnet/pythonnet/pull/281" data-hovercard-type="pull_request" data-hovercard-url="/pythonnet/pythonnet/pull/281/hovercard">#281</a>)</li>
<li>Nuget update on build (<a href="https://github.com/pythonnet/pythonnet/pull/268" data-hovercard-type="pull_request" data-hovercard-url="/pythonnet/pythonnet/pull/268/hovercard">#268</a>)</li>
<li>Added <code>__cause__</code> attribute on exception (<a href="https://github.com/pythonnet/pythonnet/pull/287" data-hovercard-type="pull_request" data-hovercard-url="/pythonnet/pythonnet/pull/287/hovercard">#287</a>)</li>
</ul>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">Changed</h3><a id="user-content-changed-4" class="anchor" aria-label="Permalink: Changed" href="#changed-4"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>License to MIT (<a href="https://github.com/pythonnet/pythonnet/pull/314" data-hovercard-type="pull_request" data-hovercard-url="/pythonnet/pythonnet/pull/314/hovercard">#314</a>)</li>
<li>Project clean-up (<a href="https://github.com/pythonnet/pythonnet/pull/320" data-hovercard-type="pull_request" data-hovercard-url="/pythonnet/pythonnet/pull/320/hovercard">#320</a>)</li>
<li>Refactor <code>#if</code> directives</li>
<li>Rename Decref/Incref to XDecref/XIncre (<a href="https://github.com/pythonnet/pythonnet/pull/275" data-hovercard-type="pull_request" data-hovercard-url="/pythonnet/pythonnet/pull/275/hovercard">#275</a>)</li>
<li>Remove printing if Decref is called with NULL (<a href="https://github.com/pythonnet/pythonnet/pull/275" data-hovercard-type="pull_request" data-hovercard-url="/pythonnet/pythonnet/pull/275/hovercard">#275</a>)</li>
</ul>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">Removed</h3><a id="user-content-removed-2" class="anchor" aria-label="Permalink: Removed" href="#removed-2"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Python 2.6 support (<a href="https://github.com/pythonnet/pythonnet/issues/270" data-hovercard-type="issue" data-hovercard-url="/pythonnet/pythonnet/issues/270/hovercard">#270</a>)</li>
<li>Python 3.2 support (<a href="https://github.com/pythonnet/pythonnet/issues/270" data-hovercard-type="issue" data-hovercard-url="/pythonnet/pythonnet/issues/270/hovercard">#270</a>)</li>
</ul>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">Fixed</h3><a id="user-content-fixed-5" class="anchor" aria-label="Permalink: Fixed" href="#fixed-5"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Fixed <code>isinstance</code> refcount_leak (<a href="https://github.com/pythonnet/pythonnet/pull/273" data-hovercard-type="pull_request" data-hovercard-url="/pythonnet/pythonnet/pull/273/hovercard">#273</a>)</li>
<li>Comparison Operators (<a href="https://github.com/pythonnet/pythonnet/pull/294" data-hovercard-type="pull_request" data-hovercard-url="/pythonnet/pythonnet/pull/294/hovercard">#294</a>)</li>
<li>Improved Linux support (<a href="https://github.com/pythonnet/pythonnet/pull/300" data-hovercard-type="pull_request" data-hovercard-url="/pythonnet/pythonnet/pull/300/hovercard">#300</a>)</li>
<li>Exception pickling (<a href="https://github.com/pythonnet/pythonnet/pull/286" data-hovercard-type="pull_request" data-hovercard-url="/pythonnet/pythonnet/pull/286/hovercard">#286</a>)</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto"><a href="/tminka/pythonnet/compare/v2.1.0...v2.2.0-dev1">2.2.0-dev1</a> - 2016-09-19</h2><a id="user-content-220-dev1---2016-09-19" class="anchor" aria-label="Permalink: 2.2.0-dev1 - 2016-09-19" href="#220-dev1---2016-09-19"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">Changed</h3><a id="user-content-changed-5" class="anchor" aria-label="Permalink: Changed" href="#changed-5"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Switch to C# 6.0 (<a href="https://github.com/pythonnet/pythonnet/pull/219" data-hovercard-type="pull_request" data-hovercard-url="/pythonnet/pythonnet/pull/219/hovercard">#219</a>)</li>
<li><code>setup.py</code> improvements for locating build tools (<a href="https://github.com/pythonnet/pythonnet/pull/208" data-hovercard-type="pull_request" data-hovercard-url="/pythonnet/pythonnet/pull/208/hovercard">#208</a>)</li>
<li>unmanaged exports updated (<a href="https://github.com/pythonnet/pythonnet/pull/206" data-hovercard-type="pull_request" data-hovercard-url="/pythonnet/pythonnet/pull/206/hovercard">#206</a>)</li>
<li>Mono update pinned to 4.2.4.4 (<a href="https://github.com/pythonnet/pythonnet/pull/233" data-hovercard-type="pull_request" data-hovercard-url="/pythonnet/pythonnet/pull/233/hovercard">#233</a>)</li>
</ul>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">Fixed</h3><a id="user-content-fixed-6" class="anchor" aria-label="Permalink: Fixed" href="#fixed-6"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Fixed relative imports (<a href="https://github.com/pythonnet/pythonnet/pull/219" data-hovercard-type="pull_request" data-hovercard-url="/pythonnet/pythonnet/pull/219/hovercard">#219</a>)</li>
<li>Fixed recursive types (<a href="https://github.com/pythonnet/pythonnet/pull/250" data-hovercard-type="pull_request" data-hovercard-url="/pythonnet/pythonnet/pull/250/hovercard">#250</a>)</li>
<li>Demo fix - stream reading (<a href="https://github.com/pythonnet/pythonnet/pull/225" data-hovercard-type="pull_request" data-hovercard-url="/pythonnet/pythonnet/pull/225/hovercard">#225</a>)</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto"><a href="/tminka/pythonnet/compare/v2.0.0...v2.1.0">2.1.0</a> - 2016-04-12</h2><a id="user-content-210---2016-04-12" class="anchor" aria-label="Permalink: 2.1.0 - 2016-04-12" href="#210---2016-04-12"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">Added</h3><a id="user-content-added-5" class="anchor" aria-label="Permalink: Added" href="#added-5"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Added Python 3.2 support. (<a href="https://github.com/pythonnet/pythonnet/pull/78" data-hovercard-type="pull_request" data-hovercard-url="/pythonnet/pythonnet/pull/78/hovercard">#78</a>)</li>
<li>Added Python 3.3 support. (<a href="https://github.com/pythonnet/pythonnet/pull/78" data-hovercard-type="pull_request" data-hovercard-url="/pythonnet/pythonnet/pull/78/hovercard">#78</a>)</li>
<li>Added Python 3.4 support. (<a href="https://github.com/pythonnet/pythonnet/pull/78" data-hovercard-type="pull_request" data-hovercard-url="/pythonnet/pythonnet/pull/78/hovercard">#78</a>)</li>
<li>Added Python 3.5 support. (<a href="https://github.com/pythonnet/pythonnet/pull/163" data-hovercard-type="pull_request" data-hovercard-url="/pythonnet/pythonnet/pull/163/hovercard">#163</a>)</li>
<li>Managed types can be sub-classed in Python (<a href="https://github.com/pythonnet/pythonnet/pull/78" data-hovercard-type="pull_request" data-hovercard-url="/pythonnet/pythonnet/pull/78/hovercard">#78</a>)</li>
<li>Uses dynamic objects for cleaner code when embedding Python (<a href="https://github.com/pythonnet/pythonnet/pull/78" data-hovercard-type="pull_request" data-hovercard-url="/pythonnet/pythonnet/pull/78/hovercard">#78</a>)</li>
</ul>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">Changed</h3><a id="user-content-changed-6" class="anchor" aria-label="Permalink: Changed" href="#changed-6"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Better Linux support (with or without --enable-shared option) (<a href="https://github.com/pythonnet/pythonnet/pull/78" data-hovercard-type="pull_request" data-hovercard-url="/pythonnet/pythonnet/pull/78/hovercard">#78</a>)</li>
</ul>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">Removed</h3><a id="user-content-removed-3" class="anchor" aria-label="Permalink: Removed" href="#removed-3"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Implicit Type Casting (<a href="https://github.com/pythonnet/pythonnet/issues/131" data-hovercard-type="issue" data-hovercard-url="/pythonnet/pythonnet/issues/131/hovercard">#131</a>)</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto"><a href="/tminka/pythonnet/compare/1.0...v2.0.0">2.0.0</a> - 2015-06-26</h2><a id="user-content-200---2015-06-26" class="anchor" aria-label="Permalink: 2.0.0 - 2015-06-26" href="#200---2015-06-26"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Release</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">2.0.0-alpha.2</h2><a id="user-content-200-alpha2" class="anchor" aria-label="Permalink: 2.0.0-alpha.2" href="#200-alpha2"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">Changed</h3><a id="user-content-changed-7" class="anchor" aria-label="Permalink: Changed" href="#changed-7"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>
<p dir="auto">First work on Python 2.5 compatibility. The destination version can be
set by defining PYTHON24 or PYTHON25. Python 2.6 compatibility is in
work.</p>
</li>
<li>
<p dir="auto">Added VS 2005 solution and project files including a UnitTest
configuration which runs the unit test suite.</p>
</li>
<li>
<p dir="auto">Enhanced unit test suite. All test cases are combined in a single
test suite now.</p>
</li>
<li>
<p dir="auto">Fixed bugs in generics support for all Python versions.</p>
</li>
<li>
<p dir="auto">Fixed exception bugs for Python 2.5+. When compiled for Python 2.5+ all
managed exceptions are based on Python's <code>exceptions.Exception</code> class.</p>
</li>
<li>
<p dir="auto">Added deprecation warnings for importing from <code>CLR.*</code> and the CLR module.</p>
</li>
<li>
<p dir="auto">Implemented support for methods with variable arguments
<code>spam(params object[] egg)</code></p>
</li>
<li>
<p dir="auto">Fixed Mono support by adding a custom marshaler for UCS-4 unicode,
fixing a some ref counter bugs and creating a new makefile.mono.</p>
</li>
<li>
<p dir="auto">Added a standard python extension to load the clr environment.
The <code>src/monoclr/</code> directory contains additional sample code like a
Python binary linked against <code>libpython2.x.so</code> and some example code
how to embed Mono and PythonNet in a C application.</p>
</li>
<li>
<p dir="auto">Added yet another python prompt. This time it's a C application that
embedds both Python and Mono. It may be useful as an example app for
others and I need it to debug a nasty bug.</p>
</li>
<li>
<p dir="auto">Implemented <code>ModuleFunctionAttribute</code> and added
<code>ForbidPythonThreadsAttribute</code>. The latter is required for module
functions which invoke Python methods.</p>
</li>
<li>
<p dir="auto">Added <code>clr.setPreload()</code>, <code>clr.getPreload()</code>,
<code>clr.AddReference("assembly name")</code>, <code>clr.FindAssembly("name")</code>
and <code>clr.ListAssemblies(verbose)</code>. Automatic preloading can be enabled
with clr.setPreload/True). Preloading is automatically enabled for
interactive Python shells and disabled in all other cases.</p>
</li>
<li>
<p dir="auto">New Makefile that works for Windows and Mono and autodetects the Python
version and UCS 2/4 setting.</p>
</li>
<li>
<p dir="auto">Added code for Python 2.3. PythonNet can be build for Python 2.3 again
but it is not fully supported.</p>
</li>
<li>
<p dir="auto">Changed the PythonException.Message value so it displays the name of
the exception class <code>Exception</code> instead of its representation
<code>&lt;type 'exceptions.Exception'&gt;</code>.</p>
</li>
<li>
<p dir="auto">Added <code>Python.Runtime.dll.config</code>.</p>
</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">2.0.0-alpha.1</h2><a id="user-content-200-alpha1" class="anchor" aria-label="Permalink: 2.0.0-alpha.1" href="#200-alpha1"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">Changed</h3><a id="user-content-changed-8" class="anchor" aria-label="Permalink: Changed" href="#changed-8"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>
<p dir="auto">Moved the Python for .NET project to Sourceforge and moved version
control to Subversion.</p>
</li>
<li>
<p dir="auto">Removed <code>CallConvCdecl</code> attributes and the IL hack that they supported.
.NET 2.x now supports <code>UnmanagedFunctionPointer</code>, which does the right
thing without the hackery required in 1.x. This removes a dependency
on ILASM to build the package and better supports Mono (in theory).</p>
</li>
<li>
<p dir="auto">Refactored import and assembly management machinery. The old <code>CLR.</code>
syntax for import is deprecated, but still supported until 3.x. The
recommended style now is to use <code>from System import xxx</code>, etc. We
also now support <code>from X import *</code> correctly.</p>
</li>
<li>
<p dir="auto">Implemented a (lowercase) <code>clr</code> module to match IronPython for code
compatibility. Methods of this module should be used to explicitly
load assemblies. Implicit (name-based) assembly loading will still
work until 3.x, but it is deprecated.</p>
</li>
<li>
<p dir="auto">Implemented support for generic types and generic methods using the
same patterns and syntax as IronPython. See the documentation for
usage details.</p>
</li>
<li>
<p dir="auto">Many small and large performance improvements, switched to generic
collections for some internals, better algorithms for assembly
scanning, etc.</p>
</li>
<li>
<p dir="auto">Fixed an unboxing issue in generated delegate implementation code
that affected delegates that return value types.</p>
</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto"><a href="https://github.com/pythonnet/pythonnet/releases/tag/1.0">1.0.0</a> - 2006-04-08</h2><a id="user-content-100---2006-04-08" class="anchor" aria-label="Permalink: 1.0.0 - 2006-04-08" href="#100---2006-04-08"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">Changed</h3><a id="user-content-changed-9" class="anchor" aria-label="Permalink: Changed" href="#changed-9"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Backported the refactored import and assembly management from the 2.x
line, mainly to improve the possibility of code-compatibility with
IronPython.</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">1.0.0-rc.2</h2><a id="user-content-100-rc2" class="anchor" aria-label="Permalink: 1.0.0-rc.2" href="#100-rc2"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">Changed</h3><a id="user-content-changed-10" class="anchor" aria-label="Permalink: Changed" href="#changed-10"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>
<p dir="auto">Changed some uses of Finalize as a static method name that confused the
Mono compiler and people reading the code. Note that this may be a
breaking change if anyone was calling <code>PythonEngine.Finalize()</code>. If so,
you should now use <code>PythonEngine.Shutdown()</code>.</p>
</li>
<li>
<p dir="auto">Tweaked assembly lookup to ensure that assemblies can be found in the
current working directory, even after changing directories using things
like <code>os.chdir()</code> from Python.</p>
</li>
<li>
<p dir="auto">Fixed some incorrect finalizers (thanks to Greg Chapman for the report)
that may have caused some threading oddities.</p>
</li>
<li>
<p dir="auto">Tweaked support for out and ref parameters. If a method has a return
type of void and a single ref or out parameter, that parameter will be
returned as the result of the method. This matches the current behavior
of IronPython and makes it more likely that code can be moved between
Python for .NET and IP in the future.</p>
</li>
<li>
<p dir="auto">Refactored part of the assembly manager to remove a potential case of
thread-deadlock in multi-threaded applications.</p>
</li>
<li>
<p dir="auto">Added a <code>__str__</code> method to managed exceptions that returns the Message
attribute of the exception and the StackTrace (if available).</p>
</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">1.0.0-rc.1</h2><a id="user-content-100-rc1" class="anchor" aria-label="Permalink: 1.0.0-rc.1" href="#100-rc1"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">Changed</h3><a id="user-content-changed-11" class="anchor" aria-label="Permalink: Changed" href="#changed-11"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>
<p dir="auto">Implemented a workaround for the fact that exceptions cannot be new-style
classes in the CPython interpreter. Managed exceptions can now be raised
and caught naturally from Python (hooray!)</p>
</li>
<li>
<p dir="auto">Implemented support for invoking methods with out and ref parameters.
Because there is no real equivalent to these in Python, methods that
have out or ref parameters will return a tuple. The tuple will contain
the result of the method as its first item, followed by out parameter
values in the order of their declaration in the method signature.</p>
</li>
<li>
<p dir="auto">Fixed a refcount problem that caused a crash when CLR was imported in
an existing installed Python interpreter.</p>
</li>
<li>
<p dir="auto">Added an automatic conversion from Python strings to <code>byte[]</code>. This makes
it easier to pass <code>byte[]</code> data to managed methods (or set properties,
etc.) as a Python string without having to write explicit conversion
code. Also works for sbyte arrays. Note that <code>byte</code> and <code>sbyte</code> arrays
returned from managed methods or obtained from properties or fields
do <em>not</em> get converted to Python strings - they remain instances of
<code>Byte[]</code> or <code>SByte[]</code>.</p>
</li>
<li>
<p dir="auto">Added conversion of generic Python sequences to object arrays when
appropriate (thanks to Mackenzie Straight for the patch).</p>
</li>
<li>
<p dir="auto">Added a bit of cautionary documentation for embedders, focused on
correct handling of the Python global interpreter lock from managed
code for code that calls into Python.</p>
</li>
<li>
<p dir="auto"><code>PyObject.FromManagedObject</code> now correctly returns the Python None object
if the input is a null reference. Also added a new <code>AsManagedObject</code>
method to <code>PyObject</code>, making it easier to convert a Python-wrapped managed
object to the real managed object.</p>
</li>
<li>
<p dir="auto">Created a simple installer for windows platforms.</p>
</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">1.0.0-beta.5</h2><a id="user-content-100-beta5" class="anchor" aria-label="Permalink: 1.0.0-beta.5" href="#100-beta5"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">Changed</h3><a id="user-content-changed-12" class="anchor" aria-label="Permalink: Changed" href="#changed-12"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>
<p dir="auto">Refactored and fixed threading and global interpreter lock handling,
which was badly broken before. Also added a number of threading and
GIL-handling tests.</p>
</li>
<li>
<p dir="auto">Related to the GIL fixes, added a note to embedders in the README
about using the AcquireLock and ReleaseLock methods of the PythonEngine
class to manage the GIL.</p>
</li>
<li>
<p dir="auto">Fixed a problem in <code>Single &lt;--&gt; float</code> conversion for cultures that use
different decimal symbols than Python.</p>
</li>
<li>
<p dir="auto">Added a new <code>ReloadModule</code> method to the <code>PythonEngine</code> class that hooks
Python module reloading (<code>PyImport_ReloadModule</code>).</p>
</li>
<li>
<p dir="auto">Added a new <code>StringAsModule</code> method to the PythonEngine class that can
create a module from a managed string of code.</p>
</li>
<li>
<p dir="auto">Added a default <code>__str__</code> implementation for Python wrappers of managed
objects that calls the <code>ToString</code> method of the managed object.</p>
</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">1.0.0-beta.4</h2><a id="user-content-100-beta4" class="anchor" aria-label="Permalink: 1.0.0-beta.4" href="#100-beta4"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">Changed</h3><a id="user-content-changed-13" class="anchor" aria-label="Permalink: Changed" href="#changed-13"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>
<p dir="auto">Fixed a problem that made it impossible to override "special" methods
like <code>__getitem__</code> in subclasses of managed classes. Now the tests all
pass, and there is much rejoicing.</p>
</li>
<li>
<p dir="auto">Managed classes reflected to Python now have an <code>__doc__</code> attribute that
contains a listing of the class constructor signatures.</p>
</li>
<li>
<p dir="auto">Fixed a problem that prevented passing null (None) for array arguments.</p>
</li>
<li>
<p dir="auto">Added a number of new argument conversion tests. Thanks to Laurent
Caumont for giving Python for .NET a good workout with managed DirectX.</p>
</li>
<li>
<p dir="auto">Updated the bundled C Python runtime and libraries to Python 2.4. The
current release is known to also run with Python 2.3. It is known
<em>not</em> to work with older versions due to changes in CPython type
object structure.</p>
</li>
<li>
<p dir="auto">Mostly fixed the differences in the way that import works depending
on whether you are using the bundled interpreter or an existing Python
interpreter. The hack I used makes import work uniformly for imports
done in Python modules. Unfortunately, there is still a limitation
when using the interpreter interactively: you need to do <code>import CLR</code>
first before importing any sub-names when running with an existing
Python interpreter.</p>
<p dir="auto">The reason is that the first import of <code>CLR</code> installs the CLR import
hook, but for an existing interpreter the standard importer is still
in control for the duration of that first import, so sub-names won't
be found until the next import, which will use the now-installed hook.</p>
</li>
<li>
<p dir="auto">Added support to directly iterate over objects that support IEnumerator
(as well as IEnumerable). Thanks to Greg Chapman for prodding me ;)</p>
</li>
<li>
<p dir="auto">Added a section to the README dealing with rebuilding Python for .NET
against other CPython versions.</p>
</li>
<li>
<p dir="auto">Fixed a problem with accessing properties when only the interface for
an object is known. For example, <code>ICollection(ob).Count</code> failed because
Python for .NET mistakenly decided that Count was abstract.</p>
</li>
<li>
<p dir="auto">Fixed some problems with how COM-based objects are exposed and how
members of inherited interfaces are exposed. Thanks to Bruce Dodson
for patches on this.</p>
</li>
<li>
<p dir="auto">Changed the Runtime class to use a const string to target the
appropriate CPython dll in DllImport attributes. Now you only
have to change one line to target a new Python version.</p>
</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">1.0.0-beta.3</h2><a id="user-content-100-beta3" class="anchor" aria-label="Permalink: 1.0.0-beta.3" href="#100-beta3"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">Changed</h3><a id="user-content-changed-14" class="anchor" aria-label="Permalink: Changed" href="#changed-14"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>A dumb bug that could cause a crash on startup on some platforms was
fixed. Decided to update the beta for this, as a number of people
were running into the problem.</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">1.0.0-beta.2</h2><a id="user-content-100-beta2" class="anchor" aria-label="Permalink: 1.0.0-beta.2" href="#100-beta2"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">Changed</h3><a id="user-content-changed-15" class="anchor" aria-label="Permalink: Changed" href="#changed-15"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>
<p dir="auto">Exceptions raised as a result of getting or setting properties were
not very helpful (target invokation exception). This has been changed
to pass through the inner exception the way that methods do, which is
much more likely to be the real exception that caused the problem.</p>
</li>
<li>
<p dir="auto">Events were refactored as the implementation was based on some bad
assumptions. As a result, subscription and unsubscription now works
correctly. A change from beta 1 is that event objects are no longer
directly callable - this was not appropriate, since the internal
implementation of an event is private and cant work reliably. Instead,
you should the appropriate <code>OnSomeEvent</code> method published by a class
to fire an event.</p>
</li>
<li>
<p dir="auto">The distribution did not include the key file, making it a pain for
people to build from source. Added the key file to the distribution
buildout for beta 2.</p>
</li>
<li>
<p dir="auto">Assemblies can now be found and loaded if they are on the PYTHONPATH.
Previously only the appbase and the GAC were checked. The system now
checks PYTHONPATH first, then the appbase, then the GAC.</p>
</li>
<li>
<p dir="auto">Fixed a bug in constructor invokation during object instantiation.</p>
</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">1.0.0-beta.1</h2><a id="user-content-100-beta1" class="anchor" aria-label="Permalink: 1.0.0-beta.1" href="#100-beta1"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">Changed</h3><a id="user-content-changed-16" class="anchor" aria-label="Permalink: Changed" href="#changed-16"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>
<p dir="auto">Added the baseline of the managed embedding API. Some of the details
are still subject to change based on some real-world use and feedback.</p>
<p dir="auto">The embedding API is based on the <code>PyObject</code> class, along with a number
of specific <code>PyDict</code>, <code>PyList</code>, (etc.) classes that expose the respective
interfaces of the built-in Python types. The basic structure and usage
is intended be familar to anyone who has used Python / C++ wrapper
libraries like CXX or Boost.</p>
</li>
<li>
<p dir="auto">Started integrating NUnit2 to support unit tests for the embedding
layer - still need to add the embedding tests (many already exist,
but were written for an older version of NUnit).</p>
</li>
<li>
<p dir="auto">Added Python iteration protocol support for arrays and managed objects
that implement IEnumerable. This means that you can now use the Python
idiom <code>for item in object:</code> on any array or IEnumerable object.</p>
</li>
<li>
<p dir="auto">Added automatic conversion from Python sequence types to managed array
types. This means, for example, that you can now call a managed method
like AddRange that expects an array with any Python object that supports
the Python sequence protocol, provided the items of the sequence are
convertible to the item type of the managed array.</p>
</li>
<li>
<p dir="auto">Added new demo scripts, mostly more substantial winforms examples.</p>
</li>
<li>
<p dir="auto">Finished the unit tests for event support, and fixed lots of problems
with events and delegates as a result. This is one of the trickier
parts of the integration layer, and there is good coverage of these
in the unit tests now.</p>
</li>
<li>
<p dir="auto">Did a fair amount of profiling with an eval version of ANTS (which is
quite nice, BTW) and made a few changes as a result.</p>
</li>
<li>
<p dir="auto">Type management was refactored, fixing the issue that caused segfaults
when GC was enabled. Unit tests, stress tests and demo apps now all run
nicely with Python GC enabled. There are one or two things left to fix,
but the fixes should not have any user impact.</p>
</li>
<li>
<p dir="auto">Changed to base PythonNet on Python 2.3.2. This is considered the most
stable release, and a good 25 - 30% faster as well.</p>
</li>
<li>
<p dir="auto">Added a new <code>CLR.dll</code> that acts as an extension module that allows an
existing unmodified Python 2.3 installation to simply <code>import CLR</code> to
bootstrap the managed integration layer.</p>
</li>
<li>
<p dir="auto">A bug was causing managed methods to only expose overloads declared in
a particular class, hiding inherited overloads of the same name. Fixed
the bug and added some unit tests.</p>
</li>
<li>
<p dir="auto">Added a virtual <code>__doc__</code> attribute to managed methods that contains
the signature of the method. This also means that the Python <code>help</code>
function now provides signature info when used on a managed class.</p>
</li>
<li>
<p dir="auto">Calling managed methods and events <code>unbound</code> (passing the instance as
the first argument) now works. There is a caveat for methods - if a
class declares both static and instance methods with the same name,
it is not possible to call that instance method unbound (the static
method will always be called).</p>
</li>
<li>
<p dir="auto">Overload selection for overloaded methods is now much better and uses
a method resolution algorithm similar to that used by Jython.</p>
</li>
<li>
<p dir="auto">Changed the managed python.exe wrapper to run as an STA thread, which
seems to be more compatible with winforms apps. This needs a better
solution long-term. One possibility would be a command line switch
so that -sta or -mta could control the python.exe apartment state.</p>
</li>
<li>
<p dir="auto">Added support for the Python boolean type (True, False). Bool values
now appear as True or False to Python.</p>
</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">1.0.0-alpha.2</h2><a id="user-content-100-alpha2" class="anchor" aria-label="Permalink: 1.0.0-alpha.2" href="#100-alpha2"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">Changed</h3><a id="user-content-changed-17" class="anchor" aria-label="Permalink: Changed" href="#changed-17"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>
<p dir="auto">Added a Mono makefile. Thanks to Camilo Uribe for help in testing and
working out problems on Mono. Note that it not currently possible to
build PythonNet using mono, due to the use of some IL attributes that
the mono assembler / disassembler doesn't support yet.</p>
</li>
<li>
<p dir="auto">Preliminary tests show that PythonNet <em>does</em> actually run under mono,
though the test suite bombs out before the end with an "out of memory"
error from the mono runtime. It's just a guess at this point, but I
suspect there may be a limited pool for allocating certain reflection
structures, and Python uses the reflection infrastructure quite heavily.</p>
</li>
<li>
<p dir="auto">Removed decoys like the non-working embedding APIs; lots of internal
refactoring.</p>
</li>
<li>
<p dir="auto">Implemented indexer support. Managed instances that implement indexers
can now be used naturally from Python (e.g. <code>someobject[0]</code>).</p>
</li>
<li>
<p dir="auto">Implemented sequence protocol support for managed arrays.</p>
</li>
<li>
<p dir="auto">Implemented basic thread state management; calls to managed methods
no longer block Python. I won't go so far as to say the thread
choreography is "finished", as I don't have a comprehensive set of
tests to back that up yet (and it will take some work to write a
sufficiently large and evil set of tests).</p>
</li>
<li>
<p dir="auto">Fixed a bug that caused conversions of managed strings to PyUnicode to
produce mangled values in certain situations.</p>
</li>
<li>
<p dir="auto">Fixed a number of problems related to subclassing a managed class,
including the fact that it didn't work :)</p>
</li>
<li>
<p dir="auto">Fixed all of the bugs that were causing tests to fail. This release
contains all new bugs and new failing tests. Progress! :)</p>
</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">1.0.0-alpha.1</h2><a id="user-content-100-alpha1" class="anchor" aria-label="Permalink: 1.0.0-alpha.1" href="#100-alpha1"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">Added</h3><a id="user-content-added-6" class="anchor" aria-label="Permalink: Added" href="#added-6"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Initial (mostly) working experimental release.</li>
</ul>
</article></div><div class="d-none"></div></section></div></div></div> </div> <!-- --> </div></div></div></div></div></div><div class="ScrollMarksContainer-module__scrollMarksContainer__Eu7uU" id="find-result-marks-container"></div><div class="d-none"></div><div class="d-none"></div></div> <!-- --> <!-- --> </div>
</react-app>




  </div>

</turbo-frame>

    </main>
  </div>

  </div>

          <footer class="footer f6 color-fg-muted color-border-subtle tmp-pt-7 tmp-pb-6 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="GitHub Homepage" class="footer-octicon mr-2" href="https://github.com">
        <svg aria-hidden="true" data-component="Octicon" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-mark-github">
    <path d="M10.226 17.284c-2.965-.36-5.054-2.493-5.054-5.256 0-1.123.404-2.336 1.078-3.144-.292-.741-.247-2.314.09-2.965.898-.112 2.111.36 2.83 1.01.853-.269 1.752-.404 2.853-.404 1.1 0 1.999.135 2.807.382.696-.629 1.932-1.1 2.83-.988.315.606.36 2.179.067 2.942.72.854 1.101 2 1.101 3.167 0 2.763-2.089 4.852-5.098 5.234.763.494 1.28 1.572 1.28 2.807v2.336c0 .674.561 1.056 1.235.786 4.066-1.55 7.255-5.615 7.255-10.646C23.5 6.188 18.334 1 11.978 1 5.62 1 .5 6.188.5 12.545c0 4.986 3.167 9.12 7.435 10.669.606.225 1.19-.18 1.19-.786V20.63a2.9 2.9 0 0 1-1.078.224c-1.483 0-2.359-.808-2.987-2.313-.247-.607-.517-.966-1.034-1.033-.27-.023-.359-.135-.359-.27 0-.27.45-.471.898-.471.652 0 1.213.404 1.797 1.235.45.651.921.943 1.483.943.561 0 .92-.202 1.437-.719.382-.381.674-.718.944-.943"></path>
</svg>
</a>
      <span>
        &copy; 2026 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 community&quot;,&quot;label&quot;:&quot;text:community&quot;}" href="https://github.community/" data-view-component="true" class="Link--secondary Link">Community</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 text-left"
        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-locale="en"
      data-initial-cookie-consent-allowed=""
      data-cookie-consent-required="true"
    ></ghcc-consent>




  <div id="ajax-error-message" class="ajax-error-message flash flash-error" hidden>
    <svg aria-hidden="true" data-component="Octicon" 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" data-component="Octicon" 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 can’t 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" data-component="Octicon" 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 tmp-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 code to clipboard" class="ClipboardButton btn js-clipboard-copy m-2 p-0" data-copy-feedback="Copied!" data-tooltip-direction="w">
      <svg aria-hidden="true" data-component="Octicon" 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 tmp-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" data-component="Octicon" 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 tmp-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 code to clipboard" 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" data-component="Octicon" 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" data-component="Octicon" 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>

