corner.py — corner.py.html 88 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179
  1. <!DOCTYPE html>
  2. <!-- saved from url=(0040)https://corner.readthedocs.io/en/latest/ -->
  3. <html lang="en" data-content_root="./" data-mode="auto" data-theme="light" class="fontawesome-i2svg-active fontawesome-i2svg-complete" data-readthedocs-tool="sphinx"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  4. <meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="viewport" content="width=device-width, initial-scale=1">
  5. <title>corner.py — corner.py</title>
  6. <script data-cfasync="false">
  7. document.documentElement.dataset.mode = localStorage.getItem("mode") || "";
  8. document.documentElement.dataset.theme = localStorage.getItem("theme") || "";
  9. </script>
  10. <!-- Loaded before other Sphinx assets -->
  11. <style type="text/css">:root, :host {
  12. --fa-font-solid: normal 900 1em/1 "Font Awesome 6 Free";
  13. --fa-font-regular: normal 400 1em/1 "Font Awesome 6 Free";
  14. --fa-font-light: normal 300 1em/1 "Font Awesome 6 Pro";
  15. --fa-font-thin: normal 100 1em/1 "Font Awesome 6 Pro";
  16. --fa-font-duotone: normal 900 1em/1 "Font Awesome 6 Duotone";
  17. --fa-font-duotone-regular: normal 400 1em/1 "Font Awesome 6 Duotone";
  18. --fa-font-duotone-light: normal 300 1em/1 "Font Awesome 6 Duotone";
  19. --fa-font-duotone-thin: normal 100 1em/1 "Font Awesome 6 Duotone";
  20. --fa-font-brands: normal 400 1em/1 "Font Awesome 6 Brands";
  21. --fa-font-sharp-solid: normal 900 1em/1 "Font Awesome 6 Sharp";
  22. --fa-font-sharp-regular: normal 400 1em/1 "Font Awesome 6 Sharp";
  23. --fa-font-sharp-light: normal 300 1em/1 "Font Awesome 6 Sharp";
  24. --fa-font-sharp-thin: normal 100 1em/1 "Font Awesome 6 Sharp";
  25. --fa-font-sharp-duotone-solid: normal 900 1em/1 "Font Awesome 6 Sharp Duotone";
  26. --fa-font-sharp-duotone-regular: normal 400 1em/1 "Font Awesome 6 Sharp Duotone";
  27. --fa-font-sharp-duotone-light: normal 300 1em/1 "Font Awesome 6 Sharp Duotone";
  28. --fa-font-sharp-duotone-thin: normal 100 1em/1 "Font Awesome 6 Sharp Duotone";
  29. }
  30. svg:not(:root).svg-inline--fa, svg:not(:host).svg-inline--fa {
  31. overflow: visible;
  32. box-sizing: content-box;
  33. }
  34. .svg-inline--fa {
  35. display: var(--fa-display, inline-block);
  36. height: 1em;
  37. overflow: visible;
  38. vertical-align: -0.125em;
  39. }
  40. .svg-inline--fa.fa-2xs {
  41. vertical-align: 0.1em;
  42. }
  43. .svg-inline--fa.fa-xs {
  44. vertical-align: 0em;
  45. }
  46. .svg-inline--fa.fa-sm {
  47. vertical-align: -0.0714285705em;
  48. }
  49. .svg-inline--fa.fa-lg {
  50. vertical-align: -0.2em;
  51. }
  52. .svg-inline--fa.fa-xl {
  53. vertical-align: -0.25em;
  54. }
  55. .svg-inline--fa.fa-2xl {
  56. vertical-align: -0.3125em;
  57. }
  58. .svg-inline--fa.fa-pull-left {
  59. margin-right: var(--fa-pull-margin, 0.3em);
  60. width: auto;
  61. }
  62. .svg-inline--fa.fa-pull-right {
  63. margin-left: var(--fa-pull-margin, 0.3em);
  64. width: auto;
  65. }
  66. .svg-inline--fa.fa-li {
  67. width: var(--fa-li-width, 2em);
  68. top: 0.25em;
  69. }
  70. .svg-inline--fa.fa-fw {
  71. width: var(--fa-fw-width, 1.25em);
  72. }
  73. .fa-layers svg.svg-inline--fa {
  74. bottom: 0;
  75. left: 0;
  76. margin: auto;
  77. position: absolute;
  78. right: 0;
  79. top: 0;
  80. }
  81. .fa-layers-counter, .fa-layers-text {
  82. display: inline-block;
  83. position: absolute;
  84. text-align: center;
  85. }
  86. .fa-layers {
  87. display: inline-block;
  88. height: 1em;
  89. position: relative;
  90. text-align: center;
  91. vertical-align: -0.125em;
  92. width: 1em;
  93. }
  94. .fa-layers svg.svg-inline--fa {
  95. transform-origin: center center;
  96. }
  97. .fa-layers-text {
  98. left: 50%;
  99. top: 50%;
  100. transform: translate(-50%, -50%);
  101. transform-origin: center center;
  102. }
  103. .fa-layers-counter {
  104. background-color: var(--fa-counter-background-color, #ff253a);
  105. border-radius: var(--fa-counter-border-radius, 1em);
  106. box-sizing: border-box;
  107. color: var(--fa-inverse, #fff);
  108. line-height: var(--fa-counter-line-height, 1);
  109. max-width: var(--fa-counter-max-width, 5em);
  110. min-width: var(--fa-counter-min-width, 1.5em);
  111. overflow: hidden;
  112. padding: var(--fa-counter-padding, 0.25em 0.5em);
  113. right: var(--fa-right, 0);
  114. text-overflow: ellipsis;
  115. top: var(--fa-top, 0);
  116. transform: scale(var(--fa-counter-scale, 0.25));
  117. transform-origin: top right;
  118. }
  119. .fa-layers-bottom-right {
  120. bottom: var(--fa-bottom, 0);
  121. right: var(--fa-right, 0);
  122. top: auto;
  123. transform: scale(var(--fa-layers-scale, 0.25));
  124. transform-origin: bottom right;
  125. }
  126. .fa-layers-bottom-left {
  127. bottom: var(--fa-bottom, 0);
  128. left: var(--fa-left, 0);
  129. right: auto;
  130. top: auto;
  131. transform: scale(var(--fa-layers-scale, 0.25));
  132. transform-origin: bottom left;
  133. }
  134. .fa-layers-top-right {
  135. top: var(--fa-top, 0);
  136. right: var(--fa-right, 0);
  137. transform: scale(var(--fa-layers-scale, 0.25));
  138. transform-origin: top right;
  139. }
  140. .fa-layers-top-left {
  141. left: var(--fa-left, 0);
  142. right: auto;
  143. top: var(--fa-top, 0);
  144. transform: scale(var(--fa-layers-scale, 0.25));
  145. transform-origin: top left;
  146. }
  147. .fa-1x {
  148. font-size: 1em;
  149. }
  150. .fa-2x {
  151. font-size: 2em;
  152. }
  153. .fa-3x {
  154. font-size: 3em;
  155. }
  156. .fa-4x {
  157. font-size: 4em;
  158. }
  159. .fa-5x {
  160. font-size: 5em;
  161. }
  162. .fa-6x {
  163. font-size: 6em;
  164. }
  165. .fa-7x {
  166. font-size: 7em;
  167. }
  168. .fa-8x {
  169. font-size: 8em;
  170. }
  171. .fa-9x {
  172. font-size: 9em;
  173. }
  174. .fa-10x {
  175. font-size: 10em;
  176. }
  177. .fa-2xs {
  178. font-size: 0.625em;
  179. line-height: 0.1em;
  180. vertical-align: 0.225em;
  181. }
  182. .fa-xs {
  183. font-size: 0.75em;
  184. line-height: 0.0833333337em;
  185. vertical-align: 0.125em;
  186. }
  187. .fa-sm {
  188. font-size: 0.875em;
  189. line-height: 0.0714285718em;
  190. vertical-align: 0.0535714295em;
  191. }
  192. .fa-lg {
  193. font-size: 1.25em;
  194. line-height: 0.05em;
  195. vertical-align: -0.075em;
  196. }
  197. .fa-xl {
  198. font-size: 1.5em;
  199. line-height: 0.0416666682em;
  200. vertical-align: -0.125em;
  201. }
  202. .fa-2xl {
  203. font-size: 2em;
  204. line-height: 0.03125em;
  205. vertical-align: -0.1875em;
  206. }
  207. .fa-fw {
  208. text-align: center;
  209. width: 1.25em;
  210. }
  211. .fa-ul {
  212. list-style-type: none;
  213. margin-left: var(--fa-li-margin, 2.5em);
  214. padding-left: 0;
  215. }
  216. .fa-ul > li {
  217. position: relative;
  218. }
  219. .fa-li {
  220. left: calc(-1 * var(--fa-li-width, 2em));
  221. position: absolute;
  222. text-align: center;
  223. width: var(--fa-li-width, 2em);
  224. line-height: inherit;
  225. }
  226. .fa-border {
  227. border-color: var(--fa-border-color, #eee);
  228. border-radius: var(--fa-border-radius, 0.1em);
  229. border-style: var(--fa-border-style, solid);
  230. border-width: var(--fa-border-width, 0.08em);
  231. padding: var(--fa-border-padding, 0.2em 0.25em 0.15em);
  232. }
  233. .fa-pull-left {
  234. float: left;
  235. margin-right: var(--fa-pull-margin, 0.3em);
  236. }
  237. .fa-pull-right {
  238. float: right;
  239. margin-left: var(--fa-pull-margin, 0.3em);
  240. }
  241. .fa-beat {
  242. animation-name: fa-beat;
  243. animation-delay: var(--fa-animation-delay, 0s);
  244. animation-direction: var(--fa-animation-direction, normal);
  245. animation-duration: var(--fa-animation-duration, 1s);
  246. animation-iteration-count: var(--fa-animation-iteration-count, infinite);
  247. animation-timing-function: var(--fa-animation-timing, ease-in-out);
  248. }
  249. .fa-bounce {
  250. animation-name: fa-bounce;
  251. animation-delay: var(--fa-animation-delay, 0s);
  252. animation-direction: var(--fa-animation-direction, normal);
  253. animation-duration: var(--fa-animation-duration, 1s);
  254. animation-iteration-count: var(--fa-animation-iteration-count, infinite);
  255. animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));
  256. }
  257. .fa-fade {
  258. animation-name: fa-fade;
  259. animation-delay: var(--fa-animation-delay, 0s);
  260. animation-direction: var(--fa-animation-direction, normal);
  261. animation-duration: var(--fa-animation-duration, 1s);
  262. animation-iteration-count: var(--fa-animation-iteration-count, infinite);
  263. animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));
  264. }
  265. .fa-beat-fade {
  266. animation-name: fa-beat-fade;
  267. animation-delay: var(--fa-animation-delay, 0s);
  268. animation-direction: var(--fa-animation-direction, normal);
  269. animation-duration: var(--fa-animation-duration, 1s);
  270. animation-iteration-count: var(--fa-animation-iteration-count, infinite);
  271. animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));
  272. }
  273. .fa-flip {
  274. animation-name: fa-flip;
  275. animation-delay: var(--fa-animation-delay, 0s);
  276. animation-direction: var(--fa-animation-direction, normal);
  277. animation-duration: var(--fa-animation-duration, 1s);
  278. animation-iteration-count: var(--fa-animation-iteration-count, infinite);
  279. animation-timing-function: var(--fa-animation-timing, ease-in-out);
  280. }
  281. .fa-shake {
  282. animation-name: fa-shake;
  283. animation-delay: var(--fa-animation-delay, 0s);
  284. animation-direction: var(--fa-animation-direction, normal);
  285. animation-duration: var(--fa-animation-duration, 1s);
  286. animation-iteration-count: var(--fa-animation-iteration-count, infinite);
  287. animation-timing-function: var(--fa-animation-timing, linear);
  288. }
  289. .fa-spin {
  290. animation-name: fa-spin;
  291. animation-delay: var(--fa-animation-delay, 0s);
  292. animation-direction: var(--fa-animation-direction, normal);
  293. animation-duration: var(--fa-animation-duration, 2s);
  294. animation-iteration-count: var(--fa-animation-iteration-count, infinite);
  295. animation-timing-function: var(--fa-animation-timing, linear);
  296. }
  297. .fa-spin-reverse {
  298. --fa-animation-direction: reverse;
  299. }
  300. .fa-pulse,
  301. .fa-spin-pulse {
  302. animation-name: fa-spin;
  303. animation-direction: var(--fa-animation-direction, normal);
  304. animation-duration: var(--fa-animation-duration, 1s);
  305. animation-iteration-count: var(--fa-animation-iteration-count, infinite);
  306. animation-timing-function: var(--fa-animation-timing, steps(8));
  307. }
  308. @media (prefers-reduced-motion: reduce) {
  309. .fa-beat,
  310. .fa-bounce,
  311. .fa-fade,
  312. .fa-beat-fade,
  313. .fa-flip,
  314. .fa-pulse,
  315. .fa-shake,
  316. .fa-spin,
  317. .fa-spin-pulse {
  318. animation-delay: -1ms;
  319. animation-duration: 1ms;
  320. animation-iteration-count: 1;
  321. transition-delay: 0s;
  322. transition-duration: 0s;
  323. }
  324. }
  325. @keyframes fa-beat {
  326. 0%, 90% {
  327. transform: scale(1);
  328. }
  329. 45% {
  330. transform: scale(var(--fa-beat-scale, 1.25));
  331. }
  332. }
  333. @keyframes fa-bounce {
  334. 0% {
  335. transform: scale(1, 1) translateY(0);
  336. }
  337. 10% {
  338. transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);
  339. }
  340. 30% {
  341. transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));
  342. }
  343. 50% {
  344. transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);
  345. }
  346. 57% {
  347. transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));
  348. }
  349. 64% {
  350. transform: scale(1, 1) translateY(0);
  351. }
  352. 100% {
  353. transform: scale(1, 1) translateY(0);
  354. }
  355. }
  356. @keyframes fa-fade {
  357. 50% {
  358. opacity: var(--fa-fade-opacity, 0.4);
  359. }
  360. }
  361. @keyframes fa-beat-fade {
  362. 0%, 100% {
  363. opacity: var(--fa-beat-fade-opacity, 0.4);
  364. transform: scale(1);
  365. }
  366. 50% {
  367. opacity: 1;
  368. transform: scale(var(--fa-beat-fade-scale, 1.125));
  369. }
  370. }
  371. @keyframes fa-flip {
  372. 50% {
  373. transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));
  374. }
  375. }
  376. @keyframes fa-shake {
  377. 0% {
  378. transform: rotate(-15deg);
  379. }
  380. 4% {
  381. transform: rotate(15deg);
  382. }
  383. 8%, 24% {
  384. transform: rotate(-18deg);
  385. }
  386. 12%, 28% {
  387. transform: rotate(18deg);
  388. }
  389. 16% {
  390. transform: rotate(-22deg);
  391. }
  392. 20% {
  393. transform: rotate(22deg);
  394. }
  395. 32% {
  396. transform: rotate(-12deg);
  397. }
  398. 36% {
  399. transform: rotate(12deg);
  400. }
  401. 40%, 100% {
  402. transform: rotate(0deg);
  403. }
  404. }
  405. @keyframes fa-spin {
  406. 0% {
  407. transform: rotate(0deg);
  408. }
  409. 100% {
  410. transform: rotate(360deg);
  411. }
  412. }
  413. .fa-rotate-90 {
  414. transform: rotate(90deg);
  415. }
  416. .fa-rotate-180 {
  417. transform: rotate(180deg);
  418. }
  419. .fa-rotate-270 {
  420. transform: rotate(270deg);
  421. }
  422. .fa-flip-horizontal {
  423. transform: scale(-1, 1);
  424. }
  425. .fa-flip-vertical {
  426. transform: scale(1, -1);
  427. }
  428. .fa-flip-both,
  429. .fa-flip-horizontal.fa-flip-vertical {
  430. transform: scale(-1, -1);
  431. }
  432. .fa-rotate-by {
  433. transform: rotate(var(--fa-rotate-angle, 0));
  434. }
  435. .fa-stack {
  436. display: inline-block;
  437. vertical-align: middle;
  438. height: 2em;
  439. position: relative;
  440. width: 2.5em;
  441. }
  442. .fa-stack-1x,
  443. .fa-stack-2x {
  444. bottom: 0;
  445. left: 0;
  446. margin: auto;
  447. position: absolute;
  448. right: 0;
  449. top: 0;
  450. z-index: var(--fa-stack-z-index, auto);
  451. }
  452. .svg-inline--fa.fa-stack-1x {
  453. height: 1em;
  454. width: 1.25em;
  455. }
  456. .svg-inline--fa.fa-stack-2x {
  457. height: 2em;
  458. width: 2.5em;
  459. }
  460. .fa-inverse {
  461. color: var(--fa-inverse, #fff);
  462. }
  463. .sr-only,
  464. .fa-sr-only {
  465. position: absolute;
  466. width: 1px;
  467. height: 1px;
  468. padding: 0;
  469. margin: -1px;
  470. overflow: hidden;
  471. clip: rect(0, 0, 0, 0);
  472. white-space: nowrap;
  473. border-width: 0;
  474. }
  475. .sr-only-focusable:not(:focus),
  476. .fa-sr-only-focusable:not(:focus) {
  477. position: absolute;
  478. width: 1px;
  479. height: 1px;
  480. padding: 0;
  481. margin: -1px;
  482. overflow: hidden;
  483. clip: rect(0, 0, 0, 0);
  484. white-space: nowrap;
  485. border-width: 0;
  486. }
  487. .svg-inline--fa .fa-primary {
  488. fill: var(--fa-primary-color, currentColor);
  489. opacity: var(--fa-primary-opacity, 1);
  490. }
  491. .svg-inline--fa .fa-secondary {
  492. fill: var(--fa-secondary-color, currentColor);
  493. opacity: var(--fa-secondary-opacity, 0.4);
  494. }
  495. .svg-inline--fa.fa-swap-opacity .fa-primary {
  496. opacity: var(--fa-secondary-opacity, 0.4);
  497. }
  498. .svg-inline--fa.fa-swap-opacity .fa-secondary {
  499. opacity: var(--fa-primary-opacity, 1);
  500. }
  501. .svg-inline--fa mask .fa-primary,
  502. .svg-inline--fa mask .fa-secondary {
  503. fill: black;
  504. }</style><style type="text/css">:host,:root{--fa-font-solid:normal 900 1em/1 "Font Awesome 6 Solid";--fa-font-regular:normal 400 1em/1 "Font Awesome 6 Regular";--fa-font-light:normal 300 1em/1 "Font Awesome 6 Light";--fa-font-thin:normal 100 1em/1 "Font Awesome 6 Thin";--fa-font-duotone:normal 900 1em/1 "Font Awesome 6 Duotone";--fa-font-sharp-solid:normal 900 1em/1 "Font Awesome 6 Sharp";--fa-font-sharp-regular:normal 400 1em/1 "Font Awesome 6 Sharp";--fa-font-sharp-light:normal 300 1em/1 "Font Awesome 6 Sharp";--fa-font-sharp-thin:normal 100 1em/1 "Font Awesome 6 Sharp";--fa-font-brands:normal 400 1em/1 "Font Awesome 6 Brands"}svg:not(:host).svg-inline--fa,svg:not(:root).svg-inline--fa{overflow:visible;box-sizing:content-box}.svg-inline--fa{display:var(--fa-display,inline-block);height:1em;overflow:visible;vertical-align:-.125em}.svg-inline--fa.fa-2xs{vertical-align:.1em}.svg-inline--fa.fa-xs{vertical-align:0}.svg-inline--fa.fa-sm{vertical-align:-.0714285705em}.svg-inline--fa.fa-lg{vertical-align:-.2em}.svg-inline--fa.fa-xl{vertical-align:-.25em}.svg-inline--fa.fa-2xl{vertical-align:-.3125em}.svg-inline--fa.fa-pull-left{margin-right:var(--fa-pull-margin,.3em);width:auto}.svg-inline--fa.fa-pull-right{margin-left:var(--fa-pull-margin,.3em);width:auto}.svg-inline--fa.fa-li{width:var(--fa-li-width,2em);top:.25em}.svg-inline--fa.fa-fw{width:var(--fa-fw-width,1.25em)}.fa-layers svg.svg-inline--fa{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.fa-layers-counter,.fa-layers-text{display:inline-block;position:absolute;text-align:center}.fa-layers{display:inline-block;height:1em;position:relative;text-align:center;vertical-align:-.125em;width:1em}.fa-layers svg.svg-inline--fa{-webkit-transform-origin:center center;transform-origin:center center}.fa-layers-text{left:50%;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);-webkit-transform-origin:center center;transform-origin:center center}.fa-layers-counter{background-color:var(--fa-counter-background-color,#ff253a);border-radius:var(--fa-counter-border-radius,1em);box-sizing:border-box;color:var(--fa-inverse,#fff);line-height:var(--fa-counter-line-height,1);max-width:var(--fa-counter-max-width,5em);min-width:var(--fa-counter-min-width,1.5em);overflow:hidden;padding:var(--fa-counter-padding,.25em .5em);right:var(--fa-right,0);text-overflow:ellipsis;top:var(--fa-top,0);-webkit-transform:scale(var(--fa-counter-scale,.25));transform:scale(var(--fa-counter-scale,.25));-webkit-transform-origin:top right;transform-origin:top right}.fa-layers-bottom-right{bottom:var(--fa-bottom,0);right:var(--fa-right,0);top:auto;-webkit-transform:scale(var(--fa-layers-scale,.25));transform:scale(var(--fa-layers-scale,.25));-webkit-transform-origin:bottom right;transform-origin:bottom right}.fa-layers-bottom-left{bottom:var(--fa-bottom,0);left:var(--fa-left,0);right:auto;top:auto;-webkit-transform:scale(var(--fa-layers-scale,.25));transform:scale(var(--fa-layers-scale,.25));-webkit-transform-origin:bottom left;transform-origin:bottom left}.fa-layers-top-right{top:var(--fa-top,0);right:var(--fa-right,0);-webkit-transform:scale(var(--fa-layers-scale,.25));transform:scale(var(--fa-layers-scale,.25));-webkit-transform-origin:top right;transform-origin:top right}.fa-layers-top-left{left:var(--fa-left,0);right:auto;top:var(--fa-top,0);-webkit-transform:scale(var(--fa-layers-scale,.25));transform:scale(var(--fa-layers-scale,.25));-webkit-transform-origin:top left;transform-origin:top left}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{font-size:.625em;line-height:.1em;vertical-align:.225em}.fa-xs{font-size:.75em;line-height:.0833333337em;vertical-align:.125em}.fa-sm{font-size:.875em;line-height:.0714285718em;vertical-align:.0535714295em}.fa-lg{font-size:1.25em;line-height:.05em;vertical-align:-.075em}.fa-xl{font-size:1.5em;line-height:.0416666682em;vertical-align:-.125em}.fa-2xl{font-size:2em;line-height:.03125em;vertical-align:-.1875em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:var(--fa-li-margin,2.5em);padding-left:0}.fa-ul>li{position:relative}.fa-li{left:calc(var(--fa-li-width,2em) * -1);position:absolute;text-align:center;width:var(--fa-li-width,2em);line-height:inherit}.fa-border{border-color:var(--fa-border-color,#eee);border-radius:var(--fa-border-radius,.1em);border-style:var(--fa-border-style,solid);border-width:var(--fa-border-width,.08em);padding:var(--fa-border-padding,.2em .25em .15em)}.fa-pull-left{float:left;margin-right:var(--fa-pull-margin,.3em)}.fa-pull-right{float:right;margin-left:var(--fa-pull-margin,.3em)}.fa-beat{-webkit-animation-name:fa-beat;animation-name:fa-beat;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-bounce{-webkit-animation-name:fa-bounce;animation-name:fa-bounce;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1))}.fa-fade{-webkit-animation-name:fa-fade;animation-name:fa-fade;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-beat-fade{-webkit-animation-name:fa-beat-fade;animation-name:fa-beat-fade;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-flip{-webkit-animation-name:fa-flip;animation-name:fa-flip;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-shake{-webkit-animation-name:fa-shake;animation-name:fa-shake;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,2s);animation-duration:var(--fa-animation-duration,2s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin-reverse{--fa-animation-direction:reverse}.fa-pulse,.fa-spin-pulse{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,steps(8));animation-timing-function:var(--fa-animation-timing,steps(8))}@media (prefers-reduced-motion:reduce){.fa-beat,.fa-beat-fade,.fa-bounce,.fa-fade,.fa-flip,.fa-pulse,.fa-shake,.fa-spin,.fa-spin-pulse{-webkit-animation-delay:-1ms;animation-delay:-1ms;-webkit-animation-duration:1ms;animation-duration:1ms;-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-transition-delay:0s;transition-delay:0s;-webkit-transition-duration:0s;transition-duration:0s}}@-webkit-keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@-webkit-keyframes fa-bounce{0%{-webkit-transform:scale(1,1) translateY(0);transform:scale(1,1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1,1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1,1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1,1) translateY(0);transform:scale(1,1) translateY(0)}100%{-webkit-transform:scale(1,1) translateY(0);transform:scale(1,1) translateY(0)}}@keyframes fa-bounce{0%{-webkit-transform:scale(1,1) translateY(0);transform:scale(1,1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1,1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1,1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1,1) translateY(0);transform:scale(1,1) translateY(0)}100%{-webkit-transform:scale(1,1) translateY(0);transform:scale(1,1) translateY(0)}}@-webkit-keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@-webkit-keyframes fa-beat-fade{0%,100%{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@keyframes fa-beat-fade{0%,100%{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@-webkit-keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@-webkit-keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}24%,8%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}100%,40%{-webkit-transform:rotate(0);transform:rotate(0)}}@keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}24%,8%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}100%,40%{-webkit-transform:rotate(0);transform:rotate(0)}}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.fa-rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-webkit-transform:scale(-1,1);transform:scale(-1,1)}.fa-flip-vertical{-webkit-transform:scale(1,-1);transform:scale(1,-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1,-1);transform:scale(-1,-1)}.fa-rotate-by{-webkit-transform:rotate(var(--fa-rotate-angle,0));transform:rotate(var(--fa-rotate-angle,0))}.fa-stack{display:inline-block;vertical-align:middle;height:2em;position:relative;width:2.5em}.fa-stack-1x,.fa-stack-2x{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0;z-index:var(--fa-stack-z-index,auto)}.svg-inline--fa.fa-stack-1x{height:1em;width:1.25em}.svg-inline--fa.fa-stack-2x{height:2em;width:2.5em}.fa-inverse{color:var(--fa-inverse,#fff)}.fa-sr-only,.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.fa-sr-only-focusable:not(:focus),.sr-only-focusable:not(:focus){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.svg-inline--fa .fa-primary{fill:var(--fa-primary-color,currentColor);opacity:var(--fa-primary-opacity,1)}.svg-inline--fa .fa-secondary{fill:var(--fa-secondary-color,currentColor);opacity:var(--fa-secondary-opacity,.4)}.svg-inline--fa.fa-swap-opacity .fa-primary{opacity:var(--fa-secondary-opacity,.4)}.svg-inline--fa.fa-swap-opacity .fa-secondary{opacity:var(--fa-primary-opacity,1)}.svg-inline--fa mask .fa-primary,.svg-inline--fa mask .fa-secondary{fill:#000}.fa-duotone.fa-inverse,.fad.fa-inverse{color:var(--fa-inverse,#fff)}</style><link href="./corner.py — corner.py_files/theme.css" rel="stylesheet">
  505. <link href="./corner.py — corner.py_files/bootstrap.css" rel="stylesheet">
  506. <link href="./corner.py — corner.py_files/pydata-sphinx-theme.css" rel="stylesheet">
  507. <link href="./corner.py — corner.py_files/all.min.css" rel="stylesheet">
  508. <link rel="preload" as="font" type="font/woff2" crossorigin="" href="https://corner.readthedocs.io/en/latest/_static/vendor/fontawesome/6.5.2/webfonts/fa-solid-900.woff2">
  509. <link rel="preload" as="font" type="font/woff2" crossorigin="" href="https://corner.readthedocs.io/en/latest/_static/vendor/fontawesome/6.5.2/webfonts/fa-brands-400.woff2">
  510. <link rel="preload" as="font" type="font/woff2" crossorigin="" href="https://corner.readthedocs.io/en/latest/_static/vendor/fontawesome/6.5.2/webfonts/fa-regular-400.woff2">
  511. <link rel="stylesheet" type="text/css" href="./corner.py — corner.py_files/pygments.css">
  512. <link rel="stylesheet" type="text/css" href="./corner.py — corner.py_files/sphinx-book-theme.css">
  513. <link rel="stylesheet" type="text/css" href="./corner.py — corner.py_files/mystnb.4510f1fc1dee50b3e5859aac5469c37c29e427902b24a333a5f9fcb2f0b3ac41.css">
  514. <!-- Pre-loaded scripts that we'll load fully later -->
  515. <link rel="preload" as="script" href="./corner.py — corner.py_files/bootstrap.js.download">
  516. <link rel="preload" as="script" href="./corner.py — corner.py_files/pydata-sphinx-theme.js.download">
  517. <script src="./corner.py — corner.py_files/all.min.js.download"></script>
  518. <script src="./corner.py — corner.py_files/documentation_options.js.download"></script>
  519. <script src="./corner.py — corner.py_files/doctools.js.download"></script>
  520. <script src="./corner.py — corner.py_files/sphinx_highlight.js.download"></script>
  521. <script src="./corner.py — corner.py_files/sphinx-book-theme.js.download"></script>
  522. <script>DOCUMENTATION_OPTIONS.pagename = 'index';</script>
  523. <link rel="canonical" href="https://corner.readthedocs.io/en/latest/">
  524. <link rel="index" title="Index" href="https://corner.readthedocs.io/en/latest/genindex/">
  525. <link rel="search" title="Search" href="https://corner.readthedocs.io/en/latest/search/">
  526. <link rel="next" title="Installation" href="https://corner.readthedocs.io/en/latest/install/">
  527. <meta name="viewport" content="width=device-width, initial-scale=1">
  528. <meta name="docsearch:language" content="en">
  529. <script async="" type="text/javascript" src="./corner.py — corner.py_files/readthedocs-addons.js.download"></script><meta name="readthedocs-project-slug" content="corner"><meta name="readthedocs-version-slug" content="latest"><meta name="readthedocs-resolver-filename" content="/"><meta name="readthedocs-http-status" content="200"><script id="ethicaladsjs" type="text/javascript" async="true" src="https://media.ethicalads.io/media/client/ethicalads.min.js"></script></head>
  530. <body data-bs-spy="scroll" data-bs-target=".bd-toc-nav" data-offset="180" data-bs-root-margin="0px 0px -60%" data-default-mode="" data-new-gr-c-s-check-loaded="14.1109.0" data-gr-ext-installed="" class="">
  531. <div id="pst-skip-link" class="skip-link d-print-none"><a href="https://corner.readthedocs.io/en/latest/#main-content">Skip to main content</a></div>
  532. <div id="pst-scroll-pixel-helper"></div>
  533. <button type="button" class="btn rounded-pill" id="pst-back-to-top" style="display: none;">
  534. <svg class="svg-inline--fa fa-arrow-up" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="arrow-up" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512" data-fa-i2svg=""><path fill="currentColor" d="M214.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 141.2V448c0 17.7 14.3 32 32 32s32-14.3 32-32V141.2L329.4 246.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160z"></path></svg><!-- <i class="fa-solid fa-arrow-up"></i> Font Awesome fontawesome.com -->Back to top</button>
  535. <input type="checkbox" class="sidebar-toggle" id="pst-primary-sidebar-checkbox">
  536. <label class="overlay overlay-primary" for="pst-primary-sidebar-checkbox"></label>
  537. <input type="checkbox" class="sidebar-toggle" id="pst-secondary-sidebar-checkbox">
  538. <label class="overlay overlay-secondary" for="pst-secondary-sidebar-checkbox"></label>
  539. <div class="search-button__wrapper">
  540. <div class="search-button__overlay"></div>
  541. <div class="search-button__search-container">
  542. <form class="bd-search d-flex align-items-center" action="https://corner.readthedocs.io/en/latest/search/" method="get">
  543. <svg class="svg-inline--fa fa-magnifying-glass" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="magnifying-glass" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" data-fa-i2svg=""><path fill="currentColor" d="M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM208 352a144 144 0 1 0 0-288 144 144 0 1 0 0 288z"></path></svg><!-- <i class="fa-solid fa-magnifying-glass"></i> Font Awesome fontawesome.com -->
  544. <input type="search" class="form-control" name="q" id="search-input" placeholder="Search..." aria-label="Search..." autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false">
  545. <span class="search-button__kbd-shortcut"><kbd class="kbd-shortcut__modifier">Ctrl</kbd>+<kbd>K</kbd></span>
  546. </form></div>
  547. </div>
  548. <div class="pst-async-banner-revealer" style="height: auto;">
  549. <aside id="bd-header-version-warning" class="d-none d-print-none" aria-label="Version warning"></aside>
  550. </div>
  551. <header class="bd-header navbar navbar-expand-lg bd-navbar d-print-none noprint">
  552. </header>
  553. <div class="bd-container">
  554. <div class="bd-container__inner bd-page-width">
  555. <div class="bd-sidebar-primary bd-sidebar noprint">
  556. <div class="sidebar-header-items sidebar-primary__section">
  557. </div>
  558. <div class="sidebar-primary-items__start sidebar-primary__section">
  559. <div class="sidebar-primary-item">
  560. <a class="navbar-brand logo" href="https://corner.readthedocs.io/en/latest/#">
  561. <p class="title logo__title">corner.py</p>
  562. </a></div>
  563. <div class="sidebar-primary-item">
  564. <script>
  565. document.write(`
  566. <button class="btn search-button-field search-button__button" title="Search" aria-label="Search" data-bs-placement="bottom" data-bs-toggle="tooltip">
  567. <i class="fa-solid fa-magnifying-glass"></i>
  568. <span class="search-button__default-text">Search</span>
  569. <span class="search-button__kbd-shortcut"><kbd class="kbd-shortcut__modifier">Ctrl</kbd>+<kbd class="kbd-shortcut__modifier">K</kbd></span>
  570. </button>
  571. `);
  572. </script>
  573. <button class="btn search-button-field search-button__button" aria-label="Search" data-bs-placement="bottom" data-bs-toggle="tooltip" data-bs-original-title="Search">
  574. <svg class="svg-inline--fa fa-magnifying-glass" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="magnifying-glass" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" data-fa-i2svg=""><path fill="currentColor" d="M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM208 352a144 144 0 1 0 0-288 144 144 0 1 0 0 288z"></path></svg><!-- <i class="fa-solid fa-magnifying-glass"></i> Font Awesome fontawesome.com -->
  575. <span class="search-button__default-text">Search</span>
  576. <span class="search-button__kbd-shortcut"><kbd class="kbd-shortcut__modifier">Ctrl</kbd>+<kbd class="kbd-shortcut__modifier">K</kbd></span>
  577. </button>
  578. </div>
  579. <div class="sidebar-primary-item"><nav class="bd-links bd-docs-nav" aria-label="Main">
  580. <div class="bd-toc-item navbar-nav active">
  581. <ul class="nav bd-sidenav">
  582. <li class="toctree-l1"><a class="reference internal" href="https://corner.readthedocs.io/en/latest/install/">Installation</a></li>
  583. <li class="toctree-l1"><a class="reference internal" href="https://corner.readthedocs.io/en/latest/pages/quickstart/">Getting started</a></li>
  584. <li class="toctree-l1"><a class="reference internal" href="https://corner.readthedocs.io/en/latest/pages/sigmas/">A note about sigmas</a></li>
  585. <li class="toctree-l1"><a class="reference internal" href="https://corner.readthedocs.io/en/latest/pages/custom/">Custom plotting</a></li>
  586. <li class="toctree-l1"><a class="reference internal" href="https://corner.readthedocs.io/en/latest/pages/arviz/">ArviZ support</a></li>
  587. <li class="toctree-l1"><a class="reference internal" href="https://corner.readthedocs.io/en/latest/api/">Detailed API documentation</a></li>
  588. </ul>
  589. </div>
  590. </nav></div>
  591. <div id="readthedocs-ea" class="raised ethical-alabaster" data-ea-type="readthedocs-sidebar" data-ea-manual="true" data-ea-publisher="readthedocs" data-ea-keywords="data-analysis|data-visualization|plotting|python|readthedocs-project-52371|readthedocs-project-corner" data-ea-campaign-types="community|house|paid"></div></div>
  592. <div class="sidebar-primary-items__end sidebar-primary__section">
  593. </div>
  594. <div id="rtd-footer-container"></div>
  595. </div>
  596. <main id="main-content" class="bd-main" role="main">
  597. <div class="sbt-scroll-pixel-helper"></div>
  598. <div class="bd-content">
  599. <div class="bd-article-container">
  600. <div class="bd-header-article d-print-none noprint">
  601. <div class="header-article-items header-article__inner">
  602. <div class="header-article-items__start">
  603. <div class="header-article-item"><button class="sidebar-toggle primary-toggle btn btn-sm" data-bs-placement="bottom" data-bs-toggle="tooltip" aria-label="Toggle primary sidebar" data-bs-original-title="Toggle primary sidebar">
  604. <svg class="svg-inline--fa fa-bars" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="bars" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" data-fa-i2svg=""><path fill="currentColor" d="M0 96C0 78.3 14.3 64 32 64H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 128 0 113.7 0 96zM0 256c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM448 416c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32z"></path></svg><!-- <span class="fa-solid fa-bars"></span> Font Awesome fontawesome.com -->
  605. </button></div>
  606. </div>
  607. <div class="header-article-items__end">
  608. <div class="header-article-item">
  609. <div class="article-header-buttons">
  610. <div class="dropdown dropdown-source-buttons">
  611. <button class="btn dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false" aria-label="Source repositories">
  612. <svg class="svg-inline--fa fa-github" aria-hidden="true" focusable="false" data-prefix="fab" data-icon="github" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512" data-fa-i2svg=""><path fill="currentColor" d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"></path></svg><!-- <i class="fab fa-github"></i> Font Awesome fontawesome.com -->
  613. </button>
  614. <ul class="dropdown-menu">
  615. <li><a href="https://github.com/dfm/corner.py" target="_blank" class="btn btn-sm btn-source-repository-button dropdown-item" data-bs-placement="left" data-bs-toggle="tooltip" data-bs-original-title="Source repository">
  616. <span class="btn__icon-container">
  617. <svg class="svg-inline--fa fa-github" aria-hidden="true" focusable="false" data-prefix="fab" data-icon="github" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512" data-fa-i2svg=""><path fill="currentColor" d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"></path></svg><!-- <i class="fab fa-github"></i> Font Awesome fontawesome.com -->
  618. </span>
  619. <span class="btn__text-container">Repository</span>
  620. </a>
  621. </li>
  622. <li><a href="https://github.com/dfm/corner.py/edit/main/docs/index.md" target="_blank" class="btn btn-sm btn-source-edit-button dropdown-item" data-bs-placement="left" data-bs-toggle="tooltip" data-bs-original-title="Suggest edit">
  623. <span class="btn__icon-container">
  624. <svg class="svg-inline--fa fa-pencil" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="pencil" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" data-fa-i2svg=""><path fill="currentColor" d="M410.3 231l11.3-11.3-33.9-33.9-62.1-62.1L291.7 89.8l-11.3 11.3-22.6 22.6L58.6 322.9c-10.4 10.4-18 23.3-22.2 37.4L1 480.7c-2.5 8.4-.2 17.5 6.1 23.7s15.3 8.5 23.7 6.1l120.3-35.4c14.1-4.2 27-11.8 37.4-22.2L387.7 253.7 410.3 231zM160 399.4l-9.1 22.7c-4 3.1-8.5 5.4-13.3 6.9L59.4 452l23-78.1c1.4-4.9 3.8-9.4 6.9-13.3l22.7-9.1v32c0 8.8 7.2 16 16 16h32zM362.7 18.7L348.3 33.2 325.7 55.8 314.3 67.1l33.9 33.9 62.1 62.1 33.9 33.9 11.3-11.3 22.6-22.6 14.5-14.5c25-25 25-65.5 0-90.5L453.3 18.7c-25-25-65.5-25-90.5 0zm-47.4 168l-144 144c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l144-144c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z"></path></svg><!-- <i class="fas fa-pencil-alt"></i> Font Awesome fontawesome.com -->
  625. </span>
  626. <span class="btn__text-container">Suggest edit</span>
  627. </a>
  628. </li>
  629. <li><a href="https://github.com/dfm/corner.py/issues/new?title=Issue%20on%20page%20%2Findex.html&amp;body=Your%20issue%20content%20here." target="_blank" class="btn btn-sm btn-source-issues-button dropdown-item" data-bs-placement="left" data-bs-toggle="tooltip" data-bs-original-title="Open an issue">
  630. <span class="btn__icon-container">
  631. <svg class="svg-inline--fa fa-lightbulb" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="lightbulb" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512" data-fa-i2svg=""><path fill="currentColor" d="M272 384c9.6-31.9 29.5-59.1 49.2-86.2l0 0c5.2-7.1 10.4-14.2 15.4-21.4c19.8-28.5 31.4-63 31.4-100.3C368 78.8 289.2 0 192 0S16 78.8 16 176c0 37.3 11.6 71.9 31.4 100.3c5 7.2 10.2 14.3 15.4 21.4l0 0c19.8 27.1 39.7 54.4 49.2 86.2H272zM192 512c44.2 0 80-35.8 80-80V416H112v16c0 44.2 35.8 80 80 80zM112 176c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-61.9 50.1-112 112-112c8.8 0 16 7.2 16 16s-7.2 16-16 16c-44.2 0-80 35.8-80 80z"></path></svg><!-- <i class="fas fa-lightbulb"></i> Font Awesome fontawesome.com -->
  632. </span>
  633. <span class="btn__text-container">Open issue</span>
  634. </a>
  635. </li>
  636. </ul>
  637. </div>
  638. <div class="dropdown dropdown-download-buttons">
  639. <button class="btn dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false" aria-label="Download this page">
  640. <svg class="svg-inline--fa fa-download" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="download" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" data-fa-i2svg=""><path fill="currentColor" d="M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32V274.7l-73.4-73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0l128-128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L288 274.7V32zM64 352c-35.3 0-64 28.7-64 64v32c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V416c0-35.3-28.7-64-64-64H346.5l-45.3 45.3c-25 25-65.5 25-90.5 0L165.5 352H64zm368 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"></path></svg><!-- <i class="fas fa-download"></i> Font Awesome fontawesome.com -->
  641. </button>
  642. <ul class="dropdown-menu">
  643. <li><a href="https://corner.readthedocs.io/en/latest/_sources/index.md" target="_blank" class="btn btn-sm btn-download-source-button dropdown-item" data-bs-placement="left" data-bs-toggle="tooltip" data-bs-original-title="Download source file">
  644. <span class="btn__icon-container">
  645. <svg class="svg-inline--fa fa-file" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="file" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512" data-fa-i2svg=""><path fill="currentColor" d="M0 64C0 28.7 28.7 0 64 0H224V128c0 17.7 14.3 32 32 32H384V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zm384 64H256V0L384 128z"></path></svg><!-- <i class="fas fa-file"></i> Font Awesome fontawesome.com -->
  646. </span>
  647. <span class="btn__text-container">.md</span>
  648. </a>
  649. </li>
  650. <li>
  651. <button onclick="window.print()" class="btn btn-sm btn-download-pdf-button dropdown-item" data-bs-placement="left" data-bs-toggle="tooltip" data-bs-original-title="Print to PDF">
  652. <span class="btn__icon-container">
  653. <svg class="svg-inline--fa fa-file-pdf" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="file-pdf" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" data-fa-i2svg=""><path fill="currentColor" d="M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 144-208 0c-35.3 0-64 28.7-64 64l0 144-48 0c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128zM176 352l32 0c30.9 0 56 25.1 56 56s-25.1 56-56 56l-16 0 0 32c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48 0-80c0-8.8 7.2-16 16-16zm32 80c13.3 0 24-10.7 24-24s-10.7-24-24-24l-16 0 0 48 16 0zm96-80l32 0c26.5 0 48 21.5 48 48l0 64c0 26.5-21.5 48-48 48l-32 0c-8.8 0-16-7.2-16-16l0-128c0-8.8 7.2-16 16-16zm32 128c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-16 0 0 96 16 0zm80-112c0-8.8 7.2-16 16-16l48 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0 0 32 32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0 0 48c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-64 0-64z"></path></svg><!-- <i class="fas fa-file-pdf"></i> Font Awesome fontawesome.com -->
  654. </span>
  655. <span class="btn__text-container">.pdf</span>
  656. </button>
  657. </li>
  658. </ul>
  659. </div>
  660. <button onclick="toggleFullScreen()" class="btn btn-sm btn-fullscreen-button" data-bs-placement="bottom" data-bs-toggle="tooltip" aria-label="Fullscreen mode" data-bs-original-title="Fullscreen mode">
  661. <span class="btn__icon-container">
  662. <svg class="svg-inline--fa fa-expand" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="expand" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" data-fa-i2svg=""><path fill="currentColor" d="M32 32C14.3 32 0 46.3 0 64v96c0 17.7 14.3 32 32 32s32-14.3 32-32V96h64c17.7 0 32-14.3 32-32s-14.3-32-32-32H32zM64 352c0-17.7-14.3-32-32-32s-32 14.3-32 32v96c0 17.7 14.3 32 32 32h96c17.7 0 32-14.3 32-32s-14.3-32-32-32H64V352zM320 32c-17.7 0-32 14.3-32 32s14.3 32 32 32h64v64c0 17.7 14.3 32 32 32s32-14.3 32-32V64c0-17.7-14.3-32-32-32H320zM448 352c0-17.7-14.3-32-32-32s-32 14.3-32 32v64H320c-17.7 0-32 14.3-32 32s14.3 32 32 32h96c17.7 0 32-14.3 32-32V352z"></path></svg><!-- <i class="fas fa-expand"></i> Font Awesome fontawesome.com -->
  663. </span>
  664. </button>
  665. <script>
  666. document.write(`
  667. <button class="btn btn-sm nav-link pst-navbar-icon theme-switch-button" title="light/dark" aria-label="light/dark" data-bs-placement="bottom" data-bs-toggle="tooltip">
  668. <i class="theme-switch fa-solid fa-sun fa-lg" data-mode="light"></i>
  669. <i class="theme-switch fa-solid fa-moon fa-lg" data-mode="dark"></i>
  670. <i class="theme-switch fa-solid fa-circle-half-stroke fa-lg" data-mode="auto"></i>
  671. </button>
  672. `);
  673. </script>
  674. <button class="btn btn-sm nav-link pst-navbar-icon theme-switch-button" aria-label="light/dark" data-bs-placement="bottom" data-bs-toggle="tooltip" data-bs-original-title="light/dark">
  675. <svg class="svg-inline--fa fa-sun theme-switch fa-lg" data-mode="light" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="sun" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" data-fa-i2svg=""><path fill="currentColor" d="M361.5 1.2c5 2.1 8.6 6.6 9.6 11.9L391 121l107.9 19.8c5.3 1 9.8 4.6 11.9 9.6s1.5 10.7-1.6 15.2L446.9 256l62.3 90.3c3.1 4.5 3.7 10.2 1.6 15.2s-6.6 8.6-11.9 9.6L391 391 371.1 498.9c-1 5.3-4.6 9.8-9.6 11.9s-10.7 1.5-15.2-1.6L256 446.9l-90.3 62.3c-4.5 3.1-10.2 3.7-15.2 1.6s-8.6-6.6-9.6-11.9L121 391 13.1 371.1c-5.3-1-9.8-4.6-11.9-9.6s-1.5-10.7 1.6-15.2L65.1 256 2.8 165.7c-3.1-4.5-3.7-10.2-1.6-15.2s6.6-8.6 11.9-9.6L121 121 140.9 13.1c1-5.3 4.6-9.8 9.6-11.9s10.7-1.5 15.2 1.6L256 65.1 346.3 2.8c4.5-3.1 10.2-3.7 15.2-1.6zM160 256a96 96 0 1 1 192 0 96 96 0 1 1 -192 0zm224 0a128 128 0 1 0 -256 0 128 128 0 1 0 256 0z"></path></svg><!-- <i class="theme-switch fa-solid fa-sun fa-lg" data-mode="light"></i> Font Awesome fontawesome.com -->
  676. <svg class="svg-inline--fa fa-moon theme-switch fa-lg" data-mode="dark" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="moon" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512" data-fa-i2svg=""><path fill="currentColor" d="M223.5 32C100 32 0 132.3 0 256S100 480 223.5 480c60.6 0 115.5-24.2 155.8-63.4c5-4.9 6.3-12.5 3.1-18.7s-10.1-9.7-17-8.5c-9.8 1.7-19.8 2.6-30.1 2.6c-96.9 0-175.5-78.8-175.5-176c0-65.8 36-123.1 89.3-153.3c6.1-3.5 9.2-10.5 7.7-17.3s-7.3-11.9-14.3-12.5c-6.3-.5-12.6-.8-19-.8z"></path></svg><!-- <i class="theme-switch fa-solid fa-moon fa-lg" data-mode="dark"></i> Font Awesome fontawesome.com -->
  677. <svg class="svg-inline--fa fa-circle-half-stroke theme-switch fa-lg" data-mode="auto" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="circle-half-stroke" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" data-fa-i2svg=""><path fill="currentColor" d="M448 256c0-106-86-192-192-192V448c106 0 192-86 192-192zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256z"></path></svg><!-- <i class="theme-switch fa-solid fa-circle-half-stroke fa-lg" data-mode="auto"></i> Font Awesome fontawesome.com -->
  678. </button>
  679. <script>
  680. document.write(`
  681. <button class="btn btn-sm pst-navbar-icon search-button search-button__button" title="Search" aria-label="Search" data-bs-placement="bottom" data-bs-toggle="tooltip">
  682. <i class="fa-solid fa-magnifying-glass fa-lg"></i>
  683. </button>
  684. `);
  685. </script>
  686. <button class="btn btn-sm pst-navbar-icon search-button search-button__button" aria-label="Search" data-bs-placement="bottom" data-bs-toggle="tooltip" data-bs-original-title="Search">
  687. <svg class="svg-inline--fa fa-magnifying-glass fa-lg" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="magnifying-glass" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" data-fa-i2svg=""><path fill="currentColor" d="M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM208 352a144 144 0 1 0 0-288 144 144 0 1 0 0 288z"></path></svg><!-- <i class="fa-solid fa-magnifying-glass fa-lg"></i> Font Awesome fontawesome.com -->
  688. </button>
  689. <button class="sidebar-toggle secondary-toggle btn btn-sm" data-bs-placement="bottom" data-bs-toggle="tooltip" aria-label="Toggle secondary sidebar" data-bs-original-title="Toggle secondary sidebar">
  690. <svg class="svg-inline--fa fa-list" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="list" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" data-fa-i2svg=""><path fill="currentColor" d="M40 48C26.7 48 16 58.7 16 72v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V72c0-13.3-10.7-24-24-24H40zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zM16 232v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V232c0-13.3-10.7-24-24-24H40c-13.3 0-24 10.7-24 24zM40 368c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V392c0-13.3-10.7-24-24-24H40z"></path></svg><!-- <span class="fa-solid fa-list"></span> Font Awesome fontawesome.com -->
  691. </button>
  692. </div></div>
  693. </div>
  694. </div>
  695. </div>
  696. <div id="jb-print-docs-body" class="onlyprint">
  697. <h1>corner.py</h1>
  698. <!-- Table of contents -->
  699. <div id="print-main-content">
  700. <div id="jb-print-toc">
  701. <div>
  702. <h2> Contents </h2>
  703. </div>
  704. <nav aria-label="Page">
  705. <ul class="visible nav section-nav flex-column">
  706. <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="https://corner.readthedocs.io/en/latest/#documentation">Documentation</a></li>
  707. <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="https://corner.readthedocs.io/en/latest/#attribution">Attribution</a></li>
  708. <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="https://corner.readthedocs.io/en/latest/#authors-license">Authors &amp; License</a></li>
  709. </ul>
  710. </nav>
  711. </div>
  712. </div>
  713. </div>
  714. <div id="searchbox"></div>
  715. <article class="bd-article">
  716. <section id="corner-py">
  717. <h1>corner.py<a class="headerlink" href="https://corner.readthedocs.io/en/latest/#corner-py" title="Link to this heading">#</a></h1>
  718. <p><em>Make some beautiful corner plots.</em></p>
  719. <div class="tip admonition">
  720. <p class="admonition-title">Corner plot /ˈkôrnər plät/ (noun):</p>
  721. <p>An illustrative representation of different projections of samples in
  722. high dimensional spaces. It is awesome. I promise.
  723. <em>Synonyms: scatterplot matrix, pairs plot, draftsman’s display</em></p>
  724. </div>
  725. <p>This Python module uses <a class="reference external" href="https://matplotlib.org/">matplotlib</a> to visualize
  726. multidimensional samples using a scatterplot matrix.
  727. In these visualizations, each one- and two-dimensional projection of the
  728. sample is plotted to reveal covariances.
  729. <em>corner</em> was originally conceived to display the results of Markov Chain
  730. Monte Carlo simulations and the defaults are chosen with this application in
  731. mind but it can be used for displaying many qualitatively different samples.</p>
  732. <p>Development of <em>corner</em> happens <a class="reference external" href="https://github.com/dfm/corner.py">on GitHub</a> so you can <a class="reference external" href="https://github.com/dfm/corner.py/issues">raise any issues you have there</a>.
  733. <em>corner</em> has been used extensively in the astronomical literature and it <a class="reference external" href="https://ui.adsabs.harvard.edu/abs/2016JOSS....1...24F/citations">has occasionally been cited</a>
  734. as <code class="docutils literal notranslate"><span class="pre">corner.py</span></code> or using its previous name <code class="docutils literal notranslate"><span class="pre">triangle.py</span></code>.</p>
  735. <p><a class="reference external" href="https://github.com/dfm/corner.py/actions"><img alt="Tests" src="https://github.com/dfm/corner.py/workflows/Tests/badge.svg?style=flat"></a>
  736. <a class="reference external" href="https://github.com/dfm/corner.py/blob/main/LICENSE"><img alt="License" src="https://img.shields.io/badge/license-BSD-blue.svg?style=flat"></a>
  737. <a class="reference external" href="https://zenodo.org/badge/latestdoi/4729/dfm/corner.py"><img alt="DOI" src="https://zenodo.org/badge/4729/dfm/corner.py.svg?style=flat"></a>
  738. <a class="reference external" href="http://dx.doi.org/10.21105/joss.00024"><img alt="Paper" src="https://joss.theoj.org/papers/10.21105/joss.00024/status.svg?style=flat"></a></p>
  739. <section id="documentation">
  740. <h2>Documentation<a class="headerlink" href="https://corner.readthedocs.io/en/latest/#documentation" title="Link to this heading">#</a></h2>
  741. <div class="toctree-wrapper compound">
  742. <ul>
  743. <li class="toctree-l1"><a class="reference internal" href="https://corner.readthedocs.io/en/latest/install/">Installation</a><ul>
  744. <li class="toctree-l2"><a class="reference internal" href="https://corner.readthedocs.io/en/latest/install/#dependencies">Dependencies</a></li>
  745. <li class="toctree-l2"><a class="reference internal" href="https://corner.readthedocs.io/en/latest/install/#using-pip">Using pip</a></li>
  746. <li class="toctree-l2"><a class="reference internal" href="https://corner.readthedocs.io/en/latest/install/#from-source">From source</a></li>
  747. <li class="toctree-l2"><a class="reference internal" href="https://corner.readthedocs.io/en/latest/install/#tests">Tests</a></li>
  748. </ul>
  749. </li>
  750. <li class="toctree-l1"><a class="reference internal" href="https://corner.readthedocs.io/en/latest/pages/quickstart/">Getting started</a></li>
  751. <li class="toctree-l1"><a class="reference internal" href="https://corner.readthedocs.io/en/latest/pages/sigmas/">A note about sigmas</a></li>
  752. <li class="toctree-l1"><a class="reference internal" href="https://corner.readthedocs.io/en/latest/pages/custom/">Custom plotting</a></li>
  753. <li class="toctree-l1"><a class="reference internal" href="https://corner.readthedocs.io/en/latest/pages/arviz/">ArviZ support</a></li>
  754. <li class="toctree-l1"><a class="reference internal" href="https://corner.readthedocs.io/en/latest/api/">Detailed API documentation</a><ul>
  755. <li class="toctree-l2"><a class="reference internal" href="https://corner.readthedocs.io/en/latest/api/#corner.corner"><code class="docutils literal notranslate"><span class="pre">corner()</span></code></a></li>
  756. <li class="toctree-l2"><a class="reference internal" href="https://corner.readthedocs.io/en/latest/api/#corner.hist2d"><code class="docutils literal notranslate"><span class="pre">hist2d()</span></code></a></li>
  757. <li class="toctree-l2"><a class="reference internal" href="https://corner.readthedocs.io/en/latest/api/#corner.quantile"><code class="docutils literal notranslate"><span class="pre">quantile()</span></code></a></li>
  758. <li class="toctree-l2"><a class="reference internal" href="https://corner.readthedocs.io/en/latest/api/#corner.overplot_lines"><code class="docutils literal notranslate"><span class="pre">overplot_lines()</span></code></a></li>
  759. <li class="toctree-l2"><a class="reference internal" href="https://corner.readthedocs.io/en/latest/api/#corner.overplot_points"><code class="docutils literal notranslate"><span class="pre">overplot_points()</span></code></a></li>
  760. </ul>
  761. </li>
  762. </ul>
  763. </div>
  764. </section>
  765. <section id="attribution">
  766. <h2>Attribution<a class="headerlink" href="https://corner.readthedocs.io/en/latest/#attribution" title="Link to this heading">#</a></h2>
  767. <p>If you make use of this code, please cite <a class="reference external" href="https://dx.doi.org/10.21105/joss.00024">the JOSS paper</a>:</p>
  768. <div class="highlight-tex notranslate"><div class="highlight"><pre tabindex="-1"><span></span> @article<span class="nb">{</span>corner,
  769. doi = <span class="nb">{</span>10.21105/joss.00024<span class="nb">}</span>,
  770. url = <span class="nb">{</span>https://doi.org/10.21105/joss.00024<span class="nb">}</span>,
  771. year = <span class="nb">{</span>2016<span class="nb">}</span>,
  772. month = <span class="nb">{</span>jun<span class="nb">}</span>,
  773. publisher = <span class="nb">{</span>The Open Journal<span class="nb">}</span>,
  774. volume = <span class="nb">{</span>1<span class="nb">}</span>,
  775. number = <span class="nb">{</span>2<span class="nb">}</span>,
  776. pages = <span class="nb">{</span>24<span class="nb">}</span>,
  777. author = <span class="nb">{</span>Daniel Foreman-Mackey<span class="nb">}</span>,
  778. title = <span class="nb">{</span>corner.py: Scatterplot matrices in Python<span class="nb">}</span>,
  779. journal = <span class="nb">{</span>The Journal of Open Source Software<span class="nb">}</span>
  780. <span class="nb">}</span>
  781. </pre></div>
  782. </div>
  783. </section>
  784. <section id="authors-license">
  785. <h2>Authors &amp; License<a class="headerlink" href="https://corner.readthedocs.io/en/latest/#authors-license" title="Link to this heading">#</a></h2>
  786. <p>Copyright 2013-2021 Dan Foreman-Mackey</p>
  787. <p>Built by <a class="reference external" href="https://github.com/dfm">Dan Foreman-Mackey</a> and contributors (see
  788. <a class="reference external" href="https://github.com/dfm/corner.py/graphs/contributors">the contribution graph</a> for the most
  789. up to date list). Licensed under the 2-clause BSD license (see <code class="docutils literal notranslate"><span class="pre">LICENSE</span></code>).</p>
  790. </section>
  791. </section>
  792. </article>
  793. <footer class="prev-next-footer d-print-none">
  794. <div class="prev-next-area">
  795. <a class="right-next" href="https://corner.readthedocs.io/en/latest/install/" title="next page">
  796. <div class="prev-next-info">
  797. <p class="prev-next-subtitle">next</p>
  798. <p class="prev-next-title">Installation</p>
  799. </div>
  800. <svg class="svg-inline--fa fa-angle-right" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="angle-right" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512" data-fa-i2svg=""><path fill="currentColor" d="M278.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-160 160c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L210.7 256 73.4 118.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l160 160z"></path></svg><!-- <i class="fa-solid fa-angle-right"></i> Font Awesome fontawesome.com -->
  801. </a>
  802. </div>
  803. </footer>
  804. </div>
  805. <div class="bd-sidebar-secondary bd-toc noprint"><div class="sidebar-secondary-items sidebar-secondary__inner">
  806. <div class="sidebar-secondary-item">
  807. <div class="page-toc tocsection onthispage">
  808. <svg class="svg-inline--fa fa-list" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="list" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" data-fa-i2svg=""><path fill="currentColor" d="M40 48C26.7 48 16 58.7 16 72v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V72c0-13.3-10.7-24-24-24H40zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zM16 232v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V232c0-13.3-10.7-24-24-24H40c-13.3 0-24 10.7-24 24zM40 368c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V392c0-13.3-10.7-24-24-24H40z"></path></svg><!-- <i class="fa-solid fa-list"></i> Font Awesome fontawesome.com --> Contents
  809. </div>
  810. <nav class="bd-toc-nav page-toc">
  811. <ul class="visible nav section-nav flex-column">
  812. <li class="toc-h2 nav-item toc-entry active"><a class="reference internal nav-link" href="https://corner.readthedocs.io/en/latest/#documentation">Documentation</a></li>
  813. <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="https://corner.readthedocs.io/en/latest/#attribution">Attribution</a></li>
  814. <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="https://corner.readthedocs.io/en/latest/#authors-license">Authors &amp; License</a></li>
  815. </ul>
  816. </nav></div>
  817. </div></div>
  818. </div>
  819. <footer class="bd-footer-content noprint">
  820. <div class="bd-footer-content__inner container">
  821. <div class="footer-item">
  822. <p class="component-author">
  823. By Author name not set
  824. </p>
  825. </div>
  826. <div class="footer-item">
  827. <p class="copyright">
  828. © Copyright 2013-2021 Dan Foreman-Mackey &amp; contributors.
  829. <br>
  830. </p>
  831. </div>
  832. <div class="footer-item">
  833. </div>
  834. <div class="footer-item">
  835. </div>
  836. </div>
  837. </footer>
  838. </main>
  839. </div>
  840. </div>
  841. <!-- Scripts loaded after <body> so the DOM is not blocked -->
  842. <script src="./corner.py — corner.py_files/bootstrap.js.download"></script>
  843. <script src="./corner.py — corner.py_files/pydata-sphinx-theme.js.download"></script>
  844. <footer class="bd-footer noprint">
  845. </footer>
  846. <readthedocs-flyout><template shadowrootmode="open"><!---->
  847. <div class=" floating container bottom-right ">
  848. <!--?lit$456334845$-->
  849. <header>
  850. <img class="logo" alt="Read the Docs" src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cjxzdmc6c3ZnCiAgIHZlcnNpb249IjEuMSIKICAgaWQ9InN2ZyIKICAgeD0iMHB4IgogICB5PSIwcHgiCiAgIHZpZXdCb3g9IjY5NCAxOTcgMzQ2LjY5ODU1IDM5OS45ODQ3NyIKICAgc29kaXBvZGk6ZG9jbmFtZT0ibG9nby1saWdodC5zdmciCiAgIHdpZHRoPSIzNDYuNjk4NTUiCiAgIGhlaWdodD0iMzk5Ljk4NDc3IgogICBpbmtzY2FwZTp2ZXJzaW9uPSIxLjMuMiAoMDkxZTIwZWYwZiwgMjAyMy0xMS0yNSwgY3VzdG9tKSIKICAgeG1sbnM6aW5rc2NhcGU9Imh0dHA6Ly93d3cuaW5rc2NhcGUub3JnL25hbWVzcGFjZXMvaW5rc2NhcGUiCiAgIHhtbG5zOnNvZGlwb2RpPSJodHRwOi8vc29kaXBvZGkuc291cmNlZm9yZ2UubmV0L0RURC9zb2RpcG9kaS0wLmR0ZCIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgPHN2ZzpkZWZzCiAgICAgaWQ9ImRlZnMxMiIgLz4KICA8c29kaXBvZGk6bmFtZWR2aWV3CiAgICAgaWQ9Im5hbWVkdmlldzEyIgogICAgIHBhZ2Vjb2xvcj0iI2ZmZmZmZiIKICAgICBib3JkZXJjb2xvcj0iIzAwMDAwMCIKICAgICBib3JkZXJvcGFjaXR5PSIwLjI1IgogICAgIGlua3NjYXBlOnNob3dwYWdlc2hhZG93PSIyIgogICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwLjAiCiAgICAgaW5rc2NhcGU6cGFnZWNoZWNrZXJib2FyZD0iMCIKICAgICBpbmtzY2FwZTpkZXNrY29sb3I9IiNkMWQxZDEiCiAgICAgaW5rc2NhcGU6em9vbT0iMS4yNTIiCiAgICAgaW5rc2NhcGU6Y3g9Ijk5OC40MDI1NiIKICAgICBpbmtzY2FwZTpjeT0iMTk5LjY4MDUxIgogICAgIGlua3NjYXBlOndpbmRvdy13aWR0aD0iMzQ0MCIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSIxMzg5IgogICAgIGlua3NjYXBlOndpbmRvdy14PSIwIgogICAgIGlua3NjYXBlOndpbmRvdy15PSIyNyIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIxIgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9InN2ZyIgLz4KICA8c3ZnOmcKICAgICBpZD0ibG9nbyIKICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLjU1NzUzNjQ0LDAsMCwwLjU1NzUzNjQ0LDY2LjUzMTgxMiwxMDUwLjEyNjIpIj4KICAgIDxzdmc6cGF0aAogICAgICAgc3R5bGU9ImZpbGw6I2ZjZmNmYyIKICAgICAgIGQ9Im0gMTQwOC4xLC0xMTgxLjcgYyAtNy41LDEgLTEyLjcsNy44IC0xMS43LDE1LjMgMC43LDUuNCA0LjYsOS45IDkuOSwxMS4zIDAsMCAzMy4yLDExIDg5LjcsMTUuNiA0NS40LDMuNyA5Ni45LC0zLjIgOTYuOSwtMy4yIDcuNSwtMC4yIDEzLjUsLTYuNSAxMy4yLC0xNCAtMC4zLC03LjUgLTYuNSwtMTMuNSAtMTQsLTEzLjIgLTAuOSwwIC0xLjgsMC4xIC0yLjYsMC4zIDAsMCAtNTAuNCw2LjIgLTkxLjMsMi45IC01NCwtNC40IC04My40LC0xNC4zIC04My40LC0xNC4zIC0yLjIsLTAuNyAtNC41LC0xIC02LjcsLTAuNyB6IG0gMCwtNjcuNiBjIC03LjUsMSAtMTIuNyw3LjggLTExLjcsMTUuMyAwLjcsNS40IDQuNiw5LjkgOS45LDExLjMgMCwwIDMzLjIsMTEgODkuNywxNS42IDQ1LjQsMy43IDk2LjksLTMuMiA5Ni45LC0zLjIgNy41LC0wLjIgMTMuNSwtNi41IDEzLjIsLTE0IC0wLjMsLTcuNSAtNi41LC0xMy41IC0xNCwtMTMuMiAtMC45LDAgLTEuOCwwLjEgLTIuNiwwLjMgMCwwIC01MC40LDYuMiAtOTEuMywyLjkgLTU0LC00LjQgLTgzLjQsLTE0LjMgLTgzLjQsLTE0LjMgLTIuMiwtMC43IC00LjUsLTEgLTYuNywtMC43IHogbSAwLC02Ny42IGMgLTcuNSwxIC0xMi43LDcuOCAtMTEuNywxNS4zIDAuNyw1LjQgNC42LDkuOSA5LjksMTEuMyAwLDAgMzMuMiwxMSA4OS43LDE1LjYgNDUuNCwzLjcgOTYuOSwtMy4yIDk2LjksLTMuMiA3LjUsLTAuMiAxMy41LC02LjUgMTMuMiwtMTQgLTAuMywtNy41IC02LjUsLTEzLjUgLTE0LC0xMy4yIC0wLjksMCAtMS44LDAuMSAtMi42LDAuMyAwLDAgLTUwLjQsNi4yIC05MS4zLDIuOSAtNTQsLTQuNCAtODMuNCwtMTQuMyAtODMuNCwtMTQuMyAtMi4yLC0wLjcgLTQuNSwtMSAtNi43LC0wLjcgeiBtIDAsLTY3LjUgYyAtNy41LDEgLTEyLjcsNy44IC0xMS43LDE1LjMgMC43LDUuNCA0LjYsOS45IDkuOSwxMS4zIDAsMCAzMy4yLDExIDg5LjcsMTUuNiA0NS40LDMuNyA5Ni45LC0zLjIgOTYuOSwtMy4yIDcuNSwtMC4yIDEzLjUsLTYuNSAxMy4yLC0xNCAtMC4zLC03LjUgLTYuNSwtMTMuNSAtMTQsLTEzLjIgLTAuOSwwIC0xLjgsMC4xIC0yLjYsMC4zIDAsMCAtNTAuNCw2LjIgLTkxLjMsMi45IC01NCwtNC40IC04My40LC0xNC4zIC04My40LC0xNC4zIC0yLjIsLTAuOCAtNC41LC0xIC02LjcsLTAuNyB6IG0gLTk0LjcsLTcxLjMgYyAtNzEsMC41IC05Ny41LDIyLjMgLTk3LjUsMjIuMyB2IDUzMC4zIGMgMCwwIDI1LjgsLTIyLjMgMTA5LC0xOC45IDgzLjIsMy40IDEwMC4zLDMyLjYgMjAyLjUsMzQuNiAxMDIuMiwyLjEgMTI3LjksLTE1LjcgMTI3LjksLTE1LjcgbCAxLjUsLTU0MC42IGMgMCwwIC00NiwxMyAtMTM1LjUsMTMuNyAtODkuNSwwLjcgLTExMSwtMjIuOCAtMTkzLjIsLTI1LjUgLTUuMSwtMC4xIC0xMCwtMC4yIC0xNC43LC0wLjIgeiBtIDU5LjQsMzQuNiBjIDAsMCA0MywxNC4yIDEyMi41LDE4LjIgNjcuMiwzLjMgMTM0LjUsLTYuNiAxMzQuNSwtNi42IFYgLTkyOSBjIDAsMCAtMzQuMSwxNy45IC0xMTkuMywxMS44IC02NiwtNC43IC0xMzguNywtMjkuNyAtMTM4LjcsLTI5LjcgeiBtIC00MS41LDEyLjUgYyA3LjYsMCAxMy43LDYuMiAxMy43LDEzLjcgMCw3LjUgLTYuMiwxMy43IC0xMy43LDEzLjcgMCwwIC0yMi4zLDAuMSAtMzUuOCwxLjUgLTIyLjgsMi4zIC0zOC4zLDEwLjYgLTM4LjMsMTAuNiAtNi43LDMuNSAtMTUsMSAtMTguNSwtNS43IC0zLjUsLTYuNyAtMSwtMTUgNS43LC0xOC41IDAsMCAwLDAgMCwwIDAsMCAyMC4yLC0xMC43IDQ4LjQsLTEzLjUgMTYuMywtMS43IDM4LjUsLTEuOCAzOC41LC0xLjggeiBtIC0xMy4yLDY3LjggYyA3LjYsLTAuMiAxMy4zLDAgMTMuMywwIDcuNSwwLjkgMTIuOSw3LjggMTIsMTUuMyAtMC44LDYuMyAtNS43LDExLjIgLTEyLDEyIDAsMCAtMjIuMywwLjEgLTM1LjgsMS41IC0yMi44LDIuMyAtMzguMywxMC42IC0zOC4zLDEwLjYgLTYuNywzLjUgLTE1LDAuOSAtMTguNSwtNS44IC0zLjUsLTYuNyAtMC45LC0xNSA1LjgsLTE4LjUgMCwwIDIwLjIsLTEwLjcgNDguNCwtMTMuNSA3LjksLTAuOSAxNy41LC0xLjQgMjUuMSwtMS42IHogbSAxMy4yLDY3LjUgYyA3LjYsMCAxMy43LDYuMiAxMy43LDEzLjcgMCw3LjYgLTYuMiwxMy43IC0xMy43LDEzLjcgMCwwIC0yMi4zLC0wLjEgLTM1LjgsMS4yIC0yMi44LDIuMyAtMzguMywxMC42IC0zOC4zLDEwLjYgLTYuNywzLjUgLTE1LDAuOSAtMTguNSwtNS44IC0zLjUsLTYuNyAtMC45LC0xNSA1LjgsLTE4LjUgMCwwIDIwLjIsLTEwLjcgNDguNCwtMTMuNSAxNi4yLC0xLjUgMzguNCwtMS40IDM4LjQsLTEuNCB6IgogICAgICAgaWQ9InBhdGgxIiAvPgogIDwvc3ZnOmc+CiAgPGRpdgogICAgIGlkPSJzYWthLWd1aS1yb290Ij4KICAgIDxkaXY+CiAgICAgIDxkaXY+CiAgICAgICAgPHN0eWxlIC8+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgPC9kaXY+Cjwvc3ZnOnN2Zz4K">
  851. <!--?lit$456334845$--> <!--?lit$456334845$--><span class="version">
  852. <!--?lit$456334845$--><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="code-branch" class="svg-inline--fa fa-code-branch icon" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M80 104a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm80-24c0 32.8-19.7 61-48 73.3l0 87.8c18.8-10.9 40.7-17.1 64-17.1l96 0c35.3 0 64-28.7 64-64l0-6.7C307.7 141 288 112.8 288 80c0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3l0 6.7c0 70.7-57.3 128-128 128l-96 0c-35.3 0-64 28.7-64 64l0 6.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3l0-6.7 0-198.7C19.7 141 0 112.8 0 80C0 35.8 35.8 0 80 0s80 35.8 80 80zm232 0a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM80 456a24 24 0 1 0 0-48 24 24 0 1 0 0 48z"></path></svg> <!--?lit$456334845$-->latest
  853. </span>
  854. <span class="caret"><!--?lit$456334845$--><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="caret-down" class="svg-inline--fa fa-caret-down icon" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path fill="currentColor" d="M137.4 374.6c12.5 12.5 32.8 12.5 45.3 0l128-128c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8L32 192c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l128 128z"></path></svg></span>
  855. </header>
  856. <main class=" closed ">
  857. <!--?lit$456334845$--> <!--?lit$456334845$-->
  858. <dl class="versions">
  859. <dt>Versions</dt>
  860. <!--?lit$456334845$--><!----><dd><!--?lit$456334845$--><strong><!--?lit$456334845$--><a href="https://corner.readthedocs.io/en/latest/"><!--?lit$456334845$-->latest</a></strong></dd><!----><!----><dd><!--?lit$456334845$--><a href="https://corner.readthedocs.io/en/stable/"><!--?lit$456334845$-->stable</a></dd><!---->
  861. </dl>
  862. <!--?lit$456334845$--> <!--?lit$456334845$-->
  863. <dl>
  864. <dt>On Read the Docs</dt>
  865. <dd>
  866. <a href="https://app.readthedocs.org/projects/corner/?utm_source=corner&amp;utm_content=flyout">Project Home</a>
  867. </dd>
  868. <dd>
  869. <a href="https://app.readthedocs.org/projects/corner/builds/?utm_source=corner&amp;utm_content=flyout">Builds</a>
  870. </dd>
  871. </dl>
  872. <!--?lit$456334845$--> <!--?lit$456334845$-->
  873. <dl>
  874. <dt>Search</dt>
  875. <dd>
  876. <form id="flyout-search-form">
  877. <input type="text" name="q" aria-label="Search docs" placeholder="Search docs">
  878. </form>
  879. </dd>
  880. </dl>
  881. <hr>
  882. <!--?lit$456334845$-->
  883. <small>
  884. <span>
  885. <a href="https://docs.readthedocs.io/page/addons.html?utm_source=corner&amp;utm_content=flyout">Addons documentation</a></span>
  886. <span> ― </span>
  887. <span>Hosted by
  888. <a href="https://about.readthedocs.com/?utm_source=corner&amp;utm_content=flyout">Read the Docs</a></span>
  889. </small>
  890. </main>
  891. </div>
  892. </template></readthedocs-flyout><readthedocs-notification class="raised toast"><template shadowrootmode="open"><!----></template></readthedocs-notification><readthedocs-search class="raised floating"><template shadowrootmode="open"><!---->
  893. <div role="search" hidden="">
  894. <div class="background"></div>
  895. <div class="content">
  896. <form class=" ">
  897. <label><!--?lit$456334845$--><svg aria-labelledby="svg-inline--fa-title-87kOqJ5oWTEd" data-prefix="fas" data-icon="magnifying-glass" class="svg-inline--fa fa-magnifying-glass" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><title id="svg-inline--fa-title-87kOqJ5oWTEd">Search docs</title><path fill="currentColor" d="M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM208 352a144 144 0 1 0 0-288 144 144 0 1 0 0 288z"></path></svg></label>
  898. <input placeholder="Search docs" type="search" autocomplete="off">
  899. </form>
  900. <!--?lit$456334845$-->
  901. <div class="results">
  902. <!--?lit$456334845$--><p>No recent searches</p>
  903. </div>
  904. <div class="footer">
  905. <ul class="help">
  906. <li><code>Enter</code> to select</li>
  907. <li><code>Up</code>/<code>Down</code> to navigate</li>
  908. <li><code>Esc</code> to close</li>
  909. </ul>
  910. <div class="credits">
  911. Search powered by
  912. <a href="https://about.readthedocs.com/?utm_source=corner&amp;utm_content=search">
  913. <img alt="Read the Docs" src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJzdmciIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSI2OTQgMTk3IDIwMDAgNDAwIj4KPGcgaWQ9ImxvZ28iIHRyYW5zZm9ybT0ibWF0cml4KDAuNTU3NTM2NDQsMCwwLDAuNTU3NTM2NDQsNjguMzA4MTM1LDEwNTAuMTI2MikiPgoJPHBhdGggc3R5bGU9ImZpbGw6IzMyMzIyQSIgZD0iTTE0MDguMS0xMTgxLjdjLTcuNSwxLTEyLjcsNy44LTExLjcsMTUuMyAgIGMwLjcsNS40LDQuNiw5LjksOS45LDExLjNjMCwwLDMzLjIsMTEsODkuNywxNS42YzQ1LjQsMy43LDk2LjktMy4yLDk2LjktMy4yYzcuNS0wLjIsMTMuNS02LjUsMTMuMi0xNHMtNi41LTEzLjUtMTQtMTMuMiAgIGMtMC45LDAtMS44LDAuMS0yLjYsMC4zYzAsMC01MC40LDYuMi05MS4zLDIuOWMtNTQtNC40LTgzLjQtMTQuMy04My40LTE0LjNDMTQxMi42LTExODEuNywxNDEwLjMtMTE4MiwxNDA4LjEtMTE4MS43eiAgICBNMTQwOC4xLTEyNDkuM2MtNy41LDEtMTIuNyw3LjgtMTEuNywxNS4zYzAuNyw1LjQsNC42LDkuOSw5LjksMTEuM2MwLDAsMzMuMiwxMSw4OS43LDE1LjZjNDUuNCwzLjcsOTYuOS0zLjIsOTYuOS0zLjIgICBjNy41LTAuMiwxMy41LTYuNSwxMy4yLTE0cy02LjUtMTMuNS0xNC0xMy4yYy0wLjksMC0xLjgsMC4xLTIuNiwwLjNjMCwwLTUwLjQsNi4yLTkxLjMsMi45Yy01NC00LjQtODMuNC0xNC4zLTgzLjQtMTQuMyAgIEMxNDEyLjYtMTI0OS4zLDE0MTAuMy0xMjQ5LjYsMTQwOC4xLTEyNDkuM3ogTTE0MDguMS0xMzE2LjljLTcuNSwxLTEyLjcsNy44LTExLjcsMTUuM2MwLjcsNS40LDQuNiw5LjksOS45LDExLjMgICBjMCwwLDMzLjIsMTEsODkuNywxNS42YzQ1LjQsMy43LDk2LjktMy4yLDk2LjktMy4yYzcuNS0wLjIsMTMuNS02LjUsMTMuMi0xNHMtNi41LTEzLjUtMTQtMTMuMmMtMC45LDAtMS44LDAuMS0yLjYsMC4zICAgYzAsMC01MC40LDYuMi05MS4zLDIuOWMtNTQtNC40LTgzLjQtMTQuMy04My40LTE0LjNDMTQxMi42LTEzMTYuOSwxNDEwLjMtMTMxNy4yLDE0MDguMS0xMzE2Ljl6IE0xNDA4LjEtMTM4NC40ICAgYy03LjUsMS0xMi43LDcuOC0xMS43LDE1LjNjMC43LDUuNCw0LjYsOS45LDkuOSwxMS4zYzAsMCwzMy4yLDExLDg5LjcsMTUuNmM0NS40LDMuNyw5Ni45LTMuMiw5Ni45LTMuMmM3LjUtMC4yLDEzLjUtNi41LDEzLjItMTQgICBzLTYuNS0xMy41LTE0LTEzLjJjLTAuOSwwLTEuOCwwLjEtMi42LDAuM2MwLDAtNTAuNCw2LjItOTEuMywyLjljLTU0LTQuNC04My40LTE0LjMtODMuNC0xNC4zICAgQzE0MTIuNi0xMzg0LjUsMTQxMC4zLTEzODQuNywxNDA4LjEtMTM4NC40eiBNMTMxMy40LTE0NTUuN2MtNzEsMC41LTk3LjUsMjIuMy05Ny41LDIyLjN2NTMwLjNjMCwwLDI1LjgtMjIuMywxMDktMTguOSAgIGM4My4yLDMuNCwxMDAuMywzMi42LDIwMi41LDM0LjZjMTAyLjIsMi4xLDEyNy45LTE1LjcsMTI3LjktMTUuN2wxLjUtNTQwLjZjMCwwLTQ2LDEzLTEzNS41LDEzLjdzLTExMS0yMi44LTE5My4yLTI1LjUgICBDMTMyMy0xNDU1LjYsMTMxOC4xLTE0NTUuNywxMzEzLjQtMTQ1NS43eiBNMTM3Mi44LTE0MjEuMWMwLDAsNDMsMTQuMiwxMjIuNSwxOC4yYzY3LjIsMy4zLDEzNC41LTYuNiwxMzQuNS02LjZ2NDgwLjUgICBjMCwwLTM0LjEsMTcuOS0xMTkuMywxMS44Yy02Ni00LjctMTM4LjctMjkuNy0xMzguNy0yOS43TDEzNzIuOC0xNDIxLjF6IE0xMzMxLjMtMTQwOC42YzcuNiwwLDEzLjcsNi4yLDEzLjcsMTMuNyAgIHMtNi4yLDEzLjctMTMuNywxMy43YzAsMC0yMi4zLDAuMS0zNS44LDEuNWMtMjIuOCwyLjMtMzguMywxMC42LTM4LjMsMTAuNmMtNi43LDMuNS0xNSwxLTE4LjUtNS43cy0xLTE1LDUuNy0xOC41YzAsMCwwLDAsMCwwICAgYzAsMCwyMC4yLTEwLjcsNDguNC0xMy41QzEzMDkuMS0xNDA4LjUsMTMzMS4zLTE0MDguNiwxMzMxLjMtMTQwOC42eiBNMTMxOC4xLTEzNDAuOGM3LjYtMC4yLDEzLjMsMCwxMy4zLDAgICBjNy41LDAuOSwxMi45LDcuOCwxMiwxNS4zYy0wLjgsNi4zLTUuNywxMS4yLTEyLDEyYzAsMC0yMi4zLDAuMS0zNS44LDEuNWMtMjIuOCwyLjMtMzguMywxMC42LTM4LjMsMTAuNmMtNi43LDMuNS0xNSwwLjktMTguNS01LjggICBjLTMuNS02LjctMC45LTE1LDUuOC0xOC41YzAsMCwyMC4yLTEwLjcsNDguNC0xMy41QzEzMDAuOS0xMzQwLjEsMTMxMC41LTEzNDAuNiwxMzE4LjEtMTM0MC44eiBNMTMzMS4zLTEyNzMuMyAgIGM3LjYsMCwxMy43LDYuMiwxMy43LDEzLjdjMCw3LjYtNi4yLDEzLjctMTMuNywxMy43YzAsMC0yMi4zLTAuMS0zNS44LDEuMmMtMjIuOCwyLjMtMzguMywxMC42LTM4LjMsMTAuNiAgIGMtNi43LDMuNS0xNSwwLjktMTguNS01LjhjLTMuNS02LjctMC45LTE1LDUuOC0xOC41YzAsMCwyMC4yLTEwLjcsNDguNC0xMy41QzEzMDkuMS0xMjczLjQsMTMzMS4zLTEyNzMuMywxMzMxLjMtMTI3My4zeiIvPgo8L2c+CjxnIGlkPSJ0ZXh0Ij4KCTxwYXRoIHN0eWxlPSJmaWxsOiMzMjMyMkEiIGQ9Ik0xMTI4LjYsNDkxLjlWNDcwbDguOS0wLjhjNS4yLTAuNSw3LjgtMy4xLDcuOC03LjZWMzM2bC0xNS40LTAuOHYtMjNoNzMuOCAgIGMyMC45LDAsMzYuOSwzLjksNDguMSwxMS42YzExLjIsNy43LDE2LjgsMjAuNSwxNi44LDM4LjFjMCwxMi4zLTMuMiwyMi4zLTkuNywzMC4zYy02LjMsNy45LTEzLjksMTMuNy0yMi43LDE3LjMgICBjNi41LDIuMywxMS42LDcuOCwxNS40LDE2LjVsMTkuNSw0Mi40bDE1LjQsMC41djIzaC02Ni44VjQ3MGw3LjgtMC44YzQuMS0wLjUsNi4yLTIuMiw2LjItNC45YzAtMS4xLTAuNC0yLjMtMS4xLTMuOGwtMTIuNy0yNyAgIGMtMi00LjUtNC4yLTcuNy02LjgtOS41Yy0yLjMtMi01LjgtMy0xMC4zLTNoLTI0LjZ2NDdsMTcuNiwwLjh2MjNMMTEyOC42LDQ5MS45IE0xMTc4LjMsMzk1LjRoMjMuNWMyMi4yLDAsMzMuMi05LjksMzMuMi0yOS43ICAgYzAtMTEuNC0zLTE4LjctOC45LTIyLjJjLTUuOC0zLjQtMTUuMS01LjEtMjguMS01LjFoLTE5LjdWMzk1LjQiLz4KCTxwYXRoIHN0eWxlPSJmaWxsOiMzMjMyMkEiIGQ9Ik0xMzU2LDM1MS45YzEzLjUsMCwyNC4yLDMuMywzMi4yLDEwYzcuOSw2LjUsMTEuOSwxNS43LDExLjksMjcuNmMwLDcuOS0xLjcsMTUtNS4xLDIxLjEgICBjLTMuNCw1LjktNy43LDEwLjYtMTIuNywxNC4xYy01LDMuNC0xMS4yLDYuMi0xOC40LDguNGMtMTIuMSwzLjYtMjUuNyw1LjQtNDAuOCw1LjRjMC41LDkuNSwzLjUsMTcuMyw4LjksMjMuMiAgIGM1LjQsNS44LDEzLjcsOC42LDI0LjksOC42YzExLjIsMCwyMi4zLTQsMzMuNS0xMS45bDEwLjMsMjEuOWMtMy42LDMuMi05LjcsNi42LTE4LjQsMTBjLTguNSwzLjQtMTguMiw1LjEtMjkuMiw1LjEgICBjLTIyLDAtMzguMS02LTQ4LjQtMTguMWMtMTAuMy0xMi4zLTE1LjQtMjktMTUuNC01MC4zYzAtMjEuMyw1LjktMzkuMSwxNy42LTUzLjVDMTMxOC41LDM1OS4xLDEzMzQuOSwzNTEuOSwxMzU2LDM1MS45ICAgIE0xMzQzLjYsNDEzLjhjNi43LTEuMywxMi44LTMuOSwxOC40LTcuOGM1LjYtNC4xLDguNC05LDguNC0xNC42YzAtMTEtNS40LTE2LjUtMTYuMi0xNi41Yy0xMC4xLDAtMTcuOCw0LjEtMjMuMiwxMi4yICAgYy01LjQsNy45LTguNCwxNy41LTguOSwyOC42QzEzMjkuOSw0MTUuNSwxMzM3LjEsNDE0LjksMTM0My42LDQxMy44Ii8+Cgk8cGF0aCBzdHlsZT0iZmlsbDojMzIzMjJBIiBkPSJNMTUyOS42LDM2MS40djEwMC41YzAsMi45LDAuNSw0LjksMS40LDUuOWMxLjEsMS4xLDIuOSwxLjcsNS40LDEuOWw4LjYsMC41djIxLjZoLTQzdi0xNS43ICAgbC0wLjgtMC4zYy05LDEzLTIxLjQsMTkuNS0zNywxOS41Yy0xOC40LDAtMzItNS45LTQwLjgtMTcuNmMtOC44LTExLjctMTMuMi0yNy43LTEzLjItNDguMWMwLTI0LjUsNS45LTQzLjYsMTcuOC01Ny4zICAgYzExLjktMTMuNywyOS43LTIwLjUsNTMuNS0yMC41QzE0OTYuOCwzNTEuOSwxNTEyLjksMzU1LjEsMTUyOS42LDM2MS40IE0xNDk4LjMsNDQ4Ljl2LTcwYy01LTIuMy0xMi0zLjUtMjAuOC0zLjUgICBjLTEyLjEsMC0yMC44LDQuOS0yNi4yLDE0LjZjLTUuNCw5LjctOC4xLDIyLjYtOC4xLDM4LjdjMCwyOS4yLDkuNCw0My44LDI4LjEsNDMuOGM3LjksMCwxNC40LTIuMywxOS41LTcgICBDMTQ5NS43LDQ2MC42LDE0OTguMyw0NTUuMSwxNDk4LjMsNDQ4LjkiLz4KCTxwYXRoIHN0eWxlPSJmaWxsOiMzMjMyMkEiIGQ9Ik0xNjE2LjMsMzUxLjljNy43LDAsMTUuMSwxLjEsMjIuMiwzLjJ2LTI3LjNjMC00LTIuMy02LjEtNy02LjVsLTExLjYtMC44di0yMS40aDUwLjN2MTY0LjMgICBjMC4yLDQuMSwyLjQsNi4yLDYuOCw2LjJsOS41LDAuNXYyMS42aC00My44VjQ3NmwtMC44LTAuM2MtOC4xLDEzLjItMjAuNCwxOS43LTM2LjgsMTkuN2MtMjAuNSwwLTM1LTYuOC00My4yLTIwLjUgICBjLTcuNi0xMi40LTExLjQtMjcuNy0xMS40LTQ1LjdjMC0yMy40LDUuOC00Mi4yLDE3LjMtNTYuMkMxNTc5LjMsMzU4LjksMTU5NS41LDM1MS45LDE2MTYuMywzNTEuOSBNMTYzOC40LDQ0OS44di03MCAgIGMtNi41LTIuOS0xMy4zLTQuMy0yMC41LTQuM2MtMTEuOSwwLTIwLjYsNC44LTI2LjIsMTQuM2MtNS40LDkuNi04LjEsMjEuNy04LjEsMzYuNWMwLDMwLjMsOS43LDQ1LjQsMjkuMiw0NS40ICAgYzcuNCwwLDEzLjUtMi4xLDE4LjQtNi4yQzE2MzYsNDYxLjEsMTYzOC40LDQ1NS45LDE2MzguNCw0NDkuOCIvPgoJPHBhdGggc3R5bGU9ImZpbGw6IzMyMzIyQSIgZD0iTTE3OTEuNyw0NzAuNmMwLDAtMTIuNSw0LjctMTkuMiw0LjdzLTkuMi0zLjMtOS4yLTExLjhjMC0zLjgsMC41LTguOCwxLjQtMTQuOWwxMC4yLTYzLjFoMzIuNiAgIGwyLjgtMTcuN2gtMzIuNmw1LjctMzQuNUwxNzYwLDMzOGwtNC43LDI5LjhsLTIzLjYsMi40bC0yLjYsMTUuNGgyMy40TDE3NDIsNDUxYy0wLjksNS40LTEuNCwxMC42LTEuNCwxNS4xICAgYzAsMTguNyw3LjgsMjguMSwyMy45LDI4LjFjMTMuMiwwLDMxLTEwLjksMzEtMTAuOUwxNzkxLjcsNDcwLjYiLz4KCTxwYXRoIHN0eWxlPSJmaWxsOiMzMjMyMkEiIGQ9Ik0xODY1LDMwOS44bC00My4zLDEuMmwtMi4xLDEzbDE5LjksNC43bC0yNiwxNjMuMmgyMi41bDcuOC00Mi42YzAsMCwxOC43LTY1LDQ5LjQtNjUgICBjOS41LDAsMTIuMyw2LjksMTIuMywxNS42YzAsMy4zLTAuNSw2LjktMC45LDEwLjRsLTEzLjUsODEuNmw0My4zLTIuNGwyLjEtMTNsLTE5LjktMy41bDEwLjYtNjYuMmMwLjctNSwxLjItOS43LDEuMi0xNCAgIGMwLTE3LTYuOS0yOC42LTI1LjgtMjguNmMtMzUuOSwwLTU0LjksNDUuNi01NS44LDQ4LjJMMTg2NSwzMDkuOCIvPgoJPHBhdGggc3R5bGU9ImZpbGw6IzMyMzIyQSIgZD0iTTIwMzUsNDY0LjdjMCwwLTIxLjUsMTAuNi0zOC44LDEwLjZjLTE3LjcsMC0yNi03LjgtMjYtMjQuNmMwLTMuMSwwLjItNi42LDAuNy0xMC4yICAgYzQ5LDAsODMtMTguNCw4My00NS42YzAtMTguNy0xNS4xLTMwLjctMzktMzAuN2MtMzcuNiwwLTY4LjMsMzguNS02OC4zLDg3LjVjMCwyNiwxNi42LDQyLjYsNDIuNiw0Mi42YzI3LjksMCw1My0xNy41LDUzLTE3LjUgICBMMjAzNSw0NjQuNyBNMTk3Myw0MjRjNi4xLTI0LjgsMjMuNC00Mi4xLDQwLjctNDIuMWMxMi4xLDAsMTcuNyw1LDE3LjcsMTUuNEMyMDMxLjUsNDEyLjksMjAwNi42LDQyNCwxOTczLDQyNCIvPgoJPHBhdGggc3R5bGU9ImZpbGw6IzMyMzIyQSIgZD0iTTIwOTMuNyw0OTEuOVY0NzBsOC45LTAuOGM1LjItMC41LDcuOC0zLjEsNy44LTcuNlYzMzZsLTE1LjQtMC44di0yM2g3NC4xICAgYzI2LjUsMCw0Ny4xLDcsNjEuOSwyMS4xYzE1LDE0LjEsMjIuNCwzNC45LDIyLjQsNjIuNGMwLDE3LjEtMi4zLDMyLjEtNi44LDQ0LjljLTQuNSwxMi42LTEwLjYsMjIuNS0xOC40LDI5LjcgICBjLTE1LjUsMTQuNC0zNC44LDIxLjYtNTcuOCwyMS42TDIwOTMuNyw0OTEuOSBNMjE0My40LDMzOC40VjQ2NmgyNy42YzE1LjUsMCwyNy42LTUuNiwzNi4yLTE2LjhjOC42LTExLjIsMTMtMjcuNCwxMy00OC43ICAgYzAtNDEuNC0xNy42LTYyLjItNTIuNy02Mi4ySDIxNDMuNCIvPgoJPHBhdGggc3R5bGU9ImZpbGw6IzMyMzIyQSIgZD0iTTIzMzAsNDcyLjJjMTkuNiwwLDI5LjUtMTUuOSwyOS41LTQ3LjZjMC0xNi0yLjMtMjguMi02LjgtMzYuNWMtNC4zLTguMy0xMS43LTEyLjQtMjIuMi0xMi40ICAgYy0xMC4zLDAtMTcuOCw0LTIyLjcsMTEuOWMtNC45LDcuOS03LjMsMTguNy03LjMsMzIuNGMwLDI1LjQsNC43LDQxLjQsMTQuMSw0Ny44QzIzMTguOCw0NzAuNywyMzIzLjksNDcyLjIsMjMzMCw0NzIuMiAgICBNMjI2Ny45LDQyMy44YzAtMTMuMywyLTI0LjksNS45LTM0LjZjNC05LjksOS4zLTE3LjUsMTUuOS0yMi43YzEyLjgtOS43LDI2LjktMTQuNiw0Mi40LTE0LjZjMTAuOCwwLDE5LjksMS44LDI3LjMsNS40ICAgYzcuNiwzLjQsMTMuNCw3LjUsMTcuNiwxMi4yYzQuMyw0LjUsNy45LDExLjIsMTAuOCwyMGMzLjEsOC42LDQuNiwxOC45LDQuNiwzMC44YzAsMjQuOS02LDQzLjctMTguMSw1Ni41ICAgYy0xMi4xLDEyLjgtMjcuNiwxOS4yLTQ2LjUsMTkuMmMtMTguNywwLTMzLjQtNi00NC4xLTE4LjFDMjI3My4yLDQ2NS42LDIyNjcuOSw0NDcuNiwyMjY3LjksNDIzLjgiLz4KCTxwYXRoIHN0eWxlPSJmaWxsOiMzMjMyMkEiIGQ9Ik0yNDM4LjIsNDIyLjVjMCwxNS4zLDIuOSwyNy4yLDguNiwzNS43YzUuOCw4LjUsMTQuMSwxMi43LDI0LjksMTIuN2MxMSwwLDIxLjgtMy45LDMyLjQtMTEuNiAgIGwxMS42LDIwLjhjLTEyLjgsMTAuNS0yOC44LDE1LjctNDguMSwxNS43Yy0xOS4zLDAtMzQuNS02LTQ1LjctMTguMWMtMTEtMTIuMy0xNi41LTMwLjMtMTYuNS01NC4xczYuMy00MS42LDE4LjktNTMuNSAgIGMxMi44LTEyLjEsMjcuMS0xOC4xLDQzLTE4LjFjMTYsMCwzMC45LDMuNyw0NC42LDExLjF2MzUuMWwtMjQuOSwxLjl2LTEzYzAtNC45LTEuOC03LjgtNS40LTguOWMtMy40LTEuMy03LTEuOS0xMC44LTEuOSAgIEMyNDQ5LjEsMzc2LjIsMjQzOC4yLDM5MS42LDI0MzguMiw0MjIuNSIvPgoJPHBhdGggc3R5bGU9ImZpbGw6IzMyMzIyQSIgZD0iTTI1OTIuOSwzNzYuNWMtNC4zLTEuNi05LjYtMi40LTE1LjctMi40Yy02LjEsMC0xMS4xLDEuNC0xNC45LDQuM2MtMy42LDIuNy01LjQsNi4xLTUuNCwxMC4zICAgYzAsNCwwLjYsNy4xLDEuOSw5LjVjMS40LDIuMiwzLjYsNC4xLDYuNSw1LjdjNC41LDIuMyw5LjksNC40LDE2LjIsNi4yYzYuMywxLjYsMTEsMywxNC4xLDQuMWMzLjEsMC45LDYuOCwyLjUsMTEuNCw0LjkgICBjNC43LDIuMyw4LjIsNC45LDEwLjUsNy42YzYuMyw2LjcsOS41LDE1LjIsOS41LDI1LjdjMCwxMy41LTUsMjQuMS0xNC45LDMxLjljLTkuNyw3LjYtMjIuMiwxMS40LTM3LjMsMTEuNCAgIGMtMjIsMC0zOC42LTIuOC00OS43LTguNHYtMzcuNmwyNC4zLTEuOXYxM2MwLDcuOSw3LjYsMTEuOSwyMi43LDExLjlzMjIuNy01LjUsMjIuNy0xNi41YzAtNC0xLjQtNy4yLTQuMS05LjcgICBjLTIuNS0yLjUtNS00LjItNy42LTUuMWMtMi41LTAuOS01LjYtMS44LTkuMi0yLjdjLTMuNC0wLjktNi44LTEuOC0xMC4zLTIuN2MtMy4yLTAuOS02LjgtMi4xLTEwLjgtMy41Yy0zLjgtMS42LTgtMy45LTEyLjctNi44ICAgYy05LjItNS45LTEzLjgtMTUuOS0xMy44LTI5LjdjMC0xNC4xLDUtMjQuOSwxNC45LTMyLjRjOS45LTcuNiwyMi4zLTExLjQsMzcuMy0xMS40YzE1LjEsMCwzMC4xLDMuNiw0NC45LDEwLjh2MzIuNGwtMjQuMywxLjkgICB2LTExLjRDMjU5OS4xLDM4MS4yLDI1OTcsMzc4LjEsMjU5Mi45LDM3Ni41Ii8+CjwvZz4KPGRpdiB4bWxucz0iIiBpZD0ic2FrYS1ndWktcm9vdCI+PGRpdj48ZGl2PjxzdHlsZS8+PC9kaXY+PC9kaXY+PC9kaXY+PC9zdmc+">
  914. </a>
  915. </div>
  916. </div>
  917. </div>
  918. </div>
  919. </template></readthedocs-search><readthedocs-hotkeys><template shadowrootmode="open"><!----></template></readthedocs-hotkeys></body><grammarly-desktop-integration data-grammarly-shadow-root="true"><template shadowrootmode="open"><style>
  920. div.grammarly-desktop-integration {
  921. position: absolute;
  922. width: 1px;
  923. height: 1px;
  924. padding: 0;
  925. margin: -1px;
  926. overflow: hidden;
  927. clip: rect(0, 0, 0, 0);
  928. white-space: nowrap;
  929. border: 0;
  930. -moz-user-select: none;
  931. -webkit-user-select: none;
  932. -ms-user-select:none;
  933. user-select:none;
  934. }
  935. div.grammarly-desktop-integration:before {
  936. content: attr(data-content);
  937. }
  938. </style><div aria-label="grammarly-integration" role="group" tabindex="-1" class="grammarly-desktop-integration" data-content="{&quot;mode&quot;:&quot;limited&quot;,&quot;isActive&quot;:false,&quot;isUserDisabled&quot;:false}"></div></template></grammarly-desktop-integration></html>