git ssb

0+

dinoworm 🐛 / campjs-viii-ludditejs



Tree: 7035a2f6072240b57a7c704b6a70b352a7fb8a19

Files: 7035a2f6072240b57a7c704b6a70b352a7fb8a19 / index.html

884847 bytesRaw
1<!DOCTYPE html>
2<html>
3 <head>
4 <meta charset="utf-8" />
5 <title>campjs-viii-2017</title>
6 <style>
7 body {
8 font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
9}
10h1, h2, h3 {
11 font-weight: 400;
12 margin-bottom: 0;
13 margin-top: 0.15em;
14}
15.remark-slide-content {
16 font-size: 2.0em;
17 line-height: 1.2;
18}
19.remark-slide-content h1 {
20 font-size: 3.5em;
21}
22.remark-slide-content h2 {
23 font-size: 3em;
24}
25.remark-slide-content h3 {
26 font-size: 2.2em;
27}
28.footnote {
29 position: absolute;
30 bottom: 3em;
31}
32li p { line-height: 1.25em; }
33.red { color: #fa0000; }
34.large { font-size: 2em; }
35a, a > code {
36 color: rgb(249, 38, 114);
37 text-decoration: none;
38}
39code {
40 background: none repeat scroll 0 0 #F8F8FF;
41 border: 1px solid #DEDEDE;
42 border-radius: 3px ;
43 padding: 0 0.2em;
44}
45.remark-code, .remark-inline-code { font-family: "Bitstream Vera Sans Mono", "Courier", monospace; }
46.remark-code-line-highlighted { background-color: #373832; }
47.pull-left {
48 float: left;
49 width: 47%;
50}
51.pull-right {
52 float: right;
53 width: 47%;
54}
55.pull-right ~ p {
56 clear: both;
57}
58#slideshow .slide .content code {
59 font-size: 0.8em;
60}
61#slideshow .slide .content pre code {
62 font-size: 0.9em;
63 padding: 15px;
64}
65.main-title, .title {
66 background: #272822;
67 color: #777872;
68 text-shadow: 0 0 20px #333;
69}
70.title h1, .title h2, .main-title h1, .main-title h2 {
71 color: #f3f3f3;
72 line-height: 1.2em;
73}
74.remark-code {
75 display: block;
76 padding: 0.5em;
77}
78
79.row {
80 display: flex;
81 justify-content: space-around;
82}
83
84.center {
85 margin: 0 auto;
86}
87
88 </style>
89 </head>
90 <body>
91 <textarea id="source">
92# luddite.js
93
94---
95
96## hey [CampJS VIII](http://viii.campjs.com)
97
98i'm [Mikey (@ahdinosaur)](http://dinosaur.is) from [Enspiral](http://enspiral.com)
99
100<div class="row">
101 <a href="http://dinosaur.is.com">
102 <img alt="Mikey's avatar" src="./avatar.png" width="200" />
103 </a>
104 <a href="http://enspiral.com">
105 <img alt="Enspiral logo" src="./enspiral.png" width="200" />
106 </a>
107</div>
108
109slides are available at <http://dinosaur.is/campjs-viii-ludditejs>.
110
111???
112
113second time presenting at a conference.
114
115apologies in advance if i disguise any opinions as facts.
116
117---
118
119# what?
120
121this talk is a mashup of a few topics:
122
123- why you only need simple functions and objects to build complex systems
124- why the best modules should not have any added sugar
125- how "mad science" led to the success of Node.js and thus JavaScript
126- why TC39 (the committee behind ES6+) is bad for JavaScript
127- why you should ignore "modern JavaScript" (promises, classes, `async` / `await`, generators, and beyond).
128
129---
130
131# first, some simplified history...,
132
133---
134
135# 2009
136
137## nobody cares about JavaScript
138
139> it's a toy language
140
141## Ryan Dahl (@ry) creates Node.js
142
143[watch the original presentation](https://www.youtube.com/watch?v=ztspvPYybIY)
144
145> To provide a *purely evented*, *non-blocking* infrastructure to script *highly concurrent* programs.
146
147(original website [here](https://web.archive.org/web/20091003131634/http://nodejs.org/))
148
149
150???
151
152// core-less node? https://github.com/nodejs/node/issues/7098
153// https://github.com/nucleus-js/design
154
155---
156
157## function
158
159```js
160function (...args) {
161 return value
162}
163```
164
165---
166
167## module
168
169here's the CommonJS module system, as used and popularized by Node.js
170
171```js
172// cat.js
173require('cat-names').random
174```
175```js
176// cat-loop.js
177const cat = require('./cat')
178
179setInterval(() => {
180 console.log(cat())
181})
182```
183
184---
185
186# [the module wrapper](https://nodejs.org/api/modules.html#modules_the_module_wrapper)
187
188every module is actually wrapped in a closure
189
190```js
191(function (exports, require, module, __filename, __dirname) {
192 // your module code actually lives in here
193})
194```
195
196---
197
198# [how require works](https://github.com/maxogden/art-of-node#how-require-works)
199
200> When you call `require('some_module')` in node here is what happens:
201>
202> 1. if a file called `some_module.js` exists in the current folder node will load that, otherwise:
203> 2. node looks in the current folder for a `node_modules` folder with a `some_module` folder in it
204> 3. if it doesn't find it, it will go up one folder and repeat step 2
205>
206> This cycle repeats until node reaches the root folder of the filesystem, at which point it will then check any global module folders (e.g. `/usr/local/node_modules` on Mac OS) and if it still doesn't find `some_module` it will throw an exception.
207
208---
209
210# [the Node aesthetic](http://substack.net/node_aesthetic)
211
212> - Callback austerity: Simplicity, asyncronous nature and nice additions that are included like the event system.
213> - Limited surface area: Using modules instead of extending them, NPM, re-usable interfaces and simple, consistent function calls.
214> - Batteries not included: Only few modules in the core distribution – reduces clutter, version dependencies and bureaucracy.
215> - Radical reusability: Breaking up a problem in small pieces, NPM module locations, great versioning approach
216
217
218---
219
220# factory
221
222> “The problem with object-oriented languages is they’ve got all this implicit environment that they carry around with them. You wanted a banana but what you got was a gorilla holding the banana and the entire jungle.” ~ Joe Armstrong
223
224- [The Two Pillars of JavaScript Part 1: How to Escape the 7th Circle of Hell](https://medium.com/javascript-scene/the-two-pillars-of-javascript-ee6f3281e7f3)
225- [`stampit`](https://github.com/stampit-org/stampit)
226
227???
228
229TODO two ways of handling errors: throw err and cb(err)
230how it's important to throw 'programmer errors'
231
232---
233
234# callback
235
236- [`run-series`](https://github.com/feross/run-series)
237- [`run-parallel`](https://github.com/feross/run-parallel)
238- [`run-auto`](https://github.com/feross/run-auto)
239- [`run-waterfall`](https://github.com/feross/run-waterfall)
240
241---
242
243# continuable
244
245a "continuable" is a function that takes a single argument, a node-style (error-1st) callback.
246
247```js
248const continuable = (cb) => {
249 // do stuff...
250 cb(err, data)
251}
252```
253
254- [`continuable`](https://github.com/Raynos/continuable)
255- [`cont`](https://github.com/dominictarr/cont)
256
257---
258
259# observable
260
261> - `thing()` gets the value
262> - `thing.set(...)` sets the value
263> - `thing(function (value) { ... })` listens to the value.
264
265- [`observ`](https://github.com/Raynos/observ)
266- [`observable`](https://github.com/dominictarr/observable)
267- [`push-stream`](https://github.com/ahdinosaur/push-stream)
268- [`mutant`](https://github.com/mmckegg/mutant)
269
270---
271
272# stream
273
274- [`pull-stream`](https://pull-stream.github.io)
275- [pull streams](http://dominictarr.com/post/149248845122/pull-streams-pull-streams-are-a-very-simple)
276- [pull-stream-examples](https://github.com/dominictarr/pull-stream-examples)
277
278---
279
280# references
281
282- [es2040](https://github.com/ahdinosaur/es2040)
283- [Art of Node](https://github.com/maxogden/art-of-node)
284- [Art of I/O](http://ioschool.is/art-of-io/sessions/0/?notes=true)
285- [Tiny Guide to Non Fancy Node](https://github.com/yoshuawuyts/tiny-guide-to-non-fancy-node)
286
287???
288
289TODO luddite.js apps:
290
291- https://webtorrent.io/
292- http://standardjs.com/
293- https://peermaps.github.io/
294- http://loopjs.com/
295- https://scuttlebot.io/
296- https://choo.io/
297
298 </textarea>
299 <script>require=(function(e,t,n){function i(n,s){if(!t[n]){if(!e[n]){var o=typeof require=="function"&&require;if(!s&&o)return o(n,!0);if(r)return r(n,!0);throw new Error("Cannot find module '"+n+"'")}var u=t[n]={exports:{}};e[n][0].call(u.exports,function(t){var r=e[n][1][t];return i(r?r:t)},u,u.exports)}return t[n].exports}var r=typeof require=="function"&&require;for(var s=0;s<n.length;s++)i(n[s]);return i})({"components/printing":[function(require,module,exports){
300module.exports=require('yoGRCZ');
301},{}],"yoGRCZ":[function(require,module,exports){
302var EventEmitter = require('events').EventEmitter
303 , styler = require('components/styler')
304 ;
305
306var LANDSCAPE = 'landscape'
307 , PORTRAIT = 'portrait'
308 , PAGE_HEIGHT = 681
309 , PAGE_WIDTH = 908
310 ;
311
312function PrintComponent () {}
313
314// Add eventing
315PrintComponent.prototype = new EventEmitter();
316
317// Sets up listener for printing
318PrintComponent.prototype.init = function () {
319 var self = this;
320
321 this.setPageOrientation(LANDSCAPE);
322
323 if (!window.matchMedia) {
324 return false;
325 }
326
327 window.matchMedia('print').addListener(function (e) {
328 self.onPrint(e);
329 });
330};
331
332// Handles printing event
333PrintComponent.prototype.onPrint = function (e) {
334 var slideHeight;
335
336 if (!e.matches) {
337 return;
338 }
339
340 this.emit('print', {
341 isPortrait: this._orientation === 'portrait'
342 , pageHeight: this._pageHeight
343 , pageWidth: this._pageWidth
344 });
345};
346
347PrintComponent.prototype.setPageOrientation = function (orientation) {
348 if (orientation === PORTRAIT) {
349 // Flip dimensions for portrait orientation
350 this._pageHeight = PAGE_WIDTH;
351 this._pageWidth = PAGE_HEIGHT;
352 }
353 else if (orientation === LANDSCAPE) {
354 this._pageHeight = PAGE_HEIGHT;
355 this._pageWidth = PAGE_WIDTH;
356 }
357 else {
358 throw new Error('Unknown print orientation: ' + orientation);
359 }
360
361 this._orientation = orientation;
362
363 styler.setPageSize(this._pageWidth + 'px ' + this._pageHeight + 'px');
364};
365
366// Export singleton instance
367module.exports = new PrintComponent();
368
369},{"events":1,"components/styler":"syTcZF"}],"components/slide-number":[function(require,module,exports){
370module.exports=require('GSZq7a');
371},{}],"GSZq7a":[function(require,module,exports){
372module.exports = SlideNumberViewModel;
373
374function SlideNumberViewModel (slide, slideshow) {
375 var self = this;
376
377 self.slide = slide;
378 self.slideshow = slideshow;
379
380 self.element = document.createElement('div');
381 self.element.className = 'remark-slide-number';
382 self.element.innerHTML = formatSlideNumber(self.slide, self.slideshow);
383}
384
385function formatSlideNumber (slide, slideshow) {
386 var format = slideshow.getSlideNumberFormat()
387 , slides = slideshow.getSlides()
388 , current = getSlideNo(slide, slideshow)
389 , total = getSlideNo(slides[slides.length - 1], slideshow)
390 ;
391
392 if (typeof format === 'function') {
393 return format.call(slideshow, current, total);
394 }
395
396 return format
397 .replace('%current%', current)
398 .replace('%total%', total);
399}
400
401function getSlideNo (slide, slideshow) {
402 var slides = slideshow.getSlides(), i, slideNo = 0;
403
404 for (i = 0; i <= slide.getSlideIndex() && i < slides.length; ++i) {
405 if (slides[i].properties.count !== 'false') {
406 slideNo += 1;
407 }
408 }
409
410 return Math.max(1, slideNo);
411}
412
413},{}],2:[function(require,module,exports){
414// shim for using process in browser
415
416var process = module.exports = {};
417
418process.nextTick = (function () {
419 var canSetImmediate = typeof window !== 'undefined'
420 && window.setImmediate;
421 var canPost = typeof window !== 'undefined'
422 && window.postMessage && window.addEventListener
423 ;
424
425 if (canSetImmediate) {
426 return function (f) { return window.setImmediate(f) };
427 }
428
429 if (canPost) {
430 var queue = [];
431 window.addEventListener('message', function (ev) {
432 var source = ev.source;
433 if ((source === window || source === null) && ev.data === 'process-tick') {
434 ev.stopPropagation();
435 if (queue.length > 0) {
436 var fn = queue.shift();
437 fn();
438 }
439 }
440 }, true);
441
442 return function nextTick(fn) {
443 queue.push(fn);
444 window.postMessage('process-tick', '*');
445 };
446 }
447
448 return function nextTick(fn) {
449 setTimeout(fn, 0);
450 };
451})();
452
453process.title = 'browser';
454process.browser = true;
455process.env = {};
456process.argv = [];
457
458process.binding = function (name) {
459 throw new Error('process.binding is not supported');
460}
461
462// TODO(shtylman)
463process.cwd = function () { return '/' };
464process.chdir = function (dir) {
465 throw new Error('process.chdir is not supported');
466};
467
468},{}],1:[function(require,module,exports){
469(function(process){if (!process.EventEmitter) process.EventEmitter = function () {};
470
471var EventEmitter = exports.EventEmitter = process.EventEmitter;
472var isArray = typeof Array.isArray === 'function'
473 ? Array.isArray
474 : function (xs) {
475 return Object.prototype.toString.call(xs) === '[object Array]'
476 }
477;
478function indexOf (xs, x) {
479 if (xs.indexOf) return xs.indexOf(x);
480 for (var i = 0; i < xs.length; i++) {
481 if (x === xs[i]) return i;
482 }
483 return -1;
484}
485
486// By default EventEmitters will print a warning if more than
487// 10 listeners are added to it. This is a useful default which
488// helps finding memory leaks.
489//
490// Obviously not all Emitters should be limited to 10. This function allows
491// that to be increased. Set to zero for unlimited.
492var defaultMaxListeners = 10;
493EventEmitter.prototype.setMaxListeners = function(n) {
494 if (!this._events) this._events = {};
495 this._events.maxListeners = n;
496};
497
498
499EventEmitter.prototype.emit = function(type) {
500 // If there is no 'error' event listener then throw.
501 if (type === 'error') {
502 if (!this._events || !this._events.error ||
503 (isArray(this._events.error) && !this._events.error.length))
504 {
505 if (arguments[1] instanceof Error) {
506 throw arguments[1]; // Unhandled 'error' event
507 } else {
508 throw new Error("Uncaught, unspecified 'error' event.");
509 }
510 return false;
511 }
512 }
513
514 if (!this._events) return false;
515 var handler = this._events[type];
516 if (!handler) return false;
517
518 if (typeof handler == 'function') {
519 switch (arguments.length) {
520 // fast cases
521 case 1:
522 handler.call(this);
523 break;
524 case 2:
525 handler.call(this, arguments[1]);
526 break;
527 case 3:
528 handler.call(this, arguments[1], arguments[2]);
529 break;
530 // slower
531 default:
532 var args = Array.prototype.slice.call(arguments, 1);
533 handler.apply(this, args);
534 }
535 return true;
536
537 } else if (isArray(handler)) {
538 var args = Array.prototype.slice.call(arguments, 1);
539
540 var listeners = handler.slice();
541 for (var i = 0, l = listeners.length; i < l; i++) {
542 listeners[i].apply(this, args);
543 }
544 return true;
545
546 } else {
547 return false;
548 }
549};
550
551// EventEmitter is defined in src/node_events.cc
552// EventEmitter.prototype.emit() is also defined there.
553EventEmitter.prototype.addListener = function(type, listener) {
554 if ('function' !== typeof listener) {
555 throw new Error('addListener only takes instances of Function');
556 }
557
558 if (!this._events) this._events = {};
559
560 // To avoid recursion in the case that type == "newListeners"! Before
561 // adding it to the listeners, first emit "newListeners".
562 this.emit('newListener', type, listener);
563
564 if (!this._events[type]) {
565 // Optimize the case of one listener. Don't need the extra array object.
566 this._events[type] = listener;
567 } else if (isArray(this._events[type])) {
568
569 // Check for listener leak
570 if (!this._events[type].warned) {
571 var m;
572 if (this._events.maxListeners !== undefined) {
573 m = this._events.maxListeners;
574 } else {
575 m = defaultMaxListeners;
576 }
577
578 if (m && m > 0 && this._events[type].length > m) {
579 this._events[type].warned = true;
580 console.error('(node) warning: possible EventEmitter memory ' +
581 'leak detected. %d listeners added. ' +
582 'Use emitter.setMaxListeners() to increase limit.',
583 this._events[type].length);
584 console.trace();
585 }
586 }
587
588 // If we've already got an array, just append.
589 this._events[type].push(listener);
590 } else {
591 // Adding the second element, need to change to array.
592 this._events[type] = [this._events[type], listener];
593 }
594
595 return this;
596};
597
598EventEmitter.prototype.on = EventEmitter.prototype.addListener;
599
600EventEmitter.prototype.once = function(type, listener) {
601 var self = this;
602 self.on(type, function g() {
603 self.removeListener(type, g);
604 listener.apply(this, arguments);
605 });
606
607 return this;
608};
609
610EventEmitter.prototype.removeListener = function(type, listener) {
611 if ('function' !== typeof listener) {
612 throw new Error('removeListener only takes instances of Function');
613 }
614
615 // does not use listeners(), so no side effect of creating _events[type]
616 if (!this._events || !this._events[type]) return this;
617
618 var list = this._events[type];
619
620 if (isArray(list)) {
621 var i = indexOf(list, listener);
622 if (i < 0) return this;
623 list.splice(i, 1);
624 if (list.length == 0)
625 delete this._events[type];
626 } else if (this._events[type] === listener) {
627 delete this._events[type];
628 }
629
630 return this;
631};
632
633EventEmitter.prototype.removeAllListeners = function(type) {
634 if (arguments.length === 0) {
635 this._events = {};
636 return this;
637 }
638
639 // does not use listeners(), so no side effect of creating _events[type]
640 if (type && this._events && this._events[type]) this._events[type] = null;
641 return this;
642};
643
644EventEmitter.prototype.listeners = function(type) {
645 if (!this._events) this._events = {};
646 if (!this._events[type]) this._events[type] = [];
647 if (!isArray(this._events[type])) {
648 this._events[type] = [this._events[type]];
649 }
650 return this._events[type];
651};
652
653})(require("__browserify_process"))
654},{"__browserify_process":2}],3:[function(require,module,exports){
655var Api = require('./remark/api')
656 , polyfills = require('./polyfills')
657 , styler = require('components/styler')
658 ;
659
660// Expose API as `remark`
661window.remark = new Api();
662
663// Apply polyfills as needed
664polyfills.apply();
665
666// Apply embedded styles to document
667styler.styleDocument();
668
669},{"components/styler":"syTcZF","./remark/api":4,"./polyfills":5}],"components/styler":[function(require,module,exports){
670module.exports=require('syTcZF');
671},{}],"syTcZF":[function(require,module,exports){
672var resources = require('../../resources')
673 , highlighter = require('../../highlighter')
674 ;
675
676module.exports = {
677 styleDocument: styleDocument
678, setPageSize: setPageSize
679};
680
681// Applies bundled styles to document
682function styleDocument () {
683 var headElement, styleElement, style;
684
685 // Bail out if document has already been styled
686 if (getRemarkStylesheet()) {
687 return;
688 }
689
690 headElement = document.getElementsByTagName('head')[0];
691 styleElement = document.createElement('style');
692 styleElement.type = 'text/css';
693
694 // Set title in order to enable lookup
695 styleElement.title = 'remark';
696
697 // Set document styles
698 styleElement.innerHTML = resources.documentStyles;
699
700 // Append highlighting styles
701 for (style in highlighter.styles) {
702 if (highlighter.styles.hasOwnProperty(style)) {
703 styleElement.innerHTML = styleElement.innerHTML +
704 highlighter.styles[style];
705 }
706 }
707
708 // Put element first to prevent overriding user styles
709 headElement.insertBefore(styleElement, headElement.firstChild);
710}
711
712function setPageSize (size) {
713 var stylesheet = getRemarkStylesheet()
714 , pageRule = getPageRule(stylesheet)
715 ;
716
717 pageRule.style.size = size;
718}
719
720// Locates the embedded remark stylesheet
721function getRemarkStylesheet () {
722 var i, l = document.styleSheets.length;
723
724 for (i = 0; i < l; ++i) {
725 if (document.styleSheets[i].title === 'remark') {
726 return document.styleSheets[i];
727 }
728 }
729}
730
731// Locates the CSS @page rule
732function getPageRule (stylesheet) {
733 var i, l = stylesheet.cssRules.length;
734
735 for (i = 0; i < l; ++i) {
736 if (stylesheet.cssRules[i] instanceof window.CSSPageRule) {
737 return stylesheet.cssRules[i];
738 }
739 }
740}
741
742},{"../../resources":6,"../../highlighter":7}],"components/timer":[function(require,module,exports){
743module.exports=require('GFo1Ae');
744},{}],"GFo1Ae":[function(require,module,exports){
745var utils = require('../../utils');
746
747module.exports = TimerViewModel;
748
749function TimerViewModel (events, element) {
750 var self = this;
751
752 self.events = events;
753 self.element = element;
754
755 self.startTime = null;
756 self.pauseStart = null;
757 self.pauseLength = 0;
758
759 element.innerHTML = '0:00:00';
760
761 setInterval(function() {
762 self.updateTimer();
763 }, 100);
764
765 events.on('start', function () {
766 // When we do the first slide change, start the clock.
767 self.startTime = new Date();
768 });
769
770 events.on('resetTimer', function () {
771 // If we reset the timer, clear everything.
772 self.startTime = null;
773 self.pauseStart = null;
774 self.pauseLength = 0;
775 self.element.innerHTML = '0:00:00';
776 });
777
778 events.on('pause', function () {
779 self.pauseStart = new Date();
780 });
781
782 events.on('resume', function () {
783 self.pauseLength += new Date() - self.pauseStart;
784 self.pauseStart = null;
785 });
786}
787
788TimerViewModel.prototype.updateTimer = function () {
789 var self = this;
790
791 if (self.startTime) {
792 var millis;
793 // If we're currently paused, measure elapsed time from the pauseStart.
794 // Otherwise, use "now".
795 if (self.pauseStart) {
796 millis = self.pauseStart - self.startTime - self.pauseLength;
797 } else {
798 millis = new Date() - self.startTime - self.pauseLength;
799 }
800
801 var seconds = Math.floor(millis / 1000) % 60;
802 var minutes = Math.floor(millis / 60000) % 60;
803 var hours = Math.floor(millis / 3600000);
804
805 self.element.innerHTML = hours + (minutes > 9 ? ':' : ':0') + minutes + (seconds > 9 ? ':' : ':0') + seconds;
806 }
807};
808
809},{"../../utils":8}],5:[function(require,module,exports){
810exports.apply = function () {
811 forEach([Array, window.NodeList, window.HTMLCollection], extend);
812};
813
814function forEach (list, f) {
815 var i;
816
817 for (i = 0; i < list.length; ++i) {
818 f(list[i], i);
819 }
820}
821
822function extend (object) {
823 var prototype = object && object.prototype;
824
825 if (!prototype) {
826 return;
827 }
828
829 prototype.forEach = prototype.forEach || function (f) {
830 forEach(this, f);
831 };
832
833 prototype.filter = prototype.filter || function (f) {
834 var result = [];
835
836 this.forEach(function (element) {
837 if (f(element, result.length)) {
838 result.push(element);
839 }
840 });
841
842 return result;
843 };
844
845 prototype.map = prototype.map || function (f) {
846 var result = [];
847
848 this.forEach(function (element) {
849 result.push(f(element, result.length));
850 });
851
852 return result;
853 };
854}
855},{}],6:[function(require,module,exports){
856/* Automatically generated */
857
858module.exports = {
859 version: "0.13.0",
860 documentStyles: "html.remark-container,body.remark-container{height:100%;width:100%;-webkit-print-color-adjust:exact;}.remark-container{background:#d7d8d2;margin:0;overflow:hidden;}.remark-container:focus{outline-style:solid;outline-width:1px;}.remark-container:-webkit-full-screen{width:100%;height:100%;}body:-webkit-full-screen{background:#000000;}body:-moz-full-screen{background:#000000;}body:fullscreen{background:#000000;}.remark-slides-area{position:relative;height:100%;width:100%;}.remark-slide-container{display:none;position:absolute;height:100%;width:100%;page-break-after:always;}.remark-slide-scaler{background-color:transparent;overflow:hidden;position:absolute;-webkit-transform-origin:top left;-moz-transform-origin:top left;transform-origin:top-left;-moz-box-shadow:0 0 30px #888;-webkit-box-shadow:0 0 30px #888;box-shadow:0 0 30px #888;}.remark-slide{height:100%;width:100%;display:table;table-layout:fixed;}.remark-slide>.left{text-align:left;}.remark-slide>.center{text-align:center;}.remark-slide>.right{text-align:right;}.remark-slide>.top{vertical-align:top;}.remark-slide>.middle{vertical-align:middle;}.remark-slide>.bottom{vertical-align:bottom;}.remark-slide-content{background-color:#fff;background-position:center;background-repeat:no-repeat;display:table-cell;font-size:20px;padding:1em 4em 1em 4em;}.remark-slide-content h1{font-size:55px;}.remark-slide-content h2{font-size:45px;}.remark-slide-content h3{font-size:35px;}.remark-slide-content .left{display:block;text-align:left;}.remark-slide-content .center{display:block;text-align:center;}.remark-slide-content .right{display:block;text-align:right;}.remark-slide-number{bottom:12px;opacity:0.5;position:absolute;right:20px;}.remark-slide-notes{border-top:3px solid black;position:absolute;display:none;}.remark-code{font-size:18px;}.remark-code-line{min-height:1em;}.remark-code-line-highlighted{background-color:rgba(255, 255, 0, 0.5);}.remark-code-span-highlighted{background-color:rgba(255, 255, 0, 0.5);padding:1px 2px 2px 2px;}.remark-visible{display:block;z-index:2;}.remark-fading{display:block;z-index:1;}.remark-fading .remark-slide-scaler{-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none;}.remark-backdrop{position:absolute;top:0;bottom:0;left:0;right:0;display:none;background:#000;z-index:2;}.remark-pause{bottom:0;top:0;right:0;left:0;display:none;position:absolute;z-index:1000;}.remark-pause .remark-pause-lozenge{margin-top:30%;text-align:center;}.remark-pause .remark-pause-lozenge span{color:white;background:black;border:2px solid black;border-radius:20px;padding:20px 30px;font-family:Helvetica,arial,freesans,clean,sans-serif;font-size:42pt;font-weight:bold;}.remark-container.remark-presenter-mode.remark-pause-mode .remark-pause{display:block;}.remark-container.remark-presenter-mode.remark-pause-mode .remark-backdrop{display:block;opacity:0.5;}.remark-help{bottom:0;top:0;right:0;left:0;display:none;position:absolute;z-index:1000;-webkit-transform-origin:top left;-moz-transform-origin:top left;transform-origin:top-left;}.remark-help .remark-help-content{color:white;font-family:Helvetica,arial,freesans,clean,sans-serif;font-size:12pt;position:absolute;top:5%;bottom:10%;height:10%;left:5%;width:90%;}.remark-help .remark-help-content h1{font-size:36px;}.remark-help .remark-help-content td{color:white;font-size:12pt;padding:10px;}.remark-help .remark-help-content td:first-child{padding-left:0;}.remark-help .remark-help-content .key{background:white;color:black;min-width:1em;display:inline-block;padding:3px 6px;text-align:center;border-radius:4px;font-size:14px;}.remark-help .dismiss{top:85%;}.remark-container.remark-help-mode .remark-help{display:block;}.remark-container.remark-help-mode .remark-backdrop{display:block;opacity:0.95;}.remark-preview-area{bottom:2%;left:2%;display:none;opacity:0.5;position:absolute;height:47.25%;width:48%;}.remark-preview-area .remark-slide-container{display:block;}.remark-notes-area{background:#fff;bottom:0;color:black;display:none;left:52%;overflow:hidden;position:absolute;right:0;top:0;}.remark-notes-area .remark-top-area{height:50px;left:20px;position:absolute;right:10px;top:10px;}.remark-notes-area .remark-bottom-area{position:absolute;top:75px;bottom:10px;left:20px;right:10px;}.remark-notes-area .remark-bottom-area .remark-toggle{display:block;text-decoration:none;font-family:Helvetica,arial,freesans,clean,sans-serif;height:21px;font-size:0.75em;text-transform:uppercase;color:#ccc;}.remark-notes-area .remark-bottom-area .remark-notes-current-area{height:70%;position:relative;}.remark-notes-area .remark-bottom-area .remark-notes-current-area .remark-notes{clear:both;border-top:1px solid #f5f5f5;position:absolute;top:22px;bottom:0px;left:0px;right:0px;overflow-y:auto;margin-bottom:20px;padding-top:10px;}.remark-notes-area .remark-bottom-area .remark-notes-preview-area{height:30%;position:relative;}.remark-notes-area .remark-bottom-area .remark-notes-preview-area .remark-notes-preview{border-top:1px solid #f5f5f5;position:absolute;top:22px;bottom:0px;left:0px;right:0px;overflow-y:auto;}.remark-notes-area .remark-bottom-area .remark-notes>*:first-child,.remark-notes-area .remark-bottom-area .remark-notes-preview>*:first-child{margin-top:5px;}.remark-notes-area .remark-bottom-area .remark-notes>*:last-child,.remark-notes-area .remark-bottom-area .remark-notes-preview>*:last-child{margin-bottom:0;}.remark-toolbar{color:#979892;vertical-align:middle;}.remark-toolbar .remark-toolbar-link{border:2px solid #d7d8d2;color:#979892;display:inline-block;padding:2px 2px;text-decoration:none;text-align:center;min-width:20px;}.remark-toolbar .remark-toolbar-link:hover{border-color:#979892;color:#676862;}.remark-toolbar .remark-toolbar-timer{border:2px solid black;border-radius:10px;background:black;color:white;display:inline-block;float:right;padding:5px 10px;font-family:sans-serif;font-weight:bold;font-size:175%;text-decoration:none;text-align:center;}.remark-container.remark-presenter-mode .remark-slides-area{top:2%;left:2%;height:47.25%;width:48%;}.remark-container.remark-presenter-mode .remark-preview-area{display:block;}.remark-container.remark-presenter-mode .remark-notes-area{display:block;}.remark-container.remark-blackout-mode:not(.remark-presenter-mode) .remark-backdrop{display:block;opacity:0.99;}.remark-container.remark-mirrored-mode:not(.remark-presenter-mode) .remark-slides-area{-webkit-transform:scaleX(-1);-moz-transform:scaleX(-1);-ms-transform:scaleX(-1);-o-transform:scaleX(-1);}@media print{.remark-container{overflow:visible;background-color:#fff;} .remark-container.remark-presenter-mode .remark-slides-area{top:0px;left:0px;height:100%;width:681px;} .remark-container.remark-presenter-mode .remark-preview-area,.remark-container.remark-presenter-mode .remark-notes-area{display:none;} .remark-container.remark-presenter-mode .remark-slide-notes{display:block;margin-left:30px;width:621px;} .remark-slide-container{display:block;position:relative;} .remark-slide-scaler{-moz-box-shadow:none;-webkit-box-shadow:none;-webkit-transform-origin:initial;box-shadow:none;}}@page {margin:0;}",
861 containerLayout: "<div class=\"remark-notes-area\">\n <div class=\"remark-top-area\">\n <div class=\"remark-toolbar\">\n <a class=\"remark-toolbar-link\" href=\"#increase\">+</a>\n <a class=\"remark-toolbar-link\" href=\"#decrease\">-</a>\n <span class=\"remark-toolbar-timer\"></span>\n </div>\n </div>\n <div class=\"remark-bottom-area\">\n <div class=\"remark-notes-current-area\">\n <div class=\"remark-toggle\">Notes for current slide</div>\n <div class=\"remark-notes\"></div>\n </div>\n <div class=\"remark-notes-preview-area\">\n <div class=\"remark-toggle\">Notes for next slide</div>\n <div class=\"remark-notes-preview\"></div>\n </div>\n </div>\n</div>\n<div class=\"remark-slides-area\"></div>\n<div class=\"remark-preview-area\"></div>\n<div class=\"remark-backdrop\"></div>\n<div class=\"remark-pause\">\n <div class=\"remark-pause-lozenge\">\n <span>Paused</span>\n </div>\n</div>\n<div class=\"remark-help\">\n <div class=\"remark-help-content\">\n <h1>Help</h1>\n <p><b>Keyboard shortcuts</b></p>\n <table class=\"light-keys\">\n <tr>\n <td>\n <span class=\"key\"><b>&uarr;</b></span>,\n <span class=\"key\"><b>&larr;</b></span>,\n <span class=\"key\">Pg Up</span>,\n <span class=\"key\">k</span>\n </td>\n <td>Go to previous slide</td>\n </tr>\n <tr>\n <td>\n <span class=\"key\"><b>&darr;</b></span>,\n <span class=\"key\"><b>&rarr;</b></span>,\n <span class=\"key\">Pg Dn</span>,\n <span class=\"key\">Space</span>,\n <span class=\"key\">j</span>\n </td>\n <td>Go to next slide</td>\n </tr>\n <tr>\n <td>\n <span class=\"key\">Home</span>\n </td>\n <td>Go to first slide</td>\n </tr>\n <tr>\n <td>\n <span class=\"key\">End</span>\n </td>\n <td>Go to last slide</td>\n </tr>\n <tr>\n <td>\n <span class=\"key\">b</span>&nbsp;/\n <span class=\"key\">m</span>&nbsp;/\n <span class=\"key\">f</span>\n </td>\n <td>Toggle blackout / mirrored / fullscreen mode</td>\n </tr>\n <tr>\n <td>\n <span class=\"key\">c</span>\n </td>\n <td>Clone slideshow</td>\n </tr>\n <tr>\n <td>\n <span class=\"key\">p</span>\n </td>\n <td>Toggle presenter mode</td>\n </tr>\n <tr>\n <td>\n <span class=\"key\">t</span>\n </td>\n <td>Restart the presentation timer</td>\n </tr>\n <tr>\n <td>\n <span class=\"key\">?</span>,\n <span class=\"key\">h</span>\n </td>\n <td>Toggle this help</td>\n </tr>\n </table>\n </div>\n <div class=\"content dismiss\">\n <table class=\"light-keys\">\n <tr>\n <td>\n <span class=\"key\">Esc</span>\n </td>\n <td>Back to slideshow</td>\n </tr>\n </table>\n </div>\n</div>\n"
862};
863
864},{}],7:[function(require,module,exports){
865(function(){/* Automatically generated */
866
867var hljs = (function() {
868 var exports = {};
869 /*
870Syntax highlighting with language autodetection.
871https://highlightjs.org/
872*/
873
874(function(factory) {
875
876 // Setup highlight.js for different environments. First is Node.js or
877 // CommonJS.
878 if(typeof exports !== 'undefined') {
879 factory(exports);
880 } else {
881 // Export hljs globally even when using AMD for cases when this script
882 // is loaded with others that may still expect a global hljs.
883 self.hljs = factory({});
884
885 // Finally register the global hljs with AMD.
886 if(typeof define === 'function' && define.amd) {
887 define('hljs', [], function() {
888 return self.hljs;
889 });
890 }
891 }
892
893}(function(hljs) {
894
895 /* Utility functions */
896
897 function escape(value) {
898 return value.replace(/&/gm, '&amp;').replace(/</gm, '&lt;').replace(/>/gm, '&gt;');
899 }
900
901 function tag(node) {
902 return node.nodeName.toLowerCase();
903 }
904
905 function testRe(re, lexeme) {
906 var match = re && re.exec(lexeme);
907 return match && match.index == 0;
908 }
909
910 function isNotHighlighted(language) {
911 return (/^(no-?highlight|plain|text)$/i).test(language);
912 }
913
914 function blockLanguage(block) {
915 var i, match, length,
916 classes = block.className + ' ';
917
918 classes += block.parentNode ? block.parentNode.className : '';
919
920 // language-* takes precedence over non-prefixed class names
921 match = (/\blang(?:uage)?-([\w-]+)\b/i).exec(classes);
922 if (match) {
923 return getLanguage(match[1]) ? match[1] : 'no-highlight';
924 }
925
926 classes = classes.split(/\s+/);
927 for (i = 0, length = classes.length; i < length; i++) {
928 if (getLanguage(classes[i]) || isNotHighlighted(classes[i])) {
929 return classes[i];
930 }
931 }
932 }
933
934 function inherit(parent, obj) {
935 var result = {}, key;
936 for (key in parent)
937 result[key] = parent[key];
938 if (obj)
939 for (key in obj)
940 result[key] = obj[key];
941 return result;
942 }
943
944 /* Stream merging */
945
946 function nodeStream(node) {
947 var result = [];
948 (function _nodeStream(node, offset) {
949 for (var child = node.firstChild; child; child = child.nextSibling) {
950 if (child.nodeType == 3)
951 offset += child.nodeValue.length;
952 else if (child.nodeType == 1) {
953 result.push({
954 event: 'start',
955 offset: offset,
956 node: child
957 });
958 offset = _nodeStream(child, offset);
959 // Prevent void elements from having an end tag that would actually
960 // double them in the output. There are more void elements in HTML
961 // but we list only those realistically expected in code display.
962 if (!tag(child).match(/br|hr|img|input/)) {
963 result.push({
964 event: 'stop',
965 offset: offset,
966 node: child
967 });
968 }
969 }
970 }
971 return offset;
972 })(node, 0);
973 return result;
974 }
975
976 function mergeStreams(original, highlighted, value) {
977 var processed = 0;
978 var result = '';
979 var nodeStack = [];
980
981 function selectStream() {
982 if (!original.length || !highlighted.length) {
983 return original.length ? original : highlighted;
984 }
985 if (original[0].offset != highlighted[0].offset) {
986 return (original[0].offset < highlighted[0].offset) ? original : highlighted;
987 }
988
989 /*
990 To avoid starting the stream just before it should stop the order is
991 ensured that original always starts first and closes last:
992
993 if (event1 == 'start' && event2 == 'start')
994 return original;
995 if (event1 == 'start' && event2 == 'stop')
996 return highlighted;
997 if (event1 == 'stop' && event2 == 'start')
998 return original;
999 if (event1 == 'stop' && event2 == 'stop')
1000 return highlighted;
1001
1002 ... which is collapsed to:
1003 */
1004 return highlighted[0].event == 'start' ? original : highlighted;
1005 }
1006
1007 function open(node) {
1008 function attr_str(a) {return ' ' + a.nodeName + '="' + escape(a.value) + '"';}
1009 result += '<' + tag(node) + Array.prototype.map.call(node.attributes, attr_str).join('') + '>';
1010 }
1011
1012 function close(node) {
1013 result += '</' + tag(node) + '>';
1014 }
1015
1016 function render(event) {
1017 (event.event == 'start' ? open : close)(event.node);
1018 }
1019
1020 while (original.length || highlighted.length) {
1021 var stream = selectStream();
1022 result += escape(value.substr(processed, stream[0].offset - processed));
1023 processed = stream[0].offset;
1024 if (stream == original) {
1025 /*
1026 On any opening or closing tag of the original markup we first close
1027 the entire highlighted node stack, then render the original tag along
1028 with all the following original tags at the same offset and then
1029 reopen all the tags on the highlighted stack.
1030 */
1031 nodeStack.reverse().forEach(close);
1032 do {
1033 render(stream.splice(0, 1)[0]);
1034 stream = selectStream();
1035 } while (stream == original && stream.length && stream[0].offset == processed);
1036 nodeStack.reverse().forEach(open);
1037 } else {
1038 if (stream[0].event == 'start') {
1039 nodeStack.push(stream[0].node);
1040 } else {
1041 nodeStack.pop();
1042 }
1043 render(stream.splice(0, 1)[0]);
1044 }
1045 }
1046 return result + escape(value.substr(processed));
1047 }
1048
1049 /* Initialization */
1050
1051 function compileLanguage(language) {
1052
1053 function reStr(re) {
1054 return (re && re.source) || re;
1055 }
1056
1057 function langRe(value, global) {
1058 return new RegExp(
1059 reStr(value),
1060 'm' + (language.case_insensitive ? 'i' : '') + (global ? 'g' : '')
1061 );
1062 }
1063
1064 function compileMode(mode, parent) {
1065 if (mode.compiled)
1066 return;
1067 mode.compiled = true;
1068
1069 mode.keywords = mode.keywords || mode.beginKeywords;
1070 if (mode.keywords) {
1071 var compiled_keywords = {};
1072
1073 var flatten = function(className, str) {
1074 if (language.case_insensitive) {
1075 str = str.toLowerCase();
1076 }
1077 str.split(' ').forEach(function(kw) {
1078 var pair = kw.split('|');
1079 compiled_keywords[pair[0]] = [className, pair[1] ? Number(pair[1]) : 1];
1080 });
1081 };
1082
1083 if (typeof mode.keywords == 'string') { // string
1084 flatten('keyword', mode.keywords);
1085 } else {
1086 Object.keys(mode.keywords).forEach(function (className) {
1087 flatten(className, mode.keywords[className]);
1088 });
1089 }
1090 mode.keywords = compiled_keywords;
1091 }
1092 mode.lexemesRe = langRe(mode.lexemes || /\b\w+\b/, true);
1093
1094 if (parent) {
1095 if (mode.beginKeywords) {
1096 mode.begin = '\\b(' + mode.beginKeywords.split(' ').join('|') + ')\\b';
1097 }
1098 if (!mode.begin)
1099 mode.begin = /\B|\b/;
1100 mode.beginRe = langRe(mode.begin);
1101 if (!mode.end && !mode.endsWithParent)
1102 mode.end = /\B|\b/;
1103 if (mode.end)
1104 mode.endRe = langRe(mode.end);
1105 mode.terminator_end = reStr(mode.end) || '';
1106 if (mode.endsWithParent && parent.terminator_end)
1107 mode.terminator_end += (mode.end ? '|' : '') + parent.terminator_end;
1108 }
1109 if (mode.illegal)
1110 mode.illegalRe = langRe(mode.illegal);
1111 if (mode.relevance === undefined)
1112 mode.relevance = 1;
1113 if (!mode.contains) {
1114 mode.contains = [];
1115 }
1116 var expanded_contains = [];
1117 mode.contains.forEach(function(c) {
1118 if (c.variants) {
1119 c.variants.forEach(function(v) {expanded_contains.push(inherit(c, v));});
1120 } else {
1121 expanded_contains.push(c == 'self' ? mode : c);
1122 }
1123 });
1124 mode.contains = expanded_contains;
1125 mode.contains.forEach(function(c) {compileMode(c, mode);});
1126
1127 if (mode.starts) {
1128 compileMode(mode.starts, parent);
1129 }
1130
1131 var terminators =
1132 mode.contains.map(function(c) {
1133 return c.beginKeywords ? '\\.?(' + c.begin + ')\\.?' : c.begin;
1134 })
1135 .concat([mode.terminator_end, mode.illegal])
1136 .map(reStr)
1137 .filter(Boolean);
1138 mode.terminators = terminators.length ? langRe(terminators.join('|'), true) : {exec: function(/*s*/) {return null;}};
1139 }
1140
1141 compileMode(language);
1142 }
1143
1144 /*
1145 Core highlighting function. Accepts a language name, or an alias, and a
1146 string with the code to highlight. Returns an object with the following
1147 properties:
1148
1149 - relevance (int)
1150 - value (an HTML string with highlighting markup)
1151
1152 */
1153 function highlight(name, value, ignore_illegals, continuation) {
1154
1155 function subMode(lexeme, mode) {
1156 for (var i = 0; i < mode.contains.length; i++) {
1157 if (testRe(mode.contains[i].beginRe, lexeme)) {
1158 return mode.contains[i];
1159 }
1160 }
1161 }
1162
1163 function endOfMode(mode, lexeme) {
1164 if (testRe(mode.endRe, lexeme)) {
1165 while (mode.endsParent && mode.parent) {
1166 mode = mode.parent;
1167 }
1168 return mode;
1169 }
1170 if (mode.endsWithParent) {
1171 return endOfMode(mode.parent, lexeme);
1172 }
1173 }
1174
1175 function isIllegal(lexeme, mode) {
1176 return !ignore_illegals && testRe(mode.illegalRe, lexeme);
1177 }
1178
1179 function keywordMatch(mode, match) {
1180 var match_str = language.case_insensitive ? match[0].toLowerCase() : match[0];
1181 return mode.keywords.hasOwnProperty(match_str) && mode.keywords[match_str];
1182 }
1183
1184 function buildSpan(classname, insideSpan, leaveOpen, noPrefix) {
1185 var classPrefix = noPrefix ? '' : options.classPrefix,
1186 openSpan = '<span class="' + classPrefix,
1187 closeSpan = leaveOpen ? '' : '</span>';
1188
1189 openSpan += classname + '">';
1190
1191 return openSpan + insideSpan + closeSpan;
1192 }
1193
1194 function processKeywords() {
1195 if (!top.keywords)
1196 return escape(mode_buffer);
1197 var result = '';
1198 var last_index = 0;
1199 top.lexemesRe.lastIndex = 0;
1200 var match = top.lexemesRe.exec(mode_buffer);
1201 while (match) {
1202 result += escape(mode_buffer.substr(last_index, match.index - last_index));
1203 var keyword_match = keywordMatch(top, match);
1204 if (keyword_match) {
1205 relevance += keyword_match[1];
1206 result += buildSpan(keyword_match[0], escape(match[0]));
1207 } else {
1208 result += escape(match[0]);
1209 }
1210 last_index = top.lexemesRe.lastIndex;
1211 match = top.lexemesRe.exec(mode_buffer);
1212 }
1213 return result + escape(mode_buffer.substr(last_index));
1214 }
1215
1216 function processSubLanguage() {
1217 var explicit = typeof top.subLanguage == 'string';
1218 if (explicit && !languages[top.subLanguage]) {
1219 return escape(mode_buffer);
1220 }
1221
1222 var result = explicit ?
1223 highlight(top.subLanguage, mode_buffer, true, continuations[top.subLanguage]) :
1224 highlightAuto(mode_buffer, top.subLanguage.length ? top.subLanguage : undefined);
1225
1226 // Counting embedded language score towards the host language may be disabled
1227 // with zeroing the containing mode relevance. Usecase in point is Markdown that
1228 // allows XML everywhere and makes every XML snippet to have a much larger Markdown
1229 // score.
1230 if (top.relevance > 0) {
1231 relevance += result.relevance;
1232 }
1233 if (explicit) {
1234 continuations[top.subLanguage] = result.top;
1235 }
1236 return buildSpan(result.language, result.value, false, true);
1237 }
1238
1239 function processBuffer() {
1240 return top.subLanguage !== undefined ? processSubLanguage() : processKeywords();
1241 }
1242
1243 function startNewMode(mode, lexeme) {
1244 var markup = mode.className? buildSpan(mode.className, '', true): '';
1245 if (mode.returnBegin) {
1246 result += markup;
1247 mode_buffer = '';
1248 } else if (mode.excludeBegin) {
1249 result += escape(lexeme) + markup;
1250 mode_buffer = '';
1251 } else {
1252 result += markup;
1253 mode_buffer = lexeme;
1254 }
1255 top = Object.create(mode, {parent: {value: top}});
1256 }
1257
1258 function processLexeme(buffer, lexeme) {
1259
1260 mode_buffer += buffer;
1261 if (lexeme === undefined) {
1262 result += processBuffer();
1263 return 0;
1264 }
1265
1266 var new_mode = subMode(lexeme, top);
1267 if (new_mode) {
1268 result += processBuffer();
1269 startNewMode(new_mode, lexeme);
1270 return new_mode.returnBegin ? 0 : lexeme.length;
1271 }
1272
1273 var end_mode = endOfMode(top, lexeme);
1274 if (end_mode) {
1275 var origin = top;
1276 if (!(origin.returnEnd || origin.excludeEnd)) {
1277 mode_buffer += lexeme;
1278 }
1279 result += processBuffer();
1280 do {
1281 if (top.className) {
1282 result += '</span>';
1283 }
1284 relevance += top.relevance;
1285 top = top.parent;
1286 } while (top != end_mode.parent);
1287 if (origin.excludeEnd) {
1288 result += escape(lexeme);
1289 }
1290 mode_buffer = '';
1291 if (end_mode.starts) {
1292 startNewMode(end_mode.starts, '');
1293 }
1294 return origin.returnEnd ? 0 : lexeme.length;
1295 }
1296
1297 if (isIllegal(lexeme, top))
1298 throw new Error('Illegal lexeme "' + lexeme + '" for mode "' + (top.className || '<unnamed>') + '"');
1299
1300 /*
1301 Parser should not reach this point as all types of lexemes should be caught
1302 earlier, but if it does due to some bug make sure it advances at least one
1303 character forward to prevent infinite looping.
1304 */
1305 mode_buffer += lexeme;
1306 return lexeme.length || 1;
1307 }
1308
1309 var language = getLanguage(name);
1310 if (!language) {
1311 throw new Error('Unknown language: "' + name + '"');
1312 }
1313
1314 compileLanguage(language);
1315 var top = continuation || language;
1316 var continuations = {}; // keep continuations for sub-languages
1317 var result = '', current;
1318 for(current = top; current != language; current = current.parent) {
1319 if (current.className) {
1320 result = buildSpan(current.className, '', true) + result;
1321 }
1322 }
1323 var mode_buffer = '';
1324 var relevance = 0;
1325 try {
1326 var match, count, index = 0;
1327 while (true) {
1328 top.terminators.lastIndex = index;
1329 match = top.terminators.exec(value);
1330 if (!match)
1331 break;
1332 count = processLexeme(value.substr(index, match.index - index), match[0]);
1333 index = match.index + count;
1334 }
1335 processLexeme(value.substr(index));
1336 for(current = top; current.parent; current = current.parent) { // close dangling modes
1337 if (current.className) {
1338 result += '</span>';
1339 }
1340 }
1341 return {
1342 relevance: relevance,
1343 value: result,
1344 language: name,
1345 top: top
1346 };
1347 } catch (e) {
1348 if (e.message.indexOf('Illegal') != -1) {
1349 return {
1350 relevance: 0,
1351 value: escape(value)
1352 };
1353 } else {
1354 throw e;
1355 }
1356 }
1357 }
1358
1359 /*
1360 Highlighting with language detection. Accepts a string with the code to
1361 highlight. Returns an object with the following properties:
1362
1363 - language (detected language)
1364 - relevance (int)
1365 - value (an HTML string with highlighting markup)
1366 - second_best (object with the same structure for second-best heuristically
1367 detected language, may be absent)
1368
1369 */
1370 function highlightAuto(text, languageSubset) {
1371 languageSubset = languageSubset || options.languages || Object.keys(languages);
1372 var result = {
1373 relevance: 0,
1374 value: escape(text)
1375 };
1376 var second_best = result;
1377 languageSubset.forEach(function(name) {
1378 if (!getLanguage(name)) {
1379 return;
1380 }
1381 var current = highlight(name, text, false);
1382 current.language = name;
1383 if (current.relevance > second_best.relevance) {
1384 second_best = current;
1385 }
1386 if (current.relevance > result.relevance) {
1387 second_best = result;
1388 result = current;
1389 }
1390 });
1391 if (second_best.language) {
1392 result.second_best = second_best;
1393 }
1394 return result;
1395 }
1396
1397 /*
1398 Post-processing of the highlighted markup:
1399
1400 - replace TABs with something more useful
1401 - replace real line-breaks with '<br>' for non-pre containers
1402
1403 */
1404 function fixMarkup(value) {
1405 if (options.tabReplace) {
1406 value = value.replace(/^((<[^>]+>|\t)+)/gm, function(match, p1 /*..., offset, s*/) {
1407 return p1.replace(/\t/g, options.tabReplace);
1408 });
1409 }
1410 if (options.useBR) {
1411 value = value.replace(/\n/g, '<br>');
1412 }
1413 return value;
1414 }
1415
1416 function buildClassName(prevClassName, currentLang, resultLang) {
1417 var language = currentLang ? aliases[currentLang] : resultLang,
1418 result = [prevClassName.trim()];
1419
1420 if (!prevClassName.match(/\bhljs\b/)) {
1421 result.push('hljs');
1422 }
1423
1424 if (prevClassName.indexOf(language) === -1) {
1425 result.push(language);
1426 }
1427
1428 return result.join(' ').trim();
1429 }
1430
1431 /*
1432 Applies highlighting to a DOM node containing code. Accepts a DOM node and
1433 two optional parameters for fixMarkup.
1434 */
1435 function highlightBlock(block) {
1436 var language = blockLanguage(block);
1437 if (isNotHighlighted(language))
1438 return;
1439
1440 var node;
1441 if (options.useBR) {
1442 node = document.createElementNS('http://www.w3.org/1999/xhtml', 'div');
1443 node.innerHTML = block.innerHTML.replace(/\n/g, '').replace(/<br[ \/]*>/g, '\n');
1444 } else {
1445 node = block;
1446 }
1447 var text = node.textContent;
1448 var result = language ? highlight(language, text, true) : highlightAuto(text);
1449
1450 var originalStream = nodeStream(node);
1451 if (originalStream.length) {
1452 var resultNode = document.createElementNS('http://www.w3.org/1999/xhtml', 'div');
1453 resultNode.innerHTML = result.value;
1454 result.value = mergeStreams(originalStream, nodeStream(resultNode), text);
1455 }
1456 result.value = fixMarkup(result.value);
1457
1458 block.innerHTML = result.value;
1459 block.className = buildClassName(block.className, language, result.language);
1460 block.result = {
1461 language: result.language,
1462 re: result.relevance
1463 };
1464 if (result.second_best) {
1465 block.second_best = {
1466 language: result.second_best.language,
1467 re: result.second_best.relevance
1468 };
1469 }
1470 }
1471
1472 var options = {
1473 classPrefix: 'hljs-',
1474 tabReplace: null,
1475 useBR: false,
1476 languages: undefined
1477 };
1478
1479 /*
1480 Updates highlight.js global options with values passed in the form of an object
1481 */
1482 function configure(user_options) {
1483 options = inherit(options, user_options);
1484 }
1485
1486 /*
1487 Applies highlighting to all <pre><code>..</code></pre> blocks on a page.
1488 */
1489 function initHighlighting() {
1490 if (initHighlighting.called)
1491 return;
1492 initHighlighting.called = true;
1493
1494 var blocks = document.querySelectorAll('pre code');
1495 Array.prototype.forEach.call(blocks, highlightBlock);
1496 }
1497
1498 /*
1499 Attaches highlighting to the page load event.
1500 */
1501 function initHighlightingOnLoad() {
1502 addEventListener('DOMContentLoaded', initHighlighting, false);
1503 addEventListener('load', initHighlighting, false);
1504 }
1505
1506 var languages = {};
1507 var aliases = {};
1508
1509 function registerLanguage(name, language) {
1510 var lang = languages[name] = language(hljs);
1511 if (lang.aliases) {
1512 lang.aliases.forEach(function(alias) {aliases[alias] = name;});
1513 }
1514 }
1515
1516 function listLanguages() {
1517 return Object.keys(languages);
1518 }
1519
1520 function getLanguage(name) {
1521 name = (name || '').toLowerCase();
1522 return languages[name] || languages[aliases[name]];
1523 }
1524
1525 /* Interface definition */
1526
1527 hljs.highlight = highlight;
1528 hljs.highlightAuto = highlightAuto;
1529 hljs.fixMarkup = fixMarkup;
1530 hljs.highlightBlock = highlightBlock;
1531 hljs.configure = configure;
1532 hljs.initHighlighting = initHighlighting;
1533 hljs.initHighlightingOnLoad = initHighlightingOnLoad;
1534 hljs.registerLanguage = registerLanguage;
1535 hljs.listLanguages = listLanguages;
1536 hljs.getLanguage = getLanguage;
1537 hljs.inherit = inherit;
1538
1539 // Common regexps
1540 hljs.IDENT_RE = '[a-zA-Z]\\w*';
1541 hljs.UNDERSCORE_IDENT_RE = '[a-zA-Z_]\\w*';
1542 hljs.NUMBER_RE = '\\b\\d+(\\.\\d+)?';
1543 hljs.C_NUMBER_RE = '(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)'; // 0x..., 0..., decimal, float
1544 hljs.BINARY_NUMBER_RE = '\\b(0b[01]+)'; // 0b...
1545 hljs.RE_STARTERS_RE = '!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~';
1546
1547 // Common modes
1548 hljs.BACKSLASH_ESCAPE = {
1549 begin: '\\\\[\\s\\S]', relevance: 0
1550 };
1551 hljs.APOS_STRING_MODE = {
1552 className: 'string',
1553 begin: '\'', end: '\'',
1554 illegal: '\\n',
1555 contains: [hljs.BACKSLASH_ESCAPE]
1556 };
1557 hljs.QUOTE_STRING_MODE = {
1558 className: 'string',
1559 begin: '"', end: '"',
1560 illegal: '\\n',
1561 contains: [hljs.BACKSLASH_ESCAPE]
1562 };
1563 hljs.PHRASAL_WORDS_MODE = {
1564 begin: /\b(a|an|the|are|I|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|like)\b/
1565 };
1566 hljs.COMMENT = function (begin, end, inherits) {
1567 var mode = hljs.inherit(
1568 {
1569 className: 'comment',
1570 begin: begin, end: end,
1571 contains: []
1572 },
1573 inherits || {}
1574 );
1575 mode.contains.push(hljs.PHRASAL_WORDS_MODE);
1576 mode.contains.push({
1577 className: 'doctag',
1578 begin: "(?:TODO|FIXME|NOTE|BUG|XXX):",
1579 relevance: 0
1580 });
1581 return mode;
1582 };
1583 hljs.C_LINE_COMMENT_MODE = hljs.COMMENT('//', '$');
1584 hljs.C_BLOCK_COMMENT_MODE = hljs.COMMENT('/\\*', '\\*/');
1585 hljs.HASH_COMMENT_MODE = hljs.COMMENT('#', '$');
1586 hljs.NUMBER_MODE = {
1587 className: 'number',
1588 begin: hljs.NUMBER_RE,
1589 relevance: 0
1590 };
1591 hljs.C_NUMBER_MODE = {
1592 className: 'number',
1593 begin: hljs.C_NUMBER_RE,
1594 relevance: 0
1595 };
1596 hljs.BINARY_NUMBER_MODE = {
1597 className: 'number',
1598 begin: hljs.BINARY_NUMBER_RE,
1599 relevance: 0
1600 };
1601 hljs.CSS_NUMBER_MODE = {
1602 className: 'number',
1603 begin: hljs.NUMBER_RE + '(' +
1604 '%|em|ex|ch|rem' +
1605 '|vw|vh|vmin|vmax' +
1606 '|cm|mm|in|pt|pc|px' +
1607 '|deg|grad|rad|turn' +
1608 '|s|ms' +
1609 '|Hz|kHz' +
1610 '|dpi|dpcm|dppx' +
1611 ')?',
1612 relevance: 0
1613 };
1614 hljs.REGEXP_MODE = {
1615 className: 'regexp',
1616 begin: /\//, end: /\/[gimuy]*/,
1617 illegal: /\n/,
1618 contains: [
1619 hljs.BACKSLASH_ESCAPE,
1620 {
1621 begin: /\[/, end: /\]/,
1622 relevance: 0,
1623 contains: [hljs.BACKSLASH_ESCAPE]
1624 }
1625 ]
1626 };
1627 hljs.TITLE_MODE = {
1628 className: 'title',
1629 begin: hljs.IDENT_RE,
1630 relevance: 0
1631 };
1632 hljs.UNDERSCORE_TITLE_MODE = {
1633 className: 'title',
1634 begin: hljs.UNDERSCORE_IDENT_RE,
1635 relevance: 0
1636 };
1637
1638 return hljs;
1639}));
1640;
1641 return exports;
1642 }())
1643 , languages = [{name:"1c",create:/*
1644Language: 1C
1645Author: Yuri Ivanov <ivanov@supersoft.ru>
1646Contributors: Sergey Baranov <segyrn@yandex.ru>
1647Category: enterprise
1648*/
1649
1650function(hljs){
1651 var IDENT_RE_RU = '[a-zA-Zа-яА-Я][a-zA-Z0-9_а-яА-Я]*';
1652 var OneS_KEYWORDS = 'возврат дата для если и или иначе иначеесли исключение конецесли ' +
1653 'конецпопытки конецпроцедуры конецфункции конеццикла константа не перейти перем ' +
1654 'перечисление по пока попытка прервать продолжить процедура строка тогда фс функция цикл ' +
1655 'число экспорт';
1656 var OneS_BUILT_IN = 'ansitooem oemtoansi ввестивидсубконто ввестидату ввестизначение ' +
1657 'ввестиперечисление ввестипериод ввестиплансчетов ввестистроку ввестичисло вопрос ' +
1658 'восстановитьзначение врег выбранныйплансчетов вызватьисключение датагод датамесяц ' +
1659 'датачисло добавитьмесяц завершитьработусистемы заголовоксистемы записьжурналарегистрации ' +
1660 'запуститьприложение зафиксироватьтранзакцию значениевстроку значениевстрокувнутр ' +
1661 'значениевфайл значениеизстроки значениеизстрокивнутр значениеизфайла имякомпьютера ' +
1662 'имяпользователя каталогвременныхфайлов каталогиб каталогпользователя каталогпрограммы ' +
1663 'кодсимв командасистемы конгода конецпериодаби конецрассчитанногопериодаби ' +
1664 'конецстандартногоинтервала конквартала конмесяца коннедели лев лог лог10 макс ' +
1665 'максимальноеколичествосубконто мин монопольныйрежим названиеинтерфейса названиенабораправ ' +
1666 'назначитьвид назначитьсчет найти найтипомеченныенаудаление найтиссылки началопериодаби ' +
1667 'началостандартногоинтервала начатьтранзакцию начгода начквартала начмесяца начнедели ' +
1668 'номерднягода номерднянедели номернеделигода нрег обработкаожидания окр описаниеошибки ' +
1669 'основнойжурналрасчетов основнойплансчетов основнойязык открытьформу открытьформумодально ' +
1670 'отменитьтранзакцию очиститьокносообщений периодстр полноеимяпользователя получитьвремята ' +
1671 'получитьдатута получитьдокументта получитьзначенияотбора получитьпозициюта ' +
1672 'получитьпустоезначение получитьта прав праводоступа предупреждение префиксавтонумерации ' +
1673 'пустаястрока пустоезначение рабочаядаттьпустоезначение рабочаядата разделительстраниц ' +
1674 'разделительстрок разм разобратьпозициюдокумента рассчитатьрегистрына ' +
1675 'рассчитатьрегистрыпо сигнал симв символтабуляции создатьобъект сокрл сокрлп сокрп ' +
1676 'сообщить состояние сохранитьзначение сред статусвозврата стрдлина стрзаменить ' +
1677 'стрколичествострок стрполучитьстроку стрчисловхождений сформироватьпозициюдокумента ' +
1678 'счетпокоду текущаядата текущеевремя типзначения типзначениястр удалитьобъекты ' +
1679 'установитьтана установитьтапо фиксшаблон формат цел шаблон';
1680 var DQUOTE = {begin: '""'};
1681 var STR_START = {
1682 className: 'string',
1683 begin: '"', end: '"|$',
1684 contains: [DQUOTE]
1685 };
1686 var STR_CONT = {
1687 className: 'string',
1688 begin: '\\|', end: '"|$',
1689 contains: [DQUOTE]
1690 };
1691
1692 return {
1693 case_insensitive: true,
1694 lexemes: IDENT_RE_RU,
1695 keywords: {keyword: OneS_KEYWORDS, built_in: OneS_BUILT_IN},
1696 contains: [
1697 hljs.C_LINE_COMMENT_MODE,
1698 hljs.NUMBER_MODE,
1699 STR_START, STR_CONT,
1700 {
1701 className: 'function',
1702 begin: '(процедура|функция)', end: '$',
1703 lexemes: IDENT_RE_RU,
1704 keywords: 'процедура функция',
1705 contains: [
1706 {
1707 begin: 'экспорт', endsWithParent: true,
1708 lexemes: IDENT_RE_RU,
1709 keywords: 'экспорт',
1710 contains: [hljs.C_LINE_COMMENT_MODE]
1711 },
1712 {
1713 className: 'params',
1714 begin: '\\(', end: '\\)',
1715 lexemes: IDENT_RE_RU,
1716 keywords: 'знач',
1717 contains: [STR_START, STR_CONT]
1718 },
1719 hljs.C_LINE_COMMENT_MODE,
1720 hljs.inherit(hljs.TITLE_MODE, {begin: IDENT_RE_RU})
1721 ]
1722 },
1723 {className: 'meta', begin: '#', end: '$'},
1724 {className: 'number', begin: '\'\\d{2}\\.\\d{2}\\.(\\d{2}|\\d{4})\''} // date
1725 ]
1726 };
1727}
1728},{name:"accesslog",create:/*
1729 Language: Access log
1730 Author: Oleg Efimov <efimovov@gmail.com>
1731 Description: Apache/Nginx Access Logs
1732 */
1733
1734function(hljs) {
1735 return {
1736 contains: [
1737 // IP
1738 {
1739 className: 'number',
1740 begin: '\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b'
1741 },
1742 // Other numbers
1743 {
1744 className: 'number',
1745 begin: '\\b\\d+\\b',
1746 relevance: 0
1747 },
1748 // Requests
1749 {
1750 className: 'string',
1751 begin: '"(GET|POST|HEAD|PUT|DELETE|CONNECT|OPTIONS|PATCH|TRACE)', end: '"',
1752 keywords: 'GET POST HEAD PUT DELETE CONNECT OPTIONS PATCH TRACE',
1753 illegal: '\\n',
1754 relevance: 10
1755 },
1756 // Dates
1757 {
1758 className: 'string',
1759 begin: /\[/, end: /\]/,
1760 illegal: '\\n'
1761 },
1762 // Strings
1763 {
1764 className: 'string',
1765 begin: '"', end: '"',
1766 illegal: '\\n'
1767 }
1768 ]
1769 };
1770}
1771},{name:"actionscript",create:/*
1772Language: ActionScript
1773Author: Alexander Myadzel <myadzel@gmail.com>
1774Category: scripting
1775*/
1776
1777function(hljs) {
1778 var IDENT_RE = '[a-zA-Z_$][a-zA-Z0-9_$]*';
1779 var IDENT_FUNC_RETURN_TYPE_RE = '([*]|[a-zA-Z_$][a-zA-Z0-9_$]*)';
1780
1781 var AS3_REST_ARG_MODE = {
1782 className: 'rest_arg',
1783 begin: '[.]{3}', end: IDENT_RE,
1784 relevance: 10
1785 };
1786
1787 return {
1788 aliases: ['as'],
1789 keywords: {
1790 keyword: 'as break case catch class const continue default delete do dynamic each ' +
1791 'else extends final finally for function get if implements import in include ' +
1792 'instanceof interface internal is namespace native new override package private ' +
1793 'protected public return set static super switch this throw try typeof use var void ' +
1794 'while with',
1795 literal: 'true false null undefined'
1796 },
1797 contains: [
1798 hljs.APOS_STRING_MODE,
1799 hljs.QUOTE_STRING_MODE,
1800 hljs.C_LINE_COMMENT_MODE,
1801 hljs.C_BLOCK_COMMENT_MODE,
1802 hljs.C_NUMBER_MODE,
1803 {
1804 className: 'class',
1805 beginKeywords: 'package', end: '{',
1806 contains: [hljs.TITLE_MODE]
1807 },
1808 {
1809 className: 'class',
1810 beginKeywords: 'class interface', end: '{', excludeEnd: true,
1811 contains: [
1812 {
1813 beginKeywords: 'extends implements'
1814 },
1815 hljs.TITLE_MODE
1816 ]
1817 },
1818 {
1819 className: 'meta',
1820 beginKeywords: 'import include', end: ';',
1821 keywords: {'meta-keyword': 'import include'}
1822 },
1823 {
1824 className: 'function',
1825 beginKeywords: 'function', end: '[{;]', excludeEnd: true,
1826 illegal: '\\S',
1827 contains: [
1828 hljs.TITLE_MODE,
1829 {
1830 className: 'params',
1831 begin: '\\(', end: '\\)',
1832 contains: [
1833 hljs.APOS_STRING_MODE,
1834 hljs.QUOTE_STRING_MODE,
1835 hljs.C_LINE_COMMENT_MODE,
1836 hljs.C_BLOCK_COMMENT_MODE,
1837 AS3_REST_ARG_MODE
1838 ]
1839 },
1840 {
1841 begin: ':\\s*' + IDENT_FUNC_RETURN_TYPE_RE
1842 }
1843 ]
1844 }
1845 ],
1846 illegal: /#/
1847 };
1848}
1849},{name:"apache",create:/*
1850Language: Apache
1851Author: Ruslan Keba <rukeba@gmail.com>
1852Contributors: Ivan Sagalaev <maniac@softwaremaniacs.org>
1853Website: http://rukeba.com/
1854Description: language definition for Apache configuration files (httpd.conf & .htaccess)
1855Category: common, config
1856*/
1857
1858function(hljs) {
1859 var NUMBER = {className: 'number', begin: '[\\$%]\\d+'};
1860 return {
1861 aliases: ['apacheconf'],
1862 case_insensitive: true,
1863 contains: [
1864 hljs.HASH_COMMENT_MODE,
1865 {className: 'section', begin: '</?', end: '>'},
1866 {
1867 className: 'attribute',
1868 begin: /\w+/,
1869 relevance: 0,
1870 // keywords aren’t needed for highlighting per se, they only boost relevance
1871 // for a very generally defined mode (starts with a word, ends with line-end
1872 keywords: {
1873 nomarkup:
1874 'order deny allow setenv rewriterule rewriteengine rewritecond documentroot ' +
1875 'sethandler errordocument loadmodule options header listen serverroot ' +
1876 'servername'
1877 },
1878 starts: {
1879 end: /$/,
1880 relevance: 0,
1881 keywords: {
1882 literal: 'on off all'
1883 },
1884 contains: [
1885 {
1886 className: 'meta',
1887 begin: '\\s\\[', end: '\\]$'
1888 },
1889 {
1890 className: 'variable',
1891 begin: '[\\$%]\\{', end: '\\}',
1892 contains: ['self', NUMBER]
1893 },
1894 NUMBER,
1895 hljs.QUOTE_STRING_MODE
1896 ]
1897 }
1898 }
1899 ],
1900 illegal: /\S/
1901 };
1902}
1903},{name:"applescript",create:/*
1904Language: AppleScript
1905Authors: Nathan Grigg <nathan@nathanamy.org>, Dr. Drang <drdrang@gmail.com>
1906Category: scripting
1907*/
1908
1909function(hljs) {
1910 var STRING = hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: ''});
1911 var PARAMS = {
1912 className: 'params',
1913 begin: '\\(', end: '\\)',
1914 contains: ['self', hljs.C_NUMBER_MODE, STRING]
1915 };
1916 var COMMENT_MODE_1 = hljs.COMMENT('--', '$');
1917 var COMMENT_MODE_2 = hljs.COMMENT(
1918 '\\(\\*',
1919 '\\*\\)',
1920 {
1921 contains: ['self', COMMENT_MODE_1] //allow nesting
1922 }
1923 );
1924 var COMMENTS = [
1925 COMMENT_MODE_1,
1926 COMMENT_MODE_2,
1927 hljs.HASH_COMMENT_MODE
1928 ];
1929
1930 return {
1931 aliases: ['osascript'],
1932 keywords: {
1933 keyword:
1934 'about above after against and around as at back before beginning ' +
1935 'behind below beneath beside between but by considering ' +
1936 'contain contains continue copy div does eighth else end equal ' +
1937 'equals error every exit fifth first for fourth from front ' +
1938 'get given global if ignoring in into is it its last local me ' +
1939 'middle mod my ninth not of on onto or over prop property put ref ' +
1940 'reference repeat returning script second set seventh since ' +
1941 'sixth some tell tenth that the|0 then third through thru ' +
1942 'timeout times to transaction try until where while whose with ' +
1943 'without',
1944 literal:
1945 'AppleScript false linefeed return pi quote result space tab true',
1946 built_in:
1947 'alias application boolean class constant date file integer list ' +
1948 'number real record string text ' +
1949 'activate beep count delay launch log offset read round ' +
1950 'run say summarize write ' +
1951 'character characters contents day frontmost id item length ' +
1952 'month name paragraph paragraphs rest reverse running time version ' +
1953 'weekday word words year'
1954 },
1955 contains: [
1956 STRING,
1957 hljs.C_NUMBER_MODE,
1958 {
1959 className: 'built_in',
1960 begin:
1961 '\\b(clipboard info|the clipboard|info for|list (disks|folder)|' +
1962 'mount volume|path to|(close|open for) access|(get|set) eof|' +
1963 'current date|do shell script|get volume settings|random number|' +
1964 'set volume|system attribute|system info|time to GMT|' +
1965 '(load|run|store) script|scripting components|' +
1966 'ASCII (character|number)|localized string|' +
1967 'choose (application|color|file|file name|' +
1968 'folder|from list|remote application|URL)|' +
1969 'display (alert|dialog))\\b|^\\s*return\\b'
1970 },
1971 {
1972 className: 'literal',
1973 begin:
1974 '\\b(text item delimiters|current application|missing value)\\b'
1975 },
1976 {
1977 className: 'keyword',
1978 begin:
1979 '\\b(apart from|aside from|instead of|out of|greater than|' +
1980 "isn't|(doesn't|does not) (equal|come before|come after|contain)|" +
1981 '(greater|less) than( or equal)?|(starts?|ends|begins?) with|' +
1982 'contained by|comes (before|after)|a (ref|reference)|POSIX file|' +
1983 'POSIX path|(date|time) string|quoted form)\\b'
1984 },
1985 {
1986 beginKeywords: 'on',
1987 illegal: '[${=;\\n]',
1988 contains: [hljs.UNDERSCORE_TITLE_MODE, PARAMS]
1989 }
1990 ].concat(COMMENTS),
1991 illegal: '//|->|=>|\\[\\['
1992 };
1993}
1994},{name:"armasm",create:/*
1995Language: ARM Assembly
1996Author: Dan Panzarella <alsoelp@gmail.com>
1997Description: ARM Assembly including Thumb and Thumb2 instructions
1998Category: assembler
1999*/
2000
2001function(hljs) {
2002 //local labels: %?[FB]?[AT]?\d{1,2}\w+
2003 return {
2004 case_insensitive: true,
2005 aliases: ['arm'],
2006 lexemes: '\\.?' + hljs.IDENT_RE,
2007 keywords: {
2008 meta:
2009 //GNU preprocs
2010 '.2byte .4byte .align .ascii .asciz .balign .byte .code .data .else .end .endif .endm .endr .equ .err .exitm .extern .global .hword .if .ifdef .ifndef .include .irp .long .macro .rept .req .section .set .skip .space .text .word .arm .thumb .code16 .code32 .force_thumb .thumb_func .ltorg '+
2011 //ARM directives
2012 'ALIAS ALIGN ARM AREA ASSERT ATTR CN CODE CODE16 CODE32 COMMON CP DATA DCB DCD DCDU DCDO DCFD DCFDU DCI DCQ DCQU DCW DCWU DN ELIF ELSE END ENDFUNC ENDIF ENDP ENTRY EQU EXPORT EXPORTAS EXTERN FIELD FILL FUNCTION GBLA GBLL GBLS GET GLOBAL IF IMPORT INCBIN INCLUDE INFO KEEP LCLA LCLL LCLS LTORG MACRO MAP MEND MEXIT NOFP OPT PRESERVE8 PROC QN READONLY RELOC REQUIRE REQUIRE8 RLIST FN ROUT SETA SETL SETS SN SPACE SUBT THUMB THUMBX TTL WHILE WEND ',
2013 built_in:
2014 'r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 '+ //standard registers
2015 'pc lr sp ip sl sb fp '+ //typical regs plus backward compatibility
2016 'a1 a2 a3 a4 v1 v2 v3 v4 v5 v6 v7 v8 f0 f1 f2 f3 f4 f5 f6 f7 '+ //more regs and fp
2017 'p0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 '+ //coprocessor regs
2018 'c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 '+ //more coproc
2019 'q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 q10 q11 q12 q13 q14 q15 '+ //advanced SIMD NEON regs
2020
2021 //program status registers
2022 'cpsr_c cpsr_x cpsr_s cpsr_f cpsr_cx cpsr_cxs cpsr_xs cpsr_xsf cpsr_sf cpsr_cxsf '+
2023 'spsr_c spsr_x spsr_s spsr_f spsr_cx spsr_cxs spsr_xs spsr_xsf spsr_sf spsr_cxsf '+
2024
2025 //NEON and VFP registers
2026 's0 s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12 s13 s14 s15 '+
2027 's16 s17 s18 s19 s20 s21 s22 s23 s24 s25 s26 s27 s28 s29 s30 s31 '+
2028 'd0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d10 d11 d12 d13 d14 d15 '+
2029 'd16 d17 d18 d19 d20 d21 d22 d23 d24 d25 d26 d27 d28 d29 d30 d31 ' +
2030
2031 '{PC} {VAR} {TRUE} {FALSE} {OPT} {CONFIG} {ENDIAN} {CODESIZE} {CPU} {FPU} {ARCHITECTURE} {PCSTOREOFFSET} {ARMASM_VERSION} {INTER} {ROPI} {RWPI} {SWST} {NOSWST} . @'
2032 },
2033 contains: [
2034 {
2035 className: 'keyword',
2036 begin: '\\b('+ //mnemonics
2037 'adc|'+
2038 '(qd?|sh?|u[qh]?)?add(8|16)?|usada?8|(q|sh?|u[qh]?)?(as|sa)x|'+
2039 'and|adrl?|sbc|rs[bc]|asr|b[lx]?|blx|bxj|cbn?z|tb[bh]|bic|'+
2040 'bfc|bfi|[su]bfx|bkpt|cdp2?|clz|clrex|cmp|cmn|cpsi[ed]|cps|'+
2041 'setend|dbg|dmb|dsb|eor|isb|it[te]{0,3}|lsl|lsr|ror|rrx|'+
2042 'ldm(([id][ab])|f[ds])?|ldr((s|ex)?[bhd])?|movt?|mvn|mra|mar|'+
2043 'mul|[us]mull|smul[bwt][bt]|smu[as]d|smmul|smmla|'+
2044 'mla|umlaal|smlal?([wbt][bt]|d)|mls|smlsl?[ds]|smc|svc|sev|'+
2045 'mia([bt]{2}|ph)?|mrr?c2?|mcrr2?|mrs|msr|orr|orn|pkh(tb|bt)|rbit|'+
2046 'rev(16|sh)?|sel|[su]sat(16)?|nop|pop|push|rfe([id][ab])?|'+
2047 'stm([id][ab])?|str(ex)?[bhd]?|(qd?)?sub|(sh?|q|u[qh]?)?sub(8|16)|'+
2048 '[su]xt(a?h|a?b(16)?)|srs([id][ab])?|swpb?|swi|smi|tst|teq|'+
2049 'wfe|wfi|yield'+
2050 ')'+
2051 '(eq|ne|cs|cc|mi|pl|vs|vc|hi|ls|ge|lt|gt|le|al|hs|lo)?'+ //condition codes
2052 '[sptrx]?' , //legal postfixes
2053 end: '\\s'
2054 },
2055 hljs.COMMENT('[;@]', '$', {relevance: 0}),
2056 hljs.C_BLOCK_COMMENT_MODE,
2057 hljs.QUOTE_STRING_MODE,
2058 {
2059 className: 'string',
2060 begin: '\'',
2061 end: '[^\\\\]\'',
2062 relevance: 0
2063 },
2064 {
2065 className: 'title',
2066 begin: '\\|', end: '\\|',
2067 illegal: '\\n',
2068 relevance: 0
2069 },
2070 {
2071 className: 'number',
2072 variants: [
2073 {begin: '[#$=]?0x[0-9a-f]+'}, //hex
2074 {begin: '[#$=]?0b[01]+'}, //bin
2075 {begin: '[#$=]\\d+'}, //literal
2076 {begin: '\\b\\d+'} //bare number
2077 ],
2078 relevance: 0
2079 },
2080 {
2081 className: 'symbol',
2082 variants: [
2083 {begin: '^[a-z_\\.\\$][a-z0-9_\\.\\$]+'}, //ARM syntax
2084 {begin: '^\\s*[a-z_\\.\\$][a-z0-9_\\.\\$]+:'}, //GNU ARM syntax
2085 {begin: '[=#]\\w+' } //label reference
2086 ],
2087 relevance: 0
2088 }
2089 ]
2090 };
2091}
2092},{name:"asciidoc",create:/*
2093Language: AsciiDoc
2094Requires: xml.js
2095Author: Dan Allen <dan.j.allen@gmail.com>
2096Website: http://google.com/profiles/dan.j.allen
2097Description: A semantic, text-based document format that can be exported to HTML, DocBook and other backends.
2098Category: markup
2099*/
2100
2101function(hljs) {
2102 return {
2103 aliases: ['adoc'],
2104 contains: [
2105 // block comment
2106 hljs.COMMENT(
2107 '^/{4,}\\n',
2108 '\\n/{4,}$',
2109 // can also be done as...
2110 //'^/{4,}$',
2111 //'^/{4,}$',
2112 {
2113 relevance: 10
2114 }
2115 ),
2116 // line comment
2117 hljs.COMMENT(
2118 '^//',
2119 '$',
2120 {
2121 relevance: 0
2122 }
2123 ),
2124 // title
2125 {
2126 className: 'title',
2127 begin: '^\\.\\w.*$'
2128 },
2129 // example, admonition & sidebar blocks
2130 {
2131 begin: '^[=\\*]{4,}\\n',
2132 end: '\\n^[=\\*]{4,}$',
2133 relevance: 10
2134 },
2135 // headings
2136 {
2137 className: 'section',
2138 relevance: 10,
2139 variants: [
2140 {begin: '^(={1,5}) .+?( \\1)?$'},
2141 {begin: '^[^\\[\\]\\n]+?\\n[=\\-~\\^\\+]{2,}$'},
2142 ]
2143 },
2144 // document attributes
2145 {
2146 className: 'meta',
2147 begin: '^:.+?:',
2148 end: '\\s',
2149 excludeEnd: true,
2150 relevance: 10
2151 },
2152 // block attributes
2153 {
2154 className: 'meta',
2155 begin: '^\\[.+?\\]$',
2156 relevance: 0
2157 },
2158 // quoteblocks
2159 {
2160 className: 'quote',
2161 begin: '^_{4,}\\n',
2162 end: '\\n_{4,}$',
2163 relevance: 10
2164 },
2165 // listing and literal blocks
2166 {
2167 className: 'code',
2168 begin: '^[\\-\\.]{4,}\\n',
2169 end: '\\n[\\-\\.]{4,}$',
2170 relevance: 10
2171 },
2172 // passthrough blocks
2173 {
2174 begin: '^\\+{4,}\\n',
2175 end: '\\n\\+{4,}$',
2176 contains: [
2177 {
2178 begin: '<', end: '>',
2179 subLanguage: 'xml',
2180 relevance: 0
2181 }
2182 ],
2183 relevance: 10
2184 },
2185 // lists (can only capture indicators)
2186 {
2187 className: 'bullet',
2188 begin: '^(\\*+|\\-+|\\.+|[^\\n]+?::)\\s+'
2189 },
2190 // admonition
2191 {
2192 className: 'symbol',
2193 begin: '^(NOTE|TIP|IMPORTANT|WARNING|CAUTION):\\s+',
2194 relevance: 10
2195 },
2196 // inline strong
2197 {
2198 className: 'strong',
2199 // must not follow a word character or be followed by an asterisk or space
2200 begin: '\\B\\*(?![\\*\\s])',
2201 end: '(\\n{2}|\\*)',
2202 // allow escaped asterisk followed by word char
2203 contains: [
2204 {
2205 begin: '\\\\*\\w',
2206 relevance: 0
2207 }
2208 ]
2209 },
2210 // inline emphasis
2211 {
2212 className: 'emphasis',
2213 // must not follow a word character or be followed by a single quote or space
2214 begin: '\\B\'(?![\'\\s])',
2215 end: '(\\n{2}|\')',
2216 // allow escaped single quote followed by word char
2217 contains: [
2218 {
2219 begin: '\\\\\'\\w',
2220 relevance: 0
2221 }
2222 ],
2223 relevance: 0
2224 },
2225 // inline emphasis (alt)
2226 {
2227 className: 'emphasis',
2228 // must not follow a word character or be followed by an underline or space
2229 begin: '_(?![_\\s])',
2230 end: '(\\n{2}|_)',
2231 relevance: 0
2232 },
2233 // inline smart quotes
2234 {
2235 className: 'string',
2236 variants: [
2237 {begin: "``.+?''"},
2238 {begin: "`.+?'"}
2239 ]
2240 },
2241 // inline code snippets (TODO should get same treatment as strong and emphasis)
2242 {
2243 className: 'code',
2244 begin: '(`.+?`|\\+.+?\\+)',
2245 relevance: 0
2246 },
2247 // indented literal block
2248 {
2249 className: 'code',
2250 begin: '^[ \\t]',
2251 end: '$',
2252 relevance: 0
2253 },
2254 // horizontal rules
2255 {
2256 begin: '^\'{3,}[ \\t]*$',
2257 relevance: 10
2258 },
2259 // images and links
2260 {
2261 begin: '(link:)?(http|https|ftp|file|irc|image:?):\\S+\\[.*?\\]',
2262 returnBegin: true,
2263 contains: [
2264 {
2265 begin: '(link|image:?):',
2266 relevance: 0
2267 },
2268 {
2269 className: 'link',
2270 begin: '\\w',
2271 end: '[^\\[]+',
2272 relevance: 0
2273 },
2274 {
2275 className: 'string',
2276 begin: '\\[',
2277 end: '\\]',
2278 excludeBegin: true,
2279 excludeEnd: true,
2280 relevance: 0
2281 }
2282 ],
2283 relevance: 10
2284 }
2285 ]
2286 };
2287}
2288},{name:"aspectj",create:/*
2289Language: AspectJ
2290Author: Hakan Ozler <ozler.hakan@gmail.com>
2291Description: Syntax Highlighting for the AspectJ Language which is a general-purpose aspect-oriented extension to the Java programming language.
2292 */
2293function (hljs) {
2294 var KEYWORDS =
2295 'false synchronized int abstract float private char boolean static null if const ' +
2296 'for true while long throw strictfp finally protected import native final return void ' +
2297 'enum else extends implements break transient new catch instanceof byte super volatile case ' +
2298 'assert short package default double public try this switch continue throws privileged ' +
2299 'aspectOf adviceexecution proceed cflowbelow cflow initialization preinitialization ' +
2300 'staticinitialization withincode target within execution getWithinTypeName handler ' +
2301 'thisJoinPoint thisJoinPointStaticPart thisEnclosingJoinPointStaticPart declare parents '+
2302 'warning error soft precedence thisAspectInstance';
2303 var SHORTKEYS = 'get set args call';
2304 return {
2305 keywords : KEYWORDS,
2306 illegal : /<\/|#/,
2307 contains : [
2308 hljs.COMMENT(
2309 '/\\*\\*',
2310 '\\*/',
2311 {
2312 relevance : 0,
2313 contains : [
2314 {
2315 // eat up @'s in emails to prevent them to be recognized as doctags
2316 begin: /\w+@/, relevance: 0
2317 },
2318 {
2319 className : 'doctag',
2320 begin : '@[A-Za-z]+'
2321 }
2322 ]
2323 }
2324 ),
2325 hljs.C_LINE_COMMENT_MODE,
2326 hljs.C_BLOCK_COMMENT_MODE,
2327 hljs.APOS_STRING_MODE,
2328 hljs.QUOTE_STRING_MODE,
2329 {
2330 className : 'class',
2331 beginKeywords : 'aspect',
2332 end : /[{;=]/,
2333 excludeEnd : true,
2334 illegal : /[:;"\[\]]/,
2335 contains : [
2336 {
2337 beginKeywords : 'extends implements pertypewithin perthis pertarget percflowbelow percflow issingleton'
2338 },
2339 hljs.UNDERSCORE_TITLE_MODE,
2340 {
2341 begin : /\([^\)]*/,
2342 end : /[)]+/,
2343 keywords : KEYWORDS + ' ' + SHORTKEYS,
2344 excludeEnd : false
2345 }
2346 ]
2347 },
2348 {
2349 className : 'class',
2350 beginKeywords : 'class interface',
2351 end : /[{;=]/,
2352 excludeEnd : true,
2353 relevance: 0,
2354 keywords : 'class interface',
2355 illegal : /[:"\[\]]/,
2356 contains : [
2357 {beginKeywords : 'extends implements'},
2358 hljs.UNDERSCORE_TITLE_MODE
2359 ]
2360 },
2361 {
2362 // AspectJ Constructs
2363 beginKeywords : 'pointcut after before around throwing returning',
2364 end : /[)]/,
2365 excludeEnd : false,
2366 illegal : /["\[\]]/,
2367 contains : [
2368 {
2369 begin : hljs.UNDERSCORE_IDENT_RE + '\\s*\\(',
2370 returnBegin : true,
2371 contains : [hljs.UNDERSCORE_TITLE_MODE]
2372 }
2373 ]
2374 },
2375 {
2376 begin : /[:]/,
2377 returnBegin : true,
2378 end : /[{;]/,
2379 relevance: 0,
2380 excludeEnd : false,
2381 keywords : KEYWORDS,
2382 illegal : /["\[\]]/,
2383 contains : [
2384 {
2385 begin : hljs.UNDERSCORE_IDENT_RE + '\\s*\\(',
2386 keywords : KEYWORDS + ' ' + SHORTKEYS
2387 },
2388 hljs.QUOTE_STRING_MODE
2389 ]
2390 },
2391 {
2392 // this prevents 'new Name(...), or throw ...' from being recognized as a function definition
2393 beginKeywords : 'new throw',
2394 relevance : 0
2395 },
2396 {
2397 // the function class is a bit different for AspectJ compared to the Java language
2398 className : 'function',
2399 begin : /\w+ +\w+(\.)?\w+\s*\([^\)]*\)\s*((throws)[\w\s,]+)?[\{;]/,
2400 returnBegin : true,
2401 end : /[{;=]/,
2402 keywords : KEYWORDS,
2403 excludeEnd : true,
2404 contains : [
2405 {
2406 begin : hljs.UNDERSCORE_IDENT_RE + '\\s*\\(',
2407 returnBegin : true,
2408 relevance: 0,
2409 contains : [hljs.UNDERSCORE_TITLE_MODE]
2410 },
2411 {
2412 className : 'params',
2413 begin : /\(/, end : /\)/,
2414 relevance: 0,
2415 keywords : KEYWORDS,
2416 contains : [
2417 hljs.APOS_STRING_MODE,
2418 hljs.QUOTE_STRING_MODE,
2419 hljs.C_NUMBER_MODE,
2420 hljs.C_BLOCK_COMMENT_MODE
2421 ]
2422 },
2423 hljs.C_LINE_COMMENT_MODE,
2424 hljs.C_BLOCK_COMMENT_MODE
2425 ]
2426 },
2427 hljs.C_NUMBER_MODE,
2428 {
2429 // annotation is also used in this language
2430 className : 'meta',
2431 begin : '@[A-Za-z]+'
2432 }
2433 ]
2434 };
2435}
2436},{name:"autohotkey",create:/*
2437Language: AutoHotkey
2438Author: Seongwon Lee <dlimpid@gmail.com>
2439Description: AutoHotkey language definition
2440Category: scripting
2441*/
2442
2443function(hljs) {
2444 var BACKTICK_ESCAPE = {
2445 begin: /`[\s\S]/
2446 };
2447
2448 return {
2449 case_insensitive: true,
2450 keywords: {
2451 keyword: 'Break Continue Else Gosub If Loop Return While',
2452 literal: 'A true false NOT AND OR',
2453 built_in: 'ComSpec Clipboard ClipboardAll ErrorLevel',
2454 },
2455 contains: [
2456 {
2457 className: 'built_in',
2458 begin: 'A_[a-zA-Z0-9]+'
2459 },
2460 BACKTICK_ESCAPE,
2461 hljs.inherit(hljs.QUOTE_STRING_MODE, {contains: [BACKTICK_ESCAPE]}),
2462 hljs.COMMENT(';', '$', {relevance: 0}),
2463 {
2464 className: 'number',
2465 begin: hljs.NUMBER_RE,
2466 relevance: 0
2467 },
2468 {
2469 className: 'variable', // FIXME
2470 begin: '%', end: '%',
2471 illegal: '\\n',
2472 contains: [BACKTICK_ESCAPE]
2473 },
2474 {
2475 className: 'symbol',
2476 contains: [BACKTICK_ESCAPE],
2477 variants: [
2478 {begin: '^[^\\n";]+::(?!=)'},
2479 {begin: '^[^\\n";]+:(?!=)', relevance: 0} // zero relevance as it catches a lot of things
2480 // followed by a single ':' in many languages
2481 ]
2482 },
2483 {
2484 // consecutive commas, not for highlighting but just for relevance
2485 begin: ',\\s*,'
2486 }
2487 ]
2488 }
2489}
2490},{name:"autoit",create:/*
2491Language: AutoIt
2492Author: Manh Tuan <junookyo@gmail.com>
2493Description: AutoIt language definition
2494Category: scripting
2495*/
2496
2497function(hljs) {
2498 var KEYWORDS = 'ByRef Case Const ContinueCase ContinueLoop ' +
2499 'Default Dim Do Else ElseIf EndFunc EndIf EndSelect ' +
2500 'EndSwitch EndWith Enum Exit ExitLoop For Func ' +
2501 'Global If In Local Next ReDim Return Select Static ' +
2502 'Step Switch Then To Until Volatile WEnd While With',
2503
2504 LITERAL = 'True False And Null Not Or',
2505
2506 BUILT_IN = 'Abs ACos AdlibRegister AdlibUnRegister Asc AscW ASin ' +
2507 'Assign ATan AutoItSetOption AutoItWinGetTitle ' +
2508 'AutoItWinSetTitle Beep Binary BinaryLen BinaryMid ' +
2509 'BinaryToString BitAND BitNOT BitOR BitRotate BitShift ' +
2510 'BitXOR BlockInput Break Call CDTray Ceiling Chr ' +
2511 'ChrW ClipGet ClipPut ConsoleRead ConsoleWrite ' +
2512 'ConsoleWriteError ControlClick ControlCommand ' +
2513 'ControlDisable ControlEnable ControlFocus ControlGetFocus ' +
2514 'ControlGetHandle ControlGetPos ControlGetText ControlHide ' +
2515 'ControlListView ControlMove ControlSend ControlSetText ' +
2516 'ControlShow ControlTreeView Cos Dec DirCopy DirCreate ' +
2517 'DirGetSize DirMove DirRemove DllCall DllCallAddress ' +
2518 'DllCallbackFree DllCallbackGetPtr DllCallbackRegister ' +
2519 'DllClose DllOpen DllStructCreate DllStructGetData ' +
2520 'DllStructGetPtr DllStructGetSize DllStructSetData ' +
2521 'DriveGetDrive DriveGetFileSystem DriveGetLabel ' +
2522 'DriveGetSerial DriveGetType DriveMapAdd DriveMapDel ' +
2523 'DriveMapGet DriveSetLabel DriveSpaceFree DriveSpaceTotal ' +
2524 'DriveStatus EnvGet EnvSet EnvUpdate Eval Execute Exp ' +
2525 'FileChangeDir FileClose FileCopy FileCreateNTFSLink ' +
2526 'FileCreateShortcut FileDelete FileExists FileFindFirstFile ' +
2527 'FileFindNextFile FileFlush FileGetAttrib FileGetEncoding ' +
2528 'FileGetLongName FileGetPos FileGetShortcut FileGetShortName ' +
2529 'FileGetSize FileGetTime FileGetVersion FileInstall ' +
2530 'FileMove FileOpen FileOpenDialog FileRead FileReadLine ' +
2531 'FileReadToArray FileRecycle FileRecycleEmpty FileSaveDialog ' +
2532 'FileSelectFolder FileSetAttrib FileSetEnd FileSetPos ' +
2533 'FileSetTime FileWrite FileWriteLine Floor FtpSetProxy ' +
2534 'FuncName GUICreate GUICtrlCreateAvi GUICtrlCreateButton ' +
2535 'GUICtrlCreateCheckbox GUICtrlCreateCombo ' +
2536 'GUICtrlCreateContextMenu GUICtrlCreateDate GUICtrlCreateDummy ' +
2537 'GUICtrlCreateEdit GUICtrlCreateGraphic GUICtrlCreateGroup ' +
2538 'GUICtrlCreateIcon GUICtrlCreateInput GUICtrlCreateLabel ' +
2539 'GUICtrlCreateList GUICtrlCreateListView ' +
2540 'GUICtrlCreateListViewItem GUICtrlCreateMenu ' +
2541 'GUICtrlCreateMenuItem GUICtrlCreateMonthCal GUICtrlCreateObj ' +
2542 'GUICtrlCreatePic GUICtrlCreateProgress GUICtrlCreateRadio ' +
2543 'GUICtrlCreateSlider GUICtrlCreateTab GUICtrlCreateTabItem ' +
2544 'GUICtrlCreateTreeView GUICtrlCreateTreeViewItem ' +
2545 'GUICtrlCreateUpdown GUICtrlDelete GUICtrlGetHandle ' +
2546 'GUICtrlGetState GUICtrlRead GUICtrlRecvMsg ' +
2547 'GUICtrlRegisterListViewSort GUICtrlSendMsg GUICtrlSendToDummy ' +
2548 'GUICtrlSetBkColor GUICtrlSetColor GUICtrlSetCursor ' +
2549 'GUICtrlSetData GUICtrlSetDefBkColor GUICtrlSetDefColor ' +
2550 'GUICtrlSetFont GUICtrlSetGraphic GUICtrlSetImage ' +
2551 'GUICtrlSetLimit GUICtrlSetOnEvent GUICtrlSetPos ' +
2552 'GUICtrlSetResizing GUICtrlSetState GUICtrlSetStyle ' +
2553 'GUICtrlSetTip GUIDelete GUIGetCursorInfo GUIGetMsg ' +
2554 'GUIGetStyle GUIRegisterMsg GUISetAccelerators GUISetBkColor ' +
2555 'GUISetCoord GUISetCursor GUISetFont GUISetHelp GUISetIcon ' +
2556 'GUISetOnEvent GUISetState GUISetStyle GUIStartGroup ' +
2557 'GUISwitch Hex HotKeySet HttpSetProxy HttpSetUserAgent ' +
2558 'HWnd InetClose InetGet InetGetInfo InetGetSize InetRead ' +
2559 'IniDelete IniRead IniReadSection IniReadSectionNames ' +
2560 'IniRenameSection IniWrite IniWriteSection InputBox Int ' +
2561 'IsAdmin IsArray IsBinary IsBool IsDeclared IsDllStruct ' +
2562 'IsFloat IsFunc IsHWnd IsInt IsKeyword IsNumber IsObj ' +
2563 'IsPtr IsString Log MemGetStats Mod MouseClick ' +
2564 'MouseClickDrag MouseDown MouseGetCursor MouseGetPos ' +
2565 'MouseMove MouseUp MouseWheel MsgBox Number ObjCreate ' +
2566 'ObjCreateInterface ObjEvent ObjGet ObjName ' +
2567 'OnAutoItExitRegister OnAutoItExitUnRegister Opt Ping ' +
2568 'PixelChecksum PixelGetColor PixelSearch ProcessClose ' +
2569 'ProcessExists ProcessGetStats ProcessList ' +
2570 'ProcessSetPriority ProcessWait ProcessWaitClose ProgressOff ' +
2571 'ProgressOn ProgressSet Ptr Random RegDelete RegEnumKey ' +
2572 'RegEnumVal RegRead RegWrite Round Run RunAs RunAsWait ' +
2573 'RunWait Send SendKeepActive SetError SetExtended ' +
2574 'ShellExecute ShellExecuteWait Shutdown Sin Sleep ' +
2575 'SoundPlay SoundSetWaveVolume SplashImageOn SplashOff ' +
2576 'SplashTextOn Sqrt SRandom StatusbarGetText StderrRead ' +
2577 'StdinWrite StdioClose StdoutRead String StringAddCR ' +
2578 'StringCompare StringFormat StringFromASCIIArray StringInStr ' +
2579 'StringIsAlNum StringIsAlpha StringIsASCII StringIsDigit ' +
2580 'StringIsFloat StringIsInt StringIsLower StringIsSpace ' +
2581 'StringIsUpper StringIsXDigit StringLeft StringLen ' +
2582 'StringLower StringMid StringRegExp StringRegExpReplace ' +
2583 'StringReplace StringReverse StringRight StringSplit ' +
2584 'StringStripCR StringStripWS StringToASCIIArray ' +
2585 'StringToBinary StringTrimLeft StringTrimRight StringUpper ' +
2586 'Tan TCPAccept TCPCloseSocket TCPConnect TCPListen ' +
2587 'TCPNameToIP TCPRecv TCPSend TCPShutdown TCPStartup ' +
2588 'TimerDiff TimerInit ToolTip TrayCreateItem TrayCreateMenu ' +
2589 'TrayGetMsg TrayItemDelete TrayItemGetHandle ' +
2590 'TrayItemGetState TrayItemGetText TrayItemSetOnEvent ' +
2591 'TrayItemSetState TrayItemSetText TraySetClick TraySetIcon ' +
2592 'TraySetOnEvent TraySetPauseIcon TraySetState TraySetToolTip ' +
2593 'TrayTip UBound UDPBind UDPCloseSocket UDPOpen UDPRecv ' +
2594 'UDPSend UDPShutdown UDPStartup VarGetType WinActivate ' +
2595 'WinActive WinClose WinExists WinFlash WinGetCaretPos ' +
2596 'WinGetClassList WinGetClientSize WinGetHandle WinGetPos ' +
2597 'WinGetProcess WinGetState WinGetText WinGetTitle WinKill ' +
2598 'WinList WinMenuSelectItem WinMinimizeAll WinMinimizeAllUndo ' +
2599 'WinMove WinSetOnTop WinSetState WinSetTitle WinSetTrans ' +
2600 'WinWait WinWaitActive WinWaitClose WinWaitNotActive ' +
2601 'Array1DToHistogram ArrayAdd ArrayBinarySearch ' +
2602 'ArrayColDelete ArrayColInsert ArrayCombinations ' +
2603 'ArrayConcatenate ArrayDelete ArrayDisplay ArrayExtract ' +
2604 'ArrayFindAll ArrayInsert ArrayMax ArrayMaxIndex ArrayMin ' +
2605 'ArrayMinIndex ArrayPermute ArrayPop ArrayPush ' +
2606 'ArrayReverse ArraySearch ArrayShuffle ArraySort ArraySwap ' +
2607 'ArrayToClip ArrayToString ArrayTranspose ArrayTrim ' +
2608 'ArrayUnique Assert ChooseColor ChooseFont ' +
2609 'ClipBoard_ChangeChain ClipBoard_Close ClipBoard_CountFormats ' +
2610 'ClipBoard_Empty ClipBoard_EnumFormats ClipBoard_FormatStr ' +
2611 'ClipBoard_GetData ClipBoard_GetDataEx ClipBoard_GetFormatName ' +
2612 'ClipBoard_GetOpenWindow ClipBoard_GetOwner ' +
2613 'ClipBoard_GetPriorityFormat ClipBoard_GetSequenceNumber ' +
2614 'ClipBoard_GetViewer ClipBoard_IsFormatAvailable ' +
2615 'ClipBoard_Open ClipBoard_RegisterFormat ClipBoard_SetData ' +
2616 'ClipBoard_SetDataEx ClipBoard_SetViewer ClipPutFile ' +
2617 'ColorConvertHSLtoRGB ColorConvertRGBtoHSL ColorGetBlue ' +
2618 'ColorGetCOLORREF ColorGetGreen ColorGetRed ColorGetRGB ' +
2619 'ColorSetCOLORREF ColorSetRGB Crypt_DecryptData ' +
2620 'Crypt_DecryptFile Crypt_DeriveKey Crypt_DestroyKey ' +
2621 'Crypt_EncryptData Crypt_EncryptFile Crypt_GenRandom ' +
2622 'Crypt_HashData Crypt_HashFile Crypt_Shutdown Crypt_Startup ' +
2623 'DateAdd DateDayOfWeek DateDaysInMonth DateDiff ' +
2624 'DateIsLeapYear DateIsValid DateTimeFormat DateTimeSplit ' +
2625 'DateToDayOfWeek DateToDayOfWeekISO DateToDayValue ' +
2626 'DateToMonth Date_Time_CompareFileTime ' +
2627 'Date_Time_DOSDateTimeToArray Date_Time_DOSDateTimeToFileTime ' +
2628 'Date_Time_DOSDateTimeToStr Date_Time_DOSDateToArray ' +
2629 'Date_Time_DOSDateToStr Date_Time_DOSTimeToArray ' +
2630 'Date_Time_DOSTimeToStr Date_Time_EncodeFileTime ' +
2631 'Date_Time_EncodeSystemTime Date_Time_FileTimeToArray ' +
2632 'Date_Time_FileTimeToDOSDateTime ' +
2633 'Date_Time_FileTimeToLocalFileTime Date_Time_FileTimeToStr ' +
2634 'Date_Time_FileTimeToSystemTime Date_Time_GetFileTime ' +
2635 'Date_Time_GetLocalTime Date_Time_GetSystemTime ' +
2636 'Date_Time_GetSystemTimeAdjustment ' +
2637 'Date_Time_GetSystemTimeAsFileTime Date_Time_GetSystemTimes ' +
2638 'Date_Time_GetTickCount Date_Time_GetTimeZoneInformation ' +
2639 'Date_Time_LocalFileTimeToFileTime Date_Time_SetFileTime ' +
2640 'Date_Time_SetLocalTime Date_Time_SetSystemTime ' +
2641 'Date_Time_SetSystemTimeAdjustment ' +
2642 'Date_Time_SetTimeZoneInformation Date_Time_SystemTimeToArray ' +
2643 'Date_Time_SystemTimeToDateStr Date_Time_SystemTimeToDateTimeStr ' +
2644 'Date_Time_SystemTimeToFileTime Date_Time_SystemTimeToTimeStr ' +
2645 'Date_Time_SystemTimeToTzSpecificLocalTime ' +
2646 'Date_Time_TzSpecificLocalTimeToSystemTime DayValueToDate ' +
2647 'DebugBugReportEnv DebugCOMError DebugOut DebugReport ' +
2648 'DebugReportEx DebugReportVar DebugSetup Degree ' +
2649 'EventLog__Backup EventLog__Clear EventLog__Close ' +
2650 'EventLog__Count EventLog__DeregisterSource EventLog__Full ' +
2651 'EventLog__Notify EventLog__Oldest EventLog__Open ' +
2652 'EventLog__OpenBackup EventLog__Read EventLog__RegisterSource ' +
2653 'EventLog__Report Excel_BookAttach Excel_BookClose ' +
2654 'Excel_BookList Excel_BookNew Excel_BookOpen ' +
2655 'Excel_BookOpenText Excel_BookSave Excel_BookSaveAs ' +
2656 'Excel_Close Excel_ColumnToLetter Excel_ColumnToNumber ' +
2657 'Excel_ConvertFormula Excel_Export Excel_FilterGet ' +
2658 'Excel_FilterSet Excel_Open Excel_PictureAdd Excel_Print ' +
2659 'Excel_RangeCopyPaste Excel_RangeDelete Excel_RangeFind ' +
2660 'Excel_RangeInsert Excel_RangeLinkAddRemove Excel_RangeRead ' +
2661 'Excel_RangeReplace Excel_RangeSort Excel_RangeValidate ' +
2662 'Excel_RangeWrite Excel_SheetAdd Excel_SheetCopyMove ' +
2663 'Excel_SheetDelete Excel_SheetList FileCountLines FileCreate ' +
2664 'FileListToArray FileListToArrayRec FilePrint ' +
2665 'FileReadToArray FileWriteFromArray FileWriteLog ' +
2666 'FileWriteToLine FTP_Close FTP_Command FTP_Connect ' +
2667 'FTP_DecodeInternetStatus FTP_DirCreate FTP_DirDelete ' +
2668 'FTP_DirGetCurrent FTP_DirPutContents FTP_DirSetCurrent ' +
2669 'FTP_FileClose FTP_FileDelete FTP_FileGet FTP_FileGetSize ' +
2670 'FTP_FileOpen FTP_FilePut FTP_FileRead FTP_FileRename ' +
2671 'FTP_FileTimeLoHiToStr FTP_FindFileClose FTP_FindFileFirst ' +
2672 'FTP_FindFileNext FTP_GetLastResponseInfo FTP_ListToArray ' +
2673 'FTP_ListToArray2D FTP_ListToArrayEx FTP_Open ' +
2674 'FTP_ProgressDownload FTP_ProgressUpload FTP_SetStatusCallback ' +
2675 'GDIPlus_ArrowCapCreate GDIPlus_ArrowCapDispose ' +
2676 'GDIPlus_ArrowCapGetFillState GDIPlus_ArrowCapGetHeight ' +
2677 'GDIPlus_ArrowCapGetMiddleInset GDIPlus_ArrowCapGetWidth ' +
2678 'GDIPlus_ArrowCapSetFillState GDIPlus_ArrowCapSetHeight ' +
2679 'GDIPlus_ArrowCapSetMiddleInset GDIPlus_ArrowCapSetWidth ' +
2680 'GDIPlus_BitmapApplyEffect GDIPlus_BitmapApplyEffectEx ' +
2681 'GDIPlus_BitmapCloneArea GDIPlus_BitmapConvertFormat ' +
2682 'GDIPlus_BitmapCreateApplyEffect ' +
2683 'GDIPlus_BitmapCreateApplyEffectEx ' +
2684 'GDIPlus_BitmapCreateDIBFromBitmap GDIPlus_BitmapCreateFromFile ' +
2685 'GDIPlus_BitmapCreateFromGraphics ' +
2686 'GDIPlus_BitmapCreateFromHBITMAP GDIPlus_BitmapCreateFromHICON ' +
2687 'GDIPlus_BitmapCreateFromHICON32 GDIPlus_BitmapCreateFromMemory ' +
2688 'GDIPlus_BitmapCreateFromResource GDIPlus_BitmapCreateFromScan0 ' +
2689 'GDIPlus_BitmapCreateFromStream ' +
2690 'GDIPlus_BitmapCreateHBITMAPFromBitmap GDIPlus_BitmapDispose ' +
2691 'GDIPlus_BitmapGetHistogram GDIPlus_BitmapGetHistogramEx ' +
2692 'GDIPlus_BitmapGetHistogramSize GDIPlus_BitmapGetPixel ' +
2693 'GDIPlus_BitmapLockBits GDIPlus_BitmapSetPixel ' +
2694 'GDIPlus_BitmapUnlockBits GDIPlus_BrushClone ' +
2695 'GDIPlus_BrushCreateSolid GDIPlus_BrushDispose ' +
2696 'GDIPlus_BrushGetSolidColor GDIPlus_BrushGetType ' +
2697 'GDIPlus_BrushSetSolidColor GDIPlus_ColorMatrixCreate ' +
2698 'GDIPlus_ColorMatrixCreateGrayScale ' +
2699 'GDIPlus_ColorMatrixCreateNegative ' +
2700 'GDIPlus_ColorMatrixCreateSaturation ' +
2701 'GDIPlus_ColorMatrixCreateScale ' +
2702 'GDIPlus_ColorMatrixCreateTranslate GDIPlus_CustomLineCapClone ' +
2703 'GDIPlus_CustomLineCapCreate GDIPlus_CustomLineCapDispose ' +
2704 'GDIPlus_CustomLineCapGetStrokeCaps ' +
2705 'GDIPlus_CustomLineCapSetStrokeCaps GDIPlus_Decoders ' +
2706 'GDIPlus_DecodersGetCount GDIPlus_DecodersGetSize ' +
2707 'GDIPlus_DrawImageFX GDIPlus_DrawImageFXEx ' +
2708 'GDIPlus_DrawImagePoints GDIPlus_EffectCreate ' +
2709 'GDIPlus_EffectCreateBlur GDIPlus_EffectCreateBrightnessContrast ' +
2710 'GDIPlus_EffectCreateColorBalance GDIPlus_EffectCreateColorCurve ' +
2711 'GDIPlus_EffectCreateColorLUT GDIPlus_EffectCreateColorMatrix ' +
2712 'GDIPlus_EffectCreateHueSaturationLightness ' +
2713 'GDIPlus_EffectCreateLevels GDIPlus_EffectCreateRedEyeCorrection ' +
2714 'GDIPlus_EffectCreateSharpen GDIPlus_EffectCreateTint ' +
2715 'GDIPlus_EffectDispose GDIPlus_EffectGetParameters ' +
2716 'GDIPlus_EffectSetParameters GDIPlus_Encoders ' +
2717 'GDIPlus_EncodersGetCLSID GDIPlus_EncodersGetCount ' +
2718 'GDIPlus_EncodersGetParamList GDIPlus_EncodersGetParamListSize ' +
2719 'GDIPlus_EncodersGetSize GDIPlus_FontCreate ' +
2720 'GDIPlus_FontDispose GDIPlus_FontFamilyCreate ' +
2721 'GDIPlus_FontFamilyCreateFromCollection ' +
2722 'GDIPlus_FontFamilyDispose GDIPlus_FontFamilyGetCellAscent ' +
2723 'GDIPlus_FontFamilyGetCellDescent GDIPlus_FontFamilyGetEmHeight ' +
2724 'GDIPlus_FontFamilyGetLineSpacing GDIPlus_FontGetHeight ' +
2725 'GDIPlus_FontPrivateAddFont GDIPlus_FontPrivateAddMemoryFont ' +
2726 'GDIPlus_FontPrivateCollectionDispose ' +
2727 'GDIPlus_FontPrivateCreateCollection GDIPlus_GraphicsClear ' +
2728 'GDIPlus_GraphicsCreateFromHDC GDIPlus_GraphicsCreateFromHWND ' +
2729 'GDIPlus_GraphicsDispose GDIPlus_GraphicsDrawArc ' +
2730 'GDIPlus_GraphicsDrawBezier GDIPlus_GraphicsDrawClosedCurve ' +
2731 'GDIPlus_GraphicsDrawClosedCurve2 GDIPlus_GraphicsDrawCurve ' +
2732 'GDIPlus_GraphicsDrawCurve2 GDIPlus_GraphicsDrawEllipse ' +
2733 'GDIPlus_GraphicsDrawImage GDIPlus_GraphicsDrawImagePointsRect ' +
2734 'GDIPlus_GraphicsDrawImageRect GDIPlus_GraphicsDrawImageRectRect ' +
2735 'GDIPlus_GraphicsDrawLine GDIPlus_GraphicsDrawPath ' +
2736 'GDIPlus_GraphicsDrawPie GDIPlus_GraphicsDrawPolygon ' +
2737 'GDIPlus_GraphicsDrawRect GDIPlus_GraphicsDrawString ' +
2738 'GDIPlus_GraphicsDrawStringEx GDIPlus_GraphicsFillClosedCurve ' +
2739 'GDIPlus_GraphicsFillClosedCurve2 GDIPlus_GraphicsFillEllipse ' +
2740 'GDIPlus_GraphicsFillPath GDIPlus_GraphicsFillPie ' +
2741 'GDIPlus_GraphicsFillPolygon GDIPlus_GraphicsFillRect ' +
2742 'GDIPlus_GraphicsFillRegion GDIPlus_GraphicsGetCompositingMode ' +
2743 'GDIPlus_GraphicsGetCompositingQuality GDIPlus_GraphicsGetDC ' +
2744 'GDIPlus_GraphicsGetInterpolationMode ' +
2745 'GDIPlus_GraphicsGetSmoothingMode GDIPlus_GraphicsGetTransform ' +
2746 'GDIPlus_GraphicsMeasureCharacterRanges ' +
2747 'GDIPlus_GraphicsMeasureString GDIPlus_GraphicsReleaseDC ' +
2748 'GDIPlus_GraphicsResetClip GDIPlus_GraphicsResetTransform ' +
2749 'GDIPlus_GraphicsRestore GDIPlus_GraphicsRotateTransform ' +
2750 'GDIPlus_GraphicsSave GDIPlus_GraphicsScaleTransform ' +
2751 'GDIPlus_GraphicsSetClipPath GDIPlus_GraphicsSetClipRect ' +
2752 'GDIPlus_GraphicsSetClipRegion ' +
2753 'GDIPlus_GraphicsSetCompositingMode ' +
2754 'GDIPlus_GraphicsSetCompositingQuality ' +
2755 'GDIPlus_GraphicsSetInterpolationMode ' +
2756 'GDIPlus_GraphicsSetPixelOffsetMode ' +
2757 'GDIPlus_GraphicsSetSmoothingMode ' +
2758 'GDIPlus_GraphicsSetTextRenderingHint ' +
2759 'GDIPlus_GraphicsSetTransform GDIPlus_GraphicsTransformPoints ' +
2760 'GDIPlus_GraphicsTranslateTransform GDIPlus_HatchBrushCreate ' +
2761 'GDIPlus_HICONCreateFromBitmap GDIPlus_ImageAttributesCreate ' +
2762 'GDIPlus_ImageAttributesDispose ' +
2763 'GDIPlus_ImageAttributesSetColorKeys ' +
2764 'GDIPlus_ImageAttributesSetColorMatrix GDIPlus_ImageDispose ' +
2765 'GDIPlus_ImageGetDimension GDIPlus_ImageGetFlags ' +
2766 'GDIPlus_ImageGetGraphicsContext GDIPlus_ImageGetHeight ' +
2767 'GDIPlus_ImageGetHorizontalResolution ' +
2768 'GDIPlus_ImageGetPixelFormat GDIPlus_ImageGetRawFormat ' +
2769 'GDIPlus_ImageGetThumbnail GDIPlus_ImageGetType ' +
2770 'GDIPlus_ImageGetVerticalResolution GDIPlus_ImageGetWidth ' +
2771 'GDIPlus_ImageLoadFromFile GDIPlus_ImageLoadFromStream ' +
2772 'GDIPlus_ImageResize GDIPlus_ImageRotateFlip ' +
2773 'GDIPlus_ImageSaveToFile GDIPlus_ImageSaveToFileEx ' +
2774 'GDIPlus_ImageSaveToStream GDIPlus_ImageScale ' +
2775 'GDIPlus_LineBrushCreate GDIPlus_LineBrushCreateFromRect ' +
2776 'GDIPlus_LineBrushCreateFromRectWithAngle ' +
2777 'GDIPlus_LineBrushGetColors GDIPlus_LineBrushGetRect ' +
2778 'GDIPlus_LineBrushMultiplyTransform ' +
2779 'GDIPlus_LineBrushResetTransform GDIPlus_LineBrushSetBlend ' +
2780 'GDIPlus_LineBrushSetColors GDIPlus_LineBrushSetGammaCorrection ' +
2781 'GDIPlus_LineBrushSetLinearBlend GDIPlus_LineBrushSetPresetBlend ' +
2782 'GDIPlus_LineBrushSetSigmaBlend GDIPlus_LineBrushSetTransform ' +
2783 'GDIPlus_MatrixClone GDIPlus_MatrixCreate ' +
2784 'GDIPlus_MatrixDispose GDIPlus_MatrixGetElements ' +
2785 'GDIPlus_MatrixInvert GDIPlus_MatrixMultiply ' +
2786 'GDIPlus_MatrixRotate GDIPlus_MatrixScale ' +
2787 'GDIPlus_MatrixSetElements GDIPlus_MatrixShear ' +
2788 'GDIPlus_MatrixTransformPoints GDIPlus_MatrixTranslate ' +
2789 'GDIPlus_PaletteInitialize GDIPlus_ParamAdd GDIPlus_ParamInit ' +
2790 'GDIPlus_ParamSize GDIPlus_PathAddArc GDIPlus_PathAddBezier ' +
2791 'GDIPlus_PathAddClosedCurve GDIPlus_PathAddClosedCurve2 ' +
2792 'GDIPlus_PathAddCurve GDIPlus_PathAddCurve2 ' +
2793 'GDIPlus_PathAddCurve3 GDIPlus_PathAddEllipse ' +
2794 'GDIPlus_PathAddLine GDIPlus_PathAddLine2 GDIPlus_PathAddPath ' +
2795 'GDIPlus_PathAddPie GDIPlus_PathAddPolygon ' +
2796 'GDIPlus_PathAddRectangle GDIPlus_PathAddString ' +
2797 'GDIPlus_PathBrushCreate GDIPlus_PathBrushCreateFromPath ' +
2798 'GDIPlus_PathBrushGetCenterPoint GDIPlus_PathBrushGetFocusScales ' +
2799 'GDIPlus_PathBrushGetPointCount GDIPlus_PathBrushGetRect ' +
2800 'GDIPlus_PathBrushGetWrapMode GDIPlus_PathBrushMultiplyTransform ' +
2801 'GDIPlus_PathBrushResetTransform GDIPlus_PathBrushSetBlend ' +
2802 'GDIPlus_PathBrushSetCenterColor GDIPlus_PathBrushSetCenterPoint ' +
2803 'GDIPlus_PathBrushSetFocusScales ' +
2804 'GDIPlus_PathBrushSetGammaCorrection ' +
2805 'GDIPlus_PathBrushSetLinearBlend GDIPlus_PathBrushSetPresetBlend ' +
2806 'GDIPlus_PathBrushSetSigmaBlend ' +
2807 'GDIPlus_PathBrushSetSurroundColor ' +
2808 'GDIPlus_PathBrushSetSurroundColorsWithCount ' +
2809 'GDIPlus_PathBrushSetTransform GDIPlus_PathBrushSetWrapMode ' +
2810 'GDIPlus_PathClone GDIPlus_PathCloseFigure GDIPlus_PathCreate ' +
2811 'GDIPlus_PathCreate2 GDIPlus_PathDispose GDIPlus_PathFlatten ' +
2812 'GDIPlus_PathGetData GDIPlus_PathGetFillMode ' +
2813 'GDIPlus_PathGetLastPoint GDIPlus_PathGetPointCount ' +
2814 'GDIPlus_PathGetPoints GDIPlus_PathGetWorldBounds ' +
2815 'GDIPlus_PathIsOutlineVisiblePoint GDIPlus_PathIsVisiblePoint ' +
2816 'GDIPlus_PathIterCreate GDIPlus_PathIterDispose ' +
2817 'GDIPlus_PathIterGetSubpathCount GDIPlus_PathIterNextMarkerPath ' +
2818 'GDIPlus_PathIterNextSubpathPath GDIPlus_PathIterRewind ' +
2819 'GDIPlus_PathReset GDIPlus_PathReverse GDIPlus_PathSetFillMode ' +
2820 'GDIPlus_PathSetMarker GDIPlus_PathStartFigure ' +
2821 'GDIPlus_PathTransform GDIPlus_PathWarp GDIPlus_PathWiden ' +
2822 'GDIPlus_PathWindingModeOutline GDIPlus_PenCreate ' +
2823 'GDIPlus_PenCreate2 GDIPlus_PenDispose GDIPlus_PenGetAlignment ' +
2824 'GDIPlus_PenGetColor GDIPlus_PenGetCustomEndCap ' +
2825 'GDIPlus_PenGetDashCap GDIPlus_PenGetDashStyle ' +
2826 'GDIPlus_PenGetEndCap GDIPlus_PenGetMiterLimit ' +
2827 'GDIPlus_PenGetWidth GDIPlus_PenSetAlignment ' +
2828 'GDIPlus_PenSetColor GDIPlus_PenSetCustomEndCap ' +
2829 'GDIPlus_PenSetDashCap GDIPlus_PenSetDashStyle ' +
2830 'GDIPlus_PenSetEndCap GDIPlus_PenSetLineCap ' +
2831 'GDIPlus_PenSetLineJoin GDIPlus_PenSetMiterLimit ' +
2832 'GDIPlus_PenSetStartCap GDIPlus_PenSetWidth ' +
2833 'GDIPlus_RectFCreate GDIPlus_RegionClone ' +
2834 'GDIPlus_RegionCombinePath GDIPlus_RegionCombineRect ' +
2835 'GDIPlus_RegionCombineRegion GDIPlus_RegionCreate ' +
2836 'GDIPlus_RegionCreateFromPath GDIPlus_RegionCreateFromRect ' +
2837 'GDIPlus_RegionDispose GDIPlus_RegionGetBounds ' +
2838 'GDIPlus_RegionGetHRgn GDIPlus_RegionTransform ' +
2839 'GDIPlus_RegionTranslate GDIPlus_Shutdown GDIPlus_Startup ' +
2840 'GDIPlus_StringFormatCreate GDIPlus_StringFormatDispose ' +
2841 'GDIPlus_StringFormatGetMeasurableCharacterRangeCount ' +
2842 'GDIPlus_StringFormatSetAlign GDIPlus_StringFormatSetLineAlign ' +
2843 'GDIPlus_StringFormatSetMeasurableCharacterRanges ' +
2844 'GDIPlus_TextureCreate GDIPlus_TextureCreate2 ' +
2845 'GDIPlus_TextureCreateIA GetIP GUICtrlAVI_Close ' +
2846 'GUICtrlAVI_Create GUICtrlAVI_Destroy GUICtrlAVI_IsPlaying ' +
2847 'GUICtrlAVI_Open GUICtrlAVI_OpenEx GUICtrlAVI_Play ' +
2848 'GUICtrlAVI_Seek GUICtrlAVI_Show GUICtrlAVI_Stop ' +
2849 'GUICtrlButton_Click GUICtrlButton_Create ' +
2850 'GUICtrlButton_Destroy GUICtrlButton_Enable ' +
2851 'GUICtrlButton_GetCheck GUICtrlButton_GetFocus ' +
2852 'GUICtrlButton_GetIdealSize GUICtrlButton_GetImage ' +
2853 'GUICtrlButton_GetImageList GUICtrlButton_GetNote ' +
2854 'GUICtrlButton_GetNoteLength GUICtrlButton_GetSplitInfo ' +
2855 'GUICtrlButton_GetState GUICtrlButton_GetText ' +
2856 'GUICtrlButton_GetTextMargin GUICtrlButton_SetCheck ' +
2857 'GUICtrlButton_SetDontClick GUICtrlButton_SetFocus ' +
2858 'GUICtrlButton_SetImage GUICtrlButton_SetImageList ' +
2859 'GUICtrlButton_SetNote GUICtrlButton_SetShield ' +
2860 'GUICtrlButton_SetSize GUICtrlButton_SetSplitInfo ' +
2861 'GUICtrlButton_SetState GUICtrlButton_SetStyle ' +
2862 'GUICtrlButton_SetText GUICtrlButton_SetTextMargin ' +
2863 'GUICtrlButton_Show GUICtrlComboBoxEx_AddDir ' +
2864 'GUICtrlComboBoxEx_AddString GUICtrlComboBoxEx_BeginUpdate ' +
2865 'GUICtrlComboBoxEx_Create GUICtrlComboBoxEx_CreateSolidBitMap ' +
2866 'GUICtrlComboBoxEx_DeleteString GUICtrlComboBoxEx_Destroy ' +
2867 'GUICtrlComboBoxEx_EndUpdate GUICtrlComboBoxEx_FindStringExact ' +
2868 'GUICtrlComboBoxEx_GetComboBoxInfo ' +
2869 'GUICtrlComboBoxEx_GetComboControl GUICtrlComboBoxEx_GetCount ' +
2870 'GUICtrlComboBoxEx_GetCurSel ' +
2871 'GUICtrlComboBoxEx_GetDroppedControlRect ' +
2872 'GUICtrlComboBoxEx_GetDroppedControlRectEx ' +
2873 'GUICtrlComboBoxEx_GetDroppedState ' +
2874 'GUICtrlComboBoxEx_GetDroppedWidth ' +
2875 'GUICtrlComboBoxEx_GetEditControl GUICtrlComboBoxEx_GetEditSel ' +
2876 'GUICtrlComboBoxEx_GetEditText ' +
2877 'GUICtrlComboBoxEx_GetExtendedStyle ' +
2878 'GUICtrlComboBoxEx_GetExtendedUI GUICtrlComboBoxEx_GetImageList ' +
2879 'GUICtrlComboBoxEx_GetItem GUICtrlComboBoxEx_GetItemEx ' +
2880 'GUICtrlComboBoxEx_GetItemHeight GUICtrlComboBoxEx_GetItemImage ' +
2881 'GUICtrlComboBoxEx_GetItemIndent ' +
2882 'GUICtrlComboBoxEx_GetItemOverlayImage ' +
2883 'GUICtrlComboBoxEx_GetItemParam ' +
2884 'GUICtrlComboBoxEx_GetItemSelectedImage ' +
2885 'GUICtrlComboBoxEx_GetItemText GUICtrlComboBoxEx_GetItemTextLen ' +
2886 'GUICtrlComboBoxEx_GetList GUICtrlComboBoxEx_GetListArray ' +
2887 'GUICtrlComboBoxEx_GetLocale GUICtrlComboBoxEx_GetLocaleCountry ' +
2888 'GUICtrlComboBoxEx_GetLocaleLang ' +
2889 'GUICtrlComboBoxEx_GetLocalePrimLang ' +
2890 'GUICtrlComboBoxEx_GetLocaleSubLang ' +
2891 'GUICtrlComboBoxEx_GetMinVisible GUICtrlComboBoxEx_GetTopIndex ' +
2892 'GUICtrlComboBoxEx_GetUnicode GUICtrlComboBoxEx_InitStorage ' +
2893 'GUICtrlComboBoxEx_InsertString GUICtrlComboBoxEx_LimitText ' +
2894 'GUICtrlComboBoxEx_ReplaceEditSel GUICtrlComboBoxEx_ResetContent ' +
2895 'GUICtrlComboBoxEx_SetCurSel GUICtrlComboBoxEx_SetDroppedWidth ' +
2896 'GUICtrlComboBoxEx_SetEditSel GUICtrlComboBoxEx_SetEditText ' +
2897 'GUICtrlComboBoxEx_SetExtendedStyle ' +
2898 'GUICtrlComboBoxEx_SetExtendedUI GUICtrlComboBoxEx_SetImageList ' +
2899 'GUICtrlComboBoxEx_SetItem GUICtrlComboBoxEx_SetItemEx ' +
2900 'GUICtrlComboBoxEx_SetItemHeight GUICtrlComboBoxEx_SetItemImage ' +
2901 'GUICtrlComboBoxEx_SetItemIndent ' +
2902 'GUICtrlComboBoxEx_SetItemOverlayImage ' +
2903 'GUICtrlComboBoxEx_SetItemParam ' +
2904 'GUICtrlComboBoxEx_SetItemSelectedImage ' +
2905 'GUICtrlComboBoxEx_SetMinVisible GUICtrlComboBoxEx_SetTopIndex ' +
2906 'GUICtrlComboBoxEx_SetUnicode GUICtrlComboBoxEx_ShowDropDown ' +
2907 'GUICtrlComboBox_AddDir GUICtrlComboBox_AddString ' +
2908 'GUICtrlComboBox_AutoComplete GUICtrlComboBox_BeginUpdate ' +
2909 'GUICtrlComboBox_Create GUICtrlComboBox_DeleteString ' +
2910 'GUICtrlComboBox_Destroy GUICtrlComboBox_EndUpdate ' +
2911 'GUICtrlComboBox_FindString GUICtrlComboBox_FindStringExact ' +
2912 'GUICtrlComboBox_GetComboBoxInfo GUICtrlComboBox_GetCount ' +
2913 'GUICtrlComboBox_GetCueBanner GUICtrlComboBox_GetCurSel ' +
2914 'GUICtrlComboBox_GetDroppedControlRect ' +
2915 'GUICtrlComboBox_GetDroppedControlRectEx ' +
2916 'GUICtrlComboBox_GetDroppedState GUICtrlComboBox_GetDroppedWidth ' +
2917 'GUICtrlComboBox_GetEditSel GUICtrlComboBox_GetEditText ' +
2918 'GUICtrlComboBox_GetExtendedUI ' +
2919 'GUICtrlComboBox_GetHorizontalExtent ' +
2920 'GUICtrlComboBox_GetItemHeight GUICtrlComboBox_GetLBText ' +
2921 'GUICtrlComboBox_GetLBTextLen GUICtrlComboBox_GetList ' +
2922 'GUICtrlComboBox_GetListArray GUICtrlComboBox_GetLocale ' +
2923 'GUICtrlComboBox_GetLocaleCountry GUICtrlComboBox_GetLocaleLang ' +
2924 'GUICtrlComboBox_GetLocalePrimLang ' +
2925 'GUICtrlComboBox_GetLocaleSubLang GUICtrlComboBox_GetMinVisible ' +
2926 'GUICtrlComboBox_GetTopIndex GUICtrlComboBox_InitStorage ' +
2927 'GUICtrlComboBox_InsertString GUICtrlComboBox_LimitText ' +
2928 'GUICtrlComboBox_ReplaceEditSel GUICtrlComboBox_ResetContent ' +
2929 'GUICtrlComboBox_SelectString GUICtrlComboBox_SetCueBanner ' +
2930 'GUICtrlComboBox_SetCurSel GUICtrlComboBox_SetDroppedWidth ' +
2931 'GUICtrlComboBox_SetEditSel GUICtrlComboBox_SetEditText ' +
2932 'GUICtrlComboBox_SetExtendedUI ' +
2933 'GUICtrlComboBox_SetHorizontalExtent ' +
2934 'GUICtrlComboBox_SetItemHeight GUICtrlComboBox_SetMinVisible ' +
2935 'GUICtrlComboBox_SetTopIndex GUICtrlComboBox_ShowDropDown ' +
2936 'GUICtrlDTP_Create GUICtrlDTP_Destroy GUICtrlDTP_GetMCColor ' +
2937 'GUICtrlDTP_GetMCFont GUICtrlDTP_GetMonthCal ' +
2938 'GUICtrlDTP_GetRange GUICtrlDTP_GetRangeEx ' +
2939 'GUICtrlDTP_GetSystemTime GUICtrlDTP_GetSystemTimeEx ' +
2940 'GUICtrlDTP_SetFormat GUICtrlDTP_SetMCColor ' +
2941 'GUICtrlDTP_SetMCFont GUICtrlDTP_SetRange ' +
2942 'GUICtrlDTP_SetRangeEx GUICtrlDTP_SetSystemTime ' +
2943 'GUICtrlDTP_SetSystemTimeEx GUICtrlEdit_AppendText ' +
2944 'GUICtrlEdit_BeginUpdate GUICtrlEdit_CanUndo ' +
2945 'GUICtrlEdit_CharFromPos GUICtrlEdit_Create ' +
2946 'GUICtrlEdit_Destroy GUICtrlEdit_EmptyUndoBuffer ' +
2947 'GUICtrlEdit_EndUpdate GUICtrlEdit_Find GUICtrlEdit_FmtLines ' +
2948 'GUICtrlEdit_GetCueBanner GUICtrlEdit_GetFirstVisibleLine ' +
2949 'GUICtrlEdit_GetLimitText GUICtrlEdit_GetLine ' +
2950 'GUICtrlEdit_GetLineCount GUICtrlEdit_GetMargins ' +
2951 'GUICtrlEdit_GetModify GUICtrlEdit_GetPasswordChar ' +
2952 'GUICtrlEdit_GetRECT GUICtrlEdit_GetRECTEx GUICtrlEdit_GetSel ' +
2953 'GUICtrlEdit_GetText GUICtrlEdit_GetTextLen ' +
2954 'GUICtrlEdit_HideBalloonTip GUICtrlEdit_InsertText ' +
2955 'GUICtrlEdit_LineFromChar GUICtrlEdit_LineIndex ' +
2956 'GUICtrlEdit_LineLength GUICtrlEdit_LineScroll ' +
2957 'GUICtrlEdit_PosFromChar GUICtrlEdit_ReplaceSel ' +
2958 'GUICtrlEdit_Scroll GUICtrlEdit_SetCueBanner ' +
2959 'GUICtrlEdit_SetLimitText GUICtrlEdit_SetMargins ' +
2960 'GUICtrlEdit_SetModify GUICtrlEdit_SetPasswordChar ' +
2961 'GUICtrlEdit_SetReadOnly GUICtrlEdit_SetRECT ' +
2962 'GUICtrlEdit_SetRECTEx GUICtrlEdit_SetRECTNP ' +
2963 'GUICtrlEdit_SetRectNPEx GUICtrlEdit_SetSel ' +
2964 'GUICtrlEdit_SetTabStops GUICtrlEdit_SetText ' +
2965 'GUICtrlEdit_ShowBalloonTip GUICtrlEdit_Undo ' +
2966 'GUICtrlHeader_AddItem GUICtrlHeader_ClearFilter ' +
2967 'GUICtrlHeader_ClearFilterAll GUICtrlHeader_Create ' +
2968 'GUICtrlHeader_CreateDragImage GUICtrlHeader_DeleteItem ' +
2969 'GUICtrlHeader_Destroy GUICtrlHeader_EditFilter ' +
2970 'GUICtrlHeader_GetBitmapMargin GUICtrlHeader_GetImageList ' +
2971 'GUICtrlHeader_GetItem GUICtrlHeader_GetItemAlign ' +
2972 'GUICtrlHeader_GetItemBitmap GUICtrlHeader_GetItemCount ' +
2973 'GUICtrlHeader_GetItemDisplay GUICtrlHeader_GetItemFlags ' +
2974 'GUICtrlHeader_GetItemFormat GUICtrlHeader_GetItemImage ' +
2975 'GUICtrlHeader_GetItemOrder GUICtrlHeader_GetItemParam ' +
2976 'GUICtrlHeader_GetItemRect GUICtrlHeader_GetItemRectEx ' +
2977 'GUICtrlHeader_GetItemText GUICtrlHeader_GetItemWidth ' +
2978 'GUICtrlHeader_GetOrderArray GUICtrlHeader_GetUnicodeFormat ' +
2979 'GUICtrlHeader_HitTest GUICtrlHeader_InsertItem ' +
2980 'GUICtrlHeader_Layout GUICtrlHeader_OrderToIndex ' +
2981 'GUICtrlHeader_SetBitmapMargin ' +
2982 'GUICtrlHeader_SetFilterChangeTimeout ' +
2983 'GUICtrlHeader_SetHotDivider GUICtrlHeader_SetImageList ' +
2984 'GUICtrlHeader_SetItem GUICtrlHeader_SetItemAlign ' +
2985 'GUICtrlHeader_SetItemBitmap GUICtrlHeader_SetItemDisplay ' +
2986 'GUICtrlHeader_SetItemFlags GUICtrlHeader_SetItemFormat ' +
2987 'GUICtrlHeader_SetItemImage GUICtrlHeader_SetItemOrder ' +
2988 'GUICtrlHeader_SetItemParam GUICtrlHeader_SetItemText ' +
2989 'GUICtrlHeader_SetItemWidth GUICtrlHeader_SetOrderArray ' +
2990 'GUICtrlHeader_SetUnicodeFormat GUICtrlIpAddress_ClearAddress ' +
2991 'GUICtrlIpAddress_Create GUICtrlIpAddress_Destroy ' +
2992 'GUICtrlIpAddress_Get GUICtrlIpAddress_GetArray ' +
2993 'GUICtrlIpAddress_GetEx GUICtrlIpAddress_IsBlank ' +
2994 'GUICtrlIpAddress_Set GUICtrlIpAddress_SetArray ' +
2995 'GUICtrlIpAddress_SetEx GUICtrlIpAddress_SetFocus ' +
2996 'GUICtrlIpAddress_SetFont GUICtrlIpAddress_SetRange ' +
2997 'GUICtrlIpAddress_ShowHide GUICtrlListBox_AddFile ' +
2998 'GUICtrlListBox_AddString GUICtrlListBox_BeginUpdate ' +
2999 'GUICtrlListBox_ClickItem GUICtrlListBox_Create ' +
3000 'GUICtrlListBox_DeleteString GUICtrlListBox_Destroy ' +
3001 'GUICtrlListBox_Dir GUICtrlListBox_EndUpdate ' +
3002 'GUICtrlListBox_FindInText GUICtrlListBox_FindString ' +
3003 'GUICtrlListBox_GetAnchorIndex GUICtrlListBox_GetCaretIndex ' +
3004 'GUICtrlListBox_GetCount GUICtrlListBox_GetCurSel ' +
3005 'GUICtrlListBox_GetHorizontalExtent GUICtrlListBox_GetItemData ' +
3006 'GUICtrlListBox_GetItemHeight GUICtrlListBox_GetItemRect ' +
3007 'GUICtrlListBox_GetItemRectEx GUICtrlListBox_GetListBoxInfo ' +
3008 'GUICtrlListBox_GetLocale GUICtrlListBox_GetLocaleCountry ' +
3009 'GUICtrlListBox_GetLocaleLang GUICtrlListBox_GetLocalePrimLang ' +
3010 'GUICtrlListBox_GetLocaleSubLang GUICtrlListBox_GetSel ' +
3011 'GUICtrlListBox_GetSelCount GUICtrlListBox_GetSelItems ' +
3012 'GUICtrlListBox_GetSelItemsText GUICtrlListBox_GetText ' +
3013 'GUICtrlListBox_GetTextLen GUICtrlListBox_GetTopIndex ' +
3014 'GUICtrlListBox_InitStorage GUICtrlListBox_InsertString ' +
3015 'GUICtrlListBox_ItemFromPoint GUICtrlListBox_ReplaceString ' +
3016 'GUICtrlListBox_ResetContent GUICtrlListBox_SelectString ' +
3017 'GUICtrlListBox_SelItemRange GUICtrlListBox_SelItemRangeEx ' +
3018 'GUICtrlListBox_SetAnchorIndex GUICtrlListBox_SetCaretIndex ' +
3019 'GUICtrlListBox_SetColumnWidth GUICtrlListBox_SetCurSel ' +
3020 'GUICtrlListBox_SetHorizontalExtent GUICtrlListBox_SetItemData ' +
3021 'GUICtrlListBox_SetItemHeight GUICtrlListBox_SetLocale ' +
3022 'GUICtrlListBox_SetSel GUICtrlListBox_SetTabStops ' +
3023 'GUICtrlListBox_SetTopIndex GUICtrlListBox_Sort ' +
3024 'GUICtrlListBox_SwapString GUICtrlListBox_UpdateHScroll ' +
3025 'GUICtrlListView_AddArray GUICtrlListView_AddColumn ' +
3026 'GUICtrlListView_AddItem GUICtrlListView_AddSubItem ' +
3027 'GUICtrlListView_ApproximateViewHeight ' +
3028 'GUICtrlListView_ApproximateViewRect ' +
3029 'GUICtrlListView_ApproximateViewWidth GUICtrlListView_Arrange ' +
3030 'GUICtrlListView_BeginUpdate GUICtrlListView_CancelEditLabel ' +
3031 'GUICtrlListView_ClickItem GUICtrlListView_CopyItems ' +
3032 'GUICtrlListView_Create GUICtrlListView_CreateDragImage ' +
3033 'GUICtrlListView_CreateSolidBitMap ' +
3034 'GUICtrlListView_DeleteAllItems GUICtrlListView_DeleteColumn ' +
3035 'GUICtrlListView_DeleteItem GUICtrlListView_DeleteItemsSelected ' +
3036 'GUICtrlListView_Destroy GUICtrlListView_DrawDragImage ' +
3037 'GUICtrlListView_EditLabel GUICtrlListView_EnableGroupView ' +
3038 'GUICtrlListView_EndUpdate GUICtrlListView_EnsureVisible ' +
3039 'GUICtrlListView_FindInText GUICtrlListView_FindItem ' +
3040 'GUICtrlListView_FindNearest GUICtrlListView_FindParam ' +
3041 'GUICtrlListView_FindText GUICtrlListView_GetBkColor ' +
3042 'GUICtrlListView_GetBkImage GUICtrlListView_GetCallbackMask ' +
3043 'GUICtrlListView_GetColumn GUICtrlListView_GetColumnCount ' +
3044 'GUICtrlListView_GetColumnOrder ' +
3045 'GUICtrlListView_GetColumnOrderArray ' +
3046 'GUICtrlListView_GetColumnWidth GUICtrlListView_GetCounterPage ' +
3047 'GUICtrlListView_GetEditControl ' +
3048 'GUICtrlListView_GetExtendedListViewStyle ' +
3049 'GUICtrlListView_GetFocusedGroup GUICtrlListView_GetGroupCount ' +
3050 'GUICtrlListView_GetGroupInfo ' +
3051 'GUICtrlListView_GetGroupInfoByIndex ' +
3052 'GUICtrlListView_GetGroupRect ' +
3053 'GUICtrlListView_GetGroupViewEnabled GUICtrlListView_GetHeader ' +
3054 'GUICtrlListView_GetHotCursor GUICtrlListView_GetHotItem ' +
3055 'GUICtrlListView_GetHoverTime GUICtrlListView_GetImageList ' +
3056 'GUICtrlListView_GetISearchString GUICtrlListView_GetItem ' +
3057 'GUICtrlListView_GetItemChecked GUICtrlListView_GetItemCount ' +
3058 'GUICtrlListView_GetItemCut GUICtrlListView_GetItemDropHilited ' +
3059 'GUICtrlListView_GetItemEx GUICtrlListView_GetItemFocused ' +
3060 'GUICtrlListView_GetItemGroupID GUICtrlListView_GetItemImage ' +
3061 'GUICtrlListView_GetItemIndent GUICtrlListView_GetItemParam ' +
3062 'GUICtrlListView_GetItemPosition ' +
3063 'GUICtrlListView_GetItemPositionX ' +
3064 'GUICtrlListView_GetItemPositionY GUICtrlListView_GetItemRect ' +
3065 'GUICtrlListView_GetItemRectEx GUICtrlListView_GetItemSelected ' +
3066 'GUICtrlListView_GetItemSpacing GUICtrlListView_GetItemSpacingX ' +
3067 'GUICtrlListView_GetItemSpacingY GUICtrlListView_GetItemState ' +
3068 'GUICtrlListView_GetItemStateImage GUICtrlListView_GetItemText ' +
3069 'GUICtrlListView_GetItemTextArray ' +
3070 'GUICtrlListView_GetItemTextString GUICtrlListView_GetNextItem ' +
3071 'GUICtrlListView_GetNumberOfWorkAreas GUICtrlListView_GetOrigin ' +
3072 'GUICtrlListView_GetOriginX GUICtrlListView_GetOriginY ' +
3073 'GUICtrlListView_GetOutlineColor ' +
3074 'GUICtrlListView_GetSelectedColumn ' +
3075 'GUICtrlListView_GetSelectedCount ' +
3076 'GUICtrlListView_GetSelectedIndices ' +
3077 'GUICtrlListView_GetSelectionMark GUICtrlListView_GetStringWidth ' +
3078 'GUICtrlListView_GetSubItemRect GUICtrlListView_GetTextBkColor ' +
3079 'GUICtrlListView_GetTextColor GUICtrlListView_GetToolTips ' +
3080 'GUICtrlListView_GetTopIndex GUICtrlListView_GetUnicodeFormat ' +
3081 'GUICtrlListView_GetView GUICtrlListView_GetViewDetails ' +
3082 'GUICtrlListView_GetViewLarge GUICtrlListView_GetViewList ' +
3083 'GUICtrlListView_GetViewRect GUICtrlListView_GetViewSmall ' +
3084 'GUICtrlListView_GetViewTile GUICtrlListView_HideColumn ' +
3085 'GUICtrlListView_HitTest GUICtrlListView_InsertColumn ' +
3086 'GUICtrlListView_InsertGroup GUICtrlListView_InsertItem ' +
3087 'GUICtrlListView_JustifyColumn GUICtrlListView_MapIDToIndex ' +
3088 'GUICtrlListView_MapIndexToID GUICtrlListView_RedrawItems ' +
3089 'GUICtrlListView_RegisterSortCallBack ' +
3090 'GUICtrlListView_RemoveAllGroups GUICtrlListView_RemoveGroup ' +
3091 'GUICtrlListView_Scroll GUICtrlListView_SetBkColor ' +
3092 'GUICtrlListView_SetBkImage GUICtrlListView_SetCallBackMask ' +
3093 'GUICtrlListView_SetColumn GUICtrlListView_SetColumnOrder ' +
3094 'GUICtrlListView_SetColumnOrderArray ' +
3095 'GUICtrlListView_SetColumnWidth ' +
3096 'GUICtrlListView_SetExtendedListViewStyle ' +
3097 'GUICtrlListView_SetGroupInfo GUICtrlListView_SetHotItem ' +
3098 'GUICtrlListView_SetHoverTime GUICtrlListView_SetIconSpacing ' +
3099 'GUICtrlListView_SetImageList GUICtrlListView_SetItem ' +
3100 'GUICtrlListView_SetItemChecked GUICtrlListView_SetItemCount ' +
3101 'GUICtrlListView_SetItemCut GUICtrlListView_SetItemDropHilited ' +
3102 'GUICtrlListView_SetItemEx GUICtrlListView_SetItemFocused ' +
3103 'GUICtrlListView_SetItemGroupID GUICtrlListView_SetItemImage ' +
3104 'GUICtrlListView_SetItemIndent GUICtrlListView_SetItemParam ' +
3105 'GUICtrlListView_SetItemPosition ' +
3106 'GUICtrlListView_SetItemPosition32 ' +
3107 'GUICtrlListView_SetItemSelected GUICtrlListView_SetItemState ' +
3108 'GUICtrlListView_SetItemStateImage GUICtrlListView_SetItemText ' +
3109 'GUICtrlListView_SetOutlineColor ' +
3110 'GUICtrlListView_SetSelectedColumn ' +
3111 'GUICtrlListView_SetSelectionMark GUICtrlListView_SetTextBkColor ' +
3112 'GUICtrlListView_SetTextColor GUICtrlListView_SetToolTips ' +
3113 'GUICtrlListView_SetUnicodeFormat GUICtrlListView_SetView ' +
3114 'GUICtrlListView_SetWorkAreas GUICtrlListView_SimpleSort ' +
3115 'GUICtrlListView_SortItems GUICtrlListView_SubItemHitTest ' +
3116 'GUICtrlListView_UnRegisterSortCallBack GUICtrlMenu_AddMenuItem ' +
3117 'GUICtrlMenu_AppendMenu GUICtrlMenu_CalculatePopupWindowPosition ' +
3118 'GUICtrlMenu_CheckMenuItem GUICtrlMenu_CheckRadioItem ' +
3119 'GUICtrlMenu_CreateMenu GUICtrlMenu_CreatePopup ' +
3120 'GUICtrlMenu_DeleteMenu GUICtrlMenu_DestroyMenu ' +
3121 'GUICtrlMenu_DrawMenuBar GUICtrlMenu_EnableMenuItem ' +
3122 'GUICtrlMenu_FindItem GUICtrlMenu_FindParent ' +
3123 'GUICtrlMenu_GetItemBmp GUICtrlMenu_GetItemBmpChecked ' +
3124 'GUICtrlMenu_GetItemBmpUnchecked GUICtrlMenu_GetItemChecked ' +
3125 'GUICtrlMenu_GetItemCount GUICtrlMenu_GetItemData ' +
3126 'GUICtrlMenu_GetItemDefault GUICtrlMenu_GetItemDisabled ' +
3127 'GUICtrlMenu_GetItemEnabled GUICtrlMenu_GetItemGrayed ' +
3128 'GUICtrlMenu_GetItemHighlighted GUICtrlMenu_GetItemID ' +
3129 'GUICtrlMenu_GetItemInfo GUICtrlMenu_GetItemRect ' +
3130 'GUICtrlMenu_GetItemRectEx GUICtrlMenu_GetItemState ' +
3131 'GUICtrlMenu_GetItemStateEx GUICtrlMenu_GetItemSubMenu ' +
3132 'GUICtrlMenu_GetItemText GUICtrlMenu_GetItemType ' +
3133 'GUICtrlMenu_GetMenu GUICtrlMenu_GetMenuBackground ' +
3134 'GUICtrlMenu_GetMenuBarInfo GUICtrlMenu_GetMenuContextHelpID ' +
3135 'GUICtrlMenu_GetMenuData GUICtrlMenu_GetMenuDefaultItem ' +
3136 'GUICtrlMenu_GetMenuHeight GUICtrlMenu_GetMenuInfo ' +
3137 'GUICtrlMenu_GetMenuStyle GUICtrlMenu_GetSystemMenu ' +
3138 'GUICtrlMenu_InsertMenuItem GUICtrlMenu_InsertMenuItemEx ' +
3139 'GUICtrlMenu_IsMenu GUICtrlMenu_LoadMenu ' +
3140 'GUICtrlMenu_MapAccelerator GUICtrlMenu_MenuItemFromPoint ' +
3141 'GUICtrlMenu_RemoveMenu GUICtrlMenu_SetItemBitmaps ' +
3142 'GUICtrlMenu_SetItemBmp GUICtrlMenu_SetItemBmpChecked ' +
3143 'GUICtrlMenu_SetItemBmpUnchecked GUICtrlMenu_SetItemChecked ' +
3144 'GUICtrlMenu_SetItemData GUICtrlMenu_SetItemDefault ' +
3145 'GUICtrlMenu_SetItemDisabled GUICtrlMenu_SetItemEnabled ' +
3146 'GUICtrlMenu_SetItemGrayed GUICtrlMenu_SetItemHighlighted ' +
3147 'GUICtrlMenu_SetItemID GUICtrlMenu_SetItemInfo ' +
3148 'GUICtrlMenu_SetItemState GUICtrlMenu_SetItemSubMenu ' +
3149 'GUICtrlMenu_SetItemText GUICtrlMenu_SetItemType ' +
3150 'GUICtrlMenu_SetMenu GUICtrlMenu_SetMenuBackground ' +
3151 'GUICtrlMenu_SetMenuContextHelpID GUICtrlMenu_SetMenuData ' +
3152 'GUICtrlMenu_SetMenuDefaultItem GUICtrlMenu_SetMenuHeight ' +
3153 'GUICtrlMenu_SetMenuInfo GUICtrlMenu_SetMenuStyle ' +
3154 'GUICtrlMenu_TrackPopupMenu GUICtrlMonthCal_Create ' +
3155 'GUICtrlMonthCal_Destroy GUICtrlMonthCal_GetCalendarBorder ' +
3156 'GUICtrlMonthCal_GetCalendarCount GUICtrlMonthCal_GetColor ' +
3157 'GUICtrlMonthCal_GetColorArray GUICtrlMonthCal_GetCurSel ' +
3158 'GUICtrlMonthCal_GetCurSelStr GUICtrlMonthCal_GetFirstDOW ' +
3159 'GUICtrlMonthCal_GetFirstDOWStr GUICtrlMonthCal_GetMaxSelCount ' +
3160 'GUICtrlMonthCal_GetMaxTodayWidth ' +
3161 'GUICtrlMonthCal_GetMinReqHeight GUICtrlMonthCal_GetMinReqRect ' +
3162 'GUICtrlMonthCal_GetMinReqRectArray ' +
3163 'GUICtrlMonthCal_GetMinReqWidth GUICtrlMonthCal_GetMonthDelta ' +
3164 'GUICtrlMonthCal_GetMonthRange GUICtrlMonthCal_GetMonthRangeMax ' +
3165 'GUICtrlMonthCal_GetMonthRangeMaxStr ' +
3166 'GUICtrlMonthCal_GetMonthRangeMin ' +
3167 'GUICtrlMonthCal_GetMonthRangeMinStr ' +
3168 'GUICtrlMonthCal_GetMonthRangeSpan GUICtrlMonthCal_GetRange ' +
3169 'GUICtrlMonthCal_GetRangeMax GUICtrlMonthCal_GetRangeMaxStr ' +
3170 'GUICtrlMonthCal_GetRangeMin GUICtrlMonthCal_GetRangeMinStr ' +
3171 'GUICtrlMonthCal_GetSelRange GUICtrlMonthCal_GetSelRangeMax ' +
3172 'GUICtrlMonthCal_GetSelRangeMaxStr ' +
3173 'GUICtrlMonthCal_GetSelRangeMin ' +
3174 'GUICtrlMonthCal_GetSelRangeMinStr GUICtrlMonthCal_GetToday ' +
3175 'GUICtrlMonthCal_GetTodayStr GUICtrlMonthCal_GetUnicodeFormat ' +
3176 'GUICtrlMonthCal_HitTest GUICtrlMonthCal_SetCalendarBorder ' +
3177 'GUICtrlMonthCal_SetColor GUICtrlMonthCal_SetCurSel ' +
3178 'GUICtrlMonthCal_SetDayState GUICtrlMonthCal_SetFirstDOW ' +
3179 'GUICtrlMonthCal_SetMaxSelCount GUICtrlMonthCal_SetMonthDelta ' +
3180 'GUICtrlMonthCal_SetRange GUICtrlMonthCal_SetSelRange ' +
3181 'GUICtrlMonthCal_SetToday GUICtrlMonthCal_SetUnicodeFormat ' +
3182 'GUICtrlRebar_AddBand GUICtrlRebar_AddToolBarBand ' +
3183 'GUICtrlRebar_BeginDrag GUICtrlRebar_Create ' +
3184 'GUICtrlRebar_DeleteBand GUICtrlRebar_Destroy ' +
3185 'GUICtrlRebar_DragMove GUICtrlRebar_EndDrag ' +
3186 'GUICtrlRebar_GetBandBackColor GUICtrlRebar_GetBandBorders ' +
3187 'GUICtrlRebar_GetBandBordersEx GUICtrlRebar_GetBandChildHandle ' +
3188 'GUICtrlRebar_GetBandChildSize GUICtrlRebar_GetBandCount ' +
3189 'GUICtrlRebar_GetBandForeColor GUICtrlRebar_GetBandHeaderSize ' +
3190 'GUICtrlRebar_GetBandID GUICtrlRebar_GetBandIdealSize ' +
3191 'GUICtrlRebar_GetBandLength GUICtrlRebar_GetBandLParam ' +
3192 'GUICtrlRebar_GetBandMargins GUICtrlRebar_GetBandMarginsEx ' +
3193 'GUICtrlRebar_GetBandRect GUICtrlRebar_GetBandRectEx ' +
3194 'GUICtrlRebar_GetBandStyle GUICtrlRebar_GetBandStyleBreak ' +
3195 'GUICtrlRebar_GetBandStyleChildEdge ' +
3196 'GUICtrlRebar_GetBandStyleFixedBMP ' +
3197 'GUICtrlRebar_GetBandStyleFixedSize ' +
3198 'GUICtrlRebar_GetBandStyleGripperAlways ' +
3199 'GUICtrlRebar_GetBandStyleHidden ' +
3200 'GUICtrlRebar_GetBandStyleHideTitle ' +
3201 'GUICtrlRebar_GetBandStyleNoGripper ' +
3202 'GUICtrlRebar_GetBandStyleTopAlign ' +
3203 'GUICtrlRebar_GetBandStyleUseChevron ' +
3204 'GUICtrlRebar_GetBandStyleVariableHeight ' +
3205 'GUICtrlRebar_GetBandText GUICtrlRebar_GetBarHeight ' +
3206 'GUICtrlRebar_GetBarInfo GUICtrlRebar_GetBKColor ' +
3207 'GUICtrlRebar_GetColorScheme GUICtrlRebar_GetRowCount ' +
3208 'GUICtrlRebar_GetRowHeight GUICtrlRebar_GetTextColor ' +
3209 'GUICtrlRebar_GetToolTips GUICtrlRebar_GetUnicodeFormat ' +
3210 'GUICtrlRebar_HitTest GUICtrlRebar_IDToIndex ' +
3211 'GUICtrlRebar_MaximizeBand GUICtrlRebar_MinimizeBand ' +
3212 'GUICtrlRebar_MoveBand GUICtrlRebar_SetBandBackColor ' +
3213 'GUICtrlRebar_SetBandForeColor GUICtrlRebar_SetBandHeaderSize ' +
3214 'GUICtrlRebar_SetBandID GUICtrlRebar_SetBandIdealSize ' +
3215 'GUICtrlRebar_SetBandLength GUICtrlRebar_SetBandLParam ' +
3216 'GUICtrlRebar_SetBandStyle GUICtrlRebar_SetBandStyleBreak ' +
3217 'GUICtrlRebar_SetBandStyleChildEdge ' +
3218 'GUICtrlRebar_SetBandStyleFixedBMP ' +
3219 'GUICtrlRebar_SetBandStyleFixedSize ' +
3220 'GUICtrlRebar_SetBandStyleGripperAlways ' +
3221 'GUICtrlRebar_SetBandStyleHidden ' +
3222 'GUICtrlRebar_SetBandStyleHideTitle ' +
3223 'GUICtrlRebar_SetBandStyleNoGripper ' +
3224 'GUICtrlRebar_SetBandStyleTopAlign ' +
3225 'GUICtrlRebar_SetBandStyleUseChevron ' +
3226 'GUICtrlRebar_SetBandStyleVariableHeight ' +
3227 'GUICtrlRebar_SetBandText GUICtrlRebar_SetBarInfo ' +
3228 'GUICtrlRebar_SetBKColor GUICtrlRebar_SetColorScheme ' +
3229 'GUICtrlRebar_SetTextColor GUICtrlRebar_SetToolTips ' +
3230 'GUICtrlRebar_SetUnicodeFormat GUICtrlRebar_ShowBand ' +
3231 'GUICtrlRichEdit_AppendText GUICtrlRichEdit_AutoDetectURL ' +
3232 'GUICtrlRichEdit_CanPaste GUICtrlRichEdit_CanPasteSpecial ' +
3233 'GUICtrlRichEdit_CanRedo GUICtrlRichEdit_CanUndo ' +
3234 'GUICtrlRichEdit_ChangeFontSize GUICtrlRichEdit_Copy ' +
3235 'GUICtrlRichEdit_Create GUICtrlRichEdit_Cut ' +
3236 'GUICtrlRichEdit_Deselect GUICtrlRichEdit_Destroy ' +
3237 'GUICtrlRichEdit_EmptyUndoBuffer GUICtrlRichEdit_FindText ' +
3238 'GUICtrlRichEdit_FindTextInRange GUICtrlRichEdit_GetBkColor ' +
3239 'GUICtrlRichEdit_GetCharAttributes ' +
3240 'GUICtrlRichEdit_GetCharBkColor GUICtrlRichEdit_GetCharColor ' +
3241 'GUICtrlRichEdit_GetCharPosFromXY ' +
3242 'GUICtrlRichEdit_GetCharPosOfNextWord ' +
3243 'GUICtrlRichEdit_GetCharPosOfPreviousWord ' +
3244 'GUICtrlRichEdit_GetCharWordBreakInfo ' +
3245 'GUICtrlRichEdit_GetFirstCharPosOnLine GUICtrlRichEdit_GetFont ' +
3246 'GUICtrlRichEdit_GetLineCount GUICtrlRichEdit_GetLineLength ' +
3247 'GUICtrlRichEdit_GetLineNumberFromCharPos ' +
3248 'GUICtrlRichEdit_GetNextRedo GUICtrlRichEdit_GetNextUndo ' +
3249 'GUICtrlRichEdit_GetNumberOfFirstVisibleLine ' +
3250 'GUICtrlRichEdit_GetParaAlignment ' +
3251 'GUICtrlRichEdit_GetParaAttributes GUICtrlRichEdit_GetParaBorder ' +
3252 'GUICtrlRichEdit_GetParaIndents GUICtrlRichEdit_GetParaNumbering ' +
3253 'GUICtrlRichEdit_GetParaShading GUICtrlRichEdit_GetParaSpacing ' +
3254 'GUICtrlRichEdit_GetParaTabStops GUICtrlRichEdit_GetPasswordChar ' +
3255 'GUICtrlRichEdit_GetRECT GUICtrlRichEdit_GetScrollPos ' +
3256 'GUICtrlRichEdit_GetSel GUICtrlRichEdit_GetSelAA ' +
3257 'GUICtrlRichEdit_GetSelText GUICtrlRichEdit_GetSpaceUnit ' +
3258 'GUICtrlRichEdit_GetText GUICtrlRichEdit_GetTextInLine ' +
3259 'GUICtrlRichEdit_GetTextInRange GUICtrlRichEdit_GetTextLength ' +
3260 'GUICtrlRichEdit_GetVersion GUICtrlRichEdit_GetXYFromCharPos ' +
3261 'GUICtrlRichEdit_GetZoom GUICtrlRichEdit_GotoCharPos ' +
3262 'GUICtrlRichEdit_HideSelection GUICtrlRichEdit_InsertText ' +
3263 'GUICtrlRichEdit_IsModified GUICtrlRichEdit_IsTextSelected ' +
3264 'GUICtrlRichEdit_Paste GUICtrlRichEdit_PasteSpecial ' +
3265 'GUICtrlRichEdit_PauseRedraw GUICtrlRichEdit_Redo ' +
3266 'GUICtrlRichEdit_ReplaceText GUICtrlRichEdit_ResumeRedraw ' +
3267 'GUICtrlRichEdit_ScrollLineOrPage GUICtrlRichEdit_ScrollLines ' +
3268 'GUICtrlRichEdit_ScrollToCaret GUICtrlRichEdit_SetBkColor ' +
3269 'GUICtrlRichEdit_SetCharAttributes ' +
3270 'GUICtrlRichEdit_SetCharBkColor GUICtrlRichEdit_SetCharColor ' +
3271 'GUICtrlRichEdit_SetEventMask GUICtrlRichEdit_SetFont ' +
3272 'GUICtrlRichEdit_SetLimitOnText GUICtrlRichEdit_SetModified ' +
3273 'GUICtrlRichEdit_SetParaAlignment ' +
3274 'GUICtrlRichEdit_SetParaAttributes GUICtrlRichEdit_SetParaBorder ' +
3275 'GUICtrlRichEdit_SetParaIndents GUICtrlRichEdit_SetParaNumbering ' +
3276 'GUICtrlRichEdit_SetParaShading GUICtrlRichEdit_SetParaSpacing ' +
3277 'GUICtrlRichEdit_SetParaTabStops GUICtrlRichEdit_SetPasswordChar ' +
3278 'GUICtrlRichEdit_SetReadOnly GUICtrlRichEdit_SetRECT ' +
3279 'GUICtrlRichEdit_SetScrollPos GUICtrlRichEdit_SetSel ' +
3280 'GUICtrlRichEdit_SetSpaceUnit GUICtrlRichEdit_SetTabStops ' +
3281 'GUICtrlRichEdit_SetText GUICtrlRichEdit_SetUndoLimit ' +
3282 'GUICtrlRichEdit_SetZoom GUICtrlRichEdit_StreamFromFile ' +
3283 'GUICtrlRichEdit_StreamFromVar GUICtrlRichEdit_StreamToFile ' +
3284 'GUICtrlRichEdit_StreamToVar GUICtrlRichEdit_Undo ' +
3285 'GUICtrlSlider_ClearSel GUICtrlSlider_ClearTics ' +
3286 'GUICtrlSlider_Create GUICtrlSlider_Destroy ' +
3287 'GUICtrlSlider_GetBuddy GUICtrlSlider_GetChannelRect ' +
3288 'GUICtrlSlider_GetChannelRectEx GUICtrlSlider_GetLineSize ' +
3289 'GUICtrlSlider_GetLogicalTics GUICtrlSlider_GetNumTics ' +
3290 'GUICtrlSlider_GetPageSize GUICtrlSlider_GetPos ' +
3291 'GUICtrlSlider_GetRange GUICtrlSlider_GetRangeMax ' +
3292 'GUICtrlSlider_GetRangeMin GUICtrlSlider_GetSel ' +
3293 'GUICtrlSlider_GetSelEnd GUICtrlSlider_GetSelStart ' +
3294 'GUICtrlSlider_GetThumbLength GUICtrlSlider_GetThumbRect ' +
3295 'GUICtrlSlider_GetThumbRectEx GUICtrlSlider_GetTic ' +
3296 'GUICtrlSlider_GetTicPos GUICtrlSlider_GetToolTips ' +
3297 'GUICtrlSlider_GetUnicodeFormat GUICtrlSlider_SetBuddy ' +
3298 'GUICtrlSlider_SetLineSize GUICtrlSlider_SetPageSize ' +
3299 'GUICtrlSlider_SetPos GUICtrlSlider_SetRange ' +
3300 'GUICtrlSlider_SetRangeMax GUICtrlSlider_SetRangeMin ' +
3301 'GUICtrlSlider_SetSel GUICtrlSlider_SetSelEnd ' +
3302 'GUICtrlSlider_SetSelStart GUICtrlSlider_SetThumbLength ' +
3303 'GUICtrlSlider_SetTic GUICtrlSlider_SetTicFreq ' +
3304 'GUICtrlSlider_SetTipSide GUICtrlSlider_SetToolTips ' +
3305 'GUICtrlSlider_SetUnicodeFormat GUICtrlStatusBar_Create ' +
3306 'GUICtrlStatusBar_Destroy GUICtrlStatusBar_EmbedControl ' +
3307 'GUICtrlStatusBar_GetBorders GUICtrlStatusBar_GetBordersHorz ' +
3308 'GUICtrlStatusBar_GetBordersRect GUICtrlStatusBar_GetBordersVert ' +
3309 'GUICtrlStatusBar_GetCount GUICtrlStatusBar_GetHeight ' +
3310 'GUICtrlStatusBar_GetIcon GUICtrlStatusBar_GetParts ' +
3311 'GUICtrlStatusBar_GetRect GUICtrlStatusBar_GetRectEx ' +
3312 'GUICtrlStatusBar_GetText GUICtrlStatusBar_GetTextFlags ' +
3313 'GUICtrlStatusBar_GetTextLength GUICtrlStatusBar_GetTextLengthEx ' +
3314 'GUICtrlStatusBar_GetTipText GUICtrlStatusBar_GetUnicodeFormat ' +
3315 'GUICtrlStatusBar_GetWidth GUICtrlStatusBar_IsSimple ' +
3316 'GUICtrlStatusBar_Resize GUICtrlStatusBar_SetBkColor ' +
3317 'GUICtrlStatusBar_SetIcon GUICtrlStatusBar_SetMinHeight ' +
3318 'GUICtrlStatusBar_SetParts GUICtrlStatusBar_SetSimple ' +
3319 'GUICtrlStatusBar_SetText GUICtrlStatusBar_SetTipText ' +
3320 'GUICtrlStatusBar_SetUnicodeFormat GUICtrlStatusBar_ShowHide ' +
3321 'GUICtrlTab_ActivateTab GUICtrlTab_ClickTab GUICtrlTab_Create ' +
3322 'GUICtrlTab_DeleteAllItems GUICtrlTab_DeleteItem ' +
3323 'GUICtrlTab_DeselectAll GUICtrlTab_Destroy GUICtrlTab_FindTab ' +
3324 'GUICtrlTab_GetCurFocus GUICtrlTab_GetCurSel ' +
3325 'GUICtrlTab_GetDisplayRect GUICtrlTab_GetDisplayRectEx ' +
3326 'GUICtrlTab_GetExtendedStyle GUICtrlTab_GetImageList ' +
3327 'GUICtrlTab_GetItem GUICtrlTab_GetItemCount ' +
3328 'GUICtrlTab_GetItemImage GUICtrlTab_GetItemParam ' +
3329 'GUICtrlTab_GetItemRect GUICtrlTab_GetItemRectEx ' +
3330 'GUICtrlTab_GetItemState GUICtrlTab_GetItemText ' +
3331 'GUICtrlTab_GetRowCount GUICtrlTab_GetToolTips ' +
3332 'GUICtrlTab_GetUnicodeFormat GUICtrlTab_HighlightItem ' +
3333 'GUICtrlTab_HitTest GUICtrlTab_InsertItem ' +
3334 'GUICtrlTab_RemoveImage GUICtrlTab_SetCurFocus ' +
3335 'GUICtrlTab_SetCurSel GUICtrlTab_SetExtendedStyle ' +
3336 'GUICtrlTab_SetImageList GUICtrlTab_SetItem ' +
3337 'GUICtrlTab_SetItemImage GUICtrlTab_SetItemParam ' +
3338 'GUICtrlTab_SetItemSize GUICtrlTab_SetItemState ' +
3339 'GUICtrlTab_SetItemText GUICtrlTab_SetMinTabWidth ' +
3340 'GUICtrlTab_SetPadding GUICtrlTab_SetToolTips ' +
3341 'GUICtrlTab_SetUnicodeFormat GUICtrlToolbar_AddBitmap ' +
3342 'GUICtrlToolbar_AddButton GUICtrlToolbar_AddButtonSep ' +
3343 'GUICtrlToolbar_AddString GUICtrlToolbar_ButtonCount ' +
3344 'GUICtrlToolbar_CheckButton GUICtrlToolbar_ClickAccel ' +
3345 'GUICtrlToolbar_ClickButton GUICtrlToolbar_ClickIndex ' +
3346 'GUICtrlToolbar_CommandToIndex GUICtrlToolbar_Create ' +
3347 'GUICtrlToolbar_Customize GUICtrlToolbar_DeleteButton ' +
3348 'GUICtrlToolbar_Destroy GUICtrlToolbar_EnableButton ' +
3349 'GUICtrlToolbar_FindToolbar GUICtrlToolbar_GetAnchorHighlight ' +
3350 'GUICtrlToolbar_GetBitmapFlags GUICtrlToolbar_GetButtonBitmap ' +
3351 'GUICtrlToolbar_GetButtonInfo GUICtrlToolbar_GetButtonInfoEx ' +
3352 'GUICtrlToolbar_GetButtonParam GUICtrlToolbar_GetButtonRect ' +
3353 'GUICtrlToolbar_GetButtonRectEx GUICtrlToolbar_GetButtonSize ' +
3354 'GUICtrlToolbar_GetButtonState GUICtrlToolbar_GetButtonStyle ' +
3355 'GUICtrlToolbar_GetButtonText GUICtrlToolbar_GetColorScheme ' +
3356 'GUICtrlToolbar_GetDisabledImageList ' +
3357 'GUICtrlToolbar_GetExtendedStyle GUICtrlToolbar_GetHotImageList ' +
3358 'GUICtrlToolbar_GetHotItem GUICtrlToolbar_GetImageList ' +
3359 'GUICtrlToolbar_GetInsertMark GUICtrlToolbar_GetInsertMarkColor ' +
3360 'GUICtrlToolbar_GetMaxSize GUICtrlToolbar_GetMetrics ' +
3361 'GUICtrlToolbar_GetPadding GUICtrlToolbar_GetRows ' +
3362 'GUICtrlToolbar_GetString GUICtrlToolbar_GetStyle ' +
3363 'GUICtrlToolbar_GetStyleAltDrag ' +
3364 'GUICtrlToolbar_GetStyleCustomErase GUICtrlToolbar_GetStyleFlat ' +
3365 'GUICtrlToolbar_GetStyleList GUICtrlToolbar_GetStyleRegisterDrop ' +
3366 'GUICtrlToolbar_GetStyleToolTips ' +
3367 'GUICtrlToolbar_GetStyleTransparent ' +
3368 'GUICtrlToolbar_GetStyleWrapable GUICtrlToolbar_GetTextRows ' +
3369 'GUICtrlToolbar_GetToolTips GUICtrlToolbar_GetUnicodeFormat ' +
3370 'GUICtrlToolbar_HideButton GUICtrlToolbar_HighlightButton ' +
3371 'GUICtrlToolbar_HitTest GUICtrlToolbar_IndexToCommand ' +
3372 'GUICtrlToolbar_InsertButton GUICtrlToolbar_InsertMarkHitTest ' +
3373 'GUICtrlToolbar_IsButtonChecked GUICtrlToolbar_IsButtonEnabled ' +
3374 'GUICtrlToolbar_IsButtonHidden ' +
3375 'GUICtrlToolbar_IsButtonHighlighted ' +
3376 'GUICtrlToolbar_IsButtonIndeterminate ' +
3377 'GUICtrlToolbar_IsButtonPressed GUICtrlToolbar_LoadBitmap ' +
3378 'GUICtrlToolbar_LoadImages GUICtrlToolbar_MapAccelerator ' +
3379 'GUICtrlToolbar_MoveButton GUICtrlToolbar_PressButton ' +
3380 'GUICtrlToolbar_SetAnchorHighlight GUICtrlToolbar_SetBitmapSize ' +
3381 'GUICtrlToolbar_SetButtonBitMap GUICtrlToolbar_SetButtonInfo ' +
3382 'GUICtrlToolbar_SetButtonInfoEx GUICtrlToolbar_SetButtonParam ' +
3383 'GUICtrlToolbar_SetButtonSize GUICtrlToolbar_SetButtonState ' +
3384 'GUICtrlToolbar_SetButtonStyle GUICtrlToolbar_SetButtonText ' +
3385 'GUICtrlToolbar_SetButtonWidth GUICtrlToolbar_SetCmdID ' +
3386 'GUICtrlToolbar_SetColorScheme ' +
3387 'GUICtrlToolbar_SetDisabledImageList ' +
3388 'GUICtrlToolbar_SetDrawTextFlags GUICtrlToolbar_SetExtendedStyle ' +
3389 'GUICtrlToolbar_SetHotImageList GUICtrlToolbar_SetHotItem ' +
3390 'GUICtrlToolbar_SetImageList GUICtrlToolbar_SetIndent ' +
3391 'GUICtrlToolbar_SetIndeterminate GUICtrlToolbar_SetInsertMark ' +
3392 'GUICtrlToolbar_SetInsertMarkColor GUICtrlToolbar_SetMaxTextRows ' +
3393 'GUICtrlToolbar_SetMetrics GUICtrlToolbar_SetPadding ' +
3394 'GUICtrlToolbar_SetParent GUICtrlToolbar_SetRows ' +
3395 'GUICtrlToolbar_SetStyle GUICtrlToolbar_SetStyleAltDrag ' +
3396 'GUICtrlToolbar_SetStyleCustomErase GUICtrlToolbar_SetStyleFlat ' +
3397 'GUICtrlToolbar_SetStyleList GUICtrlToolbar_SetStyleRegisterDrop ' +
3398 'GUICtrlToolbar_SetStyleToolTips ' +
3399 'GUICtrlToolbar_SetStyleTransparent ' +
3400 'GUICtrlToolbar_SetStyleWrapable GUICtrlToolbar_SetToolTips ' +
3401 'GUICtrlToolbar_SetUnicodeFormat GUICtrlToolbar_SetWindowTheme ' +
3402 'GUICtrlTreeView_Add GUICtrlTreeView_AddChild ' +
3403 'GUICtrlTreeView_AddChildFirst GUICtrlTreeView_AddFirst ' +
3404 'GUICtrlTreeView_BeginUpdate GUICtrlTreeView_ClickItem ' +
3405 'GUICtrlTreeView_Create GUICtrlTreeView_CreateDragImage ' +
3406 'GUICtrlTreeView_CreateSolidBitMap GUICtrlTreeView_Delete ' +
3407 'GUICtrlTreeView_DeleteAll GUICtrlTreeView_DeleteChildren ' +
3408 'GUICtrlTreeView_Destroy GUICtrlTreeView_DisplayRect ' +
3409 'GUICtrlTreeView_DisplayRectEx GUICtrlTreeView_EditText ' +
3410 'GUICtrlTreeView_EndEdit GUICtrlTreeView_EndUpdate ' +
3411 'GUICtrlTreeView_EnsureVisible GUICtrlTreeView_Expand ' +
3412 'GUICtrlTreeView_ExpandedOnce GUICtrlTreeView_FindItem ' +
3413 'GUICtrlTreeView_FindItemEx GUICtrlTreeView_GetBkColor ' +
3414 'GUICtrlTreeView_GetBold GUICtrlTreeView_GetChecked ' +
3415 'GUICtrlTreeView_GetChildCount GUICtrlTreeView_GetChildren ' +
3416 'GUICtrlTreeView_GetCount GUICtrlTreeView_GetCut ' +
3417 'GUICtrlTreeView_GetDropTarget GUICtrlTreeView_GetEditControl ' +
3418 'GUICtrlTreeView_GetExpanded GUICtrlTreeView_GetFirstChild ' +
3419 'GUICtrlTreeView_GetFirstItem GUICtrlTreeView_GetFirstVisible ' +
3420 'GUICtrlTreeView_GetFocused GUICtrlTreeView_GetHeight ' +
3421 'GUICtrlTreeView_GetImageIndex ' +
3422 'GUICtrlTreeView_GetImageListIconHandle ' +
3423 'GUICtrlTreeView_GetIndent GUICtrlTreeView_GetInsertMarkColor ' +
3424 'GUICtrlTreeView_GetISearchString GUICtrlTreeView_GetItemByIndex ' +
3425 'GUICtrlTreeView_GetItemHandle GUICtrlTreeView_GetItemParam ' +
3426 'GUICtrlTreeView_GetLastChild GUICtrlTreeView_GetLineColor ' +
3427 'GUICtrlTreeView_GetNext GUICtrlTreeView_GetNextChild ' +
3428 'GUICtrlTreeView_GetNextSibling GUICtrlTreeView_GetNextVisible ' +
3429 'GUICtrlTreeView_GetNormalImageList ' +
3430 'GUICtrlTreeView_GetParentHandle GUICtrlTreeView_GetParentParam ' +
3431 'GUICtrlTreeView_GetPrev GUICtrlTreeView_GetPrevChild ' +
3432 'GUICtrlTreeView_GetPrevSibling GUICtrlTreeView_GetPrevVisible ' +
3433 'GUICtrlTreeView_GetScrollTime GUICtrlTreeView_GetSelected ' +
3434 'GUICtrlTreeView_GetSelectedImageIndex ' +
3435 'GUICtrlTreeView_GetSelection GUICtrlTreeView_GetSiblingCount ' +
3436 'GUICtrlTreeView_GetState GUICtrlTreeView_GetStateImageIndex ' +
3437 'GUICtrlTreeView_GetStateImageList GUICtrlTreeView_GetText ' +
3438 'GUICtrlTreeView_GetTextColor GUICtrlTreeView_GetToolTips ' +
3439 'GUICtrlTreeView_GetTree GUICtrlTreeView_GetUnicodeFormat ' +
3440 'GUICtrlTreeView_GetVisible GUICtrlTreeView_GetVisibleCount ' +
3441 'GUICtrlTreeView_HitTest GUICtrlTreeView_HitTestEx ' +
3442 'GUICtrlTreeView_HitTestItem GUICtrlTreeView_Index ' +
3443 'GUICtrlTreeView_InsertItem GUICtrlTreeView_IsFirstItem ' +
3444 'GUICtrlTreeView_IsParent GUICtrlTreeView_Level ' +
3445 'GUICtrlTreeView_SelectItem GUICtrlTreeView_SelectItemByIndex ' +
3446 'GUICtrlTreeView_SetBkColor GUICtrlTreeView_SetBold ' +
3447 'GUICtrlTreeView_SetChecked GUICtrlTreeView_SetCheckedByIndex ' +
3448 'GUICtrlTreeView_SetChildren GUICtrlTreeView_SetCut ' +
3449 'GUICtrlTreeView_SetDropTarget GUICtrlTreeView_SetFocused ' +
3450 'GUICtrlTreeView_SetHeight GUICtrlTreeView_SetIcon ' +
3451 'GUICtrlTreeView_SetImageIndex GUICtrlTreeView_SetIndent ' +
3452 'GUICtrlTreeView_SetInsertMark ' +
3453 'GUICtrlTreeView_SetInsertMarkColor ' +
3454 'GUICtrlTreeView_SetItemHeight GUICtrlTreeView_SetItemParam ' +
3455 'GUICtrlTreeView_SetLineColor GUICtrlTreeView_SetNormalImageList ' +
3456 'GUICtrlTreeView_SetScrollTime GUICtrlTreeView_SetSelected ' +
3457 'GUICtrlTreeView_SetSelectedImageIndex GUICtrlTreeView_SetState ' +
3458 'GUICtrlTreeView_SetStateImageIndex ' +
3459 'GUICtrlTreeView_SetStateImageList GUICtrlTreeView_SetText ' +
3460 'GUICtrlTreeView_SetTextColor GUICtrlTreeView_SetToolTips ' +
3461 'GUICtrlTreeView_SetUnicodeFormat GUICtrlTreeView_Sort ' +
3462 'GUIImageList_Add GUIImageList_AddBitmap GUIImageList_AddIcon ' +
3463 'GUIImageList_AddMasked GUIImageList_BeginDrag ' +
3464 'GUIImageList_Copy GUIImageList_Create GUIImageList_Destroy ' +
3465 'GUIImageList_DestroyIcon GUIImageList_DragEnter ' +
3466 'GUIImageList_DragLeave GUIImageList_DragMove ' +
3467 'GUIImageList_Draw GUIImageList_DrawEx GUIImageList_Duplicate ' +
3468 'GUIImageList_EndDrag GUIImageList_GetBkColor ' +
3469 'GUIImageList_GetIcon GUIImageList_GetIconHeight ' +
3470 'GUIImageList_GetIconSize GUIImageList_GetIconSizeEx ' +
3471 'GUIImageList_GetIconWidth GUIImageList_GetImageCount ' +
3472 'GUIImageList_GetImageInfoEx GUIImageList_Remove ' +
3473 'GUIImageList_ReplaceIcon GUIImageList_SetBkColor ' +
3474 'GUIImageList_SetIconSize GUIImageList_SetImageCount ' +
3475 'GUIImageList_Swap GUIScrollBars_EnableScrollBar ' +
3476 'GUIScrollBars_GetScrollBarInfoEx GUIScrollBars_GetScrollBarRect ' +
3477 'GUIScrollBars_GetScrollBarRGState ' +
3478 'GUIScrollBars_GetScrollBarXYLineButton ' +
3479 'GUIScrollBars_GetScrollBarXYThumbBottom ' +
3480 'GUIScrollBars_GetScrollBarXYThumbTop ' +
3481 'GUIScrollBars_GetScrollInfo GUIScrollBars_GetScrollInfoEx ' +
3482 'GUIScrollBars_GetScrollInfoMax GUIScrollBars_GetScrollInfoMin ' +
3483 'GUIScrollBars_GetScrollInfoPage GUIScrollBars_GetScrollInfoPos ' +
3484 'GUIScrollBars_GetScrollInfoTrackPos GUIScrollBars_GetScrollPos ' +
3485 'GUIScrollBars_GetScrollRange GUIScrollBars_Init ' +
3486 'GUIScrollBars_ScrollWindow GUIScrollBars_SetScrollInfo ' +
3487 'GUIScrollBars_SetScrollInfoMax GUIScrollBars_SetScrollInfoMin ' +
3488 'GUIScrollBars_SetScrollInfoPage GUIScrollBars_SetScrollInfoPos ' +
3489 'GUIScrollBars_SetScrollRange GUIScrollBars_ShowScrollBar ' +
3490 'GUIToolTip_Activate GUIToolTip_AddTool GUIToolTip_AdjustRect ' +
3491 'GUIToolTip_BitsToTTF GUIToolTip_Create GUIToolTip_Deactivate ' +
3492 'GUIToolTip_DelTool GUIToolTip_Destroy GUIToolTip_EnumTools ' +
3493 'GUIToolTip_GetBubbleHeight GUIToolTip_GetBubbleSize ' +
3494 'GUIToolTip_GetBubbleWidth GUIToolTip_GetCurrentTool ' +
3495 'GUIToolTip_GetDelayTime GUIToolTip_GetMargin ' +
3496 'GUIToolTip_GetMarginEx GUIToolTip_GetMaxTipWidth ' +
3497 'GUIToolTip_GetText GUIToolTip_GetTipBkColor ' +
3498 'GUIToolTip_GetTipTextColor GUIToolTip_GetTitleBitMap ' +
3499 'GUIToolTip_GetTitleText GUIToolTip_GetToolCount ' +
3500 'GUIToolTip_GetToolInfo GUIToolTip_HitTest ' +
3501 'GUIToolTip_NewToolRect GUIToolTip_Pop GUIToolTip_PopUp ' +
3502 'GUIToolTip_SetDelayTime GUIToolTip_SetMargin ' +
3503 'GUIToolTip_SetMaxTipWidth GUIToolTip_SetTipBkColor ' +
3504 'GUIToolTip_SetTipTextColor GUIToolTip_SetTitle ' +
3505 'GUIToolTip_SetToolInfo GUIToolTip_SetWindowTheme ' +
3506 'GUIToolTip_ToolExists GUIToolTip_ToolToArray ' +
3507 'GUIToolTip_TrackActivate GUIToolTip_TrackPosition ' +
3508 'GUIToolTip_Update GUIToolTip_UpdateTipText HexToString ' +
3509 'IEAction IEAttach IEBodyReadHTML IEBodyReadText ' +
3510 'IEBodyWriteHTML IECreate IECreateEmbedded IEDocGetObj ' +
3511 'IEDocInsertHTML IEDocInsertText IEDocReadHTML ' +
3512 'IEDocWriteHTML IEErrorNotify IEFormElementCheckBoxSelect ' +
3513 'IEFormElementGetCollection IEFormElementGetObjByName ' +
3514 'IEFormElementGetValue IEFormElementOptionSelect ' +
3515 'IEFormElementRadioSelect IEFormElementSetValue ' +
3516 'IEFormGetCollection IEFormGetObjByName IEFormImageClick ' +
3517 'IEFormReset IEFormSubmit IEFrameGetCollection ' +
3518 'IEFrameGetObjByName IEGetObjById IEGetObjByName ' +
3519 'IEHeadInsertEventScript IEImgClick IEImgGetCollection ' +
3520 'IEIsFrameSet IELinkClickByIndex IELinkClickByText ' +
3521 'IELinkGetCollection IELoadWait IELoadWaitTimeout IENavigate ' +
3522 'IEPropertyGet IEPropertySet IEQuit IETableGetCollection ' +
3523 'IETableWriteToArray IETagNameAllGetCollection ' +
3524 'IETagNameGetCollection IE_Example IE_Introduction ' +
3525 'IE_VersionInfo INetExplorerCapable INetGetSource INetMail ' +
3526 'INetSmtpMail IsPressed MathCheckDiv Max MemGlobalAlloc ' +
3527 'MemGlobalFree MemGlobalLock MemGlobalSize MemGlobalUnlock ' +
3528 'MemMoveMemory MemVirtualAlloc MemVirtualAllocEx ' +
3529 'MemVirtualFree MemVirtualFreeEx Min MouseTrap ' +
3530 'NamedPipes_CallNamedPipe NamedPipes_ConnectNamedPipe ' +
3531 'NamedPipes_CreateNamedPipe NamedPipes_CreatePipe ' +
3532 'NamedPipes_DisconnectNamedPipe ' +
3533 'NamedPipes_GetNamedPipeHandleState NamedPipes_GetNamedPipeInfo ' +
3534 'NamedPipes_PeekNamedPipe NamedPipes_SetNamedPipeHandleState ' +
3535 'NamedPipes_TransactNamedPipe NamedPipes_WaitNamedPipe ' +
3536 'Net_Share_ConnectionEnum Net_Share_FileClose ' +
3537 'Net_Share_FileEnum Net_Share_FileGetInfo Net_Share_PermStr ' +
3538 'Net_Share_ResourceStr Net_Share_SessionDel ' +
3539 'Net_Share_SessionEnum Net_Share_SessionGetInfo ' +
3540 'Net_Share_ShareAdd Net_Share_ShareCheck Net_Share_ShareDel ' +
3541 'Net_Share_ShareEnum Net_Share_ShareGetInfo ' +
3542 'Net_Share_ShareSetInfo Net_Share_StatisticsGetSvr ' +
3543 'Net_Share_StatisticsGetWrk Now NowCalc NowCalcDate ' +
3544 'NowDate NowTime PathFull PathGetRelative PathMake ' +
3545 'PathSplit ProcessGetName ProcessGetPriority Radian ' +
3546 'ReplaceStringInFile RunDos ScreenCapture_Capture ' +
3547 'ScreenCapture_CaptureWnd ScreenCapture_SaveImage ' +
3548 'ScreenCapture_SetBMPFormat ScreenCapture_SetJPGQuality ' +
3549 'ScreenCapture_SetTIFColorDepth ScreenCapture_SetTIFCompression ' +
3550 'Security__AdjustTokenPrivileges ' +
3551 'Security__CreateProcessWithToken Security__DuplicateTokenEx ' +
3552 'Security__GetAccountSid Security__GetLengthSid ' +
3553 'Security__GetTokenInformation Security__ImpersonateSelf ' +
3554 'Security__IsValidSid Security__LookupAccountName ' +
3555 'Security__LookupAccountSid Security__LookupPrivilegeValue ' +
3556 'Security__OpenProcessToken Security__OpenThreadToken ' +
3557 'Security__OpenThreadTokenEx Security__SetPrivilege ' +
3558 'Security__SetTokenInformation Security__SidToStringSid ' +
3559 'Security__SidTypeStr Security__StringSidToSid SendMessage ' +
3560 'SendMessageA SetDate SetTime Singleton SoundClose ' +
3561 'SoundLength SoundOpen SoundPause SoundPlay SoundPos ' +
3562 'SoundResume SoundSeek SoundStatus SoundStop ' +
3563 'SQLite_Changes SQLite_Close SQLite_Display2DResult ' +
3564 'SQLite_Encode SQLite_ErrCode SQLite_ErrMsg SQLite_Escape ' +
3565 'SQLite_Exec SQLite_FastEncode SQLite_FastEscape ' +
3566 'SQLite_FetchData SQLite_FetchNames SQLite_GetTable ' +
3567 'SQLite_GetTable2d SQLite_LastInsertRowID SQLite_LibVersion ' +
3568 'SQLite_Open SQLite_Query SQLite_QueryFinalize ' +
3569 'SQLite_QueryReset SQLite_QuerySingleRow SQLite_SafeMode ' +
3570 'SQLite_SetTimeout SQLite_Shutdown SQLite_SQLiteExe ' +
3571 'SQLite_Startup SQLite_TotalChanges StringBetween ' +
3572 'StringExplode StringInsert StringProper StringRepeat ' +
3573 'StringTitleCase StringToHex TCPIpToName TempFile ' +
3574 'TicksToTime Timer_Diff Timer_GetIdleTime Timer_GetTimerID ' +
3575 'Timer_Init Timer_KillAllTimers Timer_KillTimer ' +
3576 'Timer_SetTimer TimeToTicks VersionCompare viClose ' +
3577 'viExecCommand viFindGpib viGpibBusReset viGTL ' +
3578 'viInteractiveControl viOpen viSetAttribute viSetTimeout ' +
3579 'WeekNumberISO WinAPI_AbortPath WinAPI_ActivateKeyboardLayout ' +
3580 'WinAPI_AddClipboardFormatListener WinAPI_AddFontMemResourceEx ' +
3581 'WinAPI_AddFontResourceEx WinAPI_AddIconOverlay ' +
3582 'WinAPI_AddIconTransparency WinAPI_AddMRUString ' +
3583 'WinAPI_AdjustBitmap WinAPI_AdjustTokenPrivileges ' +
3584 'WinAPI_AdjustWindowRectEx WinAPI_AlphaBlend WinAPI_AngleArc ' +
3585 'WinAPI_AnimateWindow WinAPI_Arc WinAPI_ArcTo ' +
3586 'WinAPI_ArrayToStruct WinAPI_AssignProcessToJobObject ' +
3587 'WinAPI_AssocGetPerceivedType WinAPI_AssocQueryString ' +
3588 'WinAPI_AttachConsole WinAPI_AttachThreadInput ' +
3589 'WinAPI_BackupRead WinAPI_BackupReadAbort WinAPI_BackupSeek ' +
3590 'WinAPI_BackupWrite WinAPI_BackupWriteAbort WinAPI_Beep ' +
3591 'WinAPI_BeginBufferedPaint WinAPI_BeginDeferWindowPos ' +
3592 'WinAPI_BeginPaint WinAPI_BeginPath WinAPI_BeginUpdateResource ' +
3593 'WinAPI_BitBlt WinAPI_BringWindowToTop ' +
3594 'WinAPI_BroadcastSystemMessage WinAPI_BrowseForFolderDlg ' +
3595 'WinAPI_BufferedPaintClear WinAPI_BufferedPaintInit ' +
3596 'WinAPI_BufferedPaintSetAlpha WinAPI_BufferedPaintUnInit ' +
3597 'WinAPI_CallNextHookEx WinAPI_CallWindowProc ' +
3598 'WinAPI_CallWindowProcW WinAPI_CascadeWindows ' +
3599 'WinAPI_ChangeWindowMessageFilterEx WinAPI_CharToOem ' +
3600 'WinAPI_ChildWindowFromPointEx WinAPI_ClientToScreen ' +
3601 'WinAPI_ClipCursor WinAPI_CloseDesktop WinAPI_CloseEnhMetaFile ' +
3602 'WinAPI_CloseFigure WinAPI_CloseHandle WinAPI_CloseThemeData ' +
3603 'WinAPI_CloseWindow WinAPI_CloseWindowStation ' +
3604 'WinAPI_CLSIDFromProgID WinAPI_CoInitialize ' +
3605 'WinAPI_ColorAdjustLuma WinAPI_ColorHLSToRGB ' +
3606 'WinAPI_ColorRGBToHLS WinAPI_CombineRgn ' +
3607 'WinAPI_CombineTransform WinAPI_CommandLineToArgv ' +
3608 'WinAPI_CommDlgExtendedError WinAPI_CommDlgExtendedErrorEx ' +
3609 'WinAPI_CompareString WinAPI_CompressBitmapBits ' +
3610 'WinAPI_CompressBuffer WinAPI_ComputeCrc32 ' +
3611 'WinAPI_ConfirmCredentials WinAPI_CopyBitmap WinAPI_CopyCursor ' +
3612 'WinAPI_CopyEnhMetaFile WinAPI_CopyFileEx WinAPI_CopyIcon ' +
3613 'WinAPI_CopyImage WinAPI_CopyRect WinAPI_CopyStruct ' +
3614 'WinAPI_CoTaskMemAlloc WinAPI_CoTaskMemFree ' +
3615 'WinAPI_CoTaskMemRealloc WinAPI_CoUninitialize ' +
3616 'WinAPI_Create32BitHBITMAP WinAPI_Create32BitHICON ' +
3617 'WinAPI_CreateANDBitmap WinAPI_CreateBitmap ' +
3618 'WinAPI_CreateBitmapIndirect WinAPI_CreateBrushIndirect ' +
3619 'WinAPI_CreateBuffer WinAPI_CreateBufferFromStruct ' +
3620 'WinAPI_CreateCaret WinAPI_CreateColorAdjustment ' +
3621 'WinAPI_CreateCompatibleBitmap WinAPI_CreateCompatibleBitmapEx ' +
3622 'WinAPI_CreateCompatibleDC WinAPI_CreateDesktop ' +
3623 'WinAPI_CreateDIB WinAPI_CreateDIBColorTable ' +
3624 'WinAPI_CreateDIBitmap WinAPI_CreateDIBSection ' +
3625 'WinAPI_CreateDirectory WinAPI_CreateDirectoryEx ' +
3626 'WinAPI_CreateEllipticRgn WinAPI_CreateEmptyIcon ' +
3627 'WinAPI_CreateEnhMetaFile WinAPI_CreateEvent WinAPI_CreateFile ' +
3628 'WinAPI_CreateFileEx WinAPI_CreateFileMapping ' +
3629 'WinAPI_CreateFont WinAPI_CreateFontEx ' +
3630 'WinAPI_CreateFontIndirect WinAPI_CreateGUID ' +
3631 'WinAPI_CreateHardLink WinAPI_CreateIcon ' +
3632 'WinAPI_CreateIconFromResourceEx WinAPI_CreateIconIndirect ' +
3633 'WinAPI_CreateJobObject WinAPI_CreateMargins ' +
3634 'WinAPI_CreateMRUList WinAPI_CreateMutex WinAPI_CreateNullRgn ' +
3635 'WinAPI_CreateNumberFormatInfo WinAPI_CreateObjectID ' +
3636 'WinAPI_CreatePen WinAPI_CreatePoint WinAPI_CreatePolygonRgn ' +
3637 'WinAPI_CreateProcess WinAPI_CreateProcessWithToken ' +
3638 'WinAPI_CreateRect WinAPI_CreateRectEx WinAPI_CreateRectRgn ' +
3639 'WinAPI_CreateRectRgnIndirect WinAPI_CreateRoundRectRgn ' +
3640 'WinAPI_CreateSemaphore WinAPI_CreateSize ' +
3641 'WinAPI_CreateSolidBitmap WinAPI_CreateSolidBrush ' +
3642 'WinAPI_CreateStreamOnHGlobal WinAPI_CreateString ' +
3643 'WinAPI_CreateSymbolicLink WinAPI_CreateTransform ' +
3644 'WinAPI_CreateWindowEx WinAPI_CreateWindowStation ' +
3645 'WinAPI_DecompressBuffer WinAPI_DecryptFile ' +
3646 'WinAPI_DeferWindowPos WinAPI_DefineDosDevice ' +
3647 'WinAPI_DefRawInputProc WinAPI_DefSubclassProc ' +
3648 'WinAPI_DefWindowProc WinAPI_DefWindowProcW WinAPI_DeleteDC ' +
3649 'WinAPI_DeleteEnhMetaFile WinAPI_DeleteFile ' +
3650 'WinAPI_DeleteObject WinAPI_DeleteObjectID ' +
3651 'WinAPI_DeleteVolumeMountPoint WinAPI_DeregisterShellHookWindow ' +
3652 'WinAPI_DestroyCaret WinAPI_DestroyCursor WinAPI_DestroyIcon ' +
3653 'WinAPI_DestroyWindow WinAPI_DeviceIoControl ' +
3654 'WinAPI_DisplayStruct WinAPI_DllGetVersion WinAPI_DllInstall ' +
3655 'WinAPI_DllUninstall WinAPI_DPtoLP WinAPI_DragAcceptFiles ' +
3656 'WinAPI_DragFinish WinAPI_DragQueryFileEx ' +
3657 'WinAPI_DragQueryPoint WinAPI_DrawAnimatedRects ' +
3658 'WinAPI_DrawBitmap WinAPI_DrawEdge WinAPI_DrawFocusRect ' +
3659 'WinAPI_DrawFrameControl WinAPI_DrawIcon WinAPI_DrawIconEx ' +
3660 'WinAPI_DrawLine WinAPI_DrawShadowText WinAPI_DrawText ' +
3661 'WinAPI_DrawThemeBackground WinAPI_DrawThemeEdge ' +
3662 'WinAPI_DrawThemeIcon WinAPI_DrawThemeParentBackground ' +
3663 'WinAPI_DrawThemeText WinAPI_DrawThemeTextEx ' +
3664 'WinAPI_DuplicateEncryptionInfoFile WinAPI_DuplicateHandle ' +
3665 'WinAPI_DuplicateTokenEx WinAPI_DwmDefWindowProc ' +
3666 'WinAPI_DwmEnableBlurBehindWindow WinAPI_DwmEnableComposition ' +
3667 'WinAPI_DwmExtendFrameIntoClientArea ' +
3668 'WinAPI_DwmGetColorizationColor ' +
3669 'WinAPI_DwmGetColorizationParameters ' +
3670 'WinAPI_DwmGetWindowAttribute WinAPI_DwmInvalidateIconicBitmaps ' +
3671 'WinAPI_DwmIsCompositionEnabled ' +
3672 'WinAPI_DwmQueryThumbnailSourceSize WinAPI_DwmRegisterThumbnail ' +
3673 'WinAPI_DwmSetColorizationParameters ' +
3674 'WinAPI_DwmSetIconicLivePreviewBitmap ' +
3675 'WinAPI_DwmSetIconicThumbnail WinAPI_DwmSetWindowAttribute ' +
3676 'WinAPI_DwmUnregisterThumbnail ' +
3677 'WinAPI_DwmUpdateThumbnailProperties WinAPI_DWordToFloat ' +
3678 'WinAPI_DWordToInt WinAPI_EjectMedia WinAPI_Ellipse ' +
3679 'WinAPI_EmptyWorkingSet WinAPI_EnableWindow WinAPI_EncryptFile ' +
3680 'WinAPI_EncryptionDisable WinAPI_EndBufferedPaint ' +
3681 'WinAPI_EndDeferWindowPos WinAPI_EndPaint WinAPI_EndPath ' +
3682 'WinAPI_EndUpdateResource WinAPI_EnumChildProcess ' +
3683 'WinAPI_EnumChildWindows WinAPI_EnumDesktops ' +
3684 'WinAPI_EnumDesktopWindows WinAPI_EnumDeviceDrivers ' +
3685 'WinAPI_EnumDisplayDevices WinAPI_EnumDisplayMonitors ' +
3686 'WinAPI_EnumDisplaySettings WinAPI_EnumDllProc ' +
3687 'WinAPI_EnumFiles WinAPI_EnumFileStreams ' +
3688 'WinAPI_EnumFontFamilies WinAPI_EnumHardLinks ' +
3689 'WinAPI_EnumMRUList WinAPI_EnumPageFiles ' +
3690 'WinAPI_EnumProcessHandles WinAPI_EnumProcessModules ' +
3691 'WinAPI_EnumProcessThreads WinAPI_EnumProcessWindows ' +
3692 'WinAPI_EnumRawInputDevices WinAPI_EnumResourceLanguages ' +
3693 'WinAPI_EnumResourceNames WinAPI_EnumResourceTypes ' +
3694 'WinAPI_EnumSystemGeoID WinAPI_EnumSystemLocales ' +
3695 'WinAPI_EnumUILanguages WinAPI_EnumWindows ' +
3696 'WinAPI_EnumWindowsPopup WinAPI_EnumWindowStations ' +
3697 'WinAPI_EnumWindowsTop WinAPI_EqualMemory WinAPI_EqualRect ' +
3698 'WinAPI_EqualRgn WinAPI_ExcludeClipRect ' +
3699 'WinAPI_ExpandEnvironmentStrings WinAPI_ExtCreatePen ' +
3700 'WinAPI_ExtCreateRegion WinAPI_ExtFloodFill WinAPI_ExtractIcon ' +
3701 'WinAPI_ExtractIconEx WinAPI_ExtSelectClipRgn ' +
3702 'WinAPI_FatalAppExit WinAPI_FatalExit ' +
3703 'WinAPI_FileEncryptionStatus WinAPI_FileExists ' +
3704 'WinAPI_FileIconInit WinAPI_FileInUse WinAPI_FillMemory ' +
3705 'WinAPI_FillPath WinAPI_FillRect WinAPI_FillRgn ' +
3706 'WinAPI_FindClose WinAPI_FindCloseChangeNotification ' +
3707 'WinAPI_FindExecutable WinAPI_FindFirstChangeNotification ' +
3708 'WinAPI_FindFirstFile WinAPI_FindFirstFileName ' +
3709 'WinAPI_FindFirstStream WinAPI_FindNextChangeNotification ' +
3710 'WinAPI_FindNextFile WinAPI_FindNextFileName ' +
3711 'WinAPI_FindNextStream WinAPI_FindResource ' +
3712 'WinAPI_FindResourceEx WinAPI_FindTextDlg WinAPI_FindWindow ' +
3713 'WinAPI_FlashWindow WinAPI_FlashWindowEx WinAPI_FlattenPath ' +
3714 'WinAPI_FloatToDWord WinAPI_FloatToInt WinAPI_FlushFileBuffers ' +
3715 'WinAPI_FlushFRBuffer WinAPI_FlushViewOfFile ' +
3716 'WinAPI_FormatDriveDlg WinAPI_FormatMessage WinAPI_FrameRect ' +
3717 'WinAPI_FrameRgn WinAPI_FreeLibrary WinAPI_FreeMemory ' +
3718 'WinAPI_FreeMRUList WinAPI_FreeResource WinAPI_GdiComment ' +
3719 'WinAPI_GetActiveWindow WinAPI_GetAllUsersProfileDirectory ' +
3720 'WinAPI_GetAncestor WinAPI_GetApplicationRestartSettings ' +
3721 'WinAPI_GetArcDirection WinAPI_GetAsyncKeyState ' +
3722 'WinAPI_GetBinaryType WinAPI_GetBitmapBits ' +
3723 'WinAPI_GetBitmapDimension WinAPI_GetBitmapDimensionEx ' +
3724 'WinAPI_GetBkColor WinAPI_GetBkMode WinAPI_GetBoundsRect ' +
3725 'WinAPI_GetBrushOrg WinAPI_GetBufferedPaintBits ' +
3726 'WinAPI_GetBufferedPaintDC WinAPI_GetBufferedPaintTargetDC ' +
3727 'WinAPI_GetBufferedPaintTargetRect WinAPI_GetBValue ' +
3728 'WinAPI_GetCaretBlinkTime WinAPI_GetCaretPos WinAPI_GetCDType ' +
3729 'WinAPI_GetClassInfoEx WinAPI_GetClassLongEx ' +
3730 'WinAPI_GetClassName WinAPI_GetClientHeight ' +
3731 'WinAPI_GetClientRect WinAPI_GetClientWidth ' +
3732 'WinAPI_GetClipboardSequenceNumber WinAPI_GetClipBox ' +
3733 'WinAPI_GetClipCursor WinAPI_GetClipRgn ' +
3734 'WinAPI_GetColorAdjustment WinAPI_GetCompressedFileSize ' +
3735 'WinAPI_GetCompression WinAPI_GetConnectedDlg ' +
3736 'WinAPI_GetCurrentDirectory WinAPI_GetCurrentHwProfile ' +
3737 'WinAPI_GetCurrentObject WinAPI_GetCurrentPosition ' +
3738 'WinAPI_GetCurrentProcess ' +
3739 'WinAPI_GetCurrentProcessExplicitAppUserModelID ' +
3740 'WinAPI_GetCurrentProcessID WinAPI_GetCurrentThemeName ' +
3741 'WinAPI_GetCurrentThread WinAPI_GetCurrentThreadId ' +
3742 'WinAPI_GetCursor WinAPI_GetCursorInfo WinAPI_GetDateFormat ' +
3743 'WinAPI_GetDC WinAPI_GetDCEx WinAPI_GetDefaultPrinter ' +
3744 'WinAPI_GetDefaultUserProfileDirectory WinAPI_GetDesktopWindow ' +
3745 'WinAPI_GetDeviceCaps WinAPI_GetDeviceDriverBaseName ' +
3746 'WinAPI_GetDeviceDriverFileName WinAPI_GetDeviceGammaRamp ' +
3747 'WinAPI_GetDIBColorTable WinAPI_GetDIBits ' +
3748 'WinAPI_GetDiskFreeSpaceEx WinAPI_GetDlgCtrlID ' +
3749 'WinAPI_GetDlgItem WinAPI_GetDllDirectory ' +
3750 'WinAPI_GetDriveBusType WinAPI_GetDriveGeometryEx ' +
3751 'WinAPI_GetDriveNumber WinAPI_GetDriveType ' +
3752 'WinAPI_GetDurationFormat WinAPI_GetEffectiveClientRect ' +
3753 'WinAPI_GetEnhMetaFile WinAPI_GetEnhMetaFileBits ' +
3754 'WinAPI_GetEnhMetaFileDescription WinAPI_GetEnhMetaFileDimension ' +
3755 'WinAPI_GetEnhMetaFileHeader WinAPI_GetErrorMessage ' +
3756 'WinAPI_GetErrorMode WinAPI_GetExitCodeProcess ' +
3757 'WinAPI_GetExtended WinAPI_GetFileAttributes WinAPI_GetFileID ' +
3758 'WinAPI_GetFileInformationByHandle ' +
3759 'WinAPI_GetFileInformationByHandleEx WinAPI_GetFilePointerEx ' +
3760 'WinAPI_GetFileSizeEx WinAPI_GetFileSizeOnDisk ' +
3761 'WinAPI_GetFileTitle WinAPI_GetFileType ' +
3762 'WinAPI_GetFileVersionInfo WinAPI_GetFinalPathNameByHandle ' +
3763 'WinAPI_GetFinalPathNameByHandleEx WinAPI_GetFocus ' +
3764 'WinAPI_GetFontMemoryResourceInfo WinAPI_GetFontName ' +
3765 'WinAPI_GetFontResourceInfo WinAPI_GetForegroundWindow ' +
3766 'WinAPI_GetFRBuffer WinAPI_GetFullPathName WinAPI_GetGeoInfo ' +
3767 'WinAPI_GetGlyphOutline WinAPI_GetGraphicsMode ' +
3768 'WinAPI_GetGuiResources WinAPI_GetGUIThreadInfo ' +
3769 'WinAPI_GetGValue WinAPI_GetHandleInformation ' +
3770 'WinAPI_GetHGlobalFromStream WinAPI_GetIconDimension ' +
3771 'WinAPI_GetIconInfo WinAPI_GetIconInfoEx WinAPI_GetIdleTime ' +
3772 'WinAPI_GetKeyboardLayout WinAPI_GetKeyboardLayoutList ' +
3773 'WinAPI_GetKeyboardState WinAPI_GetKeyboardType ' +
3774 'WinAPI_GetKeyNameText WinAPI_GetKeyState ' +
3775 'WinAPI_GetLastActivePopup WinAPI_GetLastError ' +
3776 'WinAPI_GetLastErrorMessage WinAPI_GetLayeredWindowAttributes ' +
3777 'WinAPI_GetLocaleInfo WinAPI_GetLogicalDrives ' +
3778 'WinAPI_GetMapMode WinAPI_GetMemorySize ' +
3779 'WinAPI_GetMessageExtraInfo WinAPI_GetModuleFileNameEx ' +
3780 'WinAPI_GetModuleHandle WinAPI_GetModuleHandleEx ' +
3781 'WinAPI_GetModuleInformation WinAPI_GetMonitorInfo ' +
3782 'WinAPI_GetMousePos WinAPI_GetMousePosX WinAPI_GetMousePosY ' +
3783 'WinAPI_GetMUILanguage WinAPI_GetNumberFormat WinAPI_GetObject ' +
3784 'WinAPI_GetObjectID WinAPI_GetObjectInfoByHandle ' +
3785 'WinAPI_GetObjectNameByHandle WinAPI_GetObjectType ' +
3786 'WinAPI_GetOpenFileName WinAPI_GetOutlineTextMetrics ' +
3787 'WinAPI_GetOverlappedResult WinAPI_GetParent ' +
3788 'WinAPI_GetParentProcess WinAPI_GetPerformanceInfo ' +
3789 'WinAPI_GetPEType WinAPI_GetPhysicallyInstalledSystemMemory ' +
3790 'WinAPI_GetPixel WinAPI_GetPolyFillMode WinAPI_GetPosFromRect ' +
3791 'WinAPI_GetPriorityClass WinAPI_GetProcAddress ' +
3792 'WinAPI_GetProcessAffinityMask WinAPI_GetProcessCommandLine ' +
3793 'WinAPI_GetProcessFileName WinAPI_GetProcessHandleCount ' +
3794 'WinAPI_GetProcessID WinAPI_GetProcessIoCounters ' +
3795 'WinAPI_GetProcessMemoryInfo WinAPI_GetProcessName ' +
3796 'WinAPI_GetProcessShutdownParameters WinAPI_GetProcessTimes ' +
3797 'WinAPI_GetProcessUser WinAPI_GetProcessWindowStation ' +
3798 'WinAPI_GetProcessWorkingDirectory WinAPI_GetProfilesDirectory ' +
3799 'WinAPI_GetPwrCapabilities WinAPI_GetRawInputBuffer ' +
3800 'WinAPI_GetRawInputBufferLength WinAPI_GetRawInputData ' +
3801 'WinAPI_GetRawInputDeviceInfo WinAPI_GetRegionData ' +
3802 'WinAPI_GetRegisteredRawInputDevices ' +
3803 'WinAPI_GetRegKeyNameByHandle WinAPI_GetRgnBox WinAPI_GetROP2 ' +
3804 'WinAPI_GetRValue WinAPI_GetSaveFileName WinAPI_GetShellWindow ' +
3805 'WinAPI_GetStartupInfo WinAPI_GetStdHandle ' +
3806 'WinAPI_GetStockObject WinAPI_GetStretchBltMode ' +
3807 'WinAPI_GetString WinAPI_GetSysColor WinAPI_GetSysColorBrush ' +
3808 'WinAPI_GetSystemDefaultLangID WinAPI_GetSystemDefaultLCID ' +
3809 'WinAPI_GetSystemDefaultUILanguage WinAPI_GetSystemDEPPolicy ' +
3810 'WinAPI_GetSystemInfo WinAPI_GetSystemMetrics ' +
3811 'WinAPI_GetSystemPowerStatus WinAPI_GetSystemTimes ' +
3812 'WinAPI_GetSystemWow64Directory WinAPI_GetTabbedTextExtent ' +
3813 'WinAPI_GetTempFileName WinAPI_GetTextAlign ' +
3814 'WinAPI_GetTextCharacterExtra WinAPI_GetTextColor ' +
3815 'WinAPI_GetTextExtentPoint32 WinAPI_GetTextFace ' +
3816 'WinAPI_GetTextMetrics WinAPI_GetThemeAppProperties ' +
3817 'WinAPI_GetThemeBackgroundContentRect ' +
3818 'WinAPI_GetThemeBackgroundExtent WinAPI_GetThemeBackgroundRegion ' +
3819 'WinAPI_GetThemeBitmap WinAPI_GetThemeBool ' +
3820 'WinAPI_GetThemeColor WinAPI_GetThemeDocumentationProperty ' +
3821 'WinAPI_GetThemeEnumValue WinAPI_GetThemeFilename ' +
3822 'WinAPI_GetThemeFont WinAPI_GetThemeInt WinAPI_GetThemeMargins ' +
3823 'WinAPI_GetThemeMetric WinAPI_GetThemePartSize ' +
3824 'WinAPI_GetThemePosition WinAPI_GetThemePropertyOrigin ' +
3825 'WinAPI_GetThemeRect WinAPI_GetThemeString ' +
3826 'WinAPI_GetThemeSysBool WinAPI_GetThemeSysColor ' +
3827 'WinAPI_GetThemeSysColorBrush WinAPI_GetThemeSysFont ' +
3828 'WinAPI_GetThemeSysInt WinAPI_GetThemeSysSize ' +
3829 'WinAPI_GetThemeSysString WinAPI_GetThemeTextExtent ' +
3830 'WinAPI_GetThemeTextMetrics WinAPI_GetThemeTransitionDuration ' +
3831 'WinAPI_GetThreadDesktop WinAPI_GetThreadErrorMode ' +
3832 'WinAPI_GetThreadLocale WinAPI_GetThreadUILanguage ' +
3833 'WinAPI_GetTickCount WinAPI_GetTickCount64 ' +
3834 'WinAPI_GetTimeFormat WinAPI_GetTopWindow ' +
3835 'WinAPI_GetUDFColorMode WinAPI_GetUpdateRect ' +
3836 'WinAPI_GetUpdateRgn WinAPI_GetUserDefaultLangID ' +
3837 'WinAPI_GetUserDefaultLCID WinAPI_GetUserDefaultUILanguage ' +
3838 'WinAPI_GetUserGeoID WinAPI_GetUserObjectInformation ' +
3839 'WinAPI_GetVersion WinAPI_GetVersionEx ' +
3840 'WinAPI_GetVolumeInformation WinAPI_GetVolumeInformationByHandle ' +
3841 'WinAPI_GetVolumeNameForVolumeMountPoint WinAPI_GetWindow ' +
3842 'WinAPI_GetWindowDC WinAPI_GetWindowDisplayAffinity ' +
3843 'WinAPI_GetWindowExt WinAPI_GetWindowFileName ' +
3844 'WinAPI_GetWindowHeight WinAPI_GetWindowInfo ' +
3845 'WinAPI_GetWindowLong WinAPI_GetWindowOrg ' +
3846 'WinAPI_GetWindowPlacement WinAPI_GetWindowRect ' +
3847 'WinAPI_GetWindowRgn WinAPI_GetWindowRgnBox ' +
3848 'WinAPI_GetWindowSubclass WinAPI_GetWindowText ' +
3849 'WinAPI_GetWindowTheme WinAPI_GetWindowThreadProcessId ' +
3850 'WinAPI_GetWindowWidth WinAPI_GetWorkArea ' +
3851 'WinAPI_GetWorldTransform WinAPI_GetXYFromPoint ' +
3852 'WinAPI_GlobalMemoryStatus WinAPI_GradientFill ' +
3853 'WinAPI_GUIDFromString WinAPI_GUIDFromStringEx WinAPI_HashData ' +
3854 'WinAPI_HashString WinAPI_HiByte WinAPI_HideCaret ' +
3855 'WinAPI_HiDWord WinAPI_HiWord WinAPI_InflateRect ' +
3856 'WinAPI_InitMUILanguage WinAPI_InProcess ' +
3857 'WinAPI_IntersectClipRect WinAPI_IntersectRect ' +
3858 'WinAPI_IntToDWord WinAPI_IntToFloat WinAPI_InvalidateRect ' +
3859 'WinAPI_InvalidateRgn WinAPI_InvertANDBitmap ' +
3860 'WinAPI_InvertColor WinAPI_InvertRect WinAPI_InvertRgn ' +
3861 'WinAPI_IOCTL WinAPI_IsAlphaBitmap WinAPI_IsBadCodePtr ' +
3862 'WinAPI_IsBadReadPtr WinAPI_IsBadStringPtr ' +
3863 'WinAPI_IsBadWritePtr WinAPI_IsChild WinAPI_IsClassName ' +
3864 'WinAPI_IsDoorOpen WinAPI_IsElevated WinAPI_IsHungAppWindow ' +
3865 'WinAPI_IsIconic WinAPI_IsInternetConnected ' +
3866 'WinAPI_IsLoadKBLayout WinAPI_IsMemory ' +
3867 'WinAPI_IsNameInExpression WinAPI_IsNetworkAlive ' +
3868 'WinAPI_IsPathShared WinAPI_IsProcessInJob ' +
3869 'WinAPI_IsProcessorFeaturePresent WinAPI_IsRectEmpty ' +
3870 'WinAPI_IsThemeActive ' +
3871 'WinAPI_IsThemeBackgroundPartiallyTransparent ' +
3872 'WinAPI_IsThemePartDefined WinAPI_IsValidLocale ' +
3873 'WinAPI_IsWindow WinAPI_IsWindowEnabled WinAPI_IsWindowUnicode ' +
3874 'WinAPI_IsWindowVisible WinAPI_IsWow64Process ' +
3875 'WinAPI_IsWritable WinAPI_IsZoomed WinAPI_Keybd_Event ' +
3876 'WinAPI_KillTimer WinAPI_LineDDA WinAPI_LineTo ' +
3877 'WinAPI_LoadBitmap WinAPI_LoadCursor WinAPI_LoadCursorFromFile ' +
3878 'WinAPI_LoadIcon WinAPI_LoadIconMetric ' +
3879 'WinAPI_LoadIconWithScaleDown WinAPI_LoadImage ' +
3880 'WinAPI_LoadIndirectString WinAPI_LoadKeyboardLayout ' +
3881 'WinAPI_LoadLibrary WinAPI_LoadLibraryEx WinAPI_LoadMedia ' +
3882 'WinAPI_LoadResource WinAPI_LoadShell32Icon WinAPI_LoadString ' +
3883 'WinAPI_LoadStringEx WinAPI_LoByte WinAPI_LocalFree ' +
3884 'WinAPI_LockDevice WinAPI_LockFile WinAPI_LockResource ' +
3885 'WinAPI_LockWindowUpdate WinAPI_LockWorkStation WinAPI_LoDWord ' +
3886 'WinAPI_LongMid WinAPI_LookupIconIdFromDirectoryEx ' +
3887 'WinAPI_LoWord WinAPI_LPtoDP WinAPI_MAKELANGID ' +
3888 'WinAPI_MAKELCID WinAPI_MakeLong WinAPI_MakeQWord ' +
3889 'WinAPI_MakeWord WinAPI_MapViewOfFile WinAPI_MapVirtualKey ' +
3890 'WinAPI_MaskBlt WinAPI_MessageBeep WinAPI_MessageBoxCheck ' +
3891 'WinAPI_MessageBoxIndirect WinAPI_MirrorIcon ' +
3892 'WinAPI_ModifyWorldTransform WinAPI_MonitorFromPoint ' +
3893 'WinAPI_MonitorFromRect WinAPI_MonitorFromWindow ' +
3894 'WinAPI_Mouse_Event WinAPI_MoveFileEx WinAPI_MoveMemory ' +
3895 'WinAPI_MoveTo WinAPI_MoveToEx WinAPI_MoveWindow ' +
3896 'WinAPI_MsgBox WinAPI_MulDiv WinAPI_MultiByteToWideChar ' +
3897 'WinAPI_MultiByteToWideCharEx WinAPI_NtStatusToDosError ' +
3898 'WinAPI_OemToChar WinAPI_OffsetClipRgn WinAPI_OffsetPoints ' +
3899 'WinAPI_OffsetRect WinAPI_OffsetRgn WinAPI_OffsetWindowOrg ' +
3900 'WinAPI_OpenDesktop WinAPI_OpenFileById WinAPI_OpenFileDlg ' +
3901 'WinAPI_OpenFileMapping WinAPI_OpenIcon ' +
3902 'WinAPI_OpenInputDesktop WinAPI_OpenJobObject WinAPI_OpenMutex ' +
3903 'WinAPI_OpenProcess WinAPI_OpenProcessToken ' +
3904 'WinAPI_OpenSemaphore WinAPI_OpenThemeData ' +
3905 'WinAPI_OpenWindowStation WinAPI_PageSetupDlg ' +
3906 'WinAPI_PaintDesktop WinAPI_PaintRgn WinAPI_ParseURL ' +
3907 'WinAPI_ParseUserName WinAPI_PatBlt WinAPI_PathAddBackslash ' +
3908 'WinAPI_PathAddExtension WinAPI_PathAppend ' +
3909 'WinAPI_PathBuildRoot WinAPI_PathCanonicalize ' +
3910 'WinAPI_PathCommonPrefix WinAPI_PathCompactPath ' +
3911 'WinAPI_PathCompactPathEx WinAPI_PathCreateFromUrl ' +
3912 'WinAPI_PathFindExtension WinAPI_PathFindFileName ' +
3913 'WinAPI_PathFindNextComponent WinAPI_PathFindOnPath ' +
3914 'WinAPI_PathGetArgs WinAPI_PathGetCharType ' +
3915 'WinAPI_PathGetDriveNumber WinAPI_PathIsContentType ' +
3916 'WinAPI_PathIsDirectory WinAPI_PathIsDirectoryEmpty ' +
3917 'WinAPI_PathIsExe WinAPI_PathIsFileSpec ' +
3918 'WinAPI_PathIsLFNFileSpec WinAPI_PathIsRelative ' +
3919 'WinAPI_PathIsRoot WinAPI_PathIsSameRoot ' +
3920 'WinAPI_PathIsSystemFolder WinAPI_PathIsUNC ' +
3921 'WinAPI_PathIsUNCServer WinAPI_PathIsUNCServerShare ' +
3922 'WinAPI_PathMakeSystemFolder WinAPI_PathMatchSpec ' +
3923 'WinAPI_PathParseIconLocation WinAPI_PathRelativePathTo ' +
3924 'WinAPI_PathRemoveArgs WinAPI_PathRemoveBackslash ' +
3925 'WinAPI_PathRemoveExtension WinAPI_PathRemoveFileSpec ' +
3926 'WinAPI_PathRenameExtension WinAPI_PathSearchAndQualify ' +
3927 'WinAPI_PathSkipRoot WinAPI_PathStripPath ' +
3928 'WinAPI_PathStripToRoot WinAPI_PathToRegion ' +
3929 'WinAPI_PathUndecorate WinAPI_PathUnExpandEnvStrings ' +
3930 'WinAPI_PathUnmakeSystemFolder WinAPI_PathUnquoteSpaces ' +
3931 'WinAPI_PathYetAnotherMakeUniqueName WinAPI_PickIconDlg ' +
3932 'WinAPI_PlayEnhMetaFile WinAPI_PlaySound WinAPI_PlgBlt ' +
3933 'WinAPI_PointFromRect WinAPI_PolyBezier WinAPI_PolyBezierTo ' +
3934 'WinAPI_PolyDraw WinAPI_Polygon WinAPI_PostMessage ' +
3935 'WinAPI_PrimaryLangId WinAPI_PrintDlg WinAPI_PrintDlgEx ' +
3936 'WinAPI_PrintWindow WinAPI_ProgIDFromCLSID WinAPI_PtInRect ' +
3937 'WinAPI_PtInRectEx WinAPI_PtInRegion WinAPI_PtVisible ' +
3938 'WinAPI_QueryDosDevice WinAPI_QueryInformationJobObject ' +
3939 'WinAPI_QueryPerformanceCounter WinAPI_QueryPerformanceFrequency ' +
3940 'WinAPI_RadialGradientFill WinAPI_ReadDirectoryChanges ' +
3941 'WinAPI_ReadFile WinAPI_ReadProcessMemory WinAPI_Rectangle ' +
3942 'WinAPI_RectInRegion WinAPI_RectIsEmpty WinAPI_RectVisible ' +
3943 'WinAPI_RedrawWindow WinAPI_RegCloseKey ' +
3944 'WinAPI_RegConnectRegistry WinAPI_RegCopyTree ' +
3945 'WinAPI_RegCopyTreeEx WinAPI_RegCreateKey ' +
3946 'WinAPI_RegDeleteEmptyKey WinAPI_RegDeleteKey ' +
3947 'WinAPI_RegDeleteKeyValue WinAPI_RegDeleteTree ' +
3948 'WinAPI_RegDeleteTreeEx WinAPI_RegDeleteValue ' +
3949 'WinAPI_RegDisableReflectionKey WinAPI_RegDuplicateHKey ' +
3950 'WinAPI_RegEnableReflectionKey WinAPI_RegEnumKey ' +
3951 'WinAPI_RegEnumValue WinAPI_RegFlushKey ' +
3952 'WinAPI_RegisterApplicationRestart WinAPI_RegisterClass ' +
3953 'WinAPI_RegisterClassEx WinAPI_RegisterHotKey ' +
3954 'WinAPI_RegisterPowerSettingNotification ' +
3955 'WinAPI_RegisterRawInputDevices WinAPI_RegisterShellHookWindow ' +
3956 'WinAPI_RegisterWindowMessage WinAPI_RegLoadMUIString ' +
3957 'WinAPI_RegNotifyChangeKeyValue WinAPI_RegOpenKey ' +
3958 'WinAPI_RegQueryInfoKey WinAPI_RegQueryLastWriteTime ' +
3959 'WinAPI_RegQueryMultipleValues WinAPI_RegQueryReflectionKey ' +
3960 'WinAPI_RegQueryValue WinAPI_RegRestoreKey WinAPI_RegSaveKey ' +
3961 'WinAPI_RegSetValue WinAPI_ReleaseCapture WinAPI_ReleaseDC ' +
3962 'WinAPI_ReleaseMutex WinAPI_ReleaseSemaphore ' +
3963 'WinAPI_ReleaseStream WinAPI_RemoveClipboardFormatListener ' +
3964 'WinAPI_RemoveDirectory WinAPI_RemoveFontMemResourceEx ' +
3965 'WinAPI_RemoveFontResourceEx WinAPI_RemoveWindowSubclass ' +
3966 'WinAPI_ReOpenFile WinAPI_ReplaceFile WinAPI_ReplaceTextDlg ' +
3967 'WinAPI_ResetEvent WinAPI_RestartDlg WinAPI_RestoreDC ' +
3968 'WinAPI_RGB WinAPI_RotatePoints WinAPI_RoundRect ' +
3969 'WinAPI_SaveDC WinAPI_SaveFileDlg WinAPI_SaveHBITMAPToFile ' +
3970 'WinAPI_SaveHICONToFile WinAPI_ScaleWindowExt ' +
3971 'WinAPI_ScreenToClient WinAPI_SearchPath WinAPI_SelectClipPath ' +
3972 'WinAPI_SelectClipRgn WinAPI_SelectObject ' +
3973 'WinAPI_SendMessageTimeout WinAPI_SetActiveWindow ' +
3974 'WinAPI_SetArcDirection WinAPI_SetBitmapBits ' +
3975 'WinAPI_SetBitmapDimensionEx WinAPI_SetBkColor ' +
3976 'WinAPI_SetBkMode WinAPI_SetBoundsRect WinAPI_SetBrushOrg ' +
3977 'WinAPI_SetCapture WinAPI_SetCaretBlinkTime WinAPI_SetCaretPos ' +
3978 'WinAPI_SetClassLongEx WinAPI_SetColorAdjustment ' +
3979 'WinAPI_SetCompression WinAPI_SetCurrentDirectory ' +
3980 'WinAPI_SetCurrentProcessExplicitAppUserModelID WinAPI_SetCursor ' +
3981 'WinAPI_SetDCBrushColor WinAPI_SetDCPenColor ' +
3982 'WinAPI_SetDefaultPrinter WinAPI_SetDeviceGammaRamp ' +
3983 'WinAPI_SetDIBColorTable WinAPI_SetDIBits ' +
3984 'WinAPI_SetDIBitsToDevice WinAPI_SetDllDirectory ' +
3985 'WinAPI_SetEndOfFile WinAPI_SetEnhMetaFileBits ' +
3986 'WinAPI_SetErrorMode WinAPI_SetEvent WinAPI_SetFileAttributes ' +
3987 'WinAPI_SetFileInformationByHandleEx WinAPI_SetFilePointer ' +
3988 'WinAPI_SetFilePointerEx WinAPI_SetFileShortName ' +
3989 'WinAPI_SetFileValidData WinAPI_SetFocus WinAPI_SetFont ' +
3990 'WinAPI_SetForegroundWindow WinAPI_SetFRBuffer ' +
3991 'WinAPI_SetGraphicsMode WinAPI_SetHandleInformation ' +
3992 'WinAPI_SetInformationJobObject WinAPI_SetKeyboardLayout ' +
3993 'WinAPI_SetKeyboardState WinAPI_SetLastError ' +
3994 'WinAPI_SetLayeredWindowAttributes WinAPI_SetLocaleInfo ' +
3995 'WinAPI_SetMapMode WinAPI_SetMessageExtraInfo WinAPI_SetParent ' +
3996 'WinAPI_SetPixel WinAPI_SetPolyFillMode ' +
3997 'WinAPI_SetPriorityClass WinAPI_SetProcessAffinityMask ' +
3998 'WinAPI_SetProcessShutdownParameters ' +
3999 'WinAPI_SetProcessWindowStation WinAPI_SetRectRgn ' +
4000 'WinAPI_SetROP2 WinAPI_SetSearchPathMode ' +
4001 'WinAPI_SetStretchBltMode WinAPI_SetSysColors ' +
4002 'WinAPI_SetSystemCursor WinAPI_SetTextAlign ' +
4003 'WinAPI_SetTextCharacterExtra WinAPI_SetTextColor ' +
4004 'WinAPI_SetTextJustification WinAPI_SetThemeAppProperties ' +
4005 'WinAPI_SetThreadDesktop WinAPI_SetThreadErrorMode ' +
4006 'WinAPI_SetThreadExecutionState WinAPI_SetThreadLocale ' +
4007 'WinAPI_SetThreadUILanguage WinAPI_SetTimer ' +
4008 'WinAPI_SetUDFColorMode WinAPI_SetUserGeoID ' +
4009 'WinAPI_SetUserObjectInformation WinAPI_SetVolumeMountPoint ' +
4010 'WinAPI_SetWindowDisplayAffinity WinAPI_SetWindowExt ' +
4011 'WinAPI_SetWindowLong WinAPI_SetWindowOrg ' +
4012 'WinAPI_SetWindowPlacement WinAPI_SetWindowPos ' +
4013 'WinAPI_SetWindowRgn WinAPI_SetWindowsHookEx ' +
4014 'WinAPI_SetWindowSubclass WinAPI_SetWindowText ' +
4015 'WinAPI_SetWindowTheme WinAPI_SetWinEventHook ' +
4016 'WinAPI_SetWorldTransform WinAPI_SfcIsFileProtected ' +
4017 'WinAPI_SfcIsKeyProtected WinAPI_ShellAboutDlg ' +
4018 'WinAPI_ShellAddToRecentDocs WinAPI_ShellChangeNotify ' +
4019 'WinAPI_ShellChangeNotifyDeregister ' +
4020 'WinAPI_ShellChangeNotifyRegister WinAPI_ShellCreateDirectory ' +
4021 'WinAPI_ShellEmptyRecycleBin WinAPI_ShellExecute ' +
4022 'WinAPI_ShellExecuteEx WinAPI_ShellExtractAssociatedIcon ' +
4023 'WinAPI_ShellExtractIcon WinAPI_ShellFileOperation ' +
4024 'WinAPI_ShellFlushSFCache WinAPI_ShellGetFileInfo ' +
4025 'WinAPI_ShellGetIconOverlayIndex WinAPI_ShellGetImageList ' +
4026 'WinAPI_ShellGetKnownFolderIDList WinAPI_ShellGetKnownFolderPath ' +
4027 'WinAPI_ShellGetLocalizedName WinAPI_ShellGetPathFromIDList ' +
4028 'WinAPI_ShellGetSetFolderCustomSettings WinAPI_ShellGetSettings ' +
4029 'WinAPI_ShellGetSpecialFolderLocation ' +
4030 'WinAPI_ShellGetSpecialFolderPath WinAPI_ShellGetStockIconInfo ' +
4031 'WinAPI_ShellILCreateFromPath WinAPI_ShellNotifyIcon ' +
4032 'WinAPI_ShellNotifyIconGetRect WinAPI_ShellObjectProperties ' +
4033 'WinAPI_ShellOpenFolderAndSelectItems WinAPI_ShellOpenWithDlg ' +
4034 'WinAPI_ShellQueryRecycleBin ' +
4035 'WinAPI_ShellQueryUserNotificationState ' +
4036 'WinAPI_ShellRemoveLocalizedName WinAPI_ShellRestricted ' +
4037 'WinAPI_ShellSetKnownFolderPath WinAPI_ShellSetLocalizedName ' +
4038 'WinAPI_ShellSetSettings WinAPI_ShellStartNetConnectionDlg ' +
4039 'WinAPI_ShellUpdateImage WinAPI_ShellUserAuthenticationDlg ' +
4040 'WinAPI_ShellUserAuthenticationDlgEx WinAPI_ShortToWord ' +
4041 'WinAPI_ShowCaret WinAPI_ShowCursor WinAPI_ShowError ' +
4042 'WinAPI_ShowLastError WinAPI_ShowMsg WinAPI_ShowOwnedPopups ' +
4043 'WinAPI_ShowWindow WinAPI_ShutdownBlockReasonCreate ' +
4044 'WinAPI_ShutdownBlockReasonDestroy ' +
4045 'WinAPI_ShutdownBlockReasonQuery WinAPI_SizeOfResource ' +
4046 'WinAPI_StretchBlt WinAPI_StretchDIBits ' +
4047 'WinAPI_StrFormatByteSize WinAPI_StrFormatByteSizeEx ' +
4048 'WinAPI_StrFormatKBSize WinAPI_StrFromTimeInterval ' +
4049 'WinAPI_StringFromGUID WinAPI_StringLenA WinAPI_StringLenW ' +
4050 'WinAPI_StrLen WinAPI_StrokeAndFillPath WinAPI_StrokePath ' +
4051 'WinAPI_StructToArray WinAPI_SubLangId WinAPI_SubtractRect ' +
4052 'WinAPI_SwapDWord WinAPI_SwapQWord WinAPI_SwapWord ' +
4053 'WinAPI_SwitchColor WinAPI_SwitchDesktop ' +
4054 'WinAPI_SwitchToThisWindow WinAPI_SystemParametersInfo ' +
4055 'WinAPI_TabbedTextOut WinAPI_TerminateJobObject ' +
4056 'WinAPI_TerminateProcess WinAPI_TextOut WinAPI_TileWindows ' +
4057 'WinAPI_TrackMouseEvent WinAPI_TransparentBlt ' +
4058 'WinAPI_TwipsPerPixelX WinAPI_TwipsPerPixelY ' +
4059 'WinAPI_UnhookWindowsHookEx WinAPI_UnhookWinEvent ' +
4060 'WinAPI_UnionRect WinAPI_UnionStruct WinAPI_UniqueHardwareID ' +
4061 'WinAPI_UnloadKeyboardLayout WinAPI_UnlockFile ' +
4062 'WinAPI_UnmapViewOfFile WinAPI_UnregisterApplicationRestart ' +
4063 'WinAPI_UnregisterClass WinAPI_UnregisterHotKey ' +
4064 'WinAPI_UnregisterPowerSettingNotification ' +
4065 'WinAPI_UpdateLayeredWindow WinAPI_UpdateLayeredWindowEx ' +
4066 'WinAPI_UpdateLayeredWindowIndirect WinAPI_UpdateResource ' +
4067 'WinAPI_UpdateWindow WinAPI_UrlApplyScheme ' +
4068 'WinAPI_UrlCanonicalize WinAPI_UrlCombine WinAPI_UrlCompare ' +
4069 'WinAPI_UrlCreateFromPath WinAPI_UrlFixup WinAPI_UrlGetPart ' +
4070 'WinAPI_UrlHash WinAPI_UrlIs WinAPI_UserHandleGrantAccess ' +
4071 'WinAPI_ValidateRect WinAPI_ValidateRgn WinAPI_VerQueryRoot ' +
4072 'WinAPI_VerQueryValue WinAPI_VerQueryValueEx ' +
4073 'WinAPI_WaitForInputIdle WinAPI_WaitForMultipleObjects ' +
4074 'WinAPI_WaitForSingleObject WinAPI_WideCharToMultiByte ' +
4075 'WinAPI_WidenPath WinAPI_WindowFromDC WinAPI_WindowFromPoint ' +
4076 'WinAPI_WordToShort WinAPI_Wow64EnableWow64FsRedirection ' +
4077 'WinAPI_WriteConsole WinAPI_WriteFile ' +
4078 'WinAPI_WriteProcessMemory WinAPI_ZeroMemory ' +
4079 'WinNet_AddConnection WinNet_AddConnection2 ' +
4080 'WinNet_AddConnection3 WinNet_CancelConnection ' +
4081 'WinNet_CancelConnection2 WinNet_CloseEnum ' +
4082 'WinNet_ConnectionDialog WinNet_ConnectionDialog1 ' +
4083 'WinNet_DisconnectDialog WinNet_DisconnectDialog1 ' +
4084 'WinNet_EnumResource WinNet_GetConnection ' +
4085 'WinNet_GetConnectionPerformance WinNet_GetLastError ' +
4086 'WinNet_GetNetworkInformation WinNet_GetProviderName ' +
4087 'WinNet_GetResourceInformation WinNet_GetResourceParent ' +
4088 'WinNet_GetUniversalName WinNet_GetUser WinNet_OpenEnum ' +
4089 'WinNet_RestoreConnection WinNet_UseConnection Word_Create ' +
4090 'Word_DocAdd Word_DocAttach Word_DocClose Word_DocExport ' +
4091 'Word_DocFind Word_DocFindReplace Word_DocGet ' +
4092 'Word_DocLinkAdd Word_DocLinkGet Word_DocOpen ' +
4093 'Word_DocPictureAdd Word_DocPrint Word_DocRangeSet ' +
4094 'Word_DocSave Word_DocSaveAs Word_DocTableRead ' +
4095 'Word_DocTableWrite Word_Quit',
4096
4097 COMMENT = {
4098 variants: [
4099 hljs.COMMENT(';', '$', {relevance: 0}),
4100 hljs.COMMENT('#cs', '#ce'),
4101 hljs.COMMENT('#comments-start', '#comments-end')
4102 ]
4103 },
4104
4105 VARIABLE = {
4106 begin: '\\$[A-z0-9_]+'
4107 },
4108
4109 STRING = {
4110 className: 'string',
4111 variants: [{
4112 begin: /"/,
4113 end: /"/,
4114 contains: [{
4115 begin: /""/,
4116 relevance: 0
4117 }]
4118 }, {
4119 begin: /'/,
4120 end: /'/,
4121 contains: [{
4122 begin: /''/,
4123 relevance: 0
4124 }]
4125 }]
4126 },
4127
4128 NUMBER = {
4129 variants: [hljs.BINARY_NUMBER_MODE, hljs.C_NUMBER_MODE]
4130 },
4131
4132 PREPROCESSOR = {
4133 className: 'meta',
4134 begin: '#',
4135 end: '$',
4136 keywords: {'meta-keyword': 'include include-once NoTrayIcon OnAutoItStartRegister RequireAdmin pragma ' +
4137 'Au3Stripper_Ignore_Funcs Au3Stripper_Ignore_Variables ' +
4138 'Au3Stripper_Off Au3Stripper_On Au3Stripper_Parameters ' +
4139 'AutoIt3Wrapper_Add_Constants AutoIt3Wrapper_Au3Check_Parameters ' +
4140 'AutoIt3Wrapper_Au3Check_Stop_OnWarning AutoIt3Wrapper_Aut2Exe ' +
4141 'AutoIt3Wrapper_AutoIt3 AutoIt3Wrapper_AutoIt3Dir ' +
4142 'AutoIt3Wrapper_Change2CUI AutoIt3Wrapper_Compile_Both ' +
4143 'AutoIt3Wrapper_Compression AutoIt3Wrapper_EndIf ' +
4144 'AutoIt3Wrapper_Icon AutoIt3Wrapper_If_Compile ' +
4145 'AutoIt3Wrapper_If_Run AutoIt3Wrapper_Jump_To_First_Error ' +
4146 'AutoIt3Wrapper_OutFile AutoIt3Wrapper_OutFile_Type ' +
4147 'AutoIt3Wrapper_OutFile_X64 AutoIt3Wrapper_PlugIn_Funcs ' +
4148 'AutoIt3Wrapper_Res_Comment Autoit3Wrapper_Res_Compatibility ' +
4149 'AutoIt3Wrapper_Res_Description AutoIt3Wrapper_Res_Field ' +
4150 'AutoIt3Wrapper_Res_File_Add AutoIt3Wrapper_Res_FileVersion ' +
4151 'AutoIt3Wrapper_Res_FileVersion_AutoIncrement ' +
4152 'AutoIt3Wrapper_Res_Icon_Add AutoIt3Wrapper_Res_Language ' +
4153 'AutoIt3Wrapper_Res_LegalCopyright ' +
4154 'AutoIt3Wrapper_Res_ProductVersion ' +
4155 'AutoIt3Wrapper_Res_requestedExecutionLevel ' +
4156 'AutoIt3Wrapper_Res_SaveSource AutoIt3Wrapper_Run_After ' +
4157 'AutoIt3Wrapper_Run_Au3Check AutoIt3Wrapper_Run_Au3Stripper ' +
4158 'AutoIt3Wrapper_Run_Before AutoIt3Wrapper_Run_Debug_Mode ' +
4159 'AutoIt3Wrapper_Run_SciTE_Minimized ' +
4160 'AutoIt3Wrapper_Run_SciTE_OutputPane_Minimized ' +
4161 'AutoIt3Wrapper_Run_Tidy AutoIt3Wrapper_ShowProgress ' +
4162 'AutoIt3Wrapper_Testing AutoIt3Wrapper_Tidy_Stop_OnError ' +
4163 'AutoIt3Wrapper_UPX_Parameters AutoIt3Wrapper_UseUPX ' +
4164 'AutoIt3Wrapper_UseX64 AutoIt3Wrapper_Version ' +
4165 'AutoIt3Wrapper_Versioning AutoIt3Wrapper_Versioning_Parameters ' +
4166 'Tidy_Off Tidy_On Tidy_Parameters EndRegion Region'},
4167 contains: [{
4168 begin: /\\\n/,
4169 relevance: 0
4170 }, {
4171 beginKeywords: 'include',
4172 keywords: {'meta-keyword': 'include'},
4173 end: '$',
4174 contains: [
4175 STRING, {
4176 className: 'meta-string',
4177 variants: [{
4178 begin: '<',
4179 end: '>'
4180 }, {
4181 begin: /"/,
4182 end: /"/,
4183 contains: [{
4184 begin: /""/,
4185 relevance: 0
4186 }]
4187 }, {
4188 begin: /'/,
4189 end: /'/,
4190 contains: [{
4191 begin: /''/,
4192 relevance: 0
4193 }]
4194 }]
4195 }
4196 ]
4197 },
4198 STRING,
4199 COMMENT
4200 ]
4201 },
4202
4203 CONSTANT = {
4204 className: 'symbol',
4205 // begin: '@',
4206 // end: '$',
4207 // keywords: 'AppDataCommonDir AppDataDir AutoItExe AutoItPID AutoItVersion AutoItX64 COM_EventObj CommonFilesDir Compiled ComputerName ComSpec CPUArch CR CRLF DesktopCommonDir DesktopDepth DesktopDir DesktopHeight DesktopRefresh DesktopWidth DocumentsCommonDir error exitCode exitMethod extended FavoritesCommonDir FavoritesDir GUI_CtrlHandle GUI_CtrlId GUI_DragFile GUI_DragId GUI_DropId GUI_WinHandle HomeDrive HomePath HomeShare HotKeyPressed HOUR IPAddress1 IPAddress2 IPAddress3 IPAddress4 KBLayout LF LocalAppDataDir LogonDNSDomain LogonDomain LogonServer MDAY MIN MON MSEC MUILang MyDocumentsDir NumParams OSArch OSBuild OSLang OSServicePack OSType OSVersion ProgramFilesDir ProgramsCommonDir ProgramsDir ScriptDir ScriptFullPath ScriptLineNumber ScriptName SEC StartMenuCommonDir StartMenuDir StartupCommonDir StartupDir SW_DISABLE SW_ENABLE SW_HIDE SW_LOCK SW_MAXIMIZE SW_MINIMIZE SW_RESTORE SW_SHOW SW_SHOWDEFAULT SW_SHOWMAXIMIZED SW_SHOWMINIMIZED SW_SHOWMINNOACTIVE SW_SHOWNA SW_SHOWNOACTIVATE SW_SHOWNORMAL SW_UNLOCK SystemDir TAB TempDir TRAY_ID TrayIconFlashing TrayIconVisible UserName UserProfileDir WDAY WindowsDir WorkingDir YDAY YEAR',
4208 // relevance: 5
4209 begin: '@[A-z0-9_]+'
4210 },
4211
4212 FUNCTION = {
4213 className: 'function',
4214 beginKeywords: 'Func',
4215 end: '$',
4216 illegal: '\\$|\\[|%',
4217 contains: [
4218 hljs.UNDERSCORE_TITLE_MODE, {
4219 className: 'params',
4220 begin: '\\(',
4221 end: '\\)',
4222 contains: [
4223 VARIABLE,
4224 STRING,
4225 NUMBER
4226 ]
4227 }
4228 ]
4229 };
4230
4231 return {
4232 case_insensitive: true,
4233 illegal: /\/\*/,
4234 keywords: {
4235 keyword: KEYWORDS,
4236 built_in: BUILT_IN,
4237 literal: LITERAL
4238 },
4239 contains: [
4240 COMMENT,
4241 VARIABLE,
4242 STRING,
4243 NUMBER,
4244 PREPROCESSOR,
4245 CONSTANT,
4246 FUNCTION
4247 ]
4248 }
4249}
4250},{name:"avrasm",create:/*
4251Language: AVR Assembler
4252Author: Vladimir Ermakov <vooon341@gmail.com>
4253Category: assembler
4254*/
4255
4256function(hljs) {
4257 return {
4258 case_insensitive: true,
4259 lexemes: '\\.?' + hljs.IDENT_RE,
4260 keywords: {
4261 keyword:
4262 /* mnemonic */
4263 'adc add adiw and andi asr bclr bld brbc brbs brcc brcs break breq brge brhc brhs ' +
4264 'brid brie brlo brlt brmi brne brpl brsh brtc brts brvc brvs bset bst call cbi cbr ' +
4265 'clc clh cli cln clr cls clt clv clz com cp cpc cpi cpse dec eicall eijmp elpm eor ' +
4266 'fmul fmuls fmulsu icall ijmp in inc jmp ld ldd ldi lds lpm lsl lsr mov movw mul ' +
4267 'muls mulsu neg nop or ori out pop push rcall ret reti rjmp rol ror sbc sbr sbrc sbrs ' +
4268 'sec seh sbi sbci sbic sbis sbiw sei sen ser ses set sev sez sleep spm st std sts sub ' +
4269 'subi swap tst wdr',
4270 built_in:
4271 /* general purpose registers */
4272 'r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 r16 r17 r18 r19 r20 r21 r22 ' +
4273 'r23 r24 r25 r26 r27 r28 r29 r30 r31 x|0 xh xl y|0 yh yl z|0 zh zl ' +
4274 /* IO Registers (ATMega128) */
4275 'ucsr1c udr1 ucsr1a ucsr1b ubrr1l ubrr1h ucsr0c ubrr0h tccr3c tccr3a tccr3b tcnt3h ' +
4276 'tcnt3l ocr3ah ocr3al ocr3bh ocr3bl ocr3ch ocr3cl icr3h icr3l etimsk etifr tccr1c ' +
4277 'ocr1ch ocr1cl twcr twdr twar twsr twbr osccal xmcra xmcrb eicra spmcsr spmcr portg ' +
4278 'ddrg ping portf ddrf sreg sph spl xdiv rampz eicrb eimsk gimsk gicr eifr gifr timsk ' +
4279 'tifr mcucr mcucsr tccr0 tcnt0 ocr0 assr tccr1a tccr1b tcnt1h tcnt1l ocr1ah ocr1al ' +
4280 'ocr1bh ocr1bl icr1h icr1l tccr2 tcnt2 ocr2 ocdr wdtcr sfior eearh eearl eedr eecr ' +
4281 'porta ddra pina portb ddrb pinb portc ddrc pinc portd ddrd pind spdr spsr spcr udr0 ' +
4282 'ucsr0a ucsr0b ubrr0l acsr admux adcsr adch adcl porte ddre pine pinf',
4283 meta:
4284 '.byte .cseg .db .def .device .dseg .dw .endmacro .equ .eseg .exit .include .list ' +
4285 '.listmac .macro .nolist .org .set'
4286 },
4287 contains: [
4288 hljs.C_BLOCK_COMMENT_MODE,
4289 hljs.COMMENT(
4290 ';',
4291 '$',
4292 {
4293 relevance: 0
4294 }
4295 ),
4296 hljs.C_NUMBER_MODE, // 0x..., decimal, float
4297 hljs.BINARY_NUMBER_MODE, // 0b...
4298 {
4299 className: 'number',
4300 begin: '\\b(\\$[a-zA-Z0-9]+|0o[0-7]+)' // $..., 0o...
4301 },
4302 hljs.QUOTE_STRING_MODE,
4303 {
4304 className: 'string',
4305 begin: '\'', end: '[^\\\\]\'',
4306 illegal: '[^\\\\][^\']'
4307 },
4308 {className: 'symbol', begin: '^[A-Za-z0-9_.$]+:'},
4309 {className: 'meta', begin: '#', end: '$'},
4310 { // подстановка в «.macro»
4311 className: 'subst',
4312 begin: '@[0-9]+'
4313 }
4314 ]
4315 };
4316}
4317},{name:"axapta",create:/*
4318Language: Axapta
4319Author: Dmitri Roudakov <dmitri@roudakov.ru>
4320Category: enterprise
4321*/
4322
4323function(hljs) {
4324 return {
4325 keywords: 'false int abstract private char boolean static null if for true ' +
4326 'while long throw finally protected final return void enum else ' +
4327 'break new catch byte super case short default double public try this switch ' +
4328 'continue reverse firstfast firstonly forupdate nofetch sum avg minof maxof count ' +
4329 'order group by asc desc index hint like dispaly edit client server ttsbegin ' +
4330 'ttscommit str real date container anytype common div mod',
4331 contains: [
4332 hljs.C_LINE_COMMENT_MODE,
4333 hljs.C_BLOCK_COMMENT_MODE,
4334 hljs.APOS_STRING_MODE,
4335 hljs.QUOTE_STRING_MODE,
4336 hljs.C_NUMBER_MODE,
4337 {
4338 className: 'meta',
4339 begin: '#', end: '$'
4340 },
4341 {
4342 className: 'class',
4343 beginKeywords: 'class interface', end: '{', excludeEnd: true,
4344 illegal: ':',
4345 contains: [
4346 {beginKeywords: 'extends implements'},
4347 hljs.UNDERSCORE_TITLE_MODE
4348 ]
4349 }
4350 ]
4351 };
4352}
4353},{name:"bash",create:/*
4354Language: Bash
4355Author: vah <vahtenberg@gmail.com>
4356Contributrors: Benjamin Pannell <contact@sierrasoftworks.com>
4357Category: common
4358*/
4359
4360function(hljs) {
4361 var VAR = {
4362 className: 'variable',
4363 variants: [
4364 {begin: /\$[\w\d#@][\w\d_]*/},
4365 {begin: /\$\{(.*?)}/}
4366 ]
4367 };
4368 var QUOTE_STRING = {
4369 className: 'string',
4370 begin: /"/, end: /"/,
4371 contains: [
4372 hljs.BACKSLASH_ESCAPE,
4373 VAR,
4374 {
4375 className: 'variable',
4376 begin: /\$\(/, end: /\)/,
4377 contains: [hljs.BACKSLASH_ESCAPE]
4378 }
4379 ]
4380 };
4381 var APOS_STRING = {
4382 className: 'string',
4383 begin: /'/, end: /'/
4384 };
4385
4386 return {
4387 aliases: ['sh', 'zsh'],
4388 lexemes: /-?[a-z\.]+/,
4389 keywords: {
4390 keyword:
4391 'if then else elif fi for while in do done case esac function',
4392 literal:
4393 'true false',
4394 built_in:
4395 // Shell built-ins
4396 // http://www.gnu.org/software/bash/manual/html_node/Shell-Builtin-Commands.html
4397 'break cd continue eval exec exit export getopts hash pwd readonly return shift test times ' +
4398 'trap umask unset ' +
4399 // Bash built-ins
4400 'alias bind builtin caller command declare echo enable help let local logout mapfile printf ' +
4401 'read readarray source type typeset ulimit unalias ' +
4402 // Shell modifiers
4403 'set shopt ' +
4404 // Zsh built-ins
4405 'autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles ' +
4406 'compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate ' +
4407 'fc fg float functions getcap getln history integer jobs kill limit log noglob popd print ' +
4408 'pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit ' +
4409 'unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof ' +
4410 'zpty zregexparse zsocket zstyle ztcp',
4411 _:
4412 '-ne -eq -lt -gt -f -d -e -s -l -a' // relevance booster
4413 },
4414 contains: [
4415 {
4416 className: 'meta',
4417 begin: /^#![^\n]+sh\s*$/,
4418 relevance: 10
4419 },
4420 {
4421 className: 'function',
4422 begin: /\w[\w\d_]*\s*\(\s*\)\s*\{/,
4423 returnBegin: true,
4424 contains: [hljs.inherit(hljs.TITLE_MODE, {begin: /\w[\w\d_]*/})],
4425 relevance: 0
4426 },
4427 hljs.HASH_COMMENT_MODE,
4428 QUOTE_STRING,
4429 APOS_STRING,
4430 VAR
4431 ]
4432 };
4433}
4434},{name:"brainfuck",create:/*
4435Language: Brainfuck
4436Author: Evgeny Stepanischev <imbolk@gmail.com>
4437*/
4438
4439function(hljs){
4440 var LITERAL = {
4441 className: 'literal',
4442 begin: '[\\+\\-]',
4443 relevance: 0
4444 };
4445 return {
4446 aliases: ['bf'],
4447 contains: [
4448 hljs.COMMENT(
4449 '[^\\[\\]\\.,\\+\\-<> \r\n]',
4450 '[\\[\\]\\.,\\+\\-<> \r\n]',
4451 {
4452 returnEnd: true,
4453 relevance: 0
4454 }
4455 ),
4456 {
4457 className: 'title',
4458 begin: '[\\[\\]]',
4459 relevance: 0
4460 },
4461 {
4462 className: 'string',
4463 begin: '[\\.,]',
4464 relevance: 0
4465 },
4466 {
4467 // this mode works as the only relevance counter
4468 begin: /\+\+|\-\-/, returnBegin: true,
4469 contains: [LITERAL]
4470 },
4471 LITERAL
4472 ]
4473 };
4474}
4475},{name:"cal",create:/*
4476Language: C/AL
4477Author: Kenneth Fuglsang Christensen <kfuglsang@gmail.com>
4478Description: Provides highlighting of Microsoft Dynamics NAV C/AL code files
4479*/
4480
4481function(hljs) {
4482 var KEYWORDS =
4483 'div mod in and or not xor asserterror begin case do downto else end exit for if of repeat then to ' +
4484 'until while with var';
4485 var LITERALS = 'false true';
4486 var COMMENT_MODES = [
4487 hljs.C_LINE_COMMENT_MODE,
4488 hljs.COMMENT(
4489 /\{/,
4490 /\}/,
4491 {
4492 relevance: 0
4493 }
4494 ),
4495 hljs.COMMENT(
4496 /\(\*/,
4497 /\*\)/,
4498 {
4499 relevance: 10
4500 }
4501 )
4502 ];
4503 var STRING = {
4504 className: 'string',
4505 begin: /'/, end: /'/,
4506 contains: [{begin: /''/}]
4507 };
4508 var CHAR_STRING = {
4509 className: 'string', begin: /(#\d+)+/
4510 };
4511 var DATE = {
4512 className: 'number',
4513 begin: '\\b\\d+(\\.\\d+)?(DT|D|T)',
4514 relevance: 0
4515 };
4516 var DBL_QUOTED_VARIABLE = {
4517 className: 'string', // not a string technically but makes sense to be highlighted in the same style
4518 begin: '"',
4519 end: '"'
4520 };
4521
4522 var PROCEDURE = {
4523 className: 'function',
4524 beginKeywords: 'procedure', end: /[:;]/,
4525 keywords: 'procedure|10',
4526 contains: [
4527 hljs.TITLE_MODE,
4528 {
4529 className: 'params',
4530 begin: /\(/, end: /\)/,
4531 keywords: KEYWORDS,
4532 contains: [STRING, CHAR_STRING]
4533 }
4534 ].concat(COMMENT_MODES)
4535 };
4536
4537 var OBJECT = {
4538 className: 'class',
4539 begin: 'OBJECT (Table|Form|Report|Dataport|Codeunit|XMLport|MenuSuite|Page|Query) (\\d+) ([^\\r\\n]+)',
4540 returnBegin: true,
4541 contains: [
4542 hljs.TITLE_MODE,
4543 PROCEDURE
4544 ]
4545 };
4546
4547 return {
4548 case_insensitive: true,
4549 keywords: { keyword: KEYWORDS, literal: LITERALS },
4550 illegal: /\/\*/,
4551 contains: [
4552 STRING, CHAR_STRING,
4553 DATE, DBL_QUOTED_VARIABLE,
4554 hljs.NUMBER_MODE,
4555 OBJECT,
4556 PROCEDURE
4557 ]
4558 };
4559}
4560},{name:"capnproto",create:/*
4561Language: Cap’n Proto
4562Author: Oleg Efimov <efimovov@gmail.com>
4563Description: Cap’n Proto message definition format
4564Category: protocols
4565*/
4566
4567function(hljs) {
4568 return {
4569 aliases: ['capnp'],
4570 keywords: {
4571 keyword:
4572 'struct enum interface union group import using const annotation extends in of on as with from fixed',
4573 built_in:
4574 'Void Bool Int8 Int16 Int32 Int64 UInt8 UInt16 UInt32 UInt64 Float32 Float64 ' +
4575 'Text Data AnyPointer AnyStruct Capability List',
4576 literal:
4577 'true false'
4578 },
4579 contains: [
4580 hljs.QUOTE_STRING_MODE,
4581 hljs.NUMBER_MODE,
4582 hljs.HASH_COMMENT_MODE,
4583 {
4584 className: 'meta',
4585 begin: /@0x[\w\d]{16};/,
4586 illegal: /\n/
4587 },
4588 {
4589 className: 'symbol',
4590 begin: /@\d+\b/
4591 },
4592 {
4593 className: 'class',
4594 beginKeywords: 'struct enum', end: /\{/,
4595 illegal: /\n/,
4596 contains: [
4597 hljs.inherit(hljs.TITLE_MODE, {
4598 starts: {endsWithParent: true, excludeEnd: true} // hack: eating everything after the first title
4599 })
4600 ]
4601 },
4602 {
4603 className: 'class',
4604 beginKeywords: 'interface', end: /\{/,
4605 illegal: /\n/,
4606 contains: [
4607 hljs.inherit(hljs.TITLE_MODE, {
4608 starts: {endsWithParent: true, excludeEnd: true} // hack: eating everything after the first title
4609 })
4610 ]
4611 }
4612 ]
4613 };
4614}
4615},{name:"ceylon",create:/*
4616Language: Ceylon
4617Author: Lucas Werkmeister <mail@lucaswerkmeister.de>
4618*/
4619function(hljs) {
4620 // 2.3. Identifiers and keywords
4621 var KEYWORDS =
4622 'assembly module package import alias class interface object given value ' +
4623 'assign void function new of extends satisfies abstracts in out return ' +
4624 'break continue throw assert dynamic if else switch case for while try ' +
4625 'catch finally then let this outer super is exists nonempty';
4626 // 7.4.1 Declaration Modifiers
4627 var DECLARATION_MODIFIERS =
4628 'shared abstract formal default actual variable late native deprecated' +
4629 'final sealed annotation suppressWarnings small';
4630 // 7.4.2 Documentation
4631 var DOCUMENTATION =
4632 'doc by license see throws tagged';
4633 var SUBST = {
4634 className: 'subst', excludeBegin: true, excludeEnd: true,
4635 begin: /``/, end: /``/,
4636 keywords: KEYWORDS,
4637 relevance: 10
4638 };
4639 var EXPRESSIONS = [
4640 {
4641 // verbatim string
4642 className: 'string',
4643 begin: '"""',
4644 end: '"""',
4645 relevance: 10
4646 },
4647 {
4648 // string literal or template
4649 className: 'string',
4650 begin: '"', end: '"',
4651 contains: [SUBST]
4652 },
4653 {
4654 // character literal
4655 className: 'string',
4656 begin: "'",
4657 end: "'"
4658 },
4659 {
4660 // numeric literal
4661 className: 'number',
4662 begin: '#[0-9a-fA-F_]+|\\$[01_]+|[0-9_]+(?:\\.[0-9_](?:[eE][+-]?\\d+)?)?[kMGTPmunpf]?',
4663 relevance: 0
4664 }
4665 ];
4666 SUBST.contains = EXPRESSIONS;
4667
4668 return {
4669 keywords: {
4670 keyword: KEYWORDS + ' ' + DECLARATION_MODIFIERS,
4671 meta: DOCUMENTATION
4672 },
4673 illegal: '\\$[^01]|#[^0-9a-fA-F]',
4674 contains: [
4675 hljs.C_LINE_COMMENT_MODE,
4676 hljs.COMMENT('/\\*', '\\*/', {contains: ['self']}),
4677 {
4678 // compiler annotation
4679 className: 'meta',
4680 begin: '@[a-z]\\w*(?:\\:\"[^\"]*\")?'
4681 }
4682 ].concat(EXPRESSIONS)
4683 };
4684}
4685},{name:"clojure-repl",create:/*
4686Language: Clojure REPL
4687Description: Clojure REPL sessions
4688Author: Ivan Sagalaev <maniac@softwaremaniacs.org>
4689Requires: clojure.js
4690Category: lisp
4691*/
4692
4693function(hljs) {
4694 return {
4695 contains: [
4696 {
4697 className: 'meta',
4698 begin: /^([\w.-]+|\s*#_)=>/,
4699 starts: {
4700 end: /$/,
4701 subLanguage: 'clojure'
4702 }
4703 }
4704 ]
4705 }
4706}
4707},{name:"clojure",create:/*
4708Language: Clojure
4709Description: Clojure syntax (based on lisp.js)
4710Author: mfornos
4711Category: lisp
4712*/
4713
4714function(hljs) {
4715 var keywords = {
4716 'builtin-name':
4717 // Clojure keywords
4718 'def defonce cond apply if-not if-let if not not= = < > <= >= == + / * - rem '+
4719 'quot neg? pos? delay? symbol? keyword? true? false? integer? empty? coll? list? '+
4720 'set? ifn? fn? associative? sequential? sorted? counted? reversible? number? decimal? '+
4721 'class? distinct? isa? float? rational? reduced? ratio? odd? even? char? seq? vector? '+
4722 'string? map? nil? contains? zero? instance? not-every? not-any? libspec? -> ->> .. . '+
4723 'inc compare do dotimes mapcat take remove take-while drop letfn drop-last take-last '+
4724 'drop-while while intern condp case reduced cycle split-at split-with repeat replicate '+
4725 'iterate range merge zipmap declare line-seq sort comparator sort-by dorun doall nthnext '+
4726 'nthrest partition eval doseq await await-for let agent atom send send-off release-pending-sends '+
4727 'add-watch mapv filterv remove-watch agent-error restart-agent set-error-handler error-handler '+
4728 'set-error-mode! error-mode shutdown-agents quote var fn loop recur throw try monitor-enter '+
4729 'monitor-exit defmacro defn defn- macroexpand macroexpand-1 for dosync and or '+
4730 'when when-not when-let comp juxt partial sequence memoize constantly complement identity assert '+
4731 'peek pop doto proxy defstruct first rest cons defprotocol cast coll deftype defrecord last butlast '+
4732 'sigs reify second ffirst fnext nfirst nnext defmulti defmethod meta with-meta ns in-ns create-ns import '+
4733 'refer keys select-keys vals key val rseq name namespace promise into transient persistent! conj! '+
4734 'assoc! dissoc! pop! disj! use class type num float double short byte boolean bigint biginteger '+
4735 'bigdec print-method print-dup throw-if printf format load compile get-in update-in pr pr-on newline '+
4736 'flush read slurp read-line subvec with-open memfn time re-find re-groups rand-int rand mod locking '+
4737 'assert-valid-fdecl alias resolve ref deref refset swap! reset! set-validator! compare-and-set! alter-meta! '+
4738 'reset-meta! commute get-validator alter ref-set ref-history-count ref-min-history ref-max-history ensure sync io! '+
4739 'new next conj set! to-array future future-call into-array aset gen-class reduce map filter find empty '+
4740 'hash-map hash-set sorted-map sorted-map-by sorted-set sorted-set-by vec vector seq flatten reverse assoc dissoc list '+
4741 'disj get union difference intersection extend extend-type extend-protocol int nth delay count concat chunk chunk-buffer '+
4742 'chunk-append chunk-first chunk-rest max min dec unchecked-inc-int unchecked-inc unchecked-dec-inc unchecked-dec unchecked-negate '+
4743 'unchecked-add-int unchecked-add unchecked-subtract-int unchecked-subtract chunk-next chunk-cons chunked-seq? prn vary-meta '+
4744 'lazy-seq spread list* str find-keyword keyword symbol gensym force rationalize'
4745 };
4746
4747 var SYMBOLSTART = 'a-zA-Z_\\-!.?+*=<>&#\'';
4748 var SYMBOL_RE = '[' + SYMBOLSTART + '][' + SYMBOLSTART + '0-9/;:]*';
4749 var SIMPLE_NUMBER_RE = '[-+]?\\d+(\\.\\d+)?';
4750
4751 var SYMBOL = {
4752 begin: SYMBOL_RE,
4753 relevance: 0
4754 };
4755 var NUMBER = {
4756 className: 'number', begin: SIMPLE_NUMBER_RE,
4757 relevance: 0
4758 };
4759 var STRING = hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null});
4760 var COMMENT = hljs.COMMENT(
4761 ';',
4762 '$',
4763 {
4764 relevance: 0
4765 }
4766 );
4767 var LITERAL = {
4768 className: 'literal',
4769 begin: /\b(true|false|nil)\b/
4770 };
4771 var COLLECTION = {
4772 begin: '[\\[\\{]', end: '[\\]\\}]'
4773 };
4774 var HINT = {
4775 className: 'comment',
4776 begin: '\\^' + SYMBOL_RE
4777 };
4778 var HINT_COL = hljs.COMMENT('\\^\\{', '\\}');
4779 var KEY = {
4780 className: 'symbol',
4781 begin: '[:]' + SYMBOL_RE
4782 };
4783 var LIST = {
4784 begin: '\\(', end: '\\)'
4785 };
4786 var BODY = {
4787 endsWithParent: true,
4788 relevance: 0
4789 };
4790 var NAME = {
4791 keywords: keywords,
4792 lexemes: SYMBOL_RE,
4793 className: 'name', begin: SYMBOL_RE,
4794 starts: BODY
4795 };
4796 var DEFAULT_CONTAINS = [LIST, STRING, HINT, HINT_COL, COMMENT, KEY, COLLECTION, NUMBER, LITERAL, SYMBOL];
4797
4798 LIST.contains = [hljs.COMMENT('comment', ''), NAME, BODY];
4799 BODY.contains = DEFAULT_CONTAINS;
4800 COLLECTION.contains = DEFAULT_CONTAINS;
4801
4802 return {
4803 aliases: ['clj'],
4804 illegal: /\S/,
4805 contains: [LIST, STRING, HINT, HINT_COL, COMMENT, KEY, COLLECTION, NUMBER, LITERAL]
4806 }
4807}
4808},{name:"cmake",create:/*
4809Language: CMake
4810Description: CMake is an open-source cross-platform system for build automation.
4811Author: Igor Kalnitsky <igor@kalnitsky.org>
4812Website: http://kalnitsky.org/
4813*/
4814
4815function(hljs) {
4816 return {
4817 aliases: ['cmake.in'],
4818 case_insensitive: true,
4819 keywords: {
4820 keyword:
4821 'add_custom_command add_custom_target add_definitions add_dependencies ' +
4822 'add_executable add_library add_subdirectory add_test aux_source_directory ' +
4823 'break build_command cmake_minimum_required cmake_policy configure_file ' +
4824 'create_test_sourcelist define_property else elseif enable_language enable_testing ' +
4825 'endforeach endfunction endif endmacro endwhile execute_process export find_file ' +
4826 'find_library find_package find_path find_program fltk_wrap_ui foreach function ' +
4827 'get_cmake_property get_directory_property get_filename_component get_property ' +
4828 'get_source_file_property get_target_property get_test_property if include ' +
4829 'include_directories include_external_msproject include_regular_expression install ' +
4830 'link_directories load_cache load_command macro mark_as_advanced message option ' +
4831 'output_required_files project qt_wrap_cpp qt_wrap_ui remove_definitions return ' +
4832 'separate_arguments set set_directory_properties set_property ' +
4833 'set_source_files_properties set_target_properties set_tests_properties site_name ' +
4834 'source_group string target_link_libraries try_compile try_run unset variable_watch ' +
4835 'while build_name exec_program export_library_dependencies install_files ' +
4836 'install_programs install_targets link_libraries make_directory remove subdir_depends ' +
4837 'subdirs use_mangled_mesa utility_source variable_requires write_file ' +
4838 'qt5_use_modules qt5_use_package qt5_wrap_cpp on off true false and or ' +
4839 'equal less greater strless strgreater strequal matches'
4840 },
4841 contains: [
4842 {
4843 className: 'variable',
4844 begin: '\\${', end: '}'
4845 },
4846 hljs.HASH_COMMENT_MODE,
4847 hljs.QUOTE_STRING_MODE,
4848 hljs.NUMBER_MODE
4849 ]
4850 };
4851}
4852},{name:"coffeescript",create:/*
4853Language: CoffeeScript
4854Author: Dmytrii Nagirniak <dnagir@gmail.com>
4855Contributors: Oleg Efimov <efimovov@gmail.com>, Cédric Néhémie <cedric.nehemie@gmail.com>
4856Description: CoffeeScript is a programming language that transcompiles to JavaScript. For info about language see http://coffeescript.org/
4857Category: common, scripting
4858*/
4859
4860function(hljs) {
4861 var KEYWORDS = {
4862 keyword:
4863 // JS keywords
4864 'in if for while finally new do return else break catch instanceof throw try this ' +
4865 'switch continue typeof delete debugger super ' +
4866 // Coffee keywords
4867 'then unless until loop of by when and or is isnt not',
4868 literal:
4869 // JS literals
4870 'true false null undefined ' +
4871 // Coffee literals
4872 'yes no on off',
4873 built_in:
4874 'npm require console print module global window document'
4875 };
4876 var JS_IDENT_RE = '[A-Za-z$_][0-9A-Za-z$_]*';
4877 var SUBST = {
4878 className: 'subst',
4879 begin: /#\{/, end: /}/,
4880 keywords: KEYWORDS
4881 };
4882 var EXPRESSIONS = [
4883 hljs.BINARY_NUMBER_MODE,
4884 hljs.inherit(hljs.C_NUMBER_MODE, {starts: {end: '(\\s*/)?', relevance: 0}}), // a number tries to eat the following slash to prevent treating it as a regexp
4885 {
4886 className: 'string',
4887 variants: [
4888 {
4889 begin: /'''/, end: /'''/,
4890 contains: [hljs.BACKSLASH_ESCAPE]
4891 },
4892 {
4893 begin: /'/, end: /'/,
4894 contains: [hljs.BACKSLASH_ESCAPE]
4895 },
4896 {
4897 begin: /"""/, end: /"""/,
4898 contains: [hljs.BACKSLASH_ESCAPE, SUBST]
4899 },
4900 {
4901 begin: /"/, end: /"/,
4902 contains: [hljs.BACKSLASH_ESCAPE, SUBST]
4903 }
4904 ]
4905 },
4906 {
4907 className: 'regexp',
4908 variants: [
4909 {
4910 begin: '///', end: '///',
4911 contains: [SUBST, hljs.HASH_COMMENT_MODE]
4912 },
4913 {
4914 begin: '//[gim]*',
4915 relevance: 0
4916 },
4917 {
4918 // regex can't start with space to parse x / 2 / 3 as two divisions
4919 // regex can't start with *, and it supports an "illegal" in the main mode
4920 begin: /\/(?![ *])(\\\/|.)*?\/[gim]*(?=\W|$)/
4921 }
4922 ]
4923 },
4924 {
4925 begin: '@' + JS_IDENT_RE // relevance booster
4926 },
4927 {
4928 begin: '`', end: '`',
4929 excludeBegin: true, excludeEnd: true,
4930 subLanguage: 'javascript'
4931 }
4932 ];
4933 SUBST.contains = EXPRESSIONS;
4934
4935 var TITLE = hljs.inherit(hljs.TITLE_MODE, {begin: JS_IDENT_RE});
4936 var PARAMS_RE = '(\\(.*\\))?\\s*\\B[-=]>';
4937 var PARAMS = {
4938 className: 'params',
4939 begin: '\\([^\\(]', returnBegin: true,
4940 /* We need another contained nameless mode to not have every nested
4941 pair of parens to be called "params" */
4942 contains: [{
4943 begin: /\(/, end: /\)/,
4944 keywords: KEYWORDS,
4945 contains: ['self'].concat(EXPRESSIONS)
4946 }]
4947 };
4948
4949 return {
4950 aliases: ['coffee', 'cson', 'iced'],
4951 keywords: KEYWORDS,
4952 illegal: /\/\*/,
4953 contains: EXPRESSIONS.concat([
4954 hljs.COMMENT('###', '###'),
4955 hljs.HASH_COMMENT_MODE,
4956 {
4957 className: 'function',
4958 begin: '^\\s*' + JS_IDENT_RE + '\\s*=\\s*' + PARAMS_RE, end: '[-=]>',
4959 returnBegin: true,
4960 contains: [TITLE, PARAMS]
4961 },
4962 {
4963 // anonymous function start
4964 begin: /[:\(,=]\s*/,
4965 relevance: 0,
4966 contains: [
4967 {
4968 className: 'function',
4969 begin: PARAMS_RE, end: '[-=]>',
4970 returnBegin: true,
4971 contains: [PARAMS]
4972 }
4973 ]
4974 },
4975 {
4976 className: 'class',
4977 beginKeywords: 'class',
4978 end: '$',
4979 illegal: /[:="\[\]]/,
4980 contains: [
4981 {
4982 beginKeywords: 'extends',
4983 endsWithParent: true,
4984 illegal: /[:="\[\]]/,
4985 contains: [TITLE]
4986 },
4987 TITLE
4988 ]
4989 },
4990 {
4991 begin: JS_IDENT_RE + ':', end: ':',
4992 returnBegin: true, returnEnd: true,
4993 relevance: 0
4994 }
4995 ])
4996 };
4997}
4998},{name:"cos",create:/*
4999Language: Caché Object Script
5000Author: Nikita Savchenko <zitros.lab@gmail.com>
5001Category: common
5002*/
5003function cos (hljs) {
5004
5005 var STRINGS = {
5006 className: 'string',
5007 variants: [
5008 {
5009 begin: '"',
5010 end: '"',
5011 contains: [{ // escaped
5012 begin: "\"\"",
5013 relevance: 0
5014 }]
5015 }
5016 ]
5017 };
5018
5019 var NUMBERS = {
5020 className: "number",
5021 begin: "\\b(\\d+(\\.\\d*)?|\\.\\d+)",
5022 relevance: 0
5023 };
5024
5025 var METHOD_TITLE = hljs.IDENT_RE + "\\s*\\(";
5026
5027 var COS_KEYWORDS = {
5028 keyword: [
5029
5030 "break", "catch", "close", "continue", "do", "d", "else",
5031 "elseif", "for", "goto", "halt", "hang", "h", "if", "job",
5032 "j", "kill", "k", "lock", "l", "merge", "new", "open", "quit",
5033 "q", "read", "r", "return", "set", "s", "tcommit", "throw",
5034 "trollback", "try", "tstart", "use", "view", "while", "write",
5035 "w", "xecute", "x", "zkill", "znspace", "zn", "ztrap", "zwrite",
5036 "zw", "zzdump", "zzwrite", "print", "zbreak", "zinsert", "zload",
5037 "zprint", "zremove", "zsave", "zzprint", "mv", "mvcall", "mvcrt",
5038 "mvdim", "mvprint", "zquit", "zsync", "ascii"
5039
5040 // registered function - no need in them due to all functions are highlighted,
5041 // but I'll just leave this here.
5042
5043 //"$bit", "$bitcount",
5044 //"$bitfind", "$bitlogic", "$case", "$char", "$classmethod", "$classname",
5045 //"$compile", "$data", "$decimal", "$double", "$extract", "$factor",
5046 //"$find", "$fnumber", "$get", "$increment", "$inumber", "$isobject",
5047 //"$isvaliddouble", "$isvalidnum", "$justify", "$length", "$list",
5048 //"$listbuild", "$listdata", "$listfind", "$listfromstring", "$listget",
5049 //"$listlength", "$listnext", "$listsame", "$listtostring", "$listvalid",
5050 //"$locate", "$match", "$method", "$name", "$nconvert", "$next",
5051 //"$normalize", "$now", "$number", "$order", "$parameter", "$piece",
5052 //"$prefetchoff", "$prefetchon", "$property", "$qlength", "$qsubscript",
5053 //"$query", "$random", "$replace", "$reverse", "$sconvert", "$select",
5054 //"$sortbegin", "$sortend", "$stack", "$text", "$translate", "$view",
5055 //"$wascii", "$wchar", "$wextract", "$wfind", "$wiswide", "$wlength",
5056 //"$wreverse", "$xecute", "$zabs", "$zarccos", "$zarcsin", "$zarctan",
5057 //"$zcos", "$zcot", "$zcsc", "$zdate", "$zdateh", "$zdatetime",
5058 //"$zdatetimeh", "$zexp", "$zhex", "$zln", "$zlog", "$zpower", "$zsec",
5059 //"$zsin", "$zsqr", "$ztan", "$ztime", "$ztimeh", "$zboolean",
5060 //"$zconvert", "$zcrc", "$zcyc", "$zdascii", "$zdchar", "$zf",
5061 //"$ziswide", "$zlascii", "$zlchar", "$zname", "$zposition", "$zqascii",
5062 //"$zqchar", "$zsearch", "$zseek", "$zstrip", "$zwascii", "$zwchar",
5063 //"$zwidth", "$zwpack", "$zwbpack", "$zwunpack", "$zwbunpack", "$zzenkaku",
5064 //"$change", "$mv", "$mvat", "$mvfmt", "$mvfmts", "$mviconv",
5065 //"$mviconvs", "$mvinmat", "$mvlover", "$mvoconv", "$mvoconvs", "$mvraise",
5066 //"$mvtrans", "$mvv", "$mvname", "$zbitand", "$zbitcount", "$zbitfind",
5067 //"$zbitget", "$zbitlen", "$zbitnot", "$zbitor", "$zbitset", "$zbitstr",
5068 //"$zbitxor", "$zincrement", "$znext", "$zorder", "$zprevious", "$zsort",
5069 //"device", "$ecode", "$estack", "$etrap", "$halt", "$horolog",
5070 //"$io", "$job", "$key", "$namespace", "$principal", "$quit", "$roles",
5071 //"$storage", "$system", "$test", "$this", "$tlevel", "$username",
5072 //"$x", "$y", "$za", "$zb", "$zchild", "$zeof", "$zeos", "$zerror",
5073 //"$zhorolog", "$zio", "$zjob", "$zmode", "$znspace", "$zparent", "$zpi",
5074 //"$zpos", "$zreference", "$zstorage", "$ztimestamp", "$ztimezone",
5075 //"$ztrap", "$zversion"
5076
5077 ].join(" ")
5078 };
5079
5080 return {
5081 case_insensitive: true,
5082 aliases: ["cos", "cls"],
5083 keywords: COS_KEYWORDS,
5084 contains: [
5085 NUMBERS,
5086 STRINGS,
5087 hljs.C_LINE_COMMENT_MODE,
5088 hljs.C_BLOCK_COMMENT_MODE,
5089 { // functions
5090 className: "built_in",
5091 begin: /\$\$?[a-zA-Z]+/
5092 },
5093 { // macro
5094 className: "keyword",
5095 begin: /\$\$\$[a-zA-Z]+/
5096 },
5097 { // globals
5098 className: "symbol",
5099 begin: /\^%?[a-zA-Z][\w]*/
5100 },
5101 { // static class reference constructions
5102 className: 'keyword',
5103 begin: /##class/
5104 },
5105
5106 // sub-languages: are not fully supported by hljs by 11/15/2015
5107 // left for the future implementation.
5108 {
5109 begin: /&sql\(/, end: /\)/,
5110 excludeBegin: true, excludeEnd: true,
5111 subLanguage: "sql"
5112 },
5113 {
5114 begin: /&(js|jscript|javascript)</, end: />/,
5115 excludeBegin: true, excludeEnd: true,
5116 subLanguage: "javascript"
5117 },
5118 {
5119 begin: /&html<\s*</, end: />\s*>/, // brakes first tag, but the only way to embed valid html
5120 subLanguage: "xml" // no html?
5121 }
5122 ]
5123 };
5124}
5125},{name:"cpp",create:/*
5126Language: C++
5127Author: Ivan Sagalaev <maniac@softwaremaniacs.org>
5128Contributors: Evgeny Stepanischev <imbolk@gmail.com>, Zaven Muradyan <megalivoithos@gmail.com>, Roel Deckers <admin@codingcat.nl>
5129Category: common, system
5130*/
5131
5132function(hljs) {
5133 var CPP_PRIMATIVE_TYPES = {
5134 className: 'keyword',
5135 begin: '\\b[a-z\\d_]*_t\\b'
5136 };
5137
5138 var STRINGS = {
5139 className: 'string',
5140 variants: [
5141 hljs.inherit(hljs.QUOTE_STRING_MODE, { begin: '((u8?|U)|L)?"' }),
5142 {
5143 begin: '(u8?|U)?R"', end: '"',
5144 contains: [hljs.BACKSLASH_ESCAPE]
5145 },
5146 {
5147 begin: '\'\\\\?.', end: '\'',
5148 illegal: '.'
5149 }
5150 ]
5151 };
5152
5153 var NUMBERS = {
5154 className: 'number',
5155 variants: [
5156 { begin: '\\b(\\d+(\\.\\d*)?|\\.\\d+)(u|U|l|L|ul|UL|f|F)' },
5157 { begin: hljs.C_NUMBER_RE }
5158 ],
5159 relevance: 0
5160 };
5161
5162 var PREPROCESSOR = {
5163 className: 'meta',
5164 begin: '#', end: '$',
5165 keywords: {'meta-keyword': 'if else elif endif define undef warning error line ' +
5166 'pragma ifdef ifndef'},
5167 contains: [
5168 {
5169 begin: /\\\n/, relevance: 0
5170 },
5171 {
5172 beginKeywords: 'include', end: '$',
5173 keywords: {'meta-keyword': 'include'},
5174 contains: [
5175 hljs.inherit(STRINGS, {className: 'meta-string'}),
5176 {
5177 className: 'meta-string',
5178 begin: '<', end: '>',
5179 illegal: '\\n',
5180 }
5181 ]
5182 },
5183 STRINGS,
5184 hljs.C_LINE_COMMENT_MODE,
5185 hljs.C_BLOCK_COMMENT_MODE
5186 ]
5187 };
5188
5189 var FUNCTION_TITLE = hljs.IDENT_RE + '\\s*\\(';
5190
5191 var CPP_KEYWORDS = {
5192 keyword: 'int float while private char catch export virtual operator sizeof ' +
5193 'dynamic_cast|10 typedef const_cast|10 const struct for static_cast|10 union namespace ' +
5194 'unsigned long volatile static protected bool template mutable if public friend ' +
5195 'do goto auto void enum else break extern using class asm case typeid ' +
5196 'short reinterpret_cast|10 default double register explicit signed typename try this ' +
5197 'switch continue inline delete alignof constexpr decltype ' +
5198 'noexcept static_assert thread_local restrict _Bool complex _Complex _Imaginary ' +
5199 'atomic_bool atomic_char atomic_schar ' +
5200 'atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong ' +
5201 'atomic_ullong',
5202 built_in: 'std string cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream ' +
5203 'auto_ptr deque list queue stack vector map set bitset multiset multimap unordered_set ' +
5204 'unordered_map unordered_multiset unordered_multimap array shared_ptr abort abs acos ' +
5205 'asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp ' +
5206 'fscanf isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper ' +
5207 'isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow ' +
5208 'printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp ' +
5209 'strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan ' +
5210 'vfprintf vprintf vsprintf endl initializer_list unique_ptr',
5211 literal: 'true false nullptr NULL'
5212 };
5213
5214 return {
5215 aliases: ['c', 'cc', 'h', 'c++', 'h++', 'hpp'],
5216 keywords: CPP_KEYWORDS,
5217 illegal: '</',
5218 contains: [
5219 CPP_PRIMATIVE_TYPES,
5220 hljs.C_LINE_COMMENT_MODE,
5221 hljs.C_BLOCK_COMMENT_MODE,
5222 NUMBERS,
5223 STRINGS,
5224 PREPROCESSOR,
5225 {
5226 begin: '\\b(deque|list|queue|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\s*<', end: '>',
5227 keywords: CPP_KEYWORDS,
5228 contains: ['self', CPP_PRIMATIVE_TYPES]
5229 },
5230 {
5231 begin: hljs.IDENT_RE + '::',
5232 keywords: CPP_KEYWORDS
5233 },
5234 {
5235 // Expression keywords prevent 'keyword Name(...) or else if(...)' from
5236 // being recognized as a function definition
5237 beginKeywords: 'new throw return else',
5238 relevance: 0
5239 },
5240 {
5241 className: 'function',
5242 begin: '(' + hljs.IDENT_RE + '[\\*&\\s]+)+' + FUNCTION_TITLE,
5243 returnBegin: true, end: /[{;=]/,
5244 excludeEnd: true,
5245 keywords: CPP_KEYWORDS,
5246 illegal: /[^\w\s\*&]/,
5247 contains: [
5248 {
5249 begin: FUNCTION_TITLE, returnBegin: true,
5250 contains: [hljs.TITLE_MODE],
5251 relevance: 0
5252 },
5253 {
5254 className: 'params',
5255 begin: /\(/, end: /\)/,
5256 keywords: CPP_KEYWORDS,
5257 relevance: 0,
5258 contains: [
5259 hljs.C_LINE_COMMENT_MODE,
5260 hljs.C_BLOCK_COMMENT_MODE,
5261 STRINGS,
5262 NUMBERS
5263 ]
5264 },
5265 hljs.C_LINE_COMMENT_MODE,
5266 hljs.C_BLOCK_COMMENT_MODE,
5267 PREPROCESSOR
5268 ]
5269 }
5270 ]
5271 };
5272}
5273},{name:"crmsh",create:/*
5274Language: crmsh
5275Author: Kristoffer Gronlund <kgronlund@suse.com>
5276Website: http://crmsh.github.io
5277Description: Syntax Highlighting for the crmsh DSL
5278Category: config
5279*/
5280
5281function(hljs) {
5282 var RESOURCES = 'primitive rsc_template';
5283
5284 var COMMANDS = 'group clone ms master location colocation order fencing_topology ' +
5285 'rsc_ticket acl_target acl_group user role ' +
5286 'tag xml';
5287
5288 var PROPERTY_SETS = 'property rsc_defaults op_defaults';
5289
5290 var KEYWORDS = 'params meta operations op rule attributes utilization';
5291
5292 var OPERATORS = 'read write deny defined not_defined in_range date spec in ' +
5293 'ref reference attribute type xpath version and or lt gt tag ' +
5294 'lte gte eq ne \\';
5295
5296 var TYPES = 'number string';
5297
5298 var LITERALS = 'Master Started Slave Stopped start promote demote stop monitor true false';
5299
5300 return {
5301 aliases: ['crm', 'pcmk'],
5302 case_insensitive: true,
5303 keywords: {
5304 keyword: KEYWORDS + ' ' + OPERATORS + ' ' + TYPES,
5305 literal: LITERALS
5306 },
5307 contains: [
5308 hljs.HASH_COMMENT_MODE,
5309 {
5310 beginKeywords: 'node',
5311 starts: {
5312 end: '\\s*([\\w_-]+:)?',
5313 starts: {
5314 className: 'title',
5315 end: '\\s*[\\$\\w_][\\w_-]*'
5316 }
5317 }
5318 },
5319 {
5320 beginKeywords: RESOURCES,
5321 starts: {
5322 className: 'title',
5323 end: '\\s*[\\$\\w_][\\w_-]*',
5324 starts: {
5325 end: '\\s*@?[\\w_][\\w_\\.:-]*'
5326 }
5327 }
5328 },
5329 {
5330 begin: '\\b(' + COMMANDS.split(' ').join('|') + ')\\s+',
5331 keywords: COMMANDS,
5332 starts: {
5333 className: 'title',
5334 end: '[\\$\\w_][\\w_-]*'
5335 }
5336 },
5337 {
5338 beginKeywords: PROPERTY_SETS,
5339 starts: {
5340 className: 'title',
5341 end: '\\s*([\\w_-]+:)?'
5342 }
5343 },
5344 hljs.QUOTE_STRING_MODE,
5345 {
5346 className: 'meta',
5347 begin: '(ocf|systemd|service|lsb):[\\w_:-]+',
5348 relevance: 0
5349 },
5350 {
5351 className: 'number',
5352 begin: '\\b\\d+(\\.\\d+)?(ms|s|h|m)?',
5353 relevance: 0
5354 },
5355 {
5356 className: 'literal',
5357 begin: '[-]?(infinity|inf)',
5358 relevance: 0
5359 },
5360 {
5361 className: 'attr',
5362 begin: /([A-Za-z\$_\#][\w_-]+)=/,
5363 relevance: 0
5364 },
5365 {
5366 className: 'tag',
5367 begin: '</?',
5368 end: '/?>',
5369 relevance: 0
5370 }
5371 ]
5372 };
5373}
5374},{name:"crystal",create:/*
5375Language: Crystal
5376Author: TSUYUSATO Kitsune <make.just.on@gmail.com>
5377*/
5378
5379function(hljs) {
5380 var NUM_SUFFIX = '(_[uif](8|16|32|64))?';
5381 var CRYSTAL_IDENT_RE = '[a-zA-Z_]\\w*[!?=]?';
5382 var RE_STARTER = '!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|' +
5383 '>>|>|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~';
5384 var CRYSTAL_METHOD_RE = '[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\][=?]?';
5385 var CRYSTAL_KEYWORDS = {
5386 keyword:
5387 'abstract alias as asm begin break case class def do else elsif end ensure enum extend for fun if ifdef ' +
5388 'include instance_sizeof is_a? lib macro module next of out pointerof private protected rescue responds_to? ' +
5389 'return require self sizeof struct super then type typeof union unless until when while with yield ' +
5390 '__DIR__ __FILE__ __LINE__',
5391 literal: 'false nil true'
5392 };
5393 var SUBST = {
5394 className: 'subst',
5395 begin: '#{', end: '}',
5396 keywords: CRYSTAL_KEYWORDS
5397 };
5398 var EXPANSION = {
5399 className: 'template-variable',
5400 variants: [
5401 {begin: '\\{\\{', end: '\\}\\}'},
5402 {begin: '\\{%', end: '%\\}'}
5403 ],
5404 keywords: CRYSTAL_KEYWORDS,
5405 relevance: 10
5406 };
5407
5408 function recursiveParen(begin, end) {
5409 var
5410 contains = [{begin: begin, end: end}];
5411 contains[0].contains = contains;
5412 return contains;
5413 }
5414 var STRING = {
5415 className: 'string',
5416 contains: [hljs.BACKSLASH_ESCAPE, SUBST],
5417 variants: [
5418 {begin: /'/, end: /'/},
5419 {begin: /"/, end: /"/},
5420 {begin: /`/, end: /`/},
5421 {begin: '%w?\\(', end: '\\)', contains: recursiveParen('\\(', '\\)')},
5422 {begin: '%w?\\[', end: '\\]', contains: recursiveParen('\\[', '\\]')},
5423 {begin: '%w?{', end: '}', contains: recursiveParen('{', '}')},
5424 {begin: '%w?<', end: '>', contains: recursiveParen('<', '>')},
5425 {begin: '%w?/', end: '/'},
5426 {begin: '%w?%', end: '%'},
5427 {begin: '%w?-', end: '-'},
5428 {begin: '%w?\\|', end: '\\|'},
5429 ],
5430 relevance: 0,
5431 };
5432 var REGEXP = {
5433 begin: '(' + RE_STARTER + ')\\s*',
5434 contains: [
5435 {
5436 className: 'regexp',
5437 contains: [hljs.BACKSLASH_ESCAPE, SUBST],
5438 variants: [
5439 {begin: '/', end: '/[a-z]*'},
5440 {begin: '%r\\(', end: '\\)', contains: recursiveParen('\\(', '\\)')},
5441 {begin: '%r\\[', end: '\\]', contains: recursiveParen('\\[', '\\]')},
5442 {begin: '%r{', end: '}', contains: recursiveParen('{', '}')},
5443 {begin: '%r<', end: '>', contains: recursiveParen('<', '>')},
5444 {begin: '%r/', end: '/'},
5445 {begin: '%r%', end: '%'},
5446 {begin: '%r-', end: '-'},
5447 {begin: '%r\\|', end: '\\|'},
5448 ]
5449 }
5450 ],
5451 relevance: 0
5452 };
5453 var REGEXP2 = {
5454 className: 'regexp',
5455 contains: [hljs.BACKSLASH_ESCAPE, SUBST],
5456 variants: [
5457 {begin: '%r\\(', end: '\\)', contains: recursiveParen('\\(', '\\)')},
5458 {begin: '%r\\[', end: '\\]', contains: recursiveParen('\\[', '\\]')},
5459 {begin: '%r{', end: '}', contains: recursiveParen('{', '}')},
5460 {begin: '%r<', end: '>', contains: recursiveParen('<', '>')},
5461 {begin: '%r/', end: '/'},
5462 {begin: '%r%', end: '%'},
5463 {begin: '%r-', end: '-'},
5464 {begin: '%r\\|', end: '\\|'},
5465 ],
5466 relevance: 0
5467 };
5468 var ATTRIBUTE = {
5469 className: 'meta',
5470 begin: '@\\[', end: '\\]',
5471 relevance: 5
5472 };
5473 var CRYSTAL_DEFAULT_CONTAINS = [
5474 EXPANSION,
5475 STRING,
5476 REGEXP,
5477 REGEXP2,
5478 ATTRIBUTE,
5479 hljs.HASH_COMMENT_MODE,
5480 {
5481 className: 'class',
5482 beginKeywords: 'class module struct', end: '$|;',
5483 illegal: /=/,
5484 contains: [
5485 hljs.HASH_COMMENT_MODE,
5486 hljs.inherit(hljs.TITLE_MODE, {begin: '[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?'}),
5487 {begin: '<'} // relevance booster for inheritance
5488 ]
5489 },
5490 {
5491 className: 'class',
5492 beginKeywords: 'lib enum union', end: '$|;',
5493 illegal: /=/,
5494 contains: [
5495 hljs.HASH_COMMENT_MODE,
5496 hljs.inherit(hljs.TITLE_MODE, {begin: '[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?'}),
5497 ],
5498 relevance: 10
5499 },
5500 {
5501 className: 'function',
5502 beginKeywords: 'def', end: /\B\b/,
5503 contains: [
5504 hljs.inherit(hljs.TITLE_MODE, {
5505 begin: CRYSTAL_METHOD_RE,
5506 endsParent: true
5507 })
5508 ]
5509 },
5510 {
5511 className: 'function',
5512 beginKeywords: 'fun macro', end: /\B\b/,
5513 contains: [
5514 hljs.inherit(hljs.TITLE_MODE, {
5515 begin: CRYSTAL_METHOD_RE,
5516 endsParent: true
5517 })
5518 ],
5519 relevance: 5
5520 },
5521 {
5522 className: 'symbol',
5523 begin: hljs.UNDERSCORE_IDENT_RE + '(\\!|\\?)?:',
5524 relevance: 0
5525 },
5526 {
5527 className: 'symbol',
5528 begin: ':',
5529 contains: [STRING, {begin: CRYSTAL_METHOD_RE}],
5530 relevance: 0
5531 },
5532 {
5533 className: 'number',
5534 variants: [
5535 { begin: '\\b0b([01_]*[01])' + NUM_SUFFIX },
5536 { begin: '\\b0o([0-7_]*[0-7])' + NUM_SUFFIX },
5537 { begin: '\\b0x([A-Fa-f0-9_]*[A-Fa-f0-9])' + NUM_SUFFIX },
5538 { begin: '\\b(([0-9][0-9_]*[0-9]|[0-9])(\\.[0-9_]*[0-9])?([eE][+-]?[0-9_]*[0-9])?)' + NUM_SUFFIX}
5539 ],
5540 relevance: 0
5541 }
5542 ];
5543 SUBST.contains = CRYSTAL_DEFAULT_CONTAINS;
5544 ATTRIBUTE.contains = CRYSTAL_DEFAULT_CONTAINS;
5545 EXPANSION.contains = CRYSTAL_DEFAULT_CONTAINS.slice(1); // without EXPANSION
5546
5547 return {
5548 aliases: ['cr'],
5549 lexemes: CRYSTAL_IDENT_RE,
5550 keywords: CRYSTAL_KEYWORDS,
5551 contains: CRYSTAL_DEFAULT_CONTAINS
5552 };
5553}
5554},{name:"cs",create:/*
5555Language: C#
5556Author: Jason Diamond <jason@diamond.name>
5557Category: common
5558*/
5559
5560function(hljs) {
5561 var KEYWORDS =
5562 // Normal keywords.
5563 'abstract as base bool break byte case catch char checked const continue decimal dynamic ' +
5564 'default delegate do double else enum event explicit extern false finally fixed float ' +
5565 'for foreach goto if implicit in int interface internal is lock long null when ' +
5566 'object operator out override params private protected public readonly ref sbyte ' +
5567 'sealed short sizeof stackalloc static string struct switch this true try typeof ' +
5568 'uint ulong unchecked unsafe ushort using virtual volatile void while async ' +
5569 'protected public private internal ' +
5570 // Contextual keywords.
5571 'ascending descending from get group into join let orderby partial select set value var ' +
5572 'where yield';
5573 var GENERIC_IDENT_RE = hljs.IDENT_RE + '(<' + hljs.IDENT_RE + '>)?';
5574 return {
5575 aliases: ['csharp'],
5576 keywords: KEYWORDS,
5577 illegal: /::/,
5578 contains: [
5579 hljs.COMMENT(
5580 '///',
5581 '$',
5582 {
5583 returnBegin: true,
5584 contains: [
5585 {
5586 className: 'doctag',
5587 variants: [
5588 {
5589 begin: '///', relevance: 0
5590 },
5591 {
5592 begin: '<!--|-->'
5593 },
5594 {
5595 begin: '</?', end: '>'
5596 }
5597 ]
5598 }
5599 ]
5600 }
5601 ),
5602 hljs.C_LINE_COMMENT_MODE,
5603 hljs.C_BLOCK_COMMENT_MODE,
5604 {
5605 className: 'meta',
5606 begin: '#', end: '$',
5607 keywords: {'meta-keyword': 'if else elif endif define undef warning error line region endregion pragma checksum'}
5608 },
5609 {
5610 className: 'string',
5611 begin: '@"', end: '"',
5612 contains: [{begin: '""'}]
5613 },
5614 hljs.APOS_STRING_MODE,
5615 hljs.QUOTE_STRING_MODE,
5616 hljs.C_NUMBER_MODE,
5617 {
5618 beginKeywords: 'class interface', end: /[{;=]/,
5619 illegal: /[^\s:]/,
5620 contains: [
5621 hljs.TITLE_MODE,
5622 hljs.C_LINE_COMMENT_MODE,
5623 hljs.C_BLOCK_COMMENT_MODE
5624 ]
5625 },
5626 {
5627 beginKeywords: 'namespace', end: /[{;=]/,
5628 illegal: /[^\s:]/,
5629 contains: [
5630 hljs.inherit(hljs.TITLE_MODE, {begin: '[a-zA-Z](\\.?\\w)*'}),
5631 hljs.C_LINE_COMMENT_MODE,
5632 hljs.C_BLOCK_COMMENT_MODE
5633 ]
5634 },
5635 {
5636 // Expression keywords prevent 'keyword Name(...)' from being
5637 // recognized as a function definition
5638 beginKeywords: 'new return throw await',
5639 relevance: 0
5640 },
5641 {
5642 className: 'function',
5643 begin: '(' + GENERIC_IDENT_RE + '\\s+)+' + hljs.IDENT_RE + '\\s*\\(', returnBegin: true, end: /[{;=]/,
5644 excludeEnd: true,
5645 keywords: KEYWORDS,
5646 contains: [
5647 {
5648 begin: hljs.IDENT_RE + '\\s*\\(', returnBegin: true,
5649 contains: [hljs.TITLE_MODE],
5650 relevance: 0
5651 },
5652 {
5653 className: 'params',
5654 begin: /\(/, end: /\)/,
5655 excludeBegin: true,
5656 excludeEnd: true,
5657 keywords: KEYWORDS,
5658 relevance: 0,
5659 contains: [
5660 hljs.APOS_STRING_MODE,
5661 hljs.QUOTE_STRING_MODE,
5662 hljs.C_NUMBER_MODE,
5663 hljs.C_BLOCK_COMMENT_MODE
5664 ]
5665 },
5666 hljs.C_LINE_COMMENT_MODE,
5667 hljs.C_BLOCK_COMMENT_MODE
5668 ]
5669 }
5670 ]
5671 };
5672}
5673},{name:"css",create:/*
5674Language: CSS
5675Category: common, css
5676*/
5677
5678function(hljs) {
5679 var IDENT_RE = '[a-zA-Z-][a-zA-Z0-9_-]*';
5680 var RULE = {
5681 begin: /[A-Z\_\.\-]+\s*:/, returnBegin: true, end: ';', endsWithParent: true,
5682 contains: [
5683 {
5684 className: 'attribute',
5685 begin: /\S/, end: ':', excludeEnd: true,
5686 starts: {
5687 endsWithParent: true, excludeEnd: true,
5688 contains: [
5689 {
5690 begin: /[\w-]+\s*\(/, returnBegin: true,
5691 contains: [
5692 {
5693 className: 'built_in',
5694 begin: /[\w-]+/
5695 }
5696 ]
5697 },
5698 hljs.CSS_NUMBER_MODE,
5699 hljs.QUOTE_STRING_MODE,
5700 hljs.APOS_STRING_MODE,
5701 hljs.C_BLOCK_COMMENT_MODE,
5702 {
5703 className: 'number', begin: '#[0-9A-Fa-f]+'
5704 },
5705 {
5706 className: 'meta', begin: '!important'
5707 }
5708 ]
5709 }
5710 }
5711 ]
5712 };
5713
5714 return {
5715 case_insensitive: true,
5716 illegal: /[=\/|'\$]/,
5717 contains: [
5718 hljs.C_BLOCK_COMMENT_MODE,
5719 {
5720 className: 'selector-id', begin: /#[A-Za-z0-9_-]+/
5721 },
5722 {
5723 className: 'selector-class', begin: /\.[A-Za-z0-9_-]+/
5724 },
5725 {
5726 className: 'selector-attr',
5727 begin: /\[/, end: /\]/,
5728 illegal: '$'
5729 },
5730 {
5731 className: 'selector-pseudo',
5732 begin: /:(:)?[a-zA-Z0-9\_\-\+\(\)"']+/
5733 },
5734 {
5735 begin: '@(font-face|page)',
5736 lexemes: '[a-z-]+',
5737 keywords: 'font-face page'
5738 },
5739 {
5740 begin: '@', end: '[{;]', // at_rule eating first "{" is a good thing
5741 // because it doesn’t let it to be parsed as
5742 // a rule set but instead drops parser into
5743 // the default mode which is how it should be.
5744 contains: [
5745 {
5746 className: 'keyword',
5747 begin: /\S+/
5748 },
5749 {
5750 begin: /\s/, endsWithParent: true, excludeEnd: true,
5751 relevance: 0,
5752 contains: [
5753 hljs.APOS_STRING_MODE, hljs.QUOTE_STRING_MODE,
5754 hljs.CSS_NUMBER_MODE
5755 ]
5756 }
5757 ]
5758 },
5759 {
5760 className: 'selector-tag', begin: IDENT_RE,
5761 relevance: 0
5762 },
5763 {
5764 begin: '{', end: '}',
5765 illegal: /\S/,
5766 contains: [
5767 hljs.C_BLOCK_COMMENT_MODE,
5768 RULE,
5769 ]
5770 }
5771 ]
5772 };
5773}
5774},{name:"d",create:/*
5775Language: D
5776Author: Aleksandar Ruzicic <aleksandar@ruzicic.info>
5777Description: D is a language with C-like syntax and static typing. It pragmatically combines efficiency, control, and modeling power, with safety and programmer productivity.
5778Version: 1.0a
5779Date: 2012-04-08
5780*/
5781
5782/**
5783 * Known issues:
5784 *
5785 * - invalid hex string literals will be recognized as a double quoted strings
5786 * but 'x' at the beginning of string will not be matched
5787 *
5788 * - delimited string literals are not checked for matching end delimiter
5789 * (not possible to do with js regexp)
5790 *
5791 * - content of token string is colored as a string (i.e. no keyword coloring inside a token string)
5792 * also, content of token string is not validated to contain only valid D tokens
5793 *
5794 * - special token sequence rule is not strictly following D grammar (anything following #line
5795 * up to the end of line is matched as special token sequence)
5796 */
5797
5798function(hljs) {
5799 /**
5800 * Language keywords
5801 *
5802 * @type {Object}
5803 */
5804 var D_KEYWORDS = {
5805 keyword:
5806 'abstract alias align asm assert auto body break byte case cast catch class ' +
5807 'const continue debug default delete deprecated do else enum export extern final ' +
5808 'finally for foreach foreach_reverse|10 goto if immutable import in inout int ' +
5809 'interface invariant is lazy macro mixin module new nothrow out override package ' +
5810 'pragma private protected public pure ref return scope shared static struct ' +
5811 'super switch synchronized template this throw try typedef typeid typeof union ' +
5812 'unittest version void volatile while with __FILE__ __LINE__ __gshared|10 ' +
5813 '__thread __traits __DATE__ __EOF__ __TIME__ __TIMESTAMP__ __VENDOR__ __VERSION__',
5814 built_in:
5815 'bool cdouble cent cfloat char creal dchar delegate double dstring float function ' +
5816 'idouble ifloat ireal long real short string ubyte ucent uint ulong ushort wchar ' +
5817 'wstring',
5818 literal:
5819 'false null true'
5820 };
5821
5822 /**
5823 * Number literal regexps
5824 *
5825 * @type {String}
5826 */
5827 var decimal_integer_re = '(0|[1-9][\\d_]*)',
5828 decimal_integer_nosus_re = '(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d)',
5829 binary_integer_re = '0[bB][01_]+',
5830 hexadecimal_digits_re = '([\\da-fA-F][\\da-fA-F_]*|_[\\da-fA-F][\\da-fA-F_]*)',
5831 hexadecimal_integer_re = '0[xX]' + hexadecimal_digits_re,
5832
5833 decimal_exponent_re = '([eE][+-]?' + decimal_integer_nosus_re + ')',
5834 decimal_float_re = '(' + decimal_integer_nosus_re + '(\\.\\d*|' + decimal_exponent_re + ')|' +
5835 '\\d+\\.' + decimal_integer_nosus_re + decimal_integer_nosus_re + '|' +
5836 '\\.' + decimal_integer_re + decimal_exponent_re + '?' +
5837 ')',
5838 hexadecimal_float_re = '(0[xX](' +
5839 hexadecimal_digits_re + '\\.' + hexadecimal_digits_re + '|'+
5840 '\\.?' + hexadecimal_digits_re +
5841 ')[pP][+-]?' + decimal_integer_nosus_re + ')',
5842
5843 integer_re = '(' +
5844 decimal_integer_re + '|' +
5845 binary_integer_re + '|' +
5846 hexadecimal_integer_re +
5847 ')',
5848
5849 float_re = '(' +
5850 hexadecimal_float_re + '|' +
5851 decimal_float_re +
5852 ')';
5853
5854 /**
5855 * Escape sequence supported in D string and character literals
5856 *
5857 * @type {String}
5858 */
5859 var escape_sequence_re = '\\\\(' +
5860 '[\'"\\?\\\\abfnrtv]|' + // common escapes
5861 'u[\\dA-Fa-f]{4}|' + // four hex digit unicode codepoint
5862 '[0-7]{1,3}|' + // one to three octal digit ascii char code
5863 'x[\\dA-Fa-f]{2}|' + // two hex digit ascii char code
5864 'U[\\dA-Fa-f]{8}' + // eight hex digit unicode codepoint
5865 ')|' +
5866 '&[a-zA-Z\\d]{2,};'; // named character entity
5867
5868 /**
5869 * D integer number literals
5870 *
5871 * @type {Object}
5872 */
5873 var D_INTEGER_MODE = {
5874 className: 'number',
5875 begin: '\\b' + integer_re + '(L|u|U|Lu|LU|uL|UL)?',
5876 relevance: 0
5877 };
5878
5879 /**
5880 * [D_FLOAT_MODE description]
5881 * @type {Object}
5882 */
5883 var D_FLOAT_MODE = {
5884 className: 'number',
5885 begin: '\\b(' +
5886 float_re + '([fF]|L|i|[fF]i|Li)?|' +
5887 integer_re + '(i|[fF]i|Li)' +
5888 ')',
5889 relevance: 0
5890 };
5891
5892 /**
5893 * D character literal
5894 *
5895 * @type {Object}
5896 */
5897 var D_CHARACTER_MODE = {
5898 className: 'string',
5899 begin: '\'(' + escape_sequence_re + '|.)', end: '\'',
5900 illegal: '.'
5901 };
5902
5903 /**
5904 * D string escape sequence
5905 *
5906 * @type {Object}
5907 */
5908 var D_ESCAPE_SEQUENCE = {
5909 begin: escape_sequence_re,
5910 relevance: 0
5911 };
5912
5913 /**
5914 * D double quoted string literal
5915 *
5916 * @type {Object}
5917 */
5918 var D_STRING_MODE = {
5919 className: 'string',
5920 begin: '"',
5921 contains: [D_ESCAPE_SEQUENCE],
5922 end: '"[cwd]?'
5923 };
5924
5925 /**
5926 * D wysiwyg and delimited string literals
5927 *
5928 * @type {Object}
5929 */
5930 var D_WYSIWYG_DELIMITED_STRING_MODE = {
5931 className: 'string',
5932 begin: '[rq]"',
5933 end: '"[cwd]?',
5934 relevance: 5
5935 };
5936
5937 /**
5938 * D alternate wysiwyg string literal
5939 *
5940 * @type {Object}
5941 */
5942 var D_ALTERNATE_WYSIWYG_STRING_MODE = {
5943 className: 'string',
5944 begin: '`',
5945 end: '`[cwd]?'
5946 };
5947
5948 /**
5949 * D hexadecimal string literal
5950 *
5951 * @type {Object}
5952 */
5953 var D_HEX_STRING_MODE = {
5954 className: 'string',
5955 begin: 'x"[\\da-fA-F\\s\\n\\r]*"[cwd]?',
5956 relevance: 10
5957 };
5958
5959 /**
5960 * D delimited string literal
5961 *
5962 * @type {Object}
5963 */
5964 var D_TOKEN_STRING_MODE = {
5965 className: 'string',
5966 begin: 'q"\\{',
5967 end: '\\}"'
5968 };
5969
5970 /**
5971 * Hashbang support
5972 *
5973 * @type {Object}
5974 */
5975 var D_HASHBANG_MODE = {
5976 className: 'meta',
5977 begin: '^#!',
5978 end: '$',
5979 relevance: 5
5980 };
5981
5982 /**
5983 * D special token sequence
5984 *
5985 * @type {Object}
5986 */
5987 var D_SPECIAL_TOKEN_SEQUENCE_MODE = {
5988 className: 'meta',
5989 begin: '#(line)',
5990 end: '$',
5991 relevance: 5
5992 };
5993
5994 /**
5995 * D attributes
5996 *
5997 * @type {Object}
5998 */
5999 var D_ATTRIBUTE_MODE = {
6000 className: 'keyword',
6001 begin: '@[a-zA-Z_][a-zA-Z_\\d]*'
6002 };
6003
6004 /**
6005 * D nesting comment
6006 *
6007 * @type {Object}
6008 */
6009 var D_NESTING_COMMENT_MODE = hljs.COMMENT(
6010 '\\/\\+',
6011 '\\+\\/',
6012 {
6013 contains: ['self'],
6014 relevance: 10
6015 }
6016 );
6017
6018 return {
6019 lexemes: hljs.UNDERSCORE_IDENT_RE,
6020 keywords: D_KEYWORDS,
6021 contains: [
6022 hljs.C_LINE_COMMENT_MODE,
6023 hljs.C_BLOCK_COMMENT_MODE,
6024 D_NESTING_COMMENT_MODE,
6025 D_HEX_STRING_MODE,
6026 D_STRING_MODE,
6027 D_WYSIWYG_DELIMITED_STRING_MODE,
6028 D_ALTERNATE_WYSIWYG_STRING_MODE,
6029 D_TOKEN_STRING_MODE,
6030 D_FLOAT_MODE,
6031 D_INTEGER_MODE,
6032 D_CHARACTER_MODE,
6033 D_HASHBANG_MODE,
6034 D_SPECIAL_TOKEN_SEQUENCE_MODE,
6035 D_ATTRIBUTE_MODE
6036 ]
6037 };
6038}
6039},{name:"dart",create:/*
6040Language: Dart
6041Requires: markdown.js
6042Author: Maxim Dikun <dikmax@gmail.com>
6043Description: Dart is a JavaScript replacement language developed by Google. For more information see http://dartlang.org/
6044Category: scripting
6045*/
6046
6047function (hljs) {
6048 var SUBST = {
6049 className: 'subst',
6050 begin: '\\$\\{', end: '}',
6051 keywords: 'true false null this is new super'
6052 };
6053
6054 var STRING = {
6055 className: 'string',
6056 variants: [
6057 {
6058 begin: 'r\'\'\'', end: '\'\'\''
6059 },
6060 {
6061 begin: 'r"""', end: '"""'
6062 },
6063 {
6064 begin: 'r\'', end: '\'',
6065 illegal: '\\n'
6066 },
6067 {
6068 begin: 'r"', end: '"',
6069 illegal: '\\n'
6070 },
6071 {
6072 begin: '\'\'\'', end: '\'\'\'',
6073 contains: [hljs.BACKSLASH_ESCAPE, SUBST]
6074 },
6075 {
6076 begin: '"""', end: '"""',
6077 contains: [hljs.BACKSLASH_ESCAPE, SUBST]
6078 },
6079 {
6080 begin: '\'', end: '\'',
6081 illegal: '\\n',
6082 contains: [hljs.BACKSLASH_ESCAPE, SUBST]
6083 },
6084 {
6085 begin: '"', end: '"',
6086 illegal: '\\n',
6087 contains: [hljs.BACKSLASH_ESCAPE, SUBST]
6088 }
6089 ]
6090 };
6091 SUBST.contains = [
6092 hljs.C_NUMBER_MODE, STRING
6093 ];
6094
6095 var KEYWORDS = {
6096 keyword: 'assert break case catch class const continue default do else enum extends false final finally for if ' +
6097 'in is new null rethrow return super switch this throw true try var void while with ' +
6098 'abstract as dynamic export external factory get implements import library operator part set static typedef',
6099 built_in:
6100 // dart:core
6101 'print Comparable DateTime Duration Function Iterable Iterator List Map Match Null Object Pattern RegExp Set ' +
6102 'Stopwatch String StringBuffer StringSink Symbol Type Uri bool double int num ' +
6103 // dart:html
6104 'document window querySelector querySelectorAll Element ElementList'
6105 };
6106
6107 return {
6108 keywords: KEYWORDS,
6109 contains: [
6110 STRING,
6111 hljs.COMMENT(
6112 '/\\*\\*',
6113 '\\*/',
6114 {
6115 subLanguage: 'markdown'
6116 }
6117 ),
6118 hljs.COMMENT(
6119 '///',
6120 '$',
6121 {
6122 subLanguage: 'markdown'
6123 }
6124 ),
6125 hljs.C_LINE_COMMENT_MODE,
6126 hljs.C_BLOCK_COMMENT_MODE,
6127 {
6128 className: 'class',
6129 beginKeywords: 'class interface', end: '{', excludeEnd: true,
6130 contains: [
6131 {
6132 beginKeywords: 'extends implements'
6133 },
6134 hljs.UNDERSCORE_TITLE_MODE
6135 ]
6136 },
6137 hljs.C_NUMBER_MODE,
6138 {
6139 className: 'meta', begin: '@[A-Za-z]+'
6140 },
6141 {
6142 begin: '=>' // No markup, just a relevance booster
6143 }
6144 ]
6145 }
6146}
6147
6148},{name:"delphi",create:/*
6149Language: Delphi
6150*/
6151
6152function(hljs) {
6153 var KEYWORDS =
6154 'exports register file shl array record property for mod while set ally label uses raise not ' +
6155 'stored class safecall var interface or private static exit index inherited to else stdcall ' +
6156 'override shr asm far resourcestring finalization packed virtual out and protected library do ' +
6157 'xorwrite goto near function end div overload object unit begin string on inline repeat until ' +
6158 'destructor write message program with read initialization except default nil if case cdecl in ' +
6159 'downto threadvar of try pascal const external constructor type public then implementation ' +
6160 'finally published procedure';
6161 var COMMENT_MODES = [
6162 hljs.C_LINE_COMMENT_MODE,
6163 hljs.COMMENT(
6164 /\{/,
6165 /\}/,
6166 {
6167 relevance: 0
6168 }
6169 ),
6170 hljs.COMMENT(
6171 /\(\*/,
6172 /\*\)/,
6173 {
6174 relevance: 10
6175 }
6176 )
6177 ];
6178 var STRING = {
6179 className: 'string',
6180 begin: /'/, end: /'/,
6181 contains: [{begin: /''/}]
6182 };
6183 var CHAR_STRING = {
6184 className: 'string', begin: /(#\d+)+/
6185 };
6186 var CLASS = {
6187 begin: hljs.IDENT_RE + '\\s*=\\s*class\\s*\\(', returnBegin: true,
6188 contains: [
6189 hljs.TITLE_MODE
6190 ]
6191 };
6192 var FUNCTION = {
6193 className: 'function',
6194 beginKeywords: 'function constructor destructor procedure', end: /[:;]/,
6195 keywords: 'function constructor|10 destructor|10 procedure|10',
6196 contains: [
6197 hljs.TITLE_MODE,
6198 {
6199 className: 'params',
6200 begin: /\(/, end: /\)/,
6201 keywords: KEYWORDS,
6202 contains: [STRING, CHAR_STRING]
6203 }
6204 ].concat(COMMENT_MODES)
6205 };
6206 return {
6207 case_insensitive: true,
6208 keywords: KEYWORDS,
6209 illegal: /"|\$[G-Zg-z]|\/\*|<\/|\|/,
6210 contains: [
6211 STRING, CHAR_STRING,
6212 hljs.NUMBER_MODE,
6213 CLASS,
6214 FUNCTION
6215 ].concat(COMMENT_MODES)
6216 };
6217}
6218},{name:"diff",create:/*
6219Language: Diff
6220Description: Unified and context diff
6221Author: Vasily Polovnyov <vast@whiteants.net>
6222Category: common
6223*/
6224
6225function(hljs) {
6226 return {
6227 aliases: ['patch'],
6228 contains: [
6229 {
6230 className: 'meta',
6231 relevance: 10,
6232 variants: [
6233 {begin: /^@@ +\-\d+,\d+ +\+\d+,\d+ +@@$/},
6234 {begin: /^\*\*\* +\d+,\d+ +\*\*\*\*$/},
6235 {begin: /^\-\-\- +\d+,\d+ +\-\-\-\-$/}
6236 ]
6237 },
6238 {
6239 className: 'comment',
6240 variants: [
6241 {begin: /Index: /, end: /$/},
6242 {begin: /=====/, end: /=====$/},
6243 {begin: /^\-\-\-/, end: /$/},
6244 {begin: /^\*{3} /, end: /$/},
6245 {begin: /^\+\+\+/, end: /$/},
6246 {begin: /\*{5}/, end: /\*{5}$/}
6247 ]
6248 },
6249 {
6250 className: 'addition',
6251 begin: '^\\+', end: '$'
6252 },
6253 {
6254 className: 'deletion',
6255 begin: '^\\-', end: '$'
6256 },
6257 {
6258 className: 'addition',
6259 begin: '^\\!', end: '$'
6260 }
6261 ]
6262 };
6263}
6264},{name:"django",create:/*
6265Language: Django
6266Requires: xml.js
6267Author: Ivan Sagalaev <maniac@softwaremaniacs.org>
6268Contributors: Ilya Baryshev <baryshev@gmail.com>
6269Category: template
6270*/
6271
6272function(hljs) {
6273 var FILTER = {
6274 begin: /\|[A-Za-z]+:?/,
6275 keywords: {
6276 name:
6277 'truncatewords removetags linebreaksbr yesno get_digit timesince random striptags ' +
6278 'filesizeformat escape linebreaks length_is ljust rjust cut urlize fix_ampersands ' +
6279 'title floatformat capfirst pprint divisibleby add make_list unordered_list urlencode ' +
6280 'timeuntil urlizetrunc wordcount stringformat linenumbers slice date dictsort ' +
6281 'dictsortreversed default_if_none pluralize lower join center default ' +
6282 'truncatewords_html upper length phone2numeric wordwrap time addslashes slugify first ' +
6283 'escapejs force_escape iriencode last safe safeseq truncatechars localize unlocalize ' +
6284 'localtime utc timezone'
6285 },
6286 contains: [
6287 hljs.QUOTE_STRING_MODE,
6288 hljs.APOS_STRING_MODE
6289 ]
6290 };
6291
6292 return {
6293 aliases: ['jinja'],
6294 case_insensitive: true,
6295 subLanguage: 'xml',
6296 contains: [
6297 hljs.COMMENT(/\{%\s*comment\s*%}/, /\{%\s*endcomment\s*%}/),
6298 hljs.COMMENT(/\{#/, /#}/),
6299 {
6300 className: 'template-tag',
6301 begin: /\{%/, end: /%}/,
6302 contains: [
6303 {
6304 className: 'name',
6305 begin: /\w+/,
6306 keywords: {
6307 name:
6308 'comment endcomment load templatetag ifchanged endifchanged if endif firstof for ' +
6309 'endfor ifnotequal endifnotequal widthratio extends include spaceless ' +
6310 'endspaceless regroup ifequal endifequal ssi now with cycle url filter ' +
6311 'endfilter debug block endblock else autoescape endautoescape csrf_token empty elif ' +
6312 'endwith static trans blocktrans endblocktrans get_static_prefix get_media_prefix ' +
6313 'plural get_current_language language get_available_languages ' +
6314 'get_current_language_bidi get_language_info get_language_info_list localize ' +
6315 'endlocalize localtime endlocaltime timezone endtimezone get_current_timezone ' +
6316 'verbatim'
6317 },
6318 starts: {
6319 endsWithParent: true,
6320 keywords: 'in by as',
6321 contains: [FILTER],
6322 relevance: 0
6323 }
6324 }
6325 ]
6326 },
6327 {
6328 className: 'template-variable',
6329 begin: /\{\{/, end: /}}/,
6330 contains: [FILTER]
6331 }
6332 ]
6333 };
6334}
6335},{name:"dns",create:/*
6336Language: DNS Zone file
6337Author: Tim Schumacher <tim@datenknoten.me>
6338Category: config
6339*/
6340
6341function(hljs) {
6342 return {
6343 aliases: ['bind', 'zone'],
6344 keywords: {
6345 keyword:
6346 'IN A AAAA AFSDB APL CAA CDNSKEY CDS CERT CNAME DHCID DLV DNAME DNSKEY DS HIP IPSECKEY KEY KX ' +
6347 'LOC MX NAPTR NS NSEC NSEC3 NSEC3PARAM PTR RRSIG RP SIG SOA SRV SSHFP TA TKEY TLSA TSIG TXT'
6348 },
6349 contains: [
6350 hljs.COMMENT(';', '$'),
6351 {
6352 className: 'meta',
6353 begin: /^\$(TTL|GENERATE|INCLUDE|ORIGIN)\b/
6354 },
6355 // IPv6
6356 {
6357 className: 'number',
6358 begin: '((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))\\b'
6359 },
6360 // IPv4
6361 {
6362 className: 'number',
6363 begin: '((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\b'
6364 },
6365 hljs.inherit(hljs.NUMBER_MODE, {begin: /\b\d+[dhwm]?/})
6366 ]
6367 };
6368}
6369},{name:"dockerfile",create:/*
6370Language: Dockerfile
6371Requires: bash.js
6372Author: Alexis Hénaut <alexis@henaut.net>
6373Description: language definition for Dockerfile files
6374Category: config
6375*/
6376
6377function(hljs) {
6378 return {
6379 aliases: ['docker'],
6380 case_insensitive: true,
6381 keywords: 'from maintainer cmd expose add copy entrypoint volume user workdir onbuild run env label',
6382 contains: [
6383 hljs.HASH_COMMENT_MODE,
6384 {
6385 keywords: 'run cmd entrypoint volume add copy workdir onbuild label',
6386 begin: /^ *(onbuild +)?(run|cmd|entrypoint|volume|add|copy|workdir|label) +/,
6387 starts: {
6388 end: /[^\\]\n/,
6389 subLanguage: 'bash'
6390 }
6391 },
6392 {
6393 keywords: 'from maintainer expose env user onbuild',
6394 begin: /^ *(onbuild +)?(from|maintainer|expose|env|user|onbuild) +/, end: /[^\\]\n/,
6395 contains: [
6396 hljs.APOS_STRING_MODE,
6397 hljs.QUOTE_STRING_MODE,
6398 hljs.NUMBER_MODE,
6399 hljs.HASH_COMMENT_MODE
6400 ]
6401 }
6402 ]
6403 }
6404}
6405},{name:"dos",create:/*
6406Language: DOS .bat
6407Author: Alexander Makarov <sam@rmcreative.ru>
6408Contributors: Anton Kochkov <anton.kochkov@gmail.com>
6409*/
6410
6411function(hljs) {
6412 var COMMENT = hljs.COMMENT(
6413 /@?rem\b/, /$/,
6414 {
6415 relevance: 10
6416 }
6417 );
6418 var LABEL = {
6419 className: 'symbol',
6420 begin: '^\\s*[A-Za-z._?][A-Za-z0-9_$#@~.?]*(:|\\s+label)',
6421 relevance: 0
6422 };
6423 return {
6424 aliases: ['bat', 'cmd'],
6425 case_insensitive: true,
6426 illegal: /\/\*/,
6427 keywords: {
6428 keyword:
6429 'if else goto for in do call exit not exist errorlevel defined ' +
6430 'equ neq lss leq gtr geq',
6431 built_in:
6432 'prn nul lpt3 lpt2 lpt1 con com4 com3 com2 com1 aux ' +
6433 'shift cd dir echo setlocal endlocal set pause copy ' +
6434 'append assoc at attrib break cacls cd chcp chdir chkdsk chkntfs cls cmd color ' +
6435 'comp compact convert date dir diskcomp diskcopy doskey erase fs ' +
6436 'find findstr format ftype graftabl help keyb label md mkdir mode more move path ' +
6437 'pause print popd pushd promt rd recover rem rename replace restore rmdir shift' +
6438 'sort start subst time title tree type ver verify vol ' +
6439 // winutils
6440 'ping net ipconfig taskkill xcopy ren del'
6441 },
6442 contains: [
6443 {
6444 className: 'variable', begin: /%%[^ ]|%[^ ]+?%|![^ ]+?!/
6445 },
6446 {
6447 className: 'function',
6448 begin: LABEL.begin, end: 'goto:eof',
6449 contains: [
6450 hljs.inherit(hljs.TITLE_MODE, {begin: '([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*'}),
6451 COMMENT
6452 ]
6453 },
6454 {
6455 className: 'number', begin: '\\b\\d+',
6456 relevance: 0
6457 },
6458 COMMENT
6459 ]
6460 };
6461}
6462},{name:"dust",create:/*
6463Language: Dust
6464Requires: xml.js
6465Author: Michael Allen <michael.allen@benefitfocus.com>
6466Description: Matcher for dust.js templates.
6467Category: template
6468*/
6469
6470function(hljs) {
6471 var EXPRESSION_KEYWORDS = 'if eq ne lt lte gt gte select default math sep';
6472 return {
6473 aliases: ['dst'],
6474 case_insensitive: true,
6475 subLanguage: 'xml',
6476 contains: [
6477 {
6478 className: 'template-tag',
6479 begin: /\{[#\/]/, end: /\}/, illegal: /;/,
6480 contains: [
6481 {
6482 className: 'name',
6483 begin: /[a-zA-Z\.-]+/,
6484 starts: {
6485 endsWithParent: true, relevance: 0,
6486 contains: [
6487 hljs.QUOTE_STRING_MODE
6488 ]
6489 }
6490 }
6491 ]
6492 },
6493 {
6494 className: 'template-variable',
6495 begin: /\{/, end: /\}/, illegal: /;/,
6496 keywords: EXPRESSION_KEYWORDS
6497 }
6498 ]
6499 };
6500}
6501},{name:"elixir",create:/*
6502Language: Elixir
6503Author: Josh Adams <josh@isotope11.com>
6504Description: language definition for Elixir source code files (.ex and .exs). Based on ruby language support.
6505Category: functional
6506*/
6507
6508function(hljs) {
6509 var ELIXIR_IDENT_RE = '[a-zA-Z_][a-zA-Z0-9_]*(\\!|\\?)?';
6510 var ELIXIR_METHOD_RE = '[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?';
6511 var ELIXIR_KEYWORDS =
6512 'and false then defined module in return redo retry end for true self when ' +
6513 'next until do begin unless nil break not case cond alias while ensure or ' +
6514 'include use alias fn quote';
6515 var SUBST = {
6516 className: 'subst',
6517 begin: '#\\{', end: '}',
6518 lexemes: ELIXIR_IDENT_RE,
6519 keywords: ELIXIR_KEYWORDS
6520 };
6521 var STRING = {
6522 className: 'string',
6523 contains: [hljs.BACKSLASH_ESCAPE, SUBST],
6524 variants: [
6525 {
6526 begin: /'/, end: /'/
6527 },
6528 {
6529 begin: /"/, end: /"/
6530 }
6531 ]
6532 };
6533 var FUNCTION = {
6534 className: 'function',
6535 beginKeywords: 'def defp defmacro', end: /\B\b/, // the mode is ended by the title
6536 contains: [
6537 hljs.inherit(hljs.TITLE_MODE, {
6538 begin: ELIXIR_IDENT_RE,
6539 endsParent: true
6540 })
6541 ]
6542 };
6543 var CLASS = hljs.inherit(FUNCTION, {
6544 className: 'class',
6545 beginKeywords: 'defmodule defrecord', end: /\bdo\b|$|;/
6546 });
6547 var ELIXIR_DEFAULT_CONTAINS = [
6548 STRING,
6549 hljs.HASH_COMMENT_MODE,
6550 CLASS,
6551 FUNCTION,
6552 {
6553 className: 'symbol',
6554 begin: ':',
6555 contains: [STRING, {begin: ELIXIR_METHOD_RE}],
6556 relevance: 0
6557 },
6558 {
6559 className: 'symbol',
6560 begin: ELIXIR_IDENT_RE + ':',
6561 relevance: 0
6562 },
6563 {
6564 className: 'number',
6565 begin: '(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b',
6566 relevance: 0
6567 },
6568 {
6569 className: 'variable',
6570 begin: '(\\$\\W)|((\\$|\\@\\@?)(\\w+))'
6571 },
6572 {
6573 begin: '->'
6574 },
6575 { // regexp container
6576 begin: '(' + hljs.RE_STARTERS_RE + ')\\s*',
6577 contains: [
6578 hljs.HASH_COMMENT_MODE,
6579 {
6580 className: 'regexp',
6581 illegal: '\\n',
6582 contains: [hljs.BACKSLASH_ESCAPE, SUBST],
6583 variants: [
6584 {
6585 begin: '/', end: '/[a-z]*'
6586 },
6587 {
6588 begin: '%r\\[', end: '\\][a-z]*'
6589 }
6590 ]
6591 }
6592 ],
6593 relevance: 0
6594 }
6595 ];
6596 SUBST.contains = ELIXIR_DEFAULT_CONTAINS;
6597
6598 return {
6599 lexemes: ELIXIR_IDENT_RE,
6600 keywords: ELIXIR_KEYWORDS,
6601 contains: ELIXIR_DEFAULT_CONTAINS
6602 };
6603}
6604},{name:"elm",create:/*
6605Language: Elm
6606Author: Janis Voigtlaender <janis.voigtlaender@gmail.com>
6607Category: functional
6608*/
6609
6610function(hljs) {
6611 var COMMENT = {
6612 variants: [
6613 hljs.COMMENT('--', '$'),
6614 hljs.COMMENT(
6615 '{-',
6616 '-}',
6617 {
6618 contains: ['self']
6619 }
6620 )
6621 ]
6622 };
6623
6624 var CONSTRUCTOR = {
6625 className: 'type',
6626 begin: '\\b[A-Z][\\w\']*', // TODO: other constructors (built-in, infix).
6627 relevance: 0
6628 };
6629
6630 var LIST = {
6631 begin: '\\(', end: '\\)',
6632 illegal: '"',
6633 contains: [
6634 {className: 'type', begin: '\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?'},
6635 COMMENT
6636 ]
6637 };
6638
6639 var RECORD = {
6640 begin: '{', end: '}',
6641 contains: LIST.contains
6642 };
6643
6644 return {
6645 keywords:
6646 'let in if then else case of where module import exposing ' +
6647 'type alias as infix infixl infixr port',
6648 contains: [
6649
6650 // Top-level constructions.
6651
6652 {
6653 beginKeywords: 'module', end: 'where',
6654 keywords: 'module where',
6655 contains: [LIST, COMMENT],
6656 illegal: '\\W\\.|;'
6657 },
6658 {
6659 begin: 'import', end: '$',
6660 keywords: 'import as exposing',
6661 contains: [LIST, COMMENT],
6662 illegal: '\\W\\.|;'
6663 },
6664 {
6665 begin: 'type', end: '$',
6666 keywords: 'type alias',
6667 contains: [CONSTRUCTOR, LIST, RECORD, COMMENT]
6668 },
6669 {
6670 beginKeywords: 'infix infixl infixr', end: '$',
6671 contains: [hljs.C_NUMBER_MODE, COMMENT]
6672 },
6673 {
6674 begin: 'port', end: '$',
6675 keywords: 'port',
6676 contains: [COMMENT]
6677 },
6678
6679 // Literals and names.
6680
6681 // TODO: characters.
6682 hljs.QUOTE_STRING_MODE,
6683 hljs.C_NUMBER_MODE,
6684 CONSTRUCTOR,
6685 hljs.inherit(hljs.TITLE_MODE, {begin: '^[_a-z][\\w\']*'}),
6686 COMMENT,
6687
6688 {begin: '->|<-'} // No markup, relevance booster
6689 ]
6690 };
6691}
6692},{name:"erb",create:/*
6693Language: ERB (Embedded Ruby)
6694Requires: xml.js, ruby.js
6695Author: Lucas Mazza <lucastmazza@gmail.com>
6696Contributors: Kassio Borges <kassioborgesm@gmail.com>
6697Description: "Bridge" language defining fragments of Ruby in HTML within <% .. %>
6698Category: template
6699*/
6700
6701function(hljs) {
6702 return {
6703 subLanguage: 'xml',
6704 contains: [
6705 hljs.COMMENT('<%#', '%>'),
6706 {
6707 begin: '<%[%=-]?', end: '[%-]?%>',
6708 subLanguage: 'ruby',
6709 excludeBegin: true,
6710 excludeEnd: true
6711 }
6712 ]
6713 };
6714}
6715},{name:"erlang-repl",create:/*
6716 Language: Erlang REPL
6717 Author: Sergey Ignatov <sergey@ignatov.spb.su>
6718Category: functional
6719 */
6720
6721function(hljs) {
6722 return {
6723 keywords: {
6724 built_in:
6725 'spawn spawn_link self',
6726 keyword:
6727 'after and andalso|10 band begin bnot bor bsl bsr bxor case catch cond div end fun if ' +
6728 'let not of or orelse|10 query receive rem try when xor'
6729 },
6730 contains: [
6731 {
6732 className: 'meta', begin: '^[0-9]+> ',
6733 relevance: 10
6734 },
6735 hljs.COMMENT('%', '$'),
6736 {
6737 className: 'number',
6738 begin: '\\b(\\d+#[a-fA-F0-9]+|\\d+(\\.\\d+)?([eE][-+]?\\d+)?)',
6739 relevance: 0
6740 },
6741 hljs.APOS_STRING_MODE,
6742 hljs.QUOTE_STRING_MODE,
6743 {
6744 begin: '\\?(::)?([A-Z]\\w*(::)?)+'
6745 },
6746 {
6747 begin: '->'
6748 },
6749 {
6750 begin: 'ok'
6751 },
6752 {
6753 begin: '!'
6754 },
6755 {
6756 begin: '(\\b[a-z\'][a-zA-Z0-9_\']*:[a-z\'][a-zA-Z0-9_\']*)|(\\b[a-z\'][a-zA-Z0-9_\']*)',
6757 relevance: 0
6758 },
6759 {
6760 begin: '[A-Z][a-zA-Z0-9_\']*',
6761 relevance: 0
6762 }
6763 ]
6764 };
6765}
6766},{name:"erlang",create:/*
6767Language: Erlang
6768Description: Erlang is a general-purpose functional language, with strict evaluation, single assignment, and dynamic typing.
6769Author: Nikolay Zakharov <nikolay.desh@gmail.com>, Dmitry Kovega <arhibot@gmail.com>
6770Category: functional
6771*/
6772
6773function(hljs) {
6774 var BASIC_ATOM_RE = '[a-z\'][a-zA-Z0-9_\']*';
6775 var FUNCTION_NAME_RE = '(' + BASIC_ATOM_RE + ':' + BASIC_ATOM_RE + '|' + BASIC_ATOM_RE + ')';
6776 var ERLANG_RESERVED = {
6777 keyword:
6778 'after and andalso|10 band begin bnot bor bsl bzr bxor case catch cond div end fun if ' +
6779 'let not of orelse|10 query receive rem try when xor',
6780 literal:
6781 'false true'
6782 };
6783
6784 var COMMENT = hljs.COMMENT('%', '$');
6785 var NUMBER = {
6786 className: 'number',
6787 begin: '\\b(\\d+#[a-fA-F0-9]+|\\d+(\\.\\d+)?([eE][-+]?\\d+)?)',
6788 relevance: 0
6789 };
6790 var NAMED_FUN = {
6791 begin: 'fun\\s+' + BASIC_ATOM_RE + '/\\d+'
6792 };
6793 var FUNCTION_CALL = {
6794 begin: FUNCTION_NAME_RE + '\\(', end: '\\)',
6795 returnBegin: true,
6796 relevance: 0,
6797 contains: [
6798 {
6799 begin: FUNCTION_NAME_RE, relevance: 0
6800 },
6801 {
6802 begin: '\\(', end: '\\)', endsWithParent: true,
6803 returnEnd: true,
6804 relevance: 0
6805 // "contains" defined later
6806 }
6807 ]
6808 };
6809 var TUPLE = {
6810 begin: '{', end: '}',
6811 relevance: 0
6812 // "contains" defined later
6813 };
6814 var VAR1 = {
6815 begin: '\\b_([A-Z][A-Za-z0-9_]*)?',
6816 relevance: 0
6817 };
6818 var VAR2 = {
6819 begin: '[A-Z][a-zA-Z0-9_]*',
6820 relevance: 0
6821 };
6822 var RECORD_ACCESS = {
6823 begin: '#' + hljs.UNDERSCORE_IDENT_RE,
6824 relevance: 0,
6825 returnBegin: true,
6826 contains: [
6827 {
6828 begin: '#' + hljs.UNDERSCORE_IDENT_RE,
6829 relevance: 0
6830 },
6831 {
6832 begin: '{', end: '}',
6833 relevance: 0
6834 // "contains" defined later
6835 }
6836 ]
6837 };
6838
6839 var BLOCK_STATEMENTS = {
6840 beginKeywords: 'fun receive if try case', end: 'end',
6841 keywords: ERLANG_RESERVED
6842 };
6843 BLOCK_STATEMENTS.contains = [
6844 COMMENT,
6845 NAMED_FUN,
6846 hljs.inherit(hljs.APOS_STRING_MODE, {className: ''}),
6847 BLOCK_STATEMENTS,
6848 FUNCTION_CALL,
6849 hljs.QUOTE_STRING_MODE,
6850 NUMBER,
6851 TUPLE,
6852 VAR1, VAR2,
6853 RECORD_ACCESS
6854 ];
6855
6856 var BASIC_MODES = [
6857 COMMENT,
6858 NAMED_FUN,
6859 BLOCK_STATEMENTS,
6860 FUNCTION_CALL,
6861 hljs.QUOTE_STRING_MODE,
6862 NUMBER,
6863 TUPLE,
6864 VAR1, VAR2,
6865 RECORD_ACCESS
6866 ];
6867 FUNCTION_CALL.contains[1].contains = BASIC_MODES;
6868 TUPLE.contains = BASIC_MODES;
6869 RECORD_ACCESS.contains[1].contains = BASIC_MODES;
6870
6871 var PARAMS = {
6872 className: 'params',
6873 begin: '\\(', end: '\\)',
6874 contains: BASIC_MODES
6875 };
6876 return {
6877 aliases: ['erl'],
6878 keywords: ERLANG_RESERVED,
6879 illegal: '(</|\\*=|\\+=|-=|/\\*|\\*/|\\(\\*|\\*\\))',
6880 contains: [
6881 {
6882 className: 'function',
6883 begin: '^' + BASIC_ATOM_RE + '\\s*\\(', end: '->',
6884 returnBegin: true,
6885 illegal: '\\(|#|//|/\\*|\\\\|:|;',
6886 contains: [
6887 PARAMS,
6888 hljs.inherit(hljs.TITLE_MODE, {begin: BASIC_ATOM_RE})
6889 ],
6890 starts: {
6891 end: ';|\\.',
6892 keywords: ERLANG_RESERVED,
6893 contains: BASIC_MODES
6894 }
6895 },
6896 COMMENT,
6897 {
6898 begin: '^-', end: '\\.',
6899 relevance: 0,
6900 excludeEnd: true,
6901 returnBegin: true,
6902 lexemes: '-' + hljs.IDENT_RE,
6903 keywords:
6904 '-module -record -undef -export -ifdef -ifndef -author -copyright -doc -vsn ' +
6905 '-import -include -include_lib -compile -define -else -endif -file -behaviour ' +
6906 '-behavior -spec',
6907 contains: [PARAMS]
6908 },
6909 NUMBER,
6910 hljs.QUOTE_STRING_MODE,
6911 RECORD_ACCESS,
6912 VAR1, VAR2,
6913 TUPLE,
6914 {begin: /\.$/} // relevance booster
6915 ]
6916 };
6917}
6918},{name:"fix",create:/*
6919Language: FIX
6920Author: Brent Bradbury <brent@brentium.com>
6921*/
6922
6923function(hljs) {
6924 return {
6925 contains: [
6926 {
6927 begin: /[^\u2401\u0001]+/,
6928 end: /[\u2401\u0001]/,
6929 excludeEnd: true,
6930 returnBegin: true,
6931 returnEnd: false,
6932 contains: [
6933 {
6934 begin: /([^\u2401\u0001=]+)/,
6935 end: /=([^\u2401\u0001=]+)/,
6936 returnEnd: true,
6937 returnBegin: false,
6938 className: 'attr'
6939 },
6940 {
6941 begin: /=/,
6942 end: /([\u2401\u0001])/,
6943 excludeEnd: true,
6944 excludeBegin: true,
6945 className: 'string'
6946 }]
6947 }],
6948 case_insensitive: true
6949 };
6950}
6951},{name:"fortran",create:/*
6952Language: Fortran
6953Author: Anthony Scemama <scemama@irsamc.ups-tlse.fr>
6954Category: scientific
6955*/
6956
6957function(hljs) {
6958 var PARAMS = {
6959 className: 'params',
6960 begin: '\\(', end: '\\)'
6961 };
6962
6963 var F_KEYWORDS = {
6964 literal: '.False. .True.',
6965 keyword: 'kind do while private call intrinsic where elsewhere ' +
6966 'type endtype endmodule endselect endinterface end enddo endif if forall endforall only contains default return stop then ' +
6967 'public subroutine|10 function program .and. .or. .not. .le. .eq. .ge. .gt. .lt. ' +
6968 'goto save else use module select case ' +
6969 'access blank direct exist file fmt form formatted iostat name named nextrec number opened rec recl sequential status unformatted unit ' +
6970 'continue format pause cycle exit ' +
6971 'c_null_char c_alert c_backspace c_form_feed flush wait decimal round iomsg ' +
6972 'synchronous nopass non_overridable pass protected volatile abstract extends import ' +
6973 'non_intrinsic value deferred generic final enumerator class associate bind enum ' +
6974 'c_int c_short c_long c_long_long c_signed_char c_size_t c_int8_t c_int16_t c_int32_t c_int64_t c_int_least8_t c_int_least16_t ' +
6975 'c_int_least32_t c_int_least64_t c_int_fast8_t c_int_fast16_t c_int_fast32_t c_int_fast64_t c_intmax_t C_intptr_t c_float c_double ' +
6976 'c_long_double c_float_complex c_double_complex c_long_double_complex c_bool c_char c_null_ptr c_null_funptr ' +
6977 'c_new_line c_carriage_return c_horizontal_tab c_vertical_tab iso_c_binding c_loc c_funloc c_associated c_f_pointer ' +
6978 'c_ptr c_funptr iso_fortran_env character_storage_size error_unit file_storage_size input_unit iostat_end iostat_eor ' +
6979 'numeric_storage_size output_unit c_f_procpointer ieee_arithmetic ieee_support_underflow_control ' +
6980 'ieee_get_underflow_mode ieee_set_underflow_mode newunit contiguous recursive ' +
6981 'pad position action delim readwrite eor advance nml interface procedure namelist include sequence elemental pure ' +
6982 'integer real character complex logical dimension allocatable|10 parameter ' +
6983 'external implicit|10 none double precision assign intent optional pointer ' +
6984 'target in out common equivalence data',
6985 built_in: 'alog alog10 amax0 amax1 amin0 amin1 amod cabs ccos cexp clog csin csqrt dabs dacos dasin datan datan2 dcos dcosh ddim dexp dint ' +
6986 'dlog dlog10 dmax1 dmin1 dmod dnint dsign dsin dsinh dsqrt dtan dtanh float iabs idim idint idnint ifix isign max0 max1 min0 min1 sngl ' +
6987 'algama cdabs cdcos cdexp cdlog cdsin cdsqrt cqabs cqcos cqexp cqlog cqsin cqsqrt dcmplx dconjg derf derfc dfloat dgamma dimag dlgama ' +
6988 'iqint qabs qacos qasin qatan qatan2 qcmplx qconjg qcos qcosh qdim qerf qerfc qexp qgamma qimag qlgama qlog qlog10 qmax1 qmin1 qmod ' +
6989 'qnint qsign qsin qsinh qsqrt qtan qtanh abs acos aimag aint anint asin atan atan2 char cmplx conjg cos cosh exp ichar index int log ' +
6990 'log10 max min nint sign sin sinh sqrt tan tanh print write dim lge lgt lle llt mod nullify allocate deallocate ' +
6991 'adjustl adjustr all allocated any associated bit_size btest ceiling count cshift date_and_time digits dot_product ' +
6992 'eoshift epsilon exponent floor fraction huge iand ibclr ibits ibset ieor ior ishft ishftc lbound len_trim matmul ' +
6993 'maxexponent maxloc maxval merge minexponent minloc minval modulo mvbits nearest pack present product ' +
6994 'radix random_number random_seed range repeat reshape rrspacing scale scan selected_int_kind selected_real_kind ' +
6995 'set_exponent shape size spacing spread sum system_clock tiny transpose trim ubound unpack verify achar iachar transfer ' +
6996 'dble entry dprod cpu_time command_argument_count get_command get_command_argument get_environment_variable is_iostat_end ' +
6997 'ieee_arithmetic ieee_support_underflow_control ieee_get_underflow_mode ieee_set_underflow_mode ' +
6998 'is_iostat_eor move_alloc new_line selected_char_kind same_type_as extends_type_of' +
6999 'acosh asinh atanh bessel_j0 bessel_j1 bessel_jn bessel_y0 bessel_y1 bessel_yn erf erfc erfc_scaled gamma log_gamma hypot norm2 ' +
7000 'atomic_define atomic_ref execute_command_line leadz trailz storage_size merge_bits ' +
7001 'bge bgt ble blt dshiftl dshiftr findloc iall iany iparity image_index lcobound ucobound maskl maskr ' +
7002 'num_images parity popcnt poppar shifta shiftl shiftr this_image'
7003 };
7004 return {
7005 case_insensitive: true,
7006 aliases: ['f90', 'f95'],
7007 keywords: F_KEYWORDS,
7008 illegal: /\/\*/,
7009 contains: [
7010 hljs.inherit(hljs.APOS_STRING_MODE, {className: 'string', relevance: 0}),
7011 hljs.inherit(hljs.QUOTE_STRING_MODE, {className: 'string', relevance: 0}),
7012 {
7013 className: 'function',
7014 beginKeywords: 'subroutine function program',
7015 illegal: '[${=\\n]',
7016 contains: [hljs.UNDERSCORE_TITLE_MODE, PARAMS]
7017 },
7018 hljs.COMMENT('!', '$', {relevance: 0}),
7019 {
7020 className: 'number',
7021 begin: '(?=\\b|\\+|\\-|\\.)(?=\\.\\d|\\d)(?:\\d+)?(?:\\.?\\d*)(?:[de][+-]?\\d+)?\\b\\.?',
7022 relevance: 0
7023 }
7024 ]
7025 };
7026}
7027},{name:"fsharp",create:/*
7028Language: F#
7029Author: Jonas Follesø <jonas@follesoe.no>
7030Contributors: Troy Kershaw <hello@troykershaw.com>, Henrik Feldt <henrik@haf.se>
7031Category: functional
7032*/
7033function(hljs) {
7034 var TYPEPARAM = {
7035 begin: '<', end: '>',
7036 contains: [
7037 hljs.inherit(hljs.TITLE_MODE, {begin: /'[a-zA-Z0-9_]+/})
7038 ]
7039 };
7040
7041 return {
7042 aliases: ['fs'],
7043 keywords:
7044 'abstract and as assert base begin class default delegate do done ' +
7045 'downcast downto elif else end exception extern false finally for ' +
7046 'fun function global if in inherit inline interface internal lazy let ' +
7047 'match member module mutable namespace new null of open or ' +
7048 'override private public rec return sig static struct then to ' +
7049 'true try type upcast use val void when while with yield',
7050 illegal: /\/\*/,
7051 contains: [
7052 {
7053 // monad builder keywords (matches before non-bang kws)
7054 className: 'keyword',
7055 begin: /\b(yield|return|let|do)!/
7056 },
7057 {
7058 className: 'string',
7059 begin: '@"', end: '"',
7060 contains: [{begin: '""'}]
7061 },
7062 {
7063 className: 'string',
7064 begin: '"""', end: '"""'
7065 },
7066 hljs.COMMENT('\\(\\*', '\\*\\)'),
7067 {
7068 className: 'class',
7069 beginKeywords: 'type', end: '\\(|=|$', excludeEnd: true,
7070 contains: [
7071 hljs.UNDERSCORE_TITLE_MODE,
7072 TYPEPARAM
7073 ]
7074 },
7075 {
7076 className: 'meta',
7077 begin: '\\[<', end: '>\\]',
7078 relevance: 10
7079 },
7080 {
7081 className: 'symbol',
7082 begin: '\\B(\'[A-Za-z])\\b',
7083 contains: [hljs.BACKSLASH_ESCAPE]
7084 },
7085 hljs.C_LINE_COMMENT_MODE,
7086 hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null}),
7087 hljs.C_NUMBER_MODE
7088 ]
7089 };
7090}
7091},{name:"gams",create:/*
7092 Language: GAMS
7093 Author: Stefan Bechert <stefan.bechert@gmx.net>
7094 Contributors: Oleg Efimov <efimovov@gmail.com>
7095 Description: The General Algebraic Modeling System language
7096 Category: scientific
7097 */
7098
7099function (hljs) {
7100 var KEYWORDS =
7101 'abort acronym acronyms alias all and assign binary card diag display else1 eps eq equation equations file files ' +
7102 'for1 free ge gt if inf integer le loop lt maximizing minimizing model models na ne negative no not option ' +
7103 'options or ord parameter parameters positive prod putpage puttl repeat sameas scalar scalars semicont semiint ' +
7104 'set1 sets smax smin solve sos1 sos2 sum system table then until using variable variables while1 xor yes';
7105
7106 return {
7107 aliases: ['gms'],
7108 case_insensitive: true,
7109 keywords: KEYWORDS,
7110 contains: [
7111 {
7112 beginKeywords: 'sets parameters variables equations',
7113 end: ';',
7114 contains: [
7115 {
7116 begin: '/',
7117 end: '/',
7118 contains: [hljs.NUMBER_MODE]
7119 }
7120 ]
7121 },
7122 {
7123 className: 'string',
7124 begin: '\\*{3}', end: '\\*{3}'
7125 },
7126 hljs.NUMBER_MODE,
7127 {
7128 className: 'number',
7129 begin: '\\$[a-zA-Z0-9]+'
7130 }
7131 ]
7132 };
7133}
7134
7135},{name:"gcode",create:/*
7136 Language: G-code (ISO 6983)
7137 Contributors: Adam Joseph Cook <adam.joseph.cook@gmail.com>
7138 Description: G-code syntax highlighter for Fanuc and other common CNC machine tool controls.
7139 */
7140
7141function(hljs) {
7142 var GCODE_IDENT_RE = '[A-Z_][A-Z0-9_.]*';
7143 var GCODE_CLOSE_RE = '\\%';
7144 var GCODE_KEYWORDS =
7145 'IF DO WHILE ENDWHILE CALL ENDIF SUB ENDSUB GOTO REPEAT ENDREPEAT ' +
7146 'EQ LT GT NE GE LE OR XOR';
7147 var GCODE_START = {
7148 className: 'meta',
7149 begin: '([O])([0-9]+)'
7150 };
7151 var GCODE_CODE = [
7152 hljs.C_LINE_COMMENT_MODE,
7153 hljs.C_BLOCK_COMMENT_MODE,
7154 hljs.COMMENT(/\(/, /\)/),
7155 hljs.inherit(hljs.C_NUMBER_MODE, {begin: '([-+]?([0-9]*\\.?[0-9]+\\.?))|' + hljs.C_NUMBER_RE}),
7156 hljs.inherit(hljs.APOS_STRING_MODE, {illegal: null}),
7157 hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null}),
7158 {
7159 className: 'name',
7160 begin: '([G])([0-9]+\\.?[0-9]?)'
7161 },
7162 {
7163 className: 'name',
7164 begin: '([M])([0-9]+\\.?[0-9]?)'
7165 },
7166 {
7167 className: 'attr',
7168 begin: '(VC|VS|#)',
7169 end: '(\\d+)'
7170 },
7171 {
7172 className: 'attr',
7173 begin: '(VZOFX|VZOFY|VZOFZ)'
7174 },
7175 {
7176 className: 'built_in',
7177 begin: '(ATAN|ABS|ACOS|ASIN|SIN|COS|EXP|FIX|FUP|ROUND|LN|TAN)(\\[)',
7178 end: '([-+]?([0-9]*\\.?[0-9]+\\.?))(\\])'
7179 },
7180 {
7181 className: 'symbol',
7182 variants: [
7183 {
7184 begin: 'N', end: '\\d+',
7185 illegal: '\\W'
7186 }
7187 ]
7188 }
7189 ];
7190
7191 return {
7192 aliases: ['nc'],
7193 // Some implementations (CNC controls) of G-code are interoperable with uppercase and lowercase letters seamlessly.
7194 // However, most prefer all uppercase and uppercase is customary.
7195 case_insensitive: true,
7196 lexemes: GCODE_IDENT_RE,
7197 keywords: GCODE_KEYWORDS,
7198 contains: [
7199 {
7200 className: 'meta',
7201 begin: GCODE_CLOSE_RE
7202 },
7203 GCODE_START
7204 ].concat(GCODE_CODE)
7205 };
7206}
7207},{name:"gherkin",create:/*
7208 Language: Gherkin
7209 Author: Sam Pikesley (@pikesley) <sam.pikesley@theodi.org>
7210 Description: Gherkin (Cucumber etc)
7211 */
7212
7213function (hljs) {
7214 return {
7215 aliases: ['feature'],
7216 keywords: 'Feature Background Ability Business\ Need Scenario Scenarios Scenario\ Outline Scenario\ Template Examples Given And Then But When',
7217 contains: [
7218 {
7219 className: 'keyword',
7220 begin: '\\*'
7221 },
7222 {
7223 className: 'meta',
7224 begin: '@[^@\\s]+'
7225 },
7226 {
7227 begin: '\\|', end: '\\|\\w*$',
7228 contains: [
7229 {
7230 className: 'string',
7231 begin: '[^|]+'
7232 }
7233 ]
7234 },
7235 {
7236 className: 'variable',
7237 begin: '<', end: '>'
7238 },
7239 hljs.HASH_COMMENT_MODE,
7240 {
7241 className: 'string',
7242 begin: '"""', end: '"""'
7243 },
7244 hljs.QUOTE_STRING_MODE
7245 ]
7246 };
7247}
7248},{name:"glsl",create:/*
7249Language: GLSL
7250Description: OpenGL Shading Language
7251Author: Sergey Tikhomirov <sergey@tikhomirov.io>
7252Category: graphics
7253*/
7254
7255function(hljs) {
7256 return {
7257 keywords: {
7258 keyword:
7259 // Statements
7260 'break continue discard do else for if return while' +
7261 // Qualifiers
7262 'attribute binding buffer ccw centroid centroid varying coherent column_major const cw ' +
7263 'depth_any depth_greater depth_less depth_unchanged early_fragment_tests equal_spacing ' +
7264 'flat fractional_even_spacing fractional_odd_spacing highp in index inout invariant ' +
7265 'invocations isolines layout line_strip lines lines_adjacency local_size_x local_size_y ' +
7266 'local_size_z location lowp max_vertices mediump noperspective offset origin_upper_left ' +
7267 'out packed patch pixel_center_integer point_mode points precise precision quads r11f_g11f_b10f '+
7268 'r16 r16_snorm r16f r16i r16ui r32f r32i r32ui r8 r8_snorm r8i r8ui readonly restrict ' +
7269 'rg16 rg16_snorm rg16f rg16i rg16ui rg32f rg32i rg32ui rg8 rg8_snorm rg8i rg8ui rgb10_a2 ' +
7270 'rgb10_a2ui rgba16 rgba16_snorm rgba16f rgba16i rgba16ui rgba32f rgba32i rgba32ui rgba8 ' +
7271 'rgba8_snorm rgba8i rgba8ui row_major sample shared smooth std140 std430 stream triangle_strip ' +
7272 'triangles triangles_adjacency uniform varying vertices volatile writeonly',
7273 type:
7274 'atomic_uint bool bvec2 bvec3 bvec4 dmat2 dmat2x2 dmat2x3 dmat2x4 dmat3 dmat3x2 dmat3x3 ' +
7275 'dmat3x4 dmat4 dmat4x2 dmat4x3 dmat4x4 double dvec2 dvec3 dvec4 float iimage1D iimage1DArray ' +
7276 'iimage2D iimage2DArray iimage2DMS iimage2DMSArray iimage2DRect iimage3D iimageBuffer' +
7277 'iimageCube iimageCubeArray image1D image1DArray image2D image2DArray image2DMS image2DMSArray ' +
7278 'image2DRect image3D imageBuffer imageCube imageCubeArray int isampler1D isampler1DArray ' +
7279 'isampler2D isampler2DArray isampler2DMS isampler2DMSArray isampler2DRect isampler3D ' +
7280 'isamplerBuffer isamplerCube isamplerCubeArray ivec2 ivec3 ivec4 mat2 mat2x2 mat2x3 ' +
7281 'mat2x4 mat3 mat3x2 mat3x3 mat3x4 mat4 mat4x2 mat4x3 mat4x4 sampler1D sampler1DArray ' +
7282 'sampler1DArrayShadow sampler1DShadow sampler2D sampler2DArray sampler2DArrayShadow ' +
7283 'sampler2DMS sampler2DMSArray sampler2DRect sampler2DRectShadow sampler2DShadow sampler3D ' +
7284 'samplerBuffer samplerCube samplerCubeArray samplerCubeArrayShadow samplerCubeShadow ' +
7285 'image1D uimage1DArray uimage2D uimage2DArray uimage2DMS uimage2DMSArray uimage2DRect ' +
7286 'uimage3D uimageBuffer uimageCube uimageCubeArray uint usampler1D usampler1DArray ' +
7287 'usampler2D usampler2DArray usampler2DMS usampler2DMSArray usampler2DRect usampler3D ' +
7288 'samplerBuffer usamplerCube usamplerCubeArray uvec2 uvec3 uvec4 vec2 vec3 vec4 void',
7289 built_in:
7290 // Constants
7291 'gl_MaxAtomicCounterBindings gl_MaxAtomicCounterBufferSize gl_MaxClipDistances gl_MaxClipPlanes ' +
7292 'gl_MaxCombinedAtomicCounterBuffers gl_MaxCombinedAtomicCounters gl_MaxCombinedImageUniforms ' +
7293 'gl_MaxCombinedImageUnitsAndFragmentOutputs gl_MaxCombinedTextureImageUnits gl_MaxComputeAtomicCounterBuffers ' +
7294 'gl_MaxComputeAtomicCounters gl_MaxComputeImageUniforms gl_MaxComputeTextureImageUnits ' +
7295 'gl_MaxComputeUniformComponents gl_MaxComputeWorkGroupCount gl_MaxComputeWorkGroupSize ' +
7296 'gl_MaxDrawBuffers gl_MaxFragmentAtomicCounterBuffers gl_MaxFragmentAtomicCounters ' +
7297 'gl_MaxFragmentImageUniforms gl_MaxFragmentInputComponents gl_MaxFragmentInputVectors ' +
7298 'gl_MaxFragmentUniformComponents gl_MaxFragmentUniformVectors gl_MaxGeometryAtomicCounterBuffers ' +
7299 'gl_MaxGeometryAtomicCounters gl_MaxGeometryImageUniforms gl_MaxGeometryInputComponents ' +
7300 'gl_MaxGeometryOutputComponents gl_MaxGeometryOutputVertices gl_MaxGeometryTextureImageUnits ' +
7301 'gl_MaxGeometryTotalOutputComponents gl_MaxGeometryUniformComponents gl_MaxGeometryVaryingComponents ' +
7302 'gl_MaxImageSamples gl_MaxImageUnits gl_MaxLights gl_MaxPatchVertices gl_MaxProgramTexelOffset ' +
7303 'gl_MaxTessControlAtomicCounterBuffers gl_MaxTessControlAtomicCounters gl_MaxTessControlImageUniforms ' +
7304 'gl_MaxTessControlInputComponents gl_MaxTessControlOutputComponents gl_MaxTessControlTextureImageUnits ' +
7305 'gl_MaxTessControlTotalOutputComponents gl_MaxTessControlUniformComponents ' +
7306 'gl_MaxTessEvaluationAtomicCounterBuffers gl_MaxTessEvaluationAtomicCounters ' +
7307 'gl_MaxTessEvaluationImageUniforms gl_MaxTessEvaluationInputComponents gl_MaxTessEvaluationOutputComponents ' +
7308 'gl_MaxTessEvaluationTextureImageUnits gl_MaxTessEvaluationUniformComponents ' +
7309 'gl_MaxTessGenLevel gl_MaxTessPatchComponents gl_MaxTextureCoords gl_MaxTextureImageUnits ' +
7310 'gl_MaxTextureUnits gl_MaxVaryingComponents gl_MaxVaryingFloats gl_MaxVaryingVectors ' +
7311 'gl_MaxVertexAtomicCounterBuffers gl_MaxVertexAtomicCounters gl_MaxVertexAttribs gl_MaxVertexImageUniforms ' +
7312 'gl_MaxVertexOutputComponents gl_MaxVertexOutputVectors gl_MaxVertexTextureImageUnits ' +
7313 'gl_MaxVertexUniformComponents gl_MaxVertexUniformVectors gl_MaxViewports gl_MinProgramTexelOffset ' +
7314 // Variables
7315 'gl_BackColor gl_BackLightModelProduct gl_BackLightProduct gl_BackMaterial ' +
7316 'gl_BackSecondaryColor gl_ClipDistance gl_ClipPlane gl_ClipVertex gl_Color ' +
7317 'gl_DepthRange gl_EyePlaneQ gl_EyePlaneR gl_EyePlaneS gl_EyePlaneT gl_Fog gl_FogCoord ' +
7318 'gl_FogFragCoord gl_FragColor gl_FragCoord gl_FragData gl_FragDepth gl_FrontColor ' +
7319 'gl_FrontFacing gl_FrontLightModelProduct gl_FrontLightProduct gl_FrontMaterial ' +
7320 'gl_FrontSecondaryColor gl_GlobalInvocationID gl_InstanceID gl_InvocationID gl_Layer gl_LightModel ' +
7321 'gl_LightSource gl_LocalInvocationID gl_LocalInvocationIndex gl_ModelViewMatrix ' +
7322 'gl_ModelViewMatrixInverse gl_ModelViewMatrixInverseTranspose gl_ModelViewMatrixTranspose ' +
7323 'gl_ModelViewProjectionMatrix gl_ModelViewProjectionMatrixInverse gl_ModelViewProjectionMatrixInverseTranspose ' +
7324 'gl_ModelViewProjectionMatrixTranspose gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 ' +
7325 'gl_MultiTexCoord3 gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 ' +
7326 'gl_Normal gl_NormalMatrix gl_NormalScale gl_NumSamples gl_NumWorkGroups gl_ObjectPlaneQ ' +
7327 'gl_ObjectPlaneR gl_ObjectPlaneS gl_ObjectPlaneT gl_PatchVerticesIn gl_Point gl_PointCoord ' +
7328 'gl_PointSize gl_Position gl_PrimitiveID gl_PrimitiveIDIn gl_ProjectionMatrix gl_ProjectionMatrixInverse ' +
7329 'gl_ProjectionMatrixInverseTranspose gl_ProjectionMatrixTranspose gl_SampleID gl_SampleMask ' +
7330 'gl_SampleMaskIn gl_SamplePosition gl_SecondaryColor gl_TessCoord gl_TessLevelInner gl_TessLevelOuter ' +
7331 'gl_TexCoord gl_TextureEnvColor gl_TextureMatrix gl_TextureMatrixInverse gl_TextureMatrixInverseTranspose ' +
7332 'gl_TextureMatrixTranspose gl_Vertex gl_VertexID gl_ViewportIndex gl_WorkGroupID gl_WorkGroupSize gl_in gl_out ' +
7333 // Functions
7334 'EmitStreamVertex EmitVertex EndPrimitive EndStreamPrimitive abs acos acosh all any asin ' +
7335 'asinh atan atanh atomicAdd atomicAnd atomicCompSwap atomicCounter atomicCounterDecrement ' +
7336 'atomicCounterIncrement atomicExchange atomicMax atomicMin atomicOr atomicXor barrier ' +
7337 'bitCount bitfieldExtract bitfieldInsert bitfieldReverse ceil clamp cos cosh cross ' +
7338 'dFdx dFdy degrees determinant distance dot equal exp exp2 faceforward findLSB findMSB ' +
7339 'floatBitsToInt floatBitsToUint floor fma fract frexp ftransform fwidth greaterThan ' +
7340 'greaterThanEqual groupMemoryBarrier imageAtomicAdd imageAtomicAnd imageAtomicCompSwap ' +
7341 'imageAtomicExchange imageAtomicMax imageAtomicMin imageAtomicOr imageAtomicXor imageLoad ' +
7342 'imageSize imageStore imulExtended intBitsToFloat interpolateAtCentroid interpolateAtOffset ' +
7343 'interpolateAtSample inverse inversesqrt isinf isnan ldexp length lessThan lessThanEqual log ' +
7344 'log2 matrixCompMult max memoryBarrier memoryBarrierAtomicCounter memoryBarrierBuffer ' +
7345 'memoryBarrierImage memoryBarrierShared min mix mod modf noise1 noise2 noise3 noise4 ' +
7346 'normalize not notEqual outerProduct packDouble2x32 packHalf2x16 packSnorm2x16 packSnorm4x8 ' +
7347 'packUnorm2x16 packUnorm4x8 pow radians reflect refract round roundEven shadow1D shadow1DLod ' +
7348 'shadow1DProj shadow1DProjLod shadow2D shadow2DLod shadow2DProj shadow2DProjLod sign sin sinh ' +
7349 'smoothstep sqrt step tan tanh texelFetch texelFetchOffset texture texture1D texture1DLod ' +
7350 'texture1DProj texture1DProjLod texture2D texture2DLod texture2DProj texture2DProjLod ' +
7351 'texture3D texture3DLod texture3DProj texture3DProjLod textureCube textureCubeLod ' +
7352 'textureGather textureGatherOffset textureGatherOffsets textureGrad textureGradOffset ' +
7353 'textureLod textureLodOffset textureOffset textureProj textureProjGrad textureProjGradOffset ' +
7354 'textureProjLod textureProjLodOffset textureProjOffset textureQueryLevels textureQueryLod ' +
7355 'textureSize transpose trunc uaddCarry uintBitsToFloat umulExtended unpackDouble2x32 ' +
7356 'unpackHalf2x16 unpackSnorm2x16 unpackSnorm4x8 unpackUnorm2x16 unpackUnorm4x8 usubBorrow',
7357 literal: 'true false'
7358 },
7359 illegal: '"',
7360 contains: [
7361 hljs.C_LINE_COMMENT_MODE,
7362 hljs.C_BLOCK_COMMENT_MODE,
7363 hljs.C_NUMBER_MODE,
7364 {
7365 className: 'meta',
7366 begin: '#', end: '$'
7367 }
7368 ]
7369 };
7370}
7371},{name:"go",create:/*
7372Language: Go
7373Author: Stephan Kountso aka StepLg <steplg@gmail.com>
7374Contributors: Evgeny Stepanischev <imbolk@gmail.com>
7375Description: Google go language (golang). For info about language see http://golang.org/
7376Category: system
7377*/
7378
7379function(hljs) {
7380 var GO_KEYWORDS = {
7381 keyword:
7382 'break default func interface select case map struct chan else goto package switch ' +
7383 'const fallthrough if range type continue for import return var go defer ' +
7384 'bool byte complex64 complex128 float32 float64 int8 int16 int32 int64 string uint8 ' +
7385 'uint16 uint32 uint64 int uint uintptr rune',
7386 literal:
7387 'true false iota nil',
7388 built_in:
7389 'append cap close complex copy imag len make new panic print println real recover delete'
7390 };
7391 return {
7392 aliases: ['golang'],
7393 keywords: GO_KEYWORDS,
7394 illegal: '</',
7395 contains: [
7396 hljs.C_LINE_COMMENT_MODE,
7397 hljs.C_BLOCK_COMMENT_MODE,
7398 hljs.QUOTE_STRING_MODE,
7399 {
7400 className: 'string',
7401 begin: '\'', end: '[^\\\\]\''
7402 },
7403 {
7404 className: 'string',
7405 begin: '`', end: '`'
7406 },
7407 {
7408 className: 'number',
7409 begin: hljs.C_NUMBER_RE + '[dflsi]?',
7410 relevance: 0
7411 },
7412 hljs.C_NUMBER_MODE
7413 ]
7414 };
7415}
7416},{name:"golo",create:/*
7417Language: Golo
7418Author: Philippe Charriere <ph.charriere@gmail.com>
7419Description: a lightweight dynamic language for the JVM, see http://golo-lang.org/
7420*/
7421
7422function(hljs) {
7423 return {
7424 keywords: {
7425 keyword:
7426 'println readln print import module function local return let var ' +
7427 'while for foreach times in case when match with break continue ' +
7428 'augment augmentation each find filter reduce ' +
7429 'if then else otherwise try catch finally raise throw orIfNull ' +
7430 'DynamicObject|10 DynamicVariable struct Observable map set vector list array',
7431 literal:
7432 'true false null'
7433 },
7434 contains: [
7435 hljs.HASH_COMMENT_MODE,
7436 hljs.QUOTE_STRING_MODE,
7437 hljs.C_NUMBER_MODE,
7438 {
7439 className: 'meta', begin: '@[A-Za-z]+'
7440 }
7441 ]
7442 }
7443}
7444},{name:"gradle",create:/*
7445Language: Gradle
7446Author: Damian Mee <mee.damian@gmail.com>
7447Website: http://meeDamian.com
7448*/
7449
7450function(hljs) {
7451 return {
7452 case_insensitive: true,
7453 keywords: {
7454 keyword:
7455 'task project allprojects subprojects artifacts buildscript configurations ' +
7456 'dependencies repositories sourceSets description delete from into include ' +
7457 'exclude source classpath destinationDir includes options sourceCompatibility ' +
7458 'targetCompatibility group flatDir doLast doFirst flatten todir fromdir ant ' +
7459 'def abstract break case catch continue default do else extends final finally ' +
7460 'for if implements instanceof native new private protected public return static ' +
7461 'switch synchronized throw throws transient try volatile while strictfp package ' +
7462 'import false null super this true antlrtask checkstyle codenarc copy boolean ' +
7463 'byte char class double float int interface long short void compile runTime ' +
7464 'file fileTree abs any append asList asWritable call collect compareTo count ' +
7465 'div dump each eachByte eachFile eachLine every find findAll flatten getAt ' +
7466 'getErr getIn getOut getText grep immutable inject inspect intersect invokeMethods ' +
7467 'isCase join leftShift minus multiply newInputStream newOutputStream newPrintWriter ' +
7468 'newReader newWriter next plus pop power previous print println push putAt read ' +
7469 'readBytes readLines reverse reverseEach round size sort splitEachLine step subMap ' +
7470 'times toInteger toList tokenize upto waitForOrKill withPrintWriter withReader ' +
7471 'withStream withWriter withWriterAppend write writeLine'
7472 },
7473 contains: [
7474 hljs.C_LINE_COMMENT_MODE,
7475 hljs.C_BLOCK_COMMENT_MODE,
7476 hljs.APOS_STRING_MODE,
7477 hljs.QUOTE_STRING_MODE,
7478 hljs.NUMBER_MODE,
7479 hljs.REGEXP_MODE
7480
7481 ]
7482 }
7483}
7484},{name:"groovy",create:/*
7485 Language: Groovy
7486 Author: Guillaume Laforge <glaforge@gmail.com>
7487 Website: http://glaforge.appspot.com
7488 Description: Groovy programming language implementation inspired from Vsevolod's Java mode
7489 */
7490
7491function(hljs) {
7492 return {
7493 keywords: {
7494 literal : 'true false null',
7495 keyword:
7496 'byte short char int long boolean float double void ' +
7497 // groovy specific keywords
7498 'def as in assert trait ' +
7499 // common keywords with Java
7500 'super this abstract static volatile transient public private protected synchronized final ' +
7501 'class interface enum if else for while switch case break default continue ' +
7502 'throw throws try catch finally implements extends new import package return instanceof'
7503 },
7504
7505 contains: [
7506 hljs.COMMENT(
7507 '/\\*\\*',
7508 '\\*/',
7509 {
7510 relevance : 0,
7511 contains : [
7512 {
7513 // eat up @'s in emails to prevent them to be recognized as doctags
7514 begin: /\w+@/, relevance: 0
7515 },
7516 {
7517 className : 'doctag',
7518 begin : '@[A-Za-z]+'
7519 }
7520 ]
7521 }
7522 ),
7523 hljs.C_LINE_COMMENT_MODE,
7524 hljs.C_BLOCK_COMMENT_MODE,
7525 {
7526 className: 'string',
7527 begin: '"""', end: '"""'
7528 },
7529 {
7530 className: 'string',
7531 begin: "'''", end: "'''"
7532 },
7533 {
7534 className: 'string',
7535 begin: "\\$/", end: "/\\$",
7536 relevance: 10
7537 },
7538 hljs.APOS_STRING_MODE,
7539 {
7540 className: 'regexp',
7541 begin: /~?\/[^\/\n]+\//,
7542 contains: [
7543 hljs.BACKSLASH_ESCAPE
7544 ]
7545 },
7546 hljs.QUOTE_STRING_MODE,
7547 {
7548 className: 'meta',
7549 begin: "^#!/usr/bin/env", end: '$',
7550 illegal: '\n'
7551 },
7552 hljs.BINARY_NUMBER_MODE,
7553 {
7554 className: 'class',
7555 beginKeywords: 'class interface trait enum', end: '{',
7556 illegal: ':',
7557 contains: [
7558 {beginKeywords: 'extends implements'},
7559 hljs.UNDERSCORE_TITLE_MODE,
7560 ]
7561 },
7562 hljs.C_NUMBER_MODE,
7563 {
7564 className: 'meta', begin: '@[A-Za-z]+'
7565 },
7566 {
7567 // highlight map keys and named parameters as strings
7568 className: 'string', begin: /[^\?]{0}[A-Za-z0-9_$]+ *:/
7569 },
7570 {
7571 // catch middle element of the ternary operator
7572 // to avoid highlight it as a label, named parameter, or map key
7573 begin: /\?/, end: /\:/
7574 },
7575 {
7576 // highlight labeled statements
7577 className: 'symbol', begin: '^\\s*[A-Za-z0-9_$]+:',
7578 relevance: 0
7579 },
7580 ],
7581 illegal: /#|<\//
7582 }
7583}
7584},{name:"haml",create:/*
7585Language: Haml
7586Requires: ruby.js
7587Author: Dan Allen <dan.j.allen@gmail.com>
7588Website: http://google.com/profiles/dan.j.allen
7589Category: template
7590*/
7591
7592// TODO support filter tags like :javascript, support inline HTML
7593function(hljs) {
7594 return {
7595 case_insensitive: true,
7596 contains: [
7597 {
7598 className: 'meta',
7599 begin: '^!!!( (5|1\\.1|Strict|Frameset|Basic|Mobile|RDFa|XML\\b.*))?$',
7600 relevance: 10
7601 },
7602 // FIXME these comments should be allowed to span indented lines
7603 hljs.COMMENT(
7604 '^\\s*(!=#|=#|-#|/).*$',
7605 false,
7606 {
7607 relevance: 0
7608 }
7609 ),
7610 {
7611 begin: '^\\s*(-|=|!=)(?!#)',
7612 starts: {
7613 end: '\\n',
7614 subLanguage: 'ruby'
7615 }
7616 },
7617 {
7618 className: 'tag',
7619 begin: '^\\s*%',
7620 contains: [
7621 {
7622 className: 'selector-tag',
7623 begin: '\\w+'
7624 },
7625 {
7626 className: 'selector-id',
7627 begin: '#[\\w-]+'
7628 },
7629 {
7630 className: 'selector-class',
7631 begin: '\\.[\\w-]+'
7632 },
7633 {
7634 begin: '{\\s*',
7635 end: '\\s*}',
7636 contains: [
7637 {
7638 begin: ':\\w+\\s*=>',
7639 end: ',\\s+',
7640 returnBegin: true,
7641 endsWithParent: true,
7642 contains: [
7643 {
7644 className: 'attr',
7645 begin: ':\\w+'
7646 },
7647 hljs.APOS_STRING_MODE,
7648 hljs.QUOTE_STRING_MODE,
7649 {
7650 begin: '\\w+',
7651 relevance: 0
7652 }
7653 ]
7654 }
7655 ]
7656 },
7657 {
7658 begin: '\\(\\s*',
7659 end: '\\s*\\)',
7660 excludeEnd: true,
7661 contains: [
7662 {
7663 begin: '\\w+\\s*=',
7664 end: '\\s+',
7665 returnBegin: true,
7666 endsWithParent: true,
7667 contains: [
7668 {
7669 className: 'attr',
7670 begin: '\\w+',
7671 relevance: 0
7672 },
7673 hljs.APOS_STRING_MODE,
7674 hljs.QUOTE_STRING_MODE,
7675 {
7676 begin: '\\w+',
7677 relevance: 0
7678 }
7679 ]
7680 }
7681 ]
7682 }
7683 ]
7684 },
7685 {
7686 begin: '^\\s*[=~]\\s*'
7687 },
7688 {
7689 begin: '#{',
7690 starts: {
7691 end: '}',
7692 subLanguage: 'ruby'
7693 }
7694 }
7695 ]
7696 };
7697}
7698},{name:"handlebars",create:/*
7699Language: Handlebars
7700Requires: xml.js
7701Author: Robin Ward <robin.ward@gmail.com>
7702Description: Matcher for Handlebars as well as EmberJS additions.
7703Category: template
7704*/
7705
7706function(hljs) {
7707 var BUILT_INS = {'builtin-name': 'each in with if else unless bindattr action collection debugger log outlet template unbound view yield'};
7708 return {
7709 aliases: ['hbs', 'html.hbs', 'html.handlebars'],
7710 case_insensitive: true,
7711 subLanguage: 'xml',
7712 contains: [
7713 hljs.COMMENT('{{!(--)?', '(--)?}}'),
7714 {
7715 className: 'template-tag',
7716 begin: /\{\{[#\/]/, end: /\}\}/,
7717 contains: [
7718 {
7719 className: 'name',
7720 begin: /[a-zA-Z\.-]+/,
7721 keywords: BUILT_INS,
7722 starts: {
7723 endsWithParent: true, relevance: 0,
7724 contains: [
7725 hljs.QUOTE_STRING_MODE
7726 ]
7727 }
7728 }
7729 ]
7730 },
7731 {
7732 className: 'template-variable',
7733 begin: /\{\{/, end: /\}\}/,
7734 keywords: BUILT_INS
7735 }
7736 ]
7737 };
7738}
7739},{name:"haskell",create:/*
7740Language: Haskell
7741Author: Jeremy Hull <sourdrums@gmail.com>
7742Contributors: Zena Treep <zena.treep@gmail.com>
7743Category: functional
7744*/
7745
7746function(hljs) {
7747 var COMMENT = {
7748 variants: [
7749 hljs.COMMENT('--', '$'),
7750 hljs.COMMENT(
7751 '{-',
7752 '-}',
7753 {
7754 contains: ['self']
7755 }
7756 )
7757 ]
7758 };
7759
7760 var PRAGMA = {
7761 className: 'meta',
7762 begin: '{-#', end: '#-}'
7763 };
7764
7765 var PREPROCESSOR = {
7766 className: 'meta',
7767 begin: '^#', end: '$'
7768 };
7769
7770 var CONSTRUCTOR = {
7771 className: 'type',
7772 begin: '\\b[A-Z][\\w\']*', // TODO: other constructors (build-in, infix).
7773 relevance: 0
7774 };
7775
7776 var LIST = {
7777 begin: '\\(', end: '\\)',
7778 illegal: '"',
7779 contains: [
7780 PRAGMA,
7781 PREPROCESSOR,
7782 {className: 'type', begin: '\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?'},
7783 hljs.inherit(hljs.TITLE_MODE, {begin: '[_a-z][\\w\']*'}),
7784 COMMENT
7785 ]
7786 };
7787
7788 var RECORD = {
7789 begin: '{', end: '}',
7790 contains: LIST.contains
7791 };
7792
7793 return {
7794 aliases: ['hs'],
7795 keywords:
7796 'let in if then else case of where do module import hiding ' +
7797 'qualified type data newtype deriving class instance as default ' +
7798 'infix infixl infixr foreign export ccall stdcall cplusplus ' +
7799 'jvm dotnet safe unsafe family forall mdo proc rec',
7800 contains: [
7801
7802 // Top-level constructions.
7803
7804 {
7805 beginKeywords: 'module', end: 'where',
7806 keywords: 'module where',
7807 contains: [LIST, COMMENT],
7808 illegal: '\\W\\.|;'
7809 },
7810 {
7811 begin: '\\bimport\\b', end: '$',
7812 keywords: 'import qualified as hiding',
7813 contains: [LIST, COMMENT],
7814 illegal: '\\W\\.|;'
7815 },
7816
7817 {
7818 className: 'class',
7819 begin: '^(\\s*)?(class|instance)\\b', end: 'where',
7820 keywords: 'class family instance where',
7821 contains: [CONSTRUCTOR, LIST, COMMENT]
7822 },
7823 {
7824 className: 'class',
7825 begin: '\\b(data|(new)?type)\\b', end: '$',
7826 keywords: 'data family type newtype deriving',
7827 contains: [PRAGMA, CONSTRUCTOR, LIST, RECORD, COMMENT]
7828 },
7829 {
7830 beginKeywords: 'default', end: '$',
7831 contains: [CONSTRUCTOR, LIST, COMMENT]
7832 },
7833 {
7834 beginKeywords: 'infix infixl infixr', end: '$',
7835 contains: [hljs.C_NUMBER_MODE, COMMENT]
7836 },
7837 {
7838 begin: '\\bforeign\\b', end: '$',
7839 keywords: 'foreign import export ccall stdcall cplusplus jvm ' +
7840 'dotnet safe unsafe',
7841 contains: [CONSTRUCTOR, hljs.QUOTE_STRING_MODE, COMMENT]
7842 },
7843 {
7844 className: 'meta',
7845 begin: '#!\\/usr\\/bin\\/env\ runhaskell', end: '$'
7846 },
7847
7848 // "Whitespaces".
7849
7850 PRAGMA,
7851 PREPROCESSOR,
7852
7853 // Literals and names.
7854
7855 // TODO: characters.
7856 hljs.QUOTE_STRING_MODE,
7857 hljs.C_NUMBER_MODE,
7858 CONSTRUCTOR,
7859 hljs.inherit(hljs.TITLE_MODE, {begin: '^[_a-z][\\w\']*'}),
7860
7861 COMMENT,
7862
7863 {begin: '->|<-'} // No markup, relevance booster
7864 ]
7865 };
7866}
7867},{name:"haxe",create:/*
7868Language: Haxe
7869Author: Christopher Kaster <ikasoki@gmail.com> (Based on the actionscript.js language file by Alexander Myadzel)
7870*/
7871
7872function(hljs) {
7873 var IDENT_RE = '[a-zA-Z_$][a-zA-Z0-9_$]*';
7874 var IDENT_FUNC_RETURN_TYPE_RE = '([*]|[a-zA-Z_$][a-zA-Z0-9_$]*)';
7875
7876 return {
7877 aliases: ['hx'],
7878 keywords: {
7879 keyword: 'break callback case cast catch class continue default do dynamic else enum extends extern ' +
7880 'for function here if implements import in inline interface never new override package private ' +
7881 'public return static super switch this throw trace try typedef untyped using var while',
7882 literal: 'true false null'
7883 },
7884 contains: [
7885 hljs.APOS_STRING_MODE,
7886 hljs.QUOTE_STRING_MODE,
7887 hljs.C_LINE_COMMENT_MODE,
7888 hljs.C_BLOCK_COMMENT_MODE,
7889 hljs.C_NUMBER_MODE,
7890 {
7891 className: 'class',
7892 beginKeywords: 'class interface', end: '{', excludeEnd: true,
7893 contains: [
7894 {
7895 beginKeywords: 'extends implements'
7896 },
7897 hljs.TITLE_MODE
7898 ]
7899 },
7900 {
7901 className: 'meta',
7902 begin: '#', end: '$',
7903 keywords: {'meta-keyword': 'if else elseif end error'}
7904 },
7905 {
7906 className: 'function',
7907 beginKeywords: 'function', end: '[{;]', excludeEnd: true,
7908 illegal: '\\S',
7909 contains: [
7910 hljs.TITLE_MODE,
7911 {
7912 className: 'params',
7913 begin: '\\(', end: '\\)',
7914 contains: [
7915 hljs.APOS_STRING_MODE,
7916 hljs.QUOTE_STRING_MODE,
7917 hljs.C_LINE_COMMENT_MODE,
7918 hljs.C_BLOCK_COMMENT_MODE
7919 ]
7920 },
7921 {
7922 begin: ':\\s*' + IDENT_FUNC_RETURN_TYPE_RE
7923 }
7924 ]
7925 }
7926 ]
7927 };
7928}
7929},{name:"hsp",create:/*
7930Language: HSP
7931Author: prince <MC.prince.0203@gmail.com>
7932Website: http://prince.webcrow.jp/
7933Category: scripting
7934*/
7935
7936function(hljs) {
7937 return {
7938 case_insensitive: true,
7939 keywords: 'goto gosub return break repeat loop continue wait await dim sdim foreach dimtype dup dupptr end stop newmod delmod mref run exgoto on mcall assert logmes newlab resume yield onexit onerror onkey onclick oncmd exist delete mkdir chdir dirlist bload bsave bcopy memfile if else poke wpoke lpoke getstr chdpm memexpand memcpy memset notesel noteadd notedel noteload notesave randomize noteunsel noteget split strrep setease button chgdisp exec dialog mmload mmplay mmstop mci pset pget syscolor mes print title pos circle cls font sysfont objsize picload color palcolor palette redraw width gsel gcopy gzoom gmode bmpsave hsvcolor getkey listbox chkbox combox input mesbox buffer screen bgscr mouse objsel groll line clrobj boxf objprm objmode stick grect grotate gsquare gradf objimage objskip objenable celload celdiv celput newcom querycom delcom cnvstow comres axobj winobj sendmsg comevent comevarg sarrayconv callfunc cnvwtos comevdisp libptr system hspstat hspver stat cnt err strsize looplev sublev iparam wparam lparam refstr refdval int rnd strlen length length2 length3 length4 vartype gettime peek wpeek lpeek varptr varuse noteinfo instr abs limit getease str strmid strf getpath strtrim sin cos tan atan sqrt double absf expf logf limitf powf geteasef mousex mousey mousew hwnd hinstance hdc ginfo objinfo dirinfo sysinfo thismod __hspver__ __hsp30__ __date__ __time__ __line__ __file__ _debug __hspdef__ and or xor not screen_normal screen_palette screen_hide screen_fixedsize screen_tool screen_frame gmode_gdi gmode_mem gmode_rgb0 gmode_alpha gmode_rgb0alpha gmode_add gmode_sub gmode_pixela ginfo_mx ginfo_my ginfo_act ginfo_sel ginfo_wx1 ginfo_wy1 ginfo_wx2 ginfo_wy2 ginfo_vx ginfo_vy ginfo_sizex ginfo_sizey ginfo_winx ginfo_winy ginfo_mesx ginfo_mesy ginfo_r ginfo_g ginfo_b ginfo_paluse ginfo_dispx ginfo_dispy ginfo_cx ginfo_cy ginfo_intid ginfo_newid ginfo_sx ginfo_sy objinfo_mode objinfo_bmscr objinfo_hwnd notemax notesize dir_cur dir_exe dir_win dir_sys dir_cmdline dir_desktop dir_mydoc dir_tv font_normal font_bold font_italic font_underline font_strikeout font_antialias objmode_normal objmode_guifont objmode_usefont gsquare_grad msgothic msmincho do until while wend for next _break _continue switch case default swbreak swend ddim ldim alloc m_pi rad2deg deg2rad ease_linear ease_quad_in ease_quad_out ease_quad_inout ease_cubic_in ease_cubic_out ease_cubic_inout ease_quartic_in ease_quartic_out ease_quartic_inout ease_bounce_in ease_bounce_out ease_bounce_inout ease_shake_in ease_shake_out ease_shake_inout ease_loop',
7940 contains: [
7941 hljs.C_LINE_COMMENT_MODE,
7942 hljs.C_BLOCK_COMMENT_MODE,
7943 hljs.QUOTE_STRING_MODE,
7944 hljs.APOS_STRING_MODE,
7945
7946 {
7947 // multi-line string
7948 className: 'string',
7949 begin: '{"', end: '"}',
7950 contains: [hljs.BACKSLASH_ESCAPE]
7951 },
7952
7953 hljs.COMMENT(';', '$'),
7954
7955 {
7956 // pre-processor
7957 className: 'meta',
7958 begin: '#', end: '$',
7959 keywords: {'meta-keyword': 'addion cfunc cmd cmpopt comfunc const defcfunc deffunc define else endif enum epack func global if ifdef ifndef include modcfunc modfunc modinit modterm module pack packopt regcmd runtime undef usecom uselib'},
7960 contains: [
7961 hljs.inherit(hljs.QUOTE_STRING_MODE, {className: 'meta-string'}),
7962 hljs.NUMBER_MODE,
7963 hljs.C_NUMBER_MODE,
7964 hljs.C_LINE_COMMENT_MODE,
7965 hljs.C_BLOCK_COMMENT_MODE
7966 ]
7967 },
7968
7969 {
7970 // label
7971 className: 'symbol',
7972 begin: '^\\*(\\w+|@)'
7973 },
7974
7975 hljs.NUMBER_MODE,
7976 hljs.C_NUMBER_MODE
7977 ]
7978 };
7979}
7980},{name:"http",create:/*
7981Language: HTTP
7982Description: HTTP request and response headers with automatic body highlighting
7983Author: Ivan Sagalaev <maniac@softwaremaniacs.org>
7984Category: common, protocols
7985*/
7986
7987function(hljs) {
7988 var VERSION = 'HTTP/[0-9\\.]+';
7989 return {
7990 aliases: ['https'],
7991 illegal: '\\S',
7992 contains: [
7993 {
7994 begin: '^' + VERSION, end: '$',
7995 contains: [{className: 'number', begin: '\\b\\d{3}\\b'}]
7996 },
7997 {
7998 begin: '^[A-Z]+ (.*?) ' + VERSION + '$', returnBegin: true, end: '$',
7999 contains: [
8000 {
8001 className: 'string',
8002 begin: ' ', end: ' ',
8003 excludeBegin: true, excludeEnd: true
8004 },
8005 {
8006 begin: VERSION
8007 },
8008 {
8009 className: 'keyword',
8010 begin: '[A-Z]+'
8011 }
8012 ]
8013 },
8014 {
8015 className: 'attribute',
8016 begin: '^\\w', end: ': ', excludeEnd: true,
8017 illegal: '\\n|\\s|=',
8018 starts: {end: '$', relevance: 0}
8019 },
8020 {
8021 begin: '\\n\\n',
8022 starts: {subLanguage: [], endsWithParent: true}
8023 }
8024 ]
8025 };
8026}
8027},{name:"inform7",create:/*
8028Language: Inform 7
8029Author: Bruno Dias <bruno.r.dias@gmail.com>
8030Description: Language definition for Inform 7, a DSL for writing parser interactive fiction.
8031*/
8032
8033function(hljs) {
8034 var START_BRACKET = '\\[';
8035 var END_BRACKET = '\\]';
8036 return {
8037 aliases: ['i7'],
8038 case_insensitive: true,
8039 keywords: {
8040 // Some keywords more or less unique to I7, for relevance.
8041 keyword:
8042 // kind:
8043 'thing room person man woman animal container ' +
8044 'supporter backdrop door ' +
8045 // characteristic:
8046 'scenery open closed locked inside gender ' +
8047 // verb:
8048 'is are say understand ' +
8049 // misc keyword:
8050 'kind of rule'
8051 },
8052 contains: [
8053 {
8054 className: 'string',
8055 begin: '"', end: '"',
8056 relevance: 0,
8057 contains: [
8058 {
8059 className: 'subst',
8060 begin: START_BRACKET, end: END_BRACKET
8061 }
8062 ]
8063 },
8064 {
8065 className: 'section',
8066 begin: /^(Volume|Book|Part|Chapter|Section|Table)\b/,
8067 end: '$'
8068 },
8069 {
8070 // Rule definition
8071 // This is here for relevance.
8072 begin: /^(Check|Carry out|Report|Instead of|To|Rule|When|Before|After)\b/,
8073 end: ':',
8074 contains: [
8075 {
8076 //Rule name
8077 begin: '\\(This', end: '\\)'
8078 }
8079 ]
8080 },
8081 {
8082 className: 'comment',
8083 begin: START_BRACKET, end: END_BRACKET,
8084 contains: ['self']
8085 }
8086 ]
8087 };
8088}
8089},{name:"ini",create:/*
8090Language: Ini
8091Contributors: Guillaume Gomez <guillaume1.gomez@gmail.com>
8092Category: common, config
8093*/
8094
8095function(hljs) {
8096 var STRING = {
8097 className: "string",
8098 contains: [hljs.BACKSLASH_ESCAPE],
8099 variants: [
8100 {
8101 begin: "'''", end: "'''",
8102 relevance: 10
8103 }, {
8104 begin: '"""', end: '"""',
8105 relevance: 10
8106 }, {
8107 begin: '"', end: '"'
8108 }, {
8109 begin: "'", end: "'"
8110 }
8111 ]
8112 };
8113 return {
8114 aliases: ['toml'],
8115 case_insensitive: true,
8116 illegal: /\S/,
8117 contains: [
8118 hljs.COMMENT(';', '$'),
8119 hljs.HASH_COMMENT_MODE,
8120 {
8121 className: 'section',
8122 begin: /^\s*\[+/, end: /\]+/
8123 },
8124 {
8125 begin: /^[a-z0-9\[\]_-]+\s*=\s*/, end: '$',
8126 returnBegin: true,
8127 contains: [
8128 {
8129 className: 'attr',
8130 begin: /[a-z0-9\[\]_-]+/
8131 },
8132 {
8133 begin: /=/, endsWithParent: true,
8134 relevance: 0,
8135 contains: [
8136 {
8137 className: 'literal',
8138 begin: /\bon|off|true|false|yes|no\b/
8139 },
8140 {
8141 className: 'variable',
8142 variants: [
8143 {begin: /\$[\w\d"][\w\d_]*/},
8144 {begin: /\$\{(.*?)}/}
8145 ]
8146 },
8147 STRING,
8148 {
8149 className: 'number',
8150 begin: /([\+\-]+)?[\d]+_[\d_]+/
8151 },
8152 hljs.NUMBER_MODE
8153 ]
8154 }
8155 ]
8156 }
8157 ]
8158 };
8159}
8160},{name:"irpf90",create:/*
8161Language: IRPF90
8162Author: Anthony Scemama <scemama@irsamc.ups-tlse.fr>
8163Description: IRPF90 is an open-source Fortran code generator : http://irpf90.ups-tlse.fr
8164Category: scientific
8165*/
8166
8167function(hljs) {
8168 var PARAMS = {
8169 className: 'params',
8170 begin: '\\(', end: '\\)'
8171 };
8172
8173 var F_KEYWORDS = {
8174 literal: '.False. .True.',
8175 keyword: 'kind do while private call intrinsic where elsewhere ' +
8176 'type endtype endmodule endselect endinterface end enddo endif if forall endforall only contains default return stop then ' +
8177 'public subroutine|10 function program .and. .or. .not. .le. .eq. .ge. .gt. .lt. ' +
8178 'goto save else use module select case ' +
8179 'access blank direct exist file fmt form formatted iostat name named nextrec number opened rec recl sequential status unformatted unit ' +
8180 'continue format pause cycle exit ' +
8181 'c_null_char c_alert c_backspace c_form_feed flush wait decimal round iomsg ' +
8182 'synchronous nopass non_overridable pass protected volatile abstract extends import ' +
8183 'non_intrinsic value deferred generic final enumerator class associate bind enum ' +
8184 'c_int c_short c_long c_long_long c_signed_char c_size_t c_int8_t c_int16_t c_int32_t c_int64_t c_int_least8_t c_int_least16_t ' +
8185 'c_int_least32_t c_int_least64_t c_int_fast8_t c_int_fast16_t c_int_fast32_t c_int_fast64_t c_intmax_t C_intptr_t c_float c_double ' +
8186 'c_long_double c_float_complex c_double_complex c_long_double_complex c_bool c_char c_null_ptr c_null_funptr ' +
8187 'c_new_line c_carriage_return c_horizontal_tab c_vertical_tab iso_c_binding c_loc c_funloc c_associated c_f_pointer ' +
8188 'c_ptr c_funptr iso_fortran_env character_storage_size error_unit file_storage_size input_unit iostat_end iostat_eor ' +
8189 'numeric_storage_size output_unit c_f_procpointer ieee_arithmetic ieee_support_underflow_control ' +
8190 'ieee_get_underflow_mode ieee_set_underflow_mode newunit contiguous recursive ' +
8191 'pad position action delim readwrite eor advance nml interface procedure namelist include sequence elemental pure ' +
8192 'integer real character complex logical dimension allocatable|10 parameter ' +
8193 'external implicit|10 none double precision assign intent optional pointer ' +
8194 'target in out common equivalence data ' +
8195 // IRPF90 special keywords
8196 'begin_provider &begin_provider end_provider begin_shell end_shell begin_template end_template subst assert touch ' +
8197 'soft_touch provide no_dep free irp_if irp_else irp_endif irp_write irp_read',
8198 built_in: 'alog alog10 amax0 amax1 amin0 amin1 amod cabs ccos cexp clog csin csqrt dabs dacos dasin datan datan2 dcos dcosh ddim dexp dint ' +
8199 'dlog dlog10 dmax1 dmin1 dmod dnint dsign dsin dsinh dsqrt dtan dtanh float iabs idim idint idnint ifix isign max0 max1 min0 min1 sngl ' +
8200 'algama cdabs cdcos cdexp cdlog cdsin cdsqrt cqabs cqcos cqexp cqlog cqsin cqsqrt dcmplx dconjg derf derfc dfloat dgamma dimag dlgama ' +
8201 'iqint qabs qacos qasin qatan qatan2 qcmplx qconjg qcos qcosh qdim qerf qerfc qexp qgamma qimag qlgama qlog qlog10 qmax1 qmin1 qmod ' +
8202 'qnint qsign qsin qsinh qsqrt qtan qtanh abs acos aimag aint anint asin atan atan2 char cmplx conjg cos cosh exp ichar index int log ' +
8203 'log10 max min nint sign sin sinh sqrt tan tanh print write dim lge lgt lle llt mod nullify allocate deallocate ' +
8204 'adjustl adjustr all allocated any associated bit_size btest ceiling count cshift date_and_time digits dot_product ' +
8205 'eoshift epsilon exponent floor fraction huge iand ibclr ibits ibset ieor ior ishft ishftc lbound len_trim matmul ' +
8206 'maxexponent maxloc maxval merge minexponent minloc minval modulo mvbits nearest pack present product ' +
8207 'radix random_number random_seed range repeat reshape rrspacing scale scan selected_int_kind selected_real_kind ' +
8208 'set_exponent shape size spacing spread sum system_clock tiny transpose trim ubound unpack verify achar iachar transfer ' +
8209 'dble entry dprod cpu_time command_argument_count get_command get_command_argument get_environment_variable is_iostat_end ' +
8210 'ieee_arithmetic ieee_support_underflow_control ieee_get_underflow_mode ieee_set_underflow_mode ' +
8211 'is_iostat_eor move_alloc new_line selected_char_kind same_type_as extends_type_of' +
8212 'acosh asinh atanh bessel_j0 bessel_j1 bessel_jn bessel_y0 bessel_y1 bessel_yn erf erfc erfc_scaled gamma log_gamma hypot norm2 ' +
8213 'atomic_define atomic_ref execute_command_line leadz trailz storage_size merge_bits ' +
8214 'bge bgt ble blt dshiftl dshiftr findloc iall iany iparity image_index lcobound ucobound maskl maskr ' +
8215 'num_images parity popcnt poppar shifta shiftl shiftr this_image ' +
8216 // IRPF90 special built_ins
8217 'IRP_ALIGN irp_here'
8218 };
8219 return {
8220 case_insensitive: true,
8221 keywords: F_KEYWORDS,
8222 illegal: /\/\*/,
8223 contains: [
8224 hljs.inherit(hljs.APOS_STRING_MODE, {className: 'string', relevance: 0}),
8225 hljs.inherit(hljs.QUOTE_STRING_MODE, {className: 'string', relevance: 0}),
8226 {
8227 className: 'function',
8228 beginKeywords: 'subroutine function program',
8229 illegal: '[${=\\n]',
8230 contains: [hljs.UNDERSCORE_TITLE_MODE, PARAMS]
8231 },
8232 hljs.COMMENT('!', '$', {relevance: 0}),
8233 hljs.COMMENT('begin_doc', 'end_doc', {relevance: 10}),
8234 {
8235 className: 'number',
8236 begin: '(?=\\b|\\+|\\-|\\.)(?=\\.\\d|\\d)(?:\\d+)?(?:\\.?\\d*)(?:[de][+-]?\\d+)?\\b\\.?',
8237 relevance: 0
8238 }
8239 ]
8240 };
8241}
8242},{name:"java",create:/*
8243Language: Java
8244Author: Vsevolod Solovyov <vsevolod.solovyov@gmail.com>
8245Category: common, enterprise
8246*/
8247
8248function(hljs) {
8249 var GENERIC_IDENT_RE = hljs.UNDERSCORE_IDENT_RE + '(<(' + hljs.UNDERSCORE_IDENT_RE + '|\\s*,\\s*)+>)?';
8250 var KEYWORDS =
8251 'false synchronized int abstract float private char boolean static null if const ' +
8252 'for true while long strictfp finally protected import native final void ' +
8253 'enum else break transient catch instanceof byte super volatile case assert short ' +
8254 'package default double public try this switch continue throws protected public private';
8255
8256 // https://docs.oracle.com/javase/7/docs/technotes/guides/language/underscores-literals.html
8257 var JAVA_NUMBER_RE = '\\b' +
8258 '(' +
8259 '0[bB]([01]+[01_]+[01]+|[01]+)' + // 0b...
8260 '|' +
8261 '0[xX]([a-fA-F0-9]+[a-fA-F0-9_]+[a-fA-F0-9]+|[a-fA-F0-9]+)' + // 0x...
8262 '|' +
8263 '(' +
8264 '([\\d]+[\\d_]+[\\d]+|[\\d]+)(\\.([\\d]+[\\d_]+[\\d]+|[\\d]+))?' +
8265 '|' +
8266 '\\.([\\d]+[\\d_]+[\\d]+|[\\d]+)' +
8267 ')' +
8268 '([eE][-+]?\\d+)?' + // octal, decimal, float
8269 ')' +
8270 '[lLfF]?';
8271 var JAVA_NUMBER_MODE = {
8272 className: 'number',
8273 begin: JAVA_NUMBER_RE,
8274 relevance: 0
8275 };
8276
8277 return {
8278 aliases: ['jsp'],
8279 keywords: KEYWORDS,
8280 illegal: /<\/|#/,
8281 contains: [
8282 hljs.COMMENT(
8283 '/\\*\\*',
8284 '\\*/',
8285 {
8286 relevance : 0,
8287 contains : [
8288 {
8289 // eat up @'s in emails to prevent them to be recognized as doctags
8290 begin: /\w+@/, relevance: 0
8291 },
8292 {
8293 className : 'doctag',
8294 begin : '@[A-Za-z]+'
8295 }
8296 ]
8297 }
8298 ),
8299 hljs.C_LINE_COMMENT_MODE,
8300 hljs.C_BLOCK_COMMENT_MODE,
8301 hljs.APOS_STRING_MODE,
8302 hljs.QUOTE_STRING_MODE,
8303 {
8304 className: 'class',
8305 beginKeywords: 'class interface', end: /[{;=]/, excludeEnd: true,
8306 keywords: 'class interface',
8307 illegal: /[:"\[\]]/,
8308 contains: [
8309 {beginKeywords: 'extends implements'},
8310 hljs.UNDERSCORE_TITLE_MODE
8311 ]
8312 },
8313 {
8314 // Expression keywords prevent 'keyword Name(...)' from being
8315 // recognized as a function definition
8316 beginKeywords: 'new throw return else',
8317 relevance: 0
8318 },
8319 {
8320 className: 'function',
8321 begin: '(' + GENERIC_IDENT_RE + '\\s+)+' + hljs.UNDERSCORE_IDENT_RE + '\\s*\\(', returnBegin: true, end: /[{;=]/,
8322 excludeEnd: true,
8323 keywords: KEYWORDS,
8324 contains: [
8325 {
8326 begin: hljs.UNDERSCORE_IDENT_RE + '\\s*\\(', returnBegin: true,
8327 relevance: 0,
8328 contains: [hljs.UNDERSCORE_TITLE_MODE]
8329 },
8330 {
8331 className: 'params',
8332 begin: /\(/, end: /\)/,
8333 keywords: KEYWORDS,
8334 relevance: 0,
8335 contains: [
8336 hljs.APOS_STRING_MODE,
8337 hljs.QUOTE_STRING_MODE,
8338 hljs.C_NUMBER_MODE,
8339 hljs.C_BLOCK_COMMENT_MODE
8340 ]
8341 },
8342 hljs.C_LINE_COMMENT_MODE,
8343 hljs.C_BLOCK_COMMENT_MODE
8344 ]
8345 },
8346 JAVA_NUMBER_MODE,
8347 {
8348 className: 'meta', begin: '@[A-Za-z]+'
8349 }
8350 ]
8351 };
8352}
8353},{name:"javascript",create:/*
8354Language: JavaScript
8355Category: common, scripting
8356*/
8357
8358function(hljs) {
8359 return {
8360 aliases: ['js'],
8361 keywords: {
8362 keyword:
8363 'in of if for while finally var new function do return void else break catch ' +
8364 'instanceof with throw case default try this switch continue typeof delete ' +
8365 'let yield const export super debugger as async await ' +
8366 // ECMAScript 6 modules import
8367 'import from as'
8368 ,
8369 literal:
8370 'true false null undefined NaN Infinity',
8371 built_in:
8372 'eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent ' +
8373 'encodeURI encodeURIComponent escape unescape Object Function Boolean Error ' +
8374 'EvalError InternalError RangeError ReferenceError StopIteration SyntaxError ' +
8375 'TypeError URIError Number Math Date String RegExp Array Float32Array ' +
8376 'Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array ' +
8377 'Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require ' +
8378 'module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect ' +
8379 'Promise'
8380 },
8381 contains: [
8382 {
8383 className: 'meta',
8384 relevance: 10,
8385 begin: /^\s*['"]use (strict|asm)['"]/
8386 },
8387 hljs.APOS_STRING_MODE,
8388 hljs.QUOTE_STRING_MODE,
8389 { // template string
8390 className: 'string',
8391 begin: '`', end: '`',
8392 contains: [
8393 hljs.BACKSLASH_ESCAPE,
8394 {
8395 className: 'subst',
8396 begin: '\\$\\{', end: '\\}'
8397 }
8398 ]
8399 },
8400 hljs.C_LINE_COMMENT_MODE,
8401 hljs.C_BLOCK_COMMENT_MODE,
8402 {
8403 className: 'number',
8404 variants: [
8405 { begin: '\\b(0[bB][01]+)' },
8406 { begin: '\\b(0[oO][0-7]+)' },
8407 { begin: hljs.C_NUMBER_RE }
8408 ],
8409 relevance: 0
8410 },
8411 { // "value" container
8412 begin: '(' + hljs.RE_STARTERS_RE + '|\\b(case|return|throw)\\b)\\s*',
8413 keywords: 'return throw case',
8414 contains: [
8415 hljs.C_LINE_COMMENT_MODE,
8416 hljs.C_BLOCK_COMMENT_MODE,
8417 hljs.REGEXP_MODE,
8418 { // E4X / JSX
8419 begin: /</, end: />\s*[);\]]/,
8420 relevance: 0,
8421 subLanguage: 'xml'
8422 }
8423 ],
8424 relevance: 0
8425 },
8426 {
8427 className: 'function',
8428 beginKeywords: 'function', end: /\{/, excludeEnd: true,
8429 contains: [
8430 hljs.inherit(hljs.TITLE_MODE, {begin: /[A-Za-z$_][0-9A-Za-z$_]*/}),
8431 {
8432 className: 'params',
8433 begin: /\(/, end: /\)/,
8434 excludeBegin: true,
8435 excludeEnd: true,
8436 contains: [
8437 hljs.C_LINE_COMMENT_MODE,
8438 hljs.C_BLOCK_COMMENT_MODE
8439 ]
8440 }
8441 ],
8442 illegal: /\[|%/
8443 },
8444 {
8445 begin: /\$[(.]/ // relevance booster for a pattern common to JS libs: `$(something)` and `$.something`
8446 },
8447 {
8448 begin: '\\.' + hljs.IDENT_RE, relevance: 0 // hack: prevents detection of keywords after dots
8449 },
8450 { // ES6 class
8451 className: 'class',
8452 beginKeywords: 'class', end: /[{;=]/, excludeEnd: true,
8453 illegal: /[:"\[\]]/,
8454 contains: [
8455 {beginKeywords: 'extends'},
8456 hljs.UNDERSCORE_TITLE_MODE
8457 ]
8458 },
8459 {
8460 beginKeywords: 'constructor', end: /\{/, excludeEnd: true
8461 }
8462 ],
8463 illegal: /#/
8464 };
8465}
8466},{name:"json",create:/*
8467Language: JSON
8468Author: Ivan Sagalaev <maniac@softwaremaniacs.org>
8469Category: common, protocols
8470*/
8471
8472function(hljs) {
8473 var LITERALS = {literal: 'true false null'};
8474 var TYPES = [
8475 hljs.QUOTE_STRING_MODE,
8476 hljs.C_NUMBER_MODE
8477 ];
8478 var VALUE_CONTAINER = {
8479 end: ',', endsWithParent: true, excludeEnd: true,
8480 contains: TYPES,
8481 keywords: LITERALS
8482 };
8483 var OBJECT = {
8484 begin: '{', end: '}',
8485 contains: [
8486 {
8487 className: 'attr',
8488 begin: '\\s*"', end: '"\\s*:\\s*', excludeBegin: true, excludeEnd: true,
8489 contains: [hljs.BACKSLASH_ESCAPE],
8490 illegal: '\\n',
8491 starts: VALUE_CONTAINER
8492 }
8493 ],
8494 illegal: '\\S'
8495 };
8496 var ARRAY = {
8497 begin: '\\[', end: '\\]',
8498 contains: [hljs.inherit(VALUE_CONTAINER)], // inherit is a workaround for a bug that makes shared modes with endsWithParent compile only the ending of one of the parents
8499 illegal: '\\S'
8500 };
8501 TYPES.splice(TYPES.length, 0, OBJECT, ARRAY);
8502 return {
8503 contains: TYPES,
8504 keywords: LITERALS,
8505 illegal: '\\S'
8506 };
8507}
8508},{name:"julia",create:/*
8509Language: Julia
8510Author: Kenta Sato <bicycle1885@gmail.com>
8511*/
8512
8513function(hljs) {
8514 // Since there are numerous special names in Julia, it is too much trouble
8515 // to maintain them by hand. Hence these names (i.e. keywords, literals and
8516 // built-ins) are automatically generated from Julia (v0.3.0 and v0.4.1)
8517 // itself through following scripts for each.
8518
8519 var KEYWORDS = {
8520 // # keyword generator
8521 // println("in")
8522 // for kw in Base.REPLCompletions.complete_keyword("")
8523 // println(kw)
8524 // end
8525 keyword:
8526 'in abstract baremodule begin bitstype break catch ccall const continue do else elseif end export ' +
8527 'finally for function global if immutable import importall let local macro module quote return try type ' +
8528 'typealias using while',
8529
8530 // # literal generator
8531 // println("true")
8532 // println("false")
8533 // for name in Base.REPLCompletions.completions("", 0)[1]
8534 // try
8535 // s = symbol(name)
8536 // v = eval(s)
8537 // if !isa(v, Function) &&
8538 // !isa(v, DataType) &&
8539 // !isa(v, IntrinsicFunction) &&
8540 // !issubtype(typeof(v), Tuple) &&
8541 // !isa(v, Union) &&
8542 // !isa(v, Module) &&
8543 // !isa(v, TypeConstructor) &&
8544 // !isa(v, TypeVar) &&
8545 // !isa(v, Colon)
8546 // println(name)
8547 // end
8548 // end
8549 // end
8550 literal:
8551 // v0.3
8552 'true false ARGS CPU_CORES C_NULL DL_LOAD_PATH DevNull ENDIAN_BOM ENV I|0 Inf Inf16 Inf32 ' +
8553 'InsertionSort JULIA_HOME LOAD_PATH MS_ASYNC MS_INVALIDATE MS_SYNC MergeSort NaN NaN16 NaN32 OS_NAME QuickSort ' +
8554 'RTLD_DEEPBIND RTLD_FIRST RTLD_GLOBAL RTLD_LAZY RTLD_LOCAL RTLD_NODELETE RTLD_NOLOAD RTLD_NOW RoundDown ' +
8555 'RoundFromZero RoundNearest RoundToZero RoundUp STDERR STDIN STDOUT VERSION WORD_SIZE catalan cglobal e|0 eu|0 ' +
8556 'eulergamma golden im nothing pi γ π φ ' +
8557 // v0.4 (diff)
8558 'Inf64 NaN64 RoundNearestTiesAway RoundNearestTiesUp ',
8559
8560 // # built_in generator:
8561 // for name in Base.REPLCompletions.completions("", 0)[1]
8562 // try
8563 // v = eval(symbol(name))
8564 // if isa(v, DataType) || isa(v, TypeConstructor) || isa(v, TypeVar)
8565 // println(name)
8566 // end
8567 // end
8568 // end
8569 built_in:
8570 // v0.3
8571 'ANY ASCIIString AbstractArray AbstractRNG AbstractSparseArray Any ArgumentError Array Associative Base64Pipe ' +
8572 'Bidiagonal BigFloat BigInt BitArray BitMatrix BitVector Bool BoundsError Box CFILE Cchar Cdouble Cfloat Char ' +
8573 'CharString Cint Clong Clonglong ClusterManager Cmd Coff_t Colon Complex Complex128 Complex32 Complex64 ' +
8574 'Condition Cptrdiff_t Cshort Csize_t Cssize_t Cuchar Cuint Culong Culonglong Cushort Cwchar_t DArray DataType ' +
8575 'DenseArray Diagonal Dict DimensionMismatch DirectIndexString Display DivideError DomainError EOFError ' +
8576 'EachLine Enumerate ErrorException Exception Expr Factorization FileMonitor FileOffset Filter Float16 Float32 ' +
8577 'Float64 FloatRange FloatingPoint Function GetfieldNode GotoNode Hermitian IO IOBuffer IOStream IPv4 IPv6 ' +
8578 'InexactError Int Int128 Int16 Int32 Int64 Int8 IntSet Integer InterruptException IntrinsicFunction KeyError ' +
8579 'LabelNode LambdaStaticData LineNumberNode LoadError LocalProcess MIME MathConst MemoryError MersenneTwister ' +
8580 'Method MethodError MethodTable Module NTuple NewvarNode Nothing Number ObjectIdDict OrdinalRange ' +
8581 'OverflowError ParseError PollingFileWatcher ProcessExitedException ProcessGroup Ptr QuoteNode Range Range1 ' +
8582 'Ranges Rational RawFD Real Regex RegexMatch RemoteRef RepString RevString RopeString RoundingMode Set ' +
8583 'SharedArray Signed SparseMatrixCSC StackOverflowError Stat StatStruct StepRange String SubArray SubString ' +
8584 'SymTridiagonal Symbol SymbolNode Symmetric SystemError Task TextDisplay Timer TmStruct TopNode Triangular ' +
8585 'Tridiagonal Type TypeConstructor TypeError TypeName TypeVar UTF16String UTF32String UTF8String UdpSocket ' +
8586 'Uint Uint128 Uint16 Uint32 Uint64 Uint8 UndefRefError UndefVarError UniformScaling UnionType UnitRange ' +
8587 'Unsigned Vararg VersionNumber WString WeakKeyDict WeakRef Woodbury Zip ' +
8588 // v0.4 (diff)
8589 'AbstractChannel AbstractFloat AbstractString AssertionError Base64DecodePipe Base64EncodePipe BufferStream ' +
8590 'CapturedException CartesianIndex CartesianRange Channel Cintmax_t CompositeException Cstring Cuintmax_t ' +
8591 'Cwstring Date DateTime Dims Enum GenSym GlobalRef HTML InitError InvalidStateException Irrational LinSpace ' +
8592 'LowerTriangular NullException Nullable OutOfMemoryError Pair PartialQuickSort Pipe RandomDevice ' +
8593 'ReadOnlyMemoryError ReentrantLock Ref RemoteException SegmentationFault SerializationState SimpleVector ' +
8594 'TCPSocket Text Tuple UDPSocket UInt UInt128 UInt16 UInt32 UInt64 UInt8 UnicodeError Union UpperTriangular ' +
8595 'Val Void WorkerConfig AbstractMatrix AbstractSparseMatrix AbstractSparseVector AbstractVecOrMat AbstractVector ' +
8596 'DenseMatrix DenseVecOrMat DenseVector Matrix SharedMatrix SharedVector StridedArray StridedMatrix ' +
8597 'StridedVecOrMat StridedVector VecOrMat Vector '
8598 };
8599
8600 // ref: http://julia.readthedocs.org/en/latest/manual/variables/#allowed-variable-names
8601 var VARIABLE_NAME_RE = '[A-Za-z_\\u00A1-\\uFFFF][A-Za-z_0-9\\u00A1-\\uFFFF]*';
8602
8603 // placeholder for recursive self-reference
8604 var DEFAULT = { lexemes: VARIABLE_NAME_RE, keywords: KEYWORDS, illegal: /<\// };
8605
8606 var TYPE_ANNOTATION = {
8607 className: 'type',
8608 begin: /::/
8609 };
8610
8611 var SUBTYPE = {
8612 className: 'type',
8613 begin: /<:/
8614 };
8615
8616 // ref: http://julia.readthedocs.org/en/latest/manual/integers-and-floating-point-numbers/
8617 var NUMBER = {
8618 className: 'number',
8619 // supported numeric literals:
8620 // * binary literal (e.g. 0x10)
8621 // * octal literal (e.g. 0o76543210)
8622 // * hexadecimal literal (e.g. 0xfedcba876543210)
8623 // * hexadecimal floating point literal (e.g. 0x1p0, 0x1.2p2)
8624 // * decimal literal (e.g. 9876543210, 100_000_000)
8625 // * floating pointe literal (e.g. 1.2, 1.2f, .2, 1., 1.2e10, 1.2e-10)
8626 begin: /(\b0x[\d_]*(\.[\d_]*)?|0x\.\d[\d_]*)p[-+]?\d+|\b0[box][a-fA-F0-9][a-fA-F0-9_]*|(\b\d[\d_]*(\.[\d_]*)?|\.\d[\d_]*)([eEfF][-+]?\d+)?/,
8627 relevance: 0
8628 };
8629
8630 var CHAR = {
8631 className: 'string',
8632 begin: /'(.|\\[xXuU][a-zA-Z0-9]+)'/
8633 };
8634
8635 var INTERPOLATION = {
8636 className: 'subst',
8637 begin: /\$\(/, end: /\)/,
8638 keywords: KEYWORDS
8639 };
8640
8641 var INTERPOLATED_VARIABLE = {
8642 className: 'variable',
8643 begin: '\\$' + VARIABLE_NAME_RE
8644 };
8645
8646 // TODO: neatly escape normal code in string literal
8647 var STRING = {
8648 className: 'string',
8649 contains: [hljs.BACKSLASH_ESCAPE, INTERPOLATION, INTERPOLATED_VARIABLE],
8650 variants: [
8651 { begin: /\w*"""/, end: /"""\w*/, relevance: 10 },
8652 { begin: /\w*"/, end: /"\w*/ }
8653 ]
8654 };
8655
8656 var COMMAND = {
8657 className: 'string',
8658 contains: [hljs.BACKSLASH_ESCAPE, INTERPOLATION, INTERPOLATED_VARIABLE],
8659 begin: '`', end: '`'
8660 };
8661
8662 var MACROCALL = {
8663 className: 'meta',
8664 begin: '@' + VARIABLE_NAME_RE
8665 };
8666
8667 var COMMENT = {
8668 className: 'comment',
8669 variants: [
8670 { begin: '#=', end: '=#', relevance: 10 },
8671 { begin: '#', end: '$' }
8672 ]
8673 };
8674
8675 DEFAULT.contains = [
8676 NUMBER,
8677 CHAR,
8678 TYPE_ANNOTATION,
8679 SUBTYPE,
8680 STRING,
8681 COMMAND,
8682 MACROCALL,
8683 COMMENT,
8684 hljs.HASH_COMMENT_MODE
8685 ];
8686 INTERPOLATION.contains = DEFAULT.contains;
8687
8688 return DEFAULT;
8689}
8690},{name:"kotlin",create:/*
8691 Language: Kotlin
8692 Author: Sergey Mashkov <cy6erGn0m@gmail.com>
8693 Category: misc
8694 */
8695
8696
8697function (hljs) {
8698 var KEYWORDS = 'val var get set class trait object open private protected public ' +
8699 'final enum if else do while for when break continue throw try catch finally ' +
8700 'import package is as in return fun override default companion reified inline volatile transient native ' +
8701 'Byte Short Char Int Long Boolean Float Double Void Unit Nothing';
8702
8703 return {
8704 keywords: {
8705 keyword: KEYWORDS,
8706 literal: 'true false null'
8707 },
8708 contains : [
8709 hljs.COMMENT(
8710 '/\\*\\*',
8711 '\\*/',
8712 {
8713 relevance : 0,
8714 contains : [{
8715 className : 'doctag',
8716 begin : '@[A-Za-z]+'
8717 }]
8718 }
8719 ),
8720 hljs.C_LINE_COMMENT_MODE,
8721 hljs.C_BLOCK_COMMENT_MODE,
8722 {
8723 className: 'type',
8724 begin: /</, end: />/,
8725 returnBegin: true,
8726 excludeEnd: false,
8727 relevance: 0
8728 },
8729 {
8730 className: 'function',
8731 beginKeywords: 'fun', end: '[(]|$',
8732 returnBegin: true,
8733 excludeEnd: true,
8734 keywords: KEYWORDS,
8735 illegal: /fun\s+(<.*>)?[^\s\(]+(\s+[^\s\(]+)\s*=/,
8736 relevance: 5,
8737 contains: [
8738 {
8739 begin: hljs.UNDERSCORE_IDENT_RE + '\\s*\\(', returnBegin: true,
8740 relevance: 0,
8741 contains: [hljs.UNDERSCORE_TITLE_MODE]
8742 },
8743 {
8744 className: 'type',
8745 begin: /</, end: />/, keywords: 'reified',
8746 relevance: 0
8747 },
8748 {
8749 className: 'params',
8750 begin: /\(/, end: /\)/,
8751 keywords: KEYWORDS,
8752 relevance: 0,
8753 illegal: /\([^\(,\s:]+,/,
8754 contains: [
8755 {
8756 className: 'type',
8757 begin: /:\s*/, end: /\s*[=\)]/, excludeBegin: true, returnEnd: true,
8758 relevance: 0
8759 }
8760 ]
8761 },
8762 hljs.C_LINE_COMMENT_MODE,
8763 hljs.C_BLOCK_COMMENT_MODE
8764 ]
8765 },
8766 {
8767 className: 'class',
8768 beginKeywords: 'class trait', end: /[:\{(]|$/,
8769 excludeEnd: true,
8770 illegal: 'extends implements',
8771 contains: [
8772 hljs.UNDERSCORE_TITLE_MODE,
8773 {
8774 className: 'type',
8775 begin: /</, end: />/, excludeBegin: true, excludeEnd: true,
8776 relevance: 0
8777 },
8778 {
8779 className: 'type',
8780 begin: /[,:]\s*/, end: /[<\(,]|$/, excludeBegin: true, returnEnd: true
8781 }
8782 ]
8783 },
8784 {
8785 className: 'variable', beginKeywords: 'var val', end: /\s*[=:$]/, excludeEnd: true
8786 },
8787 hljs.QUOTE_STRING_MODE,
8788 {
8789 className: 'meta',
8790 begin: "^#!/usr/bin/env", end: '$',
8791 illegal: '\n'
8792 },
8793 hljs.C_NUMBER_MODE
8794 ]
8795 };
8796}
8797},{name:"lasso",create:/*
8798Language: Lasso
8799Author: Eric Knibbe <eric@lassosoft.com>
8800Description: Lasso is a language and server platform for database-driven web applications. This definition handles Lasso 9 syntax and LassoScript for Lasso 8.6 and earlier.
8801*/
8802
8803function(hljs) {
8804 var LASSO_IDENT_RE = '[a-zA-Z_][a-zA-Z0-9_.]*';
8805 var LASSO_ANGLE_RE = '<\\?(lasso(script)?|=)';
8806 var LASSO_CLOSE_RE = '\\]|\\?>';
8807 var LASSO_KEYWORDS = {
8808 literal:
8809 'true false none minimal full all void ' +
8810 'bw nbw ew new cn ncn lt lte gt gte eq neq rx nrx ft',
8811 built_in:
8812 'array date decimal duration integer map pair string tag xml null ' +
8813 'boolean bytes keyword list locale queue set stack staticarray ' +
8814 'local var variable global data self inherited currentcapture givenblock',
8815 keyword:
8816 'error_code error_msg error_pop error_push error_reset cache ' +
8817 'database_names database_schemanames database_tablenames define_tag ' +
8818 'define_type email_batch encode_set html_comment handle handle_error ' +
8819 'header if inline iterate ljax_target link link_currentaction ' +
8820 'link_currentgroup link_currentrecord link_detail link_firstgroup ' +
8821 'link_firstrecord link_lastgroup link_lastrecord link_nextgroup ' +
8822 'link_nextrecord link_prevgroup link_prevrecord log loop ' +
8823 'namespace_using output_none portal private protect records referer ' +
8824 'referrer repeating resultset rows search_args search_arguments ' +
8825 'select sort_args sort_arguments thread_atomic value_list while ' +
8826 'abort case else if_empty if_false if_null if_true loop_abort ' +
8827 'loop_continue loop_count params params_up return return_value ' +
8828 'run_children soap_definetag soap_lastrequest soap_lastresponse ' +
8829 'tag_name ascending average by define descending do equals ' +
8830 'frozen group handle_failure import in into join let match max ' +
8831 'min on order parent protected provide public require returnhome ' +
8832 'skip split_thread sum take thread to trait type where with ' +
8833 'yield yieldhome and or not'
8834 };
8835 var HTML_COMMENT = hljs.COMMENT(
8836 '<!--',
8837 '-->',
8838 {
8839 relevance: 0
8840 }
8841 );
8842 var LASSO_NOPROCESS = {
8843 className: 'meta',
8844 begin: '\\[noprocess\\]',
8845 starts: {
8846 end: '\\[/noprocess\\]',
8847 returnEnd: true,
8848 contains: [HTML_COMMENT]
8849 }
8850 };
8851 var LASSO_START = {
8852 className: 'meta',
8853 begin: '\\[/noprocess|' + LASSO_ANGLE_RE
8854 };
8855 var LASSO_DATAMEMBER = {
8856 className: 'symbol',
8857 begin: '\'' + LASSO_IDENT_RE + '\''
8858 };
8859 var LASSO_CODE = [
8860 hljs.COMMENT(
8861 '/\\*\\*!',
8862 '\\*/'
8863 ),
8864 hljs.C_LINE_COMMENT_MODE,
8865 hljs.C_BLOCK_COMMENT_MODE,
8866 hljs.inherit(hljs.C_NUMBER_MODE, {begin: hljs.C_NUMBER_RE + '|(infinity|nan)\\b'}),
8867 hljs.inherit(hljs.APOS_STRING_MODE, {illegal: null}),
8868 hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null}),
8869 {
8870 className: 'string',
8871 begin: '`', end: '`'
8872 },
8873 { // variables
8874 variants: [
8875 {
8876 begin: '[#$]' + LASSO_IDENT_RE
8877 },
8878 {
8879 begin: '#', end: '\\d+',
8880 illegal: '\\W'
8881 }
8882 ]
8883 },
8884 {
8885 className: 'type',
8886 begin: '::\\s*', end: LASSO_IDENT_RE,
8887 illegal: '\\W'
8888 },
8889 {
8890 className: 'attr',
8891 variants: [
8892 {
8893 begin: '-(?!infinity)' + hljs.UNDERSCORE_IDENT_RE,
8894 relevance: 0
8895 },
8896 {
8897 begin: '(\\.\\.\\.)'
8898 }
8899 ]
8900 },
8901 {
8902 begin: /(->|\.\.?)\s*/,
8903 relevance: 0,
8904 contains: [LASSO_DATAMEMBER]
8905 },
8906 {
8907 className: 'class',
8908 beginKeywords: 'define',
8909 returnEnd: true, end: '\\(|=>',
8910 contains: [
8911 hljs.inherit(hljs.TITLE_MODE, {begin: hljs.UNDERSCORE_IDENT_RE + '(=(?!>))?'})
8912 ]
8913 }
8914 ];
8915 return {
8916 aliases: ['ls', 'lassoscript'],
8917 case_insensitive: true,
8918 lexemes: LASSO_IDENT_RE + '|&[lg]t;',
8919 keywords: LASSO_KEYWORDS,
8920 contains: [
8921 {
8922 className: 'meta',
8923 begin: LASSO_CLOSE_RE,
8924 relevance: 0,
8925 starts: { // markup
8926 end: '\\[|' + LASSO_ANGLE_RE,
8927 returnEnd: true,
8928 relevance: 0,
8929 contains: [HTML_COMMENT]
8930 }
8931 },
8932 LASSO_NOPROCESS,
8933 LASSO_START,
8934 {
8935 className: 'meta',
8936 begin: '\\[no_square_brackets',
8937 starts: {
8938 end: '\\[/no_square_brackets\\]', // not implemented in the language
8939 lexemes: LASSO_IDENT_RE + '|&[lg]t;',
8940 keywords: LASSO_KEYWORDS,
8941 contains: [
8942 {
8943 className: 'meta',
8944 begin: LASSO_CLOSE_RE,
8945 relevance: 0,
8946 starts: {
8947 end: '\\[noprocess\\]|' + LASSO_ANGLE_RE,
8948 returnEnd: true,
8949 contains: [HTML_COMMENT]
8950 }
8951 },
8952 LASSO_NOPROCESS,
8953 LASSO_START
8954 ].concat(LASSO_CODE)
8955 }
8956 },
8957 {
8958 className: 'meta',
8959 begin: '\\[',
8960 relevance: 0
8961 },
8962 {
8963 className: 'meta',
8964 begin: '^#!.+lasso9\\b',
8965 relevance: 10
8966 }
8967 ].concat(LASSO_CODE)
8968 };
8969}
8970},{name:"less",create:/*
8971Language: Less
8972Author: Max Mikhailov <seven.phases.max@gmail.com>
8973Category: css
8974*/
8975
8976function(hljs) {
8977 var IDENT_RE = '[\\w-]+'; // yes, Less identifiers may begin with a digit
8978 var INTERP_IDENT_RE = '(' + IDENT_RE + '|@{' + IDENT_RE + '})';
8979
8980 /* Generic Modes */
8981
8982 var RULES = [], VALUE = []; // forward def. for recursive modes
8983
8984 var STRING_MODE = function(c) { return {
8985 // Less strings are not multiline (also include '~' for more consistent coloring of "escaped" strings)
8986 className: 'string', begin: '~?' + c + '.*?' + c
8987 };};
8988
8989 var IDENT_MODE = function(name, begin, relevance) { return {
8990 className: name, begin: begin, relevance: relevance
8991 };};
8992
8993 var PARENS_MODE = {
8994 // used only to properly balance nested parens inside mixin call, def. arg list
8995 begin: '\\(', end: '\\)', contains: VALUE, relevance: 0
8996 };
8997
8998 // generic Less highlighter (used almost everywhere except selectors):
8999 VALUE.push(
9000 hljs.C_LINE_COMMENT_MODE,
9001 hljs.C_BLOCK_COMMENT_MODE,
9002 STRING_MODE("'"),
9003 STRING_MODE('"'),
9004 hljs.CSS_NUMBER_MODE, // fixme: it does not include dot for numbers like .5em :(
9005 {
9006 begin: '(url|data-uri)\\(',
9007 starts: {className: 'string', end: '[\\)\\n]', excludeEnd: true}
9008 },
9009 IDENT_MODE('number', '#[0-9A-Fa-f]+\\b'),
9010 PARENS_MODE,
9011 IDENT_MODE('variable', '@@?' + IDENT_RE, 10),
9012 IDENT_MODE('variable', '@{' + IDENT_RE + '}'),
9013 IDENT_MODE('built_in', '~?`[^`]*?`'), // inline javascript (or whatever host language) *multiline* string
9014 { // @media features (it’s here to not duplicate things in AT_RULE_MODE with extra PARENS_MODE overriding):
9015 className: 'attribute', begin: IDENT_RE + '\\s*:', end: ':', returnBegin: true, excludeEnd: true
9016 },
9017 {
9018 className: 'meta',
9019 begin: '!important'
9020 }
9021 );
9022
9023 var VALUE_WITH_RULESETS = VALUE.concat({
9024 begin: '{', end: '}', contains: RULES
9025 });
9026
9027 var MIXIN_GUARD_MODE = {
9028 beginKeywords: 'when', endsWithParent: true,
9029 contains: [{beginKeywords: 'and not'}].concat(VALUE) // using this form to override VALUE’s 'function' match
9030 };
9031
9032 /* Rule-Level Modes */
9033
9034 var RULE_MODE = {
9035 className: 'attribute',
9036 begin: INTERP_IDENT_RE, end: ':', excludeEnd: true,
9037 contains: [hljs.C_LINE_COMMENT_MODE, hljs.C_BLOCK_COMMENT_MODE],
9038 illegal: /\S/,
9039 starts: {end: '[;}]', returnEnd: true, contains: VALUE, illegal: '[<=$]'}
9040 };
9041
9042 var AT_RULE_MODE = {
9043 className: 'keyword',
9044 begin: '@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b',
9045 starts: {end: '[;{}]', returnEnd: true, contains: VALUE, relevance: 0}
9046 };
9047
9048 // variable definitions and calls
9049 var VAR_RULE_MODE = {
9050 className: 'variable',
9051 variants: [
9052 // using more strict pattern for higher relevance to increase chances of Less detection.
9053 // this is *the only* Less specific statement used in most of the sources, so...
9054 // (we’ll still often loose to the css-parser unless there's '//' comment,
9055 // simply because 1 variable just can't beat 99 properties :)
9056 {begin: '@' + IDENT_RE + '\\s*:', relevance: 15},
9057 {begin: '@' + IDENT_RE}
9058 ],
9059 starts: {end: '[;}]', returnEnd: true, contains: VALUE_WITH_RULESETS}
9060 };
9061
9062 var SELECTOR_MODE = {
9063 // first parse unambiguous selectors (i.e. those not starting with tag)
9064 // then fall into the scary lookahead-discriminator variant.
9065 // this mode also handles mixin definitions and calls
9066 variants: [{
9067 begin: '[\\.#:&\\[]', end: '[;{}]' // mixin calls end with ';'
9068 }, {
9069 begin: INTERP_IDENT_RE + '[^;]*{',
9070 end: '{'
9071 }],
9072 returnBegin: true,
9073 returnEnd: true,
9074 illegal: '[<=\'$"]',
9075 contains: [
9076 hljs.C_LINE_COMMENT_MODE,
9077 hljs.C_BLOCK_COMMENT_MODE,
9078 MIXIN_GUARD_MODE,
9079 IDENT_MODE('keyword', 'all\\b'),
9080 IDENT_MODE('variable', '@{' + IDENT_RE + '}'), // otherwise it’s identified as tag
9081 IDENT_MODE('selector-tag', INTERP_IDENT_RE + '%?', 0), // '%' for more consistent coloring of @keyframes "tags"
9082 IDENT_MODE('selector-id', '#' + INTERP_IDENT_RE),
9083 IDENT_MODE('selector-class', '\\.' + INTERP_IDENT_RE, 0),
9084 IDENT_MODE('selector-tag', '&', 0),
9085 {className: 'selector-attr', begin: '\\[', end: '\\]'},
9086 {begin: '\\(', end: '\\)', contains: VALUE_WITH_RULESETS}, // argument list of parametric mixins
9087 {begin: '!important'} // eat !important after mixin call or it will be colored as tag
9088 ]
9089 };
9090
9091 RULES.push(
9092 hljs.C_LINE_COMMENT_MODE,
9093 hljs.C_BLOCK_COMMENT_MODE,
9094 AT_RULE_MODE,
9095 VAR_RULE_MODE,
9096 SELECTOR_MODE,
9097 RULE_MODE
9098 );
9099
9100 return {
9101 case_insensitive: true,
9102 illegal: '[=>\'/<($"]',
9103 contains: RULES
9104 };
9105}
9106},{name:"lisp",create:/*
9107Language: Lisp
9108Description: Generic lisp syntax
9109Author: Vasily Polovnyov <vast@whiteants.net>
9110Category: lisp
9111*/
9112
9113function(hljs) {
9114 var LISP_IDENT_RE = '[a-zA-Z_\\-\\+\\*\\/\\<\\=\\>\\&\\#][a-zA-Z0-9_\\-\\+\\*\\/\\<\\=\\>\\&\\#!]*';
9115 var MEC_RE = '\\|[^]*?\\|';
9116 var LISP_SIMPLE_NUMBER_RE = '(\\-|\\+)?\\d+(\\.\\d+|\\/\\d+)?((d|e|f|l|s|D|E|F|L|S)(\\+|\\-)?\\d+)?';
9117 var SHEBANG = {
9118 className: 'meta',
9119 begin: '^#!', end: '$'
9120 };
9121 var LITERAL = {
9122 className: 'literal',
9123 begin: '\\b(t{1}|nil)\\b'
9124 };
9125 var NUMBER = {
9126 className: 'number',
9127 variants: [
9128 {begin: LISP_SIMPLE_NUMBER_RE, relevance: 0},
9129 {begin: '#(b|B)[0-1]+(/[0-1]+)?'},
9130 {begin: '#(o|O)[0-7]+(/[0-7]+)?'},
9131 {begin: '#(x|X)[0-9a-fA-F]+(/[0-9a-fA-F]+)?'},
9132 {begin: '#(c|C)\\(' + LISP_SIMPLE_NUMBER_RE + ' +' + LISP_SIMPLE_NUMBER_RE, end: '\\)'}
9133 ]
9134 };
9135 var STRING = hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null});
9136 var COMMENT = hljs.COMMENT(
9137 ';', '$',
9138 {
9139 relevance: 0
9140 }
9141 );
9142 var VARIABLE = {
9143 begin: '\\*', end: '\\*'
9144 };
9145 var KEYWORD = {
9146 className: 'symbol',
9147 begin: '[:&]' + LISP_IDENT_RE
9148 };
9149 var IDENT = {
9150 begin: LISP_IDENT_RE,
9151 relevance: 0
9152 };
9153 var MEC = {
9154 begin: MEC_RE
9155 };
9156 var QUOTED_LIST = {
9157 begin: '\\(', end: '\\)',
9158 contains: ['self', LITERAL, STRING, NUMBER, IDENT]
9159 };
9160 var QUOTED = {
9161 contains: [NUMBER, STRING, VARIABLE, KEYWORD, QUOTED_LIST, IDENT],
9162 variants: [
9163 {
9164 begin: '[\'`]\\(', end: '\\)'
9165 },
9166 {
9167 begin: '\\(quote ', end: '\\)',
9168 keywords: {name: 'quote'}
9169 },
9170 {
9171 begin: '\'' + MEC_RE
9172 }
9173 ]
9174 };
9175 var QUOTED_ATOM = {
9176 variants: [
9177 {begin: '\'' + LISP_IDENT_RE},
9178 {begin: '#\'' + LISP_IDENT_RE + '(::' + LISP_IDENT_RE + ')*'}
9179 ]
9180 };
9181 var LIST = {
9182 begin: '\\(\\s*', end: '\\)'
9183 };
9184 var BODY = {
9185 endsWithParent: true,
9186 relevance: 0
9187 };
9188 LIST.contains = [
9189 {
9190 className: 'name',
9191 variants: [
9192 {begin: LISP_IDENT_RE},
9193 {begin: MEC_RE}
9194 ]
9195 },
9196 BODY
9197 ];
9198 BODY.contains = [QUOTED, QUOTED_ATOM, LIST, LITERAL, NUMBER, STRING, COMMENT, VARIABLE, KEYWORD, MEC, IDENT];
9199
9200 return {
9201 illegal: /\S/,
9202 contains: [
9203 NUMBER,
9204 SHEBANG,
9205 LITERAL,
9206 STRING,
9207 COMMENT,
9208 QUOTED,
9209 QUOTED_ATOM,
9210 LIST,
9211 IDENT
9212 ]
9213 };
9214}
9215},{name:"livecodeserver",create:/*
9216Language: LiveCode
9217Author: Ralf Bitter <rabit@revigniter.com>
9218Description: Language definition for LiveCode server accounting for revIgniter (a web application framework) characteristics.
9219Version: 1.0a
9220Date: 2013-06-03
9221Category: enterprise
9222*/
9223
9224function(hljs) {
9225 var VARIABLE = {
9226 begin: '\\b[gtps][A-Z]+[A-Za-z0-9_\\-]*\\b|\\$_[A-Z]+',
9227 relevance: 0
9228 };
9229 var COMMENT_MODES = [
9230 hljs.C_BLOCK_COMMENT_MODE,
9231 hljs.HASH_COMMENT_MODE,
9232 hljs.COMMENT('--', '$'),
9233 hljs.COMMENT('[^:]//', '$')
9234 ];
9235 var TITLE1 = hljs.inherit(hljs.TITLE_MODE, {
9236 variants: [
9237 {begin: '\\b_*rig[A-Z]+[A-Za-z0-9_\\-]*'},
9238 {begin: '\\b_[a-z0-9\\-]+'}
9239 ]
9240 });
9241 var TITLE2 = hljs.inherit(hljs.TITLE_MODE, {begin: '\\b([A-Za-z0-9_\\-]+)\\b'});
9242 return {
9243 case_insensitive: false,
9244 keywords: {
9245 keyword:
9246 '$_COOKIE $_FILES $_GET $_GET_BINARY $_GET_RAW $_POST $_POST_BINARY $_POST_RAW $_SESSION $_SERVER ' +
9247 'codepoint codepoints segment segments codeunit codeunits sentence sentences trueWord trueWords paragraph ' +
9248 'after byte bytes english the until http forever descending using line real8 with seventh ' +
9249 'for stdout finally element word words fourth before black ninth sixth characters chars stderr ' +
9250 'uInt1 uInt1s uInt2 uInt2s stdin string lines relative rel any fifth items from middle mid ' +
9251 'at else of catch then third it file milliseconds seconds second secs sec int1 int1s int4 ' +
9252 'int4s internet int2 int2s normal text item last long detailed effective uInt4 uInt4s repeat ' +
9253 'end repeat URL in try into switch to words https token binfile each tenth as ticks tick ' +
9254 'system real4 by dateItems without char character ascending eighth whole dateTime numeric short ' +
9255 'first ftp integer abbreviated abbr abbrev private case while if ' +
9256 'div mod wrap and or bitAnd bitNot bitOr bitXor among not in a an within ' +
9257 'contains ends with begins the keys of keys',
9258 literal:
9259 'SIX TEN FORMFEED NINE ZERO NONE SPACE FOUR FALSE COLON CRLF PI COMMA ENDOFFILE EOF EIGHT FIVE ' +
9260 'QUOTE EMPTY ONE TRUE RETURN CR LINEFEED RIGHT BACKSLASH NULL SEVEN TAB THREE TWO ' +
9261 'six ten formfeed nine zero none space four false colon crlf pi comma endoffile eof eight five ' +
9262 'quote empty one true return cr linefeed right backslash null seven tab three two ' +
9263 'RIVERSION RISTATE FILE_READ_MODE FILE_WRITE_MODE FILE_WRITE_MODE DIR_WRITE_MODE FILE_READ_UMASK ' +
9264 'FILE_WRITE_UMASK DIR_READ_UMASK DIR_WRITE_UMASK',
9265 built_in:
9266 'put abs acos aliasReference annuity arrayDecode arrayEncode asin atan atan2 average avg avgDev base64Decode ' +
9267 'base64Encode baseConvert binaryDecode binaryEncode byteOffset byteToNum cachedURL cachedURLs charToNum ' +
9268 'cipherNames codepointOffset codepointProperty codepointToNum codeunitOffset commandNames compound compress ' +
9269 'constantNames cos date dateFormat decompress directories ' +
9270 'diskSpace DNSServers exp exp1 exp2 exp10 extents files flushEvents folders format functionNames geometricMean global ' +
9271 'globals hasMemory harmonicMean hostAddress hostAddressToName hostName hostNameToAddress isNumber ISOToMac itemOffset ' +
9272 'keys len length libURLErrorData libUrlFormData libURLftpCommand libURLLastHTTPHeaders libURLLastRHHeaders ' +
9273 'libUrlMultipartFormAddPart libUrlMultipartFormData libURLVersion lineOffset ln ln1 localNames log log2 log10 ' +
9274 'longFilePath lower macToISO matchChunk matchText matrixMultiply max md5Digest median merge millisec ' +
9275 'millisecs millisecond milliseconds min monthNames nativeCharToNum normalizeText num number numToByte numToChar ' +
9276 'numToCodepoint numToNativeChar offset open openfiles openProcesses openProcessIDs openSockets ' +
9277 'paragraphOffset paramCount param params peerAddress pendingMessages platform popStdDev populationStandardDeviation ' +
9278 'populationVariance popVariance processID random randomBytes replaceText result revCreateXMLTree revCreateXMLTreeFromFile ' +
9279 'revCurrentRecord revCurrentRecordIsFirst revCurrentRecordIsLast revDatabaseColumnCount revDatabaseColumnIsNull ' +
9280 'revDatabaseColumnLengths revDatabaseColumnNames revDatabaseColumnNamed revDatabaseColumnNumbered ' +
9281 'revDatabaseColumnTypes revDatabaseConnectResult revDatabaseCursors revDatabaseID revDatabaseTableNames ' +
9282 'revDatabaseType revDataFromQuery revdb_closeCursor revdb_columnbynumber revdb_columncount revdb_columnisnull ' +
9283 'revdb_columnlengths revdb_columnnames revdb_columntypes revdb_commit revdb_connect revdb_connections ' +
9284 'revdb_connectionerr revdb_currentrecord revdb_cursorconnection revdb_cursorerr revdb_cursors revdb_dbtype ' +
9285 'revdb_disconnect revdb_execute revdb_iseof revdb_isbof revdb_movefirst revdb_movelast revdb_movenext ' +
9286 'revdb_moveprev revdb_query revdb_querylist revdb_recordcount revdb_rollback revdb_tablenames ' +
9287 'revGetDatabaseDriverPath revNumberOfRecords revOpenDatabase revOpenDatabases revQueryDatabase ' +
9288 'revQueryDatabaseBlob revQueryResult revQueryIsAtStart revQueryIsAtEnd revUnixFromMacPath revXMLAttribute ' +
9289 'revXMLAttributes revXMLAttributeValues revXMLChildContents revXMLChildNames revXMLCreateTreeFromFileWithNamespaces ' +
9290 'revXMLCreateTreeWithNamespaces revXMLDataFromXPathQuery revXMLEvaluateXPath revXMLFirstChild revXMLMatchingNode ' +
9291 'revXMLNextSibling revXMLNodeContents revXMLNumberOfChildren revXMLParent revXMLPreviousSibling ' +
9292 'revXMLRootNode revXMLRPC_CreateRequest revXMLRPC_Documents revXMLRPC_Error ' +
9293 'revXMLRPC_GetHost revXMLRPC_GetMethod revXMLRPC_GetParam revXMLText revXMLRPC_Execute ' +
9294 'revXMLRPC_GetParamCount revXMLRPC_GetParamNode revXMLRPC_GetParamType revXMLRPC_GetPath revXMLRPC_GetPort ' +
9295 'revXMLRPC_GetProtocol revXMLRPC_GetRequest revXMLRPC_GetResponse revXMLRPC_GetSocket revXMLTree ' +
9296 'revXMLTrees revXMLValidateDTD revZipDescribeItem revZipEnumerateItems revZipOpenArchives round sampVariance ' +
9297 'sec secs seconds sentenceOffset sha1Digest shell shortFilePath sin specialFolderPath sqrt standardDeviation statRound ' +
9298 'stdDev sum sysError systemVersion tan tempName textDecode textEncode tick ticks time to tokenOffset toLower toUpper ' +
9299 'transpose truewordOffset trunc uniDecode uniEncode upper URLDecode URLEncode URLStatus uuid value variableNames ' +
9300 'variance version waitDepth weekdayNames wordOffset xsltApplyStylesheet xsltApplyStylesheetFromFile xsltLoadStylesheet ' +
9301 'xsltLoadStylesheetFromFile add breakpoint cancel clear local variable file word line folder directory URL close socket process ' +
9302 'combine constant convert create new alias folder directory decrypt delete variable word line folder ' +
9303 'directory URL dispatch divide do encrypt filter get include intersect kill libURLDownloadToFile ' +
9304 'libURLFollowHttpRedirects libURLftpUpload libURLftpUploadFile libURLresetAll libUrlSetAuthCallback ' +
9305 'libURLSetCustomHTTPHeaders libUrlSetExpect100 libURLSetFTPListCommand libURLSetFTPMode libURLSetFTPStopTime ' +
9306 'libURLSetStatusCallback load multiply socket prepare process post seek rel relative read from process rename ' +
9307 'replace require resetAll resolve revAddXMLNode revAppendXML revCloseCursor revCloseDatabase revCommitDatabase ' +
9308 'revCopyFile revCopyFolder revCopyXMLNode revDeleteFolder revDeleteXMLNode revDeleteAllXMLTrees ' +
9309 'revDeleteXMLTree revExecuteSQL revGoURL revInsertXMLNode revMoveFolder revMoveToFirstRecord revMoveToLastRecord ' +
9310 'revMoveToNextRecord revMoveToPreviousRecord revMoveToRecord revMoveXMLNode revPutIntoXMLNode revRollBackDatabase ' +
9311 'revSetDatabaseDriverPath revSetXMLAttribute revXMLRPC_AddParam revXMLRPC_DeleteAllDocuments revXMLAddDTD ' +
9312 'revXMLRPC_Free revXMLRPC_FreeAll revXMLRPC_DeleteDocument revXMLRPC_DeleteParam revXMLRPC_SetHost ' +
9313 'revXMLRPC_SetMethod revXMLRPC_SetPort revXMLRPC_SetProtocol revXMLRPC_SetSocket revZipAddItemWithData ' +
9314 'revZipAddItemWithFile revZipAddUncompressedItemWithData revZipAddUncompressedItemWithFile revZipCancel ' +
9315 'revZipCloseArchive revZipDeleteItem revZipExtractItemToFile revZipExtractItemToVariable revZipSetProgressCallback ' +
9316 'revZipRenameItem revZipReplaceItemWithData revZipReplaceItemWithFile revZipOpenArchive send set sort split start stop ' +
9317 'subtract union unload wait write'
9318 },
9319 contains: [
9320 VARIABLE,
9321 {
9322 className: 'keyword',
9323 begin: '\\bend\\sif\\b'
9324 },
9325 {
9326 className: 'function',
9327 beginKeywords: 'function', end: '$',
9328 contains: [
9329 VARIABLE,
9330 TITLE2,
9331 hljs.APOS_STRING_MODE,
9332 hljs.QUOTE_STRING_MODE,
9333 hljs.BINARY_NUMBER_MODE,
9334 hljs.C_NUMBER_MODE,
9335 TITLE1
9336 ]
9337 },
9338 {
9339 className: 'function',
9340 begin: '\\bend\\s+', end: '$',
9341 keywords: 'end',
9342 contains: [
9343 TITLE2,
9344 TITLE1
9345 ]
9346 },
9347 {
9348 beginKeywords: 'command on', end: '$',
9349 contains: [
9350 VARIABLE,
9351 TITLE2,
9352 hljs.APOS_STRING_MODE,
9353 hljs.QUOTE_STRING_MODE,
9354 hljs.BINARY_NUMBER_MODE,
9355 hljs.C_NUMBER_MODE,
9356 TITLE1
9357 ]
9358 },
9359 {
9360 className: 'meta',
9361 variants: [
9362 {
9363 begin: '<\\?(rev|lc|livecode)',
9364 relevance: 10
9365 },
9366 { begin: '<\\?' },
9367 { begin: '\\?>' }
9368 ]
9369 },
9370 hljs.APOS_STRING_MODE,
9371 hljs.QUOTE_STRING_MODE,
9372 hljs.BINARY_NUMBER_MODE,
9373 hljs.C_NUMBER_MODE,
9374 TITLE1
9375 ].concat(COMMENT_MODES),
9376 illegal: ';$|^\\[|^='
9377 };
9378}
9379},{name:"livescript",create:/*
9380Language: LiveScript
9381Author: Taneli Vatanen <taneli.vatanen@gmail.com>
9382Contributors: Jen Evers-Corvina <jen@sevvie.net>
9383Origin: coffeescript.js
9384Description: LiveScript is a programming language that transcompiles to JavaScript. For info about language see http://livescript.net/
9385Category: scripting
9386*/
9387
9388function(hljs) {
9389 var KEYWORDS = {
9390 keyword:
9391 // JS keywords
9392 'in if for while finally new do return else break catch instanceof throw try this ' +
9393 'switch continue typeof delete debugger case default function var with ' +
9394 // LiveScript keywords
9395 'then unless until loop of by when and or is isnt not it that otherwise from to til fallthrough super ' +
9396 'case default function var void const let enum export import native ' +
9397 '__hasProp __extends __slice __bind __indexOf',
9398 literal:
9399 // JS literals
9400 'true false null undefined ' +
9401 // LiveScript literals
9402 'yes no on off it that void',
9403 built_in:
9404 'npm require console print module global window document'
9405 };
9406 var JS_IDENT_RE = '[A-Za-z$_](?:\-[0-9A-Za-z$_]|[0-9A-Za-z$_])*';
9407 var TITLE = hljs.inherit(hljs.TITLE_MODE, {begin: JS_IDENT_RE});
9408 var SUBST = {
9409 className: 'subst',
9410 begin: /#\{/, end: /}/,
9411 keywords: KEYWORDS
9412 };
9413 var SUBST_SIMPLE = {
9414 className: 'subst',
9415 begin: /#[A-Za-z$_]/, end: /(?:\-[0-9A-Za-z$_]|[0-9A-Za-z$_])*/,
9416 keywords: KEYWORDS
9417 };
9418 var EXPRESSIONS = [
9419 hljs.BINARY_NUMBER_MODE,
9420 {
9421 className: 'number',
9422 begin: '(\\b0[xX][a-fA-F0-9_]+)|(\\b\\d(\\d|_\\d)*(\\.(\\d(\\d|_\\d)*)?)?(_*[eE]([-+]\\d(_\\d|\\d)*)?)?[_a-z]*)',
9423 relevance: 0,
9424 starts: {end: '(\\s*/)?', relevance: 0} // a number tries to eat the following slash to prevent treating it as a regexp
9425 },
9426 {
9427 className: 'string',
9428 variants: [
9429 {
9430 begin: /'''/, end: /'''/,
9431 contains: [hljs.BACKSLASH_ESCAPE]
9432 },
9433 {
9434 begin: /'/, end: /'/,
9435 contains: [hljs.BACKSLASH_ESCAPE]
9436 },
9437 {
9438 begin: /"""/, end: /"""/,
9439 contains: [hljs.BACKSLASH_ESCAPE, SUBST, SUBST_SIMPLE]
9440 },
9441 {
9442 begin: /"/, end: /"/,
9443 contains: [hljs.BACKSLASH_ESCAPE, SUBST, SUBST_SIMPLE]
9444 },
9445 {
9446 begin: /\\/, end: /(\s|$)/,
9447 excludeEnd: true
9448 }
9449 ]
9450 },
9451 {
9452 className: 'regexp',
9453 variants: [
9454 {
9455 begin: '//', end: '//[gim]*',
9456 contains: [SUBST, hljs.HASH_COMMENT_MODE]
9457 },
9458 {
9459 // regex can't start with space to parse x / 2 / 3 as two divisions
9460 // regex can't start with *, and it supports an "illegal" in the main mode
9461 begin: /\/(?![ *])(\\\/|.)*?\/[gim]*(?=\W|$)/
9462 }
9463 ]
9464 },
9465 {
9466 begin: '@' + JS_IDENT_RE
9467 },
9468 {
9469 begin: '``', end: '``',
9470 excludeBegin: true, excludeEnd: true,
9471 subLanguage: 'javascript'
9472 }
9473 ];
9474 SUBST.contains = EXPRESSIONS;
9475
9476 var PARAMS = {
9477 className: 'params',
9478 begin: '\\(', returnBegin: true,
9479 /* We need another contained nameless mode to not have every nested
9480 pair of parens to be called "params" */
9481 contains: [
9482 {
9483 begin: /\(/, end: /\)/,
9484 keywords: KEYWORDS,
9485 contains: ['self'].concat(EXPRESSIONS)
9486 }
9487 ]
9488 };
9489
9490 return {
9491 aliases: ['ls'],
9492 keywords: KEYWORDS,
9493 illegal: /\/\*/,
9494 contains: EXPRESSIONS.concat([
9495 hljs.COMMENT('\\/\\*', '\\*\\/'),
9496 hljs.HASH_COMMENT_MODE,
9497 {
9498 className: 'function',
9499 contains: [TITLE, PARAMS],
9500 returnBegin: true,
9501 variants: [
9502 {
9503 begin: '(' + JS_IDENT_RE + '\\s*(?:=|:=)\\s*)?(\\(.*\\))?\\s*\\B\\->\\*?', end: '\\->\\*?'
9504 },
9505 {
9506 begin: '(' + JS_IDENT_RE + '\\s*(?:=|:=)\\s*)?!?(\\(.*\\))?\\s*\\B[-~]{1,2}>\\*?', end: '[-~]{1,2}>\\*?'
9507 },
9508 {
9509 begin: '(' + JS_IDENT_RE + '\\s*(?:=|:=)\\s*)?(\\(.*\\))?\\s*\\B!?[-~]{1,2}>\\*?', end: '!?[-~]{1,2}>\\*?'
9510 }
9511 ]
9512 },
9513 {
9514 className: 'class',
9515 beginKeywords: 'class',
9516 end: '$',
9517 illegal: /[:="\[\]]/,
9518 contains: [
9519 {
9520 beginKeywords: 'extends',
9521 endsWithParent: true,
9522 illegal: /[:="\[\]]/,
9523 contains: [TITLE]
9524 },
9525 TITLE
9526 ]
9527 },
9528 {
9529 begin: JS_IDENT_RE + ':', end: ':',
9530 returnBegin: true, returnEnd: true,
9531 relevance: 0
9532 }
9533 ])
9534 };
9535}
9536},{name:"lua",create:/*
9537Language: Lua
9538Author: Andrew Fedorov <dmmdrs@mail.ru>
9539Category: scripting
9540*/
9541
9542function(hljs) {
9543 var OPENING_LONG_BRACKET = '\\[=*\\[';
9544 var CLOSING_LONG_BRACKET = '\\]=*\\]';
9545 var LONG_BRACKETS = {
9546 begin: OPENING_LONG_BRACKET, end: CLOSING_LONG_BRACKET,
9547 contains: ['self']
9548 };
9549 var COMMENTS = [
9550 hljs.COMMENT('--(?!' + OPENING_LONG_BRACKET + ')', '$'),
9551 hljs.COMMENT(
9552 '--' + OPENING_LONG_BRACKET,
9553 CLOSING_LONG_BRACKET,
9554 {
9555 contains: [LONG_BRACKETS],
9556 relevance: 10
9557 }
9558 )
9559 ];
9560 return {
9561 lexemes: hljs.UNDERSCORE_IDENT_RE,
9562 keywords: {
9563 keyword:
9564 'and break do else elseif end false for if in local nil not or repeat return then ' +
9565 'true until while',
9566 built_in:
9567 '_G _VERSION assert collectgarbage dofile error getfenv getmetatable ipairs load ' +
9568 'loadfile loadstring module next pairs pcall print rawequal rawget rawset require ' +
9569 'select setfenv setmetatable tonumber tostring type unpack xpcall coroutine debug ' +
9570 'io math os package string table'
9571 },
9572 contains: COMMENTS.concat([
9573 {
9574 className: 'function',
9575 beginKeywords: 'function', end: '\\)',
9576 contains: [
9577 hljs.inherit(hljs.TITLE_MODE, {begin: '([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*'}),
9578 {
9579 className: 'params',
9580 begin: '\\(', endsWithParent: true,
9581 contains: COMMENTS
9582 }
9583 ].concat(COMMENTS)
9584 },
9585 hljs.C_NUMBER_MODE,
9586 hljs.APOS_STRING_MODE,
9587 hljs.QUOTE_STRING_MODE,
9588 {
9589 className: 'string',
9590 begin: OPENING_LONG_BRACKET, end: CLOSING_LONG_BRACKET,
9591 contains: [LONG_BRACKETS],
9592 relevance: 5
9593 }
9594 ])
9595 };
9596}
9597},{name:"makefile",create:/*
9598Language: Makefile
9599Author: Ivan Sagalaev <maniac@softwaremaniacs.org>
9600Category: common
9601*/
9602
9603function(hljs) {
9604 var VARIABLE = {
9605 className: 'variable',
9606 begin: /\$\(/, end: /\)/,
9607 contains: [hljs.BACKSLASH_ESCAPE]
9608 };
9609 return {
9610 aliases: ['mk', 'mak'],
9611 contains: [
9612 hljs.HASH_COMMENT_MODE,
9613 {
9614 begin: /^\w+\s*\W*=/, returnBegin: true,
9615 relevance: 0,
9616 starts: {
9617 end: /\s*\W*=/, excludeEnd: true,
9618 starts: {
9619 end: /$/,
9620 relevance: 0,
9621 contains: [
9622 VARIABLE
9623 ]
9624 }
9625 }
9626 },
9627 {
9628 className: 'section',
9629 begin: /^[\w]+:\s*$/
9630 },
9631 {
9632 className: 'meta',
9633 begin: /^\.PHONY:/, end: /$/,
9634 keywords: {'meta-keyword': '.PHONY'}, lexemes: /[\.\w]+/
9635 },
9636 {
9637 begin: /^\t+/, end: /$/,
9638 relevance: 0,
9639 contains: [
9640 hljs.QUOTE_STRING_MODE,
9641 VARIABLE
9642 ]
9643 }
9644 ]
9645 };
9646}
9647},{name:"markdown",create:/*
9648Language: Markdown
9649Requires: xml.js
9650Author: John Crepezzi <john.crepezzi@gmail.com>
9651Website: http://seejohncode.com/
9652Category: common, markup
9653*/
9654
9655function(hljs) {
9656 return {
9657 aliases: ['md', 'mkdown', 'mkd'],
9658 contains: [
9659 // highlight headers
9660 {
9661 className: 'section',
9662 variants: [
9663 { begin: '^#{1,6}', end: '$' },
9664 { begin: '^.+?\\n[=-]{2,}$' }
9665 ]
9666 },
9667 // inline html
9668 {
9669 begin: '<', end: '>',
9670 subLanguage: 'xml',
9671 relevance: 0
9672 },
9673 // lists (indicators only)
9674 {
9675 className: 'bullet',
9676 begin: '^([*+-]|(\\d+\\.))\\s+'
9677 },
9678 // strong segments
9679 {
9680 className: 'strong',
9681 begin: '[*_]{2}.+?[*_]{2}'
9682 },
9683 // emphasis segments
9684 {
9685 className: 'emphasis',
9686 variants: [
9687 { begin: '\\*.+?\\*' },
9688 { begin: '_.+?_'
9689 , relevance: 0
9690 }
9691 ]
9692 },
9693 // blockquotes
9694 {
9695 className: 'quote',
9696 begin: '^>\\s+', end: '$'
9697 },
9698 // code snippets
9699 {
9700 className: 'code',
9701 variants: [
9702 { begin: '`.+?`' },
9703 { begin: '^( {4}|\t)', end: '$'
9704 , relevance: 0
9705 }
9706 ]
9707 },
9708 // horizontal rules
9709 {
9710 begin: '^[-\\*]{3,}', end: '$'
9711 },
9712 // using links - title and link
9713 {
9714 begin: '\\[.+?\\][\\(\\[].*?[\\)\\]]',
9715 returnBegin: true,
9716 contains: [
9717 {
9718 className: 'string',
9719 begin: '\\[', end: '\\]',
9720 excludeBegin: true,
9721 returnEnd: true,
9722 relevance: 0
9723 },
9724 {
9725 className: 'link',
9726 begin: '\\]\\(', end: '\\)',
9727 excludeBegin: true, excludeEnd: true
9728 },
9729 {
9730 className: 'symbol',
9731 begin: '\\]\\[', end: '\\]',
9732 excludeBegin: true, excludeEnd: true
9733 }
9734 ],
9735 relevance: 10
9736 },
9737 {
9738 begin: '^\\[\.+\\]:',
9739 returnBegin: true,
9740 contains: [
9741 {
9742 className: 'symbol',
9743 begin: '\\[', end: '\\]:',
9744 excludeBegin: true, excludeEnd: true,
9745 starts: {
9746 className: 'link',
9747 end: '$'
9748 }
9749 }
9750 ]
9751 }
9752 ]
9753 };
9754}
9755},{name:"mathematica",create:/*
9756Language: Mathematica
9757Author: Daniel Kvasnicka <dkvasnicka@vendavo.com>
9758Category: scientific
9759*/
9760
9761function(hljs) {
9762 return {
9763 aliases: ['mma'],
9764 lexemes: '(\\$|\\b)' + hljs.IDENT_RE + '\\b',
9765 keywords: 'AbelianGroup Abort AbortKernels AbortProtect Above Abs Absolute AbsoluteCorrelation AbsoluteCorrelationFunction AbsoluteCurrentValue AbsoluteDashing AbsoluteFileName AbsoluteOptions AbsolutePointSize AbsoluteThickness AbsoluteTime AbsoluteTiming AccountingForm Accumulate Accuracy AccuracyGoal ActionDelay ActionMenu ActionMenuBox ActionMenuBoxOptions Active ActiveItem ActiveStyle AcyclicGraphQ AddOnHelpPath AddTo AdjacencyGraph AdjacencyList AdjacencyMatrix AdjustmentBox AdjustmentBoxOptions AdjustTimeSeriesForecast AffineTransform After AiryAi AiryAiPrime AiryAiZero AiryBi AiryBiPrime AiryBiZero AlgebraicIntegerQ AlgebraicNumber AlgebraicNumberDenominator AlgebraicNumberNorm AlgebraicNumberPolynomial AlgebraicNumberTrace AlgebraicRules AlgebraicRulesData Algebraics AlgebraicUnitQ Alignment AlignmentMarker AlignmentPoint All AllowedDimensions AllowGroupClose AllowInlineCells AllowKernelInitialization AllowReverseGroupClose AllowScriptLevelChange AlphaChannel AlternatingGroup AlternativeHypothesis Alternatives AmbientLight Analytic AnchoredSearch And AndersonDarlingTest AngerJ AngleBracket AngularGauge Animate AnimationCycleOffset AnimationCycleRepetitions AnimationDirection AnimationDisplayTime AnimationRate AnimationRepetitions AnimationRunning Animator AnimatorBox AnimatorBoxOptions AnimatorElements Annotation Annuity AnnuityDue Antialiasing Antisymmetric Apart ApartSquareFree Appearance AppearanceElements AppellF1 Append AppendTo Apply ArcCos ArcCosh ArcCot ArcCoth ArcCsc ArcCsch ArcSec ArcSech ArcSin ArcSinDistribution ArcSinh ArcTan ArcTanh Arg ArgMax ArgMin ArgumentCountQ ARIMAProcess ArithmeticGeometricMean ARMAProcess ARProcess Array ArrayComponents ArrayDepth ArrayFlatten ArrayPad ArrayPlot ArrayQ ArrayReshape ArrayRules Arrays Arrow Arrow3DBox ArrowBox Arrowheads AspectRatio AspectRatioFixed Assert Assuming Assumptions AstronomicalData Asynchronous AsynchronousTaskObject AsynchronousTasks AtomQ Attributes AugmentedSymmetricPolynomial AutoAction AutoDelete AutoEvaluateEvents AutoGeneratedPackage AutoIndent AutoIndentSpacings AutoItalicWords AutoloadPath AutoMatch Automatic AutomaticImageSize AutoMultiplicationSymbol AutoNumberFormatting AutoOpenNotebooks AutoOpenPalettes AutorunSequencing AutoScaling AutoScroll AutoSpacing AutoStyleOptions AutoStyleWords Axes AxesEdge AxesLabel AxesOrigin AxesStyle Axis ' +
9766 'BabyMonsterGroupB Back Background BackgroundTasksSettings Backslash Backsubstitution Backward Band BandpassFilter BandstopFilter BarabasiAlbertGraphDistribution BarChart BarChart3D BarLegend BarlowProschanImportance BarnesG BarOrigin BarSpacing BartlettHannWindow BartlettWindow BaseForm Baseline BaselinePosition BaseStyle BatesDistribution BattleLemarieWavelet Because BeckmannDistribution Beep Before Begin BeginDialogPacket BeginFrontEndInteractionPacket BeginPackage BellB BellY Below BenfordDistribution BeniniDistribution BenktanderGibratDistribution BenktanderWeibullDistribution BernoulliB BernoulliDistribution BernoulliGraphDistribution BernoulliProcess BernsteinBasis BesselFilterModel BesselI BesselJ BesselJZero BesselK BesselY BesselYZero Beta BetaBinomialDistribution BetaDistribution BetaNegativeBinomialDistribution BetaPrimeDistribution BetaRegularized BetweennessCentrality BezierCurve BezierCurve3DBox BezierCurve3DBoxOptions BezierCurveBox BezierCurveBoxOptions BezierFunction BilateralFilter Binarize BinaryFormat BinaryImageQ BinaryRead BinaryReadList BinaryWrite BinCounts BinLists Binomial BinomialDistribution BinomialProcess BinormalDistribution BiorthogonalSplineWavelet BipartiteGraphQ BirnbaumImportance BirnbaumSaundersDistribution BitAnd BitClear BitGet BitLength BitNot BitOr BitSet BitShiftLeft BitShiftRight BitXor Black BlackmanHarrisWindow BlackmanNuttallWindow BlackmanWindow Blank BlankForm BlankNullSequence BlankSequence Blend Block BlockRandom BlomqvistBeta BlomqvistBetaTest Blue Blur BodePlot BohmanWindow Bold Bookmarks Boole BooleanConsecutiveFunction BooleanConvert BooleanCountingFunction BooleanFunction BooleanGraph BooleanMaxterms BooleanMinimize BooleanMinterms Booleans BooleanTable BooleanVariables BorderDimensions BorelTannerDistribution Bottom BottomHatTransform BoundaryStyle Bounds Box BoxBaselineShift BoxData BoxDimensions Boxed Boxes BoxForm BoxFormFormatTypes BoxFrame BoxID BoxMargins BoxMatrix BoxRatios BoxRotation BoxRotationPoint BoxStyle BoxWhiskerChart Bra BracketingBar BraKet BrayCurtisDistance BreadthFirstScan Break Brown BrownForsytheTest BrownianBridgeProcess BrowserCategory BSplineBasis BSplineCurve BSplineCurve3DBox BSplineCurveBox BSplineCurveBoxOptions BSplineFunction BSplineSurface BSplineSurface3DBox BubbleChart BubbleChart3D BubbleScale BubbleSizes BulletGauge BusinessDayQ ButterflyGraph ButterworthFilterModel Button ButtonBar ButtonBox ButtonBoxOptions ButtonCell ButtonContents ButtonData ButtonEvaluator ButtonExpandable ButtonFrame ButtonFunction ButtonMargins ButtonMinHeight ButtonNote ButtonNotebook ButtonSource ButtonStyle ButtonStyleMenuListing Byte ByteCount ByteOrdering ' +
9767 'C CachedValue CacheGraphics CalendarData CalendarType CallPacket CanberraDistance Cancel CancelButton CandlestickChart Cap CapForm CapitalDifferentialD CardinalBSplineBasis CarmichaelLambda Cases Cashflow Casoratian Catalan CatalanNumber Catch CauchyDistribution CauchyWindow CayleyGraph CDF CDFDeploy CDFInformation CDFWavelet Ceiling Cell CellAutoOverwrite CellBaseline CellBoundingBox CellBracketOptions CellChangeTimes CellContents CellContext CellDingbat CellDynamicExpression CellEditDuplicate CellElementsBoundingBox CellElementSpacings CellEpilog CellEvaluationDuplicate CellEvaluationFunction CellEventActions CellFrame CellFrameColor CellFrameLabelMargins CellFrameLabels CellFrameMargins CellGroup CellGroupData CellGrouping CellGroupingRules CellHorizontalScrolling CellID CellLabel CellLabelAutoDelete CellLabelMargins CellLabelPositioning CellMargins CellObject CellOpen CellPrint CellProlog Cells CellSize CellStyle CellTags CellularAutomaton CensoredDistribution Censoring Center CenterDot CentralMoment CentralMomentGeneratingFunction CForm ChampernowneNumber ChanVeseBinarize Character CharacterEncoding CharacterEncodingsPath CharacteristicFunction CharacteristicPolynomial CharacterRange Characters ChartBaseStyle ChartElementData ChartElementDataFunction ChartElementFunction ChartElements ChartLabels ChartLayout ChartLegends ChartStyle Chebyshev1FilterModel Chebyshev2FilterModel ChebyshevDistance ChebyshevT ChebyshevU Check CheckAbort CheckAll Checkbox CheckboxBar CheckboxBox CheckboxBoxOptions ChemicalData ChessboardDistance ChiDistribution ChineseRemainder ChiSquareDistribution ChoiceButtons ChoiceDialog CholeskyDecomposition Chop Circle CircleBox CircleDot CircleMinus CirclePlus CircleTimes CirculantGraph CityData Clear ClearAll ClearAttributes ClearSystemCache ClebschGordan ClickPane Clip ClipboardNotebook ClipFill ClippingStyle ClipPlanes ClipRange Clock ClockGauge ClockwiseContourIntegral Close Closed CloseKernels ClosenessCentrality Closing ClosingAutoSave ClosingEvent ClusteringComponents CMYKColor Coarse Coefficient CoefficientArrays CoefficientDomain CoefficientList CoefficientRules CoifletWavelet Collect Colon ColonForm ColorCombine ColorConvert ColorData ColorDataFunction ColorFunction ColorFunctionScaling Colorize ColorNegate ColorOutput ColorProfileData ColorQuantize ColorReplace ColorRules ColorSelectorSettings ColorSeparate ColorSetter ColorSetterBox ColorSetterBoxOptions ColorSlider ColorSpace Column ColumnAlignments ColumnBackgrounds ColumnForm ColumnLines ColumnsEqual ColumnSpacings ColumnWidths CommonDefaultFormatTypes Commonest CommonestFilter CommonUnits CommunityBoundaryStyle CommunityGraphPlot CommunityLabels CommunityRegionStyle CompatibleUnitQ CompilationOptions CompilationTarget Compile Compiled CompiledFunction Complement CompleteGraph CompleteGraphQ CompleteKaryTree CompletionsListPacket Complex Complexes ComplexExpand ComplexInfinity ComplexityFunction ComponentMeasurements ' +
9768 'ComponentwiseContextMenu Compose ComposeList ComposeSeries Composition CompoundExpression CompoundPoissonDistribution CompoundPoissonProcess CompoundRenewalProcess Compress CompressedData Condition ConditionalExpression Conditioned Cone ConeBox ConfidenceLevel ConfidenceRange ConfidenceTransform ConfigurationPath Congruent Conjugate ConjugateTranspose Conjunction Connect ConnectedComponents ConnectedGraphQ ConnesWindow ConoverTest ConsoleMessage ConsoleMessagePacket ConsolePrint Constant ConstantArray Constants ConstrainedMax ConstrainedMin ContentPadding ContentsBoundingBox ContentSelectable ContentSize Context ContextMenu Contexts ContextToFilename ContextToFileName Continuation Continue ContinuedFraction ContinuedFractionK ContinuousAction ContinuousMarkovProcess ContinuousTimeModelQ ContinuousWaveletData ContinuousWaveletTransform ContourDetect ContourGraphics ContourIntegral ContourLabels ContourLines ContourPlot ContourPlot3D Contours ContourShading ContourSmoothing ContourStyle ContraharmonicMean Control ControlActive ControlAlignment ControllabilityGramian ControllabilityMatrix ControllableDecomposition ControllableModelQ ControllerDuration ControllerInformation ControllerInformationData ControllerLinking ControllerManipulate ControllerMethod ControllerPath ControllerState ControlPlacement ControlsRendering ControlType Convergents ConversionOptions ConversionRules ConvertToBitmapPacket ConvertToPostScript ConvertToPostScriptPacket Convolve ConwayGroupCo1 ConwayGroupCo2 ConwayGroupCo3 CoordinateChartData CoordinatesToolOptions CoordinateTransform CoordinateTransformData CoprimeQ Coproduct CopulaDistribution Copyable CopyDirectory CopyFile CopyTag CopyToClipboard CornerFilter CornerNeighbors Correlation CorrelationDistance CorrelationFunction CorrelationTest Cos Cosh CoshIntegral CosineDistance CosineWindow CosIntegral Cot Coth Count CounterAssignments CounterBox CounterBoxOptions CounterClockwiseContourIntegral CounterEvaluator CounterFunction CounterIncrements CounterStyle CounterStyleMenuListing CountRoots CountryData Covariance CovarianceEstimatorFunction CovarianceFunction CoxianDistribution CoxIngersollRossProcess CoxModel CoxModelFit CramerVonMisesTest CreateArchive CreateDialog CreateDirectory CreateDocument CreateIntermediateDirectories CreatePalette CreatePalettePacket CreateScheduledTask CreateTemporary CreateWindow CriticalityFailureImportance CriticalitySuccessImportance CriticalSection Cross CrossingDetect CrossMatrix Csc Csch CubeRoot Cubics Cuboid CuboidBox Cumulant CumulantGeneratingFunction Cup CupCap Curl CurlyDoubleQuote CurlyQuote CurrentImage CurrentlySpeakingPacket CurrentValue CurvatureFlowFilter CurveClosed Cyan CycleGraph CycleIndexPolynomial Cycles CyclicGroup Cyclotomic Cylinder CylinderBox CylindricalDecomposition ' +
9769 'D DagumDistribution DamerauLevenshteinDistance DampingFactor Darker Dashed Dashing DataCompression DataDistribution DataRange DataReversed Date DateDelimiters DateDifference DateFunction DateList DateListLogPlot DateListPlot DatePattern DatePlus DateRange DateString DateTicksFormat DaubechiesWavelet DavisDistribution DawsonF DayCount DayCountConvention DayMatchQ DayName DayPlus DayRange DayRound DeBruijnGraph Debug DebugTag Decimal DeclareKnownSymbols DeclarePackage Decompose Decrement DedekindEta Default DefaultAxesStyle DefaultBaseStyle DefaultBoxStyle DefaultButton DefaultColor DefaultControlPlacement DefaultDuplicateCellStyle DefaultDuration DefaultElement DefaultFaceGridsStyle DefaultFieldHintStyle DefaultFont DefaultFontProperties DefaultFormatType DefaultFormatTypeForStyle DefaultFrameStyle DefaultFrameTicksStyle DefaultGridLinesStyle DefaultInlineFormatType DefaultInputFormatType DefaultLabelStyle DefaultMenuStyle DefaultNaturalLanguage DefaultNewCellStyle DefaultNewInlineCellStyle DefaultNotebook DefaultOptions DefaultOutputFormatType DefaultStyle DefaultStyleDefinitions DefaultTextFormatType DefaultTextInlineFormatType DefaultTicksStyle DefaultTooltipStyle DefaultValues Defer DefineExternal DefineInputStreamMethod DefineOutputStreamMethod Definition Degree DegreeCentrality DegreeGraphDistribution DegreeLexicographic DegreeReverseLexicographic Deinitialization Del Deletable Delete DeleteBorderComponents DeleteCases DeleteContents DeleteDirectory DeleteDuplicates DeleteFile DeleteSmallComponents DeleteWithContents DeletionWarning Delimiter DelimiterFlashTime DelimiterMatching Delimiters Denominator DensityGraphics DensityHistogram DensityPlot DependentVariables Deploy Deployed Depth DepthFirstScan Derivative DerivativeFilter DescriptorStateSpace DesignMatrix Det DGaussianWavelet DiacriticalPositioning Diagonal DiagonalMatrix Dialog DialogIndent DialogInput DialogLevel DialogNotebook DialogProlog DialogReturn DialogSymbols Diamond DiamondMatrix DiceDissimilarity DictionaryLookup DifferenceDelta DifferenceOrder DifferenceRoot DifferenceRootReduce Differences DifferentialD DifferentialRoot DifferentialRootReduce DifferentiatorFilter DigitBlock DigitBlockMinimum DigitCharacter DigitCount DigitQ DihedralGroup Dilation Dimensions DiracComb DiracDelta DirectedEdge DirectedEdges DirectedGraph DirectedGraphQ DirectedInfinity Direction Directive Directory DirectoryName DirectoryQ DirectoryStack DirichletCharacter DirichletConvolve DirichletDistribution DirichletL DirichletTransform DirichletWindow DisableConsolePrintPacket DiscreteChirpZTransform DiscreteConvolve DiscreteDelta DiscreteHadamardTransform DiscreteIndicator DiscreteLQEstimatorGains DiscreteLQRegulatorGains DiscreteLyapunovSolve DiscreteMarkovProcess DiscretePlot DiscretePlot3D DiscreteRatio DiscreteRiccatiSolve DiscreteShift DiscreteTimeModelQ DiscreteUniformDistribution DiscreteVariables DiscreteWaveletData DiscreteWaveletPacketTransform ' +
9770 'DiscreteWaveletTransform Discriminant Disjunction Disk DiskBox DiskMatrix Dispatch DispersionEstimatorFunction Display DisplayAllSteps DisplayEndPacket DisplayFlushImagePacket DisplayForm DisplayFunction DisplayPacket DisplayRules DisplaySetSizePacket DisplayString DisplayTemporary DisplayWith DisplayWithRef DisplayWithVariable DistanceFunction DistanceTransform Distribute Distributed DistributedContexts DistributeDefinitions DistributionChart DistributionDomain DistributionFitTest DistributionParameterAssumptions DistributionParameterQ Dithering Div Divergence Divide DivideBy Dividers Divisible Divisors DivisorSigma DivisorSum DMSList DMSString Do DockedCells DocumentNotebook DominantColors DOSTextFormat Dot DotDashed DotEqual Dotted DoubleBracketingBar DoubleContourIntegral DoubleDownArrow DoubleLeftArrow DoubleLeftRightArrow DoubleLeftTee DoubleLongLeftArrow DoubleLongLeftRightArrow DoubleLongRightArrow DoubleRightArrow DoubleRightTee DoubleUpArrow DoubleUpDownArrow DoubleVerticalBar DoublyInfinite Down DownArrow DownArrowBar DownArrowUpArrow DownLeftRightVector DownLeftTeeVector DownLeftVector DownLeftVectorBar DownRightTeeVector DownRightVector DownRightVectorBar Downsample DownTee DownTeeArrow DownValues DragAndDrop DrawEdges DrawFrontFaces DrawHighlighted Drop DSolve Dt DualLinearProgramming DualSystemsModel DumpGet DumpSave DuplicateFreeQ Dynamic DynamicBox DynamicBoxOptions DynamicEvaluationTimeout DynamicLocation DynamicModule DynamicModuleBox DynamicModuleBoxOptions DynamicModuleParent DynamicModuleValues DynamicName DynamicNamespace DynamicReference DynamicSetting DynamicUpdating DynamicWrapper DynamicWrapperBox DynamicWrapperBoxOptions ' +
9771 'E EccentricityCentrality EdgeAdd EdgeBetweennessCentrality EdgeCapacity EdgeCapForm EdgeColor EdgeConnectivity EdgeCost EdgeCount EdgeCoverQ EdgeDashing EdgeDelete EdgeDetect EdgeForm EdgeIndex EdgeJoinForm EdgeLabeling EdgeLabels EdgeLabelStyle EdgeList EdgeOpacity EdgeQ EdgeRenderingFunction EdgeRules EdgeShapeFunction EdgeStyle EdgeThickness EdgeWeight Editable EditButtonSettings EditCellTagsSettings EditDistance EffectiveInterest Eigensystem Eigenvalues EigenvectorCentrality Eigenvectors Element ElementData Eliminate EliminationOrder EllipticE EllipticExp EllipticExpPrime EllipticF EllipticFilterModel EllipticK EllipticLog EllipticNomeQ EllipticPi EllipticReducedHalfPeriods EllipticTheta EllipticThetaPrime EmitSound EmphasizeSyntaxErrors EmpiricalDistribution Empty EmptyGraphQ EnableConsolePrintPacket Enabled Encode End EndAdd EndDialogPacket EndFrontEndInteractionPacket EndOfFile EndOfLine EndOfString EndPackage EngineeringForm Enter EnterExpressionPacket EnterTextPacket Entropy EntropyFilter Environment Epilog Equal EqualColumns EqualRows EqualTilde EquatedTo Equilibrium EquirippleFilterKernel Equivalent Erf Erfc Erfi ErlangB ErlangC ErlangDistribution Erosion ErrorBox ErrorBoxOptions ErrorNorm ErrorPacket ErrorsDialogSettings EstimatedDistribution EstimatedProcess EstimatorGains EstimatorRegulator EuclideanDistance EulerE EulerGamma EulerianGraphQ EulerPhi Evaluatable Evaluate Evaluated EvaluatePacket EvaluationCell EvaluationCompletionAction EvaluationElements EvaluationMode EvaluationMonitor EvaluationNotebook EvaluationObject EvaluationOrder Evaluator EvaluatorNames EvenQ EventData EventEvaluator EventHandler EventHandlerTag EventLabels ExactBlackmanWindow ExactNumberQ ExactRootIsolation ExampleData Except ExcludedForms ExcludePods Exclusions ExclusionsStyle Exists Exit ExitDialog Exp Expand ExpandAll ExpandDenominator ExpandFileName ExpandNumerator Expectation ExpectationE ExpectedValue ExpGammaDistribution ExpIntegralE ExpIntegralEi Exponent ExponentFunction ExponentialDistribution ExponentialFamily ExponentialGeneratingFunction ExponentialMovingAverage ExponentialPowerDistribution ExponentPosition ExponentStep Export ExportAutoReplacements ExportPacket ExportString Expression ExpressionCell ExpressionPacket ExpToTrig ExtendedGCD Extension ExtentElementFunction ExtentMarkers ExtentSize ExternalCall ExternalDataCharacterEncoding Extract ExtractArchive ExtremeValueDistribution ' +
9772 'FaceForm FaceGrids FaceGridsStyle Factor FactorComplete Factorial Factorial2 FactorialMoment FactorialMomentGeneratingFunction FactorialPower FactorInteger FactorList FactorSquareFree FactorSquareFreeList FactorTerms FactorTermsList Fail FailureDistribution False FARIMAProcess FEDisableConsolePrintPacket FeedbackSector FeedbackSectorStyle FeedbackType FEEnableConsolePrintPacket Fibonacci FieldHint FieldHintStyle FieldMasked FieldSize File FileBaseName FileByteCount FileDate FileExistsQ FileExtension FileFormat FileHash FileInformation FileName FileNameDepth FileNameDialogSettings FileNameDrop FileNameJoin FileNames FileNameSetter FileNameSplit FileNameTake FilePrint FileType FilledCurve FilledCurveBox Filling FillingStyle FillingTransform FilterRules FinancialBond FinancialData FinancialDerivative FinancialIndicator Find FindArgMax FindArgMin FindClique FindClusters FindCurvePath FindDistributionParameters FindDivisions FindEdgeCover FindEdgeCut FindEulerianCycle FindFaces FindFile FindFit FindGeneratingFunction FindGeoLocation FindGeometricTransform FindGraphCommunities FindGraphIsomorphism FindGraphPartition FindHamiltonianCycle FindIndependentEdgeSet FindIndependentVertexSet FindInstance FindIntegerNullVector FindKClan FindKClique FindKClub FindKPlex FindLibrary FindLinearRecurrence FindList FindMaximum FindMaximumFlow FindMaxValue FindMinimum FindMinimumCostFlow FindMinimumCut FindMinValue FindPermutation FindPostmanTour FindProcessParameters FindRoot FindSequenceFunction FindSettings FindShortestPath FindShortestTour FindThreshold FindVertexCover FindVertexCut Fine FinishDynamic FiniteAbelianGroupCount FiniteGroupCount FiniteGroupData First FirstPassageTimeDistribution FischerGroupFi22 FischerGroupFi23 FischerGroupFi24Prime FisherHypergeometricDistribution FisherRatioTest FisherZDistribution Fit FitAll FittedModel FixedPoint FixedPointList FlashSelection Flat Flatten FlattenAt FlatTopWindow FlipView Floor FlushPrintOutputPacket Fold FoldList Font FontColor FontFamily FontForm FontName FontOpacity FontPostScriptName FontProperties FontReencoding FontSize FontSlant FontSubstitutions FontTracking FontVariations FontWeight For ForAll Format FormatRules FormatType FormatTypeAutoConvert FormatValues FormBox FormBoxOptions FortranForm Forward ForwardBackward Fourier FourierCoefficient FourierCosCoefficient FourierCosSeries FourierCosTransform FourierDCT FourierDCTFilter FourierDCTMatrix FourierDST FourierDSTMatrix FourierMatrix FourierParameters FourierSequenceTransform FourierSeries FourierSinCoefficient FourierSinSeries FourierSinTransform FourierTransform FourierTrigSeries FractionalBrownianMotionProcess FractionalPart FractionBox FractionBoxOptions FractionLine Frame FrameBox FrameBoxOptions Framed FrameInset FrameLabel Frameless FrameMargins FrameStyle FrameTicks FrameTicksStyle FRatioDistribution FrechetDistribution FreeQ FrequencySamplingFilterKernel FresnelC FresnelS Friday FrobeniusNumber FrobeniusSolve ' +
9773 'FromCharacterCode FromCoefficientRules FromContinuedFraction FromDate FromDigits FromDMS Front FrontEndDynamicExpression FrontEndEventActions FrontEndExecute FrontEndObject FrontEndResource FrontEndResourceString FrontEndStackSize FrontEndToken FrontEndTokenExecute FrontEndValueCache FrontEndVersion FrontFaceColor FrontFaceOpacity Full FullAxes FullDefinition FullForm FullGraphics FullOptions FullSimplify Function FunctionExpand FunctionInterpolation FunctionSpace FussellVeselyImportance ' +
9774 'GaborFilter GaborMatrix GaborWavelet GainMargins GainPhaseMargins Gamma GammaDistribution GammaRegularized GapPenalty Gather GatherBy GaugeFaceElementFunction GaugeFaceStyle GaugeFrameElementFunction GaugeFrameSize GaugeFrameStyle GaugeLabels GaugeMarkers GaugeStyle GaussianFilter GaussianIntegers GaussianMatrix GaussianWindow GCD GegenbauerC General GeneralizedLinearModelFit GenerateConditions GeneratedCell GeneratedParameters GeneratingFunction Generic GenericCylindricalDecomposition GenomeData GenomeLookup GeodesicClosing GeodesicDilation GeodesicErosion GeodesicOpening GeoDestination GeodesyData GeoDirection GeoDistance GeoGridPosition GeometricBrownianMotionProcess GeometricDistribution GeometricMean GeometricMeanFilter GeometricTransformation GeometricTransformation3DBox GeometricTransformation3DBoxOptions GeometricTransformationBox GeometricTransformationBoxOptions GeoPosition GeoPositionENU GeoPositionXYZ GeoProjectionData GestureHandler GestureHandlerTag Get GetBoundingBoxSizePacket GetContext GetEnvironment GetFileName GetFrontEndOptionsDataPacket GetLinebreakInformationPacket GetMenusPacket GetPageBreakInformationPacket Glaisher GlobalClusteringCoefficient GlobalPreferences GlobalSession Glow GoldenRatio GompertzMakehamDistribution GoodmanKruskalGamma GoodmanKruskalGammaTest Goto Grad Gradient GradientFilter GradientOrientationFilter Graph GraphAssortativity GraphCenter GraphComplement GraphData GraphDensity GraphDiameter GraphDifference GraphDisjointUnion ' +
9775 'GraphDistance GraphDistanceMatrix GraphElementData GraphEmbedding GraphHighlight GraphHighlightStyle GraphHub Graphics Graphics3D Graphics3DBox Graphics3DBoxOptions GraphicsArray GraphicsBaseline GraphicsBox GraphicsBoxOptions GraphicsColor GraphicsColumn GraphicsComplex GraphicsComplex3DBox GraphicsComplex3DBoxOptions GraphicsComplexBox GraphicsComplexBoxOptions GraphicsContents GraphicsData GraphicsGrid GraphicsGridBox GraphicsGroup GraphicsGroup3DBox GraphicsGroup3DBoxOptions GraphicsGroupBox GraphicsGroupBoxOptions GraphicsGrouping GraphicsHighlightColor GraphicsRow GraphicsSpacing GraphicsStyle GraphIntersection GraphLayout GraphLinkEfficiency GraphPeriphery GraphPlot GraphPlot3D GraphPower GraphPropertyDistribution GraphQ GraphRadius GraphReciprocity GraphRoot GraphStyle GraphUnion Gray GrayLevel GreatCircleDistance Greater GreaterEqual GreaterEqualLess GreaterFullEqual GreaterGreater GreaterLess GreaterSlantEqual GreaterTilde Green Grid GridBaseline GridBox GridBoxAlignment GridBoxBackground GridBoxDividers GridBoxFrame GridBoxItemSize GridBoxItemStyle GridBoxOptions GridBoxSpacings GridCreationSettings GridDefaultElement GridElementStyleOptions GridFrame GridFrameMargins GridGraph GridLines GridLinesStyle GroebnerBasis GroupActionBase GroupCentralizer GroupElementFromWord GroupElementPosition GroupElementQ GroupElements GroupElementToWord GroupGenerators GroupMultiplicationTable GroupOrbits GroupOrder GroupPageBreakWithin GroupSetwiseStabilizer GroupStabilizer GroupStabilizerChain Gudermannian GumbelDistribution ' +
9776 'HaarWavelet HadamardMatrix HalfNormalDistribution HamiltonianGraphQ HammingDistance HammingWindow HankelH1 HankelH2 HankelMatrix HannPoissonWindow HannWindow HaradaNortonGroupHN HararyGraph HarmonicMean HarmonicMeanFilter HarmonicNumber Hash HashTable Haversine HazardFunction Head HeadCompose Heads HeavisideLambda HeavisidePi HeavisideTheta HeldGroupHe HeldPart HelpBrowserLookup HelpBrowserNotebook HelpBrowserSettings HermiteDecomposition HermiteH HermitianMatrixQ HessenbergDecomposition Hessian HexadecimalCharacter Hexahedron HexahedronBox HexahedronBoxOptions HiddenSurface HighlightGraph HighlightImage HighpassFilter HigmanSimsGroupHS HilbertFilter HilbertMatrix Histogram Histogram3D HistogramDistribution HistogramList HistogramTransform HistogramTransformInterpolation HitMissTransform HITSCentrality HodgeDual HoeffdingD HoeffdingDTest Hold HoldAll HoldAllComplete HoldComplete HoldFirst HoldForm HoldPattern HoldRest HolidayCalendar HomeDirectory HomePage Horizontal HorizontalForm HorizontalGauge HorizontalScrollPosition HornerForm HotellingTSquareDistribution HoytDistribution HTMLSave Hue HumpDownHump HumpEqual HurwitzLerchPhi HurwitzZeta HyperbolicDistribution HypercubeGraph HyperexponentialDistribution Hyperfactorial Hypergeometric0F1 Hypergeometric0F1Regularized Hypergeometric1F1 Hypergeometric1F1Regularized Hypergeometric2F1 Hypergeometric2F1Regularized HypergeometricDistribution HypergeometricPFQ HypergeometricPFQRegularized HypergeometricU Hyperlink HyperlinkCreationSettings Hyphenation HyphenationOptions HypoexponentialDistribution HypothesisTestData ' +
9777 'I Identity IdentityMatrix If IgnoreCase Im Image Image3D Image3DSlices ImageAccumulate ImageAdd ImageAdjust ImageAlign ImageApply ImageAspectRatio ImageAssemble ImageCache ImageCacheValid ImageCapture ImageChannels ImageClip ImageColorSpace ImageCompose ImageConvolve ImageCooccurrence ImageCorners ImageCorrelate ImageCorrespondingPoints ImageCrop ImageData ImageDataPacket ImageDeconvolve ImageDemosaic ImageDifference ImageDimensions ImageDistance ImageEffect ImageFeatureTrack ImageFileApply ImageFileFilter ImageFileScan ImageFilter ImageForestingComponents ImageForwardTransformation ImageHistogram ImageKeypoints ImageLevels ImageLines ImageMargins ImageMarkers ImageMeasurements ImageMultiply ImageOffset ImagePad ImagePadding ImagePartition ImagePeriodogram ImagePerspectiveTransformation ImageQ ImageRangeCache ImageReflect ImageRegion ImageResize ImageResolution ImageRotate ImageRotated ImageScaled ImageScan ImageSize ImageSizeAction ImageSizeCache ImageSizeMultipliers ImageSizeRaw ImageSubtract ImageTake ImageTransformation ImageTrim ImageType ImageValue ImageValuePositions Implies Import ImportAutoReplacements ImportString ImprovementImportance In IncidenceGraph IncidenceList IncidenceMatrix IncludeConstantBasis IncludeFileExtension IncludePods IncludeSingularTerm Increment Indent IndentingNewlineSpacings IndentMaxFraction IndependenceTest IndependentEdgeSetQ IndependentUnit IndependentVertexSetQ Indeterminate IndexCreationOptions Indexed IndexGraph IndexTag Inequality InexactNumberQ InexactNumbers Infinity Infix Information Inherited InheritScope Initialization InitializationCell InitializationCellEvaluation InitializationCellWarning InlineCounterAssignments InlineCounterIncrements InlineRules Inner Inpaint Input InputAliases InputAssumptions InputAutoReplacements InputField InputFieldBox InputFieldBoxOptions InputForm InputGrouping InputNamePacket InputNotebook InputPacket InputSettings InputStream InputString InputStringPacket InputToBoxFormPacket Insert InsertionPointObject InsertResults Inset Inset3DBox Inset3DBoxOptions InsetBox InsetBoxOptions Install InstallService InString Integer IntegerDigits IntegerExponent IntegerLength IntegerPart IntegerPartitions IntegerQ Integers IntegerString Integral Integrate Interactive InteractiveTradingChart Interlaced Interleaving InternallyBalancedDecomposition InterpolatingFunction InterpolatingPolynomial Interpolation InterpolationOrder InterpolationPoints InterpolationPrecision Interpretation InterpretationBox InterpretationBoxOptions InterpretationFunction ' +
9778 'InterpretTemplate InterquartileRange Interrupt InterruptSettings Intersection Interval IntervalIntersection IntervalMemberQ IntervalUnion Inverse InverseBetaRegularized InverseCDF InverseChiSquareDistribution InverseContinuousWaveletTransform InverseDistanceTransform InverseEllipticNomeQ InverseErf InverseErfc InverseFourier InverseFourierCosTransform InverseFourierSequenceTransform InverseFourierSinTransform InverseFourierTransform InverseFunction InverseFunctions InverseGammaDistribution InverseGammaRegularized InverseGaussianDistribution InverseGudermannian InverseHaversine InverseJacobiCD InverseJacobiCN InverseJacobiCS InverseJacobiDC InverseJacobiDN InverseJacobiDS InverseJacobiNC InverseJacobiND InverseJacobiNS InverseJacobiSC InverseJacobiSD InverseJacobiSN InverseLaplaceTransform InversePermutation InverseRadon InverseSeries InverseSurvivalFunction InverseWaveletTransform InverseWeierstrassP InverseZTransform Invisible InvisibleApplication InvisibleTimes IrreduciblePolynomialQ IsolatingInterval IsomorphicGraphQ IsotopeData Italic Item ItemBox ItemBoxOptions ItemSize ItemStyle ItoProcess ' +
9779 'JaccardDissimilarity JacobiAmplitude Jacobian JacobiCD JacobiCN JacobiCS JacobiDC JacobiDN JacobiDS JacobiNC JacobiND JacobiNS JacobiP JacobiSC JacobiSD JacobiSN JacobiSymbol JacobiZeta JankoGroupJ1 JankoGroupJ2 JankoGroupJ3 JankoGroupJ4 JarqueBeraALMTest JohnsonDistribution Join Joined JoinedCurve JoinedCurveBox JoinForm JordanDecomposition JordanModelDecomposition ' +
9780 'K KagiChart KaiserBesselWindow KaiserWindow KalmanEstimator KalmanFilter KarhunenLoeveDecomposition KaryTree KatzCentrality KCoreComponents KDistribution KelvinBei KelvinBer KelvinKei KelvinKer KendallTau KendallTauTest KernelExecute KernelMixtureDistribution KernelObject Kernels Ket Khinchin KirchhoffGraph KirchhoffMatrix KleinInvariantJ KnightTourGraph KnotData KnownUnitQ KolmogorovSmirnovTest KroneckerDelta KroneckerModelDecomposition KroneckerProduct KroneckerSymbol KuiperTest KumaraswamyDistribution Kurtosis KuwaharaFilter ' +
9781 'Label Labeled LabeledSlider LabelingFunction LabelStyle LaguerreL LambdaComponents LambertW LanczosWindow LandauDistribution Language LanguageCategory LaplaceDistribution LaplaceTransform Laplacian LaplacianFilter LaplacianGaussianFilter Large Larger Last Latitude LatitudeLongitude LatticeData LatticeReduce Launch LaunchKernels LayeredGraphPlot LayerSizeFunction LayoutInformation LCM LeafCount LeapYearQ LeastSquares LeastSquaresFilterKernel Left LeftArrow LeftArrowBar LeftArrowRightArrow LeftDownTeeVector LeftDownVector LeftDownVectorBar LeftRightArrow LeftRightVector LeftTee LeftTeeArrow LeftTeeVector LeftTriangle LeftTriangleBar LeftTriangleEqual LeftUpDownVector LeftUpTeeVector LeftUpVector LeftUpVectorBar LeftVector LeftVectorBar LegendAppearance Legended LegendFunction LegendLabel LegendLayout LegendMargins LegendMarkers LegendMarkerSize LegendreP LegendreQ LegendreType Length LengthWhile LerchPhi Less LessEqual LessEqualGreater LessFullEqual LessGreater LessLess LessSlantEqual LessTilde LetterCharacter LetterQ Level LeveneTest LeviCivitaTensor LevyDistribution Lexicographic LibraryFunction LibraryFunctionError LibraryFunctionInformation LibraryFunctionLoad LibraryFunctionUnload LibraryLoad LibraryUnload LicenseID LiftingFilterData LiftingWaveletTransform LightBlue LightBrown LightCyan Lighter LightGray LightGreen Lighting LightingAngle LightMagenta LightOrange LightPink LightPurple LightRed LightSources LightYellow Likelihood Limit LimitsPositioning LimitsPositioningTokens LindleyDistribution Line Line3DBox LinearFilter LinearFractionalTransform LinearModelFit LinearOffsetFunction LinearProgramming LinearRecurrence LinearSolve LinearSolveFunction LineBox LineBreak LinebreakAdjustments LineBreakChart LineBreakWithin LineColor LineForm LineGraph LineIndent LineIndentMaxFraction LineIntegralConvolutionPlot LineIntegralConvolutionScale LineLegend LineOpacity LineSpacing LineWrapParts LinkActivate LinkClose LinkConnect LinkConnectedQ LinkCreate LinkError LinkFlush LinkFunction LinkHost LinkInterrupt LinkLaunch LinkMode LinkObject LinkOpen LinkOptions LinkPatterns LinkProtocol LinkRead LinkReadHeld LinkReadyQ Links LinkWrite LinkWriteHeld LiouvilleLambda List Listable ListAnimate ListContourPlot ListContourPlot3D ListConvolve ListCorrelate ListCurvePathPlot ListDeconvolve ListDensityPlot Listen ListFourierSequenceTransform ListInterpolation ListLineIntegralConvolutionPlot ListLinePlot ListLogLinearPlot ListLogLogPlot ListLogPlot ListPicker ListPickerBox ListPickerBoxBackground ListPickerBoxOptions ListPlay ListPlot ListPlot3D ListPointPlot3D ListPolarPlot ListQ ListStreamDensityPlot ListStreamPlot ListSurfacePlot3D ListVectorDensityPlot ListVectorPlot ListVectorPlot3D ListZTransform Literal LiteralSearch LocalClusteringCoefficient LocalizeVariables LocationEquivalenceTest LocationTest Locator LocatorAutoCreate LocatorBox LocatorBoxOptions LocatorCentering LocatorPane LocatorPaneBox LocatorPaneBoxOptions ' +
9782 'LocatorRegion Locked Log Log10 Log2 LogBarnesG LogGamma LogGammaDistribution LogicalExpand LogIntegral LogisticDistribution LogitModelFit LogLikelihood LogLinearPlot LogLogisticDistribution LogLogPlot LogMultinormalDistribution LogNormalDistribution LogPlot LogRankTest LogSeriesDistribution LongEqual Longest LongestAscendingSequence LongestCommonSequence LongestCommonSequencePositions LongestCommonSubsequence LongestCommonSubsequencePositions LongestMatch LongForm Longitude LongLeftArrow LongLeftRightArrow LongRightArrow Loopback LoopFreeGraphQ LowerCaseQ LowerLeftArrow LowerRightArrow LowerTriangularize LowpassFilter LQEstimatorGains LQGRegulator LQOutputRegulatorGains LQRegulatorGains LUBackSubstitution LucasL LuccioSamiComponents LUDecomposition LyapunovSolve LyonsGroupLy ' +
9783 'MachineID MachineName MachineNumberQ MachinePrecision MacintoshSystemPageSetup Magenta Magnification Magnify MainSolve MaintainDynamicCaches Majority MakeBoxes MakeExpression MakeRules MangoldtLambda ManhattanDistance Manipulate Manipulator MannWhitneyTest MantissaExponent Manual Map MapAll MapAt MapIndexed MAProcess MapThread MarcumQ MardiaCombinedTest MardiaKurtosisTest MardiaSkewnessTest MarginalDistribution MarkovProcessProperties Masking MatchingDissimilarity MatchLocalNameQ MatchLocalNames MatchQ Material MathematicaNotation MathieuC MathieuCharacteristicA MathieuCharacteristicB MathieuCharacteristicExponent MathieuCPrime MathieuGroupM11 MathieuGroupM12 MathieuGroupM22 MathieuGroupM23 MathieuGroupM24 MathieuS MathieuSPrime MathMLForm MathMLText Matrices MatrixExp MatrixForm MatrixFunction MatrixLog MatrixPlot MatrixPower MatrixQ MatrixRank Max MaxBend MaxDetect MaxExtraBandwidths MaxExtraConditions MaxFeatures MaxFilter Maximize MaxIterations MaxMemoryUsed MaxMixtureKernels MaxPlotPoints MaxPoints MaxRecursion MaxStableDistribution MaxStepFraction MaxSteps MaxStepSize MaxValue MaxwellDistribution McLaughlinGroupMcL Mean MeanClusteringCoefficient MeanDegreeConnectivity MeanDeviation MeanFilter MeanGraphDistance MeanNeighborDegree MeanShift MeanShiftFilter Median MedianDeviation MedianFilter Medium MeijerG MeixnerDistribution MemberQ MemoryConstrained MemoryInUse Menu MenuAppearance MenuCommandKey MenuEvaluator MenuItem MenuPacket MenuSortingValue MenuStyle MenuView MergeDifferences Mesh MeshFunctions MeshRange MeshShading MeshStyle Message MessageDialog MessageList MessageName MessageOptions MessagePacket Messages MessagesNotebook MetaCharacters MetaInformation Method MethodOptions MexicanHatWavelet MeyerWavelet Min MinDetect MinFilter MinimalPolynomial MinimalStateSpaceModel Minimize Minors MinRecursion MinSize MinStableDistribution Minus MinusPlus MinValue Missing MissingDataMethod MittagLefflerE MixedRadix MixedRadixQuantity MixtureDistribution Mod Modal Mode Modular ModularLambda Module Modulus MoebiusMu Moment Momentary MomentConvert MomentEvaluate MomentGeneratingFunction Monday Monitor MonomialList MonomialOrder MonsterGroupM MorletWavelet MorphologicalBinarize MorphologicalBranchPoints MorphologicalComponents MorphologicalEulerNumber MorphologicalGraph MorphologicalPerimeter MorphologicalTransform Most MouseAnnotation MouseAppearance MouseAppearanceTag MouseButtons Mouseover MousePointerNote MousePosition MovingAverage MovingMedian MoyalDistribution MultiedgeStyle MultilaunchWarning MultiLetterItalics MultiLetterStyle MultilineFunction Multinomial MultinomialDistribution MultinormalDistribution MultiplicativeOrder Multiplicity Multiselection MultivariateHypergeometricDistribution MultivariatePoissonDistribution MultivariateTDistribution ' +
9784 'N NakagamiDistribution NameQ Names NamespaceBox Nand NArgMax NArgMin NBernoulliB NCache NDSolve NDSolveValue Nearest NearestFunction NeedCurrentFrontEndPackagePacket NeedCurrentFrontEndSymbolsPacket NeedlemanWunschSimilarity Needs Negative NegativeBinomialDistribution NegativeMultinomialDistribution NeighborhoodGraph Nest NestedGreaterGreater NestedLessLess NestedScriptRules NestList NestWhile NestWhileList NevilleThetaC NevilleThetaD NevilleThetaN NevilleThetaS NewPrimitiveStyle NExpectation Next NextPrime NHoldAll NHoldFirst NHoldRest NicholsGridLines NicholsPlot NIntegrate NMaximize NMaxValue NMinimize NMinValue NominalVariables NonAssociative NoncentralBetaDistribution NoncentralChiSquareDistribution NoncentralFRatioDistribution NoncentralStudentTDistribution NonCommutativeMultiply NonConstants None NonlinearModelFit NonlocalMeansFilter NonNegative NonPositive Nor NorlundB Norm Normal NormalDistribution NormalGrouping Normalize NormalizedSquaredEuclideanDistance NormalsFunction NormFunction Not NotCongruent NotCupCap NotDoubleVerticalBar Notebook NotebookApply NotebookAutoSave NotebookClose NotebookConvertSettings NotebookCreate NotebookCreateReturnObject NotebookDefault NotebookDelete NotebookDirectory NotebookDynamicExpression NotebookEvaluate NotebookEventActions NotebookFileName NotebookFind NotebookFindReturnObject NotebookGet NotebookGetLayoutInformationPacket NotebookGetMisspellingsPacket NotebookInformation NotebookInterfaceObject NotebookLocate NotebookObject NotebookOpen NotebookOpenReturnObject NotebookPath NotebookPrint NotebookPut NotebookPutReturnObject NotebookRead NotebookResetGeneratedCells Notebooks NotebookSave NotebookSaveAs NotebookSelection NotebookSetupLayoutInformationPacket NotebooksMenu NotebookWrite NotElement NotEqualTilde NotExists NotGreater NotGreaterEqual NotGreaterFullEqual NotGreaterGreater NotGreaterLess NotGreaterSlantEqual NotGreaterTilde NotHumpDownHump NotHumpEqual NotLeftTriangle NotLeftTriangleBar NotLeftTriangleEqual NotLess NotLessEqual NotLessFullEqual NotLessGreater NotLessLess NotLessSlantEqual NotLessTilde NotNestedGreaterGreater NotNestedLessLess NotPrecedes NotPrecedesEqual NotPrecedesSlantEqual NotPrecedesTilde NotReverseElement NotRightTriangle NotRightTriangleBar NotRightTriangleEqual NotSquareSubset NotSquareSubsetEqual NotSquareSuperset NotSquareSupersetEqual NotSubset NotSubsetEqual NotSucceeds NotSucceedsEqual NotSucceedsSlantEqual NotSucceedsTilde NotSuperset NotSupersetEqual NotTilde NotTildeEqual NotTildeFullEqual NotTildeTilde NotVerticalBar NProbability NProduct NProductFactors NRoots NSolve NSum NSumTerms Null NullRecords NullSpace NullWords Number NumberFieldClassNumber NumberFieldDiscriminant NumberFieldFundamentalUnits NumberFieldIntegralBasis NumberFieldNormRepresentatives NumberFieldRegulator NumberFieldRootsOfUnity NumberFieldSignature NumberForm NumberFormat NumberMarks NumberMultiplier NumberPadding NumberPoint NumberQ NumberSeparator ' +
9785 'NumberSigns NumberString Numerator NumericFunction NumericQ NuttallWindow NValues NyquistGridLines NyquistPlot ' +
9786 'O ObservabilityGramian ObservabilityMatrix ObservableDecomposition ObservableModelQ OddQ Off Offset OLEData On ONanGroupON OneIdentity Opacity Open OpenAppend Opener OpenerBox OpenerBoxOptions OpenerView OpenFunctionInspectorPacket Opening OpenRead OpenSpecialOptions OpenTemporary OpenWrite Operate OperatingSystem OptimumFlowData Optional OptionInspectorSettings OptionQ Options OptionsPacket OptionsPattern OptionValue OptionValueBox OptionValueBoxOptions Or Orange Order OrderDistribution OrderedQ Ordering Orderless OrnsteinUhlenbeckProcess Orthogonalize Out Outer OutputAutoOverwrite OutputControllabilityMatrix OutputControllableModelQ OutputForm OutputFormData OutputGrouping OutputMathEditExpression OutputNamePacket OutputResponse OutputSizeLimit OutputStream Over OverBar OverDot Overflow OverHat Overlaps Overlay OverlayBox OverlayBoxOptions Overscript OverscriptBox OverscriptBoxOptions OverTilde OverVector OwenT OwnValues ' +
9787 'PackingMethod PaddedForm Padding PadeApproximant PadLeft PadRight PageBreakAbove PageBreakBelow PageBreakWithin PageFooterLines PageFooters PageHeaderLines PageHeaders PageHeight PageRankCentrality PageWidth PairedBarChart PairedHistogram PairedSmoothHistogram PairedTTest PairedZTest PaletteNotebook PalettePath Pane PaneBox PaneBoxOptions Panel PanelBox PanelBoxOptions Paneled PaneSelector PaneSelectorBox PaneSelectorBoxOptions PaperWidth ParabolicCylinderD ParagraphIndent ParagraphSpacing ParallelArray ParallelCombine ParallelDo ParallelEvaluate Parallelization Parallelize ParallelMap ParallelNeeds ParallelProduct ParallelSubmit ParallelSum ParallelTable ParallelTry Parameter ParameterEstimator ParameterMixtureDistribution ParameterVariables ParametricFunction ParametricNDSolve ParametricNDSolveValue ParametricPlot ParametricPlot3D ParentConnect ParentDirectory ParentForm Parenthesize ParentList ParetoDistribution Part PartialCorrelationFunction PartialD ParticleData Partition PartitionsP PartitionsQ ParzenWindow PascalDistribution PassEventsDown PassEventsUp Paste PasteBoxFormInlineCells PasteButton Path PathGraph PathGraphQ Pattern PatternSequence PatternTest PauliMatrix PaulWavelet Pause PausedTime PDF PearsonChiSquareTest PearsonCorrelationTest PearsonDistribution PerformanceGoal PeriodicInterpolation Periodogram PeriodogramArray PermutationCycles PermutationCyclesQ PermutationGroup PermutationLength PermutationList PermutationListQ PermutationMax PermutationMin PermutationOrder PermutationPower PermutationProduct PermutationReplace Permutations PermutationSupport Permute PeronaMalikFilter Perpendicular PERTDistribution PetersenGraph PhaseMargins Pi Pick PIDData PIDDerivativeFilter PIDFeedforward PIDTune Piecewise PiecewiseExpand PieChart PieChart3D PillaiTrace PillaiTraceTest Pink Pivoting PixelConstrained PixelValue PixelValuePositions Placed Placeholder PlaceholderReplace Plain PlanarGraphQ Play PlayRange Plot Plot3D Plot3Matrix PlotDivision PlotJoined PlotLabel PlotLayout PlotLegends PlotMarkers PlotPoints PlotRange PlotRangeClipping PlotRangePadding PlotRegion PlotStyle Plus PlusMinus Pochhammer PodStates PodWidth Point Point3DBox PointBox PointFigureChart PointForm PointLegend PointSize PoissonConsulDistribution PoissonDistribution PoissonProcess PoissonWindow PolarAxes PolarAxesOrigin PolarGridLines PolarPlot PolarTicks PoleZeroMarkers PolyaAeppliDistribution PolyGamma Polygon Polygon3DBox Polygon3DBoxOptions PolygonBox PolygonBoxOptions PolygonHoleScale PolygonIntersections PolygonScale PolyhedronData PolyLog PolynomialExtendedGCD PolynomialForm PolynomialGCD PolynomialLCM PolynomialMod PolynomialQ PolynomialQuotient PolynomialQuotientRemainder PolynomialReduce PolynomialRemainder Polynomials PopupMenu PopupMenuBox PopupMenuBoxOptions PopupView PopupWindow Position Positive PositiveDefiniteMatrixQ PossibleZeroQ Postfix PostScript Power PowerDistribution PowerExpand PowerMod PowerModList ' +
9788 'PowerSpectralDensity PowersRepresentations PowerSymmetricPolynomial Precedence PrecedenceForm Precedes PrecedesEqual PrecedesSlantEqual PrecedesTilde Precision PrecisionGoal PreDecrement PredictionRoot PreemptProtect PreferencesPath Prefix PreIncrement Prepend PrependTo PreserveImageOptions Previous PriceGraphDistribution PrimaryPlaceholder Prime PrimeNu PrimeOmega PrimePi PrimePowerQ PrimeQ Primes PrimeZetaP PrimitiveRoot PrincipalComponents PrincipalValue Print PrintAction PrintForm PrintingCopies PrintingOptions PrintingPageRange PrintingStartingPageNumber PrintingStyleEnvironment PrintPrecision PrintTemporary Prism PrismBox PrismBoxOptions PrivateCellOptions PrivateEvaluationOptions PrivateFontOptions PrivateFrontEndOptions PrivateNotebookOptions PrivatePaths Probability ProbabilityDistribution ProbabilityPlot ProbabilityPr ProbabilityScalePlot ProbitModelFit ProcessEstimator ProcessParameterAssumptions ProcessParameterQ ProcessStateDomain ProcessTimeDomain Product ProductDistribution ProductLog ProgressIndicator ProgressIndicatorBox ProgressIndicatorBoxOptions Projection Prolog PromptForm Properties Property PropertyList PropertyValue Proportion Proportional Protect Protected ProteinData Pruning PseudoInverse Purple Put PutAppend Pyramid PyramidBox PyramidBoxOptions ' +
9789 'QBinomial QFactorial QGamma QHypergeometricPFQ QPochhammer QPolyGamma QRDecomposition QuadraticIrrationalQ Quantile QuantilePlot Quantity QuantityForm QuantityMagnitude QuantityQ QuantityUnit Quartics QuartileDeviation Quartiles QuartileSkewness QueueingNetworkProcess QueueingProcess QueueProperties Quiet Quit Quotient QuotientRemainder ' +
9790 'RadialityCentrality RadicalBox RadicalBoxOptions RadioButton RadioButtonBar RadioButtonBox RadioButtonBoxOptions Radon RamanujanTau RamanujanTauL RamanujanTauTheta RamanujanTauZ Random RandomChoice RandomComplex RandomFunction RandomGraph RandomImage RandomInteger RandomPermutation RandomPrime RandomReal RandomSample RandomSeed RandomVariate RandomWalkProcess Range RangeFilter RangeSpecification RankedMax RankedMin Raster Raster3D Raster3DBox Raster3DBoxOptions RasterArray RasterBox RasterBoxOptions Rasterize RasterSize Rational RationalFunctions Rationalize Rationals Ratios Raw RawArray RawBoxes RawData RawMedium RayleighDistribution Re Read ReadList ReadProtected Real RealBlockDiagonalForm RealDigits RealExponent Reals Reap Record RecordLists RecordSeparators Rectangle RectangleBox RectangleBoxOptions RectangleChart RectangleChart3D RecurrenceFilter RecurrenceTable RecurringDigitsForm Red Reduce RefBox ReferenceLineStyle ReferenceMarkers ReferenceMarkerStyle Refine ReflectionMatrix ReflectionTransform Refresh RefreshRate RegionBinarize RegionFunction RegionPlot RegionPlot3D RegularExpression Regularization Reinstall Release ReleaseHold ReliabilityDistribution ReliefImage ReliefPlot Remove RemoveAlphaChannel RemoveAsynchronousTask Removed RemoveInputStreamMethod RemoveOutputStreamMethod RemoveProperty RemoveScheduledTask RenameDirectory RenameFile RenderAll RenderingOptions RenewalProcess RenkoChart Repeated RepeatedNull RepeatedString Replace ReplaceAll ReplaceHeldPart ReplaceImageValue ReplaceList ReplacePart ReplacePixelValue ReplaceRepeated Resampling Rescale RescalingTransform ResetDirectory ResetMenusPacket ResetScheduledTask Residue Resolve Rest Resultant ResumePacket Return ReturnExpressionPacket ReturnInputFormPacket ReturnPacket ReturnTextPacket Reverse ReverseBiorthogonalSplineWavelet ReverseElement ReverseEquilibrium ReverseGraph ReverseUpEquilibrium RevolutionAxis RevolutionPlot3D RGBColor RiccatiSolve RiceDistribution RidgeFilter RiemannR RiemannSiegelTheta RiemannSiegelZ Riffle Right RightArrow RightArrowBar RightArrowLeftArrow RightCosetRepresentative RightDownTeeVector RightDownVector RightDownVectorBar RightTee RightTeeArrow RightTeeVector RightTriangle RightTriangleBar RightTriangleEqual RightUpDownVector RightUpTeeVector RightUpVector RightUpVectorBar RightVector RightVectorBar RiskAchievementImportance RiskReductionImportance RogersTanimotoDissimilarity Root RootApproximant RootIntervals RootLocusPlot RootMeanSquare RootOfUnityQ RootReduce Roots RootSum Rotate RotateLabel RotateLeft RotateRight RotationAction RotationBox RotationBoxOptions RotationMatrix RotationTransform Round RoundImplies RoundingRadius Row RowAlignments RowBackgrounds RowBox RowHeights RowLines RowMinHeight RowReduce RowsEqual RowSpacings RSolve RudvalisGroupRu Rule RuleCondition RuleDelayed RuleForm RulerUnits Run RunScheduledTask RunThrough RuntimeAttributes RuntimeOptions RussellRaoDissimilarity ' +
9791 'SameQ SameTest SampleDepth SampledSoundFunction SampledSoundList SampleRate SamplingPeriod SARIMAProcess SARMAProcess SatisfiabilityCount SatisfiabilityInstances SatisfiableQ Saturday Save Saveable SaveAutoDelete SaveDefinitions SawtoothWave Scale Scaled ScaleDivisions ScaledMousePosition ScaleOrigin ScalePadding ScaleRanges ScaleRangeStyle ScalingFunctions ScalingMatrix ScalingTransform Scan ScheduledTaskActiveQ ScheduledTaskData ScheduledTaskObject ScheduledTasks SchurDecomposition ScientificForm ScreenRectangle ScreenStyleEnvironment ScriptBaselineShifts ScriptLevel ScriptMinSize ScriptRules ScriptSizeMultipliers Scrollbars ScrollingOptions ScrollPosition Sec Sech SechDistribution SectionGrouping SectorChart SectorChart3D SectorOrigin SectorSpacing SeedRandom Select Selectable SelectComponents SelectedCells SelectedNotebook Selection SelectionAnimate SelectionCell SelectionCellCreateCell SelectionCellDefaultStyle SelectionCellParentStyle SelectionCreateCell SelectionDebuggerTag SelectionDuplicateCell SelectionEvaluate SelectionEvaluateCreateCell SelectionMove SelectionPlaceholder SelectionSetStyle SelectWithContents SelfLoops SelfLoopStyle SemialgebraicComponentInstances SendMail Sequence SequenceAlignment SequenceForm SequenceHold SequenceLimit Series SeriesCoefficient SeriesData SessionTime Set SetAccuracy SetAlphaChannel SetAttributes Setbacks SetBoxFormNamesPacket SetDelayed SetDirectory SetEnvironment SetEvaluationNotebook SetFileDate SetFileLoadingContext SetNotebookStatusLine SetOptions SetOptionsPacket SetPrecision SetProperty SetSelectedNotebook SetSharedFunction SetSharedVariable SetSpeechParametersPacket SetStreamPosition SetSystemOptions Setter SetterBar SetterBox SetterBoxOptions Setting SetValue Shading Shallow ShannonWavelet ShapiroWilkTest Share Sharpen ShearingMatrix ShearingTransform ShenCastanMatrix Short ShortDownArrow Shortest ShortestMatch ShortestPathFunction ShortLeftArrow ShortRightArrow ShortUpArrow Show ShowAutoStyles ShowCellBracket ShowCellLabel ShowCellTags ShowClosedCellArea ShowContents ShowControls ShowCursorTracker ShowGroupOpenCloseIcon ShowGroupOpener ShowInvisibleCharacters ShowPageBreaks ShowPredictiveInterface ShowSelection ShowShortBoxForm ShowSpecialCharacters ShowStringCharacters ShowSyntaxStyles ShrinkingDelay ShrinkWrapBoundingBox SiegelTheta SiegelTukeyTest Sign Signature SignedRankTest SignificanceLevel SignPadding SignTest SimilarityRules SimpleGraph SimpleGraphQ Simplify Sin Sinc SinghMaddalaDistribution SingleEvaluation SingleLetterItalics SingleLetterStyle SingularValueDecomposition SingularValueList SingularValuePlot SingularValues Sinh SinhIntegral SinIntegral SixJSymbol Skeleton SkeletonTransform SkellamDistribution Skewness SkewNormalDistribution Skip SliceDistribution Slider Slider2D Slider2DBox Slider2DBoxOptions SliderBox SliderBoxOptions SlideView Slot SlotSequence Small SmallCircle Smaller SmithDelayCompensator SmithWatermanSimilarity ' +
9792 'SmoothDensityHistogram SmoothHistogram SmoothHistogram3D SmoothKernelDistribution SocialMediaData Socket SokalSneathDissimilarity Solve SolveAlways SolveDelayed Sort SortBy Sound SoundAndGraphics SoundNote SoundVolume Sow Space SpaceForm Spacer Spacings Span SpanAdjustments SpanCharacterRounding SpanFromAbove SpanFromBoth SpanFromLeft SpanLineThickness SpanMaxSize SpanMinSize SpanningCharacters SpanSymmetric SparseArray SpatialGraphDistribution Speak SpeakTextPacket SpearmanRankTest SpearmanRho Spectrogram SpectrogramArray Specularity SpellingCorrection SpellingDictionaries SpellingDictionariesPath SpellingOptions SpellingSuggestionsPacket Sphere SphereBox SphericalBesselJ SphericalBesselY SphericalHankelH1 SphericalHankelH2 SphericalHarmonicY SphericalPlot3D SphericalRegion SpheroidalEigenvalue SpheroidalJoiningFactor SpheroidalPS SpheroidalPSPrime SpheroidalQS SpheroidalQSPrime SpheroidalRadialFactor SpheroidalS1 SpheroidalS1Prime SpheroidalS2 SpheroidalS2Prime Splice SplicedDistribution SplineClosed SplineDegree SplineKnots SplineWeights Split SplitBy SpokenString Sqrt SqrtBox SqrtBoxOptions Square SquaredEuclideanDistance SquareFreeQ SquareIntersection SquaresR SquareSubset SquareSubsetEqual SquareSuperset SquareSupersetEqual SquareUnion SquareWave StabilityMargins StabilityMarginsStyle StableDistribution Stack StackBegin StackComplete StackInhibit StandardDeviation StandardDeviationFilter StandardForm Standardize StandbyDistribution Star StarGraph StartAsynchronousTask StartingStepSize StartOfLine StartOfString StartScheduledTask StartupSound StateDimensions StateFeedbackGains StateOutputEstimator StateResponse StateSpaceModel StateSpaceRealization StateSpaceTransform StationaryDistribution StationaryWaveletPacketTransform StationaryWaveletTransform StatusArea StatusCentrality StepMonitor StieltjesGamma StirlingS1 StirlingS2 StopAsynchronousTask StopScheduledTask StrataVariables StratonovichProcess StreamColorFunction StreamColorFunctionScaling StreamDensityPlot StreamPlot StreamPoints StreamPosition Streams StreamScale StreamStyle String StringBreak StringByteCount StringCases StringCount StringDrop StringExpression StringForm StringFormat StringFreeQ StringInsert StringJoin StringLength StringMatchQ StringPosition StringQ StringReplace StringReplaceList StringReplacePart StringReverse StringRotateLeft StringRotateRight StringSkeleton StringSplit StringTake StringToStream StringTrim StripBoxes StripOnInput StripWrapperBoxes StrokeForm StructuralImportance StructuredArray StructuredSelection StruveH StruveL Stub StudentTDistribution Style StyleBox StyleBoxAutoDelete StyleBoxOptions StyleData StyleDefinitions StyleForm StyleKeyMapping StyleMenuListing StyleNameDialogSettings StyleNames StylePrint StyleSheetPath Subfactorial Subgraph SubMinus SubPlus SubresultantPolynomialRemainders ' +
9793 'SubresultantPolynomials Subresultants Subscript SubscriptBox SubscriptBoxOptions Subscripted Subset SubsetEqual Subsets SubStar Subsuperscript SubsuperscriptBox SubsuperscriptBoxOptions Subtract SubtractFrom SubValues Succeeds SucceedsEqual SucceedsSlantEqual SucceedsTilde SuchThat Sum SumConvergence Sunday SuperDagger SuperMinus SuperPlus Superscript SuperscriptBox SuperscriptBoxOptions Superset SupersetEqual SuperStar Surd SurdForm SurfaceColor SurfaceGraphics SurvivalDistribution SurvivalFunction SurvivalModel SurvivalModelFit SuspendPacket SuzukiDistribution SuzukiGroupSuz SwatchLegend Switch Symbol SymbolName SymletWavelet Symmetric SymmetricGroup SymmetricMatrixQ SymmetricPolynomial SymmetricReduction Symmetrize SymmetrizedArray SymmetrizedArrayRules SymmetrizedDependentComponents SymmetrizedIndependentComponents SymmetrizedReplacePart SynchronousInitialization SynchronousUpdating Syntax SyntaxForm SyntaxInformation SyntaxLength SyntaxPacket SyntaxQ SystemDialogInput SystemException SystemHelpPath SystemInformation SystemInformationData SystemOpen SystemOptions SystemsModelDelay SystemsModelDelayApproximate SystemsModelDelete SystemsModelDimensions SystemsModelExtract SystemsModelFeedbackConnect SystemsModelLabels SystemsModelOrder SystemsModelParallelConnect SystemsModelSeriesConnect SystemsModelStateFeedbackConnect SystemStub ' +
9794 'Tab TabFilling Table TableAlignments TableDepth TableDirections TableForm TableHeadings TableSpacing TableView TableViewBox TabSpacings TabView TabViewBox TabViewBoxOptions TagBox TagBoxNote TagBoxOptions TaggingRules TagSet TagSetDelayed TagStyle TagUnset Take TakeWhile Tally Tan Tanh TargetFunctions TargetUnits TautologyQ TelegraphProcess TemplateBox TemplateBoxOptions TemplateSlotSequence TemporalData Temporary TemporaryVariable TensorContract TensorDimensions TensorExpand TensorProduct TensorQ TensorRank TensorReduce TensorSymmetry TensorTranspose TensorWedge Tetrahedron TetrahedronBox TetrahedronBoxOptions TeXForm TeXSave Text Text3DBox Text3DBoxOptions TextAlignment TextBand TextBoundingBox TextBox TextCell TextClipboardType TextData TextForm TextJustification TextLine TextPacket TextParagraph TextRecognize TextRendering TextStyle Texture TextureCoordinateFunction TextureCoordinateScaling Therefore ThermometerGauge Thick Thickness Thin Thinning ThisLink ThompsonGroupTh Thread ThreeJSymbol Threshold Through Throw Thumbnail Thursday Ticks TicksStyle Tilde TildeEqual TildeFullEqual TildeTilde TimeConstrained TimeConstraint Times TimesBy TimeSeriesForecast TimeSeriesInvertibility TimeUsed TimeValue TimeZone Timing Tiny TitleGrouping TitsGroupT ToBoxes ToCharacterCode ToColor ToContinuousTimeModel ToDate ToDiscreteTimeModel ToeplitzMatrix ToExpression ToFileName Together Toggle ToggleFalse Toggler TogglerBar TogglerBox TogglerBoxOptions ToHeldExpression ToInvertibleTimeSeries TokenWords Tolerance ToLowerCase ToNumberField TooBig Tooltip TooltipBox TooltipBoxOptions TooltipDelay TooltipStyle Top TopHatTransform TopologicalSort ToRadicals ToRules ToString Total TotalHeight TotalVariationFilter TotalWidth TouchscreenAutoZoom TouchscreenControlPlacement ToUpperCase Tr Trace TraceAbove TraceAction TraceBackward TraceDepth TraceDialog TraceForward TraceInternal TraceLevel TraceOff TraceOn TraceOriginal TracePrint TraceScan TrackedSymbols TradingChart TraditionalForm TraditionalFunctionNotation TraditionalNotation TraditionalOrder TransferFunctionCancel TransferFunctionExpand TransferFunctionFactor TransferFunctionModel TransferFunctionPoles TransferFunctionTransform TransferFunctionZeros TransformationFunction TransformationFunctions TransformationMatrix TransformedDistribution TransformedField Translate TranslationTransform TransparentColor Transpose TreeForm TreeGraph TreeGraphQ TreePlot TrendStyle TriangleWave TriangularDistribution Trig TrigExpand TrigFactor TrigFactorList Trigger TrigReduce TrigToExp TrimmedMean True TrueQ TruncatedDistribution TsallisQExponentialDistribution TsallisQGaussianDistribution TTest Tube TubeBezierCurveBox TubeBezierCurveBoxOptions TubeBox TubeBSplineCurveBox TubeBSplineCurveBoxOptions Tuesday TukeyLambdaDistribution TukeyWindow Tuples TuranGraph TuringMachine ' +
9795 'Transparent ' +
9796 'UnateQ Uncompress Undefined UnderBar Underflow Underlined Underoverscript UnderoverscriptBox UnderoverscriptBoxOptions Underscript UnderscriptBox UnderscriptBoxOptions UndirectedEdge UndirectedGraph UndirectedGraphQ UndocumentedTestFEParserPacket UndocumentedTestGetSelectionPacket Unequal Unevaluated UniformDistribution UniformGraphDistribution UniformSumDistribution Uninstall Union UnionPlus Unique UnitBox UnitConvert UnitDimensions Unitize UnitRootTest UnitSimplify UnitStep UnitTriangle UnitVector Unprotect UnsameQ UnsavedVariables Unset UnsetShared UntrackedVariables Up UpArrow UpArrowBar UpArrowDownArrow Update UpdateDynamicObjects UpdateDynamicObjectsSynchronous UpdateInterval UpDownArrow UpEquilibrium UpperCaseQ UpperLeftArrow UpperRightArrow UpperTriangularize Upsample UpSet UpSetDelayed UpTee UpTeeArrow UpValues URL URLFetch URLFetchAsynchronous URLSave URLSaveAsynchronous UseGraphicsRange Using UsingFrontEnd ' +
9797 'V2Get ValidationLength Value ValueBox ValueBoxOptions ValueForm ValueQ ValuesData Variables Variance VarianceEquivalenceTest VarianceEstimatorFunction VarianceGammaDistribution VarianceTest VectorAngle VectorColorFunction VectorColorFunctionScaling VectorDensityPlot VectorGlyphData VectorPlot VectorPlot3D VectorPoints VectorQ Vectors VectorScale VectorStyle Vee Verbatim Verbose VerboseConvertToPostScriptPacket VerifyConvergence VerifySolutions VerifyTestAssumptions Version VersionNumber VertexAdd VertexCapacity VertexColors VertexComponent VertexConnectivity VertexCoordinateRules VertexCoordinates VertexCorrelationSimilarity VertexCosineSimilarity VertexCount VertexCoverQ VertexDataCoordinates VertexDegree VertexDelete VertexDiceSimilarity VertexEccentricity VertexInComponent VertexInDegree VertexIndex VertexJaccardSimilarity VertexLabeling VertexLabels VertexLabelStyle VertexList VertexNormals VertexOutComponent VertexOutDegree VertexQ VertexRenderingFunction VertexReplace VertexShape VertexShapeFunction VertexSize VertexStyle VertexTextureCoordinates VertexWeight Vertical VerticalBar VerticalForm VerticalGauge VerticalSeparator VerticalSlider VerticalTilde ViewAngle ViewCenter ViewMatrix ViewPoint ViewPointSelectorSettings ViewPort ViewRange ViewVector ViewVertical VirtualGroupData Visible VisibleCell VoigtDistribution VonMisesDistribution ' +
9798 'WaitAll WaitAsynchronousTask WaitNext WaitUntil WakebyDistribution WalleniusHypergeometricDistribution WaringYuleDistribution WatershedComponents WatsonUSquareTest WattsStrogatzGraphDistribution WaveletBestBasis WaveletFilterCoefficients WaveletImagePlot WaveletListPlot WaveletMapIndexed WaveletMatrixPlot WaveletPhi WaveletPsi WaveletScale WaveletScalogram WaveletThreshold WeaklyConnectedComponents WeaklyConnectedGraphQ WeakStationarity WeatherData WeberE Wedge Wednesday WeibullDistribution WeierstrassHalfPeriods WeierstrassInvariants WeierstrassP WeierstrassPPrime WeierstrassSigma WeierstrassZeta WeightedAdjacencyGraph WeightedAdjacencyMatrix WeightedData WeightedGraphQ Weights WelchWindow WheelGraph WhenEvent Which While White Whitespace WhitespaceCharacter WhittakerM WhittakerW WienerFilter WienerProcess WignerD WignerSemicircleDistribution WilksW WilksWTest WindowClickSelect WindowElements WindowFloating WindowFrame WindowFrameElements WindowMargins WindowMovable WindowOpacity WindowSelected WindowSize WindowStatusArea WindowTitle WindowToolbars WindowWidth With WolframAlpha WolframAlphaDate WolframAlphaQuantity WolframAlphaResult Word WordBoundary WordCharacter WordData WordSearch WordSeparators WorkingPrecision Write WriteString Wronskian ' +
9799 'XMLElement XMLObject Xnor Xor ' +
9800 'Yellow YuleDissimilarity ' +
9801 'ZernikeR ZeroSymmetric ZeroTest ZeroWidthTimes Zeta ZetaZero ZipfDistribution ZTest ZTransform ' +
9802 '$Aborted $ActivationGroupID $ActivationKey $ActivationUserRegistered $AddOnsDirectory $AssertFunction $Assumptions $AsynchronousTask $BaseDirectory $BatchInput $BatchOutput $BoxForms $ByteOrdering $Canceled $CharacterEncoding $CharacterEncodings $CommandLine $CompilationTarget $ConditionHold $ConfiguredKernels $Context $ContextPath $ControlActiveSetting $CreationDate $CurrentLink $DateStringFormat $DefaultFont $DefaultFrontEnd $DefaultImagingDevice $DefaultPath $Display $DisplayFunction $DistributedContexts $DynamicEvaluation $Echo $Epilog $ExportFormats $Failed $FinancialDataSource $FormatType $FrontEnd $FrontEndSession $GeoLocation $HistoryLength $HomeDirectory $HTTPCookies $IgnoreEOF $ImagingDevices $ImportFormats $InitialDirectory $Input $InputFileName $InputStreamMethods $Inspector $InstallationDate $InstallationDirectory $InterfaceEnvironment $IterationLimit $KernelCount $KernelID $Language $LaunchDirectory $LibraryPath $LicenseExpirationDate $LicenseID $LicenseProcesses $LicenseServer $LicenseSubprocesses $LicenseType $Line $Linked $LinkSupported $LoadedFiles $MachineAddresses $MachineDomain $MachineDomains $MachineEpsilon $MachineID $MachineName $MachinePrecision $MachineType $MaxExtraPrecision $MaxLicenseProcesses $MaxLicenseSubprocesses $MaxMachineNumber $MaxNumber $MaxPiecewiseCases $MaxPrecision $MaxRootDegree $MessageGroups $MessageList $MessagePrePrint $Messages $MinMachineNumber $MinNumber $MinorReleaseNumber $MinPrecision $ModuleNumber $NetworkLicense $NewMessage $NewSymbol $Notebooks $NumberMarks $Off $OperatingSystem $Output $OutputForms $OutputSizeLimit $OutputStreamMethods $Packages $ParentLink $ParentProcessID $PasswordFile $PatchLevelID $Path $PathnameSeparator $PerformanceGoal $PipeSupported $Post $Pre $PreferencesDirectory $PrePrint $PreRead $PrintForms $PrintLiteral $ProcessID $ProcessorCount $ProcessorType $ProductInformation $ProgramName $RandomState $RecursionLimit $ReleaseNumber $RootDirectory $ScheduledTask $ScriptCommandLine $SessionID $SetParentLink $SharedFunctions $SharedVariables $SoundDisplay $SoundDisplayFunction $SuppressInputFormHeads $SynchronousEvaluation $SyntaxHandler $System $SystemCharacterEncoding $SystemID $SystemWordLength $TemporaryDirectory $TemporaryPrefix $TextStyle $TimedOut $TimeUnit $TimeZone $TopDirectory $TraceOff $TraceOn $TracePattern $TracePostAction $TracePreAction $Urgent $UserAddOnsDirectory $UserBaseDirectory $UserDocumentsDirectory $UserName $Version $VersionNumber',
9803 contains: [
9804 {
9805 className: 'comment',
9806 begin: /\(\*/, end: /\*\)/
9807 },
9808 hljs.APOS_STRING_MODE,
9809 hljs.QUOTE_STRING_MODE,
9810 hljs.C_NUMBER_MODE,
9811 {
9812 begin: /\{/, end: /\}/,
9813 illegal: /:/
9814 }
9815 ]
9816 };
9817}
9818},{name:"matlab",create:/*
9819Language: Matlab
9820Author: Denis Bardadym <bardadymchik@gmail.com>
9821Contributors: Eugene Nizhibitsky <nizhibitsky@ya.ru>
9822Category: scientific
9823*/
9824
9825function(hljs) {
9826 var COMMON_CONTAINS = [
9827 hljs.C_NUMBER_MODE,
9828 {
9829 className: 'string',
9830 begin: '\'', end: '\'',
9831 contains: [hljs.BACKSLASH_ESCAPE, {begin: '\'\''}]
9832 }
9833 ];
9834 var TRANSPOSE = {
9835 relevance: 0,
9836 contains: [
9837 {
9838 begin: /'['\.]*/
9839 }
9840 ]
9841 };
9842
9843 return {
9844 keywords: {
9845 keyword:
9846 'break case catch classdef continue else elseif end enumerated events for function ' +
9847 'global if methods otherwise parfor persistent properties return spmd switch try while',
9848 built_in:
9849 'sin sind sinh asin asind asinh cos cosd cosh acos acosd acosh tan tand tanh atan ' +
9850 'atand atan2 atanh sec secd sech asec asecd asech csc cscd csch acsc acscd acsch cot ' +
9851 'cotd coth acot acotd acoth hypot exp expm1 log log1p log10 log2 pow2 realpow reallog ' +
9852 'realsqrt sqrt nthroot nextpow2 abs angle complex conj imag real unwrap isreal ' +
9853 'cplxpair fix floor ceil round mod rem sign airy besselj bessely besselh besseli ' +
9854 'besselk beta betainc betaln ellipj ellipke erf erfc erfcx erfinv expint gamma ' +
9855 'gammainc gammaln psi legendre cross dot factor isprime primes gcd lcm rat rats perms ' +
9856 'nchoosek factorial cart2sph cart2pol pol2cart sph2cart hsv2rgb rgb2hsv zeros ones ' +
9857 'eye repmat rand randn linspace logspace freqspace meshgrid accumarray size length ' +
9858 'ndims numel disp isempty isequal isequalwithequalnans cat reshape diag blkdiag tril ' +
9859 'triu fliplr flipud flipdim rot90 find sub2ind ind2sub bsxfun ndgrid permute ipermute ' +
9860 'shiftdim circshift squeeze isscalar isvector ans eps realmax realmin pi i inf nan ' +
9861 'isnan isinf isfinite j why compan gallery hadamard hankel hilb invhilb magic pascal ' +
9862 'rosser toeplitz vander wilkinson'
9863 },
9864 illegal: '(//|"|#|/\\*|\\s+/\\w+)',
9865 contains: [
9866 {
9867 className: 'function',
9868 beginKeywords: 'function', end: '$',
9869 contains: [
9870 hljs.UNDERSCORE_TITLE_MODE,
9871 {
9872 className: 'params',
9873 variants: [
9874 {begin: '\\(', end: '\\)'},
9875 {begin: '\\[', end: '\\]'}
9876 ]
9877 }
9878 ]
9879 },
9880 {
9881 begin: /[a-zA-Z_][a-zA-Z_0-9]*'['\.]*/,
9882 returnBegin: true,
9883 relevance: 0,
9884 contains: [
9885 {begin: /[a-zA-Z_][a-zA-Z_0-9]*/, relevance: 0},
9886 TRANSPOSE.contains[0]
9887 ]
9888 },
9889 {
9890 begin: '\\[', end: '\\]',
9891 contains: COMMON_CONTAINS,
9892 relevance: 0,
9893 starts: TRANSPOSE
9894 },
9895 {
9896 begin: '\\{', end: /}/,
9897 contains: COMMON_CONTAINS,
9898 relevance: 0,
9899 starts: TRANSPOSE
9900 },
9901 {
9902 // transpose operators at the end of a function call
9903 begin: /\)/,
9904 relevance: 0,
9905 starts: TRANSPOSE
9906 },
9907 hljs.COMMENT('^\\s*\\%\\{\\s*$', '^\\s*\\%\\}\\s*$'),
9908 hljs.COMMENT('\\%', '$')
9909 ].concat(COMMON_CONTAINS)
9910 };
9911}
9912},{name:"mel",create:/*
9913Language: MEL
9914Description: Maya Embedded Language
9915Author: Shuen-Huei Guan <drake.guan@gmail.com>
9916Category: graphics
9917*/
9918
9919function(hljs) {
9920 return {
9921 keywords:
9922 'int float string vector matrix if else switch case default while do for in break ' +
9923 'continue global proc return about abs addAttr addAttributeEditorNodeHelp addDynamic ' +
9924 'addNewShelfTab addPP addPanelCategory addPrefixToName advanceToNextDrivenKey ' +
9925 'affectedNet affects aimConstraint air alias aliasAttr align alignCtx alignCurve ' +
9926 'alignSurface allViewFit ambientLight angle angleBetween animCone animCurveEditor ' +
9927 'animDisplay animView annotate appendStringArray applicationName applyAttrPreset ' +
9928 'applyTake arcLenDimContext arcLengthDimension arclen arrayMapper art3dPaintCtx ' +
9929 'artAttrCtx artAttrPaintVertexCtx artAttrSkinPaintCtx artAttrTool artBuildPaintMenu ' +
9930 'artFluidAttrCtx artPuttyCtx artSelectCtx artSetPaintCtx artUserPaintCtx assignCommand ' +
9931 'assignInputDevice assignViewportFactories attachCurve attachDeviceAttr attachSurface ' +
9932 'attrColorSliderGrp attrCompatibility attrControlGrp attrEnumOptionMenu ' +
9933 'attrEnumOptionMenuGrp attrFieldGrp attrFieldSliderGrp attrNavigationControlGrp ' +
9934 'attrPresetEditWin attributeExists attributeInfo attributeMenu attributeQuery ' +
9935 'autoKeyframe autoPlace bakeClip bakeFluidShading bakePartialHistory bakeResults ' +
9936 'bakeSimulation basename basenameEx batchRender bessel bevel bevelPlus binMembership ' +
9937 'bindSkin blend2 blendShape blendShapeEditor blendShapePanel blendTwoAttr blindDataType ' +
9938 'boneLattice boundary boxDollyCtx boxZoomCtx bufferCurve buildBookmarkMenu ' +
9939 'buildKeyframeMenu button buttonManip CBG cacheFile cacheFileCombine cacheFileMerge ' +
9940 'cacheFileTrack camera cameraView canCreateManip canvas capitalizeString catch ' +
9941 'catchQuiet ceil changeSubdivComponentDisplayLevel changeSubdivRegion channelBox ' +
9942 'character characterMap characterOutlineEditor characterize chdir checkBox checkBoxGrp ' +
9943 'checkDefaultRenderGlobals choice circle circularFillet clamp clear clearCache clip ' +
9944 'clipEditor clipEditorCurrentTimeCtx clipSchedule clipSchedulerOutliner clipTrimBefore ' +
9945 'closeCurve closeSurface cluster cmdFileOutput cmdScrollFieldExecuter ' +
9946 'cmdScrollFieldReporter cmdShell coarsenSubdivSelectionList collision color ' +
9947 'colorAtPoint colorEditor colorIndex colorIndexSliderGrp colorSliderButtonGrp ' +
9948 'colorSliderGrp columnLayout commandEcho commandLine commandPort compactHairSystem ' +
9949 'componentEditor compositingInterop computePolysetVolume condition cone confirmDialog ' +
9950 'connectAttr connectControl connectDynamic connectJoint connectionInfo constrain ' +
9951 'constrainValue constructionHistory container containsMultibyte contextInfo control ' +
9952 'convertFromOldLayers convertIffToPsd convertLightmap convertSolidTx convertTessellation ' +
9953 'convertUnit copyArray copyFlexor copyKey copySkinWeights cos cpButton cpCache ' +
9954 'cpClothSet cpCollision cpConstraint cpConvClothToMesh cpForces cpGetSolverAttr cpPanel ' +
9955 'cpProperty cpRigidCollisionFilter cpSeam cpSetEdit cpSetSolverAttr cpSolver ' +
9956 'cpSolverTypes cpTool cpUpdateClothUVs createDisplayLayer createDrawCtx createEditor ' +
9957 'createLayeredPsdFile createMotionField createNewShelf createNode createRenderLayer ' +
9958 'createSubdivRegion cross crossProduct ctxAbort ctxCompletion ctxEditMode ctxTraverse ' +
9959 'currentCtx currentTime currentTimeCtx currentUnit curve curveAddPtCtx ' +
9960 'curveCVCtx curveEPCtx curveEditorCtx curveIntersect curveMoveEPCtx curveOnSurface ' +
9961 'curveSketchCtx cutKey cycleCheck cylinder dagPose date defaultLightListCheckBox ' +
9962 'defaultNavigation defineDataServer defineVirtualDevice deformer deg_to_rad delete ' +
9963 'deleteAttr deleteShadingGroupsAndMaterials deleteShelfTab deleteUI deleteUnusedBrushes ' +
9964 'delrandstr detachCurve detachDeviceAttr detachSurface deviceEditor devicePanel dgInfo ' +
9965 'dgdirty dgeval dgtimer dimWhen directKeyCtx directionalLight dirmap dirname disable ' +
9966 'disconnectAttr disconnectJoint diskCache displacementToPoly displayAffected ' +
9967 'displayColor displayCull displayLevelOfDetail displayPref displayRGBColor ' +
9968 'displaySmoothness displayStats displayString displaySurface distanceDimContext ' +
9969 'distanceDimension doBlur dolly dollyCtx dopeSheetEditor dot dotProduct ' +
9970 'doubleProfileBirailSurface drag dragAttrContext draggerContext dropoffLocator ' +
9971 'duplicate duplicateCurve duplicateSurface dynCache dynControl dynExport dynExpression ' +
9972 'dynGlobals dynPaintEditor dynParticleCtx dynPref dynRelEdPanel dynRelEditor ' +
9973 'dynamicLoad editAttrLimits editDisplayLayerGlobals editDisplayLayerMembers ' +
9974 'editRenderLayerAdjustment editRenderLayerGlobals editRenderLayerMembers editor ' +
9975 'editorTemplate effector emit emitter enableDevice encodeString endString endsWith env ' +
9976 'equivalent equivalentTol erf error eval evalDeferred evalEcho event ' +
9977 'exactWorldBoundingBox exclusiveLightCheckBox exec executeForEachObject exists exp ' +
9978 'expression expressionEditorListen extendCurve extendSurface extrude fcheck fclose feof ' +
9979 'fflush fgetline fgetword file fileBrowserDialog fileDialog fileExtension fileInfo ' +
9980 'filetest filletCurve filter filterCurve filterExpand filterStudioImport ' +
9981 'findAllIntersections findAnimCurves findKeyframe findMenuItem findRelatedSkinCluster ' +
9982 'finder firstParentOf fitBspline flexor floatEq floatField floatFieldGrp floatScrollBar ' +
9983 'floatSlider floatSlider2 floatSliderButtonGrp floatSliderGrp floor flow fluidCacheInfo ' +
9984 'fluidEmitter fluidVoxelInfo flushUndo fmod fontDialog fopen formLayout format fprint ' +
9985 'frameLayout fread freeFormFillet frewind fromNativePath fwrite gamma gauss ' +
9986 'geometryConstraint getApplicationVersionAsFloat getAttr getClassification ' +
9987 'getDefaultBrush getFileList getFluidAttr getInputDeviceRange getMayaPanelTypes ' +
9988 'getModifiers getPanel getParticleAttr getPluginResource getenv getpid glRender ' +
9989 'glRenderEditor globalStitch gmatch goal gotoBindPose grabColor gradientControl ' +
9990 'gradientControlNoAttr graphDollyCtx graphSelectContext graphTrackCtx gravity grid ' +
9991 'gridLayout group groupObjectsByName HfAddAttractorToAS HfAssignAS HfBuildEqualMap ' +
9992 'HfBuildFurFiles HfBuildFurImages HfCancelAFR HfConnectASToHF HfCreateAttractor ' +
9993 'HfDeleteAS HfEditAS HfPerformCreateAS HfRemoveAttractorFromAS HfSelectAttached ' +
9994 'HfSelectAttractors HfUnAssignAS hardenPointCurve hardware hardwareRenderPanel ' +
9995 'headsUpDisplay headsUpMessage help helpLine hermite hide hilite hitTest hotBox hotkey ' +
9996 'hotkeyCheck hsv_to_rgb hudButton hudSlider hudSliderButton hwReflectionMap hwRender ' +
9997 'hwRenderLoad hyperGraph hyperPanel hyperShade hypot iconTextButton iconTextCheckBox ' +
9998 'iconTextRadioButton iconTextRadioCollection iconTextScrollList iconTextStaticLabel ' +
9999 'ikHandle ikHandleCtx ikHandleDisplayScale ikSolver ikSplineHandleCtx ikSystem ' +
10000 'ikSystemInfo ikfkDisplayMethod illustratorCurves image imfPlugins inheritTransform ' +
10001 'insertJoint insertJointCtx insertKeyCtx insertKnotCurve insertKnotSurface instance ' +
10002 'instanceable instancer intField intFieldGrp intScrollBar intSlider intSliderGrp ' +
10003 'interToUI internalVar intersect iprEngine isAnimCurve isConnected isDirty isParentOf ' +
10004 'isSameObject isTrue isValidObjectName isValidString isValidUiName isolateSelect ' +
10005 'itemFilter itemFilterAttr itemFilterRender itemFilterType joint jointCluster jointCtx ' +
10006 'jointDisplayScale jointLattice keyTangent keyframe keyframeOutliner ' +
10007 'keyframeRegionCurrentTimeCtx keyframeRegionDirectKeyCtx keyframeRegionDollyCtx ' +
10008 'keyframeRegionInsertKeyCtx keyframeRegionMoveKeyCtx keyframeRegionScaleKeyCtx ' +
10009 'keyframeRegionSelectKeyCtx keyframeRegionSetKeyCtx keyframeRegionTrackCtx ' +
10010 'keyframeStats lassoContext lattice latticeDeformKeyCtx launch launchImageEditor ' +
10011 'layerButton layeredShaderPort layeredTexturePort layout layoutDialog lightList ' +
10012 'lightListEditor lightListPanel lightlink lineIntersection linearPrecision linstep ' +
10013 'listAnimatable listAttr listCameras listConnections listDeviceAttachments listHistory ' +
10014 'listInputDeviceAxes listInputDeviceButtons listInputDevices listMenuAnnotation ' +
10015 'listNodeTypes listPanelCategories listRelatives listSets listTransforms ' +
10016 'listUnselected listerEditor loadFluid loadNewShelf loadPlugin ' +
10017 'loadPluginLanguageResources loadPrefObjects localizedPanelLabel lockNode loft log ' +
10018 'longNameOf lookThru ls lsThroughFilter lsType lsUI Mayatomr mag makeIdentity makeLive ' +
10019 'makePaintable makeRoll makeSingleSurface makeTubeOn makebot manipMoveContext ' +
10020 'manipMoveLimitsCtx manipOptions manipRotateContext manipRotateLimitsCtx ' +
10021 'manipScaleContext manipScaleLimitsCtx marker match max memory menu menuBarLayout ' +
10022 'menuEditor menuItem menuItemToShelf menuSet menuSetPref messageLine min minimizeApp ' +
10023 'mirrorJoint modelCurrentTimeCtx modelEditor modelPanel mouse movIn movOut move ' +
10024 'moveIKtoFK moveKeyCtx moveVertexAlongDirection multiProfileBirailSurface mute ' +
10025 'nParticle nameCommand nameField namespace namespaceInfo newPanelItems newton nodeCast ' +
10026 'nodeIconButton nodeOutliner nodePreset nodeType noise nonLinear normalConstraint ' +
10027 'normalize nurbsBoolean nurbsCopyUVSet nurbsCube nurbsEditUV nurbsPlane nurbsSelect ' +
10028 'nurbsSquare nurbsToPoly nurbsToPolygonsPref nurbsToSubdiv nurbsToSubdivPref ' +
10029 'nurbsUVSet nurbsViewDirectionVector objExists objectCenter objectLayer objectType ' +
10030 'objectTypeUI obsoleteProc oceanNurbsPreviewPlane offsetCurve offsetCurveOnSurface ' +
10031 'offsetSurface openGLExtension openMayaPref optionMenu optionMenuGrp optionVar orbit ' +
10032 'orbitCtx orientConstraint outlinerEditor outlinerPanel overrideModifier ' +
10033 'paintEffectsDisplay pairBlend palettePort paneLayout panel panelConfiguration ' +
10034 'panelHistory paramDimContext paramDimension paramLocator parent parentConstraint ' +
10035 'particle particleExists particleInstancer particleRenderInfo partition pasteKey ' +
10036 'pathAnimation pause pclose percent performanceOptions pfxstrokes pickWalk picture ' +
10037 'pixelMove planarSrf plane play playbackOptions playblast plugAttr plugNode pluginInfo ' +
10038 'pluginResourceUtil pointConstraint pointCurveConstraint pointLight pointMatrixMult ' +
10039 'pointOnCurve pointOnSurface pointPosition poleVectorConstraint polyAppend ' +
10040 'polyAppendFacetCtx polyAppendVertex polyAutoProjection polyAverageNormal ' +
10041 'polyAverageVertex polyBevel polyBlendColor polyBlindData polyBoolOp polyBridgeEdge ' +
10042 'polyCacheMonitor polyCheck polyChipOff polyClipboard polyCloseBorder polyCollapseEdge ' +
10043 'polyCollapseFacet polyColorBlindData polyColorDel polyColorPerVertex polyColorSet ' +
10044 'polyCompare polyCone polyCopyUV polyCrease polyCreaseCtx polyCreateFacet ' +
10045 'polyCreateFacetCtx polyCube polyCut polyCutCtx polyCylinder polyCylindricalProjection ' +
10046 'polyDelEdge polyDelFacet polyDelVertex polyDuplicateAndConnect polyDuplicateEdge ' +
10047 'polyEditUV polyEditUVShell polyEvaluate polyExtrudeEdge polyExtrudeFacet ' +
10048 'polyExtrudeVertex polyFlipEdge polyFlipUV polyForceUV polyGeoSampler polyHelix ' +
10049 'polyInfo polyInstallAction polyLayoutUV polyListComponentConversion polyMapCut ' +
10050 'polyMapDel polyMapSew polyMapSewMove polyMergeEdge polyMergeEdgeCtx polyMergeFacet ' +
10051 'polyMergeFacetCtx polyMergeUV polyMergeVertex polyMirrorFace polyMoveEdge ' +
10052 'polyMoveFacet polyMoveFacetUV polyMoveUV polyMoveVertex polyNormal polyNormalPerVertex ' +
10053 'polyNormalizeUV polyOptUvs polyOptions polyOutput polyPipe polyPlanarProjection ' +
10054 'polyPlane polyPlatonicSolid polyPoke polyPrimitive polyPrism polyProjection ' +
10055 'polyPyramid polyQuad polyQueryBlindData polyReduce polySelect polySelectConstraint ' +
10056 'polySelectConstraintMonitor polySelectCtx polySelectEditCtx polySeparate ' +
10057 'polySetToFaceNormal polySewEdge polyShortestPathCtx polySmooth polySoftEdge ' +
10058 'polySphere polySphericalProjection polySplit polySplitCtx polySplitEdge polySplitRing ' +
10059 'polySplitVertex polyStraightenUVBorder polySubdivideEdge polySubdivideFacet ' +
10060 'polyToSubdiv polyTorus polyTransfer polyTriangulate polyUVSet polyUnite polyWedgeFace ' +
10061 'popen popupMenu pose pow preloadRefEd print progressBar progressWindow projFileViewer ' +
10062 'projectCurve projectTangent projectionContext projectionManip promptDialog propModCtx ' +
10063 'propMove psdChannelOutliner psdEditTextureFile psdExport psdTextureFile putenv pwd ' +
10064 'python querySubdiv quit rad_to_deg radial radioButton radioButtonGrp radioCollection ' +
10065 'radioMenuItemCollection rampColorPort rand randomizeFollicles randstate rangeControl ' +
10066 'readTake rebuildCurve rebuildSurface recordAttr recordDevice redo reference ' +
10067 'referenceEdit referenceQuery refineSubdivSelectionList refresh refreshAE ' +
10068 'registerPluginResource rehash reloadImage removeJoint removeMultiInstance ' +
10069 'removePanelCategory rename renameAttr renameSelectionList renameUI render ' +
10070 'renderGlobalsNode renderInfo renderLayerButton renderLayerParent ' +
10071 'renderLayerPostProcess renderLayerUnparent renderManip renderPartition ' +
10072 'renderQualityNode renderSettings renderThumbnailUpdate renderWindowEditor ' +
10073 'renderWindowSelectContext renderer reorder reorderDeformers requires reroot ' +
10074 'resampleFluid resetAE resetPfxToPolyCamera resetTool resolutionNode retarget ' +
10075 'reverseCurve reverseSurface revolve rgb_to_hsv rigidBody rigidSolver roll rollCtx ' +
10076 'rootOf rot rotate rotationInterpolation roundConstantRadius rowColumnLayout rowLayout ' +
10077 'runTimeCommand runup sampleImage saveAllShelves saveAttrPreset saveFluid saveImage ' +
10078 'saveInitialState saveMenu savePrefObjects savePrefs saveShelf saveToolSettings scale ' +
10079 'scaleBrushBrightness scaleComponents scaleConstraint scaleKey scaleKeyCtx sceneEditor ' +
10080 'sceneUIReplacement scmh scriptCtx scriptEditorInfo scriptJob scriptNode scriptTable ' +
10081 'scriptToShelf scriptedPanel scriptedPanelType scrollField scrollLayout sculpt ' +
10082 'searchPathArray seed selLoadSettings select selectContext selectCurveCV selectKey ' +
10083 'selectKeyCtx selectKeyframeRegionCtx selectMode selectPref selectPriority selectType ' +
10084 'selectedNodes selectionConnection separator setAttr setAttrEnumResource ' +
10085 'setAttrMapping setAttrNiceNameResource setConstraintRestPosition ' +
10086 'setDefaultShadingGroup setDrivenKeyframe setDynamic setEditCtx setEditor setFluidAttr ' +
10087 'setFocus setInfinity setInputDeviceMapping setKeyCtx setKeyPath setKeyframe ' +
10088 'setKeyframeBlendshapeTargetWts setMenuMode setNodeNiceNameResource setNodeTypeFlag ' +
10089 'setParent setParticleAttr setPfxToPolyCamera setPluginResource setProject ' +
10090 'setStampDensity setStartupMessage setState setToolTo setUITemplate setXformManip sets ' +
10091 'shadingConnection shadingGeometryRelCtx shadingLightRelCtx shadingNetworkCompare ' +
10092 'shadingNode shapeCompare shelfButton shelfLayout shelfTabLayout shellField ' +
10093 'shortNameOf showHelp showHidden showManipCtx showSelectionInTitle ' +
10094 'showShadingGroupAttrEditor showWindow sign simplify sin singleProfileBirailSurface ' +
10095 'size sizeBytes skinCluster skinPercent smoothCurve smoothTangentSurface smoothstep ' +
10096 'snap2to2 snapKey snapMode snapTogetherCtx snapshot soft softMod softModCtx sort sound ' +
10097 'soundControl source spaceLocator sphere sphrand spotLight spotLightPreviewPort ' +
10098 'spreadSheetEditor spring sqrt squareSurface srtContext stackTrace startString ' +
10099 'startsWith stitchAndExplodeShell stitchSurface stitchSurfacePoints strcmp ' +
10100 'stringArrayCatenate stringArrayContains stringArrayCount stringArrayInsertAtIndex ' +
10101 'stringArrayIntersector stringArrayRemove stringArrayRemoveAtIndex ' +
10102 'stringArrayRemoveDuplicates stringArrayRemoveExact stringArrayToString ' +
10103 'stringToStringArray strip stripPrefixFromName stroke subdAutoProjection ' +
10104 'subdCleanTopology subdCollapse subdDuplicateAndConnect subdEditUV ' +
10105 'subdListComponentConversion subdMapCut subdMapSewMove subdMatchTopology subdMirror ' +
10106 'subdToBlind subdToPoly subdTransferUVsToCache subdiv subdivCrease ' +
10107 'subdivDisplaySmoothness substitute substituteAllString substituteGeometry substring ' +
10108 'surface surfaceSampler surfaceShaderList swatchDisplayPort switchTable symbolButton ' +
10109 'symbolCheckBox sysFile system tabLayout tan tangentConstraint texLatticeDeformContext ' +
10110 'texManipContext texMoveContext texMoveUVShellContext texRotateContext texScaleContext ' +
10111 'texSelectContext texSelectShortestPathCtx texSmudgeUVContext texWinToolCtx text ' +
10112 'textCurves textField textFieldButtonGrp textFieldGrp textManip textScrollList ' +
10113 'textToShelf textureDisplacePlane textureHairColor texturePlacementContext ' +
10114 'textureWindow threadCount threePointArcCtx timeControl timePort timerX toNativePath ' +
10115 'toggle toggleAxis toggleWindowVisibility tokenize tokenizeList tolerance tolower ' +
10116 'toolButton toolCollection toolDropped toolHasOptions toolPropertyWindow torus toupper ' +
10117 'trace track trackCtx transferAttributes transformCompare transformLimits translator ' +
10118 'trim trunc truncateFluidCache truncateHairCache tumble tumbleCtx turbulence ' +
10119 'twoPointArcCtx uiRes uiTemplate unassignInputDevice undo undoInfo ungroup uniform unit ' +
10120 'unloadPlugin untangleUV untitledFileName untrim upAxis updateAE userCtx uvLink ' +
10121 'uvSnapshot validateShelfName vectorize view2dToolCtx viewCamera viewClipPlane ' +
10122 'viewFit viewHeadOn viewLookAt viewManip viewPlace viewSet visor volumeAxis vortex ' +
10123 'waitCursor warning webBrowser webBrowserPrefs whatIs window windowPref wire ' +
10124 'wireContext workspace wrinkle wrinkleContext writeTake xbmLangPathList xform',
10125 illegal: '</',
10126 contains: [
10127 hljs.C_NUMBER_MODE,
10128 hljs.APOS_STRING_MODE,
10129 hljs.QUOTE_STRING_MODE,
10130 {
10131 className: 'string',
10132 begin: '`', end: '`',
10133 contains: [hljs.BACKSLASH_ESCAPE]
10134 },
10135 { // eats variables
10136 begin: '[\\$\\%\\@](\\^\\w\\b|#\\w+|[^\\s\\w{]|{\\w+}|\\w+)'
10137 },
10138 hljs.C_LINE_COMMENT_MODE,
10139 hljs.C_BLOCK_COMMENT_MODE
10140 ]
10141 };
10142}
10143},{name:"mercury",create:/*
10144Language: Mercury
10145Author: mucaho <mkucko@gmail.com>
10146Description: Mercury is a logic/functional programming language which combines the clarity and expressiveness of declarative programming with advanced static analysis and error detection features.
10147*/
10148
10149function(hljs) {
10150 var KEYWORDS = {
10151 keyword:
10152 'module use_module import_module include_module end_module initialise ' +
10153 'mutable initialize finalize finalise interface implementation pred ' +
10154 'mode func type inst solver any_pred any_func is semidet det nondet ' +
10155 'multi erroneous failure cc_nondet cc_multi typeclass instance where ' +
10156 'pragma promise external trace atomic or_else require_complete_switch ' +
10157 'require_det require_semidet require_multi require_nondet ' +
10158 'require_cc_multi require_cc_nondet require_erroneous require_failure',
10159 meta:
10160 // pragma
10161 'inline no_inline type_spec source_file fact_table obsolete memo ' +
10162 'loop_check minimal_model terminates does_not_terminate ' +
10163 'check_termination promise_equivalent_clauses ' +
10164 // preprocessor
10165 'foreign_proc foreign_decl foreign_code foreign_type ' +
10166 'foreign_import_module foreign_export_enum foreign_export ' +
10167 'foreign_enum may_call_mercury will_not_call_mercury thread_safe ' +
10168 'not_thread_safe maybe_thread_safe promise_pure promise_semipure ' +
10169 'tabled_for_io local untrailed trailed attach_to_io_state ' +
10170 'can_pass_as_mercury_type stable will_not_throw_exception ' +
10171 'may_modify_trail will_not_modify_trail may_duplicate ' +
10172 'may_not_duplicate affects_liveness does_not_affect_liveness ' +
10173 'doesnt_affect_liveness no_sharing unknown_sharing sharing',
10174 built_in:
10175 'some all not if then else true fail false try catch catch_any ' +
10176 'semidet_true semidet_false semidet_fail impure_true impure semipure'
10177 };
10178
10179 var COMMENT = hljs.COMMENT('%', '$');
10180
10181 var NUMCODE = {
10182 className: 'number',
10183 begin: "0'.\\|0[box][0-9a-fA-F]*"
10184 };
10185
10186 var ATOM = hljs.inherit(hljs.APOS_STRING_MODE, {relevance: 0});
10187 var STRING = hljs.inherit(hljs.QUOTE_STRING_MODE, {relevance: 0});
10188 var STRING_FMT = {
10189 className: 'subst',
10190 begin: '\\\\[abfnrtv]\\|\\\\x[0-9a-fA-F]*\\\\\\|%[-+# *.0-9]*[dioxXucsfeEgGp]',
10191 relevance: 0
10192 };
10193 STRING.contains.push(STRING_FMT);
10194
10195 var IMPLICATION = {
10196 className: 'built_in',
10197 variants: [
10198 {begin: '<=>'},
10199 {begin: '<=', relevance: 0},
10200 {begin: '=>', relevance: 0},
10201 {begin: '/\\\\'},
10202 {begin: '\\\\/'}
10203 ]
10204 };
10205
10206 var HEAD_BODY_CONJUNCTION = {
10207 className: 'built_in',
10208 variants: [
10209 {begin: ':-\\|-->'},
10210 {begin: '=', relevance: 0}
10211 ]
10212 };
10213
10214 return {
10215 aliases: ['m', 'moo'],
10216 keywords: KEYWORDS,
10217 contains: [
10218 IMPLICATION,
10219 HEAD_BODY_CONJUNCTION,
10220 COMMENT,
10221 hljs.C_BLOCK_COMMENT_MODE,
10222 NUMCODE,
10223 hljs.NUMBER_MODE,
10224 ATOM,
10225 STRING,
10226 {begin: /:-/} // relevance booster
10227 ]
10228 };
10229}
10230},{name:"mipsasm",create:/*
10231Language: MIPS Assembly
10232Author: Nebuleon Fumika <nebuleon.fumika@gmail.com>
10233Description: MIPS Assembly (up to MIPS32R2)
10234Category: assembler
10235*/
10236
10237function(hljs) {
10238 //local labels: %?[FB]?[AT]?\d{1,2}\w+
10239 return {
10240 case_insensitive: true,
10241 aliases: ['mips'],
10242 lexemes: '\\.?' + hljs.IDENT_RE,
10243 keywords: {
10244 meta:
10245 //GNU preprocs
10246 '.2byte .4byte .align .ascii .asciz .balign .byte .code .data .else .end .endif .endm .endr .equ .err .exitm .extern .global .hword .if .ifdef .ifndef .include .irp .long .macro .rept .req .section .set .skip .space .text .word .ltorg ',
10247 built_in:
10248 '$0 $1 $2 $3 $4 $5 $6 $7 $8 $9 $10 $11 $12 $13 $14 $15 ' + // integer registers
10249 '$16 $17 $18 $19 $20 $21 $22 $23 $24 $25 $26 $27 $28 $29 $30 $31 ' + // integer registers
10250 'zero at v0 v1 a0 a1 a2 a3 a4 a5 a6 a7 ' + // integer register aliases
10251 't0 t1 t2 t3 t4 t5 t6 t7 t8 t9 s0 s1 s2 s3 s4 s5 s6 s7 s8 ' + // integer register aliases
10252 'k0 k1 gp sp fp ra ' + // integer register aliases
10253 '$f0 $f1 $f2 $f2 $f4 $f5 $f6 $f7 $f8 $f9 $f10 $f11 $f12 $f13 $f14 $f15 ' + // floating-point registers
10254 '$f16 $f17 $f18 $f19 $f20 $f21 $f22 $f23 $f24 $f25 $f26 $f27 $f28 $f29 $f30 $f31 ' + // floating-point registers
10255 'Context Random EntryLo0 EntryLo1 Context PageMask Wired EntryHi ' + // Coprocessor 0 registers
10256 'HWREna BadVAddr Count Compare SR IntCtl SRSCtl SRSMap Cause EPC PRId ' + // Coprocessor 0 registers
10257 'EBase Config Config1 Config2 Config3 LLAddr Debug DEPC DESAVE CacheErr ' + // Coprocessor 0 registers
10258 'ECC ErrorEPC TagLo DataLo TagHi DataHi WatchLo WatchHi PerfCtl PerfCnt ' // Coprocessor 0 registers
10259 },
10260 contains: [
10261 {
10262 className: 'keyword',
10263 begin: '\\b('+ //mnemonics
10264 // 32-bit integer instructions
10265 'addi?u?|andi?|b(al)?|beql?|bgez(al)?l?|bgtzl?|blezl?|bltz(al)?l?|' +
10266 'bnel?|cl[oz]|divu?|ext|ins|j(al)?|jalr(\.hb)?|jr(\.hb)?|lbu?|lhu?|' +
10267 'll|lui|lw[lr]?|maddu?|mfhi|mflo|movn|movz|msubu?|mthi|mtlo|mul|' +
10268 'multu?|nop|nor|ori?|rotrv?|sb|sc|se[bh]|sh|sllv?|slti?u?|srav?|' +
10269 'srlv?|subu?|sw[lr]?|xori?|wsbh|' +
10270 // floating-point instructions
10271 'abs\.[sd]|add\.[sd]|alnv.ps|bc1[ft]l?|' +
10272 'c\.(s?f|un|u?eq|[ou]lt|[ou]le|ngle?|seq|l[et]|ng[et])\.[sd]|' +
10273 '(ceil|floor|round|trunc)\.[lw]\.[sd]|cfc1|cvt\.d\.[lsw]|' +
10274 'cvt\.l\.[dsw]|cvt\.ps\.s|cvt\.s\.[dlw]|cvt\.s\.p[lu]|cvt\.w\.[dls]|' +
10275 'div\.[ds]|ldx?c1|luxc1|lwx?c1|madd\.[sd]|mfc1|mov[fntz]?\.[ds]|' +
10276 'msub\.[sd]|mth?c1|mul\.[ds]|neg\.[ds]|nmadd\.[ds]|nmsub\.[ds]|' +
10277 'p[lu][lu]\.ps|recip\.fmt|r?sqrt\.[ds]|sdx?c1|sub\.[ds]|suxc1|' +
10278 'swx?c1|' +
10279 // system control instructions
10280 'break|cache|d?eret|[de]i|ehb|mfc0|mtc0|pause|prefx?|rdhwr|' +
10281 'rdpgpr|sdbbp|ssnop|synci?|syscall|teqi?|tgei?u?|tlb(p|r|w[ir])|' +
10282 'tlti?u?|tnei?|wait|wrpgpr'+
10283 ')',
10284 end: '\\s'
10285 },
10286 hljs.COMMENT('[;#]', '$'),
10287 hljs.C_BLOCK_COMMENT_MODE,
10288 hljs.QUOTE_STRING_MODE,
10289 {
10290 className: 'string',
10291 begin: '\'',
10292 end: '[^\\\\]\'',
10293 relevance: 0
10294 },
10295 {
10296 className: 'title',
10297 begin: '\\|', end: '\\|',
10298 illegal: '\\n',
10299 relevance: 0
10300 },
10301 {
10302 className: 'number',
10303 variants: [
10304 {begin: '0x[0-9a-f]+'}, //hex
10305 {begin: '\\b-?\\d+'} //bare number
10306 ],
10307 relevance: 0
10308 },
10309 {
10310 className: 'symbol',
10311 variants: [
10312 {begin: '^\\s*[a-z_\\.\\$][a-z0-9_\\.\\$]+:'}, //GNU MIPS syntax
10313 {begin: '^\\s*[0-9]+:'}, // numbered local labels
10314 {begin: '[0-9]+[bf]' } // number local label reference (backwards, forwards)
10315 ],
10316 relevance: 0
10317 }
10318 ],
10319 illegal: '\/'
10320 };
10321}
10322},{name:"mizar",create:/*
10323Language: Mizar
10324Author: Kelley van Evert <kelleyvanevert@gmail.com>
10325Category: scientific
10326*/
10327
10328function(hljs) {
10329 return {
10330 keywords:
10331 'environ vocabularies notations constructors definitions ' +
10332 'registrations theorems schemes requirements begin end definition ' +
10333 'registration cluster existence pred func defpred deffunc theorem ' +
10334 'proof let take assume then thus hence ex for st holds consider ' +
10335 'reconsider such that and in provided of as from be being by means ' +
10336 'equals implies iff redefine define now not or attr is mode ' +
10337 'suppose per cases set thesis contradiction scheme reserve struct ' +
10338 'correctness compatibility coherence symmetry assymetry ' +
10339 'reflexivity irreflexivity connectedness uniqueness commutativity ' +
10340 'idempotence involutiveness projectivity',
10341 contains: [
10342 hljs.COMMENT('::', '$')
10343 ]
10344 };
10345}
10346},{name:"mojolicious",create:/*
10347Language: Mojolicious
10348Requires: xml.js, perl.js
10349Author: Dotan Dimet <dotan@corky.net>
10350Description: Mojolicious .ep (Embedded Perl) templates
10351Category: template
10352*/
10353function(hljs) {
10354 return {
10355 subLanguage: 'xml',
10356 contains: [
10357 {
10358 className: 'meta',
10359 begin: '^__(END|DATA)__$'
10360 },
10361 // mojolicious line
10362 {
10363 begin: "^\\s*%{1,2}={0,2}", end: '$',
10364 subLanguage: 'perl'
10365 },
10366 // mojolicious block
10367 {
10368 begin: "<%{1,2}={0,2}",
10369 end: "={0,1}%>",
10370 subLanguage: 'perl',
10371 excludeBegin: true,
10372 excludeEnd: true
10373 }
10374 ]
10375 };
10376}
10377},{name:"monkey",create:/*
10378Language: Monkey
10379Author: Arthur Bikmullin <devolonter@gmail.com>
10380*/
10381
10382function(hljs) {
10383 var NUMBER = {
10384 className: 'number', relevance: 0,
10385 variants: [
10386 {
10387 begin: '[$][a-fA-F0-9]+'
10388 },
10389 hljs.NUMBER_MODE
10390 ]
10391 };
10392
10393 return {
10394 case_insensitive: true,
10395 keywords: {
10396 keyword: 'public private property continue exit extern new try catch ' +
10397 'eachin not abstract final select case default const local global field ' +
10398 'end if then else elseif endif while wend repeat until forever for ' +
10399 'to step next return module inline throw import',
10400
10401 built_in: 'DebugLog DebugStop Error Print ACos ACosr ASin ASinr ATan ATan2 ATan2r ATanr Abs Abs Ceil ' +
10402 'Clamp Clamp Cos Cosr Exp Floor Log Max Max Min Min Pow Sgn Sgn Sin Sinr Sqrt Tan Tanr Seed PI HALFPI TWOPI',
10403
10404 literal: 'true false null and or shl shr mod'
10405 },
10406 illegal: /\/\*/,
10407 contains: [
10408 hljs.COMMENT('#rem', '#end'),
10409 hljs.COMMENT(
10410 "'",
10411 '$',
10412 {
10413 relevance: 0
10414 }
10415 ),
10416 {
10417 className: 'function',
10418 beginKeywords: 'function method', end: '[(=:]|$',
10419 illegal: /\n/,
10420 contains: [
10421 hljs.UNDERSCORE_TITLE_MODE
10422 ]
10423 },
10424 {
10425 className: 'class',
10426 beginKeywords: 'class interface', end: '$',
10427 contains: [
10428 {
10429 beginKeywords: 'extends implements'
10430 },
10431 hljs.UNDERSCORE_TITLE_MODE
10432 ]
10433 },
10434 {
10435 className: 'built_in',
10436 begin: '\\b(self|super)\\b'
10437 },
10438 {
10439 className: 'meta',
10440 begin: '\\s*#', end: '$',
10441 keywords: {'meta-keyword': 'if else elseif endif end then'}
10442 },
10443 {
10444 className: 'meta',
10445 begin: '^\\s*strict\\b'
10446 },
10447 {
10448 beginKeywords: 'alias', end: '=',
10449 contains: [hljs.UNDERSCORE_TITLE_MODE]
10450 },
10451 hljs.QUOTE_STRING_MODE,
10452 NUMBER
10453 ]
10454 }
10455}
10456},{name:"nginx",create:/*
10457Language: Nginx
10458Author: Peter Leonov <gojpeg@yandex.ru>
10459Contributors: Ivan Sagalaev <maniac@softwaremaniacs.org>
10460Category: common, config
10461*/
10462
10463function(hljs) {
10464 var VAR = {
10465 className: 'variable',
10466 variants: [
10467 {begin: /\$\d+/},
10468 {begin: /\$\{/, end: /}/},
10469 {begin: '[\\$\\@]' + hljs.UNDERSCORE_IDENT_RE}
10470 ]
10471 };
10472 var DEFAULT = {
10473 endsWithParent: true,
10474 lexemes: '[a-z/_]+',
10475 keywords: {
10476 literal:
10477 'on off yes no true false none blocked debug info notice warn error crit ' +
10478 'select break last permanent redirect kqueue rtsig epoll poll /dev/poll'
10479 },
10480 relevance: 0,
10481 illegal: '=>',
10482 contains: [
10483 hljs.HASH_COMMENT_MODE,
10484 {
10485 className: 'string',
10486 contains: [hljs.BACKSLASH_ESCAPE, VAR],
10487 variants: [
10488 {begin: /"/, end: /"/},
10489 {begin: /'/, end: /'/}
10490 ]
10491 },
10492 // this swallows entire URLs to avoid detecting numbers within
10493 {
10494 begin: '([a-z]+):/', end: '\\s', endsWithParent: true, excludeEnd: true,
10495 contains: [VAR]
10496 },
10497 {
10498 className: 'regexp',
10499 contains: [hljs.BACKSLASH_ESCAPE, VAR],
10500 variants: [
10501 {begin: "\\s\\^", end: "\\s|{|;", returnEnd: true},
10502 // regexp locations (~, ~*)
10503 {begin: "~\\*?\\s+", end: "\\s|{|;", returnEnd: true},
10504 // *.example.com
10505 {begin: "\\*(\\.[a-z\\-]+)+"},
10506 // sub.example.*
10507 {begin: "([a-z\\-]+\\.)+\\*"}
10508 ]
10509 },
10510 // IP
10511 {
10512 className: 'number',
10513 begin: '\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b'
10514 },
10515 // units
10516 {
10517 className: 'number',
10518 begin: '\\b\\d+[kKmMgGdshdwy]*\\b',
10519 relevance: 0
10520 },
10521 VAR
10522 ]
10523 };
10524
10525 return {
10526 aliases: ['nginxconf'],
10527 contains: [
10528 hljs.HASH_COMMENT_MODE,
10529 {
10530 begin: hljs.UNDERSCORE_IDENT_RE + '\\s+{', returnBegin: true,
10531 end: '{',
10532 contains: [
10533 {
10534 className: 'section',
10535 begin: hljs.UNDERSCORE_IDENT_RE
10536 }
10537 ],
10538 relevance: 0
10539 },
10540 {
10541 begin: hljs.UNDERSCORE_IDENT_RE + '\\s', end: ';|{', returnBegin: true,
10542 contains: [
10543 {
10544 className: 'attribute',
10545 begin: hljs.UNDERSCORE_IDENT_RE,
10546 starts: DEFAULT
10547 }
10548 ],
10549 relevance: 0
10550 }
10551 ],
10552 illegal: '[^\\s\\}]'
10553 };
10554}
10555},{name:"nimrod",create:/*
10556Language: Nimrod
10557*/
10558
10559function(hljs) {
10560 return {
10561 aliases: ['nim'],
10562 keywords: {
10563 keyword: 'addr and as asm bind block break|0 case|0 cast const|0 continue|0 converter discard distinct|10 div do elif else|0 end|0 enum|0 except export finally for from generic if|0 import|0 in include|0 interface is isnot|10 iterator|10 let|0 macro method|10 mixin mod nil not notin|10 object|0 of or out proc|10 ptr raise ref|10 return shl shr static template try|0 tuple type|0 using|0 var|0 when while|0 with without xor yield',
10564 literal: 'shared guarded stdin stdout stderr result|10 true false'
10565 },
10566 contains: [ {
10567 className: 'meta', // Actually pragma
10568 begin: /{\./,
10569 end: /\.}/,
10570 relevance: 10
10571 }, {
10572 className: 'string',
10573 begin: /[a-zA-Z]\w*"/,
10574 end: /"/,
10575 contains: [{begin: /""/}]
10576 }, {
10577 className: 'string',
10578 begin: /([a-zA-Z]\w*)?"""/,
10579 end: /"""/
10580 },
10581 hljs.QUOTE_STRING_MODE,
10582 {
10583 className: 'type',
10584 begin: /\b[A-Z]\w+\b/,
10585 relevance: 0
10586 }, {
10587 className: 'built_in',
10588 begin: /\b(int|int8|int16|int32|int64|uint|uint8|uint16|uint32|uint64|float|float32|float64|bool|char|string|cstring|pointer|expr|stmt|void|auto|any|range|array|openarray|varargs|seq|set|clong|culong|cchar|cschar|cshort|cint|csize|clonglong|cfloat|cdouble|clongdouble|cuchar|cushort|cuint|culonglong|cstringarray|semistatic)\b/
10589 }, {
10590 className: 'number',
10591 relevance: 0,
10592 variants: [
10593 {begin: /\b(0[xX][0-9a-fA-F][_0-9a-fA-F]*)('?[iIuU](8|16|32|64))?/},
10594 {begin: /\b(0o[0-7][_0-7]*)('?[iIuUfF](8|16|32|64))?/},
10595 {begin: /\b(0(b|B)[01][_01]*)('?[iIuUfF](8|16|32|64))?/},
10596 {begin: /\b(\d[_\d]*)('?[iIuUfF](8|16|32|64))?/}
10597 ]
10598 },
10599 hljs.HASH_COMMENT_MODE
10600 ]
10601 }
10602}
10603},{name:"nix",create:/*
10604Language: Nix
10605Author: Domen Kožar <domen@dev.si>
10606Description: Nix functional language. See http://nixos.org/nix
10607*/
10608
10609
10610function(hljs) {
10611 var NIX_KEYWORDS = {
10612 keyword:
10613 'rec with let in inherit assert if else then',
10614 literal:
10615 'true false or and null',
10616 built_in:
10617 'import abort baseNameOf dirOf isNull builtins map removeAttrs throw ' +
10618 'toString derivation'
10619 };
10620 var ANTIQUOTE = {
10621 className: 'subst',
10622 begin: /\$\{/,
10623 end: /}/,
10624 keywords: NIX_KEYWORDS
10625 };
10626 var ATTRS = {
10627 begin: /[a-zA-Z0-9-_]+(\s*=)/, returnBegin: true,
10628 relevance: 0,
10629 contains: [
10630 {
10631 className: 'attr',
10632 begin: /\S+/
10633 }
10634 ]
10635 };
10636 var STRING = {
10637 className: 'string',
10638 contains: [ANTIQUOTE],
10639 variants: [
10640 {begin: "''", end: "''"},
10641 {begin: '"', end: '"'}
10642 ]
10643 };
10644 var EXPRESSIONS = [
10645 hljs.NUMBER_MODE,
10646 hljs.HASH_COMMENT_MODE,
10647 hljs.C_BLOCK_COMMENT_MODE,
10648 STRING,
10649 ATTRS
10650 ];
10651 ANTIQUOTE.contains = EXPRESSIONS;
10652 return {
10653 aliases: ["nixos"],
10654 keywords: NIX_KEYWORDS,
10655 contains: EXPRESSIONS
10656 };
10657}
10658},{name:"nsis",create:/*
10659Language: NSIS
10660Description: Nullsoft Scriptable Install System
10661Author: Jan T. Sott <jan.sott@gmail.com>
10662Website: http://github.com/idleberg
10663*/
10664
10665function(hljs) {
10666 var CONSTANTS = {
10667 className: 'variable',
10668 begin: '\\$(ADMINTOOLS|APPDATA|CDBURN_AREA|CMDLINE|COMMONFILES32|COMMONFILES64|COMMONFILES|COOKIES|DESKTOP|DOCUMENTS|EXEDIR|EXEFILE|EXEPATH|FAVORITES|FONTS|HISTORY|HWNDPARENT|INSTDIR|INTERNET_CACHE|LANGUAGE|LOCALAPPDATA|MUSIC|NETHOOD|OUTDIR|PICTURES|PLUGINSDIR|PRINTHOOD|PROFILE|PROGRAMFILES32|PROGRAMFILES64|PROGRAMFILES|QUICKLAUNCH|RECENT|RESOURCES_LOCALIZED|RESOURCES|SENDTO|SMPROGRAMS|SMSTARTUP|STARTMENU|SYSDIR|TEMP|TEMPLATES|VIDEOS|WINDIR)'
10669 };
10670
10671 var DEFINES = {
10672 // ${defines}
10673 className: 'variable',
10674 begin: '\\$+{[a-zA-Z0-9_]+}'
10675 };
10676
10677 var VARIABLES = {
10678 // $variables
10679 className: 'variable',
10680 begin: '\\$+[a-zA-Z0-9_]+',
10681 illegal: '\\(\\){}'
10682 };
10683
10684 var LANGUAGES = {
10685 // $(language_strings)
10686 className: 'variable',
10687 begin: '\\$+\\([a-zA-Z0-9_]+\\)'
10688 };
10689
10690 var PARAMETERS = {
10691 // command parameters
10692 className: 'built_in',
10693 begin: '(ARCHIVE|FILE_ATTRIBUTE_ARCHIVE|FILE_ATTRIBUTE_NORMAL|FILE_ATTRIBUTE_OFFLINE|FILE_ATTRIBUTE_READONLY|FILE_ATTRIBUTE_SYSTEM|FILE_ATTRIBUTE_TEMPORARY|HKCR|HKCU|HKDD|HKEY_CLASSES_ROOT|HKEY_CURRENT_CONFIG|HKEY_CURRENT_USER|HKEY_DYN_DATA|HKEY_LOCAL_MACHINE|HKEY_PERFORMANCE_DATA|HKEY_USERS|HKLM|HKPD|HKU|IDABORT|IDCANCEL|IDIGNORE|IDNO|IDOK|IDRETRY|IDYES|MB_ABORTRETRYIGNORE|MB_DEFBUTTON1|MB_DEFBUTTON2|MB_DEFBUTTON3|MB_DEFBUTTON4|MB_ICONEXCLAMATION|MB_ICONINFORMATION|MB_ICONQUESTION|MB_ICONSTOP|MB_OK|MB_OKCANCEL|MB_RETRYCANCEL|MB_RIGHT|MB_RTLREADING|MB_SETFOREGROUND|MB_TOPMOST|MB_USERICON|MB_YESNO|NORMAL|OFFLINE|READONLY|SHCTX|SHELL_CONTEXT|SYSTEM|TEMPORARY)'
10694 };
10695
10696 var COMPILER ={
10697 // !compiler_flags
10698 className: 'keyword',
10699 begin: '\\!(addincludedir|addplugindir|appendfile|cd|define|delfile|echo|else|endif|error|execute|finalize|getdllversionsystem|ifdef|ifmacrodef|ifmacrondef|ifndef|if|include|insertmacro|macroend|macro|makensis|packhdr|searchparse|searchreplace|tempfile|undef|verbose|warning)'
10700 };
10701
10702 return {
10703 case_insensitive: false,
10704 keywords: {
10705 keyword:
10706 'Abort AddBrandingImage AddSize AllowRootDirInstall AllowSkipFiles AutoCloseWindow BGFont BGGradient BrandingText BringToFront Call CallInstDLL Caption ChangeUI CheckBitmap ClearErrors CompletedText ComponentText CopyFiles CRCCheck CreateDirectory CreateFont CreateShortCut Delete DeleteINISec DeleteINIStr DeleteRegKey DeleteRegValue DetailPrint DetailsButtonText DirText DirVar DirVerify EnableWindow EnumRegKey EnumRegValue Exch Exec ExecShell ExecWait ExpandEnvStrings File FileBufSize FileClose FileErrorText FileOpen FileRead FileReadByte FileReadUTF16LE FileReadWord FileSeek FileWrite FileWriteByte FileWriteUTF16LE FileWriteWord FindClose FindFirst FindNext FindWindow FlushINI FunctionEnd GetCurInstType GetCurrentAddress GetDlgItem GetDLLVersion GetDLLVersionLocal GetErrorLevel GetFileTime GetFileTimeLocal GetFullPathName GetFunctionAddress GetInstDirError GetLabelAddress GetTempFileName Goto HideWindow Icon IfAbort IfErrors IfFileExists IfRebootFlag IfSilent InitPluginsDir InstallButtonText InstallColors InstallDir InstallDirRegKey InstProgressFlags InstType InstTypeGetText InstTypeSetText IntCmp IntCmpU IntFmt IntOp IsWindow LangString LicenseBkColor LicenseData LicenseForceSelection LicenseLangString LicenseText LoadLanguageFile LockWindow LogSet LogText ManifestDPIAware ManifestSupportedOS MessageBox MiscButtonText Name Nop OutFile Page PageCallbacks PageExEnd Pop Push Quit ReadEnvStr ReadINIStr ReadRegDWORD ReadRegStr Reboot RegDLL Rename RequestExecutionLevel ReserveFile Return RMDir SearchPath SectionEnd SectionGetFlags SectionGetInstTypes SectionGetSize SectionGetText SectionGroupEnd SectionIn SectionSetFlags SectionSetInstTypes SectionSetSize SectionSetText SendMessage SetAutoClose SetBrandingImage SetCompress SetCompressor SetCompressorDictSize SetCtlColors SetCurInstType SetDatablockOptimize SetDateSave SetDetailsPrint SetDetailsView SetErrorLevel SetErrors SetFileAttributes SetFont SetOutPath SetOverwrite SetPluginUnload SetRebootFlag SetRegView SetShellVarContext SetSilent ShowInstDetails ShowUninstDetails ShowWindow SilentInstall SilentUnInstall Sleep SpaceTexts StrCmp StrCmpS StrCpy StrLen SubCaption SubSectionEnd Unicode UninstallButtonText UninstallCaption UninstallIcon UninstallSubCaption UninstallText UninstPage UnRegDLL Var VIAddVersionKey VIFileVersion VIProductVersion WindowIcon WriteINIStr WriteRegBin WriteRegDWORD WriteRegExpandStr WriteRegStr WriteUninstaller XPStyle',
10707 literal:
10708 'admin all auto both colored current false force hide highest lastused leave listonly none normal notset off on open print show silent silentlog smooth textonly true user '
10709 },
10710 contains: [
10711 hljs.HASH_COMMENT_MODE,
10712 hljs.C_BLOCK_COMMENT_MODE,
10713 {
10714 className: 'string',
10715 begin: '"', end: '"',
10716 illegal: '\\n',
10717 contains: [
10718 { // $\n, $\r, $\t, $$
10719 begin: '\\$(\\\\(n|r|t)|\\$)'
10720 },
10721 CONSTANTS,
10722 DEFINES,
10723 VARIABLES,
10724 LANGUAGES
10725 ]
10726 },
10727 hljs.COMMENT(
10728 ';',
10729 '$',
10730 {
10731 relevance: 0
10732 }
10733 ),
10734 {
10735 className: 'function',
10736 beginKeywords: 'Function PageEx Section SectionGroup SubSection', end: '$'
10737 },
10738 COMPILER,
10739 DEFINES,
10740 VARIABLES,
10741 LANGUAGES,
10742 PARAMETERS,
10743 hljs.NUMBER_MODE,
10744 { // plug::ins
10745 begin: hljs.IDENT_RE + '::' + hljs.IDENT_RE
10746 }
10747 ]
10748 };
10749}
10750},{name:"objectivec",create:/*
10751Language: Objective C
10752Author: Valerii Hiora <valerii.hiora@gmail.com>
10753Contributors: Angel G. Olloqui <angelgarcia.mail@gmail.com>, Matt Diephouse <matt@diephouse.com>, Andrew Farmer <ahfarmer@gmail.com>
10754Category: common
10755*/
10756
10757function(hljs) {
10758 var API_CLASS = {
10759 className: 'built_in',
10760 begin: '(AV|CA|CF|CG|CI|MK|MP|NS|UI|XC)\\w+',
10761 };
10762 var OBJC_KEYWORDS = {
10763 keyword:
10764 'int float while char export sizeof typedef const struct for union ' +
10765 'unsigned long volatile static bool mutable if do return goto void ' +
10766 'enum else break extern asm case short default double register explicit ' +
10767 'signed typename this switch continue wchar_t inline readonly assign ' +
10768 'readwrite self @synchronized id typeof ' +
10769 'nonatomic super unichar IBOutlet IBAction strong weak copy ' +
10770 'in out inout bycopy byref oneway __strong __weak __block __autoreleasing ' +
10771 '@private @protected @public @try @property @end @throw @catch @finally ' +
10772 '@autoreleasepool @synthesize @dynamic @selector @optional @required',
10773 literal:
10774 'false true FALSE TRUE nil YES NO NULL',
10775 built_in:
10776 'BOOL dispatch_once_t dispatch_queue_t dispatch_sync dispatch_async dispatch_once'
10777 };
10778 var LEXEMES = /[a-zA-Z@][a-zA-Z0-9_]*/;
10779 var CLASS_KEYWORDS = '@interface @class @protocol @implementation';
10780 return {
10781 aliases: ['mm', 'objc', 'obj-c'],
10782 keywords: OBJC_KEYWORDS,
10783 lexemes: LEXEMES,
10784 illegal: '</',
10785 contains: [
10786 API_CLASS,
10787 hljs.C_LINE_COMMENT_MODE,
10788 hljs.C_BLOCK_COMMENT_MODE,
10789 hljs.C_NUMBER_MODE,
10790 hljs.QUOTE_STRING_MODE,
10791 {
10792 className: 'string',
10793 variants: [
10794 {
10795 begin: '@"', end: '"',
10796 illegal: '\\n',
10797 contains: [hljs.BACKSLASH_ESCAPE]
10798 },
10799 {
10800 begin: '\'', end: '[^\\\\]\'',
10801 illegal: '[^\\\\][^\']'
10802 }
10803 ]
10804 },
10805 {
10806 className: 'meta',
10807 begin: '#',
10808 end: '$',
10809 contains: [
10810 {
10811 className: 'meta-string',
10812 variants: [
10813 { begin: '\"', end: '\"' },
10814 { begin: '<', end: '>' }
10815 ]
10816 }
10817 ]
10818 },
10819 {
10820 className: 'class',
10821 begin: '(' + CLASS_KEYWORDS.split(' ').join('|') + ')\\b', end: '({|$)', excludeEnd: true,
10822 keywords: CLASS_KEYWORDS, lexemes: LEXEMES,
10823 contains: [
10824 hljs.UNDERSCORE_TITLE_MODE
10825 ]
10826 },
10827 {
10828 begin: '\\.'+hljs.UNDERSCORE_IDENT_RE,
10829 relevance: 0
10830 }
10831 ]
10832 };
10833}
10834},{name:"ocaml",create:/*
10835Language: OCaml
10836Author: Mehdi Dogguy <mehdi@dogguy.org>
10837Contributors: Nicolas Braud-Santoni <nicolas.braud-santoni@ens-cachan.fr>, Mickael Delahaye <mickael.delahaye@gmail.com>
10838Description: OCaml language definition.
10839Category: functional
10840*/
10841function(hljs) {
10842 /* missing support for heredoc-like string (OCaml 4.0.2+) */
10843 return {
10844 aliases: ['ml'],
10845 keywords: {
10846 keyword:
10847 'and as assert asr begin class constraint do done downto else end ' +
10848 'exception external for fun function functor if in include ' +
10849 'inherit! inherit initializer land lazy let lor lsl lsr lxor match method!|10 method ' +
10850 'mod module mutable new object of open! open or private rec sig struct ' +
10851 'then to try type val! val virtual when while with ' +
10852 /* camlp4 */
10853 'parser value',
10854 built_in:
10855 /* built-in types */
10856 'array bool bytes char exn|5 float int int32 int64 list lazy_t|5 nativeint|5 string unit ' +
10857 /* (some) types in Pervasives */
10858 'in_channel out_channel ref',
10859 literal:
10860 'true false'
10861 },
10862 illegal: /\/\/|>>/,
10863 lexemes: '[a-z_]\\w*!?',
10864 contains: [
10865 {
10866 className: 'literal',
10867 begin: '\\[(\\|\\|)?\\]|\\(\\)',
10868 relevance: 0
10869 },
10870 hljs.COMMENT(
10871 '\\(\\*',
10872 '\\*\\)',
10873 {
10874 contains: ['self']
10875 }
10876 ),
10877 { /* type variable */
10878 className: 'symbol',
10879 begin: '\'[A-Za-z_](?!\')[\\w\']*'
10880 /* the grammar is ambiguous on how 'a'b should be interpreted but not the compiler */
10881 },
10882 { /* polymorphic variant */
10883 className: 'type',
10884 begin: '`[A-Z][\\w\']*'
10885 },
10886 { /* module or constructor */
10887 className: 'type',
10888 begin: '\\b[A-Z][\\w\']*',
10889 relevance: 0
10890 },
10891 { /* don't color identifiers, but safely catch all identifiers with '*/
10892 begin: '[a-z_]\\w*\'[\\w\']*', relevance: 0
10893 },
10894 hljs.inherit(hljs.APOS_STRING_MODE, {className: 'string', relevance: 0}),
10895 hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null}),
10896 {
10897 className: 'number',
10898 begin:
10899 '\\b(0[xX][a-fA-F0-9_]+[Lln]?|' +
10900 '0[oO][0-7_]+[Lln]?|' +
10901 '0[bB][01_]+[Lln]?|' +
10902 '[0-9][0-9_]*([Lln]|(\\.[0-9_]*)?([eE][-+]?[0-9_]+)?)?)',
10903 relevance: 0
10904 },
10905 {
10906 begin: /[-=]>/ // relevance booster
10907 }
10908 ]
10909 }
10910}
10911},{name:"openscad",create:/*
10912Language: OpenSCAD
10913Author: Dan Panzarella <alsoelp@gmail.com>
10914Description: OpenSCAD is a language for the 3D CAD modeling software of the same name.
10915Category: scientific
10916*/
10917
10918function(hljs) {
10919 var SPECIAL_VARS = {
10920 className: 'keyword',
10921 begin: '\\$(f[asn]|t|vp[rtd]|children)'
10922 },
10923 LITERALS = {
10924 className: 'literal',
10925 begin: 'false|true|PI|undef'
10926 },
10927 NUMBERS = {
10928 className: 'number',
10929 begin: '\\b\\d+(\\.\\d+)?(e-?\\d+)?', //adds 1e5, 1e-10
10930 relevance: 0
10931 },
10932 STRING = hljs.inherit(hljs.QUOTE_STRING_MODE,{illegal: null}),
10933 PREPRO = {
10934 className: 'meta',
10935 keywords: {'meta-keyword': 'include use'},
10936 begin: 'include|use <',
10937 end: '>'
10938 },
10939 PARAMS = {
10940 className: 'params',
10941 begin: '\\(', end: '\\)',
10942 contains: ['self', NUMBERS, STRING, SPECIAL_VARS, LITERALS]
10943 },
10944 MODIFIERS = {
10945 begin: '[*!#%]',
10946 relevance: 0
10947 },
10948 FUNCTIONS = {
10949 className: 'function',
10950 beginKeywords: 'module function',
10951 end: '\\=|\\{',
10952 contains: [PARAMS, hljs.UNDERSCORE_TITLE_MODE]
10953 };
10954
10955 return {
10956 aliases: ['scad'],
10957 keywords: {
10958 keyword: 'function module include use for intersection_for if else \\%',
10959 literal: 'false true PI undef',
10960 built_in: 'circle square polygon text sphere cube cylinder polyhedron translate rotate scale resize mirror multmatrix color offset hull minkowski union difference intersection abs sign sin cos tan acos asin atan atan2 floor round ceil ln log pow sqrt exp rands min max concat lookup str chr search version version_num norm cross parent_module echo import import_dxf dxf_linear_extrude linear_extrude rotate_extrude surface projection render children dxf_cross dxf_dim let assign'
10961 },
10962 contains: [
10963 hljs.C_LINE_COMMENT_MODE,
10964 hljs.C_BLOCK_COMMENT_MODE,
10965 NUMBERS,
10966 PREPRO,
10967 STRING,
10968 SPECIAL_VARS,
10969 MODIFIERS,
10970 FUNCTIONS
10971 ]
10972 }
10973}
10974},{name:"oxygene",create:/*
10975Language: Oxygene
10976Author: Carlo Kok <ck@remobjects.com>
10977Description: Language definition for RemObjects Oxygene (http://www.remobjects.com)
10978*/
10979
10980function(hljs) {
10981 var OXYGENE_KEYWORDS = 'abstract add and array as asc aspect assembly async begin break block by case class concat const copy constructor continue '+
10982 'create default delegate desc distinct div do downto dynamic each else empty end ensure enum equals event except exit extension external false '+
10983 'final finalize finalizer finally flags for forward from function future global group has if implementation implements implies in index inherited '+
10984 'inline interface into invariants is iterator join locked locking loop matching method mod module namespace nested new nil not notify nullable of '+
10985 'old on operator or order out override parallel params partial pinned private procedure property protected public queryable raise read readonly '+
10986 'record reintroduce remove repeat require result reverse sealed select self sequence set shl shr skip static step soft take then to true try tuple '+
10987 'type union unit unsafe until uses using var virtual raises volatile where while with write xor yield await mapped deprecated stdcall cdecl pascal '+
10988 'register safecall overload library platform reference packed strict published autoreleasepool selector strong weak unretained';
10989 var CURLY_COMMENT = hljs.COMMENT(
10990 '{',
10991 '}',
10992 {
10993 relevance: 0
10994 }
10995 );
10996 var PAREN_COMMENT = hljs.COMMENT(
10997 '\\(\\*',
10998 '\\*\\)',
10999 {
11000 relevance: 10
11001 }
11002 );
11003 var STRING = {
11004 className: 'string',
11005 begin: '\'', end: '\'',
11006 contains: [{begin: '\'\''}]
11007 };
11008 var CHAR_STRING = {
11009 className: 'string', begin: '(#\\d+)+'
11010 };
11011 var FUNCTION = {
11012 className: 'function',
11013 beginKeywords: 'function constructor destructor procedure method', end: '[:;]',
11014 keywords: 'function constructor|10 destructor|10 procedure|10 method|10',
11015 contains: [
11016 hljs.TITLE_MODE,
11017 {
11018 className: 'params',
11019 begin: '\\(', end: '\\)',
11020 keywords: OXYGENE_KEYWORDS,
11021 contains: [STRING, CHAR_STRING]
11022 },
11023 CURLY_COMMENT, PAREN_COMMENT
11024 ]
11025 };
11026 return {
11027 case_insensitive: true,
11028 keywords: OXYGENE_KEYWORDS,
11029 illegal: '("|\\$[G-Zg-z]|\\/\\*|</|=>|->)',
11030 contains: [
11031 CURLY_COMMENT, PAREN_COMMENT, hljs.C_LINE_COMMENT_MODE,
11032 STRING, CHAR_STRING,
11033 hljs.NUMBER_MODE,
11034 FUNCTION,
11035 {
11036 className: 'class',
11037 begin: '=\\bclass\\b', end: 'end;',
11038 keywords: OXYGENE_KEYWORDS,
11039 contains: [
11040 STRING, CHAR_STRING,
11041 CURLY_COMMENT, PAREN_COMMENT, hljs.C_LINE_COMMENT_MODE,
11042 FUNCTION
11043 ]
11044 }
11045 ]
11046 };
11047}
11048},{name:"parser3",create:/*
11049Language: Parser3
11050Requires: xml.js
11051Author: Oleg Volchkov <oleg@volchkov.net>
11052Category: template
11053*/
11054
11055function(hljs) {
11056 var CURLY_SUBCOMMENT = hljs.COMMENT(
11057 '{',
11058 '}',
11059 {
11060 contains: ['self']
11061 }
11062 );
11063 return {
11064 subLanguage: 'xml', relevance: 0,
11065 contains: [
11066 hljs.COMMENT('^#', '$'),
11067 hljs.COMMENT(
11068 '\\^rem{',
11069 '}',
11070 {
11071 relevance: 10,
11072 contains: [
11073 CURLY_SUBCOMMENT
11074 ]
11075 }
11076 ),
11077 {
11078 className: 'meta',
11079 begin: '^@(?:BASE|USE|CLASS|OPTIONS)$',
11080 relevance: 10
11081 },
11082 {
11083 className: 'title',
11084 begin: '@[\\w\\-]+\\[[\\w^;\\-]*\\](?:\\[[\\w^;\\-]*\\])?(?:.*)$'
11085 },
11086 {
11087 className: 'variable',
11088 begin: '\\$\\{?[\\w\\-\\.\\:]+\\}?'
11089 },
11090 {
11091 className: 'keyword',
11092 begin: '\\^[\\w\\-\\.\\:]+'
11093 },
11094 {
11095 className: 'number',
11096 begin: '\\^#[0-9a-fA-F]+'
11097 },
11098 hljs.C_NUMBER_MODE
11099 ]
11100 };
11101}
11102},{name:"perl",create:/*
11103Language: Perl
11104Author: Peter Leonov <gojpeg@yandex.ru>
11105Category: common
11106*/
11107
11108function(hljs) {
11109 var PERL_KEYWORDS = 'getpwent getservent quotemeta msgrcv scalar kill dbmclose undef lc ' +
11110 'ma syswrite tr send umask sysopen shmwrite vec qx utime local oct semctl localtime ' +
11111 'readpipe do return format read sprintf dbmopen pop getpgrp not getpwnam rewinddir qq' +
11112 'fileno qw endprotoent wait sethostent bless s|0 opendir continue each sleep endgrent ' +
11113 'shutdown dump chomp connect getsockname die socketpair close flock exists index shmget' +
11114 'sub for endpwent redo lstat msgctl setpgrp abs exit select print ref gethostbyaddr ' +
11115 'unshift fcntl syscall goto getnetbyaddr join gmtime symlink semget splice x|0 ' +
11116 'getpeername recv log setsockopt cos last reverse gethostbyname getgrnam study formline ' +
11117 'endhostent times chop length gethostent getnetent pack getprotoent getservbyname rand ' +
11118 'mkdir pos chmod y|0 substr endnetent printf next open msgsnd readdir use unlink ' +
11119 'getsockopt getpriority rindex wantarray hex system getservbyport endservent int chr ' +
11120 'untie rmdir prototype tell listen fork shmread ucfirst setprotoent else sysseek link ' +
11121 'getgrgid shmctl waitpid unpack getnetbyname reset chdir grep split require caller ' +
11122 'lcfirst until warn while values shift telldir getpwuid my getprotobynumber delete and ' +
11123 'sort uc defined srand accept package seekdir getprotobyname semop our rename seek if q|0 ' +
11124 'chroot sysread setpwent no crypt getc chown sqrt write setnetent setpriority foreach ' +
11125 'tie sin msgget map stat getlogin unless elsif truncate exec keys glob tied closedir' +
11126 'ioctl socket readlink eval xor readline binmode setservent eof ord bind alarm pipe ' +
11127 'atan2 getgrent exp time push setgrent gt lt or ne m|0 break given say state when';
11128 var SUBST = {
11129 className: 'subst',
11130 begin: '[$@]\\{', end: '\\}',
11131 keywords: PERL_KEYWORDS
11132 };
11133 var METHOD = {
11134 begin: '->{', end: '}'
11135 // contains defined later
11136 };
11137 var VAR = {
11138 variants: [
11139 {begin: /\$\d/},
11140 {begin: /[\$%@](\^\w\b|#\w+(::\w+)*|{\w+}|\w+(::\w*)*)/},
11141 {begin: /[\$%@][^\s\w{]/, relevance: 0}
11142 ]
11143 };
11144 var STRING_CONTAINS = [hljs.BACKSLASH_ESCAPE, SUBST, VAR];
11145 var PERL_DEFAULT_CONTAINS = [
11146 VAR,
11147 hljs.HASH_COMMENT_MODE,
11148 hljs.COMMENT(
11149 '^\\=\\w',
11150 '\\=cut',
11151 {
11152 endsWithParent: true
11153 }
11154 ),
11155 METHOD,
11156 {
11157 className: 'string',
11158 contains: STRING_CONTAINS,
11159 variants: [
11160 {
11161 begin: 'q[qwxr]?\\s*\\(', end: '\\)',
11162 relevance: 5
11163 },
11164 {
11165 begin: 'q[qwxr]?\\s*\\[', end: '\\]',
11166 relevance: 5
11167 },
11168 {
11169 begin: 'q[qwxr]?\\s*\\{', end: '\\}',
11170 relevance: 5
11171 },
11172 {
11173 begin: 'q[qwxr]?\\s*\\|', end: '\\|',
11174 relevance: 5
11175 },
11176 {
11177 begin: 'q[qwxr]?\\s*\\<', end: '\\>',
11178 relevance: 5
11179 },
11180 {
11181 begin: 'qw\\s+q', end: 'q',
11182 relevance: 5
11183 },
11184 {
11185 begin: '\'', end: '\'',
11186 contains: [hljs.BACKSLASH_ESCAPE]
11187 },
11188 {
11189 begin: '"', end: '"'
11190 },
11191 {
11192 begin: '`', end: '`',
11193 contains: [hljs.BACKSLASH_ESCAPE]
11194 },
11195 {
11196 begin: '{\\w+}',
11197 contains: [],
11198 relevance: 0
11199 },
11200 {
11201 begin: '\-?\\w+\\s*\\=\\>',
11202 contains: [],
11203 relevance: 0
11204 }
11205 ]
11206 },
11207 {
11208 className: 'number',
11209 begin: '(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b',
11210 relevance: 0
11211 },
11212 { // regexp container
11213 begin: '(\\/\\/|' + hljs.RE_STARTERS_RE + '|\\b(split|return|print|reverse|grep)\\b)\\s*',
11214 keywords: 'split return print reverse grep',
11215 relevance: 0,
11216 contains: [
11217 hljs.HASH_COMMENT_MODE,
11218 {
11219 className: 'regexp',
11220 begin: '(s|tr|y)/(\\\\.|[^/])*/(\\\\.|[^/])*/[a-z]*',
11221 relevance: 10
11222 },
11223 {
11224 className: 'regexp',
11225 begin: '(m|qr)?/', end: '/[a-z]*',
11226 contains: [hljs.BACKSLASH_ESCAPE],
11227 relevance: 0 // allows empty "//" which is a common comment delimiter in other languages
11228 }
11229 ]
11230 },
11231 {
11232 className: 'function',
11233 beginKeywords: 'sub', end: '(\\s*\\(.*?\\))?[;{]', excludeEnd: true,
11234 relevance: 5,
11235 contains: [hljs.TITLE_MODE]
11236 },
11237 {
11238 begin: '-\\w\\b',
11239 relevance: 0
11240 },
11241 {
11242 begin: "^__DATA__$",
11243 end: "^__END__$",
11244 subLanguage: 'mojolicious',
11245 contains: [
11246 {
11247 begin: "^@@.*",
11248 end: "$",
11249 className: "comment"
11250 }
11251 ]
11252 }
11253 ];
11254 SUBST.contains = PERL_DEFAULT_CONTAINS;
11255 METHOD.contains = PERL_DEFAULT_CONTAINS;
11256
11257 return {
11258 aliases: ['pl'],
11259 keywords: PERL_KEYWORDS,
11260 contains: PERL_DEFAULT_CONTAINS
11261 };
11262}
11263},{name:"pf",create:/*
11264Language: pf
11265Category: config
11266Author: Peter Piwowarski <oldlaptop654@aol.com>
11267Description: The pf.conf(5) format as of OpenBSD 5.6
11268*/
11269
11270function(hljs) {
11271 var MACRO = {
11272 className: 'variable',
11273 begin: /\$[\w\d#@][\w\d_]*/
11274 };
11275 var TABLE = {
11276 className: 'variable',
11277 begin: /</, end: />/
11278 };
11279 var QUOTE_STRING = {
11280 className: 'string',
11281 begin: /"/, end: /"/
11282 };
11283
11284 return {
11285 aliases: ['pf.conf'],
11286 lexemes: /[a-z0-9_<>-]+/,
11287 keywords: {
11288 built_in: /* block match pass are "actions" in pf.conf(5), the rest are
11289 * lexically similar top-level commands.
11290 */
11291 'block match pass load anchor|5 antispoof|10 set table',
11292 keyword:
11293 'in out log quick on rdomain inet inet6 proto from port os to route' +
11294 'allow-opts divert-packet divert-reply divert-to flags group icmp-type' +
11295 'icmp6-type label once probability recieved-on rtable prio queue' +
11296 'tos tag tagged user keep fragment for os drop' +
11297 'af-to|10 binat-to|10 nat-to|10 rdr-to|10 bitmask least-stats random round-robin' +
11298 'source-hash static-port' +
11299 'dup-to reply-to route-to' +
11300 'parent bandwidth default min max qlimit' +
11301 'block-policy debug fingerprints hostid limit loginterface optimization' +
11302 'reassemble ruleset-optimization basic none profile skip state-defaults' +
11303 'state-policy timeout' +
11304 'const counters persist' +
11305 'no modulate synproxy state|5 floating if-bound no-sync pflow|10 sloppy' +
11306 'source-track global rule max-src-nodes max-src-states max-src-conn' +
11307 'max-src-conn-rate overload flush' +
11308 'scrub|5 max-mss min-ttl no-df|10 random-id',
11309 literal:
11310 'all any no-route self urpf-failed egress|5 unknown'
11311 },
11312 contains: [
11313 hljs.HASH_COMMENT_MODE,
11314 hljs.NUMBER_MODE,
11315 hljs.QUOTE_STRING_MODE,
11316 MACRO,
11317 TABLE
11318 ]
11319 };
11320}
11321},{name:"php",create:/*
11322Language: PHP
11323Author: Victor Karamzin <Victor.Karamzin@enterra-inc.com>
11324Contributors: Evgeny Stepanischev <imbolk@gmail.com>, Ivan Sagalaev <maniac@softwaremaniacs.org>
11325Category: common
11326*/
11327
11328function(hljs) {
11329 var VARIABLE = {
11330 begin: '\\$+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*'
11331 };
11332 var PREPROCESSOR = {
11333 className: 'meta', begin: /<\?(php)?|\?>/
11334 };
11335 var STRING = {
11336 className: 'string',
11337 contains: [hljs.BACKSLASH_ESCAPE, PREPROCESSOR],
11338 variants: [
11339 {
11340 begin: 'b"', end: '"'
11341 },
11342 {
11343 begin: 'b\'', end: '\''
11344 },
11345 hljs.inherit(hljs.APOS_STRING_MODE, {illegal: null}),
11346 hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null})
11347 ]
11348 };
11349 var NUMBER = {variants: [hljs.BINARY_NUMBER_MODE, hljs.C_NUMBER_MODE]};
11350 return {
11351 aliases: ['php3', 'php4', 'php5', 'php6'],
11352 case_insensitive: true,
11353 keywords:
11354 'and include_once list abstract global private echo interface as static endswitch ' +
11355 'array null if endwhile or const for endforeach self var while isset public ' +
11356 'protected exit foreach throw elseif include __FILE__ empty require_once do xor ' +
11357 'return parent clone use __CLASS__ __LINE__ else break print eval new ' +
11358 'catch __METHOD__ case exception default die require __FUNCTION__ ' +
11359 'enddeclare final try switch continue endfor endif declare unset true false ' +
11360 'trait goto instanceof insteadof __DIR__ __NAMESPACE__ ' +
11361 'yield finally',
11362 contains: [
11363 hljs.C_LINE_COMMENT_MODE,
11364 hljs.HASH_COMMENT_MODE,
11365 hljs.COMMENT(
11366 '/\\*',
11367 '\\*/',
11368 {
11369 contains: [
11370 {
11371 className: 'doctag',
11372 begin: '@[A-Za-z]+'
11373 },
11374 PREPROCESSOR
11375 ]
11376 }
11377 ),
11378 hljs.COMMENT(
11379 '__halt_compiler.+?;',
11380 false,
11381 {
11382 endsWithParent: true,
11383 keywords: '__halt_compiler',
11384 lexemes: hljs.UNDERSCORE_IDENT_RE
11385 }
11386 ),
11387 {
11388 className: 'string',
11389 begin: /<<<['"]?\w+['"]?$/, end: /^\w+;?$/,
11390 contains: [
11391 hljs.BACKSLASH_ESCAPE,
11392 {
11393 className: 'subst',
11394 variants: [
11395 {begin: /\$\w+/},
11396 {begin: /\{\$/, end: /\}/}
11397 ]
11398 }
11399 ]
11400 },
11401 PREPROCESSOR,
11402 VARIABLE,
11403 {
11404 // swallow composed identifiers to avoid parsing them as keywords
11405 begin: /(::|->)+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/
11406 },
11407 {
11408 className: 'function',
11409 beginKeywords: 'function', end: /[;{]/, excludeEnd: true,
11410 illegal: '\\$|\\[|%',
11411 contains: [
11412 hljs.UNDERSCORE_TITLE_MODE,
11413 {
11414 className: 'params',
11415 begin: '\\(', end: '\\)',
11416 contains: [
11417 'self',
11418 VARIABLE,
11419 hljs.C_BLOCK_COMMENT_MODE,
11420 STRING,
11421 NUMBER
11422 ]
11423 }
11424 ]
11425 },
11426 {
11427 className: 'class',
11428 beginKeywords: 'class interface', end: '{', excludeEnd: true,
11429 illegal: /[:\(\$"]/,
11430 contains: [
11431 {beginKeywords: 'extends implements'},
11432 hljs.UNDERSCORE_TITLE_MODE
11433 ]
11434 },
11435 {
11436 beginKeywords: 'namespace', end: ';',
11437 illegal: /[\.']/,
11438 contains: [hljs.UNDERSCORE_TITLE_MODE]
11439 },
11440 {
11441 beginKeywords: 'use', end: ';',
11442 contains: [hljs.UNDERSCORE_TITLE_MODE]
11443 },
11444 {
11445 begin: '=>' // No markup, just a relevance booster
11446 },
11447 STRING,
11448 NUMBER
11449 ]
11450 };
11451}
11452},{name:"powershell",create:/*
11453Language: PowerShell
11454Author: David Mohundro <david@mohundro.com>
11455Contributors: Nicholas Blumhardt <nblumhardt@nblumhardt.com>
11456*/
11457
11458function(hljs) {
11459 var backtickEscape = {
11460 begin: '`[\\s\\S]',
11461 relevance: 0
11462 };
11463 var VAR = {
11464 className: 'variable',
11465 variants: [
11466 {begin: /\$[\w\d][\w\d_:]*/}
11467 ]
11468 };
11469 var LITERAL = {
11470 className: 'literal',
11471 begin: /\$(null|true|false)\b/
11472 };
11473 var QUOTE_STRING = {
11474 className: 'string',
11475 begin: /"/, end: /"/,
11476 contains: [
11477 backtickEscape,
11478 VAR,
11479 {
11480 className: 'variable',
11481 begin: /\$[A-z]/, end: /[^A-z]/
11482 }
11483 ]
11484 };
11485 var APOS_STRING = {
11486 className: 'string',
11487 begin: /'/, end: /'/
11488 };
11489
11490 return {
11491 aliases: ['ps'],
11492 lexemes: /-?[A-z\.\-]+/,
11493 case_insensitive: true,
11494 keywords: {
11495 keyword: 'if else foreach return function do while until elseif begin for trap data dynamicparam end break throw param continue finally in switch exit filter try process catch',
11496 built_in: 'Add-Content Add-History Add-Member Add-PSSnapin Clear-Content Clear-Item Clear-Item Property Clear-Variable Compare-Object ConvertFrom-SecureString Convert-Path ConvertTo-Html ConvertTo-SecureString Copy-Item Copy-ItemProperty Export-Alias Export-Clixml Export-Console Export-Csv ForEach-Object Format-Custom Format-List Format-Table Format-Wide Get-Acl Get-Alias Get-AuthenticodeSignature Get-ChildItem Get-Command Get-Content Get-Credential Get-Culture Get-Date Get-EventLog Get-ExecutionPolicy Get-Help Get-History Get-Host Get-Item Get-ItemProperty Get-Location Get-Member Get-PfxCertificate Get-Process Get-PSDrive Get-PSProvider Get-PSSnapin Get-Service Get-TraceSource Get-UICulture Get-Unique Get-Variable Get-WmiObject Group-Object Import-Alias Import-Clixml Import-Csv Invoke-Expression Invoke-History Invoke-Item Join-Path Measure-Command Measure-Object Move-Item Move-ItemProperty New-Alias New-Item New-ItemProperty New-Object New-PSDrive New-Service New-TimeSpan New-Variable Out-Default Out-File Out-Host Out-Null Out-Printer Out-String Pop-Location Push-Location Read-Host Remove-Item Remove-ItemProperty Remove-PSDrive Remove-PSSnapin Remove-Variable Rename-Item Rename-ItemProperty Resolve-Path Restart-Service Resume-Service Select-Object Select-String Set-Acl Set-Alias Set-AuthenticodeSignature Set-Content Set-Date Set-ExecutionPolicy Set-Item Set-ItemProperty Set-Location Set-PSDebug Set-Service Set-TraceSource Set-Variable Sort-Object Split-Path Start-Service Start-Sleep Start-Transcript Stop-Process Stop-Service Stop-Transcript Suspend-Service Tee-Object Test-Path Trace-Command Update-FormatData Update-TypeData Where-Object Write-Debug Write-Error Write-Host Write-Output Write-Progress Write-Verbose Write-Warning',
11497 nomarkup: '-ne -eq -lt -gt -ge -le -not -like -notlike -match -notmatch -contains -notcontains -in -notin -replace'
11498 },
11499 contains: [
11500 hljs.HASH_COMMENT_MODE,
11501 hljs.NUMBER_MODE,
11502 QUOTE_STRING,
11503 APOS_STRING,
11504 LITERAL,
11505 VAR
11506 ]
11507 };
11508}
11509},{name:"processing",create:/*
11510Language: Processing
11511Author: Erik Paluka <erik.paluka@gmail.com>
11512Category: graphics
11513*/
11514
11515function(hljs) {
11516 return {
11517 keywords: {
11518 keyword: 'BufferedReader PVector PFont PImage PGraphics HashMap boolean byte char color ' +
11519 'double float int long String Array FloatDict FloatList IntDict IntList JSONArray JSONObject ' +
11520 'Object StringDict StringList Table TableRow XML ' +
11521 // Java keywords
11522 'false synchronized int abstract float private char boolean static null if const ' +
11523 'for true while long throw strictfp finally protected import native final return void ' +
11524 'enum else break transient new catch instanceof byte super volatile case assert short ' +
11525 'package default double public try this switch continue throws protected public private',
11526 literal: 'P2D P3D HALF_PI PI QUARTER_PI TAU TWO_PI',
11527 title: 'setup draw',
11528 built_in: 'displayHeight displayWidth mouseY mouseX mousePressed pmouseX pmouseY key ' +
11529 'keyCode pixels focused frameCount frameRate height width ' +
11530 'size createGraphics beginDraw createShape loadShape PShape arc ellipse line point ' +
11531 'quad rect triangle bezier bezierDetail bezierPoint bezierTangent curve curveDetail curvePoint ' +
11532 'curveTangent curveTightness shape shapeMode beginContour beginShape bezierVertex curveVertex ' +
11533 'endContour endShape quadraticVertex vertex ellipseMode noSmooth rectMode smooth strokeCap ' +
11534 'strokeJoin strokeWeight mouseClicked mouseDragged mouseMoved mousePressed mouseReleased ' +
11535 'mouseWheel keyPressed keyPressedkeyReleased keyTyped print println save saveFrame day hour ' +
11536 'millis minute month second year background clear colorMode fill noFill noStroke stroke alpha ' +
11537 'blue brightness color green hue lerpColor red saturation modelX modelY modelZ screenX screenY ' +
11538 'screenZ ambient emissive shininess specular add createImage beginCamera camera endCamera frustum ' +
11539 'ortho perspective printCamera printProjection cursor frameRate noCursor exit loop noLoop popStyle ' +
11540 'pushStyle redraw binary boolean byte char float hex int str unbinary unhex join match matchAll nf ' +
11541 'nfc nfp nfs split splitTokens trim append arrayCopy concat expand reverse shorten sort splice subset ' +
11542 'box sphere sphereDetail createInput createReader loadBytes loadJSONArray loadJSONObject loadStrings ' +
11543 'loadTable loadXML open parseXML saveTable selectFolder selectInput beginRaw beginRecord createOutput ' +
11544 'createWriter endRaw endRecord PrintWritersaveBytes saveJSONArray saveJSONObject saveStream saveStrings ' +
11545 'saveXML selectOutput popMatrix printMatrix pushMatrix resetMatrix rotate rotateX rotateY rotateZ scale ' +
11546 'shearX shearY translate ambientLight directionalLight lightFalloff lights lightSpecular noLights normal ' +
11547 'pointLight spotLight image imageMode loadImage noTint requestImage tint texture textureMode textureWrap ' +
11548 'blend copy filter get loadPixels set updatePixels blendMode loadShader PShaderresetShader shader createFont ' +
11549 'loadFont text textFont textAlign textLeading textMode textSize textWidth textAscent textDescent abs ceil ' +
11550 'constrain dist exp floor lerp log mag map max min norm pow round sq sqrt acos asin atan atan2 cos degrees ' +
11551 'radians sin tan noise noiseDetail noiseSeed random randomGaussian randomSeed'
11552 },
11553 contains: [
11554 hljs.C_LINE_COMMENT_MODE,
11555 hljs.C_BLOCK_COMMENT_MODE,
11556 hljs.APOS_STRING_MODE,
11557 hljs.QUOTE_STRING_MODE,
11558 hljs.C_NUMBER_MODE
11559 ]
11560 };
11561}
11562},{name:"profile",create:/*
11563Language: Python profile
11564Description: Python profiler results
11565Author: Brian Beck <exogen@gmail.com>
11566*/
11567
11568function(hljs) {
11569 return {
11570 contains: [
11571 hljs.C_NUMBER_MODE,
11572 {
11573 begin: '[a-zA-Z_][\\da-zA-Z_]+\\.[\\da-zA-Z_]{1,3}', end: ':',
11574 excludeEnd: true
11575 },
11576 {
11577 begin: '(ncalls|tottime|cumtime)', end: '$',
11578 keywords: 'ncalls tottime|10 cumtime|10 filename',
11579 relevance: 10
11580 },
11581 {
11582 begin: 'function calls', end: '$',
11583 contains: [hljs.C_NUMBER_MODE],
11584 relevance: 10
11585 },
11586 hljs.APOS_STRING_MODE,
11587 hljs.QUOTE_STRING_MODE,
11588 {
11589 className: 'string',
11590 begin: '\\(', end: '\\)$',
11591 excludeBegin: true, excludeEnd: true,
11592 relevance: 0
11593 }
11594 ]
11595 };
11596}
11597},{name:"prolog",create:/*
11598Language: Prolog
11599Description: Prolog is a general purpose logic programming language associated with artificial intelligence and computational linguistics.
11600Author: Raivo Laanemets <raivo@infdot.com>
11601*/
11602
11603function(hljs) {
11604
11605 var ATOM = {
11606
11607 begin: /[a-z][A-Za-z0-9_]*/,
11608 relevance: 0
11609 };
11610
11611 var VAR = {
11612
11613 className: 'symbol',
11614 variants: [
11615 {begin: /[A-Z][a-zA-Z0-9_]*/},
11616 {begin: /_[A-Za-z0-9_]*/},
11617 ],
11618 relevance: 0
11619 };
11620
11621 var PARENTED = {
11622
11623 begin: /\(/,
11624 end: /\)/,
11625 relevance: 0
11626 };
11627
11628 var LIST = {
11629
11630 begin: /\[/,
11631 end: /\]/
11632 };
11633
11634 var LINE_COMMENT = {
11635
11636 className: 'comment',
11637 begin: /%/, end: /$/,
11638 contains: [hljs.PHRASAL_WORDS_MODE]
11639 };
11640
11641 var BACKTICK_STRING = {
11642
11643 className: 'string',
11644 begin: /`/, end: /`/,
11645 contains: [hljs.BACKSLASH_ESCAPE]
11646 };
11647
11648 var CHAR_CODE = {
11649
11650 className: 'string', // 0'a etc.
11651 begin: /0\'(\\\'|.)/
11652 };
11653
11654 var SPACE_CODE = {
11655
11656 className: 'string',
11657 begin: /0\'\\s/ // 0'\s
11658 };
11659
11660 var PRED_OP = { // relevance booster
11661 begin: /:-/
11662 };
11663
11664 var inner = [
11665
11666 ATOM,
11667 VAR,
11668 PARENTED,
11669 PRED_OP,
11670 LIST,
11671 LINE_COMMENT,
11672 hljs.C_BLOCK_COMMENT_MODE,
11673 hljs.QUOTE_STRING_MODE,
11674 hljs.APOS_STRING_MODE,
11675 BACKTICK_STRING,
11676 CHAR_CODE,
11677 SPACE_CODE,
11678 hljs.C_NUMBER_MODE
11679 ];
11680
11681 PARENTED.contains = inner;
11682 LIST.contains = inner;
11683
11684 return {
11685 contains: inner.concat([
11686 {begin: /\.$/} // relevance booster
11687 ])
11688 };
11689}
11690},{name:"protobuf",create:/*
11691Language: Protocol Buffers
11692Author: Dan Tao <daniel.tao@gmail.com>
11693Description: Protocol buffer message definition format
11694Category: protocols
11695*/
11696
11697function(hljs) {
11698 return {
11699 keywords: {
11700 keyword: 'package import option optional required repeated group',
11701 built_in: 'double float int32 int64 uint32 uint64 sint32 sint64 ' +
11702 'fixed32 fixed64 sfixed32 sfixed64 bool string bytes',
11703 literal: 'true false'
11704 },
11705 contains: [
11706 hljs.QUOTE_STRING_MODE,
11707 hljs.NUMBER_MODE,
11708 hljs.C_LINE_COMMENT_MODE,
11709 {
11710 className: 'class',
11711 beginKeywords: 'message enum service', end: /\{/,
11712 illegal: /\n/,
11713 contains: [
11714 hljs.inherit(hljs.TITLE_MODE, {
11715 starts: {endsWithParent: true, excludeEnd: true} // hack: eating everything after the first title
11716 })
11717 ]
11718 },
11719 {
11720 className: 'function',
11721 beginKeywords: 'rpc',
11722 end: /;/, excludeEnd: true,
11723 keywords: 'rpc returns'
11724 },
11725 {
11726 begin: /^\s*[A-Z_]+/,
11727 end: /\s*=/, excludeEnd: true
11728 }
11729 ]
11730 };
11731}
11732},{name:"puppet",create:/*
11733Language: Puppet
11734Author: Jose Molina Colmenero <gaudy41@gmail.com>
11735Category: config
11736*/
11737
11738function(hljs) {
11739
11740 var PUPPET_KEYWORDS = {
11741 keyword:
11742 /* language keywords */
11743 'and case default else elsif false if in import enherits node or true undef unless main settings $string ',
11744 literal:
11745 /* metaparameters */
11746 'alias audit before loglevel noop require subscribe tag ' +
11747 /* normal attributes */
11748 'owner ensure group mode name|0 changes context force incl lens load_path onlyif provider returns root show_diff type_check ' +
11749 'en_address ip_address realname command environment hour monute month monthday special target weekday '+
11750 'creates cwd ogoutput refresh refreshonly tries try_sleep umask backup checksum content ctime force ignore ' +
11751 'links mtime purge recurse recurselimit replace selinux_ignore_defaults selrange selrole seltype seluser source ' +
11752 'souirce_permissions sourceselect validate_cmd validate_replacement allowdupe attribute_membership auth_membership forcelocal gid '+
11753 'ia_load_module members system host_aliases ip allowed_trunk_vlans description device_url duplex encapsulation etherchannel ' +
11754 'native_vlan speed principals allow_root auth_class auth_type authenticate_user k_of_n mechanisms rule session_owner shared options ' +
11755 'device fstype enable hasrestart directory present absent link atboot blockdevice device dump pass remounts poller_tag use ' +
11756 'message withpath adminfile allow_virtual allowcdrom category configfiles flavor install_options instance package_settings platform ' +
11757 'responsefile status uninstall_options vendor unless_system_user unless_uid binary control flags hasstatus manifest pattern restart running ' +
11758 'start stop allowdupe auths expiry gid groups home iterations key_membership keys managehome membership password password_max_age ' +
11759 'password_min_age profile_membership profiles project purge_ssh_keys role_membership roles salt shell uid baseurl cost descr enabled ' +
11760 'enablegroups exclude failovermethod gpgcheck gpgkey http_caching include includepkgs keepalive metadata_expire metalink mirrorlist ' +
11761 'priority protect proxy proxy_password proxy_username repo_gpgcheck s3_enabled skip_if_unavailable sslcacert sslclientcert sslclientkey ' +
11762 'sslverify mounted',
11763 built_in:
11764 /* core facts */
11765 'architecture augeasversion blockdevices boardmanufacturer boardproductname boardserialnumber cfkey dhcp_servers ' +
11766 'domain ec2_ ec2_userdata facterversion filesystems ldom fqdn gid hardwareisa hardwaremodel hostname id|0 interfaces '+
11767 'ipaddress ipaddress_ ipaddress6 ipaddress6_ iphostnumber is_virtual kernel kernelmajversion kernelrelease kernelversion ' +
11768 'kernelrelease kernelversion lsbdistcodename lsbdistdescription lsbdistid lsbdistrelease lsbmajdistrelease lsbminordistrelease ' +
11769 'lsbrelease macaddress macaddress_ macosx_buildversion macosx_productname macosx_productversion macosx_productverson_major ' +
11770 'macosx_productversion_minor manufacturer memoryfree memorysize netmask metmask_ network_ operatingsystem operatingsystemmajrelease '+
11771 'operatingsystemrelease osfamily partitions path physicalprocessorcount processor processorcount productname ps puppetversion '+
11772 'rubysitedir rubyversion selinux selinux_config_mode selinux_config_policy selinux_current_mode selinux_current_mode selinux_enforced '+
11773 'selinux_policyversion serialnumber sp_ sshdsakey sshecdsakey sshrsakey swapencrypted swapfree swapsize timezone type uniqueid uptime '+
11774 'uptime_days uptime_hours uptime_seconds uuid virtual vlans xendomains zfs_version zonenae zones zpool_version'
11775 };
11776
11777 var COMMENT = hljs.COMMENT('#', '$');
11778
11779 var IDENT_RE = '([A-Za-z_]|::)(\\w|::)*';
11780
11781 var TITLE = hljs.inherit(hljs.TITLE_MODE, {begin: IDENT_RE});
11782
11783 var VARIABLE = {className: 'variable', begin: '\\$' + IDENT_RE};
11784
11785 var STRING = {
11786 className: 'string',
11787 contains: [hljs.BACKSLASH_ESCAPE, VARIABLE],
11788 variants: [
11789 {begin: /'/, end: /'/},
11790 {begin: /"/, end: /"/}
11791 ]
11792 };
11793
11794 return {
11795 aliases: ['pp'],
11796 contains: [
11797 COMMENT,
11798 VARIABLE,
11799 STRING,
11800 {
11801 beginKeywords: 'class', end: '\\{|;',
11802 illegal: /=/,
11803 contains: [TITLE, COMMENT]
11804 },
11805 {
11806 beginKeywords: 'define', end: /\{/,
11807 contains: [
11808 {
11809 className: 'section', begin: hljs.IDENT_RE, endsParent: true
11810 }
11811 ]
11812 },
11813 {
11814 begin: hljs.IDENT_RE + '\\s+\\{', returnBegin: true,
11815 end: /\S/,
11816 contains: [
11817 {
11818 className: 'keyword',
11819 begin: hljs.IDENT_RE
11820 },
11821 {
11822 begin: /\{/, end: /\}/,
11823 keywords: PUPPET_KEYWORDS,
11824 relevance: 0,
11825 contains: [
11826 STRING,
11827 COMMENT,
11828 {
11829 begin:'[a-zA-Z_]+\\s*=>',
11830 returnBegin: true, end: '=>',
11831 contains: [
11832 {
11833 className: 'attr',
11834 begin: hljs.IDENT_RE,
11835 }
11836 ]
11837 },
11838 {
11839 className: 'number',
11840 begin: '(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b',
11841 relevance: 0
11842 },
11843 VARIABLE
11844 ]
11845 }
11846 ],
11847 relevance: 0
11848 }
11849 ]
11850 }
11851}
11852},{name:"python",create:/*
11853Language: Python
11854Category: common
11855*/
11856
11857function(hljs) {
11858 var PROMPT = {
11859 className: 'meta', begin: /^(>>>|\.\.\.) /
11860 };
11861 var STRING = {
11862 className: 'string',
11863 contains: [hljs.BACKSLASH_ESCAPE],
11864 variants: [
11865 {
11866 begin: /(u|b)?r?'''/, end: /'''/,
11867 contains: [PROMPT],
11868 relevance: 10
11869 },
11870 {
11871 begin: /(u|b)?r?"""/, end: /"""/,
11872 contains: [PROMPT],
11873 relevance: 10
11874 },
11875 {
11876 begin: /(u|r|ur)'/, end: /'/,
11877 relevance: 10
11878 },
11879 {
11880 begin: /(u|r|ur)"/, end: /"/,
11881 relevance: 10
11882 },
11883 {
11884 begin: /(b|br)'/, end: /'/
11885 },
11886 {
11887 begin: /(b|br)"/, end: /"/
11888 },
11889 hljs.APOS_STRING_MODE,
11890 hljs.QUOTE_STRING_MODE
11891 ]
11892 };
11893 var NUMBER = {
11894 className: 'number', relevance: 0,
11895 variants: [
11896 {begin: hljs.BINARY_NUMBER_RE + '[lLjJ]?'},
11897 {begin: '\\b(0o[0-7]+)[lLjJ]?'},
11898 {begin: hljs.C_NUMBER_RE + '[lLjJ]?'}
11899 ]
11900 };
11901 var PARAMS = {
11902 className: 'params',
11903 begin: /\(/, end: /\)/,
11904 contains: ['self', PROMPT, NUMBER, STRING]
11905 };
11906 return {
11907 aliases: ['py', 'gyp'],
11908 keywords: {
11909 keyword:
11910 'and elif is global as in if from raise for except finally print import pass return ' +
11911 'exec else break not with class assert yield try while continue del or def lambda ' +
11912 'async await nonlocal|10 None True False',
11913 built_in:
11914 'Ellipsis NotImplemented'
11915 },
11916 illegal: /(<\/|->|\?)/,
11917 contains: [
11918 PROMPT,
11919 NUMBER,
11920 STRING,
11921 hljs.HASH_COMMENT_MODE,
11922 {
11923 variants: [
11924 {className: 'function', beginKeywords: 'def', relevance: 10},
11925 {className: 'class', beginKeywords: 'class'}
11926 ],
11927 end: /:/,
11928 illegal: /[${=;\n,]/,
11929 contains: [hljs.UNDERSCORE_TITLE_MODE, PARAMS]
11930 },
11931 {
11932 className: 'meta',
11933 begin: /^[\t ]*@/, end: /$/
11934 },
11935 {
11936 begin: /\b(print|exec)\(/ // don’t highlight keywords-turned-functions in Python 3
11937 }
11938 ]
11939 };
11940}
11941},{name:"q",create:/*
11942Language: Q
11943Author: Sergey Vidyuk <svidyuk@gmail.com>
11944Description: K/Q/Kdb+ from Kx Systems
11945*/
11946function(hljs) {
11947 var Q_KEYWORDS = {
11948 keyword:
11949 'do while select delete by update from',
11950 literal:
11951 '0b 1b',
11952 built_in:
11953 'neg not null string reciprocal floor ceiling signum mod xbar xlog and or each scan over prior mmu lsq inv md5 ltime gtime count first var dev med cov cor all any rand sums prds mins maxs fills deltas ratios avgs differ prev next rank reverse iasc idesc asc desc msum mcount mavg mdev xrank mmin mmax xprev rotate distinct group where flip type key til get value attr cut set upsert raze union inter except cross sv vs sublist enlist read0 read1 hopen hclose hdel hsym hcount peach system ltrim rtrim trim lower upper ssr view tables views cols xcols keys xkey xcol xasc xdesc fkeys meta lj aj aj0 ij pj asof uj ww wj wj1 fby xgroup ungroup ej save load rsave rload show csv parse eval min max avg wavg wsum sin cos tan sum',
11954 type:
11955 '`float `double int `timestamp `timespan `datetime `time `boolean `symbol `char `byte `short `long `real `month `date `minute `second `guid'
11956 };
11957 return {
11958 aliases:['k', 'kdb'],
11959 keywords: Q_KEYWORDS,
11960 lexemes: /(`?)[A-Za-z0-9_]+\b/,
11961 contains: [
11962 hljs.C_LINE_COMMENT_MODE,
11963 hljs.QUOTE_STRING_MODE,
11964 hljs.C_NUMBER_MODE
11965 ]
11966 };
11967}
11968},{name:"r",create:/*
11969Language: R
11970Author: Joe Cheng <joe@rstudio.org>
11971Category: scientific
11972*/
11973
11974function(hljs) {
11975 var IDENT_RE = '([a-zA-Z]|\\.[a-zA-Z.])[a-zA-Z0-9._]*';
11976
11977 return {
11978 contains: [
11979 hljs.HASH_COMMENT_MODE,
11980 {
11981 begin: IDENT_RE,
11982 lexemes: IDENT_RE,
11983 keywords: {
11984 keyword:
11985 'function if in break next repeat else for return switch while try tryCatch ' +
11986 'stop warning require library attach detach source setMethod setGeneric ' +
11987 'setGroupGeneric setClass ...',
11988 literal:
11989 'NULL NA TRUE FALSE T F Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 ' +
11990 'NA_complex_|10'
11991 },
11992 relevance: 0
11993 },
11994 {
11995 // hex value
11996 className: 'number',
11997 begin: "0[xX][0-9a-fA-F]+[Li]?\\b",
11998 relevance: 0
11999 },
12000 {
12001 // explicit integer
12002 className: 'number',
12003 begin: "\\d+(?:[eE][+\\-]?\\d*)?L\\b",
12004 relevance: 0
12005 },
12006 {
12007 // number with trailing decimal
12008 className: 'number',
12009 begin: "\\d+\\.(?!\\d)(?:i\\b)?",
12010 relevance: 0
12011 },
12012 {
12013 // number
12014 className: 'number',
12015 begin: "\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d*)?i?\\b",
12016 relevance: 0
12017 },
12018 {
12019 // number with leading decimal
12020 className: 'number',
12021 begin: "\\.\\d+(?:[eE][+\\-]?\\d*)?i?\\b",
12022 relevance: 0
12023 },
12024
12025 {
12026 // escaped identifier
12027 begin: '`',
12028 end: '`',
12029 relevance: 0
12030 },
12031
12032 {
12033 className: 'string',
12034 contains: [hljs.BACKSLASH_ESCAPE],
12035 variants: [
12036 {begin: '"', end: '"'},
12037 {begin: "'", end: "'"}
12038 ]
12039 }
12040 ]
12041 };
12042}
12043},{name:"rib",create:/*
12044Language: RenderMan RIB
12045Author: Konstantin Evdokimenko <qewerty@gmail.com>
12046Contributors: Shuen-Huei Guan <drake.guan@gmail.com>
12047Category: graphics
12048*/
12049
12050function(hljs) {
12051 return {
12052 keywords:
12053 'ArchiveRecord AreaLightSource Atmosphere Attribute AttributeBegin AttributeEnd Basis ' +
12054 'Begin Blobby Bound Clipping ClippingPlane Color ColorSamples ConcatTransform Cone ' +
12055 'CoordinateSystem CoordSysTransform CropWindow Curves Cylinder DepthOfField Detail ' +
12056 'DetailRange Disk Displacement Display End ErrorHandler Exposure Exterior Format ' +
12057 'FrameAspectRatio FrameBegin FrameEnd GeneralPolygon GeometricApproximation Geometry ' +
12058 'Hider Hyperboloid Identity Illuminate Imager Interior LightSource ' +
12059 'MakeCubeFaceEnvironment MakeLatLongEnvironment MakeShadow MakeTexture Matte ' +
12060 'MotionBegin MotionEnd NuPatch ObjectBegin ObjectEnd ObjectInstance Opacity Option ' +
12061 'Orientation Paraboloid Patch PatchMesh Perspective PixelFilter PixelSamples ' +
12062 'PixelVariance Points PointsGeneralPolygons PointsPolygons Polygon Procedural Projection ' +
12063 'Quantize ReadArchive RelativeDetail ReverseOrientation Rotate Scale ScreenWindow ' +
12064 'ShadingInterpolation ShadingRate Shutter Sides Skew SolidBegin SolidEnd Sphere ' +
12065 'SubdivisionMesh Surface TextureCoordinates Torus Transform TransformBegin TransformEnd ' +
12066 'TransformPoints Translate TrimCurve WorldBegin WorldEnd',
12067 illegal: '</',
12068 contains: [
12069 hljs.HASH_COMMENT_MODE,
12070 hljs.C_NUMBER_MODE,
12071 hljs.APOS_STRING_MODE,
12072 hljs.QUOTE_STRING_MODE
12073 ]
12074 };
12075}
12076},{name:"roboconf",create:/*
12077Language: Roboconf
12078Author: Vincent Zurczak <vzurczak@linagora.com>
12079Website: http://roboconf.net
12080Description: Syntax highlighting for Roboconf's DSL
12081Category: config
12082*/
12083
12084function(hljs) {
12085 var IDENTIFIER = '[a-zA-Z-_][^\\n{]+\\{';
12086
12087 var PROPERTY = {
12088 className: 'attribute',
12089 begin: /[a-zA-Z-_]+/, end: /\s*:/, excludeEnd: true,
12090 starts: {
12091 end: ';',
12092 relevance: 0,
12093 contains: [
12094 {
12095 className: 'variable',
12096 begin: /\.[a-zA-Z-_]+/
12097 },
12098 {
12099 className: 'keyword',
12100 begin: /\(optional\)/
12101 }
12102 ]
12103 }
12104 };
12105
12106 return {
12107 aliases: ['graph', 'instances'],
12108 case_insensitive: true,
12109 keywords: 'import',
12110 contains: [
12111 // Facet sections
12112 {
12113 begin: '^facet ' + IDENTIFIER,
12114 end: '}',
12115 keywords: 'facet',
12116 contains: [
12117 PROPERTY,
12118 hljs.HASH_COMMENT_MODE
12119 ]
12120 },
12121
12122 // Instance sections
12123 {
12124 begin: '^\\s*instance of ' + IDENTIFIER,
12125 end: '}',
12126 keywords: 'name count channels instance-data instance-state instance of',
12127 illegal: /\S/,
12128 contains: [
12129 'self',
12130 PROPERTY,
12131 hljs.HASH_COMMENT_MODE
12132 ]
12133 },
12134
12135 // Component sections
12136 {
12137 begin: '^' + IDENTIFIER,
12138 end: '}',
12139 contains: [
12140 PROPERTY,
12141 hljs.HASH_COMMENT_MODE
12142 ]
12143 },
12144
12145 // Comments
12146 hljs.HASH_COMMENT_MODE
12147 ]
12148 };
12149}
12150},{name:"rsl",create:/*
12151Language: RenderMan RSL
12152Author: Konstantin Evdokimenko <qewerty@gmail.com>
12153Contributors: Shuen-Huei Guan <drake.guan@gmail.com>
12154Category: graphics
12155*/
12156
12157function(hljs) {
12158 return {
12159 keywords: {
12160 keyword:
12161 'float color point normal vector matrix while for if do return else break extern continue',
12162 built_in:
12163 'abs acos ambient area asin atan atmosphere attribute calculatenormal ceil cellnoise ' +
12164 'clamp comp concat cos degrees depth Deriv diffuse distance Du Dv environment exp ' +
12165 'faceforward filterstep floor format fresnel incident length lightsource log match ' +
12166 'max min mod noise normalize ntransform opposite option phong pnoise pow printf ' +
12167 'ptlined radians random reflect refract renderinfo round setcomp setxcomp setycomp ' +
12168 'setzcomp shadow sign sin smoothstep specular specularbrdf spline sqrt step tan ' +
12169 'texture textureinfo trace transform vtransform xcomp ycomp zcomp'
12170 },
12171 illegal: '</',
12172 contains: [
12173 hljs.C_LINE_COMMENT_MODE,
12174 hljs.C_BLOCK_COMMENT_MODE,
12175 hljs.QUOTE_STRING_MODE,
12176 hljs.APOS_STRING_MODE,
12177 hljs.C_NUMBER_MODE,
12178 {
12179 className: 'meta',
12180 begin: '#', end: '$'
12181 },
12182 {
12183 className: 'class',
12184 beginKeywords: 'surface displacement light volume imager', end: '\\('
12185 },
12186 {
12187 beginKeywords: 'illuminate illuminance gather', end: '\\('
12188 }
12189 ]
12190 };
12191}
12192},{name:"ruby",create:/*
12193Language: Ruby
12194Author: Anton Kovalyov <anton@kovalyov.net>
12195Contributors: Peter Leonov <gojpeg@yandex.ru>, Vasily Polovnyov <vast@whiteants.net>, Loren Segal <lsegal@soen.ca>, Pascal Hurni <phi@ruby-reactive.org>, Cedric Sohrauer <sohrauer@googlemail.com>
12196Category: common
12197*/
12198
12199function(hljs) {
12200 var RUBY_METHOD_RE = '[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?';
12201 var RUBY_KEYWORDS =
12202 'and false then defined module in return redo if BEGIN retry end for true self when ' +
12203 'next until do begin unless END rescue nil else break undef not super class case ' +
12204 'require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor';
12205 var YARDOCTAG = {
12206 className: 'doctag',
12207 begin: '@[A-Za-z]+'
12208 };
12209 var IRB_OBJECT = {
12210 begin: '#<', end: '>'
12211 };
12212 var COMMENT_MODES = [
12213 hljs.COMMENT(
12214 '#',
12215 '$',
12216 {
12217 contains: [YARDOCTAG]
12218 }
12219 ),
12220 hljs.COMMENT(
12221 '^\\=begin',
12222 '^\\=end',
12223 {
12224 contains: [YARDOCTAG],
12225 relevance: 10
12226 }
12227 ),
12228 hljs.COMMENT('^__END__', '\\n$')
12229 ];
12230 var SUBST = {
12231 className: 'subst',
12232 begin: '#\\{', end: '}',
12233 keywords: RUBY_KEYWORDS
12234 };
12235 var STRING = {
12236 className: 'string',
12237 contains: [hljs.BACKSLASH_ESCAPE, SUBST],
12238 variants: [
12239 {begin: /'/, end: /'/},
12240 {begin: /"/, end: /"/},
12241 {begin: /`/, end: /`/},
12242 {begin: '%[qQwWx]?\\(', end: '\\)'},
12243 {begin: '%[qQwWx]?\\[', end: '\\]'},
12244 {begin: '%[qQwWx]?{', end: '}'},
12245 {begin: '%[qQwWx]?<', end: '>'},
12246 {begin: '%[qQwWx]?/', end: '/'},
12247 {begin: '%[qQwWx]?%', end: '%'},
12248 {begin: '%[qQwWx]?-', end: '-'},
12249 {begin: '%[qQwWx]?\\|', end: '\\|'},
12250 {
12251 // \B in the beginning suppresses recognition of ?-sequences where ?
12252 // is the last character of a preceding identifier, as in: `func?4`
12253 begin: /\B\?(\\\d{1,3}|\\x[A-Fa-f0-9]{1,2}|\\u[A-Fa-f0-9]{4}|\\?\S)\b/
12254 }
12255 ]
12256 };
12257 var PARAMS = {
12258 className: 'params',
12259 begin: '\\(', end: '\\)', endsParent: true,
12260 keywords: RUBY_KEYWORDS
12261 };
12262
12263 var RUBY_DEFAULT_CONTAINS = [
12264 STRING,
12265 IRB_OBJECT,
12266 {
12267 className: 'class',
12268 beginKeywords: 'class module', end: '$|;',
12269 illegal: /=/,
12270 contains: [
12271 hljs.inherit(hljs.TITLE_MODE, {begin: '[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?'}),
12272 {
12273 begin: '<\\s*',
12274 contains: [{
12275 begin: '(' + hljs.IDENT_RE + '::)?' + hljs.IDENT_RE
12276 }]
12277 }
12278 ].concat(COMMENT_MODES)
12279 },
12280 {
12281 className: 'function',
12282 beginKeywords: 'def', end: '$|;',
12283 contains: [
12284 hljs.inherit(hljs.TITLE_MODE, {begin: RUBY_METHOD_RE}),
12285 PARAMS
12286 ].concat(COMMENT_MODES)
12287 },
12288 {
12289 className: 'symbol',
12290 begin: hljs.UNDERSCORE_IDENT_RE + '(\\!|\\?)?:',
12291 relevance: 0
12292 },
12293 {
12294 className: 'symbol',
12295 begin: ':',
12296 contains: [STRING, {begin: RUBY_METHOD_RE}],
12297 relevance: 0
12298 },
12299 {
12300 className: 'number',
12301 begin: '(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b',
12302 relevance: 0
12303 },
12304 {
12305 begin: '(\\$\\W)|((\\$|\\@\\@?)(\\w+))' // variables
12306 },
12307 { // regexp container
12308 begin: '(' + hljs.RE_STARTERS_RE + ')\\s*',
12309 contains: [
12310 IRB_OBJECT,
12311 {
12312 className: 'regexp',
12313 contains: [hljs.BACKSLASH_ESCAPE, SUBST],
12314 illegal: /\n/,
12315 variants: [
12316 {begin: '/', end: '/[a-z]*'},
12317 {begin: '%r{', end: '}[a-z]*'},
12318 {begin: '%r\\(', end: '\\)[a-z]*'},
12319 {begin: '%r!', end: '![a-z]*'},
12320 {begin: '%r\\[', end: '\\][a-z]*'}
12321 ]
12322 }
12323 ].concat(COMMENT_MODES),
12324 relevance: 0
12325 }
12326 ].concat(COMMENT_MODES);
12327
12328 SUBST.contains = RUBY_DEFAULT_CONTAINS;
12329 PARAMS.contains = RUBY_DEFAULT_CONTAINS;
12330
12331 var SIMPLE_PROMPT = "[>?]>";
12332 var DEFAULT_PROMPT = "[\\w#]+\\(\\w+\\):\\d+:\\d+>";
12333 var RVM_PROMPT = "(\\w+-)?\\d+\\.\\d+\\.\\d(p\\d+)?[^>]+>";
12334
12335 var IRB_DEFAULT = [
12336 {
12337 begin: /^\s*=>/,
12338 starts: {
12339 end: '$', contains: RUBY_DEFAULT_CONTAINS
12340 }
12341 },
12342 {
12343 className: 'meta',
12344 begin: '^('+SIMPLE_PROMPT+"|"+DEFAULT_PROMPT+'|'+RVM_PROMPT+')',
12345 starts: {
12346 end: '$', contains: RUBY_DEFAULT_CONTAINS
12347 }
12348 }
12349 ];
12350
12351 return {
12352 aliases: ['rb', 'gemspec', 'podspec', 'thor', 'irb'],
12353 keywords: RUBY_KEYWORDS,
12354 illegal: /\/\*/,
12355 contains: COMMENT_MODES.concat(IRB_DEFAULT).concat(RUBY_DEFAULT_CONTAINS)
12356 };
12357}
12358},{name:"ruleslanguage",create:/*
12359Language: Oracle Rules Language
12360Author: Jason Jacobson <jason.a.jacobson@gmail.com>
12361Description: The Oracle Utilities Rules Language is used to program the Oracle Utilities Applications acquired from LODESTAR Corporation. The products include Billing Component, LPSS, Pricing Component etc. through version 1.6.1.
12362Category: enterprise
12363*/
12364
12365function(hljs) {
12366 return {
12367 keywords: {
12368 keyword: 'BILL_PERIOD BILL_START BILL_STOP RS_EFFECTIVE_START RS_EFFECTIVE_STOP RS_JURIS_CODE RS_OPCO_CODE ' +
12369 'INTDADDATTRIBUTE|5 INTDADDVMSG|5 INTDBLOCKOP|5 INTDBLOCKOPNA|5 INTDCLOSE|5 INTDCOUNT|5 ' +
12370 'INTDCOUNTSTATUSCODE|5 INTDCREATEMASK|5 INTDCREATEDAYMASK|5 INTDCREATEFACTORMASK|5 ' +
12371 'INTDCREATEHANDLE|5 INTDCREATEOVERRIDEDAYMASK|5 INTDCREATEOVERRIDEMASK|5 ' +
12372 'INTDCREATESTATUSCODEMASK|5 INTDCREATETOUPERIOD|5 INTDDELETE|5 INTDDIPTEST|5 INTDEXPORT|5 ' +
12373 'INTDGETERRORCODE|5 INTDGETERRORMESSAGE|5 INTDISEQUAL|5 INTDJOIN|5 INTDLOAD|5 INTDLOADACTUALCUT|5 ' +
12374 'INTDLOADDATES|5 INTDLOADHIST|5 INTDLOADLIST|5 INTDLOADLISTDATES|5 INTDLOADLISTENERGY|5 ' +
12375 'INTDLOADLISTHIST|5 INTDLOADRELATEDCHANNEL|5 INTDLOADSP|5 INTDLOADSTAGING|5 INTDLOADUOM|5 ' +
12376 'INTDLOADUOMDATES|5 INTDLOADUOMHIST|5 INTDLOADVERSION|5 INTDOPEN|5 INTDREADFIRST|5 INTDREADNEXT|5 ' +
12377 'INTDRECCOUNT|5 INTDRELEASE|5 INTDREPLACE|5 INTDROLLAVG|5 INTDROLLPEAK|5 INTDSCALAROP|5 INTDSCALE|5 ' +
12378 'INTDSETATTRIBUTE|5 INTDSETDSTPARTICIPANT|5 INTDSETSTRING|5 INTDSETVALUE|5 INTDSETVALUESTATUS|5 ' +
12379 'INTDSHIFTSTARTTIME|5 INTDSMOOTH|5 INTDSORT|5 INTDSPIKETEST|5 INTDSUBSET|5 INTDTOU|5 ' +
12380 'INTDTOURELEASE|5 INTDTOUVALUE|5 INTDUPDATESTATS|5 INTDVALUE|5 STDEV INTDDELETEEX|5 ' +
12381 'INTDLOADEXACTUAL|5 INTDLOADEXCUT|5 INTDLOADEXDATES|5 INTDLOADEX|5 INTDLOADEXRELATEDCHANNEL|5 ' +
12382 'INTDSAVEEX|5 MVLOAD|5 MVLOADACCT|5 MVLOADACCTDATES|5 MVLOADACCTHIST|5 MVLOADDATES|5 MVLOADHIST|5 ' +
12383 'MVLOADLIST|5 MVLOADLISTDATES|5 MVLOADLISTHIST|5 IF FOR NEXT DONE SELECT END CALL ABORT CLEAR CHANNEL FACTOR LIST NUMBER ' +
12384 'OVERRIDE SET WEEK DISTRIBUTIONNODE ELSE WHEN THEN OTHERWISE IENUM CSV INCLUDE LEAVE RIDER SAVE DELETE ' +
12385 'NOVALUE SECTION WARN SAVE_UPDATE DETERMINANT LABEL REPORT REVENUE EACH ' +
12386 'IN FROM TOTAL CHARGE BLOCK AND OR CSV_FILE RATE_CODE AUXILIARY_DEMAND ' +
12387 'UIDACCOUNT RS BILL_PERIOD_SELECT HOURS_PER_MONTH INTD_ERROR_STOP SEASON_SCHEDULE_NAME ' +
12388 'ACCOUNTFACTOR ARRAYUPPERBOUND CALLSTOREDPROC GETADOCONNECTION GETCONNECT GETDATASOURCE ' +
12389 'GETQUALIFIER GETUSERID HASVALUE LISTCOUNT LISTOP LISTUPDATE LISTVALUE PRORATEFACTOR RSPRORATE ' +
12390 'SETBINPATH SETDBMONITOR WQ_OPEN BILLINGHOURS DATE DATEFROMFLOAT DATETIMEFROMSTRING ' +
12391 'DATETIMETOSTRING DATETOFLOAT DAY DAYDIFF DAYNAME DBDATETIME HOUR MINUTE MONTH MONTHDIFF ' +
12392 'MONTHHOURS MONTHNAME ROUNDDATE SAMEWEEKDAYLASTYEAR SECOND WEEKDAY WEEKDIFF YEAR YEARDAY ' +
12393 'YEARSTR COMPSUM HISTCOUNT HISTMAX HISTMIN HISTMINNZ HISTVALUE MAXNRANGE MAXRANGE MINRANGE ' +
12394 'COMPIKVA COMPKVA COMPKVARFROMKQKW COMPLF IDATTR FLAG LF2KW LF2KWH MAXKW POWERFACTOR ' +
12395 'READING2USAGE AVGSEASON MAXSEASON MONTHLYMERGE SEASONVALUE SUMSEASON ACCTREADDATES ' +
12396 'ACCTTABLELOAD CONFIGADD CONFIGGET CREATEOBJECT CREATEREPORT EMAILCLIENT EXPBLKMDMUSAGE ' +
12397 'EXPMDMUSAGE EXPORT_USAGE FACTORINEFFECT GETUSERSPECIFIEDSTOP INEFFECT ISHOLIDAY RUNRATE ' +
12398 'SAVE_PROFILE SETREPORTTITLE USEREXIT WATFORRUNRATE TO TABLE ACOS ASIN ATAN ATAN2 BITAND CEIL ' +
12399 'COS COSECANT COSH COTANGENT DIVQUOT DIVREM EXP FABS FLOOR FMOD FREPM FREXPN LOG LOG10 MAX MAXN ' +
12400 'MIN MINNZ MODF POW ROUND ROUND2VALUE ROUNDINT SECANT SIN SINH SQROOT TAN TANH FLOAT2STRING ' +
12401 'FLOAT2STRINGNC INSTR LEFT LEN LTRIM MID RIGHT RTRIM STRING STRINGNC TOLOWER TOUPPER TRIM ' +
12402 'NUMDAYS READ_DATE STAGING',
12403 built_in: 'IDENTIFIER OPTIONS XML_ELEMENT XML_OP XML_ELEMENT_OF DOMDOCCREATE DOMDOCLOADFILE DOMDOCLOADXML ' +
12404 'DOMDOCSAVEFILE DOMDOCGETROOT DOMDOCADDPI DOMNODEGETNAME DOMNODEGETTYPE DOMNODEGETVALUE DOMNODEGETCHILDCT ' +
12405 'DOMNODEGETFIRSTCHILD DOMNODEGETSIBLING DOMNODECREATECHILDELEMENT DOMNODESETATTRIBUTE ' +
12406 'DOMNODEGETCHILDELEMENTCT DOMNODEGETFIRSTCHILDELEMENT DOMNODEGETSIBLINGELEMENT DOMNODEGETATTRIBUTECT ' +
12407 'DOMNODEGETATTRIBUTEI DOMNODEGETATTRIBUTEBYNAME DOMNODEGETBYNAME'
12408 },
12409 contains: [
12410 hljs.C_LINE_COMMENT_MODE,
12411 hljs.C_BLOCK_COMMENT_MODE,
12412 hljs.APOS_STRING_MODE,
12413 hljs.QUOTE_STRING_MODE,
12414 hljs.C_NUMBER_MODE,
12415 {
12416 className: 'literal',
12417 variants: [
12418 {begin: '#\\s+[a-zA-Z\\ \\.]*', relevance: 0}, // looks like #-comment
12419 {begin: '#[a-zA-Z\\ \\.]+'}
12420 ]
12421 }
12422 ]
12423 };
12424}
12425},{name:"rust",create:/*
12426Language: Rust
12427Author: Andrey Vlasovskikh <andrey.vlasovskikh@gmail.com>
12428Contributors: Roman Shmatov <romanshmatov@gmail.com>
12429Category: system
12430*/
12431
12432function(hljs) {
12433 var NUM_SUFFIX = '([uif](8|16|32|64|size))\?';
12434 var BLOCK_COMMENT = hljs.inherit(hljs.C_BLOCK_COMMENT_MODE);
12435 BLOCK_COMMENT.contains.push('self');
12436 var BUILTINS =
12437 // prelude
12438 'Copy Send Sized Sync Drop Fn FnMut FnOnce drop Box ToOwned Clone ' +
12439 'PartialEq PartialOrd Eq Ord AsRef AsMut Into From Default Iterator ' +
12440 'Extend IntoIterator DoubleEndedIterator ExactSizeIterator Option ' +
12441 'Some None Result Ok Err SliceConcatExt String ToString Vec ' +
12442 // macros
12443 'assert! assert_eq! bitflags! bytes! cfg! col! concat! concat_idents! ' +
12444 'debug_assert! debug_assert_eq! env! panic! file! format! format_args! ' +
12445 'include_bin! include_str! line! local_data_key! module_path! ' +
12446 'option_env! print! println! select! stringify! try! unimplemented! ' +
12447 'unreachable! vec! write! writeln!';
12448 return {
12449 aliases: ['rs'],
12450 keywords: {
12451 keyword:
12452 'alignof as be box break const continue crate do else enum extern ' +
12453 'false fn for if impl in let loop match mod mut offsetof once priv ' +
12454 'proc pub pure ref return self Self sizeof static struct super trait true ' +
12455 'type typeof unsafe unsized use virtual while where yield ' +
12456 'int i8 i16 i32 i64 ' +
12457 'uint u8 u32 u64 ' +
12458 'float f32 f64 ' +
12459 'str char bool',
12460 literal:
12461 'true false',
12462 built_in:
12463 BUILTINS
12464 },
12465 lexemes: hljs.IDENT_RE + '!?',
12466 illegal: '</',
12467 contains: [
12468 hljs.C_LINE_COMMENT_MODE,
12469 BLOCK_COMMENT,
12470 hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null}),
12471 {
12472 className: 'string',
12473 variants: [
12474 { begin: /r(#*)".*?"\1(?!#)/ },
12475 { begin: /'\\?(x\w{2}|u\w{4}|U\w{8}|.)'/ },
12476 ]
12477 },
12478 {
12479 className: 'symbol',
12480 begin: /'[a-zA-Z_][a-zA-Z0-9_]*/
12481 },
12482 {
12483 className: 'number',
12484 variants: [
12485 { begin: '\\b0b([01_]+)' + NUM_SUFFIX },
12486 { begin: '\\b0o([0-7_]+)' + NUM_SUFFIX },
12487 { begin: '\\b0x([A-Fa-f0-9_]+)' + NUM_SUFFIX },
12488 { begin: '\\b(\\d[\\d_]*(\\.[0-9_]+)?([eE][+-]?[0-9_]+)?)' +
12489 NUM_SUFFIX
12490 }
12491 ],
12492 relevance: 0
12493 },
12494 {
12495 className: 'function',
12496 beginKeywords: 'fn', end: '(\\(|<)', excludeEnd: true,
12497 contains: [hljs.UNDERSCORE_TITLE_MODE]
12498 },
12499 {
12500 className: 'meta',
12501 begin: '#\\!?\\[', end: '\\]'
12502 },
12503 {
12504 className: 'class',
12505 beginKeywords: 'type', end: '(=|<)',
12506 contains: [hljs.UNDERSCORE_TITLE_MODE],
12507 illegal: '\\S'
12508 },
12509 {
12510 className: 'class',
12511 beginKeywords: 'trait enum', end: '{',
12512 contains: [
12513 hljs.inherit(hljs.UNDERSCORE_TITLE_MODE, {endsParent: true})
12514 ],
12515 illegal: '[\\w\\d]'
12516 },
12517 {
12518 begin: hljs.IDENT_RE + '::',
12519 keywords: {built_in: BUILTINS}
12520 },
12521 {
12522 begin: '->'
12523 }
12524 ]
12525 };
12526}
12527},{name:"scala",create:/*
12528Language: Scala
12529Category: functional
12530Author: Jan Berkel <jan.berkel@gmail.com>
12531Contributors: Erik Osheim <d_m@plastic-idolatry.com>
12532*/
12533
12534function(hljs) {
12535
12536 var ANNOTATION = { className: 'meta', begin: '@[A-Za-z]+' };
12537
12538 // used in strings for escaping/interpolation/substitution
12539 var SUBST = {
12540 className: 'subst',
12541 variants: [
12542 {begin: '\\$[A-Za-z0-9_]+'},
12543 {begin: '\\${', end: '}'}
12544 ]
12545 };
12546
12547 var STRING = {
12548 className: 'string',
12549 variants: [
12550 {
12551 begin: '"', end: '"',
12552 illegal: '\\n',
12553 contains: [hljs.BACKSLASH_ESCAPE]
12554 },
12555 {
12556 begin: '"""', end: '"""',
12557 relevance: 10
12558 },
12559 {
12560 begin: '[a-z]+"', end: '"',
12561 illegal: '\\n',
12562 contains: [hljs.BACKSLASH_ESCAPE, SUBST]
12563 },
12564 {
12565 className: 'string',
12566 begin: '[a-z]+"""', end: '"""',
12567 contains: [SUBST],
12568 relevance: 10
12569 }
12570 ]
12571
12572 };
12573
12574 var SYMBOL = {
12575 className: 'symbol',
12576 begin: '\'\\w[\\w\\d_]*(?!\')'
12577 };
12578
12579 var TYPE = {
12580 className: 'type',
12581 begin: '\\b[A-Z][A-Za-z0-9_]*',
12582 relevance: 0
12583 };
12584
12585 var NAME = {
12586 className: 'title',
12587 begin: /[^0-9\n\t "'(),.`{}\[\]:;][^\n\t "'(),.`{}\[\]:;]+|[^0-9\n\t "'(),.`{}\[\]:;=]/,
12588 relevance: 0
12589 };
12590
12591 var CLASS = {
12592 className: 'class',
12593 beginKeywords: 'class object trait type',
12594 end: /[:={\[\n;]/,
12595 excludeEnd: true,
12596 contains: [
12597 {
12598 beginKeywords: 'extends with',
12599 relevance: 10
12600 },
12601 {
12602 begin: /\[/,
12603 end: /\]/,
12604 excludeBegin: true,
12605 excludeEnd: true,
12606 relevance: 0,
12607 contains: [TYPE]
12608 },
12609 {
12610 className: 'params',
12611 begin: /\(/,
12612 end: /\)/,
12613 excludeBegin: true,
12614 excludeEnd: true,
12615 relevance: 0,
12616 contains: [TYPE]
12617 },
12618 NAME
12619 ]
12620 };
12621
12622 var METHOD = {
12623 className: 'function',
12624 beginKeywords: 'def',
12625 end: /[:={\[(\n;]/,
12626 excludeEnd: true,
12627 contains: [NAME]
12628 };
12629
12630 return {
12631 keywords: {
12632 literal: 'true false null',
12633 keyword: 'type yield lazy override def with val var sealed abstract private trait object if forSome for while throw finally protected extends import final return else break new catch super class case package default try this match continue throws implicit'
12634 },
12635 contains: [
12636 hljs.C_LINE_COMMENT_MODE,
12637 hljs.C_BLOCK_COMMENT_MODE,
12638 STRING,
12639 SYMBOL,
12640 TYPE,
12641 METHOD,
12642 CLASS,
12643 hljs.C_NUMBER_MODE,
12644 ANNOTATION
12645 ]
12646 };
12647}
12648},{name:"scheme",create:/*
12649Language: Scheme
12650Description: Keywords based on http://community.schemewiki.org/?scheme-keywords
12651Author: JP Verkamp <me@jverkamp.com>
12652Contributors: Ivan Sagalaev <maniac@softwaremaniacs.org>
12653Origin: clojure.js
12654Category: lisp
12655*/
12656
12657function(hljs) {
12658 var SCHEME_IDENT_RE = '[^\\(\\)\\[\\]\\{\\}",\'`;#|\\\\\\s]+';
12659 var SCHEME_SIMPLE_NUMBER_RE = '(\\-|\\+)?\\d+([./]\\d+)?';
12660 var SCHEME_COMPLEX_NUMBER_RE = SCHEME_SIMPLE_NUMBER_RE + '[+\\-]' + SCHEME_SIMPLE_NUMBER_RE + 'i';
12661 var BUILTINS = {
12662 'builtin-name':
12663 'case-lambda call/cc class define-class exit-handler field import ' +
12664 'inherit init-field interface let*-values let-values let/ec mixin ' +
12665 'opt-lambda override protect provide public rename require ' +
12666 'require-for-syntax syntax syntax-case syntax-error unit/sig unless ' +
12667 'when with-syntax and begin call-with-current-continuation ' +
12668 'call-with-input-file call-with-output-file case cond define ' +
12669 'define-syntax delay do dynamic-wind else for-each if lambda let let* ' +
12670 'let-syntax letrec letrec-syntax map or syntax-rules \' * + , ,@ - ... / ' +
12671 '; < <= = => > >= ` abs acos angle append apply asin assoc assq assv atan ' +
12672 'boolean? caar cadr call-with-input-file call-with-output-file ' +
12673 'call-with-values car cdddar cddddr cdr ceiling char->integer ' +
12674 'char-alphabetic? char-ci<=? char-ci<? char-ci=? char-ci>=? char-ci>? ' +
12675 'char-downcase char-lower-case? char-numeric? char-ready? char-upcase ' +
12676 'char-upper-case? char-whitespace? char<=? char<? char=? char>=? char>? ' +
12677 'char? close-input-port close-output-port complex? cons cos ' +
12678 'current-input-port current-output-port denominator display eof-object? ' +
12679 'eq? equal? eqv? eval even? exact->inexact exact? exp expt floor ' +
12680 'force gcd imag-part inexact->exact inexact? input-port? integer->char ' +
12681 'integer? interaction-environment lcm length list list->string ' +
12682 'list->vector list-ref list-tail list? load log magnitude make-polar ' +
12683 'make-rectangular make-string make-vector max member memq memv min ' +
12684 'modulo negative? newline not null-environment null? number->string ' +
12685 'number? numerator odd? open-input-file open-output-file output-port? ' +
12686 'pair? peek-char port? positive? procedure? quasiquote quote quotient ' +
12687 'rational? rationalize read read-char real-part real? remainder reverse ' +
12688 'round scheme-report-environment set! set-car! set-cdr! sin sqrt string ' +
12689 'string->list string->number string->symbol string-append string-ci<=? ' +
12690 'string-ci<? string-ci=? string-ci>=? string-ci>? string-copy ' +
12691 'string-fill! string-length string-ref string-set! string<=? string<? ' +
12692 'string=? string>=? string>? string? substring symbol->string symbol? ' +
12693 'tan transcript-off transcript-on truncate values vector ' +
12694 'vector->list vector-fill! vector-length vector-ref vector-set! ' +
12695 'with-input-from-file with-output-to-file write write-char zero?'
12696 };
12697
12698 var SHEBANG = {
12699 className: 'meta',
12700 begin: '^#!',
12701 end: '$'
12702 };
12703
12704 var LITERAL = {
12705 className: 'literal',
12706 begin: '(#t|#f|#\\\\' + SCHEME_IDENT_RE + '|#\\\\.)'
12707 };
12708
12709 var NUMBER = {
12710 className: 'number',
12711 variants: [
12712 { begin: SCHEME_SIMPLE_NUMBER_RE, relevance: 0 },
12713 { begin: SCHEME_COMPLEX_NUMBER_RE, relevance: 0 },
12714 { begin: '#b[0-1]+(/[0-1]+)?' },
12715 { begin: '#o[0-7]+(/[0-7]+)?' },
12716 { begin: '#x[0-9a-f]+(/[0-9a-f]+)?' }
12717 ]
12718 };
12719
12720 var STRING = hljs.QUOTE_STRING_MODE;
12721
12722 var REGULAR_EXPRESSION = {
12723 className: 'regexp',
12724 begin: '#[pr]x"',
12725 end: '[^\\\\]"'
12726 };
12727
12728 var COMMENT_MODES = [
12729 hljs.COMMENT(
12730 ';',
12731 '$',
12732 {
12733 relevance: 0
12734 }
12735 ),
12736 hljs.COMMENT('#\\|', '\\|#')
12737 ];
12738
12739 var IDENT = {
12740 begin: SCHEME_IDENT_RE,
12741 relevance: 0
12742 };
12743
12744 var QUOTED_IDENT = {
12745 className: 'symbol',
12746 begin: '\'' + SCHEME_IDENT_RE
12747 };
12748
12749 var BODY = {
12750 endsWithParent: true,
12751 relevance: 0
12752 };
12753
12754 var LIST = {
12755 variants: [
12756 { begin: '\\(', end: '\\)' },
12757 { begin: '\\[', end: '\\]' }
12758 ],
12759 contains: [
12760 {
12761 className: 'name',
12762 begin: SCHEME_IDENT_RE,
12763 lexemes: SCHEME_IDENT_RE,
12764 keywords: BUILTINS
12765 },
12766 BODY
12767 ]
12768 };
12769
12770 BODY.contains = [LITERAL, NUMBER, STRING, IDENT, QUOTED_IDENT, LIST].concat(COMMENT_MODES);
12771
12772 return {
12773 illegal: /\S/,
12774 contains: [SHEBANG, NUMBER, STRING, QUOTED_IDENT, LIST].concat(COMMENT_MODES)
12775 };
12776}
12777},{name:"scilab",create:/*
12778Language: Scilab
12779Author: Sylvestre Ledru <sylvestre.ledru@scilab-enterprises.com>
12780Origin: matlab.js
12781Description: Scilab is a port from Matlab
12782Category: scientific
12783*/
12784
12785function(hljs) {
12786
12787 var COMMON_CONTAINS = [
12788 hljs.C_NUMBER_MODE,
12789 {
12790 className: 'string',
12791 begin: '\'|\"', end: '\'|\"',
12792 contains: [hljs.BACKSLASH_ESCAPE, {begin: '\'\''}]
12793 }
12794 ];
12795
12796 return {
12797 aliases: ['sci'],
12798 lexemes: /%?\w+/,
12799 keywords: {
12800 keyword: 'abort break case clear catch continue do elseif else endfunction end for function '+
12801 'global if pause return resume select try then while',
12802 literal:
12803 '%f %F %t %T %pi %eps %inf %nan %e %i %z %s',
12804 built_in: // Scilab has more than 2000 functions. Just list the most commons
12805 'abs and acos asin atan ceil cd chdir clearglobal cosh cos cumprod deff disp error '+
12806 'exec execstr exists exp eye gettext floor fprintf fread fsolve imag isdef isempty '+
12807 'isinfisnan isvector lasterror length load linspace list listfiles log10 log2 log '+
12808 'max min msprintf mclose mopen ones or pathconvert poly printf prod pwd rand real '+
12809 'round sinh sin size gsort sprintf sqrt strcat strcmps tring sum system tanh tan '+
12810 'type typename warning zeros matrix'
12811 },
12812 illegal: '("|#|/\\*|\\s+/\\w+)',
12813 contains: [
12814 {
12815 className: 'function',
12816 beginKeywords: 'function', end: '$',
12817 contains: [
12818 hljs.UNDERSCORE_TITLE_MODE,
12819 {
12820 className: 'params',
12821 begin: '\\(', end: '\\)'
12822 }
12823 ]
12824 },
12825 {
12826 begin: '[a-zA-Z_][a-zA-Z_0-9]*(\'+[\\.\']*|[\\.\']+)', end: '',
12827 relevance: 0
12828 },
12829 {
12830 begin: '\\[', end: '\\]\'*[\\.\']*',
12831 relevance: 0,
12832 contains: COMMON_CONTAINS
12833 },
12834 hljs.COMMENT('//', '$')
12835 ].concat(COMMON_CONTAINS)
12836 };
12837}
12838},{name:"scss",create:/*
12839Language: SCSS
12840Author: Kurt Emch <kurt@kurtemch.com>
12841Category: css
12842*/
12843function(hljs) {
12844 var IDENT_RE = '[a-zA-Z-][a-zA-Z0-9_-]*';
12845 var VARIABLE = {
12846 className: 'variable',
12847 begin: '(\\$' + IDENT_RE + ')\\b'
12848 };
12849 var HEXCOLOR = {
12850 className: 'number', begin: '#[0-9A-Fa-f]+'
12851 };
12852 var DEF_INTERNALS = {
12853 className: 'attribute',
12854 begin: '[A-Z\\_\\.\\-]+', end: ':',
12855 excludeEnd: true,
12856 illegal: '[^\\s]',
12857 starts: {
12858 endsWithParent: true, excludeEnd: true,
12859 contains: [
12860 HEXCOLOR,
12861 hljs.CSS_NUMBER_MODE,
12862 hljs.QUOTE_STRING_MODE,
12863 hljs.APOS_STRING_MODE,
12864 hljs.C_BLOCK_COMMENT_MODE,
12865 {
12866 className: 'meta', begin: '!important'
12867 }
12868 ]
12869 }
12870 };
12871 return {
12872 case_insensitive: true,
12873 illegal: '[=/|\']',
12874 contains: [
12875 hljs.C_LINE_COMMENT_MODE,
12876 hljs.C_BLOCK_COMMENT_MODE,
12877 {
12878 className: 'selector-id', begin: '\\#[A-Za-z0-9_-]+',
12879 relevance: 0
12880 },
12881 {
12882 className: 'selector-class', begin: '\\.[A-Za-z0-9_-]+',
12883 relevance: 0
12884 },
12885 {
12886 className: 'selector-attr', begin: '\\[', end: '\\]',
12887 illegal: '$'
12888 },
12889 {
12890 className: 'selector-tag', // begin: IDENT_RE, end: '[,|\\s]'
12891 begin: '\\b(a|abbr|acronym|address|area|article|aside|audio|b|base|big|blockquote|body|br|button|canvas|caption|cite|code|col|colgroup|command|datalist|dd|del|details|dfn|div|dl|dt|em|embed|fieldset|figcaption|figure|footer|form|frame|frameset|(h[1-6])|head|header|hgroup|hr|html|i|iframe|img|input|ins|kbd|keygen|label|legend|li|link|map|mark|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|pre|progress|q|rp|rt|ruby|samp|script|section|select|small|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|ul|var|video)\\b',
12892 relevance: 0
12893 },
12894 {
12895 begin: ':(visited|valid|root|right|required|read-write|read-only|out-range|optional|only-of-type|only-child|nth-of-type|nth-last-of-type|nth-last-child|nth-child|not|link|left|last-of-type|last-child|lang|invalid|indeterminate|in-range|hover|focus|first-of-type|first-line|first-letter|first-child|first|enabled|empty|disabled|default|checked|before|after|active)'
12896 },
12897 {
12898 begin: '::(after|before|choices|first-letter|first-line|repeat-index|repeat-item|selection|value)'
12899 },
12900 VARIABLE,
12901 {
12902 className: 'attribute',
12903 begin: '\\b(z-index|word-wrap|word-spacing|word-break|width|widows|white-space|visibility|vertical-align|unicode-bidi|transition-timing-function|transition-property|transition-duration|transition-delay|transition|transform-style|transform-origin|transform|top|text-underline-position|text-transform|text-shadow|text-rendering|text-overflow|text-indent|text-decoration-style|text-decoration-line|text-decoration-color|text-decoration|text-align-last|text-align|tab-size|table-layout|right|resize|quotes|position|pointer-events|perspective-origin|perspective|page-break-inside|page-break-before|page-break-after|padding-top|padding-right|padding-left|padding-bottom|padding|overflow-y|overflow-x|overflow-wrap|overflow|outline-width|outline-style|outline-offset|outline-color|outline|orphans|order|opacity|object-position|object-fit|normal|none|nav-up|nav-right|nav-left|nav-index|nav-down|min-width|min-height|max-width|max-height|mask|marks|margin-top|margin-right|margin-left|margin-bottom|margin|list-style-type|list-style-position|list-style-image|list-style|line-height|letter-spacing|left|justify-content|initial|inherit|ime-mode|image-orientation|image-resolution|image-rendering|icon|hyphens|height|font-weight|font-variant-ligatures|font-variant|font-style|font-stretch|font-size-adjust|font-size|font-language-override|font-kerning|font-feature-settings|font-family|font|float|flex-wrap|flex-shrink|flex-grow|flex-flow|flex-direction|flex-basis|flex|filter|empty-cells|display|direction|cursor|counter-reset|counter-increment|content|column-width|column-span|column-rule-width|column-rule-style|column-rule-color|column-rule|column-gap|column-fill|column-count|columns|color|clip-path|clip|clear|caption-side|break-inside|break-before|break-after|box-sizing|box-shadow|box-decoration-break|bottom|border-width|border-top-width|border-top-style|border-top-right-radius|border-top-left-radius|border-top-color|border-top|border-style|border-spacing|border-right-width|border-right-style|border-right-color|border-right|border-radius|border-left-width|border-left-style|border-left-color|border-left|border-image-width|border-image-source|border-image-slice|border-image-repeat|border-image-outset|border-image|border-color|border-collapse|border-bottom-width|border-bottom-style|border-bottom-right-radius|border-bottom-left-radius|border-bottom-color|border-bottom|border|background-size|background-repeat|background-position|background-origin|background-image|background-color|background-clip|background-attachment|background-blend-mode|background|backface-visibility|auto|animation-timing-function|animation-play-state|animation-name|animation-iteration-count|animation-fill-mode|animation-duration|animation-direction|animation-delay|animation|align-self|align-items|align-content)\\b',
12904 illegal: '[^\\s]'
12905 },
12906 {
12907 begin: '\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b'
12908 },
12909 {
12910 begin: ':', end: ';',
12911 contains: [
12912 VARIABLE,
12913 HEXCOLOR,
12914 hljs.CSS_NUMBER_MODE,
12915 hljs.QUOTE_STRING_MODE,
12916 hljs.APOS_STRING_MODE,
12917 {
12918 className: 'meta', begin: '!important'
12919 }
12920 ]
12921 },
12922 {
12923 begin: '@', end: '[{;]',
12924 keywords: 'mixin include extend for if else each while charset import debug media page content font-face namespace warn',
12925 contains: [
12926 VARIABLE,
12927 hljs.QUOTE_STRING_MODE,
12928 hljs.APOS_STRING_MODE,
12929 HEXCOLOR,
12930 hljs.CSS_NUMBER_MODE,
12931 {
12932 begin: '\\s[A-Za-z0-9_.-]+',
12933 relevance: 0
12934 }
12935 ]
12936 }
12937 ]
12938 };
12939}
12940},{name:"smali",create:/*
12941Language: Smali
12942Author: Dennis Titze <dennis.titze@gmail.com>
12943Description: Basic Smali highlighting
12944*/
12945
12946function(hljs) {
12947 var smali_instr_low_prio = ['add', 'and', 'cmp', 'cmpg', 'cmpl', 'const', 'div', 'double', 'float', 'goto', 'if', 'int', 'long', 'move', 'mul', 'neg', 'new', 'nop', 'not', 'or', 'rem', 'return', 'shl', 'shr', 'sput', 'sub', 'throw', 'ushr', 'xor'];
12948 var smali_instr_high_prio = ['aget', 'aput', 'array', 'check', 'execute', 'fill', 'filled', 'goto/16', 'goto/32', 'iget', 'instance', 'invoke', 'iput', 'monitor', 'packed', 'sget', 'sparse'];
12949 var smali_keywords = ['transient', 'constructor', 'abstract', 'final', 'synthetic', 'public', 'private', 'protected', 'static', 'bridge', 'system'];
12950 return {
12951 aliases: ['smali'],
12952 contains: [
12953 {
12954 className: 'string',
12955 begin: '"', end: '"',
12956 relevance: 0
12957 },
12958 hljs.COMMENT(
12959 '#',
12960 '$',
12961 {
12962 relevance: 0
12963 }
12964 ),
12965 {
12966 className: 'keyword',
12967 variants: [
12968 {begin: '\\s*\\.end\\s[a-zA-Z0-9]*'},
12969 {begin: '^[ ]*\\.[a-zA-Z]*', relevance: 0},
12970 {begin: '\\s:[a-zA-Z_0-9]*', relevance: 0},
12971 {begin: '\\s(' + smali_keywords.join('|') + ')'}
12972 ]
12973 },
12974 {
12975 className: 'built_in',
12976 variants : [
12977 {
12978 begin: '\\s('+smali_instr_low_prio.join('|')+')\\s'
12979 },
12980 {
12981 begin: '\\s('+smali_instr_low_prio.join('|')+')((\\-|/)[a-zA-Z0-9]+)+\\s',
12982 relevance: 10
12983 },
12984 {
12985 begin: '\\s('+smali_instr_high_prio.join('|')+')((\\-|/)[a-zA-Z0-9]+)*\\s',
12986 relevance: 10
12987 },
12988 ]
12989 },
12990 {
12991 className: 'class',
12992 begin: 'L[^\(;:\n]*;',
12993 relevance: 0
12994 },
12995 {
12996 begin: '[vp][0-9]+',
12997 }
12998 ]
12999 };
13000}
13001},{name:"smalltalk",create:/*
13002Language: Smalltalk
13003Author: Vladimir Gubarkov <xonixx@gmail.com>
13004*/
13005
13006function(hljs) {
13007 var VAR_IDENT_RE = '[a-z][a-zA-Z0-9_]*';
13008 var CHAR = {
13009 className: 'string',
13010 begin: '\\$.{1}'
13011 };
13012 var SYMBOL = {
13013 className: 'symbol',
13014 begin: '#' + hljs.UNDERSCORE_IDENT_RE
13015 };
13016 return {
13017 aliases: ['st'],
13018 keywords: 'self super nil true false thisContext', // only 6
13019 contains: [
13020 hljs.COMMENT('"', '"'),
13021 hljs.APOS_STRING_MODE,
13022 {
13023 className: 'type',
13024 begin: '\\b[A-Z][A-Za-z0-9_]*',
13025 relevance: 0
13026 },
13027 {
13028 begin: VAR_IDENT_RE + ':',
13029 relevance: 0
13030 },
13031 hljs.C_NUMBER_MODE,
13032 SYMBOL,
13033 CHAR,
13034 {
13035 // This looks more complicated than needed to avoid combinatorial
13036 // explosion under V8. It effectively means `| var1 var2 ... |` with
13037 // whitespace adjacent to `|` being optional.
13038 begin: '\\|[ ]*' + VAR_IDENT_RE + '([ ]+' + VAR_IDENT_RE + ')*[ ]*\\|',
13039 returnBegin: true, end: /\|/,
13040 illegal: /\S/,
13041 contains: [{begin: '(\\|[ ]*)?' + VAR_IDENT_RE}]
13042 },
13043 {
13044 begin: '\\#\\(', end: '\\)',
13045 contains: [
13046 hljs.APOS_STRING_MODE,
13047 CHAR,
13048 hljs.C_NUMBER_MODE,
13049 SYMBOL
13050 ]
13051 }
13052 ]
13053 };
13054}
13055},{name:"sml",create:/*
13056Language: SML
13057Author: Edwin Dalorzo <edwin@dalorzo.org>
13058Description: SML language definition.
13059Origin: ocaml.js
13060Category: functional
13061*/
13062function(hljs) {
13063 return {
13064 aliases: ['ml'],
13065 keywords: {
13066 keyword:
13067 /* according to Definition of Standard ML 97 */
13068 'abstype and andalso as case datatype do else end eqtype ' +
13069 'exception fn fun functor handle if in include infix infixr ' +
13070 'let local nonfix of op open orelse raise rec sharing sig ' +
13071 'signature struct structure then type val with withtype where while',
13072 built_in:
13073 /* built-in types according to basis library */
13074 'array bool char exn int list option order real ref string substring vector unit word',
13075 literal:
13076 'true false NONE SOME LESS EQUAL GREATER nil'
13077 },
13078 illegal: /\/\/|>>/,
13079 lexemes: '[a-z_]\\w*!?',
13080 contains: [
13081 {
13082 className: 'literal',
13083 begin: '\\[(\\|\\|)?\\]|\\(\\)'
13084 },
13085 hljs.COMMENT(
13086 '\\(\\*',
13087 '\\*\\)',
13088 {
13089 contains: ['self']
13090 }
13091 ),
13092 { /* type variable */
13093 className: 'symbol',
13094 begin: '\'[A-Za-z_](?!\')[\\w\']*'
13095 /* the grammar is ambiguous on how 'a'b should be interpreted but not the compiler */
13096 },
13097 { /* polymorphic variant */
13098 className: 'type',
13099 begin: '`[A-Z][\\w\']*'
13100 },
13101 { /* module or constructor */
13102 className: 'type',
13103 begin: '\\b[A-Z][\\w\']*',
13104 relevance: 0
13105 },
13106 { /* don't color identifiers, but safely catch all identifiers with '*/
13107 begin: '[a-z_]\\w*\'[\\w\']*'
13108 },
13109 hljs.inherit(hljs.APOS_STRING_MODE, {className: 'string', relevance: 0}),
13110 hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null}),
13111 {
13112 className: 'number',
13113 begin:
13114 '\\b(0[xX][a-fA-F0-9_]+[Lln]?|' +
13115 '0[oO][0-7_]+[Lln]?|' +
13116 '0[bB][01_]+[Lln]?|' +
13117 '[0-9][0-9_]*([Lln]|(\\.[0-9_]*)?([eE][-+]?[0-9_]+)?)?)',
13118 relevance: 0
13119 },
13120 {
13121 begin: /[-=]>/ // relevance booster
13122 }
13123 ]
13124 };
13125}
13126},{name:"sqf",create:/*
13127Language: SQF
13128Author: Søren Enevoldsen <senevoldsen90@gmail.com>
13129Description: Scripting language for the Arma game series
13130*/
13131
13132function(hljs) {
13133 var allCommands = ['!', '-', '+', '!=', '%', '&&', '*', '/', '=', '==', '>', '>=', '<', '<=', 'or', 'plus', '^', ':', '>>', 'abs', 'accTime', 'acos', 'action', 'actionKeys', 'actionKeysImages', 'actionKeysNames', 'actionKeysNamesArray', 'actionName', 'activateAddons', 'activatedAddons', 'activateKey', 'addAction', 'addBackpack', 'addBackpackCargo', 'addBackpackCargoGlobal', 'addBackpackGlobal', 'addCamShake', 'addCuratorAddons', 'addCuratorCameraArea', 'addCuratorEditableObjects', 'addCuratorEditingArea', 'addCuratorPoints', 'addEditorObject', 'addEventHandler', 'addGoggles', 'addGroupIcon', 'addHandgunItem', 'addHeadgear', 'addItem', 'addItemCargo', 'addItemCargoGlobal', 'addItemPool', 'addItemToBackpack', 'addItemToUniform', 'addItemToVest', 'addLiveStats', 'addMagazine', 'addMagazine array', 'addMagazineAmmoCargo', 'addMagazineCargo', 'addMagazineCargoGlobal', 'addMagazineGlobal', 'addMagazinePool', 'addMagazines', 'addMagazineTurret', 'addMenu', 'addMenuItem', 'addMissionEventHandler', 'addMPEventHandler', 'addMusicEventHandler', 'addPrimaryWeaponItem', 'addPublicVariableEventHandler', 'addRating', 'addResources', 'addScore', 'addScoreSide', 'addSecondaryWeaponItem', 'addSwitchableUnit', 'addTeamMember', 'addToRemainsCollector', 'addUniform', 'addVehicle', 'addVest', 'addWaypoint', 'addWeapon', 'addWeaponCargo', 'addWeaponCargoGlobal', 'addWeaponGlobal', 'addWeaponPool', 'addWeaponTurret', 'agent', 'agents', 'AGLToASL', 'aimedAtTarget', 'aimPos', 'airDensityRTD', 'airportSide', 'AISFinishHeal', 'alive', 'allControls', 'allCurators', 'allDead', 'allDeadMen', 'allDisplays', 'allGroups', 'allMapMarkers', 'allMines', 'allMissionObjects', 'allow3DMode', 'allowCrewInImmobile', 'allowCuratorLogicIgnoreAreas', 'allowDamage', 'allowDammage', 'allowFileOperations', 'allowFleeing', 'allowGetIn', 'allPlayers', 'allSites', 'allTurrets', 'allUnits', 'allUnitsUAV', 'allVariables', 'ammo', 'and', 'animate', 'animateDoor', 'animationPhase', 'animationState', 'append', 'armoryPoints', 'arrayIntersect', 'asin', 'ASLToAGL', 'ASLToATL', 'assert', 'assignAsCargo', 'assignAsCargoIndex', 'assignAsCommander', 'assignAsDriver', 'assignAsGunner', 'assignAsTurret', 'assignCurator', 'assignedCargo', 'assignedCommander', 'assignedDriver', 'assignedGunner', 'assignedItems', 'assignedTarget', 'assignedTeam', 'assignedVehicle', 'assignedVehicleRole', 'assignItem', 'assignTeam', 'assignToAirport', 'atan', 'atan2', 'atg', 'ATLToASL', 'attachedObject', 'attachedObjects', 'attachedTo', 'attachObject', 'attachTo', 'attackEnabled', 'backpack', 'backpackCargo', 'backpackContainer', 'backpackItems', 'backpackMagazines', 'backpackSpaceFor', 'behaviour', 'benchmark', 'binocular', 'blufor', 'boundingBox', 'boundingBoxReal', 'boundingCenter', 'breakOut', 'breakTo', 'briefingName', 'buildingExit', 'buildingPos', 'buttonAction', 'buttonSetAction', 'cadetMode', 'call', 'callExtension', 'camCommand', 'camCommit', 'camCommitPrepared', 'camCommitted', 'camConstuctionSetParams', 'camCreate', 'camDestroy', 'cameraEffect', 'cameraEffectEnableHUD', 'cameraInterest', 'cameraOn', 'cameraView', 'campaignConfigFile', 'camPreload', 'camPreloaded', 'camPrepareBank', 'camPrepareDir', 'camPrepareDive', 'camPrepareFocus', 'camPrepareFov', 'camPrepareFovRange', 'camPreparePos', 'camPrepareRelPos', 'camPrepareTarget', 'camSetBank', 'camSetDir', 'camSetDive', 'camSetFocus', 'camSetFov', 'camSetFovRange', 'camSetPos', 'camSetRelPos', 'camSetTarget', 'camTarget', 'camUseNVG', 'canAdd', 'canAddItemToBackpack', 'canAddItemToUniform', 'canAddItemToVest', 'cancelSimpleTaskDestination', 'canFire', 'canMove', 'canSlingLoad', 'canStand', 'canUnloadInCombat', 'captive', 'captiveNum', 'case', 'catch', 'cbChecked', 'cbSetChecked', 'ceil', 'cheatsEnabled', 'checkAIFeature', 'civilian', 'className', 'clearAllItemsFromBackpack', 'clearBackpackCargo', 'clearBackpackCargoGlobal', 'clearGroupIcons', 'clearItemCargo', 'clearItemCargoGlobal', 'clearItemPool', 'clearMagazineCargo', 'clearMagazineCargoGlobal', 'clearMagazinePool', 'clearOverlay', 'clearRadio', 'clearWeaponCargo', 'clearWeaponCargoGlobal', 'clearWeaponPool', 'closeDialog', 'closeDisplay', 'closeOverlay', 'collapseObjectTree', 'combatMode', 'commandArtilleryFire', 'commandChat', 'commander', 'commandFire', 'commandFollow', 'commandFSM', 'commandGetOut', 'commandingMenu', 'commandMove', 'commandRadio', 'commandStop', 'commandTarget', 'commandWatch', 'comment', 'commitOverlay', 'compile', 'compileFinal', 'completedFSM', 'composeText', 'configClasses', 'configFile', 'configHierarchy', 'configName', 'configProperties', 'configSourceMod', 'configSourceModList', 'connectTerminalToUAV', 'controlNull', 'controlsGroupCtrl', 'copyFromClipboard', 'copyToClipboard', 'copyWaypoints', 'cos', 'count', 'countEnemy', 'countFriendly', 'countSide', 'countType', 'countUnknown', 'createAgent', 'createCenter', 'createDialog', 'createDiaryLink', 'createDiaryRecord', 'createDiarySubject', 'createDisplay', 'createGearDialog', 'createGroup', 'createGuardedPoint', 'createLocation', 'createMarker', 'createMarkerLocal', 'createMenu', 'createMine', 'createMissionDisplay', 'createSimpleTask', 'createSite', 'createSoundSource', 'createTask', 'createTeam', 'createTrigger', 'createUnit', 'createUnit array', 'createVehicle', 'createVehicle array', 'createVehicleCrew', 'createVehicleLocal', 'crew', 'ctrlActivate', 'ctrlAddEventHandler', 'ctrlAutoScrollDelay', 'ctrlAutoScrollRewind', 'ctrlAutoScrollSpeed', 'ctrlChecked', 'ctrlClassName', 'ctrlCommit', 'ctrlCommitted', 'ctrlCreate', 'ctrlDelete', 'ctrlEnable', 'ctrlEnabled', 'ctrlFade', 'ctrlHTMLLoaded', 'ctrlIDC', 'ctrlIDD', 'ctrlMapAnimAdd', 'ctrlMapAnimClear', 'ctrlMapAnimCommit', 'ctrlMapAnimDone', 'ctrlMapCursor', 'ctrlMapMouseOver', 'ctrlMapScale', 'ctrlMapScreenToWorld', 'ctrlMapWorldToScreen', 'ctrlModel', 'ctrlModelDirAndUp', 'ctrlModelScale', 'ctrlParent', 'ctrlPosition', 'ctrlRemoveAllEventHandlers', 'ctrlRemoveEventHandler', 'ctrlScale', 'ctrlSetActiveColor', 'ctrlSetAutoScrollDelay', 'ctrlSetAutoScrollRewind', 'ctrlSetAutoScrollSpeed', 'ctrlSetBackgroundColor', 'ctrlSetChecked', 'ctrlSetEventHandler', 'ctrlSetFade', 'ctrlSetFocus', 'ctrlSetFont', 'ctrlSetFontH1', 'ctrlSetFontH1B', 'ctrlSetFontH2', 'ctrlSetFontH2B', 'ctrlSetFontH3', 'ctrlSetFontH3B', 'ctrlSetFontH4', 'ctrlSetFontH4B', 'ctrlSetFontH5', 'ctrlSetFontH5B', 'ctrlSetFontH6', 'ctrlSetFontH6B', 'ctrlSetFontHeight', 'ctrlSetFontHeightH1', 'ctrlSetFontHeightH2', 'ctrlSetFontHeightH3', 'ctrlSetFontHeightH4', 'ctrlSetFontHeightH5', 'ctrlSetFontHeightH6', 'ctrlSetFontP', 'ctrlSetFontPB', 'ctrlSetForegroundColor', 'ctrlSetModel', 'ctrlSetModelDirAndUp', 'ctrlSetModelScale', 'ctrlSetPosition', 'ctrlSetScale', 'ctrlSetStructuredText', 'ctrlSetText', 'ctrlSetTextColor', 'ctrlSetTooltip', 'ctrlSetTooltipColorBox', 'ctrlSetTooltipColorShade', 'ctrlSetTooltipColorText', 'ctrlShow', 'ctrlShown', 'ctrlText', 'ctrlTextHeight', 'ctrlType', 'ctrlVisible', 'curatorAddons', 'curatorCamera', 'curatorCameraArea', 'curatorCameraAreaCeiling', 'curatorCoef', 'curatorEditableObjects', 'curatorEditingArea', 'curatorEditingAreaType', 'curatorMouseOver', 'curatorPoints', 'curatorRegisteredObjects', 'curatorSelected', 'curatorWaypointCost', 'currentChannel', 'currentCommand', 'currentMagazine', 'currentMagazineDetail', 'currentMagazineDetailTurret', 'currentMagazineTurret', 'currentMuzzle', 'currentNamespace', 'currentTask', 'currentTasks', 'currentThrowable', 'currentVisionMode', 'currentWaypoint', 'currentWeapon', 'currentWeaponMode', 'currentWeaponTurret', 'currentZeroing', 'cursorTarget', 'customChat', 'customRadio', 'cutFadeOut', 'cutObj', 'cutRsc', 'cutText', 'damage', 'date', 'dateToNumber', 'daytime', 'deActivateKey', 'debriefingText', 'debugFSM', 'debugLog', 'default', 'deg', 'deleteAt', 'deleteCenter', 'deleteCollection', 'deleteEditorObject', 'deleteGroup', 'deleteIdentity', 'deleteLocation', 'deleteMarker', 'deleteMarkerLocal', 'deleteRange', 'deleteResources', 'deleteSite', 'deleteStatus', 'deleteTeam', 'deleteVehicle', 'deleteVehicleCrew', 'deleteWaypoint', 'detach', 'detectedMines', 'diag activeMissionFSMs', 'diag activeSQFScripts', 'diag activeSQSScripts', 'diag captureFrame', 'diag captureSlowFrame', 'diag fps', 'diag fpsMin', 'diag frameNo', 'diag log', 'diag logSlowFrame', 'diag tickTime', 'dialog', 'diarySubjectExists', 'didJIP', 'didJIPOwner', 'difficulty', 'difficultyEnabled', 'difficultyEnabledRTD', 'direction', 'directSay', 'disableAI', 'disableCollisionWith', 'disableConversation', 'disableDebriefingStats', 'disableSerialization', 'disableTIEquipment', 'disableUAVConnectability', 'disableUserInput', 'displayAddEventHandler', 'displayCtrl', 'displayNull', 'displayRemoveAllEventHandlers', 'displayRemoveEventHandler', 'displaySetEventHandler', 'dissolveTeam', 'distance', 'distance2D', 'distanceSqr', 'distributionRegion', 'do', 'doArtilleryFire', 'doFire', 'doFollow', 'doFSM', 'doGetOut', 'doMove', 'doorPhase', 'doStop', 'doTarget', 'doWatch', 'drawArrow', 'drawEllipse', 'drawIcon', 'drawIcon3D', 'drawLine', 'drawLine3D', 'drawLink', 'drawLocation', 'drawRectangle', 'driver', 'drop', 'east', 'echo', 'editObject', 'editorSetEventHandler', 'effectiveCommander', 'else', 'emptyPositions', 'enableAI', 'enableAIFeature', 'enableAttack', 'enableCamShake', 'enableCaustics', 'enableCollisionWith', 'enableCopilot', 'enableDebriefingStats', 'enableDiagLegend', 'enableEndDialog', 'enableEngineArtillery', 'enableEnvironment', 'enableFatigue', 'enableGunLights', 'enableIRLasers', 'enableMimics', 'enablePersonTurret', 'enableRadio', 'enableReload', 'enableRopeAttach', 'enableSatNormalOnDetail', 'enableSaving', 'enableSentences', 'enableSimulation', 'enableSimulationGlobal', 'enableTeamSwitch', 'enableUAVConnectability', 'enableUAVWaypoints', 'endLoadingScreen', 'endMission', 'engineOn', 'enginesIsOnRTD', 'enginesRpmRTD', 'enginesTorqueRTD', 'entities', 'estimatedEndServerTime', 'estimatedTimeLeft', 'evalObjectArgument', 'everyBackpack', 'everyContainer', 'exec', 'execEditorScript', 'execFSM', 'execVM', 'exit', 'exitWith', 'exp', 'expectedDestination', 'eyeDirection', 'eyePos', 'face', 'faction', 'fadeMusic', 'fadeRadio', 'fadeSound', 'fadeSpeech', 'failMission', 'false', 'fillWeaponsFromPool', 'find', 'findCover', 'findDisplay', 'findEditorObject', 'findEmptyPosition', 'findEmptyPositionReady', 'findNearestEnemy', 'finishMissionInit', 'finite', 'fire', 'fireAtTarget', 'firstBackpack', 'flag', 'flagOwner', 'fleeing', 'floor', 'flyInHeight', 'fog', 'fogForecast', 'fogParams', 'for', 'forceAddUniform', 'forceEnd', 'forceMap', 'forceRespawn', 'forceSpeed', 'forceWalk', 'forceWeaponFire', 'forceWeatherChange', 'forEach', 'forEachMember', 'forEachMemberAgent', 'forEachMemberTeam', 'format', 'formation', 'formationDirection', 'formationLeader', 'formationMembers', 'formationPosition', 'formationTask', 'formatText', 'formLeader', 'freeLook', 'from', 'fromEditor', 'fuel', 'fullCrew', 'gearSlotAmmoCount', 'gearSlotData', 'getAllHitPointsDamage', 'getAmmoCargo', 'getArray', 'getArtilleryAmmo', 'getArtilleryComputerSettings', 'getArtilleryETA', 'getAssignedCuratorLogic', 'getAssignedCuratorUnit', 'getBackpackCargo', 'getBleedingRemaining', 'getBurningValue', 'getCargoIndex', 'getCenterOfMass', 'getClientState', 'getConnectedUAV', 'getDammage', 'getDescription', 'getDir', 'getDirVisual', 'getDLCs', 'getEditorCamera', 'getEditorMode', 'getEditorObjectScope', 'getElevationOffset', 'getFatigue', 'getFriend', 'getFSMVariable', 'getFuelCargo', 'getGroupIcon', 'getGroupIconParams', 'getGroupIcons', 'getHideFrom', 'getHit', 'getHitIndex', 'getHitPointDamage', 'getItemCargo', 'getMagazineCargo', 'getMarkerColor', 'getMarkerPos', 'getMarkerSize', 'getMarkerType', 'getMass', 'getModelInfo', 'getNumber', 'getObjectArgument', 'getObjectChildren', 'getObjectDLC', 'getObjectMaterials', 'getObjectProxy', 'getObjectTextures', 'getObjectType', 'getObjectViewDistance', 'getOxygenRemaining', 'getPersonUsedDLCs', 'getPlayerChannel', 'getPlayerUID', 'getPos', 'getPosASL', 'getPosASLVisual', 'getPosASLW', 'getPosATL', 'getPosATLVisual', 'getPosVisual', 'getPosWorld', 'getRepairCargo', 'getResolution', 'getShadowDistance', 'getSlingLoad', 'getSpeed', 'getSuppression', 'getTerrainHeightASL', 'getText', 'getVariable', 'getWeaponCargo', 'getWPPos', 'glanceAt', 'globalChat', 'globalRadio', 'goggles', 'goto', 'group', 'groupChat', 'groupFromNetId', 'groupIconSelectable', 'groupIconsVisible', 'groupId', 'groupOwner', 'groupRadio', 'groupSelectedUnits', 'groupSelectUnit', 'grpNull', 'gunner', 'gusts', 'halt', 'handgunItems', 'handgunMagazine', 'handgunWeapon', 'handsHit', 'hasInterface', 'hasWeapon', 'hcAllGroups', 'hcGroupParams', 'hcLeader', 'hcRemoveAllGroups', 'hcRemoveGroup', 'hcSelected', 'hcSelectGroup', 'hcSetGroup', 'hcShowBar', 'hcShownBar', 'headgear', 'hideBody', 'hideObject', 'hideObjectGlobal', 'hint', 'hintC', 'hintCadet', 'hintSilent', 'hmd', 'hostMission', 'htmlLoad', 'HUDMovementLevels', 'humidity', 'if', 'image', 'importAllGroups', 'importance', 'in', 'incapacitatedState', 'independent', 'inflame', 'inflamed', 'inGameUISetEventHandler', 'inheritsFrom', 'initAmbientLife', 'inputAction', 'inRangeOfArtillery', 'insertEditorObject', 'intersect', 'isAbleToBreathe', 'isAgent', 'isArray', 'isAutoHoverOn', 'isAutonomous', 'isAutotest', 'isBleeding', 'isBurning', 'isClass', 'isCollisionLightOn', 'isCopilotEnabled', 'isDedicated', 'isDLCAvailable', 'isEngineOn', 'isEqualTo', 'isFlashlightOn', 'isFlatEmpty', 'isForcedWalk', 'isFormationLeader', 'isHidden', 'isInRemainsCollector', 'isInstructorFigureEnabled', 'isIRLaserOn', 'isKeyActive', 'isKindOf', 'isLightOn', 'isLocalized', 'isManualFire', 'isMarkedForCollection', 'isMultiplayer', 'isNil', 'isNull', 'isNumber', 'isObjectHidden', 'isObjectRTD', 'isOnRoad', 'isPipEnabled', 'isPlayer', 'isRealTime', 'isServer', 'isShowing3DIcons', 'isSteamMission', 'isStreamFriendlyUIEnabled', 'isText', 'isTouchingGround', 'isTurnedOut', 'isTutHintsEnabled', 'isUAVConnectable', 'isUAVConnected', 'isUniformAllowed', 'isWalking', 'isWeaponDeployed', 'isWeaponRested', 'itemCargo', 'items', 'itemsWithMagazines', 'join', 'joinAs', 'joinAsSilent', 'joinSilent', 'joinString', 'kbAddDatabase', 'kbAddDatabaseTargets', 'kbAddTopic', 'kbHasTopic', 'kbReact', 'kbRemoveTopic', 'kbTell', 'kbWasSaid', 'keyImage', 'keyName', 'knowsAbout', 'land', 'landAt', 'landResult', 'language', 'laserTarget', 'lbAdd', 'lbClear', 'lbColor', 'lbCurSel', 'lbData', 'lbDelete', 'lbIsSelected', 'lbPicture', 'lbSelection', 'lbSetColor', 'lbSetCurSel', 'lbSetData', 'lbSetPicture', 'lbSetPictureColor', 'lbSetPictureColorDisabled', 'lbSetPictureColorSelected', 'lbSetSelectColor', 'lbSetSelectColorRight', 'lbSetSelected', 'lbSetTooltip', 'lbSetValue', 'lbSize', 'lbSort', 'lbSortByValue', 'lbText', 'lbValue', 'leader', 'leaderboardDeInit', 'leaderboardGetRows', 'leaderboardInit', 'leaveVehicle', 'libraryCredits', 'libraryDisclaimers', 'lifeState', 'lightAttachObject', 'lightDetachObject', 'lightIsOn', 'lightnings', 'limitSpeed', 'linearConversion', 'lineBreak', 'lineIntersects', 'lineIntersectsObjs', 'lineIntersectsSurfaces', 'lineIntersectsWith', 'linkItem', 'list', 'listObjects', 'ln', 'lnbAddArray', 'lnbAddColumn', 'lnbAddRow', 'lnbClear', 'lnbColor', 'lnbCurSelRow', 'lnbData', 'lnbDeleteColumn', 'lnbDeleteRow', 'lnbGetColumnsPosition', 'lnbPicture', 'lnbSetColor', 'lnbSetColumnsPos', 'lnbSetCurSelRow', 'lnbSetData', 'lnbSetPicture', 'lnbSetText', 'lnbSetValue', 'lnbSize', 'lnbText', 'lnbValue', 'load', 'loadAbs', 'loadBackpack', 'loadFile', 'loadGame', 'loadIdentity', 'loadMagazine', 'loadOverlay', 'loadStatus', 'loadUniform', 'loadVest', 'local', 'localize', 'locationNull', 'locationPosition', 'lock', 'lockCameraTo', 'lockCargo', 'lockDriver', 'locked', 'lockedCargo', 'lockedDriver', 'lockedTurret', 'lockTurret', 'lockWP', 'log', 'logEntities', 'lookAt', 'lookAtPos', 'magazineCargo', 'magazines', 'magazinesAllTurrets', 'magazinesAmmo', 'magazinesAmmoCargo', 'magazinesAmmoFull', 'magazinesDetail', 'magazinesDetailBackpack', 'magazinesDetailUniform', 'magazinesDetailVest', 'magazinesTurret', 'magazineTurretAmmo', 'mapAnimAdd', 'mapAnimClear', 'mapAnimCommit', 'mapAnimDone', 'mapCenterOnCamera', 'mapGridPosition', 'markAsFinishedOnSteam', 'markerAlpha', 'markerBrush', 'markerColor', 'markerDir', 'markerPos', 'markerShape', 'markerSize', 'markerText', 'markerType', 'max', 'members', 'min', 'mineActive', 'mineDetectedBy', 'missionConfigFile', 'missionName', 'missionNamespace', 'missionStart', 'mod', 'modelToWorld', 'modelToWorldVisual', 'moonIntensity', 'morale', 'move', 'moveInAny', 'moveInCargo', 'moveInCommander', 'moveInDriver', 'moveInGunner', 'moveInTurret', 'moveObjectToEnd', 'moveOut', 'moveTime', 'moveTo', 'moveToCompleted', 'moveToFailed', 'musicVolume', 'name', 'name location', 'nameSound', 'nearEntities', 'nearestBuilding', 'nearestLocation', 'nearestLocations', 'nearestLocationWithDubbing', 'nearestObject', 'nearestObjects', 'nearObjects', 'nearObjectsReady', 'nearRoads', 'nearSupplies', 'nearTargets', 'needReload', 'netId', 'netObjNull', 'newOverlay', 'nextMenuItemIndex', 'nextWeatherChange', 'nil', 'nMenuItems', 'not', 'numberToDate', 'objectCurators', 'objectFromNetId', 'objectParent', 'objNull', 'objStatus', 'onBriefingGroup', 'onBriefingNotes', 'onBriefingPlan', 'onBriefingTeamSwitch', 'onCommandModeChanged', 'onDoubleClick', 'onEachFrame', 'onGroupIconClick', 'onGroupIconOverEnter', 'onGroupIconOverLeave', 'onHCGroupSelectionChanged', 'onMapSingleClick', 'onPlayerConnected', 'onPlayerDisconnected', 'onPreloadFinished', 'onPreloadStarted', 'onShowNewObject', 'onTeamSwitch', 'openCuratorInterface', 'openMap', 'openYoutubeVideo', 'opfor', 'or', 'orderGetIn', 'overcast', 'overcastForecast', 'owner', 'param', 'params', 'parseNumber', 'parseText', 'parsingNamespace', 'particlesQuality', 'pi', 'pickWeaponPool', 'pitch', 'playableSlotsNumber', 'playableUnits', 'playAction', 'playActionNow', 'player', 'playerRespawnTime', 'playerSide', 'playersNumber', 'playGesture', 'playMission', 'playMove', 'playMoveNow', 'playMusic', 'playScriptedMission', 'playSound', 'playSound3D', 'position', 'positionCameraToWorld', 'posScreenToWorld', 'posWorldToScreen', 'ppEffectAdjust', 'ppEffectCommit', 'ppEffectCommitted', 'ppEffectCreate', 'ppEffectDestroy', 'ppEffectEnable', 'ppEffectForceInNVG', 'precision', 'preloadCamera', 'preloadObject', 'preloadSound', 'preloadTitleObj', 'preloadTitleRsc', 'preprocessFile', 'preprocessFileLineNumbers', 'primaryWeapon', 'primaryWeaponItems', 'primaryWeaponMagazine', 'priority', 'private', 'processDiaryLink', 'productVersion', 'profileName', 'profileNamespace', 'profileNameSteam', 'progressLoadingScreen', 'progressPosition', 'progressSetPosition', 'publicVariable', 'publicVariableClient', 'publicVariableServer', 'pushBack', 'putWeaponPool', 'queryItemsPool', 'queryMagazinePool', 'queryWeaponPool', 'rad', 'radioChannelAdd', 'radioChannelCreate', 'radioChannelRemove', 'radioChannelSetCallSign', 'radioChannelSetLabel', 'radioVolume', 'rain', 'rainbow', 'random', 'rank', 'rankId', 'rating', 'rectangular', 'registeredTasks', 'registerTask', 'reload', 'reloadEnabled', 'remoteControl', 'remoteExec', 'remoteExecCall', 'removeAction', 'removeAllActions', 'removeAllAssignedItems', 'removeAllContainers', 'removeAllCuratorAddons', 'removeAllCuratorCameraAreas', 'removeAllCuratorEditingAreas', 'removeAllEventHandlers', 'removeAllHandgunItems', 'removeAllItems', 'removeAllItemsWithMagazines', 'removeAllMissionEventHandlers', 'removeAllMPEventHandlers', 'removeAllMusicEventHandlers', 'removeAllPrimaryWeaponItems', 'removeAllWeapons', 'removeBackpack', 'removeBackpackGlobal', 'removeCuratorAddons', 'removeCuratorCameraArea', 'removeCuratorEditableObjects', 'removeCuratorEditingArea', 'removeDrawIcon', 'removeDrawLinks', 'removeEventHandler', 'removeFromRemainsCollector', 'removeGoggles', 'removeGroupIcon', 'removeHandgunItem', 'removeHeadgear', 'removeItem', 'removeItemFromBackpack', 'removeItemFromUniform', 'removeItemFromVest', 'removeItems', 'removeMagazine', 'removeMagazineGlobal', 'removeMagazines', 'removeMagazinesTurret', 'removeMagazineTurret', 'removeMenuItem', 'removeMissionEventHandler', 'removeMPEventHandler', 'removeMusicEventHandler', 'removePrimaryWeaponItem', 'removeSecondaryWeaponItem', 'removeSimpleTask', 'removeSwitchableUnit', 'removeTeamMember', 'removeUniform', 'removeVest', 'removeWeapon', 'removeWeaponGlobal', 'removeWeaponTurret', 'requiredVersion', 'resetCamShake', 'resetSubgroupDirection', 'resistance', 'resize', 'resources', 'respawnVehicle', 'restartEditorCamera', 'reveal', 'revealMine', 'reverse', 'reversedMouseY', 'roadsConnectedTo', 'roleDescription', 'ropeAttachedObjects', 'ropeAttachedTo', 'ropeAttachEnabled', 'ropeAttachTo', 'ropeCreate', 'ropeCut', 'ropeEndPosition', 'ropeLength', 'ropes', 'ropeUnwind', 'ropeUnwound', 'rotorsForcesRTD', 'rotorsRpmRTD', 'round', 'runInitScript', 'safeZoneH', 'safeZoneW', 'safeZoneWAbs', 'safeZoneX', 'safeZoneXAbs', 'safeZoneY', 'saveGame', 'saveIdentity', 'saveJoysticks', 'saveOverlay', 'saveProfileNamespace', 'saveStatus', 'saveVar', 'savingEnabled', 'say', 'say2D', 'say3D', 'scopeName', 'score', 'scoreSide', 'screenToWorld', 'scriptDone', 'scriptName', 'scriptNull', 'scudState', 'secondaryWeapon', 'secondaryWeaponItems', 'secondaryWeaponMagazine', 'select', 'selectBestPlaces', 'selectDiarySubject', 'selectedEditorObjects', 'selectEditorObject', 'selectionPosition', 'selectLeader', 'selectNoPlayer', 'selectPlayer', 'selectWeapon', 'selectWeaponTurret', 'sendAUMessage', 'sendSimpleCommand', 'sendTask', 'sendTaskResult', 'sendUDPMessage', 'serverCommand', 'serverCommandAvailable', 'serverCommandExecutable', 'serverName', 'serverTime', 'set', 'setAccTime', 'setAirportSide', 'setAmmo', 'setAmmoCargo', 'setAperture', 'setApertureNew', 'setArmoryPoints', 'setAttributes', 'setAutonomous', 'setBehaviour', 'setBleedingRemaining', 'setCameraInterest', 'setCamShakeDefParams', 'setCamShakeParams', 'setCamUseTi', 'setCaptive', 'setCenterOfMass', 'setCollisionLight', 'setCombatMode', 'setCompassOscillation', 'setCuratorCameraAreaCeiling', 'setCuratorCoef', 'setCuratorEditingAreaType', 'setCuratorWaypointCost', 'setCurrentChannel', 'setCurrentTask', 'setCurrentWaypoint', 'setDamage', 'setDammage', 'setDate', 'setDebriefingText', 'setDefaultCamera', 'setDestination', 'setDetailMapBlendPars', 'setDir', 'setDirection', 'setDrawIcon', 'setDropInterval', 'setEditorMode', 'setEditorObjectScope', 'setEffectCondition', 'setFace', 'setFaceAnimation', 'setFatigue', 'setFlagOwner', 'setFlagSide', 'setFlagTexture', 'setFog', 'setFog array', 'setFormation', 'setFormationTask', 'setFormDir', 'setFriend', 'setFromEditor', 'setFSMVariable', 'setFuel', 'setFuelCargo', 'setGroupIcon', 'setGroupIconParams', 'setGroupIconsSelectable', 'setGroupIconsVisible', 'setGroupId', 'setGroupIdGlobal', 'setGroupOwner', 'setGusts', 'setHideBehind', 'setHit', 'setHitIndex', 'setHitPointDamage', 'setHorizonParallaxCoef', 'setHUDMovementLevels', 'setIdentity', 'setImportance', 'setLeader', 'setLightAmbient', 'setLightAttenuation', 'setLightBrightness', 'setLightColor', 'setLightDayLight', 'setLightFlareMaxDistance', 'setLightFlareSize', 'setLightIntensity', 'setLightnings', 'setLightUseFlare', 'setLocalWindParams', 'setMagazineTurretAmmo', 'setMarkerAlpha', 'setMarkerAlphaLocal', 'setMarkerBrush', 'setMarkerBrushLocal', 'setMarkerColor', 'setMarkerColorLocal', 'setMarkerDir', 'setMarkerDirLocal', 'setMarkerPos', 'setMarkerPosLocal', 'setMarkerShape', 'setMarkerShapeLocal', 'setMarkerSize', 'setMarkerSizeLocal', 'setMarkerText', 'setMarkerTextLocal', 'setMarkerType', 'setMarkerTypeLocal', 'setMass', 'setMimic', 'setMousePosition', 'setMusicEffect', 'setMusicEventHandler', 'setName', 'setNameSound', 'setObjectArguments', 'setObjectMaterial', 'setObjectProxy', 'setObjectTexture', 'setObjectTextureGlobal', 'setObjectViewDistance', 'setOvercast', 'setOwner', 'setOxygenRemaining', 'setParticleCircle', 'setParticleClass', 'setParticleFire', 'setParticleParams', 'setParticleRandom', 'setPilotLight', 'setPiPEffect', 'setPitch', 'setPlayable', 'setPlayerRespawnTime', 'setPos', 'setPosASL', 'setPosASL2', 'setPosASLW', 'setPosATL', 'setPosition', 'setPosWorld', 'setRadioMsg', 'setRain', 'setRainbow', 'setRandomLip', 'setRank', 'setRectangular', 'setRepairCargo', 'setShadowDistance', 'setSide', 'setSimpleTaskDescription', 'setSimpleTaskDestination', 'setSimpleTaskTarget', 'setSimulWeatherLayers', 'setSize', 'setSkill', 'setSkill array', 'setSlingLoad', 'setSoundEffect', 'setSpeaker', 'setSpeech', 'setSpeedMode', 'setStatValue', 'setSuppression', 'setSystemOfUnits', 'setTargetAge', 'setTaskResult', 'setTaskState', 'setTerrainGrid', 'setText', 'setTimeMultiplier', 'setTitleEffect', 'setTriggerActivation', 'setTriggerArea', 'setTriggerStatements', 'setTriggerText', 'setTriggerTimeout', 'setTriggerType', 'setType', 'setUnconscious', 'setUnitAbility', 'setUnitPos', 'setUnitPosWeak', 'setUnitRank', 'setUnitRecoilCoefficient', 'setUnloadInCombat', 'setUserActionText', 'setVariable', 'setVectorDir', 'setVectorDirAndUp', 'setVectorUp', 'setVehicleAmmo', 'setVehicleAmmoDef', 'setVehicleArmor', 'setVehicleId', 'setVehicleLock', 'setVehiclePosition', 'setVehicleTiPars', 'setVehicleVarName', 'setVelocity', 'setVelocityTransformation', 'setViewDistance', 'setVisibleIfTreeCollapsed', 'setWaves', 'setWaypointBehaviour', 'setWaypointCombatMode', 'setWaypointCompletionRadius', 'setWaypointDescription', 'setWaypointFormation', 'setWaypointHousePosition', 'setWaypointLoiterRadius', 'setWaypointLoiterType', 'setWaypointName', 'setWaypointPosition', 'setWaypointScript', 'setWaypointSpeed', 'setWaypointStatements', 'setWaypointTimeout', 'setWaypointType', 'setWaypointVisible', 'setWeaponReloadingTime', 'setWind', 'setWindDir', 'setWindForce', 'setWindStr', 'setWPPos', 'show3DIcons', 'showChat', 'showCinemaBorder', 'showCommandingMenu', 'showCompass', 'showCuratorCompass', 'showGPS', 'showHUD', 'showLegend', 'showMap', 'shownArtilleryComputer', 'shownChat', 'shownCompass', 'shownCuratorCompass', 'showNewEditorObject', 'shownGPS', 'shownHUD', 'shownMap', 'shownPad', 'shownRadio', 'shownUAVFeed', 'shownWarrant', 'shownWatch', 'showPad', 'showRadio', 'showSubtitles', 'showUAVFeed', 'showWarrant', 'showWatch', 'showWaypoint', 'side', 'sideChat', 'sideEnemy', 'sideFriendly', 'sideLogic', 'sideRadio', 'sideUnknown', 'simpleTasks', 'simulationEnabled', 'simulCloudDensity', 'simulCloudOcclusion', 'simulInClouds', 'simulWeatherSync', 'sin', 'size', 'sizeOf', 'skill', 'skillFinal', 'skipTime', 'sleep', 'sliderPosition', 'sliderRange', 'sliderSetPosition', 'sliderSetRange', 'sliderSetSpeed', 'sliderSpeed', 'slingLoadAssistantShown', 'soldierMagazines', 'someAmmo', 'sort', 'soundVolume', 'spawn', 'speaker', 'speed', 'speedMode', 'splitString', 'sqrt', 'squadParams', 'stance', 'startLoadingScreen', 'step', 'stop', 'stopped', 'str', 'sunOrMoon', 'supportInfo', 'suppressFor', 'surfaceIsWater', 'surfaceNormal', 'surfaceType', 'swimInDepth', 'switch', 'switchableUnits', 'switchAction', 'switchCamera', 'switchGesture', 'switchLight', 'switchMove', 'synchronizedObjects', 'synchronizedTriggers', 'synchronizedWaypoints', 'synchronizeObjectsAdd', 'synchronizeObjectsRemove', 'synchronizeTrigger', 'synchronizeWaypoint', 'synchronizeWaypoint trigger', 'systemChat', 'systemOfUnits', 'tan', 'targetKnowledge', 'targetsAggregate', 'targetsQuery', 'taskChildren', 'taskCompleted', 'taskDescription', 'taskDestination', 'taskHint', 'taskNull', 'taskParent', 'taskResult', 'taskState', 'teamMember', 'teamMemberNull', 'teamName', 'teams', 'teamSwitch', 'teamSwitchEnabled', 'teamType', 'terminate', 'terrainIntersect', 'terrainIntersectASL', 'text', 'text location', 'textLog', 'textLogFormat', 'tg', 'then', 'throw', 'time', 'timeMultiplier', 'titleCut', 'titleFadeOut', 'titleObj', 'titleRsc', 'titleText', 'to', 'toArray', 'toLower', 'toString', 'toUpper', 'triggerActivated', 'triggerActivation', 'triggerArea', 'triggerAttachedVehicle', 'triggerAttachObject', 'triggerAttachVehicle', 'triggerStatements', 'triggerText', 'triggerTimeout', 'triggerTimeoutCurrent', 'triggerType', 'true', 'try', 'turretLocal', 'turretOwner', 'turretUnit', 'tvAdd', 'tvClear', 'tvCollapse', 'tvCount', 'tvCurSel', 'tvData', 'tvDelete', 'tvExpand', 'tvPicture', 'tvSetCurSel', 'tvSetData', 'tvSetPicture', 'tvSetPictureColor', 'tvSetTooltip', 'tvSetValue', 'tvSort', 'tvSortByValue', 'tvText', 'tvValue', 'type', 'typeName', 'typeOf', 'UAVControl', 'uiNamespace', 'uiSleep', 'unassignCurator', 'unassignItem', 'unassignTeam', 'unassignVehicle', 'underwater', 'uniform', 'uniformContainer', 'uniformItems', 'uniformMagazines', 'unitAddons', 'unitBackpack', 'unitPos', 'unitReady', 'unitRecoilCoefficient', 'units', 'unitsBelowHeight', 'unlinkItem', 'unlockAchievement', 'unregisterTask', 'updateDrawIcon', 'updateMenuItem', 'updateObjectTree', 'useAudioTimeForMoves', 'vectorAdd', 'vectorCos', 'vectorCrossProduct', 'vectorDiff', 'vectorDir', 'vectorDirVisual', 'vectorDistance', 'vectorDistanceSqr', 'vectorDotProduct', 'vectorFromTo', 'vectorMagnitude', 'vectorMagnitudeSqr', 'vectorMultiply', 'vectorNormalized', 'vectorUp', 'vectorUpVisual', 'vehicle', 'vehicleChat', 'vehicleRadio', 'vehicles', 'vehicleVarName', 'velocity', 'velocityModelSpace', 'verifySignature', 'vest', 'vestContainer', 'vestItems', 'vestMagazines', 'viewDistance', 'visibleCompass', 'visibleGPS', 'visibleMap', 'visiblePosition', 'visiblePositionASL', 'visibleWatch', 'waitUntil', 'waves', 'waypointAttachedObject', 'waypointAttachedVehicle', 'waypointAttachObject', 'waypointAttachVehicle', 'waypointBehaviour', 'waypointCombatMode', 'waypointCompletionRadius', 'waypointDescription', 'waypointFormation', 'waypointHousePosition', 'waypointLoiterRadius', 'waypointLoiterType', 'waypointName', 'waypointPosition', 'waypoints', 'waypointScript', 'waypointsEnabledUAV', 'waypointShow', 'waypointSpeed', 'waypointStatements', 'waypointTimeout', 'waypointTimeoutCurrent', 'waypointType', 'waypointVisible', 'weaponAccessories', 'weaponCargo', 'weaponDirection', 'weaponLowered', 'weapons', 'weaponsItems', 'weaponsItemsCargo', 'weaponState', 'weaponsTurret', 'weightRTD', 'west', 'WFSideText', 'while', 'wind', 'windDir', 'windStr', 'wingsForcesRTD', 'with', 'worldName', 'worldSize', 'worldToModel', 'worldToModelVisual', 'worldToScreen'];
13134 var control = ['case', 'catch', 'default', 'do', 'else', 'exit', 'exitWith|5', 'for', 'forEach', 'from', 'if', 'switch', 'then', 'throw', 'to', 'try', 'while', 'with'];
13135 var operators = ['!', '-', '+', '!=', '%', '&&', '*', '/', '=', '==', '>', '>=', '<', '<=', '^', ':', '>>'];
13136 var specials = ['_forEachIndex|10', '_this|10', '_x|10'];
13137 var literals = ['true', 'false', 'nil'];
13138 var builtins = allCommands.filter(function (command) {
13139 return control.indexOf(command) == -1 &&
13140 literals.indexOf(command) == -1 &&
13141 operators.indexOf(command) == -1;
13142 });
13143 //Note: operators will not be treated as builtins due to the lexeme rules
13144 builtins = builtins.concat(specials);
13145
13146 // In SQF strings, quotes matching the start are escaped by adding a consecutive.
13147 // Example of single escaped quotes: " "" " and ' '' '.
13148 var STRINGS = {
13149 className: 'string',
13150 relevance: 0,
13151 variants: [
13152 {
13153 begin: '"',
13154 end: '"',
13155 contains: [{begin: '""'}]
13156 },
13157 {
13158 begin: '\'',
13159 end: '\'',
13160 contains: [{begin: '\'\''}]
13161 }
13162 ]
13163 };
13164
13165 var NUMBERS = {
13166 className: 'number',
13167 begin: hljs.NUMBER_RE,
13168 relevance: 0
13169 };
13170
13171 // Preprocessor definitions borrowed from C++
13172 var PREPROCESSOR_STRINGS = {
13173 className: 'string',
13174 variants: [
13175 hljs.QUOTE_STRING_MODE,
13176 {
13177 begin: '\'\\\\?.', end: '\'',
13178 illegal: '.'
13179 }
13180 ]
13181 };
13182
13183 var PREPROCESSOR = {
13184 className: 'meta',
13185 begin: '#', end: '$',
13186 keywords: {'meta-keyword': 'if else elif endif define undef warning error line ' +
13187 'pragma ifdef ifndef'},
13188 contains: [
13189 {
13190 begin: /\\\n/, relevance: 0
13191 },
13192 {
13193 beginKeywords: 'include', end: '$',
13194 keywords: {'meta-keyword': 'include'},
13195 contains: [
13196 PREPROCESSOR_STRINGS,
13197 {
13198 className: 'meta-string',
13199 begin: '<', end: '>',
13200 illegal: '\\n'
13201 }
13202 ]
13203 },
13204 PREPROCESSOR_STRINGS,
13205 NUMBERS,
13206 hljs.C_LINE_COMMENT_MODE,
13207 hljs.C_BLOCK_COMMENT_MODE
13208 ]
13209 };
13210
13211 return {
13212 aliases: ['sqf'],
13213 case_insensitive: true,
13214 keywords: {
13215 keyword: control.join(' '),
13216 built_in: builtins.join(' '),
13217 literal: literals.join(' ')
13218 },
13219 contains: [
13220 hljs.C_LINE_COMMENT_MODE,
13221 hljs.C_BLOCK_COMMENT_MODE,
13222 NUMBERS,
13223 STRINGS,
13224 PREPROCESSOR
13225 ]
13226 };
13227}
13228},{name:"sql",create:/*
13229 Language: SQL
13230 Contributors: Nikolay Lisienko <info@neor.ru>, Heiko August <post@auge8472.de>, Travis Odom <travis.a.odom@gmail.com>, Vadimtro <vadimtro@yahoo.com>, Benjamin Auder <benjamin.auder@gmail.com>
13231 Category: common
13232 */
13233
13234function(hljs) {
13235 var COMMENT_MODE = hljs.COMMENT('--', '$');
13236 return {
13237 case_insensitive: true,
13238 illegal: /[<>{}*]/,
13239 contains: [
13240 {
13241 beginKeywords:
13242 'begin end start commit rollback savepoint lock alter create drop rename call ' +
13243 'delete do handler insert load replace select truncate update set show pragma grant ' +
13244 'merge describe use explain help declare prepare execute deallocate release ' +
13245 'unlock purge reset change stop analyze cache flush optimize repair kill ' +
13246 'install uninstall checksum restore check backup revoke',
13247 end: /;/, endsWithParent: true,
13248 keywords: {
13249 keyword:
13250 'abort abs absolute acc acce accep accept access accessed accessible account acos action activate add ' +
13251 'addtime admin administer advanced advise aes_decrypt aes_encrypt after agent aggregate ali alia alias ' +
13252 'allocate allow alter always analyze ancillary and any anydata anydataset anyschema anytype apply ' +
13253 'archive archived archivelog are as asc ascii asin assembly assertion associate asynchronous at atan ' +
13254 'atn2 attr attri attrib attribu attribut attribute attributes audit authenticated authentication authid ' +
13255 'authors auto autoallocate autodblink autoextend automatic availability avg backup badfile basicfile ' +
13256 'before begin beginning benchmark between bfile bfile_base big bigfile bin binary_double binary_float ' +
13257 'binlog bit_and bit_count bit_length bit_or bit_xor bitmap blob_base block blocksize body both bound ' +
13258 'buffer_cache buffer_pool build bulk by byte byteordermark bytes c cache caching call calling cancel ' +
13259 'capacity cascade cascaded case cast catalog category ceil ceiling chain change changed char_base ' +
13260 'char_length character_length characters characterset charindex charset charsetform charsetid check ' +
13261 'checksum checksum_agg child choose chr chunk class cleanup clear client clob clob_base clone close ' +
13262 'cluster_id cluster_probability cluster_set clustering coalesce coercibility col collate collation ' +
13263 'collect colu colum column column_value columns columns_updated comment commit compact compatibility ' +
13264 'compiled complete composite_limit compound compress compute concat concat_ws concurrent confirm conn ' +
13265 'connec connect connect_by_iscycle connect_by_isleaf connect_by_root connect_time connection ' +
13266 'consider consistent constant constraint constraints constructor container content contents context ' +
13267 'contributors controlfile conv convert convert_tz corr corr_k corr_s corresponding corruption cos cost ' +
13268 'count count_big counted covar_pop covar_samp cpu_per_call cpu_per_session crc32 create creation ' +
13269 'critical cross cube cume_dist curdate current current_date current_time current_timestamp current_user ' +
13270 'cursor curtime customdatum cycle d data database databases datafile datafiles datalength date_add ' +
13271 'date_cache date_format date_sub dateadd datediff datefromparts datename datepart datetime2fromparts ' +
13272 'day day_to_second dayname dayofmonth dayofweek dayofyear days db_role_change dbtimezone ddl deallocate ' +
13273 'declare decode decompose decrement decrypt deduplicate def defa defau defaul default defaults ' +
13274 'deferred defi defin define degrees delayed delegate delete delete_all delimited demand dense_rank ' +
13275 'depth dequeue des_decrypt des_encrypt des_key_file desc descr descri describ describe descriptor ' +
13276 'deterministic diagnostics difference dimension direct_load directory disable disable_all ' +
13277 'disallow disassociate discardfile disconnect diskgroup distinct distinctrow distribute distributed div ' +
13278 'do document domain dotnet double downgrade drop dumpfile duplicate duration e each edition editionable ' +
13279 'editions element ellipsis else elsif elt empty enable enable_all enclosed encode encoding encrypt ' +
13280 'end end-exec endian enforced engine engines enqueue enterprise entityescaping eomonth error errors ' +
13281 'escaped evalname evaluate event eventdata events except exception exceptions exchange exclude excluding ' +
13282 'execu execut execute exempt exists exit exp expire explain export export_set extended extent external ' +
13283 'external_1 external_2 externally extract f failed failed_login_attempts failover failure far fast ' +
13284 'feature_set feature_value fetch field fields file file_name_convert filesystem_like_logging final ' +
13285 'finish first first_value fixed flash_cache flashback floor flush following follows for forall force ' +
13286 'form forma format found found_rows freelist freelists freepools fresh from from_base64 from_days ' +
13287 'ftp full function g general generated get get_format get_lock getdate getutcdate global global_name ' +
13288 'globally go goto grant grants greatest group group_concat group_id grouping grouping_id groups ' +
13289 'gtid_subtract guarantee guard handler hash hashkeys having hea head headi headin heading heap help hex ' +
13290 'hierarchy high high_priority hosts hour http i id ident_current ident_incr ident_seed identified ' +
13291 'identity idle_time if ifnull ignore iif ilike ilm immediate import in include including increment ' +
13292 'index indexes indexing indextype indicator indices inet6_aton inet6_ntoa inet_aton inet_ntoa infile ' +
13293 'initial initialized initially initrans inmemory inner innodb input insert install instance instantiable ' +
13294 'instr interface interleaved intersect into invalidate invisible is is_free_lock is_ipv4 is_ipv4_compat ' +
13295 'is_not is_not_null is_used_lock isdate isnull isolation iterate java join json json_exists ' +
13296 'k keep keep_duplicates key keys kill l language large last last_day last_insert_id last_value lax lcase ' +
13297 'lead leading least leaves left len lenght length less level levels library like like2 like4 likec limit ' +
13298 'lines link list listagg little ln load load_file lob lobs local localtime localtimestamp locate ' +
13299 'locator lock locked log log10 log2 logfile logfiles logging logical logical_reads_per_call ' +
13300 'logoff logon logs long loop low low_priority lower lpad lrtrim ltrim m main make_set makedate maketime ' +
13301 'managed management manual map mapping mask master master_pos_wait match matched materialized max ' +
13302 'maxextents maximize maxinstances maxlen maxlogfiles maxloghistory maxlogmembers maxsize maxtrans ' +
13303 'md5 measures median medium member memcompress memory merge microsecond mid migration min minextents ' +
13304 'minimum mining minus minute minvalue missing mod mode model modification modify module monitoring month ' +
13305 'months mount move movement multiset mutex n name name_const names nan national native natural nav nchar ' +
13306 'nclob nested never new newline next nextval no no_write_to_binlog noarchivelog noaudit nobadfile ' +
13307 'nocheck nocompress nocopy nocycle nodelay nodiscardfile noentityescaping noguarantee nokeep nologfile ' +
13308 'nomapping nomaxvalue nominimize nominvalue nomonitoring none noneditionable nonschema noorder ' +
13309 'nopr nopro noprom nopromp noprompt norely noresetlogs noreverse normal norowdependencies noschemacheck ' +
13310 'noswitch not nothing notice notrim novalidate now nowait nth_value nullif nulls num numb numbe ' +
13311 'nvarchar nvarchar2 object ocicoll ocidate ocidatetime ociduration ociinterval ociloblocator ocinumber ' +
13312 'ociref ocirefcursor ocirowid ocistring ocitype oct octet_length of off offline offset oid oidindex old ' +
13313 'on online only opaque open operations operator optimal optimize option optionally or oracle oracle_date ' +
13314 'oradata ord ordaudio orddicom orddoc order ordimage ordinality ordvideo organization orlany orlvary ' +
13315 'out outer outfile outline output over overflow overriding p package pad parallel parallel_enable ' +
13316 'parameters parent parse partial partition partitions pascal passing password password_grace_time ' +
13317 'password_lock_time password_reuse_max password_reuse_time password_verify_function patch path patindex ' +
13318 'pctincrease pctthreshold pctused pctversion percent percent_rank percentile_cont percentile_disc ' +
13319 'performance period period_add period_diff permanent physical pi pipe pipelined pivot pluggable plugin ' +
13320 'policy position post_transaction pow power pragma prebuilt precedes preceding precision prediction ' +
13321 'prediction_cost prediction_details prediction_probability prediction_set prepare present preserve ' +
13322 'prior priority private private_sga privileges procedural procedure procedure_analyze processlist ' +
13323 'profiles project prompt protection public publishingservername purge quarter query quick quiesce quota ' +
13324 'quotename radians raise rand range rank raw read reads readsize rebuild record records ' +
13325 'recover recovery recursive recycle redo reduced ref reference referenced references referencing refresh ' +
13326 'regexp_like register regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx regr_sxy ' +
13327 'reject rekey relational relative relaylog release release_lock relies_on relocate rely rem remainder rename ' +
13328 'repair repeat replace replicate replication required reset resetlogs resize resource respect restore ' +
13329 'restricted result result_cache resumable resume retention return returning returns reuse reverse revoke ' +
13330 'right rlike role roles rollback rolling rollup round row row_count rowdependencies rowid rownum rows ' +
13331 'rtrim rules safe salt sample save savepoint sb1 sb2 sb4 scan schema schemacheck scn scope scroll ' +
13332 'sdo_georaster sdo_topo_geometry search sec_to_time second section securefile security seed segment select ' +
13333 'self sequence sequential serializable server servererror session session_user sessions_per_user set ' +
13334 'sets settings sha sha1 sha2 share shared shared_pool short show shrink shutdown si_averagecolor ' +
13335 'si_colorhistogram si_featurelist si_positionalcolor si_stillimage si_texture siblings sid sign sin ' +
13336 'size size_t sizes skip slave sleep smalldatetimefromparts smallfile snapshot some soname sort soundex ' +
13337 'source space sparse spfile split sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows ' +
13338 'sql_small_result sql_variant_property sqlcode sqldata sqlerror sqlname sqlstate sqrt square standalone ' +
13339 'standby start starting startup statement static statistics stats_binomial_test stats_crosstab ' +
13340 'stats_ks_test stats_mode stats_mw_test stats_one_way_anova stats_t_test_ stats_t_test_indep ' +
13341 'stats_t_test_one stats_t_test_paired stats_wsr_test status std stddev stddev_pop stddev_samp stdev ' +
13342 'stop storage store stored str str_to_date straight_join strcmp strict string struct stuff style subdate ' +
13343 'subpartition subpartitions substitutable substr substring subtime subtring_index subtype success sum ' +
13344 'suspend switch switchoffset switchover sync synchronous synonym sys sys_xmlagg sysasm sysaux sysdate ' +
13345 'sysdatetimeoffset sysdba sysoper system system_user sysutcdatetime t table tables tablespace tan tdo ' +
13346 'template temporary terminated tertiary_weights test than then thread through tier ties time time_format ' +
13347 'time_zone timediff timefromparts timeout timestamp timestampadd timestampdiff timezone_abbr ' +
13348 'timezone_minute timezone_region to to_base64 to_date to_days to_seconds todatetimeoffset trace tracking ' +
13349 'transaction transactional translate translation treat trigger trigger_nestlevel triggers trim truncate ' +
13350 'try_cast try_convert try_parse type ub1 ub2 ub4 ucase unarchived unbounded uncompress ' +
13351 'under undo unhex unicode uniform uninstall union unique unix_timestamp unknown unlimited unlock unpivot ' +
13352 'unrecoverable unsafe unsigned until untrusted unusable unused update updated upgrade upped upper upsert ' +
13353 'url urowid usable usage use use_stored_outlines user user_data user_resources users using utc_date ' +
13354 'utc_timestamp uuid uuid_short validate validate_password_strength validation valist value values var ' +
13355 'var_samp varcharc vari varia variab variabl variable variables variance varp varraw varrawc varray ' +
13356 'verify version versions view virtual visible void wait wallet warning warnings week weekday weekofyear ' +
13357 'wellformed when whene whenev wheneve whenever where while whitespace with within without work wrapped ' +
13358 'xdb xml xmlagg xmlattributes xmlcast xmlcolattval xmlelement xmlexists xmlforest xmlindex xmlnamespaces ' +
13359 'xmlpi xmlquery xmlroot xmlschema xmlserialize xmltable xmltype xor year year_to_month years yearweek',
13360 literal:
13361 'true false null',
13362 built_in:
13363 'array bigint binary bit blob boolean char character date dec decimal float int int8 integer interval number ' +
13364 'numeric real record serial serial8 smallint text varchar varying void'
13365 },
13366 contains: [
13367 {
13368 className: 'string',
13369 begin: '\'', end: '\'',
13370 contains: [hljs.BACKSLASH_ESCAPE, {begin: '\'\''}]
13371 },
13372 {
13373 className: 'string',
13374 begin: '"', end: '"',
13375 contains: [hljs.BACKSLASH_ESCAPE, {begin: '""'}]
13376 },
13377 {
13378 className: 'string',
13379 begin: '`', end: '`',
13380 contains: [hljs.BACKSLASH_ESCAPE]
13381 },
13382 hljs.C_NUMBER_MODE,
13383 hljs.C_BLOCK_COMMENT_MODE,
13384 COMMENT_MODE
13385 ]
13386 },
13387 hljs.C_BLOCK_COMMENT_MODE,
13388 COMMENT_MODE
13389 ]
13390 };
13391}
13392},{name:"stata",create:/*
13393Language: Stata
13394Author: Brian Quistorff <bquistorff@gmail.com>
13395Contributors: Drew McDonald <drewmcdo@gmail.com>
13396Description: Syntax highlighting for Stata code. This is a fork and modification of Drew McDonald's file (https://github.com/drewmcdonald/stata-highlighting). I have also included a list of builtin commands from https://bugs.kde.org/show_bug.cgi?id=135646.
13397Category: scientific
13398*/
13399
13400function(hljs) {
13401 return {
13402 aliases: ['do', 'ado'],
13403 case_insensitive: true,
13404 keywords: 'if else in foreach for forv forva forval forvalu forvalue forvalues by bys bysort xi quietly qui capture about ac ac_7 acprplot acprplot_7 adjust ado adopath adoupdate alpha ameans an ano anov anova anova_estat anova_terms anovadef aorder ap app appe appen append arch arch_dr arch_estat arch_p archlm areg areg_p args arima arima_dr arima_estat arima_p as asmprobit asmprobit_estat asmprobit_lf asmprobit_mfx__dlg asmprobit_p ass asse asser assert avplot avplot_7 avplots avplots_7 bcskew0 bgodfrey binreg bip0_lf biplot bipp_lf bipr_lf bipr_p biprobit bitest bitesti bitowt blogit bmemsize boot bootsamp bootstrap bootstrap_8 boxco_l boxco_p boxcox boxcox_6 boxcox_p bprobit br break brier bro brow brows browse brr brrstat bs bs_7 bsampl_w bsample bsample_7 bsqreg bstat bstat_7 bstat_8 bstrap bstrap_7 ca ca_estat ca_p cabiplot camat canon canon_8 canon_8_p canon_estat canon_p cap caprojection capt captu captur capture cat cc cchart cchart_7 cci cd censobs_table centile cf char chdir checkdlgfiles checkestimationsample checkhlpfiles checksum chelp ci cii cl class classutil clear cli clis clist clo clog clog_lf clog_p clogi clogi_sw clogit clogit_lf clogit_p clogitp clogl_sw cloglog clonevar clslistarray cluster cluster_measures cluster_stop cluster_tree cluster_tree_8 clustermat cmdlog cnr cnre cnreg cnreg_p cnreg_sw cnsreg codebook collaps4 collapse colormult_nb colormult_nw compare compress conf confi confir confirm conren cons const constr constra constrai constrain constraint continue contract copy copyright copysource cor corc corr corr2data corr_anti corr_kmo corr_smc corre correl correla correlat correlate corrgram cou coun count cox cox_p cox_sw coxbase coxhaz coxvar cprplot cprplot_7 crc cret cretu cretur creturn cross cs cscript cscript_log csi ct ct_is ctset ctst_5 ctst_st cttost cumsp cumsp_7 cumul cusum cusum_7 cutil d datasig datasign datasigna datasignat datasignatu datasignatur datasignature datetof db dbeta de dec deco decod decode deff des desc descr descri describ describe destring dfbeta dfgls dfuller di di_g dir dirstats dis discard disp disp_res disp_s displ displa display distinct do doe doed doedi doedit dotplot dotplot_7 dprobit drawnorm drop ds ds_util dstdize duplicates durbina dwstat dydx e ed edi edit egen eivreg emdef en enc enco encod encode eq erase ereg ereg_lf ereg_p ereg_sw ereghet ereghet_glf ereghet_glf_sh ereghet_gp ereghet_ilf ereghet_ilf_sh ereghet_ip eret eretu eretur ereturn err erro error est est_cfexist est_cfname est_clickable est_expand est_hold est_table est_unhold est_unholdok estat estat_default estat_summ estat_vce_only esti estimates etodow etof etomdy ex exi exit expand expandcl fac fact facto factor factor_estat factor_p factor_pca_rotated factor_rotate factormat fcast fcast_compute fcast_graph fdades fdadesc fdadescr fdadescri fdadescrib fdadescribe fdasav fdasave fdause fh_st file open file read file close file filefilter fillin find_hlp_file findfile findit findit_7 fit fl fli flis flist for5_0 form forma format fpredict frac_154 frac_adj frac_chk frac_cox frac_ddp frac_dis frac_dv frac_in frac_mun frac_pp frac_pq frac_pv frac_wgt frac_xo fracgen fracplot fracplot_7 fracpoly fracpred fron_ex fron_hn fron_p fron_tn fron_tn2 frontier ftodate ftoe ftomdy ftowdate g gamhet_glf gamhet_gp gamhet_ilf gamhet_ip gamma gamma_d2 gamma_p gamma_sw gammahet gdi_hexagon gdi_spokes ge gen gene gener genera generat generate genrank genstd genvmean gettoken gl gladder gladder_7 glim_l01 glim_l02 glim_l03 glim_l04 glim_l05 glim_l06 glim_l07 glim_l08 glim_l09 glim_l10 glim_l11 glim_l12 glim_lf glim_mu glim_nw1 glim_nw2 glim_nw3 glim_p glim_v1 glim_v2 glim_v3 glim_v4 glim_v5 glim_v6 glim_v7 glm glm_6 glm_p glm_sw glmpred glo glob globa global glogit glogit_8 glogit_p gmeans gnbre_lf gnbreg gnbreg_5 gnbreg_p gomp_lf gompe_sw gomper_p gompertz gompertzhet gomphet_glf gomphet_glf_sh gomphet_gp gomphet_ilf gomphet_ilf_sh gomphet_ip gphdot gphpen gphprint gprefs gprobi_p gprobit gprobit_8 gr gr7 gr_copy gr_current gr_db gr_describe gr_dir gr_draw gr_draw_replay gr_drop gr_edit gr_editviewopts gr_example gr_example2 gr_export gr_print gr_qscheme gr_query gr_read gr_rename gr_replay gr_save gr_set gr_setscheme gr_table gr_undo gr_use graph graph7 grebar greigen greigen_7 greigen_8 grmeanby grmeanby_7 gs_fileinfo gs_filetype gs_graphinfo gs_stat gsort gwood h hadimvo hareg hausman haver he heck_d2 heckma_p heckman heckp_lf heckpr_p heckprob hel help hereg hetpr_lf hetpr_p hetprob hettest hexdump hilite hist hist_7 histogram hlogit hlu hmeans hotel hotelling hprobit hreg hsearch icd9 icd9_ff icd9p iis impute imtest inbase include inf infi infil infile infix inp inpu input ins insheet insp inspe inspec inspect integ inten intreg intreg_7 intreg_p intrg2_ll intrg_ll intrg_ll2 ipolate iqreg ir irf irf_create irfm iri is_svy is_svysum isid istdize ivprob_1_lf ivprob_lf ivprobit ivprobit_p ivreg ivreg_footnote ivtob_1_lf ivtob_lf ivtobit ivtobit_p jackknife jacknife jknife jknife_6 jknife_8 jkstat joinby kalarma1 kap kap_3 kapmeier kappa kapwgt kdensity kdensity_7 keep ksm ksmirnov ktau kwallis l la lab labe label labelbook ladder levels levelsof leverage lfit lfit_p li lincom line linktest lis list lloghet_glf lloghet_glf_sh lloghet_gp lloghet_ilf lloghet_ilf_sh lloghet_ip llogi_sw llogis_p llogist llogistic llogistichet lnorm_lf lnorm_sw lnorma_p lnormal lnormalhet lnormhet_glf lnormhet_glf_sh lnormhet_gp lnormhet_ilf lnormhet_ilf_sh lnormhet_ip lnskew0 loadingplot loc loca local log logi logis_lf logistic logistic_p logit logit_estat logit_p loglogs logrank loneway lookfor lookup lowess lowess_7 lpredict lrecomp lroc lroc_7 lrtest ls lsens lsens_7 lsens_x lstat ltable ltable_7 ltriang lv lvr2plot lvr2plot_7 m ma mac macr macro makecns man manova manova_estat manova_p manovatest mantel mark markin markout marksample mat mat_capp mat_order mat_put_rr mat_rapp mata mata_clear mata_describe mata_drop mata_matdescribe mata_matsave mata_matuse mata_memory mata_mlib mata_mosave mata_rename mata_which matalabel matcproc matlist matname matr matri matrix matrix_input__dlg matstrik mcc mcci md0_ md1_ md1debug_ md2_ md2debug_ mds mds_estat mds_p mdsconfig mdslong mdsmat mdsshepard mdytoe mdytof me_derd mean means median memory memsize meqparse mer merg merge mfp mfx mhelp mhodds minbound mixed_ll mixed_ll_reparm mkassert mkdir mkmat mkspline ml ml_5 ml_adjs ml_bhhhs ml_c_d ml_check ml_clear ml_cnt ml_debug ml_defd ml_e0 ml_e0_bfgs ml_e0_cycle ml_e0_dfp ml_e0i ml_e1 ml_e1_bfgs ml_e1_bhhh ml_e1_cycle ml_e1_dfp ml_e2 ml_e2_cycle ml_ebfg0 ml_ebfr0 ml_ebfr1 ml_ebh0q ml_ebhh0 ml_ebhr0 ml_ebr0i ml_ecr0i ml_edfp0 ml_edfr0 ml_edfr1 ml_edr0i ml_eds ml_eer0i ml_egr0i ml_elf ml_elf_bfgs ml_elf_bhhh ml_elf_cycle ml_elf_dfp ml_elfi ml_elfs ml_enr0i ml_enrr0 ml_erdu0 ml_erdu0_bfgs ml_erdu0_bhhh ml_erdu0_bhhhq ml_erdu0_cycle ml_erdu0_dfp ml_erdu0_nrbfgs ml_exde ml_footnote ml_geqnr ml_grad0 ml_graph ml_hbhhh ml_hd0 ml_hold ml_init ml_inv ml_log ml_max ml_mlout ml_mlout_8 ml_model ml_nb0 ml_opt ml_p ml_plot ml_query ml_rdgrd ml_repor ml_s_e ml_score ml_searc ml_technique ml_unhold mleval mlf_ mlmatbysum mlmatsum mlog mlogi mlogit mlogit_footnote mlogit_p mlopts mlsum mlvecsum mnl0_ mor more mov move mprobit mprobit_lf mprobit_p mrdu0_ mrdu1_ mvdecode mvencode mvreg mvreg_estat n nbreg nbreg_al nbreg_lf nbreg_p nbreg_sw nestreg net newey newey_7 newey_p news nl nl_7 nl_9 nl_9_p nl_p nl_p_7 nlcom nlcom_p nlexp2 nlexp2_7 nlexp2a nlexp2a_7 nlexp3 nlexp3_7 nlgom3 nlgom3_7 nlgom4 nlgom4_7 nlinit nllog3 nllog3_7 nllog4 nllog4_7 nlog_rd nlogit nlogit_p nlogitgen nlogittree nlpred no nobreak noi nois noisi noisil noisily note notes notes_dlg nptrend numlabel numlist odbc old_ver olo olog ologi ologi_sw ologit ologit_p ologitp on one onew onewa oneway op_colnm op_comp op_diff op_inv op_str opr opro oprob oprob_sw oprobi oprobi_p oprobit oprobitp opts_exclusive order orthog orthpoly ou out outf outfi outfil outfile outs outsh outshe outshee outsheet ovtest pac pac_7 palette parse parse_dissim pause pca pca_8 pca_display pca_estat pca_p pca_rotate pcamat pchart pchart_7 pchi pchi_7 pcorr pctile pentium pergram pergram_7 permute permute_8 personal peto_st pkcollapse pkcross pkequiv pkexamine pkexamine_7 pkshape pksumm pksumm_7 pl plo plot plugin pnorm pnorm_7 poisgof poiss_lf poiss_sw poisso_p poisson poisson_estat post postclose postfile postutil pperron pr prais prais_e prais_e2 prais_p predict predictnl preserve print pro prob probi probit probit_estat probit_p proc_time procoverlay procrustes procrustes_estat procrustes_p profiler prog progr progra program prop proportion prtest prtesti pwcorr pwd q\\s qby qbys qchi qchi_7 qladder qladder_7 qnorm qnorm_7 qqplot qqplot_7 qreg qreg_c qreg_p qreg_sw qu quadchk quantile quantile_7 que quer query range ranksum ratio rchart rchart_7 rcof recast reclink recode reg reg3 reg3_p regdw regr regre regre_p2 regres regres_p regress regress_estat regriv_p remap ren rena renam rename renpfix repeat replace report reshape restore ret retu retur return rm rmdir robvar roccomp roccomp_7 roccomp_8 rocf_lf rocfit rocfit_8 rocgold rocplot rocplot_7 roctab roctab_7 rolling rologit rologit_p rot rota rotat rotate rotatemat rreg rreg_p ru run runtest rvfplot rvfplot_7 rvpplot rvpplot_7 sa safesum sample sampsi sav save savedresults saveold sc sca scal scala scalar scatter scm_mine sco scob_lf scob_p scobi_sw scobit scor score scoreplot scoreplot_help scree screeplot screeplot_help sdtest sdtesti se search separate seperate serrbar serrbar_7 serset set set_defaults sfrancia sh she shel shell shewhart shewhart_7 signestimationsample signrank signtest simul simul_7 simulate simulate_8 sktest sleep slogit slogit_d2 slogit_p smooth snapspan so sor sort spearman spikeplot spikeplot_7 spikeplt spline_x split sqreg sqreg_p sret sretu sretur sreturn ssc st st_ct st_hc st_hcd st_hcd_sh st_is st_issys st_note st_promo st_set st_show st_smpl st_subid stack statsby statsby_8 stbase stci stci_7 stcox stcox_estat stcox_fr stcox_fr_ll stcox_p stcox_sw stcoxkm stcoxkm_7 stcstat stcurv stcurve stcurve_7 stdes stem stepwise stereg stfill stgen stir stjoin stmc stmh stphplot stphplot_7 stphtest stphtest_7 stptime strate strate_7 streg streg_sw streset sts sts_7 stset stsplit stsum sttocc sttoct stvary stweib su suest suest_8 sum summ summa summar summari summariz summarize sunflower sureg survcurv survsum svar svar_p svmat svy svy_disp svy_dreg svy_est svy_est_7 svy_estat svy_get svy_gnbreg_p svy_head svy_header svy_heckman_p svy_heckprob_p svy_intreg_p svy_ivreg_p svy_logistic_p svy_logit_p svy_mlogit_p svy_nbreg_p svy_ologit_p svy_oprobit_p svy_poisson_p svy_probit_p svy_regress_p svy_sub svy_sub_7 svy_x svy_x_7 svy_x_p svydes svydes_8 svygen svygnbreg svyheckman svyheckprob svyintreg svyintreg_7 svyintrg svyivreg svylc svylog_p svylogit svymarkout svymarkout_8 svymean svymlog svymlogit svynbreg svyolog svyologit svyoprob svyoprobit svyopts svypois svypois_7 svypoisson svyprobit svyprobt svyprop svyprop_7 svyratio svyreg svyreg_p svyregress svyset svyset_7 svyset_8 svytab svytab_7 svytest svytotal sw sw_8 swcnreg swcox swereg swilk swlogis swlogit swologit swoprbt swpois swprobit swqreg swtobit swweib symmetry symmi symplot symplot_7 syntax sysdescribe sysdir sysuse szroeter ta tab tab1 tab2 tab_or tabd tabdi tabdis tabdisp tabi table tabodds tabodds_7 tabstat tabu tabul tabula tabulat tabulate te tempfile tempname tempvar tes test testnl testparm teststd tetrachoric time_it timer tis tob tobi tobit tobit_p tobit_sw token tokeni tokeniz tokenize tostring total translate translator transmap treat_ll treatr_p treatreg trim trnb_cons trnb_mean trpoiss_d2 trunc_ll truncr_p truncreg tsappend tset tsfill tsline tsline_ex tsreport tsrevar tsrline tsset tssmooth tsunab ttest ttesti tut_chk tut_wait tutorial tw tware_st two twoway twoway__fpfit_serset twoway__function_gen twoway__histogram_gen twoway__ipoint_serset twoway__ipoints_serset twoway__kdensity_gen twoway__lfit_serset twoway__normgen_gen twoway__pci_serset twoway__qfit_serset twoway__scatteri_serset twoway__sunflower_gen twoway_ksm_serset ty typ type typeof u unab unabbrev unabcmd update us use uselabel var var_mkcompanion var_p varbasic varfcast vargranger varirf varirf_add varirf_cgraph varirf_create varirf_ctable varirf_describe varirf_dir varirf_drop varirf_erase varirf_graph varirf_ograph varirf_rename varirf_set varirf_table varlist varlmar varnorm varsoc varstable varstable_w varstable_w2 varwle vce vec vec_fevd vec_mkphi vec_p vec_p_w vecirf_create veclmar veclmar_w vecnorm vecnorm_w vecrank vecstable verinst vers versi versio version view viewsource vif vwls wdatetof webdescribe webseek webuse weib1_lf weib2_lf weib_lf weib_lf0 weibhet_glf weibhet_glf_sh weibhet_glfa weibhet_glfa_sh weibhet_gp weibhet_ilf weibhet_ilf_sh weibhet_ilfa weibhet_ilfa_sh weibhet_ip weibu_sw weibul_p weibull weibull_c weibull_s weibullhet wh whelp whi which whil while wilc_st wilcoxon win wind windo window winexec wntestb wntestb_7 wntestq xchart xchart_7 xcorr xcorr_7 xi xi_6 xmlsav xmlsave xmluse xpose xsh xshe xshel xshell xt_iis xt_tis xtab_p xtabond xtbin_p xtclog xtcloglog xtcloglog_8 xtcloglog_d2 xtcloglog_pa_p xtcloglog_re_p xtcnt_p xtcorr xtdata xtdes xtfront_p xtfrontier xtgee xtgee_elink xtgee_estat xtgee_makeivar xtgee_p xtgee_plink xtgls xtgls_p xthaus xthausman xtht_p xthtaylor xtile xtint_p xtintreg xtintreg_8 xtintreg_d2 xtintreg_p xtivp_1 xtivp_2 xtivreg xtline xtline_ex xtlogit xtlogit_8 xtlogit_d2 xtlogit_fe_p xtlogit_pa_p xtlogit_re_p xtmixed xtmixed_estat xtmixed_p xtnb_fe xtnb_lf xtnbreg xtnbreg_pa_p xtnbreg_refe_p xtpcse xtpcse_p xtpois xtpoisson xtpoisson_d2 xtpoisson_pa_p xtpoisson_refe_p xtpred xtprobit xtprobit_8 xtprobit_d2 xtprobit_re_p xtps_fe xtps_lf xtps_ren xtps_ren_8 xtrar_p xtrc xtrc_p xtrchh xtrefe_p xtreg xtreg_be xtreg_fe xtreg_ml xtreg_pa_p xtreg_re xtregar xtrere_p xtset xtsf_ll xtsf_llti xtsum xttab xttest0 xttobit xttobit_8 xttobit_p xttrans yx yxview__barlike_draw yxview_area_draw yxview_bar_draw yxview_dot_draw yxview_dropline_draw yxview_function_draw yxview_iarrow_draw yxview_ilabels_draw yxview_normal_draw yxview_pcarrow_draw yxview_pcbarrow_draw yxview_pccapsym_draw yxview_pcscatter_draw yxview_pcspike_draw yxview_rarea_draw yxview_rbar_draw yxview_rbarm_draw yxview_rcap_draw yxview_rcapsym_draw yxview_rconnected_draw yxview_rline_draw yxview_rscatter_draw yxview_rspike_draw yxview_spike_draw yxview_sunflower_draw zap_s zinb zinb_llf zinb_plf zip zip_llf zip_p zip_plf zt_ct_5 zt_hc_5 zt_hcd_5 zt_is_5 zt_iss_5 zt_sho_5 zt_smp_5 ztbase_5 ztcox_5 ztdes_5 ztereg_5 ztfill_5 ztgen_5 ztir_5 ztjoin_5 ztnb ztnb_p ztp ztp_p zts_5 ztset_5 ztspli_5 ztsum_5 zttoct_5 ztvary_5 ztweib_5',
13405 contains: [
13406 {
13407 className: 'symbol',
13408 begin: /`[a-zA-Z0-9_]+'/
13409 },
13410 {
13411 className: 'variable',
13412 begin: /\$\{?[a-zA-Z0-9_]+\}?/
13413 },
13414 {
13415 className: 'string',
13416 variants: [
13417 {begin: '`"[^\r\n]*?"\''},
13418 {begin: '"[^\r\n"]*"'}
13419 ]
13420 },
13421
13422 {
13423 className: 'built_in',
13424 variants: [
13425 {
13426 begin: '\\b(abs|acos|asin|atan|atan2|atanh|ceil|cloglog|comb|cos|digamma|exp|floor|invcloglog|invlogit|ln|lnfact|lnfactorial|lngamma|log|log10|max|min|mod|reldif|round|sign|sin|sqrt|sum|tan|tanh|trigamma|trunc|betaden|Binomial|binorm|binormal|chi2|chi2tail|dgammapda|dgammapdada|dgammapdadx|dgammapdx|dgammapdxdx|F|Fden|Ftail|gammaden|gammap|ibeta|invbinomial|invchi2|invchi2tail|invF|invFtail|invgammap|invibeta|invnchi2|invnFtail|invnibeta|invnorm|invnormal|invttail|nbetaden|nchi2|nFden|nFtail|nibeta|norm|normal|normalden|normd|npnchi2|tden|ttail|uniform|abbrev|char|index|indexnot|length|lower|ltrim|match|plural|proper|real|regexm|regexr|regexs|reverse|rtrim|string|strlen|strlower|strltrim|strmatch|strofreal|strpos|strproper|strreverse|strrtrim|strtrim|strupper|subinstr|subinword|substr|trim|upper|word|wordcount|_caller|autocode|byteorder|chop|clip|cond|e|epsdouble|epsfloat|group|inlist|inrange|irecode|matrix|maxbyte|maxdouble|maxfloat|maxint|maxlong|mi|minbyte|mindouble|minfloat|minint|minlong|missing|r|recode|replay|return|s|scalar|d|date|day|dow|doy|halfyear|mdy|month|quarter|week|year|d|daily|dofd|dofh|dofm|dofq|dofw|dofy|h|halfyearly|hofd|m|mofd|monthly|q|qofd|quarterly|tin|twithin|w|weekly|wofd|y|yearly|yh|ym|yofd|yq|yw|cholesky|colnumb|colsof|corr|det|diag|diag0cnt|el|get|hadamard|I|inv|invsym|issym|issymmetric|J|matmissing|matuniform|mreldif|nullmat|rownumb|rowsof|sweep|syminv|trace|vec|vecdiag)(?=\\(|$)'
13427 }
13428 ]
13429 },
13430
13431 hljs.COMMENT('^[ \t]*\\*.*$', false),
13432 hljs.C_LINE_COMMENT_MODE,
13433 hljs.C_BLOCK_COMMENT_MODE
13434 ]
13435 };
13436}
13437},{name:"step21",create:/*
13438Language: STEP Part 21 (ISO 10303-21)
13439Contributors: Adam Joseph Cook <adam.joseph.cook@gmail.com>
13440Description: Syntax highlighter for STEP Part 21 files (ISO 10303-21).
13441*/
13442
13443function(hljs) {
13444 var STEP21_IDENT_RE = '[A-Z_][A-Z0-9_.]*';
13445 var STEP21_KEYWORDS = {
13446 keyword: 'HEADER ENDSEC DATA'
13447 };
13448 var STEP21_START = {
13449 className: 'meta',
13450 begin: 'ISO-10303-21;',
13451 relevance: 10
13452 };
13453 var STEP21_CLOSE = {
13454 className: 'meta',
13455 begin: 'END-ISO-10303-21;',
13456 relevance: 10
13457 };
13458
13459 return {
13460 aliases: ['p21', 'step', 'stp'],
13461 case_insensitive: true, // STEP 21 is case insensitive in theory, in practice all non-comments are capitalized.
13462 lexemes: STEP21_IDENT_RE,
13463 keywords: STEP21_KEYWORDS,
13464 contains: [
13465 STEP21_START,
13466 STEP21_CLOSE,
13467 hljs.C_LINE_COMMENT_MODE,
13468 hljs.C_BLOCK_COMMENT_MODE,
13469 hljs.COMMENT('/\\*\\*!', '\\*/'),
13470 hljs.C_NUMBER_MODE,
13471 hljs.inherit(hljs.APOS_STRING_MODE, {illegal: null}),
13472 hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null}),
13473 {
13474 className: 'string',
13475 begin: "'", end: "'"
13476 },
13477 {
13478 className: 'symbol',
13479 variants: [
13480 {
13481 begin: '#', end: '\\d+',
13482 illegal: '\\W'
13483 }
13484 ]
13485 }
13486 ]
13487 };
13488}
13489},{name:"stylus",create:/*
13490Language: Stylus
13491Author: Bryant Williams <b.n.williams@gmail.com>
13492Description: Stylus (https://github.com/LearnBoost/stylus/)
13493Category: css
13494*/
13495
13496function(hljs) {
13497
13498 var VARIABLE = {
13499 className: 'variable',
13500 begin: '\\$' + hljs.IDENT_RE
13501 };
13502
13503 var HEX_COLOR = {
13504 className: 'number',
13505 begin: '#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})'
13506 };
13507
13508 var AT_KEYWORDS = [
13509 'charset',
13510 'css',
13511 'debug',
13512 'extend',
13513 'font-face',
13514 'for',
13515 'import',
13516 'include',
13517 'media',
13518 'mixin',
13519 'page',
13520 'warn',
13521 'while'
13522 ];
13523
13524 var PSEUDO_SELECTORS = [
13525 'after',
13526 'before',
13527 'first-letter',
13528 'first-line',
13529 'active',
13530 'first-child',
13531 'focus',
13532 'hover',
13533 'lang',
13534 'link',
13535 'visited'
13536 ];
13537
13538 var TAGS = [
13539 'a',
13540 'abbr',
13541 'address',
13542 'article',
13543 'aside',
13544 'audio',
13545 'b',
13546 'blockquote',
13547 'body',
13548 'button',
13549 'canvas',
13550 'caption',
13551 'cite',
13552 'code',
13553 'dd',
13554 'del',
13555 'details',
13556 'dfn',
13557 'div',
13558 'dl',
13559 'dt',
13560 'em',
13561 'fieldset',
13562 'figcaption',
13563 'figure',
13564 'footer',
13565 'form',
13566 'h1',
13567 'h2',
13568 'h3',
13569 'h4',
13570 'h5',
13571 'h6',
13572 'header',
13573 'hgroup',
13574 'html',
13575 'i',
13576 'iframe',
13577 'img',
13578 'input',
13579 'ins',
13580 'kbd',
13581 'label',
13582 'legend',
13583 'li',
13584 'mark',
13585 'menu',
13586 'nav',
13587 'object',
13588 'ol',
13589 'p',
13590 'q',
13591 'quote',
13592 'samp',
13593 'section',
13594 'span',
13595 'strong',
13596 'summary',
13597 'sup',
13598 'table',
13599 'tbody',
13600 'td',
13601 'textarea',
13602 'tfoot',
13603 'th',
13604 'thead',
13605 'time',
13606 'tr',
13607 'ul',
13608 'var',
13609 'video'
13610 ];
13611
13612 var TAG_END = '[\\.\\s\\n\\[\\:,]';
13613
13614 var ATTRIBUTES = [
13615 'align-content',
13616 'align-items',
13617 'align-self',
13618 'animation',
13619 'animation-delay',
13620 'animation-direction',
13621 'animation-duration',
13622 'animation-fill-mode',
13623 'animation-iteration-count',
13624 'animation-name',
13625 'animation-play-state',
13626 'animation-timing-function',
13627 'auto',
13628 'backface-visibility',
13629 'background',
13630 'background-attachment',
13631 'background-clip',
13632 'background-color',
13633 'background-image',
13634 'background-origin',
13635 'background-position',
13636 'background-repeat',
13637 'background-size',
13638 'border',
13639 'border-bottom',
13640 'border-bottom-color',
13641 'border-bottom-left-radius',
13642 'border-bottom-right-radius',
13643 'border-bottom-style',
13644 'border-bottom-width',
13645 'border-collapse',
13646 'border-color',
13647 'border-image',
13648 'border-image-outset',
13649 'border-image-repeat',
13650 'border-image-slice',
13651 'border-image-source',
13652 'border-image-width',
13653 'border-left',
13654 'border-left-color',
13655 'border-left-style',
13656 'border-left-width',
13657 'border-radius',
13658 'border-right',
13659 'border-right-color',
13660 'border-right-style',
13661 'border-right-width',
13662 'border-spacing',
13663 'border-style',
13664 'border-top',
13665 'border-top-color',
13666 'border-top-left-radius',
13667 'border-top-right-radius',
13668 'border-top-style',
13669 'border-top-width',
13670 'border-width',
13671 'bottom',
13672 'box-decoration-break',
13673 'box-shadow',
13674 'box-sizing',
13675 'break-after',
13676 'break-before',
13677 'break-inside',
13678 'caption-side',
13679 'clear',
13680 'clip',
13681 'clip-path',
13682 'color',
13683 'column-count',
13684 'column-fill',
13685 'column-gap',
13686 'column-rule',
13687 'column-rule-color',
13688 'column-rule-style',
13689 'column-rule-width',
13690 'column-span',
13691 'column-width',
13692 'columns',
13693 'content',
13694 'counter-increment',
13695 'counter-reset',
13696 'cursor',
13697 'direction',
13698 'display',
13699 'empty-cells',
13700 'filter',
13701 'flex',
13702 'flex-basis',
13703 'flex-direction',
13704 'flex-flow',
13705 'flex-grow',
13706 'flex-shrink',
13707 'flex-wrap',
13708 'float',
13709 'font',
13710 'font-family',
13711 'font-feature-settings',
13712 'font-kerning',
13713 'font-language-override',
13714 'font-size',
13715 'font-size-adjust',
13716 'font-stretch',
13717 'font-style',
13718 'font-variant',
13719 'font-variant-ligatures',
13720 'font-weight',
13721 'height',
13722 'hyphens',
13723 'icon',
13724 'image-orientation',
13725 'image-rendering',
13726 'image-resolution',
13727 'ime-mode',
13728 'inherit',
13729 'initial',
13730 'justify-content',
13731 'left',
13732 'letter-spacing',
13733 'line-height',
13734 'list-style',
13735 'list-style-image',
13736 'list-style-position',
13737 'list-style-type',
13738 'margin',
13739 'margin-bottom',
13740 'margin-left',
13741 'margin-right',
13742 'margin-top',
13743 'marks',
13744 'mask',
13745 'max-height',
13746 'max-width',
13747 'min-height',
13748 'min-width',
13749 'nav-down',
13750 'nav-index',
13751 'nav-left',
13752 'nav-right',
13753 'nav-up',
13754 'none',
13755 'normal',
13756 'object-fit',
13757 'object-position',
13758 'opacity',
13759 'order',
13760 'orphans',
13761 'outline',
13762 'outline-color',
13763 'outline-offset',
13764 'outline-style',
13765 'outline-width',
13766 'overflow',
13767 'overflow-wrap',
13768 'overflow-x',
13769 'overflow-y',
13770 'padding',
13771 'padding-bottom',
13772 'padding-left',
13773 'padding-right',
13774 'padding-top',
13775 'page-break-after',
13776 'page-break-before',
13777 'page-break-inside',
13778 'perspective',
13779 'perspective-origin',
13780 'pointer-events',
13781 'position',
13782 'quotes',
13783 'resize',
13784 'right',
13785 'tab-size',
13786 'table-layout',
13787 'text-align',
13788 'text-align-last',
13789 'text-decoration',
13790 'text-decoration-color',
13791 'text-decoration-line',
13792 'text-decoration-style',
13793 'text-indent',
13794 'text-overflow',
13795 'text-rendering',
13796 'text-shadow',
13797 'text-transform',
13798 'text-underline-position',
13799 'top',
13800 'transform',
13801 'transform-origin',
13802 'transform-style',
13803 'transition',
13804 'transition-delay',
13805 'transition-duration',
13806 'transition-property',
13807 'transition-timing-function',
13808 'unicode-bidi',
13809 'vertical-align',
13810 'visibility',
13811 'white-space',
13812 'widows',
13813 'width',
13814 'word-break',
13815 'word-spacing',
13816 'word-wrap',
13817 'z-index'
13818 ];
13819
13820 // illegals
13821 var ILLEGAL = [
13822 '\\{',
13823 '\\}',
13824 '\\?',
13825 '(\\bReturn\\b)', // monkey
13826 '(\\bEnd\\b)', // monkey
13827 '(\\bend\\b)', // vbscript
13828 ';', // sql
13829 '#\\s', // markdown
13830 '\\*\\s', // markdown
13831 '===\\s', // markdown
13832 '\\|',
13833 '%', // prolog
13834 ];
13835
13836 return {
13837 aliases: ['styl'],
13838 case_insensitive: false,
13839 illegal: '(' + ILLEGAL.join('|') + ')',
13840 keywords: 'if else for in',
13841 contains: [
13842
13843 // strings
13844 hljs.QUOTE_STRING_MODE,
13845 hljs.APOS_STRING_MODE,
13846
13847 // comments
13848 hljs.C_LINE_COMMENT_MODE,
13849 hljs.C_BLOCK_COMMENT_MODE,
13850
13851 // hex colors
13852 HEX_COLOR,
13853
13854 // class tag
13855 {
13856 begin: '\\.[a-zA-Z][a-zA-Z0-9_-]*' + TAG_END,
13857 returnBegin: true,
13858 contains: [
13859 {className: 'selector-class', begin: '\\.[a-zA-Z][a-zA-Z0-9_-]*'}
13860 ]
13861 },
13862
13863 // id tag
13864 {
13865 begin: '\\#[a-zA-Z][a-zA-Z0-9_-]*' + TAG_END,
13866 returnBegin: true,
13867 contains: [
13868 {className: 'selector-id', begin: '\\#[a-zA-Z][a-zA-Z0-9_-]*'}
13869 ]
13870 },
13871
13872 // tags
13873 {
13874 begin: '\\b(' + TAGS.join('|') + ')' + TAG_END,
13875 returnBegin: true,
13876 contains: [
13877 {className: 'selector-tag', begin: '\\b[a-zA-Z][a-zA-Z0-9_-]*'}
13878 ]
13879 },
13880
13881 // psuedo selectors
13882 {
13883 begin: '&?:?:\\b(' + PSEUDO_SELECTORS.join('|') + ')' + TAG_END
13884 },
13885
13886 // @ keywords
13887 {
13888 begin: '\@(' + AT_KEYWORDS.join('|') + ')\\b'
13889 },
13890
13891 // variables
13892 VARIABLE,
13893
13894 // dimension
13895 hljs.CSS_NUMBER_MODE,
13896
13897 // number
13898 hljs.NUMBER_MODE,
13899
13900 // functions
13901 // - only from beginning of line + whitespace
13902 {
13903 className: 'function',
13904 begin: '^[a-zA-Z][a-zA-Z0-9_\-]*\\(.*\\)',
13905 illegal: '[\\n]',
13906 returnBegin: true,
13907 contains: [
13908 {className: 'title', begin: '\\b[a-zA-Z][a-zA-Z0-9_\-]*'},
13909 {
13910 className: 'params',
13911 begin: /\(/,
13912 end: /\)/,
13913 contains: [
13914 HEX_COLOR,
13915 VARIABLE,
13916 hljs.APOS_STRING_MODE,
13917 hljs.CSS_NUMBER_MODE,
13918 hljs.NUMBER_MODE,
13919 hljs.QUOTE_STRING_MODE
13920 ]
13921 }
13922 ]
13923 },
13924
13925 // attributes
13926 // - only from beginning of line + whitespace
13927 // - must have whitespace after it
13928 {
13929 className: 'attribute',
13930 begin: '\\b(' + ATTRIBUTES.reverse().join('|') + ')\\b'
13931 }
13932 ]
13933 };
13934}
13935},{name:"swift",create:/*
13936Language: Swift
13937Author: Chris Eidhof <chris@eidhof.nl>
13938Contributors: Nate Cook <natecook@gmail.com>
13939Category: system
13940*/
13941
13942
13943function(hljs) {
13944 var SWIFT_KEYWORDS = {
13945 keyword: '__COLUMN__ __FILE__ __FUNCTION__ __LINE__ as as! as? associativity ' +
13946 'break case catch class continue convenience default defer deinit didSet do ' +
13947 'dynamic dynamicType else enum extension fallthrough false final for func ' +
13948 'get guard if import in indirect infix init inout internal is lazy left let ' +
13949 'mutating nil none nonmutating operator optional override postfix precedence ' +
13950 'prefix private protocol Protocol public repeat required rethrows return ' +
13951 'right self Self set static struct subscript super switch throw throws true ' +
13952 'try try! try? Type typealias unowned var weak where while willSet',
13953 literal: 'true false nil',
13954 built_in: 'abs advance alignof alignofValue anyGenerator assert assertionFailure ' +
13955 'bridgeFromObjectiveC bridgeFromObjectiveCUnconditional bridgeToObjectiveC ' +
13956 'bridgeToObjectiveCUnconditional c contains count countElements countLeadingZeros ' +
13957 'debugPrint debugPrintln distance dropFirst dropLast dump encodeBitsAsWords ' +
13958 'enumerate equal fatalError filter find getBridgedObjectiveCType getVaList ' +
13959 'indices insertionSort isBridgedToObjectiveC isBridgedVerbatimToObjectiveC ' +
13960 'isUniquelyReferenced isUniquelyReferencedNonObjC join lazy lexicographicalCompare ' +
13961 'map max maxElement min minElement numericCast overlaps partition posix ' +
13962 'precondition preconditionFailure print println quickSort readLine reduce reflect ' +
13963 'reinterpretCast reverse roundUpToAlignment sizeof sizeofValue sort split ' +
13964 'startsWith stride strideof strideofValue swap toString transcode ' +
13965 'underestimateCount unsafeAddressOf unsafeBitCast unsafeDowncast unsafeUnwrap ' +
13966 'unsafeReflect withExtendedLifetime withObjectAtPlusZero withUnsafePointer ' +
13967 'withUnsafePointerToObject withUnsafeMutablePointer withUnsafeMutablePointers ' +
13968 'withUnsafePointer withUnsafePointers withVaList zip'
13969 };
13970
13971 var TYPE = {
13972 className: 'type',
13973 begin: '\\b[A-Z][\\w\']*',
13974 relevance: 0
13975 };
13976 var BLOCK_COMMENT = hljs.COMMENT(
13977 '/\\*',
13978 '\\*/',
13979 {
13980 contains: ['self']
13981 }
13982 );
13983 var SUBST = {
13984 className: 'subst',
13985 begin: /\\\(/, end: '\\)',
13986 keywords: SWIFT_KEYWORDS,
13987 contains: [] // assigned later
13988 };
13989 var NUMBERS = {
13990 className: 'number',
13991 begin: '\\b([\\d_]+(\\.[\\deE_]+)?|0x[a-fA-F0-9_]+(\\.[a-fA-F0-9p_]+)?|0b[01_]+|0o[0-7_]+)\\b',
13992 relevance: 0
13993 };
13994 var QUOTE_STRING_MODE = hljs.inherit(hljs.QUOTE_STRING_MODE, {
13995 contains: [SUBST, hljs.BACKSLASH_ESCAPE]
13996 });
13997 SUBST.contains = [NUMBERS];
13998
13999 return {
14000 keywords: SWIFT_KEYWORDS,
14001 contains: [
14002 QUOTE_STRING_MODE,
14003 hljs.C_LINE_COMMENT_MODE,
14004 BLOCK_COMMENT,
14005 TYPE,
14006 NUMBERS,
14007 {
14008 className: 'function',
14009 beginKeywords: 'func', end: '{', excludeEnd: true,
14010 contains: [
14011 hljs.inherit(hljs.TITLE_MODE, {
14012 begin: /[A-Za-z$_][0-9A-Za-z$_]*/,
14013 illegal: /\(/
14014 }),
14015 {
14016 begin: /</, end: />/,
14017 illegal: />/
14018 },
14019 {
14020 className: 'params',
14021 begin: /\(/, end: /\)/, endsParent: true,
14022 keywords: SWIFT_KEYWORDS,
14023 contains: [
14024 'self',
14025 NUMBERS,
14026 QUOTE_STRING_MODE,
14027 hljs.C_BLOCK_COMMENT_MODE,
14028 {begin: ':'} // relevance booster
14029 ],
14030 illegal: /["']/
14031 }
14032 ],
14033 illegal: /\[|%/
14034 },
14035 {
14036 className: 'class',
14037 beginKeywords: 'struct protocol class extension enum',
14038 keywords: SWIFT_KEYWORDS,
14039 end: '\\{',
14040 excludeEnd: true,
14041 contains: [
14042 hljs.inherit(hljs.TITLE_MODE, {begin: /[A-Za-z$_][0-9A-Za-z$_]*/})
14043 ]
14044 },
14045 {
14046 className: 'meta', // @attributes
14047 begin: '(@warn_unused_result|@exported|@lazy|@noescape|' +
14048 '@NSCopying|@NSManaged|@objc|@convention|@required|' +
14049 '@noreturn|@IBAction|@IBDesignable|@IBInspectable|@IBOutlet|' +
14050 '@infix|@prefix|@postfix|@autoclosure|@testable|@available|' +
14051 '@nonobjc|@NSApplicationMain|@UIApplicationMain)'
14052
14053 },
14054 {
14055 beginKeywords: 'import', end: /$/,
14056 contains: [hljs.C_LINE_COMMENT_MODE, BLOCK_COMMENT]
14057 }
14058 ]
14059 };
14060}
14061},{name:"tcl",create:/*
14062Language: Tcl
14063Author: Radek Liska <radekliska@gmail.com>
14064*/
14065
14066function(hljs) {
14067 return {
14068 aliases: ['tk'],
14069 keywords: 'after append apply array auto_execok auto_import auto_load auto_mkindex ' +
14070 'auto_mkindex_old auto_qualify auto_reset bgerror binary break catch cd chan clock ' +
14071 'close concat continue dde dict encoding eof error eval exec exit expr fblocked ' +
14072 'fconfigure fcopy file fileevent filename flush for foreach format gets glob global ' +
14073 'history http if incr info interp join lappend|10 lassign|10 lindex|10 linsert|10 list ' +
14074 'llength|10 load lrange|10 lrepeat|10 lreplace|10 lreverse|10 lsearch|10 lset|10 lsort|10 '+
14075 'mathfunc mathop memory msgcat namespace open package parray pid pkg::create pkg_mkIndex '+
14076 'platform platform::shell proc puts pwd read refchan regexp registry regsub|10 rename '+
14077 'return safe scan seek set socket source split string subst switch tcl_endOfWord '+
14078 'tcl_findLibrary tcl_startOfNextWord tcl_startOfPreviousWord tcl_wordBreakAfter '+
14079 'tcl_wordBreakBefore tcltest tclvars tell time tm trace unknown unload unset update '+
14080 'uplevel upvar variable vwait while',
14081 contains: [
14082 hljs.COMMENT(';[ \\t]*#', '$'),
14083 hljs.COMMENT('^[ \\t]*#', '$'),
14084 {
14085 beginKeywords: 'proc',
14086 end: '[\\{]',
14087 excludeEnd: true,
14088 contains: [
14089 {
14090 className: 'title',
14091 begin: '[ \\t\\n\\r]+(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*',
14092 end: '[ \\t\\n\\r]',
14093 endsWithParent: true,
14094 excludeEnd: true
14095 }
14096 ]
14097 },
14098 {
14099 excludeEnd: true,
14100 variants: [
14101 {
14102 begin: '\\$(\\{)?(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*\\(([a-zA-Z0-9_])*\\)',
14103 end: '[^a-zA-Z0-9_\\}\\$]'
14104 },
14105 {
14106 begin: '\\$(\\{)?(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*',
14107 end: '(\\))?[^a-zA-Z0-9_\\}\\$]'
14108 }
14109 ]
14110 },
14111 {
14112 className: 'string',
14113 contains: [hljs.BACKSLASH_ESCAPE],
14114 variants: [
14115 hljs.inherit(hljs.APOS_STRING_MODE, {illegal: null}),
14116 hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null})
14117 ]
14118 },
14119 {
14120 className: 'number',
14121 variants: [hljs.BINARY_NUMBER_MODE, hljs.C_NUMBER_MODE]
14122 }
14123 ]
14124 }
14125}
14126},{name:"tex",create:/*
14127Language: TeX
14128Author: Vladimir Moskva <vladmos@gmail.com>
14129Website: http://fulc.ru/
14130Category: markup
14131*/
14132
14133function(hljs) {
14134 var COMMAND = {
14135 className: 'tag',
14136 begin: /\\/,
14137 relevance: 0,
14138 contains: [
14139 {
14140 className: 'name',
14141 variants: [
14142 {begin: /[a-zA-Zа-яА-я]+[*]?/},
14143 {begin: /[^a-zA-Zа-яА-я0-9]/}
14144 ],
14145 starts: {
14146 endsWithParent: true,
14147 relevance: 0,
14148 contains: [
14149 {
14150 className: 'string', // because it looks like attributes in HTML tags
14151 variants: [
14152 {begin: /\[/, end: /\]/},
14153 {begin: /\{/, end: /\}/}
14154 ]
14155 },
14156 {
14157 begin: /\s*=\s*/, endsWithParent: true,
14158 relevance: 0,
14159 contains: [
14160 {
14161 className: 'number',
14162 begin: /-?\d*\.?\d+(pt|pc|mm|cm|in|dd|cc|ex|em)?/
14163 }
14164 ]
14165 }
14166 ]
14167 }
14168 }
14169 ]
14170 };
14171
14172 return {
14173 contains: [
14174 COMMAND,
14175 {
14176 className: 'formula',
14177 contains: [COMMAND],
14178 relevance: 0,
14179 variants: [
14180 {begin: /\$\$/, end: /\$\$/},
14181 {begin: /\$/, end: /\$/}
14182 ]
14183 },
14184 hljs.COMMENT(
14185 '%',
14186 '$',
14187 {
14188 relevance: 0
14189 }
14190 )
14191 ]
14192 };
14193}
14194},{name:"thrift",create:/*
14195Language: Thrift
14196Author: Oleg Efimov <efimovov@gmail.com>
14197Description: Thrift message definition format
14198Category: protocols
14199*/
14200
14201function(hljs) {
14202 var BUILT_IN_TYPES = 'bool byte i16 i32 i64 double string binary';
14203 return {
14204 keywords: {
14205 keyword:
14206 'namespace const typedef struct enum service exception void oneway set list map required optional',
14207 built_in:
14208 BUILT_IN_TYPES,
14209 literal:
14210 'true false'
14211 },
14212 contains: [
14213 hljs.QUOTE_STRING_MODE,
14214 hljs.NUMBER_MODE,
14215 hljs.C_LINE_COMMENT_MODE,
14216 hljs.C_BLOCK_COMMENT_MODE,
14217 {
14218 className: 'class',
14219 beginKeywords: 'struct enum service exception', end: /\{/,
14220 illegal: /\n/,
14221 contains: [
14222 hljs.inherit(hljs.TITLE_MODE, {
14223 starts: {endsWithParent: true, excludeEnd: true} // hack: eating everything after the first title
14224 })
14225 ]
14226 },
14227 {
14228 begin: '\\b(set|list|map)\\s*<', end: '>',
14229 keywords: BUILT_IN_TYPES,
14230 contains: ['self']
14231 }
14232 ]
14233 };
14234}
14235},{name:"tp",create:/*
14236Language: TP
14237Author: Jay Strybis <jay.strybis@gmail.com>
14238Description: FANUC TP programming language (TPP).
14239*/
14240
14241
14242function(hljs) {
14243 var TPID = {
14244 className: 'number',
14245 begin: '[1-9][0-9]*', /* no leading zeros */
14246 relevance: 0
14247 };
14248 var TPLABEL = {
14249 className: 'symbol',
14250 begin: ':[^\\]]+'
14251 };
14252 var TPDATA = {
14253 className: 'built_in',
14254 begin: '(AR|P|PAYLOAD|PR|R|SR|RSR|LBL|VR|UALM|MESSAGE|UTOOL|UFRAME|TIMER|\
14255 TIMER_OVERFLOW|JOINT_MAX_SPEED|RESUME_PROG|DIAG_REC)\\[', end: '\\]',
14256 contains: [
14257 'self',
14258 TPID,
14259 TPLABEL
14260 ]
14261 };
14262 var TPIO = {
14263 className: 'built_in',
14264 begin: '(AI|AO|DI|DO|F|RI|RO|UI|UO|GI|GO|SI|SO)\\[', end: '\\]',
14265 contains: [
14266 'self',
14267 TPID,
14268 hljs.QUOTE_STRING_MODE, /* for pos section at bottom */
14269 TPLABEL
14270 ]
14271 };
14272
14273 return {
14274 keywords: {
14275 keyword:
14276 'ABORT ACC ADJUST AND AP_LD BREAK CALL CNT COL CONDITION CONFIG DA DB ' +
14277 'DIV DETECT ELSE END ENDFOR ERR_NUM ERROR_PROG FINE FOR GP GUARD INC ' +
14278 'IF JMP LINEAR_MAX_SPEED LOCK MOD MONITOR OFFSET Offset OR OVERRIDE ' +
14279 'PAUSE PREG PTH RT_LD RUN SELECT SKIP Skip TA TB TO TOOL_OFFSET ' +
14280 'Tool_Offset UF UT UFRAME_NUM UTOOL_NUM UNLOCK WAIT X Y Z W P R STRLEN ' +
14281 'SUBSTR FINDSTR VOFFSET PROG ATTR MN POS',
14282 literal:
14283 'ON OFF max_speed LPOS JPOS ENABLE DISABLE START STOP RESET'
14284 },
14285 contains: [
14286 TPDATA,
14287 TPIO,
14288 {
14289 className: 'keyword',
14290 begin: '/(PROG|ATTR|MN|POS|END)\\b'
14291 },
14292 {
14293 /* this is for cases like ,CALL */
14294 className: 'keyword',
14295 begin: '(CALL|RUN|POINT_LOGIC|LBL)\\b'
14296 },
14297 {
14298 /* this is for cases like CNT100 where the default lexemes do not
14299 * separate the keyword and the number */
14300 className: 'keyword',
14301 begin: '\\b(ACC|CNT|Skip|Offset|PSPD|RT_LD|AP_LD|Tool_Offset)'
14302 },
14303 {
14304 /* to catch numbers that do not have a word boundary on the left */
14305 className: 'number',
14306 begin: '\\d+(sec|msec|mm/sec|cm/min|inch/min|deg/sec|mm|in|cm)?\\b',
14307 relevance: 0
14308 },
14309 hljs.COMMENT('//', '[;$]'),
14310 hljs.COMMENT('!', '[;$]'),
14311 hljs.COMMENT('--eg:', '$'),
14312 hljs.QUOTE_STRING_MODE,
14313 {
14314 className: 'string',
14315 begin: '\'', end: '\''
14316 },
14317 hljs.C_NUMBER_MODE,
14318 {
14319 className: 'variable',
14320 begin: '\\$[A-Za-z0-9_]+'
14321 }
14322 ]
14323 };
14324}
14325},{name:"twig",create:/*
14326Language: Twig
14327Requires: xml.js
14328Author: Luke Holder <lukemh@gmail.com>
14329Description: Twig is a templating language for PHP
14330Category: template
14331*/
14332
14333function(hljs) {
14334 var PARAMS = {
14335 className: 'params',
14336 begin: '\\(', end: '\\)'
14337 };
14338
14339 var FUNCTION_NAMES = 'attribute block constant cycle date dump include ' +
14340 'max min parent random range source template_from_string';
14341
14342 var FUNCTIONS = {
14343 beginKeywords: FUNCTION_NAMES,
14344 keywords: {name: FUNCTION_NAMES},
14345 relevance: 0,
14346 contains: [
14347 PARAMS
14348 ]
14349 };
14350
14351 var FILTER = {
14352 begin: /\|[A-Za-z_]+:?/,
14353 keywords:
14354 'abs batch capitalize convert_encoding date date_modify default ' +
14355 'escape first format join json_encode keys last length lower ' +
14356 'merge nl2br number_format raw replace reverse round slice sort split ' +
14357 'striptags title trim upper url_encode',
14358 contains: [
14359 FUNCTIONS
14360 ]
14361 };
14362
14363 var TAGS = 'autoescape block do embed extends filter flush for ' +
14364 'if import include macro sandbox set spaceless use verbatim';
14365
14366 TAGS = TAGS + ' ' + TAGS.split(' ').map(function(t){return 'end' + t}).join(' ');
14367
14368 return {
14369 aliases: ['craftcms'],
14370 case_insensitive: true,
14371 subLanguage: 'xml',
14372 contains: [
14373 hljs.COMMENT(/\{#/, /#}/),
14374 {
14375 className: 'template-tag',
14376 begin: /\{%/, end: /%}/,
14377 contains: [
14378 {
14379 className: 'name',
14380 begin: /\w+/,
14381 keywords: TAGS,
14382 starts: {
14383 endsWithParent: true,
14384 contains: [FILTER, FUNCTIONS],
14385 relevance: 0
14386 }
14387 }
14388 ]
14389 },
14390 {
14391 className: 'template-variable',
14392 begin: /\{\{/, end: /}}/,
14393 contains: ['self', FILTER, FUNCTIONS]
14394 }
14395 ]
14396 };
14397}
14398},{name:"typescript",create:/*
14399Language: TypeScript
14400Author: Panu Horsmalahti <panu.horsmalahti@iki.fi>
14401Description: TypeScript is a strict superset of JavaScript
14402Category: scripting
14403*/
14404
14405function(hljs) {
14406 var KEYWORDS = {
14407 keyword:
14408 'in if for while finally var new function do return void else break catch ' +
14409 'instanceof with throw case default try this switch continue typeof delete ' +
14410 'let yield const class public private protected get set super ' +
14411 'static implements enum export import declare type namespace abstract',
14412 literal:
14413 'true false null undefined NaN Infinity',
14414 built_in:
14415 'eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent ' +
14416 'encodeURI encodeURIComponent escape unescape Object Function Boolean Error ' +
14417 'EvalError InternalError RangeError ReferenceError StopIteration SyntaxError ' +
14418 'TypeError URIError Number Math Date String RegExp Array Float32Array ' +
14419 'Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array ' +
14420 'Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require ' +
14421 'module console window document any number boolean string void'
14422 };
14423
14424 return {
14425 aliases: ['ts'],
14426 keywords: KEYWORDS,
14427 contains: [
14428 {
14429 className: 'meta',
14430 begin: /^\s*['"]use strict['"]/
14431 },
14432 hljs.APOS_STRING_MODE,
14433 hljs.QUOTE_STRING_MODE,
14434 { // template string
14435 className: 'string',
14436 begin: '`', end: '`',
14437 contains: [
14438 hljs.BACKSLASH_ESCAPE,
14439 {
14440 className: 'subst',
14441 begin: '\\$\\{', end: '\\}'
14442 }
14443 ]
14444 },
14445 hljs.C_LINE_COMMENT_MODE,
14446 hljs.C_BLOCK_COMMENT_MODE,
14447 {
14448 className: 'number',
14449 variants: [
14450 { begin: '\\b(0[bB][01]+)' },
14451 { begin: '\\b(0[oO][0-7]+)' },
14452 { begin: hljs.C_NUMBER_RE }
14453 ],
14454 relevance: 0
14455 },
14456 { // "value" container
14457 begin: '(' + hljs.RE_STARTERS_RE + '|\\b(case|return|throw)\\b)\\s*',
14458 keywords: 'return throw case',
14459 contains: [
14460 hljs.C_LINE_COMMENT_MODE,
14461 hljs.C_BLOCK_COMMENT_MODE,
14462 hljs.REGEXP_MODE
14463 ],
14464 relevance: 0
14465 },
14466 {
14467 className: 'function',
14468 begin: 'function', end: /[\{;]/, excludeEnd: true,
14469 keywords: KEYWORDS,
14470 contains: [
14471 'self',
14472 hljs.inherit(hljs.TITLE_MODE, {begin: /[A-Za-z$_][0-9A-Za-z$_]*/}),
14473 {
14474 className: 'params',
14475 begin: /\(/, end: /\)/,
14476 excludeBegin: true,
14477 excludeEnd: true,
14478 keywords: KEYWORDS,
14479 contains: [
14480 hljs.C_LINE_COMMENT_MODE,
14481 hljs.C_BLOCK_COMMENT_MODE
14482 ],
14483 illegal: /["'\(]/
14484 }
14485 ],
14486 illegal: /\[|%/,
14487 relevance: 0 // () => {} is more typical in TypeScript
14488 },
14489 {
14490 beginKeywords: 'constructor', end: /\{/, excludeEnd: true
14491 },
14492 {
14493 beginKeywords: 'module', end: /\{/, excludeEnd: true
14494 },
14495 {
14496 beginKeywords: 'interface', end: /\{/, excludeEnd: true,
14497 keywords: 'interface extends'
14498 },
14499 {
14500 begin: /\$[(.]/ // relevance booster for a pattern common to JS libs: `$(something)` and `$.something`
14501 },
14502 {
14503 begin: '\\.' + hljs.IDENT_RE, relevance: 0 // hack: prevents detection of keywords after dots
14504 }
14505 ]
14506 };
14507}
14508},{name:"vala",create:/*
14509Language: Vala
14510Author: Antono Vasiljev <antono.vasiljev@gmail.com>
14511Description: Vala is a new programming language that aims to bring modern programming language features to GNOME developers without imposing any additional runtime requirements and without using a different ABI compared to applications and libraries written in C.
14512*/
14513
14514function(hljs) {
14515 return {
14516 keywords: {
14517 keyword:
14518 // Value types
14519 'char uchar unichar int uint long ulong short ushort int8 int16 int32 int64 uint8 ' +
14520 'uint16 uint32 uint64 float double bool struct enum string void ' +
14521 // Reference types
14522 'weak unowned owned ' +
14523 // Modifiers
14524 'async signal static abstract interface override ' +
14525 // Control Structures
14526 'while do for foreach else switch case break default return try catch ' +
14527 // Visibility
14528 'public private protected internal ' +
14529 // Other
14530 'using new this get set const stdout stdin stderr var',
14531 built_in:
14532 'DBus GLib CCode Gee Object',
14533 literal:
14534 'false true null'
14535 },
14536 contains: [
14537 {
14538 className: 'class',
14539 beginKeywords: 'class interface delegate namespace', end: '{', excludeEnd: true,
14540 illegal: '[^,:\\n\\s\\.]',
14541 contains: [
14542 hljs.UNDERSCORE_TITLE_MODE
14543 ]
14544 },
14545 hljs.C_LINE_COMMENT_MODE,
14546 hljs.C_BLOCK_COMMENT_MODE,
14547 {
14548 className: 'string',
14549 begin: '"""', end: '"""',
14550 relevance: 5
14551 },
14552 hljs.APOS_STRING_MODE,
14553 hljs.QUOTE_STRING_MODE,
14554 hljs.C_NUMBER_MODE,
14555 {
14556 className: 'meta',
14557 begin: '^#', end: '$',
14558 relevance: 2
14559 }
14560 ]
14561 };
14562}
14563},{name:"vbnet",create:/*
14564Language: VB.NET
14565Author: Poren Chiang <ren.chiang@gmail.com>
14566*/
14567
14568function(hljs) {
14569 return {
14570 aliases: ['vb'],
14571 case_insensitive: true,
14572 keywords: {
14573 keyword:
14574 'addhandler addressof alias and andalso aggregate ansi as assembly auto binary by byref byval ' + /* a-b */
14575 'call case catch class compare const continue custom declare default delegate dim distinct do ' + /* c-d */
14576 'each equals else elseif end enum erase error event exit explicit finally for friend from function ' + /* e-f */
14577 'get global goto group handles if implements imports in inherits interface into is isfalse isnot istrue ' + /* g-i */
14578 'join key let lib like loop me mid mod module mustinherit mustoverride mybase myclass ' + /* j-m */
14579 'namespace narrowing new next not notinheritable notoverridable ' + /* n */
14580 'of off on operator option optional or order orelse overloads overridable overrides ' + /* o */
14581 'paramarray partial preserve private property protected public ' + /* p */
14582 'raiseevent readonly redim rem removehandler resume return ' + /* r */
14583 'select set shadows shared skip static step stop structure strict sub synclock ' + /* s */
14584 'take text then throw to try unicode until using when where while widening with withevents writeonly xor', /* t-x */
14585 built_in:
14586 'boolean byte cbool cbyte cchar cdate cdec cdbl char cint clng cobj csbyte cshort csng cstr ctype ' + /* b-c */
14587 'date decimal directcast double gettype getxmlnamespace iif integer long object ' + /* d-o */
14588 'sbyte short single string trycast typeof uinteger ulong ushort', /* s-u */
14589 literal:
14590 'true false nothing'
14591 },
14592 illegal: '//|{|}|endif|gosub|variant|wend', /* reserved deprecated keywords */
14593 contains: [
14594 hljs.inherit(hljs.QUOTE_STRING_MODE, {contains: [{begin: '""'}]}),
14595 hljs.COMMENT(
14596 '\'',
14597 '$',
14598 {
14599 returnBegin: true,
14600 contains: [
14601 {
14602 className: 'doctag',
14603 begin: '\'\'\'|<!--|-->',
14604 contains: [hljs.PHRASAL_WORDS_MODE]
14605 },
14606 {
14607 className: 'doctag',
14608 begin: '</?', end: '>',
14609 contains: [hljs.PHRASAL_WORDS_MODE]
14610 }
14611 ]
14612 }
14613 ),
14614 hljs.C_NUMBER_MODE,
14615 {
14616 className: 'meta',
14617 begin: '#', end: '$',
14618 keywords: {'meta-keyword': 'if else elseif end region externalsource'}
14619 }
14620 ]
14621 };
14622}
14623},{name:"vbscript-html",create:/*
14624Language: VBScript in HTML
14625Requires: xml.js, vbscript.js
14626Author: Ivan Sagalaev <maniac@softwaremaniacs.org>
14627Description: "Bridge" language defining fragments of VBScript in HTML within <% .. %>
14628Category: scripting
14629*/
14630
14631function(hljs) {
14632 return {
14633 subLanguage: 'xml',
14634 contains: [
14635 {
14636 begin: '<%', end: '%>',
14637 subLanguage: 'vbscript'
14638 }
14639 ]
14640 };
14641}
14642},{name:"vbscript",create:/*
14643Language: VBScript
14644Author: Nikita Ledyaev <lenikita@yandex.ru>
14645Contributors: Michal Gabrukiewicz <mgabru@gmail.com>
14646Category: scripting
14647*/
14648
14649function(hljs) {
14650 return {
14651 aliases: ['vbs'],
14652 case_insensitive: true,
14653 keywords: {
14654 keyword:
14655 'call class const dim do loop erase execute executeglobal exit for each next function ' +
14656 'if then else on error option explicit new private property let get public randomize ' +
14657 'redim rem select case set stop sub while wend with end to elseif is or xor and not ' +
14658 'class_initialize class_terminate default preserve in me byval byref step resume goto',
14659 built_in:
14660 'lcase month vartype instrrev ubound setlocale getobject rgb getref string ' +
14661 'weekdayname rnd dateadd monthname now day minute isarray cbool round formatcurrency ' +
14662 'conversions csng timevalue second year space abs clng timeserial fixs len asc ' +
14663 'isempty maths dateserial atn timer isobject filter weekday datevalue ccur isdate ' +
14664 'instr datediff formatdatetime replace isnull right sgn array snumeric log cdbl hex ' +
14665 'chr lbound msgbox ucase getlocale cos cdate cbyte rtrim join hour oct typename trim ' +
14666 'strcomp int createobject loadpicture tan formatnumber mid scriptenginebuildversion ' +
14667 'scriptengine split scriptengineminorversion cint sin datepart ltrim sqr ' +
14668 'scriptenginemajorversion time derived eval date formatpercent exp inputbox left ascw ' +
14669 'chrw regexp server response request cstr err',
14670 literal:
14671 'true false null nothing empty'
14672 },
14673 illegal: '//',
14674 contains: [
14675 hljs.inherit(hljs.QUOTE_STRING_MODE, {contains: [{begin: '""'}]}),
14676 hljs.COMMENT(
14677 /'/,
14678 /$/,
14679 {
14680 relevance: 0
14681 }
14682 ),
14683 hljs.C_NUMBER_MODE
14684 ]
14685 };
14686}
14687},{name:"verilog",create:/*
14688Language: Verilog
14689Author: Jon Evans <jon@craftyjon.com>
14690Description: Verilog is a hardware description language used in electronic design automation to describe digital and mixed-signal systems. This highlighter is based on Verilog-1995.
14691*/
14692
14693function(hljs) {
14694 return {
14695 aliases: ['v'],
14696 case_insensitive: true,
14697 keywords: {
14698 keyword:
14699 'always and assign begin buf bufif0 bufif1 case casex casez cmos deassign ' +
14700 'default defparam disable edge else end endcase endfunction endmodule ' +
14701 'endprimitive endspecify endtable endtask event for force forever fork ' +
14702 'function if ifnone initial inout input join macromodule module nand ' +
14703 'negedge nmos nor not notif0 notif1 or output parameter pmos posedge ' +
14704 'primitive pulldown pullup rcmos release repeat rnmos rpmos rtran ' +
14705 'rtranif0 rtranif1 specify specparam table task timescale tran ' +
14706 'tranif0 tranif1 wait while xnor xor ' +
14707 // types
14708 'highz0 highz1 integer large medium pull0 pull1 real realtime reg ' +
14709 'scalared signed small strong0 strong1 supply0 supply0 supply1 supply1 ' +
14710 'time tri tri0 tri1 triand trior trireg vectored wand weak0 weak1 wire wor'
14711 },
14712 contains: [
14713 hljs.C_BLOCK_COMMENT_MODE,
14714 hljs.C_LINE_COMMENT_MODE,
14715 hljs.QUOTE_STRING_MODE,
14716 {
14717 className: 'number',
14718 begin: '\\b(\\d+\'(b|h|o|d|B|H|O|D))?[0-9xzXZ]+',
14719 contains: [hljs.BACKSLASH_ESCAPE],
14720 relevance: 0
14721 },
14722 /* parameters to instances */
14723 {
14724 className: 'variable',
14725 begin: '#\\((?!parameter).+\\)'
14726 }
14727 ]
14728 }; // return
14729}
14730},{name:"vhdl",create:/*
14731Language: VHDL
14732Author: Igor Kalnitsky <igor@kalnitsky.org>
14733Contributors: Daniel C.K. Kho <daniel.kho@gmail.com>, Guillaume Savaton <guillaume.savaton@eseo.fr>
14734Description: VHDL is a hardware description language used in electronic design automation to describe digital and mixed-signal systems.
14735*/
14736
14737function(hljs) {
14738 // Regular expression for VHDL numeric literals.
14739
14740 // Decimal literal:
14741 var INTEGER_RE = '\\d(_|\\d)*';
14742 var EXPONENT_RE = '[eE][-+]?' + INTEGER_RE;
14743 var DECIMAL_LITERAL_RE = INTEGER_RE + '(\\.' + INTEGER_RE + ')?' + '(' + EXPONENT_RE + ')?';
14744 // Based literal:
14745 var BASED_INTEGER_RE = '\\w+';
14746 var BASED_LITERAL_RE = INTEGER_RE + '#' + BASED_INTEGER_RE + '(\\.' + BASED_INTEGER_RE + ')?' + '#' + '(' + EXPONENT_RE + ')?';
14747
14748 var NUMBER_RE = '\\b(' + BASED_LITERAL_RE + '|' + DECIMAL_LITERAL_RE + ')';
14749
14750 return {
14751 case_insensitive: true,
14752 keywords: {
14753 keyword:
14754 'abs access after alias all and architecture array assert attribute begin block ' +
14755 'body buffer bus case component configuration constant context cover disconnect ' +
14756 'downto default else elsif end entity exit fairness file for force function generate ' +
14757 'generic group guarded if impure in inertial inout is label library linkage literal ' +
14758 'loop map mod nand new next nor not null of on open or others out package port ' +
14759 'postponed procedure process property protected pure range record register reject ' +
14760 'release rem report restrict restrict_guarantee return rol ror select sequence ' +
14761 'severity shared signal sla sll sra srl strong subtype then to transport type ' +
14762 'unaffected units until use variable vmode vprop vunit wait when while with xnor xor',
14763 built_in:
14764 'boolean bit character severity_level integer time delay_length natural positive ' +
14765 'string bit_vector file_open_kind file_open_status std_ulogic std_ulogic_vector ' +
14766 'std_logic std_logic_vector unsigned signed boolean_vector integer_vector ' +
14767 'real_vector time_vector'
14768 },
14769 illegal: '{',
14770 contains: [
14771 hljs.C_BLOCK_COMMENT_MODE, // VHDL-2008 block commenting.
14772 hljs.COMMENT('--', '$'),
14773 hljs.QUOTE_STRING_MODE,
14774 {
14775 className: 'number',
14776 begin: NUMBER_RE,
14777 relevance: 0
14778 },
14779 {
14780 className: 'literal',
14781 begin: '\'(U|X|0|1|Z|W|L|H|-)\'',
14782 contains: [hljs.BACKSLASH_ESCAPE]
14783 },
14784 {
14785 className: 'symbol',
14786 begin: '\'[A-Za-z](_?[A-Za-z0-9])*',
14787 contains: [hljs.BACKSLASH_ESCAPE]
14788 }
14789 ]
14790 };
14791}
14792},{name:"vim",create:/*
14793Language: Vim Script
14794Author: Jun Yang <yangjvn@126.com>
14795Description: full keyword and built-in from http://vimdoc.sourceforge.net/htmldoc/
14796Category: scripting
14797*/
14798
14799function(hljs) {
14800 return {
14801 lexemes: /[!#@\w]+/,
14802 keywords: {
14803 keyword: //ex command
14804 // express version except: ! & * < = > !! # @ @@
14805 'N|0 P|0 X|0 a|0 ab abc abo al am an|0 ar arga argd arge argdo argg argl argu as au aug aun b|0 bN ba bad bd be bel bf bl bm bn bo bp br brea breaka breakd breakl bro bufdo buffers bun bw c|0 cN cNf ca cabc caddb cad caddf cal cat cb cc ccl cd ce cex cf cfir cgetb cgete cg changes chd che checkt cl cla clo cm cmapc cme cn cnew cnf cno cnorea cnoreme co col colo com comc comp con conf cope '+
14806 'cp cpf cq cr cs cst cu cuna cunme cw d|0 delm deb debugg delc delf dif diffg diffo diffp diffpu diffs diffthis dig di dl dell dj dli do doautoa dp dr ds dsp e|0 ea ec echoe echoh echom echon el elsei em en endfo endf endt endw ene ex exe exi exu f|0 files filet fin fina fini fir fix fo foldc foldd folddoc foldo for fu g|0 go gr grepa gu gv ha h|0 helpf helpg helpt hi hid his i|0 ia iabc if ij il im imapc '+
14807 'ime ino inorea inoreme int is isp iu iuna iunme j|0 ju k|0 keepa kee keepj lN lNf l|0 lad laddb laddf la lan lat lb lc lch lcl lcs le lefta let lex lf lfir lgetb lgete lg lgr lgrepa lh ll lla lli lmak lm lmapc lne lnew lnf ln loadk lo loc lockv lol lope lp lpf lr ls lt lu lua luad luaf lv lvimgrepa lw m|0 ma mak map mapc marks mat me menut mes mk mks mksp mkv mkvie mod mz mzf nbc nb nbs n|0 new nm nmapc nme nn nnoreme noa no noh norea noreme norm nu nun nunme ol o|0 om omapc ome on ono onoreme opt ou ounme ow p|0 '+
14808 'profd prof pro promptr pc ped pe perld po popu pp pre prev ps pt ptN ptf ptj ptl ptn ptp ptr pts pu pw py3 python3 py3d py3f py pyd pyf q|0 quita qa r|0 rec red redi redr redraws reg res ret retu rew ri rightb rub rubyd rubyf rund ru rv s|0 sN san sa sal sav sb sbN sba sbf sbl sbm sbn sbp sbr scrip scripte scs se setf setg setl sf sfir sh sim sig sil sl sla sm smap smapc sme sn sni sno snor snoreme sor '+
14809 'so spelld spe spelli spellr spellu spellw sp spr sre st sta startg startr star stopi stj sts sun sunm sunme sus sv sw sy synti sync t|0 tN tabN tabc tabdo tabe tabf tabfir tabl tabm tabnew '+
14810 'tabn tabo tabp tabr tabs tab ta tags tc tcld tclf te tf th tj tl tm tn to tp tr try ts tu u|0 undoj undol una unh unl unlo unm unme uns up v|0 ve verb vert vim vimgrepa vi viu vie vm vmapc vme vne vn vnoreme vs vu vunme windo w|0 wN wa wh wi winc winp wn wp wq wqa ws wu wv x|0 xa xmapc xm xme xn xnoreme xu xunme y|0 z|0 ~ '+
14811 // full version
14812 'Next Print append abbreviate abclear aboveleft all amenu anoremenu args argadd argdelete argedit argglobal arglocal argument ascii autocmd augroup aunmenu buffer bNext ball badd bdelete behave belowright bfirst blast bmodified bnext botright bprevious brewind break breakadd breakdel breaklist browse bunload '+
14813 'bwipeout change cNext cNfile cabbrev cabclear caddbuffer caddexpr caddfile call catch cbuffer cclose center cexpr cfile cfirst cgetbuffer cgetexpr cgetfile chdir checkpath checktime clist clast close cmap cmapclear cmenu cnext cnewer cnfile cnoremap cnoreabbrev cnoremenu copy colder colorscheme command comclear compiler continue confirm copen cprevious cpfile cquit crewind cscope cstag cunmap '+
14814 'cunabbrev cunmenu cwindow delete delmarks debug debuggreedy delcommand delfunction diffupdate diffget diffoff diffpatch diffput diffsplit digraphs display deletel djump dlist doautocmd doautoall deletep drop dsearch dsplit edit earlier echo echoerr echohl echomsg else elseif emenu endif endfor '+
14815 'endfunction endtry endwhile enew execute exit exusage file filetype find finally finish first fixdel fold foldclose folddoopen folddoclosed foldopen function global goto grep grepadd gui gvim hardcopy help helpfind helpgrep helptags highlight hide history insert iabbrev iabclear ijump ilist imap '+
14816 'imapclear imenu inoremap inoreabbrev inoremenu intro isearch isplit iunmap iunabbrev iunmenu join jumps keepalt keepmarks keepjumps lNext lNfile list laddexpr laddbuffer laddfile last language later lbuffer lcd lchdir lclose lcscope left leftabove lexpr lfile lfirst lgetbuffer lgetexpr lgetfile lgrep lgrepadd lhelpgrep llast llist lmake lmap lmapclear lnext lnewer lnfile lnoremap loadkeymap loadview '+
14817 'lockmarks lockvar lolder lopen lprevious lpfile lrewind ltag lunmap luado luafile lvimgrep lvimgrepadd lwindow move mark make mapclear match menu menutranslate messages mkexrc mksession mkspell mkvimrc mkview mode mzscheme mzfile nbclose nbkey nbsart next nmap nmapclear nmenu nnoremap '+
14818 'nnoremenu noautocmd noremap nohlsearch noreabbrev noremenu normal number nunmap nunmenu oldfiles open omap omapclear omenu only onoremap onoremenu options ounmap ounmenu ownsyntax print profdel profile promptfind promptrepl pclose pedit perl perldo pop popup ppop preserve previous psearch ptag ptNext '+
14819 'ptfirst ptjump ptlast ptnext ptprevious ptrewind ptselect put pwd py3do py3file python pydo pyfile quit quitall qall read recover redo redir redraw redrawstatus registers resize retab return rewind right rightbelow ruby rubydo rubyfile rundo runtime rviminfo substitute sNext sandbox sargument sall saveas sbuffer sbNext sball sbfirst sblast sbmodified sbnext sbprevious sbrewind scriptnames scriptencoding '+
14820 'scscope set setfiletype setglobal setlocal sfind sfirst shell simalt sign silent sleep slast smagic smapclear smenu snext sniff snomagic snoremap snoremenu sort source spelldump spellgood spellinfo spellrepall spellundo spellwrong split sprevious srewind stop stag startgreplace startreplace '+
14821 'startinsert stopinsert stjump stselect sunhide sunmap sunmenu suspend sview swapname syntax syntime syncbind tNext tabNext tabclose tabedit tabfind tabfirst tablast tabmove tabnext tabonly tabprevious tabrewind tag tcl tcldo tclfile tearoff tfirst throw tjump tlast tmenu tnext topleft tprevious '+'trewind tselect tunmenu undo undojoin undolist unabbreviate unhide unlet unlockvar unmap unmenu unsilent update vglobal version verbose vertical vimgrep vimgrepadd visual viusage view vmap vmapclear vmenu vnew '+
14822 'vnoremap vnoremenu vsplit vunmap vunmenu write wNext wall while winsize wincmd winpos wnext wprevious wqall wsverb wundo wviminfo xit xall xmapclear xmap xmenu xnoremap xnoremenu xunmap xunmenu yank',
14823 built_in: //built in func
14824 'abs acos add and append argc argidx argv asin atan atan2 browse browsedir bufexists buflisted bufloaded bufname bufnr bufwinnr byte2line byteidx call ceil changenr char2nr cindent clearmatches col complete complete_add complete_check confirm copy cos cosh count cscope_connection cursor '+
14825 'deepcopy delete did_filetype diff_filler diff_hlID empty escape eval eventhandler executable exists exp expand extend feedkeys filereadable filewritable filter finddir findfile float2nr floor fmod fnameescape fnamemodify foldclosed foldclosedend foldlevel foldtext foldtextresult foreground function '+
14826 'garbagecollect get getbufline getbufvar getchar getcharmod getcmdline getcmdpos getcmdtype getcwd getfontname getfperm getfsize getftime getftype getline getloclist getmatches getpid getpos getqflist getreg getregtype gettabvar gettabwinvar getwinposx getwinposy getwinvar glob globpath has has_key '+
14827 'haslocaldir hasmapto histadd histdel histget histnr hlexists hlID hostname iconv indent index input inputdialog inputlist inputrestore inputsave inputsecret insert invert isdirectory islocked items join keys len libcall libcallnr line line2byte lispindent localtime log log10 luaeval map maparg mapcheck '+
14828 'match matchadd matcharg matchdelete matchend matchlist matchstr max min mkdir mode mzeval nextnonblank nr2char or pathshorten pow prevnonblank printf pumvisible py3eval pyeval range readfile reltime reltimestr remote_expr remote_foreground remote_peek remote_read remote_send remove rename repeat '+
14829 'resolve reverse round screenattr screenchar screencol screenrow search searchdecl searchpair searchpairpos searchpos server2client serverlist setbufvar setcmdpos setline setloclist setmatches setpos setqflist setreg settabvar settabwinvar setwinvar sha256 shellescape shiftwidth simplify sin '+
14830 'sinh sort soundfold spellbadword spellsuggest split sqrt str2float str2nr strchars strdisplaywidth strftime stridx string strlen strpart strridx strtrans strwidth submatch substitute synconcealed synID synIDattr '+
14831 'synIDtrans synstack system tabpagebuflist tabpagenr tabpagewinnr tagfiles taglist tan tanh tempname tolower toupper tr trunc type undofile undotree values virtcol visualmode wildmenumode winbufnr wincol winheight winline winnr winrestcmd winrestview winsaveview winwidth writefile xor'
14832 },
14833 illegal: /[{:]/,
14834 contains: [
14835 hljs.NUMBER_MODE,
14836 hljs.APOS_STRING_MODE,
14837 {
14838 className: 'string',
14839 // quote with escape, comment as quote
14840 begin: /"((\\")|[^"\n])*("|\n)/
14841 },
14842 {
14843 className: 'variable',
14844 begin: /[bwtglsav]:[\w\d_]*/
14845 },
14846 {
14847 className: 'function',
14848 beginKeywords: 'function function!', end: '$',
14849 relevance: 0,
14850 contains: [
14851 hljs.TITLE_MODE,
14852 {
14853 className: 'params',
14854 begin: '\\(', end: '\\)'
14855 }
14856 ]
14857 }
14858 ]
14859 };
14860}
14861},{name:"x86asm",create:/*
14862Language: Intel x86 Assembly
14863Author: innocenat <innocenat@gmail.com>
14864Description: x86 assembly language using Intel's mnemonic and NASM syntax
14865Category: assembler
14866*/
14867
14868function(hljs) {
14869 return {
14870 case_insensitive: true,
14871 lexemes: '[.%]?' + hljs.IDENT_RE,
14872 keywords: {
14873 keyword:
14874 'lock rep repe repz repne repnz xaquire xrelease bnd nobnd ' +
14875 'aaa aad aam aas adc add and arpl bb0_reset bb1_reset bound bsf bsr bswap bt btc btr bts call cbw cdq cdqe clc cld cli clts cmc cmp cmpsb cmpsd cmpsq cmpsw cmpxchg cmpxchg486 cmpxchg8b cmpxchg16b cpuid cpu_read cpu_write cqo cwd cwde daa das dec div dmint emms enter equ f2xm1 fabs fadd faddp fbld fbstp fchs fclex fcmovb fcmovbe fcmove fcmovnb fcmovnbe fcmovne fcmovnu fcmovu fcom fcomi fcomip fcomp fcompp fcos fdecstp fdisi fdiv fdivp fdivr fdivrp femms feni ffree ffreep fiadd ficom ficomp fidiv fidivr fild fimul fincstp finit fist fistp fisttp fisub fisubr fld fld1 fldcw fldenv fldl2e fldl2t fldlg2 fldln2 fldpi fldz fmul fmulp fnclex fndisi fneni fninit fnop fnsave fnstcw fnstenv fnstsw fpatan fprem fprem1 fptan frndint frstor fsave fscale fsetpm fsin fsincos fsqrt fst fstcw fstenv fstp fstsw fsub fsubp fsubr fsubrp ftst fucom fucomi fucomip fucomp fucompp fxam fxch fxtract fyl2x fyl2xp1 hlt ibts icebp idiv imul in inc incbin insb insd insw int int01 int1 int03 int3 into invd invpcid invlpg invlpga iret iretd iretq iretw jcxz jecxz jrcxz jmp jmpe lahf lar lds lea leave les lfence lfs lgdt lgs lidt lldt lmsw loadall loadall286 lodsb lodsd lodsq lodsw loop loope loopne loopnz loopz lsl lss ltr mfence monitor mov movd movq movsb movsd movsq movsw movsx movsxd movzx mul mwait neg nop not or out outsb outsd outsw packssdw packsswb packuswb paddb paddd paddsb paddsiw paddsw paddusb paddusw paddw pand pandn pause paveb pavgusb pcmpeqb pcmpeqd pcmpeqw pcmpgtb pcmpgtd pcmpgtw pdistib pf2id pfacc pfadd pfcmpeq pfcmpge pfcmpgt pfmax pfmin pfmul pfrcp pfrcpit1 pfrcpit2 pfrsqit1 pfrsqrt pfsub pfsubr pi2fd pmachriw pmaddwd pmagw pmulhriw pmulhrwa pmulhrwc pmulhw pmullw pmvgezb pmvlzb pmvnzb pmvzb pop popa popad popaw popf popfd popfq popfw por prefetch prefetchw pslld psllq psllw psrad psraw psrld psrlq psrlw psubb psubd psubsb psubsiw psubsw psubusb psubusw psubw punpckhbw punpckhdq punpckhwd punpcklbw punpckldq punpcklwd push pusha pushad pushaw pushf pushfd pushfq pushfw pxor rcl rcr rdshr rdmsr rdpmc rdtsc rdtscp ret retf retn rol ror rdm rsdc rsldt rsm rsts sahf sal salc sar sbb scasb scasd scasq scasw sfence sgdt shl shld shr shrd sidt sldt skinit smi smint smintold smsw stc std sti stosb stosd stosq stosw str sub svdc svldt svts swapgs syscall sysenter sysexit sysret test ud0 ud1 ud2b ud2 ud2a umov verr verw fwait wbinvd wrshr wrmsr xadd xbts xchg xlatb xlat xor cmove cmovz cmovne cmovnz cmova cmovnbe cmovae cmovnb cmovb cmovnae cmovbe cmovna cmovg cmovnle cmovge cmovnl cmovl cmovnge cmovle cmovng cmovc cmovnc cmovo cmovno cmovs cmovns cmovp cmovpe cmovnp cmovpo je jz jne jnz ja jnbe jae jnb jb jnae jbe jna jg jnle jge jnl jl jnge jle jng jc jnc jo jno js jns jpo jnp jpe jp sete setz setne setnz seta setnbe setae setnb setnc setb setnae setcset setbe setna setg setnle setge setnl setl setnge setle setng sets setns seto setno setpe setp setpo setnp addps addss andnps andps cmpeqps cmpeqss cmpleps cmpless cmpltps cmpltss cmpneqps cmpneqss cmpnleps cmpnless cmpnltps cmpnltss cmpordps cmpordss cmpunordps cmpunordss cmpps cmpss comiss cvtpi2ps cvtps2pi cvtsi2ss cvtss2si cvttps2pi cvttss2si divps divss ldmxcsr maxps maxss minps minss movaps movhps movlhps movlps movhlps movmskps movntps movss movups mulps mulss orps rcpps rcpss rsqrtps rsqrtss shufps sqrtps sqrtss stmxcsr subps subss ucomiss unpckhps unpcklps xorps fxrstor fxrstor64 fxsave fxsave64 xgetbv xsetbv xsave xsave64 xsaveopt xsaveopt64 xrstor xrstor64 prefetchnta prefetcht0 prefetcht1 prefetcht2 maskmovq movntq pavgb pavgw pextrw pinsrw pmaxsw pmaxub pminsw pminub pmovmskb pmulhuw psadbw pshufw pf2iw pfnacc pfpnacc pi2fw pswapd maskmovdqu clflush movntdq movnti movntpd movdqa movdqu movdq2q movq2dq paddq pmuludq pshufd pshufhw pshuflw pslldq psrldq psubq punpckhqdq punpcklqdq addpd addsd andnpd andpd cmpeqpd cmpeqsd cmplepd cmplesd cmpltpd cmpltsd cmpneqpd cmpneqsd cmpnlepd cmpnlesd cmpnltpd cmpnltsd cmpordpd cmpordsd cmpunordpd cmpunordsd cmppd comisd cvtdq2pd cvtdq2ps cvtpd2dq cvtpd2pi cvtpd2ps cvtpi2pd cvtps2dq cvtps2pd cvtsd2si cvtsd2ss cvtsi2sd cvtss2sd cvttpd2pi cvttpd2dq cvttps2dq cvttsd2si divpd divsd maxpd maxsd minpd minsd movapd movhpd movlpd movmskpd movupd mulpd mulsd orpd shufpd sqrtpd sqrtsd subpd subsd ucomisd unpckhpd unpcklpd xorpd addsubpd addsubps haddpd haddps hsubpd hsubps lddqu movddup movshdup movsldup clgi stgi vmcall vmclear vmfunc vmlaunch vmload vmmcall vmptrld vmptrst vmread vmresume vmrun vmsave vmwrite vmxoff vmxon invept invvpid pabsb pabsw pabsd palignr phaddw phaddd phaddsw phsubw phsubd phsubsw pmaddubsw pmulhrsw pshufb psignb psignw psignd extrq insertq movntsd movntss lzcnt blendpd blendps blendvpd blendvps dppd dpps extractps insertps movntdqa mpsadbw packusdw pblendvb pblendw pcmpeqq pextrb pextrd pextrq phminposuw pinsrb pinsrd pinsrq pmaxsb pmaxsd pmaxud pmaxuw pminsb pminsd pminud pminuw pmovsxbw pmovsxbd pmovsxbq pmovsxwd pmovsxwq pmovsxdq pmovzxbw pmovzxbd pmovzxbq pmovzxwd pmovzxwq pmovzxdq pmuldq pmulld ptest roundpd roundps roundsd roundss crc32 pcmpestri pcmpestrm pcmpistri pcmpistrm pcmpgtq popcnt getsec pfrcpv pfrsqrtv movbe aesenc aesenclast aesdec aesdeclast aesimc aeskeygenassist vaesenc vaesenclast vaesdec vaesdeclast vaesimc vaeskeygenassist vaddpd vaddps vaddsd vaddss vaddsubpd vaddsubps vandpd vandps vandnpd vandnps vblendpd vblendps vblendvpd vblendvps vbroadcastss vbroadcastsd vbroadcastf128 vcmpeq_ospd vcmpeqpd vcmplt_ospd vcmpltpd vcmple_ospd vcmplepd vcmpunord_qpd vcmpunordpd vcmpneq_uqpd vcmpneqpd vcmpnlt_uspd vcmpnltpd vcmpnle_uspd vcmpnlepd vcmpord_qpd vcmpordpd vcmpeq_uqpd vcmpnge_uspd vcmpngepd vcmpngt_uspd vcmpngtpd vcmpfalse_oqpd vcmpfalsepd vcmpneq_oqpd vcmpge_ospd vcmpgepd vcmpgt_ospd vcmpgtpd vcmptrue_uqpd vcmptruepd vcmplt_oqpd vcmple_oqpd vcmpunord_spd vcmpneq_uspd vcmpnlt_uqpd vcmpnle_uqpd vcmpord_spd vcmpeq_uspd vcmpnge_uqpd vcmpngt_uqpd vcmpfalse_ospd vcmpneq_ospd vcmpge_oqpd vcmpgt_oqpd vcmptrue_uspd vcmppd vcmpeq_osps vcmpeqps vcmplt_osps vcmpltps vcmple_osps vcmpleps vcmpunord_qps vcmpunordps vcmpneq_uqps vcmpneqps vcmpnlt_usps vcmpnltps vcmpnle_usps vcmpnleps vcmpord_qps vcmpordps vcmpeq_uqps vcmpnge_usps vcmpngeps vcmpngt_usps vcmpngtps vcmpfalse_oqps vcmpfalseps vcmpneq_oqps vcmpge_osps vcmpgeps vcmpgt_osps vcmpgtps vcmptrue_uqps vcmptrueps vcmplt_oqps vcmple_oqps vcmpunord_sps vcmpneq_usps vcmpnlt_uqps vcmpnle_uqps vcmpord_sps vcmpeq_usps vcmpnge_uqps vcmpngt_uqps vcmpfalse_osps vcmpneq_osps vcmpge_oqps vcmpgt_oqps vcmptrue_usps vcmpps vcmpeq_ossd vcmpeqsd vcmplt_ossd vcmpltsd vcmple_ossd vcmplesd vcmpunord_qsd vcmpunordsd vcmpneq_uqsd vcmpneqsd vcmpnlt_ussd vcmpnltsd vcmpnle_ussd vcmpnlesd vcmpord_qsd vcmpordsd vcmpeq_uqsd vcmpnge_ussd vcmpngesd vcmpngt_ussd vcmpngtsd vcmpfalse_oqsd vcmpfalsesd vcmpneq_oqsd vcmpge_ossd vcmpgesd vcmpgt_ossd vcmpgtsd vcmptrue_uqsd vcmptruesd vcmplt_oqsd vcmple_oqsd vcmpunord_ssd vcmpneq_ussd vcmpnlt_uqsd vcmpnle_uqsd vcmpord_ssd vcmpeq_ussd vcmpnge_uqsd vcmpngt_uqsd vcmpfalse_ossd vcmpneq_ossd vcmpge_oqsd vcmpgt_oqsd vcmptrue_ussd vcmpsd vcmpeq_osss vcmpeqss vcmplt_osss vcmpltss vcmple_osss vcmpless vcmpunord_qss vcmpunordss vcmpneq_uqss vcmpneqss vcmpnlt_usss vcmpnltss vcmpnle_usss vcmpnless vcmpord_qss vcmpordss vcmpeq_uqss vcmpnge_usss vcmpngess vcmpngt_usss vcmpngtss vcmpfalse_oqss vcmpfalsess vcmpneq_oqss vcmpge_osss vcmpgess vcmpgt_osss vcmpgtss vcmptrue_uqss vcmptruess vcmplt_oqss vcmple_oqss vcmpunord_sss vcmpneq_usss vcmpnlt_uqss vcmpnle_uqss vcmpord_sss vcmpeq_usss vcmpnge_uqss vcmpngt_uqss vcmpfalse_osss vcmpneq_osss vcmpge_oqss vcmpgt_oqss vcmptrue_usss vcmpss vcomisd vcomiss vcvtdq2pd vcvtdq2ps vcvtpd2dq vcvtpd2ps vcvtps2dq vcvtps2pd vcvtsd2si vcvtsd2ss vcvtsi2sd vcvtsi2ss vcvtss2sd vcvtss2si vcvttpd2dq vcvttps2dq vcvttsd2si vcvttss2si vdivpd vdivps vdivsd vdivss vdppd vdpps vextractf128 vextractps vhaddpd vhaddps vhsubpd vhsubps vinsertf128 vinsertps vlddqu vldqqu vldmxcsr vmaskmovdqu vmaskmovps vmaskmovpd vmaxpd vmaxps vmaxsd vmaxss vminpd vminps vminsd vminss vmovapd vmovaps vmovd vmovq vmovddup vmovdqa vmovqqa vmovdqu vmovqqu vmovhlps vmovhpd vmovhps vmovlhps vmovlpd vmovlps vmovmskpd vmovmskps vmovntdq vmovntqq vmovntdqa vmovntpd vmovntps vmovsd vmovshdup vmovsldup vmovss vmovupd vmovups vmpsadbw vmulpd vmulps vmulsd vmulss vorpd vorps vpabsb vpabsw vpabsd vpacksswb vpackssdw vpackuswb vpackusdw vpaddb vpaddw vpaddd vpaddq vpaddsb vpaddsw vpaddusb vpaddusw vpalignr vpand vpandn vpavgb vpavgw vpblendvb vpblendw vpcmpestri vpcmpestrm vpcmpistri vpcmpistrm vpcmpeqb vpcmpeqw vpcmpeqd vpcmpeqq vpcmpgtb vpcmpgtw vpcmpgtd vpcmpgtq vpermilpd vpermilps vperm2f128 vpextrb vpextrw vpextrd vpextrq vphaddw vphaddd vphaddsw vphminposuw vphsubw vphsubd vphsubsw vpinsrb vpinsrw vpinsrd vpinsrq vpmaddwd vpmaddubsw vpmaxsb vpmaxsw vpmaxsd vpmaxub vpmaxuw vpmaxud vpminsb vpminsw vpminsd vpminub vpminuw vpminud vpmovmskb vpmovsxbw vpmovsxbd vpmovsxbq vpmovsxwd vpmovsxwq vpmovsxdq vpmovzxbw vpmovzxbd vpmovzxbq vpmovzxwd vpmovzxwq vpmovzxdq vpmulhuw vpmulhrsw vpmulhw vpmullw vpmulld vpmuludq vpmuldq vpor vpsadbw vpshufb vpshufd vpshufhw vpshuflw vpsignb vpsignw vpsignd vpslldq vpsrldq vpsllw vpslld vpsllq vpsraw vpsrad vpsrlw vpsrld vpsrlq vptest vpsubb vpsubw vpsubd vpsubq vpsubsb vpsubsw vpsubusb vpsubusw vpunpckhbw vpunpckhwd vpunpckhdq vpunpckhqdq vpunpcklbw vpunpcklwd vpunpckldq vpunpcklqdq vpxor vrcpps vrcpss vrsqrtps vrsqrtss vroundpd vroundps vroundsd vroundss vshufpd vshufps vsqrtpd vsqrtps vsqrtsd vsqrtss vstmxcsr vsubpd vsubps vsubsd vsubss vtestps vtestpd vucomisd vucomiss vunpckhpd vunpckhps vunpcklpd vunpcklps vxorpd vxorps vzeroall vzeroupper pclmullqlqdq pclmulhqlqdq pclmullqhqdq pclmulhqhqdq pclmulqdq vpclmullqlqdq vpclmulhqlqdq vpclmullqhqdq vpclmulhqhqdq vpclmulqdq vfmadd132ps vfmadd132pd vfmadd312ps vfmadd312pd vfmadd213ps vfmadd213pd vfmadd123ps vfmadd123pd vfmadd231ps vfmadd231pd vfmadd321ps vfmadd321pd vfmaddsub132ps vfmaddsub132pd vfmaddsub312ps vfmaddsub312pd vfmaddsub213ps vfmaddsub213pd vfmaddsub123ps vfmaddsub123pd vfmaddsub231ps vfmaddsub231pd vfmaddsub321ps vfmaddsub321pd vfmsub132ps vfmsub132pd vfmsub312ps vfmsub312pd vfmsub213ps vfmsub213pd vfmsub123ps vfmsub123pd vfmsub231ps vfmsub231pd vfmsub321ps vfmsub321pd vfmsubadd132ps vfmsubadd132pd vfmsubadd312ps vfmsubadd312pd vfmsubadd213ps vfmsubadd213pd vfmsubadd123ps vfmsubadd123pd vfmsubadd231ps vfmsubadd231pd vfmsubadd321ps vfmsubadd321pd vfnmadd132ps vfnmadd132pd vfnmadd312ps vfnmadd312pd vfnmadd213ps vfnmadd213pd vfnmadd123ps vfnmadd123pd vfnmadd231ps vfnmadd231pd vfnmadd321ps vfnmadd321pd vfnmsub132ps vfnmsub132pd vfnmsub312ps vfnmsub312pd vfnmsub213ps vfnmsub213pd vfnmsub123ps vfnmsub123pd vfnmsub231ps vfnmsub231pd vfnmsub321ps vfnmsub321pd vfmadd132ss vfmadd132sd vfmadd312ss vfmadd312sd vfmadd213ss vfmadd213sd vfmadd123ss vfmadd123sd vfmadd231ss vfmadd231sd vfmadd321ss vfmadd321sd vfmsub132ss vfmsub132sd vfmsub312ss vfmsub312sd vfmsub213ss vfmsub213sd vfmsub123ss vfmsub123sd vfmsub231ss vfmsub231sd vfmsub321ss vfmsub321sd vfnmadd132ss vfnmadd132sd vfnmadd312ss vfnmadd312sd vfnmadd213ss vfnmadd213sd vfnmadd123ss vfnmadd123sd vfnmadd231ss vfnmadd231sd vfnmadd321ss vfnmadd321sd vfnmsub132ss vfnmsub132sd vfnmsub312ss vfnmsub312sd vfnmsub213ss vfnmsub213sd vfnmsub123ss vfnmsub123sd vfnmsub231ss vfnmsub231sd vfnmsub321ss vfnmsub321sd rdfsbase rdgsbase rdrand wrfsbase wrgsbase vcvtph2ps vcvtps2ph adcx adox rdseed clac stac xstore xcryptecb xcryptcbc xcryptctr xcryptcfb xcryptofb montmul xsha1 xsha256 llwpcb slwpcb lwpval lwpins vfmaddpd vfmaddps vfmaddsd vfmaddss vfmaddsubpd vfmaddsubps vfmsubaddpd vfmsubaddps vfmsubpd vfmsubps vfmsubsd vfmsubss vfnmaddpd vfnmaddps vfnmaddsd vfnmaddss vfnmsubpd vfnmsubps vfnmsubsd vfnmsubss vfrczpd vfrczps vfrczsd vfrczss vpcmov vpcomb vpcomd vpcomq vpcomub vpcomud vpcomuq vpcomuw vpcomw vphaddbd vphaddbq vphaddbw vphadddq vphaddubd vphaddubq vphaddubw vphaddudq vphadduwd vphadduwq vphaddwd vphaddwq vphsubbw vphsubdq vphsubwd vpmacsdd vpmacsdqh vpmacsdql vpmacssdd vpmacssdqh vpmacssdql vpmacsswd vpmacssww vpmacswd vpmacsww vpmadcsswd vpmadcswd vpperm vprotb vprotd vprotq vprotw vpshab vpshad vpshaq vpshaw vpshlb vpshld vpshlq vpshlw vbroadcasti128 vpblendd vpbroadcastb vpbroadcastw vpbroadcastd vpbroadcastq vpermd vpermpd vpermps vpermq vperm2i128 vextracti128 vinserti128 vpmaskmovd vpmaskmovq vpsllvd vpsllvq vpsravd vpsrlvd vpsrlvq vgatherdpd vgatherqpd vgatherdps vgatherqps vpgatherdd vpgatherqd vpgatherdq vpgatherqq xabort xbegin xend xtest andn bextr blci blcic blsi blsic blcfill blsfill blcmsk blsmsk blsr blcs bzhi mulx pdep pext rorx sarx shlx shrx tzcnt tzmsk t1mskc valignd valignq vblendmpd vblendmps vbroadcastf32x4 vbroadcastf64x4 vbroadcasti32x4 vbroadcasti64x4 vcompresspd vcompressps vcvtpd2udq vcvtps2udq vcvtsd2usi vcvtss2usi vcvttpd2udq vcvttps2udq vcvttsd2usi vcvttss2usi vcvtudq2pd vcvtudq2ps vcvtusi2sd vcvtusi2ss vexpandpd vexpandps vextractf32x4 vextractf64x4 vextracti32x4 vextracti64x4 vfixupimmpd vfixupimmps vfixupimmsd vfixupimmss vgetexppd vgetexpps vgetexpsd vgetexpss vgetmantpd vgetmantps vgetmantsd vgetmantss vinsertf32x4 vinsertf64x4 vinserti32x4 vinserti64x4 vmovdqa32 vmovdqa64 vmovdqu32 vmovdqu64 vpabsq vpandd vpandnd vpandnq vpandq vpblendmd vpblendmq vpcmpltd vpcmpled vpcmpneqd vpcmpnltd vpcmpnled vpcmpd vpcmpltq vpcmpleq vpcmpneqq vpcmpnltq vpcmpnleq vpcmpq vpcmpequd vpcmpltud vpcmpleud vpcmpnequd vpcmpnltud vpcmpnleud vpcmpud vpcmpequq vpcmpltuq vpcmpleuq vpcmpnequq vpcmpnltuq vpcmpnleuq vpcmpuq vpcompressd vpcompressq vpermi2d vpermi2pd vpermi2ps vpermi2q vpermt2d vpermt2pd vpermt2ps vpermt2q vpexpandd vpexpandq vpmaxsq vpmaxuq vpminsq vpminuq vpmovdb vpmovdw vpmovqb vpmovqd vpmovqw vpmovsdb vpmovsdw vpmovsqb vpmovsqd vpmovsqw vpmovusdb vpmovusdw vpmovusqb vpmovusqd vpmovusqw vpord vporq vprold vprolq vprolvd vprolvq vprord vprorq vprorvd vprorvq vpscatterdd vpscatterdq vpscatterqd vpscatterqq vpsraq vpsravq vpternlogd vpternlogq vptestmd vptestmq vptestnmd vptestnmq vpxord vpxorq vrcp14pd vrcp14ps vrcp14sd vrcp14ss vrndscalepd vrndscaleps vrndscalesd vrndscaless vrsqrt14pd vrsqrt14ps vrsqrt14sd vrsqrt14ss vscalefpd vscalefps vscalefsd vscalefss vscatterdpd vscatterdps vscatterqpd vscatterqps vshuff32x4 vshuff64x2 vshufi32x4 vshufi64x2 kandnw kandw kmovw knotw kortestw korw kshiftlw kshiftrw kunpckbw kxnorw kxorw vpbroadcastmb2q vpbroadcastmw2d vpconflictd vpconflictq vplzcntd vplzcntq vexp2pd vexp2ps vrcp28pd vrcp28ps vrcp28sd vrcp28ss vrsqrt28pd vrsqrt28ps vrsqrt28sd vrsqrt28ss vgatherpf0dpd vgatherpf0dps vgatherpf0qpd vgatherpf0qps vgatherpf1dpd vgatherpf1dps vgatherpf1qpd vgatherpf1qps vscatterpf0dpd vscatterpf0dps vscatterpf0qpd vscatterpf0qps vscatterpf1dpd vscatterpf1dps vscatterpf1qpd vscatterpf1qps prefetchwt1 bndmk bndcl bndcu bndcn bndmov bndldx bndstx sha1rnds4 sha1nexte sha1msg1 sha1msg2 sha256rnds2 sha256msg1 sha256msg2 hint_nop0 hint_nop1 hint_nop2 hint_nop3 hint_nop4 hint_nop5 hint_nop6 hint_nop7 hint_nop8 hint_nop9 hint_nop10 hint_nop11 hint_nop12 hint_nop13 hint_nop14 hint_nop15 hint_nop16 hint_nop17 hint_nop18 hint_nop19 hint_nop20 hint_nop21 hint_nop22 hint_nop23 hint_nop24 hint_nop25 hint_nop26 hint_nop27 hint_nop28 hint_nop29 hint_nop30 hint_nop31 hint_nop32 hint_nop33 hint_nop34 hint_nop35 hint_nop36 hint_nop37 hint_nop38 hint_nop39 hint_nop40 hint_nop41 hint_nop42 hint_nop43 hint_nop44 hint_nop45 hint_nop46 hint_nop47 hint_nop48 hint_nop49 hint_nop50 hint_nop51 hint_nop52 hint_nop53 hint_nop54 hint_nop55 hint_nop56 hint_nop57 hint_nop58 hint_nop59 hint_nop60 hint_nop61 hint_nop62 hint_nop63',
14876 built_in:
14877 // Instruction pointer
14878 'ip eip rip ' +
14879 // 8-bit registers
14880 'al ah bl bh cl ch dl dh sil dil bpl spl r8b r9b r10b r11b r12b r13b r14b r15b ' +
14881 // 16-bit registers
14882 'ax bx cx dx si di bp sp r8w r9w r10w r11w r12w r13w r14w r15w ' +
14883 // 32-bit registers
14884 'eax ebx ecx edx esi edi ebp esp eip r8d r9d r10d r11d r12d r13d r14d r15d ' +
14885 // 64-bit registers
14886 'rax rbx rcx rdx rsi rdi rbp rsp r8 r9 r10 r11 r12 r13 r14 r15 ' +
14887 // Segment registers
14888 'cs ds es fs gs ss ' +
14889 // Floating point stack registers
14890 'st st0 st1 st2 st3 st4 st5 st6 st7 ' +
14891 // MMX Registers
14892 'mm0 mm1 mm2 mm3 mm4 mm5 mm6 mm7 ' +
14893 // SSE registers
14894 'xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 xmm11 xmm12 xmm13 xmm14 xmm15 ' +
14895 'xmm16 xmm17 xmm18 xmm19 xmm20 xmm21 xmm22 xmm23 xmm24 xmm25 xmm26 xmm27 xmm28 xmm29 xmm30 xmm31 ' +
14896 // AVX registers
14897 'ymm0 ymm1 ymm2 ymm3 ymm4 ymm5 ymm6 ymm7 ymm8 ymm9 ymm10 ymm11 ymm12 ymm13 ymm14 ymm15 ' +
14898 'ymm16 ymm17 ymm18 ymm19 ymm20 ymm21 ymm22 ymm23 ymm24 ymm25 ymm26 ymm27 ymm28 ymm29 ymm30 ymm31 ' +
14899 // AVX-512F registers
14900 'zmm0 zmm1 zmm2 zmm3 zmm4 zmm5 zmm6 zmm7 zmm8 zmm9 zmm10 zmm11 zmm12 zmm13 zmm14 zmm15 ' +
14901 'zmm16 zmm17 zmm18 zmm19 zmm20 zmm21 zmm22 zmm23 zmm24 zmm25 zmm26 zmm27 zmm28 zmm29 zmm30 zmm31 ' +
14902 // AVX-512F mask registers
14903 'k0 k1 k2 k3 k4 k5 k6 k7 ' +
14904 // Bound (MPX) register
14905 'bnd0 bnd1 bnd2 bnd3 ' +
14906 // Special register
14907 'cr0 cr1 cr2 cr3 cr4 cr8 dr0 dr1 dr2 dr3 dr8 tr3 tr4 tr5 tr6 tr7 ' +
14908 // NASM altreg package
14909 'r0 r1 r2 r3 r4 r5 r6 r7 r0b r1b r2b r3b r4b r5b r6b r7b ' +
14910 'r0w r1w r2w r3w r4w r5w r6w r7w r0d r1d r2d r3d r4d r5d r6d r7d ' +
14911 'r0h r1h r2h r3h ' +
14912 'r0l r1l r2l r3l r4l r5l r6l r7l r8l r9l r10l r11l r12l r13l r14l r15l ' +
14913
14914 'db dw dd dq dt ddq do dy dz ' +
14915 'resb resw resd resq rest resdq reso resy resz ' +
14916 'incbin equ times ' +
14917 'byte word dword qword nosplit rel abs seg wrt strict near far a32 ptr',
14918
14919 meta:
14920 '%define %xdefine %+ %undef %defstr %deftok %assign %strcat %strlen %substr %rotate %elif %else %endif ' +
14921 '%if %ifmacro %ifctx %ifidn %ifidni %ifid %ifnum %ifstr %iftoken %ifempty %ifenv %error %warning %fatal %rep ' +
14922 '%endrep %include %push %pop %repl %pathsearch %depend %use %arg %stacksize %local %line %comment %endcomment ' +
14923 '.nolist ' +
14924 '__FILE__ __LINE__ __SECT__ __BITS__ __OUTPUT_FORMAT__ __DATE__ __TIME__ __DATE_NUM__ __TIME_NUM__ ' +
14925 '__UTC_DATE__ __UTC_TIME__ __UTC_DATE_NUM__ __UTC_TIME_NUM__ __PASS__ struc endstruc istruc at iend ' +
14926 'align alignb sectalign daz nodaz up down zero default option assume public ' +
14927
14928 'bits use16 use32 use64 default section segment absolute extern global common cpu float ' +
14929 '__utf16__ __utf16le__ __utf16be__ __utf32__ __utf32le__ __utf32be__ ' +
14930 '__float8__ __float16__ __float32__ __float64__ __float80m__ __float80e__ __float128l__ __float128h__ ' +
14931 '__Infinity__ __QNaN__ __SNaN__ Inf NaN QNaN SNaN float8 float16 float32 float64 float80m float80e ' +
14932 'float128l float128h __FLOAT_DAZ__ __FLOAT_ROUND__ __FLOAT__'
14933 },
14934 contains: [
14935 hljs.COMMENT(
14936 ';',
14937 '$',
14938 {
14939 relevance: 0
14940 }
14941 ),
14942 {
14943 className: 'number',
14944 variants: [
14945 // Float number and x87 BCD
14946 {
14947 begin: '\\b(?:([0-9][0-9_]*)?\\.[0-9_]*(?:[eE][+-]?[0-9_]+)?|' +
14948 '(0[Xx])?[0-9][0-9_]*\\.?[0-9_]*(?:[pP](?:[+-]?[0-9_]+)?)?)\\b',
14949 relevance: 0
14950 },
14951
14952 // Hex number in $
14953 { begin: '\\$[0-9][0-9A-Fa-f]*', relevance: 0 },
14954
14955 // Number in H,D,T,Q,O,B,Y suffix
14956 { begin: '\\b(?:[0-9A-Fa-f][0-9A-Fa-f_]*[Hh]|[0-9][0-9_]*[DdTt]?|[0-7][0-7_]*[QqOo]|[0-1][0-1_]*[BbYy])\\b' },
14957
14958 // Number in X,D,T,Q,O,B,Y prefix
14959 { begin: '\\b(?:0[Xx][0-9A-Fa-f_]+|0[DdTt][0-9_]+|0[QqOo][0-7_]+|0[BbYy][0-1_]+)\\b'}
14960 ]
14961 },
14962 // Double quote string
14963 hljs.QUOTE_STRING_MODE,
14964 {
14965 className: 'string',
14966 variants: [
14967 // Single-quoted string
14968 { begin: '\'', end: '[^\\\\]\'' },
14969 // Backquoted string
14970 { begin: '`', end: '[^\\\\]`' },
14971 // Section name
14972 { begin: '\\.[A-Za-z0-9]+' }
14973 ],
14974 relevance: 0
14975 },
14976 {
14977 className: 'symbol',
14978 variants: [
14979 // Global label and local label
14980 { begin: '^\\s*[A-Za-z._?][A-Za-z0-9_$#@~.?]*(:|\\s+label)' },
14981 // Macro-local label
14982 { begin: '^\\s*%%[A-Za-z0-9_$#@~.?]*:' }
14983 ],
14984 relevance: 0
14985 },
14986 // Macro parameter
14987 {
14988 className: 'subst',
14989 begin: '%[0-9]+',
14990 relevance: 0
14991 },
14992 // Macro parameter
14993 {
14994 className: 'subst',
14995 begin: '%!\S+',
14996 relevance: 0
14997 }
14998 ]
14999 };
15000}
15001},{name:"xl",create:/*
15002Language: XL
15003Author: Christophe de Dinechin <christophe@taodyne.com>
15004Description: An extensible programming language, based on parse tree rewriting (http://xlr.sf.net)
15005*/
15006
15007function(hljs) {
15008 var BUILTIN_MODULES =
15009 'ObjectLoader Animate MovieCredits Slides Filters Shading Materials LensFlare Mapping VLCAudioVideo ' +
15010 'StereoDecoder PointCloud NetworkAccess RemoteControl RegExp ChromaKey Snowfall NodeJS Speech Charts';
15011
15012 var XL_KEYWORDS = {
15013 keyword:
15014 'if then else do while until for loop import with is as where when by data constant ' +
15015 'integer real text name boolean symbol infix prefix postfix block tree',
15016 literal:
15017 'true false nil',
15018 built_in:
15019 'in mod rem and or xor not abs sign floor ceil sqrt sin cos tan asin ' +
15020 'acos atan exp expm1 log log2 log10 log1p pi at text_length text_range ' +
15021 'text_find text_replace contains page slide basic_slide title_slide ' +
15022 'title subtitle fade_in fade_out fade_at clear_color color line_color ' +
15023 'line_width texture_wrap texture_transform texture scale_?x scale_?y ' +
15024 'scale_?z? translate_?x translate_?y translate_?z? rotate_?x rotate_?y ' +
15025 'rotate_?z? rectangle circle ellipse sphere path line_to move_to ' +
15026 'quad_to curve_to theme background contents locally time mouse_?x ' +
15027 'mouse_?y mouse_buttons ' +
15028 BUILTIN_MODULES
15029 };
15030
15031 var DOUBLE_QUOTE_TEXT = {
15032 className: 'string',
15033 begin: '"', end: '"', illegal: '\\n'
15034 };
15035 var SINGLE_QUOTE_TEXT = {
15036 className: 'string',
15037 begin: '\'', end: '\'', illegal: '\\n'
15038 };
15039 var LONG_TEXT = {
15040 className: 'string',
15041 begin: '<<', end: '>>'
15042 };
15043 var BASED_NUMBER = {
15044 className: 'number',
15045 begin: '[0-9]+#[0-9A-Z_]+(\\.[0-9-A-Z_]+)?#?([Ee][+-]?[0-9]+)?'
15046 };
15047 var IMPORT = {
15048 beginKeywords: 'import', end: '$',
15049 keywords: XL_KEYWORDS,
15050 contains: [DOUBLE_QUOTE_TEXT]
15051 };
15052 var FUNCTION_DEFINITION = {
15053 className: 'function',
15054 begin: /[a-z][^\n]*->/, returnBegin: true, end: /->/,
15055 contains: [
15056 hljs.inherit(hljs.TITLE_MODE, {starts: {
15057 endsWithParent: true,
15058 keywords: XL_KEYWORDS
15059 }})
15060 ]
15061 };
15062 return {
15063 aliases: ['tao'],
15064 lexemes: /[a-zA-Z][a-zA-Z0-9_?]*/,
15065 keywords: XL_KEYWORDS,
15066 contains: [
15067 hljs.C_LINE_COMMENT_MODE,
15068 hljs.C_BLOCK_COMMENT_MODE,
15069 DOUBLE_QUOTE_TEXT,
15070 SINGLE_QUOTE_TEXT,
15071 LONG_TEXT,
15072 FUNCTION_DEFINITION,
15073 IMPORT,
15074 BASED_NUMBER,
15075 hljs.NUMBER_MODE
15076 ]
15077 };
15078}
15079},{name:"xml",create:/*
15080Language: HTML, XML
15081Category: common
15082*/
15083
15084function(hljs) {
15085 var XML_IDENT_RE = '[A-Za-z0-9\\._:-]+';
15086 var PHP = {
15087 begin: /<\?(php)?(?!\w)/, end: /\?>/,
15088 subLanguage: 'php'
15089 };
15090 var TAG_INTERNALS = {
15091 endsWithParent: true,
15092 illegal: /</,
15093 relevance: 0,
15094 contains: [
15095 PHP,
15096 {
15097 className: 'attr',
15098 begin: XML_IDENT_RE,
15099 relevance: 0
15100 },
15101 {
15102 begin: '=',
15103 relevance: 0,
15104 contains: [
15105 {
15106 className: 'string',
15107 contains: [PHP],
15108 variants: [
15109 {begin: /"/, end: /"/},
15110 {begin: /'/, end: /'/},
15111 {begin: /[^\s\/>]+/}
15112 ]
15113 }
15114 ]
15115 }
15116 ]
15117 };
15118 return {
15119 aliases: ['html', 'xhtml', 'rss', 'atom', 'xsl', 'plist'],
15120 case_insensitive: true,
15121 contains: [
15122 {
15123 className: 'meta',
15124 begin: '<!DOCTYPE', end: '>',
15125 relevance: 10,
15126 contains: [{begin: '\\[', end: '\\]'}]
15127 },
15128 hljs.COMMENT(
15129 '<!--',
15130 '-->',
15131 {
15132 relevance: 10
15133 }
15134 ),
15135 {
15136 begin: '<\\!\\[CDATA\\[', end: '\\]\\]>',
15137 relevance: 10
15138 },
15139 {
15140 className: 'tag',
15141 /*
15142 The lookahead pattern (?=...) ensures that 'begin' only matches
15143 '<style' as a single word, followed by a whitespace or an
15144 ending braket. The '$' is needed for the lexeme to be recognized
15145 by hljs.subMode() that tests lexemes outside the stream.
15146 */
15147 begin: '<style(?=\\s|>|$)', end: '>',
15148 keywords: {name: 'style'},
15149 contains: [TAG_INTERNALS],
15150 starts: {
15151 end: '</style>', returnEnd: true,
15152 subLanguage: ['css', 'xml']
15153 }
15154 },
15155 {
15156 className: 'tag',
15157 // See the comment in the <style tag about the lookahead pattern
15158 begin: '<script(?=\\s|>|$)', end: '>',
15159 keywords: {name: 'script'},
15160 contains: [TAG_INTERNALS],
15161 starts: {
15162 end: '\<\/script\>', returnEnd: true,
15163 subLanguage: ['actionscript', 'javascript', 'handlebars', 'xml']
15164 }
15165 },
15166 PHP,
15167 {
15168 className: 'meta',
15169 begin: /<\?\w+/, end: /\?>/,
15170 relevance: 10
15171 },
15172 {
15173 className: 'tag',
15174 begin: '</?', end: '/?>',
15175 contains: [
15176 {
15177 className: 'name', begin: /[^\/><\s]+/, relevance: 0
15178 },
15179 TAG_INTERNALS
15180 ]
15181 }
15182 ]
15183 };
15184}
15185},{name:"xquery",create:/*
15186Language: XQuery
15187Author: Dirk Kirsten <dk@basex.org>
15188Description: Supports XQuery 3.1 including XQuery Update 3, so also XPath (as it is a superset)
15189Category: functional
15190*/
15191
15192function(hljs) {
15193 var KEYWORDS = 'for let if while then else return where group by xquery encoding version' +
15194 'module namespace boundary-space preserve strip default collation base-uri ordering' +
15195 'copy-namespaces order declare import schema namespace function option in allowing empty' +
15196 'at tumbling window sliding window start when only end when previous next stable ascending' +
15197 'descending empty greatest least some every satisfies switch case typeswitch try catch and' +
15198 'or to union intersect instance of treat as castable cast map array delete insert into' +
15199 'replace value rename copy modify update';
15200 var LITERAL = 'false true xs:string xs:integer element item xs:date xs:datetime xs:float xs:double xs:decimal QName xs:anyURI xs:long xs:int xs:short xs:byte attribute';
15201 var VAR = {
15202 begin: /\$[a-zA-Z0-9\-]+/,
15203 relevance: 5
15204 };
15205
15206 var NUMBER = {
15207 className: 'number',
15208 begin: '(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b',
15209 relevance: 0
15210 };
15211
15212 var STRING = {
15213 className: 'string',
15214 variants: [
15215 {begin: /"/, end: /"/, contains: [{begin: /""/, relevance: 0}]},
15216 {begin: /'/, end: /'/, contains: [{begin: /''/, relevance: 0}]}
15217 ]
15218 };
15219
15220 var ANNOTATION = {
15221 className: 'meta',
15222 begin: '%\\w+'
15223 };
15224
15225 var COMMENT = {
15226 className: 'comment',
15227 begin: '\\(:', end: ':\\)',
15228 relevance: 10,
15229 contains: [
15230 {
15231 className: 'doctag', begin: '@\\w+'
15232 }
15233 ]
15234 };
15235
15236 var METHOD = {
15237 begin: '{', end: '}'
15238 };
15239
15240 var CONTAINS = [
15241 VAR,
15242 STRING,
15243 NUMBER,
15244 COMMENT,
15245 ANNOTATION,
15246 METHOD
15247 ];
15248 METHOD.contains = CONTAINS;
15249
15250
15251 return {
15252 aliases: ['xpath', 'xq'],
15253 case_insensitive: false,
15254 lexemes: /[a-zA-Z\$][a-zA-Z0-9_:\-]*/,
15255 illegal: /(proc)|(abstract)|(extends)|(until)|(#)/,
15256 keywords: {
15257 keyword: KEYWORDS,
15258 literal: LITERAL
15259 },
15260 contains: CONTAINS
15261 };
15262}
15263},{name:"yaml",create:/*
15264Language: YAML
15265Author: Stefan Wienert <stwienert@gmail.com>
15266Requires: ruby.js
15267Description: YAML (Yet Another Markdown Language)
15268Category: config
15269*/
15270function(hljs) {
15271 var LITERALS = {literal: '{ } true false yes no Yes No True False null'};
15272
15273 var keyPrefix = '^[ \\-]*';
15274 var keyName = '[a-zA-Z_][\\w\\-]*';
15275 var KEY = {
15276 className: 'attr',
15277 variants: [
15278 { begin: keyPrefix + keyName + ":"},
15279 { begin: keyPrefix + '"' + keyName + '"' + ":"},
15280 { begin: keyPrefix + "'" + keyName + "'" + ":"}
15281 ]
15282 };
15283
15284 var TEMPLATE_VARIABLES = {
15285 className: 'template-variable',
15286 variants: [
15287 { begin: '\{\{', end: '\}\}' }, // jinja templates Ansible
15288 { begin: '%\{', end: '\}' } // Ruby i18n
15289 ]
15290 };
15291 var STRING = {
15292 className: 'string',
15293 relevance: 0,
15294 variants: [
15295 {begin: /'/, end: /'/},
15296 {begin: /"/, end: /"/}
15297 ],
15298 contains: [
15299 hljs.BACKSLASH_ESCAPE,
15300 TEMPLATE_VARIABLES
15301 ]
15302 };
15303
15304 return {
15305 case_insensitive: true,
15306 aliases: ['yml', 'YAML', 'yaml'],
15307 contains: [
15308 KEY,
15309 {
15310 className: 'meta',
15311 begin: '^---\s*$',
15312 relevance: 10
15313 },
15314 { // multi line string
15315 className: 'string',
15316 begin: '[\\|>] *$',
15317 returnEnd: true,
15318 contains: STRING.contains,
15319 // very simple termination: next hash key
15320 end: KEY.variants[0].begin
15321 },
15322 { // Ruby/Rails erb
15323 begin: '<%[%=-]?', end: '[%-]?%>',
15324 subLanguage: 'ruby',
15325 excludeBegin: true,
15326 excludeEnd: true,
15327 relevance: 0
15328 },
15329 { // data type
15330 className: 'type',
15331 begin: '!!' + hljs.UNDERSCORE_IDENT_RE,
15332 },
15333 { // fragment id &ref
15334 className: 'meta',
15335 begin: '&' + hljs.UNDERSCORE_IDENT_RE + '$',
15336 },
15337 { // fragment reference *ref
15338 className: 'meta',
15339 begin: '\\*' + hljs.UNDERSCORE_IDENT_RE + '$'
15340 },
15341 { // array listing
15342 className: 'bullet',
15343 begin: '^ *-',
15344 relevance: 0
15345 },
15346 STRING,
15347 hljs.HASH_COMMENT_MODE,
15348 hljs.C_NUMBER_MODE
15349 ],
15350 keywords: LITERALS
15351 };
15352}
15353},{name:"zephir",create:/*
15354 Language: Zephir
15355 Author: Oleg Efimov <efimovov@gmail.com>
15356 */
15357
15358function(hljs) {
15359 var STRING = {
15360 className: 'string',
15361 contains: [hljs.BACKSLASH_ESCAPE],
15362 variants: [
15363 {
15364 begin: 'b"', end: '"'
15365 },
15366 {
15367 begin: 'b\'', end: '\''
15368 },
15369 hljs.inherit(hljs.APOS_STRING_MODE, {illegal: null}),
15370 hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null})
15371 ]
15372 };
15373 var NUMBER = {variants: [hljs.BINARY_NUMBER_MODE, hljs.C_NUMBER_MODE]};
15374 return {
15375 aliases: ['zep'],
15376 case_insensitive: true,
15377 keywords:
15378 'and include_once list abstract global private echo interface as static endswitch ' +
15379 'array null if endwhile or const for endforeach self var let while isset public ' +
15380 'protected exit foreach throw elseif include __FILE__ empty require_once do xor ' +
15381 'return parent clone use __CLASS__ __LINE__ else break print eval new ' +
15382 'catch __METHOD__ case exception default die require __FUNCTION__ ' +
15383 'enddeclare final try switch continue endfor endif declare unset true false ' +
15384 'trait goto instanceof insteadof __DIR__ __NAMESPACE__ ' +
15385 'yield finally int uint long ulong char uchar double float bool boolean string' +
15386 'likely unlikely',
15387 contains: [
15388 hljs.C_LINE_COMMENT_MODE,
15389 hljs.HASH_COMMENT_MODE,
15390 hljs.COMMENT(
15391 '/\\*',
15392 '\\*/',
15393 {
15394 contains: [
15395 {
15396 className: 'doctag',
15397 begin: '@[A-Za-z]+'
15398 }
15399 ]
15400 }
15401 ),
15402 hljs.COMMENT(
15403 '__halt_compiler.+?;',
15404 false,
15405 {
15406 endsWithParent: true,
15407 keywords: '__halt_compiler',
15408 lexemes: hljs.UNDERSCORE_IDENT_RE
15409 }
15410 ),
15411 {
15412 className: 'string',
15413 begin: '<<<[\'"]?\\w+[\'"]?$', end: '^\\w+;',
15414 contains: [hljs.BACKSLASH_ESCAPE]
15415 },
15416 {
15417 // swallow composed identifiers to avoid parsing them as keywords
15418 begin: /(::|->)+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/
15419 },
15420 {
15421 className: 'function',
15422 beginKeywords: 'function', end: /[;{]/, excludeEnd: true,
15423 illegal: '\\$|\\[|%',
15424 contains: [
15425 hljs.UNDERSCORE_TITLE_MODE,
15426 {
15427 className: 'params',
15428 begin: '\\(', end: '\\)',
15429 contains: [
15430 'self',
15431 hljs.C_BLOCK_COMMENT_MODE,
15432 STRING,
15433 NUMBER
15434 ]
15435 }
15436 ]
15437 },
15438 {
15439 className: 'class',
15440 beginKeywords: 'class interface', end: '{', excludeEnd: true,
15441 illegal: /[:\(\$"]/,
15442 contains: [
15443 {beginKeywords: 'extends implements'},
15444 hljs.UNDERSCORE_TITLE_MODE
15445 ]
15446 },
15447 {
15448 beginKeywords: 'namespace', end: ';',
15449 illegal: /[\.']/,
15450 contains: [hljs.UNDERSCORE_TITLE_MODE]
15451 },
15452 {
15453 beginKeywords: 'use', end: ';',
15454 contains: [hljs.UNDERSCORE_TITLE_MODE]
15455 },
15456 {
15457 begin: '=>' // No markup, just a relevance booster
15458 },
15459 STRING,
15460 NUMBER
15461 ]
15462 };
15463}
15464}]
15465 ;
15466
15467for (var i = 0; i < languages.length; ++i) {
15468 hljs.registerLanguage(languages[i].name, languages[i].create);
15469}
15470
15471module.exports = {
15472 styles: {"agate":".hljs-agate{}.hljs-agate .hljs{display:block;overflow-x:auto;padding:0.5em;background:#333;color:white;}.hljs-agate .hljs-name,.hljs-agate .hljs-strong{font-weight:bold;}.hljs-agate .hljs-code,.hljs-agate .hljs-emphasis{font-style:italic;}.hljs-agate .hljs-tag{color:#62c8f3;}.hljs-agate .hljs-variable,.hljs-agate .hljs-template-variable,.hljs-agate .hljs-selector-id,.hljs-agate .hljs-selector-class{color:#ade5fc;}.hljs-agate .hljs-string,.hljs-agate .hljs-bullet{color:#a2fca2;}.hljs-agate .hljs-type,.hljs-agate .hljs-title,.hljs-agate .hljs-section,.hljs-agate .hljs-attribute,.hljs-agate .hljs-quote,.hljs-agate .hljs-built_in,.hljs-agate .hljs-builtin-name{color:#ffa;}.hljs-agate .hljs-number,.hljs-agate .hljs-symbol,.hljs-agate .hljs-bullet{color:#d36363;}.hljs-agate .hljs-keyword,.hljs-agate .hljs-selector-tag,.hljs-agate .hljs-literal{color:#fcc28c;}.hljs-agate .hljs-comment,.hljs-agate .hljs-deletion,.hljs-agate .hljs-code{color:#888;}.hljs-agate .hljs-regexp,.hljs-agate .hljs-link{color:#c6b4f0;}.hljs-agate .hljs-meta{color:#fc9b9b;}.hljs-agate .hljs-deletion{background-color:#fc9b9b;color:#333;}.hljs-agate .hljs-addition{background-color:#a2fca2;color:#333;}.hljs-agate .hljs a{color:inherit;}.hljs-agate .hljs a:focus,.hljs-agate .hljs a:hover{color:inherit;text-decoration:underline;}","androidstudio":".hljs-androidstudio{}.hljs-androidstudio .hljs{color:#a9b7c6;background:#282b2e;display:block;overflow-x:auto;padding:0.5em;}.hljs-androidstudio .hljs-number,.hljs-androidstudio .hljs-literal,.hljs-androidstudio .hljs-symbol,.hljs-androidstudio .hljs-bullet{color:#6897BB;}.hljs-androidstudio .hljs-keyword,.hljs-androidstudio .hljs-selector-tag,.hljs-androidstudio .hljs-deletion{color:#cc7832;}.hljs-androidstudio .hljs-variable,.hljs-androidstudio .hljs-template-variable,.hljs-androidstudio .hljs-link{color:#629755;}.hljs-androidstudio .hljs-comment,.hljs-androidstudio .hljs-quote{color:#808080;}.hljs-androidstudio .hljs-meta{color:#bbb529;}.hljs-androidstudio .hljs-string,.hljs-androidstudio .hljs-attribute,.hljs-androidstudio .hljs-addition{color:#6A8759;}.hljs-androidstudio .hljs-section,.hljs-androidstudio .hljs-title,.hljs-androidstudio .hljs-type{color:#ffc66d;}.hljs-androidstudio .hljs-name,.hljs-androidstudio .hljs-selector-id,.hljs-androidstudio .hljs-selector-class{color:#e8bf6a;}.hljs-androidstudio .hljs-emphasis{font-style:italic;}.hljs-androidstudio .hljs-strong{font-weight:bold;}","arta":".hljs-arta{}.hljs-arta .hljs{display:block;overflow-x:auto;padding:0.5em;background:#222;}.hljs-arta .hljs,.hljs-arta .hljs-subst{color:#aaa;}.hljs-arta .hljs-section{color:#fff;}.hljs-arta .hljs-comment,.hljs-arta .hljs-quote,.hljs-arta .hljs-meta{color:#444;}.hljs-arta .hljs-string,.hljs-arta .hljs-symbol,.hljs-arta .hljs-bullet,.hljs-arta .hljs-regexp{color:#ffcc33;}.hljs-arta .hljs-number,.hljs-arta .hljs-addition{color:#00cc66;}.hljs-arta .hljs-built_in,.hljs-arta .hljs-builtin-name,.hljs-arta .hljs-literal,.hljs-arta .hljs-type,.hljs-arta .hljs-template-variable,.hljs-arta .hljs-attribute,.hljs-arta .hljs-link{color:#32aaee;}.hljs-arta .hljs-keyword,.hljs-arta .hljs-selector-tag,.hljs-arta .hljs-name,.hljs-arta .hljs-selector-id,.hljs-arta .hljs-selector-class{color:#6644aa;}.hljs-arta .hljs-title,.hljs-arta .hljs-variable,.hljs-arta .hljs-deletion,.hljs-arta .hljs-template-tag{color:#bb1166;}.hljs-arta .hljs-section,.hljs-arta .hljs-doctag,.hljs-arta .hljs-strong{font-weight:bold;}.hljs-arta .hljs-emphasis{font-style:italic;}","ascetic":".hljs-ascetic{}.hljs-ascetic .hljs{display:block;overflow-x:auto;padding:0.5em;background:white;color:black;}.hljs-ascetic .hljs-string,.hljs-ascetic .hljs-variable,.hljs-ascetic .hljs-template-variable,.hljs-ascetic .hljs-symbol,.hljs-ascetic .hljs-bullet,.hljs-ascetic .hljs-section,.hljs-ascetic .hljs-addition,.hljs-ascetic .hljs-attribute,.hljs-ascetic .hljs-link{color:#888;}.hljs-ascetic .hljs-comment,.hljs-ascetic .hljs-quote,.hljs-ascetic .hljs-meta,.hljs-ascetic .hljs-deletion{color:#ccc;}.hljs-ascetic .hljs-keyword,.hljs-ascetic .hljs-selector-tag,.hljs-ascetic .hljs-section,.hljs-ascetic .hljs-name,.hljs-ascetic .hljs-type,.hljs-ascetic .hljs-strong{font-weight:bold;}.hljs-ascetic .hljs-emphasis{font-style:italic;}","atelier-cave-dark":".hljs-atelier-cave-dark{}.hljs-atelier-cave-dark .hljs-comment,.hljs-atelier-cave-dark .hljs-quote{color:#7e7887;}.hljs-atelier-cave-dark .hljs-variable,.hljs-atelier-cave-dark .hljs-template-variable,.hljs-atelier-cave-dark .hljs-attribute,.hljs-atelier-cave-dark .hljs-regexp,.hljs-atelier-cave-dark .hljs-link,.hljs-atelier-cave-dark .hljs-tag,.hljs-atelier-cave-dark .hljs-name,.hljs-atelier-cave-dark .hljs-selector-id,.hljs-atelier-cave-dark .hljs-selector-class{color:#be4678;}.hljs-atelier-cave-dark .hljs-number,.hljs-atelier-cave-dark .hljs-meta,.hljs-atelier-cave-dark .hljs-built_in,.hljs-atelier-cave-dark .hljs-builtin-name,.hljs-atelier-cave-dark .hljs-literal,.hljs-atelier-cave-dark .hljs-type,.hljs-atelier-cave-dark .hljs-params{color:#aa573c;}.hljs-atelier-cave-dark .hljs-string,.hljs-atelier-cave-dark .hljs-symbol,.hljs-atelier-cave-dark .hljs-bullet{color:#2a9292;}.hljs-atelier-cave-dark .hljs-title,.hljs-atelier-cave-dark .hljs-section{color:#576ddb;}.hljs-atelier-cave-dark .hljs-keyword,.hljs-atelier-cave-dark .hljs-selector-tag{color:#955ae7;}.hljs-atelier-cave-dark .hljs-deletion,.hljs-atelier-cave-dark .hljs-addition{color:#19171c;display:inline-block;width:100%;}.hljs-atelier-cave-dark .hljs-deletion{background-color:#be4678;}.hljs-atelier-cave-dark .hljs-addition{background-color:#2a9292;}.hljs-atelier-cave-dark .hljs{display:block;overflow-x:auto;background:#19171c;color:#8b8792;padding:0.5em;}.hljs-atelier-cave-dark .hljs-emphasis{font-style:italic;}.hljs-atelier-cave-dark .hljs-strong{font-weight:bold;}","atelier-cave-light":".hljs-atelier-cave-light{}.hljs-atelier-cave-light .hljs-comment,.hljs-atelier-cave-light .hljs-quote{color:#655f6d;}.hljs-atelier-cave-light .hljs-variable,.hljs-atelier-cave-light .hljs-template-variable,.hljs-atelier-cave-light .hljs-attribute,.hljs-atelier-cave-light .hljs-tag,.hljs-atelier-cave-light .hljs-name,.hljs-atelier-cave-light .hljs-regexp,.hljs-atelier-cave-light .hljs-link,.hljs-atelier-cave-light .hljs-name,.hljs-atelier-cave-light .hljs-name,.hljs-atelier-cave-light .hljs-selector-id,.hljs-atelier-cave-light .hljs-selector-class{color:#be4678;}.hljs-atelier-cave-light .hljs-number,.hljs-atelier-cave-light .hljs-meta,.hljs-atelier-cave-light .hljs-built_in,.hljs-atelier-cave-light .hljs-builtin-name,.hljs-atelier-cave-light .hljs-literal,.hljs-atelier-cave-light .hljs-type,.hljs-atelier-cave-light .hljs-params{color:#aa573c;}.hljs-atelier-cave-light .hljs-string,.hljs-atelier-cave-light .hljs-symbol,.hljs-atelier-cave-light .hljs-bullet{color:#2a9292;}.hljs-atelier-cave-light .hljs-title,.hljs-atelier-cave-light .hljs-section{color:#576ddb;}.hljs-atelier-cave-light .hljs-keyword,.hljs-atelier-cave-light .hljs-selector-tag{color:#955ae7;}.hljs-atelier-cave-light .hljs-deletion,.hljs-atelier-cave-light .hljs-addition{color:#19171c;display:inline-block;width:100%;}.hljs-atelier-cave-light .hljs-deletion{background-color:#be4678;}.hljs-atelier-cave-light .hljs-addition{background-color:#2a9292;}.hljs-atelier-cave-light .hljs{display:block;overflow-x:auto;background:#efecf4;color:#585260;padding:0.5em;}.hljs-atelier-cave-light .hljs-emphasis{font-style:italic;}.hljs-atelier-cave-light .hljs-strong{font-weight:bold;}","atelier-dune-dark":".hljs-atelier-dune-dark{}.hljs-atelier-dune-dark .hljs-comment,.hljs-atelier-dune-dark .hljs-quote{color:#999580;}.hljs-atelier-dune-dark .hljs-variable,.hljs-atelier-dune-dark .hljs-template-variable,.hljs-atelier-dune-dark .hljs-attribute,.hljs-atelier-dune-dark .hljs-tag,.hljs-atelier-dune-dark .hljs-name,.hljs-atelier-dune-dark .hljs-regexp,.hljs-atelier-dune-dark .hljs-link,.hljs-atelier-dune-dark .hljs-name,.hljs-atelier-dune-dark .hljs-selector-id,.hljs-atelier-dune-dark .hljs-selector-class{color:#d73737;}.hljs-atelier-dune-dark .hljs-number,.hljs-atelier-dune-dark .hljs-meta,.hljs-atelier-dune-dark .hljs-built_in,.hljs-atelier-dune-dark .hljs-builtin-name,.hljs-atelier-dune-dark .hljs-literal,.hljs-atelier-dune-dark .hljs-type,.hljs-atelier-dune-dark .hljs-params{color:#b65611;}.hljs-atelier-dune-dark .hljs-string,.hljs-atelier-dune-dark .hljs-symbol,.hljs-atelier-dune-dark .hljs-bullet{color:#60ac39;}.hljs-atelier-dune-dark .hljs-title,.hljs-atelier-dune-dark .hljs-section{color:#6684e1;}.hljs-atelier-dune-dark .hljs-keyword,.hljs-atelier-dune-dark .hljs-selector-tag{color:#b854d4;}.hljs-atelier-dune-dark .hljs{display:block;overflow-x:auto;background:#20201d;color:#a6a28c;padding:0.5em;}.hljs-atelier-dune-dark .hljs-emphasis{font-style:italic;}.hljs-atelier-dune-dark .hljs-strong{font-weight:bold;}","atelier-dune-light":".hljs-atelier-dune-light{}.hljs-atelier-dune-light .hljs-comment,.hljs-atelier-dune-light .hljs-quote{color:#7d7a68;}.hljs-atelier-dune-light .hljs-variable,.hljs-atelier-dune-light .hljs-template-variable,.hljs-atelier-dune-light .hljs-attribute,.hljs-atelier-dune-light .hljs-tag,.hljs-atelier-dune-light .hljs-name,.hljs-atelier-dune-light .hljs-regexp,.hljs-atelier-dune-light .hljs-link,.hljs-atelier-dune-light .hljs-name,.hljs-atelier-dune-light .hljs-selector-id,.hljs-atelier-dune-light .hljs-selector-class{color:#d73737;}.hljs-atelier-dune-light .hljs-number,.hljs-atelier-dune-light .hljs-meta,.hljs-atelier-dune-light .hljs-built_in,.hljs-atelier-dune-light .hljs-builtin-name,.hljs-atelier-dune-light .hljs-literal,.hljs-atelier-dune-light .hljs-type,.hljs-atelier-dune-light .hljs-params{color:#b65611;}.hljs-atelier-dune-light .hljs-string,.hljs-atelier-dune-light .hljs-symbol,.hljs-atelier-dune-light .hljs-bullet{color:#60ac39;}.hljs-atelier-dune-light .hljs-title,.hljs-atelier-dune-light .hljs-section{color:#6684e1;}.hljs-atelier-dune-light .hljs-keyword,.hljs-atelier-dune-light .hljs-selector-tag{color:#b854d4;}.hljs-atelier-dune-light .hljs{display:block;overflow-x:auto;background:#fefbec;color:#6e6b5e;padding:0.5em;}.hljs-atelier-dune-light .hljs-emphasis{font-style:italic;}.hljs-atelier-dune-light .hljs-strong{font-weight:bold;}","atelier-estuary-dark":".hljs-atelier-estuary-dark{}.hljs-atelier-estuary-dark .hljs-comment,.hljs-atelier-estuary-dark .hljs-quote{color:#878573;}.hljs-atelier-estuary-dark .hljs-variable,.hljs-atelier-estuary-dark .hljs-template-variable,.hljs-atelier-estuary-dark .hljs-attribute,.hljs-atelier-estuary-dark .hljs-tag,.hljs-atelier-estuary-dark .hljs-name,.hljs-atelier-estuary-dark .hljs-regexp,.hljs-atelier-estuary-dark .hljs-link,.hljs-atelier-estuary-dark .hljs-name,.hljs-atelier-estuary-dark .hljs-selector-id,.hljs-atelier-estuary-dark .hljs-selector-class{color:#ba6236;}.hljs-atelier-estuary-dark .hljs-number,.hljs-atelier-estuary-dark .hljs-meta,.hljs-atelier-estuary-dark .hljs-built_in,.hljs-atelier-estuary-dark .hljs-builtin-name,.hljs-atelier-estuary-dark .hljs-literal,.hljs-atelier-estuary-dark .hljs-type,.hljs-atelier-estuary-dark .hljs-params{color:#ae7313;}.hljs-atelier-estuary-dark .hljs-string,.hljs-atelier-estuary-dark .hljs-symbol,.hljs-atelier-estuary-dark .hljs-bullet{color:#7d9726;}.hljs-atelier-estuary-dark .hljs-title,.hljs-atelier-estuary-dark .hljs-section{color:#36a166;}.hljs-atelier-estuary-dark .hljs-keyword,.hljs-atelier-estuary-dark .hljs-selector-tag{color:#5f9182;}.hljs-atelier-estuary-dark .hljs-deletion,.hljs-atelier-estuary-dark .hljs-addition{color:#22221b;display:inline-block;width:100%;}.hljs-atelier-estuary-dark .hljs-deletion{background-color:#ba6236;}.hljs-atelier-estuary-dark .hljs-addition{background-color:#7d9726;}.hljs-atelier-estuary-dark .hljs{display:block;overflow-x:auto;background:#22221b;color:#929181;padding:0.5em;}.hljs-atelier-estuary-dark .hljs-emphasis{font-style:italic;}.hljs-atelier-estuary-dark .hljs-strong{font-weight:bold;}","atelier-estuary-light":".hljs-atelier-estuary-light{}.hljs-atelier-estuary-light .hljs-comment,.hljs-atelier-estuary-light .hljs-quote{color:#6c6b5a;}.hljs-atelier-estuary-light .hljs-variable,.hljs-atelier-estuary-light .hljs-template-variable,.hljs-atelier-estuary-light .hljs-attribute,.hljs-atelier-estuary-light .hljs-tag,.hljs-atelier-estuary-light .hljs-name,.hljs-atelier-estuary-light .hljs-regexp,.hljs-atelier-estuary-light .hljs-link,.hljs-atelier-estuary-light .hljs-name,.hljs-atelier-estuary-light .hljs-selector-id,.hljs-atelier-estuary-light .hljs-selector-class{color:#ba6236;}.hljs-atelier-estuary-light .hljs-number,.hljs-atelier-estuary-light .hljs-meta,.hljs-atelier-estuary-light .hljs-built_in,.hljs-atelier-estuary-light .hljs-builtin-name,.hljs-atelier-estuary-light .hljs-literal,.hljs-atelier-estuary-light .hljs-type,.hljs-atelier-estuary-light .hljs-params{color:#ae7313;}.hljs-atelier-estuary-light .hljs-string,.hljs-atelier-estuary-light .hljs-symbol,.hljs-atelier-estuary-light .hljs-bullet{color:#7d9726;}.hljs-atelier-estuary-light .hljs-title,.hljs-atelier-estuary-light .hljs-section{color:#36a166;}.hljs-atelier-estuary-light .hljs-keyword,.hljs-atelier-estuary-light .hljs-selector-tag{color:#5f9182;}.hljs-atelier-estuary-light .hljs-deletion,.hljs-atelier-estuary-light .hljs-addition{color:#22221b;display:inline-block;width:100%;}.hljs-atelier-estuary-light .hljs-deletion{background-color:#ba6236;}.hljs-atelier-estuary-light .hljs-addition{background-color:#7d9726;}.hljs-atelier-estuary-light .hljs{display:block;overflow-x:auto;background:#f4f3ec;color:#5f5e4e;padding:0.5em;}.hljs-atelier-estuary-light .hljs-emphasis{font-style:italic;}.hljs-atelier-estuary-light .hljs-strong{font-weight:bold;}","atelier-forest-dark":".hljs-atelier-forest-dark{}.hljs-atelier-forest-dark .hljs-comment,.hljs-atelier-forest-dark .hljs-quote{color:#9c9491;}.hljs-atelier-forest-dark .hljs-variable,.hljs-atelier-forest-dark .hljs-template-variable,.hljs-atelier-forest-dark .hljs-attribute,.hljs-atelier-forest-dark .hljs-tag,.hljs-atelier-forest-dark .hljs-name,.hljs-atelier-forest-dark .hljs-regexp,.hljs-atelier-forest-dark .hljs-link,.hljs-atelier-forest-dark .hljs-name,.hljs-atelier-forest-dark .hljs-selector-id,.hljs-atelier-forest-dark .hljs-selector-class{color:#f22c40;}.hljs-atelier-forest-dark .hljs-number,.hljs-atelier-forest-dark .hljs-meta,.hljs-atelier-forest-dark .hljs-built_in,.hljs-atelier-forest-dark .hljs-builtin-name,.hljs-atelier-forest-dark .hljs-literal,.hljs-atelier-forest-dark .hljs-type,.hljs-atelier-forest-dark .hljs-params{color:#df5320;}.hljs-atelier-forest-dark .hljs-string,.hljs-atelier-forest-dark .hljs-symbol,.hljs-atelier-forest-dark .hljs-bullet{color:#7b9726;}.hljs-atelier-forest-dark .hljs-title,.hljs-atelier-forest-dark .hljs-section{color:#407ee7;}.hljs-atelier-forest-dark .hljs-keyword,.hljs-atelier-forest-dark .hljs-selector-tag{color:#6666ea;}.hljs-atelier-forest-dark .hljs{display:block;overflow-x:auto;background:#1b1918;color:#a8a19f;padding:0.5em;}.hljs-atelier-forest-dark .hljs-emphasis{font-style:italic;}.hljs-atelier-forest-dark .hljs-strong{font-weight:bold;}","atelier-forest-light":".hljs-atelier-forest-light{}.hljs-atelier-forest-light .hljs-comment,.hljs-atelier-forest-light .hljs-quote{color:#766e6b;}.hljs-atelier-forest-light .hljs-variable,.hljs-atelier-forest-light .hljs-template-variable,.hljs-atelier-forest-light .hljs-attribute,.hljs-atelier-forest-light .hljs-tag,.hljs-atelier-forest-light .hljs-name,.hljs-atelier-forest-light .hljs-regexp,.hljs-atelier-forest-light .hljs-link,.hljs-atelier-forest-light .hljs-name,.hljs-atelier-forest-light .hljs-selector-id,.hljs-atelier-forest-light .hljs-selector-class{color:#f22c40;}.hljs-atelier-forest-light .hljs-number,.hljs-atelier-forest-light .hljs-meta,.hljs-atelier-forest-light .hljs-built_in,.hljs-atelier-forest-light .hljs-builtin-name,.hljs-atelier-forest-light .hljs-literal,.hljs-atelier-forest-light .hljs-type,.hljs-atelier-forest-light .hljs-params{color:#df5320;}.hljs-atelier-forest-light .hljs-string,.hljs-atelier-forest-light .hljs-symbol,.hljs-atelier-forest-light .hljs-bullet{color:#7b9726;}.hljs-atelier-forest-light .hljs-title,.hljs-atelier-forest-light .hljs-section{color:#407ee7;}.hljs-atelier-forest-light .hljs-keyword,.hljs-atelier-forest-light .hljs-selector-tag{color:#6666ea;}.hljs-atelier-forest-light .hljs{display:block;overflow-x:auto;background:#f1efee;color:#68615e;padding:0.5em;}.hljs-atelier-forest-light .hljs-emphasis{font-style:italic;}.hljs-atelier-forest-light .hljs-strong{font-weight:bold;}","atelier-heath-dark":".hljs-atelier-heath-dark{}.hljs-atelier-heath-dark .hljs-comment,.hljs-atelier-heath-dark .hljs-quote{color:#9e8f9e;}.hljs-atelier-heath-dark .hljs-variable,.hljs-atelier-heath-dark .hljs-template-variable,.hljs-atelier-heath-dark .hljs-attribute,.hljs-atelier-heath-dark .hljs-tag,.hljs-atelier-heath-dark .hljs-name,.hljs-atelier-heath-dark .hljs-regexp,.hljs-atelier-heath-dark .hljs-link,.hljs-atelier-heath-dark .hljs-name,.hljs-atelier-heath-dark .hljs-selector-id,.hljs-atelier-heath-dark .hljs-selector-class{color:#ca402b;}.hljs-atelier-heath-dark .hljs-number,.hljs-atelier-heath-dark .hljs-meta,.hljs-atelier-heath-dark .hljs-built_in,.hljs-atelier-heath-dark .hljs-builtin-name,.hljs-atelier-heath-dark .hljs-literal,.hljs-atelier-heath-dark .hljs-type,.hljs-atelier-heath-dark .hljs-params{color:#a65926;}.hljs-atelier-heath-dark .hljs-string,.hljs-atelier-heath-dark .hljs-symbol,.hljs-atelier-heath-dark .hljs-bullet{color:#918b3b;}.hljs-atelier-heath-dark .hljs-title,.hljs-atelier-heath-dark .hljs-section{color:#516aec;}.hljs-atelier-heath-dark .hljs-keyword,.hljs-atelier-heath-dark .hljs-selector-tag{color:#7b59c0;}.hljs-atelier-heath-dark .hljs{display:block;overflow-x:auto;background:#1b181b;color:#ab9bab;padding:0.5em;}.hljs-atelier-heath-dark .hljs-emphasis{font-style:italic;}.hljs-atelier-heath-dark .hljs-strong{font-weight:bold;}","atelier-heath-light":".hljs-atelier-heath-light{}.hljs-atelier-heath-light .hljs-comment,.hljs-atelier-heath-light .hljs-quote{color:#776977;}.hljs-atelier-heath-light .hljs-variable,.hljs-atelier-heath-light .hljs-template-variable,.hljs-atelier-heath-light .hljs-attribute,.hljs-atelier-heath-light .hljs-tag,.hljs-atelier-heath-light .hljs-name,.hljs-atelier-heath-light .hljs-regexp,.hljs-atelier-heath-light .hljs-link,.hljs-atelier-heath-light .hljs-name,.hljs-atelier-heath-light .hljs-selector-id,.hljs-atelier-heath-light .hljs-selector-class{color:#ca402b;}.hljs-atelier-heath-light .hljs-number,.hljs-atelier-heath-light .hljs-meta,.hljs-atelier-heath-light .hljs-built_in,.hljs-atelier-heath-light .hljs-builtin-name,.hljs-atelier-heath-light .hljs-literal,.hljs-atelier-heath-light .hljs-type,.hljs-atelier-heath-light .hljs-params{color:#a65926;}.hljs-atelier-heath-light .hljs-string,.hljs-atelier-heath-light .hljs-symbol,.hljs-atelier-heath-light .hljs-bullet{color:#918b3b;}.hljs-atelier-heath-light .hljs-title,.hljs-atelier-heath-light .hljs-section{color:#516aec;}.hljs-atelier-heath-light .hljs-keyword,.hljs-atelier-heath-light .hljs-selector-tag{color:#7b59c0;}.hljs-atelier-heath-light .hljs{display:block;overflow-x:auto;background:#f7f3f7;color:#695d69;padding:0.5em;}.hljs-atelier-heath-light .hljs-emphasis{font-style:italic;}.hljs-atelier-heath-light .hljs-strong{font-weight:bold;}","atelier-lakeside-dark":".hljs-atelier-lakeside-dark{}.hljs-atelier-lakeside-dark .hljs-comment,.hljs-atelier-lakeside-dark .hljs-quote{color:#7195a8;}.hljs-atelier-lakeside-dark .hljs-variable,.hljs-atelier-lakeside-dark .hljs-template-variable,.hljs-atelier-lakeside-dark .hljs-attribute,.hljs-atelier-lakeside-dark .hljs-tag,.hljs-atelier-lakeside-dark .hljs-name,.hljs-atelier-lakeside-dark .hljs-regexp,.hljs-atelier-lakeside-dark .hljs-link,.hljs-atelier-lakeside-dark .hljs-name,.hljs-atelier-lakeside-dark .hljs-selector-id,.hljs-atelier-lakeside-dark .hljs-selector-class{color:#d22d72;}.hljs-atelier-lakeside-dark .hljs-number,.hljs-atelier-lakeside-dark .hljs-meta,.hljs-atelier-lakeside-dark .hljs-built_in,.hljs-atelier-lakeside-dark .hljs-builtin-name,.hljs-atelier-lakeside-dark .hljs-literal,.hljs-atelier-lakeside-dark .hljs-type,.hljs-atelier-lakeside-dark .hljs-params{color:#935c25;}.hljs-atelier-lakeside-dark .hljs-string,.hljs-atelier-lakeside-dark .hljs-symbol,.hljs-atelier-lakeside-dark .hljs-bullet{color:#568c3b;}.hljs-atelier-lakeside-dark .hljs-title,.hljs-atelier-lakeside-dark .hljs-section{color:#257fad;}.hljs-atelier-lakeside-dark .hljs-keyword,.hljs-atelier-lakeside-dark .hljs-selector-tag{color:#6b6bb8;}.hljs-atelier-lakeside-dark .hljs{display:block;overflow-x:auto;background:#161b1d;color:#7ea2b4;padding:0.5em;}.hljs-atelier-lakeside-dark .hljs-emphasis{font-style:italic;}.hljs-atelier-lakeside-dark .hljs-strong{font-weight:bold;}","atelier-lakeside-light":".hljs-atelier-lakeside-light{}.hljs-atelier-lakeside-light .hljs-comment,.hljs-atelier-lakeside-light .hljs-quote{color:#5a7b8c;}.hljs-atelier-lakeside-light .hljs-variable,.hljs-atelier-lakeside-light .hljs-template-variable,.hljs-atelier-lakeside-light .hljs-attribute,.hljs-atelier-lakeside-light .hljs-tag,.hljs-atelier-lakeside-light .hljs-name,.hljs-atelier-lakeside-light .hljs-regexp,.hljs-atelier-lakeside-light .hljs-link,.hljs-atelier-lakeside-light .hljs-name,.hljs-atelier-lakeside-light .hljs-selector-id,.hljs-atelier-lakeside-light .hljs-selector-class{color:#d22d72;}.hljs-atelier-lakeside-light .hljs-number,.hljs-atelier-lakeside-light .hljs-meta,.hljs-atelier-lakeside-light .hljs-built_in,.hljs-atelier-lakeside-light .hljs-builtin-name,.hljs-atelier-lakeside-light .hljs-literal,.hljs-atelier-lakeside-light .hljs-type,.hljs-atelier-lakeside-light .hljs-params{color:#935c25;}.hljs-atelier-lakeside-light .hljs-string,.hljs-atelier-lakeside-light .hljs-symbol,.hljs-atelier-lakeside-light .hljs-bullet{color:#568c3b;}.hljs-atelier-lakeside-light .hljs-title,.hljs-atelier-lakeside-light .hljs-section{color:#257fad;}.hljs-atelier-lakeside-light .hljs-keyword,.hljs-atelier-lakeside-light .hljs-selector-tag{color:#6b6bb8;}.hljs-atelier-lakeside-light .hljs{display:block;overflow-x:auto;background:#ebf8ff;color:#516d7b;padding:0.5em;}.hljs-atelier-lakeside-light .hljs-emphasis{font-style:italic;}.hljs-atelier-lakeside-light .hljs-strong{font-weight:bold;}","atelier-plateau-dark":".hljs-atelier-plateau-dark{}.hljs-atelier-plateau-dark .hljs-comment,.hljs-atelier-plateau-dark .hljs-quote{color:#7e7777;}.hljs-atelier-plateau-dark .hljs-variable,.hljs-atelier-plateau-dark .hljs-template-variable,.hljs-atelier-plateau-dark .hljs-attribute,.hljs-atelier-plateau-dark .hljs-tag,.hljs-atelier-plateau-dark .hljs-name,.hljs-atelier-plateau-dark .hljs-regexp,.hljs-atelier-plateau-dark .hljs-link,.hljs-atelier-plateau-dark .hljs-name,.hljs-atelier-plateau-dark .hljs-selector-id,.hljs-atelier-plateau-dark .hljs-selector-class{color:#ca4949;}.hljs-atelier-plateau-dark .hljs-number,.hljs-atelier-plateau-dark .hljs-meta,.hljs-atelier-plateau-dark .hljs-built_in,.hljs-atelier-plateau-dark .hljs-builtin-name,.hljs-atelier-plateau-dark .hljs-literal,.hljs-atelier-plateau-dark .hljs-type,.hljs-atelier-plateau-dark .hljs-params{color:#b45a3c;}.hljs-atelier-plateau-dark .hljs-string,.hljs-atelier-plateau-dark .hljs-symbol,.hljs-atelier-plateau-dark .hljs-bullet{color:#4b8b8b;}.hljs-atelier-plateau-dark .hljs-title,.hljs-atelier-plateau-dark .hljs-section{color:#7272ca;}.hljs-atelier-plateau-dark .hljs-keyword,.hljs-atelier-plateau-dark .hljs-selector-tag{color:#8464c4;}.hljs-atelier-plateau-dark .hljs-deletion,.hljs-atelier-plateau-dark .hljs-addition{color:#1b1818;display:inline-block;width:100%;}.hljs-atelier-plateau-dark .hljs-deletion{background-color:#ca4949;}.hljs-atelier-plateau-dark .hljs-addition{background-color:#4b8b8b;}.hljs-atelier-plateau-dark .hljs{display:block;overflow-x:auto;background:#1b1818;color:#8a8585;padding:0.5em;}.hljs-atelier-plateau-dark .hljs-emphasis{font-style:italic;}.hljs-atelier-plateau-dark .hljs-strong{font-weight:bold;}","atelier-plateau-light":".hljs-atelier-plateau-light{}.hljs-atelier-plateau-light .hljs-comment,.hljs-atelier-plateau-light .hljs-quote{color:#655d5d;}.hljs-atelier-plateau-light .hljs-variable,.hljs-atelier-plateau-light .hljs-template-variable,.hljs-atelier-plateau-light .hljs-attribute,.hljs-atelier-plateau-light .hljs-tag,.hljs-atelier-plateau-light .hljs-name,.hljs-atelier-plateau-light .hljs-regexp,.hljs-atelier-plateau-light .hljs-link,.hljs-atelier-plateau-light .hljs-name,.hljs-atelier-plateau-light .hljs-selector-id,.hljs-atelier-plateau-light .hljs-selector-class{color:#ca4949;}.hljs-atelier-plateau-light .hljs-number,.hljs-atelier-plateau-light .hljs-meta,.hljs-atelier-plateau-light .hljs-built_in,.hljs-atelier-plateau-light .hljs-builtin-name,.hljs-atelier-plateau-light .hljs-literal,.hljs-atelier-plateau-light .hljs-type,.hljs-atelier-plateau-light .hljs-params{color:#b45a3c;}.hljs-atelier-plateau-light .hljs-string,.hljs-atelier-plateau-light .hljs-symbol,.hljs-atelier-plateau-light .hljs-bullet{color:#4b8b8b;}.hljs-atelier-plateau-light .hljs-title,.hljs-atelier-plateau-light .hljs-section{color:#7272ca;}.hljs-atelier-plateau-light .hljs-keyword,.hljs-atelier-plateau-light .hljs-selector-tag{color:#8464c4;}.hljs-atelier-plateau-light .hljs-deletion,.hljs-atelier-plateau-light .hljs-addition{color:#1b1818;display:inline-block;width:100%;}.hljs-atelier-plateau-light .hljs-deletion{background-color:#ca4949;}.hljs-atelier-plateau-light .hljs-addition{background-color:#4b8b8b;}.hljs-atelier-plateau-light .hljs{display:block;overflow-x:auto;background:#f4ecec;color:#585050;padding:0.5em;}.hljs-atelier-plateau-light .hljs-emphasis{font-style:italic;}.hljs-atelier-plateau-light .hljs-strong{font-weight:bold;}","atelier-savanna-dark":".hljs-atelier-savanna-dark{}.hljs-atelier-savanna-dark .hljs-comment,.hljs-atelier-savanna-dark .hljs-quote{color:#78877d;}.hljs-atelier-savanna-dark .hljs-variable,.hljs-atelier-savanna-dark .hljs-template-variable,.hljs-atelier-savanna-dark .hljs-attribute,.hljs-atelier-savanna-dark .hljs-tag,.hljs-atelier-savanna-dark .hljs-name,.hljs-atelier-savanna-dark .hljs-regexp,.hljs-atelier-savanna-dark .hljs-link,.hljs-atelier-savanna-dark .hljs-name,.hljs-atelier-savanna-dark .hljs-selector-id,.hljs-atelier-savanna-dark .hljs-selector-class{color:#b16139;}.hljs-atelier-savanna-dark .hljs-number,.hljs-atelier-savanna-dark .hljs-meta,.hljs-atelier-savanna-dark .hljs-built_in,.hljs-atelier-savanna-dark .hljs-builtin-name,.hljs-atelier-savanna-dark .hljs-literal,.hljs-atelier-savanna-dark .hljs-type,.hljs-atelier-savanna-dark .hljs-params{color:#9f713c;}.hljs-atelier-savanna-dark .hljs-string,.hljs-atelier-savanna-dark .hljs-symbol,.hljs-atelier-savanna-dark .hljs-bullet{color:#489963;}.hljs-atelier-savanna-dark .hljs-title,.hljs-atelier-savanna-dark .hljs-section{color:#478c90;}.hljs-atelier-savanna-dark .hljs-keyword,.hljs-atelier-savanna-dark .hljs-selector-tag{color:#55859b;}.hljs-atelier-savanna-dark .hljs-deletion,.hljs-atelier-savanna-dark .hljs-addition{color:#171c19;display:inline-block;width:100%;}.hljs-atelier-savanna-dark .hljs-deletion{background-color:#b16139;}.hljs-atelier-savanna-dark .hljs-addition{background-color:#489963;}.hljs-atelier-savanna-dark .hljs{display:block;overflow-x:auto;background:#171c19;color:#87928a;padding:0.5em;}.hljs-atelier-savanna-dark .hljs-emphasis{font-style:italic;}.hljs-atelier-savanna-dark .hljs-strong{font-weight:bold;}","atelier-savanna-light":".hljs-atelier-savanna-light{}.hljs-atelier-savanna-light .hljs-comment,.hljs-atelier-savanna-light .hljs-quote{color:#5f6d64;}.hljs-atelier-savanna-light .hljs-variable,.hljs-atelier-savanna-light .hljs-template-variable,.hljs-atelier-savanna-light .hljs-attribute,.hljs-atelier-savanna-light .hljs-tag,.hljs-atelier-savanna-light .hljs-name,.hljs-atelier-savanna-light .hljs-regexp,.hljs-atelier-savanna-light .hljs-link,.hljs-atelier-savanna-light .hljs-name,.hljs-atelier-savanna-light .hljs-selector-id,.hljs-atelier-savanna-light .hljs-selector-class{color:#b16139;}.hljs-atelier-savanna-light .hljs-number,.hljs-atelier-savanna-light .hljs-meta,.hljs-atelier-savanna-light .hljs-built_in,.hljs-atelier-savanna-light .hljs-builtin-name,.hljs-atelier-savanna-light .hljs-literal,.hljs-atelier-savanna-light .hljs-type,.hljs-atelier-savanna-light .hljs-params{color:#9f713c;}.hljs-atelier-savanna-light .hljs-string,.hljs-atelier-savanna-light .hljs-symbol,.hljs-atelier-savanna-light .hljs-bullet{color:#489963;}.hljs-atelier-savanna-light .hljs-title,.hljs-atelier-savanna-light .hljs-section{color:#478c90;}.hljs-atelier-savanna-light .hljs-keyword,.hljs-atelier-savanna-light .hljs-selector-tag{color:#55859b;}.hljs-atelier-savanna-light .hljs-deletion,.hljs-atelier-savanna-light .hljs-addition{color:#171c19;display:inline-block;width:100%;}.hljs-atelier-savanna-light .hljs-deletion{background-color:#b16139;}.hljs-atelier-savanna-light .hljs-addition{background-color:#489963;}.hljs-atelier-savanna-light .hljs{display:block;overflow-x:auto;background:#ecf4ee;color:#526057;padding:0.5em;}.hljs-atelier-savanna-light .hljs-emphasis{font-style:italic;}.hljs-atelier-savanna-light .hljs-strong{font-weight:bold;}","atelier-seaside-dark":".hljs-atelier-seaside-dark{}.hljs-atelier-seaside-dark .hljs-comment,.hljs-atelier-seaside-dark .hljs-quote{color:#809980;}.hljs-atelier-seaside-dark .hljs-variable,.hljs-atelier-seaside-dark .hljs-template-variable,.hljs-atelier-seaside-dark .hljs-attribute,.hljs-atelier-seaside-dark .hljs-tag,.hljs-atelier-seaside-dark .hljs-name,.hljs-atelier-seaside-dark .hljs-regexp,.hljs-atelier-seaside-dark .hljs-link,.hljs-atelier-seaside-dark .hljs-name,.hljs-atelier-seaside-dark .hljs-selector-id,.hljs-atelier-seaside-dark .hljs-selector-class{color:#e6193c;}.hljs-atelier-seaside-dark .hljs-number,.hljs-atelier-seaside-dark .hljs-meta,.hljs-atelier-seaside-dark .hljs-built_in,.hljs-atelier-seaside-dark .hljs-builtin-name,.hljs-atelier-seaside-dark .hljs-literal,.hljs-atelier-seaside-dark .hljs-type,.hljs-atelier-seaside-dark .hljs-params{color:#87711d;}.hljs-atelier-seaside-dark .hljs-string,.hljs-atelier-seaside-dark .hljs-symbol,.hljs-atelier-seaside-dark .hljs-bullet{color:#29a329;}.hljs-atelier-seaside-dark .hljs-title,.hljs-atelier-seaside-dark .hljs-section{color:#3d62f5;}.hljs-atelier-seaside-dark .hljs-keyword,.hljs-atelier-seaside-dark .hljs-selector-tag{color:#ad2bee;}.hljs-atelier-seaside-dark .hljs{display:block;overflow-x:auto;background:#131513;color:#8ca68c;padding:0.5em;}.hljs-atelier-seaside-dark .hljs-emphasis{font-style:italic;}.hljs-atelier-seaside-dark .hljs-strong{font-weight:bold;}","atelier-seaside-light":".hljs-atelier-seaside-light{}.hljs-atelier-seaside-light .hljs-comment,.hljs-atelier-seaside-light .hljs-quote{color:#687d68;}.hljs-atelier-seaside-light .hljs-variable,.hljs-atelier-seaside-light .hljs-template-variable,.hljs-atelier-seaside-light .hljs-attribute,.hljs-atelier-seaside-light .hljs-tag,.hljs-atelier-seaside-light .hljs-name,.hljs-atelier-seaside-light .hljs-regexp,.hljs-atelier-seaside-light .hljs-link,.hljs-atelier-seaside-light .hljs-name,.hljs-atelier-seaside-light .hljs-selector-id,.hljs-atelier-seaside-light .hljs-selector-class{color:#e6193c;}.hljs-atelier-seaside-light .hljs-number,.hljs-atelier-seaside-light .hljs-meta,.hljs-atelier-seaside-light .hljs-built_in,.hljs-atelier-seaside-light .hljs-builtin-name,.hljs-atelier-seaside-light .hljs-literal,.hljs-atelier-seaside-light .hljs-type,.hljs-atelier-seaside-light .hljs-params{color:#87711d;}.hljs-atelier-seaside-light .hljs-string,.hljs-atelier-seaside-light .hljs-symbol,.hljs-atelier-seaside-light .hljs-bullet{color:#29a329;}.hljs-atelier-seaside-light .hljs-title,.hljs-atelier-seaside-light .hljs-section{color:#3d62f5;}.hljs-atelier-seaside-light .hljs-keyword,.hljs-atelier-seaside-light .hljs-selector-tag{color:#ad2bee;}.hljs-atelier-seaside-light .hljs{display:block;overflow-x:auto;background:#f4fbf4;color:#5e6e5e;padding:0.5em;}.hljs-atelier-seaside-light .hljs-emphasis{font-style:italic;}.hljs-atelier-seaside-light .hljs-strong{font-weight:bold;}","atelier-sulphurpool-dark":".hljs-atelier-sulphurpool-dark{}.hljs-atelier-sulphurpool-dark .hljs-comment,.hljs-atelier-sulphurpool-dark .hljs-quote{color:#898ea4;}.hljs-atelier-sulphurpool-dark .hljs-variable,.hljs-atelier-sulphurpool-dark .hljs-template-variable,.hljs-atelier-sulphurpool-dark .hljs-attribute,.hljs-atelier-sulphurpool-dark .hljs-tag,.hljs-atelier-sulphurpool-dark .hljs-name,.hljs-atelier-sulphurpool-dark .hljs-regexp,.hljs-atelier-sulphurpool-dark .hljs-link,.hljs-atelier-sulphurpool-dark .hljs-name,.hljs-atelier-sulphurpool-dark .hljs-selector-id,.hljs-atelier-sulphurpool-dark .hljs-selector-class{color:#c94922;}.hljs-atelier-sulphurpool-dark .hljs-number,.hljs-atelier-sulphurpool-dark .hljs-meta,.hljs-atelier-sulphurpool-dark .hljs-built_in,.hljs-atelier-sulphurpool-dark .hljs-builtin-name,.hljs-atelier-sulphurpool-dark .hljs-literal,.hljs-atelier-sulphurpool-dark .hljs-type,.hljs-atelier-sulphurpool-dark .hljs-params{color:#c76b29;}.hljs-atelier-sulphurpool-dark .hljs-string,.hljs-atelier-sulphurpool-dark .hljs-symbol,.hljs-atelier-sulphurpool-dark .hljs-bullet{color:#ac9739;}.hljs-atelier-sulphurpool-dark .hljs-title,.hljs-atelier-sulphurpool-dark .hljs-section{color:#3d8fd1;}.hljs-atelier-sulphurpool-dark .hljs-keyword,.hljs-atelier-sulphurpool-dark .hljs-selector-tag{color:#6679cc;}.hljs-atelier-sulphurpool-dark .hljs{display:block;overflow-x:auto;background:#202746;color:#979db4;padding:0.5em;}.hljs-atelier-sulphurpool-dark .hljs-emphasis{font-style:italic;}.hljs-atelier-sulphurpool-dark .hljs-strong{font-weight:bold;}","atelier-sulphurpool-light":".hljs-atelier-sulphurpool-light{}.hljs-atelier-sulphurpool-light .hljs-comment,.hljs-atelier-sulphurpool-light .hljs-quote{color:#6b7394;}.hljs-atelier-sulphurpool-light .hljs-variable,.hljs-atelier-sulphurpool-light .hljs-template-variable,.hljs-atelier-sulphurpool-light .hljs-attribute,.hljs-atelier-sulphurpool-light .hljs-tag,.hljs-atelier-sulphurpool-light .hljs-name,.hljs-atelier-sulphurpool-light .hljs-regexp,.hljs-atelier-sulphurpool-light .hljs-link,.hljs-atelier-sulphurpool-light .hljs-name,.hljs-atelier-sulphurpool-light .hljs-selector-id,.hljs-atelier-sulphurpool-light .hljs-selector-class{color:#c94922;}.hljs-atelier-sulphurpool-light .hljs-number,.hljs-atelier-sulphurpool-light .hljs-meta,.hljs-atelier-sulphurpool-light .hljs-built_in,.hljs-atelier-sulphurpool-light .hljs-builtin-name,.hljs-atelier-sulphurpool-light .hljs-literal,.hljs-atelier-sulphurpool-light .hljs-type,.hljs-atelier-sulphurpool-light .hljs-params{color:#c76b29;}.hljs-atelier-sulphurpool-light .hljs-string,.hljs-atelier-sulphurpool-light .hljs-symbol,.hljs-atelier-sulphurpool-light .hljs-bullet{color:#ac9739;}.hljs-atelier-sulphurpool-light .hljs-title,.hljs-atelier-sulphurpool-light .hljs-section{color:#3d8fd1;}.hljs-atelier-sulphurpool-light .hljs-keyword,.hljs-atelier-sulphurpool-light .hljs-selector-tag{color:#6679cc;}.hljs-atelier-sulphurpool-light .hljs{display:block;overflow-x:auto;background:#f5f7ff;color:#5e6687;padding:0.5em;}.hljs-atelier-sulphurpool-light .hljs-emphasis{font-style:italic;}.hljs-atelier-sulphurpool-light .hljs-strong{font-weight:bold;}","brown-paper":".hljs-brown-paper{}.hljs-brown-paper .hljs{display:block;overflow-x:auto;padding:0.5em;background:#b7a68e url(./brown-papersq.png);}.hljs-brown-paper .hljs-keyword,.hljs-brown-paper .hljs-selector-tag,.hljs-brown-paper .hljs-literal{color:#005599;font-weight:bold;}.hljs-brown-paper .hljs,.hljs-brown-paper .hljs-subst{color:#363c69;}.hljs-brown-paper .hljs-string,.hljs-brown-paper .hljs-title,.hljs-brown-paper .hljs-section,.hljs-brown-paper .hljs-type,.hljs-brown-paper .hljs-attribute,.hljs-brown-paper .hljs-symbol,.hljs-brown-paper .hljs-bullet,.hljs-brown-paper .hljs-built_in,.hljs-brown-paper .hljs-addition,.hljs-brown-paper .hljs-variable,.hljs-brown-paper .hljs-template-tag,.hljs-brown-paper .hljs-template-variable,.hljs-brown-paper .hljs-link,.hljs-brown-paper .hljs-name{color:#2c009f;}.hljs-brown-paper .hljs-comment,.hljs-brown-paper .hljs-quote,.hljs-brown-paper .hljs-meta,.hljs-brown-paper .hljs-deletion{color:#802022;}.hljs-brown-paper .hljs-keyword,.hljs-brown-paper .hljs-selector-tag,.hljs-brown-paper .hljs-literal,.hljs-brown-paper .hljs-doctag,.hljs-brown-paper .hljs-title,.hljs-brown-paper .hljs-section,.hljs-brown-paper .hljs-type,.hljs-brown-paper .hljs-name,.hljs-brown-paper .hljs-strong{font-weight:bold;}.hljs-brown-paper .hljs-emphasis{font-style:italic;}","codepen-embed":".hljs-codepen-embed{}.hljs-codepen-embed .hljs{display:block;overflow-x:auto;padding:0.5em;background:#222;color:#fff;}.hljs-codepen-embed .hljs-comment,.hljs-codepen-embed .hljs-quote{color:#777;}.hljs-codepen-embed .hljs-variable,.hljs-codepen-embed .hljs-template-variable,.hljs-codepen-embed .hljs-tag,.hljs-codepen-embed .hljs-regexp,.hljs-codepen-embed .hljs-meta,.hljs-codepen-embed .hljs-number,.hljs-codepen-embed .hljs-built_in,.hljs-codepen-embed .hljs-builtin-name,.hljs-codepen-embed .hljs-literal,.hljs-codepen-embed .hljs-params,.hljs-codepen-embed .hljs-symbol,.hljs-codepen-embed .hljs-bullet,.hljs-codepen-embed .hljs-link,.hljs-codepen-embed .hljs-deletion{color:#ab875d;}.hljs-codepen-embed .hljs-section,.hljs-codepen-embed .hljs-title,.hljs-codepen-embed .hljs-name,.hljs-codepen-embed .hljs-selector-id,.hljs-codepen-embed .hljs-selector-class,.hljs-codepen-embed .hljs-type,.hljs-codepen-embed .hljs-attribute{color:#9b869b;}.hljs-codepen-embed .hljs-string,.hljs-codepen-embed .hljs-keyword,.hljs-codepen-embed .hljs-selector-tag,.hljs-codepen-embed .hljs-addition{color:#8f9c6c;}.hljs-codepen-embed .hljs-emphasis{font-style:italic;}.hljs-codepen-embed .hljs-strong{font-weight:bold;}","color-brewer":".hljs-color-brewer{}.hljs-color-brewer .hljs{display:block;overflow-x:auto;padding:0.5em;background:#fff;}.hljs-color-brewer .hljs,.hljs-color-brewer .hljs-subst{color:#000;}.hljs-color-brewer .hljs-string,.hljs-color-brewer .hljs-meta,.hljs-color-brewer .hljs-symbol,.hljs-color-brewer .hljs-template-tag,.hljs-color-brewer .hljs-template-variable,.hljs-color-brewer .hljs-addition{color:#756bb1;}.hljs-color-brewer .hljs-comment,.hljs-color-brewer .hljs-quote{color:#636363;}.hljs-color-brewer .hljs-number,.hljs-color-brewer .hljs-regexp,.hljs-color-brewer .hljs-literal,.hljs-color-brewer .hljs-bullet,.hljs-color-brewer .hljs-link{color:#31a354;}.hljs-color-brewer .hljs-deletion,.hljs-color-brewer .hljs-variable{color:#88f;}.hljs-color-brewer .hljs-keyword,.hljs-color-brewer .hljs-selector-tag,.hljs-color-brewer .hljs-title,.hljs-color-brewer .hljs-section,.hljs-color-brewer .hljs-built_in,.hljs-color-brewer .hljs-doctag,.hljs-color-brewer .hljs-type,.hljs-color-brewer .hljs-tag,.hljs-color-brewer .hljs-name,.hljs-color-brewer .hljs-selector-id,.hljs-color-brewer .hljs-selector-class,.hljs-color-brewer .hljs-strong{color:#3182bd;}.hljs-color-brewer .hljs-emphasis{font-style:italic;}.hljs-color-brewer .hljs-attribute{color:#e6550d;}","dark":".hljs-dark{}.hljs-dark .hljs{display:block;overflow-x:auto;padding:0.5em;background:#444;}.hljs-dark .hljs-keyword,.hljs-dark .hljs-selector-tag,.hljs-dark .hljs-literal,.hljs-dark .hljs-section,.hljs-dark .hljs-link{color:white;}.hljs-dark .hljs,.hljs-dark .hljs-subst{color:#ddd;}.hljs-dark .hljs-string,.hljs-dark .hljs-title,.hljs-dark .hljs-name,.hljs-dark .hljs-type,.hljs-dark .hljs-attribute,.hljs-dark .hljs-symbol,.hljs-dark .hljs-bullet,.hljs-dark .hljs-built_in,.hljs-dark .hljs-addition,.hljs-dark .hljs-variable,.hljs-dark .hljs-template-tag,.hljs-dark .hljs-template-variable{color:#d88;}.hljs-dark .hljs-comment,.hljs-dark .hljs-quote,.hljs-dark .hljs-deletion,.hljs-dark .hljs-meta{color:#777;}.hljs-dark .hljs-keyword,.hljs-dark .hljs-selector-tag,.hljs-dark .hljs-literal,.hljs-dark .hljs-title,.hljs-dark .hljs-section,.hljs-dark .hljs-doctag,.hljs-dark .hljs-type,.hljs-dark .hljs-name,.hljs-dark .hljs-strong{font-weight:bold;}.hljs-dark .hljs-emphasis{font-style:italic;}","darkula":".hljs-darkula{}.hljs-darkula .hljs{display:block;overflow-x:auto;padding:0.5em;background:#2b2b2b;}.hljs-darkula .hljs{color:#bababa;}.hljs-darkula .hljs-strong,.hljs-darkula .hljs-emphasis{color:#a8a8a2;}.hljs-darkula .hljs-bullet,.hljs-darkula .hljs-quote,.hljs-darkula .hljs-link,.hljs-darkula .hljs-number,.hljs-darkula .hljs-regexp,.hljs-darkula .hljs-literal{color:#6896ba;}.hljs-darkula .hljs-code,.hljs-darkula .hljs-selector-class{color:#a6e22e;}.hljs-darkula .hljs-emphasis{font-style:italic;}.hljs-darkula .hljs-keyword,.hljs-darkula .hljs-selector-tag,.hljs-darkula .hljs-section,.hljs-darkula .hljs-attribute,.hljs-darkula .hljs-name,.hljs-darkula .hljs-variable{color:#cb7832;}.hljs-darkula .hljs-params{color:#b9b9b9;}.hljs-darkula .hljs-string,.hljs-darkula .hljs-subst,.hljs-darkula .hljs-type,.hljs-darkula .hljs-built_in,.hljs-darkula .hljs-builtin-name,.hljs-darkula .hljs-symbol,.hljs-darkula .hljs-selector-id,.hljs-darkula .hljs-selector-attr,.hljs-darkula .hljs-selector-pseudo,.hljs-darkula .hljs-template-tag,.hljs-darkula .hljs-template-variable,.hljs-darkula .hljs-addition{color:#e0c46c;}.hljs-darkula .hljs-comment,.hljs-darkula .hljs-deletion,.hljs-darkula .hljs-meta{color:#7f7f7f;}","default":".hljs-default{}.hljs-default .hljs{display:block;overflow-x:auto;padding:0.5em;background:#F0F0F0;}.hljs-default .hljs,.hljs-default .hljs-subst{color:#444;}.hljs-default .hljs-keyword,.hljs-default .hljs-attribute,.hljs-default .hljs-selector-tag,.hljs-default .hljs-meta-keyword,.hljs-default .hljs-doctag,.hljs-default .hljs-name{font-weight:bold;}.hljs-default .hljs-built_in,.hljs-default .hljs-literal,.hljs-default .hljs-bullet,.hljs-default .hljs-code,.hljs-default .hljs-addition{color:#1F811F;}.hljs-default .hljs-regexp,.hljs-default .hljs-symbol,.hljs-default .hljs-variable,.hljs-default .hljs-template-variable,.hljs-default .hljs-link,.hljs-default .hljs-selector-attr,.hljs-default .hljs-selector-pseudo{color:#BC6060;}.hljs-default .hljs-type,.hljs-default .hljs-string,.hljs-default .hljs-number,.hljs-default .hljs-selector-id,.hljs-default .hljs-selector-class,.hljs-default .hljs-quote,.hljs-default .hljs-template-tag,.hljs-default .hljs-deletion{color:#880000;}.hljs-default .hljs-title,.hljs-default .hljs-section{color:#880000;font-weight:bold;}.hljs-default .hljs-comment{color:#888888;}.hljs-default .hljs-meta{color:#2B6EA1;}.hljs-default .hljs-emphasis{font-style:italic;}.hljs-default .hljs-strong{font-weight:bold;}","docco":".hljs-docco{}.hljs-docco .hljs{display:block;overflow-x:auto;padding:0.5em;color:#000;background:#f8f8ff;}.hljs-docco .hljs-comment,.hljs-docco .hljs-quote{color:#408080;font-style:italic;}.hljs-docco .hljs-keyword,.hljs-docco .hljs-selector-tag,.hljs-docco .hljs-literal,.hljs-docco .hljs-subst{color:#954121;}.hljs-docco .hljs-number{color:#40a070;}.hljs-docco .hljs-string,.hljs-docco .hljs-doctag{color:#219161;}.hljs-docco .hljs-selector-id,.hljs-docco .hljs-selector-class,.hljs-docco .hljs-section,.hljs-docco .hljs-type{color:#19469d;}.hljs-docco .hljs-params{color:#00f;}.hljs-docco .hljs-title{color:#458;font-weight:bold;}.hljs-docco .hljs-tag,.hljs-docco .hljs-name,.hljs-docco .hljs-attribute{color:#000080;font-weight:normal;}.hljs-docco .hljs-variable,.hljs-docco .hljs-template-variable{color:#008080;}.hljs-docco .hljs-regexp,.hljs-docco .hljs-link{color:#b68;}.hljs-docco .hljs-symbol,.hljs-docco .hljs-bullet{color:#990073;}.hljs-docco .hljs-built_in,.hljs-docco .hljs-builtin-name{color:#0086b3;}.hljs-docco .hljs-meta{color:#999;font-weight:bold;}.hljs-docco .hljs-deletion{background:#fdd;}.hljs-docco .hljs-addition{background:#dfd;}.hljs-docco .hljs-emphasis{font-style:italic;}.hljs-docco .hljs-strong{font-weight:bold;}","far":".hljs-far{}.hljs-far .hljs{display:block;overflow-x:auto;padding:0.5em;background:#000080;}.hljs-far .hljs,.hljs-far .hljs-subst{color:#0ff;}.hljs-far .hljs-string,.hljs-far .hljs-attribute,.hljs-far .hljs-symbol,.hljs-far .hljs-bullet,.hljs-far .hljs-built_in,.hljs-far .hljs-builtin-name,.hljs-far .hljs-template-tag,.hljs-far .hljs-template-variable,.hljs-far .hljs-addition{color:#ff0;}.hljs-far .hljs-keyword,.hljs-far .hljs-selector-tag,.hljs-far .hljs-section,.hljs-far .hljs-type,.hljs-far .hljs-name,.hljs-far .hljs-selector-id,.hljs-far .hljs-selector-class,.hljs-far .hljs-variable{color:#fff;}.hljs-far .hljs-comment,.hljs-far .hljs-quote,.hljs-far .hljs-doctag,.hljs-far .hljs-deletion{color:#888;}.hljs-far .hljs-number,.hljs-far .hljs-regexp,.hljs-far .hljs-literal,.hljs-far .hljs-link{color:#0f0;}.hljs-far .hljs-meta{color:#008080;}.hljs-far .hljs-keyword,.hljs-far .hljs-selector-tag,.hljs-far .hljs-title,.hljs-far .hljs-section,.hljs-far .hljs-name,.hljs-far .hljs-strong{font-weight:bold;}.hljs-far .hljs-emphasis{font-style:italic;}","foundation":".hljs-foundation{}.hljs-foundation .hljs{display:block;overflow-x:auto;padding:0.5em;background:#eee;color:black;}.hljs-foundation .hljs-link,.hljs-foundation .hljs-emphasis,.hljs-foundation .hljs-attribute,.hljs-foundation .hljs-addition{color:#070;}.hljs-foundation .hljs-emphasis{font-style:italic;}.hljs-foundation .hljs-strong,.hljs-foundation .hljs-string,.hljs-foundation .hljs-deletion{color:#d14;}.hljs-foundation .hljs-strong{font-weight:bold;}.hljs-foundation .hljs-quote,.hljs-foundation .hljs-comment{color:#998;font-style:italic;}.hljs-foundation .hljs-section,.hljs-foundation .hljs-title{color:#900;}.hljs-foundation .hljs-class .hljs-title,.hljs-foundation .hljs-type{color:#458;}.hljs-foundation .hljs-variable,.hljs-foundation .hljs-template-variable{color:#336699;}.hljs-foundation .hljs-bullet{color:#997700;}.hljs-foundation .hljs-meta{color:#3344bb;}.hljs-foundation .hljs-code,.hljs-foundation .hljs-number,.hljs-foundation .hljs-literal,.hljs-foundation .hljs-keyword,.hljs-foundation .hljs-selector-tag{color:#099;}.hljs-foundation .hljs-regexp{background-color:#fff0ff;color:#880088;}.hljs-foundation .hljs-symbol{color:#990073;}.hljs-foundation .hljs-tag,.hljs-foundation .hljs-name,.hljs-foundation .hljs-selector-id,.hljs-foundation .hljs-selector-class{color:#007700;}","github-gist":".hljs-github-gist{}.hljs-github-gist .hljs{display:block;background:white;padding:0.5em;color:#333333;overflow-x:auto;}.hljs-github-gist .hljs-comment,.hljs-github-gist .hljs-meta{color:#969896;}.hljs-github-gist .hljs-string,.hljs-github-gist .hljs-variable,.hljs-github-gist .hljs-template-variable,.hljs-github-gist .hljs-strong,.hljs-github-gist .hljs-emphasis,.hljs-github-gist .hljs-quote{color:#df5000;}.hljs-github-gist .hljs-keyword,.hljs-github-gist .hljs-selector-tag,.hljs-github-gist .hljs-type{color:#a71d5d;}.hljs-github-gist .hljs-literal,.hljs-github-gist .hljs-symbol,.hljs-github-gist .hljs-bullet,.hljs-github-gist .hljs-attribute{color:#0086b3;}.hljs-github-gist .hljs-section,.hljs-github-gist .hljs-name{color:#63a35c;}.hljs-github-gist .hljs-tag{color:#333333;}.hljs-github-gist .hljs-title,.hljs-github-gist .hljs-attr,.hljs-github-gist .hljs-selector-id,.hljs-github-gist .hljs-selector-class,.hljs-github-gist .hljs-selector-attr,.hljs-github-gist .hljs-selector-pseudo{color:#795da3;}.hljs-github-gist .hljs-addition{color:#55a532;background-color:#eaffea;}.hljs-github-gist .hljs-deletion{color:#bd2c00;background-color:#ffecec;}.hljs-github-gist .hljs-link{text-decoration:underline;}","github":".hljs-github{}.hljs-github .hljs{display:block;overflow-x:auto;padding:0.5em;color:#333;background:#f8f8f8;}.hljs-github .hljs-comment,.hljs-github .hljs-quote{color:#998;font-style:italic;}.hljs-github .hljs-keyword,.hljs-github .hljs-selector-tag,.hljs-github .hljs-subst{color:#333;font-weight:bold;}.hljs-github .hljs-number,.hljs-github .hljs-literal,.hljs-github .hljs-variable,.hljs-github .hljs-template-variable,.hljs-github .hljs-tag .hljs-attr{color:#008080;}.hljs-github .hljs-string,.hljs-github .hljs-doctag{color:#d14;}.hljs-github .hljs-title,.hljs-github .hljs-section,.hljs-github .hljs-selector-id{color:#900;font-weight:bold;}.hljs-github .hljs-subst{font-weight:normal;}.hljs-github .hljs-type,.hljs-github .hljs-class .hljs-title{color:#458;font-weight:bold;}.hljs-github .hljs-tag,.hljs-github .hljs-name,.hljs-github .hljs-attribute{color:#000080;font-weight:normal;}.hljs-github .hljs-regexp,.hljs-github .hljs-link{color:#009926;}.hljs-github .hljs-symbol,.hljs-github .hljs-bullet{color:#990073;}.hljs-github .hljs-built_in,.hljs-github .hljs-builtin-name{color:#0086b3;}.hljs-github .hljs-meta{color:#999;font-weight:bold;}.hljs-github .hljs-deletion{background:#fdd;}.hljs-github .hljs-addition{background:#dfd;}.hljs-github .hljs-emphasis{font-style:italic;}.hljs-github .hljs-strong{font-weight:bold;}","googlecode":".hljs-googlecode{}.hljs-googlecode .hljs{display:block;overflow-x:auto;padding:0.5em;background:white;color:black;}.hljs-googlecode .hljs-comment,.hljs-googlecode .hljs-quote{color:#800;}.hljs-googlecode .hljs-keyword,.hljs-googlecode .hljs-selector-tag,.hljs-googlecode .hljs-section,.hljs-googlecode .hljs-title,.hljs-googlecode .hljs-name{color:#008;}.hljs-googlecode .hljs-variable,.hljs-googlecode .hljs-template-variable{color:#660;}.hljs-googlecode .hljs-string,.hljs-googlecode .hljs-selector-attr,.hljs-googlecode .hljs-selector-pseudo,.hljs-googlecode .hljs-regexp{color:#080;}.hljs-googlecode .hljs-literal,.hljs-googlecode .hljs-symbol,.hljs-googlecode .hljs-bullet,.hljs-googlecode .hljs-meta,.hljs-googlecode .hljs-number,.hljs-googlecode .hljs-link{color:#066;}.hljs-googlecode .hljs-title,.hljs-googlecode .hljs-doctag,.hljs-googlecode .hljs-type,.hljs-googlecode .hljs-attr,.hljs-googlecode .hljs-built_in,.hljs-googlecode .hljs-builtin-name,.hljs-googlecode .hljs-params{color:#606;}.hljs-googlecode .hljs-attribute,.hljs-googlecode .hljs-subst{color:#000;}.hljs-googlecode .hljs-formula{background-color:#eee;font-style:italic;}.hljs-googlecode .hljs-selector-id,.hljs-googlecode .hljs-selector-class{color:#9b703f;}.hljs-googlecode .hljs-addition{background-color:#baeeba;}.hljs-googlecode .hljs-deletion{background-color:#ffc8bd;}.hljs-googlecode .hljs-doctag,.hljs-googlecode .hljs-strong{font-weight:bold;}.hljs-googlecode .hljs-emphasis{font-style:italic;}","grayscale":".hljs-grayscale{}.hljs-grayscale .hljs{display:block;overflow-x:auto;padding:0.5em;color:#333;background:#fff;}.hljs-grayscale .hljs-comment,.hljs-grayscale .hljs-quote{color:#777;font-style:italic;}.hljs-grayscale .hljs-keyword,.hljs-grayscale .hljs-selector-tag,.hljs-grayscale .hljs-subst{color:#333;font-weight:bold;}.hljs-grayscale .hljs-number,.hljs-grayscale .hljs-literal{color:#777;}.hljs-grayscale .hljs-string,.hljs-grayscale .hljs-doctag,.hljs-grayscale .hljs-formula{color:#333;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAJ0lEQVQIW2O8e/fufwYGBgZBQUEQxcCIIfDu3Tuwivfv30NUoAsAALHpFMMLqZlPAAAAAElFTkSuQmCC) repeat;}.hljs-grayscale .hljs-title,.hljs-grayscale .hljs-section,.hljs-grayscale .hljs-selector-id{color:#000;font-weight:bold;}.hljs-grayscale .hljs-subst{font-weight:normal;}.hljs-grayscale .hljs-class .hljs-title,.hljs-grayscale .hljs-type,.hljs-grayscale .hljs-name{color:#333;font-weight:bold;}.hljs-grayscale .hljs-tag{color:#333;}.hljs-grayscale .hljs-regexp{color:#333;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAICAYAAADA+m62AAAAPUlEQVQYV2NkQAN37979r6yszIgujiIAU4RNMVwhuiQ6H6wQl3XI4oy4FMHcCJPHcDS6J2A2EqUQpJhohQDexSef15DBCwAAAABJRU5ErkJggg==) repeat;}.hljs-grayscale .hljs-symbol,.hljs-grayscale .hljs-bullet,.hljs-grayscale .hljs-link{color:#000;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAKElEQVQIW2NkQAO7d+/+z4gsBhJwdXVlhAvCBECKwIIwAbhKZBUwBQA6hBpm5efZsgAAAABJRU5ErkJggg==) repeat;}.hljs-grayscale .hljs-built_in,.hljs-grayscale .hljs-builtin-name{color:#000;text-decoration:underline;}.hljs-grayscale .hljs-meta{color:#999;font-weight:bold;}.hljs-grayscale .hljs-deletion{color:#fff;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAADCAYAAABS3WWCAAAAE0lEQVQIW2MMDQ39zzhz5kwIAQAyxweWgUHd1AAAAABJRU5ErkJggg==) repeat;}.hljs-grayscale .hljs-addition{color:#000;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAALUlEQVQYV2N89+7dfwYk8P79ewZBQUFkIQZGOiu6e/cuiptQHAPl0NtNxAQBAM97Oejj3Dg7AAAAAElFTkSuQmCC) repeat;}.hljs-grayscale .hljs-emphasis{font-style:italic;}.hljs-grayscale .hljs-strong{font-weight:bold;}","hopscotch":".hljs-hopscotch{}.hljs-hopscotch .hljs-comment,.hljs-hopscotch .hljs-quote{color:#989498;}.hljs-hopscotch .hljs-variable,.hljs-hopscotch .hljs-template-variable,.hljs-hopscotch .hljs-attribute,.hljs-hopscotch .hljs-tag,.hljs-hopscotch .hljs-name,.hljs-hopscotch .hljs-selector-id,.hljs-hopscotch .hljs-selector-class,.hljs-hopscotch .hljs-regexp,.hljs-hopscotch .hljs-link,.hljs-hopscotch .hljs-deletion{color:#dd464c;}.hljs-hopscotch .hljs-number,.hljs-hopscotch .hljs-built_in,.hljs-hopscotch .hljs-builtin-name,.hljs-hopscotch .hljs-literal,.hljs-hopscotch .hljs-type,.hljs-hopscotch .hljs-params{color:#fd8b19;}.hljs-hopscotch .hljs-class .hljs-title{color:#fdcc59;}.hljs-hopscotch .hljs-string,.hljs-hopscotch .hljs-symbol,.hljs-hopscotch .hljs-bullet,.hljs-hopscotch .hljs-addition{color:#8fc13e;}.hljs-hopscotch .hljs-meta{color:#149b93;}.hljs-hopscotch .hljs-function,.hljs-hopscotch .hljs-section,.hljs-hopscotch .hljs-title{color:#1290bf;}.hljs-hopscotch .hljs-keyword,.hljs-hopscotch .hljs-selector-tag{color:#c85e7c;}.hljs-hopscotch .hljs{display:block;background:#322931;color:#b9b5b8;padding:0.5em;}.hljs-hopscotch .hljs-emphasis{font-style:italic;}.hljs-hopscotch .hljs-strong{font-weight:bold;}","hybrid":".hljs-hybrid{}.hljs-hybrid .hljs{display:block;overflow-x:auto;padding:0.5em;background:#1d1f21;}.hljs-hybrid .hljs::selection,.hljs-hybrid .hljs span::selection{background:#373b41;}.hljs-hybrid .hljs::-moz-selection,.hljs-hybrid .hljs span::-moz-selection{background:#373b41;}.hljs-hybrid .hljs{color:#c5c8c6;}.hljs-hybrid .hljs-title,.hljs-hybrid .hljs-name{color:#f0c674;}.hljs-hybrid .hljs-comment,.hljs-hybrid .hljs-meta,.hljs-hybrid .hljs-meta .hljs-keyword{color:#707880;}.hljs-hybrid .hljs-number,.hljs-hybrid .hljs-symbol,.hljs-hybrid .hljs-literal,.hljs-hybrid .hljs-deletion,.hljs-hybrid .hljs-link{color:#cc6666;}.hljs-hybrid .hljs-string,.hljs-hybrid .hljs-doctag,.hljs-hybrid .hljs-addition,.hljs-hybrid .hljs-regexp,.hljs-hybrid .hljs-selector-attr,.hljs-hybrid .hljs-selector-pseudo{color:#b5bd68;}.hljs-hybrid .hljs-attribute,.hljs-hybrid .hljs-code,.hljs-hybrid .hljs-selector-id{color:#b294bb;}.hljs-hybrid .hljs-keyword,.hljs-hybrid .hljs-selector-tag,.hljs-hybrid .hljs-bullet,.hljs-hybrid .hljs-tag{color:#81a2be;}.hljs-hybrid .hljs-subst,.hljs-hybrid .hljs-variable,.hljs-hybrid .hljs-template-tag,.hljs-hybrid .hljs-template-variable{color:#8abeb7;}.hljs-hybrid .hljs-type,.hljs-hybrid .hljs-built_in,.hljs-hybrid .hljs-builtin-name,.hljs-hybrid .hljs-quote,.hljs-hybrid .hljs-section,.hljs-hybrid .hljs-selector-class{color:#de935f;}.hljs-hybrid .hljs-emphasis{font-style:italic;}.hljs-hybrid .hljs-strong{font-weight:bold;}","idea":".hljs-idea{}.hljs-idea .hljs{display:block;overflow-x:auto;padding:0.5em;color:#000;background:#fff;}.hljs-idea .hljs-subst,.hljs-idea .hljs-title{font-weight:normal;color:#000;}.hljs-idea .hljs-comment,.hljs-idea .hljs-quote{color:#808080;font-style:italic;}.hljs-idea .hljs-meta{color:#808000;}.hljs-idea .hljs-tag{background:#efefef;}.hljs-idea .hljs-section,.hljs-idea .hljs-name,.hljs-idea .hljs-literal,.hljs-idea .hljs-keyword,.hljs-idea .hljs-selector-tag,.hljs-idea .hljs-type,.hljs-idea .hljs-selector-id,.hljs-idea .hljs-selector-class{font-weight:bold;color:#000080;}.hljs-idea .hljs-attribute,.hljs-idea .hljs-number,.hljs-idea .hljs-regexp,.hljs-idea .hljs-link{font-weight:bold;color:#0000ff;}.hljs-idea .hljs-number,.hljs-idea .hljs-regexp,.hljs-idea .hljs-link{font-weight:normal;}.hljs-idea .hljs-string{color:#008000;font-weight:bold;}.hljs-idea .hljs-symbol,.hljs-idea .hljs-bullet,.hljs-idea .hljs-formula{color:#000;background:#d0eded;font-style:italic;}.hljs-idea .hljs-doctag{text-decoration:underline;}.hljs-idea .hljs-variable,.hljs-idea .hljs-template-variable{color:#660e7a;}.hljs-idea .hljs-addition{background:#baeeba;}.hljs-idea .hljs-deletion{background:#ffc8bd;}.hljs-idea .hljs-emphasis{font-style:italic;}.hljs-idea .hljs-strong{font-weight:bold;}","ir-black":".hljs-ir-black{}.hljs-ir-black .hljs{display:block;overflow-x:auto;padding:0.5em;background:#000;color:#f8f8f8;}.hljs-ir-black .hljs-comment,.hljs-ir-black .hljs-quote,.hljs-ir-black .hljs-meta{color:#7c7c7c;}.hljs-ir-black .hljs-keyword,.hljs-ir-black .hljs-selector-tag,.hljs-ir-black .hljs-tag,.hljs-ir-black .hljs-name{color:#96cbfe;}.hljs-ir-black .hljs-attribute,.hljs-ir-black .hljs-selector-id{color:#ffffb6;}.hljs-ir-black .hljs-string,.hljs-ir-black .hljs-selector-attr,.hljs-ir-black .hljs-selector-pseudo,.hljs-ir-black .hljs-addition{color:#a8ff60;}.hljs-ir-black .hljs-subst{color:#daefa3;}.hljs-ir-black .hljs-regexp,.hljs-ir-black .hljs-link{color:#e9c062;}.hljs-ir-black .hljs-title,.hljs-ir-black .hljs-section,.hljs-ir-black .hljs-type,.hljs-ir-black .hljs-doctag{color:#ffffb6;}.hljs-ir-black .hljs-symbol,.hljs-ir-black .hljs-bullet,.hljs-ir-black .hljs-variable,.hljs-ir-black .hljs-template-variable,.hljs-ir-black .hljs-literal{color:#c6c5fe;}.hljs-ir-black .hljs-number,.hljs-ir-black .hljs-deletion{color:#ff73fd;}.hljs-ir-black .hljs-emphasis{font-style:italic;}.hljs-ir-black .hljs-strong{font-weight:bold;}","kimbie.dark":".hljs-kimbie.dark{}.hljs-kimbie.dark .hljs-comment,.hljs-kimbie.dark .hljs-quote{color:#d6baad;}.hljs-kimbie.dark .hljs-variable,.hljs-kimbie.dark .hljs-template-variable,.hljs-kimbie.dark .hljs-tag,.hljs-kimbie.dark .hljs-name,.hljs-kimbie.dark .hljs-selector-id,.hljs-kimbie.dark .hljs-selector-class,.hljs-kimbie.dark .hljs-regexp,.hljs-kimbie.dark .hljs-meta{color:#dc3958;}.hljs-kimbie.dark .hljs-number,.hljs-kimbie.dark .hljs-built_in,.hljs-kimbie.dark .hljs-builtin-name,.hljs-kimbie.dark .hljs-literal,.hljs-kimbie.dark .hljs-type,.hljs-kimbie.dark .hljs-params,.hljs-kimbie.dark .hljs-deletion,.hljs-kimbie.dark .hljs-link{color:#f79a32;}.hljs-kimbie.dark .hljs-title,.hljs-kimbie.dark .hljs-section,.hljs-kimbie.dark .hljs-attribute{color:#f06431;}.hljs-kimbie.dark .hljs-string,.hljs-kimbie.dark .hljs-symbol,.hljs-kimbie.dark .hljs-bullet,.hljs-kimbie.dark .hljs-addition{color:#889b4a;}.hljs-kimbie.dark .hljs-keyword,.hljs-kimbie.dark .hljs-selector-tag,.hljs-kimbie.dark .hljs-function{color:#98676a;}.hljs-kimbie.dark .hljs{display:block;overflow-x:auto;background:#221a0f;color:#d3af86;padding:0.5em;}.hljs-kimbie.dark .hljs-emphasis{font-style:italic;}.hljs-kimbie.dark .hljs-strong{font-weight:bold;}","kimbie.light":".hljs-kimbie.light{}.hljs-kimbie.light .hljs-comment,.hljs-kimbie.light .hljs-quote{color:#a57a4c;}.hljs-kimbie.light .hljs-variable,.hljs-kimbie.light .hljs-template-variable,.hljs-kimbie.light .hljs-tag,.hljs-kimbie.light .hljs-name,.hljs-kimbie.light .hljs-selector-id,.hljs-kimbie.light .hljs-selector-class,.hljs-kimbie.light .hljs-regexp,.hljs-kimbie.light .hljs-meta{color:#dc3958;}.hljs-kimbie.light .hljs-number,.hljs-kimbie.light .hljs-built_in,.hljs-kimbie.light .hljs-builtin-name,.hljs-kimbie.light .hljs-literal,.hljs-kimbie.light .hljs-type,.hljs-kimbie.light .hljs-params,.hljs-kimbie.light .hljs-deletion,.hljs-kimbie.light .hljs-link{color:#f79a32;}.hljs-kimbie.light .hljs-title,.hljs-kimbie.light .hljs-section,.hljs-kimbie.light .hljs-attribute{color:#f06431;}.hljs-kimbie.light .hljs-string,.hljs-kimbie.light .hljs-symbol,.hljs-kimbie.light .hljs-bullet,.hljs-kimbie.light .hljs-addition{color:#889b4a;}.hljs-kimbie.light .hljs-keyword,.hljs-kimbie.light .hljs-selector-tag,.hljs-kimbie.light .hljs-function{color:#98676a;}.hljs-kimbie.light .hljs{display:block;overflow-x:auto;background:#fbebd4;color:#84613d;padding:0.5em;}.hljs-kimbie.light .hljs-emphasis{font-style:italic;}.hljs-kimbie.light .hljs-strong{font-weight:bold;}","magula":".hljs-magula{}.hljs-magula .hljs{display:block;overflow-x:auto;padding:0.5em;background-color:#f4f4f4;}.hljs-magula .hljs,.hljs-magula .hljs-subst{color:black;}.hljs-magula .hljs-string,.hljs-magula .hljs-title,.hljs-magula .hljs-symbol,.hljs-magula .hljs-bullet,.hljs-magula .hljs-attribute,.hljs-magula .hljs-addition,.hljs-magula .hljs-variable,.hljs-magula .hljs-template-tag,.hljs-magula .hljs-template-variable{color:#050;}.hljs-magula .hljs-comment,.hljs-magula .hljs-quote{color:#777;}.hljs-magula .hljs-number,.hljs-magula .hljs-regexp,.hljs-magula .hljs-literal,.hljs-magula .hljs-type,.hljs-magula .hljs-link{color:#800;}.hljs-magula .hljs-deletion,.hljs-magula .hljs-meta{color:#00e;}.hljs-magula .hljs-keyword,.hljs-magula .hljs-selector-tag,.hljs-magula .hljs-doctag,.hljs-magula .hljs-title,.hljs-magula .hljs-section,.hljs-magula .hljs-built_in,.hljs-magula .hljs-tag,.hljs-magula .hljs-name{font-weight:bold;color:navy;}.hljs-magula .hljs-emphasis{font-style:italic;}.hljs-magula .hljs-strong{font-weight:bold;}","mono-blue":".hljs-mono-blue{}.hljs-mono-blue .hljs{display:block;overflow-x:auto;padding:0.5em;background:#eaeef3;}.hljs-mono-blue .hljs{color:#00193a;}.hljs-mono-blue .hljs-keyword,.hljs-mono-blue .hljs-selector-tag,.hljs-mono-blue .hljs-title,.hljs-mono-blue .hljs-section,.hljs-mono-blue .hljs-doctag,.hljs-mono-blue .hljs-name,.hljs-mono-blue .hljs-strong{font-weight:bold;}.hljs-mono-blue .hljs-comment{color:#738191;}.hljs-mono-blue .hljs-string,.hljs-mono-blue .hljs-title,.hljs-mono-blue .hljs-section,.hljs-mono-blue .hljs-built_in,.hljs-mono-blue .hljs-literal,.hljs-mono-blue .hljs-type,.hljs-mono-blue .hljs-addition,.hljs-mono-blue .hljs-tag,.hljs-mono-blue .hljs-quote,.hljs-mono-blue .hljs-name,.hljs-mono-blue .hljs-selector-id,.hljs-mono-blue .hljs-selector-class{color:#0048ab;}.hljs-mono-blue .hljs-meta,.hljs-mono-blue .hljs-subst,.hljs-mono-blue .hljs-symbol,.hljs-mono-blue .hljs-regexp,.hljs-mono-blue .hljs-attribute,.hljs-mono-blue .hljs-deletion,.hljs-mono-blue .hljs-variable,.hljs-mono-blue .hljs-template-variable,.hljs-mono-blue .hljs-link,.hljs-mono-blue .hljs-bullet{color:#4c81c9;}.hljs-mono-blue .hljs-emphasis{font-style:italic;}","monokai-sublime":".hljs-monokai-sublime{}.hljs-monokai-sublime .hljs{display:block;overflow-x:auto;padding:0.5em;background:#23241f;}.hljs-monokai-sublime .hljs,.hljs-monokai-sublime .hljs-tag,.hljs-monokai-sublime .hljs-subst{color:#f8f8f2;}.hljs-monokai-sublime .hljs-strong,.hljs-monokai-sublime .hljs-emphasis{color:#a8a8a2;}.hljs-monokai-sublime .hljs-bullet,.hljs-monokai-sublime .hljs-quote,.hljs-monokai-sublime .hljs-number,.hljs-monokai-sublime .hljs-regexp,.hljs-monokai-sublime .hljs-literal,.hljs-monokai-sublime .hljs-link{color:#ae81ff;}.hljs-monokai-sublime .hljs-code,.hljs-monokai-sublime .hljs-title,.hljs-monokai-sublime .hljs-section,.hljs-monokai-sublime .hljs-selector-class{color:#a6e22e;}.hljs-monokai-sublime .hljs-strong{font-weight:bold;}.hljs-monokai-sublime .hljs-emphasis{font-style:italic;}.hljs-monokai-sublime .hljs-keyword,.hljs-monokai-sublime .hljs-selector-tag,.hljs-monokai-sublime .hljs-name,.hljs-monokai-sublime .hljs-attr{color:#f92672;}.hljs-monokai-sublime .hljs-symbol,.hljs-monokai-sublime .hljs-attribute{color:#66d9ef;}.hljs-monokai-sublime .hljs-params,.hljs-monokai-sublime .hljs-class .hljs-title{color:#f8f8f2;}.hljs-monokai-sublime .hljs-string,.hljs-monokai-sublime .hljs-type,.hljs-monokai-sublime .hljs-built_in,.hljs-monokai-sublime .hljs-builtin-name,.hljs-monokai-sublime .hljs-selector-id,.hljs-monokai-sublime .hljs-selector-attr,.hljs-monokai-sublime .hljs-selector-pseudo,.hljs-monokai-sublime .hljs-addition,.hljs-monokai-sublime .hljs-variable,.hljs-monokai-sublime .hljs-template-variable{color:#e6db74;}.hljs-monokai-sublime .hljs-comment,.hljs-monokai-sublime .hljs-deletion,.hljs-monokai-sublime .hljs-meta{color:#75715e;}","monokai":".hljs-monokai{}.hljs-monokai .hljs{display:block;overflow-x:auto;padding:0.5em;background:#272822;color:#ddd;}.hljs-monokai .hljs-tag,.hljs-monokai .hljs-keyword,.hljs-monokai .hljs-selector-tag,.hljs-monokai .hljs-literal,.hljs-monokai .hljs-strong,.hljs-monokai .hljs-name{color:#f92672;}.hljs-monokai .hljs-code{color:#66d9ef;}.hljs-monokai .hljs-class .hljs-title{color:white;}.hljs-monokai .hljs-attribute,.hljs-monokai .hljs-symbol,.hljs-monokai .hljs-regexp,.hljs-monokai .hljs-link{color:#bf79db;}.hljs-monokai .hljs-string,.hljs-monokai .hljs-bullet,.hljs-monokai .hljs-subst,.hljs-monokai .hljs-title,.hljs-monokai .hljs-section,.hljs-monokai .hljs-emphasis,.hljs-monokai .hljs-type,.hljs-monokai .hljs-built_in,.hljs-monokai .hljs-builtin-name,.hljs-monokai .hljs-selector-attr,.hljs-monokai .hljs-selector-pseudo,.hljs-monokai .hljs-addition,.hljs-monokai .hljs-variable,.hljs-monokai .hljs-template-tag,.hljs-monokai .hljs-template-variable{color:#a6e22e;}.hljs-monokai .hljs-comment,.hljs-monokai .hljs-quote,.hljs-monokai .hljs-deletion,.hljs-monokai .hljs-meta{color:#75715e;}.hljs-monokai .hljs-keyword,.hljs-monokai .hljs-selector-tag,.hljs-monokai .hljs-literal,.hljs-monokai .hljs-doctag,.hljs-monokai .hljs-title,.hljs-monokai .hljs-section,.hljs-monokai .hljs-type,.hljs-monokai .hljs-selector-id{font-weight:bold;}","obsidian":".hljs-obsidian{}.hljs-obsidian .hljs{display:block;overflow-x:auto;padding:0.5em;background:#282b2e;}.hljs-obsidian .hljs-keyword,.hljs-obsidian .hljs-selector-tag,.hljs-obsidian .hljs-literal,.hljs-obsidian .hljs-selector-id{color:#93c763;}.hljs-obsidian .hljs-number{color:#ffcd22;}.hljs-obsidian .hljs{color:#e0e2e4;}.hljs-obsidian .hljs-attribute{color:#668bb0;}.hljs-obsidian .hljs-code,.hljs-obsidian .hljs-class .hljs-title,.hljs-obsidian .hljs-section{color:white;}.hljs-obsidian .hljs-regexp,.hljs-obsidian .hljs-link{color:#d39745;}.hljs-obsidian .hljs-meta{color:#557182;}.hljs-obsidian .hljs-tag,.hljs-obsidian .hljs-name,.hljs-obsidian .hljs-bullet,.hljs-obsidian .hljs-subst,.hljs-obsidian .hljs-emphasis,.hljs-obsidian .hljs-type,.hljs-obsidian .hljs-built_in,.hljs-obsidian .hljs-selector-attr,.hljs-obsidian .hljs-selector-pseudo,.hljs-obsidian .hljs-addition,.hljs-obsidian .hljs-variable,.hljs-obsidian .hljs-template-tag,.hljs-obsidian .hljs-template-variable{color:#8cbbad;}.hljs-obsidian .hljs-string,.hljs-obsidian .hljs-symbol{color:#ec7600;}.hljs-obsidian .hljs-comment,.hljs-obsidian .hljs-quote,.hljs-obsidian .hljs-deletion{color:#818e96;}.hljs-obsidian .hljs-selector-class{color:#a082bd;}.hljs-obsidian .hljs-keyword,.hljs-obsidian .hljs-selector-tag,.hljs-obsidian .hljs-literal,.hljs-obsidian .hljs-doctag,.hljs-obsidian .hljs-title,.hljs-obsidian .hljs-section,.hljs-obsidian .hljs-type,.hljs-obsidian .hljs-name,.hljs-obsidian .hljs-strong{font-weight:bold;}","paraiso-dark":".hljs-paraiso-dark{}.hljs-paraiso-dark .hljs-comment,.hljs-paraiso-dark .hljs-quote{color:#8d8687;}.hljs-paraiso-dark .hljs-variable,.hljs-paraiso-dark .hljs-template-variable,.hljs-paraiso-dark .hljs-tag,.hljs-paraiso-dark .hljs-name,.hljs-paraiso-dark .hljs-selector-id,.hljs-paraiso-dark .hljs-selector-class,.hljs-paraiso-dark .hljs-regexp,.hljs-paraiso-dark .hljs-link,.hljs-paraiso-dark .hljs-meta{color:#ef6155;}.hljs-paraiso-dark .hljs-number,.hljs-paraiso-dark .hljs-built_in,.hljs-paraiso-dark .hljs-builtin-name,.hljs-paraiso-dark .hljs-literal,.hljs-paraiso-dark .hljs-type,.hljs-paraiso-dark .hljs-params,.hljs-paraiso-dark .hljs-deletion{color:#f99b15;}.hljs-paraiso-dark .hljs-title,.hljs-paraiso-dark .hljs-section,.hljs-paraiso-dark .hljs-attribute{color:#fec418;}.hljs-paraiso-dark .hljs-string,.hljs-paraiso-dark .hljs-symbol,.hljs-paraiso-dark .hljs-bullet,.hljs-paraiso-dark .hljs-addition{color:#48b685;}.hljs-paraiso-dark .hljs-keyword,.hljs-paraiso-dark .hljs-selector-tag{color:#815ba4;}.hljs-paraiso-dark .hljs{display:block;overflow-x:auto;background:#2f1e2e;color:#a39e9b;padding:0.5em;}.hljs-paraiso-dark .hljs-emphasis{font-style:italic;}.hljs-paraiso-dark .hljs-strong{font-weight:bold;}","paraiso-light":".hljs-paraiso-light{}.hljs-paraiso-light .hljs-comment,.hljs-paraiso-light .hljs-quote{color:#776e71;}.hljs-paraiso-light .hljs-variable,.hljs-paraiso-light .hljs-template-variable,.hljs-paraiso-light .hljs-tag,.hljs-paraiso-light .hljs-name,.hljs-paraiso-light .hljs-selector-id,.hljs-paraiso-light .hljs-selector-class,.hljs-paraiso-light .hljs-regexp,.hljs-paraiso-light .hljs-link,.hljs-paraiso-light .hljs-meta{color:#ef6155;}.hljs-paraiso-light .hljs-number,.hljs-paraiso-light .hljs-built_in,.hljs-paraiso-light .hljs-builtin-name,.hljs-paraiso-light .hljs-literal,.hljs-paraiso-light .hljs-type,.hljs-paraiso-light .hljs-params,.hljs-paraiso-light .hljs-deletion{color:#f99b15;}.hljs-paraiso-light .hljs-title,.hljs-paraiso-light .hljs-section,.hljs-paraiso-light .hljs-attribute{color:#fec418;}.hljs-paraiso-light .hljs-string,.hljs-paraiso-light .hljs-symbol,.hljs-paraiso-light .hljs-bullet,.hljs-paraiso-light .hljs-addition{color:#48b685;}.hljs-paraiso-light .hljs-keyword,.hljs-paraiso-light .hljs-selector-tag{color:#815ba4;}.hljs-paraiso-light .hljs{display:block;overflow-x:auto;background:#e7e9db;color:#4f424c;padding:0.5em;}.hljs-paraiso-light .hljs-emphasis{font-style:italic;}.hljs-paraiso-light .hljs-strong{font-weight:bold;}","railscasts":".hljs-railscasts{}.hljs-railscasts .hljs{display:block;overflow-x:auto;padding:0.5em;background:#232323;color:#e6e1dc;}.hljs-railscasts .hljs-comment,.hljs-railscasts .hljs-quote{color:#bc9458;font-style:italic;}.hljs-railscasts .hljs-keyword,.hljs-railscasts .hljs-selector-tag{color:#c26230;}.hljs-railscasts .hljs-string,.hljs-railscasts .hljs-number,.hljs-railscasts .hljs-regexp,.hljs-railscasts .hljs-variable,.hljs-railscasts .hljs-template-variable{color:#a5c261;}.hljs-railscasts .hljs-subst{color:#519f50;}.hljs-railscasts .hljs-tag,.hljs-railscasts .hljs-name{color:#e8bf6a;}.hljs-railscasts .hljs-type{color:#da4939;}.hljs-railscasts .hljs-symbol,.hljs-railscasts .hljs-bullet,.hljs-railscasts .hljs-built_in,.hljs-railscasts .hljs-builtin-name,.hljs-railscasts .hljs-attr,.hljs-railscasts .hljs-link{color:#6d9cbe;}.hljs-railscasts .hljs-params{color:#d0d0ff;}.hljs-railscasts .hljs-attribute{color:#cda869;}.hljs-railscasts .hljs-meta{color:#9b859d;}.hljs-railscasts .hljs-title,.hljs-railscasts .hljs-section{color:#ffc66d;}.hljs-railscasts .hljs-addition{background-color:#144212;color:#e6e1dc;display:inline-block;width:100%;}.hljs-railscasts .hljs-deletion{background-color:#600;color:#e6e1dc;display:inline-block;width:100%;}.hljs-railscasts .hljs-selector-class{color:#9b703f;}.hljs-railscasts .hljs-selector-id{color:#8b98ab;}.hljs-railscasts .hljs-emphasis{font-style:italic;}.hljs-railscasts .hljs-strong{font-weight:bold;}.hljs-railscasts .hljs-link{text-decoration:underline;}","rainbow":".hljs-rainbow{}.hljs-rainbow .hljs{display:block;overflow-x:auto;padding:0.5em;background:#474949;color:#d1d9e1;}.hljs-rainbow .hljs-comment,.hljs-rainbow .hljs-quote{color:#969896;font-style:italic;}.hljs-rainbow .hljs-keyword,.hljs-rainbow .hljs-selector-tag,.hljs-rainbow .hljs-literal,.hljs-rainbow .hljs-type,.hljs-rainbow .hljs-addition{color:#cc99cc;}.hljs-rainbow .hljs-number,.hljs-rainbow .hljs-selector-attr,.hljs-rainbow .hljs-selector-pseudo{color:#f99157;}.hljs-rainbow .hljs-string,.hljs-rainbow .hljs-doctag,.hljs-rainbow .hljs-regexp{color:#8abeb7;}.hljs-rainbow .hljs-title,.hljs-rainbow .hljs-name,.hljs-rainbow .hljs-section,.hljs-rainbow .hljs-built_in{color:#b5bd68;}.hljs-rainbow .hljs-variable,.hljs-rainbow .hljs-template-variable,.hljs-rainbow .hljs-selector-id,.hljs-rainbow .hljs-class .hljs-title{color:#ffcc66;}.hljs-rainbow .hljs-section,.hljs-rainbow .hljs-name,.hljs-rainbow .hljs-strong{font-weight:bold;}.hljs-rainbow .hljs-symbol,.hljs-rainbow .hljs-bullet,.hljs-rainbow .hljs-subst,.hljs-rainbow .hljs-meta,.hljs-rainbow .hljs-link{color:#f99157;}.hljs-rainbow .hljs-deletion{color:#dc322f;}.hljs-rainbow .hljs-formula{background:#eee8d5;}.hljs-rainbow .hljs-attr,.hljs-rainbow .hljs-attribute{color:#81a2be;}.hljs-rainbow .hljs-emphasis{font-style:italic;}","school-book":".hljs-school-book{}.hljs-school-book .hljs{display:block;overflow-x:auto;padding:15px 0.5em 0.5em 30px;font-size:11px;line-height:16px;}.hljs-school-book pre{background:#f6f6ae url(./school-book.png);border-top:solid 2px #d2e8b9;border-bottom:solid 1px #d2e8b9;}.hljs-school-book .hljs-keyword,.hljs-school-book .hljs-selector-tag,.hljs-school-book .hljs-literal{color:#005599;font-weight:bold;}.hljs-school-book .hljs,.hljs-school-book .hljs-subst{color:#3e5915;}.hljs-school-book .hljs-string,.hljs-school-book .hljs-title,.hljs-school-book .hljs-section,.hljs-school-book .hljs-type,.hljs-school-book .hljs-symbol,.hljs-school-book .hljs-bullet,.hljs-school-book .hljs-attribute,.hljs-school-book .hljs-built_in,.hljs-school-book .hljs-builtin-name,.hljs-school-book .hljs-addition,.hljs-school-book .hljs-variable,.hljs-school-book .hljs-template-tag,.hljs-school-book .hljs-template-variable,.hljs-school-book .hljs-link{color:#2c009f;}.hljs-school-book .hljs-comment,.hljs-school-book .hljs-quote,.hljs-school-book .hljs-deletion,.hljs-school-book .hljs-meta{color:#e60415;}.hljs-school-book .hljs-keyword,.hljs-school-book .hljs-selector-tag,.hljs-school-book .hljs-literal,.hljs-school-book .hljs-doctag,.hljs-school-book .hljs-title,.hljs-school-book .hljs-section,.hljs-school-book .hljs-type,.hljs-school-book .hljs-name,.hljs-school-book .hljs-selector-id,.hljs-school-book .hljs-strong{font-weight:bold;}.hljs-school-book .hljs-emphasis{font-style:italic;}","solarized-dark":".hljs-solarized-dark{}.hljs-solarized-dark .hljs{display:block;overflow-x:auto;padding:0.5em;background:#002b36;color:#839496;}.hljs-solarized-dark .hljs-comment,.hljs-solarized-dark .hljs-quote{color:#586e75;}.hljs-solarized-dark .hljs-keyword,.hljs-solarized-dark .hljs-selector-tag,.hljs-solarized-dark .hljs-addition{color:#859900;}.hljs-solarized-dark .hljs-number,.hljs-solarized-dark .hljs-string,.hljs-solarized-dark .hljs-meta .hljs-meta-string,.hljs-solarized-dark .hljs-literal,.hljs-solarized-dark .hljs-doctag,.hljs-solarized-dark .hljs-regexp{color:#2aa198;}.hljs-solarized-dark .hljs-title,.hljs-solarized-dark .hljs-section,.hljs-solarized-dark .hljs-name,.hljs-solarized-dark .hljs-selector-id,.hljs-solarized-dark .hljs-selector-class{color:#268bd2;}.hljs-solarized-dark .hljs-attribute,.hljs-solarized-dark .hljs-attr,.hljs-solarized-dark .hljs-variable,.hljs-solarized-dark .hljs-template-variable,.hljs-solarized-dark .hljs-class .hljs-title,.hljs-solarized-dark .hljs-type{color:#b58900;}.hljs-solarized-dark .hljs-symbol,.hljs-solarized-dark .hljs-bullet,.hljs-solarized-dark .hljs-subst,.hljs-solarized-dark .hljs-meta,.hljs-solarized-dark .hljs-meta .hljs-keyword,.hljs-solarized-dark .hljs-selector-attr,.hljs-solarized-dark .hljs-selector-pseudo,.hljs-solarized-dark .hljs-link{color:#cb4b16;}.hljs-solarized-dark .hljs-built_in,.hljs-solarized-dark .hljs-deletion{color:#dc322f;}.hljs-solarized-dark .hljs-formula{background:#073642;}.hljs-solarized-dark .hljs-emphasis{font-style:italic;}.hljs-solarized-dark .hljs-strong{font-weight:bold;}","solarized-light":".hljs-solarized-light{}.hljs-solarized-light .hljs{display:block;overflow-x:auto;padding:0.5em;background:#fdf6e3;color:#657b83;}.hljs-solarized-light .hljs-comment,.hljs-solarized-light .hljs-quote{color:#93a1a1;}.hljs-solarized-light .hljs-keyword,.hljs-solarized-light .hljs-selector-tag,.hljs-solarized-light .hljs-addition{color:#859900;}.hljs-solarized-light .hljs-number,.hljs-solarized-light .hljs-string,.hljs-solarized-light .hljs-meta .hljs-meta-string,.hljs-solarized-light .hljs-literal,.hljs-solarized-light .hljs-doctag,.hljs-solarized-light .hljs-regexp{color:#2aa198;}.hljs-solarized-light .hljs-title,.hljs-solarized-light .hljs-section,.hljs-solarized-light .hljs-name,.hljs-solarized-light .hljs-selector-id,.hljs-solarized-light .hljs-selector-class{color:#268bd2;}.hljs-solarized-light .hljs-attribute,.hljs-solarized-light .hljs-attr,.hljs-solarized-light .hljs-variable,.hljs-solarized-light .hljs-template-variable,.hljs-solarized-light .hljs-class .hljs-title,.hljs-solarized-light .hljs-type{color:#b58900;}.hljs-solarized-light .hljs-symbol,.hljs-solarized-light .hljs-bullet,.hljs-solarized-light .hljs-subst,.hljs-solarized-light .hljs-meta,.hljs-solarized-light .hljs-meta .hljs-keyword,.hljs-solarized-light .hljs-selector-attr,.hljs-solarized-light .hljs-selector-pseudo,.hljs-solarized-light .hljs-link{color:#cb4b16;}.hljs-solarized-light .hljs-built_in,.hljs-solarized-light .hljs-deletion{color:#dc322f;}.hljs-solarized-light .hljs-formula{background:#eee8d5;}.hljs-solarized-light .hljs-emphasis{font-style:italic;}.hljs-solarized-light .hljs-strong{font-weight:bold;}","sunburst":".hljs-sunburst{}.hljs-sunburst .hljs{display:block;overflow-x:auto;padding:0.5em;background:#000;color:#f8f8f8;}.hljs-sunburst .hljs-comment,.hljs-sunburst .hljs-quote{color:#aeaeae;font-style:italic;}.hljs-sunburst .hljs-keyword,.hljs-sunburst .hljs-selector-tag,.hljs-sunburst .hljs-type{color:#e28964;}.hljs-sunburst .hljs-string{color:#65b042;}.hljs-sunburst .hljs-subst{color:#daefa3;}.hljs-sunburst .hljs-regexp,.hljs-sunburst .hljs-link{color:#e9c062;}.hljs-sunburst .hljs-title,.hljs-sunburst .hljs-section,.hljs-sunburst .hljs-tag,.hljs-sunburst .hljs-name{color:#89bdff;}.hljs-sunburst .hljs-class .hljs-title,.hljs-sunburst .hljs-doctag{text-decoration:underline;}.hljs-sunburst .hljs-symbol,.hljs-sunburst .hljs-bullet,.hljs-sunburst .hljs-number{color:#3387cc;}.hljs-sunburst .hljs-params,.hljs-sunburst .hljs-variable,.hljs-sunburst .hljs-template-variable{color:#3e87e3;}.hljs-sunburst .hljs-attribute{color:#cda869;}.hljs-sunburst .hljs-meta{color:#8996a8;}.hljs-sunburst .hljs-formula{background-color:#0e2231;color:#f8f8f8;font-style:italic;}.hljs-sunburst .hljs-addition{background-color:#253b22;color:#f8f8f8;}.hljs-sunburst .hljs-deletion{background-color:#420e09;color:#f8f8f8;}.hljs-sunburst .hljs-selector-class{color:#9b703f;}.hljs-sunburst .hljs-selector-id{color:#8b98ab;}.hljs-sunburst .hljs-emphasis{font-style:italic;}.hljs-sunburst .hljs-strong{font-weight:bold;}","tomorrow-night-blue":".hljs-tomorrow-night-blue{}.hljs-tomorrow-night-blue .hljs-comment,.hljs-tomorrow-night-blue .hljs-quote{color:#7285b7;}.hljs-tomorrow-night-blue .hljs-variable,.hljs-tomorrow-night-blue .hljs-template-variable,.hljs-tomorrow-night-blue .hljs-tag,.hljs-tomorrow-night-blue .hljs-name,.hljs-tomorrow-night-blue .hljs-selector-id,.hljs-tomorrow-night-blue .hljs-selector-class,.hljs-tomorrow-night-blue .hljs-regexp,.hljs-tomorrow-night-blue .hljs-deletion{color:#ff9da4;}.hljs-tomorrow-night-blue .hljs-number,.hljs-tomorrow-night-blue .hljs-built_in,.hljs-tomorrow-night-blue .hljs-builtin-name,.hljs-tomorrow-night-blue .hljs-literal,.hljs-tomorrow-night-blue .hljs-type,.hljs-tomorrow-night-blue .hljs-params,.hljs-tomorrow-night-blue .hljs-meta,.hljs-tomorrow-night-blue .hljs-link{color:#ffc58f;}.hljs-tomorrow-night-blue .hljs-attribute{color:#ffeead;}.hljs-tomorrow-night-blue .hljs-string,.hljs-tomorrow-night-blue .hljs-symbol,.hljs-tomorrow-night-blue .hljs-bullet,.hljs-tomorrow-night-blue .hljs-addition{color:#d1f1a9;}.hljs-tomorrow-night-blue .hljs-title,.hljs-tomorrow-night-blue .hljs-section{color:#bbdaff;}.hljs-tomorrow-night-blue .hljs-keyword,.hljs-tomorrow-night-blue .hljs-selector-tag{color:#ebbbff;}.hljs-tomorrow-night-blue .hljs{display:block;overflow-x:auto;background:#002451;color:white;padding:0.5em;}.hljs-tomorrow-night-blue .hljs-emphasis{font-style:italic;}.hljs-tomorrow-night-blue .hljs-strong{font-weight:bold;}","tomorrow-night-bright":".hljs-tomorrow-night-bright{}.hljs-tomorrow-night-bright .hljs-comment,.hljs-tomorrow-night-bright .hljs-quote{color:#969896;}.hljs-tomorrow-night-bright .hljs-variable,.hljs-tomorrow-night-bright .hljs-template-variable,.hljs-tomorrow-night-bright .hljs-tag,.hljs-tomorrow-night-bright .hljs-name,.hljs-tomorrow-night-bright .hljs-selector-id,.hljs-tomorrow-night-bright .hljs-selector-class,.hljs-tomorrow-night-bright .hljs-regexp,.hljs-tomorrow-night-bright .hljs-deletion{color:#d54e53;}.hljs-tomorrow-night-bright .hljs-number,.hljs-tomorrow-night-bright .hljs-built_in,.hljs-tomorrow-night-bright .hljs-builtin-name,.hljs-tomorrow-night-bright .hljs-literal,.hljs-tomorrow-night-bright .hljs-type,.hljs-tomorrow-night-bright .hljs-params,.hljs-tomorrow-night-bright .hljs-meta,.hljs-tomorrow-night-bright .hljs-link{color:#e78c45;}.hljs-tomorrow-night-bright .hljs-attribute{color:#e7c547;}.hljs-tomorrow-night-bright .hljs-string,.hljs-tomorrow-night-bright .hljs-symbol,.hljs-tomorrow-night-bright .hljs-bullet,.hljs-tomorrow-night-bright .hljs-addition{color:#b9ca4a;}.hljs-tomorrow-night-bright .hljs-title,.hljs-tomorrow-night-bright .hljs-section{color:#7aa6da;}.hljs-tomorrow-night-bright .hljs-keyword,.hljs-tomorrow-night-bright .hljs-selector-tag{color:#c397d8;}.hljs-tomorrow-night-bright .hljs{display:block;overflow-x:auto;background:black;color:#eaeaea;padding:0.5em;}.hljs-tomorrow-night-bright .hljs-emphasis{font-style:italic;}.hljs-tomorrow-night-bright .hljs-strong{font-weight:bold;}","tomorrow-night-eighties":".hljs-tomorrow-night-eighties{}.hljs-tomorrow-night-eighties .hljs-comment,.hljs-tomorrow-night-eighties .hljs-quote{color:#999999;}.hljs-tomorrow-night-eighties .hljs-variable,.hljs-tomorrow-night-eighties .hljs-template-variable,.hljs-tomorrow-night-eighties .hljs-tag,.hljs-tomorrow-night-eighties .hljs-name,.hljs-tomorrow-night-eighties .hljs-selector-id,.hljs-tomorrow-night-eighties .hljs-selector-class,.hljs-tomorrow-night-eighties .hljs-regexp,.hljs-tomorrow-night-eighties .hljs-deletion{color:#f2777a;}.hljs-tomorrow-night-eighties .hljs-number,.hljs-tomorrow-night-eighties .hljs-built_in,.hljs-tomorrow-night-eighties .hljs-builtin-name,.hljs-tomorrow-night-eighties .hljs-literal,.hljs-tomorrow-night-eighties .hljs-type,.hljs-tomorrow-night-eighties .hljs-params,.hljs-tomorrow-night-eighties .hljs-meta,.hljs-tomorrow-night-eighties .hljs-link{color:#f99157;}.hljs-tomorrow-night-eighties .hljs-attribute{color:#ffcc66;}.hljs-tomorrow-night-eighties .hljs-string,.hljs-tomorrow-night-eighties .hljs-symbol,.hljs-tomorrow-night-eighties .hljs-bullet,.hljs-tomorrow-night-eighties .hljs-addition{color:#99cc99;}.hljs-tomorrow-night-eighties .hljs-title,.hljs-tomorrow-night-eighties .hljs-section{color:#6699cc;}.hljs-tomorrow-night-eighties .hljs-keyword,.hljs-tomorrow-night-eighties .hljs-selector-tag{color:#cc99cc;}.hljs-tomorrow-night-eighties .hljs{display:block;overflow-x:auto;background:#2d2d2d;color:#cccccc;padding:0.5em;}.hljs-tomorrow-night-eighties .hljs-emphasis{font-style:italic;}.hljs-tomorrow-night-eighties .hljs-strong{font-weight:bold;}","tomorrow-night":".hljs-tomorrow-night{}.hljs-tomorrow-night .hljs-comment,.hljs-tomorrow-night .hljs-quote{color:#969896;}.hljs-tomorrow-night .hljs-variable,.hljs-tomorrow-night .hljs-template-variable,.hljs-tomorrow-night .hljs-tag,.hljs-tomorrow-night .hljs-name,.hljs-tomorrow-night .hljs-selector-id,.hljs-tomorrow-night .hljs-selector-class,.hljs-tomorrow-night .hljs-regexp,.hljs-tomorrow-night .hljs-deletion{color:#cc6666;}.hljs-tomorrow-night .hljs-number,.hljs-tomorrow-night .hljs-built_in,.hljs-tomorrow-night .hljs-builtin-name,.hljs-tomorrow-night .hljs-literal,.hljs-tomorrow-night .hljs-type,.hljs-tomorrow-night .hljs-params,.hljs-tomorrow-night .hljs-meta,.hljs-tomorrow-night .hljs-link{color:#de935f;}.hljs-tomorrow-night .hljs-attribute{color:#f0c674;}.hljs-tomorrow-night .hljs-string,.hljs-tomorrow-night .hljs-symbol,.hljs-tomorrow-night .hljs-bullet,.hljs-tomorrow-night .hljs-addition{color:#b5bd68;}.hljs-tomorrow-night .hljs-title,.hljs-tomorrow-night .hljs-section{color:#81a2be;}.hljs-tomorrow-night .hljs-keyword,.hljs-tomorrow-night .hljs-selector-tag{color:#b294bb;}.hljs-tomorrow-night .hljs{display:block;overflow-x:auto;background:#1d1f21;color:#c5c8c6;padding:0.5em;}.hljs-tomorrow-night .hljs-emphasis{font-style:italic;}.hljs-tomorrow-night .hljs-strong{font-weight:bold;}","tomorrow":".hljs-tomorrow{}.hljs-tomorrow .hljs-comment,.hljs-tomorrow .hljs-quote{color:#8e908c;}.hljs-tomorrow .hljs-variable,.hljs-tomorrow .hljs-template-variable,.hljs-tomorrow .hljs-tag,.hljs-tomorrow .hljs-name,.hljs-tomorrow .hljs-selector-id,.hljs-tomorrow .hljs-selector-class,.hljs-tomorrow .hljs-regexp,.hljs-tomorrow .hljs-deletion{color:#c82829;}.hljs-tomorrow .hljs-number,.hljs-tomorrow .hljs-built_in,.hljs-tomorrow .hljs-builtin-name,.hljs-tomorrow .hljs-literal,.hljs-tomorrow .hljs-type,.hljs-tomorrow .hljs-params,.hljs-tomorrow .hljs-meta,.hljs-tomorrow .hljs-link{color:#f5871f;}.hljs-tomorrow .hljs-attribute{color:#eab700;}.hljs-tomorrow .hljs-string,.hljs-tomorrow .hljs-symbol,.hljs-tomorrow .hljs-bullet,.hljs-tomorrow .hljs-addition{color:#718c00;}.hljs-tomorrow .hljs-title,.hljs-tomorrow .hljs-section{color:#4271ae;}.hljs-tomorrow .hljs-keyword,.hljs-tomorrow .hljs-selector-tag{color:#8959a8;}.hljs-tomorrow .hljs{display:block;overflow-x:auto;background:white;color:#4d4d4c;padding:0.5em;}.hljs-tomorrow .hljs-emphasis{font-style:italic;}.hljs-tomorrow .hljs-strong{font-weight:bold;}","vs":".hljs-vs{}.hljs-vs .hljs{display:block;overflow-x:auto;padding:0.5em;background:white;color:black;}.hljs-vs .hljs-comment,.hljs-vs .hljs-quote,.hljs-vs .hljs-variable{color:#008000;}.hljs-vs .hljs-keyword,.hljs-vs .hljs-selector-tag,.hljs-vs .hljs-built_in,.hljs-vs .hljs-name,.hljs-vs .hljs-tag{color:#00f;}.hljs-vs .hljs-string,.hljs-vs .hljs-title,.hljs-vs .hljs-section,.hljs-vs .hljs-attribute,.hljs-vs .hljs-literal,.hljs-vs .hljs-template-tag,.hljs-vs .hljs-template-variable,.hljs-vs .hljs-type,.hljs-vs .hljs-addition{color:#a31515;}.hljs-vs .hljs-deletion,.hljs-vs .hljs-selector-attr,.hljs-vs .hljs-selector-pseudo,.hljs-vs .hljs-meta{color:#2b91af;}.hljs-vs .hljs-doctag{color:#808080;}.hljs-vs .hljs-attr{color:#f00;}.hljs-vs .hljs-symbol,.hljs-vs .hljs-bullet,.hljs-vs .hljs-link{color:#00b0e8;}.hljs-vs .hljs-emphasis{font-style:italic;}.hljs-vs .hljs-strong{font-weight:bold;}","xcode":".hljs-xcode{}.hljs-xcode .hljs{display:block;overflow-x:auto;padding:0.5em;background:#fff;color:black;}.hljs-xcode .hljs-comment,.hljs-xcode .hljs-quote{color:#006a00;}.hljs-xcode .hljs-keyword,.hljs-xcode .hljs-selector-tag,.hljs-xcode .hljs-literal{color:#aa0d91;}.hljs-xcode .hljs-name{color:#008;}.hljs-xcode .hljs-variable,.hljs-xcode .hljs-template-variable{color:#660;}.hljs-xcode .hljs-string{color:#c41a16;}.hljs-xcode .hljs-regexp,.hljs-xcode .hljs-link{color:#080;}.hljs-xcode .hljs-title,.hljs-xcode .hljs-tag,.hljs-xcode .hljs-symbol,.hljs-xcode .hljs-bullet,.hljs-xcode .hljs-number,.hljs-xcode .hljs-meta{color:#1c00cf;}.hljs-xcode .hljs-section,.hljs-xcode .hljs-class .hljs-title,.hljs-xcode .hljs-type,.hljs-xcode .hljs-attr,.hljs-xcode .hljs-built_in,.hljs-xcode .hljs-builtin-name,.hljs-xcode .hljs-params{color:#5c2699;}.hljs-xcode .hljs-attribute,.hljs-xcode .hljs-subst{color:#000;}.hljs-xcode .hljs-formula{background-color:#eee;font-style:italic;}.hljs-xcode .hljs-addition{background-color:#baeeba;}.hljs-xcode .hljs-deletion{background-color:#ffc8bd;}.hljs-xcode .hljs-selector-id,.hljs-xcode .hljs-selector-class{color:#9b703f;}.hljs-xcode .hljs-doctag,.hljs-xcode .hljs-strong{font-weight:bold;}.hljs-xcode .hljs-emphasis{font-style:italic;}","zenburn":".hljs-zenburn{}.hljs-zenburn .hljs{display:block;overflow-x:auto;padding:0.5em;background:#3f3f3f;color:#dcdcdc;}.hljs-zenburn .hljs-keyword,.hljs-zenburn .hljs-selector-tag,.hljs-zenburn .hljs-tag{color:#e3ceab;}.hljs-zenburn .hljs-template-tag{color:#dcdcdc;}.hljs-zenburn .hljs-number{color:#8cd0d3;}.hljs-zenburn .hljs-variable,.hljs-zenburn .hljs-template-variable,.hljs-zenburn .hljs-attribute{color:#efdcbc;}.hljs-zenburn .hljs-literal{color:#efefaf;}.hljs-zenburn .hljs-subst{color:#8f8f8f;}.hljs-zenburn .hljs-title,.hljs-zenburn .hljs-name,.hljs-zenburn .hljs-selector-id,.hljs-zenburn .hljs-selector-class,.hljs-zenburn .hljs-section,.hljs-zenburn .hljs-type{color:#efef8f;}.hljs-zenburn .hljs-symbol,.hljs-zenburn .hljs-bullet,.hljs-zenburn .hljs-link{color:#dca3a3;}.hljs-zenburn .hljs-deletion,.hljs-zenburn .hljs-string,.hljs-zenburn .hljs-built_in,.hljs-zenburn .hljs-builtin-name{color:#cc9393;}.hljs-zenburn .hljs-addition,.hljs-zenburn .hljs-comment,.hljs-zenburn .hljs-quote,.hljs-zenburn .hljs-meta{color:#7f9f7f;}.hljs-zenburn .hljs-emphasis{font-style:italic;}.hljs-zenburn .hljs-strong{font-weight:bold;}"},
15473 engine: hljs
15474};
15475
15476})()
15477},{}],8:[function(require,module,exports){
15478exports.addClass = function (element, className) {
15479 element.className = exports.getClasses(element)
15480 .concat([className])
15481 .join(' ');
15482};
15483
15484exports.removeClass = function (element, className) {
15485 element.className = exports.getClasses(element)
15486 .filter(function (klass) { return klass !== className; })
15487 .join(' ');
15488};
15489
15490exports.toggleClass = function (element, className) {
15491 var classes = exports.getClasses(element),
15492 index = classes.indexOf(className);
15493
15494 if (index !== -1) {
15495 classes.splice(index, 1);
15496 }
15497 else {
15498 classes.push(className);
15499 }
15500
15501 element.className = classes.join(' ');
15502};
15503
15504exports.getClasses = function (element) {
15505 return element.className
15506 .split(' ')
15507 .filter(function (s) { return s !== ''; });
15508};
15509
15510exports.hasClass = function (element, className) {
15511 return exports.getClasses(element).indexOf(className) !== -1;
15512};
15513
15514exports.getPrefixedProperty = function (element, propertyName) {
15515 var capitalizedPropertName = propertyName[0].toUpperCase() +
15516 propertyName.slice(1);
15517
15518 return element[propertyName] || element['moz' + capitalizedPropertName] ||
15519 element['webkit' + capitalizedPropertName];
15520};
15521
15522},{}],4:[function(require,module,exports){
15523var EventEmitter = require('events').EventEmitter
15524 , highlighter = require('./highlighter')
15525 , converter = require('./converter')
15526 , resources = require('./resources')
15527 , Parser = require('./parser')
15528 , Slideshow = require('./models/slideshow')
15529 , SlideshowView = require('./views/slideshowView')
15530 , DefaultController = require('./controllers/defaultController')
15531 , Dom = require('./dom')
15532 , macros = require('./macros')
15533 ;
15534
15535module.exports = Api;
15536
15537function Api (dom) {
15538 this.dom = dom || new Dom();
15539 this.macros = macros;
15540 this.version = resources.version;
15541}
15542
15543// Expose highlighter to allow enumerating available styles and
15544// including external language grammars
15545Api.prototype.highlighter = highlighter;
15546
15547Api.prototype.convert = function (markdown) {
15548 var parser = new Parser()
15549 , content = parser.parse(markdown || '', macros)[0].content
15550 ;
15551
15552 return converter.convertMarkdown(content, {}, true);
15553};
15554
15555// Creates slideshow initialized from options
15556Api.prototype.create = function (options) {
15557 var events
15558 , slideshow
15559 , slideshowView
15560 , controller
15561 ;
15562
15563 options = applyDefaults(this.dom, options);
15564
15565 events = new EventEmitter();
15566 events.setMaxListeners(0);
15567
15568 slideshow = new Slideshow(events, options);
15569 slideshowView = new SlideshowView(events, this.dom, options.container, slideshow);
15570 controller = options.controller || new DefaultController(events, this.dom, slideshowView, options.navigation);
15571
15572 return slideshow;
15573};
15574
15575function applyDefaults (dom, options) {
15576 var sourceElement;
15577
15578 options = options || {};
15579
15580 if (options.hasOwnProperty('sourceUrl')) {
15581 var req = new dom.XMLHttpRequest();
15582 req.open('GET', options.sourceUrl, false);
15583 req.send();
15584 options.source = req.responseText.replace(/\r\n/g, '\n');
15585 }
15586 else if (!options.hasOwnProperty('source')) {
15587 sourceElement = dom.getElementById('source');
15588 if (sourceElement) {
15589 options.source = unescape(sourceElement.innerHTML);
15590 sourceElement.style.display = 'none';
15591 }
15592 }
15593
15594 if (!(options.container instanceof window.HTMLElement)) {
15595 options.container = dom.getBodyElement();
15596 }
15597
15598 return options;
15599}
15600
15601function unescape (source) {
15602 source = source.replace(/&[l|g]t;/g,
15603 function (match) {
15604 return match === '&lt;' ? '<' : '>';
15605 });
15606
15607 source = source.replace(/&amp;/g, '&');
15608 source = source.replace(/&quot;/g, '"');
15609
15610 return source;
15611}
15612
15613},{"events":1,"./highlighter":7,"./converter":9,"./resources":6,"./parser":10,"./models/slideshow":11,"./views/slideshowView":12,"./controllers/defaultController":13,"./dom":14,"./macros":15}],14:[function(require,module,exports){
15614module.exports = Dom;
15615
15616function Dom () { }
15617
15618Dom.prototype.XMLHttpRequest = XMLHttpRequest;
15619
15620Dom.prototype.getHTMLElement = function () {
15621 return document.getElementsByTagName('html')[0];
15622};
15623
15624Dom.prototype.getBodyElement = function () {
15625 return document.body;
15626};
15627
15628Dom.prototype.getElementById = function (id) {
15629 return document.getElementById(id);
15630};
15631
15632Dom.prototype.getLocationHash = function () {
15633 return window.location.hash;
15634};
15635
15636Dom.prototype.setLocationHash = function (hash) {
15637 if (typeof window.history.replaceState === 'function' && document.origin !== 'null') {
15638 window.history.replaceState(undefined, undefined, hash);
15639 }
15640 else {
15641 window.location.hash = hash;
15642 }
15643};
15644
15645},{}],15:[function(require,module,exports){
15646var macros = module.exports = {};
15647
15648macros.hello = function () {
15649 return 'hello!';
15650};
15651
15652},{}],10:[function(require,module,exports){
15653(function(){var Lexer = require('./lexer');
15654
15655module.exports = Parser;
15656
15657function Parser () { }
15658
15659/*
15660 * Parses source string into list of slides.
15661 *
15662 * Output format:
15663 *
15664 * [
15665 * // Per slide
15666 * {
15667 * // Properties
15668 * properties: {
15669 * name: 'value'
15670 * },
15671 * // Notes (optional, same format as content list)
15672 * notes: [...],
15673 * // Link definitions
15674 * links: {
15675 * id: { href: 'url', title: 'optional title' },
15676 * ...
15677 * ],
15678 * content: [
15679 * // Any content but content classes are represented as strings
15680 * 'plain text ',
15681 * // Content classes are represented as objects
15682 * { block: false, class: 'the-class', content: [...] },
15683 * { block: true, class: 'the-class', content: [...] },
15684 * ...
15685 * ]
15686 * },
15687 * ...
15688 * ]
15689 */
15690Parser.prototype.parse = function (src, macros) {
15691 var self = this,
15692 lexer = new Lexer(),
15693 tokens = lexer.lex(cleanInput(src)),
15694 slides = [],
15695
15696 // The last item on the stack contains the current slide or
15697 // content class we're currently appending content to.
15698 stack = [createSlide()];
15699
15700 macros = macros || {};
15701
15702 tokens.forEach(function (token) {
15703 switch (token.type) {
15704 case 'text':
15705 case 'code':
15706 case 'fences':
15707 // Text, code and fenced code tokens are appended to their
15708 // respective parents as string literals, and are only included
15709 // in the parse process in order to reason about structure
15710 // (like ignoring a slide separator inside fenced code).
15711 appendTo(stack[stack.length - 1], token.text);
15712 break;
15713 case 'def':
15714 // Link definition
15715 stack[0].links[token.id] = {
15716 href: token.href,
15717 title: token.title
15718 };
15719 break;
15720 case 'macro':
15721 // Macro
15722 var macro = macros[token.name];
15723 if (typeof macro !== 'function') {
15724 throw new Error('Macro "' + token.name + '" not found. ' +
15725 'You need to define macro using remark.macros[\'' +
15726 token.name + '\'] = function () { ... };');
15727 }
15728 var value = macro.apply(token.obj, token.args);
15729 if (typeof value === 'string') {
15730 value = self.parse(value, macros);
15731 appendTo(stack[stack.length - 1], value[0].content[0]);
15732 }
15733 else {
15734 appendTo(stack[stack.length - 1], value === undefined ?
15735 '' : value.toString());
15736 }
15737 break;
15738 case 'content_start':
15739 // Entering content class, so create stack entry for appending
15740 // upcoming content to.
15741 //
15742 // Lexer handles open/close bracket balance, so there's no need
15743 // to worry about there being a matching closing bracket.
15744 stack.push(createContentClass(token));
15745 break;
15746 case 'content_end':
15747 // Exiting content class, so remove entry from stack and
15748 // append to previous item (outer content class or slide).
15749 appendTo(stack[stack.length - 2], stack[stack.length - 1]);
15750 stack.pop();
15751 break;
15752 case 'separator':
15753 // Slide separator (--- or --), so add current slide to list of
15754 // slides and re-initialize stack with new, blank slide.
15755 slides.push(stack[0]);
15756 stack = [createSlide()];
15757 // Tag the new slide as a continued slide if the separator
15758 // used was -- instead of --- (2 vs. 3 dashes).
15759 stack[0].properties.continued = (token.text === '--').toString();
15760 break;
15761 case 'notes_separator':
15762 // Notes separator (???), so create empty content list on slide
15763 // in which all remaining slide content will be put.
15764 stack[0].notes = [];
15765 break;
15766 }
15767 });
15768
15769 // Push current slide to list of slides.
15770 slides.push(stack[0]);
15771
15772 slides.forEach(function (slide) {
15773 slide.content[0] = extractProperties(slide.content[0] || '', slide.properties);
15774 });
15775
15776 return slides.filter(function (slide) {
15777 var exclude = (slide.properties.exclude || '').toLowerCase();
15778
15779 if (exclude === 'true') {
15780 return false;
15781 }
15782
15783 return true;
15784 });
15785};
15786
15787function createSlide () {
15788 return {
15789 content: [],
15790 properties: {
15791 continued: 'false'
15792 },
15793 links: {}
15794 };
15795}
15796
15797function createContentClass (token) {
15798 return {
15799 class: token.classes.join(' '),
15800 block: token.block,
15801 content: []
15802 };
15803}
15804
15805function appendTo (element, content) {
15806 var target = element.content;
15807
15808 if (element.notes !== undefined) {
15809 target = element.notes;
15810 }
15811
15812 // If two string are added after one another, we can just as well
15813 // go ahead and concatenate them into a single string.
15814 var lastIdx = target.length - 1;
15815 if (typeof target[lastIdx] === 'string' && typeof content === 'string') {
15816 target[lastIdx] += content;
15817 }
15818 else {
15819 target.push(content);
15820 }
15821}
15822
15823function extractProperties (source, properties) {
15824 var propertyFinder = /^\n*([-\w]+):([^$\n]*)|\n*(?:<!--\s*)([-\w]+):([^$\n]*?)(?:\s*-->)/i
15825 , match
15826 ;
15827
15828 while ((match = propertyFinder.exec(source)) !== null) {
15829 source = source.substr(0, match.index) +
15830 source.substr(match.index + match[0].length);
15831
15832 if (match[1] !== undefined) {
15833 properties[match[1].trim()] = match[2].trim();
15834 }
15835 else {
15836 properties[match[3].trim()] = match[4].trim();
15837 }
15838
15839 propertyFinder.lastIndex = match.index;
15840 }
15841
15842 return source;
15843}
15844
15845function cleanInput(source) {
15846 // If all lines are indented, we should trim them all to the same point so that code doesn't
15847 // need to start at column 0 in the source (see GitHub Issue #105)
15848
15849 // Helper to extract captures from the regex
15850 var getMatchCaptures = function (source, pattern) {
15851 var results = [], match;
15852 while ((match = pattern.exec(source)) !== null)
15853 results.push(match[1]);
15854 return results;
15855 };
15856
15857 // Calculate the minimum leading whitespace
15858 // Ensure there's at least one char that's not newline nor whitespace to ignore empty and blank lines
15859 var leadingWhitespacePattern = /^([ \t]*)[^ \t\n]/gm;
15860 var whitespace = getMatchCaptures(source, leadingWhitespacePattern).map(function (s) { return s.length; });
15861 var minWhitespace = Math.min.apply(Math, whitespace);
15862
15863 // Trim off the exact amount of whitespace, or less for blank lines (non-empty)
15864 var trimWhitespacePattern = new RegExp('^[ \\t]{0,' + minWhitespace + '}', 'gm');
15865 return source.replace(trimWhitespacePattern, '');
15866}
15867
15868})()
15869},{"./lexer":16}],11:[function(require,module,exports){
15870var Navigation = require('./slideshow/navigation')
15871 , Events = require('./slideshow/events')
15872 , utils = require('../utils')
15873 , Slide = require('./slide')
15874 , Parser = require('../parser')
15875 , macros = require('../macros')
15876 ;
15877
15878module.exports = Slideshow;
15879
15880function Slideshow (events, options) {
15881 var self = this
15882 , slides = []
15883 , links = {}
15884 ;
15885
15886 options = options || {};
15887
15888 // Extend slideshow functionality
15889 Events.call(self, events);
15890 Navigation.call(self, events);
15891
15892 self.loadFromString = loadFromString;
15893 self.update = update;
15894 self.getLinks = getLinks;
15895 self.getSlides = getSlides;
15896 self.getSlideCount = getSlideCount;
15897 self.getSlideByName = getSlideByName;
15898
15899 self.togglePresenterMode = togglePresenterMode;
15900 self.toggleHelp = toggleHelp;
15901 self.toggleBlackout = toggleBlackout;
15902 self.toggleMirrored = toggleMirrored;
15903 self.toggleFullscreen = toggleFullscreen;
15904 self.createClone = createClone;
15905
15906 self.resetTimer = resetTimer;
15907
15908 self.getRatio = getOrDefault('ratio', '4:3');
15909 self.getHighlightStyle = getOrDefault('highlightStyle', 'default');
15910 self.getHighlightLines = getOrDefault('highlightLines', false);
15911 self.getHighlightSpans = getOrDefault('highlightSpans', false);
15912 self.getHighlightLanguage = getOrDefault('highlightLanguage', '');
15913 self.getSlideNumberFormat = getOrDefault('slideNumberFormat', '%current% / %total%');
15914
15915 loadFromString(options.source);
15916
15917 events.on('toggleBlackout', function () {
15918 if (self.clone && !self.clone.closed) {
15919 self.clone.postMessage('toggleBlackout', '*');
15920 }
15921 });
15922
15923 function loadFromString (source) {
15924 source = source || '';
15925
15926 slides = createSlides(source, options);
15927 expandVariables(slides);
15928
15929 links = {};
15930 slides.forEach(function (slide) {
15931 for (var id in slide.links) {
15932 if (slide.links.hasOwnProperty(id)) {
15933 links[id] = slide.links[id];
15934 }
15935 }
15936 });
15937
15938 events.emit('slidesChanged');
15939 }
15940
15941 function update () {
15942 events.emit('resize');
15943 }
15944
15945 function getLinks () {
15946 return links;
15947 }
15948
15949 function getSlides () {
15950 return slides.map(function (slide) { return slide; });
15951 }
15952
15953 function getSlideCount () {
15954 return slides.length;
15955 }
15956
15957 function getSlideByName (name) {
15958 return slides.byName[name];
15959 }
15960
15961 function togglePresenterMode () {
15962 events.emit('togglePresenterMode');
15963 }
15964
15965 function toggleHelp () {
15966 events.emit('toggleHelp');
15967 }
15968
15969 function toggleBlackout () {
15970 events.emit('toggleBlackout');
15971 }
15972
15973 function toggleMirrored() {
15974 events.emit('toggleMirrored');
15975 }
15976
15977 function toggleFullscreen () {
15978 events.emit('toggleFullscreen');
15979 }
15980
15981 function createClone () {
15982 events.emit('createClone');
15983 }
15984
15985 function resetTimer () {
15986 events.emit('resetTimer');
15987 }
15988
15989 function getOrDefault (key, defaultValue) {
15990 return function () {
15991 if (options[key] === undefined) {
15992 return defaultValue;
15993 }
15994
15995 return options[key];
15996 };
15997 }
15998}
15999
16000function createSlides (slideshowSource, options) {
16001 var parser = new Parser()
16002 , parsedSlides = parser.parse(slideshowSource, macros)
16003 , slides = []
16004 , byName = {}
16005 , layoutSlide
16006 ;
16007
16008 slides.byName = {};
16009
16010 parsedSlides.forEach(function (slide, i) {
16011 var template, slideViewModel;
16012
16013 if (slide.properties.continued === 'true' && i > 0) {
16014 template = slides[slides.length - 1];
16015 }
16016 else if (byName[slide.properties.template]) {
16017 template = byName[slide.properties.template];
16018 }
16019 else if (slide.properties.layout === 'false') {
16020 layoutSlide = undefined;
16021 }
16022 else if (layoutSlide && slide.properties.layout !== 'true') {
16023 template = layoutSlide;
16024 }
16025
16026 if (slide.properties.continued === 'true' &&
16027 options.countIncrementalSlides === false &&
16028 slide.properties.count === undefined) {
16029 slide.properties.count = 'false';
16030 }
16031
16032 slideViewModel = new Slide(slides.length, slide, template);
16033
16034 if (slide.properties.layout === 'true') {
16035 layoutSlide = slideViewModel;
16036 }
16037
16038 if (slide.properties.name) {
16039 byName[slide.properties.name] = slideViewModel;
16040 }
16041
16042 if (slide.properties.layout !== 'true') {
16043 slides.push(slideViewModel);
16044 if (slide.properties.name) {
16045 slides.byName[slide.properties.name] = slideViewModel;
16046 }
16047 }
16048 });
16049
16050 return slides;
16051}
16052
16053function expandVariables (slides) {
16054 slides.forEach(function (slide) {
16055 slide.expandVariables();
16056 });
16057}
16058
16059},{"./slideshow/navigation":17,"../utils":8,"./slide":18,"./slideshow/events":19,"../parser":10,"../macros":15}],12:[function(require,module,exports){
16060var SlideView = require('./slideView')
16061 , Timer = require('components/timer')
16062 , NotesView = require('./notesView')
16063 , Scaler = require('../scaler')
16064 , resources = require('../resources')
16065 , utils = require('../utils')
16066 , printing = require('components/printing')
16067 ;
16068
16069module.exports = SlideshowView;
16070
16071function SlideshowView (events, dom, containerElement, slideshow) {
16072 var self = this;
16073
16074 self.events = events;
16075 self.dom = dom;
16076 self.slideshow = slideshow;
16077 self.scaler = new Scaler(events, slideshow);
16078 self.slideViews = [];
16079
16080 self.configureContainerElement(containerElement);
16081 self.configureChildElements();
16082
16083 self.updateDimensions();
16084 self.scaleElements();
16085 self.updateSlideViews();
16086
16087 self.timer = new Timer(events, self.timerElement);
16088
16089 events.on('slidesChanged', function () {
16090 self.updateSlideViews();
16091 });
16092
16093 events.on('hideSlide', function (slideIndex) {
16094 // To make sure that there is only one element fading at a time,
16095 // remove the fading class from all slides before hiding
16096 // the new slide.
16097 self.elementArea.getElementsByClassName('remark-fading').forEach(function (slide) {
16098 utils.removeClass(slide, 'remark-fading');
16099 });
16100 self.hideSlide(slideIndex);
16101 });
16102
16103 events.on('showSlide', function (slideIndex) {
16104 self.showSlide(slideIndex);
16105 });
16106
16107 events.on('forcePresenterMode', function () {
16108
16109 if (!utils.hasClass(self.containerElement, 'remark-presenter-mode')) {
16110 utils.toggleClass(self.containerElement, 'remark-presenter-mode');
16111 self.scaleElements();
16112 printing.setPageOrientation('landscape');
16113 }
16114 });
16115
16116 events.on('togglePresenterMode', function () {
16117 utils.toggleClass(self.containerElement, 'remark-presenter-mode');
16118 self.scaleElements();
16119 events.emit('toggledPresenter', self.slideshow.getCurrentSlideIndex() + 1);
16120
16121 if (utils.hasClass(self.containerElement, 'remark-presenter-mode')) {
16122 printing.setPageOrientation('portrait');
16123 }
16124 else {
16125 printing.setPageOrientation('landscape');
16126 }
16127 });
16128
16129 events.on('toggleHelp', function () {
16130 utils.toggleClass(self.containerElement, 'remark-help-mode');
16131 });
16132
16133 events.on('toggleBlackout', function () {
16134 utils.toggleClass(self.containerElement, 'remark-blackout-mode');
16135 });
16136
16137 events.on('toggleMirrored', function () {
16138 utils.toggleClass(self.containerElement, 'remark-mirrored-mode');
16139 });
16140
16141 events.on('hideOverlay', function () {
16142 utils.removeClass(self.containerElement, 'remark-blackout-mode');
16143 utils.removeClass(self.containerElement, 'remark-help-mode');
16144 });
16145
16146 events.on('pause', function () {
16147 utils.toggleClass(self.containerElement, 'remark-pause-mode');
16148 });
16149
16150 events.on('resume', function () {
16151 utils.toggleClass(self.containerElement, 'remark-pause-mode');
16152 });
16153
16154 handleFullscreen(self);
16155}
16156
16157function handleFullscreen(self) {
16158 var requestFullscreen = utils.getPrefixedProperty(self.containerElement, 'requestFullScreen')
16159 , cancelFullscreen = utils.getPrefixedProperty(document, 'cancelFullScreen')
16160 ;
16161
16162 self.events.on('toggleFullscreen', function () {
16163 var fullscreenElement = utils.getPrefixedProperty(document, 'fullscreenElement') ||
16164 utils.getPrefixedProperty(document, 'fullScreenElement');
16165
16166 if (!fullscreenElement && requestFullscreen) {
16167 requestFullscreen.call(self.containerElement, Element.ALLOW_KEYBOARD_INPUT);
16168 }
16169 else if (cancelFullscreen) {
16170 cancelFullscreen.call(document);
16171 }
16172 self.scaleElements();
16173 });
16174}
16175
16176SlideshowView.prototype.isEmbedded = function () {
16177 return this.containerElement !== this.dom.getBodyElement();
16178};
16179
16180SlideshowView.prototype.configureContainerElement = function (element) {
16181 var self = this;
16182
16183 self.containerElement = element;
16184
16185 utils.addClass(element, 'remark-container');
16186
16187 if (element === self.dom.getBodyElement()) {
16188 utils.addClass(self.dom.getHTMLElement(), 'remark-container');
16189
16190 forwardEvents(self.events, window, [
16191 'hashchange', 'resize', 'keydown', 'keypress', 'mousewheel',
16192 'message', 'DOMMouseScroll'
16193 ]);
16194 forwardEvents(self.events, self.containerElement, [
16195 'touchstart', 'touchmove', 'touchend', 'click', 'contextmenu'
16196 ]);
16197 }
16198 else {
16199 element.style.position = 'absolute';
16200 element.tabIndex = -1;
16201
16202 forwardEvents(self.events, window, ['resize']);
16203 forwardEvents(self.events, element, [
16204 'keydown', 'keypress', 'mousewheel',
16205 'touchstart', 'touchmove', 'touchend'
16206 ]);
16207 }
16208
16209 // Tap event is handled in slideshow view
16210 // rather than controller as knowledge of
16211 // container width is needed to determine
16212 // whether to move backwards or forwards
16213 self.events.on('tap', function (endX) {
16214 if (endX < self.containerElement.clientWidth / 2) {
16215 self.slideshow.gotoPreviousSlide();
16216 }
16217 else {
16218 self.slideshow.gotoNextSlide();
16219 }
16220 });
16221};
16222
16223function forwardEvents (target, source, events) {
16224 events.forEach(function (eventName) {
16225 source.addEventListener(eventName, function () {
16226 var args = Array.prototype.slice.call(arguments);
16227 target.emit.apply(target, [eventName].concat(args));
16228 });
16229 });
16230}
16231
16232SlideshowView.prototype.configureChildElements = function () {
16233 var self = this;
16234
16235 self.containerElement.innerHTML += resources.containerLayout;
16236
16237 self.elementArea = self.containerElement.getElementsByClassName('remark-slides-area')[0];
16238 self.previewArea = self.containerElement.getElementsByClassName('remark-preview-area')[0];
16239 self.notesArea = self.containerElement.getElementsByClassName('remark-notes-area')[0];
16240
16241 self.notesView = new NotesView (self.events, self.notesArea, function () {
16242 return self.slideViews;
16243 });
16244
16245 self.backdropElement = self.containerElement.getElementsByClassName('remark-backdrop')[0];
16246 self.helpElement = self.containerElement.getElementsByClassName('remark-help')[0];
16247
16248 self.timerElement = self.notesArea.getElementsByClassName('remark-toolbar-timer')[0];
16249 self.pauseElement = self.containerElement.getElementsByClassName('remark-pause')[0];
16250
16251 self.events.on('propertiesChanged', function (changes) {
16252 if (changes.hasOwnProperty('ratio')) {
16253 self.updateDimensions();
16254 }
16255 });
16256
16257 self.events.on('resize', onResize);
16258
16259 printing.init();
16260 printing.on('print', onPrint);
16261
16262 function onResize () {
16263 self.scaleElements();
16264 }
16265
16266 function onPrint (e) {
16267 var slideHeight;
16268
16269 if (e.isPortrait) {
16270 slideHeight = e.pageHeight * 0.4;
16271 }
16272 else {
16273 slideHeight = e.pageHeight;
16274 }
16275
16276 self.slideViews.forEach(function (slideView) {
16277 slideView.scale({
16278 clientWidth: e.pageWidth,
16279 clientHeight: slideHeight
16280 });
16281
16282 if (e.isPortrait) {
16283 slideView.scalingElement.style.top = '20px';
16284 slideView.notesElement.style.top = slideHeight + 40 + 'px';
16285 }
16286 });
16287 }
16288};
16289
16290SlideshowView.prototype.updateSlideViews = function () {
16291 var self = this;
16292
16293 self.slideViews.forEach(function (slideView) {
16294 self.elementArea.removeChild(slideView.containerElement);
16295 });
16296
16297 self.slideViews = self.slideshow.getSlides().map(function (slide) {
16298 return new SlideView(self.events, self.slideshow, self.scaler, slide);
16299 });
16300
16301 self.slideViews.forEach(function (slideView) {
16302 self.elementArea.appendChild(slideView.containerElement);
16303 });
16304
16305 self.updateDimensions();
16306
16307 if (self.slideshow.getCurrentSlideIndex() > -1) {
16308 self.showSlide(self.slideshow.getCurrentSlideIndex());
16309 }
16310};
16311
16312SlideshowView.prototype.scaleSlideBackgroundImages = function (dimensions) {
16313 var self = this;
16314
16315 self.slideViews.forEach(function (slideView) {
16316 slideView.scaleBackgroundImage(dimensions);
16317 });
16318};
16319
16320SlideshowView.prototype.showSlide = function (slideIndex) {
16321 var self = this
16322 , slideView = self.slideViews[slideIndex]
16323 , nextSlideView = self.slideViews[slideIndex + 1]
16324 ;
16325
16326 self.events.emit("beforeShowSlide", slideIndex);
16327
16328 slideView.show();
16329
16330 if (nextSlideView) {
16331 self.previewArea.innerHTML = nextSlideView.containerElement.outerHTML;
16332 }
16333 else {
16334 self.previewArea.innerHTML = '';
16335 }
16336
16337 self.events.emit("afterShowSlide", slideIndex);
16338};
16339
16340SlideshowView.prototype.hideSlide = function (slideIndex) {
16341 var self = this
16342 , slideView = self.slideViews[slideIndex]
16343 ;
16344
16345 self.events.emit("beforeHideSlide", slideIndex);
16346 slideView.hide();
16347 self.events.emit("afterHideSlide", slideIndex);
16348
16349};
16350
16351SlideshowView.prototype.updateDimensions = function () {
16352 var self = this
16353 , dimensions = self.scaler.dimensions
16354 ;
16355
16356 self.helpElement.style.width = dimensions.width + 'px';
16357 self.helpElement.style.height = dimensions.height + 'px';
16358
16359 self.scaleSlideBackgroundImages(dimensions);
16360 self.scaleElements();
16361};
16362
16363SlideshowView.prototype.scaleElements = function () {
16364 var self = this;
16365
16366 self.slideViews.forEach(function (slideView) {
16367 slideView.scale(self.elementArea);
16368 });
16369
16370 if (self.previewArea.children.length) {
16371 self.scaler.scaleToFit(self.previewArea.children[0].children[0], self.previewArea);
16372 }
16373 self.scaler.scaleToFit(self.helpElement, self.containerElement);
16374 self.scaler.scaleToFit(self.pauseElement, self.containerElement);
16375};
16376
16377},{"components/timer":"GFo1Ae","components/printing":"yoGRCZ","./slideView":20,"./notesView":21,"../scaler":22,"../resources":6,"../utils":8}],13:[function(require,module,exports){
16378(function(){// Allow override of global `location`
16379/* global location:true */
16380
16381module.exports = Controller;
16382
16383var keyboard = require('./inputs/keyboard')
16384 , mouse = require('./inputs/mouse')
16385 , touch = require('./inputs/touch')
16386 , message = require('./inputs/message')
16387 , location = require('./inputs/location')
16388 ;
16389
16390function Controller (events, dom, slideshowView, options) {
16391 options = options || {};
16392
16393 message.register(events);
16394 location.register(events, dom, slideshowView);
16395 keyboard.register(events);
16396 mouse.register(events, options);
16397 touch.register(events, options);
16398
16399 addApiEventListeners(events, slideshowView, options);
16400}
16401
16402function addApiEventListeners(events, slideshowView, options) {
16403 events.on('pause', function(event) {
16404 keyboard.unregister(events);
16405 mouse.unregister(events);
16406 touch.unregister(events);
16407 });
16408
16409 events.on('resume', function(event) {
16410 keyboard.register(events);
16411 mouse.register(events, options);
16412 touch.register(events, options);
16413 });
16414}
16415
16416})()
16417},{"./inputs/keyboard":23,"./inputs/mouse":24,"./inputs/touch":25,"./inputs/message":26,"./inputs/location":27}],16:[function(require,module,exports){
16418module.exports = Lexer;
16419
16420var CODE = 1,
16421 INLINE_CODE = 2,
16422 CONTENT = 3,
16423 FENCES = 4,
16424 DEF = 5,
16425 DEF_HREF = 6,
16426 DEF_TITLE = 7,
16427 MACRO = 8,
16428 MACRO_ARGS = 9,
16429 MACRO_OBJ = 10,
16430 SEPARATOR = 11,
16431 NOTES_SEPARATOR = 12;
16432
16433var regexByName = {
16434 CODE: /(?:^|\n)( {4}[^\n]+\n*)+/,
16435 INLINE_CODE: /`([^`]+?)`/,
16436 CONTENT: /(?:\\)?((?:\.[a-zA-Z_\-][a-zA-Z\-_0-9]*)+)\[/,
16437 FENCES: /(?:^|\n) *(`{3,}|~{3,}) *(?:\S+)? *\n(?:[\s\S]+?)\s*\4 *(?:\n+|$)/,
16438 DEF: /(?:^|\n) *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +["(]([^\n]+)[")])? *(?:\n+|$)/,
16439 MACRO: /!\[:([^\] ]+)([^\]]*)\](?:\(([^\)]*)\))?/,
16440 SEPARATOR: /(?:^|\n)(---?)(?:\n|$)/,
16441 NOTES_SEPARATOR: /(?:^|\n)(\?{3})(?:\n|$)/
16442 };
16443
16444var block = replace(/CODE|INLINE_CODE|CONTENT|FENCES|DEF|MACRO|SEPARATOR|NOTES_SEPARATOR/, regexByName),
16445 inline = replace(/CODE|INLINE_CODE|CONTENT|FENCES|DEF|MACRO/, regexByName);
16446
16447function Lexer () { }
16448
16449Lexer.prototype.lex = function (src) {
16450 var tokens = lex(src, block),
16451 i;
16452
16453 for (i = tokens.length - 2; i >= 0; i--) {
16454 if (tokens[i].type === 'text' && tokens[i+1].type === 'text') {
16455 tokens[i].text += tokens[i+1].text;
16456 tokens.splice(i+1, 1);
16457 }
16458 }
16459
16460 return tokens;
16461};
16462
16463function lex (src, regex, tokens) {
16464 var cap, text;
16465
16466 tokens = tokens || [];
16467
16468 while ((cap = regex.exec(src)) !== null) {
16469 if (cap.index > 0) {
16470 tokens.push({
16471 type: 'text',
16472 text: src.substring(0, cap.index)
16473 });
16474 }
16475
16476 if (cap[CODE]) {
16477 tokens.push({
16478 type: 'code',
16479 text: cap[0]
16480 });
16481 }
16482 else if (cap[INLINE_CODE]) {
16483 tokens.push({
16484 type: 'text',
16485 text: cap[0]
16486 });
16487 }
16488 else if (cap[FENCES]) {
16489 tokens.push({
16490 type: 'fences',
16491 text: cap[0]
16492 });
16493 }
16494 else if (cap[DEF]) {
16495 tokens.push({
16496 type: 'def',
16497 id: cap[DEF],
16498 href: cap[DEF_HREF],
16499 title: cap[DEF_TITLE]
16500 });
16501 }
16502 else if (cap[MACRO]) {
16503 tokens.push({
16504 type: 'macro',
16505 name: cap[MACRO],
16506 args: (cap[MACRO_ARGS] || '').split(',').map(trim),
16507 obj: cap[MACRO_OBJ]
16508 });
16509 }
16510 else if (cap[SEPARATOR]) {
16511 tokens.push({
16512 type: 'separator',
16513 text: cap[SEPARATOR]
16514 });
16515 }
16516 else if (cap[NOTES_SEPARATOR]) {
16517 tokens.push({
16518 type: 'notes_separator',
16519 text: cap[NOTES_SEPARATOR]
16520 });
16521 }
16522 else if (cap[CONTENT]) {
16523 text = getTextInBrackets(src, cap.index + cap[0].length);
16524 if (text !== undefined) {
16525 src = src.substring(text.length + 1);
16526
16527 if (cap[0][0] !== '\\') {
16528 tokens.push({
16529 type: 'content_start',
16530 classes: cap[CONTENT].substring(1).split('.'),
16531 block: text.indexOf('\n') !== -1
16532 });
16533 lex(text, inline, tokens);
16534 tokens.push({
16535 type: 'content_end',
16536 block: text.indexOf('\n') !== -1
16537 });
16538 }
16539 else {
16540 tokens.push({
16541 type: 'text',
16542 text: cap[0].substring(1) + text + ']'
16543 });
16544 }
16545 }
16546 else {
16547 tokens.push({
16548 type: 'text',
16549 text: cap[0]
16550 });
16551 }
16552 }
16553
16554 src = src.substring(cap.index + cap[0].length);
16555 }
16556
16557 if (src || (!src && tokens.length === 0)) {
16558 tokens.push({
16559 type: 'text',
16560 text: src
16561 });
16562 }
16563
16564 return tokens;
16565}
16566
16567function replace (regex, replacements) {
16568 return new RegExp(regex.source.replace(/\w{2,}/g, function (key) {
16569 return replacements[key].source;
16570 }));
16571}
16572
16573function trim (text) {
16574 if (typeof text === 'string') {
16575 return text.trim();
16576 }
16577
16578 return text;
16579}
16580
16581function getTextInBrackets (src, offset) {
16582 var depth = 1,
16583 pos = offset,
16584 chr;
16585
16586 while (depth > 0 && pos < src.length) {
16587 chr = src[pos++];
16588 depth += (chr === '[' && 1) || (chr === ']' && -1) || 0;
16589 }
16590
16591 if (depth === 0) {
16592 src = src.substr(offset, pos - offset - 1);
16593 return src;
16594 }
16595}
16596
16597},{}],17:[function(require,module,exports){
16598module.exports = Navigation;
16599
16600function Navigation (events) {
16601 var self = this
16602 , currentSlideIndex = -1
16603 , started = null
16604 ;
16605
16606 self.getCurrentSlideIndex = getCurrentSlideIndex;
16607 self.gotoSlide = gotoSlide;
16608 self.gotoPreviousSlide = gotoPreviousSlide;
16609 self.gotoNextSlide = gotoNextSlide;
16610 self.gotoFirstSlide = gotoFirstSlide;
16611 self.gotoLastSlide = gotoLastSlide;
16612 self.pause = pause;
16613 self.resume = resume;
16614
16615 events.on('gotoSlide', gotoSlide);
16616 events.on('gotoPreviousSlide', gotoPreviousSlide);
16617 events.on('gotoNextSlide', gotoNextSlide);
16618 events.on('gotoFirstSlide', gotoFirstSlide);
16619 events.on('gotoLastSlide', gotoLastSlide);
16620
16621 events.on('slidesChanged', function () {
16622 if (currentSlideIndex > self.getSlideCount()) {
16623 currentSlideIndex = self.getSlideCount();
16624 }
16625 });
16626
16627 events.on('createClone', function () {
16628 if (!self.clone || self.clone.closed) {
16629 self.clone = window.open(location.href, '_blank', 'location=no');
16630 }
16631 else {
16632 self.clone.focus();
16633 }
16634 });
16635
16636 events.on('resetTimer', function() {
16637 started = false;
16638 });
16639
16640 function pause () {
16641 events.emit('pause');
16642 }
16643
16644 function resume () {
16645 events.emit('resume');
16646 }
16647
16648 function getCurrentSlideIndex () {
16649 return currentSlideIndex;
16650 }
16651
16652 function gotoSlideByIndex(slideIndex, noMessage) {
16653 var alreadyOnSlide = slideIndex === currentSlideIndex
16654 , slideOutOfRange = slideIndex < 0 || slideIndex > self.getSlideCount()-1
16655 ;
16656
16657 if (noMessage === undefined) noMessage = false;
16658
16659 if (alreadyOnSlide || slideOutOfRange) {
16660 return;
16661 }
16662
16663 if (currentSlideIndex !== -1) {
16664 events.emit('hideSlide', currentSlideIndex, false);
16665 }
16666
16667 // Use some tri-state logic here.
16668 // null = We haven't shown the first slide yet.
16669 // false = We've shown the initial slide, but we haven't progressed beyond that.
16670 // true = We've issued the first slide change command.
16671 if (started === null) {
16672 started = false;
16673 } else if (started === false) {
16674 // We've shown the initial slide previously - that means this is a
16675 // genuine move to a new slide.
16676 events.emit('start');
16677 started = true;
16678 }
16679
16680 events.emit('showSlide', slideIndex);
16681
16682 currentSlideIndex = slideIndex;
16683
16684 events.emit('slideChanged', slideIndex + 1);
16685
16686 if (!noMessage) {
16687 if (self.clone && !self.clone.closed) {
16688 self.clone.postMessage('gotoSlide:' + (currentSlideIndex + 1), '*');
16689 }
16690
16691 if (window.opener) {
16692 window.opener.postMessage('gotoSlide:' + (currentSlideIndex + 1), '*');
16693 }
16694 }
16695 }
16696
16697 function gotoSlide (slideNoOrName, noMessage) {
16698 var slideIndex = getSlideIndex(slideNoOrName);
16699
16700 gotoSlideByIndex(slideIndex, noMessage);
16701 }
16702
16703 function gotoPreviousSlide() {
16704 gotoSlideByIndex(currentSlideIndex - 1);
16705 }
16706
16707 function gotoNextSlide() {
16708 gotoSlideByIndex(currentSlideIndex + 1);
16709 }
16710
16711 function gotoFirstSlide () {
16712 gotoSlideByIndex(0);
16713 }
16714
16715 function gotoLastSlide () {
16716 gotoSlideByIndex(self.getSlideCount() - 1);
16717 }
16718
16719 function getSlideIndex (slideNoOrName) {
16720 var slideNo
16721 , slide
16722 ;
16723
16724 if (typeof slideNoOrName === 'number') {
16725 return slideNoOrName - 1;
16726 }
16727
16728 slideNo = parseInt(slideNoOrName, 10);
16729 if (slideNo.toString() === slideNoOrName) {
16730 return slideNo - 1;
16731 }
16732
16733 if(slideNoOrName.match(/^p\d+$/)){
16734 events.emit('forcePresenterMode');
16735 return parseInt(slideNoOrName.substr(1), 10)-1;
16736 }
16737
16738 slide = self.getSlideByName(slideNoOrName);
16739 if (slide) {
16740 return slide.getSlideIndex();
16741 }
16742
16743 return 0;
16744 }
16745}
16746
16747},{}],18:[function(require,module,exports){
16748module.exports = Slide;
16749
16750function Slide (slideIndex, slide, template) {
16751 var self = this;
16752
16753 self.properties = slide.properties || {};
16754 self.links = slide.links || {};
16755 self.content = slide.content || [];
16756 self.notes = slide.notes || '';
16757
16758 self.getSlideIndex = function () { return slideIndex; };
16759
16760 if (template) {
16761 inherit(self, template);
16762 }
16763}
16764
16765function inherit (slide, template) {
16766 inheritProperties(slide, template);
16767 inheritContent(slide, template);
16768 inheritNotes(slide, template);
16769}
16770
16771function inheritProperties (slide, template) {
16772 var property
16773 , value
16774 ;
16775
16776 for (property in template.properties) {
16777 if (!template.properties.hasOwnProperty(property) ||
16778 ignoreProperty(property)) {
16779 continue;
16780 }
16781
16782 value = [template.properties[property]];
16783
16784 if (property === 'class' && slide.properties[property]) {
16785 value.push(slide.properties[property]);
16786 }
16787
16788 if (property === 'class' || slide.properties[property] === undefined) {
16789 slide.properties[property] = value.join(', ');
16790 }
16791 }
16792}
16793
16794function ignoreProperty (property) {
16795 return property === 'name' ||
16796 property === 'layout' ||
16797 property === 'count';
16798}
16799
16800function inheritContent (slide, template) {
16801 var expandedVariables;
16802
16803 slide.properties.content = slide.content.slice();
16804 slide.content = template.content.slice();
16805
16806 expandedVariables = slide.expandVariables(/* contentOnly: */ true);
16807
16808 if (expandedVariables.content === undefined) {
16809 slide.content = slide.content.concat(slide.properties.content);
16810 }
16811
16812 delete slide.properties.content;
16813}
16814
16815function inheritNotes (slide, template) {
16816 if (template.notes) {
16817 slide.notes = template.notes + '\n\n' + slide.notes;
16818 }
16819}
16820
16821Slide.prototype.expandVariables = function (contentOnly, content, expandResult) {
16822 var properties = this.properties
16823 , i
16824 ;
16825
16826 content = content !== undefined ? content : this.content;
16827 expandResult = expandResult || {};
16828
16829 for (i = 0; i < content.length; ++i) {
16830 if (typeof content[i] === 'string') {
16831 content[i] = content[i].replace(/(\\)?(\{\{([^\}\n]+)\}\})/g, expand);
16832 }
16833 else {
16834 this.expandVariables(contentOnly, content[i].content, expandResult);
16835 }
16836 }
16837
16838 function expand (match, escaped, unescapedMatch, property) {
16839 var propertyName = property.trim()
16840 , propertyValue
16841 ;
16842
16843 if (escaped) {
16844 return contentOnly ? match[0] : unescapedMatch;
16845 }
16846
16847 if (contentOnly && propertyName !== 'content') {
16848 return match;
16849 }
16850
16851 propertyValue = properties[propertyName];
16852
16853 if (propertyValue !== undefined) {
16854 expandResult[propertyName] = propertyValue;
16855 return propertyValue;
16856 }
16857
16858 return propertyName === 'content' ? '' : unescapedMatch;
16859 }
16860
16861 return expandResult;
16862};
16863
16864},{}],19:[function(require,module,exports){
16865var EventEmitter = require('events').EventEmitter;
16866
16867module.exports = Events;
16868
16869function Events (events) {
16870 var self = this
16871 , externalEvents = new EventEmitter()
16872 ;
16873
16874 externalEvents.setMaxListeners(0);
16875
16876 self.on = function () {
16877 externalEvents.on.apply(externalEvents, arguments);
16878 return self;
16879 };
16880
16881 ['showSlide', 'hideSlide', 'beforeShowSlide', 'afterShowSlide', 'beforeHideSlide', 'afterHideSlide', 'toggledPresenter'].map(function (eventName) {
16882 events.on(eventName, function (slideIndex) {
16883 var slide = self.getSlides()[slideIndex];
16884 externalEvents.emit(eventName, slide);
16885 });
16886 });
16887}
16888
16889},{"events":1}],22:[function(require,module,exports){
16890var referenceWidth = 908
16891 , referenceHeight = 681
16892 , referenceRatio = referenceWidth / referenceHeight
16893 ;
16894
16895module.exports = Scaler;
16896
16897function Scaler (events, slideshow) {
16898 var self = this;
16899
16900 self.events = events;
16901 self.slideshow = slideshow;
16902 self.ratio = getRatio(slideshow);
16903 self.dimensions = getDimensions(self.ratio);
16904
16905 self.events.on('propertiesChanged', function (changes) {
16906 if (changes.hasOwnProperty('ratio')) {
16907 self.ratio = getRatio(slideshow);
16908 self.dimensions = getDimensions(self.ratio);
16909 }
16910 });
16911}
16912
16913Scaler.prototype.scaleToFit = function (element, container) {
16914 var self = this
16915 , containerHeight = container.clientHeight
16916 , containerWidth = container.clientWidth
16917 , scale
16918 , scaledWidth
16919 , scaledHeight
16920 , ratio = self.ratio
16921 , dimensions = self.dimensions
16922 , direction
16923 , left
16924 , top
16925 ;
16926
16927 if (containerWidth / ratio.width > containerHeight / ratio.height) {
16928 scale = containerHeight / dimensions.height;
16929 }
16930 else {
16931 scale = containerWidth / dimensions.width;
16932 }
16933
16934 scaledWidth = dimensions.width * scale;
16935 scaledHeight = dimensions.height * scale;
16936
16937 left = (containerWidth - scaledWidth) / 2;
16938 top = (containerHeight - scaledHeight) / 2;
16939
16940 element.style['-webkit-transform'] = 'scale(' + scale + ')';
16941 element.style.MozTransform = 'scale(' + scale + ')';
16942 element.style.left = Math.max(left, 0) + 'px';
16943 element.style.top = Math.max(top, 0) + 'px';
16944};
16945
16946function getRatio (slideshow) {
16947 var ratioComponents = slideshow.getRatio().split(':')
16948 , ratio
16949 ;
16950
16951 ratio = {
16952 width: parseInt(ratioComponents[0], 10)
16953 , height: parseInt(ratioComponents[1], 10)
16954 };
16955
16956 ratio.ratio = ratio.width / ratio.height;
16957
16958 return ratio;
16959}
16960
16961function getDimensions (ratio) {
16962 return {
16963 width: Math.floor(referenceWidth / referenceRatio * ratio.ratio)
16964 , height: referenceHeight
16965 };
16966}
16967
16968},{}],23:[function(require,module,exports){
16969exports.register = function (events) {
16970 addKeyboardEventListeners(events);
16971};
16972
16973exports.unregister = function (events) {
16974 removeKeyboardEventListeners(events);
16975};
16976
16977function addKeyboardEventListeners (events) {
16978 events.on('keydown', function (event) {
16979 if (event.metaKey || event.ctrlKey) {
16980 // Bail out if meta or ctrl key was pressed
16981 return;
16982 }
16983
16984 switch (event.keyCode) {
16985 case 33: // Page up
16986 case 37: // Left
16987 case 38: // Up
16988 events.emit('gotoPreviousSlide');
16989 break;
16990 case 32: // Space
16991 case 34: // Page down
16992 case 39: // Right
16993 case 40: // Down
16994 events.emit('gotoNextSlide');
16995 break;
16996 case 36: // Home
16997 events.emit('gotoFirstSlide');
16998 break;
16999 case 35: // End
17000 events.emit('gotoLastSlide');
17001 break;
17002 case 27: // Escape
17003 events.emit('hideOverlay');
17004 break;
17005 }
17006 });
17007
17008 events.on('keypress', function (event) {
17009 if (event.metaKey || event.ctrlKey) {
17010 // Bail out if meta or ctrl key was pressed
17011 return;
17012 }
17013
17014 switch (String.fromCharCode(event.which).toLowerCase()) {
17015 case 'j':
17016 events.emit('gotoNextSlide');
17017 break;
17018 case 'k':
17019 events.emit('gotoPreviousSlide');
17020 break;
17021 case 'b':
17022 events.emit('toggleBlackout');
17023 break;
17024 case 'm':
17025 events.emit('toggleMirrored');
17026 break;
17027 case 'c':
17028 events.emit('createClone');
17029 break;
17030 case 'p':
17031 events.emit('togglePresenterMode');
17032 break;
17033 case 'f':
17034 events.emit('toggleFullscreen');
17035 break;
17036 case 't':
17037 events.emit('resetTimer');
17038 break;
17039 case 'h':
17040 case '?':
17041 events.emit('toggleHelp');
17042 break;
17043 }
17044 });
17045}
17046
17047function removeKeyboardEventListeners(events) {
17048 events.removeAllListeners("keydown");
17049 events.removeAllListeners("keypress");
17050}
17051
17052},{}],24:[function(require,module,exports){
17053exports.register = function (events, options) {
17054 addMouseEventListeners(events, options);
17055};
17056
17057exports.unregister = function (events) {
17058 removeMouseEventListeners(events);
17059};
17060
17061function addMouseEventListeners (events, options) {
17062 if (options.click) {
17063 events.on('click', function (event) {
17064 if (event.target.nodeName === 'A') {
17065 // Don't interfere when clicking link
17066 return;
17067 }
17068 else if (event.button === 0) {
17069 events.emit('gotoNextSlide');
17070 }
17071 });
17072 events.on('contextmenu', function (event) {
17073 if (event.target.nodeName === 'A') {
17074 // Don't interfere when right-clicking link
17075 return;
17076 }
17077 event.preventDefault();
17078 events.emit('gotoPreviousSlide');
17079 });
17080 }
17081
17082 if (options.scroll !== false) {
17083 var scrollHandler = function (event) {
17084 if (event.wheelDeltaY > 0 || event.detail < 0) {
17085 events.emit('gotoPreviousSlide');
17086 }
17087 else if (event.wheelDeltaY < 0 || event.detail > 0) {
17088 events.emit('gotoNextSlide');
17089 }
17090 };
17091
17092 // IE9, Chrome, Safari, Opera
17093 events.on('mousewheel', scrollHandler);
17094 // Firefox
17095 events.on('DOMMouseScroll', scrollHandler);
17096 }
17097}
17098
17099function removeMouseEventListeners(events) {
17100 events.removeAllListeners('click');
17101 events.removeAllListeners('contextmenu');
17102 events.removeAllListeners('mousewheel');
17103}
17104
17105},{}],25:[function(require,module,exports){
17106exports.register = function (events, options) {
17107 addTouchEventListeners(events, options);
17108};
17109
17110exports.unregister = function (events) {
17111 removeTouchEventListeners(events);
17112};
17113
17114function addTouchEventListeners (events, options) {
17115 var touch
17116 , startX
17117 , endX
17118 ;
17119
17120 if (options.touch === false) {
17121 return;
17122 }
17123
17124 var isTap = function () {
17125 return Math.abs(startX - endX) < 10;
17126 };
17127
17128 var handleTap = function () {
17129 events.emit('tap', endX);
17130 };
17131
17132 var handleSwipe = function () {
17133 if (startX > endX) {
17134 events.emit('gotoNextSlide');
17135 }
17136 else {
17137 events.emit('gotoPreviousSlide');
17138 }
17139 };
17140
17141 events.on('touchstart', function (event) {
17142 touch = event.touches[0];
17143 startX = touch.clientX;
17144 });
17145
17146 events.on('touchend', function (event) {
17147 if (event.target.nodeName.toUpperCase() === 'A') {
17148 return;
17149 }
17150
17151 touch = event.changedTouches[0];
17152 endX = touch.clientX;
17153
17154 if (isTap()) {
17155 handleTap();
17156 }
17157 else {
17158 handleSwipe();
17159 }
17160 });
17161
17162 events.on('touchmove', function (event) {
17163 event.preventDefault();
17164 });
17165}
17166
17167function removeTouchEventListeners(events) {
17168 events.removeAllListeners("touchstart");
17169 events.removeAllListeners("touchend");
17170 events.removeAllListeners("touchmove");
17171}
17172
17173},{}],26:[function(require,module,exports){
17174exports.register = function (events) {
17175 addMessageEventListeners(events);
17176};
17177
17178function addMessageEventListeners (events) {
17179 events.on('message', navigateByMessage);
17180
17181 function navigateByMessage(message) {
17182 var cap;
17183
17184 if ((cap = /^gotoSlide:(\d+)$/.exec(message.data)) !== null) {
17185 events.emit('gotoSlide', parseInt(cap[1], 10), true);
17186 }
17187 else if (message.data === 'toggleBlackout') {
17188 events.emit('toggleBlackout');
17189 }
17190 }
17191}
17192
17193},{}],20:[function(require,module,exports){
17194var SlideNumber = require('components/slide-number')
17195 , converter = require('../converter')
17196 , highlighter = require('../highlighter')
17197 , utils = require('../utils')
17198 ;
17199
17200module.exports = SlideView;
17201
17202function SlideView (events, slideshow, scaler, slide) {
17203 var self = this;
17204
17205 self.events = events;
17206 self.slideshow = slideshow;
17207 self.scaler = scaler;
17208 self.slide = slide;
17209
17210 self.slideNumber = new SlideNumber(slide, slideshow);
17211
17212 self.configureElements();
17213 self.updateDimensions();
17214
17215 self.events.on('propertiesChanged', function (changes) {
17216 if (changes.hasOwnProperty('ratio')) {
17217 self.updateDimensions();
17218 }
17219 });
17220}
17221
17222SlideView.prototype.updateDimensions = function () {
17223 var self = this
17224 , dimensions = self.scaler.dimensions
17225 ;
17226
17227 self.scalingElement.style.width = dimensions.width + 'px';
17228 self.scalingElement.style.height = dimensions.height + 'px';
17229};
17230
17231SlideView.prototype.scale = function (containerElement) {
17232 var self = this;
17233
17234 self.scaler.scaleToFit(self.scalingElement, containerElement);
17235};
17236
17237SlideView.prototype.show = function () {
17238 utils.addClass(this.containerElement, 'remark-visible');
17239 utils.removeClass(this.containerElement, 'remark-fading');
17240};
17241
17242SlideView.prototype.hide = function () {
17243 var self = this;
17244 utils.removeClass(this.containerElement, 'remark-visible');
17245 // Don't just disappear the slide. Mark it as fading, which
17246 // keeps it on the screen, but at a reduced z-index.
17247 // Then set a timer to remove the fading state in 1s.
17248 utils.addClass(this.containerElement, 'remark-fading');
17249 setTimeout(function(){
17250 utils.removeClass(self.containerElement, 'remark-fading');
17251 }, 1000);
17252};
17253
17254SlideView.prototype.configureElements = function () {
17255 var self = this;
17256
17257 self.containerElement = document.createElement('div');
17258 self.containerElement.className = 'remark-slide-container';
17259
17260 self.scalingElement = document.createElement('div');
17261 self.scalingElement.className = 'remark-slide-scaler';
17262
17263 self.element = document.createElement('div');
17264 self.element.className = 'remark-slide';
17265
17266 self.contentElement = createContentElement(self.events, self.slideshow, self.slide);
17267 self.notesElement = createNotesElement(self.slideshow, self.slide.notes);
17268
17269 self.contentElement.appendChild(self.slideNumber.element);
17270 self.element.appendChild(self.contentElement);
17271 self.scalingElement.appendChild(self.element);
17272 self.containerElement.appendChild(self.scalingElement);
17273 self.containerElement.appendChild(self.notesElement);
17274};
17275
17276SlideView.prototype.scaleBackgroundImage = function (dimensions) {
17277 var self = this
17278 , styles = window.getComputedStyle(this.contentElement)
17279 , backgroundImage = styles.backgroundImage
17280 , match
17281 , image
17282 , scale
17283 ;
17284
17285 if ((match = /^url\(("?)([^\)]+?)\1\)/.exec(backgroundImage)) !== null) {
17286 image = new Image();
17287 image.onload = function () {
17288 if (image.width > dimensions.width ||
17289 image.height > dimensions.height) {
17290 // Background image is larger than slide
17291 if (!self.originalBackgroundSize) {
17292 // No custom background size has been set
17293 self.originalBackgroundSize = self.contentElement.style.backgroundSize;
17294 self.originalBackgroundPosition = self.contentElement.style.backgroundPosition;
17295 self.backgroundSizeSet = true;
17296
17297 if (dimensions.width / image.width < dimensions.height / image.height) {
17298 scale = dimensions.width / image.width;
17299 }
17300 else {
17301 scale = dimensions.height / image.height;
17302 }
17303
17304 self.contentElement.style.backgroundSize = image.width * scale +
17305 'px ' + image.height * scale + 'px';
17306 self.contentElement.style.backgroundPosition = '50% ' +
17307 ((dimensions.height - (image.height * scale)) / 2) + 'px';
17308 }
17309 }
17310 else {
17311 // Revert to previous background size setting
17312 if (self.backgroundSizeSet) {
17313 self.contentElement.style.backgroundSize = self.originalBackgroundSize;
17314 self.contentElement.style.backgroundPosition = self.originalBackgroundPosition;
17315 self.backgroundSizeSet = false;
17316 }
17317 }
17318 };
17319 image.src = match[2];
17320 }
17321};
17322
17323function createContentElement (events, slideshow, slide) {
17324 var element = document.createElement('div');
17325
17326 if (slide.properties.name) {
17327 element.id = 'slide-' + slide.properties.name;
17328 }
17329
17330 styleContentElement(slideshow, element, slide.properties);
17331
17332 element.innerHTML = converter.convertMarkdown(slide.content, slideshow.getLinks());
17333
17334 highlightCodeBlocks(element, slideshow);
17335
17336 return element;
17337}
17338
17339function styleContentElement (slideshow, element, properties) {
17340 element.className = '';
17341
17342 setClassFromProperties(element, properties);
17343 setHighlightStyleFromProperties(element, properties, slideshow);
17344 setBackgroundFromProperties(element, properties);
17345}
17346
17347function createNotesElement (slideshow, notes) {
17348 var element = document.createElement('div');
17349
17350 element.className = 'remark-slide-notes';
17351
17352 element.innerHTML = converter.convertMarkdown(notes);
17353
17354 highlightCodeBlocks(element, slideshow);
17355
17356 return element;
17357}
17358
17359function setBackgroundFromProperties (element, properties) {
17360 var backgroundImage = properties['background-image'];
17361 var backgroundColor = properties['background-color'];
17362
17363 if (backgroundImage) {
17364 element.style.backgroundImage = backgroundImage;
17365 }
17366 if (backgroundColor) {
17367 element.style.backgroundColor = backgroundColor;
17368 }
17369}
17370
17371function setHighlightStyleFromProperties (element, properties, slideshow) {
17372 var highlightStyle = properties['highlight-style'] ||
17373 slideshow.getHighlightStyle();
17374
17375 if (highlightStyle) {
17376 utils.addClass(element, 'hljs-' + highlightStyle);
17377 }
17378}
17379
17380function setClassFromProperties (element, properties) {
17381 utils.addClass(element, 'remark-slide-content');
17382
17383 (properties['class'] || '').split(/,| /)
17384 .filter(function (s) { return s !== ''; })
17385 .forEach(function (c) { utils.addClass(element, c); });
17386}
17387
17388function highlightCodeBlocks (content, slideshow) {
17389 var codeBlocks = content.getElementsByTagName('code'),
17390 highlightLines = slideshow.getHighlightLines(),
17391 highlightSpans = slideshow.getHighlightSpans(),
17392 meta;
17393
17394 codeBlocks.forEach(function (block) {
17395 if (block.parentElement.tagName !== 'PRE') {
17396 utils.addClass(block, 'remark-inline-code');
17397 return;
17398 }
17399
17400 if (block.className === '') {
17401 block.className = slideshow.getHighlightLanguage();
17402 }
17403
17404 if (highlightLines) {
17405 meta = extractMetadata(block);
17406 }
17407
17408 if (block.className !== '') {
17409 highlighter.engine.highlightBlock(block, ' ');
17410 }
17411
17412 wrapLines(block);
17413
17414 if (highlightLines) {
17415 highlightBlockLines(block, meta.highlightedLines);
17416 }
17417
17418 if (highlightSpans) {
17419 highlightBlockSpans(block);
17420 }
17421
17422 utils.addClass(block, 'remark-code');
17423 });
17424}
17425
17426function extractMetadata (block) {
17427 var highlightedLines = [];
17428
17429 block.innerHTML = block.innerHTML.split(/\r?\n/).map(function (line, i) {
17430 if (line.indexOf('*') === 0) {
17431 highlightedLines.push(i);
17432 return line.replace(/^\*( )?/, '$1$1');
17433 }
17434
17435 return line;
17436 }).join('\n');
17437
17438 return {
17439 highlightedLines: highlightedLines
17440 };
17441}
17442
17443function wrapLines (block) {
17444 var lines = block.innerHTML.split(/\r?\n/).map(function (line) {
17445 return '<div class="remark-code-line">' + line + '</div>';
17446 });
17447
17448 // Remove empty last line (due to last \n)
17449 if (lines.length && lines[lines.length - 1].indexOf('><') !== -1) {
17450 lines.pop();
17451 }
17452
17453 block.innerHTML = lines.join('');
17454}
17455
17456function highlightBlockLines (block, lines) {
17457 lines.forEach(function (i) {
17458 utils.addClass(block.childNodes[i], 'remark-code-line-highlighted');
17459 });
17460}
17461
17462function highlightBlockSpans (block) {
17463 var pattern = /([^`])`([^`]+?)`/g ;
17464
17465 block.childNodes.forEach(function (element) {
17466 element.innerHTML = element.innerHTML.replace(pattern,
17467 function (m,e,c) {
17468 if (e === '\\') {
17469 return m.substr(1);
17470 }
17471 return e + '<span class="remark-code-span-highlighted">' +
17472 c + '</span>';
17473 });
17474 });
17475}
17476
17477},{"components/slide-number":"GSZq7a","../converter":9,"../highlighter":7,"../utils":8}],21:[function(require,module,exports){
17478var converter = require('../converter');
17479
17480module.exports = NotesView;
17481
17482function NotesView (events, element, slideViewsAccessor) {
17483 var self = this;
17484
17485 self.events = events;
17486 self.element = element;
17487 self.slideViewsAccessor = slideViewsAccessor;
17488
17489 self.configureElements();
17490
17491 events.on('showSlide', function (slideIndex) {
17492 self.showSlide(slideIndex);
17493 });
17494}
17495
17496NotesView.prototype.showSlide = function (slideIndex) {
17497 var self = this
17498 , slideViews = self.slideViewsAccessor()
17499 , slideView = slideViews[slideIndex]
17500 , nextSlideView = slideViews[slideIndex + 1]
17501 ;
17502
17503 self.notesElement.innerHTML = slideView.notesElement.innerHTML;
17504
17505 if (nextSlideView) {
17506 self.notesPreviewElement.innerHTML = nextSlideView.notesElement.innerHTML;
17507 }
17508 else {
17509 self.notesPreviewElement.innerHTML = '';
17510 }
17511};
17512
17513NotesView.prototype.configureElements = function () {
17514 var self = this;
17515
17516 self.notesElement = self.element.getElementsByClassName('remark-notes')[0];
17517 self.notesPreviewElement = self.element.getElementsByClassName('remark-notes-preview')[0];
17518
17519 self.notesElement.addEventListener('mousewheel', function (event) {
17520 event.stopPropagation();
17521 });
17522
17523 self.notesPreviewElement.addEventListener('mousewheel', function (event) {
17524 event.stopPropagation();
17525 });
17526
17527 self.toolbarElement = self.element.getElementsByClassName('remark-toolbar')[0];
17528
17529 var commands = {
17530 increase: function () {
17531 self.notesElement.style.fontSize = (parseFloat(self.notesElement.style.fontSize) || 1) + 0.1 + 'em';
17532 self.notesPreviewElement.style.fontsize = self.notesElement.style.fontSize;
17533 },
17534 decrease: function () {
17535 self.notesElement.style.fontSize = (parseFloat(self.notesElement.style.fontSize) || 1) - 0.1 + 'em';
17536 self.notesPreviewElement.style.fontsize = self.notesElement.style.fontSize;
17537 }
17538 };
17539
17540 self.toolbarElement.getElementsByTagName('a').forEach(function (link) {
17541 link.addEventListener('click', function (e) {
17542 var command = e.target.hash.substr(1);
17543 commands[command]();
17544 e.preventDefault();
17545 });
17546 });
17547};
17548
17549},{"../converter":9}],27:[function(require,module,exports){
17550var utils = require('../../utils.js');
17551
17552exports.register = function (events, dom, slideshowView) {
17553 addLocationEventListeners(events, dom, slideshowView);
17554};
17555
17556function addLocationEventListeners (events, dom, slideshowView) {
17557 // If slideshow is embedded into custom DOM element, we don't
17558 // hook up to location hash changes, so just go to first slide.
17559 if (slideshowView.isEmbedded()) {
17560 events.emit('gotoSlide', 1);
17561 }
17562 // When slideshow is not embedded into custom DOM element, but
17563 // rather hosted directly inside document.body, we hook up to
17564 // location hash changes, and trigger initial navigation.
17565 else {
17566 events.on('hashchange', navigateByHash);
17567 events.on('slideChanged', updateHash);
17568 events.on('toggledPresenter', updateHash);
17569
17570 navigateByHash();
17571 }
17572
17573 function navigateByHash () {
17574 var slideNoOrName = (dom.getLocationHash() || '').substr(1);
17575 events.emit('gotoSlide', slideNoOrName);
17576 }
17577
17578 function updateHash (slideNoOrName) {
17579 if(utils.hasClass(slideshowView.containerElement, 'remark-presenter-mode')){
17580 dom.setLocationHash('#p' + slideNoOrName);
17581 }
17582 else{
17583 dom.setLocationHash('#' + slideNoOrName);
17584 }
17585 }
17586}
17587
17588},{"../../utils.js":8}],9:[function(require,module,exports){
17589var marked = require('marked')
17590 , converter = module.exports = {}
17591 , element = document.createElement('div')
17592 ;
17593
17594marked.setOptions({
17595 gfm: true,
17596 tables: true,
17597 breaks: false,
17598
17599 // Without this set to true, converting something like
17600 // <p>*</p><p>*</p> will become <p><em></p><p></em></p>
17601 pedantic: true,
17602
17603 sanitize: false,
17604 smartLists: true,
17605 langPrefix: ''
17606});
17607
17608converter.convertMarkdown = function (content, links, inline) {
17609 element.innerHTML = convertMarkdown(content, links || {}, inline);
17610 element.innerHTML = element.innerHTML.replace(/<p>\s*<\/p>/g, '');
17611 return element.innerHTML.replace(/\n\r?$/, '');
17612};
17613
17614function convertMarkdown (content, links, insideContentClass) {
17615 var i, tag, markdown = '', html;
17616
17617 for (i = 0; i < content.length; ++i) {
17618 if (typeof content[i] === 'string') {
17619 markdown += content[i];
17620 }
17621 else {
17622 tag = content[i].block ? 'div' : 'span';
17623 markdown += '<' + tag + ' class="' + content[i].class + '">';
17624 markdown += convertMarkdown(content[i].content, links, true);
17625 markdown += '</' + tag + '>';
17626 }
17627 }
17628
17629 var tokens = marked.Lexer.lex(markdown.replace(/^\s+/, ''));
17630 tokens.links = links;
17631 html = marked.Parser.parse(tokens);
17632
17633 if (insideContentClass) {
17634 element.innerHTML = html;
17635 if (element.children.length === 1 && element.children[0].tagName === 'P') {
17636 html = element.children[0].innerHTML;
17637 }
17638 }
17639
17640 return html;
17641}
17642
17643},{"marked":28}],28:[function(require,module,exports){
17644(function(global){/**
17645 * marked - a markdown parser
17646 * Copyright (c) 2011-2013, Christopher Jeffrey. (MIT Licensed)
17647 * https://github.com/chjj/marked
17648 */
17649
17650;(function() {
17651
17652/**
17653 * Block-Level Grammar
17654 */
17655
17656var block = {
17657 newline: /^\n+/,
17658 code: /^( {4}[^\n]+\n*)+/,
17659 fences: noop,
17660 hr: /^( *[-*_]){3,} *(?:\n+|$)/,
17661 heading: /^ *(#{1,6}) *([^\n]+?) *#* *(?:\n+|$)/,
17662 nptable: noop,
17663 lheading: /^([^\n]+)\n *(=|-){2,} *(?:\n+|$)/,
17664 blockquote: /^( *>[^\n]+(\n[^\n]+)*\n*)+/,
17665 list: /^( *)(bull) [\s\S]+?(?:hr|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,
17666 html: /^ *(?:comment|closed|closing) *(?:\n{2,}|\s*$)/,
17667 def: /^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +["(]([^\n]+)[")])? *(?:\n+|$)/,
17668 table: noop,
17669 paragraph: /^((?:[^\n]+\n?(?!hr|heading|lheading|blockquote|tag|def))+)\n*/,
17670 text: /^[^\n]+/
17671};
17672
17673block.bullet = /(?:[*+-]|\d+\.)/;
17674block.item = /^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/;
17675block.item = replace(block.item, 'gm')
17676 (/bull/g, block.bullet)
17677 ();
17678
17679block.list = replace(block.list)
17680 (/bull/g, block.bullet)
17681 ('hr', /\n+(?=(?: *[-*_]){3,} *(?:\n+|$))/)
17682 ();
17683
17684block._tag = '(?!(?:'
17685 + 'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code'
17686 + '|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo'
17687 + '|span|br|wbr|ins|del|img)\\b)\\w+(?!:/|[^\\w\\s@]*@)\\b';
17688
17689block.html = replace(block.html)
17690 ('comment', /<!--[\s\S]*?-->/)
17691 ('closed', /<(tag)[\s\S]+?<\/\1>/)
17692 ('closing', /<tag(?:"[^"]*"|'[^']*'|[^'">])*?>/)
17693 (/tag/g, block._tag)
17694 ();
17695
17696block.paragraph = replace(block.paragraph)
17697 ('hr', block.hr)
17698 ('heading', block.heading)
17699 ('lheading', block.lheading)
17700 ('blockquote', block.blockquote)
17701 ('tag', '<' + block._tag)
17702 ('def', block.def)
17703 ();
17704
17705/**
17706 * Normal Block Grammar
17707 */
17708
17709block.normal = merge({}, block);
17710
17711/**
17712 * GFM Block Grammar
17713 */
17714
17715block.gfm = merge({}, block.normal, {
17716 fences: /^ *(`{3,}|~{3,}) *(\S+)? *\n([\s\S]+?)\s*\1 *(?:\n+|$)/,
17717 paragraph: /^/
17718});
17719
17720block.gfm.paragraph = replace(block.paragraph)
17721 ('(?!', '(?!'
17722 + block.gfm.fences.source.replace('\\1', '\\2') + '|'
17723 + block.list.source.replace('\\1', '\\3') + '|')
17724 ();
17725
17726/**
17727 * GFM + Tables Block Grammar
17728 */
17729
17730block.tables = merge({}, block.gfm, {
17731 nptable: /^ *(\S.*\|.*)\n *([-:]+ *\|[-| :]*)\n((?:.*\|.*(?:\n|$))*)\n*/,
17732 table: /^ *\|(.+)\n *\|( *[-:]+[-| :]*)\n((?: *\|.*(?:\n|$))*)\n*/
17733});
17734
17735/**
17736 * Block Lexer
17737 */
17738
17739function Lexer(options) {
17740 this.tokens = [];
17741 this.tokens.links = {};
17742 this.options = options || marked.defaults;
17743 this.rules = block.normal;
17744
17745 if (this.options.gfm) {
17746 if (this.options.tables) {
17747 this.rules = block.tables;
17748 } else {
17749 this.rules = block.gfm;
17750 }
17751 }
17752}
17753
17754/**
17755 * Expose Block Rules
17756 */
17757
17758Lexer.rules = block;
17759
17760/**
17761 * Static Lex Method
17762 */
17763
17764Lexer.lex = function(src, options) {
17765 var lexer = new Lexer(options);
17766 return lexer.lex(src);
17767};
17768
17769/**
17770 * Preprocessing
17771 */
17772
17773Lexer.prototype.lex = function(src) {
17774 src = src
17775 .replace(/\r\n|\r/g, '\n')
17776 .replace(/\t/g, ' ')
17777 .replace(/\u00a0/g, ' ')
17778 .replace(/\u2424/g, '\n');
17779
17780 return this.token(src, true);
17781};
17782
17783/**
17784 * Lexing
17785 */
17786
17787Lexer.prototype.token = function(src, top) {
17788 var src = src.replace(/^ +$/gm, '')
17789 , next
17790 , loose
17791 , cap
17792 , bull
17793 , b
17794 , item
17795 , space
17796 , i
17797 , l;
17798
17799 while (src) {
17800 // newline
17801 if (cap = this.rules.newline.exec(src)) {
17802 src = src.substring(cap[0].length);
17803 if (cap[0].length > 1) {
17804 this.tokens.push({
17805 type: 'space'
17806 });
17807 }
17808 }
17809
17810 // code
17811 if (cap = this.rules.code.exec(src)) {
17812 src = src.substring(cap[0].length);
17813 cap = cap[0].replace(/^ {4}/gm, '');
17814 this.tokens.push({
17815 type: 'code',
17816 text: !this.options.pedantic
17817 ? cap.replace(/\n+$/, '')
17818 : cap
17819 });
17820 continue;
17821 }
17822
17823 // fences (gfm)
17824 if (cap = this.rules.fences.exec(src)) {
17825 src = src.substring(cap[0].length);
17826 this.tokens.push({
17827 type: 'code',
17828 lang: cap[2],
17829 text: cap[3]
17830 });
17831 continue;
17832 }
17833
17834 // heading
17835 if (cap = this.rules.heading.exec(src)) {
17836 src = src.substring(cap[0].length);
17837 this.tokens.push({
17838 type: 'heading',
17839 depth: cap[1].length,
17840 text: cap[2]
17841 });
17842 continue;
17843 }
17844
17845 // table no leading pipe (gfm)
17846 if (top && (cap = this.rules.nptable.exec(src))) {
17847 src = src.substring(cap[0].length);
17848
17849 item = {
17850 type: 'table',
17851 header: cap[1].replace(/^ *| *\| *$/g, '').split(/ *\| */),
17852 align: cap[2].replace(/^ *|\| *$/g, '').split(/ *\| */),
17853 cells: cap[3].replace(/\n$/, '').split('\n')
17854 };
17855
17856 for (i = 0; i < item.align.length; i++) {
17857 if (/^ *-+: *$/.test(item.align[i])) {
17858 item.align[i] = 'right';
17859 } else if (/^ *:-+: *$/.test(item.align[i])) {
17860 item.align[i] = 'center';
17861 } else if (/^ *:-+ *$/.test(item.align[i])) {
17862 item.align[i] = 'left';
17863 } else {
17864 item.align[i] = null;
17865 }
17866 }
17867
17868 for (i = 0; i < item.cells.length; i++) {
17869 item.cells[i] = item.cells[i].split(/ *\| */);
17870 }
17871
17872 this.tokens.push(item);
17873
17874 continue;
17875 }
17876
17877 // lheading
17878 if (cap = this.rules.lheading.exec(src)) {
17879 src = src.substring(cap[0].length);
17880 this.tokens.push({
17881 type: 'heading',
17882 depth: cap[2] === '=' ? 1 : 2,
17883 text: cap[1]
17884 });
17885 continue;
17886 }
17887
17888 // hr
17889 if (cap = this.rules.hr.exec(src)) {
17890 src = src.substring(cap[0].length);
17891 this.tokens.push({
17892 type: 'hr'
17893 });
17894 continue;
17895 }
17896
17897 // blockquote
17898 if (cap = this.rules.blockquote.exec(src)) {
17899 src = src.substring(cap[0].length);
17900
17901 this.tokens.push({
17902 type: 'blockquote_start'
17903 });
17904
17905 cap = cap[0].replace(/^ *> ?/gm, '');
17906
17907 // Pass `top` to keep the current
17908 // "toplevel" state. This is exactly
17909 // how markdown.pl works.
17910 this.token(cap, top);
17911
17912 this.tokens.push({
17913 type: 'blockquote_end'
17914 });
17915
17916 continue;
17917 }
17918
17919 // list
17920 if (cap = this.rules.list.exec(src)) {
17921 src = src.substring(cap[0].length);
17922 bull = cap[2];
17923
17924 this.tokens.push({
17925 type: 'list_start',
17926 ordered: bull.length > 1
17927 });
17928
17929 // Get each top-level item.
17930 cap = cap[0].match(this.rules.item);
17931
17932 next = false;
17933 l = cap.length;
17934 i = 0;
17935
17936 for (; i < l; i++) {
17937 item = cap[i];
17938
17939 // Remove the list item's bullet
17940 // so it is seen as the next token.
17941 space = item.length;
17942 item = item.replace(/^ *([*+-]|\d+\.) +/, '');
17943
17944 // Outdent whatever the
17945 // list item contains. Hacky.
17946 if (~item.indexOf('\n ')) {
17947 space -= item.length;
17948 item = !this.options.pedantic
17949 ? item.replace(new RegExp('^ {1,' + space + '}', 'gm'), '')
17950 : item.replace(/^ {1,4}/gm, '');
17951 }
17952
17953 // Determine whether the next list item belongs here.
17954 // Backpedal if it does not belong in this list.
17955 if (this.options.smartLists && i !== l - 1) {
17956 b = block.bullet.exec(cap[i + 1])[0];
17957 if (bull !== b && !(bull.length > 1 && b.length > 1)) {
17958 src = cap.slice(i + 1).join('\n') + src;
17959 i = l - 1;
17960 }
17961 }
17962
17963 // Determine whether item is loose or not.
17964 // Use: /(^|\n)(?! )[^\n]+\n\n(?!\s*$)/
17965 // for discount behavior.
17966 loose = next || /\n\n(?!\s*$)/.test(item);
17967 if (i !== l - 1) {
17968 next = item.charAt(item.length - 1) === '\n';
17969 if (!loose) loose = next;
17970 }
17971
17972 this.tokens.push({
17973 type: loose
17974 ? 'loose_item_start'
17975 : 'list_item_start'
17976 });
17977
17978 // Recurse.
17979 this.token(item, false);
17980
17981 this.tokens.push({
17982 type: 'list_item_end'
17983 });
17984 }
17985
17986 this.tokens.push({
17987 type: 'list_end'
17988 });
17989
17990 continue;
17991 }
17992
17993 // html
17994 if (cap = this.rules.html.exec(src)) {
17995 src = src.substring(cap[0].length);
17996 this.tokens.push({
17997 type: this.options.sanitize
17998 ? 'paragraph'
17999 : 'html',
18000 pre: cap[1] === 'pre' || cap[1] === 'script' || cap[1] === 'style',
18001 text: cap[0]
18002 });
18003 continue;
18004 }
18005
18006 // def
18007 if (top && (cap = this.rules.def.exec(src))) {
18008 src = src.substring(cap[0].length);
18009 this.tokens.links[cap[1].toLowerCase()] = {
18010 href: cap[2],
18011 title: cap[3]
18012 };
18013 continue;
18014 }
18015
18016 // table (gfm)
18017 if (top && (cap = this.rules.table.exec(src))) {
18018 src = src.substring(cap[0].length);
18019
18020 item = {
18021 type: 'table',
18022 header: cap[1].replace(/^ *| *\| *$/g, '').split(/ *\| */),
18023 align: cap[2].replace(/^ *|\| *$/g, '').split(/ *\| */),
18024 cells: cap[3].replace(/(?: *\| *)?\n$/, '').split('\n')
18025 };
18026
18027 for (i = 0; i < item.align.length; i++) {
18028 if (/^ *-+: *$/.test(item.align[i])) {
18029 item.align[i] = 'right';
18030 } else if (/^ *:-+: *$/.test(item.align[i])) {
18031 item.align[i] = 'center';
18032 } else if (/^ *:-+ *$/.test(item.align[i])) {
18033 item.align[i] = 'left';
18034 } else {
18035 item.align[i] = null;
18036 }
18037 }
18038
18039 for (i = 0; i < item.cells.length; i++) {
18040 item.cells[i] = item.cells[i]
18041 .replace(/^ *\| *| *\| *$/g, '')
18042 .split(/ *\| */);
18043 }
18044
18045 this.tokens.push(item);
18046
18047 continue;
18048 }
18049
18050 // top-level paragraph
18051 if (top && (cap = this.rules.paragraph.exec(src))) {
18052 src = src.substring(cap[0].length);
18053 this.tokens.push({
18054 type: 'paragraph',
18055 text: cap[1].charAt(cap[1].length - 1) === '\n'
18056 ? cap[1].slice(0, -1)
18057 : cap[1]
18058 });
18059 continue;
18060 }
18061
18062 // text
18063 if (cap = this.rules.text.exec(src)) {
18064 // Top-level should never reach here.
18065 src = src.substring(cap[0].length);
18066 this.tokens.push({
18067 type: 'text',
18068 text: cap[0]
18069 });
18070 continue;
18071 }
18072
18073 if (src) {
18074 throw new
18075 Error('Infinite loop on byte: ' + src.charCodeAt(0));
18076 }
18077 }
18078
18079 return this.tokens;
18080};
18081
18082/**
18083 * Inline-Level Grammar
18084 */
18085
18086var inline = {
18087 escape: /^\\([\\`*{}\[\]()#+\-.!_>])/,
18088 autolink: /^<([^ >]+(@|:\/)[^ >]+)>/,
18089 url: noop,
18090 tag: /^<!--[\s\S]*?-->|^<\/?\w+(?:"[^"]*"|'[^']*'|[^'">])*?>/,
18091 link: /^!?\[(inside)\]\(href\)/,
18092 reflink: /^!?\[(inside)\]\s*\[([^\]]*)\]/,
18093 nolink: /^!?\[((?:\[[^\]]*\]|[^\[\]])*)\]/,
18094 strong: /^__([\s\S]+?)__(?!_)|^\*\*([\s\S]+?)\*\*(?!\*)/,
18095 em: /^\b_((?:__|[\s\S])+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,
18096 code: /^(`+)\s*([\s\S]*?[^`])\s*\1(?!`)/,
18097 br: /^ {2,}\n(?!\s*$)/,
18098 del: noop,
18099 text: /^[\s\S]+?(?=[\\<!\[_*`]| {2,}\n|$)/
18100};
18101
18102inline._inside = /(?:\[[^\]]*\]|[^\[\]]|\](?=[^\[]*\]))*/;
18103inline._href = /\s*<?([\s\S]*?)>?(?:\s+['"]([\s\S]*?)['"])?\s*/;
18104
18105inline.link = replace(inline.link)
18106 ('inside', inline._inside)
18107 ('href', inline._href)
18108 ();
18109
18110inline.reflink = replace(inline.reflink)
18111 ('inside', inline._inside)
18112 ();
18113
18114/**
18115 * Normal Inline Grammar
18116 */
18117
18118inline.normal = merge({}, inline);
18119
18120/**
18121 * Pedantic Inline Grammar
18122 */
18123
18124inline.pedantic = merge({}, inline.normal, {
18125 strong: /^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,
18126 em: /^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/
18127});
18128
18129/**
18130 * GFM Inline Grammar
18131 */
18132
18133inline.gfm = merge({}, inline.normal, {
18134 escape: replace(inline.escape)('])', '~|])')(),
18135 url: /^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/,
18136 del: /^~~(?=\S)([\s\S]*?\S)~~/,
18137 text: replace(inline.text)
18138 (']|', '~]|')
18139 ('|', '|https?://|')
18140 ()
18141});
18142
18143/**
18144 * GFM + Line Breaks Inline Grammar
18145 */
18146
18147inline.breaks = merge({}, inline.gfm, {
18148 br: replace(inline.br)('{2,}', '*')(),
18149 text: replace(inline.gfm.text)('{2,}', '*')()
18150});
18151
18152/**
18153 * Inline Lexer & Compiler
18154 */
18155
18156function InlineLexer(links, options) {
18157 this.options = options || marked.defaults;
18158 this.links = links;
18159 this.rules = inline.normal;
18160 this.renderer = this.options.renderer || new Renderer;
18161 this.renderer.options = this.options;
18162
18163 if (!this.links) {
18164 throw new
18165 Error('Tokens array requires a `links` property.');
18166 }
18167
18168 if (this.options.gfm) {
18169 if (this.options.breaks) {
18170 this.rules = inline.breaks;
18171 } else {
18172 this.rules = inline.gfm;
18173 }
18174 } else if (this.options.pedantic) {
18175 this.rules = inline.pedantic;
18176 }
18177}
18178
18179/**
18180 * Expose Inline Rules
18181 */
18182
18183InlineLexer.rules = inline;
18184
18185/**
18186 * Static Lexing/Compiling Method
18187 */
18188
18189InlineLexer.output = function(src, links, options) {
18190 var inline = new InlineLexer(links, options);
18191 return inline.output(src);
18192};
18193
18194/**
18195 * Lexing/Compiling
18196 */
18197
18198InlineLexer.prototype.output = function(src) {
18199 var out = ''
18200 , link
18201 , text
18202 , href
18203 , cap;
18204
18205 while (src) {
18206 // escape
18207 if (cap = this.rules.escape.exec(src)) {
18208 src = src.substring(cap[0].length);
18209 out += cap[1];
18210 continue;
18211 }
18212
18213 // autolink
18214 if (cap = this.rules.autolink.exec(src)) {
18215 src = src.substring(cap[0].length);
18216 if (cap[2] === '@') {
18217 text = cap[1].charAt(6) === ':'
18218 ? this.mangle(cap[1].substring(7))
18219 : this.mangle(cap[1]);
18220 href = this.mangle('mailto:') + text;
18221 } else {
18222 text = escape(cap[1]);
18223 href = text;
18224 }
18225 out += this.renderer.link(href, null, text);
18226 continue;
18227 }
18228
18229 // url (gfm)
18230 if (cap = this.rules.url.exec(src)) {
18231 src = src.substring(cap[0].length);
18232 text = escape(cap[1]);
18233 href = text;
18234 out += this.renderer.link(href, null, text);
18235 continue;
18236 }
18237
18238 // tag
18239 if (cap = this.rules.tag.exec(src)) {
18240 src = src.substring(cap[0].length);
18241 out += this.options.sanitize
18242 ? escape(cap[0])
18243 : cap[0];
18244 continue;
18245 }
18246
18247 // link
18248 if (cap = this.rules.link.exec(src)) {
18249 src = src.substring(cap[0].length);
18250 out += this.outputLink(cap, {
18251 href: cap[2],
18252 title: cap[3]
18253 });
18254 continue;
18255 }
18256
18257 // reflink, nolink
18258 if ((cap = this.rules.reflink.exec(src))
18259 || (cap = this.rules.nolink.exec(src))) {
18260 src = src.substring(cap[0].length);
18261 link = (cap[2] || cap[1]).replace(/\s+/g, ' ');
18262 link = this.links[link.toLowerCase()];
18263 if (!link || !link.href) {
18264 out += cap[0].charAt(0);
18265 src = cap[0].substring(1) + src;
18266 continue;
18267 }
18268 out += this.outputLink(cap, link);
18269 continue;
18270 }
18271
18272 // strong
18273 if (cap = this.rules.strong.exec(src)) {
18274 src = src.substring(cap[0].length);
18275 out += this.renderer.strong(this.output(cap[2] || cap[1]));
18276 continue;
18277 }
18278
18279 // em
18280 if (cap = this.rules.em.exec(src)) {
18281 src = src.substring(cap[0].length);
18282 out += this.renderer.em(this.output(cap[2] || cap[1]));
18283 continue;
18284 }
18285
18286 // code
18287 if (cap = this.rules.code.exec(src)) {
18288 src = src.substring(cap[0].length);
18289 out += this.renderer.codespan(escape(cap[2], true));
18290 continue;
18291 }
18292
18293 // br
18294 if (cap = this.rules.br.exec(src)) {
18295 src = src.substring(cap[0].length);
18296 out += this.renderer.br();
18297 continue;
18298 }
18299
18300 // del (gfm)
18301 if (cap = this.rules.del.exec(src)) {
18302 src = src.substring(cap[0].length);
18303 out += this.renderer.del(this.output(cap[1]));
18304 continue;
18305 }
18306
18307 // text
18308 if (cap = this.rules.text.exec(src)) {
18309 src = src.substring(cap[0].length);
18310 out += escape(this.smartypants(cap[0]));
18311 continue;
18312 }
18313
18314 if (src) {
18315 throw new
18316 Error('Infinite loop on byte: ' + src.charCodeAt(0));
18317 }
18318 }
18319
18320 return out;
18321};
18322
18323/**
18324 * Compile Link
18325 */
18326
18327InlineLexer.prototype.outputLink = function(cap, link) {
18328 var href = escape(link.href)
18329 , title = link.title ? escape(link.title) : null;
18330
18331 return cap[0].charAt(0) !== '!'
18332 ? this.renderer.link(href, title, this.output(cap[1]))
18333 : this.renderer.image(href, title, escape(cap[1]));
18334};
18335
18336/**
18337 * Smartypants Transformations
18338 */
18339
18340InlineLexer.prototype.smartypants = function(text) {
18341 if (!this.options.smartypants) return text;
18342 return text
18343 // em-dashes
18344 .replace(/--/g, '\u2014')
18345 // opening singles
18346 .replace(/(^|[-\u2014/(\[{"\s])'/g, '$1\u2018')
18347 // closing singles & apostrophes
18348 .replace(/'/g, '\u2019')
18349 // opening doubles
18350 .replace(/(^|[-\u2014/(\[{\u2018\s])"/g, '$1\u201c')
18351 // closing doubles
18352 .replace(/"/g, '\u201d')
18353 // ellipses
18354 .replace(/\.{3}/g, '\u2026');
18355};
18356
18357/**
18358 * Mangle Links
18359 */
18360
18361InlineLexer.prototype.mangle = function(text) {
18362 var out = ''
18363 , l = text.length
18364 , i = 0
18365 , ch;
18366
18367 for (; i < l; i++) {
18368 ch = text.charCodeAt(i);
18369 if (Math.random() > 0.5) {
18370 ch = 'x' + ch.toString(16);
18371 }
18372 out += '&#' + ch + ';';
18373 }
18374
18375 return out;
18376};
18377
18378/**
18379 * Renderer
18380 */
18381
18382function Renderer(options) {
18383 this.options = options || {};
18384}
18385
18386Renderer.prototype.code = function(code, lang, escaped) {
18387 if (this.options.highlight) {
18388 var out = this.options.highlight(code, lang);
18389 if (out != null && out !== code) {
18390 escaped = true;
18391 code = out;
18392 }
18393 }
18394
18395 if (!lang) {
18396 return '<pre><code>'
18397 + (escaped ? code : escape(code, true))
18398 + '\n</code></pre>';
18399 }
18400
18401 return '<pre><code class="'
18402 + this.options.langPrefix
18403 + escape(lang, true)
18404 + '">'
18405 + (escaped ? code : escape(code, true))
18406 + '\n</code></pre>\n';
18407};
18408
18409Renderer.prototype.blockquote = function(quote) {
18410 return '<blockquote>\n' + quote + '</blockquote>\n';
18411};
18412
18413Renderer.prototype.html = function(html) {
18414 return html;
18415};
18416
18417Renderer.prototype.heading = function(text, level, raw) {
18418 return '<h'
18419 + level
18420 + ' id="'
18421 + this.options.headerPrefix
18422 + raw.toLowerCase().replace(/[^\w]+/g, '-')
18423 + '">'
18424 + text
18425 + '</h'
18426 + level
18427 + '>\n';
18428};
18429
18430Renderer.prototype.hr = function() {
18431 return '<hr>\n';
18432};
18433
18434Renderer.prototype.list = function(body, ordered) {
18435 var type = ordered ? 'ol' : 'ul';
18436 return '<' + type + '>\n' + body + '</' + type + '>\n';
18437};
18438
18439Renderer.prototype.listitem = function(text) {
18440 return '<li>' + text + '</li>\n';
18441};
18442
18443Renderer.prototype.paragraph = function(text) {
18444 return '<p>' + text + '</p>\n';
18445};
18446
18447Renderer.prototype.table = function(header, body) {
18448 return '<table>\n'
18449 + '<thead>\n'
18450 + header
18451 + '</thead>\n'
18452 + '<tbody>\n'
18453 + body
18454 + '</tbody>\n'
18455 + '</table>\n';
18456};
18457
18458Renderer.prototype.tablerow = function(content) {
18459 return '<tr>\n' + content + '</tr>\n';
18460};
18461
18462Renderer.prototype.tablecell = function(content, flags) {
18463 var type = flags.header ? 'th' : 'td';
18464 var tag = flags.align
18465 ? '<' + type + ' style="text-align:' + flags.align + '">'
18466 : '<' + type + '>';
18467 return tag + content + '</' + type + '>\n';
18468};
18469
18470// span level renderer
18471Renderer.prototype.strong = function(text) {
18472 return '<strong>' + text + '</strong>';
18473};
18474
18475Renderer.prototype.em = function(text) {
18476 return '<em>' + text + '</em>';
18477};
18478
18479Renderer.prototype.codespan = function(text) {
18480 return '<code>' + text + '</code>';
18481};
18482
18483Renderer.prototype.br = function() {
18484 return '<br>';
18485};
18486
18487Renderer.prototype.del = function(text) {
18488 return '<del>' + text + '</del>';
18489};
18490
18491Renderer.prototype.link = function(href, title, text) {
18492 if (this.options.sanitize) {
18493 try {
18494 var prot = decodeURIComponent(unescape(href))
18495 .replace(/[^\w:]/g, '')
18496 .toLowerCase();
18497 } catch (e) {
18498 return '';
18499 }
18500 if (prot.indexOf('javascript:') === 0) {
18501 return '';
18502 }
18503 }
18504 var out = '<a href="' + href + '"';
18505 if (title) {
18506 out += ' title="' + title + '"';
18507 }
18508 out += '>' + text + '</a>';
18509 return out;
18510};
18511
18512Renderer.prototype.image = function(href, title, text) {
18513 var out = '<img src="' + href + '" alt="' + text + '"';
18514 if (title) {
18515 out += ' title="' + title + '"';
18516 }
18517 out += '>';
18518 return out;
18519};
18520
18521/**
18522 * Parsing & Compiling
18523 */
18524
18525function Parser(options) {
18526 this.tokens = [];
18527 this.token = null;
18528 this.options = options || marked.defaults;
18529 this.options.renderer = this.options.renderer || new Renderer;
18530 this.renderer = this.options.renderer;
18531 this.renderer.options = this.options;
18532}
18533
18534/**
18535 * Static Parse Method
18536 */
18537
18538Parser.parse = function(src, options, renderer) {
18539 var parser = new Parser(options, renderer);
18540 return parser.parse(src);
18541};
18542
18543/**
18544 * Parse Loop
18545 */
18546
18547Parser.prototype.parse = function(src) {
18548 this.inline = new InlineLexer(src.links, this.options, this.renderer);
18549 this.tokens = src.reverse();
18550
18551 var out = '';
18552 while (this.next()) {
18553 out += this.tok();
18554 }
18555
18556 return out;
18557};
18558
18559/**
18560 * Next Token
18561 */
18562
18563Parser.prototype.next = function() {
18564 return this.token = this.tokens.pop();
18565};
18566
18567/**
18568 * Preview Next Token
18569 */
18570
18571Parser.prototype.peek = function() {
18572 return this.tokens[this.tokens.length - 1] || 0;
18573};
18574
18575/**
18576 * Parse Text Tokens
18577 */
18578
18579Parser.prototype.parseText = function() {
18580 var body = this.token.text;
18581
18582 while (this.peek().type === 'text') {
18583 body += '\n' + this.next().text;
18584 }
18585
18586 return this.inline.output(body);
18587};
18588
18589/**
18590 * Parse Current Token
18591 */
18592
18593Parser.prototype.tok = function() {
18594 switch (this.token.type) {
18595 case 'space': {
18596 return '';
18597 }
18598 case 'hr': {
18599 return this.renderer.hr();
18600 }
18601 case 'heading': {
18602 return this.renderer.heading(
18603 this.inline.output(this.token.text),
18604 this.token.depth,
18605 this.token.text);
18606 }
18607 case 'code': {
18608 return this.renderer.code(this.token.text,
18609 this.token.lang,
18610 this.token.escaped);
18611 }
18612 case 'table': {
18613 var header = ''
18614 , body = ''
18615 , i
18616 , row
18617 , cell
18618 , flags
18619 , j;
18620
18621 // header
18622 cell = '';
18623 for (i = 0; i < this.token.header.length; i++) {
18624 flags = { header: true, align: this.token.align[i] };
18625 cell += this.renderer.tablecell(
18626 this.inline.output(this.token.header[i]),
18627 { header: true, align: this.token.align[i] }
18628 );
18629 }
18630 header += this.renderer.tablerow(cell);
18631
18632 for (i = 0; i < this.token.cells.length; i++) {
18633 row = this.token.cells[i];
18634
18635 cell = '';
18636 for (j = 0; j < row.length; j++) {
18637 cell += this.renderer.tablecell(
18638 this.inline.output(row[j]),
18639 { header: false, align: this.token.align[j] }
18640 );
18641 }
18642
18643 body += this.renderer.tablerow(cell);
18644 }
18645 return this.renderer.table(header, body);
18646 }
18647 case 'blockquote_start': {
18648 var body = '';
18649
18650 while (this.next().type !== 'blockquote_end') {
18651 body += this.tok();
18652 }
18653
18654 return this.renderer.blockquote(body);
18655 }
18656 case 'list_start': {
18657 var body = ''
18658 , ordered = this.token.ordered;
18659
18660 while (this.next().type !== 'list_end') {
18661 body += this.tok();
18662 }
18663
18664 return this.renderer.list(body, ordered);
18665 }
18666 case 'list_item_start': {
18667 var body = '';
18668
18669 while (this.next().type !== 'list_item_end') {
18670 body += this.token.type === 'text'
18671 ? this.parseText()
18672 : this.tok();
18673 }
18674
18675 return this.renderer.listitem(body);
18676 }
18677 case 'loose_item_start': {
18678 var body = '';
18679
18680 while (this.next().type !== 'list_item_end') {
18681 body += this.tok();
18682 }
18683
18684 return this.renderer.listitem(body);
18685 }
18686 case 'html': {
18687 var html = !this.token.pre && !this.options.pedantic
18688 ? this.inline.output(this.token.text)
18689 : this.token.text;
18690 return this.renderer.html(html);
18691 }
18692 case 'paragraph': {
18693 return this.renderer.paragraph(this.inline.output(this.token.text));
18694 }
18695 case 'text': {
18696 return this.renderer.paragraph(this.parseText());
18697 }
18698 }
18699};
18700
18701/**
18702 * Helpers
18703 */
18704
18705function escape(html, encode) {
18706 return html
18707 .replace(!encode ? /&(?!#?\w+;)/g : /&/g, '&amp;')
18708 .replace(/</g, '&lt;')
18709 .replace(/>/g, '&gt;')
18710 .replace(/"/g, '&quot;')
18711 .replace(/'/g, '&#39;');
18712}
18713
18714function unescape(html) {
18715 return html.replace(/&([#\w]+);/g, function(_, n) {
18716 n = n.toLowerCase();
18717 if (n === 'colon') return ':';
18718 if (n.charAt(0) === '#') {
18719 return n.charAt(1) === 'x'
18720 ? String.fromCharCode(parseInt(n.substring(2), 16))
18721 : String.fromCharCode(+n.substring(1));
18722 }
18723 return '';
18724 });
18725}
18726
18727function replace(regex, opt) {
18728 regex = regex.source;
18729 opt = opt || '';
18730 return function self(name, val) {
18731 if (!name) return new RegExp(regex, opt);
18732 val = val.source || val;
18733 val = val.replace(/(^|[^\[])\^/g, '$1');
18734 regex = regex.replace(name, val);
18735 return self;
18736 };
18737}
18738
18739function noop() {}
18740noop.exec = noop;
18741
18742function merge(obj) {
18743 var i = 1
18744 , target
18745 , key;
18746
18747 for (; i < arguments.length; i++) {
18748 target = arguments[i];
18749 for (key in target) {
18750 if (Object.prototype.hasOwnProperty.call(target, key)) {
18751 obj[key] = target[key];
18752 }
18753 }
18754 }
18755
18756 return obj;
18757}
18758
18759
18760/**
18761 * Marked
18762 */
18763
18764function marked(src, opt, callback) {
18765 if (callback || typeof opt === 'function') {
18766 if (!callback) {
18767 callback = opt;
18768 opt = null;
18769 }
18770
18771 opt = merge({}, marked.defaults, opt || {});
18772
18773 var highlight = opt.highlight
18774 , tokens
18775 , pending
18776 , i = 0;
18777
18778 try {
18779 tokens = Lexer.lex(src, opt)
18780 } catch (e) {
18781 return callback(e);
18782 }
18783
18784 pending = tokens.length;
18785
18786 var done = function() {
18787 var out, err;
18788
18789 try {
18790 out = Parser.parse(tokens, opt);
18791 } catch (e) {
18792 err = e;
18793 }
18794
18795 opt.highlight = highlight;
18796
18797 return err
18798 ? callback(err)
18799 : callback(null, out);
18800 };
18801
18802 if (!highlight || highlight.length < 3) {
18803 return done();
18804 }
18805
18806 delete opt.highlight;
18807
18808 if (!pending) return done();
18809
18810 for (; i < tokens.length; i++) {
18811 (function(token) {
18812 if (token.type !== 'code') {
18813 return --pending || done();
18814 }
18815 return highlight(token.text, token.lang, function(err, code) {
18816 if (code == null || code === token.text) {
18817 return --pending || done();
18818 }
18819 token.text = code;
18820 token.escaped = true;
18821 --pending || done();
18822 });
18823 })(tokens[i]);
18824 }
18825
18826 return;
18827 }
18828 try {
18829 if (opt) opt = merge({}, marked.defaults, opt);
18830 return Parser.parse(Lexer.lex(src, opt), opt);
18831 } catch (e) {
18832 e.message += '\nPlease report this to https://github.com/chjj/marked.';
18833 if ((opt || marked.defaults).silent) {
18834 return '<p>An error occured:</p><pre>'
18835 + escape(e.message + '', true)
18836 + '</pre>';
18837 }
18838 throw e;
18839 }
18840}
18841
18842/**
18843 * Options
18844 */
18845
18846marked.options =
18847marked.setOptions = function(opt) {
18848 merge(marked.defaults, opt);
18849 return marked;
18850};
18851
18852marked.defaults = {
18853 gfm: true,
18854 tables: true,
18855 breaks: false,
18856 pedantic: false,
18857 sanitize: false,
18858 smartLists: false,
18859 silent: false,
18860 highlight: null,
18861 langPrefix: 'lang-',
18862 smartypants: false,
18863 headerPrefix: '',
18864 renderer: new Renderer
18865};
18866
18867/**
18868 * Expose
18869 */
18870
18871marked.Parser = Parser;
18872marked.parser = Parser.parse;
18873
18874marked.Renderer = Renderer;
18875
18876marked.Lexer = Lexer;
18877marked.lexer = Lexer.lex;
18878
18879marked.InlineLexer = InlineLexer;
18880marked.inlineLexer = InlineLexer.output;
18881
18882marked.parse = marked;
18883
18884if (typeof exports === 'object') {
18885 module.exports = marked;
18886} else if (typeof define === 'function' && define.amd) {
18887 define(function() { return marked; });
18888} else {
18889 this.marked = marked;
18890}
18891
18892}).call(function() {
18893 return this || (typeof window !== 'undefined' ? window : global);
18894}());
18895
18896})(window)
18897},{}]},{},[3])
18898;</script>
18899 <script>
18900 var slideshow = remark.create();
18901 </script>
18902 <script></script>
18903 </body>
18904</html>
18905

Built with git-ssb-web