HTML Editor Syntax Highlighter - Version 2.2.4

Version Description

  • fixed bug: Allow Multiple Instances of CodeMirror on a page #71
  • fixed bug: js error when custom post type does not support 'editor' feature #62
Download this release

Release Info

Developer arniebradfo
Plugin Icon 128x128 HTML Editor Syntax Highlighter
Version 2.2.4
Comparing to
See all releases

Code changes from version 2.2.3 to 2.2.4

Files changed (4) hide show
  1. dist/hesh.css +62 -17
  2. dist/hesh.js +1345 -673
  3. dist/hesh.min.css +1 -1
  4. dist/hesh.min.js +1 -13
dist/hesh.css CHANGED
@@ -4,7 +4,7 @@
4
  * Author URI: http://arniebradfo.com/
5
  * Author: Peter Mukhortov
6
  * Author URI: http://mukhortov.com/
7
- * Version: 2.2.3
8
  **//* BASICS */.CodeMirror {
9
  /* Set height, width, borders, and global font properties here */
10
  font-family: monospace;
@@ -62,9 +62,16 @@
62
  z-index: 1;
63
  }
64
 
 
 
 
 
 
 
65
  .cm-animate-fat-cursor {
66
  width: auto;
67
  border: 0;
 
68
  animation: blink 1.06s steps(1) infinite;
69
  background-color: #7e7;
70
  }/* Can style cursor different in overwrite (non-insert) mode */.cm-tab {
@@ -197,11 +204,11 @@
197
  .CodeMirror-composing {
198
  border-bottom: 2px solid;
199
  }/* Default styles for common addons */div.CodeMirror span.CodeMirror-matchingbracket {
200
- color: #0f0;
201
  }
202
 
203
  div.CodeMirror span.CodeMirror-nonmatchingbracket {
204
- color: #f22;
205
  }
206
 
207
  .CodeMirror-matchingtag {
@@ -319,6 +326,7 @@ z-index: 2;
319
  position: relative;
320
  overflow: visible;
321
  -webkit-tap-highlight-color: transparent;
 
322
  font-variant-ligatures: contextual;
323
  }
324
 
@@ -340,7 +348,8 @@ z-index: 0;
340
  .CodeMirror-linewidget {
341
  position: relative;
342
  z-index: 2;
343
- overflow: auto;
 
344
  }
345
 
346
  .CodeMirror-rtl pre {
@@ -350,6 +359,7 @@ direction: rtl;
350
  .CodeMirror-code {
351
  outline: none;
352
  }/* Force content-box sizing for the elements where we expect it */.CodeMirror-scroll,.CodeMirror-sizer,.CodeMirror-gutter,.CodeMirror-gutters,.CodeMirror-linenumber {
 
353
  box-sizing: content-box;
354
  }
355
 
@@ -412,7 +422,7 @@ background: #d7d4f0;
412
  background-color: #ffa;
413
  background-color: rgba(255, 255, 0, 0.4);
414
  }/* Used to force a border model for a node */.cm-force-border {
415
- padding-right: .1px;
416
  }/* See issue #2901 */.cm-tab-wrap-hack:after {
417
  content: '';
418
  }/* Help users use markselection to safely style text background */span.CodeMirror-selectedtext {
@@ -773,6 +783,7 @@ background: #314151;
773
  }
774
 
775
  .cm-s-ambiance.CodeMirror {
 
776
  box-shadow: none;
777
  }/* ambiance theme for codemirror *//* Color scheme */.cm-s-ambiance .cm-header {
778
  color: blue;
@@ -898,15 +909,17 @@ background: rgba(255, 255, 255, 0.1);
898
  .cm-s-ambiance .CodeMirror-line::-moz-selection,.cm-s-ambiance .CodeMirror-line > span::-moz-selection,.cm-s-ambiance .CodeMirror-line > span > span::-moz-selection {
899
  background: rgba(255, 255, 255, 0.1);
900
  }/* Editor styling */.cm-s-ambiance.CodeMirror {
901
- line-height: 1.40em;
902
  color: #E6E1DC;
903
  background-color: #202020;
 
904
  box-shadow: inset 0 0 10px black;
905
  }
906
 
907
  .cm-s-ambiance .CodeMirror-gutters {
908
  background: #3D3D3D;
909
  border-right: 1px solid #4D4D4D;
 
910
  box-shadow: 0 10px 20px black;
911
  }
912
 
@@ -1244,7 +1257,10 @@ color: white !important;
1244
 
1245
  .cm-s-bespin .CodeMirror-activeline-background {
1246
  background: #404040;
1247
- }/* Port of TextMate's Blackboard theme */.cm-s-blackboard.CodeMirror {background: #0C1021;color: #F8F8F8;}.cm-s-blackboard div.CodeMirror-selected {background: #253B76;}.cm-s-blackboard .CodeMirror-line::-moz-selection,.cm-s-blackboard .CodeMirror-line > span::-moz-selection,.cm-s-blackboard .CodeMirror-line > span > span::-moz-selection {background: rgba(37, 59, 118, 0.99);}.cm-s-blackboard .CodeMirror-line::selection,.cm-s-blackboard .CodeMirror-line > span::selection,.cm-s-blackboard .CodeMirror-line > span > span::selection {background: rgba(37, 59, 118, 0.99);}.cm-s-blackboard .CodeMirror-line::-moz-selection,.cm-s-blackboard .CodeMirror-line > span::-moz-selection,.cm-s-blackboard .CodeMirror-line > span > span::-moz-selection {background: rgba(37, 59, 118, 0.99);}.cm-s-blackboard .CodeMirror-gutters {background: #0C1021;border-right: 0;}.cm-s-blackboard .CodeMirror-guttermarker {color: #FBDE2D;}.cm-s-blackboard .CodeMirror-guttermarker-subtle {color: #888;}.cm-s-blackboard .CodeMirror-linenumber {color: #888;}.cm-s-blackboard .CodeMirror-cursor {border-left: 1px solid #A7A7A7;}.cm-s-blackboard .cm-keyword {color: #FBDE2D;}.cm-s-blackboard .cm-atom {color: #D8FA3C;}.cm-s-blackboard .cm-number {color: #D8FA3C;}.cm-s-blackboard .cm-def {color: #8DA6CE;}.cm-s-blackboard .cm-variable {color: #FF6400;}.cm-s-blackboard .cm-operator {color: #FBDE2D;}.cm-s-blackboard .cm-comment {color: #AEAEAE;}.cm-s-blackboard .cm-string {color: #61CE3C;}.cm-s-blackboard .cm-string-2 {color: #61CE3C;}.cm-s-blackboard .cm-meta {color: #D8FA3C;}.cm-s-blackboard .cm-builtin {color: #8DA6CE;}.cm-s-blackboard .cm-tag {color: #8DA6CE;}.cm-s-blackboard .cm-attribute {color: #8DA6CE;}.cm-s-blackboard .cm-header {color: #FF6400;}.cm-s-blackboard .cm-hr {color: #AEAEAE;}.cm-s-blackboard .cm-link {color: #8DA6CE;}.cm-s-blackboard .cm-error {background: #9D1E15;color: #F8F8F8;}.cm-s-blackboard .CodeMirror-activeline-background {background: #3C3636;}.cm-s-blackboard .CodeMirror-matchingbracket {outline: 1px solid grey;color: white !important;}.cm-s-cobalt.CodeMirror {background: #002240;color: white;}.cm-s-cobalt div.CodeMirror-selected {background: #b36539;}.cm-s-cobalt .CodeMirror-line::-moz-selection,.cm-s-cobalt .CodeMirror-line > span::-moz-selection,.cm-s-cobalt .CodeMirror-line > span > span::-moz-selection {background: rgba(179, 101, 57, 0.99);}.cm-s-cobalt .CodeMirror-line::selection,.cm-s-cobalt .CodeMirror-line > span::selection,.cm-s-cobalt .CodeMirror-line > span > span::selection {background: rgba(179, 101, 57, 0.99);}.cm-s-cobalt .CodeMirror-line::-moz-selection,.cm-s-cobalt .CodeMirror-line > span::-moz-selection,.cm-s-cobalt .CodeMirror-line > span > span::-moz-selection {background: rgba(179, 101, 57, 0.99);}.cm-s-cobalt .CodeMirror-gutters {background: #002240;border-right: 1px solid #aaa;}.cm-s-cobalt .CodeMirror-guttermarker {color: #ffee80;}.cm-s-cobalt .CodeMirror-guttermarker-subtle {color: #d0d0d0;}.cm-s-cobalt .CodeMirror-linenumber {color: #d0d0d0;}.cm-s-cobalt .CodeMirror-cursor {border-left: 1px solid white;}.cm-s-cobalt span.cm-comment {color: #08f;}.cm-s-cobalt span.cm-atom {color: #845dc4;}.cm-s-cobalt span.cm-number,.cm-s-cobalt span.cm-attribute {color: #ff80e1;}.cm-s-cobalt span.cm-keyword {color: #ffee80;}.cm-s-cobalt span.cm-string {color: #3ad900;}.cm-s-cobalt span.cm-meta {color: #ff9d00;}.cm-s-cobalt span.cm-variable-2,.cm-s-cobalt span.cm-tag {color: #9effff;}.cm-s-cobalt span.cm-variable-3,.cm-s-cobalt span.cm-def,.cm-s-cobalt .cm-type {color: white;}.cm-s-cobalt span.cm-bracket {color: #d8d8d8;}.cm-s-cobalt span.cm-builtin,.cm-s-cobalt span.cm-special {color: #ff9e59;}.cm-s-cobalt span.cm-link {color: #845dc4;}.cm-s-cobalt span.cm-error {color: #9d1e15;}.cm-s-cobalt .CodeMirror-activeline-background {background: #002D57;}.cm-s-cobalt .CodeMirror-matchingbracket {outline: 1px solid grey;color: white !important;}.cm-s-colorforth.CodeMirror {background: #000000;color: #f8f8f8;}.cm-s-colorforth .CodeMirror-gutters {background: #0a001f;border-right: 1px solid #aaa;}.cm-s-colorforth .CodeMirror-guttermarker {color: #FFBD40;}.cm-s-colorforth .CodeMirror-guttermarker-subtle {color: #78846f;}.cm-s-colorforth .CodeMirror-linenumber {color: #bababa;}.cm-s-colorforth .CodeMirror-cursor {border-left: 1px solid white;}.cm-s-colorforth span.cm-comment {color: #ededed;}.cm-s-colorforth span.cm-def {color: #ff1c1c;font-weight: bold;}.cm-s-colorforth span.cm-keyword {color: #ffd900;}.cm-s-colorforth span.cm-builtin {color: #00d95a;}.cm-s-colorforth span.cm-variable {color: #73ff00;}.cm-s-colorforth span.cm-string {color: #007bff;}.cm-s-colorforth span.cm-number {color: #00c4ff;}.cm-s-colorforth span.cm-atom {color: #606060;}.cm-s-colorforth span.cm-variable-2 {color: #EEE;}.cm-s-colorforth span.cm-variable-3,.cm-s-colorforth span.cm-type {color: #DDD;}.cm-s-colorforth span.cm-meta {color: yellow;}.cm-s-colorforth span.cm-qualifier {color: #FFF700;}.cm-s-colorforth span.cm-bracket {color: #cc7;}.cm-s-colorforth span.cm-tag {color: #FFBD40;}.cm-s-colorforth span.cm-attribute {color: #FFF700;}.cm-s-colorforth span.cm-error {color: #f00;}.cm-s-colorforth div.CodeMirror-selected {background: #333d53;}.cm-s-colorforth span.cm-compilation {background: rgba(255, 255, 255, 0.12);}.cm-s-colorforth .CodeMirror-activeline-background {background: #253540;}/*
 
 
 
1248
 
1249
  Name: dracula
1250
  Author: Michael Kaminsky (http://github.com/mkaminsky11)
@@ -1256,7 +1272,7 @@ Name: DuoTone-Dark
1256
  Author: by Bram de Haan, adapted from DuoTone themes by Simurai (http://simurai.com/projects/2016/01/01/duotone-themes)
1257
 
1258
  CodeMirror template by Jan T. Sott (https://github.com/idleberg), adapted by Bram de Haan (https://github.com/atelierbram/)
1259
- */.cm-s-duotone-dark.CodeMirror {background: #2a2734;color: #6c6783;}.cm-s-duotone-dark div.CodeMirror-selected {background: #545167!important;}.cm-s-duotone-dark .CodeMirror-gutters {background: #2a2734;border-right: 0px;}.cm-s-duotone-dark .CodeMirror-linenumber {color: #545167;}/* begin cursor */.cm-s-duotone-dark .CodeMirror-cursor {border-left: 1px solid #ffad5c; /* border-left: 1px solid #ffad5c80; */border-right: .5em solid #ffad5c; /* border-right: .5em solid #ffad5c80; */opacity: .5;}.cm-s-duotone-dark .CodeMirror-activeline-background {background: #363342; /* background: #36334280; */opacity: .5;}.cm-s-duotone-dark .cm-fat-cursor .CodeMirror-cursor {background: #ffad5c; /* background: #ffad5c80; */opacity: .5;}/* end cursor */.cm-s-duotone-dark span.cm-atom,.cm-s-duotone-dark span.cm-number,.cm-s-duotone-dark span.cm-keyword,.cm-s-duotone-dark span.cm-variable,.cm-s-duotone-dark span.cm-attribute,.cm-s-duotone-dark span.cm-quote,.cm-s-duotone-dark span.cm-hr,.cm-s-duotone-dark span.cm-link {color: #ffcc99;}.cm-s-duotone-dark span.cm-property {color: #9a86fd;}.cm-s-duotone-dark span.cm-punctuation,.cm-s-duotone-dark span.cm-unit,.cm-s-duotone-dark span.cm-negative {color: #e09142;}.cm-s-duotone-dark span.cm-string {color: #ffb870;}.cm-s-duotone-dark span.cm-operator {color: #ffad5c;}.cm-s-duotone-dark span.cm-positive {color: #6a51e6;}.cm-s-duotone-dark span.cm-variable-2,.cm-s-duotone-dark span.cm-variable-3,.cm-s-duotone-dark span.cm-type,.cm-s-duotone-dark span.cm-string-2,.cm-s-duotone-dark span.cm-url {color: #7a63ee;}.cm-s-duotone-dark span.cm-def,.cm-s-duotone-dark span.cm-tag,.cm-s-duotone-dark span.cm-builtin,.cm-s-duotone-dark span.cm-qualifier,.cm-s-duotone-dark span.cm-header,.cm-s-duotone-dark span.cm-em {color: #eeebff;}.cm-s-duotone-dark span.cm-bracket,.cm-s-duotone-dark span.cm-comment {color: #6c6783;}/* using #f00 red for errors, don't think any of the colorscheme variables will stand out enough, ... maybe by giving it a background-color ... */.cm-s-duotone-dark span.cm-error,.cm-s-duotone-dark span.cm-invalidchar {
1260
  color: #f00;
1261
  }
1262
 
@@ -1291,21 +1307,21 @@ color: #cdc4b1;
1291
  }/* begin cursor */.cm-s-duotone-light .CodeMirror-cursor {
1292
  border-left: 1px solid #93abdc;
1293
  /* border-left: 1px solid #93abdc80; */
1294
- border-right: .5em solid #93abdc;
1295
  /* border-right: .5em solid #93abdc80; */
1296
- opacity: .5;
1297
  }
1298
 
1299
  .cm-s-duotone-light .CodeMirror-activeline-background {
1300
  background: #e3dcce;
1301
  /* background: #e3dcce80; */
1302
- opacity: .5;
1303
  }
1304
 
1305
  .cm-s-duotone-light .cm-fat-cursor .CodeMirror-cursor {
1306
  background: #93abdc;
1307
  /* #93abdc80; */
1308
- opacity: .5;
1309
  }/* end cursor */.cm-s-duotone-light span.cm-atom,.cm-s-duotone-light span.cm-number,.cm-s-duotone-light span.cm-keyword,.cm-s-duotone-light span.cm-variable,.cm-s-duotone-light span.cm-attribute,.cm-s-duotone-light span.cm-quote,.cm-s-duotone-light-light span.cm-hr,.cm-s-duotone-light-light span.cm-link {
1310
  color: #063289;
1311
  }
@@ -1338,6 +1354,13 @@ color: #2d2006;
1338
  color: #b6ad9a;
1339
  }/* using #f00 red for errors, don't think any of the colorscheme variables will stand out enough, ... maybe by giving it a background-color ... *//* .cm-s-duotone-light span.cm-error { background: #896724; color: #728fcb; } */.cm-s-duotone-light span.cm-error,.cm-s-duotone-light span.cm-invalidchar {color: #f00;}.cm-s-duotone-light span.cm-header {font-weight: normal;}.cm-s-duotone-light .CodeMirror-matchingbracket {text-decoration: underline;color: #faf8f5 !important;}.cm-s-eclipse span.cm-meta {color: #FF1717;}.cm-s-eclipse span.cm-keyword {line-height: 1em;font-weight: bold;color: #7F0055;}.cm-s-eclipse span.cm-atom {color: #219;}.cm-s-eclipse span.cm-number {color: #164;}.cm-s-eclipse span.cm-def {color: #00f;}.cm-s-eclipse span.cm-variable {color: black;}.cm-s-eclipse span.cm-variable-2 {color: #0000C0;}.cm-s-eclipse span.cm-variable-3,.cm-s-eclipse span.cm-type {color: #0000C0;}.cm-s-eclipse span.cm-property {color: black;}.cm-s-eclipse span.cm-operator {color: black;}.cm-s-eclipse span.cm-comment {color: #3F7F5F;}.cm-s-eclipse span.cm-string {color: #2A00FF;}.cm-s-eclipse span.cm-string-2 {color: #f50;}.cm-s-eclipse span.cm-qualifier {color: #555;}.cm-s-eclipse span.cm-builtin {color: #30a;}.cm-s-eclipse span.cm-bracket {color: #cc7;}.cm-s-eclipse span.cm-tag {color: #170;}.cm-s-eclipse span.cm-attribute {color: #00c;}.cm-s-eclipse span.cm-link {color: #219;}.cm-s-eclipse span.cm-error {color: #f00;}.cm-s-eclipse .CodeMirror-activeline-background {background: #e8f2ff;}.cm-s-eclipse .CodeMirror-matchingbracket {outline: 1px solid grey;color: black !important;}.cm-s-elegant span.cm-number,.cm-s-elegant span.cm-string,.cm-s-elegant span.cm-atom {color: #762;}.cm-s-elegant span.cm-comment {color: #262;font-style: italic;line-height: 1em;}.cm-s-elegant span.cm-meta {color: #555;font-style: italic;line-height: 1em;}.cm-s-elegant span.cm-variable {color: black;}.cm-s-elegant span.cm-variable-2 {color: #b11;}.cm-s-elegant span.cm-qualifier {color: #555;}.cm-s-elegant span.cm-keyword {color: #730;}.cm-s-elegant span.cm-builtin {color: #30a;}.cm-s-elegant span.cm-link {color: #762;}.cm-s-elegant span.cm-error {background-color: #fdd;}.cm-s-elegant .CodeMirror-activeline-background {background: #e8f2ff;}.cm-s-elegant .CodeMirror-matchingbracket {outline: 1px solid grey;color: black !important;}.cm-s-erlang-dark.CodeMirror {background: #002240;color: white;}.cm-s-erlang-dark div.CodeMirror-selected {background: #b36539;}.cm-s-erlang-dark .CodeMirror-line::-moz-selection,.cm-s-erlang-dark .CodeMirror-line > span::-moz-selection,.cm-s-erlang-dark .CodeMirror-line > span > span::-moz-selection {background: rgba(179, 101, 57, 0.99);}.cm-s-erlang-dark .CodeMirror-line::selection,.cm-s-erlang-dark .CodeMirror-line > span::selection,.cm-s-erlang-dark .CodeMirror-line > span > span::selection {background: rgba(179, 101, 57, 0.99);}.cm-s-erlang-dark .CodeMirror-line::-moz-selection,.cm-s-erlang-dark .CodeMirror-line > span::-moz-selection,.cm-s-erlang-dark .CodeMirror-line > span > span::-moz-selection {background: rgba(179, 101, 57, 0.99);}.cm-s-erlang-dark .CodeMirror-gutters {background: #002240;border-right: 1px solid #aaa;}.cm-s-erlang-dark .CodeMirror-guttermarker {color: white;}.cm-s-erlang-dark .CodeMirror-guttermarker-subtle {color: #d0d0d0;}.cm-s-erlang-dark .CodeMirror-linenumber {color: #d0d0d0;}.cm-s-erlang-dark .CodeMirror-cursor {border-left: 1px solid white;}.cm-s-erlang-dark span.cm-quote {color: #ccc;}.cm-s-erlang-dark span.cm-atom {color: #f133f1;}.cm-s-erlang-dark span.cm-attribute {color: #ff80e1;}.cm-s-erlang-dark span.cm-bracket {color: #ff9d00;}.cm-s-erlang-dark span.cm-builtin {color: #eaa;}.cm-s-erlang-dark span.cm-comment {color: #77f;}.cm-s-erlang-dark span.cm-def {color: #e7a;}.cm-s-erlang-dark span.cm-keyword {color: #ffee80;}.cm-s-erlang-dark span.cm-meta {color: #50fefe;}.cm-s-erlang-dark span.cm-number {color: #ffd0d0;}.cm-s-erlang-dark span.cm-operator {color: #d55;}.cm-s-erlang-dark span.cm-property {color: #ccc;}.cm-s-erlang-dark span.cm-qualifier {color: #ccc;}.cm-s-erlang-dark span.cm-special {color: #ffbbbb;}.cm-s-erlang-dark span.cm-string {color: #3ad900;}.cm-s-erlang-dark span.cm-string-2 {color: #ccc;}.cm-s-erlang-dark span.cm-tag {color: #9effff;}.cm-s-erlang-dark span.cm-variable {color: #50fe50;}.cm-s-erlang-dark span.cm-variable-2 {color: #e0e;}.cm-s-erlang-dark span.cm-variable-3,.cm-s-erlang-dark span.cm-type {color: #ccc;}.cm-s-erlang-dark span.cm-error {color: #9d1e15;}.cm-s-erlang-dark .CodeMirror-activeline-background {background: #013461;}.cm-s-erlang-dark .CodeMirror-matchingbracket {outline: 1px solid grey;color: white !important;}/*
1340
 
 
 
 
 
 
 
 
1341
  Name: Hopscotch
1342
  Author: Jan T. Sott
1343
 
@@ -1346,7 +1369,10 @@ color: #b6ad9a;
1346
 
1347
  */.cm-s-hopscotch.CodeMirror {background: #322931;color: #d5d3d5;}.cm-s-hopscotch div.CodeMirror-selected {background: #433b42 !important;}.cm-s-hopscotch .CodeMirror-gutters {background: #322931;border-right: 0px;}.cm-s-hopscotch .CodeMirror-linenumber {color: #797379;}.cm-s-hopscotch .CodeMirror-cursor {border-left: 1px solid #989498 !important;}.cm-s-hopscotch span.cm-comment {color: #b33508;}.cm-s-hopscotch span.cm-atom {color: #c85e7c;}.cm-s-hopscotch span.cm-number {color: #c85e7c;}.cm-s-hopscotch span.cm-property,.cm-s-hopscotch span.cm-attribute {color: #8fc13e;}.cm-s-hopscotch span.cm-keyword {color: #dd464c;}.cm-s-hopscotch span.cm-string {color: #fdcc59;}.cm-s-hopscotch span.cm-variable {color: #8fc13e;}.cm-s-hopscotch span.cm-variable-2 {color: #1290bf;}.cm-s-hopscotch span.cm-def {color: #fd8b19;}.cm-s-hopscotch span.cm-error {background: #dd464c;color: #989498;}.cm-s-hopscotch span.cm-bracket {color: #d5d3d5;}.cm-s-hopscotch span.cm-tag {color: #dd464c;}.cm-s-hopscotch span.cm-link {color: #c85e7c;}.cm-s-hopscotch .CodeMirror-matchingbracket {text-decoration: underline;color: white !important;}.cm-s-hopscotch .CodeMirror-activeline-background {background: #302020;}/*
1348
  ICEcoder default theme by Matt Pass, used in code editor available at https://icecoder.net
1349
- */.cm-s-icecoder {color: #666;background: #1d1d1b;}.cm-s-icecoder span.cm-keyword {color: #eee;font-weight: bold;}/* off-white 1 */.cm-s-icecoder span.cm-atom {color: #e1c76e;}/* yellow */.cm-s-icecoder span.cm-number {color: #6cb5d9;}/* blue */.cm-s-icecoder span.cm-def {color: #b9ca4a;}/* green */.cm-s-icecoder span.cm-variable {color: #6cb5d9;}/* blue */.cm-s-icecoder span.cm-variable-2 {color: #cc1e5c;}/* pink */.cm-s-icecoder span.cm-variable-3,.cm-s-icecoder span.cm-type {color: #f9602c;}/* orange */.cm-s-icecoder span.cm-property {color: #eee;}/* off-white 1 */.cm-s-icecoder span.cm-operator {color: #9179bb;}/* purple */.cm-s-icecoder span.cm-comment {color: #97a3aa;}/* grey-blue */.cm-s-icecoder span.cm-string {color: #b9ca4a;}/* green */.cm-s-icecoder span.cm-string-2 {color: #6cb5d9;}/* blue */.cm-s-icecoder span.cm-meta {color: #555;}/* grey */.cm-s-icecoder span.cm-qualifier {color: #555;}/* grey */.cm-s-icecoder span.cm-builtin {color: #214e7b;}/* bright blue */.cm-s-icecoder span.cm-bracket {color: #cc7;}/* grey-yellow */.cm-s-icecoder span.cm-tag {color: #e8e8e8;}/* off-white 2 */.cm-s-icecoder span.cm-attribute {color: #099;}/* teal */.cm-s-icecoder span.cm-header {color: #6a0d6a;}/* purple-pink */.cm-s-icecoder span.cm-quote {color: #186718;}/* dark green */.cm-s-icecoder span.cm-hr {color: #888;}/* mid-grey */.cm-s-icecoder span.cm-link {color: #e1c76e;}/* yellow */.cm-s-icecoder span.cm-error {color: #d00;}/* red */.cm-s-icecoder .CodeMirror-cursor {border-left: 1px solid white;}.cm-s-icecoder div.CodeMirror-selected {color: #fff;background: #037;}.cm-s-icecoder .CodeMirror-gutters {background: #1d1d1b;min-width: 41px;border-right: 0;}.cm-s-icecoder .CodeMirror-linenumber {color: #555;cursor: default;}.cm-s-icecoder .CodeMirror-matchingbracket {color: #fff !important;background: #555 !important;}.cm-s-icecoder .CodeMirror-activeline-background {background: #000;}/*
 
 
 
1350
 
1351
  Name: Isotope
1352
  Author: David Desandro / Jan T. Sott
@@ -1357,7 +1383,12 @@ ICEcoder default theme by Matt Pass, used in code editor available at https://ic
1357
  */.cm-s-isotope.CodeMirror {background: #000000;color: #e0e0e0;}.cm-s-isotope div.CodeMirror-selected {background: #404040 !important;}.cm-s-isotope .CodeMirror-gutters {background: #000000;border-right: 0px;}.cm-s-isotope .CodeMirror-linenumber {color: #808080;}.cm-s-isotope .CodeMirror-cursor {border-left: 1px solid #c0c0c0 !important;}.cm-s-isotope span.cm-comment {color: #3300ff;}.cm-s-isotope span.cm-atom {color: #cc00ff;}.cm-s-isotope span.cm-number {color: #cc00ff;}.cm-s-isotope span.cm-property,.cm-s-isotope span.cm-attribute {color: #33ff00;}.cm-s-isotope span.cm-keyword {color: #ff0000;}.cm-s-isotope span.cm-string {color: #ff0099;}.cm-s-isotope span.cm-variable {color: #33ff00;}.cm-s-isotope span.cm-variable-2 {color: #0066ff;}.cm-s-isotope span.cm-def {color: #ff9900;}.cm-s-isotope span.cm-error {background: #ff0000;color: #c0c0c0;}.cm-s-isotope span.cm-bracket {color: #e0e0e0;}.cm-s-isotope span.cm-tag {color: #ff0000;}.cm-s-isotope span.cm-link {color: #cc00ff;}.cm-s-isotope .CodeMirror-matchingbracket {text-decoration: underline;color: white !important;}.cm-s-isotope .CodeMirror-activeline-background {background: #202020;}/*
1358
  http://lesscss.org/ dark theme
1359
  Ported to CodeMirror by Peter Kroon
1360
- */.cm-s-lesser-dark {line-height: 1.3em;}.cm-s-lesser-dark.CodeMirror {background: #262626;color: #EBEFE7;text-shadow: 0 -1px 1px #262626;}.cm-s-lesser-dark div.CodeMirror-selected {background: #45443B;}/* 33322B*/.cm-s-lesser-dark .CodeMirror-line::-moz-selection,.cm-s-lesser-dark .CodeMirror-line > span::-moz-selection,.cm-s-lesser-dark .CodeMirror-line > span > span::-moz-selection {background: rgba(69, 68, 59, 0.99);}.cm-s-lesser-dark .CodeMirror-line::selection,.cm-s-lesser-dark .CodeMirror-line > span::selection,.cm-s-lesser-dark .CodeMirror-line > span > span::selection {background: rgba(69, 68, 59, 0.99);}.cm-s-lesser-dark .CodeMirror-line::-moz-selection,.cm-s-lesser-dark .CodeMirror-line > span::-moz-selection,.cm-s-lesser-dark .CodeMirror-line > span > span::-moz-selection {background: rgba(69, 68, 59, 0.99);}.cm-s-lesser-dark .CodeMirror-cursor {border-left: 1px solid white;}.cm-s-lesser-dark pre {padding: 0 8px;}/*editable code holder*/.cm-s-lesser-dark.CodeMirror span.CodeMirror-matchingbracket {color: #7EFC7E;}/*65FC65*/.cm-s-lesser-dark .CodeMirror-gutters {background: #262626;border-right: 1px solid #aaa;}.cm-s-lesser-dark .CodeMirror-guttermarker {color: #599eff;}.cm-s-lesser-dark .CodeMirror-guttermarker-subtle {color: #777;}.cm-s-lesser-dark .CodeMirror-linenumber {color: #777;}.cm-s-lesser-dark span.cm-header {color: #a0a;}.cm-s-lesser-dark span.cm-quote {color: #090;}.cm-s-lesser-dark span.cm-keyword {color: #599eff;}.cm-s-lesser-dark span.cm-atom {color: #C2B470;}.cm-s-lesser-dark span.cm-number {color: #B35E4D;}.cm-s-lesser-dark span.cm-def {color: white;}.cm-s-lesser-dark span.cm-variable {color: #D9BF8C;}.cm-s-lesser-dark span.cm-variable-2 {color: #669199;}.cm-s-lesser-dark span.cm-variable-3,.cm-s-lesser-dark span.cm-type {color: white;}.cm-s-lesser-dark span.cm-property {color: #92A75C;}.cm-s-lesser-dark span.cm-operator {color: #92A75C;}.cm-s-lesser-dark span.cm-comment {color: #666;}.cm-s-lesser-dark span.cm-string {color: #BCD279;}.cm-s-lesser-dark span.cm-string-2 {color: #f50;}.cm-s-lesser-dark span.cm-meta {color: #738C73;}.cm-s-lesser-dark span.cm-qualifier {color: #555;}.cm-s-lesser-dark span.cm-builtin {color: #ff9e59;}.cm-s-lesser-dark span.cm-bracket {color: #EBEFE7;}.cm-s-lesser-dark span.cm-tag {color: #669199;}.cm-s-lesser-dark span.cm-attribute {color: #00c;}.cm-s-lesser-dark span.cm-hr {color: #999;}.cm-s-lesser-dark span.cm-link {color: #00c;}.cm-s-lesser-dark span.cm-error {color: #9d1e15;}.cm-s-lesser-dark .CodeMirror-activeline-background {background: #3C3A3A;}.cm-s-lesser-dark .CodeMirror-matchingbracket {outline: 1px solid grey;color: white !important;}.cm-s-liquibyte.CodeMirror {background-color: #000;color: #fff;line-height: 1.2em;font-size: 1em;}.cm-s-liquibyte .CodeMirror-focused .cm-matchhighlight {text-decoration: underline;-webkit-text-decoration-color: #0f0;text-decoration-color: #0f0;-webkit-text-decoration-style: wavy;text-decoration-style: wavy;}.cm-s-liquibyte .cm-trailingspace {text-decoration: line-through;-webkit-text-decoration-color: #f00;text-decoration-color: #f00;-webkit-text-decoration-style: dotted;text-decoration-style: dotted;}.cm-s-liquibyte .cm-tab {text-decoration: line-through;-webkit-text-decoration-color: #404040;text-decoration-color: #404040;-webkit-text-decoration-style: dotted;text-decoration-style: dotted;}.cm-s-liquibyte .CodeMirror-gutters {background-color: #262626;border-right: 1px solid #505050;padding-right: 0.8em;}.cm-s-liquibyte .CodeMirror-gutter-elt div {font-size: 1.2em;}.cm-s-liquibyte .CodeMirror-linenumber {color: #606060;padding-left: 0;}.cm-s-liquibyte .CodeMirror-cursor {border-left: 1px solid #eee;}.cm-s-liquibyte span.cm-comment {color: #008000;}.cm-s-liquibyte span.cm-def {color: #ffaf40;font-weight: bold;}.cm-s-liquibyte span.cm-keyword {color: #c080ff;font-weight: bold;}.cm-s-liquibyte span.cm-builtin {color: #ffaf40;font-weight: bold;}.cm-s-liquibyte span.cm-variable {color: #5967ff;font-weight: bold;}.cm-s-liquibyte span.cm-string {color: #ff8000;}.cm-s-liquibyte span.cm-number {color: #0f0;font-weight: bold;}.cm-s-liquibyte span.cm-atom {color: #bf3030;font-weight: bold;}.cm-s-liquibyte span.cm-variable-2 {color: #007f7f;font-weight: bold;}.cm-s-liquibyte span.cm-variable-3,.cm-s-liquibyte span.cm-type {color: #c080ff;font-weight: bold;}.cm-s-liquibyte span.cm-property {color: #999;font-weight: bold;}.cm-s-liquibyte span.cm-operator {color: #fff;}.cm-s-liquibyte span.cm-meta {color: #0f0;}.cm-s-liquibyte span.cm-qualifier {color: #fff700;font-weight: bold;}.cm-s-liquibyte span.cm-bracket {color: #cc7;}.cm-s-liquibyte span.cm-tag {color: #ff0;font-weight: bold;}.cm-s-liquibyte span.cm-attribute {color: #c080ff;font-weight: bold;}.cm-s-liquibyte span.cm-error {color: #f00;}.cm-s-liquibyte div.CodeMirror-selected {background-color: rgba(255, 0, 0, 0.25);}.cm-s-liquibyte span.cm-compilation {background-color: rgba(255, 255, 255, 0.12);}.cm-s-liquibyte .CodeMirror-activeline-background {background-color: rgba(0, 255, 0, 0.15);}/* Default styles for common addons */.cm-s-liquibyte .CodeMirror span.CodeMirror-matchingbracket {color: #0f0;font-weight: bold;}.cm-s-liquibyte .CodeMirror span.CodeMirror-nonmatchingbracket {color: #f00;font-weight: bold;}.CodeMirror-matchingtag {background-color: rgba(150, 255, 0, 0.3);}/* Scrollbars *//* Simple */.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal div:hover,.cm-s-liquibyte div.CodeMirror-simplescroll-vertical div:hover {background-color: rgba(80, 80, 80, 0.7);}.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal div,.cm-s-liquibyte div.CodeMirror-simplescroll-vertical div {background-color: rgba(80, 80, 80, 0.3);border: 1px solid #404040;border-radius: 5px;}.cm-s-liquibyte div.CodeMirror-simplescroll-vertical div {border-top: 1px solid #404040;border-bottom: 1px solid #404040;}.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal div {border-left: 1px solid #404040;border-right: 1px solid #404040;}.cm-s-liquibyte div.CodeMirror-simplescroll-vertical {background-color: #262626;}.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal {background-color: #262626;border-top: 1px solid #404040;}/* Overlay */.cm-s-liquibyte div.CodeMirror-overlayscroll-horizontal div,div.CodeMirror-overlayscroll-vertical div {background-color: #404040;border-radius: 5px;}.cm-s-liquibyte div.CodeMirror-overlayscroll-vertical div {border: 1px solid #404040;}.cm-s-liquibyte div.CodeMirror-overlayscroll-horizontal div {border: 1px solid #404040;}/*
 
 
 
 
 
1361
 
1362
  Name: material
1363
  Author: Michael Kaminsky (http://github.com/mkaminsky11)
@@ -1721,7 +1752,14 @@ color: #F8F8F0;
1721
  .cm-s-midnight .CodeMirror-matchingbracket {
1722
  text-decoration: underline;
1723
  color: white !important;
1724
- }/* Based on Sublime Text's Monokai theme */.cm-s-monokai.CodeMirror {background: #272822;color: #f8f8f2;}.cm-s-monokai div.CodeMirror-selected {background: #49483E;}.cm-s-monokai .CodeMirror-line::-moz-selection,.cm-s-monokai .CodeMirror-line > span::-moz-selection,.cm-s-monokai .CodeMirror-line > span > span::-moz-selection {background: rgba(73, 72, 62, 0.99);}.cm-s-monokai .CodeMirror-line::selection,.cm-s-monokai .CodeMirror-line > span::selection,.cm-s-monokai .CodeMirror-line > span > span::selection {background: rgba(73, 72, 62, 0.99);}.cm-s-monokai .CodeMirror-line::-moz-selection,.cm-s-monokai .CodeMirror-line > span::-moz-selection,.cm-s-monokai .CodeMirror-line > span > span::-moz-selection {background: rgba(73, 72, 62, 0.99);}.cm-s-monokai .CodeMirror-gutters {background: #272822;border-right: 0px;}.cm-s-monokai .CodeMirror-guttermarker {color: white;}.cm-s-monokai .CodeMirror-guttermarker-subtle {color: #d0d0d0;}.cm-s-monokai .CodeMirror-linenumber {color: #d0d0d0;}.cm-s-monokai .CodeMirror-cursor {border-left: 1px solid #f8f8f0;}.cm-s-monokai span.cm-comment {color: #75715e;}.cm-s-monokai span.cm-atom {color: #ae81ff;}.cm-s-monokai span.cm-number {color: #ae81ff;}.cm-s-monokai span.cm-property,.cm-s-monokai span.cm-attribute {color: #a6e22e;}.cm-s-monokai span.cm-keyword {color: #f92672;}.cm-s-monokai span.cm-builtin {color: #66d9ef;}.cm-s-monokai span.cm-string {color: #e6db74;}.cm-s-monokai span.cm-variable {color: #f8f8f2;}.cm-s-monokai span.cm-variable-2 {color: #9effff;}.cm-s-monokai span.cm-variable-3,.cm-s-monokai span.cm-type {color: #66d9ef;}.cm-s-monokai span.cm-def {color: #fd971f;}.cm-s-monokai span.cm-bracket {color: #f8f8f2;}.cm-s-monokai span.cm-tag {color: #f92672;}.cm-s-monokai span.cm-header {color: #ae81ff;}.cm-s-monokai span.cm-link {color: #ae81ff;}.cm-s-monokai span.cm-error {background: #f92672;color: #f8f8f0;}.cm-s-monokai .CodeMirror-activeline-background {background: #373831;}.cm-s-monokai .CodeMirror-matchingbracket {text-decoration: underline;color: white !important;}.cm-s-neat span.cm-comment {color: #a86;}.cm-s-neat span.cm-keyword {line-height: 1em;font-weight: bold;color: blue;}.cm-s-neat span.cm-string {color: #a22;}.cm-s-neat span.cm-builtin {line-height: 1em;font-weight: bold;color: #077;}.cm-s-neat span.cm-special {line-height: 1em;font-weight: bold;color: #0aa;}.cm-s-neat span.cm-variable {color: black;}.cm-s-neat span.cm-number,.cm-s-neat span.cm-atom {color: #3a3;}.cm-s-neat span.cm-meta {color: #555;}.cm-s-neat span.cm-link {color: #3a3;}.cm-s-neat .CodeMirror-activeline-background {background: #e8f2ff;}.cm-s-neat .CodeMirror-matchingbracket {outline: 1px solid grey;color: black !important;}/* neo theme for codemirror *//* Color scheme */.cm-s-neo.CodeMirror {background-color: #ffffff;color: #2e383c;line-height: 1.4375;}.cm-s-neo .cm-comment {color: #75787b;}.cm-s-neo .cm-keyword,.cm-s-neo .cm-property {color: #1d75b3;}.cm-s-neo .cm-atom,.cm-s-neo .cm-number {color: #75438a;}.cm-s-neo .cm-node,.cm-s-neo .cm-tag {color: #9c3328;}.cm-s-neo .cm-string {color: #b35e14;}.cm-s-neo .cm-variable,.cm-s-neo .cm-qualifier {color: #047d65;}/* Editor styling */.cm-s-neo pre {padding: 0;}.cm-s-neo .CodeMirror-gutters {border: none;border-right: 10px solid transparent;background-color: transparent;}.cm-s-neo .CodeMirror-linenumber {padding: 0;color: #e0e2e5;}.cm-s-neo .CodeMirror-guttermarker {color: #1d75b3;}.cm-s-neo .CodeMirror-guttermarker-subtle {color: #e0e2e5;}.cm-s-neo .CodeMirror-cursor {width: auto;border: 0;background: rgba(155, 157, 162, 0.37);z-index: 1;}/* Loosely based on the Midnight Textmate theme */.cm-s-night.CodeMirror {background: #0a001f;color: #f8f8f8;}.cm-s-night div.CodeMirror-selected {background: #447;}.cm-s-night .CodeMirror-line::-moz-selection,.cm-s-night .CodeMirror-line > span::-moz-selection,.cm-s-night .CodeMirror-line > span > span::-moz-selection {background: rgba(68, 68, 119, 0.99);}.cm-s-night .CodeMirror-line::selection,.cm-s-night .CodeMirror-line > span::selection,.cm-s-night .CodeMirror-line > span > span::selection {background: rgba(68, 68, 119, 0.99);}.cm-s-night .CodeMirror-line::-moz-selection,.cm-s-night .CodeMirror-line > span::-moz-selection,.cm-s-night .CodeMirror-line > span > span::-moz-selection {background: rgba(68, 68, 119, 0.99);}.cm-s-night .CodeMirror-gutters {background: #0a001f;border-right: 1px solid #aaa;}.cm-s-night .CodeMirror-guttermarker {color: white;}.cm-s-night .CodeMirror-guttermarker-subtle {color: #bbb;}.cm-s-night .CodeMirror-linenumber {color: #f8f8f8;}.cm-s-night .CodeMirror-cursor {border-left: 1px solid white;}.cm-s-night span.cm-comment {color: #8900d1;}.cm-s-night span.cm-atom {color: #845dc4;}.cm-s-night span.cm-number,.cm-s-night span.cm-attribute {color: #ffd500;}.cm-s-night span.cm-keyword {color: #599eff;}.cm-s-night span.cm-string {color: #37f14a;}.cm-s-night span.cm-meta {color: #7678e2;}.cm-s-night span.cm-variable-2,.cm-s-night span.cm-tag {color: #99b2ff;}.cm-s-night span.cm-variable-3,.cm-s-night span.cm-def,.cm-s-night span.cm-type {color: white;}.cm-s-night span.cm-bracket {color: #8da6ce;}.cm-s-night span.cm-builtin,.cm-s-night span.cm-special {color: #ff9e59;}.cm-s-night span.cm-link {color: #845dc4;}.cm-s-night span.cm-error {color: #9d1e15;}.cm-s-night .CodeMirror-activeline-background {background: #1C005A;}.cm-s-night .CodeMirror-matchingbracket {outline: 1px solid grey;color: white !important;}/*
 
 
 
 
 
 
 
1725
  Name: Panda Syntax
1726
  Author: Siamak Mokhtari (http://github.com/siamak/)
1727
  CodeMirror template by Siamak Mokhtari (https://github.com/siamak/atom-panda-syntax)
@@ -1764,12 +1802,19 @@ color: white !important;
1764
  Original seti color scheme by Jesse Weed (https://github.com/jesseweed/seti-syntax)
1765
 
1766
  */.cm-s-seti.CodeMirror {background-color: #151718 !important;color: #CFD2D1 !important;border: none;}.cm-s-seti .CodeMirror-gutters {color: #404b53;background-color: #0E1112;border: none;}.cm-s-seti .CodeMirror-cursor {border-left: solid thin #f8f8f0;}.cm-s-seti .CodeMirror-linenumber {color: #6D8A88;}.cm-s-seti.CodeMirror-focused div.CodeMirror-selected {background: rgba(255, 255, 255, 0.1);}.cm-s-seti .CodeMirror-line::-moz-selection,.cm-s-seti .CodeMirror-line > span::-moz-selection,.cm-s-seti .CodeMirror-line > span > span::-moz-selection {background: rgba(255, 255, 255, 0.1);}.cm-s-seti .CodeMirror-line::selection,.cm-s-seti .CodeMirror-line > span::selection,.cm-s-seti .CodeMirror-line > span > span::selection {background: rgba(255, 255, 255, 0.1);}.cm-s-seti .CodeMirror-line::-moz-selection,.cm-s-seti .CodeMirror-line > span::-moz-selection,.cm-s-seti .CodeMirror-line > span > span::-moz-selection {background: rgba(255, 255, 255, 0.1);}.cm-s-seti span.cm-comment {color: #41535b;}.cm-s-seti span.cm-string,.cm-s-seti span.cm-string-2 {color: #55b5db;}.cm-s-seti span.cm-number {color: #cd3f45;}.cm-s-seti span.cm-variable {color: #55b5db;}.cm-s-seti span.cm-variable-2 {color: #a074c4;}.cm-s-seti span.cm-def {color: #55b5db;}.cm-s-seti span.cm-keyword {color: #ff79c6;}.cm-s-seti span.cm-operator {color: #9fca56;}.cm-s-seti span.cm-keyword {color: #e6cd69;}.cm-s-seti span.cm-atom {color: #cd3f45;}.cm-s-seti span.cm-meta {color: #55b5db;}.cm-s-seti span.cm-tag {color: #55b5db;}.cm-s-seti span.cm-attribute {color: #9fca56;}.cm-s-seti span.cm-qualifier {color: #9fca56;}.cm-s-seti span.cm-property {color: #a074c4;}.cm-s-seti span.cm-variable-3,.cm-s-seti span.cm-type {color: #9fca56;}.cm-s-seti span.cm-builtin {color: #9fca56;}.cm-s-seti .CodeMirror-activeline-background {background: #101213;}.cm-s-seti .CodeMirror-matchingbracket {text-decoration: underline;color: white !important;}/*
 
 
 
 
 
 
 
1767
  Solarized theme for code-mirror
1768
  http://ethanschoonover.com/solarized
1769
  *//*
1770
  Solarized color palette
1771
  http://ethanschoonover.com/solarized/img/solarized-palette.png
1772
- */.solarized.base03 {color: #002b36;}.solarized.base02 {color: #073642;}.solarized.base01 {color: #586e75;}.solarized.base00 {color: #657b83;}.solarized.base0 {color: #839496;}.solarized.base1 {color: #93a1a1;}.solarized.base2 {color: #eee8d5;}.solarized.base3 {color: #fdf6e3;}.solarized.solar-yellow {color: #b58900;}.solarized.solar-orange {color: #cb4b16;}.solarized.solar-red {color: #dc322f;}.solarized.solar-magenta {color: #d33682;}.solarized.solar-violet {color: #6c71c4;}.solarized.solar-blue {color: #268bd2;}.solarized.solar-cyan {color: #2aa198;}.solarized.solar-green {color: #859900;}/* Color scheme for code-mirror */.cm-s-solarized {line-height: 1.45em;color-profile: sRGB;rendering-intent: auto;}.cm-s-solarized.cm-s-dark {color: #839496;background-color: #002b36;text-shadow: #002b36 0 1px;}.cm-s-solarized.cm-s-light {background-color: #fdf6e3;color: #657b83;text-shadow: #eee8d5 0 1px;}.cm-s-solarized .CodeMirror-widget {text-shadow: none;}.cm-s-solarized .cm-header {color: #586e75;}.cm-s-solarized .cm-quote {color: #93a1a1;}.cm-s-solarized .cm-keyword {color: #cb4b16;}.cm-s-solarized .cm-atom {color: #d33682;}.cm-s-solarized .cm-number {color: #d33682;}.cm-s-solarized .cm-def {color: #2aa198;}.cm-s-solarized .cm-variable {color: #839496;}.cm-s-solarized .cm-variable-2 {color: #b58900;}.cm-s-solarized .cm-variable-3,.cm-s-solarized .cm-type {color: #6c71c4;}.cm-s-solarized .cm-property {color: #2aa198;}.cm-s-solarized .cm-operator {color: #6c71c4;}.cm-s-solarized .cm-comment {color: #586e75;font-style: italic;}.cm-s-solarized .cm-string {color: #859900;}.cm-s-solarized .cm-string-2 {color: #b58900;}.cm-s-solarized .cm-meta {color: #859900;}.cm-s-solarized .cm-qualifier {color: #b58900;}.cm-s-solarized .cm-builtin {color: #d33682;}.cm-s-solarized .cm-bracket {color: #cb4b16;}.cm-s-solarized .CodeMirror-matchingbracket {color: #859900;}.cm-s-solarized .CodeMirror-nonmatchingbracket {color: #dc322f;}.cm-s-solarized .cm-tag {color: #93a1a1;}.cm-s-solarized .cm-attribute {color: #2aa198;}.cm-s-solarized .cm-hr {color: transparent;border-top: 1px solid #586e75;display: block;}.cm-s-solarized .cm-link {color: #93a1a1;cursor: pointer;}.cm-s-solarized .cm-special {color: #6c71c4;}.cm-s-solarized .cm-em {color: #999;text-decoration: underline;-webkit-text-decoration-style: dotted;text-decoration-style: dotted;}.cm-s-solarized .cm-strong {color: #eee;}.cm-s-solarized .cm-error,.cm-s-solarized .cm-invalidchar {color: #586e75;border-bottom: 1px dotted #dc322f;}.cm-s-solarized.cm-s-dark div.CodeMirror-selected {background: #073642;}.cm-s-solarized.cm-s-dark.CodeMirror ::-moz-selection {background: rgba(7, 54, 66, 0.99);}.cm-s-solarized.cm-s-dark.CodeMirror ::selection {background: rgba(7, 54, 66, 0.99);}.cm-s-solarized.cm-s-dark .CodeMirror-line::-moz-selection,.cm-s-dark .CodeMirror-line > span::-moz-selection,.cm-s-dark .CodeMirror-line > span > span::-moz-selection {background: rgba(7, 54, 66, 0.99);}.cm-s-solarized.cm-s-light div.CodeMirror-selected {background: #eee8d5;}.cm-s-solarized.cm-s-light .CodeMirror-line::-moz-selection,.cm-s-light .CodeMirror-line > span::-moz-selection,.cm-s-light .CodeMirror-line > span > span::-moz-selection {background: #eee8d5;}.cm-s-solarized.cm-s-light .CodeMirror-line::selection,.cm-s-light .CodeMirror-line > span::selection,.cm-s-light .CodeMirror-line > span > span::selection {background: #eee8d5;}.cm-s-solarized.cm-s-light .CodeMirror-line::-moz-selection,.cm-s-ligh .CodeMirror-line > span::-moz-selection,.cm-s-ligh .CodeMirror-line > span > span::-moz-selection {background: #eee8d5;}/* Editor styling *//* Little shadow on the view-port of the buffer view */.cm-s-solarized.CodeMirror {box-shadow: inset 7px 0 12px -6px #000;}/* Remove gutter border */.cm-s-solarized .CodeMirror-gutters {border-right: 0;}/* Gutter colors and line number styling based of color scheme (dark / light) *//* Dark */.cm-s-solarized.cm-s-dark .CodeMirror-gutters {background-color: #073642;}.cm-s-solarized.cm-s-dark .CodeMirror-linenumber {color: #586e75;text-shadow: #021014 0 -1px;}/* Light */.cm-s-solarized.cm-s-light .CodeMirror-gutters {background-color: #eee8d5;}.cm-s-solarized.cm-s-light .CodeMirror-linenumber {color: #839496;}/* Common */.cm-s-solarized .CodeMirror-linenumber {padding: 0 5px;}.cm-s-solarized .CodeMirror-guttermarker-subtle {color: #586e75;}.cm-s-solarized.cm-s-dark .CodeMirror-guttermarker {color: #ddd;}.cm-s-solarized.cm-s-light .CodeMirror-guttermarker {color: #cb4b16;}.cm-s-solarized .CodeMirror-gutter .CodeMirror-gutter-text {color: #586e75;}/* Cursor */.cm-s-solarized .CodeMirror-cursor {border-left: 1px solid #819090;}/* Fat cursor */.cm-s-solarized.cm-s-light.cm-fat-cursor .CodeMirror-cursor {background: #77ee77;}.cm-s-solarized.cm-s-light .cm-animate-fat-cursor {background-color: #77ee77;}.cm-s-solarized.cm-s-dark.cm-fat-cursor .CodeMirror-cursor {background: #586e75;}.cm-s-solarized.cm-s-dark .cm-animate-fat-cursor {background-color: #586e75;}/* Active line */.cm-s-solarized.cm-s-dark .CodeMirror-activeline-background {background: rgba(255, 255, 255, 0.06);}.cm-s-solarized.cm-s-light .CodeMirror-activeline-background {background: rgba(0, 0, 0, 0.06);}.cm-s-the-matrix.CodeMirror {background: #000000;color: #00FF00;}.cm-s-the-matrix div.CodeMirror-selected {background: #2D2D2D;}.cm-s-the-matrix .CodeMirror-line::-moz-selection,.cm-s-the-matrix .CodeMirror-line > span::-moz-selection,.cm-s-the-matrix .CodeMirror-line > span > span::-moz-selection {background: rgba(45, 45, 45, 0.99);}.cm-s-the-matrix .CodeMirror-line::selection,.cm-s-the-matrix .CodeMirror-line > span::selection,.cm-s-the-matrix .CodeMirror-line > span > span::selection {background: rgba(45, 45, 45, 0.99);}.cm-s-the-matrix .CodeMirror-line::-moz-selection,.cm-s-the-matrix .CodeMirror-line > span::-moz-selection,.cm-s-the-matrix .CodeMirror-line > span > span::-moz-selection {background: rgba(45, 45, 45, 0.99);}.cm-s-the-matrix .CodeMirror-gutters {background: #060;border-right: 2px solid #00FF00;}.cm-s-the-matrix .CodeMirror-guttermarker {color: #0f0;}.cm-s-the-matrix .CodeMirror-guttermarker-subtle {color: white;}.cm-s-the-matrix .CodeMirror-linenumber {color: #FFFFFF;}.cm-s-the-matrix .CodeMirror-cursor {border-left: 1px solid #00FF00;}.cm-s-the-matrix span.cm-keyword {color: #008803;font-weight: bold;}.cm-s-the-matrix span.cm-atom {color: #3FF;}.cm-s-the-matrix span.cm-number {color: #FFB94F;}.cm-s-the-matrix span.cm-def {color: #99C;}.cm-s-the-matrix span.cm-variable {color: #F6C;}.cm-s-the-matrix span.cm-variable-2 {color: #C6F;}.cm-s-the-matrix span.cm-variable-3,.cm-s-the-matrix span.cm-type {color: #96F;}.cm-s-the-matrix span.cm-property {color: #62FFA0;}.cm-s-the-matrix span.cm-operator {color: #999;}.cm-s-the-matrix span.cm-comment {color: #CCCCCC;}.cm-s-the-matrix span.cm-string {color: #39C;}.cm-s-the-matrix span.cm-meta {color: #C9F;}.cm-s-the-matrix span.cm-qualifier {color: #FFF700;}.cm-s-the-matrix span.cm-builtin {color: #30a;}.cm-s-the-matrix span.cm-bracket {color: #cc7;}.cm-s-the-matrix span.cm-tag {color: #FFBD40;}.cm-s-the-matrix span.cm-attribute {color: #FFF700;}.cm-s-the-matrix span.cm-error {color: #FF0000;}.cm-s-the-matrix .CodeMirror-activeline-background {background: #040;}/*
1773
 
1774
  Name: Tomorrow Night - Bright
1775
  Author: Chris Kempson
@@ -1841,4 +1886,4 @@ THE SOFTWARE.
1841
  * Also using parts of https://github.com/xavi/coderay-lighttable-theme
1842
  * "
1843
  * From: https://github.com/wisenomad/zenburn-lighttable-theme/blob/master/zenburn.css
1844
- */.cm-s-zenburn .CodeMirror-gutters {background: #3f3f3f !important;}.cm-s-zenburn .CodeMirror-foldgutter-open,.CodeMirror-foldgutter-folded {color: #999;}.cm-s-zenburn .CodeMirror-cursor {border-left: 1px solid white;}.cm-s-zenburn {background-color: #3f3f3f;color: #dcdccc;}.cm-s-zenburn span.cm-builtin {color: #dcdccc;font-weight: bold;}.cm-s-zenburn span.cm-comment {color: #7f9f7f;}.cm-s-zenburn span.cm-keyword {color: #f0dfaf;font-weight: bold;}.cm-s-zenburn span.cm-atom {color: #bfebbf;}.cm-s-zenburn span.cm-def {color: #dcdccc;}.cm-s-zenburn span.cm-variable {color: #dfaf8f;}.cm-s-zenburn span.cm-variable-2 {color: #dcdccc;}.cm-s-zenburn span.cm-string {color: #cc9393;}.cm-s-zenburn span.cm-string-2 {color: #cc9393;}.cm-s-zenburn span.cm-number {color: #dcdccc;}.cm-s-zenburn span.cm-tag {color: #93e0e3;}.cm-s-zenburn span.cm-property {color: #dfaf8f;}.cm-s-zenburn span.cm-attribute {color: #dfaf8f;}.cm-s-zenburn span.cm-qualifier {color: #7cb8bb;}.cm-s-zenburn span.cm-meta {color: #f0dfaf;}.cm-s-zenburn span.cm-header {color: #f0efd0;}.cm-s-zenburn span.cm-operator {color: #f0efd0;}.cm-s-zenburn span.CodeMirror-matchingbracket {box-sizing: border-box;background: transparent;border-bottom: 1px solid;}.cm-s-zenburn span.CodeMirror-nonmatchingbracket {border-bottom: 1px solid;background: none;}.cm-s-zenburn .CodeMirror-activeline {background: #000000;}.cm-s-zenburn .CodeMirror-activeline-background {background: #000000;}.cm-s-zenburn div.CodeMirror-selected {background: #545454;}.cm-s-zenburn .CodeMirror-focused div.CodeMirror-selected {background: #4f4f4f;}.CodeMirror-foldmarker {color: blue;text-shadow: #b9f 1px 1px 2px, #b9f -1px -1px 2px, #b9f 1px -1px 2px, #b9f -1px 1px 2px;font-family: arial;line-height: .3;cursor: pointer;}.CodeMirror-foldgutter {width: .7em;}.CodeMirror-foldgutter-open,.CodeMirror-foldgutter-folded {cursor: pointer;}.CodeMirror-foldgutter-open:after {content: "\25BE";}.CodeMirror-foldgutter-folded:after {content: "\25B8";}.CodeMirror {font: inherit;}.CodeMirror-scroll {font-family: Menlo Regular, Consolas, Monaco, monospace;line-height: 150%;position: relative;}.CodeMirror-settings {color: #444;height: 0;width: 100%;z-index: 9;text-shadow: none;}.CodeMirror-settings__toggle {border-radius: 3px;z-index: 11;box-sizing: border-box;position: absolute;top: 0;right: 0;margin: 6px;display: block;cursor: pointer;}.CodeMirror-settings__toggle:after {content: '\f111';font-family: dashicons;line-height: 1em;display: inline-block;}.CodeMirror-settings__toggle:before {border: 1px solid #ddd;border-radius: 3px;z-index: -1;content: '';background-color: white;transition: 250ms ease;transition-property: transform opacity;position: absolute;top: 0;right: 0;bottom: 0;left: 0;}.CodeMirror-settings__wrapper {pointer-events: none;visibility: hidden;}.CodeMirror-settings__docked,.CodeMirror-settings__body {pointer-events: initial;visibility: visible;}.CodeMirror-settings__wrapper {position: absolute;width: calc(100% - 12px );max-height: calc(100% - 12px );top: 0;margin: 6px;box-sizing: border-box;z-index: 9;display: -ms-flexbox;display: flex;-ms-flex-direction: column;flex-direction: column;}.CodeMirror-settings__docked {-ms-flex: 0 0 auto;flex: 0 0 auto;z-index: 10;background-color: white;box-sizing: border-box;}.CodeMirror-settings__header {border-top-left-radius: 3px;border-top-right-radius: 3px;border: 1px solid #ddd;padding: 4px;border-bottom-left-radius: 3px;border-bottom-right-radius: 3px;}.CodeMirror-settings__body {-ms-flex: 1 1 auto;flex: 1 1 auto;box-sizing: border-box;padding: 1px 12px;overflow-y: auto;background-color: rgba(255, 255, 255, 0.93);border-left: 1px solid #ddd;border-right: 1px solid #ddd;}.CodeMirror-settings__footer {border-bottom-left-radius: 3px;border-bottom-right-radius: 3px;border: 1px solid #ddd;padding: 6px 12px;display: -ms-flexbox;display: flex;-ms-flex-wrap: wrap;flex-wrap: wrap;-ms-flex-align: baseline;align-items: baseline;-ms-flex-line-pack: center;align-content: center;-ms-flex-pack: justify;justify-content: space-between;}.CodeMirror-settings-advanced__description {margin-left: 10px;opacity: 0.6;}td.CodeMirror-settings__heading {padding: 0;padding-bottom: 12px;}.CodeMirror-settings__foot-content {margin: 0;}.CodeMirror-settings__toggle,.CodeMirror-settings__toggle-advanced,.CodeMirror-settings__header,.CodeMirror-settings__body,.CodeMirror-settings__footer,.CodeMirror-settings__wrapper {transition: 250ms ease;transition-property: opacity, transform;transform-origin: top right;}.CodeMirror-settings.closed .CodeMirror-settings__toggle-advanced:before {content: 'more...';}.CodeMirror-settings.closed .CodeMirror-settings__toggle {opacity: .5;}.CodeMirror-settings.closed .CodeMirror-settings__toggle:hover {opacity: 1;}.CodeMirror-settings.closed .CodeMirror-settings__toggle:before {opacity: 1;}.CodeMirror-settings.closed .CodeMirror-settings__wrapper {opacity: 0;transform: scaleX(0);}.CodeMirror-settings.closed .CodeMirror-settings__body,.CodeMirror-settings.closed .CodeMirror-settings__footer {visibility: hidden;opacity: 0;transform: translate(0, -20px);transition: opacity 250ms ease, transform 250ms ease, visibility 1ms ease 250ms;}.CodeMirror-settings.open .CodeMirror-settings__toggle-advanced:before {content: 'more...';}.CodeMirror-settings.open .CodeMirror-settings__toggle:after {content: '\f158';}.CodeMirror-settings.open .CodeMirror-settings__toggle:before {opacity: 0;}.CodeMirror-settings.open .CodeMirror-settings__wrapper {opacity: 1;transform: scaleX(1);}.CodeMirror-settings.open .CodeMirror-settings__body,.CodeMirror-settings.open .CodeMirror-settings__footer {visibility: hidden;opacity: 0;transform: translate(0, -20px);transition: opacity 250ms ease, transform 250ms ease, visibility 1ms ease 250ms;}.CodeMirror-settings.open-advanced .CodeMirror-settings__toggle-advanced:before {content: 'less';}.CodeMirror-settings.open-advanced .CodeMirror-settings__header {border-bottom-left-radius: 0;border-bottom-right-radius: 0;}.CodeMirror-settings.open-advanced .CodeMirror-settings__body,.CodeMirror-settings.open-advanced .CodeMirror-settings__footer {visibility: visible;opacity: 1;transform: translate(0, 0);transition: visibility 1ms ease, opacity 250ms ease 1ms, transform 250ms ease 1ms;}.CodeMirror-settings__button {position: relative;}.CodeMirror-settings__button:active {transform: none !important;}.CodeMirror-settings__button select,.CodeMirror-settings__button input {display: block;position: absolute;top: 0;right: 0;bottom: 0;left: 0;-webkit-appearance: none;margin: 0;padding: 0;border: none;height: auto;font-size: 0;line-height: 0;height: 100% !important;width: 100% !important;background: none;opacity: 0;}.CodeMirror-settings__button option {font-size: 12px;}.CodeMirror-settings__button--select:after {content: '\f140';font-family: dashicons;vertical-align: top;display: inline-block;margin: 0 -5px -4px;}.CodeMirror-settings__toggle-advanced {cursor: pointer;display: inline-block;line-height: 25px;padding: 0 4px;vertical-align: middle;}.CodeMirror-dialog {position: absolute;left: 0;right: 0;top: 0;width: calc(100% - 12px );margin: 6px;box-sizing: border-box;display: -ms-flexbox;display: flex;-ms-flex-align: center;align-items: center;z-index: 12;padding-left: 12px;border-radius: 3px;border: 1px solid #ddd;color: #444;background-color: white;}.CodeMirror-dialog:after {position: absolute;right: 0;top: 0;bottom: 0;content: '\f158';font-family: dashicons;line-height: 1em;cursor: pointer;}.CodeMirror-dialog input {border: none;outline: none;background: rgba(0, 0, 0, 0.05);color: inherit;font-family: monospace;margin: -1px 12px;padding: 0 12px;-ms-flex-item-align: stretch;-ms-grid-row-align: stretch;align-self: stretch;-ms-flex: 1 1 auto;flex: 1 1 auto;}.CodeMirror-dialog input,.CodeMirror-dialog input:focus {box-shadow: none;}.CodeMirror-dialog button {margin: 0 2px !important;}.CodeMirror-dialog button:first-of-type {margin-left: 12px !important;}.CodeMirror-dialog span {-ms-flex-item-align: stretch;align-self: stretch;display: -ms-flexbox;display: flex;-ms-flex-align: center;align-items: center;}.CodeMirror-overlayscroll .CodeMirror-scrollbar-filler,.CodeMirror-overlayscroll .CodeMirror-gutter-filler {display: none !important;}.CodeMirror-overlayscroll-horizontal,.CodeMirror-overlayscroll-vertical {position: absolute;z-index: 6;transition: opacity 100ms linear;opacity: 0.5;}.CodeMirror-overlayscroll-horizontal:hover,.CodeMirror-overlayscroll-vertical:hover {opacity: 1;}.CodeMirror-overlayscroll-horizontal:active,.CodeMirror-overlayscroll-vertical:active {opacity: 0.75;}.CodeMirror-overlayscroll-horizontal div,.CodeMirror-overlayscroll-vertical div {position: absolute;background: transparent !important;}.CodeMirror-overlayscroll-horizontal div:after,.CodeMirror-overlayscroll-vertical div:after {content: '';background-color: #f5f5f5;border: 1px solid #ddd;border-radius: 4px;position: absolute;}.CodeMirror-overlayscroll-horizontal {bottom: 0;left: 0;height: 8px;margin-bottom: 6px;}.CodeMirror-overlayscroll-horizontal div {top: 0;bottom: 0;}.CodeMirror-overlayscroll-horizontal div:after {top: 0;bottom: 0;left: 6px;right: 6px;}.CodeMirror-overlayscroll-vertical {right: 0;top: 0;width: 8px;margin-right: 6px;}.CodeMirror-overlayscroll-vertical div {left: 0;right: 0;}.CodeMirror-overlayscroll-vertical div:after {left: 0;right: 0;bottom: 6px;}.wp-editor-expand .CodeMirror {min-height: 300px;}.wp-editor-expand .CodeMirror .CodeMirror-scroll {padding-bottom: 330px !important;margin-bottom: -330px !important;}.CodeMirror-mirrored {display: block !important;position: fixed !important;left: -9999px !important;top: -9999px !important;z-index: -999 !important;opacity: 0 !important;}#template .CodeMirror div {margin-right: initial;}#template .CodeMirror p {width: auto;}.CodeMirror-vscrollbar {display: none !important;}.CodeMirror-scroll {margin-right: -30px !important;}.CodeMirror-settings__toggle {margin: 6px !important;}.heshFullscreen {z-index: 99999;position: fixed !important;top: 0;left: 0;right: 0;bottom: 0;height: 100%;background: #fff;padding: 2% 2% 0;}.heshFullscreen .CodeMirror {border: 1px solid #ccc;border-radius: 0 0 4px 4px;height: 85% !important;}.heshFullscreen #ed_toolbar {border: 1px solid #ccc;border-bottom: 0;border-radius: 4px 4px 0 0;}.heshFullscreen #cm_content_fullscreen:before {content: '\f506';}.cm-matchhighlight,.CodeMirror-matchingbracket,.CodeMirror-matchingtag {background-color: rgba(0, 255, 175, 0.2);}#cm_content_fullscreen {display: inline-block;}.wp-editor-expand #cm_content_fullscreen {display: none;}.hesh-content-resize-handle {position: absolute;right: 0;bottom: 0;width: 12px;height: 12px;z-index: 8;margin: 1px !important;}#ed_toolbar {z-index: 10;}@media screen and (min-width: 782px) {.CodeMirror-settings__toggle {height: 35px;}.CodeMirror-settings__toggle {width: 35px;}.CodeMirror-settings__toggle:after {font-size: 20px;}.CodeMirror-settings__toggle:after {margin: 7px;}.CodeMirror-settings__docked {min-height: 35px;}.CodeMirror-settings__header {padding-right: 35px;}.CodeMirror-settings__button--select:after {font-size: 16px;}.CodeMirror-settings__button--select:after {margin-top: 0;}.CodeMirror-dialog {height: 35px;}.CodeMirror-dialog {padding-right: 35px;}.CodeMirror-dialog:after {font-size: 20px;}.CodeMirror-dialog:after {margin: 7px;}.CodeMirror-overlayscroll-vertical div:after {top: 47px;}#template .CodeMirror {margin-right: 20px;}}@media screen and (max-width: 781px) {.CodeMirror-settings__toggle {height: 44px;}.CodeMirror-settings__toggle {width: 44px;}.CodeMirror-settings__toggle:after {font-size: 28px;}.CodeMirror-settings__toggle:after {margin: 8px;}.CodeMirror-settings__docked {min-height: 44px;}.CodeMirror-settings__header {padding-right: 44px;}.CodeMirror-settings__button--select:after {font-size: 20px;}.CodeMirror-settings__button--select:after {margin-top: -2px;}.CodeMirror-dialog {height: 44px;}.CodeMirror-dialog {padding-right: 44px;}.CodeMirror-dialog:after {font-size: 28px;}.CodeMirror-dialog:after {margin: 8px;}.CodeMirror-overlayscroll-vertical div:after {top: 56px;}#template .CodeMirror {margin-right: initial;}}@media screen and (max-height: 550px) {.heshFullscreen .CodeMirror {height: 75% !important;}}@media print {/* Hide the cursor when printing */.CodeMirror div.CodeMirror-cursors {visibility: hidden;}}@keyframes blink {50% {background-color: transparent;}}
4
  * Author URI: http://arniebradfo.com/
5
  * Author: Peter Mukhortov
6
  * Author URI: http://mukhortov.com/
7
+ * Version: 2.2.4
8
  **//* BASICS */.CodeMirror {
9
  /* Set height, width, borders, and global font properties here */
10
  font-family: monospace;
62
  z-index: 1;
63
  }
64
 
65
+ .cm-fat-cursor-mark {
66
+ background-color: rgba(20, 255, 20, 0.5);
67
+ -webkit-animation: blink 1.06s steps(1) infinite;
68
+ animation: blink 1.06s steps(1) infinite;
69
+ }
70
+
71
  .cm-animate-fat-cursor {
72
  width: auto;
73
  border: 0;
74
+ -webkit-animation: blink 1.06s steps(1) infinite;
75
  animation: blink 1.06s steps(1) infinite;
76
  background-color: #7e7;
77
  }/* Can style cursor different in overwrite (non-insert) mode */.cm-tab {
204
  .CodeMirror-composing {
205
  border-bottom: 2px solid;
206
  }/* Default styles for common addons */div.CodeMirror span.CodeMirror-matchingbracket {
207
+ color: #0b0;
208
  }
209
 
210
  div.CodeMirror span.CodeMirror-nonmatchingbracket {
211
+ color: #a22;
212
  }
213
 
214
  .CodeMirror-matchingtag {
326
  position: relative;
327
  overflow: visible;
328
  -webkit-tap-highlight-color: transparent;
329
+ -webkit-font-variant-ligatures: contextual;
330
  font-variant-ligatures: contextual;
331
  }
332
 
348
  .CodeMirror-linewidget {
349
  position: relative;
350
  z-index: 2;
351
+ padding: 0.1px;
352
+ /* Force widget margins to stay inside of the container */;
353
  }
354
 
355
  .CodeMirror-rtl pre {
359
  .CodeMirror-code {
360
  outline: none;
361
  }/* Force content-box sizing for the elements where we expect it */.CodeMirror-scroll,.CodeMirror-sizer,.CodeMirror-gutter,.CodeMirror-gutters,.CodeMirror-linenumber {
362
+ -webkit-box-sizing: content-box;
363
  box-sizing: content-box;
364
  }
365
 
422
  background-color: #ffa;
423
  background-color: rgba(255, 255, 0, 0.4);
424
  }/* Used to force a border model for a node */.cm-force-border {
425
+ padding-right: 0.1px;
426
  }/* See issue #2901 */.cm-tab-wrap-hack:after {
427
  content: '';
428
  }/* Help users use markselection to safely style text background */span.CodeMirror-selectedtext {
783
  }
784
 
785
  .cm-s-ambiance.CodeMirror {
786
+ -webkit-box-shadow: none;
787
  box-shadow: none;
788
  }/* ambiance theme for codemirror *//* Color scheme */.cm-s-ambiance .cm-header {
789
  color: blue;
909
  .cm-s-ambiance .CodeMirror-line::-moz-selection,.cm-s-ambiance .CodeMirror-line > span::-moz-selection,.cm-s-ambiance .CodeMirror-line > span > span::-moz-selection {
910
  background: rgba(255, 255, 255, 0.1);
911
  }/* Editor styling */.cm-s-ambiance.CodeMirror {
912
+ line-height: 1.4em;
913
  color: #E6E1DC;
914
  background-color: #202020;
915
+ -webkit-box-shadow: inset 0 0 10px black;
916
  box-shadow: inset 0 0 10px black;
917
  }
918
 
919
  .cm-s-ambiance .CodeMirror-gutters {
920
  background: #3D3D3D;
921
  border-right: 1px solid #4D4D4D;
922
+ -webkit-box-shadow: 0 10px 20px black;
923
  box-shadow: 0 10px 20px black;
924
  }
925
 
1257
 
1258
  .cm-s-bespin .CodeMirror-activeline-background {
1259
  background: #404040;
1260
+ }/* Port of TextMate's Blackboard theme */.cm-s-blackboard.CodeMirror {background: #0C1021;color: #F8F8F8;}.cm-s-blackboard div.CodeMirror-selected {background: #253B76;}.cm-s-blackboard .CodeMirror-line::-moz-selection,.cm-s-blackboard .CodeMirror-line > span::-moz-selection,.cm-s-blackboard .CodeMirror-line > span > span::-moz-selection {background: rgba(37, 59, 118, 0.99);}.cm-s-blackboard .CodeMirror-line::selection,.cm-s-blackboard .CodeMirror-line > span::selection,.cm-s-blackboard .CodeMirror-line > span > span::selection {background: rgba(37, 59, 118, 0.99);}.cm-s-blackboard .CodeMirror-line::-moz-selection,.cm-s-blackboard .CodeMirror-line > span::-moz-selection,.cm-s-blackboard .CodeMirror-line > span > span::-moz-selection {background: rgba(37, 59, 118, 0.99);}.cm-s-blackboard .CodeMirror-gutters {background: #0C1021;border-right: 0;}.cm-s-blackboard .CodeMirror-guttermarker {color: #FBDE2D;}.cm-s-blackboard .CodeMirror-guttermarker-subtle {color: #888;}.cm-s-blackboard .CodeMirror-linenumber {color: #888;}.cm-s-blackboard .CodeMirror-cursor {border-left: 1px solid #A7A7A7;}.cm-s-blackboard .cm-keyword {color: #FBDE2D;}.cm-s-blackboard .cm-atom {color: #D8FA3C;}.cm-s-blackboard .cm-number {color: #D8FA3C;}.cm-s-blackboard .cm-def {color: #8DA6CE;}.cm-s-blackboard .cm-variable {color: #FF6400;}.cm-s-blackboard .cm-operator {color: #FBDE2D;}.cm-s-blackboard .cm-comment {color: #AEAEAE;}.cm-s-blackboard .cm-string {color: #61CE3C;}.cm-s-blackboard .cm-string-2 {color: #61CE3C;}.cm-s-blackboard .cm-meta {color: #D8FA3C;}.cm-s-blackboard .cm-builtin {color: #8DA6CE;}.cm-s-blackboard .cm-tag {color: #8DA6CE;}.cm-s-blackboard .cm-attribute {color: #8DA6CE;}.cm-s-blackboard .cm-header {color: #FF6400;}.cm-s-blackboard .cm-hr {color: #AEAEAE;}.cm-s-blackboard .cm-link {color: #8DA6CE;}.cm-s-blackboard .cm-error {background: #9D1E15;color: #F8F8F8;}.cm-s-blackboard .CodeMirror-activeline-background {background: #3C3636;}.cm-s-blackboard .CodeMirror-matchingbracket {outline: 1px solid grey;color: white !important;}.cm-s-cobalt.CodeMirror {background: #002240;color: white;}.cm-s-cobalt div.CodeMirror-selected {background: #b36539;}.cm-s-cobalt .CodeMirror-line::-moz-selection,.cm-s-cobalt .CodeMirror-line > span::-moz-selection,.cm-s-cobalt .CodeMirror-line > span > span::-moz-selection {background: rgba(179, 101, 57, 0.99);}.cm-s-cobalt .CodeMirror-line::selection,.cm-s-cobalt .CodeMirror-line > span::selection,.cm-s-cobalt .CodeMirror-line > span > span::selection {background: rgba(179, 101, 57, 0.99);}.cm-s-cobalt .CodeMirror-line::-moz-selection,.cm-s-cobalt .CodeMirror-line > span::-moz-selection,.cm-s-cobalt .CodeMirror-line > span > span::-moz-selection {background: rgba(179, 101, 57, 0.99);}.cm-s-cobalt .CodeMirror-gutters {background: #002240;border-right: 1px solid #aaa;}.cm-s-cobalt .CodeMirror-guttermarker {color: #ffee80;}.cm-s-cobalt .CodeMirror-guttermarker-subtle {color: #d0d0d0;}.cm-s-cobalt .CodeMirror-linenumber {color: #d0d0d0;}.cm-s-cobalt .CodeMirror-cursor {border-left: 1px solid white;}.cm-s-cobalt span.cm-comment {color: #08f;}.cm-s-cobalt span.cm-atom {color: #845dc4;}.cm-s-cobalt span.cm-number,.cm-s-cobalt span.cm-attribute {color: #ff80e1;}.cm-s-cobalt span.cm-keyword {color: #ffee80;}.cm-s-cobalt span.cm-string {color: #3ad900;}.cm-s-cobalt span.cm-meta {color: #ff9d00;}.cm-s-cobalt span.cm-variable-2,.cm-s-cobalt span.cm-tag {color: #9effff;}.cm-s-cobalt span.cm-variable-3,.cm-s-cobalt span.cm-def,.cm-s-cobalt .cm-type {color: white;}.cm-s-cobalt span.cm-bracket {color: #d8d8d8;}.cm-s-cobalt span.cm-builtin,.cm-s-cobalt span.cm-special {color: #ff9e59;}.cm-s-cobalt span.cm-link {color: #845dc4;}.cm-s-cobalt span.cm-error {color: #9d1e15;}.cm-s-cobalt .CodeMirror-activeline-background {background: #002D57;}.cm-s-cobalt .CodeMirror-matchingbracket {outline: 1px solid grey;color: white !important;}.cm-s-colorforth.CodeMirror {background: #000000;color: #f8f8f8;}.cm-s-colorforth .CodeMirror-gutters {background: #0a001f;border-right: 1px solid #aaa;}.cm-s-colorforth .CodeMirror-guttermarker {color: #FFBD40;}.cm-s-colorforth .CodeMirror-guttermarker-subtle {color: #78846f;}.cm-s-colorforth .CodeMirror-linenumber {color: #bababa;}.cm-s-colorforth .CodeMirror-cursor {border-left: 1px solid white;}.cm-s-colorforth span.cm-comment {color: #ededed;}.cm-s-colorforth span.cm-def {color: #ff1c1c;font-weight: bold;}.cm-s-colorforth span.cm-keyword {color: #ffd900;}.cm-s-colorforth span.cm-builtin {color: #00d95a;}.cm-s-colorforth span.cm-variable {color: #73ff00;}.cm-s-colorforth span.cm-string {color: #007bff;}.cm-s-colorforth span.cm-number {color: #00c4ff;}.cm-s-colorforth span.cm-atom {color: #606060;}.cm-s-colorforth span.cm-variable-2 {color: #EEE;}.cm-s-colorforth span.cm-variable-3,.cm-s-colorforth span.cm-type {color: #DDD;}.cm-s-colorforth span.cm-meta {color: yellow;}.cm-s-colorforth span.cm-qualifier {color: #FFF700;}.cm-s-colorforth span.cm-bracket {color: #cc7;}.cm-s-colorforth span.cm-tag {color: #FFBD40;}.cm-s-colorforth span.cm-attribute {color: #FFF700;}.cm-s-colorforth span.cm-error {color: #f00;}.cm-s-colorforth div.CodeMirror-selected {background: #333d53;}.cm-s-colorforth span.cm-compilation {background: rgba(255, 255, 255, 0.12);}.cm-s-colorforth .CodeMirror-activeline-background {background: #253540;}/**
1261
+ Name: IntelliJ IDEA darcula theme
1262
+ From IntelliJ IDEA by JetBrains
1263
+ */.cm-s-darcula span.cm-meta {color: #BBB529;}.cm-s-darcula span.cm-number {color: #6897BB;}.cm-s-darcula span.cm-keyword {line-height: 1em;font-weight: bold;color: #CC7832;}.cm-s-darcula span.cm-def {color: #FFC66D;}.cm-s-darcula span.cm-variable {color: #A9B7C6;}.cm-s-darcula span.cm-variable-2 {color: #A9B7C6;}.cm-s-darcula span.cm-variable-3,.cm-s-darcula span.cm-type {color: #A9B7C6;}.cm-s-darcula span.cm-property {color: #A9B7C6;}.cm-s-darcula span.cm-operator {color: #A9B7C6;}.cm-s-darcula span.cm-string {color: #6A8759;}.cm-s-darcula span.cm-string-2 {color: #6A8759;}.cm-s-darcula span.cm-comment {color: #808080;}.cm-s-darcula span.cm-link {color: #287BDE;}.cm-s-darcula span.cm-atom {font-weight: bold;color: #CC7832;}.cm-s-darcula span.cm-error {color: #BC3F3C;}.cm-s-darcula span.cm-tag {color: #CC7832;}.cm-s-darcula span.cm-attribute {color: #6A8759;}.cm-s-darcula span.cm-qualifier {color: #6A8759;}.cm-s-darcula span.cm-bracket {color: #A9B7C6;}.cm-s-darcula.CodeMirror {background: #2B2B2B;color: #A9B7C6;}.cm-s-darcula .CodeMirror-cursor {border-left: 1px solid #dddddd;}.cm-s-darcula .CodeMirror-activeline-background {background: #3A3A3A;}.cm-s-darcula div.CodeMirror-selected {background: #085a9c;}.cm-s-darcula .CodeMirror-gutters {background: #484848;border-right: 1px solid grey;color: #606366;}.cm-s-darcula span.cm-builtin {color: #A9B7C6;}.cm-s-darcula {font-family: Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, serif;}.cm-s-darcula .CodeMirror-matchingbracket {background-color: #3b514d;color: yellow !important;}.CodeMirror-hints.darcula {font-family: Menlo, Monaco, Consolas, 'Courier New', monospace;color: #9c9e9e;background-color: #3b3e3f !important;}.CodeMirror-hints.darcula .CodeMirror-hint-active {background-color: #494d4e !important;color: #9c9e9e !important;}/*
1264
 
1265
  Name: dracula
1266
  Author: Michael Kaminsky (http://github.com/mkaminsky11)
1272
  Author: by Bram de Haan, adapted from DuoTone themes by Simurai (http://simurai.com/projects/2016/01/01/duotone-themes)
1273
 
1274
  CodeMirror template by Jan T. Sott (https://github.com/idleberg), adapted by Bram de Haan (https://github.com/atelierbram/)
1275
+ */.cm-s-duotone-dark.CodeMirror {background: #2a2734;color: #6c6783;}.cm-s-duotone-dark div.CodeMirror-selected {background: #545167 !important;}.cm-s-duotone-dark .CodeMirror-gutters {background: #2a2734;border-right: 0px;}.cm-s-duotone-dark .CodeMirror-linenumber {color: #545167;}/* begin cursor */.cm-s-duotone-dark .CodeMirror-cursor {border-left: 1px solid #ffad5c; /* border-left: 1px solid #ffad5c80; */border-right: 0.5em solid #ffad5c; /* border-right: .5em solid #ffad5c80; */opacity: 0.5;}.cm-s-duotone-dark .CodeMirror-activeline-background {background: #363342; /* background: #36334280; */opacity: 0.5;}.cm-s-duotone-dark .cm-fat-cursor .CodeMirror-cursor {background: #ffad5c; /* background: #ffad5c80; */opacity: 0.5;}/* end cursor */.cm-s-duotone-dark span.cm-atom,.cm-s-duotone-dark span.cm-number,.cm-s-duotone-dark span.cm-keyword,.cm-s-duotone-dark span.cm-variable,.cm-s-duotone-dark span.cm-attribute,.cm-s-duotone-dark span.cm-quote,.cm-s-duotone-dark span.cm-hr,.cm-s-duotone-dark span.cm-link {color: #ffcc99;}.cm-s-duotone-dark span.cm-property {color: #9a86fd;}.cm-s-duotone-dark span.cm-punctuation,.cm-s-duotone-dark span.cm-unit,.cm-s-duotone-dark span.cm-negative {color: #e09142;}.cm-s-duotone-dark span.cm-string {color: #ffb870;}.cm-s-duotone-dark span.cm-operator {color: #ffad5c;}.cm-s-duotone-dark span.cm-positive {color: #6a51e6;}.cm-s-duotone-dark span.cm-variable-2,.cm-s-duotone-dark span.cm-variable-3,.cm-s-duotone-dark span.cm-type,.cm-s-duotone-dark span.cm-string-2,.cm-s-duotone-dark span.cm-url {color: #7a63ee;}.cm-s-duotone-dark span.cm-def,.cm-s-duotone-dark span.cm-tag,.cm-s-duotone-dark span.cm-builtin,.cm-s-duotone-dark span.cm-qualifier,.cm-s-duotone-dark span.cm-header,.cm-s-duotone-dark span.cm-em {color: #eeebff;}.cm-s-duotone-dark span.cm-bracket,.cm-s-duotone-dark span.cm-comment {color: #6c6783;}/* using #f00 red for errors, don't think any of the colorscheme variables will stand out enough, ... maybe by giving it a background-color ... */.cm-s-duotone-dark span.cm-error,.cm-s-duotone-dark span.cm-invalidchar {
1276
  color: #f00;
1277
  }
1278
 
1307
  }/* begin cursor */.cm-s-duotone-light .CodeMirror-cursor {
1308
  border-left: 1px solid #93abdc;
1309
  /* border-left: 1px solid #93abdc80; */
1310
+ border-right: 0.5em solid #93abdc;
1311
  /* border-right: .5em solid #93abdc80; */
1312
+ opacity: 0.5;
1313
  }
1314
 
1315
  .cm-s-duotone-light .CodeMirror-activeline-background {
1316
  background: #e3dcce;
1317
  /* background: #e3dcce80; */
1318
+ opacity: 0.5;
1319
  }
1320
 
1321
  .cm-s-duotone-light .cm-fat-cursor .CodeMirror-cursor {
1322
  background: #93abdc;
1323
  /* #93abdc80; */
1324
+ opacity: 0.5;
1325
  }/* end cursor */.cm-s-duotone-light span.cm-atom,.cm-s-duotone-light span.cm-number,.cm-s-duotone-light span.cm-keyword,.cm-s-duotone-light span.cm-variable,.cm-s-duotone-light span.cm-attribute,.cm-s-duotone-light span.cm-quote,.cm-s-duotone-light-light span.cm-hr,.cm-s-duotone-light-light span.cm-link {
1326
  color: #063289;
1327
  }
1354
  color: #b6ad9a;
1355
  }/* using #f00 red for errors, don't think any of the colorscheme variables will stand out enough, ... maybe by giving it a background-color ... *//* .cm-s-duotone-light span.cm-error { background: #896724; color: #728fcb; } */.cm-s-duotone-light span.cm-error,.cm-s-duotone-light span.cm-invalidchar {color: #f00;}.cm-s-duotone-light span.cm-header {font-weight: normal;}.cm-s-duotone-light .CodeMirror-matchingbracket {text-decoration: underline;color: #faf8f5 !important;}.cm-s-eclipse span.cm-meta {color: #FF1717;}.cm-s-eclipse span.cm-keyword {line-height: 1em;font-weight: bold;color: #7F0055;}.cm-s-eclipse span.cm-atom {color: #219;}.cm-s-eclipse span.cm-number {color: #164;}.cm-s-eclipse span.cm-def {color: #00f;}.cm-s-eclipse span.cm-variable {color: black;}.cm-s-eclipse span.cm-variable-2 {color: #0000C0;}.cm-s-eclipse span.cm-variable-3,.cm-s-eclipse span.cm-type {color: #0000C0;}.cm-s-eclipse span.cm-property {color: black;}.cm-s-eclipse span.cm-operator {color: black;}.cm-s-eclipse span.cm-comment {color: #3F7F5F;}.cm-s-eclipse span.cm-string {color: #2A00FF;}.cm-s-eclipse span.cm-string-2 {color: #f50;}.cm-s-eclipse span.cm-qualifier {color: #555;}.cm-s-eclipse span.cm-builtin {color: #30a;}.cm-s-eclipse span.cm-bracket {color: #cc7;}.cm-s-eclipse span.cm-tag {color: #170;}.cm-s-eclipse span.cm-attribute {color: #00c;}.cm-s-eclipse span.cm-link {color: #219;}.cm-s-eclipse span.cm-error {color: #f00;}.cm-s-eclipse .CodeMirror-activeline-background {background: #e8f2ff;}.cm-s-eclipse .CodeMirror-matchingbracket {outline: 1px solid grey;color: black !important;}.cm-s-elegant span.cm-number,.cm-s-elegant span.cm-string,.cm-s-elegant span.cm-atom {color: #762;}.cm-s-elegant span.cm-comment {color: #262;font-style: italic;line-height: 1em;}.cm-s-elegant span.cm-meta {color: #555;font-style: italic;line-height: 1em;}.cm-s-elegant span.cm-variable {color: black;}.cm-s-elegant span.cm-variable-2 {color: #b11;}.cm-s-elegant span.cm-qualifier {color: #555;}.cm-s-elegant span.cm-keyword {color: #730;}.cm-s-elegant span.cm-builtin {color: #30a;}.cm-s-elegant span.cm-link {color: #762;}.cm-s-elegant span.cm-error {background-color: #fdd;}.cm-s-elegant .CodeMirror-activeline-background {background: #e8f2ff;}.cm-s-elegant .CodeMirror-matchingbracket {outline: 1px solid grey;color: black !important;}.cm-s-erlang-dark.CodeMirror {background: #002240;color: white;}.cm-s-erlang-dark div.CodeMirror-selected {background: #b36539;}.cm-s-erlang-dark .CodeMirror-line::-moz-selection,.cm-s-erlang-dark .CodeMirror-line > span::-moz-selection,.cm-s-erlang-dark .CodeMirror-line > span > span::-moz-selection {background: rgba(179, 101, 57, 0.99);}.cm-s-erlang-dark .CodeMirror-line::selection,.cm-s-erlang-dark .CodeMirror-line > span::selection,.cm-s-erlang-dark .CodeMirror-line > span > span::selection {background: rgba(179, 101, 57, 0.99);}.cm-s-erlang-dark .CodeMirror-line::-moz-selection,.cm-s-erlang-dark .CodeMirror-line > span::-moz-selection,.cm-s-erlang-dark .CodeMirror-line > span > span::-moz-selection {background: rgba(179, 101, 57, 0.99);}.cm-s-erlang-dark .CodeMirror-gutters {background: #002240;border-right: 1px solid #aaa;}.cm-s-erlang-dark .CodeMirror-guttermarker {color: white;}.cm-s-erlang-dark .CodeMirror-guttermarker-subtle {color: #d0d0d0;}.cm-s-erlang-dark .CodeMirror-linenumber {color: #d0d0d0;}.cm-s-erlang-dark .CodeMirror-cursor {border-left: 1px solid white;}.cm-s-erlang-dark span.cm-quote {color: #ccc;}.cm-s-erlang-dark span.cm-atom {color: #f133f1;}.cm-s-erlang-dark span.cm-attribute {color: #ff80e1;}.cm-s-erlang-dark span.cm-bracket {color: #ff9d00;}.cm-s-erlang-dark span.cm-builtin {color: #eaa;}.cm-s-erlang-dark span.cm-comment {color: #77f;}.cm-s-erlang-dark span.cm-def {color: #e7a;}.cm-s-erlang-dark span.cm-keyword {color: #ffee80;}.cm-s-erlang-dark span.cm-meta {color: #50fefe;}.cm-s-erlang-dark span.cm-number {color: #ffd0d0;}.cm-s-erlang-dark span.cm-operator {color: #d55;}.cm-s-erlang-dark span.cm-property {color: #ccc;}.cm-s-erlang-dark span.cm-qualifier {color: #ccc;}.cm-s-erlang-dark span.cm-special {color: #ffbbbb;}.cm-s-erlang-dark span.cm-string {color: #3ad900;}.cm-s-erlang-dark span.cm-string-2 {color: #ccc;}.cm-s-erlang-dark span.cm-tag {color: #9effff;}.cm-s-erlang-dark span.cm-variable {color: #50fe50;}.cm-s-erlang-dark span.cm-variable-2 {color: #e0e;}.cm-s-erlang-dark span.cm-variable-3,.cm-s-erlang-dark span.cm-type {color: #ccc;}.cm-s-erlang-dark span.cm-error {color: #9d1e15;}.cm-s-erlang-dark .CodeMirror-activeline-background {background: #013461;}.cm-s-erlang-dark .CodeMirror-matchingbracket {outline: 1px solid grey;color: white !important;}/*
1356
 
1357
+ Name: gruvbox-dark
1358
+ Author: kRkk (https://github.com/krkk)
1359
+
1360
+ Original gruvbox color scheme by Pavel Pertsev (https://github.com/morhetz/gruvbox)
1361
+
1362
+ */.cm-s-gruvbox-dark.CodeMirror,.cm-s-gruvbox-dark .CodeMirror-gutters {background-color: #282828;color: #bdae93;}.cm-s-gruvbox-dark .CodeMirror-gutters {background: #282828;border-right: 0px;}.cm-s-gruvbox-dark .CodeMirror-linenumber {color: #7c6f64;}.cm-s-gruvbox-dark .CodeMirror-cursor {border-left: 1px solid #ebdbb2;}.cm-s-gruvbox-dark div.CodeMirror-selected {background: #928374;}.cm-s-gruvbox-dark span.cm-meta {color: #808000;}.cm-s-gruvbox-dark span.cm-comment {color: #928374;}.cm-s-gruvbox-dark span.cm-number,span.cm-atom {color: #d3869b;}.cm-s-gruvbox-dark span.cm-keyword {color: #f84934;}.cm-s-gruvbox-dark span.cm-variable {color: #ebdbb2;}.cm-s-gruvbox-dark span.cm-variable-2 {color: #ebdbb2;}.cm-s-gruvbox-dark span.cm-variable-3,.cm-s-gruvbox-dark span.cm-type {color: black;}.cm-s-gruvbox-dark span.cm-operator {color: #ebdbb2;}.cm-s-gruvbox-dark span.cm-def {color: #ebdbb2;}.cm-s-gruvbox-dark span.cm-string {color: #b8bb26;}.cm-s-gruvbox-dark span.cm-string-2 {color: #8ec07c;}.cm-s-gruvbox-dark span.cm-qualifier {color: #555;}.cm-s-gruvbox-dark span.cm-attribute {color: #8ec07c;}.cm-s-gruvbox-dark .CodeMirror-activeline-background {background: #3c3836;}.cm-s-gruvbox-dark .CodeMirror-matchingbracket {background: #928374;color: #282828 !important;}.cm-s-gruvbox-dark span.cm-builtin {color: #fe8019;}/*
1363
+
1364
  Name: Hopscotch
1365
  Author: Jan T. Sott
1366
 
1369
 
1370
  */.cm-s-hopscotch.CodeMirror {background: #322931;color: #d5d3d5;}.cm-s-hopscotch div.CodeMirror-selected {background: #433b42 !important;}.cm-s-hopscotch .CodeMirror-gutters {background: #322931;border-right: 0px;}.cm-s-hopscotch .CodeMirror-linenumber {color: #797379;}.cm-s-hopscotch .CodeMirror-cursor {border-left: 1px solid #989498 !important;}.cm-s-hopscotch span.cm-comment {color: #b33508;}.cm-s-hopscotch span.cm-atom {color: #c85e7c;}.cm-s-hopscotch span.cm-number {color: #c85e7c;}.cm-s-hopscotch span.cm-property,.cm-s-hopscotch span.cm-attribute {color: #8fc13e;}.cm-s-hopscotch span.cm-keyword {color: #dd464c;}.cm-s-hopscotch span.cm-string {color: #fdcc59;}.cm-s-hopscotch span.cm-variable {color: #8fc13e;}.cm-s-hopscotch span.cm-variable-2 {color: #1290bf;}.cm-s-hopscotch span.cm-def {color: #fd8b19;}.cm-s-hopscotch span.cm-error {background: #dd464c;color: #989498;}.cm-s-hopscotch span.cm-bracket {color: #d5d3d5;}.cm-s-hopscotch span.cm-tag {color: #dd464c;}.cm-s-hopscotch span.cm-link {color: #c85e7c;}.cm-s-hopscotch .CodeMirror-matchingbracket {text-decoration: underline;color: white !important;}.cm-s-hopscotch .CodeMirror-activeline-background {background: #302020;}/*
1371
  ICEcoder default theme by Matt Pass, used in code editor available at https://icecoder.net
1372
+ */.cm-s-icecoder {color: #666;background: #1d1d1b;}.cm-s-icecoder span.cm-keyword {color: #eee;font-weight: bold;}/* off-white 1 */.cm-s-icecoder span.cm-atom {color: #e1c76e;}/* yellow */.cm-s-icecoder span.cm-number {color: #6cb5d9;}/* blue */.cm-s-icecoder span.cm-def {color: #b9ca4a;}/* green */.cm-s-icecoder span.cm-variable {color: #6cb5d9;}/* blue */.cm-s-icecoder span.cm-variable-2 {color: #cc1e5c;}/* pink */.cm-s-icecoder span.cm-variable-3,.cm-s-icecoder span.cm-type {color: #f9602c;}/* orange */.cm-s-icecoder span.cm-property {color: #eee;}/* off-white 1 */.cm-s-icecoder span.cm-operator {color: #9179bb;}/* purple */.cm-s-icecoder span.cm-comment {color: #97a3aa;}/* grey-blue */.cm-s-icecoder span.cm-string {color: #b9ca4a;}/* green */.cm-s-icecoder span.cm-string-2 {color: #6cb5d9;}/* blue */.cm-s-icecoder span.cm-meta {color: #555;}/* grey */.cm-s-icecoder span.cm-qualifier {color: #555;}/* grey */.cm-s-icecoder span.cm-builtin {color: #214e7b;}/* bright blue */.cm-s-icecoder span.cm-bracket {color: #cc7;}/* grey-yellow */.cm-s-icecoder span.cm-tag {color: #e8e8e8;}/* off-white 2 */.cm-s-icecoder span.cm-attribute {color: #099;}/* teal */.cm-s-icecoder span.cm-header {color: #6a0d6a;}/* purple-pink */.cm-s-icecoder span.cm-quote {color: #186718;}/* dark green */.cm-s-icecoder span.cm-hr {color: #888;}/* mid-grey */.cm-s-icecoder span.cm-link {color: #e1c76e;}/* yellow */.cm-s-icecoder span.cm-error {color: #d00;}/* red */.cm-s-icecoder .CodeMirror-cursor {border-left: 1px solid white;}.cm-s-icecoder div.CodeMirror-selected {color: #fff;background: #037;}.cm-s-icecoder .CodeMirror-gutters {background: #1d1d1b;min-width: 41px;border-right: 0;}.cm-s-icecoder .CodeMirror-linenumber {color: #555;cursor: default;}.cm-s-icecoder .CodeMirror-matchingbracket {color: #fff !important;background: #555 !important;}.cm-s-icecoder .CodeMirror-activeline-background {background: #000;}/**
1373
+ Name: IDEA default theme
1374
+ From IntelliJ IDEA by JetBrains
1375
+ */.cm-s-idea span.cm-meta {color: #808000;}.cm-s-idea span.cm-number {color: #0000FF;}.cm-s-idea span.cm-keyword {line-height: 1em;font-weight: bold;color: #000080;}.cm-s-idea span.cm-atom {font-weight: bold;color: #000080;}.cm-s-idea span.cm-def {color: #000000;}.cm-s-idea span.cm-variable {color: black;}.cm-s-idea span.cm-variable-2 {color: black;}.cm-s-idea span.cm-variable-3,.cm-s-idea span.cm-type {color: black;}.cm-s-idea span.cm-property {color: black;}.cm-s-idea span.cm-operator {color: black;}.cm-s-idea span.cm-comment {color: #808080;}.cm-s-idea span.cm-string {color: #008000;}.cm-s-idea span.cm-string-2 {color: #008000;}.cm-s-idea span.cm-qualifier {color: #555;}.cm-s-idea span.cm-error {color: #FF0000;}.cm-s-idea span.cm-attribute {color: #0000FF;}.cm-s-idea span.cm-tag {color: #000080;}.cm-s-idea span.cm-link {color: #0000FF;}.cm-s-idea .CodeMirror-activeline-background {background: #FFFAE3;}.cm-s-idea span.cm-builtin {color: #30a;}.cm-s-idea span.cm-bracket {color: #cc7;}.cm-s-idea {font-family: Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, serif;}.cm-s-idea .CodeMirror-matchingbracket {outline: 1px solid grey;color: black !important;}.CodeMirror-hints.idea {font-family: Menlo, Monaco, Consolas, 'Courier New', monospace;color: #616569;background-color: #ebf3fd !important;}.CodeMirror-hints.idea .CodeMirror-hint-active {background-color: #a2b8c9 !important;color: #5c6065 !important;}/*
1376
 
1377
  Name: Isotope
1378
  Author: David Desandro / Jan T. Sott
1383
  */.cm-s-isotope.CodeMirror {background: #000000;color: #e0e0e0;}.cm-s-isotope div.CodeMirror-selected {background: #404040 !important;}.cm-s-isotope .CodeMirror-gutters {background: #000000;border-right: 0px;}.cm-s-isotope .CodeMirror-linenumber {color: #808080;}.cm-s-isotope .CodeMirror-cursor {border-left: 1px solid #c0c0c0 !important;}.cm-s-isotope span.cm-comment {color: #3300ff;}.cm-s-isotope span.cm-atom {color: #cc00ff;}.cm-s-isotope span.cm-number {color: #cc00ff;}.cm-s-isotope span.cm-property,.cm-s-isotope span.cm-attribute {color: #33ff00;}.cm-s-isotope span.cm-keyword {color: #ff0000;}.cm-s-isotope span.cm-string {color: #ff0099;}.cm-s-isotope span.cm-variable {color: #33ff00;}.cm-s-isotope span.cm-variable-2 {color: #0066ff;}.cm-s-isotope span.cm-def {color: #ff9900;}.cm-s-isotope span.cm-error {background: #ff0000;color: #c0c0c0;}.cm-s-isotope span.cm-bracket {color: #e0e0e0;}.cm-s-isotope span.cm-tag {color: #ff0000;}.cm-s-isotope span.cm-link {color: #cc00ff;}.cm-s-isotope .CodeMirror-matchingbracket {text-decoration: underline;color: white !important;}.cm-s-isotope .CodeMirror-activeline-background {background: #202020;}/*
1384
  http://lesscss.org/ dark theme
1385
  Ported to CodeMirror by Peter Kroon
1386
+ */.cm-s-lesser-dark {line-height: 1.3em;}.cm-s-lesser-dark.CodeMirror {background: #262626;color: #EBEFE7;text-shadow: 0 -1px 1px #262626;}.cm-s-lesser-dark div.CodeMirror-selected {background: #45443B;}/* 33322B*/.cm-s-lesser-dark .CodeMirror-line::-moz-selection,.cm-s-lesser-dark .CodeMirror-line > span::-moz-selection,.cm-s-lesser-dark .CodeMirror-line > span > span::-moz-selection {background: rgba(69, 68, 59, 0.99);}.cm-s-lesser-dark .CodeMirror-line::selection,.cm-s-lesser-dark .CodeMirror-line > span::selection,.cm-s-lesser-dark .CodeMirror-line > span > span::selection {background: rgba(69, 68, 59, 0.99);}.cm-s-lesser-dark .CodeMirror-line::-moz-selection,.cm-s-lesser-dark .CodeMirror-line > span::-moz-selection,.cm-s-lesser-dark .CodeMirror-line > span > span::-moz-selection {background: rgba(69, 68, 59, 0.99);}.cm-s-lesser-dark .CodeMirror-cursor {border-left: 1px solid white;}.cm-s-lesser-dark pre {padding: 0 8px;}/*editable code holder*/.cm-s-lesser-dark.CodeMirror span.CodeMirror-matchingbracket {color: #7EFC7E;}/*65FC65*/.cm-s-lesser-dark .CodeMirror-gutters {background: #262626;border-right: 1px solid #aaa;}.cm-s-lesser-dark .CodeMirror-guttermarker {color: #599eff;}.cm-s-lesser-dark .CodeMirror-guttermarker-subtle {color: #777;}.cm-s-lesser-dark .CodeMirror-linenumber {color: #777;}.cm-s-lesser-dark span.cm-header {color: #a0a;}.cm-s-lesser-dark span.cm-quote {color: #090;}.cm-s-lesser-dark span.cm-keyword {color: #599eff;}.cm-s-lesser-dark span.cm-atom {color: #C2B470;}.cm-s-lesser-dark span.cm-number {color: #B35E4D;}.cm-s-lesser-dark span.cm-def {color: white;}.cm-s-lesser-dark span.cm-variable {color: #D9BF8C;}.cm-s-lesser-dark span.cm-variable-2 {color: #669199;}.cm-s-lesser-dark span.cm-variable-3,.cm-s-lesser-dark span.cm-type {color: white;}.cm-s-lesser-dark span.cm-property {color: #92A75C;}.cm-s-lesser-dark span.cm-operator {color: #92A75C;}.cm-s-lesser-dark span.cm-comment {color: #666;}.cm-s-lesser-dark span.cm-string {color: #BCD279;}.cm-s-lesser-dark span.cm-string-2 {color: #f50;}.cm-s-lesser-dark span.cm-meta {color: #738C73;}.cm-s-lesser-dark span.cm-qualifier {color: #555;}.cm-s-lesser-dark span.cm-builtin {color: #ff9e59;}.cm-s-lesser-dark span.cm-bracket {color: #EBEFE7;}.cm-s-lesser-dark span.cm-tag {color: #669199;}.cm-s-lesser-dark span.cm-attribute {color: #81a4d5;}.cm-s-lesser-dark span.cm-hr {color: #999;}.cm-s-lesser-dark span.cm-link {color: #00c;}.cm-s-lesser-dark span.cm-error {color: #9d1e15;}.cm-s-lesser-dark .CodeMirror-activeline-background {background: #3C3A3A;}.cm-s-lesser-dark .CodeMirror-matchingbracket {outline: 1px solid grey;color: white !important;}.cm-s-liquibyte.CodeMirror {background-color: #000;color: #fff;line-height: 1.2em;font-size: 1em;}.cm-s-liquibyte .CodeMirror-focused .cm-matchhighlight {text-decoration: underline;-webkit-text-decoration-color: #0f0;text-decoration-color: #0f0;-webkit-text-decoration-style: wavy;text-decoration-style: wavy;}.cm-s-liquibyte .cm-trailingspace {text-decoration: line-through;-webkit-text-decoration-color: #f00;text-decoration-color: #f00;-webkit-text-decoration-style: dotted;text-decoration-style: dotted;}.cm-s-liquibyte .cm-tab {text-decoration: line-through;-webkit-text-decoration-color: #404040;text-decoration-color: #404040;-webkit-text-decoration-style: dotted;text-decoration-style: dotted;}.cm-s-liquibyte .CodeMirror-gutters {background-color: #262626;border-right: 1px solid #505050;padding-right: 0.8em;}.cm-s-liquibyte .CodeMirror-gutter-elt div {font-size: 1.2em;}.cm-s-liquibyte .CodeMirror-linenumber {color: #606060;padding-left: 0;}.cm-s-liquibyte .CodeMirror-cursor {border-left: 1px solid #eee;}.cm-s-liquibyte span.cm-comment {color: #008000;}.cm-s-liquibyte span.cm-def {color: #ffaf40;font-weight: bold;}.cm-s-liquibyte span.cm-keyword {color: #c080ff;font-weight: bold;}.cm-s-liquibyte span.cm-builtin {color: #ffaf40;font-weight: bold;}.cm-s-liquibyte span.cm-variable {color: #5967ff;font-weight: bold;}.cm-s-liquibyte span.cm-string {color: #ff8000;}.cm-s-liquibyte span.cm-number {color: #0f0;font-weight: bold;}.cm-s-liquibyte span.cm-atom {color: #bf3030;font-weight: bold;}.cm-s-liquibyte span.cm-variable-2 {color: #007f7f;font-weight: bold;}.cm-s-liquibyte span.cm-variable-3,.cm-s-liquibyte span.cm-type {color: #c080ff;font-weight: bold;}.cm-s-liquibyte span.cm-property {color: #999;font-weight: bold;}.cm-s-liquibyte span.cm-operator {color: #fff;}.cm-s-liquibyte span.cm-meta {color: #0f0;}.cm-s-liquibyte span.cm-qualifier {color: #fff700;font-weight: bold;}.cm-s-liquibyte span.cm-bracket {color: #cc7;}.cm-s-liquibyte span.cm-tag {color: #ff0;font-weight: bold;}.cm-s-liquibyte span.cm-attribute {color: #c080ff;font-weight: bold;}.cm-s-liquibyte span.cm-error {color: #f00;}.cm-s-liquibyte div.CodeMirror-selected {background-color: rgba(255, 0, 0, 0.25);}.cm-s-liquibyte span.cm-compilation {background-color: rgba(255, 255, 255, 0.12);}.cm-s-liquibyte .CodeMirror-activeline-background {background-color: rgba(0, 255, 0, 0.15);}/* Default styles for common addons */.cm-s-liquibyte .CodeMirror span.CodeMirror-matchingbracket {color: #0f0;font-weight: bold;}.cm-s-liquibyte .CodeMirror span.CodeMirror-nonmatchingbracket {color: #f00;font-weight: bold;}.CodeMirror-matchingtag {background-color: rgba(150, 255, 0, 0.3);}/* Scrollbars *//* Simple */.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal div:hover,.cm-s-liquibyte div.CodeMirror-simplescroll-vertical div:hover {background-color: rgba(80, 80, 80, 0.7);}.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal div,.cm-s-liquibyte div.CodeMirror-simplescroll-vertical div {background-color: rgba(80, 80, 80, 0.3);border: 1px solid #404040;border-radius: 5px;}.cm-s-liquibyte div.CodeMirror-simplescroll-vertical div {border-top: 1px solid #404040;border-bottom: 1px solid #404040;}.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal div {border-left: 1px solid #404040;border-right: 1px solid #404040;}.cm-s-liquibyte div.CodeMirror-simplescroll-vertical {background-color: #262626;}.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal {background-color: #262626;border-top: 1px solid #404040;}/* Overlay */.cm-s-liquibyte div.CodeMirror-overlayscroll-horizontal div,div.CodeMirror-overlayscroll-vertical div {background-color: #404040;border-radius: 5px;}.cm-s-liquibyte div.CodeMirror-overlayscroll-vertical div {border: 1px solid #404040;}.cm-s-liquibyte div.CodeMirror-overlayscroll-horizontal div {border: 1px solid #404040;}/*
1387
+ Name: lucario
1388
+ Author: Raphael Amorim
1389
+
1390
+ Original Lucario color scheme (https://github.com/raphamorim/lucario)
1391
+ */.cm-s-lucario.CodeMirror,.cm-s-lucario .CodeMirror-gutters {background-color: #2b3e50 !important;color: #f8f8f2 !important;border: none;}.cm-s-lucario .CodeMirror-gutters {color: #2b3e50;}.cm-s-lucario .CodeMirror-cursor {border-left: solid thin #E6C845;}.cm-s-lucario .CodeMirror-linenumber {color: #f8f8f2;}.cm-s-lucario .CodeMirror-selected {background: #243443;}.cm-s-lucario .CodeMirror-line::-moz-selection,.cm-s-lucario .CodeMirror-line > span::-moz-selection,.cm-s-lucario .CodeMirror-line > span > span::-moz-selection {background: #243443;}.cm-s-lucario .CodeMirror-line::selection,.cm-s-lucario .CodeMirror-line > span::selection,.cm-s-lucario .CodeMirror-line > span > span::selection {background: #243443;}.cm-s-lucario .CodeMirror-line::-moz-selection,.cm-s-lucario .CodeMirror-line > span::-moz-selection,.cm-s-lucario .CodeMirror-line > span > span::-moz-selection {background: #243443;}.cm-s-lucario span.cm-comment {color: #5c98cd;}.cm-s-lucario span.cm-string,.cm-s-lucario span.cm-string-2 {color: #E6DB74;}.cm-s-lucario span.cm-number {color: #ca94ff;}.cm-s-lucario span.cm-variable {color: #f8f8f2;}.cm-s-lucario span.cm-variable-2 {color: #f8f8f2;}.cm-s-lucario span.cm-def {color: #72C05D;}.cm-s-lucario span.cm-operator {color: #66D9EF;}.cm-s-lucario span.cm-keyword {color: #ff6541;}.cm-s-lucario span.cm-atom {color: #bd93f9;}.cm-s-lucario span.cm-meta {color: #f8f8f2;}.cm-s-lucario span.cm-tag {color: #ff6541;}.cm-s-lucario span.cm-attribute {color: #66D9EF;}.cm-s-lucario span.cm-qualifier {color: #72C05D;}.cm-s-lucario span.cm-property {color: #f8f8f2;}.cm-s-lucario span.cm-builtin {color: #72C05D;}.cm-s-lucario span.cm-variable-3,.cm-s-lucario span.cm-type {color: #ffb86c;}.cm-s-lucario .CodeMirror-activeline-background {background: #243443;}.cm-s-lucario .CodeMirror-matchingbracket {text-decoration: underline;color: white !important;}/*
1392
 
1393
  Name: material
1394
  Author: Michael Kaminsky (http://github.com/mkaminsky11)
1752
  .cm-s-midnight .CodeMirror-matchingbracket {
1753
  text-decoration: underline;
1754
  color: white !important;
1755
+ }/* Based on Sublime Text's Monokai theme */.cm-s-monokai.CodeMirror {background: #272822;color: #f8f8f2;}.cm-s-monokai div.CodeMirror-selected {background: #49483E;}.cm-s-monokai .CodeMirror-line::-moz-selection,.cm-s-monokai .CodeMirror-line > span::-moz-selection,.cm-s-monokai .CodeMirror-line > span > span::-moz-selection {background: rgba(73, 72, 62, 0.99);}.cm-s-monokai .CodeMirror-line::selection,.cm-s-monokai .CodeMirror-line > span::selection,.cm-s-monokai .CodeMirror-line > span > span::selection {background: rgba(73, 72, 62, 0.99);}.cm-s-monokai .CodeMirror-line::-moz-selection,.cm-s-monokai .CodeMirror-line > span::-moz-selection,.cm-s-monokai .CodeMirror-line > span > span::-moz-selection {background: rgba(73, 72, 62, 0.99);}.cm-s-monokai .CodeMirror-gutters {background: #272822;border-right: 0px;}.cm-s-monokai .CodeMirror-guttermarker {color: white;}.cm-s-monokai .CodeMirror-guttermarker-subtle {color: #d0d0d0;}.cm-s-monokai .CodeMirror-linenumber {color: #d0d0d0;}.cm-s-monokai .CodeMirror-cursor {border-left: 1px solid #f8f8f0;}.cm-s-monokai span.cm-comment {color: #75715e;}.cm-s-monokai span.cm-atom {color: #ae81ff;}.cm-s-monokai span.cm-number {color: #ae81ff;}.cm-s-monokai span.cm-comment.cm-attribute {color: #97b757;}.cm-s-monokai span.cm-comment.cm-def {color: #bc9262;}.cm-s-monokai span.cm-comment.cm-tag {color: #bc6283;}.cm-s-monokai span.cm-comment.cm-type {color: #5998a6;}.cm-s-monokai span.cm-property,.cm-s-monokai span.cm-attribute {color: #a6e22e;}.cm-s-monokai span.cm-keyword {color: #f92672;}.cm-s-monokai span.cm-builtin {color: #66d9ef;}.cm-s-monokai span.cm-string {color: #e6db74;}.cm-s-monokai span.cm-variable {color: #f8f8f2;}.cm-s-monokai span.cm-variable-2 {color: #9effff;}.cm-s-monokai span.cm-variable-3,.cm-s-monokai span.cm-type {color: #66d9ef;}.cm-s-monokai span.cm-def {color: #fd971f;}.cm-s-monokai span.cm-bracket {color: #f8f8f2;}.cm-s-monokai span.cm-tag {color: #f92672;}.cm-s-monokai span.cm-header {color: #ae81ff;}.cm-s-monokai span.cm-link {color: #ae81ff;}.cm-s-monokai span.cm-error {background: #f92672;color: #f8f8f0;}.cm-s-monokai .CodeMirror-activeline-background {background: #373831;}.cm-s-monokai .CodeMirror-matchingbracket {text-decoration: underline;color: white !important;}.cm-s-neat span.cm-comment {color: #a86;}.cm-s-neat span.cm-keyword {line-height: 1em;font-weight: bold;color: blue;}.cm-s-neat span.cm-string {color: #a22;}.cm-s-neat span.cm-builtin {line-height: 1em;font-weight: bold;color: #077;}.cm-s-neat span.cm-special {line-height: 1em;font-weight: bold;color: #0aa;}.cm-s-neat span.cm-variable {color: black;}.cm-s-neat span.cm-number,.cm-s-neat span.cm-atom {color: #3a3;}.cm-s-neat span.cm-meta {color: #555;}.cm-s-neat span.cm-link {color: #3a3;}.cm-s-neat .CodeMirror-activeline-background {background: #e8f2ff;}.cm-s-neat .CodeMirror-matchingbracket {outline: 1px solid grey;color: black !important;}/* neo theme for codemirror *//* Color scheme */.cm-s-neo.CodeMirror {background-color: #ffffff;color: #2e383c;line-height: 1.4375;}.cm-s-neo .cm-comment {color: #75787b;}.cm-s-neo .cm-keyword,.cm-s-neo .cm-property {color: #1d75b3;}.cm-s-neo .cm-atom,.cm-s-neo .cm-number {color: #75438a;}.cm-s-neo .cm-node,.cm-s-neo .cm-tag {color: #9c3328;}.cm-s-neo .cm-string {color: #b35e14;}.cm-s-neo .cm-variable,.cm-s-neo .cm-qualifier {color: #047d65;}/* Editor styling */.cm-s-neo pre {padding: 0;}.cm-s-neo .CodeMirror-gutters {border: none;border-right: 10px solid transparent;background-color: transparent;}.cm-s-neo .CodeMirror-linenumber {padding: 0;color: #e0e2e5;}.cm-s-neo .CodeMirror-guttermarker {color: #1d75b3;}.cm-s-neo .CodeMirror-guttermarker-subtle {color: #e0e2e5;}.cm-s-neo .CodeMirror-cursor {width: auto;border: 0;background: rgba(155, 157, 162, 0.37);z-index: 1;}/* Loosely based on the Midnight Textmate theme */.cm-s-night.CodeMirror {background: #0a001f;color: #f8f8f8;}.cm-s-night div.CodeMirror-selected {background: #447;}.cm-s-night .CodeMirror-line::-moz-selection,.cm-s-night .CodeMirror-line > span::-moz-selection,.cm-s-night .CodeMirror-line > span > span::-moz-selection {background: rgba(68, 68, 119, 0.99);}.cm-s-night .CodeMirror-line::selection,.cm-s-night .CodeMirror-line > span::selection,.cm-s-night .CodeMirror-line > span > span::selection {background: rgba(68, 68, 119, 0.99);}.cm-s-night .CodeMirror-line::-moz-selection,.cm-s-night .CodeMirror-line > span::-moz-selection,.cm-s-night .CodeMirror-line > span > span::-moz-selection {background: rgba(68, 68, 119, 0.99);}.cm-s-night .CodeMirror-gutters {background: #0a001f;border-right: 1px solid #aaa;}.cm-s-night .CodeMirror-guttermarker {color: white;}.cm-s-night .CodeMirror-guttermarker-subtle {color: #bbb;}.cm-s-night .CodeMirror-linenumber {color: #f8f8f8;}.cm-s-night .CodeMirror-cursor {border-left: 1px solid white;}.cm-s-night span.cm-comment {color: #8900d1;}.cm-s-night span.cm-atom {color: #845dc4;}.cm-s-night span.cm-number,.cm-s-night span.cm-attribute {color: #ffd500;}.cm-s-night span.cm-keyword {color: #599eff;}.cm-s-night span.cm-string {color: #37f14a;}.cm-s-night span.cm-meta {color: #7678e2;}.cm-s-night span.cm-variable-2,.cm-s-night span.cm-tag {color: #99b2ff;}.cm-s-night span.cm-variable-3,.cm-s-night span.cm-def,.cm-s-night span.cm-type {color: white;}.cm-s-night span.cm-bracket {color: #8da6ce;}.cm-s-night span.cm-builtin,.cm-s-night span.cm-special {color: #ff9e59;}.cm-s-night span.cm-link {color: #845dc4;}.cm-s-night span.cm-error {color: #9d1e15;}.cm-s-night .CodeMirror-activeline-background {background: #1C005A;}.cm-s-night .CodeMirror-matchingbracket {outline: 1px solid grey;color: white !important;}/*
1756
+
1757
+ Name: oceanic-next
1758
+ Author: Filype Pereira (https://github.com/fpereira1)
1759
+
1760
+ Original oceanic-next color scheme by Dmitri Voronianski (https://github.com/voronianski/oceanic-next-color-scheme)
1761
+
1762
+ */.cm-s-oceanic-next.CodeMirror {background: #304148;color: #f8f8f2;}.cm-s-oceanic-next div.CodeMirror-selected {background: rgba(101, 115, 126, 0.33);}.cm-s-oceanic-next .CodeMirror-line::-moz-selection,.cm-s-oceanic-next .CodeMirror-line > span::-moz-selection,.cm-s-oceanic-next .CodeMirror-line > span > span::-moz-selection {background: rgba(101, 115, 126, 0.33);}.cm-s-oceanic-next .CodeMirror-line::selection,.cm-s-oceanic-next .CodeMirror-line > span::selection,.cm-s-oceanic-next .CodeMirror-line > span > span::selection {background: rgba(101, 115, 126, 0.33);}.cm-s-oceanic-next .CodeMirror-line::-moz-selection,.cm-s-oceanic-next .CodeMirror-line > span::-moz-selection,.cm-s-oceanic-next .CodeMirror-line > span > span::-moz-selection {background: rgba(101, 115, 126, 0.33);}.cm-s-oceanic-next .CodeMirror-gutters {background: #304148;border-right: 10px;}.cm-s-oceanic-next .CodeMirror-guttermarker {color: white;}.cm-s-oceanic-next .CodeMirror-guttermarker-subtle {color: #d0d0d0;}.cm-s-oceanic-next .CodeMirror-linenumber {color: #d0d0d0;}.cm-s-oceanic-next .CodeMirror-cursor {border-left: 1px solid #f8f8f0;}.cm-s-oceanic-next span.cm-comment {color: #65737E;}.cm-s-oceanic-next span.cm-atom {color: #C594C5;}.cm-s-oceanic-next span.cm-number {color: #F99157;}.cm-s-oceanic-next span.cm-property {color: #99C794;}.cm-s-oceanic-next span.cm-attribute,.cm-s-oceanic-next span.cm-keyword {color: #C594C5;}.cm-s-oceanic-next span.cm-builtin {color: #66d9ef;}.cm-s-oceanic-next span.cm-string {color: #99C794;}.cm-s-oceanic-next span.cm-variable,.cm-s-oceanic-next span.cm-variable-2,.cm-s-oceanic-next span.cm-variable-3 {color: #f8f8f2;}.cm-s-oceanic-next span.cm-def {color: #6699CC;}.cm-s-oceanic-next span.cm-bracket {color: #5FB3B3;}.cm-s-oceanic-next span.cm-tag {color: #C594C5;}.cm-s-oceanic-next span.cm-header {color: #C594C5;}.cm-s-oceanic-next span.cm-link {color: #C594C5;}.cm-s-oceanic-next span.cm-error {background: #C594C5;color: #f8f8f0;}.cm-s-oceanic-next .CodeMirror-activeline-background {background: rgba(101, 115, 126, 0.33);}.cm-s-oceanic-next .CodeMirror-matchingbracket {text-decoration: underline;color: white !important;}/*
1763
  Name: Panda Syntax
1764
  Author: Siamak Mokhtari (http://github.com/siamak/)
1765
  CodeMirror template by Siamak Mokhtari (https://github.com/siamak/atom-panda-syntax)
1802
  Original seti color scheme by Jesse Weed (https://github.com/jesseweed/seti-syntax)
1803
 
1804
  */.cm-s-seti.CodeMirror {background-color: #151718 !important;color: #CFD2D1 !important;border: none;}.cm-s-seti .CodeMirror-gutters {color: #404b53;background-color: #0E1112;border: none;}.cm-s-seti .CodeMirror-cursor {border-left: solid thin #f8f8f0;}.cm-s-seti .CodeMirror-linenumber {color: #6D8A88;}.cm-s-seti.CodeMirror-focused div.CodeMirror-selected {background: rgba(255, 255, 255, 0.1);}.cm-s-seti .CodeMirror-line::-moz-selection,.cm-s-seti .CodeMirror-line > span::-moz-selection,.cm-s-seti .CodeMirror-line > span > span::-moz-selection {background: rgba(255, 255, 255, 0.1);}.cm-s-seti .CodeMirror-line::selection,.cm-s-seti .CodeMirror-line > span::selection,.cm-s-seti .CodeMirror-line > span > span::selection {background: rgba(255, 255, 255, 0.1);}.cm-s-seti .CodeMirror-line::-moz-selection,.cm-s-seti .CodeMirror-line > span::-moz-selection,.cm-s-seti .CodeMirror-line > span > span::-moz-selection {background: rgba(255, 255, 255, 0.1);}.cm-s-seti span.cm-comment {color: #41535b;}.cm-s-seti span.cm-string,.cm-s-seti span.cm-string-2 {color: #55b5db;}.cm-s-seti span.cm-number {color: #cd3f45;}.cm-s-seti span.cm-variable {color: #55b5db;}.cm-s-seti span.cm-variable-2 {color: #a074c4;}.cm-s-seti span.cm-def {color: #55b5db;}.cm-s-seti span.cm-keyword {color: #ff79c6;}.cm-s-seti span.cm-operator {color: #9fca56;}.cm-s-seti span.cm-keyword {color: #e6cd69;}.cm-s-seti span.cm-atom {color: #cd3f45;}.cm-s-seti span.cm-meta {color: #55b5db;}.cm-s-seti span.cm-tag {color: #55b5db;}.cm-s-seti span.cm-attribute {color: #9fca56;}.cm-s-seti span.cm-qualifier {color: #9fca56;}.cm-s-seti span.cm-property {color: #a074c4;}.cm-s-seti span.cm-variable-3,.cm-s-seti span.cm-type {color: #9fca56;}.cm-s-seti span.cm-builtin {color: #9fca56;}.cm-s-seti .CodeMirror-activeline-background {background: #101213;}.cm-s-seti .CodeMirror-matchingbracket {text-decoration: underline;color: white !important;}/*
1805
+
1806
+ Name: shadowfox
1807
+ Author: overdodactyl (http://github.com/overdodactyl)
1808
+
1809
+ Original shadowfox color scheme by Firefox
1810
+
1811
+ */.cm-s-shadowfox.CodeMirror {background: #2a2a2e;color: #b1b1b3;}.cm-s-shadowfox div.CodeMirror-selected {background: #353B48;}.cm-s-shadowfox .CodeMirror-line::-moz-selection,.cm-s-shadowfox .CodeMirror-line > span::-moz-selection,.cm-s-shadowfox .CodeMirror-line > span > span::-moz-selection {background: #353B48;}.cm-s-shadowfox .CodeMirror-line::selection,.cm-s-shadowfox .CodeMirror-line > span::selection,.cm-s-shadowfox .CodeMirror-line > span > span::selection {background: #353B48;}.cm-s-shadowfox .CodeMirror-line::-moz-selection,.cm-s-shadowfox .CodeMirror-line > span::-moz-selection,.cm-s-shadowfox .CodeMirror-line > span > span::-moz-selection {background: #353B48;}.cm-s-shadowfox .CodeMirror-gutters {background: #0c0c0d;border-right: 1px solid #0c0c0d;}.cm-s-shadowfox .CodeMirror-guttermarker {color: #555;}.cm-s-shadowfox .CodeMirror-linenumber {color: #939393;}.cm-s-shadowfox .CodeMirror-cursor {border-left: 1px solid #fff;}.cm-s-shadowfox span.cm-comment {color: #939393;}.cm-s-shadowfox span.cm-atom {color: #FF7DE9;}.cm-s-shadowfox span.cm-quote {color: #FF7DE9;}.cm-s-shadowfox span.cm-builtin {color: #FF7DE9;}.cm-s-shadowfox span.cm-attribute {color: #FF7DE9;}.cm-s-shadowfox span.cm-keyword {color: #FF7DE9;}.cm-s-shadowfox span.cm-error {color: #FF7DE9;}.cm-s-shadowfox span.cm-number {color: #6B89FF;}.cm-s-shadowfox span.cm-string {color: #6B89FF;}.cm-s-shadowfox span.cm-string-2 {color: #6B89FF;}.cm-s-shadowfox span.cm-meta {color: #939393;}.cm-s-shadowfox span.cm-hr {color: #939393;}.cm-s-shadowfox span.cm-header {color: #75BFFF;}.cm-s-shadowfox span.cm-qualifier {color: #75BFFF;}.cm-s-shadowfox span.cm-variable-2 {color: #75BFFF;}.cm-s-shadowfox span.cm-property {color: #86DE74;}.cm-s-shadowfox span.cm-def {color: #75BFFF;}.cm-s-shadowfox span.cm-bracket {color: #75BFFF;}.cm-s-shadowfox span.cm-tag {color: #75BFFF;}.cm-s-shadowfox span.cm-link:visited {color: #75BFFF;}.cm-s-shadowfox span.cm-variable {color: #B98EFF;}.cm-s-shadowfox span.cm-variable-3 {color: #d7d7db;}.cm-s-shadowfox span.cm-link {color: #737373;}.cm-s-shadowfox span.cm-operator {color: #b1b1b3;}.cm-s-shadowfox span.cm-special {color: #d7d7db;}.cm-s-shadowfox .CodeMirror-activeline-background {background: rgba(185, 215, 253, 0.15);}.cm-s-shadowfox .CodeMirror-matchingbracket {outline: solid 1px rgba(255, 255, 255, 0.25);color: white !important;}/*
1812
  Solarized theme for code-mirror
1813
  http://ethanschoonover.com/solarized
1814
  *//*
1815
  Solarized color palette
1816
  http://ethanschoonover.com/solarized/img/solarized-palette.png
1817
+ */.solarized.base03 {color: #002b36;}.solarized.base02 {color: #073642;}.solarized.base01 {color: #586e75;}.solarized.base00 {color: #657b83;}.solarized.base0 {color: #839496;}.solarized.base1 {color: #93a1a1;}.solarized.base2 {color: #eee8d5;}.solarized.base3 {color: #fdf6e3;}.solarized.solar-yellow {color: #b58900;}.solarized.solar-orange {color: #cb4b16;}.solarized.solar-red {color: #dc322f;}.solarized.solar-magenta {color: #d33682;}.solarized.solar-violet {color: #6c71c4;}.solarized.solar-blue {color: #268bd2;}.solarized.solar-cyan {color: #2aa198;}.solarized.solar-green {color: #859900;}/* Color scheme for code-mirror */.cm-s-solarized {line-height: 1.45em;color-profile: sRGB;rendering-intent: auto;}.cm-s-solarized.cm-s-dark {color: #839496;background-color: #002b36;text-shadow: #002b36 0 1px;}.cm-s-solarized.cm-s-light {background-color: #fdf6e3;color: #657b83;text-shadow: #eee8d5 0 1px;}.cm-s-solarized .CodeMirror-widget {text-shadow: none;}.cm-s-solarized .cm-header {color: #586e75;}.cm-s-solarized .cm-quote {color: #93a1a1;}.cm-s-solarized .cm-keyword {color: #cb4b16;}.cm-s-solarized .cm-atom {color: #d33682;}.cm-s-solarized .cm-number {color: #d33682;}.cm-s-solarized .cm-def {color: #2aa198;}.cm-s-solarized .cm-variable {color: #839496;}.cm-s-solarized .cm-variable-2 {color: #b58900;}.cm-s-solarized .cm-variable-3,.cm-s-solarized .cm-type {color: #6c71c4;}.cm-s-solarized .cm-property {color: #2aa198;}.cm-s-solarized .cm-operator {color: #6c71c4;}.cm-s-solarized .cm-comment {color: #586e75;font-style: italic;}.cm-s-solarized .cm-string {color: #859900;}.cm-s-solarized .cm-string-2 {color: #b58900;}.cm-s-solarized .cm-meta {color: #859900;}.cm-s-solarized .cm-qualifier {color: #b58900;}.cm-s-solarized .cm-builtin {color: #d33682;}.cm-s-solarized .cm-bracket {color: #cb4b16;}.cm-s-solarized .CodeMirror-matchingbracket {color: #859900;}.cm-s-solarized .CodeMirror-nonmatchingbracket {color: #dc322f;}.cm-s-solarized .cm-tag {color: #93a1a1;}.cm-s-solarized .cm-attribute {color: #2aa198;}.cm-s-solarized .cm-hr {color: transparent;border-top: 1px solid #586e75;display: block;}.cm-s-solarized .cm-link {color: #93a1a1;cursor: pointer;}.cm-s-solarized .cm-special {color: #6c71c4;}.cm-s-solarized .cm-em {color: #999;text-decoration: underline;-webkit-text-decoration-style: dotted;text-decoration-style: dotted;}.cm-s-solarized .cm-error,.cm-s-solarized .cm-invalidchar {color: #586e75;border-bottom: 1px dotted #dc322f;}.cm-s-solarized.cm-s-dark div.CodeMirror-selected {background: #073642;}.cm-s-solarized.cm-s-dark.CodeMirror ::-moz-selection {background: rgba(7, 54, 66, 0.99);}.cm-s-solarized.cm-s-dark.CodeMirror ::selection {background: rgba(7, 54, 66, 0.99);}.cm-s-solarized.cm-s-dark .CodeMirror-line::-moz-selection,.cm-s-dark .CodeMirror-line > span::-moz-selection,.cm-s-dark .CodeMirror-line > span > span::-moz-selection {background: rgba(7, 54, 66, 0.99);}.cm-s-solarized.cm-s-light div.CodeMirror-selected {background: #eee8d5;}.cm-s-solarized.cm-s-light .CodeMirror-line::-moz-selection,.cm-s-light .CodeMirror-line > span::-moz-selection,.cm-s-light .CodeMirror-line > span > span::-moz-selection {background: #eee8d5;}.cm-s-solarized.cm-s-light .CodeMirror-line::selection,.cm-s-light .CodeMirror-line > span::selection,.cm-s-light .CodeMirror-line > span > span::selection {background: #eee8d5;}.cm-s-solarized.cm-s-light .CodeMirror-line::-moz-selection,.cm-s-ligh .CodeMirror-line > span::-moz-selection,.cm-s-ligh .CodeMirror-line > span > span::-moz-selection {background: #eee8d5;}/* Editor styling *//* Little shadow on the view-port of the buffer view */.cm-s-solarized.CodeMirror {-webkit-box-shadow: inset 7px 0 12px -6px #000;box-shadow: inset 7px 0 12px -6px #000;}/* Remove gutter border */.cm-s-solarized .CodeMirror-gutters {border-right: 0;}/* Gutter colors and line number styling based of color scheme (dark / light) *//* Dark */.cm-s-solarized.cm-s-dark .CodeMirror-gutters {background-color: #073642;}.cm-s-solarized.cm-s-dark .CodeMirror-linenumber {color: #586e75;text-shadow: #021014 0 -1px;}/* Light */.cm-s-solarized.cm-s-light .CodeMirror-gutters {background-color: #eee8d5;}.cm-s-solarized.cm-s-light .CodeMirror-linenumber {color: #839496;}/* Common */.cm-s-solarized .CodeMirror-linenumber {padding: 0 5px;}.cm-s-solarized .CodeMirror-guttermarker-subtle {color: #586e75;}.cm-s-solarized.cm-s-dark .CodeMirror-guttermarker {color: #ddd;}.cm-s-solarized.cm-s-light .CodeMirror-guttermarker {color: #cb4b16;}.cm-s-solarized .CodeMirror-gutter .CodeMirror-gutter-text {color: #586e75;}/* Cursor */.cm-s-solarized .CodeMirror-cursor {border-left: 1px solid #819090;}/* Fat cursor */.cm-s-solarized.cm-s-light.cm-fat-cursor .CodeMirror-cursor {background: #77ee77;}.cm-s-solarized.cm-s-light .cm-animate-fat-cursor {background-color: #77ee77;}.cm-s-solarized.cm-s-dark.cm-fat-cursor .CodeMirror-cursor {background: #586e75;}.cm-s-solarized.cm-s-dark .cm-animate-fat-cursor {background-color: #586e75;}/* Active line */.cm-s-solarized.cm-s-dark .CodeMirror-activeline-background {background: rgba(255, 255, 255, 0.06);}.cm-s-solarized.cm-s-light .CodeMirror-activeline-background {background: rgba(0, 0, 0, 0.06);}.cm-s-ssms span.cm-keyword {color: blue;}.cm-s-ssms span.cm-comment {color: darkgreen;}.cm-s-ssms span.cm-string {color: red;}.cm-s-ssms span.cm-def {color: black;}.cm-s-ssms span.cm-variable {color: black;}.cm-s-ssms span.cm-variable-2 {color: black;}.cm-s-ssms span.cm-atom {color: darkgray;}.cm-s-ssms .CodeMirror-linenumber {color: teal;}.cm-s-ssms .CodeMirror-activeline-background {background: #ffffff;}.cm-s-ssms span.cm-string-2 {color: #FF00FF;}.cm-s-ssms span.cm-operator,.cm-s-ssms span.cm-bracket,.cm-s-ssms span.cm-punctuation {color: darkgray;}.cm-s-ssms .CodeMirror-gutters {border-right: 3px solid #ffee62;background-color: #ffffff;}.cm-s-ssms div.CodeMirror-selected {background: #ADD6FF;}.cm-s-the-matrix.CodeMirror {background: #000000;color: #00FF00;}.cm-s-the-matrix div.CodeMirror-selected {background: #2D2D2D;}.cm-s-the-matrix .CodeMirror-line::-moz-selection,.cm-s-the-matrix .CodeMirror-line > span::-moz-selection,.cm-s-the-matrix .CodeMirror-line > span > span::-moz-selection {background: rgba(45, 45, 45, 0.99);}.cm-s-the-matrix .CodeMirror-line::selection,.cm-s-the-matrix .CodeMirror-line > span::selection,.cm-s-the-matrix .CodeMirror-line > span > span::selection {background: rgba(45, 45, 45, 0.99);}.cm-s-the-matrix .CodeMirror-line::-moz-selection,.cm-s-the-matrix .CodeMirror-line > span::-moz-selection,.cm-s-the-matrix .CodeMirror-line > span > span::-moz-selection {background: rgba(45, 45, 45, 0.99);}.cm-s-the-matrix .CodeMirror-gutters {background: #060;border-right: 2px solid #00FF00;}.cm-s-the-matrix .CodeMirror-guttermarker {color: #0f0;}.cm-s-the-matrix .CodeMirror-guttermarker-subtle {color: white;}.cm-s-the-matrix .CodeMirror-linenumber {color: #FFFFFF;}.cm-s-the-matrix .CodeMirror-cursor {border-left: 1px solid #00FF00;}.cm-s-the-matrix span.cm-keyword {color: #008803;font-weight: bold;}.cm-s-the-matrix span.cm-atom {color: #3FF;}.cm-s-the-matrix span.cm-number {color: #FFB94F;}.cm-s-the-matrix span.cm-def {color: #99C;}.cm-s-the-matrix span.cm-variable {color: #F6C;}.cm-s-the-matrix span.cm-variable-2 {color: #C6F;}.cm-s-the-matrix span.cm-variable-3,.cm-s-the-matrix span.cm-type {color: #96F;}.cm-s-the-matrix span.cm-property {color: #62FFA0;}.cm-s-the-matrix span.cm-operator {color: #999;}.cm-s-the-matrix span.cm-comment {color: #CCCCCC;}.cm-s-the-matrix span.cm-string {color: #39C;}.cm-s-the-matrix span.cm-meta {color: #C9F;}.cm-s-the-matrix span.cm-qualifier {color: #FFF700;}.cm-s-the-matrix span.cm-builtin {color: #30a;}.cm-s-the-matrix span.cm-bracket {color: #cc7;}.cm-s-the-matrix span.cm-tag {color: #FFBD40;}.cm-s-the-matrix span.cm-attribute {color: #FFF700;}.cm-s-the-matrix span.cm-error {color: #FF0000;}.cm-s-the-matrix .CodeMirror-activeline-background {background: #040;}/*
1818
 
1819
  Name: Tomorrow Night - Bright
1820
  Author: Chris Kempson
1886
  * Also using parts of https://github.com/xavi/coderay-lighttable-theme
1887
  * "
1888
  * From: https://github.com/wisenomad/zenburn-lighttable-theme/blob/master/zenburn.css
1889
+ */.cm-s-zenburn .CodeMirror-gutters {background: #3f3f3f !important;}.cm-s-zenburn .CodeMirror-foldgutter-open,.CodeMirror-foldgutter-folded {color: #999;}.cm-s-zenburn .CodeMirror-cursor {border-left: 1px solid white;}.cm-s-zenburn {background-color: #3f3f3f;color: #dcdccc;}.cm-s-zenburn span.cm-builtin {color: #dcdccc;font-weight: bold;}.cm-s-zenburn span.cm-comment {color: #7f9f7f;}.cm-s-zenburn span.cm-keyword {color: #f0dfaf;font-weight: bold;}.cm-s-zenburn span.cm-atom {color: #bfebbf;}.cm-s-zenburn span.cm-def {color: #dcdccc;}.cm-s-zenburn span.cm-variable {color: #dfaf8f;}.cm-s-zenburn span.cm-variable-2 {color: #dcdccc;}.cm-s-zenburn span.cm-string {color: #cc9393;}.cm-s-zenburn span.cm-string-2 {color: #cc9393;}.cm-s-zenburn span.cm-number {color: #dcdccc;}.cm-s-zenburn span.cm-tag {color: #93e0e3;}.cm-s-zenburn span.cm-property {color: #dfaf8f;}.cm-s-zenburn span.cm-attribute {color: #dfaf8f;}.cm-s-zenburn span.cm-qualifier {color: #7cb8bb;}.cm-s-zenburn span.cm-meta {color: #f0dfaf;}.cm-s-zenburn span.cm-header {color: #f0efd0;}.cm-s-zenburn span.cm-operator {color: #f0efd0;}.cm-s-zenburn span.CodeMirror-matchingbracket {-webkit-box-sizing: border-box;box-sizing: border-box;background: transparent;border-bottom: 1px solid;}.cm-s-zenburn span.CodeMirror-nonmatchingbracket {border-bottom: 1px solid;background: none;}.cm-s-zenburn .CodeMirror-activeline {background: #000000;}.cm-s-zenburn .CodeMirror-activeline-background {background: #000000;}.cm-s-zenburn div.CodeMirror-selected {background: #545454;}.cm-s-zenburn .CodeMirror-focused div.CodeMirror-selected {background: #4f4f4f;}.CodeMirror-foldmarker {color: blue;text-shadow: #b9f 1px 1px 2px, #b9f -1px -1px 2px, #b9f 1px -1px 2px, #b9f -1px 1px 2px;font-family: arial;line-height: 0.3;cursor: pointer;}.CodeMirror-foldgutter {width: 0.7em;}.CodeMirror-foldgutter-open,.CodeMirror-foldgutter-folded {cursor: pointer;}.CodeMirror-foldgutter-open:after {content: "\25BE";}.CodeMirror-foldgutter-folded:after {content: "\25B8";}.CodeMirror-scroll {font-family: Menlo Regular, Consolas, Monaco, monospace;line-height: 150%;position: relative;}.CodeMirror-settings {color: #444;height: 0;width: 100%;z-index: 9;text-shadow: none;font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;}.CodeMirror-settings__toggle {border-radius: 3px;z-index: 11;-webkit-box-sizing: border-box;box-sizing: border-box;position: absolute;top: 0;right: 0;margin: 6px;display: block;cursor: pointer;}.CodeMirror-settings__toggle:after {content: '\f111';font-family: dashicons;line-height: 1em;display: inline-block;}.CodeMirror-settings__toggle:before {border: 1px solid #ddd;border-radius: 3px;z-index: -1;content: '';background-color: white;-webkit-transition: 250ms ease;transition: 250ms ease;-webkit-transition-property: -webkit-transform opacity;transition-property: -webkit-transform opacity;transition-property: transform opacity;transition-property: transform opacity, -webkit-transform opacity;position: absolute;top: 0;right: 0;bottom: 0;left: 0;}.CodeMirror-settings__wrapper {pointer-events: none;visibility: hidden;}.CodeMirror-settings__docked,.CodeMirror-settings__body {pointer-events: initial;visibility: visible;}.CodeMirror-settings__wrapper {position: absolute;width: calc(100% - 12px );max-height: calc(100% - 12px );top: 0;margin: 6px;-webkit-box-sizing: border-box;box-sizing: border-box;z-index: 9;display: -ms-flexbox;display: flex;-ms-flex-direction: column;flex-direction: column;}.CodeMirror-settings__docked {-ms-flex: 0 0 auto;flex: 0 0 auto;z-index: 10;background-color: white;-webkit-box-sizing: border-box;box-sizing: border-box;}.CodeMirror-settings__header {border-top-left-radius: 3px;border-top-right-radius: 3px;border: 1px solid #ddd;padding: 4px;border-bottom-left-radius: 3px;border-bottom-right-radius: 3px;}.CodeMirror-settings__body {-ms-flex: 1 1 auto;flex: 1 1 auto;-webkit-box-sizing: border-box;box-sizing: border-box;padding: 1px 12px;overflow-y: auto;background-color: rgba(255, 255, 255, 0.93);border-left: 1px solid #ddd;border-right: 1px solid #ddd;}.CodeMirror-settings__footer {border-bottom-left-radius: 3px;border-bottom-right-radius: 3px;border: 1px solid #ddd;padding: 6px 12px;display: -ms-flexbox;display: flex;-ms-flex-wrap: wrap;flex-wrap: wrap;-ms-flex-align: baseline;align-items: baseline;-ms-flex-line-pack: center;align-content: center;-ms-flex-pack: justify;justify-content: space-between;}.CodeMirror-settings-advanced__description {margin-left: 10px;opacity: 0.6;}td.CodeMirror-settings__heading {padding: 0;padding-bottom: 12px;}.CodeMirror-settings__foot-content {margin: 0;}.CodeMirror-settings__toggle,.CodeMirror-settings__toggle-advanced,.CodeMirror-settings__header,.CodeMirror-settings__body,.CodeMirror-settings__footer,.CodeMirror-settings__wrapper {-webkit-transition: 250ms ease;transition: 250ms ease;-webkit-transition-property: opacity, -webkit-transform;transition-property: opacity, -webkit-transform;transition-property: opacity, transform;transition-property: opacity, transform, -webkit-transform;-webkit-transform-origin: top right;transform-origin: top right;}.CodeMirror-settings.closed .CodeMirror-settings__toggle-advanced:before {content: 'more...';}.CodeMirror-settings.closed .CodeMirror-settings__toggle {opacity: 0.5;}.CodeMirror-settings.closed .CodeMirror-settings__toggle:hover {opacity: 1;}.CodeMirror-settings.closed .CodeMirror-settings__toggle:before {opacity: 1;}.CodeMirror-settings.closed .CodeMirror-settings__wrapper {opacity: 0;-webkit-transform: scaleX(0);transform: scaleX(0);}.CodeMirror-settings.closed .CodeMirror-settings__body,.CodeMirror-settings.closed .CodeMirror-settings__footer {visibility: hidden;opacity: 0;-webkit-transform: translate(0, -20px);transform: translate(0, -20px);-webkit-transition: opacity 250ms ease, visibility 1ms ease 250ms, -webkit-transform 250ms ease;transition: opacity 250ms ease, visibility 1ms ease 250ms, -webkit-transform 250ms ease;transition: opacity 250ms ease, transform 250ms ease, visibility 1ms ease 250ms;transition: opacity 250ms ease, transform 250ms ease, visibility 1ms ease 250ms, -webkit-transform 250ms ease;}.CodeMirror-settings.open .CodeMirror-settings__toggle-advanced:before {content: 'more...';}.CodeMirror-settings.open .CodeMirror-settings__toggle:after {content: '\f158';}.CodeMirror-settings.open .CodeMirror-settings__toggle:before {opacity: 0;}.CodeMirror-settings.open .CodeMirror-settings__wrapper {opacity: 1;-webkit-transform: scaleX(1);transform: scaleX(1);}.CodeMirror-settings.open .CodeMirror-settings__body,.CodeMirror-settings.open .CodeMirror-settings__footer {visibility: hidden;opacity: 0;-webkit-transform: translate(0, -20px);transform: translate(0, -20px);-webkit-transition: opacity 250ms ease, visibility 1ms ease 250ms, -webkit-transform 250ms ease;transition: opacity 250ms ease, visibility 1ms ease 250ms, -webkit-transform 250ms ease;transition: opacity 250ms ease, transform 250ms ease, visibility 1ms ease 250ms;transition: opacity 250ms ease, transform 250ms ease, visibility 1ms ease 250ms, -webkit-transform 250ms ease;}.CodeMirror-settings.open-advanced .CodeMirror-settings__toggle-advanced:before {content: 'less';}.CodeMirror-settings.open-advanced .CodeMirror-settings__header {border-bottom-left-radius: 0;border-bottom-right-radius: 0;}.CodeMirror-settings.open-advanced .CodeMirror-settings__body,.CodeMirror-settings.open-advanced .CodeMirror-settings__footer {visibility: visible;opacity: 1;-webkit-transform: translate(0, 0);transform: translate(0, 0);-webkit-transition: visibility 1ms ease, opacity 250ms ease 1ms, -webkit-transform 250ms ease 1ms;transition: visibility 1ms ease, opacity 250ms ease 1ms, -webkit-transform 250ms ease 1ms;transition: visibility 1ms ease, opacity 250ms ease 1ms, transform 250ms ease 1ms;transition: visibility 1ms ease, opacity 250ms ease 1ms, transform 250ms ease 1ms, -webkit-transform 250ms ease 1ms;}.CodeMirror-settings__button {position: relative;}.CodeMirror-settings__button:active {-webkit-transform: none !important;transform: none !important;}.CodeMirror-settings__button select,.CodeMirror-settings__button input {display: block;position: absolute;top: 0;right: 0;bottom: 0;left: 0;-webkit-appearance: none;margin: 0;padding: 0;border: none;height: auto;font-size: 0;line-height: 0;height: 100% !important;width: 100% !important;background: none;opacity: 0;}.CodeMirror-settings__button option {font-size: 12px;}.CodeMirror-settings__button--select:after {content: '\f140';font-family: dashicons;vertical-align: top;display: inline-block;margin: 0 -5px -4px;}.CodeMirror-settings__toggle-advanced {cursor: pointer;display: inline-block;line-height: 25px;padding: 0 4px;vertical-align: middle;}.CodeMirror-dialog {position: absolute;left: 0;right: 0;top: 0;width: calc(100% - 12px );margin: 6px;-webkit-box-sizing: border-box;box-sizing: border-box;display: -ms-flexbox;display: flex;-ms-flex-align: center;align-items: center;z-index: 12;padding-left: 12px;border-radius: 3px;border: 1px solid #ddd;color: #444;background-color: white;}.CodeMirror-dialog:after {position: absolute;right: 0;top: 0;bottom: 0;content: '\f158';font-family: dashicons;line-height: 1em;cursor: pointer;}.CodeMirror-dialog input {border: none;outline: none;background: rgba(0, 0, 0, 0.05);color: inherit;font-family: monospace;margin: -1px 12px;padding: 0 12px;-ms-flex-item-align: stretch;align-self: stretch;-ms-flex: 1 1 auto;flex: 1 1 auto;}.CodeMirror-dialog input,.CodeMirror-dialog input:focus {-webkit-box-shadow: none;box-shadow: none;}.CodeMirror-dialog button {margin: 0 2px !important;}.CodeMirror-dialog button:first-of-type {margin-left: 12px !important;}.CodeMirror-dialog span {-ms-flex-item-align: stretch;align-self: stretch;display: -ms-flexbox;display: flex;-ms-flex-align: center;align-items: center;}.CodeMirror-overlayscroll .CodeMirror-scrollbar-filler,.CodeMirror-overlayscroll .CodeMirror-gutter-filler {display: none !important;}.CodeMirror-overlayscroll-horizontal,.CodeMirror-overlayscroll-vertical {position: absolute;z-index: 6;-webkit-transition: opacity 100ms linear;transition: opacity 100ms linear;opacity: 0.5;}.CodeMirror-overlayscroll-horizontal:hover,.CodeMirror-overlayscroll-vertical:hover {opacity: 1;}.CodeMirror-overlayscroll-horizontal:active,.CodeMirror-overlayscroll-vertical:active {opacity: 0.75;}.CodeMirror-overlayscroll-horizontal div,.CodeMirror-overlayscroll-vertical div {position: absolute;background: transparent !important;}.CodeMirror-overlayscroll-horizontal div:after,.CodeMirror-overlayscroll-vertical div:after {content: '';background-color: #f5f5f5;border: 1px solid #ddd;border-radius: 4px;position: absolute;}.CodeMirror-overlayscroll-horizontal {bottom: 0;left: 0;height: 8px;margin-bottom: 6px;}.CodeMirror-overlayscroll-horizontal div {top: 0;bottom: 0;}.CodeMirror-overlayscroll-horizontal div:after {top: 0;bottom: 0;left: 6px;right: 6px;}.CodeMirror-overlayscroll-vertical {right: 0;top: 0;width: 8px;margin-right: 6px;}.CodeMirror-overlayscroll-vertical div {left: 0;right: 0;}.CodeMirror-overlayscroll-vertical div:after {left: 0;right: 0;bottom: 6px;}.wp-editor-expand .CodeMirror {min-height: 300px;}.wp-editor-expand .CodeMirror .CodeMirror-scroll {padding-bottom: 330px !important;margin-bottom: -330px !important;}.CodeMirror-mirrored {display: block !important;position: fixed !important;left: -9999px !important;top: -9999px !important;z-index: -999 !important;opacity: 0 !important;}#template .CodeMirror div {margin-right: initial;}#template .CodeMirror p {width: auto;}.CodeMirror-vscrollbar {display: none !important;}.CodeMirror-scroll {margin-right: -30px !important;}.CodeMirror-settings__toggle {margin: 6px !important;}.heshFullscreen {z-index: 99999;position: fixed !important;top: 0;left: 0;right: 0;bottom: 0;height: 100%;background: #fff;padding: 2% 2% 0;}.heshFullscreen .CodeMirror {border: 1px solid #ccc;border-radius: 0 0 4px 4px;height: 85% !important;}.heshFullscreen #ed_toolbar {border: 1px solid #ccc;border-bottom: 0;border-radius: 4px 4px 0 0;}.heshFullscreen #cm_content_fullscreen:before {content: '\f506';}.cm-matchhighlight,.CodeMirror-matchingbracket,.CodeMirror-matchingtag {background-color: rgba(0, 255, 175, 0.2);}#cm_content_fullscreen {display: inline-block;}.wp-editor-expand #cm_content_fullscreen {display: none;}.hesh-content-resize-handle {position: absolute;right: 0;bottom: 0;width: 12px;height: 12px;z-index: 8;margin: 1px !important;}#ed_toolbar {z-index: 10;}@media screen and (min-width: 782px) {.CodeMirror-settings__toggle {height: 35px;}.CodeMirror-settings__toggle {width: 35px;}.CodeMirror-settings__toggle:after {font-size: 20px;}.CodeMirror-settings__toggle:after {margin: 7px;}.CodeMirror-settings__docked {min-height: 35px;}.CodeMirror-settings__header {padding-right: 35px;}.CodeMirror-settings__button--select:after {font-size: 16px;}.CodeMirror-settings__button--select:after {margin-top: 0;}.CodeMirror-dialog {height: 35px;}.CodeMirror-dialog {padding-right: 35px;}.CodeMirror-dialog:after {font-size: 20px;}.CodeMirror-dialog:after {margin: 7px;}.CodeMirror-overlayscroll-vertical div:after {top: 47px;}#template .CodeMirror {margin-right: 20px;}}@media screen and (max-width: 781px) {.CodeMirror-settings__toggle {height: 44px;}.CodeMirror-settings__toggle {width: 44px;}.CodeMirror-settings__toggle:after {font-size: 28px;}.CodeMirror-settings__toggle:after {margin: 8px;}.CodeMirror-settings__docked {min-height: 44px;}.CodeMirror-settings__header {padding-right: 44px;}.CodeMirror-settings__button--select:after {font-size: 20px;}.CodeMirror-settings__button--select:after {margin-top: -2px;}.CodeMirror-dialog {height: 44px;}.CodeMirror-dialog {padding-right: 44px;}.CodeMirror-dialog:after {font-size: 28px;}.CodeMirror-dialog:after {margin: 8px;}.CodeMirror-overlayscroll-vertical div:after {top: 56px;}#template .CodeMirror {margin-right: initial;}}@media screen and (max-height: 550px) {.heshFullscreen .CodeMirror {height: 75% !important;}}@media print {/* Hide the cursor when printing */.CodeMirror div.CodeMirror-cursors {visibility: hidden;}}@-webkit-keyframes blink {50% {background-color: transparent;}}@keyframes blink {50% {background-color: transparent;}}
dist/hesh.js CHANGED
@@ -1,7 +1,7 @@
1
  // CodeMirror, copyright (c) by Marijn Haverbeke and others
2
- // Distributed under an MIT license: http://codemirror.net/LICENSE
3
 
4
- // This is CodeMirror (http://codemirror.net), a code editor
5
  // implemented in JavaScript on top of the browser's DOM.
6
  //
7
  // You can find some technical background for some of the code below
@@ -279,13 +279,18 @@ function skipExtendingChars(str, pos, dir) {
279
  }
280
 
281
  // Returns the value from the range [`from`; `to`] that satisfies
282
- // `pred` and is closest to `from`. Assumes that at least `to` satisfies `pred`.
 
283
  function findFirst(pred, from, to) {
 
 
 
284
  for (;;) {
285
- if (Math.abs(from - to) <= 1) { return pred(from) ? from : to }
286
- var mid = Math.floor((from + to) / 2);
 
287
  if (pred(mid)) { to = mid; }
288
- else { from = mid; }
289
  }
290
  }
291
 
@@ -741,6 +746,16 @@ function collapsedSpanAtSide(line, start) {
741
  function collapsedSpanAtStart(line) { return collapsedSpanAtSide(line, true) }
742
  function collapsedSpanAtEnd(line) { return collapsedSpanAtSide(line, false) }
743
 
 
 
 
 
 
 
 
 
 
 
744
  // Test whether there exists a collapsed span that partially
745
  // overlaps (covers the start or end, but not both) of a new span.
746
  // Such overlap is not allowed.
@@ -897,12 +912,12 @@ function findMaxLine(cm) {
897
  // BIDI HELPERS
898
 
899
  function iterateBidiSections(order, from, to, f) {
900
- if (!order) { return f(from, to, "ltr") }
901
  var found = false;
902
  for (var i = 0; i < order.length; ++i) {
903
  var part = order[i];
904
  if (part.from < to && part.to > from || from == to && part.to == from) {
905
- f(Math.max(part.from, from), Math.min(part.to, to), part.level == 1 ? "rtl" : "ltr");
906
  found = true;
907
  }
908
  }
@@ -1083,13 +1098,15 @@ var bidiOrdering = (function() {
1083
  if (pos < i$7) { order.splice(at, 0, new BidiSpan(1, pos, i$7)); }
1084
  }
1085
  }
1086
- if (order[0].level == 1 && (m = str.match(/^\s+/))) {
1087
- order[0].from = m[0].length;
1088
- order.unshift(new BidiSpan(0, 0, m[0].length));
1089
- }
1090
- if (lst(order).level == 1 && (m = str.match(/\s+$/))) {
1091
- lst(order).to -= m[0].length;
1092
- order.push(new BidiSpan(0, len - m[0].length, len));
 
 
1093
  }
1094
 
1095
  return direction == "rtl" ? order.reverse() : order
@@ -1105,112 +1122,6 @@ function getOrder(line, direction) {
1105
  return order
1106
  }
1107
 
1108
- function moveCharLogically(line, ch, dir) {
1109
- var target = skipExtendingChars(line.text, ch + dir, dir);
1110
- return target < 0 || target > line.text.length ? null : target
1111
- }
1112
-
1113
- function moveLogically(line, start, dir) {
1114
- var ch = moveCharLogically(line, start.ch, dir);
1115
- return ch == null ? null : new Pos(start.line, ch, dir < 0 ? "after" : "before")
1116
- }
1117
-
1118
- function endOfLine(visually, cm, lineObj, lineNo, dir) {
1119
- if (visually) {
1120
- var order = getOrder(lineObj, cm.doc.direction);
1121
- if (order) {
1122
- var part = dir < 0 ? lst(order) : order[0];
1123
- var moveInStorageOrder = (dir < 0) == (part.level == 1);
1124
- var sticky = moveInStorageOrder ? "after" : "before";
1125
- var ch;
1126
- // With a wrapped rtl chunk (possibly spanning multiple bidi parts),
1127
- // it could be that the last bidi part is not on the last visual line,
1128
- // since visual lines contain content order-consecutive chunks.
1129
- // Thus, in rtl, we are looking for the first (content-order) character
1130
- // in the rtl chunk that is on the last line (that is, the same line
1131
- // as the last (content-order) character).
1132
- if (part.level > 0) {
1133
- var prep = prepareMeasureForLine(cm, lineObj);
1134
- ch = dir < 0 ? lineObj.text.length - 1 : 0;
1135
- var targetTop = measureCharPrepared(cm, prep, ch).top;
1136
- ch = findFirst(function (ch) { return measureCharPrepared(cm, prep, ch).top == targetTop; }, (dir < 0) == (part.level == 1) ? part.from : part.to - 1, ch);
1137
- if (sticky == "before") { ch = moveCharLogically(lineObj, ch, 1); }
1138
- } else { ch = dir < 0 ? part.to : part.from; }
1139
- return new Pos(lineNo, ch, sticky)
1140
- }
1141
- }
1142
- return new Pos(lineNo, dir < 0 ? lineObj.text.length : 0, dir < 0 ? "before" : "after")
1143
- }
1144
-
1145
- function moveVisually(cm, line, start, dir) {
1146
- var bidi = getOrder(line, cm.doc.direction);
1147
- if (!bidi) { return moveLogically(line, start, dir) }
1148
- if (start.ch >= line.text.length) {
1149
- start.ch = line.text.length;
1150
- start.sticky = "before";
1151
- } else if (start.ch <= 0) {
1152
- start.ch = 0;
1153
- start.sticky = "after";
1154
- }
1155
- var partPos = getBidiPartAt(bidi, start.ch, start.sticky), part = bidi[partPos];
1156
- if (cm.doc.direction == "ltr" && part.level % 2 == 0 && (dir > 0 ? part.to > start.ch : part.from < start.ch)) {
1157
- // Case 1: We move within an ltr part in an ltr editor. Even with wrapped lines,
1158
- // nothing interesting happens.
1159
- return moveLogically(line, start, dir)
1160
- }
1161
-
1162
- var mv = function (pos, dir) { return moveCharLogically(line, pos instanceof Pos ? pos.ch : pos, dir); };
1163
- var prep;
1164
- var getWrappedLineExtent = function (ch) {
1165
- if (!cm.options.lineWrapping) { return {begin: 0, end: line.text.length} }
1166
- prep = prep || prepareMeasureForLine(cm, line);
1167
- return wrappedLineExtentChar(cm, line, prep, ch)
1168
- };
1169
- var wrappedLineExtent = getWrappedLineExtent(start.sticky == "before" ? mv(start, -1) : start.ch);
1170
-
1171
- if (cm.doc.direction == "rtl" || part.level == 1) {
1172
- var moveInStorageOrder = (part.level == 1) == (dir < 0);
1173
- var ch = mv(start, moveInStorageOrder ? 1 : -1);
1174
- if (ch != null && (!moveInStorageOrder ? ch >= part.from && ch >= wrappedLineExtent.begin : ch <= part.to && ch <= wrappedLineExtent.end)) {
1175
- // Case 2: We move within an rtl part or in an rtl editor on the same visual line
1176
- var sticky = moveInStorageOrder ? "before" : "after";
1177
- return new Pos(start.line, ch, sticky)
1178
- }
1179
- }
1180
-
1181
- // Case 3: Could not move within this bidi part in this visual line, so leave
1182
- // the current bidi part
1183
-
1184
- var searchInVisualLine = function (partPos, dir, wrappedLineExtent) {
1185
- var getRes = function (ch, moveInStorageOrder) { return moveInStorageOrder
1186
- ? new Pos(start.line, mv(ch, 1), "before")
1187
- : new Pos(start.line, ch, "after"); };
1188
-
1189
- for (; partPos >= 0 && partPos < bidi.length; partPos += dir) {
1190
- var part = bidi[partPos];
1191
- var moveInStorageOrder = (dir > 0) == (part.level != 1);
1192
- var ch = moveInStorageOrder ? wrappedLineExtent.begin : mv(wrappedLineExtent.end, -1);
1193
- if (part.from <= ch && ch < part.to) { return getRes(ch, moveInStorageOrder) }
1194
- ch = moveInStorageOrder ? part.from : mv(part.to, -1);
1195
- if (wrappedLineExtent.begin <= ch && ch < wrappedLineExtent.end) { return getRes(ch, moveInStorageOrder) }
1196
- }
1197
- };
1198
-
1199
- // Case 3a: Look for other bidi parts on the same visual line
1200
- var res = searchInVisualLine(partPos + dir, dir, wrappedLineExtent);
1201
- if (res) { return res }
1202
-
1203
- // Case 3b: Look for other bidi parts on the next visual line
1204
- var nextCh = dir > 0 ? wrappedLineExtent.end : mv(wrappedLineExtent.begin, -1);
1205
- if (nextCh != null && !(dir > 0 && nextCh == line.text.length)) {
1206
- res = searchInVisualLine(dir > 0 ? 0 : bidi.length - 1, dir, getWrappedLineExtent(nextCh));
1207
- if (res) { return res }
1208
- }
1209
-
1210
- // Case 4: Nowhere to move
1211
- return null
1212
- }
1213
-
1214
  // EVENT HANDLING
1215
 
1216
  // Lightweight event framework. on/off also work on DOM nodes,
@@ -1572,6 +1483,10 @@ StringStream.prototype.lookAhead = function (n) {
1572
  var oracle = this.lineOracle;
1573
  return oracle && oracle.lookAhead(n)
1574
  };
 
 
 
 
1575
 
1576
  var SavedContext = function(state, lookAhead) {
1577
  this.state = state;
@@ -1583,6 +1498,8 @@ var Context = function(doc, state, line, lookAhead) {
1583
  this.doc = doc;
1584
  this.line = line;
1585
  this.maxLookAhead = lookAhead || 0;
 
 
1586
  };
1587
 
1588
  Context.prototype.lookAhead = function (n) {
@@ -1591,6 +1508,17 @@ Context.prototype.lookAhead = function (n) {
1591
  return line
1592
  };
1593
 
 
 
 
 
 
 
 
 
 
 
 
1594
  Context.prototype.nextLine = function () {
1595
  this.line++;
1596
  if (this.maxLookAhead > 0) { this.maxLookAhead--; }
@@ -1624,6 +1552,7 @@ function highlightLine(cm, line, context, forceToEnd) {
1624
 
1625
  // Run overlays, adjust style array.
1626
  var loop = function ( o ) {
 
1627
  var overlay = cm.state.overlays[o], i = 1, at = 0;
1628
  context.state = true;
1629
  runMode(cm, line.text, overlay.mode, context, function (end, style) {
@@ -1647,10 +1576,12 @@ function highlightLine(cm, line, context, forceToEnd) {
1647
  }
1648
  }
1649
  }, lineClasses);
 
 
 
1650
  };
1651
 
1652
  for (var o = 0; o < cm.state.overlays.length; ++o) loop( o );
1653
- context.state = state;
1654
 
1655
  return {styles: st, classes: lineClasses.bgClass || lineClasses.textClass ? lineClasses : null}
1656
  }
@@ -2721,15 +2652,22 @@ function pageScrollY() {
2721
  return window.pageYOffset || (document.documentElement || document.body).scrollTop
2722
  }
2723
 
 
 
 
 
 
 
 
2724
  // Converts a {top, bottom, left, right} box from line-local
2725
  // coordinates into another coordinate system. Context may be one of
2726
  // "line", "div" (display.lineDiv), "local"./null (editor), "window",
2727
  // or "page".
2728
  function intoCoordSystem(cm, lineObj, rect, context, includeWidgets) {
2729
- if (!includeWidgets && lineObj.widgets) { for (var i = 0; i < lineObj.widgets.length; ++i) { if (lineObj.widgets[i].above) {
2730
- var size = widgetHeight(lineObj.widgets[i]);
2731
- rect.top += size; rect.bottom += size;
2732
- } } }
2733
  if (context == "line") { return rect }
2734
  if (!context) { context = "local"; }
2735
  var yOff = heightAtLine(lineObj);
@@ -2804,7 +2742,7 @@ function cursorCoords(cm, pos, context, lineObj, preparedMeasure, varHeight) {
2804
  if (!order) { return get(sticky == "before" ? ch - 1 : ch, sticky == "before") }
2805
 
2806
  function getBidi(ch, partPos, invert) {
2807
- var part = order[partPos], right = (part.level % 2) != 0;
2808
  return get(invert ? ch - 1 : ch, right != invert)
2809
  }
2810
  var partPos = getBidiPartAt(order, ch, sticky);
@@ -2852,87 +2790,156 @@ function coordsChar(cm, x, y) {
2852
  var lineObj = getLine(doc, lineN);
2853
  for (;;) {
2854
  var found = coordsCharInner(cm, lineObj, lineN, x, y);
2855
- var merged = collapsedSpanAtEnd(lineObj);
2856
- var mergedPos = merged && merged.find(0, true);
2857
- if (merged && (found.ch > mergedPos.from.ch || found.ch == mergedPos.from.ch && found.xRel > 0))
2858
- { lineN = lineNo(lineObj = mergedPos.to.line); }
2859
- else
2860
- { return found }
2861
  }
2862
  }
2863
 
2864
  function wrappedLineExtent(cm, lineObj, preparedMeasure, y) {
2865
- var measure = function (ch) { return intoCoordSystem(cm, lineObj, measureCharPrepared(cm, preparedMeasure, ch), "line"); };
2866
  var end = lineObj.text.length;
2867
- var begin = findFirst(function (ch) { return measure(ch - 1).bottom <= y; }, end, 0);
2868
- end = findFirst(function (ch) { return measure(ch).top > y; }, begin, end);
2869
  return {begin: begin, end: end}
2870
  }
2871
 
2872
  function wrappedLineExtentChar(cm, lineObj, preparedMeasure, target) {
 
2873
  var targetTop = intoCoordSystem(cm, lineObj, measureCharPrepared(cm, preparedMeasure, target), "line").top;
2874
  return wrappedLineExtent(cm, lineObj, preparedMeasure, targetTop)
2875
  }
2876
 
 
 
 
 
 
 
2877
  function coordsCharInner(cm, lineObj, lineNo$$1, x, y) {
 
2878
  y -= heightAtLine(lineObj);
2879
- var begin = 0, end = lineObj.text.length;
2880
  var preparedMeasure = prepareMeasureForLine(cm, lineObj);
2881
- var pos;
 
 
 
 
2882
  var order = getOrder(lineObj, cm.doc.direction);
 
 
2883
  if (order) {
2884
- if (cm.options.lineWrapping) {
2885
- var assign;
2886
- ((assign = wrappedLineExtent(cm, lineObj, preparedMeasure, y), begin = assign.begin, end = assign.end, assign));
2887
- }
2888
- pos = new Pos(lineNo$$1, Math.floor(begin + (end - begin) / 2));
2889
- var beginLeft = cursorCoords(cm, pos, "line", lineObj, preparedMeasure).left;
2890
- var dir = beginLeft < x ? 1 : -1;
2891
- var prevDiff, diff = beginLeft - x, prevPos;
2892
- var steps = Math.ceil((end - begin) / 4);
2893
- outer: do {
2894
- prevDiff = diff;
2895
- prevPos = pos;
2896
- var i = 0;
2897
- for (; i < steps; ++i) {
2898
- var prevPos$1 = pos;
2899
- pos = moveVisually(cm, lineObj, pos, dir);
2900
- if (pos == null || pos.ch < begin || end <= (pos.sticky == "before" ? pos.ch - 1 : pos.ch)) {
2901
- pos = prevPos$1;
2902
- break outer
2903
- }
2904
- }
2905
- diff = cursorCoords(cm, pos, "line", lineObj, preparedMeasure).left - x;
2906
- if (steps > 1) {
2907
- var diff_change_per_step = Math.abs(diff - prevDiff) / steps;
2908
- steps = Math.min(steps, Math.ceil(Math.abs(diff) / diff_change_per_step));
2909
- dir = diff < 0 ? 1 : -1;
2910
- }
2911
- } while (diff != 0 && (steps > 1 || ((dir < 0) != (diff < 0) && (Math.abs(diff) <= Math.abs(prevDiff)))))
2912
- if (Math.abs(diff) > Math.abs(prevDiff)) {
2913
- if ((diff < 0) == (prevDiff < 0)) { throw new Error("Broke out of infinite loop in coordsCharInner") }
2914
- pos = prevPos;
2915
  }
 
 
 
 
 
 
 
 
 
 
 
2916
  } else {
2917
- var ch = findFirst(function (ch) {
2918
- var box = intoCoordSystem(cm, lineObj, measureCharPrepared(cm, preparedMeasure, ch), "line");
2919
- if (box.top > y) {
2920
- // For the cursor stickiness
2921
- end = Math.min(ch, end);
2922
- return true
2923
- }
2924
- else if (box.bottom <= y) { return false }
2925
- else if (box.left > x) { return true }
2926
- else if (box.right < x) { return false }
2927
- else { return (x - box.left < box.right - x) }
2928
- }, begin, end);
2929
- ch = skipExtendingChars(lineObj.text, ch, 1);
2930
- pos = new Pos(lineNo$$1, ch, ch == end ? "before" : "after");
2931
- }
2932
- var coords = cursorCoords(cm, pos, "line", lineObj, preparedMeasure);
2933
- if (y < coords.top || coords.bottom < y) { pos.outside = true; }
2934
- pos.xRel = x < coords.left ? -1 : (x > coords.right ? 1 : 0);
2935
- return pos
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2936
  }
2937
 
2938
  var measureText;
@@ -3058,12 +3065,14 @@ function updateSelection(cm) {
3058
  }
3059
 
3060
  function prepareSelection(cm, primary) {
 
 
3061
  var doc = cm.doc, result = {};
3062
  var curFragment = result.cursors = document.createDocumentFragment();
3063
  var selFragment = result.selection = document.createDocumentFragment();
3064
 
3065
  for (var i = 0; i < doc.sel.ranges.length; i++) {
3066
- if (primary === false && i == doc.sel.primIndex) { continue }
3067
  var range$$1 = doc.sel.ranges[i];
3068
  if (range$$1.from().line >= cm.display.viewTo || range$$1.to().line < cm.display.viewFrom) { continue }
3069
  var collapsed = range$$1.empty();
@@ -3094,12 +3103,15 @@ function drawSelectionCursor(cm, head, output) {
3094
  }
3095
  }
3096
 
 
 
3097
  // Draws the given range as a highlighted selection
3098
  function drawSelectionRange(cm, range$$1, output) {
3099
  var display = cm.display, doc = cm.doc;
3100
  var fragment = document.createDocumentFragment();
3101
  var padding = paddingH(cm.display), leftSide = padding.left;
3102
  var rightSide = Math.max(display.sizerWidth, displayWidth(cm) - display.sizer.offsetLeft) - padding.right;
 
3103
 
3104
  function add(left, top, width, bottom) {
3105
  if (top < 0) { top = 0; }
@@ -3116,30 +3128,49 @@ function drawSelectionRange(cm, range$$1, output) {
3116
  return charCoords(cm, Pos(line, ch), "div", lineObj, bias)
3117
  }
3118
 
3119
- iterateBidiSections(getOrder(lineObj, doc.direction), fromArg || 0, toArg == null ? lineLen : toArg, function (from, to, dir) {
3120
- var leftPos = coords(from, "left"), rightPos, left, right;
3121
- if (from == to) {
3122
- rightPos = leftPos;
3123
- left = right = leftPos.left;
3124
- } else {
3125
- rightPos = coords(to - 1, "right");
3126
- if (dir == "rtl") { var tmp = leftPos; leftPos = rightPos; rightPos = tmp; }
3127
- left = leftPos.left;
3128
- right = rightPos.right;
3129
- }
3130
- if (fromArg == null && from == 0) { left = leftSide; }
3131
- if (rightPos.top - leftPos.top > 3) { // Different lines, draw top part
3132
- add(left, leftPos.top, null, leftPos.bottom);
3133
- left = leftSide;
3134
- if (leftPos.bottom < rightPos.top) { add(left, leftPos.bottom, null, rightPos.top); }
3135
- }
3136
- if (toArg == null && to == lineLen) { right = rightSide; }
3137
- if (!start || leftPos.top < start.top || leftPos.top == start.top && leftPos.left < start.left)
3138
- { start = leftPos; }
3139
- if (!end || rightPos.bottom > end.bottom || rightPos.bottom == end.bottom && rightPos.right > end.right)
3140
- { end = rightPos; }
3141
- if (left < leftSide + 1) { left = leftSide; }
3142
- add(left, rightPos.top, right - left, rightPos.bottom);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3143
  });
3144
  return {start: start, end: end}
3145
  }
@@ -3254,8 +3285,10 @@ function updateHeightsInViewport(cm) {
3254
  // Read and store the height of line widgets associated with the
3255
  // given line.
3256
  function updateWidgetHeight(line) {
3257
- if (line.widgets) { for (var i = 0; i < line.widgets.length; ++i)
3258
- { line.widgets[i].height = line.widgets[i].node.parentNode.offsetHeight; } }
 
 
3259
  }
3260
 
3261
  // Compute the lines that are visible in a given viewport (defaults
@@ -3521,6 +3554,7 @@ var NativeScrollbars = function(place, scroll, cm) {
3521
  this.cm = cm;
3522
  var vert = this.vert = elt("div", [elt("div", null, null, "min-width: 1px")], "CodeMirror-vscrollbar");
3523
  var horiz = this.horiz = elt("div", [elt("div", null, null, "height: 100%; min-height: 1px")], "CodeMirror-hscrollbar");
 
3524
  place(vert); place(horiz);
3525
 
3526
  on(vert, "scroll", function () {
@@ -3769,7 +3803,7 @@ function endOperation_R2(op) {
3769
  }
3770
 
3771
  if (op.updatedDisplay || op.selectionChanged)
3772
- { op.preparedSelection = display.input.prepareSelection(op.focus); }
3773
  }
3774
 
3775
  function endOperation_W2(op) {
@@ -3782,7 +3816,7 @@ function endOperation_W2(op) {
3782
  cm.display.maxLineChanged = false;
3783
  }
3784
 
3785
- var takeFocus = op.focus && op.focus == activeElt() && (!document.hasFocus || document.hasFocus());
3786
  if (op.preparedSelection)
3787
  { cm.display.input.showSelection(op.preparedSelection, takeFocus); }
3788
  if (op.updatedDisplay || op.startHeight != cm.doc.height)
@@ -4772,7 +4806,7 @@ function addChangeToHistory(doc, change, selAfter, opId) {
4772
 
4773
  if ((hist.lastOp == opId ||
4774
  hist.lastOrigin == change.origin && change.origin &&
4775
- ((change.origin.charAt(0) == "+" && doc.cm && hist.lastModTime > time - doc.cm.options.historyEventDelay) ||
4776
  change.origin.charAt(0) == "*")) &&
4777
  (cur = lastChangeEvent(hist, hist.lastOp == opId))) {
4778
  // Merge this change into the last event
@@ -5201,7 +5235,8 @@ function makeChangeInner(doc, change) {
5201
 
5202
  // Revert a change stored in a document's history.
5203
  function makeChangeFromHistory(doc, type, allowSelectionOnly) {
5204
- if (doc.cm && doc.cm.state.suppressEdits && !allowSelectionOnly) { return }
 
5205
 
5206
  var hist = doc.history, event, selAfter = doc.sel;
5207
  var source = type == "undo" ? hist.done : hist.undone, dest = type == "undo" ? hist.undone : hist.done;
@@ -5226,8 +5261,10 @@ function makeChangeFromHistory(doc, type, allowSelectionOnly) {
5226
  return
5227
  }
5228
  selAfter = event;
5229
- }
5230
- else { break }
 
 
5231
  }
5232
 
5233
  // Build up a reverse change object to add to the opposite history
@@ -5382,7 +5419,8 @@ function makeChangeSingleDocInEditor(cm, change, spans) {
5382
 
5383
  function replaceRange(doc, code, from, to, origin) {
5384
  if (!to) { to = from; }
5385
- if (cmp(to, from) < 0) { var tmp = to; to = from; from = tmp; }
 
5386
  if (typeof code == "string") { code = doc.splitLines(code); }
5387
  makeChange(doc, {from: from, to: to, text: code, origin: origin});
5388
  }
@@ -5478,10 +5516,10 @@ function LeafChunk(lines) {
5478
  }
5479
 
5480
  LeafChunk.prototype = {
5481
- chunkSize: function chunkSize() { return this.lines.length },
5482
 
5483
  // Remove the n lines at offset 'at'.
5484
- removeInner: function removeInner(at, n) {
5485
  var this$1 = this;
5486
 
5487
  for (var i = at, e = at + n; i < e; ++i) {
@@ -5494,13 +5532,13 @@ LeafChunk.prototype = {
5494
  },
5495
 
5496
  // Helper used to collapse a small branch into a single leaf.
5497
- collapse: function collapse(lines) {
5498
  lines.push.apply(lines, this.lines);
5499
  },
5500
 
5501
  // Insert the given array of lines at offset 'at', count them as
5502
  // having the given height.
5503
- insertInner: function insertInner(at, lines, height) {
5504
  var this$1 = this;
5505
 
5506
  this.height += height;
@@ -5509,7 +5547,7 @@ LeafChunk.prototype = {
5509
  },
5510
 
5511
  // Used to iterate over a part of the tree.
5512
- iterN: function iterN(at, n, op) {
5513
  var this$1 = this;
5514
 
5515
  for (var e = at + n; at < e; ++at)
@@ -5533,9 +5571,9 @@ function BranchChunk(children) {
5533
  }
5534
 
5535
  BranchChunk.prototype = {
5536
- chunkSize: function chunkSize() { return this.size },
5537
 
5538
- removeInner: function removeInner(at, n) {
5539
  var this$1 = this;
5540
 
5541
  this.size -= n;
@@ -5561,13 +5599,13 @@ BranchChunk.prototype = {
5561
  }
5562
  },
5563
 
5564
- collapse: function collapse(lines) {
5565
  var this$1 = this;
5566
 
5567
  for (var i = 0; i < this.children.length; ++i) { this$1.children[i].collapse(lines); }
5568
  },
5569
 
5570
- insertInner: function insertInner(at, lines, height) {
5571
  var this$1 = this;
5572
 
5573
  this.size += lines.length;
@@ -5596,7 +5634,7 @@ BranchChunk.prototype = {
5596
  },
5597
 
5598
  // When a node has grown, check whether it should be split.
5599
- maybeSpill: function maybeSpill() {
5600
  if (this.children.length <= 10) { return }
5601
  var me = this;
5602
  do {
@@ -5618,7 +5656,7 @@ BranchChunk.prototype = {
5618
  me.parent.maybeSpill();
5619
  },
5620
 
5621
- iterN: function iterN(at, n, op) {
5622
  var this$1 = this;
5623
 
5624
  for (var i = 0; i < this.children.length; ++i) {
@@ -5669,7 +5707,7 @@ LineWidget.prototype.changed = function () {
5669
  this.height = null;
5670
  var diff = widgetHeight(this) - oldH;
5671
  if (!diff) { return }
5672
- updateLineHeight(line, line.height + diff);
5673
  if (cm) {
5674
  runInOp(cm, function () {
5675
  cm.curOp.forceUpdate = true;
@@ -5702,7 +5740,7 @@ function addLineWidget(doc, handle, node, options) {
5702
  }
5703
  return true
5704
  });
5705
- signalLater(cm, "lineWidgetAdded", cm, widget, typeof handle == "number" ? handle : lineNo(handle));
5706
  return widget
5707
  }
5708
 
@@ -6551,8 +6589,6 @@ function registerGlobalHandlers() {
6551
  // Called when the window resizes
6552
  function onResize(cm) {
6553
  var d = cm.display;
6554
- if (d.lastWrapHeight == d.wrapper.clientHeight && d.lastWrapWidth == d.wrapper.clientWidth)
6555
- { return }
6556
  // Might be a text scaling operation, clear size caches.
6557
  d.cachedCharWidth = d.cachedTextHeight = d.cachedPaddingH = null;
6558
  d.scrollbarsClipped = false;
@@ -6560,11 +6596,11 @@ function onResize(cm) {
6560
  }
6561
 
6562
  var keyNames = {
6563
- 3: "Enter", 8: "Backspace", 9: "Tab", 13: "Enter", 16: "Shift", 17: "Ctrl", 18: "Alt",
6564
  19: "Pause", 20: "CapsLock", 27: "Esc", 32: "Space", 33: "PageUp", 34: "PageDown", 35: "End",
6565
  36: "Home", 37: "Left", 38: "Up", 39: "Right", 40: "Down", 44: "PrintScrn", 45: "Insert",
6566
  46: "Delete", 59: ";", 61: "=", 91: "Mod", 92: "Mod", 93: "Mod",
6567
- 106: "*", 107: "=", 109: "-", 110: ".", 111: "/", 127: "Delete",
6568
  173: "-", 186: ";", 187: "=", 188: ",", 189: "-", 190: ".", 191: "/", 192: "`", 219: "[", 220: "\\",
6569
  221: "]", 222: "'", 63232: "Up", 63233: "Down", 63234: "Left", 63235: "Right", 63272: "Delete",
6570
  63273: "Home", 63275: "End", 63276: "PageUp", 63277: "PageDown", 63302: "Insert"
@@ -6598,7 +6634,7 @@ keyMap.pcDefault = {
6598
  "Ctrl-G": "findNext", "Shift-Ctrl-G": "findPrev", "Shift-Ctrl-F": "replace", "Shift-Ctrl-R": "replaceAll",
6599
  "Ctrl-[": "indentLess", "Ctrl-]": "indentMore",
6600
  "Ctrl-U": "undoSelection", "Shift-Ctrl-U": "redoSelection", "Alt-U": "redoSelection",
6601
- fallthrough: "basic"
6602
  };
6603
  // Very basic readline/emacs-style bindings, which are standard on Mac.
6604
  keyMap.emacsy = {
@@ -6616,7 +6652,7 @@ keyMap.macDefault = {
6616
  "Cmd-G": "findNext", "Shift-Cmd-G": "findPrev", "Cmd-Alt-F": "replace", "Shift-Cmd-Alt-F": "replaceAll",
6617
  "Cmd-[": "indentLess", "Cmd-]": "indentMore", "Cmd-Backspace": "delWrappedLineLeft", "Cmd-Delete": "delWrappedLineRight",
6618
  "Cmd-U": "undoSelection", "Shift-Cmd-U": "redoSelection", "Ctrl-Up": "goDocStart", "Ctrl-Down": "goDocEnd",
6619
- fallthrough: ["basic", "emacsy"]
6620
  };
6621
  keyMap["default"] = mac ? keyMap.macDefault : keyMap.pcDefault;
6622
 
@@ -6711,6 +6747,9 @@ function keyName(event, noShift) {
6711
  if (presto && event.keyCode == 34 && event["char"]) { return false }
6712
  var name = keyNames[event.keyCode];
6713
  if (name == null || event.altGraphKey) { return false }
 
 
 
6714
  return addModifierNames(name, event, noShift)
6715
  }
6716
 
@@ -6743,6 +6782,112 @@ function deleteNearSelection(cm, compute) {
6743
  });
6744
  }
6745
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6746
  // Commands are parameter-less actions that can be performed on an
6747
  // editor, mostly used for keybindings.
6748
  var commands = {
@@ -6944,18 +7089,26 @@ function lookupKeyForEditor(cm, name, handle) {
6944
  // for bound mouse clicks.
6945
 
6946
  var stopSeq = new Delayed;
 
6947
  function dispatchKey(cm, name, e, handle) {
6948
  var seq = cm.state.keySeq;
6949
  if (seq) {
6950
  if (isModifierKey(name)) { return "handled" }
6951
- stopSeq.set(50, function () {
6952
- if (cm.state.keySeq == seq) {
6953
- cm.state.keySeq = null;
6954
- cm.display.input.reset();
6955
- }
6956
- });
6957
- name = seq + " " + name;
 
 
 
6958
  }
 
 
 
 
6959
  var result = lookupKeyForEditor(cm, name, handle);
6960
 
6961
  if (result == "multi")
@@ -6968,10 +7121,6 @@ function dispatchKey(cm, name, e, handle) {
6968
  restartBlink(cm);
6969
  }
6970
 
6971
- if (seq && !result && /\'$/.test(name)) {
6972
- e_preventDefault(e);
6973
- return true
6974
- }
6975
  return !!result
6976
  }
6977
 
@@ -7183,8 +7332,8 @@ function leftButtonStartDrag(cm, event, pos, behavior) {
7183
  var dragEnd = operation(cm, function (e) {
7184
  if (webkit) { display.scroller.draggable = false; }
7185
  cm.state.draggingText = false;
7186
- off(document, "mouseup", dragEnd);
7187
- off(document, "mousemove", mouseMove);
7188
  off(display.scroller, "dragstart", dragStart);
7189
  off(display.scroller, "drop", dragEnd);
7190
  if (!moved) {
@@ -7193,7 +7342,7 @@ function leftButtonStartDrag(cm, event, pos, behavior) {
7193
  { extendSelection(cm.doc, pos, null, null, behavior.extend); }
7194
  // Work around unexplainable focus problem in IE9 (#2127) and Chrome (#3081)
7195
  if (webkit || ie && ie_version == 9)
7196
- { setTimeout(function () {document.body.focus(); display.input.focus();}, 20); }
7197
  else
7198
  { display.input.focus(); }
7199
  }
@@ -7208,8 +7357,8 @@ function leftButtonStartDrag(cm, event, pos, behavior) {
7208
  dragEnd.copy = !behavior.moveOnDrag;
7209
  // IE's approach to draggable
7210
  if (display.scroller.dragDrop) { display.scroller.dragDrop(); }
7211
- on(document, "mouseup", dragEnd);
7212
- on(document, "mousemove", mouseMove);
7213
  on(display.scroller, "dragstart", dragStart);
7214
  on(display.scroller, "drop", dragEnd);
7215
 
@@ -7304,7 +7453,7 @@ function leftButtonSelect(cm, event, start, behavior) {
7304
  anchor = maxPos(oldRange.to(), range$$1.head);
7305
  }
7306
  var ranges$1 = startSel.ranges.slice(0);
7307
- ranges$1[ourIndex] = new Range(clipPos(doc, anchor), head);
7308
  setSelection(doc, normalizeSelection(ranges$1, ourIndex), sel_mouse);
7309
  }
7310
  }
@@ -7341,19 +7490,53 @@ function leftButtonSelect(cm, event, start, behavior) {
7341
  counter = Infinity;
7342
  e_preventDefault(e);
7343
  display.input.focus();
7344
- off(document, "mousemove", move);
7345
- off(document, "mouseup", up);
7346
  doc.history.lastSelOrigin = null;
7347
  }
7348
 
7349
  var move = operation(cm, function (e) {
7350
- if (!e_button(e)) { done(e); }
7351
  else { extend(e); }
7352
  });
7353
  var up = operation(cm, done);
7354
  cm.state.selectingText = up;
7355
- on(document, "mousemove", move);
7356
- on(document, "mouseup", up);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7357
  }
7358
 
7359
 
@@ -7361,8 +7544,13 @@ function leftButtonSelect(cm, event, start, behavior) {
7361
  // handlers for the corresponding event.
7362
  function gutterEvent(cm, e, type, prevent) {
7363
  var mX, mY;
7364
- try { mX = e.clientX; mY = e.clientY; }
7365
- catch(e) { return false }
 
 
 
 
 
7366
  if (mX >= Math.floor(cm.display.gutters.getBoundingClientRect().right)) { return false }
7367
  if (prevent) { e_preventDefault(e); }
7368
 
@@ -7444,6 +7632,7 @@ function defineOptions(CodeMirror) {
7444
  clearCaches(cm);
7445
  regChange(cm);
7446
  }, true);
 
7447
  option("lineSeparator", null, function (cm, val) {
7448
  cm.doc.lineSep = val;
7449
  if (!val) { return }
@@ -7545,6 +7734,7 @@ function defineOptions(CodeMirror) {
7545
  option("tabindex", null, function (cm, val) { return cm.display.input.getField().tabIndex = val || ""; });
7546
  option("autofocus", null);
7547
  option("direction", "ltr", function (cm, val) { return cm.doc.setDirection(val); }, true);
 
7548
  }
7549
 
7550
  function guttersChanged(cm) {
@@ -7596,6 +7786,7 @@ function CodeMirror$1(place, options) {
7596
 
7597
  var doc = options.value;
7598
  if (typeof doc == "string") { doc = new Doc(doc, options.mode, null, options.lineSeparator, options.direction); }
 
7599
  this.doc = doc;
7600
 
7601
  var input = new CodeMirror$1.inputStyles[options.inputStyle](this);
@@ -7700,7 +7891,7 @@ function registerEventHandlers(cm) {
7700
  return dx * dx + dy * dy > 20 * 20
7701
  }
7702
  on(d.scroller, "touchstart", function (e) {
7703
- if (!signalDOMEvent(cm, e) && !isMouseLikeTouchEvent(e)) {
7704
  d.input.ensurePolled();
7705
  clearTimeout(touchFinished);
7706
  var now = +new Date;
@@ -7850,7 +8041,7 @@ function applyTextInput(cm, inserted, deleted, sel, origin) {
7850
 
7851
  var paste = cm.state.pasteIncoming || origin == "paste";
7852
  var textLines = splitLinesAuto(inserted), multiPaste = null;
7853
- // When pasing N lines into N selections, insert one line per selection
7854
  if (paste && sel.ranges.length > 1) {
7855
  if (lastCopied && lastCopied.text.join("\n") == inserted) {
7856
  if (sel.ranges.length % lastCopied.text.length == 0) {
@@ -8382,6 +8573,11 @@ var addEditorMethods = function(CodeMirror) {
8382
  return old
8383
  }),
8384
 
 
 
 
 
 
8385
  getInputField: function(){return this.display.input.getField()},
8386
  getWrapperElement: function(){return this.display.wrapper},
8387
  getScrollerElement: function(){return this.display.scroller},
@@ -8586,8 +8782,12 @@ ContentEditableInput.prototype.showSelection = function (info, takeFocus) {
8586
  this.showMultipleSelections(info);
8587
  };
8588
 
 
 
 
 
8589
  ContentEditableInput.prototype.showPrimarySelection = function () {
8590
- var sel = window.getSelection(), cm = this.cm, prim = cm.doc.sel.primary();
8591
  var from = prim.from(), to = prim.to();
8592
 
8593
  if (cm.display.viewTo == cm.display.viewFrom || from.line >= cm.display.viewTo || to.line < cm.display.viewFrom) {
@@ -8654,13 +8854,13 @@ ContentEditableInput.prototype.showMultipleSelections = function (info) {
8654
  };
8655
 
8656
  ContentEditableInput.prototype.rememberSelection = function () {
8657
- var sel = window.getSelection();
8658
  this.lastAnchorNode = sel.anchorNode; this.lastAnchorOffset = sel.anchorOffset;
8659
  this.lastFocusNode = sel.focusNode; this.lastFocusOffset = sel.focusOffset;
8660
  };
8661
 
8662
  ContentEditableInput.prototype.selectionInEditor = function () {
8663
- var sel = window.getSelection();
8664
  if (!sel.rangeCount) { return false }
8665
  var node = sel.getRangeAt(0).commonAncestorContainer;
8666
  return contains(this.div, node)
@@ -8695,14 +8895,14 @@ ContentEditableInput.prototype.receivedFocus = function () {
8695
  };
8696
 
8697
  ContentEditableInput.prototype.selectionChanged = function () {
8698
- var sel = window.getSelection();
8699
  return sel.anchorNode != this.lastAnchorNode || sel.anchorOffset != this.lastAnchorOffset ||
8700
  sel.focusNode != this.lastFocusNode || sel.focusOffset != this.lastFocusOffset
8701
  };
8702
 
8703
  ContentEditableInput.prototype.pollSelection = function () {
8704
  if (this.readDOMTimeout != null || this.gracePeriod || !this.selectionChanged()) { return }
8705
- var sel = window.getSelection(), cm = this.cm;
8706
  // On Android Chrome (version 56, at least), backspacing into an
8707
  // uneditable block element will put the cursor in that element,
8708
  // and then, because it's not editable, hide the virtual keyboard.
@@ -8836,7 +9036,7 @@ ContentEditableInput.prototype.setUneditable = function (node) {
8836
  };
8837
 
8838
  ContentEditableInput.prototype.onKeyPress = function (e) {
8839
- if (e.charCode == 0) { return }
8840
  e.preventDefault();
8841
  if (!this.cm.isReadOnly())
8842
  { operation(this.cm, applyTextInput)(this.cm, String.fromCharCode(e.charCode == null ? e.keyCode : e.charCode), 0); }
@@ -8876,12 +9076,13 @@ function isInGutter(node) {
8876
  function badPos(pos, bad) { if (bad) { pos.bad = true; } return pos }
8877
 
8878
  function domTextBetween(cm, from, to, fromLine, toLine) {
8879
- var text = "", closing = false, lineSep = cm.doc.lineSeparator();
8880
  function recognizeMarker(id) { return function (marker) { return marker.id == id; } }
8881
  function close() {
8882
  if (closing) {
8883
  text += lineSep;
8884
- closing = false;
 
8885
  }
8886
  }
8887
  function addText(str) {
@@ -8893,8 +9094,8 @@ function domTextBetween(cm, from, to, fromLine, toLine) {
8893
  function walk(node) {
8894
  if (node.nodeType == 1) {
8895
  var cmText = node.getAttribute("cm-text");
8896
- if (cmText != null) {
8897
- addText(cmText || node.textContent.replace(/\u200b/g, ""));
8898
  return
8899
  }
8900
  var markerID = node.getAttribute("cm-marker"), range$$1;
@@ -8905,19 +9106,24 @@ function domTextBetween(cm, from, to, fromLine, toLine) {
8905
  return
8906
  }
8907
  if (node.getAttribute("contenteditable") == "false") { return }
8908
- var isBlock = /^(pre|div|p)$/i.test(node.nodeName);
 
 
8909
  if (isBlock) { close(); }
8910
  for (var i = 0; i < node.childNodes.length; i++)
8911
  { walk(node.childNodes[i]); }
 
 
8912
  if (isBlock) { closing = true; }
8913
  } else if (node.nodeType == 3) {
8914
- addText(node.nodeValue);
8915
  }
8916
  }
8917
  for (;;) {
8918
  walk(from);
8919
  if (from == to) { break }
8920
  from = from.nextSibling;
 
8921
  }
8922
  return text
8923
  }
@@ -9018,13 +9224,10 @@ TextareaInput.prototype.init = function (display) {
9018
  var this$1 = this;
9019
 
9020
  var input = this, cm = this.cm;
 
 
9021
 
9022
- // Wraps and hides input textarea
9023
- var div = this.wrapper = hiddenTextarea();
9024
- // The semihidden textarea that is focused when the editor is
9025
- // focused, and receives input.
9026
- var te = this.textarea = div.firstChild;
9027
- display.wrapper.insertBefore(div, display.wrapper.firstChild);
9028
 
9029
  // Needed to hide big blue blinking cursor on Mobile Safari (doesn't seem to work in iOS 8 anymore)
9030
  if (ios) { te.style.width = "0px"; }
@@ -9091,6 +9294,14 @@ TextareaInput.prototype.init = function (display) {
9091
  });
9092
  };
9093
 
 
 
 
 
 
 
 
 
9094
  TextareaInput.prototype.prepareSelection = function () {
9095
  // Redraw the selection and/or cursor
9096
  var cm = this.cm, display = cm.display, doc = cm.doc;
@@ -9484,14 +9695,14 @@ CodeMirror$1.fromTextArea = fromTextArea;
9484
 
9485
  addLegacyProps(CodeMirror$1);
9486
 
9487
- CodeMirror$1.version = "5.29.0";
9488
 
9489
  return CodeMirror$1;
9490
 
9491
  })));
9492
 
9493
  // CodeMirror, copyright (c) by Marijn Haverbeke and others
9494
- // Distributed under an MIT license: http://codemirror.net/LICENSE
9495
 
9496
  (function(mod) {
9497
  if (typeof exports == "object" && typeof module == "object") // CommonJS
@@ -9544,6 +9755,7 @@ var xmlConfig = {
9544
  doNotIndent: {},
9545
  allowUnquoted: false,
9546
  allowMissing: false,
 
9547
  caseFold: false
9548
  }
9549
 
@@ -9654,8 +9866,9 @@ CodeMirror.defineMode("xml", function(editorConf, config_) {
9654
  stream.next();
9655
  }
9656
  return style;
9657
- };
9658
  }
 
9659
  function doctype(depth) {
9660
  return function(stream, state) {
9661
  var ch;
@@ -9718,6 +9931,9 @@ CodeMirror.defineMode("xml", function(editorConf, config_) {
9718
  state.tagName = stream.current();
9719
  setStyle = "tag";
9720
  return attrState;
 
 
 
9721
  } else {
9722
  setStyle = "error";
9723
  return tagNameState;
@@ -9736,6 +9952,9 @@ CodeMirror.defineMode("xml", function(editorConf, config_) {
9736
  setStyle = "tag error";
9737
  return closeStateErr;
9738
  }
 
 
 
9739
  } else {
9740
  setStyle = "error";
9741
  return closeStateErr;
@@ -9886,7 +10105,7 @@ if (!CodeMirror.mimeModes.hasOwnProperty("text/html"))
9886
  });
9887
 
9888
  // CodeMirror, copyright (c) by Marijn Haverbeke and others
9889
- // Distributed under an MIT license: http://codemirror.net/LICENSE
9890
 
9891
  (function(mod) {
9892
  if (typeof exports == "object" && typeof module == "object") // CommonJS
@@ -9910,13 +10129,13 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
9910
 
9911
  var keywords = function(){
9912
  function kw(type) {return {type: type, style: "keyword"};}
9913
- var A = kw("keyword a"), B = kw("keyword b"), C = kw("keyword c");
9914
  var operator = kw("operator"), atom = {type: "atom", style: "atom"};
9915
 
9916
- var jsKeywords = {
9917
  "if": kw("if"), "while": A, "with": A, "else": B, "do": B, "try": B, "finally": B,
9918
- "return": C, "break": C, "continue": C, "new": kw("new"), "delete": C, "throw": C, "debugger": C,
9919
- "var": kw("var"), "const": kw("var"), "let": kw("var"),
9920
  "function": kw("function"), "catch": kw("catch"),
9921
  "for": kw("for"), "switch": kw("switch"), "case": kw("case"), "default": kw("default"),
9922
  "in": operator, "typeof": operator, "instanceof": operator,
@@ -9925,35 +10144,6 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
9925
  "yield": C, "export": kw("export"), "import": kw("import"), "extends": C,
9926
  "await": C
9927
  };
9928
-
9929
- // Extend the 'normal' keywords with the TypeScript language extensions
9930
- if (isTS) {
9931
- var type = {type: "variable", style: "type"};
9932
- var tsKeywords = {
9933
- // object-like things
9934
- "interface": kw("class"),
9935
- "implements": C,
9936
- "namespace": C,
9937
- "module": kw("module"),
9938
- "enum": kw("module"),
9939
-
9940
- // scope modifiers
9941
- "public": kw("modifier"),
9942
- "private": kw("modifier"),
9943
- "protected": kw("modifier"),
9944
- "abstract": kw("modifier"),
9945
- "readonly": kw("modifier"),
9946
-
9947
- // types
9948
- "string": type, "number": type, "boolean": type, "any": type
9949
- };
9950
-
9951
- for (var attr in tsKeywords) {
9952
- jsKeywords[attr] = tsKeywords[attr];
9953
- }
9954
- }
9955
-
9956
- return jsKeywords;
9957
  }();
9958
 
9959
  var isOperatorChar = /[+\-*&%=<>!?|~^@]/;
@@ -9991,17 +10181,10 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
9991
  return ret(ch);
9992
  } else if (ch == "=" && stream.eat(">")) {
9993
  return ret("=>", "operator");
9994
- } else if (ch == "0" && stream.eat(/x/i)) {
9995
- stream.eatWhile(/[\da-f]/i);
9996
- return ret("number", "number");
9997
- } else if (ch == "0" && stream.eat(/o/i)) {
9998
- stream.eatWhile(/[0-7]/i);
9999
- return ret("number", "number");
10000
- } else if (ch == "0" && stream.eat(/b/i)) {
10001
- stream.eatWhile(/[01]/i);
10002
  return ret("number", "number");
10003
  } else if (/\d/.test(ch)) {
10004
- stream.match(/^\d*(?:\.\d*)?(?:[eE][+\-]?\d+)?/);
10005
  return ret("number", "number");
10006
  } else if (ch == "/") {
10007
  if (stream.eat("*")) {
@@ -10012,10 +10195,10 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
10012
  return ret("comment", "comment");
10013
  } else if (expressionAllowed(stream, state, 1)) {
10014
  readRegexp(stream);
10015
- stream.match(/^\b(([gimyu])(?![gimyu]*\2))+\b/);
10016
  return ret("regexp", "string-2");
10017
  } else {
10018
- stream.eatWhile(isOperatorChar);
10019
  return ret("operator", "operator", stream.current());
10020
  }
10021
  } else if (ch == "`") {
@@ -10025,8 +10208,14 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
10025
  stream.skipToEnd();
10026
  return ret("error", "error");
10027
  } else if (isOperatorChar.test(ch)) {
10028
- if (ch != ">" || !state.lexical || state.lexical.type != ">")
10029
- stream.eatWhile(isOperatorChar);
 
 
 
 
 
 
10030
  return ret("operator", "operator", stream.current());
10031
  } else if (wordRE.test(ch)) {
10032
  stream.eatWhile(wordRE);
@@ -10036,7 +10225,7 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
10036
  var kw = keywords[word]
10037
  return ret(kw.type, kw.style, word)
10038
  }
10039
- if (word == "async" && stream.match(/^\s*[\(\w]/, false))
10040
  return ret("async", "keyword", word)
10041
  }
10042
  return ret("variable", "variable", word)
@@ -10175,35 +10364,68 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
10175
  pass.apply(null, arguments);
10176
  return true;
10177
  }
 
 
 
 
10178
  function register(varname) {
10179
- function inList(list) {
10180
- for (var v = list; v; v = v.next)
10181
- if (v.name == varname) return true;
10182
- return false;
10183
- }
10184
  var state = cx.state;
10185
  cx.marked = "def";
10186
  if (state.context) {
10187
- if (inList(state.localVars)) return;
10188
- state.localVars = {name: varname, next: state.localVars};
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10189
  } else {
10190
- if (inList(state.globalVars)) return;
10191
- if (parserConfig.globalVars)
10192
- state.globalVars = {name: varname, next: state.globalVars};
10193
  }
10194
  }
10195
 
 
 
 
 
10196
  // Combinators
10197
 
10198
- var defaultVars = {name: "this", next: {name: "arguments"}};
 
 
 
10199
  function pushcontext() {
10200
- cx.state.context = {prev: cx.state.context, vars: cx.state.localVars};
10201
- cx.state.localVars = defaultVars;
 
 
 
 
10202
  }
10203
  function popcontext() {
10204
- cx.state.localVars = cx.state.context.vars;
10205
- cx.state.context = cx.state.context.prev;
10206
  }
 
10207
  function pushlex(type, info) {
10208
  var result = function() {
10209
  var state = cx.state, indent = state.indented;
@@ -10228,17 +10450,19 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
10228
  function expect(wanted) {
10229
  function exp(type) {
10230
  if (type == wanted) return cont();
10231
- else if (wanted == ";") return pass();
10232
  else return cont(exp);
10233
  };
10234
  return exp;
10235
  }
10236
 
10237
  function statement(type, value) {
10238
- if (type == "var") return cont(pushlex("vardef", value.length), vardef, expect(";"), poplex);
10239
  if (type == "keyword a") return cont(pushlex("form"), parenExpr, statement, poplex);
10240
  if (type == "keyword b") return cont(pushlex("form"), statement, poplex);
10241
- if (type == "{") return cont(pushlex("}"), block, poplex);
 
 
10242
  if (type == ";") return cont();
10243
  if (type == "if") {
10244
  if (cx.state.lexical.info == "else" && cx.state.cc[cx.state.cc.length - 1] == poplex)
@@ -10247,69 +10471,75 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
10247
  }
10248
  if (type == "function") return cont(functiondef);
10249
  if (type == "for") return cont(pushlex("form"), forspec, statement, poplex);
 
10250
  if (type == "variable") {
10251
- if (isTS && value == "type") {
10252
  cx.marked = "keyword"
10253
- return cont(typeexpr, expect("operator"), typeexpr, expect(";"));
10254
- } if (isTS && value == "declare") {
 
 
 
 
 
 
 
 
10255
  cx.marked = "keyword"
10256
  return cont(statement)
10257
  } else {
10258
  return cont(pushlex("stat"), maybelabel);
10259
  }
10260
  }
10261
- if (type == "switch") return cont(pushlex("form"), parenExpr, expect("{"), pushlex("}", "switch"),
10262
- block, poplex, poplex);
10263
  if (type == "case") return cont(expression, expect(":"));
10264
  if (type == "default") return cont(expect(":"));
10265
- if (type == "catch") return cont(pushlex("form"), pushcontext, expect("("), funarg, expect(")"),
10266
- statement, poplex, popcontext);
10267
- if (type == "class") return cont(pushlex("form"), className, poplex);
10268
  if (type == "export") return cont(pushlex("stat"), afterExport, poplex);
10269
  if (type == "import") return cont(pushlex("stat"), afterImport, poplex);
10270
- if (type == "module") return cont(pushlex("form"), pattern, expect("{"), pushlex("}"), block, poplex, poplex)
10271
  if (type == "async") return cont(statement)
10272
  if (value == "@") return cont(expression, statement)
10273
  return pass(pushlex("stat"), expression, expect(";"), poplex);
10274
  }
10275
- function expression(type) {
10276
- return expressionInner(type, false);
 
 
 
10277
  }
10278
- function expressionNoComma(type) {
10279
- return expressionInner(type, true);
10280
  }
10281
  function parenExpr(type) {
10282
  if (type != "(") return pass()
10283
  return cont(pushlex(")"), expression, expect(")"), poplex)
10284
  }
10285
- function expressionInner(type, noComma) {
10286
  if (cx.state.fatArrowAt == cx.stream.start) {
10287
  var body = noComma ? arrowBodyNoComma : arrowBody;
10288
- if (type == "(") return cont(pushcontext, pushlex(")"), commasep(pattern, ")"), poplex, expect("=>"), body, popcontext);
10289
  else if (type == "variable") return pass(pushcontext, pattern, expect("=>"), body, popcontext);
10290
  }
10291
 
10292
  var maybeop = noComma ? maybeoperatorNoComma : maybeoperatorComma;
10293
  if (atomicTypes.hasOwnProperty(type)) return cont(maybeop);
10294
  if (type == "function") return cont(functiondef, maybeop);
10295
- if (type == "class") return cont(pushlex("form"), classExpression, poplex);
10296
- if (type == "keyword c" || type == "async") return cont(noComma ? maybeexpressionNoComma : maybeexpression);
10297
  if (type == "(") return cont(pushlex(")"), maybeexpression, expect(")"), poplex, maybeop);
10298
  if (type == "operator" || type == "spread") return cont(noComma ? expressionNoComma : expression);
10299
  if (type == "[") return cont(pushlex("]"), arrayLiteral, poplex, maybeop);
10300
  if (type == "{") return contCommasep(objprop, "}", null, maybeop);
10301
  if (type == "quasi") return pass(quasi, maybeop);
10302
  if (type == "new") return cont(maybeTarget(noComma));
 
10303
  return cont();
10304
  }
10305
  function maybeexpression(type) {
10306
  if (type.match(/[;\}\)\],]/)) return pass();
10307
  return pass(expression);
10308
  }
10309
- function maybeexpressionNoComma(type) {
10310
- if (type.match(/[;\}\)\],]/)) return pass();
10311
- return pass(expressionNoComma);
10312
- }
10313
 
10314
  function maybeoperatorComma(type, value) {
10315
  if (type == ",") return cont(expression);
@@ -10321,6 +10551,8 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
10321
  if (type == "=>") return cont(pushcontext, noComma ? arrowBodyNoComma : arrowBody, popcontext);
10322
  if (type == "operator") {
10323
  if (/\+\+|--/.test(value) || isTS && value == "!") return cont(me);
 
 
10324
  if (value == "?") return cont(expression, expect(":"), expr);
10325
  return cont(expr);
10326
  }
@@ -10330,6 +10562,11 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
10330
  if (type == ".") return cont(property, me);
10331
  if (type == "[") return cont(pushlex("]"), maybeexpression, expect("]"), poplex, me);
10332
  if (isTS && value == "as") { cx.marked = "keyword"; return cont(typeexpr, me) }
 
 
 
 
 
10333
  }
10334
  function quasi(type, value) {
10335
  if (type != "quasi") return pass();
@@ -10378,18 +10615,25 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
10378
  } else if (type == "variable" || cx.style == "keyword") {
10379
  cx.marked = "property";
10380
  if (value == "get" || value == "set") return cont(getterSetter);
 
 
 
10381
  return cont(afterprop);
10382
  } else if (type == "number" || type == "string") {
10383
  cx.marked = jsonldMode ? "property" : (cx.style + " property");
10384
  return cont(afterprop);
10385
  } else if (type == "jsonld-keyword") {
10386
  return cont(afterprop);
10387
- } else if (type == "modifier") {
 
10388
  return cont(objprop)
10389
  } else if (type == "[") {
10390
- return cont(expression, expect("]"), afterprop);
10391
  } else if (type == "spread") {
10392
- return cont(expression, afterprop);
 
 
 
10393
  } else if (type == ":") {
10394
  return pass(afterprop)
10395
  }
@@ -10436,20 +10680,32 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
10436
  if (value == "?") return cont(maybetype);
10437
  }
10438
  }
 
 
 
 
 
 
 
 
 
 
 
 
10439
  function typeexpr(type, value) {
10440
- if (type == "variable") {
10441
- if (value == "keyof") {
10442
- cx.marked = "keyword"
10443
- return cont(typeexpr)
10444
- } else {
10445
- cx.marked = "type"
10446
- return cont(afterType)
10447
- }
10448
  }
10449
  if (type == "string" || type == "number" || type == "atom") return cont(afterType);
10450
  if (type == "[") return cont(pushlex("]"), commasep(typeexpr, "]", ","), poplex, afterType)
10451
  if (type == "{") return cont(pushlex("}"), commasep(typeprop, "}", ",;"), poplex, afterType)
10452
  if (type == "(") return cont(commasep(typearg, ")"), maybeReturnType)
 
10453
  }
10454
  function maybeReturnType(type) {
10455
  if (type == "=>") return cont(typeexpr)
@@ -10466,24 +10722,32 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
10466
  return cont(expression, maybetype, expect("]"), typeprop)
10467
  }
10468
  }
10469
- function typearg(type) {
10470
- if (type == "variable") return cont(typearg)
10471
- else if (type == ":") return cont(typeexpr)
 
10472
  }
10473
  function afterType(type, value) {
10474
  if (value == "<") return cont(pushlex(">"), commasep(typeexpr, ">"), poplex, afterType)
10475
- if (value == "|" || type == ".") return cont(typeexpr)
10476
  if (type == "[") return cont(expect("]"), afterType)
10477
- if (value == "extends") return cont(typeexpr)
10478
  }
10479
  function maybeTypeArgs(_, value) {
10480
  if (value == "<") return cont(pushlex(">"), commasep(typeexpr, ">"), poplex, afterType)
10481
  }
10482
- function vardef() {
 
 
 
 
 
 
 
10483
  return pass(pattern, maybetype, maybeAssign, vardefCont);
10484
  }
10485
  function pattern(type, value) {
10486
- if (type == "modifier") return cont(pattern)
10487
  if (type == "variable") { register(value); return cont(); }
10488
  if (type == "spread") return cont(pattern);
10489
  if (type == "[") return contCommasep(pattern, "]");
@@ -10508,7 +10772,8 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
10508
  function maybeelse(type, value) {
10509
  if (type == "keyword b" && value == "else") return cont(pushlex("form", "else"), statement, poplex);
10510
  }
10511
- function forspec(type) {
 
10512
  if (type == "(") return cont(pushlex(")"), forspec1, expect(")"), poplex);
10513
  }
10514
  function forspec1(type) {
@@ -10532,11 +10797,13 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
10532
  function functiondef(type, value) {
10533
  if (value == "*") {cx.marked = "keyword"; return cont(functiondef);}
10534
  if (type == "variable") {register(value); return cont(functiondef);}
10535
- if (type == "(") return cont(pushcontext, pushlex(")"), commasep(funarg, ")"), poplex, maybetype, statement, popcontext);
10536
- if (isTS && value == "<") return cont(pushlex(">"), commasep(typeexpr, ">"), poplex, functiondef)
10537
  }
10538
- function funarg(type) {
10539
- if (type == "spread" || type == "modifier") return cont(funarg);
 
 
10540
  return pass(pattern, maybetype, maybeAssign);
10541
  }
10542
  function classExpression(type, value) {
@@ -10548,25 +10815,27 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
10548
  if (type == "variable") {register(value); return cont(classNameAfter);}
10549
  }
10550
  function classNameAfter(type, value) {
10551
- if (value == "<") return cont(pushlex(">"), commasep(typeexpr, ">"), poplex, classNameAfter)
10552
- if (value == "extends" || value == "implements" || (isTS && type == ","))
 
10553
  return cont(isTS ? typeexpr : expression, classNameAfter);
 
10554
  if (type == "{") return cont(pushlex("}"), classBody, poplex);
10555
  }
10556
  function classBody(type, value) {
10557
- if (type == "modifier" || type == "async" ||
10558
  (type == "variable" &&
10559
- (value == "static" || value == "get" || value == "set") &&
10560
  cx.stream.match(/^\s+[\w$\xa1-\uffff]/, false))) {
10561
  cx.marked = "keyword";
10562
  return cont(classBody);
10563
  }
10564
- if (type == "variable") {
10565
  cx.marked = "property";
10566
  return cont(isTS ? classfield : functiondef, classBody);
10567
  }
10568
  if (type == "[")
10569
- return cont(expression, expect("]"), isTS ? classfield : functiondef, classBody)
10570
  if (value == "*") {
10571
  cx.marked = "keyword";
10572
  return cont(classBody);
@@ -10593,6 +10862,7 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
10593
  }
10594
  function afterImport(type) {
10595
  if (type == "string") return cont();
 
10596
  return pass(importSpec, maybeMoreImports, maybeFrom);
10597
  }
10598
  function importSpec(type, value) {
@@ -10614,6 +10884,12 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
10614
  if (type == "]") return cont();
10615
  return pass(commasep(expressionNoComma, "]"));
10616
  }
 
 
 
 
 
 
10617
 
10618
  function isContinuedStatement(state, textAfter) {
10619
  return state.lastType == "operator" || state.lastType == "," ||
@@ -10623,7 +10899,7 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
10623
 
10624
  function expressionAllowed(stream, state, backUp) {
10625
  return state.tokenize == tokenBase &&
10626
- /^(?:operator|sof|keyword c|case|new|export|default|[\[{}\(,;:]|=>)$/.test(state.lastType) ||
10627
  (state.lastType == "quasi" && /\{\s*$/.test(stream.string.slice(0, stream.pos - (backUp || 0))))
10628
  }
10629
 
@@ -10637,7 +10913,7 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
10637
  cc: [],
10638
  lexical: new JSLexical((basecolumn || 0) - indentUnit, 0, "block", false),
10639
  localVars: parserConfig.localVars,
10640
- context: parserConfig.localVars && {vars: parserConfig.localVars},
10641
  indented: basecolumn || 0
10642
  };
10643
  if (parserConfig.globalVars && typeof parserConfig.globalVars == "object")
@@ -10678,7 +10954,7 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
10678
  lexical = lexical.prev;
10679
  var type = lexical.type, closing = firstChar == type;
10680
 
10681
- if (type == "vardef") return lexical.indented + (state.lastType == "operator" || state.lastType == "," ? lexical.info + 1 : 0);
10682
  else if (type == "form" && firstChar == "{") return lexical.indented;
10683
  else if (type == "form") return lexical.indented + indentUnit;
10684
  else if (type == "stat")
@@ -10692,6 +10968,7 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
10692
  electricInput: /^\s*(?:case .*?:|default:|\{|\})$/,
10693
  blockCommentStart: jsonMode ? null : "/*",
10694
  blockCommentEnd: jsonMode ? null : "*/",
 
10695
  lineComment: jsonMode ? null : "//",
10696
  fold: "brace",
10697
  closeBrackets: "()[]{}''\"\"``",
@@ -10725,7 +11002,7 @@ CodeMirror.defineMIME("application/typescript", { name: "javascript", typescript
10725
  });
10726
 
10727
  // CodeMirror, copyright (c) by Marijn Haverbeke and others
10728
- // Distributed under an MIT license: http://codemirror.net/LICENSE
10729
 
10730
  (function(mod) {
10731
  if (typeof exports == "object" && typeof module == "object") // CommonJS
@@ -10803,9 +11080,9 @@ CodeMirror.defineMode("css", function(config, parserConfig) {
10803
  return ret("qualifier", "qualifier");
10804
  } else if (/[:;{}\[\]\(\)]/.test(ch)) {
10805
  return ret(null, ch);
10806
- } else if ((ch == "u" && stream.match(/rl(-prefix)?\(/)) ||
10807
- (ch == "d" && stream.match("omain(")) ||
10808
- (ch == "r" && stream.match("egexp("))) {
10809
  stream.backUp(1);
10810
  state.tokenize = tokenParenthesized;
10811
  return ret("property", "word");
@@ -10888,16 +11165,16 @@ CodeMirror.defineMode("css", function(config, parserConfig) {
10888
  return pushContext(state, stream, "block");
10889
  } else if (type == "}" && state.context.prev) {
10890
  return popContext(state);
10891
- } else if (supportsAtComponent && /@component/.test(type)) {
10892
  return pushContext(state, stream, "atComponentBlock");
10893
- } else if (/^@(-moz-)?document$/.test(type)) {
10894
  return pushContext(state, stream, "documentTypes");
10895
- } else if (/^@(media|supports|(-moz-)?document|import)$/.test(type)) {
10896
  return pushContext(state, stream, "atBlock");
10897
- } else if (/^@(font-face|counter-style)/.test(type)) {
10898
  state.stateArg = type;
10899
  return "restricted_atBlock_before";
10900
- } else if (/^@(-(moz|ms|o|webkit)-)?keyframes$/.test(type)) {
10901
  return "keyframes";
10902
  } else if (type && type.charAt(0) == "@") {
10903
  return pushContext(state, stream, "at");
@@ -11136,6 +11413,7 @@ CodeMirror.defineMode("css", function(config, parserConfig) {
11136
  electricChars: "}",
11137
  blockCommentStart: "/*",
11138
  blockCommentEnd: "*/",
 
11139
  lineComment: lineComment,
11140
  fold: "brace"
11141
  };
@@ -11518,7 +11796,7 @@ CodeMirror.defineMode("css", function(config, parserConfig) {
11518
  },
11519
  "@": function(stream) {
11520
  if (stream.eat("{")) return [null, "interpolation"];
11521
- if (stream.match(/^(charset|document|font-face|import|(-(moz|ms|o|webkit)-)?keyframes|media|namespace|page|supports)\b/, false)) return false;
11522
  stream.eatWhile(/[\w\\\-]/);
11523
  if (stream.match(/^\s*:/, false))
11524
  return ["variable-2", "variable-definition"];
@@ -11557,7 +11835,7 @@ CodeMirror.defineMode("css", function(config, parserConfig) {
11557
  });
11558
 
11559
  // CodeMirror, copyright (c) by Marijn Haverbeke and others
11560
- // Distributed under an MIT license: http://codemirror.net/LICENSE
11561
 
11562
  (function(mod) {
11563
  if (typeof exports == "object" && typeof module == "object") // CommonJS
@@ -11710,7 +11988,7 @@ CodeMirror.defineMode("css", function(config, parserConfig) {
11710
  });
11711
 
11712
  // CodeMirror, copyright (c) by Marijn Haverbeke and others
11713
- // Distributed under an MIT license: http://codemirror.net/LICENSE
11714
 
11715
  (function(mod) {
11716
  if (typeof exports == "object" && typeof module == "object") // CommonJS
@@ -11927,15 +12205,15 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
11927
  indent: function(state, textAfter) {
11928
  if (state.tokenize != tokenBase && state.tokenize != null || state.typeAtEndOfLine) return CodeMirror.Pass;
11929
  var ctx = state.context, firstChar = textAfter && textAfter.charAt(0);
 
11930
  if (ctx.type == "statement" && firstChar == "}") ctx = ctx.prev;
11931
  if (parserConfig.dontIndentStatements)
11932
  while (ctx.type == "statement" && parserConfig.dontIndentStatements.test(ctx.info))
11933
  ctx = ctx.prev
11934
  if (hooks.indent) {
11935
- var hook = hooks.indent(state, ctx, textAfter);
11936
  if (typeof hook == "number") return hook
11937
  }
11938
- var closing = firstChar == ctx.type;
11939
  var switchBlock = ctx.prev && ctx.prev.info == "switch";
11940
  if (parserConfig.allmanIndentation && /[{(]/.test(firstChar)) {
11941
  while (ctx.type != "top" && ctx.type != "}") ctx = ctx.prev
@@ -11955,6 +12233,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
11955
  electricInput: indentSwitch ? /^\s*(?:case .*?:|default:|\{\}?|\})$/ : /^\s*[{}]$/,
11956
  blockCommentStart: "/*",
11957
  blockCommentEnd: "*/",
 
11958
  lineComment: "//",
11959
  fold: "brace"
11960
  };
@@ -12084,7 +12363,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
12084
  blockKeywords: words("case do else for if switch while struct"),
12085
  defKeywords: words("struct"),
12086
  typeFirstDefinitions: true,
12087
- atoms: words("null true false"),
12088
  hooks: {"#": cppHook, "*": pointerHook},
12089
  modeProps: {fold: ["brace", "include"]}
12090
  });
@@ -12100,7 +12379,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
12100
  blockKeywords: words("catch class do else finally for if struct switch try while"),
12101
  defKeywords: words("class namespace struct enum union"),
12102
  typeFirstDefinitions: true,
12103
- atoms: words("true false null"),
12104
  dontIndentStatements: /^template$/,
12105
  isIdentifierChar: /[\w\$_~\xa1-\uffff]/,
12106
  hooks: {
@@ -12142,7 +12421,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
12142
  types: words("byte short int long float double boolean char void Boolean Byte Character Double Float " +
12143
  "Integer Long Number Object Short String StringBuffer StringBuilder Void"),
12144
  blockKeywords: words("catch class do else finally for if switch try while"),
12145
- defKeywords: words("class interface package enum @interface"),
12146
  typeFirstDefinitions: true,
12147
  atoms: words("true false null"),
12148
  number: /^(?:0x[a-f\d_]+|0b[01_]+|(?:[\d_]+\.?\d*|\.\d+)(?:e[-+]?[\d_]+)?)(u|ll?|l|f)?/i,
@@ -12199,6 +12478,27 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
12199
  return "string";
12200
  }
12201
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12202
  def("text/x-scala", {
12203
  name: "clike",
12204
  keywords: words(
@@ -12254,6 +12554,12 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
12254
  } else {
12255
  return false
12256
  }
 
 
 
 
 
 
12257
  }
12258
  },
12259
  modeProps: {closeBrackets: {triples: '"'}}
@@ -12280,34 +12586,51 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
12280
  name: "clike",
12281
  keywords: words(
12282
  /*keywords*/
12283
- "package as typealias class interface this super val " +
12284
- "var fun for is in This throw return " +
12285
  "break continue object if else while do try when !in !is as? " +
12286
 
12287
  /*soft keywords*/
12288
  "file import where by get set abstract enum open inner override private public internal " +
12289
  "protected catch finally out final vararg reified dynamic companion constructor init " +
12290
  "sealed field property receiver param sparam lateinit data inline noinline tailrec " +
12291
- "external annotation crossinline const operator infix suspend"
12292
  ),
12293
  types: words(
12294
  /* package java.lang */
12295
  "Boolean Byte Character CharSequence Class ClassLoader Cloneable Comparable " +
12296
  "Compiler Double Exception Float Integer Long Math Number Object Package Pair Process " +
12297
  "Runtime Runnable SecurityManager Short StackTraceElement StrictMath String " +
12298
- "StringBuffer System Thread ThreadGroup ThreadLocal Throwable Triple Void"
 
 
12299
  ),
12300
  intendSwitch: false,
12301
  indentStatements: false,
12302
  multiLineStrings: true,
12303
- number: /^(?:0x[a-f\d_]+|0b[01_]+|(?:[\d_]+\.?\d*|\.\d+)(?:e[-+]?[\d_]+)?)(u|ll?|l|f)?/i,
12304
  blockKeywords: words("catch class do else finally for if where try while enum"),
12305
- defKeywords: words("class val var object package interface fun"),
12306
  atoms: words("true false null this"),
12307
  hooks: {
 
 
 
 
12308
  '"': function(stream, state) {
12309
  state.tokenize = tokenKotlinString(stream.match('""'));
12310
  return state.tokenize(stream, state);
 
 
 
 
 
 
 
 
 
 
 
12311
  }
12312
  },
12313
  modeProps: {closeBrackets: {triples: '"'}}
@@ -12500,7 +12823,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
12500
  });
12501
 
12502
  // CodeMirror, copyright (c) by Marijn Haverbeke and others
12503
- // Distributed under an MIT license: http://codemirror.net/LICENSE
12504
 
12505
  (function(mod) {
12506
  if (typeof exports == "object" && typeof module == "object") // CommonJS
@@ -12652,7 +12975,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
12652
  };
12653
 
12654
  CodeMirror.defineMode("php", function(config, parserConfig) {
12655
- var htmlMode = CodeMirror.getMode(config, "text/html");
12656
  var phpMode = CodeMirror.getMode(config, phpConfig);
12657
 
12658
  function dispatch(stream, state) {
@@ -13172,7 +13495,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
13172
  }));
13173
 
13174
  // CodeMirror, copyright (c) by Marijn Haverbeke and others
13175
- // Distributed under an MIT license: http://codemirror.net/LICENSE
13176
 
13177
  (function(mod) {
13178
  if (typeof exports == "object" && typeof module == "object") // CommonJS
@@ -13245,7 +13568,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
13245
  });
13246
 
13247
  // CodeMirror, copyright (c) by Marijn Haverbeke and others
13248
- // Distributed under an MIT license: http://codemirror.net/LICENSE
13249
 
13250
  (function(mod) {
13251
  if (typeof exports == "object" && typeof module == "object") // CommonJS
@@ -13265,8 +13588,11 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
13265
  + (regexp.multiline ? "m" : "")
13266
  }
13267
 
13268
- function ensureGlobal(regexp) {
13269
- return regexp.global ? regexp : new RegExp(regexp.source, regexpFlags(regexp) + "g")
 
 
 
13270
  }
13271
 
13272
  function maybeMultiline(regexp) {
@@ -13274,7 +13600,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
13274
  }
13275
 
13276
  function searchRegexpForward(doc, regexp, start) {
13277
- regexp = ensureGlobal(regexp)
13278
  for (var line = start.line, ch = start.ch, last = doc.lastLine(); line <= last; line++, ch = 0) {
13279
  regexp.lastIndex = ch
13280
  var string = doc.getLine(line), match = regexp.exec(string)
@@ -13288,7 +13614,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
13288
  function searchRegexpForwardMultiline(doc, regexp, start) {
13289
  if (!maybeMultiline(regexp)) return searchRegexpForward(doc, regexp, start)
13290
 
13291
- regexp = ensureGlobal(regexp)
13292
  var string, chunk = 1
13293
  for (var line = start.line, last = doc.lastLine(); line <= last;) {
13294
  // This grows the search buffer in exponentially-sized chunks
@@ -13297,6 +13623,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
13297
  // searching for something that has tons of matches), but at the
13298
  // same time, the amount of retries is limited.
13299
  for (var i = 0; i < chunk; i++) {
 
13300
  var curLine = doc.getLine(line++)
13301
  string = string == null ? curLine : string + "\n" + curLine
13302
  }
@@ -13327,7 +13654,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
13327
  }
13328
 
13329
  function searchRegexpBackward(doc, regexp, start) {
13330
- regexp = ensureGlobal(regexp)
13331
  for (var line = start.line, ch = start.ch, first = doc.firstLine(); line >= first; line--, ch = -1) {
13332
  var string = doc.getLine(line)
13333
  if (ch > -1) string = string.slice(0, ch)
@@ -13340,7 +13667,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
13340
  }
13341
 
13342
  function searchRegexpBackwardMultiline(doc, regexp, start) {
13343
- regexp = ensureGlobal(regexp)
13344
  var string, chunk = 1
13345
  for (var line = start.line, first = doc.firstLine(); line >= first;) {
13346
  for (var i = 0; i < chunk; i++) {
@@ -13405,7 +13732,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
13405
  for (var i = 1; i < lines.length - 1; i++)
13406
  if (fold(doc.getLine(line + i)) != lines[i]) continue search
13407
  var end = doc.getLine(line + lines.length - 1), endString = fold(end), lastLine = lines[lines.length - 1]
13408
- if (end.slice(0, lastLine.length) != lastLine) continue search
13409
  return {from: Pos(line, adjustPos(orig, string, cutFrom, fold) + ch),
13410
  to: Pos(line + lines.length - 1, adjustPos(end, endString, lastLine.length, fold))}
13411
  }
@@ -13459,7 +13786,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
13459
  return (reverse ? searchStringBackward : searchStringForward)(doc, query, pos, caseFold)
13460
  }
13461
  } else {
13462
- query = ensureGlobal(query)
13463
  if (!options || options.multiline !== false)
13464
  this.matches = function(reverse, pos) {
13465
  return (reverse ? searchRegexpBackwardMultiline : searchRegexpForwardMultiline)(doc, query, pos)
@@ -13535,7 +13862,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
13535
  });
13536
 
13537
  // CodeMirror, copyright (c) by Marijn Haverbeke and others
13538
- // Distributed under an MIT license: http://codemirror.net/LICENSE
13539
 
13540
  // Define search commands. Depends on dialog.js or another
13541
  // implementation of the openDialog method.
@@ -13634,9 +13961,6 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
13634
  return query;
13635
  }
13636
 
13637
- var queryDialog =
13638
- '<span class="CodeMirror-search-label">Search:</span> <input type="text" style="width: 10em" class="CodeMirror-search-field"/> <span style="color: #888" class="CodeMirror-search-hint">(Use /re/ syntax for regexp search)</span>';
13639
-
13640
  function startSearch(cm, state, query) {
13641
  state.queryText = query;
13642
  state.query = parseQuery(query);
@@ -13653,6 +13977,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
13653
  var state = getSearchState(cm);
13654
  if (state.query) return findNext(cm, rev);
13655
  var q = cm.getSelection() || state.lastQuery;
 
13656
  if (persistent && cm.openDialog) {
13657
  var hiding = null
13658
  var searchNext = function(query, event) {
@@ -13671,7 +13996,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
13671
  (hiding = dialog).style.opacity = .4
13672
  })
13673
  };
13674
- persistentDialog(cm, queryDialog, q, searchNext, function(event, query) {
13675
  var keyName = CodeMirror.keyName(event)
13676
  var extra = cm.getOption('extraKeys'), cmd = (extra && extra[keyName]) || CodeMirror.keyMap[cm.getOption("keyMap")][keyName]
13677
  if (cmd == "findNext" || cmd == "findPrev" ||
@@ -13689,7 +14014,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
13689
  findNext(cm, rev);
13690
  }
13691
  } else {
13692
- dialog(cm, queryDialog, "Search for:", q, function(query) {
13693
  if (query && !state.query) cm.operation(function() {
13694
  startSearch(cm, state, query);
13695
  state.posFrom = state.posTo = cm.getCursor();
@@ -13721,10 +14046,19 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
13721
  if (state.annotate) { state.annotate.clear(); state.annotate = null; }
13722
  });}
13723
 
13724
- var replaceQueryDialog =
13725
- ' <input type="text" style="width: 10em" class="CodeMirror-search-field"/> <span style="color: #888" class="CodeMirror-search-hint">(Use /re/ syntax for regexp search)</span>';
13726
- var replacementQueryDialog = '<span class="CodeMirror-search-label">With:</span> <input type="text" style="width: 10em" class="CodeMirror-search-field"/>';
13727
- var doReplaceConfirm = '<span class="CodeMirror-search-label">Replace?</span> <button>Yes</button> <button>No</button> <button>All</button> <button>Stop</button>';
 
 
 
 
 
 
 
 
 
13728
 
13729
  function replaceAll(cm, query, text) {
13730
  cm.operation(function() {
@@ -13740,11 +14074,11 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
13740
  function replace(cm, all) {
13741
  if (cm.getOption("readOnly")) return;
13742
  var query = cm.getSelection() || getSearchState(cm).lastQuery;
13743
- var dialogText = '<span class="CodeMirror-search-label">' + (all ? 'Replace all:' : 'Replace:') + '</span>';
13744
- dialog(cm, dialogText + replaceQueryDialog, dialogText, query, function(query) {
13745
  if (!query) return;
13746
  query = parseQuery(query);
13747
- dialog(cm, replacementQueryDialog, "Replace with:", "", function(text) {
13748
  text = parseString(text)
13749
  if (all) {
13750
  replaceAll(cm, query, text)
@@ -13760,7 +14094,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
13760
  }
13761
  cm.setSelection(cursor.from(), cursor.to());
13762
  cm.scrollIntoView({from: cursor.from(), to: cursor.to()});
13763
- confirmDialog(cm, doReplaceConfirm, "Replace?",
13764
  [function() {doReplace(match);}, advance,
13765
  function() {replaceAll(cm, query, text)}]);
13766
  };
@@ -13787,7 +14121,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
13787
  });
13788
 
13789
  // CodeMirror, copyright (c) by Marijn Haverbeke and others
13790
- // Distributed under an MIT license: http://codemirror.net/LICENSE
13791
 
13792
  // Open simple dialogs on top of an editor. Relies on dialog.css.
13793
 
@@ -13813,6 +14147,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
13813
  } else { // Assuming it's a detached DOM element.
13814
  dialog.appendChild(template);
13815
  }
 
13816
  return dialog;
13817
  }
13818
 
@@ -13835,6 +14170,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
13835
  } else {
13836
  if (closed) return;
13837
  closed = true;
 
13838
  dialog.parentNode.removeChild(dialog);
13839
  me.focus();
13840
 
@@ -13890,6 +14226,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
13890
  function close() {
13891
  if (closed) return;
13892
  closed = true;
 
13893
  dialog.parentNode.removeChild(dialog);
13894
  me.focus();
13895
  }
@@ -13929,6 +14266,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
13929
  if (closed) return;
13930
  closed = true;
13931
  clearTimeout(doneTimer);
 
13932
  dialog.parentNode.removeChild(dialog);
13933
  }
13934
 
@@ -13945,7 +14283,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
13945
  });
13946
 
13947
  // CodeMirror, copyright (c) by Marijn Haverbeke and others
13948
- // Distributed under an MIT license: http://codemirror.net/LICENSE
13949
 
13950
  (function(mod) {
13951
  if (typeof exports == "object" && typeof module == "object") // CommonJS
@@ -14098,7 +14436,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
14098
  });
14099
 
14100
  // CodeMirror, copyright (c) by Marijn Haverbeke and others
14101
- // Distributed under an MIT license: http://codemirror.net/LICENSE
14102
 
14103
  (function(mod) {
14104
  if (typeof exports == "object" && typeof module == "object") // CommonJS
@@ -14271,10 +14609,6 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
14271
  if (open == -1) return false
14272
  var endLine = end == start ? startLine : self.getLine(end)
14273
  var close = endLine.indexOf(endString, end == start ? open + startString.length : 0);
14274
- if (close == -1 && start != end) {
14275
- endLine = self.getLine(--end);
14276
- close = endLine.indexOf(endString);
14277
- }
14278
  var insideStart = Pos(start, open + 1), insideEnd = Pos(end, close + 1)
14279
  if (close == -1 ||
14280
  !/comment/.test(self.getTokenTypeAt(insideStart)) ||
@@ -14312,7 +14646,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
14312
  });
14313
 
14314
  // CodeMirror, copyright (c) by Marijn Haverbeke and others
14315
- // Distributed under an MIT license: http://codemirror.net/LICENSE
14316
 
14317
  (function(mod) {
14318
  if (typeof exports == "object" && typeof module == "object") // CommonJS
@@ -14465,7 +14799,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
14465
  });
14466
 
14467
  // CodeMirror, copyright (c) by Marijn Haverbeke and others
14468
- // Distributed under an MIT license: http://codemirror.net/LICENSE
14469
 
14470
  (function(mod) {
14471
  if (typeof exports == "object" && typeof module == "object") // CommonJS
@@ -14612,7 +14946,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
14612
  });
14613
 
14614
  // CodeMirror, copyright (c) by Marijn Haverbeke and others
14615
- // Distributed under an MIT license: http://codemirror.net/LICENSE
14616
 
14617
  (function(mod) {
14618
  if (typeof exports == "object" && typeof module == "object") // CommonJS
@@ -14750,12 +15084,14 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
14750
  CodeMirror.registerHelper("fold", "xml", function(cm, start) {
14751
  var iter = new Iter(cm, start.line, 0);
14752
  for (;;) {
14753
- var openTag = toNextTag(iter), end;
14754
- if (!openTag || iter.line != start.line || !(end = toTagEnd(iter))) return;
 
 
14755
  if (!openTag[1] && end != "selfClose") {
14756
  var startPos = Pos(iter.line, iter.ch);
14757
  var endPos = findMatchingClose(iter, openTag[2]);
14758
- return endPos && {from: startPos, to: endPos.from};
14759
  }
14760
  }
14761
  });
@@ -14795,7 +15131,7 @@ CodeMirror.defineMode("clike", function(config, parserConfig) {
14795
  });
14796
 
14797
  // CodeMirror, copyright (c) by Marijn Haverbeke and others
14798
- // Distributed under an MIT license: http://codemirror.net/LICENSE
14799
 
14800
  (function(mod) {
14801
  if (typeof exports == "object" && typeof module == "object") // CommonJS
@@ -14844,7 +15180,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
14844
  });
14845
 
14846
  // CodeMirror, copyright (c) by Marijn Haverbeke and others
14847
- // Distributed under an MIT license: http://codemirror.net/LICENSE
14848
 
14849
  (function(mod) {
14850
  if (typeof exports == "object" && typeof module == "object") // CommonJS
@@ -14947,18 +15283,23 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
14947
  }
14948
  }
14949
 
14950
- var currentlyHighlighted = null;
14951
  function doMatchBrackets(cm) {
14952
  cm.operation(function() {
14953
- if (currentlyHighlighted) {currentlyHighlighted(); currentlyHighlighted = null;}
14954
- currentlyHighlighted = matchBrackets(cm, false, cm.state.matchBrackets);
 
 
 
14955
  });
14956
  }
14957
 
14958
  CodeMirror.defineOption("matchBrackets", false, function(cm, val, old) {
14959
  if (old && old != CodeMirror.Init) {
14960
  cm.off("cursorActivity", doMatchBrackets);
14961
- if (currentlyHighlighted) {currentlyHighlighted(); currentlyHighlighted = null;}
 
 
 
14962
  }
14963
  if (val) {
14964
  cm.state.matchBrackets = typeof val == "object" ? val : {};
@@ -14985,7 +15326,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
14985
  });
14986
 
14987
  // CodeMirror, copyright (c) by Marijn Haverbeke and others
14988
- // Distributed under an MIT license: http://codemirror.net/LICENSE
14989
 
14990
  (function(mod) {
14991
  if (typeof exports == "object" && typeof module == "object") // CommonJS
@@ -15052,7 +15393,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
15052
  });
15053
 
15054
  // CodeMirror, copyright (c) by Marijn Haverbeke and others
15055
- // Distributed under an MIT license: http://codemirror.net/LICENSE
15056
 
15057
  // Highlighting text that matches the selection
15058
  //
@@ -15143,7 +15484,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
15143
  var state = cm.state.matchHighlighter;
15144
  cm.addOverlay(state.overlay = makeOverlay(query, hasBoundary, style));
15145
  if (state.options.annotateScrollbar && cm.showMatchesOnScrollbar) {
15146
- var searchFor = hasBoundary ? new RegExp("\\b" + query + "\\b") : query;
15147
  state.matchesonscroll = cm.showMatchesOnScrollbar(searchFor, false,
15148
  {className: "CodeMirror-selection-highlight-scrollbar"});
15149
  }
@@ -15218,7 +15559,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
15218
  });
15219
 
15220
  // CodeMirror, copyright (c) by Marijn Haverbeke and others
15221
- // Distributed under an MIT license: http://codemirror.net/LICENSE
15222
 
15223
  /**
15224
  * Tag-closer extension for CodeMirror.
@@ -15272,13 +15613,14 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
15272
  function autoCloseGT(cm) {
15273
  if (cm.getOption("disableInput")) return CodeMirror.Pass;
15274
  var ranges = cm.listSelections(), replacements = [];
 
15275
  for (var i = 0; i < ranges.length; i++) {
15276
  if (!ranges[i].empty()) return CodeMirror.Pass;
15277
  var pos = ranges[i].head, tok = cm.getTokenAt(pos);
15278
  var inner = CodeMirror.innerMode(cm.getMode(), tok.state), state = inner.state;
15279
  if (inner.mode.name != "xml" || !state.tagName) return CodeMirror.Pass;
15280
 
15281
- var opt = cm.getOption("autoCloseTags"), html = inner.mode.configuration == "html";
15282
  var dontCloseTags = (typeof opt == "object" && opt.dontCloseTags) || (html && htmlDontClose);
15283
  var indentTags = (typeof opt == "object" && opt.indentTags) || (html && htmlIndent);
15284
 
@@ -15300,13 +15642,14 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
15300
  newPos: indent ? CodeMirror.Pos(pos.line + 1, 0) : CodeMirror.Pos(pos.line, pos.ch + 1)};
15301
  }
15302
 
 
15303
  for (var i = ranges.length - 1; i >= 0; i--) {
15304
  var info = replacements[i];
15305
  cm.replaceRange(info.text, ranges[i].head, ranges[i].anchor, "+insert");
15306
  var sel = cm.listSelections().slice(0);
15307
  sel[i] = {head: info.newPos, anchor: info.newPos};
15308
  cm.setSelections(sel);
15309
- if (info.indent) {
15310
  cm.indentLine(info.newPos.line, null, true);
15311
  cm.indentLine(info.newPos.line + 1, null, true);
15312
  }
@@ -15316,6 +15659,8 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
15316
  function autoCloseCurrent(cm, typingSlash) {
15317
  var ranges = cm.listSelections(), replacements = [];
15318
  var head = typingSlash ? "/" : "</";
 
 
15319
  for (var i = 0; i < ranges.length; i++) {
15320
  if (!ranges[i].empty()) return CodeMirror.Pass;
15321
  var pos = ranges[i].head, tok = cm.getTokenAt(pos);
@@ -15346,9 +15691,11 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
15346
  }
15347
  cm.replaceSelections(replacements);
15348
  ranges = cm.listSelections();
15349
- for (var i = 0; i < ranges.length; i++)
15350
- if (i == ranges.length - 1 || ranges[i].head.line < ranges[i + 1].head.line)
15351
- cm.indentLine(ranges[i].head.line);
 
 
15352
  }
15353
 
15354
  function autoCloseSlash(cm) {
@@ -15388,7 +15735,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
15388
  });
15389
 
15390
  // CodeMirror, copyright (c) by Marijn Haverbeke and others
15391
- // Distributed under an MIT license: http://codemirror.net/LICENSE
15392
 
15393
  (function(mod) {
15394
  if (typeof exports == "object" && typeof module == "object") // CommonJS
@@ -15412,6 +15759,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
15412
  cm.state.closeBrackets = null;
15413
  }
15414
  if (val) {
 
15415
  cm.state.closeBrackets = val;
15416
  cm.addKeyMap(keyMap);
15417
  }
@@ -15423,10 +15771,14 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
15423
  return defaults[name];
15424
  }
15425
 
15426
- var bind = defaults.pairs + "`";
15427
  var keyMap = {Backspace: handleBackspace, Enter: handleEnter};
15428
- for (var i = 0; i < bind.length; i++)
15429
- keyMap["'" + bind.charAt(i) + "'"] = handler(bind.charAt(i));
 
 
 
 
 
15430
 
15431
  function handler(ch) {
15432
  return function(cm) { return handleChar(cm, ch); };
@@ -15468,7 +15820,8 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
15468
  if (!around || explode.indexOf(around) % 2 != 0) return CodeMirror.Pass;
15469
  }
15470
  cm.operation(function() {
15471
- cm.replaceSelection("\n\n", null);
 
15472
  cm.execCommand("goCharLeft");
15473
  ranges = cm.listSelections();
15474
  for (var i = 0; i < ranges.length; i++) {
@@ -15512,15 +15865,14 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
15512
  else
15513
  curType = "skip";
15514
  } else if (identical && cur.ch > 1 && triples.indexOf(ch) >= 0 &&
15515
- cm.getRange(Pos(cur.line, cur.ch - 2), cur) == ch + ch &&
15516
- (cur.ch <= 2 || cm.getRange(Pos(cur.line, cur.ch - 3), Pos(cur.line, cur.ch - 2)) != ch)) {
15517
  curType = "addFour";
15518
  } else if (identical) {
15519
- if (!CodeMirror.isWordChar(next) && enteringString(cm, cur, ch)) curType = "both";
 
15520
  else return CodeMirror.Pass;
15521
- } else if (opening && (cm.getLine(cur.line).length == cur.ch ||
15522
- isClosingBracket(next, pairs) ||
15523
- /\s/.test(next))) {
15524
  curType = "both";
15525
  } else {
15526
  return CodeMirror.Pass;
@@ -15557,41 +15909,21 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
15557
  });
15558
  }
15559
 
15560
- function isClosingBracket(ch, pairs) {
15561
- var pos = pairs.lastIndexOf(ch);
15562
- return pos > -1 && pos % 2 == 1;
15563
- }
15564
-
15565
  function charsAround(cm, pos) {
15566
  var str = cm.getRange(Pos(pos.line, pos.ch - 1),
15567
  Pos(pos.line, pos.ch + 1));
15568
  return str.length == 2 ? str : null;
15569
  }
15570
 
15571
- // Project the token type that will exists after the given char is
15572
- // typed, and use it to determine whether it would cause the start
15573
- // of a string token.
15574
- function enteringString(cm, pos, ch) {
15575
- var line = cm.getLine(pos.line);
15576
- var token = cm.getTokenAt(pos);
15577
- if (/\bstring2?\b/.test(token.type) || stringStartsAfter(cm, pos)) return false;
15578
- var stream = new CodeMirror.StringStream(line.slice(0, pos.ch) + ch + line.slice(pos.ch), 4);
15579
- stream.pos = stream.start = token.start;
15580
- for (;;) {
15581
- var type1 = cm.getMode().token(stream, token.state);
15582
- if (stream.pos >= pos.ch + 1) return /\bstring2?\b/.test(type1);
15583
- stream.start = stream.pos;
15584
- }
15585
- }
15586
-
15587
  function stringStartsAfter(cm, pos) {
15588
  var token = cm.getTokenAt(Pos(pos.line, pos.ch + 1))
15589
- return /\bstring/.test(token.type) && token.start == pos.ch
 
15590
  }
15591
  });
15592
 
15593
  // CodeMirror, copyright (c) by Marijn Haverbeke and others
15594
- // Distributed under an MIT license: http://codemirror.net/LICENSE
15595
 
15596
  // A rough approximation of Sublime Text's keybindings
15597
  // Depends on addon/search/searchcursor.js and optionally addon/dialog/dialogs.js
@@ -15606,11 +15938,8 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
15606
  })(function(CodeMirror) {
15607
  "use strict";
15608
 
15609
- var map = CodeMirror.keyMap.sublime = {fallthrough: "default"};
15610
  var cmds = CodeMirror.commands;
15611
  var Pos = CodeMirror.Pos;
15612
- var mac = CodeMirror.keyMap["default"] == CodeMirror.keyMap.macDefault;
15613
- var ctrl = mac ? "Cmd-" : "Ctrl-";
15614
 
15615
  // This is not exactly Sublime's algorithm. I couldn't make heads or tails of that.
15616
  function findPosSubword(doc, start, dir) {
@@ -15644,16 +15973,10 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
15644
  });
15645
  }
15646
 
15647
- var goSubwordCombo = mac ? "Ctrl-" : "Alt-";
15648
-
15649
- cmds[map[goSubwordCombo + "Left"] = "goSubwordLeft"] = function(cm) { moveSubword(cm, -1); };
15650
- cmds[map[goSubwordCombo + "Right"] = "goSubwordRight"] = function(cm) { moveSubword(cm, 1); };
15651
 
15652
- if (mac) map["Cmd-Left"] = "goLineStartSmart";
15653
-
15654
- var scrollLineCombo = mac ? "Ctrl-Alt-" : "Ctrl-";
15655
-
15656
- cmds[map[scrollLineCombo + "Up"] = "scrollLineUp"] = function(cm) {
15657
  var info = cm.getScrollInfo();
15658
  if (!cm.somethingSelected()) {
15659
  var visibleBottomLine = cm.lineAtHeight(info.top + info.clientHeight, "local");
@@ -15662,7 +15985,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
15662
  }
15663
  cm.scrollTo(null, info.top - cm.defaultTextHeight());
15664
  };
15665
- cmds[map[scrollLineCombo + "Down"] = "scrollLineDown"] = function(cm) {
15666
  var info = cm.getScrollInfo();
15667
  if (!cm.somethingSelected()) {
15668
  var visibleTopLine = cm.lineAtHeight(info.top, "local")+1;
@@ -15672,7 +15995,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
15672
  cm.scrollTo(null, info.top + cm.defaultTextHeight());
15673
  };
15674
 
15675
- cmds[map["Shift-" + ctrl + "L"] = "splitSelectionByLine"] = function(cm) {
15676
  var ranges = cm.listSelections(), lineRanges = [];
15677
  for (var i = 0; i < ranges.length; i++) {
15678
  var from = ranges[i].from(), to = ranges[i].to();
@@ -15684,14 +16007,12 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
15684
  cm.setSelections(lineRanges, 0);
15685
  };
15686
 
15687
- map["Shift-Tab"] = "indentLess";
15688
-
15689
- cmds[map["Esc"] = "singleSelectionTop"] = function(cm) {
15690
  var range = cm.listSelections()[0];
15691
  cm.setSelection(range.anchor, range.head, {scroll: false});
15692
  };
15693
 
15694
- cmds[map[ctrl + "L"] = "selectLine"] = function(cm) {
15695
  var ranges = cm.listSelections(), extended = [];
15696
  for (var i = 0; i < ranges.length; i++) {
15697
  var range = ranges[i];
@@ -15701,8 +16022,6 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
15701
  cm.setSelections(extended);
15702
  };
15703
 
15704
- map["Shift-Ctrl-K"] = "deleteLine";
15705
-
15706
  function insertLine(cm, above) {
15707
  if (cm.isReadOnly()) return CodeMirror.Pass
15708
  cm.operation(function() {
@@ -15721,9 +16040,9 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
15721
  cm.execCommand("indentAuto");
15722
  }
15723
 
15724
- cmds[map[ctrl + "Enter"] = "insertLineAfter"] = function(cm) { return insertLine(cm, false); };
15725
 
15726
- cmds[map["Shift-" + ctrl + "Enter"] = "insertLineBefore"] = function(cm) { return insertLine(cm, true); };
15727
 
15728
  function wordAt(cm, pos) {
15729
  var start = pos.ch, end = start, line = cm.getLine(pos.line);
@@ -15732,7 +16051,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
15732
  return {from: Pos(pos.line, start), to: Pos(pos.line, end), word: line.slice(start, end)};
15733
  }
15734
 
15735
- cmds[map[ctrl + "D"] = "selectNextOccurrence"] = function(cm) {
15736
  var from = cm.getCursor("from"), to = cm.getCursor("to");
15737
  var fullWord = cm.state.sublimeFindFullWord == cm.doc.sel;
15738
  if (CodeMirror.cmpPos(from, to) == 0) {
@@ -15761,18 +16080,22 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
15761
  var ranges = cm.listSelections(), newRanges = [];
15762
  for (var i = 0; i < ranges.length; i++) {
15763
  var range = ranges[i];
15764
- var newAnchor = cm.findPosV(range.anchor, dir, "line");
15765
- var newHead = cm.findPosV(range.head, dir, "line");
 
 
 
 
 
 
15766
  var newRange = {anchor: newAnchor, head: newHead};
15767
  newRanges.push(range);
15768
  newRanges.push(newRange);
15769
  }
15770
  cm.setSelections(newRanges);
15771
  }
15772
-
15773
- var addCursorToLineCombo = mac ? "Shift-Cmd" : 'Alt-Ctrl';
15774
- cmds[map[addCursorToLineCombo + "Up"] = "addCursorToPrevLine"] = function(cm) { addCursorToSelection(cm, -1); };
15775
- cmds[map[addCursorToLineCombo + "Down"] = "addCursorToNextLine"] = function(cm) { addCursorToSelection(cm, 1); };
15776
 
15777
  function isSelectedRange(ranges, from, to) {
15778
  for (var i = 0; i < ranges.length; i++)
@@ -15790,9 +16113,15 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
15790
  var closing = cm.scanForBracket(pos, 1);
15791
  if (!closing) return false;
15792
  if (closing.ch == mirror.charAt(mirror.indexOf(opening.ch) + 1)) {
15793
- newRanges.push({anchor: Pos(opening.pos.line, opening.pos.ch + 1),
15794
- head: closing.pos});
15795
- break;
 
 
 
 
 
 
15796
  }
15797
  pos = Pos(closing.pos.line, closing.pos.ch + 1);
15798
  }
@@ -15801,14 +16130,14 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
15801
  return true;
15802
  }
15803
 
15804
- cmds[map["Shift-" + ctrl + "Space"] = "selectScope"] = function(cm) {
15805
  selectBetweenBrackets(cm) || cm.execCommand("selectAll");
15806
  };
15807
- cmds[map["Shift-" + ctrl + "M"] = "selectBetweenBrackets"] = function(cm) {
15808
  if (!selectBetweenBrackets(cm)) return CodeMirror.Pass;
15809
  };
15810
 
15811
- cmds[map[ctrl + "M"] = "goToBracket"] = function(cm) {
15812
  cm.extendSelectionsBy(function(range) {
15813
  var next = cm.scanForBracket(range.head, 1);
15814
  if (next && CodeMirror.cmpPos(next.pos, range.head) != 0) return next.pos;
@@ -15817,9 +16146,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
15817
  });
15818
  };
15819
 
15820
- var swapLineCombo = mac ? "Cmd-Ctrl-" : "Shift-Ctrl-";
15821
-
15822
- cmds[map[swapLineCombo + "Up"] = "swapLineUp"] = function(cm) {
15823
  if (cm.isReadOnly()) return CodeMirror.Pass
15824
  var ranges = cm.listSelections(), linesToMove = [], at = cm.firstLine() - 1, newSels = [];
15825
  for (var i = 0; i < ranges.length; i++) {
@@ -15846,7 +16173,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
15846
  });
15847
  };
15848
 
15849
- cmds[map[swapLineCombo + "Down"] = "swapLineDown"] = function(cm) {
15850
  if (cm.isReadOnly()) return CodeMirror.Pass
15851
  var ranges = cm.listSelections(), linesToMove = [], at = cm.lastLine() + 1;
15852
  for (var i = ranges.length - 1; i >= 0; i--) {
@@ -15870,11 +16197,11 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
15870
  });
15871
  };
15872
 
15873
- cmds[map[ctrl + "/"] = "toggleCommentIndented"] = function(cm) {
15874
  cm.toggleComment({ indent: true });
15875
  }
15876
 
15877
- cmds[map[ctrl + "J"] = "joinLines"] = function(cm) {
15878
  var ranges = cm.listSelections(), joined = [];
15879
  for (var i = 0; i < ranges.length; i++) {
15880
  var range = ranges[i], from = range.from();
@@ -15902,7 +16229,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
15902
  });
15903
  };
15904
 
15905
- cmds[map["Shift-" + ctrl + "D"] = "duplicateLine"] = function(cm) {
15906
  cm.operation(function() {
15907
  var rangeCount = cm.listSelections().length;
15908
  for (var i = 0; i < rangeCount; i++) {
@@ -15916,7 +16243,6 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
15916
  });
15917
  };
15918
 
15919
- if (!mac) map[ctrl + "T"] = "transposeChars";
15920
 
15921
  function sortLines(cm, caseSensitive) {
15922
  if (cm.isReadOnly()) return CodeMirror.Pass
@@ -15954,10 +16280,10 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
15954
  });
15955
  }
15956
 
15957
- cmds[map["F9"] = "sortLines"] = function(cm) { sortLines(cm, true); };
15958
- cmds[map[ctrl + "F9"] = "sortLinesInsensitive"] = function(cm) { sortLines(cm, false); };
15959
 
15960
- cmds[map["F2"] = "nextBookmark"] = function(cm) {
15961
  var marks = cm.state.sublimeBookmarks;
15962
  if (marks) while (marks.length) {
15963
  var current = marks.shift();
@@ -15969,7 +16295,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
15969
  }
15970
  };
15971
 
15972
- cmds[map["Shift-F2"] = "prevBookmark"] = function(cm) {
15973
  var marks = cm.state.sublimeBookmarks;
15974
  if (marks) while (marks.length) {
15975
  marks.unshift(marks.pop());
@@ -15981,12 +16307,12 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
15981
  }
15982
  };
15983
 
15984
- cmds[map[ctrl + "F2"] = "toggleBookmark"] = function(cm) {
15985
  var ranges = cm.listSelections();
15986
  var marks = cm.state.sublimeBookmarks || (cm.state.sublimeBookmarks = []);
15987
  for (var i = 0; i < ranges.length; i++) {
15988
  var from = ranges[i].from(), to = ranges[i].to();
15989
- var found = cm.findMarks(from, to);
15990
  for (var j = 0; j < found.length; j++) {
15991
  if (found[j].sublimeBookmark) {
15992
  found[j].clear();
@@ -16001,13 +16327,13 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
16001
  }
16002
  };
16003
 
16004
- cmds[map["Shift-" + ctrl + "F2"] = "clearBookmarks"] = function(cm) {
16005
  var marks = cm.state.sublimeBookmarks;
16006
  if (marks) for (var i = 0; i < marks.length; i++) marks[i].clear();
16007
  marks.length = 0;
16008
  };
16009
 
16010
- cmds[map["Alt-F2"] = "selectBookmarks"] = function(cm) {
16011
  var marks = cm.state.sublimeBookmarks, ranges = [];
16012
  if (marks) for (var i = 0; i < marks.length; i++) {
16013
  var found = marks[i].find();
@@ -16020,10 +16346,6 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
16020
  cm.setSelections(ranges, 0);
16021
  };
16022
 
16023
- map["Alt-Q"] = "wrapLines";
16024
-
16025
- var cK = ctrl + "K ";
16026
-
16027
  function modifyWordOrSelection(cm, mod) {
16028
  cm.operation(function() {
16029
  var ranges = cm.listSelections(), indices = [], replacements = [];
@@ -16043,9 +16365,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
16043
  });
16044
  }
16045
 
16046
- map[cK + ctrl + "Backspace"] = "delLineLeft";
16047
-
16048
- cmds[map["Backspace"] = "smartBackspace"] = function(cm) {
16049
  if (cm.somethingSelected()) return CodeMirror.Pass;
16050
 
16051
  cm.operation(function() {
@@ -16073,7 +16393,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
16073
  });
16074
  };
16075
 
16076
- cmds[map[cK + ctrl + "K"] = "delLineRight"] = function(cm) {
16077
  cm.operation(function() {
16078
  var ranges = cm.listSelections();
16079
  for (var i = ranges.length - 1; i >= 0; i--)
@@ -16082,22 +16402,22 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
16082
  });
16083
  };
16084
 
16085
- cmds[map[cK + ctrl + "U"] = "upcaseAtCursor"] = function(cm) {
16086
  modifyWordOrSelection(cm, function(str) { return str.toUpperCase(); });
16087
  };
16088
- cmds[map[cK + ctrl + "L"] = "downcaseAtCursor"] = function(cm) {
16089
  modifyWordOrSelection(cm, function(str) { return str.toLowerCase(); });
16090
  };
16091
 
16092
- cmds[map[cK + ctrl + "Space"] = "setSublimeMark"] = function(cm) {
16093
  if (cm.state.sublimeMark) cm.state.sublimeMark.clear();
16094
  cm.state.sublimeMark = cm.setBookmark(cm.getCursor());
16095
  };
16096
- cmds[map[cK + ctrl + "A"] = "selectToSublimeMark"] = function(cm) {
16097
  var found = cm.state.sublimeMark && cm.state.sublimeMark.find();
16098
  if (found) cm.setSelection(cm.getCursor(), found);
16099
  };
16100
- cmds[map[cK + ctrl + "W"] = "deleteToSublimeMark"] = function(cm) {
16101
  var found = cm.state.sublimeMark && cm.state.sublimeMark.find();
16102
  if (found) {
16103
  var from = cm.getCursor(), to = found;
@@ -16106,7 +16426,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
16106
  cm.replaceRange("", from, to);
16107
  }
16108
  };
16109
- cmds[map[cK + ctrl + "X"] = "swapWithSublimeMark"] = function(cm) {
16110
  var found = cm.state.sublimeMark && cm.state.sublimeMark.find();
16111
  if (found) {
16112
  cm.state.sublimeMark.clear();
@@ -16114,39 +16434,16 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
16114
  cm.setCursor(found);
16115
  }
16116
  };
16117
- cmds[map[cK + ctrl + "Y"] = "sublimeYank"] = function(cm) {
16118
  if (cm.state.sublimeKilled != null)
16119
  cm.replaceSelection(cm.state.sublimeKilled, null, "paste");
16120
  };
16121
 
16122
- map[cK + ctrl + "G"] = "clearBookmarks";
16123
- cmds[map[cK + ctrl + "C"] = "showInCenter"] = function(cm) {
16124
  var pos = cm.cursorCoords(null, "local");
16125
  cm.scrollTo(null, (pos.top + pos.bottom) / 2 - cm.getScrollInfo().clientHeight / 2);
16126
  };
16127
 
16128
- var selectLinesCombo = mac ? "Ctrl-Shift-" : "Ctrl-Alt-";
16129
- cmds[map[selectLinesCombo + "Up"] = "selectLinesUpward"] = function(cm) {
16130
- cm.operation(function() {
16131
- var ranges = cm.listSelections();
16132
- for (var i = 0; i < ranges.length; i++) {
16133
- var range = ranges[i];
16134
- if (range.head.line > cm.firstLine())
16135
- cm.addSelection(Pos(range.head.line - 1, range.head.ch));
16136
- }
16137
- });
16138
- };
16139
- cmds[map[selectLinesCombo + "Down"] = "selectLinesDownward"] = function(cm) {
16140
- cm.operation(function() {
16141
- var ranges = cm.listSelections();
16142
- for (var i = 0; i < ranges.length; i++) {
16143
- var range = ranges[i];
16144
- if (range.head.line < cm.lastLine())
16145
- cm.addSelection(Pos(range.head.line + 1, range.head.ch));
16146
- }
16147
- });
16148
- };
16149
-
16150
  function getTarget(cm) {
16151
  var from = cm.getCursor("from"), to = cm.getCursor("to");
16152
  if (CodeMirror.cmpPos(from, to) == 0) {
@@ -16175,9 +16472,9 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
16175
  cm.setSelection(target.from, target.to);
16176
  }
16177
  };
16178
- cmds[map[ctrl + "F3"] = "findUnder"] = function(cm) { findAndGoTo(cm, true); };
16179
- cmds[map["Shift-" + ctrl + "F3"] = "findUnderPrevious"] = function(cm) { findAndGoTo(cm,false); };
16180
- cmds[map["Alt-F3"] = "findAllUnder"] = function(cm) {
16181
  var target = getTarget(cm);
16182
  if (!target) return;
16183
  var cur = cm.getSearchCursor(target.query);
@@ -16191,21 +16488,134 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
16191
  cm.setSelections(matches, primaryIndex);
16192
  };
16193
 
16194
- map["Shift-" + ctrl + "["] = "fold";
16195
- map["Shift-" + ctrl + "]"] = "unfold";
16196
- map[cK + ctrl + "0"] = map[cK + ctrl + "J"] = "unfoldAll";
16197
 
16198
- map[ctrl + "I"] = "findIncremental";
16199
- map["Shift-" + ctrl + "I"] = "findIncrementalReverse";
16200
- map[ctrl + "H"] = "replace";
16201
- map["F3"] = "findNext";
16202
- map["Shift-F3"] = "findPrev";
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16203
 
16204
- CodeMirror.normalizeKeyMap(map);
 
16205
  });
16206
 
16207
  // CodeMirror, copyright (c) by Marijn Haverbeke and others
16208
- // Distributed under an MIT license: http://codemirror.net/LICENSE
16209
 
16210
  (function(mod) {
16211
  if (typeof exports == "object" && typeof module == "object") // CommonJS
@@ -16236,16 +16646,16 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
16236
 
16237
  var lastKill = null;
16238
 
16239
- function kill(cm, from, to, mayGrow, text) {
16240
  if (text == null) text = cm.getRange(from, to);
16241
 
16242
- if (mayGrow && lastKill && lastKill.cm == cm && posEq(from, lastKill.pos) && cm.isClean(lastKill.gen))
16243
  growRingTop(text);
16244
- else
16245
  addToRing(text);
16246
  cm.replaceRange("", from, to, "+delete");
16247
 
16248
- if (mayGrow) lastKill = {cm: cm, pos: from, gen: cm.changeGeneration()};
16249
  else lastKill = null;
16250
  }
16251
 
@@ -16357,22 +16767,22 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
16357
  return f;
16358
  }
16359
 
16360
- function killTo(cm, by, dir) {
16361
  var selections = cm.listSelections(), cursor;
16362
  var i = selections.length;
16363
  while (i--) {
16364
  cursor = selections[i].head;
16365
- kill(cm, cursor, findEnd(cm, cursor, by, dir), true);
16366
  }
16367
  }
16368
 
16369
- function killRegion(cm) {
16370
  if (cm.somethingSelected()) {
16371
  var selections = cm.listSelections(), selection;
16372
  var i = selections.length;
16373
  while (i--) {
16374
  selection = selections[i];
16375
- kill(cm, selection.anchor, selection.head);
16376
  }
16377
  return true;
16378
  }
@@ -16482,7 +16892,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
16482
  // Actual keymap
16483
 
16484
  var keyMap = CodeMirror.keyMap.emacs = CodeMirror.normalizeKeyMap({
16485
- "Ctrl-W": function(cm) {kill(cm, cm.getCursor("start"), cm.getCursor("end"));},
16486
  "Ctrl-K": repeated(function(cm) {
16487
  var start = cm.getCursor(), end = cm.clipPos(Pos(start.line));
16488
  var text = cm.getRange(start, end);
@@ -16490,7 +16900,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
16490
  text += "\n";
16491
  end = Pos(start.line + 1, 0);
16492
  }
16493
- kill(cm, start, end, true, text);
16494
  }),
16495
  "Alt-W": function(cm) {
16496
  addToRing(cm.getSelection());
@@ -16507,14 +16917,15 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
16507
 
16508
  "Ctrl-F": move(byChar, 1), "Ctrl-B": move(byChar, -1),
16509
  "Right": move(byChar, 1), "Left": move(byChar, -1),
16510
- "Ctrl-D": function(cm) { killTo(cm, byChar, 1); },
16511
- "Delete": function(cm) { killRegion(cm) || killTo(cm, byChar, 1); },
16512
- "Ctrl-H": function(cm) { killTo(cm, byChar, -1); },
16513
- "Backspace": function(cm) { killRegion(cm) || killTo(cm, byChar, -1); },
16514
 
16515
  "Alt-F": move(byWord, 1), "Alt-B": move(byWord, -1),
16516
- "Alt-D": function(cm) { killTo(cm, byWord, 1); },
16517
- "Alt-Backspace": function(cm) { killTo(cm, byWord, -1); },
 
16518
 
16519
  "Ctrl-N": move(byLine, 1), "Ctrl-P": move(byLine, -1),
16520
  "Down": move(byLine, 1), "Up": move(byLine, -1),
@@ -16527,11 +16938,11 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
16527
  "Ctrl-Up": move(byParagraph, -1), "Ctrl-Down": move(byParagraph, 1),
16528
 
16529
  "Alt-A": move(bySentence, -1), "Alt-E": move(bySentence, 1),
16530
- "Alt-K": function(cm) { killTo(cm, bySentence, 1); },
16531
 
16532
- "Ctrl-Alt-K": function(cm) { killTo(cm, byExpr, 1); },
16533
- "Ctrl-Alt-Backspace": function(cm) { killTo(cm, byExpr, -1); },
16534
- "Ctrl-Alt-F": move(byExpr, 1), "Ctrl-Alt-B": move(byExpr, -1),
16535
 
16536
  "Shift-Ctrl-Alt-2": function(cm) {
16537
  var cursor = cm.getCursor();
@@ -16604,7 +17015,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
16604
  "Ctrl-X F": "open",
16605
  "Ctrl-X U": repeated("undo"),
16606
  "Ctrl-X K": "close",
16607
- "Ctrl-X Delete": function(cm) { kill(cm, cm.getCursor(), bySentence(cm, cm.getCursor(), 1), true); },
16608
  "Ctrl-X H": "selectAll",
16609
 
16610
  "Ctrl-Q Tab": repeated("insertTab"),
@@ -16622,7 +17033,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
16622
  });
16623
 
16624
  // CodeMirror, copyright (c) by Marijn Haverbeke and others
16625
- // Distributed under an MIT license: http://codemirror.net/LICENSE
16626
 
16627
  /**
16628
  * Supported keybindings:
@@ -16716,6 +17127,8 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
16716
  { keys: 'gE', type: 'motion', motion: 'moveByWords', motionArgs: { forward: false, wordEnd: true, bigWord: true, inclusive: true }},
16717
  { keys: '{', type: 'motion', motion: 'moveByParagraph', motionArgs: { forward: false, toJumplist: true }},
16718
  { keys: '}', type: 'motion', motion: 'moveByParagraph', motionArgs: { forward: true, toJumplist: true }},
 
 
16719
  { keys: '<C-f>', type: 'motion', motion: 'moveByPage', motionArgs: { forward: true }},
16720
  { keys: '<C-b>', type: 'motion', motion: 'moveByPage', motionArgs: { forward: false }},
16721
  { keys: '<C-d>', type: 'motion', motion: 'moveByScroll', motionArgs: { forward: true, explicitRepeat: true }},
@@ -16878,20 +17291,67 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
16878
  }
16879
 
16880
  function detachVimMap(cm, next) {
16881
- if (this == CodeMirror.keyMap.vim)
16882
  CodeMirror.rmClass(cm.getWrapperElement(), "cm-fat-cursor");
 
 
 
 
 
16883
 
16884
  if (!next || next.attach != attachVimMap)
16885
  leaveVimMode(cm);
16886
  }
16887
  function attachVimMap(cm, prev) {
16888
- if (this == CodeMirror.keyMap.vim)
16889
  CodeMirror.addClass(cm.getWrapperElement(), "cm-fat-cursor");
 
 
 
 
 
16890
 
16891
  if (!prev || prev.attach != attachVimMap)
16892
  enterVimMode(cm);
16893
  }
16894
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16895
  // Deprecated, simply setting the keymap works again.
16896
  CodeMirror.defineOption('vimMode', false, function(cm, val, prev) {
16897
  if (val && cm.getOption("keyMap") != "vim")
@@ -16999,6 +17459,9 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
16999
  function isWhiteSpaceString(k) {
17000
  return (/^\s*$/).test(k);
17001
  }
 
 
 
17002
  function inArray(val, arr) {
17003
  for (var i = 0; i < arr.length; i++) {
17004
  if (arr[i] == val) {
@@ -17417,7 +17880,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
17417
  }
17418
 
17419
  function handleKeyNonInsertMode() {
17420
- if (handleMacroRecording() || handleEsc()) { return true; };
17421
 
17422
  var keys = vim.inputState.keyBuffer = vim.inputState.keyBuffer + key;
17423
  if (/^[1-9]\d*$/.test(keys)) { return true; }
@@ -17442,7 +17905,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
17442
  if (vim.insertMode) { command = handleKeyInsertMode(); }
17443
  else { command = handleKeyNonInsertMode(); }
17444
  if (command === false) {
17445
- return undefined;
17446
  } else if (command === true) {
17447
  // TODO: Look into using CodeMirror's multi-key handling.
17448
  // Return no-op since we are caching the key. Counts as handled, but
@@ -18002,7 +18465,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
18002
  } else {
18003
  if (vim.visualMode) {
18004
  showPrompt(cm, { onClose: onPromptClose, prefix: ':', value: '\'<,\'>',
18005
- onKeyDown: onPromptKeyDown});
18006
  } else {
18007
  showPrompt(cm, { onClose: onPromptClose, prefix: ':',
18008
  onKeyDown: onPromptKeyDown});
@@ -18387,6 +18850,10 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
18387
  var dir = motionArgs.forward ? 1 : -1;
18388
  return findParagraph(cm, head, motionArgs.repeat, dir);
18389
  },
 
 
 
 
18390
  moveByScroll: function(cm, head, motionArgs, vim) {
18391
  var scrollbox = cm.getScrollInfo();
18392
  var curEnd = null;
@@ -18657,7 +19124,8 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
18657
  vimGlobalState.registerController.pushText(
18658
  args.registerName, 'delete', text,
18659
  args.linewise, vim.visualBlock);
18660
- return clipCursorToContent(cm, finalHead);
 
18661
  },
18662
  indent: function(cm, args, ranges) {
18663
  var vim = cm.state.vim;
@@ -19212,25 +19680,32 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
19212
  incrementNumberToken: function(cm, actionArgs) {
19213
  var cur = cm.getCursor();
19214
  var lineStr = cm.getLine(cur.line);
19215
- var re = /-?\d+/g;
19216
  var match;
19217
  var start;
19218
  var end;
19219
  var numberStr;
19220
- var token;
19221
  while ((match = re.exec(lineStr)) !== null) {
19222
- token = match[0];
19223
  start = match.index;
19224
- end = start + token.length;
19225
  if (cur.ch < end)break;
19226
  }
19227
  if (!actionArgs.backtrack && (end <= cur.ch))return;
19228
- if (token) {
 
 
19229
  var increment = actionArgs.increase ? 1 : -1;
19230
- var number = parseInt(token) + (increment * actionArgs.repeat);
 
 
 
 
 
 
 
 
19231
  var from = Pos(cur.line, start);
19232
  var to = Pos(cur.line, end);
19233
- numberStr = number.toString();
19234
  cm.replaceRange(numberStr, from, to);
19235
  } else {
19236
  return;
@@ -19867,7 +20342,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
19867
  return cur;
19868
  }
19869
 
19870
- /**
19871
  * Returns the boundaries of the next word. If the cursor in the middle of
19872
  * the word, then returns the boundaries of the current word, starting at
19873
  * the cursor. If the cursor is at the start/end of a word, and we are going
@@ -20102,6 +20577,179 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
20102
  return { start: start, end: end };
20103
  }
20104
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20105
  // TODO: perhaps this finagling of start and end positions belonds
20106
  // in codemirror/replaceRange?
20107
  function selectCompanionObject(cm, head, symb, inclusive) {
@@ -20120,8 +20768,8 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
20120
  // cursor is on a matching open bracket.
20121
  var offset = curChar === openSym ? 1 : 0;
20122
 
20123
- start = cm.scanForBracket(Pos(cur.line, cur.ch + offset), -1, null, {'bracketRegex': bracketRegexp});
20124
- end = cm.scanForBracket(Pos(cur.line, cur.ch + offset), 1, null, {'bracketRegex': bracketRegexp});
20125
 
20126
  if (!start || !end) {
20127
  return { start: cur, end: cur };
@@ -20251,7 +20899,15 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
20251
  }
20252
  }
20253
  function splitBySlash(argString) {
20254
- var slashes = findUnescapedSlashes(argString) || [];
 
 
 
 
 
 
 
 
20255
  if (!slashes.length) return [];
20256
  var tokens = [];
20257
  // in case of strings like foo/bar
@@ -20263,12 +20919,15 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
20263
  return tokens;
20264
  }
20265
 
20266
- function findUnescapedSlashes(str) {
 
 
 
20267
  var escapeNextChar = false;
20268
  var slashes = [];
20269
  for (var i = 0; i < str.length; i++) {
20270
  var c = str.charAt(i);
20271
- if (!escapeNextChar && c == '/') {
20272
  slashes.push(i);
20273
  }
20274
  escapeNextChar = !escapeNextChar && (c == '\\');
@@ -20601,6 +21260,15 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
20601
  var history = cm.doc.history.done;
20602
  var event = history[history.length - 2];
20603
  return event && event.ranges && event.ranges[0].head;
 
 
 
 
 
 
 
 
 
20604
  }
20605
 
20606
  var mark = vim.marks[markName];
@@ -21125,7 +21793,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
21125
  'any other getSearchCursor implementation.');
21126
  }
21127
  var argString = params.argString;
21128
- var tokens = argString ? splitBySlash(argString) : [];
21129
  var regexPart, replacePart = '', trailing, flagsPart, count;
21130
  var confirm = false; // Whether to confirm each replace.
21131
  var global = false; // True to replace all instances on a line, false to replace only 1.
@@ -21169,7 +21837,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
21169
  global = true;
21170
  flagsPart.replace('g', '');
21171
  }
21172
- regexPart = regexPart + '/' + flagsPart;
21173
  }
21174
  }
21175
  if (regexPart) {
@@ -21385,7 +22053,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
21385
  }
21386
  if (!confirm) {
21387
  replaceAll();
21388
- if (callback) { callback(); };
21389
  return;
21390
  }
21391
  showPrompt(cm, {
@@ -21411,7 +22079,8 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
21411
  // so as to update the ". register as expected in real vim.
21412
  var text = [];
21413
  if (!isPlaying) {
21414
- var selLength = lastChange.inVisualBlock ? vim.lastSelection.visualBlock.height : 1;
 
21415
  var changes = lastChange.changes;
21416
  var text = [];
21417
  var i = 0;
@@ -21520,7 +22189,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
21520
  exitInsertMode(cm);
21521
  }
21522
  }
21523
- };
21524
  macroModeState.isPlaying = false;
21525
  }
21526
 
@@ -21724,7 +22393,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
21724
  exitInsertMode(cm);
21725
  }
21726
  macroModeState.isPlaying = false;
21727
- };
21728
 
21729
  function repeatInsertModeChanges(cm, changes, repeat) {
21730
  function keyHandler(binding) {
@@ -21782,7 +22451,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
21782
  * @link http://arniebradfo.com/
21783
  * @author Petr Mukhortov
21784
  * @link http://mukhortov.com/
21785
- * @since 2.2.2
21786
  */
21787
 
21788
  // console.log(window.heshOptions); // from wordpress php
@@ -21817,7 +22486,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
21817
  isThemeOrPlugin: document.getElementById('newcontent') != null,
21818
 
21819
  isActive: function () {
21820
- return document.getElementsByClassName('CodeMirror')[0] != null;
21821
  },
21822
 
21823
  isVisualActive: function () {
@@ -22147,11 +22816,11 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
22147
 
22148
  case 'foldGutter':
22149
  editor.setOption('gutters', value ? ['CodeMirror-linenumbers', 'CodeMirror-foldgutter'] : []);
22150
- // break; // fallthrough expected here
22151
 
22152
  case 'tabSize':
22153
  editor.setOption('indentUnit', value); // indentUnit must always equal tabSize
22154
- // break; // fallthrough expected here
22155
 
22156
  default:
22157
  heshOptions[event.target.id] = value;
@@ -22394,7 +23063,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
22394
  var windowScrollPosition = { top: window.pageYOffset, left: window.pageXOffset }
22395
 
22396
  // update codemirror with the new textarea.value
22397
- editor.doc.setValue(editor.getTextArea().value);
22398
  editor.focus();
22399
 
22400
  var startLine = 0, endLine = 0, currentLine = 0;
@@ -22442,6 +23111,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
22442
 
22443
  function startEditor() {
22444
  if (state.isActive()) return;
 
22445
 
22446
  updateOptions();
22447
 
@@ -22480,6 +23150,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
22480
  if (!state.isActive()) return;
22481
  setSettingsPanelState('closed');
22482
  editor.toTextArea();
 
22483
  }
22484
 
22485
 
@@ -22499,6 +23170,7 @@ CodeMirror.registerHelper("fold", "indent", function(cm, start) {
22499
  }
22500
  }
22501
 
 
22502
  if (document.readyState !== 'complete') {
22503
  if (window.addEventListener) window.addEventListener('load', initialise, false);
22504
  else if (window.attachEvent) window.attachEvent('onload', initialise);
1
  // CodeMirror, copyright (c) by Marijn Haverbeke and others
2
+ // Distributed under an MIT license: https://codemirror.net/LICENSE
3
 
4
+ // This is CodeMirror (https://codemirror.net), a code editor
5
  // implemented in JavaScript on top of the browser's DOM.
6
  //
7
  // You can find some technical background for some of the code below
279
  }
280
 
281
  // Returns the value from the range [`from`; `to`] that satisfies
282
+ // `pred` and is closest to `from`. Assumes that at least `to`
283
+ // satisfies `pred`. Supports `from` being greater than `to`.
284
  function findFirst(pred, from, to) {
285
+ // At any point we are certain `to` satisfies `pred`, don't know
286
+ // whether `from` does.
287
+ var dir = from > to ? -1 : 1;
288
  for (;;) {
289
+ if (from == to) { return from }
290
+ var midF = (from + to) / 2, mid = dir < 0 ? Math.ceil(midF) : Math.floor(midF);
291
+ if (mid == from) { return pred(mid) ? from : to }
292
  if (pred(mid)) { to = mid; }
293
+ else { from = mid + dir; }
294
  }
295
  }
296
 
746
  function collapsedSpanAtStart(line) { return collapsedSpanAtSide(line, true) }
747
  function collapsedSpanAtEnd(line) { return collapsedSpanAtSide(line, false) }
748
 
749
+ function collapsedSpanAround(line, ch) {
750
+ var sps = sawCollapsedSpans && line.markedSpans, found;
751
+ if (sps) { for (var i = 0; i < sps.length; ++i) {
752
+ var sp = sps[i];
753
+ if (sp.marker.collapsed && (sp.from == null || sp.from < ch) && (sp.to == null || sp.to > ch) &&
754
+ (!found || compareCollapsedMarkers(found, sp.marker) < 0)) { found = sp.marker; }
755
+ } }
756
+ return found
757
+ }
758
+
759
  // Test whether there exists a collapsed span that partially
760
  // overlaps (covers the start or end, but not both) of a new span.
761
  // Such overlap is not allowed.
912
  // BIDI HELPERS
913
 
914
  function iterateBidiSections(order, from, to, f) {
915
+ if (!order) { return f(from, to, "ltr", 0) }
916
  var found = false;
917
  for (var i = 0; i < order.length; ++i) {
918
  var part = order[i];
919
  if (part.from < to && part.to > from || from == to && part.to == from) {
920
+ f(Math.max(part.from, from), Math.min(part.to, to), part.level == 1 ? "rtl" : "ltr", i);
921
  found = true;
922
  }
923
  }
1098
  if (pos < i$7) { order.splice(at, 0, new BidiSpan(1, pos, i$7)); }
1099
  }
1100
  }
1101
+ if (direction == "ltr") {
1102
+ if (order[0].level == 1 && (m = str.match(/^\s+/))) {
1103
+ order[0].from = m[0].length;
1104
+ order.unshift(new BidiSpan(0, 0, m[0].length));
1105
+ }
1106
+ if (lst(order).level == 1 && (m = str.match(/\s+$/))) {
1107
+ lst(order).to -= m[0].length;
1108
+ order.push(new BidiSpan(0, len - m[0].length, len));
1109
+ }
1110
  }
1111
 
1112
  return direction == "rtl" ? order.reverse() : order
1122
  return order
1123
  }
1124
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1125
  // EVENT HANDLING
1126
 
1127
  // Lightweight event framework. on/off also work on DOM nodes,
1483
  var oracle = this.lineOracle;
1484
  return oracle && oracle.lookAhead(n)
1485
  };
1486
+ StringStream.prototype.baseToken = function () {
1487
+ var oracle = this.lineOracle;
1488
+ return oracle && oracle.baseToken(this.pos)
1489
+ };
1490
 
1491
  var SavedContext = function(state, lookAhead) {
1492
  this.state = state;
1498
  this.doc = doc;
1499
  this.line = line;
1500
  this.maxLookAhead = lookAhead || 0;
1501
+ this.baseTokens = null;
1502
+ this.baseTokenPos = 1;
1503
  };
1504
 
1505
  Context.prototype.lookAhead = function (n) {
1508
  return line
1509
  };
1510
 
1511
+ Context.prototype.baseToken = function (n) {
1512
+ var this$1 = this;
1513
+
1514
+ if (!this.baseTokens) { return null }
1515
+ while (this.baseTokens[this.baseTokenPos] <= n)
1516
+ { this$1.baseTokenPos += 2; }
1517
+ var type = this.baseTokens[this.baseTokenPos + 1];
1518
+ return {type: type && type.replace(/( |^)overlay .*/, ""),
1519
+ size: this.baseTokens[this.baseTokenPos] - n}
1520
+ };
1521
+
1522
  Context.prototype.nextLine = function () {
1523
  this.line++;
1524
  if (this.maxLookAhead > 0) { this.maxLookAhead--; }
1552
 
1553
  // Run overlays, adjust style array.
1554
  var loop = function ( o ) {
1555
+ context.baseTokens = st;
1556
  var overlay = cm.state.overlays[o], i = 1, at = 0;
1557
  context.state = true;
1558
  runMode(cm, line.text, overlay.mode, context, function (end, style) {
1576
  }
1577
  }
1578
  }, lineClasses);
1579
+ context.state = state;
1580
+ context.baseTokens = null;
1581
+ context.baseTokenPos = 1;
1582
  };
1583
 
1584
  for (var o = 0; o < cm.state.overlays.length; ++o) loop( o );
 
1585
 
1586
  return {styles: st, classes: lineClasses.bgClass || lineClasses.textClass ? lineClasses : null}
1587
  }
2652
  return window.pageYOffset || (document.documentElement || document.body).scrollTop
2653
  }
2654
 
2655
+ function widgetTopHeight(lineObj) {
2656
+ var height = 0;
2657
+ if (lineObj.widgets) { for (var i = 0; i < lineObj.widgets.length; ++i) { if (lineObj.widgets[i].above)
2658
+ { height += widgetHeight(lineObj.widgets[i]); } } }
2659
+ return height
2660
+ }
2661
+
2662
  // Converts a {top, bottom, left, right} box from line-local
2663
  // coordinates into another coordinate system. Context may be one of
2664
  // "line", "div" (display.lineDiv), "local"./null (editor), "window",
2665
  // or "page".
2666
  function intoCoordSystem(cm, lineObj, rect, context, includeWidgets) {
2667
+ if (!includeWidgets) {
2668
+ var height = widgetTopHeight(lineObj);
2669
+ rect.top += height; rect.bottom += height;
2670
+ }
2671
  if (context == "line") { return rect }
2672
  if (!context) { context = "local"; }
2673
  var yOff = heightAtLine(lineObj);
2742
  if (!order) { return get(sticky == "before" ? ch - 1 : ch, sticky == "before") }
2743
 
2744
  function getBidi(ch, partPos, invert) {
2745
+ var part = order[partPos], right = part.level == 1;
2746
  return get(invert ? ch - 1 : ch, right != invert)
2747
  }
2748
  var partPos = getBidiPartAt(order, ch, sticky);
2790
  var lineObj = getLine(doc, lineN);
2791
  for (;;) {
2792
  var found = coordsCharInner(cm, lineObj, lineN, x, y);
2793
+ var collapsed = collapsedSpanAround(lineObj, found.ch + (found.xRel > 0 ? 1 : 0));
2794
+ if (!collapsed) { return found }
2795
+ var rangeEnd = collapsed.find(1);
2796
+ if (rangeEnd.line == lineN) { return rangeEnd }
2797
+ lineObj = getLine(doc, lineN = rangeEnd.line);
 
2798
  }
2799
  }
2800
 
2801
  function wrappedLineExtent(cm, lineObj, preparedMeasure, y) {
2802
+ y -= widgetTopHeight(lineObj);
2803
  var end = lineObj.text.length;
2804
+ var begin = findFirst(function (ch) { return measureCharPrepared(cm, preparedMeasure, ch - 1).bottom <= y; }, end, 0);
2805
+ end = findFirst(function (ch) { return measureCharPrepared(cm, preparedMeasure, ch).top > y; }, begin, end);
2806
  return {begin: begin, end: end}
2807
  }
2808
 
2809
  function wrappedLineExtentChar(cm, lineObj, preparedMeasure, target) {
2810
+ if (!preparedMeasure) { preparedMeasure = prepareMeasureForLine(cm, lineObj); }
2811
  var targetTop = intoCoordSystem(cm, lineObj, measureCharPrepared(cm, preparedMeasure, target), "line").top;
2812
  return wrappedLineExtent(cm, lineObj, preparedMeasure, targetTop)
2813
  }
2814
 
2815
+ // Returns true if the given side of a box is after the given
2816
+ // coordinates, in top-to-bottom, left-to-right order.
2817
+ function boxIsAfter(box, x, y, left) {
2818
+ return box.bottom <= y ? false : box.top > y ? true : (left ? box.left : box.right) > x
2819
+ }
2820
+
2821
  function coordsCharInner(cm, lineObj, lineNo$$1, x, y) {
2822
+ // Move y into line-local coordinate space
2823
  y -= heightAtLine(lineObj);
 
2824
  var preparedMeasure = prepareMeasureForLine(cm, lineObj);
2825
+ // When directly calling `measureCharPrepared`, we have to adjust
2826
+ // for the widgets at this line.
2827
+ var widgetHeight$$1 = widgetTopHeight(lineObj);
2828
+ var begin = 0, end = lineObj.text.length, ltr = true;
2829
+
2830
  var order = getOrder(lineObj, cm.doc.direction);
2831
+ // If the line isn't plain left-to-right text, first figure out
2832
+ // which bidi section the coordinates fall into.
2833
  if (order) {
2834
+ var part = (cm.options.lineWrapping ? coordsBidiPartWrapped : coordsBidiPart)
2835
+ (cm, lineObj, lineNo$$1, preparedMeasure, order, x, y);
2836
+ ltr = part.level != 1;
2837
+ // The awkward -1 offsets are needed because findFirst (called
2838
+ // on these below) will treat its first bound as inclusive,
2839
+ // second as exclusive, but we want to actually address the
2840
+ // characters in the part's range
2841
+ begin = ltr ? part.from : part.to - 1;
2842
+ end = ltr ? part.to : part.from - 1;
2843
+ }
2844
+
2845
+ // A binary search to find the first character whose bounding box
2846
+ // starts after the coordinates. If we run across any whose box wrap
2847
+ // the coordinates, store that.
2848
+ var chAround = null, boxAround = null;
2849
+ var ch = findFirst(function (ch) {
2850
+ var box = measureCharPrepared(cm, preparedMeasure, ch);
2851
+ box.top += widgetHeight$$1; box.bottom += widgetHeight$$1;
2852
+ if (!boxIsAfter(box, x, y, false)) { return false }
2853
+ if (box.top <= y && box.left <= x) {
2854
+ chAround = ch;
2855
+ boxAround = box;
 
 
 
 
 
 
 
 
 
2856
  }
2857
+ return true
2858
+ }, begin, end);
2859
+
2860
+ var baseX, sticky, outside = false;
2861
+ // If a box around the coordinates was found, use that
2862
+ if (boxAround) {
2863
+ // Distinguish coordinates nearer to the left or right side of the box
2864
+ var atLeft = x - boxAround.left < boxAround.right - x, atStart = atLeft == ltr;
2865
+ ch = chAround + (atStart ? 0 : 1);
2866
+ sticky = atStart ? "after" : "before";
2867
+ baseX = atLeft ? boxAround.left : boxAround.right;
2868
  } else {
2869
+ // (Adjust for extended bound, if necessary.)
2870
+ if (!ltr && (ch == end || ch == begin)) { ch++; }
2871
+ // To determine which side to associate with, get the box to the
2872
+ // left of the character and compare it's vertical position to the
2873
+ // coordinates
2874
+ sticky = ch == 0 ? "after" : ch == lineObj.text.length ? "before" :
2875
+ (measureCharPrepared(cm, preparedMeasure, ch - (ltr ? 1 : 0)).bottom + widgetHeight$$1 <= y) == ltr ?
2876
+ "after" : "before";
2877
+ // Now get accurate coordinates for this place, in order to get a
2878
+ // base X position
2879
+ var coords = cursorCoords(cm, Pos(lineNo$$1, ch, sticky), "line", lineObj, preparedMeasure);
2880
+ baseX = coords.left;
2881
+ outside = y < coords.top || y >= coords.bottom;
2882
+ }
2883
+
2884
+ ch = skipExtendingChars(lineObj.text, ch, 1);
2885
+ return PosWithInfo(lineNo$$1, ch, sticky, outside, x - baseX)
2886
+ }
2887
+
2888
+ function coordsBidiPart(cm, lineObj, lineNo$$1, preparedMeasure, order, x, y) {
2889
+ // Bidi parts are sorted left-to-right, and in a non-line-wrapping
2890
+ // situation, we can take this ordering to correspond to the visual
2891
+ // ordering. This finds the first part whose end is after the given
2892
+ // coordinates.
2893
+ var index = findFirst(function (i) {
2894
+ var part = order[i], ltr = part.level != 1;
2895
+ return boxIsAfter(cursorCoords(cm, Pos(lineNo$$1, ltr ? part.to : part.from, ltr ? "before" : "after"),
2896
+ "line", lineObj, preparedMeasure), x, y, true)
2897
+ }, 0, order.length - 1);
2898
+ var part = order[index];
2899
+ // If this isn't the first part, the part's start is also after
2900
+ // the coordinates, and the coordinates aren't on the same line as
2901
+ // that start, move one part back.
2902
+ if (index > 0) {
2903
+ var ltr = part.level != 1;
2904
+ var start = cursorCoords(cm, Pos(lineNo$$1, ltr ? part.from : part.to, ltr ? "after" : "before"),
2905
+ "line", lineObj, preparedMeasure);
2906
+ if (boxIsAfter(start, x, y, true) && start.top > y)
2907
+ { part = order[index - 1]; }
2908
+ }
2909
+ return part
2910
+ }
2911
+
2912
+ function coordsBidiPartWrapped(cm, lineObj, _lineNo, preparedMeasure, order, x, y) {
2913
+ // In a wrapped line, rtl text on wrapping boundaries can do things
2914
+ // that don't correspond to the ordering in our `order` array at
2915
+ // all, so a binary search doesn't work, and we want to return a
2916
+ // part that only spans one line so that the binary search in
2917
+ // coordsCharInner is safe. As such, we first find the extent of the
2918
+ // wrapped line, and then do a flat search in which we discard any
2919
+ // spans that aren't on the line.
2920
+ var ref = wrappedLineExtent(cm, lineObj, preparedMeasure, y);
2921
+ var begin = ref.begin;
2922
+ var end = ref.end;
2923
+ if (/\s/.test(lineObj.text.charAt(end - 1))) { end--; }
2924
+ var part = null, closestDist = null;
2925
+ for (var i = 0; i < order.length; i++) {
2926
+ var p = order[i];
2927
+ if (p.from >= end || p.to <= begin) { continue }
2928
+ var ltr = p.level != 1;
2929
+ var endX = measureCharPrepared(cm, preparedMeasure, ltr ? Math.min(end, p.to) - 1 : Math.max(begin, p.from)).right;
2930
+ // Weigh against spans ending before this, so that they are only
2931
+ // picked if nothing ends after
2932
+ var dist = endX < x ? x - endX + 1e9 : endX - x;
2933
+ if (!part || closestDist > dist) {
2934
+ part = p;
2935
+ closestDist = dist;
2936
+ }
2937
+ }
2938
+ if (!part) { part = order[order.length - 1]; }
2939
+ // Clip the part to the wrapped line.
2940
+ if (part.from < begin) { part = {from: begin, to: part.to, level: part.level}; }
2941
+ if (part.to > end) { part = {from: part.from, to: end, level: part.level}; }
2942
+ return part
2943
  }
2944
 
2945
  var measureText;
3065
  }
3066
 
3067
  function prepareSelection(cm, primary) {
3068
+ if ( primary === void 0 ) primary = true;
3069
+
3070
  var doc = cm.doc, result = {};
3071
  var curFragment = result.cursors = document.createDocumentFragment();
3072
  var selFragment = result.selection = document.createDocumentFragment();
3073
 
3074
  for (var i = 0; i < doc.sel.ranges.length; i++) {
3075
+ if (!primary && i == doc.sel.primIndex) { continue }
3076
  var range$$1 = doc.sel.ranges[i];
3077
  if (range$$1.from().line >= cm.display.viewTo || range$$1.to().line < cm.display.viewFrom) { continue }
3078
  var collapsed = range$$1.empty();
3103
  }
3104
  }
3105
 
3106
+ function cmpCoords(a, b) { return a.top - b.top || a.left - b.left }
3107
+
3108
  // Draws the given range as a highlighted selection
3109
  function drawSelectionRange(cm, range$$1, output) {
3110
  var display = cm.display, doc = cm.doc;
3111
  var fragment = document.createDocumentFragment();
3112
  var padding = paddingH(cm.display), leftSide = padding.left;
3113
  var rightSide = Math.max(display.sizerWidth, displayWidth(cm) - display.sizer.offsetLeft) - padding.right;
3114
+ var docLTR = doc.direction == "ltr";
3115
 
3116
  function add(left, top, width, bottom) {
3117
  if (top < 0) { top = 0; }
3128
  return charCoords(cm, Pos(line, ch), "div", lineObj, bias)
3129
  }
3130
 
3131
+ function wrapX(pos, dir, side) {
3132
+ var extent = wrappedLineExtentChar(cm, lineObj, null, pos);
3133
+ var prop = (dir == "ltr") == (side == "after") ? "left" : "right";
3134
+ var ch = side == "after" ? extent.begin : extent.end - (/\s/.test(lineObj.text.charAt(extent.end - 1)) ? 2 : 1);
3135
+ return coords(ch, prop)[prop]
3136
+ }
3137
+
3138
+ var order = getOrder(lineObj, doc.direction);
3139
+ iterateBidiSections(order, fromArg || 0, toArg == null ? lineLen : toArg, function (from, to, dir, i) {
3140
+ var ltr = dir == "ltr";
3141
+ var fromPos = coords(from, ltr ? "left" : "right");
3142
+ var toPos = coords(to - 1, ltr ? "right" : "left");
3143
+
3144
+ var openStart = fromArg == null && from == 0, openEnd = toArg == null && to == lineLen;
3145
+ var first = i == 0, last = !order || i == order.length - 1;
3146
+ if (toPos.top - fromPos.top <= 3) { // Single line
3147
+ var openLeft = (docLTR ? openStart : openEnd) && first;
3148
+ var openRight = (docLTR ? openEnd : openStart) && last;
3149
+ var left = openLeft ? leftSide : (ltr ? fromPos : toPos).left;
3150
+ var right = openRight ? rightSide : (ltr ? toPos : fromPos).right;
3151
+ add(left, fromPos.top, right - left, fromPos.bottom);
3152
+ } else { // Multiple lines
3153
+ var topLeft, topRight, botLeft, botRight;
3154
+ if (ltr) {
3155
+ topLeft = docLTR && openStart && first ? leftSide : fromPos.left;
3156
+ topRight = docLTR ? rightSide : wrapX(from, dir, "before");
3157
+ botLeft = docLTR ? leftSide : wrapX(to, dir, "after");
3158
+ botRight = docLTR && openEnd && last ? rightSide : toPos.right;
3159
+ } else {
3160
+ topLeft = !docLTR ? leftSide : wrapX(from, dir, "before");
3161
+ topRight = !docLTR && openStart && first ? rightSide : fromPos.right;
3162
+ botLeft = !docLTR && openEnd && last ? leftSide : toPos.left;
3163
+ botRight = !docLTR ? rightSide : wrapX(to, dir, "after");
3164
+ }
3165
+ add(topLeft, fromPos.top, topRight - topLeft, fromPos.bottom);
3166
+ if (fromPos.bottom < toPos.top) { add(leftSide, fromPos.bottom, null, toPos.top); }
3167
+ add(botLeft, toPos.top, botRight - botLeft, toPos.bottom);
3168
+ }
3169
+
3170
+ if (!start || cmpCoords(fromPos, start) < 0) { start = fromPos; }
3171
+ if (cmpCoords(toPos, start) < 0) { start = toPos; }
3172
+ if (!end || cmpCoords(fromPos, end) < 0) { end = fromPos; }
3173
+ if (cmpCoords(toPos, end) < 0) { end = toPos; }
3174
  });
3175
  return {start: start, end: end}
3176
  }
3285
  // Read and store the height of line widgets associated with the
3286
  // given line.
3287
  function updateWidgetHeight(line) {
3288
+ if (line.widgets) { for (var i = 0; i < line.widgets.length; ++i) {
3289
+ var w = line.widgets[i], parent = w.node.parentNode;
3290
+ if (parent) { w.height = parent.offsetHeight; }
3291
+ } }
3292
  }
3293
 
3294
  // Compute the lines that are visible in a given viewport (defaults
3554
  this.cm = cm;
3555
  var vert = this.vert = elt("div", [elt("div", null, null, "min-width: 1px")], "CodeMirror-vscrollbar");
3556
  var horiz = this.horiz = elt("div", [elt("div", null, null, "height: 100%; min-height: 1px")], "CodeMirror-hscrollbar");
3557
+ vert.tabIndex = horiz.tabIndex = -1;
3558
  place(vert); place(horiz);
3559
 
3560
  on(vert, "scroll", function () {
3803
  }
3804
 
3805
  if (op.updatedDisplay || op.selectionChanged)
3806
+ { op.preparedSelection = display.input.prepareSelection(); }
3807
  }
3808
 
3809
  function endOperation_W2(op) {
3816
  cm.display.maxLineChanged = false;
3817
  }
3818
 
3819
+ var takeFocus = op.focus && op.focus == activeElt();
3820
  if (op.preparedSelection)
3821
  { cm.display.input.showSelection(op.preparedSelection, takeFocus); }
3822
  if (op.updatedDisplay || op.startHeight != cm.doc.height)
4806
 
4807
  if ((hist.lastOp == opId ||
4808
  hist.lastOrigin == change.origin && change.origin &&
4809
+ ((change.origin.charAt(0) == "+" && hist.lastModTime > time - (doc.cm ? doc.cm.options.historyEventDelay : 500)) ||
4810
  change.origin.charAt(0) == "*")) &&
4811
  (cur = lastChangeEvent(hist, hist.lastOp == opId))) {
4812
  // Merge this change into the last event
5235
 
5236
  // Revert a change stored in a document's history.
5237
  function makeChangeFromHistory(doc, type, allowSelectionOnly) {
5238
+ var suppress = doc.cm && doc.cm.state.suppressEdits;
5239
+ if (suppress && !allowSelectionOnly) { return }
5240
 
5241
  var hist = doc.history, event, selAfter = doc.sel;
5242
  var source = type == "undo" ? hist.done : hist.undone, dest = type == "undo" ? hist.undone : hist.done;
5261
  return
5262
  }
5263
  selAfter = event;
5264
+ } else if (suppress) {
5265
+ source.push(event);
5266
+ return
5267
+ } else { break }
5268
  }
5269
 
5270
  // Build up a reverse change object to add to the opposite history
5419
 
5420
  function replaceRange(doc, code, from, to, origin) {
5421
  if (!to) { to = from; }
5422
+ if (cmp(to, from) < 0) { var assign;
5423
+ (assign = [to, from], from = assign[0], to = assign[1]); }
5424
  if (typeof code == "string") { code = doc.splitLines(code); }
5425
  makeChange(doc, {from: from, to: to, text: code, origin: origin});
5426
  }
5516
  }
5517
 
5518
  LeafChunk.prototype = {
5519
+ chunkSize: function() { return this.lines.length },
5520
 
5521
  // Remove the n lines at offset 'at'.
5522
+ removeInner: function(at, n) {
5523
  var this$1 = this;
5524
 
5525
  for (var i = at, e = at + n; i < e; ++i) {
5532
  },
5533
 
5534
  // Helper used to collapse a small branch into a single leaf.
5535
+ collapse: function(lines) {
5536
  lines.push.apply(lines, this.lines);
5537
  },
5538
 
5539
  // Insert the given array of lines at offset 'at', count them as
5540
  // having the given height.
5541
+ insertInner: function(at, lines, height) {
5542
  var this$1 = this;
5543
 
5544
  this.height += height;
5547
  },
5548
 
5549
  // Used to iterate over a part of the tree.
5550
+ iterN: function(at, n, op) {
5551
  var this$1 = this;
5552
 
5553
  for (var e = at + n; at < e; ++at)
5571
  }
5572
 
5573
  BranchChunk.prototype = {
5574
+ chunkSize: function() { return this.size },
5575
 
5576
+ removeInner: function(at, n) {
5577
  var this$1 = this;
5578
 
5579
  this.size -= n;
5599
  }
5600
  },
5601
 
5602
+ collapse: function(lines) {
5603
  var this$1 = this;
5604
 
5605
  for (var i = 0; i < this.children.length; ++i) { this$1.children[i].collapse(lines); }
5606
  },
5607
 
5608
+ insertInner: function(at, lines, height) {
5609
  var this$1 = this;
5610
 
5611
  this.size += lines.length;
5634
  },
5635
 
5636
  // When a node has grown, check whether it should be split.
5637
+ maybeSpill: function() {
5638
  if (this.children.length <= 10) { return }
5639
  var me = this;
5640
  do {
5656
  me.parent.maybeSpill();
5657
  },
5658
 
5659
+ iterN: function(at, n, op) {
5660
  var this$1 = this;
5661
 
5662
  for (var i = 0; i < this.children.length; ++i) {
5707
  this.height = null;
5708
  var diff = widgetHeight(this) - oldH;
5709
  if (!diff) { return }
5710
+ if (!lineIsHidden(this.doc, line)) { updateLineHeight(line, line.height + diff); }
5711
  if (cm) {
5712
  runInOp(cm, function () {
5713
  cm.curOp.forceUpdate = true;
5740
  }
5741
  return true
5742
  });
5743
+ if (cm) { signalLater(cm, "lineWidgetAdded", cm, widget, typeof handle == "number" ? handle : lineNo(handle)); }
5744
  return widget
5745
  }
5746
 
6589
  // Called when the window resizes
6590
  function onResize(cm) {
6591
  var d = cm.display;
 
 
6592
  // Might be a text scaling operation, clear size caches.
6593
  d.cachedCharWidth = d.cachedTextHeight = d.cachedPaddingH = null;
6594
  d.scrollbarsClipped = false;
6596
  }
6597
 
6598
  var keyNames = {
6599
+ 3: "Pause", 8: "Backspace", 9: "Tab", 13: "Enter", 16: "Shift", 17: "Ctrl", 18: "Alt",
6600
  19: "Pause", 20: "CapsLock", 27: "Esc", 32: "Space", 33: "PageUp", 34: "PageDown", 35: "End",
6601
  36: "Home", 37: "Left", 38: "Up", 39: "Right", 40: "Down", 44: "PrintScrn", 45: "Insert",
6602
  46: "Delete", 59: ";", 61: "=", 91: "Mod", 92: "Mod", 93: "Mod",
6603
+ 106: "*", 107: "=", 109: "-", 110: ".", 111: "/", 127: "Delete", 145: "ScrollLock",
6604
  173: "-", 186: ";", 187: "=", 188: ",", 189: "-", 190: ".", 191: "/", 192: "`", 219: "[", 220: "\\",
6605
  221: "]", 222: "'", 63232: "Up", 63233: "Down", 63234: "Left", 63235: "Right", 63272: "Delete",
6606
  63273: "Home", 63275: "End", 63276: "PageUp", 63277: "PageDown", 63302: "Insert"
6634
  "Ctrl-G": "findNext", "Shift-Ctrl-G": "findPrev", "Shift-Ctrl-F": "replace", "Shift-Ctrl-R": "replaceAll",
6635
  "Ctrl-[": "indentLess", "Ctrl-]": "indentMore",
6636
  "Ctrl-U": "undoSelection", "Shift-Ctrl-U": "redoSelection", "Alt-U": "redoSelection",
6637
+ "fallthrough": "basic"
6638
  };
6639
  // Very basic readline/emacs-style bindings, which are standard on Mac.
6640
  keyMap.emacsy = {
6652
  "Cmd-G": "findNext", "Shift-Cmd-G": "findPrev", "Cmd-Alt-F": "replace", "Shift-Cmd-Alt-F": "replaceAll",
6653
  "Cmd-[": "indentLess", "Cmd-]": "indentMore", "Cmd-Backspace": "delWrappedLineLeft", "Cmd-Delete": "delWrappedLineRight",
6654
  "Cmd-U": "undoSelection", "Shift-Cmd-U": "redoSelection", "Ctrl-Up": "goDocStart", "Ctrl-Down": "goDocEnd",
6655
+ "fallthrough": ["basic", "emacsy"]
6656
  };
6657
  keyMap["default"] = mac ? keyMap.macDefault : keyMap.pcDefault;
6658
 
6747
  if (presto && event.keyCode == 34 && event["char"]) { return false }
6748
  var name = keyNames[event.keyCode];
6749
  if (name == null || event.altGraphKey) { return false }
6750
+ // Ctrl-ScrollLock has keyCode 3, same as Ctrl-Pause,
6751
+ // so we'll use event.code when available (Chrome 48+, FF 38+, Safari 10.1+)
6752
+ if (event.keyCode == 3 && event.code) { name = event.code; }
6753
  return addModifierNames(name, event, noShift)
6754
  }
6755
 
6782
  });
6783
  }
6784
 
6785
+ function moveCharLogically(line, ch, dir) {
6786
+ var target = skipExtendingChars(line.text, ch + dir, dir);
6787
+ return target < 0 || target > line.text.length ? null : target
6788
+ }
6789
+
6790
+ function moveLogically(line, start, dir) {
6791
+ var ch = moveCharLogically(line, start.ch, dir);
6792
+ return ch == null ? null : new Pos(start.line, ch, dir < 0 ? "after" : "before")
6793
+ }
6794
+
6795
+ function endOfLine(visually, cm, lineObj, lineNo, dir) {
6796
+ if (visually) {
6797
+ var order = getOrder(lineObj, cm.doc.direction);
6798
+ if (order) {
6799
+ var part = dir < 0 ? lst(order) : order[0];
6800
+ var moveInStorageOrder = (dir < 0) == (part.level == 1);
6801
+ var sticky = moveInStorageOrder ? "after" : "before";
6802
+ var ch;
6803
+ // With a wrapped rtl chunk (possibly spanning multiple bidi parts),
6804
+ // it could be that the last bidi part is not on the last visual line,
6805
+ // since visual lines contain content order-consecutive chunks.
6806
+ // Thus, in rtl, we are looking for the first (content-order) character
6807
+ // in the rtl chunk that is on the last line (that is, the same line
6808
+ // as the last (content-order) character).
6809
+ if (part.level > 0 || cm.doc.direction == "rtl") {
6810
+ var prep = prepareMeasureForLine(cm, lineObj);
6811
+ ch = dir < 0 ? lineObj.text.length - 1 : 0;
6812
+ var targetTop = measureCharPrepared(cm, prep, ch).top;
6813
+ ch = findFirst(function (ch) { return measureCharPrepared(cm, prep, ch).top == targetTop; }, (dir < 0) == (part.level == 1) ? part.from : part.to - 1, ch);
6814
+ if (sticky == "before") { ch = moveCharLogically(lineObj, ch, 1); }
6815
+ } else { ch = dir < 0 ? part.to : part.from; }
6816
+ return new Pos(lineNo, ch, sticky)
6817
+ }
6818
+ }
6819
+ return new Pos(lineNo, dir < 0 ? lineObj.text.length : 0, dir < 0 ? "before" : "after")
6820
+ }
6821
+
6822
+ function moveVisually(cm, line, start, dir) {
6823
+ var bidi = getOrder(line, cm.doc.direction);
6824
+ if (!bidi) { return moveLogically(line, start, dir) }
6825
+ if (start.ch >= line.text.length) {
6826
+ start.ch = line.text.length;
6827
+ start.sticky = "before";
6828
+ } else if (start.ch <= 0) {
6829
+ start.ch = 0;
6830
+ start.sticky = "after";
6831
+ }
6832
+ var partPos = getBidiPartAt(bidi, start.ch, start.sticky), part = bidi[partPos];
6833
+ if (cm.doc.direction == "ltr" && part.level % 2 == 0 && (dir > 0 ? part.to > start.ch : part.from < start.ch)) {
6834
+ // Case 1: We move within an ltr part in an ltr editor. Even with wrapped lines,
6835
+ // nothing interesting happens.
6836
+ return moveLogically(line, start, dir)
6837
+ }
6838
+
6839
+ var mv = function (pos, dir) { return moveCharLogically(line, pos instanceof Pos ? pos.ch : pos, dir); };
6840
+ var prep;
6841
+ var getWrappedLineExtent = function (ch) {
6842
+ if (!cm.options.lineWrapping) { return {begin: 0, end: line.text.length} }
6843
+ prep = prep || prepareMeasureForLine(cm, line);
6844
+ return wrappedLineExtentChar(cm, line, prep, ch)
6845
+ };
6846
+ var wrappedLineExtent = getWrappedLineExtent(start.sticky == "before" ? mv(start, -1) : start.ch);
6847
+
6848
+ if (cm.doc.direction == "rtl" || part.level == 1) {
6849
+ var moveInStorageOrder = (part.level == 1) == (dir < 0);
6850
+ var ch = mv(start, moveInStorageOrder ? 1 : -1);
6851
+ if (ch != null && (!moveInStorageOrder ? ch >= part.from && ch >= wrappedLineExtent.begin : ch <= part.to && ch <= wrappedLineExtent.end)) {
6852
+ // Case 2: We move within an rtl part or in an rtl editor on the same visual line
6853
+ var sticky = moveInStorageOrder ? "before" : "after";
6854
+ return new Pos(start.line, ch, sticky)
6855
+ }
6856
+ }
6857
+
6858
+ // Case 3: Could not move within this bidi part in this visual line, so leave
6859
+ // the current bidi part
6860
+
6861
+ var searchInVisualLine = function (partPos, dir, wrappedLineExtent) {
6862
+ var getRes = function (ch, moveInStorageOrder) { return moveInStorageOrder
6863
+ ? new Pos(start.line, mv(ch, 1), "before")
6864
+ : new Pos(start.line, ch, "after"); };
6865
+
6866
+ for (; partPos >= 0 && partPos < bidi.length; partPos += dir) {
6867
+ var part = bidi[partPos];
6868
+ var moveInStorageOrder = (dir > 0) == (part.level != 1);
6869
+ var ch = moveInStorageOrder ? wrappedLineExtent.begin : mv(wrappedLineExtent.end, -1);
6870
+ if (part.from <= ch && ch < part.to) { return getRes(ch, moveInStorageOrder) }
6871
+ ch = moveInStorageOrder ? part.from : mv(part.to, -1);
6872
+ if (wrappedLineExtent.begin <= ch && ch < wrappedLineExtent.end) { return getRes(ch, moveInStorageOrder) }
6873
+ }
6874
+ };
6875
+
6876
+ // Case 3a: Look for other bidi parts on the same visual line
6877
+ var res = searchInVisualLine(partPos + dir, dir, wrappedLineExtent);
6878
+ if (res) { return res }
6879
+
6880
+ // Case 3b: Look for other bidi parts on the next visual line
6881
+ var nextCh = dir > 0 ? wrappedLineExtent.end : mv(wrappedLineExtent.begin, -1);
6882
+ if (nextCh != null && !(dir > 0 && nextCh == line.text.length)) {
6883
+ res = searchInVisualLine(dir > 0 ? 0 : bidi.length - 1, dir, getWrappedLineExtent(nextCh));
6884
+ if (res) { return res }
6885
+ }
6886
+
6887
+ // Case 4: Nowhere to move
6888
+ return null
6889
+ }
6890
+
6891
  // Commands are parameter-less actions that can be performed on an
6892
  // editor, mostly used for keybindings.
6893
  var commands = {
7089
  // for bound mouse clicks.
7090
 
7091
  var stopSeq = new Delayed;
7092
+
7093
  function dispatchKey(cm, name, e, handle) {
7094
  var seq = cm.state.keySeq;
7095
  if (seq) {
7096
  if (isModifierKey(name)) { return "handled" }
7097
+ if (/\'$/.test(name))
7098
+ { cm.state.keySeq = null; }
7099
+ else
7100
+ { stopSeq.set(50, function () {
7101
+ if (cm.state.keySeq == seq) {
7102
+ cm.state.keySeq = null;
7103
+ cm.display.input.reset();
7104
+ }
7105
+ }); }
7106
+ if (dispatchKeyInner(cm, seq + " " + name, e, handle)) { return true }
7107
  }
7108
+ return dispatchKeyInner(cm, name, e, handle)
7109
+ }
7110
+
7111
+ function dispatchKeyInner(cm, name, e, handle) {
7112
  var result = lookupKeyForEditor(cm, name, handle);
7113
 
7114
  if (result == "multi")
7121
  restartBlink(cm);
7122
  }
7123
 
 
 
 
 
7124
  return !!result
7125
  }
7126
 
7332
  var dragEnd = operation(cm, function (e) {
7333
  if (webkit) { display.scroller.draggable = false; }
7334
  cm.state.draggingText = false;
7335
+ off(display.wrapper.ownerDocument, "mouseup", dragEnd);
7336
+ off(display.wrapper.ownerDocument, "mousemove", mouseMove);
7337
  off(display.scroller, "dragstart", dragStart);
7338
  off(display.scroller, "drop", dragEnd);
7339
  if (!moved) {
7342
  { extendSelection(cm.doc, pos, null, null, behavior.extend); }
7343
  // Work around unexplainable focus problem in IE9 (#2127) and Chrome (#3081)
7344
  if (webkit || ie && ie_version == 9)
7345
+ { setTimeout(function () {display.wrapper.ownerDocument.body.focus(); display.input.focus();}, 20); }
7346
  else
7347
  { display.input.focus(); }
7348
  }
7357
  dragEnd.copy = !behavior.moveOnDrag;
7358
  // IE's approach to draggable
7359
  if (display.scroller.dragDrop) { display.scroller.dragDrop(); }
7360
+ on(display.wrapper.ownerDocument, "mouseup", dragEnd);
7361
+ on(display.wrapper.ownerDocument, "mousemove", mouseMove);
7362
  on(display.scroller, "dragstart", dragStart);
7363
  on(display.scroller, "drop", dragEnd);
7364
 
7453
  anchor = maxPos(oldRange.to(), range$$1.head);
7454
  }
7455
  var ranges$1 = startSel.ranges.slice(0);
7456
+ ranges$1[ourIndex] = bidiSimplify(cm, new Range(clipPos(doc, anchor), head));
7457
  setSelection(doc, normalizeSelection(ranges$1, ourIndex), sel_mouse);
7458
  }
7459
  }
7490
  counter = Infinity;
7491
  e_preventDefault(e);
7492
  display.input.focus();
7493
+ off(display.wrapper.ownerDocument, "mousemove", move);
7494
+ off(display.wrapper.ownerDocument, "mouseup", up);
7495
  doc.history.lastSelOrigin = null;
7496
  }
7497
 
7498
  var move = operation(cm, function (e) {
7499
+ if (e.buttons === 0 || !e_button(e)) { done(e); }
7500
  else { extend(e); }
7501
  });
7502
  var up = operation(cm, done);
7503
  cm.state.selectingText = up;
7504
+ on(display.wrapper.ownerDocument, "mousemove", move);
7505
+ on(display.wrapper.ownerDocument, "mouseup", up);
7506
+ }
7507
+
7508
+ // Used when mouse-selecting to adjust the anchor to the proper side
7509
+ // of a bidi jump depending on the visual position of the head.
7510
+ function bidiSimplify(cm, range$$1) {
7511
+ var anchor = range$$1.anchor;
7512
+ var head = range$$1.head;
7513
+ var anchorLine = getLine(cm.doc, anchor.line);
7514
+ if (cmp(anchor, head) == 0 && anchor.sticky == head.sticky) { return range$$1 }
7515
+ var order = getOrder(anchorLine);
7516
+ if (!order) { return range$$1 }
7517
+ var index = getBidiPartAt(order, anchor.ch, anchor.sticky), part = order[index];
7518
+ if (part.from != anchor.ch && part.to != anchor.ch) { return range$$1 }
7519
+ var boundary = index + ((part.from == anchor.ch) == (part.level != 1) ? 0 : 1);
7520
+ if (boundary == 0 || boundary == order.length) { return range$$1 }
7521
+
7522
+ // Compute the relative visual position of the head compared to the
7523
+ // anchor (<0 is to the left, >0 to the right)
7524
+ var leftSide;
7525
+ if (head.line != anchor.line) {
7526
+ leftSide = (head.line - anchor.line) * (cm.doc.direction == "ltr" ? 1 : -1) > 0;
7527
+ } else {
7528
+ var headIndex = getBidiPartAt(order, head.ch, head.sticky);
7529
+ var dir = headIndex - index || (head.ch - anchor.ch) * (part.level == 1 ? -1 : 1);
7530
+ if (headIndex == boundary - 1 || headIndex == boundary)
7531
+ { leftSide = dir < 0; }
7532
+ else
7533
+ { leftSide = dir > 0; }
7534
+ }
7535
+
7536
+ var usePart = order[boundary + (leftSide ? -1 : 0)];
7537
+ var from = leftSide == (usePart.level == 1);
7538
+ var ch = from ? usePart.from : usePart.to, sticky = from ? "after" : "before";
7539
+ return anchor.ch == ch && anchor.sticky == sticky ? range$$1 : new Range(new Pos(anchor.line, ch, sticky), head)
7540
  }
7541
 
7542
 
7544
  // handlers for the corresponding event.
7545
  function gutterEvent(cm, e, type, prevent) {
7546
  var mX, mY;
7547
+ if (e.touches) {
7548
+ mX = e.touches[0].clientX;
7549
+ mY = e.touches[0].clientY;
7550
+ } else {
7551
+ try { mX = e.clientX; mY = e.clientY; }
7552
+ catch(e) { return false }
7553
+ }
7554
  if (mX >= Math.floor(cm.display.gutters.getBoundingClientRect().right)) { return false }
7555
  if (prevent) { e_preventDefault(e); }
7556
 
7632
  clearCaches(cm);
7633
  regChange(cm);
7634
  }, true);
7635
+
7636
  option("lineSeparator", null, function (cm, val) {
7637
  cm.doc.lineSep = val;
7638
  if (!val) { return }
7734
  option("tabindex", null, function (cm, val) { return cm.display.input.getField().tabIndex = val || ""; });
7735
  option("autofocus", null);
7736
  option("direction", "ltr", function (cm, val) { return cm.doc.setDirection(val); }, true);
7737
+ option("phrases", null);
7738
  }
7739
 
7740
  function guttersChanged(cm) {
7786
 
7787
  var doc = options.value;
7788
  if (typeof doc == "string") { doc = new Doc(doc, options.mode, null, options.lineSeparator, options.direction); }
7789
+ else if (options.mode) { doc.modeOption = options.mode; }
7790
  this.doc = doc;
7791
 
7792
  var input = new CodeMirror$1.inputStyles[options.inputStyle](this);
7891
  return dx * dx + dy * dy > 20 * 20
7892
  }
7893
  on(d.scroller, "touchstart", function (e) {
7894
+ if (!signalDOMEvent(cm, e) && !isMouseLikeTouchEvent(e) && !clickInGutter(cm, e)) {
7895
  d.input.ensurePolled();
7896
  clearTimeout(touchFinished);
7897
  var now = +new Date;
8041
 
8042
  var paste = cm.state.pasteIncoming || origin == "paste";
8043
  var textLines = splitLinesAuto(inserted), multiPaste = null;
8044
+ // When pasting N lines into N selections, insert one line per selection
8045
  if (paste && sel.ranges.length > 1) {
8046
  if (lastCopied && lastCopied.text.join("\n") == inserted) {
8047
  if (sel.ranges.length % lastCopied.text.length == 0) {
8573
  return old
8574
  }),
8575
 
8576
+ phrase: function(phraseText) {
8577
+ var phrases = this.options.phrases;
8578
+ return phrases && Object.prototype.hasOwnProperty.call(phrases, phraseText) ? phrases[phraseText] : phraseText
8579
+ },
8580
+
8581
  getInputField: function(){return this.display.input.getField()},
8582
  getWrapperElement: function(){return this.display.wrapper},
8583
  getScrollerElement: function(){return this.display.scroller},
8782
  this.showMultipleSelections(info);
8783
  };
8784
 
8785
+ ContentEditableInput.prototype.getSelection = function () {
8786
+ return this.cm.display.wrapper.ownerDocument.getSelection()
8787
+ };
8788
+
8789
  ContentEditableInput.prototype.showPrimarySelection = function () {
8790
+ var sel = this.getSelection(), cm = this.cm, prim = cm.doc.sel.primary();
8791
  var from = prim.from(), to = prim.to();
8792
 
8793
  if (cm.display.viewTo == cm.display.viewFrom || from.line >= cm.display.viewTo || to.line < cm.display.viewFrom) {
8854
  };
8855
 
8856
  ContentEditableInput.prototype.rememberSelection = function () {
8857
+ var sel = this.getSelection();
8858
  this.lastAnchorNode = sel.anchorNode; this.lastAnchorOffset = sel.anchorOffset;
8859
  this.lastFocusNode = sel.focusNode; this.lastFocusOffset = sel.focusOffset;
8860
  };
8861
 
8862
  ContentEditableInput.prototype.selectionInEditor = function () {
8863
+ var sel = this.getSelection();
8864
  if (!sel.rangeCount) { return false }
8865
  var node = sel.getRangeAt(0).commonAncestorContainer;
8866
  return contains(this.div, node)
8895
  };
8896
 
8897
  ContentEditableInput.prototype.selectionChanged = function () {
8898
+ var sel = this.getSelection();
8899
  return sel.anchorNode != this.lastAnchorNode || sel.anchorOffset != this.lastAnchorOffset ||
8900
  sel.focusNode != this.lastFocusNode || sel.focusOffset != this.lastFocusOffset
8901
  };
8902
 
8903
  ContentEditableInput.prototype.pollSelection = function () {
8904
  if (this.readDOMTimeout != null || this.gracePeriod || !this.selectionChanged()) { return }
8905
+ var sel = this.getSelection(), cm = this.cm;
8906
  // On Android Chrome (version 56, at least), backspacing into an
8907
  // uneditable block element will put the cursor in that element,
8908
  // and then, because it's not editable, hide the virtual keyboard.
9036
  };
9037
 
9038
  ContentEditableInput.prototype.onKeyPress = function (e) {
9039
+ if (e.charCode == 0 || this.composing) { return }
9040
  e.preventDefault();
9041
  if (!this.cm.isReadOnly())
9042
  { operation(this.cm, applyTextInput)(this.cm, String.fromCharCode(e.charCode == null ? e.keyCode : e.charCode), 0); }
9076
  function badPos(pos, bad) { if (bad) { pos.bad = true; } return pos }
9077
 
9078
  function domTextBetween(cm, from, to, fromLine, toLine) {
9079
+ var text = "", closing = false, lineSep = cm.doc.lineSeparator(), extraLinebreak = false;
9080
  function recognizeMarker(id) { return function (marker) { return marker.id == id; } }
9081
  function close() {
9082
  if (closing) {
9083
  text += lineSep;
9084
+ if (extraLinebreak) { text += lineSep; }
9085
+ closing = extraLinebreak = false;
9086
  }
9087
  }
9088
  function addText(str) {
9094
  function walk(node) {
9095
  if (node.nodeType == 1) {
9096
  var cmText = node.getAttribute("cm-text");
9097
+ if (cmText) {
9098
+ addText(cmText);
9099
  return
9100
  }
9101
  var markerID = node.getAttribute("cm-marker"), range$$1;
9106
  return
9107
  }
9108
  if (node.getAttribute("contenteditable") == "false") { return }
9109
+ var isBlock = /^(pre|div|p|li|table|br)$/i.test(node.nodeName);
9110
+ if (!/^br$/i.test(node.nodeName) && node.textContent.length == 0) { return }
9111
+
9112
  if (isBlock) { close(); }
9113
  for (var i = 0; i < node.childNodes.length; i++)
9114
  { walk(node.childNodes[i]); }
9115
+
9116
+ if (/^(pre|p)$/i.test(node.nodeName)) { extraLinebreak = true; }
9117
  if (isBlock) { closing = true; }
9118
  } else if (node.nodeType == 3) {
9119
+ addText(node.nodeValue.replace(/\u200b/g, "").replace(/\u00a0/g, " "));
9120
  }
9121
  }
9122
  for (;;) {
9123
  walk(from);
9124
  if (from == to) { break }
9125
  from = from.nextSibling;
9126
+ extraLinebreak = false;
9127
  }
9128
  return text
9129
  }
9224
  var this$1 = this;
9225
 
9226
  var input = this, cm = this.cm;
9227
+ this.createField(display);
9228
+ var te = this.textarea;
9229
 
9230
+ display.wrapper.insertBefore(this.wrapper, display.wrapper.firstChild);
 
 
 
 
 
9231
 
9232
  // Needed to hide big blue blinking cursor on Mobile Safari (doesn't seem to work in iOS 8 anymore)
9233
  if (ios) { te.style.width = "0px"; }
9294
  });
9295
  };
9296
 
9297
+ TextareaInput.prototype.createField = function (_display) {
9298
+ // Wraps and hides input textarea
9299
+ this.wrapper = hiddenTextarea();
9300
+ // The semihidden textarea that is focused when the editor is
9301
+ // focused, and receives input.
9302
+ this.textarea = this.wrapper.firstChild;
9303
+ };
9304
+
9305
  TextareaInput.prototype.prepareSelection = function () {
9306
  // Redraw the selection and/or cursor
9307
  var cm = this.cm, display = cm.display, doc = cm.doc;
9695
 
9696
  addLegacyProps(CodeMirror$1);
9697
 
9698
+ CodeMirror$1.version = "5.40.0";
9699
 
9700
  return CodeMirror$1;
9701
 
9702
  })));
9703
 
9704
  // CodeMirror, copyright (c) by Marijn Haverbeke and others
9705
+ // Distributed under an MIT license: https://codemirror.net/LICENSE
9706
 
9707
  (function(mod) {
9708
  if (typeof exports == "object" && typeof module == "object") // CommonJS
9755
  doNotIndent: {},
9756
  allowUnquoted: false,
9757
  allowMissing: false,
9758
+ allowMissingTagName: false,
9759
  caseFold: false
9760
  }
9761
 
9866
  stream.next();
9867
  }
9868
  return style;
9869
+ }
9870
  }
9871
+
9872
  function doctype(depth) {
9873
  return function(stream, state) {
9874
  var ch;
9931
  state.tagName = stream.current();
9932
  setStyle = "tag";
9933
  return attrState;
9934
+ } else if (config.allowMissingTagName && type == "endTag") {
9935
+ setStyle = "tag bracket";
9936
+ return attrState(type, stream, state);
9937
  } else {
9938
  setStyle = "error";
9939
  return tagNameState;
9952
  setStyle = "tag error";
9953
  return closeStateErr;
9954
  }
9955
+ } else if (config.allowMissingTagName && type == "endTag") {
9956
+ setStyle = "tag bracket";
9957
+ return closeState(type, stream, state);
9958
  } else {
9959
  setStyle = "error";
9960
  return closeStateErr;
10105
  });
10106
 
10107
  // CodeMirror, copyright (c) by Marijn Haverbeke and others
10108
+ // Distributed under an MIT license: https://codemirror.net/LICENSE
10109
 
10110
  (function(mod) {
10111
  if (typeof exports == "object" && typeof module == "object") // CommonJS
10129
 
10130
  var keywords = function(){
10131
  function kw(type) {return {type: type, style: "keyword"};}
10132
+ var A = kw("keyword a"), B = kw("keyword b"), C = kw("keyword c"), D = kw("keyword d");
10133
  var operator = kw("operator"), atom = {type: "atom", style: "atom"};
10134
 
10135
+ return {
10136
  "if": kw("if"), "while": A, "with": A, "else": B, "do": B, "try": B, "finally": B,
10137
+ "return": D, "break": D, "continue": D, "new": kw("new"), "delete": C, "void": C, "throw": C,
10138
+ "debugger": kw("debugger"), "var": kw("var"), "const": kw("var"), "let": kw("var"),
10139
  "function": kw("function"), "catch": kw("catch"),
10140
  "for": kw("for"), "switch": kw("switch"), "case": kw("case"), "default": kw("default"),
10141
  "in": operator, "typeof": operator, "instanceof": operator,
10144
  "yield": C, "export": kw("export"), "import": kw("import"), "extends": C,
10145
  "await": C
10146
  };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10147
  }();
10148
 
10149
  var isOperatorChar = /[+\-*&%=<>!?|~^@]/;
10181
  return ret(ch);
10182
  } else if (ch == "=" && stream.eat(">")) {
10183
  return ret("=>", "operator");
10184
+ } else if (ch == "0" && stream.match(/^(?:x[\da-f]+|o[0-7]+|b[01]+)n?/i)) {
 
 
 
 
 
 
 
10185
  return ret("number", "number");
10186
  } else if (/\d/.test(ch)) {
10187
+ stream.match(/^\d*(?:n|(?:\.\d*)?(?:[eE][+\-]?\d+)?)?/);
10188
  return ret("number", "number");
10189
  } else if (ch == "/") {
10190
  if (stream.eat("*")) {
10195
  return ret("comment", "comment");
10196
  } else if (expressionAllowed(stream, state, 1)) {
10197
  readRegexp(stream);
10198
+ stream.match(/^\b(([gimyus])(?![gimyus]*\2))+\b/);
10199
  return ret("regexp", "string-2");
10200
  } else {
10201
+ stream.eat("=");
10202
  return ret("operator", "operator", stream.current());
10203
  }
10204
  } else if (ch == "`") {
10208
  stream.skipToEnd();
10209
  return ret("error", "error");
10210
  } else if (isOperatorChar.test(ch)) {
10211
+ if (ch != ">" || !state.lexical || state.lexical.type != ">") {
10212
+ if (stream.eat("=")) {
10213
+ if (ch == "!" || ch == "=") stream.eat("=")
10214
+ } else if (/[<>*+\-]/.test(ch)) {
10215
+ stream.eat(ch)
10216
+ if (ch == ">") stream.eat(ch)
10217
+ }
10218
+ }
10219
  return ret("operator", "operator", stream.current());
10220
  } else if (wordRE.test(ch)) {
10221
  stream.eatWhile(wordRE);
10225
  var kw = keywords[word]
10226
  return ret(kw.type, kw.style, word)
10227
  }
10228
+ if (word == "async" && stream.match(/^(\s|\/\*.*?\*\/)*[\[\(\w]/, false))
10229
  return ret("async", "keyword", word)
10230
  }
10231
  return ret("variable", "variable", word)
10364
  pass.apply(null, arguments);
10365
  return true;
10366
  }
10367
+ function inList(name, list) {
10368
+ for (var v = list; v; v = v.next) if (v.name == name) return true
10369
+ return false;
10370
+ }
10371
  function register(varname) {
 
 
 
 
 
10372
  var state = cx.state;
10373
  cx.marked = "def";
10374
  if (state.context) {
10375
+ if (state.lexical.info == "var" && state.context && state.context.block) {
10376
+ // FIXME function decls are also not block scoped
10377
+ var newContext = registerVarScoped(varname, state.context)
10378
+ if (newContext != null) {
10379
+ state.context = newContext
10380
+ return
10381
+ }
10382
+ } else if (!inList(varname, state.localVars)) {
10383
+ state.localVars = new Var(varname, state.localVars)
10384
+ return
10385
+ }
10386
+ }
10387
+ // Fall through means this is global
10388
+ if (parserConfig.globalVars && !inList(varname, state.globalVars))
10389
+ state.globalVars = new Var(varname, state.globalVars)
10390
+ }
10391
+ function registerVarScoped(varname, context) {
10392
+ if (!context) {
10393
+ return null
10394
+ } else if (context.block) {
10395
+ var inner = registerVarScoped(varname, context.prev)
10396
+ if (!inner) return null
10397
+ if (inner == context.prev) return context
10398
+ return new Context(inner, context.vars, true)
10399
+ } else if (inList(varname, context.vars)) {
10400
+ return context
10401
  } else {
10402
+ return new Context(context.prev, new Var(varname, context.vars), false)
 
 
10403
  }
10404
  }
10405
 
10406
+ function isModifier(name) {
10407
+ return name == "public" || name == "private" || name == "protected" || name == "abstract" || name == "readonly"
10408
+ }
10409
+
10410
  // Combinators
10411
 
10412
+ function Context(prev, vars, block) { this.prev = prev; this.vars = vars; this.block = block }
10413
+ function Var(name, next) { this.name = name; this.next = next }
10414
+
10415
+ var defaultVars = new Var("this", new Var("arguments", null))
10416
  function pushcontext() {
10417
+ cx.state.context = new Context(cx.state.context, cx.state.localVars, false)
10418
+ cx.state.localVars = defaultVars
10419
+ }
10420
+ function pushblockcontext() {
10421
+ cx.state.context = new Context(cx.state.context, cx.state.localVars, true)
10422
+ cx.state.localVars = null
10423
  }
10424
  function popcontext() {
10425
+ cx.state.localVars = cx.state.context.vars
10426
+ cx.state.context = cx.state.context.prev
10427
  }
10428
+ popcontext.lex = true
10429
  function pushlex(type, info) {
10430
  var result = function() {
10431
  var state = cx.state, indent = state.indented;
10450
  function expect(wanted) {
10451
  function exp(type) {
10452
  if (type == wanted) return cont();
10453
+ else if (wanted == ";" || type == "}" || type == ")" || type == "]") return pass();
10454
  else return cont(exp);
10455
  };
10456
  return exp;
10457
  }
10458
 
10459
  function statement(type, value) {
10460
+ if (type == "var") return cont(pushlex("vardef", value), vardef, expect(";"), poplex);
10461
  if (type == "keyword a") return cont(pushlex("form"), parenExpr, statement, poplex);
10462
  if (type == "keyword b") return cont(pushlex("form"), statement, poplex);
10463
+ if (type == "keyword d") return cx.stream.match(/^\s*$/, false) ? cont() : cont(pushlex("stat"), maybeexpression, expect(";"), poplex);
10464
+ if (type == "debugger") return cont(expect(";"));
10465
+ if (type == "{") return cont(pushlex("}"), pushblockcontext, block, poplex, popcontext);
10466
  if (type == ";") return cont();
10467
  if (type == "if") {
10468
  if (cx.state.lexical.info == "else" && cx.state.cc[cx.state.cc.length - 1] == poplex)
10471
  }
10472
  if (type == "function") return cont(functiondef);
10473
  if (type == "for") return cont(pushlex("form"), forspec, statement, poplex);
10474
+ if (type == "class" || (isTS && value == "interface")) { cx.marked = "keyword"; return cont(pushlex("form"), className, poplex); }
10475
  if (type == "variable") {
10476
+ if (isTS && value == "declare") {
10477
  cx.marked = "keyword"
10478
+ return cont(statement)
10479
+ } else if (isTS && (value == "module" || value == "enum" || value == "type") && cx.stream.match(/^\s*\w/, false)) {
10480
+ cx.marked = "keyword"
10481
+ if (value == "enum") return cont(enumdef);
10482
+ else if (value == "type") return cont(typeexpr, expect("operator"), typeexpr, expect(";"));
10483
+ else return cont(pushlex("form"), pattern, expect("{"), pushlex("}"), block, poplex, poplex)
10484
+ } else if (isTS && value == "namespace") {
10485
+ cx.marked = "keyword"
10486
+ return cont(pushlex("form"), expression, block, poplex)
10487
+ } else if (isTS && value == "abstract") {
10488
  cx.marked = "keyword"
10489
  return cont(statement)
10490
  } else {
10491
  return cont(pushlex("stat"), maybelabel);
10492
  }
10493
  }
10494
+ if (type == "switch") return cont(pushlex("form"), parenExpr, expect("{"), pushlex("}", "switch"), pushblockcontext,
10495
+ block, poplex, poplex, popcontext);
10496
  if (type == "case") return cont(expression, expect(":"));
10497
  if (type == "default") return cont(expect(":"));
10498
+ if (type == "catch") return cont(pushlex("form"), pushcontext, maybeCatchBinding, statement, poplex, popcontext);
 
 
10499
  if (type == "export") return cont(pushlex("stat"), afterExport, poplex);
10500
  if (type == "import") return cont(pushlex("stat"), afterImport, poplex);
 
10501
  if (type == "async") return cont(statement)
10502
  if (value == "@") return cont(expression, statement)
10503
  return pass(pushlex("stat"), expression, expect(";"), poplex);
10504
  }
10505
+ function maybeCatchBinding(type) {
10506
+ if (type == "(") return cont(funarg, expect(")"))
10507
+ }
10508
+ function expression(type, value) {
10509
+ return expressionInner(type, value, false);
10510
  }
10511
+ function expressionNoComma(type, value) {
10512
+ return expressionInner(type, value, true);
10513
  }
10514
  function parenExpr(type) {
10515
  if (type != "(") return pass()
10516
  return cont(pushlex(")"), expression, expect(")"), poplex)
10517
  }
10518
+ function expressionInner(type, value, noComma) {
10519
  if (cx.state.fatArrowAt == cx.stream.start) {
10520
  var body = noComma ? arrowBodyNoComma : arrowBody;
10521
+ if (type == "(") return cont(pushcontext, pushlex(")"), commasep(funarg, ")"), poplex, expect("=>"), body, popcontext);
10522
  else if (type == "variable") return pass(pushcontext, pattern, expect("=>"), body, popcontext);
10523
  }
10524
 
10525
  var maybeop = noComma ? maybeoperatorNoComma : maybeoperatorComma;
10526
  if (atomicTypes.hasOwnProperty(type)) return cont(maybeop);
10527
  if (type == "function") return cont(functiondef, maybeop);
10528
+ if (type == "class" || (isTS && value == "interface")) { cx.marked = "keyword"; return cont(pushlex("form"), classExpression, poplex); }
10529
+ if (type == "keyword c" || type == "async") return cont(noComma ? expressionNoComma : expression);
10530
  if (type == "(") return cont(pushlex(")"), maybeexpression, expect(")"), poplex, maybeop);
10531
  if (type == "operator" || type == "spread") return cont(noComma ? expressionNoComma : expression);
10532
  if (type == "[") return cont(pushlex("]"), arrayLiteral, poplex, maybeop);
10533
  if (type == "{") return contCommasep(objprop, "}", null, maybeop);
10534
  if (type == "quasi") return pass(quasi, maybeop);
10535
  if (type == "new") return cont(maybeTarget(noComma));
10536
+ if (type == "import") return cont(expression);
10537
  return cont();
10538
  }
10539
  function maybeexpression(type) {
10540
  if (type.match(/[;\}\)\],]/)) return pass();
10541
  return pass(expression);
10542
  }
 
 
 
 
10543
 
10544
  function maybeoperatorComma(type, value) {
10545
  if (type == ",") return cont(expression);
10551
  if (type == "=>") return cont(pushcontext, noComma ? arrowBodyNoComma : arrowBody, popcontext);
10552
  if (type == "operator") {
10553
  if (/\+\+|--/.test(value) || isTS && value == "!") return cont(me);
10554
+ if (isTS && value == "<" && cx.stream.match(/^([^>]|<.*?>)*>\s*\(/, false))
10555
+ return cont(pushlex(">"), commasep(typeexpr, ">"), poplex, me);
10556
  if (value == "?") return cont(expression, expect(":"), expr);
10557
  return cont(expr);
10558
  }
10562
  if (type == ".") return cont(property, me);
10563
  if (type == "[") return cont(pushlex("]"), maybeexpression, expect("]"), poplex, me);
10564
  if (isTS && value == "as") { cx.marked = "keyword"; return cont(typeexpr, me) }
10565
+ if (type == "regexp") {
10566
+ cx.state.lastType = cx.marked = "operator"
10567
+ cx.stream.backUp(cx.stream.pos - cx.stream.start - 1)
10568
+ return cont(expr)
10569
+ }
10570
  }
10571
  function quasi(type, value) {
10572
  if (type != "quasi") return pass();
10615
  } else if (type == "variable" || cx.style == "keyword") {
10616
  cx.marked = "property";
10617
  if (value == "get" || value == "set") return cont(getterSetter);
10618
+ var m // Work around fat-arrow-detection complication for detecting typescript typed arrow params
10619
+ if (isTS && cx.state.fatArrowAt == cx.stream.start && (m = cx.stream.match(/^\s*:\s*/, false)))
10620
+ cx.state.fatArrowAt = cx.stream.pos + m[0].length
10621
  return cont(afterprop);
10622
  } else if (type == "number" || type == "string") {
10623
  cx.marked = jsonldMode ? "property" : (cx.style + " property");
10624
  return cont(afterprop);
10625
  } else if (type == "jsonld-keyword") {
10626
  return cont(afterprop);
10627
+ } else if (isTS && isModifier(value)) {
10628
+ cx.marked = "keyword"
10629
  return cont(objprop)
10630
  } else if (type == "[") {
10631
+ return cont(expression, maybetype, expect("]"), afterprop);
10632
  } else if (type == "spread") {
10633
+ return cont(expressionNoComma, afterprop);
10634
+ } else if (value == "*") {
10635
+ cx.marked = "keyword";
10636
+ return cont(objprop);
10637
  } else if (type == ":") {
10638
  return pass(afterprop)
10639
  }
10680
  if (value == "?") return cont(maybetype);
10681
  }
10682
  }
10683
+ function mayberettype(type) {
10684
+ if (isTS && type == ":") {
10685
+ if (cx.stream.match(/^\s*\w+\s+is\b/, false)) return cont(expression, isKW, typeexpr)
10686
+ else return cont(typeexpr)
10687
+ }
10688
+ }
10689
+ function isKW(_, value) {
10690
+ if (value == "is") {
10691
+ cx.marked = "keyword"
10692
+ return cont()
10693
+ }
10694
+ }
10695
  function typeexpr(type, value) {
10696
+ if (value == "keyof" || value == "typeof") {
10697
+ cx.marked = "keyword"
10698
+ return cont(value == "keyof" ? typeexpr : expressionNoComma)
10699
+ }
10700
+ if (type == "variable" || value == "void") {
10701
+ cx.marked = "type"
10702
+ return cont(afterType)
 
10703
  }
10704
  if (type == "string" || type == "number" || type == "atom") return cont(afterType);
10705
  if (type == "[") return cont(pushlex("]"), commasep(typeexpr, "]", ","), poplex, afterType)
10706
  if (type == "{") return cont(pushlex("}"), commasep(typeprop, "}", ",;"), poplex, afterType)
10707
  if (type == "(") return cont(commasep(typearg, ")"), maybeReturnType)
10708
+ if (type == "<") return cont(commasep(typeexpr, ">"), typeexpr)
10709
  }
10710
  function maybeReturnType(type) {
10711
  if (type == "=>") return cont(typeexpr)
10722
  return cont(expression, maybetype, expect("]"), typeprop)
10723
  }
10724
  }
10725
+ function typearg(type, value) {
10726
+ if (type == "variable" && cx.stream.match(/^\s*[?:]/, false) || value == "?") return cont(typearg)
10727
+ if (type == ":") return cont(typeexpr)
10728
+ return pass(typeexpr)
10729
  }
10730
  function afterType(type, value) {
10731
  if (value == "<") return cont(pushlex(">"), commasep(typeexpr, ">"), poplex, afterType)
10732
+ if (value == "|" || type == "." || value == "&") return cont(typeexpr)
10733
  if (type == "[") return cont(expect("]"), afterType)
10734
+ if (value == "extends" || value == "implements") { cx.marked = "keyword"; return cont(typeexpr) }
10735
  }
10736
  function maybeTypeArgs(_, value) {
10737
  if (value == "<") return cont(pushlex(">"), commasep(typeexpr, ">"), poplex, afterType)
10738
  }
10739
+ function typeparam() {
10740
+ return pass(typeexpr, maybeTypeDefault)
10741
+ }
10742
+ function maybeTypeDefault(_, value) {
10743
+ if (value == "=") return cont(typeexpr)
10744
+ }
10745
+ function vardef(_, value) {
10746
+ if (value == "enum") {cx.marked = "keyword"; return cont(enumdef)}
10747
  return pass(pattern, maybetype, maybeAssign, vardefCont);
10748
  }
10749
  function pattern(type, value) {
10750
+ if (isTS && isModifier(value)) { cx.marked = "keyword"; return cont(pattern) }
10751
  if (type == "variable") { register(value); return cont(); }
10752
  if (type == "spread") return cont(pattern);
10753
  if (type == "[") return contCommasep(pattern, "]");
10772
  function maybeelse(type, value) {
10773
  if (type == "keyword b" && value == "else") return cont(pushlex("form", "else"), statement, poplex);
10774
  }
10775
+ function forspec(type, value) {
10776
+ if (value == "await") return cont(forspec);
10777
  if (type == "(") return cont(pushlex(")"), forspec1, expect(")"), poplex);
10778
  }
10779
  function forspec1(type) {
10797
  function functiondef(type, value) {
10798
  if (value == "*") {cx.marked = "keyword"; return cont(functiondef);}
10799
  if (type == "variable") {register(value); return cont(functiondef);}
10800
+ if (type == "(") return cont(pushcontext, pushlex(")"), commasep(funarg, ")"), poplex, mayberettype, statement, popcontext);
10801
+ if (isTS && value == "<") return cont(pushlex(">"), commasep(typeparam, ">"), poplex, functiondef)
10802
  }
10803
+ function funarg(type, value) {
10804
+ if (value == "@") cont(expression, funarg)
10805
+ if (type == "spread") return cont(funarg);
10806
+ if (isTS && isModifier(value)) { cx.marked = "keyword"; return cont(funarg); }
10807
  return pass(pattern, maybetype, maybeAssign);
10808
  }
10809
  function classExpression(type, value) {
10815
  if (type == "variable") {register(value); return cont(classNameAfter);}
10816
  }
10817
  function classNameAfter(type, value) {
10818
+ if (value == "<") return cont(pushlex(">"), commasep(typeparam, ">"), poplex, classNameAfter)
10819
+ if (value == "extends" || value == "implements" || (isTS && type == ",")) {
10820
+ if (value == "implements") cx.marked = "keyword";
10821
  return cont(isTS ? typeexpr : expression, classNameAfter);
10822
+ }
10823
  if (type == "{") return cont(pushlex("}"), classBody, poplex);
10824
  }
10825
  function classBody(type, value) {
10826
+ if (type == "async" ||
10827
  (type == "variable" &&
10828
+ (value == "static" || value == "get" || value == "set" || (isTS && isModifier(value))) &&
10829
  cx.stream.match(/^\s+[\w$\xa1-\uffff]/, false))) {
10830
  cx.marked = "keyword";
10831
  return cont(classBody);
10832
  }
10833
+ if (type == "variable" || cx.style == "keyword") {
10834
  cx.marked = "property";
10835
  return cont(isTS ? classfield : functiondef, classBody);
10836
  }
10837
  if (type == "[")
10838
+ return cont(expression, maybetype, expect("]"), isTS ? classfield : functiondef, classBody)
10839
  if (value == "*") {
10840
  cx.marked = "keyword";
10841
  return cont(classBody);
10862
  }
10863
  function afterImport(type) {
10864
  if (type == "string") return cont();
10865
+ if (type == "(") return pass(expression);
10866
  return pass(importSpec, maybeMoreImports, maybeFrom);
10867
  }
10868
  function importSpec(type, value) {
10884
  if (type == "]") return cont();
10885
  return pass(commasep(expressionNoComma, "]"));
10886
  }
10887
+ function enumdef() {
10888
+ return pass(pushlex("form"), pattern, expect("{"), pushlex("}"), commasep(enummember, "}"), poplex, poplex)
10889
+ }
10890
+ function enummember() {
10891
+ return pass(pattern, maybeAssign);
10892
+ }
10893
 
10894
  function isContinuedStatement(state, textAfter) {
10895
  return state.lastType == "operator" || state.lastType == "," ||
10899
 
10900
  function expressionAllowed(stream, state, backUp) {
10901
  return state.tokenize == tokenBase &&
10902
+ /^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[\[{}\(,;:]|=>)$/.test(state.lastType) ||
10903
  (state.lastType == "quasi" && /\{\s*$/.test(stream.string.slice(0, stream.pos - (backUp || 0))))
10904
  }
10905
 
10913
  cc: [],
10914
  lexical: new JSLexical((basecolumn || 0) - indentUnit, 0, "block", false),
10915
  localVars: parserConfig.localVars,
10916
+ context: parserConfig.localVars && new Context(null, null, false),
10917
  indented: basecolumn || 0
10918
  };
10919
  if (parserConfig.globalVars && typeof parserConfig.globalVars == "object")
10954
  lexical = lexical.prev;
10955
  var type = lexical.type, closing = firstChar == type;
10956
 
10957
+ if (type == "vardef") return lexical.indented + (state.lastType == "operator" || state.lastType == "," ? lexical.info.length + 1 : 0);
10958
  else if (type == "form" && firstChar == "{") return lexical.indented;
10959
  else if (type == "form") return lexical.indented + indentUnit;
10960
  else if (type == "stat")
10968
  electricInput: /^\s*(?:case .*?:|default:|\{|\})$/,
10969
  blockCommentStart: jsonMode ? null : "/*",
10970
  blockCommentEnd: jsonMode ? null : "*/",
10971
+ blockCommentContinue: jsonMode ? null : " * ",
10972
  lineComment: jsonMode ? null : "//",
10973
  fold: "brace",
10974
  closeBrackets: "()[]{}''\"\"``",
11002
  });
11003
 
11004
  // CodeMirror, copyright (c) by Marijn Haverbeke and others
11005
+ // Distributed under an MIT license: https://codemirror.net/LICENSE
11006
 
11007
  (function(mod) {
11008
  if (typeof exports == "object" && typeof module == "object") // CommonJS
11080
  return ret("qualifier", "qualifier");
11081
  } else if (/[:;{}\[\]\(\)]/.test(ch)) {
11082
  return ret(null, ch);
11083
+ } else if (((ch == "u" || ch == "U") && stream.match(/rl(-prefix)?\(/i)) ||
11084
+ ((ch == "d" || ch == "D") && stream.match("omain(", true, true)) ||
11085
+ ((ch == "r" || ch == "R") && stream.match("egexp(", true, true))) {
11086
  stream.backUp(1);
11087
  state.tokenize = tokenParenthesized;
11088
  return ret("property", "word");
11165
  return pushContext(state, stream, "block");
11166
  } else if (type == "}" && state.context.prev) {
11167
  return popContext(state);
11168
+ } else if (supportsAtComponent && /@component/i.test(type)) {
11169
  return pushContext(state, stream, "atComponentBlock");
11170
+ } else if (/^@(-moz-)?document$/i.test(type)) {
11171
  return pushContext(state, stream, "documentTypes");
11172
+ } else if (/^@(media|supports|(-moz-)?document|import)$/i.test(type)) {
11173
  return pushContext(state, stream, "atBlock");
11174
+ } else if (/^@(font-face|counter-style)/i.test(type)) {
11175
  state.stateArg = type;
11176
  return "restricted_atBlock_before";
11177
+ } else if (/^@(-(moz|ms|o|webkit)-)?keyframes$/i.test(type)) {
11178
  return "keyframes";
11179
  } else if (type && type.charAt(0) == "@") {
11180
  return pushContext(state, stream, "at");
11413
  electricChars: "}",
11414
  blockCommentStart: "/*",
11415
  blockCommentEnd: "*/",
11416
+ blockCommentContinue: " * ",
11417
  lineComment: lineComment,
11418
  fold: "brace"
11419
  };
11796
  },
11797
  "@": function(stream) {
11798
  if (stream.eat("{")) return [null, "interpolation"];
11799
+ if (stream.match(/^(charset|document|font-face|import|(-(moz|ms|o|webkit)-)?keyframes|media|namespace|page|supports)\b/i, false)) return false;
11800
  stream.eatWhile(/[\w\\\-]/);
11801
  if (stream.match(/^\s*:/, false))
11802
  return ["variable-2", "variable-definition"];
11835
  });
11836
 
11837
  // CodeMirror, copyright (c) by Marijn Haverbeke and others
11838
+ // Distributed under an MIT license: https://codemirror.net/LICENSE
11839
 
11840
  (function(mod) {
11841
  if (typeof exports == "object" && typeof module == "object") // CommonJS
11988
  });
11989
 
11990
  // CodeMirror, copyright (c) by Marijn Haverbeke and others
11991
+ // Distributed under an MIT license: https://codemirror.net/LICENSE
11992
 
11993
  (function(mod) {
11994
  if (typeof exports == "object" && typeof module == "object") // CommonJS
12205
  indent: function(state, textAfter) {
12206
  if (state.tokenize != tokenBase && state.tokenize != null || state.typeAtEndOfLine) return CodeMirror.Pass;
12207
  var ctx = state.context, firstChar = textAfter && textAfter.charAt(0);
12208
+ var closing = firstChar == ctx.type;
12209
  if (ctx.type == "statement" && firstChar == "}") ctx = ctx.prev;
12210
  if (parserConfig.dontIndentStatements)
12211
  while (ctx.type == "statement" && parserConfig.dontIndentStatements.test(ctx.info))
12212
  ctx = ctx.prev
12213
  if (hooks.indent) {
12214
+ var hook = hooks.indent(state, ctx, textAfter, indentUnit);
12215
  if (typeof hook == "number") return hook
12216
  }
 
12217
  var switchBlock = ctx.prev && ctx.prev.info == "switch";
12218
  if (parserConfig.allmanIndentation && /[{(]/.test(firstChar)) {
12219
  while (ctx.type != "top" && ctx.type != "}") ctx = ctx.prev
12233
  electricInput: indentSwitch ? /^\s*(?:case .*?:|default:|\{\}?|\})$/ : /^\s*[{}]$/,
12234
  blockCommentStart: "/*",
12235
  blockCommentEnd: "*/",
12236
+ blockCommentContinue: " * ",
12237
  lineComment: "//",
12238
  fold: "brace"
12239
  };
12363
  blockKeywords: words("case do else for if switch while struct"),
12364
  defKeywords: words("struct"),
12365
  typeFirstDefinitions: true,
12366
+ atoms: words("NULL true false"),
12367
  hooks: {"#": cppHook, "*": pointerHook},
12368
  modeProps: {fold: ["brace", "include"]}
12369
  });
12379
  blockKeywords: words("catch class do else finally for if struct switch try while"),
12380
  defKeywords: words("class namespace struct enum union"),
12381
  typeFirstDefinitions: true,
12382
+ atoms: words("true false NULL"),
12383
  dontIndentStatements: /^template$/,
12384
  isIdentifierChar: /[\w\$_~\xa1-\uffff]/,
12385
  hooks: {
12421
  types: words("byte short int long float double boolean char void Boolean Byte Character Double Float " +
12422
  "Integer Long Number Object Short String StringBuffer StringBuilder Void"),
12423
  blockKeywords: words("catch class do else finally for if switch try while"),
12424
+ defKeywords: words("class interface enum @interface"),
12425
  typeFirstDefinitions: true,
12426
  atoms: words("true false null"),
12427
  number: /^(?:0x[a-f\d_]+|0b[01_]+|(?:[\d_]+\.?\d*|\.\d+)(?:e[-+]?[\d_]+)?)(u|ll?|l|f)?/i,
12478
  return "string";
12479
  }
12480
 
12481
+ function tokenNestedComment(depth) {
12482
+ return function (stream, state) {
12483
+ var ch
12484
+ while (ch = stream.next()) {
12485
+ if (ch == "*" && stream.eat("/")) {
12486
+ if (depth == 1) {
12487
+ state.tokenize = null
12488
+ break
12489
+ } else {
12490
+ state.tokenize = tokenNestedComment(depth - 1)
12491
+ return state.tokenize(stream, state)
12492
+ }
12493
+ } else if (ch == "/" && stream.eat("*")) {
12494
+ state.tokenize = tokenNestedComment(depth + 1)
12495
+ return state.tokenize(stream, state)
12496
+ }
12497
+ }
12498
+ return "comment"
12499
+ }
12500
+ }
12501
+
12502
  def("text/x-scala", {
12503
  name: "clike",
12504
  keywords: words(
12554
  } else {
12555
  return false
12556
  }
12557
+ },
12558
+
12559
+ "/": function(stream, state) {
12560
+ if (!stream.eat("*")) return false
12561
+ state.tokenize = tokenNestedComment(1)
12562
+ return state.tokenize(stream, state)
12563
  }
12564
  },
12565
  modeProps: {closeBrackets: {triples: '"'}}
12586
  name: "clike",
12587
  keywords: words(
12588
  /*keywords*/
12589
+ "package as typealias class interface this super val operator " +
12590
+ "var fun for is in This throw return annotation " +
12591
  "break continue object if else while do try when !in !is as? " +
12592
 
12593
  /*soft keywords*/
12594
  "file import where by get set abstract enum open inner override private public internal " +
12595
  "protected catch finally out final vararg reified dynamic companion constructor init " +
12596
  "sealed field property receiver param sparam lateinit data inline noinline tailrec " +
12597
+ "external annotation crossinline const operator infix suspend actual expect setparam"
12598
  ),
12599
  types: words(
12600
  /* package java.lang */
12601
  "Boolean Byte Character CharSequence Class ClassLoader Cloneable Comparable " +
12602
  "Compiler Double Exception Float Integer Long Math Number Object Package Pair Process " +
12603
  "Runtime Runnable SecurityManager Short StackTraceElement StrictMath String " +
12604
+ "StringBuffer System Thread ThreadGroup ThreadLocal Throwable Triple Void Annotation Any BooleanArray " +
12605
+ "ByteArray Char CharArray DeprecationLevel DoubleArray Enum FloatArray Function Int IntArray Lazy " +
12606
+ "LazyThreadSafetyMode LongArray Nothing ShortArray Unit"
12607
  ),
12608
  intendSwitch: false,
12609
  indentStatements: false,
12610
  multiLineStrings: true,
12611
+ number: /^(?:0x[a-f\d_]+|0b[01_]+|(?:[\d_]+(\.\d+)?|\.\d+)(?:e[-+]?[\d_]+)?)(u|ll?|l|f)?/i,
12612
  blockKeywords: words("catch class do else finally for if where try while enum"),
12613
+ defKeywords: words("class val var object interface fun"),
12614
  atoms: words("true false null this"),
12615
  hooks: {
12616
+ "@": function(stream) {
12617
+ stream.eatWhile(/[\w\$_]/);
12618
+ return "meta";
12619
+ },
12620
  '"': function(stream, state) {
12621
  state.tokenize = tokenKotlinString(stream.match('""'));
12622
  return state.tokenize(stream, state);
12623
+ },
12624
+ indent: function(state, ctx, textAfter, indentUnit) {
12625
+ var firstChar = textAfter && textAfter.charAt(0);
12626
+ if ((state.prevToken == "}" || state.prevToken == ")") && textAfter == "")
12627
+ return state.indented;
12628
+ if (state.prevToken == "operator" && textAfter != "}" ||
12629
+ state.prevToken == "variable" && firstChar == "." ||
12630
+ (state.prevToken == "}" || state.prevToken == ")") && firstChar == ".")
12631
+ return indentUnit * 2 + ctx.indented;
12632
+ if (ctx.align && ctx.type == "}")
12633
+ return ctx.indented + (state.context.type == (textAfter || "").charAt(0) ? 0 : indentUnit);
12634
  }
12635
  },
12636
  modeProps: {closeBrackets: {triples: '"'}}
12823
  });
12824
 
12825
  // CodeMirror, copyright (c) by Marijn Haverbeke and others
12826
+ // Distributed under an MIT license: https://codemirror.net/LICENSE
12827
 
12828
  (function(mod) {
12829
  if (typeof exports == "object" && typeof module == "object") // CommonJS
12975
  };
12976
 
12977
  CodeMirror.defineMode("php", function(config, parserConfig) {
12978
+ var htmlMode = CodeMirror.getMode(config, (parserConfig && parserConfig.htmlMode) || "text/html");
12979
  var phpMode = CodeMirror.getMode(config, phpConfig);
12980
 
12981
  function dispatch(stream, state) {
13495
  }));
13496
 
13497
  // CodeMirror, copyright (c) by Marijn Haverbeke and others
13498
+ // Distributed under an MIT license: https://codemirror.net/LICENSE
13499
 
13500
  (function(mod) {
13501
  if (typeof exports == "object" && typeof module == "object") // CommonJS
13568
  });
13569
 
13570
  // CodeMirror, copyright (c) by Marijn Haverbeke and others
13571
+ // Distributed under an MIT license: https://codemirror.net/LICENSE
13572
 
13573
  (function(mod) {
13574
  if (typeof exports == "object" && typeof module == "object") // CommonJS
13588
  + (regexp.multiline ? "m" : "")
13589
  }
13590
 
13591
+ function ensureFlags(regexp, flags) {
13592
+ var current = regexpFlags(regexp), target = current
13593
+ for (var i = 0; i < flags.length; i++) if (target.indexOf(flags.charAt(i)) == -1)
13594
+ target += flags.charAt(i)
13595
+ return current == target ? regexp : new RegExp(regexp.source, target)
13596
  }
13597
 
13598
  function maybeMultiline(regexp) {
13600
  }
13601
 
13602
  function searchRegexpForward(doc, regexp, start) {
13603
+ regexp = ensureFlags(regexp, "g")
13604
  for (var line = start.line, ch = start.ch, last = doc.lastLine(); line <= last; line++, ch = 0) {
13605
  regexp.lastIndex = ch
13606
  var string = doc.getLine(line), match = regexp.exec(string)
13614
  function searchRegexpForwardMultiline(doc, regexp, start) {
13615
  if (!maybeMultiline(regexp)) return searchRegexpForward(doc, regexp, start)
13616
 
13617
+ regexp = ensureFlags(regexp, "gm")
13618
  var string, chunk = 1
13619
  for (var line = start.line, last = doc.lastLine(); line <= last;) {
13620
  // This grows the search buffer in exponentially-sized chunks
13623
  // searching for something that has tons of matches), but at the
13624
  // same time, the amount of retries is limited.
13625
  for (var i = 0; i < chunk; i++) {
13626
+ if (line > last) break
13627
  var curLine = doc.getLine(line++)
13628
  string = string == null ? curLine : string + "\n" + curLine
13629
  }
13654
  }
13655
 
13656
  function searchRegexpBackward(doc, regexp, start) {
13657
+ regexp = ensureFlags(regexp, "g")
13658
  for (var line = start.line, ch = start.ch, first = doc.firstLine(); line >= first; line--, ch = -1) {
13659
  var string = doc.getLine(line)
13660
  if (ch > -1) string = string.slice(0, ch)
13667
  }
13668
 
13669
  function searchRegexpBackwardMultiline(doc, regexp, start) {
13670
+ regexp = ensureFlags(regexp, "gm")
13671
  var string, chunk = 1
13672
  for (var line = start.line, first = doc.firstLine(); line >= first;) {
13673
  for (var i = 0; i < chunk; i++) {
13732
  for (var i = 1; i < lines.length - 1; i++)
13733
  if (fold(doc.getLine(line + i)) != lines[i]) continue search
13734
  var end = doc.getLine(line + lines.length - 1), endString = fold(end), lastLine = lines[lines.length - 1]
13735
+ if (endString.slice(0, lastLine.length) != lastLine) continue search
13736
  return {from: Pos(line, adjustPos(orig, string, cutFrom, fold) + ch),
13737
  to: Pos(line + lines.length - 1, adjustPos(end, endString, lastLine.length, fold))}
13738
  }
13786
  return (reverse ? searchStringBackward : searchStringForward)(doc, query, pos, caseFold)
13787
  }
13788
  } else {
13789
+ query = ensureFlags(query, "gm")
13790
  if (!options || options.multiline !== false)
13791
  this.matches = function(reverse, pos) {
13792
  return (reverse ? searchRegexpBackwardMultiline : searchRegexpForwardMultiline)(doc, query, pos)
13862
  });
13863
 
13864
  // CodeMirror, copyright (c) by Marijn Haverbeke and others
13865
+ // Distributed under an MIT license: https://codemirror.net/LICENSE
13866
 
13867
  // Define search commands. Depends on dialog.js or another
13868
  // implementation of the openDialog method.
13961
  return query;
13962
  }
13963
 
 
 
 
13964
  function startSearch(cm, state, query) {
13965
  state.queryText = query;
13966
  state.query = parseQuery(query);
13977
  var state = getSearchState(cm);
13978
  if (state.query) return findNext(cm, rev);
13979
  var q = cm.getSelection() || state.lastQuery;
13980
+ if (q instanceof RegExp && q.source == "x^") q = null
13981
  if (persistent && cm.openDialog) {
13982
  var hiding = null
13983
  var searchNext = function(query, event) {
13996
  (hiding = dialog).style.opacity = .4
13997
  })
13998
  };
13999
+ persistentDialog(cm, getQueryDialog(cm), q, searchNext, function(event, query) {
14000
  var keyName = CodeMirror.keyName(event)
14001
  var extra = cm.getOption('extraKeys'), cmd = (extra && extra[keyName]) || CodeMirror.keyMap[cm.getOption("keyMap")][keyName]
14002
  if (cmd == "findNext" || cmd == "findPrev" ||
14014
  findNext(cm, rev);
14015
  }
14016
  } else {
14017
+ dialog(cm, getQueryDialog(cm), "Search for:", q, function(query) {
14018
  if (query && !state.query) cm.operation(function() {
14019
  startSearch(cm, state, query);
14020
  state.posFrom = state.posTo = cm.getCursor();
14046
  if (state.annotate) { state.annotate.clear(); state.annotate = null; }
14047
  });}
14048
 
14049
+
14050
+ function getQueryDialog(cm) {
14051
+ return '<span class="CodeMirror-search-label">' + cm.phrase("Search:") + '</span> <input type="text" style="width: 10em" class="CodeMirror-search-field"/> <span style="color: #888" class="CodeMirror-search-hint">' + cm.phrase("(Use /re/ syntax for regexp search)") + '</span>';
14052
+ }
14053
+ function getReplaceQueryDialog(cm) {
14054
+ return ' <input type="text" style="width: 10em" class="CodeMirror-search-field"/> <span style="color: #888" class="CodeMirror-search-hint">' + cm.phrase("(Use /re/ syntax for regexp search)") + '</span>';
14055
+ }
14056
+ function getReplacementQueryDialog(cm) {
14057
+ return '<span class="CodeMirror-search-label">' + cm.phrase("With:") + '</span> <input type="text" style="width: 10em" class="CodeMirror-search-field"/>';
14058
+ }
14059
+ function getDoReplaceConfirm(cm) {
14060
+ return '<span class="CodeMirror-search-label">' + cm.phrase("Replace?") + '</span> <button>' + cm.phrase("Yes") + '</button> <button>' + cm.phrase("No") + '</button> <button>' + cm.phrase("All") + '</button> <button>' + cm.phrase("Stop") + '</button> ';
14061
+ }
14062
 
14063
  function replaceAll(cm, query, text) {
14064
  cm.operation(function() {
14074
  function replace(cm, all) {
14075
  if (cm.getOption("readOnly")) return;
14076
  var query = cm.getSelection() || getSearchState(cm).lastQuery;
14077
+ var dialogText = '<span class="CodeMirror-search-label">' + (all ? cm.phrase("Replace all:") : cm.phrase("Replace:")) + '</span>';
14078
+ dialog(cm, dialogText + getReplaceQueryDialog(cm), dialogText, query, function(query) {
14079
  if (!query) return;
14080
  query = parseQuery(query);
14081
+ dialog(cm, getReplacementQueryDialog(cm), cm.phrase("Replace with:"), "", function(text) {
14082
  text = parseString(text)
14083
  if (all) {
14084
  replaceAll(cm, query, text)
14094
  }
14095
  cm.setSelection(cursor.from(), cursor.to());
14096
  cm.scrollIntoView({from: cursor.from(), to: cursor.to()});
14097
+ confirmDialog(cm, getDoReplaceConfirm(cm), cm.phrase("Replace?"),
14098
  [function() {doReplace(match);}, advance,
14099
  function() {replaceAll(cm, query, text)}]);
14100
  };
14121
  });
14122
 
14123
  // CodeMirror, copyright (c) by Marijn Haverbeke and others
14124
+ // Distributed under an MIT license: https://codemirror.net/LICENSE
14125
 
14126
  // Open simple dialogs on top of an editor. Relies on dialog.css.
14127
 
14147
  } else { // Assuming it's a detached DOM element.
14148
  dialog.appendChild(template);
14149
  }
14150
+ CodeMirror.addClass(wrap, 'dialog-opened');
14151
  return dialog;
14152
  }
14153
 
14170
  } else {
14171
  if (closed) return;
14172
  closed = true;
14173
+ CodeMirror.rmClass(dialog.parentNode, 'dialog-opened');
14174
  dialog.parentNode.removeChild(dialog);
14175
  me.focus();
14176
 
14226
  function close() {
14227
  if (closed) return;
14228
  closed = true;
14229
+ CodeMirror.rmClass(dialog.parentNode, 'dialog-opened');
14230
  dialog.parentNode.removeChild(dialog);
14231
  me.focus();
14232
  }
14266
  if (closed) return;
14267
  closed = true;
14268
  clearTimeout(doneTimer);
14269
+ CodeMirror.rmClass(dialog.parentNode, 'dialog-opened');
14270
  dialog.parentNode.removeChild(dialog);
14271
  }
14272
 
14283
  });
14284
 
14285
  // CodeMirror, copyright (c) by Marijn Haverbeke and others
14286
+ // Distributed under an MIT license: https://codemirror.net/LICENSE
14287
 
14288
  (function(mod) {
14289
  if (typeof exports == "object" && typeof module == "object") // CommonJS
14436
  });
14437
 
14438
  // CodeMirror, copyright (c) by Marijn Haverbeke and others
14439
+ // Distributed under an MIT license: https://codemirror.net/LICENSE
14440
 
14441
  (function(mod) {
14442
  if (typeof exports == "object" && typeof module == "object") // CommonJS
14609
  if (open == -1) return false
14610
  var endLine = end == start ? startLine : self.getLine(end)
14611
  var close = endLine.indexOf(endString, end == start ? open + startString.length : 0);
 
 
 
 
14612
  var insideStart = Pos(start, open + 1), insideEnd = Pos(end, close + 1)
14613
  if (close == -1 ||
14614
  !/comment/.test(self.getTokenTypeAt(insideStart)) ||
14646
  });
14647
 
14648
  // CodeMirror, copyright (c) by Marijn Haverbeke and others
14649
+ // Distributed under an MIT license: https://codemirror.net/LICENSE
14650
 
14651
  (function(mod) {
14652
  if (typeof exports == "object" && typeof module == "object") // CommonJS
14799
  });
14800
 
14801
  // CodeMirror, copyright (c) by Marijn Haverbeke and others
14802
+ // Distributed under an MIT license: https://codemirror.net/LICENSE
14803
 
14804
  (function(mod) {
14805
  if (typeof exports == "object" && typeof module == "object") // CommonJS
14946
  });
14947
 
14948
  // CodeMirror, copyright (c) by Marijn Haverbeke and others
14949
+ // Distributed under an MIT license: https://codemirror.net/LICENSE
14950
 
14951
  (function(mod) {
14952
  if (typeof exports == "object" && typeof module == "object") // CommonJS
15084
  CodeMirror.registerHelper("fold", "xml", function(cm, start) {
15085
  var iter = new Iter(cm, start.line, 0);
15086
  for (;;) {
15087
+ var openTag = toNextTag(iter)
15088
+ if (!openTag || iter.line != start.line) return
15089
+ var end = toTagEnd(iter)
15090
+ if (!end) return
15091
  if (!openTag[1] && end != "selfClose") {
15092
  var startPos = Pos(iter.line, iter.ch);
15093
  var endPos = findMatchingClose(iter, openTag[2]);
15094
+ return endPos && cmp(endPos.from, startPos) > 0 ? {from: startPos, to: endPos.from} : null
15095
  }
15096
  }
15097
  });
15131
  });
15132
 
15133
  // CodeMirror, copyright (c) by Marijn Haverbeke and others
15134
+ // Distributed under an MIT license: https://codemirror.net/LICENSE
15135
 
15136
  (function(mod) {
15137
  if (typeof exports == "object" && typeof module == "object") // CommonJS
15180
  });
15181
 
15182
  // CodeMirror, copyright (c) by Marijn Haverbeke and others
15183
+ // Distributed under an MIT license: https://codemirror.net/LICENSE
15184
 
15185
  (function(mod) {
15186
  if (typeof exports == "object" && typeof module == "object") // CommonJS
15283
  }
15284
  }
15285
 
 
15286
  function doMatchBrackets(cm) {
15287
  cm.operation(function() {
15288
+ if (cm.state.matchBrackets.currentlyHighlighted) {
15289
+ cm.state.matchBrackets.currentlyHighlighted();
15290
+ cm.state.matchBrackets.currentlyHighlighted = null;
15291
+ }
15292
+ cm.state.matchBrackets.currentlyHighlighted = matchBrackets(cm, false, cm.state.matchBrackets);
15293
  });
15294
  }
15295
 
15296
  CodeMirror.defineOption("matchBrackets", false, function(cm, val, old) {
15297
  if (old && old != CodeMirror.Init) {
15298
  cm.off("cursorActivity", doMatchBrackets);
15299
+ if (cm.state.matchBrackets && cm.state.matchBrackets.currentlyHighlighted) {
15300
+ cm.state.matchBrackets.currentlyHighlighted();
15301
+ cm.state.matchBrackets.currentlyHighlighted = null;
15302
+ }
15303
  }
15304
  if (val) {
15305
  cm.state.matchBrackets = typeof val == "object" ? val : {};
15326
  });
15327
 
15328
  // CodeMirror, copyright (c) by Marijn Haverbeke and others
15329
+ // Distributed under an MIT license: https://codemirror.net/LICENSE
15330
 
15331
  (function(mod) {
15332
  if (typeof exports == "object" && typeof module == "object") // CommonJS
15393
  });
15394
 
15395
  // CodeMirror, copyright (c) by Marijn Haverbeke and others
15396
+ // Distributed under an MIT license: https://codemirror.net/LICENSE
15397
 
15398
  // Highlighting text that matches the selection
15399
  //
15484
  var state = cm.state.matchHighlighter;
15485
  cm.addOverlay(state.overlay = makeOverlay(query, hasBoundary, style));
15486
  if (state.options.annotateScrollbar && cm.showMatchesOnScrollbar) {
15487
+ var searchFor = hasBoundary ? new RegExp("\\b" + query.replace(/[\\\[.+*?(){|^$]/g, "\\$&") + "\\b") : query;
15488
  state.matchesonscroll = cm.showMatchesOnScrollbar(searchFor, false,
15489
  {className: "CodeMirror-selection-highlight-scrollbar"});
15490
  }
15559
  });
15560
 
15561
  // CodeMirror, copyright (c) by Marijn Haverbeke and others
15562
+ // Distributed under an MIT license: https://codemirror.net/LICENSE
15563
 
15564
  /**
15565
  * Tag-closer extension for CodeMirror.
15613
  function autoCloseGT(cm) {
15614
  if (cm.getOption("disableInput")) return CodeMirror.Pass;
15615
  var ranges = cm.listSelections(), replacements = [];
15616
+ var opt = cm.getOption("autoCloseTags");
15617
  for (var i = 0; i < ranges.length; i++) {
15618
  if (!ranges[i].empty()) return CodeMirror.Pass;
15619
  var pos = ranges[i].head, tok = cm.getTokenAt(pos);
15620
  var inner = CodeMirror.innerMode(cm.getMode(), tok.state), state = inner.state;
15621
  if (inner.mode.name != "xml" || !state.tagName) return CodeMirror.Pass;
15622
 
15623
+ var html = inner.mode.configuration == "html";
15624
  var dontCloseTags = (typeof opt == "object" && opt.dontCloseTags) || (html && htmlDontClose);
15625
  var indentTags = (typeof opt == "object" && opt.indentTags) || (html && htmlIndent);
15626
 
15642
  newPos: indent ? CodeMirror.Pos(pos.line + 1, 0) : CodeMirror.Pos(pos.line, pos.ch + 1)};
15643
  }
15644
 
15645
+ var dontIndentOnAutoClose = (typeof opt == "object" && opt.dontIndentOnAutoClose);
15646
  for (var i = ranges.length - 1; i >= 0; i--) {
15647
  var info = replacements[i];
15648
  cm.replaceRange(info.text, ranges[i].head, ranges[i].anchor, "+insert");
15649
  var sel = cm.listSelections().slice(0);
15650
  sel[i] = {head: info.newPos, anchor: info.newPos};
15651
  cm.setSelections(sel);
15652
+ if (!dontIndentOnAutoClose && info.indent) {
15653
  cm.indentLine(info.newPos.line, null, true);
15654
  cm.indentLine(info.newPos.line + 1, null, true);
15655
  }
15659
  function autoCloseCurrent(cm, typingSlash) {
15660
  var ranges = cm.listSelections(), replacements = [];
15661
  var head = typingSlash ? "/" : "</";
15662
+ var opt = cm.getOption("autoCloseTags");
15663
+ var dontIndentOnAutoClose = (typeof opt == "object" && opt.dontIndentOnSlash);
15664
  for (var i = 0; i < ranges.length; i++) {
15665
  if (!ranges[i].empty()) return CodeMirror.Pass;
15666
  var pos = ranges[i].head, tok = cm.getTokenAt(pos);
15691
  }
15692
  cm.replaceSelections(replacements);
15693
  ranges = cm.listSelections();
15694
+ if (!dontIndentOnAutoClose) {
15695
+ for (var i = 0; i < ranges.length; i++)
15696
+ if (i == ranges.length - 1 || ranges[i].head.line < ranges[i + 1].head.line)
15697
+ cm.indentLine(ranges[i].head.line);
15698
+ }
15699
  }
15700
 
15701
  function autoCloseSlash(cm) {
15735
  });
15736
 
15737
  // CodeMirror, copyright (c) by Marijn Haverbeke and others
15738
+ // Distributed under an MIT license: https://codemirror.net/LICENSE
15739
 
15740
  (function(mod) {
15741
  if (typeof exports == "object" && typeof module == "object") // CommonJS
15759
  cm.state.closeBrackets = null;
15760
  }
15761
  if (val) {
15762
+ ensureBound(getOption(val, "pairs"))
15763
  cm.state.closeBrackets = val;
15764
  cm.addKeyMap(keyMap);
15765
  }
15771
  return defaults[name];
15772
  }
15773
 
 
15774
  var keyMap = {Backspace: handleBackspace, Enter: handleEnter};
15775
+ function ensureBound(chars) {
15776
+ for (var i = 0; i < chars.length; i++) {
15777
+ var ch = chars.charAt(i), key = "'" + ch + "'"
15778
+ if (!keyMap[key]) keyMap[key] = handler(ch)
15779
+ }
15780
+ }
15781
+ ensureBound(defaults.pairs + "`")
15782
 
15783
  function handler(ch) {
15784
  return function(cm) { return handleChar(cm, ch); };
15820
  if (!around || explode.indexOf(around) % 2 != 0) return CodeMirror.Pass;
15821
  }
15822
  cm.operation(function() {
15823
+ var linesep = cm.lineSeparator() || "\n";
15824
+ cm.replaceSelection(linesep + linesep, null);
15825
  cm.execCommand("goCharLeft");
15826
  ranges = cm.listSelections();
15827
  for (var i = 0; i < ranges.length; i++) {
15865
  else
15866
  curType = "skip";
15867
  } else if (identical && cur.ch > 1 && triples.indexOf(ch) >= 0 &&
15868
+ cm.getRange(Pos(cur.line, cur.ch - 2), cur) == ch + ch) {
15869
+ if (cur.ch > 2 && /\bstring/.test(cm.getTokenTypeAt(Pos(cur.line, cur.ch - 2)))) return CodeMirror.Pass;
15870
  curType = "addFour";
15871
  } else if (identical) {
15872
+ var prev = cur.ch == 0 ? " " : cm.getRange(Pos(cur.line, cur.ch - 1), cur)
15873
+ if (!CodeMirror.isWordChar(next) && prev != ch && !CodeMirror.isWordChar(prev)) curType = "both";
15874
  else return CodeMirror.Pass;
15875
+ } else if (opening) {
 
 
15876
  curType = "both";
15877
  } else {
15878
  return CodeMirror.Pass;
15909
  });
15910
  }
15911
 
 
 
 
 
 
15912
  function charsAround(cm, pos) {
15913
  var str = cm.getRange(Pos(pos.line, pos.ch - 1),
15914
  Pos(pos.line, pos.ch + 1));
15915
  return str.length == 2 ? str : null;
15916
  }
15917
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15918
  function stringStartsAfter(cm, pos) {
15919
  var token = cm.getTokenAt(Pos(pos.line, pos.ch + 1))
15920
+ return /\bstring/.test(token.type) && token.start == pos.ch &&
15921
+ (pos.ch == 0 || !/\bstring/.test(cm.getTokenTypeAt(pos)))
15922
  }
15923
  });
15924
 
15925
  // CodeMirror, copyright (c) by Marijn Haverbeke and others
15926
+ // Distributed under an MIT license: https://codemirror.net/LICENSE
15927
 
15928
  // A rough approximation of Sublime Text's keybindings
15929
  // Depends on addon/search/searchcursor.js and optionally addon/dialog/dialogs.js
15938
  })(function(CodeMirror) {
15939
  "use strict";
15940
 
 
15941
  var cmds = CodeMirror.commands;
15942
  var Pos = CodeMirror.Pos;
 
 
15943
 
15944
  // This is not exactly Sublime's algorithm. I couldn't make heads or tails of that.
15945
  function findPosSubword(doc, start, dir) {
15973
  });
15974
  }
15975
 
15976
+ cmds.goSubwordLeft = function(cm) { moveSubword(cm, -1); };
15977
+ cmds.goSubwordRight = function(cm) { moveSubword(cm, 1); };
 
 
15978
 
15979
+ cmds.scrollLineUp = function(cm) {
 
 
 
 
15980
  var info = cm.getScrollInfo();
15981
  if (!cm.somethingSelected()) {
15982
  var visibleBottomLine = cm.lineAtHeight(info.top + info.clientHeight, "local");
15985
  }
15986
  cm.scrollTo(null, info.top - cm.defaultTextHeight());
15987
  };
15988
+ cmds.scrollLineDown = function(cm) {
15989
  var info = cm.getScrollInfo();
15990
  if (!cm.somethingSelected()) {
15991
  var visibleTopLine = cm.lineAtHeight(info.top, "local")+1;
15995
  cm.scrollTo(null, info.top + cm.defaultTextHeight());
15996
  };
15997
 
15998
+ cmds.splitSelectionByLine = function(cm) {
15999
  var ranges = cm.listSelections(), lineRanges = [];
16000
  for (var i = 0; i < ranges.length; i++) {
16001
  var from = ranges[i].from(), to = ranges[i].to();
16007
  cm.setSelections(lineRanges, 0);
16008
  };
16009
 
16010
+ cmds.singleSelectionTop = function(cm) {
 
 
16011
  var range = cm.listSelections()[0];
16012
  cm.setSelection(range.anchor, range.head, {scroll: false});
16013
  };
16014
 
16015
+ cmds.selectLine = function(cm) {
16016
  var ranges = cm.listSelections(), extended = [];
16017
  for (var i = 0; i < ranges.length; i++) {
16018
  var range = ranges[i];
16022
  cm.setSelections(extended);
16023
  };
16024
 
 
 
16025
  function insertLine(cm, above) {
16026
  if (cm.isReadOnly()) return CodeMirror.Pass
16027
  cm.operation(function() {
16040
  cm.execCommand("indentAuto");
16041
  }
16042
 
16043
+ cmds.insertLineAfter = function(cm) { return insertLine(cm, false); };
16044
 
16045
+ cmds.insertLineBefore = function(cm) { return insertLine(cm, true); };
16046
 
16047
  function wordAt(cm, pos) {
16048
  var start = pos.ch, end = start, line = cm.getLine(pos.line);
16051
  return {from: Pos(pos.line, start), to: Pos(pos.line, end), word: line.slice(start, end)};
16052
  }
16053
 
16054
+ cmds.selectNextOccurrence = function(cm) {
16055
  var from = cm.getCursor("from"), to = cm.getCursor("to");
16056
  var fullWord = cm.state.sublimeFindFullWord == cm.doc.sel;
16057
  if (CodeMirror.cmpPos(from, to) == 0) {
16080
  var ranges = cm.listSelections(), newRanges = [];
16081
  for (var i = 0; i < ranges.length; i++) {
16082
  var range = ranges[i];
16083
+ var newAnchor = cm.findPosV(
16084
+ range.anchor, dir, "line", range.anchor.goalColumn);
16085
+ var newHead = cm.findPosV(
16086
+ range.head, dir, "line", range.head.goalColumn);
16087
+ newAnchor.goalColumn = range.anchor.goalColumn != null ?
16088
+ range.anchor.goalColumn : cm.cursorCoords(range.anchor, "div").left;
16089
+ newHead.goalColumn = range.head.goalColumn != null ?
16090
+ range.head.goalColumn : cm.cursorCoords(range.head, "div").left;
16091
  var newRange = {anchor: newAnchor, head: newHead};
16092
  newRanges.push(range);
16093
  newRanges.push(newRange);
16094
  }
16095
  cm.setSelections(newRanges);
16096
  }
16097
+ cmds.addCursorToPrevLine = function(cm) { addCursorToSelection(cm, -1); };
16098
+ cmds.addCursorToNextLine = function(cm) { addCursorToSelection(cm, 1); };
 
 
16099
 
16100
  function isSelectedRange(ranges, from, to) {
16101
  for (var i = 0; i < ranges.length; i++)
16113
  var closing = cm.scanForBracket(pos, 1);
16114
  if (!closing) return false;
16115
  if (closing.ch == mirror.charAt(mirror.indexOf(opening.ch) + 1)) {
16116
+ var startPos = Pos(opening.pos.line, opening.pos.ch + 1);
16117
+ if (CodeMirror.cmpPos(startPos, range.from()) == 0 &&
16118
+ CodeMirror.cmpPos(closing.pos, range.to()) == 0) {
16119
+ opening = cm.scanForBracket(opening.pos, -1);
16120
+ if (!opening) return false;
16121
+ } else {
16122
+ newRanges.push({anchor: startPos, head: closing.pos});
16123
+ break;
16124
+ }
16125
  }
16126
  pos = Pos(closing.pos.line, closing.pos.ch + 1);
16127
  }
16130
  return true;
16131
  }
16132
 
16133
+ cmds.selectScope = function(cm) {
16134
  selectBetweenBrackets(cm) || cm.execCommand("selectAll");
16135
  };
16136
+ cmds.selectBetweenBrackets = function(cm) {
16137
  if (!selectBetweenBrackets(cm)) return CodeMirror.Pass;
16138
  };
16139
 
16140
+ cmds.goToBracket = function(cm) {
16141
  cm.extendSelectionsBy(function(range) {
16142
  var next = cm.scanForBracket(range.head, 1);
16143
  if (next && CodeMirror.cmpPos(next.pos, range.head) != 0) return next.pos;
16146
  });
16147
  };
16148
 
16149
+ cmds.swapLineUp = function(cm) {
 
 
16150
  if (cm.isReadOnly()) return CodeMirror.Pass
16151
  var ranges = cm.listSelections(), linesToMove = [], at = cm.firstLine() - 1, newSels = [];
16152
  for (var i = 0; i < ranges.length; i++) {
16173
  });
16174
  };
16175
 
16176
+ cmds.swapLineDown = function(cm) {
16177
  if (cm.isReadOnly()) return CodeMirror.Pass
16178
  var ranges = cm.listSelections(), linesToMove = [], at = cm.lastLine() + 1;
16179
  for (var i = ranges.length - 1; i >= 0; i--) {
16197
  });
16198
  };
16199
 
16200
+ cmds.toggleCommentIndented = function(cm) {
16201
  cm.toggleComment({ indent: true });
16202
  }
16203
 
16204
+ cmds.joinLines = function(cm) {
16205
  var ranges = cm.listSelections(), joined = [];
16206
  for (var i = 0; i < ranges.length; i++) {
16207
  var range = ranges[i], from = range.from();
16229
  });
16230
  };
16231
 
16232
+ cmds.duplicateLine = function(cm) {
16233
  cm.operation(function() {
16234
  var rangeCount = cm.listSelections().length;
16235
  for (var i = 0; i < rangeCount; i++) {
16243
  });
16244
  };
16245
 
 
16246
 
16247
  function sortLines(cm, caseSensitive) {
16248
  if (cm.isReadOnly()) return CodeMirror.Pass
16280
  });
16281
  }
16282
 
16283
+ cmds.sortLines = function(cm) { sortLines(cm, true); };
16284
+ cmds.sortLinesInsensitive = function(cm) { sortLines(cm, false); };
16285
 
16286
+ cmds.nextBookmark = function(cm) {
16287
  var marks = cm.state.sublimeBookmarks;
16288
  if (marks) while (marks.length) {
16289
  var current = marks.shift();
16295
  }
16296
  };
16297
 
16298
+ cmds.prevBookmark = function(cm) {
16299
  var marks = cm.state.sublimeBookmarks;
16300
  if (marks) while (marks.length) {
16301
  marks.unshift(marks.pop());
16307
  }
16308
  };
16309
 
16310
+ cmds.toggleBookmark = function(cm) {
16311
  var ranges = cm.listSelections();
16312
  var marks = cm.state.sublimeBookmarks || (cm.state.sublimeBookmarks = []);
16313
  for (var i = 0; i < ranges.length; i++) {
16314
  var from = ranges[i].from(), to = ranges[i].to();
16315
+ var found = ranges[i].empty() ? cm.findMarksAt(from) : cm.findMarks(from, to);
16316
  for (var j = 0; j < found.length; j++) {
16317
  if (found[j].sublimeBookmark) {
16318
  found[j].clear();
16327
  }
16328
  };
16329
 
16330
+ cmds.clearBookmarks = function(cm) {
16331
  var marks = cm.state.sublimeBookmarks;
16332
  if (marks) for (var i = 0; i < marks.length; i++) marks[i].clear();
16333
  marks.length = 0;
16334
  };
16335
 
16336
+ cmds.selectBookmarks = function(cm) {
16337
  var marks = cm.state.sublimeBookmarks, ranges = [];
16338
  if (marks) for (var i = 0; i < marks.length; i++) {
16339
  var found = marks[i].find();
16346
  cm.setSelections(ranges, 0);
16347
  };
16348
 
 
 
 
 
16349
  function modifyWordOrSelection(cm, mod) {
16350
  cm.operation(function() {
16351
  var ranges = cm.listSelections(), indices = [], replacements = [];
16365
  });
16366
  }
16367
 
16368
+ cmds.smartBackspace = function(cm) {
 
 
16369
  if (cm.somethingSelected()) return CodeMirror.Pass;
16370
 
16371
  cm.operation(function() {
16393
  });
16394
  };
16395
 
16396
+ cmds.delLineRight = function(cm) {
16397
  cm.operation(function() {
16398
  var ranges = cm.listSelections();
16399
  for (var i = ranges.length - 1; i >= 0; i--)
16402
  });
16403
  };
16404
 
16405
+ cmds.upcaseAtCursor = function(cm) {
16406
  modifyWordOrSelection(cm, function(str) { return str.toUpperCase(); });
16407
  };
16408
+ cmds.downcaseAtCursor = function(cm) {
16409
  modifyWordOrSelection(cm, function(str) { return str.toLowerCase(); });
16410
  };
16411
 
16412
+ cmds.setSublimeMark = function(cm) {
16413
  if (cm.state.sublimeMark) cm.state.sublimeMark.clear();
16414
  cm.state.sublimeMark = cm.setBookmark(cm.getCursor());
16415
  };
16416
+ cmds.selectToSublimeMark = function(cm) {
16417
  var found = cm.state.sublimeMark && cm.state.sublimeMark.find();
16418
  if (found) cm.setSelection(cm.getCursor(), found);
16419
  };
16420
+ cmds.deleteToSublimeMark = function(cm) {
16421
  var found = cm.state.sublimeMark && cm.state.sublimeMark.find();
16422
  if (found) {
16423
  var from = cm.getCursor(), to = found;
16426
  cm.replaceRange("", from, to);
16427
  }
16428
  };
16429
+ cmds.swapWithSublimeMark = function(cm) {
16430
  var found = cm.state.sublimeMark && cm.state.sublimeMark.find();
16431
  if (found) {
16432
  cm.state.sublimeMark.clear();
16434
  cm.setCursor(found);
16435
  }
16436
  };
16437
+ cmds.sublimeYank = function(cm) {
16438
  if (cm.state.sublimeKilled != null)
16439
  cm.replaceSelection(cm.state.sublimeKilled, null, "paste");
16440
  };
16441
 
16442
+ cmds.showInCenter = function(cm) {
 
16443
  var pos = cm.cursorCoords(null, "local");
16444
  cm.scrollTo(null, (pos.top + pos.bottom) / 2 - cm.getScrollInfo().clientHeight / 2);
16445
  };
16446
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16447
  function getTarget(cm) {
16448
  var from = cm.getCursor("from"), to = cm.getCursor("to");
16449
  if (CodeMirror.cmpPos(from, to) == 0) {
16472
  cm.setSelection(target.from, target.to);
16473
  }
16474
  };
16475
+ cmds.findUnder = function(cm) { findAndGoTo(cm, true); };
16476
+ cmds.findUnderPrevious = function(cm) { findAndGoTo(cm,false); };
16477
+ cmds.findAllUnder = function(cm) {
16478
  var target = getTarget(cm);
16479
  if (!target) return;
16480
  var cur = cm.getSearchCursor(target.query);
16488
  cm.setSelections(matches, primaryIndex);
16489
  };
16490
 
 
 
 
16491
 
16492
+ var keyMap = CodeMirror.keyMap;
16493
+ keyMap.macSublime = {
16494
+ "Cmd-Left": "goLineStartSmart",
16495
+ "Shift-Tab": "indentLess",
16496
+ "Shift-Ctrl-K": "deleteLine",
16497
+ "Alt-Q": "wrapLines",
16498
+ "Ctrl-Left": "goSubwordLeft",
16499
+ "Ctrl-Right": "goSubwordRight",
16500
+ "Ctrl-Alt-Up": "scrollLineUp",
16501
+ "Ctrl-Alt-Down": "scrollLineDown",
16502
+ "Cmd-L": "selectLine",
16503
+ "Shift-Cmd-L": "splitSelectionByLine",
16504
+ "Esc": "singleSelectionTop",
16505
+ "Cmd-Enter": "insertLineAfter",
16506
+ "Shift-Cmd-Enter": "insertLineBefore",
16507
+ "Cmd-D": "selectNextOccurrence",
16508
+ "Shift-Cmd-Space": "selectScope",
16509
+ "Shift-Cmd-M": "selectBetweenBrackets",
16510
+ "Cmd-M": "goToBracket",
16511
+ "Cmd-Ctrl-Up": "swapLineUp",
16512
+ "Cmd-Ctrl-Down": "swapLineDown",
16513
+ "Cmd-/": "toggleCommentIndented",
16514
+ "Cmd-J": "joinLines",
16515
+ "Shift-Cmd-D": "duplicateLine",
16516
+ "F9": "sortLines",
16517
+ "Cmd-F9": "sortLinesInsensitive",
16518
+ "F2": "nextBookmark",
16519
+ "Shift-F2": "prevBookmark",
16520
+ "Cmd-F2": "toggleBookmark",
16521
+ "Shift-Cmd-F2": "clearBookmarks",
16522
+ "Alt-F2": "selectBookmarks",
16523
+ "Backspace": "smartBackspace",
16524
+ "Cmd-K Cmd-K": "delLineRight",
16525
+ "Cmd-K Cmd-U": "upcaseAtCursor",
16526
+ "Cmd-K Cmd-L": "downcaseAtCursor",
16527
+ "Cmd-K Cmd-Space": "setSublimeMark",
16528
+ "Cmd-K Cmd-A": "selectToSublimeMark",
16529
+ "Cmd-K Cmd-W": "deleteToSublimeMark",
16530
+ "Cmd-K Cmd-X": "swapWithSublimeMark",
16531
+ "Cmd-K Cmd-Y": "sublimeYank",
16532
+ "Cmd-K Cmd-C": "showInCenter",
16533
+ "Cmd-K Cmd-G": "clearBookmarks",
16534
+ "Cmd-K Cmd-Backspace": "delLineLeft",
16535
+ "Cmd-K Cmd-0": "unfoldAll",
16536
+ "Cmd-K Cmd-J": "unfoldAll",
16537
+ "Ctrl-Shift-Up": "addCursorToPrevLine",
16538
+ "Ctrl-Shift-Down": "addCursorToNextLine",
16539
+ "Cmd-F3": "findUnder",
16540
+ "Shift-Cmd-F3": "findUnderPrevious",
16541
+ "Alt-F3": "findAllUnder",
16542
+ "Shift-Cmd-[": "fold",
16543
+ "Shift-Cmd-]": "unfold",
16544
+ "Cmd-I": "findIncremental",
16545
+ "Shift-Cmd-I": "findIncrementalReverse",
16546
+ "Cmd-H": "replace",
16547
+ "F3": "findNext",
16548
+ "Shift-F3": "findPrev",
16549
+ "fallthrough": "macDefault"
16550
+ };
16551
+ CodeMirror.normalizeKeyMap(keyMap.macSublime);
16552
+
16553
+ keyMap.pcSublime = {
16554
+ "Shift-Tab": "indentLess",
16555
+ "Shift-Ctrl-K": "deleteLine",
16556
+ "Alt-Q": "wrapLines",
16557
+ "Ctrl-T": "transposeChars",
16558
+ "Alt-Left": "goSubwordLeft",
16559
+ "Alt-Right": "goSubwordRight",
16560
+ "Ctrl-Up": "scrollLineUp",
16561
+ "Ctrl-Down": "scrollLineDown",
16562
+ "Ctrl-L": "selectLine",
16563
+ "Shift-Ctrl-L": "splitSelectionByLine",
16564
+ "Esc": "singleSelectionTop",
16565
+ "Ctrl-Enter": "insertLineAfter",
16566
+ "Shift-Ctrl-Enter": "insertLineBefore",
16567
+ "Ctrl-D": "selectNextOccurrence",
16568
+ "Shift-Ctrl-Space": "selectScope",
16569
+ "Shift-Ctrl-M": "selectBetweenBrackets",
16570
+ "Ctrl-M": "goToBracket",
16571
+ "Shift-Ctrl-Up": "swapLineUp",
16572
+ "Shift-Ctrl-Down": "swapLineDown",
16573
+ "Ctrl-/": "toggleCommentIndented",
16574
+ "Ctrl-J": "joinLines",
16575
+ "Shift-Ctrl-D": "duplicateLine",
16576
+ "F9": "sortLines",
16577
+ "Ctrl-F9": "sortLinesInsensitive",
16578
+ "F2": "nextBookmark",
16579
+ "Shift-F2": "prevBookmark",
16580
+ "Ctrl-F2": "toggleBookmark",
16581
+ "Shift-Ctrl-F2": "clearBookmarks",
16582
+ "Alt-F2": "selectBookmarks",
16583
+ "Backspace": "smartBackspace",
16584
+ "Ctrl-K Ctrl-K": "delLineRight",
16585
+ "Ctrl-K Ctrl-U": "upcaseAtCursor",
16586
+ "Ctrl-K Ctrl-L": "downcaseAtCursor",
16587
+ "Ctrl-K Ctrl-Space": "setSublimeMark",
16588
+ "Ctrl-K Ctrl-A": "selectToSublimeMark",
16589
+ "Ctrl-K Ctrl-W": "deleteToSublimeMark",
16590
+ "Ctrl-K Ctrl-X": "swapWithSublimeMark",
16591
+ "Ctrl-K Ctrl-Y": "sublimeYank",
16592
+ "Ctrl-K Ctrl-C": "showInCenter",
16593
+ "Ctrl-K Ctrl-G": "clearBookmarks",
16594
+ "Ctrl-K Ctrl-Backspace": "delLineLeft",
16595
+ "Ctrl-K Ctrl-0": "unfoldAll",
16596
+ "Ctrl-K Ctrl-J": "unfoldAll",
16597
+ "Ctrl-Alt-Up": "addCursorToPrevLine",
16598
+ "Ctrl-Alt-Down": "addCursorToNextLine",
16599
+ "Ctrl-F3": "findUnder",
16600
+ "Shift-Ctrl-F3": "findUnderPrevious",
16601
+ "Alt-F3": "findAllUnder",
16602
+ "Shift-Ctrl-[": "fold",
16603
+ "Shift-Ctrl-]": "unfold",
16604
+ "Ctrl-I": "findIncremental",
16605
+ "Shift-Ctrl-I": "findIncrementalReverse",
16606
+ "Ctrl-H": "replace",
16607
+ "F3": "findNext",
16608
+ "Shift-F3": "findPrev",
16609
+ "fallthrough": "pcDefault"
16610
+ };
16611
+ CodeMirror.normalizeKeyMap(keyMap.pcSublime);
16612
 
16613
+ var mac = keyMap.default == keyMap.macDefault;
16614
+ keyMap.sublime = mac ? keyMap.macSublime : keyMap.pcSublime;
16615
  });
16616
 
16617
  // CodeMirror, copyright (c) by Marijn Haverbeke and others
16618
+ // Distributed under an MIT license: https://codemirror.net/LICENSE
16619
 
16620
  (function(mod) {
16621
  if (typeof exports == "object" && typeof module == "object") // CommonJS
16646
 
16647
  var lastKill = null;
16648
 
16649
+ function kill(cm, from, to, ring, text) {
16650
  if (text == null) text = cm.getRange(from, to);
16651
 
16652
+ if (ring == "grow" && lastKill && lastKill.cm == cm && posEq(from, lastKill.pos) && cm.isClean(lastKill.gen))
16653
  growRingTop(text);
16654
+ else if (ring !== false)
16655
  addToRing(text);
16656
  cm.replaceRange("", from, to, "+delete");
16657
 
16658
+ if (ring == "grow") lastKill = {cm: cm, pos: from, gen: cm.changeGeneration()};
16659
  else lastKill = null;
16660
  }
16661
 
16767
  return f;
16768
  }
16769
 
16770
+ function killTo(cm, by, dir, ring) {
16771
  var selections = cm.listSelections(), cursor;
16772
  var i = selections.length;
16773
  while (i--) {
16774
  cursor = selections[i].head;
16775
+ kill(cm, cursor, findEnd(cm, cursor, by, dir), ring);
16776
  }
16777
  }
16778
 
16779
+ function killRegion(cm, ring) {
16780
  if (cm.somethingSelected()) {
16781
  var selections = cm.listSelections(), selection;
16782
  var i = selections.length;
16783
  while (i--) {
16784
  selection = selections[i];
16785
+ kill(cm, selection.anchor, selection.head, ring);
16786
  }
16787
  return true;
16788
  }
16892
  // Actual keymap
16893
 
16894
  var keyMap = CodeMirror.keyMap.emacs = CodeMirror.normalizeKeyMap({
16895
+ "Ctrl-W": function(cm) {kill(cm, cm.getCursor("start"), cm.getCursor("end"), true);},
16896
  "Ctrl-K": repeated(function(cm) {
16897
  var start = cm.getCursor(), end = cm.clipPos(Pos(start.line));
16898
  var text = cm.getRange(start, end);
16900
  text += "\n";
16901
  end = Pos(start.line + 1, 0);
16902
  }
16903
+ kill(cm, start, end, "grow", text);
16904
  }),
16905
  "Alt-W": function(cm) {
16906
  addToRing(cm.getSelection());
16917
 
16918
  "Ctrl-F": move(byChar, 1), "Ctrl-B": move(byChar, -1),
16919
  "Right": move(byChar, 1), "Left": move(byChar, -1),
16920
+ "Ctrl-D": function(cm) { killTo(cm, byChar, 1, false); },
16921
+ "Delete": function(cm) { killRegion(cm, false) || killTo(cm, byChar, 1, false); },
16922
+ "Ctrl-H": function(cm) { killTo(cm, byChar, -1, false); },
16923
+ "Backspace": function(cm) { killRegion(cm, false) || killTo(cm, byChar, -1, false); },
16924
 
16925
  "Alt-F": move(byWord, 1), "Alt-B": move(byWord, -1),
16926
+ "Alt-Right": move(byWord, 1), "Alt-Left": move(byWord, -1),
16927
+ "Alt-D": function(cm) { killTo(cm, byWord, 1, "grow"); },
16928
+ "Alt-Backspace": function(cm) { killTo(cm, byWord, -1, "grow"); },
16929
 
16930
  "Ctrl-N": move(byLine, 1), "Ctrl-P": move(byLine, -1),
16931
  "Down": move(byLine, 1), "Up": move(byLine, -1),
16938
  "Ctrl-Up": move(byParagraph, -1), "Ctrl-Down": move(byParagraph, 1),
16939
 
16940
  "Alt-A": move(bySentence, -1), "Alt-E": move(bySentence, 1),
16941
+ "Alt-K": function(cm) { killTo(cm, bySentence, 1, "grow"); },
16942
 
16943
+ "Ctrl-Alt-K": function(cm) { killTo(cm, byExpr, 1, "grow"); },
16944
+ "Ctrl-Alt-Backspace": function(cm) { killTo(cm, byExpr, -1, "grow"); },
16945
+ "Ctrl-Alt-F": move(byExpr, 1), "Ctrl-Alt-B": move(byExpr, -1, "grow"),
16946
 
16947
  "Shift-Ctrl-Alt-2": function(cm) {
16948
  var cursor = cm.getCursor();
17015
  "Ctrl-X F": "open",
17016
  "Ctrl-X U": repeated("undo"),
17017
  "Ctrl-X K": "close",
17018
+ "Ctrl-X Delete": function(cm) { kill(cm, cm.getCursor(), bySentence(cm, cm.getCursor(), 1), "grow"); },
17019
  "Ctrl-X H": "selectAll",
17020
 
17021
  "Ctrl-Q Tab": repeated("insertTab"),
17033
  });
17034
 
17035
  // CodeMirror, copyright (c) by Marijn Haverbeke and others
17036
+ // Distributed under an MIT license: https://codemirror.net/LICENSE
17037
 
17038
  /**
17039
  * Supported keybindings:
17127
  { keys: 'gE', type: 'motion', motion: 'moveByWords', motionArgs: { forward: false, wordEnd: true, bigWord: true, inclusive: true }},
17128
  { keys: '{', type: 'motion', motion: 'moveByParagraph', motionArgs: { forward: false, toJumplist: true }},
17129
  { keys: '}', type: 'motion', motion: 'moveByParagraph', motionArgs: { forward: true, toJumplist: true }},
17130
+ { keys: '(', type: 'motion', motion: 'moveBySentence', motionArgs: { forward: false }},
17131
+ { keys: ')', type: 'motion', motion: 'moveBySentence', motionArgs: { forward: true }},
17132
  { keys: '<C-f>', type: 'motion', motion: 'moveByPage', motionArgs: { forward: true }},
17133
  { keys: '<C-b>', type: 'motion', motion: 'moveByPage', motionArgs: { forward: false }},
17134
  { keys: '<C-d>', type: 'motion', motion: 'moveByScroll', motionArgs: { forward: true, explicitRepeat: true }},
17291
  }
17292
 
17293
  function detachVimMap(cm, next) {
17294
+ if (this == CodeMirror.keyMap.vim) {
17295
  CodeMirror.rmClass(cm.getWrapperElement(), "cm-fat-cursor");
17296
+ if (cm.getOption("inputStyle") == "contenteditable" && document.body.style.caretColor != null) {
17297
+ disableFatCursorMark(cm);
17298
+ cm.getInputField().style.caretColor = "";
17299
+ }
17300
+ }
17301
 
17302
  if (!next || next.attach != attachVimMap)
17303
  leaveVimMode(cm);
17304
  }
17305
  function attachVimMap(cm, prev) {
17306
+ if (this == CodeMirror.keyMap.vim) {
17307
  CodeMirror.addClass(cm.getWrapperElement(), "cm-fat-cursor");
17308
+ if (cm.getOption("inputStyle") == "contenteditable" && document.body.style.caretColor != null) {
17309
+ enableFatCursorMark(cm);
17310
+ cm.getInputField().style.caretColor = "transparent";
17311
+ }
17312
+ }
17313
 
17314
  if (!prev || prev.attach != attachVimMap)
17315
  enterVimMode(cm);
17316
  }
17317
 
17318
+ function fatCursorMarks(cm) {
17319
+ var ranges = cm.listSelections(), result = []
17320
+ for (var i = 0; i < ranges.length; i++) {
17321
+ var range = ranges[i]
17322
+ if (range.empty()) {
17323
+ if (range.anchor.ch < cm.getLine(range.anchor.line).length) {
17324
+ result.push(cm.markText(range.anchor, Pos(range.anchor.line, range.anchor.ch + 1),
17325
+ {className: "cm-fat-cursor-mark"}))
17326
+ } else {
17327
+ var widget = document.createElement("span")
17328
+ widget.textContent = "\u00a0"
17329
+ widget.className = "cm-fat-cursor-mark"
17330
+ result.push(cm.setBookmark(range.anchor, {widget: widget}))
17331
+ }
17332
+ }
17333
+ }
17334
+ return result
17335
+ }
17336
+
17337
+ function updateFatCursorMark(cm) {
17338
+ var marks = cm.state.fatCursorMarks
17339
+ if (marks) for (var i = 0; i < marks.length; i++) marks[i].clear()
17340
+ cm.state.fatCursorMarks = fatCursorMarks(cm)
17341
+ }
17342
+
17343
+ function enableFatCursorMark(cm) {
17344
+ cm.state.fatCursorMarks = fatCursorMarks(cm)
17345
+ cm.on("cursorActivity", updateFatCursorMark)
17346
+ }
17347
+
17348
+ function disableFatCursorMark(cm) {
17349
+ var marks = cm.state.fatCursorMarks
17350
+ if (marks) for (var i = 0; i < marks.length; i++) marks[i].clear()
17351
+ cm.state.fatCursorMarks = null
17352
+ cm.off("cursorActivity", updateFatCursorMark)
17353
+ }
17354
+
17355
  // Deprecated, simply setting the keymap works again.
17356
  CodeMirror.defineOption('vimMode', false, function(cm, val, prev) {
17357
  if (val && cm.getOption("keyMap") != "vim")
17459
  function isWhiteSpaceString(k) {
17460
  return (/^\s*$/).test(k);
17461
  }
17462
+ function isEndOfSentenceSymbol(k) {
17463
+ return '.?!'.indexOf(k) != -1;
17464
+ }
17465
  function inArray(val, arr) {
17466
  for (var i = 0; i < arr.length; i++) {
17467
  if (arr[i] == val) {
17880
  }
17881
 
17882
  function handleKeyNonInsertMode() {
17883
+ if (handleMacroRecording() || handleEsc()) { return true; }
17884
 
17885
  var keys = vim.inputState.keyBuffer = vim.inputState.keyBuffer + key;
17886
  if (/^[1-9]\d*$/.test(keys)) { return true; }
17905
  if (vim.insertMode) { command = handleKeyInsertMode(); }
17906
  else { command = handleKeyNonInsertMode(); }
17907
  if (command === false) {
17908
+ return !vim.insertMode && key.length === 1 ? function() { return true; } : undefined;
17909
  } else if (command === true) {
17910
  // TODO: Look into using CodeMirror's multi-key handling.
17911
  // Return no-op since we are caching the key. Counts as handled, but
18465
  } else {
18466
  if (vim.visualMode) {
18467
  showPrompt(cm, { onClose: onPromptClose, prefix: ':', value: '\'<,\'>',
18468
+ onKeyDown: onPromptKeyDown, selectValueOnOpen: false});
18469
  } else {
18470
  showPrompt(cm, { onClose: onPromptClose, prefix: ':',
18471
  onKeyDown: onPromptKeyDown});
18850
  var dir = motionArgs.forward ? 1 : -1;
18851
  return findParagraph(cm, head, motionArgs.repeat, dir);
18852
  },
18853
+ moveBySentence: function(cm, head, motionArgs) {
18854
+ var dir = motionArgs.forward ? 1 : -1;
18855
+ return findSentence(cm, head, motionArgs.repeat, dir);
18856
+ },
18857
  moveByScroll: function(cm, head, motionArgs, vim) {
18858
  var scrollbox = cm.getScrollInfo();
18859
  var curEnd = null;
19124
  vimGlobalState.registerController.pushText(
19125
  args.registerName, 'delete', text,
19126
  args.linewise, vim.visualBlock);
19127
+ var includeLineBreak = vim.insertMode
19128
+ return clipCursorToContent(cm, finalHead, includeLineBreak);
19129
  },
19130
  indent: function(cm, args, ranges) {
19131
  var vim = cm.state.vim;
19680
  incrementNumberToken: function(cm, actionArgs) {
19681
  var cur = cm.getCursor();
19682
  var lineStr = cm.getLine(cur.line);
19683
+ var re = /(-?)(?:(0x)([\da-f]+)|(0b|0|)(\d+))/gi;
19684
  var match;
19685
  var start;
19686
  var end;
19687
  var numberStr;
 
19688
  while ((match = re.exec(lineStr)) !== null) {
 
19689
  start = match.index;
19690
+ end = start + match[0].length;
19691
  if (cur.ch < end)break;
19692
  }
19693
  if (!actionArgs.backtrack && (end <= cur.ch))return;
19694
+ if (match) {
19695
+ var baseStr = match[2] || match[4]
19696
+ var digits = match[3] || match[5]
19697
  var increment = actionArgs.increase ? 1 : -1;
19698
+ var base = {'0b': 2, '0': 8, '': 10, '0x': 16}[baseStr.toLowerCase()];
19699
+ var number = parseInt(match[1] + digits, base) + (increment * actionArgs.repeat);
19700
+ numberStr = number.toString(base);
19701
+ var zeroPadding = baseStr ? new Array(digits.length - numberStr.length + 1 + match[1].length).join('0') : ''
19702
+ if (numberStr.charAt(0) === '-') {
19703
+ numberStr = '-' + baseStr + zeroPadding + numberStr.substr(1);
19704
+ } else {
19705
+ numberStr = baseStr + zeroPadding + numberStr;
19706
+ }
19707
  var from = Pos(cur.line, start);
19708
  var to = Pos(cur.line, end);
 
19709
  cm.replaceRange(numberStr, from, to);
19710
  } else {
19711
  return;
20342
  return cur;
20343
  }
20344
 
20345
+ /*
20346
  * Returns the boundaries of the next word. If the cursor in the middle of
20347
  * the word, then returns the boundaries of the current word, starting at
20348
  * the cursor. If the cursor is at the start/end of a word, and we are going
20577
  return { start: start, end: end };
20578
  }
20579
 
20580
+ function findSentence(cm, cur, repeat, dir) {
20581
+
20582
+ /*
20583
+ Takes an index object
20584
+ {
20585
+ line: the line string,
20586
+ ln: line number,
20587
+ pos: index in line,
20588
+ dir: direction of traversal (-1 or 1)
20589
+ }
20590
+ and modifies the line, ln, and pos members to represent the
20591
+ next valid position or sets them to null if there are
20592
+ no more valid positions.
20593
+ */
20594
+ function nextChar(cm, idx) {
20595
+ if (idx.pos + idx.dir < 0 || idx.pos + idx.dir >= idx.line.length) {
20596
+ idx.ln += idx.dir;
20597
+ if (!isLine(cm, idx.ln)) {
20598
+ idx.line = null;
20599
+ idx.ln = null;
20600
+ idx.pos = null;
20601
+ return;
20602
+ }
20603
+ idx.line = cm.getLine(idx.ln);
20604
+ idx.pos = (idx.dir > 0) ? 0 : idx.line.length - 1;
20605
+ }
20606
+ else {
20607
+ idx.pos += idx.dir;
20608
+ }
20609
+ }
20610
+
20611
+ /*
20612
+ Performs one iteration of traversal in forward direction
20613
+ Returns an index object of the new location
20614
+ */
20615
+ function forward(cm, ln, pos, dir) {
20616
+ var line = cm.getLine(ln);
20617
+ var stop = (line === "");
20618
+
20619
+ var curr = {
20620
+ line: line,
20621
+ ln: ln,
20622
+ pos: pos,
20623
+ dir: dir,
20624
+ }
20625
+
20626
+ var last_valid = {
20627
+ ln: curr.ln,
20628
+ pos: curr.pos,
20629
+ }
20630
+
20631
+ var skip_empty_lines = (curr.line === "");
20632
+
20633
+ // Move one step to skip character we start on
20634
+ nextChar(cm, curr);
20635
+
20636
+ while (curr.line !== null) {
20637
+ last_valid.ln = curr.ln;
20638
+ last_valid.pos = curr.pos;
20639
+
20640
+ if (curr.line === "" && !skip_empty_lines) {
20641
+ return { ln: curr.ln, pos: curr.pos, };
20642
+ }
20643
+ else if (stop && curr.line !== "" && !isWhiteSpaceString(curr.line[curr.pos])) {
20644
+ return { ln: curr.ln, pos: curr.pos, };
20645
+ }
20646
+ else if (isEndOfSentenceSymbol(curr.line[curr.pos])
20647
+ && !stop
20648
+ && (curr.pos === curr.line.length - 1
20649
+ || isWhiteSpaceString(curr.line[curr.pos + 1]))) {
20650
+ stop = true;
20651
+ }
20652
+
20653
+ nextChar(cm, curr);
20654
+ }
20655
+
20656
+ /*
20657
+ Set the position to the last non whitespace character on the last
20658
+ valid line in the case that we reach the end of the document.
20659
+ */
20660
+ var line = cm.getLine(last_valid.ln);
20661
+ last_valid.pos = 0;
20662
+ for(var i = line.length - 1; i >= 0; --i) {
20663
+ if (!isWhiteSpaceString(line[i])) {
20664
+ last_valid.pos = i;
20665
+ break;
20666
+ }
20667
+ }
20668
+
20669
+ return last_valid;
20670
+
20671
+ }
20672
+
20673
+ /*
20674
+ Performs one iteration of traversal in reverse direction
20675
+ Returns an index object of the new location
20676
+ */
20677
+ function reverse(cm, ln, pos, dir) {
20678
+ var line = cm.getLine(ln);
20679
+
20680
+ var curr = {
20681
+ line: line,
20682
+ ln: ln,
20683
+ pos: pos,
20684
+ dir: dir,
20685
+ }
20686
+
20687
+ var last_valid = {
20688
+ ln: curr.ln,
20689
+ pos: null,
20690
+ };
20691
+
20692
+ var skip_empty_lines = (curr.line === "");
20693
+
20694
+ // Move one step to skip character we start on
20695
+ nextChar(cm, curr);
20696
+
20697
+ while (curr.line !== null) {
20698
+
20699
+ if (curr.line === "" && !skip_empty_lines) {
20700
+ if (last_valid.pos !== null) {
20701
+ return last_valid;
20702
+ }
20703
+ else {
20704
+ return { ln: curr.ln, pos: curr.pos };
20705
+ }
20706
+ }
20707
+ else if (isEndOfSentenceSymbol(curr.line[curr.pos])
20708
+ && last_valid.pos !== null
20709
+ && !(curr.ln === last_valid.ln && curr.pos + 1 === last_valid.pos)) {
20710
+ return last_valid;
20711
+ }
20712
+ else if (curr.line !== "" && !isWhiteSpaceString(curr.line[curr.pos])) {
20713
+ skip_empty_lines = false;
20714
+ last_valid = { ln: curr.ln, pos: curr.pos }
20715
+ }
20716
+
20717
+ nextChar(cm, curr);
20718
+ }
20719
+
20720
+ /*
20721
+ Set the position to the first non whitespace character on the last
20722
+ valid line in the case that we reach the beginning of the document.
20723
+ */
20724
+ var line = cm.getLine(last_valid.ln);
20725
+ last_valid.pos = 0;
20726
+ for(var i = 0; i < line.length; ++i) {
20727
+ if (!isWhiteSpaceString(line[i])) {
20728
+ last_valid.pos = i;
20729
+ break;
20730
+ }
20731
+ }
20732
+ return last_valid;
20733
+ }
20734
+
20735
+ var curr_index = {
20736
+ ln: cur.line,
20737
+ pos: cur.ch,
20738
+ };
20739
+
20740
+ while (repeat > 0) {
20741
+ if (dir < 0) {
20742
+ curr_index = reverse(cm, curr_index.ln, curr_index.pos, dir);
20743
+ }
20744
+ else {
20745
+ curr_index = forward(cm, curr_index.ln, curr_index.pos, dir);
20746
+ }
20747
+ repeat--;
20748
+ }
20749
+
20750
+ return Pos(curr_index.ln, curr_index.pos);
20751
+ }
20752
+
20753
  // TODO: perhaps this finagling of start and end positions belonds
20754
  // in codemirror/replaceRange?
20755
  function selectCompanionObject(cm, head, symb, inclusive) {
20768
  // cursor is on a matching open bracket.
20769
  var offset = curChar === openSym ? 1 : 0;
20770
 
20771
+ start = cm.scanForBracket(Pos(cur.line, cur.ch + offset), -1, undefined, {'bracketRegex': bracketRegexp});
20772
+ end = cm.scanForBracket(Pos(cur.line, cur.ch + offset), 1, undefined, {'bracketRegex': bracketRegexp});
20773
 
20774
  if (!start || !end) {
20775
  return { start: cur, end: cur };
20899
  }
20900
  }
20901
  function splitBySlash(argString) {
20902
+ return splitBySeparator(argString, '/');
20903
+ }
20904
+
20905
+ function findUnescapedSlashes(argString) {
20906
+ return findUnescapedSeparators(argString, '/');
20907
+ }
20908
+
20909
+ function splitBySeparator(argString, separator) {
20910
+ var slashes = findUnescapedSeparators(argString, separator) || [];
20911
  if (!slashes.length) return [];
20912
  var tokens = [];
20913
  // in case of strings like foo/bar
20919
  return tokens;
20920
  }
20921
 
20922
+ function findUnescapedSeparators(str, separator) {
20923
+ if (!separator)
20924
+ separator = '/';
20925
+
20926
  var escapeNextChar = false;
20927
  var slashes = [];
20928
  for (var i = 0; i < str.length; i++) {
20929
  var c = str.charAt(i);
20930
+ if (!escapeNextChar && c == separator) {
20931
  slashes.push(i);
20932
  }
20933
  escapeNextChar = !escapeNextChar && (c == '\\');
21260
  var history = cm.doc.history.done;
21261
  var event = history[history.length - 2];
21262
  return event && event.ranges && event.ranges[0].head;
21263
+ } else if (markName == '.') {
21264
+ if (cm.doc.history.lastModTime == 0) {
21265
+ return // If no changes, bail out; don't bother to copy or reverse history array.
21266
+ } else {
21267
+ var changeHistory = cm.doc.history.done.filter(function(el){ if (el.changes !== undefined) { return el } });
21268
+ changeHistory.reverse();
21269
+ var lastEditPos = changeHistory[0].changes[0].to;
21270
+ }
21271
+ return lastEditPos;
21272
  }
21273
 
21274
  var mark = vim.marks[markName];
21793
  'any other getSearchCursor implementation.');
21794
  }
21795
  var argString = params.argString;
21796
+ var tokens = argString ? splitBySeparator(argString, argString[0]) : [];
21797
  var regexPart, replacePart = '', trailing, flagsPart, count;
21798
  var confirm = false; // Whether to confirm each replace.
21799
  var global = false; // True to replace all instances on a line, false to replace only 1.
21837
  global = true;
21838
  flagsPart.replace('g', '');
21839
  }
21840
+ regexPart = regexPart.replace(/\//g, "\\/") + '/' + flagsPart;
21841
  }
21842
  }
21843
  if (regexPart) {
22053
  }
22054
  if (!confirm) {
22055
  replaceAll();
22056
+ if (callback) { callback(); }
22057
  return;
22058
  }
22059
  showPrompt(cm, {
22079
  // so as to update the ". register as expected in real vim.
22080
  var text = [];
22081
  if (!isPlaying) {
22082
+ var selLength = lastChange.inVisualBlock && vim.lastSelection ?
22083
+ vim.lastSelection.visualBlock.height : 1;
22084
  var changes = lastChange.changes;
22085
  var text = [];
22086
  var i = 0;
22189
  exitInsertMode(cm);
22190
  }
22191
  }
22192
+ }
22193
  macroModeState.isPlaying = false;
22194
  }
22195
 
22393
  exitInsertMode(cm);
22394
  }
22395
  macroModeState.isPlaying = false;
22396
+ }
22397
 
22398
  function repeatInsertModeChanges(cm, changes, repeat) {
22399
  function keyHandler(binding) {
22451
  * @link http://arniebradfo.com/
22452
  * @author Petr Mukhortov
22453
  * @link http://mukhortov.com/
22454
+ * @since 2.2.4
22455
  */
22456
 
22457
  // console.log(window.heshOptions); // from wordpress php
22486
  isThemeOrPlugin: document.getElementById('newcontent') != null,
22487
 
22488
  isActive: function () {
22489
+ return editor != null;
22490
  },
22491
 
22492
  isVisualActive: function () {
22816
 
22817
  case 'foldGutter':
22818
  editor.setOption('gutters', value ? ['CodeMirror-linenumbers', 'CodeMirror-foldgutter'] : []);
22819
+ // break; // fallthrough expected here
22820
 
22821
  case 'tabSize':
22822
  editor.setOption('indentUnit', value); // indentUnit must always equal tabSize
22823
+ // break; // fallthrough expected here
22824
 
22825
  default:
22826
  heshOptions[event.target.id] = value;
23063
  var windowScrollPosition = { top: window.pageYOffset, left: window.pageXOffset }
23064
 
23065
  // update codemirror with the new textarea.value
23066
+ editor.doc.setValue(editor.getTextArea().value);f
23067
  editor.focus();
23068
 
23069
  var startLine = 0, endLine = 0, currentLine = 0;
23111
 
23112
  function startEditor() {
23113
  if (state.isActive()) return;
23114
+ if (target == null) return; // there is no textarea
23115
 
23116
  updateOptions();
23117
 
23150
  if (!state.isActive()) return;
23151
  setSettingsPanelState('closed');
23152
  editor.toTextArea();
23153
+ editor = undefined; // unset editor, for state.isActive();
23154
  }
23155
 
23156
 
23170
  }
23171
  }
23172
 
23173
+ // Start Up the App
23174
  if (document.readyState !== 'complete') {
23175
  if (window.addEventListener) window.addEventListener('load', initialise, false);
23176
  else if (window.attachEvent) window.attachEvent('onload', initialise);
dist/hesh.min.css CHANGED
@@ -1 +1 @@
1
- .CodeMirror{font-family:monospace;height:300px;color:#000;direction:ltr}.CodeMirror-lines{padding:4px 0}.CodeMirror pre{padding:0 4px}.CodeMirror-gutter-filler,.CodeMirror-scrollbar-filler{background-color:#fff}.CodeMirror-gutters{border-right:1px solid #ddd;background-color:#f7f7f7;white-space:nowrap}.CodeMirror-linenumber{padding:0 3px 0 5px;min-width:20px;text-align:right;color:#999;white-space:nowrap}.CodeMirror-guttermarker{color:#000}.CodeMirror-guttermarker-subtle{color:#999}.CodeMirror-cursor{border-left:1px solid #000;border-right:none;width:0}.CodeMirror div.CodeMirror-secondarycursor{border-left:1px solid silver}.cm-fat-cursor .CodeMirror-cursor{width:auto;border:0!important;background:#7e7}.cm-fat-cursor div.CodeMirror-cursors{z-index:1}.cm-animate-fat-cursor{width:auto;border:0;animation:a 1.06s steps(1) infinite;background-color:#7e7}.cm-tab{display:inline-block;text-decoration:inherit}.CodeMirror-rulers{position:absolute;left:0;right:0;top:-50px;bottom:-20px;overflow:hidden}.CodeMirror-ruler{border-left:1px solid #ccc;top:0;bottom:0;position:absolute}.cm-s-default .cm-header{color:blue}.cm-s-default .cm-quote{color:#090}.cm-negative{color:#d44}.cm-positive{color:#292}.cm-header,.cm-strong{font-weight:700}.cm-em{font-style:italic}.cm-link{text-decoration:underline}.cm-strikethrough{text-decoration:line-through}.cm-s-default .cm-keyword{color:#708}.cm-s-default .cm-atom{color:#219}.cm-s-default .cm-number{color:#164}.cm-s-default .cm-def{color:#00f}.cm-s-default .cm-variable-2{color:#05a}.cm-s-default .cm-type,.cm-s-default .cm-variable-3{color:#085}.cm-s-default .cm-comment{color:#a50}.cm-s-default .cm-string{color:#a11}.cm-s-default .cm-string-2{color:#f50}.cm-s-default .cm-meta,.cm-s-default .cm-qualifier{color:#555}.cm-s-default .cm-builtin{color:#30a}.cm-s-default .cm-bracket{color:#997}.cm-s-default .cm-tag{color:#170}.cm-s-default .cm-attribute{color:#00c}.cm-s-default .cm-hr{color:#999}.cm-s-default .cm-link{color:#00c}.cm-invalidchar,.cm-s-default .cm-error{color:red}.CodeMirror-composing{border-bottom:2px solid}div.CodeMirror span.CodeMirror-matchingbracket{color:#0f0}div.CodeMirror span.CodeMirror-nonmatchingbracket{color:#f22}.CodeMirror-matchingtag{background:rgba(255,150,0,.3)}.CodeMirror-activeline-background{background:#e8f2ff}.CodeMirror{position:relative;overflow:hidden;background:#fff}.CodeMirror-scroll{overflow:scroll!important;margin-bottom:-30px;margin-right:-30px;padding-bottom:30px;height:100%;outline:none}.CodeMirror-sizer{position:relative;border-right:30px solid transparent}.CodeMirror-gutter-filler,.CodeMirror-hscrollbar,.CodeMirror-scrollbar-filler,.CodeMirror-vscrollbar{position:absolute;z-index:6;display:none}.CodeMirror-vscrollbar{right:0;top:0;overflow-x:hidden;overflow-y:scroll}.CodeMirror-hscrollbar{bottom:0;left:0;overflow-y:hidden;overflow-x:scroll}.CodeMirror-scrollbar-filler{right:0;bottom:0}.CodeMirror-gutter-filler{left:0;bottom:0}.CodeMirror-gutters{position:absolute;left:0;top:0;min-height:100%;z-index:3}.CodeMirror-gutter{white-space:normal;height:100%;display:inline-block;vertical-align:top;margin-bottom:-30px}.CodeMirror-gutter-wrapper{position:absolute;z-index:4;background:none!important;border:none!important}.CodeMirror-gutter-background{position:absolute;top:0;bottom:0;z-index:4}.CodeMirror-gutter-elt{position:absolute;cursor:default;z-index:4}.CodeMirror-gutter-wrapper ::selection{background-color:transparent}.CodeMirror-gutter-wrapper ::-moz-selection{background-color:transparent}.CodeMirror-lines{cursor:text;min-height:1px}.CodeMirror pre{border-radius:0;border-width:0;background:transparent;font-family:inherit;font-size:inherit;margin:0;white-space:pre;word-wrap:normal;line-height:inherit;color:inherit;z-index:2;position:relative;overflow:visible;-webkit-tap-highlight-color:transparent;font-variant-ligatures:contextual}.CodeMirror-wrap pre{word-wrap:break-word;white-space:pre-wrap;word-break:normal}.CodeMirror-linebackground{position:absolute;left:0;right:0;top:0;bottom:0;z-index:0}.CodeMirror-linewidget{position:relative;z-index:2;overflow:auto}.CodeMirror-rtl pre{direction:rtl}.CodeMirror-code{outline:none}.CodeMirror-gutter,.CodeMirror-gutters,.CodeMirror-linenumber,.CodeMirror-scroll,.CodeMirror-sizer{box-sizing:content-box}.CodeMirror-measure{position:absolute;width:100%;height:0;overflow:hidden;visibility:hidden}.CodeMirror-cursor{position:absolute;pointer-events:none}.CodeMirror-measure pre{position:static}div.CodeMirror-cursors{visibility:hidden;position:relative;z-index:3}.CodeMirror-focused div.CodeMirror-cursors,div.CodeMirror-dragcursors{visibility:visible}.CodeMirror-selected{background:#d9d9d9}.CodeMirror-focused .CodeMirror-selected{background:#d7d4f0}.CodeMirror-crosshair{cursor:crosshair}.CodeMirror-line::selection,.CodeMirror-line>span::selection,.CodeMirror-line>span>span::selection{background:#d7d4f0}.CodeMirror-line::-moz-selection,.CodeMirror-line>span::-moz-selection,.CodeMirror-line>span>span::-moz-selection{background:#d7d4f0}.cm-searching{background-color:#ffa;background-color:rgba(255,255,0,.4)}.cm-force-border{padding-right:.1px}.cm-tab-wrap-hack:after{content:""}span.CodeMirror-selectedtext{background:none}.cm-s-3024-day.CodeMirror{background:#f7f7f7;color:#3a3432}.cm-s-3024-day div.CodeMirror-selected{background:#d6d5d4}.cm-s-3024-day .CodeMirror-line::-moz-selection,.cm-s-3024-day .CodeMirror-line>span::-moz-selection,.cm-s-3024-day .CodeMirror-line>span>span::-moz-selection{background:#d6d5d4}.cm-s-3024-day .CodeMirror-line::selection,.cm-s-3024-day .CodeMirror-line>span::selection,.cm-s-3024-day .CodeMirror-line>span>span::selection{background:#d6d5d4}.cm-s-3024-day .CodeMirror-line::-moz-selection,.cm-s-3024-day .CodeMirror-line>span::-moz-selection,.cm-s-3024-day .CodeMirror-line>span>span::-moz-selection{background:#d9d9d9}.cm-s-3024-day .CodeMirror-line::-moz-selection,.cm-s-3024-day .CodeMirror-line>span::-moz-selection,.cm-s-3024-day .CodeMirror-line>span>span::selection{background:#d9d9d9}.cm-s-3024-day .CodeMirror-gutters{background:#f7f7f7;border-right:0}.cm-s-3024-day .CodeMirror-guttermarker{color:#db2d20}.cm-s-3024-day .CodeMirror-guttermarker-subtle,.cm-s-3024-day .CodeMirror-linenumber{color:#807d7c}.cm-s-3024-day .CodeMirror-cursor{border-left:1px solid #5c5855}.cm-s-3024-day span.cm-comment{color:#cdab53}.cm-s-3024-day span.cm-atom,.cm-s-3024-day span.cm-number{color:#a16a94}.cm-s-3024-day span.cm-attribute,.cm-s-3024-day span.cm-property{color:#01a252}.cm-s-3024-day span.cm-keyword{color:#db2d20}.cm-s-3024-day span.cm-string{color:#fded02}.cm-s-3024-day span.cm-variable{color:#01a252}.cm-s-3024-day span.cm-variable-2{color:#01a0e4}.cm-s-3024-day span.cm-def{color:#e8bbd0}.cm-s-3024-day span.cm-bracket{color:#3a3432}.cm-s-3024-day span.cm-tag{color:#db2d20}.cm-s-3024-day span.cm-link{color:#a16a94}.cm-s-3024-day span.cm-error{background:#db2d20;color:#5c5855}.cm-s-3024-day .CodeMirror-activeline-background{background:#e8f2ff}.cm-s-3024-day .CodeMirror-matchingbracket{text-decoration:underline;color:#a16a94!important}.cm-s-3024-night.CodeMirror{background:#090300;color:#d6d5d4}.cm-s-3024-night div.CodeMirror-selected{background:#3a3432}.cm-s-3024-night .CodeMirror-line::selection,.cm-s-3024-night .CodeMirror-line>span::selection,.cm-s-3024-night .CodeMirror-line>span>span::selection{background:rgba(58,52,50,.99)}.cm-s-3024-night .CodeMirror-line::-moz-selection,.cm-s-3024-night .CodeMirror-line>span::-moz-selection,.cm-s-3024-night .CodeMirror-line>span>span::-moz-selection{background:rgba(58,52,50,.99)}.cm-s-3024-night .CodeMirror-gutters{background:#090300;border-right:0}.cm-s-3024-night .CodeMirror-guttermarker{color:#db2d20}.cm-s-3024-night .CodeMirror-guttermarker-subtle,.cm-s-3024-night .CodeMirror-linenumber{color:#5c5855}.cm-s-3024-night .CodeMirror-cursor{border-left:1px solid #807d7c}.cm-s-3024-night span.cm-comment{color:#cdab53}.cm-s-3024-night span.cm-atom,.cm-s-3024-night span.cm-number{color:#a16a94}.cm-s-3024-night span.cm-attribute,.cm-s-3024-night span.cm-property{color:#01a252}.cm-s-3024-night span.cm-keyword{color:#db2d20}.cm-s-3024-night span.cm-string{color:#fded02}.cm-s-3024-night span.cm-variable{color:#01a252}.cm-s-3024-night span.cm-variable-2{color:#01a0e4}.cm-s-3024-night span.cm-def{color:#e8bbd0}.cm-s-3024-night span.cm-bracket{color:#d6d5d4}.cm-s-3024-night span.cm-tag{color:#db2d20}.cm-s-3024-night span.cm-link{color:#a16a94}.cm-s-3024-night span.cm-error{background:#db2d20;color:#807d7c}.cm-s-3024-night .CodeMirror-activeline-background{background:#2f2f2f}.cm-s-3024-night .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-abcdef.CodeMirror{background:#0f0f0f;color:#defdef}.cm-s-abcdef div.CodeMirror-selected{background:#515151}.cm-s-abcdef .CodeMirror-line::selection,.cm-s-abcdef .CodeMirror-line>span::selection,.cm-s-abcdef .CodeMirror-line>span>span::selection{background:rgba(56,56,56,.99)}.cm-s-abcdef .CodeMirror-line::-moz-selection,.cm-s-abcdef .CodeMirror-line>span::-moz-selection,.cm-s-abcdef .CodeMirror-line>span>span::-moz-selection{background:rgba(56,56,56,.99)}.cm-s-abcdef .CodeMirror-gutters{background:#555;border-right:2px solid #314151}.cm-s-abcdef .CodeMirror-guttermarker{color:#222}.cm-s-abcdef .CodeMirror-guttermarker-subtle{color:azure}.cm-s-abcdef .CodeMirror-linenumber{color:#fff}.cm-s-abcdef .CodeMirror-cursor{border-left:1px solid #0f0}.cm-s-abcdef span.cm-keyword{color:#b8860b;font-weight:700}.cm-s-abcdef span.cm-atom{color:#77f}.cm-s-abcdef span.cm-number{color:violet}.cm-s-abcdef span.cm-def{color:#fffabc}.cm-s-abcdef span.cm-variable{color:#abcdef}.cm-s-abcdef span.cm-variable-2{color:#cacbcc}.cm-s-abcdef span.cm-type,.cm-s-abcdef span.cm-variable-3{color:#def}.cm-s-abcdef span.cm-property{color:#fedcba}.cm-s-abcdef span.cm-operator{color:#ff0}.cm-s-abcdef span.cm-comment{color:#7a7b7c;font-style:italic}.cm-s-abcdef span.cm-string{color:#2b4}.cm-s-abcdef span.cm-meta{color:#c9f}.cm-s-abcdef span.cm-qualifier{color:#fff700}.cm-s-abcdef span.cm-builtin{color:#30aabc}.cm-s-abcdef span.cm-bracket{color:#8a8a8a}.cm-s-abcdef span.cm-tag{color:#fd4}.cm-s-abcdef span.cm-attribute{color:#df0}.cm-s-abcdef span.cm-error{color:red}.cm-s-abcdef span.cm-header{color:#7fffd4;font-weight:700}.cm-s-abcdef span.cm-link{color:#8a2be2}.cm-s-abcdef .CodeMirror-activeline-background{background:#314151}.cm-s-ambiance.CodeMirror{box-shadow:none}.cm-s-ambiance .cm-header{color:blue}.cm-s-ambiance .cm-quote{color:#24c2c7}.cm-s-ambiance .cm-keyword{color:#cda869}.cm-s-ambiance .cm-atom{color:#cf7ea9}.cm-s-ambiance .cm-number{color:#78cf8a}.cm-s-ambiance .cm-def{color:#aac6e3}.cm-s-ambiance .cm-variable{color:#ffb795}.cm-s-ambiance .cm-variable-2{color:#eed1b3}.cm-s-ambiance .cm-type,.cm-s-ambiance .cm-variable-3{color:#faded3}.cm-s-ambiance .cm-property{color:#eed1b3}.cm-s-ambiance .cm-operator{color:#fa8d6a}.cm-s-ambiance .cm-comment{color:#555;font-style:italic}.cm-s-ambiance .cm-string{color:#8f9d6a}.cm-s-ambiance .cm-string-2{color:#9d937c}.cm-s-ambiance .cm-meta{color:#d2a8a1}.cm-s-ambiance .cm-qualifier{color:#ff0}.cm-s-ambiance .cm-builtin{color:#99c}.cm-s-ambiance .cm-bracket{color:#24c2c7}.cm-s-ambiance .cm-tag{color:#fee4ff}.cm-s-ambiance .cm-attribute{color:#9b859d}.cm-s-ambiance .cm-hr{color:pink}.cm-s-ambiance .cm-link{color:#f4c20b}.cm-s-ambiance .cm-special{color:#ff9d00}.cm-s-ambiance .cm-error{color:#af2018}.cm-s-ambiance .CodeMirror-matchingbracket{color:#0f0}.cm-s-ambiance .CodeMirror-nonmatchingbracket{color:#f22}.cm-s-ambiance div.CodeMirror-selected{background:hsla(0,0%,100%,.15)}.cm-s-ambiance.CodeMirror-focused div.CodeMirror-selected{background:hsla(0,0%,100%,.1)}.cm-s-ambiance .CodeMirror-line::selection,.cm-s-ambiance .CodeMirror-line>span::selection,.cm-s-ambiance .CodeMirror-line>span>span::selection{background:hsla(0,0%,100%,.1)}.cm-s-ambiance .CodeMirror-line::-moz-selection,.cm-s-ambiance .CodeMirror-line>span::-moz-selection,.cm-s-ambiance .CodeMirror-line>span>span::-moz-selection{background:hsla(0,0%,100%,.1)}.cm-s-ambiance.CodeMirror{line-height:1.4em;color:#e6e1dc;background-color:#202020;box-shadow:inset 0 0 10px #000}.cm-s-ambiance .CodeMirror-gutters{background:#3d3d3d;border-right:1px solid #4d4d4d;box-shadow:0 10px 20px #000}.cm-s-ambiance .CodeMirror-linenumber{text-shadow:0 1px 1px #4d4d4d;color:#111;padding:0 5px}.cm-s-ambiance .CodeMirror-guttermarker{color:#aaa}.cm-s-ambiance .CodeMirror-guttermarker-subtle{color:#111}.cm-s-ambiance .CodeMirror-cursor{border-left:1px solid #7991e8}.cm-s-ambiance .CodeMirror-activeline-background{background:none repeat scroll 0 0 hsla(0,0%,100%,.031)}.cm-s-ambiance.CodeMirror,.cm-s-ambiance .CodeMirror-gutters{background-image:url("data:image/png;base64,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")}.cm-s-base16-dark.CodeMirror{background:#151515;color:#e0e0e0}.cm-s-base16-dark div.CodeMirror-selected{background:#303030}.cm-s-base16-dark .CodeMirror-line::selection,.cm-s-base16-dark .CodeMirror-line>span::selection,.cm-s-base16-dark .CodeMirror-line>span>span::selection{background:rgba(48,48,48,.99)}.cm-s-base16-dark .CodeMirror-line::-moz-selection,.cm-s-base16-dark .CodeMirror-line>span::-moz-selection,.cm-s-base16-dark .CodeMirror-line>span>span::-moz-selection{background:rgba(48,48,48,.99)}.cm-s-base16-dark .CodeMirror-gutters{background:#151515;border-right:0}.cm-s-base16-dark .CodeMirror-guttermarker{color:#ac4142}.cm-s-base16-dark .CodeMirror-guttermarker-subtle,.cm-s-base16-dark .CodeMirror-linenumber{color:#505050}.cm-s-base16-dark .CodeMirror-cursor{border-left:1px solid #b0b0b0}.cm-s-base16-dark span.cm-comment{color:#8f5536}.cm-s-base16-dark span.cm-atom,.cm-s-base16-dark span.cm-number{color:#aa759f}.cm-s-base16-dark span.cm-attribute,.cm-s-base16-dark span.cm-property{color:#90a959}.cm-s-base16-dark span.cm-keyword{color:#ac4142}.cm-s-base16-dark span.cm-string{color:#f4bf75}.cm-s-base16-dark span.cm-variable{color:#90a959}.cm-s-base16-dark span.cm-variable-2{color:#6a9fb5}.cm-s-base16-dark span.cm-def{color:#d28445}.cm-s-base16-dark span.cm-bracket{color:#e0e0e0}.cm-s-base16-dark span.cm-tag{color:#ac4142}.cm-s-base16-dark span.cm-link{color:#aa759f}.cm-s-base16-dark span.cm-error{background:#ac4142;color:#b0b0b0}.cm-s-base16-dark .CodeMirror-activeline-background{background:#202020}.cm-s-base16-dark .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-base16-light.CodeMirror{background:#f5f5f5;color:#202020}.cm-s-base16-light div.CodeMirror-selected{background:#e0e0e0}.cm-s-base16-light .CodeMirror-line::selection,.cm-s-base16-light .CodeMirror-line>span::selection,.cm-s-base16-light .CodeMirror-line>span>span::selection{background:#e0e0e0}.cm-s-base16-light .CodeMirror-line::-moz-selection,.cm-s-base16-light .CodeMirror-line>span::-moz-selection,.cm-s-base16-light .CodeMirror-line>span>span::-moz-selection{background:#e0e0e0}.cm-s-base16-light .CodeMirror-gutters{background:#f5f5f5;border-right:0}.cm-s-base16-light .CodeMirror-guttermarker{color:#ac4142}.cm-s-base16-light .CodeMirror-guttermarker-subtle,.cm-s-base16-light .CodeMirror-linenumber{color:#b0b0b0}.cm-s-base16-light .CodeMirror-cursor{border-left:1px solid #505050}.cm-s-base16-light span.cm-comment{color:#8f5536}.cm-s-base16-light span.cm-atom,.cm-s-base16-light span.cm-number{color:#aa759f}.cm-s-base16-light span.cm-attribute,.cm-s-base16-light span.cm-property{color:#90a959}.cm-s-base16-light span.cm-keyword{color:#ac4142}.cm-s-base16-light span.cm-string{color:#f4bf75}.cm-s-base16-light span.cm-variable{color:#90a959}.cm-s-base16-light span.cm-variable-2{color:#6a9fb5}.cm-s-base16-light span.cm-def{color:#d28445}.cm-s-base16-light span.cm-bracket{color:#202020}.cm-s-base16-light span.cm-tag{color:#ac4142}.cm-s-base16-light span.cm-link{color:#aa759f}.cm-s-base16-light span.cm-error{background:#ac4142;color:#505050}.cm-s-base16-light .CodeMirror-activeline-background{background:#dddcdc}.cm-s-base16-light .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-bespin.CodeMirror{background:#28211c;color:#9d9b97}.cm-s-bespin div.CodeMirror-selected{background:#36312e!important}.cm-s-bespin .CodeMirror-gutters{background:#28211c;border-right:0}.cm-s-bespin .CodeMirror-linenumber{color:#666}.cm-s-bespin .CodeMirror-cursor{border-left:1px solid #797977!important}.cm-s-bespin span.cm-comment{color:#937121}.cm-s-bespin span.cm-atom,.cm-s-bespin span.cm-number{color:#9b859d}.cm-s-bespin span.cm-attribute,.cm-s-bespin span.cm-property{color:#54be0d}.cm-s-bespin span.cm-keyword{color:#cf6a4c}.cm-s-bespin span.cm-string{color:#f9ee98}.cm-s-bespin span.cm-variable{color:#54be0d}.cm-s-bespin span.cm-variable-2{color:#5ea6ea}.cm-s-bespin span.cm-def{color:#cf7d34}.cm-s-bespin span.cm-error{background:#cf6a4c;color:#797977}.cm-s-bespin span.cm-bracket{color:#9d9b97}.cm-s-bespin span.cm-tag{color:#cf6a4c}.cm-s-bespin span.cm-link{color:#9b859d}.cm-s-bespin .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-bespin .CodeMirror-activeline-background{background:#404040}.cm-s-blackboard.CodeMirror{background:#0c1021;color:#f8f8f8}.cm-s-blackboard div.CodeMirror-selected{background:#253b76}.cm-s-blackboard .CodeMirror-line::selection,.cm-s-blackboard .CodeMirror-line>span::selection,.cm-s-blackboard .CodeMirror-line>span>span::selection{background:rgba(37,59,118,.99)}.cm-s-blackboard .CodeMirror-line::-moz-selection,.cm-s-blackboard .CodeMirror-line>span::-moz-selection,.cm-s-blackboard .CodeMirror-line>span>span::-moz-selection{background:rgba(37,59,118,.99)}.cm-s-blackboard .CodeMirror-gutters{background:#0c1021;border-right:0}.cm-s-blackboard .CodeMirror-guttermarker{color:#fbde2d}.cm-s-blackboard .CodeMirror-guttermarker-subtle,.cm-s-blackboard .CodeMirror-linenumber{color:#888}.cm-s-blackboard .CodeMirror-cursor{border-left:1px solid #a7a7a7}.cm-s-blackboard .cm-keyword{color:#fbde2d}.cm-s-blackboard .cm-atom,.cm-s-blackboard .cm-number{color:#d8fa3c}.cm-s-blackboard .cm-def{color:#8da6ce}.cm-s-blackboard .cm-variable{color:#ff6400}.cm-s-blackboard .cm-operator{color:#fbde2d}.cm-s-blackboard .cm-comment{color:#aeaeae}.cm-s-blackboard .cm-string,.cm-s-blackboard .cm-string-2{color:#61ce3c}.cm-s-blackboard .cm-meta{color:#d8fa3c}.cm-s-blackboard .cm-attribute,.cm-s-blackboard .cm-builtin,.cm-s-blackboard .cm-tag{color:#8da6ce}.cm-s-blackboard .cm-header{color:#ff6400}.cm-s-blackboard .cm-hr{color:#aeaeae}.cm-s-blackboard .cm-link{color:#8da6ce}.cm-s-blackboard .cm-error{background:#9d1e15;color:#f8f8f8}.cm-s-blackboard .CodeMirror-activeline-background{background:#3c3636}.cm-s-blackboard .CodeMirror-matchingbracket{outline:1px solid grey;color:#fff!important}.cm-s-cobalt.CodeMirror{background:#002240;color:#fff}.cm-s-cobalt div.CodeMirror-selected{background:#b36539}.cm-s-cobalt .CodeMirror-line::selection,.cm-s-cobalt .CodeMirror-line>span::selection,.cm-s-cobalt .CodeMirror-line>span>span::selection{background:rgba(179,101,57,.99)}.cm-s-cobalt .CodeMirror-line::-moz-selection,.cm-s-cobalt .CodeMirror-line>span::-moz-selection,.cm-s-cobalt .CodeMirror-line>span>span::-moz-selection{background:rgba(179,101,57,.99)}.cm-s-cobalt .CodeMirror-gutters{background:#002240;border-right:1px solid #aaa}.cm-s-cobalt .CodeMirror-guttermarker{color:#ffee80}.cm-s-cobalt .CodeMirror-guttermarker-subtle,.cm-s-cobalt .CodeMirror-linenumber{color:#d0d0d0}.cm-s-cobalt .CodeMirror-cursor{border-left:1px solid #fff}.cm-s-cobalt span.cm-comment{color:#08f}.cm-s-cobalt span.cm-atom{color:#845dc4}.cm-s-cobalt span.cm-attribute,.cm-s-cobalt span.cm-number{color:#ff80e1}.cm-s-cobalt span.cm-keyword{color:#ffee80}.cm-s-cobalt span.cm-string{color:#3ad900}.cm-s-cobalt span.cm-meta{color:#ff9d00}.cm-s-cobalt span.cm-tag,.cm-s-cobalt span.cm-variable-2{color:#9effff}.cm-s-cobalt .cm-type,.cm-s-cobalt span.cm-def,.cm-s-cobalt span.cm-variable-3{color:#fff}.cm-s-cobalt span.cm-bracket{color:#d8d8d8}.cm-s-cobalt span.cm-builtin,.cm-s-cobalt span.cm-special{color:#ff9e59}.cm-s-cobalt span.cm-link{color:#845dc4}.cm-s-cobalt span.cm-error{color:#9d1e15}.cm-s-cobalt .CodeMirror-activeline-background{background:#002d57}.cm-s-cobalt .CodeMirror-matchingbracket{outline:1px solid grey;color:#fff!important}.cm-s-colorforth.CodeMirror{background:#000;color:#f8f8f8}.cm-s-colorforth .CodeMirror-gutters{background:#0a001f;border-right:1px solid #aaa}.cm-s-colorforth .CodeMirror-guttermarker{color:#ffbd40}.cm-s-colorforth .CodeMirror-guttermarker-subtle{color:#78846f}.cm-s-colorforth .CodeMirror-linenumber{color:#bababa}.cm-s-colorforth .CodeMirror-cursor{border-left:1px solid #fff}.cm-s-colorforth span.cm-comment{color:#ededed}.cm-s-colorforth span.cm-def{color:#ff1c1c;font-weight:700}.cm-s-colorforth span.cm-keyword{color:#ffd900}.cm-s-colorforth span.cm-builtin{color:#00d95a}.cm-s-colorforth span.cm-variable{color:#73ff00}.cm-s-colorforth span.cm-string{color:#007bff}.cm-s-colorforth span.cm-number{color:#00c4ff}.cm-s-colorforth span.cm-atom{color:#606060}.cm-s-colorforth span.cm-variable-2{color:#eee}.cm-s-colorforth span.cm-type,.cm-s-colorforth span.cm-variable-3{color:#ddd}.cm-s-colorforth span.cm-meta{color:#ff0}.cm-s-colorforth span.cm-qualifier{color:#fff700}.cm-s-colorforth span.cm-bracket{color:#cc7}.cm-s-colorforth span.cm-tag{color:#ffbd40}.cm-s-colorforth span.cm-attribute{color:#fff700}.cm-s-colorforth span.cm-error{color:red}.cm-s-colorforth div.CodeMirror-selected{background:#333d53}.cm-s-colorforth span.cm-compilation{background:hsla(0,0%,100%,.12)}.cm-s-colorforth .CodeMirror-activeline-background{background:#253540}.cm-s-dracula.CodeMirror,.cm-s-dracula .CodeMirror-gutters{background-color:#282a36!important;color:#f8f8f2!important;border:none}.cm-s-dracula .CodeMirror-gutters{color:#282a36}.cm-s-dracula .CodeMirror-cursor{border-left:thin solid #f8f8f0}.cm-s-dracula .CodeMirror-linenumber{color:#6d8a88}.cm-s-dracula .CodeMirror-selected{background:hsla(0,0%,100%,.1)}.cm-s-dracula .CodeMirror-line::selection,.cm-s-dracula .CodeMirror-line>span::selection,.cm-s-dracula .CodeMirror-line>span>span::selection{background:hsla(0,0%,100%,.1)}.cm-s-dracula .CodeMirror-line::-moz-selection,.cm-s-dracula .CodeMirror-line>span::-moz-selection,.cm-s-dracula .CodeMirror-line>span>span::-moz-selection{background:hsla(0,0%,100%,.1)}.cm-s-dracula span.cm-comment{color:#6272a4}.cm-s-dracula span.cm-string,.cm-s-dracula span.cm-string-2{color:#f1fa8c}.cm-s-dracula span.cm-number{color:#bd93f9}.cm-s-dracula span.cm-variable{color:#50fa7b}.cm-s-dracula span.cm-variable-2{color:#fff}.cm-s-dracula span.cm-def{color:#50fa7b}.cm-s-dracula span.cm-keyword,.cm-s-dracula span.cm-operator{color:#ff79c6}.cm-s-dracula span.cm-atom{color:#bd93f9}.cm-s-dracula span.cm-meta{color:#f8f8f2}.cm-s-dracula span.cm-tag{color:#ff79c6}.cm-s-dracula span.cm-attribute,.cm-s-dracula span.cm-qualifier{color:#50fa7b}.cm-s-dracula span.cm-property{color:#66d9ef}.cm-s-dracula span.cm-builtin{color:#50fa7b}.cm-s-dracula span.cm-type,.cm-s-dracula span.cm-variable-3{color:#ffb86c}.cm-s-dracula .CodeMirror-activeline-background{background:hsla(0,0%,100%,.1)}.cm-s-dracula .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-duotone-dark.CodeMirror{background:#2a2734;color:#6c6783}.cm-s-duotone-dark div.CodeMirror-selected{background:#545167!important}.cm-s-duotone-dark .CodeMirror-gutters{background:#2a2734;border-right:0}.cm-s-duotone-dark .CodeMirror-linenumber{color:#545167}.cm-s-duotone-dark .CodeMirror-cursor{border-left:1px solid #ffad5c;border-right:.5em solid #ffad5c;opacity:.5}.cm-s-duotone-dark .CodeMirror-activeline-background{background:#363342;opacity:.5}.cm-s-duotone-dark .cm-fat-cursor .CodeMirror-cursor{background:#ffad5c;opacity:.5}.cm-s-duotone-dark span.cm-atom,.cm-s-duotone-dark span.cm-attribute,.cm-s-duotone-dark span.cm-hr,.cm-s-duotone-dark span.cm-keyword,.cm-s-duotone-dark span.cm-link,.cm-s-duotone-dark span.cm-number,.cm-s-duotone-dark span.cm-quote,.cm-s-duotone-dark span.cm-variable{color:#fc9}.cm-s-duotone-dark span.cm-property{color:#9a86fd}.cm-s-duotone-dark span.cm-negative,.cm-s-duotone-dark span.cm-punctuation,.cm-s-duotone-dark span.cm-unit{color:#e09142}.cm-s-duotone-dark span.cm-string{color:#ffb870}.cm-s-duotone-dark span.cm-operator{color:#ffad5c}.cm-s-duotone-dark span.cm-positive{color:#6a51e6}.cm-s-duotone-dark span.cm-string-2,.cm-s-duotone-dark span.cm-type,.cm-s-duotone-dark span.cm-url,.cm-s-duotone-dark span.cm-variable-2,.cm-s-duotone-dark span.cm-variable-3{color:#7a63ee}.cm-s-duotone-dark span.cm-builtin,.cm-s-duotone-dark span.cm-def,.cm-s-duotone-dark span.cm-em,.cm-s-duotone-dark span.cm-header,.cm-s-duotone-dark span.cm-qualifier,.cm-s-duotone-dark span.cm-tag{color:#eeebff}.cm-s-duotone-dark span.cm-bracket,.cm-s-duotone-dark span.cm-comment{color:#6c6783}.cm-s-duotone-dark span.cm-error,.cm-s-duotone-dark span.cm-invalidchar{color:red}.cm-s-duotone-dark span.cm-header{font-weight:400}.cm-s-duotone-dark .CodeMirror-matchingbracket{text-decoration:underline;color:#eeebff!important}.cm-s-duotone-light.CodeMirror{background:#faf8f5;color:#b29762}.cm-s-duotone-light div.CodeMirror-selected{background:#e3dcce!important}.cm-s-duotone-light .CodeMirror-gutters{background:#faf8f5;border-right:0}.cm-s-duotone-light .CodeMirror-linenumber{color:#cdc4b1}.cm-s-duotone-light .CodeMirror-cursor{border-left:1px solid #93abdc;border-right:.5em solid #93abdc;opacity:.5}.cm-s-duotone-light .CodeMirror-activeline-background{background:#e3dcce;opacity:.5}.cm-s-duotone-light .cm-fat-cursor .CodeMirror-cursor{background:#93abdc;opacity:.5}.cm-s-duotone-light-light span.cm-hr,.cm-s-duotone-light-light span.cm-link,.cm-s-duotone-light span.cm-atom,.cm-s-duotone-light span.cm-attribute,.cm-s-duotone-light span.cm-keyword,.cm-s-duotone-light span.cm-number,.cm-s-duotone-light span.cm-quote,.cm-s-duotone-light span.cm-variable{color:#063289}.cm-s-duotone-light span.cm-property{color:#b29762}.cm-s-duotone-light span.cm-negative,.cm-s-duotone-light span.cm-punctuation,.cm-s-duotone-light span.cm-unit{color:#063289}.cm-s-duotone-light span.cm-operator,.cm-s-duotone-light span.cm-string{color:#1659df}.cm-s-duotone-light span.cm-positive,.cm-s-duotone-light span.cm-string-2,.cm-s-duotone-light span.cm-type,.cm-s-duotone-light span.cm-url,.cm-s-duotone-light span.cm-variable-2,.cm-s-duotone-light span.cm-variable-3{color:#896724}.cm-s-duotone-light span.cm-builtin,.cm-s-duotone-light span.cm-def,.cm-s-duotone-light span.cm-em,.cm-s-duotone-light span.cm-header,.cm-s-duotone-light span.cm-qualifier,.cm-s-duotone-light span.cm-tag{color:#2d2006}.cm-s-duotone-light span.cm-bracket,.cm-s-duotone-light span.cm-comment{color:#b6ad9a}.cm-s-duotone-light span.cm-error,.cm-s-duotone-light span.cm-invalidchar{color:red}.cm-s-duotone-light span.cm-header{font-weight:400}.cm-s-duotone-light .CodeMirror-matchingbracket{text-decoration:underline;color:#faf8f5!important}.cm-s-eclipse span.cm-meta{color:#ff1717}.cm-s-eclipse span.cm-keyword{line-height:1em;font-weight:700;color:#7f0055}.cm-s-eclipse span.cm-atom{color:#219}.cm-s-eclipse span.cm-number{color:#164}.cm-s-eclipse span.cm-def{color:#00f}.cm-s-eclipse span.cm-variable{color:#000}.cm-s-eclipse span.cm-type,.cm-s-eclipse span.cm-variable-2,.cm-s-eclipse span.cm-variable-3{color:#0000c0}.cm-s-eclipse span.cm-operator,.cm-s-eclipse span.cm-property{color:#000}.cm-s-eclipse span.cm-comment{color:#3f7f5f}.cm-s-eclipse span.cm-string{color:#2a00ff}.cm-s-eclipse span.cm-string-2{color:#f50}.cm-s-eclipse span.cm-qualifier{color:#555}.cm-s-eclipse span.cm-builtin{color:#30a}.cm-s-eclipse span.cm-bracket{color:#cc7}.cm-s-eclipse span.cm-tag{color:#170}.cm-s-eclipse span.cm-attribute{color:#00c}.cm-s-eclipse span.cm-link{color:#219}.cm-s-eclipse span.cm-error{color:red}.cm-s-eclipse .CodeMirror-activeline-background{background:#e8f2ff}.cm-s-eclipse .CodeMirror-matchingbracket{outline:1px solid grey;color:#000!important}.cm-s-elegant span.cm-atom,.cm-s-elegant span.cm-number,.cm-s-elegant span.cm-string{color:#762}.cm-s-elegant span.cm-comment{color:#262;font-style:italic;line-height:1em}.cm-s-elegant span.cm-meta{color:#555;font-style:italic;line-height:1em}.cm-s-elegant span.cm-variable{color:#000}.cm-s-elegant span.cm-variable-2{color:#b11}.cm-s-elegant span.cm-qualifier{color:#555}.cm-s-elegant span.cm-keyword{color:#730}.cm-s-elegant span.cm-builtin{color:#30a}.cm-s-elegant span.cm-link{color:#762}.cm-s-elegant span.cm-error{background-color:#fdd}.cm-s-elegant .CodeMirror-activeline-background{background:#e8f2ff}.cm-s-elegant .CodeMirror-matchingbracket{outline:1px solid grey;color:#000!important}.cm-s-erlang-dark.CodeMirror{background:#002240;color:#fff}.cm-s-erlang-dark div.CodeMirror-selected{background:#b36539}.cm-s-erlang-dark .CodeMirror-line::selection,.cm-s-erlang-dark .CodeMirror-line>span::selection,.cm-s-erlang-dark .CodeMirror-line>span>span::selection{background:rgba(179,101,57,.99)}.cm-s-erlang-dark .CodeMirror-line::-moz-selection,.cm-s-erlang-dark .CodeMirror-line>span::-moz-selection,.cm-s-erlang-dark .CodeMirror-line>span>span::-moz-selection{background:rgba(179,101,57,.99)}.cm-s-erlang-dark .CodeMirror-gutters{background:#002240;border-right:1px solid #aaa}.cm-s-erlang-dark .CodeMirror-guttermarker{color:#fff}.cm-s-erlang-dark .CodeMirror-guttermarker-subtle,.cm-s-erlang-dark .CodeMirror-linenumber{color:#d0d0d0}.cm-s-erlang-dark .CodeMirror-cursor{border-left:1px solid #fff}.cm-s-erlang-dark span.cm-quote{color:#ccc}.cm-s-erlang-dark span.cm-atom{color:#f133f1}.cm-s-erlang-dark span.cm-attribute{color:#ff80e1}.cm-s-erlang-dark span.cm-bracket{color:#ff9d00}.cm-s-erlang-dark span.cm-builtin{color:#eaa}.cm-s-erlang-dark span.cm-comment{color:#77f}.cm-s-erlang-dark span.cm-def{color:#e7a}.cm-s-erlang-dark span.cm-keyword{color:#ffee80}.cm-s-erlang-dark span.cm-meta{color:#50fefe}.cm-s-erlang-dark span.cm-number{color:#ffd0d0}.cm-s-erlang-dark span.cm-operator{color:#d55}.cm-s-erlang-dark span.cm-property,.cm-s-erlang-dark span.cm-qualifier{color:#ccc}.cm-s-erlang-dark span.cm-special{color:#fbb}.cm-s-erlang-dark span.cm-string{color:#3ad900}.cm-s-erlang-dark span.cm-string-2{color:#ccc}.cm-s-erlang-dark span.cm-tag{color:#9effff}.cm-s-erlang-dark span.cm-variable{color:#50fe50}.cm-s-erlang-dark span.cm-variable-2{color:#e0e}.cm-s-erlang-dark span.cm-type,.cm-s-erlang-dark span.cm-variable-3{color:#ccc}.cm-s-erlang-dark span.cm-error{color:#9d1e15}.cm-s-erlang-dark .CodeMirror-activeline-background{background:#013461}.cm-s-erlang-dark .CodeMirror-matchingbracket{outline:1px solid grey;color:#fff!important}.cm-s-hopscotch.CodeMirror{background:#322931;color:#d5d3d5}.cm-s-hopscotch div.CodeMirror-selected{background:#433b42!important}.cm-s-hopscotch .CodeMirror-gutters{background:#322931;border-right:0}.cm-s-hopscotch .CodeMirror-linenumber{color:#797379}.cm-s-hopscotch .CodeMirror-cursor{border-left:1px solid #989498!important}.cm-s-hopscotch span.cm-comment{color:#b33508}.cm-s-hopscotch span.cm-atom,.cm-s-hopscotch span.cm-number{color:#c85e7c}.cm-s-hopscotch span.cm-attribute,.cm-s-hopscotch span.cm-property{color:#8fc13e}.cm-s-hopscotch span.cm-keyword{color:#dd464c}.cm-s-hopscotch span.cm-string{color:#fdcc59}.cm-s-hopscotch span.cm-variable{color:#8fc13e}.cm-s-hopscotch span.cm-variable-2{color:#1290bf}.cm-s-hopscotch span.cm-def{color:#fd8b19}.cm-s-hopscotch span.cm-error{background:#dd464c;color:#989498}.cm-s-hopscotch span.cm-bracket{color:#d5d3d5}.cm-s-hopscotch span.cm-tag{color:#dd464c}.cm-s-hopscotch span.cm-link{color:#c85e7c}.cm-s-hopscotch .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-hopscotch .CodeMirror-activeline-background{background:#302020}.cm-s-icecoder{color:#666;background:#1d1d1b}.cm-s-icecoder span.cm-keyword{color:#eee;font-weight:700}.cm-s-icecoder span.cm-atom{color:#e1c76e}.cm-s-icecoder span.cm-number{color:#6cb5d9}.cm-s-icecoder span.cm-def{color:#b9ca4a}.cm-s-icecoder span.cm-variable{color:#6cb5d9}.cm-s-icecoder span.cm-variable-2{color:#cc1e5c}.cm-s-icecoder span.cm-type,.cm-s-icecoder span.cm-variable-3{color:#f9602c}.cm-s-icecoder span.cm-property{color:#eee}.cm-s-icecoder span.cm-operator{color:#9179bb}.cm-s-icecoder span.cm-comment{color:#97a3aa}.cm-s-icecoder span.cm-string{color:#b9ca4a}.cm-s-icecoder span.cm-string-2{color:#6cb5d9}.cm-s-icecoder span.cm-meta,.cm-s-icecoder span.cm-qualifier{color:#555}.cm-s-icecoder span.cm-builtin{color:#214e7b}.cm-s-icecoder span.cm-bracket{color:#cc7}.cm-s-icecoder span.cm-tag{color:#e8e8e8}.cm-s-icecoder span.cm-attribute{color:#099}.cm-s-icecoder span.cm-header{color:#6a0d6a}.cm-s-icecoder span.cm-quote{color:#186718}.cm-s-icecoder span.cm-hr{color:#888}.cm-s-icecoder span.cm-link{color:#e1c76e}.cm-s-icecoder span.cm-error{color:#d00}.cm-s-icecoder .CodeMirror-cursor{border-left:1px solid #fff}.cm-s-icecoder div.CodeMirror-selected{color:#fff;background:#037}.cm-s-icecoder .CodeMirror-gutters{background:#1d1d1b;min-width:41px;border-right:0}.cm-s-icecoder .CodeMirror-linenumber{color:#555;cursor:default}.cm-s-icecoder .CodeMirror-matchingbracket{color:#fff!important;background:#555!important}.cm-s-icecoder .CodeMirror-activeline-background{background:#000}.cm-s-isotope.CodeMirror{background:#000;color:#e0e0e0}.cm-s-isotope div.CodeMirror-selected{background:#404040!important}.cm-s-isotope .CodeMirror-gutters{background:#000;border-right:0}.cm-s-isotope .CodeMirror-linenumber{color:gray}.cm-s-isotope .CodeMirror-cursor{border-left:1px solid silver!important}.cm-s-isotope span.cm-comment{color:#30f}.cm-s-isotope span.cm-atom,.cm-s-isotope span.cm-number{color:#c0f}.cm-s-isotope span.cm-attribute,.cm-s-isotope span.cm-property{color:#3f0}.cm-s-isotope span.cm-keyword{color:red}.cm-s-isotope span.cm-string{color:#f09}.cm-s-isotope span.cm-variable{color:#3f0}.cm-s-isotope span.cm-variable-2{color:#06f}.cm-s-isotope span.cm-def{color:#f90}.cm-s-isotope span.cm-error{background:red;color:silver}.cm-s-isotope span.cm-bracket{color:#e0e0e0}.cm-s-isotope span.cm-tag{color:red}.cm-s-isotope span.cm-link{color:#c0f}.cm-s-isotope .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-isotope .CodeMirror-activeline-background{background:#202020}.cm-s-lesser-dark{line-height:1.3em}.cm-s-lesser-dark.CodeMirror{background:#262626;color:#ebefe7;text-shadow:0 -1px 1px #262626}.cm-s-lesser-dark div.CodeMirror-selected{background:#45443b}.cm-s-lesser-dark .CodeMirror-line::selection,.cm-s-lesser-dark .CodeMirror-line>span::selection,.cm-s-lesser-dark .CodeMirror-line>span>span::selection{background:rgba(69,68,59,.99)}.cm-s-lesser-dark .CodeMirror-line::-moz-selection,.cm-s-lesser-dark .CodeMirror-line>span::-moz-selection,.cm-s-lesser-dark .CodeMirror-line>span>span::-moz-selection{background:rgba(69,68,59,.99)}.cm-s-lesser-dark .CodeMirror-cursor{border-left:1px solid #fff}.cm-s-lesser-dark pre{padding:0 8px}.cm-s-lesser-dark.CodeMirror span.CodeMirror-matchingbracket{color:#7efc7e}.cm-s-lesser-dark .CodeMirror-gutters{background:#262626;border-right:1px solid #aaa}.cm-s-lesser-dark .CodeMirror-guttermarker{color:#599eff}.cm-s-lesser-dark .CodeMirror-guttermarker-subtle,.cm-s-lesser-dark .CodeMirror-linenumber{color:#777}.cm-s-lesser-dark span.cm-header{color:#a0a}.cm-s-lesser-dark span.cm-quote{color:#090}.cm-s-lesser-dark span.cm-keyword{color:#599eff}.cm-s-lesser-dark span.cm-atom{color:#c2b470}.cm-s-lesser-dark span.cm-number{color:#b35e4d}.cm-s-lesser-dark span.cm-def{color:#fff}.cm-s-lesser-dark span.cm-variable{color:#d9bf8c}.cm-s-lesser-dark span.cm-variable-2{color:#669199}.cm-s-lesser-dark span.cm-type,.cm-s-lesser-dark span.cm-variable-3{color:#fff}.cm-s-lesser-dark span.cm-operator,.cm-s-lesser-dark span.cm-property{color:#92a75c}.cm-s-lesser-dark span.cm-comment{color:#666}.cm-s-lesser-dark span.cm-string{color:#bcd279}.cm-s-lesser-dark span.cm-string-2{color:#f50}.cm-s-lesser-dark span.cm-meta{color:#738c73}.cm-s-lesser-dark span.cm-qualifier{color:#555}.cm-s-lesser-dark span.cm-builtin{color:#ff9e59}.cm-s-lesser-dark span.cm-bracket{color:#ebefe7}.cm-s-lesser-dark span.cm-tag{color:#669199}.cm-s-lesser-dark span.cm-attribute{color:#00c}.cm-s-lesser-dark span.cm-hr{color:#999}.cm-s-lesser-dark span.cm-link{color:#00c}.cm-s-lesser-dark span.cm-error{color:#9d1e15}.cm-s-lesser-dark .CodeMirror-activeline-background{background:#3c3a3a}.cm-s-lesser-dark .CodeMirror-matchingbracket{outline:1px solid grey;color:#fff!important}.cm-s-liquibyte.CodeMirror{background-color:#000;color:#fff;line-height:1.2em;font-size:1em}.cm-s-liquibyte .CodeMirror-focused .cm-matchhighlight{text-decoration:underline;-webkit-text-decoration-color:#0f0;text-decoration-color:#0f0;-webkit-text-decoration-style:wavy;text-decoration-style:wavy}.cm-s-liquibyte .cm-trailingspace{text-decoration:line-through;-webkit-text-decoration-color:red;text-decoration-color:red;-webkit-text-decoration-style:dotted;text-decoration-style:dotted}.cm-s-liquibyte .cm-tab{text-decoration:line-through;-webkit-text-decoration-color:#404040;text-decoration-color:#404040;-webkit-text-decoration-style:dotted;text-decoration-style:dotted}.cm-s-liquibyte .CodeMirror-gutters{background-color:#262626;border-right:1px solid #505050;padding-right:.8em}.cm-s-liquibyte .CodeMirror-gutter-elt div{font-size:1.2em}.cm-s-liquibyte .CodeMirror-linenumber{color:#606060;padding-left:0}.cm-s-liquibyte .CodeMirror-cursor{border-left:1px solid #eee}.cm-s-liquibyte span.cm-comment{color:green}.cm-s-liquibyte span.cm-def{color:#ffaf40;font-weight:700}.cm-s-liquibyte span.cm-keyword{color:#c080ff;font-weight:700}.cm-s-liquibyte span.cm-builtin{color:#ffaf40;font-weight:700}.cm-s-liquibyte span.cm-variable{color:#5967ff;font-weight:700}.cm-s-liquibyte span.cm-string{color:#ff8000}.cm-s-liquibyte span.cm-number{color:#0f0;font-weight:700}.cm-s-liquibyte span.cm-atom{color:#bf3030;font-weight:700}.cm-s-liquibyte span.cm-variable-2{color:#007f7f;font-weight:700}.cm-s-liquibyte span.cm-type,.cm-s-liquibyte span.cm-variable-3{color:#c080ff;font-weight:700}.cm-s-liquibyte span.cm-property{color:#999;font-weight:700}.cm-s-liquibyte span.cm-operator{color:#fff}.cm-s-liquibyte span.cm-meta{color:#0f0}.cm-s-liquibyte span.cm-qualifier{color:#fff700;font-weight:700}.cm-s-liquibyte span.cm-bracket{color:#cc7}.cm-s-liquibyte span.cm-tag{color:#ff0;font-weight:700}.cm-s-liquibyte span.cm-attribute{color:#c080ff;font-weight:700}.cm-s-liquibyte span.cm-error{color:red}.cm-s-liquibyte div.CodeMirror-selected{background-color:rgba(255,0,0,.25)}.cm-s-liquibyte span.cm-compilation{background-color:hsla(0,0%,100%,.12)}.cm-s-liquibyte .CodeMirror-activeline-background{background-color:rgba(0,255,0,.15)}.cm-s-liquibyte .CodeMirror span.CodeMirror-matchingbracket{color:#0f0;font-weight:700}.cm-s-liquibyte .CodeMirror span.CodeMirror-nonmatchingbracket{color:red;font-weight:700}.CodeMirror-matchingtag{background-color:rgba(150,255,0,.3)}.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal div:hover,.cm-s-liquibyte div.CodeMirror-simplescroll-vertical div:hover{background-color:rgba(80,80,80,.7)}.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal div,.cm-s-liquibyte div.CodeMirror-simplescroll-vertical div{background-color:rgba(80,80,80,.3);border:1px solid #404040;border-radius:5px}.cm-s-liquibyte div.CodeMirror-simplescroll-vertical div{border-top:1px solid #404040;border-bottom:1px solid #404040}.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal div{border-left:1px solid #404040;border-right:1px solid #404040}.cm-s-liquibyte div.CodeMirror-simplescroll-vertical{background-color:#262626}.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal{background-color:#262626;border-top:1px solid #404040}.cm-s-liquibyte div.CodeMirror-overlayscroll-horizontal div,div.CodeMirror-overlayscroll-vertical div{background-color:#404040;border-radius:5px}.cm-s-liquibyte div.CodeMirror-overlayscroll-horizontal div,.cm-s-liquibyte div.CodeMirror-overlayscroll-vertical div{border:1px solid #404040}.cm-s-material.CodeMirror{background-color:#263238;color:#e9eded}.cm-s-material .CodeMirror-gutters{background:#263238;color:#537f7e;border:none}.cm-s-material .CodeMirror-guttermarker,.cm-s-material .CodeMirror-guttermarker-subtle,.cm-s-material .CodeMirror-linenumber{color:#537f7e}.cm-s-material .CodeMirror-cursor{border-left:1px solid #f8f8f0}.cm-s-material div.CodeMirror-selected{background:hsla(0,0%,100%,.15)}.cm-s-material.CodeMirror-focused div.CodeMirror-selected{background:hsla(0,0%,100%,.1)}.cm-s-material .CodeMirror-line::selection,.cm-s-material .CodeMirror-line>span::selection,.cm-s-material .CodeMirror-line>span>span::selection{background:hsla(0,0%,100%,.1)}.cm-s-material .CodeMirror-line::-moz-selection,.cm-s-material .CodeMirror-line>span::-moz-selection,.cm-s-material .CodeMirror-line>span>span::-moz-selection{background:hsla(0,0%,100%,.1)}.cm-s-material .CodeMirror-activeline-background{background:transparent}.cm-s-material .cm-keyword{color:#c792ea}.cm-s-material .cm-operator{color:#e9eded}.cm-s-material .cm-variable-2{color:#80cbc4}.cm-s-material .cm-type,.cm-s-material .cm-variable-3{color:#82b1ff}.cm-s-material .cm-builtin{color:#decb6b}.cm-s-material .cm-atom,.cm-s-material .cm-number{color:#f77669}.cm-s-material .cm-def{color:#e9eded}.cm-s-material .cm-string{color:#c3e88d}.cm-s-material .cm-string-2{color:#80cbc4}.cm-s-material .cm-comment{color:#546e7a}.cm-s-material .cm-variable{color:#82b1ff}.cm-s-material .cm-meta,.cm-s-material .cm-tag{color:#80cbc4}.cm-s-material .cm-attribute{color:#ffcb6b}.cm-s-material .cm-property{color:#80cbae}.cm-s-material .cm-qualifier,.cm-s-material .cm-type,.cm-s-material .cm-variable-3{color:#decb6b}.cm-s-material .cm-tag{color:#ff5370}.cm-s-material .cm-error{color:#fff;background-color:#ec5f67}.cm-s-material .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-mbo.CodeMirror{background:#2c2c2c;color:#ffffec}.cm-s-mbo div.CodeMirror-selected{background:#716c62}.cm-s-mbo .CodeMirror-line::selection,.cm-s-mbo .CodeMirror-line>span::selection,.cm-s-mbo .CodeMirror-line>span>span::selection{background:hsla(40,7%,41%,.99)}.cm-s-mbo .CodeMirror-line::-moz-selection,.cm-s-mbo .CodeMirror-line>span::-moz-selection,.cm-s-mbo .CodeMirror-line>span>span::-moz-selection{background:hsla(40,7%,41%,.99)}.cm-s-mbo .CodeMirror-gutters{background:#4e4e4e;border-right:0}.cm-s-mbo .CodeMirror-guttermarker{color:#fff}.cm-s-mbo .CodeMirror-guttermarker-subtle{color:grey}.cm-s-mbo .CodeMirror-linenumber{color:#dadada}.cm-s-mbo .CodeMirror-cursor{border-left:1px solid #ffffec}.cm-s-mbo span.cm-comment{color:#95958a}.cm-s-mbo span.cm-atom,.cm-s-mbo span.cm-number{color:#00a8c6}.cm-s-mbo span.cm-attribute,.cm-s-mbo span.cm-property{color:#9ddfe9}.cm-s-mbo span.cm-keyword{color:#ffb928}.cm-s-mbo span.cm-string{color:#ffcf6c}.cm-s-mbo span.cm-string.cm-property,.cm-s-mbo span.cm-variable{color:#ffffec}.cm-s-mbo span.cm-variable-2{color:#00a8c6}.cm-s-mbo span.cm-def{color:#ffffec}.cm-s-mbo span.cm-bracket{color:#fffffc;font-weight:700}.cm-s-mbo span.cm-tag{color:#9ddfe9}.cm-s-mbo span.cm-link{color:#f54b07}.cm-s-mbo span.cm-error{border-bottom:#636363;color:#ffffec}.cm-s-mbo span.cm-qualifier{color:#ffffec}.cm-s-mbo .CodeMirror-activeline-background{background:#494b41}.cm-s-mbo .CodeMirror-matchingbracket{color:#ffb928!important}.cm-s-mbo .CodeMirror-matchingtag{background:hsla(0,0%,100%,.37)}.cm-s-mdn-like.CodeMirror{color:#999;background-color:#fff}.cm-s-mdn-like div.CodeMirror-selected{background:#cfc}.cm-s-mdn-like .CodeMirror-line::selection,.cm-s-mdn-like .CodeMirror-line>span::selection,.cm-s-mdn-like .CodeMirror-line>span>span::selection{background:#cfc}.cm-s-mdn-like .CodeMirror-line::-moz-selection,.cm-s-mdn-like .CodeMirror-line>span::-moz-selection,.cm-s-mdn-like .CodeMirror-line>span>span::-moz-selection{background:#cfc}.cm-s-mdn-like .CodeMirror-gutters{background:#f8f8f8;border-left:6px solid rgba(0,83,159,.65);color:#333}.cm-s-mdn-like .CodeMirror-linenumber{color:#aaa;padding-left:8px}.cm-s-mdn-like .CodeMirror-cursor{border-left:2px solid #222}.cm-s-mdn-like .cm-keyword{color:#6262ff}.cm-s-mdn-like .cm-atom{color:#f90}.cm-s-mdn-like .cm-number{color:#ca7841}.cm-s-mdn-like .cm-def{color:#8da6ce}.cm-s-mdn-like span.cm-tag,.cm-s-mdn-like span.cm-variable-2{color:#690}.cm-s-mdn-like .cm-variable,.cm-s-mdn-like span.cm-def,.cm-s-mdn-like span.cm-type,.cm-s-mdn-like span.cm-variable-3{color:#07a}.cm-s-mdn-like .cm-property{color:#905}.cm-s-mdn-like .cm-qualifier{color:#690}.cm-s-mdn-like .cm-operator{color:#cda869}.cm-s-mdn-like .cm-comment{color:#777;font-weight:400}.cm-s-mdn-like .cm-string{color:#07a;font-style:italic}.cm-s-mdn-like .cm-string-2{color:#bd6b18}.cm-s-mdn-like .cm-meta{color:#000}.cm-s-mdn-like .cm-builtin{color:#9b7536}.cm-s-mdn-like .cm-tag{color:#997643}.cm-s-mdn-like .cm-attribute{color:#d6bb6d}.cm-s-mdn-like .cm-header{color:#ff6400}.cm-s-mdn-like .cm-hr{color:#aeaeae}.cm-s-mdn-like .cm-link{color:#ad9361;font-style:italic;text-decoration:none}.cm-s-mdn-like .cm-error{border-bottom:1px solid red}div.cm-s-mdn-like .CodeMirror-activeline-background{background:#efefff}div.cm-s-mdn-like span.CodeMirror-matchingbracket{outline:1px solid grey;color:inherit}.cm-s-mdn-like.CodeMirror{background-image:url(data:image/png;base64,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)}.cm-s-midnight span.CodeMirror-matchhighlight{background:#494949}.cm-s-midnight.CodeMirror-focused span.CodeMirror-matchhighlight{background:#314d67!important}.cm-s-midnight .CodeMirror-activeline-background{background:#253540}.cm-s-midnight.CodeMirror{background:#0f192a;color:#d1edff}.cm-s-midnight div.CodeMirror-selected{background:#314d67}.cm-s-midnight .CodeMirror-line::selection,.cm-s-midnight .CodeMirror-line>span::selection,.cm-s-midnight .CodeMirror-line>span>span::selection{background:rgba(49,77,103,.99)}.cm-s-midnight .CodeMirror-line::-moz-selection,.cm-s-midnight .CodeMirror-line>span::-moz-selection,.cm-s-midnight .CodeMirror-line>span>span::-moz-selection{background:rgba(49,77,103,.99)}.cm-s-midnight .CodeMirror-gutters{background:#0f192a;border-right:1px solid}.cm-s-midnight .CodeMirror-guttermarker{color:#fff}.cm-s-midnight .CodeMirror-guttermarker-subtle,.cm-s-midnight .CodeMirror-linenumber{color:#d0d0d0}.cm-s-midnight .CodeMirror-cursor{border-left:1px solid #f8f8f0}.cm-s-midnight span.cm-comment{color:#428bdd}.cm-s-midnight span.cm-atom{color:#ae81ff}.cm-s-midnight span.cm-number{color:#d1edff}.cm-s-midnight span.cm-attribute,.cm-s-midnight span.cm-property{color:#a6e22e}.cm-s-midnight span.cm-keyword{color:#e83737}.cm-s-midnight span.cm-string{color:#1dc116}.cm-s-midnight span.cm-variable,.cm-s-midnight span.cm-variable-2{color:#ffaa3e}.cm-s-midnight span.cm-def{color:#4dd}.cm-s-midnight span.cm-bracket{color:#d1edff}.cm-s-midnight span.cm-tag{color:#449}.cm-s-midnight span.cm-link{color:#ae81ff}.cm-s-midnight span.cm-error{background:#f92672;color:#f8f8f0}.cm-s-midnight .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-monokai.CodeMirror{background:#272822;color:#f8f8f2}.cm-s-monokai div.CodeMirror-selected{background:#49483e}.cm-s-monokai .CodeMirror-line::selection,.cm-s-monokai .CodeMirror-line>span::selection,.cm-s-monokai .CodeMirror-line>span>span::selection{background:rgba(73,72,62,.99)}.cm-s-monokai .CodeMirror-line::-moz-selection,.cm-s-monokai .CodeMirror-line>span::-moz-selection,.cm-s-monokai .CodeMirror-line>span>span::-moz-selection{background:rgba(73,72,62,.99)}.cm-s-monokai .CodeMirror-gutters{background:#272822;border-right:0}.cm-s-monokai .CodeMirror-guttermarker{color:#fff}.cm-s-monokai .CodeMirror-guttermarker-subtle,.cm-s-monokai .CodeMirror-linenumber{color:#d0d0d0}.cm-s-monokai .CodeMirror-cursor{border-left:1px solid #f8f8f0}.cm-s-monokai span.cm-comment{color:#75715e}.cm-s-monokai span.cm-atom,.cm-s-monokai span.cm-number{color:#ae81ff}.cm-s-monokai span.cm-attribute,.cm-s-monokai span.cm-property{color:#a6e22e}.cm-s-monokai span.cm-keyword{color:#f92672}.cm-s-monokai span.cm-builtin{color:#66d9ef}.cm-s-monokai span.cm-string{color:#e6db74}.cm-s-monokai span.cm-variable{color:#f8f8f2}.cm-s-monokai span.cm-variable-2{color:#9effff}.cm-s-monokai span.cm-type,.cm-s-monokai span.cm-variable-3{color:#66d9ef}.cm-s-monokai span.cm-def{color:#fd971f}.cm-s-monokai span.cm-bracket{color:#f8f8f2}.cm-s-monokai span.cm-tag{color:#f92672}.cm-s-monokai span.cm-header,.cm-s-monokai span.cm-link{color:#ae81ff}.cm-s-monokai span.cm-error{background:#f92672;color:#f8f8f0}.cm-s-monokai .CodeMirror-activeline-background{background:#373831}.cm-s-monokai .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-neat span.cm-comment{color:#a86}.cm-s-neat span.cm-keyword{line-height:1em;font-weight:700;color:blue}.cm-s-neat span.cm-string{color:#a22}.cm-s-neat span.cm-builtin{line-height:1em;font-weight:700;color:#077}.cm-s-neat span.cm-special{line-height:1em;font-weight:700;color:#0aa}.cm-s-neat span.cm-variable{color:#000}.cm-s-neat span.cm-atom,.cm-s-neat span.cm-number{color:#3a3}.cm-s-neat span.cm-meta{color:#555}.cm-s-neat span.cm-link{color:#3a3}.cm-s-neat .CodeMirror-activeline-background{background:#e8f2ff}.cm-s-neat .CodeMirror-matchingbracket{outline:1px solid grey;color:#000!important}.cm-s-neo.CodeMirror{background-color:#fff;color:#2e383c;line-height:1.4375}.cm-s-neo .cm-comment{color:#75787b}.cm-s-neo .cm-keyword,.cm-s-neo .cm-property{color:#1d75b3}.cm-s-neo .cm-atom,.cm-s-neo .cm-number{color:#75438a}.cm-s-neo .cm-node,.cm-s-neo .cm-tag{color:#9c3328}.cm-s-neo .cm-string{color:#b35e14}.cm-s-neo .cm-qualifier,.cm-s-neo .cm-variable{color:#047d65}.cm-s-neo pre{padding:0}.cm-s-neo .CodeMirror-gutters{border:none;border-right:10px solid transparent;background-color:transparent}.cm-s-neo .CodeMirror-linenumber{padding:0;color:#e0e2e5}.cm-s-neo .CodeMirror-guttermarker{color:#1d75b3}.cm-s-neo .CodeMirror-guttermarker-subtle{color:#e0e2e5}.cm-s-neo .CodeMirror-cursor{width:auto;border:0;background:hsla(223,4%,62%,.37);z-index:1}.cm-s-night.CodeMirror{background:#0a001f;color:#f8f8f8}.cm-s-night div.CodeMirror-selected{background:#447}.cm-s-night .CodeMirror-line::selection,.cm-s-night .CodeMirror-line>span::selection,.cm-s-night .CodeMirror-line>span>span::selection{background:rgba(68,68,119,.99)}.cm-s-night .CodeMirror-line::-moz-selection,.cm-s-night .CodeMirror-line>span::-moz-selection,.cm-s-night .CodeMirror-line>span>span::-moz-selection{background:rgba(68,68,119,.99)}.cm-s-night .CodeMirror-gutters{background:#0a001f;border-right:1px solid #aaa}.cm-s-night .CodeMirror-guttermarker{color:#fff}.cm-s-night .CodeMirror-guttermarker-subtle{color:#bbb}.cm-s-night .CodeMirror-linenumber{color:#f8f8f8}.cm-s-night .CodeMirror-cursor{border-left:1px solid #fff}.cm-s-night span.cm-comment{color:#8900d1}.cm-s-night span.cm-atom{color:#845dc4}.cm-s-night span.cm-attribute,.cm-s-night span.cm-number{color:#ffd500}.cm-s-night span.cm-keyword{color:#599eff}.cm-s-night span.cm-string{color:#37f14a}.cm-s-night span.cm-meta{color:#7678e2}.cm-s-night span.cm-tag,.cm-s-night span.cm-variable-2{color:#99b2ff}.cm-s-night span.cm-def,.cm-s-night span.cm-type,.cm-s-night span.cm-variable-3{color:#fff}.cm-s-night span.cm-bracket{color:#8da6ce}.cm-s-night span.cm-builtin,.cm-s-night span.cm-special{color:#ff9e59}.cm-s-night span.cm-link{color:#845dc4}.cm-s-night span.cm-error{color:#9d1e15}.cm-s-night .CodeMirror-activeline-background{background:#1c005a}.cm-s-night .CodeMirror-matchingbracket{outline:1px solid grey;color:#fff!important}.cm-s-panda-syntax{background:#292a2b;color:#e6e6e6;line-height:1.5;font-family:Operator Mono,Source Sans Pro,Menlo,Monaco,Consolas,Courier New,monospace}.cm-s-panda-syntax .CodeMirror-cursor{border-color:#ff2c6d}.cm-s-panda-syntax .CodeMirror-activeline-background{background:rgba(99,123,156,.1)}.cm-s-panda-syntax .CodeMirror-selected{background:#fff}.cm-s-panda-syntax .cm-comment{font-style:italic;color:#676b79}.cm-s-panda-syntax .cm-operator{color:#f3f3f3}.cm-s-panda-syntax .cm-string{color:#19f9d8}.cm-s-panda-syntax .cm-string-2{color:#ffb86c}.cm-s-panda-syntax .cm-tag{color:#ff2c6d}.cm-s-panda-syntax .cm-meta{color:#b084eb}.cm-s-panda-syntax .cm-number{color:#ffb86c}.cm-s-panda-syntax .cm-atom{color:#ff2c6d}.cm-s-panda-syntax .cm-keyword{color:#ff75b5}.cm-s-panda-syntax .cm-variable{color:#ffb86c}.cm-s-panda-syntax .cm-type,.cm-s-panda-syntax .cm-variable-2,.cm-s-panda-syntax .cm-variable-3{color:#ff9ac1}.cm-s-panda-syntax .cm-def{color:#e6e6e6}.cm-s-panda-syntax .cm-property{color:#f3f3f3}.cm-s-panda-syntax .cm-attribute,.cm-s-panda-syntax .cm-unit{color:#ffb86c}.cm-s-panda-syntax .CodeMirror-matchingbracket{border-bottom:1px dotted #19f9d8;padding-bottom:2px;color:#e6e6e6}.cm-s-panda-syntax .CodeMirror-gutters{background:#292a2b;border-right-color:hsla(0,0%,100%,.1)}.cm-s-panda-syntax .CodeMirror-linenumber{color:#e6e6e6;opacity:.6}.cm-s-paraiso-dark.CodeMirror{background:#2f1e2e;color:#b9b6b0}.cm-s-paraiso-dark div.CodeMirror-selected{background:#41323f}.cm-s-paraiso-dark .CodeMirror-line::selection,.cm-s-paraiso-dark .CodeMirror-line>span::selection,.cm-s-paraiso-dark .CodeMirror-line>span>span::selection{background:rgba(65,50,63,.99)}.cm-s-paraiso-dark .CodeMirror-line::-moz-selection,.cm-s-paraiso-dark .CodeMirror-line>span::-moz-selection,.cm-s-paraiso-dark .CodeMirror-line>span>span::-moz-selection{background:rgba(65,50,63,.99)}.cm-s-paraiso-dark .CodeMirror-gutters{background:#2f1e2e;border-right:0}.cm-s-paraiso-dark .CodeMirror-guttermarker{color:#ef6155}.cm-s-paraiso-dark .CodeMirror-guttermarker-subtle,.cm-s-paraiso-dark .CodeMirror-linenumber{color:#776e71}.cm-s-paraiso-dark .CodeMirror-cursor{border-left:1px solid #8d8687}.cm-s-paraiso-dark span.cm-comment{color:#e96ba8}.cm-s-paraiso-dark span.cm-atom,.cm-s-paraiso-dark span.cm-number{color:#815ba4}.cm-s-paraiso-dark span.cm-attribute,.cm-s-paraiso-dark span.cm-property{color:#48b685}.cm-s-paraiso-dark span.cm-keyword{color:#ef6155}.cm-s-paraiso-dark span.cm-string{color:#fec418}.cm-s-paraiso-dark span.cm-variable{color:#48b685}.cm-s-paraiso-dark span.cm-variable-2{color:#06b6ef}.cm-s-paraiso-dark span.cm-def{color:#f99b15}.cm-s-paraiso-dark span.cm-bracket{color:#b9b6b0}.cm-s-paraiso-dark span.cm-tag{color:#ef6155}.cm-s-paraiso-dark span.cm-link{color:#815ba4}.cm-s-paraiso-dark span.cm-error{background:#ef6155;color:#8d8687}.cm-s-paraiso-dark .CodeMirror-activeline-background{background:#4d344a}.cm-s-paraiso-dark .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-paraiso-light.CodeMirror{background:#e7e9db;color:#41323f}.cm-s-paraiso-light div.CodeMirror-selected{background:#b9b6b0}.cm-s-paraiso-light .CodeMirror-line::selection,.cm-s-paraiso-light .CodeMirror-line>span::selection,.cm-s-paraiso-light .CodeMirror-line>span>span::selection{background:#b9b6b0}.cm-s-paraiso-light .CodeMirror-line::-moz-selection,.cm-s-paraiso-light .CodeMirror-line>span::-moz-selection,.cm-s-paraiso-light .CodeMirror-line>span>span::-moz-selection{background:#b9b6b0}.cm-s-paraiso-light .CodeMirror-gutters{background:#e7e9db;border-right:0}.cm-s-paraiso-light .CodeMirror-guttermarker{color:#000}.cm-s-paraiso-light .CodeMirror-guttermarker-subtle,.cm-s-paraiso-light .CodeMirror-linenumber{color:#8d8687}.cm-s-paraiso-light .CodeMirror-cursor{border-left:1px solid #776e71}.cm-s-paraiso-light span.cm-comment{color:#e96ba8}.cm-s-paraiso-light span.cm-atom,.cm-s-paraiso-light span.cm-number{color:#815ba4}.cm-s-paraiso-light span.cm-attribute,.cm-s-paraiso-light span.cm-property{color:#48b685}.cm-s-paraiso-light span.cm-keyword{color:#ef6155}.cm-s-paraiso-light span.cm-string{color:#fec418}.cm-s-paraiso-light span.cm-variable{color:#48b685}.cm-s-paraiso-light span.cm-variable-2{color:#06b6ef}.cm-s-paraiso-light span.cm-def{color:#f99b15}.cm-s-paraiso-light span.cm-bracket{color:#41323f}.cm-s-paraiso-light span.cm-tag{color:#ef6155}.cm-s-paraiso-light span.cm-link{color:#815ba4}.cm-s-paraiso-light span.cm-error{background:#ef6155;color:#776e71}.cm-s-paraiso-light .CodeMirror-activeline-background{background:#cfd1c4}.cm-s-paraiso-light .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-pastel-on-dark.CodeMirror{background:#2c2827;color:#8f938f;line-height:1.5}.cm-s-pastel-on-dark div.CodeMirror-selected{background:rgba(221,240,255,.2)}.cm-s-pastel-on-dark .CodeMirror-line::selection,.cm-s-pastel-on-dark .CodeMirror-line>span::selection,.cm-s-pastel-on-dark .CodeMirror-line>span>span::selection{background:rgba(221,240,255,.2)}.cm-s-pastel-on-dark .CodeMirror-line::-moz-selection,.cm-s-pastel-on-dark .CodeMirror-line>span::-moz-selection,.cm-s-pastel-on-dark .CodeMirror-line>span>span::-moz-selection{background:rgba(221,240,255,.2)}.cm-s-pastel-on-dark .CodeMirror-gutters{background:#34302f;border-right:0;padding:0 3px}.cm-s-pastel-on-dark .CodeMirror-guttermarker{color:#fff}.cm-s-pastel-on-dark .CodeMirror-guttermarker-subtle,.cm-s-pastel-on-dark .CodeMirror-linenumber{color:#8f938f}.cm-s-pastel-on-dark .CodeMirror-cursor{border-left:1px solid #a7a7a7}.cm-s-pastel-on-dark span.cm-comment{color:#a6c6ff}.cm-s-pastel-on-dark span.cm-atom{color:#de8e30}.cm-s-pastel-on-dark span.cm-number{color:#ccc}.cm-s-pastel-on-dark span.cm-property{color:#8f938f}.cm-s-pastel-on-dark span.cm-attribute{color:#a6e22e}.cm-s-pastel-on-dark span.cm-keyword{color:#aeb2f8}.cm-s-pastel-on-dark span.cm-string{color:#66a968}.cm-s-pastel-on-dark span.cm-variable{color:#aeb2f8}.cm-s-pastel-on-dark span.cm-variable-2{color:#bebf55}.cm-s-pastel-on-dark span.cm-type,.cm-s-pastel-on-dark span.cm-variable-3{color:#de8e30}.cm-s-pastel-on-dark span.cm-def{color:#757ad8}.cm-s-pastel-on-dark span.cm-bracket{color:#f8f8f2}.cm-s-pastel-on-dark span.cm-tag{color:#c1c144}.cm-s-pastel-on-dark span.cm-link{color:#ae81ff}.cm-s-pastel-on-dark span.cm-builtin,.cm-s-pastel-on-dark span.cm-qualifier{color:#c1c144}.cm-s-pastel-on-dark span.cm-error{background:#757ad8;color:#f8f8f0}.cm-s-pastel-on-dark .CodeMirror-activeline-background{background:hsla(0,0%,100%,.031)}.cm-s-pastel-on-dark .CodeMirror-matchingbracket{border:1px solid hsla(0,0%,100%,.25);color:#8f938f!important;margin:-1px -1px 0}.cm-s-railscasts.CodeMirror{background:#2b2b2b;color:#f4f1ed}.cm-s-railscasts div.CodeMirror-selected{background:#272935!important}.cm-s-railscasts .CodeMirror-gutters{background:#2b2b2b;border-right:0}.cm-s-railscasts .CodeMirror-linenumber{color:#5a647e}.cm-s-railscasts .CodeMirror-cursor{border-left:1px solid #d4cfc9!important}.cm-s-railscasts span.cm-comment{color:#bc9458}.cm-s-railscasts span.cm-atom,.cm-s-railscasts span.cm-number{color:#b6b3eb}.cm-s-railscasts span.cm-attribute,.cm-s-railscasts span.cm-property{color:#a5c261}.cm-s-railscasts span.cm-keyword{color:#da4939}.cm-s-railscasts span.cm-string{color:#ffc66d}.cm-s-railscasts span.cm-variable{color:#a5c261}.cm-s-railscasts span.cm-variable-2{color:#6d9cbe}.cm-s-railscasts span.cm-def{color:#cc7833}.cm-s-railscasts span.cm-error{background:#da4939;color:#d4cfc9}.cm-s-railscasts span.cm-bracket{color:#f4f1ed}.cm-s-railscasts span.cm-tag{color:#da4939}.cm-s-railscasts span.cm-link{color:#b6b3eb}.cm-s-railscasts .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-railscasts .CodeMirror-activeline-background{background:#303040}.cm-s-rubyblue.CodeMirror{background:#112435;color:#fff}.cm-s-rubyblue div.CodeMirror-selected{background:#38566f}.cm-s-rubyblue .CodeMirror-line::selection,.cm-s-rubyblue .CodeMirror-line>span::selection,.cm-s-rubyblue .CodeMirror-line>span>span::selection{background:rgba(56,86,111,.99)}.cm-s-rubyblue .CodeMirror-line::-moz-selection,.cm-s-rubyblue .CodeMirror-line>span::-moz-selection,.cm-s-rubyblue .CodeMirror-line>span>span::-moz-selection{background:rgba(56,86,111,.99)}.cm-s-rubyblue .CodeMirror-gutters{background:#1f4661;border-right:7px solid #3e7087}.cm-s-rubyblue .CodeMirror-guttermarker{color:#fff}.cm-s-rubyblue .CodeMirror-guttermarker-subtle{color:#3e7087}.cm-s-rubyblue .CodeMirror-linenumber{color:#fff}.cm-s-rubyblue .CodeMirror-cursor{border-left:1px solid #fff}.cm-s-rubyblue span.cm-comment{color:#999;font-style:italic;line-height:1em}.cm-s-rubyblue span.cm-atom{color:#f4c20b}.cm-s-rubyblue span.cm-attribute,.cm-s-rubyblue span.cm-number{color:#82c6e0}.cm-s-rubyblue span.cm-keyword{color:#f0f}.cm-s-rubyblue span.cm-string{color:#f08047}.cm-s-rubyblue span.cm-meta{color:#f0f}.cm-s-rubyblue span.cm-tag,.cm-s-rubyblue span.cm-variable-2{color:#7bd827}.cm-s-rubyblue span.cm-def,.cm-s-rubyblue span.cm-type,.cm-s-rubyblue span.cm-variable-3{color:#fff}.cm-s-rubyblue span.cm-bracket{color:#f0f}.cm-s-rubyblue span.cm-link{color:#f4c20b}.cm-s-rubyblue span.CodeMirror-matchingbracket{color:#f0f!important}.cm-s-rubyblue span.cm-builtin,.cm-s-rubyblue span.cm-special{color:#ff9d00}.cm-s-rubyblue span.cm-error{color:#af2018}.cm-s-rubyblue .CodeMirror-activeline-background{background:#173047}.cm-s-seti.CodeMirror{background-color:#151718!important;color:#cfd2d1!important;border:none}.cm-s-seti .CodeMirror-gutters{color:#404b53;background-color:#0e1112;border:none}.cm-s-seti .CodeMirror-cursor{border-left:thin solid #f8f8f0}.cm-s-seti .CodeMirror-linenumber{color:#6d8a88}.cm-s-seti.CodeMirror-focused div.CodeMirror-selected{background:hsla(0,0%,100%,.1)}.cm-s-seti .CodeMirror-line::selection,.cm-s-seti .CodeMirror-line>span::selection,.cm-s-seti .CodeMirror-line>span>span::selection{background:hsla(0,0%,100%,.1)}.cm-s-seti .CodeMirror-line::-moz-selection,.cm-s-seti .CodeMirror-line>span::-moz-selection,.cm-s-seti .CodeMirror-line>span>span::-moz-selection{background:hsla(0,0%,100%,.1)}.cm-s-seti span.cm-comment{color:#41535b}.cm-s-seti span.cm-string,.cm-s-seti span.cm-string-2{color:#55b5db}.cm-s-seti span.cm-number{color:#cd3f45}.cm-s-seti span.cm-variable{color:#55b5db}.cm-s-seti span.cm-variable-2{color:#a074c4}.cm-s-seti span.cm-def{color:#55b5db}.cm-s-seti span.cm-keyword{color:#ff79c6}.cm-s-seti span.cm-operator{color:#9fca56}.cm-s-seti span.cm-keyword{color:#e6cd69}.cm-s-seti span.cm-atom{color:#cd3f45}.cm-s-seti span.cm-meta,.cm-s-seti span.cm-tag{color:#55b5db}.cm-s-seti span.cm-attribute,.cm-s-seti span.cm-qualifier{color:#9fca56}.cm-s-seti span.cm-property{color:#a074c4}.cm-s-seti span.cm-builtin,.cm-s-seti span.cm-type,.cm-s-seti span.cm-variable-3{color:#9fca56}.cm-s-seti .CodeMirror-activeline-background{background:#101213}.cm-s-seti .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.solarized.base03{color:#002b36}.solarized.base02{color:#073642}.solarized.base01{color:#586e75}.solarized.base00{color:#657b83}.solarized.base0{color:#839496}.solarized.base1{color:#93a1a1}.solarized.base2{color:#eee8d5}.solarized.base3{color:#fdf6e3}.solarized.solar-yellow{color:#b58900}.solarized.solar-orange{color:#cb4b16}.solarized.solar-red{color:#dc322f}.solarized.solar-magenta{color:#d33682}.solarized.solar-violet{color:#6c71c4}.solarized.solar-blue{color:#268bd2}.solarized.solar-cyan{color:#2aa198}.solarized.solar-green{color:#859900}.cm-s-solarized{line-height:1.45em;color-profile:sRGB;rendering-intent:auto}.cm-s-solarized.cm-s-dark{color:#839496;background-color:#002b36;text-shadow:#002b36 0 1px}.cm-s-solarized.cm-s-light{background-color:#fdf6e3;color:#657b83;text-shadow:#eee8d5 0 1px}.cm-s-solarized .CodeMirror-widget{text-shadow:none}.cm-s-solarized .cm-header{color:#586e75}.cm-s-solarized .cm-quote{color:#93a1a1}.cm-s-solarized .cm-keyword{color:#cb4b16}.cm-s-solarized .cm-atom,.cm-s-solarized .cm-number{color:#d33682}.cm-s-solarized .cm-def{color:#2aa198}.cm-s-solarized .cm-variable{color:#839496}.cm-s-solarized .cm-variable-2{color:#b58900}.cm-s-solarized .cm-type,.cm-s-solarized .cm-variable-3{color:#6c71c4}.cm-s-solarized .cm-property{color:#2aa198}.cm-s-solarized .cm-operator{color:#6c71c4}.cm-s-solarized .cm-comment{color:#586e75;font-style:italic}.cm-s-solarized .cm-string{color:#859900}.cm-s-solarized .cm-string-2{color:#b58900}.cm-s-solarized .cm-meta{color:#859900}.cm-s-solarized .cm-qualifier{color:#b58900}.cm-s-solarized .cm-builtin{color:#d33682}.cm-s-solarized .cm-bracket{color:#cb4b16}.cm-s-solarized .CodeMirror-matchingbracket{color:#859900}.cm-s-solarized .CodeMirror-nonmatchingbracket{color:#dc322f}.cm-s-solarized .cm-tag{color:#93a1a1}.cm-s-solarized .cm-attribute{color:#2aa198}.cm-s-solarized .cm-hr{color:transparent;border-top:1px solid #586e75;display:block}.cm-s-solarized .cm-link{color:#93a1a1;cursor:pointer}.cm-s-solarized .cm-special{color:#6c71c4}.cm-s-solarized .cm-em{color:#999;text-decoration:underline;-webkit-text-decoration-style:dotted;text-decoration-style:dotted}.cm-s-solarized .cm-strong{color:#eee}.cm-s-solarized .cm-error,.cm-s-solarized .cm-invalidchar{color:#586e75;border-bottom:1px dotted #dc322f}.cm-s-solarized.cm-s-dark div.CodeMirror-selected{background:#073642}.cm-s-solarized.cm-s-dark.CodeMirror ::-moz-selection{background:rgba(7,54,66,.99)}.cm-s-solarized.cm-s-dark.CodeMirror ::selection{background:rgba(7,54,66,.99)}.cm-s-dark .CodeMirror-line>span::-moz-selection,.cm-s-dark .CodeMirror-line>span>span::-moz-selection,.cm-s-solarized.cm-s-dark .CodeMirror-line::-moz-selection{background:rgba(7,54,66,.99)}.cm-s-solarized.cm-s-light div.CodeMirror-selected{background:#eee8d5}.cm-s-light .CodeMirror-line>span::-moz-selection,.cm-s-light .CodeMirror-line>span>span::-moz-selection,.cm-s-solarized.cm-s-light .CodeMirror-line::-moz-selection{background:#eee8d5}.cm-s-light .CodeMirror-line>span::selection,.cm-s-light .CodeMirror-line>span>span::selection,.cm-s-solarized.cm-s-light .CodeMirror-line::selection{background:#eee8d5}.cm-s-ligh .CodeMirror-line>span::-moz-selection,.cm-s-ligh .CodeMirror-line>span>span::-moz-selection,.cm-s-solarized.cm-s-light .CodeMirror-line::-moz-selection{background:#eee8d5}.cm-s-solarized.CodeMirror{box-shadow:inset 7px 0 12px -6px #000}.cm-s-solarized .CodeMirror-gutters{border-right:0}.cm-s-solarized.cm-s-dark .CodeMirror-gutters{background-color:#073642}.cm-s-solarized.cm-s-dark .CodeMirror-linenumber{color:#586e75;text-shadow:#021014 0 -1px}.cm-s-solarized.cm-s-light .CodeMirror-gutters{background-color:#eee8d5}.cm-s-solarized.cm-s-light .CodeMirror-linenumber{color:#839496}.cm-s-solarized .CodeMirror-linenumber{padding:0 5px}.cm-s-solarized .CodeMirror-guttermarker-subtle{color:#586e75}.cm-s-solarized.cm-s-dark .CodeMirror-guttermarker{color:#ddd}.cm-s-solarized.cm-s-light .CodeMirror-guttermarker{color:#cb4b16}.cm-s-solarized .CodeMirror-gutter .CodeMirror-gutter-text{color:#586e75}.cm-s-solarized .CodeMirror-cursor{border-left:1px solid #819090}.cm-s-solarized.cm-s-light.cm-fat-cursor .CodeMirror-cursor{background:#7e7}.cm-s-solarized.cm-s-light .cm-animate-fat-cursor{background-color:#7e7}.cm-s-solarized.cm-s-dark.cm-fat-cursor .CodeMirror-cursor{background:#586e75}.cm-s-solarized.cm-s-dark .cm-animate-fat-cursor{background-color:#586e75}.cm-s-solarized.cm-s-dark .CodeMirror-activeline-background{background:hsla(0,0%,100%,.06)}.cm-s-solarized.cm-s-light .CodeMirror-activeline-background{background:rgba(0,0,0,.06)}.cm-s-the-matrix.CodeMirror{background:#000;color:#0f0}.cm-s-the-matrix div.CodeMirror-selected{background:#2d2d2d}.cm-s-the-matrix .CodeMirror-line::selection,.cm-s-the-matrix .CodeMirror-line>span::selection,.cm-s-the-matrix .CodeMirror-line>span>span::selection{background:rgba(45,45,45,.99)}.cm-s-the-matrix .CodeMirror-line::-moz-selection,.cm-s-the-matrix .CodeMirror-line>span::-moz-selection,.cm-s-the-matrix .CodeMirror-line>span>span::-moz-selection{background:rgba(45,45,45,.99)}.cm-s-the-matrix .CodeMirror-gutters{background:#060;border-right:2px solid #0f0}.cm-s-the-matrix .CodeMirror-guttermarker{color:#0f0}.cm-s-the-matrix .CodeMirror-guttermarker-subtle,.cm-s-the-matrix .CodeMirror-linenumber{color:#fff}.cm-s-the-matrix .CodeMirror-cursor{border-left:1px solid #0f0}.cm-s-the-matrix span.cm-keyword{color:#008803;font-weight:700}.cm-s-the-matrix span.cm-atom{color:#3ff}.cm-s-the-matrix span.cm-number{color:#ffb94f}.cm-s-the-matrix span.cm-def{color:#99c}.cm-s-the-matrix span.cm-variable{color:#f6c}.cm-s-the-matrix span.cm-variable-2{color:#c6f}.cm-s-the-matrix span.cm-type,.cm-s-the-matrix span.cm-variable-3{color:#96f}.cm-s-the-matrix span.cm-property{color:#62ffa0}.cm-s-the-matrix span.cm-operator{color:#999}.cm-s-the-matrix span.cm-comment{color:#ccc}.cm-s-the-matrix span.cm-string{color:#39c}.cm-s-the-matrix span.cm-meta{color:#c9f}.cm-s-the-matrix span.cm-qualifier{color:#fff700}.cm-s-the-matrix span.cm-builtin{color:#30a}.cm-s-the-matrix span.cm-bracket{color:#cc7}.cm-s-the-matrix span.cm-tag{color:#ffbd40}.cm-s-the-matrix span.cm-attribute{color:#fff700}.cm-s-the-matrix span.cm-error{color:red}.cm-s-the-matrix .CodeMirror-activeline-background{background:#040}.cm-s-tomorrow-night-bright.CodeMirror{background:#000;color:#eaeaea}.cm-s-tomorrow-night-bright div.CodeMirror-selected{background:#424242}.cm-s-tomorrow-night-bright .CodeMirror-gutters{background:#000;border-right:0}.cm-s-tomorrow-night-bright .CodeMirror-guttermarker{color:#e78c45}.cm-s-tomorrow-night-bright .CodeMirror-guttermarker-subtle{color:#777}.cm-s-tomorrow-night-bright .CodeMirror-linenumber{color:#424242}.cm-s-tomorrow-night-bright .CodeMirror-cursor{border-left:1px solid #6a6a6a}.cm-s-tomorrow-night-bright span.cm-comment{color:#d27b53}.cm-s-tomorrow-night-bright span.cm-atom,.cm-s-tomorrow-night-bright span.cm-number{color:#a16a94}.cm-s-tomorrow-night-bright span.cm-attribute,.cm-s-tomorrow-night-bright span.cm-property{color:#9c9}.cm-s-tomorrow-night-bright span.cm-keyword{color:#d54e53}.cm-s-tomorrow-night-bright span.cm-string{color:#e7c547}.cm-s-tomorrow-night-bright span.cm-variable{color:#b9ca4a}.cm-s-tomorrow-night-bright span.cm-variable-2{color:#7aa6da}.cm-s-tomorrow-night-bright span.cm-def{color:#e78c45}.cm-s-tomorrow-night-bright span.cm-bracket{color:#eaeaea}.cm-s-tomorrow-night-bright span.cm-tag{color:#d54e53}.cm-s-tomorrow-night-bright span.cm-link{color:#a16a94}.cm-s-tomorrow-night-bright span.cm-error{background:#d54e53;color:#6a6a6a}.cm-s-tomorrow-night-bright .CodeMirror-activeline-background{background:#2a2a2a}.cm-s-tomorrow-night-bright .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-tomorrow-night-eighties.CodeMirror{background:#000;color:#ccc}.cm-s-tomorrow-night-eighties div.CodeMirror-selected{background:#2d2d2d}.cm-s-tomorrow-night-eighties .CodeMirror-line::selection,.cm-s-tomorrow-night-eighties .CodeMirror-line>span::selection,.cm-s-tomorrow-night-eighties .CodeMirror-line>span>span::selection{background:rgba(45,45,45,.99)}.cm-s-tomorrow-night-eighties .CodeMirror-line::-moz-selection,.cm-s-tomorrow-night-eighties .CodeMirror-line>span::-moz-selection,.cm-s-tomorrow-night-eighties .CodeMirror-line>span>span::-moz-selection{background:rgba(45,45,45,.99)}.cm-s-tomorrow-night-eighties .CodeMirror-gutters{background:#000;border-right:0}.cm-s-tomorrow-night-eighties .CodeMirror-guttermarker{color:#f2777a}.cm-s-tomorrow-night-eighties .CodeMirror-guttermarker-subtle{color:#777}.cm-s-tomorrow-night-eighties .CodeMirror-linenumber{color:#515151}.cm-s-tomorrow-night-eighties .CodeMirror-cursor{border-left:1px solid #6a6a6a}.cm-s-tomorrow-night-eighties span.cm-comment{color:#d27b53}.cm-s-tomorrow-night-eighties span.cm-atom,.cm-s-tomorrow-night-eighties span.cm-number{color:#a16a94}.cm-s-tomorrow-night-eighties span.cm-attribute,.cm-s-tomorrow-night-eighties span.cm-property{color:#9c9}.cm-s-tomorrow-night-eighties span.cm-keyword{color:#f2777a}.cm-s-tomorrow-night-eighties span.cm-string{color:#fc6}.cm-s-tomorrow-night-eighties span.cm-variable{color:#9c9}.cm-s-tomorrow-night-eighties span.cm-variable-2{color:#69c}.cm-s-tomorrow-night-eighties span.cm-def{color:#f99157}.cm-s-tomorrow-night-eighties span.cm-bracket{color:#ccc}.cm-s-tomorrow-night-eighties span.cm-tag{color:#f2777a}.cm-s-tomorrow-night-eighties span.cm-link{color:#a16a94}.cm-s-tomorrow-night-eighties span.cm-error{background:#f2777a;color:#6a6a6a}.cm-s-tomorrow-night-eighties .CodeMirror-activeline-background{background:#343600}.cm-s-tomorrow-night-eighties .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-ttcn .cm-quote{color:#090}.cm-s-ttcn .cm-header,.cm-strong{font-weight:700}.cm-s-ttcn .cm-header{color:#00f;font-weight:700}.cm-s-ttcn .cm-atom{color:#219}.cm-s-ttcn .cm-attribute{color:#00c}.cm-s-ttcn .cm-bracket{color:#997}.cm-s-ttcn .cm-comment{color:#333}.cm-s-ttcn .cm-def{color:#00f}.cm-s-ttcn .cm-em{font-style:italic}.cm-s-ttcn .cm-error{color:red}.cm-s-ttcn .cm-hr{color:#999}.cm-s-ttcn .cm-keyword{font-weight:700}.cm-s-ttcn .cm-link{color:#00c;text-decoration:underline}.cm-s-ttcn .cm-meta{color:#555}.cm-s-ttcn .cm-negative{color:#d44}.cm-s-ttcn .cm-positive{color:#292}.cm-s-ttcn .cm-qualifier{color:#555}.cm-s-ttcn .cm-strikethrough{text-decoration:line-through}.cm-s-ttcn .cm-string{color:#006400}.cm-s-ttcn .cm-string-2{color:#f50}.cm-s-ttcn .cm-strong{font-weight:700}.cm-s-ttcn .cm-tag{color:#170}.cm-s-ttcn .cm-variable{color:#8b2252}.cm-s-ttcn .cm-variable-2{color:#05a}.cm-s-ttcn .cm-type,.cm-s-ttcn .cm-variable-3{color:#085}.cm-s-ttcn .cm-invalidchar{color:red}.cm-s-ttcn .cm-accessTypes,.cm-s-ttcn .cm-compareTypes{color:#27408b}.cm-s-ttcn .cm-cmipVerbs{color:#8b2252}.cm-s-ttcn .cm-modifier{color:#d2691e}.cm-s-ttcn .cm-status{color:#8b4545}.cm-s-ttcn .cm-storage{color:#a020f0}.cm-s-ttcn .cm-tags{color:#006400}.cm-s-ttcn .cm-externalCommands{color:#8b4545;font-weight:700}.cm-s-ttcn .cm-fileNCtrlMaskOptions,.cm-s-ttcn .cm-sectionTitle{color:#2e8b57;font-weight:700}.cm-s-ttcn .cm-booleanConsts,.cm-s-ttcn .cm-otherConsts,.cm-s-ttcn .cm-verdictConsts{color:#006400}.cm-s-ttcn .cm-configOps,.cm-s-ttcn .cm-functionOps,.cm-s-ttcn .cm-portOps,.cm-s-ttcn .cm-sutOps,.cm-s-ttcn .cm-timerOps,.cm-s-ttcn .cm-verdictOps{color:#00f}.cm-s-ttcn .cm-preprocessor,.cm-s-ttcn .cm-templateMatch,.cm-s-ttcn .cm-ttcn3Macros{color:#27408b}.cm-s-ttcn .cm-types{color:brown;font-weight:700}.cm-s-ttcn .cm-visibilityModifiers{font-weight:700}.cm-s-twilight.CodeMirror{background:#141414;color:#f7f7f7}.cm-s-twilight div.CodeMirror-selected{background:#323232}.cm-s-twilight .CodeMirror-line::selection,.cm-s-twilight .CodeMirror-line>span::selection,.cm-s-twilight .CodeMirror-line>span>span::selection{background:rgba(50,50,50,.99)}.cm-s-twilight .CodeMirror-line::-moz-selection,.cm-s-twilight .CodeMirror-line>span::-moz-selection,.cm-s-twilight .CodeMirror-line>span>span::-moz-selection{background:rgba(50,50,50,.99)}.cm-s-twilight .CodeMirror-gutters{background:#222;border-right:1px solid #aaa}.cm-s-twilight .CodeMirror-guttermarker{color:#fff}.cm-s-twilight .CodeMirror-guttermarker-subtle,.cm-s-twilight .CodeMirror-linenumber{color:#aaa}.cm-s-twilight .CodeMirror-cursor{border-left:1px solid #fff}.cm-s-twilight .cm-keyword{color:#f9ee98}.cm-s-twilight .cm-atom{color:#fc0}.cm-s-twilight .cm-number{color:#ca7841}.cm-s-twilight .cm-def{color:#8da6ce}.cm-s-twilight span.cm-def,.cm-s-twilight span.cm-tag,.cm-s-twilight span.cm-type,.cm-s-twilight span.cm-variable-2,.cm-s-twilight span.cm-variable-3{color:#607392}.cm-s-twilight .cm-operator{color:#cda869}.cm-s-twilight .cm-comment{color:#777;font-style:italic;font-weight:400}.cm-s-twilight .cm-string{color:#8f9d6a;font-style:italic}.cm-s-twilight .cm-string-2{color:#bd6b18}.cm-s-twilight .cm-meta{background-color:#141414;color:#f7f7f7}.cm-s-twilight .cm-builtin{color:#cda869}.cm-s-twilight .cm-tag{color:#997643}.cm-s-twilight .cm-attribute{color:#d6bb6d}.cm-s-twilight .cm-header{color:#ff6400}.cm-s-twilight .cm-hr{color:#aeaeae}.cm-s-twilight .cm-link{color:#ad9361;font-style:italic;text-decoration:none}.cm-s-twilight .cm-error{border-bottom:1px solid red}.cm-s-twilight .CodeMirror-activeline-background{background:#27282e}.cm-s-twilight .CodeMirror-matchingbracket{outline:1px solid grey;color:#fff!important}.cm-s-vibrant-ink.CodeMirror{background:#000;color:#fff}.cm-s-vibrant-ink div.CodeMirror-selected{background:#35493c}.cm-s-vibrant-ink .CodeMirror-line::selection,.cm-s-vibrant-ink .CodeMirror-line>span::selection,.cm-s-vibrant-ink .CodeMirror-line>span>span::selection{background:rgba(53,73,60,.99)}.cm-s-vibrant-ink .CodeMirror-line::-moz-selection,.cm-s-vibrant-ink .CodeMirror-line>span::-moz-selection,.cm-s-vibrant-ink .CodeMirror-line>span>span::-moz-selection{background:rgba(53,73,60,.99)}.cm-s-vibrant-ink .CodeMirror-gutters{background:#002240;border-right:1px solid #aaa}.cm-s-vibrant-ink .CodeMirror-guttermarker{color:#fff}.cm-s-vibrant-ink .CodeMirror-guttermarker-subtle,.cm-s-vibrant-ink .CodeMirror-linenumber{color:#d0d0d0}.cm-s-vibrant-ink .CodeMirror-cursor{border-left:1px solid #fff}.cm-s-vibrant-ink .cm-keyword{color:#cc7832}.cm-s-vibrant-ink .cm-atom{color:#fc0}.cm-s-vibrant-ink .cm-number{color:#ffee98}.cm-s-vibrant-ink .cm-def{color:#8da6ce}.cm-s-vibrant-ink span.cm-variable-2,.cm-s-vibrant-ink span.cm-variable-3,.cm-s-vibrant span.cm-def,.cm-s-vibrant span.cm-tag,.cm-s-vibrant span.cm-type{color:#ffc66d}.cm-s-vibrant-ink .cm-operator{color:#888}.cm-s-vibrant-ink .cm-comment{color:gray;font-weight:700}.cm-s-vibrant-ink .cm-string{color:#a5c25c}.cm-s-vibrant-ink .cm-string-2{color:red}.cm-s-vibrant-ink .cm-meta{color:#d8fa3c}.cm-s-vibrant-ink .cm-attribute,.cm-s-vibrant-ink .cm-builtin,.cm-s-vibrant-ink .cm-tag{color:#8da6ce}.cm-s-vibrant-ink .cm-header{color:#ff6400}.cm-s-vibrant-ink .cm-hr{color:#aeaeae}.cm-s-vibrant-ink .cm-link{color:blue}.cm-s-vibrant-ink .cm-error{border-bottom:1px solid red}.cm-s-vibrant-ink .CodeMirror-activeline-background{background:#27282e}.cm-s-vibrant-ink .CodeMirror-matchingbracket{outline:1px solid grey;color:#fff!important}.cm-s-xq-dark.CodeMirror{background:#0a001f;color:#f8f8f8}.cm-s-xq-dark div.CodeMirror-selected{background:#27007a}.cm-s-xq-dark .CodeMirror-line::selection,.cm-s-xq-dark .CodeMirror-line>span::selection,.cm-s-xq-dark .CodeMirror-line>span>span::selection{background:rgba(39,0,122,.99)}.cm-s-xq-dark .CodeMirror-line::-moz-selection,.cm-s-xq-dark .CodeMirror-line>span::-moz-selection,.cm-s-xq-dark .CodeMirror-line>span>span::-moz-selection{background:rgba(39,0,122,.99)}.cm-s-xq-dark .CodeMirror-gutters{background:#0a001f;border-right:1px solid #aaa}.cm-s-xq-dark .CodeMirror-guttermarker{color:#ffbd40}.cm-s-xq-dark .CodeMirror-guttermarker-subtle,.cm-s-xq-dark .CodeMirror-linenumber{color:#f8f8f8}.cm-s-xq-dark .CodeMirror-cursor{border-left:1px solid #fff}.cm-s-xq-dark span.cm-keyword{color:#ffbd40}.cm-s-xq-dark span.cm-atom{color:#6c8cd5}.cm-s-xq-dark span.cm-number{color:#164}.cm-s-xq-dark span.cm-def{color:#fff;text-decoration:underline}.cm-s-xq-dark span.cm-variable{color:#fff}.cm-s-xq-dark span.cm-variable-2{color:#eee}.cm-s-xq-dark span.cm-type,.cm-s-xq-dark span.cm-variable-3{color:#ddd}.cm-s-xq-dark span.cm-comment{color:gray}.cm-s-xq-dark span.cm-string{color:#9fee00}.cm-s-xq-dark span.cm-meta{color:#ff0}.cm-s-xq-dark span.cm-qualifier{color:#fff700}.cm-s-xq-dark span.cm-builtin{color:#30a}.cm-s-xq-dark span.cm-bracket{color:#cc7}.cm-s-xq-dark span.cm-tag{color:#ffbd40}.cm-s-xq-dark span.cm-attribute{color:#fff700}.cm-s-xq-dark span.cm-error{color:red}.cm-s-xq-dark .CodeMirror-activeline-background{background:#27282e}.cm-s-xq-dark .CodeMirror-matchingbracket{outline:1px solid grey;color:#fff!important}.cm-s-xq-light span.cm-keyword{line-height:1em;font-weight:700;color:#5a5cad}.cm-s-xq-light span.cm-atom{color:#6c8cd5}.cm-s-xq-light span.cm-number{color:#164}.cm-s-xq-light span.cm-def{text-decoration:underline}.cm-s-xq-light span.cm-type,.cm-s-xq-light span.cm-variable,.cm-s-xq-light span.cm-variable-2,.cm-s-xq-light span.cm-variable-3{color:#000}.cm-s-xq-light span.cm-comment{color:#0080ff;font-style:italic}.cm-s-xq-light span.cm-string{color:red}.cm-s-xq-light span.cm-meta{color:#ff0}.cm-s-xq-light span.cm-qualifier{color:grey}.cm-s-xq-light span.cm-builtin{color:#7ea656}.cm-s-xq-light span.cm-bracket{color:#cc7}.cm-s-xq-light span.cm-tag{color:#3f7f7f}.cm-s-xq-light span.cm-attribute{color:#7f007f}.cm-s-xq-light span.cm-error{color:red}.cm-s-xq-light .CodeMirror-activeline-background{background:#e8f2ff}.cm-s-xq-light .CodeMirror-matchingbracket{outline:1px solid grey;color:#000!important;background:#ff0}.cm-s-yeti.CodeMirror{background-color:#eceae8!important;color:#d1c9c0!important;border:none}.cm-s-yeti .CodeMirror-gutters{color:#adaba6;background-color:#e5e1db;border:none}.cm-s-yeti .CodeMirror-cursor{border-left:thin solid #d1c9c0}.cm-s-yeti .CodeMirror-linenumber{color:#adaba6}.cm-s-yeti.CodeMirror-focused div.CodeMirror-selected{background:#dcd8d2}.cm-s-yeti .CodeMirror-line::selection,.cm-s-yeti .CodeMirror-line>span::selection,.cm-s-yeti .CodeMirror-line>span>span::selection{background:#dcd8d2}.cm-s-yeti .CodeMirror-line::-moz-selection,.cm-s-yeti .CodeMirror-line>span::-moz-selection,.cm-s-yeti .CodeMirror-line>span>span::-moz-selection{background:#dcd8d2}.cm-s-yeti span.cm-comment{color:#d4c8be}.cm-s-yeti span.cm-string,.cm-s-yeti span.cm-string-2{color:#96c0d8}.cm-s-yeti span.cm-number{color:#a074c4}.cm-s-yeti span.cm-variable{color:#55b5db}.cm-s-yeti span.cm-variable-2{color:#a074c4}.cm-s-yeti span.cm-def{color:#55b5db}.cm-s-yeti span.cm-keyword,.cm-s-yeti span.cm-operator{color:#9fb96e}.cm-s-yeti span.cm-atom{color:#a074c4}.cm-s-yeti span.cm-meta,.cm-s-yeti span.cm-tag{color:#96c0d8}.cm-s-yeti span.cm-attribute{color:#9fb96e}.cm-s-yeti span.cm-qualifier{color:#96c0d8}.cm-s-yeti span.cm-builtin,.cm-s-yeti span.cm-property{color:#a074c4}.cm-s-yeti span.cm-type,.cm-s-yeti span.cm-variable-3{color:#96c0d8}.cm-s-yeti .CodeMirror-activeline-background{background:#e7e4e0}.cm-s-yeti .CodeMirror-matchingbracket{text-decoration:underline}.cm-s-zenburn .CodeMirror-gutters{background:#3f3f3f!important}.cm-s-zenburn .CodeMirror-foldgutter-open,.CodeMirror-foldgutter-folded{color:#999}.cm-s-zenburn .CodeMirror-cursor{border-left:1px solid #fff}.cm-s-zenburn{background-color:#3f3f3f;color:#dcdccc}.cm-s-zenburn span.cm-builtin{color:#dcdccc;font-weight:700}.cm-s-zenburn span.cm-comment{color:#7f9f7f}.cm-s-zenburn span.cm-keyword{color:#f0dfaf;font-weight:700}.cm-s-zenburn span.cm-atom{color:#bfebbf}.cm-s-zenburn span.cm-def{color:#dcdccc}.cm-s-zenburn span.cm-variable{color:#dfaf8f}.cm-s-zenburn span.cm-variable-2{color:#dcdccc}.cm-s-zenburn span.cm-string,.cm-s-zenburn span.cm-string-2{color:#cc9393}.cm-s-zenburn span.cm-number{color:#dcdccc}.cm-s-zenburn span.cm-tag{color:#93e0e3}.cm-s-zenburn span.cm-attribute,.cm-s-zenburn span.cm-property{color:#dfaf8f}.cm-s-zenburn span.cm-qualifier{color:#7cb8bb}.cm-s-zenburn span.cm-meta{color:#f0dfaf}.cm-s-zenburn span.cm-header,.cm-s-zenburn span.cm-operator{color:#f0efd0}.cm-s-zenburn span.CodeMirror-matchingbracket{box-sizing:border-box;background:transparent;border-bottom:1px solid}.cm-s-zenburn span.CodeMirror-nonmatchingbracket{border-bottom:1px solid;background:none}.cm-s-zenburn .CodeMirror-activeline,.cm-s-zenburn .CodeMirror-activeline-background{background:#000}.cm-s-zenburn div.CodeMirror-selected{background:#545454}.cm-s-zenburn .CodeMirror-focused div.CodeMirror-selected{background:#4f4f4f}.CodeMirror-foldmarker{color:blue;text-shadow:#b9f 1px 1px 2px,#b9f -1px -1px 2px,#b9f 1px -1px 2px,#b9f -1px 1px 2px;font-family:arial;line-height:.3;cursor:pointer}.CodeMirror-foldgutter{width:.7em}.CodeMirror-foldgutter-folded,.CodeMirror-foldgutter-open{cursor:pointer}.CodeMirror-foldgutter-open:after{content:"\25BE"}.CodeMirror-foldgutter-folded:after{content:"\25B8"}.CodeMirror{font:inherit}.CodeMirror-scroll{font-family:Menlo Regular,Consolas,Monaco,monospace;line-height:150%;position:relative}.CodeMirror-settings{color:#444;height:0;width:100%;z-index:9;text-shadow:none}.CodeMirror-settings__toggle{border-radius:3px;z-index:11;box-sizing:border-box;position:absolute;top:0;right:0;margin:6px;display:block;cursor:pointer}.CodeMirror-settings__toggle:after{content:"\f111";font-family:dashicons;line-height:1em;display:inline-block}.CodeMirror-settings__toggle:before{border:1px solid #ddd;border-radius:3px;z-index:-1;content:"";background-color:#fff;transition:.25s ease;transition-property:transform opacity;position:absolute;top:0;right:0;bottom:0;left:0}.CodeMirror-settings__wrapper{pointer-events:none;visibility:hidden}.CodeMirror-settings__body,.CodeMirror-settings__docked{pointer-events:auto;visibility:visible}.CodeMirror-settings__wrapper{position:absolute;width:calc(100% - 12px);max-height:calc(100% - 12px);top:0;margin:6px;box-sizing:border-box;z-index:9;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.CodeMirror-settings__docked{-ms-flex:0 0 auto;flex:0 0 auto;z-index:10;background-color:#fff;box-sizing:border-box}.CodeMirror-settings__header{border-top-left-radius:3px;border-top-right-radius:3px;border:1px solid #ddd;padding:4px;border-bottom-left-radius:3px;border-bottom-right-radius:3px}.CodeMirror-settings__body{-ms-flex:1 1 auto;flex:1 1 auto;box-sizing:border-box;padding:1px 12px;overflow-y:auto;background-color:hsla(0,0%,100%,.93);border-left:1px solid #ddd;border-right:1px solid #ddd}.CodeMirror-settings__footer{border-bottom-left-radius:3px;border-bottom-right-radius:3px;border:1px solid #ddd;padding:6px 12px;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:baseline;align-items:baseline;-ms-flex-line-pack:center;align-content:center;-ms-flex-pack:justify;justify-content:space-between}.CodeMirror-settings-advanced__description{margin-left:10px;opacity:.6}td.CodeMirror-settings__heading{padding:0;padding-bottom:12px}.CodeMirror-settings__foot-content{margin:0}.CodeMirror-settings__body,.CodeMirror-settings__footer,.CodeMirror-settings__header,.CodeMirror-settings__toggle,.CodeMirror-settings__toggle-advanced,.CodeMirror-settings__wrapper{transition:.25s ease;transition-property:opacity,transform;transform-origin:top right}.CodeMirror-settings.closed .CodeMirror-settings__toggle-advanced:before{content:"more..."}.CodeMirror-settings.closed .CodeMirror-settings__toggle{opacity:.5}.CodeMirror-settings.closed .CodeMirror-settings__toggle:before,.CodeMirror-settings.closed .CodeMirror-settings__toggle:hover{opacity:1}.CodeMirror-settings.closed .CodeMirror-settings__wrapper{opacity:0;transform:scaleX(0)}.CodeMirror-settings.closed .CodeMirror-settings__body,.CodeMirror-settings.closed .CodeMirror-settings__footer{visibility:hidden;opacity:0;transform:translateY(-20px);transition:opacity .25s ease,transform .25s ease,visibility 1ms ease .25s}.CodeMirror-settings.open .CodeMirror-settings__toggle-advanced:before{content:"more..."}.CodeMirror-settings.open .CodeMirror-settings__toggle:after{content:"\f158"}.CodeMirror-settings.open .CodeMirror-settings__toggle:before{opacity:0}.CodeMirror-settings.open .CodeMirror-settings__wrapper{opacity:1;transform:scaleX(1)}.CodeMirror-settings.open .CodeMirror-settings__body,.CodeMirror-settings.open .CodeMirror-settings__footer{visibility:hidden;opacity:0;transform:translateY(-20px);transition:opacity .25s ease,transform .25s ease,visibility 1ms ease .25s}.CodeMirror-settings.open-advanced .CodeMirror-settings__toggle-advanced:before{content:"less"}.CodeMirror-settings.open-advanced .CodeMirror-settings__header{border-bottom-left-radius:0;border-bottom-right-radius:0}.CodeMirror-settings.open-advanced .CodeMirror-settings__body,.CodeMirror-settings.open-advanced .CodeMirror-settings__footer{visibility:visible;opacity:1;transform:translate(0);transition:visibility 1ms ease,opacity .25s ease 1ms,transform .25s ease 1ms}.CodeMirror-settings__button{position:relative}.CodeMirror-settings__button:active{transform:none!important}.CodeMirror-settings__button input,.CodeMirror-settings__button select{display:block;position:absolute;top:0;right:0;bottom:0;left:0;-webkit-appearance:none;margin:0;padding:0;border:none;height:auto;font-size:0;line-height:0;height:100%!important;width:100%!important;background:none;opacity:0}.CodeMirror-settings__button option{font-size:12px}.CodeMirror-settings__button--select:after{content:"\f140";font-family:dashicons;vertical-align:top;display:inline-block;margin:0 -5px -4px}.CodeMirror-settings__toggle-advanced{cursor:pointer;display:inline-block;line-height:25px;padding:0 4px;vertical-align:middle}.CodeMirror-dialog{position:absolute;left:0;right:0;top:0;width:calc(100% - 12px);margin:6px;box-sizing:border-box;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;z-index:12;padding-left:12px;border-radius:3px;border:1px solid #ddd;color:#444;background-color:#fff}.CodeMirror-dialog:after{position:absolute;right:0;top:0;bottom:0;content:"\f158";font-family:dashicons;line-height:1em;cursor:pointer}.CodeMirror-dialog input{border:none;outline:none;background:rgba(0,0,0,.05);color:inherit;font-family:monospace;margin:-1px 12px;padding:0 12px;-ms-flex-item-align:stretch;-ms-grid-row-align:stretch;align-self:stretch;-ms-flex:1 1 auto;flex:1 1 auto}.CodeMirror-dialog input,.CodeMirror-dialog input:focus{box-shadow:none}.CodeMirror-dialog button{margin:0 2px!important}.CodeMirror-dialog button:first-of-type{margin-left:12px!important}.CodeMirror-dialog span{-ms-flex-item-align:stretch;align-self:stretch;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.CodeMirror-overlayscroll .CodeMirror-gutter-filler,.CodeMirror-overlayscroll .CodeMirror-scrollbar-filler{display:none!important}.CodeMirror-overlayscroll-horizontal,.CodeMirror-overlayscroll-vertical{position:absolute;z-index:6;transition:opacity .1s linear;opacity:.5}.CodeMirror-overlayscroll-horizontal:hover,.CodeMirror-overlayscroll-vertical:hover{opacity:1}.CodeMirror-overlayscroll-horizontal:active,.CodeMirror-overlayscroll-vertical:active{opacity:.75}.CodeMirror-overlayscroll-horizontal div,.CodeMirror-overlayscroll-vertical div{position:absolute;background:transparent!important}.CodeMirror-overlayscroll-horizontal div:after,.CodeMirror-overlayscroll-vertical div:after{content:"";background-color:#f5f5f5;border:1px solid #ddd;border-radius:4px;position:absolute}.CodeMirror-overlayscroll-horizontal{bottom:0;left:0;height:8px;margin-bottom:6px}.CodeMirror-overlayscroll-horizontal div{top:0;bottom:0}.CodeMirror-overlayscroll-horizontal div:after{top:0;bottom:0;left:6px;right:6px}.CodeMirror-overlayscroll-vertical{right:0;top:0;width:8px;margin-right:6px}.CodeMirror-overlayscroll-vertical div{left:0;right:0}.CodeMirror-overlayscroll-vertical div:after{left:0;right:0;bottom:6px}.wp-editor-expand .CodeMirror{min-height:300px}.wp-editor-expand .CodeMirror .CodeMirror-scroll{padding-bottom:330px!important;margin-bottom:-330px!important}.CodeMirror-mirrored{display:block!important;position:fixed!important;left:-9999px!important;top:-9999px!important;z-index:-999!important;opacity:0!important}#template .CodeMirror div{margin-right:0}#template .CodeMirror p{width:auto}.CodeMirror-vscrollbar{display:none!important}.CodeMirror-scroll{margin-right:-30px!important}.CodeMirror-settings__toggle{margin:6px!important}.heshFullscreen{z-index:99999;position:fixed!important;top:0;left:0;right:0;bottom:0;height:100%;background:#fff;padding:2% 2% 0}.heshFullscreen .CodeMirror{border:1px solid #ccc;border-radius:0 0 4px 4px;height:85%!important}.heshFullscreen #ed_toolbar{border:1px solid #ccc;border-bottom:0;border-radius:4px 4px 0 0}.heshFullscreen #cm_content_fullscreen:before{content:"\f506"}.cm-matchhighlight,.CodeMirror-matchingbracket,.CodeMirror-matchingtag{background-color:rgba(0,255,175,.2)}#cm_content_fullscreen{display:inline-block}.wp-editor-expand #cm_content_fullscreen{display:none}.hesh-content-resize-handle{position:absolute;right:0;bottom:0;width:12px;height:12px;z-index:8;margin:1px!important}#ed_toolbar{z-index:10}@media screen and (min-width:782px){.CodeMirror-settings__toggle{height:35px;width:35px}.CodeMirror-settings__toggle:after{font-size:20px;margin:7px}.CodeMirror-settings__docked{min-height:35px}.CodeMirror-settings__header{padding-right:35px}.CodeMirror-settings__button--select:after{font-size:16px;margin-top:0}.CodeMirror-dialog{height:35px;padding-right:35px}.CodeMirror-dialog:after{font-size:20px;margin:7px}.CodeMirror-overlayscroll-vertical div:after{top:47px}#template .CodeMirror{margin-right:20px}}@media screen and (max-width:781px){.CodeMirror-settings__toggle{height:44px;width:44px}.CodeMirror-settings__toggle:after{font-size:28px;margin:8px}.CodeMirror-settings__docked{min-height:44px}.CodeMirror-settings__header{padding-right:44px}.CodeMirror-settings__button--select:after{font-size:20px;margin-top:-2px}.CodeMirror-dialog{height:44px;padding-right:44px}.CodeMirror-dialog:after{font-size:28px;margin:8px}.CodeMirror-overlayscroll-vertical div:after{top:56px}#template .CodeMirror{margin-right:0}}@media screen and (max-height:550px){.heshFullscreen .CodeMirror{height:75%!important}}@media print{.CodeMirror div.CodeMirror-cursors{visibility:hidden}}@keyframes a{50%{background-color:transparent}}
1
+ .CodeMirror{font-family:monospace;height:300px;color:#000;direction:ltr}.CodeMirror-lines{padding:4px 0}.CodeMirror pre{padding:0 4px}.CodeMirror-gutter-filler,.CodeMirror-scrollbar-filler{background-color:#fff}.CodeMirror-gutters{border-right:1px solid #ddd;background-color:#f7f7f7;white-space:nowrap}.CodeMirror-linenumber{padding:0 3px 0 5px;min-width:20px;text-align:right;color:#999;white-space:nowrap}.CodeMirror-guttermarker{color:#000}.CodeMirror-guttermarker-subtle{color:#999}.CodeMirror-cursor{border-left:1px solid #000;border-right:none;width:0}.CodeMirror div.CodeMirror-secondarycursor{border-left:1px solid silver}.cm-fat-cursor .CodeMirror-cursor{width:auto;border:0!important;background:#7e7}.cm-fat-cursor div.CodeMirror-cursors{z-index:1}.cm-fat-cursor-mark{background-color:rgba(20,255,20,.5)}.cm-animate-fat-cursor,.cm-fat-cursor-mark{-webkit-animation:a 1.06s steps(1) infinite;animation:a 1.06s steps(1) infinite}.cm-animate-fat-cursor{width:auto;border:0;background-color:#7e7}.cm-tab{display:inline-block;text-decoration:inherit}.CodeMirror-rulers{position:absolute;left:0;right:0;top:-50px;bottom:-20px;overflow:hidden}.CodeMirror-ruler{border-left:1px solid #ccc;top:0;bottom:0;position:absolute}.cm-s-default .cm-header{color:blue}.cm-s-default .cm-quote{color:#090}.cm-negative{color:#d44}.cm-positive{color:#292}.cm-header,.cm-strong{font-weight:700}.cm-em{font-style:italic}.cm-link{text-decoration:underline}.cm-strikethrough{text-decoration:line-through}.cm-s-default .cm-keyword{color:#708}.cm-s-default .cm-atom{color:#219}.cm-s-default .cm-number{color:#164}.cm-s-default .cm-def{color:#00f}.cm-s-default .cm-variable-2{color:#05a}.cm-s-default .cm-type,.cm-s-default .cm-variable-3{color:#085}.cm-s-default .cm-comment{color:#a50}.cm-s-default .cm-string{color:#a11}.cm-s-default .cm-string-2{color:#f50}.cm-s-default .cm-meta,.cm-s-default .cm-qualifier{color:#555}.cm-s-default .cm-builtin{color:#30a}.cm-s-default .cm-bracket{color:#997}.cm-s-default .cm-tag{color:#170}.cm-s-default .cm-attribute{color:#00c}.cm-s-default .cm-hr{color:#999}.cm-s-default .cm-link{color:#00c}.cm-invalidchar,.cm-s-default .cm-error{color:red}.CodeMirror-composing{border-bottom:2px solid}div.CodeMirror span.CodeMirror-matchingbracket{color:#0b0}div.CodeMirror span.CodeMirror-nonmatchingbracket{color:#a22}.CodeMirror-matchingtag{background:rgba(255,150,0,.3)}.CodeMirror-activeline-background{background:#e8f2ff}.CodeMirror{position:relative;overflow:hidden;background:#fff}.CodeMirror-scroll{overflow:scroll!important;margin-bottom:-30px;margin-right:-30px;padding-bottom:30px;height:100%;outline:none}.CodeMirror-sizer{position:relative;border-right:30px solid transparent}.CodeMirror-gutter-filler,.CodeMirror-hscrollbar,.CodeMirror-scrollbar-filler,.CodeMirror-vscrollbar{position:absolute;z-index:6;display:none}.CodeMirror-vscrollbar{right:0;top:0;overflow-x:hidden;overflow-y:scroll}.CodeMirror-hscrollbar{bottom:0;left:0;overflow-y:hidden;overflow-x:scroll}.CodeMirror-scrollbar-filler{right:0;bottom:0}.CodeMirror-gutter-filler{left:0;bottom:0}.CodeMirror-gutters{position:absolute;left:0;top:0;min-height:100%;z-index:3}.CodeMirror-gutter{white-space:normal;height:100%;display:inline-block;vertical-align:top;margin-bottom:-30px}.CodeMirror-gutter-wrapper{position:absolute;z-index:4;background:none!important;border:none!important}.CodeMirror-gutter-background{position:absolute;top:0;bottom:0;z-index:4}.CodeMirror-gutter-elt{position:absolute;cursor:default;z-index:4}.CodeMirror-gutter-wrapper ::selection{background-color:transparent}.CodeMirror-gutter-wrapper ::-moz-selection{background-color:transparent}.CodeMirror-lines{cursor:text;min-height:1px}.CodeMirror pre{border-radius:0;border-width:0;background:transparent;font-family:inherit;font-size:inherit;margin:0;white-space:pre;word-wrap:normal;line-height:inherit;color:inherit;z-index:2;position:relative;overflow:visible;-webkit-tap-highlight-color:transparent;-webkit-font-variant-ligatures:contextual;font-variant-ligatures:contextual}.CodeMirror-wrap pre{word-wrap:break-word;white-space:pre-wrap;word-break:normal}.CodeMirror-linebackground{position:absolute;left:0;right:0;top:0;bottom:0;z-index:0}.CodeMirror-linewidget{position:relative;z-index:2;padding:.1px}.CodeMirror-rtl pre{direction:rtl}.CodeMirror-code{outline:none}.CodeMirror-gutter,.CodeMirror-gutters,.CodeMirror-linenumber,.CodeMirror-scroll,.CodeMirror-sizer{box-sizing:content-box}.CodeMirror-measure{position:absolute;width:100%;height:0;overflow:hidden;visibility:hidden}.CodeMirror-cursor{position:absolute;pointer-events:none}.CodeMirror-measure pre{position:static}div.CodeMirror-cursors{visibility:hidden;position:relative;z-index:3}.CodeMirror-focused div.CodeMirror-cursors,div.CodeMirror-dragcursors{visibility:visible}.CodeMirror-selected{background:#d9d9d9}.CodeMirror-focused .CodeMirror-selected{background:#d7d4f0}.CodeMirror-crosshair{cursor:crosshair}.CodeMirror-line::selection,.CodeMirror-line>span::selection,.CodeMirror-line>span>span::selection{background:#d7d4f0}.CodeMirror-line::-moz-selection,.CodeMirror-line>span::-moz-selection,.CodeMirror-line>span>span::-moz-selection{background:#d7d4f0}.cm-searching{background-color:#ffa;background-color:rgba(255,255,0,.4)}.cm-force-border{padding-right:.1px}.cm-tab-wrap-hack:after{content:""}span.CodeMirror-selectedtext{background:none}.cm-s-3024-day.CodeMirror{background:#f7f7f7;color:#3a3432}.cm-s-3024-day div.CodeMirror-selected{background:#d6d5d4}.cm-s-3024-day .CodeMirror-line::-moz-selection,.cm-s-3024-day .CodeMirror-line>span::-moz-selection,.cm-s-3024-day .CodeMirror-line>span>span::-moz-selection{background:#d6d5d4}.cm-s-3024-day .CodeMirror-line::selection,.cm-s-3024-day .CodeMirror-line>span::selection,.cm-s-3024-day .CodeMirror-line>span>span::selection{background:#d6d5d4}.cm-s-3024-day .CodeMirror-line::-moz-selection,.cm-s-3024-day .CodeMirror-line>span::-moz-selection,.cm-s-3024-day .CodeMirror-line>span>span::-moz-selection{background:#d9d9d9}.cm-s-3024-day .CodeMirror-line::-moz-selection,.cm-s-3024-day .CodeMirror-line>span::-moz-selection,.cm-s-3024-day .CodeMirror-line>span>span::selection{background:#d9d9d9}.cm-s-3024-day .CodeMirror-gutters{background:#f7f7f7;border-right:0}.cm-s-3024-day .CodeMirror-guttermarker{color:#db2d20}.cm-s-3024-day .CodeMirror-guttermarker-subtle,.cm-s-3024-day .CodeMirror-linenumber{color:#807d7c}.cm-s-3024-day .CodeMirror-cursor{border-left:1px solid #5c5855}.cm-s-3024-day span.cm-comment{color:#cdab53}.cm-s-3024-day span.cm-atom,.cm-s-3024-day span.cm-number{color:#a16a94}.cm-s-3024-day span.cm-attribute,.cm-s-3024-day span.cm-property{color:#01a252}.cm-s-3024-day span.cm-keyword{color:#db2d20}.cm-s-3024-day span.cm-string{color:#fded02}.cm-s-3024-day span.cm-variable{color:#01a252}.cm-s-3024-day span.cm-variable-2{color:#01a0e4}.cm-s-3024-day span.cm-def{color:#e8bbd0}.cm-s-3024-day span.cm-bracket{color:#3a3432}.cm-s-3024-day span.cm-tag{color:#db2d20}.cm-s-3024-day span.cm-link{color:#a16a94}.cm-s-3024-day span.cm-error{background:#db2d20;color:#5c5855}.cm-s-3024-day .CodeMirror-activeline-background{background:#e8f2ff}.cm-s-3024-day .CodeMirror-matchingbracket{text-decoration:underline;color:#a16a94!important}.cm-s-3024-night.CodeMirror{background:#090300;color:#d6d5d4}.cm-s-3024-night div.CodeMirror-selected{background:#3a3432}.cm-s-3024-night .CodeMirror-line::selection,.cm-s-3024-night .CodeMirror-line>span::selection,.cm-s-3024-night .CodeMirror-line>span>span::selection{background:rgba(58,52,50,.99)}.cm-s-3024-night .CodeMirror-line::-moz-selection,.cm-s-3024-night .CodeMirror-line>span::-moz-selection,.cm-s-3024-night .CodeMirror-line>span>span::-moz-selection{background:rgba(58,52,50,.99)}.cm-s-3024-night .CodeMirror-gutters{background:#090300;border-right:0}.cm-s-3024-night .CodeMirror-guttermarker{color:#db2d20}.cm-s-3024-night .CodeMirror-guttermarker-subtle,.cm-s-3024-night .CodeMirror-linenumber{color:#5c5855}.cm-s-3024-night .CodeMirror-cursor{border-left:1px solid #807d7c}.cm-s-3024-night span.cm-comment{color:#cdab53}.cm-s-3024-night span.cm-atom,.cm-s-3024-night span.cm-number{color:#a16a94}.cm-s-3024-night span.cm-attribute,.cm-s-3024-night span.cm-property{color:#01a252}.cm-s-3024-night span.cm-keyword{color:#db2d20}.cm-s-3024-night span.cm-string{color:#fded02}.cm-s-3024-night span.cm-variable{color:#01a252}.cm-s-3024-night span.cm-variable-2{color:#01a0e4}.cm-s-3024-night span.cm-def{color:#e8bbd0}.cm-s-3024-night span.cm-bracket{color:#d6d5d4}.cm-s-3024-night span.cm-tag{color:#db2d20}.cm-s-3024-night span.cm-link{color:#a16a94}.cm-s-3024-night span.cm-error{background:#db2d20;color:#807d7c}.cm-s-3024-night .CodeMirror-activeline-background{background:#2f2f2f}.cm-s-3024-night .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-abcdef.CodeMirror{background:#0f0f0f;color:#defdef}.cm-s-abcdef div.CodeMirror-selected{background:#515151}.cm-s-abcdef .CodeMirror-line::selection,.cm-s-abcdef .CodeMirror-line>span::selection,.cm-s-abcdef .CodeMirror-line>span>span::selection{background:rgba(56,56,56,.99)}.cm-s-abcdef .CodeMirror-line::-moz-selection,.cm-s-abcdef .CodeMirror-line>span::-moz-selection,.cm-s-abcdef .CodeMirror-line>span>span::-moz-selection{background:rgba(56,56,56,.99)}.cm-s-abcdef .CodeMirror-gutters{background:#555;border-right:2px solid #314151}.cm-s-abcdef .CodeMirror-guttermarker{color:#222}.cm-s-abcdef .CodeMirror-guttermarker-subtle{color:azure}.cm-s-abcdef .CodeMirror-linenumber{color:#fff}.cm-s-abcdef .CodeMirror-cursor{border-left:1px solid #0f0}.cm-s-abcdef span.cm-keyword{color:#b8860b;font-weight:700}.cm-s-abcdef span.cm-atom{color:#77f}.cm-s-abcdef span.cm-number{color:violet}.cm-s-abcdef span.cm-def{color:#fffabc}.cm-s-abcdef span.cm-variable{color:#abcdef}.cm-s-abcdef span.cm-variable-2{color:#cacbcc}.cm-s-abcdef span.cm-type,.cm-s-abcdef span.cm-variable-3{color:#def}.cm-s-abcdef span.cm-property{color:#fedcba}.cm-s-abcdef span.cm-operator{color:#ff0}.cm-s-abcdef span.cm-comment{color:#7a7b7c;font-style:italic}.cm-s-abcdef span.cm-string{color:#2b4}.cm-s-abcdef span.cm-meta{color:#c9f}.cm-s-abcdef span.cm-qualifier{color:#fff700}.cm-s-abcdef span.cm-builtin{color:#30aabc}.cm-s-abcdef span.cm-bracket{color:#8a8a8a}.cm-s-abcdef span.cm-tag{color:#fd4}.cm-s-abcdef span.cm-attribute{color:#df0}.cm-s-abcdef span.cm-error{color:red}.cm-s-abcdef span.cm-header{color:#7fffd4;font-weight:700}.cm-s-abcdef span.cm-link{color:#8a2be2}.cm-s-abcdef .CodeMirror-activeline-background{background:#314151}.cm-s-ambiance.CodeMirror{box-shadow:none}.cm-s-ambiance .cm-header{color:blue}.cm-s-ambiance .cm-quote{color:#24c2c7}.cm-s-ambiance .cm-keyword{color:#cda869}.cm-s-ambiance .cm-atom{color:#cf7ea9}.cm-s-ambiance .cm-number{color:#78cf8a}.cm-s-ambiance .cm-def{color:#aac6e3}.cm-s-ambiance .cm-variable{color:#ffb795}.cm-s-ambiance .cm-variable-2{color:#eed1b3}.cm-s-ambiance .cm-type,.cm-s-ambiance .cm-variable-3{color:#faded3}.cm-s-ambiance .cm-property{color:#eed1b3}.cm-s-ambiance .cm-operator{color:#fa8d6a}.cm-s-ambiance .cm-comment{color:#555;font-style:italic}.cm-s-ambiance .cm-string{color:#8f9d6a}.cm-s-ambiance .cm-string-2{color:#9d937c}.cm-s-ambiance .cm-meta{color:#d2a8a1}.cm-s-ambiance .cm-qualifier{color:#ff0}.cm-s-ambiance .cm-builtin{color:#99c}.cm-s-ambiance .cm-bracket{color:#24c2c7}.cm-s-ambiance .cm-tag{color:#fee4ff}.cm-s-ambiance .cm-attribute{color:#9b859d}.cm-s-ambiance .cm-hr{color:pink}.cm-s-ambiance .cm-link{color:#f4c20b}.cm-s-ambiance .cm-special{color:#ff9d00}.cm-s-ambiance .cm-error{color:#af2018}.cm-s-ambiance .CodeMirror-matchingbracket{color:#0f0}.cm-s-ambiance .CodeMirror-nonmatchingbracket{color:#f22}.cm-s-ambiance div.CodeMirror-selected{background:hsla(0,0%,100%,.15)}.cm-s-ambiance.CodeMirror-focused div.CodeMirror-selected{background:hsla(0,0%,100%,.1)}.cm-s-ambiance .CodeMirror-line::selection,.cm-s-ambiance .CodeMirror-line>span::selection,.cm-s-ambiance .CodeMirror-line>span>span::selection{background:hsla(0,0%,100%,.1)}.cm-s-ambiance .CodeMirror-line::-moz-selection,.cm-s-ambiance .CodeMirror-line>span::-moz-selection,.cm-s-ambiance .CodeMirror-line>span>span::-moz-selection{background:hsla(0,0%,100%,.1)}.cm-s-ambiance.CodeMirror{line-height:1.4em;color:#e6e1dc;background-color:#202020;box-shadow:inset 0 0 10px #000}.cm-s-ambiance .CodeMirror-gutters{background:#3d3d3d;border-right:1px solid #4d4d4d;box-shadow:0 10px 20px #000}.cm-s-ambiance .CodeMirror-linenumber{text-shadow:0 1px 1px #4d4d4d;color:#111;padding:0 5px}.cm-s-ambiance .CodeMirror-guttermarker{color:#aaa}.cm-s-ambiance .CodeMirror-guttermarker-subtle{color:#111}.cm-s-ambiance .CodeMirror-cursor{border-left:1px solid #7991e8}.cm-s-ambiance .CodeMirror-activeline-background{background:none repeat scroll 0 0 hsla(0,0%,100%,.031)}.cm-s-ambiance.CodeMirror,.cm-s-ambiance .CodeMirror-gutters{background-image:url("data:image/png;base64,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")}.cm-s-base16-dark.CodeMirror{background:#151515;color:#e0e0e0}.cm-s-base16-dark div.CodeMirror-selected{background:#303030}.cm-s-base16-dark .CodeMirror-line::selection,.cm-s-base16-dark .CodeMirror-line>span::selection,.cm-s-base16-dark .CodeMirror-line>span>span::selection{background:rgba(48,48,48,.99)}.cm-s-base16-dark .CodeMirror-line::-moz-selection,.cm-s-base16-dark .CodeMirror-line>span::-moz-selection,.cm-s-base16-dark .CodeMirror-line>span>span::-moz-selection{background:rgba(48,48,48,.99)}.cm-s-base16-dark .CodeMirror-gutters{background:#151515;border-right:0}.cm-s-base16-dark .CodeMirror-guttermarker{color:#ac4142}.cm-s-base16-dark .CodeMirror-guttermarker-subtle,.cm-s-base16-dark .CodeMirror-linenumber{color:#505050}.cm-s-base16-dark .CodeMirror-cursor{border-left:1px solid #b0b0b0}.cm-s-base16-dark span.cm-comment{color:#8f5536}.cm-s-base16-dark span.cm-atom,.cm-s-base16-dark span.cm-number{color:#aa759f}.cm-s-base16-dark span.cm-attribute,.cm-s-base16-dark span.cm-property{color:#90a959}.cm-s-base16-dark span.cm-keyword{color:#ac4142}.cm-s-base16-dark span.cm-string{color:#f4bf75}.cm-s-base16-dark span.cm-variable{color:#90a959}.cm-s-base16-dark span.cm-variable-2{color:#6a9fb5}.cm-s-base16-dark span.cm-def{color:#d28445}.cm-s-base16-dark span.cm-bracket{color:#e0e0e0}.cm-s-base16-dark span.cm-tag{color:#ac4142}.cm-s-base16-dark span.cm-link{color:#aa759f}.cm-s-base16-dark span.cm-error{background:#ac4142;color:#b0b0b0}.cm-s-base16-dark .CodeMirror-activeline-background{background:#202020}.cm-s-base16-dark .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-base16-light.CodeMirror{background:#f5f5f5;color:#202020}.cm-s-base16-light div.CodeMirror-selected{background:#e0e0e0}.cm-s-base16-light .CodeMirror-line::selection,.cm-s-base16-light .CodeMirror-line>span::selection,.cm-s-base16-light .CodeMirror-line>span>span::selection{background:#e0e0e0}.cm-s-base16-light .CodeMirror-line::-moz-selection,.cm-s-base16-light .CodeMirror-line>span::-moz-selection,.cm-s-base16-light .CodeMirror-line>span>span::-moz-selection{background:#e0e0e0}.cm-s-base16-light .CodeMirror-gutters{background:#f5f5f5;border-right:0}.cm-s-base16-light .CodeMirror-guttermarker{color:#ac4142}.cm-s-base16-light .CodeMirror-guttermarker-subtle,.cm-s-base16-light .CodeMirror-linenumber{color:#b0b0b0}.cm-s-base16-light .CodeMirror-cursor{border-left:1px solid #505050}.cm-s-base16-light span.cm-comment{color:#8f5536}.cm-s-base16-light span.cm-atom,.cm-s-base16-light span.cm-number{color:#aa759f}.cm-s-base16-light span.cm-attribute,.cm-s-base16-light span.cm-property{color:#90a959}.cm-s-base16-light span.cm-keyword{color:#ac4142}.cm-s-base16-light span.cm-string{color:#f4bf75}.cm-s-base16-light span.cm-variable{color:#90a959}.cm-s-base16-light span.cm-variable-2{color:#6a9fb5}.cm-s-base16-light span.cm-def{color:#d28445}.cm-s-base16-light span.cm-bracket{color:#202020}.cm-s-base16-light span.cm-tag{color:#ac4142}.cm-s-base16-light span.cm-link{color:#aa759f}.cm-s-base16-light span.cm-error{background:#ac4142;color:#505050}.cm-s-base16-light .CodeMirror-activeline-background{background:#dddcdc}.cm-s-base16-light .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-bespin.CodeMirror{background:#28211c;color:#9d9b97}.cm-s-bespin div.CodeMirror-selected{background:#36312e!important}.cm-s-bespin .CodeMirror-gutters{background:#28211c;border-right:0}.cm-s-bespin .CodeMirror-linenumber{color:#666}.cm-s-bespin .CodeMirror-cursor{border-left:1px solid #797977!important}.cm-s-bespin span.cm-comment{color:#937121}.cm-s-bespin span.cm-atom,.cm-s-bespin span.cm-number{color:#9b859d}.cm-s-bespin span.cm-attribute,.cm-s-bespin span.cm-property{color:#54be0d}.cm-s-bespin span.cm-keyword{color:#cf6a4c}.cm-s-bespin span.cm-string{color:#f9ee98}.cm-s-bespin span.cm-variable{color:#54be0d}.cm-s-bespin span.cm-variable-2{color:#5ea6ea}.cm-s-bespin span.cm-def{color:#cf7d34}.cm-s-bespin span.cm-error{background:#cf6a4c;color:#797977}.cm-s-bespin span.cm-bracket{color:#9d9b97}.cm-s-bespin span.cm-tag{color:#cf6a4c}.cm-s-bespin span.cm-link{color:#9b859d}.cm-s-bespin .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-bespin .CodeMirror-activeline-background{background:#404040}.cm-s-blackboard.CodeMirror{background:#0c1021;color:#f8f8f8}.cm-s-blackboard div.CodeMirror-selected{background:#253b76}.cm-s-blackboard .CodeMirror-line::selection,.cm-s-blackboard .CodeMirror-line>span::selection,.cm-s-blackboard .CodeMirror-line>span>span::selection{background:rgba(37,59,118,.99)}.cm-s-blackboard .CodeMirror-line::-moz-selection,.cm-s-blackboard .CodeMirror-line>span::-moz-selection,.cm-s-blackboard .CodeMirror-line>span>span::-moz-selection{background:rgba(37,59,118,.99)}.cm-s-blackboard .CodeMirror-gutters{background:#0c1021;border-right:0}.cm-s-blackboard .CodeMirror-guttermarker{color:#fbde2d}.cm-s-blackboard .CodeMirror-guttermarker-subtle,.cm-s-blackboard .CodeMirror-linenumber{color:#888}.cm-s-blackboard .CodeMirror-cursor{border-left:1px solid #a7a7a7}.cm-s-blackboard .cm-keyword{color:#fbde2d}.cm-s-blackboard .cm-atom,.cm-s-blackboard .cm-number{color:#d8fa3c}.cm-s-blackboard .cm-def{color:#8da6ce}.cm-s-blackboard .cm-variable{color:#ff6400}.cm-s-blackboard .cm-operator{color:#fbde2d}.cm-s-blackboard .cm-comment{color:#aeaeae}.cm-s-blackboard .cm-string,.cm-s-blackboard .cm-string-2{color:#61ce3c}.cm-s-blackboard .cm-meta{color:#d8fa3c}.cm-s-blackboard .cm-attribute,.cm-s-blackboard .cm-builtin,.cm-s-blackboard .cm-tag{color:#8da6ce}.cm-s-blackboard .cm-header{color:#ff6400}.cm-s-blackboard .cm-hr{color:#aeaeae}.cm-s-blackboard .cm-link{color:#8da6ce}.cm-s-blackboard .cm-error{background:#9d1e15;color:#f8f8f8}.cm-s-blackboard .CodeMirror-activeline-background{background:#3c3636}.cm-s-blackboard .CodeMirror-matchingbracket{outline:1px solid grey;color:#fff!important}.cm-s-cobalt.CodeMirror{background:#002240;color:#fff}.cm-s-cobalt div.CodeMirror-selected{background:#b36539}.cm-s-cobalt .CodeMirror-line::selection,.cm-s-cobalt .CodeMirror-line>span::selection,.cm-s-cobalt .CodeMirror-line>span>span::selection{background:rgba(179,101,57,.99)}.cm-s-cobalt .CodeMirror-line::-moz-selection,.cm-s-cobalt .CodeMirror-line>span::-moz-selection,.cm-s-cobalt .CodeMirror-line>span>span::-moz-selection{background:rgba(179,101,57,.99)}.cm-s-cobalt .CodeMirror-gutters{background:#002240;border-right:1px solid #aaa}.cm-s-cobalt .CodeMirror-guttermarker{color:#ffee80}.cm-s-cobalt .CodeMirror-guttermarker-subtle,.cm-s-cobalt .CodeMirror-linenumber{color:#d0d0d0}.cm-s-cobalt .CodeMirror-cursor{border-left:1px solid #fff}.cm-s-cobalt span.cm-comment{color:#08f}.cm-s-cobalt span.cm-atom{color:#845dc4}.cm-s-cobalt span.cm-attribute,.cm-s-cobalt span.cm-number{color:#ff80e1}.cm-s-cobalt span.cm-keyword{color:#ffee80}.cm-s-cobalt span.cm-string{color:#3ad900}.cm-s-cobalt span.cm-meta{color:#ff9d00}.cm-s-cobalt span.cm-tag,.cm-s-cobalt span.cm-variable-2{color:#9effff}.cm-s-cobalt .cm-type,.cm-s-cobalt span.cm-def,.cm-s-cobalt span.cm-variable-3{color:#fff}.cm-s-cobalt span.cm-bracket{color:#d8d8d8}.cm-s-cobalt span.cm-builtin,.cm-s-cobalt span.cm-special{color:#ff9e59}.cm-s-cobalt span.cm-link{color:#845dc4}.cm-s-cobalt span.cm-error{color:#9d1e15}.cm-s-cobalt .CodeMirror-activeline-background{background:#002d57}.cm-s-cobalt .CodeMirror-matchingbracket{outline:1px solid grey;color:#fff!important}.cm-s-colorforth.CodeMirror{background:#000;color:#f8f8f8}.cm-s-colorforth .CodeMirror-gutters{background:#0a001f;border-right:1px solid #aaa}.cm-s-colorforth .CodeMirror-guttermarker{color:#ffbd40}.cm-s-colorforth .CodeMirror-guttermarker-subtle{color:#78846f}.cm-s-colorforth .CodeMirror-linenumber{color:#bababa}.cm-s-colorforth .CodeMirror-cursor{border-left:1px solid #fff}.cm-s-colorforth span.cm-comment{color:#ededed}.cm-s-colorforth span.cm-def{color:#ff1c1c;font-weight:700}.cm-s-colorforth span.cm-keyword{color:#ffd900}.cm-s-colorforth span.cm-builtin{color:#00d95a}.cm-s-colorforth span.cm-variable{color:#73ff00}.cm-s-colorforth span.cm-string{color:#007bff}.cm-s-colorforth span.cm-number{color:#00c4ff}.cm-s-colorforth span.cm-atom{color:#606060}.cm-s-colorforth span.cm-variable-2{color:#eee}.cm-s-colorforth span.cm-type,.cm-s-colorforth span.cm-variable-3{color:#ddd}.cm-s-colorforth span.cm-meta{color:#ff0}.cm-s-colorforth span.cm-qualifier{color:#fff700}.cm-s-colorforth span.cm-bracket{color:#cc7}.cm-s-colorforth span.cm-tag{color:#ffbd40}.cm-s-colorforth span.cm-attribute{color:#fff700}.cm-s-colorforth span.cm-error{color:red}.cm-s-colorforth div.CodeMirror-selected{background:#333d53}.cm-s-colorforth span.cm-compilation{background:hsla(0,0%,100%,.12)}.cm-s-colorforth .CodeMirror-activeline-background{background:#253540}.cm-s-darcula span.cm-meta{color:#bbb529}.cm-s-darcula span.cm-number{color:#6897bb}.cm-s-darcula span.cm-keyword{line-height:1em;font-weight:700;color:#cc7832}.cm-s-darcula span.cm-def{color:#ffc66d}.cm-s-darcula span.cm-operator,.cm-s-darcula span.cm-property,.cm-s-darcula span.cm-type,.cm-s-darcula span.cm-variable,.cm-s-darcula span.cm-variable-2,.cm-s-darcula span.cm-variable-3{color:#a9b7c6}.cm-s-darcula span.cm-string,.cm-s-darcula span.cm-string-2{color:#6a8759}.cm-s-darcula span.cm-comment{color:gray}.cm-s-darcula span.cm-link{color:#287bde}.cm-s-darcula span.cm-atom{font-weight:700;color:#cc7832}.cm-s-darcula span.cm-error{color:#bc3f3c}.cm-s-darcula span.cm-tag{color:#cc7832}.cm-s-darcula span.cm-attribute,.cm-s-darcula span.cm-qualifier{color:#6a8759}.cm-s-darcula span.cm-bracket{color:#a9b7c6}.cm-s-darcula.CodeMirror{background:#2b2b2b;color:#a9b7c6}.cm-s-darcula .CodeMirror-cursor{border-left:1px solid #ddd}.cm-s-darcula .CodeMirror-activeline-background{background:#3a3a3a}.cm-s-darcula div.CodeMirror-selected{background:#085a9c}.cm-s-darcula .CodeMirror-gutters{background:#484848;border-right:1px solid grey;color:#606366}.cm-s-darcula span.cm-builtin{color:#a9b7c6}.cm-s-darcula{font-family:Consolas,Menlo,Monaco,Lucida Console,Liberation Mono,DejaVu Sans Mono,Bitstream Vera Sans Mono,Courier New,monospace,serif}.cm-s-darcula .CodeMirror-matchingbracket{background-color:#3b514d;color:#ff0!important}.CodeMirror-hints.darcula{font-family:Menlo,Monaco,Consolas,Courier New,monospace;color:#9c9e9e;background-color:#3b3e3f!important}.CodeMirror-hints.darcula .CodeMirror-hint-active{background-color:#494d4e!important;color:#9c9e9e!important}.cm-s-dracula.CodeMirror,.cm-s-dracula .CodeMirror-gutters{background-color:#282a36!important;color:#f8f8f2!important;border:none}.cm-s-dracula .CodeMirror-gutters{color:#282a36}.cm-s-dracula .CodeMirror-cursor{border-left:thin solid #f8f8f0}.cm-s-dracula .CodeMirror-linenumber{color:#6d8a88}.cm-s-dracula .CodeMirror-selected{background:hsla(0,0%,100%,.1)}.cm-s-dracula .CodeMirror-line::selection,.cm-s-dracula .CodeMirror-line>span::selection,.cm-s-dracula .CodeMirror-line>span>span::selection{background:hsla(0,0%,100%,.1)}.cm-s-dracula .CodeMirror-line::-moz-selection,.cm-s-dracula .CodeMirror-line>span::-moz-selection,.cm-s-dracula .CodeMirror-line>span>span::-moz-selection{background:hsla(0,0%,100%,.1)}.cm-s-dracula span.cm-comment{color:#6272a4}.cm-s-dracula span.cm-string,.cm-s-dracula span.cm-string-2{color:#f1fa8c}.cm-s-dracula span.cm-number{color:#bd93f9}.cm-s-dracula span.cm-variable{color:#50fa7b}.cm-s-dracula span.cm-variable-2{color:#fff}.cm-s-dracula span.cm-def{color:#50fa7b}.cm-s-dracula span.cm-keyword,.cm-s-dracula span.cm-operator{color:#ff79c6}.cm-s-dracula span.cm-atom{color:#bd93f9}.cm-s-dracula span.cm-meta{color:#f8f8f2}.cm-s-dracula span.cm-tag{color:#ff79c6}.cm-s-dracula span.cm-attribute,.cm-s-dracula span.cm-qualifier{color:#50fa7b}.cm-s-dracula span.cm-property{color:#66d9ef}.cm-s-dracula span.cm-builtin{color:#50fa7b}.cm-s-dracula span.cm-type,.cm-s-dracula span.cm-variable-3{color:#ffb86c}.cm-s-dracula .CodeMirror-activeline-background{background:hsla(0,0%,100%,.1)}.cm-s-dracula .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-duotone-dark.CodeMirror{background:#2a2734;color:#6c6783}.cm-s-duotone-dark div.CodeMirror-selected{background:#545167!important}.cm-s-duotone-dark .CodeMirror-gutters{background:#2a2734;border-right:0}.cm-s-duotone-dark .CodeMirror-linenumber{color:#545167}.cm-s-duotone-dark .CodeMirror-cursor{border-left:1px solid #ffad5c;border-right:.5em solid #ffad5c;opacity:.5}.cm-s-duotone-dark .CodeMirror-activeline-background{background:#363342;opacity:.5}.cm-s-duotone-dark .cm-fat-cursor .CodeMirror-cursor{background:#ffad5c;opacity:.5}.cm-s-duotone-dark span.cm-atom,.cm-s-duotone-dark span.cm-attribute,.cm-s-duotone-dark span.cm-hr,.cm-s-duotone-dark span.cm-keyword,.cm-s-duotone-dark span.cm-link,.cm-s-duotone-dark span.cm-number,.cm-s-duotone-dark span.cm-quote,.cm-s-duotone-dark span.cm-variable{color:#fc9}.cm-s-duotone-dark span.cm-property{color:#9a86fd}.cm-s-duotone-dark span.cm-negative,.cm-s-duotone-dark span.cm-punctuation,.cm-s-duotone-dark span.cm-unit{color:#e09142}.cm-s-duotone-dark span.cm-string{color:#ffb870}.cm-s-duotone-dark span.cm-operator{color:#ffad5c}.cm-s-duotone-dark span.cm-positive{color:#6a51e6}.cm-s-duotone-dark span.cm-string-2,.cm-s-duotone-dark span.cm-type,.cm-s-duotone-dark span.cm-url,.cm-s-duotone-dark span.cm-variable-2,.cm-s-duotone-dark span.cm-variable-3{color:#7a63ee}.cm-s-duotone-dark span.cm-builtin,.cm-s-duotone-dark span.cm-def,.cm-s-duotone-dark span.cm-em,.cm-s-duotone-dark span.cm-header,.cm-s-duotone-dark span.cm-qualifier,.cm-s-duotone-dark span.cm-tag{color:#eeebff}.cm-s-duotone-dark span.cm-bracket,.cm-s-duotone-dark span.cm-comment{color:#6c6783}.cm-s-duotone-dark span.cm-error,.cm-s-duotone-dark span.cm-invalidchar{color:red}.cm-s-duotone-dark span.cm-header{font-weight:400}.cm-s-duotone-dark .CodeMirror-matchingbracket{text-decoration:underline;color:#eeebff!important}.cm-s-duotone-light.CodeMirror{background:#faf8f5;color:#b29762}.cm-s-duotone-light div.CodeMirror-selected{background:#e3dcce!important}.cm-s-duotone-light .CodeMirror-gutters{background:#faf8f5;border-right:0}.cm-s-duotone-light .CodeMirror-linenumber{color:#cdc4b1}.cm-s-duotone-light .CodeMirror-cursor{border-left:1px solid #93abdc;border-right:.5em solid #93abdc;opacity:.5}.cm-s-duotone-light .CodeMirror-activeline-background{background:#e3dcce;opacity:.5}.cm-s-duotone-light .cm-fat-cursor .CodeMirror-cursor{background:#93abdc;opacity:.5}.cm-s-duotone-light-light span.cm-hr,.cm-s-duotone-light-light span.cm-link,.cm-s-duotone-light span.cm-atom,.cm-s-duotone-light span.cm-attribute,.cm-s-duotone-light span.cm-keyword,.cm-s-duotone-light span.cm-number,.cm-s-duotone-light span.cm-quote,.cm-s-duotone-light span.cm-variable{color:#063289}.cm-s-duotone-light span.cm-property{color:#b29762}.cm-s-duotone-light span.cm-negative,.cm-s-duotone-light span.cm-punctuation,.cm-s-duotone-light span.cm-unit{color:#063289}.cm-s-duotone-light span.cm-operator,.cm-s-duotone-light span.cm-string{color:#1659df}.cm-s-duotone-light span.cm-positive,.cm-s-duotone-light span.cm-string-2,.cm-s-duotone-light span.cm-type,.cm-s-duotone-light span.cm-url,.cm-s-duotone-light span.cm-variable-2,.cm-s-duotone-light span.cm-variable-3{color:#896724}.cm-s-duotone-light span.cm-builtin,.cm-s-duotone-light span.cm-def,.cm-s-duotone-light span.cm-em,.cm-s-duotone-light span.cm-header,.cm-s-duotone-light span.cm-qualifier,.cm-s-duotone-light span.cm-tag{color:#2d2006}.cm-s-duotone-light span.cm-bracket,.cm-s-duotone-light span.cm-comment{color:#b6ad9a}.cm-s-duotone-light span.cm-error,.cm-s-duotone-light span.cm-invalidchar{color:red}.cm-s-duotone-light span.cm-header{font-weight:400}.cm-s-duotone-light .CodeMirror-matchingbracket{text-decoration:underline;color:#faf8f5!important}.cm-s-eclipse span.cm-meta{color:#ff1717}.cm-s-eclipse span.cm-keyword{line-height:1em;font-weight:700;color:#7f0055}.cm-s-eclipse span.cm-atom{color:#219}.cm-s-eclipse span.cm-number{color:#164}.cm-s-eclipse span.cm-def{color:#00f}.cm-s-eclipse span.cm-variable{color:#000}.cm-s-eclipse span.cm-type,.cm-s-eclipse span.cm-variable-2,.cm-s-eclipse span.cm-variable-3{color:#0000c0}.cm-s-eclipse span.cm-operator,.cm-s-eclipse span.cm-property{color:#000}.cm-s-eclipse span.cm-comment{color:#3f7f5f}.cm-s-eclipse span.cm-string{color:#2a00ff}.cm-s-eclipse span.cm-string-2{color:#f50}.cm-s-eclipse span.cm-qualifier{color:#555}.cm-s-eclipse span.cm-builtin{color:#30a}.cm-s-eclipse span.cm-bracket{color:#cc7}.cm-s-eclipse span.cm-tag{color:#170}.cm-s-eclipse span.cm-attribute{color:#00c}.cm-s-eclipse span.cm-link{color:#219}.cm-s-eclipse span.cm-error{color:red}.cm-s-eclipse .CodeMirror-activeline-background{background:#e8f2ff}.cm-s-eclipse .CodeMirror-matchingbracket{outline:1px solid grey;color:#000!important}.cm-s-elegant span.cm-atom,.cm-s-elegant span.cm-number,.cm-s-elegant span.cm-string{color:#762}.cm-s-elegant span.cm-comment{color:#262;font-style:italic;line-height:1em}.cm-s-elegant span.cm-meta{color:#555;font-style:italic;line-height:1em}.cm-s-elegant span.cm-variable{color:#000}.cm-s-elegant span.cm-variable-2{color:#b11}.cm-s-elegant span.cm-qualifier{color:#555}.cm-s-elegant span.cm-keyword{color:#730}.cm-s-elegant span.cm-builtin{color:#30a}.cm-s-elegant span.cm-link{color:#762}.cm-s-elegant span.cm-error{background-color:#fdd}.cm-s-elegant .CodeMirror-activeline-background{background:#e8f2ff}.cm-s-elegant .CodeMirror-matchingbracket{outline:1px solid grey;color:#000!important}.cm-s-erlang-dark.CodeMirror{background:#002240;color:#fff}.cm-s-erlang-dark div.CodeMirror-selected{background:#b36539}.cm-s-erlang-dark .CodeMirror-line::selection,.cm-s-erlang-dark .CodeMirror-line>span::selection,.cm-s-erlang-dark .CodeMirror-line>span>span::selection{background:rgba(179,101,57,.99)}.cm-s-erlang-dark .CodeMirror-line::-moz-selection,.cm-s-erlang-dark .CodeMirror-line>span::-moz-selection,.cm-s-erlang-dark .CodeMirror-line>span>span::-moz-selection{background:rgba(179,101,57,.99)}.cm-s-erlang-dark .CodeMirror-gutters{background:#002240;border-right:1px solid #aaa}.cm-s-erlang-dark .CodeMirror-guttermarker{color:#fff}.cm-s-erlang-dark .CodeMirror-guttermarker-subtle,.cm-s-erlang-dark .CodeMirror-linenumber{color:#d0d0d0}.cm-s-erlang-dark .CodeMirror-cursor{border-left:1px solid #fff}.cm-s-erlang-dark span.cm-quote{color:#ccc}.cm-s-erlang-dark span.cm-atom{color:#f133f1}.cm-s-erlang-dark span.cm-attribute{color:#ff80e1}.cm-s-erlang-dark span.cm-bracket{color:#ff9d00}.cm-s-erlang-dark span.cm-builtin{color:#eaa}.cm-s-erlang-dark span.cm-comment{color:#77f}.cm-s-erlang-dark span.cm-def{color:#e7a}.cm-s-erlang-dark span.cm-keyword{color:#ffee80}.cm-s-erlang-dark span.cm-meta{color:#50fefe}.cm-s-erlang-dark span.cm-number{color:#ffd0d0}.cm-s-erlang-dark span.cm-operator{color:#d55}.cm-s-erlang-dark span.cm-property,.cm-s-erlang-dark span.cm-qualifier{color:#ccc}.cm-s-erlang-dark span.cm-special{color:#fbb}.cm-s-erlang-dark span.cm-string{color:#3ad900}.cm-s-erlang-dark span.cm-string-2{color:#ccc}.cm-s-erlang-dark span.cm-tag{color:#9effff}.cm-s-erlang-dark span.cm-variable{color:#50fe50}.cm-s-erlang-dark span.cm-variable-2{color:#e0e}.cm-s-erlang-dark span.cm-type,.cm-s-erlang-dark span.cm-variable-3{color:#ccc}.cm-s-erlang-dark span.cm-error{color:#9d1e15}.cm-s-erlang-dark .CodeMirror-activeline-background{background:#013461}.cm-s-erlang-dark .CodeMirror-matchingbracket{outline:1px solid grey;color:#fff!important}.cm-s-gruvbox-dark.CodeMirror,.cm-s-gruvbox-dark .CodeMirror-gutters{background-color:#282828;color:#bdae93}.cm-s-gruvbox-dark .CodeMirror-gutters{background:#282828;border-right:0}.cm-s-gruvbox-dark .CodeMirror-linenumber{color:#7c6f64}.cm-s-gruvbox-dark .CodeMirror-cursor{border-left:1px solid #ebdbb2}.cm-s-gruvbox-dark div.CodeMirror-selected{background:#928374}.cm-s-gruvbox-dark span.cm-meta{color:olive}.cm-s-gruvbox-dark span.cm-comment{color:#928374}.cm-s-gruvbox-dark span.cm-number,span.cm-atom{color:#d3869b}.cm-s-gruvbox-dark span.cm-keyword{color:#f84934}.cm-s-gruvbox-dark span.cm-variable,.cm-s-gruvbox-dark span.cm-variable-2{color:#ebdbb2}.cm-s-gruvbox-dark span.cm-type,.cm-s-gruvbox-dark span.cm-variable-3{color:#000}.cm-s-gruvbox-dark span.cm-def,.cm-s-gruvbox-dark span.cm-operator{color:#ebdbb2}.cm-s-gruvbox-dark span.cm-string{color:#b8bb26}.cm-s-gruvbox-dark span.cm-string-2{color:#8ec07c}.cm-s-gruvbox-dark span.cm-qualifier{color:#555}.cm-s-gruvbox-dark span.cm-attribute{color:#8ec07c}.cm-s-gruvbox-dark .CodeMirror-activeline-background{background:#3c3836}.cm-s-gruvbox-dark .CodeMirror-matchingbracket{background:#928374;color:#282828!important}.cm-s-gruvbox-dark span.cm-builtin{color:#fe8019}.cm-s-hopscotch.CodeMirror{background:#322931;color:#d5d3d5}.cm-s-hopscotch div.CodeMirror-selected{background:#433b42!important}.cm-s-hopscotch .CodeMirror-gutters{background:#322931;border-right:0}.cm-s-hopscotch .CodeMirror-linenumber{color:#797379}.cm-s-hopscotch .CodeMirror-cursor{border-left:1px solid #989498!important}.cm-s-hopscotch span.cm-comment{color:#b33508}.cm-s-hopscotch span.cm-atom,.cm-s-hopscotch span.cm-number{color:#c85e7c}.cm-s-hopscotch span.cm-attribute,.cm-s-hopscotch span.cm-property{color:#8fc13e}.cm-s-hopscotch span.cm-keyword{color:#dd464c}.cm-s-hopscotch span.cm-string{color:#fdcc59}.cm-s-hopscotch span.cm-variable{color:#8fc13e}.cm-s-hopscotch span.cm-variable-2{color:#1290bf}.cm-s-hopscotch span.cm-def{color:#fd8b19}.cm-s-hopscotch span.cm-error{background:#dd464c;color:#989498}.cm-s-hopscotch span.cm-bracket{color:#d5d3d5}.cm-s-hopscotch span.cm-tag{color:#dd464c}.cm-s-hopscotch span.cm-link{color:#c85e7c}.cm-s-hopscotch .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-hopscotch .CodeMirror-activeline-background{background:#302020}.cm-s-icecoder{color:#666;background:#1d1d1b}.cm-s-icecoder span.cm-keyword{color:#eee;font-weight:700}.cm-s-icecoder span.cm-atom{color:#e1c76e}.cm-s-icecoder span.cm-number{color:#6cb5d9}.cm-s-icecoder span.cm-def{color:#b9ca4a}.cm-s-icecoder span.cm-variable{color:#6cb5d9}.cm-s-icecoder span.cm-variable-2{color:#cc1e5c}.cm-s-icecoder span.cm-type,.cm-s-icecoder span.cm-variable-3{color:#f9602c}.cm-s-icecoder span.cm-property{color:#eee}.cm-s-icecoder span.cm-operator{color:#9179bb}.cm-s-icecoder span.cm-comment{color:#97a3aa}.cm-s-icecoder span.cm-string{color:#b9ca4a}.cm-s-icecoder span.cm-string-2{color:#6cb5d9}.cm-s-icecoder span.cm-meta,.cm-s-icecoder span.cm-qualifier{color:#555}.cm-s-icecoder span.cm-builtin{color:#214e7b}.cm-s-icecoder span.cm-bracket{color:#cc7}.cm-s-icecoder span.cm-tag{color:#e8e8e8}.cm-s-icecoder span.cm-attribute{color:#099}.cm-s-icecoder span.cm-header{color:#6a0d6a}.cm-s-icecoder span.cm-quote{color:#186718}.cm-s-icecoder span.cm-hr{color:#888}.cm-s-icecoder span.cm-link{color:#e1c76e}.cm-s-icecoder span.cm-error{color:#d00}.cm-s-icecoder .CodeMirror-cursor{border-left:1px solid #fff}.cm-s-icecoder div.CodeMirror-selected{color:#fff;background:#037}.cm-s-icecoder .CodeMirror-gutters{background:#1d1d1b;min-width:41px;border-right:0}.cm-s-icecoder .CodeMirror-linenumber{color:#555;cursor:default}.cm-s-icecoder .CodeMirror-matchingbracket{color:#fff!important;background:#555!important}.cm-s-icecoder .CodeMirror-activeline-background{background:#000}.cm-s-idea span.cm-meta{color:olive}.cm-s-idea span.cm-number{color:#00f}.cm-s-idea span.cm-keyword{line-height:1em;font-weight:700;color:navy}.cm-s-idea span.cm-atom{font-weight:700;color:navy}.cm-s-idea span.cm-def,.cm-s-idea span.cm-operator,.cm-s-idea span.cm-property,.cm-s-idea span.cm-type,.cm-s-idea span.cm-variable,.cm-s-idea span.cm-variable-2,.cm-s-idea span.cm-variable-3{color:#000}.cm-s-idea span.cm-comment{color:gray}.cm-s-idea span.cm-string,.cm-s-idea span.cm-string-2{color:green}.cm-s-idea span.cm-qualifier{color:#555}.cm-s-idea span.cm-error{color:red}.cm-s-idea span.cm-attribute{color:#00f}.cm-s-idea span.cm-tag{color:navy}.cm-s-idea span.cm-link{color:#00f}.cm-s-idea .CodeMirror-activeline-background{background:#fffae3}.cm-s-idea span.cm-builtin{color:#30a}.cm-s-idea span.cm-bracket{color:#cc7}.cm-s-idea{font-family:Consolas,Menlo,Monaco,Lucida Console,Liberation Mono,DejaVu Sans Mono,Bitstream Vera Sans Mono,Courier New,monospace,serif}.cm-s-idea .CodeMirror-matchingbracket{outline:1px solid grey;color:#000!important}.CodeMirror-hints.idea{font-family:Menlo,Monaco,Consolas,Courier New,monospace;color:#616569;background-color:#ebf3fd!important}.CodeMirror-hints.idea .CodeMirror-hint-active{background-color:#a2b8c9!important;color:#5c6065!important}.cm-s-isotope.CodeMirror{background:#000;color:#e0e0e0}.cm-s-isotope div.CodeMirror-selected{background:#404040!important}.cm-s-isotope .CodeMirror-gutters{background:#000;border-right:0}.cm-s-isotope .CodeMirror-linenumber{color:gray}.cm-s-isotope .CodeMirror-cursor{border-left:1px solid silver!important}.cm-s-isotope span.cm-comment{color:#30f}.cm-s-isotope span.cm-atom,.cm-s-isotope span.cm-number{color:#c0f}.cm-s-isotope span.cm-attribute,.cm-s-isotope span.cm-property{color:#3f0}.cm-s-isotope span.cm-keyword{color:red}.cm-s-isotope span.cm-string{color:#f09}.cm-s-isotope span.cm-variable{color:#3f0}.cm-s-isotope span.cm-variable-2{color:#06f}.cm-s-isotope span.cm-def{color:#f90}.cm-s-isotope span.cm-error{background:red;color:silver}.cm-s-isotope span.cm-bracket{color:#e0e0e0}.cm-s-isotope span.cm-tag{color:red}.cm-s-isotope span.cm-link{color:#c0f}.cm-s-isotope .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-isotope .CodeMirror-activeline-background{background:#202020}.cm-s-lesser-dark{line-height:1.3em}.cm-s-lesser-dark.CodeMirror{background:#262626;color:#ebefe7;text-shadow:0 -1px 1px #262626}.cm-s-lesser-dark div.CodeMirror-selected{background:#45443b}.cm-s-lesser-dark .CodeMirror-line::selection,.cm-s-lesser-dark .CodeMirror-line>span::selection,.cm-s-lesser-dark .CodeMirror-line>span>span::selection{background:rgba(69,68,59,.99)}.cm-s-lesser-dark .CodeMirror-line::-moz-selection,.cm-s-lesser-dark .CodeMirror-line>span::-moz-selection,.cm-s-lesser-dark .CodeMirror-line>span>span::-moz-selection{background:rgba(69,68,59,.99)}.cm-s-lesser-dark .CodeMirror-cursor{border-left:1px solid #fff}.cm-s-lesser-dark pre{padding:0 8px}.cm-s-lesser-dark.CodeMirror span.CodeMirror-matchingbracket{color:#7efc7e}.cm-s-lesser-dark .CodeMirror-gutters{background:#262626;border-right:1px solid #aaa}.cm-s-lesser-dark .CodeMirror-guttermarker{color:#599eff}.cm-s-lesser-dark .CodeMirror-guttermarker-subtle,.cm-s-lesser-dark .CodeMirror-linenumber{color:#777}.cm-s-lesser-dark span.cm-header{color:#a0a}.cm-s-lesser-dark span.cm-quote{color:#090}.cm-s-lesser-dark span.cm-keyword{color:#599eff}.cm-s-lesser-dark span.cm-atom{color:#c2b470}.cm-s-lesser-dark span.cm-number{color:#b35e4d}.cm-s-lesser-dark span.cm-def{color:#fff}.cm-s-lesser-dark span.cm-variable{color:#d9bf8c}.cm-s-lesser-dark span.cm-variable-2{color:#669199}.cm-s-lesser-dark span.cm-type,.cm-s-lesser-dark span.cm-variable-3{color:#fff}.cm-s-lesser-dark span.cm-operator,.cm-s-lesser-dark span.cm-property{color:#92a75c}.cm-s-lesser-dark span.cm-comment{color:#666}.cm-s-lesser-dark span.cm-string{color:#bcd279}.cm-s-lesser-dark span.cm-string-2{color:#f50}.cm-s-lesser-dark span.cm-meta{color:#738c73}.cm-s-lesser-dark span.cm-qualifier{color:#555}.cm-s-lesser-dark span.cm-builtin{color:#ff9e59}.cm-s-lesser-dark span.cm-bracket{color:#ebefe7}.cm-s-lesser-dark span.cm-tag{color:#669199}.cm-s-lesser-dark span.cm-attribute{color:#81a4d5}.cm-s-lesser-dark span.cm-hr{color:#999}.cm-s-lesser-dark span.cm-link{color:#00c}.cm-s-lesser-dark span.cm-error{color:#9d1e15}.cm-s-lesser-dark .CodeMirror-activeline-background{background:#3c3a3a}.cm-s-lesser-dark .CodeMirror-matchingbracket{outline:1px solid grey;color:#fff!important}.cm-s-liquibyte.CodeMirror{background-color:#000;color:#fff;line-height:1.2em;font-size:1em}.cm-s-liquibyte .CodeMirror-focused .cm-matchhighlight{text-decoration:underline;-webkit-text-decoration-color:#0f0;text-decoration-color:#0f0;-webkit-text-decoration-style:wavy;text-decoration-style:wavy}.cm-s-liquibyte .cm-trailingspace{text-decoration:line-through;-webkit-text-decoration-color:red;text-decoration-color:red;-webkit-text-decoration-style:dotted;text-decoration-style:dotted}.cm-s-liquibyte .cm-tab{text-decoration:line-through;-webkit-text-decoration-color:#404040;text-decoration-color:#404040;-webkit-text-decoration-style:dotted;text-decoration-style:dotted}.cm-s-liquibyte .CodeMirror-gutters{background-color:#262626;border-right:1px solid #505050;padding-right:.8em}.cm-s-liquibyte .CodeMirror-gutter-elt div{font-size:1.2em}.cm-s-liquibyte .CodeMirror-linenumber{color:#606060;padding-left:0}.cm-s-liquibyte .CodeMirror-cursor{border-left:1px solid #eee}.cm-s-liquibyte span.cm-comment{color:green}.cm-s-liquibyte span.cm-def{color:#ffaf40;font-weight:700}.cm-s-liquibyte span.cm-keyword{color:#c080ff;font-weight:700}.cm-s-liquibyte span.cm-builtin{color:#ffaf40;font-weight:700}.cm-s-liquibyte span.cm-variable{color:#5967ff;font-weight:700}.cm-s-liquibyte span.cm-string{color:#ff8000}.cm-s-liquibyte span.cm-number{color:#0f0;font-weight:700}.cm-s-liquibyte span.cm-atom{color:#bf3030;font-weight:700}.cm-s-liquibyte span.cm-variable-2{color:#007f7f;font-weight:700}.cm-s-liquibyte span.cm-type,.cm-s-liquibyte span.cm-variable-3{color:#c080ff;font-weight:700}.cm-s-liquibyte span.cm-property{color:#999;font-weight:700}.cm-s-liquibyte span.cm-operator{color:#fff}.cm-s-liquibyte span.cm-meta{color:#0f0}.cm-s-liquibyte span.cm-qualifier{color:#fff700;font-weight:700}.cm-s-liquibyte span.cm-bracket{color:#cc7}.cm-s-liquibyte span.cm-tag{color:#ff0;font-weight:700}.cm-s-liquibyte span.cm-attribute{color:#c080ff;font-weight:700}.cm-s-liquibyte span.cm-error{color:red}.cm-s-liquibyte div.CodeMirror-selected{background-color:rgba(255,0,0,.25)}.cm-s-liquibyte span.cm-compilation{background-color:hsla(0,0%,100%,.12)}.cm-s-liquibyte .CodeMirror-activeline-background{background-color:rgba(0,255,0,.15)}.cm-s-liquibyte .CodeMirror span.CodeMirror-matchingbracket{color:#0f0;font-weight:700}.cm-s-liquibyte .CodeMirror span.CodeMirror-nonmatchingbracket{color:red;font-weight:700}.CodeMirror-matchingtag{background-color:rgba(150,255,0,.3)}.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal div:hover,.cm-s-liquibyte div.CodeMirror-simplescroll-vertical div:hover{background-color:rgba(80,80,80,.7)}.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal div,.cm-s-liquibyte div.CodeMirror-simplescroll-vertical div{background-color:rgba(80,80,80,.3);border:1px solid #404040;border-radius:5px}.cm-s-liquibyte div.CodeMirror-simplescroll-vertical div{border-top:1px solid #404040;border-bottom:1px solid #404040}.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal div{border-left:1px solid #404040;border-right:1px solid #404040}.cm-s-liquibyte div.CodeMirror-simplescroll-vertical{background-color:#262626}.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal{background-color:#262626;border-top:1px solid #404040}.cm-s-liquibyte div.CodeMirror-overlayscroll-horizontal div,div.CodeMirror-overlayscroll-vertical div{background-color:#404040;border-radius:5px}.cm-s-liquibyte div.CodeMirror-overlayscroll-horizontal div,.cm-s-liquibyte div.CodeMirror-overlayscroll-vertical div{border:1px solid #404040}.cm-s-lucario.CodeMirror,.cm-s-lucario .CodeMirror-gutters{background-color:#2b3e50!important;color:#f8f8f2!important;border:none}.cm-s-lucario .CodeMirror-gutters{color:#2b3e50}.cm-s-lucario .CodeMirror-cursor{border-left:thin solid #e6c845}.cm-s-lucario .CodeMirror-linenumber{color:#f8f8f2}.cm-s-lucario .CodeMirror-selected{background:#243443}.cm-s-lucario .CodeMirror-line::selection,.cm-s-lucario .CodeMirror-line>span::selection,.cm-s-lucario .CodeMirror-line>span>span::selection{background:#243443}.cm-s-lucario .CodeMirror-line::-moz-selection,.cm-s-lucario .CodeMirror-line>span::-moz-selection,.cm-s-lucario .CodeMirror-line>span>span::-moz-selection{background:#243443}.cm-s-lucario span.cm-comment{color:#5c98cd}.cm-s-lucario span.cm-string,.cm-s-lucario span.cm-string-2{color:#e6db74}.cm-s-lucario span.cm-number{color:#ca94ff}.cm-s-lucario span.cm-variable,.cm-s-lucario span.cm-variable-2{color:#f8f8f2}.cm-s-lucario span.cm-def{color:#72c05d}.cm-s-lucario span.cm-operator{color:#66d9ef}.cm-s-lucario span.cm-keyword{color:#ff6541}.cm-s-lucario span.cm-atom{color:#bd93f9}.cm-s-lucario span.cm-meta{color:#f8f8f2}.cm-s-lucario span.cm-tag{color:#ff6541}.cm-s-lucario span.cm-attribute{color:#66d9ef}.cm-s-lucario span.cm-qualifier{color:#72c05d}.cm-s-lucario span.cm-property{color:#f8f8f2}.cm-s-lucario span.cm-builtin{color:#72c05d}.cm-s-lucario span.cm-type,.cm-s-lucario span.cm-variable-3{color:#ffb86c}.cm-s-lucario .CodeMirror-activeline-background{background:#243443}.cm-s-lucario .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-material.CodeMirror{background-color:#263238;color:#e9eded}.cm-s-material .CodeMirror-gutters{background:#263238;color:#537f7e;border:none}.cm-s-material .CodeMirror-guttermarker,.cm-s-material .CodeMirror-guttermarker-subtle,.cm-s-material .CodeMirror-linenumber{color:#537f7e}.cm-s-material .CodeMirror-cursor{border-left:1px solid #f8f8f0}.cm-s-material div.CodeMirror-selected{background:hsla(0,0%,100%,.15)}.cm-s-material.CodeMirror-focused div.CodeMirror-selected{background:hsla(0,0%,100%,.1)}.cm-s-material .CodeMirror-line::selection,.cm-s-material .CodeMirror-line>span::selection,.cm-s-material .CodeMirror-line>span>span::selection{background:hsla(0,0%,100%,.1)}.cm-s-material .CodeMirror-line::-moz-selection,.cm-s-material .CodeMirror-line>span::-moz-selection,.cm-s-material .CodeMirror-line>span>span::-moz-selection{background:hsla(0,0%,100%,.1)}.cm-s-material .CodeMirror-activeline-background{background:transparent}.cm-s-material .cm-keyword{color:#c792ea}.cm-s-material .cm-operator{color:#e9eded}.cm-s-material .cm-variable-2{color:#80cbc4}.cm-s-material .cm-type,.cm-s-material .cm-variable-3{color:#82b1ff}.cm-s-material .cm-builtin{color:#decb6b}.cm-s-material .cm-atom,.cm-s-material .cm-number{color:#f77669}.cm-s-material .cm-def{color:#e9eded}.cm-s-material .cm-string{color:#c3e88d}.cm-s-material .cm-string-2{color:#80cbc4}.cm-s-material .cm-comment{color:#546e7a}.cm-s-material .cm-variable{color:#82b1ff}.cm-s-material .cm-meta,.cm-s-material .cm-tag{color:#80cbc4}.cm-s-material .cm-attribute{color:#ffcb6b}.cm-s-material .cm-property{color:#80cbae}.cm-s-material .cm-qualifier,.cm-s-material .cm-type,.cm-s-material .cm-variable-3{color:#decb6b}.cm-s-material .cm-tag{color:#ff5370}.cm-s-material .cm-error{color:#fff;background-color:#ec5f67}.cm-s-material .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-mbo.CodeMirror{background:#2c2c2c;color:#ffffec}.cm-s-mbo div.CodeMirror-selected{background:#716c62}.cm-s-mbo .CodeMirror-line::selection,.cm-s-mbo .CodeMirror-line>span::selection,.cm-s-mbo .CodeMirror-line>span>span::selection{background:hsla(40,7%,41%,.99)}.cm-s-mbo .CodeMirror-line::-moz-selection,.cm-s-mbo .CodeMirror-line>span::-moz-selection,.cm-s-mbo .CodeMirror-line>span>span::-moz-selection{background:hsla(40,7%,41%,.99)}.cm-s-mbo .CodeMirror-gutters{background:#4e4e4e;border-right:0}.cm-s-mbo .CodeMirror-guttermarker{color:#fff}.cm-s-mbo .CodeMirror-guttermarker-subtle{color:grey}.cm-s-mbo .CodeMirror-linenumber{color:#dadada}.cm-s-mbo .CodeMirror-cursor{border-left:1px solid #ffffec}.cm-s-mbo span.cm-comment{color:#95958a}.cm-s-mbo span.cm-atom,.cm-s-mbo span.cm-number{color:#00a8c6}.cm-s-mbo span.cm-attribute,.cm-s-mbo span.cm-property{color:#9ddfe9}.cm-s-mbo span.cm-keyword{color:#ffb928}.cm-s-mbo span.cm-string{color:#ffcf6c}.cm-s-mbo span.cm-string.cm-property,.cm-s-mbo span.cm-variable{color:#ffffec}.cm-s-mbo span.cm-variable-2{color:#00a8c6}.cm-s-mbo span.cm-def{color:#ffffec}.cm-s-mbo span.cm-bracket{color:#fffffc;font-weight:700}.cm-s-mbo span.cm-tag{color:#9ddfe9}.cm-s-mbo span.cm-link{color:#f54b07}.cm-s-mbo span.cm-error{border-bottom:#636363;color:#ffffec}.cm-s-mbo span.cm-qualifier{color:#ffffec}.cm-s-mbo .CodeMirror-activeline-background{background:#494b41}.cm-s-mbo .CodeMirror-matchingbracket{color:#ffb928!important}.cm-s-mbo .CodeMirror-matchingtag{background:hsla(0,0%,100%,.37)}.cm-s-mdn-like.CodeMirror{color:#999;background-color:#fff}.cm-s-mdn-like div.CodeMirror-selected{background:#cfc}.cm-s-mdn-like .CodeMirror-line::selection,.cm-s-mdn-like .CodeMirror-line>span::selection,.cm-s-mdn-like .CodeMirror-line>span>span::selection{background:#cfc}.cm-s-mdn-like .CodeMirror-line::-moz-selection,.cm-s-mdn-like .CodeMirror-line>span::-moz-selection,.cm-s-mdn-like .CodeMirror-line>span>span::-moz-selection{background:#cfc}.cm-s-mdn-like .CodeMirror-gutters{background:#f8f8f8;border-left:6px solid rgba(0,83,159,.65);color:#333}.cm-s-mdn-like .CodeMirror-linenumber{color:#aaa;padding-left:8px}.cm-s-mdn-like .CodeMirror-cursor{border-left:2px solid #222}.cm-s-mdn-like .cm-keyword{color:#6262ff}.cm-s-mdn-like .cm-atom{color:#f90}.cm-s-mdn-like .cm-number{color:#ca7841}.cm-s-mdn-like .cm-def{color:#8da6ce}.cm-s-mdn-like span.cm-tag,.cm-s-mdn-like span.cm-variable-2{color:#690}.cm-s-mdn-like .cm-variable,.cm-s-mdn-like span.cm-def,.cm-s-mdn-like span.cm-type,.cm-s-mdn-like span.cm-variable-3{color:#07a}.cm-s-mdn-like .cm-property{color:#905}.cm-s-mdn-like .cm-qualifier{color:#690}.cm-s-mdn-like .cm-operator{color:#cda869}.cm-s-mdn-like .cm-comment{color:#777;font-weight:400}.cm-s-mdn-like .cm-string{color:#07a;font-style:italic}.cm-s-mdn-like .cm-string-2{color:#bd6b18}.cm-s-mdn-like .cm-meta{color:#000}.cm-s-mdn-like .cm-builtin{color:#9b7536}.cm-s-mdn-like .cm-tag{color:#997643}.cm-s-mdn-like .cm-attribute{color:#d6bb6d}.cm-s-mdn-like .cm-header{color:#ff6400}.cm-s-mdn-like .cm-hr{color:#aeaeae}.cm-s-mdn-like .cm-link{color:#ad9361;font-style:italic;text-decoration:none}.cm-s-mdn-like .cm-error{border-bottom:1px solid red}div.cm-s-mdn-like .CodeMirror-activeline-background{background:#efefff}div.cm-s-mdn-like span.CodeMirror-matchingbracket{outline:1px solid grey;color:inherit}.cm-s-mdn-like.CodeMirror{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFcAAAAyCAYAAAAp8UeFAAAHvklEQVR42s2b63bcNgyEQZCSHCdt2vd/0tWF7I+Q6XgMXiTtuvU5Pl57ZQKkKHzEAOtF5KeIJBGJ8uvL599FRFREZhFx8DeXv8trn68RuGaC8TRfo3SNp9dlDDHedyLyTUTeRWStXKPZrjtpZxaRw5hPqozRs1N8/enzIiQRWcCgy4MUA0f+XWliDhyL8Lfyvx7ei/Ae3iQFHyw7U/59pQVIMEEPEz0G7XiwdRjzSfC3UTtz9vchIntxvry5iMgfIhJoEflOz2CQr3F5h/HfeFe+GTdLaKcu9L8LTeQb/R/7GgbsfKedyNdoHsN31uRPWrfZ5wsj/NzzRQHuToIdU3ahwnsKPxXCjJITuOsi7XLc7SG/v5GdALs7wf8JjTFiB5+QvTEfRyGOfX3Lrx8wxyQi3sNq46O7QahQiCsRFgqddjBouVEHOKDgXAQHD9gJCr5sMKkEdjwsarG/ww3BMHBU7OBjXnzdyY7SfCxf5/z6ATccrwlKuwC/jhznnPF4CgVzhhVf4xp2EixcBActO75iZ8/fM9zAs2OMzKdslgXWJ9XG8PQoOAMA5fGcsvORgv0doBXyHrCwfLJAOwo71QLNkb8n2Pl6EWiR7OCibtkPaz4Kc/0NNAze2gju3zOwekALDaCFPI5vjPFmgGY5AZqyGEvH1x7QfIb8YtxMnA/b+QQ0aQDAwc6JMFg8CbQZ4qoYEEHbRwNojuK3EHwd7VALSgq+MNDKzfT58T8qdpADrgW0GmgcAS1lhzztJmkAzcPNOQbsWEALBDSlMKUG0Eq4CLAQWvEVQ9WU57gZJwZtgPO3r9oBTQ9WO8TjqXINx8R0EYpiZEUWOF3FxkbJkgU9B2f41YBrIj5ZfsQa0M5kTgiAAqM3ShXLgu8XMqcrQBvJ0CL5pnTsfMB13oB8athpAq2XOQmcGmoACCLydx7nToa23ATaSIY2ichfOdPTGxlasXMLaL0MLZAOwAKIM+y8CmicobGdCcbbK9DzN+yYGVoNNI5iUKTMyYOjPse4A8SM1MmcXgU0toOq1yO/v8FOxlASyc7TgeYaAMBJHcY1CcCwGI/TK4AmDbDyKYBBtFUkRwto8gygiQEaByFgJ00BH2M8JWwQS1nafDXQCidWyOI8AcjDCSjCLk8ngObuAm3JAHAdubAmOaK06V8MNEsKPJOhobSprwQa6gD7DclRQdqcwL4zxqgBrQcabUiBLclRDKAlWp+etPkBaNMA0AKlrHwTdEByZAA4GM+SNluSY6wAzcMNewxmgig5Ks0nkrSpBvSaQHMdKTBAnLojOdYyGpQ254602ZILPdTD1hdlggdIm74jbTp8vDwF5ZYUeLWGJpWsh6XNyXgcYwVoJQTEhhTYkxzZjiU5npU2TaB979TQehlaAVq4kaGpiPwwwLkYUuBbQwocyQTv1tA0+1UFWoJF3iv1oq+qoSk8EQdJmwHkziIF7oOZk14EGitibAdjLYYK78H5vZOhtWpoI0ATGHs0Q8OMb4Ey+2bU2UYztCtA0wFAs7TplGLRVQCcqaFdGSPCeTI1QNIC52iWNzof6Uib7xjEp07mNNoUYmVosVItHrHzRlLgBn9LFyRHaQCtVUMbtTNhoXWiTOO9k/V8BdAc1Oq0ArSQs6/5SU0hckNy9NnXqQY0PGYo5dWJ7nINaN6o958FWin27aBaWRka1r5myvLOAm0j30eBJqCxHLReVclxhxOEN2JfDWjxBtAC7MIH1fVaGdoOp4qJYDgKtKPSFNID2gSnGldrCqkFZ+5UeQXQBIRrSwocbdZYQT/2LwRahBPBXoHrB8nxaGROST62DKUbQOMMzZIC9abkuELfQzQALWTnDNAm8KHWFOJgJ5+SHIvTPcmx1xQyZRhNL5Qci689aXMEaN/uNIWkEwDAvFpOZmgsBaaGnbs1NPa1Jm32gBZAIh1pCtG7TSH4aE0y1uVY4uqoFPisGlpP2rSA5qTecWn5agK6BzSpgAyD+wFaqhnYoSZ1Vwr8CmlTQbrcO3ZaX0NAEyMbYaAlyquFoLKK3SPby9CeVUPThrSJmkCAE0CrKUQadi4DrdSlWhmah0YL9z9vClH59YGbHx1J8VZTyAjQepJjmXwAKTDQI3omc3p1U4gDUf6RfcdYfrUp5ClAi2J3Ba6UOXGo+K+bQrjjssitG2SJzshaLwMtXgRagUNpYYoVkMSBLM+9GGiJZMvduG6DRZ4qc04DMPtQQxOjEtACmhO7K1AbNbQDEggZyJwscFpAGwENhoBeUwh3bWolhe8BTYVKxQEWrSUn/uhcM5KhvUu/+eQu0Lzhi+VrK0PrZZNDQKs9cpYUuFYgMVpD4/NxenJTiMCNqdUEUf1qZWjppLT5qSkkUZbCwkbZMSuVnu80hfSkzRbQeqCZSAh6huR4VtoM2gHAlLf72smuWgE+VV7XpE25Ab2WFDgyhnSuKbs4GuGzCjR+tIoUuMFg3kgcWKLTwRqanJQ2W00hAsenfaApRC42hbCvK1SlE0HtE9BGgneJO+ELamitD1YjjOYnNYVcraGhtKkW0EqVVeDx733I2NH581k1NNxNLG0i0IJ8/NjVaOZ0tYZ2Vtr0Xv7tPV3hkWp9EFkgS/J0vosngTaSoaG06WHi+xObQkaAdlbanP8B2+2l0f90LmUAAAAASUVORK5CYII=)}.cm-s-midnight span.CodeMirror-matchhighlight{background:#494949}.cm-s-midnight.CodeMirror-focused span.CodeMirror-matchhighlight{background:#314d67!important}.cm-s-midnight .CodeMirror-activeline-background{background:#253540}.cm-s-midnight.CodeMirror{background:#0f192a;color:#d1edff}.cm-s-midnight div.CodeMirror-selected{background:#314d67}.cm-s-midnight .CodeMirror-line::selection,.cm-s-midnight .CodeMirror-line>span::selection,.cm-s-midnight .CodeMirror-line>span>span::selection{background:rgba(49,77,103,.99)}.cm-s-midnight .CodeMirror-line::-moz-selection,.cm-s-midnight .CodeMirror-line>span::-moz-selection,.cm-s-midnight .CodeMirror-line>span>span::-moz-selection{background:rgba(49,77,103,.99)}.cm-s-midnight .CodeMirror-gutters{background:#0f192a;border-right:1px solid}.cm-s-midnight .CodeMirror-guttermarker{color:#fff}.cm-s-midnight .CodeMirror-guttermarker-subtle,.cm-s-midnight .CodeMirror-linenumber{color:#d0d0d0}.cm-s-midnight .CodeMirror-cursor{border-left:1px solid #f8f8f0}.cm-s-midnight span.cm-comment{color:#428bdd}.cm-s-midnight span.cm-atom{color:#ae81ff}.cm-s-midnight span.cm-number{color:#d1edff}.cm-s-midnight span.cm-attribute,.cm-s-midnight span.cm-property{color:#a6e22e}.cm-s-midnight span.cm-keyword{color:#e83737}.cm-s-midnight span.cm-string{color:#1dc116}.cm-s-midnight span.cm-variable,.cm-s-midnight span.cm-variable-2{color:#ffaa3e}.cm-s-midnight span.cm-def{color:#4dd}.cm-s-midnight span.cm-bracket{color:#d1edff}.cm-s-midnight span.cm-tag{color:#449}.cm-s-midnight span.cm-link{color:#ae81ff}.cm-s-midnight span.cm-error{background:#f92672;color:#f8f8f0}.cm-s-midnight .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-monokai.CodeMirror{background:#272822;color:#f8f8f2}.cm-s-monokai div.CodeMirror-selected{background:#49483e}.cm-s-monokai .CodeMirror-line::selection,.cm-s-monokai .CodeMirror-line>span::selection,.cm-s-monokai .CodeMirror-line>span>span::selection{background:rgba(73,72,62,.99)}.cm-s-monokai .CodeMirror-line::-moz-selection,.cm-s-monokai .CodeMirror-line>span::-moz-selection,.cm-s-monokai .CodeMirror-line>span>span::-moz-selection{background:rgba(73,72,62,.99)}.cm-s-monokai .CodeMirror-gutters{background:#272822;border-right:0}.cm-s-monokai .CodeMirror-guttermarker{color:#fff}.cm-s-monokai .CodeMirror-guttermarker-subtle,.cm-s-monokai .CodeMirror-linenumber{color:#d0d0d0}.cm-s-monokai .CodeMirror-cursor{border-left:1px solid #f8f8f0}.cm-s-monokai span.cm-comment{color:#75715e}.cm-s-monokai span.cm-atom,.cm-s-monokai span.cm-number{color:#ae81ff}.cm-s-monokai span.cm-comment.cm-attribute{color:#97b757}.cm-s-monokai span.cm-comment.cm-def{color:#bc9262}.cm-s-monokai span.cm-comment.cm-tag{color:#bc6283}.cm-s-monokai span.cm-comment.cm-type{color:#5998a6}.cm-s-monokai span.cm-attribute,.cm-s-monokai span.cm-property{color:#a6e22e}.cm-s-monokai span.cm-keyword{color:#f92672}.cm-s-monokai span.cm-builtin{color:#66d9ef}.cm-s-monokai span.cm-string{color:#e6db74}.cm-s-monokai span.cm-variable{color:#f8f8f2}.cm-s-monokai span.cm-variable-2{color:#9effff}.cm-s-monokai span.cm-type,.cm-s-monokai span.cm-variable-3{color:#66d9ef}.cm-s-monokai span.cm-def{color:#fd971f}.cm-s-monokai span.cm-bracket{color:#f8f8f2}.cm-s-monokai span.cm-tag{color:#f92672}.cm-s-monokai span.cm-header,.cm-s-monokai span.cm-link{color:#ae81ff}.cm-s-monokai span.cm-error{background:#f92672;color:#f8f8f0}.cm-s-monokai .CodeMirror-activeline-background{background:#373831}.cm-s-monokai .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-neat span.cm-comment{color:#a86}.cm-s-neat span.cm-keyword{line-height:1em;font-weight:700;color:blue}.cm-s-neat span.cm-string{color:#a22}.cm-s-neat span.cm-builtin{line-height:1em;font-weight:700;color:#077}.cm-s-neat span.cm-special{line-height:1em;font-weight:700;color:#0aa}.cm-s-neat span.cm-variable{color:#000}.cm-s-neat span.cm-atom,.cm-s-neat span.cm-number{color:#3a3}.cm-s-neat span.cm-meta{color:#555}.cm-s-neat span.cm-link{color:#3a3}.cm-s-neat .CodeMirror-activeline-background{background:#e8f2ff}.cm-s-neat .CodeMirror-matchingbracket{outline:1px solid grey;color:#000!important}.cm-s-neo.CodeMirror{background-color:#fff;color:#2e383c;line-height:1.4375}.cm-s-neo .cm-comment{color:#75787b}.cm-s-neo .cm-keyword,.cm-s-neo .cm-property{color:#1d75b3}.cm-s-neo .cm-atom,.cm-s-neo .cm-number{color:#75438a}.cm-s-neo .cm-node,.cm-s-neo .cm-tag{color:#9c3328}.cm-s-neo .cm-string{color:#b35e14}.cm-s-neo .cm-qualifier,.cm-s-neo .cm-variable{color:#047d65}.cm-s-neo pre{padding:0}.cm-s-neo .CodeMirror-gutters{border:none;border-right:10px solid transparent;background-color:transparent}.cm-s-neo .CodeMirror-linenumber{padding:0;color:#e0e2e5}.cm-s-neo .CodeMirror-guttermarker{color:#1d75b3}.cm-s-neo .CodeMirror-guttermarker-subtle{color:#e0e2e5}.cm-s-neo .CodeMirror-cursor{width:auto;border:0;background:hsla(223,4%,62%,.37);z-index:1}.cm-s-night.CodeMirror{background:#0a001f;color:#f8f8f8}.cm-s-night div.CodeMirror-selected{background:#447}.cm-s-night .CodeMirror-line::selection,.cm-s-night .CodeMirror-line>span::selection,.cm-s-night .CodeMirror-line>span>span::selection{background:rgba(68,68,119,.99)}.cm-s-night .CodeMirror-line::-moz-selection,.cm-s-night .CodeMirror-line>span::-moz-selection,.cm-s-night .CodeMirror-line>span>span::-moz-selection{background:rgba(68,68,119,.99)}.cm-s-night .CodeMirror-gutters{background:#0a001f;border-right:1px solid #aaa}.cm-s-night .CodeMirror-guttermarker{color:#fff}.cm-s-night .CodeMirror-guttermarker-subtle{color:#bbb}.cm-s-night .CodeMirror-linenumber{color:#f8f8f8}.cm-s-night .CodeMirror-cursor{border-left:1px solid #fff}.cm-s-night span.cm-comment{color:#8900d1}.cm-s-night span.cm-atom{color:#845dc4}.cm-s-night span.cm-attribute,.cm-s-night span.cm-number{color:#ffd500}.cm-s-night span.cm-keyword{color:#599eff}.cm-s-night span.cm-string{color:#37f14a}.cm-s-night span.cm-meta{color:#7678e2}.cm-s-night span.cm-tag,.cm-s-night span.cm-variable-2{color:#99b2ff}.cm-s-night span.cm-def,.cm-s-night span.cm-type,.cm-s-night span.cm-variable-3{color:#fff}.cm-s-night span.cm-bracket{color:#8da6ce}.cm-s-night span.cm-builtin,.cm-s-night span.cm-special{color:#ff9e59}.cm-s-night span.cm-link{color:#845dc4}.cm-s-night span.cm-error{color:#9d1e15}.cm-s-night .CodeMirror-activeline-background{background:#1c005a}.cm-s-night .CodeMirror-matchingbracket{outline:1px solid grey;color:#fff!important}.cm-s-oceanic-next.CodeMirror{background:#304148;color:#f8f8f2}.cm-s-oceanic-next div.CodeMirror-selected{background:rgba(101,115,126,.33)}.cm-s-oceanic-next .CodeMirror-line::selection,.cm-s-oceanic-next .CodeMirror-line>span::selection,.cm-s-oceanic-next .CodeMirror-line>span>span::selection{background:rgba(101,115,126,.33)}.cm-s-oceanic-next .CodeMirror-line::-moz-selection,.cm-s-oceanic-next .CodeMirror-line>span::-moz-selection,.cm-s-oceanic-next .CodeMirror-line>span>span::-moz-selection{background:rgba(101,115,126,.33)}.cm-s-oceanic-next .CodeMirror-gutters{background:#304148;border-right:10px}.cm-s-oceanic-next .CodeMirror-guttermarker{color:#fff}.cm-s-oceanic-next .CodeMirror-guttermarker-subtle,.cm-s-oceanic-next .CodeMirror-linenumber{color:#d0d0d0}.cm-s-oceanic-next .CodeMirror-cursor{border-left:1px solid #f8f8f0}.cm-s-oceanic-next span.cm-comment{color:#65737e}.cm-s-oceanic-next span.cm-atom{color:#c594c5}.cm-s-oceanic-next span.cm-number{color:#f99157}.cm-s-oceanic-next span.cm-property{color:#99c794}.cm-s-oceanic-next span.cm-attribute,.cm-s-oceanic-next span.cm-keyword{color:#c594c5}.cm-s-oceanic-next span.cm-builtin{color:#66d9ef}.cm-s-oceanic-next span.cm-string{color:#99c794}.cm-s-oceanic-next span.cm-variable,.cm-s-oceanic-next span.cm-variable-2,.cm-s-oceanic-next span.cm-variable-3{color:#f8f8f2}.cm-s-oceanic-next span.cm-def{color:#69c}.cm-s-oceanic-next span.cm-bracket{color:#5fb3b3}.cm-s-oceanic-next span.cm-header,.cm-s-oceanic-next span.cm-link,.cm-s-oceanic-next span.cm-tag{color:#c594c5}.cm-s-oceanic-next span.cm-error{background:#c594c5;color:#f8f8f0}.cm-s-oceanic-next .CodeMirror-activeline-background{background:rgba(101,115,126,.33)}.cm-s-oceanic-next .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-panda-syntax{background:#292a2b;color:#e6e6e6;line-height:1.5;font-family:Operator Mono,Source Sans Pro,Menlo,Monaco,Consolas,Courier New,monospace}.cm-s-panda-syntax .CodeMirror-cursor{border-color:#ff2c6d}.cm-s-panda-syntax .CodeMirror-activeline-background{background:rgba(99,123,156,.1)}.cm-s-panda-syntax .CodeMirror-selected{background:#fff}.cm-s-panda-syntax .cm-comment{font-style:italic;color:#676b79}.cm-s-panda-syntax .cm-operator{color:#f3f3f3}.cm-s-panda-syntax .cm-string{color:#19f9d8}.cm-s-panda-syntax .cm-string-2{color:#ffb86c}.cm-s-panda-syntax .cm-tag{color:#ff2c6d}.cm-s-panda-syntax .cm-meta{color:#b084eb}.cm-s-panda-syntax .cm-number{color:#ffb86c}.cm-s-panda-syntax .cm-atom{color:#ff2c6d}.cm-s-panda-syntax .cm-keyword{color:#ff75b5}.cm-s-panda-syntax .cm-variable{color:#ffb86c}.cm-s-panda-syntax .cm-type,.cm-s-panda-syntax .cm-variable-2,.cm-s-panda-syntax .cm-variable-3{color:#ff9ac1}.cm-s-panda-syntax .cm-def{color:#e6e6e6}.cm-s-panda-syntax .cm-property{color:#f3f3f3}.cm-s-panda-syntax .cm-attribute,.cm-s-panda-syntax .cm-unit{color:#ffb86c}.cm-s-panda-syntax .CodeMirror-matchingbracket{border-bottom:1px dotted #19f9d8;padding-bottom:2px;color:#e6e6e6}.cm-s-panda-syntax .CodeMirror-gutters{background:#292a2b;border-right-color:hsla(0,0%,100%,.1)}.cm-s-panda-syntax .CodeMirror-linenumber{color:#e6e6e6;opacity:.6}.cm-s-paraiso-dark.CodeMirror{background:#2f1e2e;color:#b9b6b0}.cm-s-paraiso-dark div.CodeMirror-selected{background:#41323f}.cm-s-paraiso-dark .CodeMirror-line::selection,.cm-s-paraiso-dark .CodeMirror-line>span::selection,.cm-s-paraiso-dark .CodeMirror-line>span>span::selection{background:rgba(65,50,63,.99)}.cm-s-paraiso-dark .CodeMirror-line::-moz-selection,.cm-s-paraiso-dark .CodeMirror-line>span::-moz-selection,.cm-s-paraiso-dark .CodeMirror-line>span>span::-moz-selection{background:rgba(65,50,63,.99)}.cm-s-paraiso-dark .CodeMirror-gutters{background:#2f1e2e;border-right:0}.cm-s-paraiso-dark .CodeMirror-guttermarker{color:#ef6155}.cm-s-paraiso-dark .CodeMirror-guttermarker-subtle,.cm-s-paraiso-dark .CodeMirror-linenumber{color:#776e71}.cm-s-paraiso-dark .CodeMirror-cursor{border-left:1px solid #8d8687}.cm-s-paraiso-dark span.cm-comment{color:#e96ba8}.cm-s-paraiso-dark span.cm-atom,.cm-s-paraiso-dark span.cm-number{color:#815ba4}.cm-s-paraiso-dark span.cm-attribute,.cm-s-paraiso-dark span.cm-property{color:#48b685}.cm-s-paraiso-dark span.cm-keyword{color:#ef6155}.cm-s-paraiso-dark span.cm-string{color:#fec418}.cm-s-paraiso-dark span.cm-variable{color:#48b685}.cm-s-paraiso-dark span.cm-variable-2{color:#06b6ef}.cm-s-paraiso-dark span.cm-def{color:#f99b15}.cm-s-paraiso-dark span.cm-bracket{color:#b9b6b0}.cm-s-paraiso-dark span.cm-tag{color:#ef6155}.cm-s-paraiso-dark span.cm-link{color:#815ba4}.cm-s-paraiso-dark span.cm-error{background:#ef6155;color:#8d8687}.cm-s-paraiso-dark .CodeMirror-activeline-background{background:#4d344a}.cm-s-paraiso-dark .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-paraiso-light.CodeMirror{background:#e7e9db;color:#41323f}.cm-s-paraiso-light div.CodeMirror-selected{background:#b9b6b0}.cm-s-paraiso-light .CodeMirror-line::selection,.cm-s-paraiso-light .CodeMirror-line>span::selection,.cm-s-paraiso-light .CodeMirror-line>span>span::selection{background:#b9b6b0}.cm-s-paraiso-light .CodeMirror-line::-moz-selection,.cm-s-paraiso-light .CodeMirror-line>span::-moz-selection,.cm-s-paraiso-light .CodeMirror-line>span>span::-moz-selection{background:#b9b6b0}.cm-s-paraiso-light .CodeMirror-gutters{background:#e7e9db;border-right:0}.cm-s-paraiso-light .CodeMirror-guttermarker{color:#000}.cm-s-paraiso-light .CodeMirror-guttermarker-subtle,.cm-s-paraiso-light .CodeMirror-linenumber{color:#8d8687}.cm-s-paraiso-light .CodeMirror-cursor{border-left:1px solid #776e71}.cm-s-paraiso-light span.cm-comment{color:#e96ba8}.cm-s-paraiso-light span.cm-atom,.cm-s-paraiso-light span.cm-number{color:#815ba4}.cm-s-paraiso-light span.cm-attribute,.cm-s-paraiso-light span.cm-property{color:#48b685}.cm-s-paraiso-light span.cm-keyword{color:#ef6155}.cm-s-paraiso-light span.cm-string{color:#fec418}.cm-s-paraiso-light span.cm-variable{color:#48b685}.cm-s-paraiso-light span.cm-variable-2{color:#06b6ef}.cm-s-paraiso-light span.cm-def{color:#f99b15}.cm-s-paraiso-light span.cm-bracket{color:#41323f}.cm-s-paraiso-light span.cm-tag{color:#ef6155}.cm-s-paraiso-light span.cm-link{color:#815ba4}.cm-s-paraiso-light span.cm-error{background:#ef6155;color:#776e71}.cm-s-paraiso-light .CodeMirror-activeline-background{background:#cfd1c4}.cm-s-paraiso-light .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-pastel-on-dark.CodeMirror{background:#2c2827;color:#8f938f;line-height:1.5}.cm-s-pastel-on-dark div.CodeMirror-selected{background:rgba(221,240,255,.2)}.cm-s-pastel-on-dark .CodeMirror-line::selection,.cm-s-pastel-on-dark .CodeMirror-line>span::selection,.cm-s-pastel-on-dark .CodeMirror-line>span>span::selection{background:rgba(221,240,255,.2)}.cm-s-pastel-on-dark .CodeMirror-line::-moz-selection,.cm-s-pastel-on-dark .CodeMirror-line>span::-moz-selection,.cm-s-pastel-on-dark .CodeMirror-line>span>span::-moz-selection{background:rgba(221,240,255,.2)}.cm-s-pastel-on-dark .CodeMirror-gutters{background:#34302f;border-right:0;padding:0 3px}.cm-s-pastel-on-dark .CodeMirror-guttermarker{color:#fff}.cm-s-pastel-on-dark .CodeMirror-guttermarker-subtle,.cm-s-pastel-on-dark .CodeMirror-linenumber{color:#8f938f}.cm-s-pastel-on-dark .CodeMirror-cursor{border-left:1px solid #a7a7a7}.cm-s-pastel-on-dark span.cm-comment{color:#a6c6ff}.cm-s-pastel-on-dark span.cm-atom{color:#de8e30}.cm-s-pastel-on-dark span.cm-number{color:#ccc}.cm-s-pastel-on-dark span.cm-property{color:#8f938f}.cm-s-pastel-on-dark span.cm-attribute{color:#a6e22e}.cm-s-pastel-on-dark span.cm-keyword{color:#aeb2f8}.cm-s-pastel-on-dark span.cm-string{color:#66a968}.cm-s-pastel-on-dark span.cm-variable{color:#aeb2f8}.cm-s-pastel-on-dark span.cm-variable-2{color:#bebf55}.cm-s-pastel-on-dark span.cm-type,.cm-s-pastel-on-dark span.cm-variable-3{color:#de8e30}.cm-s-pastel-on-dark span.cm-def{color:#757ad8}.cm-s-pastel-on-dark span.cm-bracket{color:#f8f8f2}.cm-s-pastel-on-dark span.cm-tag{color:#c1c144}.cm-s-pastel-on-dark span.cm-link{color:#ae81ff}.cm-s-pastel-on-dark span.cm-builtin,.cm-s-pastel-on-dark span.cm-qualifier{color:#c1c144}.cm-s-pastel-on-dark span.cm-error{background:#757ad8;color:#f8f8f0}.cm-s-pastel-on-dark .CodeMirror-activeline-background{background:hsla(0,0%,100%,.031)}.cm-s-pastel-on-dark .CodeMirror-matchingbracket{border:1px solid hsla(0,0%,100%,.25);color:#8f938f!important;margin:-1px -1px 0}.cm-s-railscasts.CodeMirror{background:#2b2b2b;color:#f4f1ed}.cm-s-railscasts div.CodeMirror-selected{background:#272935!important}.cm-s-railscasts .CodeMirror-gutters{background:#2b2b2b;border-right:0}.cm-s-railscasts .CodeMirror-linenumber{color:#5a647e}.cm-s-railscasts .CodeMirror-cursor{border-left:1px solid #d4cfc9!important}.cm-s-railscasts span.cm-comment{color:#bc9458}.cm-s-railscasts span.cm-atom,.cm-s-railscasts span.cm-number{color:#b6b3eb}.cm-s-railscasts span.cm-attribute,.cm-s-railscasts span.cm-property{color:#a5c261}.cm-s-railscasts span.cm-keyword{color:#da4939}.cm-s-railscasts span.cm-string{color:#ffc66d}.cm-s-railscasts span.cm-variable{color:#a5c261}.cm-s-railscasts span.cm-variable-2{color:#6d9cbe}.cm-s-railscasts span.cm-def{color:#cc7833}.cm-s-railscasts span.cm-error{background:#da4939;color:#d4cfc9}.cm-s-railscasts span.cm-bracket{color:#f4f1ed}.cm-s-railscasts span.cm-tag{color:#da4939}.cm-s-railscasts span.cm-link{color:#b6b3eb}.cm-s-railscasts .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-railscasts .CodeMirror-activeline-background{background:#303040}.cm-s-rubyblue.CodeMirror{background:#112435;color:#fff}.cm-s-rubyblue div.CodeMirror-selected{background:#38566f}.cm-s-rubyblue .CodeMirror-line::selection,.cm-s-rubyblue .CodeMirror-line>span::selection,.cm-s-rubyblue .CodeMirror-line>span>span::selection{background:rgba(56,86,111,.99)}.cm-s-rubyblue .CodeMirror-line::-moz-selection,.cm-s-rubyblue .CodeMirror-line>span::-moz-selection,.cm-s-rubyblue .CodeMirror-line>span>span::-moz-selection{background:rgba(56,86,111,.99)}.cm-s-rubyblue .CodeMirror-gutters{background:#1f4661;border-right:7px solid #3e7087}.cm-s-rubyblue .CodeMirror-guttermarker{color:#fff}.cm-s-rubyblue .CodeMirror-guttermarker-subtle{color:#3e7087}.cm-s-rubyblue .CodeMirror-linenumber{color:#fff}.cm-s-rubyblue .CodeMirror-cursor{border-left:1px solid #fff}.cm-s-rubyblue span.cm-comment{color:#999;font-style:italic;line-height:1em}.cm-s-rubyblue span.cm-atom{color:#f4c20b}.cm-s-rubyblue span.cm-attribute,.cm-s-rubyblue span.cm-number{color:#82c6e0}.cm-s-rubyblue span.cm-keyword{color:#f0f}.cm-s-rubyblue span.cm-string{color:#f08047}.cm-s-rubyblue span.cm-meta{color:#f0f}.cm-s-rubyblue span.cm-tag,.cm-s-rubyblue span.cm-variable-2{color:#7bd827}.cm-s-rubyblue span.cm-def,.cm-s-rubyblue span.cm-type,.cm-s-rubyblue span.cm-variable-3{color:#fff}.cm-s-rubyblue span.cm-bracket{color:#f0f}.cm-s-rubyblue span.cm-link{color:#f4c20b}.cm-s-rubyblue span.CodeMirror-matchingbracket{color:#f0f!important}.cm-s-rubyblue span.cm-builtin,.cm-s-rubyblue span.cm-special{color:#ff9d00}.cm-s-rubyblue span.cm-error{color:#af2018}.cm-s-rubyblue .CodeMirror-activeline-background{background:#173047}.cm-s-seti.CodeMirror{background-color:#151718!important;color:#cfd2d1!important;border:none}.cm-s-seti .CodeMirror-gutters{color:#404b53;background-color:#0e1112;border:none}.cm-s-seti .CodeMirror-cursor{border-left:thin solid #f8f8f0}.cm-s-seti .CodeMirror-linenumber{color:#6d8a88}.cm-s-seti.CodeMirror-focused div.CodeMirror-selected{background:hsla(0,0%,100%,.1)}.cm-s-seti .CodeMirror-line::selection,.cm-s-seti .CodeMirror-line>span::selection,.cm-s-seti .CodeMirror-line>span>span::selection{background:hsla(0,0%,100%,.1)}.cm-s-seti .CodeMirror-line::-moz-selection,.cm-s-seti .CodeMirror-line>span::-moz-selection,.cm-s-seti .CodeMirror-line>span>span::-moz-selection{background:hsla(0,0%,100%,.1)}.cm-s-seti span.cm-comment{color:#41535b}.cm-s-seti span.cm-string,.cm-s-seti span.cm-string-2{color:#55b5db}.cm-s-seti span.cm-number{color:#cd3f45}.cm-s-seti span.cm-variable{color:#55b5db}.cm-s-seti span.cm-variable-2{color:#a074c4}.cm-s-seti span.cm-def{color:#55b5db}.cm-s-seti span.cm-keyword{color:#ff79c6}.cm-s-seti span.cm-operator{color:#9fca56}.cm-s-seti span.cm-keyword{color:#e6cd69}.cm-s-seti span.cm-atom{color:#cd3f45}.cm-s-seti span.cm-meta,.cm-s-seti span.cm-tag{color:#55b5db}.cm-s-seti span.cm-attribute,.cm-s-seti span.cm-qualifier{color:#9fca56}.cm-s-seti span.cm-property{color:#a074c4}.cm-s-seti span.cm-builtin,.cm-s-seti span.cm-type,.cm-s-seti span.cm-variable-3{color:#9fca56}.cm-s-seti .CodeMirror-activeline-background{background:#101213}.cm-s-seti .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-shadowfox.CodeMirror{background:#2a2a2e;color:#b1b1b3}.cm-s-shadowfox div.CodeMirror-selected{background:#353b48}.cm-s-shadowfox .CodeMirror-line::selection,.cm-s-shadowfox .CodeMirror-line>span::selection,.cm-s-shadowfox .CodeMirror-line>span>span::selection{background:#353b48}.cm-s-shadowfox .CodeMirror-line::-moz-selection,.cm-s-shadowfox .CodeMirror-line>span::-moz-selection,.cm-s-shadowfox .CodeMirror-line>span>span::-moz-selection{background:#353b48}.cm-s-shadowfox .CodeMirror-gutters{background:#0c0c0d;border-right:1px solid #0c0c0d}.cm-s-shadowfox .CodeMirror-guttermarker{color:#555}.cm-s-shadowfox .CodeMirror-linenumber{color:#939393}.cm-s-shadowfox .CodeMirror-cursor{border-left:1px solid #fff}.cm-s-shadowfox span.cm-comment{color:#939393}.cm-s-shadowfox span.cm-atom,.cm-s-shadowfox span.cm-attribute,.cm-s-shadowfox span.cm-builtin,.cm-s-shadowfox span.cm-error,.cm-s-shadowfox span.cm-keyword,.cm-s-shadowfox span.cm-quote{color:#ff7de9}.cm-s-shadowfox span.cm-number,.cm-s-shadowfox span.cm-string,.cm-s-shadowfox span.cm-string-2{color:#6b89ff}.cm-s-shadowfox span.cm-hr,.cm-s-shadowfox span.cm-meta{color:#939393}.cm-s-shadowfox span.cm-header,.cm-s-shadowfox span.cm-qualifier,.cm-s-shadowfox span.cm-variable-2{color:#75bfff}.cm-s-shadowfox span.cm-property{color:#86de74}.cm-s-shadowfox span.cm-bracket,.cm-s-shadowfox span.cm-def,.cm-s-shadowfox span.cm-link:visited,.cm-s-shadowfox span.cm-tag{color:#75bfff}.cm-s-shadowfox span.cm-variable{color:#b98eff}.cm-s-shadowfox span.cm-variable-3{color:#d7d7db}.cm-s-shadowfox span.cm-link{color:#737373}.cm-s-shadowfox span.cm-operator{color:#b1b1b3}.cm-s-shadowfox span.cm-special{color:#d7d7db}.cm-s-shadowfox .CodeMirror-activeline-background{background:rgba(185,215,253,.15)}.cm-s-shadowfox .CodeMirror-matchingbracket{outline:1px solid hsla(0,0%,100%,.25);color:#fff!important}.solarized.base03{color:#002b36}.solarized.base02{color:#073642}.solarized.base01{color:#586e75}.solarized.base00{color:#657b83}.solarized.base0{color:#839496}.solarized.base1{color:#93a1a1}.solarized.base2{color:#eee8d5}.solarized.base3{color:#fdf6e3}.solarized.solar-yellow{color:#b58900}.solarized.solar-orange{color:#cb4b16}.solarized.solar-red{color:#dc322f}.solarized.solar-magenta{color:#d33682}.solarized.solar-violet{color:#6c71c4}.solarized.solar-blue{color:#268bd2}.solarized.solar-cyan{color:#2aa198}.solarized.solar-green{color:#859900}.cm-s-solarized{line-height:1.45em;color-profile:sRGB;rendering-intent:auto}.cm-s-solarized.cm-s-dark{color:#839496;background-color:#002b36;text-shadow:#002b36 0 1px}.cm-s-solarized.cm-s-light{background-color:#fdf6e3;color:#657b83;text-shadow:#eee8d5 0 1px}.cm-s-solarized .CodeMirror-widget{text-shadow:none}.cm-s-solarized .cm-header{color:#586e75}.cm-s-solarized .cm-quote{color:#93a1a1}.cm-s-solarized .cm-keyword{color:#cb4b16}.cm-s-solarized .cm-atom,.cm-s-solarized .cm-number{color:#d33682}.cm-s-solarized .cm-def{color:#2aa198}.cm-s-solarized .cm-variable{color:#839496}.cm-s-solarized .cm-variable-2{color:#b58900}.cm-s-solarized .cm-type,.cm-s-solarized .cm-variable-3{color:#6c71c4}.cm-s-solarized .cm-property{color:#2aa198}.cm-s-solarized .cm-operator{color:#6c71c4}.cm-s-solarized .cm-comment{color:#586e75;font-style:italic}.cm-s-solarized .cm-string{color:#859900}.cm-s-solarized .cm-string-2{color:#b58900}.cm-s-solarized .cm-meta{color:#859900}.cm-s-solarized .cm-qualifier{color:#b58900}.cm-s-solarized .cm-builtin{color:#d33682}.cm-s-solarized .cm-bracket{color:#cb4b16}.cm-s-solarized .CodeMirror-matchingbracket{color:#859900}.cm-s-solarized .CodeMirror-nonmatchingbracket{color:#dc322f}.cm-s-solarized .cm-tag{color:#93a1a1}.cm-s-solarized .cm-attribute{color:#2aa198}.cm-s-solarized .cm-hr{color:transparent;border-top:1px solid #586e75;display:block}.cm-s-solarized .cm-link{color:#93a1a1;cursor:pointer}.cm-s-solarized .cm-special{color:#6c71c4}.cm-s-solarized .cm-em{color:#999;text-decoration:underline;-webkit-text-decoration-style:dotted;text-decoration-style:dotted}.cm-s-solarized .cm-error,.cm-s-solarized .cm-invalidchar{color:#586e75;border-bottom:1px dotted #dc322f}.cm-s-solarized.cm-s-dark div.CodeMirror-selected{background:#073642}.cm-s-solarized.cm-s-dark.CodeMirror ::-moz-selection{background:rgba(7,54,66,.99)}.cm-s-solarized.cm-s-dark.CodeMirror ::selection{background:rgba(7,54,66,.99)}.cm-s-dark .CodeMirror-line>span::-moz-selection,.cm-s-dark .CodeMirror-line>span>span::-moz-selection,.cm-s-solarized.cm-s-dark .CodeMirror-line::-moz-selection{background:rgba(7,54,66,.99)}.cm-s-solarized.cm-s-light div.CodeMirror-selected{background:#eee8d5}.cm-s-light .CodeMirror-line>span::-moz-selection,.cm-s-light .CodeMirror-line>span>span::-moz-selection,.cm-s-solarized.cm-s-light .CodeMirror-line::-moz-selection{background:#eee8d5}.cm-s-light .CodeMirror-line>span::selection,.cm-s-light .CodeMirror-line>span>span::selection,.cm-s-solarized.cm-s-light .CodeMirror-line::selection{background:#eee8d5}.cm-s-ligh .CodeMirror-line>span::-moz-selection,.cm-s-ligh .CodeMirror-line>span>span::-moz-selection,.cm-s-solarized.cm-s-light .CodeMirror-line::-moz-selection{background:#eee8d5}.cm-s-solarized.CodeMirror{box-shadow:inset 7px 0 12px -6px #000}.cm-s-solarized .CodeMirror-gutters{border-right:0}.cm-s-solarized.cm-s-dark .CodeMirror-gutters{background-color:#073642}.cm-s-solarized.cm-s-dark .CodeMirror-linenumber{color:#586e75;text-shadow:#021014 0 -1px}.cm-s-solarized.cm-s-light .CodeMirror-gutters{background-color:#eee8d5}.cm-s-solarized.cm-s-light .CodeMirror-linenumber{color:#839496}.cm-s-solarized .CodeMirror-linenumber{padding:0 5px}.cm-s-solarized .CodeMirror-guttermarker-subtle{color:#586e75}.cm-s-solarized.cm-s-dark .CodeMirror-guttermarker{color:#ddd}.cm-s-solarized.cm-s-light .CodeMirror-guttermarker{color:#cb4b16}.cm-s-solarized .CodeMirror-gutter .CodeMirror-gutter-text{color:#586e75}.cm-s-solarized .CodeMirror-cursor{border-left:1px solid #819090}.cm-s-solarized.cm-s-light.cm-fat-cursor .CodeMirror-cursor{background:#7e7}.cm-s-solarized.cm-s-light .cm-animate-fat-cursor{background-color:#7e7}.cm-s-solarized.cm-s-dark.cm-fat-cursor .CodeMirror-cursor{background:#586e75}.cm-s-solarized.cm-s-dark .cm-animate-fat-cursor{background-color:#586e75}.cm-s-solarized.cm-s-dark .CodeMirror-activeline-background{background:hsla(0,0%,100%,.06)}.cm-s-solarized.cm-s-light .CodeMirror-activeline-background{background:rgba(0,0,0,.06)}.cm-s-ssms span.cm-keyword{color:blue}.cm-s-ssms span.cm-comment{color:#006400}.cm-s-ssms span.cm-string{color:red}.cm-s-ssms span.cm-def,.cm-s-ssms span.cm-variable,.cm-s-ssms span.cm-variable-2{color:#000}.cm-s-ssms span.cm-atom{color:#a9a9a9}.cm-s-ssms .CodeMirror-linenumber{color:teal}.cm-s-ssms .CodeMirror-activeline-background{background:#fff}.cm-s-ssms span.cm-string-2{color:#f0f}.cm-s-ssms span.cm-bracket,.cm-s-ssms span.cm-operator,.cm-s-ssms span.cm-punctuation{color:#a9a9a9}.cm-s-ssms .CodeMirror-gutters{border-right:3px solid #ffee62;background-color:#fff}.cm-s-ssms div.CodeMirror-selected{background:#add6ff}.cm-s-the-matrix.CodeMirror{background:#000;color:#0f0}.cm-s-the-matrix div.CodeMirror-selected{background:#2d2d2d}.cm-s-the-matrix .CodeMirror-line::selection,.cm-s-the-matrix .CodeMirror-line>span::selection,.cm-s-the-matrix .CodeMirror-line>span>span::selection{background:rgba(45,45,45,.99)}.cm-s-the-matrix .CodeMirror-line::-moz-selection,.cm-s-the-matrix .CodeMirror-line>span::-moz-selection,.cm-s-the-matrix .CodeMirror-line>span>span::-moz-selection{background:rgba(45,45,45,.99)}.cm-s-the-matrix .CodeMirror-gutters{background:#060;border-right:2px solid #0f0}.cm-s-the-matrix .CodeMirror-guttermarker{color:#0f0}.cm-s-the-matrix .CodeMirror-guttermarker-subtle,.cm-s-the-matrix .CodeMirror-linenumber{color:#fff}.cm-s-the-matrix .CodeMirror-cursor{border-left:1px solid #0f0}.cm-s-the-matrix span.cm-keyword{color:#008803;font-weight:700}.cm-s-the-matrix span.cm-atom{color:#3ff}.cm-s-the-matrix span.cm-number{color:#ffb94f}.cm-s-the-matrix span.cm-def{color:#99c}.cm-s-the-matrix span.cm-variable{color:#f6c}.cm-s-the-matrix span.cm-variable-2{color:#c6f}.cm-s-the-matrix span.cm-type,.cm-s-the-matrix span.cm-variable-3{color:#96f}.cm-s-the-matrix span.cm-property{color:#62ffa0}.cm-s-the-matrix span.cm-operator{color:#999}.cm-s-the-matrix span.cm-comment{color:#ccc}.cm-s-the-matrix span.cm-string{color:#39c}.cm-s-the-matrix span.cm-meta{color:#c9f}.cm-s-the-matrix span.cm-qualifier{color:#fff700}.cm-s-the-matrix span.cm-builtin{color:#30a}.cm-s-the-matrix span.cm-bracket{color:#cc7}.cm-s-the-matrix span.cm-tag{color:#ffbd40}.cm-s-the-matrix span.cm-attribute{color:#fff700}.cm-s-the-matrix span.cm-error{color:red}.cm-s-the-matrix .CodeMirror-activeline-background{background:#040}.cm-s-tomorrow-night-bright.CodeMirror{background:#000;color:#eaeaea}.cm-s-tomorrow-night-bright div.CodeMirror-selected{background:#424242}.cm-s-tomorrow-night-bright .CodeMirror-gutters{background:#000;border-right:0}.cm-s-tomorrow-night-bright .CodeMirror-guttermarker{color:#e78c45}.cm-s-tomorrow-night-bright .CodeMirror-guttermarker-subtle{color:#777}.cm-s-tomorrow-night-bright .CodeMirror-linenumber{color:#424242}.cm-s-tomorrow-night-bright .CodeMirror-cursor{border-left:1px solid #6a6a6a}.cm-s-tomorrow-night-bright span.cm-comment{color:#d27b53}.cm-s-tomorrow-night-bright span.cm-atom,.cm-s-tomorrow-night-bright span.cm-number{color:#a16a94}.cm-s-tomorrow-night-bright span.cm-attribute,.cm-s-tomorrow-night-bright span.cm-property{color:#9c9}.cm-s-tomorrow-night-bright span.cm-keyword{color:#d54e53}.cm-s-tomorrow-night-bright span.cm-string{color:#e7c547}.cm-s-tomorrow-night-bright span.cm-variable{color:#b9ca4a}.cm-s-tomorrow-night-bright span.cm-variable-2{color:#7aa6da}.cm-s-tomorrow-night-bright span.cm-def{color:#e78c45}.cm-s-tomorrow-night-bright span.cm-bracket{color:#eaeaea}.cm-s-tomorrow-night-bright span.cm-tag{color:#d54e53}.cm-s-tomorrow-night-bright span.cm-link{color:#a16a94}.cm-s-tomorrow-night-bright span.cm-error{background:#d54e53;color:#6a6a6a}.cm-s-tomorrow-night-bright .CodeMirror-activeline-background{background:#2a2a2a}.cm-s-tomorrow-night-bright .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-tomorrow-night-eighties.CodeMirror{background:#000;color:#ccc}.cm-s-tomorrow-night-eighties div.CodeMirror-selected{background:#2d2d2d}.cm-s-tomorrow-night-eighties .CodeMirror-line::selection,.cm-s-tomorrow-night-eighties .CodeMirror-line>span::selection,.cm-s-tomorrow-night-eighties .CodeMirror-line>span>span::selection{background:rgba(45,45,45,.99)}.cm-s-tomorrow-night-eighties .CodeMirror-line::-moz-selection,.cm-s-tomorrow-night-eighties .CodeMirror-line>span::-moz-selection,.cm-s-tomorrow-night-eighties .CodeMirror-line>span>span::-moz-selection{background:rgba(45,45,45,.99)}.cm-s-tomorrow-night-eighties .CodeMirror-gutters{background:#000;border-right:0}.cm-s-tomorrow-night-eighties .CodeMirror-guttermarker{color:#f2777a}.cm-s-tomorrow-night-eighties .CodeMirror-guttermarker-subtle{color:#777}.cm-s-tomorrow-night-eighties .CodeMirror-linenumber{color:#515151}.cm-s-tomorrow-night-eighties .CodeMirror-cursor{border-left:1px solid #6a6a6a}.cm-s-tomorrow-night-eighties span.cm-comment{color:#d27b53}.cm-s-tomorrow-night-eighties span.cm-atom,.cm-s-tomorrow-night-eighties span.cm-number{color:#a16a94}.cm-s-tomorrow-night-eighties span.cm-attribute,.cm-s-tomorrow-night-eighties span.cm-property{color:#9c9}.cm-s-tomorrow-night-eighties span.cm-keyword{color:#f2777a}.cm-s-tomorrow-night-eighties span.cm-string{color:#fc6}.cm-s-tomorrow-night-eighties span.cm-variable{color:#9c9}.cm-s-tomorrow-night-eighties span.cm-variable-2{color:#69c}.cm-s-tomorrow-night-eighties span.cm-def{color:#f99157}.cm-s-tomorrow-night-eighties span.cm-bracket{color:#ccc}.cm-s-tomorrow-night-eighties span.cm-tag{color:#f2777a}.cm-s-tomorrow-night-eighties span.cm-link{color:#a16a94}.cm-s-tomorrow-night-eighties span.cm-error{background:#f2777a;color:#6a6a6a}.cm-s-tomorrow-night-eighties .CodeMirror-activeline-background{background:#343600}.cm-s-tomorrow-night-eighties .CodeMirror-matchingbracket{text-decoration:underline;color:#fff!important}.cm-s-ttcn .cm-quote{color:#090}.cm-s-ttcn .cm-header,.cm-strong{font-weight:700}.cm-s-ttcn .cm-header{color:#00f;font-weight:700}.cm-s-ttcn .cm-atom{color:#219}.cm-s-ttcn .cm-attribute{color:#00c}.cm-s-ttcn .cm-bracket{color:#997}.cm-s-ttcn .cm-comment{color:#333}.cm-s-ttcn .cm-def{color:#00f}.cm-s-ttcn .cm-em{font-style:italic}.cm-s-ttcn .cm-error{color:red}.cm-s-ttcn .cm-hr{color:#999}.cm-s-ttcn .cm-keyword{font-weight:700}.cm-s-ttcn .cm-link{color:#00c;text-decoration:underline}.cm-s-ttcn .cm-meta{color:#555}.cm-s-ttcn .cm-negative{color:#d44}.cm-s-ttcn .cm-positive{color:#292}.cm-s-ttcn .cm-qualifier{color:#555}.cm-s-ttcn .cm-strikethrough{text-decoration:line-through}.cm-s-ttcn .cm-string{color:#006400}.cm-s-ttcn .cm-string-2{color:#f50}.cm-s-ttcn .cm-strong{font-weight:700}.cm-s-ttcn .cm-tag{color:#170}.cm-s-ttcn .cm-variable{color:#8b2252}.cm-s-ttcn .cm-variable-2{color:#05a}.cm-s-ttcn .cm-type,.cm-s-ttcn .cm-variable-3{color:#085}.cm-s-ttcn .cm-invalidchar{color:red}.cm-s-ttcn .cm-accessTypes,.cm-s-ttcn .cm-compareTypes{color:#27408b}.cm-s-ttcn .cm-cmipVerbs{color:#8b2252}.cm-s-ttcn .cm-modifier{color:#d2691e}.cm-s-ttcn .cm-status{color:#8b4545}.cm-s-ttcn .cm-storage{color:#a020f0}.cm-s-ttcn .cm-tags{color:#006400}.cm-s-ttcn .cm-externalCommands{color:#8b4545;font-weight:700}.cm-s-ttcn .cm-fileNCtrlMaskOptions,.cm-s-ttcn .cm-sectionTitle{color:#2e8b57;font-weight:700}.cm-s-ttcn .cm-booleanConsts,.cm-s-ttcn .cm-otherConsts,.cm-s-ttcn .cm-verdictConsts{color:#006400}.cm-s-ttcn .cm-configOps,.cm-s-ttcn .cm-functionOps,.cm-s-ttcn .cm-portOps,.cm-s-ttcn .cm-sutOps,.cm-s-ttcn .cm-timerOps,.cm-s-ttcn .cm-verdictOps{color:#00f}.cm-s-ttcn .cm-preprocessor,.cm-s-ttcn .cm-templateMatch,.cm-s-ttcn .cm-ttcn3Macros{color:#27408b}.cm-s-ttcn .cm-types{color:brown;font-weight:700}.cm-s-ttcn .cm-visibilityModifiers{font-weight:700}.cm-s-twilight.CodeMirror{background:#141414;color:#f7f7f7}.cm-s-twilight div.CodeMirror-selected{background:#323232}.cm-s-twilight .CodeMirror-line::selection,.cm-s-twilight .CodeMirror-line>span::selection,.cm-s-twilight .CodeMirror-line>span>span::selection{background:rgba(50,50,50,.99)}.cm-s-twilight .CodeMirror-line::-moz-selection,.cm-s-twilight .CodeMirror-line>span::-moz-selection,.cm-s-twilight .CodeMirror-line>span>span::-moz-selection{background:rgba(50,50,50,.99)}.cm-s-twilight .CodeMirror-gutters{background:#222;border-right:1px solid #aaa}.cm-s-twilight .CodeMirror-guttermarker{color:#fff}.cm-s-twilight .CodeMirror-guttermarker-subtle,.cm-s-twilight .CodeMirror-linenumber{color:#aaa}.cm-s-twilight .CodeMirror-cursor{border-left:1px solid #fff}.cm-s-twilight .cm-keyword{color:#f9ee98}.cm-s-twilight .cm-atom{color:#fc0}.cm-s-twilight .cm-number{color:#ca7841}.cm-s-twilight .cm-def{color:#8da6ce}.cm-s-twilight span.cm-def,.cm-s-twilight span.cm-tag,.cm-s-twilight span.cm-type,.cm-s-twilight span.cm-variable-2,.cm-s-twilight span.cm-variable-3{color:#607392}.cm-s-twilight .cm-operator{color:#cda869}.cm-s-twilight .cm-comment{color:#777;font-style:italic;font-weight:400}.cm-s-twilight .cm-string{color:#8f9d6a;font-style:italic}.cm-s-twilight .cm-string-2{color:#bd6b18}.cm-s-twilight .cm-meta{background-color:#141414;color:#f7f7f7}.cm-s-twilight .cm-builtin{color:#cda869}.cm-s-twilight .cm-tag{color:#997643}.cm-s-twilight .cm-attribute{color:#d6bb6d}.cm-s-twilight .cm-header{color:#ff6400}.cm-s-twilight .cm-hr{color:#aeaeae}.cm-s-twilight .cm-link{color:#ad9361;font-style:italic;text-decoration:none}.cm-s-twilight .cm-error{border-bottom:1px solid red}.cm-s-twilight .CodeMirror-activeline-background{background:#27282e}.cm-s-twilight .CodeMirror-matchingbracket{outline:1px solid grey;color:#fff!important}.cm-s-vibrant-ink.CodeMirror{background:#000;color:#fff}.cm-s-vibrant-ink div.CodeMirror-selected{background:#35493c}.cm-s-vibrant-ink .CodeMirror-line::selection,.cm-s-vibrant-ink .CodeMirror-line>span::selection,.cm-s-vibrant-ink .CodeMirror-line>span>span::selection{background:rgba(53,73,60,.99)}.cm-s-vibrant-ink .CodeMirror-line::-moz-selection,.cm-s-vibrant-ink .CodeMirror-line>span::-moz-selection,.cm-s-vibrant-ink .CodeMirror-line>span>span::-moz-selection{background:rgba(53,73,60,.99)}.cm-s-vibrant-ink .CodeMirror-gutters{background:#002240;border-right:1px solid #aaa}.cm-s-vibrant-ink .CodeMirror-guttermarker{color:#fff}.cm-s-vibrant-ink .CodeMirror-guttermarker-subtle,.cm-s-vibrant-ink .CodeMirror-linenumber{color:#d0d0d0}.cm-s-vibrant-ink .CodeMirror-cursor{border-left:1px solid #fff}.cm-s-vibrant-ink .cm-keyword{color:#cc7832}.cm-s-vibrant-ink .cm-atom{color:#fc0}.cm-s-vibrant-ink .cm-number{color:#ffee98}.cm-s-vibrant-ink .cm-def{color:#8da6ce}.cm-s-vibrant-ink span.cm-variable-2,.cm-s-vibrant-ink span.cm-variable-3,.cm-s-vibrant span.cm-def,.cm-s-vibrant span.cm-tag,.cm-s-vibrant span.cm-type{color:#ffc66d}.cm-s-vibrant-ink .cm-operator{color:#888}.cm-s-vibrant-ink .cm-comment{color:gray;font-weight:700}.cm-s-vibrant-ink .cm-string{color:#a5c25c}.cm-s-vibrant-ink .cm-string-2{color:red}.cm-s-vibrant-ink .cm-meta{color:#d8fa3c}.cm-s-vibrant-ink .cm-attribute,.cm-s-vibrant-ink .cm-builtin,.cm-s-vibrant-ink .cm-tag{color:#8da6ce}.cm-s-vibrant-ink .cm-header{color:#ff6400}.cm-s-vibrant-ink .cm-hr{color:#aeaeae}.cm-s-vibrant-ink .cm-link{color:blue}.cm-s-vibrant-ink .cm-error{border-bottom:1px solid red}.cm-s-vibrant-ink .CodeMirror-activeline-background{background:#27282e}.cm-s-vibrant-ink .CodeMirror-matchingbracket{outline:1px solid grey;color:#fff!important}.cm-s-xq-dark.CodeMirror{background:#0a001f;color:#f8f8f8}.cm-s-xq-dark div.CodeMirror-selected{background:#27007a}.cm-s-xq-dark .CodeMirror-line::selection,.cm-s-xq-dark .CodeMirror-line>span::selection,.cm-s-xq-dark .CodeMirror-line>span>span::selection{background:rgba(39,0,122,.99)}.cm-s-xq-dark .CodeMirror-line::-moz-selection,.cm-s-xq-dark .CodeMirror-line>span::-moz-selection,.cm-s-xq-dark .CodeMirror-line>span>span::-moz-selection{background:rgba(39,0,122,.99)}.cm-s-xq-dark .CodeMirror-gutters{background:#0a001f;border-right:1px solid #aaa}.cm-s-xq-dark .CodeMirror-guttermarker{color:#ffbd40}.cm-s-xq-dark .CodeMirror-guttermarker-subtle,.cm-s-xq-dark .CodeMirror-linenumber{color:#f8f8f8}.cm-s-xq-dark .CodeMirror-cursor{border-left:1px solid #fff}.cm-s-xq-dark span.cm-keyword{color:#ffbd40}.cm-s-xq-dark span.cm-atom{color:#6c8cd5}.cm-s-xq-dark span.cm-number{color:#164}.cm-s-xq-dark span.cm-def{color:#fff;text-decoration:underline}.cm-s-xq-dark span.cm-variable{color:#fff}.cm-s-xq-dark span.cm-variable-2{color:#eee}.cm-s-xq-dark span.cm-type,.cm-s-xq-dark span.cm-variable-3{color:#ddd}.cm-s-xq-dark span.cm-comment{color:gray}.cm-s-xq-dark span.cm-string{color:#9fee00}.cm-s-xq-dark span.cm-meta{color:#ff0}.cm-s-xq-dark span.cm-qualifier{color:#fff700}.cm-s-xq-dark span.cm-builtin{color:#30a}.cm-s-xq-dark span.cm-bracket{color:#cc7}.cm-s-xq-dark span.cm-tag{color:#ffbd40}.cm-s-xq-dark span.cm-attribute{color:#fff700}.cm-s-xq-dark span.cm-error{color:red}.cm-s-xq-dark .CodeMirror-activeline-background{background:#27282e}.cm-s-xq-dark .CodeMirror-matchingbracket{outline:1px solid grey;color:#fff!important}.cm-s-xq-light span.cm-keyword{line-height:1em;font-weight:700;color:#5a5cad}.cm-s-xq-light span.cm-atom{color:#6c8cd5}.cm-s-xq-light span.cm-number{color:#164}.cm-s-xq-light span.cm-def{text-decoration:underline}.cm-s-xq-light span.cm-type,.cm-s-xq-light span.cm-variable,.cm-s-xq-light span.cm-variable-2,.cm-s-xq-light span.cm-variable-3{color:#000}.cm-s-xq-light span.cm-comment{color:#0080ff;font-style:italic}.cm-s-xq-light span.cm-string{color:red}.cm-s-xq-light span.cm-meta{color:#ff0}.cm-s-xq-light span.cm-qualifier{color:grey}.cm-s-xq-light span.cm-builtin{color:#7ea656}.cm-s-xq-light span.cm-bracket{color:#cc7}.cm-s-xq-light span.cm-tag{color:#3f7f7f}.cm-s-xq-light span.cm-attribute{color:#7f007f}.cm-s-xq-light span.cm-error{color:red}.cm-s-xq-light .CodeMirror-activeline-background{background:#e8f2ff}.cm-s-xq-light .CodeMirror-matchingbracket{outline:1px solid grey;color:#000!important;background:#ff0}.cm-s-yeti.CodeMirror{background-color:#eceae8!important;color:#d1c9c0!important;border:none}.cm-s-yeti .CodeMirror-gutters{color:#adaba6;background-color:#e5e1db;border:none}.cm-s-yeti .CodeMirror-cursor{border-left:thin solid #d1c9c0}.cm-s-yeti .CodeMirror-linenumber{color:#adaba6}.cm-s-yeti.CodeMirror-focused div.CodeMirror-selected{background:#dcd8d2}.cm-s-yeti .CodeMirror-line::selection,.cm-s-yeti .CodeMirror-line>span::selection,.cm-s-yeti .CodeMirror-line>span>span::selection{background:#dcd8d2}.cm-s-yeti .CodeMirror-line::-moz-selection,.cm-s-yeti .CodeMirror-line>span::-moz-selection,.cm-s-yeti .CodeMirror-line>span>span::-moz-selection{background:#dcd8d2}.cm-s-yeti span.cm-comment{color:#d4c8be}.cm-s-yeti span.cm-string,.cm-s-yeti span.cm-string-2{color:#96c0d8}.cm-s-yeti span.cm-number{color:#a074c4}.cm-s-yeti span.cm-variable{color:#55b5db}.cm-s-yeti span.cm-variable-2{color:#a074c4}.cm-s-yeti span.cm-def{color:#55b5db}.cm-s-yeti span.cm-keyword,.cm-s-yeti span.cm-operator{color:#9fb96e}.cm-s-yeti span.cm-atom{color:#a074c4}.cm-s-yeti span.cm-meta,.cm-s-yeti span.cm-tag{color:#96c0d8}.cm-s-yeti span.cm-attribute{color:#9fb96e}.cm-s-yeti span.cm-qualifier{color:#96c0d8}.cm-s-yeti span.cm-builtin,.cm-s-yeti span.cm-property{color:#a074c4}.cm-s-yeti span.cm-type,.cm-s-yeti span.cm-variable-3{color:#96c0d8}.cm-s-yeti .CodeMirror-activeline-background{background:#e7e4e0}.cm-s-yeti .CodeMirror-matchingbracket{text-decoration:underline}.cm-s-zenburn .CodeMirror-gutters{background:#3f3f3f!important}.cm-s-zenburn .CodeMirror-foldgutter-open,.CodeMirror-foldgutter-folded{color:#999}.cm-s-zenburn .CodeMirror-cursor{border-left:1px solid #fff}.cm-s-zenburn{background-color:#3f3f3f;color:#dcdccc}.cm-s-zenburn span.cm-builtin{color:#dcdccc;font-weight:700}.cm-s-zenburn span.cm-comment{color:#7f9f7f}.cm-s-zenburn span.cm-keyword{color:#f0dfaf;font-weight:700}.cm-s-zenburn span.cm-atom{color:#bfebbf}.cm-s-zenburn span.cm-def{color:#dcdccc}.cm-s-zenburn span.cm-variable{color:#dfaf8f}.cm-s-zenburn span.cm-variable-2{color:#dcdccc}.cm-s-zenburn span.cm-string,.cm-s-zenburn span.cm-string-2{color:#cc9393}.cm-s-zenburn span.cm-number{color:#dcdccc}.cm-s-zenburn span.cm-tag{color:#93e0e3}.cm-s-zenburn span.cm-attribute,.cm-s-zenburn span.cm-property{color:#dfaf8f}.cm-s-zenburn span.cm-qualifier{color:#7cb8bb}.cm-s-zenburn span.cm-meta{color:#f0dfaf}.cm-s-zenburn span.cm-header,.cm-s-zenburn span.cm-operator{color:#f0efd0}.cm-s-zenburn span.CodeMirror-matchingbracket{box-sizing:border-box;background:transparent;border-bottom:1px solid}.cm-s-zenburn span.CodeMirror-nonmatchingbracket{border-bottom:1px solid;background:none}.cm-s-zenburn .CodeMirror-activeline,.cm-s-zenburn .CodeMirror-activeline-background{background:#000}.cm-s-zenburn div.CodeMirror-selected{background:#545454}.cm-s-zenburn .CodeMirror-focused div.CodeMirror-selected{background:#4f4f4f}.CodeMirror-foldmarker{color:blue;text-shadow:#b9f 1px 1px 2px,#b9f -1px -1px 2px,#b9f 1px -1px 2px,#b9f -1px 1px 2px;font-family:arial;line-height:.3;cursor:pointer}.CodeMirror-foldgutter{width:.7em}.CodeMirror-foldgutter-folded,.CodeMirror-foldgutter-open{cursor:pointer}.CodeMirror-foldgutter-open:after{content:"\25BE"}.CodeMirror-foldgutter-folded:after{content:"\25B8"}.CodeMirror-scroll{font-family:Menlo Regular,Consolas,Monaco,monospace;line-height:150%;position:relative}.CodeMirror-settings{color:#444;height:0;width:100%;z-index:9;text-shadow:none;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.CodeMirror-settings__toggle{border-radius:3px;z-index:11;box-sizing:border-box;position:absolute;top:0;right:0;margin:6px;display:block;cursor:pointer}.CodeMirror-settings__toggle:after{content:"\f111";font-family:dashicons;line-height:1em;display:inline-block}.CodeMirror-settings__toggle:before{border:1px solid #ddd;border-radius:3px;z-index:-1;content:"";background-color:#fff;-webkit-transition:.25s ease;transition:.25s ease;-webkit-transition-property:-webkit-transform opacity;transition-property:-webkit-transform opacity;transition-property:transform opacity;transition-property:transform opacity,-webkit-transform opacity;position:absolute;top:0;right:0;bottom:0;left:0}.CodeMirror-settings__wrapper{pointer-events:none;visibility:hidden}.CodeMirror-settings__body,.CodeMirror-settings__docked{pointer-events:auto;visibility:visible}.CodeMirror-settings__wrapper{position:absolute;width:calc(100% - 12px);max-height:calc(100% - 12px);top:0;margin:6px;box-sizing:border-box;z-index:9;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.CodeMirror-settings__docked{-ms-flex:0 0 auto;flex:0 0 auto;z-index:10;background-color:#fff;box-sizing:border-box}.CodeMirror-settings__header{border-top-left-radius:3px;border-top-right-radius:3px;border:1px solid #ddd;padding:4px;border-bottom-left-radius:3px;border-bottom-right-radius:3px}.CodeMirror-settings__body{-ms-flex:1 1 auto;flex:1 1 auto;box-sizing:border-box;padding:1px 12px;overflow-y:auto;background-color:hsla(0,0%,100%,.93);border-left:1px solid #ddd;border-right:1px solid #ddd}.CodeMirror-settings__footer{border-bottom-left-radius:3px;border-bottom-right-radius:3px;border:1px solid #ddd;padding:6px 12px;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:baseline;align-items:baseline;-ms-flex-line-pack:center;align-content:center;-ms-flex-pack:justify;justify-content:space-between}.CodeMirror-settings-advanced__description{margin-left:10px;opacity:.6}td.CodeMirror-settings__heading{padding:0;padding-bottom:12px}.CodeMirror-settings__foot-content{margin:0}.CodeMirror-settings__body,.CodeMirror-settings__footer,.CodeMirror-settings__header,.CodeMirror-settings__toggle,.CodeMirror-settings__toggle-advanced,.CodeMirror-settings__wrapper{-webkit-transition:.25s ease;transition:.25s ease;-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:opacity,transform;transition-property:opacity,transform,-webkit-transform;-webkit-transform-origin:top right;transform-origin:top right}.CodeMirror-settings.closed .CodeMirror-settings__toggle-advanced:before{content:"more..."}.CodeMirror-settings.closed .CodeMirror-settings__toggle{opacity:.5}.CodeMirror-settings.closed .CodeMirror-settings__toggle:before,.CodeMirror-settings.closed .CodeMirror-settings__toggle:hover{opacity:1}.CodeMirror-settings.closed .CodeMirror-settings__wrapper{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}.CodeMirror-settings.closed .CodeMirror-settings__body,.CodeMirror-settings.closed .CodeMirror-settings__footer{visibility:hidden;opacity:0;-webkit-transform:translateY(-20px);transform:translateY(-20px);-webkit-transition:opacity .25s ease,visibility 1ms ease .25s,-webkit-transform .25s ease;transition:opacity .25s ease,visibility 1ms ease .25s,-webkit-transform .25s ease;transition:opacity .25s ease,transform .25s ease,visibility 1ms ease .25s;transition:opacity .25s ease,transform .25s ease,visibility 1ms ease .25s,-webkit-transform .25s ease}.CodeMirror-settings.open .CodeMirror-settings__toggle-advanced:before{content:"more..."}.CodeMirror-settings.open .CodeMirror-settings__toggle:after{content:"\f158"}.CodeMirror-settings.open .CodeMirror-settings__toggle:before{opacity:0}.CodeMirror-settings.open .CodeMirror-settings__wrapper{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}.CodeMirror-settings.open .CodeMirror-settings__body,.CodeMirror-settings.open .CodeMirror-settings__footer{visibility:hidden;opacity:0;-webkit-transform:translateY(-20px);transform:translateY(-20px);-webkit-transition:opacity .25s ease,visibility 1ms ease .25s,-webkit-transform .25s ease;transition:opacity .25s ease,visibility 1ms ease .25s,-webkit-transform .25s ease;transition:opacity .25s ease,transform .25s ease,visibility 1ms ease .25s;transition:opacity .25s ease,transform .25s ease,visibility 1ms ease .25s,-webkit-transform .25s ease}.CodeMirror-settings.open-advanced .CodeMirror-settings__toggle-advanced:before{content:"less"}.CodeMirror-settings.open-advanced .CodeMirror-settings__header{border-bottom-left-radius:0;border-bottom-right-radius:0}.CodeMirror-settings.open-advanced .CodeMirror-settings__body,.CodeMirror-settings.open-advanced .CodeMirror-settings__footer{visibility:visible;opacity:1;-webkit-transform:translate(0);transform:translate(0);-webkit-transition:visibility 1ms ease,opacity .25s ease 1ms,-webkit-transform .25s ease 1ms;transition:visibility 1ms ease,opacity .25s ease 1ms,-webkit-transform .25s ease 1ms;transition:visibility 1ms ease,opacity .25s ease 1ms,transform .25s ease 1ms;transition:visibility 1ms ease,opacity .25s ease 1ms,transform .25s ease 1ms,-webkit-transform .25s ease 1ms}.CodeMirror-settings__button{position:relative}.CodeMirror-settings__button:active{-webkit-transform:none!important;transform:none!important}.CodeMirror-settings__button input,.CodeMirror-settings__button select{display:block;position:absolute;top:0;right:0;bottom:0;left:0;-webkit-appearance:none;margin:0;padding:0;border:none;height:auto;font-size:0;line-height:0;height:100%!important;width:100%!important;background:none;opacity:0}.CodeMirror-settings__button option{font-size:12px}.CodeMirror-settings__button--select:after{content:"\f140";font-family:dashicons;vertical-align:top;display:inline-block;margin:0 -5px -4px}.CodeMirror-settings__toggle-advanced{cursor:pointer;display:inline-block;line-height:25px;padding:0 4px;vertical-align:middle}.CodeMirror-dialog{position:absolute;left:0;right:0;top:0;width:calc(100% - 12px);margin:6px;box-sizing:border-box;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;z-index:12;padding-left:12px;border-radius:3px;border:1px solid #ddd;color:#444;background-color:#fff}.CodeMirror-dialog:after{position:absolute;right:0;top:0;bottom:0;content:"\f158";font-family:dashicons;line-height:1em;cursor:pointer}.CodeMirror-dialog input{border:none;outline:none;background:rgba(0,0,0,.05);color:inherit;font-family:monospace;margin:-1px 12px;padding:0 12px;-ms-flex-item-align:stretch;align-self:stretch;-ms-flex:1 1 auto;flex:1 1 auto}.CodeMirror-dialog input,.CodeMirror-dialog input:focus{box-shadow:none}.CodeMirror-dialog button{margin:0 2px!important}.CodeMirror-dialog button:first-of-type{margin-left:12px!important}.CodeMirror-dialog span{-ms-flex-item-align:stretch;align-self:stretch;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.CodeMirror-overlayscroll .CodeMirror-gutter-filler,.CodeMirror-overlayscroll .CodeMirror-scrollbar-filler{display:none!important}.CodeMirror-overlayscroll-horizontal,.CodeMirror-overlayscroll-vertical{position:absolute;z-index:6;-webkit-transition:opacity .1s linear;transition:opacity .1s linear;opacity:.5}.CodeMirror-overlayscroll-horizontal:hover,.CodeMirror-overlayscroll-vertical:hover{opacity:1}.CodeMirror-overlayscroll-horizontal:active,.CodeMirror-overlayscroll-vertical:active{opacity:.75}.CodeMirror-overlayscroll-horizontal div,.CodeMirror-overlayscroll-vertical div{position:absolute;background:transparent!important}.CodeMirror-overlayscroll-horizontal div:after,.CodeMirror-overlayscroll-vertical div:after{content:"";background-color:#f5f5f5;border:1px solid #ddd;border-radius:4px;position:absolute}.CodeMirror-overlayscroll-horizontal{bottom:0;left:0;height:8px;margin-bottom:6px}.CodeMirror-overlayscroll-horizontal div{top:0;bottom:0}.CodeMirror-overlayscroll-horizontal div:after{top:0;bottom:0;left:6px;right:6px}.CodeMirror-overlayscroll-vertical{right:0;top:0;width:8px;margin-right:6px}.CodeMirror-overlayscroll-vertical div{left:0;right:0}.CodeMirror-overlayscroll-vertical div:after{left:0;right:0;bottom:6px}.wp-editor-expand .CodeMirror{min-height:300px}.wp-editor-expand .CodeMirror .CodeMirror-scroll{padding-bottom:330px!important;margin-bottom:-330px!important}.CodeMirror-mirrored{display:block!important;position:fixed!important;left:-9999px!important;top:-9999px!important;z-index:-999!important;opacity:0!important}#template .CodeMirror div{margin-right:0}#template .CodeMirror p{width:auto}.CodeMirror-vscrollbar{display:none!important}.CodeMirror-scroll{margin-right:-30px!important}.CodeMirror-settings__toggle{margin:6px!important}.heshFullscreen{z-index:99999;position:fixed!important;top:0;left:0;right:0;bottom:0;height:100%;background:#fff;padding:2% 2% 0}.heshFullscreen .CodeMirror{border:1px solid #ccc;border-radius:0 0 4px 4px;height:85%!important}.heshFullscreen #ed_toolbar{border:1px solid #ccc;border-bottom:0;border-radius:4px 4px 0 0}.heshFullscreen #cm_content_fullscreen:before{content:"\f506"}.cm-matchhighlight,.CodeMirror-matchingbracket,.CodeMirror-matchingtag{background-color:rgba(0,255,175,.2)}#cm_content_fullscreen{display:inline-block}.wp-editor-expand #cm_content_fullscreen{display:none}.hesh-content-resize-handle{position:absolute;right:0;bottom:0;width:12px;height:12px;z-index:8;margin:1px!important}#ed_toolbar{z-index:10}@media screen and (min-width:782px){.CodeMirror-settings__toggle{height:35px;width:35px}.CodeMirror-settings__toggle:after{font-size:20px;margin:7px}.CodeMirror-settings__docked{min-height:35px}.CodeMirror-settings__header{padding-right:35px}.CodeMirror-settings__button--select:after{font-size:16px;margin-top:0}.CodeMirror-dialog{height:35px;padding-right:35px}.CodeMirror-dialog:after{font-size:20px;margin:7px}.CodeMirror-overlayscroll-vertical div:after{top:47px}#template .CodeMirror{margin-right:20px}}@media screen and (max-width:781px){.CodeMirror-settings__toggle{height:44px;width:44px}.CodeMirror-settings__toggle:after{font-size:28px;margin:8px}.CodeMirror-settings__docked{min-height:44px}.CodeMirror-settings__header{padding-right:44px}.CodeMirror-settings__button--select:after{font-size:20px;margin-top:-2px}.CodeMirror-dialog{height:44px;padding-right:44px}.CodeMirror-dialog:after{font-size:28px;margin:8px}.CodeMirror-overlayscroll-vertical div:after{top:56px}#template .CodeMirror{margin-right:0}}@media screen and (max-height:550px){.heshFullscreen .CodeMirror{height:75%!important}}@media print{.CodeMirror div.CodeMirror-cursors{visibility:hidden}}@-webkit-keyframes a{50%{background-color:transparent}}@keyframes a{50%{background-color:transparent}}
dist/hesh.min.js CHANGED
@@ -1,13 +1 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.CodeMirror=t()}(this,function(){"use strict";function e(e){return new RegExp("(^|\\s)"+e+"(?:$|\\s)\\s*")}function t(e){for(var t=e.childNodes.length;t>0;--t)e.removeChild(e.firstChild);return e}function n(e,n){return t(e).appendChild(n)}function r(e,t,n,r){var i=document.createElement(e);if(n&&(i.className=n),r&&(i.style.cssText=r),"string"==typeof t)i.appendChild(document.createTextNode(t));else if(t)for(var o=0;o<t.length;++o)i.appendChild(t[o]);return i}function i(e,t,n,i){var o=r(e,t,n,i);return o.setAttribute("role","presentation"),o}function o(e,t){if(3==t.nodeType&&(t=t.parentNode),e.contains)return e.contains(t);do{if(11==t.nodeType&&(t=t.host),t==e)return!0}while(t=t.parentNode)}function a(){var e;try{e=document.activeElement}catch(t){e=document.body||null}for(;e&&e.shadowRoot&&e.shadowRoot.activeElement;)e=e.shadowRoot.activeElement;return e}function s(t,n){var r=t.className;e(n).test(r)||(t.className+=(r?" ":"")+n)}function l(t,n){for(var r=t.split(" "),i=0;i<r.length;i++)r[i]&&!e(r[i]).test(n)&&(n+=" "+r[i]);return n}function c(e){var t=Array.prototype.slice.call(arguments,1);return function(){return e.apply(null,t)}}function u(e,t,n){t||(t={});for(var r in e)!e.hasOwnProperty(r)||n===!1&&t.hasOwnProperty(r)||(t[r]=e[r]);return t}function f(e,t,n,r,i){null==t&&(t=e.search(/[^\s\u00a0]/))==-1&&(t=e.length);for(var o=r||0,a=i||0;;){var s=e.indexOf("\t",o);if(s<0||s>=t)return a+(t-o);a+=s-o,a+=n-a%n,o=s+1}}function d(e,t){for(var n=0;n<e.length;++n)if(e[n]==t)return n;return-1}function h(e,t,n){for(var r=0,i=0;;){var o=e.indexOf("\t",r);o==-1&&(o=e.length);var a=o-r;if(o==e.length||i+a>=t)return r+Math.min(a,t-i);if(i+=o-r,i+=n-i%n,r=o+1,i>=t)return r}}function p(e){for(;Wa.length<=e;)Wa.push(m(Wa)+" ");return Wa[e]}function m(e){return e[e.length-1]}function g(e,t){for(var n=[],r=0;r<e.length;r++)n[r]=t(e[r],r);return n}function v(e,t,n){for(var r=0,i=n(t);r<e.length&&n(e[r])<=i;)r++;e.splice(r,0,t)}function y(){}function b(e,t){var n;return Object.create?n=Object.create(e):(y.prototype=e,n=new y),t&&u(t,n),n}function x(e){return/\w/.test(e)||e>"€"&&(e.toUpperCase()!=e.toLowerCase()||qa.test(e))}function w(e,t){return t?!!(t.source.indexOf("\\w")>-1&&x(e))||t.test(e):x(e)}function k(e){for(var t in e)if(e.hasOwnProperty(t)&&e[t])return!1;return!0}function C(e){return e.charCodeAt(0)>=768&&Ha.test(e)}function S(e,t,n){for(;(n<0?t>0:t<e.length)&&C(e.charAt(t));)t+=n;return t}function _(e,t,n){for(;;){if(Math.abs(t-n)<=1)return e(t)?t:n;var r=Math.floor((t+n)/2);e(r)?n=r:t=r}}function M(e,t,n){var o=this;this.input=n,o.scrollbarFiller=r("div",null,"CodeMirror-scrollbar-filler"),o.scrollbarFiller.setAttribute("cm-not-content","true"),o.gutterFiller=r("div",null,"CodeMirror-gutter-filler"),o.gutterFiller.setAttribute("cm-not-content","true"),o.lineDiv=i("div",null,"CodeMirror-code"),o.selectionDiv=r("div",null,null,"position: relative; z-index: 1"),o.cursorDiv=r("div",null,"CodeMirror-cursors"),o.measure=r("div",null,"CodeMirror-measure"),o.lineMeasure=r("div",null,"CodeMirror-measure"),o.lineSpace=i("div",[o.measure,o.lineMeasure,o.selectionDiv,o.cursorDiv,o.lineDiv],null,"position: relative; outline: none");var a=i("div",[o.lineSpace],"CodeMirror-lines");o.mover=r("div",[a],null,"position: relative"),o.sizer=r("div",[o.mover],"CodeMirror-sizer"),o.sizerWidth=null,o.heightForcer=r("div",null,null,"position: absolute; height: "+Ra+"px; width: 1px;"),o.gutters=r("div",null,"CodeMirror-gutters"),o.lineGutter=null,o.scroller=r("div",[o.sizer,o.heightForcer,o.gutters],"CodeMirror-scroll"),o.scroller.setAttribute("tabIndex","-1"),o.wrapper=r("div",[o.scrollbarFiller,o.gutterFiller,o.scroller],"CodeMirror"),fa&&da<8&&(o.gutters.style.zIndex=-1,o.scroller.style.paddingRight=0),ha||sa&&ka||(o.scroller.draggable=!0),e&&(e.appendChild?e.appendChild(o.wrapper):e(o.wrapper)),o.viewFrom=o.viewTo=t.first,o.reportedViewFrom=o.reportedViewTo=t.first,o.view=[],o.renderedView=null,o.externalMeasured=null,o.viewOffset=0,o.lastWrapHeight=o.lastWrapWidth=0,o.updateLineNumbers=null,o.nativeBarWidth=o.barHeight=o.barWidth=0,o.scrollbarsClipped=!1,o.lineNumWidth=o.lineNumInnerWidth=o.lineNumChars=null,o.alignWidgets=!1,o.cachedCharWidth=o.cachedTextHeight=o.cachedPaddingH=null,o.maxLine=null,o.maxLineLength=0,o.maxLineChanged=!1,o.wheelDX=o.wheelDY=o.wheelStartX=o.wheelStartY=null,o.shift=!1,o.selForContextMenu=null,o.activeTouch=null,n.init(o)}function L(e,t){if((t-=e.first)<0||t>=e.size)throw new Error("There is no line "+(t+e.first)+" in the document.");for(var n=e;!n.lines;)for(var r=0;;++r){var i=n.children[r],o=i.chunkSize();if(t<o){n=i;break}t-=o}return n.lines[t]}function T(e,t,n){var r=[],i=t.line;return e.iter(t.line,n.line+1,function(e){var o=e.text;i==n.line&&(o=o.slice(0,n.ch)),i==t.line&&(o=o.slice(t.ch)),r.push(o),++i}),r}function A(e,t,n){var r=[];return e.iter(t,n,function(e){r.push(e.text)}),r}function O(e,t){var n=t-e.height;if(n)for(var r=e;r;r=r.parent)r.height+=n}function E(e){if(null==e.parent)return null;for(var t=e.parent,n=d(t.lines,e),r=t.parent;r;t=r,r=r.parent)for(var i=0;r.children[i]!=t;++i)n+=r.children[i].chunkSize();return n+t.first}function N(e,t){var n=e.first;e:do{for(var r=0;r<e.children.length;++r){var i=e.children[r],o=i.height;if(t<o){e=i;continue e}t-=o,n+=i.chunkSize()}return n}while(!e.lines);for(var a=0;a<e.lines.length;++a){var s=e.lines[a],l=s.height;if(t<l)break;t-=l}return n+a}function I(e,t){return t>=e.first&&t<e.first+e.size}function P(e,t){return String(e.lineNumberFormatter(t+e.firstLineNumber))}function R(e,t,n){if(void 0===n&&(n=null),!(this instanceof R))return new R(e,t,n);this.line=e,this.ch=t,this.sticky=n}function B(e,t){return e.line-t.line||e.ch-t.ch}function z(e,t){return e.sticky==t.sticky&&0==B(e,t)}function D(e){return R(e.line,e.ch)}function F(e,t){return B(e,t)<0?t:e}function W(e,t){return B(e,t)<0?e:t}function q(e,t){return Math.max(e.first,Math.min(t,e.first+e.size-1))}function H(e,t){if(t.line<e.first)return R(e.first,0);var n=e.first+e.size-1;return t.line>n?R(n,L(e,n).text.length):j(t,L(e,t.line).text.length)}function j(e,t){var n=e.ch;return null==n||n>t?R(e.line,t):n<0?R(e.line,0):e}function K(e,t){for(var n=[],r=0;r<t.length;r++)n[r]=H(e,t[r]);return n}function U(){ja=!0}function V(){Ka=!0}function $(e,t,n){this.marker=e,this.from=t,this.to=n}function G(e,t){if(e)for(var n=0;n<e.length;++n){var r=e[n];if(r.marker==t)return r}}function X(e,t){for(var n,r=0;r<e.length;++r)e[r]!=t&&(n||(n=[])).push(e[r]);return n}function Y(e,t){e.markedSpans=e.markedSpans?e.markedSpans.concat([t]):[t],t.marker.attachLine(e)}function Q(e,t,n){var r;if(e)for(var i=0;i<e.length;++i){var o=e[i],a=o.marker,s=null==o.from||(a.inclusiveLeft?o.from<=t:o.from<t);if(s||o.from==t&&"bookmark"==a.type&&(!n||!o.marker.insertLeft)){var l=null==o.to||(a.inclusiveRight?o.to>=t:o.to>t);(r||(r=[])).push(new $(a,o.from,l?null:o.to))}}return r}function J(e,t,n){var r;if(e)for(var i=0;i<e.length;++i){var o=e[i],a=o.marker,s=null==o.to||(a.inclusiveRight?o.to>=t:o.to>t);if(s||o.from==t&&"bookmark"==a.type&&(!n||o.marker.insertLeft)){var l=null==o.from||(a.inclusiveLeft?o.from<=t:o.from<t);(r||(r=[])).push(new $(a,l?null:o.from-t,null==o.to?null:o.to-t))}}return r}function Z(e,t){if(t.full)return null;var n=I(e,t.from.line)&&L(e,t.from.line).markedSpans,r=I(e,t.to.line)&&L(e,t.to.line).markedSpans;if(!n&&!r)return null;var i=t.from.ch,o=t.to.ch,a=0==B(t.from,t.to),s=Q(n,i,a),l=J(r,o,a),c=1==t.text.length,u=m(t.text).length+(c?i:0);if(s)for(var f=0;f<s.length;++f){var d=s[f];if(null==d.to){var h=G(l,d.marker);h?c&&(d.to=null==h.to?null:h.to+u):d.to=i}}if(l)for(var p=0;p<l.length;++p){var g=l[p];if(null!=g.to&&(g.to+=u),null==g.from){var v=G(s,g.marker);v||(g.from=u,c&&(s||(s=[])).push(g))}else g.from+=u,c&&(s||(s=[])).push(g)}s&&(s=ee(s)),l&&l!=s&&(l=ee(l));var y=[s];if(!c){var b,x=t.text.length-2;if(x>0&&s)for(var w=0;w<s.length;++w)null==s[w].to&&(b||(b=[])).push(new $(s[w].marker,null,null));for(var k=0;k<x;++k)y.push(b);y.push(l)}return y}function ee(e){for(var t=0;t<e.length;++t){var n=e[t];null!=n.from&&n.from==n.to&&n.marker.clearWhenEmpty!==!1&&e.splice(t--,1)}return e.length?e:null}function te(e,t,n){var r=null;if(e.iter(t.line,n.line+1,function(e){if(e.markedSpans)for(var t=0;t<e.markedSpans.length;++t){var n=e.markedSpans[t].marker;!n.readOnly||r&&d(r,n)!=-1||(r||(r=[])).push(n)}}),!r)return null;for(var i=[{from:t,to:n}],o=0;o<r.length;++o)for(var a=r[o],s=a.find(0),l=0;l<i.length;++l){var c=i[l];if(!(B(c.to,s.from)<0||B(c.from,s.to)>0)){var u=[l,1],f=B(c.from,s.from),h=B(c.to,s.to);(f<0||!a.inclusiveLeft&&!f)&&u.push({from:c.from,to:s.from}),(h>0||!a.inclusiveRight&&!h)&&u.push({from:s.to,to:c.to}),i.splice.apply(i,u),l+=u.length-3}}return i}function ne(e){var t=e.markedSpans;if(t){for(var n=0;n<t.length;++n)t[n].marker.detachLine(e);e.markedSpans=null}}function re(e,t){if(t){for(var n=0;n<t.length;++n)t[n].marker.attachLine(e);e.markedSpans=t}}function ie(e){return e.inclusiveLeft?-1:0}function oe(e){return e.inclusiveRight?1:0}function ae(e,t){var n=e.lines.length-t.lines.length;if(0!=n)return n;var r=e.find(),i=t.find(),o=B(r.from,i.from)||ie(e)-ie(t);if(o)return-o;var a=B(r.to,i.to)||oe(e)-oe(t);return a?a:t.id-e.id}function se(e,t){var n,r=Ka&&e.markedSpans;if(r)for(var i=void 0,o=0;o<r.length;++o)i=r[o],i.marker.collapsed&&null==(t?i.from:i.to)&&(!n||ae(n,i.marker)<0)&&(n=i.marker);return n}function le(e){return se(e,!0)}function ce(e){return se(e,!1)}function ue(e,t,n,r,i){var o=L(e,t),a=Ka&&o.markedSpans;if(a)for(var s=0;s<a.length;++s){var l=a[s];if(l.marker.collapsed){var c=l.marker.find(0),u=B(c.from,n)||ie(l.marker)-ie(i),f=B(c.to,r)||oe(l.marker)-oe(i);if(!(u>=0&&f<=0||u<=0&&f>=0)&&(u<=0&&(l.marker.inclusiveRight&&i.inclusiveLeft?B(c.to,n)>=0:B(c.to,n)>0)||u>=0&&(l.marker.inclusiveRight&&i.inclusiveLeft?B(c.from,r)<=0:B(c.from,r)<0)))return!0}}}function fe(e){for(var t;t=le(e);)e=t.find(-1,!0).line;return e}function de(e){for(var t;t=ce(e);)e=t.find(1,!0).line;return e}function he(e){for(var t,n;t=ce(e);)e=t.find(1,!0).line,(n||(n=[])).push(e);return n}function pe(e,t){var n=L(e,t),r=fe(n);return n==r?t:E(r)}function me(e,t){if(t>e.lastLine())return t;var n,r=L(e,t);if(!ge(e,r))return t;for(;n=ce(r);)r=n.find(1,!0).line;return E(r)+1}function ge(e,t){var n=Ka&&t.markedSpans;if(n)for(var r=void 0,i=0;i<n.length;++i)if(r=n[i],r.marker.collapsed){if(null==r.from)return!0;if(!r.marker.widgetNode&&0==r.from&&r.marker.inclusiveLeft&&ve(e,t,r))return!0}}function ve(e,t,n){if(null==n.to){var r=n.marker.find(1,!0);return ve(e,r.line,G(r.line.markedSpans,n.marker))}if(n.marker.inclusiveRight&&n.to==t.text.length)return!0;for(var i=void 0,o=0;o<t.markedSpans.length;++o)if(i=t.markedSpans[o],i.marker.collapsed&&!i.marker.widgetNode&&i.from==n.to&&(null==i.to||i.to!=n.from)&&(i.marker.inclusiveLeft||n.marker.inclusiveRight)&&ve(e,t,i))return!0}function ye(e){e=fe(e);for(var t=0,n=e.parent,r=0;r<n.lines.length;++r){var i=n.lines[r];if(i==e)break;t+=i.height}for(var o=n.parent;o;n=o,o=n.parent)for(var a=0;a<o.children.length;++a){var s=o.children[a];if(s==n)break;t+=s.height}return t}function be(e){if(0==e.height)return 0;for(var t,n=e.text.length,r=e;t=le(r);){var i=t.find(0,!0);r=i.from.line,n+=i.from.ch-i.to.ch}for(r=e;t=ce(r);){var o=t.find(0,!0);n-=r.text.length-o.from.ch,r=o.to.line,n+=r.text.length-o.to.ch}return n}function xe(e){var t=e.display,n=e.doc;t.maxLine=L(n,n.first),t.maxLineLength=be(t.maxLine),t.maxLineChanged=!0,n.iter(function(e){var n=be(e);n>t.maxLineLength&&(t.maxLineLength=n,t.maxLine=e)})}function we(e,t,n,r){if(!e)return r(t,n,"ltr");for(var i=!1,o=0;o<e.length;++o){var a=e[o];(a.from<n&&a.to>t||t==n&&a.to==t)&&(r(Math.max(a.from,t),Math.min(a.to,n),1==a.level?"rtl":"ltr"),i=!0)}i||r(t,n,"ltr")}function ke(e,t,n){var r;Ua=null;for(var i=0;i<e.length;++i){var o=e[i];if(o.from<t&&o.to>t)return i;o.to==t&&(o.from!=o.to&&"before"==n?r=i:Ua=i),o.from==t&&(o.from!=o.to&&"before"!=n?r=i:Ua=i)}return null!=r?r:Ua}function Ce(e,t){var n=e.order;return null==n&&(n=e.order=Va(e.text,t)),n}function Se(e,t,n){var r=S(e.text,t+n,n);return r<0||r>e.text.length?null:r}function _e(e,t,n){var r=Se(e,t.ch,n);return null==r?null:new R(t.line,r,n<0?"after":"before")}function Me(e,t,n,r,i){if(e){var o=Ce(n,t.doc.direction);if(o){var a,s=i<0?m(o):o[0],l=i<0==(1==s.level),c=l?"after":"before";if(s.level>0){var u=Qt(t,n);a=i<0?n.text.length-1:0;var f=Jt(t,u,a).top;a=_(function(e){return Jt(t,u,e).top==f},i<0==(1==s.level)?s.from:s.to-1,a),"before"==c&&(a=Se(n,a,1))}else a=i<0?s.to:s.from;return new R(r,a,c)}}return new R(r,i<0?n.text.length:0,i<0?"before":"after")}function Le(e,t,n,r){var i=Ce(t,e.doc.direction);if(!i)return _e(t,n,r);n.ch>=t.text.length?(n.ch=t.text.length,n.sticky="before"):n.ch<=0&&(n.ch=0,n.sticky="after");var o=ke(i,n.ch,n.sticky),a=i[o];if("ltr"==e.doc.direction&&a.level%2==0&&(r>0?a.to>n.ch:a.from<n.ch))return _e(t,n,r);var s,l=function(e,n){return Se(t,e instanceof R?e.ch:e,n)},c=function(n){return e.options.lineWrapping?(s=s||Qt(e,t),vn(e,t,s,n)):{begin:0,end:t.text.length}},u=c("before"==n.sticky?l(n,-1):n.ch);if("rtl"==e.doc.direction||1==a.level){var f=1==a.level==r<0,d=l(n,f?1:-1);if(null!=d&&(f?d<=a.to&&d<=u.end:d>=a.from&&d>=u.begin)){var h=f?"before":"after";return new R(n.line,d,h)}}var p=function(e,t,r){for(var o=function(e,t){return t?new R(n.line,l(e,1),"before"):new R(n.line,e,"after")};e>=0&&e<i.length;e+=t){var a=i[e],s=t>0==(1!=a.level),c=s?r.begin:l(r.end,-1);if(a.from<=c&&c<a.to)return o(c,s);if(c=s?a.from:l(a.to,-1),r.begin<=c&&c<r.end)return o(c,s)}},m=p(o+r,r,u);if(m)return m;var g=r>0?u.end:l(u.begin,-1);return null==g||r>0&&g==t.text.length||!(m=p(r>0?0:i.length-1,r,c(g)))?null:m}function Te(e,t){return e._handlers&&e._handlers[t]||$a}function Ae(e,t,n){if(e.removeEventListener)e.removeEventListener(t,n,!1);else if(e.detachEvent)e.detachEvent("on"+t,n);else{var r=e._handlers,i=r&&r[t];if(i){var o=d(i,n);o>-1&&(r[t]=i.slice(0,o).concat(i.slice(o+1)))}}}function Oe(e,t){var n=Te(e,t);if(n.length)for(var r=Array.prototype.slice.call(arguments,2),i=0;i<n.length;++i)n[i].apply(null,r)}function Ee(e,t,n){return"string"==typeof t&&(t={type:t,preventDefault:function(){this.defaultPrevented=!0}}),Oe(e,n||t.type,e,t),ze(t)||t.codemirrorIgnore}function Ne(e){var t=e._handlers&&e._handlers.cursorActivity;if(t)for(var n=e.curOp.cursorActivityHandlers||(e.curOp.cursorActivityHandlers=[]),r=0;r<t.length;++r)d(n,t[r])==-1&&n.push(t[r])}function Ie(e,t){return Te(e,t).length>0}function Pe(e){e.prototype.on=function(e,t){Ga(this,e,t)},e.prototype.off=function(e,t){Ae(this,e,t)}}function Re(e){e.preventDefault?e.preventDefault():e.returnValue=!1}function Be(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0}function ze(e){return null!=e.defaultPrevented?e.defaultPrevented:0==e.returnValue}function De(e){Re(e),Be(e)}function Fe(e){return e.target||e.srcElement}function We(e){var t=e.which;return null==t&&(1&e.button?t=1:2&e.button?t=3:4&e.button&&(t=2)),Ca&&e.ctrlKey&&1==t&&(t=3),t}function qe(e){if(null==Ia){var t=r("span","​");n(e,r("span",[t,document.createTextNode("x")])),0!=e.firstChild.offsetHeight&&(Ia=t.offsetWidth<=1&&t.offsetHeight>2&&!(fa&&da<8))}var i=Ia?r("span","​"):r("span"," ",null,"display: inline-block; width: 1px; margin-right: -1px");return i.setAttribute("cm-text",""),i}function He(e){if(null!=Pa)return Pa;var r=n(e,document.createTextNode("AخA")),i=La(r,0,1).getBoundingClientRect(),o=La(r,1,2).getBoundingClientRect();return t(e),!(!i||i.left==i.right)&&(Pa=o.right-i.right<3)}function je(e){if(null!=Za)return Za;var t=n(e,r("span","x")),i=t.getBoundingClientRect(),o=La(t,0,1).getBoundingClientRect();return Za=Math.abs(i.left-o.left)>1}function Ke(e,t){arguments.length>2&&(t.dependencies=Array.prototype.slice.call(arguments,2)),es[e]=t}function Ue(e,t){ts[e]=t}function Ve(e){if("string"==typeof e&&ts.hasOwnProperty(e))e=ts[e];else if(e&&"string"==typeof e.name&&ts.hasOwnProperty(e.name)){var t=ts[e.name];"string"==typeof t&&(t={name:t}),e=b(t,e),e.name=t.name}else{if("string"==typeof e&&/^[\w\-]+\/[\w\-]+\+xml$/.test(e))return Ve("application/xml");if("string"==typeof e&&/^[\w\-]+\/[\w\-]+\+json$/.test(e))return Ve("application/json")}return"string"==typeof e?{name:e}:e||{name:"null"}}function $e(e,t){t=Ve(t);var n=es[t.name];if(!n)return $e(e,"text/plain");var r=n(e,t);if(ns.hasOwnProperty(t.name)){var i=ns[t.name];for(var o in i)i.hasOwnProperty(o)&&(r.hasOwnProperty(o)&&(r["_"+o]=r[o]),r[o]=i[o])}if(r.name=t.name,t.helperType&&(r.helperType=t.helperType),t.modeProps)for(var a in t.modeProps)r[a]=t.modeProps[a];return r}function Ge(e,t){u(t,ns.hasOwnProperty(e)?ns[e]:ns[e]={})}function Xe(e,t){if(t===!0)return t;if(e.copyState)return e.copyState(t);var n={};for(var r in t){var i=t[r];i instanceof Array&&(i=i.concat([])),n[r]=i}return n}function Ye(e,t){for(var n;e.innerMode&&(n=e.innerMode(t))&&n.mode!=e;)t=n.state,e=n.mode;return n||{mode:e,state:t}}function Qe(e,t,n){return!e.startState||e.startState(t,n)}function Je(e,t,n,r){var i=[e.state.modeGen],o={};at(e,t.text,e.doc.mode,n,function(e,t){return i.push(e,t)},o,r);for(var a=n.state,s=0;s<e.state.overlays.length;++s)!function(r){var a=e.state.overlays[r],s=1,l=0;n.state=!0,at(e,t.text,a.mode,n,function(e,t){for(var n=s;l<e;){var r=i[s];r>e&&i.splice(s,1,e,i[s+1],r),s+=2,l=Math.min(e,r)}if(t)if(a.opaque)i.splice(n,s-n,e,"overlay "+t),s=n+2;else for(;n<s;n+=2){var o=i[n+1];i[n+1]=(o?o+" ":"")+"overlay "+t}},o)}(s);return n.state=a,{styles:i,classes:o.bgClass||o.textClass?o:null}}function Ze(e,t,n){if(!t.styles||t.styles[0]!=e.state.modeGen){var r=et(e,E(t)),i=t.text.length>e.options.maxHighlightLength&&Xe(e.doc.mode,r.state),o=Je(e,t,r);i&&(r.state=i),t.stateAfter=r.save(!i),t.styles=o.styles,o.classes?t.styleClasses=o.classes:t.styleClasses&&(t.styleClasses=null),n===e.doc.highlightFrontier&&(e.doc.modeFrontier=Math.max(e.doc.modeFrontier,++e.doc.highlightFrontier))}return t.styles}function et(e,t,n){var r=e.doc,i=e.display;if(!r.mode.startState)return new os(r,!0,t);var o=st(e,t,n),a=o>r.first&&L(r,o-1).stateAfter,s=a?os.fromSaved(r,a,o):new os(r,Qe(r.mode),o);return r.iter(o,t,function(n){tt(e,n.text,s);var r=s.line;n.stateAfter=r==t-1||r%5==0||r>=i.viewFrom&&r<i.viewTo?s.save():null,s.nextLine()}),n&&(r.modeFrontier=s.line),s}function tt(e,t,n,r){var i=e.doc.mode,o=new rs(t,e.options.tabSize,n);for(o.start=o.pos=r||0,""==t&&nt(i,n.state);!o.eol();)rt(i,o,n.state),o.start=o.pos}function nt(e,t){if(e.blankLine)return e.blankLine(t);if(e.innerMode){var n=Ye(e,t);return n.mode.blankLine?n.mode.blankLine(n.state):void 0}}function rt(e,t,n,r){for(var i=0;i<10;i++){r&&(r[0]=Ye(e,n).mode);var o=e.token(t,n);if(t.pos>t.start)return o}throw new Error("Mode "+e.name+" failed to advance stream.")}function it(e,t,n,r){var i,o=e.doc,a=o.mode;t=H(o,t);var s,l=L(o,t.line),c=et(e,t.line,n),u=new rs(l.text,e.options.tabSize,c);for(r&&(s=[]);(r||u.pos<t.ch)&&!u.eol();)u.start=u.pos,i=rt(a,u,c.state),r&&s.push(new as(u,i,Xe(o.mode,c.state)));return r?s:new as(u,i,c.state)}function ot(e,t){if(e)for(;;){var n=e.match(/(?:^|\s+)line-(background-)?(\S+)/);if(!n)break;e=e.slice(0,n.index)+e.slice(n.index+n[0].length);var r=n[1]?"bgClass":"textClass";null==t[r]?t[r]=n[2]:new RegExp("(?:^|s)"+n[2]+"(?:$|s)").test(t[r])||(t[r]+=" "+n[2])}return e}function at(e,t,n,r,i,o,a){var s=n.flattenSpans;null==s&&(s=e.options.flattenSpans);var l,c=0,u=null,f=new rs(t,e.options.tabSize,r),d=e.options.addModeClass&&[null];for(""==t&&ot(nt(n,r.state),o);!f.eol();){if(f.pos>e.options.maxHighlightLength?(s=!1,a&&tt(e,t,r,f.pos),f.pos=t.length,l=null):l=ot(rt(n,f,r.state,d),o),d){var h=d[0].name;h&&(l="m-"+(l?h+" "+l:h))}if(!s||u!=l){for(;c<f.start;)c=Math.min(f.start,c+5e3),i(c,u);u=l}f.start=f.pos}for(;c<f.pos;){var p=Math.min(f.pos,c+5e3);i(p,u),c=p}}function st(e,t,n){for(var r,i,o=e.doc,a=n?-1:t-(e.doc.mode.innerMode?1e3:100),s=t;s>a;--s){if(s<=o.first)return o.first;var l=L(o,s-1),c=l.stateAfter;if(c&&(!n||s+(c instanceof is?c.lookAhead:0)<=o.modeFrontier))return s;var u=f(l.text,null,e.options.tabSize);(null==i||r>u)&&(i=s-1,r=u)}return i}function lt(e,t){if(e.modeFrontier=Math.min(e.modeFrontier,t),!(e.highlightFrontier<t-10)){for(var n=e.first,r=t-1;r>n;r--){var i=L(e,r).stateAfter;if(i&&(!(i instanceof is)||r+i.lookAhead<t)){n=r+1;break}}e.highlightFrontier=Math.min(e.highlightFrontier,n)}}function ct(e,t,n,r){e.text=t,e.stateAfter&&(e.stateAfter=null),e.styles&&(e.styles=null),null!=e.order&&(e.order=null),ne(e),re(e,n);var i=r?r(e):1;i!=e.height&&O(e,i)}function ut(e){e.parent=null,ne(e)}function ft(e,t){if(!e||/^\s*$/.test(e))return null;var n=t.addModeClass?us:cs;return n[e]||(n[e]=e.replace(/\S+/g,"cm-$&"))}function dt(e,t){var n=i("span",null,null,ha?"padding-right: .1px":null),r={pre:i("pre",[n],"CodeMirror-line"),content:n,col:0,pos:0,cm:e,trailingSpace:!1,splitSpaces:(fa||ha)&&e.getOption("lineWrapping")};t.measure={};for(var o=0;o<=(t.rest?t.rest.length:0);o++){var a=o?t.rest[o-1]:t.line,s=void 0;r.pos=0,r.addToken=pt,He(e.display.measure)&&(s=Ce(a,e.doc.direction))&&(r.addToken=gt(r.addToken,s)),r.map=[];yt(a,r,Ze(e,a,t!=e.display.externalMeasured&&E(a))),a.styleClasses&&(a.styleClasses.bgClass&&(r.bgClass=l(a.styleClasses.bgClass,r.bgClass||"")),a.styleClasses.textClass&&(r.textClass=l(a.styleClasses.textClass,r.textClass||""))),0==r.map.length&&r.map.push(0,0,r.content.appendChild(qe(e.display.measure))),0==o?(t.measure.map=r.map,t.measure.cache={}):((t.measure.maps||(t.measure.maps=[])).push(r.map),(t.measure.caches||(t.measure.caches=[])).push({}))}if(ha){var c=r.content.lastChild;(/\bcm-tab\b/.test(c.className)||c.querySelector&&c.querySelector(".cm-tab"))&&(r.content.className="cm-tab-wrap-hack")}return Oe(e,"renderLine",e,t.line,r.pre),r.pre.className&&(r.textClass=l(r.pre.className,r.textClass||"")),r}function ht(e){var t=r("span","•","cm-invalidchar");return t.title="\\u"+e.charCodeAt(0).toString(16),t.setAttribute("aria-label",t.title),t}function pt(e,t,n,i,o,a,s){if(t){var l,c=e.splitSpaces?mt(t,e.trailingSpace):t,u=e.cm.state.specialChars,f=!1;if(u.test(t)){l=document.createDocumentFragment();for(var d=0;;){u.lastIndex=d;var h=u.exec(t),m=h?h.index-d:t.length-d;if(m){var g=document.createTextNode(c.slice(d,d+m));fa&&da<9?l.appendChild(r("span",[g])):l.appendChild(g),e.map.push(e.pos,e.pos+m,g),e.col+=m,e.pos+=m}if(!h)break;d+=m+1;var v=void 0;if("\t"==h[0]){var y=e.cm.options.tabSize,b=y-e.col%y;v=l.appendChild(r("span",p(b),"cm-tab")),v.setAttribute("role","presentation"),v.setAttribute("cm-text","\t"),e.col+=b}else"\r"==h[0]||"\n"==h[0]?(v=l.appendChild(r("span","\r"==h[0]?"␍":"␤","cm-invalidchar")),v.setAttribute("cm-text",h[0]),e.col+=1):(v=e.cm.options.specialCharPlaceholder(h[0]),v.setAttribute("cm-text",h[0]),fa&&da<9?l.appendChild(r("span",[v])):l.appendChild(v),e.col+=1);e.map.push(e.pos,e.pos+1,v),e.pos++}}else e.col+=t.length,l=document.createTextNode(c),e.map.push(e.pos,e.pos+t.length,l),fa&&da<9&&(f=!0),e.pos+=t.length;if(e.trailingSpace=32==c.charCodeAt(t.length-1),n||i||o||f||s){var x=n||"";i&&(x+=i),o&&(x+=o);var w=r("span",[l],x,s);return a&&(w.title=a),e.content.appendChild(w)}e.content.appendChild(l)}}function mt(e,t){if(e.length>1&&!/ /.test(e))return e;for(var n=t,r="",i=0;i<e.length;i++){var o=e.charAt(i);" "!=o||!n||i!=e.length-1&&32!=e.charCodeAt(i+1)||(o=" "),r+=o,n=" "==o}return r}function gt(e,t){return function(n,r,i,o,a,s,l){i=i?i+" cm-force-border":"cm-force-border";for(var c=n.pos,u=c+r.length;;){for(var f=void 0,d=0;d<t.length&&(f=t[d],!(f.to>c&&f.from<=c));d++);if(f.to>=u)return e(n,r,i,o,a,s,l);e(n,r.slice(0,f.to-c),i,o,null,s,l),o=null,r=r.slice(f.to-c),c=f.to}}}function vt(e,t,n,r){var i=!r&&n.widgetNode;i&&e.map.push(e.pos,e.pos+t,i),!r&&e.cm.display.input.needsContentAttribute&&(i||(i=e.content.appendChild(document.createElement("span"))),i.setAttribute("cm-marker",n.id)),i&&(e.cm.display.input.setUneditable(i),e.content.appendChild(i)),e.pos+=t,e.trailingSpace=!1}function yt(e,t,n){var r=e.markedSpans,i=e.text,o=0;if(r)for(var a,s,l,c,u,f,d,h=i.length,p=0,m=1,g="",v=0;;){if(v==p){l=c=u=f=s="",d=null,v=1/0;for(var y=[],b=void 0,x=0;x<r.length;++x){var w=r[x],k=w.marker;"bookmark"==k.type&&w.from==p&&k.widgetNode?y.push(k):w.from<=p&&(null==w.to||w.to>p||k.collapsed&&w.to==p&&w.from==p)?(null!=w.to&&w.to!=p&&v>w.to&&(v=w.to,c=""),k.className&&(l+=" "+k.className),k.css&&(s=(s?s+";":"")+k.css),k.startStyle&&w.from==p&&(u+=" "+k.startStyle),k.endStyle&&w.to==v&&(b||(b=[])).push(k.endStyle,w.to),k.title&&!f&&(f=k.title),k.collapsed&&(!d||ae(d.marker,k)<0)&&(d=w)):w.from>p&&v>w.from&&(v=w.from)}if(b)for(var C=0;C<b.length;C+=2)b[C+1]==v&&(c+=" "+b[C]);if(!d||d.from==p)for(var S=0;S<y.length;++S)vt(t,0,y[S]);if(d&&(d.from||0)==p){if(vt(t,(null==d.to?h+1:d.to)-p,d.marker,null==d.from),null==d.to)return;d.to==p&&(d=!1)}}if(p>=h)break;for(var _=Math.min(h,v);;){if(g){var M=p+g.length;if(!d){var L=M>_?g.slice(0,_-p):g;t.addToken(t,L,a?a+l:l,u,p+L.length==v?c:"",f,s)}if(M>=_){g=g.slice(_-p),p=_;break}p=M,u=""}g=i.slice(o,o=n[m++]),a=ft(n[m++],t.cm.options)}}else for(var T=1;T<n.length;T+=2)t.addToken(t,i.slice(o,o=n[T]),ft(n[T+1],t.cm.options))}function bt(e,t,n){this.line=t,this.rest=he(t),this.size=this.rest?E(m(this.rest))-n+1:1,this.node=this.text=null,this.hidden=ge(e,t)}function xt(e,t,n){for(var r,i=[],o=t;o<n;o=r){var a=new bt(e.doc,L(e.doc,o),o);r=o+a.size,i.push(a)}return i}function wt(e){fs?fs.ops.push(e):e.ownsGroup=fs={ops:[e],delayedCallbacks:[]}}function kt(e){var t=e.delayedCallbacks,n=0;do{for(;n<t.length;n++)t[n].call(null);for(var r=0;r<e.ops.length;r++){var i=e.ops[r];if(i.cursorActivityHandlers)for(;i.cursorActivityCalled<i.cursorActivityHandlers.length;)i.cursorActivityHandlers[i.cursorActivityCalled++].call(null,i.cm)}}while(n<t.length)}function Ct(e,t){var n=e.ownsGroup;if(n)try{kt(n)}finally{fs=null,t(n)}}function St(e,t){var n=Te(e,t);if(n.length){var r,i=Array.prototype.slice.call(arguments,2);fs?r=fs.delayedCallbacks:ds?r=ds:(r=ds=[],setTimeout(_t,0));for(var o=0;o<n.length;++o)!function(e){r.push(function(){return n[e].apply(null,i)})}(o)}}function _t(){var e=ds;ds=null;for(var t=0;t<e.length;++t)e[t]()}function Mt(e,t,n,r){for(var i=0;i<t.changes.length;i++){var o=t.changes[i];"text"==o?Ot(e,t):"gutter"==o?Nt(e,t,n,r):"class"==o?Et(e,t):"widget"==o&&It(e,t,r)}t.changes=null}function Lt(e){return e.node==e.text&&(e.node=r("div",null,null,"position: relative"),e.text.parentNode&&e.text.parentNode.replaceChild(e.node,e.text),e.node.appendChild(e.text),fa&&da<8&&(e.node.style.zIndex=2)),e.node}function Tt(e,t){var n=t.bgClass?t.bgClass+" "+(t.line.bgClass||""):t.line.bgClass;if(n&&(n+=" CodeMirror-linebackground"),t.background)n?t.background.className=n:(t.background.parentNode.removeChild(t.background),t.background=null);else if(n){var i=Lt(t);t.background=i.insertBefore(r("div",null,n),i.firstChild),e.display.input.setUneditable(t.background)}}function At(e,t){var n=e.display.externalMeasured;return n&&n.line==t.line?(e.display.externalMeasured=null,t.measure=n.measure,n.built):dt(e,t)}function Ot(e,t){var n=t.text.className,r=At(e,t);t.text==t.node&&(t.node=r.pre),t.text.parentNode.replaceChild(r.pre,t.text),t.text=r.pre,r.bgClass!=t.bgClass||r.textClass!=t.textClass?(t.bgClass=r.bgClass,t.textClass=r.textClass,Et(e,t)):n&&(t.text.className=n)}function Et(e,t){Tt(e,t),t.line.wrapClass?Lt(t).className=t.line.wrapClass:t.node!=t.text&&(t.node.className="");var n=t.textClass?t.textClass+" "+(t.line.textClass||""):t.line.textClass;t.text.className=n||""}function Nt(e,t,n,i){if(t.gutter&&(t.node.removeChild(t.gutter),t.gutter=null),t.gutterBackground&&(t.node.removeChild(t.gutterBackground),t.gutterBackground=null),t.line.gutterClass){var o=Lt(t);t.gutterBackground=r("div",null,"CodeMirror-gutter-background "+t.line.gutterClass,"left: "+(e.options.fixedGutter?i.fixedPos:-i.gutterTotalWidth)+"px; width: "+i.gutterTotalWidth+"px"),e.display.input.setUneditable(t.gutterBackground),o.insertBefore(t.gutterBackground,t.text)}var a=t.line.gutterMarkers;if(e.options.lineNumbers||a){var s=Lt(t),l=t.gutter=r("div",null,"CodeMirror-gutter-wrapper","left: "+(e.options.fixedGutter?i.fixedPos:-i.gutterTotalWidth)+"px");if(e.display.input.setUneditable(l),s.insertBefore(l,t.text),t.line.gutterClass&&(l.className+=" "+t.line.gutterClass),!e.options.lineNumbers||a&&a["CodeMirror-linenumbers"]||(t.lineNumber=l.appendChild(r("div",P(e.options,n),"CodeMirror-linenumber CodeMirror-gutter-elt","left: "+i.gutterLeft["CodeMirror-linenumbers"]+"px; width: "+e.display.lineNumInnerWidth+"px"))),a)for(var c=0;c<e.options.gutters.length;++c){var u=e.options.gutters[c],f=a.hasOwnProperty(u)&&a[u];f&&l.appendChild(r("div",[f],"CodeMirror-gutter-elt","left: "+i.gutterLeft[u]+"px; width: "+i.gutterWidth[u]+"px"))}}}function It(e,t,n){t.alignable&&(t.alignable=null);for(var r=t.node.firstChild,i=void 0;r;r=i)i=r.nextSibling,"CodeMirror-linewidget"==r.className&&t.node.removeChild(r);Rt(e,t,n)}function Pt(e,t,n,r){var i=At(e,t);return t.text=t.node=i.pre,i.bgClass&&(t.bgClass=i.bgClass),i.textClass&&(t.textClass=i.textClass),Et(e,t),Nt(e,t,n,r),Rt(e,t,r),t.node}function Rt(e,t,n){if(Bt(e,t.line,t,n,!0),t.rest)for(var r=0;r<t.rest.length;r++)Bt(e,t.rest[r],t,n,!1)}function Bt(e,t,n,i,o){if(t.widgets)for(var a=Lt(n),s=0,l=t.widgets;s<l.length;++s){var c=l[s],u=r("div",[c.node],"CodeMirror-linewidget");c.handleMouseEvents||u.setAttribute("cm-ignore-events","true"),zt(c,u,n,i),e.display.input.setUneditable(u),o&&c.above?a.insertBefore(u,n.gutter||n.text):a.appendChild(u),St(c,"redraw")}}function zt(e,t,n,r){if(e.noHScroll){(n.alignable||(n.alignable=[])).push(t);var i=r.wrapperWidth;t.style.left=r.fixedPos+"px",e.coverGutter||(i-=r.gutterTotalWidth,t.style.paddingLeft=r.gutterTotalWidth+"px"),t.style.width=i+"px"}e.coverGutter&&(t.style.zIndex=5,t.style.position="relative",e.noHScroll||(t.style.marginLeft=-r.gutterTotalWidth+"px"))}function Dt(e){if(null!=e.height)return e.height;var t=e.doc.cm;if(!t)return 0;if(!o(document.body,e.node)){var i="position: relative;";e.coverGutter&&(i+="margin-left: -"+t.display.gutters.offsetWidth+"px;"),e.noHScroll&&(i+="width: "+t.display.wrapper.clientWidth+"px;"),n(t.display.measure,r("div",[e.node],null,i))}return e.height=e.node.parentNode.offsetHeight}function Ft(e,t){for(var n=Fe(t);n!=e.wrapper;n=n.parentNode)if(!n||1==n.nodeType&&"true"==n.getAttribute("cm-ignore-events")||n.parentNode==e.sizer&&n!=e.mover)return!0}function Wt(e){return e.lineSpace.offsetTop}function qt(e){return e.mover.offsetHeight-e.lineSpace.offsetHeight}function Ht(e){if(e.cachedPaddingH)return e.cachedPaddingH;var t=n(e.measure,r("pre","x")),i=window.getComputedStyle?window.getComputedStyle(t):t.currentStyle,o={left:parseInt(i.paddingLeft),right:parseInt(i.paddingRight)};return isNaN(o.left)||isNaN(o.right)||(e.cachedPaddingH=o),o}function jt(e){return Ra-e.display.nativeBarWidth}function Kt(e){return e.display.scroller.clientWidth-jt(e)-e.display.barWidth}function Ut(e){return e.display.scroller.clientHeight-jt(e)-e.display.barHeight}function Vt(e,t,n){var r=e.options.lineWrapping,i=r&&Kt(e);if(!t.measure.heights||r&&t.measure.width!=i){var o=t.measure.heights=[];if(r){t.measure.width=i;for(var a=t.text.firstChild.getClientRects(),s=0;s<a.length-1;s++){var l=a[s],c=a[s+1];Math.abs(l.bottom-c.bottom)>2&&o.push((l.bottom+c.top)/2-n.top)}}o.push(n.bottom-n.top)}}function $t(e,t,n){if(e.line==t)return{map:e.measure.map,cache:e.measure.cache};for(var r=0;r<e.rest.length;r++)if(e.rest[r]==t)return{map:e.measure.maps[r],cache:e.measure.caches[r]};for(var i=0;i<e.rest.length;i++)if(E(e.rest[i])>n)return{map:e.measure.maps[i],cache:e.measure.caches[i],before:!0}}function Gt(e,t){t=fe(t);var r=E(t),i=e.display.externalMeasured=new bt(e.doc,t,r);i.lineN=r;var o=i.built=dt(e,i);return i.text=o.pre,
2
- n(e.display.lineMeasure,o.pre),i}function Xt(e,t,n,r){return Jt(e,Qt(e,t),n,r)}function Yt(e,t){if(t>=e.display.viewFrom&&t<e.display.viewTo)return e.display.view[Mn(e,t)];var n=e.display.externalMeasured;return n&&t>=n.lineN&&t<n.lineN+n.size?n:void 0}function Qt(e,t){var n=E(t),r=Yt(e,n);r&&!r.text?r=null:r&&r.changes&&(Mt(e,r,n,wn(e)),e.curOp.forceUpdate=!0),r||(r=Gt(e,t));var i=$t(r,t,n);return{line:t,view:r,rect:null,map:i.map,cache:i.cache,before:i.before,hasHeights:!1}}function Jt(e,t,n,r,i){t.before&&(n=-1);var o,a=n+(r||"");return t.cache.hasOwnProperty(a)?o=t.cache[a]:(t.rect||(t.rect=t.view.text.getBoundingClientRect()),t.hasHeights||(Vt(e,t.view,t.rect),t.hasHeights=!0),o=tn(e,t,n,r),o.bogus||(t.cache[a]=o)),{left:o.left,right:o.right,top:i?o.rtop:o.top,bottom:i?o.rbottom:o.bottom}}function Zt(e,t,n){for(var r,i,o,a,s,l,c=0;c<e.length;c+=3)if(s=e[c],l=e[c+1],t<s?(i=0,o=1,a="left"):t<l?(i=t-s,o=i+1):(c==e.length-3||t==l&&e[c+3]>t)&&(o=l-s,i=o-1,t>=l&&(a="right")),null!=i){if(r=e[c+2],s==l&&n==(r.insertLeft?"left":"right")&&(a=n),"left"==n&&0==i)for(;c&&e[c-2]==e[c-3]&&e[c-1].insertLeft;)r=e[2+(c-=3)],a="left";if("right"==n&&i==l-s)for(;c<e.length-3&&e[c+3]==e[c+4]&&!e[c+5].insertLeft;)r=e[2+(c+=3)],a="right";break}return{node:r,start:i,end:o,collapse:a,coverStart:s,coverEnd:l}}function en(e,t){var n=hs;if("left"==t)for(var r=0;r<e.length&&(n=e[r]).left==n.right;r++);else for(var i=e.length-1;i>=0&&(n=e[i]).left==n.right;i--);return n}function tn(e,t,n,r){var i,o=Zt(t.map,n,r),a=o.node,s=o.start,l=o.end,c=o.collapse;if(3==a.nodeType){for(var u=0;u<4;u++){for(;s&&C(t.line.text.charAt(o.coverStart+s));)--s;for(;o.coverStart+l<o.coverEnd&&C(t.line.text.charAt(o.coverStart+l));)++l;if(i=fa&&da<9&&0==s&&l==o.coverEnd-o.coverStart?a.parentNode.getBoundingClientRect():en(La(a,s,l).getClientRects(),r),i.left||i.right||0==s)break;l=s,s-=1,c="right"}fa&&da<11&&(i=nn(e.display.measure,i))}else{s>0&&(c=r="right");var f;i=e.options.lineWrapping&&(f=a.getClientRects()).length>1?f["right"==r?f.length-1:0]:a.getBoundingClientRect()}if(fa&&da<9&&!s&&(!i||!i.left&&!i.right)){var d=a.parentNode.getClientRects()[0];i=d?{left:d.left,right:d.left+xn(e.display),top:d.top,bottom:d.bottom}:hs}for(var h=i.top-t.rect.top,p=i.bottom-t.rect.top,m=(h+p)/2,g=t.view.measure.heights,v=0;v<g.length-1&&!(m<g[v]);v++);var y=v?g[v-1]:0,b=g[v],x={left:("right"==c?i.right:i.left)-t.rect.left,right:("left"==c?i.left:i.right)-t.rect.left,top:y,bottom:b};return i.left||i.right||(x.bogus=!0),e.options.singleCursorHeightPerLine||(x.rtop=h,x.rbottom=p),x}function nn(e,t){if(!window.screen||null==screen.logicalXDPI||screen.logicalXDPI==screen.deviceXDPI||!je(e))return t;var n=screen.logicalXDPI/screen.deviceXDPI,r=screen.logicalYDPI/screen.deviceYDPI;return{left:t.left*n,right:t.right*n,top:t.top*r,bottom:t.bottom*r}}function rn(e){if(e.measure&&(e.measure.cache={},e.measure.heights=null,e.rest))for(var t=0;t<e.rest.length;t++)e.measure.caches[t]={}}function on(e){e.display.externalMeasure=null,t(e.display.lineMeasure);for(var n=0;n<e.display.view.length;n++)rn(e.display.view[n])}function an(e){on(e),e.display.cachedCharWidth=e.display.cachedTextHeight=e.display.cachedPaddingH=null,e.options.lineWrapping||(e.display.maxLineChanged=!0),e.display.lineNumChars=null}function sn(){return ma&&wa?-(document.body.getBoundingClientRect().left-parseInt(getComputedStyle(document.body).marginLeft)):window.pageXOffset||(document.documentElement||document.body).scrollLeft}function ln(){return ma&&wa?-(document.body.getBoundingClientRect().top-parseInt(getComputedStyle(document.body).marginTop)):window.pageYOffset||(document.documentElement||document.body).scrollTop}function cn(e,t,n,r,i){if(!i&&t.widgets)for(var o=0;o<t.widgets.length;++o)if(t.widgets[o].above){var a=Dt(t.widgets[o]);n.top+=a,n.bottom+=a}if("line"==r)return n;r||(r="local");var s=ye(t);if("local"==r?s+=Wt(e.display):s-=e.display.viewOffset,"page"==r||"window"==r){var l=e.display.lineSpace.getBoundingClientRect();s+=l.top+("window"==r?0:ln());var c=l.left+("window"==r?0:sn());n.left+=c,n.right+=c}return n.top+=s,n.bottom+=s,n}function un(e,t,n){if("div"==n)return t;var r=t.left,i=t.top;if("page"==n)r-=sn(),i-=ln();else if("local"==n||!n){var o=e.display.sizer.getBoundingClientRect();r+=o.left,i+=o.top}var a=e.display.lineSpace.getBoundingClientRect();return{left:r-a.left,top:i-a.top}}function fn(e,t,n,r,i){return r||(r=L(e.doc,t.line)),cn(e,r,Xt(e,r,t.ch,i),n)}function dn(e,t,n,r,i,o){function a(t,a){var s=Jt(e,i,t,a?"right":"left",o);return a?s.left=s.right:s.right=s.left,cn(e,r,s,n)}function s(e,t,n){var r=l[t],i=r.level%2!=0;return a(n?e-1:e,i!=n)}r=r||L(e.doc,t.line),i||(i=Qt(e,r));var l=Ce(r,e.doc.direction),c=t.ch,u=t.sticky;if(c>=r.text.length?(c=r.text.length,u="before"):c<=0&&(c=0,u="after"),!l)return a("before"==u?c-1:c,"before"==u);var f=ke(l,c,u),d=Ua,h=s(c,f,"before"==u);return null!=d&&(h.other=s(c,d,"before"!=u)),h}function hn(e,t){var n=0;t=H(e.doc,t),e.options.lineWrapping||(n=xn(e.display)*t.ch);var r=L(e.doc,t.line),i=ye(r)+Wt(e.display);return{left:n,right:n,top:i,bottom:i+r.height}}function pn(e,t,n,r,i){var o=R(e,t,n);return o.xRel=i,r&&(o.outside=!0),o}function mn(e,t,n){var r=e.doc;if((n+=e.display.viewOffset)<0)return pn(r.first,0,null,!0,-1);var i=N(r,n),o=r.first+r.size-1;if(i>o)return pn(r.first+r.size-1,L(r,o).text.length,null,!0,1);t<0&&(t=0);for(var a=L(r,i);;){var s=yn(e,a,i,t,n),l=ce(a),c=l&&l.find(0,!0);if(!l||!(s.ch>c.from.ch||s.ch==c.from.ch&&s.xRel>0))return s;i=E(a=c.to.line)}}function gn(e,t,n,r){var i=function(r){return cn(e,t,Jt(e,n,r),"line")},o=t.text.length,a=_(function(e){return i(e-1).bottom<=r},o,0);return o=_(function(e){return i(e).top>r},a,o),{begin:a,end:o}}function vn(e,t,n,r){return gn(e,t,n,cn(e,t,Jt(e,n,r),"line").top)}function yn(e,t,n,r,i){i-=ye(t);var o,a=0,s=t.text.length,l=Qt(e,t);if(Ce(t,e.doc.direction)){if(e.options.lineWrapping){var c;c=gn(e,t,l,i),a=c.begin,s=c.end}o=new R(n,Math.floor(a+(s-a)/2));var u,f,d=dn(e,o,"line",t,l).left,h=d<r?1:-1,p=d-r,m=Math.ceil((s-a)/4);e:do{u=p,f=o;for(var g=0;g<m;++g){var v=o;if(null==(o=Le(e,t,o,h))||o.ch<a||s<=("before"==o.sticky?o.ch-1:o.ch)){o=v;break e}}if(p=dn(e,o,"line",t,l).left-r,m>1){var y=Math.abs(p-u)/m;m=Math.min(m,Math.ceil(Math.abs(p)/y)),h=p<0?1:-1}}while(0!=p&&(m>1||h<0!=p<0&&Math.abs(p)<=Math.abs(u)));if(Math.abs(p)>Math.abs(u)){if(p<0==u<0)throw new Error("Broke out of infinite loop in coordsCharInner");o=f}}else{var b=_(function(n){var o=cn(e,t,Jt(e,l,n),"line");return o.top>i?(s=Math.min(n,s),!0):!(o.bottom<=i)&&(o.left>r||!(o.right<r)&&r-o.left<o.right-r)},a,s);b=S(t.text,b,1),o=new R(n,b,b==s?"before":"after")}var x=dn(e,o,"line",t,l);return(i<x.top||x.bottom<i)&&(o.outside=!0),o.xRel=r<x.left?-1:r>x.right?1:0,o}function bn(e){if(null!=e.cachedTextHeight)return e.cachedTextHeight;if(null==ls){ls=r("pre");for(var i=0;i<49;++i)ls.appendChild(document.createTextNode("x")),ls.appendChild(r("br"));ls.appendChild(document.createTextNode("x"))}n(e.measure,ls);var o=ls.offsetHeight/50;return o>3&&(e.cachedTextHeight=o),t(e.measure),o||1}function xn(e){if(null!=e.cachedCharWidth)return e.cachedCharWidth;var t=r("span","xxxxxxxxxx"),i=r("pre",[t]);n(e.measure,i);var o=t.getBoundingClientRect(),a=(o.right-o.left)/10;return a>2&&(e.cachedCharWidth=a),a||10}function wn(e){for(var t=e.display,n={},r={},i=t.gutters.clientLeft,o=t.gutters.firstChild,a=0;o;o=o.nextSibling,++a)n[e.options.gutters[a]]=o.offsetLeft+o.clientLeft+i,r[e.options.gutters[a]]=o.clientWidth;return{fixedPos:kn(t),gutterTotalWidth:t.gutters.offsetWidth,gutterLeft:n,gutterWidth:r,wrapperWidth:t.wrapper.clientWidth}}function kn(e){return e.scroller.getBoundingClientRect().left-e.sizer.getBoundingClientRect().left}function Cn(e){var t=bn(e.display),n=e.options.lineWrapping,r=n&&Math.max(5,e.display.scroller.clientWidth/xn(e.display)-3);return function(i){if(ge(e.doc,i))return 0;var o=0;if(i.widgets)for(var a=0;a<i.widgets.length;a++)i.widgets[a].height&&(o+=i.widgets[a].height);return n?o+(Math.ceil(i.text.length/r)||1)*t:o+t}}function Sn(e){var t=e.doc,n=Cn(e);t.iter(function(e){var t=n(e);t!=e.height&&O(e,t)})}function _n(e,t,n,r){var i=e.display;if(!n&&"true"==Fe(t).getAttribute("cm-not-content"))return null;var o,a,s=i.lineSpace.getBoundingClientRect();try{o=t.clientX-s.left,a=t.clientY-s.top}catch(e){return null}var l,c=mn(e,o,a);if(r&&1==c.xRel&&(l=L(e.doc,c.line).text).length==c.ch){var u=f(l,l.length,e.options.tabSize)-l.length;c=R(c.line,Math.max(0,Math.round((o-Ht(e.display).left)/xn(e.display))-u))}return c}function Mn(e,t){if(t>=e.display.viewTo)return null;if((t-=e.display.viewFrom)<0)return null;for(var n=e.display.view,r=0;r<n.length;r++)if((t-=n[r].size)<0)return r}function Ln(e){e.display.input.showSelection(e.display.input.prepareSelection())}function Tn(e,t){for(var n=e.doc,r={},i=r.cursors=document.createDocumentFragment(),o=r.selection=document.createDocumentFragment(),a=0;a<n.sel.ranges.length;a++)if(t!==!1||a!=n.sel.primIndex){var s=n.sel.ranges[a];if(!(s.from().line>=e.display.viewTo||s.to().line<e.display.viewFrom)){var l=s.empty();(l||e.options.showCursorWhenSelecting)&&An(e,s.head,i),l||On(e,s,o)}}return r}function An(e,t,n){var i=dn(e,t,"div",null,null,!e.options.singleCursorHeightPerLine),o=n.appendChild(r("div"," ","CodeMirror-cursor"));if(o.style.left=i.left+"px",o.style.top=i.top+"px",o.style.height=Math.max(0,i.bottom-i.top)*e.options.cursorHeight+"px",i.other){var a=n.appendChild(r("div"," ","CodeMirror-cursor CodeMirror-secondarycursor"));a.style.display="",a.style.left=i.other.left+"px",a.style.top=i.other.top+"px",a.style.height=.85*(i.other.bottom-i.other.top)+"px"}}function On(e,t,n){function i(e,t,n,i){t<0&&(t=0),t=Math.round(t),i=Math.round(i),l.appendChild(r("div",null,"CodeMirror-selected","position: absolute; left: "+e+"px;\n top: "+t+"px; width: "+(null==n?f-e:n)+"px;\n height: "+(i-t)+"px"))}function o(t,n,r){function o(n,r){return fn(e,R(t,n),"div",c,r)}var a,l,c=L(s,t),d=c.text.length;return we(Ce(c,s.direction),n||0,null==r?d:r,function(e,t,s){var c,h,p,m=o(e,"left");if(e==t)c=m,h=p=m.left;else{if(c=o(t-1,"right"),"rtl"==s){var g=m;m=c,c=g}h=m.left,p=c.right}null==n&&0==e&&(h=u),c.top-m.top>3&&(i(h,m.top,null,m.bottom),h=u,m.bottom<c.top&&i(h,m.bottom,null,c.top)),null==r&&t==d&&(p=f),(!a||m.top<a.top||m.top==a.top&&m.left<a.left)&&(a=m),(!l||c.bottom>l.bottom||c.bottom==l.bottom&&c.right>l.right)&&(l=c),h<u+1&&(h=u),i(h,c.top,p-h,c.bottom)}),{start:a,end:l}}var a=e.display,s=e.doc,l=document.createDocumentFragment(),c=Ht(e.display),u=c.left,f=Math.max(a.sizerWidth,Kt(e)-a.sizer.offsetLeft)-c.right,d=t.from(),h=t.to();if(d.line==h.line)o(d.line,d.ch,h.ch);else{var p=L(s,d.line),m=L(s,h.line),g=fe(p)==fe(m),v=o(d.line,d.ch,g?p.text.length+1:null).end,y=o(h.line,g?0:null,h.ch).start;g&&(v.top<y.top-2?(i(v.right,v.top,null,v.bottom),i(u,y.top,y.left,y.bottom)):i(v.right,v.top,y.left-v.right,v.bottom)),v.bottom<y.top&&i(u,v.bottom,null,y.top)}n.appendChild(l)}function En(e){if(e.state.focused){var t=e.display;clearInterval(t.blinker);var n=!0;t.cursorDiv.style.visibility="",e.options.cursorBlinkRate>0?t.blinker=setInterval(function(){return t.cursorDiv.style.visibility=(n=!n)?"":"hidden"},e.options.cursorBlinkRate):e.options.cursorBlinkRate<0&&(t.cursorDiv.style.visibility="hidden")}}function Nn(e){e.state.focused||(e.display.input.focus(),Pn(e))}function In(e){e.state.delayingBlurEvent=!0,setTimeout(function(){e.state.delayingBlurEvent&&(e.state.delayingBlurEvent=!1,Rn(e))},100)}function Pn(e,t){e.state.delayingBlurEvent&&(e.state.delayingBlurEvent=!1),"nocursor"!=e.options.readOnly&&(e.state.focused||(Oe(e,"focus",e,t),e.state.focused=!0,s(e.display.wrapper,"CodeMirror-focused"),e.curOp||e.display.selForContextMenu==e.doc.sel||(e.display.input.reset(),ha&&setTimeout(function(){return e.display.input.reset(!0)},20)),e.display.input.receivedFocus()),En(e))}function Rn(e,t){e.state.delayingBlurEvent||(e.state.focused&&(Oe(e,"blur",e,t),e.state.focused=!1,Oa(e.display.wrapper,"CodeMirror-focused")),clearInterval(e.display.blinker),setTimeout(function(){e.state.focused||(e.display.shift=!1)},150))}function Bn(e){for(var t=e.display,n=t.lineDiv.offsetTop,r=0;r<t.view.length;r++){var i=t.view[r],o=void 0;if(!i.hidden){if(fa&&da<8){var a=i.node.offsetTop+i.node.offsetHeight;o=a-n,n=a}else{var s=i.node.getBoundingClientRect();o=s.bottom-s.top}var l=i.line.height-o;if(o<2&&(o=bn(t)),(l>.005||l<-.005)&&(O(i.line,o),zn(i.line),i.rest))for(var c=0;c<i.rest.length;c++)zn(i.rest[c])}}}function zn(e){if(e.widgets)for(var t=0;t<e.widgets.length;++t)e.widgets[t].height=e.widgets[t].node.parentNode.offsetHeight}function Dn(e,t,n){var r=n&&null!=n.top?Math.max(0,n.top):e.scroller.scrollTop;r=Math.floor(r-Wt(e));var i=n&&null!=n.bottom?n.bottom:r+e.wrapper.clientHeight,o=N(t,r),a=N(t,i);if(n&&n.ensure){var s=n.ensure.from.line,l=n.ensure.to.line;s<o?(o=s,a=N(t,ye(L(t,s))+e.wrapper.clientHeight)):Math.min(l,t.lastLine())>=a&&(o=N(t,ye(L(t,l))-e.wrapper.clientHeight),a=l)}return{from:o,to:Math.max(a,o+1)}}function Fn(e){var t=e.display,n=t.view;if(t.alignWidgets||t.gutters.firstChild&&e.options.fixedGutter){for(var r=kn(t)-t.scroller.scrollLeft+e.doc.scrollLeft,i=t.gutters.offsetWidth,o=r+"px",a=0;a<n.length;a++)if(!n[a].hidden){e.options.fixedGutter&&(n[a].gutter&&(n[a].gutter.style.left=o),n[a].gutterBackground&&(n[a].gutterBackground.style.left=o));var s=n[a].alignable;if(s)for(var l=0;l<s.length;l++)s[l].style.left=o}e.options.fixedGutter&&(t.gutters.style.left=r+i+"px")}}function Wn(e){if(!e.options.lineNumbers)return!1;var t=e.doc,n=P(e.options,t.first+t.size-1),i=e.display;if(n.length!=i.lineNumChars){var o=i.measure.appendChild(r("div",[r("div",n)],"CodeMirror-linenumber CodeMirror-gutter-elt")),a=o.firstChild.offsetWidth,s=o.offsetWidth-a;return i.lineGutter.style.width="",i.lineNumInnerWidth=Math.max(a,i.lineGutter.offsetWidth-s)+1,i.lineNumWidth=i.lineNumInnerWidth+s,i.lineNumChars=i.lineNumInnerWidth?n.length:-1,i.lineGutter.style.width=i.lineNumWidth+"px",Er(e),!0}return!1}function qn(e,t){if(!Ee(e,"scrollCursorIntoView")){var n=e.display,i=n.sizer.getBoundingClientRect(),o=null;if(t.top+i.top<0?o=!0:t.bottom+i.top>(window.innerHeight||document.documentElement.clientHeight)&&(o=!1),null!=o&&!ba){var a=r("div","​",null,"position: absolute;\n top: "+(t.top-n.viewOffset-Wt(e.display))+"px;\n height: "+(t.bottom-t.top+jt(e)+n.barHeight)+"px;\n left: "+t.left+"px; width: "+Math.max(2,t.right-t.left)+"px;");e.display.lineSpace.appendChild(a),a.scrollIntoView(o),e.display.lineSpace.removeChild(a)}}}function Hn(e,t,n,r){null==r&&(r=0);var i;e.options.lineWrapping||t!=n||(t=t.ch?R(t.line,"before"==t.sticky?t.ch-1:t.ch,"after"):t,n="before"==t.sticky?R(t.line,t.ch+1,"before"):t);for(var o=0;o<5;o++){var a=!1,s=dn(e,t),l=n&&n!=t?dn(e,n):s;i={left:Math.min(s.left,l.left),top:Math.min(s.top,l.top)-r,right:Math.max(s.left,l.left),bottom:Math.max(s.bottom,l.bottom)+r};var c=Kn(e,i),u=e.doc.scrollTop,f=e.doc.scrollLeft;if(null!=c.scrollTop&&(Qn(e,c.scrollTop),Math.abs(e.doc.scrollTop-u)>1&&(a=!0)),null!=c.scrollLeft&&(Zn(e,c.scrollLeft),Math.abs(e.doc.scrollLeft-f)>1&&(a=!0)),!a)break}return i}function jn(e,t){var n=Kn(e,t);null!=n.scrollTop&&Qn(e,n.scrollTop),null!=n.scrollLeft&&Zn(e,n.scrollLeft)}function Kn(e,t){var n=e.display,r=bn(e.display);t.top<0&&(t.top=0);var i=e.curOp&&null!=e.curOp.scrollTop?e.curOp.scrollTop:n.scroller.scrollTop,o=Ut(e),a={};t.bottom-t.top>o&&(t.bottom=t.top+o);var s=e.doc.height+qt(n),l=t.top<r,c=t.bottom>s-r;if(t.top<i)a.scrollTop=l?0:t.top;else if(t.bottom>i+o){var u=Math.min(t.top,(c?s:t.bottom)-o);u!=i&&(a.scrollTop=u)}var f=e.curOp&&null!=e.curOp.scrollLeft?e.curOp.scrollLeft:n.scroller.scrollLeft,d=Kt(e)-(e.options.fixedGutter?n.gutters.offsetWidth:0),h=t.right-t.left>d;return h&&(t.right=t.left+d),t.left<10?a.scrollLeft=0:t.left<f?a.scrollLeft=Math.max(0,t.left-(h?0:10)):t.right>d+f-3&&(a.scrollLeft=t.right+(h?0:10)-d),a}function Un(e,t){null!=t&&(Xn(e),e.curOp.scrollTop=(null==e.curOp.scrollTop?e.doc.scrollTop:e.curOp.scrollTop)+t)}function Vn(e){Xn(e);var t=e.getCursor();e.curOp.scrollToPos={from:t,to:t,margin:e.options.cursorScrollMargin}}function $n(e,t,n){null==t&&null==n||Xn(e),null!=t&&(e.curOp.scrollLeft=t),null!=n&&(e.curOp.scrollTop=n)}function Gn(e,t){Xn(e),e.curOp.scrollToPos=t}function Xn(e){var t=e.curOp.scrollToPos;if(t){e.curOp.scrollToPos=null;Yn(e,hn(e,t.from),hn(e,t.to),t.margin)}}function Yn(e,t,n,r){var i=Kn(e,{left:Math.min(t.left,n.left),top:Math.min(t.top,n.top)-r,right:Math.max(t.right,n.right),bottom:Math.max(t.bottom,n.bottom)+r});$n(e,i.scrollLeft,i.scrollTop)}function Qn(e,t){Math.abs(e.doc.scrollTop-t)<2||(sa||Ar(e,{top:t}),Jn(e,t,!0),sa&&Ar(e),kr(e,100))}function Jn(e,t,n){t=Math.min(e.display.scroller.scrollHeight-e.display.scroller.clientHeight,t),(e.display.scroller.scrollTop!=t||n)&&(e.doc.scrollTop=t,e.display.scrollbars.setScrollTop(t),e.display.scroller.scrollTop!=t&&(e.display.scroller.scrollTop=t))}function Zn(e,t,n,r){t=Math.min(t,e.display.scroller.scrollWidth-e.display.scroller.clientWidth),(n?t==e.doc.scrollLeft:Math.abs(e.doc.scrollLeft-t)<2)&&!r||(e.doc.scrollLeft=t,Fn(e),e.display.scroller.scrollLeft!=t&&(e.display.scroller.scrollLeft=t),e.display.scrollbars.setScrollLeft(t))}function er(e){var t=e.display,n=t.gutters.offsetWidth,r=Math.round(e.doc.height+qt(e.display));return{clientHeight:t.scroller.clientHeight,viewHeight:t.wrapper.clientHeight,scrollWidth:t.scroller.scrollWidth,clientWidth:t.scroller.clientWidth,viewWidth:t.wrapper.clientWidth,barLeft:e.options.fixedGutter?n:0,docHeight:r,scrollHeight:r+jt(e)+t.barHeight,nativeBarWidth:t.nativeBarWidth,gutterWidth:n}}function tr(e,t){t||(t=er(e));var n=e.display.barWidth,r=e.display.barHeight;nr(e,t);for(var i=0;i<4&&n!=e.display.barWidth||r!=e.display.barHeight;i++)n!=e.display.barWidth&&e.options.lineWrapping&&Bn(e),nr(e,er(e)),n=e.display.barWidth,r=e.display.barHeight}function nr(e,t){var n=e.display,r=n.scrollbars.update(t);n.sizer.style.paddingRight=(n.barWidth=r.right)+"px",n.sizer.style.paddingBottom=(n.barHeight=r.bottom)+"px",n.heightForcer.style.borderBottom=r.bottom+"px solid transparent",r.right&&r.bottom?(n.scrollbarFiller.style.display="block",n.scrollbarFiller.style.height=r.bottom+"px",n.scrollbarFiller.style.width=r.right+"px"):n.scrollbarFiller.style.display="",r.bottom&&e.options.coverGutterNextToScrollbar&&e.options.fixedGutter?(n.gutterFiller.style.display="block",n.gutterFiller.style.height=r.bottom+"px",n.gutterFiller.style.width=t.gutterWidth+"px"):n.gutterFiller.style.display=""}function rr(e){e.display.scrollbars&&(e.display.scrollbars.clear(),e.display.scrollbars.addClass&&Oa(e.display.wrapper,e.display.scrollbars.addClass)),e.display.scrollbars=new gs[e.options.scrollbarStyle](function(t){e.display.wrapper.insertBefore(t,e.display.scrollbarFiller),Ga(t,"mousedown",function(){e.state.focused&&setTimeout(function(){return e.display.input.focus()},0)}),t.setAttribute("cm-not-content","true")},function(t,n){"horizontal"==n?Zn(e,t):Qn(e,t)},e),e.display.scrollbars.addClass&&s(e.display.wrapper,e.display.scrollbars.addClass)}function ir(e){e.curOp={cm:e,viewChanged:!1,startHeight:e.doc.height,forceUpdate:!1,updateInput:null,typing:!1,changeObjs:null,cursorActivityHandlers:null,cursorActivityCalled:0,selectionChanged:!1,updateMaxLine:!1,scrollLeft:null,scrollTop:null,scrollToPos:null,focus:!1,id:++vs},wt(e.curOp)}function or(e){Ct(e.curOp,function(e){for(var t=0;t<e.ops.length;t++)e.ops[t].cm.curOp=null;ar(e)})}function ar(e){for(var t=e.ops,n=0;n<t.length;n++)sr(t[n]);for(var r=0;r<t.length;r++)lr(t[r]);for(var i=0;i<t.length;i++)cr(t[i]);for(var o=0;o<t.length;o++)ur(t[o]);for(var a=0;a<t.length;a++)fr(t[a])}function sr(e){var t=e.cm,n=t.display;Sr(t),e.updateMaxLine&&xe(t),e.mustUpdate=e.viewChanged||e.forceUpdate||null!=e.scrollTop||e.scrollToPos&&(e.scrollToPos.from.line<n.viewFrom||e.scrollToPos.to.line>=n.viewTo)||n.maxLineChanged&&t.options.lineWrapping,e.update=e.mustUpdate&&new ys(t,e.mustUpdate&&{top:e.scrollTop,ensure:e.scrollToPos},e.forceUpdate)}function lr(e){e.updatedDisplay=e.mustUpdate&&Lr(e.cm,e.update)}function cr(e){var t=e.cm,n=t.display;e.updatedDisplay&&Bn(t),e.barMeasure=er(t),n.maxLineChanged&&!t.options.lineWrapping&&(e.adjustWidthTo=Xt(t,n.maxLine,n.maxLine.text.length).left+3,t.display.sizerWidth=e.adjustWidthTo,e.barMeasure.scrollWidth=Math.max(n.scroller.clientWidth,n.sizer.offsetLeft+e.adjustWidthTo+jt(t)+t.display.barWidth),e.maxScrollLeft=Math.max(0,n.sizer.offsetLeft+e.adjustWidthTo-Kt(t))),(e.updatedDisplay||e.selectionChanged)&&(e.preparedSelection=n.input.prepareSelection(e.focus))}function ur(e){var t=e.cm;null!=e.adjustWidthTo&&(t.display.sizer.style.minWidth=e.adjustWidthTo+"px",e.maxScrollLeft<t.doc.scrollLeft&&Zn(t,Math.min(t.display.scroller.scrollLeft,e.maxScrollLeft),!0),t.display.maxLineChanged=!1);var n=e.focus&&e.focus==a()&&(!document.hasFocus||document.hasFocus());e.preparedSelection&&t.display.input.showSelection(e.preparedSelection,n),(e.updatedDisplay||e.startHeight!=t.doc.height)&&tr(t,e.barMeasure),e.updatedDisplay&&Nr(t,e.barMeasure),e.selectionChanged&&En(t),t.state.focused&&e.updateInput&&t.display.input.reset(e.typing),n&&Nn(e.cm)}function fr(e){var t=e.cm,n=t.display,r=t.doc;if(e.updatedDisplay&&Tr(t,e.update),null==n.wheelStartX||null==e.scrollTop&&null==e.scrollLeft&&!e.scrollToPos||(n.wheelStartX=n.wheelStartY=null),null!=e.scrollTop&&Jn(t,e.scrollTop,e.forceScroll),null!=e.scrollLeft&&Zn(t,e.scrollLeft,!0,!0),e.scrollToPos){qn(t,Hn(t,H(r,e.scrollToPos.from),H(r,e.scrollToPos.to),e.scrollToPos.margin))}var i=e.maybeHiddenMarkers,o=e.maybeUnhiddenMarkers;if(i)for(var a=0;a<i.length;++a)i[a].lines.length||Oe(i[a],"hide");if(o)for(var s=0;s<o.length;++s)o[s].lines.length&&Oe(o[s],"unhide");n.wrapper.offsetHeight&&(r.scrollTop=t.display.scroller.scrollTop),e.changeObjs&&Oe(t,"changes",t,e.changeObjs),e.update&&e.update.finish()}function dr(e,t){if(e.curOp)return t();ir(e);try{return t()}finally{or(e)}}function hr(e,t){return function(){if(e.curOp)return t.apply(e,arguments);ir(e);try{return t.apply(e,arguments)}finally{or(e)}}}function pr(e){return function(){if(this.curOp)return e.apply(this,arguments);ir(this);try{return e.apply(this,arguments)}finally{or(this)}}}function mr(e){return function(){var t=this.cm;if(!t||t.curOp)return e.apply(this,arguments);ir(t);try{return e.apply(this,arguments)}finally{or(t)}}}function gr(e,t,n,r){null==t&&(t=e.doc.first),null==n&&(n=e.doc.first+e.doc.size),r||(r=0);var i=e.display;if(r&&n<i.viewTo&&(null==i.updateLineNumbers||i.updateLineNumbers>t)&&(i.updateLineNumbers=t),e.curOp.viewChanged=!0,t>=i.viewTo)Ka&&pe(e.doc,t)<i.viewTo&&yr(e);else if(n<=i.viewFrom)Ka&&me(e.doc,n+r)>i.viewFrom?yr(e):(i.viewFrom+=r,i.viewTo+=r);else if(t<=i.viewFrom&&n>=i.viewTo)yr(e);else if(t<=i.viewFrom){var o=br(e,n,n+r,1);o?(i.view=i.view.slice(o.index),i.viewFrom=o.lineN,i.viewTo+=r):yr(e)}else if(n>=i.viewTo){var a=br(e,t,t,-1);a?(i.view=i.view.slice(0,a.index),i.viewTo=a.lineN):yr(e)}else{var s=br(e,t,t,-1),l=br(e,n,n+r,1);s&&l?(i.view=i.view.slice(0,s.index).concat(xt(e,s.lineN,l.lineN)).concat(i.view.slice(l.index)),i.viewTo+=r):yr(e)}var c=i.externalMeasured;c&&(n<c.lineN?c.lineN+=r:t<c.lineN+c.size&&(i.externalMeasured=null))}function vr(e,t,n){e.curOp.viewChanged=!0;var r=e.display,i=e.display.externalMeasured;if(i&&t>=i.lineN&&t<i.lineN+i.size&&(r.externalMeasured=null),!(t<r.viewFrom||t>=r.viewTo)){var o=r.view[Mn(e,t)];if(null!=o.node){var a=o.changes||(o.changes=[]);d(a,n)==-1&&a.push(n)}}}function yr(e){e.display.viewFrom=e.display.viewTo=e.doc.first,e.display.view=[],e.display.viewOffset=0}function br(e,t,n,r){var i,o=Mn(e,t),a=e.display.view;if(!Ka||n==e.doc.first+e.doc.size)return{index:o,lineN:n};for(var s=e.display.viewFrom,l=0;l<o;l++)s+=a[l].size;if(s!=t){if(r>0){if(o==a.length-1)return null;i=s+a[o].size-t,o++}else i=s-t;t+=i,n+=i}for(;pe(e.doc,n)!=n;){if(o==(r<0?0:a.length-1))return null;n+=r*a[o-(r<0?1:0)].size,o+=r}return{index:o,lineN:n}}function xr(e,t,n){var r=e.display;0==r.view.length||t>=r.viewTo||n<=r.viewFrom?(r.view=xt(e,t,n),r.viewFrom=t):(r.viewFrom>t?r.view=xt(e,t,r.viewFrom).concat(r.view):r.viewFrom<t&&(r.view=r.view.slice(Mn(e,t))),r.viewFrom=t,r.viewTo<n?r.view=r.view.concat(xt(e,r.viewTo,n)):r.viewTo>n&&(r.view=r.view.slice(0,Mn(e,n)))),r.viewTo=n}function wr(e){for(var t=e.display.view,n=0,r=0;r<t.length;r++){var i=t[r];i.hidden||i.node&&!i.changes||++n}return n}function kr(e,t){e.doc.highlightFrontier<e.display.viewTo&&e.state.highlight.set(t,c(Cr,e))}function Cr(e){var t=e.doc;if(!(t.highlightFrontier>=e.display.viewTo)){var n=+new Date+e.options.workTime,r=et(e,t.highlightFrontier),i=[];t.iter(r.line,Math.min(t.first+t.size,e.display.viewTo+500),function(o){if(r.line>=e.display.viewFrom){var a=o.styles,s=o.text.length>e.options.maxHighlightLength?Xe(t.mode,r.state):null,l=Je(e,o,r,!0);s&&(r.state=s),o.styles=l.styles;var c=o.styleClasses,u=l.classes;u?o.styleClasses=u:c&&(o.styleClasses=null);for(var f=!a||a.length!=o.styles.length||c!=u&&(!c||!u||c.bgClass!=u.bgClass||c.textClass!=u.textClass),d=0;!f&&d<a.length;++d)f=a[d]!=o.styles[d];f&&i.push(r.line),o.stateAfter=r.save(),r.nextLine()}else o.text.length<=e.options.maxHighlightLength&&tt(e,o.text,r),o.stateAfter=r.line%5==0?r.save():null,r.nextLine();if(+new Date>n)return kr(e,e.options.workDelay),!0}),t.highlightFrontier=r.line,t.modeFrontier=Math.max(t.modeFrontier,r.line),i.length&&dr(e,function(){for(var t=0;t<i.length;t++)vr(e,i[t],"text")})}}function Sr(e){var t=e.display;!t.scrollbarsClipped&&t.scroller.offsetWidth&&(t.nativeBarWidth=t.scroller.offsetWidth-t.scroller.clientWidth,t.heightForcer.style.height=jt(e)+"px",t.sizer.style.marginBottom=-t.nativeBarWidth+"px",t.sizer.style.borderRightWidth=jt(e)+"px",t.scrollbarsClipped=!0)}function _r(e){if(e.hasFocus())return null;var t=a();if(!t||!o(e.display.lineDiv,t))return null;var n={activeElt:t};if(window.getSelection){var r=window.getSelection();r.anchorNode&&r.extend&&o(e.display.lineDiv,r.anchorNode)&&(n.anchorNode=r.anchorNode,n.anchorOffset=r.anchorOffset,n.focusNode=r.focusNode,n.focusOffset=r.focusOffset)}return n}function Mr(e){if(e&&e.activeElt&&e.activeElt!=a()&&(e.activeElt.focus(),e.anchorNode&&o(document.body,e.anchorNode)&&o(document.body,e.focusNode))){var t=window.getSelection(),n=document.createRange();n.setEnd(e.anchorNode,e.anchorOffset),n.collapse(!1),t.removeAllRanges(),t.addRange(n),t.extend(e.focusNode,e.focusOffset)}}function Lr(e,n){var r=e.display,i=e.doc;if(n.editorIsHidden)return yr(e),!1;if(!n.force&&n.visible.from>=r.viewFrom&&n.visible.to<=r.viewTo&&(null==r.updateLineNumbers||r.updateLineNumbers>=r.viewTo)&&r.renderedView==r.view&&0==wr(e))return!1;Wn(e)&&(yr(e),n.dims=wn(e));var o=i.first+i.size,a=Math.max(n.visible.from-e.options.viewportMargin,i.first),s=Math.min(o,n.visible.to+e.options.viewportMargin);r.viewFrom<a&&a-r.viewFrom<20&&(a=Math.max(i.first,r.viewFrom)),r.viewTo>s&&r.viewTo-s<20&&(s=Math.min(o,r.viewTo)),Ka&&(a=pe(e.doc,a),s=me(e.doc,s));var l=a!=r.viewFrom||s!=r.viewTo||r.lastWrapHeight!=n.wrapperHeight||r.lastWrapWidth!=n.wrapperWidth;xr(e,a,s),r.viewOffset=ye(L(e.doc,r.viewFrom)),e.display.mover.style.top=r.viewOffset+"px";var c=wr(e);if(!l&&0==c&&!n.force&&r.renderedView==r.view&&(null==r.updateLineNumbers||r.updateLineNumbers>=r.viewTo))return!1;var u=_r(e);return c>4&&(r.lineDiv.style.display="none"),Or(e,r.updateLineNumbers,n.dims),c>4&&(r.lineDiv.style.display=""),r.renderedView=r.view,Mr(u),t(r.cursorDiv),t(r.selectionDiv),r.gutters.style.height=r.sizer.style.minHeight=0,l&&(r.lastWrapHeight=n.wrapperHeight,r.lastWrapWidth=n.wrapperWidth,kr(e,400)),r.updateLineNumbers=null,!0}function Tr(e,t){for(var n=t.viewport,r=!0;(r&&e.options.lineWrapping&&t.oldDisplayWidth!=Kt(e)||(n&&null!=n.top&&(n={top:Math.min(e.doc.height+qt(e.display)-Ut(e),n.top)}),t.visible=Dn(e.display,e.doc,n),!(t.visible.from>=e.display.viewFrom&&t.visible.to<=e.display.viewTo)))&&Lr(e,t);r=!1){Bn(e);var i=er(e);Ln(e),tr(e,i),Nr(e,i),t.force=!1}t.signal(e,"update",e),e.display.viewFrom==e.display.reportedViewFrom&&e.display.viewTo==e.display.reportedViewTo||(t.signal(e,"viewportChange",e,e.display.viewFrom,e.display.viewTo),e.display.reportedViewFrom=e.display.viewFrom,e.display.reportedViewTo=e.display.viewTo)}function Ar(e,t){var n=new ys(e,t);if(Lr(e,n)){Bn(e),Tr(e,n);var r=er(e);Ln(e),tr(e,r),Nr(e,r),n.finish()}}function Or(e,n,r){function i(t){var n=t.nextSibling;return ha&&Ca&&e.display.currentWheelTarget==t?t.style.display="none":t.parentNode.removeChild(t),n}for(var o=e.display,a=e.options.lineNumbers,s=o.lineDiv,l=s.firstChild,c=o.view,u=o.viewFrom,f=0;f<c.length;f++){var h=c[f];if(h.hidden);else if(h.node&&h.node.parentNode==s){for(;l!=h.node;)l=i(l);var p=a&&null!=n&&n<=u&&h.lineNumber;h.changes&&(d(h.changes,"gutter")>-1&&(p=!1),Mt(e,h,u,r)),p&&(t(h.lineNumber),h.lineNumber.appendChild(document.createTextNode(P(e.options,u)))),l=h.node.nextSibling}else{var m=Pt(e,h,u,r);s.insertBefore(m,l)}u+=h.size}for(;l;)l=i(l)}function Er(e){var t=e.display.gutters.offsetWidth;e.display.sizer.style.marginLeft=t+"px"}function Nr(e,t){e.display.sizer.style.minHeight=t.docHeight+"px",e.display.heightForcer.style.top=t.docHeight+"px",e.display.gutters.style.height=t.docHeight+e.display.barHeight+jt(e)+"px"}function Ir(e){var n=e.display.gutters,i=e.options.gutters;t(n);for(var o=0;o<i.length;++o){var a=i[o],s=n.appendChild(r("div",null,"CodeMirror-gutter "+a));"CodeMirror-linenumbers"==a&&(e.display.lineGutter=s,s.style.width=(e.display.lineNumWidth||1)+"px")}n.style.display=o?"":"none",Er(e)}function Pr(e){var t=d(e.gutters,"CodeMirror-linenumbers");t==-1&&e.lineNumbers?e.gutters=e.gutters.concat(["CodeMirror-linenumbers"]):t>-1&&!e.lineNumbers&&(e.gutters=e.gutters.slice(0),e.gutters.splice(t,1))}function Rr(e){var t=e.wheelDeltaX,n=e.wheelDeltaY;return null==t&&e.detail&&e.axis==e.HORIZONTAL_AXIS&&(t=e.detail),null==n&&e.detail&&e.axis==e.VERTICAL_AXIS?n=e.detail:null==n&&(n=e.wheelDelta),{x:t,y:n}}function Br(e){var t=Rr(e);return t.x*=xs,t.y*=xs,t}function zr(e,t){var n=Rr(t),r=n.x,i=n.y,o=e.display,a=o.scroller,s=a.scrollWidth>a.clientWidth,l=a.scrollHeight>a.clientHeight;if(r&&s||i&&l){if(i&&Ca&&ha)e:for(var c=t.target,u=o.view;c!=a;c=c.parentNode)for(var f=0;f<u.length;f++)if(u[f].node==c){e.display.currentWheelTarget=c;break e}if(r&&!sa&&!ga&&null!=xs)return i&&l&&Qn(e,Math.max(0,a.scrollTop+i*xs)),Zn(e,Math.max(0,a.scrollLeft+r*xs)),(!i||i&&l)&&Re(t),void(o.wheelStartX=null);if(i&&null!=xs){var d=i*xs,h=e.doc.scrollTop,p=h+o.wrapper.clientHeight;d<0?h=Math.max(0,h+d-50):p=Math.min(e.doc.height,p+d+50),Ar(e,{top:h,bottom:p})}bs<20&&(null==o.wheelStartX?(o.wheelStartX=a.scrollLeft,o.wheelStartY=a.scrollTop,o.wheelDX=r,o.wheelDY=i,setTimeout(function(){if(null!=o.wheelStartX){var e=a.scrollLeft-o.wheelStartX,t=a.scrollTop-o.wheelStartY,n=t&&o.wheelDY&&t/o.wheelDY||e&&o.wheelDX&&e/o.wheelDX;o.wheelStartX=o.wheelStartY=null,n&&(xs=(xs*bs+n)/(bs+1),++bs)}},200)):(o.wheelDX+=r,o.wheelDY+=i))}}function Dr(e,t){var n=e[t];e.sort(function(e,t){return B(e.from(),t.from())}),t=d(e,n);for(var r=1;r<e.length;r++){var i=e[r],o=e[r-1];if(B(o.to(),i.from())>=0){var a=W(o.from(),i.from()),s=F(o.to(),i.to()),l=o.empty()?i.from()==i.head:o.from()==o.head;r<=t&&--t,e.splice(--r,2,new ks(l?s:a,l?a:s))}}return new ws(e,t)}function Fr(e,t){return new ws([new ks(e,t||e)],0)}function Wr(e){return e.text?R(e.from.line+e.text.length-1,m(e.text).length+(1==e.text.length?e.from.ch:0)):e.to}function qr(e,t){if(B(e,t.from)<0)return e;if(B(e,t.to)<=0)return Wr(t);var n=e.line+t.text.length-(t.to.line-t.from.line)-1,r=e.ch;return e.line==t.to.line&&(r+=Wr(t).ch-t.to.ch),R(n,r)}function Hr(e,t){for(var n=[],r=0;r<e.sel.ranges.length;r++){var i=e.sel.ranges[r]
3
- ;n.push(new ks(qr(i.anchor,t),qr(i.head,t)))}return Dr(n,e.sel.primIndex)}function jr(e,t,n){return e.line==t.line?R(n.line,e.ch-t.ch+n.ch):R(n.line+(e.line-t.line),e.ch)}function Kr(e,t,n){for(var r=[],i=R(e.first,0),o=i,a=0;a<t.length;a++){var s=t[a],l=jr(s.from,i,o),c=jr(Wr(s),i,o);if(i=s.to,o=c,"around"==n){var u=e.sel.ranges[a],f=B(u.head,u.anchor)<0;r[a]=new ks(f?c:l,f?l:c)}else r[a]=new ks(l,l)}return new ws(r,e.sel.primIndex)}function Ur(e){e.doc.mode=$e(e.options,e.doc.modeOption),Vr(e)}function Vr(e){e.doc.iter(function(e){e.stateAfter&&(e.stateAfter=null),e.styles&&(e.styles=null)}),e.doc.modeFrontier=e.doc.highlightFrontier=e.doc.first,kr(e,100),e.state.modeGen++,e.curOp&&gr(e)}function $r(e,t){return 0==t.from.ch&&0==t.to.ch&&""==m(t.text)&&(!e.cm||e.cm.options.wholeLineUpdateBefore)}function Gr(e,t,n,r){function i(e){return n?n[e]:null}function o(e,n,i){ct(e,n,i,r),St(e,"change",e,t)}function a(e,t){for(var n=[],o=e;o<t;++o)n.push(new ss(c[o],i(o),r));return n}var s=t.from,l=t.to,c=t.text,u=L(e,s.line),f=L(e,l.line),d=m(c),h=i(c.length-1),p=l.line-s.line;if(t.full)e.insert(0,a(0,c.length)),e.remove(c.length,e.size-c.length);else if($r(e,t)){var g=a(0,c.length-1);o(f,f.text,h),p&&e.remove(s.line,p),g.length&&e.insert(s.line,g)}else if(u==f)if(1==c.length)o(u,u.text.slice(0,s.ch)+d+u.text.slice(l.ch),h);else{var v=a(1,c.length-1);v.push(new ss(d+u.text.slice(l.ch),h,r)),o(u,u.text.slice(0,s.ch)+c[0],i(0)),e.insert(s.line+1,v)}else if(1==c.length)o(u,u.text.slice(0,s.ch)+c[0]+f.text.slice(l.ch),i(0)),e.remove(s.line+1,p);else{o(u,u.text.slice(0,s.ch)+c[0],i(0)),o(f,d+f.text.slice(l.ch),h);var y=a(1,c.length-1);p>1&&e.remove(s.line+1,p-1),e.insert(s.line+1,y)}St(e,"change",e,t)}function Xr(e,t,n){function r(e,i,o){if(e.linked)for(var a=0;a<e.linked.length;++a){var s=e.linked[a];if(s.doc!=i){var l=o&&s.sharedHist;n&&!l||(t(s.doc,l),r(s.doc,e,l))}}}r(e,null,!0)}function Yr(e,t){if(t.cm)throw new Error("This document is already in use.");e.doc=t,t.cm=e,Sn(e),Ur(e),Qr(e),e.options.lineWrapping||xe(e),e.options.mode=t.modeOption,gr(e)}function Qr(e){("rtl"==e.doc.direction?s:Oa)(e.display.lineDiv,"CodeMirror-rtl")}function Jr(e){dr(e,function(){Qr(e),gr(e)})}function Zr(e){this.done=[],this.undone=[],this.undoDepth=1/0,this.lastModTime=this.lastSelTime=0,this.lastOp=this.lastSelOp=null,this.lastOrigin=this.lastSelOrigin=null,this.generation=this.maxGeneration=e||1}function ei(e,t){var n={from:D(t.from),to:Wr(t),text:T(e,t.from,t.to)};return si(e,n,t.from.line,t.to.line+1),Xr(e,function(e){return si(e,n,t.from.line,t.to.line+1)},!0),n}function ti(e){for(;e.length;){if(!m(e).ranges)break;e.pop()}}function ni(e,t){return t?(ti(e.done),m(e.done)):e.done.length&&!m(e.done).ranges?m(e.done):e.done.length>1&&!e.done[e.done.length-2].ranges?(e.done.pop(),m(e.done)):void 0}function ri(e,t,n,r){var i=e.history;i.undone.length=0;var o,a,s=+new Date;if((i.lastOp==r||i.lastOrigin==t.origin&&t.origin&&("+"==t.origin.charAt(0)&&e.cm&&i.lastModTime>s-e.cm.options.historyEventDelay||"*"==t.origin.charAt(0)))&&(o=ni(i,i.lastOp==r)))a=m(o.changes),0==B(t.from,t.to)&&0==B(t.from,a.to)?a.to=Wr(t):o.changes.push(ei(e,t));else{var l=m(i.done);for(l&&l.ranges||ai(e.sel,i.done),o={changes:[ei(e,t)],generation:i.generation},i.done.push(o);i.done.length>i.undoDepth;)i.done.shift(),i.done[0].ranges||i.done.shift()}i.done.push(n),i.generation=++i.maxGeneration,i.lastModTime=i.lastSelTime=s,i.lastOp=i.lastSelOp=r,i.lastOrigin=i.lastSelOrigin=t.origin,a||Oe(e,"historyAdded")}function ii(e,t,n,r){var i=t.charAt(0);return"*"==i||"+"==i&&n.ranges.length==r.ranges.length&&n.somethingSelected()==r.somethingSelected()&&new Date-e.history.lastSelTime<=(e.cm?e.cm.options.historyEventDelay:500)}function oi(e,t,n,r){var i=e.history,o=r&&r.origin;n==i.lastSelOp||o&&i.lastSelOrigin==o&&(i.lastModTime==i.lastSelTime&&i.lastOrigin==o||ii(e,o,m(i.done),t))?i.done[i.done.length-1]=t:ai(t,i.done),i.lastSelTime=+new Date,i.lastSelOrigin=o,i.lastSelOp=n,r&&r.clearRedo!==!1&&ti(i.undone)}function ai(e,t){var n=m(t);n&&n.ranges&&n.equals(e)||t.push(e)}function si(e,t,n,r){var i=t["spans_"+e.id],o=0;e.iter(Math.max(e.first,n),Math.min(e.first+e.size,r),function(n){n.markedSpans&&((i||(i=t["spans_"+e.id]={}))[o]=n.markedSpans),++o})}function li(e){if(!e)return null;for(var t,n=0;n<e.length;++n)e[n].marker.explicitlyCleared?t||(t=e.slice(0,n)):t&&t.push(e[n]);return t?t.length?t:null:e}function ci(e,t){var n=t["spans_"+e.id];if(!n)return null;for(var r=[],i=0;i<t.text.length;++i)r.push(li(n[i]));return r}function ui(e,t){var n=ci(e,t),r=Z(e,t);if(!n)return r;if(!r)return n;for(var i=0;i<n.length;++i){var o=n[i],a=r[i];if(o&&a)e:for(var s=0;s<a.length;++s){for(var l=a[s],c=0;c<o.length;++c)if(o[c].marker==l.marker)continue e;o.push(l)}else a&&(n[i]=a)}return n}function fi(e,t,n){for(var r=[],i=0;i<e.length;++i){var o=e[i];if(o.ranges)r.push(n?ws.prototype.deepCopy.call(o):o);else{var a=o.changes,s=[];r.push({changes:s});for(var l=0;l<a.length;++l){var c=a[l],u=void 0;if(s.push({from:c.from,to:c.to,text:c.text}),t)for(var f in c)(u=f.match(/^spans_(\d+)$/))&&d(t,Number(u[1]))>-1&&(m(s)[f]=c[f],delete c[f])}}}return r}function di(e,t,n,r){if(r){var i=e.anchor;if(n){var o=B(t,i)<0;o!=B(n,i)<0?(i=t,t=n):o!=B(t,n)<0&&(t=n)}return new ks(i,t)}return new ks(n||t,t)}function hi(e,t,n,r,i){null==i&&(i=e.cm&&(e.cm.display.shift||e.extend)),bi(e,new ws([di(e.sel.primary(),t,n,i)],0),r)}function pi(e,t,n){for(var r=[],i=e.cm&&(e.cm.display.shift||e.extend),o=0;o<e.sel.ranges.length;o++)r[o]=di(e.sel.ranges[o],t[o],null,i);bi(e,Dr(r,e.sel.primIndex),n)}function mi(e,t,n,r){var i=e.sel.ranges.slice(0);i[t]=n,bi(e,Dr(i,e.sel.primIndex),r)}function gi(e,t,n,r){bi(e,Fr(t,n),r)}function vi(e,t,n){var r={ranges:t.ranges,update:function(t){var n=this;this.ranges=[];for(var r=0;r<t.length;r++)n.ranges[r]=new ks(H(e,t[r].anchor),H(e,t[r].head))},origin:n&&n.origin};return Oe(e,"beforeSelectionChange",e,r),e.cm&&Oe(e.cm,"beforeSelectionChange",e.cm,r),r.ranges!=t.ranges?Dr(r.ranges,r.ranges.length-1):t}function yi(e,t,n){var r=e.history.done,i=m(r);i&&i.ranges?(r[r.length-1]=t,xi(e,t,n)):bi(e,t,n)}function bi(e,t,n){xi(e,t,n),oi(e,e.sel,e.cm?e.cm.curOp.id:NaN,n)}function xi(e,t,n){(Ie(e,"beforeSelectionChange")||e.cm&&Ie(e.cm,"beforeSelectionChange"))&&(t=vi(e,t,n)),wi(e,Ci(e,t,n&&n.bias||(B(t.primary().head,e.sel.primary().head)<0?-1:1),!0)),n&&n.scroll===!1||!e.cm||Vn(e.cm)}function wi(e,t){t.equals(e.sel)||(e.sel=t,e.cm&&(e.cm.curOp.updateInput=e.cm.curOp.selectionChanged=!0,Ne(e.cm)),St(e,"cursorActivity",e))}function ki(e){wi(e,Ci(e,e.sel,null,!1))}function Ci(e,t,n,r){for(var i,o=0;o<t.ranges.length;o++){var a=t.ranges[o],s=t.ranges.length==e.sel.ranges.length&&e.sel.ranges[o],l=_i(e,a.anchor,s&&s.anchor,n,r),c=_i(e,a.head,s&&s.head,n,r);(i||l!=a.anchor||c!=a.head)&&(i||(i=t.ranges.slice(0,o)),i[o]=new ks(l,c))}return i?Dr(i,t.primIndex):t}function Si(e,t,n,r,i){var o=L(e,t.line);if(o.markedSpans)for(var a=0;a<o.markedSpans.length;++a){var s=o.markedSpans[a],l=s.marker;if((null==s.from||(l.inclusiveLeft?s.from<=t.ch:s.from<t.ch))&&(null==s.to||(l.inclusiveRight?s.to>=t.ch:s.to>t.ch))){if(i&&(Oe(l,"beforeCursorEnter"),l.explicitlyCleared)){if(o.markedSpans){--a;continue}break}if(!l.atomic)continue;if(n){var c=l.find(r<0?1:-1),u=void 0;if((r<0?l.inclusiveRight:l.inclusiveLeft)&&(c=Mi(e,c,-r,c&&c.line==t.line?o:null)),c&&c.line==t.line&&(u=B(c,n))&&(r<0?u<0:u>0))return Si(e,c,t,r,i)}var f=l.find(r<0?-1:1);return(r<0?l.inclusiveLeft:l.inclusiveRight)&&(f=Mi(e,f,r,f.line==t.line?o:null)),f?Si(e,f,t,r,i):null}}return t}function _i(e,t,n,r,i){var o=r||1,a=Si(e,t,n,o,i)||!i&&Si(e,t,n,o,!0)||Si(e,t,n,-o,i)||!i&&Si(e,t,n,-o,!0);return a?a:(e.cantEdit=!0,R(e.first,0))}function Mi(e,t,n,r){return n<0&&0==t.ch?t.line>e.first?H(e,R(t.line-1)):null:n>0&&t.ch==(r||L(e,t.line)).text.length?t.line<e.first+e.size-1?R(t.line+1,0):null:new R(t.line,t.ch+n)}function Li(e){e.setSelection(R(e.firstLine(),0),R(e.lastLine()),za)}function Ti(e,t,n){var r={canceled:!1,from:t.from,to:t.to,text:t.text,origin:t.origin,cancel:function(){return r.canceled=!0}};return n&&(r.update=function(t,n,i,o){t&&(r.from=H(e,t)),n&&(r.to=H(e,n)),i&&(r.text=i),void 0!==o&&(r.origin=o)}),Oe(e,"beforeChange",e,r),e.cm&&Oe(e.cm,"beforeChange",e.cm,r),r.canceled?null:{from:r.from,to:r.to,text:r.text,origin:r.origin}}function Ai(e,t,n){if(e.cm){if(!e.cm.curOp)return hr(e.cm,Ai)(e,t,n);if(e.cm.state.suppressEdits)return}if(!(Ie(e,"beforeChange")||e.cm&&Ie(e.cm,"beforeChange"))||(t=Ti(e,t,!0))){var r=ja&&!n&&te(e,t.from,t.to);if(r)for(var i=r.length-1;i>=0;--i)Oi(e,{from:r[i].from,to:r[i].to,text:i?[""]:t.text,origin:t.origin});else Oi(e,t)}}function Oi(e,t){if(1!=t.text.length||""!=t.text[0]||0!=B(t.from,t.to)){var n=Hr(e,t);ri(e,t,n,e.cm?e.cm.curOp.id:NaN),Ii(e,t,n,Z(e,t));var r=[];Xr(e,function(e,n){n||d(r,e.history)!=-1||(Di(e.history,t),r.push(e.history)),Ii(e,t,null,Z(e,t))})}}function Ei(e,t,n){if(!e.cm||!e.cm.state.suppressEdits||n){for(var r,i=e.history,o=e.sel,a="undo"==t?i.done:i.undone,s="undo"==t?i.undone:i.done,l=0;l<a.length&&(r=a[l],n?!r.ranges||r.equals(e.sel):r.ranges);l++);if(l!=a.length){for(i.lastOrigin=i.lastSelOrigin=null;r=a.pop(),r.ranges;){if(ai(r,s),n&&!r.equals(e.sel))return void bi(e,r,{clearRedo:!1});o=r}var c=[];ai(o,s),s.push({changes:c,generation:i.generation}),i.generation=r.generation||++i.maxGeneration;for(var u=Ie(e,"beforeChange")||e.cm&&Ie(e.cm,"beforeChange"),f=r.changes.length-1;f>=0;--f){var h=function(n){var i=r.changes[n];if(i.origin=t,u&&!Ti(e,i,!1))return a.length=0,{};c.push(ei(e,i));var o=n?Hr(e,i):m(a);Ii(e,i,o,ui(e,i)),!n&&e.cm&&e.cm.scrollIntoView({from:i.from,to:Wr(i)});var s=[];Xr(e,function(e,t){t||d(s,e.history)!=-1||(Di(e.history,i),s.push(e.history)),Ii(e,i,null,ui(e,i))})}(f);if(h)return h.v}}}}function Ni(e,t){if(0!=t&&(e.first+=t,e.sel=new ws(g(e.sel.ranges,function(e){return new ks(R(e.anchor.line+t,e.anchor.ch),R(e.head.line+t,e.head.ch))}),e.sel.primIndex),e.cm)){gr(e.cm,e.first,e.first-t,t);for(var n=e.cm.display,r=n.viewFrom;r<n.viewTo;r++)vr(e.cm,r,"gutter")}}function Ii(e,t,n,r){if(e.cm&&!e.cm.curOp)return hr(e.cm,Ii)(e,t,n,r);if(t.to.line<e.first)return void Ni(e,t.text.length-1-(t.to.line-t.from.line));if(!(t.from.line>e.lastLine())){if(t.from.line<e.first){var i=t.text.length-1-(e.first-t.from.line);Ni(e,i),t={from:R(e.first,0),to:R(t.to.line+i,t.to.ch),text:[m(t.text)],origin:t.origin}}var o=e.lastLine();t.to.line>o&&(t={from:t.from,to:R(o,L(e,o).text.length),text:[t.text[0]],origin:t.origin}),t.removed=T(e,t.from,t.to),n||(n=Hr(e,t)),e.cm?Pi(e.cm,t,r):Gr(e,t,r),xi(e,n,za)}}function Pi(e,t,n){var r=e.doc,i=e.display,o=t.from,a=t.to,s=!1,l=o.line;e.options.lineWrapping||(l=E(fe(L(r,o.line))),r.iter(l,a.line+1,function(e){if(e==i.maxLine)return s=!0,!0})),r.sel.contains(t.from,t.to)>-1&&Ne(e),Gr(r,t,n,Cn(e)),e.options.lineWrapping||(r.iter(l,o.line+t.text.length,function(e){var t=be(e);t>i.maxLineLength&&(i.maxLine=e,i.maxLineLength=t,i.maxLineChanged=!0,s=!1)}),s&&(e.curOp.updateMaxLine=!0)),lt(r,o.line),kr(e,400);var c=t.text.length-(a.line-o.line)-1;t.full?gr(e):o.line!=a.line||1!=t.text.length||$r(e.doc,t)?gr(e,o.line,a.line+1,c):vr(e,o.line,"text");var u=Ie(e,"changes"),f=Ie(e,"change");if(f||u){var d={from:o,to:a,text:t.text,removed:t.removed,origin:t.origin};f&&St(e,"change",e,d),u&&(e.curOp.changeObjs||(e.curOp.changeObjs=[])).push(d)}e.display.selForContextMenu=null}function Ri(e,t,n,r,i){if(r||(r=n),B(r,n)<0){var o=r;r=n,n=o}"string"==typeof t&&(t=e.splitLines(t)),Ai(e,{from:n,to:r,text:t,origin:i})}function Bi(e,t,n,r){n<e.line?e.line+=r:t<e.line&&(e.line=t,e.ch=0)}function zi(e,t,n,r){for(var i=0;i<e.length;++i){var o=e[i],a=!0;if(o.ranges){o.copied||(o=e[i]=o.deepCopy(),o.copied=!0);for(var s=0;s<o.ranges.length;s++)Bi(o.ranges[s].anchor,t,n,r),Bi(o.ranges[s].head,t,n,r)}else{for(var l=0;l<o.changes.length;++l){var c=o.changes[l];if(n<c.from.line)c.from=R(c.from.line+r,c.from.ch),c.to=R(c.to.line+r,c.to.ch);else if(t<=c.to.line){a=!1;break}}a||(e.splice(0,i+1),i=0)}}}function Di(e,t){var n=t.from.line,r=t.to.line,i=t.text.length-(r-n)-1;zi(e.done,n,r,i),zi(e.undone,n,r,i)}function Fi(e,t,n,r){var i=t,o=t;return"number"==typeof t?o=L(e,q(e,t)):i=E(t),null==i?null:(r(o,i)&&e.cm&&vr(e.cm,i,n),o)}function Wi(e){var t=this;this.lines=e,this.parent=null;for(var n=0,r=0;r<e.length;++r)e[r].parent=t,n+=e[r].height;this.height=n}function qi(e){var t=this;this.children=e;for(var n=0,r=0,i=0;i<e.length;++i){var o=e[i];n+=o.chunkSize(),r+=o.height,o.parent=t}this.size=n,this.height=r,this.parent=null}function Hi(e,t,n){ye(t)<(e.curOp&&e.curOp.scrollTop||e.doc.scrollTop)&&Un(e,n)}function ji(e,t,n,r){var i=new Cs(e,n,r),o=e.cm;return o&&i.noHScroll&&(o.display.alignWidgets=!0),Fi(e,t,"widget",function(t){var n=t.widgets||(t.widgets=[]);if(null==i.insertAt?n.push(i):n.splice(Math.min(n.length-1,Math.max(0,i.insertAt)),0,i),i.line=t,o&&!ge(e,t)){var r=ye(t)<e.scrollTop;O(t,t.height+Dt(i)),r&&Un(o,i.height),o.curOp.forceUpdate=!0}return!0}),St(o,"lineWidgetAdded",o,i,"number"==typeof t?t:E(t)),i}function Ki(e,t,n,r,o){if(r&&r.shared)return Ui(e,t,n,r,o);if(e.cm&&!e.cm.curOp)return hr(e.cm,Ki)(e,t,n,r,o);var a=new _s(e,o),s=B(t,n);if(r&&u(r,a,!1),s>0||0==s&&a.clearWhenEmpty!==!1)return a;if(a.replacedWith&&(a.collapsed=!0,a.widgetNode=i("span",[a.replacedWith],"CodeMirror-widget"),r.handleMouseEvents||a.widgetNode.setAttribute("cm-ignore-events","true"),r.insertLeft&&(a.widgetNode.insertLeft=!0)),a.collapsed){if(ue(e,t.line,t,n,a)||t.line!=n.line&&ue(e,n.line,t,n,a))throw new Error("Inserting collapsed marker partially overlapping an existing one");V()}a.addToHistory&&ri(e,{from:t,to:n,origin:"markText"},e.sel,NaN);var l,c=t.line,f=e.cm;if(e.iter(c,n.line+1,function(e){f&&a.collapsed&&!f.options.lineWrapping&&fe(e)==f.display.maxLine&&(l=!0),a.collapsed&&c!=t.line&&O(e,0),Y(e,new $(a,c==t.line?t.ch:null,c==n.line?n.ch:null)),++c}),a.collapsed&&e.iter(t.line,n.line+1,function(t){ge(e,t)&&O(t,0)}),a.clearOnEnter&&Ga(a,"beforeCursorEnter",function(){return a.clear()}),a.readOnly&&(U(),(e.history.done.length||e.history.undone.length)&&e.clearHistory()),a.collapsed&&(a.id=++Ss,a.atomic=!0),f){if(l&&(f.curOp.updateMaxLine=!0),a.collapsed)gr(f,t.line,n.line+1);else if(a.className||a.title||a.startStyle||a.endStyle||a.css)for(var d=t.line;d<=n.line;d++)vr(f,d,"text");a.atomic&&ki(f.doc),St(f,"markerAdded",f,a)}return a}function Ui(e,t,n,r,i){r=u(r),r.shared=!1;var o=[Ki(e,t,n,r,i)],a=o[0],s=r.widgetNode;return Xr(e,function(e){s&&(r.widgetNode=s.cloneNode(!0)),o.push(Ki(e,H(e,t),H(e,n),r,i));for(var l=0;l<e.linked.length;++l)if(e.linked[l].isParent)return;a=m(o)}),new Ms(o,a)}function Vi(e){return e.findMarks(R(e.first,0),e.clipPos(R(e.lastLine())),function(e){return e.parent})}function $i(e,t){for(var n=0;n<t.length;n++){var r=t[n],i=r.find(),o=e.clipPos(i.from),a=e.clipPos(i.to);if(B(o,a)){var s=Ki(e,o,a,r.primary,r.primary.type);r.markers.push(s),s.parent=r}}}function Gi(e){for(var t=0;t<e.length;t++)!function(t){var n=e[t],r=[n.primary.doc];Xr(n.primary.doc,function(e){return r.push(e)});for(var i=0;i<n.markers.length;i++){var o=n.markers[i];d(r,o.doc)==-1&&(o.parent=null,n.markers.splice(i--,1))}}(t)}function Xi(e){var t=this;if(Ji(t),!Ee(t,e)&&!Ft(t.display,e)){Re(e),fa&&(As=+new Date);var n=_n(t,e,!0),r=e.dataTransfer.files;if(n&&!t.isReadOnly())if(r&&r.length&&window.FileReader&&window.File)for(var i=r.length,o=Array(i),a=0,s=0;s<i;++s)!function(e,r){if(!t.options.allowDropFileTypes||d(t.options.allowDropFileTypes,e.type)!=-1){var s=new FileReader;s.onload=hr(t,function(){var e=s.result;if(/[\x00-\x08\x0e-\x1f]{2}/.test(e)&&(e=""),o[r]=e,++a==i){n=H(t.doc,n);var l={from:n,to:n,text:t.doc.splitLines(o.join(t.doc.lineSeparator())),origin:"paste"};Ai(t.doc,l),yi(t.doc,Fr(n,Wr(l)))}}),s.readAsText(e)}}(r[s],s);else{if(t.state.draggingText&&t.doc.sel.contains(n)>-1)return t.state.draggingText(e),void setTimeout(function(){return t.display.input.focus()},20);try{var l=e.dataTransfer.getData("Text");if(l){var c;if(t.state.draggingText&&!t.state.draggingText.copy&&(c=t.listSelections()),xi(t.doc,Fr(n,n)),c)for(var u=0;u<c.length;++u)Ri(t.doc,"",c[u].anchor,c[u].head,"drag");t.replaceSelection(l,"around","paste"),t.display.input.focus()}}catch(e){}}}}function Yi(e,t){if(fa&&(!e.state.draggingText||+new Date-As<100))return void De(t);if(!Ee(e,t)&&!Ft(e.display,t)&&(t.dataTransfer.setData("Text",e.getSelection()),t.dataTransfer.effectAllowed="copyMove",t.dataTransfer.setDragImage&&!va)){var n=r("img",null,null,"position: fixed; left: 0; top: 0;");n.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",ga&&(n.width=n.height=1,e.display.wrapper.appendChild(n),n._top=n.offsetTop),t.dataTransfer.setDragImage(n,0,0),ga&&n.parentNode.removeChild(n)}}function Qi(e,t){var i=_n(e,t);if(i){var o=document.createDocumentFragment();An(e,i,o),e.display.dragCursor||(e.display.dragCursor=r("div",null,"CodeMirror-cursors CodeMirror-dragcursors"),e.display.lineSpace.insertBefore(e.display.dragCursor,e.display.cursorDiv)),n(e.display.dragCursor,o)}}function Ji(e){e.display.dragCursor&&(e.display.lineSpace.removeChild(e.display.dragCursor),e.display.dragCursor=null)}function Zi(e){if(document.getElementsByClassName)for(var t=document.getElementsByClassName("CodeMirror"),n=0;n<t.length;n++){var r=t[n].CodeMirror;r&&e(r)}}function eo(){Os||(to(),Os=!0)}function to(){var e;Ga(window,"resize",function(){null==e&&(e=setTimeout(function(){e=null,Zi(no)},100))}),Ga(window,"blur",function(){return Zi(Rn)})}function no(e){var t=e.display;t.lastWrapHeight==t.wrapper.clientHeight&&t.lastWrapWidth==t.wrapper.clientWidth||(t.cachedCharWidth=t.cachedTextHeight=t.cachedPaddingH=null,t.scrollbarsClipped=!1,e.setSize())}function ro(e){var t=e.split(/-(?!$)/);e=t[t.length-1];for(var n,r,i,o,a=0;a<t.length-1;a++){var s=t[a];if(/^(cmd|meta|m)$/i.test(s))o=!0;else if(/^a(lt)?$/i.test(s))n=!0;else if(/^(c|ctrl|control)$/i.test(s))r=!0;else{if(!/^s(hift)?$/i.test(s))throw new Error("Unrecognized modifier name: "+s);i=!0}}return n&&(e="Alt-"+e),r&&(e="Ctrl-"+e),o&&(e="Cmd-"+e),i&&(e="Shift-"+e),e}function io(e){var t={};for(var n in e)if(e.hasOwnProperty(n)){var r=e[n];if(/^(name|fallthrough|(de|at)tach)$/.test(n))continue;if("..."==r){delete e[n];continue}for(var i=g(n.split(" "),ro),o=0;o<i.length;o++){var a=void 0,s=void 0;o==i.length-1?(s=i.join(" "),a=r):(s=i.slice(0,o+1).join(" "),a="...");var l=t[s];if(l){if(l!=a)throw new Error("Inconsistent bindings for "+s)}else t[s]=a}delete e[n]}for(var c in t)e[c]=t[c];return e}function oo(e,t,n,r){t=co(t);var i=t.call?t.call(e,r):t[e];if(i===!1)return"nothing";if("..."===i)return"multi";if(null!=i&&n(i))return"handled";if(t.fallthrough){if("[object Array]"!=Object.prototype.toString.call(t.fallthrough))return oo(e,t.fallthrough,n,r);for(var o=0;o<t.fallthrough.length;o++){var a=oo(e,t.fallthrough[o],n,r);if(a)return a}}}function ao(e){var t="string"==typeof e?e:Es[e.keyCode];return"Ctrl"==t||"Alt"==t||"Shift"==t||"Mod"==t}function so(e,t,n){var r=e;return t.altKey&&"Alt"!=r&&(e="Alt-"+e),(Ta?t.metaKey:t.ctrlKey)&&"Ctrl"!=r&&(e="Ctrl-"+e),(Ta?t.ctrlKey:t.metaKey)&&"Cmd"!=r&&(e="Cmd-"+e),!n&&t.shiftKey&&"Shift"!=r&&(e="Shift-"+e),e}function lo(e,t){if(ga&&34==e.keyCode&&e.char)return!1;var n=Es[e.keyCode];return null!=n&&!e.altGraphKey&&so(n,e,t)}function co(e){return"string"==typeof e?Rs[e]:e}function uo(e,t){for(var n=e.doc.sel.ranges,r=[],i=0;i<n.length;i++){for(var o=t(n[i]);r.length&&B(o.from,m(r).to)<=0;){var a=r.pop();if(B(a.from,o.from)<0){o.from=a.from;break}}r.push(o)}dr(e,function(){for(var t=r.length-1;t>=0;t--)Ri(e.doc,"",r[t].from,r[t].to,"+delete");Vn(e)})}function fo(e,t){var n=L(e.doc,t),r=fe(n);return r!=n&&(t=E(r)),Me(!0,e,r,t,1)}function ho(e,t){var n=L(e.doc,t),r=de(n);return r!=n&&(t=E(r)),Me(!0,e,n,t,-1)}function po(e,t){var n=fo(e,t.line),r=L(e.doc,n.line),i=Ce(r,e.doc.direction);if(!i||0==i[0].level){var o=Math.max(0,r.text.search(/\S/)),a=t.line==n.line&&t.ch<=o&&t.ch;return R(n.line,a?0:o,n.sticky)}return n}function mo(e,t,n){if("string"==typeof t&&!(t=Bs[t]))return!1;e.display.input.ensurePolled();var r=e.display.shift,i=!1;try{e.isReadOnly()&&(e.state.suppressEdits=!0),n&&(e.display.shift=!1),i=t(e)!=Ba}finally{e.display.shift=r,e.state.suppressEdits=!1}return i}function go(e,t,n){for(var r=0;r<e.state.keyMaps.length;r++){var i=oo(t,e.state.keyMaps[r],n,e);if(i)return i}return e.options.extraKeys&&oo(t,e.options.extraKeys,n,e)||oo(t,e.options.keyMap,n,e)}function vo(e,t,n,r){var i=e.state.keySeq;if(i){if(ao(t))return"handled";zs.set(50,function(){e.state.keySeq==i&&(e.state.keySeq=null,e.display.input.reset())}),t=i+" "+t}var o=go(e,t,r);return"multi"==o&&(e.state.keySeq=t),"handled"==o&&St(e,"keyHandled",e,t,n),"handled"!=o&&"multi"!=o||(Re(n),En(e)),i&&!o&&/\'$/.test(t)?(Re(n),!0):!!o}function yo(e,t){var n=lo(t,!0);return!!n&&(t.shiftKey&&!e.state.keySeq?vo(e,"Shift-"+n,t,function(t){return mo(e,t,!0)})||vo(e,n,t,function(t){if("string"==typeof t?/^go[A-Z]/.test(t):t.motion)return mo(e,t)}):vo(e,n,t,function(t){return mo(e,t)}))}function bo(e,t,n){return vo(e,"'"+n+"'",t,function(t){return mo(e,t,!0)})}function xo(e){var t=this;if(t.curOp.focus=a(),!Ee(t,e)){fa&&da<11&&27==e.keyCode&&(e.returnValue=!1);var n=e.keyCode;t.display.shift=16==n||e.shiftKey;var r=yo(t,e);ga&&(Ds=r?n:null,!r&&88==n&&!Ja&&(Ca?e.metaKey:e.ctrlKey)&&t.replaceSelection("",null,"cut")),18!=n||/\bCodeMirror-crosshair\b/.test(t.display.lineDiv.className)||wo(t)}}function wo(e){function t(e){18!=e.keyCode&&e.altKey||(Oa(n,"CodeMirror-crosshair"),Ae(document,"keyup",t),Ae(document,"mouseover",t))}var n=e.display.lineDiv;s(n,"CodeMirror-crosshair"),Ga(document,"keyup",t),Ga(document,"mouseover",t)}function ko(e){16==e.keyCode&&(this.doc.sel.shift=!1),Ee(this,e)}function Co(e){var t=this;if(!(Ft(t.display,e)||Ee(t,e)||e.ctrlKey&&!e.altKey||Ca&&e.metaKey)){var n=e.keyCode,r=e.charCode;if(ga&&n==Ds)return Ds=null,void Re(e);if(!ga||e.which&&!(e.which<10)||!yo(t,e)){var i=String.fromCharCode(null==r?n:r);"\b"!=i&&(bo(t,e,i)||t.display.input.onKeyPress(e))}}}function So(e,t){var n=+new Date;return qs&&qs.compare(n,e,t)?(Ws=qs=null,"triple"):Ws&&Ws.compare(n,e,t)?(qs=new Fs(n,e,t),Ws=null,"double"):(Ws=new Fs(n,e,t),qs=null,"single")}function _o(e){var t=this,n=t.display;if(!(Ee(t,e)||n.activeTouch&&n.input.supportsTouch())){if(n.input.ensurePolled(),n.shift=e.shiftKey,Ft(n,e))return void(ha||(n.scroller.draggable=!1,setTimeout(function(){return n.scroller.draggable=!0},100)));if(!Io(t,e)){var r=_n(t,e),i=We(e),o=r?So(r,i):"single";window.focus(),1==i&&t.state.selectingText&&t.state.selectingText(e),r&&Mo(t,i,r,o,e)||(1==i?r?To(t,r,o,e):Fe(e)==n.scroller&&Re(e):2==i?(r&&hi(t.doc,r),setTimeout(function(){return n.input.focus()},20)):3==i&&(Aa?Po(t,e):In(t)))}}}function Mo(e,t,n,r,i){var o="Click";return"double"==r?o="Double"+o:"triple"==r&&(o="Triple"+o),o=(1==t?"Left":2==t?"Middle":"Right")+o,vo(e,so(o,i),i,function(t){if("string"==typeof t&&(t=Bs[t]),!t)return!1;var r=!1;try{e.isReadOnly()&&(e.state.suppressEdits=!0),r=t(e,n)!=Ba}finally{e.state.suppressEdits=!1}return r})}function Lo(e,t,n){var r=e.getOption("configureMouse"),i=r?r(e,t,n):{};if(null==i.unit){var o=Sa?n.shiftKey&&n.metaKey:n.altKey;i.unit=o?"rectangle":"single"==t?"char":"double"==t?"word":"line"}return(null==i.extend||e.doc.extend)&&(i.extend=e.doc.extend||n.shiftKey),null==i.addNew&&(i.addNew=Ca?n.metaKey:n.ctrlKey),null==i.moveOnDrag&&(i.moveOnDrag=!(Ca?n.altKey:n.ctrlKey)),i}function To(e,t,n,r){fa?setTimeout(c(Nn,e),0):e.curOp.focus=a();var i,o=Lo(e,n,r),s=e.doc.sel;e.options.dragDrop&&Xa&&!e.isReadOnly()&&"single"==n&&(i=s.contains(t))>-1&&(B((i=s.ranges[i]).from(),t)<0||t.xRel>0)&&(B(i.to(),t)>0||t.xRel<0)?Ao(e,r,t,o):Eo(e,r,t,o)}function Ao(e,t,n,r){var i=e.display,o=!1,a=hr(e,function(t){ha&&(i.scroller.draggable=!1),e.state.draggingText=!1,Ae(document,"mouseup",a),Ae(document,"mousemove",s),Ae(i.scroller,"dragstart",l),Ae(i.scroller,"drop",a),o||(Re(t),r.addNew||hi(e.doc,n,null,null,r.extend),ha||fa&&9==da?setTimeout(function(){document.body.focus(),i.input.focus()},20):i.input.focus())}),s=function(e){o=o||Math.abs(t.clientX-e.clientX)+Math.abs(t.clientY-e.clientY)>=10},l=function(){return o=!0};ha&&(i.scroller.draggable=!0),e.state.draggingText=a,a.copy=!r.moveOnDrag,i.scroller.dragDrop&&i.scroller.dragDrop(),Ga(document,"mouseup",a),Ga(document,"mousemove",s),Ga(i.scroller,"dragstart",l),Ga(i.scroller,"drop",a),In(e),setTimeout(function(){return i.input.focus()},20)}function Oo(e,t,n){if("char"==n)return new ks(t,t);if("word"==n)return e.findWordAt(t);if("line"==n)return new ks(R(t.line,0),H(e.doc,R(t.line+1,0)));var r=n(e,t);return new ks(r.from,r.to)}function Eo(e,t,n,r){function i(t){if(0!=B(v,t))if(v=t,"rectangle"==r.unit){for(var i=[],o=e.options.tabSize,a=f(L(c,n.line).text,n.ch,o),s=f(L(c,t.line).text,t.ch,o),l=Math.min(a,s),m=Math.max(a,s),g=Math.min(n.line,t.line),y=Math.min(e.lastLine(),Math.max(n.line,t.line));g<=y;g++){var b=L(c,g).text,x=h(b,l,o);l==m?i.push(new ks(R(g,x),R(g,x))):b.length>x&&i.push(new ks(R(g,x),R(g,h(b,m,o))))}i.length||i.push(new ks(n,n)),bi(c,Dr(p.ranges.slice(0,d).concat(i),d),{origin:"*mouse",scroll:!1}),e.scrollIntoView(t)}else{var w,k=u,C=Oo(e,t,r.unit),S=k.anchor;B(C.anchor,S)>0?(w=C.head,S=W(k.from(),C.anchor)):(w=C.anchor,S=F(k.to(),C.head));var _=p.ranges.slice(0);_[d]=new ks(H(c,S),w),bi(c,Dr(_,d),Da)}}function o(t){var n=++b,s=_n(e,t,!0,"rectangle"==r.unit);if(s)if(0!=B(s,v)){e.curOp.focus=a(),i(s);var u=Dn(l,c);(s.line>=u.to||s.line<u.from)&&setTimeout(hr(e,function(){b==n&&o(t)}),150)}else{var f=t.clientY<y.top?-20:t.clientY>y.bottom?20:0;f&&setTimeout(hr(e,function(){b==n&&(l.scroller.scrollTop+=f,o(t))}),50)}}function s(t){e.state.selectingText=!1,b=1/0,Re(t),l.input.focus(),Ae(document,"mousemove",x),Ae(document,"mouseup",w),c.history.lastSelOrigin=null}var l=e.display,c=e.doc;Re(t);var u,d,p=c.sel,m=p.ranges;if(r.addNew&&!r.extend?(d=c.sel.contains(n),u=d>-1?m[d]:new ks(n,n)):(u=c.sel.primary(),d=c.sel.primIndex),"rectangle"==r.unit)r.addNew||(u=new ks(n,n)),n=_n(e,t,!0,!0),d=-1;else{var g=Oo(e,n,r.unit);u=r.extend?di(u,g.anchor,g.head,r.extend):g}r.addNew?d==-1?(d=m.length,bi(c,Dr(m.concat([u]),d),{scroll:!1,origin:"*mouse"})):m.length>1&&m[d].empty()&&"char"==r.unit&&!r.extend?(bi(c,Dr(m.slice(0,d).concat(m.slice(d+1)),0),{scroll:!1,origin:"*mouse"}),p=c.sel):mi(c,d,u,Da):(d=0,bi(c,new ws([u],0),Da),p=c.sel);var v=n,y=l.wrapper.getBoundingClientRect(),b=0,x=hr(e,function(e){We(e)?o(e):s(e)}),w=hr(e,s);e.state.selectingText=w,Ga(document,"mousemove",x),Ga(document,"mouseup",w)}function No(e,t,n,r){var i,o;try{i=t.clientX,o=t.clientY}catch(e){return!1}if(i>=Math.floor(e.display.gutters.getBoundingClientRect().right))return!1;r&&Re(t);var a=e.display,s=a.lineDiv.getBoundingClientRect();if(o>s.bottom||!Ie(e,n))return ze(t);o-=s.top-a.viewOffset;for(var l=0;l<e.options.gutters.length;++l){var c=a.gutters.childNodes[l];if(c&&c.getBoundingClientRect().right>=i){return Oe(e,n,e,N(e.doc,o),e.options.gutters[l],t),ze(t)}}}function Io(e,t){return No(e,t,"gutterClick",!0)}function Po(e,t){Ft(e.display,t)||Ro(e,t)||Ee(e,t,"contextmenu")||e.display.input.onContextMenu(t)}function Ro(e,t){return!!Ie(e,"gutterContextMenu")&&No(e,t,"gutterContextMenu",!1)}function Bo(e){e.display.wrapper.className=e.display.wrapper.className.replace(/\s*cm-s-\S+/g,"")+e.options.theme.replace(/(^|\s)\s*/g," cm-s-"),an(e)}function zo(e){Ir(e),gr(e),Fn(e)}function Do(e,t,n){if(!t!=!(n&&n!=Hs)){var r=e.display.dragFunctions,i=t?Ga:Ae;i(e.display.scroller,"dragstart",r.start),i(e.display.scroller,"dragenter",r.enter),i(e.display.scroller,"dragover",r.over),i(e.display.scroller,"dragleave",r.leave),i(e.display.scroller,"drop",r.drop)}}function Fo(e){e.options.lineWrapping?(s(e.display.wrapper,"CodeMirror-wrap"),e.display.sizer.style.minWidth="",e.display.sizerWidth=null):(Oa(e.display.wrapper,"CodeMirror-wrap"),xe(e)),Sn(e),gr(e),an(e),setTimeout(function(){return tr(e)},100)}function Wo(e,t){var n=this;if(!(this instanceof Wo))return new Wo(e,t);this.options=t=t?u(t):{},u(js,t,!1),Pr(t);var r=t.value;"string"==typeof r&&(r=new Ts(r,t.mode,null,t.lineSeparator,t.direction)),this.doc=r;var i=new Wo.inputStyles[t.inputStyle](this),o=this.display=new M(e,r,i);o.wrapper.CodeMirror=this,Ir(this),Bo(this),t.lineWrapping&&(this.display.wrapper.className+=" CodeMirror-wrap"),rr(this),this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:!1,delayingBlurEvent:!1,focused:!1,suppressEdits:!1,pasteIncoming:!1,cutIncoming:!1,selectingText:!1,draggingText:!1,highlight:new Na,keySeq:null,specialChars:null},t.autofocus&&!ka&&o.input.focus(),fa&&da<11&&setTimeout(function(){return n.display.input.reset(!0)},20),qo(this),eo(),ir(this),this.curOp.forceUpdate=!0,Yr(this,r),t.autofocus&&!ka||this.hasFocus()?setTimeout(c(Pn,this),20):Rn(this);for(var a in Ks)Ks.hasOwnProperty(a)&&Ks[a](n,t[a],Hs);Wn(this),t.finishInit&&t.finishInit(this);for(var s=0;s<Us.length;++s)Us[s](n);or(this),ha&&t.lineWrapping&&"optimizelegibility"==getComputedStyle(o.lineDiv).textRendering&&(o.lineDiv.style.textRendering="auto")}function qo(e){function t(){i.activeTouch&&(o=setTimeout(function(){return i.activeTouch=null},1e3),a=i.activeTouch,a.end=+new Date)}function n(e){if(1!=e.touches.length)return!1;var t=e.touches[0];return t.radiusX<=1&&t.radiusY<=1}function r(e,t){if(null==t.left)return!0;var n=t.left-e.left,r=t.top-e.top;return n*n+r*r>400}var i=e.display;Ga(i.scroller,"mousedown",hr(e,_o)),fa&&da<11?Ga(i.scroller,"dblclick",hr(e,function(t){if(!Ee(e,t)){var n=_n(e,t);if(n&&!Io(e,t)&&!Ft(e.display,t)){Re(t);var r=e.findWordAt(n);hi(e.doc,r.anchor,r.head)}}})):Ga(i.scroller,"dblclick",function(t){return Ee(e,t)||Re(t)}),Aa||Ga(i.scroller,"contextmenu",function(t){return Po(e,t)});var o,a={end:0};Ga(i.scroller,"touchstart",function(t){if(!Ee(e,t)&&!n(t)){i.input.ensurePolled(),clearTimeout(o);var r=+new Date;i.activeTouch={start:r,moved:!1,prev:r-a.end<=300?a:null},1==t.touches.length&&(i.activeTouch.left=t.touches[0].pageX,i.activeTouch.top=t.touches[0].pageY)}}),Ga(i.scroller,"touchmove",function(){i.activeTouch&&(i.activeTouch.moved=!0)}),Ga(i.scroller,"touchend",function(n){var o=i.activeTouch;if(o&&!Ft(i,n)&&null!=o.left&&!o.moved&&new Date-o.start<300){var a,s=e.coordsChar(i.activeTouch,"page");a=!o.prev||r(o,o.prev)?new ks(s,s):!o.prev.prev||r(o,o.prev.prev)?e.findWordAt(s):new ks(R(s.line,0),H(e.doc,R(s.line+1,0))),e.setSelection(a.anchor,a.head),e.focus(),Re(n)}t()}),Ga(i.scroller,"touchcancel",t),Ga(i.scroller,"scroll",function(){i.scroller.clientHeight&&(Qn(e,i.scroller.scrollTop),Zn(e,i.scroller.scrollLeft,!0),Oe(e,"scroll",e))}),Ga(i.scroller,"mousewheel",function(t){return zr(e,t)}),Ga(i.scroller,"DOMMouseScroll",function(t){return zr(e,t)}),Ga(i.wrapper,"scroll",function(){return i.wrapper.scrollTop=i.wrapper.scrollLeft=0}),i.dragFunctions={enter:function(t){Ee(e,t)||De(t)},over:function(t){Ee(e,t)||(Qi(e,t),De(t))},start:function(t){return Yi(e,t)},drop:hr(e,Xi),leave:function(t){Ee(e,t)||Ji(e)}};var s=i.input.getField();Ga(s,"keyup",function(t){return ko.call(e,t)}),Ga(s,"keydown",hr(e,xo)),Ga(s,"keypress",hr(e,Co)),Ga(s,"focus",function(t){return Pn(e,t)}),Ga(s,"blur",function(t){return Rn(e,t)})}function Ho(e,t,n,r){var i,o=e.doc;null==n&&(n="add"),"smart"==n&&(o.mode.indent?i=et(e,t).state:n="prev");var a=e.options.tabSize,s=L(o,t),l=f(s.text,null,a);s.stateAfter&&(s.stateAfter=null);var c,u=s.text.match(/^\s*/)[0];if(r||/\S/.test(s.text)){if("smart"==n&&((c=o.mode.indent(i,s.text.slice(u.length),s.text))==Ba||c>150)){if(!r)return;n="prev"}}else c=0,n="not";"prev"==n?c=t>o.first?f(L(o,t-1).text,null,a):0:"add"==n?c=l+e.options.indentUnit:"subtract"==n?c=l-e.options.indentUnit:"number"==typeof n&&(c=l+n),c=Math.max(0,c);var d="",h=0;if(e.options.indentWithTabs)for(var m=Math.floor(c/a);m;--m)h+=a,d+="\t";if(h<c&&(d+=p(c-h)),
4
- d!=u)return Ri(o,d,R(t,0),R(t,u.length),"+input"),s.stateAfter=null,!0;for(var g=0;g<o.sel.ranges.length;g++){var v=o.sel.ranges[g];if(v.head.line==t&&v.head.ch<u.length){var y=R(t,u.length);mi(o,g,new ks(y,y));break}}}function jo(e){Vs=e}function Ko(e,t,n,r,i){var o=e.doc;e.display.shift=!1,r||(r=o.sel);var a=e.state.pasteIncoming||"paste"==i,s=Ya(t),l=null;if(a&&r.ranges.length>1)if(Vs&&Vs.text.join("\n")==t){if(r.ranges.length%Vs.text.length==0){l=[];for(var c=0;c<Vs.text.length;c++)l.push(o.splitLines(Vs.text[c]))}}else s.length==r.ranges.length&&e.options.pasteLinesPerSelection&&(l=g(s,function(e){return[e]}));for(var u,f=r.ranges.length-1;f>=0;f--){var d=r.ranges[f],h=d.from(),p=d.to();d.empty()&&(n&&n>0?h=R(h.line,h.ch-n):e.state.overwrite&&!a?p=R(p.line,Math.min(L(o,p.line).text.length,p.ch+m(s).length)):Vs&&Vs.lineWise&&Vs.text.join("\n")==t&&(h=p=R(h.line,0))),u=e.curOp.updateInput;var v={from:h,to:p,text:l?l[f%l.length]:s,origin:i||(a?"paste":e.state.cutIncoming?"cut":"+input")};Ai(e.doc,v),St(e,"inputRead",e,v)}t&&!a&&Vo(e,t),Vn(e),e.curOp.updateInput=u,e.curOp.typing=!0,e.state.pasteIncoming=e.state.cutIncoming=!1}function Uo(e,t){var n=e.clipboardData&&e.clipboardData.getData("Text");if(n)return e.preventDefault(),t.isReadOnly()||t.options.disableInput||dr(t,function(){return Ko(t,n,0,null,"paste")}),!0}function Vo(e,t){if(e.options.electricChars&&e.options.smartIndent)for(var n=e.doc.sel,r=n.ranges.length-1;r>=0;r--){var i=n.ranges[r];if(!(i.head.ch>100||r&&n.ranges[r-1].head.line==i.head.line)){var o=e.getModeAt(i.head),a=!1;if(o.electricChars){for(var s=0;s<o.electricChars.length;s++)if(t.indexOf(o.electricChars.charAt(s))>-1){a=Ho(e,i.head.line,"smart");break}}else o.electricInput&&o.electricInput.test(L(e.doc,i.head.line).text.slice(0,i.head.ch))&&(a=Ho(e,i.head.line,"smart"));a&&St(e,"electricInput",e,i.head.line)}}}function $o(e){for(var t=[],n=[],r=0;r<e.doc.sel.ranges.length;r++){var i=e.doc.sel.ranges[r].head.line,o={anchor:R(i,0),head:R(i+1,0)};n.push(o),t.push(e.getRange(o.anchor,o.head))}return{text:t,ranges:n}}function Go(e,t){e.setAttribute("autocorrect","off"),e.setAttribute("autocapitalize","off"),e.setAttribute("spellcheck",!!t)}function Xo(){var e=r("textarea",null,null,"position: absolute; bottom: -1em; padding: 0; width: 1px; height: 1em; outline: none"),t=r("div",[e],null,"overflow: hidden; position: relative; width: 3px; height: 0px;");return ha?e.style.width="1000px":e.setAttribute("wrap","off"),xa&&(e.style.border="1px solid black"),Go(e),t}function Yo(e,t,n,r,i){function o(){var r=t.line+n;return!(r<e.first||r>=e.first+e.size)&&(t=new R(r,t.ch,t.sticky),c=L(e,r))}function a(r){var a;if(null==(a=i?Le(e.cm,c,t,n):_e(c,t,n))){if(r||!o())return!1;t=Me(i,e.cm,c,t.line,n)}else t=a;return!0}var s=t,l=n,c=L(e,t.line);if("char"==r)a();else if("column"==r)a(!0);else if("word"==r||"group"==r)for(var u=null,f="group"==r,d=e.cm&&e.cm.getHelper(t,"wordChars"),h=!0;!(n<0)||a(!h);h=!1){var p=c.text.charAt(t.ch)||"\n",m=w(p,d)?"w":f&&"\n"==p?"n":!f||/\s/.test(p)?null:"p";if(!f||h||m||(m="s"),u&&u!=m){n<0&&(n=1,a(),t.sticky="after");break}if(m&&(u=m),n>0&&!a(!h))break}var g=_i(e,t,s,l,!0);return z(s,g)&&(g.hitSide=!0),g}function Qo(e,t,n,r){var i,o=e.doc,a=t.left;if("page"==r){var s=Math.min(e.display.wrapper.clientHeight,window.innerHeight||document.documentElement.clientHeight),l=Math.max(s-.5*bn(e.display),3);i=(n>0?t.bottom:t.top)+n*l}else"line"==r&&(i=n>0?t.bottom+3:t.top-3);for(var c;c=mn(e,a,i),c.outside;){if(n<0?i<=0:i>=o.height){c.hitSide=!0;break}i+=5*n}return c}function Jo(e,t){var n=Yt(e,t.line);if(!n||n.hidden)return null;var r=L(e.doc,t.line),i=$t(n,r,t.line),o=Ce(r,e.doc.direction),a="left";if(o){a=ke(o,t.ch)%2?"right":"left"}var s=Zt(i.map,t.ch,a);return s.offset="right"==s.collapse?s.end:s.start,s}function Zo(e){for(var t=e;t;t=t.parentNode)if(/CodeMirror-gutter-wrapper/.test(t.className))return!0;return!1}function ea(e,t){return t&&(e.bad=!0),e}function ta(e,t,n,r,i){function o(e){return function(t){return t.id==e}}function a(){u&&(c+=f,u=!1)}function s(e){e&&(a(),c+=e)}function l(t){if(1==t.nodeType){var n=t.getAttribute("cm-text");if(null!=n)return void s(n||t.textContent.replace(/\u200b/g,""));var c,d=t.getAttribute("cm-marker");if(d){var h=e.findMarks(R(r,0),R(i+1,0),o(+d));return void(h.length&&(c=h[0].find(0))&&s(T(e.doc,c.from,c.to).join(f)))}if("false"==t.getAttribute("contenteditable"))return;var p=/^(pre|div|p)$/i.test(t.nodeName);p&&a();for(var m=0;m<t.childNodes.length;m++)l(t.childNodes[m]);p&&(u=!0)}else 3==t.nodeType&&s(t.nodeValue)}for(var c="",u=!1,f=e.doc.lineSeparator();l(t),t!=n;)t=t.nextSibling;return c}function na(e,t,n){var r;if(t==e.display.lineDiv){if(!(r=e.display.lineDiv.childNodes[n]))return ea(e.clipPos(R(e.display.viewTo-1)),!0);t=null,n=0}else for(r=t;;r=r.parentNode){if(!r||r==e.display.lineDiv)return null;if(r.parentNode&&r.parentNode==e.display.lineDiv)break}for(var i=0;i<e.display.view.length;i++){var o=e.display.view[i];if(o.node==r)return ra(o,t,n)}}function ra(e,t,n){function r(t,n,r){for(var i=-1;i<(f?f.length:0);i++)for(var o=i<0?u.map:f[i],a=0;a<o.length;a+=3){var s=o[a+2];if(s==t||s==n){var l=E(i<0?e.line:e.rest[i]),c=o[a]+r;return(r<0||s!=t)&&(c=o[a+(r?1:0)]),R(l,c)}}}var i=e.text.firstChild,a=!1;if(!t||!o(i,t))return ea(R(E(e.line),0),!0);if(t==i&&(a=!0,t=i.childNodes[n],n=0,!t)){var s=e.rest?m(e.rest):e.line;return ea(R(E(s),s.text.length),a)}var l=3==t.nodeType?t:null,c=t;for(l||1!=t.childNodes.length||3!=t.firstChild.nodeType||(l=t.firstChild,n&&(n=l.nodeValue.length));c.parentNode!=i;)c=c.parentNode;var u=e.measure,f=u.maps,d=r(l,c,n);if(d)return ea(d,a);for(var h=c.nextSibling,p=l?l.nodeValue.length-n:0;h;h=h.nextSibling){if(d=r(h,h.firstChild,0))return ea(R(d.line,d.ch-p),a);p+=h.textContent.length}for(var g=c.previousSibling,v=n;g;g=g.previousSibling){if(d=r(g,g.firstChild,-1))return ea(R(d.line,d.ch+v),a);v+=g.textContent.length}}function ia(e,t){function n(){e.value=l.getValue()}if(t=t?u(t):{},t.value=e.value,!t.tabindex&&e.tabIndex&&(t.tabindex=e.tabIndex),!t.placeholder&&e.placeholder&&(t.placeholder=e.placeholder),null==t.autofocus){var r=a();t.autofocus=r==e||null!=e.getAttribute("autofocus")&&r==document.body}var i;if(e.form&&(Ga(e.form,"submit",n),!t.leaveSubmitMethodAlone)){var o=e.form;i=o.submit;try{var s=o.submit=function(){n(),o.submit=i,o.submit(),o.submit=s}}catch(e){}}t.finishInit=function(t){t.save=n,t.getTextArea=function(){return e},t.toTextArea=function(){t.toTextArea=isNaN,n(),e.parentNode.removeChild(t.getWrapperElement()),e.style.display="",e.form&&(Ae(e.form,"submit",n),"function"==typeof e.form.submit&&(e.form.submit=i))}},e.style.display="none";var l=Wo(function(t){return e.parentNode.insertBefore(t,e.nextSibling)},t);return l}var oa=navigator.userAgent,aa=navigator.platform,sa=/gecko\/\d/i.test(oa),la=/MSIE \d/.test(oa),ca=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(oa),ua=/Edge\/(\d+)/.exec(oa),fa=la||ca||ua,da=fa&&(la?document.documentMode||6:+(ua||ca)[1]),ha=!ua&&/WebKit\//.test(oa),pa=ha&&/Qt\/\d+\.\d+/.test(oa),ma=!ua&&/Chrome\//.test(oa),ga=/Opera\//.test(oa),va=/Apple Computer/.test(navigator.vendor),ya=/Mac OS X 1\d\D([8-9]|\d\d)\D/.test(oa),ba=/PhantomJS/.test(oa),xa=!ua&&/AppleWebKit/.test(oa)&&/Mobile\/\w+/.test(oa),wa=/Android/.test(oa),ka=xa||wa||/webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(oa),Ca=xa||/Mac/.test(aa),Sa=/\bCrOS\b/.test(oa),_a=/win/i.test(aa),Ma=ga&&oa.match(/Version\/(\d*\.\d*)/);Ma&&(Ma=Number(Ma[1])),Ma&&Ma>=15&&(ga=!1,ha=!0);var La,Ta=Ca&&(pa||ga&&(null==Ma||Ma<12.11)),Aa=sa||fa&&da>=9,Oa=function(t,n){var r=t.className,i=e(n).exec(r);if(i){var o=r.slice(i.index+i[0].length);t.className=r.slice(0,i.index)+(o?i[1]+o:"")}};La=document.createRange?function(e,t,n,r){var i=document.createRange();return i.setEnd(r||e,n),i.setStart(e,t),i}:function(e,t,n){var r=document.body.createTextRange();try{r.moveToElementText(e.parentNode)}catch(e){return r}return r.collapse(!0),r.moveEnd("character",n),r.moveStart("character",t),r};var Ea=function(e){e.select()};xa?Ea=function(e){e.selectionStart=0,e.selectionEnd=e.value.length}:fa&&(Ea=function(e){try{e.select()}catch(e){}});var Na=function(){this.id=null};Na.prototype.set=function(e,t){clearTimeout(this.id),this.id=setTimeout(t,e)};var Ia,Pa,Ra=30,Ba={toString:function(){return"CodeMirror.Pass"}},za={scroll:!1},Da={origin:"*mouse"},Fa={origin:"+move"},Wa=[""],qa=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/,Ha=/[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/,ja=!1,Ka=!1,Ua=null,Va=function(){function e(e){return e<=247?n.charAt(e):1424<=e&&e<=1524?"R":1536<=e&&e<=1785?r.charAt(e-1536):1774<=e&&e<=2220?"r":8192<=e&&e<=8203?"w":8204==e?"b":"L"}function t(e,t,n){this.level=e,this.from=t,this.to=n}var n="bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN",r="nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111",i=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,o=/[stwN]/,a=/[LRr]/,s=/[Lb1n]/,l=/[1n]/;return function(n,r){var c="ltr"==r?"L":"R";if(0==n.length||"ltr"==r&&!i.test(n))return!1;for(var u=n.length,f=[],d=0;d<u;++d)f.push(e(n.charCodeAt(d)));for(var h=0,p=c;h<u;++h){var g=f[h];"m"==g?f[h]=p:p=g}for(var v=0,y=c;v<u;++v){var b=f[v];"1"==b&&"r"==y?f[v]="n":a.test(b)&&(y=b,"r"==b&&(f[v]="R"))}for(var x=1,w=f[0];x<u-1;++x){var k=f[x];"+"==k&&"1"==w&&"1"==f[x+1]?f[x]="1":","!=k||w!=f[x+1]||"1"!=w&&"n"!=w||(f[x]=w),w=k}for(var C=0;C<u;++C){var S=f[C];if(","==S)f[C]="N";else if("%"==S){var _=void 0;for(_=C+1;_<u&&"%"==f[_];++_);for(var M=C&&"!"==f[C-1]||_<u&&"1"==f[_]?"1":"N",L=C;L<_;++L)f[L]=M;C=_-1}}for(var T=0,A=c;T<u;++T){var O=f[T];"L"==A&&"1"==O?f[T]="L":a.test(O)&&(A=O)}for(var E=0;E<u;++E)if(o.test(f[E])){var N=void 0;for(N=E+1;N<u&&o.test(f[N]);++N);for(var I="L"==(E?f[E-1]:c),P="L"==(N<u?f[N]:c),R=I==P?I?"L":"R":c,B=E;B<N;++B)f[B]=R;E=N-1}for(var z,D=[],F=0;F<u;)if(s.test(f[F])){var W=F;for(++F;F<u&&s.test(f[F]);++F);D.push(new t(0,W,F))}else{var q=F,H=D.length;for(++F;F<u&&"L"!=f[F];++F);for(var j=q;j<F;)if(l.test(f[j])){q<j&&D.splice(H,0,new t(1,q,j));var K=j;for(++j;j<F&&l.test(f[j]);++j);D.splice(H,0,new t(2,K,j)),q=j}else++j;q<F&&D.splice(H,0,new t(1,q,F))}return 1==D[0].level&&(z=n.match(/^\s+/))&&(D[0].from=z[0].length,D.unshift(new t(0,0,z[0].length))),1==m(D).level&&(z=n.match(/\s+$/))&&(m(D).to-=z[0].length,D.push(new t(0,u-z[0].length,u))),"rtl"==r?D.reverse():D}}(),$a=[],Ga=function(e,t,n){if(e.addEventListener)e.addEventListener(t,n,!1);else if(e.attachEvent)e.attachEvent("on"+t,n);else{var r=e._handlers||(e._handlers={});r[t]=(r[t]||$a).concat(n)}},Xa=function(){if(fa&&da<9)return!1;var e=r("div");return"draggable"in e||"dragDrop"in e}(),Ya=3!="\n\nb".split(/\n/).length?function(e){for(var t=0,n=[],r=e.length;t<=r;){var i=e.indexOf("\n",t);i==-1&&(i=e.length);var o=e.slice(t,"\r"==e.charAt(i-1)?i-1:i),a=o.indexOf("\r");a!=-1?(n.push(o.slice(0,a)),t+=a+1):(n.push(o),t=i+1)}return n}:function(e){return e.split(/\r\n?|\n/)},Qa=window.getSelection?function(e){try{return e.selectionStart!=e.selectionEnd}catch(e){return!1}}:function(e){var t;try{t=e.ownerDocument.selection.createRange()}catch(e){}return!(!t||t.parentElement()!=e)&&0!=t.compareEndPoints("StartToEnd",t)},Ja=function(){var e=r("div");return"oncopy"in e||(e.setAttribute("oncopy","return;"),"function"==typeof e.oncopy)}(),Za=null,es={},ts={},ns={},rs=function(e,t,n){this.pos=this.start=0,this.string=e,this.tabSize=t||8,this.lastColumnPos=this.lastColumnValue=0,this.lineStart=0,this.lineOracle=n};rs.prototype.eol=function(){return this.pos>=this.string.length},rs.prototype.sol=function(){return this.pos==this.lineStart},rs.prototype.peek=function(){return this.string.charAt(this.pos)||void 0},rs.prototype.next=function(){if(this.pos<this.string.length)return this.string.charAt(this.pos++)},rs.prototype.eat=function(e){var t=this.string.charAt(this.pos);if("string"==typeof e?t==e:t&&(e.test?e.test(t):e(t)))return++this.pos,t},rs.prototype.eatWhile=function(e){for(var t=this.pos;this.eat(e););return this.pos>t},rs.prototype.eatSpace=function(){for(var e=this,t=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++e.pos;return this.pos>t},rs.prototype.skipToEnd=function(){this.pos=this.string.length},rs.prototype.skipTo=function(e){var t=this.string.indexOf(e,this.pos);if(t>-1)return this.pos=t,!0},rs.prototype.backUp=function(e){this.pos-=e},rs.prototype.column=function(){return this.lastColumnPos<this.start&&(this.lastColumnValue=f(this.string,this.start,this.tabSize,this.lastColumnPos,this.lastColumnValue),this.lastColumnPos=this.start),this.lastColumnValue-(this.lineStart?f(this.string,this.lineStart,this.tabSize):0)},rs.prototype.indentation=function(){return f(this.string,null,this.tabSize)-(this.lineStart?f(this.string,this.lineStart,this.tabSize):0)},rs.prototype.match=function(e,t,n){if("string"!=typeof e){var r=this.string.slice(this.pos).match(e);return r&&r.index>0?null:(r&&t!==!1&&(this.pos+=r[0].length),r)}var i=function(e){return n?e.toLowerCase():e};if(i(this.string.substr(this.pos,e.length))==i(e))return t!==!1&&(this.pos+=e.length),!0},rs.prototype.current=function(){return this.string.slice(this.start,this.pos)},rs.prototype.hideFirstChars=function(e,t){this.lineStart+=e;try{return t()}finally{this.lineStart-=e}},rs.prototype.lookAhead=function(e){var t=this.lineOracle;return t&&t.lookAhead(e)};var is=function(e,t){this.state=e,this.lookAhead=t},os=function(e,t,n,r){this.state=t,this.doc=e,this.line=n,this.maxLookAhead=r||0};os.prototype.lookAhead=function(e){var t=this.doc.getLine(this.line+e);return null!=t&&e>this.maxLookAhead&&(this.maxLookAhead=e),t},os.prototype.nextLine=function(){this.line++,this.maxLookAhead>0&&this.maxLookAhead--},os.fromSaved=function(e,t,n){return t instanceof is?new os(e,Xe(e.mode,t.state),n,t.lookAhead):new os(e,Xe(e.mode,t),n)},os.prototype.save=function(e){var t=e!==!1?Xe(this.doc.mode,this.state):this.state;return this.maxLookAhead>0?new is(t,this.maxLookAhead):t};var as=function(e,t,n){this.start=e.start,this.end=e.pos,this.string=e.current(),this.type=t||null,this.state=n},ss=function(e,t,n){this.text=e,re(this,t),this.height=n?n(this):1};ss.prototype.lineNo=function(){return E(this)},Pe(ss);var ls,cs={},us={},fs=null,ds=null,hs={left:0,right:0,top:0,bottom:0},ps=function(e,t,n){this.cm=n;var i=this.vert=r("div",[r("div",null,null,"min-width: 1px")],"CodeMirror-vscrollbar"),o=this.horiz=r("div",[r("div",null,null,"height: 100%; min-height: 1px")],"CodeMirror-hscrollbar");e(i),e(o),Ga(i,"scroll",function(){i.clientHeight&&t(i.scrollTop,"vertical")}),Ga(o,"scroll",function(){o.clientWidth&&t(o.scrollLeft,"horizontal")}),this.checkedZeroWidth=!1,fa&&da<8&&(this.horiz.style.minHeight=this.vert.style.minWidth="18px")};ps.prototype.update=function(e){var t=e.scrollWidth>e.clientWidth+1,n=e.scrollHeight>e.clientHeight+1,r=e.nativeBarWidth;if(n){this.vert.style.display="block",this.vert.style.bottom=t?r+"px":"0";var i=e.viewHeight-(t?r:0);this.vert.firstChild.style.height=Math.max(0,e.scrollHeight-e.clientHeight+i)+"px"}else this.vert.style.display="",this.vert.firstChild.style.height="0";if(t){this.horiz.style.display="block",this.horiz.style.right=n?r+"px":"0",this.horiz.style.left=e.barLeft+"px";var o=e.viewWidth-e.barLeft-(n?r:0);this.horiz.firstChild.style.width=Math.max(0,e.scrollWidth-e.clientWidth+o)+"px"}else this.horiz.style.display="",this.horiz.firstChild.style.width="0";return!this.checkedZeroWidth&&e.clientHeight>0&&(0==r&&this.zeroWidthHack(),this.checkedZeroWidth=!0),{right:n?r:0,bottom:t?r:0}},ps.prototype.setScrollLeft=function(e){this.horiz.scrollLeft!=e&&(this.horiz.scrollLeft=e),this.disableHoriz&&this.enableZeroWidthBar(this.horiz,this.disableHoriz,"horiz")},ps.prototype.setScrollTop=function(e){this.vert.scrollTop!=e&&(this.vert.scrollTop=e),this.disableVert&&this.enableZeroWidthBar(this.vert,this.disableVert,"vert")},ps.prototype.zeroWidthHack=function(){var e=Ca&&!ya?"12px":"18px";this.horiz.style.height=this.vert.style.width=e,this.horiz.style.pointerEvents=this.vert.style.pointerEvents="none",this.disableHoriz=new Na,this.disableVert=new Na},ps.prototype.enableZeroWidthBar=function(e,t,n){function r(){var i=e.getBoundingClientRect();("vert"==n?document.elementFromPoint(i.right-1,(i.top+i.bottom)/2):document.elementFromPoint((i.right+i.left)/2,i.bottom-1))!=e?e.style.pointerEvents="none":t.set(1e3,r)}e.style.pointerEvents="auto",t.set(1e3,r)},ps.prototype.clear=function(){var e=this.horiz.parentNode;e.removeChild(this.horiz),e.removeChild(this.vert)};var ms=function(){};ms.prototype.update=function(){return{bottom:0,right:0}},ms.prototype.setScrollLeft=function(){},ms.prototype.setScrollTop=function(){},ms.prototype.clear=function(){};var gs={native:ps,null:ms},vs=0,ys=function(e,t,n){var r=e.display;this.viewport=t,this.visible=Dn(r,e.doc,t),this.editorIsHidden=!r.wrapper.offsetWidth,this.wrapperHeight=r.wrapper.clientHeight,this.wrapperWidth=r.wrapper.clientWidth,this.oldDisplayWidth=Kt(e),this.force=n,this.dims=wn(e),this.events=[]};ys.prototype.signal=function(e,t){Ie(e,t)&&this.events.push(arguments)},ys.prototype.finish=function(){for(var e=this,t=0;t<this.events.length;t++)Oe.apply(null,e.events[t])};var bs=0,xs=null;fa?xs=-.53:sa?xs=15:ma?xs=-.7:va&&(xs=-1/3);var ws=function(e,t){this.ranges=e,this.primIndex=t};ws.prototype.primary=function(){return this.ranges[this.primIndex]},ws.prototype.equals=function(e){var t=this;if(e==this)return!0;if(e.primIndex!=this.primIndex||e.ranges.length!=this.ranges.length)return!1;for(var n=0;n<this.ranges.length;n++){var r=t.ranges[n],i=e.ranges[n];if(!z(r.anchor,i.anchor)||!z(r.head,i.head))return!1}return!0},ws.prototype.deepCopy=function(){for(var e=this,t=[],n=0;n<this.ranges.length;n++)t[n]=new ks(D(e.ranges[n].anchor),D(e.ranges[n].head));return new ws(t,this.primIndex)},ws.prototype.somethingSelected=function(){for(var e=this,t=0;t<this.ranges.length;t++)if(!e.ranges[t].empty())return!0;return!1},ws.prototype.contains=function(e,t){var n=this;t||(t=e);for(var r=0;r<this.ranges.length;r++){var i=n.ranges[r];if(B(t,i.from())>=0&&B(e,i.to())<=0)return r}return-1};var ks=function(e,t){this.anchor=e,this.head=t};ks.prototype.from=function(){return W(this.anchor,this.head)},ks.prototype.to=function(){return F(this.anchor,this.head)},ks.prototype.empty=function(){return this.head.line==this.anchor.line&&this.head.ch==this.anchor.ch},Wi.prototype={chunkSize:function(){return this.lines.length},removeInner:function(e,t){for(var n=this,r=e,i=e+t;r<i;++r){var o=n.lines[r];n.height-=o.height,ut(o),St(o,"delete")}this.lines.splice(e,t)},collapse:function(e){e.push.apply(e,this.lines)},insertInner:function(e,t,n){var r=this;this.height+=n,this.lines=this.lines.slice(0,e).concat(t).concat(this.lines.slice(e));for(var i=0;i<t.length;++i)t[i].parent=r},iterN:function(e,t,n){for(var r=this,i=e+t;e<i;++e)if(n(r.lines[e]))return!0}},qi.prototype={chunkSize:function(){return this.size},removeInner:function(e,t){var n=this;this.size-=t;for(var r=0;r<this.children.length;++r){var i=n.children[r],o=i.chunkSize();if(e<o){var a=Math.min(t,o-e),s=i.height;if(i.removeInner(e,a),n.height-=s-i.height,o==a&&(n.children.splice(r--,1),i.parent=null),0==(t-=a))break;e=0}else e-=o}if(this.size-t<25&&(this.children.length>1||!(this.children[0]instanceof Wi))){var l=[];this.collapse(l),this.children=[new Wi(l)],this.children[0].parent=this}},collapse:function(e){for(var t=this,n=0;n<this.children.length;++n)t.children[n].collapse(e)},insertInner:function(e,t,n){var r=this;this.size+=t.length,this.height+=n;for(var i=0;i<this.children.length;++i){var o=r.children[i],a=o.chunkSize();if(e<=a){if(o.insertInner(e,t,n),o.lines&&o.lines.length>50){for(var s=o.lines.length%25+25,l=s;l<o.lines.length;){var c=new Wi(o.lines.slice(l,l+=25));o.height-=c.height,r.children.splice(++i,0,c),c.parent=r}o.lines=o.lines.slice(0,s),r.maybeSpill()}break}e-=a}},maybeSpill:function(){if(!(this.children.length<=10)){var e=this;do{var t=e.children.splice(e.children.length-5,5),n=new qi(t);if(e.parent){e.size-=n.size,e.height-=n.height;var r=d(e.parent.children,e);e.parent.children.splice(r+1,0,n)}else{var i=new qi(e.children);i.parent=e,e.children=[i,n],e=i}n.parent=e.parent}while(e.children.length>10);e.parent.maybeSpill()}},iterN:function(e,t,n){for(var r=this,i=0;i<this.children.length;++i){var o=r.children[i],a=o.chunkSize();if(e<a){var s=Math.min(t,a-e);if(o.iterN(e,s,n))return!0;if(0==(t-=s))break;e=0}else e-=a}}};var Cs=function(e,t,n){var r=this;if(n)for(var i in n)n.hasOwnProperty(i)&&(r[i]=n[i]);this.doc=e,this.node=t};Cs.prototype.clear=function(){var e=this,t=this.doc.cm,n=this.line.widgets,r=this.line,i=E(r);if(null!=i&&n){for(var o=0;o<n.length;++o)n[o]==e&&n.splice(o--,1);n.length||(r.widgets=null);var a=Dt(this);O(r,Math.max(0,r.height-a)),t&&(dr(t,function(){Hi(t,r,-a),vr(t,i,"widget")}),St(t,"lineWidgetCleared",t,this,i))}},Cs.prototype.changed=function(){var e=this,t=this.height,n=this.doc.cm,r=this.line;this.height=null;var i=Dt(this)-t;i&&(O(r,r.height+i),n&&dr(n,function(){n.curOp.forceUpdate=!0,Hi(n,r,i),St(n,"lineWidgetChanged",n,e,E(r))}))},Pe(Cs);var Ss=0,_s=function(e,t){this.lines=[],this.type=t,this.doc=e,this.id=++Ss};_s.prototype.clear=function(){var e=this;if(!this.explicitlyCleared){var t=this.doc.cm,n=t&&!t.curOp;if(n&&ir(t),Ie(this,"clear")){var r=this.find();r&&St(this,"clear",r.from,r.to)}for(var i=null,o=null,a=0;a<this.lines.length;++a){var s=e.lines[a],l=G(s.markedSpans,e);t&&!e.collapsed?vr(t,E(s),"text"):t&&(null!=l.to&&(o=E(s)),null!=l.from&&(i=E(s))),s.markedSpans=X(s.markedSpans,l),null==l.from&&e.collapsed&&!ge(e.doc,s)&&t&&O(s,bn(t.display))}if(t&&this.collapsed&&!t.options.lineWrapping)for(var c=0;c<this.lines.length;++c){var u=fe(e.lines[c]),f=be(u);f>t.display.maxLineLength&&(t.display.maxLine=u,t.display.maxLineLength=f,t.display.maxLineChanged=!0)}null!=i&&t&&this.collapsed&&gr(t,i,o+1),this.lines.length=0,this.explicitlyCleared=!0,this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,t&&ki(t.doc)),t&&St(t,"markerCleared",t,this,i,o),n&&or(t),this.parent&&this.parent.clear()}},_s.prototype.find=function(e,t){var n=this;null==e&&"bookmark"==this.type&&(e=1);for(var r,i,o=0;o<this.lines.length;++o){var a=n.lines[o],s=G(a.markedSpans,n);if(null!=s.from&&(r=R(t?a:E(a),s.from),e==-1))return r;if(null!=s.to&&(i=R(t?a:E(a),s.to),1==e))return i}return r&&{from:r,to:i}},_s.prototype.changed=function(){var e=this,t=this.find(-1,!0),n=this,r=this.doc.cm;t&&r&&dr(r,function(){var i=t.line,o=E(t.line),a=Yt(r,o);if(a&&(rn(a),r.curOp.selectionChanged=r.curOp.forceUpdate=!0),r.curOp.updateMaxLine=!0,!ge(n.doc,i)&&null!=n.height){var s=n.height;n.height=null;var l=Dt(n)-s;l&&O(i,i.height+l)}St(r,"markerChanged",r,e)})},_s.prototype.attachLine=function(e){if(!this.lines.length&&this.doc.cm){var t=this.doc.cm.curOp;t.maybeHiddenMarkers&&d(t.maybeHiddenMarkers,this)!=-1||(t.maybeUnhiddenMarkers||(t.maybeUnhiddenMarkers=[])).push(this)}this.lines.push(e)},_s.prototype.detachLine=function(e){if(this.lines.splice(d(this.lines,e),1),!this.lines.length&&this.doc.cm){var t=this.doc.cm.curOp;(t.maybeHiddenMarkers||(t.maybeHiddenMarkers=[])).push(this)}},Pe(_s);var Ms=function(e,t){var n=this;this.markers=e,this.primary=t;for(var r=0;r<e.length;++r)e[r].parent=n};Ms.prototype.clear=function(){var e=this;if(!this.explicitlyCleared){this.explicitlyCleared=!0;for(var t=0;t<this.markers.length;++t)e.markers[t].clear();St(this,"clear")}},Ms.prototype.find=function(e,t){return this.primary.find(e,t)},Pe(Ms);var Ls=0,Ts=function(e,t,n,r,i){if(!(this instanceof Ts))return new Ts(e,t,n,r,i);null==n&&(n=0),qi.call(this,[new Wi([new ss("",null)])]),this.first=n,this.scrollTop=this.scrollLeft=0,this.cantEdit=!1,this.cleanGeneration=1,this.modeFrontier=this.highlightFrontier=n;var o=R(n,0);this.sel=Fr(o),this.history=new Zr(null),this.id=++Ls,this.modeOption=t,this.lineSep=r,this.direction="rtl"==i?"rtl":"ltr",this.extend=!1,"string"==typeof e&&(e=this.splitLines(e)),Gr(this,{from:o,to:o,text:e}),bi(this,Fr(o),za)};Ts.prototype=b(qi.prototype,{constructor:Ts,iter:function(e,t,n){n?this.iterN(e-this.first,t-e,n):this.iterN(this.first,this.first+this.size,e)},insert:function(e,t){for(var n=0,r=0;r<t.length;++r)n+=t[r].height;this.insertInner(e-this.first,t,n)},remove:function(e,t){this.removeInner(e-this.first,t)},getValue:function(e){var t=A(this,this.first,this.first+this.size);return e===!1?t:t.join(e||this.lineSeparator())},setValue:mr(function(e){var t=R(this.first,0),n=this.first+this.size-1;Ai(this,{from:t,to:R(n,L(this,n).text.length),text:this.splitLines(e),origin:"setValue",full:!0},!0),this.cm&&$n(this.cm,0,0),bi(this,Fr(t),za)}),replaceRange:function(e,t,n,r){t=H(this,t),n=n?H(this,n):t,Ri(this,e,t,n,r)},getRange:function(e,t,n){var r=T(this,H(this,e),H(this,t));return n===!1?r:r.join(n||this.lineSeparator())},getLine:function(e){var t=this.getLineHandle(e);return t&&t.text},getLineHandle:function(e){if(I(this,e))return L(this,e)},getLineNumber:function(e){return E(e)},getLineHandleVisualStart:function(e){return"number"==typeof e&&(e=L(this,e)),fe(e)},lineCount:function(){return this.size},firstLine:function(){return this.first},lastLine:function(){return this.first+this.size-1},clipPos:function(e){return H(this,e)},getCursor:function(e){var t=this.sel.primary();return null==e||"head"==e?t.head:"anchor"==e?t.anchor:"end"==e||"to"==e||e===!1?t.to():t.from()},listSelections:function(){return this.sel.ranges},somethingSelected:function(){return this.sel.somethingSelected()},setCursor:mr(function(e,t,n){gi(this,H(this,"number"==typeof e?R(e,t||0):e),null,n)}),setSelection:mr(function(e,t,n){gi(this,H(this,e),H(this,t||e),n)}),extendSelection:mr(function(e,t,n){hi(this,H(this,e),t&&H(this,t),n)}),extendSelections:mr(function(e,t){pi(this,K(this,e),t)}),extendSelectionsBy:mr(function(e,t){pi(this,K(this,g(this.sel.ranges,e)),t)}),setSelections:mr(function(e,t,n){var r=this;if(e.length){for(var i=[],o=0;o<e.length;o++)i[o]=new ks(H(r,e[o].anchor),H(r,e[o].head));null==t&&(t=Math.min(e.length-1,this.sel.primIndex)),bi(this,Dr(i,t),n)}}),addSelection:mr(function(e,t,n){var r=this.sel.ranges.slice(0);r.push(new ks(H(this,e),H(this,t||e))),bi(this,Dr(r,r.length-1),n)}),getSelection:function(e){for(var t,n=this,r=this.sel.ranges,i=0;i<r.length;i++){var o=T(n,r[i].from(),r[i].to());t=t?t.concat(o):o}return e===!1?t:t.join(e||this.lineSeparator())},getSelections:function(e){for(var t=this,n=[],r=this.sel.ranges,i=0;i<r.length;i++){var o=T(t,r[i].from(),r[i].to());e!==!1&&(o=o.join(e||t.lineSeparator())),n[i]=o}return n},replaceSelection:function(e,t,n){for(var r=[],i=0;i<this.sel.ranges.length;i++)r[i]=e;this.replaceSelections(r,t,n||"+input")},replaceSelections:mr(function(e,t,n){for(var r=this,i=[],o=this.sel,a=0;a<o.ranges.length;a++){var s=o.ranges[a];i[a]={from:s.from(),to:s.to(),text:r.splitLines(e[a]),origin:n}}for(var l=t&&"end"!=t&&Kr(this,i,t),c=i.length-1;c>=0;c--)Ai(r,i[c]);l?yi(this,l):this.cm&&Vn(this.cm)}),undo:mr(function(){Ei(this,"undo")}),redo:mr(function(){Ei(this,"redo")}),undoSelection:mr(function(){Ei(this,"undo",!0)}),redoSelection:mr(function(){Ei(this,"redo",!0)}),setExtending:function(e){this.extend=e},getExtending:function(){return this.extend},historySize:function(){for(var e=this.history,t=0,n=0,r=0;r<e.done.length;r++)e.done[r].ranges||++t;for(var i=0;i<e.undone.length;i++)e.undone[i].ranges||++n;return{undo:t,redo:n}},clearHistory:function(){this.history=new Zr(this.history.maxGeneration)},markClean:function(){this.cleanGeneration=this.changeGeneration(!0)},changeGeneration:function(e){return e&&(this.history.lastOp=this.history.lastSelOp=this.history.lastOrigin=null),this.history.generation},isClean:function(e){return this.history.generation==(e||this.cleanGeneration)},getHistory:function(){return{done:fi(this.history.done),undone:fi(this.history.undone)}},setHistory:function(e){var t=this.history=new Zr(this.history.maxGeneration);t.done=fi(e.done.slice(0),null,!0),t.undone=fi(e.undone.slice(0),null,!0)},setGutterMarker:mr(function(e,t,n){return Fi(this,e,"gutter",function(e){var r=e.gutterMarkers||(e.gutterMarkers={});return r[t]=n,!n&&k(r)&&(e.gutterMarkers=null),!0})}),clearGutter:mr(function(e){var t=this;this.iter(function(n){n.gutterMarkers&&n.gutterMarkers[e]&&Fi(t,n,"gutter",function(){return n.gutterMarkers[e]=null,k(n.gutterMarkers)&&(n.gutterMarkers=null),!0})})}),lineInfo:function(e){var t;if("number"==typeof e){if(!I(this,e))return null;if(t=e,!(e=L(this,e)))return null}else if(null==(t=E(e)))return null;return{line:t,handle:e,text:e.text,gutterMarkers:e.gutterMarkers,textClass:e.textClass,bgClass:e.bgClass,wrapClass:e.wrapClass,widgets:e.widgets}},addLineClass:mr(function(t,n,r){return Fi(this,t,"gutter"==n?"gutter":"class",function(t){var i="text"==n?"textClass":"background"==n?"bgClass":"gutter"==n?"gutterClass":"wrapClass";if(t[i]){if(e(r).test(t[i]))return!1;t[i]+=" "+r}else t[i]=r;return!0})}),removeLineClass:mr(function(t,n,r){return Fi(this,t,"gutter"==n?"gutter":"class",function(t){var i="text"==n?"textClass":"background"==n?"bgClass":"gutter"==n?"gutterClass":"wrapClass",o=t[i];if(!o)return!1;if(null==r)t[i]=null;else{var a=o.match(e(r));if(!a)return!1;var s=a.index+a[0].length;t[i]=o.slice(0,a.index)+(a.index&&s!=o.length?" ":"")+o.slice(s)||null}return!0})}),addLineWidget:mr(function(e,t,n){return ji(this,e,t,n)}),removeLineWidget:function(e){e.clear()},markText:function(e,t,n){return Ki(this,H(this,e),H(this,t),n,n&&n.type||"range")},setBookmark:function(e,t){var n={replacedWith:t&&(null==t.nodeType?t.widget:t),insertLeft:t&&t.insertLeft,clearWhenEmpty:!1,shared:t&&t.shared,
5
- handleMouseEvents:t&&t.handleMouseEvents};return e=H(this,e),Ki(this,e,e,n,"bookmark")},findMarksAt:function(e){e=H(this,e);var t=[],n=L(this,e.line).markedSpans;if(n)for(var r=0;r<n.length;++r){var i=n[r];(null==i.from||i.from<=e.ch)&&(null==i.to||i.to>=e.ch)&&t.push(i.marker.parent||i.marker)}return t},findMarks:function(e,t,n){e=H(this,e),t=H(this,t);var r=[],i=e.line;return this.iter(e.line,t.line+1,function(o){var a=o.markedSpans;if(a)for(var s=0;s<a.length;s++){var l=a[s];null!=l.to&&i==e.line&&e.ch>=l.to||null==l.from&&i!=e.line||null!=l.from&&i==t.line&&l.from>=t.ch||n&&!n(l.marker)||r.push(l.marker.parent||l.marker)}++i}),r},getAllMarks:function(){var e=[];return this.iter(function(t){var n=t.markedSpans;if(n)for(var r=0;r<n.length;++r)null!=n[r].from&&e.push(n[r].marker)}),e},posFromIndex:function(e){var t,n=this.first,r=this.lineSeparator().length;return this.iter(function(i){var o=i.text.length+r;if(o>e)return t=e,!0;e-=o,++n}),H(this,R(n,t))},indexFromPos:function(e){e=H(this,e);var t=e.ch;if(e.line<this.first||e.ch<0)return 0;var n=this.lineSeparator().length;return this.iter(this.first,e.line,function(e){t+=e.text.length+n}),t},copy:function(e){var t=new Ts(A(this,this.first,this.first+this.size),this.modeOption,this.first,this.lineSep,this.direction);return t.scrollTop=this.scrollTop,t.scrollLeft=this.scrollLeft,t.sel=this.sel,t.extend=!1,e&&(t.history.undoDepth=this.history.undoDepth,t.setHistory(this.getHistory())),t},linkedDoc:function(e){e||(e={});var t=this.first,n=this.first+this.size;null!=e.from&&e.from>t&&(t=e.from),null!=e.to&&e.to<n&&(n=e.to);var r=new Ts(A(this,t,n),e.mode||this.modeOption,t,this.lineSep,this.direction);return e.sharedHist&&(r.history=this.history),(this.linked||(this.linked=[])).push({doc:r,sharedHist:e.sharedHist}),r.linked=[{doc:this,isParent:!0,sharedHist:e.sharedHist}],$i(r,Vi(this)),r},unlinkDoc:function(e){var t=this;if(e instanceof Wo&&(e=e.doc),this.linked)for(var n=0;n<this.linked.length;++n){var r=t.linked[n];if(r.doc==e){t.linked.splice(n,1),e.unlinkDoc(t),Gi(Vi(t));break}}if(e.history==this.history){var i=[e.id];Xr(e,function(e){return i.push(e.id)},!0),e.history=new Zr(null),e.history.done=fi(this.history.done,i),e.history.undone=fi(this.history.undone,i)}},iterLinkedDocs:function(e){Xr(this,e)},getMode:function(){return this.mode},getEditor:function(){return this.cm},splitLines:function(e){return this.lineSep?e.split(this.lineSep):Ya(e)},lineSeparator:function(){return this.lineSep||"\n"},setDirection:mr(function(e){"rtl"!=e&&(e="ltr"),e!=this.direction&&(this.direction=e,this.iter(function(e){return e.order=null}),this.cm&&Jr(this.cm))})}),Ts.prototype.eachLine=Ts.prototype.iter;for(var As=0,Os=!1,Es={3:"Enter",8:"Backspace",9:"Tab",13:"Enter",16:"Shift",17:"Ctrl",18:"Alt",19:"Pause",20:"CapsLock",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"PrintScrn",45:"Insert",46:"Delete",59:";",61:"=",91:"Mod",92:"Mod",93:"Mod",106:"*",107:"=",109:"-",110:".",111:"/",127:"Delete",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'",63232:"Up",63233:"Down",63234:"Left",63235:"Right",63272:"Delete",63273:"Home",63275:"End",63276:"PageUp",63277:"PageDown",63302:"Insert"},Ns=0;Ns<10;Ns++)Es[Ns+48]=Es[Ns+96]=String(Ns);for(var Is=65;Is<=90;Is++)Es[Is]=String.fromCharCode(Is);for(var Ps=1;Ps<=12;Ps++)Es[Ps+111]=Es[Ps+63235]="F"+Ps;var Rs={};Rs.basic={Left:"goCharLeft",Right:"goCharRight",Up:"goLineUp",Down:"goLineDown",End:"goLineEnd",Home:"goLineStartSmart",PageUp:"goPageUp",PageDown:"goPageDown",Delete:"delCharAfter",Backspace:"delCharBefore","Shift-Backspace":"delCharBefore",Tab:"defaultTab","Shift-Tab":"indentAuto",Enter:"newlineAndIndent",Insert:"toggleOverwrite",Esc:"singleSelection"},Rs.pcDefault={"Ctrl-A":"selectAll","Ctrl-D":"deleteLine","Ctrl-Z":"undo","Shift-Ctrl-Z":"redo","Ctrl-Y":"redo","Ctrl-Home":"goDocStart","Ctrl-End":"goDocEnd","Ctrl-Up":"goLineUp","Ctrl-Down":"goLineDown","Ctrl-Left":"goGroupLeft","Ctrl-Right":"goGroupRight","Alt-Left":"goLineStart","Alt-Right":"goLineEnd","Ctrl-Backspace":"delGroupBefore","Ctrl-Delete":"delGroupAfter","Ctrl-S":"save","Ctrl-F":"find","Ctrl-G":"findNext","Shift-Ctrl-G":"findPrev","Shift-Ctrl-F":"replace","Shift-Ctrl-R":"replaceAll","Ctrl-[":"indentLess","Ctrl-]":"indentMore","Ctrl-U":"undoSelection","Shift-Ctrl-U":"redoSelection","Alt-U":"redoSelection",fallthrough:"basic"},Rs.emacsy={"Ctrl-F":"goCharRight","Ctrl-B":"goCharLeft","Ctrl-P":"goLineUp","Ctrl-N":"goLineDown","Alt-F":"goWordRight","Alt-B":"goWordLeft","Ctrl-A":"goLineStart","Ctrl-E":"goLineEnd","Ctrl-V":"goPageDown","Shift-Ctrl-V":"goPageUp","Ctrl-D":"delCharAfter","Ctrl-H":"delCharBefore","Alt-D":"delWordAfter","Alt-Backspace":"delWordBefore","Ctrl-K":"killLine","Ctrl-T":"transposeChars","Ctrl-O":"openLine"},Rs.macDefault={"Cmd-A":"selectAll","Cmd-D":"deleteLine","Cmd-Z":"undo","Shift-Cmd-Z":"redo","Cmd-Y":"redo","Cmd-Home":"goDocStart","Cmd-Up":"goDocStart","Cmd-End":"goDocEnd","Cmd-Down":"goDocEnd","Alt-Left":"goGroupLeft","Alt-Right":"goGroupRight","Cmd-Left":"goLineLeft","Cmd-Right":"goLineRight","Alt-Backspace":"delGroupBefore","Ctrl-Alt-Backspace":"delGroupAfter","Alt-Delete":"delGroupAfter","Cmd-S":"save","Cmd-F":"find","Cmd-G":"findNext","Shift-Cmd-G":"findPrev","Cmd-Alt-F":"replace","Shift-Cmd-Alt-F":"replaceAll","Cmd-[":"indentLess","Cmd-]":"indentMore","Cmd-Backspace":"delWrappedLineLeft","Cmd-Delete":"delWrappedLineRight","Cmd-U":"undoSelection","Shift-Cmd-U":"redoSelection","Ctrl-Up":"goDocStart","Ctrl-Down":"goDocEnd",fallthrough:["basic","emacsy"]},Rs.default=Ca?Rs.macDefault:Rs.pcDefault;var Bs={selectAll:Li,singleSelection:function(e){return e.setSelection(e.getCursor("anchor"),e.getCursor("head"),za)},killLine:function(e){return uo(e,function(t){if(t.empty()){var n=L(e.doc,t.head.line).text.length;return t.head.ch==n&&t.head.line<e.lastLine()?{from:t.head,to:R(t.head.line+1,0)}:{from:t.head,to:R(t.head.line,n)}}return{from:t.from(),to:t.to()}})},deleteLine:function(e){return uo(e,function(t){return{from:R(t.from().line,0),to:H(e.doc,R(t.to().line+1,0))}})},delLineLeft:function(e){return uo(e,function(e){return{from:R(e.from().line,0),to:e.from()}})},delWrappedLineLeft:function(e){return uo(e,function(t){var n=e.charCoords(t.head,"div").top+5;return{from:e.coordsChar({left:0,top:n},"div"),to:t.from()}})},delWrappedLineRight:function(e){return uo(e,function(t){var n=e.charCoords(t.head,"div").top+5,r=e.coordsChar({left:e.display.lineDiv.offsetWidth+100,top:n},"div");return{from:t.from(),to:r}})},undo:function(e){return e.undo()},redo:function(e){return e.redo()},undoSelection:function(e){return e.undoSelection()},redoSelection:function(e){return e.redoSelection()},goDocStart:function(e){return e.extendSelection(R(e.firstLine(),0))},goDocEnd:function(e){return e.extendSelection(R(e.lastLine()))},goLineStart:function(e){return e.extendSelectionsBy(function(t){return fo(e,t.head.line)},{origin:"+move",bias:1})},goLineStartSmart:function(e){return e.extendSelectionsBy(function(t){return po(e,t.head)},{origin:"+move",bias:1})},goLineEnd:function(e){return e.extendSelectionsBy(function(t){return ho(e,t.head.line)},{origin:"+move",bias:-1})},goLineRight:function(e){return e.extendSelectionsBy(function(t){var n=e.cursorCoords(t.head,"div").top+5;return e.coordsChar({left:e.display.lineDiv.offsetWidth+100,top:n},"div")},Fa)},goLineLeft:function(e){return e.extendSelectionsBy(function(t){var n=e.cursorCoords(t.head,"div").top+5;return e.coordsChar({left:0,top:n},"div")},Fa)},goLineLeftSmart:function(e){return e.extendSelectionsBy(function(t){var n=e.cursorCoords(t.head,"div").top+5,r=e.coordsChar({left:0,top:n},"div");return r.ch<e.getLine(r.line).search(/\S/)?po(e,t.head):r},Fa)},goLineUp:function(e){return e.moveV(-1,"line")},goLineDown:function(e){return e.moveV(1,"line")},goPageUp:function(e){return e.moveV(-1,"page")},goPageDown:function(e){return e.moveV(1,"page")},goCharLeft:function(e){return e.moveH(-1,"char")},goCharRight:function(e){return e.moveH(1,"char")},goColumnLeft:function(e){return e.moveH(-1,"column")},goColumnRight:function(e){return e.moveH(1,"column")},goWordLeft:function(e){return e.moveH(-1,"word")},goGroupRight:function(e){return e.moveH(1,"group")},goGroupLeft:function(e){return e.moveH(-1,"group")},goWordRight:function(e){return e.moveH(1,"word")},delCharBefore:function(e){return e.deleteH(-1,"char")},delCharAfter:function(e){return e.deleteH(1,"char")},delWordBefore:function(e){return e.deleteH(-1,"word")},delWordAfter:function(e){return e.deleteH(1,"word")},delGroupBefore:function(e){return e.deleteH(-1,"group")},delGroupAfter:function(e){return e.deleteH(1,"group")},indentAuto:function(e){return e.indentSelection("smart")},indentMore:function(e){return e.indentSelection("add")},indentLess:function(e){return e.indentSelection("subtract")},insertTab:function(e){return e.replaceSelection("\t")},insertSoftTab:function(e){for(var t=[],n=e.listSelections(),r=e.options.tabSize,i=0;i<n.length;i++){var o=n[i].from(),a=f(e.getLine(o.line),o.ch,r);t.push(p(r-a%r))}e.replaceSelections(t)},defaultTab:function(e){e.somethingSelected()?e.indentSelection("add"):e.execCommand("insertTab")},transposeChars:function(e){return dr(e,function(){for(var t=e.listSelections(),n=[],r=0;r<t.length;r++)if(t[r].empty()){var i=t[r].head,o=L(e.doc,i.line).text;if(o)if(i.ch==o.length&&(i=new R(i.line,i.ch-1)),i.ch>0)i=new R(i.line,i.ch+1),e.replaceRange(o.charAt(i.ch-1)+o.charAt(i.ch-2),R(i.line,i.ch-2),i,"+transpose");else if(i.line>e.doc.first){var a=L(e.doc,i.line-1).text;a&&(i=new R(i.line,1),e.replaceRange(o.charAt(0)+e.doc.lineSeparator()+a.charAt(a.length-1),R(i.line-1,a.length-1),i,"+transpose"))}n.push(new ks(i,i))}e.setSelections(n)})},newlineAndIndent:function(e){return dr(e,function(){for(var t=e.listSelections(),n=t.length-1;n>=0;n--)e.replaceRange(e.doc.lineSeparator(),t[n].anchor,t[n].head,"+input");t=e.listSelections();for(var r=0;r<t.length;r++)e.indentLine(t[r].from().line,null,!0);Vn(e)})},openLine:function(e){return e.replaceSelection("\n","start")},toggleOverwrite:function(e){return e.toggleOverwrite()}},zs=new Na,Ds=null,Fs=function(e,t,n){this.time=e,this.pos=t,this.button=n};Fs.prototype.compare=function(e,t,n){return this.time+400>e&&0==B(t,this.pos)&&n==this.button};var Ws,qs,Hs={toString:function(){return"CodeMirror.Init"}},js={},Ks={};Wo.defaults=js,Wo.optionHandlers=Ks;var Us=[];Wo.defineInitHook=function(e){return Us.push(e)};var Vs=null,$s=function(e){this.cm=e,this.lastAnchorNode=this.lastAnchorOffset=this.lastFocusNode=this.lastFocusOffset=null,this.polling=new Na,this.composing=null,this.gracePeriod=!1,this.readDOMTimeout=null};$s.prototype.init=function(e){function t(e){if(!Ee(i,e)){if(i.somethingSelected())jo({lineWise:!1,text:i.getSelections()}),"cut"==e.type&&i.replaceSelection("",null,"cut");else{if(!i.options.lineWiseCopyCut)return;var t=$o(i);jo({lineWise:!0,text:t.text}),"cut"==e.type&&i.operation(function(){i.setSelections(t.ranges,0,za),i.replaceSelection("",null,"cut")})}if(e.clipboardData){e.clipboardData.clearData();var n=Vs.text.join("\n");if(e.clipboardData.setData("Text",n),e.clipboardData.getData("Text")==n)return void e.preventDefault()}var a=Xo(),s=a.firstChild;i.display.lineSpace.insertBefore(a,i.display.lineSpace.firstChild),s.value=Vs.text.join("\n");var l=document.activeElement;Ea(s),setTimeout(function(){i.display.lineSpace.removeChild(a),l.focus(),l==o&&r.showPrimarySelection()},50)}}var n=this,r=this,i=r.cm,o=r.div=e.lineDiv;Go(o,i.options.spellcheck),Ga(o,"paste",function(e){Ee(i,e)||Uo(e,i)||da<=11&&setTimeout(hr(i,function(){return n.updateFromDOM()}),20)}),Ga(o,"compositionstart",function(e){n.composing={data:e.data,done:!1}}),Ga(o,"compositionupdate",function(e){n.composing||(n.composing={data:e.data,done:!1})}),Ga(o,"compositionend",function(e){n.composing&&(e.data!=n.composing.data&&n.readFromDOMSoon(),n.composing.done=!0)}),Ga(o,"touchstart",function(){return r.forceCompositionEnd()}),Ga(o,"input",function(){n.composing||n.readFromDOMSoon()}),Ga(o,"copy",t),Ga(o,"cut",t)},$s.prototype.prepareSelection=function(){var e=Tn(this.cm,!1);return e.focus=this.cm.state.focused,e},$s.prototype.showSelection=function(e,t){e&&this.cm.display.view.length&&((e.focus||t)&&this.showPrimarySelection(),this.showMultipleSelections(e))},$s.prototype.showPrimarySelection=function(){var e=window.getSelection(),t=this.cm,n=t.doc.sel.primary(),r=n.from(),i=n.to();if(t.display.viewTo==t.display.viewFrom||r.line>=t.display.viewTo||i.line<t.display.viewFrom)return void e.removeAllRanges();var o=na(t,e.anchorNode,e.anchorOffset),a=na(t,e.focusNode,e.focusOffset);if(!o||o.bad||!a||a.bad||0!=B(W(o,a),r)||0!=B(F(o,a),i)){var s=t.display.view,l=r.line>=t.display.viewFrom&&Jo(t,r)||{node:s[0].measure.map[2],offset:0},c=i.line<t.display.viewTo&&Jo(t,i);if(!c){var u=s[s.length-1].measure,f=u.maps?u.maps[u.maps.length-1]:u.map;c={node:f[f.length-1],offset:f[f.length-2]-f[f.length-3]}}if(!l||!c)return void e.removeAllRanges();var d,h=e.rangeCount&&e.getRangeAt(0);try{d=La(l.node,l.offset,c.offset,c.node)}catch(e){}d&&(!sa&&t.state.focused?(e.collapse(l.node,l.offset),d.collapsed||(e.removeAllRanges(),e.addRange(d))):(e.removeAllRanges(),e.addRange(d)),h&&null==e.anchorNode?e.addRange(h):sa&&this.startGracePeriod()),this.rememberSelection()}},$s.prototype.startGracePeriod=function(){var e=this;clearTimeout(this.gracePeriod),this.gracePeriod=setTimeout(function(){e.gracePeriod=!1,e.selectionChanged()&&e.cm.operation(function(){return e.cm.curOp.selectionChanged=!0})},20)},$s.prototype.showMultipleSelections=function(e){n(this.cm.display.cursorDiv,e.cursors),n(this.cm.display.selectionDiv,e.selection)},$s.prototype.rememberSelection=function(){var e=window.getSelection();this.lastAnchorNode=e.anchorNode,this.lastAnchorOffset=e.anchorOffset,this.lastFocusNode=e.focusNode,this.lastFocusOffset=e.focusOffset},$s.prototype.selectionInEditor=function(){var e=window.getSelection();if(!e.rangeCount)return!1;var t=e.getRangeAt(0).commonAncestorContainer;return o(this.div,t)},$s.prototype.focus=function(){"nocursor"!=this.cm.options.readOnly&&(this.selectionInEditor()||this.showSelection(this.prepareSelection(),!0),this.div.focus())},$s.prototype.blur=function(){this.div.blur()},$s.prototype.getField=function(){return this.div},$s.prototype.supportsTouch=function(){return!0},$s.prototype.receivedFocus=function(){function e(){t.cm.state.focused&&(t.pollSelection(),t.polling.set(t.cm.options.pollInterval,e))}var t=this;this.selectionInEditor()?this.pollSelection():dr(this.cm,function(){return t.cm.curOp.selectionChanged=!0}),this.polling.set(this.cm.options.pollInterval,e)},$s.prototype.selectionChanged=function(){var e=window.getSelection();return e.anchorNode!=this.lastAnchorNode||e.anchorOffset!=this.lastAnchorOffset||e.focusNode!=this.lastFocusNode||e.focusOffset!=this.lastFocusOffset},$s.prototype.pollSelection=function(){if(null==this.readDOMTimeout&&!this.gracePeriod&&this.selectionChanged()){var e=window.getSelection(),t=this.cm;if(wa&&ma&&this.cm.options.gutters.length&&Zo(e.anchorNode))return this.cm.triggerOnKeyDown({type:"keydown",keyCode:8,preventDefault:Math.abs}),this.blur(),void this.focus();if(!this.composing){this.rememberSelection();var n=na(t,e.anchorNode,e.anchorOffset),r=na(t,e.focusNode,e.focusOffset);n&&r&&dr(t,function(){bi(t.doc,Fr(n,r),za),(n.bad||r.bad)&&(t.curOp.selectionChanged=!0)})}}},$s.prototype.pollContent=function(){null!=this.readDOMTimeout&&(clearTimeout(this.readDOMTimeout),this.readDOMTimeout=null);var e=this.cm,t=e.display,n=e.doc.sel.primary(),r=n.from(),i=n.to();if(0==r.ch&&r.line>e.firstLine()&&(r=R(r.line-1,L(e.doc,r.line-1).length)),i.ch==L(e.doc,i.line).text.length&&i.line<e.lastLine()&&(i=R(i.line+1,0)),r.line<t.viewFrom||i.line>t.viewTo-1)return!1;var o,a,s;r.line==t.viewFrom||0==(o=Mn(e,r.line))?(a=E(t.view[0].line),s=t.view[0].node):(a=E(t.view[o].line),s=t.view[o-1].node.nextSibling);var l,c,u=Mn(e,i.line);if(u==t.view.length-1?(l=t.viewTo-1,c=t.lineDiv.lastChild):(l=E(t.view[u+1].line)-1,c=t.view[u+1].node.previousSibling),!s)return!1;for(var f=e.doc.splitLines(ta(e,s,c,a,l)),d=T(e.doc,R(a,0),R(l,L(e.doc,l).text.length));f.length>1&&d.length>1;)if(m(f)==m(d))f.pop(),d.pop(),l--;else{if(f[0]!=d[0])break;f.shift(),d.shift(),a++}for(var h=0,p=0,g=f[0],v=d[0],y=Math.min(g.length,v.length);h<y&&g.charCodeAt(h)==v.charCodeAt(h);)++h;for(var b=m(f),x=m(d),w=Math.min(b.length-(1==f.length?h:0),x.length-(1==d.length?h:0));p<w&&b.charCodeAt(b.length-p-1)==x.charCodeAt(x.length-p-1);)++p;if(1==f.length&&1==d.length&&a==r.line)for(;h&&h>r.ch&&b.charCodeAt(b.length-p-1)==x.charCodeAt(x.length-p-1);)h--,p++;f[f.length-1]=b.slice(0,b.length-p).replace(/^\u200b+/,""),f[0]=f[0].slice(h).replace(/\u200b+$/,"");var k=R(a,h),C=R(l,d.length?m(d).length-p:0);return f.length>1||f[0]||B(k,C)?(Ri(e.doc,f,k,C,"+input"),!0):void 0},$s.prototype.ensurePolled=function(){this.forceCompositionEnd()},$s.prototype.reset=function(){this.forceCompositionEnd()},$s.prototype.forceCompositionEnd=function(){this.composing&&(clearTimeout(this.readDOMTimeout),this.composing=null,this.updateFromDOM(),this.div.blur(),this.div.focus())},$s.prototype.readFromDOMSoon=function(){var e=this;null==this.readDOMTimeout&&(this.readDOMTimeout=setTimeout(function(){if(e.readDOMTimeout=null,e.composing){if(!e.composing.done)return;e.composing=null}e.updateFromDOM()},80))},$s.prototype.updateFromDOM=function(){var e=this;!this.cm.isReadOnly()&&this.pollContent()||dr(this.cm,function(){return gr(e.cm)})},$s.prototype.setUneditable=function(e){e.contentEditable="false"},$s.prototype.onKeyPress=function(e){0!=e.charCode&&(e.preventDefault(),this.cm.isReadOnly()||hr(this.cm,Ko)(this.cm,String.fromCharCode(null==e.charCode?e.keyCode:e.charCode),0))},$s.prototype.readOnlyChanged=function(e){this.div.contentEditable=String("nocursor"!=e)},$s.prototype.onContextMenu=function(){},$s.prototype.resetPosition=function(){},$s.prototype.needsContentAttribute=!0;var Gs=function(e){this.cm=e,this.prevInput="",this.pollingFast=!1,this.polling=new Na,this.hasSelection=!1,this.composing=null};Gs.prototype.init=function(e){function t(e){if(!Ee(i,e)){if(i.somethingSelected())jo({lineWise:!1,text:i.getSelections()});else{if(!i.options.lineWiseCopyCut)return;var t=$o(i);jo({lineWise:!0,text:t.text}),"cut"==e.type?i.setSelections(t.ranges,null,za):(r.prevInput="",a.value=t.text.join("\n"),Ea(a))}"cut"==e.type&&(i.state.cutIncoming=!0)}}var n=this,r=this,i=this.cm,o=this.wrapper=Xo(),a=this.textarea=o.firstChild;e.wrapper.insertBefore(o,e.wrapper.firstChild),xa&&(a.style.width="0px"),Ga(a,"input",function(){fa&&da>=9&&n.hasSelection&&(n.hasSelection=null),r.poll()}),Ga(a,"paste",function(e){Ee(i,e)||Uo(e,i)||(i.state.pasteIncoming=!0,r.fastPoll())}),Ga(a,"cut",t),Ga(a,"copy",t),Ga(e.scroller,"paste",function(t){Ft(e,t)||Ee(i,t)||(i.state.pasteIncoming=!0,r.focus())}),Ga(e.lineSpace,"selectstart",function(t){Ft(e,t)||Re(t)}),Ga(a,"compositionstart",function(){var e=i.getCursor("from");r.composing&&r.composing.range.clear(),r.composing={start:e,range:i.markText(e,i.getCursor("to"),{className:"CodeMirror-composing"})}}),Ga(a,"compositionend",function(){r.composing&&(r.poll(),r.composing.range.clear(),r.composing=null)})},Gs.prototype.prepareSelection=function(){var e=this.cm,t=e.display,n=e.doc,r=Tn(e);if(e.options.moveInputWithCursor){var i=dn(e,n.sel.primary().head,"div"),o=t.wrapper.getBoundingClientRect(),a=t.lineDiv.getBoundingClientRect();r.teTop=Math.max(0,Math.min(t.wrapper.clientHeight-10,i.top+a.top-o.top)),r.teLeft=Math.max(0,Math.min(t.wrapper.clientWidth-10,i.left+a.left-o.left))}return r},Gs.prototype.showSelection=function(e){var t=this.cm,r=t.display;n(r.cursorDiv,e.cursors),n(r.selectionDiv,e.selection),null!=e.teTop&&(this.wrapper.style.top=e.teTop+"px",this.wrapper.style.left=e.teLeft+"px")},Gs.prototype.reset=function(e){if(!this.contextMenuPending&&!this.composing){var t=this.cm;if(t.somethingSelected()){this.prevInput="";var n=t.getSelection();this.textarea.value=n,t.state.focused&&Ea(this.textarea),fa&&da>=9&&(this.hasSelection=n)}else e||(this.prevInput=this.textarea.value="",fa&&da>=9&&(this.hasSelection=null))}},Gs.prototype.getField=function(){return this.textarea},Gs.prototype.supportsTouch=function(){return!1},Gs.prototype.focus=function(){if("nocursor"!=this.cm.options.readOnly&&(!ka||a()!=this.textarea))try{this.textarea.focus()}catch(e){}},Gs.prototype.blur=function(){this.textarea.blur()},Gs.prototype.resetPosition=function(){this.wrapper.style.top=this.wrapper.style.left=0},Gs.prototype.receivedFocus=function(){this.slowPoll()},Gs.prototype.slowPoll=function(){var e=this;this.pollingFast||this.polling.set(this.cm.options.pollInterval,function(){e.poll(),e.cm.state.focused&&e.slowPoll()})},Gs.prototype.fastPoll=function(){function e(){n.poll()||t?(n.pollingFast=!1,n.slowPoll()):(t=!0,n.polling.set(60,e))}var t=!1,n=this;n.pollingFast=!0,n.polling.set(20,e)},Gs.prototype.poll=function(){var e=this,t=this.cm,n=this.textarea,r=this.prevInput;if(this.contextMenuPending||!t.state.focused||Qa(n)&&!r&&!this.composing||t.isReadOnly()||t.options.disableInput||t.state.keySeq)return!1;var i=n.value;if(i==r&&!t.somethingSelected())return!1;if(fa&&da>=9&&this.hasSelection===i||Ca&&/[\uf700-\uf7ff]/.test(i))return t.display.input.reset(),!1;if(t.doc.sel==t.display.selForContextMenu){var o=i.charCodeAt(0);if(8203!=o||r||(r="​"),8666==o)return this.reset(),this.cm.execCommand("undo")}for(var a=0,s=Math.min(r.length,i.length);a<s&&r.charCodeAt(a)==i.charCodeAt(a);)++a;return dr(t,function(){Ko(t,i.slice(a),r.length-a,null,e.composing?"*compose":null),i.length>1e3||i.indexOf("\n")>-1?n.value=e.prevInput="":e.prevInput=i,e.composing&&(e.composing.range.clear(),e.composing.range=t.markText(e.composing.start,t.getCursor("to"),{className:"CodeMirror-composing"}))}),!0},Gs.prototype.ensurePolled=function(){this.pollingFast&&this.poll()&&(this.pollingFast=!1)},Gs.prototype.onKeyPress=function(){fa&&da>=9&&(this.hasSelection=null),this.fastPoll()},Gs.prototype.onContextMenu=function(e){function t(){if(null!=a.selectionStart){var e=i.somethingSelected(),t="​"+(e?a.value:"");a.value="⇚",a.value=t,r.prevInput=e?"":"​",a.selectionStart=1,a.selectionEnd=t.length,o.selForContextMenu=i.doc.sel}}function n(){if(r.contextMenuPending=!1,r.wrapper.style.cssText=u,a.style.cssText=c,fa&&da<9&&o.scrollbars.setScrollTop(o.scroller.scrollTop=l),null!=a.selectionStart){(!fa||fa&&da<9)&&t();var e=0,n=function(){o.selForContextMenu==i.doc.sel&&0==a.selectionStart&&a.selectionEnd>0&&"​"==r.prevInput?hr(i,Li)(i):e++<10?o.detectingSelectAll=setTimeout(n,500):(o.selForContextMenu=null,o.input.reset())};o.detectingSelectAll=setTimeout(n,200)}}var r=this,i=r.cm,o=i.display,a=r.textarea,s=_n(i,e),l=o.scroller.scrollTop;if(s&&!ga){i.options.resetSelectionOnContextMenu&&i.doc.sel.contains(s)==-1&&hr(i,bi)(i.doc,Fr(s),za);var c=a.style.cssText,u=r.wrapper.style.cssText;r.wrapper.style.cssText="position: absolute";var f=r.wrapper.getBoundingClientRect();a.style.cssText="position: absolute; width: 30px; height: 30px;\n top: "+(e.clientY-f.top-5)+"px; left: "+(e.clientX-f.left-5)+"px;\n z-index: 1000; background: "+(fa?"rgba(255, 255, 255, .05)":"transparent")+";\n outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);";var d;if(ha&&(d=window.scrollY),o.input.focus(),ha&&window.scrollTo(null,d),o.input.reset(),i.somethingSelected()||(a.value=r.prevInput=" "),r.contextMenuPending=!0,o.selForContextMenu=i.doc.sel,clearTimeout(o.detectingSelectAll),fa&&da>=9&&t(),Aa){De(e);var h=function(){Ae(window,"mouseup",h),setTimeout(n,20)};Ga(window,"mouseup",h)}else setTimeout(n,50)}},Gs.prototype.readOnlyChanged=function(e){e||this.reset(),this.textarea.disabled="nocursor"==e},Gs.prototype.setUneditable=function(){},Gs.prototype.needsContentAttribute=!1,function(e){function t(t,r,i,o){e.defaults[t]=r,i&&(n[t]=o?function(e,t,n){n!=Hs&&i(e,t,n)}:i)}var n=e.optionHandlers;e.defineOption=t,e.Init=Hs,t("value","",function(e,t){return e.setValue(t)},!0),t("mode",null,function(e,t){e.doc.modeOption=t,Ur(e)},!0),t("indentUnit",2,Ur,!0),t("indentWithTabs",!1),t("smartIndent",!0),t("tabSize",4,function(e){Vr(e),an(e),gr(e)},!0),t("lineSeparator",null,function(e,t){if(e.doc.lineSep=t,t){var n=[],r=e.doc.first;e.doc.iter(function(e){for(var i=0;;){var o=e.text.indexOf(t,i);if(o==-1)break;i=o+t.length,n.push(R(r,o))}r++});for(var i=n.length-1;i>=0;i--)Ri(e.doc,t,n[i],R(n[i].line,n[i].ch+t.length))}}),t("specialChars",/[\u0000-\u001f\u007f-\u009f\u00ad\u061c\u200b-\u200f\u2028\u2029\ufeff]/g,function(e,t,n){e.state.specialChars=new RegExp(t.source+(t.test("\t")?"":"|\t"),"g"),n!=Hs&&e.refresh()}),t("specialCharPlaceholder",ht,function(e){return e.refresh()},!0),t("electricChars",!0),t("inputStyle",ka?"contenteditable":"textarea",function(){throw new Error("inputStyle can not (yet) be changed in a running editor")},!0),t("spellcheck",!1,function(e,t){return e.getInputField().spellcheck=t},!0),t("rtlMoveVisually",!_a),t("wholeLineUpdateBefore",!0),t("theme","default",function(e){Bo(e),zo(e)},!0),t("keyMap","default",function(e,t,n){var r=co(t),i=n!=Hs&&co(n);i&&i.detach&&i.detach(e,r),r.attach&&r.attach(e,i||null)}),t("extraKeys",null),t("configureMouse",null),t("lineWrapping",!1,Fo,!0),t("gutters",[],function(e){Pr(e.options),zo(e)},!0),t("fixedGutter",!0,function(e,t){e.display.gutters.style.left=t?kn(e.display)+"px":"0",e.refresh()},!0),t("coverGutterNextToScrollbar",!1,function(e){return tr(e)},!0),t("scrollbarStyle","native",function(e){rr(e),tr(e),e.display.scrollbars.setScrollTop(e.doc.scrollTop),e.display.scrollbars.setScrollLeft(e.doc.scrollLeft)},!0),t("lineNumbers",!1,function(e){Pr(e.options),zo(e)},!0),t("firstLineNumber",1,zo,!0),t("lineNumberFormatter",function(e){return e},zo,!0),t("showCursorWhenSelecting",!1,Ln,!0),t("resetSelectionOnContextMenu",!0),t("lineWiseCopyCut",!0),t("pasteLinesPerSelection",!0),t("readOnly",!1,function(e,t){"nocursor"==t&&(Rn(e),e.display.input.blur()),e.display.input.readOnlyChanged(t)}),t("disableInput",!1,function(e,t){t||e.display.input.reset()},!0),t("dragDrop",!0,Do),t("allowDropFileTypes",null),t("cursorBlinkRate",530),t("cursorScrollMargin",0),t("cursorHeight",1,Ln,!0),t("singleCursorHeightPerLine",!0,Ln,!0),t("workTime",100),t("workDelay",100),t("flattenSpans",!0,Vr,!0),t("addModeClass",!1,Vr,!0),t("pollInterval",100),t("undoDepth",200,function(e,t){return e.doc.history.undoDepth=t}),t("historyEventDelay",1250),t("viewportMargin",10,function(e){return e.refresh()},!0),t("maxHighlightLength",1e4,Vr,!0),t("moveInputWithCursor",!0,function(e,t){t||e.display.input.resetPosition()}),t("tabindex",null,function(e,t){return e.display.input.getField().tabIndex=t||""}),t("autofocus",null),t("direction","ltr",function(e,t){return e.doc.setDirection(t)},!0)}(Wo),function(e){var t=e.optionHandlers,n=e.helpers={};e.prototype={constructor:e,focus:function(){window.focus(),this.display.input.focus()},setOption:function(e,n){var r=this.options,i=r[e];r[e]==n&&"mode"!=e||(r[e]=n,t.hasOwnProperty(e)&&hr(this,t[e])(this,n,i),Oe(this,"optionChange",this,e))},getOption:function(e){return this.options[e]},getDoc:function(){return this.doc},addKeyMap:function(e,t){this.state.keyMaps[t?"push":"unshift"](co(e))},removeKeyMap:function(e){for(var t=this.state.keyMaps,n=0;n<t.length;++n)if(t[n]==e||t[n].name==e)return t.splice(n,1),!0},addOverlay:pr(function(t,n){var r=t.token?t:e.getMode(this.options,t);if(r.startState)throw new Error("Overlays may not be stateful.");v(this.state.overlays,{mode:r,modeSpec:t,opaque:n&&n.opaque,priority:n&&n.priority||0},function(e){return e.priority}),this.state.modeGen++,gr(this)}),removeOverlay:pr(function(e){for(var t=this,n=this.state.overlays,r=0;r<n.length;++r){var i=n[r].modeSpec;if(i==e||"string"==typeof e&&i.name==e)return n.splice(r,1),t.state.modeGen++,void gr(t)}}),indentLine:pr(function(e,t,n){"string"!=typeof t&&"number"!=typeof t&&(t=null==t?this.options.smartIndent?"smart":"prev":t?"add":"subtract"),I(this.doc,e)&&Ho(this,e,t,n)}),indentSelection:pr(function(e){for(var t=this,n=this.doc.sel.ranges,r=-1,i=0;i<n.length;i++){var o=n[i];if(o.empty())o.head.line>r&&(Ho(t,o.head.line,e,!0),r=o.head.line,i==t.doc.sel.primIndex&&Vn(t));else{var a=o.from(),s=o.to(),l=Math.max(r,a.line);r=Math.min(t.lastLine(),s.line-(s.ch?0:1))+1;for(var c=l;c<r;++c)Ho(t,c,e);var u=t.doc.sel.ranges;0==a.ch&&n.length==u.length&&u[i].from().ch>0&&mi(t.doc,i,new ks(a,u[i].to()),za)}}}),getTokenAt:function(e,t){return it(this,e,t)},getLineTokens:function(e,t){return it(this,R(e),t,!0)},getTokenTypeAt:function(e){e=H(this.doc,e);var t,n=Ze(this,L(this.doc,e.line)),r=0,i=(n.length-1)/2,o=e.ch;if(0==o)t=n[2];else for(;;){var a=r+i>>1;if((a?n[2*a-1]:0)>=o)i=a;else{if(!(n[2*a+1]<o)){t=n[2*a+2];break}r=a+1}}var s=t?t.indexOf("overlay "):-1;return s<0?t:0==s?null:t.slice(0,s-1)},getModeAt:function(t){var n=this.doc.mode;return n.innerMode?e.innerMode(n,this.getTokenAt(t).state).mode:n},getHelper:function(e,t){return this.getHelpers(e,t)[0]},getHelpers:function(e,t){var r=this,i=[];if(!n.hasOwnProperty(t))return i;var o=n[t],a=this.getModeAt(e);if("string"==typeof a[t])o[a[t]]&&i.push(o[a[t]]);else if(a[t])for(var s=0;s<a[t].length;s++){var l=o[a[t][s]];l&&i.push(l)}else a.helperType&&o[a.helperType]?i.push(o[a.helperType]):o[a.name]&&i.push(o[a.name]);for(var c=0;c<o._global.length;c++){var u=o._global[c];u.pred(a,r)&&d(i,u.val)==-1&&i.push(u.val)}return i},getStateAfter:function(e,t){var n=this.doc;return e=q(n,null==e?n.first+n.size-1:e),et(this,e+1,t).state},cursorCoords:function(e,t){var n,r=this.doc.sel.primary();return n=null==e?r.head:"object"==typeof e?H(this.doc,e):e?r.from():r.to(),dn(this,n,t||"page")},charCoords:function(e,t){return fn(this,H(this.doc,e),t||"page")},coordsChar:function(e,t){return e=un(this,e,t||"page"),mn(this,e.left,e.top)},lineAtHeight:function(e,t){return e=un(this,{top:e,left:0},t||"page").top,N(this.doc,e+this.display.viewOffset)},heightAtLine:function(e,t,n){var r,i=!1;if("number"==typeof e){var o=this.doc.first+this.doc.size-1;e<this.doc.first?e=this.doc.first:e>o&&(e=o,i=!0),r=L(this.doc,e)}else r=e;return cn(this,r,{top:0,left:0},t||"page",n||i).top+(i?this.doc.height-ye(r):0)},defaultTextHeight:function(){return bn(this.display)},defaultCharWidth:function(){return xn(this.display)},getViewport:function(){return{from:this.display.viewFrom,to:this.display.viewTo}},addWidget:function(e,t,n,r,i){var o=this.display;e=dn(this,H(this.doc,e));var a=e.bottom,s=e.left;if(t.style.position="absolute",t.setAttribute("cm-ignore-events","true"),this.display.input.setUneditable(t),o.sizer.appendChild(t),"over"==r)a=e.top;else if("above"==r||"near"==r){var l=Math.max(o.wrapper.clientHeight,this.doc.height),c=Math.max(o.sizer.clientWidth,o.lineSpace.clientWidth);("above"==r||e.bottom+t.offsetHeight>l)&&e.top>t.offsetHeight?a=e.top-t.offsetHeight:e.bottom+t.offsetHeight<=l&&(a=e.bottom),s+t.offsetWidth>c&&(s=c-t.offsetWidth)}t.style.top=a+"px",t.style.left=t.style.right="","right"==i?(s=o.sizer.clientWidth-t.offsetWidth,t.style.right="0px"):("left"==i?s=0:"middle"==i&&(s=(o.sizer.clientWidth-t.offsetWidth)/2),t.style.left=s+"px"),n&&jn(this,{left:s,top:a,right:s+t.offsetWidth,bottom:a+t.offsetHeight})},triggerOnKeyDown:pr(xo),triggerOnKeyPress:pr(Co),triggerOnKeyUp:ko,triggerOnMouseDown:pr(_o),execCommand:function(e){if(Bs.hasOwnProperty(e))return Bs[e].call(null,this)},triggerElectric:pr(function(e){Vo(this,e)}),findPosH:function(e,t,n,r){var i=this,o=1;t<0&&(o=-1,t=-t);for(var a=H(this.doc,e),s=0;s<t&&(a=Yo(i.doc,a,o,n,r),!a.hitSide);++s);return a},moveH:pr(function(e,t){var n=this;this.extendSelectionsBy(function(r){return n.display.shift||n.doc.extend||r.empty()?Yo(n.doc,r.head,e,t,n.options.rtlMoveVisually):e<0?r.from():r.to()},Fa)}),
6
- deleteH:pr(function(e,t){var n=this.doc.sel,r=this.doc;n.somethingSelected()?r.replaceSelection("",null,"+delete"):uo(this,function(n){var i=Yo(r,n.head,e,t,!1);return e<0?{from:i,to:n.head}:{from:n.head,to:i}})}),findPosV:function(e,t,n,r){var i=this,o=1,a=r;t<0&&(o=-1,t=-t);for(var s=H(this.doc,e),l=0;l<t;++l){var c=dn(i,s,"div");if(null==a?a=c.left:c.left=a,s=Qo(i,c,o,n),s.hitSide)break}return s},moveV:pr(function(e,t){var n=this,r=this.doc,i=[],o=!this.display.shift&&!r.extend&&r.sel.somethingSelected();if(r.extendSelectionsBy(function(a){if(o)return e<0?a.from():a.to();var s=dn(n,a.head,"div");null!=a.goalColumn&&(s.left=a.goalColumn),i.push(s.left);var l=Qo(n,s,e,t);return"page"==t&&a==r.sel.primary()&&Un(n,fn(n,l,"div").top-s.top),l},Fa),i.length)for(var a=0;a<r.sel.ranges.length;a++)r.sel.ranges[a].goalColumn=i[a]}),findWordAt:function(e){var t=this.doc,n=L(t,e.line).text,r=e.ch,i=e.ch;if(n){var o=this.getHelper(e,"wordChars");"before"!=e.sticky&&i!=n.length||!r?++i:--r;for(var a=n.charAt(r),s=w(a,o)?function(e){return w(e,o)}:/\s/.test(a)?function(e){return/\s/.test(e)}:function(e){return!/\s/.test(e)&&!w(e)};r>0&&s(n.charAt(r-1));)--r;for(;i<n.length&&s(n.charAt(i));)++i}return new ks(R(e.line,r),R(e.line,i))},toggleOverwrite:function(e){null!=e&&e==this.state.overwrite||((this.state.overwrite=!this.state.overwrite)?s(this.display.cursorDiv,"CodeMirror-overwrite"):Oa(this.display.cursorDiv,"CodeMirror-overwrite"),Oe(this,"overwriteToggle",this,this.state.overwrite))},hasFocus:function(){return this.display.input.getField()==a()},isReadOnly:function(){return!(!this.options.readOnly&&!this.doc.cantEdit)},scrollTo:pr(function(e,t){$n(this,e,t)}),getScrollInfo:function(){var e=this.display.scroller;return{left:e.scrollLeft,top:e.scrollTop,height:e.scrollHeight-jt(this)-this.display.barHeight,width:e.scrollWidth-jt(this)-this.display.barWidth,clientHeight:Ut(this),clientWidth:Kt(this)}},scrollIntoView:pr(function(e,t){null==e?(e={from:this.doc.sel.primary().head,to:null},null==t&&(t=this.options.cursorScrollMargin)):"number"==typeof e?e={from:R(e,0),to:null}:null==e.from&&(e={from:e,to:null}),e.to||(e.to=e.from),e.margin=t||0,null!=e.from.line?Gn(this,e):Yn(this,e.from,e.to,e.margin)}),setSize:pr(function(e,t){var n=this,r=function(e){return"number"==typeof e||/^\d+$/.test(String(e))?e+"px":e};null!=e&&(this.display.wrapper.style.width=r(e)),null!=t&&(this.display.wrapper.style.height=r(t)),this.options.lineWrapping&&on(this);var i=this.display.viewFrom;this.doc.iter(i,this.display.viewTo,function(e){if(e.widgets)for(var t=0;t<e.widgets.length;t++)if(e.widgets[t].noHScroll){vr(n,i,"widget");break}++i}),this.curOp.forceUpdate=!0,Oe(this,"refresh",this)}),operation:function(e){return dr(this,e)},startOperation:function(){return ir(this)},endOperation:function(){return or(this)},refresh:pr(function(){var e=this.display.cachedTextHeight;gr(this),this.curOp.forceUpdate=!0,an(this),$n(this,this.doc.scrollLeft,this.doc.scrollTop),Er(this),(null==e||Math.abs(e-bn(this.display))>.5)&&Sn(this),Oe(this,"refresh",this)}),swapDoc:pr(function(e){var t=this.doc;return t.cm=null,Yr(this,e),an(this),this.display.input.reset(),$n(this,e.scrollLeft,e.scrollTop),this.curOp.forceScroll=!0,St(this,"swapDoc",this,t),t}),getInputField:function(){return this.display.input.getField()},getWrapperElement:function(){return this.display.wrapper},getScrollerElement:function(){return this.display.scroller},getGutterElement:function(){return this.display.gutters}},Pe(e),e.registerHelper=function(t,r,i){n.hasOwnProperty(t)||(n[t]=e[t]={_global:[]}),n[t][r]=i},e.registerGlobalHelper=function(t,r,i,o){e.registerHelper(t,r,o),n[t]._global.push({pred:i,val:o})}}(Wo);var Xs="iter insert remove copy getEditor constructor".split(" ");for(var Ys in Ts.prototype)Ts.prototype.hasOwnProperty(Ys)&&d(Xs,Ys)<0&&(Wo.prototype[Ys]=function(e){return function(){return e.apply(this.doc,arguments)}}(Ts.prototype[Ys]));return Pe(Ts),Wo.inputStyles={textarea:Gs,contenteditable:$s},Wo.defineMode=function(e){Wo.defaults.mode||"null"==e||(Wo.defaults.mode=e),Ke.apply(this,arguments)},Wo.defineMIME=Ue,Wo.defineMode("null",function(){return{token:function(e){return e.skipToEnd()}}}),Wo.defineMIME("text/plain","null"),Wo.defineExtension=function(e,t){Wo.prototype[e]=t},Wo.defineDocExtension=function(e,t){Ts.prototype[e]=t},Wo.fromTextArea=ia,function(e){e.off=Ae,e.on=Ga,e.wheelEventPixels=Br,e.Doc=Ts,e.splitLines=Ya,e.countColumn=f,e.findColumn=h,e.isWordChar=x,e.Pass=Ba,e.signal=Oe,e.Line=ss,e.changeEnd=Wr,e.scrollbarModel=gs,e.Pos=R,e.cmpPos=B,e.modes=es,e.mimeModes=ts,e.resolveMode=Ve,e.getMode=$e,e.modeExtensions=ns,e.extendMode=Ge,e.copyState=Xe,e.startState=Qe,e.innerMode=Ye,e.commands=Bs,e.keyMap=Rs,e.keyName=lo,e.isModifierKey=ao,e.lookupKey=oo,e.normalizeKeyMap=io,e.StringStream=rs,e.SharedTextMarker=Ms,e.TextMarker=_s,e.LineWidget=Cs,e.e_preventDefault=Re,e.e_stopPropagation=Be,e.e_stop=De,e.addClass=s,e.contains=o,e.rmClass=Oa,e.keyNames=Es}(Wo),Wo.version="5.29.0",Wo}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";var t={autoSelfClosers:{area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0,menuitem:!0},implicitlyClosed:{dd:!0,li:!0,optgroup:!0,option:!0,p:!0,rp:!0,rt:!0,tbody:!0,td:!0,tfoot:!0,th:!0,tr:!0},contextGrabbers:{dd:{dd:!0,dt:!0},dt:{dd:!0,dt:!0},li:{li:!0},option:{option:!0,optgroup:!0},optgroup:{optgroup:!0},p:{address:!0,article:!0,aside:!0,blockquote:!0,dir:!0,div:!0,dl:!0,fieldset:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,menu:!0,nav:!0,ol:!0,p:!0,pre:!0,section:!0,table:!0,ul:!0},rp:{rp:!0,rt:!0},rt:{rp:!0,rt:!0},tbody:{tbody:!0,tfoot:!0},td:{td:!0,th:!0},tfoot:{tbody:!0},th:{td:!0,th:!0},thead:{tbody:!0,tfoot:!0},tr:{tr:!0}},doNotIndent:{pre:!0},allowUnquoted:!0,allowMissing:!0,caseFold:!0},n={autoSelfClosers:{},implicitlyClosed:{},contextGrabbers:{},doNotIndent:{},allowUnquoted:!1,allowMissing:!1,caseFold:!1};e.defineMode("xml",function(r,i){function o(e,t){function n(n){return t.tokenize=n,n(e,t)}var r=e.next();if("<"==r)return e.eat("!")?e.eat("[")?e.match("CDATA[")?n(l("atom","]]>")):null:e.match("--")?n(l("comment","-->")):e.match("DOCTYPE",!0,!0)?(e.eatWhile(/[\w\._\-]/),n(c(1))):null:e.eat("?")?(e.eatWhile(/[\w\._\-]/),t.tokenize=l("meta","?>"),"meta"):(M=e.eat("/")?"closeTag":"openTag",t.tokenize=a,"tag bracket");if("&"==r){var i;return i=e.eat("#")?e.eat("x")?e.eatWhile(/[a-fA-F\d]/)&&e.eat(";"):e.eatWhile(/[\d]/)&&e.eat(";"):e.eatWhile(/[\w\.\-:]/)&&e.eat(";"),i?"atom":"error"}return e.eatWhile(/[^&<]/),null}function a(e,t){var n=e.next();if(">"==n||"/"==n&&e.eat(">"))return t.tokenize=o,M=">"==n?"endTag":"selfcloseTag","tag bracket";if("="==n)return M="equals",null;if("<"==n){t.tokenize=o,t.state=h,t.tagName=t.tagStart=null;var r=t.tokenize(e,t);return r?r+" tag error":"tag error"}return/[\'\"]/.test(n)?(t.tokenize=s(n),t.stringStartCol=e.column(),t.tokenize(e,t)):(e.match(/^[^\s\u00a0=<>\"\']*[^\s\u00a0=<>\"\'\/]/),"word")}function s(e){var t=function(t,n){for(;!t.eol();)if(t.next()==e){n.tokenize=a;break}return"string"};return t.isInAttribute=!0,t}function l(e,t){return function(n,r){for(;!n.eol();){if(n.match(t)){r.tokenize=o;break}n.next()}return e}}function c(e){return function(t,n){for(var r;null!=(r=t.next());){if("<"==r)return n.tokenize=c(e+1),n.tokenize(t,n);if(">"==r){if(1==e){n.tokenize=o;break}return n.tokenize=c(e-1),n.tokenize(t,n)}}return"meta"}}function u(e,t,n){this.prev=e.context,this.tagName=t,this.indent=e.indented,this.startOfLine=n,(C.doNotIndent.hasOwnProperty(t)||e.context&&e.context.noIndent)&&(this.noIndent=!0)}function f(e){e.context&&(e.context=e.context.prev)}function d(e,t){for(var n;;){if(!e.context)return;if(n=e.context.tagName,!C.contextGrabbers.hasOwnProperty(n)||!C.contextGrabbers[n].hasOwnProperty(t))return;f(e)}}function h(e,t,n){return"openTag"==e?(n.tagStart=t.column(),p):"closeTag"==e?m:h}function p(e,t,n){return"word"==e?(n.tagName=t.current(),L="tag",y):(L="error",p)}function m(e,t,n){if("word"==e){var r=t.current();return n.context&&n.context.tagName!=r&&C.implicitlyClosed.hasOwnProperty(n.context.tagName)&&f(n),n.context&&n.context.tagName==r||C.matchClosing===!1?(L="tag",g):(L="tag error",v)}return L="error",v}function g(e,t,n){return"endTag"!=e?(L="error",g):(f(n),h)}function v(e,t,n){return L="error",g(e,t,n)}function y(e,t,n){if("word"==e)return L="attribute",b;if("endTag"==e||"selfcloseTag"==e){var r=n.tagName,i=n.tagStart;return n.tagName=n.tagStart=null,"selfcloseTag"==e||C.autoSelfClosers.hasOwnProperty(r)?d(n,r):(d(n,r),n.context=new u(n,r,i==n.indented)),h}return L="error",y}function b(e,t,n){return"equals"==e?x:(C.allowMissing||(L="error"),y(e,t,n))}function x(e,t,n){return"string"==e?w:"word"==e&&C.allowUnquoted?(L="string",y):(L="error",y(e,t,n))}function w(e,t,n){return"string"==e?w:y(e,t,n)}var k=r.indentUnit,C={},S=i.htmlMode?t:n;for(var _ in S)C[_]=S[_];for(var _ in i)C[_]=i[_];var M,L;return o.isInText=!0,{startState:function(e){var t={tokenize:o,state:h,indented:e||0,tagName:null,tagStart:null,context:null};return null!=e&&(t.baseIndent=e),t},token:function(e,t){if(!t.tagName&&e.sol()&&(t.indented=e.indentation()),e.eatSpace())return null;M=null;var n=t.tokenize(e,t);return(n||M)&&"comment"!=n&&(L=null,t.state=t.state(M||n,e,t),L&&(n="error"==L?n+" error":L)),n},indent:function(t,n,r){var i=t.context;if(t.tokenize.isInAttribute)return t.tagStart==t.indented?t.stringStartCol+1:t.indented+k;if(i&&i.noIndent)return e.Pass;if(t.tokenize!=a&&t.tokenize!=o)return r?r.match(/^(\s*)/)[0].length:0;if(t.tagName)return C.multilineTagIndentPastTag!==!1?t.tagStart+t.tagName.length+2:t.tagStart+k*(C.multilineTagIndentFactor||1);if(C.alignCDATA&&/<!\[CDATA\[/.test(n))return 0;var s=n&&/^<(\/)?([\w_:\.-]*)/.exec(n);if(s&&s[1])for(;i;){if(i.tagName==s[2]){i=i.prev;break}if(!C.implicitlyClosed.hasOwnProperty(i.tagName))break;i=i.prev}else if(s)for(;i;){var l=C.contextGrabbers[i.tagName];if(!l||!l.hasOwnProperty(s[2]))break;i=i.prev}for(;i&&i.prev&&!i.startOfLine;)i=i.prev;return i?i.indent+k:t.baseIndent||0},electricInput:/<\/[\s\w:]+>$/,blockCommentStart:"<!--",blockCommentEnd:"-->",configuration:C.htmlMode?"html":"xml",helperType:C.htmlMode?"html":"xml",skipAttribute:function(e){e.state==x&&(e.state=y)}}}),e.defineMIME("text/xml","xml"),e.defineMIME("application/xml","xml"),e.mimeModes.hasOwnProperty("text/html")||e.defineMIME("text/html",{name:"xml",htmlMode:!0})}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";e.defineMode("javascript",function(t,n){function r(e){for(var t,n=!1,r=!1;null!=(t=e.next());){if(!n){if("/"==t&&!r)return;"["==t?r=!0:r&&"]"==t&&(r=!1)}n=!n&&"\\"==t}}function i(e,t,n){return Me=e,Le=n,t}function o(e,t){var n=e.next();if('"'==n||"'"==n)return t.tokenize=a(n),t.tokenize(e,t);if("."==n&&e.match(/^\d+(?:[eE][+\-]?\d+)?/))return i("number","number");if("."==n&&e.match(".."))return i("spread","meta");if(/[\[\]{}\(\),;\:\.]/.test(n))return i(n);if("="==n&&e.eat(">"))return i("=>","operator");if("0"==n&&e.eat(/x/i))return e.eatWhile(/[\da-f]/i),i("number","number");if("0"==n&&e.eat(/o/i))return e.eatWhile(/[0-7]/i),i("number","number");if("0"==n&&e.eat(/b/i))return e.eatWhile(/[01]/i),i("number","number");if(/\d/.test(n))return e.match(/^\d*(?:\.\d*)?(?:[eE][+\-]?\d+)?/),i("number","number");if("/"==n)return e.eat("*")?(t.tokenize=s,s(e,t)):e.eat("/")?(e.skipToEnd(),i("comment","comment")):_e(e,t,1)?(r(e),e.match(/^\b(([gimyu])(?![gimyu]*\2))+\b/),i("regexp","string-2")):(e.eatWhile(Re),i("operator","operator",e.current()));if("`"==n)return t.tokenize=l,l(e,t);if("#"==n)return e.skipToEnd(),i("error","error");if(Re.test(n))return">"==n&&t.lexical&&">"==t.lexical.type||e.eatWhile(Re),i("operator","operator",e.current());if(Ie.test(n)){e.eatWhile(Ie);var o=e.current();if("."!=t.lastType){if(Pe.propertyIsEnumerable(o)){var c=Pe[o];return i(c.type,c.style,o)}if("async"==o&&e.match(/^\s*[\(\w]/,!1))return i("async","keyword",o)}return i("variable","variable",o)}}function a(e){return function(t,n){var r,a=!1;if(Oe&&"@"==t.peek()&&t.match(Be))return n.tokenize=o,i("jsonld-keyword","meta");for(;null!=(r=t.next())&&(r!=e||a);)a=!a&&"\\"==r;return a||(n.tokenize=o),i("string","string")}}function s(e,t){for(var n,r=!1;n=e.next();){if("/"==n&&r){t.tokenize=o;break}r="*"==n}return i("comment","comment")}function l(e,t){for(var n,r=!1;null!=(n=e.next());){if(!r&&("`"==n||"$"==n&&e.eat("{"))){t.tokenize=o;break}r=!r&&"\\"==n}return i("quasi","string-2",e.current())}function c(e,t){t.fatArrowAt&&(t.fatArrowAt=null);var n=e.string.indexOf("=>",e.start);if(!(n<0)){if(Ne){var r=/:\s*(?:\w+(?:<[^>]*>|\[\])?|\{[^}]*\})\s*$/.exec(e.string.slice(e.start,n));r&&(n=r.index)}for(var i=0,o=!1,a=n-1;a>=0;--a){var s=e.string.charAt(a),l=ze.indexOf(s);if(l>=0&&l<3){if(!i){++a;break}if(0==--i){"("==s&&(o=!0);break}}else if(l>=3&&l<6)++i;else if(Ie.test(s))o=!0;else{if(/["'\/]/.test(s))return;if(o&&!i){++a;break}}}o&&!i&&(t.fatArrowAt=a)}}function u(e,t,n,r,i,o){this.indented=e,this.column=t,this.type=n,this.prev=i,this.info=o,null!=r&&(this.align=r)}function f(e,t){for(var n=e.localVars;n;n=n.next)if(n.name==t)return!0;for(var r=e.context;r;r=r.prev)for(var n=r.vars;n;n=n.next)if(n.name==t)return!0}function d(e,t,n,r,i){var o=e.cc;for(Fe.state=e,Fe.stream=i,Fe.marked=null,Fe.cc=o,Fe.style=t,e.lexical.hasOwnProperty("align")||(e.lexical.align=!0);;){if((o.length?o.pop():Ee?k:w)(n,r)){for(;o.length&&o[o.length-1].lex;)o.pop()();return Fe.marked?Fe.marked:"variable"==n&&f(e,r)?"variable-2":t}}}function h(){for(var e=arguments.length-1;e>=0;e--)Fe.cc.push(arguments[e])}function p(){return h.apply(null,arguments),!0}function m(e){function t(t){for(var n=t;n;n=n.next)if(n.name==e)return!0;return!1}var r=Fe.state;if(Fe.marked="def",r.context){if(t(r.localVars))return;r.localVars={name:e,next:r.localVars}}else{if(t(r.globalVars))return;n.globalVars&&(r.globalVars={name:e,next:r.globalVars})}}function g(){Fe.state.context={prev:Fe.state.context,vars:Fe.state.localVars},Fe.state.localVars=We}function v(){Fe.state.localVars=Fe.state.context.vars,Fe.state.context=Fe.state.context.prev}function y(e,t){var n=function(){var n=Fe.state,r=n.indented;if("stat"==n.lexical.type)r=n.lexical.indented;else for(var i=n.lexical;i&&")"==i.type&&i.align;i=i.prev)r=i.indented;n.lexical=new u(r,Fe.stream.column(),e,null,n.lexical,t)};return n.lex=!0,n}function b(){var e=Fe.state;e.lexical.prev&&(")"==e.lexical.type&&(e.indented=e.lexical.indented),e.lexical=e.lexical.prev)}function x(e){function t(n){return n==e?p():";"==e?h():p(t)}return t}function w(e,t){return"var"==e?p(y("vardef",t.length),J,x(";"),b):"keyword a"==e?p(y("form"),S,w,b):"keyword b"==e?p(y("form"),w,b):"{"==e?p(y("}"),K,b):";"==e?p():"if"==e?("else"==Fe.state.lexical.info&&Fe.state.cc[Fe.state.cc.length-1]==b&&Fe.state.cc.pop()(),p(y("form"),S,w,b,re)):"function"==e?p(ce):"for"==e?p(y("form"),ie,w,b):"variable"==e?Ne&&"type"==t?(Fe.marked="keyword",p(V,x("operator"),V,x(";"))):Ne&&"declare"==t?(Fe.marked="keyword",p(w)):p(y("stat"),z):"switch"==e?p(y("form"),S,x("{"),y("}","switch"),K,b,b):"case"==e?p(k,x(":")):"default"==e?p(x(":")):"catch"==e?p(y("form"),g,x("("),ue,x(")"),w,b,v):"class"==e?p(y("form"),de,b):"export"==e?p(y("stat"),ge,b):"import"==e?p(y("stat"),ye,b):"module"==e?p(y("form"),Z,x("{"),y("}"),K,b,b):"async"==e?p(w):"@"==t?p(k,w):h(y("stat"),k,x(";"),b)}function k(e){return _(e,!1)}function C(e){return _(e,!0)}function S(e){return"("!=e?h():p(y(")"),k,x(")"),b)}function _(e,t){if(Fe.state.fatArrowAt==Fe.stream.start){var n=t?I:N;if("("==e)return p(g,y(")"),H(Z,")"),b,x("=>"),n,v);if("variable"==e)return h(g,Z,x("=>"),n,v)}var r=t?A:T;return De.hasOwnProperty(e)?p(r):"function"==e?p(ce,r):"class"==e?p(y("form"),fe,b):"keyword c"==e||"async"==e?p(t?L:M):"("==e?p(y(")"),M,x(")"),b,r):"operator"==e||"spread"==e?p(t?C:k):"["==e?p(y("]"),Ce,b,r):"{"==e?j(F,"}",null,r):"quasi"==e?h(O,r):"new"==e?p(P(t)):p()}function M(e){return e.match(/[;\}\)\],]/)?h():h(k)}function L(e){return e.match(/[;\}\)\],]/)?h():h(C)}function T(e,t){return","==e?p(k):A(e,t,!1)}function A(e,t,n){var r=0==n?T:A,i=0==n?k:C;return"=>"==e?p(g,n?I:N,v):"operator"==e?/\+\+|--/.test(t)||Ne&&"!"==t?p(r):"?"==t?p(k,x(":"),i):p(i):"quasi"==e?h(O,r):";"!=e?"("==e?j(C,")","call",r):"."==e?p(D,r):"["==e?p(y("]"),M,x("]"),b,r):Ne&&"as"==t?(Fe.marked="keyword",p(V,r)):void 0:void 0}function O(e,t){return"quasi"!=e?h():"${"!=t.slice(t.length-2)?p(O):p(k,E)}function E(e){if("}"==e)return Fe.marked="string-2",Fe.state.tokenize=l,p(O)}function N(e){return c(Fe.stream,Fe.state),h("{"==e?w:k)}function I(e){return c(Fe.stream,Fe.state),h("{"==e?w:C)}function P(e){return function(t){return"."==t?p(e?B:R):"variable"==t&&Ne?p(Q,e?A:T):h(e?C:k)}}function R(e,t){if("target"==t)return Fe.marked="keyword",p(T)}function B(e,t){if("target"==t)return Fe.marked="keyword",p(A)}function z(e){return":"==e?p(b,w):h(T,x(";"),b)}function D(e){if("variable"==e)return Fe.marked="property",p()}function F(e,t){return"async"==e?(Fe.marked="property",p(F)):"variable"==e||"keyword"==Fe.style?(Fe.marked="property",p("get"==t||"set"==t?W:q)):"number"==e||"string"==e?(Fe.marked=Oe?"property":Fe.style+" property",p(q)):"jsonld-keyword"==e?p(q):"modifier"==e?p(F):"["==e?p(k,x("]"),q):"spread"==e?p(k,q):":"==e?h(q):void 0}function W(e){return"variable"!=e?h(q):(Fe.marked="property",p(ce))}function q(e){return":"==e?p(C):"("==e?h(ce):void 0}function H(e,t,n){function r(i,o){if(n?n.indexOf(i)>-1:","==i){var a=Fe.state.lexical;return"call"==a.info&&(a.pos=(a.pos||0)+1),p(function(n,r){return n==t||r==t?h():h(e)},r)}return i==t||o==t?p():p(x(t))}return function(n,i){return n==t||i==t?p():h(e,r)}}function j(e,t,n){for(var r=3;r<arguments.length;r++)Fe.cc.push(arguments[r]);return p(y(t,n),H(e,t),b)}function K(e){return"}"==e?p():h(w,K)}function U(e,t){if(Ne){if(":"==e)return p(V);if("?"==t)return p(U)}}function V(e,t){return"variable"==e?"keyof"==t?(Fe.marked="keyword",p(V)):(Fe.marked="type",p(Y)):"string"==e||"number"==e||"atom"==e?p(Y):"["==e?p(y("]"),H(V,"]",","),b,Y):"{"==e?p(y("}"),H(G,"}",",;"),b,Y):"("==e?p(H(X,")"),$):void 0}function $(e){if("=>"==e)return p(V)}function G(e,t){return"variable"==e||"keyword"==Fe.style?(Fe.marked="property",p(G)):"?"==t?p(G):":"==e?p(V):"["==e?p(k,U,x("]"),G):void 0}function X(e){return"variable"==e?p(X):":"==e?p(V):void 0}function Y(e,t){return"<"==t?p(y(">"),H(V,">"),b,Y):"|"==t||"."==e?p(V):"["==e?p(x("]"),Y):"extends"==t?p(V):void 0}function Q(e,t){if("<"==t)return p(y(">"),H(V,">"),b,Y)}function J(){return h(Z,U,te,ne)}function Z(e,t){return"modifier"==e?p(Z):"variable"==e?(m(t),p()):"spread"==e?p(Z):"["==e?j(Z,"]"):"{"==e?j(ee,"}"):void 0}function ee(e,t){return"variable"!=e||Fe.stream.match(/^\s*:/,!1)?("variable"==e&&(Fe.marked="property"),"spread"==e?p(Z):"}"==e?h():p(x(":"),Z,te)):(m(t),p(te))}function te(e,t){if("="==t)return p(C)}function ne(e){if(","==e)return p(J)}function re(e,t){if("keyword b"==e&&"else"==t)return p(y("form","else"),w,b)}function ie(e){if("("==e)return p(y(")"),oe,x(")"),b)}function oe(e){return"var"==e?p(J,x(";"),se):";"==e?p(se):"variable"==e?p(ae):h(k,x(";"),se)}function ae(e,t){return"in"==t||"of"==t?(Fe.marked="keyword",p(k)):p(T,se)}function se(e,t){return";"==e?p(le):"in"==t||"of"==t?(Fe.marked="keyword",p(k)):h(k,x(";"),le)}function le(e){")"!=e&&p(k)}function ce(e,t){return"*"==t?(Fe.marked="keyword",p(ce)):"variable"==e?(m(t),p(ce)):"("==e?p(g,y(")"),H(ue,")"),b,U,w,v):Ne&&"<"==t?p(y(">"),H(V,">"),b,ce):void 0}function ue(e){return"spread"==e||"modifier"==e?p(ue):h(Z,U,te)}function fe(e,t){return"variable"==e?de(e,t):he(e,t)}function de(e,t){if("variable"==e)return m(t),p(he)}function he(e,t){return"<"==t?p(y(">"),H(V,">"),b,he):"extends"==t||"implements"==t||Ne&&","==e?p(Ne?V:k,he):"{"==e?p(y("}"),pe,b):void 0}function pe(e,t){return"modifier"==e||"async"==e||"variable"==e&&("static"==t||"get"==t||"set"==t)&&Fe.stream.match(/^\s+[\w$\xa1-\uffff]/,!1)?(Fe.marked="keyword",p(pe)):"variable"==e?(Fe.marked="property",p(Ne?me:ce,pe)):"["==e?p(k,x("]"),Ne?me:ce,pe):"*"==t?(Fe.marked="keyword",p(pe)):";"==e?p(pe):"}"==e?p():"@"==t?p(k,pe):void 0}function me(e,t){return"?"==t?p(me):":"==e?p(V,te):"="==t?p(C):h(ce)}function ge(e,t){return"*"==t?(Fe.marked="keyword",p(ke,x(";"))):"default"==t?(Fe.marked="keyword",p(k,x(";"))):"{"==e?p(H(ve,"}"),ke,x(";")):h(w)}function ve(e,t){return"as"==t?(Fe.marked="keyword",p(x("variable"))):"variable"==e?h(C,ve):void 0}function ye(e){return"string"==e?p():h(be,xe,ke)}function be(e,t){return"{"==e?j(be,"}"):("variable"==e&&m(t),"*"==t&&(Fe.marked="keyword"),p(we))}function xe(e){if(","==e)return p(be,xe)}function we(e,t){if("as"==t)return Fe.marked="keyword",p(be)}function ke(e,t){if("from"==t)return Fe.marked="keyword",p(k)}function Ce(e){return"]"==e?p():h(H(C,"]"))}function Se(e,t){return"operator"==e.lastType||","==e.lastType||Re.test(t.charAt(0))||/[,.]/.test(t.charAt(0))}function _e(e,t,n){return t.tokenize==o&&/^(?:operator|sof|keyword c|case|new|export|default|[\[{}\(,;:]|=>)$/.test(t.lastType)||"quasi"==t.lastType&&/\{\s*$/.test(e.string.slice(0,e.pos-(n||0)))}var Me,Le,Te=t.indentUnit,Ae=n.statementIndent,Oe=n.jsonld,Ee=n.json||Oe,Ne=n.typescript,Ie=n.wordCharacters||/[\w$\xa1-\uffff]/,Pe=function(){function e(e){return{type:e,style:"keyword"}}var t=e("keyword a"),n=e("keyword b"),r=e("keyword c"),i=e("operator"),o={type:"atom",style:"atom"},a={if:e("if"),while:t,with:t,else:n,do:n,try:n,finally:n,return:r,break:r,continue:r,new:e("new"),delete:r,throw:r,debugger:r,var:e("var"),const:e("var"),let:e("var"),function:e("function"),catch:e("catch"),for:e("for"),switch:e("switch"),case:e("case"),default:e("default"),in:i,typeof:i,instanceof:i,true:o,false:o,null:o,undefined:o,NaN:o,Infinity:o,this:e("this"),class:e("class"),super:e("atom"),yield:r,export:e("export"),import:e("import"),extends:r,await:r};if(Ne){var s={type:"variable",style:"type"},l={interface:e("class"),implements:r,namespace:r,module:e("module"),enum:e("module"),public:e("modifier"),private:e("modifier"),protected:e("modifier"),abstract:e("modifier"),readonly:e("modifier"),string:s,number:s,boolean:s,any:s};for(var c in l)a[c]=l[c]}return a}(),Re=/[+\-*&%=<>!?|~^@]/,Be=/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/,ze="([{}])",De={atom:!0,number:!0,variable:!0,string:!0,regexp:!0,this:!0,"jsonld-keyword":!0},Fe={state:null,column:null,marked:null,cc:null},We={name:"this",next:{name:"arguments"}};return b.lex=!0,{startState:function(e){var t={tokenize:o,lastType:"sof",cc:[],lexical:new u((e||0)-Te,0,"block",!1),localVars:n.localVars,context:n.localVars&&{vars:n.localVars},indented:e||0};return n.globalVars&&"object"==typeof n.globalVars&&(t.globalVars=n.globalVars),t},token:function(e,t){if(e.sol()&&(t.lexical.hasOwnProperty("align")||(t.lexical.align=!1),t.indented=e.indentation(),c(e,t)),t.tokenize!=s&&e.eatSpace())return null;var n=t.tokenize(e,t);return"comment"==Me?n:(t.lastType="operator"!=Me||"++"!=Le&&"--"!=Le?Me:"incdec",d(t,n,Me,Le,e))},indent:function(t,r){if(t.tokenize==s)return e.Pass;if(t.tokenize!=o)return 0;var i,a=r&&r.charAt(0),l=t.lexical;if(!/^\s*else\b/.test(r))for(var c=t.cc.length-1;c>=0;--c){var u=t.cc[c];if(u==b)l=l.prev;else if(u!=re)break}for(;("stat"==l.type||"form"==l.type)&&("}"==a||(i=t.cc[t.cc.length-1])&&(i==T||i==A)&&!/^[,\.=+\-*:?[\(]/.test(r));)l=l.prev;Ae&&")"==l.type&&"stat"==l.prev.type&&(l=l.prev);var f=l.type,d=a==f;return"vardef"==f?l.indented+("operator"==t.lastType||","==t.lastType?l.info+1:0):"form"==f&&"{"==a?l.indented:"form"==f?l.indented+Te:"stat"==f?l.indented+(Se(t,r)?Ae||Te:0):"switch"!=l.info||d||0==n.doubleIndentSwitch?l.align?l.column+(d?0:1):l.indented+(d?0:Te):l.indented+(/^(?:case|default)\b/.test(r)?Te:2*Te)},electricInput:/^\s*(?:case .*?:|default:|\{|\})$/,blockCommentStart:Ee?null:"/*",blockCommentEnd:Ee?null:"*/",lineComment:Ee?null:"//",fold:"brace",closeBrackets:"()[]{}''\"\"``",helperType:Ee?"json":"javascript",jsonldMode:Oe,jsonMode:Ee,expressionAllowed:_e,skipExpression:function(e){var t=e.cc[e.cc.length-1];t!=k&&t!=C||e.cc.pop()}}}),e.registerHelper("wordChars","javascript",/[\w$]/),e.defineMIME("text/javascript","javascript"),e.defineMIME("text/ecmascript","javascript"),e.defineMIME("application/javascript","javascript"),e.defineMIME("application/x-javascript","javascript"),e.defineMIME("application/ecmascript","javascript"),e.defineMIME("application/json",{name:"javascript",json:!0}),e.defineMIME("application/x-json",{name:"javascript",json:!0}),e.defineMIME("application/ld+json",{name:"javascript",jsonld:!0}),e.defineMIME("text/typescript",{name:"javascript",typescript:!0}),e.defineMIME("application/typescript",{name:"javascript",typescript:!0})}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";function t(e){for(var t={},n=0;n<e.length;++n)t[e[n].toLowerCase()]=!0;return t}function n(e,t){for(var n,r=!1;null!=(n=e.next());){if(r&&"/"==n){t.tokenize=null;break}r="*"==n}return["comment","comment"]}e.defineMode("css",function(t,n){function r(e,t){return p=t,e}function i(e,t){var n=e.next();if(v[n]){var i=v[n](e,t);if(i!==!1)return i}return"@"==n?(e.eatWhile(/[\w\\\-]/),r("def",e.current())):"="==n||("~"==n||"|"==n)&&e.eat("=")?r(null,"compare"):'"'==n||"'"==n?(t.tokenize=o(n),t.tokenize(e,t)):"#"==n?(e.eatWhile(/[\w\\\-]/),r("atom","hash")):"!"==n?(e.match(/^\s*\w*/),r("keyword","important")):/\d/.test(n)||"."==n&&e.eat(/\d/)?(e.eatWhile(/[\w.%]/),r("number","unit")):"-"!==n?/[,+>*\/]/.test(n)?r(null,"select-op"):"."==n&&e.match(/^-?[_a-z][_a-z0-9-]*/i)?r("qualifier","qualifier"):/[:;{}\[\]\(\)]/.test(n)?r(null,n):"u"==n&&e.match(/rl(-prefix)?\(/)||"d"==n&&e.match("omain(")||"r"==n&&e.match("egexp(")?(e.backUp(1),t.tokenize=a,r("property","word")):/[\w\\\-]/.test(n)?(e.eatWhile(/[\w\\\-]/),r("property","word")):r(null,null):/[\d.]/.test(e.peek())?(e.eatWhile(/[\w.%]/),r("number","unit")):e.match(/^-[\w\\\-]+/)?(e.eatWhile(/[\w\\\-]/),e.match(/^\s*:/,!1)?r("variable-2","variable-definition"):r("variable-2","variable")):e.match(/^\w+-/)?r("meta","meta"):void 0}function o(e){return function(t,n){for(var i,o=!1;null!=(i=t.next());){if(i==e&&!o){")"==e&&t.backUp(1);break}o=!o&&"\\"==i}return(i==e||!o&&")"!=e)&&(n.tokenize=null),r("string","string")}}function a(e,t){return e.next(),e.match(/\s*[\"\')]/,!1)?t.tokenize=null:t.tokenize=o(")"),r(null,"(")}function s(e,t,n){this.type=e,this.indent=t,this.prev=n}function l(e,t,n,r){return e.context=new s(n,t.indentation()+(r===!1?0:g),e.context),n}function c(e){return e.context.prev&&(e.context=e.context.prev),e.context.type}function u(e,t,n){return E[n.context.type](e,t,n)}function f(e,t,n,r){for(var i=r||1;i>0;i--)n.context=n.context.prev;return u(e,t,n)}function d(e){var t=e.current().toLowerCase();m=L.hasOwnProperty(t)?"atom":M.hasOwnProperty(t)?"keyword":"variable"}var h=n.inline;n.propertyKeywords||(n=e.resolveMode("text/css"));var p,m,g=t.indentUnit,v=n.tokenHooks,y=n.documentTypes||{},b=n.mediaTypes||{},x=n.mediaFeatures||{},w=n.mediaValueKeywords||{},k=n.propertyKeywords||{},C=n.nonStandardPropertyKeywords||{},S=n.fontProperties||{},_=n.counterDescriptors||{},M=n.colorKeywords||{},L=n.valueKeywords||{},T=n.allowNested,A=n.lineComment,O=n.supportsAtComponent===!0,E={};return E.top=function(e,t,n){if("{"==e)return l(n,t,"block");if("}"==e&&n.context.prev)return c(n);if(O&&/@component/.test(e))return l(n,t,"atComponentBlock");if(/^@(-moz-)?document$/.test(e))return l(n,t,"documentTypes");if(/^@(media|supports|(-moz-)?document|import)$/.test(e))return l(n,t,"atBlock");if(/^@(font-face|counter-style)/.test(e))return n.stateArg=e,"restricted_atBlock_before";if(/^@(-(moz|ms|o|webkit)-)?keyframes$/.test(e))return"keyframes";if(e&&"@"==e.charAt(0))return l(n,t,"at");if("hash"==e)m="builtin";else if("word"==e)m="tag";else{if("variable-definition"==e)return"maybeprop";if("interpolation"==e)return l(n,t,"interpolation");if(":"==e)return"pseudo";if(T&&"("==e)return l(n,t,"parens")}return n.context.type},E.block=function(e,t,n){if("word"==e){var r=t.current().toLowerCase();return k.hasOwnProperty(r)?(m="property","maybeprop"):C.hasOwnProperty(r)?(m="string-2","maybeprop"):T?(m=t.match(/^\s*:(?:\s|$)/,!1)?"property":"tag","block"):(m+=" error","maybeprop")}return"meta"==e?"block":T||"hash"!=e&&"qualifier"!=e?E.top(e,t,n):(m="error","block")},E.maybeprop=function(e,t,n){return":"==e?l(n,t,"prop"):u(e,t,n)},E.prop=function(e,t,n){if(";"==e)return c(n);if("{"==e&&T)return l(n,t,"propBlock");if("}"==e||"{"==e)return f(e,t,n);if("("==e)return l(n,t,"parens");if("hash"!=e||/^#([0-9a-fA-f]{3,4}|[0-9a-fA-f]{6}|[0-9a-fA-f]{8})$/.test(t.current())){if("word"==e)d(t);else if("interpolation"==e)return l(n,t,"interpolation")}else m+=" error";return"prop"},E.propBlock=function(e,t,n){return"}"==e?c(n):"word"==e?(m="property","maybeprop"):n.context.type},E.parens=function(e,t,n){return"{"==e||"}"==e?f(e,t,n):")"==e?c(n):"("==e?l(n,t,"parens"):"interpolation"==e?l(n,t,"interpolation"):("word"==e&&d(t),"parens")},E.pseudo=function(e,t,n){return"meta"==e?"pseudo":"word"==e?(m="variable-3",n.context.type):u(e,t,n)},E.documentTypes=function(e,t,n){return"word"==e&&y.hasOwnProperty(t.current())?(m="tag",n.context.type):E.atBlock(e,t,n)},E.atBlock=function(e,t,n){if("("==e)return l(n,t,"atBlock_parens");if("}"==e||";"==e)return f(e,t,n);if("{"==e)return c(n)&&l(n,t,T?"block":"top");if("interpolation"==e)return l(n,t,"interpolation");if("word"==e){var r=t.current().toLowerCase();m="only"==r||"not"==r||"and"==r||"or"==r?"keyword":b.hasOwnProperty(r)?"attribute":x.hasOwnProperty(r)?"property":w.hasOwnProperty(r)?"keyword":k.hasOwnProperty(r)?"property":C.hasOwnProperty(r)?"string-2":L.hasOwnProperty(r)?"atom":M.hasOwnProperty(r)?"keyword":"error"}return n.context.type},E.atComponentBlock=function(e,t,n){return"}"==e?f(e,t,n):"{"==e?c(n)&&l(n,t,T?"block":"top",!1):("word"==e&&(m="error"),n.context.type)},E.atBlock_parens=function(e,t,n){return")"==e?c(n):"{"==e||"}"==e?f(e,t,n,2):E.atBlock(e,t,n)},E.restricted_atBlock_before=function(e,t,n){return"{"==e?l(n,t,"restricted_atBlock"):"word"==e&&"@counter-style"==n.stateArg?(m="variable","restricted_atBlock_before"):u(e,t,n)},E.restricted_atBlock=function(e,t,n){return"}"==e?(n.stateArg=null,c(n)):"word"==e?(m="@font-face"==n.stateArg&&!S.hasOwnProperty(t.current().toLowerCase())||"@counter-style"==n.stateArg&&!_.hasOwnProperty(t.current().toLowerCase())?"error":"property","maybeprop"):"restricted_atBlock"},E.keyframes=function(e,t,n){return"word"==e?(m="variable","keyframes"):"{"==e?l(n,t,"top"):u(e,t,n)},E.at=function(e,t,n){return";"==e?c(n):"{"==e||"}"==e?f(e,t,n):("word"==e?m="tag":"hash"==e&&(m="builtin"),"at")},E.interpolation=function(e,t,n){return"}"==e?c(n):"{"==e||";"==e?f(e,t,n):("word"==e?m="variable":"variable"!=e&&"("!=e&&")"!=e&&(m="error"),"interpolation")},{startState:function(e){return{tokenize:null,state:h?"block":"top",stateArg:null,context:new s(h?"block":"top",e||0,null)}},token:function(e,t){if(!t.tokenize&&e.eatSpace())return null;var n=(t.tokenize||i)(e,t);return n&&"object"==typeof n&&(p=n[1],n=n[0]),m=n,"comment"!=p&&(t.state=E[t.state](p,e,t)),m},indent:function(e,t){var n=e.context,r=t&&t.charAt(0),i=n.indent;return"prop"!=n.type||"}"!=r&&")"!=r||(n=n.prev),
7
- n.prev&&("}"!=r||"block"!=n.type&&"top"!=n.type&&"interpolation"!=n.type&&"restricted_atBlock"!=n.type?(")"!=r||"parens"!=n.type&&"atBlock_parens"!=n.type)&&("{"!=r||"at"!=n.type&&"atBlock"!=n.type)||(i=Math.max(0,n.indent-g)):(n=n.prev,i=n.indent)),i},electricChars:"}",blockCommentStart:"/*",blockCommentEnd:"*/",lineComment:A,fold:"brace"}});var r=["domain","regexp","url","url-prefix"],i=t(r),o=["all","aural","braille","handheld","print","projection","screen","tty","tv","embossed"],a=t(o),s=["width","min-width","max-width","height","min-height","max-height","device-width","min-device-width","max-device-width","device-height","min-device-height","max-device-height","aspect-ratio","min-aspect-ratio","max-aspect-ratio","device-aspect-ratio","min-device-aspect-ratio","max-device-aspect-ratio","color","min-color","max-color","color-index","min-color-index","max-color-index","monochrome","min-monochrome","max-monochrome","resolution","min-resolution","max-resolution","scan","grid","orientation","device-pixel-ratio","min-device-pixel-ratio","max-device-pixel-ratio","pointer","any-pointer","hover","any-hover"],l=t(s),c=["landscape","portrait","none","coarse","fine","on-demand","hover","interlace","progressive"],u=t(c),f=["align-content","align-items","align-self","alignment-adjust","alignment-baseline","anchor-point","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","appearance","azimuth","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","baseline-shift","binding","bleed","bookmark-label","bookmark-level","bookmark-state","bookmark-target","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","color","color-profile","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","content","counter-increment","counter-reset","crop","cue","cue-after","cue-before","cursor","direction","display","dominant-baseline","drop-initial-after-adjust","drop-initial-after-align","drop-initial-before-adjust","drop-initial-before-align","drop-initial-size","drop-initial-value","elevation","empty-cells","fit","fit-position","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","float-offset","flow-from","flow-into","font","font-feature-settings","font-family","font-kerning","font-language-override","font-size","font-size-adjust","font-stretch","font-style","font-synthesis","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-weight","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-gap","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-gap","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","inline-box-align","justify-content","justify-items","justify-self","left","letter-spacing","line-break","line-height","line-stacking","line-stacking-ruby","line-stacking-shift","line-stacking-strategy","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marks","marquee-direction","marquee-loop","marquee-play-count","marquee-speed","marquee-style","max-height","max-width","min-height","min-width","move-to","nav-down","nav-index","nav-left","nav-right","nav-up","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-style","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","page-policy","pause","pause-after","pause-before","perspective","perspective-origin","pitch","pitch-range","place-content","place-items","place-self","play-during","position","presentation-level","punctuation-trim","quotes","region-break-after","region-break-before","region-break-inside","region-fragment","rendering-intent","resize","rest","rest-after","rest-before","richness","right","rotation","rotation-point","ruby-align","ruby-overhang","ruby-position","ruby-span","shape-image-threshold","shape-inside","shape-margin","shape-outside","size","speak","speak-as","speak-header","speak-numeral","speak-punctuation","speech-rate","stress","string-set","tab-size","table-layout","target","target-name","target-new","target-position","text-align","text-align-last","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-height","text-indent","text-justify","text-outline","text-overflow","text-shadow","text-size-adjust","text-space-collapse","text-transform","text-underline-position","text-wrap","top","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","user-select","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","z-index","clip-path","clip-rule","mask","enable-background","filter","flood-color","flood-opacity","lighting-color","stop-color","stop-opacity","pointer-events","color-interpolation","color-interpolation-filters","color-rendering","fill","fill-opacity","fill-rule","image-rendering","marker","marker-end","marker-mid","marker-start","shape-rendering","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","text-rendering","baseline-shift","dominant-baseline","glyph-orientation-horizontal","glyph-orientation-vertical","text-anchor","writing-mode"],d=t(f),h=["scrollbar-arrow-color","scrollbar-base-color","scrollbar-dark-shadow-color","scrollbar-face-color","scrollbar-highlight-color","scrollbar-shadow-color","scrollbar-3d-light-color","scrollbar-track-color","shape-inside","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","zoom"],p=t(h),m=["font-family","src","unicode-range","font-variant","font-feature-settings","font-stretch","font-weight","font-style"],g=t(m),v=["additive-symbols","fallback","negative","pad","prefix","range","speak-as","suffix","symbols","system"],y=t(v),b=["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"],x=t(b),w=["above","absolute","activeborder","additive","activecaption","afar","after-white-space","ahead","alias","all","all-scroll","alphabetic","alternate","always","amharic","amharic-abegede","antialiased","appworkspace","arabic-indic","armenian","asterisks","attr","auto","auto-flow","avoid","avoid-column","avoid-page","avoid-region","background","backwards","baseline","below","bidi-override","binary","bengali","blink","block","block-axis","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","bullets","button","button-bevel","buttonface","buttonhighlight","buttonshadow","buttontext","calc","cambodian","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-decimal","cjk-earthly-branch","cjk-heavenly-stem","cjk-ideographic","clear","clip","close-quote","col-resize","collapse","color","color-burn","color-dodge","column","column-reverse","compact","condensed","contain","content","contents","content-box","context-menu","continuous","copy","counter","counters","cover","crop","cross","crosshair","currentcolor","cursive","cyclic","darken","dashed","decimal","decimal-leading-zero","default","default-button","dense","destination-atop","destination-in","destination-out","destination-over","devanagari","difference","disc","discard","disclosure-closed","disclosure-open","document","dot-dash","dot-dot-dash","dotted","double","down","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipse","ellipsis","embed","end","ethiopic","ethiopic-abegede","ethiopic-abegede-am-et","ethiopic-abegede-gez","ethiopic-abegede-ti-er","ethiopic-abegede-ti-et","ethiopic-halehame-aa-er","ethiopic-halehame-aa-et","ethiopic-halehame-am-et","ethiopic-halehame-gez","ethiopic-halehame-om-et","ethiopic-halehame-sid-et","ethiopic-halehame-so-et","ethiopic-halehame-ti-er","ethiopic-halehame-ti-et","ethiopic-halehame-tig","ethiopic-numeric","ew-resize","exclusion","expanded","extends","extra-condensed","extra-expanded","fantasy","fast","fill","fixed","flat","flex","flex-end","flex-start","footnotes","forwards","from","geometricPrecision","georgian","graytext","grid","groove","gujarati","gurmukhi","hand","hangul","hangul-consonant","hard-light","hebrew","help","hidden","hide","higher","highlight","highlighttext","hiragana","hiragana-iroha","horizontal","hsl","hsla","hue","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-flex","inline-grid","inline-table","inset","inside","intrinsic","invert","italic","japanese-formal","japanese-informal","justify","kannada","katakana","katakana-iroha","keep-all","khmer","korean-hangul-formal","korean-hanja-formal","korean-hanja-informal","landscape","lao","large","larger","left","level","lighter","lighten","line-through","linear","linear-gradient","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-alpha","lower-armenian","lower-greek","lower-hexadecimal","lower-latin","lower-norwegian","lower-roman","lowercase","ltr","luminosity","malayalam","match","matrix","matrix3d","media-controls-background","media-current-time-display","media-fullscreen-button","media-mute-button","media-play-button","media-return-to-realtime-button","media-rewind-button","media-seek-back-button","media-seek-forward-button","media-slider","media-sliderthumb","media-time-remaining-display","media-volume-slider","media-volume-slider-container","media-volume-sliderthumb","medium","menu","menulist","menulist-button","menulist-text","menulist-textfield","menutext","message-box","middle","min-intrinsic","mix","mongolian","monospace","move","multiple","multiply","myanmar","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","numbers","numeric","nw-resize","nwse-resize","oblique","octal","opacity","open-quote","optimizeLegibility","optimizeSpeed","oriya","oromo","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","persian","perspective","plus-darker","plus-lighter","pointer","polygon","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radial-gradient","radio","read-only","read-write","read-write-plaintext-only","rectangle","region","relative","repeat","repeating-linear-gradient","repeating-radial-gradient","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","rotate","rotate3d","rotateX","rotateY","rotateZ","round","row","row-resize","row-reverse","rtl","run-in","running","s-resize","sans-serif","saturation","scale","scale3d","scaleX","scaleY","scaleZ","screen","scroll","scrollbar","scroll-position","se-resize","searchfield","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","self-start","self-end","semi-condensed","semi-expanded","separate","serif","show","sidama","simp-chinese-formal","simp-chinese-informal","single","skew","skewX","skewY","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","soft-light","solid","somali","source-atop","source-in","source-out","source-over","space","space-around","space-between","space-evenly","spell-out","square","square-button","start","static","status-bar","stretch","stroke","sub","subpixel-antialiased","super","sw-resize","symbolic","symbols","system-ui","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","tamil","telugu","text","text-bottom","text-top","textarea","textfield","thai","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","tibetan","tigre","tigrinya-er","tigrinya-er-abegede","tigrinya-et","tigrinya-et-abegede","to","top","trad-chinese-formal","trad-chinese-informal","transform","translate","translate3d","translateX","translateY","translateZ","transparent","ultra-condensed","ultra-expanded","underline","unset","up","upper-alpha","upper-armenian","upper-greek","upper-hexadecimal","upper-latin","upper-norwegian","upper-roman","uppercase","urdu","url","var","vertical","vertical-text","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","words","wrap","wrap-reverse","x-large","x-small","xor","xx-large","xx-small"],k=t(w),C=r.concat(o).concat(s).concat(c).concat(f).concat(h).concat(b).concat(w);e.registerHelper("hintWords","css",C),e.defineMIME("text/css",{documentTypes:i,mediaTypes:a,mediaFeatures:l,mediaValueKeywords:u,propertyKeywords:d,nonStandardPropertyKeywords:p,fontProperties:g,counterDescriptors:y,colorKeywords:x,valueKeywords:k,tokenHooks:{"/":function(e,t){return!!e.eat("*")&&(t.tokenize=n,n(e,t))}},name:"css"}),e.defineMIME("text/x-scss",{mediaTypes:a,mediaFeatures:l,mediaValueKeywords:u,propertyKeywords:d,nonStandardPropertyKeywords:p,colorKeywords:x,valueKeywords:k,fontProperties:g,allowNested:!0,lineComment:"//",tokenHooks:{"/":function(e,t){return e.eat("/")?(e.skipToEnd(),["comment","comment"]):e.eat("*")?(t.tokenize=n,n(e,t)):["operator","operator"]},":":function(e){return!!e.match(/\s*\{/,!1)&&[null,null]},$:function(e){return e.match(/^[\w-]+/),e.match(/^\s*:/,!1)?["variable-2","variable-definition"]:["variable-2","variable"]},"#":function(e){return!!e.eat("{")&&[null,"interpolation"]}},name:"css",helperType:"scss"}),e.defineMIME("text/x-less",{mediaTypes:a,mediaFeatures:l,mediaValueKeywords:u,propertyKeywords:d,nonStandardPropertyKeywords:p,colorKeywords:x,valueKeywords:k,fontProperties:g,allowNested:!0,lineComment:"//",tokenHooks:{"/":function(e,t){return e.eat("/")?(e.skipToEnd(),["comment","comment"]):e.eat("*")?(t.tokenize=n,n(e,t)):["operator","operator"]},"@":function(e){return e.eat("{")?[null,"interpolation"]:!e.match(/^(charset|document|font-face|import|(-(moz|ms|o|webkit)-)?keyframes|media|namespace|page|supports)\b/,!1)&&(e.eatWhile(/[\w\\\-]/),e.match(/^\s*:/,!1)?["variable-2","variable-definition"]:["variable-2","variable"])},"&":function(){return["atom","atom"]}},name:"css",helperType:"less"}),e.defineMIME("text/x-gss",{documentTypes:i,mediaTypes:a,mediaFeatures:l,propertyKeywords:d,nonStandardPropertyKeywords:p,fontProperties:g,counterDescriptors:y,colorKeywords:x,valueKeywords:k,supportsAtComponent:!0,tokenHooks:{"/":function(e,t){return!!e.eat("*")&&(t.tokenize=n,n(e,t))}},name:"css",helperType:"gss"})}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror"),require("../xml/xml"),require("../javascript/javascript"),require("../css/css")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","../xml/xml","../javascript/javascript","../css/css"],e):e(CodeMirror)}(function(e){"use strict";function t(e,t,n){var r=e.current(),i=r.search(t);return i>-1?e.backUp(r.length-i):r.match(/<\/?$/)&&(e.backUp(r.length),e.match(t,!1)||e.match(r)),n}function n(e){var t=l[e];return t?t:l[e]=new RegExp("\\s+"+e+"\\s*=\\s*('|\")?([^'\"]+)('|\")?\\s*")}function r(e,t){var r=e.match(n(t));return r?/^\s*(.*?)\s*$/.exec(r[2])[1]:""}function i(e,t){return new RegExp((t?"^":"")+"</s*"+e+"s*>","i")}function o(e,t){for(var n in e)for(var r=t[n]||(t[n]=[]),i=e[n],o=i.length-1;o>=0;o--)r.unshift(i[o])}function a(e,t){for(var n=0;n<e.length;n++){var i=e[n];if(!i[0]||i[1].test(r(t,i[0])))return i[2]}}var s={script:[["lang",/(javascript|babel)/i,"javascript"],["type",/^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^module$|^$/i,"javascript"],["type",/./,"text/plain"],[null,null,"javascript"]],style:[["lang",/^css$/i,"css"],["type",/^(text\/)?(x-)?(stylesheet|css)$/i,"css"],["type",/./,"text/plain"],[null,null,"css"]]},l={};e.defineMode("htmlmixed",function(n,r){function l(r,o){var s,f=c.token(r,o.htmlState),d=/\btag\b/.test(f);if(d&&!/[<>\s\/]/.test(r.current())&&(s=o.htmlState.tagName&&o.htmlState.tagName.toLowerCase())&&u.hasOwnProperty(s))o.inTag=s+" ";else if(o.inTag&&d&&/>$/.test(r.current())){var h=/^([\S]+) (.*)/.exec(o.inTag);o.inTag=null;var p=">"==r.current()&&a(u[h[1]],h[2]),m=e.getMode(n,p),g=i(h[1],!0),v=i(h[1],!1);o.token=function(e,n){return e.match(g,!1)?(n.token=l,n.localState=n.localMode=null,null):t(e,v,n.localMode.token(e,n.localState))},o.localMode=m,o.localState=e.startState(m,c.indent(o.htmlState,""))}else o.inTag&&(o.inTag+=r.current(),r.eol()&&(o.inTag+=" "));return f}var c=e.getMode(n,{name:"xml",htmlMode:!0,multilineTagIndentFactor:r.multilineTagIndentFactor,multilineTagIndentPastTag:r.multilineTagIndentPastTag}),u={},f=r&&r.tags,d=r&&r.scriptTypes;if(o(s,u),f&&o(f,u),d)for(var h=d.length-1;h>=0;h--)u.script.unshift(["type",d[h].matches,d[h].mode]);return{startState:function(){return{token:l,inTag:null,localMode:null,localState:null,htmlState:e.startState(c)}},copyState:function(t){var n;return t.localState&&(n=e.copyState(t.localMode,t.localState)),{token:t.token,inTag:t.inTag,localMode:t.localMode,localState:n,htmlState:e.copyState(c,t.htmlState)}},token:function(e,t){return t.token(e,t)},indent:function(t,n,r){return!t.localMode||/^\s*<\//.test(n)?c.indent(t.htmlState,n):t.localMode.indent?t.localMode.indent(t.localState,n,r):e.Pass},innerMode:function(e){return{state:e.localState||e.htmlState,mode:e.localMode||c}}}},"xml","javascript","css"),e.defineMIME("text/html","htmlmixed")}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";function t(e,t,n,r,i,o){this.indented=e,this.column=t,this.type=n,this.info=r,this.align=i,this.prev=o}function n(e,n,r,i){var o=e.indented;return e.context&&"statement"==e.context.type&&"statement"!=r&&(o=e.context.indented),e.context=new t(o,n,r,i,null,e.context)}function r(e){var t=e.context.type;return")"!=t&&"]"!=t&&"}"!=t||(e.indented=e.context.indented),e.context=e.context.prev}function i(e,t,n){return"variable"==t.prevToken||"type"==t.prevToken||(!!/\S(?:[^- ]>|[*\]])\s*$|\*$/.test(e.string.slice(0,n))||(!(!t.typeAtEndOfLine||e.column()!=e.indentation())||void 0))}function o(e){for(;;){if(!e||"top"==e.type)return!0;if("}"==e.type&&"namespace"!=e.prev.info)return!1;e=e.prev}}function a(e){for(var t={},n=e.split(" "),r=0;r<n.length;++r)t[n[r]]=!0;return t}function s(e,t){return"function"==typeof e?e(t):e.propertyIsEnumerable(t)}function l(e,t){if(!t.startOfLine)return!1;for(var n,r=null;n=e.peek();){if("\\"==n&&e.match(/^.$/)){r=l;break}if("/"==n&&e.match(/^\/[\/\*]/,!1))break;e.next()}return t.tokenize=r,"meta"}function c(e,t){return"type"==t.prevToken&&"type"}function u(e){return e.eatWhile(/[\w\.']/),"number"}function f(e,t){if(e.backUp(1),e.match(/(R|u8R|uR|UR|LR)/)){var n=e.match(/"([^\s\\()]{0,16})\(/);return!!n&&(t.cpp11RawStringDelim=n[1],t.tokenize=p,p(e,t))}return e.match(/(u8|u|U|L)/)?!!e.match(/["']/,!1)&&"string":(e.next(),!1)}function d(e){var t=/(\w+)::~?(\w+)$/.exec(e);return t&&t[1]==t[2]}function h(e,t){for(var n;null!=(n=e.next());)if('"'==n&&!e.eat('"')){t.tokenize=null;break}return"string"}function p(e,t){var n=t.cpp11RawStringDelim.replace(/[^\w\s]/g,"\\$&");return e.match(new RegExp(".*?\\)"+n+'"'))?t.tokenize=null:e.skipToEnd(),"string"}function m(t,n){function r(e){if(e)for(var t in e)e.hasOwnProperty(t)&&i.push(t)}"string"==typeof t&&(t=[t]);var i=[];r(n.keywords),r(n.types),r(n.builtin),r(n.atoms),i.length&&(n.helperType=t[0],e.registerHelper("hintWords",t[0],i));for(var o=0;o<t.length;++o)e.defineMIME(t[o],n)}function g(e,t){for(var n=!1;!e.eol();){if(!n&&e.match('"""')){t.tokenize=null;break}n="\\"==e.next()&&!n}return"string"}function v(e){return function(t,n){for(var r,i=!1,o=!1;!t.eol();){if(!e&&!i&&t.match('"')){o=!0;break}if(e&&t.match('"""')){o=!0;break}r=t.next(),!i&&"$"==r&&t.match("{")&&t.skipTo("}"),i=!i&&"\\"==r&&!e}return!o&&e||(n.tokenize=null),"string"}}function y(e){return function(t,n){for(var r,i=!1,o=!1;!t.eol();){if(!i&&t.match('"')&&("single"==e||t.match('""'))){o=!0;break}if(!i&&t.match("``")){w=y(e),o=!0;break}r=t.next(),i="single"==e&&!i&&"\\"==r}return o&&(n.tokenize=null),"string"}}e.defineMode("clike",function(a,l){function c(e,t){var n=e.next();if(S[n]){var r=S[n](e,t);if(r!==!1)return r}if('"'==n||"'"==n)return t.tokenize=u(n),t.tokenize(e,t);if(A.test(n))return h=n,null;if(O.test(n)){if(e.backUp(1),e.match(E))return"number";e.next()}if("/"==n){if(e.eat("*"))return t.tokenize=f,f(e,t);if(e.eat("/"))return e.skipToEnd(),"comment"}if(N.test(n)){for(;!e.match(/^\/[\/*]/,!1)&&e.eat(N););return"operator"}if(e.eatWhile(I),T)for(;e.match(T);)e.eatWhile(I);var i=e.current();return s(y,i)?(s(w,i)&&(h="newstatement"),s(k,i)&&(p=!0),"keyword"):s(b,i)?"type":s(x,i)?(s(w,i)&&(h="newstatement"),"builtin"):s(C,i)?"atom":"variable"}function u(e){return function(t,n){for(var r,i=!1,o=!1;null!=(r=t.next());){if(r==e&&!i){o=!0;break}i=!i&&"\\"==r}return(o||!i&&!_)&&(n.tokenize=null),"string"}}function f(e,t){for(var n,r=!1;n=e.next();){if("/"==n&&r){t.tokenize=null;break}r="*"==n}return"comment"}function d(e,t){l.typeFirstDefinitions&&e.eol()&&o(t.context)&&(t.typeAtEndOfLine=i(e,t,e.pos))}var h,p,m=a.indentUnit,g=l.statementIndentUnit||m,v=l.dontAlignCalls,y=l.keywords||{},b=l.types||{},x=l.builtin||{},w=l.blockKeywords||{},k=l.defKeywords||{},C=l.atoms||{},S=l.hooks||{},_=l.multiLineStrings,M=l.indentStatements!==!1,L=l.indentSwitch!==!1,T=l.namespaceSeparator,A=l.isPunctuationChar||/[\[\]{}\(\),;\:\.]/,O=l.numberStart||/[\d\.]/,E=l.number||/^(?:0x[a-f\d]+|0b[01]+|(?:\d+\.?\d*|\.\d+)(?:e[-+]?\d+)?)(u|ll?|l|f)?/i,N=l.isOperatorChar||/[+\-*&%=<>!?|\/]/,I=l.isIdentifierChar||/[\w\$_\xa1-\uffff]/;return{startState:function(e){return{tokenize:null,context:new t((e||0)-m,0,"top",null,!1),indented:0,startOfLine:!0,prevToken:null}},token:function(e,t){var a=t.context;if(e.sol()&&(null==a.align&&(a.align=!1),t.indented=e.indentation(),t.startOfLine=!0),e.eatSpace())return d(e,t),null;h=p=null;var s=(t.tokenize||c)(e,t);if("comment"==s||"meta"==s)return s;if(null==a.align&&(a.align=!0),";"==h||":"==h||","==h&&e.match(/^\s*(?:\/\/.*)?$/,!1))for(;"statement"==t.context.type;)r(t);else if("{"==h)n(t,e.column(),"}");else if("["==h)n(t,e.column(),"]");else if("("==h)n(t,e.column(),")");else if("}"==h){for(;"statement"==a.type;)a=r(t);for("}"==a.type&&(a=r(t));"statement"==a.type;)a=r(t)}else h==a.type?r(t):M&&(("}"==a.type||"top"==a.type)&&";"!=h||"statement"==a.type&&"newstatement"==h)&&n(t,e.column(),"statement",e.current());if("variable"==s&&("def"==t.prevToken||l.typeFirstDefinitions&&i(e,t,e.start)&&o(t.context)&&e.match(/^\s*\(/,!1))&&(s="def"),S.token){var u=S.token(e,t,s);void 0!==u&&(s=u)}return"def"==s&&l.styleDefs===!1&&(s="variable"),t.startOfLine=!1,t.prevToken=p?"def":s||h,d(e,t),s},indent:function(t,n){if(t.tokenize!=c&&null!=t.tokenize||t.typeAtEndOfLine)return e.Pass;var r=t.context,i=n&&n.charAt(0);if("statement"==r.type&&"}"==i&&(r=r.prev),l.dontIndentStatements)for(;"statement"==r.type&&l.dontIndentStatements.test(r.info);)r=r.prev;if(S.indent){var o=S.indent(t,r,n);if("number"==typeof o)return o}var a=i==r.type,s=r.prev&&"switch"==r.prev.info;if(l.allmanIndentation&&/[{(]/.test(i)){for(;"top"!=r.type&&"}"!=r.type;)r=r.prev;return r.indented}return"statement"==r.type?r.indented+("{"==i?0:g):!r.align||v&&")"==r.type?")"!=r.type||a?r.indented+(a?0:m)+(a||!s||/^(?:case|default)\b/.test(n)?0:m):r.indented+g:r.column+(a?0:1)},electricInput:L?/^\s*(?:case .*?:|default:|\{\}?|\})$/:/^\s*[{}]$/,blockCommentStart:"/*",blockCommentEnd:"*/",lineComment:"//",fold:"brace"}});var b="auto if break case register continue return default do sizeof static else struct switch extern typedef union for goto while enum const volatile",x="int long char short double float unsigned signed void size_t ptrdiff_t";m(["text/x-csrc","text/x-c","text/x-chdr"],{name:"clike",keywords:a(b),types:a(x+" bool _Complex _Bool float_t double_t intptr_t intmax_t int8_t int16_t int32_t int64_t uintptr_t uintmax_t uint8_t uint16_t uint32_t uint64_t"),blockKeywords:a("case do else for if switch while struct"),defKeywords:a("struct"),typeFirstDefinitions:!0,atoms:a("null true false"),hooks:{"#":l,"*":c},modeProps:{fold:["brace","include"]}}),m(["text/x-c++src","text/x-c++hdr"],{name:"clike",keywords:a(b+" asm dynamic_cast namespace reinterpret_cast try explicit new static_cast typeid catch operator template typename class friend private this using const_cast inline public throw virtual delete mutable protected alignas alignof constexpr decltype nullptr noexcept thread_local final static_assert override"),types:a(x+" bool wchar_t"),blockKeywords:a("catch class do else finally for if struct switch try while"),defKeywords:a("class namespace struct enum union"),typeFirstDefinitions:!0,atoms:a("true false null"),dontIndentStatements:/^template$/,isIdentifierChar:/[\w\$_~\xa1-\uffff]/,hooks:{"#":l,"*":c,u:f,U:f,L:f,R:f,0:u,1:u,2:u,3:u,4:u,5:u,6:u,7:u,8:u,9:u,token:function(e,t,n){if("variable"==n&&"("==e.peek()&&(";"==t.prevToken||null==t.prevToken||"}"==t.prevToken)&&d(e.current()))return"def"}},namespaceSeparator:"::",modeProps:{fold:["brace","include"]}}),m("text/x-java",{name:"clike",keywords:a("abstract assert break case catch class const continue default do else enum extends final finally float for goto if implements import instanceof interface native new package private protected public return static strictfp super switch synchronized this throw throws transient try volatile while @interface"),types:a("byte short int long float double boolean char void Boolean Byte Character Double Float Integer Long Number Object Short String StringBuffer StringBuilder Void"),blockKeywords:a("catch class do else finally for if switch try while"),defKeywords:a("class interface package enum @interface"),typeFirstDefinitions:!0,atoms:a("true false null"),number:/^(?:0x[a-f\d_]+|0b[01_]+|(?:[\d_]+\.?\d*|\.\d+)(?:e[-+]?[\d_]+)?)(u|ll?|l|f)?/i,hooks:{"@":function(e){return!e.match("interface",!1)&&(e.eatWhile(/[\w\$_]/),"meta")}},modeProps:{fold:["brace","import"]}}),m("text/x-csharp",{name:"clike",keywords:a("abstract as async await base break case catch checked class const continue default delegate do else enum event explicit extern finally fixed for foreach goto if implicit in interface internal is lock namespace new operator out override params private protected public readonly ref return sealed sizeof stackalloc static struct switch this throw try typeof unchecked unsafe using virtual void volatile while add alias ascending descending dynamic from get global group into join let orderby partial remove select set value var yield"),types:a("Action Boolean Byte Char DateTime DateTimeOffset Decimal Double Func Guid Int16 Int32 Int64 Object SByte Single String Task TimeSpan UInt16 UInt32 UInt64 bool byte char decimal double short int long object sbyte float string ushort uint ulong"),blockKeywords:a("catch class do else finally for foreach if struct switch try while"),defKeywords:a("class interface namespace struct var"),typeFirstDefinitions:!0,atoms:a("true false null"),hooks:{"@":function(e,t){return e.eat('"')?(t.tokenize=h,h(e,t)):(e.eatWhile(/[\w\$_]/),"meta")}}}),m("text/x-scala",{name:"clike",keywords:a("abstract case catch class def do else extends final finally for forSome if implicit import lazy match new null object override package private protected return sealed super this throw trait try type val var while with yield _ assert assume require print println printf readLine readBoolean readByte readShort readChar readInt readLong readFloat readDouble"),types:a("AnyVal App Application Array BufferedIterator BigDecimal BigInt Char Console Either Enumeration Equiv Error Exception Fractional Function IndexedSeq Int Integral Iterable Iterator List Map Numeric Nil NotNull Option Ordered Ordering PartialFunction PartialOrdering Product Proxy Range Responder Seq Serializable Set Specializable Stream StringBuilder StringContext Symbol Throwable Traversable TraversableOnce Tuple Unit Vector Boolean Byte Character CharSequence Class ClassLoader Cloneable Comparable Compiler Double Exception Float Integer Long Math Number Object Package Pair Process Runtime Runnable SecurityManager Short StackTraceElement StrictMath String StringBuffer System Thread ThreadGroup ThreadLocal Throwable Triple Void"),multiLineStrings:!0,
8
- blockKeywords:a("catch class enum do else finally for forSome if match switch try while"),defKeywords:a("class enum def object package trait type val var"),atoms:a("true false null"),indentStatements:!1,indentSwitch:!1,isOperatorChar:/[+\-*&%=<>!?|\/#:@]/,hooks:{"@":function(e){return e.eatWhile(/[\w\$_]/),"meta"},'"':function(e,t){return!!e.match('""')&&(t.tokenize=g,t.tokenize(e,t))},"'":function(e){return e.eatWhile(/[\w\$_\xa1-\uffff]/),"atom"},"=":function(e,n){var r=n.context;return!("}"!=r.type||!r.align||!e.eat(">"))&&(n.context=new t(r.indented,r.column,r.type,r.info,null,r.prev),"operator")}},modeProps:{closeBrackets:{triples:'"'}}}),m("text/x-kotlin",{name:"clike",keywords:a("package as typealias class interface this super val var fun for is in This throw return break continue object if else while do try when !in !is as? file import where by get set abstract enum open inner override private public internal protected catch finally out final vararg reified dynamic companion constructor init sealed field property receiver param sparam lateinit data inline noinline tailrec external annotation crossinline const operator infix suspend"),types:a("Boolean Byte Character CharSequence Class ClassLoader Cloneable Comparable Compiler Double Exception Float Integer Long Math Number Object Package Pair Process Runtime Runnable SecurityManager Short StackTraceElement StrictMath String StringBuffer System Thread ThreadGroup ThreadLocal Throwable Triple Void"),intendSwitch:!1,indentStatements:!1,multiLineStrings:!0,number:/^(?:0x[a-f\d_]+|0b[01_]+|(?:[\d_]+\.?\d*|\.\d+)(?:e[-+]?[\d_]+)?)(u|ll?|l|f)?/i,blockKeywords:a("catch class do else finally for if where try while enum"),defKeywords:a("class val var object package interface fun"),atoms:a("true false null this"),hooks:{'"':function(e,t){return t.tokenize=v(e.match('""')),t.tokenize(e,t)}},modeProps:{closeBrackets:{triples:'"'}}}),m(["x-shader/x-vertex","x-shader/x-fragment"],{name:"clike",keywords:a("sampler1D sampler2D sampler3D samplerCube sampler1DShadow sampler2DShadow const attribute uniform varying break continue discard return for while do if else struct in out inout"),types:a("float int bool void vec2 vec3 vec4 ivec2 ivec3 ivec4 bvec2 bvec3 bvec4 mat2 mat3 mat4"),blockKeywords:a("for while do if else struct"),builtin:a("radians degrees sin cos tan asin acos atan pow exp log exp2 sqrt inversesqrt abs sign floor ceil fract mod min max clamp mix step smoothstep length distance dot cross normalize ftransform faceforward reflect refract matrixCompMult lessThan lessThanEqual greaterThan greaterThanEqual equal notEqual any all not texture1D texture1DProj texture1DLod texture1DProjLod texture2D texture2DProj texture2DLod texture2DProjLod texture3D texture3DProj texture3DLod texture3DProjLod textureCube textureCubeLod shadow1D shadow2D shadow1DProj shadow2DProj shadow1DLod shadow2DLod shadow1DProjLod shadow2DProjLod dFdx dFdy fwidth noise1 noise2 noise3 noise4"),atoms:a("true false gl_FragColor gl_SecondaryColor gl_Normal gl_Vertex gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 gl_MultiTexCoord3 gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 gl_FogCoord gl_PointCoord gl_Position gl_PointSize gl_ClipVertex gl_FrontColor gl_BackColor gl_FrontSecondaryColor gl_BackSecondaryColor gl_TexCoord gl_FogFragCoord gl_FragCoord gl_FrontFacing gl_FragData gl_FragDepth gl_ModelViewMatrix gl_ProjectionMatrix gl_ModelViewProjectionMatrix gl_TextureMatrix gl_NormalMatrix gl_ModelViewMatrixInverse gl_ProjectionMatrixInverse gl_ModelViewProjectionMatrixInverse gl_TexureMatrixTranspose gl_ModelViewMatrixInverseTranspose gl_ProjectionMatrixInverseTranspose gl_ModelViewProjectionMatrixInverseTranspose gl_TextureMatrixInverseTranspose gl_NormalScale gl_DepthRange gl_ClipPlane gl_Point gl_FrontMaterial gl_BackMaterial gl_LightSource gl_LightModel gl_FrontLightModelProduct gl_BackLightModelProduct gl_TextureColor gl_EyePlaneS gl_EyePlaneT gl_EyePlaneR gl_EyePlaneQ gl_FogParameters gl_MaxLights gl_MaxClipPlanes gl_MaxTextureUnits gl_MaxTextureCoords gl_MaxVertexAttribs gl_MaxVertexUniformComponents gl_MaxVaryingFloats gl_MaxVertexTextureImageUnits gl_MaxTextureImageUnits gl_MaxFragmentUniformComponents gl_MaxCombineTextureImageUnits gl_MaxDrawBuffers"),indentSwitch:!1,hooks:{"#":l},modeProps:{fold:["brace","include"]}}),m("text/x-nesc",{name:"clike",keywords:a(b+"as atomic async call command component components configuration event generic implementation includes interface module new norace nx_struct nx_union post provides signal task uses abstract extends"),types:a(x),blockKeywords:a("case do else for if switch while struct"),atoms:a("null true false"),hooks:{"#":l},modeProps:{fold:["brace","include"]}}),m("text/x-objectivec",{name:"clike",keywords:a(b+"inline restrict _Bool _Complex _Imaginary BOOL Class bycopy byref id IMP in inout nil oneway out Protocol SEL self super atomic nonatomic retain copy readwrite readonly"),types:a(x),atoms:a("YES NO NULL NILL ON OFF true false"),hooks:{"@":function(e){return e.eatWhile(/[\w\$]/),"keyword"},"#":l,indent:function(e,t,n){if("statement"==t.type&&/^@\w/.test(n))return t.indented}},modeProps:{fold:"brace"}}),m("text/x-squirrel",{name:"clike",keywords:a("base break clone continue const default delete enum extends function in class foreach local resume return this throw typeof yield constructor instanceof static"),types:a(x),blockKeywords:a("case catch class else for foreach if switch try while"),defKeywords:a("function local class"),typeFirstDefinitions:!0,atoms:a("true false null"),hooks:{"#":l},modeProps:{fold:["brace","include"]}});var w=null;m("text/x-ceylon",{name:"clike",keywords:a("abstracts alias assembly assert assign break case catch class continue dynamic else exists extends finally for function given if import in interface is let module new nonempty object of out outer package return satisfies super switch then this throw try value void while"),types:function(e){var t=e.charAt(0);return t===t.toUpperCase()&&t!==t.toLowerCase()},blockKeywords:a("case catch class dynamic else finally for function if interface module new object switch try while"),defKeywords:a("class dynamic function interface module object package value"),builtin:a("abstract actual aliased annotation by default deprecated doc final formal late license native optional sealed see serializable shared suppressWarnings tagged throws variable"),isPunctuationChar:/[\[\]{}\(\),;\:\.`]/,isOperatorChar:/[+\-*&%=<>!?|^~:\/]/,numberStart:/[\d#$]/,number:/^(?:#[\da-fA-F_]+|\$[01_]+|[\d_]+[kMGTPmunpf]?|[\d_]+\.[\d_]+(?:[eE][-+]?\d+|[kMGTPmunpf]|)|)/i,multiLineStrings:!0,typeFirstDefinitions:!0,atoms:a("true false null larger smaller equal empty finished"),indentSwitch:!1,styleDefs:!1,hooks:{"@":function(e){return e.eatWhile(/[\w\$_]/),"meta"},'"':function(e,t){return t.tokenize=y(e.match('""')?"triple":"single"),t.tokenize(e,t)},"`":function(e,t){return!(!w||!e.match("`"))&&(t.tokenize=w,w=null,t.tokenize(e,t))},"'":function(e){return e.eatWhile(/[\w\$_\xa1-\uffff]/),"atom"},token:function(e,t,n){if(("variable"==n||"type"==n)&&"."==t.prevToken)return"variable-2"}},modeProps:{fold:["brace","import"],closeBrackets:{triples:'"'}}})}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror"),require("../htmlmixed/htmlmixed"),require("../clike/clike")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","../htmlmixed/htmlmixed","../clike/clike"],e):e(CodeMirror)}(function(e){"use strict";function t(e){for(var t={},n=e.split(" "),r=0;r<n.length;++r)t[n[r]]=!0;return t}function n(e,t,i){return 0==e.length?r(t):function(o,a){for(var s=e[0],l=0;l<s.length;l++)if(o.match(s[l][0]))return a.tokenize=n(e.slice(1),t),s[l][1];return a.tokenize=r(t,i),"string"}}function r(e,t){return function(n,r){return i(n,r,e,t)}}function i(e,t,r,i){if(i!==!1&&e.match("${",!1)||e.match("{$",!1))return t.tokenize=null,"string";if(i!==!1&&e.match(/^\$[a-zA-Z_][a-zA-Z0-9_]*/))return e.match("[",!1)&&(t.tokenize=n([[["[",null]],[[/\d[\w\.]*/,"number"],[/\$[a-zA-Z_][a-zA-Z0-9_]*/,"variable-2"],[/[\w\$]+/,"variable"]],[["]",null]]],r,i)),e.match(/\-\>\w/,!1)&&(t.tokenize=n([[["->",null]],[[/[\w]+/,"variable"]]],r,i)),"variable-2";for(var o=!1;!e.eol()&&(o||i===!1||!e.match("{$",!1)&&!e.match(/^(\$[a-zA-Z_][a-zA-Z0-9_]*|\$\{)/,!1));){if(!o&&e.match(r)){t.tokenize=null,t.tokStack.pop(),t.tokStack.pop();break}o="\\"==e.next()&&!o}return"string"}var o="abstract and array as break case catch class clone const continue declare default do else elseif enddeclare endfor endforeach endif endswitch endwhile extends final for foreach function global goto if implements interface instanceof namespace new or private protected public static switch throw trait try use var while xor die echo empty exit eval include include_once isset list require require_once return print unset __halt_compiler self static parent yield insteadof finally",a="true false null TRUE FALSE NULL __CLASS__ __DIR__ __FILE__ __LINE__ __METHOD__ __FUNCTION__ __NAMESPACE__ __TRAIT__",s="func_num_args func_get_arg func_get_args strlen strcmp strncmp strcasecmp strncasecmp each error_reporting define defined trigger_error user_error set_error_handler restore_error_handler get_declared_classes get_loaded_extensions extension_loaded get_extension_funcs debug_backtrace constant bin2hex hex2bin sleep usleep time mktime gmmktime strftime gmstrftime strtotime date gmdate getdate localtime checkdate flush wordwrap htmlspecialchars htmlentities html_entity_decode md5 md5_file crc32 getimagesize image_type_to_mime_type phpinfo phpversion phpcredits strnatcmp strnatcasecmp substr_count strspn strcspn strtok strtoupper strtolower strpos strrpos strrev hebrev hebrevc nl2br basename dirname pathinfo stripslashes stripcslashes strstr stristr strrchr str_shuffle str_word_count strcoll substr substr_replace quotemeta ucfirst ucwords strtr addslashes addcslashes rtrim str_replace str_repeat count_chars chunk_split trim ltrim strip_tags similar_text explode implode setlocale localeconv parse_str str_pad chop strchr sprintf printf vprintf vsprintf sscanf fscanf parse_url urlencode urldecode rawurlencode rawurldecode readlink linkinfo link unlink exec system escapeshellcmd escapeshellarg passthru shell_exec proc_open proc_close rand srand getrandmax mt_rand mt_srand mt_getrandmax base64_decode base64_encode abs ceil floor round is_finite is_nan is_infinite bindec hexdec octdec decbin decoct dechex base_convert number_format fmod ip2long long2ip getenv putenv getopt microtime gettimeofday getrusage uniqid quoted_printable_decode set_time_limit get_cfg_var magic_quotes_runtime set_magic_quotes_runtime get_magic_quotes_gpc get_magic_quotes_runtime import_request_variables error_log serialize unserialize memory_get_usage var_dump var_export debug_zval_dump print_r highlight_file show_source highlight_string ini_get ini_get_all ini_set ini_alter ini_restore get_include_path set_include_path restore_include_path setcookie header headers_sent connection_aborted connection_status ignore_user_abort parse_ini_file is_uploaded_file move_uploaded_file intval floatval doubleval strval gettype settype is_null is_resource is_bool is_long is_float is_int is_integer is_double is_real is_numeric is_string is_array is_object is_scalar ereg ereg_replace eregi eregi_replace split spliti join sql_regcase dl pclose popen readfile rewind rmdir umask fclose feof fgetc fgets fgetss fread fopen fpassthru ftruncate fstat fseek ftell fflush fwrite fputs mkdir rename copy tempnam tmpfile file file_get_contents file_put_contents stream_select stream_context_create stream_context_set_params stream_context_set_option stream_context_get_options stream_filter_prepend stream_filter_append fgetcsv flock get_meta_tags stream_set_write_buffer set_file_buffer set_socket_blocking stream_set_blocking socket_set_blocking stream_get_meta_data stream_register_wrapper stream_wrapper_register stream_set_timeout socket_set_timeout socket_get_status realpath fnmatch fsockopen pfsockopen pack unpack get_browser crypt opendir closedir chdir getcwd rewinddir readdir dir glob fileatime filectime filegroup fileinode filemtime fileowner fileperms filesize filetype file_exists is_writable is_writeable is_readable is_executable is_file is_dir is_link stat lstat chown touch clearstatcache mail ob_start ob_flush ob_clean ob_end_flush ob_end_clean ob_get_flush ob_get_clean ob_get_length ob_get_level ob_get_status ob_get_contents ob_implicit_flush ob_list_handlers ksort krsort natsort natcasesort asort arsort sort rsort usort uasort uksort shuffle array_walk count end prev next reset current key min max in_array array_search extract compact array_fill range array_multisort array_push array_pop array_shift array_unshift array_splice array_slice array_merge array_merge_recursive array_keys array_values array_count_values array_reverse array_reduce array_pad array_flip array_change_key_case array_rand array_unique array_intersect array_intersect_assoc array_diff array_diff_assoc array_sum array_filter array_map array_chunk array_key_exists array_intersect_key array_combine array_column pos sizeof key_exists assert assert_options version_compare ftok str_rot13 aggregate session_name session_module_name session_save_path session_id session_regenerate_id session_decode session_register session_unregister session_is_registered session_encode session_start session_destroy session_unset session_set_save_handler session_cache_limiter session_cache_expire session_set_cookie_params session_get_cookie_params session_write_close preg_match preg_match_all preg_replace preg_replace_callback preg_split preg_quote preg_grep overload ctype_alnum ctype_alpha ctype_cntrl ctype_digit ctype_lower ctype_graph ctype_print ctype_punct ctype_space ctype_upper ctype_xdigit virtual apache_request_headers apache_note apache_lookup_uri apache_child_terminate apache_setenv apache_response_headers apache_get_version getallheaders mysql_connect mysql_pconnect mysql_close mysql_select_db mysql_create_db mysql_drop_db mysql_query mysql_unbuffered_query mysql_db_query mysql_list_dbs mysql_list_tables mysql_list_fields mysql_list_processes mysql_error mysql_errno mysql_affected_rows mysql_insert_id mysql_result mysql_num_rows mysql_num_fields mysql_fetch_row mysql_fetch_array mysql_fetch_assoc mysql_fetch_object mysql_data_seek mysql_fetch_lengths mysql_fetch_field mysql_field_seek mysql_free_result mysql_field_name mysql_field_table mysql_field_len mysql_field_type mysql_field_flags mysql_escape_string mysql_real_escape_string mysql_stat mysql_thread_id mysql_client_encoding mysql_get_client_info mysql_get_host_info mysql_get_proto_info mysql_get_server_info mysql_info mysql mysql_fieldname mysql_fieldtable mysql_fieldlen mysql_fieldtype mysql_fieldflags mysql_selectdb mysql_createdb mysql_dropdb mysql_freeresult mysql_numfields mysql_numrows mysql_listdbs mysql_listtables mysql_listfields mysql_db_name mysql_dbname mysql_tablename mysql_table_name pg_connect pg_pconnect pg_close pg_connection_status pg_connection_busy pg_connection_reset pg_host pg_dbname pg_port pg_tty pg_options pg_ping pg_query pg_send_query pg_cancel_query pg_fetch_result pg_fetch_row pg_fetch_assoc pg_fetch_array pg_fetch_object pg_fetch_all pg_affected_rows pg_get_result pg_result_seek pg_result_status pg_free_result pg_last_oid pg_num_rows pg_num_fields pg_field_name pg_field_num pg_field_size pg_field_type pg_field_prtlen pg_field_is_null pg_get_notify pg_get_pid pg_result_error pg_last_error pg_last_notice pg_put_line pg_end_copy pg_copy_to pg_copy_from pg_trace pg_untrace pg_lo_create pg_lo_unlink pg_lo_open pg_lo_close pg_lo_read pg_lo_write pg_lo_read_all pg_lo_import pg_lo_export pg_lo_seek pg_lo_tell pg_escape_string pg_escape_bytea pg_unescape_bytea pg_client_encoding pg_set_client_encoding pg_meta_data pg_convert pg_insert pg_update pg_delete pg_select pg_exec pg_getlastoid pg_cmdtuples pg_errormessage pg_numrows pg_numfields pg_fieldname pg_fieldsize pg_fieldtype pg_fieldnum pg_fieldprtlen pg_fieldisnull pg_freeresult pg_result pg_loreadall pg_locreate pg_lounlink pg_loopen pg_loclose pg_loread pg_lowrite pg_loimport pg_loexport http_response_code get_declared_traits getimagesizefromstring socket_import_stream stream_set_chunk_size trait_exists header_register_callback class_uses session_status session_register_shutdown echo print global static exit array empty eval isset unset die include require include_once require_once json_decode json_encode json_last_error json_last_error_msg curl_close curl_copy_handle curl_errno curl_error curl_escape curl_exec curl_file_create curl_getinfo curl_init curl_multi_add_handle curl_multi_close curl_multi_exec curl_multi_getcontent curl_multi_info_read curl_multi_init curl_multi_remove_handle curl_multi_select curl_multi_setopt curl_multi_strerror curl_pause curl_reset curl_setopt_array curl_setopt curl_share_close curl_share_init curl_share_setopt curl_strerror curl_unescape curl_version mysqli_affected_rows mysqli_autocommit mysqli_change_user mysqli_character_set_name mysqli_close mysqli_commit mysqli_connect_errno mysqli_connect_error mysqli_connect mysqli_data_seek mysqli_debug mysqli_dump_debug_info mysqli_errno mysqli_error_list mysqli_error mysqli_fetch_all mysqli_fetch_array mysqli_fetch_assoc mysqli_fetch_field_direct mysqli_fetch_field mysqli_fetch_fields mysqli_fetch_lengths mysqli_fetch_object mysqli_fetch_row mysqli_field_count mysqli_field_seek mysqli_field_tell mysqli_free_result mysqli_get_charset mysqli_get_client_info mysqli_get_client_stats mysqli_get_client_version mysqli_get_connection_stats mysqli_get_host_info mysqli_get_proto_info mysqli_get_server_info mysqli_get_server_version mysqli_info mysqli_init mysqli_insert_id mysqli_kill mysqli_more_results mysqli_multi_query mysqli_next_result mysqli_num_fields mysqli_num_rows mysqli_options mysqli_ping mysqli_prepare mysqli_query mysqli_real_connect mysqli_real_escape_string mysqli_real_query mysqli_reap_async_query mysqli_refresh mysqli_rollback mysqli_select_db mysqli_set_charset mysqli_set_local_infile_default mysqli_set_local_infile_handler mysqli_sqlstate mysqli_ssl_set mysqli_stat mysqli_stmt_init mysqli_store_result mysqli_thread_id mysqli_thread_safe mysqli_use_result mysqli_warning_count";e.registerHelper("hintWords","php",[o,a,s].join(" ").split(" ")),e.registerHelper("wordChars","php",/[\w$]/);var l={name:"clike",helperType:"php",keywords:t(o),blockKeywords:t("catch do else elseif for foreach if switch try while finally"),defKeywords:t("class function interface namespace trait"),atoms:t(a),builtin:t(s),multiLineStrings:!0,hooks:{$:function(e){return e.eatWhile(/[\w\$_]/),"variable-2"},"<":function(e,t){var n;if(n=e.match(/<<\s*/)){var i=e.eat(/['"]/);e.eatWhile(/[\w\.]/);var o=e.current().slice(n[0].length+(i?2:1));if(i&&e.eat(i),o)return(t.tokStack||(t.tokStack=[])).push(o,0),t.tokenize=r(o,"'"!=i),"string"}return!1},"#":function(e){for(;!e.eol()&&!e.match("?>",!1);)e.next();return"comment"},"/":function(e){if(e.eat("/")){for(;!e.eol()&&!e.match("?>",!1);)e.next();return"comment"}return!1},'"':function(e,t){return(t.tokStack||(t.tokStack=[])).push('"',0),t.tokenize=r('"'),"string"},"{":function(e,t){return t.tokStack&&t.tokStack.length&&t.tokStack[t.tokStack.length-1]++,!1},"}":function(e,t){return t.tokStack&&t.tokStack.length>0&&!--t.tokStack[t.tokStack.length-1]&&(t.tokenize=r(t.tokStack[t.tokStack.length-2])),!1}}};e.defineMode("php",function(t,n){function r(t,n){var r=n.curMode==o;if(t.sol()&&n.pending&&'"'!=n.pending&&"'"!=n.pending&&(n.pending=null),r)return r&&null==n.php.tokenize&&t.match("?>")?(n.curMode=i,n.curState=n.html,n.php.context.prev||(n.php=null),"meta"):o.token(t,n.curState);if(t.match(/^<\?\w*/))return n.curMode=o,n.php||(n.php=e.startState(o,i.indent(n.html,""))),n.curState=n.php,"meta";if('"'==n.pending||"'"==n.pending){for(;!t.eol()&&t.next()!=n.pending;);var a="string"}else if(n.pending&&t.pos<n.pending.end){t.pos=n.pending.end;var a=n.pending.style}else var a=i.token(t,n.curState);n.pending&&(n.pending=null);var s,l=t.current(),c=l.search(/<\?/);return c!=-1&&("string"==a&&(s=l.match(/[\'\"]$/))&&!/\?>/.test(l)?n.pending=s[0]:n.pending={end:t.pos,style:a},t.backUp(l.length-c)),a}var i=e.getMode(t,"text/html"),o=e.getMode(t,l);return{startState:function(){var t=e.startState(i),r=n.startOpen?e.startState(o):null;return{html:t,php:r,curMode:n.startOpen?o:i,curState:n.startOpen?r:t,pending:null}},copyState:function(t){var n,r=t.html,a=e.copyState(i,r),s=t.php,l=s&&e.copyState(o,s);return n=t.curMode==i?a:l,{html:a,php:l,curMode:t.curMode,curState:n,pending:t.pending}},token:r,indent:function(e,t){return e.curMode!=o&&/^\s*<\//.test(t)||e.curMode==o&&/^\?>/.test(t)?i.indent(e.html,t):e.curMode.indent(e.curState,t)},blockCommentStart:"/*",blockCommentEnd:"*/",lineComment:"//",innerMode:function(e){return{state:e.curState,mode:e.curMode}}}},"htmlmixed","clike"),e.defineMIME("application/x-httpd-php","php"),e.defineMIME("application/x-httpd-php-open",{name:"php",startOpen:!0}),e.defineMIME("text/x-php",l)}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";var t={allowUnquoted:!0,allowMissing:!0,caseFold:!0};e.defineMode("shortcode",function(e,n){function r(e,t){return"["===e.next()?"["===e.peek()?(t.tokenize=i,"comment"):/\s/.test(e.peek())?null:(C=e.eat("/")?"closeTag":"openTag",t.tokenize=o,"tag bracket"):(e.eatWhile(/[^\[]/),null)}function i(e,t){var n=function(e,t){return e.next(),t.tokenize=r,"comment"};return n.isInEscape=!0,"]"===e.next()&&"]"===e.peek()&&(t.tokenize=n),e.eatWhile(/[^\]]/),null}function o(e,t){var n=e.next();if("]"===n||"/"===n&&e.eat("]"))return t.tokenize=r,C="endTag","tag bracket";if("="===n)return C="equals",null;if("["===n){t.tokenize=r,t.state=c,t.tagName=t.tagStart=null;var i=t.tokenize(e,t);return i?i+" tag error":"tag error"}return/[\'\"]/.test(n)?(t.tokenize=a(n),t.stringStartCol=e.column(),t.tokenize(e,t)):(e.match(/^[^\s\u00a0=\[\]\"\']*[^\s\u00a0=\[\]\"\'\/]/),"word")}function a(e){var t=function(t,n){var r=t.next();return r===e?(n.tokenize=o,"string"):/[\[\]]/.test(r)?"string error":(t.eatWhile(/[^\[\]\'\"]/),"string")};return t.isInAttribute=!0,t}function s(e,t,n){this.tagHistory=[t],e.context&&(this.tagHistory=this.tagHistory.concat(e.context.tagHistory)),this.prev=e.context,this.tagName=t,this.indent=e.indented,this.startOfLine=n}function l(e){e.context&&(e.context=e.context.prev)}function c(e,t,n){return"openTag"===e?(n.tagStart=t.column(),u):"closeTag"===e?f:c}function u(e,t,n){if("word"===e){var r=t.current();return/[\[\]\/\'\"<>&]/.test(r)?S="error":(n.tagName=t.current(),S="tag"),p}return S="error",u}function f(e,t,n){if("word"===e){var r=t.current();if(n.context&&n.context.tagName===r||b.matchClosing===!1)return S="tag",d;if(n.context&&n.context.tagHistory.indexOf(r)>0){for(var i=n.context.tagHistory.indexOf(r),o=0;o<i;o++)l(n);return S="tag",d}return S="tag error",h}return S="error",h}function d(e,t,n){return"endTag"!==e?(S="error",d):(l(n),c)}function h(e,t,n){return S="error",d(e,t,n)}function p(e,t,n){if("word"===e)return S=/^[a-z0-9_\-]+$/i.test(t.current())?"attribute":"error",m;if("endTag"===e){var r=n.tagName,i=n.tagStart;return n.tagName=n.tagStart=null,n.context=new s(n,r,i===n.indented),c}return S="error",p}function m(e,t,n){return"equals"===e?g:(b.allowMissing||(S="error"),p(e,t,n))}function g(e,t,n){return"string"===e?v:"word"===e&&b.allowUnquoted?(S="string",p):(S="error",p(e,t,n))}function v(e,t,n){return"string"===e?v:p(e,t,n)}var y=e.indentUnit,b={},x=t;for(var w in x)b[w]=x[w];for(var k in n)b[k]=n[k];var C,S;return r.isInText=!0,i.isInEscape=!0,{startState:function(e){var t={tokenize:r,state:c,indented:e||0,tagName:null,tagStart:null,context:null};return null!=e&&(t.baseIndent=e),t},token:function(e,t){if(!t.tagName&&e.sol()&&(t.indented=e.indentation()),e.eatSpace())return null;C=null;var n=t.tokenize(e,t);return(n||C)&&"comment"!==n&&(S=null,t.state=t.state(C||n,e,t),S&&(n="error"===S?n+" error":S)),n},indent:function(e,t,n){var i=e.context;if(e.tokenize.isInAttribute)return e.tagStart===e.indented?e.stringStartCol+1:e.indented+y;if(e.tokenize!==o&&e.tokenize!==r)return n?n.match(/^(\s*)/)[0].length:0;if(e.tagName)return b.multilineTagIndentPastTag!==!1?e.tagStart+e.tagName.length+2:e.tagStart+y*(b.multilineTagIndentFactor||1);var a=t&&/^\[(\/)?([\w_:\.-]*)/.exec(t);if(a&&a[1])for(;i;){if(i.tagName===a[2]){i=i.prev;break}break}for(;i&&i.prev&&!i.startOfLine;)i=i.prev;return i?i.indent+y:e.baseIndent||0},skipAttribute:function(e){e.state===g&&(e.state=p)}}})}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror"),require("../xml/xml"),require("../javascript/javascript"),require("../css/css")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","../xml/xml","../javascript/javascript","../css/css"],e):e(CodeMirror)}(function(e){"use strict";e.defineMode("wordpresspost",function(t,n){function r(e,t){t.isInShortcode=!0;var n=s.token(e,t.shortcodeState),r=t.shortcodeState.tokenize.isInText,o=t.shortcodeState.tokenize.isInEscape;if(r)t.token=i;else if(o&&/\]/.test(e.current())){var a=e.current(),l=a.search(/\]/);e.backUp(a.length-l-1),"]"!==e.peek()&&(t.token=i)}return n}function i(e,t){t.isInShortcode=!1;var n=a.token(e,t.htmlmixedState),i=t.htmlmixedState.htmlState.tokenize.isInText;if(i&&/\[/.test(e.current())&&!t.htmlmixedState.localState&&null===n){var l=e.current(),c=l.search(/\[/);e.backUp(l.length-c),null==t.shortcodeState&&(t.shortcodeState=s.startState(a.indent(t.htmlmixedState,""))),t.token=r}else i&&/<!\-\-more|<!\-\-(noteaser|nextpage)\-\->?/.test(e.current())&&!t.htmlmixedState.localState&&"comment"===n&&(e.backUp(e.current().length),t.token=o);return n}function o(e,t){return e.match("<!--more")?"meta":e.match("-->")||e.match("<!--noteaser-->")||e.match("<!--nextpage-->")?(t.token=i,"meta"):(e.eatWhile(/[^\-\/]/),"string")}var a=e.getMode(t,{name:"htmlmixed",multilineTagIndentFactor:n.multilineTagIndentFactor,multilineTagIndentPastTag:n.multilineTagIndentPastTag}),s=e.getMode(t,{name:"shortcode",multilineTagIndentFactor:n.multilineTagIndentFactor,multilineTagIndentPastTag:n.multilineTagIndentPastTag});return{startState:function(){return{token:i,isInShortcode:!1,shortcodeState:null,htmlmixedState:a.startState()}},copyState:function(t){var n;return t.shortcodeState&&(n=e.copyState(s,t.shortcodeState)),{token:t.token,shortcodeState:n,htmlmixedState:e.copyState(a,t.htmlmixedState)}},token:function(e,t){return t.token(e,t)},indent:function(t,n){return t.isInShortcode?t.isInShortcode?s.indent(t.shortcodeState,n):e.Pass:a.indent(t.htmlmixedState,n)},innerMode:function(e){return e.isInShortcode?{state:e.shortcodeState,mode:s}:{state:e.htmlmixedState,mode:a}}}},"htmlmixed","shortcode")}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";function t(e){for(var t=0;t<e.state.activeLines.length;t++)e.removeLineClass(e.state.activeLines[t],"wrap",o),e.removeLineClass(e.state.activeLines[t],"background",a),e.removeLineClass(e.state.activeLines[t],"gutter",s)}function n(e,t){if(e.length!=t.length)return!1;for(var n=0;n<e.length;n++)if(e[n]!=t[n])return!1;return!0}function r(e,r){for(var i=[],l=0;l<r.length;l++){var c=r[l],u=e.getOption("styleActiveLine");if("object"==typeof u&&u.nonEmpty?c.anchor.line==c.head.line:c.empty()){var f=e.getLineHandleVisualStart(c.head.line);i[i.length-1]!=f&&i.push(f)}}n(e.state.activeLines,i)||e.operation(function(){t(e);for(var n=0;n<i.length;n++)e.addLineClass(i[n],"wrap",o),e.addLineClass(i[n],"background",a),e.addLineClass(i[n],"gutter",s);e.state.activeLines=i})}function i(e,t){r(e,t.ranges)}var o="CodeMirror-activeline",a="CodeMirror-activeline-background",s="CodeMirror-activeline-gutter";e.defineOption("styleActiveLine",!1,function(n,o,a){var s=a!=e.Init&&a;o!=s&&(s&&(n.off("beforeSelectionChange",i),t(n),delete n.state.activeLines),o&&(n.state.activeLines=[],r(n,n.listSelections()),n.on("beforeSelectionChange",i)))})}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";function t(e){var t=e.flags;return null!=t?t:(e.ignoreCase?"i":"")+(e.global?"g":"")+(e.multiline?"m":"")}function n(e){return e.global?e:new RegExp(e.source,t(e)+"g")}function r(e){return/\\s|\\n|\n|\\W|\\D|\[\^/.test(e.source)}function i(e,t,r){t=n(t);for(var i=r.line,o=r.ch,a=e.lastLine();i<=a;i++,o=0){t.lastIndex=o;var s=e.getLine(i),l=t.exec(s);if(l)return{from:m(i,l.index),to:m(i,l.index+l[0].length),match:l}}}function o(e,t,o){if(!r(t))return i(e,t,o);t=n(t);for(var a,s=1,l=o.line,c=e.lastLine();l<=c;){for(var u=0;u<s;u++){var f=e.getLine(l++);a=null==a?f:a+"\n"+f}s*=2,t.lastIndex=o.ch;var d=t.exec(a);if(d){var h=a.slice(0,d.index).split("\n"),p=d[0].split("\n"),g=o.line+h.length-1,v=h[h.length-1].length;return{from:m(g,v),to:m(g+p.length-1,1==p.length?v+p[0].length:p[p.length-1].length),match:d}}}}function a(e,t){for(var n,r=0;;){t.lastIndex=r;var i=t.exec(e);if(!i)return n;if(n=i,(r=n.index+(n[0].length||1))==e.length)return n}}function s(e,t,r){t=n(t);for(var i=r.line,o=r.ch,s=e.firstLine();i>=s;i--,o=-1){var l=e.getLine(i);o>-1&&(l=l.slice(0,o));var c=a(l,t);if(c)return{from:m(i,c.index),to:m(i,c.index+c[0].length),match:c}}}function l(e,t,r){t=n(t);for(var i,o=1,s=r.line,l=e.firstLine();s>=l;){for(var c=0;c<o;c++){var u=e.getLine(s--);i=null==i?u.slice(0,r.ch):u+"\n"+i}o*=2;var f=a(i,t);if(f){var d=i.slice(0,f.index).split("\n"),h=f[0].split("\n"),p=s+d.length,g=d[d.length-1].length;return{from:m(p,g),to:m(p+h.length-1,1==h.length?g+h[0].length:h[h.length-1].length),match:f}}}}function c(e,t,n,r){if(e.length==t.length)return n;for(var i=0,o=n+Math.max(0,e.length-t.length);;){if(i==o)return i;var a=i+o>>1,s=r(e.slice(0,a)).length;if(s==n)return a;s>n?o=a:i=a+1}}function u(e,t,n,r){if(!t.length)return null;var i=r?h:p,o=i(t).split(/\r|\n\r?/);e:for(var a=n.line,s=n.ch,l=e.lastLine()+1-o.length;a<=l;a++,s=0){var u=e.getLine(a).slice(s),f=i(u);if(1==o.length){var d=f.indexOf(o[0]);if(d==-1)continue e;var n=c(u,f,d,i)+s;return{from:m(a,c(u,f,d,i)+s),to:m(a,c(u,f,d+o[0].length,i)+s)}}var g=f.length-o[0].length;if(f.slice(g)==o[0]){for(var v=1;v<o.length-1;v++)if(i(e.getLine(a+v))!=o[v])continue e;var y=e.getLine(a+o.length-1),b=i(y),x=o[o.length-1];if(y.slice(0,x.length)==x)return{from:m(a,c(u,f,g,i)+s),to:m(a+o.length-1,c(y,b,x.length,i))}}}}function f(e,t,n,r){if(!t.length)return null;var i=r?h:p,o=i(t).split(/\r|\n\r?/);e:for(var a=n.line,s=n.ch,l=e.firstLine()-1+o.length;a>=l;a--,s=-1){var u=e.getLine(a);s>-1&&(u=u.slice(0,s));var f=i(u);if(1==o.length){var d=f.lastIndexOf(o[0]);if(d==-1)continue e;return{from:m(a,c(u,f,d,i)),to:m(a,c(u,f,d+o[0].length,i))}}var g=o[o.length-1];if(f.slice(0,g.length)==g){for(var v=1,n=a-o.length+1;v<o.length-1;v++)if(i(e.getLine(n+v))!=o[v])continue e;var y=e.getLine(a+1-o.length),b=i(y);if(b.slice(b.length-o[0].length)==o[0])return{from:m(a+1-o.length,c(y,b,y.length-o[0].length,i)),to:m(a,c(u,f,g.length,i))}}}}function d(e,t,r,a){this.atOccurrence=!1,this.doc=e,r=r?e.clipPos(r):m(0,0),this.pos={from:r,to:r};var c;"object"==typeof a?c=a.caseFold:(c=a,a=null),"string"==typeof t?(null==c&&(c=!1),this.matches=function(n,r){return(n?f:u)(e,t,r,c)}):(t=n(t),a&&a.multiline===!1?this.matches=function(n,r){return(n?s:i)(e,t,r)}:this.matches=function(n,r){return(n?l:o)(e,t,r)})}var h,p,m=e.Pos;String.prototype.normalize?(h=function(e){return e.normalize("NFD").toLowerCase()},p=function(e){return e.normalize("NFD")
9
- }):(h=function(e){return e.toLowerCase()},p=function(e){return e}),d.prototype={findNext:function(){return this.find(!1)},findPrevious:function(){return this.find(!0)},find:function(t){for(var n=this.matches(t,this.doc.clipPos(t?this.pos.from:this.pos.to));n&&0==e.cmpPos(n.from,n.to);)t?n.from.ch?n.from=m(n.from.line,n.from.ch-1):n=n.from.line==this.doc.firstLine()?null:this.matches(t,this.doc.clipPos(m(n.from.line-1))):n.to.ch<this.doc.getLine(n.to.line).length?n.to=m(n.to.line,n.to.ch+1):n=n.to.line==this.doc.lastLine()?null:this.matches(t,m(n.to.line+1,0));if(n)return this.pos=n,this.atOccurrence=!0,this.pos.match||!0;var r=m(t?this.doc.firstLine():this.doc.lastLine()+1,0);return this.pos={from:r,to:r},this.atOccurrence=!1},from:function(){if(this.atOccurrence)return this.pos.from},to:function(){if(this.atOccurrence)return this.pos.to},replace:function(t,n){if(this.atOccurrence){var r=e.splitLines(t);this.doc.replaceRange(r,this.pos.from,this.pos.to,n),this.pos.to=m(this.pos.from.line+r.length-1,r[r.length-1].length+(1==r.length?this.pos.from.ch:0))}}},e.defineExtension("getSearchCursor",function(e,t,n){return new d(this.doc,e,t,n)}),e.defineDocExtension("getSearchCursor",function(e,t,n){return new d(this,e,t,n)}),e.defineExtension("selectMatches",function(t,n){for(var r=[],i=this.getSearchCursor(t,this.getCursor("from"),n);i.findNext()&&!(e.cmpPos(i.to(),this.getCursor("to"))>0);)r.push({anchor:i.from(),head:i.to()});r.length&&this.setSelections(r,0)})}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror"),require("./searchcursor"),require("../dialog/dialog")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","./searchcursor","../dialog/dialog"],e):e(CodeMirror)}(function(e){"use strict";function t(e,t){return"string"==typeof e?e=new RegExp(e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&"),t?"gi":"g"):e.global||(e=new RegExp(e.source,e.ignoreCase?"gi":"g")),{token:function(t){e.lastIndex=t.pos;var n=e.exec(t.string);if(n&&n.index==t.pos)return t.pos+=n[0].length||1,"searching";n?t.pos=n.index:t.skipToEnd()}}}function n(){this.posFrom=this.posTo=this.lastQuery=this.query=null,this.overlay=null}function r(e){return e.state.search||(e.state.search=new n)}function i(e){return"string"==typeof e&&e==e.toLowerCase()}function o(e,t,n){return e.getSearchCursor(t,n,{caseFold:i(t),multiline:!0})}function a(e,t,n,r,i){e.openDialog(t,r,{value:n,selectValueOnOpen:!0,closeOnEnter:!1,onClose:function(){p(e)},onKeyDown:i})}function s(e,t,n,r,i){e.openDialog?e.openDialog(t,i,{value:r,selectValueOnOpen:!0}):i(prompt(n,r))}function l(e,t,n,r){e.openConfirm?e.openConfirm(t,r):confirm(n)&&r[0]()}function c(e){return e.replace(/\\(.)/g,function(e,t){return"n"==t?"\n":"r"==t?"\r":t})}function u(e){var t=e.match(/^\/(.*)\/([a-z]*)$/);if(t)try{e=new RegExp(t[1],t[2].indexOf("i")==-1?"":"i")}catch(e){}else e=c(e);return("string"==typeof e?""==e:e.test(""))&&(e=/x^/),e}function f(e,n,r){n.queryText=r,n.query=u(r),e.removeOverlay(n.overlay,i(n.query)),n.overlay=t(n.query,i(n.query)),e.addOverlay(n.overlay),e.showMatchesOnScrollbar&&(n.annotate&&(n.annotate.clear(),n.annotate=null),n.annotate=e.showMatchesOnScrollbar(n.query,i(n.query)))}function d(t,n,i,o){var l=r(t);if(l.query)return h(t,n);var c=t.getSelection()||l.lastQuery;if(i&&t.openDialog){var u=null,d=function(n,r){e.e_stop(r),n&&(n!=l.queryText&&(f(t,l,n),l.posFrom=l.posTo=t.getCursor()),u&&(u.style.opacity=1),h(t,r.shiftKey,function(e,n){var r;n.line<3&&document.querySelector&&(r=t.display.wrapper.querySelector(".CodeMirror-dialog"))&&r.getBoundingClientRect().bottom-4>t.cursorCoords(n,"window").top&&((u=r).style.opacity=.4)}))};a(t,v,c,d,function(n,i){var o=e.keyName(n),a=t.getOption("extraKeys"),s=a&&a[o]||e.keyMap[t.getOption("keyMap")][o];"findNext"==s||"findPrev"==s||"findPersistentNext"==s||"findPersistentPrev"==s?(e.e_stop(n),f(t,r(t),i),t.execCommand(s)):"find"!=s&&"findPersistent"!=s||(e.e_stop(n),d(i,n))}),o&&c&&(f(t,l,c),h(t,n))}else s(t,v,"Search for:",c,function(e){e&&!l.query&&t.operation(function(){f(t,l,e),l.posFrom=l.posTo=t.getCursor(),h(t,n)})})}function h(t,n,i){t.operation(function(){var a=r(t),s=o(t,a.query,n?a.posFrom:a.posTo);(s.find(n)||(s=o(t,a.query,n?e.Pos(t.lastLine()):e.Pos(t.firstLine(),0)),s.find(n)))&&(t.setSelection(s.from(),s.to()),t.scrollIntoView({from:s.from(),to:s.to()},20),a.posFrom=s.from(),a.posTo=s.to(),i&&i(s.from(),s.to()))})}function p(e){e.operation(function(){var t=r(e);t.lastQuery=t.query,t.query&&(t.query=t.queryText=null,e.removeOverlay(t.overlay),t.annotate&&(t.annotate.clear(),t.annotate=null))})}function m(e,t,n){e.operation(function(){for(var r=o(e,t);r.findNext();)if("string"!=typeof t){var i=e.getRange(r.from(),r.to()).match(t);r.replace(n.replace(/\$(\d)/g,function(e,t){return i[t]}))}else r.replace(n)})}function g(e,t){if(!e.getOption("readOnly")){var n=e.getSelection()||r(e).lastQuery,i='<span class="CodeMirror-search-label">'+(t?"Replace all:":"Replace:")+"</span>";s(e,i+y,i,n,function(n){n&&(n=u(n),s(e,b,"Replace with:","",function(r){if(r=c(r),t)m(e,n,r);else{p(e);var i=o(e,n,e.getCursor("from")),a=function(){var t,c=i.from();!(t=i.findNext())&&(i=o(e,n),!(t=i.findNext())||c&&i.from().line==c.line&&i.from().ch==c.ch)||(e.setSelection(i.from(),i.to()),e.scrollIntoView({from:i.from(),to:i.to()}),l(e,x,"Replace?",[function(){s(t)},a,function(){m(e,n,r)}]))},s=function(e){i.replace("string"==typeof n?r:r.replace(/\$(\d)/g,function(t,n){return e[n]})),a()};a()}}))})}}var v='<span class="CodeMirror-search-label">Search:</span> <input type="text" style="width: 10em" class="CodeMirror-search-field"/> <span style="color: #888" class="CodeMirror-search-hint">(Use /re/ syntax for regexp search)</span>',y=' <input type="text" style="width: 10em" class="CodeMirror-search-field"/> <span style="color: #888" class="CodeMirror-search-hint">(Use /re/ syntax for regexp search)</span>',b='<span class="CodeMirror-search-label">With:</span> <input type="text" style="width: 10em" class="CodeMirror-search-field"/>',x='<span class="CodeMirror-search-label">Replace?</span> <button>Yes</button> <button>No</button> <button>All</button> <button>Stop</button>';e.commands.find=function(e){p(e),d(e)},e.commands.findPersistent=function(e){p(e),d(e,!1,!0)},e.commands.findPersistentNext=function(e){d(e,!1,!0,!0)},e.commands.findPersistentPrev=function(e){d(e,!0,!0,!0)},e.commands.findNext=d,e.commands.findPrev=function(e){d(e,!0)},e.commands.clearSearch=p,e.commands.replace=g,e.commands.replaceAll=function(e){g(e,!0)}}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){function t(e,t,n){var r,i=e.getWrapperElement();return r=i.appendChild(document.createElement("div")),r.className=n?"CodeMirror-dialog CodeMirror-dialog-bottom":"CodeMirror-dialog CodeMirror-dialog-top","string"==typeof t?r.innerHTML=t:r.appendChild(t),r}function n(e,t){e.state.currentNotificationClose&&e.state.currentNotificationClose(),e.state.currentNotificationClose=t}e.defineExtension("openDialog",function(r,i,o){function a(e){if("string"==typeof e)f.value=e;else{if(c)return;c=!0,l.parentNode.removeChild(l),u.focus(),o.onClose&&o.onClose(l)}}o||(o={}),n(this,null);var s,l=t(this,r,o.bottom),c=!1,u=this,f=l.getElementsByTagName("input")[0];return f?(f.focus(),o.value&&(f.value=o.value,o.selectValueOnOpen!==!1&&f.select()),o.onInput&&e.on(f,"input",function(e){o.onInput(e,f.value,a)}),o.onKeyUp&&e.on(f,"keyup",function(e){o.onKeyUp(e,f.value,a)}),e.on(f,"keydown",function(t){o&&o.onKeyDown&&o.onKeyDown(t,f.value,a)||((27==t.keyCode||o.closeOnEnter!==!1&&13==t.keyCode)&&(f.blur(),e.e_stop(t),a()),13==t.keyCode&&i(f.value,t))}),o.closeOnBlur!==!1&&e.on(f,"blur",a)):(s=l.getElementsByTagName("button")[0])&&(e.on(s,"click",function(){a(),u.focus()}),o.closeOnBlur!==!1&&e.on(s,"blur",a),s.focus()),a}),e.defineExtension("openConfirm",function(r,i,o){function a(){c||(c=!0,s.parentNode.removeChild(s),u.focus())}n(this,null);var s=t(this,r,o&&o.bottom),l=s.getElementsByTagName("button"),c=!1,u=this,f=1;l[0].focus();for(var d=0;d<l.length;++d){var h=l[d];!function(t){e.on(h,"click",function(n){e.e_preventDefault(n),a(),t&&t(u)})}(i[d]),e.on(h,"blur",function(){--f,setTimeout(function(){f<=0&&a()},200)}),e.on(h,"focus",function(){++f})}}),e.defineExtension("openNotification",function(r,i){function o(){l||(l=!0,clearTimeout(a),s.parentNode.removeChild(s))}n(this,o);var a,s=t(this,r,i&&i.bottom),l=!1,c=i&&void 0!==i.duration?i.duration:5e3;return e.on(s,"click",function(t){e.e_preventDefault(t),o()}),c&&(a=setTimeout(o,c)),o})}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";function t(t,n,r){function i(t){var n=e.wheelEventPixels(t)["horizontal"==o.orientation?"x":"y"],r=o.pos;o.moveTo(o.pos+n),o.pos!=r&&e.e_preventDefault(t)}this.orientation=n,this.scroll=r,this.screen=this.total=this.size=1,this.pos=0,this.node=document.createElement("div"),this.node.className=t+"-"+n,this.inner=this.node.appendChild(document.createElement("div"));var o=this;e.on(this.inner,"mousedown",function(t){function n(){e.off(document,"mousemove",r),e.off(document,"mouseup",n)}function r(e){if(1!=e.which)return n();o.moveTo(s+(e[i]-a)*(o.total/o.size))}if(1==t.which){e.e_preventDefault(t);var i="horizontal"==o.orientation?"pageX":"pageY",a=t[i],s=o.pos;e.on(document,"mousemove",r),e.on(document,"mouseup",n)}}),e.on(this.node,"click",function(t){e.e_preventDefault(t);var n,r=o.inner.getBoundingClientRect();n="horizontal"==o.orientation?t.clientX<r.left?-1:t.clientX>r.right?1:0:t.clientY<r.top?-1:t.clientY>r.bottom?1:0,o.moveTo(o.pos+n*o.screen)}),e.on(this.node,"mousewheel",i),e.on(this.node,"DOMMouseScroll",i)}function n(e,n,r){this.addClass=e,this.horiz=new t(e,"horizontal",r),n(this.horiz.node),this.vert=new t(e,"vertical",r),n(this.vert.node),this.width=null}t.prototype.setPos=function(e,t){return e<0&&(e=0),e>this.total-this.screen&&(e=this.total-this.screen),!(!t&&e==this.pos)&&(this.pos=e,this.inner.style["horizontal"==this.orientation?"left":"top"]=e*(this.size/this.total)+"px",!0)},t.prototype.moveTo=function(e){this.setPos(e)&&this.scroll(e,this.orientation)};t.prototype.update=function(e,t,n){var r=this.screen!=t||this.total!=e||this.size!=n;r&&(this.screen=t,this.total=e,this.size=n);var i=this.screen*(this.size/this.total);i<10&&(this.size-=10-i,i=10),this.inner.style["horizontal"==this.orientation?"width":"height"]=i+"px",this.setPos(this.pos,r)},n.prototype.update=function(e){if(null==this.width){var t=window.getComputedStyle?window.getComputedStyle(this.horiz.node):this.horiz.node.currentStyle;t&&(this.width=parseInt(t.height))}var n=this.width||0,r=e.scrollWidth>e.clientWidth+1,i=e.scrollHeight>e.clientHeight+1;return this.vert.node.style.display=i?"block":"none",this.horiz.node.style.display=r?"block":"none",i&&(this.vert.update(e.scrollHeight,e.clientHeight,e.viewHeight-(r?n:0)),this.vert.node.style.bottom=r?n+"px":"0"),r&&(this.horiz.update(e.scrollWidth,e.clientWidth,e.viewWidth-(i?n:0)-e.barLeft),this.horiz.node.style.right=i?n+"px":"0",this.horiz.node.style.left=e.barLeft+"px"),{right:i?n:0,bottom:r?n:0}},n.prototype.setScrollTop=function(e){this.vert.setPos(e)},n.prototype.setScrollLeft=function(e){this.horiz.setPos(e)},n.prototype.clear=function(){var e=this.horiz.node.parentNode;e.removeChild(this.horiz.node),e.removeChild(this.vert.node)},e.scrollbarModel.simple=function(e,t){return new n("CodeMirror-simplescroll",e,t)},e.scrollbarModel.overlay=function(e,t){return new n("CodeMirror-overlayscroll",e,t)}}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";function t(e){var t=e.search(o);return t==-1?0:t}function n(e,t,n){return/\bstring\b/.test(e.getTokenTypeAt(a(t.line,0)))&&!/^[\'\"\`]/.test(n)}function r(e,t){var n=e.getMode();return n.useInnerComments!==!1&&n.innerMode?e.getModeAt(t):n}var i={},o=/[^\s\u00a0]/,a=e.Pos;e.commands.toggleComment=function(e){e.toggleComment()},e.defineExtension("toggleComment",function(e){e||(e=i);for(var t=this,n=1/0,r=this.listSelections(),o=null,s=r.length-1;s>=0;s--){var l=r[s].from(),c=r[s].to();l.line>=n||(c.line>=n&&(c=a(n,0)),n=l.line,null==o?t.uncomment(l,c,e)?o="un":(t.lineComment(l,c,e),o="line"):"un"==o?t.uncomment(l,c,e):t.lineComment(l,c,e))}}),e.defineExtension("lineComment",function(e,s,l){l||(l=i);var c=this,u=r(c,e),f=c.getLine(e.line);if(null!=f&&!n(c,e,f)){var d=l.lineComment||u.lineComment;if(!d)return void((l.blockCommentStart||u.blockCommentStart)&&(l.fullLines=!0,c.blockComment(e,s,l)));var h=Math.min(0!=s.ch||s.line==e.line?s.line+1:s.line,c.lastLine()+1),p=null==l.padding?" ":l.padding,m=l.commentBlankLines||e.line==s.line;c.operation(function(){if(l.indent){for(var n=null,r=e.line;r<h;++r){var i=c.getLine(r),s=i.slice(0,t(i));(null==n||n.length>s.length)&&(n=s)}for(var r=e.line;r<h;++r){var i=c.getLine(r),u=n.length;(m||o.test(i))&&(i.slice(0,u)!=n&&(u=t(i)),c.replaceRange(n+d+p,a(r,0),a(r,u)))}}else for(var r=e.line;r<h;++r)(m||o.test(c.getLine(r)))&&c.replaceRange(d+p,a(r,0))})}}),e.defineExtension("blockComment",function(e,t,n){n||(n=i);var s=this,l=r(s,e),c=n.blockCommentStart||l.blockCommentStart,u=n.blockCommentEnd||l.blockCommentEnd;if(!c||!u)return void((n.lineComment||l.lineComment)&&0!=n.fullLines&&s.lineComment(e,t,n));if(!/\bcomment\b/.test(s.getTokenTypeAt(a(e.line,0)))){var f=Math.min(t.line,s.lastLine());f!=e.line&&0==t.ch&&o.test(s.getLine(f))&&--f;var d=null==n.padding?" ":n.padding;e.line>f||s.operation(function(){if(0!=n.fullLines){var r=o.test(s.getLine(f));s.replaceRange(d+u,a(f)),s.replaceRange(c+d,a(e.line,0));var i=n.blockCommentLead||l.blockCommentLead;if(null!=i)for(var h=e.line+1;h<=f;++h)(h!=f||r)&&s.replaceRange(i+d,a(h,0))}else s.replaceRange(u,t),s.replaceRange(c,e)})}}),e.defineExtension("uncomment",function(e,t,n){n||(n=i);var s,l=this,c=r(l,e),u=Math.min(0!=t.ch||t.line==e.line?t.line:t.line-1,l.lastLine()),f=Math.min(e.line,u),d=n.lineComment||c.lineComment,h=[],p=null==n.padding?" ":n.padding;e:if(d){for(var m=f;m<=u;++m){var g=l.getLine(m),v=g.indexOf(d);if(v>-1&&!/comment/.test(l.getTokenTypeAt(a(m,v+1)))&&(v=-1),v==-1&&o.test(g))break e;if(v>-1&&o.test(g.slice(0,v)))break e;h.push(g)}if(l.operation(function(){for(var e=f;e<=u;++e){var t=h[e-f],n=t.indexOf(d),r=n+d.length;n<0||(t.slice(r,r+p.length)==p&&(r+=p.length),s=!0,l.replaceRange("",a(e,n),a(e,r)))}}),s)return!0}var y=n.blockCommentStart||c.blockCommentStart,b=n.blockCommentEnd||c.blockCommentEnd;if(!y||!b)return!1;var x=n.blockCommentLead||c.blockCommentLead,w=l.getLine(f),k=w.indexOf(y);if(k==-1)return!1;var C=u==f?w:l.getLine(u),S=C.indexOf(b,u==f?k+y.length:0);S==-1&&f!=u&&(C=l.getLine(--u),S=C.indexOf(b));var _=a(f,k+1),M=a(u,S+1);if(S==-1||!/comment/.test(l.getTokenTypeAt(_))||!/comment/.test(l.getTokenTypeAt(M))||l.getRange(_,M,"\n").indexOf(b)>-1)return!1;var L=w.lastIndexOf(y,e.ch),T=L==-1?-1:w.slice(0,e.ch).indexOf(b,L+y.length);if(L!=-1&&T!=-1&&T+b.length!=e.ch)return!1;T=C.indexOf(b,t.ch);var A=C.slice(t.ch).lastIndexOf(y,T-t.ch);return L=T==-1||A==-1?-1:t.ch+A,(T==-1||L==-1||L==t.ch)&&(l.operation(function(){l.replaceRange("",a(u,S-(p&&C.slice(S-p.length,S)==p?p.length:0)),a(u,S+b.length));var e=k+y.length;if(p&&w.slice(e,e+p.length)==p&&(e+=p.length),l.replaceRange("",a(f,k),a(f,e)),x)for(var t=f+1;t<=u;++t){var n=l.getLine(t),r=n.indexOf(x);if(r!=-1&&!o.test(n.slice(0,r))){var i=r+x.length;p&&n.slice(i,i+p.length)==p&&(i+=p.length),l.replaceRange("",a(t,r),a(t,i))}}}),!0)})}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";function t(t,i,o,a){function s(e){var n=l(t,i);if(!n||n.to.line-n.from.line<c)return null;for(var r=t.findMarksAt(n.from),o=0;o<r.length;++o)if(r[o].__isFold&&"fold"!==a){if(!e)return null;n.cleared=!0,r[o].clear()}return n}if(o&&o.call){var l=o;o=null}else var l=r(t,o,"rangeFinder");"number"==typeof i&&(i=e.Pos(i,0));var c=r(t,o,"minFoldSize"),u=s(!0);if(r(t,o,"scanUp"))for(;!u&&i.line>t.firstLine();)i=e.Pos(i.line-1,0),u=s(!1);if(u&&!u.cleared&&"unfold"!==a){var f=n(t,o);e.on(f,"mousedown",function(t){d.clear(),e.e_preventDefault(t)});var d=t.markText(u.from,u.to,{replacedWith:f,clearOnEnter:r(t,o,"clearOnEnter"),__isFold:!0});d.on("clear",function(n,r){e.signal(t,"unfold",t,n,r)}),e.signal(t,"fold",t,u.from,u.to)}}function n(e,t){var n=r(e,t,"widget");if("string"==typeof n){var i=document.createTextNode(n);n=document.createElement("span"),n.appendChild(i),n.className="CodeMirror-foldmarker"}else n&&(n=n.cloneNode(!0));return n}function r(e,t,n){if(t&&void 0!==t[n])return t[n];var r=e.options.foldOptions;return r&&void 0!==r[n]?r[n]:i[n]}e.newFoldFunction=function(e,n){return function(r,i){t(r,i,{rangeFinder:e,widget:n})}},e.defineExtension("foldCode",function(e,n,r){t(this,e,n,r)}),e.defineExtension("isFolded",function(e){for(var t=this.findMarksAt(e),n=0;n<t.length;++n)if(t[n].__isFold)return!0}),e.commands.toggleFold=function(e){e.foldCode(e.getCursor())},e.commands.fold=function(e){e.foldCode(e.getCursor(),null,"fold")},e.commands.unfold=function(e){e.foldCode(e.getCursor(),null,"unfold")},e.commands.foldAll=function(t){t.operation(function(){for(var n=t.firstLine(),r=t.lastLine();n<=r;n++)t.foldCode(e.Pos(n,0),null,"fold")})},e.commands.unfoldAll=function(t){t.operation(function(){for(var n=t.firstLine(),r=t.lastLine();n<=r;n++)t.foldCode(e.Pos(n,0),null,"unfold")})},e.registerHelper("fold","combine",function(){var e=Array.prototype.slice.call(arguments,0);return function(t,n){for(var r=0;r<e.length;++r){var i=e[r](t,n);if(i)return i}}}),e.registerHelper("fold","auto",function(e,t){for(var n=e.getHelpers(t,"fold"),r=0;r<n.length;r++){var i=n[r](e,t);if(i)return i}});var i={rangeFinder:e.fold.auto,widget:"↔",minFoldSize:0,scanUp:!1,clearOnEnter:!0};e.defineOption("foldOptions",null),e.defineExtension("foldOption",function(e,t){return r(this,e,t)})}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror"),require("./foldcode")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","./foldcode"],e):e(CodeMirror)}(function(e){"use strict";function t(e){this.options=e,this.from=this.to=0}function n(e){return e===!0&&(e={}),null==e.gutter&&(e.gutter="CodeMirror-foldgutter"),null==e.indicatorOpen&&(e.indicatorOpen="CodeMirror-foldgutter-open"),null==e.indicatorFolded&&(e.indicatorFolded="CodeMirror-foldgutter-folded"),e}function r(e,t){for(var n=e.findMarks(f(t,0),f(t+1,0)),r=0;r<n.length;++r)if(n[r].__isFold&&n[r].find().from.line==t)return n[r]}function i(e){if("string"==typeof e){var t=document.createElement("div");return t.className=e+" CodeMirror-guttermarker-subtle",t}return e.cloneNode(!0)}function o(e,t,n){var o=e.state.foldGutter.options,a=t,s=e.foldOption(o,"minFoldSize"),l=e.foldOption(o,"rangeFinder");e.eachLine(t,n,function(t){var n=null;if(r(e,a))n=i(o.indicatorFolded);else{var c=f(a,0),u=l&&l(e,c);u&&u.to.line-u.from.line>=s&&(n=i(o.indicatorOpen))}e.setGutterMarker(t,o.gutter,n),++a})}function a(e){var t=e.getViewport(),n=e.state.foldGutter;n&&(e.operation(function(){o(e,t.from,t.to)}),n.from=t.from,n.to=t.to)}function s(e,t,n){var i=e.state.foldGutter;if(i){var o=i.options;if(n==o.gutter){var a=r(e,t);a?a.clear():e.foldCode(f(t,0),o.rangeFinder)}}}function l(e){var t=e.state.foldGutter;if(t){var n=t.options;t.from=t.to=0,clearTimeout(t.changeUpdate),t.changeUpdate=setTimeout(function(){a(e)},n.foldOnChangeTimeSpan||600)}}function c(e){var t=e.state.foldGutter;if(t){var n=t.options;clearTimeout(t.changeUpdate),t.changeUpdate=setTimeout(function(){var n=e.getViewport();t.from==t.to||n.from-t.to>20||t.from-n.to>20?a(e):e.operation(function(){n.from<t.from&&(o(e,n.from,t.from),t.from=n.from),n.to>t.to&&(o(e,t.to,n.to),t.to=n.to)})},n.updateViewportTimeSpan||400)}}function u(e,t){var n=e.state.foldGutter;if(n){var r=t.line;r>=n.from&&r<n.to&&o(e,r,r+1)}}e.defineOption("foldGutter",!1,function(r,i,o){o&&o!=e.Init&&(r.clearGutter(r.state.foldGutter.options.gutter),r.state.foldGutter=null,r.off("gutterClick",s),r.off("change",l),r.off("viewportChange",c),r.off("fold",u),r.off("unfold",u),r.off("swapDoc",l)),i&&(r.state.foldGutter=new t(n(i)),a(r),r.on("gutterClick",s),r.on("change",l),r.on("viewportChange",c),r.on("fold",u),r.on("unfold",u),r.on("swapDoc",l))});var f=e.Pos}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";function t(e,t){return e.line-t.line||e.ch-t.ch}function n(e,t,n,r){this.line=t,this.ch=n,this.cm=e,this.text=e.getLine(t),this.min=r?Math.max(r.from,e.firstLine()):e.firstLine(),this.max=r?Math.min(r.to-1,e.lastLine()):e.lastLine()}function r(e,t){var n=e.cm.getTokenTypeAt(d(e.line,t));return n&&/\btag\b/.test(n)}function i(e){if(!(e.line>=e.max))return e.ch=0,e.text=e.cm.getLine(++e.line),!0}function o(e){if(!(e.line<=e.min))return e.text=e.cm.getLine(--e.line),e.ch=e.text.length,!0}function a(e){for(;;){var t=e.text.indexOf(">",e.ch);if(t==-1){if(i(e))continue;return}{if(r(e,t+1)){var n=e.text.lastIndexOf("/",t),o=n>-1&&!/\S/.test(e.text.slice(n+1,t));return e.ch=t+1,o?"selfClose":"regular"}e.ch=t+1}}}function s(e){for(;;){var t=e.ch?e.text.lastIndexOf("<",e.ch-1):-1;if(t==-1){if(o(e))continue;return}if(r(e,t+1)){p.lastIndex=t,e.ch=t;var n=p.exec(e.text);if(n&&n.index==t)return n}else e.ch=t}}function l(e){for(;;){p.lastIndex=e.ch;var t=p.exec(e.text);if(!t){if(i(e))continue;return}{if(r(e,t.index+1))return e.ch=t.index+t[0].length,t;e.ch=t.index+1}}}function c(e){for(;;){var t=e.ch?e.text.lastIndexOf(">",e.ch-1):-1;if(t==-1){if(o(e))continue;return}{if(r(e,t+1)){var n=e.text.lastIndexOf("/",t),i=n>-1&&!/\S/.test(e.text.slice(n+1,t));return e.ch=t+1,i?"selfClose":"regular"}e.ch=t}}}function u(e,t){for(var n=[];;){var r,i=l(e),o=e.line,s=e.ch-(i?i[0].length:0);if(!i||!(r=a(e)))return;if("selfClose"!=r)if(i[1]){for(var c=n.length-1;c>=0;--c)if(n[c]==i[2]){n.length=c;break}if(c<0&&(!t||t==i[2]))return{tag:i[2],from:d(o,s),to:d(e.line,e.ch)}}else n.push(i[2])}}function f(e,t){for(var n=[];;){var r=c(e);if(!r)return;if("selfClose"!=r){var i=e.line,o=e.ch,a=s(e);if(!a)return;if(a[1])n.push(a[2]);else{for(var l=n.length-1;l>=0;--l)if(n[l]==a[2]){n.length=l;break}if(l<0&&(!t||t==a[2]))return{tag:a[2],from:d(e.line,e.ch),to:d(i,o)}}}else s(e)}}var d=e.Pos,h="A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD",p=new RegExp("<(/?)(["+h+"]["+h+"-:.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*)","g");e.registerHelper("fold","xml",function(e,t){for(var r=new n(e,t.line,0);;){var i,o=l(r);if(!o||r.line!=t.line||!(i=a(r)))return;if(!o[1]&&"selfClose"!=i){var s=d(r.line,r.ch),c=u(r,o[2]);return c&&{from:s,to:c.from}}}}),e.findMatchingTag=function(e,r,i){var o=new n(e,r.line,r.ch,i);if(o.text.indexOf(">")!=-1||o.text.indexOf("<")!=-1){var l=a(o),c=l&&d(o.line,o.ch),h=l&&s(o);if(l&&h&&!(t(o,r)>0)){var p={from:d(o.line,o.ch),to:c,tag:h[2]};return"selfClose"==l?{open:p,close:null,at:"open"}:h[1]?{open:f(o,h[2]),close:p,at:"close"}:(o=new n(e,c.line,c.ch,i),{open:p,close:u(o,h[2]),at:"open"})}}},e.findEnclosingTag=function(e,t,r,i){for(var o=new n(e,t.line,t.ch,r);;){var a=f(o,i);if(!a)break;var s=new n(e,t.line,t.ch,r),l=u(s,a.tag);if(l)return{open:a,close:l}}},e.scanForClosingTag=function(e,t,r,i){return u(new n(e,t.line,t.ch,i?{from:0,to:i}:null),r)}}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";function t(t,n){var r=t.getLine(n),i=r.search(/\S/);return i==-1||/\bcomment\b/.test(t.getTokenTypeAt(e.Pos(n,i+1)))?-1:e.countColumn(r,null,t.getOption("tabSize"))}e.registerHelper("fold","indent",function(n,r){var i=t(n,r.line);if(!(i<0)){for(var o=null,a=r.line+1,s=n.lastLine();a<=s;++a){var l=t(n,a);if(l==-1);else{if(!(l>i))break;o=a}}return o?{from:e.Pos(r.line,n.getLine(r.line).length),to:e.Pos(o,n.getLine(o).length)}:void 0}})}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){function t(e,t,r){var i=e.getLineHandle(t.line),o=t.ch-1,l=r&&r.afterCursor;null==l&&(l=/(^| )cm-fat-cursor($| )/.test(e.getWrapperElement().className));var c=!l&&o>=0&&s[i.text.charAt(o)]||s[i.text.charAt(++o)];if(!c)return null;var u=">"==c.charAt(1)?1:-1;if(r&&r.strict&&u>0!=(o==t.ch))return null;var f=e.getTokenTypeAt(a(t.line,o+1)),d=n(e,a(t.line,o+(u>0?1:0)),u,f||null,r);return null==d?null:{from:a(t.line,o),to:d&&d.pos,match:d&&d.ch==c.charAt(0),forward:u>0}}function n(e,t,n,r,i){for(var o=i&&i.maxScanLineLength||1e4,l=i&&i.maxScanLines||1e3,c=[],u=i&&i.bracketRegex?i.bracketRegex:/[(){}[\]]/,f=n>0?Math.min(t.line+l,e.lastLine()+1):Math.max(e.firstLine()-1,t.line-l),d=t.line;d!=f;d+=n){var h=e.getLine(d);if(h){var p=n>0?0:h.length-1,m=n>0?h.length:-1;if(!(h.length>o))for(d==t.line&&(p=t.ch-(n<0?1:0));p!=m;p+=n){var g=h.charAt(p);if(u.test(g)&&(void 0===r||e.getTokenTypeAt(a(d,p+1))==r)){var v=s[g];if(">"==v.charAt(1)==n>0)c.push(g);else{if(!c.length)return{pos:a(d,p),ch:g};c.pop()}}}}}return d-n!=(n>0?e.lastLine():e.firstLine())&&null}function r(e,n,r){for(var i=e.state.matchBrackets.maxHighlightLineLength||1e3,s=[],l=e.listSelections(),c=0;c<l.length;c++){var u=l[c].empty()&&t(e,l[c].head,r);if(u&&e.getLine(u.from.line).length<=i){var f=u.match?"CodeMirror-matchingbracket":"CodeMirror-nonmatchingbracket";s.push(e.markText(u.from,a(u.from.line,u.from.ch+1),{className:f})),u.to&&e.getLine(u.to.line).length<=i&&s.push(e.markText(u.to,a(u.to.line,u.to.ch+1),{className:f}))}}if(s.length){o&&e.state.focused&&e.focus();var d=function(){e.operation(function(){for(var e=0;e<s.length;e++)s[e].clear()})};if(!n)return d;setTimeout(d,800)}}function i(e){e.operation(function(){l&&(l(),l=null),l=r(e,!1,e.state.matchBrackets)})}var o=/MSIE \d/.test(navigator.userAgent)&&(null==document.documentMode||document.documentMode<8),a=e.Pos,s={"(":")>",")":"(<","[":"]>","]":"[<","{":"}>","}":"{<"},l=null;e.defineOption("matchBrackets",!1,function(t,n,r){r&&r!=e.Init&&(t.off("cursorActivity",i),l&&(l(),l=null)),n&&(t.state.matchBrackets="object"==typeof n?n:{},t.on("cursorActivity",i))}),e.defineExtension("matchBrackets",function(){r(this,!0)}),e.defineExtension("findMatchingBracket",function(e,n,r){return(r||"boolean"==typeof n)&&(r?(r.strict=n,n=r):n=n?{strict:!0}:null),t(this,e,n)}),e.defineExtension("scanForBracket",function(e,t,r,i){return n(this,e,t,r,i)})}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror"),require("../fold/xml-fold")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","../fold/xml-fold"],e):e(CodeMirror)}(function(e){"use strict";function t(e){e.state.tagHit&&e.state.tagHit.clear(),e.state.tagOther&&e.state.tagOther.clear(),e.state.tagHit=e.state.tagOther=null}function n(n){n.state.failedTagMatch=!1,n.operation(function(){if(t(n),!n.somethingSelected()){var r=n.getCursor(),i=n.getViewport();i.from=Math.min(i.from,r.line),i.to=Math.max(r.line+1,i.to);var o=e.findMatchingTag(n,r,i);if(o){if(n.state.matchBothTags){var a="open"==o.at?o.open:o.close;a&&(n.state.tagHit=n.markText(a.from,a.to,{className:"CodeMirror-matchingtag"}))}var s="close"==o.at?o.open:o.close;s?n.state.tagOther=n.markText(s.from,s.to,{className:"CodeMirror-matchingtag"}):n.state.failedTagMatch=!0}}})}function r(e){e.state.failedTagMatch&&n(e)}e.defineOption("matchTags",!1,function(i,o,a){a&&a!=e.Init&&(i.off("cursorActivity",n),i.off("viewportChange",r),t(i)),o&&(i.state.matchBothTags="object"==typeof o&&o.bothTags,i.on("cursorActivity",n),i.on("viewportChange",r),n(i))}),e.commands.toMatchingTag=function(t){var n=e.findMatchingTag(t,t.getCursor());if(n){var r="close"==n.at?n.open:n.close;r&&t.extendSelection(r.to,r.from)}}}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror"),require("./matchesonscrollbar")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","./matchesonscrollbar"],e):e(CodeMirror)}(function(e){"use strict";function t(e){this.options={};for(var t in f)this.options[t]=(e&&e.hasOwnProperty(t)?e:f)[t];this.overlay=this.timeout=null,this.matchesonscroll=null,this.active=!1}function n(e){var t=e.state.matchHighlighter;(t.active||e.hasFocus())&&i(e,t)}function r(e){var t=e.state.matchHighlighter;t.active||(t.active=!0,i(e,t))}function i(e,t){clearTimeout(t.timeout),t.timeout=setTimeout(function(){s(e)},t.options.delay)}function o(e,t,n,r){var i=e.state.matchHighlighter;if(e.addOverlay(i.overlay=u(t,n,r)),i.options.annotateScrollbar&&e.showMatchesOnScrollbar){var o=n?new RegExp("\\b"+t+"\\b"):t;i.matchesonscroll=e.showMatchesOnScrollbar(o,!1,{className:"CodeMirror-selection-highlight-scrollbar"})}}function a(e){var t=e.state.matchHighlighter;t.overlay&&(e.removeOverlay(t.overlay),t.overlay=null,t.matchesonscroll&&(t.matchesonscroll.clear(),t.matchesonscroll=null))}function s(e){e.operation(function(){var t=e.state.matchHighlighter;if(a(e),!e.somethingSelected()&&t.options.showToken){for(var n=t.options.showToken===!0?/[\w$]/:t.options.showToken,r=e.getCursor(),i=e.getLine(r.line),s=r.ch,c=s;s&&n.test(i.charAt(s-1));)--s;for(;c<i.length&&n.test(i.charAt(c));)++c;return void(s<c&&o(e,i.slice(s,c),n,t.options.style))}var u=e.getCursor("from"),f=e.getCursor("to");if(u.line==f.line&&(!t.options.wordsOnly||l(e,u,f))){var d=e.getRange(u,f);t.options.trim&&(d=d.replace(/^\s+|\s+$/g,"")),d.length>=t.options.minChars&&o(e,d,!1,t.options.style)}})}function l(e,t,n){if(null!==e.getRange(t,n).match(/^\w+$/)){if(t.ch>0){var r={line:t.line,ch:t.ch-1},i=e.getRange(r,t);if(null===i.match(/\W/))return!1}if(n.ch<e.getLine(t.line).length){var r={line:n.line,ch:n.ch+1},i=e.getRange(n,r);if(null===i.match(/\W/))return!1}return!0}return!1}function c(e,t){return!(e.start&&t.test(e.string.charAt(e.start-1))||e.pos!=e.string.length&&t.test(e.string.charAt(e.pos)))}function u(e,t,n){return{token:function(r){if(r.match(e)&&(!t||c(r,t)))return n;r.next(),r.skipTo(e.charAt(0))||r.skipToEnd()}}}var f={style:"matchhighlight",minChars:2,delay:100,wordsOnly:!1,annotateScrollbar:!1,showToken:!1,trim:!0};e.defineOption("highlightSelectionMatches",!1,function(i,o,l){if(l&&l!=e.Init&&(a(i),clearTimeout(i.state.matchHighlighter.timeout),i.state.matchHighlighter=null,i.off("cursorActivity",n),i.off("focus",r)),o){var c=i.state.matchHighlighter=new t(o);i.hasFocus()?(c.active=!0,s(i)):i.on("focus",r),i.on("cursorActivity",n)}})}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror"),require("../fold/xml-fold")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","../fold/xml-fold"],e):e(CodeMirror)}(function(e){function t(t){if(t.getOption("disableInput"))return e.Pass;for(var n=t.listSelections(),r=[],l=0;l<n.length;l++){if(!n[l].empty())return e.Pass;var c=n[l].head,u=t.getTokenAt(c),f=e.innerMode(t.getMode(),u.state),d=f.state;if("xml"!=f.mode.name||!d.tagName)return e.Pass;var h=t.getOption("autoCloseTags"),p="html"==f.mode.configuration,m="object"==typeof h&&h.dontCloseTags||p&&a,g="object"==typeof h&&h.indentTags||p&&s,v=d.tagName
10
- ;u.end>c.ch&&(v=v.slice(0,v.length-u.end+c.ch));var y=v.toLowerCase();if(!v||"string"==u.type&&(u.end!=c.ch||!/[\"\']/.test(u.string.charAt(u.string.length-1))||1==u.string.length)||"tag"==u.type&&"closeTag"==d.type||u.string.indexOf("/")==u.string.length-1||m&&i(m,y)>-1||o(t,v,c,d,!0))return e.Pass;var b=g&&i(g,y)>-1;r[l]={indent:b,text:">"+(b?"\n\n":"")+"</"+v+">",newPos:b?e.Pos(c.line+1,0):e.Pos(c.line,c.ch+1)}}for(var l=n.length-1;l>=0;l--){var x=r[l];t.replaceRange(x.text,n[l].head,n[l].anchor,"+insert");var w=t.listSelections().slice(0);w[l]={head:x.newPos,anchor:x.newPos},t.setSelections(w),x.indent&&(t.indentLine(x.newPos.line,null,!0),t.indentLine(x.newPos.line+1,null,!0))}}function n(t,n){for(var r=t.listSelections(),i=[],a=n?"/":"</",s=0;s<r.length;s++){if(!r[s].empty())return e.Pass;var l=r[s].head,c=t.getTokenAt(l),u=e.innerMode(t.getMode(),c.state),f=u.state;if(n&&("string"==c.type||"<"!=c.string.charAt(0)||c.start!=l.ch-1))return e.Pass;var d;if("xml"!=u.mode.name)if("htmlmixed"==t.getMode().name&&"javascript"==u.mode.name)d=a+"script";else{if("htmlmixed"!=t.getMode().name||"css"!=u.mode.name)return e.Pass;d=a+"style"}else{if(!f.context||!f.context.tagName||o(t,f.context.tagName,l,f))return e.Pass;d=a+f.context.tagName}">"!=t.getLine(l.line).charAt(c.end)&&(d+=">"),i[s]=d}t.replaceSelections(i),r=t.listSelections();for(var s=0;s<r.length;s++)(s==r.length-1||r[s].head.line<r[s+1].head.line)&&t.indentLine(r[s].head.line)}function r(t){return t.getOption("disableInput")?e.Pass:n(t,!0)}function i(e,t){if(e.indexOf)return e.indexOf(t);for(var n=0,r=e.length;n<r;++n)if(e[n]==t)return n;return-1}function o(t,n,r,i,o){if(!e.scanForClosingTag)return!1;var a=Math.min(t.lastLine()+1,r.line+500),s=e.scanForClosingTag(t,r,null,a);if(!s||s.tag!=n)return!1;for(var l=i.context,c=o?1:0;l&&l.tagName==n;l=l.prev)++c;r=s.to;for(var u=1;u<c;u++){var f=e.scanForClosingTag(t,r,null,a);if(!f||f.tag!=n)return!1;r=f.to}return!0}e.defineOption("autoCloseTags",!1,function(n,i,o){if(o!=e.Init&&o&&n.removeKeyMap("autoCloseTags"),i){var a={name:"autoCloseTags"};("object"!=typeof i||i.whenClosing)&&(a["'/'"]=function(e){return r(e)}),("object"!=typeof i||i.whenOpening)&&(a["'>'"]=function(e){return t(e)}),n.addKeyMap(a)}});var a=["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"],s=["applet","blockquote","body","button","div","dl","fieldset","form","frameset","h1","h2","h3","h4","h5","h6","head","html","iframe","layer","legend","object","ol","p","select","table","ul"];e.commands.closeTag=function(e){return n(e)}}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){function t(e,t){return"pairs"==t&&"string"==typeof e?e:"object"==typeof e&&null!=e[t]?e[t]:f[t]}function n(e){var t=e.state.closeBrackets;return!t||t.override?t:e.getModeAt(e.getCursor()).closeBrackets||t}function r(r){var i=n(r);if(!i||r.getOption("disableInput"))return e.Pass;for(var o=t(i,"pairs"),a=r.listSelections(),s=0;s<a.length;s++){if(!a[s].empty())return e.Pass;var c=l(r,a[s].head);if(!c||o.indexOf(c)%2!=0)return e.Pass}for(var s=a.length-1;s>=0;s--){var u=a[s].head;r.replaceRange("",d(u.line,u.ch-1),d(u.line,u.ch+1),"+delete")}}function i(r){var i=n(r),o=i&&t(i,"explode");if(!o||r.getOption("disableInput"))return e.Pass;for(var a=r.listSelections(),s=0;s<a.length;s++){if(!a[s].empty())return e.Pass;var c=l(r,a[s].head);if(!c||o.indexOf(c)%2!=0)return e.Pass}r.operation(function(){r.replaceSelection("\n\n",null),r.execCommand("goCharLeft"),a=r.listSelections();for(var e=0;e<a.length;e++){var t=a[e].head.line;r.indentLine(t,null,!0),r.indentLine(t+1,null,!0)}})}function o(t){var n=e.cmpPos(t.anchor,t.head)>0;return{anchor:new d(t.anchor.line,t.anchor.ch+(n?-1:1)),head:new d(t.head.line,t.head.ch+(n?1:-1))}}function a(r,i){var a=n(r);if(!a||r.getOption("disableInput"))return e.Pass;var l=t(a,"pairs"),f=l.indexOf(i);if(f==-1)return e.Pass;for(var h,p=t(a,"triples"),m=l.charAt(f+1)==i,g=r.listSelections(),v=f%2==0,y=0;y<g.length;y++){var b,x=g[y],w=x.head,k=r.getRange(w,d(w.line,w.ch+1));if(v&&!x.empty())b="surround";else if(!m&&v||k!=i)if(m&&w.ch>1&&p.indexOf(i)>=0&&r.getRange(d(w.line,w.ch-2),w)==i+i&&(w.ch<=2||r.getRange(d(w.line,w.ch-3),d(w.line,w.ch-2))!=i))b="addFour";else if(m){if(e.isWordChar(k)||!c(r,w,i))return e.Pass;b="both"}else{if(!v||r.getLine(w.line).length!=w.ch&&!s(k,l)&&!/\s/.test(k))return e.Pass;b="both"}else b=m&&u(r,w)?"both":p.indexOf(i)>=0&&r.getRange(w,d(w.line,w.ch+3))==i+i+i?"skipThree":"skip";if(h){if(h!=b)return e.Pass}else h=b}var C=f%2?l.charAt(f-1):i,S=f%2?i:l.charAt(f+1);r.operation(function(){if("skip"==h)r.execCommand("goCharRight");else if("skipThree"==h)for(var e=0;e<3;e++)r.execCommand("goCharRight");else if("surround"==h){for(var t=r.getSelections(),e=0;e<t.length;e++)t[e]=C+t[e]+S;r.replaceSelections(t,"around"),t=r.listSelections().slice();for(var e=0;e<t.length;e++)t[e]=o(t[e]);r.setSelections(t)}else"both"==h?(r.replaceSelection(C+S,null),r.triggerElectric(C+S),r.execCommand("goCharLeft")):"addFour"==h&&(r.replaceSelection(C+C+C+C,"before"),r.execCommand("goCharRight"))})}function s(e,t){var n=t.lastIndexOf(e);return n>-1&&n%2==1}function l(e,t){var n=e.getRange(d(t.line,t.ch-1),d(t.line,t.ch+1));return 2==n.length?n:null}function c(t,n,r){var i=t.getLine(n.line),o=t.getTokenAt(n);if(/\bstring2?\b/.test(o.type)||u(t,n))return!1;var a=new e.StringStream(i.slice(0,n.ch)+r+i.slice(n.ch),4);for(a.pos=a.start=o.start;;){var s=t.getMode().token(a,o.state);if(a.pos>=n.ch+1)return/\bstring2?\b/.test(s);a.start=a.pos}}function u(e,t){var n=e.getTokenAt(d(t.line,t.ch+1));return/\bstring/.test(n.type)&&n.start==t.ch}var f={pairs:"()[]{}''\"\"",triples:"",explode:"[]{}"},d=e.Pos;e.defineOption("autoCloseBrackets",!1,function(t,n,r){r&&r!=e.Init&&(t.removeKeyMap(p),t.state.closeBrackets=null),n&&(t.state.closeBrackets=n,t.addKeyMap(p))});for(var h=f.pairs+"`",p={Backspace:r,Enter:i},m=0;m<h.length;m++)p["'"+h.charAt(m)+"'"]=function(e){return function(t){return a(t,e)}}(h.charAt(m))}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../lib/codemirror"),require("../addon/search/searchcursor"),require("../addon/edit/matchbrackets")):"function"==typeof define&&define.amd?define(["../lib/codemirror","../addon/search/searchcursor","../addon/edit/matchbrackets"],e):e(CodeMirror)}(function(e){"use strict";function t(t,n,r){if(r<0&&0==n.ch)return t.clipPos(p(n.line-1));var i=t.getLine(n.line);if(r>0&&n.ch>=i.length)return t.clipPos(p(n.line+1,0));for(var o,a="start",s=n.ch,l=r<0?0:i.length,c=0;s!=l;s+=r,c++){var u=i.charAt(r<0?s-1:s),f="_"!=u&&e.isWordChar(u)?"w":"o";if("w"==f&&u.toUpperCase()==u&&(f="W"),"start"==a)"o"!=f&&(a="in",o=f);else if("in"==a&&o!=f){if("w"==o&&"W"==f&&r<0&&s--,"W"==o&&"w"==f&&r>0){o="w";continue}break}}return p(n.line,s)}function n(e,n){e.extendSelectionsBy(function(r){return e.display.shift||e.doc.extend||r.empty()?t(e.doc,r.head,n):n<0?r.from():r.to()})}function r(t,n){if(t.isReadOnly())return e.Pass;t.operation(function(){for(var e=t.listSelections().length,r=[],i=-1,o=0;o<e;o++){var a=t.listSelections()[o].head;if(!(a.line<=i)){var s=p(a.line+(n?0:1),0);t.replaceRange("\n",s,null,"+insertLine"),t.indentLine(s.line,null,!0),r.push({head:s,anchor:s}),i=a.line+1}}t.setSelections(r)}),t.execCommand("indentAuto")}function i(t,n){for(var r=n.ch,i=r,o=t.getLine(n.line);r&&e.isWordChar(o.charAt(r-1));)--r;for(;i<o.length&&e.isWordChar(o.charAt(i));)++i;return{from:p(n.line,r),to:p(n.line,i),word:o.slice(r,i)}}function o(e,t){for(var n=e.listSelections(),r=[],i=0;i<n.length;i++){var o=n[i],a=e.findPosV(o.anchor,t,"line"),s=e.findPosV(o.head,t,"line"),l={anchor:a,head:s};r.push(o),r.push(l)}e.setSelections(r)}function a(e,t,n){for(var r=0;r<e.length;r++)if(e[r].from()==t&&e[r].to()==n)return!0;return!1}function s(e){for(var t=e.listSelections(),n=[],r=0;r<t.length;r++){var i=t[r],o=i.head,a=e.scanForBracket(o,-1);if(!a)return!1;for(;;){var s=e.scanForBracket(o,1);if(!s)return!1;if(s.ch==x.charAt(x.indexOf(a.ch)+1)){n.push({anchor:p(a.pos.line,a.pos.ch+1),head:s.pos});break}o=p(s.pos.line,s.pos.ch+1)}}return e.setSelections(n),!0}function l(t,n){if(t.isReadOnly())return e.Pass;for(var r,i=t.listSelections(),o=[],a=0;a<i.length;a++){var s=i[a];if(!s.empty()){for(var l=s.from().line,c=s.to().line;a<i.length-1&&i[a+1].from().line==c;)c=i[++a].to().line;i[a].to().ch||c--,o.push(l,c)}}o.length?r=!0:o.push(t.firstLine(),t.lastLine()),t.operation(function(){for(var e=[],i=0;i<o.length;i+=2){var a=o[i],s=o[i+1],l=p(a,0),c=p(s),u=t.getRange(l,c,!1);n?u.sort():u.sort(function(e,t){var n=e.toUpperCase(),r=t.toUpperCase();return n!=r&&(e=n,t=r),e<t?-1:e==t?0:1}),t.replaceRange(u,l,c),r&&e.push({anchor:l,head:p(s+1,0)})}r&&t.setSelections(e,0)})}function c(t,n){t.operation(function(){for(var r=t.listSelections(),o=[],a=[],s=0;s<r.length;s++){var l=r[s];l.empty()?(o.push(s),a.push("")):a.push(n(t.getRange(l.from(),l.to())))}t.replaceSelections(a,"around","case");for(var c,s=o.length-1;s>=0;s--){var l=r[o[s]];if(!(c&&e.cmpPos(l.head,c)>0)){var u=i(t,l.head);c=u.from,t.replaceRange(n(u.word),u.from,u.to)}}})}function u(t){var n=t.getCursor("from"),r=t.getCursor("to");if(0==e.cmpPos(n,r)){var o=i(t,n);if(!o.word)return;n=o.from,r=o.to}return{from:n,to:r,query:t.getRange(n,r),word:o}}function f(e,t){var n=u(e);if(n){var r=n.query,i=e.getSearchCursor(r,t?n.to:n.from);(t?i.findNext():i.findPrevious())?e.setSelection(i.from(),i.to()):(i=e.getSearchCursor(r,t?p(e.firstLine(),0):e.clipPos(p(e.lastLine()))),(t?i.findNext():i.findPrevious())?e.setSelection(i.from(),i.to()):n.word&&e.setSelection(n.from,n.to))}}var d=e.keyMap.sublime={fallthrough:"default"},h=e.commands,p=e.Pos,m=e.keyMap.default==e.keyMap.macDefault,g=m?"Cmd-":"Ctrl-",v=m?"Ctrl-":"Alt-";h[d[v+"Left"]="goSubwordLeft"]=function(e){n(e,-1)},h[d[v+"Right"]="goSubwordRight"]=function(e){n(e,1)},m&&(d["Cmd-Left"]="goLineStartSmart");var y=m?"Ctrl-Alt-":"Ctrl-";h[d[y+"Up"]="scrollLineUp"]=function(e){var t=e.getScrollInfo();if(!e.somethingSelected()){var n=e.lineAtHeight(t.top+t.clientHeight,"local");e.getCursor().line>=n&&e.execCommand("goLineUp")}e.scrollTo(null,t.top-e.defaultTextHeight())},h[d[y+"Down"]="scrollLineDown"]=function(e){var t=e.getScrollInfo();if(!e.somethingSelected()){var n=e.lineAtHeight(t.top,"local")+1;e.getCursor().line<=n&&e.execCommand("goLineDown")}e.scrollTo(null,t.top+e.defaultTextHeight())},h[d["Shift-"+g+"L"]="splitSelectionByLine"]=function(e){for(var t=e.listSelections(),n=[],r=0;r<t.length;r++)for(var i=t[r].from(),o=t[r].to(),a=i.line;a<=o.line;++a)o.line>i.line&&a==o.line&&0==o.ch||n.push({anchor:a==i.line?i:p(a,0),head:a==o.line?o:p(a)});e.setSelections(n,0)},d["Shift-Tab"]="indentLess",h[d.Esc="singleSelectionTop"]=function(e){var t=e.listSelections()[0];e.setSelection(t.anchor,t.head,{scroll:!1})},h[d[g+"L"]="selectLine"]=function(e){for(var t=e.listSelections(),n=[],r=0;r<t.length;r++){var i=t[r];n.push({anchor:p(i.from().line,0),head:p(i.to().line+1,0)})}e.setSelections(n)},d["Shift-Ctrl-K"]="deleteLine",h[d[g+"Enter"]="insertLineAfter"]=function(e){return r(e,!1)},h[d["Shift-"+g+"Enter"]="insertLineBefore"]=function(e){return r(e,!0)},h[d[g+"D"]="selectNextOccurrence"]=function(t){var n=t.getCursor("from"),r=t.getCursor("to"),o=t.state.sublimeFindFullWord==t.doc.sel;if(0==e.cmpPos(n,r)){var s=i(t,n);if(!s.word)return;t.setSelection(s.from,s.to),o=!0}else{var l=t.getRange(n,r),c=o?new RegExp("\\b"+l+"\\b"):l,u=t.getSearchCursor(c,r),f=u.findNext();if(f||(u=t.getSearchCursor(c,p(t.firstLine(),0)),f=u.findNext()),!f||a(t.listSelections(),u.from(),u.to()))return e.Pass;t.addSelection(u.from(),u.to())}o&&(t.state.sublimeFindFullWord=t.doc.sel)};var b=m?"Shift-Cmd":"Alt-Ctrl";h[d[b+"Up"]="addCursorToPrevLine"]=function(e){o(e,-1)},h[d[b+"Down"]="addCursorToNextLine"]=function(e){o(e,1)};var x="(){}[]";h[d["Shift-"+g+"Space"]="selectScope"]=function(e){s(e)||e.execCommand("selectAll")},h[d["Shift-"+g+"M"]="selectBetweenBrackets"]=function(t){if(!s(t))return e.Pass},h[d[g+"M"]="goToBracket"]=function(t){t.extendSelectionsBy(function(n){var r=t.scanForBracket(n.head,1);if(r&&0!=e.cmpPos(r.pos,n.head))return r.pos;var i=t.scanForBracket(n.head,-1);return i&&p(i.pos.line,i.pos.ch+1)||n.head})};var w=m?"Cmd-Ctrl-":"Shift-Ctrl-";h[d[w+"Up"]="swapLineUp"]=function(t){if(t.isReadOnly())return e.Pass;for(var n=t.listSelections(),r=[],i=t.firstLine()-1,o=[],a=0;a<n.length;a++){var s=n[a],l=s.from().line-1,c=s.to().line;o.push({anchor:p(s.anchor.line-1,s.anchor.ch),head:p(s.head.line-1,s.head.ch)}),0!=s.to().ch||s.empty()||--c,l>i?r.push(l,c):r.length&&(r[r.length-1]=c),i=c}t.operation(function(){for(var e=0;e<r.length;e+=2){var n=r[e],i=r[e+1],a=t.getLine(n);t.replaceRange("",p(n,0),p(n+1,0),"+swapLine"),i>t.lastLine()?t.replaceRange("\n"+a,p(t.lastLine()),null,"+swapLine"):t.replaceRange(a+"\n",p(i,0),null,"+swapLine")}t.setSelections(o),t.scrollIntoView()})},h[d[w+"Down"]="swapLineDown"]=function(t){if(t.isReadOnly())return e.Pass;for(var n=t.listSelections(),r=[],i=t.lastLine()+1,o=n.length-1;o>=0;o--){var a=n[o],s=a.to().line+1,l=a.from().line;0!=a.to().ch||a.empty()||s--,s<i?r.push(s,l):r.length&&(r[r.length-1]=l),i=l}t.operation(function(){for(var e=r.length-2;e>=0;e-=2){var n=r[e],i=r[e+1],o=t.getLine(n);n==t.lastLine()?t.replaceRange("",p(n-1),p(n),"+swapLine"):t.replaceRange("",p(n,0),p(n+1,0),"+swapLine"),t.replaceRange(o+"\n",p(i,0),null,"+swapLine")}t.scrollIntoView()})},h[d[g+"/"]="toggleCommentIndented"]=function(e){e.toggleComment({indent:!0})},h[d[g+"J"]="joinLines"]=function(e){for(var t=e.listSelections(),n=[],r=0;r<t.length;r++){for(var i=t[r],o=i.from(),a=o.line,s=i.to().line;r<t.length-1&&t[r+1].from().line==s;)s=t[++r].to().line;n.push({start:a,end:s,anchor:!i.empty()&&o})}e.operation(function(){for(var t=0,r=[],i=0;i<n.length;i++){for(var o,a=n[i],s=a.anchor&&p(a.anchor.line-t,a.anchor.ch),l=a.start;l<=a.end;l++){var c=l-t;l==a.end&&(o=p(c,e.getLine(c).length+1)),c<e.lastLine()&&(e.replaceRange(" ",p(c),p(c+1,/^\s*/.exec(e.getLine(c+1))[0].length)),++t)}r.push({anchor:s||o,head:o})}e.setSelections(r,0)})},h[d["Shift-"+g+"D"]="duplicateLine"]=function(e){e.operation(function(){for(var t=e.listSelections().length,n=0;n<t;n++){var r=e.listSelections()[n];r.empty()?e.replaceRange(e.getLine(r.head.line)+"\n",p(r.head.line,0)):e.replaceRange(e.getRange(r.from(),r.to()),r.from())}e.scrollIntoView()})},m||(d[g+"T"]="transposeChars"),h[d.F9="sortLines"]=function(e){l(e,!0)},h[d[g+"F9"]="sortLinesInsensitive"]=function(e){l(e,!1)},h[d.F2="nextBookmark"]=function(e){var t=e.state.sublimeBookmarks;if(t)for(;t.length;){var n=t.shift(),r=n.find();if(r)return t.push(n),e.setSelection(r.from,r.to)}},h[d["Shift-F2"]="prevBookmark"]=function(e){var t=e.state.sublimeBookmarks;if(t)for(;t.length;){t.unshift(t.pop());var n=t[t.length-1].find();if(n)return e.setSelection(n.from,n.to);t.pop()}},h[d[g+"F2"]="toggleBookmark"]=function(e){for(var t=e.listSelections(),n=e.state.sublimeBookmarks||(e.state.sublimeBookmarks=[]),r=0;r<t.length;r++){for(var i=t[r].from(),o=t[r].to(),a=e.findMarks(i,o),s=0;s<a.length;s++)if(a[s].sublimeBookmark){a[s].clear();for(var l=0;l<n.length;l++)n[l]==a[s]&&n.splice(l--,1);break}s==a.length&&n.push(e.markText(i,o,{sublimeBookmark:!0,clearWhenEmpty:!1}))}},h[d["Shift-"+g+"F2"]="clearBookmarks"]=function(e){var t=e.state.sublimeBookmarks;if(t)for(var n=0;n<t.length;n++)t[n].clear();t.length=0},h[d["Alt-F2"]="selectBookmarks"]=function(e){var t=e.state.sublimeBookmarks,n=[];if(t)for(var r=0;r<t.length;r++){var i=t[r].find();i?n.push({anchor:i.from,head:i.to}):t.splice(r--,0)}n.length&&e.setSelections(n,0)},d["Alt-Q"]="wrapLines";var k=g+"K ";d[k+g+"Backspace"]="delLineLeft",h[d.Backspace="smartBackspace"]=function(t){if(t.somethingSelected())return e.Pass;t.operation(function(){for(var n=t.listSelections(),r=t.getOption("indentUnit"),i=n.length-1;i>=0;i--){var o=n[i].head,a=t.getRange({line:o.line,ch:0},o),s=e.countColumn(a,null,t.getOption("tabSize")),l=t.findPosH(o,-1,"char",!1);if(a&&!/\S/.test(a)&&s%r==0){var c=new p(o.line,e.findColumn(a,s-r,r));c.ch!=o.ch&&(l=c)}t.replaceRange("",l,o,"+delete")}})},h[d[k+g+"K"]="delLineRight"]=function(e){e.operation(function(){for(var t=e.listSelections(),n=t.length-1;n>=0;n--)e.replaceRange("",t[n].anchor,p(t[n].to().line),"+delete");e.scrollIntoView()})},h[d[k+g+"U"]="upcaseAtCursor"]=function(e){c(e,function(e){return e.toUpperCase()})},h[d[k+g+"L"]="downcaseAtCursor"]=function(e){c(e,function(e){return e.toLowerCase()})},h[d[k+g+"Space"]="setSublimeMark"]=function(e){e.state.sublimeMark&&e.state.sublimeMark.clear(),e.state.sublimeMark=e.setBookmark(e.getCursor())},h[d[k+g+"A"]="selectToSublimeMark"]=function(e){var t=e.state.sublimeMark&&e.state.sublimeMark.find();t&&e.setSelection(e.getCursor(),t)},h[d[k+g+"W"]="deleteToSublimeMark"]=function(t){var n=t.state.sublimeMark&&t.state.sublimeMark.find();if(n){var r=t.getCursor(),i=n;if(e.cmpPos(r,i)>0){var o=i;i=r,r=o}t.state.sublimeKilled=t.getRange(r,i),t.replaceRange("",r,i)}},h[d[k+g+"X"]="swapWithSublimeMark"]=function(e){var t=e.state.sublimeMark&&e.state.sublimeMark.find();t&&(e.state.sublimeMark.clear(),e.state.sublimeMark=e.setBookmark(e.getCursor()),e.setCursor(t))},h[d[k+g+"Y"]="sublimeYank"]=function(e){null!=e.state.sublimeKilled&&e.replaceSelection(e.state.sublimeKilled,null,"paste")},d[k+g+"G"]="clearBookmarks",h[d[k+g+"C"]="showInCenter"]=function(e){var t=e.cursorCoords(null,"local");e.scrollTo(null,(t.top+t.bottom)/2-e.getScrollInfo().clientHeight/2)};var C=m?"Ctrl-Shift-":"Ctrl-Alt-";h[d[C+"Up"]="selectLinesUpward"]=function(e){e.operation(function(){for(var t=e.listSelections(),n=0;n<t.length;n++){var r=t[n];r.head.line>e.firstLine()&&e.addSelection(p(r.head.line-1,r.head.ch))}})},h[d[C+"Down"]="selectLinesDownward"]=function(e){e.operation(function(){for(var t=e.listSelections(),n=0;n<t.length;n++){var r=t[n];r.head.line<e.lastLine()&&e.addSelection(p(r.head.line+1,r.head.ch))}})},h[d[g+"F3"]="findUnder"]=function(e){f(e,!0)},h[d["Shift-"+g+"F3"]="findUnderPrevious"]=function(e){f(e,!1)},h[d["Alt-F3"]="findAllUnder"]=function(e){var t=u(e);if(t){for(var n=e.getSearchCursor(t.query),r=[],i=-1;n.findNext();)r.push({anchor:n.from(),head:n.to()}),n.from().line<=t.from.line&&n.from().ch<=t.from.ch&&i++;e.setSelections(r,i)}},d["Shift-"+g+"["]="fold",d["Shift-"+g+"]"]="unfold",d[k+g+"0"]=d[k+g+"J"]="unfoldAll",d[g+"I"]="findIncremental",d["Shift-"+g+"I"]="findIncrementalReverse",d[g+"H"]="replace",d.F3="findNext",d["Shift-F3"]="findPrev",e.normalizeKeyMap(d)}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../lib/codemirror")):"function"==typeof define&&define.amd?define(["../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";function t(e,t){return e.line==t.line&&e.ch==t.ch}function n(e){P.push(e),P.length>50&&P.shift()}function r(e){if(!P.length)return n(e);P[P.length-1]+=e}function i(e){return P[P.length-(e?Math.min(e,1):1)]||""}function o(){return P.length>1&&P.pop(),i()}function a(e,i,o,a,s){null==s&&(s=e.getRange(i,o)),a&&R&&R.cm==e&&t(i,R.pos)&&e.isClean(R.gen)?r(s):n(s),e.replaceRange("",i,o,"+delete"),R=a?{cm:e,pos:i,gen:e.changeGeneration()}:null}function s(e,t,n){return e.findPosH(t,n,"char",!0)}function l(e,t,n){return e.findPosH(t,n,"word",!0)}function c(e,t,n){return e.findPosV(t,n,"line",e.doc.sel.goalColumn)}function u(e,t,n){return e.findPosV(t,n,"page",e.doc.sel.goalColumn)}function f(e,t,n){for(var r=t.line,i=e.getLine(r),o=/\S/.test(n<0?i.slice(0,t.ch):i.slice(t.ch)),a=e.firstLine(),s=e.lastLine();;){if((r+=n)<a||r>s)return e.clipPos(I(r-n,n<0?0:null));i=e.getLine(r);if(/\S/.test(i))o=!0;else if(o)return I(r,0)}}function d(e,t,n){for(var r=t.line,i=t.ch,o=e.getLine(t.line),a=!1;;){var s=o.charAt(i+(n<0?-1:0));if(s){if(a&&/[!?.]/.test(s))return I(r,i+(n>0?1:0));a||(a=/\w/.test(s)),i+=n}else{if(r==(n<0?e.firstLine():e.lastLine()))return I(r,i);if(o=e.getLine(r+n),!/\S/.test(o))return I(r,i);r+=n,i=n<0?o.length:0}}}function h(e,n,r){var i;if(e.findMatchingBracket&&(i=e.findMatchingBracket(n,{strict:!0}))&&i.match&&(i.forward?1:-1)==r)return r>0?I(i.to.line,i.to.ch+1):i.to;for(var o=!0;;o=!1){var a=e.getTokenAt(n),s=I(n.line,r<0?a.start:a.end);if(!(o&&r>0&&a.end==n.ch)&&/\w/.test(a.string))return s;var l=e.findPosH(s,r,"char");if(t(s,l))return n;n=l}}function p(e,t){var n=e.state.emacsPrefix;return n?(k(e),"-"==n?-1:Number(n)):t?null:1}function m(e){var t="string"==typeof e?function(t){t.execCommand(e)}:e;return function(e){var n=p(e);t(e);for(var r=1;r<n;++r)t(e)}}function g(e,n,r,i){var o=p(e);o<0&&(i=-i,o=-o);for(var a=0;a<o;++a){var s=r(e,n,i);if(t(s,n))break;n=s}return n}function v(e,t){var n=function(n){n.extendSelection(g(n,n.getCursor(),e,t))};return n.motion=!0,n}function y(e,t,n){for(var r,i=e.listSelections(),o=i.length;o--;)r=i[o].head,a(e,r,g(e,r,t,n),!0)}function b(e){if(e.somethingSelected()){for(var t,n=e.listSelections(),r=n.length;r--;)t=n[r],a(e,t.anchor,t.head);return!0}}function x(e,t){if(e.state.emacsPrefix)return void("-"!=t&&(e.state.emacsPrefix+=t));e.state.emacsPrefix=t,e.on("keyHandled",w),e.on("inputRead",C)}function w(e,t){e.state.emacsPrefixMap||B.hasOwnProperty(t)||k(e)}function k(e){e.state.emacsPrefix=null,e.off("keyHandled",w),e.off("inputRead",C)}function C(e,t){var n=p(e);if(n>1&&"+input"==t.origin){for(var r=t.text.join("\n"),i="",o=1;o<n;++o)i+=r;e.replaceSelection(i)}}function S(e){e.state.emacsPrefixMap=!0,e.addKeyMap(D),e.on("keyHandled",_),e.on("inputRead",_)}function _(e,t){("string"!=typeof t||!/^\d$/.test(t)&&"Ctrl-U"!=t)&&(e.removeKeyMap(D),e.state.emacsPrefixMap=!1,e.off("keyHandled",_),e.off("inputRead",_))}function M(e){e.setCursor(e.getCursor()),e.setExtending(!e.getExtending()),e.on("change",function(){e.setExtending(!1)})}function L(e){e.setExtending(!1),e.setCursor(e.getCursor())}function T(e,t,n){e.openDialog?e.openDialog(t+': <input type="text" style="width: 10em"/>',n,{bottom:!0}):n(prompt(t,""))}function A(e,t){var n=e.getCursor(),r=e.findPosH(n,1,"word");e.replaceRange(t(e.getRange(n,r)),n,r),e.setCursor(r)}function O(e){for(var t=e.getCursor(),n=t.line,r=t.ch,i=[];n>=e.firstLine();){for(var o=e.getLine(n),a=null==r?o.length:r;a>0;){var r=o.charAt(--a);if(")"==r)i.push("(");else if("]"==r)i.push("[");else if("}"==r)i.push("{");else if(/[\(\{\[]/.test(r)&&(!i.length||i.pop()!=r))return e.extendSelection(I(n,a))}--n,r=null}}function E(e){e.execCommand("clearSearch"),L(e)}function N(e){D[e]=function(t){x(t,e)},z["Ctrl-"+e]=function(t){x(t,e)},B["Ctrl-"+e]=!0}var I=e.Pos,P=[],R=null,B={"Alt-G":!0,"Ctrl-X":!0,"Ctrl-Q":!0,"Ctrl-U":!0};e.emacs={kill:a,killRegion:b,repeated:m};for(var z=e.keyMap.emacs=e.normalizeKeyMap({"Ctrl-W":function(e){a(e,e.getCursor("start"),e.getCursor("end"))},"Ctrl-K":m(function(e){var t=e.getCursor(),n=e.clipPos(I(t.line)),r=e.getRange(t,n);/\S/.test(r)||(r+="\n",n=I(t.line+1,0)),a(e,t,n,!0,r)}),"Alt-W":function(e){n(e.getSelection()),L(e)},"Ctrl-Y":function(e){var t=e.getCursor();e.replaceRange(i(p(e)),t,t,"paste"),e.setSelection(t,e.getCursor())},"Alt-Y":function(e){e.replaceSelection(o(),"around","paste")},"Ctrl-Space":M,"Ctrl-Shift-2":M,"Ctrl-F":v(s,1),"Ctrl-B":v(s,-1),Right:v(s,1),Left:v(s,-1),"Ctrl-D":function(e){y(e,s,1)},Delete:function(e){b(e)||y(e,s,1)},"Ctrl-H":function(e){y(e,s,-1)},Backspace:function(e){b(e)||y(e,s,-1)},"Alt-F":v(l,1),"Alt-B":v(l,-1),"Alt-D":function(e){y(e,l,1)},"Alt-Backspace":function(e){y(e,l,-1)},"Ctrl-N":v(c,1),"Ctrl-P":v(c,-1),Down:v(c,1),Up:v(c,-1),"Ctrl-A":"goLineStart","Ctrl-E":"goLineEnd",End:"goLineEnd",Home:"goLineStart","Alt-V":v(u,-1),"Ctrl-V":v(u,1),PageUp:v(u,-1),PageDown:v(u,1),"Ctrl-Up":v(f,-1),"Ctrl-Down":v(f,1),"Alt-A":v(d,-1),"Alt-E":v(d,1),"Alt-K":function(e){y(e,d,1)},"Ctrl-Alt-K":function(e){y(e,h,1)},"Ctrl-Alt-Backspace":function(e){y(e,h,-1)},"Ctrl-Alt-F":v(h,1),"Ctrl-Alt-B":v(h,-1),"Shift-Ctrl-Alt-2":function(e){var t=e.getCursor();e.setSelection(g(e,t,h,1),t)},"Ctrl-Alt-T":function(e){var t=h(e,e.getCursor(),-1),n=h(e,t,1),r=h(e,n,1),i=h(e,r,-1);e.replaceRange(e.getRange(i,r)+e.getRange(n,i)+e.getRange(t,n),t,r)},"Ctrl-Alt-U":m(O),"Alt-Space":function(e){for(var t=e.getCursor(),n=t.ch,r=t.ch,i=e.getLine(t.line);n&&/\s/.test(i.charAt(n-1));)--n;for(;r<i.length&&/\s/.test(i.charAt(r));)++r;e.replaceRange(" ",I(t.line,n),I(t.line,r))},"Ctrl-O":m(function(e){e.replaceSelection("\n","start")}),"Ctrl-T":m(function(e){e.execCommand("transposeChars")}),"Alt-C":m(function(e){A(e,function(e){var t=e.search(/\w/);return t==-1?e:e.slice(0,t)+e.charAt(t).toUpperCase()+e.slice(t+1).toLowerCase()})}),"Alt-U":m(function(e){A(e,function(e){return e.toUpperCase()})}),"Alt-L":m(function(e){A(e,function(e){return e.toLowerCase()})}),"Alt-;":"toggleComment","Ctrl-/":m("undo"),"Shift-Ctrl--":m("undo"),"Ctrl-Z":m("undo"),"Cmd-Z":m("undo"),"Shift-Alt-,":"goDocStart","Shift-Alt-.":"goDocEnd","Ctrl-S":"findPersistentNext","Ctrl-R":"findPersistentPrev","Ctrl-G":E,"Shift-Alt-5":"replace","Alt-/":"autocomplete",Enter:"newlineAndIndent","Ctrl-J":m(function(e){e.replaceSelection("\n","end")}),Tab:"indentAuto","Alt-G G":function(e){var t=p(e,!0);if(null!=t&&t>0)return e.setCursor(t-1);T(e,"Goto line",function(t){var n;t&&!isNaN(n=Number(t))&&n==(0|n)&&n>0&&e.setCursor(n-1)})},"Ctrl-X Tab":function(e){e.indentSelection(p(e,!0)||e.getOption("indentUnit"))},"Ctrl-X Ctrl-X":function(e){e.setSelection(e.getCursor("head"),e.getCursor("anchor"))},"Ctrl-X Ctrl-S":"save","Ctrl-X Ctrl-W":"save","Ctrl-X S":"saveAll","Ctrl-X F":"open","Ctrl-X U":m("undo"),"Ctrl-X K":"close","Ctrl-X Delete":function(e){a(e,e.getCursor(),d(e,e.getCursor(),1),!0)},"Ctrl-X H":"selectAll","Ctrl-Q Tab":m("insertTab"),"Ctrl-U":S}),D={"Ctrl-G":k},F=0;F<10;++F)N(String(F));N("-")}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../lib/codemirror"),require("../addon/search/searchcursor"),require("../addon/dialog/dialog"),require("../addon/edit/matchbrackets.js")):"function"==typeof define&&define.amd?define(["../lib/codemirror","../addon/search/searchcursor","../addon/dialog/dialog","../addon/edit/matchbrackets"],e):e(CodeMirror)}(function(e){"use strict";var t=[{keys:"<Left>",type:"keyToKey",toKeys:"h"},{keys:"<Right>",type:"keyToKey",toKeys:"l"},{keys:"<Up>",type:"keyToKey",toKeys:"k"},{keys:"<Down>",type:"keyToKey",toKeys:"j"},{keys:"<Space>",type:"keyToKey",toKeys:"l"},{keys:"<BS>",type:"keyToKey",toKeys:"h",context:"normal"},{keys:"<C-Space>",type:"keyToKey",toKeys:"W"},{keys:"<C-BS>",type:"keyToKey",toKeys:"B",context:"normal"},{keys:"<S-Space>",type:"keyToKey",toKeys:"w"},{keys:"<S-BS>",type:"keyToKey",toKeys:"b",context:"normal"},{keys:"<C-n>",type:"keyToKey",toKeys:"j"},{keys:"<C-p>",type:"keyToKey",toKeys:"k"},{keys:"<C-[>",type:"keyToKey",toKeys:"<Esc>"},{keys:"<C-c>",type:"keyToKey",toKeys:"<Esc>"},{keys:"<C-[>",type:"keyToKey",toKeys:"<Esc>",context:"insert"},{keys:"<C-c>",type:"keyToKey",toKeys:"<Esc>",context:"insert"},{keys:"s",type:"keyToKey",toKeys:"cl",context:"normal"},{keys:"s",type:"keyToKey",toKeys:"c",context:"visual"},{keys:"S",type:"keyToKey",toKeys:"cc",context:"normal"},{keys:"S",type:"keyToKey",toKeys:"VdO",context:"visual"},{keys:"<Home>",type:"keyToKey",toKeys:"0"},{keys:"<End>",type:"keyToKey",toKeys:"$"},{keys:"<PageUp>",type:"keyToKey",toKeys:"<C-b>"},{keys:"<PageDown>",type:"keyToKey",toKeys:"<C-f>"},{keys:"<CR>",type:"keyToKey",toKeys:"j^",context:"normal"},{keys:"<Ins>",type:"action",action:"toggleOverwrite",context:"insert"},{keys:"H",type:"motion",motion:"moveToTopLine",motionArgs:{linewise:!0,toJumplist:!0}},{keys:"M",type:"motion",motion:"moveToMiddleLine",motionArgs:{linewise:!0,toJumplist:!0}},{keys:"L",type:"motion",motion:"moveToBottomLine",motionArgs:{linewise:!0,toJumplist:!0}},{keys:"h",type:"motion",motion:"moveByCharacters",motionArgs:{forward:!1}},{keys:"l",type:"motion",motion:"moveByCharacters",motionArgs:{forward:!0}},{keys:"j",type:"motion",motion:"moveByLines",motionArgs:{forward:!0,linewise:!0}},{keys:"k",type:"motion",motion:"moveByLines",motionArgs:{forward:!1,linewise:!0}},{keys:"gj",type:"motion",motion:"moveByDisplayLines",motionArgs:{forward:!0}},{keys:"gk",type:"motion",motion:"moveByDisplayLines",motionArgs:{forward:!1}},{keys:"w",type:"motion",motion:"moveByWords",motionArgs:{forward:!0,wordEnd:!1}},{keys:"W",type:"motion",motion:"moveByWords",motionArgs:{forward:!0,wordEnd:!1,bigWord:!0}},{keys:"e",type:"motion",motion:"moveByWords",motionArgs:{forward:!0,wordEnd:!0,inclusive:!0}},{keys:"E",type:"motion",motion:"moveByWords",motionArgs:{forward:!0,wordEnd:!0,bigWord:!0,inclusive:!0}},{keys:"b",type:"motion",motion:"moveByWords",motionArgs:{forward:!1,wordEnd:!1}},{keys:"B",type:"motion",motion:"moveByWords",motionArgs:{forward:!1,wordEnd:!1,bigWord:!0}},{keys:"ge",type:"motion",motion:"moveByWords",motionArgs:{forward:!1,wordEnd:!0,inclusive:!0}},{keys:"gE",type:"motion",motion:"moveByWords",motionArgs:{forward:!1,wordEnd:!0,bigWord:!0,inclusive:!0}},{keys:"{",type:"motion",motion:"moveByParagraph",motionArgs:{forward:!1,toJumplist:!0}},{keys:"}",type:"motion",motion:"moveByParagraph",motionArgs:{forward:!0,toJumplist:!0}},{keys:"<C-f>",type:"motion",motion:"moveByPage",motionArgs:{forward:!0}},{keys:"<C-b>",type:"motion",motion:"moveByPage",motionArgs:{forward:!1}},{keys:"<C-d>",type:"motion",motion:"moveByScroll",motionArgs:{forward:!0,explicitRepeat:!0}},{keys:"<C-u>",type:"motion",motion:"moveByScroll",motionArgs:{forward:!1,explicitRepeat:!0}},{keys:"gg",type:"motion",motion:"moveToLineOrEdgeOfDocument",motionArgs:{forward:!1,explicitRepeat:!0,linewise:!0,toJumplist:!0}},{keys:"G",type:"motion",motion:"moveToLineOrEdgeOfDocument",motionArgs:{forward:!0,explicitRepeat:!0,linewise:!0,toJumplist:!0}},{keys:"0",type:"motion",motion:"moveToStartOfLine"},{keys:"^",type:"motion",motion:"moveToFirstNonWhiteSpaceCharacter"},{keys:"+",type:"motion",motion:"moveByLines",motionArgs:{forward:!0,toFirstChar:!0}},{keys:"-",type:"motion",motion:"moveByLines",motionArgs:{forward:!1,toFirstChar:!0}},{keys:"_",type:"motion",motion:"moveByLines",motionArgs:{forward:!0,toFirstChar:!0,repeatOffset:-1}},{keys:"$",type:"motion",motion:"moveToEol",motionArgs:{inclusive:!0}},{keys:"%",type:"motion",motion:"moveToMatchedSymbol",motionArgs:{inclusive:!0,toJumplist:!0}},{keys:"f<character>",type:"motion",motion:"moveToCharacter",motionArgs:{forward:!0,inclusive:!0}},{keys:"F<character>",type:"motion",motion:"moveToCharacter",motionArgs:{forward:!1}},{keys:"t<character>",type:"motion",motion:"moveTillCharacter",motionArgs:{forward:!0,inclusive:!0}},{keys:"T<character>",type:"motion",motion:"moveTillCharacter",motionArgs:{forward:!1}},{keys:";",type:"motion",motion:"repeatLastCharacterSearch",motionArgs:{forward:!0}},{keys:",",type:"motion",motion:"repeatLastCharacterSearch",motionArgs:{forward:!1}},{keys:"'<character>",type:"motion",motion:"goToMark",motionArgs:{toJumplist:!0,linewise:!0}},{keys:"`<character>",type:"motion",motion:"goToMark",motionArgs:{toJumplist:!0}},{keys:"]`",type:"motion",motion:"jumpToMark",motionArgs:{forward:!0}},{keys:"[`",type:"motion",motion:"jumpToMark",motionArgs:{forward:!1}},{keys:"]'",type:"motion",motion:"jumpToMark",motionArgs:{forward:!0,linewise:!0}},{keys:"['",type:"motion",motion:"jumpToMark",motionArgs:{forward:!1,linewise:!0}},{keys:"]p",type:"action",action:"paste",isEdit:!0,actionArgs:{after:!0,isEdit:!0,matchIndent:!0}},{keys:"[p",type:"action",action:"paste",isEdit:!0,actionArgs:{after:!1,isEdit:!0,matchIndent:!0}},{keys:"]<character>",type:"motion",motion:"moveToSymbol",motionArgs:{forward:!0,toJumplist:!0}},{keys:"[<character>",type:"motion",motion:"moveToSymbol",motionArgs:{forward:!1,toJumplist:!0}},{keys:"|",type:"motion",motion:"moveToColumn"},{keys:"o",type:"motion",motion:"moveToOtherHighlightedEnd",context:"visual"},{keys:"O",
11
- type:"motion",motion:"moveToOtherHighlightedEnd",motionArgs:{sameLine:!0},context:"visual"},{keys:"d",type:"operator",operator:"delete"},{keys:"y",type:"operator",operator:"yank"},{keys:"c",type:"operator",operator:"change"},{keys:">",type:"operator",operator:"indent",operatorArgs:{indentRight:!0}},{keys:"<",type:"operator",operator:"indent",operatorArgs:{indentRight:!1}},{keys:"g~",type:"operator",operator:"changeCase"},{keys:"gu",type:"operator",operator:"changeCase",operatorArgs:{toLower:!0},isEdit:!0},{keys:"gU",type:"operator",operator:"changeCase",operatorArgs:{toLower:!1},isEdit:!0},{keys:"n",type:"motion",motion:"findNext",motionArgs:{forward:!0,toJumplist:!0}},{keys:"N",type:"motion",motion:"findNext",motionArgs:{forward:!1,toJumplist:!0}},{keys:"x",type:"operatorMotion",operator:"delete",motion:"moveByCharacters",motionArgs:{forward:!0},operatorMotionArgs:{visualLine:!1}},{keys:"X",type:"operatorMotion",operator:"delete",motion:"moveByCharacters",motionArgs:{forward:!1},operatorMotionArgs:{visualLine:!0}},{keys:"D",type:"operatorMotion",operator:"delete",motion:"moveToEol",motionArgs:{inclusive:!0},context:"normal"},{keys:"D",type:"operator",operator:"delete",operatorArgs:{linewise:!0},context:"visual"},{keys:"Y",type:"operatorMotion",operator:"yank",motion:"expandToLine",motionArgs:{linewise:!0},context:"normal"},{keys:"Y",type:"operator",operator:"yank",operatorArgs:{linewise:!0},context:"visual"},{keys:"C",type:"operatorMotion",operator:"change",motion:"moveToEol",motionArgs:{inclusive:!0},context:"normal"},{keys:"C",type:"operator",operator:"change",operatorArgs:{linewise:!0},context:"visual"},{keys:"~",type:"operatorMotion",operator:"changeCase",motion:"moveByCharacters",motionArgs:{forward:!0},operatorArgs:{shouldMoveCursor:!0},context:"normal"},{keys:"~",type:"operator",operator:"changeCase",context:"visual"},{keys:"<C-w>",type:"operatorMotion",operator:"delete",motion:"moveByWords",motionArgs:{forward:!1,wordEnd:!1},context:"insert"},{keys:"<C-i>",type:"action",action:"jumpListWalk",actionArgs:{forward:!0}},{keys:"<C-o>",type:"action",action:"jumpListWalk",actionArgs:{forward:!1}},{keys:"<C-e>",type:"action",action:"scroll",actionArgs:{forward:!0,linewise:!0}},{keys:"<C-y>",type:"action",action:"scroll",actionArgs:{forward:!1,linewise:!0}},{keys:"a",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{insertAt:"charAfter"},context:"normal"},{keys:"A",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{insertAt:"eol"},context:"normal"},{keys:"A",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{insertAt:"endOfSelectedArea"},context:"visual"},{keys:"i",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{insertAt:"inplace"},context:"normal"},{keys:"I",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{insertAt:"firstNonBlank"},context:"normal"},{keys:"I",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{insertAt:"startOfSelectedArea"},context:"visual"},{keys:"o",type:"action",action:"newLineAndEnterInsertMode",isEdit:!0,interlaceInsertRepeat:!0,actionArgs:{after:!0},context:"normal"},{keys:"O",type:"action",action:"newLineAndEnterInsertMode",isEdit:!0,interlaceInsertRepeat:!0,actionArgs:{after:!1},context:"normal"},{keys:"v",type:"action",action:"toggleVisualMode"},{keys:"V",type:"action",action:"toggleVisualMode",actionArgs:{linewise:!0}},{keys:"<C-v>",type:"action",action:"toggleVisualMode",actionArgs:{blockwise:!0}},{keys:"<C-q>",type:"action",action:"toggleVisualMode",actionArgs:{blockwise:!0}},{keys:"gv",type:"action",action:"reselectLastSelection"},{keys:"J",type:"action",action:"joinLines",isEdit:!0},{keys:"p",type:"action",action:"paste",isEdit:!0,actionArgs:{after:!0,isEdit:!0}},{keys:"P",type:"action",action:"paste",isEdit:!0,actionArgs:{after:!1,isEdit:!0}},{keys:"r<character>",type:"action",action:"replace",isEdit:!0},{keys:"@<character>",type:"action",action:"replayMacro"},{keys:"q<character>",type:"action",action:"enterMacroRecordMode"},{keys:"R",type:"action",action:"enterInsertMode",isEdit:!0,actionArgs:{replace:!0}},{keys:"u",type:"action",action:"undo",context:"normal"},{keys:"u",type:"operator",operator:"changeCase",operatorArgs:{toLower:!0},context:"visual",isEdit:!0},{keys:"U",type:"operator",operator:"changeCase",operatorArgs:{toLower:!1},context:"visual",isEdit:!0},{keys:"<C-r>",type:"action",action:"redo"},{keys:"m<character>",type:"action",action:"setMark"},{keys:'"<character>',type:"action",action:"setRegister"},{keys:"zz",type:"action",action:"scrollToCursor",actionArgs:{position:"center"}},{keys:"z.",type:"action",action:"scrollToCursor",actionArgs:{position:"center"},motion:"moveToFirstNonWhiteSpaceCharacter"},{keys:"zt",type:"action",action:"scrollToCursor",actionArgs:{position:"top"}},{keys:"z<CR>",type:"action",action:"scrollToCursor",actionArgs:{position:"top"},motion:"moveToFirstNonWhiteSpaceCharacter"},{keys:"z-",type:"action",action:"scrollToCursor",actionArgs:{position:"bottom"}},{keys:"zb",type:"action",action:"scrollToCursor",actionArgs:{position:"bottom"},motion:"moveToFirstNonWhiteSpaceCharacter"},{keys:".",type:"action",action:"repeatLastEdit"},{keys:"<C-a>",type:"action",action:"incrementNumberToken",isEdit:!0,actionArgs:{increase:!0,backtrack:!1}},{keys:"<C-x>",type:"action",action:"incrementNumberToken",isEdit:!0,actionArgs:{increase:!1,backtrack:!1}},{keys:"<C-t>",type:"action",action:"indent",actionArgs:{indentRight:!0},context:"insert"},{keys:"<C-d>",type:"action",action:"indent",actionArgs:{indentRight:!1},context:"insert"},{keys:"a<character>",type:"motion",motion:"textObjectManipulation"},{keys:"i<character>",type:"motion",motion:"textObjectManipulation",motionArgs:{textObjectInner:!0}},{keys:"/",type:"search",searchArgs:{forward:!0,querySrc:"prompt",toJumplist:!0}},{keys:"?",type:"search",searchArgs:{forward:!1,querySrc:"prompt",toJumplist:!0}},{keys:"*",type:"search",searchArgs:{forward:!0,querySrc:"wordUnderCursor",wholeWordOnly:!0,toJumplist:!0}},{keys:"#",type:"search",searchArgs:{forward:!1,querySrc:"wordUnderCursor",wholeWordOnly:!0,toJumplist:!0}},{keys:"g*",type:"search",searchArgs:{forward:!0,querySrc:"wordUnderCursor",toJumplist:!0}},{keys:"g#",type:"search",searchArgs:{forward:!1,querySrc:"wordUnderCursor",toJumplist:!0}},{keys:":",type:"ex"}],n=[{name:"colorscheme",shortName:"colo"},{name:"map"},{name:"imap",shortName:"im"},{name:"nmap",shortName:"nm"},{name:"vmap",shortName:"vm"},{name:"unmap"},{name:"write",shortName:"w"},{name:"undo",shortName:"u"},{name:"redo",shortName:"red"},{name:"set",shortName:"se"},{name:"set",shortName:"se"},{name:"setlocal",shortName:"setl"},{name:"setglobal",shortName:"setg"},{name:"sort",shortName:"sor"},{name:"substitute",shortName:"s",possiblyAsync:!0},{name:"nohlsearch",shortName:"noh"},{name:"yank",shortName:"y"},{name:"delmarks",shortName:"delm"},{name:"registers",shortName:"reg",excludeFromCommandHistory:!0},{name:"global",shortName:"g"}],r=e.Pos;e.Vim=function(){function i(t){t.setOption("disableInput",!0),t.setOption("showCursorWhenSelecting",!1),e.signal(t,"vim-mode-change",{mode:"normal"}),t.on("cursorActivity",tt),C(t),e.on(t.getInputField(),"paste",u(t))}function o(t){t.setOption("disableInput",!1),t.off("cursorActivity",tt),e.off(t.getInputField(),"paste",u(t)),t.state.vim=null}function a(t,n){this==e.keyMap.vim&&e.rmClass(t.getWrapperElement(),"cm-fat-cursor"),n&&n.attach==s||o(t)}function s(t,n){this==e.keyMap.vim&&e.addClass(t.getWrapperElement(),"cm-fat-cursor"),n&&n.attach==s||i(t)}function l(t,n){if(n){if(this[t])return this[t];var r=c(t);if(!r)return!1;var i=e.Vim.findKey(n,r);return"function"==typeof i&&e.signal(n,"vim-keypress",r),i}}function c(e){if("'"==e.charAt(0))return e.charAt(1);var t=e.split(/-(?!$)/),n=t[t.length-1];if(1==t.length&&1==t[0].length)return!1;if(2==t.length&&"Shift"==t[0]&&1==n.length)return!1;for(var r=!1,i=0;i<t.length;i++){var o=t[i];o in lt?t[i]=lt[o]:r=!0,o in ct&&(t[i]=ct[o])}return!!r&&(g(n)&&(t[t.length-1]=n.toLowerCase()),"<"+t.join("-")+">")}function u(e){var t=e.state.vim;return t.onPasteFn||(t.onPasteFn=function(){t.insertMode||(e.setCursor(z(e.getCursor(),0,1)),Lt.enterInsertMode(e,{},t))}),t.onPasteFn}function f(e,t){for(var n=[],r=e;r<e+t;r++)n.push(String.fromCharCode(r));return n}function d(e,t){return t>=e.firstLine()&&t<=e.lastLine()}function h(e){return/^[a-z]$/.test(e)}function p(e){return"()[]{}".indexOf(e)!=-1}function m(e){return ut.test(e)}function g(e){return/^[A-Z]$/.test(e)}function v(e){return/^\s*$/.test(e)}function y(e,t){for(var n=0;n<t.length;n++)if(t[n]==e)return!0;return!1}function b(e,t,n,r,i){if(void 0===t&&!i)throw Error("defaultValue is required unless callback is provided");if(n||(n="string"),yt[e]={type:n,defaultValue:t,callback:i},r)for(var o=0;o<r.length;o++)yt[r[o]]=yt[e];t&&x(e,t)}function x(e,t,n,r){var i=yt[e];r=r||{};var o=r.scope;if(!i)return new Error("Unknown option: "+e);if("boolean"==i.type){if(t&&t!==!0)return new Error("Invalid argument: "+e+"="+t);t!==!1&&(t=!0)}i.callback?("local"!==o&&i.callback(t,void 0),"global"!==o&&n&&i.callback(t,n)):("local"!==o&&(i.value="boolean"==i.type?!!t:t),"global"!==o&&n&&(n.state.vim.options[e]={value:t}))}function w(e,t,n){var r=yt[e];n=n||{};var i=n.scope;if(!r)return new Error("Unknown option: "+e);{if(!r.callback){var o="global"!==i&&t&&t.state.vim.options[e];return(o||"local"!==i&&r||{}).value}var o=t&&r.callback(void 0,t);if("global"!==i&&void 0!==o)return o;if("local"!==i)return r.callback()}}function k(){this.latestRegister=void 0,this.isPlaying=!1,this.isRecording=!1,this.replaySearchQueries=[],this.onRecordingDone=void 0,this.lastInsertModeChanges=xt()}function C(e){return e.state.vim||(e.state.vim={inputState:new _,lastEditInputState:void 0,lastEditActionCommand:void 0,lastHPos:-1,lastHSPos:-1,lastMotion:null,marks:{},fakeCursor:null,insertMode:!1,insertModeRepeat:void 0,visualMode:!1,visualLine:!1,visualBlock:!1,lastSelection:null,lastPastedText:null,sel:{},options:{}}),e.state.vim}function S(){wt={searchQuery:null,searchIsReversed:!1,lastSubstituteReplacePart:void 0,jumpList:bt(),macroModeState:new k,lastCharacterSearch:{increment:0,forward:!0,selectedCharacter:""},registerController:new A({}),searchHistoryController:new O,exCommandHistoryController:new O};for(var e in yt){var t=yt[e];t.value=t.defaultValue}}function _(){this.prefixRepeat=[],this.motionRepeat=[],this.operator=null,this.operatorArgs=null,this.motion=null,this.motionArgs=null,this.keyBuffer=[],this.registerName=null}function M(t,n){t.state.vim.inputState=new _,e.signal(t,"vim-command-done",n)}function L(e,t,n){this.clear(),this.keyBuffer=[e||""],this.insertModeChanges=[],this.searchQueries=[],this.linewise=!!t,this.blockwise=!!n}function T(e,t){var n=wt.registerController.registers;if(!e||1!=e.length)throw Error("Register name must be 1 character");if(n[e])throw Error("Register already defined "+e);n[e]=t,vt.push(e)}function A(e){this.registers=e,this.unnamedRegister=e['"']=new L,e["."]=new L,e[":"]=new L,e["/"]=new L}function O(){this.historyBuffer=[],this.iterator=0,this.initialPrefix=null}function E(e,t){_t[e]=t}function N(e,t){for(var n=[],r=0;r<t;r++)n.push(e);return n}function I(e,t){Mt[e]=t}function P(e,t){Lt[e]=t}function R(e,t,n){var i=Math.min(Math.max(e.firstLine(),t.line),e.lastLine()),o=X(e,i)-1;o=n?o+1:o;var a=Math.min(Math.max(0,t.ch),o);return r(i,a)}function B(e){var t={};for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t}function z(e,t,n){return"object"==typeof t&&(n=t.ch,t=t.line),r(e.line+t,e.ch+n)}function D(e,t){return{line:t.line-e.line,ch:t.line-e.line}}function F(e,t,n,r){for(var i,o=[],a=[],s=0;s<t.length;s++){var l=t[s];"insert"==n&&"insert"!=l.context||l.context&&l.context!=n||r.operator&&"action"==l.type||!(i=W(e,l.keys))||("partial"==i&&o.push(l),"full"==i&&a.push(l))}return{partial:o.length&&o,full:a.length&&a}}function W(e,t){if("<character>"==t.slice(-11)){var n=t.length-11,r=e.slice(0,n),i=t.slice(0,n);return r==i&&e.length>n?"full":0==i.indexOf(r)&&"partial"}return e==t?"full":0==t.indexOf(e)&&"partial"}function q(e){var t=/^.*(<[^>]+>)$/.exec(e),n=t?t[1]:e.slice(-1);if(n.length>1)switch(n){case"<CR>":n="\n";break;case"<Space>":n=" ";break;default:n=""}return n}function H(e,t,n){return function(){for(var r=0;r<n;r++)t(e)}}function j(e){return r(e.line,e.ch)}function K(e,t){return e.ch==t.ch&&e.line==t.line}function U(e,t){return e.line<t.line||e.line==t.line&&e.ch<t.ch}function V(e,t){return arguments.length>2&&(t=V.apply(void 0,Array.prototype.slice.call(arguments,1))),U(e,t)?e:t}function $(e,t){return arguments.length>2&&(t=$.apply(void 0,Array.prototype.slice.call(arguments,1))),U(e,t)?t:e}function G(e,t,n){var r=U(e,t),i=U(t,n);return r&&i}function X(e,t){return e.getLine(t).length}function Y(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function Q(e){return e.replace(/([.?*+$\[\]\/\\(){}|\-])/g,"\\$1")}function J(e,t,n){var i=X(e,t),o=new Array(n-i+1).join(" ");e.setCursor(r(t,i)),e.replaceRange(o,e.getCursor())}function Z(e,t){var n=[],i=e.listSelections(),o=j(e.clipPos(t)),a=!K(t,o),s=e.getCursor("head"),l=te(i,s),c=K(i[l].head,i[l].anchor),u=i.length-1,f=u-l>l?u:0,d=i[f].anchor,h=Math.min(d.line,o.line),p=Math.max(d.line,o.line),m=d.ch,g=o.ch,v=i[f].head.ch-m,y=g-m;v>0&&y<=0?(m++,a||g--):v<0&&y>=0?(m--,c||g++):v<0&&y==-1&&(m--,g++);for(var b=h;b<=p;b++){var x={anchor:new r(b,m),head:new r(b,g)};n.push(x)}return e.setSelections(n),t.ch=g,d.ch=m,d}function ee(e,t,n){for(var r=[],i=0;i<n;i++){var o=z(t,i,0);r.push({anchor:o,head:o})}e.setSelections(r,0)}function te(e,t,n){for(var r=0;r<e.length;r++){var i="head"!=n&&K(e[r].anchor,t),o="anchor"!=n&&K(e[r].head,t);if(i||o)return r}return-1}function ne(e,t){var n=t.lastSelection;return t.visualMode?function(){var t=e.listSelections(),n=t[0],r=t[t.length-1];return[U(n.anchor,n.head)?n.anchor:n.head,U(r.anchor,r.head)?r.head:r.anchor]}():function(){var t=e.getCursor(),i=e.getCursor(),o=n.visualBlock;if(o){var a=o.width,s=o.height;i=r(t.line+s,t.ch+a);for(var l=[],c=t.line;c<i.line;c++){var u=r(c,t.ch),f=r(c,i.ch),d={anchor:u,head:f};l.push(d)}e.setSelections(l)}else{var h=n.anchorMark.find(),p=n.headMark.find(),m=p.line-h.line,g=p.ch-h.ch;i={line:i.line+m,ch:m?i.ch:g+i.ch},n.visualLine&&(t=r(t.line,0),i=r(i.line,X(e,i.line))),e.setSelection(t,i)}return[t,i]}()}function re(e,t){var n=t.sel.anchor,r=t.sel.head;t.lastPastedText&&(r=e.posFromIndex(e.indexFromPos(n)+t.lastPastedText.length),t.lastPastedText=null),t.lastSelection={anchorMark:e.setBookmark(n),headMark:e.setBookmark(r),anchor:j(n),head:j(r),visualMode:t.visualMode,visualLine:t.visualLine,visualBlock:t.visualBlock}}function ie(e,t,n){var i,o=e.state.vim.sel,a=o.head,s=o.anchor;return U(n,t)&&(i=n,n=t,t=i),U(a,s)?(a=V(t,a),s=$(s,n)):(s=V(t,s),a=$(a,n),a=z(a,0,-1),a.ch==-1&&a.line!=e.firstLine()&&(a=r(a.line-1,X(e,a.line-1)))),[s,a]}function oe(e,t,n){var r=e.state.vim;t=t||r.sel;var n=n||r.visualLine?"line":r.visualBlock?"block":"char",i=ae(e,t,n);e.setSelections(i.ranges,i.primary),nt(e)}function ae(e,t,n,i){var o=j(t.head),a=j(t.anchor);if("char"==n){var s=i||U(t.head,t.anchor)?0:1,l=U(t.head,t.anchor)?1:0;return o=z(t.head,0,s),a=z(t.anchor,0,l),{ranges:[{anchor:a,head:o}],primary:0}}if("line"==n){if(U(t.head,t.anchor))o.ch=0,a.ch=X(e,a.line);else{a.ch=0;var c=e.lastLine();o.line>c&&(o.line=c),o.ch=X(e,o.line)}return{ranges:[{anchor:a,head:o}],primary:0}}if("block"==n){for(var u=Math.min(a.line,o.line),f=Math.min(a.ch,o.ch),d=Math.max(a.line,o.line),h=Math.max(a.ch,o.ch)+1,p=d-u+1,m=o.line==u?0:p-1,g=[],v=0;v<p;v++)g.push({anchor:r(u+v,f),head:r(u+v,h)});return{ranges:g,primary:m}}}function se(e){var t=e.getCursor("head");return 1==e.getSelection().length&&(t=V(t,e.getCursor("anchor"))),t}function le(t,n){var r=t.state.vim;n!==!1&&t.setCursor(R(t,r.sel.head)),re(t,r),r.visualMode=!1,r.visualLine=!1,r.visualBlock=!1,e.signal(t,"vim-mode-change",{mode:"normal"}),r.fakeCursor&&r.fakeCursor.clear()}function ce(e,t,n){var r=e.getRange(t,n);if(/\n\s*$/.test(r)){var i=r.split("\n");i.pop();for(var o,o=i.pop();i.length>0&&o&&v(o);o=i.pop())n.line--,n.ch=0;o?(n.line--,n.ch=X(e,n.line)):n.ch=0}}function ue(e,t,n){t.ch=0,n.ch=0,n.line++}function fe(e){if(!e)return 0;var t=e.search(/\S/);return t==-1?e.length:t}function de(e,t,n,i,o){for(var a=se(e),s=e.getLine(a.line),l=a.ch,c=o?ft[0]:dt[0];!c(s.charAt(l));)if(++l>=s.length)return null;i?c=dt[0]:(c=ft[0])(s.charAt(l))||(c=ft[1]);for(var u=l,f=l;c(s.charAt(u))&&u<s.length;)u++;for(;c(s.charAt(f))&&f>=0;)f--;if(f++,t){for(var d=u;/\s/.test(s.charAt(u))&&u<s.length;)u++;if(d==u){for(var h=f;/\s/.test(s.charAt(f-1))&&f>0;)f--;f||(f=h)}}return{start:r(a.line,f),end:r(a.line,u)}}function he(e,t,n){K(t,n)||wt.jumpList.add(e,t,n)}function pe(e,t){wt.lastCharacterSearch.increment=e,wt.lastCharacterSearch.forward=t.forward,wt.lastCharacterSearch.selectedCharacter=t.selectedCharacter}function me(e,t,n,i){var o=j(e.getCursor()),a=n?1:-1,s=n?e.lineCount():-1,l=o.ch,c=o.line,u=e.getLine(c),f={lineText:u,nextCh:u.charAt(l),lastCh:null,index:l,symb:i,reverseSymb:(n?{")":"(","}":"{"}:{"(":")","{":"}"})[i],forward:n,depth:0,curMoveThrough:!1},d=Tt[i];if(!d)return o;var h=At[d].init,p=At[d].isComplete;for(h&&h(f);c!==s&&t;){if(f.index+=a,f.nextCh=f.lineText.charAt(f.index),!f.nextCh){if(c+=a,f.lineText=e.getLine(c)||"",a>0)f.index=0;else{var m=f.lineText.length;f.index=m>0?m-1:0}f.nextCh=f.lineText.charAt(f.index)}p(f)&&(o.line=c,o.ch=f.index,t--)}return f.nextCh||f.curMoveThrough?r(c,f.index):o}function ge(e,t,n,r,i){var o=t.line,a=t.ch,s=e.getLine(o),l=n?1:-1,c=r?dt:ft;if(i&&""==s){if(o+=l,s=e.getLine(o),!d(e,o))return null;a=n?0:s.length}for(;;){if(i&&""==s)return{from:0,to:0,line:o};for(var u=l>0?s.length:-1,f=u,h=u;a!=u;){for(var p=!1,m=0;m<c.length&&!p;++m)if(c[m](s.charAt(a))){for(f=a;a!=u&&c[m](s.charAt(a));)a+=l;if(h=a,p=f!=h,f==t.ch&&o==t.line&&h==f+l)continue;return{from:Math.min(f,h+1),to:Math.max(f,h),line:o}}p||(a+=l)}if(o+=l,!d(e,o))return null;s=e.getLine(o),a=l>0?0:s.length}}function ve(e,t,n,i,o,a){var s=j(t),l=[];(i&&!o||!i&&o)&&n++;for(var c=!(i&&o),u=0;u<n;u++){var f=ge(e,t,i,a,c);if(!f){var d=X(e,e.lastLine());l.push(i?{line:e.lastLine(),from:d,to:d}:{line:0,from:0,to:0});break}l.push(f),t=r(f.line,i?f.to-1:f.from)}var h=l.length!=n,p=l[0],m=l.pop();return i&&!o?(h||p.from==s.ch&&p.line==s.line||(m=l.pop()),r(m.line,m.from)):i&&o?r(m.line,m.to-1):!i&&o?(h||p.to==s.ch&&p.line==s.line||(m=l.pop()),r(m.line,m.to)):r(m.line,m.from)}function ye(e,t,n,i){for(var o,a=e.getCursor(),s=a.ch,l=0;l<t;l++){if((o=we(s,e.getLine(a.line),i,n,!0))==-1)return null;s=o}return r(e.getCursor().line,o)}function be(e,t){var n=e.getCursor().line;return R(e,r(n,t-1))}function xe(e,t,n,r){y(n,gt)&&(t.marks[n]&&t.marks[n].clear(),t.marks[n]=e.setBookmark(r))}function we(e,t,n,r,i){var o;return r?(o=t.indexOf(n,e+1))==-1||i||(o-=1):(o=t.lastIndexOf(n,e-1))==-1||i||(o+=1),o}function ke(e,t,n,i,o){function a(t){return!e.getLine(t)}function s(e,t,n){return n?a(e)!=a(e+t):!a(e)&&a(e+t)}var l,c,u=t.line,f=e.firstLine(),d=e.lastLine(),h=u;if(i){for(;f<=h&&h<=d&&n>0;)s(h,i)&&n--,h+=i;return new r(h,0)}var p=e.state.vim;if(p.visualLine&&s(u,1,!0)){var m=p.sel.anchor;s(m.line,-1,!0)&&(o&&m.line==u||(u+=1))}var g=a(u);for(h=u;h<=d&&n;h++)s(h,1,!0)&&(o&&a(h)==g||n--);for(c=new r(h,0),h>d&&!g?g=!0:o=!1,h=u;h>f&&(o&&a(h)!=g&&h!=u||!s(h,-1,!0));h--);return l=new r(h,0),{start:l,end:c}}function Ce(e,t,n,i){var o,a,s=t,l={"(":/[()]/,")":/[()]/,"[":/[[\]]/,"]":/[[\]]/,"{":/[{}]/,"}":/[{}]/}[n],c={"(":"(",")":"(","[":"[","]":"[","{":"{","}":"{"}[n],u=e.getLine(s.line).charAt(s.ch),f=u===c?1:0;if(o=e.scanForBracket(r(s.line,s.ch+f),-1,null,{bracketRegex:l}),a=e.scanForBracket(r(s.line,s.ch+f),1,null,{bracketRegex:l}),!o||!a)return{start:s,end:s};if(o=o.pos,a=a.pos,o.line==a.line&&o.ch>a.ch||o.line>a.line){var d=o;o=a,a=d}return i?a.ch+=1:o.ch+=1,{start:o,end:a}}function Se(e,t,n,i){var o,a,s,l,c=j(t),u=e.getLine(c.line),f=u.split(""),d=f.indexOf(n);if(c.ch<d?c.ch=d:d<c.ch&&f[c.ch]==n&&(a=c.ch,--c.ch),f[c.ch]!=n||a)for(s=c.ch;s>-1&&!o;s--)f[s]==n&&(o=s+1);else o=c.ch+1;if(o&&!a)for(s=o,l=f.length;s<l&&!a;s++)f[s]==n&&(a=s);return o&&a?(i&&(--o,++a),{start:r(c.line,o),end:r(c.line,a)}):{start:c,end:c}}function _e(){}function Me(e){var t=e.state.vim;return t.searchState_||(t.searchState_=new _e)}function Le(e,t,n,r,i){e.openDialog?e.openDialog(t,r,{bottom:!0,value:i.value,onKeyDown:i.onKeyDown,onKeyUp:i.onKeyUp,selectValueOnOpen:!1}):r(prompt(n,""))}function Te(e){var t=Ae(e)||[];if(!t.length)return[];var n=[];if(0===t[0]){for(var r=0;r<t.length;r++)"number"==typeof t[r]&&n.push(e.substring(t[r]+1,t[r+1]));return n}}function Ae(e){for(var t=!1,n=[],r=0;r<e.length;r++){var i=e.charAt(r);t||"/"!=i||n.push(r),t=!t&&"\\"==i}return n}function Oe(e){for(var t="|(){",n="}",r=!1,i=[],o=-1;o<e.length;o++){var a=e.charAt(o)||"",s=e.charAt(o+1)||"",l=s&&t.indexOf(s)!=-1;r?("\\"===a&&l||i.push(a),r=!1):"\\"===a?(r=!0,s&&n.indexOf(s)!=-1&&(l=!0),l&&"\\"!==s||i.push(a)):(i.push(a),l&&"\\"!==s&&i.push("\\"))}return i.join("")}function Ee(e){for(var t=!1,n=[],r=-1;r<e.length;r++){var i=e.charAt(r)||"",o=e.charAt(r+1)||"";Ot[i+o]?(n.push(Ot[i+o]),r++):t?(n.push(i),t=!1):"\\"===i?(t=!0,m(o)||"$"===o?n.push("$"):"/"!==o&&"\\"!==o&&n.push("\\")):("$"===i&&n.push("$"),n.push(i),"/"===o&&n.push("\\"))}return n.join("")}function Ne(t){for(var n=new e.StringStream(t),r=[];!n.eol();){for(;n.peek()&&"\\"!=n.peek();)r.push(n.next());var i=!1;for(var o in Et)if(n.match(o,!0)){i=!0,r.push(Et[o]);break}i||r.push(n.next())}return r.join("")}function Ie(e,t,n){if(wt.registerController.getRegister("/").setText(e),e instanceof RegExp)return e;var r,i,o=Ae(e);if(o.length){r=e.substring(0,o[0]);i=e.substring(o[0]).indexOf("i")!=-1}else r=e;return r?(w("pcre")||(r=Oe(r)),n&&(t=/^[^A-Z]*$/.test(r)),new RegExp(r,t||i?"i":void 0)):null}function Pe(e,t){e.openNotification?e.openNotification('<span style="color: red">'+t+"</span>",{bottom:!0,duration:5e3}):alert(t)}function Re(e,t){var n='<span style="font-family: monospace; white-space: pre">'+(e||"")+'<input type="text"></span>';return t&&(n+=' <span style="color: #888">'+t+"</span>"),n}function Be(e,t){var n=(t.prefix||"")+" "+(t.desc||"");Le(e,Re(t.prefix,t.desc),n,t.onClose,t)}function ze(e,t){if(e instanceof RegExp&&t instanceof RegExp){for(var n=["global","multiline","ignoreCase","source"],r=0;r<n.length;r++){var i=n[r];if(e[i]!==t[i])return!1}return!0}return!1}function De(e,t,n,r){if(t){var i=Me(e),o=Ie(t,!!n,!!r);if(o)return We(e,o),ze(o,i.getQuery())?o:(i.setQuery(o),o)}}function Fe(e){if("^"==e.source.charAt(0))var t=!0;return{token:function(n){if(t&&!n.sol())return void n.skipToEnd();var r=n.match(e,!1);if(r)return 0==r[0].length?(n.next(),"searching"):n.sol()||(n.backUp(1),e.exec(n.next()+r[0]))?(n.match(e),"searching"):(n.next(),null);for(;!n.eol()&&(n.next(),!n.match(e,!1)););},query:e}}function We(e,t){var n=Me(e),r=n.getOverlay();r&&t==r.query||(r&&e.removeOverlay(r),r=Fe(t),e.addOverlay(r),e.showMatchesOnScrollbar&&(n.getScrollbarAnnotate()&&n.getScrollbarAnnotate().clear(),n.setScrollbarAnnotate(e.showMatchesOnScrollbar(t))),n.setOverlay(r))}function qe(e,t,n,i){return void 0===i&&(i=1),e.operation(function(){for(var o=e.getCursor(),a=e.getSearchCursor(n,o),s=0;s<i;s++){var l=a.find(t);if(0==s&&l&&K(a.from(),o)&&(l=a.find(t)),!l&&(a=e.getSearchCursor(n,t?r(e.lastLine()):r(e.firstLine(),0)),!a.find(t)))return}return a.from()})}function He(e){var t=Me(e);e.removeOverlay(Me(e).getOverlay()),t.setOverlay(null),t.getScrollbarAnnotate()&&(t.getScrollbarAnnotate().clear(),t.setScrollbarAnnotate(null))}function je(e,t,n){return"number"!=typeof e&&(e=e.line),t instanceof Array?y(e,t):n?e>=t&&e<=n:e==t}function Ke(e){var t=e.getScrollInfo(),n=e.coordsChar({left:0,top:6+t.top},"local"),r=t.clientHeight-10+t.top,i=e.coordsChar({left:0,top:r},"local");return{top:n.line,bottom:i.line}}function Ue(e,t,n){if("'"==n){var r=e.doc.history.done,i=r[r.length-2];return i&&i.ranges&&i.ranges[0].head}var o=t.marks[n];return o&&o.find()}function Ve(t,n,r,i,o,a,s,l,c){function u(){t.operation(function(){for(;!m;)f(),d();h()})}function f(){var e=t.getRange(a.from(),a.to()),n=e.replace(s,l);a.replace(n)}function d(){for(;a.findNext()&&je(a.from(),i,o);)if(r||!g||a.from().line!=g.line)return t.scrollIntoView(a.from(),30),t.setSelection(a.from(),a.to()),g=a.from(),void(m=!1);m=!0}function h(e){if(e&&e(),t.focus(),g){t.setCursor(g);var n=t.state.vim;n.exMode=!1,n.lastHPos=n.lastHSPos=g.ch}c&&c()}function p(n,r,i){switch(e.e_stop(n),e.keyName(n)){case"Y":f(),d();break;case"N":d();break;case"A":var o=c;c=void 0,t.operation(u),c=o;break;case"L":f();case"Q":case"Esc":case"Ctrl-C":case"Ctrl-[":h(i)}return m&&h(i),!0}t.state.vim.exMode=!0;var m=!1,g=a.from();return d(),m?void Pe(t,"No matches for "+s.source):n?void Be(t,{prefix:"replace with <strong>"+l+"</strong> (y/n/a/q/l)",onKeyDown:p}):(u(),void(c&&c()))}function $e(t){var n=t.state.vim,r=wt.macroModeState,i=wt.registerController.getRegister("."),o=r.isPlaying,a=r.lastInsertModeChanges,s=[];if(!o){for(var l=a.inVisualBlock?n.lastSelection.visualBlock.height:1,c=a.changes,s=[],u=0;u<c.length;)s.push(c[u]),c[u]instanceof it?u++:u+=l;a.changes=s,t.off("change",et),e.off(t.getInputField(),"keydown",ot)}!o&&n.insertModeRepeat>1&&(at(t,n,n.insertModeRepeat-1,!0),n.lastEditInputState.repeatOverride=n.insertModeRepeat),delete n.insertModeRepeat,n.insertMode=!1,t.setCursor(t.getCursor().line,t.getCursor().ch-1),t.setOption("keyMap","vim"),t.setOption("disableInput",!0),t.toggleOverwrite(!1),i.setText(a.changes.join("")),e.signal(t,"vim-mode-change",{mode:"normal"}),r.isRecording&&Je(r)}function Ge(e){t.unshift(e)}function Xe(e,t,n,r,i){var o={keys:e,type:t};o[t]=n,o[t+"Args"]=r;for(var a in i)o[a]=i[a];Ge(o)}function Ye(t,n,r,i){var o=wt.registerController.getRegister(i);if(":"==i)return o.keyBuffer[0]&&Rt.processCommand(t,o.keyBuffer[0]),void(r.isPlaying=!1);var a=o.keyBuffer,s=0;r.isPlaying=!0,r.replaySearchQueries=o.searchQueries.slice(0);for(var l=0;l<a.length;l++)for(var c,u,f=a[l];f;)if(c=/<\w+-.+?>|<\w+>|./.exec(f),u=c[0],f=f.substring(c.index+u.length),e.Vim.handleKey(t,u,"macro"),n.insertMode){var d=o.insertModeChanges[s++].changes;wt.macroModeState.lastInsertModeChanges.changes=d,st(t,d,1),$e(t)}r.isPlaying=!1}function Qe(e,t){if(!e.isPlaying){var n=e.latestRegister,r=wt.registerController.getRegister(n);r&&r.pushText(t)}}function Je(e){if(!e.isPlaying){var t=e.latestRegister,n=wt.registerController.getRegister(t);n&&n.pushInsertModeChanges&&n.pushInsertModeChanges(e.lastInsertModeChanges)}}function Ze(e,t){if(!e.isPlaying){var n=e.latestRegister,r=wt.registerController.getRegister(n);r&&r.pushSearchQuery&&r.pushSearchQuery(t)}}function et(e,t){var n=wt.macroModeState,r=n.lastInsertModeChanges;if(!n.isPlaying)for(;t;){if(r.expectCursorActivityForChange=!0,"+input"==t.origin||"paste"==t.origin||void 0===t.origin){var i=t.text.join("\n");r.maybeReset&&(r.changes=[],r.maybeReset=!1),e.state.overwrite&&!/\n/.test(i)?r.changes.push([i]):r.changes.push(i)}t=t.next}}function tt(e){var t=e.state.vim;if(t.insertMode){var n=wt.macroModeState;if(n.isPlaying)return;var r=n.lastInsertModeChanges;r.expectCursorActivityForChange?r.expectCursorActivityForChange=!1:r.maybeReset=!0}else e.curOp.isVimOp||rt(e,t);t.visualMode&&nt(e)}function nt(e){var t=e.state.vim,n=R(e,j(t.sel.head)),r=z(n,0,1);t.fakeCursor&&t.fakeCursor.clear(),t.fakeCursor=e.markText(n,r,{className:"cm-animate-fat-cursor"})}function rt(t,n){var r=t.getCursor("anchor"),i=t.getCursor("head");if(n.visualMode&&!t.somethingSelected()?le(t,!1):n.visualMode||n.insertMode||!t.somethingSelected()||(n.visualMode=!0,n.visualLine=!1,e.signal(t,"vim-mode-change",{mode:"visual"})),n.visualMode){var o=U(i,r)?0:-1,a=U(i,r)?-1:0;i=z(i,0,o),r=z(r,0,a),n.sel={anchor:r,head:i},xe(t,n,"<",V(i,r)),xe(t,n,">",$(i,r))}else n.insertMode||(n.lastHPos=t.getCursor().ch)}function it(e){this.keyName=e}function ot(t){function n(){return i.maybeReset&&(i.changes=[],i.maybeReset=!1),i.changes.push(new it(o)),!0}var r=wt.macroModeState,i=r.lastInsertModeChanges,o=e.keyName(t);o&&(o.indexOf("Delete")==-1&&o.indexOf("Backspace")==-1||e.lookupKey(o,"vim-insert",n))}function at(e,t,n,r){function i(){s?St.processAction(e,t,t.lastEditActionCommand):St.evalInput(e,t)}function o(n){if(a.lastInsertModeChanges.changes.length>0){n=t.lastEditActionCommand?n:1;var r=a.lastInsertModeChanges;st(e,r.changes,n)}}var a=wt.macroModeState;a.isPlaying=!0;var s=!!t.lastEditActionCommand,l=t.inputState;if(t.inputState=t.lastEditInputState,s&&t.lastEditActionCommand.interlaceInsertRepeat)for(var c=0;c<n;c++)i(),o(1);else r||i(),o(n);t.inputState=l,t.insertMode&&!r&&$e(e),a.isPlaying=!1}function st(t,n,r){function i(n){return"string"==typeof n?e.commands[n](t):n(t),!0}var o=t.getCursor("head"),a=wt.macroModeState.lastInsertModeChanges.inVisualBlock;if(a){var s=t.state.vim,l=s.lastSelection,c=D(l.anchor,l.head);ee(t,o,c.line+1),r=t.listSelections().length,t.setCursor(o)}for(var u=0;u<r;u++){a&&t.setCursor(z(o,u,0));for(var f=0;f<n.length;f++){var d=n[f];if(d instanceof it)e.lookupKey(d.keyName,"vim-insert",i);else if("string"==typeof d){var h=t.getCursor();t.replaceRange(d,h,h)}else{var p=t.getCursor(),m=z(p,0,d[0].length);t.replaceRange(d[0],p,m)}}}a&&t.setCursor(z(o,0,1))}e.defineOption("vimMode",!1,function(t,n,r){n&&"vim"!=t.getOption("keyMap")?t.setOption("keyMap","vim"):!n&&r!=e.Init&&/^vim/.test(t.getOption("keyMap"))&&t.setOption("keyMap","default")});var lt={Shift:"S",Ctrl:"C",Alt:"A",Cmd:"D",Mod:"A"},ct={Enter:"CR",Backspace:"BS",Delete:"Del",Insert:"Ins"},ut=/[\d]/,ft=[e.isWordChar,function(t){return t&&!e.isWordChar(t)&&!/\s/.test(t)}],dt=[function(e){return/\S/.test(e)}],ht=f(65,26),pt=f(97,26),mt=f(48,10),gt=[].concat(ht,pt,mt,["<",">"]),vt=[].concat(ht,pt,mt,["-",'"',".",":","/"]),yt={};b("filetype",void 0,"string",["ft"],function(e,t){if(void 0!==t){if(void 0===e){var n=t.getOption("mode");return"null"==n?"":n}var n=""==e?"null":e;t.setOption("mode",n)}});var bt=function(){function e(e,t,s){function l(t){var i=++r%n,o=a[i];o&&o.clear(),a[i]=e.setBookmark(t)}var c=r%n,u=a[c];if(u){var f=u.find();f&&!K(f,t)&&l(t)}else l(t);l(s),i=r,(o=r-n+1)<0&&(o=0)}function t(e,t){r+=t,r>i?r=i:r<o&&(r=o);var s=a[(n+r)%n];if(s&&!s.find()){var l,c=t>0?1:-1,u=e.getCursor();do{if(r+=c,(s=a[(n+r)%n])&&(l=s.find())&&!K(u,l))break}while(r<i&&r>o)}return s}var n=100,r=-1,i=0,o=0,a=new Array(n);return{cachedCursor:void 0,add:e,move:t}},xt=function(e){return e?{changes:e.changes,expectCursorActivityForChange:e.expectCursorActivityForChange}:{changes:[],expectCursorActivityForChange:!1}};k.prototype={exitMacroRecordMode:function(){var e=wt.macroModeState;e.onRecordingDone&&e.onRecordingDone(),e.onRecordingDone=void 0,e.isRecording=!1},enterMacroRecordMode:function(e,t){var n=wt.registerController.getRegister(t);n&&(n.clear(),this.latestRegister=t,e.openDialog&&(this.onRecordingDone=e.openDialog("(recording)["+t+"]",null,{bottom:!0})),this.isRecording=!0)}};var wt,kt,Ct={buildKeyMap:function(){},getRegisterController:function(){return wt.registerController},resetVimGlobalState_:S,getVimGlobalState_:function(){return wt},maybeInitVimState_:C,suppressErrorLogging:!1,InsertModeKey:it,map:function(e,t,n){Rt.map(e,t,n)},unmap:function(e,t){Rt.unmap(e,t)},setOption:x,getOption:w,defineOption:b,defineEx:function(e,t,n){if(t){if(0!==e.indexOf(t))throw new Error('(Vim.defineEx) "'+t+'" is not a prefix of "'+e+'", command not registered')}else t=e;Pt[e]=n,Rt.commandMap_[t]={name:e,shortName:t,type:"api"}},handleKey:function(e,t,n){var r=this.findKey(e,t,n);if("function"==typeof r)return r()},findKey:function(n,r,i){function o(){var e=wt.macroModeState;if(e.isRecording){if("q"==r)return e.exitMacroRecordMode(),M(n),!0;"mapping"!=i&&Qe(e,r)}}function a(){if("<Esc>"==r)return M(n),c.visualMode?le(n):c.insertMode&&$e(n),!0}function s(t){for(var i;t;)i=/<\w+-.+?>|<\w+>|./.exec(t),r=i[0],t=t.substring(i.index+r.length),
12
- e.Vim.handleKey(n,r,"mapping")}var l,c=C(n);return l=c.insertMode?function(){if(a())return!0;for(var e=c.inputState.keyBuffer=c.inputState.keyBuffer+r,i=1==r.length,o=St.matchCommand(e,t,c.inputState,"insert");e.length>1&&"full"!=o.type;){var e=c.inputState.keyBuffer=e.slice(1),s=St.matchCommand(e,t,c.inputState,"insert");"none"!=s.type&&(o=s)}if("none"==o.type)return M(n),!1;if("partial"==o.type)return kt&&window.clearTimeout(kt),kt=window.setTimeout(function(){c.insertMode&&c.inputState.keyBuffer&&M(n)},w("insertModeEscKeysTimeout")),!i;if(kt&&window.clearTimeout(kt),i){for(var l=n.listSelections(),u=0;u<l.length;u++){var f=l[u].head;n.replaceRange("",z(f,0,-(e.length-1)),f,"+input")}wt.macroModeState.lastInsertModeChanges.changes.pop()}return M(n),o.command}():function(){if(o()||a())return!0;var e=c.inputState.keyBuffer=c.inputState.keyBuffer+r;if(/^[1-9]\d*$/.test(e))return!0;var i=/^(\d*)(.*)$/.exec(e);if(!i)return M(n),!1;var s=c.visualMode?"visual":"normal",l=St.matchCommand(i[2]||i[1],t,c.inputState,s);if("none"==l.type)return M(n),!1;if("partial"==l.type)return!0;c.inputState.keyBuffer="";var i=/^(\d*)(.*)$/.exec(e);return i[1]&&"0"!=i[1]&&c.inputState.pushRepeatDigit(i[1]),l.command}(),l===!1?void 0:l===!0?function(){return!0}:function(){return n.operation(function(){n.curOp.isVimOp=!0;try{"keyToKey"==l.type?s(l.toKeys):St.processCommand(n,c,l)}catch(t){throw n.state.vim=void 0,C(n),e.Vim.suppressErrorLogging||console.log(t),t}return!0})}},handleEx:function(e,t){Rt.processCommand(e,t)},defineMotion:E,defineAction:P,defineOperator:I,mapCommand:Xe,_mapCommand:Ge,defineRegister:T,exitVisualMode:le,exitInsertMode:$e};_.prototype.pushRepeatDigit=function(e){this.operator?this.motionRepeat=this.motionRepeat.concat(e):this.prefixRepeat=this.prefixRepeat.concat(e)},_.prototype.getRepeat=function(){var e=0;return(this.prefixRepeat.length>0||this.motionRepeat.length>0)&&(e=1,this.prefixRepeat.length>0&&(e*=parseInt(this.prefixRepeat.join(""),10)),this.motionRepeat.length>0&&(e*=parseInt(this.motionRepeat.join(""),10))),e},L.prototype={setText:function(e,t,n){this.keyBuffer=[e||""],this.linewise=!!t,this.blockwise=!!n},pushText:function(e,t){t&&(this.linewise||this.keyBuffer.push("\n"),this.linewise=!0),this.keyBuffer.push(e)},pushInsertModeChanges:function(e){this.insertModeChanges.push(xt(e))},pushSearchQuery:function(e){this.searchQueries.push(e)},clear:function(){this.keyBuffer=[],this.insertModeChanges=[],this.searchQueries=[],this.linewise=!1},toString:function(){return this.keyBuffer.join("")}},A.prototype={pushText:function(e,t,n,r,i){r&&"\n"!==n.charAt(n.length-1)&&(n+="\n");var o=this.isValidRegister(e)?this.getRegister(e):null;if(!o){switch(t){case"yank":this.registers[0]=new L(n,r,i);break;case"delete":case"change":n.indexOf("\n")==-1?this.registers["-"]=new L(n,r):(this.shiftNumericRegisters_(),this.registers[1]=new L(n,r))}return void this.unnamedRegister.setText(n,r,i)}g(e)?o.pushText(n,r):o.setText(n,r,i),this.unnamedRegister.setText(o.toString(),r)},getRegister:function(e){return this.isValidRegister(e)?(e=e.toLowerCase(),this.registers[e]||(this.registers[e]=new L),this.registers[e]):this.unnamedRegister},isValidRegister:function(e){return e&&y(e,vt)},shiftNumericRegisters_:function(){for(var e=9;e>=2;e--)this.registers[e]=this.getRegister(""+(e-1))}},O.prototype={nextMatch:function(e,t){var n=this.historyBuffer,r=t?-1:1;null===this.initialPrefix&&(this.initialPrefix=e);for(var i=this.iterator+r;t?i>=0:i<n.length;i+=r)for(var o=n[i],a=0;a<=o.length;a++)if(this.initialPrefix==o.substring(0,a))return this.iterator=i,o;return i>=n.length?(this.iterator=n.length,this.initialPrefix):i<0?e:void 0},pushInput:function(e){var t=this.historyBuffer.indexOf(e);t>-1&&this.historyBuffer.splice(t,1),e.length&&this.historyBuffer.push(e)},reset:function(){this.initialPrefix=null,this.iterator=this.historyBuffer.length}};var St={matchCommand:function(e,t,n,r){var i=F(e,t,r,n);if(!i.full&&!i.partial)return{type:"none"};if(!i.full&&i.partial)return{type:"partial"};for(var o,a=0;a<i.full.length;a++){var s=i.full[a];o||(o=s)}if("<character>"==o.keys.slice(-11)){var l=q(e);if(!l)return{type:"none"};n.selectedCharacter=l}return{type:"full",command:o}},processCommand:function(e,t,n){switch(t.inputState.repeatOverride=n.repeatOverride,n.type){case"motion":this.processMotion(e,t,n);break;case"operator":this.processOperator(e,t,n);break;case"operatorMotion":this.processOperatorMotion(e,t,n);break;case"action":this.processAction(e,t,n);break;case"search":this.processSearch(e,t,n);break;case"ex":case"keyToEx":this.processEx(e,t,n)}},processMotion:function(e,t,n){t.inputState.motion=n.motion,t.inputState.motionArgs=B(n.motionArgs),this.evalInput(e,t)},processOperator:function(e,t,n){var r=t.inputState;if(r.operator){if(r.operator==n.operator)return r.motion="expandToLine",r.motionArgs={linewise:!0},void this.evalInput(e,t);M(e)}r.operator=n.operator,r.operatorArgs=B(n.operatorArgs),t.visualMode&&this.evalInput(e,t)},processOperatorMotion:function(e,t,n){var r=t.visualMode,i=B(n.operatorMotionArgs);i&&r&&i.visualLine&&(t.visualLine=!0),this.processOperator(e,t,n),r||this.processMotion(e,t,n)},processAction:function(e,t,n){var r=t.inputState,i=r.getRepeat(),o=!!i,a=B(n.actionArgs)||{};r.selectedCharacter&&(a.selectedCharacter=r.selectedCharacter),n.operator&&this.processOperator(e,t,n),n.motion&&this.processMotion(e,t,n),(n.motion||n.operator)&&this.evalInput(e,t),a.repeat=i||1,a.repeatIsExplicit=o,a.registerName=r.registerName,M(e),t.lastMotion=null,n.isEdit&&this.recordLastEdit(t,r,n),Lt[n.action](e,a,t)},processSearch:function(t,n,r){function i(e,i,o){wt.searchHistoryController.pushInput(e),wt.searchHistoryController.reset();try{De(t,e,i,o)}catch(n){return Pe(t,"Invalid regex: "+e),void M(t)}St.processMotion(t,n,{type:"motion",motion:"findNext",motionArgs:{forward:!0,toJumplist:r.searchArgs.toJumplist}})}function o(e){t.scrollTo(d.left,d.top),i(e,!0,!0);var n=wt.macroModeState;n.isRecording&&Ze(n,e)}function a(n,r,i){var o,a,s=e.keyName(n);"Up"==s||"Down"==s?(o="Up"==s,a=n.target?n.target.selectionEnd:0,r=wt.searchHistoryController.nextMatch(r,o)||"",i(r),a&&n.target&&(n.target.selectionEnd=n.target.selectionStart=Math.min(a,n.target.value.length))):"Left"!=s&&"Right"!=s&&"Ctrl"!=s&&"Alt"!=s&&"Shift"!=s&&wt.searchHistoryController.reset();var c;try{c=De(t,r,!0,!0)}catch(e){}c?t.scrollIntoView(qe(t,!l,c),30):(He(t),t.scrollTo(d.left,d.top))}function s(n,r,i){var o=e.keyName(n);"Esc"==o||"Ctrl-C"==o||"Ctrl-["==o||"Backspace"==o&&""==r?(wt.searchHistoryController.pushInput(r),wt.searchHistoryController.reset(),De(t,f),He(t),t.scrollTo(d.left,d.top),e.e_stop(n),M(t),i(),t.focus()):"Up"==o||"Down"==o?e.e_stop(n):"Ctrl-U"==o&&(e.e_stop(n),i(""))}if(t.getSearchCursor){var l=r.searchArgs.forward,c=r.searchArgs.wholeWordOnly;Me(t).setReversed(!l);var u=l?"/":"?",f=Me(t).getQuery(),d=t.getScrollInfo();switch(r.searchArgs.querySrc){case"prompt":var h=wt.macroModeState;if(h.isPlaying){var p=h.replaySearchQueries.shift();i(p,!0,!1)}else Be(t,{onClose:o,prefix:u,desc:Nt,onKeyUp:a,onKeyDown:s});break;case"wordUnderCursor":var m=de(t,!1,!0,!1,!0),g=!0;if(m||(m=de(t,!1,!0,!1,!1),g=!1),!m)return;var p=t.getLine(m.start.line).substring(m.start.ch,m.end.ch);p=g&&c?"\\b"+p+"\\b":Q(p),wt.jumpList.cachedCursor=t.getCursor(),t.setCursor(m.start),i(p,!0,!1)}}},processEx:function(t,n,r){function i(e){wt.exCommandHistoryController.pushInput(e),wt.exCommandHistoryController.reset(),Rt.processCommand(t,e)}function o(n,r,i){var o,a,s=e.keyName(n);("Esc"==s||"Ctrl-C"==s||"Ctrl-["==s||"Backspace"==s&&""==r)&&(wt.exCommandHistoryController.pushInput(r),wt.exCommandHistoryController.reset(),e.e_stop(n),M(t),i(),t.focus()),"Up"==s||"Down"==s?(e.e_stop(n),o="Up"==s,a=n.target?n.target.selectionEnd:0,r=wt.exCommandHistoryController.nextMatch(r,o)||"",i(r),a&&n.target&&(n.target.selectionEnd=n.target.selectionStart=Math.min(a,n.target.value.length))):"Ctrl-U"==s?(e.e_stop(n),i("")):"Left"!=s&&"Right"!=s&&"Ctrl"!=s&&"Alt"!=s&&"Shift"!=s&&wt.exCommandHistoryController.reset()}"keyToEx"==r.type?Rt.processCommand(t,r.exArgs.input):n.visualMode?Be(t,{onClose:i,prefix:":",value:"'<,'>",onKeyDown:o}):Be(t,{onClose:i,prefix:":",onKeyDown:o})},evalInput:function(e,t){var n,i,o,a=t.inputState,s=a.motion,l=a.motionArgs||{},c=a.operator,u=a.operatorArgs||{},f=a.registerName,d=t.sel,h=j(t.visualMode?R(e,d.head):e.getCursor("head")),p=j(t.visualMode?R(e,d.anchor):e.getCursor("anchor")),m=j(h),g=j(p);if(c&&this.recordLastEdit(t,a),o=void 0!==a.repeatOverride?a.repeatOverride:a.getRepeat(),o>0&&l.explicitRepeat?l.repeatIsExplicit=!0:(l.noRepeat||!l.explicitRepeat&&0===o)&&(o=1,l.repeatIsExplicit=!1),a.selectedCharacter&&(l.selectedCharacter=u.selectedCharacter=a.selectedCharacter),l.repeat=o,M(e),s){var v=_t[s](e,h,l,t);if(t.lastMotion=_t[s],!v)return;if(l.toJumplist){var y=wt.jumpList,b=y.cachedCursor;b?(he(e,b,v),delete y.cachedCursor):he(e,h,v)}v instanceof Array?(i=v[0],n=v[1]):n=v,n||(n=j(h)),t.visualMode?(t.visualBlock&&n.ch===1/0||(n=R(e,n,t.visualBlock)),i&&(i=R(e,i,!0)),i=i||g,d.anchor=i,d.head=n,oe(e),xe(e,t,"<",U(i,n)?i:n),xe(e,t,">",U(i,n)?n:i)):c||(n=R(e,n),e.setCursor(n.line,n.ch))}if(c){if(u.lastSel){i=g;var x=u.lastSel,w=Math.abs(x.head.line-x.anchor.line),k=Math.abs(x.head.ch-x.anchor.ch);n=x.visualLine?r(g.line+w,g.ch):x.visualBlock?r(g.line+w,g.ch+k):x.head.line==x.anchor.line?r(g.line,g.ch+k):r(g.line+w,g.ch),t.visualMode=!0,t.visualLine=x.visualLine,t.visualBlock=x.visualBlock,d=t.sel={anchor:i,head:n},oe(e)}else t.visualMode&&(u.lastSel={anchor:j(d.anchor),head:j(d.head),visualBlock:t.visualBlock,visualLine:t.visualLine});var C,S,_,L,T;if(t.visualMode){if(C=V(d.head,d.anchor),S=$(d.head,d.anchor),_=t.visualLine||u.linewise,L=t.visualBlock?"block":_?"line":"char",T=ae(e,{anchor:C,head:S},L),_){var A=T.ranges;if("block"==L)for(var O=0;O<A.length;O++)A[O].head.ch=X(e,A[O].head.line);else"line"==L&&(A[0].head=r(A[0].head.line+1,0))}}else{if(C=j(i||g),S=j(n||m),U(S,C)){var E=C;C=S,S=E}_=l.linewise||u.linewise,_?ue(e,C,S):l.forward&&ce(e,C,S),L="char";T=ae(e,{anchor:C,head:S},L,!l.inclusive||_)}e.setSelections(T.ranges,T.primary),t.lastMotion=null,u.repeat=o,u.registerName=f,u.linewise=_;var N=Mt[c](e,u,T.ranges,g,n);t.visualMode&&le(e,null!=N),N&&e.setCursor(N)}},recordLastEdit:function(e,t,n){var r=wt.macroModeState;r.isPlaying||(e.lastEditInputState=t,e.lastEditActionCommand=n,r.lastInsertModeChanges.changes=[],r.lastInsertModeChanges.expectCursorActivityForChange=!1)}},_t={moveToTopLine:function(e,t,n){var i=Ke(e).top+n.repeat-1;return r(i,fe(e.getLine(i)))},moveToMiddleLine:function(e){var t=Ke(e),n=Math.floor(.5*(t.top+t.bottom));return r(n,fe(e.getLine(n)))},moveToBottomLine:function(e,t,n){var i=Ke(e).bottom-n.repeat+1;return r(i,fe(e.getLine(i)))},expandToLine:function(e,t,n){return r(t.line+n.repeat-1,1/0)},findNext:function(e,t,n){var r=Me(e),i=r.getQuery();if(i){var o=!n.forward;return o=r.isReversed()?!o:o,We(e,i),qe(e,o,i,n.repeat)}},goToMark:function(e,t,n,r){var i=Ue(e,r,n.selectedCharacter);return i?n.linewise?{line:i.line,ch:fe(e.getLine(i.line))}:i:null},moveToOtherHighlightedEnd:function(e,t,n,i){if(i.visualBlock&&n.sameLine){var o=i.sel;return[R(e,r(o.anchor.line,o.head.ch)),R(e,r(o.head.line,o.anchor.ch))]}return[i.sel.head,i.sel.anchor]},jumpToMark:function(e,t,n,i){for(var o=t,a=0;a<n.repeat;a++){var s=o;for(var l in i.marks)if(h(l)){var c=i.marks[l].find(),u=n.forward?U(c,s):U(s,c);if(!(u||n.linewise&&c.line==s.line)){var f=K(s,o),d=n.forward?G(s,c,o):G(o,c,s);(f||d)&&(o=c)}}}return n.linewise&&(o=r(o.line,fe(e.getLine(o.line)))),o},moveByCharacters:function(e,t,n){var i=t,o=n.repeat,a=n.forward?i.ch+o:i.ch-o;return r(i.line,a)},moveByLines:function(e,t,n,i){var o=t,a=o.ch;switch(i.lastMotion){case this.moveByLines:case this.moveByDisplayLines:case this.moveByScroll:case this.moveToColumn:case this.moveToEol:a=i.lastHPos;break;default:i.lastHPos=a}var s=n.repeat+(n.repeatOffset||0),l=n.forward?o.line+s:o.line-s,c=e.firstLine(),u=e.lastLine();return l<c&&o.line==c?this.moveToStartOfLine(e,t,n,i):l>u&&o.line==u?this.moveToEol(e,t,n,i):(n.toFirstChar&&(a=fe(e.getLine(l)),i.lastHPos=a),i.lastHSPos=e.charCoords(r(l,a),"div").left,r(l,a))},moveByDisplayLines:function(e,t,n,i){var o=t;switch(i.lastMotion){case this.moveByDisplayLines:case this.moveByScroll:case this.moveByLines:case this.moveToColumn:case this.moveToEol:break;default:i.lastHSPos=e.charCoords(o,"div").left}var a=n.repeat,s=e.findPosV(o,n.forward?a:-a,"line",i.lastHSPos);if(s.hitSide)if(n.forward)var l=e.charCoords(s,"div"),c={top:l.top+8,left:i.lastHSPos},s=e.coordsChar(c,"div");else{var u=e.charCoords(r(e.firstLine(),0),"div");u.left=i.lastHSPos,s=e.coordsChar(u,"div")}return i.lastHPos=s.ch,s},moveByPage:function(e,t,n){var r=t,i=n.repeat;return e.findPosV(r,n.forward?i:-i,"page")},moveByParagraph:function(e,t,n){var r=n.forward?1:-1;return ke(e,t,n.repeat,r)},moveByScroll:function(e,t,n,r){var i=e.getScrollInfo(),o=null,a=n.repeat;a||(a=i.clientHeight/(2*e.defaultTextHeight()));var s=e.charCoords(t,"local");n.repeat=a;var o=_t.moveByDisplayLines(e,t,n,r);if(!o)return null;var l=e.charCoords(o,"local");return e.scrollTo(null,i.top+l.top-s.top),o},moveByWords:function(e,t,n){return ve(e,t,n.repeat,!!n.forward,!!n.wordEnd,!!n.bigWord)},moveTillCharacter:function(e,t,n){var r=n.repeat,i=ye(e,r,n.forward,n.selectedCharacter),o=n.forward?-1:1;return pe(o,n),i?(i.ch+=o,i):null},moveToCharacter:function(e,t,n){var r=n.repeat;return pe(0,n),ye(e,r,n.forward,n.selectedCharacter)||t},moveToSymbol:function(e,t,n){return me(e,n.repeat,n.forward,n.selectedCharacter)||t},moveToColumn:function(e,t,n,r){var i=n.repeat;return r.lastHPos=i-1,r.lastHSPos=e.charCoords(t,"div").left,be(e,i)},moveToEol:function(e,t,n,i){var o=t;i.lastHPos=1/0;var a=r(o.line+n.repeat-1,1/0),s=e.clipPos(a);return s.ch--,i.lastHSPos=e.charCoords(s,"div").left,a},moveToFirstNonWhiteSpaceCharacter:function(e,t){var n=t;return r(n.line,fe(e.getLine(n.line)))},moveToMatchedSymbol:function(e,t){for(var n,i=t,o=i.line,a=i.ch,s=e.getLine(o);a<s.length;a++)if((n=s.charAt(a))&&p(n)){var l=e.getTokenTypeAt(r(o,a+1));if("string"!==l&&"comment"!==l)break}if(a<s.length){return e.findMatchingBracket(r(o,a)).to}return i},moveToStartOfLine:function(e,t){return r(t.line,0)},moveToLineOrEdgeOfDocument:function(e,t,n){var i=n.forward?e.lastLine():e.firstLine();return n.repeatIsExplicit&&(i=n.repeat-e.getOption("firstLineNumber")),r(i,fe(e.getLine(i)))},textObjectManipulation:function(e,t,n,r){var i={"(":")",")":"(","{":"}","}":"{","[":"]","]":"["},o={"'":!0,'"':!0},a=n.selectedCharacter;"b"==a?a="(":"B"==a&&(a="{");var s,l=!n.textObjectInner;if(i[a])s=Ce(e,t,a,l);else if(o[a])s=Se(e,t,a,l);else if("W"===a)s=de(e,l,!0,!0);else if("w"===a)s=de(e,l,!0,!1);else{if("p"!==a)return null;if(s=ke(e,t,n.repeat,0,l),n.linewise=!0,r.visualMode)r.visualLine||(r.visualLine=!0);else{var c=r.inputState.operatorArgs;c&&(c.linewise=!0),s.end.line--}}return e.state.vim.visualMode?ie(e,s.start,s.end):[s.start,s.end]},repeatLastCharacterSearch:function(e,t,n){var r=wt.lastCharacterSearch,i=n.repeat,o=n.forward===r.forward,a=(r.increment?1:0)*(o?-1:1);e.moveH(-a,"char"),n.inclusive=!!o;var s=ye(e,i,o,r.selectedCharacter);return s?(s.ch+=a,s):(e.moveH(a,"char"),t)}},Mt={change:function(t,n,i){var o,a,s=t.state.vim;if(wt.macroModeState.lastInsertModeChanges.inVisualBlock=s.visualBlock,s.visualMode){a=t.getSelection();var l=N("",i.length);t.replaceSelections(l),o=V(i[0].head,i[0].anchor)}else{var c=i[0].anchor,u=i[0].head;a=t.getRange(c,u);var f=s.lastEditInputState||{};if("moveByWords"==f.motion&&!v(a)){var d=/\s+$/.exec(a);d&&f.motionArgs&&f.motionArgs.forward&&(u=z(u,0,-d[0].length),a=a.slice(0,-d[0].length))}var h=new r(c.line-1,Number.MAX_VALUE),p=t.firstLine()==t.lastLine();u.line>t.lastLine()&&n.linewise&&!p?t.replaceRange("",h,u):t.replaceRange("",c,u),n.linewise&&(p||(t.setCursor(h),e.commands.newlineAndIndent(t)),c.ch=Number.MAX_VALUE),o=c}wt.registerController.pushText(n.registerName,"change",a,n.linewise,i.length>1),Lt.enterInsertMode(t,{head:o},t.state.vim)},delete:function(e,t,n){var i,o,a=e.state.vim;if(a.visualBlock){o=e.getSelection();var s=N("",n.length);e.replaceSelections(s),i=n[0].anchor}else{var l=n[0].anchor,c=n[0].head;t.linewise&&c.line!=e.firstLine()&&l.line==e.lastLine()&&l.line==c.line-1&&(l.line==e.firstLine()?l.ch=0:l=r(l.line-1,X(e,l.line-1))),o=e.getRange(l,c),e.replaceRange("",l,c),i=l,t.linewise&&(i=_t.moveToFirstNonWhiteSpaceCharacter(e,l))}return wt.registerController.pushText(t.registerName,"delete",o,t.linewise,a.visualBlock),R(e,i)},indent:function(e,t,n){var r=e.state.vim,i=n[0].anchor.line,o=r.visualBlock?n[n.length-1].anchor.line:n[0].head.line,a=r.visualMode?t.repeat:1;t.linewise&&o--;for(var s=i;s<=o;s++)for(var l=0;l<a;l++)e.indentLine(s,t.indentRight);return _t.moveToFirstNonWhiteSpaceCharacter(e,n[0].anchor)},changeCase:function(e,t,n,r,i){for(var o=e.getSelections(),a=[],s=t.toLower,l=0;l<o.length;l++){var c=o[l],u="";if(s===!0)u=c.toLowerCase();else if(s===!1)u=c.toUpperCase();else for(var f=0;f<c.length;f++){var d=c.charAt(f);u+=g(d)?d.toLowerCase():d.toUpperCase()}a.push(u)}return e.replaceSelections(a),t.shouldMoveCursor?i:!e.state.vim.visualMode&&t.linewise&&n[0].anchor.line+1==n[0].head.line?_t.moveToFirstNonWhiteSpaceCharacter(e,r):t.linewise?r:V(n[0].anchor,n[0].head)},yank:function(e,t,n,r){var i=e.state.vim,o=e.getSelection(),a=i.visualMode?V(i.sel.anchor,i.sel.head,n[0].head,n[0].anchor):r;return wt.registerController.pushText(t.registerName,"yank",o,t.linewise,i.visualBlock),a}},Lt={jumpListWalk:function(e,t,n){if(!n.visualMode){var r=t.repeat,i=t.forward,o=wt.jumpList,a=o.move(e,i?r:-r),s=a?a.find():void 0;s=s?s:e.getCursor(),e.setCursor(s)}},scroll:function(e,t,n){if(!n.visualMode){var r=t.repeat||1,i=e.defaultTextHeight(),o=e.getScrollInfo().top,a=i*r,s=t.forward?o+a:o-a,l=j(e.getCursor()),c=e.charCoords(l,"local");if(t.forward)s>c.top?(l.line+=(s-c.top)/i,l.line=Math.ceil(l.line),e.setCursor(l),c=e.charCoords(l,"local"),e.scrollTo(null,c.top)):e.scrollTo(null,s);else{var u=s+e.getScrollInfo().clientHeight;u<c.bottom?(l.line-=(c.bottom-u)/i,l.line=Math.floor(l.line),e.setCursor(l),c=e.charCoords(l,"local"),e.scrollTo(null,c.bottom-e.getScrollInfo().clientHeight)):e.scrollTo(null,s)}}},scrollToCursor:function(e,t){var n=e.getCursor().line,i=e.charCoords(r(n,0),"local"),o=e.getScrollInfo().clientHeight,a=i.top,s=i.bottom-a;switch(t.position){case"center":a=a-o/2+s;break;case"bottom":a=a-o+s}e.scrollTo(null,a)},replayMacro:function(e,t,n){var r=t.selectedCharacter,i=t.repeat,o=wt.macroModeState;for("@"==r&&(r=o.latestRegister);i--;)Ye(e,n,o,r)},enterMacroRecordMode:function(e,t){var n=wt.macroModeState,r=t.selectedCharacter;wt.registerController.isValidRegister(r)&&n.enterMacroRecordMode(e,r)},toggleOverwrite:function(t){t.state.overwrite?(t.toggleOverwrite(!1),t.setOption("keyMap","vim-insert"),e.signal(t,"vim-mode-change",{mode:"insert"})):(t.toggleOverwrite(!0),t.setOption("keyMap","vim-replace"),e.signal(t,"vim-mode-change",{mode:"replace"}))},enterInsertMode:function(t,n,i){if(!t.getOption("readOnly")){i.insertMode=!0,i.insertModeRepeat=n&&n.repeat||1;var o=n?n.insertAt:null,a=i.sel,s=n.head||t.getCursor("head"),l=t.listSelections().length;if("eol"==o)s=r(s.line,X(t,s.line));else if("charAfter"==o)s=z(s,0,1);else if("firstNonBlank"==o)s=_t.moveToFirstNonWhiteSpaceCharacter(t,s);else if("startOfSelectedArea"==o)i.visualBlock?(s=r(Math.min(a.head.line,a.anchor.line),Math.min(a.head.ch,a.anchor.ch)),l=Math.abs(a.head.line-a.anchor.line)+1):s=a.head.line<a.anchor.line?a.head:r(a.anchor.line,0);else if("endOfSelectedArea"==o)i.visualBlock?(s=r(Math.min(a.head.line,a.anchor.line),Math.max(a.head.ch+1,a.anchor.ch)),l=Math.abs(a.head.line-a.anchor.line)+1):s=a.head.line>=a.anchor.line?z(a.head,0,1):r(a.anchor.line,0);else if("inplace"==o&&i.visualMode)return;t.setOption("disableInput",!1),n&&n.replace?(t.toggleOverwrite(!0),t.setOption("keyMap","vim-replace"),e.signal(t,"vim-mode-change",{mode:"replace"})):(t.toggleOverwrite(!1),t.setOption("keyMap","vim-insert"),e.signal(t,"vim-mode-change",{mode:"insert"})),wt.macroModeState.isPlaying||(t.on("change",et),e.on(t.getInputField(),"keydown",ot)),i.visualMode&&le(t),ee(t,s,l)}},toggleVisualMode:function(t,n,i){var o,a=n.repeat,s=t.getCursor();i.visualMode?i.visualLine^n.linewise||i.visualBlock^n.blockwise?(i.visualLine=!!n.linewise,i.visualBlock=!!n.blockwise,e.signal(t,"vim-mode-change",{mode:"visual",subMode:i.visualLine?"linewise":i.visualBlock?"blockwise":""}),oe(t)):le(t):(i.visualMode=!0,i.visualLine=!!n.linewise,i.visualBlock=!!n.blockwise,o=R(t,r(s.line,s.ch+a-1),!0),i.sel={anchor:s,head:o},e.signal(t,"vim-mode-change",{mode:"visual",subMode:i.visualLine?"linewise":i.visualBlock?"blockwise":""}),oe(t),xe(t,i,"<",V(s,o)),xe(t,i,">",$(s,o)))},reselectLastSelection:function(t,n,r){var i=r.lastSelection;if(r.visualMode&&re(t,r),i){var o=i.anchorMark.find(),a=i.headMark.find();if(!o||!a)return;r.sel={anchor:o,head:a},r.visualMode=!0,r.visualLine=i.visualLine,r.visualBlock=i.visualBlock,oe(t),xe(t,r,"<",V(o,a)),xe(t,r,">",$(o,a)),e.signal(t,"vim-mode-change",{mode:"visual",subMode:r.visualLine?"linewise":r.visualBlock?"blockwise":""})}},joinLines:function(e,t,n){var i,o;if(n.visualMode){if(i=e.getCursor("anchor"),o=e.getCursor("head"),U(o,i)){var a=o;o=i,i=a}o.ch=X(e,o.line)-1}else{var s=Math.max(t.repeat,2);i=e.getCursor(),o=R(e,r(i.line+s-1,1/0))}for(var l=0,c=i.line;c<o.line;c++){l=X(e,i.line);var a=r(i.line+1,X(e,i.line+1)),u=e.getRange(i,a);u=u.replace(/\n\s*/g," "),e.replaceRange(u,i,a)}var f=r(i.line,l);n.visualMode&&le(e,!1),e.setCursor(f)},newLineAndEnterInsertMode:function(t,n,i){i.insertMode=!0;var o=j(t.getCursor());if(o.line!==t.firstLine()||n.after){o.line=n.after?o.line:o.line-1,o.ch=X(t,o.line),t.setCursor(o);(e.commands.newlineAndIndentContinueComment||e.commands.newlineAndIndent)(t)}else t.replaceRange("\n",r(t.firstLine(),0)),t.setCursor(t.firstLine(),0);this.enterInsertMode(t,{repeat:n.repeat},i)},paste:function(e,t,n){var i=j(e.getCursor()),o=wt.registerController.getRegister(t.registerName),a=o.toString();if(a){if(t.matchIndent){var s=e.getOption("tabSize"),l=function(e){var t=e.split("\t").length-1,n=e.split(" ").length-1;return t*s+1*n},c=e.getLine(e.getCursor().line),u=l(c.match(/^\s*/)[0]),f=a.replace(/\n$/,""),d=a!==f,h=l(a.match(/^\s*/)[0]),a=f.replace(/^\s*/gm,function(t){var n=u+(l(t)-h);if(n<0)return"";if(e.getOption("indentWithTabs")){var r=Math.floor(n/s);return Array(r+1).join("\t")}return Array(n+1).join(" ")});a+=d?"\n":""}if(t.repeat>1)var a=Array(t.repeat+1).join(a);var p=o.linewise,m=o.blockwise;if(p)n.visualMode?a=n.visualLine?a.slice(0,-1):"\n"+a.slice(0,a.length-1)+"\n":t.after?(a="\n"+a.slice(0,a.length-1),i.ch=X(e,i.line)):i.ch=0;else{if(m){a=a.split("\n");for(var g=0;g<a.length;g++)a[g]=""==a[g]?" ":a[g]}i.ch+=t.after?1:0}var v,y;if(n.visualMode){n.lastPastedText=a;var b,x=ne(e,n),w=x[0],k=x[1],C=e.getSelection(),S=e.listSelections(),_=new Array(S.length).join("1").split("1");n.lastSelection&&(b=n.lastSelection.headMark.find()),wt.registerController.unnamedRegister.setText(C),m?(e.replaceSelections(_),k=r(w.line+a.length-1,w.ch),e.setCursor(w),Z(e,k),e.replaceSelections(a),v=w):n.visualBlock?(e.replaceSelections(_),e.setCursor(w),e.replaceRange(a,w,w),v=w):(e.replaceRange(a,w,k),v=e.posFromIndex(e.indexFromPos(w)+a.length-1)),b&&(n.lastSelection.headMark=e.setBookmark(b)),p&&(v.ch=0)}else if(m){e.setCursor(i);for(var g=0;g<a.length;g++){var M=i.line+g;M>e.lastLine()&&e.replaceRange("\n",r(M,0));var L=X(e,M);L<i.ch&&J(e,M,i.ch)}e.setCursor(i),Z(e,r(i.line+a.length-1,i.ch)),e.replaceSelections(a),v=i}else e.replaceRange(a,i),p&&t.after?v=r(i.line+1,fe(e.getLine(i.line+1))):p&&!t.after?v=r(i.line,fe(e.getLine(i.line))):!p&&t.after?(y=e.indexFromPos(i),v=e.posFromIndex(y+a.length-1)):(y=e.indexFromPos(i),v=e.posFromIndex(y+a.length));n.visualMode&&le(e,!1),e.setCursor(v)}},undo:function(t,n){t.operation(function(){H(t,e.commands.undo,n.repeat)(),t.setCursor(t.getCursor("anchor"))})},redo:function(t,n){H(t,e.commands.redo,n.repeat)()},setRegister:function(e,t,n){n.inputState.registerName=t.selectedCharacter},setMark:function(e,t,n){xe(e,n,t.selectedCharacter,e.getCursor())},replace:function(t,n,i){var o,a,s=n.selectedCharacter,l=t.getCursor(),c=t.listSelections();if(i.visualMode)l=t.getCursor("start"),a=t.getCursor("end");else{var u=t.getLine(l.line);o=l.ch+n.repeat,o>u.length&&(o=u.length),a=r(l.line,o)}if("\n"==s)i.visualMode||t.replaceRange("",l,a),(e.commands.newlineAndIndentContinueComment||e.commands.newlineAndIndent)(t);else{var f=t.getRange(l,a);if(f=f.replace(/[^\n]/g,s),i.visualBlock){var d=new Array(t.getOption("tabSize")+1).join(" ");f=t.getSelection(),f=f.replace(/\t/g,d).replace(/[^\n]/g,s).split("\n"),t.replaceSelections(f)}else t.replaceRange(f,l,a);i.visualMode?(l=U(c[0].anchor,c[0].head)?c[0].anchor:c[0].head,t.setCursor(l),le(t,!1)):t.setCursor(z(a,0,-1))}},incrementNumberToken:function(e,t){for(var n,i,o,a,s,l=e.getCursor(),c=e.getLine(l.line),u=/-?\d+/g;null!==(n=u.exec(c))&&(s=n[0],i=n.index,o=i+s.length,!(l.ch<o)););if((t.backtrack||!(o<=l.ch))&&s){var f=t.increase?1:-1,d=parseInt(s)+f*t.repeat,h=r(l.line,i),p=r(l.line,o);a=d.toString(),e.replaceRange(a,h,p),e.setCursor(r(l.line,i+a.length-1))}},repeatLastEdit:function(e,t,n){if(n.lastEditInputState){var r=t.repeat;r&&t.repeatIsExplicit?n.lastEditInputState.repeatOverride=r:r=n.lastEditInputState.repeatOverride||r,at(e,n,r,!1)}},indent:function(e,t){e.indentLine(e.getCursor().line,t.indentRight)},exitInsertMode:$e},Tt={"(":"bracket",")":"bracket","{":"bracket","}":"bracket","[":"section","]":"section","*":"comment","/":"comment",m:"method",M:"method","#":"preprocess"},At={bracket:{isComplete:function(e){if(e.nextCh===e.symb){if(++e.depth>=1)return!0}else e.nextCh===e.reverseSymb&&e.depth--;return!1}},section:{init:function(e){e.curMoveThrough=!0,e.symb=(e.forward?"]":"[")===e.symb?"{":"}"},isComplete:function(e){return 0===e.index&&e.nextCh===e.symb}},comment:{isComplete:function(e){var t="*"===e.lastCh&&"/"===e.nextCh;return e.lastCh=e.nextCh,t}},method:{init:function(e){e.symb="m"===e.symb?"{":"}",e.reverseSymb="{"===e.symb?"}":"{"},isComplete:function(e){return e.nextCh===e.symb}},preprocess:{init:function(e){e.index=0},isComplete:function(e){if("#"===e.nextCh){var t=e.lineText.match(/#(\w+)/)[1];if("endif"===t){if(e.forward&&0===e.depth)return!0;e.depth++}else if("if"===t){if(!e.forward&&0===e.depth)return!0;e.depth--}if("else"===t&&0===e.depth)return!0}return!1}}};b("pcre",!0,"boolean"),_e.prototype={getQuery:function(){return wt.query},setQuery:function(e){wt.query=e},getOverlay:function(){return this.searchOverlay},setOverlay:function(e){this.searchOverlay=e},isReversed:function(){return wt.isReversed},setReversed:function(e){wt.isReversed=e},getScrollbarAnnotate:function(){return this.annotate},setScrollbarAnnotate:function(e){this.annotate=e}};var Ot={"\\n":"\n","\\r":"\r","\\t":"\t"},Et={"\\/":"/","\\\\":"\\","\\n":"\n","\\r":"\r","\\t":"\t"},Nt="(Javascript regexp)",It=function(){this.buildCommandMap_()};It.prototype={processCommand:function(e,t,n){var r=this;e.operation(function(){e.curOp.isVimOp=!0,r._processCommand(e,t,n)})},_processCommand:function(t,n,r){var i=t.state.vim,o=wt.registerController.getRegister(":"),a=o.toString();i.visualMode&&le(t);var s=new e.StringStream(n);o.setText(n);var l=r||{};l.input=n;try{this.parseInput_(t,s,l)}catch(e){throw Pe(t,e),e}var c,u;if(l.commandName){if(c=this.matchCommand_(l.commandName)){if(u=c.name,c.excludeFromCommandHistory&&o.setText(a),this.parseCommandArgs_(s,l,c),"exToKey"==c.type){for(var f=0;f<c.toKeys.length;f++)e.Vim.handleKey(t,c.toKeys[f],"mapping");return}if("exToEx"==c.type)return void this.processCommand(t,c.toInput)}}else void 0!==l.line&&(u="move");if(!u)return void Pe(t,'Not an editor command ":'+n+'"');try{Pt[u](t,l),c&&c.possiblyAsync||!l.callback||l.callback()}catch(e){throw Pe(t,e),e}},parseInput_:function(e,t,n){t.eatWhile(":"),t.eat("%")?(n.line=e.firstLine(),n.lineEnd=e.lastLine()):(n.line=this.parseLineSpec_(e,t),void 0!==n.line&&t.eat(",")&&(n.lineEnd=this.parseLineSpec_(e,t)));var r=t.match(/^(\w+)/);return n.commandName=r?r[1]:t.match(/.*/)[0],n},parseLineSpec_:function(e,t){var n=t.match(/^(\d+)/);if(n)return parseInt(n[1],10)-1;switch(t.next()){case".":return this.parseLineSpecOffset_(t,e.getCursor().line);case"$":return this.parseLineSpecOffset_(t,e.lastLine());case"'":var r=t.next(),i=Ue(e,e.state.vim,r);if(!i)throw new Error("Mark not set");return this.parseLineSpecOffset_(t,i.line);case"-":case"+":return t.backUp(1),this.parseLineSpecOffset_(t,e.getCursor().line);default:return void t.backUp(1)}},parseLineSpecOffset_:function(e,t){var n=e.match(/^([+-])?(\d+)/);if(n){var r=parseInt(n[2],10);"-"==n[1]?t-=r:t+=r}return t},parseCommandArgs_:function(e,t,n){if(!e.eol()){t.argString=e.match(/.*/)[0];var r=n.argDelimiter||/\s+/,i=Y(t.argString).split(r);i.length&&i[0]&&(t.args=i)}},matchCommand_:function(e){for(var t=e.length;t>0;t--){var n=e.substring(0,t);if(this.commandMap_[n]){var r=this.commandMap_[n];if(0===r.name.indexOf(e))return r}}return null},buildCommandMap_:function(){this.commandMap_={};for(var e=0;e<n.length;e++){var t=n[e],r=t.shortName||t.name;this.commandMap_[r]=t}},map:function(e,n,r){if(":"!=e&&":"==e.charAt(0)){if(r)throw Error("Mode not supported for ex mappings");var i=e.substring(1);":"!=n&&":"==n.charAt(0)?this.commandMap_[i]={name:i,type:"exToEx",toInput:n.substring(1),user:!0}:this.commandMap_[i]={name:i,type:"exToKey",toKeys:n,user:!0}}else if(":"!=n&&":"==n.charAt(0)){var o={keys:e,type:"keyToEx",exArgs:{input:n.substring(1)}};r&&(o.context=r),t.unshift(o)}else{var o={keys:e,type:"keyToKey",toKeys:n};r&&(o.context=r),t.unshift(o)}},unmap:function(e,n){if(":"!=e&&":"==e.charAt(0)){if(n)throw Error("Mode not supported for ex mappings");var r=e.substring(1);if(this.commandMap_[r]&&this.commandMap_[r].user)return void delete this.commandMap_[r]}else for(var i=e,o=0;o<t.length;o++)if(i==t[o].keys&&t[o].context===n)return void t.splice(o,1);throw Error("No such mapping.")}};var Pt={colorscheme:function(e,t){if(!t.args||t.args.length<1)return void Pe(e,e.getOption("theme"));e.setOption("theme",t.args[0])},map:function(e,t,n){var r=t.args;if(!r||r.length<2)return void(e&&Pe(e,"Invalid mapping: "+t.input));Rt.map(r[0],r[1],n)},imap:function(e,t){this.map(e,t,"insert")},nmap:function(e,t){this.map(e,t,"normal")},vmap:function(e,t){this.map(e,t,"visual")},unmap:function(e,t,n){var r=t.args;if(!r||r.length<1)return void(e&&Pe(e,"No such mapping: "+t.input));Rt.unmap(r[0],n)},move:function(e,t){St.processCommand(e,e.state.vim,{type:"motion",motion:"moveToLineOrEdgeOfDocument",motionArgs:{forward:!1,explicitRepeat:!0,linewise:!0},repeatOverride:t.line+1})},set:function(e,t){var n=t.args,r=t.setCfg||{};if(!n||n.length<1)return void(e&&Pe(e,"Invalid mapping: "+t.input));var i=n[0].split("="),o=i[0],a=i[1],s=!1;if("?"==o.charAt(o.length-1)){if(a)throw Error("Trailing characters: "+t.argString);o=o.substring(0,o.length-1),s=!0}void 0===a&&"no"==o.substring(0,2)&&(o=o.substring(2),a=!1);var l=yt[o]&&"boolean"==yt[o].type;if(l&&void 0==a&&(a=!0),!l&&void 0===a||s){var c=w(o,e,r);c instanceof Error?Pe(e,c.message):c===!0||c===!1?Pe(e," "+(c?"":"no")+o):Pe(e," "+o+"="+c)}else{var u=x(o,a,e,r);u instanceof Error&&Pe(e,u.message)}},setlocal:function(e,t){t.setCfg={scope:"local"},this.set(e,t)},setglobal:function(e,t){t.setCfg={scope:"global"},this.set(e,t)},registers:function(e,t){var n=t.args,r=wt.registerController.registers,i="----------Registers----------<br><br>";if(n){var o;n=n.join("");for(var a=0;a<n.length;a++)if(o=n.charAt(a),wt.registerController.isValidRegister(o)){var s=r[o]||new L;i+='"'+o+" "+s.toString()+"<br>"}}else for(var o in r){var l=r[o].toString();l.length&&(i+='"'+o+" "+l+"<br>")}Pe(e,i)},
13
- sort:function(t,n){function i(e,t){if(a){var n;n=e,e=t,t=n}s&&(e=e.toLowerCase(),t=t.toLowerCase());var r=c&&v.exec(e),i=c&&v.exec(t);return r?(r=parseInt((r[1]+r[2]).toLowerCase(),y),i=parseInt((i[1]+i[2]).toLowerCase(),y),r-i):e<t?-1:1}function o(e,t){if(a){var n;n=e,e=t,t=n}return s&&(e[0]=e[0].toLowerCase(),t[0]=t[0].toLowerCase()),e[0]<t[0]?-1:1}var a,s,l,c,u,f=function(){if(n.argString){var t=new e.StringStream(n.argString);if(t.eat("!")&&(a=!0),t.eol())return;if(!t.eatSpace())return"Invalid arguments";var r=t.match(/([dinuox]+)?\s*(\/.+\/)?\s*/);if(!r&&!t.eol())return"Invalid arguments";if(r[1]){s=r[1].indexOf("i")!=-1,l=r[1].indexOf("u")!=-1;var i=r[1].indexOf("d")!=-1||r[1].indexOf("n")!=-1&&1,o=r[1].indexOf("x")!=-1&&1,f=r[1].indexOf("o")!=-1&&1;if(i+o+f>1)return"Invalid arguments";c=i&&"decimal"||o&&"hex"||f&&"octal"}r[2]&&(u=new RegExp(r[2].substr(1,r[2].length-2),s?"i":""))}}();if(f)return void Pe(t,f+": "+n.argString);var d=n.line||t.firstLine(),h=n.lineEnd||n.line||t.lastLine();if(d!=h){var p=r(d,0),m=r(h,X(t,h)),g=t.getRange(p,m).split("\n"),v=u?u:"decimal"==c?/(-?)([\d]+)/:"hex"==c?/(-?)(?:0x)?([0-9a-f]+)/i:"octal"==c?/([0-7]+)/:null,y="decimal"==c?10:"hex"==c?16:"octal"==c?8:null,b=[],x=[];if(c||u)for(var w=0;w<g.length;w++){var k=u?g[w].match(u):null;k&&""!=k[0]?b.push(k):!u&&v.exec(g[w])?b.push(g[w]):x.push(g[w])}else x=g;if(b.sort(u?o:i),u)for(var w=0;w<b.length;w++)b[w]=b[w].input;else c||x.sort(i);if(g=a?b.concat(x):x.concat(b),l){var C,S=g;g=[];for(var w=0;w<S.length;w++)S[w]!=C&&g.push(S[w]),C=S[w]}t.replaceRange(g.join("\n"),p,m)}},global:function(e,t){var n=t.argString;if(!n)return void Pe(e,"Regular Expression missing from global");var r,i=void 0!==t.line?t.line:e.firstLine(),o=t.lineEnd||t.line||e.lastLine(),a=Te(n),s=n;if(a.length&&(s=a[0],r=a.slice(1,a.length).join("/")),s)try{De(e,s,!0,!0)}catch(t){return void Pe(e,"Invalid regex: "+s)}for(var l=Me(e).getQuery(),c=[],u="",f=i;f<=o;f++){l.test(e.getLine(f))&&(c.push(f+1),u+=e.getLine(f)+"<br>")}if(!r)return void Pe(e,u);var d=0,h=function(){if(d<c.length){var t=c[d]+r;Rt.processCommand(e,t,{callback:h})}d++};h()},substitute:function(e,t){if(!e.getSearchCursor)throw new Error("Search feature not available. Requires searchcursor.js or any other getSearchCursor implementation.");var n,i,o,a,s=t.argString,l=s?Te(s):[],c="",u=!1,f=!1;if(l.length)n=l[0],c=l[1],n&&"$"===n[n.length-1]&&(n=n.slice(0,n.length-1)+"\\n",c=c?c+"\n":"\n"),void 0!==c&&(c=w("pcre")?Ne(c):Ee(c),wt.lastSubstituteReplacePart=c),i=l[2]?l[2].split(" "):[];else if(s&&s.length)return void Pe(e,"Substitutions should be of the form :s/pattern/replace/");if(i&&(o=i[0],a=parseInt(i[1]),o&&(o.indexOf("c")!=-1&&(u=!0,o.replace("c","")),o.indexOf("g")!=-1&&(f=!0,o.replace("g","")),n=n+"/"+o)),n)try{De(e,n,!0,!0)}catch(t){return void Pe(e,"Invalid regex: "+n)}if(void 0===(c=c||wt.lastSubstituteReplacePart))return void Pe(e,"No previous substitute regular expression");var d=Me(e),h=d.getQuery(),p=void 0!==t.line?t.line:e.getCursor().line,m=t.lineEnd||p;p==e.firstLine()&&m==e.lastLine()&&(m=1/0),a&&(p=m,m=p+a-1);var g=R(e,r(p,0)),v=e.getSearchCursor(h,g);Ve(e,u,f,p,m,v,h,c,t.callback)},redo:e.commands.redo,undo:e.commands.undo,write:function(t){e.commands.save?e.commands.save(t):t.save&&t.save()},nohlsearch:function(e){He(e)},yank:function(e){var t=j(e.getCursor()),n=t.line,r=e.getLine(n);wt.registerController.pushText("0","yank",r,!0,!0)},delmarks:function(t,n){if(!n.argString||!Y(n.argString))return void Pe(t,"Argument required");for(var r=t.state.vim,i=new e.StringStream(Y(n.argString));!i.eol();){i.eatSpace();var o=i.pos;if(!i.match(/[a-zA-Z]/,!1))return void Pe(t,"Invalid argument: "+n.argString.substring(o));var a=i.next();if(i.match("-",!0)){if(!i.match(/[a-zA-Z]/,!1))return void Pe(t,"Invalid argument: "+n.argString.substring(o));var s=a,l=i.next();if(!(h(s)&&h(l)||g(s)&&g(l)))return void Pe(t,"Invalid argument: "+s+"-");var c=s.charCodeAt(0),u=l.charCodeAt(0);if(c>=u)return void Pe(t,"Invalid argument: "+n.argString.substring(o));for(var f=0;f<=u-c;f++){var d=String.fromCharCode(c+f);delete r.marks[d]}}else delete r.marks[a]}}},Rt=new It;return e.keyMap.vim={attach:s,detach:a,call:l},b("insertModeEscKeysTimeout",200,"number"),e.keyMap["vim-insert"]={fallthrough:["default"],attach:s,detach:a,call:l},e.keyMap["vim-replace"]={Backspace:"goCharLeft",fallthrough:["vim-insert"],attach:s,detach:a,call:l},S(),Ct}()}),function(e,t,n,r,i){"use strict";function o(){te.theme=i.theme,te.lineNumbers=!!i.lineNumbers,te.foldGutter=!!i.foldGutter,te.gutters=te.foldGutter?["CodeMirror-linenumbers","CodeMirror-foldgutter"]:[],te.tabSize=te.indentUnit=+i.tabSize,te.lineWrapping=!!i.lineWrapping,te.matchBrackets=!!i.matchBrackets,te.autoCloseTags=!!i.autoCloseTags,te.autoCloseBrackets=!!i.autoCloseBrackets,te.highlightSelectionMatches=!!i.highlightSelectionMatches,te.matchTags=!!i.matchTags&&{bothTags:!0},te.scrollbarStyle=i.scrollbarStyle?"overlay":null,te.keyMap=i.keyMap,te.autofocus=e.getElementById("title")&&!!e.getElementById("title").value&&e.getElementById("title").value.length>0}function a(e){var n=!1;return function(){var r=this,i=arguments;n||(e.apply(r,i),n=!0,t.requestAnimationFrame(function(){t.requestAnimationFrame(function(){n=!1})}))}}function s(){for(var e=-1;e<U.children.length;e++){var t=e<0?K:U.children[e];null!=t&&(t.style.position="",t.style.top="",t.style.left="",t.style.right="",t.style.width="")}}function l(){for(var t=$.getBoundingClientRect(),n=-1;n<U.children.length;n++){var r=n<0?K:U.children[n];null!=r&&(r.style.position="fixed",r.style.top=t.bottom+"px",r.style.right=e.documentElement.getBoundingClientRect().width-t.right+"px",r.id.match(/toggle/gi)||(r.style.left=t.left+"px",r.style.width="auto"))}}function c(){for(var e=$.getBoundingClientRect(),t=H.getWrapperElement().getBoundingClientRect(),n=-1;n<U.children.length;n++){var r=n<0?K:U.children[n];null!=r&&(r.style.position="absolute",r.style.top=(t.top-e.bottom)*-1+"px",r.style.left="",r.style.right="",r.style.width="")}}function u(e){f();var t=ee.settingsPosition();if(t!==ee.previousSettingsPosition||e&&"resize"===e.type)switch(_(),t){case"top":s();break;case"middle":l();break;case"bottom":c();break;case"normal":case"none":}}function f(){if(V){var n=V.getBoundingClientRect().top,r=e.getElementById("post-status-info").getBoundingClientRect().top,i=r-n,o=t.innerHeight-n;V.style.maxHeight=Math.min(i,o)-6+"px",re&&(V.style.height=V.style.maxHeight)}}function d(){V.style.maxHeight="",re&&(V.style.height="")}function h(){Z&&(Z.addEventListener("change",p),p())}function p(){ee.isFullHeight()?(H.setOption("viewportMargin",1/0),H.on("change",_),t.addEventListener("scroll",ne),t.addEventListener("resize",ne),t.addEventListener("resize",ae),H.getWrapperElement().style.height="auto",u(),L(),t.setTimeout(function(){f(),_()},100)):(H.setOption("viewportMargin",te.viewportMargin),H.off("change",_),t.removeEventListener("scroll",ne),t.removeEventListener("resize",ne),t.removeEventListener("resize",ae),H.getWrapperElement().style.marginTop="",d(),s(),M())}function m(e){for(var t=0;t<e.length;t++){var n=e[t];if(n.addedNodes[0]&&n.addedNodes[0].classList.contains("CodeMirror-dialog")){K=n.addedNodes[0];for(var r=K.getElementsByTagName("button"),i=0;i<r.length;i++){r[i].classList="button button-small"}}else K=void 0}}function g(){H.getWrapperElement().appendChild(U),U.style.display="block",U.querySelector(".CodeMirror-settings__toggle").addEventListener("click",v),U.querySelector(".CodeMirror-settings__toggle-advanced").addEventListener("click",v),new MutationObserver(m).observe(H.getWrapperElement(),{childList:!0});for(var e=U.querySelectorAll(".CodeMirror-settings__option"),t=0;t<e.length;t++){var n=e[t];n.addEventListener("change",k),n.addEventListener("change",x)}}function v(e){y(e.target.id.match(/advanced/gi)?U.classList.contains("open-advanced")?"open":"advanced":U.classList.contains("open")?"closed":"open")}function y(e){switch(e){case"open":U.classList.add("open"),U.classList.remove("open-advanced"),U.classList.remove("closed");break;case"advanced":U.classList.add("open"),U.classList.add("open-advanced"),U.classList.remove("closed");break;default:U.classList.remove("open"),U.classList.remove("open-advanced"),U.classList.add("closed")}}function b(){ee.charWidth=H.defaultCharWidth()*(i.fontSize/13)}function x(e){var t=+e.target.value;switch(t=isNaN(t)?e.target.value:t,"checkbox"===e.target.type&&(t=e.target.checked),e.target.id){case"fontSize":i.fontSize=t,j.style.fontSize=t+"px",b(),H.refresh();break;case"lineHeight":i.lineHeight=t,j.style.lineHeight=t+"em",H.refresh();break;case"matchTags":i.matchTags=t,H.setOption("matchTags",t?{bothTags:!0}:null);break;case"scrollbarStyle":i.scrollbarStyle=t,H.setOption("scrollbarStyle",t?"overlay":null);break;case"foldGutter":H.setOption("gutters",t?["CodeMirror-linenumbers","CodeMirror-foldgutter"]:[]);case"tabSize":H.setOption("indentUnit",t);default:i[e.target.id]=t,H.setOption(e.target.id,t)}switch(e.target.id){case"lineNumbers":t&&i.foldGutter&&H.setOption("gutters",["CodeMirror-linenumbers","CodeMirror-foldgutter"])}}function w(e,t){j.style.fontSize=e+"px",i.fontSize=e,j.style.lineHeight=t+"em",i.lineHeight=t,b(),H.refresh()}function k(){var e=r("#CodeMirror-settings__form").serializeArray();r.post(i.ajaxUrl,e,function(e){})}function C(){$.insertAdjacentHTML("afterbegin",'<button type="button" id="cm_content_fullscreen" class="ed_button qt-dfw" title="Full Screen"></button>'),e.getElementById("cm_content_fullscreen").onclick=S}function S(e){e=e===!0,ee.isFullHeight()?ie.classList.remove(oe):(ie.classList.contains(oe)||e?ie.classList.remove(oe):ie.classList.add(oe),H.focus())}function _(){H.save(),H.getTextArea().style.height=H.getWrapperElement().getBoundingClientRect().height+"px"}function M(){H.getWrapperElement().style.height=H.getTextArea().style.height}function L(){H.getWrapperElement().style.marginTop=$.offsetHeight+"px"}function T(){e.getElementById("content-resize-handle").addEventListener("mousedown",function(){e.addEventListener("mousemove",M)}),e.addEventListener("mouseup",function(){e.removeEventListener("mousemove",M)})}function A(){function t(e){s=n+(e.pageY-o),H.getWrapperElement().style.height=Math.max(r,s)+"px"}var n=500,r=200;H.getWrapperElement().style.height=n+"px";var i=e.createElement("div");i.className="hesh-content-resize-handle",i.id="content-resize-handle",H.getWrapperElement().appendChild(i);var o,a=!1,s=n;e.getElementById("content-resize-handle").addEventListener("mousedown",function(n){o=n.pageY,a=!0,e.addEventListener("mousemove",t),n.preventDefault()}),e.addEventListener("mouseup",function(){a=!1,n=Math.max(r,s),e.removeEventListener("mousemove",t),H.refresh()})}function O(){var t=e.querySelector(".fileedit-sub .alignleft"),n=t.textContent.match(/\.[a-z\d]{2,}/gi),r=n[n.length-1].match(/[a-z]*/gi)[1],i={php:"php",css:"css",xml:"xml",html:"htmlmixed",js:"javascript",json:"javascript"};te.mode=i[r]}function E(t){var n="; "+e.cookie,r=n.split("; "+t+"=");if(2===r.length)return r.pop().split(";").shift()}function N(){var e=(E("hesh_plugin_selection_state")||"0,0,0,0,0,0,0").split(",");J===e[0]&&(H.doc.setSelection({line:+e[1],ch:+e[2]},{line:+e[3],ch:+e[4]},{scroll:!1}),H.scrollTo(+e[5],+e[6]))}function I(){var t=H.doc.listSelections()[0],n=H.getScrollInfo();e.cookie="hesh_plugin_selection_state="+J+","+t.anchor.line+","+t.anchor.ch+","+t.head.line+","+t.head.ch+","+n.left+","+n.top}function P(){var t=".CodeMirror pre > * { text-indent: 0px; }",r=e.head||e.getElementsByTagName("head")[0],i=e.createElement("style");i.type="text/css",i.styleSheet?i.styleSheet.cssText=t:i.appendChild(e.createTextNode(t)),r.appendChild(i);H.on("renderLine",function(e,t,r){var i=n.countColumn(t.text,null,e.getOption("tabSize"))*ee.charWidth;r.style.textIndent="-"+i+"px",r.style.paddingLeft=4+i+"px"}),H.refresh()}function R(){var e,t,n,r=H.doc.listSelections()[0];e=t=n=0,H.doc.eachLine(function(i){n<=r.head.line-1&&(e+=i.text.length+1),n<=r.anchor.line-1&&(t+=i.text.length+1),n++}),e+=r.head.ch,t+=r.anchor.ch,H.getTextArea().setSelectionRange(Math.min(t,e),Math.max(t,e)),H.getTextArea().focus(),B()}function B(){var e=H.getTextArea().value.length,n=t.setInterval(function(){e!==H.getTextArea().value.length&&(t.clearInterval(n),z())},10),r=function(){t.clearInterval(n),H.off("focus",r)};H.on("focus",r)}function z(){var e=H.getTextArea().selectionStart,n=H.getTextArea().selectionEnd,r=H.getScrollInfo(),i={top:t.pageYOffset,left:t.pageXOffset};H.doc.setValue(H.getTextArea().value),H.focus();for(var o=0,a=0,s=0,l=e,c=n,u=H.getLineHandle(s).text.length+1;u<=l&&u<=c;)s++,u<=l&&(l-=u,o=s),u<=c&&(c-=u,a=s),u=H.getLineHandle(s).text.length+1;H.doc.setSelection({line:o,ch:l},{line:a,ch:c},{scroll:!1}),t.scrollTo(i.left,i.top),H.scrollTo(r.left,r.top),H.save()}function D(){var e=t.send_to_editor,n=function(n){ee.isActive()&&"content"===t.wpActiveEditor?(H.replaceSelection(n),H.save()):e(n)};t.send_to_editor=n}function F(){ee.isActive()||(o(),ee.isThemeOrPlugin&&O(),H=n.fromTextArea(G,te),j=H.getWrapperElement().querySelector(".CodeMirror-code"),G.classList.add("CodeMirror-mirrored"),H.on("change",function(){H.save()}),N(),H.on("cursorActivity",se),H.on("scroll",se),ee.isThemeOrPlugin?(A(),Q=e.getElementById("submit")):($.addEventListener("mousedown",R),D(),T(),h(),C()),g(),w(+i.fontSize,+i.lineHeight),P())}function W(){ee.isActive()&&(y("closed"),H.toTextArea())}function q(){ee.isThemeOrPlugin?F():ee.isVisualEnabled?(X.addEventListener("click",function(){t.setTimeout(F,0)}),Y.addEventListener("click",W),ee.isVisualActive()||F()):(F(),e.body.className+=" visual-editor-is-disabled")}var H,j,K,U=e.getElementById("CodeMirror-settings"),V=e.getElementById("CodeMirror-settings__form"),$=e.getElementById("ed_toolbar"),G=e.getElementById("content")||e.getElementById("newcontent"),X=e.getElementById("content-html"),Y=e.getElementById("content-tmce"),Q=e.getElementById("save-post")||e.getElementById("publish"),J=null!=e.getElementById("post_ID")?e.getElementById("post_ID").value:0,Z=e.getElementById("editor-expand-toggle"),ee={isVisualEnabled:null!=e.getElementById("content-tmce"),isThemeOrPlugin:null!=e.getElementById("newcontent"),isActive:function(){return null!=e.getElementsByClassName("CodeMirror")[0]},isVisualActive:function(){return null!=e.getElementsByClassName("tmce-active")[0]},isFullHeight:function(){return!!Z&&Z.checked},previousSettingsPosition:"none",settingsPosition:function(){var e,n=this;return e=$?"absolute"===$.style.position?"0px"===$.style.top?"top":"bottom":"fixed"===$.style.position?"middle":"normal":"none",t.setTimeout(function(){n.previousSettingsPosition=e},0),e},charWidth:0},te={mode:"wordpresspost",tabMode:"indent",indentWithTabs:!0,enterMode:"keep",styleActiveLine:!0,electricChars:!1,showCursorWhenSelecting:!0,viewportMargin:10,extraKeys:{F11:function(){S()},Esc:function(){S(!0)},"Ctrl-S":function(){Q.click()},"Cmd-S":function(){Q.click()}}},ne=a(u),re=!!navigator.userAgent.match(/Trident/gi),ie=e.getElementById("wp-content-editor-container"),oe="heshFullscreen",ae=a(L),se=a(I);"complete"!==e.readyState?t.addEventListener?t.addEventListener("load",q,!1):t.attachEvent&&t.attachEvent("onload",q):q()}(document,window,window.CodeMirror,window.jQuery,window.heshOptions);
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.CodeMirror=t()}(this,function(){"use strict";var e=navigator.userAgent,t=navigator.platform,m=/gecko\/\d/i.test(e),r=/MSIE \d/.test(e),n=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(e),i=/Edge\/(\d+)/.exec(e),w=r||n||i,k=w&&(r?document.documentMode||6:+(i||n)[1]),b=!i&&/WebKit\//.test(e),o=b&&/Qt\/\d+\.\d+/.test(e),a=!i&&/Chrome\//.test(e),g=/Opera\//.test(e),l=/Apple Computer/.test(navigator.vendor),s=/Mac OS X 1\d\D([8-9]|\d\d)\D/.test(e),c=/PhantomJS/.test(e),u=!i&&/AppleWebKit/.test(e)&&/Mobile\/\w+/.test(e),f=/Android/.test(e),d=u||f||/webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(e),x=u||/Mac/.test(t),h=/\bCrOS\b/.test(e),p=/win/i.test(t),v=g&&e.match(/Version\/(\d*\.\d*)/);v&&(v=Number(v[1])),v&&15<=v&&(b=!(g=!1));var y=x&&(o||g&&(null==v||v<12.11)),C=m||w&&9<=k;function S(e){return new RegExp("(^|\\s)"+e+"(?:$|\\s)\\s*")}var _,L=function(e,t){var r=e.className,n=S(t).exec(r);if(n){var i=r.slice(n.index+n[0].length);e.className=r.slice(0,n.index)+(i?n[1]+i:"")}};function M(e){for(var t=e.childNodes.length;0<t;--t)e.removeChild(e.firstChild);return e}function T(e,t){return M(e).appendChild(t)}function O(e,t,r,n){var i=document.createElement(e);if(r&&(i.className=r),n&&(i.style.cssText=n),"string"==typeof t)i.appendChild(document.createTextNode(t));else if(t)for(var o=0;o<t.length;++o)i.appendChild(t[o]);return i}function A(e,t,r,n){var i=O(e,t,r,n);return i.setAttribute("role","presentation"),i}function E(e,t){if(3==t.nodeType&&(t=t.parentNode),e.contains)return e.contains(t);do{if(11==t.nodeType&&(t=t.host),t==e)return!0}while(t=t.parentNode)}function N(){var t;try{t=document.activeElement}catch(e){t=document.body||null}for(;t&&t.shadowRoot&&t.shadowRoot.activeElement;)t=t.shadowRoot.activeElement;return t}function I(e,t){var r=e.className;S(t).test(r)||(e.className+=(r?" ":"")+t)}function P(e,t){for(var r=e.split(" "),n=0;n<r.length;n++)r[n]&&!S(r[n]).test(t)&&(t+=" "+r[n]);return t}_=document.createRange?function(e,t,r,n){var i=document.createRange();return i.setEnd(n||e,r),i.setStart(e,t),i}:function(e,t,r){var n=document.body.createTextRange();try{n.moveToElementText(e.parentNode)}catch(e){return n}return n.collapse(!0),n.moveEnd("character",r),n.moveStart("character",t),n};var B=function(e){e.select()};function R(e){var t=Array.prototype.slice.call(arguments,1);return function(){return e.apply(null,t)}}function D(e,t,r){for(var n in t||(t={}),e)!e.hasOwnProperty(n)||!1===r&&t.hasOwnProperty(n)||(t[n]=e[n]);return t}function F(e,t,r,n,i){null==t&&-1==(t=e.search(/[^\s\u00a0]/))&&(t=e.length);for(var o=n||0,a=i||0;;){var s=e.indexOf("\t",o);if(s<0||t<=s)return a+(t-o);a+=s-o,a+=r-a%r,o=s+1}}u?B=function(e){e.selectionStart=0,e.selectionEnd=e.value.length}:w&&(B=function(e){try{e.select()}catch(e){}});var z=function(){this.id=null};function W(e,t){for(var r=0;r<e.length;++r)if(e[r]==t)return r;return-1}z.prototype.set=function(e,t){clearTimeout(this.id),this.id=setTimeout(t,e)};var q=30,H={toString:function(){return"CodeMirror.Pass"}},j={scroll:!1},K={origin:"*mouse"},U={origin:"+move"};function V(e,t,r){for(var n=0,i=0;;){var o=e.indexOf("\t",n);-1==o&&(o=e.length);var a=o-n;if(o==e.length||t<=i+a)return n+Math.min(a,t-i);if(i+=o-n,n=o+1,t<=(i+=r-i%r))return n}}var $=[""];function G(e){for(;$.length<=e;)$.push(X($)+" ");return $[e]}function X(e){return e[e.length-1]}function Y(e,t){for(var r=[],n=0;n<e.length;n++)r[n]=t(e[n],n);return r}function Q(){}function J(e,t){var r;return r=Object.create?Object.create(e):(Q.prototype=e,new Q),t&&D(t,r),r}var Z=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;function ee(e){return/\w/.test(e)||"€"<e&&(e.toUpperCase()!=e.toLowerCase()||Z.test(e))}function te(e,t){return t?!!(-1<t.source.indexOf("\\w")&&ee(e))||t.test(e):ee(e)}function re(e){for(var t in e)if(e.hasOwnProperty(t)&&e[t])return!1;return!0}var ne=/[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/;function ie(e){return 768<=e.charCodeAt(0)&&ne.test(e)}function oe(e,t,r){for(;(r<0?0<t:t<e.length)&&ie(e.charAt(t));)t+=r;return t}function ae(e,t,r){for(var n=r<t?-1:1;;){if(t==r)return t;var i=(t+r)/2,o=n<0?Math.ceil(i):Math.floor(i);if(o==t)return e(o)?t:r;e(o)?r=o:t=o+n}}function se(e,t,r){var n=this;this.input=r,n.scrollbarFiller=O("div",null,"CodeMirror-scrollbar-filler"),n.scrollbarFiller.setAttribute("cm-not-content","true"),n.gutterFiller=O("div",null,"CodeMirror-gutter-filler"),n.gutterFiller.setAttribute("cm-not-content","true"),n.lineDiv=A("div",null,"CodeMirror-code"),n.selectionDiv=O("div",null,null,"position: relative; z-index: 1"),n.cursorDiv=O("div",null,"CodeMirror-cursors"),n.measure=O("div",null,"CodeMirror-measure"),n.lineMeasure=O("div",null,"CodeMirror-measure"),n.lineSpace=A("div",[n.measure,n.lineMeasure,n.selectionDiv,n.cursorDiv,n.lineDiv],null,"position: relative; outline: none");var i=A("div",[n.lineSpace],"CodeMirror-lines");n.mover=O("div",[i],null,"position: relative"),n.sizer=O("div",[n.mover],"CodeMirror-sizer"),n.sizerWidth=null,n.heightForcer=O("div",null,null,"position: absolute; height: "+q+"px; width: 1px;"),n.gutters=O("div",null,"CodeMirror-gutters"),n.lineGutter=null,n.scroller=O("div",[n.sizer,n.heightForcer,n.gutters],"CodeMirror-scroll"),n.scroller.setAttribute("tabIndex","-1"),n.wrapper=O("div",[n.scrollbarFiller,n.gutterFiller,n.scroller],"CodeMirror"),w&&k<8&&(n.gutters.style.zIndex=-1,n.scroller.style.paddingRight=0),b||m&&d||(n.scroller.draggable=!0),e&&(e.appendChild?e.appendChild(n.wrapper):e(n.wrapper)),n.viewFrom=n.viewTo=t.first,n.reportedViewFrom=n.reportedViewTo=t.first,n.view=[],n.renderedView=null,n.externalMeasured=null,n.viewOffset=0,n.lastWrapHeight=n.lastWrapWidth=0,n.updateLineNumbers=null,n.nativeBarWidth=n.barHeight=n.barWidth=0,n.scrollbarsClipped=!1,n.lineNumWidth=n.lineNumInnerWidth=n.lineNumChars=null,n.alignWidgets=!1,n.cachedCharWidth=n.cachedTextHeight=n.cachedPaddingH=null,n.maxLine=null,n.maxLineLength=0,n.maxLineChanged=!1,n.wheelDX=n.wheelDY=n.wheelStartX=n.wheelStartY=null,n.shift=!1,n.selForContextMenu=null,n.activeTouch=null,r.init(n)}function le(e,t){if((t-=e.first)<0||t>=e.size)throw new Error("There is no line "+(t+e.first)+" in the document.");for(var r=e;!r.lines;)for(var n=0;;++n){var i=r.children[n],o=i.chunkSize();if(t<o){r=i;break}t-=o}return r.lines[t]}function ce(e,r,n){var i=[],o=r.line;return e.iter(r.line,n.line+1,function(e){var t=e.text;o==n.line&&(t=t.slice(0,n.ch)),o==r.line&&(t=t.slice(r.ch)),i.push(t),++o}),i}function ue(e,t,r){var n=[];return e.iter(t,r,function(e){n.push(e.text)}),n}function fe(e,t){var r=t-e.height;if(r)for(var n=e;n;n=n.parent)n.height+=r}function de(e){if(null==e.parent)return null;for(var t=e.parent,r=W(t.lines,e),n=t.parent;n;n=(t=n).parent)for(var i=0;n.children[i]!=t;++i)r+=n.children[i].chunkSize();return r+t.first}function he(e,t){var r=e.first;e:do{for(var n=0;n<e.children.length;++n){var i=e.children[n],o=i.height;if(t<o){e=i;continue e}t-=o,r+=i.chunkSize()}return r}while(!e.lines);for(var a=0;a<e.lines.length;++a){var s=e.lines[a].height;if(t<s)break;t-=s}return r+a}function pe(e,t){return t>=e.first&&t<e.first+e.size}function me(e,t){return String(e.lineNumberFormatter(t+e.firstLineNumber))}function ge(e,t,r){if(void 0===r&&(r=null),!(this instanceof ge))return new ge(e,t,r);this.line=e,this.ch=t,this.sticky=r}function ve(e,t){return e.line-t.line||e.ch-t.ch}function ye(e,t){return e.sticky==t.sticky&&0==ve(e,t)}function be(e){return ge(e.line,e.ch)}function xe(e,t){return ve(e,t)<0?t:e}function we(e,t){return ve(e,t)<0?e:t}function ke(e,t){return Math.max(e.first,Math.min(t,e.first+e.size-1))}function Ce(e,t){if(t.line<e.first)return ge(e.first,0);var r,n,i,o=e.first+e.size-1;return t.line>o?ge(o,le(e,o).text.length):(n=le(e,(r=t).line).text.length,null==(i=r.ch)||n<i?ge(r.line,n):i<0?ge(r.line,0):r)}function Se(e,t){for(var r=[],n=0;n<t.length;n++)r[n]=Ce(e,t[n]);return r}var _e=!1,Le=!1;function Me(e,t,r){this.marker=e,this.from=t,this.to=r}function Te(e,t){if(e)for(var r=0;r<e.length;++r){var n=e[r];if(n.marker==t)return n}}function Ae(e,t){for(var r,n=0;n<e.length;++n)e[n]!=t&&(r||(r=[])).push(e[n]);return r}function Oe(e,t){if(t.full)return null;var r=pe(e,t.from.line)&&le(e,t.from.line).markedSpans,n=pe(e,t.to.line)&&le(e,t.to.line).markedSpans;if(!r&&!n)return null;var i=t.from.ch,o=t.to.ch,a=0==ve(t.from,t.to),s=function(e,t,r){var n;if(e)for(var i=0;i<e.length;++i){var o=e[i],a=o.marker;if(null==o.from||(a.inclusiveLeft?o.from<=t:o.from<t)||o.from==t&&"bookmark"==a.type&&(!r||!o.marker.insertLeft)){var s=null==o.to||(a.inclusiveRight?o.to>=t:o.to>t);(n||(n=[])).push(new Me(a,o.from,s?null:o.to))}}return n}(r,i,a),l=function(e,t,r){var n;if(e)for(var i=0;i<e.length;++i){var o=e[i],a=o.marker;if(null==o.to||(a.inclusiveRight?o.to>=t:o.to>t)||o.from==t&&"bookmark"==a.type&&(!r||o.marker.insertLeft)){var s=null==o.from||(a.inclusiveLeft?o.from<=t:o.from<t);(n||(n=[])).push(new Me(a,s?null:o.from-t,null==o.to?null:o.to-t))}}return n}(n,o,a),c=1==t.text.length,u=X(t.text).length+(c?i:0);if(s)for(var f=0;f<s.length;++f){var d=s[f];if(null==d.to){var h=Te(l,d.marker);h?c&&(d.to=null==h.to?null:h.to+u):d.to=i}}if(l)for(var p=0;p<l.length;++p){var m=l[p];if(null!=m.to&&(m.to+=u),null==m.from)Te(s,m.marker)||(m.from=u,c&&(s||(s=[])).push(m));else m.from+=u,c&&(s||(s=[])).push(m)}s&&(s=Ee(s)),l&&l!=s&&(l=Ee(l));var g=[s];if(!c){var v,y=t.text.length-2;if(0<y&&s)for(var b=0;b<s.length;++b)null==s[b].to&&(v||(v=[])).push(new Me(s[b].marker,null,null));for(var x=0;x<y;++x)g.push(v);g.push(l)}return g}function Ee(e){for(var t=0;t<e.length;++t){var r=e[t];null!=r.from&&r.from==r.to&&!1!==r.marker.clearWhenEmpty&&e.splice(t--,1)}return e.length?e:null}function Ne(e){var t=e.markedSpans;if(t){for(var r=0;r<t.length;++r)t[r].marker.detachLine(e);e.markedSpans=null}}function Ie(e,t){if(t){for(var r=0;r<t.length;++r)t[r].marker.attachLine(e);e.markedSpans=t}}function Pe(e){return e.inclusiveLeft?-1:0}function Be(e){return e.inclusiveRight?1:0}function Re(e,t){var r=e.lines.length-t.lines.length;if(0!=r)return r;var n=e.find(),i=t.find(),o=ve(n.from,i.from)||Pe(e)-Pe(t);if(o)return-o;var a=ve(n.to,i.to)||Be(e)-Be(t);return a||t.id-e.id}function De(e,t){var r,n=Le&&e.markedSpans;if(n)for(var i=void 0,o=0;o<n.length;++o)(i=n[o]).marker.collapsed&&null==(t?i.from:i.to)&&(!r||Re(r,i.marker)<0)&&(r=i.marker);return r}function Fe(e){return De(e,!0)}function ze(e){return De(e,!1)}function We(e,t){var r,n=Le&&e.markedSpans;if(n)for(var i=0;i<n.length;++i){var o=n[i];o.marker.collapsed&&(null==o.from||o.from<t)&&(null==o.to||o.to>t)&&(!r||Re(r,o.marker)<0)&&(r=o.marker)}return r}function qe(e,t,r,n,i){var o=le(e,t),a=Le&&o.markedSpans;if(a)for(var s=0;s<a.length;++s){var l=a[s];if(l.marker.collapsed){var c=l.marker.find(0),u=ve(c.from,r)||Pe(l.marker)-Pe(i),f=ve(c.to,n)||Be(l.marker)-Be(i);if(!(0<=u&&f<=0||u<=0&&0<=f)&&(u<=0&&(l.marker.inclusiveRight&&i.inclusiveLeft?0<=ve(c.to,r):0<ve(c.to,r))||0<=u&&(l.marker.inclusiveRight&&i.inclusiveLeft?ve(c.from,n)<=0:ve(c.from,n)<0)))return!0}}}function He(e){for(var t;t=Fe(e);)e=t.find(-1,!0).line;return e}function je(e,t){var r=le(e,t),n=He(r);return r==n?t:de(n)}function Ke(e,t){if(t>e.lastLine())return t;var r,n=le(e,t);if(!Ue(e,n))return t;for(;r=ze(n);)n=r.find(1,!0).line;return de(n)+1}function Ue(e,t){var r=Le&&t.markedSpans;if(r)for(var n=void 0,i=0;i<r.length;++i)if((n=r[i]).marker.collapsed){if(null==n.from)return!0;if(!n.marker.widgetNode&&0==n.from&&n.marker.inclusiveLeft&&Ve(e,t,n))return!0}}function Ve(e,t,r){if(null==r.to){var n=r.marker.find(1,!0);return Ve(e,n.line,Te(n.line.markedSpans,r.marker))}if(r.marker.inclusiveRight&&r.to==t.text.length)return!0;for(var i=void 0,o=0;o<t.markedSpans.length;++o)if((i=t.markedSpans[o]).marker.collapsed&&!i.marker.widgetNode&&i.from==r.to&&(null==i.to||i.to!=r.from)&&(i.marker.inclusiveLeft||r.marker.inclusiveRight)&&Ve(e,t,i))return!0}function $e(e){for(var t=0,r=(e=He(e)).parent,n=0;n<r.lines.length;++n){var i=r.lines[n];if(i==e)break;t+=i.height}for(var o=r.parent;o;o=(r=o).parent)for(var a=0;a<o.children.length;++a){var s=o.children[a];if(s==r)break;t+=s.height}return t}function Ge(e){if(0==e.height)return 0;for(var t,r=e.text.length,n=e;t=Fe(n);){var i=t.find(0,!0);n=i.from.line,r+=i.from.ch-i.to.ch}for(n=e;t=ze(n);){var o=t.find(0,!0);r-=n.text.length-o.from.ch,r+=(n=o.to.line).text.length-o.to.ch}return r}function Xe(e){var r=e.display,t=e.doc;r.maxLine=le(t,t.first),r.maxLineLength=Ge(r.maxLine),r.maxLineChanged=!0,t.iter(function(e){var t=Ge(e);t>r.maxLineLength&&(r.maxLineLength=t,r.maxLine=e)})}var Ye=null;function Qe(e,t,r){var n;Ye=null;for(var i=0;i<e.length;++i){var o=e[i];if(o.from<t&&o.to>t)return i;o.to==t&&(o.from!=o.to&&"before"==r?n=i:Ye=i),o.from==t&&(o.from!=o.to&&"before"!=r?n=i:Ye=i)}return null!=n?n:Ye}var Je=function(){var D="bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN",F="nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111";var z=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,W=/[stwN]/,q=/[LRr]/,H=/[Lb1n]/,j=/[1n]/;function K(e,t,r){this.level=e,this.from=t,this.to=r}return function(e,t){var r="ltr"==t?"L":"R";if(0==e.length||"ltr"==t&&!z.test(e))return!1;for(var n,i=e.length,o=[],a=0;a<i;++a)o.push((n=e.charCodeAt(a))<=247?D.charAt(n):1424<=n&&n<=1524?"R":1536<=n&&n<=1785?F.charAt(n-1536):1774<=n&&n<=2220?"r":8192<=n&&n<=8203?"w":8204==n?"b":"L");for(var s=0,l=r;s<i;++s){var c=o[s];"m"==c?o[s]=l:l=c}for(var u=0,f=r;u<i;++u){var d=o[u];"1"==d&&"r"==f?o[u]="n":q.test(d)&&"r"==(f=d)&&(o[u]="R")}for(var h=1,p=o[0];h<i-1;++h){var m=o[h];"+"==m&&"1"==p&&"1"==o[h+1]?o[h]="1":","!=m||p!=o[h+1]||"1"!=p&&"n"!=p||(o[h]=p),p=m}for(var g=0;g<i;++g){var v=o[g];if(","==v)o[g]="N";else if("%"==v){var y=void 0;for(y=g+1;y<i&&"%"==o[y];++y);for(var b=g&&"!"==o[g-1]||y<i&&"1"==o[y]?"1":"N",x=g;x<y;++x)o[x]=b;g=y-1}}for(var w=0,k=r;w<i;++w){var C=o[w];"L"==k&&"1"==C?o[w]="L":q.test(C)&&(k=C)}for(var S=0;S<i;++S)if(W.test(o[S])){var _=void 0;for(_=S+1;_<i&&W.test(o[_]);++_);for(var L="L"==(S?o[S-1]:r),M=L==("L"==(_<i?o[_]:r))?L?"L":"R":r,T=S;T<_;++T)o[T]=M;S=_-1}for(var A,O=[],E=0;E<i;)if(H.test(o[E])){var N=E;for(++E;E<i&&H.test(o[E]);++E);O.push(new K(0,N,E))}else{var I=E,P=O.length;for(++E;E<i&&"L"!=o[E];++E);for(var B=I;B<E;)if(j.test(o[B])){I<B&&O.splice(P,0,new K(1,I,B));var R=B;for(++B;B<E&&j.test(o[B]);++B);O.splice(P,0,new K(2,R,B)),I=B}else++B;I<E&&O.splice(P,0,new K(1,I,E))}return"ltr"==t&&(1==O[0].level&&(A=e.match(/^\s+/))&&(O[0].from=A[0].length,O.unshift(new K(0,0,A[0].length))),1==X(O).level&&(A=e.match(/\s+$/))&&(X(O).to-=A[0].length,O.push(new K(0,i-A[0].length,i)))),"rtl"==t?O.reverse():O}}();function Ze(e,t){var r=e.order;return null==r&&(r=e.order=Je(e.text,t)),r}var et=[],tt=function(e,t,r){if(e.addEventListener)e.addEventListener(t,r,!1);else if(e.attachEvent)e.attachEvent("on"+t,r);else{var n=e._handlers||(e._handlers={});n[t]=(n[t]||et).concat(r)}};function rt(e,t){return e._handlers&&e._handlers[t]||et}function nt(e,t,r){if(e.removeEventListener)e.removeEventListener(t,r,!1);else if(e.detachEvent)e.detachEvent("on"+t,r);else{var n=e._handlers,i=n&&n[t];if(i){var o=W(i,r);-1<o&&(n[t]=i.slice(0,o).concat(i.slice(o+1)))}}}function it(e,t){var r=rt(e,t);if(r.length)for(var n=Array.prototype.slice.call(arguments,2),i=0;i<r.length;++i)r[i].apply(null,n)}function ot(e,t,r){return"string"==typeof t&&(t={type:t,preventDefault:function(){this.defaultPrevented=!0}}),it(e,r||t.type,e,t),ft(t)||t.codemirrorIgnore}function at(e){var t=e._handlers&&e._handlers.cursorActivity;if(t)for(var r=e.curOp.cursorActivityHandlers||(e.curOp.cursorActivityHandlers=[]),n=0;n<t.length;++n)-1==W(r,t[n])&&r.push(t[n])}function st(e,t){return 0<rt(e,t).length}function lt(e){e.prototype.on=function(e,t){tt(this,e,t)},e.prototype.off=function(e,t){nt(this,e,t)}}function ct(e){e.preventDefault?e.preventDefault():e.returnValue=!1}function ut(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0}function ft(e){return null!=e.defaultPrevented?e.defaultPrevented:0==e.returnValue}function dt(e){ct(e),ut(e)}function ht(e){return e.target||e.srcElement}function pt(e){var t=e.which;return null==t&&(1&e.button?t=1:2&e.button?t=3:4&e.button&&(t=2)),x&&e.ctrlKey&&1==t&&(t=3),t}var mt,gt,vt=function(){if(w&&k<9)return!1;var e=O("div");return"draggable"in e||"dragDrop"in e}();function yt(e){if(null==mt){var t=O("span","​");T(e,O("span",[t,document.createTextNode("x")])),0!=e.firstChild.offsetHeight&&(mt=t.offsetWidth<=1&&2<t.offsetHeight&&!(w&&k<8))}var r=mt?O("span","​"):O("span"," ",null,"display: inline-block; width: 1px; margin-right: -1px");return r.setAttribute("cm-text",""),r}function bt(e){if(null!=gt)return gt;var t=T(e,document.createTextNode("AخA")),r=_(t,0,1).getBoundingClientRect(),n=_(t,1,2).getBoundingClientRect();return M(e),!(!r||r.left==r.right)&&(gt=n.right-r.right<3)}var xt,wt=3!="\n\nb".split(/\n/).length?function(e){for(var t=0,r=[],n=e.length;t<=n;){var i=e.indexOf("\n",t);-1==i&&(i=e.length);var o=e.slice(t,"\r"==e.charAt(i-1)?i-1:i),a=o.indexOf("\r");-1!=a?(r.push(o.slice(0,a)),t+=a+1):(r.push(o),t=i+1)}return r}:function(e){return e.split(/\r\n?|\n/)},kt=window.getSelection?function(e){try{return e.selectionStart!=e.selectionEnd}catch(e){return!1}}:function(e){var t;try{t=e.ownerDocument.selection.createRange()}catch(e){}return!(!t||t.parentElement()!=e)&&0!=t.compareEndPoints("StartToEnd",t)},Ct="oncopy"in(xt=O("div"))||(xt.setAttribute("oncopy","return;"),"function"==typeof xt.oncopy),St=null;var _t={},Lt={};function Mt(e){if("string"==typeof e&&Lt.hasOwnProperty(e))e=Lt[e];else if(e&&"string"==typeof e.name&&Lt.hasOwnProperty(e.name)){var t=Lt[e.name];"string"==typeof t&&(t={name:t}),(e=J(t,e)).name=t.name}else{if("string"==typeof e&&/^[\w\-]+\/[\w\-]+\+xml$/.test(e))return Mt("application/xml");if("string"==typeof e&&/^[\w\-]+\/[\w\-]+\+json$/.test(e))return Mt("application/json")}return"string"==typeof e?{name:e}:e||{name:"null"}}function Tt(e,t){t=Mt(t);var r=_t[t.name];if(!r)return Tt(e,"text/plain");var n=r(e,t);if(At.hasOwnProperty(t.name)){var i=At[t.name];for(var o in i)i.hasOwnProperty(o)&&(n.hasOwnProperty(o)&&(n["_"+o]=n[o]),n[o]=i[o])}if(n.name=t.name,t.helperType&&(n.helperType=t.helperType),t.modeProps)for(var a in t.modeProps)n[a]=t.modeProps[a];return n}var At={};function Ot(e,t){D(t,At.hasOwnProperty(e)?At[e]:At[e]={})}function Et(e,t){if(!0===t)return t;if(e.copyState)return e.copyState(t);var r={};for(var n in t){var i=t[n];i instanceof Array&&(i=i.concat([])),r[n]=i}return r}function Nt(e,t){for(var r;e.innerMode&&(r=e.innerMode(t))&&r.mode!=e;)t=r.state,e=r.mode;return r||{mode:e,state:t}}function It(e,t,r){return!e.startState||e.startState(t,r)}var Pt=function(e,t,r){this.pos=this.start=0,this.string=e,this.tabSize=t||8,this.lastColumnPos=this.lastColumnValue=0,this.lineStart=0,this.lineOracle=r};Pt.prototype.eol=function(){return this.pos>=this.string.length},Pt.prototype.sol=function(){return this.pos==this.lineStart},Pt.prototype.peek=function(){return this.string.charAt(this.pos)||void 0},Pt.prototype.next=function(){if(this.pos<this.string.length)return this.string.charAt(this.pos++)},Pt.prototype.eat=function(e){var t=this.string.charAt(this.pos);if("string"==typeof e?t==e:t&&(e.test?e.test(t):e(t)))return++this.pos,t},Pt.prototype.eatWhile=function(e){for(var t=this.pos;this.eat(e););return this.pos>t},Pt.prototype.eatSpace=function(){for(var e=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>e},Pt.prototype.skipToEnd=function(){this.pos=this.string.length},Pt.prototype.skipTo=function(e){var t=this.string.indexOf(e,this.pos);if(-1<t)return this.pos=t,!0},Pt.prototype.backUp=function(e){this.pos-=e},Pt.prototype.column=function(){return this.lastColumnPos<this.start&&(this.lastColumnValue=F(this.string,this.start,this.tabSize,this.lastColumnPos,this.lastColumnValue),this.lastColumnPos=this.start),this.lastColumnValue-(this.lineStart?F(this.string,this.lineStart,this.tabSize):0)},Pt.prototype.indentation=function(){return F(this.string,null,this.tabSize)-(this.lineStart?F(this.string,this.lineStart,this.tabSize):0)},Pt.prototype.match=function(e,t,r){if("string"!=typeof e){var n=this.string.slice(this.pos).match(e);return n&&0<n.index?null:(n&&!1!==t&&(this.pos+=n[0].length),n)}var i=function(e){return r?e.toLowerCase():e};if(i(this.string.substr(this.pos,e.length))==i(e))return!1!==t&&(this.pos+=e.length),!0},Pt.prototype.current=function(){return this.string.slice(this.start,this.pos)},Pt.prototype.hideFirstChars=function(e,t){this.lineStart+=e;try{return t()}finally{this.lineStart-=e}},Pt.prototype.lookAhead=function(e){var t=this.lineOracle;return t&&t.lookAhead(e)},Pt.prototype.baseToken=function(){var e=this.lineOracle;return e&&e.baseToken(this.pos)};var Bt=function(e,t){this.state=e,this.lookAhead=t},Rt=function(e,t,r,n){this.state=t,this.doc=e,this.line=r,this.maxLookAhead=n||0,this.baseTokens=null,this.baseTokenPos=1};function Dt(t,r,n,e){var l=[t.state.modeGen],i={};Vt(t,r.text,t.doc.mode,n,function(e,t){return l.push(e,t)},i,e);for(var c=n.state,o=function(e){n.baseTokens=l;var o=t.state.overlays[e],a=1,s=0;n.state=!0,Vt(t,r.text,o.mode,n,function(e,t){for(var r=a;s<e;){var n=l[a];e<n&&l.splice(a,1,e,l[a+1],n),a+=2,s=Math.min(e,n)}if(t)if(o.opaque)l.splice(r,a-r,e,"overlay "+t),a=r+2;else for(;r<a;r+=2){var i=l[r+1];l[r+1]=(i?i+" ":"")+"overlay "+t}},i),n.state=c,n.baseTokens=null,n.baseTokenPos=1},a=0;a<t.state.overlays.length;++a)o(a);return{styles:l,classes:i.bgClass||i.textClass?i:null}}function Ft(e,t,r){if(!t.styles||t.styles[0]!=e.state.modeGen){var n=zt(e,de(t)),i=t.text.length>e.options.maxHighlightLength&&Et(e.doc.mode,n.state),o=Dt(e,t,n);i&&(n.state=i),t.stateAfter=n.save(!i),t.styles=o.styles,o.classes?t.styleClasses=o.classes:t.styleClasses&&(t.styleClasses=null),r===e.doc.highlightFrontier&&(e.doc.modeFrontier=Math.max(e.doc.modeFrontier,++e.doc.highlightFrontier))}return t.styles}function zt(r,n,e){var t=r.doc,i=r.display;if(!t.mode.startState)return new Rt(t,!0,n);var o=function(e,t,r){for(var n,i,o=e.doc,a=r?-1:t-(e.doc.mode.innerMode?1e3:100),s=t;a<s;--s){if(s<=o.first)return o.first;var l=le(o,s-1),c=l.stateAfter;if(c&&(!r||s+(c instanceof Bt?c.lookAhead:0)<=o.modeFrontier))return s;var u=F(l.text,null,e.options.tabSize);(null==i||u<n)&&(i=s-1,n=u)}return i}(r,n,e),a=o>t.first&&le(t,o-1).stateAfter,s=a?Rt.fromSaved(t,a,o):new Rt(t,It(t.mode),o);return t.iter(o,n,function(e){Wt(r,e.text,s);var t=s.line;e.stateAfter=t==n-1||t%5==0||t>=i.viewFrom&&t<i.viewTo?s.save():null,s.nextLine()}),e&&(t.modeFrontier=s.line),s}function Wt(e,t,r,n){var i=e.doc.mode,o=new Pt(t,e.options.tabSize,r);for(o.start=o.pos=n||0,""==t&&qt(i,r.state);!o.eol();)Ht(i,o,r.state),o.start=o.pos}function qt(e,t){if(e.blankLine)return e.blankLine(t);if(e.innerMode){var r=Nt(e,t);return r.mode.blankLine?r.mode.blankLine(r.state):void 0}}function Ht(e,t,r,n){for(var i=0;i<10;i++){n&&(n[0]=Nt(e,r).mode);var o=e.token(t,r);if(t.pos>t.start)return o}throw new Error("Mode "+e.name+" failed to advance stream.")}Rt.prototype.lookAhead=function(e){var t=this.doc.getLine(this.line+e);return null!=t&&e>this.maxLookAhead&&(this.maxLookAhead=e),t},Rt.prototype.baseToken=function(e){if(!this.baseTokens)return null;for(;this.baseTokens[this.baseTokenPos]<=e;)this.baseTokenPos+=2;var t=this.baseTokens[this.baseTokenPos+1];return{type:t&&t.replace(/( |^)overlay .*/,""),size:this.baseTokens[this.baseTokenPos]-e}},Rt.prototype.nextLine=function(){this.line++,0<this.maxLookAhead&&this.maxLookAhead--},Rt.fromSaved=function(e,t,r){return t instanceof Bt?new Rt(e,Et(e.mode,t.state),r,t.lookAhead):new Rt(e,Et(e.mode,t),r)},Rt.prototype.save=function(e){var t=!1!==e?Et(this.doc.mode,this.state):this.state;return 0<this.maxLookAhead?new Bt(t,this.maxLookAhead):t};var jt=function(e,t,r){this.start=e.start,this.end=e.pos,this.string=e.current(),this.type=t||null,this.state=r};function Kt(e,t,r,n){var i,o,a=e.doc,s=a.mode,l=le(a,(t=Ce(a,t)).line),c=zt(e,t.line,r),u=new Pt(l.text,e.options.tabSize,c);for(n&&(o=[]);(n||u.pos<t.ch)&&!u.eol();)u.start=u.pos,i=Ht(s,u,c.state),n&&o.push(new jt(u,i,Et(a.mode,c.state)));return n?o:new jt(u,i,c.state)}function Ut(e,t){if(e)for(;;){var r=e.match(/(?:^|\s+)line-(background-)?(\S+)/);if(!r)break;e=e.slice(0,r.index)+e.slice(r.index+r[0].length);var n=r[1]?"bgClass":"textClass";null==t[n]?t[n]=r[2]:new RegExp("(?:^|s)"+r[2]+"(?:$|s)").test(t[n])||(t[n]+=" "+r[2])}return e}function Vt(e,t,r,n,i,o,a){var s=r.flattenSpans;null==s&&(s=e.options.flattenSpans);var l,c=0,u=null,f=new Pt(t,e.options.tabSize,n),d=e.options.addModeClass&&[null];for(""==t&&Ut(qt(r,n.state),o);!f.eol();){if(l=f.pos>e.options.maxHighlightLength?(s=!1,a&&Wt(e,t,n,f.pos),f.pos=t.length,null):Ut(Ht(r,f,n.state,d),o),d){var h=d[0].name;h&&(l="m-"+(l?h+" "+l:h))}if(!s||u!=l){for(;c<f.start;)i(c=Math.min(f.start,c+5e3),u);u=l}f.start=f.pos}for(;c<f.pos;){var p=Math.min(f.pos,c+5e3);i(p,u),c=p}}var $t=function(e,t,r){this.text=e,Ie(this,t),this.height=r?r(this):1};$t.prototype.lineNo=function(){return de(this)},lt($t);var Gt={},Xt={};function Yt(e,t){if(!e||/^\s*$/.test(e))return null;var r=t.addModeClass?Xt:Gt;return r[e]||(r[e]=e.replace(/\S+/g,"cm-$&"))}function Qt(e,t){var r=A("span",null,null,b?"padding-right: .1px":null),n={pre:A("pre",[r],"CodeMirror-line"),content:r,col:0,pos:0,cm:e,trailingSpace:!1,splitSpaces:(w||b)&&e.getOption("lineWrapping")};t.measure={};for(var i=0;i<=(t.rest?t.rest.length:0);i++){var o=i?t.rest[i-1]:t.line,a=void 0;n.pos=0,n.addToken=Zt,bt(e.display.measure)&&(a=Ze(o,e.doc.direction))&&(n.addToken=er(n.addToken,a)),n.map=[],rr(o,n,Ft(e,o,t!=e.display.externalMeasured&&de(o))),o.styleClasses&&(o.styleClasses.bgClass&&(n.bgClass=P(o.styleClasses.bgClass,n.bgClass||"")),o.styleClasses.textClass&&(n.textClass=P(o.styleClasses.textClass,n.textClass||""))),0==n.map.length&&n.map.push(0,0,n.content.appendChild(yt(e.display.measure))),0==i?(t.measure.map=n.map,t.measure.cache={}):((t.measure.maps||(t.measure.maps=[])).push(n.map),(t.measure.caches||(t.measure.caches=[])).push({}))}if(b){var s=n.content.lastChild;(/\bcm-tab\b/.test(s.className)||s.querySelector&&s.querySelector(".cm-tab"))&&(n.content.className="cm-tab-wrap-hack")}return it(e,"renderLine",e,t.line,n.pre),n.pre.className&&(n.textClass=P(n.pre.className,n.textClass||"")),n}function Jt(e){var t=O("span","•","cm-invalidchar");return t.title="\\u"+e.charCodeAt(0).toString(16),t.setAttribute("aria-label",t.title),t}function Zt(e,t,r,n,i,o,a){if(t){var s,l=e.splitSpaces?function(e,t){if(1<e.length&&!/ /.test(e))return e;for(var r=t,n="",i=0;i<e.length;i++){var o=e.charAt(i);" "!=o||!r||i!=e.length-1&&32!=e.charCodeAt(i+1)||(o=" "),n+=o,r=" "==o}return n}(t,e.trailingSpace):t,c=e.cm.state.specialChars,u=!1;if(c.test(t)){s=document.createDocumentFragment();for(var f=0;;){c.lastIndex=f;var d=c.exec(t),h=d?d.index-f:t.length-f;if(h){var p=document.createTextNode(l.slice(f,f+h));w&&k<9?s.appendChild(O("span",[p])):s.appendChild(p),e.map.push(e.pos,e.pos+h,p),e.col+=h,e.pos+=h}if(!d)break;f+=h+1;var m=void 0;if("\t"==d[0]){var g=e.cm.options.tabSize,v=g-e.col%g;(m=s.appendChild(O("span",G(v),"cm-tab"))).setAttribute("role","presentation"),m.setAttribute("cm-text","\t"),e.col+=v}else"\r"==d[0]||"\n"==d[0]?(m=s.appendChild(O("span","\r"==d[0]?"␍":"␤","cm-invalidchar"))).setAttribute("cm-text",d[0]):((m=e.cm.options.specialCharPlaceholder(d[0])).setAttribute("cm-text",d[0]),w&&k<9?s.appendChild(O("span",[m])):s.appendChild(m)),e.col+=1;e.map.push(e.pos,e.pos+1,m),e.pos++}}else e.col+=t.length,s=document.createTextNode(l),e.map.push(e.pos,e.pos+t.length,s),w&&k<9&&(u=!0),e.pos+=t.length;if(e.trailingSpace=32==l.charCodeAt(t.length-1),r||n||i||u||a){var y=r||"";n&&(y+=n),i&&(y+=i);var b=O("span",[s],y,a);return o&&(b.title=o),e.content.appendChild(b)}e.content.appendChild(s)}}function er(f,d){return function(e,t,r,n,i,o,a){r=r?r+" cm-force-border":"cm-force-border";for(var s=e.pos,l=s+t.length;;){for(var c=void 0,u=0;u<d.length&&!((c=d[u]).to>s&&c.from<=s);u++);if(c.to>=l)return f(e,t,r,n,i,o,a);f(e,t.slice(0,c.to-s),r,n,null,o,a),n=null,t=t.slice(c.to-s),s=c.to}}}function tr(e,t,r,n){var i=!n&&r.widgetNode;i&&e.map.push(e.pos,e.pos+t,i),!n&&e.cm.display.input.needsContentAttribute&&(i||(i=e.content.appendChild(document.createElement("span"))),i.setAttribute("cm-marker",r.id)),i&&(e.cm.display.input.setUneditable(i),e.content.appendChild(i)),e.pos+=t,e.trailingSpace=!1}function rr(e,t,r){var n=e.markedSpans,i=e.text,o=0;if(n)for(var a,s,l,c,u,f,d,h=i.length,p=0,m=1,g="",v=0;;){if(v==p){l=c=u=f=s="",d=null,v=1/0;for(var y=[],b=void 0,x=0;x<n.length;++x){var w=n[x],k=w.marker;"bookmark"==k.type&&w.from==p&&k.widgetNode?y.push(k):w.from<=p&&(null==w.to||w.to>p||k.collapsed&&w.to==p&&w.from==p)?(null!=w.to&&w.to!=p&&v>w.to&&(v=w.to,c=""),k.className&&(l+=" "+k.className),k.css&&(s=(s?s+";":"")+k.css),k.startStyle&&w.from==p&&(u+=" "+k.startStyle),k.endStyle&&w.to==v&&(b||(b=[])).push(k.endStyle,w.to),k.title&&!f&&(f=k.title),k.collapsed&&(!d||Re(d.marker,k)<0)&&(d=w)):w.from>p&&v>w.from&&(v=w.from)}if(b)for(var C=0;C<b.length;C+=2)b[C+1]==v&&(c+=" "+b[C]);if(!d||d.from==p)for(var S=0;S<y.length;++S)tr(t,0,y[S]);if(d&&(d.from||0)==p){if(tr(t,(null==d.to?h+1:d.to)-p,d.marker,null==d.from),null==d.to)return;d.to==p&&(d=!1)}}if(h<=p)break;for(var _=Math.min(h,v);;){if(g){var L=p+g.length;if(!d){var M=_<L?g.slice(0,_-p):g;t.addToken(t,M,a?a+l:l,u,p+M.length==v?c:"",f,s)}if(_<=L){g=g.slice(_-p),p=_;break}p=L,u=""}g=i.slice(o,o=r[m++]),a=Yt(r[m++],t.cm.options)}}else for(var T=1;T<r.length;T+=2)t.addToken(t,i.slice(o,o=r[T]),Yt(r[T+1],t.cm.options))}function nr(e,t,r){this.line=t,this.rest=function(e){for(var t,r;t=ze(e);)e=t.find(1,!0).line,(r||(r=[])).push(e);return r}(t),this.size=this.rest?de(X(this.rest))-r+1:1,this.node=this.text=null,this.hidden=Ue(e,t)}function ir(e,t,r){for(var n,i=[],o=t;o<r;o=n){var a=new nr(e.doc,le(e.doc,o),o);n=o+a.size,i.push(a)}return i}var or=null;var ar=null;function sr(e,t){var r=rt(e,t);if(r.length){var n,i=Array.prototype.slice.call(arguments,2);or?n=or.delayedCallbacks:ar?n=ar:(n=ar=[],setTimeout(lr,0));for(var o=function(e){n.push(function(){return r[e].apply(null,i)})},a=0;a<r.length;++a)o(a)}}function lr(){var e=ar;ar=null;for(var t=0;t<e.length;++t)e[t]()}function cr(e,t,r,n){for(var i=0;i<t.changes.length;i++){var o=t.changes[i];"text"==o?dr(e,t):"gutter"==o?pr(e,t,r,n):"class"==o?hr(e,t):"widget"==o&&mr(e,t,n)}t.changes=null}function ur(e){return e.node==e.text&&(e.node=O("div",null,null,"position: relative"),e.text.parentNode&&e.text.parentNode.replaceChild(e.node,e.text),e.node.appendChild(e.text),w&&k<8&&(e.node.style.zIndex=2)),e.node}function fr(e,t){var r=e.display.externalMeasured;return r&&r.line==t.line?(e.display.externalMeasured=null,t.measure=r.measure,r.built):Qt(e,t)}function dr(e,t){var r=t.text.className,n=fr(e,t);t.text==t.node&&(t.node=n.pre),t.text.parentNode.replaceChild(n.pre,t.text),t.text=n.pre,n.bgClass!=t.bgClass||n.textClass!=t.textClass?(t.bgClass=n.bgClass,t.textClass=n.textClass,hr(e,t)):r&&(t.text.className=r)}function hr(e,t){!function(e,t){var r=t.bgClass?t.bgClass+" "+(t.line.bgClass||""):t.line.bgClass;if(r&&(r+=" CodeMirror-linebackground"),t.background)r?t.background.className=r:(t.background.parentNode.removeChild(t.background),t.background=null);else if(r){var n=ur(t);t.background=n.insertBefore(O("div",null,r),n.firstChild),e.display.input.setUneditable(t.background)}}(e,t),t.line.wrapClass?ur(t).className=t.line.wrapClass:t.node!=t.text&&(t.node.className="");var r=t.textClass?t.textClass+" "+(t.line.textClass||""):t.line.textClass;t.text.className=r||""}function pr(e,t,r,n){if(t.gutter&&(t.node.removeChild(t.gutter),t.gutter=null),t.gutterBackground&&(t.node.removeChild(t.gutterBackground),t.gutterBackground=null),t.line.gutterClass){var i=ur(t);t.gutterBackground=O("div",null,"CodeMirror-gutter-background "+t.line.gutterClass,"left: "+(e.options.fixedGutter?n.fixedPos:-n.gutterTotalWidth)+"px; width: "+n.gutterTotalWidth+"px"),e.display.input.setUneditable(t.gutterBackground),i.insertBefore(t.gutterBackground,t.text)}var o=t.line.gutterMarkers;if(e.options.lineNumbers||o){var a=ur(t),s=t.gutter=O("div",null,"CodeMirror-gutter-wrapper","left: "+(e.options.fixedGutter?n.fixedPos:-n.gutterTotalWidth)+"px");if(e.display.input.setUneditable(s),a.insertBefore(s,t.text),t.line.gutterClass&&(s.className+=" "+t.line.gutterClass),!e.options.lineNumbers||o&&o["CodeMirror-linenumbers"]||(t.lineNumber=s.appendChild(O("div",me(e.options,r),"CodeMirror-linenumber CodeMirror-gutter-elt","left: "+n.gutterLeft["CodeMirror-linenumbers"]+"px; width: "+e.display.lineNumInnerWidth+"px"))),o)for(var l=0;l<e.options.gutters.length;++l){var c=e.options.gutters[l],u=o.hasOwnProperty(c)&&o[c];u&&s.appendChild(O("div",[u],"CodeMirror-gutter-elt","left: "+n.gutterLeft[c]+"px; width: "+n.gutterWidth[c]+"px"))}}}function mr(e,t,r){t.alignable&&(t.alignable=null);for(var n=t.node.firstChild,i=void 0;n;n=i)i=n.nextSibling,"CodeMirror-linewidget"==n.className&&t.node.removeChild(n);gr(e,t,r)}function gr(e,t,r){if(vr(e,t.line,t,r,!0),t.rest)for(var n=0;n<t.rest.length;n++)vr(e,t.rest[n],t,r,!1)}function vr(e,t,r,n,i){if(t.widgets)for(var o=ur(r),a=0,s=t.widgets;a<s.length;++a){var l=s[a],c=O("div",[l.node],"CodeMirror-linewidget");l.handleMouseEvents||c.setAttribute("cm-ignore-events","true"),yr(l,c,r,n),e.display.input.setUneditable(c),i&&l.above?o.insertBefore(c,r.gutter||r.text):o.appendChild(c),sr(l,"redraw")}}function yr(e,t,r,n){if(e.noHScroll){(r.alignable||(r.alignable=[])).push(t);var i=n.wrapperWidth;t.style.left=n.fixedPos+"px",e.coverGutter||(i-=n.gutterTotalWidth,t.style.paddingLeft=n.gutterTotalWidth+"px"),t.style.width=i+"px"}e.coverGutter&&(t.style.zIndex=5,t.style.position="relative",e.noHScroll||(t.style.marginLeft=-n.gutterTotalWidth+"px"))}function br(e){if(null!=e.height)return e.height;var t=e.doc.cm;if(!t)return 0;if(!E(document.body,e.node)){var r="position: relative;";e.coverGutter&&(r+="margin-left: -"+t.display.gutters.offsetWidth+"px;"),e.noHScroll&&(r+="width: "+t.display.wrapper.clientWidth+"px;"),T(t.display.measure,O("div",[e.node],null,r))}return e.height=e.node.parentNode.offsetHeight}function xr(e,t){for(var r=ht(t);r!=e.wrapper;r=r.parentNode)if(!r||1==r.nodeType&&"true"==r.getAttribute("cm-ignore-events")||r.parentNode==e.sizer&&r!=e.mover)return!0}function wr(e){return e.lineSpace.offsetTop}function kr(e){return e.mover.offsetHeight-e.lineSpace.offsetHeight}function Cr(e){if(e.cachedPaddingH)return e.cachedPaddingH;var t=T(e.measure,O("pre","x")),r=window.getComputedStyle?window.getComputedStyle(t):t.currentStyle,n={left:parseInt(r.paddingLeft),right:parseInt(r.paddingRight)};return isNaN(n.left)||isNaN(n.right)||(e.cachedPaddingH=n),n}function Sr(e){return q-e.display.nativeBarWidth}function _r(e){return e.display.scroller.clientWidth-Sr(e)-e.display.barWidth}function Lr(e){return e.display.scroller.clientHeight-Sr(e)-e.display.barHeight}function Mr(e,t,r){if(e.line==t)return{map:e.measure.map,cache:e.measure.cache};for(var n=0;n<e.rest.length;n++)if(e.rest[n]==t)return{map:e.measure.maps[n],cache:e.measure.caches[n]};for(var i=0;i<e.rest.length;i++)if(de(e.rest[i])>r)return{map:e.measure.maps[i],cache:e.measure.caches[i],before:!0}}function Tr(e,t,r,n){return Er(e,Or(e,t),r,n)}function Ar(e,t){if(t>=e.display.viewFrom&&t<e.display.viewTo)return e.display.view[sn(e,t)];var r=e.display.externalMeasured;return r&&t>=r.lineN&&t<r.lineN+r.size?r:void 0}function Or(e,t){var r=de(t),n=Ar(e,r);n&&!n.text?n=null:n&&n.changes&&(cr(e,n,r,tn(e)),e.curOp.forceUpdate=!0),n||(n=function(e,t){var r=de(t=He(t)),n=e.display.externalMeasured=new nr(e.doc,t,r);n.lineN=r;var i=n.built=Qt(e,n);return n.text=i.pre,T(e.display.lineMeasure,i.pre),n}(e,t));var i=Mr(n,t,r);return{line:t,view:n,rect:null,map:i.map,cache:i.cache,before:i.before,hasHeights:!1}}function Er(e,t,r,n,i){t.before&&(r=-1);var o,a=r+(n||"");return t.cache.hasOwnProperty(a)?o=t.cache[a]:(t.rect||(t.rect=t.view.text.getBoundingClientRect()),t.hasHeights||(!function(e,t,r){var n=e.options.lineWrapping,i=n&&_r(e);if(!t.measure.heights||n&&t.measure.width!=i){var o=t.measure.heights=[];if(n){t.measure.width=i;for(var a=t.text.firstChild.getClientRects(),s=0;s<a.length-1;s++){var l=a[s],c=a[s+1];2<Math.abs(l.bottom-c.bottom)&&o.push((l.bottom+c.top)/2-r.top)}}o.push(r.bottom-r.top)}}(e,t.view,t.rect),t.hasHeights=!0),(o=function(e,t,r,n){var i,o=Pr(t.map,r,n),a=o.node,s=o.start,l=o.end,c=o.collapse;if(3==a.nodeType){for(var u=0;u<4;u++){for(;s&&ie(t.line.text.charAt(o.coverStart+s));)--s;for(;o.coverStart+l<o.coverEnd&&ie(t.line.text.charAt(o.coverStart+l));)++l;if((i=w&&k<9&&0==s&&l==o.coverEnd-o.coverStart?a.parentNode.getBoundingClientRect():Br(_(a,s,l).getClientRects(),n)).left||i.right||0==s)break;l=s,s-=1,c="right"}w&&k<11&&(i=function(e,t){if(!window.screen||null==screen.logicalXDPI||screen.logicalXDPI==screen.deviceXDPI||!function(e){if(null!=St)return St;var t=T(e,O("span","x")),r=t.getBoundingClientRect(),n=_(t,0,1).getBoundingClientRect();return St=1<Math.abs(r.left-n.left)}(e))return t;var r=screen.logicalXDPI/screen.deviceXDPI,n=screen.logicalYDPI/screen.deviceYDPI;return{left:t.left*r,right:t.right*r,top:t.top*n,bottom:t.bottom*n}}(e.display.measure,i))}else{var f;0<s&&(c=n="right"),i=e.options.lineWrapping&&1<(f=a.getClientRects()).length?f["right"==n?f.length-1:0]:a.getBoundingClientRect()}if(w&&k<9&&!s&&(!i||!i.left&&!i.right)){var d=a.parentNode.getClientRects()[0];i=d?{left:d.left,right:d.left+en(e.display),top:d.top,bottom:d.bottom}:Ir}for(var h=i.top-t.rect.top,p=i.bottom-t.rect.top,m=(h+p)/2,g=t.view.measure.heights,v=0;v<g.length-1&&!(m<g[v]);v++);var y=v?g[v-1]:0,b=g[v],x={left:("right"==c?i.right:i.left)-t.rect.left,right:("left"==c?i.left:i.right)-t.rect.left,top:y,bottom:b};i.left||i.right||(x.bogus=!0);e.options.singleCursorHeightPerLine||(x.rtop=h,x.rbottom=p);return x}(e,t,r,n)).bogus||(t.cache[a]=o)),{left:o.left,right:o.right,top:i?o.rtop:o.top,bottom:i?o.rbottom:o.bottom}}var Nr,Ir={left:0,right:0,top:0,bottom:0};function Pr(e,t,r){for(var n,i,o,a,s,l,c=0;c<e.length;c+=3)if(s=e[c],l=e[c+1],t<s?(i=0,o=1,a="left"):t<l?o=(i=t-s)+1:(c==e.length-3||t==l&&e[c+3]>t)&&(i=(o=l-s)-1,l<=t&&(a="right")),null!=i){if(n=e[c+2],s==l&&r==(n.insertLeft?"left":"right")&&(a=r),"left"==r&&0==i)for(;c&&e[c-2]==e[c-3]&&e[c-1].insertLeft;)n=e[2+(c-=3)],a="left";if("right"==r&&i==l-s)for(;c<e.length-3&&e[c+3]==e[c+4]&&!e[c+5].insertLeft;)n=e[(c+=3)+2],a="right";break}return{node:n,start:i,end:o,collapse:a,coverStart:s,coverEnd:l}}function Br(e,t){var r=Ir;if("left"==t)for(var n=0;n<e.length&&(r=e[n]).left==r.right;n++);else for(var i=e.length-1;0<=i&&(r=e[i]).left==r.right;i--);return r}function Rr(e){if(e.measure&&(e.measure.cache={},e.measure.heights=null,e.rest))for(var t=0;t<e.rest.length;t++)e.measure.caches[t]={}}function Dr(e){e.display.externalMeasure=null,M(e.display.lineMeasure);for(var t=0;t<e.display.view.length;t++)Rr(e.display.view[t])}function Fr(e){Dr(e),e.display.cachedCharWidth=e.display.cachedTextHeight=e.display.cachedPaddingH=null,e.options.lineWrapping||(e.display.maxLineChanged=!0),e.display.lineNumChars=null}function zr(){return a&&f?-(document.body.getBoundingClientRect().left-parseInt(getComputedStyle(document.body).marginLeft)):window.pageXOffset||(document.documentElement||document.body).scrollLeft}function Wr(){return a&&f?-(document.body.getBoundingClientRect().top-parseInt(getComputedStyle(document.body).marginTop)):window.pageYOffset||(document.documentElement||document.body).scrollTop}function qr(e){var t=0;if(e.widgets)for(var r=0;r<e.widgets.length;++r)e.widgets[r].above&&(t+=br(e.widgets[r]));return t}function Hr(e,t,r,n,i){if(!i){var o=qr(t);r.top+=o,r.bottom+=o}if("line"==n)return r;n||(n="local");var a=$e(t);if("local"==n?a+=wr(e.display):a-=e.display.viewOffset,"page"==n||"window"==n){var s=e.display.lineSpace.getBoundingClientRect();a+=s.top+("window"==n?0:Wr());var l=s.left+("window"==n?0:zr());r.left+=l,r.right+=l}return r.top+=a,r.bottom+=a,r}function jr(e,t,r){if("div"==r)return t;var n=t.left,i=t.top;if("page"==r)n-=zr(),i-=Wr();else if("local"==r||!r){var o=e.display.sizer.getBoundingClientRect();n+=o.left,i+=o.top}var a=e.display.lineSpace.getBoundingClientRect();return{left:n-a.left,top:i-a.top}}function Kr(e,t,r,n,i){return n||(n=le(e.doc,t.line)),Hr(e,n,Tr(e,n,t.ch,i),r)}function Ur(n,e,i,o,a,s){function l(e,t){var r=Er(n,a,e,t?"right":"left",s);return t?r.left=r.right:r.right=r.left,Hr(n,o,r,i)}o=o||le(n.doc,e.line),a||(a=Or(n,o));var c=Ze(o,n.doc.direction),t=e.ch,r=e.sticky;if(t>=o.text.length?(t=o.text.length,r="before"):t<=0&&(t=0,r="after"),!c)return l("before"==r?t-1:t,"before"==r);function u(e,t,r){return l(r?e-1:e,1==c[t].level!=r)}var f=Qe(c,t,r),d=Ye,h=u(t,f,"before"==r);return null!=d&&(h.other=u(t,d,"before"!=r)),h}function Vr(e,t){var r=0;t=Ce(e.doc,t),e.options.lineWrapping||(r=en(e.display)*t.ch);var n=le(e.doc,t.line),i=$e(n)+wr(e.display);return{left:r,right:r,top:i,bottom:i+n.height}}function $r(e,t,r,n,i){var o=ge(e,t,r);return o.xRel=i,n&&(o.outside=!0),o}function Gr(e,t,r){var n=e.doc;if((r+=e.display.viewOffset)<0)return $r(n.first,0,null,!0,-1);var i=he(n,r),o=n.first+n.size-1;if(o<i)return $r(n.first+n.size-1,le(n,o).text.length,null,!0,1);t<0&&(t=0);for(var a=le(n,i);;){var s=Jr(e,a,i,t,r),l=We(a,s.ch+(0<s.xRel?1:0));if(!l)return s;var c=l.find(1);if(c.line==i)return c;a=le(n,i=c.line)}}function Xr(t,e,r,n){n-=qr(e);var i=e.text.length,o=ae(function(e){return Er(t,r,e-1).bottom<=n},i,0);return{begin:o,end:i=ae(function(e){return Er(t,r,e).top>n},o,i)}}function Yr(e,t,r,n){return r||(r=Or(e,t)),Xr(e,t,r,Hr(e,t,Er(e,r,n),"line").top)}function Qr(e,t,r,n){return!(e.bottom<=r)&&(e.top>r||(n?e.left:e.right)>t)}function Jr(r,e,t,n,i){i-=$e(e);var o=Or(r,e),a=qr(e),s=0,l=e.text.length,c=!0,u=Ze(e,r.doc.direction);if(u){var f=(r.options.lineWrapping?function(e,t,r,n,i,o,a){var s=Xr(e,t,n,a),l=s.begin,c=s.end;/\s/.test(t.text.charAt(c-1))&&c--;for(var u=null,f=null,d=0;d<i.length;d++){var h=i[d];if(!(h.from>=c||h.to<=l)){var p=1!=h.level,m=Er(e,n,p?Math.min(c,h.to)-1:Math.max(l,h.from)).right,g=m<o?o-m+1e9:m-o;(!u||g<f)&&(u=h,f=g)}}u||(u=i[i.length-1]);u.from<l&&(u={from:l,to:u.to,level:u.level});u.to>c&&(u={from:u.from,to:c,level:u.level});return u}:function(n,i,o,a,s,l,c){var e=ae(function(e){var t=s[e],r=1!=t.level;return Qr(Ur(n,ge(o,r?t.to:t.from,r?"before":"after"),"line",i,a),l,c,!0)},0,s.length-1),t=s[e];if(0<e){var r=1!=t.level,u=Ur(n,ge(o,r?t.from:t.to,r?"after":"before"),"line",i,a);Qr(u,l,c,!0)&&u.top>c&&(t=s[e-1])}return t})(r,e,t,o,u,n,i);s=(c=1!=f.level)?f.from:f.to-1,l=c?f.to:f.from-1}var d,h,p=null,m=null,g=ae(function(e){var t=Er(r,o,e);return t.top+=a,t.bottom+=a,!!Qr(t,n,i,!1)&&(t.top<=i&&t.left<=n&&(p=e,m=t),!0)},s,l),v=!1;if(m){var y=n-m.left<m.right-n,b=y==c;g=p+(b?0:1),h=b?"after":"before",d=y?m.left:m.right}else{c||g!=l&&g!=s||g++,h=0==g?"after":g==e.text.length?"before":Er(r,o,g-(c?1:0)).bottom+a<=i==c?"after":"before";var x=Ur(r,ge(t,g,h),"line",e,o);d=x.left,v=i<x.top||i>=x.bottom}return $r(t,g=oe(e.text,g,1),h,v,n-d)}function Zr(e){if(null!=e.cachedTextHeight)return e.cachedTextHeight;if(null==Nr){Nr=O("pre");for(var t=0;t<49;++t)Nr.appendChild(document.createTextNode("x")),Nr.appendChild(O("br"));Nr.appendChild(document.createTextNode("x"))}T(e.measure,Nr);var r=Nr.offsetHeight/50;return 3<r&&(e.cachedTextHeight=r),M(e.measure),r||1}function en(e){if(null!=e.cachedCharWidth)return e.cachedCharWidth;var t=O("span","xxxxxxxxxx"),r=O("pre",[t]);T(e.measure,r);var n=t.getBoundingClientRect(),i=(n.right-n.left)/10;return 2<i&&(e.cachedCharWidth=i),i||10}function tn(e){for(var t=e.display,r={},n={},i=t.gutters.clientLeft,o=t.gutters.firstChild,a=0;o;o=o.nextSibling,++a)r[e.options.gutters[a]]=o.offsetLeft+o.clientLeft+i,n[e.options.gutters[a]]=o.clientWidth;return{fixedPos:rn(t),gutterTotalWidth:t.gutters.offsetWidth,gutterLeft:r,gutterWidth:n,wrapperWidth:t.wrapper.clientWidth}}function rn(e){return e.scroller.getBoundingClientRect().left-e.sizer.getBoundingClientRect().left}function nn(n){var i=Zr(n.display),o=n.options.lineWrapping,a=o&&Math.max(5,n.display.scroller.clientWidth/en(n.display)-3);return function(e){if(Ue(n.doc,e))return 0;var t=0;if(e.widgets)for(var r=0;r<e.widgets.length;r++)e.widgets[r].height&&(t+=e.widgets[r].height);return o?t+(Math.ceil(e.text.length/a)||1)*i:t+i}}function on(e){var t=e.doc,r=nn(e);t.iter(function(e){var t=r(e);t!=e.height&&fe(e,t)})}function an(e,t,r,n){var i=e.display;if(!r&&"true"==ht(t).getAttribute("cm-not-content"))return null;var o,a,s=i.lineSpace.getBoundingClientRect();try{o=t.clientX-s.left,a=t.clientY-s.top}catch(t){return null}var l,c=Gr(e,o,a);if(n&&1==c.xRel&&(l=le(e.doc,c.line).text).length==c.ch){var u=F(l,l.length,e.options.tabSize)-l.length;c=ge(c.line,Math.max(0,Math.round((o-Cr(e.display).left)/en(e.display))-u))}return c}function sn(e,t){if(t>=e.display.viewTo)return null;if((t-=e.display.viewFrom)<0)return null;for(var r=e.display.view,n=0;n<r.length;n++)if((t-=r[n].size)<0)return n}function ln(e){e.display.input.showSelection(e.display.input.prepareSelection())}function cn(e,t){void 0===t&&(t=!0);for(var r=e.doc,n={},i=n.cursors=document.createDocumentFragment(),o=n.selection=document.createDocumentFragment(),a=0;a<r.sel.ranges.length;a++)if(t||a!=r.sel.primIndex){var s=r.sel.ranges[a];if(!(s.from().line>=e.display.viewTo||s.to().line<e.display.viewFrom)){var l=s.empty();(l||e.options.showCursorWhenSelecting)&&un(e,s.head,i),l||dn(e,s,o)}}return n}function un(e,t,r){var n=Ur(e,t,"div",null,null,!e.options.singleCursorHeightPerLine),i=r.appendChild(O("div"," ","CodeMirror-cursor"));if(i.style.left=n.left+"px",i.style.top=n.top+"px",i.style.height=Math.max(0,n.bottom-n.top)*e.options.cursorHeight+"px",n.other){var o=r.appendChild(O("div"," ","CodeMirror-cursor CodeMirror-secondarycursor"));o.style.display="",o.style.left=n.other.left+"px",o.style.top=n.other.top+"px",o.style.height=.85*(n.other.bottom-n.other.top)+"px"}}function fn(e,t){return e.top-t.top||e.left-t.left}function dn(a,e,t){var r=a.display,n=a.doc,i=document.createDocumentFragment(),o=Cr(a.display),L=o.left,M=Math.max(r.sizerWidth,_r(a)-r.sizer.offsetLeft)-o.right,T="ltr"==n.direction;function A(e,t,r,n){t<0&&(t=0),t=Math.round(t),n=Math.round(n),i.appendChild(O("div",null,"CodeMirror-selected","position: absolute; left: "+e+"px;\n top: "+t+"px; width: "+(null==r?M-e:r)+"px;\n height: "+(n-t)+"px"))}function s(r,y,b){var x,w,o=le(n,r),k=o.text.length;function C(e,t){return Kr(a,ge(r,e),"div",o,t)}function S(e,t,r){var n=Yr(a,o,null,e),i="ltr"==t==("after"==r)?"left":"right";return C("after"==r?n.begin:n.end-(/\s/.test(o.text.charAt(n.end-1))?2:1),i)[i]}var _=Ze(o,n.direction);return function(e,t,r,n){if(!e)return n(t,r,"ltr",0);for(var i=!1,o=0;o<e.length;++o){var a=e[o];(a.from<r&&a.to>t||t==r&&a.to==t)&&(n(Math.max(a.from,t),Math.min(a.to,r),1==a.level?"rtl":"ltr",o),i=!0)}i||n(t,r,"ltr")}(_,y||0,null==b?k:b,function(e,t,r,n){var i="ltr"==r,o=C(e,i?"left":"right"),a=C(t-1,i?"right":"left"),s=null==y&&0==e,l=null==b&&t==k,c=0==n,u=!_||n==_.length-1;if(a.top-o.top<=3){var f=(T?l:s)&&u,d=(T?s:l)&&c?L:(i?o:a).left,h=f?M:(i?a:o).right;A(d,o.top,h-d,o.bottom)}else{var p,m,g,v;v=i?(p=T&&s&&c?L:o.left,m=T?M:S(e,r,"before"),g=T?L:S(t,r,"after"),T&&l&&u?M:a.right):(p=T?S(e,r,"before"):L,m=!T&&s&&c?M:o.right,g=!T&&l&&u?L:a.left,T?S(t,r,"after"):M),A(p,o.top,m-p,o.bottom),o.bottom<a.top&&A(L,o.bottom,null,a.top),A(g,a.top,v-g,a.bottom)}(!x||fn(o,x)<0)&&(x=o),fn(a,x)<0&&(x=a),(!w||fn(o,w)<0)&&(w=o),fn(a,w)<0&&(w=a)}),{start:x,end:w}}var l=e.from(),c=e.to();if(l.line==c.line)s(l.line,l.ch,c.ch);else{var u=le(n,l.line),f=le(n,c.line),d=He(u)==He(f),h=s(l.line,l.ch,d?u.text.length+1:null).end,p=s(c.line,d?0:null,c.ch).start;d&&(h.top<p.top-2?(A(h.right,h.top,null,h.bottom),A(L,p.top,p.left,p.bottom)):A(h.right,h.top,p.left-h.right,h.bottom)),h.bottom<p.top&&A(L,h.bottom,null,p.top)}t.appendChild(i)}function hn(e){if(e.state.focused){var t=e.display;clearInterval(t.blinker);var r=!0;t.cursorDiv.style.visibility="",0<e.options.cursorBlinkRate?t.blinker=setInterval(function(){return t.cursorDiv.style.visibility=(r=!r)?"":"hidden"},e.options.cursorBlinkRate):e.options.cursorBlinkRate<0&&(t.cursorDiv.style.visibility="hidden")}}function pn(e){e.state.focused||(e.display.input.focus(),gn(e))}function mn(e){e.state.delayingBlurEvent=!0,setTimeout(function(){e.state.delayingBlurEvent&&(e.state.delayingBlurEvent=!1,vn(e))},100)}function gn(e,t){e.state.delayingBlurEvent&&(e.state.delayingBlurEvent=!1),"nocursor"!=e.options.readOnly&&(e.state.focused||(it(e,"focus",e,t),e.state.focused=!0,I(e.display.wrapper,"CodeMirror-focused"),e.curOp||e.display.selForContextMenu==e.doc.sel||(e.display.input.reset(),b&&setTimeout(function(){return e.display.input.reset(!0)},20)),e.display.input.receivedFocus()),hn(e))}function vn(e,t){e.state.delayingBlurEvent||(e.state.focused&&(it(e,"blur",e,t),e.state.focused=!1,L(e.display.wrapper,"CodeMirror-focused")),clearInterval(e.display.blinker),setTimeout(function(){e.state.focused||(e.display.shift=!1)},150))}function yn(e){for(var t=e.display,r=t.lineDiv.offsetTop,n=0;n<t.view.length;n++){var i=t.view[n],o=void 0;if(!i.hidden){if(w&&k<8){var a=i.node.offsetTop+i.node.offsetHeight;o=a-r,r=a}else{var s=i.node.getBoundingClientRect();o=s.bottom-s.top}var l=i.line.height-o;if(o<2&&(o=Zr(t)),(.005<l||l<-.005)&&(fe(i.line,o),bn(i.line),i.rest))for(var c=0;c<i.rest.length;c++)bn(i.rest[c])}}}function bn(e){if(e.widgets)for(var t=0;t<e.widgets.length;++t){var r=e.widgets[t],n=r.node.parentNode;n&&(r.height=n.offsetHeight)}}function xn(e,t,r){var n=r&&null!=r.top?Math.max(0,r.top):e.scroller.scrollTop;n=Math.floor(n-wr(e));var i=r&&null!=r.bottom?r.bottom:n+e.wrapper.clientHeight,o=he(t,n),a=he(t,i);if(r&&r.ensure){var s=r.ensure.from.line,l=r.ensure.to.line;s<o?a=he(t,$e(le(t,o=s))+e.wrapper.clientHeight):Math.min(l,t.lastLine())>=a&&(o=he(t,$e(le(t,l))-e.wrapper.clientHeight),a=l)}return{from:o,to:Math.max(a,o+1)}}function wn(e){var t=e.display,r=t.view;if(t.alignWidgets||t.gutters.firstChild&&e.options.fixedGutter){for(var n=rn(t)-t.scroller.scrollLeft+e.doc.scrollLeft,i=t.gutters.offsetWidth,o=n+"px",a=0;a<r.length;a++)if(!r[a].hidden){e.options.fixedGutter&&(r[a].gutter&&(r[a].gutter.style.left=o),r[a].gutterBackground&&(r[a].gutterBackground.style.left=o));var s=r[a].alignable;if(s)for(var l=0;l<s.length;l++)s[l].style.left=o}e.options.fixedGutter&&(t.gutters.style.left=n+i+"px")}}function kn(e){if(!e.options.lineNumbers)return!1;var t=e.doc,r=me(e.options,t.first+t.size-1),n=e.display;if(r.length==n.lineNumChars)return!1;var i=n.measure.appendChild(O("div",[O("div",r)],"CodeMirror-linenumber CodeMirror-gutter-elt")),o=i.firstChild.offsetWidth,a=i.offsetWidth-o;return n.lineGutter.style.width="",n.lineNumInnerWidth=Math.max(o,n.lineGutter.offsetWidth-a)+1,n.lineNumWidth=n.lineNumInnerWidth+a,n.lineNumChars=n.lineNumInnerWidth?r.length:-1,n.lineGutter.style.width=n.lineNumWidth+"px",si(e),!0}function Cn(e,t){var r=e.display,n=Zr(e.display);t.top<0&&(t.top=0);var i=e.curOp&&null!=e.curOp.scrollTop?e.curOp.scrollTop:r.scroller.scrollTop,o=Lr(e),a={};t.bottom-t.top>o&&(t.bottom=t.top+o);var s=e.doc.height+kr(r),l=t.top<n,c=t.bottom>s-n;if(t.top<i)a.scrollTop=l?0:t.top;else if(t.bottom>i+o){var u=Math.min(t.top,(c?s:t.bottom)-o);u!=i&&(a.scrollTop=u)}var f=e.curOp&&null!=e.curOp.scrollLeft?e.curOp.scrollLeft:r.scroller.scrollLeft,d=_r(e)-(e.options.fixedGutter?r.gutters.offsetWidth:0),h=t.right-t.left>d;return h&&(t.right=t.left+d),t.left<10?a.scrollLeft=0:t.left<f?a.scrollLeft=Math.max(0,t.left-(h?0:10)):t.right>d+f-3&&(a.scrollLeft=t.right+(h?0:10)-d),a}function Sn(e,t){null!=t&&(Mn(e),e.curOp.scrollTop=(null==e.curOp.scrollTop?e.doc.scrollTop:e.curOp.scrollTop)+t)}function _n(e){Mn(e);var t=e.getCursor();e.curOp.scrollToPos={from:t,to:t,margin:e.options.cursorScrollMargin}}function Ln(e,t,r){null==t&&null==r||Mn(e),null!=t&&(e.curOp.scrollLeft=t),null!=r&&(e.curOp.scrollTop=r)}function Mn(e){var t=e.curOp.scrollToPos;t&&(e.curOp.scrollToPos=null,Tn(e,Vr(e,t.from),Vr(e,t.to),t.margin))}function Tn(e,t,r,n){var i=Cn(e,{left:Math.min(t.left,r.left),top:Math.min(t.top,r.top)-n,right:Math.max(t.right,r.right),bottom:Math.max(t.bottom,r.bottom)+n});Ln(e,i.scrollLeft,i.scrollTop)}function An(e,t){Math.abs(e.doc.scrollTop-t)<2||(m||ai(e,{top:t}),On(e,t,!0),m&&ai(e),ti(e,100))}function On(e,t,r){t=Math.min(e.display.scroller.scrollHeight-e.display.scroller.clientHeight,t),(e.display.scroller.scrollTop!=t||r)&&(e.doc.scrollTop=t,e.display.scrollbars.setScrollTop(t),e.display.scroller.scrollTop!=t&&(e.display.scroller.scrollTop=t))}function En(e,t,r,n){t=Math.min(t,e.display.scroller.scrollWidth-e.display.scroller.clientWidth),(r?t==e.doc.scrollLeft:Math.abs(e.doc.scrollLeft-t)<2)&&!n||(e.doc.scrollLeft=t,wn(e),e.display.scroller.scrollLeft!=t&&(e.display.scroller.scrollLeft=t),e.display.scrollbars.setScrollLeft(t))}function Nn(e){var t=e.display,r=t.gutters.offsetWidth,n=Math.round(e.doc.height+kr(e.display));return{clientHeight:t.scroller.clientHeight,viewHeight:t.wrapper.clientHeight,scrollWidth:t.scroller.scrollWidth,clientWidth:t.scroller.clientWidth,viewWidth:t.wrapper.clientWidth,barLeft:e.options.fixedGutter?r:0,docHeight:n,scrollHeight:n+Sr(e)+t.barHeight,nativeBarWidth:t.nativeBarWidth,gutterWidth:r}}var In=function(e,t,r){this.cm=r;var n=this.vert=O("div",[O("div",null,null,"min-width: 1px")],"CodeMirror-vscrollbar"),i=this.horiz=O("div",[O("div",null,null,"height: 100%; min-height: 1px")],"CodeMirror-hscrollbar");n.tabIndex=i.tabIndex=-1,e(n),e(i),tt(n,"scroll",function(){n.clientHeight&&t(n.scrollTop,"vertical")}),tt(i,"scroll",function(){i.clientWidth&&t(i.scrollLeft,"horizontal")}),this.checkedZeroWidth=!1,w&&k<8&&(this.horiz.style.minHeight=this.vert.style.minWidth="18px")};In.prototype.update=function(e){var t=e.scrollWidth>e.clientWidth+1,r=e.scrollHeight>e.clientHeight+1,n=e.nativeBarWidth;if(r){this.vert.style.display="block",this.vert.style.bottom=t?n+"px":"0";var i=e.viewHeight-(t?n:0);this.vert.firstChild.style.height=Math.max(0,e.scrollHeight-e.clientHeight+i)+"px"}else this.vert.style.display="",this.vert.firstChild.style.height="0";if(t){this.horiz.style.display="block",this.horiz.style.right=r?n+"px":"0",this.horiz.style.left=e.barLeft+"px";var o=e.viewWidth-e.barLeft-(r?n:0);this.horiz.firstChild.style.width=Math.max(0,e.scrollWidth-e.clientWidth+o)+"px"}else this.horiz.style.display="",this.horiz.firstChild.style.width="0";return!this.checkedZeroWidth&&0<e.clientHeight&&(0==n&&this.zeroWidthHack(),this.checkedZeroWidth=!0),{right:r?n:0,bottom:t?n:0}},In.prototype.setScrollLeft=function(e){this.horiz.scrollLeft!=e&&(this.horiz.scrollLeft=e),this.disableHoriz&&this.enableZeroWidthBar(this.horiz,this.disableHoriz,"horiz")},In.prototype.setScrollTop=function(e){this.vert.scrollTop!=e&&(this.vert.scrollTop=e),this.disableVert&&this.enableZeroWidthBar(this.vert,this.disableVert,"vert")},In.prototype.zeroWidthHack=function(){var e=x&&!s?"12px":"18px";this.horiz.style.height=this.vert.style.width=e,this.horiz.style.pointerEvents=this.vert.style.pointerEvents="none",this.disableHoriz=new z,this.disableVert=new z},In.prototype.enableZeroWidthBar=function(r,n,i){r.style.pointerEvents="auto",n.set(1e3,function e(){var t=r.getBoundingClientRect();("vert"==i?document.elementFromPoint(t.right-1,(t.top+t.bottom)/2):document.elementFromPoint((t.right+t.left)/2,t.bottom-1))!=r?r.style.pointerEvents="none":n.set(1e3,e)})},In.prototype.clear=function(){var e=this.horiz.parentNode;e.removeChild(this.horiz),e.removeChild(this.vert)};var Pn=function(){};function Bn(e,t){t||(t=Nn(e));var r=e.display.barWidth,n=e.display.barHeight;Rn(e,t);for(var i=0;i<4&&r!=e.display.barWidth||n!=e.display.barHeight;i++)r!=e.display.barWidth&&e.options.lineWrapping&&yn(e),Rn(e,Nn(e)),r=e.display.barWidth,n=e.display.barHeight}function Rn(e,t){var r=e.display,n=r.scrollbars.update(t);r.sizer.style.paddingRight=(r.barWidth=n.right)+"px",r.sizer.style.paddingBottom=(r.barHeight=n.bottom)+"px",r.heightForcer.style.borderBottom=n.bottom+"px solid transparent",n.right&&n.bottom?(r.scrollbarFiller.style.display="block",r.scrollbarFiller.style.height=n.bottom+"px",r.scrollbarFiller.style.width=n.right+"px"):r.scrollbarFiller.style.display="",n.bottom&&e.options.coverGutterNextToScrollbar&&e.options.fixedGutter?(r.gutterFiller.style.display="block",r.gutterFiller.style.height=n.bottom+"px",r.gutterFiller.style.width=t.gutterWidth+"px"):r.gutterFiller.style.display=""}Pn.prototype.update=function(){return{bottom:0,right:0}},Pn.prototype.setScrollLeft=function(){},Pn.prototype.setScrollTop=function(){},Pn.prototype.clear=function(){};var Dn={native:In,null:Pn};function Fn(r){r.display.scrollbars&&(r.display.scrollbars.clear(),r.display.scrollbars.addClass&&L(r.display.wrapper,r.display.scrollbars.addClass)),r.display.scrollbars=new Dn[r.options.scrollbarStyle](function(e){r.display.wrapper.insertBefore(e,r.display.scrollbarFiller),tt(e,"mousedown",function(){r.state.focused&&setTimeout(function(){return r.display.input.focus()},0)}),e.setAttribute("cm-not-content","true")},function(e,t){"horizontal"==t?En(r,e):An(r,e)},r),r.display.scrollbars.addClass&&I(r.display.wrapper,r.display.scrollbars.addClass)}var zn=0;function Wn(e){var t;e.curOp={cm:e,viewChanged:!1,startHeight:e.doc.height,forceUpdate:!1,updateInput:null,typing:!1,changeObjs:null,cursorActivityHandlers:null,cursorActivityCalled:0,selectionChanged:!1,updateMaxLine:!1,scrollLeft:null,scrollTop:null,scrollToPos:null,focus:!1,id:++zn},t=e.curOp,or?or.ops.push(t):t.ownsGroup=or={ops:[t],delayedCallbacks:[]}}function qn(e){!function(e,t){var r=e.ownsGroup;if(r)try{!function(e){var t=e.delayedCallbacks,r=0;do{for(;r<t.length;r++)t[r].call(null);for(var n=0;n<e.ops.length;n++){var i=e.ops[n];if(i.cursorActivityHandlers)for(;i.cursorActivityCalled<i.cursorActivityHandlers.length;)i.cursorActivityHandlers[i.cursorActivityCalled++].call(null,i.cm)}}while(r<t.length)}(r)}finally{or=null,t(r)}}(e.curOp,function(e){for(var t=0;t<e.ops.length;t++)e.ops[t].cm.curOp=null;!function(e){for(var t=e.ops,r=0;r<t.length;r++)Hn(t[r]);for(var n=0;n<t.length;n++)(i=t[n]).updatedDisplay=i.mustUpdate&&ii(i.cm,i.update);var i;for(var o=0;o<t.length;o++)jn(t[o]);for(var a=0;a<t.length;a++)Kn(t[a]);for(var s=0;s<t.length;s++)Un(t[s])}(e)})}function Hn(e){var t,r,n=e.cm,i=n.display;!(r=(t=n).display).scrollbarsClipped&&r.scroller.offsetWidth&&(r.nativeBarWidth=r.scroller.offsetWidth-r.scroller.clientWidth,r.heightForcer.style.height=Sr(t)+"px",r.sizer.style.marginBottom=-r.nativeBarWidth+"px",r.sizer.style.borderRightWidth=Sr(t)+"px",r.scrollbarsClipped=!0),e.updateMaxLine&&Xe(n),e.mustUpdate=e.viewChanged||e.forceUpdate||null!=e.scrollTop||e.scrollToPos&&(e.scrollToPos.from.line<i.viewFrom||e.scrollToPos.to.line>=i.viewTo)||i.maxLineChanged&&n.options.lineWrapping,e.update=e.mustUpdate&&new ni(n,e.mustUpdate&&{top:e.scrollTop,ensure:e.scrollToPos},e.forceUpdate)}function jn(e){var t=e.cm,r=t.display;e.updatedDisplay&&yn(t),e.barMeasure=Nn(t),r.maxLineChanged&&!t.options.lineWrapping&&(e.adjustWidthTo=Tr(t,r.maxLine,r.maxLine.text.length).left+3,t.display.sizerWidth=e.adjustWidthTo,e.barMeasure.scrollWidth=Math.max(r.scroller.clientWidth,r.sizer.offsetLeft+e.adjustWidthTo+Sr(t)+t.display.barWidth),e.maxScrollLeft=Math.max(0,r.sizer.offsetLeft+e.adjustWidthTo-_r(t))),(e.updatedDisplay||e.selectionChanged)&&(e.preparedSelection=r.input.prepareSelection())}function Kn(e){var t=e.cm;null!=e.adjustWidthTo&&(t.display.sizer.style.minWidth=e.adjustWidthTo+"px",e.maxScrollLeft<t.doc.scrollLeft&&En(t,Math.min(t.display.scroller.scrollLeft,e.maxScrollLeft),!0),t.display.maxLineChanged=!1);var r=e.focus&&e.focus==N();e.preparedSelection&&t.display.input.showSelection(e.preparedSelection,r),(e.updatedDisplay||e.startHeight!=t.doc.height)&&Bn(t,e.barMeasure),e.updatedDisplay&&li(t,e.barMeasure),e.selectionChanged&&hn(t),t.state.focused&&e.updateInput&&t.display.input.reset(e.typing),r&&pn(e.cm)}function Un(e){var t=e.cm,r=t.display,n=t.doc;(e.updatedDisplay&&oi(t,e.update),null==r.wheelStartX||null==e.scrollTop&&null==e.scrollLeft&&!e.scrollToPos||(r.wheelStartX=r.wheelStartY=null),null!=e.scrollTop&&On(t,e.scrollTop,e.forceScroll),null!=e.scrollLeft&&En(t,e.scrollLeft,!0,!0),e.scrollToPos)&&function(e,t){if(!ot(e,"scrollCursorIntoView")){var r=e.display,n=r.sizer.getBoundingClientRect(),i=null;if(t.top+n.top<0?i=!0:t.bottom+n.top>(window.innerHeight||document.documentElement.clientHeight)&&(i=!1),null!=i&&!c){var o=O("div","​",null,"position: absolute;\n top: "+(t.top-r.viewOffset-wr(e.display))+"px;\n height: "+(t.bottom-t.top+Sr(e)+r.barHeight)+"px;\n left: "+t.left+"px; width: "+Math.max(2,t.right-t.left)+"px;");e.display.lineSpace.appendChild(o),o.scrollIntoView(i),e.display.lineSpace.removeChild(o)}}}(t,function(e,t,r,n){var i;null==n&&(n=0),e.options.lineWrapping||t!=r||(r="before"==(t=t.ch?ge(t.line,"before"==t.sticky?t.ch-1:t.ch,"after"):t).sticky?ge(t.line,t.ch+1,"before"):t);for(var o=0;o<5;o++){var a=!1,s=Ur(e,t),l=r&&r!=t?Ur(e,r):s,c=Cn(e,i={left:Math.min(s.left,l.left),top:Math.min(s.top,l.top)-n,right:Math.max(s.left,l.left),bottom:Math.max(s.bottom,l.bottom)+n}),u=e.doc.scrollTop,f=e.doc.scrollLeft;if(null!=c.scrollTop&&(An(e,c.scrollTop),1<Math.abs(e.doc.scrollTop-u)&&(a=!0)),null!=c.scrollLeft&&(En(e,c.scrollLeft),1<Math.abs(e.doc.scrollLeft-f)&&(a=!0)),!a)break}return i}(t,Ce(n,e.scrollToPos.from),Ce(n,e.scrollToPos.to),e.scrollToPos.margin));var i=e.maybeHiddenMarkers,o=e.maybeUnhiddenMarkers;if(i)for(var a=0;a<i.length;++a)i[a].lines.length||it(i[a],"hide");if(o)for(var s=0;s<o.length;++s)o[s].lines.length&&it(o[s],"unhide");r.wrapper.offsetHeight&&(n.scrollTop=t.display.scroller.scrollTop),e.changeObjs&&it(t,"changes",t,e.changeObjs),e.update&&e.update.finish()}function Vn(e,t){if(e.curOp)return t();Wn(e);try{return t()}finally{qn(e)}}function $n(e,t){return function(){if(e.curOp)return t.apply(e,arguments);Wn(e);try{return t.apply(e,arguments)}finally{qn(e)}}}function Gn(e){return function(){if(this.curOp)return e.apply(this,arguments);Wn(this);try{return e.apply(this,arguments)}finally{qn(this)}}}function Xn(t){return function(){var e=this.cm;if(!e||e.curOp)return t.apply(this,arguments);Wn(e);try{return t.apply(this,arguments)}finally{qn(e)}}}function Yn(e,t,r,n){null==t&&(t=e.doc.first),null==r&&(r=e.doc.first+e.doc.size),n||(n=0);var i=e.display;if(n&&r<i.viewTo&&(null==i.updateLineNumbers||i.updateLineNumbers>t)&&(i.updateLineNumbers=t),e.curOp.viewChanged=!0,t>=i.viewTo)Le&&je(e.doc,t)<i.viewTo&&Jn(e);else if(r<=i.viewFrom)Le&&Ke(e.doc,r+n)>i.viewFrom?Jn(e):(i.viewFrom+=n,i.viewTo+=n);else if(t<=i.viewFrom&&r>=i.viewTo)Jn(e);else if(t<=i.viewFrom){var o=Zn(e,r,r+n,1);o?(i.view=i.view.slice(o.index),i.viewFrom=o.lineN,i.viewTo+=n):Jn(e)}else if(r>=i.viewTo){var a=Zn(e,t,t,-1);a?(i.view=i.view.slice(0,a.index),i.viewTo=a.lineN):Jn(e)}else{var s=Zn(e,t,t,-1),l=Zn(e,r,r+n,1);s&&l?(i.view=i.view.slice(0,s.index).concat(ir(e,s.lineN,l.lineN)).concat(i.view.slice(l.index)),i.viewTo+=n):Jn(e)}var c=i.externalMeasured;c&&(r<c.lineN?c.lineN+=n:t<c.lineN+c.size&&(i.externalMeasured=null))}function Qn(e,t,r){e.curOp.viewChanged=!0;var n=e.display,i=e.display.externalMeasured;if(i&&t>=i.lineN&&t<i.lineN+i.size&&(n.externalMeasured=null),!(t<n.viewFrom||t>=n.viewTo)){var o=n.view[sn(e,t)];if(null!=o.node){var a=o.changes||(o.changes=[]);-1==W(a,r)&&a.push(r)}}}function Jn(e){e.display.viewFrom=e.display.viewTo=e.doc.first,e.display.view=[],e.display.viewOffset=0}function Zn(e,t,r,n){var i,o=sn(e,t),a=e.display.view;if(!Le||r==e.doc.first+e.doc.size)return{index:o,lineN:r};for(var s=e.display.viewFrom,l=0;l<o;l++)s+=a[l].size;if(s!=t){if(0<n){if(o==a.length-1)return null;i=s+a[o].size-t,o++}else i=s-t;t+=i,r+=i}for(;je(e.doc,r)!=r;){if(o==(n<0?0:a.length-1))return null;r+=n*a[o-(n<0?1:0)].size,o+=n}return{index:o,lineN:r}}function ei(e){for(var t=e.display.view,r=0,n=0;n<t.length;n++){var i=t[n];i.hidden||i.node&&!i.changes||++r}return r}function ti(e,t){e.doc.highlightFrontier<e.display.viewTo&&e.state.highlight.set(t,R(ri,e))}function ri(l){var c=l.doc;if(!(c.highlightFrontier>=l.display.viewTo)){var u=+new Date+l.options.workTime,f=zt(l,c.highlightFrontier),d=[];c.iter(f.line,Math.min(c.first+c.size,l.display.viewTo+500),function(e){if(f.line>=l.display.viewFrom){var t=e.styles,r=e.text.length>l.options.maxHighlightLength?Et(c.mode,f.state):null,n=Dt(l,e,f,!0);r&&(f.state=r),e.styles=n.styles;var i=e.styleClasses,o=n.classes;o?e.styleClasses=o:i&&(e.styleClasses=null);for(var a=!t||t.length!=e.styles.length||i!=o&&(!i||!o||i.bgClass!=o.bgClass||i.textClass!=o.textClass),s=0;!a&&s<t.length;++s)a=t[s]!=e.styles[s];a&&d.push(f.line),e.stateAfter=f.save(),f.nextLine()}else e.text.length<=l.options.maxHighlightLength&&Wt(l,e.text,f),e.stateAfter=f.line%5==0?f.save():null,f.nextLine();if(+new Date>u)return ti(l,l.options.workDelay),!0}),c.highlightFrontier=f.line,c.modeFrontier=Math.max(c.modeFrontier,f.line),d.length&&Vn(l,function(){for(var e=0;e<d.length;e++)Qn(l,d[e],"text")})}}var ni=function(e,t,r){var n=e.display;this.viewport=t,this.visible=xn(n,e.doc,t),this.editorIsHidden=!n.wrapper.offsetWidth,this.wrapperHeight=n.wrapper.clientHeight,this.wrapperWidth=n.wrapper.clientWidth,this.oldDisplayWidth=_r(e),this.force=r,this.dims=tn(e),this.events=[]};function ii(e,t){var r=e.display,n=e.doc;if(t.editorIsHidden)return Jn(e),!1;if(!t.force&&t.visible.from>=r.viewFrom&&t.visible.to<=r.viewTo&&(null==r.updateLineNumbers||r.updateLineNumbers>=r.viewTo)&&r.renderedView==r.view&&0==ei(e))return!1;kn(e)&&(Jn(e),t.dims=tn(e));var i=n.first+n.size,o=Math.max(t.visible.from-e.options.viewportMargin,n.first),a=Math.min(i,t.visible.to+e.options.viewportMargin);r.viewFrom<o&&o-r.viewFrom<20&&(o=Math.max(n.first,r.viewFrom)),r.viewTo>a&&r.viewTo-a<20&&(a=Math.min(i,r.viewTo)),Le&&(o=je(e.doc,o),a=Ke(e.doc,a));var s,l,c,u,f=o!=r.viewFrom||a!=r.viewTo||r.lastWrapHeight!=t.wrapperHeight||r.lastWrapWidth!=t.wrapperWidth;l=o,c=a,0==(u=(s=e).display).view.length||l>=u.viewTo||c<=u.viewFrom?(u.view=ir(s,l,c),u.viewFrom=l):(u.viewFrom>l?u.view=ir(s,l,u.viewFrom).concat(u.view):u.viewFrom<l&&(u.view=u.view.slice(sn(s,l))),u.viewFrom=l,u.viewTo<c?u.view=u.view.concat(ir(s,u.viewTo,c)):u.viewTo>c&&(u.view=u.view.slice(0,sn(s,c)))),u.viewTo=c,r.viewOffset=$e(le(e.doc,r.viewFrom)),e.display.mover.style.top=r.viewOffset+"px";var d=ei(e);if(!f&&0==d&&!t.force&&r.renderedView==r.view&&(null==r.updateLineNumbers||r.updateLineNumbers>=r.viewTo))return!1;var h=function(e){if(e.hasFocus())return null;var t=N();if(!t||!E(e.display.lineDiv,t))return null;var r={activeElt:t};if(window.getSelection){var n=window.getSelection();n.anchorNode&&n.extend&&E(e.display.lineDiv,n.anchorNode)&&(r.anchorNode=n.anchorNode,r.anchorOffset=n.anchorOffset,r.focusNode=n.focusNode,r.focusOffset=n.focusOffset)}return r}(e);return 4<d&&(r.lineDiv.style.display="none"),function(r,e,t){var n=r.display,i=r.options.lineNumbers,o=n.lineDiv,a=o.firstChild;function s(e){var t=e.nextSibling;return b&&x&&r.display.currentWheelTarget==e?e.style.display="none":e.parentNode.removeChild(e),t}for(var l=n.view,c=n.viewFrom,u=0;u<l.length;u++){var f=l[u];if(f.hidden);else if(f.node&&f.node.parentNode==o){for(;a!=f.node;)a=s(a);var d=i&&null!=e&&e<=c&&f.lineNumber;f.changes&&(-1<W(f.changes,"gutter")&&(d=!1),cr(r,f,c,t)),d&&(M(f.lineNumber),f.lineNumber.appendChild(document.createTextNode(me(r.options,c)))),a=f.node.nextSibling}else{var h=(g=c,v=t,void 0,y=fr(p=r,m=f),m.text=m.node=y.pre,y.bgClass&&(m.bgClass=y.bgClass),y.textClass&&(m.textClass=y.textClass),hr(p,m),pr(p,m,g,v),gr(p,m,v),m.node);o.insertBefore(h,a)}c+=f.size}var p,m,g,v,y;for(;a;)a=s(a)}(e,r.updateLineNumbers,t.dims),4<d&&(r.lineDiv.style.display=""),r.renderedView=r.view,function(e){if(e&&e.activeElt&&e.activeElt!=N()&&(e.activeElt.focus(),e.anchorNode&&E(document.body,e.anchorNode)&&E(document.body,e.focusNode))){var t=window.getSelection(),r=document.createRange();r.setEnd(e.anchorNode,e.anchorOffset),r.collapse(!1),t.removeAllRanges(),t.addRange(r),t.extend(e.focusNode,e.focusOffset)}}(h),M(r.cursorDiv),M(r.selectionDiv),r.gutters.style.height=r.sizer.style.minHeight=0,f&&(r.lastWrapHeight=t.wrapperHeight,r.lastWrapWidth=t.wrapperWidth,ti(e,400)),!(r.updateLineNumbers=null)}function oi(e,t){for(var r=t.viewport,n=!0;(n&&e.options.lineWrapping&&t.oldDisplayWidth!=_r(e)||(r&&null!=r.top&&(r={top:Math.min(e.doc.height+kr(e.display)-Lr(e),r.top)}),t.visible=xn(e.display,e.doc,r),!(t.visible.from>=e.display.viewFrom&&t.visible.to<=e.display.viewTo)))&&ii(e,t);n=!1){yn(e);var i=Nn(e);ln(e),Bn(e,i),li(e,i),t.force=!1}t.signal(e,"update",e),e.display.viewFrom==e.display.reportedViewFrom&&e.display.viewTo==e.display.reportedViewTo||(t.signal(e,"viewportChange",e,e.display.viewFrom,e.display.viewTo),e.display.reportedViewFrom=e.display.viewFrom,e.display.reportedViewTo=e.display.viewTo)}function ai(e,t){var r=new ni(e,t);if(ii(e,r)){yn(e),oi(e,r);var n=Nn(e);ln(e),Bn(e,n),li(e,n),r.finish()}}function si(e){var t=e.display.gutters.offsetWidth;e.display.sizer.style.marginLeft=t+"px"}function li(e,t){e.display.sizer.style.minHeight=t.docHeight+"px",e.display.heightForcer.style.top=t.docHeight+"px",e.display.gutters.style.height=t.docHeight+e.display.barHeight+Sr(e)+"px"}function ci(e){var t=e.display.gutters,r=e.options.gutters;M(t);for(var n=0;n<r.length;++n){var i=r[n],o=t.appendChild(O("div",null,"CodeMirror-gutter "+i));"CodeMirror-linenumbers"==i&&((e.display.lineGutter=o).style.width=(e.display.lineNumWidth||1)+"px")}t.style.display=n?"":"none",si(e)}function ui(e){var t=W(e.gutters,"CodeMirror-linenumbers");-1==t&&e.lineNumbers?e.gutters=e.gutters.concat(["CodeMirror-linenumbers"]):-1<t&&!e.lineNumbers&&(e.gutters=e.gutters.slice(0),e.gutters.splice(t,1))}ni.prototype.signal=function(e,t){st(e,t)&&this.events.push(arguments)},ni.prototype.finish=function(){for(var e=0;e<this.events.length;e++)it.apply(null,this.events[e])};var fi=0,di=null;function hi(e){var t=e.wheelDeltaX,r=e.wheelDeltaY;return null==t&&e.detail&&e.axis==e.HORIZONTAL_AXIS&&(t=e.detail),null==r&&e.detail&&e.axis==e.VERTICAL_AXIS?r=e.detail:null==r&&(r=e.wheelDelta),{x:t,y:r}}function pi(e){var t=hi(e);return t.x*=di,t.y*=di,t}function mi(e,t){var r=hi(t),n=r.x,i=r.y,o=e.display,a=o.scroller,s=a.scrollWidth>a.clientWidth,l=a.scrollHeight>a.clientHeight;if(n&&s||i&&l){if(i&&x&&b)e:for(var c=t.target,u=o.view;c!=a;c=c.parentNode)for(var f=0;f<u.length;f++)if(u[f].node==c){e.display.currentWheelTarget=c;break e}if(n&&!m&&!g&&null!=di)return i&&l&&An(e,Math.max(0,a.scrollTop+i*di)),En(e,Math.max(0,a.scrollLeft+n*di)),(!i||i&&l)&&ct(t),void(o.wheelStartX=null);if(i&&null!=di){var d=i*di,h=e.doc.scrollTop,p=h+o.wrapper.clientHeight;d<0?h=Math.max(0,h+d-50):p=Math.min(e.doc.height,p+d+50),ai(e,{top:h,bottom:p})}fi<20&&(null==o.wheelStartX?(o.wheelStartX=a.scrollLeft,o.wheelStartY=a.scrollTop,o.wheelDX=n,o.wheelDY=i,setTimeout(function(){if(null!=o.wheelStartX){var e=a.scrollLeft-o.wheelStartX,t=a.scrollTop-o.wheelStartY,r=t&&o.wheelDY&&t/o.wheelDY||e&&o.wheelDX&&e/o.wheelDX;o.wheelStartX=o.wheelStartY=null,r&&(di=(di*fi+r)/(fi+1),++fi)}},200)):(o.wheelDX+=n,o.wheelDY+=i))}}w?di=-.53:m?di=15:a?di=-.7:l&&(di=-1/3);var gi=function(e,t){this.ranges=e,this.primIndex=t};gi.prototype.primary=function(){return this.ranges[this.primIndex]},gi.prototype.equals=function(e){if(e==this)return!0;if(e.primIndex!=this.primIndex||e.ranges.length!=this.ranges.length)return!1;for(var t=0;t<this.ranges.length;t++){var r=this.ranges[t],n=e.ranges[t];if(!ye(r.anchor,n.anchor)||!ye(r.head,n.head))return!1}return!0},gi.prototype.deepCopy=function(){for(var e=[],t=0;t<this.ranges.length;t++)e[t]=new vi(be(this.ranges[t].anchor),be(this.ranges[t].head));return new gi(e,this.primIndex)},gi.prototype.somethingSelected=function(){for(var e=0;e<this.ranges.length;e++)if(!this.ranges[e].empty())return!0;return!1},gi.prototype.contains=function(e,t){t||(t=e);for(var r=0;r<this.ranges.length;r++){var n=this.ranges[r];if(0<=ve(t,n.from())&&ve(e,n.to())<=0)return r}return-1};var vi=function(e,t){this.anchor=e,this.head=t};function yi(e,t){var r=e[t];e.sort(function(e,t){return ve(e.from(),t.from())}),t=W(e,r);for(var n=1;n<e.length;n++){var i=e[n],o=e[n-1];if(0<=ve(o.to(),i.from())){var a=we(o.from(),i.from()),s=xe(o.to(),i.to()),l=o.empty()?i.from()==i.head:o.from()==o.head;n<=t&&--t,e.splice(--n,2,new vi(l?s:a,l?a:s))}}return new gi(e,t)}function bi(e,t){return new gi([new vi(e,t||e)],0)}function xi(e){return e.text?ge(e.from.line+e.text.length-1,X(e.text).length+(1==e.text.length?e.from.ch:0)):e.to}function wi(e,t){if(ve(e,t.from)<0)return e;if(ve(e,t.to)<=0)return xi(t);var r=e.line+t.text.length-(t.to.line-t.from.line)-1,n=e.ch;return e.line==t.to.line&&(n+=xi(t).ch-t.to.ch),ge(r,n)}function ki(e,t){for(var r=[],n=0;n<e.sel.ranges.length;n++){var i=e.sel.ranges[n];r.push(new vi(wi(i.anchor,t),wi(i.head,t)))}return yi(r,e.sel.primIndex)}function Ci(e,t,r){return e.line==t.line?ge(r.line,e.ch-t.ch+r.ch):ge(r.line+(e.line-t.line),e.ch)}function Si(e){e.doc.mode=Tt(e.options,e.doc.modeOption),_i(e)}function _i(e){e.doc.iter(function(e){e.stateAfter&&(e.stateAfter=null),e.styles&&(e.styles=null)}),e.doc.modeFrontier=e.doc.highlightFrontier=e.doc.first,ti(e,100),e.state.modeGen++,e.curOp&&Yn(e)}function Li(e,t){return 0==t.from.ch&&0==t.to.ch&&""==X(t.text)&&(!e.cm||e.cm.options.wholeLineUpdateBefore)}function Mi(e,n,t,i){function o(e){return t?t[e]:null}function r(e,t,r){!function(e,t,r,n){e.text=t,e.stateAfter&&(e.stateAfter=null),e.styles&&(e.styles=null),null!=e.order&&(e.order=null),Ne(e),Ie(e,r);var i=n?n(e):1;i!=e.height&&fe(e,i)}(e,t,r,i),sr(e,"change",e,n)}function a(e,t){for(var r=[],n=e;n<t;++n)r.push(new $t(c[n],o(n),i));return r}var s=n.from,l=n.to,c=n.text,u=le(e,s.line),f=le(e,l.line),d=X(c),h=o(c.length-1),p=l.line-s.line;if(n.full)e.insert(0,a(0,c.length)),e.remove(c.length,e.size-c.length);else if(Li(e,n)){var m=a(0,c.length-1);r(f,f.text,h),p&&e.remove(s.line,p),m.length&&e.insert(s.line,m)}else if(u==f)if(1==c.length)r(u,u.text.slice(0,s.ch)+d+u.text.slice(l.ch),h);else{var g=a(1,c.length-1);g.push(new $t(d+u.text.slice(l.ch),h,i)),r(u,u.text.slice(0,s.ch)+c[0],o(0)),e.insert(s.line+1,g)}else if(1==c.length)r(u,u.text.slice(0,s.ch)+c[0]+f.text.slice(l.ch),o(0)),e.remove(s.line+1,p);else{r(u,u.text.slice(0,s.ch)+c[0],o(0)),r(f,d+f.text.slice(l.ch),h);var v=a(1,c.length-1);1<p&&e.remove(s.line+1,p-1),e.insert(s.line+1,v)}sr(e,"change",e,n)}function Ti(e,s,l){!function e(t,r,n){if(t.linked)for(var i=0;i<t.linked.length;++i){var o=t.linked[i];if(o.doc!=r){var a=n&&o.sharedHist;l&&!a||(s(o.doc,a),e(o.doc,t,a))}}}(e,null,!0)}function Ai(e,t){if(t.cm)throw new Error("This document is already in use.");on((e.doc=t).cm=e),Si(e),Oi(e),e.options.lineWrapping||Xe(e),e.options.mode=t.modeOption,Yn(e)}function Oi(e){("rtl"==e.doc.direction?I:L)(e.display.lineDiv,"CodeMirror-rtl")}function Ei(e){this.done=[],this.undone=[],this.undoDepth=1/0,this.lastModTime=this.lastSelTime=0,this.lastOp=this.lastSelOp=null,this.lastOrigin=this.lastSelOrigin=null,this.generation=this.maxGeneration=e||1}function Ni(e,t){var r={from:be(t.from),to:xi(t),text:ce(e,t.from,t.to)};return Di(e,r,t.from.line,t.to.line+1),Ti(e,function(e){return Di(e,r,t.from.line,t.to.line+1)},!0),r}function Ii(e){for(;e.length;){if(!X(e).ranges)break;e.pop()}}function Pi(e,t,r,n){var i=e.history;i.undone.length=0;var o,a,s,l=+new Date;if((i.lastOp==n||i.lastOrigin==t.origin&&t.origin&&("+"==t.origin.charAt(0)&&i.lastModTime>l-(e.cm?e.cm.options.historyEventDelay:500)||"*"==t.origin.charAt(0)))&&(o=(s=i).lastOp==n?(Ii(s.done),X(s.done)):s.done.length&&!X(s.done).ranges?X(s.done):1<s.done.length&&!s.done[s.done.length-2].ranges?(s.done.pop(),X(s.done)):void 0))a=X(o.changes),0==ve(t.from,t.to)&&0==ve(t.from,a.to)?a.to=xi(t):o.changes.push(Ni(e,t));else{var c=X(i.done);for(c&&c.ranges||Ri(e.sel,i.done),o={changes:[Ni(e,t)],generation:i.generation},i.done.push(o);i.done.length>i.undoDepth;)i.done.shift(),i.done[0].ranges||i.done.shift()}i.done.push(r),i.generation=++i.maxGeneration,i.lastModTime=i.lastSelTime=l,i.lastOp=i.lastSelOp=n,i.lastOrigin=i.lastSelOrigin=t.origin,a||it(e,"historyAdded")}function Bi(e,t,r,n){var i,o,a,s,l,c=e.history,u=n&&n.origin;r==c.lastSelOp||u&&c.lastSelOrigin==u&&(c.lastModTime==c.lastSelTime&&c.lastOrigin==u||(i=e,o=u,a=X(c.done),s=t,"*"==(l=o.charAt(0))||"+"==l&&a.ranges.length==s.ranges.length&&a.somethingSelected()==s.somethingSelected()&&new Date-i.history.lastSelTime<=(i.cm?i.cm.options.historyEventDelay:500)))?c.done[c.done.length-1]=t:Ri(t,c.done),c.lastSelTime=+new Date,c.lastSelOrigin=u,c.lastSelOp=r,n&&!1!==n.clearRedo&&Ii(c.undone)}function Ri(e,t){var r=X(t);r&&r.ranges&&r.equals(e)||t.push(e)}function Di(t,r,e,n){var i=r["spans_"+t.id],o=0;t.iter(Math.max(t.first,e),Math.min(t.first+t.size,n),function(e){e.markedSpans&&((i||(i=r["spans_"+t.id]={}))[o]=e.markedSpans),++o})}function Fi(e){if(!e)return null;for(var t,r=0;r<e.length;++r)e[r].marker.explicitlyCleared?t||(t=e.slice(0,r)):t&&t.push(e[r]);return t?t.length?t:null:e}function zi(e,t){var r=function(e,t){var r=t["spans_"+e.id];if(!r)return null;for(var n=[],i=0;i<t.text.length;++i)n.push(Fi(r[i]));return n}(e,t),n=Oe(e,t);if(!r)return n;if(!n)return r;for(var i=0;i<r.length;++i){var o=r[i],a=n[i];if(o&&a)e:for(var s=0;s<a.length;++s){for(var l=a[s],c=0;c<o.length;++c)if(o[c].marker==l.marker)continue e;o.push(l)}else a&&(r[i]=a)}return r}function Wi(e,t,r){for(var n=[],i=0;i<e.length;++i){var o=e[i];if(o.ranges)n.push(r?gi.prototype.deepCopy.call(o):o);else{var a=o.changes,s=[];n.push({changes:s});for(var l=0;l<a.length;++l){var c=a[l],u=void 0;if(s.push({from:c.from,to:c.to,text:c.text}),t)for(var f in c)(u=f.match(/^spans_(\d+)$/))&&-1<W(t,Number(u[1]))&&(X(s)[f]=c[f],delete c[f])}}}return n}function qi(e,t,r,n){if(n){var i=e.anchor;if(r){var o=ve(t,i)<0;o!=ve(r,i)<0?(i=t,t=r):o!=ve(t,r)<0&&(t=r)}return new vi(i,t)}return new vi(r||t,t)}function Hi(e,t,r,n,i){null==i&&(i=e.cm&&(e.cm.display.shift||e.extend)),$i(e,new gi([qi(e.sel.primary(),t,r,i)],0),n)}function ji(e,t,r){for(var n=[],i=e.cm&&(e.cm.display.shift||e.extend),o=0;o<e.sel.ranges.length;o++)n[o]=qi(e.sel.ranges[o],t[o],null,i);$i(e,yi(n,e.sel.primIndex),r)}function Ki(e,t,r,n){var i=e.sel.ranges.slice(0);i[t]=r,$i(e,yi(i,e.sel.primIndex),n)}function Ui(e,t,r,n){$i(e,bi(t,r),n)}function Vi(e,t,r){var n=e.history.done,i=X(n);i&&i.ranges?Gi(e,n[n.length-1]=t,r):$i(e,t,r)}function $i(e,t,r){Gi(e,t,r),Bi(e,e.sel,e.cm?e.cm.curOp.id:NaN,r)}function Gi(e,t,r){var n,i,o,a;(st(e,"beforeSelectionChange")||e.cm&&st(e.cm,"beforeSelectionChange"))&&(n=e,o=r,a={ranges:(i=t).ranges,update:function(e){this.ranges=[];for(var t=0;t<e.length;t++)this.ranges[t]=new vi(Ce(n,e[t].anchor),Ce(n,e[t].head))},origin:o&&o.origin},it(n,"beforeSelectionChange",n,a),n.cm&&it(n.cm,"beforeSelectionChange",n.cm,a),t=a.ranges!=i.ranges?yi(a.ranges,a.ranges.length-1):i),Xi(e,Qi(e,t,r&&r.bias||(ve(t.primary().head,e.sel.primary().head)<0?-1:1),!0)),r&&!1===r.scroll||!e.cm||_n(e.cm)}function Xi(e,t){t.equals(e.sel)||(e.sel=t,e.cm&&(e.cm.curOp.updateInput=e.cm.curOp.selectionChanged=!0,at(e.cm)),sr(e,"cursorActivity",e))}function Yi(e){Xi(e,Qi(e,e.sel,null,!1))}function Qi(e,t,r,n){for(var i,o=0;o<t.ranges.length;o++){var a=t.ranges[o],s=t.ranges.length==e.sel.ranges.length&&e.sel.ranges[o],l=Zi(e,a.anchor,s&&s.anchor,r,n),c=Zi(e,a.head,s&&s.head,r,n);(i||l!=a.anchor||c!=a.head)&&(i||(i=t.ranges.slice(0,o)),i[o]=new vi(l,c))}return i?yi(i,t.primIndex):t}function Ji(e,t,r,n,i){var o=le(e,t.line);if(o.markedSpans)for(var a=0;a<o.markedSpans.length;++a){var s=o.markedSpans[a],l=s.marker;if((null==s.from||(l.inclusiveLeft?s.from<=t.ch:s.from<t.ch))&&(null==s.to||(l.inclusiveRight?s.to>=t.ch:s.to>t.ch))){if(i&&(it(l,"beforeCursorEnter"),l.explicitlyCleared)){if(o.markedSpans){--a;continue}break}if(!l.atomic)continue;if(r){var c=l.find(n<0?1:-1),u=void 0;if((n<0?l.inclusiveRight:l.inclusiveLeft)&&(c=eo(e,c,-n,c&&c.line==t.line?o:null)),c&&c.line==t.line&&(u=ve(c,r))&&(n<0?u<0:0<u))return Ji(e,c,t,n,i)}var f=l.find(n<0?-1:1);return(n<0?l.inclusiveLeft:l.inclusiveRight)&&(f=eo(e,f,n,f.line==t.line?o:null)),f?Ji(e,f,t,n,i):null}}return t}function Zi(e,t,r,n,i){var o=n||1,a=Ji(e,t,r,o,i)||!i&&Ji(e,t,r,o,!0)||Ji(e,t,r,-o,i)||!i&&Ji(e,t,r,-o,!0);return a||(e.cantEdit=!0,ge(e.first,0))}function eo(e,t,r,n){return r<0&&0==t.ch?t.line>e.first?Ce(e,ge(t.line-1)):null:0<r&&t.ch==(n||le(e,t.line)).text.length?t.line<e.first+e.size-1?ge(t.line+1,0):null:new ge(t.line,t.ch+r)}function to(e){e.setSelection(ge(e.firstLine(),0),ge(e.lastLine()),j)}function ro(i,e,t){var o={canceled:!1,from:e.from,to:e.to,text:e.text,origin:e.origin,cancel:function(){return o.canceled=!0}};return t&&(o.update=function(e,t,r,n){e&&(o.from=Ce(i,e)),t&&(o.to=Ce(i,t)),r&&(o.text=r),void 0!==n&&(o.origin=n)}),it(i,"beforeChange",i,o),i.cm&&it(i.cm,"beforeChange",i.cm,o),o.canceled?null:{from:o.from,to:o.to,text:o.text,origin:o.origin}}function no(e,t,r){if(e.cm){if(!e.cm.curOp)return $n(e.cm,no)(e,t,r);if(e.cm.state.suppressEdits)return}if(!(st(e,"beforeChange")||e.cm&&st(e.cm,"beforeChange"))||(t=ro(e,t,!0))){var n=_e&&!r&&function(e,t,r){var n=null;if(e.iter(t.line,r.line+1,function(e){if(e.markedSpans)for(var t=0;t<e.markedSpans.length;++t){var r=e.markedSpans[t].marker;!r.readOnly||n&&-1!=W(n,r)||(n||(n=[])).push(r)}}),!n)return null;for(var i=[{from:t,to:r}],o=0;o<n.length;++o)for(var a=n[o],s=a.find(0),l=0;l<i.length;++l){var c=i[l];if(!(ve(c.to,s.from)<0||0<ve(c.from,s.to))){var u=[l,1],f=ve(c.from,s.from),d=ve(c.to,s.to);(f<0||!a.inclusiveLeft&&!f)&&u.push({from:c.from,to:s.from}),(0<d||!a.inclusiveRight&&!d)&&u.push({from:s.to,to:c.to}),i.splice.apply(i,u),l+=u.length-3}}return i}(e,t.from,t.to);if(n)for(var i=n.length-1;0<=i;--i)io(e,{from:n[i].from,to:n[i].to,text:i?[""]:t.text,origin:t.origin});else io(e,t)}}function io(e,r){if(1!=r.text.length||""!=r.text[0]||0!=ve(r.from,r.to)){var t=ki(e,r);Pi(e,r,t,e.cm?e.cm.curOp.id:NaN),so(e,r,t,Oe(e,r));var n=[];Ti(e,function(e,t){t||-1!=W(n,e.history)||(fo(e.history,r),n.push(e.history)),so(e,r,null,Oe(e,r))})}}function oo(i,o,e){var t=i.cm&&i.cm.state.suppressEdits;if(!t||e){for(var a,r=i.history,n=i.sel,s="undo"==o?r.done:r.undone,l="undo"==o?r.undone:r.done,c=0;c<s.length&&(a=s[c],e?!a.ranges||a.equals(i.sel):a.ranges);c++);if(c!=s.length){for(r.lastOrigin=r.lastSelOrigin=null;;){if(!(a=s.pop()).ranges){if(t)return void s.push(a);break}if(Ri(a,l),e&&!a.equals(i.sel))return void $i(i,a,{clearRedo:!1});n=a}var u=[];Ri(n,l),l.push({changes:u,generation:r.generation}),r.generation=a.generation||++r.maxGeneration;for(var f=st(i,"beforeChange")||i.cm&&st(i.cm,"beforeChange"),d=function(e){var r=a.changes[e];if(r.origin=o,f&&!ro(i,r,!1))return s.length=0,{};u.push(Ni(i,r));var t=e?ki(i,r):X(s);so(i,r,t,zi(i,r)),!e&&i.cm&&i.cm.scrollIntoView({from:r.from,to:xi(r)});var n=[];Ti(i,function(e,t){t||-1!=W(n,e.history)||(fo(e.history,r),n.push(e.history)),so(e,r,null,zi(e,r))})},h=a.changes.length-1;0<=h;--h){var p=d(h);if(p)return p.v}}}}function ao(e,t){if(0!=t&&(e.first+=t,e.sel=new gi(Y(e.sel.ranges,function(e){return new vi(ge(e.anchor.line+t,e.anchor.ch),ge(e.head.line+t,e.head.ch))}),e.sel.primIndex),e.cm)){Yn(e.cm,e.first,e.first-t,t);for(var r=e.cm.display,n=r.viewFrom;n<r.viewTo;n++)Qn(e.cm,n,"gutter")}}function so(e,t,r,n){if(e.cm&&!e.cm.curOp)return $n(e.cm,so)(e,t,r,n);if(t.to.line<e.first)ao(e,t.text.length-1-(t.to.line-t.from.line));else if(!(t.from.line>e.lastLine())){if(t.from.line<e.first){var i=t.text.length-1-(e.first-t.from.line);ao(e,i),t={from:ge(e.first,0),to:ge(t.to.line+i,t.to.ch),text:[X(t.text)],origin:t.origin}}var o=e.lastLine();t.to.line>o&&(t={from:t.from,to:ge(o,le(e,o).text.length),text:[t.text[0]],origin:t.origin}),t.removed=ce(e,t.from,t.to),r||(r=ki(e,t)),e.cm?function(e,t,r){var n=e.doc,i=e.display,o=t.from,a=t.to,s=!1,l=o.line;e.options.lineWrapping||(l=de(He(le(n,o.line))),n.iter(l,a.line+1,function(e){if(e==i.maxLine)return s=!0}));-1<n.sel.contains(t.from,t.to)&&at(e);Mi(n,t,r,nn(e)),e.options.lineWrapping||(n.iter(l,o.line+t.text.length,function(e){var t=Ge(e);t>i.maxLineLength&&(i.maxLine=e,i.maxLineLength=t,i.maxLineChanged=!0,s=!1)}),s&&(e.curOp.updateMaxLine=!0));(function(e,t){if(e.modeFrontier=Math.min(e.modeFrontier,t),!(e.highlightFrontier<t-10)){for(var r=e.first,n=t-1;r<n;n--){var i=le(e,n).stateAfter;if(i&&(!(i instanceof Bt)||n+i.lookAhead<t)){r=n+1;break}}e.highlightFrontier=Math.min(e.highlightFrontier,r)}})(n,o.line),ti(e,400);var c=t.text.length-(a.line-o.line)-1;t.full?Yn(e):o.line!=a.line||1!=t.text.length||Li(e.doc,t)?Yn(e,o.line,a.line+1,c):Qn(e,o.line,"text");var u=st(e,"changes"),f=st(e,"change");if(f||u){var d={from:o,to:a,text:t.text,removed:t.removed,origin:t.origin};f&&sr(e,"change",e,d),u&&(e.curOp.changeObjs||(e.curOp.changeObjs=[])).push(d)}e.display.selForContextMenu=null}(e.cm,t,n):Mi(e,t,n),Gi(e,r,j)}}function lo(e,t,r,n,i){var o;(n||(n=r),ve(n,r)<0)&&(r=(o=[n,r])[0],n=o[1]);"string"==typeof t&&(t=e.splitLines(t)),no(e,{from:r,to:n,text:t,origin:i})}function co(e,t,r,n){r<e.line?e.line+=n:t<e.line&&(e.line=t,e.ch=0)}function uo(e,t,r,n){for(var i=0;i<e.length;++i){var o=e[i],a=!0;if(o.ranges){o.copied||((o=e[i]=o.deepCopy()).copied=!0);for(var s=0;s<o.ranges.length;s++)co(o.ranges[s].anchor,t,r,n),co(o.ranges[s].head,t,r,n)}else{for(var l=0;l<o.changes.length;++l){var c=o.changes[l];if(r<c.from.line)c.from=ge(c.from.line+n,c.from.ch),c.to=ge(c.to.line+n,c.to.ch);else if(t<=c.to.line){a=!1;break}}a||(e.splice(0,i+1),i=0)}}}function fo(e,t){var r=t.from.line,n=t.to.line,i=t.text.length-(n-r)-1;uo(e.done,r,n,i),uo(e.undone,r,n,i)}function ho(e,t,r,n){var i=t,o=t;return"number"==typeof t?o=le(e,ke(e,t)):i=de(t),null==i?null:(n(o,i)&&e.cm&&Qn(e.cm,i,r),o)}function po(e){this.lines=e,this.parent=null;for(var t=0,r=0;r<e.length;++r)e[r].parent=this,t+=e[r].height;this.height=t}function mo(e){this.children=e;for(var t=0,r=0,n=0;n<e.length;++n){var i=e[n];t+=i.chunkSize(),r+=i.height,i.parent=this}this.size=t,this.height=r,this.parent=null}vi.prototype.from=function(){return we(this.anchor,this.head)},vi.prototype.to=function(){return xe(this.anchor,this.head)},vi.prototype.empty=function(){return this.head.line==this.anchor.line&&this.head.ch==this.anchor.ch},po.prototype={chunkSize:function(){return this.lines.length},removeInner:function(e,t){for(var r,n=e,i=e+t;n<i;++n){var o=this.lines[n];this.height-=o.height,(r=o).parent=null,Ne(r),sr(o,"delete")}this.lines.splice(e,t)},collapse:function(e){e.push.apply(e,this.lines)},insertInner:function(e,t,r){this.height+=r,this.lines=this.lines.slice(0,e).concat(t).concat(this.lines.slice(e));for(var n=0;n<t.length;++n)t[n].parent=this},iterN:function(e,t,r){for(var n=e+t;e<n;++e)if(r(this.lines[e]))return!0}},mo.prototype={chunkSize:function(){return this.size},removeInner:function(e,t){this.size-=t;for(var r=0;r<this.children.length;++r){var n=this.children[r],i=n.chunkSize();if(e<i){var o=Math.min(t,i-e),a=n.height;if(n.removeInner(e,o),this.height-=a-n.height,i==o&&(this.children.splice(r--,1),n.parent=null),0==(t-=o))break;e=0}else e-=i}if(this.size-t<25&&(1<this.children.length||!(this.children[0]instanceof po))){var s=[];this.collapse(s),this.children=[new po(s)],this.children[0].parent=this}},collapse:function(e){for(var t=0;t<this.children.length;++t)this.children[t].collapse(e)},insertInner:function(e,t,r){this.size+=t.length,this.height+=r;for(var n=0;n<this.children.length;++n){var i=this.children[n],o=i.chunkSize();if(e<=o){if(i.insertInner(e,t,r),i.lines&&50<i.lines.length){for(var a=i.lines.length%25+25,s=a;s<i.lines.length;){var l=new po(i.lines.slice(s,s+=25));i.height-=l.height,this.children.splice(++n,0,l),l.parent=this}i.lines=i.lines.slice(0,a),this.maybeSpill()}break}e-=o}},maybeSpill:function(){if(!(this.children.length<=10)){var e=this;do{var t=new mo(e.children.splice(e.children.length-5,5));if(e.parent){e.size-=t.size,e.height-=t.height;var r=W(e.parent.children,e);e.parent.children.splice(r+1,0,t)}else{var n=new mo(e.children);(n.parent=e).children=[n,t],e=n}t.parent=e.parent}while(10<e.children.length);e.parent.maybeSpill()}},iterN:function(e,t,r){for(var n=0;n<this.children.length;++n){var i=this.children[n],o=i.chunkSize();if(e<o){var a=Math.min(t,o-e);if(i.iterN(e,a,r))return!0;if(0==(t-=a))break;e=0}else e-=o}}};var go=function(e,t,r){if(r)for(var n in r)r.hasOwnProperty(n)&&(this[n]=r[n]);this.doc=e,this.node=t};function vo(e,t,r){$e(t)<(e.curOp&&e.curOp.scrollTop||e.doc.scrollTop)&&Sn(e,r)}go.prototype.clear=function(){var e=this.doc.cm,t=this.line.widgets,r=this.line,n=de(r);if(null!=n&&t){for(var i=0;i<t.length;++i)t[i]==this&&t.splice(i--,1);t.length||(r.widgets=null);var o=br(this);fe(r,Math.max(0,r.height-o)),e&&(Vn(e,function(){vo(e,r,-o),Qn(e,n,"widget")}),sr(e,"lineWidgetCleared",e,this,n))}},go.prototype.changed=function(){var e=this,t=this.height,r=this.doc.cm,n=this.line;this.height=null;var i=br(this)-t;i&&(Ue(this.doc,n)||fe(n,n.height+i),r&&Vn(r,function(){r.curOp.forceUpdate=!0,vo(r,n,i),sr(r,"lineWidgetChanged",r,e,de(n))}))},lt(go);var yo=0,bo=function(e,t){this.lines=[],this.type=t,this.doc=e,this.id=++yo};function xo(t,n,i,e,r){if(e&&e.shared)return function(e,r,n,i,o){(i=D(i)).shared=!1;var a=[xo(e,r,n,i,o)],s=a[0],l=i.widgetNode;return Ti(e,function(e){l&&(i.widgetNode=l.cloneNode(!0)),a.push(xo(e,Ce(e,r),Ce(e,n),i,o));for(var t=0;t<e.linked.length;++t)if(e.linked[t].isParent)return;s=X(a)}),new wo(a,s)}(t,n,i,e,r);if(t.cm&&!t.cm.curOp)return $n(t.cm,xo)(t,n,i,e,r);var o=new bo(t,r),a=ve(n,i);if(e&&D(e,o,!1),0<a||0==a&&!1!==o.clearWhenEmpty)return o;if(o.replacedWith&&(o.collapsed=!0,o.widgetNode=A("span",[o.replacedWith],"CodeMirror-widget"),e.handleMouseEvents||o.widgetNode.setAttribute("cm-ignore-events","true"),e.insertLeft&&(o.widgetNode.insertLeft=!0)),o.collapsed){if(qe(t,n.line,n,i,o)||n.line!=i.line&&qe(t,i.line,n,i,o))throw new Error("Inserting collapsed marker partially overlapping an existing one");Le=!0}o.addToHistory&&Pi(t,{from:n,to:i,origin:"markText"},t.sel,NaN);var s,l=n.line,c=t.cm;if(t.iter(l,i.line+1,function(e){var t,r;c&&o.collapsed&&!c.options.lineWrapping&&He(e)==c.display.maxLine&&(s=!0),o.collapsed&&l!=n.line&&fe(e,0),t=e,r=new Me(o,l==n.line?n.ch:null,l==i.line?i.ch:null),t.markedSpans=t.markedSpans?t.markedSpans.concat([r]):[r],r.marker.attachLine(t),++l}),o.collapsed&&t.iter(n.line,i.line+1,function(e){Ue(t,e)&&fe(e,0)}),o.clearOnEnter&&tt(o,"beforeCursorEnter",function(){return o.clear()}),o.readOnly&&(_e=!0,(t.history.done.length||t.history.undone.length)&&t.clearHistory()),o.collapsed&&(o.id=++yo,o.atomic=!0),c){if(s&&(c.curOp.updateMaxLine=!0),o.collapsed)Yn(c,n.line,i.line+1);else if(o.className||o.title||o.startStyle||o.endStyle||o.css)for(var u=n.line;u<=i.line;u++)Qn(c,u,"text");o.atomic&&Yi(c.doc),sr(c,"markerAdded",c,o)}return o}bo.prototype.clear=function(){var e=this;if(!this.explicitlyCleared){var t=this.doc.cm,r=t&&!t.curOp;if(r&&Wn(t),st(this,"clear")){var n=this.find();n&&sr(this,"clear",n.from,n.to)}for(var i=null,o=null,a=0;a<this.lines.length;++a){var s=e.lines[a],l=Te(s.markedSpans,e);t&&!e.collapsed?Qn(t,de(s),"text"):t&&(null!=l.to&&(o=de(s)),null!=l.from&&(i=de(s))),s.markedSpans=Ae(s.markedSpans,l),null==l.from&&e.collapsed&&!Ue(e.doc,s)&&t&&fe(s,Zr(t.display))}if(t&&this.collapsed&&!t.options.lineWrapping)for(var c=0;c<this.lines.length;++c){var u=He(e.lines[c]),f=Ge(u);f>t.display.maxLineLength&&(t.display.maxLine=u,t.display.maxLineLength=f,t.display.maxLineChanged=!0)}null!=i&&t&&this.collapsed&&Yn(t,i,o+1),this.lines.length=0,this.explicitlyCleared=!0,this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,t&&Yi(t.doc)),t&&sr(t,"markerCleared",t,this,i,o),r&&qn(t),this.parent&&this.parent.clear()}},bo.prototype.find=function(e,t){var r,n;null==e&&"bookmark"==this.type&&(e=1);for(var i=0;i<this.lines.length;++i){var o=this.lines[i],a=Te(o.markedSpans,this);if(null!=a.from&&(r=ge(t?o:de(o),a.from),-1==e))return r;if(null!=a.to&&(n=ge(t?o:de(o),a.to),1==e))return n}return r&&{from:r,to:n}},bo.prototype.changed=function(){var o=this,a=this.find(-1,!0),s=this,l=this.doc.cm;a&&l&&Vn(l,function(){var e=a.line,t=de(a.line),r=Ar(l,t);if(r&&(Rr(r),l.curOp.selectionChanged=l.curOp.forceUpdate=!0),l.curOp.updateMaxLine=!0,!Ue(s.doc,e)&&null!=s.height){var n=s.height;s.height=null;var i=br(s)-n;i&&fe(e,e.height+i)}sr(l,"markerChanged",l,o)})},bo.prototype.attachLine=function(e){if(!this.lines.length&&this.doc.cm){var t=this.doc.cm.curOp;t.maybeHiddenMarkers&&-1!=W(t.maybeHiddenMarkers,this)||(t.maybeUnhiddenMarkers||(t.maybeUnhiddenMarkers=[])).push(this)}this.lines.push(e)},bo.prototype.detachLine=function(e){if(this.lines.splice(W(this.lines,e),1),!this.lines.length&&this.doc.cm){var t=this.doc.cm.curOp;(t.maybeHiddenMarkers||(t.maybeHiddenMarkers=[])).push(this)}},lt(bo);var wo=function(e,t){this.markers=e,this.primary=t;for(var r=0;r<e.length;++r)e[r].parent=this};function ko(e){return e.findMarks(ge(e.first,0),e.clipPos(ge(e.lastLine())),function(e){return e.parent})}function Co(o){for(var e=function(e){var t=o[e],r=[t.primary.doc];Ti(t.primary.doc,function(e){return r.push(e)});for(var n=0;n<t.markers.length;n++){var i=t.markers[n];-1==W(r,i.doc)&&(i.parent=null,t.markers.splice(n--,1))}},t=0;t<o.length;t++)e(t)}wo.prototype.clear=function(){if(!this.explicitlyCleared){this.explicitlyCleared=!0;for(var e=0;e<this.markers.length;++e)this.markers[e].clear();sr(this,"clear")}},wo.prototype.find=function(e,t){return this.primary.find(e,t)},lt(wo);var So=0,_o=function(e,t,r,n,i){if(!(this instanceof _o))return new _o(e,t,r,n,i);null==r&&(r=0),mo.call(this,[new po([new $t("",null)])]),this.first=r,this.scrollTop=this.scrollLeft=0,this.cantEdit=!1,this.cleanGeneration=1,this.modeFrontier=this.highlightFrontier=r;var o=ge(r,0);this.sel=bi(o),this.history=new Ei(null),this.id=++So,this.modeOption=t,this.lineSep=n,this.direction="rtl"==i?"rtl":"ltr",this.extend=!1,"string"==typeof e&&(e=this.splitLines(e)),Mi(this,{from:o,to:o,text:e}),$i(this,bi(o),j)};_o.prototype=J(mo.prototype,{constructor:_o,iter:function(e,t,r){r?this.iterN(e-this.first,t-e,r):this.iterN(this.first,this.first+this.size,e)},insert:function(e,t){for(var r=0,n=0;n<t.length;++n)r+=t[n].height;this.insertInner(e-this.first,t,r)},remove:function(e,t){this.removeInner(e-this.first,t)},getValue:function(e){var t=ue(this,this.first,this.first+this.size);return!1===e?t:t.join(e||this.lineSeparator())},setValue:Xn(function(e){var t=ge(this.first,0),r=this.first+this.size-1;no(this,{from:t,to:ge(r,le(this,r).text.length),text:this.splitLines(e),origin:"setValue",full:!0},!0),this.cm&&Ln(this.cm,0,0),$i(this,bi(t),j)}),replaceRange:function(e,t,r,n){lo(this,e,t=Ce(this,t),r=r?Ce(this,r):t,n)},getRange:function(e,t,r){var n=ce(this,Ce(this,e),Ce(this,t));return!1===r?n:n.join(r||this.lineSeparator())},getLine:function(e){var t=this.getLineHandle(e);return t&&t.text},getLineHandle:function(e){if(pe(this,e))return le(this,e)},getLineNumber:function(e){return de(e)},getLineHandleVisualStart:function(e){return"number"==typeof e&&(e=le(this,e)),He(e)},lineCount:function(){return this.size},firstLine:function(){return this.first},lastLine:function(){return this.first+this.size-1},clipPos:function(e){return Ce(this,e)},getCursor:function(e){var t=this.sel.primary();return null==e||"head"==e?t.head:"anchor"==e?t.anchor:"end"==e||"to"==e||!1===e?t.to():t.from()},listSelections:function(){return this.sel.ranges},somethingSelected:function(){return this.sel.somethingSelected()},setCursor:Xn(function(e,t,r){Ui(this,Ce(this,"number"==typeof e?ge(e,t||0):e),null,r)}),setSelection:Xn(function(e,t,r){Ui(this,Ce(this,e),Ce(this,t||e),r)}),extendSelection:Xn(function(e,t,r){Hi(this,Ce(this,e),t&&Ce(this,t),r)}),extendSelections:Xn(function(e,t){ji(this,Se(this,e),t)}),extendSelectionsBy:Xn(function(e,t){ji(this,Se(this,Y(this.sel.ranges,e)),t)}),setSelections:Xn(function(e,t,r){if(e.length){for(var n=[],i=0;i<e.length;i++)n[i]=new vi(Ce(this,e[i].anchor),Ce(this,e[i].head));null==t&&(t=Math.min(e.length-1,this.sel.primIndex)),$i(this,yi(n,t),r)}}),addSelection:Xn(function(e,t,r){var n=this.sel.ranges.slice(0);n.push(new vi(Ce(this,e),Ce(this,t||e))),$i(this,yi(n,n.length-1),r)}),getSelection:function(e){for(var t,r=this.sel.ranges,n=0;n<r.length;n++){var i=ce(this,r[n].from(),r[n].to());t=t?t.concat(i):i}return!1===e?t:t.join(e||this.lineSeparator())},getSelections:function(e){for(var t=[],r=this.sel.ranges,n=0;n<r.length;n++){var i=ce(this,r[n].from(),r[n].to());!1!==e&&(i=i.join(e||this.lineSeparator())),t[n]=i}return t},replaceSelection:function(e,t,r){for(var n=[],i=0;i<this.sel.ranges.length;i++)n[i]=e;this.replaceSelections(n,t,r||"+input")},replaceSelections:Xn(function(e,t,r){for(var n=[],i=this.sel,o=0;o<i.ranges.length;o++){var a=i.ranges[o];n[o]={from:a.from(),to:a.to(),text:this.splitLines(e[o]),origin:r}}for(var s=t&&"end"!=t&&function(e,t,r){for(var n=[],i=ge(e.first,0),o=i,a=0;a<t.length;a++){var s=t[a],l=Ci(s.from,i,o),c=Ci(xi(s),i,o);if(i=s.to,o=c,"around"==r){var u=e.sel.ranges[a],f=ve(u.head,u.anchor)<0;n[a]=new vi(f?c:l,f?l:c)}else n[a]=new vi(l,l)}return new gi(n,e.sel.primIndex)}(this,n,t),l=n.length-1;0<=l;l--)no(this,n[l]);s?Vi(this,s):this.cm&&_n(this.cm)}),undo:Xn(function(){oo(this,"undo")}),redo:Xn(function(){oo(this,"redo")}),undoSelection:Xn(function(){oo(this,"undo",!0)}),redoSelection:Xn(function(){oo(this,"redo",!0)}),setExtending:function(e){this.extend=e},getExtending:function(){return this.extend},historySize:function(){for(var e=this.history,t=0,r=0,n=0;n<e.done.length;n++)e.done[n].ranges||++t;for(var i=0;i<e.undone.length;i++)e.undone[i].ranges||++r;return{undo:t,redo:r}},clearHistory:function(){this.history=new Ei(this.history.maxGeneration)},markClean:function(){this.cleanGeneration=this.changeGeneration(!0)},changeGeneration:function(e){return e&&(this.history.lastOp=this.history.lastSelOp=this.history.lastOrigin=null),this.history.generation},isClean:function(e){return this.history.generation==(e||this.cleanGeneration)},getHistory:function(){return{done:Wi(this.history.done),undone:Wi(this.history.undone)}},setHistory:function(e){var t=this.history=new Ei(this.history.maxGeneration);t.done=Wi(e.done.slice(0),null,!0),t.undone=Wi(e.undone.slice(0),null,!0)},setGutterMarker:Xn(function(e,r,n){return ho(this,e,"gutter",function(e){var t=e.gutterMarkers||(e.gutterMarkers={});return!(t[r]=n)&&re(t)&&(e.gutterMarkers=null),!0})}),clearGutter:Xn(function(t){var r=this;this.iter(function(e){e.gutterMarkers&&e.gutterMarkers[t]&&ho(r,e,"gutter",function(){return e.gutterMarkers[t]=null,re(e.gutterMarkers)&&(e.gutterMarkers=null),!0})})}),lineInfo:function(e){var t;if("number"==typeof e){if(!pe(this,e))return null;if(!(e=le(this,t=e)))return null}else if(null==(t=de(e)))return null;return{line:t,handle:e,text:e.text,gutterMarkers:e.gutterMarkers,textClass:e.textClass,bgClass:e.bgClass,wrapClass:e.wrapClass,widgets:e.widgets}},addLineClass:Xn(function(e,r,n){return ho(this,e,"gutter"==r?"gutter":"class",function(e){var t="text"==r?"textClass":"background"==r?"bgClass":"gutter"==r?"gutterClass":"wrapClass";if(e[t]){if(S(n).test(e[t]))return!1;e[t]+=" "+n}else e[t]=n;return!0})}),removeLineClass:Xn(function(e,o,a){return ho(this,e,"gutter"==o?"gutter":"class",function(e){var t="text"==o?"textClass":"background"==o?"bgClass":"gutter"==o?"gutterClass":"wrapClass",r=e[t];if(!r)return!1;if(null==a)e[t]=null;else{var n=r.match(S(a));if(!n)return!1;var i=n.index+n[0].length;e[t]=r.slice(0,n.index)+(n.index&&i!=r.length?" ":"")+r.slice(i)||null}return!0})}),addLineWidget:Xn(function(e,t,r){return i=e,o=new go(n=this,t,r),(a=n.cm)&&o.noHScroll&&(a.display.alignWidgets=!0),ho(n,i,"widget",function(e){var t=e.widgets||(e.widgets=[]);if(null==o.insertAt?t.push(o):t.splice(Math.min(t.length-1,Math.max(0,o.insertAt)),0,o),o.line=e,a&&!Ue(n,e)){var r=$e(e)<n.scrollTop;fe(e,e.height+br(o)),r&&Sn(a,o.height),a.curOp.forceUpdate=!0}return!0}),a&&sr(a,"lineWidgetAdded",a,o,"number"==typeof i?i:de(i)),o;var n,i,o,a}),removeLineWidget:function(e){e.clear()},markText:function(e,t,r){return xo(this,Ce(this,e),Ce(this,t),r,r&&r.type||"range")},setBookmark:function(e,t){var r={replacedWith:t&&(null==t.nodeType?t.widget:t),insertLeft:t&&t.insertLeft,clearWhenEmpty:!1,shared:t&&t.shared,handleMouseEvents:t&&t.handleMouseEvents};return xo(this,e=Ce(this,e),e,r,"bookmark")},findMarksAt:function(e){var t=[],r=le(this,(e=Ce(this,e)).line).markedSpans;if(r)for(var n=0;n<r.length;++n){var i=r[n];(null==i.from||i.from<=e.ch)&&(null==i.to||i.to>=e.ch)&&t.push(i.marker.parent||i.marker)}return t},findMarks:function(i,o,a){i=Ce(this,i),o=Ce(this,o);var s=[],l=i.line;return this.iter(i.line,o.line+1,function(e){var t=e.markedSpans;if(t)for(var r=0;r<t.length;r++){var n=t[r];null!=n.to&&l==i.line&&i.ch>=n.to||null==n.from&&l!=i.line||null!=n.from&&l==o.line&&n.from>=o.ch||a&&!a(n.marker)||s.push(n.marker.parent||n.marker)}++l}),s},getAllMarks:function(){var n=[];return this.iter(function(e){var t=e.markedSpans;if(t)for(var r=0;r<t.length;++r)null!=t[r].from&&n.push(t[r].marker)}),n},posFromIndex:function(r){var n,i=this.first,o=this.lineSeparator().length;return this.iter(function(e){var t=e.text.length+o;if(r<t)return n=r,!0;r-=t,++i}),Ce(this,ge(i,n))},indexFromPos:function(e){var t=(e=Ce(this,e)).ch;if(e.line<this.first||e.ch<0)return 0;var r=this.lineSeparator().length;return this.iter(this.first,e.line,function(e){t+=e.text.length+r}),t},copy:function(e){var t=new _o(ue(this,this.first,this.first+this.size),this.modeOption,this.first,this.lineSep,this.direction);return t.scrollTop=this.scrollTop,t.scrollLeft=this.scrollLeft,t.sel=this.sel,t.extend=!1,e&&(t.history.undoDepth=this.history.undoDepth,t.setHistory(this.getHistory())),t},linkedDoc:function(e){e||(e={});var t=this.first,r=this.first+this.size;null!=e.from&&e.from>t&&(t=e.from),null!=e.to&&e.to<r&&(r=e.to);var n=new _o(ue(this,t,r),e.mode||this.modeOption,t,this.lineSep,this.direction);return e.sharedHist&&(n.history=this.history),(this.linked||(this.linked=[])).push({doc:n,sharedHist:e.sharedHist}),n.linked=[{doc:this,isParent:!0,sharedHist:e.sharedHist}],function(e,t){for(var r=0;r<t.length;r++){var n=t[r],i=n.find(),o=e.clipPos(i.from),a=e.clipPos(i.to);if(ve(o,a)){var s=xo(e,o,a,n.primary,n.primary.type);n.markers.push(s),s.parent=n}}}(n,ko(this)),n},unlinkDoc:function(e){if(e instanceof ka&&(e=e.doc),this.linked)for(var t=0;t<this.linked.length;++t){if(this.linked[t].doc==e){this.linked.splice(t,1),e.unlinkDoc(this),Co(ko(this));break}}if(e.history==this.history){var r=[e.id];Ti(e,function(e){return r.push(e.id)},!0),e.history=new Ei(null),e.history.done=Wi(this.history.done,r),e.history.undone=Wi(this.history.undone,r)}},iterLinkedDocs:function(e){Ti(this,e)},getMode:function(){return this.mode},getEditor:function(){return this.cm},splitLines:function(e){return this.lineSep?e.split(this.lineSep):wt(e)},lineSeparator:function(){return this.lineSep||"\n"},setDirection:Xn(function(e){var t;("rtl"!=e&&(e="ltr"),e!=this.direction)&&(this.direction=e,this.iter(function(e){return e.order=null}),this.cm&&Vn(t=this.cm,function(){Oi(t),Yn(t)}))})}),_o.prototype.eachLine=_o.prototype.iter;var Lo=0;function Mo(e){var i=this;if(To(i),!ot(i,e)&&!xr(i.display,e)){ct(e),w&&(Lo=+new Date);var o=an(i,e,!0),t=e.dataTransfer.files;if(o&&!i.isReadOnly())if(t&&t.length&&window.FileReader&&window.File)for(var a=t.length,s=Array(a),l=0,r=function(e,r){if(!i.options.allowDropFileTypes||-1!=W(i.options.allowDropFileTypes,e.type)){var n=new FileReader;n.onload=$n(i,function(){var e=n.result;if(/[\x00-\x08\x0e-\x1f]{2}/.test(e)&&(e=""),s[r]=e,++l==a){var t={from:o=Ce(i.doc,o),to:o,text:i.doc.splitLines(s.join(i.doc.lineSeparator())),origin:"paste"};no(i.doc,t),Vi(i.doc,bi(o,xi(t)))}}),n.readAsText(e)}},n=0;n<a;++n)r(t[n],n);else{if(i.state.draggingText&&-1<i.doc.sel.contains(o))return i.state.draggingText(e),void setTimeout(function(){return i.display.input.focus()},20);try{var c=e.dataTransfer.getData("Text");if(c){var u;if(i.state.draggingText&&!i.state.draggingText.copy&&(u=i.listSelections()),Gi(i.doc,bi(o,o)),u)for(var f=0;f<u.length;++f)lo(i.doc,"",u[f].anchor,u[f].head,"drag");i.replaceSelection(c,"around","paste"),i.display.input.focus()}}catch(e){}}}}function To(e){e.display.dragCursor&&(e.display.lineSpace.removeChild(e.display.dragCursor),e.display.dragCursor=null)}function Ao(e){if(document.getElementsByClassName)for(var t=document.getElementsByClassName("CodeMirror"),r=0;r<t.length;r++){var n=t[r].CodeMirror;n&&e(n)}}var Oo=!1;function Eo(){var e;Oo||(tt(window,"resize",function(){null==e&&(e=setTimeout(function(){e=null,Ao(No)},100))}),tt(window,"blur",function(){return Ao(vn)}),Oo=!0)}function No(e){var t=e.display;t.cachedCharWidth=t.cachedTextHeight=t.cachedPaddingH=null,t.scrollbarsClipped=!1,e.setSize()}for(var Io={3:"Pause",8:"Backspace",9:"Tab",13:"Enter",16:"Shift",17:"Ctrl",18:"Alt",19:"Pause",20:"CapsLock",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"PrintScrn",45:"Insert",46:"Delete",59:";",61:"=",91:"Mod",92:"Mod",93:"Mod",106:"*",107:"=",109:"-",110:".",111:"/",127:"Delete",145:"ScrollLock",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'",63232:"Up",63233:"Down",63234:"Left",63235:"Right",63272:"Delete",63273:"Home",63275:"End",63276:"PageUp",63277:"PageDown",63302:"Insert"},Po=0;Po<10;Po++)Io[Po+48]=Io[Po+96]=String(Po);for(var Bo=65;Bo<=90;Bo++)Io[Bo]=String.fromCharCode(Bo);for(var Ro=1;Ro<=12;Ro++)Io[Ro+111]=Io[Ro+63235]="F"+Ro;var Do={};function Fo(e){var t,r,n,i,o=e.split(/-(?!$)/);e=o[o.length-1];for(var a=0;a<o.length-1;a++){var s=o[a];if(/^(cmd|meta|m)$/i.test(s))i=!0;else if(/^a(lt)?$/i.test(s))t=!0;else if(/^(c|ctrl|control)$/i.test(s))r=!0;else{if(!/^s(hift)?$/i.test(s))throw new Error("Unrecognized modifier name: "+s);n=!0}}return t&&(e="Alt-"+e),r&&(e="Ctrl-"+e),i&&(e="Cmd-"+e),n&&(e="Shift-"+e),e}function zo(e){var t={};for(var r in e)if(e.hasOwnProperty(r)){var n=e[r];if(/^(name|fallthrough|(de|at)tach)$/.test(r))continue;if("..."==n){delete e[r];continue}for(var i=Y(r.split(" "),Fo),o=0;o<i.length;o++){var a=void 0,s=void 0;a=o==i.length-1?(s=i.join(" "),n):(s=i.slice(0,o+1).join(" "),"...");var l=t[s];if(l){if(l!=a)throw new Error("Inconsistent bindings for "+s)}else t[s]=a}delete e[r]}for(var c in t)e[c]=t[c];return e}function Wo(e,t,r,n){var i=(t=Ko(t)).call?t.call(e,n):t[e];if(!1===i)return"nothing";if("..."===i)return"multi";if(null!=i&&r(i))return"handled";if(t.fallthrough){if("[object Array]"!=Object.prototype.toString.call(t.fallthrough))return Wo(e,t.fallthrough,r,n);for(var o=0;o<t.fallthrough.length;o++){var a=Wo(e,t.fallthrough[o],r,n);if(a)return a}}}function qo(e){var t="string"==typeof e?e:Io[e.keyCode];return"Ctrl"==t||"Alt"==t||"Shift"==t||"Mod"==t}function Ho(e,t,r){var n=e;return t.altKey&&"Alt"!=n&&(e="Alt-"+e),(y?t.metaKey:t.ctrlKey)&&"Ctrl"!=n&&(e="Ctrl-"+e),(y?t.ctrlKey:t.metaKey)&&"Cmd"!=n&&(e="Cmd-"+e),!r&&t.shiftKey&&"Shift"!=n&&(e="Shift-"+e),e}function jo(e,t){if(g&&34==e.keyCode&&e.char)return!1;var r=Io[e.keyCode];return null!=r&&!e.altGraphKey&&(3==e.keyCode&&e.code&&(r=e.code),Ho(r,e,t))}function Ko(e){return"string"==typeof e?Do[e]:e}function Uo(t,e){for(var r=t.doc.sel.ranges,n=[],i=0;i<r.length;i++){for(var o=e(r[i]);n.length&&ve(o.from,X(n).to)<=0;){var a=n.pop();if(ve(a.from,o.from)<0){o.from=a.from;break}}n.push(o)}Vn(t,function(){for(var e=n.length-1;0<=e;e--)lo(t.doc,"",n[e].from,n[e].to,"+delete");_n(t)})}function Vo(e,t,r){var n=oe(e.text,t+r,r);return n<0||n>e.text.length?null:n}function $o(e,t,r){var n=Vo(e,t.ch,r);return null==n?null:new ge(t.line,n,r<0?"after":"before")}function Go(e,t,r,n,i){if(e){var o=Ze(r,t.doc.direction);if(o){var a,s=i<0?X(o):o[0],l=i<0==(1==s.level)?"after":"before";if(0<s.level||"rtl"==t.doc.direction){var c=Or(t,r);a=i<0?r.text.length-1:0;var u=Er(t,c,a).top;a=ae(function(e){return Er(t,c,e).top==u},i<0==(1==s.level)?s.from:s.to-1,a),"before"==l&&(a=Vo(r,a,1))}else a=i<0?s.to:s.from;return new ge(n,a,l)}}return new ge(n,i<0?r.text.length:0,i<0?"before":"after")}Do.basic={Left:"goCharLeft",Right:"goCharRight",Up:"goLineUp",Down:"goLineDown",End:"goLineEnd",Home:"goLineStartSmart",PageUp:"goPageUp",PageDown:"goPageDown",Delete:"delCharAfter",Backspace:"delCharBefore","Shift-Backspace":"delCharBefore",Tab:"defaultTab","Shift-Tab":"indentAuto",Enter:"newlineAndIndent",Insert:"toggleOverwrite",Esc:"singleSelection"},Do.pcDefault={"Ctrl-A":"selectAll","Ctrl-D":"deleteLine","Ctrl-Z":"undo","Shift-Ctrl-Z":"redo","Ctrl-Y":"redo","Ctrl-Home":"goDocStart","Ctrl-End":"goDocEnd","Ctrl-Up":"goLineUp","Ctrl-Down":"goLineDown","Ctrl-Left":"goGroupLeft","Ctrl-Right":"goGroupRight","Alt-Left":"goLineStart","Alt-Right":"goLineEnd","Ctrl-Backspace":"delGroupBefore","Ctrl-Delete":"delGroupAfter","Ctrl-S":"save","Ctrl-F":"find","Ctrl-G":"findNext","Shift-Ctrl-G":"findPrev","Shift-Ctrl-F":"replace","Shift-Ctrl-R":"replaceAll","Ctrl-[":"indentLess","Ctrl-]":"indentMore","Ctrl-U":"undoSelection","Shift-Ctrl-U":"redoSelection","Alt-U":"redoSelection",fallthrough:"basic"},Do.emacsy={"Ctrl-F":"goCharRight","Ctrl-B":"goCharLeft","Ctrl-P":"goLineUp","Ctrl-N":"goLineDown","Alt-F":"goWordRight","Alt-B":"goWordLeft","Ctrl-A":"goLineStart","Ctrl-E":"goLineEnd","Ctrl-V":"goPageDown","Shift-Ctrl-V":"goPageUp","Ctrl-D":"delCharAfter","Ctrl-H":"delCharBefore","Alt-D":"delWordAfter","Alt-Backspace":"delWordBefore","Ctrl-K":"killLine","Ctrl-T":"transposeChars","Ctrl-O":"openLine"},Do.macDefault={"Cmd-A":"selectAll","Cmd-D":"deleteLine","Cmd-Z":"undo","Shift-Cmd-Z":"redo","Cmd-Y":"redo","Cmd-Home":"goDocStart","Cmd-Up":"goDocStart","Cmd-End":"goDocEnd","Cmd-Down":"goDocEnd","Alt-Left":"goGroupLeft","Alt-Right":"goGroupRight","Cmd-Left":"goLineLeft","Cmd-Right":"goLineRight","Alt-Backspace":"delGroupBefore","Ctrl-Alt-Backspace":"delGroupAfter","Alt-Delete":"delGroupAfter","Cmd-S":"save","Cmd-F":"find","Cmd-G":"findNext","Shift-Cmd-G":"findPrev","Cmd-Alt-F":"replace","Shift-Cmd-Alt-F":"replaceAll","Cmd-[":"indentLess","Cmd-]":"indentMore","Cmd-Backspace":"delWrappedLineLeft","Cmd-Delete":"delWrappedLineRight","Cmd-U":"undoSelection","Shift-Cmd-U":"redoSelection","Ctrl-Up":"goDocStart","Ctrl-Down":"goDocEnd",fallthrough:["basic","emacsy"]},Do.default=x?Do.macDefault:Do.pcDefault;var Xo={selectAll:to,singleSelection:function(e){return e.setSelection(e.getCursor("anchor"),e.getCursor("head"),j)},killLine:function(r){return Uo(r,function(e){if(e.empty()){var t=le(r.doc,e.head.line).text.length;return e.head.ch==t&&e.head.line<r.lastLine()?{from:e.head,to:ge(e.head.line+1,0)}:{from:e.head,to:ge(e.head.line,t)}}return{from:e.from(),to:e.to()}})},deleteLine:function(t){return Uo(t,function(e){return{from:ge(e.from().line,0),to:Ce(t.doc,ge(e.to().line+1,0))}})},delLineLeft:function(e){return Uo(e,function(e){return{from:ge(e.from().line,0),to:e.from()}})},delWrappedLineLeft:function(r){return Uo(r,function(e){var t=r.charCoords(e.head,"div").top+5;return{from:r.coordsChar({left:0,top:t},"div"),to:e.from()}})},delWrappedLineRight:function(n){return Uo(n,function(e){var t=n.charCoords(e.head,"div").top+5,r=n.coordsChar({left:n.display.lineDiv.offsetWidth+100,top:t},"div");return{from:e.from(),to:r}})},undo:function(e){return e.undo()},redo:function(e){return e.redo()},undoSelection:function(e){return e.undoSelection()},redoSelection:function(e){return e.redoSelection()},goDocStart:function(e){return e.extendSelection(ge(e.firstLine(),0))},goDocEnd:function(e){return e.extendSelection(ge(e.lastLine()))},goLineStart:function(t){return t.extendSelectionsBy(function(e){return Yo(t,e.head.line)},{origin:"+move",bias:1})},goLineStartSmart:function(t){return t.extendSelectionsBy(function(e){return Qo(t,e.head)},{origin:"+move",bias:1})},goLineEnd:function(t){return t.extendSelectionsBy(function(e){return function(e,t){var r=le(e.doc,t),n=function(e){for(var t;t=ze(e);)e=t.find(1,!0).line;return e}(r);n!=r&&(t=de(n));return Go(!0,e,r,t,-1)}(t,e.head.line)},{origin:"+move",bias:-1})},goLineRight:function(r){return r.extendSelectionsBy(function(e){var t=r.cursorCoords(e.head,"div").top+5;return r.coordsChar({left:r.display.lineDiv.offsetWidth+100,top:t},"div")},U)},goLineLeft:function(r){return r.extendSelectionsBy(function(e){var t=r.cursorCoords(e.head,"div").top+5;return r.coordsChar({left:0,top:t},"div")},U)},goLineLeftSmart:function(n){return n.extendSelectionsBy(function(e){var t=n.cursorCoords(e.head,"div").top+5,r=n.coordsChar({left:0,top:t},"div");return r.ch<n.getLine(r.line).search(/\S/)?Qo(n,e.head):r},U)},goLineUp:function(e){return e.moveV(-1,"line")},goLineDown:function(e){return e.moveV(1,"line")},goPageUp:function(e){return e.moveV(-1,"page")},goPageDown:function(e){return e.moveV(1,"page")},goCharLeft:function(e){return e.moveH(-1,"char")},goCharRight:function(e){return e.moveH(1,"char")},goColumnLeft:function(e){return e.moveH(-1,"column")},goColumnRight:function(e){return e.moveH(1,"column")},goWordLeft:function(e){return e.moveH(-1,"word")},goGroupRight:function(e){return e.moveH(1,"group")},goGroupLeft:function(e){return e.moveH(-1,"group")},goWordRight:function(e){return e.moveH(1,"word")},delCharBefore:function(e){return e.deleteH(-1,"char")},delCharAfter:function(e){return e.deleteH(1,"char")},delWordBefore:function(e){return e.deleteH(-1,"word")},delWordAfter:function(e){return e.deleteH(1,"word")},delGroupBefore:function(e){return e.deleteH(-1,"group")},delGroupAfter:function(e){return e.deleteH(1,"group")},indentAuto:function(e){return e.indentSelection("smart")},indentMore:function(e){return e.indentSelection("add")},indentLess:function(e){return e.indentSelection("subtract")},insertTab:function(e){return e.replaceSelection("\t")},insertSoftTab:function(e){for(var t=[],r=e.listSelections(),n=e.options.tabSize,i=0;i<r.length;i++){var o=r[i].from(),a=F(e.getLine(o.line),o.ch,n);t.push(G(n-a%n))}e.replaceSelections(t)},defaultTab:function(e){e.somethingSelected()?e.indentSelection("add"):e.execCommand("insertTab")},transposeChars:function(a){return Vn(a,function(){for(var e=a.listSelections(),t=[],r=0;r<e.length;r++)if(e[r].empty()){var n=e[r].head,i=le(a.doc,n.line).text;if(i)if(n.ch==i.length&&(n=new ge(n.line,n.ch-1)),0<n.ch)n=new ge(n.line,n.ch+1),a.replaceRange(i.charAt(n.ch-1)+i.charAt(n.ch-2),ge(n.line,n.ch-2),n,"+transpose");else if(n.line>a.doc.first){var o=le(a.doc,n.line-1).text;o&&(n=new ge(n.line,1),a.replaceRange(i.charAt(0)+a.doc.lineSeparator()+o.charAt(o.length-1),ge(n.line-1,o.length-1),n,"+transpose"))}t.push(new vi(n,n))}a.setSelections(t)})},newlineAndIndent:function(n){return Vn(n,function(){for(var e=n.listSelections(),t=e.length-1;0<=t;t--)n.replaceRange(n.doc.lineSeparator(),e[t].anchor,e[t].head,"+input");e=n.listSelections();for(var r=0;r<e.length;r++)n.indentLine(e[r].from().line,null,!0);_n(n)})},openLine:function(e){return e.replaceSelection("\n","start")},toggleOverwrite:function(e){return e.toggleOverwrite()}};function Yo(e,t){var r=le(e.doc,t),n=He(r);return n!=r&&(t=de(n)),Go(!0,e,n,t,1)}function Qo(e,t){var r=Yo(e,t.line),n=le(e.doc,r.line),i=Ze(n,e.doc.direction);if(i&&0!=i[0].level)return r;var o=Math.max(0,n.text.search(/\S/)),a=t.line==r.line&&t.ch<=o&&t.ch;return ge(r.line,a?0:o,r.sticky)}function Jo(e,t,r){if("string"==typeof t&&!(t=Xo[t]))return!1;e.display.input.ensurePolled();var n=e.display.shift,i=!1;try{e.isReadOnly()&&(e.state.suppressEdits=!0),r&&(e.display.shift=!1),i=t(e)!=H}finally{e.display.shift=n,e.state.suppressEdits=!1}return i}var Zo=new z;function ea(e,t,r,n){var i=e.state.keySeq;if(i){if(qo(t))return"handled";if(/\'$/.test(t)?e.state.keySeq=null:Zo.set(50,function(){e.state.keySeq==i&&(e.state.keySeq=null,e.display.input.reset())}),ta(e,i+" "+t,r,n))return!0}return ta(e,t,r,n)}function ta(e,t,r,n){var i=function(e,t,r){for(var n=0;n<e.state.keyMaps.length;n++){var i=Wo(t,e.state.keyMaps[n],r,e);if(i)return i}return e.options.extraKeys&&Wo(t,e.options.extraKeys,r,e)||Wo(t,e.options.keyMap,r,e)}(e,t,n);return"multi"==i&&(e.state.keySeq=t),"handled"==i&&sr(e,"keyHandled",e,t,r),"handled"!=i&&"multi"!=i||(ct(r),hn(e)),!!i}function ra(t,e){var r=jo(e,!0);return!!r&&(e.shiftKey&&!t.state.keySeq?ea(t,"Shift-"+r,e,function(e){return Jo(t,e,!0)})||ea(t,r,e,function(e){if("string"==typeof e?/^go[A-Z]/.test(e):e.motion)return Jo(t,e)}):ea(t,r,e,function(e){return Jo(t,e)}))}var na=null;function ia(e){var t=this;if(t.curOp.focus=N(),!ot(t,e)){w&&k<11&&27==e.keyCode&&(e.returnValue=!1);var r=e.keyCode;t.display.shift=16==r||e.shiftKey;var n=ra(t,e);g&&(na=n?r:null,!n&&88==r&&!Ct&&(x?e.metaKey:e.ctrlKey)&&t.replaceSelection("",null,"cut")),18!=r||/\bCodeMirror-crosshair\b/.test(t.display.lineDiv.className)||function(e){var t=e.display.lineDiv;function r(e){18!=e.keyCode&&e.altKey||(L(t,"CodeMirror-crosshair"),nt(document,"keyup",r),nt(document,"mouseover",r))}I(t,"CodeMirror-crosshair"),tt(document,"keyup",r),tt(document,"mouseover",r)}(t)}}function oa(e){16==e.keyCode&&(this.doc.sel.shift=!1),ot(this,e)}function aa(e){var t=this;if(!(xr(t.display,e)||ot(t,e)||e.ctrlKey&&!e.altKey||x&&e.metaKey)){var r=e.keyCode,n=e.charCode;if(g&&r==na)return na=null,void ct(e);if(!g||e.which&&!(e.which<10)||!ra(t,e)){var i,o=String.fromCharCode(null==n?r:n);if("\b"!=o)if(!ea(i=t,"'"+o+"'",e,function(e){return Jo(i,e,!0)}))t.display.input.onKeyPress(e)}}}var sa,la,ca=function(e,t,r){this.time=e,this.pos=t,this.button=r};function ua(e){var t=this,r=t.display;if(!(ot(t,e)||r.activeTouch&&r.input.supportsTouch()))if(r.input.ensurePolled(),r.shift=e.shiftKey,xr(r,e))b||(r.scroller.draggable=!1,setTimeout(function(){return r.scroller.draggable=!0},100));else if(!ha(t,e)){var n,i,o,a=an(t,e),s=pt(e),l=a?(n=a,i=s,o=+new Date,la&&la.compare(o,n,i)?(sa=la=null,"triple"):sa&&sa.compare(o,n,i)?(la=new ca(o,n,i),sa=null,"double"):(sa=new ca(o,n,i),la=null,"single")):"single";window.focus(),1==s&&t.state.selectingText&&t.state.selectingText(e),a&&function(r,e,n,t,i){var o="Click";"double"==t?o="Double"+o:"triple"==t&&(o="Triple"+o);return ea(r,Ho(o=(1==e?"Left":2==e?"Middle":"Right")+o,i),i,function(e){if("string"==typeof e&&(e=Xo[e]),!e)return!1;var t=!1;try{r.isReadOnly()&&(r.state.suppressEdits=!0),t=e(r,n)!=H}finally{r.state.suppressEdits=!1}return t})}(t,s,a,l,e)||(1==s?a?function(e,t,r,n){w?setTimeout(R(pn,e),0):e.curOp.focus=N();var i,o=function(e,t,r){var n=e.getOption("configureMouse"),i=n?n(e,t,r):{};if(null==i.unit){var o=h?r.shiftKey&&r.metaKey:r.altKey;i.unit=o?"rectangle":"single"==t?"char":"double"==t?"word":"line"}(null==i.extend||e.doc.extend)&&(i.extend=e.doc.extend||r.shiftKey);null==i.addNew&&(i.addNew=x?r.metaKey:r.ctrlKey);null==i.moveOnDrag&&(i.moveOnDrag=!(x?r.altKey:r.ctrlKey));return i}(e,r,n),a=e.doc.sel;e.options.dragDrop&&vt&&!e.isReadOnly()&&"single"==r&&-1<(i=a.contains(t))&&(ve((i=a.ranges[i]).from(),t)<0||0<t.xRel)&&(0<ve(i.to(),t)||t.xRel<0)?function(t,r,n,i){var o=t.display,a=!1,s=$n(t,function(e){b&&(o.scroller.draggable=!1),t.state.draggingText=!1,nt(o.wrapper.ownerDocument,"mouseup",s),nt(o.wrapper.ownerDocument,"mousemove",l),nt(o.scroller,"dragstart",c),nt(o.scroller,"drop",s),a||(ct(e),i.addNew||Hi(t.doc,n,null,null,i.extend),b||w&&9==k?setTimeout(function(){o.wrapper.ownerDocument.body.focus(),o.input.focus()},20):o.input.focus())}),l=function(e){a=a||10<=Math.abs(r.clientX-e.clientX)+Math.abs(r.clientY-e.clientY)},c=function(){return a=!0};b&&(o.scroller.draggable=!0);(t.state.draggingText=s).copy=!i.moveOnDrag,o.scroller.dragDrop&&o.scroller.dragDrop();tt(o.wrapper.ownerDocument,"mouseup",s),tt(o.wrapper.ownerDocument,"mousemove",l),tt(o.scroller,"dragstart",c),tt(o.scroller,"drop",s),mn(t),setTimeout(function(){return o.input.focus()},20)}(e,n,t,o):function(g,e,v,y){var a=g.display,b=g.doc;ct(e);var x,w,k=b.sel,t=k.ranges;y.addNew&&!y.extend?(w=b.sel.contains(v),x=-1<w?t[w]:new vi(v,v)):(x=b.sel.primary(),w=b.sel.primIndex);if("rectangle"==y.unit)y.addNew||(x=new vi(v,v)),v=an(g,e,!0,!0),w=-1;else{var r=fa(g,v,y.unit);x=y.extend?qi(x,r.anchor,r.head,y.extend):r}y.addNew?-1==w?(w=t.length,$i(b,yi(t.concat([x]),w),{scroll:!1,origin:"*mouse"})):1<t.length&&t[w].empty()&&"char"==y.unit&&!y.extend?($i(b,yi(t.slice(0,w).concat(t.slice(w+1)),0),{scroll:!1,origin:"*mouse"}),k=b.sel):Ki(b,w,x,K):($i(b,new gi([x],w=0),K),k=b.sel);var C=v;function s(e){if(0!=ve(C,e))if(C=e,"rectangle"==y.unit){for(var t=[],r=g.options.tabSize,n=F(le(b,v.line).text,v.ch,r),i=F(le(b,e.line).text,e.ch,r),o=Math.min(n,i),a=Math.max(n,i),s=Math.min(v.line,e.line),l=Math.min(g.lastLine(),Math.max(v.line,e.line));s<=l;s++){var c=le(b,s).text,u=V(c,o,r);o==a?t.push(new vi(ge(s,u),ge(s,u))):c.length>u&&t.push(new vi(ge(s,u),ge(s,V(c,a,r))))}t.length||t.push(new vi(v,v)),$i(b,yi(k.ranges.slice(0,w).concat(t),w),{origin:"*mouse",scroll:!1}),g.scrollIntoView(e)}else{var f,d=x,h=fa(g,e,y.unit),p=d.anchor;p=0<ve(h.anchor,p)?(f=h.head,we(d.from(),h.anchor)):(f=h.anchor,xe(d.to(),h.head));var m=k.ranges.slice(0);m[w]=function(e,t){var r=t.anchor,n=t.head,i=le(e.doc,r.line);if(0==ve(r,n)&&r.sticky==n.sticky)return t;var o=Ze(i);if(!o)return t;var a=Qe(o,r.ch,r.sticky),s=o[a];if(s.from!=r.ch&&s.to!=r.ch)return t;var l,c=a+(s.from==r.ch==(1!=s.level)?0:1);if(0==c||c==o.length)return t;if(n.line!=r.line)l=0<(n.line-r.line)*("ltr"==e.doc.direction?1:-1);else{var u=Qe(o,n.ch,n.sticky),f=u-a||(n.ch-r.ch)*(1==s.level?-1:1);l=u==c-1||u==c?f<0:0<f}var d=o[c+(l?-1:0)],h=l==(1==d.level),p=h?d.from:d.to,m=h?"after":"before";return r.ch==p&&r.sticky==m?t:new vi(new ge(r.line,p,m),n)}(g,new vi(Ce(b,p),f)),$i(b,yi(m,w),K)}}var l=a.wrapper.getBoundingClientRect(),c=0;function n(e){g.state.selectingText=!1,c=1/0,ct(e),a.input.focus(),nt(a.wrapper.ownerDocument,"mousemove",i),nt(a.wrapper.ownerDocument,"mouseup",o),b.history.lastSelOrigin=null}var i=$n(g,function(e){0!==e.buttons&&pt(e)?function e(t){var r=++c;var n=an(g,t,!0,"rectangle"==y.unit);if(!n)return;if(0!=ve(n,C)){g.curOp.focus=N(),s(n);var i=xn(a,b);(n.line>=i.to||n.line<i.from)&&setTimeout($n(g,function(){c==r&&e(t)}),150)}else{var o=t.clientY<l.top?-20:t.clientY>l.bottom?20:0;o&&setTimeout($n(g,function(){c==r&&(a.scroller.scrollTop+=o,e(t))}),50)}}(e):n(e)}),o=$n(g,n);g.state.selectingText=o,tt(a.wrapper.ownerDocument,"mousemove",i),tt(a.wrapper.ownerDocument,"mouseup",o)}(e,n,t,o)}(t,a,l,e):ht(e)==r.scroller&&ct(e):2==s?(a&&Hi(t.doc,a),setTimeout(function(){return r.input.focus()},20)):3==s&&(C?pa(t,e):mn(t)))}}function fa(e,t,r){if("char"==r)return new vi(t,t);if("word"==r)return e.findWordAt(t);if("line"==r)return new vi(ge(t.line,0),Ce(e.doc,ge(t.line+1,0)));var n=r(e,t);return new vi(n.from,n.to)}function da(e,t,r,n){var i,o;if(t.touches)i=t.touches[0].clientX,o=t.touches[0].clientY;else try{i=t.clientX,o=t.clientY}catch(t){return!1}if(i>=Math.floor(e.display.gutters.getBoundingClientRect().right))return!1;n&&ct(t);var a=e.display,s=a.lineDiv.getBoundingClientRect();if(o>s.bottom||!st(e,r))return ft(t);o-=s.top-a.viewOffset;for(var l=0;l<e.options.gutters.length;++l){var c=a.gutters.childNodes[l];if(c&&c.getBoundingClientRect().right>=i)return it(e,r,e,he(e.doc,o),e.options.gutters[l],t),ft(t)}}function ha(e,t){return da(e,t,"gutterClick",!0)}function pa(e,t){var r,n;xr(e.display,t)||(n=t,st(r=e,"gutterContextMenu")&&da(r,n,"gutterContextMenu",!1))||(ot(e,t,"contextmenu")||e.display.input.onContextMenu(t))}function ma(e){e.display.wrapper.className=e.display.wrapper.className.replace(/\s*cm-s-\S+/g,"")+e.options.theme.replace(/(^|\s)\s*/g," cm-s-"),Fr(e)}ca.prototype.compare=function(e,t,r){return this.time+400>e&&0==ve(t,this.pos)&&r==this.button};var ga={toString:function(){return"CodeMirror.Init"}},va={},ya={};function ba(e){ci(e),Yn(e),wn(e)}function xa(e,t,r){if(!t!=!(r&&r!=ga)){var n=e.display.dragFunctions,i=t?tt:nt;i(e.display.scroller,"dragstart",n.start),i(e.display.scroller,"dragenter",n.enter),i(e.display.scroller,"dragover",n.over),i(e.display.scroller,"dragleave",n.leave),i(e.display.scroller,"drop",n.drop)}}function wa(e){e.options.lineWrapping?(I(e.display.wrapper,"CodeMirror-wrap"),e.display.sizer.style.minWidth="",e.display.sizerWidth=null):(L(e.display.wrapper,"CodeMirror-wrap"),Xe(e)),on(e),Yn(e),Fr(e),setTimeout(function(){return Bn(e)},100)}function ka(e,t){var r=this;if(!(this instanceof ka))return new ka(e,t);this.options=t=t?D(t):{},D(va,t,!1),ui(t);var n=t.value;"string"==typeof n?n=new _o(n,t.mode,null,t.lineSeparator,t.direction):t.mode&&(n.modeOption=t.mode),this.doc=n;var i=new ka.inputStyles[t.inputStyle](this),o=this.display=new se(e,n,i);for(var a in ci(o.wrapper.CodeMirror=this),ma(this),t.lineWrapping&&(this.display.wrapper.className+=" CodeMirror-wrap"),Fn(this),this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:!1,delayingBlurEvent:!1,focused:!1,suppressEdits:!1,pasteIncoming:!1,cutIncoming:!1,selectingText:!1,draggingText:!1,highlight:new z,keySeq:null,specialChars:null},t.autofocus&&!d&&o.input.focus(),w&&k<11&&setTimeout(function(){return r.display.input.reset(!0)},20),function(i){var o=i.display;tt(o.scroller,"mousedown",$n(i,ua)),tt(o.scroller,"dblclick",w&&k<11?$n(i,function(e){if(!ot(i,e)){var t=an(i,e);if(t&&!ha(i,e)&&!xr(i.display,e)){ct(e);var r=i.findWordAt(t);Hi(i.doc,r.anchor,r.head)}}}):function(e){return ot(i,e)||ct(e)});C||tt(o.scroller,"contextmenu",function(e){return pa(i,e)});var r,n={end:0};function a(){o.activeTouch&&(r=setTimeout(function(){return o.activeTouch=null},1e3),(n=o.activeTouch).end=+new Date)}function s(e,t){if(null==t.left)return!0;var r=t.left-e.left,n=t.top-e.top;return 400<r*r+n*n}tt(o.scroller,"touchstart",function(e){if(!ot(i,e)&&!function(e){if(1!=e.touches.length)return!1;var t=e.touches[0];return t.radiusX<=1&&t.radiusY<=1}(e)&&!ha(i,e)){o.input.ensurePolled(),clearTimeout(r);var t=+new Date;o.activeTouch={start:t,moved:!1,prev:t-n.end<=300?n:null},1==e.touches.length&&(o.activeTouch.left=e.touches[0].pageX,o.activeTouch.top=e.touches[0].pageY)}}),tt(o.scroller,"touchmove",function(){o.activeTouch&&(o.activeTouch.moved=!0)}),tt(o.scroller,"touchend",function(e){var t=o.activeTouch;if(t&&!xr(o,e)&&null!=t.left&&!t.moved&&new Date-t.start<300){var r,n=i.coordsChar(o.activeTouch,"page");r=!t.prev||s(t,t.prev)?new vi(n,n):!t.prev.prev||s(t,t.prev.prev)?i.findWordAt(n):new vi(ge(n.line,0),Ce(i.doc,ge(n.line+1,0))),i.setSelection(r.anchor,r.head),i.focus(),ct(e)}a()}),tt(o.scroller,"touchcancel",a),tt(o.scroller,"scroll",function(){o.scroller.clientHeight&&(An(i,o.scroller.scrollTop),En(i,o.scroller.scrollLeft,!0),it(i,"scroll",i))}),tt(o.scroller,"mousewheel",function(e){return mi(i,e)}),tt(o.scroller,"DOMMouseScroll",function(e){return mi(i,e)}),tt(o.wrapper,"scroll",function(){return o.wrapper.scrollTop=o.wrapper.scrollLeft=0}),o.dragFunctions={enter:function(e){ot(i,e)||dt(e)},over:function(e){ot(i,e)||(!function(e,t){var r=an(e,t);if(r){var n=document.createDocumentFragment();un(e,r,n),e.display.dragCursor||(e.display.dragCursor=O("div",null,"CodeMirror-cursors CodeMirror-dragcursors"),e.display.lineSpace.insertBefore(e.display.dragCursor,e.display.cursorDiv)),T(e.display.dragCursor,n)}}(i,e),dt(e))},start:function(e){return function(e,t){if(w&&(!e.state.draggingText||+new Date-Lo<100))dt(t);else if(!ot(e,t)&&!xr(e.display,t)&&(t.dataTransfer.setData("Text",e.getSelection()),t.dataTransfer.effectAllowed="copyMove",t.dataTransfer.setDragImage&&!l)){var r=O("img",null,null,"position: fixed; left: 0; top: 0;");r.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",g&&(r.width=r.height=1,e.display.wrapper.appendChild(r),r._top=r.offsetTop),t.dataTransfer.setDragImage(r,0,0),g&&r.parentNode.removeChild(r)}}(i,e)},drop:$n(i,Mo),leave:function(e){ot(i,e)||To(i)}};var e=o.input.getField();tt(e,"keyup",function(e){return oa.call(i,e)}),tt(e,"keydown",$n(i,ia)),tt(e,"keypress",$n(i,aa)),tt(e,"focus",function(e){return gn(i,e)}),tt(e,"blur",function(e){return vn(i,e)})}(this),Eo(),Wn(this),this.curOp.forceUpdate=!0,Ai(this,n),t.autofocus&&!d||this.hasFocus()?setTimeout(R(gn,this),20):vn(this),ya)ya.hasOwnProperty(a)&&ya[a](r,t[a],ga);kn(this),t.finishInit&&t.finishInit(this);for(var s=0;s<Ca.length;++s)Ca[s](r);qn(this),b&&t.lineWrapping&&"optimizelegibility"==getComputedStyle(o.lineDiv).textRendering&&(o.lineDiv.style.textRendering="auto")}ka.defaults=va,ka.optionHandlers=ya;var Ca=[];function Sa(e,t,r,n){var i,o=e.doc;null==r&&(r="add"),"smart"==r&&(o.mode.indent?i=zt(e,t).state:r="prev");var a=e.options.tabSize,s=le(o,t),l=F(s.text,null,a);s.stateAfter&&(s.stateAfter=null);var c,u=s.text.match(/^\s*/)[0];if(n||/\S/.test(s.text)){if("smart"==r&&((c=o.mode.indent(i,s.text.slice(u.length),s.text))==H||150<c)){if(!n)return;r="prev"}}else c=0,r="not";"prev"==r?c=t>o.first?F(le(o,t-1).text,null,a):0:"add"==r?c=l+e.options.indentUnit:"subtract"==r?c=l-e.options.indentUnit:"number"==typeof r&&(c=l+r),c=Math.max(0,c);var f="",d=0;if(e.options.indentWithTabs)for(var h=Math.floor(c/a);h;--h)d+=a,f+="\t";if(d<c&&(f+=G(c-d)),f!=u)return lo(o,f,ge(t,0),ge(t,u.length),"+input"),!(s.stateAfter=null);for(var p=0;p<o.sel.ranges.length;p++){var m=o.sel.ranges[p];if(m.head.line==t&&m.head.ch<u.length){var g=ge(t,u.length);Ki(o,p,new vi(g,g));break}}}ka.defineInitHook=function(e){return Ca.push(e)};var _a=null;function La(e){_a=e}function Ma(e,t,r,n,i){var o=e.doc;e.display.shift=!1,n||(n=o.sel);var a,s=e.state.pasteIncoming||"paste"==i,l=wt(t),c=null;if(s&&1<n.ranges.length)if(_a&&_a.text.join("\n")==t){if(n.ranges.length%_a.text.length==0){c=[];for(var u=0;u<_a.text.length;u++)c.push(o.splitLines(_a.text[u]))}}else l.length==n.ranges.length&&e.options.pasteLinesPerSelection&&(c=Y(l,function(e){return[e]}));for(var f=n.ranges.length-1;0<=f;f--){var d=n.ranges[f],h=d.from(),p=d.to();d.empty()&&(r&&0<r?h=ge(h.line,h.ch-r):e.state.overwrite&&!s?p=ge(p.line,Math.min(le(o,p.line).text.length,p.ch+X(l).length)):_a&&_a.lineWise&&_a.text.join("\n")==t&&(h=p=ge(h.line,0))),a=e.curOp.updateInput;var m={from:h,to:p,text:c?c[f%c.length]:l,origin:i||(s?"paste":e.state.cutIncoming?"cut":"+input")};no(e.doc,m),sr(e,"inputRead",e,m)}t&&!s&&Aa(e,t),_n(e),e.curOp.updateInput=a,e.curOp.typing=!0,e.state.pasteIncoming=e.state.cutIncoming=!1}function Ta(e,t){var r=e.clipboardData&&e.clipboardData.getData("Text");if(r)return e.preventDefault(),t.isReadOnly()||t.options.disableInput||Vn(t,function(){return Ma(t,r,0,null,"paste")}),!0}function Aa(e,t){if(e.options.electricChars&&e.options.smartIndent)for(var r=e.doc.sel,n=r.ranges.length-1;0<=n;n--){var i=r.ranges[n];if(!(100<i.head.ch||n&&r.ranges[n-1].head.line==i.head.line)){var o=e.getModeAt(i.head),a=!1;if(o.electricChars){for(var s=0;s<o.electricChars.length;s++)if(-1<t.indexOf(o.electricChars.charAt(s))){a=Sa(e,i.head.line,"smart");break}}else o.electricInput&&o.electricInput.test(le(e.doc,i.head.line).text.slice(0,i.head.ch))&&(a=Sa(e,i.head.line,"smart"));a&&sr(e,"electricInput",e,i.head.line)}}}function Oa(e){for(var t=[],r=[],n=0;n<e.doc.sel.ranges.length;n++){var i=e.doc.sel.ranges[n].head.line,o={anchor:ge(i,0),head:ge(i+1,0)};r.push(o),t.push(e.getRange(o.anchor,o.head))}return{text:t,ranges:r}}function Ea(e,t){e.setAttribute("autocorrect","off"),e.setAttribute("autocapitalize","off"),e.setAttribute("spellcheck",!!t)}function Na(){var e=O("textarea",null,null,"position: absolute; bottom: -1em; padding: 0; width: 1px; height: 1em; outline: none"),t=O("div",[e],null,"overflow: hidden; position: relative; width: 3px; height: 0px;");return b?e.style.width="1000px":e.setAttribute("wrap","off"),u&&(e.style.border="1px solid black"),Ea(e),t}function Ia(n,i,o,e,a){var t=i,r=o,s=le(n,i.line);function l(e){var t,r;if(null==(t=a?function(t,r,s,e){var l=Ze(r,t.doc.direction);if(!l)return $o(r,s,e);s.ch>=r.text.length?(s.ch=r.text.length,s.sticky="before"):s.ch<=0&&(s.ch=0,s.sticky="after");var n=Qe(l,s.ch,s.sticky),i=l[n];if("ltr"==t.doc.direction&&i.level%2==0&&(0<e?i.to>s.ch:i.from<s.ch))return $o(r,s,e);var o,c=function(e,t){return Vo(r,e instanceof ge?e.ch:e,t)},a=function(e){return t.options.lineWrapping?(o=o||Or(t,r),Yr(t,r,o,e)):{begin:0,end:r.text.length}},u=a("before"==s.sticky?c(s,-1):s.ch);if("rtl"==t.doc.direction||1==i.level){var f=1==i.level==e<0,d=c(s,f?1:-1);if(null!=d&&(f?d<=i.to&&d<=u.end:d>=i.from&&d>=u.begin)){var h=f?"before":"after";return new ge(s.line,d,h)}}var p=function(e,t,r){for(var n=function(e,t){return t?new ge(s.line,c(e,1),"before"):new ge(s.line,e,"after")};0<=e&&e<l.length;e+=t){var i=l[e],o=0<t==(1!=i.level),a=o?r.begin:c(r.end,-1);if(i.from<=a&&a<i.to)return n(a,o);if(a=o?i.from:c(i.to,-1),r.begin<=a&&a<r.end)return n(a,o)}},m=p(n+e,e,u);if(m)return m;var g=0<e?u.end:c(u.begin,-1);return null==g||0<e&&g==r.text.length||!(m=p(0<e?0:l.length-1,e,a(g)))?null:m}(n.cm,s,i,o):$o(s,i,o))){if(e||(r=i.line+o)<n.first||r>=n.first+n.size||(i=new ge(r,i.ch,i.sticky),!(s=le(n,r))))return!1;i=Go(a,n.cm,s,i.line,o)}else i=t;return!0}if("char"==e)l();else if("column"==e)l(!0);else if("word"==e||"group"==e)for(var c=null,u="group"==e,f=n.cm&&n.cm.getHelper(i,"wordChars"),d=!0;!(o<0)||l(!d);d=!1){var h=s.text.charAt(i.ch)||"\n",p=te(h,f)?"w":u&&"\n"==h?"n":!u||/\s/.test(h)?null:"p";if(!u||d||p||(p="s"),c&&c!=p){o<0&&(o=1,l(),i.sticky="after");break}if(p&&(c=p),0<o&&!l(!d))break}var m=Zi(n,i,t,r,!0);return ye(t,m)&&(m.hitSide=!0),m}function Pa(e,t,r,n){var i,o,a=e.doc,s=t.left;if("page"==n){var l=Math.min(e.display.wrapper.clientHeight,window.innerHeight||document.documentElement.clientHeight),c=Math.max(l-.5*Zr(e.display),3);i=(0<r?t.bottom:t.top)+r*c}else"line"==n&&(i=0<r?t.bottom+3:t.top-3);for(;(o=Gr(e,s,i)).outside;){if(r<0?i<=0:i>=a.height){o.hitSide=!0;break}i+=5*r}return o}var Ba=function(e){this.cm=e,this.lastAnchorNode=this.lastAnchorOffset=this.lastFocusNode=this.lastFocusOffset=null,this.polling=new z,this.composing=null,this.gracePeriod=!1,this.readDOMTimeout=null};function Ra(e,t){var r=Ar(e,t.line);if(!r||r.hidden)return null;var n=le(e.doc,t.line),i=Mr(r,n,t.line),o=Ze(n,e.doc.direction),a="left";o&&(a=Qe(o,t.ch)%2?"right":"left");var s=Pr(i.map,t.ch,a);return s.offset="right"==s.collapse?s.end:s.start,s}function Da(e,t){return t&&(e.bad=!0),e}function Fa(e,t,r){var n;if(t==e.display.lineDiv){if(!(n=e.display.lineDiv.childNodes[r]))return Da(e.clipPos(ge(e.display.viewTo-1)),!0);t=null,r=0}else for(n=t;;n=n.parentNode){if(!n||n==e.display.lineDiv)return null;if(n.parentNode&&n.parentNode==e.display.lineDiv)break}for(var i=0;i<e.display.view.length;i++){var o=e.display.view[i];if(o.node==n)return za(o,t,r)}}function za(c,e,t){var r=c.text.firstChild,n=!1;if(!e||!E(r,e))return Da(ge(de(c.line),0),!0);if(e==r&&(n=!0,e=r.childNodes[t],t=0,!e)){var i=c.rest?X(c.rest):c.line;return Da(ge(de(i),i.text.length),n)}var o=3==e.nodeType?e:null,a=e;for(o||1!=e.childNodes.length||3!=e.firstChild.nodeType||(o=e.firstChild,t&&(t=o.nodeValue.length));a.parentNode!=r;)a=a.parentNode;var u=c.measure,f=u.maps;function s(e,t,r){for(var n=-1;n<(f?f.length:0);n++)for(var i=n<0?u.map:f[n],o=0;o<i.length;o+=3){var a=i[o+2];if(a==e||a==t){var s=de(n<0?c.line:c.rest[n]),l=i[o]+r;return(r<0||a!=e)&&(l=i[o+(r?1:0)]),ge(s,l)}}}var l=s(o,a,t);if(l)return Da(l,n);for(var d=a.nextSibling,h=o?o.nodeValue.length-t:0;d;d=d.nextSibling){if(l=s(d,d.firstChild,0))return Da(ge(l.line,l.ch-h),n);h+=d.textContent.length}for(var p=a.previousSibling,m=t;p;p=p.previousSibling){if(l=s(p,p.firstChild,-1))return Da(ge(l.line,l.ch+m),n);m+=p.textContent.length}}Ba.prototype.init=function(e){var t=this,a=this,s=a.cm,l=a.div=e.lineDiv;function r(e){if(!ot(s,e)){if(s.somethingSelected())La({lineWise:!1,text:s.getSelections()}),"cut"==e.type&&s.replaceSelection("",null,"cut");else{if(!s.options.lineWiseCopyCut)return;var t=Oa(s);La({lineWise:!0,text:t.text}),"cut"==e.type&&s.operation(function(){s.setSelections(t.ranges,0,j),s.replaceSelection("",null,"cut")})}if(e.clipboardData){e.clipboardData.clearData();var r=_a.text.join("\n");if(e.clipboardData.setData("Text",r),e.clipboardData.getData("Text")==r)return void e.preventDefault()}var n=Na(),i=n.firstChild;s.display.lineSpace.insertBefore(n,s.display.lineSpace.firstChild),i.value=_a.text.join("\n");var o=document.activeElement;B(i),setTimeout(function(){s.display.lineSpace.removeChild(n),o.focus(),o==l&&a.showPrimarySelection()},50)}}Ea(l,s.options.spellcheck),tt(l,"paste",function(e){ot(s,e)||Ta(e,s)||k<=11&&setTimeout($n(s,function(){return t.updateFromDOM()}),20)}),tt(l,"compositionstart",function(e){t.composing={data:e.data,done:!1}}),tt(l,"compositionupdate",function(e){t.composing||(t.composing={data:e.data,done:!1})}),tt(l,"compositionend",function(e){t.composing&&(e.data!=t.composing.data&&t.readFromDOMSoon(),t.composing.done=!0)}),tt(l,"touchstart",function(){return a.forceCompositionEnd()}),tt(l,"input",function(){t.composing||t.readFromDOMSoon()}),tt(l,"copy",r),tt(l,"cut",r)},Ba.prototype.prepareSelection=function(){var e=cn(this.cm,!1);return e.focus=this.cm.state.focused,e},Ba.prototype.showSelection=function(e,t){e&&this.cm.display.view.length&&((e.focus||t)&&this.showPrimarySelection(),this.showMultipleSelections(e))},Ba.prototype.getSelection=function(){return this.cm.display.wrapper.ownerDocument.getSelection()},Ba.prototype.showPrimarySelection=function(){var e=this.getSelection(),t=this.cm,r=t.doc.sel.primary(),n=r.from(),i=r.to();if(t.display.viewTo==t.display.viewFrom||n.line>=t.display.viewTo||i.line<t.display.viewFrom)e.removeAllRanges();else{var o=Fa(t,e.anchorNode,e.anchorOffset),a=Fa(t,e.focusNode,e.focusOffset);if(!o||o.bad||!a||a.bad||0!=ve(we(o,a),n)||0!=ve(xe(o,a),i)){var s=t.display.view,l=n.line>=t.display.viewFrom&&Ra(t,n)||{node:s[0].measure.map[2],offset:0},c=i.line<t.display.viewTo&&Ra(t,i);if(!c){var u=s[s.length-1].measure,f=u.maps?u.maps[u.maps.length-1]:u.map;c={node:f[f.length-1],offset:f[f.length-2]-f[f.length-3]}}if(l&&c){var d,h=e.rangeCount&&e.getRangeAt(0);try{d=_(l.node,l.offset,c.offset,c.node)}catch(e){}d&&(!m&&t.state.focused?(e.collapse(l.node,l.offset),d.collapsed||(e.removeAllRanges(),e.addRange(d))):(e.removeAllRanges(),e.addRange(d)),h&&null==e.anchorNode?e.addRange(h):m&&this.startGracePeriod()),this.rememberSelection()}else e.removeAllRanges()}}},Ba.prototype.startGracePeriod=function(){var e=this;clearTimeout(this.gracePeriod),this.gracePeriod=setTimeout(function(){e.gracePeriod=!1,e.selectionChanged()&&e.cm.operation(function(){return e.cm.curOp.selectionChanged=!0})},20)},Ba.prototype.showMultipleSelections=function(e){T(this.cm.display.cursorDiv,e.cursors),T(this.cm.display.selectionDiv,e.selection)},Ba.prototype.rememberSelection=function(){var e=this.getSelection();this.lastAnchorNode=e.anchorNode,this.lastAnchorOffset=e.anchorOffset,this.lastFocusNode=e.focusNode,this.lastFocusOffset=e.focusOffset},Ba.prototype.selectionInEditor=function(){var e=this.getSelection();if(!e.rangeCount)return!1;var t=e.getRangeAt(0).commonAncestorContainer;return E(this.div,t)},Ba.prototype.focus=function(){"nocursor"!=this.cm.options.readOnly&&(this.selectionInEditor()||this.showSelection(this.prepareSelection(),!0),this.div.focus())},Ba.prototype.blur=function(){this.div.blur()},Ba.prototype.getField=function(){return this.div},Ba.prototype.supportsTouch=function(){return!0},Ba.prototype.receivedFocus=function(){var t=this;this.selectionInEditor()?this.pollSelection():Vn(this.cm,function(){return t.cm.curOp.selectionChanged=!0}),this.polling.set(this.cm.options.pollInterval,function e(){t.cm.state.focused&&(t.pollSelection(),t.polling.set(t.cm.options.pollInterval,e))})},Ba.prototype.selectionChanged=function(){var e=this.getSelection();return e.anchorNode!=this.lastAnchorNode||e.anchorOffset!=this.lastAnchorOffset||e.focusNode!=this.lastFocusNode||e.focusOffset!=this.lastFocusOffset},Ba.prototype.pollSelection=function(){if(null==this.readDOMTimeout&&!this.gracePeriod&&this.selectionChanged()){var e=this.getSelection(),t=this.cm;if(f&&a&&this.cm.options.gutters.length&&function(e){for(var t=e;t;t=t.parentNode)if(/CodeMirror-gutter-wrapper/.test(t.className))return!0;return!1}(e.anchorNode))return this.cm.triggerOnKeyDown({type:"keydown",keyCode:8,preventDefault:Math.abs}),this.blur(),void this.focus();if(!this.composing){this.rememberSelection();var r=Fa(t,e.anchorNode,e.anchorOffset),n=Fa(t,e.focusNode,e.focusOffset);r&&n&&Vn(t,function(){$i(t.doc,bi(r,n),j),(r.bad||n.bad)&&(t.curOp.selectionChanged=!0)})}}},Ba.prototype.pollContent=function(){null!=this.readDOMTimeout&&(clearTimeout(this.readDOMTimeout),this.readDOMTimeout=null);var e,t,r,n=this.cm,i=n.display,o=n.doc.sel.primary(),a=o.from(),s=o.to();if(0==a.ch&&a.line>n.firstLine()&&(a=ge(a.line-1,le(n.doc,a.line-1).length)),s.ch==le(n.doc,s.line).text.length&&s.line<n.lastLine()&&(s=ge(s.line+1,0)),a.line<i.viewFrom||s.line>i.viewTo-1)return!1;r=a.line==i.viewFrom||0==(e=sn(n,a.line))?(t=de(i.view[0].line),i.view[0].node):(t=de(i.view[e].line),i.view[e-1].node.nextSibling);var l,c,u=sn(n,s.line);if(c=u==i.view.length-1?(l=i.viewTo-1,i.lineDiv.lastChild):(l=de(i.view[u+1].line)-1,i.view[u+1].node.previousSibling),!r)return!1;for(var f=n.doc.splitLines(function(l,e,t,c,u){var r="",f=!1,d=l.doc.lineSeparator(),h=!1;function p(){f&&(r+=d,h&&(r+=d),f=h=!1)}function m(e){e&&(p(),r+=e)}function g(e){if(1==e.nodeType){var t=e.getAttribute("cm-text");if(t)return void m(t);var r,n=e.getAttribute("cm-marker");if(n){var i=l.findMarks(ge(c,0),ge(u+1,0),(s=+n,function(e){return e.id==s}));return void(i.length&&(r=i[0].find(0))&&m(ce(l.doc,r.from,r.to).join(d)))}if("false"==e.getAttribute("contenteditable"))return;var o=/^(pre|div|p|li|table|br)$/i.test(e.nodeName);if(!/^br$/i.test(e.nodeName)&&0==e.textContent.length)return;o&&p();for(var a=0;a<e.childNodes.length;a++)g(e.childNodes[a]);/^(pre|p)$/i.test(e.nodeName)&&(h=!0),o&&(f=!0)}else 3==e.nodeType&&m(e.nodeValue.replace(/\u200b/g,"").replace(/\u00a0/g," "));var s}for(;g(e),e!=t;)e=e.nextSibling,h=!1;return r}(n,r,c,t,l)),d=ce(n.doc,ge(t,0),ge(l,le(n.doc,l).text.length));1<f.length&&1<d.length;)if(X(f)==X(d))f.pop(),d.pop(),l--;else{if(f[0]!=d[0])break;f.shift(),d.shift(),t++}for(var h=0,p=0,m=f[0],g=d[0],v=Math.min(m.length,g.length);h<v&&m.charCodeAt(h)==g.charCodeAt(h);)++h;for(var y=X(f),b=X(d),x=Math.min(y.length-(1==f.length?h:0),b.length-(1==d.length?h:0));p<x&&y.charCodeAt(y.length-p-1)==b.charCodeAt(b.length-p-1);)++p;if(1==f.length&&1==d.length&&t==a.line)for(;h&&h>a.ch&&y.charCodeAt(y.length-p-1)==b.charCodeAt(b.length-p-1);)h--,p++;f[f.length-1]=y.slice(0,y.length-p).replace(/^\u200b+/,""),f[0]=f[0].slice(h).replace(/\u200b+$/,"");var w=ge(t,h),k=ge(l,d.length?X(d).length-p:0);return 1<f.length||f[0]||ve(w,k)?(lo(n.doc,f,w,k,"+input"),!0):void 0},Ba.prototype.ensurePolled=function(){this.forceCompositionEnd()},Ba.prototype.reset=function(){this.forceCompositionEnd()},Ba.prototype.forceCompositionEnd=function(){this.composing&&(clearTimeout(this.readDOMTimeout),this.composing=null,this.updateFromDOM(),this.div.blur(),this.div.focus())},Ba.prototype.readFromDOMSoon=function(){var e=this;null==this.readDOMTimeout&&(this.readDOMTimeout=setTimeout(function(){if(e.readDOMTimeout=null,e.composing){if(!e.composing.done)return;e.composing=null}e.updateFromDOM()},80))},Ba.prototype.updateFromDOM=function(){var e=this;!this.cm.isReadOnly()&&this.pollContent()||Vn(this.cm,function(){return Yn(e.cm)})},Ba.prototype.setUneditable=function(e){e.contentEditable="false"},Ba.prototype.onKeyPress=function(e){0==e.charCode||this.composing||(e.preventDefault(),this.cm.isReadOnly()||$n(this.cm,Ma)(this.cm,String.fromCharCode(null==e.charCode?e.keyCode:e.charCode),0))},Ba.prototype.readOnlyChanged=function(e){this.div.contentEditable=String("nocursor"!=e)},Ba.prototype.onContextMenu=function(){},Ba.prototype.resetPosition=function(){},Ba.prototype.needsContentAttribute=!0;var Wa,qa,Ha,ja=function(e){this.cm=e,this.prevInput="",this.pollingFast=!1,this.polling=new z,this.hasSelection=!1,this.composing=null};ja.prototype.init=function(t){var e=this,r=this,n=this.cm;this.createField(t);var i=this.textarea;function o(e){if(!ot(n,e)){if(n.somethingSelected())La({lineWise:!1,text:n.getSelections()});else{if(!n.options.lineWiseCopyCut)return;var t=Oa(n);La({lineWise:!0,text:t.text}),"cut"==e.type?n.setSelections(t.ranges,null,j):(r.prevInput="",i.value=t.text.join("\n"),B(i))}"cut"==e.type&&(n.state.cutIncoming=!0)}}t.wrapper.insertBefore(this.wrapper,t.wrapper.firstChild),u&&(i.style.width="0px"),tt(i,"input",function(){w&&9<=k&&e.hasSelection&&(e.hasSelection=null),r.poll()}),tt(i,"paste",function(e){ot(n,e)||Ta(e,n)||(n.state.pasteIncoming=!0,r.fastPoll())}),tt(i,"cut",o),tt(i,"copy",o),tt(t.scroller,"paste",function(e){xr(t,e)||ot(n,e)||(n.state.pasteIncoming=!0,r.focus())}),tt(t.lineSpace,"selectstart",function(e){xr(t,e)||ct(e)}),tt(i,"compositionstart",function(){var e=n.getCursor("from");r.composing&&r.composing.range.clear(),r.composing={start:e,range:n.markText(e,n.getCursor("to"),{className:"CodeMirror-composing"})}}),tt(i,"compositionend",function(){r.composing&&(r.poll(),r.composing.range.clear(),r.composing=null)})},ja.prototype.createField=function(e){this.wrapper=Na(),this.textarea=this.wrapper.firstChild},ja.prototype.prepareSelection=function(){var e=this.cm,t=e.display,r=e.doc,n=cn(e);if(e.options.moveInputWithCursor){var i=Ur(e,r.sel.primary().head,"div"),o=t.wrapper.getBoundingClientRect(),a=t.lineDiv.getBoundingClientRect();n.teTop=Math.max(0,Math.min(t.wrapper.clientHeight-10,i.top+a.top-o.top)),n.teLeft=Math.max(0,Math.min(t.wrapper.clientWidth-10,i.left+a.left-o.left))}return n},ja.prototype.showSelection=function(e){var t=this.cm.display;T(t.cursorDiv,e.cursors),T(t.selectionDiv,e.selection),null!=e.teTop&&(this.wrapper.style.top=e.teTop+"px",this.wrapper.style.left=e.teLeft+"px")},ja.prototype.reset=function(e){if(!this.contextMenuPending&&!this.composing){var t=this.cm;if(t.somethingSelected()){this.prevInput="";var r=t.getSelection();this.textarea.value=r,t.state.focused&&B(this.textarea),w&&9<=k&&(this.hasSelection=r)}else e||(this.prevInput=this.textarea.value="",w&&9<=k&&(this.hasSelection=null))}},ja.prototype.getField=function(){return this.textarea},ja.prototype.supportsTouch=function(){return!1},ja.