- ID de l'analyse :
- d7329249-66a4-4afa-ac07-5fa5eef6ca15Terminée
- URL soumise :
- https://hackmd.io/s/HyXpr1LMkxRedirigé
- Fin du rapport :
Liens : 63 trouvé(s)
Liens sortants identifiés à partir de la page
Lien | texte |
---|---|
https://jsbin.com/kezopuliti/edit?html,output | https://jsbin.com/kezopuliti/edit?html,output |
https://snippet.host/zitdxp | https://snippet.host/zitdxp |
https://anonpaste.io/share/4b11f9c6a6 | https://anonpaste.io/share/4b11f9c6a6 |
https://radar.cloudflare.com/scan/1ebd60b6-0180-4fc1-aca3-9a9ebdb519a9/dom | https://radar.cloudflare.com/scan/1ebd60b6-0180-4fc1-aca3-9a9ebdb519a9/dom |
https://radar.cloudflare.com/scan/e29b724a-56e7-4d7e-99cd-3da5db53a0b6/dom | https://radar.cloudflare.com/scan/e29b724a-56e7-4d7e-99cd-3da5db53a0b6/dom |
https://radar.cloudflare.com/scan/fb27c296-17e8-4b3d-b200-9fe09eb16087/dom | https://radar.cloudflare.com/scan/fb27c296-17e8-4b3d-b200-9fe09eb16087/dom |
https://www.onfeetnation.com/profiles/blogs/dtye575uthdt | https://www.onfeetnation.com/profiles/blogs/dtye575uthdt |
https://sharing.clickup.com/9018640330/t/h/86eqrkd9z/LUB08UHLLH9F2T2 | https://sharing.clickup.com/9018640330/t/h/86eqrkd9z/LUB08UHLLH9F2T2 |
https://github.com/apps/jfgfggfd5ghdgh | https://github.com/apps/jfgfggfd5ghdgh |
https://fufufafa.hashnode.dev/srw456ghgf | https://fufufafa.hashnode.dev/srw456ghgf |
Variables JavaScript : 162 trouvée(s)
Les variables JavaScript globales chargées dans l'objet fenêtre d'une page sont des variables déclarées en dehors des fonctions et accessibles depuis n'importe quel endroit du code au sein du champ d'application actuel
Nom | Type |
---|---|
onbeforetoggle | object |
documentPictureInPicture | object |
onscrollend | object |
domain | string |
urlpath | string |
debug | boolean |
version | string |
brand | string |
NOTE_ID | string |
GOOGLE_DRIVE_API_KEY | string |
Messages de journal de console : 0 trouvé(s)
Messages consignés dans la console web
HTML
Le corps HTML de la page en données brutes
<!DOCTYPE html><html lang="en-US" data-themeable="true" theme="light"><head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="mobile-web-app-capable" content="yes">
<meta name="csrf-token" content="GR7fQTO9-4bwkBmAKs17v8jbgnRp2bIiIEGs">
<meta name="description" content="https://jsbin.com/kezopuliti/edit?html,output https://snippet.host/zitdxp \https://anonpaste.io/shar">
<title>Untitled - HackMD</title>
<link rel="icon" type="image/png" href="https://hackmd.io/favicon.png">
<link rel="apple-touch-icon" href="https://hackmd.io/apple-touch-icon.png">
<!-- meta value for server side given sign in boolean -->
<meta name="signin" content="false">
<script async="" src="https://www.googletagmanager.com/gtm.js?id=GTM-KLW9Z3"></script><script nonce="">
window.domain = 'hackmd.io'
window.urlpath = ''
window.debug = false || window.localStorage.getItem('HMD_DEBUG_FLAG') === 'true'
window.version = '1.3.0'
window.brand = 'HackMD'
window.NOTE_ID = 'o8OVbL9pRgeQx27xuGulDg'
window.GOOGLE_DRIVE_API_KEY = 'AIzaSyAHmcP5gL_64ZafuAYOvJruFAIaYgHQaY4'
window.GOOGLE_DRIVE_CLIENT_ID = '65857506266-76uhhee8se8dgs1i0q8fhtj1prg0ar27.apps.googleusercontent.com'
window.DROPBOX_APP_KEY = 'rdoizrlnkuha23r'
window.PLANTUML_SERVER = 'https://ptuml.hackmd.io'
window.ASSET_URL = 'https://assets.hackmd.io'
window.USER_CAN_CREATE_TEAM = true
window.USER_CAN_DELETE_ACCOUNT = true
window.USER_DELETE_ACCOUNT_VIA_EMAIL = true
window.PAYMENT_ENABLED = true
window.PAYMENT_PROMOTION_BANNER_ENABLED = false
window.GITHUB_SYNC_ENABLED = true
window.GITLAB_SYNC_ENABLED = false
window.GITLAB_SYNC_BASE_URL = ''
window.VCS_SYNC_MODE = 'github'
window.VCS_PROVIDER_NAME = 'GitHub'
window.FREE_TEAM_NUM = 20
window.FREE_TEAM_MEMBER_NUM = 3
window.FREE_PUBLIC_TEAM_NUM = 10
window.NEO_OVERVIEW_UI = false
window.EE_SITE_ENABLE = false
window.EE_SITE_NAME = 'false'
window.EE_SITE_LINK = 'false'
window.EESITE_INFO = false
window.ENTERPRISE_DISCOVERY_ENABLE = false
window.ENTERPRISE_DISCOVERY_TEAM = true
window.ENTERPRISE_DISCOVERY_NOTE = true
window.ENTERPRISE_DISCOVERY_VIEW_PERMISSION = 'guest'
window.ALLOW_ANONYMOUS = true
window.ALLOW_ANONYMOUS_EDIT = false
window.ALLOW_DOWNLOAD_PDF = true
window.PUBLIC_OVERVIEW = false
window.INTERNAL_PUBLIC_OVERVIEW = false
window.FULL_TEXT_SEARCH_ENABLE = false
window.ALGOLIA_SEARCH_ENABLE = true
window.MARKETING_EMAIL_ENABLE = true
window.OFFLINE_ACCESS = true
window.WALLET_CONNECT_PROJECT_ID = '91d6fa182b725b5895a17a170a5878c1'
window.API_MANAGEMENT_UI_ENABLE = true
window.FEEDBACK_UI_ENABLE = true
window.PUBLISH_ENABLE = true
window.SHOW_HOT_NOTES = false
window.HOT_NOTES_TIME_TYPE = 'week'
window.SHOW_OVERVIEW = false
window.MENTIONS = {}
window.MENTION_ANCHORS = []
window.COMMENT_ANCHORS = []
window.IS_OWNER = false
window.IS_TEAM_ADMIN = false
window.IS_INVITEE_ADMIN = false
window.USER_PROFILE = '%7B%22name%22%3A%22Guest%20Hill%22%7D'
window.VERSION_TIME = '1731749318100'
window.canEdit = false
window.canWriteComment = false
window.canHideComment = false
window.TRASH_NOTE_DELETE_AFTER_FREE = 3
window.TRASH_NOTE_DELETE_AFTER_PAID = 30
window.ENABLED_PREVIEW_FEATURE = {}
window.IS_OWNER_UPGRADED = false
window.IMGUR_FALLBACK_CDN = 'https://imgur-backup.hackmd.io'
window.CLOUD_META_UI = true
window.CLOUD_META_API = true
window.CLOUD_META_MIGRATION = false
window.YAML_METADATA_ENABLED = false
window.NOTE_CAPACITY_LIMIT = 50
window.DOCUMENT_MAX_LENGTH = 100000
window.SOCIAL_NETWORK_FEATURES_ENABLED = true
window.PUBLISHMENT_MODERATION_ENABLED = true
window.COMMENT_ENABLED = true
window.SUGGEST_EDIT_ENABLED = true
window.SUGGEST_EDIT_ENABLED = true
window.REALTIME_CLIENT_WITH_CREDENTIALS = false
window.COMMENT_ENABLED = true
window.DEBUG_DISCONNECT_SOCKET_WHEN_OFFLINE = false
window.USE_NEW_LOGO = true
window.ITERABLE_ENABLED = true
window.ITERABLE_API_KEY = "c2c36a44c2614fb19aa3b46d660bbce2"
window.TEXT_SELECTION_CHANGED = false
window.CAN_VIEW_HISTORY_AT_REVISION = false
</script>
<!-- Google Tag Manager -->
<script nonce="">(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-KLW9Z3');</script>
<!-- End Google Tag Manager -->
<meta property="fb:app_id" content="1436904003272070">
<meta name="twitter:image:src" content="https://hackmd.io/images/media/HackMD-og.jpg">
<meta name="twitter:image:alt" content="HackMD - Collaborative Markdown Knowledge Base">
<meta name="twitter:site" content="@hackmdio">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="HackMD - Collaborative Markdown Knowledge Base">
<meta name="twitter:description" content="https://jsbin.com/kezopuliti/edit?html,output https://snippet.host/zitdxp \https://anonpaste.io/shar">
<meta property="og:image" content="https://hackmd.io/images/media/HackMD-og.jpg">
<meta property="og:image:alt" content="HackMD - Collaborative Markdown Knowledge Base">
<meta property="og:site_name" content="HackMD">
<meta property="og:type" content="article">
<meta property="og:title" content="HackMD - Collaborative Markdown Knowledge Base">
<meta property="og:description" content="https://jsbin.com/kezopuliti/edit?html,output https://snippet.host/zitdxp \https://anonpaste.io/shar">
<link href="https://assets.hackmd.io/build/font-vendor.ea8218d7d4f468b2c430.css" rel="stylesheet"><link href="https://assets.hackmd.io/build/common-vendor.0a08ae20e14fefe857eb.css" rel="stylesheet"><link href="https://assets.hackmd.io/build/pretty-vendor.db0e7b64c54d0a77290f.css" rel="stylesheet"><link href="https://assets.hackmd.io/build/pretty.44da1494d9b0c7939a3f.css" rel="stylesheet">
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv.min.js" integrity="sha256-3Jy/GbSLrg0o9y5Z5n1uw0qxZECH7C6OQpVBgNFYa0g=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/respond.js/1.4.2/respond.min.js" integrity="sha256-g6iAfvZp+nDQ2TdTR/VVKJf3bGro4ub5fvWSWVRi2NE=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/es5-shim/4.5.9/es5-shim.min.js" integrity="sha256-8E4Is26QH0bD52WoQpcB+R/tcWQtpzlCojrybUd7Mxo=" crossorigin="anonymous"></script>
<![endif]-->
<script defer="" data-domain="hackmd.io" src="https://plausible.io/js/script.js"></script>
<script nonce="">
window.plausible = window.plausible || function() { (window.plausible.q = window.plausible.q || []).push(arguments); }
const keyboardWhiteList = ['a', 'span', 'button']
function getTaggedEventAttributes (e) {
const eventAttrs = { name: null, props: {} }
if (!e || !e.classList) return eventAttrs
const psEvent = /plausible-event-(.+)(=|--)(.+)/
for (const className of [...e.classList]) {
const [, key, , val] = className.match(psEvent) || []
if (!key || !val) continue
const value = val.replace(/\+/g, ' ')
switch (key.toLowerCase()) {
case 'name':
eventAttrs.name = value
break
default:
eventAttrs.props[key] = value
break
}
}
return eventAttrs
}
function isLocal () {
return /^localhost$|^127(\.[0-9]+){0,2}\.[0-9]+$|^\[::1?\]$/.test(location.hostname) || location.protocol === 'file:'
}
function isAutomation () {
return Boolean(window._phantom || window.__nightmare || window.navigator.webdriver || window.Cypress)
}
function shouldIgnore () {
return isLocal() ||
isAutomation() ||
window.localStorage.getItem('plausible_ignore') === 'true'
}
function handler (e) {
if (!window.plausible) return
if (!e.target || !('className' in e.target)) return
const ele = e.target
const eventAttrs = getTaggedEventAttributes(ele)
if (!eventAttrs.name) return
if (ele?.href) eventAttrs.props.url = ele.href
if (shouldIgnore()) {
if (window.debug) logDebugEventMsg(eventAttrs)
return
}
window.plausible(eventAttrs.name, { props: eventAttrs.props })
}
function logDebugEventMsg (eventAttrs) {
console.warn(
`Ignoring Event: "${eventAttrs.name}"`,
eventAttrs,
)
}
function keydownHandler (e) {
if (e.key !== 'Enter') return
if (e.target.nodeName.toLowerCase() === 'input') {
switch (e.target.type.toLowerCase()) {
case 'submit':
case 'button':
case 'reset':
case 'checkbox':
case 'radio':
case 'file':
case 'image':
case 'color':
break
default:
return
}
} else if (!keyboardWhiteList.includes(e.target.nodeName.toLowerCase())) {
return
}
handler(e)
}
document.addEventListener('mousedown', handler)
document.addEventListener('keydown', keydownHandler)
</script>
<script nonce="">
window.publishProps = JSON.parse(`{"isOwnerAnonymous":false,"isOwnedByTeam":false,"ownerInfo":{"name":"bh7fdhsd","path":"bh7fdhsd","avatarUrl":"https%3A%2F%2Fwww.gravatar.com%2Favatar%2Fb423961066909df11f40ff7c4e2ec29f%3Fs%3D96","description":null},"isPublished":false,"createTime":1731749307330,"updateTime":1731749318100,"vcsSyncMode":"github","vcsProviderName":"GitHub","canEdit":false,"hardBreaks":true,"onlyOwnerCanEdit":true,"isCommentEnabled":true,"likedCount":0,"isNotificationEnabled":true,"notificationType":"never","hasEmail":false,"canWriteComment":false,"viewCount":0,"markdown":"https%3A%2F%2Fjsbin.com%2Fkezopuliti%2Fedit%3Fhtml%2Coutput%0Ahttps%3A%2F%2Fsnippet.host%2Fzitdxp%0A%5Chttps%3A%2F%2Fanonpaste.io%2Fshare%2F4b11f9c6a6%0Ahttps%3A%2F%2Fradar.cloudflare.com%2Fscan%2F1ebd60b6-0180-4fc1-aca3-9a9ebdb519a9%2Fdom%0Ahttps%3A%2F%2Fradar.cloudflare.com%2Fscan%2Fe29b724a-56e7-4d7e-99cd-3da5db53a0b6%2Fdom%0Ahttps%3A%2F%2Fradar.cloudflare.com%2Fscan%2Ffb27c296-17e8-4b3d-b200-9fe09eb16087%2Fdom%0Ahttps%3A%2F%2Fwww.onfeetnation.com%2Fprofiles%2Fblogs%2Fdtye575uthdt%0Ahttps%3A%2F%2Fsharing.clickup.com%2F9018640330%2Ft%2Fh%2F86eqrkd9z%2FLUB08UHLLH9F2T2%0Ahttps%3A%2F%2Fgithub.com%2Fapps%2Fjfgfggfd5ghdgh%0Ahttps%3A%2F%2Ffufufafa.hashnode.dev%2Fsrw456ghgf%0Ahttps%3A%2F%2Fadmin.opendatani.gov.uk%2Fuser%2Fgladiator-2-us-13%0Ahttps%3A%2F%2Fadmin.opendatani.gov.uk%2Fuser%2Fgladiator-2-us-14%0Ahttps%3A%2F%2Fadmin.opendatani.gov.uk%2Fuser%2Fvenom-3-us-13%0Ahttps%3A%2F%2Fadmin.opendatani.gov.uk%2Fuser%2Fvenom-3-the-last-dance-us-14%0Ahttps%3A%2F%2Fadmin.opendatani.gov.uk%2Fuser%2Fsmall-things-like-these-us-13%0Ahttps%3A%2F%2Fadmin.opendatani.gov.uk%2Fuser%2Fred-one-us-13%0Ahttps%3A%2F%2Fadmin.opendatani.gov.uk%2Fuser%2Foverlord-the-sacred-kingdom-us-13%0Ahttps%3A%2F%2Fadmin.opendatani.gov.uk%2Fuser%2Fheretic-us-13%0Ahttps%3A%2F%2Fadmin.opendatani.gov.uk%2Fuser%2Fthe-best-christmas-pageant-ever-us-13%0Ahttps%3A%2F%2Fadmin.opendatani.gov.uk%2Fuser%2Fhere-us-13%0Ahttps%3A%2F%2Fadmin.opendatani.gov.uk%2Fuser%2Fsmile-2-us-13%0Ahttps%3A%2F%2Fadmin.opendatani.gov.uk%2Fuser%2Fterrifier-3-us-13%0Ahttps%3A%2F%2Fadmin.opendatani.gov.uk%2Fuser%2Fthe-wild-robot-us-13%0Ahttps%3A%2F%2Fadmin.opendatani.gov.uk%2Fuser%2Fwe-live-in-time-us-13%0Ahttps%3A%2F%2Fadmin.opendatani.gov.uk%2Fuser%2Ftransformers-one-on-us-13%0Ahttps%3A%2F%2Fadmin.opendatani.gov.uk%2Fuser%2Fmy-hero-academia-you-are-next-us-13%0Ahttps%3A%2F%2Fadmin.opendatani.gov.uk%2Fuser%2Fjoker-2-us-13%0Ahttps%3A%2F%2Fadmin.opendatani.gov.uk%2Fuser%2Fdeadpool-3-us-13%0Ahttps%3A%2F%2Fadmin.opendatani.gov.uk%2Fuser%2Fconclave-us-13%0Ahttps%3A%2F%2Fadmin.opendatani.gov.uk%2Fuser%2Fbeetlejuice-2-us-13%0Ahttps%3A%2F%2Fadmin.opendatani.gov.uk%2Fuser%2Fam-i-racist-us-13%0Ahttps%3A%2F%2Fadmin.opendatani.gov.uk%2Fuser%2Fwicked-us-13%0Ahttps%3A%2F%2Fadmin.opendatani.gov.uk%2Fuser%2Fanora-us-13%0Ahttps%3A%2F%2Fadmin.opendatani.gov.uk%2Fuser%2Felton-john-never-too-late-us-13%0Ahttps%3A%2F%2Fadmin.opendatani.gov.uk%2Fuser%2Fghost-cat-anzu-us-13%0Ahttps%3A%2F%2Fadmin.opendatani.gov.uk%2Fuser%2Fmoana-2-us-13%0Ahttps%3A%2F%2Fadmin.opendatani.gov.uk%2Fuser%2Fvenom-3-es-14%0Ahttps%3A%2F%2Fadmin.opendatani.gov.uk%2Fuser%2Fgladiator-2-es-14%0Ahttps%3A%2F%2Fyiijima.sakura.ne.jp%2Fwiki%2Fe01%2F%3Fcbfdyyths%0Ahttps%3A%2F%2Fopendata.liberec.cz%2Fen%2Fuser%2Fcbdguu6r%0Ahttps%3A%2F%2Fwww.egr.msu.edu%2Fnextgen%2Fwiki%2Findex.php%2F5ghnccjgjc%0Ahttps%3A%2F%2Fwww.websitecarbon.com%2Fwebsite%2Fegr-msu-edu-nextgen-wiki-index-php-5ghnccjgjc%2F%0Ahttps%3A%2F%2Fwww.ssplace.miami.edu%2Fmembers%2Fstatus%2Fshow%3Fid%3D28954324%253AStatus%253A2192362%0Ahttps%3A%2F%2Fsloan.ucr.edu%2Fmembers%2Fstatus%2Fshow%3Fid%3D28954304%253AStatus%253A1484167%0Ahttps%3A%2F%2Feducat.xtec.cat%2Fmembers%2Fstatus%2Fshow%3Fid%3D28959444%253AStatus%253A342572%0Ahttps%3A%2F%2Fnetwork.propertyweek.com%2Fmembers%2Fstatus%2Fshow%3Fid%3D28959784%253AStatus%253A545492%0Ahttps%3A%2F%2Fzagspace.gonzaga.edu%2Fmembers%2Fstatus%2Fshow%3Fid%3D28959764%253AStatus%253A204545%0Ahttps%3A%2F%2Fwww.enaref.gov.bf%2Ffr%2Fnode%2F1251567%0Ahttps%3A%2F%2Fweb3devcommunity.com%2Ftopic%2F39574%2F0oaudihlkadh%0Ahttps%3A%2F%2Fforum.thecodingcolosseum.com%2Ftopic%2F18919%2F0abakdgakaudy%0Ahttps%3A%2F%2Fforum.realdigital.org%2Fd%2F276372-0aioyaouadkjadg%0Ahttps%3A%2F%2Fforum.instube.com%2Fd%2F175611-8uaydkajdglakjgahkja%0Ahttps%3A%2F%2Fplaycode.io%2F2149564%0Ahttps%3A%2F%2Fwww.gmbinder.com%2Fshare%2F-OBoHbzAS18gJ4BwMghv%0Ahttps%3A%2F%2Fjsfiddle.net%2Fk4euh8dt%2F%0Ahttps%3A%2F%2Fjsitor.com%2Fr-kM3_hFgl%0Ahttps%3A%2F%2Fpaste.centos.org%2Fview%2F038cff88%0Ahttps%3A%2F%2Fpaste.ee%2Fp%2Fnzo9E%0Ahttps%3A%2F%2Fpastebin.com%2FgnXHvhDt%0Ahttps%3A%2F%2Fetextpad.com%2Fuuywbiajm8%0Ahttps%3A%2F%2Fyamcode.com%2Funtitled-110272%0Ahttps%3A%2F%2Fpaste2.org%2FXaVyj7eY%0Ahttps%3A%2F%2Fpaiza.io%2Fprojects%2FGXoDro79IlY8qqeriWPAog","viewMode":"publish","isOwner":false,"isSignIn":false,"isLiked":false,"isBookmarked":false,"publishType":"view","commentCount":0,"isNotesRecommendationsEnabled":true,"recommendedNotes":[],"lastChangeUserInfo":{"name":"bh7fdhsd","path":"bh7fdhsd","avatarUrl":"https%3A%2F%2Fwww.gravatar.com%2Favatar%2Fb423961066909df11f40ff7c4e2ec29f%3Fs%3D96"}}`);
(function () {
const decodeStringProps = (props) => {
for (const key in props) {
if (typeof props[key] === 'string') {
props[key] = decodeURIComponent(props[key])
} else if (typeof props[key] === 'object') {
decodeStringProps(props[key])
}
}
}
decodeStringProps(window.publishProps)
})()
</script>
<meta id="style-tag-insertion">
<script src="https://tally.so/widgets/embed.js"></script><style type="text/css">@keyframes index-module_spin__r2-rl{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes index-module_wave__JTStX{0%{transform:rotate(0deg)}50%{transform:rotate(20deg)}to{transform:rotate(0deg)}}@keyframes index-module_heartBeat__Jdux6{0%{transform:scale(1)}50%{transform:scale(1.08)}to{transform:scale(1)}}@keyframes index-module_flash__BHax5{0%,50%,to{opacity:1}25%,75%{opacity:.2}}@keyframes index-module_bounce__46Q2t{0%,20%,53%,to{transform:translateZ(0)}40%,43%{transform:translate3d(0,-30px,0) scaleY(1.1)}70%{transform:translate3d(0,-15px,0) scaleY(1.05)}80%{transform:translateZ(0) scaleY(.95)}90%{transform:translate3d(0,-4px,0) scaleY(1.02)}}@keyframes index-module_rubberBand__QnP44{0%{transform:scaleX(1)}30%{transform:scale3d(1.25,.75,1)}40%{transform:scale3d(.75,1.25,1)}50%{transform:scale3d(1.15,.85,1)}65%{transform:scale3d(.95,1.05,1)}75%{transform:scale3d(1.05,.95,1)}to{transform:scaleX(1)}}@keyframes index-module_headShake__4JK7O{0%{transform:translateX(0)}6.5%{transform:translateX(-6px) rotateY(-9deg)}18.5%{transform:translateX(5px) rotateY(7deg)}31.5%{transform:translateX(-3px) rotateY(-5deg)}43.5%{transform:translateX(2px) rotateY(3deg)}50%{transform:translateX(0)}}@keyframes index-module_tada__m5Cd2{0%{transform:scaleX(1)}10%,20%{transform:scale3d(.9,.9,.9) rotate(-3deg)}30%,50%,70%,90%{transform:scale3d(1.1,1.1,1.1) rotate(3deg)}40%,60%,80%{transform:scale3d(1.1,1.1,1.1) rotate(-3deg)}to{transform:scaleX(1)}}.index-module_overlay__PyXAN{-ms-flex-pack:center;-ms-flex-align:center;align-items:center;background-color:hsla(0,0%,6%,.6);bottom:0;display:-ms-flexbox;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000000006}.index-module_layoutDefault__7yBRe{bottom:20px;position:fixed;right:20px;width:auto}.index-module_layoutDefault__7yBRe,.index-module_layoutModal__3-Tik{background-color:transparent;border-radius:5px;box-shadow:0 0 0 1px hsla(0,0%,6%,.05),0 3px 6px hsla(0,0%,6%,.1),0 9px 24px hsla(0,0%,6%,.2);display:-ms-flexbox;display:flex;height:auto;max-width:95vw;opacity:0;z-index:2147483000}.index-module_layoutModal__3-Tik{position:relative;width:700px}.index-module_popupContainer__R7hrk{border-radius:5px;display:-ms-flexbox;display:flex;overflow-y:auto;width:100%}.index-module_popupContainer__R7hrk iframe{border-radius:5px;max-height:95vh}.index-module_loadingIndicator__bai61{-ms-flex-align:center;-ms-flex-pack:center;align-items:center;background-color:#f5f5f5;border-radius:50%;color:#444;display:-ms-inline-flexbox;display:inline-flex;height:50px;justify-content:center;position:absolute;width:50px;z-index:2147483000}.index-module_loadingIndicatorNoOverlay__Pyhdd{bottom:10px;position:fixed;right:10px}.index-module_loadingIndicator__bai61 svg{animation:index-module_spin__r2-rl 1.618s linear infinite;height:20px;width:20px}.index-module_emoji__MDuRJ{display:inline-block;font-size:42px;left:-21px;line-height:1;position:absolute;top:-21px}.index-module_animate__wave__Rfv7x{animation:index-module_wave__JTStX 1s ease-in-out 20}.index-module_animate__heart-beat__M8Vjv{animation:index-module_heartBeat__Jdux6 1.3s ease-in-out 20}.index-module_animate__flash__zfXXt{animation:index-module_flash__BHax5 2.5s 20}.index-module_animate__bounce__YkmGJ{animation:index-module_bounce__46Q2t 1.5s 20;-ms-transform-origin:center bottom;transform-origin:center bottom}.index-module_animate__rubber-band__o0ymG{animation:index-module_rubberBand__QnP44 1.5s 20}.index-module_animate__head-shake__SgYWR{animation:index-module_headShake__4JK7O 1.5s ease-in-out 20}.index-module_animate__tada__3dUYE{animation:index-module_tada__m5Cd2 1.5s 20}.index-module_animate__spin__dJxXR{animation:index-module_spin__r2-rl 1.618s linear 20}@media (max-height:1000px){.index-module_popupContainer__R7hrk iframe{max-height:85vh}}@media (max-width:576px){.index-module_popupContainer__R7hrk iframe{max-height:70vh}.index-module_layoutDefault__7yBRe,.index-module_layoutModal__3-Tik{max-width:calc(100% - 40px)}}</style>
<style id="googleidentityservice_button_styles" nonce="">.qJTHM{-moz-user-select:none;color:#202124;direction:ltr;font-family:"Roboto-Regular",arial,sans-serif;font-weight:400;margin:0;overflow:hidden}.ynRLnc{left:-9999px;position:absolute;top:-9999px}.L6cTce{display:none}.bltWBb{word-break:break-all}.hSRGPd{color:#1a73e8;cursor:pointer;font-weight:500;text-decoration:none}.Bz112c-W3lGp{height:16px;width:16px}.Bz112c-E3DyYd{height:20px;width:20px}.Bz112c-r9oPif{height:24px;width:24px}.Bz112c-uaxL4e{-moz-border-radius:10px;border-radius:10px}.LgbsSe-Bz112c{display:block}.S9gUrf-YoZ4jf,.S9gUrf-YoZ4jf *{border:none;margin:0;padding:0}.fFW7wc-ibnC6b>.aZ2wEe>div{border-color:#4285f4}.P1ekSe-ZMv3u>div:nth-child(1){background-color:#1a73e8!important}.P1ekSe-ZMv3u>div:nth-child(2),.P1ekSe-ZMv3u>div:nth-child(3){background-image:linear-gradient(to right,rgba(255,255,255,.7),rgba(255,255,255,.7)),linear-gradient(to right,#1a73e8,#1a73e8)!important}.haAclf{display:inline-block}.nsm7Bb-HzV7m-LgbsSe{border-radius:4px;box-sizing:border-box;transition:background-color .218s,border-color .218s;-moz-user-select:none;background-color:#fff;background-image:none;border:1px solid #dadce0;color:#3c4043;cursor:pointer;font-family:"Google Sans",arial,sans-serif;font-size:14px;height:40px;letter-spacing:0.25px;outline:none;overflow:hidden;padding:0 12px;position:relative;text-align:center;vertical-align:middle;white-space:nowrap;width:auto}@media screen and (-ms-high-contrast:active){.nsm7Bb-HzV7m-LgbsSe{border:2px solid windowText;color:windowText}}.nsm7Bb-HzV7m-LgbsSe.pSzOP-SxQuSe{font-size:14px;height:32px;letter-spacing:0.25px;padding:0 10px}.nsm7Bb-HzV7m-LgbsSe.purZT-SxQuSe{font-size:11px;height:20px;letter-spacing:0.3px;padding:0 8px}.nsm7Bb-HzV7m-LgbsSe.Bz112c-LgbsSe{padding:0;width:40px}.nsm7Bb-HzV7m-LgbsSe.Bz112c-LgbsSe.pSzOP-SxQuSe{width:32px}.nsm7Bb-HzV7m-LgbsSe.Bz112c-LgbsSe.purZT-SxQuSe{width:20px}.nsm7Bb-HzV7m-LgbsSe.JGcpL-RbRzK{border-radius:20px}.nsm7Bb-HzV7m-LgbsSe.JGcpL-RbRzK.pSzOP-SxQuSe{border-radius:16px}.nsm7Bb-HzV7m-LgbsSe.JGcpL-RbRzK.purZT-SxQuSe{border-radius:10px}.nsm7Bb-HzV7m-LgbsSe.MFS4be-Ia7Qfc{border:none;color:#fff}.nsm7Bb-HzV7m-LgbsSe.MFS4be-v3pZbf-Ia7Qfc{background-color:#1a73e8}.nsm7Bb-HzV7m-LgbsSe.MFS4be-JaPV2b-Ia7Qfc{background-color:#202124;color:#e8eaed}.nsm7Bb-HzV7m-LgbsSe .nsm7Bb-HzV7m-LgbsSe-Bz112c{height:18px;margin-right:8px;min-width:18px;width:18px}.nsm7Bb-HzV7m-LgbsSe.pSzOP-SxQuSe .nsm7Bb-HzV7m-LgbsSe-Bz112c{height:14px;min-width:14px;width:14px}.nsm7Bb-HzV7m-LgbsSe.purZT-SxQuSe .nsm7Bb-HzV7m-LgbsSe-Bz112c{height:10px;min-width:10px;width:10px}.nsm7Bb-HzV7m-LgbsSe.jVeSEe .nsm7Bb-HzV7m-LgbsSe-Bz112c{margin-left:8px;margin-right:-4px}.nsm7Bb-HzV7m-LgbsSe.Bz112c-LgbsSe .nsm7Bb-HzV7m-LgbsSe-Bz112c{margin:0;padding:10px}.nsm7Bb-HzV7m-LgbsSe.Bz112c-LgbsSe.pSzOP-SxQuSe .nsm7Bb-HzV7m-LgbsSe-Bz112c{padding:8px}.nsm7Bb-HzV7m-LgbsSe.Bz112c-LgbsSe.purZT-SxQuSe .nsm7Bb-HzV7m-LgbsSe-Bz112c{padding:4px}.nsm7Bb-HzV7m-LgbsSe .nsm7Bb-HzV7m-LgbsSe-Bz112c-haAclf{border-top-left-radius:3px;border-bottom-left-radius:3px;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;justify-content:center;align-items:center;background-color:#fff;height:36px;margin-left:-10px;margin-right:12px;min-width:36px;width:36px}.nsm7Bb-HzV7m-LgbsSe .nsm7Bb-HzV7m-LgbsSe-Bz112c-haAclf .nsm7Bb-HzV7m-LgbsSe-Bz112c,.nsm7Bb-HzV7m-LgbsSe.Bz112c-LgbsSe .nsm7Bb-HzV7m-LgbsSe-Bz112c-haAclf .nsm7Bb-HzV7m-LgbsSe-Bz112c{margin:0;padding:0}.nsm7Bb-HzV7m-LgbsSe.pSzOP-SxQuSe .nsm7Bb-HzV7m-LgbsSe-Bz112c-haAclf{height:28px;margin-left:-8px;margin-right:10px;min-width:28px;width:28px}.nsm7Bb-HzV7m-LgbsSe.purZT-SxQuSe .nsm7Bb-HzV7m-LgbsSe-Bz112c-haAclf{height:16px;margin-left:-6px;margin-right:8px;min-width:16px;width:16px}.nsm7Bb-HzV7m-LgbsSe.Bz112c-LgbsSe .nsm7Bb-HzV7m-LgbsSe-Bz112c-haAclf{border-radius:3px;margin-left:2px;margin-right:0;padding:0}.nsm7Bb-HzV7m-LgbsSe.JGcpL-RbRzK .nsm7Bb-HzV7m-LgbsSe-Bz112c-haAclf{border-radius:18px}.nsm7Bb-HzV7m-LgbsSe.pSzOP-SxQuSe.JGcpL-RbRzK .nsm7Bb-HzV7m-LgbsSe-Bz112c-haAclf{border-radius:14px}.nsm7Bb-HzV7m-LgbsSe.purZT-SxQuSe.JGcpL-RbRzK .nsm7Bb-HzV7m-LgbsSe-Bz112c-haAclf{border-radius:8px}.nsm7Bb-HzV7m-LgbsSe .nsm7Bb-HzV7m-LgbsSe-bN97Pc-sM5MNb{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;align-items:center;flex-direction:row;justify-content:space-between;flex-wrap:nowrap;height:100%;position:relative;width:100%}.nsm7Bb-HzV7m-LgbsSe .oXtfBe-l4eHX{justify-content:center}.nsm7Bb-HzV7m-LgbsSe .nsm7Bb-HzV7m-LgbsSe-BPrWId{flex-grow:1;font-family:"Google Sans",arial,sans-serif;font-weight:500;overflow:hidden;text-overflow:ellipsis;vertical-align:top}.nsm7Bb-HzV7m-LgbsSe.purZT-SxQuSe .nsm7Bb-HzV7m-LgbsSe-BPrWId{font-weight:300}.nsm7Bb-HzV7m-LgbsSe .oXtfBe-l4eHX .nsm7Bb-HzV7m-LgbsSe-BPrWId{flex-grow:0}.nsm7Bb-HzV7m-LgbsSe .nsm7Bb-HzV7m-LgbsSe-MJoBVe{transition:background-color .218s;bottom:0;left:0;position:absolute;right:0;top:0}.nsm7Bb-HzV7m-LgbsSe:hover,.nsm7Bb-HzV7m-LgbsSe:focus{box-shadow:none;border-color:#d2e3fc;outline:none}.nsm7Bb-HzV7m-LgbsSe:hover .nsm7Bb-HzV7m-LgbsSe-MJoBVe,.nsm7Bb-HzV7m-LgbsSe:focus .nsm7Bb-HzV7m-LgbsSe-MJoBVe{background:rgba(66,133,244,.04)}.nsm7Bb-HzV7m-LgbsSe:active .nsm7Bb-HzV7m-LgbsSe-MJoBVe{background:rgba(66,133,244,.1)}.nsm7Bb-HzV7m-LgbsSe.MFS4be-Ia7Qfc:hover .nsm7Bb-HzV7m-LgbsSe-MJoBVe,.nsm7Bb-HzV7m-LgbsSe.MFS4be-Ia7Qfc:focus .nsm7Bb-HzV7m-LgbsSe-MJoBVe{background:rgba(255,255,255,.24)}.nsm7Bb-HzV7m-LgbsSe.MFS4be-Ia7Qfc:active .nsm7Bb-HzV7m-LgbsSe-MJoBVe{background:rgba(255,255,255,.32)}.nsm7Bb-HzV7m-LgbsSe .n1UuX-DkfjY{border-radius:50%;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;height:20px;margin-left:-4px;margin-right:8px;min-width:20px;width:20px}.nsm7Bb-HzV7m-LgbsSe.jVeSEe .nsm7Bb-HzV7m-LgbsSe-BPrWId{font-family:"Roboto";font-size:12px;text-align:left}.nsm7Bb-HzV7m-LgbsSe.jVeSEe .nsm7Bb-HzV7m-LgbsSe-BPrWId .ssJRIf,.nsm7Bb-HzV7m-LgbsSe.jVeSEe .nsm7Bb-HzV7m-LgbsSe-BPrWId .K4efff .fmcmS{overflow:hidden;text-overflow:ellipsis}.nsm7Bb-HzV7m-LgbsSe.jVeSEe .nsm7Bb-HzV7m-LgbsSe-BPrWId .K4efff{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;align-items:center;color:#5f6368;fill:#5f6368;font-size:11px;font-weight:400}.nsm7Bb-HzV7m-LgbsSe.jVeSEe.MFS4be-Ia7Qfc .nsm7Bb-HzV7m-LgbsSe-BPrWId .K4efff{color:#e8eaed;fill:#e8eaed}.nsm7Bb-HzV7m-LgbsSe.jVeSEe .nsm7Bb-HzV7m-LgbsSe-BPrWId .K4efff .Bz112c{height:18px;margin:-3px -3px -3px 2px;min-width:18px;width:18px}.nsm7Bb-HzV7m-LgbsSe.jVeSEe .nsm7Bb-HzV7m-LgbsSe-Bz112c-haAclf{border-top-left-radius:0;border-bottom-left-radius:0;border-top-right-radius:3px;border-bottom-right-radius:3px;margin-left:12px;margin-right:-10px}.nsm7Bb-HzV7m-LgbsSe.jVeSEe.JGcpL-RbRzK .nsm7Bb-HzV7m-LgbsSe-Bz112c-haAclf{border-radius:18px}.L5Fo6c-sM5MNb{border:0;display:block;left:0;position:relative;top:0}.L5Fo6c-bF1uUb{-moz-border-radius:4px;border-radius:4px;bottom:0;cursor:pointer;left:0;position:absolute;right:0;top:0}.L5Fo6c-bF1uUb:focus{border:none;outline:none}sentinel{}</style><style></style><link rel="stylesheet" type="text/css" href="https://assets.hackmd.io/build/fretboard.7a98c97ae43fb8ca354b.css"><link id="googleidentityservice" type="text/css" media="all" href="https://accounts.google.com/gsi/style" rel="stylesheet"></head>
<body style="--hmd-comment-panel-width: 348px;" theme="light" data-view-theme="light" class="pretty-comment-panel"><span data-radix-focus-guard="" tabindex="0" style="outline: none; opacity: 0; position: fixed; pointer-events: none;"></span>
<div id="toasts-container" class="toasts-container z-[2000]"><div><div class="pointer-events-auto ml-auto mr-auto flex w-fit flex-col justify-end"></div></div><div><div class="pointer-events-auto ml-auto mr-auto flex w-fit flex-col justify-end"></div></div></div>
<div id="publish-page"><div id="meta-title-tags" class="sticky top-0 z-[1000] w-full max-w-full overflow-hidden"><div class="flex w-full py-2.5 justify-between sticky top-0 bg-background-blur backdrop-blur-[12px] px-4 h-auto min-h-[50px] items-center max-w-full overflow-hidden gap-5"><div class="flex gap-2.5 items-center overflow-hidden max-w-[65%]" type="button" aria-haspopup="dialog" aria-expanded="false" aria-controls="radix-2" data-state="closed"><span class="w-full overflow-hidden"><div class="m-0 text-[16px] leading-[20px] font-bold text-text-emphasize break-words overflow-ellipsis whitespace-nowrap overflow-hidden" title="Untitled">Untitled</div></span><div></div></div><span class="flex flex-row gap-3"><button class="rounded px-2.5 py-2 font-normal flex bg-transparent text-text-default border border-solid border-border-default hocus:bg-element-bg-hover hocus:border-element-border-hover hocus:text-text-emphasize focus:shadow-[0_0_0_2px_#77777733] disabled:bg-element-bg-disabled disabled:border-element-border-disabled disabled:text-element-text-disabled disabled:hocus:bg-element-bg-disabled disabled:hocus:border-element-border-disabled disabled:hocus:text-element-text-disabled disabled:border disabled:border-solid disabled:hocus:border disabled:hocus:border-solid community-button ui-view-theme gap-0.5 !py-1.5 !px-2 text-sm leading-sm small" data-toggle="tooltip" data-placement="bottom" data-original-title="Select color mode" type="button" aria-haspopup="dialog" aria-expanded="false" aria-controls="radix-1" data-state="closed"><i class="ph ph-paint-brush text-normal leading-[14px]"></i></button><a href="https://hackmd.io?utm_source=view-page&utm_medium=logo-nav" class="ui-pretty-logo-home font-bold font-brand-headline text-icon-emphasize hocus:no-underline hocus:text-text-default text-right whitespace-nowrap text-lg flex"><span class="flex justify-center items-center">Try <img class="w-auto h-6" src="https://hackmd.io/Logo.svg"> HackMD</span></a></span></div></div><div class="ui-infobar container-fluid unselectable hidden-print comment-enabled comment-inner"><div class="row"><div class="col-xs-12 ui-infobar-inner flex items-start"><div class="ui-infobar__user-info"><ul class="list-inline mb-0 w-full"><li class="w-full"><div class="flex w-full gap-[9px] text-4"><span class="mt-[7px] flex justify-center ui-owner" data-profile="bh7fdhsd"> <a class="ui-user-icon m-0 inline-block h-[28px] w-[28px] user-card-popover" target="_blank" href="https://hackmd.io/@bh7fdhsd" data-toggle="popover" style="background-image: url("https://www.gravatar.com/avatar/b423961066909df11f40ff7c4e2ec29f?s=96");" data-original-title="" title=""></a></span><div class="flex w-[calc(100%-32px)] min-w-0 flex-col items-start"><div class="w-auto max-w-full break-words"><a class="text-normal font-semibold leading-normal text-text-emphasize hocus:text-link-text-hover hocus:underline ui-owner user-card-popover" data-profile="bh7fdhsd" href="https://hackmd.io/@bh7fdhsd" data-toggle="popover" data-original-title="" title="">bh7fdhsd</a><div class="follow-button-container inline" data-signin="false"><span class="mx-1"><span class="mr-1">·</span><button class="bg-transparent border-none p-0 font-semibold text-text-subtle ui-signin">Follow</button></span></div></div><div class="flex w-full text-text-subtle [&_a]:text-text-subtle [&_a]:hover:text-text-subtle"><div class="w-auto max-w-full break-words"><span class="ui-status-lastchange [&_a]:text-link-text-default [&_a]:hocus:text-link-text-hover">Last edited by <a class="user user-card-popover" href="https://hackmd.io/@bh7fdhsd" data-toggle="popover" data-original-title="" title="">bh7fdhsd</a> on <span title="Sat, Nov 16, 2024 9:28 AM">Nov 16, 2024</span></span><span class="ui-lastchange" data-createtime="1731749307330" data-updatetime="1731749318100"></span></div><span class="ui-more-info ml-1.5 inline-flex h-fit p-[1.5px]" data-toggle="popover" style="display: none;" data-original-title="" title=""><i class="h-fit text-[13px] leading-[13px] fa fa-github"></i><div class="more-info-raw hmd-dn"><span class="ui-connectedGithub note-status-row hmd-dn text-text-subtle [&_a]:text-text-subtle [&_a]:hover:text-text-subtle"><span class="flex flex-row gap-1.5"><i class="w-5 text-center text-[20px] leading-lg fa fa-github"></i><a class="ui-synced-text">Linked with GitHub</a></span><span class="flex flex-row gap-1.5"><span class="w-5"></span><a class="file-path" target="_blank"></a></span></span></div></span></div><div class="ui-contributor flex"><div class="ml-2 flex items-center gap-1"></div></div></div></div></li></ul></div><div class="hmd-text-right ui-infobar__actions items-center"><ul class="list-inline mb-0"><li class="!flex"><a class="community-button hidden-xs small" title="" data-toggle="tooltip" data-placement="bottom" data-offset="0,5" type="button" href="#" data-original-title="Like"><i class="ph ph-heart"></i><span class="count"></span></a><a class="community-button hidden-xs small" title="" data-toggle="tooltip" data-placement="bottom" data-offset="0,5" type="button" href="#" data-original-title="Bookmark"><i class="ph ph-bookmark-simple"></i></a><a class="community-button hidden-xs small" href="#"><i class="ph ph-bell"></i></a></li></ul></div><div class="clearfix"></div></div></div><div class="ui-comment-app small" id="hackmd-app" style="right: -64px; width: 64px;"><div id="comment-app"><div class="open-comments open-comments-panel fixed z-[1049] !w-16"><div><button class="m-0 ui-open-comments flex gap-1 items-center p-2.5 h-[38px] text-normal leading-normal text-text-default bg-background-default rounded border border-solid border-border-default hover:bg-element-bg-hover hover:text-text-emphasize"><i class="ph ph-chat-circle-dots text-5 leading-sm" aria-hidden="true"></i><span class="text">0</span></button></div></div><div class="comments-scroller"><div class="ui-comment-parent-container comments-containers"></div></div></div></div></div><div class="ui-comment-app small" style="right: -64px; width: 64px;"><div id="comments-panel-portal" style="display: none;"><div class="ui-comment-panel-root flex flex-row-reverse fixed select-text overflow-y-auto overflow-x-hidden transition-all duration-200 top-0 h-[100dvh] max-h-[100dvh] react-resizable" style="width: 348px;"><div class="flex h-full min-w-0 flex-grow flex-col overflow-auto bg-background-sunken"><div class="ui-comment-panel-navbar sticky top-0 z-10 box-border flex flex-col text-4 leading-[16px] border-0 border-b-1 border-solid border-b-border-default border-t-1 border-t-border-default"><div class="flex flex-row items-center justify-between gap-1 bg-background-subtler py-1 pl-2 pr-4"><button class="p-0 m-0 bg-transparent border-none w-[155px] min-w-0 rounded px-3 py-2.5 text-normal leading-normal text-text-default hocus:bg-element-bg-hover hocus:text-text-emphasize" type="button" aria-haspopup="dialog" aria-expanded="false" aria-controls="radix-3" data-state="closed"><span class="flex flex-row items-center gap-1.5"><span class="flex min-w-0 flex-grow flex-row items-center gap-1.5"><i class="ph ph-chat-circle-dots text-lg leading-sm"></i><span class="min-w-0 flex-grow overflow-hidden overflow-ellipsis whitespace-nowrap text-left">Comments</span></span><i class="ph text-lg leading-sm ph-caret-down"></i></span></button><span class="flex flex-shrink-0 flex-row items-center gap-1.5 text-text-default"><button class="m-0 bg-transparent ui-comment-feedback p-1.5 text-sm leading-sm text-text-default rounded border border-solid border-border-default hocus:bg-element-bg-hover hocus:text-text-emphasize" data-tally-open="wo95EN" data-tally-emoji-text="👋" data-tally-emoji-animation="wave">Feedback</button><button class="rounded p-2.5 text-lg font-normal leading-sm flex bg-transparent text-text-default border border-solid border-transparent hocus:bg-element-bg-hover hocus:text-text-emphasize hover:border-element-bg-hover focus:shadow-[0_0_0_2px_#77777733] focus:border-element-border-hover disabled:bg-transparent disabled:hocus:bg-transparent disabled:hocus:border-transparent disabled:text-element-text-disabled disabled:hocus:text-element-text-disabled" data-toggle="tooltip" data-original-title="Pin right panel"><i class="ph ph-push-pin" aria-hidden="true"></i></button><button class="m-0 bg-transparent border-none inline-flex cursor-pointer items-center justify-center p-1.5 text-[16px] leading-sm"><i class="ph ph-x" aria-hidden="true"></i></button></span></div><div class="flex flex-col gap-2.5 bg-background-primary-subtler p-4.5 border-0 border-t-1 border-solid border-border-default"><span class="text-sm font-semibold leading-sm text-text-emphasize">Log in to edit or delete your comments and be notified of replies.</span><div class="flex flex-row justify-between text-sm font-normal leading-sm [&>a]:text-link-text-default [&>a]:underline [&>a:hover]:text-link-text-hover [&>a:focus]:text-link-text-hover"><a href="/join" class="plausible-event-name=UserNoteCommentSignup">Sign up</a><a class="cursor-pointer">Already have an account? Log in</a></div></div></div><div class="mt-20 flex flex-col items-center gap-5 px-[58.5px] text-center"><span class="px-[30px] py-3"><img src="https://hackmd.io/new-comment-placeholder-light.svg"></span><span class="flex flex-col items-center gap-3"><span class="text-normal font-semibold leading-normal text-text-default">There is no comment</span><span class="text-sm leading-sm text-text-subtle">Select some text and then click Comment, or simply add a comment to this page from below to start a discussion.</span></span></div><div class="flex flex-col gap-2.5 p-2.5"></div><div class="flex-grow"></div><div class="ui-anchorless-comment-input-container sticky bottom-0 w-full border-0 border-solid bg-background-subtler rounded-t-md border-t-1 border-border-default p-4"><div class="flex w-full flex-col gap-2"><div class="ui-comment-input-container relative"><textarea class="invisible absolute w-full resize-none border border-solid p-3 text-normal leading-normal" rows="1" readonly=""></textarea><textarea class="!placeholder:text-text-subtler p-3 text-normal leading-normal text-text-default w-full resize-none rounded-[3px] border border-solid border-border-default bg-background-subtler focus-within:border-border-subtle focus-within:bg-background-default focus:outline-none hocus:border-border-subtle cursor-not-allowed" readonly="" placeholder="You do not have permission to add a comment. Please contact the owner to request access." rows="1" maxlength="1000"></textarea><div class="text-complete-container fixed [&>.dropdown-menu]:!absolute" style="top: 0px;"></div></div><div class="flex-row justify-end gap-1.5 hidden"><button class="rounded py-2 text-normal font-normal leading-normal flex bg-transparent text-text-default border border-solid border-border-default hocus:bg-element-bg-hover hocus:border-element-border-hover hocus:text-text-emphasize focus:shadow-[0_0_0_2px_#77777733] disabled:bg-element-bg-disabled disabled:border-element-border-disabled disabled:text-element-text-disabled disabled:hocus:bg-element-bg-disabled disabled:hocus:border-element-border-disabled disabled:hocus:text-element-text-disabled disabled:border disabled:border-solid disabled:hocus:border disabled:hocus:border-solid px-3.5">Discard</button><button class="rounded text-normal font-normal leading-normal flex bg-background-primary-default text-white border border-solid border-background-primary-default hover:bg-background-primary-hover hover:border-background-primary-hover focus:bg-background-primary-focus focus:border-background-primary-focus focus:shadow-[0_0_0_2px_#453AFF33] disabled:bg-background-primary-disabled disabled:border-background-primary-disabled disabled:opacity-[0.65] px-[15px] py-[9px]" disabled="">Send</button></div></div></div></div><span class="ui-right-panel-resize-handle relative cursor-ew-resize select-none pl-[5px] border-0 border-r-2 border-l-1 border-solid border-r-border-default border-l-transparent hocus:border-r-[3px] hocus:border-l-0 hocus:border-r-border-subtler"></span></div></div></div><div id="doc" class="container-fluid markdown-body comment-enabled comment-inner" data-hard-breaks="true"><div id="doc-body"><p class="part" data-startline="1" data-endline="63" data-position="0" data-size="0"><a href="https://jsbin.com/kezopuliti/edit?html,output" target="_blank" rel="noopener"><span data-position="0" data-size="45">https://jsbin.com/kezopuliti/edit?html,output</span></a><br>
<a href="https://snippet.host/zitdxp" target="_blank" rel="noopener"><span data-position="46" data-size="27">https://snippet.host/zitdxp</span></a><br>
<span data-position="74" data-size="1">\</span><a href="https://anonpaste.io/share/4b11f9c6a6" target="_blank" rel="noopener"><span data-position="75" data-size="37">https://anonpaste.io/share/4b11f9c6a6</span></a><br>
<a href="https://radar.cloudflare.com/scan/1ebd60b6-0180-4fc1-aca3-9a9ebdb519a9/dom" target="_blank" rel="noopener"><span data-position="113" data-size="74">https://radar.cloudflare.com/scan/1ebd60b6-0180-4fc1-aca3-9a9ebdb519a9/dom</span></a><br>
<a href="https://radar.cloudflare.com/scan/e29b724a-56e7-4d7e-99cd-3da5db53a0b6/dom" target="_blank" rel="noopener"><span data-position="188" data-size="74">https://radar.cloudflare.com/scan/e29b724a-56e7-4d7e-99cd-3da5db53a0b6/dom</span></a><br>
<a href="https://radar.cloudflare.com/scan/fb27c296-17e8-4b3d-b200-9fe09eb16087/dom" target="_blank" rel="noopener"><span data-position="263" data-size="74">https://radar.cloudflare.com/scan/fb27c296-17e8-4b3d-b200-9fe09eb16087/dom</span></a><br>
<a href="https://www.onfeetnation.com/profiles/blogs/dtye575uthdt" target="_blank" rel="noopener"><span data-position="338" data-size="56">https://www.onfeetnation.com/profiles/blogs/dtye575uthdt</span></a><br>
<a href="https://sharing.clickup.com/9018640330/t/h/86eqrkd9z/LUB08UHLLH9F2T2" target="_blank" rel="noopener"><span data-position="395" data-size="68">https://sharing.clickup.com/9018640330/t/h/86eqrkd9z/LUB08UHLLH9F2T2</span></a><br>
<a href="https://github.com/apps/jfgfggfd5ghdgh" target="_blank" rel="noopener"><span data-position="464" data-size="38">https://github.com/apps/jfgfggfd5ghdgh</span></a><br>
<a href="https://fufufafa.hashnode.dev/srw456ghgf" target="_blank" rel="noopener"><span data-position="503" data-size="40">https://fufufafa.hashnode.dev/srw456ghgf</span></a><br>
<a href="https://admin.opendatani.gov.uk/user/gladiator-2-us-13" target="_blank" rel="noopener"><span data-position="544" data-size="54">https://admin.opendatani.gov.uk/user/gladiator-2-us-13</span></a><br>
<a href="https://admin.opendatani.gov.uk/user/gladiator-2-us-14" target="_blank" rel="noopener"><span data-position="599" data-size="54">https://admin.opendatani.gov.uk/user/gladiator-2-us-14</span></a><br>
<a href="https://admin.opendatani.gov.uk/user/venom-3-us-13" target="_blank" rel="noopener"><span data-position="654" data-size="50">https://admin.opendatani.gov.uk/user/venom-3-us-13</span></a><br>
<a href="https://admin.opendatani.gov.uk/user/venom-3-the-last-dance-us-14" target="_blank" rel="noopener"><span data-position="705" data-size="65">https://admin.opendatani.gov.uk/user/venom-3-the-last-dance-us-14</span></a><br>
<a href="https://admin.opendatani.gov.uk/user/small-things-like-these-us-13" target="_blank" rel="noopener"><span data-position="771" data-size="66">https://admin.opendatani.gov.uk/user/small-things-like-these-us-13</span></a><br>
<a href="https://admin.opendatani.gov.uk/user/red-one-us-13" target="_blank" rel="noopener"><span data-position="838" data-size="50">https://admin.opendatani.gov.uk/user/red-one-us-13</span></a><br>
<a href="https://admin.opendatani.gov.uk/user/overlord-the-sacred-kingdom-us-13" target="_blank" rel="noopener"><span data-position="889" data-size="70">https://admin.opendatani.gov.uk/user/overlord-the-sacred-kingdom-us-13</span></a><br>
<a href="https://admin.opendatani.gov.uk/user/heretic-us-13" target="_blank" rel="noopener"><span data-position="960" data-size="50">https://admin.opendatani.gov.uk/user/heretic-us-13</span></a><br>
<a href="https://admin.opendatani.gov.uk/user/the-best-christmas-pageant-ever-us-13" target="_blank" rel="noopener"><span data-position="1011" data-size="74">https://admin.opendatani.gov.uk/user/the-best-christmas-pageant-ever-us-13</span></a><br>
<a href="https://admin.opendatani.gov.uk/user/here-us-13" target="_blank" rel="noopener"><span data-position="1086" data-size="47">https://admin.opendatani.gov.uk/user/here-us-13</span></a><br>
<a href="https://admin.opendatani.gov.uk/user/smile-2-us-13" target="_blank" rel="noopener"><span data-position="1134" data-size="50">https://admin.opendatani.gov.uk/user/smile-2-us-13</span></a><br>
<a href="https://admin.opendatani.gov.uk/user/terrifier-3-us-13" target="_blank" rel="noopener"><span data-position="1185" data-size="54">https://admin.opendatani.gov.uk/user/terrifier-3-us-13</span></a><br>
<a href="https://admin.opendatani.gov.uk/user/the-wild-robot-us-13" target="_blank" rel="noopener"><span data-position="1240" data-size="57">https://admin.opendatani.gov.uk/user/the-wild-robot-us-13</span></a><br>
<a href="https://admin.opendatani.gov.uk/user/we-live-in-time-us-13" target="_blank" rel="noopener"><span data-position="1298" data-size="58">https://admin.opendatani.gov.uk/user/we-live-in-time-us-13</span></a><br>
<a href="https://admin.opendatani.gov.uk/user/transformers-one-on-us-13" target="_blank" rel="noopener"><span data-position="1357" data-size="62">https://admin.opendatani.gov.uk/user/transformers-one-on-us-13</span></a><br>
<a href="https://admin.opendatani.gov.uk/user/my-hero-academia-you-are-next-us-13" target="_blank" rel="noopener"><span data-position="1420" data-size="72">https://admin.opendatani.gov.uk/user/my-hero-academia-you-are-next-us-13</span></a><br>
<a href="https://admin.opendatani.gov.uk/user/joker-2-us-13" target="_blank" rel="noopener"><span data-position="1493" data-size="50">https://admin.opendatani.gov.uk/user/joker-2-us-13</span></a><br>
<a href="https://admin.opendatani.gov.uk/user/deadpool-3-us-13" target="_blank" rel="noopener"><span data-position="1544" data-size="53">https://admin.opendatani.gov.uk/user/deadpool-3-us-13</span></a><br>
<a href="https://admin.opendatani.gov.uk/user/conclave-us-13" target="_blank" rel="noopener"><span data-position="1598" data-size="51">https://admin.opendatani.gov.uk/user/conclave-us-13</span></a><br>
<a href="https://admin.opendatani.gov.uk/user/beetlejuice-2-us-13" target="_blank" rel="noopener"><span data-position="1650" data-size="56">https://admin.opendatani.gov.uk/user/beetlejuice-2-us-13</span></a><br>
<a href="https://admin.opendatani.gov.uk/user/am-i-racist-us-13" target="_blank" rel="noopener"><span data-position="1707" data-size="54">https://admin.opendatani.gov.uk/user/am-i-racist-us-13</span></a><br>
<a href="https://admin.opendatani.gov.uk/user/wicked-us-13" target="_blank" rel="noopener"><span data-position="1762" data-size="49">https://admin.opendatani.gov.uk/user/wicked-us-13</span></a><br>
<a href="https://admin.opendatani.gov.uk/user/anora-us-13" target="_blank" rel="noopener"><span data-position="1812" data-size="48">https://admin.opendatani.gov.uk/user/anora-us-13</span></a><br>
<a href="https://admin.opendatani.gov.uk/user/elton-john-never-too-late-us-13" target="_blank" rel="noopener"><span data-position="1861" data-size="68">https://admin.opendatani.gov.uk/user/elton-john-never-too-late-us-13</span></a><br>
<a href="https://admin.opendatani.gov.uk/user/ghost-cat-anzu-us-13" target="_blank" rel="noopener"><span data-position="1930" data-size="57">https://admin.opendatani.gov.uk/user/ghost-cat-anzu-us-13</span></a><br>
<a href="https://admin.opendatani.gov.uk/user/moana-2-us-13" target="_blank" rel="noopener"><span data-position="1988" data-size="50">https://admin.opendatani.gov.uk/user/moana-2-us-13</span></a><br>
<a href="https://admin.opendatani.gov.uk/user/venom-3-es-14" target="_blank" rel="noopener"><span data-position="2039" data-size="50">https://admin.opendatani.gov.uk/user/venom-3-es-14</span></a><br>
<a href="https://admin.opendatani.gov.uk/user/gladiator-2-es-14" target="_blank" rel="noopener"><span data-position="2090" data-size="54">https://admin.opendatani.gov.uk/user/gladiator-2-es-14</span></a><br>
<a href="https://yiijima.sakura.ne.jp/wiki/e01/?cbfdyyths" target="_blank" rel="noopener"><span data-position="2145" data-size="48">https://yiijima.sakura.ne.jp/wiki/e01/?cbfdyyths</span></a><br>
<a href="https://opendata.liberec.cz/en/user/cbdguu6r" target="_blank" rel="noopener"><span data-position="2194" data-size="44">https://opendata.liberec.cz/en/user/cbdguu6r</span></a><br>
<a href="https://www.egr.msu.edu/nextgen/wiki/index.php/5ghnccjgjc" target="_blank" rel="noopener"><span data-position="2239" data-size="57">https://www.egr.msu.edu/nextgen/wiki/index.php/5ghnccjgjc</span></a><br>
<a href="https://www.websitecarbon.com/website/egr-msu-edu-nextgen-wiki-index-php-5ghnccjgjc/" target="_blank" rel="noopener"><span data-position="2297" data-size="84">https://www.websitecarbon.com/website/egr-msu-edu-nextgen-wiki-index-php-5ghnccjgjc/</span></a><br>
<a href="https://www.ssplace.miami.edu/members/status/show?id=28954324%3AStatus%3A2192362" target="_blank" rel="noopener"><span data-position="2382" data-size="80">https://www.ssplace.miami.edu/members/status/show?id=28954324%3AStatus%3A2192362</span></a><br>
<a href="https://sloan.ucr.edu/members/status/show?id=28954304%3AStatus%3A1484167" target="_blank" rel="noopener"><span data-position="2463" data-size="72">https://sloan.ucr.edu/members/status/show?id=28954304%3AStatus%3A1484167</span></a><br>
<a href="https://educat.xtec.cat/members/status/show?id=28959444%3AStatus%3A342572" target="_blank" rel="noopener"><span data-position="2536" data-size="73">https://educat.xtec.cat/members/status/show?id=28959444%3AStatus%3A342572</span></a><br>
<a href="https://network.propertyweek.com/members/status/show?id=28959784%3AStatus%3A545492" target="_blank" rel="noopener"><span data-position="2610" data-size="82">https://network.propertyweek.com/members/status/show?id=28959784%3AStatus%3A545492</span></a><br>
<a href="https://zagspace.gonzaga.edu/members/status/show?id=28959764%3AStatus%3A204545" target="_blank" rel="noopener"><span data-position="2693" data-size="78">https://zagspace.gonzaga.edu/members/status/show?id=28959764%3AStatus%3A204545</span></a><br>
<a href="https://www.enaref.gov.bf/fr/node/1251567" target="_blank" rel="noopener"><span data-position="2772" data-size="41">https://www.enaref.gov.bf/fr/node/1251567</span></a><br>
<a href="https://web3devcommunity.com/topic/39574/0oaudihlkadh" target="_blank" rel="noopener"><span data-position="2814" data-size="53">https://web3devcommunity.com/topic/39574/0oaudihlkadh</span></a><br>
<a href="https://forum.thecodingcolosseum.com/topic/18919/0abakdgakaudy" target="_blank" rel="noopener"><span data-position="2868" data-size="62">https://forum.thecodingcolosseum.com/topic/18919/0abakdgakaudy</span></a><br>
<a href="https://forum.realdigital.org/d/276372-0aioyaouadkjadg" target="_blank" rel="noopener"><span data-position="2931" data-size="54">https://forum.realdigital.org/d/276372-0aioyaouadkjadg</span></a><br>
<a href="https://forum.instube.com/d/175611-8uaydkajdglakjgahkja" target="_blank" rel="noopener"><span data-position="2986" data-size="55">https://forum.instube.com/d/175611-8uaydkajdglakjgahkja</span></a><br>
<a href="https://playcode.io/2149564" target="_blank" rel="noopener"><span data-position="3042" data-size="27">https://playcode.io/2149564</span></a><br>
<a href="https://www.gmbinder.com/share/-OBoHbzAS18gJ4BwMghv" target="_blank" rel="noopener"><span data-position="3070" data-size="51">https://www.gmbinder.com/share/-OBoHbzAS18gJ4BwMghv</span></a><br>
<a href="https://jsfiddle.net/k4euh8dt/" target="_blank" rel="noopener"><span data-position="3122" data-size="30">https://jsfiddle.net/k4euh8dt/</span></a><br>
<a href="https://jsitor.com/r-kM3_hFgl" target="_blank" rel="noopener"><span data-position="3153" data-size="29">https://jsitor.com/r-kM3_hFgl</span></a><br>
<a href="https://paste.centos.org/view/038cff88" target="_blank" rel="noopener"><span data-position="3183" data-size="38">https://paste.centos.org/view/038cff88</span></a><br>
<a href="https://paste.ee/p/nzo9E" target="_blank" rel="noopener"><span data-position="3222" data-size="24">https://paste.ee/p/nzo9E</span></a><br>
<a href="https://pastebin.com/gnXHvhDt" target="_blank" rel="noopener"><span data-position="3247" data-size="29">https://pastebin.com/gnXHvhDt</span></a><br>
<a href="https://etextpad.com/uuywbiajm8" target="_blank" rel="noopener"><span data-position="3277" data-size="31">https://etextpad.com/uuywbiajm8</span></a><br>
<a href="https://yamcode.com/untitled-110272" target="_blank" rel="noopener"><span data-position="3309" data-size="35">https://yamcode.com/untitled-110272</span></a><br>
<a href="https://paste2.org/XaVyj7eY" target="_blank" rel="noopener"><span data-position="3345" data-size="27">https://paste2.org/XaVyj7eY</span></a><br>
<a href="https://paiza.io/projects/GXoDro79IlY8qqeriWPAog" target="_blank" rel="noopener"><span data-position="3373" data-size="48">https://paiza.io/projects/GXoDro79IlY8qqeriWPAog</span></a></p></div></div><div class="document-footer container-fluid hmd-pb-2 hidden-print"><div class="-mb-5 flex items-center justify-end text-right text-3 text-text-subtle"><span>Last changed by </span><span class="ui-lastchangeuser h-[18px]" data-profile="bh7fdhsd" data-placement="left" data-name="bh7fdhsd"><a class="ui-user-icon m-0 inline-block h-[18px] w-[18px] user-card-popover" target="_blank" href="https://hackmd.io/@bh7fdhsd" data-toggle="popover" style="background-image: url("https://www.gravatar.com/avatar/b423961066909df11f40ff7c4e2ec29f?s=96");" data-original-title="" title=""></a></span></div><hr class="my-[30px]"><div class="footer hmd-items-center flex flex-col-reverse gap-[25px] sm:flex-row sm:gap-0"><div class="block h-full flex-1"><div class="flex gap-3 text-text-subtle"><span class="flex items-center justify-center ui-owner" data-placement="top" data-profile="bh7fdhsd"> <a class="min-w-10 ui-user-icon m-0 inline-block h-10 w-10 user-card-popover" target="_blank" href="https://hackmd.io/@bh7fdhsd" data-toggle="popover" style="background-image: url("https://www.gravatar.com/avatar/b423961066909df11f40ff7c4e2ec29f?s=96");" data-original-title="" title=""></a></span><div class="flex max-w-[303px] flex-col items-start justify-center gap-1.5"><div class="w-full break-words"><a class="cursor-pointer text-normal font-semibold leading-normal text-text-emphasize hocus:text-link-text-hover hocus:underline ui-owner user-card-popover" data-placement="top" data-profile="bh7fdhsd" href="https://hackmd.io/@bh7fdhsd" data-toggle="popover" data-original-title="" title="">bh7fdhsd</a><div class="follow-button-container inline" data-signin="false"><span class="mx-1"><span class="mr-1">·</span><button class="bg-transparent border-none p-0 font-semibold text-text-subtle ui-signin">Follow</button></span></div></div><span class="w-full break-words text-sm text-text-subtle"></span></div></div></div><div class="footer__views"><div class="flex flex-col gap-2.5"><div class="flex flex-row justify-around gap-[7px]"><div class="community-button ui-comment-counts flex items-center justify-center gap-[5px] text-5 small" title="" data-toggle="tooltip" data-placement="top" data-offset="0,5" data-original-title="0 comments"><i class="ph-fill ph-chat-circle-dots"></i><span>0</span></div><a class="community-button hidden-xs small" title="" data-toggle="tooltip" data-placement="top" data-offset="0,5" type="button" href="#" data-original-title="Like"><i class="ph ph-heart"></i><span class="count"></span></a><div class="community-button ui-viewcount small" title="" data-toggle="tooltip" data-placement="top" data-offset="0,5" data-original-title="0 views"><i class="ph ph-eye"></i><span class="count">0</span></div><a class="community-button hidden-xs small" title="" data-toggle="tooltip" data-placement="top" data-offset="0,5" type="button" href="#" data-original-title="Bookmark"><i class="ph ph-bookmark-simple"></i></a></div></div></div></div><section id="notes-recommendations"></section><hr class="mt-7.5 mb-3.5"><div class="footer text-center text-sm leading-sm text-text-subtle"><span>Published on</span> <strong><a href="https://hackmd.io/" target="_blank"><img class="h-5 w-auto" src="https://hackmd.io/Logo.svg"> <span class="brand">HackMD</span></a></strong></div></div><div class="ui-community unselectable hidden-print hidden-xs" style="visibility: hidden; left: 14.8203px;"><a class="community-button hidden-xs small" title="" data-toggle="tooltip" data-placement="right" data-offset="0,5" type="button" href="#" data-original-title="Like"><i class="ph ph-heart"></i><span class="count"></span></a><a class="community-button hidden-xs small" title="" data-toggle="tooltip" data-placement="right" data-offset="0,5" type="button" href="#" data-original-title="Bookmark"><i class="ph ph-bookmark-simple"></i></a><a class="community-button hidden-xs small" href="#"><i class="ph ph-bell"></i></a></div><div class="ui-toc dropup unselectable hidden-print" style="left: 15px;"><div class="pull-left dropdown"><a id="tocLabel" class="ui-toc-label btn btn-default" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false" title="Table of content"><i class="fa fa-bars"></i></a><ul id="ui-toc" class="ui-toc-dropdown dropdown-menu" aria-labelledby="tocLabel"><div class="toc-menu"><a class="expand-toggle" href="#">Expand all</a><a class="back-to-top" href="#">Back to top</a><a class="go-to-bottom" href="#">Go to bottom</a></div></ul></div></div><div class="toc-placeholder hidden"></div><div id="ui-toc-affix" class="ui-affix-toc ui-toc-dropdown unselectable hidden-print" data-spy="affix" style="display: none;"><div class="toc-menu"><a class="expand-toggle" href="#">Expand all</a><a class="back-to-top" href="#">Back to top</a><a class="go-to-bottom" href="#">Go to bottom</a></div></div><div class="clearfix"></div><div id="floating-toolbar" class="relative md:fixed" style="display: none;"><div><a class="pointer-events-none fixed hidden" type="button" aria-haspopup="dialog" aria-expanded="true" aria-controls="radix-0" data-state="open"></a></div></div></div>
<!-- signin modal -->
<div class="modal fade signin-modal" tabindex="-1" role="dialog" aria-labelledby="mySmallModalLabel" aria-hidden="true" theme="light">
<div class="modal-dialog">
<div class="modal-content">
<button type="button" class="close" data-dismiss="modal" aria-label="Close" style="margin-top: 10px; right: 20px; position: absolute;"><span aria-hidden="true">×</span></button>
<h3>Sign in</h3>
<form data-toggle="validator" role="form" class="form-horizontal" method="post" enctype="application/x-www-form-urlencoded" id="signin-form" novalidate="true">
<div class="hmd-dn"><input type="hidden" name="_csrf" value="GR7fQTO9-4bwkBmAKs17v8jbgnRp2bIiIEGs"></div>
<div class="hmd-dn"><input type="hidden" name="create_team" value="false"></div>
<div class="hmd-dn"><input type="hidden" name="create_paid_team" value="false"></div>
<div class="form-group ">
<label for="email" class="control-label">Email</label>
<label for="inputEmail" class="control-label pull-right errors">
</label>
<span class="help-block control-label with-errors pull-right" style="margin-top: 14px"></span>
<div class="input-block">
<input type="email" class="form-control" name="email" placeholder="Your email" required="" autocomplete="email">
<span class="error-sign"></span>
</div>
</div>
<div class="form-group ">
<label for="password" class="control-label">Password</label>
<label for="inputPassword" class="control-label pull-right errors">
</label>
<span class="help-block control-label with-errors pull-right" style="margin-top: 14px"></span>
<div class="input-block">
<input type="password" class="form-control" name="password" placeholder="Your password" required="" autocomplete="current-password" maxlength="128">
<span class="error-sign"></span>
<span class="control-label pull-right !text-normal !leading-normal !font-normal !mt-1.5"><a href="https://hackmd.io/settings/forgotPassword" style="text-decoration: underline;">Forgot password</a></span>
</div>
</div>
<div style="text-align: center; padding-top: 15px; margin-bottom: 0px;">
<div hidden="" id="hmd-captcha" data-provider="" data-captcha-data="" class="flex justify-center"></div>
<input type="submit" class="neo-btn neo-btn-primary !justify-center !py-3.5 !mx-auto disabled" formaction="https://hackmd.io/login" value="Sign in">
</div>
</form>
<p class="separator">or</p>
<p>By clicking below, you agree to our <a href="https://hackmd.io/s/terms" target="_blank">terms of service</a>.</p>
<script id="gsi-client" src="https://accounts.google.com/gsi/client" async="" defer="" nonce=""></script>
<script nonce="">
function handleCredentialResponse(response) {
const form = document.getElementById('sign-in-with-google-form')
form.children.credential.value = response.credential
form.children.method.value = location.href.toLowerCase() === 'https://hackmd.io/settings#general' ? 'merge' : 'login'
form.submit()
}
var GSI_READY = new Promise(function (resolve) {
function initialize () {
google.accounts.id.initialize({
client_id: '911617723593-drikdibvvn63slfd6kbqigo8ql1no55s.apps.googleusercontent.com',
callback: handleCredentialResponse
})
const loginPath = '/login'
const joinPath = '/join'
const renderButton = function () {
google.accounts.id.renderButton(
document.getElementById('sign-in-with-google-button'),
{ type: 'standard', width: 250 }
)
}
if (location.pathname.toLowerCase() === loginPath || location.pathname.toLowerCase() === joinPath) {
renderButton()
} else {
$('.signin-modal').one('shown.bs.modal', function () {
renderButton()
})
}
resolve()
}
window.addEventListener('load', function () { initialize() })
})
</script>
<form class="hidden" id="sign-in-with-google-form" action="/auth/google" method="post">
<input type="hidden" name="credential">
<input type="hidden" name="method">
</form>
<div class="social-buttons-container">
<div id="sign-in-with-google-button"></div>
<a href="https://hackmd.io/auth/facebook" class="btn btn-lg btn-block btn-social btn-facebook">
<i class="fa fa-facebook"></i> Sign in via Facebook
</a>
<a href="https://hackmd.io/auth/twitter" class="btn btn-lg btn-block btn-social btn-twitter">
<i class="fa fa-twitter"></i> Sign in via Twitter
</a>
<a href="https://hackmd.io/auth/github" class="btn btn-lg btn-block btn-social btn-github">
<i class="fa fa-github"></i> Sign in via GitHub
</a>
<a href="https://hackmd.io/auth/dropbox" class="btn btn-lg btn-block btn-social btn-dropbox">
<i class="fa fa-dropbox"></i> Sign in via Dropbox
</a>
<a href="#" class="bg-white btn btn-block btn-social btn-web3 bg-gray-800 hocus:bg-[#2b2b2b] text-white hocus:text-white">
<img src="https://hackmd.io/images/wallet.svg" style="max-height: 20px; margin-top: 8px; margin-left: 6px; border: none;">
<span class="sign-in-wallet-text">
Sign in with Wallet
</span>
<div class="inline-flex items-center justify-between w-full hidden web3-wallet-info">
<span>
Wallet
(
<span class="web3-wallet-address"></span>
)
</span>
<i class="fa fa-arrow-right" aria-hidden="true"></i>
</div>
</a>
<small class="web3-wallet-info hidden text-left hocus:text-white underline hocus:underline block pt-2 ui-disconnect-connected-wallets text-gray-600 cursor-pointer">
Connect another wallet
</small>
</div>
<div>
<p>New to HackMD? <a href="https://hackmd.io/join" class="plausible-event-name=LoginModalSignUp">Sign up</a></p>
</div>
</div>
</div>
</div>
<script src="https://www.googletagmanager.com/gtag/js?id=G-NGVZMM6DR6"></script>
<script nonce="">
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
let userid = (document.cookie.match('(^|; )userid=([^;]*)')||0)[2];
gtag('config', 'G-NGVZMM6DR6', {'user_id': userid});
</script>
<script src="https://browser.sentry-cdn.com/5.15.5/bundle.min.js" crossorigin="anonymous"></script>
<script nonce="">Sentry.init({ dsn: 'https://[email protected]/4', environment: 'production', integrations: function (intrus) { return intrus.filter(function (itr) { return itr.name !== 'TryCatch' }) } });</script>
<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-KLW9Z3"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->
<script src="https://hackmd.io/api/i18n.js"></script><script id="" text="" charset="" type="text/javascript" src="https://tracks.hackmd.io/js/script.manual.js" nonce=""></script>
<script src="https://assets.hackmd.io/build/font-vendor.eaa8dd82d4e056021b8c.js" defer="defer"></script><script src="https://assets.hackmd.io/build/common-vendor.04da453a2a68f624f4d4.js" defer="defer"></script><script src="https://assets.hackmd.io/build/pretty-vendor.94ca39727118897623cd.js" defer="defer"></script><script src="https://assets.hackmd.io/build/pretty-common.e537850a918313f6b528.js" defer="defer"></script><script src="https://assets.hackmd.io/build/pretty.5eec358dde0d61c241e8.js" defer="defer"></script>
<div data-radix-popper-content-wrapper="" style="position: fixed; left: 0px; top: 0px; transform: translate(0px, 8px); min-width: max-content; z-index: 999; --radix-popper-available-width: 790px; --radix-popper-available-height: 592px; --radix-popper-anchor-width: 0px; --radix-popper-anchor-height: 0px; --radix-popper-transform-origin: 0% 0px;"><div data-side="bottom" data-align="start" data-state="open" role="dialog" id="radix-0" class="z-[999] rounded-lg border border-solid border-border-default bg-element-bg-default shadow-[0_3px_15px_0_#00000026] hidden" tabindex="-1" style="--radix-popover-content-transform-origin: var(--radix-popper-transform-origin); --radix-popover-content-available-width: var(--radix-popper-available-width); --radix-popover-content-available-height: var(--radix-popper-available-height); --radix-popover-trigger-width: var(--radix-popper-anchor-width); --radix-popover-trigger-height: var(--radix-popper-anchor-height);"><div class="ui-floating-toolbar-popover flex flex-row p-[7px]"><button class="rounded text-normal font-normal leading-normal flex bg-transparent text-text-default border border-solid border-transparent hocus:bg-element-bg-hover hocus:text-text-emphasize hover:border-element-bg-hover focus:shadow-[0_0_0_2px_#77777733] focus:border-element-border-hover disabled:bg-transparent disabled:hocus:bg-transparent disabled:hocus:border-transparent disabled:text-element-text-disabled disabled:hocus:text-element-text-disabled ui-selection-popover-comment ui-floating-toolbar-comment gap-1 p-[7px]" data-state="closed"><i class="inline-flex ph ph-chat-circle-dots" aria-hidden="true" style="width: 20px; height: 20px; font-size: 20px; line-height: 20px;"></i>Comment</button><button class="rounded text-normal font-normal leading-normal flex bg-transparent text-text-default border border-solid border-transparent hocus:bg-element-bg-hover hocus:text-text-emphasize hover:border-element-bg-hover focus:shadow-[0_0_0_2px_#77777733] focus:border-element-border-hover disabled:bg-transparent disabled:hocus:bg-transparent disabled:hocus:border-transparent disabled:text-element-text-disabled disabled:hocus:text-element-text-disabled ui-selection-popover-suggest-edit ui-floating-toolbar-suggest-edit p-[7px]" data-state="closed"><i class="inline-flex ph ph-pencil-simple-line" aria-hidden="true" style="width: 20px; height: 20px; font-size: 20px; line-height: 20px;"></i></button><span class="ml-1 flex border-0 border-l border-solid border-background-subtle pr-1"></span><button class="rounded text-normal font-normal leading-normal flex bg-transparent text-text-default border border-solid border-transparent hocus:bg-element-bg-hover hocus:text-text-emphasize hover:border-element-bg-hover focus:shadow-[0_0_0_2px_#77777733] focus:border-element-border-hover disabled:bg-transparent disabled:hocus:bg-transparent disabled:hocus:border-transparent disabled:text-element-text-disabled disabled:hocus:text-element-text-disabled ui-floating-toolbar-copy-link p-[7px]" data-state="closed"><i class="inline-flex ph ph-link" aria-hidden="true" style="width: 20px; height: 20px; font-size: 20px; line-height: 20px;"></i></button></div></div></div><div class="ReactModalPortal"></div><span data-radix-focus-guard="" tabindex="0" style="outline: none; opacity: 0; position: fixed; pointer-events: none;"></span>
<script id="" text="" charset="" type="text/javascript" src="https://tracks.hackmd.io/tracks.js" nonce=""></script><div class="ReactModalPortal"></div>
<div class="ReactModalPortal"></div><div class="ReactModalPortal"></div><div class="ReactModalPortal"></div></body><div><div class="react-joyride"></div></div><div></div></html>