Markdown parser, done right. 100% CommonMark support, extensions, syntax plugins & high speed https://markdown-it.github.io/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

1632 lines
265 KiB

<!DOCTYPE html><html><head><title>markdown-it 14.1.0 API documentation</title><meta charset="utf-8"><meta name="generator" content="ndoc"><style rel="stylesheet">article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
nav,
section {
display: block;
}
audio,
canvas,
video {
display: inline-block;
*display: inline;
*zoom: 1;
}
audio:not([controls]) {
display: none;
}
html {
font-size: 100%;
-webkit-text-size-adjust: 100%;
-ms-text-size-adjust: 100%;
}
a:hover,
a:active {
outline: 0;
}
sub,
sup {
position: relative;
font-size: 75%;
line-height: 0;
vertical-align: baseline;
}
sup {
top: -0.5em;
}
sub {
bottom: -0.25em;
}
img {
max-width: 100%;
height: auto;
border: 0;
-ms-interpolation-mode: bicubic;
}
button,
input,
select,
textarea {
margin: 0;
font-size: 100%;
vertical-align: middle;
}
button,
input {
*overflow: visible;
line-height: normal;
}
button::-moz-focus-inner,
input::-moz-focus-inner {
padding: 0;
border: 0;
}
button,
input[type="button"],
input[type="reset"],
input[type="submit"] {
cursor: pointer;
-webkit-appearance: button;
}
input[type="search"] {
-webkit-appearance: textfield;
box-sizing: content-box;
}
input[type="search"]::-webkit-search-decoration,
input[type="search"]::-webkit-search-cancel-button {
-webkit-appearance: none;
}
textarea {
overflow: auto;
vertical-align: top;
}
p {
margin: 0 0 11px;
font-family: Verdana, sans-serif;
font-size: 14px;
line-height: 22px;
}
p small {
font-size: 12px;
color: #999;
}
.lead {
margin-bottom: 22px;
font-size: 20px;
font-weight: 200;
line-height: 33px;
}
h1,
h2,
h3,
h4,
h5,
h6 {
margin: 0;
font-weight: normal;
color: #444;
text-rendering: optimizelegibility;
}
h1 small,
h2 small,
h3 small,
h4 small,
h5 small,
h6 small {
font-weight: normal;
color: #999;
}
h1 {
font-size: 36px;
line-height: 55px;
}
h1 small {
font-size: 18px;
}
h2 {
font-size: 30px;
line-height: 44px;
}
h2 small {
font-size: 18px;
}
h3 {
line-height: 44px;
font-size: 24px;
}
h3 small {
font-size: 18px;
}
h4,
h5,
h6 {
line-height: 22px;
}
h4 {
line-height: 33px;
font-size: 18px;
}
h4 small {
font-size: 14px;
}
h5 {
font-size: 14px;
}
h6 {
font-size: 12px;
color: #999;
text-transform: uppercase;
}
.page-header {
padding-bottom: 21px;
margin: 22px 0;
border-bottom: 1px solid #ccc;
}
.page-header h1 {
line-height: 1;
}
ul,
ol {
padding: 0;
margin: 0 0 11px 25px;
}
ul ul,
ul ol,
ol ol,
ol ul {
margin-bottom: 0;
}
ul {
list-style: disc;
}
ol {
list-style: decimal;
}
li {
line-height: 22px;
}
ul.unstyled,
ol.unstyled {
margin-left: 0;
list-style: none;
}
dl {
margin-bottom: 22px;
}
dt,
dd {
line-height: 22px;
}
dt {
font-weight: bold;
}
dd {
margin-left: 11px;
}
hr {
margin: 22px 0;
border: 0;
border-top: 1px solid hrBorder;
border-bottom: 1px solid #fff;
}
strong {
font-weight: bold;
}
em {
font-style: italic;
}
.muted {
color: #999;
}
abbr {
font-size: 90%;
text-transform: uppercase;
border-bottom: 1px dotted #ddd;
cursor: help;
}
blockquote {
padding: 0 0 0 15px;
margin: 0 0 22px;
border-left: 5px solid #ccc;
}
blockquote p {
margin-bottom: 0;
}
blockquote small {
display: block;
line-height: 22px;
color: #999;
}
blockquote small:before {
content: '\2014 \00A0';
}
blockquote.pull-right {
float: right;
padding-left: 0;
padding-right: 15px;
border-left: 0;
border-right: 5px solid #ccc;
}
blockquote.pull-right p,
blockquote.pull-right small {
text-align: right;
}
q:before,
q:after,
blockquote:before,
blockquote:after {
content: "";
}
address {
display: block;
margin-bottom: 22px;
line-height: 22px;
font-style: normal;
}
small {
font-size: 100%;
}
cite {
font-style: normal;
}
body {
margin: 0;
font-family: Verdana, sans-serif;
font-size: 14px;
line-height: 22px;
color: #444;
background-color: #fff;
overflow-x: hidden;
}
a {
color: #036;
text-decoration: none;
border-bottom: 1px solid #999;
}
a:hover {
color: #800;
border-color: #800;
}
.main {
padding-left: 390px;
width: 600px;
}
.sidebar {
background: #f8f8f8;
position: fixed;
top: 0;
bottom: 0;
left: 0;
width: 240px;
overflow: hidden;
}
#search {
background-color: #eee;
padding: 7px 0;
height: 30px;
box-shadow: 0 0 5px #aaa;
}
#search input {
width: 90%;
margin: auto;
margin-top: 3px;
padding: 4px;
display: block;
background-color: #f8f8f8;
border: 0px none;
border-radius: 3px;
box-shadow: 0 0 2px #666 inset;
}
#search-results {
z-index: 1000;
background-color: #f8fcf8;
display: none;
}
.footer {
border-top: 1px solid #eee;
font-size: 10px;
opacity: 0.5;
}
.gh-ribbon {
position: absolute;
right: -60px;
top: 44px;
z-index: 10000;
background-color: #686868;
padding: 1px 0;
transform: rotate(45deg);
width: 230px;
box-shadow: 0 0 2px rgba(102,102,102,0.4);
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.gh-ribbon a {
display: block;
color: #fff;
text-decoration: none;
border: 1px solid #ccc;
font-size: 13px;
font-weight: bold;
padding: 4px 50px 2px;
text-align: center;
outline: none;
}
.gh-ribbon a:hover {
text-decoration: none;
}
.csstransforms .gh-ribbon {
display: block;
}
.menu {
padding: 0;
margin: 0;
list-style: none;
top: 45px;
bottom: 0;
position: absolute;
overflow-x: hidden;
overflow-y: auto;
width: 240px;
}
.menu a {
border: 0;
padding: 3px 10px 3px 28px;
background-position: 6px 50%;
background-repeat: no-repeat;
display: block;
transition: all 0.3s ease;
color: #333;
display: block;
text-align: left;
text-decoration: none;
white-space: nowrap;
}
.menu a.deprecated {
opacity: 0.5;
}
.menu a.current {
background-color: #ddd;
}
.menu a.current-parent {
background-color: #eee;
}
.menu a:hover {
background-color: #ccc;
}
.menu a.section {
background-color: #000;
background: linear-gradient(#000 70%, #444) repeat scroll 0 0 transparent;
color: #ccc;
font-weight: bold;
padding: 6px 10px 6px 28px;
}
.menu a.class {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHhSURBVDjLpZI9SJVxFMZ/r2YFflw/kcQsiJt5b1ije0tDtbQ3GtFQYwVNFbQ1ujRFa1MUJKQ4VhYqd7K4gopK3UIly+57nnMaXjHjqotnOfDnnOd/nt85SURwkDi02+ODqbsldxUlD0mvHw09ubSXQF1t8512nGJ/Uz/5lnxi0tB+E9QI3D//+EfVqhtppGxUNzCzmf0Ekojg4fS9cBeSoyzHQNuZxNyYXp5ZM5Mk1ZkZT688b6thIBenG/N4OB5B4InciYBCVyGnEBHO+/LH3SFKQuF4OEs/51ndXMXC8Ajqknrcg1O5PGa2h4CJUqVES0OO7sYevv2qoFBmJ/4gF4boaOrg6rPLYWaYiVfDo0my8w5uj12PQleB0vcp5I6HsHAUoqUhR29zH+5B4IxNTvDmxljy3x2YCYUwZVlbzXJh9UKeQY6t2m0Lt94Oh5loPdqK3EkjzZi4MM/Y9Db3MTv/mYWVxaqkw9IOATNR7B5ABHPrZQrtg9sb8XDKa1+QOwsri4zeHD9SAzE1wxBTXz9xtvMc5ZU5lirLSKIz18nJnhOZjb22YKkhd4odg5icpcoyL669TAAujlyIvmPHSWXY1ti1AmZ8mJ3ElP1ips1/YM3H300g+W+51nc95YPEX8fEbdA2ReVYAAAAAElFTkSuQmCC");
}
.menu a.class-method {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAXRQTFRFvLXSuLHQwrzWsKjKxb/YrKTIq6PHr6fKta7OnpS+tKzN/v7+pp3EpZzD2tbmurPRh3uvx8HZzsneopnBjIGx3NnoxL7Y0czgjoO09fT4iHyw0Mvf4d7r0s7hoZjBmI67xsDZy8bcrqbJ3t3hdGmcZ1uQ7evzt7DMysXcqqW7in+xqJ/FtK3Nm5G9lou5nJK99/b6urbHUUlnyMLaTUNvwrzX5OHtgHyMXVhx5uTut6/PubLQ0s/d3tvpNS5LgnmjTkZlTUZmVU1vUklu7Ovv1dLgWU1/fG+o9PT2r6jGY1aObGaAn5uwVk5xkIW129fnvbfT/Pv9TEJsrqfJc2aeRDtgf3WhwLrVi3+ynZW2mo+819Tlp57Ea2CRvbbTin6x7+7yb2OV+fn72dXlTkRw2NTllIm4q6LHfG+mT0Vx29jnZ2J4k4m4mY+8VEp19fX31NDj////npup4+Hpgnas3droXlKIsa661NHfpqG1s6vM////z9cmxgAAAHx0Uk5T////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAFq2jEAAADzSURBVHjaYqgGAzMFplIIiwGIJQMLrbP45LmT1CAC0QwMBlWy4nKSuVpVIAEZaUuhYB5BlrQcRltOdaCAqJI0i6KQIIsiE6OOmyZISwELP4ewewlrFRunJ1CLqRW7BgOvvU2FiBIrQ4hKGAO7jCBHnIBrdbWoH7twlXgQg3YqUxWDXnJ1NV8EK2c6UyiDboZAQBV/lD+fCBuvnLORBdBQMWY2Zi6JeLYYfQkfkDuMBRSYGcM5uPiZeRhTKoECYryyUqpe7KwmeVJMZUUgd0Rm+iYkMnI5uTjYmUM8V5zPHcsj78jtoQz1LRAYemeXQ1gAAQYAJT9BfVti1ekAAAAASUVORK5CYII=");
}
.menu a.class-property {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHpSURBVDjLhZNbbxJhEIb3T/RWw78g2fjLvLE2ppe1TYNtvGuNRo6BcA4kIBBOgXCU3QXploCAmNQE/VY55PWbj7CWcPBibuab95l3ZmelZrOJRqOBWq2GarWKSqWCcrmMUqmEYrF4BEA6FFK9XsdyudyKfr8vILlc7iBEos4k6PV6orOu6yaEctwF0un0XohElqmYulGiUCiUptMp5vO5yBMwm80ikUjshEjUdV3IxX+45Z5hGPj29RcykbF463a7SKVSiMfjWxCJOq8tLxYLkPj72MCbEw3nz1WkwytIp9MhF4hEIhsQic/IJpOJKJrNZqKz7aWGm7Mu3l/quDppmxBN08gFAoGACZHy+fwzPiMbj1dFSvVBdL49v8PHq/stiKqq5AJer1dABCWTych8RjYajURRu/EDtmMV7y7+QWzHGj4FV++tVotcwO12H5mzJJNJmc/IhsPhFuSDTcfb0w6uTz/zr7MQLkKhEJxO59ONjfL55FgsxgaDgQm5fKHg+lUbtxdt/Jwaj8UWc4THEY1G5XA4zOgSxeLqD7h5/QW/jbkpdjgcFnOJu44jGAzKfr+f0SWuPzGJeX5DvBdA4fP5rHzTjA5MUZSd4oMACo/HY3W5XIzEdrvdsvOU//e78q5WLn6y7/0viZYv/mL7AwwAAAAASUVORK5CYII=");
}
.menu a.constant {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAAZ9pQ0NQSUNDIFByb2ZpbGUAAHiclZG/SxthGMc/72kJFM3S09aCcIOYDFGCWSIUwWSwokMaBJMMwuXujIHz8nL3auviZmehm3SwLbSLiFNxjIuTuBSKoAjF/gGFlC5FzuFtyaKIDzzw+X7h4fkFRtuW0jeA1UCF5ZmCVanWrMQZvfQDgO1EcrpUmufO+PMdAfBtzJbSP2qljn8Pvd39sjS2ebpzdX53HQB9YaVaA2ECZkNzGjDrml8A5mslFYgSYDortgvCBTLhQrkIYhtINjTvAsm65gMgue40FIg2kA3cZgDiF5B3vcgBIw0oR4YKjPfASKVas/Roag6mhqHnpOvVItj7DE9Hu176GQwswmGu63VeIQAxeBIt5yYAEH0FeHQZx51RSLyD6+04/vsxjq8/Qc8FtANnLVz/dxdhTMJ9Wu+mtf4B6L63s94fgCx8eAmLj2FuC3Z+QGofnnyFUj8sTGLkf/5PfSsAnhdtv1kPbeW5VnmmYBVbfiuMpO149zz6oaG8Nwqg2JIbYbOxoqxpKX0vY80GznjGmshm89wA0tx3Ck/ZLb8AAAAJcEhZcwAACxMAAAsTAQCanBgAAAHMSURBVDiNpVMxb1JhFL0PSOgAeTCYQALiXzBxcmNz07B2IoYwdGrq0IGUgaUDxYXHaElIOqtxUBYZm2BiUhjqVBUb06QJxADv3Xvux+eCxsY+Bj3rOd+5957vXqL/hBNGDIfD58aYMgBS1eNisbh7my4SZqCqZQAHAA5EpBymi4URAMgY80NVCUCYLNyAmaGqxwAIwHWY7q8MBoPBBwD3AVA6nY6QJbr4fLECQCLysVKpPNjYgaq+BsAiQrPZ7KFRQyJyKiKkqu9CZ7kNJycnttvt2k2a0AyIiJh5Y4C/Dfr9/g4z7wE4KpVK3i9SREhEbjyo1Wo7APYAHLVaLS+2rtTeim+R40TavV6vvVwuC9Vq9eufHdTr9bvGmC+5XI5i0Ridjc7aRORFiIhWq1VmOpuSMSti5n1rbdzzvAwzUxAEVK/XM8aYuKruEzl0/umcgiC4Q7TeRGZe+L6/e3X1feK67qHv+6PFYtHMZrOUz+dJVZvMPCoU7h2Ox6PJfD5/eiOD6XTKzPwiGo2+mUwmzUQi8dh13e1UKkXWWnIcZ/vy2yWNx6NX1tpnQRBcJ5NJnyjkmBqNxiMAT0SkuD6m9wBedjqdtxu/5F/wE3qEI6X0xsv2AAAAAElFTkSuQmCC");
}
.menu a.constructor {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHaSURBVDjLlZO7a1NRHMfzfzhIKQ5OHR1ddRRBLA6lg4iTd5PSas37YR56Y2JiHgg21uoFxSatCVFjbl5iNBBiMmUJgWwZhCB4pR9/V4QKfSQdDufF5/v7nu85xwJYprV0Oq0kk8luIpEw4vG48f/eVDiVSikCTobDIePxmGg0yokEBO4OBgNGoxH5fJ5wOHwygVgsZpjVW60WqqqWzbVgMIjf78fn8xlTBcTy736/T7VaJRQKfQoEArqmafR6Pdxu9/ECkUjkglje63Q6NBoNisUihUKBcrlMpVLB6XR2D4df3VQnmRstsWzU63WazSZmX6vV0HWdUqmEw+GY2Gw25SC8dV1l1wrZNX5s3qLdbpPL5fB6vXumZalq2O32rtVqVQ6GuGnCd+HbFnx9AZrC+MkSHo/np8vlmj/M7f4ks6yysyawgB8fwPv70HgKG8v8cp/7fFRO/+AllewqNJ/DhyBsi9A7J1QTkF4E69mXRws8u6ayvSJwRqoG4K2Md+ygxyF5FdbPaMfdlIXUZfiyAUWx/OY25O4JHBP4CtyZ16a9EwuRi1CXs+5K1ew6lB9DXERX517P8tEsPDzfNIP6C5YeQewSrJyeCd4P0bnwXYISy3MCn5oZNtsf3pH46e7XBJcAAAAASUVORK5CYII=");
}
.menu a.event {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIxSURBVDjLpdNdSFNhGAfww0Cri+gyKLowpMC+LsooEy+SgqJuKqRIiIQKkryoi4zaUmbWSHKdPkYz05xdnKNobmwW6Vi6tbk2TDYl82PTTSr3PXe2s2T+O+dgYwV54S7+vBcvz4/neXleAgCRTf570UXdLda9ORUytW1LDbbkp1TK8h8PLu1rvn92C7houBxfEbA/E+Hn4C6wAQMYTxO8vbkwvMjBYiKED3X7BUQAaFqao6XLgxZyDaxyAp9JArYnBCLjd5CM2bDIupCI6MEEtRjQtWK2rx7t13fzQMUfYHNfx7H4wtQ9xFwPEZuuR+I7jWSgH9H5FrBRI4KeGgTcN6CoKoT3YyMaL+TxwCYBoOi6M5+6i37xgM9YICQ8elnAmKCai4YDJHCPnEDnrUJMdFfxxUg/Ik2JlSPq7anYtAw+0x74zXs54AqYGRLxMN9FK/yem5hySpcMDYfh6hX/DXRR15yhcclS2FEBv+Ugl0OIjFWCmVUgGR9FzE8h6mvGF7MMY21lMJNHecCZBrRUWXhhcrn9ga0IOy4Kxey8BoGZWnwbKsCkbSOGX+cJwFtJEQ9I04C+o5SNTojBuOXc3I8Qn1Nh7v062BUiWHXnWLtD+1TVTxt7anPhfHUayqs7eKAkDajbz3tN5HpYH4swJBfBQq7Fu6aSROZOcAWlLyt3Ch1kzr/iIv0DyHpqirMCvloVJ7MChGJ9w5H0Cq8K6Lx9gAeqVwM8X/6F/Lkh8+43zznRPkqpYfEAAAAASUVORK5CYII=");
}
.menu a.instance-method {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAXFQTFRFwNCxyda8y9i/ucqow9K1tsiku8yrtcejuMqnqb6Ur8OcwtGz/v7+vs6uvM2s3ubWzdnBsMSdla97oLiJ1d/Lm7SDy9i+1uDMlrB81+HO9vj04OjZvMyrmbGB0dzG097JrMGYt8mm3OXUzNnApLuOrcGZpbyP5OveWnBE3+HdvsywpbCbormLPEsuco5Wx9W6ztrCW3FF5+3hwNCy0NzFxNO2praVv8+vq7Wh3+fXWW9Dkax2v8e2tMeiVmVGVWZGi6hvl7F+p72RssWfYHVKgpxpt8ao4unb5enh4ejai6F1uMmn2ePQp72SXm9N6e7kjqN52N/Ryde8sLulgp5mbYhS3+fYfJVjWGdJ/P37+Pr2ZHFYmLJ/eJFgTWA7xdO31t3P9vf18PLu7/Pr3eXV////nbWFZn9N9fb0X3FOiqZvbXhi7e/rhIx8scSe+vv5vc2txNK12eDSl7F/tLquW25Joqmbc4BmV2xCdZBb////Xx6j1gAAAHt0Uk5T//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8Ak8Oo6gAAAPNJREFUeNpiqAIDI2VGTwiLAYilIlONw/hVePKTIQJKLIVRMpLiClJqxTIgAXURf3lvQQEmYWEGd04toIC0ogiTnLwAkxwjQ0F6MEiLDxM3r6qDNSsbO6cbUEuQOYcJC1dAQqCsIitLiKsXA4e6AK+pUFFVlXQahyqbeAWDsxIjG4tOSlUVfwwrpy1jHINTllA8G7eaJb8sO5dCaUQ00FAxZnZmPlFH9jxfUW2QOwyElJkZ9Hn5uJkFGTQsgAJiXJISlXocrFYuEoyhZSB3mBlmJoUz8Pnl2OnmQjznkcgTK6hiz5OhCfUtENiUZ5dAWAABBgDCVz8yTkvDFQAAAABJRU5ErkJggg==");
}
.menu a.instance-property {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAH3SURBVDjLhZNJjxJhEIb7T8xVw78g6fh75mJGY/SqTjRGTXTcbu7xxtItPew2YxMgbGkCNMgSQkgDAiHRKNpkWPL61ZfQGcLioS5V9T711tfVQrVaRaVSQblcRqlUQrFYRKFQgK7ryOfzBwCEfSEYhoHlcrkRvV6PQzKZzF6IQJNJYJomn9zpdGwI5ZgLJJPJnRCBLFMzTaNELpfTJ5MJ5vM5zxMwnU5D07StEIGmrhqZ+JxZNqfTKUY/u4gbMq+1220kEgnEYrENiECTV5YXiwVIPP71Hc9Or+ORdAjNkHit1WqRC0QikTWIwHa0xuMxb5rNZhj+6OLk9Bpef7mN92f38JyBVpBms0kuEAgEbIiQzWavsB2t0WjEm76ZOTyWD/FWvYtP2kN8OLu/Bmk0GuQCPp+PQzgllUqJbEdrOBzypnq3gKe+I7xTj23IiXKEWMnF67VajVxAkqQDe5d4PC6yHa3BYLAB+fj1AV4Fb+KlcgvzxYy7CIVC8Hg8l9delO0nqqpq9ft9G/Lk81W88N/Am+gx/vz9fVHssFe4GNFoVAyHwxZdIrdr6kx8B9Nzyxa73W6H/YjbjiMYDIp+v9+iS1x9YhKz/Jp4J4BCURQne2mLDqxer28V7wVQyLLs9Hq9FoldLpdj6yn/73dlU51MfGlX/R/5GCirExPTUwAAAABJRU5ErkJggg==");
}
.menu a.method {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAAyBpQ0NQSUNDIFByb2ZpbGUAAHicjZRPaBxVHMc/bzqhIIkgrjUGlIeHGCQJayu6RajJJuk2btgu02z+UZDN7NvdMS+z45vZrS1FJCDebPUoXqpFPFQRD5KDgid7KBJore0hCOKpilAs9CJlPcz+mRCL/mDg836/3/v+/gw8GPiqHATakrDpR8bJZeXK6po8eJ0BhhgEKLthMF0sLgCUg0Czz+7/jAC4MVEOAp1fOnn9t5ee+uL9r/O3h78rif35e2zIrKyugZBAqhbzi0BqPeYTQOpMFEQgTgMpt16ugAiAcbPozID4GHi0luD1BFdU6MLAFNBwAxOBlQIyLbcWgbgCpP2K54PYBTKV0N0EawGsv1ZW12TcZpSHY0/DgWt931oIVz6DJ0f7vrFheGIZto/0ffccBCAO7YTVI4cBEINZGPil3b43Cgc/hAcftNt/f9JuP/gUDuzC99ptmlZnR0L8CHG/8Rm2nS49jOOZAMjApROw/Ajk34WPfoXnvoTHv4HiECwexXqH7heptyKAmUZw1ni1eiQPp9Mvy+kg0ErO++7kuCxrLY1Xq0ehNCpUpqUqk2zqptup9xgwqPzSKWAUrLdVONdhsVUpz+aBSRC/V9TsHDAO4vOqd3weGAN2q+Z4KWbxvBfNL8ZsLfm6sNDhYX+9cLKjaQdR1unqh61Tc13/G+XXisAICGejkXeAQ2BNnasvLscs9Ln6TKHDP5mmUwKeBetyoIsLcW/WD6yiUXj4KHwkDjmyTBBgaFDFw0PjkUPhozB4hGz8a6ammGBJjjv43MHg8SZNFBKHJbIFtsZ7CjJ9K/1n+mb6Uvpy+o+LI82xfmTLvO65OxfuUkRherqdaKenWN+lwTQaTQ3FZm+mMNFporuqf3Gkr+TuXLir3ivcT0ypEpUmWEcRsoHBo4VCE6KYTlR72PYU+ur5b4f7tW7a26dvDF49v2dXjX1Tqd5Ue8/9vOR9ZT9jv2DP2xn7KNJ+1Z6yj9mzdsZ+xV7o3Sjh43EGhSGkjMbnLHLP/+vmEr8tAKRyylfGc6WTy8qiaVQ9rRLP3H+E/6f9AwGFFQ3Juvv5AAAACXBIWXMAAAsTAAALEwEAmpwYAAADBklEQVQ4jXVTT0gbeRT+JhPzZ5IQG8WQncTTpLIUYbOXRMSDF4+CV6GXbT304G0v7eIiFFrQk/GYuJd69B7CRkVXtARs9VAXKygoG5z4byCTmd/8fm8mezFS2e47vQfv4+N97/sk/E9tbW294Jw/JyIIIT5MTk6ufG9P+nbY29v7UZKkf/L5vFmr1XRN0/o7nQ42NjauLy4uktlsNmrbtjozM/N3F+PrNru7u2Ui+mJZ1tdqtZrknLuMMTDGEAqFXE3Tkoyxr0T0ZWlpqdzFyffMv8Xj8V8zmYwEIGoYxishxBNFUcA5h67rUSHEK03TnuTzeckwjJ81TaOdnZ2//ADgOI7v/PwcAMAYQzqdVnw+HzjnAIBcLgfGmGLbNk5OTrC+vg7GmO+RBpVK5V1/f/9r27ZBRLi7u8Pp6SkCgQCy2Sx6enrAOYdpmtjf33+/sLDwBgCkWq32SQgxQESRTCbT22q1cH19jc3NzY+2bc+FQiHE4/G3o6OjhU6ng1gshkqlYjiO0yaipp+IfhoeHpZ0Xcft7S0CgQAajQZ8Pt9cqVSqAcDi4iIajcafqqqi2WxifHy8V1XV3vn5+R98nHMwxkBEcF0XXZZ4PP7wXsYYhBDwPA9EBMdx0Gq1YFkWpGKx+KnZbA4kEolIPp/vtSwLwWAQ9Xr9oxBi7h7wdmRkpMA5h+u6WF1dNUzTbAshmg8ilsvld5lM5jURwe/3Q5ZlnJ2dgYgwODgIIoJlWTBNE9Vq9f3a2tqbBx+USqU5zvnv2WwWjuMgGAwiHA4jFoshkUhAUZSHc1RVxcHBwdjQ0JB3dHS07b+/0Uun04hEIqjX6zg+PrZkWVYmJibgeR5WVlYAwBobG1NSqRT6+vpweHjoPfLB7Oxs+ebm5pd2u91MJpO5cDj8eWpqKklEKBaLuuM4Oc/zPluWNSCE+KNer798lIXl5eWXsiw/i0ajT1OplO55nmwYBi4vL+E4jlwoFHS/3//Udd1nXfB/0vhtTU9Pv7i6unrOGIMkSR+2t7e/G+d/AQoXpOKikHZKAAAAAElFTkSuQmCC");
}
.menu a.mixin {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAAZ9pQ0NQSUNDIFByb2ZpbGUAAHiclZG/SxthGMc/72kJFM3S09aCcIOYDFGCWSIUwWSwokMaBJMMwuXujIHz8nL3auviZmehm3SwLbSLiFNxjIuTuBSKoAjF/gGFlC5FzuFtyaKIDzzw+X7h4fkFRtuW0jeA1UCF5ZmCVanWrMQZvfQDgO1EcrpUmufO+PMdAfBtzJbSP2qljn8Pvd39sjS2ebpzdX53HQB9YaVaA2ECZkNzGjDrml8A5mslFYgSYDortgvCBTLhQrkIYhtINjTvAsm65gMgue40FIg2kA3cZgDiF5B3vcgBIw0oR4YKjPfASKVas/Roag6mhqHnpOvVItj7DE9Hu176GQwswmGu63VeIQAxeBIt5yYAEH0FeHQZx51RSLyD6+04/vsxjq8/Qc8FtANnLVz/dxdhTMJ9Wu+mtf4B6L63s94fgCx8eAmLj2FuC3Z+QGofnnyFUj8sTGLkf/5PfSsAnhdtv1kPbeW5VnmmYBVbfiuMpO149zz6oaG8Nwqg2JIbYbOxoqxpKX0vY80GznjGmshm89wA0tx3Ck/ZLb8AAAAJcEhZcwAACxMAAAsTAQCanBgAAAJhSURBVDiNZZPNi85RFMc/9+d5npmwQF4aYUzIzPAMJe9SSNl4+w+wIbKQhQ0rGwtLZqGUhZUslAWRZjBNkiJvWVAUYpRnDGZ+9+WcY3GfGTKnTud263zO95xzrwPYfeLKCovpukED3EbDMAPMyMEmXCUSy+H3D66e6QCoAGiMh3Gus97dztC3H5iNJ0GGKaYw/OM3Y95QqotpWqUZt9a7F7GtZyGL2upYJqCmuarm6nNmTGVqa4XNe4/wP2BmfUU7t568pdEYxVQB0HEVZpgawyOjlD7wr+UWFFepVVi2sp2l82YhAmaKqiFiiCpJjbEycu16/2SAYYgoH4ZGqBVVyrIk+kDSfJ+YQqVaY/a0FtRsMgBARUkS8d6zf93SLD8vAjPjSt8bYmuV//KbCsyIokhMJCm42v8aHxNJDElKwlGt1QgpD3UyQI2UlBAjQcGKFly1CoWhTlFVgjiCTAYUNGXGJKQy4aNQJqGMgo8JnwQfBD86yKeP5+lYfpv69iF2naqf/rsFM5Io0Ud8lNyOGEGUJIqMDTB/3mvWdK1nwaxl9L26waOXD8+uO9o2sxifQUpKDBkQkjIWhRAFn5TRn/dY3bkKKYRVbTsRF9lQ3wSOY0VWoIQkJJ/wUSmjEKNm+V5o/PpK1U1nT9dxAE7uuMSSuT04aJmYgYghQfAxexkT3ishKN9HGrz6PMi5uwcBOHfnIO+GnmPg8zswg6Jg7foezDlEjCSGNqPz+3j0/DaberZw80UvNVdh4Nl9MC46gK0HLlw2OJR/3j/vH4Pmmdb70PIUXMDgF2a9j3u/nPoDgNPEfbFn4CQAAAAASUVORK5CYII=");
}
.menu a.namespace {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAACpUlEQVQ4ET2TS2sTURTHZ+7cySTpI9q0mwgqobsoarGlUBfZCCJKV0Wx+MCvIOK2n6NLcaFk4VIRwYqKoFBX2YVUYppgapKW5jWZuTP+TpQOnLnnnvM///O499qWZdkbGxuqUCg46DqVSslqDYdD0263jejZbNYZDAYT++Hhoel2uyFmUyqVIr21tWWzcQj00un0vDFmLQzDLPt9At8KQRRF17XWZ+M47kxNTX3Bf3B8fOzjijU/hdEFlBmPx98gEBIL0Ht876jCwv8Y/y1sQtZJJpOXgyDoFIvFSDUaDZsAbdv2DYzzkOz6vr9MyXd7vZ7xPM+Q7dFoNLoqCZA5/DfZ64WFBaVzuZzDxnUc5zzsknmXwCZrQAXSq0XfAURN2viOfYVE59DdZrPpSwsaViGYEQKqCdGDer1+QgBGJRKJABzxoSSZocLE7OysqynHIyAJ6xXpnXWPkk+mLBVwSgZcyBB//p/PEroHia/Ieg/nS9jXWH8jXwFF1Wo1lmD5RIc4IkBm0ERW2b/C9VCjrBOwQlkx6wuc+/1+/yR4wsCPs7fou0Hm58hT8MvgfcXA7hO0SWZhfoJcg9TO5/NyPyYfQ7YJsKl2lfUZ2Ba2B+h3FIgBm08EisgMLnCkDsRCMBECbESBKwiGzJ/B7VDpQHMUwfT09BjwHowy4VMAdKvVkqs7OcZMJuNAqrFnWDFbVaXUmOGPNQEG5hBHCEAIUrwD2tV6cXFRLlIsOn27YNISjS4nEh4dHRlVq9XQY0Npf6Q8Sr0EyRw2l7ehyeKKTtwcsiQEfAdg/5FzHSNumlyeDwyph1xEfnBx3pBxU9AUsI2+jupANkB2mEFYLpcjaUhRqsvL8wCdobci62lAvyjxtRBw425jy6N2aPMja51H5lcqleAvPBAtoRoK3h4AAAAASUVORK5CYII=");
}
.menu a.property {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHpSURBVDjLhZNbbxJhEIb3T/RWw78g2fjLvLE2ppe1TYNtvGuNRo6BcA4kIBBOgXCU3QXploCAmNQE/VY55PWbj7CWcPBibuab95l3ZmelZrOJRqOBWq2GarWKSqWCcrmMUqmEYrF4BEA6FFK9XsdyudyKfr8vILlc7iBEos4k6PV6orOu6yaEctwF0un0XohElqmYulGiUCiUptMp5vO5yBMwm80ikUjshEjUdV3IxX+45Z5hGPj29RcykbF463a7SKVSiMfjWxCJOq8tLxYLkPj72MCbEw3nz1WkwytIp9MhF4hEIhsQic/IJpOJKJrNZqKz7aWGm7Mu3l/quDppmxBN08gFAoGACZHy+fwzPiMbj1dFSvVBdL49v8PHq/stiKqq5AJer1dABCWTych8RjYajURRu/EDtmMV7y7+QWzHGj4FV++tVotcwO12H5mzJJNJmc/IhsPhFuSDTcfb0w6uTz/zr7MQLkKhEJxO59ONjfL55FgsxgaDgQm5fKHg+lUbtxdt/Jwaj8UWc4THEY1G5XA4zOgSxeLqD7h5/QW/jbkpdjgcFnOJu44jGAzKfr+f0SWuPzGJeX5DvBdA4fP5rHzTjA5MUZSd4oMACo/HY3W5XIzEdrvdsvOU//e78q5WLn6y7/0viZYv/mL7AwwAAAAASUVORK5CYII=");
}
.menu a.utility {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIISURBVDjLlZPRT1JxFMf5E+6fwL9Ri8lsI5cSV7swL82w0SZTB6zWXOuB0cLU8HKhuAooTNrFupcAsYWjh1sRIaDgTLGXxmubD2w+9Prth29tXMWH83J+Z5/vOd9zfhoAml7h+mg3ReuhUxIdR37CrVanUXvgvvsOtk4kbJ+kEaos/bkSYCZv0wcri7/zrTS2f32AUOX+2nPWACvd1V4KmM7fnxQP1pE+2kSuJUM+EpFpvUOS5MJVHgQSuBCwWuU72eP3EA8TWCx523NFl+Iv+zrxRgRr+wKeFJ1NVYA9y+o3mjFskbkj9SDGpTGqm2dSJmosZfRYZXPClLxNqQJsGYt2bS+MbEtCF2SVmQCTukOPikaqbxPnik4l3ohC+ilivbGKcC0Af/klXAVHczhuoC8FmDdpyl2YUrjyAlmfHytklATpJronwP9jAYbYIN3XHXTDuDGkJ6qeRzsz7XCNh1AjvshmRRXQnZWVmIQxOfTf5RFV/fw3LyJkC+6d2U5PwOjbEe3Tz4/bQp0/b92WY5VbsZtuQ3SQfpC71+R3/eAqr2ASR7I9AUSVepibUHhSFCVKQv31uXm+0nPwVQ5dgOfLM+jeXNdf6AFRnZz9NNVeKs8jtr+CCDHvRcmL8bSlqQtdo/v+TBaZ+RrcXUaQqLMZy+GVf+OAcGPaWXCckW7OBgTdslrdPxtwvK6n/CCRAAAAAElFTkSuQmCC");
}
.menu ul {
padding: 0;
margin: 0;
list-style: none;
}
.menu ul a {
padding-left: 38px;
background-position: 16px 50%;
}
.menu ul ul a {
padding-left: 48px;
background-position: 26px 50%;
}
.menu ul ul ul a {
padding-left: 58px;
background-position: 36px 50%;
}
.menu ul ul ul ul a {
padding-left: 68px;
background-position: 46px 50%;
}
.docblock {
margin-bottom: 70px;
}
.docblock header {
margin-bottom: 22px;
}
.breadcrumbs {
font-size: 12px;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
white-space: nowrap;
margin-left: 0;
color: #ccc;
}
.breadcrumbs a {
color: #999;
border: 0;
}
.breadcrumbs a:hover {
text-decoration: underline;
}
.breadcrumbs li {
display: inline;
margin-right: 4px;
}
.breadcrumbs li + li:before {
content: "»";
margin-right: 4px;
}
header > .type {
color: #999;
text-transform: lowercase;
font-weight: bold;
font-style: italic;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}
header .name_prefix {
opacity: 0.5;
}
header > .source {
line-height: 1em;
margin-bottom: 5.5px;
}
header > .source a {
font-size: 10px;
color: #ccc;
margin-left: 10px;
text-decoration: none;
border: 0;
}
header > .source a:hover {
text-decoration: underline;
}
.labels span {
border-radius: 3px 3px 3px 3px;
color: #fff;
font-size: 12px;
font-weight: bold;
padding: 2px 5px 3px;
text-transform: lower;
white-space: nowrap;
margin-right: 10px;
}
.labels span.read-only {
background-color: #999;
}
.labels span.internal {
background-color: #999;
}
.labels span.chainable {
background-color: #999;
}
.deprecated-note {
color: #f00;
}
.section {
position: relative;
}
.section h3 {
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
background-position: right 3px;
background-repeat: no-repeat;
display: block;
position: absolute;
left: -145px;
top: 0;
width: 110px;
line-height: 14px;
padding-right: 20px;
padding-top: 4px;
padding-bottom: 4px;
margin: 0;
text-align: right;
font-weight: normal;
font-size: 14px;
color: #888;
}
.section.classes h3 {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHhSURBVDjLpZI9SJVxFMZ/r2YFflw/kcQsiJt5b1ije0tDtbQ3GtFQYwVNFbQ1ujRFa1MUJKQ4VhYqd7K4gopK3UIly+57nnMaXjHjqotnOfDnnOd/nt85SURwkDi02+ODqbsldxUlD0mvHw09ubSXQF1t8512nGJ/Uz/5lnxi0tB+E9QI3D//+EfVqhtppGxUNzCzmf0Ekojg4fS9cBeSoyzHQNuZxNyYXp5ZM5Mk1ZkZT688b6thIBenG/N4OB5B4InciYBCVyGnEBHO+/LH3SFKQuF4OEs/51ndXMXC8Ajqknrcg1O5PGa2h4CJUqVES0OO7sYevv2qoFBmJ/4gF4boaOrg6rPLYWaYiVfDo0my8w5uj12PQleB0vcp5I6HsHAUoqUhR29zH+5B4IxNTvDmxljy3x2YCYUwZVlbzXJh9UKeQY6t2m0Lt94Oh5loPdqK3EkjzZi4MM/Y9Db3MTv/mYWVxaqkw9IOATNR7B5ABHPrZQrtg9sb8XDKa1+QOwsri4zeHD9SAzE1wxBTXz9xtvMc5ZU5lirLSKIz18nJnhOZjb22YKkhd4odg5icpcoyL669TAAujlyIvmPHSWXY1ti1AmZ8mJ3ElP1ips1/YM3H300g+W+51nc95YPEX8fEbdA2ReVYAAAAAElFTkSuQmCC");
line-height: 25px;
background-position: right 8px;
}
.section.class_methods h3 {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAXRQTFRFvLXSuLHQwrzWsKjKxb/YrKTIq6PHr6fKta7OnpS+tKzN/v7+pp3EpZzD2tbmurPRh3uvx8HZzsneopnBjIGx3NnoxL7Y0czgjoO09fT4iHyw0Mvf4d7r0s7hoZjBmI67xsDZy8bcrqbJ3t3hdGmcZ1uQ7evzt7DMysXcqqW7in+xqJ/FtK3Nm5G9lou5nJK99/b6urbHUUlnyMLaTUNvwrzX5OHtgHyMXVhx5uTut6/PubLQ0s/d3tvpNS5LgnmjTkZlTUZmVU1vUklu7Ovv1dLgWU1/fG+o9PT2r6jGY1aObGaAn5uwVk5xkIW129fnvbfT/Pv9TEJsrqfJc2aeRDtgf3WhwLrVi3+ynZW2mo+819Tlp57Ea2CRvbbTin6x7+7yb2OV+fn72dXlTkRw2NTllIm4q6LHfG+mT0Vx29jnZ2J4k4m4mY+8VEp19fX31NDj////npup4+Hpgnas3droXlKIsa661NHfpqG1s6vM////z9cmxgAAAHx0Uk5T////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAFq2jEAAADzSURBVHjaYqgGAzMFplIIiwGIJQMLrbP45LmT1CAC0QwMBlWy4nKSuVpVIAEZaUuhYB5BlrQcRltOdaCAqJI0i6KQIIsiE6OOmyZISwELP4ewewlrFRunJ1CLqRW7BgOvvU2FiBIrQ4hKGAO7jCBHnIBrdbWoH7twlXgQg3YqUxWDXnJ1NV8EK2c6UyiDboZAQBV/lD+fCBuvnLORBdBQMWY2Zi6JeLYYfQkfkDuMBRSYGcM5uPiZeRhTKoECYryyUqpe7KwmeVJMZUUgd0Rm+iYkMnI5uTjYmUM8V5zPHcsj78jtoQz1LRAYemeXQ1gAAQYAJT9BfVti1ekAAAAASUVORK5CYII=");
}
.section.class_properties h3 {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHpSURBVDjLhZNbbxJhEIb3T/RWw78g2fjLvLE2ppe1TYNtvGuNRo6BcA4kIBBOgXCU3QXploCAmNQE/VY55PWbj7CWcPBibuab95l3ZmelZrOJRqOBWq2GarWKSqWCcrmMUqmEYrF4BEA6FFK9XsdyudyKfr8vILlc7iBEos4k6PV6orOu6yaEctwF0un0XohElqmYulGiUCiUptMp5vO5yBMwm80ikUjshEjUdV3IxX+45Z5hGPj29RcykbF463a7SKVSiMfjWxCJOq8tLxYLkPj72MCbEw3nz1WkwytIp9MhF4hEIhsQic/IJpOJKJrNZqKz7aWGm7Mu3l/quDppmxBN08gFAoGACZHy+fwzPiMbj1dFSvVBdL49v8PHq/stiKqq5AJer1dABCWTych8RjYajURRu/EDtmMV7y7+QWzHGj4FV++tVotcwO12H5mzJJNJmc/IhsPhFuSDTcfb0w6uTz/zr7MQLkKhEJxO59ONjfL55FgsxgaDgQm5fKHg+lUbtxdt/Jwaj8UWc4THEY1G5XA4zOgSxeLqD7h5/QW/jbkpdjgcFnOJu44jGAzKfr+f0SWuPzGJeX5DvBdA4fP5rHzTjA5MUZSd4oMACo/HY3W5XIzEdrvdsvOU//e78q5WLn6y7/0viZYv/mL7AwwAAAAASUVORK5CYII=");
}
.section.constants h3 {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAAZ9pQ0NQSUNDIFByb2ZpbGUAAHiclZG/SxthGMc/72kJFM3S09aCcIOYDFGCWSIUwWSwokMaBJMMwuXujIHz8nL3auviZmehm3SwLbSLiFNxjIuTuBSKoAjF/gGFlC5FzuFtyaKIDzzw+X7h4fkFRtuW0jeA1UCF5ZmCVanWrMQZvfQDgO1EcrpUmufO+PMdAfBtzJbSP2qljn8Pvd39sjS2ebpzdX53HQB9YaVaA2ECZkNzGjDrml8A5mslFYgSYDortgvCBTLhQrkIYhtINjTvAsm65gMgue40FIg2kA3cZgDiF5B3vcgBIw0oR4YKjPfASKVas/Roag6mhqHnpOvVItj7DE9Hu176GQwswmGu63VeIQAxeBIt5yYAEH0FeHQZx51RSLyD6+04/vsxjq8/Qc8FtANnLVz/dxdhTMJ9Wu+mtf4B6L63s94fgCx8eAmLj2FuC3Z+QGofnnyFUj8sTGLkf/5PfSsAnhdtv1kPbeW5VnmmYBVbfiuMpO149zz6oaG8Nwqg2JIbYbOxoqxpKX0vY80GznjGmshm89wA0tx3Ck/ZLb8AAAAJcEhZcwAACxMAAAsTAQCanBgAAAHMSURBVDiNpVMxb1JhFL0PSOgAeTCYQALiXzBxcmNz07B2IoYwdGrq0IGUgaUDxYXHaElIOqtxUBYZm2BiUhjqVBUb06QJxADv3Xvux+eCxsY+Bj3rOd+5957vXqL/hBNGDIfD58aYMgBS1eNisbh7my4SZqCqZQAHAA5EpBymi4URAMgY80NVCUCYLNyAmaGqxwAIwHWY7q8MBoPBBwD3AVA6nY6QJbr4fLECQCLysVKpPNjYgaq+BsAiQrPZ7KFRQyJyKiKkqu9CZ7kNJycnttvt2k2a0AyIiJh5Y4C/Dfr9/g4z7wE4KpVK3i9SREhEbjyo1Wo7APYAHLVaLS+2rtTeim+R40TavV6vvVwuC9Vq9eufHdTr9bvGmC+5XI5i0Ridjc7aRORFiIhWq1VmOpuSMSti5n1rbdzzvAwzUxAEVK/XM8aYuKruEzl0/umcgiC4Q7TeRGZe+L6/e3X1feK67qHv+6PFYtHMZrOUz+dJVZvMPCoU7h2Ox6PJfD5/eiOD6XTKzPwiGo2+mUwmzUQi8dh13e1UKkXWWnIcZ/vy2yWNx6NX1tpnQRBcJ5NJnyjkmBqNxiMAT0SkuD6m9wBedjqdtxu/5F/wE3qEI6X0xsv2AAAAAElFTkSuQmCC");
}
.section.constructor h3 {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHaSURBVDjLlZO7a1NRHMfzfzhIKQ5OHR1ddRRBLA6lg4iTd5PSas37YR56Y2JiHgg21uoFxSatCVFjbl5iNBBiMmUJgWwZhCB4pR9/V4QKfSQdDufF5/v7nu85xwJYprV0Oq0kk8luIpEw4vG48f/eVDiVSikCTobDIePxmGg0yokEBO4OBgNGoxH5fJ5wOHwygVgsZpjVW60WqqqWzbVgMIjf78fn8xlTBcTy736/T7VaJRQKfQoEArqmafR6Pdxu9/ECkUjkglje63Q6NBoNisUihUKBcrlMpVLB6XR2D4df3VQnmRstsWzU63WazSZmX6vV0HWdUqmEw+GY2Gw25SC8dV1l1wrZNX5s3qLdbpPL5fB6vXumZalq2O32rtVqVQ6GuGnCd+HbFnx9AZrC+MkSHo/np8vlmj/M7f4ks6yysyawgB8fwPv70HgKG8v8cp/7fFRO/+AllewqNJ/DhyBsi9A7J1QTkF4E69mXRws8u6ayvSJwRqoG4K2Md+ygxyF5FdbPaMfdlIXUZfiyAUWx/OY25O4JHBP4CtyZ16a9EwuRi1CXs+5K1ew6lB9DXERX517P8tEsPDzfNIP6C5YeQewSrJyeCd4P0bnwXYISy3MCn5oZNtsf3pH46e7XBJcAAAAASUVORK5CYII=");
}
.section.description h3 {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAKkSURBVDjLpZPdT5JhGMb9W+BPaK3matVqndXWOOigA6fmJ9DUcrUMlrN0mNMsKTUznQpq6pyKAm8CIogmypcg8GIiX8rHRHjhVbPt6o01nMvZWge/k3vP9duuZ/edAyDnf/hjoCMP2Vr3gUDj3CdV6zT1xZ6iFDaKnLEkBFOmPfaZArWT5sw60iFP+BAbOzTcQSqDZzsNRyCNkcVoaGghzDlVQKylOHJrMrUZ2Yf52y6kc36IxpyoH1lHF7EBgyMKV4jCJ5U/1UVscU4IZOYEa3I1HtwI01hwxlDLhDoJD/wxGr5YGmOLAdRIrVCuhmD3JdA6SQabx12srGB0KSpc86ew4olDOGjH4x4z0gdHDD9+c4TaQQtq+k2Yt0egXYugTmoVZgV9cyHSxXTtJjZR3WNCVfcK/NE0ppYDUNu2QTMCtS0IbrsOrVMOWL27eNJtJLOCDoWXdgeTEEosqPxoBK/TwDzWY9rowy51gJ1dGr2zLpS2aVH5QQ+Hbw88sZ7OClrGXbQrkMTTAQu4HXqUv9eh7J0OSfo7tiIU+GItilpUuM/AF2tg98eR36Q+FryQ2kjbVhximQu8dgPKxPMoeTuH4tfqDIWvCBQ2KlDQKEe9dBlGTwR36+THFZg+QoUxAL0jgsoOQzYYS+wjskcjTzSToVAkA7Hqg4Spc6tm4vgT+eIFVvmb+eCSMwLlih/cNg0KmpRoGzdl+BXOb5jAsMYNjSWAm9VjwesPR1knFilPNMu510CkdPZtqK1BvJQsoaRZjqLGaTzv1UNp9EJl9uNqxefU5QdDnFNX+Y5Qxrn9bDLUR6zjqzsMizeWYdG5gy6ZDbk8aehiuYRz5jHdeDTKvlY1IrhSMUxe4g9SuVwpdaFsgDxf2i84V9zH/us1/is/AdevBaK9Tb3EAAAAAElFTkSuQmCC");
}
.section.events h3 {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIxSURBVDjLpdNdSFNhGAfww0Cri+gyKLowpMC+LsooEy+SgqJuKqRIiIQKkryoi4zaUmbWSHKdPkYz05xdnKNobmwW6Vi6tbk2TDYl82PTTSr3PXe2s2T+O+dgYwV54S7+vBcvz4/neXleAgCRTf570UXdLda9ORUytW1LDbbkp1TK8h8PLu1rvn92C7houBxfEbA/E+Hn4C6wAQMYTxO8vbkwvMjBYiKED3X7BUQAaFqao6XLgxZyDaxyAp9JArYnBCLjd5CM2bDIupCI6MEEtRjQtWK2rx7t13fzQMUfYHNfx7H4wtQ9xFwPEZuuR+I7jWSgH9H5FrBRI4KeGgTcN6CoKoT3YyMaL+TxwCYBoOi6M5+6i37xgM9YICQ8elnAmKCai4YDJHCPnEDnrUJMdFfxxUg/Ik2JlSPq7anYtAw+0x74zXs54AqYGRLxMN9FK/yem5hySpcMDYfh6hX/DXRR15yhcclS2FEBv+Ugl0OIjFWCmVUgGR9FzE8h6mvGF7MMY21lMJNHecCZBrRUWXhhcrn9ga0IOy4Kxey8BoGZWnwbKsCkbSOGX+cJwFtJEQ9I04C+o5SNTojBuOXc3I8Qn1Nh7v062BUiWHXnWLtD+1TVTxt7anPhfHUayqs7eKAkDajbz3tN5HpYH4swJBfBQq7Fu6aSROZOcAWlLyt3Ch1kzr/iIv0DyHpqirMCvloVJ7MChGJ9w5H0Cq8K6Lx9gAeqVwM8X/6F/Lkh8+43zznRPkqpYfEAAAAASUVORK5CYII=");
}
.section.instance_methods h3 {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAXFQTFRFwNCxyda8y9i/ucqow9K1tsiku8yrtcejuMqnqb6Ur8OcwtGz/v7+vs6uvM2s3ubWzdnBsMSdla97oLiJ1d/Lm7SDy9i+1uDMlrB81+HO9vj04OjZvMyrmbGB0dzG097JrMGYt8mm3OXUzNnApLuOrcGZpbyP5OveWnBE3+HdvsywpbCbormLPEsuco5Wx9W6ztrCW3FF5+3hwNCy0NzFxNO2praVv8+vq7Wh3+fXWW9Dkax2v8e2tMeiVmVGVWZGi6hvl7F+p72RssWfYHVKgpxpt8ao4unb5enh4ejai6F1uMmn2ePQp72SXm9N6e7kjqN52N/Ryde8sLulgp5mbYhS3+fYfJVjWGdJ/P37+Pr2ZHFYmLJ/eJFgTWA7xdO31t3P9vf18PLu7/Pr3eXV////nbWFZn9N9fb0X3FOiqZvbXhi7e/rhIx8scSe+vv5vc2txNK12eDSl7F/tLquW25Joqmbc4BmV2xCdZBb////Xx6j1gAAAHt0Uk5T//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8Ak8Oo6gAAAPNJREFUeNpiqAIDI2VGTwiLAYilIlONw/hVePKTIQJKLIVRMpLiClJqxTIgAXURf3lvQQEmYWEGd04toIC0ogiTnLwAkxwjQ0F6MEiLDxM3r6qDNSsbO6cbUEuQOYcJC1dAQqCsIitLiKsXA4e6AK+pUFFVlXQahyqbeAWDsxIjG4tOSlUVfwwrpy1jHINTllA8G7eaJb8sO5dCaUQ00FAxZnZmPlFH9jxfUW2QOwyElJkZ9Hn5uJkFGTQsgAJiXJISlXocrFYuEoyhZSB3mBlmJoUz8Pnl2OnmQjznkcgTK6hiz5OhCfUtENiUZ5dAWAABBgDCVz8yTkvDFQAAAABJRU5ErkJggg==");
}
.section.instance_properties h3 {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAH3SURBVDjLhZNJjxJhEIb7T8xVw78g6fh75mJGY/SqTjRGTXTcbu7xxtItPew2YxMgbGkCNMgSQkgDAiHRKNpkWPL61ZfQGcLioS5V9T711tfVQrVaRaVSQblcRqlUQrFYRKFQgK7ryOfzBwCEfSEYhoHlcrkRvV6PQzKZzF6IQJNJYJomn9zpdGwI5ZgLJJPJnRCBLFMzTaNELpfTJ5MJ5vM5zxMwnU5D07StEIGmrhqZ+JxZNqfTKUY/u4gbMq+1220kEgnEYrENiECTV5YXiwVIPP71Hc9Or+ORdAjNkHit1WqRC0QikTWIwHa0xuMxb5rNZhj+6OLk9Bpef7mN92f38JyBVpBms0kuEAgEbIiQzWavsB2t0WjEm76ZOTyWD/FWvYtP2kN8OLu/Bmk0GuQCPp+PQzgllUqJbEdrOBzypnq3gKe+I7xTj23IiXKEWMnF67VajVxAkqQDe5d4PC6yHa3BYLAB+fj1AV4Fb+KlcgvzxYy7CIVC8Hg8l9delO0nqqpq9ft9G/Lk81W88N/Am+gx/vz9fVHssFe4GNFoVAyHwxZdIrdr6kx8B9Nzyxa73W6H/YjbjiMYDIp+v9+iS1x9YhKz/Jp4J4BCURQne2mLDqxer28V7wVQyLLs9Hq9FoldLpdj6yn/73dlU51MfGlX/R/5GCirExPTUwAAAABJRU5ErkJggg==");
}
.section.mixins h3 {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAAZ9pQ0NQSUNDIFByb2ZpbGUAAHiclZG/SxthGMc/72kJFM3S09aCcIOYDFGCWSIUwWSwokMaBJMMwuXujIHz8nL3auviZmehm3SwLbSLiFNxjIuTuBSKoAjF/gGFlC5FzuFtyaKIDzzw+X7h4fkFRtuW0jeA1UCF5ZmCVanWrMQZvfQDgO1EcrpUmufO+PMdAfBtzJbSP2qljn8Pvd39sjS2ebpzdX53HQB9YaVaA2ECZkNzGjDrml8A5mslFYgSYDortgvCBTLhQrkIYhtINjTvAsm65gMgue40FIg2kA3cZgDiF5B3vcgBIw0oR4YKjPfASKVas/Roag6mhqHnpOvVItj7DE9Hu176GQwswmGu63VeIQAxeBIt5yYAEH0FeHQZx51RSLyD6+04/vsxjq8/Qc8FtANnLVz/dxdhTMJ9Wu+mtf4B6L63s94fgCx8eAmLj2FuC3Z+QGofnnyFUj8sTGLkf/5PfSsAnhdtv1kPbeW5VnmmYBVbfiuMpO149zz6oaG8Nwqg2JIbYbOxoqxpKX0vY80GznjGmshm89wA0tx3Ck/ZLb8AAAAJcEhZcwAACxMAAAsTAQCanBgAAAJhSURBVDiNZZPNi85RFMc/9+d5npmwQF4aYUzIzPAMJe9SSNl4+w+wIbKQhQ0rGwtLZqGUhZUslAWRZjBNkiJvWVAUYpRnDGZ+9+WcY3GfGTKnTud263zO95xzrwPYfeLKCovpukED3EbDMAPMyMEmXCUSy+H3D66e6QCoAGiMh3Gus97dztC3H5iNJ0GGKaYw/OM3Y95QqotpWqUZt9a7F7GtZyGL2upYJqCmuarm6nNmTGVqa4XNe4/wP2BmfUU7t568pdEYxVQB0HEVZpgawyOjlD7wr+UWFFepVVi2sp2l82YhAmaKqiFiiCpJjbEycu16/2SAYYgoH4ZGqBVVyrIk+kDSfJ+YQqVaY/a0FtRsMgBARUkS8d6zf93SLD8vAjPjSt8bYmuV//KbCsyIokhMJCm42v8aHxNJDElKwlGt1QgpD3UyQI2UlBAjQcGKFly1CoWhTlFVgjiCTAYUNGXGJKQy4aNQJqGMgo8JnwQfBD86yKeP5+lYfpv69iF2naqf/rsFM5Io0Ud8lNyOGEGUJIqMDTB/3mvWdK1nwaxl9L26waOXD8+uO9o2sxifQUpKDBkQkjIWhRAFn5TRn/dY3bkKKYRVbTsRF9lQ3wSOY0VWoIQkJJ/wUSmjEKNm+V5o/PpK1U1nT9dxAE7uuMSSuT04aJmYgYghQfAxexkT3ishKN9HGrz6PMi5uwcBOHfnIO+GnmPg8zswg6Jg7foezDlEjCSGNqPz+3j0/DaberZw80UvNVdh4Nl9MC46gK0HLlw2OJR/3j/vH4Pmmdb70PIUXMDgF2a9j3u/nPoDgNPEfbFn4CQAAAAASUVORK5CYII=");
}
.section.namespaces h3 {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAACpUlEQVQ4ET2TS2sTURTHZ+7cySTpI9q0mwgqobsoarGlUBfZCCJKV0Wx+MCvIOK2n6NLcaFk4VIRwYqKoFBX2YVUYppgapKW5jWZuTP+TpQOnLnnnvM///O499qWZdkbGxuqUCg46DqVSslqDYdD0263jejZbNYZDAYT++Hhoel2uyFmUyqVIr21tWWzcQj00un0vDFmLQzDLPt9At8KQRRF17XWZ+M47kxNTX3Bf3B8fOzjijU/hdEFlBmPx98gEBIL0Ht876jCwv8Y/y1sQtZJJpOXgyDoFIvFSDUaDZsAbdv2DYzzkOz6vr9MyXd7vZ7xPM+Q7dFoNLoqCZA5/DfZ64WFBaVzuZzDxnUc5zzsknmXwCZrQAXSq0XfAURN2viOfYVE59DdZrPpSwsaViGYEQKqCdGDer1+QgBGJRKJABzxoSSZocLE7OysqynHIyAJ6xXpnXWPkk+mLBVwSgZcyBB//p/PEroHia/Ieg/nS9jXWH8jXwFF1Wo1lmD5RIc4IkBm0ERW2b/C9VCjrBOwQlkx6wuc+/1+/yR4wsCPs7fou0Hm58hT8MvgfcXA7hO0SWZhfoJcg9TO5/NyPyYfQ7YJsKl2lfUZ2Ba2B+h3FIgBm08EisgMLnCkDsRCMBECbESBKwiGzJ/B7VDpQHMUwfT09BjwHowy4VMAdKvVkqs7OcZMJuNAqrFnWDFbVaXUmOGPNQEG5hBHCEAIUrwD2tV6cXFRLlIsOn27YNISjS4nEh4dHRlVq9XQY0Npf6Q8Sr0EyRw2l7ehyeKKTtwcsiQEfAdg/5FzHSNumlyeDwyph1xEfnBx3pBxU9AUsI2+jupANkB2mEFYLpcjaUhRqsvL8wCdobci62lAvyjxtRBw425jy6N2aPMja51H5lcqleAvPBAtoRoK3h4AAAAASUVORK5CYII=");
line-height: 25px;
background-position: right 8px;
}
.section.subclasses h3 {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAKJSURBVDjLpZLfT1JhGMfduqu7/giv+wsk5mKGB53UBHHiDzjQkQjhmJyT6OiQBhommKJLaVrLZcPWpi3To0KspiSYv8AL160XOVy5uVrz23lPV0225rp49j77Ps/zed5937cIQNH/REFRyHBb3rXb6FhlT+58bJk5E0DIuC8Kaxwmd0cxkRtGW9L+9cw38Ky4jiZyEUQ2gnAtM4v/BPjWedxNt6Ez1Yr2FSe4D46T8WwEY9sDuLVAHza/bTqwztbnTa9r8wUBXmn4+e5jPMuNYCI7jPHsEKLbgxjdGsDw54cYXH+AR5keGGM6FAR0pFg8lYbJ1vspHu73DNgEDWfcLJ1WOJctEqAXhhfXCgMkp+FO2tG14pG3uuI0HMtNuLlYD0asg2XegP6MH/ZZC7TjFCrGyqAeuYJTJjpEC0Y2+mFfakCzaMSNhVqY52vQ+K4ajiUavZ98CKwK8K96oRpSngbY5kwIp3rADJngCwiIRqPgfW40TOphmzWhs7tD1roCXbju1aKkpOSCPCg5DclpcGIL7H4GoVAI+/v72NvbQzweh8ffjs4+D3ZyO7KWTCblHoqiemQAGR6UTGp94gDLuZDe3ISVp0FpKNA0jXA4DJ7n5by8vPyXXq9/QyAsyx7KAHrGiJBkUllLKYR7ggzQRilcLlVAFEWk02kkEgnEYjEoFIrvlZWV5wlAEIRjGdD4yoC+tW7QvQ1g7MwfgFY7p1Qqf6pUKlRVVclBcqKRGgFYrda8DKh7WY2aSS0q+q+iwqBBoC9wMjU1dTA9PY1IJAKnU/qdHCfnRCO1YDCY12g02b9eobi4+Jx0xUtqtfqL2Ww+stlsx1L80Ol0RilKpfwb0UiN9JDe3w8qq6SmnYkEAAAAAElFTkSuQmCC");
}
.section.superclass h3 {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAKJSURBVDjLpZLfT1JhGMfduqu7/giv+wsk5mKGB53UBHHiDzjQkQjhmJyT6OiQBhommKJLaVrLZcPWpi3To0KspiSYv8AL160XOVy5uVrz23lPV0225rp49j77Ps/zed5937cIQNH/REFRyHBb3rXb6FhlT+58bJk5E0DIuC8Kaxwmd0cxkRtGW9L+9cw38Ky4jiZyEUQ2gnAtM4v/BPjWedxNt6Ez1Yr2FSe4D46T8WwEY9sDuLVAHza/bTqwztbnTa9r8wUBXmn4+e5jPMuNYCI7jPHsEKLbgxjdGsDw54cYXH+AR5keGGM6FAR0pFg8lYbJ1vspHu73DNgEDWfcLJ1WOJctEqAXhhfXCgMkp+FO2tG14pG3uuI0HMtNuLlYD0asg2XegP6MH/ZZC7TjFCrGyqAeuYJTJjpEC0Y2+mFfakCzaMSNhVqY52vQ+K4ajiUavZ98CKwK8K96oRpSngbY5kwIp3rADJngCwiIRqPgfW40TOphmzWhs7tD1roCXbju1aKkpOSCPCg5DclpcGIL7H4GoVAI+/v72NvbQzweh8ffjs4+D3ZyO7KWTCblHoqiemQAGR6UTGp94gDLuZDe3ISVp0FpKNA0jXA4DJ7n5by8vPyXXq9/QyAsyx7KAHrGiJBkUllLKYR7ggzQRilcLlVAFEWk02kkEgnEYjEoFIrvlZWV5wlAEIRjGdD4yoC+tW7QvQ1g7MwfgFY7p1Qqf6pUKlRVVclBcqKRGgFYrda8DKh7WY2aSS0q+q+iwqBBoC9wMjU1dTA9PY1IJAKnU/qdHCfnRCO1YDCY12g02b9eobi4+Jx0xUtqtfqL2Ww+stlsx1L80Ol0RilKpfwb0UiN9JDe3w8qq6SmnYkEAAAAAElFTkSuQmCC");
}
.section.utilities h3 {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIISURBVDjLlZPRT1JxFMf5E+6fwL9Ri8lsI5cSV7swL82w0SZTB6zWXOuB0cLU8HKhuAooTNrFupcAsYWjh1sRIaDgTLGXxmubD2w+9Prth29tXMWH83J+Z5/vOd9zfhoAml7h+mg3ReuhUxIdR37CrVanUXvgvvsOtk4kbJ+kEaos/bkSYCZv0wcri7/zrTS2f32AUOX+2nPWACvd1V4KmM7fnxQP1pE+2kSuJUM+EpFpvUOS5MJVHgQSuBCwWuU72eP3EA8TWCx523NFl+Iv+zrxRgRr+wKeFJ1NVYA9y+o3mjFskbkj9SDGpTGqm2dSJmosZfRYZXPClLxNqQJsGYt2bS+MbEtCF2SVmQCTukOPikaqbxPnik4l3ohC+ilivbGKcC0Af/klXAVHczhuoC8FmDdpyl2YUrjyAlmfHytklATpJronwP9jAYbYIN3XHXTDuDGkJ6qeRzsz7XCNh1AjvshmRRXQnZWVmIQxOfTf5RFV/fw3LyJkC+6d2U5PwOjbEe3Tz4/bQp0/b92WY5VbsZtuQ3SQfpC71+R3/eAqr2ASR7I9AUSVepibUHhSFCVKQv31uXm+0nPwVQ5dgOfLM+jeXNdf6AFRnZz9NNVeKs8jtr+CCDHvRcmL8bSlqQtdo/v+TBaZ+RrcXUaQqLMZy+GVf+OAcGPaWXCckW7OBgTdslrdPxtwvK6n/CCRAAAAAElFTkSuQmCC");
}
.section.sections h3 {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAAZ9pQ0NQSUNDIFByb2ZpbGUAAHiclZG/SxthGMc/72kJFM3S09aCcIOYDFGCWSIUwWSwokMaBJMMwuXujIHz8nL3auviZmehm3SwLbSLiFNxjIuTuBSKoAjF/gGFlC5FzuFtyaKIDzzw+X7h4fkFRtuW0jeA1UCF5ZmCVanWrMQZvfQDgO1EcrpUmufO+PMdAfBtzJbSP2qljn8Pvd39sjS2ebpzdX53HQB9YaVaA2ECZkNzGjDrml8A5mslFYgSYDortgvCBTLhQrkIYhtINjTvAsm65gMgue40FIg2kA3cZgDiF5B3vcgBIw0oR4YKjPfASKVas/Roag6mhqHnpOvVItj7DE9Hu176GQwswmGu63VeIQAxeBIt5yYAEH0FeHQZx51RSLyD6+04/vsxjq8/Qc8FtANnLVz/dxdhTMJ9Wu+mtf4B6L63s94fgCx8eAmLj2FuC3Z+QGofnnyFUj8sTGLkf/5PfSsAnhdtv1kPbeW5VnmmYBVbfiuMpO149zz6oaG8Nwqg2JIbYbOxoqxpKX0vY80GznjGmshm89wA0tx3Ck/ZLb8AAAAJcEhZcwAACxMAAAsTAQCanBgAAAGpSURBVDiN1ZK/ihRBEMZ/NTtzjMosJ4p4KorZ3qUGZ3LBoU/gC5j4CIKBgab6AoKRYGYmpoIXmItGYqBwKpx74v6/nenp7s9gxt01uVCwkm6q6/vVV0XDfx8G8PHVtfd5d2vLLFl5EtXk89ekGl83n1V/qU7DflrMdnf3fApg6vQu7zxLzQzUiDHDlz+vHrx7+E3WZAE6WVfR1/2N/pu7wIsUQF4l0a1VB08IrgNJF7OC/MINLm4/zpCACIot/NT5Ty93HiwAVpMoOoJbQ1HE+T717AfT/h5ZvgGqITokD3iK3r3MiFcAUgAS8ujnuCOQm1FPxhS92+RnNts1/XEgQFi6DtHSJaBOSE+cY33zzqJQRKL7jh++RmGE/Aj5MQpT8kv3oWzW0gCcpFASjz40xWGC/JBYD1AYgR+2+TEKM1AFNasApOiJ9WHTKYyQH7b3Qdt5vABIHqpVQBVlBOR/tcLh0nYYIT9ZimPZjOlXAHIauOnhyXqyVpgKkzKIBegsClVjMWlOSwJ+Pic6VSsOykdfnt7aVuSmJVYc+3cFsrfOQnx+bN0/i9+QGxia3x5r7AAAAABJRU5ErkJggg==");
line-height: 25px;
background-position: right 8px;
}
.method-list {
margin-left: 0;
list-style: none;
}
.method-list > li {
display: inline-block;
}
.method-list > li:after {
content: ",";
margin: 0 10px 0 2px;
}
.method-list > li:last-child:after {
content: '';
}
.method-list > li > a {
border-bottom: 1px solid #888;
text-decoration: none;
}
.method-details-list {
margin-left: 0;
list-style: none;
}
.method-description > h4 > a {
border-style: none none solid;
}
.section a,
.readme a {
border-style: none none dashed;
}
a.link-short,
.superclass a {
border-style: none none solid;
}
.note {
background-color: #eef;
border: 1px solid #69c;
}
.related-to {
background-color: #fff6de;
border: 1px solid #cc9;
}
.related-to > a {
margin-left: 25px;
}
.alias {
background-color: #fff6de;
border: 1px solid #cc9;
}
.alias > ul {
display: inline;
padding: 0;
}
.alias > ul > li {
display: inline;
}
.alias > ul > li:after {
content: ",";
margin: 0 5px 0 2px;
}
.alias > ul > li:last-child:after {
content: "";
margin: 0;
}
.note,
.related-to,
.alias {
border-radius: 3px;
font-size: 12px;
padding: 5px 30px;
margin-bottom: 11px;
}
.note a,
.related-to a,
.alias a {
border-style: none none solid;
}
.signatures {
background-color: #e0e8e0;
border: 1px solid #ccc;
border-radius: 3px;
padding: 5px 10px;
margin-left: 0;
list-style: none;
}
.signature {
list-style: none;
display: inline;
margin-left: 0;
}
.signature > li {
display: inline;
}
.signature-values {
list-style: none;
display: inline;
margin-left: 0;
}
.signature-values:before {
content: '→';
margin: 0 5px;
}
.signature-values > li {
display: inline;
}
.signature-values > li:after {
content: "|";
margin: 0 2px;
}
.signature-values > li:last-child:after {
content: "";
margin: 0;
}
.argument {
margin-left: 0;
display: inline;
}
.argument > li {
display: inline;
}
.argument-name {
color: #060;
font-weight: bold;
font-size: 13px;
}
.argument-types {
display: inline;
margin-left: 5px;
font-style: italic;
font-size: 11px;
}
.argument-types:before {
content: '(';
margin-right: 2px;
}
.argument-types:after {
content: ')';
margin-left: 2px;
}
.argument-types > li {
display: inline;
}
.argument-types > li:after {
content: "|";
margin: 0 2px;
}
.argument-types > li:last-child:after {
content: "";
margin: 0;
}
.argument-description p {
display: inline;
}
.argument-description:before {
content: '—';
margin-left: 5px;
margin-right: 5px;
}
code {
padding: 2px 4px;
font-size: 90%;
color: #c7254e;
background-color: #f9f2f4;
border-radius: 4px;
}
pre {
border: 1px solid #ccc;
border-radius: 4px;
}
pre code {
padding: 0;
font-size: inherit;
color: inherit;
background-color: transparent;
border-radius: 0;
}
.hljs {
display: block;
overflow-x: auto;
padding: 0.5em;
color: #333;
background: #f8f8f8;
}
.hljs-comment,
.hljs-quote {
color: #998;
font-style: italic;
}
.hljs-keyword,
.hljs-selector-tag,
.hljs-subst {
color: #333;
font-weight: bold;
}
.hljs-number,
.hljs-literal,
.hljs-variable,
.hljs-template-variable,
.hljs-tag .hljs-attr {
color: #008080;
}
.hljs-string,
.hljs-doctag {
color: #d14;
}
.hljs-title,
.hljs-section,
.hljs-selector-id {
color: #900;
font-weight: bold;
}
.hljs-subst {
font-weight: normal;
}
.hljs-type,
.hljs-class .hljs-title {
color: #458;
font-weight: bold;
}
.hljs-tag,
.hljs-name,
.hljs-attribute {
color: #000080;
font-weight: normal;
}
.hljs-regexp,
.hljs-link {
color: #009926;
}
.hljs-symbol,
.hljs-bullet {
color: #990073;
}
.hljs-built_in,
.hljs-builtin-name {
color: #0086b3;
}
.hljs-meta {
color: #999;
font-weight: bold;
}
.hljs-deletion {
background: #fdd;
}
.hljs-addition {
background: #dfd;
}
.hljs-emphasis {
font-style: italic;
}
.hljs-strong {
font-weight: bold;
}
.hljs {
padding: 9.5px;
}
</style><script type="text/javascript">/*! jQuery v3.7.1 | (c) OpenJS Foundation and other contributors | jquery.org/license */
!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(ie,e){"use strict";var oe=[],r=Object.getPrototypeOf,ae=oe.slice,g=oe.flat?function(e){return oe.flat.call(e)}:function(e){return oe.concat.apply([],e)},s=oe.push,se=oe.indexOf,n={},i=n.toString,ue=n.hasOwnProperty,o=ue.toString,a=o.call(Object),le={},v=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},y=function(e){return null!=e&&e===e.window},C=ie.document,u={type:!0,src:!0,nonce:!0,noModule:!0};function m(e,t,n){var r,i,o=(n=n||C).createElement("script");if(o.text=e,t)for(r in u)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function x(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[i.call(e)]||"object":typeof e}var t="3.7.1",l=/HTML$/i,ce=function(e,t){return new ce.fn.init(e,t)};function c(e){var t=!!e&&"length"in e&&e.length,n=x(e);return!v(e)&&!y(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}function fe(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}ce.fn=ce.prototype={jquery:t,constructor:ce,length:0,toArray:function(){return ae.call(this)},get:function(e){return null==e?ae.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=ce.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return ce.each(this,e)},map:function(n){return this.pushStack(ce.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(ae.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(ce.grep(this,function(e,t){return(t+1)%2}))},odd:function(){return this.pushStack(ce.grep(this,function(e,t){return t%2}))},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:s,sort:oe.sort,splice:oe.splice},ce.extend=ce.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||v(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(ce.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||ce.isPlainObject(n)?n:{},i=!1,a[t]=ce.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},ce.extend({expando:"jQuery"+(t+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==i.call(e))&&(!(t=r(e))||"function"==typeof(n=ue.call(t,"constructor")&&t.constructor)&&o.call(n)===a)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t,n){m(e,{nonce:t&&t.nonce},n)},each:function(e,t){var n,r=0;if(c(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},text:function(e){var t,n="",r=0,i=e.nodeType;if(!i)while(t=e[r++])n+=ce.text(t);return 1===i||11===i?e.textContent:9===i?e.documentElement.textContent:3===i||4===i?e.nodeValue:n},makeArray:function(e,t){var n=t||[];return null!=e&&(c(Object(e))?ce.merge(n,"string"==typeof e?[e]:e):s.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:se.call(t,e,n)},isXMLDoc:function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!l.test(t||n&&n.nodeName||"HTML")},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(c(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g(a)},guid:1,support:le}),"function"==typeof Symbol&&(ce.fn[Symbol.iterator]=oe[Symbol.iterator]),ce.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var pe=oe.pop,de=oe.sort,he=oe.splice,ge="[\\x20\\t\\r\\n\\f]",ve=new RegExp("^"+ge+"+|((?:^|[^\\\\])(?:\\\\.)*)"+ge+"+$","g");ce.contains=function(e,t){var n=t&&t.parentNode;return e===n||!(!n||1!==n.nodeType||!(e.contains?e.contains(n):e.compareDocumentPosition&&16&e.compareDocumentPosition(n)))};var f=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g;function p(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e}ce.escapeSelector=function(e){return(e+"").replace(f,p)};var ye=C,me=s;!function(){var e,b,w,o,a,T,r,C,d,i,k=me,S=ce.expando,E=0,n=0,s=W(),c=W(),u=W(),h=W(),l=function(e,t){return e===t&&(a=!0),0},f="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",t="(?:\\\\[\\da-fA-F]{1,6}"+ge+"?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",p="\\["+ge+"*("+t+")(?:"+ge+"*([*^$|!~]?=)"+ge+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+t+"))|)"+ge+"*\\]",g=":("+t+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+p+")*)|.*)\\)|)",v=new RegExp(ge+"+","g"),y=new RegExp("^"+ge+"*,"+ge+"*"),m=new RegExp("^"+ge+"*([>+~]|"+ge+")"+ge+"*"),x=new RegExp(ge+"|>"),j=new RegExp(g),A=new RegExp("^"+t+"$"),D={ID:new RegExp("^#("+t+")"),CLASS:new RegExp("^\\.("+t+")"),TAG:new RegExp("^("+t+"|[*])"),ATTR:new RegExp("^"+p),PSEUDO:new RegExp("^"+g),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ge+"*(even|odd|(([+-]|)(\\d*)n|)"+ge+"*(?:([+-]|)"+ge+"*(\\d+)|))"+ge+"*\\)|)","i"),bool:new RegExp("^(?:"+f+")$","i"),needsContext:new RegExp("^"+ge+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ge+"*((?:-\\d)?\\d*)"+ge+"*\\)|)(?=[^-]|$)","i")},N=/^(?:input|select|textarea|button)$/i,q=/^h\d$/i,L=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,H=/[+~]/,O=new RegExp("\\\\[\\da-fA-F]{1,6}"+ge+"?|\\\\([^\\r\\n\\f])","g"),P=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},M=function(){V()},R=J(function(e){return!0===e.disabled&&fe(e,"fieldset")},{dir:"parentNode",next:"legend"});try{k.apply(oe=ae.call(ye.childNodes),ye.childNodes),oe[ye.childNodes.length].nodeType}catch(e){k={apply:function(e,t){me.apply(e,ae.call(t))},call:function(e){me.apply(e,ae.call(arguments,1))}}}function I(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(V(e),e=e||T,C)){if(11!==p&&(u=L.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return k.call(n,a),n}else if(f&&(a=f.getElementById(i))&&I.contains(e,a)&&a.id===i)return k.call(n,a),n}else{if(u[2])return k.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&e.getElementsByClassName)return k.apply(n,e.getElementsByClassName(i)),n}if(!(h[t+" "]||d&&d.test(t))){if(c=t,f=e,1===p&&(x.test(t)||m.test(t))){(f=H.test(t)&&U(e.parentNode)||e)==e&&le.scope||((s=e.getAttribute("id"))?s=ce.escapeSelector(s):e.setAttribute("id",s=S)),o=(l=Y(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+Q(l[o]);c=l.join(",")}try{return k.apply(n,f.querySelectorAll(c)),n}catch(e){h(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return re(t.replace(ve,"$1"),e,n,r)}function W(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function F(e){return e[S]=!0,e}function $(e){var t=T.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function B(t){return function(e){return fe(e,"input")&&e.type===t}}function _(t){return function(e){return(fe(e,"input")||fe(e,"button"))&&e.type===t}}function z(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&R(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function X(a){return F(function(o){return o=+o,F(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function U(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}function V(e){var t,n=e?e.ownerDocument||e:ye;return n!=T&&9===n.nodeType&&n.documentElement&&(r=(T=n).documentElement,C=!ce.isXMLDoc(T),i=r.matches||r.webkitMatchesSelector||r.msMatchesSelector,r.msMatchesSelector&&ye!=T&&(t=T.defaultView)&&t.top!==t&&t.addEventListener("unload",M),le.getById=$(function(e){return r.appendChild(e).id=ce.expando,!T.getElementsByName||!T.getElementsByName(ce.expando).length}),le.disconnectedMatch=$(function(e){return i.call(e,"*")}),le.scope=$(function(){return T.querySelectorAll(":scope")}),le.cssHas=$(function(){try{return T.querySelector(":has(*,:jqfake)"),!1}catch(e){return!0}}),le.getById?(b.filter.ID=function(e){var t=e.replace(O,P);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&C){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(O,P);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&C){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):t.querySelectorAll(e)},b.find.CLASS=function(e,t){if("undefined"!=typeof t.getElementsByClassName&&C)return t.getElementsByClassName(e)},d=[],$(function(e){var t;r.appendChild(e).innerHTML="<a id='"+S+"' href='' disabled='disabled'></a><select id='"+S+"-\r\\' disabled='disabled'><option selected=''></option></select>",e.querySelectorAll("[selected]").length||d.push("\\["+ge+"*(?:value|"+f+")"),e.querySelectorAll("[id~="+S+"-]").length||d.push("~="),e.querySelectorAll("a#"+S+"+*").length||d.push(".#.+[+~]"),e.querySelectorAll(":checked").length||d.push(":checked"),(t=T.createElement("input")).setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),r.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&d.push(":enabled",":disabled"),(t=T.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||d.push("\\["+ge+"*name"+ge+"*="+ge+"*(?:''|\"\")")}),le.cssHas||d.push(":has"),d=d.length&&new RegExp(d.join("|")),l=function(e,t){if(e===t)return a=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!le.sortDetached&&t.compareDocumentPosition(e)===n?e===T||e.ownerDocument==ye&&I.contains(ye,e)?-1:t===T||t.ownerDocument==ye&&I.contains(ye,t)?1:o?se.call(o,e)-se.call(o,t):0:4&n?-1:1)}),T}for(e in I.matches=function(e,t){return I(e,null,null,t)},I.matchesSelector=function(e,t){if(V(e),C&&!h[t+" "]&&(!d||!d.test(t)))try{var n=i.call(e,t);if(n||le.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){h(t,!0)}return 0<I(t,T,null,[e]).length},I.contains=function(e,t){return(e.ownerDocument||e)!=T&&V(e),ce.contains(e,t)},I.attr=function(e,t){(e.ownerDocument||e)!=T&&V(e);var n=b.attrHandle[t.toLowerCase()],r=n&&ue.call(b.attrHandle,t.toLowerCase())?n(e,t,!C):void 0;return void 0!==r?r:e.getAttribute(t)},I.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},ce.uniqueSort=function(e){var t,n=[],r=0,i=0;if(a=!le.sortStable,o=!le.sortStable&&ae.call(e,0),de.call(e,l),a){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)he.call(e,n[r],1)}return o=null,e},ce.fn.uniqueSort=function(){return this.pushStack(ce.uniqueSort(ae.apply(this)))},(b=ce.expr={cacheLength:50,createPseudo:F,match:D,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(O,P),e[3]=(e[3]||e[4]||e[5]||"").replace(O,P),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||I.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&I.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return D.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&j.test(n)&&(t=Y(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(O,P).toLowerCase();return"*"===e?function(){return!0}:function(e){return fe(e,t)}},CLASS:function(e){var t=s[e+" "];return t||(t=new RegExp("(^|"+ge+")"+e+"("+ge+"|$)"))&&s(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=I.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace(v," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(d,e,t,h,g){var v="nth"!==d.slice(0,3),y="last"!==d.slice(-4),m="of-type"===e;return 1===h&&0===g?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u=v!==y?"nextSibling":"previousSibling",l=e.parentNode,c=m&&e.nodeName.toLowerCase(),f=!n&&!m,p=!1;if(l){if(v){while(u){o=e;while(o=o[u])if(m?fe(o,c):1===o.nodeType)return!1;s=u="only"===d&&!s&&"nextSibling"}return!0}if(s=[y?l.firstChild:l.lastChild],y&&f){p=(a=(r=(i=l[S]||(l[S]={}))[d]||[])[0]===E&&r[1])&&r[2],o=a&&l.childNodes[a];while(o=++a&&o&&o[u]||(p=a=0)||s.pop())if(1===o.nodeType&&++p&&o===e){i[d]=[E,a,p];break}}else if(f&&(p=a=(r=(i=e[S]||(e[S]={}))[d]||[])[0]===E&&r[1]),!1===p)while(o=++a&&o&&o[u]||(p=a=0)||s.pop())if((m?fe(o,c):1===o.nodeType)&&++p&&(f&&((i=o[S]||(o[S]={}))[d]=[E,p]),o===e))break;return(p-=g)===h||p%h==0&&0<=p/h}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||I.error("unsupported pseudo: "+e);return a[S]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?F(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=se.call(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:F(function(e){var r=[],i=[],s=ne(e.replace(ve,"$1"));return s[S]?F(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:F(function(t){return function(e){return 0<I(t,e).length}}),contains:F(function(t){return t=t.replace(O,P),function(e){return-1<(e.textContent||ce.text(e)).indexOf(t)}}),lang:F(function(n){return A.test(n||"")||I.error("unsupported lang: "+n),n=n.replace(O,P).toLowerCase(),function(e){var t;do{if(t=C?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=ie.location&&ie.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===r},focus:function(e){return e===function(){try{return T.activeElement}catch(e){}}()&&T.hasFocus()&&!!(e.type||e.href||~e.tabIndex)},enabled:z(!1),disabled:z(!0),checked:function(e){return fe(e,"input")&&!!e.checked||fe(e,"option")&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return q.test(e.nodeName)},input:function(e){return N.test(e.nodeName)},button:function(e){return fe(e,"input")&&"button"===e.type||fe(e,"button")},text:function(e){var t;return fe(e,"input")&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:X(function(){return[0]}),last:X(function(e,t){return[t-1]}),eq:X(function(e,t,n){return[n<0?n+t:n]}),even:X(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:X(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:X(function(e,t,n){var r;for(r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:X(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=B(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=_(e);function G(){}function Y(e,t){var n,r,i,o,a,s,u,l=c[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=y.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=m.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace(ve," ")}),a=a.slice(n.length)),b.filter)!(r=D[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?I.error(e):c(e,s).slice(0)}function Q(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function J(a,e,t){var s=e.dir,u=e.next,l=u||s,c=t&&"parentNode"===l,f=n++;return e.first?function(e,t,n){while(e=e[s])if(1===e.nodeType||c)return a(e,t,n);return!1}:function(e,t,n){var r,i,o=[E,f];if(n){while(e=e[s])if((1===e.nodeType||c)&&a(e,t,n))return!0}else while(e=e[s])if(1===e.nodeType||c)if(i=e[S]||(e[S]={}),u&&fe(e,u))e=e[s]||e;else{if((r=i[l])&&r[0]===E&&r[1]===f)return o[2]=r[2];if((i[l]=o)[2]=a(e,t,n))return!0}return!1}}function K(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Z(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function ee(d,h,g,v,y,e){return v&&!v[S]&&(v=ee(v)),y&&!y[S]&&(y=ee(y,e)),F(function(e,t,n,r){var i,o,a,s,u=[],l=[],c=t.length,f=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)I(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),p=!d||!e&&h?f:Z(f,u,d,n,r);if(g?g(p,s=y||(e?d:c||v)?[]:t,n,r):s=p,v){i=Z(s,l),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(s[l[o]]=!(p[l[o]]=a))}if(e){if(y||d){if(y){i=[],o=s.length;while(o--)(a=s[o])&&i.push(p[o]=a);y(null,s=[],i,r)}o=s.length;while(o--)(a=s[o])&&-1<(i=y?se.call(e,a):u[o])&&(e[i]=!(t[i]=a))}}else s=Z(s===t?s.splice(c,s.length):s),y?y(null,t,s,r):k.apply(t,s)})}function te(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=J(function(e){return e===i},a,!0),l=J(function(e){return-1<se.call(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!=w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[J(K(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[S]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return ee(1<s&&K(c),1<s&&Q(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(ve,"$1"),t,s<n&&te(e.slice(s,n)),n<r&&te(e=e.slice(n)),n<r&&Q(e))}c.push(t)}return K(c)}function ne(e,t){var n,v,y,m,x,r,i=[],o=[],a=u[e+" "];if(!a){t||(t=Y(e)),n=t.length;while(n--)(a=te(t[n]))[S]?i.push(a):o.push(a);(a=u(e,(v=o,m=0<(y=i).length,x=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=E+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t==T||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument==T||(V(o),n=!C);while(s=v[a++])if(s(o,t||T,n)){k.call(r,o);break}i&&(E=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=pe.call(r));f=Z(f)}k.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&ce.uniqueSort(r)}return i&&(E=h,w=p),c},m?F(r):r))).selector=e}return a}function re(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&Y(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&C&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(O,P),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=D.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(O,P),H.test(o[0].type)&&U(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&Q(o)))return k.apply(n,r),n;break}}}return(l||ne(e,c))(r,t,!C,n,!t||H.test(e)&&U(t.parentNode)||t),n}G.prototype=b.filters=b.pseudos,b.setFilters=new G,le.sortStable=S.split("").sort(l).join("")===S,V(),le.sortDetached=$(function(e){return 1&e.compareDocumentPosition(T.createElement("fieldset"))}),ce.find=I,ce.expr[":"]=ce.expr.pseudos,ce.unique=ce.uniqueSort,I.compile=ne,I.select=re,I.setDocument=V,I.tokenize=Y,I.escape=ce.escapeSelector,I.getText=ce.text,I.isXML=ce.isXMLDoc,I.selectors=ce.expr,I.support=ce.support,I.uniqueSort=ce.uniqueSort}();var d=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&ce(e).is(n))break;r.push(e)}return r},h=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},b=ce.expr.match.needsContext,w=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function T(e,n,r){return v(n)?ce.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?ce.grep(e,function(e){return e===n!==r}):"string"!=typeof n?ce.grep(e,function(e){return-1<se.call(n,e)!==r}):ce.filter(n,e,r)}ce.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?ce.find.matchesSelector(r,e)?[r]:[]:ce.find.matches(e,ce.grep(t,function(e){return 1===e.nodeType}))},ce.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(ce(e).filter(function(){for(t=0;t<r;t++)if(ce.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)ce.find(e,i[t],n);return 1<r?ce.uniqueSort(n):n},filter:function(e){return this.pushStack(T(this,e||[],!1))},not:function(e){return this.pushStack(T(this,e||[],!0))},is:function(e){return!!T(this,"string"==typeof e&&b.test(e)?ce(e):e||[],!1).length}});var k,S=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(ce.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||k,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:S.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof ce?t[0]:t,ce.merge(this,ce.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:C,!0)),w.test(r[1])&&ce.isPlainObject(t))for(r in t)v(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=C.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):v(e)?void 0!==n.ready?n.ready(e):e(ce):ce.makeArray(e,this)}).prototype=ce.fn,k=ce(C);var E=/^(?:parents|prev(?:Until|All))/,j={children:!0,contents:!0,next:!0,prev:!0};function A(e,t){while((e=e[t])&&1!==e.nodeType);return e}ce.fn.extend({has:function(e){var t=ce(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(ce.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&ce(e);if(!b.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&ce.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?ce.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?se.call(ce(e),this[0]):se.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(ce.uniqueSort(ce.merge(this.get(),ce(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),ce.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return d(e,"parentNode")},parentsUntil:function(e,t,n){return d(e,"parentNode",n)},next:function(e){return A(e,"nextSibling")},prev:function(e){return A(e,"previousSibling")},nextAll:function(e){return d(e,"nextSibling")},prevAll:function(e){return d(e,"previousSibling")},nextUntil:function(e,t,n){return d(e,"nextSibling",n)},prevUntil:function(e,t,n){return d(e,"previousSibling",n)},siblings:function(e){return h((e.parentNode||{}).firstChild,e)},children:function(e){return h(e.firstChild)},contents:function(e){return null!=e.contentDocument&&r(e.contentDocument)?e.contentDocument:(fe(e,"template")&&(e=e.content||e),ce.merge([],e.childNodes))}},function(r,i){ce.fn[r]=function(e,t){var n=ce.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=ce.filter(t,n)),1<this.length&&(j[r]||ce.uniqueSort(n),E.test(r)&&n.reverse()),this.pushStack(n)}});var D=/[^\x20\t\r\n\f]+/g;function N(e){return e}function q(e){throw e}function L(e,t,n,r){var i;try{e&&v(i=e.promise)?i.call(e).done(t).fail(n):e&&v(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}ce.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},ce.each(e.match(D)||[],function(e,t){n[t]=!0}),n):ce.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){ce.each(e,function(e,t){v(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==x(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return ce.each(arguments,function(e,t){var n;while(-1<(n=ce.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<ce.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},ce.extend({Deferred:function(e){var o=[["notify","progress",ce.Callbacks("memory"),ce.Callbacks("memory"),2],["resolve","done",ce.Callbacks("once memory"),ce.Callbacks("once memory"),0,"resolved"],["reject","fail",ce.Callbacks("once memory"),ce.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return ce.Deferred(function(r){ce.each(o,function(e,t){var n=v(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&v(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,v(t)?s?t.call(e,l(u,o,N,s),l(u,o,q,s)):(u++,t.call(e,l(u,o,N,s),l(u,o,q,s),l(u,o,N,o.notifyWith))):(a!==N&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){ce.Deferred.exceptionHook&&ce.Deferred.exceptionHook(e,t.error),u<=i+1&&(a!==q&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(ce.Deferred.getErrorHook?t.error=ce.Deferred.getErrorHook():ce.Deferred.getStackHook&&(t.error=ce.Deferred.getStackHook()),ie.setTimeout(t))}}return ce.Deferred(function(e){o[0][3].add(l(0,e,v(r)?r:N,e.notifyWith)),o[1][3].add(l(0,e,v(t)?t:N)),o[2][3].add(l(0,e,v(n)?n:q))}).promise()},promise:function(e){return null!=e?ce.extend(e,a):a}},s={};return ce.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=ae.call(arguments),o=ce.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?ae.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(L(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||v(i[t]&&i[t].then)))return o.then();while(t--)L(i[t],a(t),o.reject);return o.promise()}});var H=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;ce.Deferred.exceptionHook=function(e,t){ie.console&&ie.console.warn&&e&&H.test(e.name)&&ie.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},ce.readyException=function(e){ie.setTimeout(function(){throw e})};var O=ce.Deferred();function P(){C.removeEventListener("DOMContentLoaded",P),ie.removeEventListener("load",P),ce.ready()}ce.fn.ready=function(e){return O.then(e)["catch"](function(e){ce.readyException(e)}),this},ce.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--ce.readyWait:ce.isReady)||(ce.isReady=!0)!==e&&0<--ce.readyWait||O.resolveWith(C,[ce])}}),ce.ready.then=O.then,"complete"===C.readyState||"loading"!==C.readyState&&!C.documentElement.doScroll?ie.setTimeout(ce.ready):(C.addEventListener("DOMContentLoaded",P),ie.addEventListener("load",P));var M=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===x(n))for(s in i=!0,n)M(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,v(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(ce(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},R=/^-ms-/,I=/-([a-z])/g;function W(e,t){return t.toUpperCase()}function F(e){return e.replace(R,"ms-").replace(I,W)}var $=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function B(){this.expando=ce.expando+B.uid++}B.uid=1,B.prototype={cache:function(e){var t=e[this.expando];return t||(t={},$(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[F(t)]=n;else for(r in t)i[F(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][F(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(F):(t=F(t))in r?[t]:t.match(D)||[]).length;while(n--)delete r[t[n]]}(void 0===t||ce.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!ce.isEmptyObject(t)}};var _=new B,z=new B,X=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,U=/[A-Z]/g;function V(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(U,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:X.test(i)?JSON.parse(i):i)}catch(e){}z.set(e,t,n)}else n=void 0;return n}ce.extend({hasData:function(e){return z.hasData(e)||_.hasData(e)},data:function(e,t,n){return z.access(e,t,n)},removeData:function(e,t){z.remove(e,t)},_data:function(e,t,n){return _.access(e,t,n)},_removeData:function(e,t){_.remove(e,t)}}),ce.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=z.get(o),1===o.nodeType&&!_.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=F(r.slice(5)),V(o,r,i[r]));_.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){z.set(this,n)}):M(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=z.get(o,n))?t:void 0!==(t=V(o,n))?t:void 0;this.each(function(){z.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){z.remove(this,e)})}}),ce.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=_.get(e,t),n&&(!r||Array.isArray(n)?r=_.access(e,t,ce.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=ce.queue(e,t),r=n.length,i=n.shift(),o=ce._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){ce.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return _.get(e,n)||_.access(e,n,{empty:ce.Callbacks("once memory").add(function(){_.remove(e,[t+"queue",n])})})}}),ce.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?ce.queue(this[0],t):void 0===n?this:this.each(function(){var e=ce.queue(this,t,n);ce._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&ce.dequeue(this,t)})},dequeue:function(e){return this.each(function(){ce.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=ce.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=_.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var G=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,Y=new RegExp("^(?:([+-])=|)("+G+")([a-z%]*)$","i"),Q=["Top","Right","Bottom","Left"],J=C.documentElement,K=function(e){return ce.contains(e.ownerDocument,e)},Z={composed:!0};J.getRootNode&&(K=function(e){return ce.contains(e.ownerDocument,e)||e.getRootNode(Z)===e.ownerDocument});var ee=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&K(e)&&"none"===ce.css(e,"display")};function te(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return ce.css(e,t,"")},u=s(),l=n&&n[3]||(ce.cssNumber[t]?"":"px"),c=e.nodeType&&(ce.cssNumber[t]||"px"!==l&&+u)&&Y.exec(ce.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)ce.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,ce.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ne={};function re(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=_.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&ee(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ne[s])||(o=a.body.appendChild(a.createElement(s)),u=ce.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ne[s]=u)))):"none"!==n&&(l[c]="none",_.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}ce.fn.extend({show:function(){return re(this,!0)},hide:function(){return re(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){ee(this)?ce(this).show():ce(this).hide()})}});var xe,be,we=/^(?:checkbox|radio)$/i,Te=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,Ce=/^$|^module$|\/(?:java|ecma)script/i;xe=C.createDocumentFragment().appendChild(C.createElement("div")),(be=C.createElement("input")).setAttribute("type","radio"),be.setAttribute("checked","checked"),be.setAttribute("name","t"),xe.appendChild(be),le.checkClone=xe.cloneNode(!0).cloneNode(!0).lastChild.checked,xe.innerHTML="<textarea>x</textarea>",le.noCloneChecked=!!xe.cloneNode(!0).lastChild.defaultValue,xe.innerHTML="<option></option>",le.option=!!xe.lastChild;var ke={thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function Se(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&fe(e,t)?ce.merge([e],n):n}function Ee(e,t){for(var n=0,r=e.length;n<r;n++)_.set(e[n],"globalEval",!t||_.get(t[n],"globalEval"))}ke.tbody=ke.tfoot=ke.colgroup=ke.caption=ke.thead,ke.th=ke.td,le.option||(ke.optgroup=ke.option=[1,"<select multiple='multiple'>","</select>"]);var je=/<|&#?\w+;/;function Ae(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===x(o))ce.merge(p,o.nodeType?[o]:o);else if(je.test(o)){a=a||f.appendChild(t.createElement("div")),s=(Te.exec(o)||["",""])[1].toLowerCase(),u=ke[s]||ke._default,a.innerHTML=u[1]+ce.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;ce.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<ce.inArray(o,r))i&&i.push(o);else if(l=K(o),a=Se(f.appendChild(o),"script"),l&&Ee(a),n){c=0;while(o=a[c++])Ce.test(o.type||"")&&n.push(o)}return f}var De=/^([^.]*)(?:\.(.+)|)/;function Ne(){return!0}function qe(){return!1}function Le(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Le(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=qe;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return ce().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=ce.guid++)),e.each(function(){ce.event.add(this,t,i,r,n)})}function He(e,r,t){t?(_.set(e,r,!1),ce.event.add(e,r,{namespace:!1,handler:function(e){var t,n=_.get(this,r);if(1&e.isTrigger&&this[r]){if(n)(ce.event.special[r]||{}).delegateType&&e.stopPropagation();else if(n=ae.call(arguments),_.set(this,r,n),this[r](),t=_.get(this,r),_.set(this,r,!1),n!==t)return e.stopImmediatePropagation(),e.preventDefault(),t}else n&&(_.set(this,r,ce.event.trigger(n[0],n.slice(1),this)),e.stopPropagation(),e.isImmediatePropagationStopped=Ne)}})):void 0===_.get(e,r)&&ce.event.add(e,r,Ne)}ce.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=_.get(t);if($(t)){n.handler&&(n=(o=n).handler,i=o.selector),i&&ce.find.matchesSelector(J,i),n.guid||(n.guid=ce.guid++),(u=v.events)||(u=v.events=Object.create(null)),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof ce&&ce.event.triggered!==e.type?ce.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(D)||[""]).length;while(l--)d=g=(s=De.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=ce.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=ce.event.special[d]||{},c=ce.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&ce.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),ce.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=_.hasData(e)&&_.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(D)||[""]).length;while(l--)if(d=g=(s=De.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=ce.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||ce.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)ce.event.remove(e,d+t[l],n,r,!0);ce.isEmptyObject(u)&&_.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=new Array(arguments.length),u=ce.event.fix(e),l=(_.get(this,"events")||Object.create(null))[u.type]||[],c=ce.event.special[u.type]||{};for(s[0]=u,t=1;t<arguments.length;t++)s[t]=arguments[t];if(u.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,u)){a=ce.event.handlers.call(this,u,l),t=0;while((i=a[t++])&&!u.isPropagationStopped()){u.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!u.isImmediatePropagationStopped())u.rnamespace&&!1!==o.namespace&&!u.rnamespace.test(o.namespace)||(u.handleObj=o,u.data=o.data,void 0!==(r=((ce.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,s))&&!1===(u.result=r)&&(u.preventDefault(),u.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,u),u.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<ce(i,this).index(l):ce.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(ce.Event.prototype,t,{enumerable:!0,configurable:!0,get:v(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[ce.expando]?e:new ce.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return we.test(t.type)&&t.click&&fe(t,"input")&&He(t,"click",!0),!1},trigger:function(e){var t=this||e;return we.test(t.type)&&t.click&&fe(t,"input")&&He(t,"click"),!0},_default:function(e){var t=e.target;return we.test(t.type)&&t.click&&fe(t,"input")&&_.get(t,"click")||fe(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},ce.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},ce.Event=function(e,t){if(!(this instanceof ce.Event))return new ce.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?Ne:qe,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&ce.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[ce.expando]=!0},ce.Event.prototype={constructor:ce.Event,isDefaultPrevented:qe,isPropagationStopped:qe,isImmediatePropagationStopped:qe,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=Ne,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=Ne,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=Ne,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},ce.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:!0},ce.event.addProp),ce.each({focus:"focusin",blur:"focusout"},function(r,i){function o(e){if(C.documentMode){var t=_.get(this,"handle"),n=ce.event.fix(e);n.type="focusin"===e.type?"focus":"blur",n.isSimulated=!0,t(e),n.target===n.currentTarget&&t(n)}else ce.event.simulate(i,e.target,ce.event.fix(e))}ce.event.special[r]={setup:function(){var e;if(He(this,r,!0),!C.documentMode)return!1;(e=_.get(this,i))||this.addEventListener(i,o),_.set(this,i,(e||0)+1)},trigger:function(){return He(this,r),!0},teardown:function(){var e;if(!C.documentMode)return!1;(e=_.get(this,i)-1)?_.set(this,i,e):(this.removeEventListener(i,o),_.remove(this,i))},_default:function(e){return _.get(e.target,r)},delegateType:i},ce.event.special[i]={setup:function(){var e=this.ownerDocument||this.document||this,t=C.documentMode?this:e,n=_.get(t,i);n||(C.documentMode?this.addEventListener(i,o):e.addEventListener(r,o,!0)),_.set(t,i,(n||0)+1)},teardown:function(){var e=this.ownerDocument||this.document||this,t=C.documentMode?this:e,n=_.get(t,i)-1;n?_.set(t,i,n):(C.documentMode?this.removeEventListener(i,o):e.removeEventListener(r,o,!0),_.remove(t,i))}}}),ce.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){ce.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||ce.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),ce.fn.extend({on:function(e,t,n,r){return Le(this,e,t,n,r)},one:function(e,t,n,r){return Le(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,ce(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=qe),this.each(function(){ce.event.remove(this,e,n,t)})}});var Oe=/<script|<style|<link/i,Pe=/checked\s*(?:[^=]|=\s*.checked.)/i,Me=/^\s*<!\[CDATA\[|\]\]>\s*$/g;function Re(e,t){return fe(e,"table")&&fe(11!==t.nodeType?t:t.firstChild,"tr")&&ce(e).children("tbody")[0]||e}function Ie(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function We(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Fe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(_.hasData(e)&&(s=_.get(e).events))for(i in _.remove(t,"handle events"),s)for(n=0,r=s[i].length;n<r;n++)ce.event.add(t,i,s[i][n]);z.hasData(e)&&(o=z.access(e),a=ce.extend({},o),z.set(t,a))}}function $e(n,r,i,o){r=g(r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=v(d);if(h||1<f&&"string"==typeof d&&!le.checkClone&&Pe.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),$e(t,r,i,o)});if(f&&(t=(e=Ae(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=ce.map(Se(e,"script"),Ie)).length;c<f;c++)u=e,c!==p&&(u=ce.clone(u,!0,!0),s&&ce.merge(a,Se(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,ce.map(a,We),c=0;c<s;c++)u=a[c],Ce.test(u.type||"")&&!_.access(u,"globalEval")&&ce.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?ce._evalUrl&&!u.noModule&&ce._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")},l):m(u.textContent.replace(Me,""),u,l))}return n}function Be(e,t,n){for(var r,i=t?ce.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||ce.cleanData(Se(r)),r.parentNode&&(n&&K(r)&&Ee(Se(r,"script")),r.parentNode.removeChild(r));return e}ce.extend({htmlPrefilter:function(e){return e},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=K(e);if(!(le.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||ce.isXMLDoc(e)))for(a=Se(c),r=0,i=(o=Se(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&we.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||Se(e),a=a||Se(c),r=0,i=o.length;r<i;r++)Fe(o[r],a[r]);else Fe(e,c);return 0<(a=Se(c,"script")).length&&Ee(a,!f&&Se(e,"script")),c},cleanData:function(e){for(var t,n,r,i=ce.event.special,o=0;void 0!==(n=e[o]);o++)if($(n)){if(t=n[_.expando]){if(t.events)for(r in t.events)i[r]?ce.event.remove(n,r):ce.removeEvent(n,r,t.handle);n[_.expando]=void 0}n[z.expando]&&(n[z.expando]=void 0)}}}),ce.fn.extend({detach:function(e){return Be(this,e,!0)},remove:function(e){return Be(this,e)},text:function(e){return M(this,function(e){return void 0===e?ce.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return $e(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Re(this,e).appendChild(e)})},prepend:function(){return $e(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Re(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return $e(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return $e(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(ce.cleanData(Se(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return ce.clone(this,e,t)})},html:function(e){return M(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!Oe.test(e)&&!ke[(Te.exec(e)||["",""])[1].toLowerCase()]){e=ce.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(ce.cleanData(Se(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return $e(this,arguments,function(e){var t=this.parentNode;ce.inArray(this,n)<0&&(ce.cleanData(Se(this)),t&&t.replaceChild(e,this))},n)}}),ce.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){ce.fn[e]=function(e){for(var t,n=[],r=ce(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),ce(r[o])[a](t),s.apply(n,t.get());return this.pushStack(n)}});var _e=new RegExp("^("+G+")(?!px)[a-z%]+$","i"),ze=/^--/,Xe=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=ie),t.getComputedStyle(e)},Ue=function(e,t,n){var r,i,o={};for(i in t)o[i]=e.style[i],e.style[i]=t[i];for(i in r=n.call(e),t)e.style[i]=o[i];return r},Ve=new RegExp(Q.join("|"),"i");function Ge(e,t,n){var r,i,o,a,s=ze.test(t),u=e.style;return(n=n||Xe(e))&&(a=n.getPropertyValue(t)||n[t],s&&a&&(a=a.replace(ve,"$1")||void 0),""!==a||K(e)||(a=ce.style(e,t)),!le.pixelBoxStyles()&&_e.test(a)&&Ve.test(t)&&(r=u.width,i=u.minWidth,o=u.maxWidth,u.minWidth=u.maxWidth=u.width=a,a=n.width,u.width=r,u.minWidth=i,u.maxWidth=o)),void 0!==a?a+"":a}function Ye(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(l){u.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",l.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",J.appendChild(u).appendChild(l);var e=ie.getComputedStyle(l);n="1%"!==e.top,s=12===t(e.marginLeft),l.style.right="60%",o=36===t(e.right),r=36===t(e.width),l.style.position="absolute",i=12===t(l.offsetWidth/3),J.removeChild(u),l=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s,u=C.createElement("div"),l=C.createElement("div");l.style&&(l.style.backgroundClip="content-box",l.cloneNode(!0).style.backgroundClip="",le.clearCloneStyle="content-box"===l.style.backgroundClip,ce.extend(le,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),s},scrollboxSize:function(){return e(),i},reliableTrDimensions:function(){var e,t,n,r;return null==a&&(e=C.createElement("table"),t=C.createElement("tr"),n=C.createElement("div"),e.style.cssText="position:absolute;left:-11111px;border-collapse:separate",t.style.cssText="box-sizing:content-box;border:1px solid",t.style.height="1px",n.style.height="9px",n.style.display="block",J.appendChild(e).appendChild(t).appendChild(n),r=ie.getComputedStyle(t),a=parseInt(r.height,10)+parseInt(r.borderTopWidth,10)+parseInt(r.borderBottomWidth,10)===t.offsetHeight,J.removeChild(e)),a}}))}();var Qe=["Webkit","Moz","ms"],Je=C.createElement("div").style,Ke={};function Ze(e){var t=ce.cssProps[e]||Ke[e];return t||(e in Je?e:Ke[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=Qe.length;while(n--)if((e=Qe[n]+t)in Je)return e}(e)||e)}var et=/^(none|table(?!-c[ea]).+)/,tt={position:"absolute",visibility:"hidden",display:"block"},nt={letterSpacing:"0",fontWeight:"400"};function rt(e,t,n){var r=Y.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function it(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0,l=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(l+=ce.css(e,n+Q[a],!0,i)),r?("content"===n&&(u-=ce.css(e,"padding"+Q[a],!0,i)),"margin"!==n&&(u-=ce.css(e,"border"+Q[a]+"Width",!0,i))):(u+=ce.css(e,"padding"+Q[a],!0,i),"padding"!==n?u+=ce.css(e,"border"+Q[a]+"Width",!0,i):s+=ce.css(e,"border"+Q[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u+l}function ot(e,t,n){var r=Xe(e),i=(!le.boxSizingReliable()||n)&&"border-box"===ce.css(e,"boxSizing",!1,r),o=i,a=Ge(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if(_e.test(a)){if(!n)return a;a="auto"}return(!le.boxSizingReliable()&&i||!le.reliableTrDimensions()&&fe(e,"tr")||"auto"===a||!parseFloat(a)&&"inline"===ce.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===ce.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+it(e,t,n||(i?"border":"content"),o,r,a)+"px"}function at(e,t,n,r,i){return new at.prototype.init(e,t,n,r,i)}ce.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Ge(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,aspectRatio:!0,borderImageSlice:!0,columnCount:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,scale:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeMiterlimit:!0,strokeOpacity:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=F(t),u=ze.test(t),l=e.style;if(u||(t=Ze(s)),a=ce.cssHooks[t]||ce.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=Y.exec(n))&&i[1]&&(n=te(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(ce.cssNumber[s]?"":"px")),le.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=F(t);return ze.test(t)||(t=Ze(s)),(a=ce.cssHooks[t]||ce.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=Ge(e,t,r)),"normal"===i&&t in nt&&(i=nt[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),ce.each(["height","width"],function(e,u){ce.cssHooks[u]={get:function(e,t,n){if(t)return!et.test(ce.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?ot(e,u,n):Ue(e,tt,function(){return ot(e,u,n)})},set:function(e,t,n){var r,i=Xe(e),o=!le.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===ce.css(e,"boxSizing",!1,i),s=n?it(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-it(e,u,"border",!1,i)-.5)),s&&(r=Y.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=ce.css(e,u)),rt(0,t,s)}}}),ce.cssHooks.marginLeft=Ye(le.reliableMarginLeft,function(e,t){if(t)return(parseFloat(Ge(e,"marginLeft"))||e.getBoundingClientRect().left-Ue(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),ce.each({margin:"",padding:"",border:"Width"},function(i,o){ce.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+Q[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(ce.cssHooks[i+o].set=rt)}),ce.fn.extend({css:function(e,t){return M(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Xe(e),i=t.length;a<i;a++)o[t[a]]=ce.css(e,t[a],!1,r);return o}return void 0!==n?ce.style(e,t,n):ce.css(e,t)},e,t,1<arguments.length)}}),((ce.Tween=at).prototype={constructor:at,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||ce.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(ce.cssNumber[n]?"":"px")},cur:function(){var e=at.propHooks[this.prop];return e&&e.get?e.get(this):at.propHooks._default.get(this)},run:function(e){var t,n=at.propHooks[this.prop];return this.options.duration?this.pos=t=ce.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):at.propHooks._default.set(this),this}}).init.prototype=at.prototype,(at.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=ce.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){ce.fx.step[e.prop]?ce.fx.step[e.prop](e):1!==e.elem.nodeType||!ce.cssHooks[e.prop]&&null==e.elem.style[Ze(e.prop)]?e.elem[e.prop]=e.now:ce.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=at.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},ce.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},ce.fx=at.prototype.init,ce.fx.step={};var st,ut,lt,ct,ft=/^(?:toggle|show|hide)$/,pt=/queueHooks$/;function dt(){ut&&(!1===C.hidden&&ie.requestAnimationFrame?ie.requestAnimationFrame(dt):ie.setTimeout(dt,ce.fx.interval),ce.fx.tick())}function ht(){return ie.setTimeout(function(){st=void 0}),st=Date.now()}function gt(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=Q[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function vt(e,t,n){for(var r,i=(yt.tweeners[t]||[]).concat(yt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function yt(o,e,t){var n,a,r=0,i=yt.prefilters.length,s=ce.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=st||ht(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:ce.extend({},e),opts:ce.extend(!0,{specialEasing:{},easing:ce.easing._default},t),originalProperties:e,originalOptions:t,startTime:st||ht(),duration:t.duration,tweens:[],createTween:function(e,t){var n=ce.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=F(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=ce.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=yt.prefilters[r].call(l,o,c,l.opts))return v(n.stop)&&(ce._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return ce.map(c,vt,l),v(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),ce.fx.timer(ce.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}ce.Animation=ce.extend(yt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return te(n.elem,e,Y.exec(t),n),n}]},tweener:function(e,t){v(e)?(t=e,e=["*"]):e=e.match(D);for(var n,r=0,i=e.length;r<i;r++)n=e[r],yt.tweeners[n]=yt.tweeners[n]||[],yt.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&ee(e),v=_.get(e,"fxshow");for(r in n.queue||(null==(a=ce._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,ce.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],ft.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!v||void 0===v[r])continue;g=!0}d[r]=v&&v[r]||ce.style(e,r)}if((u=!ce.isEmptyObject(t))||!ce.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=_.get(e,"display")),"none"===(c=ce.css(e,"display"))&&(l?c=l:(re([e],!0),l=e.style.display||l,c=ce.css(e,"display"),re([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===ce.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(v?"hidden"in v&&(g=v.hidden):v=_.access(e,"fxshow",{display:l}),o&&(v.hidden=!g),g&&re([e],!0),p.done(function(){for(r in g||re([e]),_.remove(e,"fxshow"),d)ce.style(e,r,d[r])})),u=vt(g?v[r]:0,r,p),r in v||(v[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?yt.prefilters.unshift(e):yt.prefilters.push(e)}}),ce.speed=function(e,t,n){var r=e&&"object"==typeof e?ce.extend({},e):{complete:n||!n&&t||v(e)&&e,duration:e,easing:n&&t||t&&!v(t)&&t};return ce.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in ce.fx.speeds?r.duration=ce.fx.speeds[r.duration]:r.duration=ce.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){v(r.old)&&r.old.call(this),r.queue&&ce.dequeue(this,r.queue)},r},ce.fn.extend({fadeTo:function(e,t,n,r){return this.filter(ee).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=ce.isEmptyObject(t),o=ce.speed(e,n,r),a=function(){var e=yt(this,ce.extend({},t),o);(i||_.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=ce.timers,r=_.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&pt.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||ce.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=_.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=ce.timers,o=n?n.length:0;for(t.finish=!0,ce.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),ce.each(["toggle","show","hide"],function(e,r){var i=ce.fn[r];ce.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(gt(r,!0),e,t,n)}}),ce.each({slideDown:gt("show"),slideUp:gt("hide"),slideToggle:gt("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){ce.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),ce.timers=[],ce.fx.tick=function(){var e,t=0,n=ce.timers;for(st=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||ce.fx.stop(),st=void 0},ce.fx.timer=function(e){ce.timers.push(e),ce.fx.start()},ce.fx.interval=13,ce.fx.start=function(){ut||(ut=!0,dt())},ce.fx.stop=function(){ut=null},ce.fx.speeds={slow:600,fast:200,_default:400},ce.fn.delay=function(r,e){return r=ce.fx&&ce.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=ie.setTimeout(e,r);t.stop=function(){ie.clearTimeout(n)}})},lt=C.createElement("input"),ct=C.createElement("select").appendChild(C.createElement("option")),lt.type="checkbox",le.checkOn=""!==lt.value,le.optSelected=ct.selected,(lt=C.createElement("input")).value="t",lt.type="radio",le.radioValue="t"===lt.value;var mt,xt=ce.expr.attrHandle;ce.fn.extend({attr:function(e,t){return M(this,ce.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){ce.removeAttr(this,e)})}}),ce.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?ce.prop(e,t,n):(1===o&&ce.isXMLDoc(e)||(i=ce.attrHooks[t.toLowerCase()]||(ce.expr.match.bool.test(t)?mt:void 0)),void 0!==n?null===n?void ce.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=ce.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!le.radioValue&&"radio"===t&&fe(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(D);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),mt={set:function(e,t,n){return!1===t?ce.removeAttr(e,n):e.setAttribute(n,n),n}},ce.each(ce.expr.match.bool.source.match(/\w+/g),function(e,t){var a=xt[t]||ce.find.attr;xt[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=xt[o],xt[o]=r,r=null!=a(e,t,n)?o:null,xt[o]=i),r}});var bt=/^(?:input|select|textarea|button)$/i,wt=/^(?:a|area)$/i;function Tt(e){return(e.match(D)||[]).join(" ")}function Ct(e){return e.getAttribute&&e.getAttribute("class")||""}function kt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(D)||[]}ce.fn.extend({prop:function(e,t){return M(this,ce.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[ce.propFix[e]||e]})}}),ce.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&ce.isXMLDoc(e)||(t=ce.propFix[t]||t,i=ce.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=ce.find.attr(e,"tabindex");return t?parseInt(t,10):bt.test(e.nodeName)||wt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),le.optSelected||(ce.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),ce.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){ce.propFix[this.toLowerCase()]=this}),ce.fn.extend({addClass:function(t){var e,n,r,i,o,a;return v(t)?this.each(function(e){ce(this).addClass(t.call(this,e,Ct(this)))}):(e=kt(t)).length?this.each(function(){if(r=Ct(this),n=1===this.nodeType&&" "+Tt(r)+" "){for(o=0;o<e.length;o++)i=e[o],n.indexOf(" "+i+" ")<0&&(n+=i+" ");a=Tt(n),r!==a&&this.setAttribute("class",a)}}):this},removeClass:function(t){var e,n,r,i,o,a;return v(t)?this.each(function(e){ce(this).removeClass(t.call(this,e,Ct(this)))}):arguments.length?(e=kt(t)).length?this.each(function(){if(r=Ct(this),n=1===this.nodeType&&" "+Tt(r)+" "){for(o=0;o<e.length;o++){i=e[o];while(-1<n.indexOf(" "+i+" "))n=n.replace(" "+i+" "," ")}a=Tt(n),r!==a&&this.setAttribute("class",a)}}):this:this.attr("class","")},toggleClass:function(t,n){var e,r,i,o,a=typeof t,s="string"===a||Array.isArray(t);return v(t)?this.each(function(e){ce(this).toggleClass(t.call(this,e,Ct(this),n),n)}):"boolean"==typeof n&&s?n?this.addClass(t):this.removeClass(t):(e=kt(t),this.each(function(){if(s)for(o=ce(this),i=0;i<e.length;i++)r=e[i],o.hasClass(r)?o.removeClass(r):o.addClass(r);else void 0!==t&&"boolean"!==a||((r=Ct(this))&&_.set(this,"__className__",r),this.setAttribute&&this.setAttribute("class",r||!1===t?"":_.get(this,"__className__")||""))}))},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+Tt(Ct(n))+" ").indexOf(t))return!0;return!1}});var St=/\r/g;ce.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=v(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,ce(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=ce.map(t,function(e){return null==e?"":e+""})),(r=ce.valHooks[this.type]||ce.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=ce.valHooks[t.type]||ce.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(St,""):null==e?"":e:void 0}}),ce.extend({valHooks:{option:{get:function(e){var t=ce.find.attr(e,"value");return null!=t?t:Tt(ce.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!fe(n.parentNode,"optgroup"))){if(t=ce(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=ce.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<ce.inArray(ce.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),ce.each(["radio","checkbox"],function(){ce.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<ce.inArray(ce(e).val(),t)}},le.checkOn||(ce.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var Et=ie.location,jt={guid:Date.now()},At=/\?/;ce.parseXML=function(e){var t,n;if(!e||"string"!=typeof e)return null;try{t=(new ie.DOMParser).parseFromString(e,"text/xml")}catch(e){}return n=t&&t.getElementsByTagName("parsererror")[0],t&&!n||ce.error("Invalid XML: "+(n?ce.map(n.childNodes,function(e){return e.textContent}).join("\n"):e)),t};var Dt=/^(?:focusinfocus|focusoutblur)$/,Nt=function(e){e.stopPropagation()};ce.extend(ce.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||C],d=ue.call(e,"type")?e.type:e,h=ue.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||C,3!==n.nodeType&&8!==n.nodeType&&!Dt.test(d+ce.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[ce.expando]?e:new ce.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:ce.makeArray(t,[e]),c=ce.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!y(n)){for(s=c.delegateType||d,Dt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||C)&&p.push(a.defaultView||a.parentWindow||ie)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(_.get(o,"events")||Object.create(null))[e.type]&&_.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&$(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!$(n)||u&&v(n[d])&&!y(n)&&((a=n[u])&&(n[u]=null),ce.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,Nt),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,Nt),ce.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=ce.extend(new ce.Event,n,{type:e,isSimulated:!0});ce.event.trigger(r,null,t)}}),ce.fn.extend({trigger:function(e,t){return this.each(function(){ce.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return ce.event.trigger(e,t,n,!0)}});var qt=/\[\]$/,Lt=/\r?\n/g,Ht=/^(?:submit|button|image|reset|file)$/i,Ot=/^(?:input|select|textarea|keygen)/i;function Pt(n,e,r,i){var t;if(Array.isArray(e))ce.each(e,function(e,t){r||qt.test(n)?i(n,t):Pt(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==x(e))i(n,e);else for(t in e)Pt(n+"["+t+"]",e[t],r,i)}ce.param=function(e,t){var n,r=[],i=function(e,t){var n=v(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!ce.isPlainObject(e))ce.each(e,function(){i(this.name,this.value)});else for(n in e)Pt(n,e[n],t,i);return r.join("&")},ce.fn.extend({serialize:function(){return ce.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=ce.prop(this,"elements");return e?ce.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!ce(this).is(":disabled")&&Ot.test(this.nodeName)&&!Ht.test(e)&&(this.checked||!we.test(e))}).map(function(e,t){var n=ce(this).val();return null==n?null:Array.isArray(n)?ce.map(n,function(e){return{name:t.name,value:e.replace(Lt,"\r\n")}}):{name:t.name,value:n.replace(Lt,"\r\n")}}).get()}});var Mt=/%20/g,Rt=/#.*$/,It=/([?&])_=[^&]*/,Wt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Ft=/^(?:GET|HEAD)$/,$t=/^\/\//,Bt={},_t={},zt="*/".concat("*"),Xt=C.createElement("a");function Ut(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(D)||[];if(v(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function Vt(t,i,o,a){var s={},u=t===_t;function l(e){var r;return s[e]=!0,ce.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function Gt(e,t){var n,r,i=ce.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&ce.extend(!0,e,r),e}Xt.href=Et.href,ce.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Et.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Et.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":zt,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":ce.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Gt(Gt(e,ce.ajaxSettings),t):Gt(ce.ajaxSettings,e)},ajaxPrefilter:Ut(Bt),ajaxTransport:Ut(_t),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,v=ce.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?ce(y):ce.event,x=ce.Deferred(),b=ce.Callbacks("once memory"),w=v.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=Wt.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||Et.href)+"").replace($t,Et.protocol+"//"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(D)||[""],null==v.crossDomain){r=C.createElement("a");try{r.href=v.url,r.href=r.href,v.crossDomain=Xt.protocol+"//"+Xt.host!=r.protocol+"//"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=ce.param(v.data,v.traditional)),Vt(Bt,v,t,T),h)return T;for(i in(g=ce.event&&v.global)&&0==ce.active++&&ce.event.trigger("ajaxStart"),v.type=v.type.toUpperCase(),v.hasContent=!Ft.test(v.type),f=v.url.replace(Rt,""),v.hasContent?v.data&&v.processData&&0===(v.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v.data=v.data.replace(Mt,"+")):(o=v.url.slice(f.length),v.data&&(v.processData||"string"==typeof v.data)&&(f+=(At.test(f)?"&":"?")+v.data,delete v.data),!1===v.cache&&(f=f.replace(It,"$1"),o=(At.test(f)?"&":"?")+"_="+jt.guid+++o),v.url=f+o),v.ifModified&&(ce.lastModified[f]&&T.setRequestHeader("If-Modified-Since",ce.lastModified[f]),ce.etag[f]&&T.setRequestHeader("If-None-Match",ce.etag[f])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&T.setRequestHeader("Content-Type",v.contentType),T.setRequestHeader("Accept",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+("*"!==v.dataTypes[0]?", "+zt+"; q=0.01":""):v.accepts["*"]),v.headers)T.setRequestHeader(i,v.headers[i]);if(v.beforeSend&&(!1===v.beforeSend.call(y,T,v)||h))return T.abort();if(u="abort",b.add(v.complete),T.done(v.success),T.fail(v.error),c=Vt(_t,v,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,v]),h)return T;v.async&&0<v.timeout&&(d=ie.setTimeout(function(){T.abort("timeout")},v.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&ie.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,T,n)),!i&&-1<ce.inArray("script",v.dataTypes)&&ce.inArray("json",v.dataTypes)<0&&(v.converters["text script"]=function(){}),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(v,s,T,i),i?(v.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(ce.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(ce.etag[f]=u)),204===e||"HEAD"===v.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(y,[o,l,T]):x.rejectWith(y,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,v,i?o:a]),b.fireWith(y,[T,l]),g&&(m.trigger("ajaxComplete",[T,v]),--ce.active||ce.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return ce.get(e,t,n,"json")},getScript:function(e,t){return ce.get(e,void 0,t,"script")}}),ce.each(["get","post"],function(e,i){ce[i]=function(e,t,n,r){return v(t)&&(r=r||n,n=t,t=void 0),ce.ajax(ce.extend({url:e,type:i,dataType:r,data:t,success:n},ce.isPlainObject(e)&&e))}}),ce.ajaxPrefilter(function(e){var t;for(t in e.headers)"content-type"===t.toLowerCase()&&(e.contentType=e.headers[t]||"")}),ce._evalUrl=function(e,t,n){return ce.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){ce.globalEval(e,t,n)}})},ce.fn.extend({wrapAll:function(e){var t;return this[0]&&(v(e)&&(e=e.call(this[0])),t=ce(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return v(n)?this.each(function(e){ce(this).wrapInner(n.call(this,e))}):this.each(function(){var e=ce(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=v(t);return this.each(function(e){ce(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){ce(this).replaceWith(this.childNodes)}),this}}),ce.expr.pseudos.hidden=function(e){return!ce.expr.pseudos.visible(e)},ce.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},ce.ajaxSettings.xhr=function(){try{return new ie.XMLHttpRequest}catch(e){}};var Yt={0:200,1223:204},Qt=ce.ajaxSettings.xhr();le.cors=!!Qt&&"withCredentials"in Qt,le.ajax=Qt=!!Qt,ce.ajaxTransport(function(i){var o,a;if(le.cors||Qt&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(Yt[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&ie.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),ce.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),ce.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return ce.globalEval(e),e}}}),ce.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),ce.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=ce("<script>").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),C.head.appendChild(r[0])},abort:function(){i&&i()}}});var Jt,Kt=[],Zt=/(=)\?(?=&|$)|\?\?/;ce.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Kt.pop()||ce.expando+"_"+jt.guid++;return this[e]=!0,e}}),ce.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Zt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Zt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=v(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Zt,"$1"+r):!1!==e.jsonp&&(e.url+=(At.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||ce.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=ie[r],ie[r]=function(){o=arguments},n.always(function(){void 0===i?ce(ie).removeProp(r):ie[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Kt.push(r)),o&&v(i)&&i(o[0]),o=i=void 0}),"script"}),le.createHTMLDocument=((Jt=C.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===Jt.childNodes.length),ce.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(le.createHTMLDocument?((r=(t=C.implementation.createHTMLDocument("")).createElement("base")).href=C.location.href,t.head.appendChild(r)):t=C),o=!n&&[],(i=w.exec(e))?[t.createElement(i[1])]:(i=Ae([e],t,o),o&&o.length&&ce(o).remove(),ce.merge([],i.childNodes)));var r,i,o},ce.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=Tt(e.slice(s)),e=e.slice(0,s)),v(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&ce.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?ce("<div>").append(ce.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},ce.expr.pseudos.animated=function(t){return ce.grep(ce.timers,function(e){return t===e.elem}).length},ce.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=ce.css(e,"position"),c=ce(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=ce.css(e,"top"),u=ce.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),v(t)&&(t=t.call(e,n,ce.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},ce.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){ce.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===ce.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===ce.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=ce(e).offset()).top+=ce.css(e,"borderTopWidth",!0),i.left+=ce.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-ce.css(r,"marginTop",!0),left:t.left-i.left-ce.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===ce.css(e,"position"))e=e.offsetParent;return e||J})}}),ce.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;ce.fn[t]=function(e){return M(this,function(e,t,n){var r;if(y(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),ce.each(["top","left"],function(e,n){ce.cssHooks[n]=Ye(le.pixelPosition,function(e,t){if(t)return t=Ge(e,n),_e.test(t)?ce(e).position()[n]+"px":t})}),ce.each({Height:"height",Width:"width"},function(a,s){ce.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){ce.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return M(this,function(e,t,n){var r;return y(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?ce.css(e,t,i):ce.style(e,t,n,i)},s,n?e:void 0,n)}})}),ce.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){ce.fn[t]=function(e){return this.on(t,e)}}),ce.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.on("mouseenter",e).on("mouseleave",t||e)}}),ce.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){ce.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}});var en=/^[\s\uFEFF\xA0]+|([^\s\uFEFF\xA0])[\s\uFEFF\xA0]+$/g;ce.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),v(e))return r=ae.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(ae.call(arguments)))}).guid=e.guid=e.guid||ce.guid++,i},ce.holdReady=function(e){e?ce.readyWait++:ce.ready(!0)},ce.isArray=Array.isArray,ce.parseJSON=JSON.parse,ce.nodeName=fe,ce.isFunction=v,ce.isWindow=y,ce.camelCase=F,ce.type=x,ce.now=Date.now,ce.isNumeric=function(e){var t=ce.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},ce.trim=function(e){return null==e?"":(e+"").replace(en,"$1")},"function"==typeof define&&define.amd&&define("jquery",[],function(){return ce});var tn=ie.jQuery,nn=ie.$;return ce.noConflict=function(e){return ie.$===ce&&(ie.$=nn),e&&ie.jQuery===ce&&(ie.jQuery=tn),ce},"undefined"==typeof e&&(ie.jQuery=ie.$=ce),ce});
$(function () {
'use strict';
var $empty = $(), // empty set used upon activtion
$window = $(window),
$items = $('.menu-item > a'),
$results = $('#search-results'), // search results
targets = [], // items and corresponding article offset
$active = null, // active article
baseTitle = document.title; // base (general) part of title
function throttle(func, ms) {
var isThrottled = false,
savedArgs,
savedThis;
function wrapper() {
if (isThrottled) { // (2)
savedArgs = arguments;
savedThis = this;
return;
}
func.apply(this, arguments); // (1)
isThrottled = true;
setTimeout(function() {
isThrottled = false; // (3)
if (savedArgs) {
wrapper.apply(savedThis, savedArgs);
savedArgs = savedThis = null;
}
}, ms);
}
return wrapper;
}
function getTitle($article) {
var title = [baseTitle];
if ($article.data('title')) {
title.push($article.data('title'));
}
return title.join(' | ');
}
function eachParent($item, callback) {
var $parent = $item.data('ndoc.parent');
if ($parent && $parent.length) {
eachParent($parent, callback);
callback($parent);
}
}
// activates item (used upon scrolling)
function activate($article, expandParents) {
var $item;
if ($active) {
$item = $active.data('ndoc.item') || $empty;
$item.removeClass('current');
eachParent($item, function ($parent) {
$parent.removeClass('current-parent');
});
}
// set new active article
$active = $article;
// update title
document.title = getTitle($article);
$item = $active.data('ndoc.item') || $empty;
$item.addClass('current');
eachParent($item, function ($parent) {
$parent.addClass('current-parent');
if (expandParents) {
$parent.data('ndoc.childs')
.data('ndoc.collapsed', false)
.animate({
height: 'show',
opacity: 'show'
});
}
});
}
function processScroll(evt, expandParents) {
var scrollTop = $window.scrollTop() + 10, i = targets.length;
while (i--) {
if ($active !== targets[i].article && scrollTop >= targets[i].offset
&& (!targets[i + 1] || scrollTop <= targets[i + 1].offset)) {
activate(targets[i].article, expandParents);
return;
}
}
}
// init articles
$('article.docblock').each(function () {
var $article = $(this);
targets.push({
article: $article,
offset: $article.offset().top
});
});
// init menu items
$items.each(function () {
var $item = $(this),
$childs = $item.next(),
$parent = $item.parents('ul').eq(0).prev().children(),
$article = $('[id="' + $item.attr('href').slice(1) + '"]');
// cross-refs
$item.data('ndoc.parent', $parent);
$item.data('ndoc.childs', $childs);
$article.data('ndoc.item', $item);
// bind activator
$item.on('click', function () {
if ($item.hasClass('current') && !$childs.data('ndoc.collapsed')) {
$childs.data('ndoc.collapsed', true).animate({
height: 'hide',
opacity: 'hide'
});
return false;
}
activate($article);
$childs.data('ndoc.collapsed', false).animate({
height: 'show',
opacity: 'show'
});
});
// collapse all 2nd levels
if (0 != $parent.length) {
$childs.data('ndoc.collapsed', true).hide();
}
});
function updateSearchResults() {
$results.empty();
if ('' == this.value) {
$results.hide();
return;
}
$results.show();
$items.filter('[data-id*="' + this.value.toLowerCase() + '"]').each(function () {
var $item = $(this);
$('<li class="menu-item">').append(
$item.clone(false)
.text($item.text())
.on('click', function () {
$item.trigger('click');
})
).appendTo($results);
});
}
// init search
$('#search')
// prevent from form submit
.on('submit', function () { return false; })
.find('input')
.on('keyup', throttle(updateSearchResults, 250))
// click - cuz i don't know what event fired on input clear in Chrome
.on('change click', updateSearchResults);
// init scrollspy
$window.on('scroll', throttle(processScroll, 250));
// initial jump (required for FF only - Chrome don't need it)
processScroll(null, true);
});
</script></head><body><div class="gh-ribbon"><a href="https://github.com/markdown-it/markdown-it">Fork me on GitHub</a></div><nav class="sidebar"><form id="search"><input type="search" size="20" title="Search" placeholder="Search"></form><ul class="menu" id="search-results"></ul><ul class="menu"><li class="menu-item"><a href="#Core" class="class internal" title="Core (class)" data-id="core">Core</a><ul><li class="menu-item"><a href="#Core.new" class="constructor" title="new Core (constructor)" data-id="new core">new</a></li><li class="menu-item"><a href="#Core.process" class="class-method" title="Core.process (class method)" data-id="core.process">process</a></li><li class="menu-item"><a href="#Core.prototype.ruler" class="instance-property" title="Core#ruler (instance property)" data-id="core#ruler">ruler</a></li></ul></li><li class="menu-item"><a href="#MarkdownIt" class="class" title="MarkdownIt (class)" data-id="markdownit">MarkdownIt</a><ul><li class="menu-item"><a href="#MarkdownIt.new" class="constructor" title="new MarkdownIt (constructor)" data-id="new markdownit">new</a></li><li class="menu-item"><a href="#MarkdownIt.configure" class="class-method chainable internal" title="MarkdownIt.configure (class method)" data-id="markdownit.configure">configure</a></li><li class="menu-item"><a href="#MarkdownIt.disable" class="class-method chainable" title="MarkdownIt.disable (class method)" data-id="markdownit.disable">disable</a></li><li class="menu-item"><a href="#MarkdownIt.enable" class="class-method chainable" title="MarkdownIt.enable (class method)" data-id="markdownit.enable">enable</a></li><li class="menu-item"><a href="#MarkdownIt.parse" class="class-method internal" title="MarkdownIt.parse (class method)" data-id="markdownit.parse">parse</a></li><li class="menu-item"><a href="#MarkdownIt.parseInline" class="class-method internal" title="MarkdownIt.parseInline (class method)" data-id="markdownit.parseinline">parseInline</a></li><li class="menu-item"><a href="#MarkdownIt.render" class="class-method" title="MarkdownIt.render (class method)" data-id="markdownit.render">render</a></li><li class="menu-item"><a href="#MarkdownIt.renderInline" class="class-method" title="MarkdownIt.renderInline (class method)" data-id="markdownit.renderinline">renderInline</a></li><li class="menu-item"><a href="#MarkdownIt.set" class="class-method chainable" title="MarkdownIt.set (class method)" data-id="markdownit.set">set</a></li><li class="menu-item"><a href="#MarkdownIt.use" class="class-method chainable" title="MarkdownIt.use (class method)" data-id="markdownit.use">use</a></li><li class="menu-item"><a href="#MarkdownIt.prototype.normalizeLink" class="instance-method" title="MarkdownIt#normalizeLink (instance method)" data-id="markdownit#normalizelink">normalizeLink</a></li><li class="menu-item"><a href="#MarkdownIt.prototype.normalizeLinkText" class="instance-method" title="MarkdownIt#normalizeLinkText (instance method)" data-id="markdownit#normalizelinktext">normalizeLinkText</a></li><li class="menu-item"><a href="#MarkdownIt.prototype.validateLink" class="instance-method" title="MarkdownIt#validateLink (instance method)" data-id="markdownit#validatelink">validateLink</a></li><li class="menu-item"><a href="#MarkdownIt.prototype.block" class="instance-property" title="MarkdownIt#block (instance property)" data-id="markdownit#block">block</a></li><li class="menu-item"><a href="#MarkdownIt.prototype.core" class="instance-property" title="MarkdownIt#core (instance property)" data-id="markdownit#core">core</a></li><li class="menu-item"><a href="#MarkdownIt.prototype.helpers" class="instance-property" title="MarkdownIt#helpers (instance property)" data-id="markdownit#helpers">helpers</a></li><li class="menu-item"><a href="#MarkdownIt.prototype.inline" class="instance-property" title="MarkdownIt#inline (instance property)" data-id="markdownit#inline">inline</a></li><li class="menu-item"><a href="#MarkdownIt.prototype.linkify" class="instance-property" title="MarkdownIt#linkify (instance property)" data-id="markdownit#linkify">linkify</a></li><li class="menu-item"><a href="#MarkdownIt.prototype.renderer" class="instance-property" title="MarkdownIt#renderer (instance property)" data-id="markdownit#renderer">renderer</a></li><li class="menu-item"><a href="#MarkdownIt.prototype.utils" class="instance-property" title="MarkdownIt#utils (instance property)" data-id="markdownit#utils">utils</a></li></ul></li><li class="menu-item"><a href="#ParserBlock" class="class internal" title="ParserBlock (class)" data-id="parserblock">ParserBlock</a><ul><li class="menu-item"><a href="#ParserBlock.new" class="constructor" title="new ParserBlock (constructor)" data-id="new parserblock">new</a></li><li class="menu-item"><a href="#ParserBlock.parse" class="class-method" title="ParserBlock.parse (class method)" data-id="parserblock.parse">parse</a></li><li class="menu-item"><a href="#ParserBlock.prototype.ruler" class="instance-property" title="ParserBlock#ruler (instance property)" data-id="parserblock#ruler">ruler</a></li></ul></li><li class="menu-item"><a href="#ParserInline" class="class internal" title="ParserInline (class)" data-id="parserinline">ParserInline</a><ul><li class="menu-item"><a href="#ParserInline.new" class="constructor" title="new ParserInline (constructor)" data-id="new parserinline">new</a></li><li class="menu-item"><a href="#ParserInline.parse" class="class-method" title="ParserInline.parse (class method)" data-id="parserinline.parse">parse</a></li><li class="menu-item"><a href="#ParserInline.prototype.ruler" class="instance-property" title="ParserInline#ruler (instance property)" data-id="parserinline#ruler">ruler</a></li><li class="menu-item"><a href="#ParserInline.prototype.ruler2" class="instance-property" title="ParserInline#ruler2 (instance property)" data-id="parserinline#ruler2">ruler2</a></li></ul></li><li class="menu-item"><a href="#Renderer" class="class" title="Renderer (class)" data-id="renderer">Renderer</a><ul><li class="menu-item"><a href="#Renderer.new" class="constructor" title="new Renderer (constructor)" data-id="new renderer">new</a></li><li class="menu-item"><a href="#Renderer.render" class="class-method" title="Renderer.render (class method)" data-id="renderer.render">render</a></li><li class="menu-item"><a href="#Renderer.renderAttrs" class="class-method" title="Renderer.renderAttrs (class method)" data-id="renderer.renderattrs">renderAttrs</a></li><li class="menu-item"><a href="#Renderer.renderInline" class="class-method" title="Renderer.renderInline (class method)" data-id="renderer.renderinline">renderInline</a></li><li class="menu-item"><a href="#Renderer.renderInlineAsText" class="class-method internal" title="Renderer.renderInlineAsText (class method)" data-id="renderer.renderinlineastext">renderInlineAsText</a></li><li class="menu-item"><a href="#Renderer.renderToken" class="class-method" title="Renderer.renderToken (class method)" data-id="renderer.rendertoken">renderToken</a></li><li class="menu-item"><a href="#Renderer.prototype.rules" class="instance-property" title="Renderer#rules (instance property)" data-id="renderer#rules">rules</a></li></ul></li><li class="menu-item"><a href="#Ruler" class="class" title="Ruler (class)" data-id="ruler">Ruler</a><ul><li class="menu-item"><a href="#Ruler.new" class="constructor" title="new Ruler (constructor)" data-id="new ruler">new</a></li><li class="menu-item"><a href="#Ruler.after" class="class-method" title="Ruler.after (class method)" data-id="ruler.after">after</a></li><li class="menu-item"><a href="#Ruler.at" class="class-method" title="Ruler.at (class method)" data-id="ruler.at">at</a></li><li class="menu-item"><a href="#Ruler.before" class="class-method" title="Ruler.before (class method)" data-id="ruler.before">before</a></li><li class="menu-item"><a href="#Ruler.disable" class="class-method" title="Ruler.disable (class method)" data-id="ruler.disable">disable</a></li><li class="menu-item"><a href="#Ruler.enable" class="class-method" title="Ruler.enable (class method)" data-id="ruler.enable">enable</a></li><li class="menu-item"><a href="#Ruler.enableOnly" class="class-method" title="Ruler.enableOnly (class method)" data-id="ruler.enableonly">enableOnly</a></li><li class="menu-item"><a href="#Ruler.getRules" class="class-method" title="Ruler.getRules (class method)" data-id="ruler.getrules">getRules</a></li><li class="menu-item"><a href="#Ruler.push" class="class-method" title="Ruler.push (class method)" data-id="ruler.push">push</a></li></ul></li><li class="menu-item"><a href="#Token" class="class" title="Token (class)" data-id="token">Token</a><ul><li class="menu-item"><a href="#Token.new" class="constructor" title="new Token (constructor)" data-id="new token">new</a></li><li class="menu-item"><a href="#Token.attrGet" class="class-method" title="Token.attrGet (class method)" data-id="token.attrget">attrGet</a></li><li class="menu-item"><a href="#Token.attrIndex" class="class-method" title="Token.attrIndex (class method)" data-id="token.attrindex">attrIndex</a></li><li class="menu-item"><a href="#Token.attrJoin" class="class-method" title="Token.attrJoin (class method)" data-id="token.attrjoin">attrJoin</a></li><li class="menu-item"><a href="#Token.attrPush" class="class-method" title="Token.attrPush (class method)" data-id="token.attrpush">attrPush</a></li><li class="menu-item"><a href="#Token.attrSet" class="class-method" title="Token.attrSet (class method)" data-id="token.attrset">attrSet</a></li><li class="menu-item"><a href="#Token.prototype.attrs" class="instance-property" title="Token#attrs (instance property)" data-id="token#attrs">attrs</a></li><li class="menu-item"><a href="#Token.prototype.block" class="instance-property" title="Token#block (instance property)" data-id="token#block">block</a></li><li class="menu-item"><a href="#Token.prototype.children" class="instance-property" title="Token#children (instance property)" data-id="token#children">children</a></li><li class="menu-item"><a href="#Token.prototype.content" class="instance-property" title="Token#content (instance property)" data-id="token#content">content</a></li><li class="menu-item"><a href="#Token.prototype.hidden" class="instance-property" title="Token#hidden (instance property)" data-id="token#hidden">hidden</a></li><li class="menu-item"><a href="#Token.prototype.info" class="instance-property" title="Token#info (instance property)" data-id="token#info">info</a></li><li class="menu-item"><a href="#Token.prototype.level" class="instance-property" title="Token#level (instance property)" data-id="token#level">level</a></li><li class="menu-item"><a href="#Token.prototype.map" class="instance-property" title="Token#map (instance property)" data-id="token#map">map</a></li><li class="menu-item"><a href="#Token.prototype.markup" class="instance-property" title="Token#markup (instance property)" data-id="token#markup">markup</a></li><li class="menu-item"><a href="#Token.prototype.meta" class="instance-property" title="Token#meta (instance property)" data-id="token#meta">meta</a></li><li class="menu-item"><a href="#Token.prototype.nesting" class="instance-property" title="Token#nesting (instance property)" data-id="token#nesting">nesting</a></li><li class="menu-item"><a href="#Token.prototype.tag" class="instance-property" title="Token#tag (instance property)" data-id="token#tag">tag</a></li><li class="menu-item"><a href="#Token.prototype.type" class="instance-property" title="Token#type (instance property)" data-id="token#type">type</a></li></ul></li></ul></nav><div class="main" id="home" data-title="Home"><article class="docblock"><div class="readme"><h1>markdown-it</h1>
<h2>Install</h2>
<p><strong>node.js</strong>:</p>
<pre class="hljs language-bash"><code>npm install markdown-it
</code></pre>
<p><strong>browser (CDN):</strong></p>
<ul>
<li><a href="http://www.jsdelivr.com/#!markdown-it" title="jsDelivr CDN">jsDeliver CDN</a></li>
<li><a href="https://cdnjs.com/libraries/markdown-it" title="cdnjs.com">cdnjs.com CDN</a></li>
</ul>
<h2>Usage examples</h2>
<p>See also:</p>
<ul>
<li><a href="https://github.com/markdown-it/markdown-it/tree/master/docs">Development info</a> -
for plugins writers.</li>
</ul>
<h3>Simple</h3>
<pre class="hljs language-js"><code><span class="hljs-comment">// node.js</span>
<span class="hljs-comment">// can use `require(&#x27;markdown-it&#x27;)` for CJS</span>
<span class="hljs-keyword">import</span> markdownit <span class="hljs-keyword">from</span> <span class="hljs-string">&#x27;markdown-it&#x27;</span>
<span class="hljs-keyword">const</span> md = <span class="hljs-title function_">markdownit</span>()
<span class="hljs-keyword">const</span> result = md.<span class="hljs-title function_">render</span>(<span class="hljs-string">&#x27;# markdown-it rulezz!&#x27;</span>);
<span class="hljs-comment">// browser with UMD build, added to &quot;window&quot; on script load</span>
<span class="hljs-comment">// Note, there is no dash in &quot;markdownit&quot;.</span>
<span class="hljs-keyword">const</span> md = <span class="hljs-variable language_">window</span>.<span class="hljs-title function_">markdownit</span>();
<span class="hljs-keyword">const</span> result = md.<span class="hljs-title function_">render</span>(<span class="hljs-string">&#x27;# markdown-it rulezz!&#x27;</span>);
</code></pre>
<p>Single line rendering, without paragraph wrap:</p>
<pre class="hljs language-js"><code><span class="hljs-keyword">import</span> markdownit <span class="hljs-keyword">from</span> <span class="hljs-string">&#x27;markdown-it&#x27;</span>
<span class="hljs-keyword">const</span> md = <span class="hljs-title function_">markdownit</span>()
<span class="hljs-keyword">const</span> result = md.<span class="hljs-title function_">renderInline</span>(<span class="hljs-string">&#x27;__markdown-it__ rulezz!&#x27;</span>);
</code></pre>
<h3>Init with presets and options</h3>
<p>(*) presets define combinations of active rules and options. Can be
<code>&quot;commonmark&quot;</code>, <code>&quot;zero&quot;</code> or <code>&quot;default&quot;</code> (if skipped). See
<a href="https://markdown-it.github.io/markdown-it/#MarkdownIt.new">API docs</a> for more details.</p>
<pre class="hljs language-js"><code><span class="hljs-keyword">import</span> markdownit <span class="hljs-keyword">from</span> <span class="hljs-string">&#x27;markdown-it&#x27;</span>
<span class="hljs-comment">// commonmark mode</span>
<span class="hljs-keyword">const</span> md = <span class="hljs-title function_">markdownit</span>(<span class="hljs-string">&#x27;commonmark&#x27;</span>)
<span class="hljs-comment">// default mode</span>
<span class="hljs-keyword">const</span> md = <span class="hljs-title function_">markdownit</span>()
<span class="hljs-comment">// enable everything</span>
<span class="hljs-keyword">const</span> md = <span class="hljs-title function_">markdownit</span>({
<span class="hljs-attr">html</span>: <span class="hljs-literal">true</span>,
<span class="hljs-attr">linkify</span>: <span class="hljs-literal">true</span>,
<span class="hljs-attr">typographer</span>: <span class="hljs-literal">true</span>
})
<span class="hljs-comment">// full options list (defaults)</span>
<span class="hljs-keyword">const</span> md = <span class="hljs-title function_">markdownit</span>({
<span class="hljs-comment">// Enable HTML tags in source</span>
<span class="hljs-attr">html</span>: <span class="hljs-literal">false</span>,
<span class="hljs-comment">// Use &#x27;/&#x27; to close single tags (&lt;br /&gt;).</span>
<span class="hljs-comment">// This is only for full CommonMark compatibility.</span>
<span class="hljs-attr">xhtmlOut</span>: <span class="hljs-literal">false</span>,
<span class="hljs-comment">// Convert &#x27;\n&#x27; in paragraphs into &lt;br&gt;</span>
<span class="hljs-attr">breaks</span>: <span class="hljs-literal">false</span>,
<span class="hljs-comment">// CSS language prefix for fenced blocks. Can be</span>
<span class="hljs-comment">// useful for external highlighters.</span>
<span class="hljs-attr">langPrefix</span>: <span class="hljs-string">&#x27;language-&#x27;</span>,
<span class="hljs-comment">// Autoconvert URL-like text to links</span>
<span class="hljs-attr">linkify</span>: <span class="hljs-literal">false</span>,
<span class="hljs-comment">// Enable some language-neutral replacement + quotes beautification</span>
<span class="hljs-comment">// For the full list of replacements, see https://github.com/markdown-it/markdown-it/blob/master/lib/rules_core/replacements.mjs</span>
<span class="hljs-attr">typographer</span>: <span class="hljs-literal">false</span>,
<span class="hljs-comment">// Double + single quotes replacement pairs, when typographer enabled,</span>
<span class="hljs-comment">// and smartquotes on. Could be either a String or an Array.</span>
<span class="hljs-comment">//</span>
<span class="hljs-comment">// For example, you can use &#x27;«»„“&#x27; for Russian, &#x27;„“‚‘&#x27; for German,</span>
<span class="hljs-comment">// and [&#x27;«\xA0&#x27;, &#x27;\xA0»&#x27;, &#x27;‹\xA0&#x27;, &#x27;\xA0›&#x27;] for French (including nbsp).</span>
<span class="hljs-attr">quotes</span>: <span class="hljs-string">&#x27;“”‘’&#x27;</span>,
<span class="hljs-comment">// Highlighter function. Should return escaped HTML,</span>
<span class="hljs-comment">// or &#x27;&#x27; if the source string is not changed and should be escaped externally.</span>
<span class="hljs-comment">// If result starts with &lt;pre... internal wrapper is skipped.</span>
<span class="hljs-attr">highlight</span>: <span class="hljs-keyword">function</span> (<span class="hljs-params"><span class="hljs-comment">/*str, lang*/</span></span>) { <span class="hljs-keyword">return</span> <span class="hljs-string">&#x27;&#x27;</span>; }
});
</code></pre>
<h3>Plugins load</h3>
<pre class="hljs language-js"><code><span class="hljs-keyword">import</span> markdownit <span class="hljs-keyword">from</span> <span class="hljs-string">&#x27;markdown-it&#x27;</span>
<span class="hljs-keyword">const</span> md = markdownit
.<span class="hljs-title function_">use</span>(plugin1)
.<span class="hljs-title function_">use</span>(plugin2, opts, ...)
.<span class="hljs-title function_">use</span>(plugin3);
</code></pre>
<h3>Syntax highlighting</h3>
<p>Apply syntax highlighting to fenced code blocks with the <code>highlight</code> option:</p>
<pre class="hljs language-js"><code><span class="hljs-keyword">import</span> markdownit <span class="hljs-keyword">from</span> <span class="hljs-string">&#x27;markdown-it&#x27;</span>
<span class="hljs-keyword">import</span> hljs <span class="hljs-keyword">from</span> <span class="hljs-string">&#x27;highlight.js&#x27;</span> <span class="hljs-comment">// https://highlightjs.org</span>
<span class="hljs-comment">// Actual default values</span>
<span class="hljs-keyword">const</span> md = <span class="hljs-title function_">markdownit</span>({
<span class="hljs-attr">highlight</span>: <span class="hljs-keyword">function</span> (<span class="hljs-params">str, lang</span>) {
<span class="hljs-keyword">if</span> (lang &amp;&amp; hljs.<span class="hljs-title function_">getLanguage</span>(lang)) {
<span class="hljs-keyword">try</span> {
<span class="hljs-keyword">return</span> hljs.<span class="hljs-title function_">highlight</span>(str, { <span class="hljs-attr">language</span>: lang }).<span class="hljs-property">value</span>;
} <span class="hljs-keyword">catch</span> (__) {}
}
<span class="hljs-keyword">return</span> <span class="hljs-string">&#x27;&#x27;</span>; <span class="hljs-comment">// use external default escaping</span>
}
});
</code></pre>
<p>Or with full wrapper override (if you need assign class to <code>&lt;pre&gt;</code> or <code>&lt;code&gt;</code>):</p>
<pre class="hljs language-js"><code><span class="hljs-keyword">import</span> markdownit <span class="hljs-keyword">from</span> <span class="hljs-string">&#x27;markdown-it&#x27;</span>
<span class="hljs-keyword">import</span> hljs <span class="hljs-keyword">from</span> <span class="hljs-string">&#x27;highlight.js&#x27;</span> <span class="hljs-comment">// https://highlightjs.org</span>
<span class="hljs-comment">// Actual default values</span>
<span class="hljs-keyword">const</span> md = <span class="hljs-title function_">markdownit</span>({
<span class="hljs-attr">highlight</span>: <span class="hljs-keyword">function</span> (<span class="hljs-params">str, lang</span>) {
<span class="hljs-keyword">if</span> (lang &amp;&amp; hljs.<span class="hljs-title function_">getLanguage</span>(lang)) {
<span class="hljs-keyword">try</span> {
<span class="hljs-keyword">return</span> <span class="hljs-string">&#x27;&lt;pre&gt;&lt;code class=&quot;hljs&quot;&gt;&#x27;</span> +
hljs.<span class="hljs-title function_">highlight</span>(str, { <span class="hljs-attr">language</span>: lang, <span class="hljs-attr">ignoreIllegals</span>: <span class="hljs-literal">true</span> }).<span class="hljs-property">value</span> +
<span class="hljs-string">&#x27;&lt;/code&gt;&lt;/pre&gt;&#x27;</span>;
} <span class="hljs-keyword">catch</span> (__) {}
}
<span class="hljs-keyword">return</span> <span class="hljs-string">&#x27;&lt;pre&gt;&lt;code class=&quot;hljs&quot;&gt;&#x27;</span> + md.<span class="hljs-property">utils</span>.escapeHtml(str) + <span class="hljs-string">&#x27;&lt;/code&gt;&lt;/pre&gt;&#x27;</span>;
}
});
</code></pre>
<h3>Linkify</h3>
<p><code>linkify: true</code> uses <a href="https://github.com/markdown-it/linkify-it">linkify-it</a>. To
configure linkify-it, access the linkify instance through <code>md.linkify</code>:</p>
<pre class="hljs language-js"><code>md.<span class="hljs-property">linkify</span>.<span class="hljs-title function_">set</span>({ <span class="hljs-attr">fuzzyEmail</span>: <span class="hljs-literal">false</span> }); <span class="hljs-comment">// disables converting email to link</span>
</code></pre>
<h2>Syntax extensions</h2>
<p>Embedded (enabled by default):</p>
<ul>
<li><a href="https://help.github.com/articles/organizing-information-with-tables/">Tables</a> (GFM)</li>
<li><a href="https://help.github.com/articles/basic-writing-and-formatting-syntax/#styling-text">Strikethrough</a> (GFM)</li>
</ul>
<p>Via plugins:</p>
<ul>
<li><a href="https://github.com/markdown-it/markdown-it-sub">subscript</a></li>
<li><a href="https://github.com/markdown-it/markdown-it-sup">superscript</a></li>
<li><a href="https://github.com/markdown-it/markdown-it-footnote">footnote</a></li>
<li><a href="https://github.com/markdown-it/markdown-it-deflist">definition list</a></li>
<li><a href="https://github.com/markdown-it/markdown-it-abbr">abbreviation</a></li>
<li><a href="https://github.com/markdown-it/markdown-it-emoji">emoji</a></li>
<li><a href="https://github.com/markdown-it/markdown-it-container">custom container</a></li>
<li><a href="https://github.com/markdown-it/markdown-it-ins">insert</a></li>
<li><a href="https://github.com/markdown-it/markdown-it-mark">mark</a></li>
<li>... and <a href="https://www.npmjs.org/browse/keyword/markdown-it-plugin">others</a></li>
</ul>
<h3>Manage rules</h3>
<p>By default all rules are enabled, but can be restricted by options. On plugin
load all its rules are enabled automatically.</p>
<pre class="hljs language-js"><code><span class="hljs-keyword">import</span> markdownit <span class="hljs-keyword">from</span> <span class="hljs-string">&#x27;markdown-it&#x27;</span>
<span class="hljs-comment">// Activate/deactivate rules, with currying</span>
<span class="hljs-keyword">const</span> md = <span class="hljs-title function_">markdownit</span>()
.<span class="hljs-title function_">disable</span>([<span class="hljs-string">&#x27;link&#x27;</span>, <span class="hljs-string">&#x27;image&#x27;</span>])
.<span class="hljs-title function_">enable</span>([<span class="hljs-string">&#x27;link&#x27;</span>])
.<span class="hljs-title function_">enable</span>(<span class="hljs-string">&#x27;image&#x27;</span>);
<span class="hljs-comment">// Enable everything</span>
<span class="hljs-keyword">const</span> md = <span class="hljs-title function_">markdownit</span>({
<span class="hljs-attr">html</span>: <span class="hljs-literal">true</span>,
<span class="hljs-attr">linkify</span>: <span class="hljs-literal">true</span>,
<span class="hljs-attr">typographer</span>: <span class="hljs-literal">true</span>,
});
</code></pre>
</div></article><article class="docblock" id="Core" data-title="Core (class)"><header><ul class="breadcrumbs"><li><a href="#home">Home</a></li><li><a href="#Core" class="" title="Core (class)" data-id="core">Core</a></li></ul><h2 title="class">Core</h2><div class="source"><a href="https://github.com/markdown-it/markdown-it/blob/0fe7cc/lib/parser_core.mjs#L7">View source</a></div><div class="labels"><span class="internal">internal</span></div></header><div class="section description"><h3>Description</h3><div class="content"><p>Top-level rules executor. Glues block/inline parsers and does intermediate
transformations.</p>
</div></div><div class="section constructor"><h3>Constructor</h3><div class="content"></div><ul class="method-list"><li><a href="#Core.new" class="" title="new Core (constructor)" data-id="new core">new Core</a></li></ul></div><div class="section class_methods"><h3>Class methods</h3><div class="content"><ul class="method-list"><li><a href="#Core.process" class="" title="Core.process (class method)" data-id="core.process">process</a></li></ul></div></div><div class="section instance_properties"><h3>Instance properties</h3><div class="content"><ul class="method-list"><li><a href="#Core.prototype.ruler" class="" title="Core#ruler (instance property)" data-id="core#ruler">ruler</a></li></ul></div></div></article><article class="docblock" id="Core.new" data-title="new Core (constructor)"><header><ul class="breadcrumbs"><li><a href="#home">Home</a></li><li><a href="#Core" class="" title="Core (class)" data-id="core">Core</a></li><li><a href="#Core.new" class="" title="new Core (constructor)" data-id="new core">new</a></li></ul><h2 title="constructor"><span class="name_prefix">Core.</span>new</h2><div class="source"><a href="https://github.com/markdown-it/markdown-it/blob/0fe7cc/lib/parser_core.mjs#L34">View source</a></div></header><div class="section method"><div class="content"><ul class="signatures"><li><ul class="signature"><li class="signature-call">new Core()</li></ul></li></ul></div></div></article><article class="docblock" id="Core.process" data-title="Core.process (class method)"><header><ul class="breadcrumbs"><li><a href="#home">Home</a></li><li><a href="#Core" class="" title="Core (class)" data-id="core">Core</a></li><li><a href="#Core.process" class="" title="Core.process (class method)" data-id="core.process">process</a></li></ul><h2 title="class method"><span class="name_prefix">Core.</span>process</h2><div class="source"><a href="https://github.com/markdown-it/markdown-it/blob/0fe7cc/lib/parser_core.mjs#L52">View source</a></div></header><div class="section method"><div class="content"><ul class="signatures"><li><ul class="signature"><li class="signature-call">Core.process(state)</li></ul></li></ul><p>Executes core chain rules.</p>
</div></div></article><article class="docblock" id="Core.prototype.ruler" data-title="Core#ruler (instance property)"><header><ul class="breadcrumbs"><li><a href="#home">Home</a></li><li><a href="#Core" class="" title="Core (class)" data-id="core">Core</a></li><li><a href="#Core.prototype.ruler" class="" title="Core#ruler (instance property)" data-id="core#ruler">ruler</a></li></ul><h2 title="instance property"><span class="name_prefix">Core#</span>ruler</h2><div class="source"><a href="https://github.com/markdown-it/markdown-it/blob/0fe7cc/lib/parser_core.mjs#L40">View source</a></div></header><div class="section method"><div class="content"><ul class="signatures"><li><ul class="signature"><li class="signature-call">Core#ruler</li><li><ul class="signature-values"><li><a href="#Ruler" class="link-short" title="Ruler (class)" data-id="ruler">Ruler</a></li></ul></li></ul></li></ul><p><a href="#Ruler" class="link-short" title="Ruler (class)" data-id="ruler">Ruler</a> instance. Keep configuration of core rules.</p>
</div></div></article><article class="docblock" id="MarkdownIt" data-title="MarkdownIt (class)"><header><ul class="breadcrumbs"><li><a href="#home">Home</a></li><li><a href="#MarkdownIt" class="" title="MarkdownIt (class)" data-id="markdownit">MarkdownIt</a></li></ul><h2 title="class">MarkdownIt</h2><div class="source"><a href="https://github.com/markdown-it/markdown-it/blob/0fe7cc/lib/index.mjs#L114">View source</a></div></header><div class="section description"><h3>Description</h3><div class="content"><p>Main parser/renderer class.</p>
<h5>Usage</h5>
<pre class="hljs language-javascript"><code><span class="hljs-comment">// node.js, &quot;classic&quot; way:</span>
<span class="hljs-keyword">var</span> <span class="hljs-title class_">MarkdownIt</span> = <span class="hljs-built_in">require</span>(<span class="hljs-string">&#x27;markdown-it&#x27;</span>),
md = <span class="hljs-keyword">new</span> <span class="hljs-title class_">MarkdownIt</span>();
<span class="hljs-keyword">var</span> result = md.<span class="hljs-title function_">render</span>(<span class="hljs-string">&#x27;# markdown-it rulezz!&#x27;</span>);
<span class="hljs-comment">// node.js, the same, but with sugar:</span>
<span class="hljs-keyword">var</span> md = <span class="hljs-built_in">require</span>(<span class="hljs-string">&#x27;markdown-it&#x27;</span>)();
<span class="hljs-keyword">var</span> result = md.<span class="hljs-title function_">render</span>(<span class="hljs-string">&#x27;# markdown-it rulezz!&#x27;</span>);
<span class="hljs-comment">// browser without AMD, added to &quot;window&quot; on script load</span>
<span class="hljs-comment">// Note, there are no dash.</span>
<span class="hljs-keyword">var</span> md = <span class="hljs-variable language_">window</span>.<span class="hljs-title function_">markdownit</span>();
<span class="hljs-keyword">var</span> result = md.<span class="hljs-title function_">render</span>(<span class="hljs-string">&#x27;# markdown-it rulezz!&#x27;</span>);
</code></pre>
<p>Single line rendering, without paragraph wrap:</p>
<pre class="hljs language-javascript"><code><span class="hljs-keyword">var</span> md = <span class="hljs-built_in">require</span>(<span class="hljs-string">&#x27;markdown-it&#x27;</span>)();
<span class="hljs-keyword">var</span> result = md.<span class="hljs-title function_">renderInline</span>(<span class="hljs-string">&#x27;__markdown-it__ rulezz!&#x27;</span>);
</code></pre>
</div></div><div class="section constructor"><h3>Constructor</h3><div class="content"></div><ul class="method-list"><li><a href="#MarkdownIt.new" class="" title="new MarkdownIt (constructor)" data-id="new markdownit">new MarkdownIt</a></li></ul></div><div class="section class_methods"><h3>Class methods</h3><div class="content"><ul class="method-list"><li><a href="#MarkdownIt.configure" class="" title="MarkdownIt.configure (class method)" data-id="markdownit.configure">configure</a></li><li><a href="#MarkdownIt.disable" class="" title="MarkdownIt.disable (class method)" data-id="markdownit.disable">disable</a></li><li><a href="#MarkdownIt.enable" class="" title="MarkdownIt.enable (class method)" data-id="markdownit.enable">enable</a></li><li><a href="#MarkdownIt.parse" class="" title="MarkdownIt.parse (class method)" data-id="markdownit.parse">parse</a></li><li><a href="#MarkdownIt.parseInline" class="" title="MarkdownIt.parseInline (class method)" data-id="markdownit.parseinline">parseInline</a></li><li><a href="#MarkdownIt.render" class="" title="MarkdownIt.render (class method)" data-id="markdownit.render">render</a></li><li><a href="#MarkdownIt.renderInline" class="" title="MarkdownIt.renderInline (class method)" data-id="markdownit.renderinline">renderInline</a></li><li><a href="#MarkdownIt.set" class="" title="MarkdownIt.set (class method)" data-id="markdownit.set">set</a></li><li><a href="#MarkdownIt.use" class="" title="MarkdownIt.use (class method)" data-id="markdownit.use">use</a></li></ul></div></div><div class="section instance_methods"><h3>Instance methods</h3><div class="content"><ul class="method-list"><li><a href="#MarkdownIt.prototype.normalizeLink" class="" title="MarkdownIt#normalizeLink (instance method)" data-id="markdownit#normalizelink">normalizeLink</a></li><li><a href="#MarkdownIt.prototype.normalizeLinkText" class="" title="MarkdownIt#normalizeLinkText (instance method)" data-id="markdownit#normalizelinktext">normalizeLinkText</a></li><li><a href="#MarkdownIt.prototype.validateLink" class="" title="MarkdownIt#validateLink (instance method)" data-id="markdownit#validatelink">validateLink</a></li></ul></div></div><div class="section instance_properties"><h3>Instance properties</h3><div class="content"><ul class="method-list"><li><a href="#MarkdownIt.prototype.block" class="" title="MarkdownIt#block (instance property)" data-id="markdownit#block">block</a></li><li><a href="#MarkdownIt.prototype.core" class="" title="MarkdownIt#core (instance property)" data-id="markdownit#core">core</a></li><li><a href="#MarkdownIt.prototype.helpers" class="" title="MarkdownIt#helpers (instance property)" data-id="markdownit#helpers">helpers</a></li><li><a href="#MarkdownIt.prototype.inline" class="" title="MarkdownIt#inline (instance property)" data-id="markdownit#inline">inline</a></li><li><a href="#MarkdownIt.prototype.linkify" class="" title="MarkdownIt#linkify (instance property)" data-id="markdownit#linkify">linkify</a></li><li><a href="#MarkdownIt.prototype.renderer" class="" title="MarkdownIt#renderer (instance property)" data-id="markdownit#renderer">renderer</a></li><li><a href="#MarkdownIt.prototype.utils" class="" title="MarkdownIt#utils (instance property)" data-id="markdownit#utils">utils</a></li></ul></div></div></article><article class="docblock" id="MarkdownIt.new" data-title="new MarkdownIt (constructor)"><header><ul class="breadcrumbs"><li><a href="#home">Home</a></li><li><a href="#MarkdownIt" class="" title="MarkdownIt (class)" data-id="markdownit">MarkdownIt</a></li><li><a href="#MarkdownIt.new" class="" title="new MarkdownIt (constructor)" data-id="new markdownit">new</a></li></ul><h2 title="constructor"><span class="name_prefix">MarkdownIt.</span>new</h2><div class="source"><a href="https://github.com/markdown-it/markdown-it/blob/0fe7cc/lib/index.mjs#L217">View source</a></div></header><div class="section method"><div class="content"><ul class="signatures"><li><ul class="signature"><li class="signature-call">new MarkdownIt([presetName][, options])</li></ul></li></ul><ul class="arguments"><li><ul class="argument"><li class="argument-name">presetName</li><li><ul class="argument-types"><li class="argument-type">String</li></ul></li><li class="argument-description"><p>optional, <code>commonmark</code> / <code>zero</code></p>
</li></ul></li><li><ul class="argument"><li class="argument-name">options</li><li><ul class="argument-types"><li class="argument-type">Object</li></ul></li></ul></li></ul><p>Creates parser instanse with given config. Can be called without <code>new</code>.</p>
<h5>presetName</h5>
<p>MarkdownIt provides named presets as a convenience to quickly
enable/disable active syntax rules and options for common use cases.</p>
<ul>
<li><a href="https://github.com/markdown-it/markdown-it/blob/master/lib/presets/commonmark.mjs">&quot;commonmark&quot;</a> -
configures parser to strict <a href="http://commonmark.org/">CommonMark</a> mode.</li>
<li><a href="https://github.com/markdown-it/markdown-it/blob/master/lib/presets/default.mjs">default</a> -
similar to GFM, used when no preset name given. Enables all available rules,
but still without html, typographer &amp; autolinker.</li>
<li><a href="https://github.com/markdown-it/markdown-it/blob/master/lib/presets/zero.mjs">&quot;zero&quot;</a> -
all rules disabled. Useful to quickly setup your config via <code>.enable()</code>.
For example, when you need only <code>bold</code> and <code>italic</code> markup and nothing else.</li>
</ul>
<h5>options:</h5>
<ul>
<li><strong>html</strong> - <code>false</code>. Set <code>true</code> to enable HTML tags in source. Be careful!
That's not safe! You may need external sanitizer to protect output from XSS.
It's better to extend features via plugins, instead of enabling HTML.</li>
<li><strong>xhtmlOut</strong> - <code>false</code>. Set <code>true</code> to add '/' when closing single tags
(<code>&lt;br /&gt;</code>). This is needed only for full CommonMark compatibility. In real
world you will need HTML output.</li>
<li><strong>breaks</strong> - <code>false</code>. Set <code>true</code> to convert <code>\n</code> in paragraphs into <code>&lt;br&gt;</code>.</li>
<li><strong>langPrefix</strong> - <code>language-</code>. CSS language class prefix for fenced blocks.
Can be useful for external highlighters.</li>
<li><strong>linkify</strong> - <code>false</code>. Set <code>true</code> to autoconvert URL-like text to links.</li>
<li><strong>typographer</strong> - <code>false</code>. Set <code>true</code> to enable <a href="https://github.com/markdown-it/markdown-it/blob/master/lib/rules_core/replacements.mjs">some language-neutral
replacement</a> +
quotes beautification (smartquotes).</li>
<li><strong>quotes</strong> - <code>“”‘’</code>, String or Array. Double + single quotes replacement
pairs, when typographer enabled and smartquotes on. For example, you can
use <code>'«»„“'</code> for Russian, <code>'„“‚‘'</code> for German, and
<code>['«\xA0', '\xA0»', '‹\xA0', '\xA0›']</code> for French (including nbsp).</li>
<li><strong>highlight</strong> - <code>null</code>. Highlighter function for fenced code blocks.
Highlighter <code>function (str, lang)</code> should return escaped HTML. It can also
return empty string if the source was not changed and should be escaped
externaly. If result starts with &lt;pre... internal wrapper is skipped.</li>
</ul>
<h5>Example</h5>
<pre class="hljs language-javascript"><code><span class="hljs-comment">// commonmark mode</span>
<span class="hljs-keyword">var</span> md = <span class="hljs-built_in">require</span>(<span class="hljs-string">&#x27;markdown-it&#x27;</span>)(<span class="hljs-string">&#x27;commonmark&#x27;</span>);
<span class="hljs-comment">// default mode</span>
<span class="hljs-keyword">var</span> md = <span class="hljs-built_in">require</span>(<span class="hljs-string">&#x27;markdown-it&#x27;</span>)();
<span class="hljs-comment">// enable everything</span>
<span class="hljs-keyword">var</span> md = <span class="hljs-built_in">require</span>(<span class="hljs-string">&#x27;markdown-it&#x27;</span>)({
<span class="hljs-attr">html</span>: <span class="hljs-literal">true</span>,
<span class="hljs-attr">linkify</span>: <span class="hljs-literal">true</span>,
<span class="hljs-attr">typographer</span>: <span class="hljs-literal">true</span>
});
</code></pre>
<h5>Syntax highlighting</h5>
<pre class="hljs language-js"><code><span class="hljs-keyword">var</span> hljs = <span class="hljs-built_in">require</span>(<span class="hljs-string">&#x27;highlight.js&#x27;</span>) <span class="hljs-comment">// https://highlightjs.org/</span>
<span class="hljs-keyword">var</span> md = <span class="hljs-built_in">require</span>(<span class="hljs-string">&#x27;markdown-it&#x27;</span>)({
<span class="hljs-attr">highlight</span>: <span class="hljs-keyword">function</span> (<span class="hljs-params">str, lang</span>) {
<span class="hljs-keyword">if</span> (lang &amp;&amp; hljs.<span class="hljs-title function_">getLanguage</span>(lang)) {
<span class="hljs-keyword">try</span> {
<span class="hljs-keyword">return</span> hljs.<span class="hljs-title function_">highlight</span>(str, { <span class="hljs-attr">language</span>: lang, <span class="hljs-attr">ignoreIllegals</span>: <span class="hljs-literal">true</span> }).<span class="hljs-property">value</span>;
} <span class="hljs-keyword">catch</span> (__) {}
}
<span class="hljs-keyword">return</span> <span class="hljs-string">&#x27;&#x27;</span>; <span class="hljs-comment">// use external default escaping</span>
}
});
</code></pre>
<p>Or with full wrapper override (if you need assign class to <code>&lt;pre&gt;</code> or <code>&lt;code&gt;</code>):</p>
<pre class="hljs language-javascript"><code><span class="hljs-keyword">var</span> hljs = <span class="hljs-built_in">require</span>(<span class="hljs-string">&#x27;highlight.js&#x27;</span>) <span class="hljs-comment">// https://highlightjs.org/</span>
<span class="hljs-comment">// Actual default values</span>
<span class="hljs-keyword">var</span> md = <span class="hljs-built_in">require</span>(<span class="hljs-string">&#x27;markdown-it&#x27;</span>)({
<span class="hljs-attr">highlight</span>: <span class="hljs-keyword">function</span> (<span class="hljs-params">str, lang</span>) {
<span class="hljs-keyword">if</span> (lang &amp;&amp; hljs.<span class="hljs-title function_">getLanguage</span>(lang)) {
<span class="hljs-keyword">try</span> {
<span class="hljs-keyword">return</span> <span class="hljs-string">&#x27;&lt;pre&gt;&lt;code class=&quot;hljs&quot;&gt;&#x27;</span> +
hljs.<span class="hljs-title function_">highlight</span>(str, { <span class="hljs-attr">language</span>: lang, <span class="hljs-attr">ignoreIllegals</span>: <span class="hljs-literal">true</span> }).<span class="hljs-property">value</span> +
<span class="hljs-string">&#x27;&lt;/code&gt;&lt;/pre&gt;&#x27;</span>;
} <span class="hljs-keyword">catch</span> (__) {}
}
<span class="hljs-keyword">return</span> <span class="hljs-string">&#x27;&lt;pre&gt;&lt;code class=&quot;hljs&quot;&gt;&#x27;</span> + md.<span class="hljs-property">utils</span>.escapeHtml(str) + <span class="hljs-string">&#x27;&lt;/code&gt;&lt;/pre&gt;&#x27;</span>;
}
});
</code></pre>
</div></div></article><article class="docblock" id="MarkdownIt.configure" data-title="MarkdownIt.configure (class method)"><header><ul class="breadcrumbs"><li><a href="#home">Home</a></li><li><a href="#MarkdownIt" class="" title="MarkdownIt (class)" data-id="markdownit">MarkdownIt</a></li><li><a href="#MarkdownIt.configure" class="" title="MarkdownIt.configure (class method)" data-id="markdownit.configure">configure</a></li></ul><h2 title="class method"><span class="name_prefix">MarkdownIt.</span>configure</h2><div class="source"><a href="https://github.com/markdown-it/markdown-it/blob/0fe7cc/lib/index.mjs#L378">View source</a></div><div class="labels"><span class="chainable">chainable</span><span class="internal">internal</span></div></header><div class="section method"><div class="content"><ul class="signatures"><li><ul class="signature"><li class="signature-call">MarkdownIt.configure(presets)</li></ul></li></ul><p>Batch load of all options and compenent settings. This is internal method,
and you probably will not need it. But if you will - see available presets
and data structure <a href="https://github.com/markdown-it/markdown-it/tree/master/lib/presets">here</a></p>
<p>We strongly recommend to use presets instead of direct config loads. That
will give better compatibility with next versions.</p>
</div></div></article><article class="docblock" id="MarkdownIt.disable" data-title="MarkdownIt.disable (class method)"><header><ul class="breadcrumbs"><li><a href="#home">Home</a></li><li><a href="#MarkdownIt" class="" title="MarkdownIt (class)" data-id="markdownit">MarkdownIt</a></li><li><a href="#MarkdownIt.disable" class="" title="MarkdownIt.disable (class method)" data-id="markdownit.disable">disable</a></li></ul><h2 title="class method"><span class="name_prefix">MarkdownIt.</span>disable</h2><div class="source"><a href="https://github.com/markdown-it/markdown-it/blob/0fe7cc/lib/index.mjs#L448">View source</a></div><div class="labels"><span class="chainable">chainable</span></div></header><div class="section method"><div class="content"><ul class="signatures"><li><ul class="signature"><li class="signature-call">MarkdownIt.disable(list, ignoreInvalid)</li></ul></li></ul><ul class="arguments"><li><ul class="argument"><li class="argument-name">list</li><li><ul class="argument-types"><li class="argument-type">String</li><li class="argument-type">Array</li></ul></li><li class="argument-description"><p>rule name or list of rule names to disable.</p>
</li></ul></li><li><ul class="argument"><li class="argument-name">ignoreInvalid</li><li><ul class="argument-types"><li class="argument-type">Boolean</li></ul></li><li class="argument-description"><p>set <code>true</code> to ignore errors when rule not found.</p>
</li></ul></li></ul><p>The same as <a href="#MarkdownIt.enable" class="link-short" title="MarkdownIt.enable (class method)" data-id="markdownit.enable">MarkdownIt.enable</a>, but turn specified rules off.</p>
</div></div></article><article class="docblock" id="MarkdownIt.enable" data-title="MarkdownIt.enable (class method)"><header><ul class="breadcrumbs"><li><a href="#home">Home</a></li><li><a href="#MarkdownIt" class="" title="MarkdownIt (class)" data-id="markdownit">MarkdownIt</a></li><li><a href="#MarkdownIt.enable" class="" title="MarkdownIt.enable (class method)" data-id="markdownit.enable">enable</a></li></ul><h2 title="class method"><span class="name_prefix">MarkdownIt.</span>enable</h2><div class="source"><a href="https://github.com/markdown-it/markdown-it/blob/0fe7cc/lib/index.mjs#L421">View source</a></div><div class="labels"><span class="chainable">chainable</span></div></header><div class="section method"><div class="content"><ul class="signatures"><li><ul class="signature"><li class="signature-call">MarkdownIt.enable(list, ignoreInvalid)</li></ul></li></ul><ul class="arguments"><li><ul class="argument"><li class="argument-name">list</li><li><ul class="argument-types"><li class="argument-type">String</li><li class="argument-type">Array</li></ul></li><li class="argument-description"><p>rule name or list of rule names to enable</p>
</li></ul></li><li><ul class="argument"><li class="argument-name">ignoreInvalid</li><li><ul class="argument-types"><li class="argument-type">Boolean</li></ul></li><li class="argument-description"><p>set <code>true</code> to ignore errors when rule not found.</p>
</li></ul></li></ul><p>Enable list or rules. It will automatically find appropriate components,
containing rules with given names. If rule not found, and <code>ignoreInvalid</code>
not set - throws exception.</p>
<h5>Example</h5>
<pre class="hljs language-javascript"><code><span class="hljs-keyword">var</span> md = <span class="hljs-built_in">require</span>(<span class="hljs-string">&#x27;markdown-it&#x27;</span>)()
.<span class="hljs-title function_">enable</span>([<span class="hljs-string">&#x27;sub&#x27;</span>, <span class="hljs-string">&#x27;sup&#x27;</span>])
.<span class="hljs-title function_">disable</span>(<span class="hljs-string">&#x27;smartquotes&#x27;</span>);
</code></pre>
</div></div></article><article class="docblock" id="MarkdownIt.parse" data-title="MarkdownIt.parse (class method)"><header><ul class="breadcrumbs"><li><a href="#home">Home</a></li><li><a href="#MarkdownIt" class="" title="MarkdownIt (class)" data-id="markdownit">MarkdownIt</a></li><li><a href="#MarkdownIt.parse" class="" title="MarkdownIt.parse (class method)" data-id="markdownit.parse">parse</a></li></ul><h2 title="class method"><span class="name_prefix">MarkdownIt.</span>parse</h2><div class="source"><a href="https://github.com/markdown-it/markdown-it/blob/0fe7cc/lib/index.mjs#L504">View source</a></div><div class="labels"><span class="internal">internal</span></div></header><div class="section method"><div class="content"><ul class="signatures"><li><ul class="signature"><li class="signature-call">MarkdownIt.parse(src, env)</li><li><ul class="signature-values"><li>Array</li></ul></li></ul></li></ul><ul class="arguments"><li><ul class="argument"><li class="argument-name">src</li><li><ul class="argument-types"><li class="argument-type">String</li></ul></li><li class="argument-description"><p>source string</p>
</li></ul></li><li><ul class="argument"><li class="argument-name">env</li><li><ul class="argument-types"><li class="argument-type">Object</li></ul></li><li class="argument-description"><p>environment sandbox</p>
</li></ul></li></ul><p>Parse input string and return list of block tokens (special token type
&quot;inline&quot; will contain list of inline tokens). You should not call this
method directly, until you write custom renderer (for example, to produce
AST).</p>
<p><code>env</code> is used to pass data between &quot;distributed&quot; rules and return additional
metadata like reference info, needed for the renderer. It also can be used to
inject data in specific cases. Usually, you will be ok to pass <code>{}</code>,
and then pass updated object to renderer.</p>
</div></div></article><article class="docblock" id="MarkdownIt.parseInline" data-title="MarkdownIt.parseInline (class method)"><header><ul class="breadcrumbs"><li><a href="#home">Home</a></li><li><a href="#MarkdownIt" class="" title="MarkdownIt (class)" data-id="markdownit">MarkdownIt</a></li><li><a href="#MarkdownIt.parseInline" class="" title="MarkdownIt.parseInline (class method)" data-id="markdownit.parseinline">parseInline</a></li></ul><h2 title="class method"><span class="name_prefix">MarkdownIt.</span>parseInline</h2><div class="source"><a href="https://github.com/markdown-it/markdown-it/blob/0fe7cc/lib/index.mjs#L542">View source</a></div><div class="labels"><span class="internal">internal</span></div></header><div class="section method"><div class="content"><ul class="signatures"><li><ul class="signature"><li class="signature-call">MarkdownIt.parseInline(src, env)</li><li><ul class="signature-values"><li>Array</li></ul></li></ul></li></ul><ul class="arguments"><li><ul class="argument"><li class="argument-name">src</li><li><ul class="argument-types"><li class="argument-type">String</li></ul></li><li class="argument-description"><p>source string</p>
</li></ul></li><li><ul class="argument"><li class="argument-name">env</li><li><ul class="argument-types"><li class="argument-type">Object</li></ul></li><li class="argument-description"><p>environment sandbox</p>
</li></ul></li></ul><p>The same as <a href="#MarkdownIt.parse" class="link-short" title="MarkdownIt.parse (class method)" data-id="markdownit.parse">MarkdownIt.parse</a> but skip all block rules. It returns the
block tokens list with the single <code>inline</code> element, containing parsed inline
tokens in <code>children</code> property. Also updates <code>env</code> object.</p>
</div></div></article><article class="docblock" id="MarkdownIt.render" data-title="MarkdownIt.render (class method)"><header><ul class="breadcrumbs"><li><a href="#home">Home</a></li><li><a href="#MarkdownIt" class="" title="MarkdownIt (class)" data-id="markdownit">MarkdownIt</a></li><li><a href="#MarkdownIt.render" class="" title="MarkdownIt.render (class method)" data-id="markdownit.render">render</a></li></ul><h2 title="class method"><span class="name_prefix">MarkdownIt.</span>render</h2><div class="source"><a href="https://github.com/markdown-it/markdown-it/blob/0fe7cc/lib/index.mjs#L527">View source</a></div></header><div class="section method"><div class="content"><ul class="signatures"><li><ul class="signature"><li class="signature-call">MarkdownIt.render(src[, env])</li><li><ul class="signature-values"><li>String</li></ul></li></ul></li></ul><ul class="arguments"><li><ul class="argument"><li class="argument-name">src</li><li><ul class="argument-types"><li class="argument-type">String</li></ul></li><li class="argument-description"><p>source string</p>
</li></ul></li><li><ul class="argument"><li class="argument-name">env</li><li><ul class="argument-types"><li class="argument-type">Object</li></ul></li><li class="argument-description"><p>environment sandbox</p>
</li></ul></li></ul><p>Render markdown string into html. It does all magic for you :).</p>
<p><code>env</code> can be used to inject additional metadata (<code>{}</code> by default).
But you will not need it with high probability. See also comment
in <a href="#MarkdownIt.parse" class="link-short" title="MarkdownIt.parse (class method)" data-id="markdownit.parse">MarkdownIt.parse</a>.</p>
</div></div></article><article class="docblock" id="MarkdownIt.renderInline" data-title="MarkdownIt.renderInline (class method)"><header><ul class="breadcrumbs"><li><a href="#home">Home</a></li><li><a href="#MarkdownIt" class="" title="MarkdownIt (class)" data-id="markdownit">MarkdownIt</a></li><li><a href="#MarkdownIt.renderInline" class="" title="MarkdownIt.renderInline (class method)" data-id="markdownit.renderinline">renderInline</a></li></ul><h2 title="class method"><span class="name_prefix">MarkdownIt.</span>renderInline</h2><div class="source"><a href="https://github.com/markdown-it/markdown-it/blob/0fe7cc/lib/index.mjs#L559">View source</a></div></header><div class="section method"><div class="content"><ul class="signatures"><li><ul class="signature"><li class="signature-call">MarkdownIt.renderInline(src[, env])</li><li><ul class="signature-values"><li>String</li></ul></li></ul></li></ul><ul class="arguments"><li><ul class="argument"><li class="argument-name">src</li><li><ul class="argument-types"><li class="argument-type">String</li></ul></li><li class="argument-description"><p>source string</p>
</li></ul></li><li><ul class="argument"><li class="argument-name">env</li><li><ul class="argument-types"><li class="argument-type">Object</li></ul></li><li class="argument-description"><p>environment sandbox</p>
</li></ul></li></ul><p>Similar to <a href="#MarkdownIt.render" class="link-short" title="MarkdownIt.render (class method)" data-id="markdownit.render">MarkdownIt.render</a> but for single paragraph content. Result
will NOT be wrapped into <code>&lt;p&gt;</code> tags.</p>
</div></div></article><article class="docblock" id="MarkdownIt.set" data-title="MarkdownIt.set (class method)"><header><ul class="breadcrumbs"><li><a href="#home">Home</a></li><li><a href="#MarkdownIt" class="" title="MarkdownIt (class)" data-id="markdownit">MarkdownIt</a></li><li><a href="#MarkdownIt.set" class="" title="MarkdownIt.set (class method)" data-id="markdownit.set">set</a></li></ul><h2 title="class method"><span class="name_prefix">MarkdownIt.</span>set</h2><div class="source"><a href="https://github.com/markdown-it/markdown-it/blob/0fe7cc/lib/index.mjs#L363">View source</a></div><div class="labels"><span class="chainable">chainable</span></div></header><div class="section method"><div class="content"><ul class="signatures"><li><ul class="signature"><li class="signature-call">MarkdownIt.set(options)</li></ul></li></ul><p>Set parser options (in the same format as in constructor). Probably, you
will never need it, but you can change options after constructor call.</p>
<h5>Example</h5>
<pre class="hljs language-javascript"><code><span class="hljs-keyword">var</span> md = <span class="hljs-built_in">require</span>(<span class="hljs-string">&#x27;markdown-it&#x27;</span>)()
.<span class="hljs-title function_">set</span>({ <span class="hljs-attr">html</span>: <span class="hljs-literal">true</span>, <span class="hljs-attr">breaks</span>: <span class="hljs-literal">true</span> })
.<span class="hljs-title function_">set</span>({ typographer, <span class="hljs-literal">true</span> });
</code></pre>
<p><strong>Note:</strong> To achieve the best possible performance, don't modify a
<code>markdown-it</code> instance options on the fly. If you need multiple configurations
it's best to create multiple instances and initialize each with separate
config.</p>
</div></div></article><article class="docblock" id="MarkdownIt.use" data-title="MarkdownIt.use (class method)"><header><ul class="breadcrumbs"><li><a href="#home">Home</a></li><li><a href="#MarkdownIt" class="" title="MarkdownIt (class)" data-id="markdownit">MarkdownIt</a></li><li><a href="#MarkdownIt.use" class="" title="MarkdownIt.use (class method)" data-id="markdownit.use">use</a></li></ul><h2 title="class method"><span class="name_prefix">MarkdownIt.</span>use</h2><div class="source"><a href="https://github.com/markdown-it/markdown-it/blob/0fe7cc/lib/index.mjs#L483">View source</a></div><div class="labels"><span class="chainable">chainable</span></div></header><div class="section method"><div class="content"><ul class="signatures"><li><ul class="signature"><li class="signature-call">MarkdownIt.use(plugin, params)</li></ul></li></ul><p>Load specified plugin with given params into current parser instance.
It's just a sugar to call <code>plugin(md, params)</code> with curring.</p>
<h5>Example</h5>
<pre class="hljs language-javascript"><code><span class="hljs-keyword">var</span> iterator = <span class="hljs-built_in">require</span>(<span class="hljs-string">&#x27;markdown-it-for-inline&#x27;</span>);
<span class="hljs-keyword">var</span> md = <span class="hljs-built_in">require</span>(<span class="hljs-string">&#x27;markdown-it&#x27;</span>)()
.<span class="hljs-title function_">use</span>(iterator, <span class="hljs-string">&#x27;foo_replace&#x27;</span>, <span class="hljs-string">&#x27;text&#x27;</span>, <span class="hljs-keyword">function</span> (<span class="hljs-params">tokens, idx</span>) {
tokens[idx].<span class="hljs-property">content</span> = tokens[idx].<span class="hljs-property">content</span>.<span class="hljs-title function_">replace</span>(<span class="hljs-regexp">/foo/g</span>, <span class="hljs-string">&#x27;bar&#x27;</span>);
});
</code></pre>
</div></div></article><article class="docblock" id="MarkdownIt.prototype.normalizeLink" data-title="MarkdownIt#normalizeLink (instance method)"><header><ul class="breadcrumbs"><li><a href="#home">Home</a></li><li><a href="#MarkdownIt" class="" title="MarkdownIt (class)" data-id="markdownit">MarkdownIt</a></li><li><a href="#MarkdownIt.prototype.normalizeLink" class="" title="MarkdownIt#normalizeLink (instance method)" data-id="markdownit#normalizelink">normalizeLink</a></li></ul><h2 title="instance method"><span class="name_prefix">MarkdownIt#</span>normalizeLink</h2><div class="source"><a href="https://github.com/markdown-it/markdown-it/blob/0fe7cc/lib/index.mjs#L311">View source</a></div></header><div class="section method"><div class="content"><ul class="signatures"><li><ul class="signature"><li class="signature-call">MarkdownIt#normalizeLink(url)</li><li><ul class="signature-values"><li>String</li></ul></li></ul></li></ul><p>Function used to encode link url to a machine-readable format,
which includes url-encoding, punycode, etc.</p>
</div></div></article><article class="docblock" id="MarkdownIt.prototype.normalizeLinkText" data-title="MarkdownIt#normalizeLinkText (instance method)"><header><ul class="breadcrumbs"><li><a href="#home">Home</a></li><li><a href="#MarkdownIt" class="" title="MarkdownIt (class)" data-id="markdownit">MarkdownIt</a></li><li><a href="#MarkdownIt.prototype.normalizeLinkText" class="" title="MarkdownIt#normalizeLinkText (instance method)" data-id="markdownit#normalizelinktext">normalizeLinkText</a></li></ul><h2 title="instance method"><span class="name_prefix">MarkdownIt#</span>normalizeLinkText</h2><div class="source"><a href="https://github.com/markdown-it/markdown-it/blob/0fe7cc/lib/index.mjs#L318">View source</a></div></header><div class="section method"><div class="content"><ul class="signatures"><li><ul class="signature"><li class="signature-call">MarkdownIt#normalizeLinkText(url)</li><li><ul class="signature-values"><li>String</li></ul></li></ul></li></ul><p>Function used to decode link url to a human-readable format`</p>
</div></div></article><article class="docblock" id="MarkdownIt.prototype.validateLink" data-title="MarkdownIt#validateLink (instance method)"><header><ul class="breadcrumbs"><li><a href="#home">Home</a></li><li><a href="#MarkdownIt" class="" title="MarkdownIt (class)" data-id="markdownit">MarkdownIt</a></li><li><a href="#MarkdownIt.prototype.validateLink" class="" title="MarkdownIt#validateLink (instance method)" data-id="markdownit#validatelink">validateLink</a></li></ul><h2 title="instance method"><span class="name_prefix">MarkdownIt#</span>validateLink</h2><div class="source"><a href="https://github.com/markdown-it/markdown-it/blob/0fe7cc/lib/index.mjs#L303">View source</a></div></header><div class="section method"><div class="content"><ul class="signatures"><li><ul class="signature"><li class="signature-call">MarkdownIt#validateLink(url)</li><li><ul class="signature-values"><li>Boolean</li></ul></li></ul></li></ul><p>Link validation function. CommonMark allows too much in links. By default
we disable <code>javascript:</code>, <code>vbscript:</code>, <code>file:</code> schemas, and almost all <code>data:...</code> schemas
except some embedded image types.</p>
<p>You can change this behaviour:</p>
<pre class="hljs language-javascript"><code><span class="hljs-keyword">var</span> md = <span class="hljs-built_in">require</span>(<span class="hljs-string">&#x27;markdown-it&#x27;</span>)();
<span class="hljs-comment">// enable everything</span>
md.<span class="hljs-property">validateLink</span> = <span class="hljs-keyword">function</span> (<span class="hljs-params"></span>) { <span class="hljs-keyword">return</span> <span class="hljs-literal">true</span>; }
</code></pre>
</div></div></article><article class="docblock" id="MarkdownIt.prototype.block" data-title="MarkdownIt#block (instance property)"><header><ul class="breadcrumbs"><li><a href="#home">Home</a></li><li><a href="#MarkdownIt" class="" title="MarkdownIt (class)" data-id="markdownit">MarkdownIt</a></li><li><a href="#MarkdownIt.prototype.block" class="" title="MarkdownIt#block (instance property)" data-id="markdownit#block">block</a></li></ul><h2 title="instance property"><span class="name_prefix">MarkdownIt#</span>block</h2><div class="source"><a href="https://github.com/markdown-it/markdown-it/blob/0fe7cc/lib/index.mjs#L245">View source</a></div></header><div class="section method"><div class="content"><ul class="signatures"><li><ul class="signature"><li class="signature-call">MarkdownIt#block</li><li><ul class="signature-values"><li><a href="#ParserBlock" class="link-short" title="ParserBlock (class)" data-id="parserblock">ParserBlock</a></li></ul></li></ul></li></ul><p>Instance of <a href="#ParserBlock" class="link-short" title="ParserBlock (class)" data-id="parserblock">ParserBlock</a>. You may need it to add new rules when
writing plugins. For simple rules control use <a href="#MarkdownIt.disable" class="link-short" title="MarkdownIt.disable (class method)" data-id="markdownit.disable">MarkdownIt.disable</a> and
<a href="#MarkdownIt.enable" class="link-short" title="MarkdownIt.enable (class method)" data-id="markdownit.enable">MarkdownIt.enable</a>.</p>
</div></div></article><article class="docblock" id="MarkdownIt.prototype.core" data-title="MarkdownIt#core (instance property)"><header><ul class="breadcrumbs"><li><a href="#home">Home</a></li><li><a href="#MarkdownIt" class="" title="MarkdownIt (class)" data-id="markdownit">MarkdownIt</a></li><li><a href="#MarkdownIt.prototype.core" class="" title="MarkdownIt#core (instance property)" data-id="markdownit#core">core</a></li></ul><h2 title="instance property"><span class="name_prefix">MarkdownIt#</span>core</h2><div class="source"><a href="https://github.com/markdown-it/markdown-it/blob/0fe7cc/lib/index.mjs#L254">View source</a></div></header><div class="section method"><div class="content"><ul class="signatures"><li><ul class="signature"><li class="signature-call">MarkdownIt#core</li><li><ul class="signature-values"><li><a href="#Core" class="link-short" title="Core (class)" data-id="core">Core</a></li></ul></li></ul></li></ul><p>Instance of <a href="#Core" class="link-short" title="Core (class)" data-id="core">Core</a> chain executor. You may need it to add new rules when
writing plugins. For simple rules control use <a href="#MarkdownIt.disable" class="link-short" title="MarkdownIt.disable (class method)" data-id="markdownit.disable">MarkdownIt.disable</a> and
<a href="#MarkdownIt.enable" class="link-short" title="MarkdownIt.enable (class method)" data-id="markdownit.enable">MarkdownIt.enable</a>.</p>
</div></div></article><article class="docblock" id="MarkdownIt.prototype.helpers" data-title="MarkdownIt#helpers (instance property)"><header><ul class="breadcrumbs"><li><a href="#home">Home</a></li><li><a href="#MarkdownIt" class="" title="MarkdownIt (class)" data-id="markdownit">MarkdownIt</a></li><li><a href="#MarkdownIt.prototype.helpers" class="" title="MarkdownIt#helpers (instance property)" data-id="markdownit#helpers">helpers</a></li></ul><h2 title="instance property"><span class="name_prefix">MarkdownIt#</span>helpers</h2><div class="source"><a href="https://github.com/markdown-it/markdown-it/blob/0fe7cc/lib/index.mjs#L336">View source</a></div></header><div class="section method"><div class="content"><ul class="signatures"><li><ul class="signature"><li class="signature-call">MarkdownIt#helpers</li><li><ul class="signature-values"><li>helpers</li></ul></li></ul></li></ul><p>Link components parser functions, useful to write plugins. See details
<a href="https://github.com/markdown-it/markdown-it/blob/master/lib/helpers">here</a>.</p>
</div></div></article><article class="docblock" id="MarkdownIt.prototype.inline" data-title="MarkdownIt#inline (instance property)"><header><ul class="breadcrumbs"><li><a href="#home">Home</a></li><li><a href="#MarkdownIt" class="" title="MarkdownIt (class)" data-id="markdownit">MarkdownIt</a></li><li><a href="#MarkdownIt.prototype.inline" class="" title="MarkdownIt#inline (instance property)" data-id="markdownit#inline">inline</a></li></ul><h2 title="instance property"><span class="name_prefix">MarkdownIt#</span>inline</h2><div class="source"><a href="https://github.com/markdown-it/markdown-it/blob/0fe7cc/lib/index.mjs#L236">View source</a></div></header><div class="section method"><div class="content"><ul class="signatures"><li><ul class="signature"><li class="signature-call">MarkdownIt#inline</li><li><ul class="signature-values"><li><a href="#ParserInline" class="link-short" title="ParserInline (class)" data-id="parserinline">ParserInline</a></li></ul></li></ul></li></ul><p>Instance of <a href="#ParserInline" class="link-short" title="ParserInline (class)" data-id="parserinline">ParserInline</a>. You may need it to add new rules when
writing plugins. For simple rules control use <a href="#MarkdownIt.disable" class="link-short" title="MarkdownIt.disable (class method)" data-id="markdownit.disable">MarkdownIt.disable</a> and
<a href="#MarkdownIt.enable" class="link-short" title="MarkdownIt.enable (class method)" data-id="markdownit.enable">MarkdownIt.enable</a>.</p>
</div></div></article><article class="docblock" id="MarkdownIt.prototype.linkify" data-title="MarkdownIt#linkify (instance property)"><header><ul class="breadcrumbs"><li><a href="#home">Home</a></li><li><a href="#MarkdownIt" class="" title="MarkdownIt (class)" data-id="markdownit">MarkdownIt</a></li><li><a href="#MarkdownIt.prototype.linkify" class="" title="MarkdownIt#linkify (instance property)" data-id="markdownit#linkify">linkify</a></li></ul><h2 title="instance property"><span class="name_prefix">MarkdownIt#</span>linkify</h2><div class="source"><a href="https://github.com/markdown-it/markdown-it/blob/0fe7cc/lib/index.mjs#L286">View source</a></div></header><div class="section method"><div class="content"><ul class="signatures"><li><ul class="signature"><li class="signature-call">MarkdownIt#linkify</li><li><ul class="signature-values"><li>LinkifyIt</li></ul></li></ul></li></ul><p><a href="https://github.com/markdown-it/linkify-it">linkify-it</a> instance.
Used by <a href="https://github.com/markdown-it/markdown-it/blob/master/lib/rules_core/linkify.mjs">linkify</a>
rule.</p>
</div></div></article><article class="docblock" id="MarkdownIt.prototype.renderer" data-title="MarkdownIt#renderer (instance property)"><header><ul class="breadcrumbs"><li><a href="#home">Home</a></li><li><a href="#MarkdownIt" class="" title="MarkdownIt (class)" data-id="markdownit">MarkdownIt</a></li><li><a href="#MarkdownIt.prototype.renderer" class="" title="MarkdownIt#renderer (instance property)" data-id="markdownit#renderer">renderer</a></li></ul><h2 title="instance property"><span class="name_prefix">MarkdownIt#</span>renderer</h2><div class="source"><a href="https://github.com/markdown-it/markdown-it/blob/0fe7cc/lib/index.mjs#L277">View source</a></div></header><div class="section method"><div class="content"><ul class="signatures"><li><ul class="signature"><li class="signature-call">MarkdownIt#renderer</li><li><ul class="signature-values"><li><a href="#Renderer" class="link-short" title="Renderer (class)" data-id="renderer">Renderer</a></li></ul></li></ul></li></ul><p>Instance of <a href="#Renderer" class="link-short" title="Renderer (class)" data-id="renderer">Renderer</a>. Use it to modify output look. Or to add rendering
rules for new token types, generated by plugins.</p>
<h5>Example</h5>
<pre class="hljs language-javascript"><code><span class="hljs-keyword">var</span> md = <span class="hljs-built_in">require</span>(<span class="hljs-string">&#x27;markdown-it&#x27;</span>)();
<span class="hljs-keyword">function</span> <span class="hljs-title function_">myToken</span>(<span class="hljs-params">tokens, idx, options, env, self</span>) {
<span class="hljs-comment">//...</span>
<span class="hljs-keyword">return</span> result;
};
md.<span class="hljs-property">renderer</span>.<span class="hljs-property">rules</span>[<span class="hljs-string">&#x27;my_token&#x27;</span>] = myToken
</code></pre>
<p>See <a href="#Renderer" class="link-short" title="Renderer (class)" data-id="renderer">Renderer</a> docs and <a href="https://github.com/markdown-it/markdown-it/blob/master/lib/renderer.mjs">source code</a>.</p>
</div></div></article><article class="docblock" id="MarkdownIt.prototype.utils" data-title="MarkdownIt#utils (instance property)"><header><ul class="breadcrumbs"><li><a href="#home">Home</a></li><li><a href="#MarkdownIt" class="" title="MarkdownIt (class)" data-id="markdownit">MarkdownIt</a></li><li><a href="#MarkdownIt.prototype.utils" class="" title="MarkdownIt#utils (instance property)" data-id="markdownit#utils">utils</a></li></ul><h2 title="instance property"><span class="name_prefix">MarkdownIt#</span>utils</h2><div class="source"><a href="https://github.com/markdown-it/markdown-it/blob/0fe7cc/lib/index.mjs#L328">View source</a></div></header><div class="section method"><div class="content"><ul class="signatures"><li><ul class="signature"><li class="signature-call">MarkdownIt#utils</li><li><ul class="signature-values"><li>utils</li></ul></li></ul></li></ul><p>Assorted utility functions, useful to write plugins. See details
<a href="https://github.com/markdown-it/markdown-it/blob/master/lib/common/utils.mjs">here</a>.</p>
</div></div></article><article class="docblock" id="ParserBlock" data-title="ParserBlock (class)"><header><ul class="breadcrumbs"><li><a href="#home">Home</a></li><li><a href="#ParserBlock" class="" title="ParserBlock (class)" data-id="parserblock">ParserBlock</a></li></ul><h2 title="class">ParserBlock</h2><div class="source"><a href="https://github.com/markdown-it/markdown-it/blob/0fe7cc/lib/parser_block.mjs#L6">View source</a></div><div class="labels"><span class="internal">internal</span></div></header><div class="section description"><h3>Description</h3><div class="content"><p>Block-level tokenizer.</p>
</div></div><div class="section constructor"><h3>Constructor</h3><div class="content"></div><ul class="method-list"><li><a href="#ParserBlock.new" class="" title="new ParserBlock (constructor)" data-id="new parserblock">new ParserBlock</a></li></ul></div><div class="section class_methods"><h3>Class methods</h3><div class="content"><ul class="method-list"><li><a href="#ParserBlock.parse" class="" title="ParserBlock.parse (class method)" data-id="parserblock.parse">parse</a></li></ul></div></div><div class="section instance_properties"><h3>Instance properties</h3><div class="content"><ul class="method-list"><li><a href="#ParserBlock.prototype.ruler" class="" title="ParserBlock#ruler (instance property)" data-id="parserblock#ruler">ruler</a></li></ul></div></div></article><article class="docblock" id="ParserBlock.new" data-title="new ParserBlock (constructor)"><header><ul class="breadcrumbs"><li><a href="#home">Home</a></li><li><a href="#ParserBlock" class="" title="ParserBlock (class)" data-id="parserblock">ParserBlock</a></li><li><a href="#ParserBlock.new" class="" title="new ParserBlock (constructor)" data-id="new parserblock">new</a></li></ul><h2 title="constructor"><span class="name_prefix">ParserBlock.</span>new</h2><div class="source"><a href="https://github.com/markdown-it/markdown-it/blob/0fe7cc/lib/parser_block.mjs#L41">View source</a></div></header><div class="section method"><div class="content"><ul class="signatures"><li><ul class="signature"><li class="signature-call">new ParserBlock()</li></ul></li></ul></div></div></article><article class="docblock" id="ParserBlock.parse" data-title="ParserBlock.parse (class method)"><header><ul class="breadcrumbs"><li><a href="#home">Home</a></li><li><a href="#ParserBlock" class="" title="ParserBlock (class)" data-id="parserblock">ParserBlock</a></li><li><a href="#ParserBlock.parse" class="" title="ParserBlock.parse (class method)" data-id="parserblock.parse">parse</a></li></ul><h2 title="class method"><span class="name_prefix">ParserBlock.</span>parse</h2><div class="source"><a href="https://github.com/markdown-it/markdown-it/blob/0fe7cc/lib/parser_block.mjs#L124">View source</a></div></header><div class="section method"><div class="content"><ul class="signatures"><li><ul class="signature"><li class="signature-call">ParserBlock.parse(str, md, env, outTokens)</li></ul></li></ul><p>Process input string and push block tokens into <code>outTokens</code></p>
</div></div></article><article class="docblock" id="ParserBlock.prototype.ruler" data-title="ParserBlock#ruler (instance property)"><header><ul class="breadcrumbs"><li><a href="#home">Home</a></li><li><a href="#ParserBlock" class="" title="ParserBlock (class)" data-id="parserblock">ParserBlock</a></li><li><a href="#ParserBlock.prototype.ruler" class="" title="ParserBlock#ruler (instance property)" data-id="parserblock#ruler">ruler</a></li></ul><h2 title="instance property"><span class="name_prefix">ParserBlock#</span>ruler</h2><div class="source"><a href="https://github.com/markdown-it/markdown-it/blob/0fe7cc/lib/parser_block.mjs#L47">View source</a></div></header><div class="section method"><div class="content"><ul class="signatures"><li><ul class="signature"><li class="signature-call">ParserBlock#ruler</li><li><ul class="signature-values"><li><a href="#Ruler" class="link-short" title="Ruler (class)" data-id="ruler">Ruler</a></li></ul></li></ul></li></ul><p><a href="#Ruler" class="link-short" title="Ruler (class)" data-id="ruler">Ruler</a> instance. Keep configuration of block rules.</p>
</div></div></article><article class="docblock" id="ParserInline" data-title="ParserInline (class)"><header><ul class="breadcrumbs"><li><a href="#home">Home</a></li><li><a href="#ParserInline" class="" title="ParserInline (class)" data-id="parserinline">ParserInline</a></li></ul><h2 title="class">ParserInline</h2><div class="source"><a href="https://github.com/markdown-it/markdown-it/blob/0fe7cc/lib/parser_inline.mjs#L6">View source</a></div><div class="labels"><span class="internal">internal</span></div></header><div class="section description"><h3>Description</h3><div class="content"><p>Tokenizes paragraph content.</p>
</div></div><div class="section constructor"><h3>Constructor</h3><div class="content"></div><ul class="method-list"><li><a href="#ParserInline.new" class="" title="new ParserInline (constructor)" data-id="new parserinline">new ParserInline</a></li></ul></div><div class="section class_methods"><h3>Class methods</h3><div class="content"><ul class="method-list"><li><a href="#ParserInline.parse" class="" title="ParserInline.parse (class method)" data-id="parserinline.parse">parse</a></li></ul></div></div><div class="section instance_properties"><h3>Instance properties</h3><div class="content"><ul class="method-list"><li><a href="#ParserInline.prototype.ruler" class="" title="ParserInline#ruler (instance property)" data-id="parserinline#ruler">ruler</a></li><li><a href="#ParserInline.prototype.ruler2" class="" title="ParserInline#ruler2 (instance property)" data-id="parserinline#ruler2">ruler2</a></li></ul></div></div></article><article class="docblock" id="ParserInline.new" data-title="new ParserInline (constructor)"><header><ul class="breadcrumbs"><li><a href="#home">Home</a></li><li><a href="#ParserInline" class="" title="ParserInline (class)" data-id="parserinline">ParserInline</a></li><li><a href="#ParserInline.new" class="" title="new ParserInline (constructor)" data-id="new parserinline">new</a></li></ul><h2 title="constructor"><span class="name_prefix">ParserInline.</span>new</h2><div class="source"><a href="https://github.com/markdown-it/markdown-it/blob/0fe7cc/lib/parser_inline.mjs#L60">View source</a></div></header><div class="section method"><div class="content"><ul class="signatures"><li><ul class="signature"><li class="signature-call">new ParserInline()</li></ul></li></ul></div></div></article><article class="docblock" id="ParserInline.parse" data-title="ParserInline.parse (class method)"><header><ul class="breadcrumbs"><li><a href="#home">Home</a></li><li><a href="#ParserInline" class="" title="ParserInline (class)" data-id="parserinline">ParserInline</a></li><li><a href="#ParserInline.parse" class="" title="ParserInline.parse (class method)" data-id="parserinline.parse">parse</a></li></ul><h2 title="class method"><span class="name_prefix">ParserInline.</span>parse</h2><div class="source"><a href="https://github.com/markdown-it/markdown-it/blob/0fe7cc/lib/parser_inline.mjs#L182">View source</a></div></header><div class="section method"><div class="content"><ul class="signatures"><li><ul class="signature"><li class="signature-call">ParserInline.parse(str, md, env, outTokens)</li></ul></li></ul><p>Process input string and push inline tokens into <code>outTokens</code></p>
</div></div></article><article class="docblock" id="ParserInline.prototype.ruler" data-title="ParserInline#ruler (instance property)"><header><ul class="breadcrumbs"><li><a href="#home">Home</a></li><li><a href="#ParserInline" class="" title="ParserInline (class)" data-id="parserinline">ParserInline</a></li><li><a href="#ParserInline.prototype.ruler" class="" title="ParserInline#ruler (instance property)" data-id="parserinline#ruler">ruler</a></li></ul><h2 title="instance property"><span class="name_prefix">ParserInline#</span>ruler</h2><div class="source"><a href="https://github.com/markdown-it/markdown-it/blob/0fe7cc/lib/parser_inline.mjs#L66">View source</a></div></header><div class="section method"><div class="content"><ul class="signatures"><li><ul class="signature"><li class="signature-call">ParserInline#ruler</li><li><ul class="signature-values"><li><a href="#Ruler" class="link-short" title="Ruler (class)" data-id="ruler">Ruler</a></li></ul></li></ul></li></ul><p><a href="#Ruler" class="link-short" title="Ruler (class)" data-id="ruler">Ruler</a> instance. Keep configuration of inline rules.</p>
</div></div></article><article class="docblock" id="ParserInline.prototype.ruler2" data-title="ParserInline#ruler2 (instance property)"><header><ul class="breadcrumbs"><li><a href="#home">Home</a></li><li><a href="#ParserInline" class="" title="ParserInline (class)" data-id="parserinline">ParserInline</a></li><li><a href="#ParserInline.prototype.ruler2" class="" title="ParserInline#ruler2 (instance property)" data-id="parserinline#ruler2">ruler2</a></li></ul><h2 title="instance property"><span class="name_prefix">ParserInline#</span>ruler2</h2><div class="source"><a href="https://github.com/markdown-it/markdown-it/blob/0fe7cc/lib/parser_inline.mjs#L78">View source</a></div></header><div class="section method"><div class="content"><ul class="signatures"><li><ul class="signature"><li class="signature-call">ParserInline#ruler2</li><li><ul class="signature-values"><li><a href="#Ruler" class="link-short" title="Ruler (class)" data-id="ruler">Ruler</a></li></ul></li></ul></li></ul><p><a href="#Ruler" class="link-short" title="Ruler (class)" data-id="ruler">Ruler</a> instance. Second ruler used for post-processing
(e.g. in emphasis-like rules).</p>
</div></div></article><article class="docblock" id="Renderer" data-title="Renderer (class)"><header><ul class="breadcrumbs"><li><a href="#home">Home</a></li><li><a href="#Renderer" class="" title="Renderer (class)" data-id="renderer">Renderer</a></li></ul><h2 title="class">Renderer</h2><div class="source"><a href="https://github.com/markdown-it/markdown-it/blob/0fe7cc/lib/renderer.mjs#L8">View source</a></div></header><div class="section description"><h3>Description</h3><div class="content"><p>Generates HTML from parsed token stream. Each instance has independent
copy of rules. Those can be rewritten with ease. Also, you can add new
rules if you create plugin and adds new token types.</p>
</div></div><div class="section constructor"><h3>Constructor</h3><div class="content"></div><ul class="method-list"><li><a href="#Renderer.new" class="" title="new Renderer (constructor)" data-id="new renderer">new Renderer</a></li></ul></div><div class="section class_methods"><h3>Class methods</h3><div class="content"><ul class="method-list"><li><a href="#Renderer.render" class="" title="Renderer.render (class method)" data-id="renderer.render">render</a></li><li><a href="#Renderer.renderAttrs" class="" title="Renderer.renderAttrs (class method)" data-id="renderer.renderattrs">renderAttrs</a></li><li><a href="#Renderer.renderInline" class="" title="Renderer.renderInline (class method)" data-id="renderer.renderinline">renderInline</a></li><li><a href="#Renderer.renderInlineAsText" class="" title="Renderer.renderInlineAsText (class method)" data-id="renderer.renderinlineastext">renderInlineAsText</a></li><li><a href="#Renderer.renderToken" class="" title="Renderer.renderToken (class method)" data-id="renderer.rendertoken">renderToken</a></li></ul></div></div><div class="section instance_properties"><h3>Instance properties</h3><div class="content"><ul class="method-list"><li><a href="#Renderer.prototype.rules" class="" title="Renderer#rules (instance property)" data-id="renderer#rules">rules</a></li></ul></div></div></article><article class="docblock" id="Renderer.new" data-title="new Renderer (constructor)"><header><ul class="breadcrumbs"><li><a href="#home">Home</a></li><li><a href="#Renderer" class="" title="Renderer (class)" data-id="renderer">Renderer</a></li><li><a href="#Renderer.new" class="" title="new Renderer (constructor)" data-id="new renderer">new</a></li></ul><h2 title="constructor"><span class="name_prefix">Renderer.</span>new</h2><div class="source"><a href="https://github.com/markdown-it/markdown-it/blob/0fe7cc/lib/renderer.mjs#L114">View source</a></div></header><div class="section method"><div class="content"><ul class="signatures"><li><ul class="signature"><li class="signature-call">new Renderer()</li></ul></li></ul><p>Creates new <a href="#Renderer" class="link-short" title="Renderer (class)" data-id="renderer">Renderer</a> instance and fill <a href="#Renderer.prototype.rules" class="link-short" title="Renderer#rules (instance property)" data-id="renderer#rules">Renderer#rules</a> with defaults.</p>
</div></div></article><article class="docblock" id="Renderer.render" data-title="Renderer.render (class method)"><header><ul class="breadcrumbs"><li><a href="#home">Home</a></li><li><a href="#Renderer" class="" title="Renderer (class)" data-id="renderer">Renderer</a></li><li><a href="#Renderer.render" class="" title="Renderer.render (class method)" data-id="renderer.render">render</a></li></ul><h2 title="class method"><span class="name_prefix">Renderer.</span>render</h2><div class="source"><a href="https://github.com/markdown-it/markdown-it/blob/0fe7cc/lib/renderer.mjs#L303">View source</a></div></header><div class="section method"><div class="content"><ul class="signatures"><li><ul class="signature"><li class="signature-call">Renderer.render(tokens, options, env)</li><li><ul class="signature-values"><li>String</li></ul></li></ul></li></ul><ul class="arguments"><li><ul class="argument"><li class="argument-name">tokens</li><li><ul class="argument-types"><li class="argument-type">Array</li></ul></li><li class="argument-description"><p>list on block tokens to render</p>
</li></ul></li><li><ul class="argument"><li class="argument-name">options</li><li><ul class="argument-types"><li class="argument-type">Object</li></ul></li><li class="argument-description"><p>params of parser instance</p>
</li></ul></li><li><ul class="argument"><li class="argument-name">env</li><li><ul class="argument-types"><li class="argument-type">Object</li></ul></li><li class="argument-description"><p>additional data from parsed input (references, for example)</p>
</li></ul></li></ul><p>Takes token stream and generates HTML. Probably, you will never need to call
this method directly.</p>
</div></div></article><article class="docblock" id="Renderer.renderAttrs" data-title="Renderer.renderAttrs (class method)"><header><ul class="breadcrumbs"><li><a href="#home">Home</a></li><li><a href="#Renderer" class="" title="Renderer (class)" data-id="renderer">Renderer</a></li><li><a href="#Renderer.renderAttrs" class="" title="Renderer.renderAttrs (class method)" data-id="renderer.renderattrs">renderAttrs</a></li></ul><h2 title="class method"><span class="name_prefix">Renderer.</span>renderAttrs</h2><div class="source"><a href="https://github.com/markdown-it/markdown-it/blob/0fe7cc/lib/renderer.mjs#L151">View source</a></div></header><div class="section method"><div class="content"><ul class="signatures"><li><ul class="signature"><li class="signature-call">Renderer.renderAttrs(token)</li><li><ul class="signature-values"><li>String</li></ul></li></ul></li></ul><p>Render token attributes to string.</p>
</div></div></article><article class="docblock" id="Renderer.renderInline" data-title="Renderer.renderInline (class method)"><header><ul class="breadcrumbs"><li><a href="#home">Home</a></li><li><a href="#Renderer" class="" title="Renderer (class)" data-id="renderer">Renderer</a></li><li><a href="#Renderer.renderInline" class="" title="Renderer.renderInline (class method)" data-id="renderer.renderinline">renderInline</a></li></ul><h2 title="class method"><span class="name_prefix">Renderer.</span>renderInline</h2><div class="source"><a href="https://github.com/markdown-it/markdown-it/blob/0fe7cc/lib/renderer.mjs#L240">View source</a></div></header><div class="section method"><div class="content"><ul class="signatures"><li><ul class="signature"><li class="signature-call">Renderer.renderInline(tokens, options, env)</li><li><ul class="signature-values"><li>String</li></ul></li></ul></li></ul><ul class="arguments"><li><ul class="argument"><li class="argument-name">tokens</li><li><ul class="argument-types"><li class="argument-type">Array</li></ul></li><li class="argument-description"><p>list on block tokens to render</p>
</li></ul></li><li><ul class="argument"><li class="argument-name">options</li><li><ul class="argument-types"><li class="argument-type">Object</li></ul></li><li class="argument-description"><p>params of parser instance</p>
</li></ul></li><li><ul class="argument"><li class="argument-name">env</li><li><ul class="argument-types"><li class="argument-type">Object</li></ul></li><li class="argument-description"><p>additional data from parsed input (references, for example)</p>
</li></ul></li></ul><p>The same as <a href="#Renderer.render" class="link-short" title="Renderer.render (class method)" data-id="renderer.render">Renderer.render</a>, but for single token of <code>inline</code> type.</p>
</div></div></article><article class="docblock" id="Renderer.renderInlineAsText" data-title="Renderer.renderInlineAsText (class method)"><header><ul class="breadcrumbs"><li><a href="#home">Home</a></li><li><a href="#Renderer" class="" title="Renderer (class)" data-id="renderer">Renderer</a></li><li><a href="#Renderer.renderInlineAsText" class="" title="Renderer.renderInlineAsText (class method)" data-id="renderer.renderinlineastext">renderInlineAsText</a></li></ul><h2 title="class method"><span class="name_prefix">Renderer.</span>renderInlineAsText</h2><div class="source"><a href="https://github.com/markdown-it/markdown-it/blob/0fe7cc/lib/renderer.mjs#L267">View source</a></div><div class="labels"><span class="internal">internal</span></div></header><div class="section method"><div class="content"><ul class="signatures"><li><ul class="signature"><li class="signature-call">Renderer.renderInlineAsText(tokens, options, env)</li><li><ul class="signature-values"><li>String</li></ul></li></ul></li></ul><ul class="arguments"><li><ul class="argument"><li class="argument-name">tokens</li><li><ul class="argument-types"><li class="argument-type">Array</li></ul></li><li class="argument-description"><p>list on block tokens to render</p>
</li></ul></li><li><ul class="argument"><li class="argument-name">options</li><li><ul class="argument-types"><li class="argument-type">Object</li></ul></li><li class="argument-description"><p>params of parser instance</p>
</li></ul></li><li><ul class="argument"><li class="argument-name">env</li><li><ul class="argument-types"><li class="argument-type">Object</li></ul></li><li class="argument-description"><p>additional data from parsed input (references, for example)</p>
</li></ul></li></ul><p>Special kludge for image <code>alt</code> attributes to conform CommonMark spec.
Don't try to use it! Spec requires to show <code>alt</code> content with stripped markup,
instead of simple escaping.</p>
</div></div></article><article class="docblock" id="Renderer.renderToken" data-title="Renderer.renderToken (class method)"><header><ul class="breadcrumbs"><li><a href="#home">Home</a></li><li><a href="#Renderer" class="" title="Renderer (class)" data-id="renderer">Renderer</a></li><li><a href="#Renderer.renderToken" class="" title="Renderer.renderToken (class method)" data-id="renderer.rendertoken">renderToken</a></li></ul><h2 title="class method"><span class="name_prefix">Renderer.</span>renderToken</h2><div class="source"><a href="https://github.com/markdown-it/markdown-it/blob/0fe7cc/lib/renderer.mjs#L174">View source</a></div></header><div class="section method"><div class="content"><ul class="signatures"><li><ul class="signature"><li class="signature-call">Renderer.renderToken(tokens, idx, options)</li><li><ul class="signature-values"><li>String</li></ul></li></ul></li></ul><ul class="arguments"><li><ul class="argument"><li class="argument-name">tokens</li><li><ul class="argument-types"><li class="argument-type">Array</li></ul></li><li class="argument-description"><p>list of tokens</p>
</li></ul></li><li><ul class="argument"><li class="argument-name">idx</li><li><ul class="argument-types"><li class="argument-type">Numbed</li></ul></li><li class="argument-description"><p>token index to render</p>
</li></ul></li><li><ul class="argument"><li class="argument-name">options</li><li><ul class="argument-types"><li class="argument-type">Object</li></ul></li><li class="argument-description"><p>params of parser instance</p>
</li></ul></li></ul><p>Default token renderer. Can be overriden by custom function
in <a href="#Renderer.prototype.rules" class="link-short" title="Renderer#rules (instance property)" data-id="renderer#rules">Renderer#rules</a>.</p>
</div></div></article><article class="docblock" id="Renderer.prototype.rules" data-title="Renderer#rules (instance property)"><header><ul class="breadcrumbs"><li><a href="#home">Home</a></li><li><a href="#Renderer" class="" title="Renderer (class)" data-id="renderer">Renderer</a></li><li><a href="#Renderer.prototype.rules" class="" title="Renderer#rules (instance property)" data-id="renderer#rules">rules</a></li></ul><h2 title="instance property"><span class="name_prefix">Renderer#</span>rules</h2><div class="source"><a href="https://github.com/markdown-it/markdown-it/blob/0fe7cc/lib/renderer.mjs#L143">View source</a></div></header><div class="section method"><div class="content"><ul class="signatures"><li><ul class="signature"><li class="signature-call">Renderer#rules</li><li><ul class="signature-values"><li>Object</li></ul></li></ul></li></ul><p>Contains render rules for tokens. Can be updated and extended.</p>
<h5>Example</h5>
<pre class="hljs language-javascript"><code><span class="hljs-keyword">var</span> md = <span class="hljs-built_in">require</span>(<span class="hljs-string">&#x27;markdown-it&#x27;</span>)();
md.<span class="hljs-property">renderer</span>.<span class="hljs-property">rules</span>.<span class="hljs-property">strong_open</span> = <span class="hljs-keyword">function</span> (<span class="hljs-params"></span>) { <span class="hljs-keyword">return</span> <span class="hljs-string">&#x27;&lt;b&gt;&#x27;</span>; };
md.<span class="hljs-property">renderer</span>.<span class="hljs-property">rules</span>.<span class="hljs-property">strong_close</span> = <span class="hljs-keyword">function</span> (<span class="hljs-params"></span>) { <span class="hljs-keyword">return</span> <span class="hljs-string">&#x27;&lt;/b&gt;&#x27;</span>; };
<span class="hljs-keyword">var</span> result = md.<span class="hljs-title function_">renderInline</span>(...);
</code></pre>
<p>Each rule is called as independent static function with fixed signature:</p>
<pre class="hljs language-javascript"><code><span class="hljs-keyword">function</span> <span class="hljs-title function_">my_token_render</span>(<span class="hljs-params">tokens, idx, options, env, renderer</span>) {
<span class="hljs-comment">// ...</span>
<span class="hljs-keyword">return</span> renderedHTML;
}
</code></pre>
<p>See <a href="https://github.com/markdown-it/markdown-it/blob/master/lib/renderer.mjs">source code</a>
for more details and examples.</p>
</div></div></article><article class="docblock" id="Ruler" data-title="Ruler (class)"><header><ul class="breadcrumbs"><li><a href="#home">Home</a></li><li><a href="#Ruler" class="" title="Ruler (class)" data-id="ruler">Ruler</a></li></ul><h2 title="class">Ruler</h2><div class="source"><a href="https://github.com/markdown-it/markdown-it/blob/0fe7cc/lib/ruler.mjs#L18">View source</a></div></header><div class="section description"><h3>Description</h3><div class="content"><p>Helper class, used by <a href="#MarkdownIt.prototype.core" class="link-short" title="MarkdownIt#core (instance property)" data-id="markdownit#core">MarkdownIt#core</a>, <a href="#MarkdownIt.prototype.block" class="link-short" title="MarkdownIt#block (instance property)" data-id="markdownit#block">MarkdownIt#block</a> and
<a href="#MarkdownIt.prototype.inline" class="link-short" title="MarkdownIt#inline (instance property)" data-id="markdownit#inline">MarkdownIt#inline</a> to manage sequences of functions (rules):</p>
<ul>
<li>keep rules in defined order</li>
<li>assign the name to each rule</li>
<li>enable/disable rules</li>
<li>add/replace rules</li>
<li>allow assign rules to additional named chains (in the same)</li>
<li>cacheing lists of active rules</li>
</ul>
<p>You will not need use this class directly until write plugins. For simple
rules control use <a href="#MarkdownIt.disable" class="link-short" title="MarkdownIt.disable (class method)" data-id="markdownit.disable">MarkdownIt.disable</a>, <a href="#MarkdownIt.enable" class="link-short" title="MarkdownIt.enable (class method)" data-id="markdownit.enable">MarkdownIt.enable</a> and
<a href="#MarkdownIt.use" class="link-short" title="MarkdownIt.use (class method)" data-id="markdownit.use">MarkdownIt.use</a>.</p>
</div></div><div class="section constructor"><h3>Constructor</h3><div class="content"></div><ul class="method-list"><li><a href="#Ruler.new" class="" title="new Ruler (constructor)" data-id="new ruler">new Ruler</a></li></ul></div><div class="section class_methods"><h3>Class methods</h3><div class="content"><ul class="method-list"><li><a href="#Ruler.after" class="" title="Ruler.after (class method)" data-id="ruler.after">after</a></li><li><a href="#Ruler.at" class="" title="Ruler.at (class method)" data-id="ruler.at">at</a></li><li><a href="#Ruler.before" class="" title="Ruler.before (class method)" data-id="ruler.before">before</a></li><li><a href="#Ruler.disable" class="" title="Ruler.disable (class method)" data-id="ruler.disable">disable</a></li><li><a href="#Ruler.enable" class="" title="Ruler.enable (class method)" data-id="ruler.enable">enable</a></li><li><a href="#Ruler.enableOnly" class="" title="Ruler.enableOnly (class method)" data-id="ruler.enableonly">enableOnly</a></li><li><a href="#Ruler.getRules" class="" title="Ruler.getRules (class method)" data-id="ruler.getrules">getRules</a></li><li><a href="#Ruler.push" class="" title="Ruler.push (class method)" data-id="ruler.push">push</a></li></ul></div></div></article><article class="docblock" id="Ruler.new" data-title="new Ruler (constructor)"><header><ul class="breadcrumbs"><li><a href="#home">Home</a></li><li><a href="#Ruler" class="" title="Ruler (class)" data-id="ruler">Ruler</a></li><li><a href="#Ruler.new" class="" title="new Ruler (constructor)" data-id="new ruler">new</a></li></ul><h2 title="constructor"><span class="name_prefix">Ruler.</span>new</h2><div class="source"><a href="https://github.com/markdown-it/markdown-it/blob/0fe7cc/lib/ruler.mjs#L22">View source</a></div></header><div class="section method"><div class="content"><ul class="signatures"><li><ul class="signature"><li class="signature-call">new Ruler()</li></ul></li></ul></div></div></article><article class="docblock" id="Ruler.after" data-title="Ruler.after (class method)"><header><ul class="breadcrumbs"><li><a href="#home">Home</a></li><li><a href="#Ruler" class="" title="Ruler (class)" data-id="ruler">Ruler</a></li><li><a href="#Ruler.after" class="" title="Ruler.after (class method)" data-id="ruler.after">after</a></li></ul><h2 title="class method"><span class="name_prefix">Ruler.</span>after</h2><div class="source"><a href="https://github.com/markdown-it/markdown-it/blob/0fe7cc/lib/ruler.mjs#L186">View source</a></div></header><div class="section method"><div class="content"><ul class="signatures"><li><ul class="signature"><li class="signature-call">Ruler.after(afterName, ruleName, fn[, options])</li></ul></li></ul><ul class="arguments"><li><ul class="argument"><li class="argument-name">afterName</li><li><ul class="argument-types"><li class="argument-type">String</li></ul></li><li class="argument-description"><p>new rule will be added after this one.</p>
</li></ul></li><li><ul class="argument"><li class="argument-name">ruleName</li><li><ul class="argument-types"><li class="argument-type">String</li></ul></li><li class="argument-description"><p>name of added rule.</p>
</li></ul></li><li><ul class="argument"><li class="argument-name">fn</li><li><ul class="argument-types"><li class="argument-type">Function</li></ul></li><li class="argument-description"><p>rule function.</p>
</li></ul></li><li><ul class="argument"><li class="argument-name">options</li><li><ul class="argument-types"><li class="argument-type">Object</li></ul></li><li class="argument-description"><p>rule options (not mandatory).</p>
</li></ul></li></ul><p>Add new rule to chain after one with given name. See also
<a href="#Ruler.before" class="link-short" title="Ruler.before (class method)" data-id="ruler.before">Ruler.before</a>, <a href="#Ruler.push" class="link-short" title="Ruler.push (class method)" data-id="ruler.push">Ruler.push</a>.</p>
<h5>Options:</h5>
<ul>
<li><strong>alt</strong> - array with names of &quot;alternate&quot; chains.</li>
</ul>
<h5>Example</h5>
<pre class="hljs language-javascript"><code><span class="hljs-keyword">var</span> md = <span class="hljs-built_in">require</span>(<span class="hljs-string">&#x27;markdown-it&#x27;</span>)();
md.<span class="hljs-property">inline</span>.<span class="hljs-property">ruler</span>.<span class="hljs-title function_">after</span>(<span class="hljs-string">&#x27;text&#x27;</span>, <span class="hljs-string">&#x27;my_rule&#x27;</span>, <span class="hljs-keyword">function</span> <span class="hljs-title function_">replace</span>(<span class="hljs-params">state</span>) {
<span class="hljs-comment">//...</span>
});
</code></pre>
</div></div></article><article class="docblock" id="Ruler.at" data-title="Ruler.at (class method)"><header><ul class="breadcrumbs"><li><a href="#home">Home</a></li><li><a href="#Ruler" class="" title="Ruler (class)" data-id="ruler">Ruler</a></li><li><a href="#Ruler.at" class="" title="Ruler.at (class method)" data-id="ruler.at">at</a></li></ul><h2 title="class method"><span class="name_prefix">Ruler.</span>at</h2><div class="source"><a href="https://github.com/markdown-it/markdown-it/blob/0fe7cc/lib/ruler.mjs#L111">View source</a></div></header><div class="section method"><div class="content"><ul class="signatures"><li><ul class="signature"><li class="signature-call">Ruler.at(name, fn[, options])</li></ul></li></ul><ul class="arguments"><li><ul class="argument"><li class="argument-name">name</li><li><ul class="argument-types"><li class="argument-type">String</li></ul></li><li class="argument-description"><p>rule name to replace.</p>
</li></ul></li><li><ul class="argument"><li class="argument-name">fn</li><li><ul class="argument-types"><li class="argument-type">Function</li></ul></li><li class="argument-description"><p>new rule function.</p>
</li></ul></li><li><ul class="argument"><li class="argument-name">options</li><li><ul class="argument-types"><li class="argument-type">Object</li></ul></li><li class="argument-description"><p>new rule options (not mandatory).</p>
</li></ul></li></ul><p>Replace rule by name with new function &amp; options. Throws error if name not
found.</p>
<h5>Options:</h5>
<ul>
<li><strong>alt</strong> - array with names of &quot;alternate&quot; chains.</li>
</ul>
<h5>Example</h5>
<p>Replace existing typographer replacement rule with new one:</p>
<pre class="hljs language-javascript"><code><span class="hljs-keyword">var</span> md = <span class="hljs-built_in">require</span>(<span class="hljs-string">&#x27;markdown-it&#x27;</span>)();
md.<span class="hljs-property">core</span>.<span class="hljs-property">ruler</span>.<span class="hljs-title function_">at</span>(<span class="hljs-string">&#x27;replacements&#x27;</span>, <span class="hljs-keyword">function</span> <span class="hljs-title function_">replace</span>(<span class="hljs-params">state</span>) {
<span class="hljs-comment">//...</span>
});
</code></pre>
</div></div></article><article class="docblock" id="Ruler.before" data-title="Ruler.before (class method)"><header><ul class="breadcrumbs"><li><a href="#home">Home</a></li><li><a href="#Ruler" class="" title="Ruler (class)" data-id="ruler">Ruler</a></li><li><a href="#Ruler.before" class="" title="Ruler.before (class method)" data-id="ruler.before">before</a></li></ul><h2 title="class method"><span class="name_prefix">Ruler.</span>before</h2><div class="source"><a href="https://github.com/markdown-it/markdown-it/blob/0fe7cc/lib/ruler.mjs#L146">View source</a></div></header><div class="section method"><div class="content"><ul class="signatures"><li><ul class="signature"><li class="signature-call">Ruler.before(beforeName, ruleName, fn[, options])</li></ul></li></ul><ul class="arguments"><li><ul class="argument"><li class="argument-name">beforeName</li><li><ul class="argument-types"><li class="argument-type">String</li></ul></li><li class="argument-description"><p>new rule will be added before this one.</p>
</li></ul></li><li><ul class="argument"><li class="argument-name">ruleName</li><li><ul class="argument-types"><li class="argument-type">String</li></ul></li><li class="argument-description"><p>name of added rule.</p>
</li></ul></li><li><ul class="argument"><li class="argument-name">fn</li><li><ul class="argument-types"><li class="argument-type">Function</li></ul></li><li class="argument-description"><p>rule function.</p>
</li></ul></li><li><ul class="argument"><li class="argument-name">options</li><li><ul class="argument-types"><li class="argument-type">Object</li></ul></li><li class="argument-description"><p>rule options (not mandatory).</p>
</li></ul></li></ul><p>Add new rule to chain before one with given name. See also
<a href="#Ruler.after" class="link-short" title="Ruler.after (class method)" data-id="ruler.after">Ruler.after</a>, <a href="#Ruler.push" class="link-short" title="Ruler.push (class method)" data-id="ruler.push">Ruler.push</a>.</p>
<h5>Options:</h5>
<ul>
<li><strong>alt</strong> - array with names of &quot;alternate&quot; chains.</li>
</ul>
<h5>Example</h5>
<pre class="hljs language-javascript"><code><span class="hljs-keyword">var</span> md = <span class="hljs-built_in">require</span>(<span class="hljs-string">&#x27;markdown-it&#x27;</span>)();
md.<span class="hljs-property">block</span>.<span class="hljs-property">ruler</span>.<span class="hljs-title function_">before</span>(<span class="hljs-string">&#x27;paragraph&#x27;</span>, <span class="hljs-string">&#x27;my_rule&#x27;</span>, <span class="hljs-keyword">function</span> <span class="hljs-title function_">replace</span>(<span class="hljs-params">state</span>) {
<span class="hljs-comment">//...</span>
});
</code></pre>
</div></div></article><article class="docblock" id="Ruler.disable" data-title="Ruler.disable (class method)"><header><ul class="breadcrumbs"><li><a href="#home">Home</a></li><li><a href="#Ruler" class="" title="Ruler (class)" data-id="ruler">Ruler</a></li><li><a href="#Ruler.disable" class="" title="Ruler.disable (class method)" data-id="ruler.disable">disable</a></li></ul><h2 title="class method"><span class="name_prefix">Ruler.</span>disable</h2><div class="source"><a href="https://github.com/markdown-it/markdown-it/blob/0fe7cc/lib/ruler.mjs#L301">View source</a></div></header><div class="section method"><div class="content"><ul class="signatures"><li><ul class="signature"><li class="signature-call">Ruler.disable(list[, ignoreInvalid])</li><li><ul class="signature-values"><li>Array</li></ul></li></ul></li></ul><ul class="arguments"><li><ul class="argument"><li class="argument-name">list</li><li><ul class="argument-types"><li class="argument-type">String</li><li class="argument-type">Array</li></ul></li><li class="argument-description"><p>list of rule names to disable.</p>
</li></ul></li><li><ul class="argument"><li class="argument-name">ignoreInvalid</li><li><ul class="argument-types"><li class="argument-type">Boolean</li></ul></li><li class="argument-description"><p>set <code>true</code> to ignore errors when rule not found.</p>
</li></ul></li></ul><p>Disable rules with given names. If any rule name not found - throw Error.
Errors can be disabled by second param.</p>
<p>Returns list of found rule names (if no exception happened).</p>
<p>See also <a href="#Ruler.enable" class="link-short" title="Ruler.enable (class method)" data-id="ruler.enable">Ruler.enable</a>, <a href="#Ruler.enableOnly" class="link-short" title="Ruler.enableOnly (class method)" data-id="ruler.enableonly">Ruler.enableOnly</a>.</p>
</div></div></article><article class="docblock" id="Ruler.enable" data-title="Ruler.enable (class method)"><header><ul class="breadcrumbs"><li><a href="#home">Home</a></li><li><a href="#Ruler" class="" title="Ruler (class)" data-id="ruler">Ruler</a></li><li><a href="#Ruler.enable" class="" title="Ruler.enable (class method)" data-id="ruler.enable">enable</a></li></ul><h2 title="class method"><span class="name_prefix">Ruler.</span>enable</h2><div class="source"><a href="https://github.com/markdown-it/markdown-it/blob/0fe7cc/lib/ruler.mjs#L250">View source</a></div></header><div class="section method"><div class="content"><ul class="signatures"><li><ul class="signature"><li class="signature-call">Ruler.enable(list[, ignoreInvalid])</li><li><ul class="signature-values"><li>Array</li></ul></li></ul></li></ul><ul class="arguments"><li><ul class="argument"><li class="argument-name">list</li><li><ul class="argument-types"><li class="argument-type">String</li><li class="argument-type">Array</li></ul></li><li class="argument-description"><p>list of rule names to enable.</p>
</li></ul></li><li><ul class="argument"><li class="argument-name">ignoreInvalid</li><li><ul class="argument-types"><li class="argument-type">Boolean</li></ul></li><li class="argument-description"><p>set <code>true</code> to ignore errors when rule not found.</p>
</li></ul></li></ul><p>Enable rules with given names. If any rule name not found - throw Error.
Errors can be disabled by second param.</p>
<p>Returns list of found rule names (if no exception happened).</p>
<p>See also <a href="#Ruler.disable" class="link-short" title="Ruler.disable (class method)" data-id="ruler.disable">Ruler.disable</a>, <a href="#Ruler.enableOnly" class="link-short" title="Ruler.enableOnly (class method)" data-id="ruler.enableonly">Ruler.enableOnly</a>.</p>
</div></div></article><article class="docblock" id="Ruler.enableOnly" data-title="Ruler.enableOnly (class method)"><header><ul class="breadcrumbs"><li><a href="#home">Home</a></li><li><a href="#Ruler" class="" title="Ruler (class)" data-id="ruler">Ruler</a></li><li><a href="#Ruler.enableOnly" class="" title="Ruler.enableOnly (class method)" data-id="ruler.enableonly">enableOnly</a></li></ul><h2 title="class method"><span class="name_prefix">Ruler.</span>enableOnly</h2><div class="source"><a href="https://github.com/markdown-it/markdown-it/blob/0fe7cc/lib/ruler.mjs#L281">View source</a></div></header><div class="section method"><div class="content"><ul class="signatures"><li><ul class="signature"><li class="signature-call">Ruler.enableOnly(list[, ignoreInvalid])</li></ul></li></ul><ul class="arguments"><li><ul class="argument"><li class="argument-name">list</li><li><ul class="argument-types"><li class="argument-type">String</li><li class="argument-type">Array</li></ul></li><li class="argument-description"><p>list of rule names to enable (whitelist).</p>
</li></ul></li><li><ul class="argument"><li class="argument-name">ignoreInvalid</li><li><ul class="argument-types"><li class="argument-type">Boolean</li></ul></li><li class="argument-description"><p>set <code>true</code> to ignore errors when rule not found.</p>
</li></ul></li></ul><p>Enable rules with given names, and disable everything else. If any rule name
not found - throw Error. Errors can be disabled by second param.</p>
<p>See also <a href="#Ruler.disable" class="link-short" title="Ruler.disable (class method)" data-id="ruler.disable">Ruler.disable</a>, <a href="#Ruler.enable" class="link-short" title="Ruler.enable (class method)" data-id="ruler.enable">Ruler.enable</a>.</p>
</div></div></article><article class="docblock" id="Ruler.getRules" data-title="Ruler.getRules (class method)"><header><ul class="breadcrumbs"><li><a href="#home">Home</a></li><li><a href="#Ruler" class="" title="Ruler (class)" data-id="ruler">Ruler</a></li><li><a href="#Ruler.getRules" class="" title="Ruler.getRules (class method)" data-id="ruler.getrules">getRules</a></li></ul><h2 title="class method"><span class="name_prefix">Ruler.</span>getRules</h2><div class="source"><a href="https://github.com/markdown-it/markdown-it/blob/0fe7cc/lib/ruler.mjs#L331">View source</a></div></header><div class="section method"><div class="content"><ul class="signatures"><li><ul class="signature"><li class="signature-call">Ruler.getRules(chainName)</li><li><ul class="signature-values"><li>Array</li></ul></li></ul></li></ul><p>Return array of active functions (rules) for given chain name. It analyzes
rules configuration, compiles caches if not exists and returns result.</p>
<p>Default chain name is <code>''</code> (empty string). It can't be skipped. That's
done intentionally, to keep signature monomorphic for high speed.</p>
</div></div></article><article class="docblock" id="Ruler.push" data-title="Ruler.push (class method)"><header><ul class="breadcrumbs"><li><a href="#home">Home</a></li><li><a href="#Ruler" class="" title="Ruler (class)" data-id="ruler">Ruler</a></li><li><a href="#Ruler.push" class="" title="Ruler.push (class method)" data-id="ruler.push">push</a></li></ul><h2 title="class method"><span class="name_prefix">Ruler.</span>push</h2><div class="source"><a href="https://github.com/markdown-it/markdown-it/blob/0fe7cc/lib/ruler.mjs#L225">View source</a></div></header><div class="section method"><div class="content"><ul class="signatures"><li><ul class="signature"><li class="signature-call">Ruler.push(ruleName, fn[, options])</li></ul></li></ul><ul class="arguments"><li><ul class="argument"><li class="argument-name">ruleName</li><li><ul class="argument-types"><li class="argument-type">String</li></ul></li><li class="argument-description"><p>name of added rule.</p>
</li></ul></li><li><ul class="argument"><li class="argument-name">fn</li><li><ul class="argument-types"><li class="argument-type">Function</li></ul></li><li class="argument-description"><p>rule function.</p>
</li></ul></li><li><ul class="argument"><li class="argument-name">options</li><li><ul class="argument-types"><li class="argument-type">Object</li></ul></li><li class="argument-description"><p>rule options (not mandatory).</p>
</li></ul></li></ul><p>Push new rule to the end of chain. See also
<a href="#Ruler.before" class="link-short" title="Ruler.before (class method)" data-id="ruler.before">Ruler.before</a>, <a href="#Ruler.after" class="link-short" title="Ruler.after (class method)" data-id="ruler.after">Ruler.after</a>.</p>
<h5>Options:</h5>
<ul>
<li><strong>alt</strong> - array with names of &quot;alternate&quot; chains.</li>
</ul>
<h5>Example</h5>
<pre class="hljs language-javascript"><code><span class="hljs-keyword">var</span> md = <span class="hljs-built_in">require</span>(<span class="hljs-string">&#x27;markdown-it&#x27;</span>)();
md.<span class="hljs-property">core</span>.<span class="hljs-property">ruler</span>.<span class="hljs-title function_">push</span>(<span class="hljs-string">&#x27;my_rule&#x27;</span>, <span class="hljs-keyword">function</span> <span class="hljs-title function_">replace</span>(<span class="hljs-params">state</span>) {
<span class="hljs-comment">//...</span>
});
</code></pre>
</div></div></article><article class="docblock" id="Token" data-title="Token (class)"><header><ul class="breadcrumbs"><li><a href="#home">Home</a></li><li><a href="#Token" class="" title="Token (class)" data-id="token">Token</a></li></ul><h2 title="class">Token</h2><div class="source"><a href="https://github.com/markdown-it/markdown-it/blob/0fe7cc/lib/token.mjs#L6">View source</a></div></header><div class="section constructor"><h3>Constructor</h3><div class="content"></div><ul class="method-list"><li><a href="#Token.new" class="" title="new Token (constructor)" data-id="new token">new Token</a></li></ul></div><div class="section class_methods"><h3>Class methods</h3><div class="content"><ul class="method-list"><li><a href="#Token.attrGet" class="" title="Token.attrGet (class method)" data-id="token.attrget">attrGet</a></li><li><a href="#Token.attrIndex" class="" title="Token.attrIndex (class method)" data-id="token.attrindex">attrIndex</a></li><li><a href="#Token.attrJoin" class="" title="Token.attrJoin (class method)" data-id="token.attrjoin">attrJoin</a></li><li><a href="#Token.attrPush" class="" title="Token.attrPush (class method)" data-id="token.attrpush">attrPush</a></li><li><a href="#Token.attrSet" class="" title="Token.attrSet (class method)" data-id="token.attrset">attrSet</a></li></ul></div></div><div class="section instance_properties"><h3>Instance properties</h3><div class="content"><ul class="method-list"><li><a href="#Token.prototype.attrs" class="" title="Token#attrs (instance property)" data-id="token#attrs">attrs</a></li><li><a href="#Token.prototype.block" class="" title="Token#block (instance property)" data-id="token#block">block</a></li><li><a href="#Token.prototype.children" class="" title="Token#children (instance property)" data-id="token#children">children</a></li><li><a href="#Token.prototype.content" class="" title="Token#content (instance property)" data-id="token#content">content</a></li><li><a href="#Token.prototype.hidden" class="" title="Token#hidden (instance property)" data-id="token#hidden">hidden</a></li><li><a href="#Token.prototype.info" class="" title="Token#info (instance property)" data-id="token#info">info</a></li><li><a href="#Token.prototype.level" class="" title="Token#level (instance property)" data-id="token#level">level</a></li><li><a href="#Token.prototype.map" class="" title="Token#map (instance property)" data-id="token#map">map</a></li><li><a href="#Token.prototype.markup" class="" title="Token#markup (instance property)" data-id="token#markup">markup</a></li><li><a href="#Token.prototype.meta" class="" title="Token#meta (instance property)" data-id="token#meta">meta</a></li><li><a href="#Token.prototype.nesting" class="" title="Token#nesting (instance property)" data-id="token#nesting">nesting</a></li><li><a href="#Token.prototype.tag" class="" title="Token#tag (instance property)" data-id="token#tag">tag</a></li><li><a href="#Token.prototype.type" class="" title="Token#type (instance property)" data-id="token#type">type</a></li></ul></div></div></article><article class="docblock" id="Token.new" data-title="new Token (constructor)"><header><ul class="breadcrumbs"><li><a href="#home">Home</a></li><li><a href="#Token" class="" title="Token (class)" data-id="token">Token</a></li><li><a href="#Token.new" class="" title="new Token (constructor)" data-id="new token">new</a></li></ul><h2 title="constructor"><span class="name_prefix">Token.</span>new</h2><div class="source"><a href="https://github.com/markdown-it/markdown-it/blob/0fe7cc/lib/token.mjs#L12">View source</a></div></header><div class="section method"><div class="content"><ul class="signatures"><li><ul class="signature"><li class="signature-call">new Token(type, tag, nesting)</li></ul></li></ul><p>Create new token and fill passed properties.</p>
</div></div></article><article class="docblock" id="Token.attrGet" data-title="Token.attrGet (class method)"><header><ul class="breadcrumbs"><li><a href="#home">Home</a></li><li><a href="#Token" class="" title="Token (class)" data-id="token">Token</a></li><li><a href="#Token.attrGet" class="" title="Token.attrGet (class method)" data-id="token.attrget">attrGet</a></li></ul><h2 title="class method"><span class="name_prefix">Token.</span>attrGet</h2><div class="source"><a href="https://github.com/markdown-it/markdown-it/blob/0fe7cc/lib/token.mjs#L166">View source</a></div></header><div class="section method"><div class="content"><ul class="signatures"><li><ul class="signature"><li class="signature-call">Token.attrGet(name)</li></ul></li></ul><p>Get the value of attribute <code>name</code>, or null if it does not exist.</p>
</div></div></article><article class="docblock" id="Token.attrIndex" data-title="Token.attrIndex (class method)"><header><ul class="breadcrumbs"><li><a href="#home">Home</a></li><li><a href="#Token" class="" title="Token (class)" data-id="token">Token</a></li><li><a href="#Token.attrIndex" class="" title="Token.attrIndex (class method)" data-id="token.attrindex">attrIndex</a></li></ul><h2 title="class method"><span class="name_prefix">Token.</span>attrIndex</h2><div class="source"><a href="https://github.com/markdown-it/markdown-it/blob/0fe7cc/lib/token.mjs#L121">View source</a></div></header><div class="section method"><div class="content"><ul class="signatures"><li><ul class="signature"><li class="signature-call">Token.attrIndex(name)</li><li><ul class="signature-values"><li>Number</li></ul></li></ul></li></ul><p>Search attribute index by name.</p>
</div></div></article><article class="docblock" id="Token.attrJoin" data-title="Token.attrJoin (class method)"><header><ul class="breadcrumbs"><li><a href="#home">Home</a></li><li><a href="#Token" class="" title="Token (class)" data-id="token">Token</a></li><li><a href="#Token.attrJoin" class="" title="Token.attrJoin (class method)" data-id="token.attrjoin">attrJoin</a></li></ul><h2 title="class method"><span class="name_prefix">Token.</span>attrJoin</h2><div class="source"><a href="https://github.com/markdown-it/markdown-it/blob/0fe7cc/lib/token.mjs#L181">View source</a></div></header><div class="section method"><div class="content"><ul class="signatures"><li><ul class="signature"><li class="signature-call">Token.attrJoin(name, value)</li></ul></li></ul><p>Join value to existing attribute via space. Or create new attribute if not
exists. Useful to operate with token classes.</p>
</div></div></article><article class="docblock" id="Token.attrPush" data-title="Token.attrPush (class method)"><header><ul class="breadcrumbs"><li><a href="#home">Home</a></li><li><a href="#Token" class="" title="Token (class)" data-id="token">Token</a></li><li><a href="#Token.attrPush" class="" title="Token.attrPush (class method)" data-id="token.attrpush">attrPush</a></li></ul><h2 title="class method"><span class="name_prefix">Token.</span>attrPush</h2><div class="source"><a href="https://github.com/markdown-it/markdown-it/blob/0fe7cc/lib/token.mjs#L137">View source</a></div></header><div class="section method"><div class="content"><ul class="signatures"><li><ul class="signature"><li class="signature-call">Token.attrPush(attrData)</li></ul></li></ul><p>Add <code>[ name, value ]</code> attribute to list. Init attrs if necessary</p>
</div></div></article><article class="docblock" id="Token.attrSet" data-title="Token.attrSet (class method)"><header><ul class="breadcrumbs"><li><a href="#home">Home</a></li><li><a href="#Token" class="" title="Token (class)" data-id="token">Token</a></li><li><a href="#Token.attrSet" class="" title="Token.attrSet (class method)" data-id="token.attrset">attrSet</a></li></ul><h2 title="class method"><span class="name_prefix">Token.</span>attrSet</h2><div class="source"><a href="https://github.com/markdown-it/markdown-it/blob/0fe7cc/lib/token.mjs#L150">View source</a></div></header><div class="section method"><div class="content"><ul class="signatures"><li><ul class="signature"><li class="signature-call">Token.attrSet(name, value)</li></ul></li></ul><p>Set <code>name</code> attribute to <code>value</code>. Override old value if exists.</p>
</div></div></article><article class="docblock" id="Token.prototype.attrs" data-title="Token#attrs (instance property)"><header><ul class="breadcrumbs"><li><a href="#home">Home</a></li><li><a href="#Token" class="" title="Token (class)" data-id="token">Token</a></li><li><a href="#Token.prototype.attrs" class="" title="Token#attrs (instance property)" data-id="token#attrs">attrs</a></li></ul><h2 title="instance property"><span class="name_prefix">Token#</span>attrs</h2><div class="source"><a href="https://github.com/markdown-it/markdown-it/blob/0fe7cc/lib/token.mjs#L32">View source</a></div></header><div class="section method"><div class="content"><ul class="signatures"><li><ul class="signature"><li class="signature-call">Token#attrs</li><li><ul class="signature-values"><li>Array</li></ul></li></ul></li></ul><p>Html attributes. Format: <code>[ [ name1, value1 ], [ name2, value2 ] ]</code></p>
</div></div></article><article class="docblock" id="Token.prototype.block" data-title="Token#block (instance property)"><header><ul class="breadcrumbs"><li><a href="#home">Home</a></li><li><a href="#Token" class="" title="Token (class)" data-id="token">Token</a></li><li><a href="#Token.prototype.block" class="" title="Token#block (instance property)" data-id="token#block">block</a></li></ul><h2 title="instance property"><span class="name_prefix">Token#</span>block</h2><div class="source"><a href="https://github.com/markdown-it/markdown-it/blob/0fe7cc/lib/token.mjs#L105">View source</a></div></header><div class="section method"><div class="content"><ul class="signatures"><li><ul class="signature"><li class="signature-call">Token#block</li><li><ul class="signature-values"><li>Boolean</li></ul></li></ul></li></ul><p>True for block-level tokens, false for inline tokens.
Used in renderer to calculate line breaks</p>
</div></div></article><article class="docblock" id="Token.prototype.children" data-title="Token#children (instance property)"><header><ul class="breadcrumbs"><li><a href="#home">Home</a></li><li><a href="#Token" class="" title="Token (class)" data-id="token">Token</a></li><li><a href="#Token.prototype.children" class="" title="Token#children (instance property)" data-id="token#children">children</a></li></ul><h2 title="instance property"><span class="name_prefix">Token#</span>children</h2><div class="source"><a href="https://github.com/markdown-it/markdown-it/blob/0fe7cc/lib/token.mjs#L64">View source</a></div></header><div class="section method"><div class="content"><ul class="signatures"><li><ul class="signature"><li class="signature-call">Token#children</li><li><ul class="signature-values"><li>Array</li></ul></li></ul></li></ul><p>An array of child nodes (inline and img tokens)</p>
</div></div></article><article class="docblock" id="Token.prototype.content" data-title="Token#content (instance property)"><header><ul class="breadcrumbs"><li><a href="#home">Home</a></li><li><a href="#Token" class="" title="Token (class)" data-id="token">Token</a></li><li><a href="#Token.prototype.content" class="" title="Token#content (instance property)" data-id="token#content">content</a></li></ul><h2 title="instance property"><span class="name_prefix">Token#</span>content</h2><div class="source"><a href="https://github.com/markdown-it/markdown-it/blob/0fe7cc/lib/token.mjs#L72">View source</a></div></header><div class="section method"><div class="content"><ul class="signatures"><li><ul class="signature"><li class="signature-call">Token#content</li><li><ul class="signature-values"><li>String</li></ul></li></ul></li></ul><p>In a case of self-closing tag (code, html, fence, etc.),
it has contents of this tag.</p>
</div></div></article><article class="docblock" id="Token.prototype.hidden" data-title="Token#hidden (instance property)"><header><ul class="breadcrumbs"><li><a href="#home">Home</a></li><li><a href="#Token" class="" title="Token (class)" data-id="token">Token</a></li><li><a href="#Token.prototype.hidden" class="" title="Token#hidden (instance property)" data-id="token#hidden">hidden</a></li></ul><h2 title="instance property"><span class="name_prefix">Token#</span>hidden</h2><div class="source"><a href="https://github.com/markdown-it/markdown-it/blob/0fe7cc/lib/token.mjs#L113">View source</a></div></header><div class="section method"><div class="content"><ul class="signatures"><li><ul class="signature"><li class="signature-call">Token#hidden</li><li><ul class="signature-values"><li>Boolean</li></ul></li></ul></li></ul><p>If it's true, ignore this element when rendering. Used for tight lists
to hide paragraphs.</p>
</div></div></article><article class="docblock" id="Token.prototype.info" data-title="Token#info (instance property)"><header><ul class="breadcrumbs"><li><a href="#home">Home</a></li><li><a href="#Token" class="" title="Token (class)" data-id="token">Token</a></li><li><a href="#Token.prototype.info" class="" title="Token#info (instance property)" data-id="token#info">info</a></li></ul><h2 title="instance property"><span class="name_prefix">Token#</span>info</h2><div class="source"><a href="https://github.com/markdown-it/markdown-it/blob/0fe7cc/lib/token.mjs#L90">View source</a></div></header><div class="section method"><div class="content"><ul class="signatures"><li><ul class="signature"><li class="signature-call">Token#info</li><li><ul class="signature-values"><li>String</li></ul></li></ul></li></ul><p>Additional information:</p>
<ul>
<li>Info string for &quot;fence&quot; tokens</li>
<li>The value &quot;auto&quot; for autolink &quot;link_open&quot; and &quot;link_close&quot; tokens</li>
<li>The string value of the item marker for ordered-list &quot;list_item_open&quot; tokens</li>
</ul>
</div></div></article><article class="docblock" id="Token.prototype.level" data-title="Token#level (instance property)"><header><ul class="breadcrumbs"><li><a href="#home">Home</a></li><li><a href="#Token" class="" title="Token (class)" data-id="token">Token</a></li><li><a href="#Token.prototype.level" class="" title="Token#level (instance property)" data-id="token#level">level</a></li></ul><h2 title="instance property"><span class="name_prefix">Token#</span>level</h2><div class="source"><a href="https://github.com/markdown-it/markdown-it/blob/0fe7cc/lib/token.mjs#L57">View source</a></div></header><div class="section method"><div class="content"><ul class="signatures"><li><ul class="signature"><li class="signature-call">Token#level</li><li><ul class="signature-values"><li>Number</li></ul></li></ul></li></ul><p>nesting level, the same as <code>state.level</code></p>
</div></div></article><article class="docblock" id="Token.prototype.map" data-title="Token#map (instance property)"><header><ul class="breadcrumbs"><li><a href="#home">Home</a></li><li><a href="#Token" class="" title="Token (class)" data-id="token">Token</a></li><li><a href="#Token.prototype.map" class="" title="Token#map (instance property)" data-id="token#map">map</a></li></ul><h2 title="instance property"><span class="name_prefix">Token#</span>map</h2><div class="source"><a href="https://github.com/markdown-it/markdown-it/blob/0fe7cc/lib/token.mjs#L39">View source</a></div></header><div class="section method"><div class="content"><ul class="signatures"><li><ul class="signature"><li class="signature-call">Token#map</li><li><ul class="signature-values"><li>Array</li></ul></li></ul></li></ul><p>Source map info. Format: <code>[ line_begin, line_end ]</code></p>
</div></div></article><article class="docblock" id="Token.prototype.markup" data-title="Token#markup (instance property)"><header><ul class="breadcrumbs"><li><a href="#home">Home</a></li><li><a href="#Token" class="" title="Token (class)" data-id="token">Token</a></li><li><a href="#Token.prototype.markup" class="" title="Token#markup (instance property)" data-id="token#markup">markup</a></li></ul><h2 title="instance property"><span class="name_prefix">Token#</span>markup</h2><div class="source"><a href="https://github.com/markdown-it/markdown-it/blob/0fe7cc/lib/token.mjs#L79">View source</a></div></header><div class="section method"><div class="content"><ul class="signatures"><li><ul class="signature"><li class="signature-call">Token#markup</li><li><ul class="signature-values"><li>String</li></ul></li></ul></li></ul><p>'*' or '_' for emphasis, fence string for fence, etc.</p>
</div></div></article><article class="docblock" id="Token.prototype.meta" data-title="Token#meta (instance property)"><header><ul class="breadcrumbs"><li><a href="#home">Home</a></li><li><a href="#Token" class="" title="Token (class)" data-id="token">Token</a></li><li><a href="#Token.prototype.meta" class="" title="Token#meta (instance property)" data-id="token#meta">meta</a></li></ul><h2 title="instance property"><span class="name_prefix">Token#</span>meta</h2><div class="source"><a href="https://github.com/markdown-it/markdown-it/blob/0fe7cc/lib/token.mjs#L97">View source</a></div></header><div class="section method"><div class="content"><ul class="signatures"><li><ul class="signature"><li class="signature-call">Token#meta</li><li><ul class="signature-values"><li>Object</li></ul></li></ul></li></ul><p>A place for plugins to store an arbitrary data</p>
</div></div></article><article class="docblock" id="Token.prototype.nesting" data-title="Token#nesting (instance property)"><header><ul class="breadcrumbs"><li><a href="#home">Home</a></li><li><a href="#Token" class="" title="Token (class)" data-id="token">Token</a></li><li><a href="#Token.prototype.nesting" class="" title="Token#nesting (instance property)" data-id="token#nesting">nesting</a></li></ul><h2 title="instance property"><span class="name_prefix">Token#</span>nesting</h2><div class="source"><a href="https://github.com/markdown-it/markdown-it/blob/0fe7cc/lib/token.mjs#L50">View source</a></div></header><div class="section method"><div class="content"><ul class="signatures"><li><ul class="signature"><li class="signature-call">Token#nesting</li><li><ul class="signature-values"><li>Number</li></ul></li></ul></li></ul><p>Level change (number in {-1, 0, 1} set), where:</p>
<ul>
<li><code>1</code> means the tag is opening</li>
<li><code>0</code> means the tag is self-closing</li>
<li><code>-1</code> means the tag is closing</li>
</ul>
</div></div></article><article class="docblock" id="Token.prototype.tag" data-title="Token#tag (instance property)"><header><ul class="breadcrumbs"><li><a href="#home">Home</a></li><li><a href="#Token" class="" title="Token (class)" data-id="token">Token</a></li><li><a href="#Token.prototype.tag" class="" title="Token#tag (instance property)" data-id="token#tag">tag</a></li></ul><h2 title="instance property"><span class="name_prefix">Token#</span>tag</h2><div class="source"><a href="https://github.com/markdown-it/markdown-it/blob/0fe7cc/lib/token.mjs#L25">View source</a></div></header><div class="section method"><div class="content"><ul class="signatures"><li><ul class="signature"><li class="signature-call">Token#tag</li><li><ul class="signature-values"><li>String</li></ul></li></ul></li></ul><p>html tag name, e.g. &quot;p&quot;</p>
</div></div></article><article class="docblock" id="Token.prototype.type" data-title="Token#type (instance property)"><header><ul class="breadcrumbs"><li><a href="#home">Home</a></li><li><a href="#Token" class="" title="Token (class)" data-id="token">Token</a></li><li><a href="#Token.prototype.type" class="" title="Token#type (instance property)" data-id="token#type">type</a></li></ul><h2 title="instance property"><span class="name_prefix">Token#</span>type</h2><div class="source"><a href="https://github.com/markdown-it/markdown-it/blob/0fe7cc/lib/token.mjs#L18">View source</a></div></header><div class="section method"><div class="content"><ul class="signatures"><li><ul class="signature"><li class="signature-call">Token#type</li><li><ul class="signature-values"><li>String</li></ul></li></ul></li></ul><p>Type of the token (string, e.g. &quot;paragraph_open&quot;)</p>
</div></div></article><footer class="footer"><p>Last updated on Mon, 18 Mar 2024 23:17:43 GMT. Generated by <a href="http://github.com/nodeca/ndoc">ndoc</a></p></footer></div></body></html>