<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-0e158a2f5ddd.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/global-bec0587a3deb.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/github-fb643df33dec.css" />
<meta name="optimizely-datafile" content="{"groups": [], "environmentKey": "production", "rollouts": [], "typedAudiences": [], "projectId": "16737760170", "variables": [], "featureFlags": [], "experiments": [{"status": "Running", "audienceIds": [], "variations": [{"variables": [], "id": "21427950901", "key": "control"}, {"variables": [], "id": "21429710665", "key": "beginner"}, {"variables": [], "id": "21437291543", "key": "upstart"}], "id": "21445030708", "key": "_259_zero_user_dashboard", "layerId": "21434011841", "trafficAllocation": [{"entityId": "21427950901", "endOfRange": 3334}, {"entityId": "21427950901", "endOfRange": 5000}, {"entityId": "21427950901", "endOfRange": 8333}, {"entityId": "21427950901", "endOfRange": 10000}], "forcedVariations": {"3c64268131793aa297119a343c19e345": "beginner", "95b24126db31ea8693c0fe5ea9f53b65": "beginner", "086e2abe64e9101112af53b95d2d90b9": "upstart", "bae688df9d297afac98e2d254e912ada": "control", "6c2cfda7c41396fcc31a4db759a42b94": "beginner", "16ed2b4ff7de02663b7c606309695916": "control", "1971768911.1635962195": "beginner", "830bf802470ec6c9c5800c99d8e57445": "beginner"}}, {"status": "Running", "audienceIds": [], "variations": [{"variables": [], "id": "21540260416", "key": "variant_fetch_upstream"}, {"variables": [], "id": "21551370594", "key": "variant_sync_fork"}], "id": "21532540507", "key": "fork_syncing", "layerId": "21510660568", "trafficAllocation": [{"entityId": "21551370594", "endOfRange": 5000}, {"entityId": "21551370594", "endOfRange": 10000}], "forcedVariations": {"bcceffdcc63834cc146ddb8cce0c556d": "variant_sync_fork", "0bd228f43ec6ac1a9eb9087f4e2471e6": "variant_sync_fork", "404ee4d837b290b3089170d9226758ea": "variant_sync_fork"}}, {"status": "Running", "audienceIds": [], "variations": [{"variables": [], "id": "21571560628", "key": "control"}, {"variables": [], "id": "21560360470", "key": "separate"}], "id": "21581240400", "key": "_272_zero_user_dashboard_separate", "layerId": "21533861783", "trafficAllocation": [{"entityId": "21560360470", "endOfRange": 5000}, {"entityId": "21571560628", "endOfRange": 10000}], "forcedVariations": {"84527259280cd047a161abdd9cc3e28d": "separate", "ae666882652d9718723c13fda7007b3a": "separate"}}], "version": "4", "audiences": [{"conditions": "[\"or\", {\"match\": \"exact\", \"name\": \"$opt_dummy_attribute\", \"type\": \"custom_attribute\", \"value\": \"$opt_dummy_value\"}]", "id": "$opt_dummy_audience", "name": "Optimizely-Generated Audience for Backwards Compatibility"}], "anonymizeIP": true, "sdkKey": "WTc6awnGuYDdG98CYRban", "attributes": [{"id": "16822470375", "key": "user_id"}, {"id": "17143601254", "key": "spammy"}, {"id": "18175660309", "key": "organization_plan"}, {"id": "18813001570", "key": "is_logged_in"}, {"id": "19073851829", "key": "geo"}, {"id": "20175462351", "key": "requestedCurrency"}, {"id": "20785470195", "key": "country_code"}, {"id": "21656311196", "key": "opened_downgrade_dialog"}], "botFiltering": false, "accountId": "16737760170", "events": [{"experimentIds": [], "id": "17911811441", "key": "hydro_click.dashboard.teacher_toolbox_cta"}, {"experimentIds": [], "id": "18124116703", "key": "submit.organizations.complete_sign_up"}, {"experimentIds": [], "id": "18145892387", "key": "no_metric.tracked_outside_of_optimizely"}, {"experimentIds": [], "id": "18178755568", "key": "click.org_onboarding_checklist.add_repo"}, {"experimentIds": [], "id": "18180553241", "key": "submit.repository_imports.create"}, {"experimentIds": [], "id": "18186103728", "key": "click.help.learn_more_about_repository_creation"}, {"experimentIds": [], "id": "18188530140", "key": "test_event"}, {"experimentIds": [], "id": "18191963644", "key": "click.empty_org_repo_cta.transfer_repository"}, {"experimentIds": [], "id": "18195612788", "key": "click.empty_org_repo_cta.import_repository"}, {"experimentIds": [], "id": "18210945499", "key": "click.org_onboarding_checklist.invite_members"}, {"experimentIds": [], "id": "18211063248", "key": "click.empty_org_repo_cta.create_repository"}, {"experimentIds": [], "id": "18215721889", "key": "click.org_onboarding_checklist.update_profile"}, {"experimentIds": [], "id": "18224360785", "key": "click.org_onboarding_checklist.dismiss"}, {"experimentIds": [], "id": "18234832286", "key": "submit.organization_activation.complete"}, {"experimentIds": [], "id": "18252392383", "key": "submit.org_repository.create"}, {"experimentIds": [], "id": "18257551537", "key": "submit.org_member_invitation.create"}, {"experimentIds": [], "id": "18259522260", "key": "submit.organization_profile.update"}, {"experimentIds": [], "id": "18564603625", "key": "view.classroom_select_organization"}, {"experimentIds": [], "id": "18568612016", "key": "click.classroom_sign_in_click"}, {"experimentIds": [], "id": "18572592540", "key": "view.classroom_name"}, {"experimentIds": [], "id": "18574203855", "key": "click.classroom_create_organization"}, {"experimentIds": [], "id": "18582053415", "key": "click.classroom_select_organization"}, {"experimentIds": [], "id": "18589463420", "key": "click.classroom_create_classroom"}, {"experimentIds": [], "id": "18591323364", "key": "click.classroom_create_first_classroom"}, {"experimentIds": [], "id": "18591652321", "key": "click.classroom_grant_access"}, {"experimentIds": [], "id": "18607131425", "key": "view.classroom_creation"}, {"experimentIds": [], "id": "18831680583", "key": "upgrade_account_plan"}, {"experimentIds": [], "id": "19064064515", "key": "click.signup"}, {"experimentIds": [], "id": "19075373687", "key": "click.view_account_billing_page"}, {"experimentIds": [], "id": "19077355841", "key": "click.dismiss_signup_prompt"}, {"experimentIds": [], "id": "19079713938", "key": "click.contact_sales"}, {"experimentIds": [], "id": "19120963070", "key": "click.compare_account_plans"}, {"experimentIds": [], "id": "19151690317", "key": "click.upgrade_account_cta"}, {"experimentIds": [], "id": "19424193129", "key": "click.open_account_switcher"}, {"experimentIds": [], "id": "19520330825", "key": "click.visit_account_profile"}, {"experimentIds": [], "id": "19540970635", "key": "click.switch_account_context"}, {"experimentIds": [], "id": "19730198868", "key": "submit.homepage_signup"}, {"experimentIds": [], "id": "19820830627", "key": "click.homepage_signup"}, {"experimentIds": [], "id": "19988571001", "key": "click.create_enterprise_trial"}, {"experimentIds": [], "id": "20036538294", "key": "click.create_organization_team"}, {"experimentIds": [], "id": "20040653299", "key": "click.input_enterprise_trial_form"}, {"experimentIds": [], "id": "20062030003", "key": "click.continue_with_team"}, {"experimentIds": [], "id": "20068947153", "key": "click.create_organization_free"}, {"experimentIds": [], "id": "20086636658", "key": "click.signup_continue.username"}, {"experimentIds": [], "id": "20091648988", "key": "click.signup_continue.create_account"}, {"experimentIds": [], "id": "20103637615", "key": "click.signup_continue.email"}, {"experimentIds": [], "id": "20111574253", "key": "click.signup_continue.password"}, {"experimentIds": [], "id": "20120044111", "key": "view.pricing_page"}, {"experimentIds": [], "id": "20152062109", "key": "submit.create_account"}, {"experimentIds": [], "id": "20165800992", "key": "submit.upgrade_payment_form"}, {"experimentIds": [], "id": "20171520319", "key": "submit.create_organization"}, {"experimentIds": [], "id": "20222645674", "key": "click.recommended_plan_in_signup.discuss_your_needs"}, {"experimentIds": [], "id": "20227443657", "key": "submit.verify_primary_user_email"}, {"experimentIds": [], "id": "20234607160", "key": "click.recommended_plan_in_signup.try_enterprise"}, {"experimentIds": [], "id": "20238175784", "key": "click.recommended_plan_in_signup.team"}, {"experimentIds": [], "id": "20239847212", "key": "click.recommended_plan_in_signup.continue_free"}, {"experimentIds": [], "id": "20251097193", "key": "recommended_plan"}, {"experimentIds": [], "id": "20438619534", "key": "click.pricing_calculator.1_member"}, {"experimentIds": [], "id": "20456699683", "key": "click.pricing_calculator.15_members"}, {"experimentIds": [], "id": "20467868331", "key": "click.pricing_calculator.10_members"}, {"experimentIds": [], "id": "20476267432", "key": "click.trial_days_remaining"}, {"experimentIds": [], "id": "20476357660", "key": "click.discover_feature"}, {"experimentIds": [], "id": "20479287901", "key": "click.pricing_calculator.custom_members"}, {"experimentIds": [], "id": "20481107083", "key": "click.recommended_plan_in_signup.apply_teacher_benefits"}, {"experimentIds": [], "id": "20483089392", "key": "click.pricing_calculator.5_members"}, {"experimentIds": [], "id": "20484283944", "key": "click.onboarding_task"}, {"experimentIds": [], "id": "20484996281", "key": "click.recommended_plan_in_signup.apply_student_benefits"}, {"experimentIds": [], "id": "20486713726", "key": "click.onboarding_task_breadcrumb"}, {"experimentIds": [], "id": "20490791319", "key": "click.upgrade_to_enterprise"}, {"experimentIds": [], "id": "20491786766", "key": "click.talk_to_us"}, {"experimentIds": [], "id": "20494144087", "key": "click.dismiss_enterprise_trial"}, {"experimentIds": [], "id": "20499722759", "key": "completed_all_tasks"}, {"experimentIds": [], "id": "20500710104", "key": "completed_onboarding_tasks"}, {"experimentIds": [], "id": "20513160672", "key": "click.read_doc"}, {"experimentIds": [], "id": "20516196762", "key": "actions_enabled"}, {"experimentIds": [], "id": "20518980986", "key": "click.dismiss_trial_banner"}, {"experimentIds": [], "id": "20535446721", "key": "click.issue_actions_prompt.dismiss_prompt"}, {"experimentIds": [], "id": "20557002247", "key": "click.issue_actions_prompt.setup_workflow"}, {"experimentIds": [], "id": "20595070227", "key": "click.pull_request_setup_workflow"}, {"experimentIds": [], "id": "20626600314", "key": "click.seats_input"}, {"experimentIds": [], "id": "20642310305", "key": "click.decrease_seats_number"}, {"experimentIds": [], "id": "20662990045", "key": "click.increase_seats_number"}, {"experimentIds": [], "id": "20679620969", "key": "click.public_product_roadmap"}, {"experimentIds": [], "id": "20761240940", "key": "click.dismiss_survey_banner"}, {"experimentIds": [], "id": "20767210721", "key": "click.take_survey"}, {"experimentIds": [], "id": "20795281201", "key": "click.archive_list"}, {"experimentIds": [], "id": "20966790249", "key": "contact_sales.submit"}, {"experimentIds": [], "id": "20996500333", "key": "contact_sales.existing_customer"}, {"experimentIds": [], "id": "20996890162", "key": "contact_sales.blank_message_field"}, {"experimentIds": [], "id": "21000470317", "key": "contact_sales.personal_email"}, {"experimentIds": [], "id": "21002790172", "key": "contact_sales.blank_phone_field"}, {"experimentIds": ["21445030708", "21581240400"], "id": "21354412592", "key": "click.dismiss_create_readme"}, {"experimentIds": ["21445030708", "21581240400"], "id": "21366102546", "key": "click.dismiss_zero_user_content"}, {"experimentIds": [], "id": "21370252505", "key": "account_did_downgrade"}, {"experimentIds": ["21445030708", "21581240400"], "id": "21370840408", "key": "click.cta_create_readme"}, {"experimentIds": ["21445030708", "21581240400"], "id": "21375451068", "key": "click.cta_create_new_repository"}, {"experimentIds": ["21445030708", "21581240400"], "id": "21385390948", "key": "click.zero_user_content"}, {"experimentIds": [], "id": "21467712175", "key": "click.downgrade_keep"}, {"experimentIds": [], "id": "21484112202", "key": "click.downgrade"}, {"experimentIds": [], "id": "21495292213", "key": "click.downgrade_survey_exit"}, {"experimentIds": [], "id": "21508241468", "key": "click.downgrade_survey_submit"}, {"experimentIds": [], "id": "21512030356", "key": "click.downgrade_support"}, {"experimentIds": [], "id": "21539090022", "key": "click.downgrade_exit"}, {"experimentIds": ["21532540507"], "id": "21543640644", "key": "click_fetch_upstream"}, {"experimentIds": [], "id": "21646510300", "key": "click.move_your_work"}, {"experimentIds": [], "id": "21656151116", "key": "click.add_branch_protection_rule"}, {"experimentIds": [], "id": "21663860599", "key": "click.downgrade_dialog_open"}, {"experimentIds": [], "id": "21687860483", "key": "click.learn_about_protected_branches"}, {"experimentIds": [], "id": "21689050333", "key": "click.dismiss_protect_this_branch"}, {"experimentIds": [], "id": "21864370109", "key": "click.sign_in"}], "revision": "1355"}" />
<meta name="hovercard-subject-tag" content="repository:11689077" data-turbo-transient>
<meta name="google-site-verification" content="c1kuD-K2HIVF635lypcsWPoD4kilo5-jA_wBFyT4uMY">
<meta name="user-login" content="lytemar">
<meta name="viewport" content="width=device-width">
<meta name="description" content="Sound analysis/synthesis tools for music applications - sms-tools/README.md at master · MTG/sms-tools">
<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" />
<meta name="twitter:image:src" content="https://opengraph.githubassets.com/4efcf023ffeb5985878f10e06703c0f12a4309419bf1180fc5f58e6edbea6d71/MTG/sms-tools" /><meta name="twitter:site" content="@github" /><meta name="twitter:card" content="summary_large_image" /><meta name="twitter:title" content="sms-tools/README.md at master · MTG/sms-tools" /><meta name="twitter:description" content="Sound analysis/synthesis tools for music applications - sms-tools/README.md at master · MTG/sms-tools" />
<meta property="og:image" content="https://opengraph.githubassets.com/4efcf023ffeb5985878f10e06703c0f12a4309419bf1180fc5f58e6edbea6d71/MTG/sms-tools" /><meta property="og:image:alt" content="Sound analysis/synthesis tools for music applications - sms-tools/README.md at master · MTG/sms-tools" /><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="sms-tools/README.md at master · MTG/sms-tools" /><meta property="og:url" content="https://github.com/MTG/sms-tools" /><meta property="og:description" content="Sound analysis/synthesis tools for music applications - sms-tools/README.md at master · MTG/sms-tools" />
<link rel="assets" href="https://github.githubassets.com/">
<link rel="shared-web-socket" href="wss://alive.github.com/_sockets/u/7453429/ws?session=eyJ2IjoiVjMiLCJ1Ijo3NDUzNDI5LCJzIjo5NjAwNDI2ODEsImMiOjE0ODQ4MjkxODcsInQiOjE2NjQyMDUwMzl9--f92cd4866e6df1df2cd0a6d14c6cef4c52b7bd80c7b840472745c9c4287b8780" data-refresh-url="/_alive" data-session-id="165f7a6550a559926ce76428803939bc5965c9c9c253bc598417da61e38a59a6">
<link rel="shared-web-socket-src" href="/assets-cdn/worker/socket-worker-b87581f5816c.js">
<meta name="hostname" content="github.com">
<meta name="keyboard-shortcuts-preference" content="all">
<script type="application/json" id="memex_keyboard_shortcuts_preference">"all"</script>
<meta name="expected-hostname" content="github.com">
<meta name="enabled-features" content="IMAGE_METRIC_TRACKING,GEOJSON_AZURE_MAPS,STRICT_DEFERRED_DIFF_LINES_CHECKS,STRICT_DEFERRED_DIFF_LINES_CHECKS_REPORTING">
<link rel="canonical" href="https://github.com/MTG/sms-tools/blob/master/README.md" data-turbo-transient>
<div class="position-relative js-header-wrapper ">
<a href="#start-of-content" class="p-3 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>
<script crossorigin="anonymous" defer="defer" type="application/javascript" src="https://github.githubassets.com/assets/vendors-node_modules_github_mini-throttle_dist_decorators_js-node_modules_github_command-pale-4090c9-7f4a07119d05.js"></script>
<header class="Header js-details-container Details px-3 px-md-4 px-lg-5 flex-wrap flex-md-nowrap" role="banner" >
<div class="Header-item mt-n1 mb-n1 d-none d-md-flex">
<a
class="Header-link " href="https://github.com/" data-hotkey="g d" aria-label="Homepage " data-turbo="false" data-analytics-event="{"category":"Header","action":"go to dashboard","label":"icon:logo"}"
</div>
<div class="Header-item d-md-none">
<button aria-label="Toggle navigation" aria-expanded="false" type="button" data-view-component="true" class="Header-link js-details-target btn-link"> <svg aria-hidden="true" height="24" viewBox="0 0 16 16" version="1.1" width="24" data-view-component="true" class="octicon octicon-three-bars">
<path fill-rule="evenodd" d="M1 2.75A.75.75 0 011.75 2h12.5a.75.75 0 110 1.5H1.75A.75.75 0 011 2.75zm0 5A.75.75 0 011.75 7h12.5a.75.75 0 110 1.5H1.75A.75.75 0 011 7.75zM1.75 12a.75.75 0 100 1.5h12.5a.75.75 0 100-1.5H1.75z"></path>
<div class="Header-item Header-item--full flex-column flex-md-row width-full flex-order-2 flex-md-order-none mr-0 mt-3 mt-md-0 Details-content--hidden-not-important d-md-flex">
<div class="Box position-absolute overflow-hidden d-none jump-to-suggestions js-jump-to-suggestions-container">
- No suggested jump to results
-
<img class="avatar mr-2 flex-shrink-0 js-jump-to-suggestion-avatar d-none" alt="" aria-label="Team" src="" width="28" height="28"> <div class="jump-to-suggestion-name js-jump-to-suggestion-name flex-auto overflow-hidden text-left no-wrap css-truncate css-truncate-target"> </div> <div class="border rounded-2 flex-shrink-0 color-bg-subtle px-1 color-fg-muted ml-1 f6 d-none js-jump-to-badge-search"> <span class="js-jump-to-badge-search-text-default d-none" aria-label="in this repository"> In this repository </span> <span class="js-jump-to-badge-search-text-global d-none" aria-label="in all of GitHub"> All GitHub </span> <span aria-hidden="true" class="d-inline-block ml-1 v-align-middle">↵</span> </div> <div aria-hidden="true" class="border rounded-2 flex-shrink-0 color-bg-subtle px-1 color-fg-muted ml-1 f6 d-none d-on-nav-focus js-jump-to-badge-jump"> Jump to <span class="d-inline-block ml-1 v-align-middle">↵</span> </div>
-
<img class="avatar mr-2 flex-shrink-0 js-jump-to-suggestion-avatar d-none" alt="" aria-label="Team" src="" width="28" height="28"> <div class="jump-to-suggestion-name js-jump-to-suggestion-name flex-auto overflow-hidden text-left no-wrap css-truncate css-truncate-target"> </div> <div class="border rounded-2 flex-shrink-0 color-bg-subtle px-1 color-fg-muted ml-1 f6 d-none js-jump-to-badge-search"> <span class="js-jump-to-badge-search-text-default d-none" aria-label="in this organization"> In this organization </span> <span class="js-jump-to-badge-search-text-global d-none" aria-label="in all of GitHub"> All GitHub </span> <span aria-hidden="true" class="d-inline-block ml-1 v-align-middle">↵</span> </div> <div aria-hidden="true" class="border rounded-2 flex-shrink-0 color-bg-subtle px-1 color-fg-muted ml-1 f6 d-none d-on-nav-focus js-jump-to-badge-jump"> Jump to <span class="d-inline-block ml-1 v-align-middle">↵</span> </div>
-
<img class="avatar mr-2 flex-shrink-0 js-jump-to-suggestion-avatar d-none" alt="" aria-label="Team" src="" width="28" height="28"> <div class="jump-to-suggestion-name js-jump-to-suggestion-name flex-auto overflow-hidden text-left no-wrap css-truncate css-truncate-target"> </div> <div class="border rounded-2 flex-shrink-0 color-bg-subtle px-1 color-fg-muted ml-1 f6 d-none js-jump-to-badge-search"> <span class="js-jump-to-badge-search-text-default d-none" aria-label="in this repository"> In this repository </span> <span class="js-jump-to-badge-search-text-global d-none" aria-label="in all of GitHub"> All GitHub </span> <span aria-hidden="true" class="d-inline-block ml-1 v-align-middle">↵</span> </div> <div aria-hidden="true" class="border rounded-2 flex-shrink-0 color-bg-subtle px-1 color-fg-muted ml-1 f6 d-none d-on-nav-focus js-jump-to-badge-jump"> Jump to <span class="d-inline-block ml-1 v-align-middle">↵</span> </div>
<li class="d-flex flex-justify-center flex-items-center p-0 f5 js-jump-to-suggestion">
<svg style="box-sizing: content-box; color: var(--color-icon-primary);" width="32" height="32" viewBox="0 0 16 16" fill="none" data-view-component="true" class="m-3 anim-rotate">
</div>
</label>
<nav id="global-nav" class="d-flex flex-column flex-md-row flex-self-stretch flex-md-self-auto" aria-label="Global">
<a class="Header-link py-md-3 d-block d-md-none py-2 border-top border-md-top-0 border-white-fade" data-ga-click="Header, click, Nav menu - item:dashboard:user" aria-label="Dashboard" data-turbo="false" href="/dashboard">Dashboard</a>
<a class="js-selected-navigation-item Header-link mt-md-n3 mb-md-n3 py-2 py-md-3 mr-0 mr-md-3 border-top border-md-top-0 border-white-fade" data-hotkey="g p" data-ga-click="Header, click, Nav menu - item:pulls context:user" aria-label="Pull requests you created" data-turbo="false" data-selected-links="/pulls /pulls/assigned /pulls/mentioned /pulls" href="/pulls">
Pull<span class="d-inline d-md-none d-lg-inline"> request</span>s
<a class="js-selected-navigation-item Header-link mt-md-n3 mb-md-n3 py-2 py-md-3 mr-0 mr-md-3 border-top border-md-top-0 border-white-fade d-md-none" data-ga-click="Header, click, Nav menu - item:workspaces context:user" data-turbo="false" data-selected-links="/codespaces /codespaces" href="/codespaces">Codespaces</a>
<div class="d-flex position-relative">
<a class="js-selected-navigation-item Header-link flex-auto mt-md-n3 mb-md-n3 py-2 py-md-3 mr-0 mr-md-3 border-top border-md-top-0 border-white-fade" data-ga-click="Header, click, Nav menu - item:marketplace context:user" data-octo-click="marketplace_click" data-octo-dimensions="location:nav_bar" data-turbo="false" data-selected-links=" /marketplace" href="/marketplace">Marketplace</a>
</div>
<a class="js-selected-navigation-item Header-link mt-md-n3 mb-md-n3 py-2 py-md-3 mr-0 mr-md-3 border-top border-md-top-0 border-white-fade" data-ga-click="Header, click, Nav menu - item:explore" data-turbo="false" data-selected-links="/explore /trending /trending/developers /integrations /integrations/feature/code /integrations/feature/collaborate /integrations/feature/ship showcases showcases_search showcases_landing /explore" href="/explore">Explore</a>
<a class="js-selected-navigation-item Header-link d-block d-md-none py-2 py-md-3 border-top border-md-top-0 border-white-fade" data-ga-click="Header, click, Nav menu - item:Sponsors" data-hydro-click="{"event_type":"sponsors.button_click","payload":{"button":"HEADER_SPONSORS_DASHBOARD","sponsorable_login":"lytemar","originating_url":"https://github.com/MTG/sms-tools/blob/master/README.md","user_id":7453429}}" data-hydro-click-hmac="728f81298a156fd5cd7c6b977488e4d5592cf01c1886548bd519b2724da607b8" data-turbo="false" data-selected-links=" /sponsors/accounts" href="/sponsors/accounts">Sponsors</a>
<a class="Header-link d-block d-md-none mr-0 mr-md-3 py-2 py-md-3 border-top border-md-top-0 border-white-fade" data-turbo="false" href="/settings/profile">Settings</a>
<a class="Header-link d-block d-md-none mr-0 mr-md-3 py-2 py-md-3 border-top border-md-top-0 border-white-fade" data-turbo="false" href="/lytemar">
<img class="avatar avatar-user" loading="lazy" decoding="async" src="https://avatars.githubusercontent.com/u/7453429?s=40&v=4" width="20" height="20" alt="@lytemar" />
lytemar
</div>
<div class="Header-item Header-item--full flex-justify-center d-md-none position-relative">
<a
class="Header-link " href="https://github.com/" data-hotkey="g d" aria-label="Homepage " data-turbo="false" data-analytics-event="{"category":"Header","action":"go to dashboard","label":"icon:logo"}"
</div>
<div class="Header-item mr-0 mr-md-3 flex-order-1 flex-md-order-none">
<notification-indicator
class="js-socket-channel" data-channel="eyJjIjoibm90aWZpY2F0aW9uLWNoYW5nZWQ6NzQ1MzQyOSIsInQiOjE2NjQyMDUwMzl9--fbf362720dbfadc77dd9fceefa21d4d4bbf1e69b572d2ba9659c767be7c0d9ae" data-indicator-mode="none" data-tooltip-global="You have unread notifications" data-tooltip-unavailable="Notifications are unavailable at the moment." data-tooltip-none="You have no unread notifications"
<a id="AppHeader-notifications-button" href="/notifications" class="Header-link notification-indicator position-relative tooltipped tooltipped-sw"
data-hotkey="g n"
data-target="notification-indicator.link"
aria-label="Notifications"
data-analytics-event="{"category":"Header","action":"go to notifications","label":"icon:read"}"
<span
data-target="notification-indicator.badge"
class="mail-status unread" hidden>
</span>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-bell">
<path d="M8 16a2 2 0 001.985-1.75c.017-.137-.097-.25-.235-.25h-3.5c-.138 0-.252.113-.235.25A2 2 0 008 16z"></path><path fill-rule="evenodd" d="M8 1.5A3.5 3.5 0 004.5 5v2.947c0 .346-.102.683-.294.97l-1.703 2.556a.018.018 0 00-.003.01l.001.006c0 .002.002.004.004.006a.017.017 0 00.006.004l.007.001h10.964l.007-.001a.016.016 0 00.006-.004.016.016 0 00.004-.006l.001-.007a.017.017 0 00-.003-.01l-1.703-2.554a1.75 1.75 0 01-.294-.97V5A3.5 3.5 0 008 1.5zM3 5a5 5 0 0110 0v2.947c0 .05.015.098.042.139l1.703 2.555A1.518 1.518 0 0113.482 13H2.518a1.518 1.518 0 01-1.263-2.36l1.703-2.554A.25.25 0 003 7.947V5z"></path>
</div>
<div class="Header-item position-relative d-none d-md-flex">
<details class="details-overlay details-reset">
</div>
<div class="Header-item position-relative mr-0 d-none d-md-flex">
preload>
<include-fragment src="/users/7453429/menu" loading="lazy">
<p class="text-center mt-3" data-hide-on-error>
<svg style="box-sizing: content-box; color: var(--color-icon-primary);" width="32" height="32" viewBox="0 0 16 16" fill="none" data-view-component="true" class="anim-rotate">
Sorry, something went wrong.
</div>
</div>
<div id="js-flash-container" data-turbo-replace>
<div>{{ message }}</div>
<details
class="details-reset details-overlay details-overlay-dark js-command-palette-dialog" id="command-palette-pjax-container" data-turbo-replace
<command-palette-mode
data-char="#"
data-scope-types="[""]"
data-placeholder="Search issues and pull requests"
></command-palette-mode>
<command-palette-mode
data-char="#"
data-scope-types="["owner","repository"]"
data-placeholder="Search issues, pull requests, discussions, and projects"
></command-palette-mode>
<command-palette-mode
data-char="!"
data-scope-types="["owner","repository"]"
data-placeholder="Search projects"
></command-palette-mode>
<command-palette-mode
data-char="@"
data-scope-types="[""]"
data-placeholder="Search or jump to a user, organization, or repository"
></command-palette-mode>
<command-palette-mode
data-char="@"
data-scope-types="["owner"]"
data-placeholder="Search or jump to a repository"
></command-palette-mode>
<command-palette-mode
data-char="/"
data-scope-types="["repository"]"
data-placeholder="Search files"
></command-palette-mode>
<command-palette-mode
data-char="?"
></command-palette-mode>
<command-palette-mode
data-char=">"
data-placeholder="Run a command"
></command-palette-mode>
<command-palette-mode
data-char=""
data-scope-types="[""]"
data-placeholder="Search or jump to..."
></command-palette-mode>
<command-palette-mode
data-char=""
data-scope-types="["owner"]"
data-placeholder="Search or jump to..."
></command-palette-mode>
<command-palette-mode
class="js-command-palette-default-mode"
data-char=""
data-placeholder="Search or jump to..."
></command-palette-mode>
<command-palette-input placeholder="Search or jump to..."
data-action="
command-palette-input:command-palette#onInput
command-palette-select:command-palette#onSelect
command-palette-descope:command-palette#onDescope
command-palette-cleared:command-palette#onInputClear
"
>
<div class="js-search-icon d-flex flex-items-center mr-2" style="height: 26px">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-search color-fg-muted">
<path fill-rule="evenodd" d="M11.5 7a4.499 4.499 0 11-8.998 0A4.499 4.499 0 0111.5 7zm-.82 4.74a6 6 0 111.06-1.06l3.04 3.04a.75.75 0 11-1.06 1.06l-3.04-3.04z"></path>
<command-palette-page-stack
data-default-scope-id="MDEwOlJlcG9zaXRvcnkxMTY4OTA3Nw=="
data-default-scope-type="Repository"
data-action="command-palette-page-octicons-cached:command-palette-page-stack#cacheOcticons"
>
<command-palette-tip
class="color-fg-muted f6 px-3 py-1 my-2"
data-scope-types="["","owner","repository"]"
data-mode=""
data-value="">
<div class="d-flex flex-items-start flex-justify-between">
<div>
<span class="text-bold">Tip:</span>
Type <kbd class="hx_kbd">#</kbd> to search pull requests
</div>
<div class="ml-2 flex-shrink-0">
Type <kbd class="hx_kbd">?</kbd> for help and tips
</div>
</div>
</command-palette-tip>
<command-palette-tip
class="color-fg-muted f6 px-3 py-1 my-2"
data-scope-types="["","owner","repository"]"
data-mode=""
data-value="">
<div class="d-flex flex-items-start flex-justify-between">
<div>
<span class="text-bold">Tip:</span>
Type <kbd class="hx_kbd">#</kbd> to search issues
</div>
<div class="ml-2 flex-shrink-0">
Type <kbd class="hx_kbd">?</kbd> for help and tips
</div>
</div>
</command-palette-tip>
<command-palette-tip
class="color-fg-muted f6 px-3 py-1 my-2"
data-scope-types="["owner","repository"]"
data-mode=""
data-value="">
<div class="d-flex flex-items-start flex-justify-between">
<div>
<span class="text-bold">Tip:</span>
Type <kbd class="hx_kbd">#</kbd> to search discussions
</div>
<div class="ml-2 flex-shrink-0">
Type <kbd class="hx_kbd">?</kbd> for help and tips
</div>
</div>
</command-palette-tip>
<command-palette-tip
class="color-fg-muted f6 px-3 py-1 my-2"
data-scope-types="["owner","repository"]"
data-mode=""
data-value="">
<div class="d-flex flex-items-start flex-justify-between">
<div>
<span class="text-bold">Tip:</span>
Type <kbd class="hx_kbd">!</kbd> to search projects
</div>
<div class="ml-2 flex-shrink-0">
Type <kbd class="hx_kbd">?</kbd> for help and tips
</div>
</div>
</command-palette-tip>
<command-palette-tip
class="color-fg-muted f6 px-3 py-1 my-2"
data-scope-types="["owner"]"
data-mode=""
data-value="">
<div class="d-flex flex-items-start flex-justify-between">
<div>
<span class="text-bold">Tip:</span>
Type <kbd class="hx_kbd">@</kbd> to search teams
</div>
<div class="ml-2 flex-shrink-0">
Type <kbd class="hx_kbd">?</kbd> for help and tips
</div>
</div>
</command-palette-tip>
<command-palette-tip
class="color-fg-muted f6 px-3 py-1 my-2"
data-scope-types="[""]"
data-mode=""
data-value="">
<div class="d-flex flex-items-start flex-justify-between">
<div>
<span class="text-bold">Tip:</span>
Type <kbd class="hx_kbd">@</kbd> to search people and organizations
</div>
<div class="ml-2 flex-shrink-0">
Type <kbd class="hx_kbd">?</kbd> for help and tips
</div>
</div>
</command-palette-tip>
<command-palette-tip
class="color-fg-muted f6 px-3 py-1 my-2"
data-scope-types="["","owner","repository"]"
data-mode=""
data-value="">
<div class="d-flex flex-items-start flex-justify-between">
<div>
<span class="text-bold">Tip:</span>
Type <kbd class="hx_kbd">></kbd> to activate command mode
</div>
<div class="ml-2 flex-shrink-0">
Type <kbd class="hx_kbd">?</kbd> for help and tips
</div>
</div>
</command-palette-tip>
<command-palette-tip
class="color-fg-muted f6 px-3 py-1 my-2"
data-scope-types="["","owner","repository"]"
data-mode=""
data-value="">
<div class="d-flex flex-items-start flex-justify-between">
<div>
<span class="text-bold">Tip:</span>
Go to your accessibility settings to change your keyboard shortcuts
</div>
<div class="ml-2 flex-shrink-0">
Type <kbd class="hx_kbd">?</kbd> for help and tips
</div>
</div>
</command-palette-tip>
<command-palette-tip
class="color-fg-muted f6 px-3 py-1 my-2"
data-scope-types="["","owner","repository"]"
data-mode="#"
data-value="">
<div class="d-flex flex-items-start flex-justify-between">
<div>
<span class="text-bold">Tip:</span>
Type author:@me to search your content
</div>
<div class="ml-2 flex-shrink-0">
Type <kbd class="hx_kbd">?</kbd> for help and tips
</div>
</div>
</command-palette-tip>
<command-palette-tip
class="color-fg-muted f6 px-3 py-1 my-2"
data-scope-types="["","owner","repository"]"
data-mode="#"
data-value="">
<div class="d-flex flex-items-start flex-justify-between">
<div>
<span class="text-bold">Tip:</span>
Type is:pr to filter to pull requests
</div>
<div class="ml-2 flex-shrink-0">
Type <kbd class="hx_kbd">?</kbd> for help and tips
</div>
</div>
</command-palette-tip>
<command-palette-tip
class="color-fg-muted f6 px-3 py-1 my-2"
data-scope-types="["","owner","repository"]"
data-mode="#"
data-value="">
<div class="d-flex flex-items-start flex-justify-between">
<div>
<span class="text-bold">Tip:</span>
Type is:issue to filter to issues
</div>
<div class="ml-2 flex-shrink-0">
Type <kbd class="hx_kbd">?</kbd> for help and tips
</div>
</div>
</command-palette-tip>
<command-palette-tip
class="color-fg-muted f6 px-3 py-1 my-2"
data-scope-types="["owner","repository"]"
data-mode="#"
data-value="">
<div class="d-flex flex-items-start flex-justify-between">
<div>
<span class="text-bold">Tip:</span>
Type is:project to filter to projects
</div>
<div class="ml-2 flex-shrink-0">
Type <kbd class="hx_kbd">?</kbd> for help and tips
</div>
</div>
</command-palette-tip>
<command-palette-tip
class="color-fg-muted f6 px-3 py-1 my-2"
data-scope-types="["","owner","repository"]"
data-mode="#"
data-value="">
<div class="d-flex flex-items-start flex-justify-between">
<div>
<span class="text-bold">Tip:</span>
Type is:open to filter to open content
</div>
<div class="ml-2 flex-shrink-0">
Type <kbd class="hx_kbd">?</kbd> for help and tips
</div>
</div>
</command-palette-tip>
<command-palette-tip class="mx-3 my-2 flash flash-error d-flex flex-items-center" data-scope-types="*" data-on-error>
<div>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert">
<path fill-rule="evenodd" d="M8.22 1.754a.25.25 0 00-.44 0L1.698 13.132a.25.25 0 00.22.368h12.164a.25.25 0 00.22-.368L8.22 1.754zm-1.763-.707c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0114.082 15H1.918a1.75 1.75 0 01-1.543-2.575L6.457 1.047zM9 11a1 1 0 11-2 0 1 1 0 012 0zm-.25-5.25a.75.75 0 00-1.5 0v2.5a.75.75 0 001.5 0v-2.5z"></path>
<div hidden>
<div data-targets="command-palette-page-stack.localOcticons" data-octicon-id="arrow-right-color-fg-muted">
<svg height="16" class="octicon octicon-arrow-right color-fg-muted" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.22 2.97a.75.75 0 011.06 0l4.25 4.25a.75.75 0 010 1.06l-4.25 4.25a.75.75 0 01-1.06-1.06l2.97-2.97H3.75a.75.75 0 010-1.5h7.44L8.22 4.03a.75.75 0 010-1.06z"></path></svg>
</div>
<div data-targets="command-palette-page-stack.localOcticons" data-octicon-id="arrow-right-color-fg-default">
<svg height="16" class="octicon octicon-arrow-right color-fg-default" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.22 2.97a.75.75 0 011.06 0l4.25 4.25a.75.75 0 010 1.06l-4.25 4.25a.75.75 0 01-1.06-1.06l2.97-2.97H3.75a.75.75 0 010-1.5h7.44L8.22 4.03a.75.75 0 010-1.06z"></path></svg>
</div>
<div data-targets="command-palette-page-stack.localOcticons" data-octicon-id="codespaces-color-fg-muted">
<svg height="16" class="octicon octicon-codespaces color-fg-muted" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M2 1.75C2 .784 2.784 0 3.75 0h8.5C13.216 0 14 .784 14 1.75v5a1.75 1.75 0 01-1.75 1.75h-8.5A1.75 1.75 0 012 6.75v-5zm1.75-.25a.25.25 0 00-.25.25v5c0 .138.112.25.25.25h8.5a.25.25 0 00.25-.25v-5a.25.25 0 00-.25-.25h-8.5zM0 11.25c0-.966.784-1.75 1.75-1.75h12.5c.966 0 1.75.784 1.75 1.75v3A1.75 1.75 0 0114.25 16H1.75A1.75 1.75 0 010 14.25v-3zM1.75 11a.25.25 0 00-.25.25v3c0 .138.112.25.25.25h12.5a.25.25 0 00.25-.25v-3a.25.25 0 00-.25-.25H1.75z"></path><path fill-rule="evenodd" d="M3 12.75a.75.75 0 01.75-.75h.5a.75.75 0 010 1.5h-.5a.75.75 0 01-.75-.75zm4 0a.75.75 0 01.75-.75h4.5a.75.75 0 010 1.5h-4.5a.75.75 0 01-.75-.75z"></path></svg>
</div>
<div data-targets="command-palette-page-stack.localOcticons" data-octicon-id="copy-color-fg-muted">
<svg height="16" class="octicon octicon-copy color-fg-muted" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z"></path><path fill-rule="evenodd" d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z"></path></svg>
</div>
<div data-targets="command-palette-page-stack.localOcticons" data-octicon-id="dash-color-fg-muted">
<svg height="16" class="octicon octicon-dash color-fg-muted" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M2 7.75A.75.75 0 012.75 7h10a.75.75 0 010 1.5h-10A.75.75 0 012 7.75z"></path></svg>
</div>
<div data-targets="command-palette-page-stack.localOcticons" data-octicon-id="file-color-fg-muted">
<svg height="16" class="octicon octicon-file color-fg-muted" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M3.75 1.5a.25.25 0 00-.25.25v12.5c0 .138.112.25.25.25h9.5a.25.25 0 00.25-.25V6h-2.75A1.75 1.75 0 019 4.25V1.5H3.75zm6.75.062V4.25c0 .138.112.25.25.25h2.688a.252.252 0 00-.011-.013l-2.914-2.914a.272.272 0 00-.013-.011zM2 1.75C2 .784 2.784 0 3.75 0h6.586c.464 0 .909.184 1.237.513l2.914 2.914c.329.328.513.773.513 1.237v9.586A1.75 1.75 0 0113.25 16h-9.5A1.75 1.75 0 012 14.25V1.75z"></path></svg>
</div>
<div data-targets="command-palette-page-stack.localOcticons" data-octicon-id="gear-color-fg-muted">
<svg height="16" class="octicon octicon-gear color-fg-muted" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.429 1.525a6.593 6.593 0 011.142 0c.036.003.108.036.137.146l.289 1.105c.147.56.55.967.997 1.189.174.086.341.183.501.29.417.278.97.423 1.53.27l1.102-.303c.11-.03.175.016.195.046.219.31.41.641.573.989.014.031.022.11-.059.19l-.815.806c-.411.406-.562.957-.53 1.456a4.588 4.588 0 010 .582c-.032.499.119 1.05.53 1.456l.815.806c.08.08.073.159.059.19a6.494 6.494 0 01-.573.99c-.02.029-.086.074-.195.045l-1.103-.303c-.559-.153-1.112-.008-1.529.27-.16.107-.327.204-.5.29-.449.222-.851.628-.998 1.189l-.289 1.105c-.029.11-.101.143-.137.146a6.613 6.613 0 01-1.142 0c-.036-.003-.108-.037-.137-.146l-.289-1.105c-.147-.56-.55-.967-.997-1.189a4.502 4.502 0 01-.501-.29c-.417-.278-.97-.423-1.53-.27l-1.102.303c-.11.03-.175-.016-.195-.046a6.492 6.492 0 01-.573-.989c-.014-.031-.022-.11.059-.19l.815-.806c.411-.406.562-.957.53-1.456a4.587 4.587 0 010-.582c.032-.499-.119-1.05-.53-1.456l-.815-.806c-.08-.08-.073-.159-.059-.19a6.44 6.44 0 01.573-.99c.02-.029.086-.075.195-.045l1.103.303c.559.153 1.112.008 1.529-.27.16-.107.327-.204.5-.29.449-.222.851-.628.998-1.189l.289-1.105c.029-.11.101-.143.137-.146zM8 0c-.236 0-.47.01-.701.03-.743.065-1.29.615-1.458 1.261l-.29 1.106c-.017.066-.078.158-.211.224a5.994 5.994 0 00-.668.386c-.123.082-.233.09-.3.071L3.27 2.776c-.644-.177-1.392.02-1.82.63a7.977 7.977 0 00-.704 1.217c-.315.675-.111 1.422.363 1.891l.815.806c.05.048.098.147.088.294a6.084 6.084 0 000 .772c.01.147-.038.246-.088.294l-.815.806c-.474.469-.678 1.216-.363 1.891.2.428.436.835.704 1.218.428.609 1.176.806 1.82.63l1.103-.303c.066-.019.176-.011.299.071.213.143.436.272.668.386.133.066.194.158.212.224l.289 1.106c.169.646.715 1.196 1.458 1.26a8.094 8.094 0 001.402 0c.743-.064 1.29-.614 1.458-1.26l.29-1.106c.017-.066.078-.158.211-.224a5.98 5.98 0 00.668-.386c.123-.082.233-.09.3-.071l1.102.302c.644.177 1.392-.02 1.82-.63.268-.382.505-.789.704-1.217.315-.675.111-1.422-.364-1.891l-.814-.806c-.05-.048-.098-.147-.088-.294a6.1 6.1 0 000-.772c-.01-.147.039-.246.088-.294l.814-.806c.475-.469.679-1.216.364-1.891a7.992 7.992 0 00-.704-1.218c-.428-.609-1.176-.806-1.82-.63l-1.103.303c-.066.019-.176.011-.299-.071a5.991 5.991 0 00-.668-.386c-.133-.066-.194-.158-.212-.224L10.16 1.29C9.99.645 9.444.095 8.701.031A8.094 8.094 0 008 0zm1.5 8a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zM11 8a3 3 0 11-6 0 3 3 0 016 0z"></path></svg>
</div>
<div data-targets="command-palette-page-stack.localOcticons" data-octicon-id="lock-color-fg-muted">
<svg height="16" class="octicon octicon-lock color-fg-muted" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 4v2h-.25A1.75 1.75 0 002 7.75v5.5c0 .966.784 1.75 1.75 1.75h8.5A1.75 1.75 0 0014 13.25v-5.5A1.75 1.75 0 0012.25 6H12V4a4 4 0 10-8 0zm6.5 2V4a2.5 2.5 0 00-5 0v2h5zM12 7.5h.25a.25.25 0 01.25.25v5.5a.25.25 0 01-.25.25h-8.5a.25.25 0 01-.25-.25v-5.5a.25.25 0 01.25-.25H12z"></path></svg>
</div>
<div data-targets="command-palette-page-stack.localOcticons" data-octicon-id="moon-color-fg-muted">
<svg height="16" class="octicon octicon-moon color-fg-muted" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M9.598 1.591a.75.75 0 01.785-.175 7 7 0 11-8.967 8.967.75.75 0 01.961-.96 5.5 5.5 0 007.046-7.046.75.75 0 01.175-.786zm1.616 1.945a7 7 0 01-7.678 7.678 5.5 5.5 0 107.678-7.678z"></path></svg>
</div>
<div data-targets="command-palette-page-stack.localOcticons" data-octicon-id="person-color-fg-muted">
<svg height="16" class="octicon octicon-person color-fg-muted" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M10.5 5a2.5 2.5 0 11-5 0 2.5 2.5 0 015 0zm.061 3.073a4 4 0 10-5.123 0 6.004 6.004 0 00-3.431 5.142.75.75 0 001.498.07 4.5 4.5 0 018.99 0 .75.75 0 101.498-.07 6.005 6.005 0 00-3.432-5.142z"></path></svg>
</div>
<div data-targets="command-palette-page-stack.localOcticons" data-octicon-id="pencil-color-fg-muted">
<svg height="16" class="octicon octicon-pencil color-fg-muted" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M11.013 1.427a1.75 1.75 0 012.474 0l1.086 1.086a1.75 1.75 0 010 2.474l-8.61 8.61c-.21.21-.47.364-.756.445l-3.251.93a.75.75 0 01-.927-.928l.929-3.25a1.75 1.75 0 01.445-.758l8.61-8.61zm1.414 1.06a.25.25 0 00-.354 0L10.811 3.75l1.439 1.44 1.263-1.263a.25.25 0 000-.354l-1.086-1.086zM11.189 6.25L9.75 4.81l-6.286 6.287a.25.25 0 00-.064.108l-.558 1.953 1.953-.558a.249.249 0 00.108-.064l6.286-6.286z"></path></svg>
</div>
<div data-targets="command-palette-page-stack.localOcticons" data-octicon-id="issue-opened-open">
<svg height="16" class="octicon octicon-issue-opened open" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path d="M8 9.5a1.5 1.5 0 100-3 1.5 1.5 0 000 3z"></path><path fill-rule="evenodd" d="M8 0a8 8 0 100 16A8 8 0 008 0zM1.5 8a6.5 6.5 0 1113 0 6.5 6.5 0 01-13 0z"></path></svg>
</div>
<div data-targets="command-palette-page-stack.localOcticons" data-octicon-id="git-pull-request-draft-color-fg-muted">
<svg height="16" class="octicon octicon-git-pull-request-draft color-fg-muted" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M2.5 3.25a.75.75 0 111.5 0 .75.75 0 01-1.5 0zM3.25 1a2.25 2.25 0 00-.75 4.372v5.256a2.251 2.251 0 101.5 0V5.372A2.25 2.25 0 003.25 1zm0 11a.75.75 0 100 1.5.75.75 0 000-1.5zm9.5 3a2.25 2.25 0 100-4.5 2.25 2.25 0 000 4.5zm0-3a.75.75 0 100 1.5.75.75 0 000-1.5z"></path><path d="M14 7.5a1.25 1.25 0 11-2.5 0 1.25 1.25 0 012.5 0zm0-4.25a1.25 1.25 0 11-2.5 0 1.25 1.25 0 012.5 0z"></path></svg>
</div>
<div data-targets="command-palette-page-stack.localOcticons" data-octicon-id="search-color-fg-muted">
<svg height="16" class="octicon octicon-search color-fg-muted" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M11.5 7a4.499 4.499 0 11-8.998 0A4.499 4.499 0 0111.5 7zm-.82 4.74a6 6 0 111.06-1.06l3.04 3.04a.75.75 0 11-1.06 1.06l-3.04-3.04z"></path></svg>
</div>
<div data-targets="command-palette-page-stack.localOcticons" data-octicon-id="sun-color-fg-muted">
<svg height="16" class="octicon octicon-sun color-fg-muted" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M8 10.5a2.5 2.5 0 100-5 2.5 2.5 0 000 5zM8 12a4 4 0 100-8 4 4 0 000 8zM8 0a.75.75 0 01.75.75v1.5a.75.75 0 01-1.5 0V.75A.75.75 0 018 0zm0 13a.75.75 0 01.75.75v1.5a.75.75 0 01-1.5 0v-1.5A.75.75 0 018 13zM2.343 2.343a.75.75 0 011.061 0l1.06 1.061a.75.75 0 01-1.06 1.06l-1.06-1.06a.75.75 0 010-1.06zm9.193 9.193a.75.75 0 011.06 0l1.061 1.06a.75.75 0 01-1.06 1.061l-1.061-1.06a.75.75 0 010-1.061zM16 8a.75.75 0 01-.75.75h-1.5a.75.75 0 010-1.5h1.5A.75.75 0 0116 8zM3 8a.75.75 0 01-.75.75H.75a.75.75 0 010-1.5h1.5A.75.75 0 013 8zm10.657-5.657a.75.75 0 010 1.061l-1.061 1.06a.75.75 0 11-1.06-1.06l1.06-1.06a.75.75 0 011.06 0zm-9.193 9.193a.75.75 0 010 1.06l-1.06 1.061a.75.75 0 11-1.061-1.06l1.06-1.061a.75.75 0 011.061 0z"></path></svg>
</div>
<div data-targets="command-palette-page-stack.localOcticons" data-octicon-id="sync-color-fg-muted">
<svg height="16" class="octicon octicon-sync color-fg-muted" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M8 2.5a5.487 5.487 0 00-4.131 1.869l1.204 1.204A.25.25 0 014.896 6H1.25A.25.25 0 011 5.75V2.104a.25.25 0 01.427-.177l1.38 1.38A7.001 7.001 0 0114.95 7.16a.75.75 0 11-1.49.178A5.501 5.501 0 008 2.5zM1.705 8.005a.75.75 0 01.834.656 5.501 5.501 0 009.592 2.97l-1.204-1.204a.25.25 0 01.177-.427h3.646a.25.25 0 01.25.25v3.646a.25.25 0 01-.427.177l-1.38-1.38A7.001 7.001 0 011.05 8.84a.75.75 0 01.656-.834z"></path></svg>
</div>
<div data-targets="command-palette-page-stack.localOcticons" data-octicon-id="trash-color-fg-muted">
<svg height="16" class="octicon octicon-trash color-fg-muted" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M6.5 1.75a.25.25 0 01.25-.25h2.5a.25.25 0 01.25.25V3h-3V1.75zm4.5 0V3h2.25a.75.75 0 010 1.5H2.75a.75.75 0 010-1.5H5V1.75C5 .784 5.784 0 6.75 0h2.5C10.216 0 11 .784 11 1.75zM4.496 6.675a.75.75 0 10-1.492.15l.66 6.6A1.75 1.75 0 005.405 15h5.19c.9 0 1.652-.681 1.741-1.576l.66-6.6a.75.75 0 00-1.492-.149l-.66 6.6a.25.25 0 01-.249.225h-5.19a.25.25 0 01-.249-.225l-.66-6.6z"></path></svg>
</div>
<div data-targets="command-palette-page-stack.localOcticons" data-octicon-id="key-color-fg-muted">
<svg height="16" class="octicon octicon-key color-fg-muted" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M6.5 5.5a4 4 0 112.731 3.795.75.75 0 00-.768.18L7.44 10.5H6.25a.75.75 0 00-.75.75v1.19l-.06.06H4.25a.75.75 0 00-.75.75v1.19l-.06.06H1.75a.25.25 0 01-.25-.25v-1.69l5.024-5.023a.75.75 0 00.181-.768A3.995 3.995 0 016.5 5.5zm4-5.5a5.5 5.5 0 00-5.348 6.788L.22 11.72a.75.75 0 00-.22.53v2C0 15.216.784 16 1.75 16h2a.75.75 0 00.53-.22l.5-.5a.75.75 0 00.22-.53V14h.75a.75.75 0 00.53-.22l.5-.5a.75.75 0 00.22-.53V12h.75a.75.75 0 00.53-.22l.932-.932A5.5 5.5 0 1010.5 0zm.5 6a1 1 0 100-2 1 1 0 000 2z"></path></svg>
</div>
<div data-targets="command-palette-page-stack.localOcticons" data-octicon-id="comment-discussion-color-fg-muted">
<svg height="16" class="octicon octicon-comment-discussion color-fg-muted" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M1.5 2.75a.25.25 0 01.25-.25h8.5a.25.25 0 01.25.25v5.5a.25.25 0 01-.25.25h-3.5a.75.75 0 00-.53.22L3.5 11.44V9.25a.75.75 0 00-.75-.75h-1a.25.25 0 01-.25-.25v-5.5zM1.75 1A1.75 1.75 0 000 2.75v5.5C0 9.216.784 10 1.75 10H2v1.543a1.457 1.457 0 002.487 1.03L7.061 10h3.189A1.75 1.75 0 0012 8.25v-5.5A1.75 1.75 0 0010.25 1h-8.5zM14.5 4.75a.25.25 0 00-.25-.25h-.5a.75.75 0 110-1.5h.5c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0114.25 12H14v1.543a1.457 1.457 0 01-2.487 1.03L9.22 12.28a.75.75 0 111.06-1.06l2.22 2.22v-2.19a.75.75 0 01.75-.75h1a.25.25 0 00.25-.25v-5.5z"></path></svg>
</div>
<div data-targets="command-palette-page-stack.localOcticons" data-octicon-id="bell-color-fg-muted">
<svg height="16" class="octicon octicon-bell color-fg-muted" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path d="M8 16a2 2 0 001.985-1.75c.017-.137-.097-.25-.235-.25h-3.5c-.138 0-.252.113-.235.25A2 2 0 008 16z"></path><path fill-rule="evenodd" d="M8 1.5A3.5 3.5 0 004.5 5v2.947c0 .346-.102.683-.294.97l-1.703 2.556a.018.018 0 00-.003.01l.001.006c0 .002.002.004.004.006a.017.017 0 00.006.004l.007.001h10.964l.007-.001a.016.016 0 00.006-.004.016.016 0 00.004-.006l.001-.007a.017.017 0 00-.003-.01l-1.703-2.554a1.75 1.75 0 01-.294-.97V5A3.5 3.5 0 008 1.5zM3 5a5 5 0 0110 0v2.947c0 .05.015.098.042.139l1.703 2.555A1.518 1.518 0 0113.482 13H2.518a1.518 1.518 0 01-1.263-2.36l1.703-2.554A.25.25 0 003 7.947V5z"></path></svg>
</div>
<div data-targets="command-palette-page-stack.localOcticons" data-octicon-id="bell-slash-color-fg-muted">
<svg height="16" class="octicon octicon-bell-slash color-fg-muted" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M8 1.5c-.997 0-1.895.416-2.534 1.086A.75.75 0 014.38 1.55 5 5 0 0113 5v2.373a.75.75 0 01-1.5 0V5A3.5 3.5 0 008 1.5zM4.182 4.31L1.19 2.143a.75.75 0 10-.88 1.214L3 5.305v2.642a.25.25 0 01-.042.139L1.255 10.64A1.518 1.518 0 002.518 13h11.108l1.184.857a.75.75 0 10.88-1.214l-1.375-.996a1.196 1.196 0 00-.013-.01L4.198 4.321a.733.733 0 00-.016-.011zm7.373 7.19L4.5 6.391v1.556c0 .346-.102.683-.294.97l-1.703 2.556a.018.018 0 00-.003.01.015.015 0 00.005.012.017.017 0 00.006.004l.007.001h9.037zM8 16a2 2 0 001.985-1.75c.017-.137-.097-.25-.235-.25h-3.5c-.138 0-.252.113-.235.25A2 2 0 008 16z"></path></svg>
</div>
<div data-targets="command-palette-page-stack.localOcticons" data-octicon-id="paintbrush-color-fg-muted">
<svg height="16" class="octicon octicon-paintbrush color-fg-muted" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M11.134 1.535C9.722 2.562 8.16 4.057 6.889 5.312 5.8 6.387 5.041 7.401 4.575 8.294a3.745 3.745 0 00-3.227 1.054c-.43.431-.69 1.066-.86 1.657a11.982 11.982 0 00-.358 1.914A21.263 21.263 0 000 15.203v.054l.75-.007-.007.75h.054a14.404 14.404 0 00.654-.012 21.243 21.243 0 001.63-.118c.62-.07 1.3-.18 1.914-.357.592-.17 1.226-.43 1.657-.861a3.745 3.745 0 001.055-3.217c.908-.461 1.942-1.216 3.04-2.3 1.279-1.262 2.764-2.825 3.775-4.249.501-.706.923-1.428 1.125-2.096.2-.659.235-1.469-.368-2.07-.606-.607-1.42-.55-2.069-.34-.66.213-1.376.646-2.076 1.155zm-3.95 8.48a3.76 3.76 0 00-1.19-1.192 9.758 9.758 0 011.161-1.607l1.658 1.658a9.853 9.853 0 01-1.63 1.142zM.742 16l.007-.75-.75.008A.75.75 0 00.743 16zM12.016 2.749c-1.224.89-2.605 2.189-3.822 3.384l1.718 1.718c1.21-1.205 2.51-2.597 3.387-3.833.47-.662.78-1.227.912-1.662.134-.444.032-.551.009-.575h-.001V1.78c-.014-.014-.112-.113-.548.027-.432.14-.995.462-1.655.942zM1.62 13.089a19.56 19.56 0 00-.104 1.395 19.55 19.55 0 001.396-.104 10.528 10.528 0 001.668-.309c.526-.151.856-.325 1.011-.48a2.25 2.25 0 00-3.182-3.182c-.155.155-.329.485-.48 1.01a10.515 10.515 0 00-.309 1.67z"></path></svg>
</div>
<command-palette-item-group
data-group-id="top"
data-group-title="Top result"
data-group-hint=""
data-group-limits="{}"
data-default-priority="0"
>
</command-palette-item-group>
<command-palette-item-group
data-group-id="commands"
data-group-title="Commands"
data-group-hint="Type > to filter"
data-group-limits="{"static_items_page":50,"issue":50,"pull_request":50,"discussion":50}"
data-default-priority="1"
>
</command-palette-item-group>
<command-palette-item-group
data-group-id="global_commands"
data-group-title="Global Commands"
data-group-hint="Type > to filter"
data-group-limits="{"issue":0,"pull_request":0,"discussion":0}"
data-default-priority="2"
>
</command-palette-item-group>
<command-palette-item-group
data-group-id="this_page"
data-group-title="This Page"
data-group-hint=""
data-group-limits="{}"
data-default-priority="3"
>
</command-palette-item-group>
<command-palette-item-group
data-group-id="files"
data-group-title="Files"
data-group-hint=""
data-group-limits="{}"
data-default-priority="4"
>
</command-palette-item-group>
<command-palette-item-group
data-group-id="default"
data-group-title="Default"
data-group-hint=""
data-group-limits="{"static_items_page":50}"
data-default-priority="5"
>
</command-palette-item-group>
<command-palette-item-group
data-group-id="pages"
data-group-title="Pages"
data-group-hint=""
data-group-limits="{"repository":10}"
data-default-priority="6"
>
</command-palette-item-group>
<command-palette-item-group
data-group-id="access_policies"
data-group-title="Access Policies"
data-group-hint=""
data-group-limits="{}"
data-default-priority="7"
>
</command-palette-item-group>
<command-palette-item-group
data-group-id="organizations"
data-group-title="Organizations"
data-group-hint=""
data-group-limits="{}"
data-default-priority="8"
>
</command-palette-item-group>
<command-palette-item-group
data-group-id="repositories"
data-group-title="Repositories"
data-group-hint=""
data-group-limits="{}"
data-default-priority="9"
>
</command-palette-item-group>
<command-palette-item-group
data-group-id="references"
data-group-title="Issues, pull requests, and discussions"
data-group-hint="Type # to filter"
data-group-limits="{}"
data-default-priority="10"
>
</command-palette-item-group>
<command-palette-item-group
data-group-id="teams"
data-group-title="Teams"
data-group-hint=""
data-group-limits="{}"
data-default-priority="11"
>
</command-palette-item-group>
<command-palette-item-group
data-group-id="users"
data-group-title="Users"
data-group-hint=""
data-group-limits="{}"
data-default-priority="12"
>
</command-palette-item-group>
<command-palette-item-group
data-group-id="projects"
data-group-title="Projects"
data-group-hint=""
data-group-limits="{}"
data-default-priority="13"
>
</command-palette-item-group>
<command-palette-item-group
data-group-id="footer"
data-group-title="Footer"
data-group-hint=""
data-group-limits="{}"
data-default-priority="14"
>
</command-palette-item-group>
<command-palette-item-group
data-group-id="modes_help"
data-group-title="Modes"
data-group-hint=""
data-group-limits="{}"
data-default-priority="15"
>
</command-palette-item-group>
<command-palette-item-group
data-group-id="filters_help"
data-group-title="Use filters in issues, pull requests, discussions, and projects"
data-group-hint=""
data-group-limits="{}"
data-default-priority="16"
>
</command-palette-item-group>
<command-palette-page
data-page-title="MTG"
data-scope-id="MDEyOk9yZ2FuaXphdGlvbjI3Mjg5Mzg="
data-scope-type="owner"
data-targets="command-palette-page-stack.defaultPages"
hidden
>
</command-palette-page>
<command-palette-page
data-page-title="sms-tools"
data-scope-id="MDEwOlJlcG9zaXRvcnkxMTY4OTA3Nw=="
data-scope-type="repository"
data-targets="command-palette-page-stack.defaultPages"
hidden
>
</command-palette-page>
</div>
<command-palette-page data-is-root>
</command-palette-page>
<command-palette-page
data-page-title="MTG"
data-scope-id="MDEyOk9yZ2FuaXphdGlvbjI3Mjg5Mzg="
data-scope-type="owner"
>
</command-palette-page>
<command-palette-page
data-page-title="sms-tools"
data-scope-id="MDEwOlJlcG9zaXRvcnkxMTY4OTA3Nw=="
data-scope-type="repository"
>
</command-palette-page>
</command-palette-page-stack>
<server-defined-provider data-type="search-links" data-targets="command-palette.serverDefinedProviderElements"></server-defined-provider>
<server-defined-provider data-type="help" data-targets="command-palette.serverDefinedProviderElements">
<command-palette-help
data-group="modes_help"
data-prefix="#"
data-scope-types="[""]"
>
<span data-target="command-palette-help.titleElement">Search for <strong>issues</strong> and <strong>pull requests</strong></span>
<span data-target="command-palette-help.hintElement">
<kbd class="hx_kbd">#</kbd>
</span>
</command-palette-help>
<command-palette-help
data-group="modes_help"
data-prefix="#"
data-scope-types="["owner","repository"]"
>
<span data-target="command-palette-help.titleElement">Search for <strong>issues, pull requests, discussions,</strong> and <strong>projects</strong></span>
<span data-target="command-palette-help.hintElement">
<kbd class="hx_kbd">#</kbd>
</span>
</command-palette-help>
<command-palette-help
data-group="modes_help"
data-prefix="@"
data-scope-types="[""]"
>
<span data-target="command-palette-help.titleElement">Search for <strong>organizations, repositories,</strong> and <strong>users</strong></span>
<span data-target="command-palette-help.hintElement">
<kbd class="hx_kbd">@</kbd>
</span>
</command-palette-help>
<command-palette-help
data-group="modes_help"
data-prefix="!"
data-scope-types="["owner","repository"]"
>
<span data-target="command-palette-help.titleElement">Search for <strong>projects</strong></span>
<span data-target="command-palette-help.hintElement">
<kbd class="hx_kbd">!</kbd>
</span>
</command-palette-help>
<command-palette-help
data-group="modes_help"
data-prefix="/"
data-scope-types="["repository"]"
>
<span data-target="command-palette-help.titleElement">Search for <strong>files</strong></span>
<span data-target="command-palette-help.hintElement">
<kbd class="hx_kbd">/</kbd>
</span>
</command-palette-help>
<command-palette-help
data-group="modes_help"
data-prefix=">"
>
<span data-target="command-palette-help.titleElement">Activate <strong>command mode</strong></span>
<span data-target="command-palette-help.hintElement">
<kbd class="hx_kbd">></kbd>
</span>
</command-palette-help>
<command-palette-help
data-group="filters_help"
data-prefix="# author:@me"
>
<span data-target="command-palette-help.titleElement">Search your issues, pull requests, and discussions</span>
<span data-target="command-palette-help.hintElement">
<kbd class="hx_kbd"># author:@me</kbd>
</span>
</command-palette-help>
<command-palette-help
data-group="filters_help"
data-prefix="# author:@me"
>
<span data-target="command-palette-help.titleElement">Search your issues, pull requests, and discussions</span>
<span data-target="command-palette-help.hintElement">
<kbd class="hx_kbd"># author:@me</kbd>
</span>
</command-palette-help>
<command-palette-help
data-group="filters_help"
data-prefix="# is:pr"
>
<span data-target="command-palette-help.titleElement">Filter to pull requests</span>
<span data-target="command-palette-help.hintElement">
<kbd class="hx_kbd"># is:pr</kbd>
</span>
</command-palette-help>
<command-palette-help
data-group="filters_help"
data-prefix="# is:issue"
>
<span data-target="command-palette-help.titleElement">Filter to issues</span>
<span data-target="command-palette-help.hintElement">
<kbd class="hx_kbd"># is:issue</kbd>
</span>
</command-palette-help>
<command-palette-help
data-group="filters_help"
data-prefix="# is:discussion"
data-scope-types="["owner","repository"]"
>
<span data-target="command-palette-help.titleElement">Filter to discussions</span>
<span data-target="command-palette-help.hintElement">
<kbd class="hx_kbd"># is:discussion</kbd>
</span>
</command-palette-help>
<command-palette-help
data-group="filters_help"
data-prefix="# is:project"
data-scope-types="["owner","repository"]"
>
<span data-target="command-palette-help.titleElement">Filter to projects</span>
<span data-target="command-palette-help.hintElement">
<kbd class="hx_kbd"># is:project</kbd>
</span>
</command-palette-help>
<command-palette-help
data-group="filters_help"
data-prefix="# is:open"
>
<span data-target="command-palette-help.titleElement">Filter to open issues, pull requests, and discussions</span>
<span data-target="command-palette-help.hintElement">
<kbd class="hx_kbd"># is:open</kbd>
</span>
</command-palette-help>
</server-defined-provider>
<server-defined-provider
data-type="commands"
data-fetch-debounce="0"
data-src="/command_palette/commands"
data-supported-modes="[]"
data-supports-commands
data-targets="command-palette.serverDefinedProviderElements"
></server-defined-provider>
<server-defined-provider
data-type="prefetched"
data-fetch-debounce="0"
data-src="/command_palette/jump_to_page_navigation"
data-supported-modes="[""]"
data-supported-scope-types="["","owner","repository"]"
data-targets="command-palette.serverDefinedProviderElements"
></server-defined-provider>
<server-defined-provider
data-type="remote"
data-fetch-debounce="200"
data-src="/command_palette/issues"
data-supported-modes="["#","#"]"
data-supported-scope-types="["owner","repository",""]"
data-targets="command-palette.serverDefinedProviderElements"
></server-defined-provider>
<server-defined-provider
data-type="remote"
data-fetch-debounce="200"
data-src="/command_palette/jump_to"
data-supported-modes="["@","@"]"
data-supported-scope-types="["","owner"]"
data-targets="command-palette.serverDefinedProviderElements"
></server-defined-provider>
<server-defined-provider
data-type="remote"
data-fetch-debounce="200"
data-src="/command_palette/jump_to_members_only"
data-supported-modes="["@","@","",""]"
data-supported-scope-types="["","owner"]"
data-targets="command-palette.serverDefinedProviderElements"
></server-defined-provider>
<server-defined-provider
data-type="prefetched"
data-fetch-debounce="0"
data-src="/command_palette/jump_to_members_only_prefetched"
data-supported-modes="["@","@","",""]"
data-supported-scope-types="["","owner"]"
data-targets="command-palette.serverDefinedProviderElements"
></server-defined-provider>
<server-defined-provider
data-type="files"
data-fetch-debounce="0"
data-src="/command_palette/files"
data-supported-modes="["/"]"
data-supported-scope-types="["repository"]"
data-targets="command-palette.serverDefinedProviderElements"
></server-defined-provider>
<server-defined-provider
data-type="remote"
data-fetch-debounce="200"
data-src="/command_palette/discussions"
data-supported-modes="["#"]"
data-supported-scope-types="["owner","repository"]"
data-targets="command-palette.serverDefinedProviderElements"
></server-defined-provider>
<server-defined-provider
data-type="remote"
data-fetch-debounce="200"
data-src="/command_palette/projects"
data-supported-modes="["#","!"]"
data-supported-scope-types="["owner","repository"]"
data-targets="command-palette.serverDefinedProviderElements"
></server-defined-provider>
<server-defined-provider
data-type="prefetched"
data-fetch-debounce="0"
data-src="/command_palette/recent_issues"
data-supported-modes="["#","#"]"
data-supported-scope-types="["owner","repository",""]"
data-targets="command-palette.serverDefinedProviderElements"
></server-defined-provider>
<server-defined-provider
data-type="remote"
data-fetch-debounce="200"
data-src="/command_palette/teams"
data-supported-modes="["@",""]"
data-supported-scope-types="["owner"]"
data-targets="command-palette.serverDefinedProviderElements"
></server-defined-provider>
<server-defined-provider
data-type="remote"
data-fetch-debounce="200"
data-src="/command_palette/name_with_owner_repository"
data-supported-modes="["@","@","",""]"
data-supported-scope-types="["","owner"]"
data-targets="command-palette.serverDefinedProviderElements"
></server-defined-provider>
</command-palette>
<div id="repository-container-header" class="pt-3 hide-full-screen" style="background-color: var(--color-page-header-bg);" data-turbo-replace>
<div class="d-flex flex-wrap flex-justify-end mb-3 px-3 px-md-4 px-lg-5" style="gap: 1rem;">
<div class="flex-auto min-width-0 width-fit mr-3">
<div class=" d-flex flex-wrap flex-items-center wb-break-word f3 text-normal">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo color-fg-muted mr-2">
<path fill-rule="evenodd" d="M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z"></path>
Public
</div>
<ul class="pagehead-actions flex-shrink-0 d-none d-md-inline" style="padding: 2px 0;">
<summary data-hydro-click="{"event_type":"repository.click","payload":{"target":"WATCH_BUTTON","repository_id":11689077,"originating_url":"https://github.com/MTG/sms-tools/blob/master/README.md","user_id":7453429}}" data-hydro-click-hmac="9f71b2d2028e792136bec443cb89053ae2ba05f1939d879353a3ceb9ea478dff" data-ga-click="Repository, click Watch settings, action:blob#show" aria-label="Notification settings" data-view-component="true" class="btn-sm btn"> <span data-menu-button>
<span
hidden
data-target="notifications-list-subscription-form.unwatchButtonCopy"
>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-eye">
<path fill-rule="evenodd" d="M1.679 7.932c.412-.621 1.242-1.75 2.366-2.717C5.175 4.242 6.527 3.5 8 3.5c1.473 0 2.824.742 3.955 1.715 1.124.967 1.954 2.096 2.366 2.717a.119.119 0 010 .136c-.412.621-1.242 1.75-2.366 2.717C10.825 11.758 9.473 12.5 8 12.5c-1.473 0-2.824-.742-3.955-1.715C2.92 9.818 2.09 8.69 1.679 8.068a.119.119 0 010-.136zM8 2c-1.981 0-3.67.992-4.933 2.078C1.797 5.169.88 6.423.43 7.1a1.619 1.619 0 000 1.798c.45.678 1.367 1.932 2.637 3.024C4.329 13.008 6.019 14 8 14c1.981 0 3.67-.992 4.933-2.078 1.27-1.091 2.187-2.345 2.637-3.023a1.619 1.619 0 000-1.798c-.45-.678-1.367-1.932-2.637-3.023C11.671 2.992 9.981 2 8 2zm0 8a2 2 0 100-4 2 2 0 000 4z"></path>
data-target="notifications-list-subscription-form.stopIgnoringButtonCopy"
>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-bell-slash">
<path fill-rule="evenodd" d="M8 1.5c-.997 0-1.895.416-2.534 1.086A.75.75 0 014.38 1.55 5 5 0 0113 5v2.373a.75.75 0 01-1.5 0V5A3.5 3.5 0 008 1.5zM4.182 4.31L1.19 2.143a.75.75 0 10-.88 1.214L3 5.305v2.642a.25.25 0 01-.042.139L1.255 10.64A1.518 1.518 0 002.518 13h11.108l1.184.857a.75.75 0 10.88-1.214l-1.375-.996a1.196 1.196 0 00-.013-.01L4.198 4.321a.733.733 0 00-.016-.011zm7.373 7.19L4.5 6.391v1.556c0 .346-.102.683-.294.97l-1.703 2.556a.018.018 0 00-.003.01.015.015 0 00.005.012.017.017 0 00.006.004l.007.001h9.037zM8 16a2 2 0 001.985-1.75c.017-.137-.097-.25-.235-.25h-3.5c-.138 0-.252.113-.235.25A2 2 0 008 16z"></path>
Stop ignoring
data-target="notifications-list-subscription-form.watchButtonCopy"
>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-eye">
<path fill-rule="evenodd" d="M1.679 7.932c.412-.621 1.242-1.75 2.366-2.717C5.175 4.242 6.527 3.5 8 3.5c1.473 0 2.824.742 3.955 1.715 1.124.967 1.954 2.096 2.366 2.717a.119.119 0 010 .136c-.412.621-1.242 1.75-2.366 2.717C10.825 11.758 9.473 12.5 8 12.5c-1.473 0-2.824-.742-3.955-1.715C2.92 9.818 2.09 8.69 1.679 8.068a.119.119 0 010-.136zM8 2c-1.981 0-3.67.992-4.933 2.078C1.797 5.169.88 6.423.43 7.1a1.619 1.619 0 000 1.798c.45.678 1.367 1.932 2.637 3.024C4.329 13.008 6.019 14 8 14c1.981 0 3.67-.992 4.933-2.078 1.27-1.091 2.187-2.345 2.637-3.023a1.619 1.619 0 000-1.798c-.45-.678-1.367-1.932-2.637-3.023C11.671 2.992 9.981 2 8 2zm0 8a2 2 0 100-4 2 2 0 000 4z"></path>
Watch
155
>
<div class="SelectMenu-modal notifications-component-menu-modal">
<header class="SelectMenu-header">
<h3 class="SelectMenu-title">Notifications</h3>
<button class="SelectMenu-closeButton" type="button" aria-label="Close menu" data-action="click:notifications-list-subscription-form#closeMenu">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x">
<path fill-rule="evenodd" d="M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z"></path>
<div class="SelectMenu-list">
<form data-target="notifications-list-subscription-form.form" data-action="submit:notifications-list-subscription-form#submitForm" data-turbo="false" action="/notifications/subscribe" accept-charset="UTF-8" method="post"><input type="hidden" name="authenticity_token" value="7n_Qma7aTMDUAMyPnY_lAYBmZCUUPENd8mDRdE2Qd3FxUwbE8AF5EvheLvQudH2jzJqPRmrlu-eTveSYpz1UQA" autocomplete="off" />
<input type="hidden" name="repository_id" value="11689077">
<button
type="submit"
name="do"
value="included"
class="SelectMenu-item flex-items-start"
role="menuitemradio"
aria-checked="true"
data-targets="notifications-list-subscription-form.subscriptionButtons"
>
<span class="f5">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check SelectMenu-icon SelectMenu-icon--check">
<path fill-rule="evenodd" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"></path>
<button
type="submit"
name="do"
value="subscribed"
class="SelectMenu-item flex-items-start"
role="menuitemradio"
aria-checked="false"
data-targets="notifications-list-subscription-form.subscriptionButtons"
>
<span class="f5">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check SelectMenu-icon SelectMenu-icon--check">
<path fill-rule="evenodd" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"></path>
<button
type="submit"
name="do"
value="ignore"
class="SelectMenu-item flex-items-start"
role="menuitemradio"
aria-checked="false"
data-targets="notifications-list-subscription-form.subscriptionButtons"
>
<span class="f5">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check SelectMenu-icon SelectMenu-icon--check">
<path fill-rule="evenodd" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"></path>
>
<span class="f5">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check SelectMenu-icon SelectMenu-icon--check">
<path fill-rule="evenodd" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"></path>
<div class="px-3 py-2 d-flex color-bg-subtle flex-items-center">
<span class="f5">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-device-mobile SelectMenu-icon SelectMenu-icon--device-mobile">
<path fill-rule="evenodd" d="M3.75 0A1.75 1.75 0 002 1.75v12.5c0 .966.784 1.75 1.75 1.75h8.5A1.75 1.75 0 0014 14.25V1.75A1.75 1.75 0 0012.25 0h-8.5zM3.5 1.75a.25.25 0 01.25-.25h8.5a.25.25 0 01.25.25v12.5a.25.25 0 01-.25.25h-8.5a.25.25 0 01-.25-.25V1.75zM8 13a1 1 0 100-2 1 1 0 000 2z"></path>
<details-dialog
class="notifications-component-dialog "
data-target="notifications-list-subscription-form.customDialog"
aria-label="Custom dialog"
hidden
>
<div class="SelectMenu-modal notifications-component-dialog-modal overflow-visible">
<form data-target="notifications-list-subscription-form.customform" data-action="submit:notifications-list-subscription-form#submitCustomForm" data-turbo="false" action="/notifications/subscribe" accept-charset="UTF-8" method="post"><input type="hidden" name="authenticity_token" value="f2HIcTgMwgAFPafy3wrCry89y1pIjenSBWnMlRlPTfDgTR4sZtf30iljRYls8VoNY8EgOTZUEWhktPl58-JuwQ" autocomplete="off" />
<input type="hidden" name="repository_id" value="11689077">
<header class="d-sm-none SelectMenu-header pb-0 border-bottom-0 px-2 px-sm-3">
<h1 class="f3 SelectMenu-title d-inline-flex">
<button
class="color-bg-default border-0 px-2 py-0 m-0 Link--secondary f5"
aria-label="Return to menu"
type="button"
data-action="click:notifications-list-subscription-form#closeCustomDialog"
>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-arrow-left">
<path fill-rule="evenodd" d="M7.78 12.53a.75.75 0 01-1.06 0L2.47 8.28a.75.75 0 010-1.06l4.25-4.25a.75.75 0 011.06 1.06L4.81 7h7.44a.75.75 0 010 1.5H4.81l2.97 2.97a.75.75 0 010 1.06z"></path>
<header class="d-none d-sm-flex flex-items-start pt-1">
<button
class="border-0 px-2 pt-1 m-0 Link--secondary f5"
style="background-color: transparent;"
aria-label="Return to menu"
type="button"
data-action="click:notifications-list-subscription-form#closeCustomDialog"
>
<svg style="position: relative; left: 2px; top: 1px" aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-arrow-left">
<path fill-rule="evenodd" d="M7.78 12.53a.75.75 0 01-1.06 0L2.47 8.28a.75.75 0 010-1.06l4.25-4.25a.75.75 0 011.06 1.06L4.81 7h7.44a.75.75 0 010 1.5H4.81l2.97 2.97a.75.75 0 010 1.06z"></path>
<h1 class="pt-1 pr-4 pb-0 pl-0 f5 text-bold">
Custom
</h1>
</header>
<fieldset>
<legend>
<div class="text-small color-fg-muted pt-0 pr-3 pb-3 pl-6 pl-sm-5 border-bottom mb-3">
Select events you want to be notified of in addition to participating and @mentions.
</div>
</legend>
<div data-target="notifications-list-subscription-form.labelInputs">
</div>
<div class="form-checkbox mr-3 ml-6 ml-sm-5 mb-2 mt-0">
<label class="f5 text-normal">
<input
type="checkbox"
name="thread_types[]"
value="Issue"
data-targets="notifications-list-subscription-form.threadTypeCheckboxes"
data-action="change:notifications-list-subscription-form#threadTypeCheckboxesUpdated"
>
Issues
</label>
</div>
<div class="form-checkbox mr-3 ml-6 ml-sm-5 mb-2 mt-0">
<label class="f5 text-normal">
<input
type="checkbox"
name="thread_types[]"
value="PullRequest"
data-targets="notifications-list-subscription-form.threadTypeCheckboxes"
data-action="change:notifications-list-subscription-form#threadTypeCheckboxesUpdated"
>
Pull requests
</label>
</div>
<div class="form-checkbox mr-3 ml-6 ml-sm-5 mb-2 mt-0">
<label class="f5 text-normal">
<input
type="checkbox"
name="thread_types[]"
value="Release"
data-targets="notifications-list-subscription-form.threadTypeCheckboxes"
data-action="change:notifications-list-subscription-form#threadTypeCheckboxesUpdated"
>
Releases
</label>
</div>
<div class="form-checkbox mr-3 ml-6 ml-sm-5 mb-2 mt-0">
<label class="f5 text-normal">
<input
type="checkbox"
name="thread_types[]"
value="Discussion"
data-targets="notifications-list-subscription-form.threadTypeCheckboxes"
data-action="change:notifications-list-subscription-form#threadTypeCheckboxesUpdated"
>
Discussions
</label>
<span
class="tooltipped tooltipped-nw mr-2 p-1 float-right"
aria-label="Discussions are not enabled for this repo">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-info color-fg-muted">
<path fill-rule="evenodd" d="M8 1.5a6.5 6.5 0 100 13 6.5 6.5 0 000-13zM0 8a8 8 0 1116 0A8 8 0 010 8zm6.5-.25A.75.75 0 017.25 7h1a.75.75 0 01.75.75v2.75h.25a.75.75 0 010 1.5h-2a.75.75 0 010-1.5h.25v-2h-.25a.75.75 0 01-.75-.75zM8 6a1 1 0 100-2 1 1 0 000 2z"></path>
>
Security alerts
</label>
</div>
</fieldset>
<div class="pt-2 pb-3 px-3 d-flex flex-justify-start flex-row-reverse">
<button name="do" value="custom" data-target="notifications-list-subscription-form.customSubmit" disabled="disabled" type="submit" data-view-component="true" class="btn-primary btn-sm btn ml-2"> Apply
<button data-action="click:notifications-list-subscription-form#resetForm" data-close-dialog="" type="button" data-view-component="true" class="btn-sm btn"> Cancel
<div class="notifications-component-dialog-overlay"></div>
</details>
</notifications-list-subscription-form>
This will remove {{ repoNameWithOwner }} from the {{ listsWithCount }} that it's been added to.
role="menu"
<div class="SelectMenu-modal">
<button class="SelectMenu-closeButton position-absolute right-0 m-2" type="button" aria-label="Close menu" data-toggle-for="details-3d60d4">
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x">
<path fill-rule="evenodd" d="M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z"></path>
</div>
<div id="responsive-meta-container" data-turbo-replace>
<nav data-pjax="#js-repo-pjax-container" aria-label="Repository" data-view-component="true" class="js-repo-nav js-sidenav-container-pjax js-responsive-underlinenav overflow-hidden UnderlineNav px-3 px-md-4 px-lg-5">
-
Code
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-code UnderlineNav-octicon d-none d-sm-inline"> <path fill-rule="evenodd" d="M4.72 3.22a.75.75 0 011.06 1.06L2.06 8l3.72 3.72a.75.75 0 11-1.06 1.06L.47 8.53a.75.75 0 010-1.06l4.25-4.25zm6.56 0a.75.75 0 10-1.06 1.06L13.94 8l-3.72 3.72a.75.75 0 101.06 1.06l4.25-4.25a.75.75 0 000-1.06l-4.25-4.25z"></path>
-
Issues 28
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-issue-opened UnderlineNav-octicon d-none d-sm-inline"> <path d="M8 9.5a1.5 1.5 0 100-3 1.5 1.5 0 000 3z"></path><path fill-rule="evenodd" d="M8 0a8 8 0 100 16A8 8 0 008 0zM1.5 8a6.5 6.5 0 1113 0 6.5 6.5 0 01-13 0z"></path>
-
Pull requests 1
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-git-pull-request UnderlineNav-octicon d-none d-sm-inline"> <path fill-rule="evenodd" d="M7.177 3.073L9.573.677A.25.25 0 0110 .854v4.792a.25.25 0 01-.427.177L7.177 3.427a.25.25 0 010-.354zM3.75 2.5a.75.75 0 100 1.5.75.75 0 000-1.5zm-2.25.75a2.25 2.25 0 113 2.122v5.256a2.251 2.251 0 11-1.5 0V5.372A2.25 2.25 0 011.5 3.25zM11 2.5h-1V4h1a1 1 0 011 1v5.628a2.251 2.251 0 101.5 0V5A2.5 2.5 0 0011 2.5zm1 10.25a.75.75 0 111.5 0 .75.75 0 01-1.5 0zM3.75 12a.75.75 0 100 1.5.75.75 0 000-1.5z"></path>
-
Actions
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-play UnderlineNav-octicon d-none d-sm-inline"> <path fill-rule="evenodd" d="M1.5 8a6.5 6.5 0 1113 0 6.5 6.5 0 01-13 0zM8 0a8 8 0 100 16A8 8 0 008 0zM6.379 5.227A.25.25 0 006 5.442v5.117a.25.25 0 00.379.214l4.264-2.559a.25.25 0 000-.428L6.379 5.227z"></path>
-
Projects 0
<svg aria-hidden="true" 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 fill-rule="evenodd" d="M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0114.25 16H1.75A1.75 1.75 0 010 14.25V1.75zM1.5 6.5v7.75c0 .138.112.25.25.25H5v-8H1.5zM5 5H1.5V1.75a.25.25 0 01.25-.25H5V5zm1.5 1.5v8h7.75a.25.25 0 00.25-.25V6.5h-8zm8-1.5h-8V1.5h7.75a.25.25 0 01.25.25V5z"></path>
-
Wiki
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-book UnderlineNav-octicon d-none d-sm-inline"> <path fill-rule="evenodd" d="M0 1.75A.75.75 0 01.75 1h4.253c1.227 0 2.317.59 3 1.501A3.744 3.744 0 0111.006 1h4.245a.75.75 0 01.75.75v10.5a.75.75 0 01-.75.75h-4.507a2.25 2.25 0 00-1.591.659l-.622.621a.75.75 0 01-1.06 0l-.622-.621A2.25 2.25 0 005.258 13H.75a.75.75 0 01-.75-.75V1.75zm8.755 3a2.25 2.25 0 012.25-2.25H14.5v9h-3.757c-.71 0-1.4.201-1.992.572l.004-7.322zm-1.504 7.324l.004-5.073-.002-2.253A2.25 2.25 0 005.003 2.5H1.5v9h3.757a3.75 3.75 0 011.994.574z"></path>
-
Security
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-shield UnderlineNav-octicon d-none d-sm-inline"> <path fill-rule="evenodd" d="M7.467.133a1.75 1.75 0 011.066 0l5.25 1.68A1.75 1.75 0 0115 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.7 1.7 0 01-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 011.217-1.667l5.25-1.68zm.61 1.429a.25.25 0 00-.153 0l-5.25 1.68a.25.25 0 00-.174.238V7c0 1.358.275 2.666 1.057 3.86.784 1.194 2.121 2.34 4.366 3.297a.2.2 0 00.154 0c2.245-.956 3.582-2.104 4.366-3.298C13.225 9.666 13.5 8.36 13.5 7V3.48a.25.25 0 00-.174-.237l-5.25-1.68zM9 10.5a1 1 0 11-2 0 1 1 0 012 0zm-.25-5.75a.75.75 0 10-1.5 0v3a.75.75 0 001.5 0v-3z"></path>
-
Insights
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-graph UnderlineNav-octicon d-none d-sm-inline"> <path fill-rule="evenodd" d="M1.5 1.75a.75.75 0 00-1.5 0v12.5c0 .414.336.75.75.75h14.5a.75.75 0 000-1.5H1.5V1.75zm14.28 2.53a.75.75 0 00-1.06-1.06L10 7.94 7.53 5.47a.75.75 0 00-1.06 0L3.22 8.72a.75.75 0 001.06 1.06L7 7.06l2.47 2.47a.75.75 0 001.06 0l5.25-5.25z"></path>
More
<ul>
<li data-menu-item="i0code-tab" hidden>
<a role="menuitem" class="js-selected-navigation-item selected dropdown-item" aria-current="page" data-selected-links="repo_source repo_downloads repo_commits repo_releases repo_tags repo_branches repo_packages repo_deployments /MTG/sms-tools" href="/MTG/sms-tools">
Code
sms-tools/README.md
- Go to file T
- Go to line L
-
Copy path
-
<span class="d-flex flex-items-baseline"> <span class="flex-auto">Copy permalink</span> </span>
<div id="spoof-warning" class="mt-0 pb-3" hidden aria-hidden>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert float-left mt-1">
<path fill-rule="evenodd" d="M8.22 1.754a.25.25 0 00-.44 0L1.698 13.132a.25.25 0 00.22.368h12.164a.25.25 0 00.22-.368L8.22 1.754zm-1.763-.707c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0114.082 15H1.918a1.75 1.75 0 01-1.543-2.575L6.457 1.047zM9 11a1 1 0 11-2 0 1 1 0 012 0zm-.25-5.25a.75.75 0 00-1.5 0v2.5a.75.75 0 001.5 0v-2.5z"></path>
<div class="overflow-hidden">This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.</div>
<include-fragment src="/MTG/sms-tools/spoofed_commit_check/f9460b2c526c6eabfd279253fa7f43f4d3cfb973" data-test-selector="spoofed-commit-check"></include-fragment>
<div class="Box d-flex flex-column flex-shrink-0 mb-3">
<span class="markdown-title">
<a data-pjax="true" title="clarified explanations" class="Link--secondary" href="/MTG/sms-tools/commit/14fee2ca0c2c81f2d8ab377354d1961bc8253c19">clarified explanations</a>
</span>
</div>
<span class="ml-2">
<include-fragment accept="text/fragment+html" src="/MTG/sms-tools/commit/14fee2ca0c2c81f2d8ab377354d1961bc8253c19/rollup?direction=e" class="d-inline"></include-fragment>
</span>
</div>
<div class="ml-3 d-flex flex-shrink-0 flex-items-center flex-justify-end color-fg-muted no-wrap">
<span class="d-none d-md-inline">
<span>Latest commit</span>
<a class="text-small text-mono Link--secondary" href="/MTG/sms-tools/commit/14fee2ca0c2c81f2d8ab377354d1961bc8253c19" data-pjax>14fee2c</a>
<span itemprop="dateModified"><relative-time datetime="2022-08-27T14:47:37Z" class="no-wrap">Aug 27, 2022</relative-time></span>
</span>
<a data-pjax href="/MTG/sms-tools/commits/master/README.md" class="ml-3 no-wrap Link--primary no-underline">
<svg text="gray" aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-history">
<path fill-rule="evenodd" d="M1.643 3.143L.427 1.927A.25.25 0 000 2.104V5.75c0 .138.112.25.25.25h3.646a.25.25 0 00.177-.427L2.715 4.215a6.5 6.5 0 11-1.18 4.458.75.75 0 10-1.493.154 8.001 8.001 0 101.6-5.684zM7.75 4a.75.75 0 01.75.75v2.992l2.028.812a.75.75 0 01-.557 1.392l-2.5-1A.75.75 0 017 8.25v-3.5A.75.75 0 017.75 4z"></path>
7
contributors
</summary>
<details-dialog
class="Box Box--overlay d-flex flex-column anim-fade-in fast"
aria-label="Users who have contributed to this file"
src="/MTG/sms-tools/contributors-list/master/README.md" preload>
<div class="Box-header">
<button class="Box-btn-octicon btn-octicon float-right" type="button" aria-label="Close dialog" data-close-dialog>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x">
<path fill-rule="evenodd" d="M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z"></path>
contributors
</summary>
<details-dialog
class="Box Box--overlay d-flex flex-column anim-fade-in fast"
aria-label="Users who have contributed to this file"
src="/MTG/sms-tools/contributors-list/master/README.md" preload>
<div class="Box-header">
<button class="Box-btn-octicon btn-octicon float-right" type="button" aria-label="Close dialog" data-close-dialog>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x">
<path fill-rule="evenodd" d="M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z"></path>
<readme-toc>
<div data-target="readme-toc.content" class="Box mt-3 position-relative">
<details
data-target="readme-toc.trigger" data-menu-hydro-click="{"event_type":"repository_toc_menu.click","payload":{"target":"trigger","repository_id":11689077,"originating_url":"https://github.com/MTG/sms-tools/blob/master/README.md","user_id":7453429}}" data-menu-hydro-click-hmac="ac3e6d5e74d118659485de010f89898e2d8acb842c29c5189723d85046ae79bf" class="dropdown details-reset details-overlay"
<div class="SelectMenu-list SelectMenu-list--borderless p-2" style="overscroll-behavior: contain;">
<a role="menuitem" class="filter-item SelectMenu-item ws-normal wb-break-word line-clamp-2 py-1 text-emphasized" style="-webkit-box-orient: vertical; padding-left: 12px;" data-action="click:readme-toc#blur" data-targets="readme-toc.entries" data-hydro-click="{"event_type":"repository_toc_menu.click","payload":{"target":"entry","repository_id":11689077,"originating_url":"https://github.com/MTG/sms-tools/blob/master/README.md","user_id":7453429}}" data-hydro-click-hmac="42e909b28c85333b6b0688087e4740140267798710e0d115215982a1d68837b6" href="#sms-tools">sms-tools</a>
<a role="menuitem" class="filter-item SelectMenu-item ws-normal wb-break-word line-clamp-2 py-1 " style="-webkit-box-orient: vertical; padding-left: 24px;" data-action="click:readme-toc#blur" data-targets="readme-toc.entries" data-hydro-click="{"event_type":"repository_toc_menu.click","payload":{"target":"entry","repository_id":11689077,"originating_url":"https://github.com/MTG/sms-tools/blob/master/README.md","user_id":7453429}}" data-hydro-click-hmac="42e909b28c85333b6b0688087e4740140267798710e0d115215982a1d68837b6" href="#how-to-use">How to use</a>
<a role="menuitem" class="filter-item SelectMenu-item ws-normal wb-break-word line-clamp-2 py-1 " style="-webkit-box-orient: vertical; padding-left: 24px;" data-action="click:readme-toc#blur" data-targets="readme-toc.entries" data-hydro-click="{"event_type":"repository_toc_menu.click","payload":{"target":"entry","repository_id":11689077,"originating_url":"https://github.com/MTG/sms-tools/blob/master/README.md","user_id":7453429}}" data-hydro-click-hmac="42e909b28c85333b6b0688087e4740140267798710e0d115215982a1d68837b6" href="#jupyter-notebooks">Jupyter Notebooks</a>
<a role="menuitem" class="filter-item SelectMenu-item ws-normal wb-break-word line-clamp-2 py-1 " style="-webkit-box-orient: vertical; padding-left: 24px;" data-action="click:readme-toc#blur" data-targets="readme-toc.entries" data-hydro-click="{"event_type":"repository_toc_menu.click","payload":{"target":"entry","repository_id":11689077,"originating_url":"https://github.com/MTG/sms-tools/blob/master/README.md","user_id":7453429}}" data-hydro-click-hmac="42e909b28c85333b6b0688087e4740140267798710e0d115215982a1d68837b6" href="#content">Content</a>
<a role="menuitem" class="filter-item SelectMenu-item ws-normal wb-break-word line-clamp-2 py-1 " style="-webkit-box-orient: vertical; padding-left: 24px;" data-action="click:readme-toc#blur" data-targets="readme-toc.entries" data-hydro-click="{"event_type":"repository_toc_menu.click","payload":{"target":"entry","repository_id":11689077,"originating_url":"https://github.com/MTG/sms-tools/blob/master/README.md","user_id":7453429}}" data-hydro-click-hmac="42e909b28c85333b6b0688087e4740140267798710e0d115215982a1d68837b6" href="#license">License</a>
</div>
</div>
52 lines (29 sloc)
<span class="file-info-divider"></span>
3.15 KB
<div class="BtnGroup">
<a data-permalink-href="/MTG/sms-tools/raw/f9460b2c526c6eabfd279253fa7f43f4d3cfb973/README.md" href="/MTG/sms-tools/raw/master/README.md" id="raw-url" data-view-component="true" class="js-permalink-replaceable-link btn-sm btn BtnGroup-item"> Raw
<div class="d-flex">
<!-- '"` --><!-- </textarea></xmp> --></option></form><form class="inline-form" data-turbo="false" action="/MTG/sms-tools/delete/master/README.md" accept-charset="UTF-8" method="post"><input type="hidden" name="authenticity_token" value="AiHZvmFyfNSmtT5M2lYtY4LCgfZwBEdrrRx243yAn7Wk497Ah-r2ioLXRjxOs_Q5ijrJpertpD1fTRJBR_oOFg" />
<button class="btn-octicon btn-octicon-danger tooltipped tooltipped-nw" type="submit"
aria-label="Delete the file in your fork of this project" data-disable-with>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-trash">
<path fill-rule="evenodd" d="M6.5 1.75a.25.25 0 01.25-.25h2.5a.25.25 0 01.25.25V3h-3V1.75zm4.5 0V3h2.25a.75.75 0 010 1.5H2.75a.75.75 0 010-1.5H5V1.75C5 .784 5.784 0 6.75 0h2.5C10.216 0 11 .784 11 1.75zM4.496 6.675a.75.75 0 10-1.492.15l.66 6.6A1.75 1.75 0 005.405 15h5.19c.9 0 1.652-.681 1.741-1.576l.66-6.6a.75.75 0 00-1.492-.149l-.66 6.6a.25.25 0 01-.249.225h-5.19a.25.25 0 01-.249-.225l-.66-6.6z"></path>
<div class="d-flex hide-lg hide-xl flex-order-2 flex-grow-0">
<details class="dropdown details-reset details-overlay d-inline-block">
<summary
class="js-blob-dropdown-click btn-octicon p-2"
aria-haspopup="true"
aria-label="possible actions"
data-test-selector="small-screen-more-options"
data-dropdown-tracking="{"type":"blob_edit_dropdown.more_options_click","context":{"repository_id":11689077,"actor_id":7453429,"github_dev_enabled":true,"edit_enabled":true,"small_screen":true}}"
>
<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-kebab-horizontal">
<path d="M8 9a1.5 1.5 0 100-3 1.5 1.5 0 000 3zM1.5 9a1.5 1.5 0 100-3 1.5 1.5 0 000 3zm13 0a1.5 1.5 0 100-3 1.5 1.5 0 000 3z"></path>
<ul class="dropdown-menu dropdown-menu-sw" style="width: 175px">
<li>
<a class="dropdown-item tooltipped tooltipped-nw js-remove-unless-platform"
data-platforms="windows,mac"
href="https://desktop.github.com">
Open with Desktop
</a>
</li>
<li>
<a class="dropdown-item" href="/MTG/sms-tools/raw/master/README.md">
View raw
</a>
</li>
<li>
</li>
<li>
<a class="dropdown-item" href="/MTG/sms-tools/blame/master/README.md">
View blame
</a>
</li>
<li class="dropdown-divider" role="none"></li>
<li>
<a class="dropdown-item" href="/MTG/sms-tools/edit/master/README.md">Edit file</a>
</li>
<li>
<a class="dropdown-item js-github-dev-shortcut js-blob-dropdown-click" data-test-selector="small-screen-github-dev-link" data-dropdown-tracking="{"type":"blob_edit_dropdown.dev_link_click","context":{"repository_id":11689077,"actor_id":7453429,"edit_enabled":true,"small_screen":true}}" href="https://github.dev/">Open with github.dev</a>
</li>
<li>
<a class="dropdown-item menu-item-danger" href="/MTG/sms-tools/delete/master/README.md">Delete file</a>
</li>
</ul>
</details>
</div>
<div id="readme" class="Box-body readme blob js-code-block-container p-5 p-xl-6 gist-border-0">
<article class="markdown-body entry-content container-lg" itemprop="text"><h1 dir="auto"><a id="user-content-sms-tools" class="anchor" aria-hidden="true" href="#sms-tools"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a>sms-tools</h1>
Sound analysis/synthesis tools for music applications written in python (with a bit of C) plus complementary teaching materials.
In order to use these tools you have to install python 3.* (recommended 3.10) and the following modules: ipython
, numpy
, matplotlib
, scipy
, and cython
.
In Ubuntu you can install these modules by typing in the Terminal:
$ sudo apt-get install python-dev ipython python-numpy python-matplotlib python-scipy cython
In OSX you can install these modules by typing in the Terminal:
$ pip install ipython numpy matplotlib scipy cython
then, to use the tools, after downloading the whole package, you need to compile some C functions. For that you should go to the directory software/models/utilFunctions_C
and type:
$ python compileModule.py build_ext --inplace
The basic sound analysis/synthesis functions, or models, are in the directory software/models
and there is a graphical interface and individual example functions in software/models_interface
. To execute the models GUI you have to go to the directory software/models_interface
and type:
$ python models_GUI.py
To execute the transformations GUI that calls various sound transformation functions go to the directory software/transformations_interface
and type:
$ python transformations_GUI.py
To modify the existing code, or to create your own using some of the functions, we recommend to use the workspace
directory. Typically you would copy a file from software/models_interface
or from software/transformations_interface
to that directory, modify the code, and execute it from there (you will have to change some of the paths inside the files).
A number of teaching exercises are available as jupyter notebooks in the notebook
directory. To do them you need to install Jupyter Notebook according to its instructions https://jupyter.org/install
Start up jupyter notebook by typing in the Terminal.
$ jupyter notebook
It will open a web browser, from which you can open the notebook
directory.
All the code is in the software
directory, with subdirectories for the models, the transformations, and the interfaces. The lecture materials are in the lectures
directory, the exercises related to the lectures are in the notebook
directory, and the sounds used for the examples and coming from http://freesound.org are in the sounds
directory.
All the software is distributed with the Affero GPL license (http://www.gnu.org/licenses/agpl-3.0.en.html), the lecture slides are distributed under Creative Commons Attribution-NonCommercial-ShareAlike 4.0 (CC BY-NC-SA 4.0) license (http://creativecommons.org/licenses/by-nc-sa/4.0/) and the sounds in this repository are released under Creative Commons Attribution 4.0 (CC BY 4.0) license (http://creativecommons.org/licenses/by/4.0/)
</div>
Go
</main>
<footer class="footer width-full container-xl p-responsive">
<nav aria-label='footer' class="col-12 col-lg-8">
<h3 class='sr-only' id='sr-footer-heading'>Footer navigation</h3>
<ul class="list-style-none d-flex flex-wrap col-12 flex-justify-center flex-lg-justify-between mb-2 mb-lg-0" aria-labelledby='sr-footer-heading'>
<li class="mr-3 mr-lg-0"><a href="https://docs.github.com/en/github/site-policy/github-terms-of-service" data-analytics-event="{"category":"Footer","action":"go to terms","label":"text:terms"}">Terms</a></li>
<li class="mr-3 mr-lg-0"><a href="https://docs.github.com/en/github/site-policy/github-privacy-statement" data-analytics-event="{"category":"Footer","action":"go to privacy","label":"text:privacy"}">Privacy</a></li>
<li class="mr-3 mr-lg-0"><a data-analytics-event="{"category":"Footer","action":"go to security","label":"text:security"}" href="https://github.com/security">Security</a></li>
<li class="mr-3 mr-lg-0"><a href="https://www.githubstatus.com/" data-analytics-event="{"category":"Footer","action":"go to status","label":"text:status"}">Status</a></li>
<li class="mr-3 mr-lg-0"><a data-ga-click="Footer, go to help, text:Docs" href="https://docs.github.com">Docs</a></li>
<li class="mr-3 mr-lg-0"><a href="https://support.github.com?tags=dotcom-footer" data-analytics-event="{"category":"Footer","action":"go to contact","label":"text:contact"}">Contact GitHub</a></li>
<li class="mr-3 mr-lg-0"><a href="https://github.com/pricing" data-analytics-event="{"category":"Footer","action":"go to Pricing","label":"text:Pricing"}">Pricing</a></li>
<li class="mr-3 mr-lg-0"><a href="https://docs.github.com" data-analytics-event="{"category":"Footer","action":"go to api","label":"text:api"}">API</a></li>
<li class="mr-3 mr-lg-0"><a href="https://services.github.com" data-analytics-event="{"category":"Footer","action":"go to training","label":"text:training"}">Training</a></li>
<li class="mr-3 mr-lg-0"><a href="https://github.blog" data-analytics-event="{"category":"Footer","action":"go to blog","label":"text:blog"}">Blog</a></li>
<li><a data-ga-click="Footer, go to about, text:about" href="https://github.com/about">About</a></li>
</ul>
</nav>
<div class="Popover js-hovercard-content position-absolute" style="display: none; outline: none;" tabindex="0">
<template id="snippet-clipboard-copy-button">
<style>
.user-mention[href$="/lytemar"] {
color: var(--color-user-mention-fg);
background-color: var(--color-user-mention-bg);
border-radius: 2px;
margin-left: -2px;
margin-right: -2px;
padding: 0 2px;
}
</style>